如何計算 Ceph 叢集的可用容量?
Ceph 的可用儲存空間受多個因素影響,包括硬碟原始容量、資料保護方法 (如複製或糾刪碼) ,以及系統開銷。精簡配置 (Thin Provisioning) 、配額 (Quotas) 和預留復原空間 (Reserved Recovery Space) 等功能,有助於最佳化空間使用並確保容錯能力。
Ceph 的可用容量取決於以下因素
1. 由多台伺服器組成的 Ceph 叢集,其最大原始容量是每台伺服器中所有硬碟空間的總和。
若叢集中包含多種儲存裝置類型 (如 HDD、SSD 或 NVMe) ,應分別計算各裝置類型的原始磁碟空間總量。Ceph
能辨識每個儲存池所指定的裝置類別 (device class) 。
2. 每個 Ceph 儲存池所採用的資料保護機制,決定了其可用空間。
- 複寫保護 (Replicated protection) : 可用容量 = 原始容量 ÷ 副本數
- 糾刪碼 (Erasure Code) 資料保護 : 可用空間 = 原始容量 × (K/(K+M))
3. Ceph 會為中繼資料 (metadata) 和系統運作佔用額外空間。根據您的實際設定和使用情況,這些開銷約佔 10% ~ 20% 的空間。
所有硬碟空間由複寫與糾刪碼儲存池共享。
- 儲存池 (Pools) 可以選擇設定或不設定配額 (quotas) 。所有的配額都是精簡配置 (thin provisioning) 。
- 由於 Ceph 的可用空間採用精簡配置 (thin provisioning) ,儲存空間只在需要時才進行分配,而不是預先分配所有所需的空間。這能提高儲存空間的利用率並降低儲存成本。
- 建議在叢集運作期間,預留 1/n 的儲存空間作為硬體故障時的資料復原空間,其中 n 為伺服器台數。
- 系統預設使用量警示為 85% (接近滿載) 與 95% (滿載) 。