多機數據同步機制Unison+inotify-tools

        今天早上在QQ羣裏無意中,聽到一個有關不同機器的雙向實時同步的問題,想到後,發現數據庫當中(mysql),好像對雙向實時同步技術貌似很侷限,更不要說要做到多機的雙向實時同步了,一次便在網上進行各種谷歌,百度的文檔搜索,希望查詢其中的優秀案例,以供參考,最後無果而終,網上說有關文件的相關雙向同步,可以做到實時的案例,但在DB層上,無法進行穿越,沒有找到相關案例;以下是unison和inotify的相關同步機制;此同步在web集羣中,同步雙向實時的數據文件非常好;記錄此文以此留下相關記錄!

Unison: 實現雙向同步
Inotify tools: 監控文件系統
OpenSSH: 遠程主機間的文件傳輸

以下是網上找到的相關軟件的定義;

Unison是一款跨平臺的文件同步工具,不僅支持本地對本地同步,也支持通過SSH、RSH和Socket等網絡協議進行同步。更棒的是,Unison支持雙向同步操作,你既可以從A同步到B,也可以從B同步到A,這些都不需要額外的設定。

Inotify是一種文件變化通知機制,Linux內核從2.6.13開始引入。在BSD和Mac OS系統中比較有名的是kqueue,它可以高效地實時跟蹤Linux文件系統的變化。近些年來,以fsnotify作爲後端,幾乎所有的主流Linux發行版都支持Inotify機制。

inotify-tools 是爲linux下inotify文件監控工具提供的一套c的開發接口庫函數,同時還提供了一系列的命令行工具,這些工具可以用來監控文件系統的事件。 inotify-tools是用c編寫的,除了要求內核支持inotify外,不依賴於其他。

以下是對於多級的配置雙向實時同步的擴譜圖;


羣集中,同步在多機之間進行,而unison的同步功能僅支持雙機。因此我們設計了一個星型的拓撲結構,來實現多機的同步。其設計思想就是利用unison的雙向同步功能,指定一臺服務器爲星型結構的主服務器(server1),剩餘服務器與其進行雙向同步。這樣,任何一臺服務器上的文件變化都可以通過這個結構擴散,從而達到多機同步的目的;這一結構的缺點是一旦server1當機失效,同步就會失敗。因此,有必要的話,可以組成雙主服務器的星型結構來彌補;(以上案例來自“IT業一老兵”網友感謝其提供的案例,有轉載請註明出處,謝謝!

發佈了112 篇原創文章 · 獲贊 10 · 訪問量 20萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章