SSD Nodes Learn 🎉 VPS เริ่ม $5.50/เดือน
คู่มือ Matt Connorโดย Matt Connor · อัปเดตเมื่อ 2026-08-13

เปรียบเทียบ 4 ทางเลือกทำ Self-hosted Dropbox ที่น่าใช้งาน

เปรียบเทียบ Nextcloud, Seafile, Syncthing และ Object storage สำหรับทำคลังข้อมูลส่วนตัว วิเคราะห์ต้นทุนบน VPS และความแตกต่างระหว่างการซิงค์ไฟล์กับการสำรองข้อมูลอย่างละเอียด

ทางเลือกสำหรับทำ Self-hosted Dropbox ที่น่าใช้งานมีอะไรบ้าง?

ทางเลือกสำหรับทำ Self-hosted Dropbox ที่คุ้มค่าต่อการใช้งานมี 4 รายการ ได้แก่ Nextcloud, Seafile, Syncthing และการใช้ Object storage ร่วมกับไคลเอนต์ ซอฟต์แวร์เหล่านี้ไม่สามารถใช้ทดแทนกันได้โดยตรง Nextcloud เหมาะสำหรับใช้งานในครัวเรือนหรือทีมขนาดเล็กที่ต้องการแชร์ไฟล์ให้ผู้อื่น Seafile เหมาะสำหรับบุคคลหรือทีมที่ต้องการซิงค์ไฟล์ขนาดเล็กจำนวนมาก โดยให้ความสำคัญกับความเร็วในการซิงค์มากกว่ารูปแบบการจัดเก็บข้อมูลบนดิสก์ Syncthing เหมาะสำหรับบุคคลที่ต้องการซิงค์ข้อมูลระหว่างอุปกรณ์ของตนเองโดยไม่จำเป็นต้องแชร์ลิงก์ให้บุคคลภายนอก ส่วน Object storage เหมาะสำหรับการทำคลังข้อมูล (archive) ซึ่งเป็นพื้นที่เก็บข้อมูลราคาประหยัดที่นานๆ ครั้งจะมีการเข้าถึง

ควรเลือกจากวิธีการทำงานของการซิงค์ก่อนที่จะเปรียบเทียบฟีเจอร์ เพราะรายการฟีเจอร์มักจะดูคล้ายคลึงกันหมด สิ่งที่จะตัดสินว่าคุณจะยังคงพอใจกับการใช้งานในอีก 6 เดือนข้างหน้าหรือไม่ คือ Topology หรือการกำหนดว่าเครื่องใดจะเป็นเครื่องหลักที่เครื่องอื่นต้องยึดตามเป็นมาตรฐาน

รูปแบบการซิงค์: เซิร์ฟเวอร์หลัก หรือการเชื่อมต่อระหว่างอุปกรณ์โดยไม่มีเซิร์ฟเวอร์

มีการออกแบบสองรูปแบบที่นำมาพิจารณา และเนื้อหาส่วนใหญ่หลังจากนี้จะขึ้นอยู่กับรูปแบบที่คุณเลือก

เซิร์ฟเวอร์หลัก (Server of record): Nextcloud, Seafile และ object storage ทั้งหมดทำงานในลักษณะนี้ เครื่องหนึ่งเครื่อง ซึ่งมักจะเป็น VPS (virtual private server) จะทำหน้าที่เก็บสำเนาที่เป็นต้นฉบับ อุปกรณ์ทุกเครื่องจะสื่อสารกับเครื่องนั้น แล็ปท็อปของคุณสามารถปิดเครื่องไปเป็นเดือน เมื่อกลับมาเปิดใหม่ก็จะสามารถซิงค์ข้อมูลให้เป็นปัจจุบันได้ด้วยตัวเอง โทรศัพท์ที่มีพื้นที่ว่าง 6 GB สามารถเก็บข้อมูลเพียงบางส่วนในขณะที่เซิร์ฟเวอร์เก็บข้อมูลทั้งหมดไว้ เบราว์เซอร์สามารถเข้าถึงไฟล์ได้ ซึ่งเป็นเหตุผลว่าทำไมลิงก์สำหรับแชร์จึงสามารถใช้งานได้

