Gluster 到底是做什麼的?
在過去的兩天裡,我一直在玩 gluster,並一直在這里和他們的問題系統上提問。我真的不明白其中的一些內容。我看到人們說類似的東西
在伺服器之間設置複製磚(因為您只使用 3,複製會更安全),並且每台伺服器都會將所有其他伺服器的文件視為“本地” - 即使一個伺服器出現故障,文件也已復製到其他伺服器。
或者
Gluster 將保持跨卷(塊)的文件同步,並具有“自我修復”功能,可以處理由於一台伺服器離線而導致的任何不一致。
由於我將遠端卷從伺服器安裝到客戶端,gluster 如何處理伺服器節點的故障,即安裝卷的那個節點?從我嘗試過的客戶端上安裝卷的文件夾變得無法訪問,我必須使用 umount 來取消阻止它。之後,伺服器就沒有內容了。
這基本上是我在任何解釋中看不到的內容:當伺服器節點發生故障時會發生什麼,以及是否可以像 unison 或 rsync 那樣真正複製內容?
我們最近開始研究 GlusterFS 以供我們自己使用,所以這個問題對我來說很有趣。Gluster 在 FUSE 客戶端上使用所謂的“轉換器”來處理您儲存數據的方式。這裡概述了幾種類型的翻譯器:
http://www.gluster.com/community/documentation/index.php/GlusterFS_Translators_v1.3
您要特別詢問的一個稱為自動文件複製轉換器或 AFR,並在此處詳細介紹:
http://www.gluster.com/community/documentation/index.php/Understanding_AFR_Translator
查看原始碼,數據實際上是同時寫入節點的,比 rsync 好得多!
關於從故障情況中恢復,我發現了一個有趣的註釋。Gluster 系統與 Ceph 的不同之處在於它不會主動感知複製狀態的變化並且必須被“觸發”。因此,如果您在集群中失去了一個節點,您必須查找每個文件,以便 Gluster 確保其被複製:
我無法找到一個描述內部故障場景機制的好頁面,例如客戶端如何檢測到故障。然而,下載原始碼並通過客戶端查看似乎有各種超時,它用於命令和每隔一段時間對集群中的其他系統進行的探測。看起來它們中的大多數都有 TODO 標記,並且目前不可配置,除非通過原始碼修改,如果收斂時間很關鍵,這可能是您關心的問題。