我无法理解ceph原始空间的使用情况.
我在7台服务器上有14个硬盘(14个OSD),每个硬盘3TB~总共42 TB原始空间.
ceph -s osdmap e4055: 14 osds: 14 up,14 in pgmap v8073416: 1920 pgs,6 pools,16777 GB data,4196 kobjects 33702 GB used,5371 GB / 39074 GB avail
我创建了4个块设备,每个5 TB:
df -h /dev/rbd1 5.0T 2.7T 2.4T 54% /mnt/part1 /dev/rbd2 5.0T 2.7T 2.4T 53% /mnt/part2 /dev/rbd3 5.0T 2.6T 2.5T 52% /mnt/part3 /dev/rbd4 5.0T 2.9T 2.2T 57% /mnt/part4
df表明总共使用了10,9 TB,ceph显示使用了33702 GB.如果我有2份拷贝,它必须是~22 TB,但现在我使用了33,7 TB – 错过了11 TB.
ceph osd pool get archyvas size size: 2 ceph df GLOBAL: SIZE AVAIL RAW USED %RAW USED 39074G 5326G 33747G 86.37 POOLS: NAME ID USED %USED MAX AVAIL OBJECTS data 0 0 0 1840G 0 Metadata 1 0 0 1840G 0 archyvas 3 4158G 10.64 1840G 1065104 archyvas2 4 4205G 10.76 1840G 1077119 archyvas3 5 3931G 10.06 1840G 1006920 archyvas4 6 4483G 11.47 1840G 1148291
块设备和OSD FS – XFS
一个可能的混淆源是GB与GiB / TB对比TiB(基数10 /基数2),但这无法解释这里的所有差异.
Ceph / RBD将尝试“懒洋洋地”为您的卷分配空间.这就是为什么虽然您创建了四个5TB卷,但它报告使用了16TB而不是20个.但是16TB超过了RBD支持的文件系统的“活动”内容的总和,正如您所说的那样,它只有大约11TB.有几点需要注意:
当您删除RBD支持的文件系统中的文件时,文件系统将在内部将块标记为空闲,但通常不会尝试将它们“返回”到底层块设备(RBD).如果你的内核RBD版本足够新(3.18或更新版本),你应该能够使用fstrim将释放的块返回给RBD.我怀疑你在这些文件系统上创建并删除了其他文件,对吧?
除了df所示的净数据使用之外,还有一些文件系统开销.除了“超级块”和其他文件系统内部数据结构之外,还可以从RBD分配数据的粒度中获得一些开销.我认为RBD将始终分配4MB块,即使只使用了其中的一部分.