การเชื่อมต่อระหว่างอุปกรณ์โดยไม่มีเซิร์ฟเวอร์ (Peers with no server): Syncthing ทำงานในลักษณะนี้ อุปกรณ์ต่างๆ จะค้นหากันและแลกเปลี่ยนรายการไฟล์โดยตรงผ่านการเชื่อมต่อที่เข้ารหัส ไม่มีสำเนาใดที่เป็นต้นฉบับ: ไฟล์จะอยู่บนอุปกรณ์ที่เก็บไฟล์นั้นไว้เท่านั้นและไม่มีที่อื่นอีก อุปกรณ์สองเครื่องต้องออนไลน์พร้อมกันเพื่อให้การเปลี่ยนแปลงส่งผ่านถึงกันได้ ไม่มี URL สำหรับส่งให้ใคร เพราะไม่มีเครื่องใดที่ทำหน้าที่ให้บริการหน้าเว็บ

ผลลัพธ์สี่ประการที่ตามมา ซึ่งเป็นสิ่งที่ผู้ใช้งานมักจะพบเจอในภายหลัง:

  • การส่งไฟล์ให้บุคคลที่ไม่ต้องการติดตั้งซอฟต์แวร์จำเป็นต้องใช้เซิร์ฟเวอร์หลัก ลิงก์คือ URL และ URL จำเป็นต้องมีกระบวนการที่คอยฟัง (listening) อยู่บนพอร์ต
  • การเข้าถึงไฟล์ของคุณจากเครื่องที่คุณไม่ได้เป็นผู้ควบคุม เช่น แล็ปท็อปของที่ทำงาน จำเป็นต้องใช้เซิร์ฟเวอร์หลัก
  • อุปกรณ์ที่ปิดไปหลายสัปดาห์จะซิงค์ข้อมูลให้เป็นปัจจุบันจากเซิร์ฟเวอร์ทันทีที่เปิดใช้งาน ในรูปแบบ peer-to-peer อุปกรณ์จะซิงค์ข้อมูลได้ก็ต่อเมื่อมีอุปกรณ์อื่นที่มีข้อมูลนั้นออนไลน์อยู่ด้วยเท่านั้น นี่คือเหตุผลที่ผู้ใช้ Syncthing จำนวนมากรันหนึ่ง instance บน VPS เพื่อให้ทำหน้าที่เป็น peer ที่ออนไลน์อยู่ตลอดเวลา
  • การใช้พื้นที่จัดเก็บข้อมูลมีความแตกต่างกัน เซิร์ฟเวอร์หลักจะเก็บสำเนาฉบับเต็มหนึ่งชุด บวกกับสิ่งที่อุปกรณ์แต่ละเครื่องเก็บไว้ในเครื่อง สี่ peer ที่แชร์โฟลเดอร์เดียวกันจะเก็บสำเนาฉบับเต็มไว้สี่ชุด เพราะ peer แต่ละเครื่องจะเก็บโฟลเดอร์นั้นไว้ทั้งหมด

Nextcloud: ผู้ใช้ กลุ่ม และลิงก์สาธารณะ

Nextcloud เป็นเว็บแอปพลิเคชันที่เขียนด้วย PHP โดยจะจัดเก็บไฟล์ของคุณไว้เป็นไฟล์ปกติภายใต้ไดเรกทอรีข้อมูล และติดตามสถานะผ่านฐานข้อมูล คุณสามารถแชร์โฟลเดอร์ให้กับผู้ใช้รายอื่น, กลุ่มผู้ใช้ หรือแชร์เป็นลิงก์สาธารณะที่กำหนดรหัสผ่านและวันหมดอายุได้ ระบบมีการเปิดใช้งานประวัติเวอร์ชันไว้เป็นค่าเริ่มต้น และไฟล์ที่ถูกลบจะไปอยู่ในถังขยะก่อนเสมอ สำหรับไคลเอนต์เดสก์ท็อปนั้นรองรับทั้ง Linux, macOS และ Windows ส่วนแอปบน iOS และ Android เป็นแอปอย่างเป็นทางการ หากเหตุผลที่คุณต้องการเลิกใช้ Dropbox คือการที่ผู้อื่นจำเป็นต้องได้รับไฟล์ของคุณ นี่คือคำตอบที่ตรงไปตรงมาที่สุด

ราคาที่ต้องจ่ายคือความซับซ้อนของส่วนประกอบต่างๆ การติดตั้งทั่วไปต้องรันเว็บเซิร์ฟเวอร์, PHP-FPM (ตัวจัดการกระบวนการ PHP), ฐานข้อมูลอย่าง MariaDB หรือ PostgreSQL และ Redis สำหรับการล็อกไฟล์ นอกจากนี้ยังมีงานเบื้องหลังที่รันทุกๆ 5 นาทีผ่าน cron หรือ systemd timer บน VPS ขนาด 1 GB ระบบสามารถเริ่มทำงานได้ แต่เมื่อมีการอัปโหลดไฟล์ขนาดใหญ่หรือรันคำสั่ง occ maintenance เป็นเวลานาน อาจทำให้เกิดปัญหา out-of-memory killer ได้ ควรใช้ RAM ขนาด 2 GB เป็นขั้นต่ำสำหรับผู้ใช้จำนวนน้อย และคาดหวังว่าจะต้องใช้ถึง 4 GB เมื่อเปิดใช้งานแอปพลิเคชันเพิ่มเติม อีกประเด็นคือเรื่องการอัปเกรด เนื่องจากแอปใน app-store ถูกสร้างขึ้นมาให้รองรับ core release เฉพาะรุ่น ดังนั้นควรตรวจสอบให้แน่ใจว่าแอปที่คุณใช้งานรองรับเวอร์ชันหลักถัดไปก่อนที่จะทำการอัปเกรด

Nextcloud จะทำงานช้าลงเมื่อบัญชีเดียวมีไฟล์ขนาดเล็กจำนวนหลายแสนไฟล์ เนื่องจากแต่ละไฟล์คือหนึ่งแถวในตาราง file cache และเป็นไฟล์จริงบนดิสก์ ซึ่งไคลเอนต์เดสก์ท็อปจะไล่ตรวจสอบทีละไฟล์ สำหรับการใช้งานในระดับครัวเรือน ปัญหานี้จะไม่เกิดขึ้น การกำหนดขนาดทรัพยากร, TLS (transport layer security) และการสำรองข้อมูลได้อธิบายไว้ใน การติดตั้ง Nextcloud บน Docker พร้อม TLS และการสำรองข้อมูล ซึ่งเป็นจุดที่คุณควรไปศึกษาต่อเมื่อตัดสินใจเลือกใช้งานแล้ว

คำเตือนเรื่องขอบเขตการใช้งาน: Nextcloud สามารถจัดการปฏิทิน, รายชื่อผู้ติดต่อ, บันทึกย่อ และคลังรูปภาพของคุณได้ แต่ทุกแอปที่คุณเปิดใช้งานจะเพิ่มงานเบื้องหลังและเพิ่มโอกาสที่จะเกิดปัญหาในการอัปเกรด หากปัญหาหลักของคุณคือเรื่องรูปภาพ เครื่องมือเฉพาะทางจะจัดการได้ดีกว่า: ดูที่ Immich ในฐานะตัวแทน Google Photos สำหรับการ self-host หากปัญหาหลักคือเรื่องเอกสารและวิกิ ให้พิจารณา ทางเลือกอื่นแทน Notion สำหรับการ self-host แทนที่จะติดตั้งแอปเพิ่มลงบนเซิร์ฟเวอร์ไฟล์ของคุณ การแก้ไขเอกสารเหล่านั้นผ่านเบราว์เซอร์จำเป็นต้องใช้เซิร์ฟเวอร์แยกต่างหาก ไม่ใช่แค่แอปใน Nextcloud ดังนั้นควรเปรียบเทียบ OnlyOffice กับ Collabora ก่อนที่จะสรุปว่า RAM ขนาด 2 GB ยังคงเพียงพอสำหรับความต้องการของคุณ

Seafile: ออกแบบมาเพื่อรองรับไฟล์ขนาดเล็กจำนวนมหาศาล

Seafile จะแบ่งไฟล์ทุกไฟล์ออกเป็นบล็อกและจัดเก็บไว้ใน object store ภายในโดยอ้างอิงจาก content hash ซึ่งเป็นแนวคิดเดียวกับที่ git ใช้สำหรับ object ของตน หน่วยของการซิงค์และการแชร์คือ library แทนที่จะเป็นโครงสร้างโฟลเดอร์ เนื่องจากไคลเอนต์จะอัปโหลดบล็อกและ commit เพียงหนึ่งรายการแทนที่จะส่งคำขอแยกตามไฟล์ การซิงค์ไดเรกทอรีที่มีไฟล์ขนาดเล็ก 100,000 ไฟล์จึงเสร็จสิ้นเร็วกว่าโปรโตคอลที่ทำงานแบบไฟล์ต่อไฟล์มาก บล็อกที่เหมือนกันจะถูกจัดเก็บเพียงครั้งเดียว ดังนั้นการคัดลอกไฟล์ขนาดใหญ่ชุดที่สองจึงแทบไม่เปลืองพื้นที่จัดเก็บเพิ่มเติม

