顯示數據
[root@lab201 ~]# ceph df
GLOBAL:
SIZE AVAIL RAW USED %RAW USED
1092T 404T 688T 63.01%
POOLS:
NAME ID USED %USED MAX AVAIL OBJECTS
rbd 0 17483G 15.88 92633G 4616231
data 1 212T 70.09 92633G 246574395
metadata 2 88677K 0 1400G 407249
總used的63% ,data的總used為70%
先說下容量的計算規則
- 1、根據每個osd計算可用容量:osd可用的容量/osd的crush權重占存儲池所有osd的總crush的權重的百分比
- 2、然后用上面計算得到的最小的可用容量/pool_size(存儲池副本數),還要乘以mon_osd_full_ratio(默認0.95),得到的就是存儲池的max avail
舉個例子
2個osd 每個為4T,crush weight 為4,osd.1可用容量為1.5T,osd.2可用容量為1T
那么我們來根據上面的公式來計算
osd.1計算1.5T/0.5=3T
osd.2計算1T/0.5=2T
取最小值2T
副本為2的話,那么可用容量就是2T/2為1T
為什么要這么計算,實際上這個地方計算的時候,分母是占用的百分比,分子是當前剩余的空間,因為總容量是由最短板的osd決定的,這個跟水桶灌水一樣
分母相當於自己需要承擔的容量,所以,分子越小的然后,分母越大,算的就會越小,最終最小的那個決定了最終容量
上面的如果沒動過crush weight,那么簡單的計算方式就是
剩余最小的那個osd的可用容量X總的osd個數就是存儲池的可用容量
上面的例子的模擬計算
總容量,總的剩余容量,總的使用的容量
8T 2.5T 5.5T 已使用百分比 68.75%
按存儲池計算
rbd 已用2.75T 可用1T 已使用百分比 73%
