Rsync
與遠端伺服器有效同步 100 萬個文件的選項?
在我工作的一家公司,我們有一個叫做“播放列表”的東西,它們是每個約 100-300 字節的小文件。大約有一百萬個。每小時大約有 100,000 人更換。這些播放列表需要每小時上傳到不同大陸的 10 個其他遠端伺服器,並且最好在 2 分鐘內快速完成。非常重要的是,在 master 上刪除的文件也會在所有副本上刪除。我們目前使用 Linux 作為我們的基礎設施。
我正在考慮使用 -W 選項嘗試 rsync 來複製整個文件而不比較內容。我還沒有嘗試過,但也許對 rsync 有更多經驗的人可以告訴我這是否是一個可行的選擇?
還有哪些值得考慮的選擇?
**更新:**我選擇了 lsyncd 選項作為答案,但這只是因為它是最受歡迎的。其他建議的替代方案也以它們自己的方式有效。
由於也可以接受即時更新,因此您可以使用lsyncd。
它監視目錄(inotify)並將
rsync
更改為從屬。在啟動時它會做一個 full
rsync
,所以這需要一些時間,但之後只傳輸更改。遞歸監視目錄是可能的,如果從伺服器關閉,將重試同步,直到它恢復。
如果這都在單個目錄(或目錄的靜態列表)中,您也可以使用incron。
缺點是它不允許遞歸查看文件夾,您需要自己實現同步功能。