ข้อแลกเปลี่ยนคือไฟล์ของคุณบนเซิร์ฟเวอร์จะไม่ใช่ไฟล์ในรูปแบบปกติอีกต่อไป หากคุณเปิดไดเรกทอรีจัดเก็บข้อมูล คุณจะพบเพียงไฟล์ object ที่มีชื่อเป็นเลขฐานสิบหก การดึงข้อมูลออกมาจำเป็นต้องใช้ไคลเอนต์ของ Seafile หรือเครื่องมือ export และ fsck ของ Seafile เอง การสำรองข้อมูลยังคงทำได้ตามปกติเนื่องจาก object เหล่านั้นเป็นไฟล์ทั่วไป แต่คุณไม่สามารถกู้คืนสเปรดชีตเพียงไฟล์เดียวด้วย cp ได้ โปรดตัดสินใจให้แน่ชัดว่าเงื่อนไขนี้ยอมรับได้หรือไม่ เพราะนี่คือคุณสมบัติที่ผู้ใช้งานมักจะมานึกเสียดายในภายหลัง

Seafile มีรุ่น community edition และรุ่น professional edition แบบเสียค่าใช้จ่าย โดยขอบเขตฟีเจอร์ระหว่างสองรุ่นนี้มีการเปลี่ยนแปลงอยู่เสมอ ดังนั้นโปรดอ่านเงื่อนไขปัจจุบันบนเว็บไซต์ของพวกเขาก่อนที่คุณจะวางแผนการใช้งานในทีมโดยอิงจากฟีเจอร์เฉพาะอย่าง มีไคลเอนต์อย่างเป็นทางการสำหรับเดสก์ท็อปและมือถือให้ใช้งาน Library ที่เข้ารหัสจะถูกเข้ารหัสตั้งแต่ฝั่งไคลเอนต์ ดังนั้นเซิร์ฟเวอร์จะจัดเก็บเฉพาะ ciphertext ที่ไม่สามารถอ่านได้ หากคุณทำรหัสผ่านหาย library นั้นจะไม่สามารถอ่านได้อีกต่อไปแม้แต่ตัวคุณเอง การเปิด library ที่เข้ารหัสผ่านเบราว์เซอร์หมายถึงการส่งรหัสผ่านนั้นให้กับ web session ดังนั้นการรับประกันความปลอดภัยในระดับสูงสุดจึงจำกัดอยู่เพียงการใช้งานผ่านไคลเอนต์เดสก์ท็อปและมือถือเท่านั้น

ต้นทุนทรัพยากรที่ใช้ใกล้เคียงกับ Nextcloud คุณจำเป็นต้องรันฐานข้อมูล, memory cache และกระบวนการแอปพลิเคชันอีกสองรายการ ดังนั้นหน่วยความจำ 2 GB จึงเป็นค่าเริ่มต้นที่เหมาะสมอีกครั้ง

Syncthing: ไม่ต้องเข้าสู่ระบบ

Syncthing เป็นไฟล์ binary ภาษา Go เพียงไฟล์เดียว มันทำหน้าที่เฝ้าดูโฟลเดอร์ ค้นหาอุปกรณ์คู่สนทนาผ่าน discovery server หรือ relay และซิงค์ข้อมูลโดยตรงระหว่างอุปกรณ์ ไม่มีการสร้างบัญชีผู้ใช้และไม่มีหน้าล็อกอินสำหรับผู้ที่คุณต้องการซิงค์ข้อมูลด้วย คุณสามารถจับคู่อุปกรณ์สองเครื่องผ่าน ID และกดยอมรับโฟลเดอร์ในแต่ละฝั่งได้เลย นี่เป็นซอฟต์แวร์ที่ดูแลรักษาง่ายที่สุดในบรรดาเครื่องมือทั้งหมด เพราะมีส่วนประกอบที่ต้องรันน้อยมาก

สิ่งที่คุณต้องแลกคือความสามารถในการแชร์ข้อมูลทั้งหมด โดยในช่องรายการระบุไว้ว่า Device pairing only, no links คุณไม่สามารถส่งลิงก์ให้ลูกค้า นักบัญชี หรือญาติพี่น้องได้ อีกจุดหนึ่งคือเรื่องอุปกรณ์พกพา: Android app, no official iOS คำถามที่พบบ่อย (FAQ) ของโครงการระบุไว้อย่างชัดเจนว่า "ทีมงาน Syncthing ในปัจจุบันไม่มีแผนที่จะรองรับ iOS อย่างเป็นทางการในอนาคตอันใกล้" เนื่องจาก iOS มีข้อจำกัดด้านการประมวลผลเบื้องหลังที่ทำให้การซิงค์ข้อมูลอย่างต่อเนื่องทำได้ยาก ผู้ใช้ iOS จึงต้องพึ่งพาแอปพลิเคชันจากนักพัฒนาภายนอกแทน

