Theo cây tệp lớn, tôi có nghĩa là khoảng 200k tệp và phát triển mọi lúc. Một số lượng tương đối nhỏ các tệp đang được thay đổi trong bất kỳ giờ nào.
Theo hai chiều, tôi có nghĩa là những thay đổi có thể xảy ra trên một trong hai máy chủ và cần được đẩy sang máy chủ khác, vì vậy rsync có vẻ không phù hợp.
Bởi xa tôi có nghĩa là các máy chủ đều ở trong các trung tâm dữ liệu, nhưng về mặt địa lý cách xa nhau. Hiện tại chỉ có 2 máy chủ, nhưng có thể mở rộng theo thời gian.
Theo thời gian thực, sẽ có một chút độ trễ giữa quá trình đồng bộ hóa, nhưng việc chạy một cron cứ sau 1-2 phút có vẻ không ổn, vì một phần rất nhỏ của các tệp có thể thay đổi trong bất kỳ giờ nào, hãy để một phút.
EDIT : Điều này đang chạy trên VPS vì vậy tôi có thể bị hạn chế về các loại công cụ cấp kernel mà tôi có thể làm. Ngoài ra, các VPS không giàu tài nguyên, vì vậy tôi rất ngại các giải pháp cần nhiều ram (như Gluster?).
Cách tiếp cận tốt nhất / "được chấp nhận" nhất để thực hiện điều này là gì? Điều này có vẻ như là một nhu cầu chung, nhưng tôi chưa thể tìm thấy một cách tiếp cận thường được chấp nhận, điều này thật đáng ngạc nhiên. (Tôi đang tìm kiếm sự an toàn của số đông. :)
Tôi đã đi qua lsyncd để kích hoạt đồng bộ hóa ở cấp độ thay đổi hệ thống tập tin. Điều đó có vẻ thông minh mặc dù không phải là siêu phổ biến, và tôi hơi bối rối bởi các cách tiếp cận lsyncd khác nhau. Chỉ sử dụng lsyncd với rsync, nhưng dường như điều này có thể dễ bị phá vỡ vì tính hai chiều vì rsync không có khái niệm về bộ nhớ (ví dụ: để biết liệu một tệp bị xóa trên A có nên bị xóa trên B hay không hoặc đó là một tệp mới trên B cần được sao chép vào A). Lipync dường như chỉ là một triển khai lsyncd + rsync, phải không?
Sau đó, sử dụng lsyncd với csync2 , như thế này: https://icicimov.github.io/blog/devops/File-system-sync-with-Csync2-and-Lsyncd/ ... Tôi đang nghiêng về phương pháp này, nhưng csync2 hơi kỳ quặc, mặc dù tôi đã làm một thử nghiệm thành công về nó. Tôi hầu hết lo ngại rằng tôi đã không thể tìm thấy nhiều xác nhận của cộng đồng về phương pháp này.
Mọi người ở đây dường như thích Unison rất nhiều, nhưng dường như nó không còn được phát triển tích cực và không rõ ràng rằng nó có một trình kích hoạt tự động như lsyncd.
Tôi đã thấy Gluster được đề cập, nhưng có lẽ quá mức cho những gì tôi cần?
CẬP NHẬT: fyi- Tôi đã kết thúc với giải pháp ban đầu tôi đã đề cập: lsyncd + csync2. Nó dường như hoạt động khá tốt và tôi thích cách tiếp cận kiến trúc của việc các máy chủ được nối rất lỏng lẻo, để mỗi máy chủ có thể tự hoạt động vô thời hạn bất kể chất lượng liên kết giữa chúng.