Rsync

具有數十萬個小文件的伺服器之間的實時文件同步

  • February 7, 2017

我的任務是創建兩台 CentOS 7 伺服器,其中不僅要複製數據庫,還要復製文件。現在我的問題是,如果不是一百萬個大小從幾 KB 到 ~ 1 GB 的文件,那麼可能會有幾十萬個文件。

我讀過關於

  • 銘文
  • lysncd
  • git-附件
  • ChironFS

現在,如果您一直在使用它或目前正在使用它,我想詢問您對其中任何一種的體驗。關於複製和刪除的文件更改的性能如何?我非常害怕使用任何 rsync,因為我的經驗是它對於很多小文件不是很快,因此我不能真正將它用於實時文件複製。還是我錯了?請證明我錯了。:)

或者也許我需要第三台和第四台伺服器作為文件伺服器?如果是,那麼問題仍然存在:如何在兩台伺服器之間實時復製文件?

乾杯!

如果您的伺服器在同一個 LAN 上,那麼集群文件系統(即:GlusterFS)或共享儲存解決方案(即:通過 NFS)應該是更好的選擇。

如果您的伺服器位於不同的位置,並且只有 WAN 連接,則上述解決方案將無法正常工作。在這種情況下,如果您只需要單向複製(即:從活動伺服器到備份伺服器),lsyncd是一個很好的解決方案。另一種解決方案是csync2. 最後,另一種可能是使用DRBD + DRBD Proxy(請注意,它的代理組件是一個商業外掛)。

最後,如果您的伺服器只有 WAN 連接並且您需要雙向複製(即:兩台伺服器同時處於活動狀態),則基本上不存在靈丹妙藥。我將列出一些可能性,但我遠不推薦類似的設置:

  • unison使用它的實時外掛
  • psync,我正是為解決類似問題而寫的(但請注意,它有自己的特質,我不提供支持
  • syncthing使用它的實時外掛(但它有很大的限制,即它不保留 ACL 也不保留文件的所有者/組)

引用自:https://serverfault.com/questions/826526