การใช้ทรัพยากรอยู่ในระดับต่ำ โดยมีสิ่งหนึ่งที่ควรทราบคือ Syncthing จะเก็บดัชนีสำหรับทุกไฟล์ที่ซิงค์ ดังนั้นการใช้หน่วยความจำและการสแกนครั้งแรกจะเพิ่มขึ้นตามจำนวนไฟล์ ไม่ใช่ตามขนาดรวมของข้อมูล การทำ hashing โฟลเดอร์ขนาดใหญ่ในครั้งแรกจะใช้ CPU สูงเป็นระยะเวลาหนึ่งก่อนที่จะกลับสู่สภาวะปกติ ซึ่งบน VPS แผนที่เล็กที่สุดก็สามารถใช้งานได้อย่างราบรื่น

กรณีที่เกิดความขัดแย้งของข้อมูล (Conflicts) ระบบจะจัดการโดยการเก็บไว้ทั้งสองเวอร์ชัน เมื่ออุปกรณ์สองเครื่องแก้ไขไฟล์เดียวกันในขณะที่เชื่อมต่อกันไม่ได้ Syncthing จะเปลี่ยนชื่อไฟล์สำเนาหนึ่งชุดและเก็บไว้ข้างไฟล์เดิม เพื่อให้คุณพบไฟล์ในรูปแบบ notes.sync-conflict-20260802-141530-K7MB3QT.md ข้อมูลจะไม่สูญหาย แต่ระบบก็ไม่ได้ทำการรวมไฟล์ (merge) ให้โดยอัตโนมัติ คุณจะต้องเป็นผู้จัดการแก้ไขความขัดแย้งด้วยตนเอง

Object storage กับไคลเอนต์: พื้นที่เก็บข้อมูลราคาประหยัด ไม่ใช่โฟลเดอร์สำหรับซิงค์

Object storage หมายถึง bucket ที่รองรับโปรโตคอล S3 (simple storage service) ไม่ว่าจะเป็นการติดตั้ง MinIO ด้วยตนเองหรือเช่าจากผู้ให้บริการ คุณสามารถเข้าถึงได้ผ่านเครื่องมืออย่าง rclone จากบรรทัดคำสั่ง หรือใช้เดสก์ท็อปไคลเอนต์ที่จำลอง bucket ให้เป็นไดรฟ์ การแชร์ไฟล์ทำได้โดยใช้ presigned URL ซึ่งเป็นลิงก์ที่คุณสร้างขึ้นและมีเวลาหมดอายุในตัว ส่วนการทำ versioning เป็นการตั้งค่าระดับ bucket: Bucket versioning, off by default ดังนั้นควรเปิดใช้งานตั้งแต่ตอนสร้าง bucket เพราะการตั้งค่านี้จะไม่มีผลกับออบเจกต์ที่คุณอัปโหลดไปก่อนหน้า

ความผิดพลาดมักเกิดขึ้นเมื่อพยายามใช้งาน bucket เหมือนเป็นโฟลเดอร์สำหรับซิงค์ข้อมูล โดยปกติจะไม่มีกระบวนการใดคอยเฝ้าดูไดรฟ์ Documents ของคุณ rclone bisync ทำหน้าที่ซิงค์แบบสองทาง และเอกสารประกอบของ rclone เองก็ได้ระบุไว้อย่างชัดเจนถึงความระมัดระวังที่จำเป็น สิ่งที่ object storage ทำได้ดีเยี่ยมคือการเป็นฐานรองรับข้อมูล เช่น เป็นปลายทางสำหรับสำรองข้อมูล หรือเป็นชั้นจัดเก็บข้อมูลเบื้องหลังแอปพลิเคชัน การติดตั้ง S3 compatible object storage ด้วย MinIO จะอธิบายรายละเอียดในฝั่งเซิร์ฟเวอร์

