Ceph
Ceph 連接到本地節點
我對要建構的應用程序有一個想法,其中一個要求是全域複製的文件系統。存在像 Ceph 和 GlusterFS 這樣的東西,但我不確定它們是否符合我的特定案例。
- 假設我在 3 個不同的地區有 3 個應用伺服器$$ US, Europe, Asia $$
- 然後我有一個 3 節點 Ceph 設置,每個區域都有 1 個節點$$ US, Europe, Asia $$
- 我可以讓每個應用伺服器直接連接到他們所在區域的 Ceph 節點,還是必須通過一些集中的編排節點?
我問是因為我想將文件系統延遲保持在最低限度,並且只使用 Ceph 來同步所有節點之間的更改。如果我不能直接連接到“本地”節點,我認為延遲會非常高。
任何幫助理解這一點將不勝感激!
這取決於數據訪問的類型:Ceph 可以將數據儲存為塊設備 (RBD)、S3 對象儲存 (RGW) 或文件系統 (CephFS)。正如您提到的那樣,我在這裡假設 CephFS 和 Gluster,它們都是文件系統抽象。
在三節點配置中,Ceph 將在每個站點執行一個或多個 OSD 守護程序(每個磁碟驅動器一個)。數據在集群中的 OSD 上進行條帶化,您的 CephFS 客戶端(核心、FUSE 或 Windows)將通過算法訪問正確的節點來儲存數據,無需網關。這是如何完成的,解釋起來很長,但本質上它是一個分佈式雜湊表映射,附加數據保存在 MON 守護程序中的伺服器端。
CephFS 的數據路徑是直接的,從您的客戶端到 OSD,沒有插入網關。
文件系統使用了一個額外的守護程序類型,MDS,它儲存你的文件系統元數據。如果您的文件系統操作執行文件系統更改(例如創建目錄),則將訪問 MDS 而不是 OSD。
但是,特別是對於您的預期案例,Ceph 是一個同步儲存系統,它的性能會隨著節點之間的距離越遠而下降。通常建議您將擴展配置保持在節點之間 10 毫秒的往返延遲範圍內。換句話說,Ceph 集群喜歡住在一個數據中心,但如果你有很好的連結,你可以將它們延伸到一個城市或一些小國家。