ceph的df容量显示计算

显示数据

[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%

原文地址:https://www.cnblogs.com/zphj1987/p/13890222.html