ต้นทุนของทรัพยากรในกรณีนี้มีความเฉพาะตัว MinIO เป็นไฟล์ binary เพียงไฟล์เดียวและใช้ทรัพยากรน้อยมากในขณะที่ไม่ได้ทำงาน สิ่งที่คุณต้องจ่ายจริงคือค่าพื้นที่ดิสก์ ซึ่งบน VPS หมายถึง block volume ที่เช่าตามขนาด gigabyte บวกกับค่า bandwidth ที่ใช้ในการรับส่งออบเจกต์เข้าและออก ค่าใช้จ่ายเหล่านี้ไม่ปรากฏใน free -h ดังนั้นโปรดอ่าน ต้นทุนที่แท้จริงของ VPS ต่อเดือน ก่อนที่คุณจะกำหนดขนาดพื้นที่จัดเก็บข้อมูลถาวร

เปรียบเทียบการแชร์ ไคลเอนต์มือถือ และการจัดการเวอร์ชัน

ChartSharing, mobile clients and versioning, by tool
The data behind this chart
[
  {
    "tool": "Nextcloud",
    "sharing": "Public links, users and groups",
    "mobile": "Official iOS and Android apps",
    "versioning": "On by default, plus trash"
  },
  {
    "tool": "Seafile",
    "sharing": "Public links with password and expiry",
    "mobile": "Official iOS and Android apps",
    "versioning": "Library history and snapshots"
  },
  {
    "tool": "Syncthing",
    "sharing": "Device pairing only, no links",
    "mobile": "Android app, no official iOS",
    "versioning": "Optional per folder, off by default"
  },
  {
    "tool": "Object storage",
    "sharing": "Presigned URLs you generate",
    "mobile": "Third party clients only",
    "versioning": "Bucket versioning, off by default"
  }
]

ตัวเลือกทั้งหมด 4 รายการถูกแบ่งออกเป็นบรรทัดเดียว โดย 3 รายการสามารถส่งไฟล์ให้บุคคลภายนอกได้โดยใช้เพียงเว็บเบราว์เซอร์ ส่วนอีก 1 รายการรองรับเฉพาะอุปกรณ์ที่คุณเป็นเจ้าของเท่านั้น สำหรับฟีเจอร์การจัดการเวอร์ชันของ Seafile ในส่วน Library history and snapshots มีข้อควรทราบคือ ประวัติการแก้ไขจะถูกเก็บแยกตามไลบรารี ดังนั้นหากลบไลบรารีทิ้ง ประวัติทั้งหมดที่เกี่ยวข้องจะถูกลบไปด้วย

การนำข้อมูลของคุณออกมาอีกครั้ง

ค่าใช้จ่ายในการย้ายออกเป็นสิ่งที่ตรวจสอบได้ง่ายในตอนนี้ แต่จะมีราคาแพงหากเพิ่งมาพบในภายหลัง ดังนั้นควรตรวจสอบให้แน่ใจก่อนที่คุณจะตัดสินใจใช้งาน

Nextcloud จัดเก็บไฟล์จริงไว้ในไดเรกทอรีจริง ดังนั้นการทำ tar ของไดเรกทอรีข้อมูลจะช่วยให้คุณได้เอกสารกลับคืนมาแม้ว่าแอปพลิเคชันจะไม่สามารถเริ่มทำงานได้อีกต่อไป Syncthing ทำงานในลักษณะเดียวกันบนทุกอุปกรณ์ ซึ่งถือเป็นกลยุทธ์การย้ายออกที่แข็งแกร่งที่สุดในที่นี้ เนื่องจากไฟล์จะถูกวางไว้บนแต่ละอุปกรณ์โดยตรง ส่วนที่เก็บข้อมูลแบบ object store ของ Seafile จำเป็นต้องใช้ Seafile หรือเครื่องมือส่งออกของมันเพื่อประกอบบล็อกข้อมูลกลับเป็นไฟล์ และสำหรับการจัดเก็บข้อมูลแบบ object storage คุณสามารถใช้ rclone หรือเครื่องมือที่เทียบเท่ากันได้ ซึ่งทำได้ด้วยคำสั่งเดียวเท่านั้น

การซิงค์ไม่ใช่การสำรองข้อมูล และช่องว่างนี้คือจุดที่ทำให้ข้อมูลสูญหาย

เครื่องมือทุกตัวที่กล่าวถึงในที่นี้จะคัดลอกการเปลี่ยนแปลงระหว่างเครื่อง การลบไฟล์ถือเป็นการเปลี่ยนแปลงอย่างหนึ่ง หากคุณลบโฟลเดอร์บนแล็ปท็อป ไคลเอนต์จะแจ้งไปยังเซิร์ฟเวอร์ เซิร์ฟเวอร์จะดำเนินการตามนั้น และอุปกรณ์อื่นทุกเครื่องก็จะลบโฟลเดอร์นั้นออกเช่นกัน มัลแวร์เรียกค่าไถ่ (Ransomware) ก็ใช้ช่องทางเดียวกันนี้ คือเข้ารหัสไฟล์ในเครื่อง ไคลเอนต์ตรวจพบว่าไฟล์มีการแก้ไข จึงอัปโหลดเวอร์ชันที่ถูกเข้ารหัสขึ้นไป การซิงค์ทำงานได้อย่างถูกต้อง แต่ข้อมูลของคุณยังคงสูญหาย

