本地部署 Kubernetes 的困難之一,在於持久化儲存如何埃到高可用性,避免單點失敗造成工作負載的狀態不可用。
選擇 Ceph 除了可避免儲存的單點失敗外,其提供的 CephFS 也可以支援 ReadWriteMany,讓多個工作負載可以同時寫入同一個 volume。
Ceph 作為軟體定義的分散式儲存系統,具有高可用性、可平行擴展、無單點失敗、且具有一定自我修復能力等特性。
Ceph 的預設配置,將資料以 3 個副本的形式,儲存在不同節點上,從而避免單一節點故障時,造成資料遺失的問題。
Ceph 的核心慨念是 CRUSH map 及 pg。基本運作原理,以 object 為儲存單元,並以 oid 計算出 pgid,決定該 object 儲存於那個 pg。再透過 CRUSH map,決定 pg 實際應儲存的 osd 為何。
為了部署 Ceph/CephFS,需要建立以下節點: