基於sersync海量檔案實時同步
專案需求:最近涉及到數百萬張從本地儲存遷移到雲儲存,為了使完成遷移,並保證無缺失,業務不中斷,決定採用實時同步,同步完後再做流量切換。在實時同步方案中進行了幾種嘗試。
方案1:rsync+inotify同步,最先想到的是此方案,先看下指令碼
此前在多台伺服器間同步**就用此方法,基本上沒問題,因為**檔案數並不多,但這次面對大量小檔案時其缺陷暴露了,同步非常耗時,並且沒不能做到實時同步。為什麼呢?每次新增資料rsync都會對全目錄掃瞄,對比檔案差異,並且是全量同步,耗時很長,新增的資料只能等上一次全量同步完再觸發同步,這樣就沒法實時同步,因此此方案最終被我放棄。
方案2:採用sersync,sersync由金山的一位同學開發,實際上是整合了inotify和rsync上做的二次開發,對監聽事件進行了過濾,並且同步時只同步單個檔案或單個目錄,對於數百萬的檔案或目錄比較多的的情況,只用同步單個子目錄而不是整個目錄,並且支援多執行緒同步,也就是說可同時同步多個子目錄,這樣同步效率大大提高,並且做到了實時同步。
sersync實現實時同步
環境準備 主機名外網ip 內網ip 角色部署服務 web01 10.0.0.7 172.16.1.7 rsync的客戶端,nfs的客戶端,rsync,nfs,apache,php web02 10.0.0.8 172.16.1.8 rsync的客戶端,nfs的客戶端,rsync,nfs,apache...
sersync 開源伺服器檔案實時同步工具
這是我貢獻的第乙個開源軟體sersync,主要用於伺服器同步,web映象等功能。基於boost1.41.0,inotify api,rsync command.開發。測試環境centos,ubuntu。利用inotify與rsync對伺服器進行實時同步,其中inotify用於監控檔案系統事件,rsy...
企業實時同步方案 Sersync介紹
sersync 專案利用 inotify 和 rsync 技術實現對伺服器資料實時同步的解決方案,其中 inotify 用於監控 sersync 所在伺服器上檔案系統的事件變化,而 rsync 是目前廣泛使用的本地以及異地資料同步工具,其優點是只對變化的目錄資料操作,甚至是乙個檔案不同的部分進行同步...