ถังขยะและประวัติเวอร์ชันช่วยบรรเทาปัญหานี้ได้ แต่สิ่งเหล่านี้มีวันหมดอายุ สามารถถูกล้างโดยบัญชีผู้ใช้เดียวกับที่ทำผิดพลาด และยังคงอยู่บนดิสก์ลูกเดียวกับข้อมูลจริง หากโวลุ่มเสียหาย ข้อมูลและประวัติทั้งหมดก็จะสูญหายไปพร้อมกัน

การสำรองข้อมูลคือการทำสำเนาแยกต่างหาก บนฮาร์ดแวร์แยกต่างหาก โดยมีการกำหนดตารางเวลา และคุณต้องเคยทดสอบการกู้คืนข้อมูลจากสำเนาเหล่านั้นอย่างน้อยหนึ่งครั้งแล้ว การสำรองข้อมูลฐานข้อมูลต้องทำไปพร้อมกับการสำรองไฟล์ การกู้คืนเฉพาะไดเรกทอรีข้อมูลของ Nextcloud โดยไม่มีฐานข้อมูล จะทำให้คุณได้อินสแตนซ์ที่ไม่รู้จักไฟล์เหล่านั้น และการใช้ occ files:scan ในภายหลังจะกู้คืนได้เพียงไฟล์ แต่จะสูญเสียการแชร์และประวัติเวอร์ชันที่เก็บอยู่ในตารางฐานข้อมูลเหล่านั้นไป การสำรองข้อมูลด้วย restic ตามตารางเวลาจาก VPS ครอบคลุมถึงวิธีการสำรองข้อมูลแบบเข้ารหัสและลดความซ้ำซ้อน (deduplicated) รวมถึงวิธีการทดสอบการกู้คืนแทนที่จะคาดเดาไปเองว่าข้อมูลจะกู้คืนได้จริง

สิ่งที่ผมเลือก

สำหรับผู้อ่านส่วนใหญ่ ผมแนะนำ Nextcloud สิ่งที่ผู้ใช้มักจะโหยหาหลังจากเลิกใช้ Dropbox คือการส่งลิงก์ให้ผู้อื่นโดยที่ผู้รับไม่ต้องติดตั้งซอฟต์แวร์ใดๆ และการเปิดไฟล์บนโทรศัพท์มือถือ Nextcloud ตอบโจทย์ทั้งสองอย่างด้วยแอปพลิเคชันอย่างเป็นทางการโดยไม่มีค่าใช้จ่ายรายเดือน และการใช้ RAM 2 GB ถือเป็นราคาที่สมเหตุสมผลสำหรับฟังก์ชันนี้ ผมมีข้อยกเว้นอยู่ 2 กรณี หากโฟลเดอร์นั้นเป็นของคุณเพียงคนเดียวและอยู่บนฮาร์ดแวร์ที่คุณเป็นเจ้าของเท่านั้น ให้ใช้ Syncthing คุณจะได้ไม่ต้องคอยแพตช์เซิร์ฟเวอร์และไม่ต้องกังวลเรื่องการป้องกันการเข้าสู่ระบบผ่านเว็บ หากคุณต้องการซิงค์ไดเรกทอรีทำงานที่มีไฟล์จำนวนหลายแสนไฟล์ ให้ใช้ Seafile และยอมรับการจัดเก็บข้อมูลแบบ opaque เพื่อแลกกับความเร็ว ทั้งนี้ควรใช้ Object storage เป็นปลายทางสำหรับการสำรองข้อมูลภายใต้ซอฟต์แวร์ที่คุณเลือก ไม่ใช่ใช้เป็นเครื่องมือซิงค์ข้อมูลหลักที่อยู่หน้าแอปพลิเคชัน

FAQ

Syncthing เป็นระบบสำรองข้อมูลสำหรับแล็ปท็อปของฉันหรือไม่?

ไม่ ระบบนี้ไม่ใช่การสำรองข้อมูล Syncthing จะคัดลอกการเปลี่ยนแปลงระหว่างอุปกรณ์ และการลบไฟล์ถือเป็นการเปลี่ยนแปลงรูปแบบหนึ่ง ดังนั้นไฟล์ที่คุณเผลอลบจะหายไปจากทุกอุปกรณ์ที่จับคู่ไว้ภายในเวลาไม่กี่วินาที คุณสามารถใช้ฟีเจอร์ file versioning ในแต่ละโฟลเดอร์เพื่อช่วยป้องกันได้ แต่ฟีเจอร์นี้จะถูกปิดไว้จนกว่าคุณจะเปิดใช้งานด้วยตนเองในแต่ละโฟลเดอร์ โปรดเก็บข้อมูลสำรองที่แท้จริงไว้บนฮาร์ดแวร์แยกต่างหาก โดยมีการกำหนดตารางเวลาสำรองข้อมูล และควรทดสอบการกู้คืนข้อมูลอย่างน้อยหนึ่งครั้งเพื่อให้มั่นใจว่ากระบวนการกู้คืนใช้งานได้จริง

ฉันสามารถรัน Nextcloud และ Syncthing บน VPS เดียวกันได้หรือไม่?

ได้ ทั้งสองบริการฟังบนพอร์ตที่ต่างกันจึงไม่เกิดความขัดแย้งกัน อย่างไรก็ตาม ห้ามกำหนดโฟลเดอร์ของ Syncthing ให้ชี้ไปยังไดเรกทอรีข้อมูลของ Nextcloud โดยตรง เนื่องจาก Nextcloud มีการติดตามไฟล์ทุกไฟล์ผ่านฐานข้อมูล ไฟล์ที่ถูกเพิ่มเข้ามาในดิสก์โดยตรงจะไม่ปรากฏในระบบจนกว่าคุณจะรัน occ files:scan และไฟล์ที่ถูกลบออกไปจะทำให้เกิดแถวข้อมูลในฐานข้อมูลที่ไม่มีไฟล์รองรับ คุณควรจัดสรรไดเรกทอรีแยกต่างหากให้ Syncthing หรือเชื่อมต่อไดเรกทอรีนั้นเข้ากับ Nextcloud ในฐานะ external storage เพื่อให้ Nextcloud รับทราบการมีอยู่ของไฟล์เหล่านั้น

บริการใดที่ช่วยให้ฉันแชร์ลิงก์กับผู้ที่ไม่มีบัญชีได้?

ทั้ง Nextcloud และ Seafile สามารถสร้างลิงก์สาธารณะได้ โดยสามารถกำหนดรหัสผ่านและวันหมดอายุของลิงก์ได้ ส่วน object storage จะให้ presigned URL ซึ่งจะหยุดทำงานโดยอัตโนมัติหลังจากครบกำหนดเวลาที่คุณตั้งไว้ ในขณะที่ Syncthing ไม่มีฟีเจอร์นี้ เนื่องจากรูปแบบการแชร์ของ Syncthing คือการจับคู่อุปกรณ์ ดังนั้นอีกฝ่ายจำเป็นต้องติดตั้ง Syncthing, ส่ง device ID ให้คุณ และกดยอมรับโฟลเดอร์ก่อน

เซิร์ฟเวอร์ต้องใช้พื้นที่ดิสก์เท่าใด?

สำหรับเซิร์ฟเวอร์ที่เป็นแหล่งเก็บข้อมูลหลัก ให้วางแผนพื้นที่โดยคำนวณจากขนาดข้อมูลทั้งหมดที่แชร์ บวกกับพื้นที่สำหรับประวัติเวอร์ชัน (version history) และถังขยะ (trash) รวมถึงพื้นที่ว่างสำหรับการอัปโหลดที่กำลังดำเนินการอยู่ ประวัติเวอร์ชันเป็นส่วนที่ผู้ใช้มักประเมินต่ำเกินไป การเก็บทุกเวอร์ชันของไฟล์ขนาด 2 GB ที่มีการเปลี่ยนแปลงทุกวันจะทำให้พื้นที่เต็มอย่างรวดเร็ว ดังนั้นควรตั้งค่านโยบายการเก็บรักษาข้อมูล (retention policy) ตั้งแต่เนิ่นๆ การจัดเก็บข้อมูลไว้บน volume แยกต่างหากจะช่วยป้องกันไม่ให้การขยายตัวของข้อมูลส่งผลกระทบต่อ root filesystem ซึ่งหากดิสก์เต็มจะทำให้เซิร์ฟเวอร์หยุดทำงานทั้งหมดแทนที่จะเป็นเพียงการอัปโหลดที่ล้มเหลวเพียงรายการเดียว