Ceph OSD已满,但我没有存储那么多数据

问题描述

我有一个运行18个600GB OSD的Ceph集群。有三个池(大小:3,pg_num:64),每个池上的映像大小为200GB,并且有6个服务器通过iSCSI连接到这些映像,并在其中存储约20个VM。这是“ ceph df”的输出

池:

POOL                           ID     STORED      OBJECTS     USED        %USED      MAX AVAIL 
cephfs_data                     1         0 B           0         0 B          0           0 B 
cephfs_Metadata                 2      17 KiB          22     1.5 MiB     100.00           0 B 
defaults.rgw.buckets.data       3         0 B           0         0 B          0           0 B 
defaults.rgw.buckets.index      4         0 B           0         0 B          0           0 B 
.rgw.root                       5     2.0 KiB           5     960 KiB     100.00           0 B 
default.rgw.control             6         0 B           8         0 B          0           0 B 
default.rgw.Meta                7       393 B           2     384 KiB     100.00           0 B 
default.rgw.log                 8         0 B         207         0 B          0           0 B 
rbd                             9     150 GiB      38.46k     450 GiB     100.00           0 B 
rbd3                           13     270 GiB      69.24k     811 GiB     100.00           0 B 
rbd2                           14     150 GiB      38.52k     451 GiB     100.00           0 B 

基于此,我预计RAW容量约为1.7 TB,但目前约为9 TB!

原始存储空间:

CLASS     SIZE        AVAIL       USED        RAW USED     %rAW USED 
hdd       9.8 TiB     870 GiB     9.0 TiB      9.0 TiB         91.35 
TOTAL     9.8 TiB     870 GiB     9.0 TiB      9.0 TiB         91.35 

由于剩余的容量很少,因此群集出现故障。我想知道是什么使它产生的,以及如何解决它。 非常感谢您的帮助

解决方法

问题是在不使用 discard 选项的情况下安装iSCSI目标。

由于我使用RedHat Virtualization,所以我只修改了在Ceph之上创建的所有存储域,并在它们上启用了“丢弃” 1。几个小时后,释放了大约1 TB的存储。现在已经过去了大约12个小时,并且释放了5 TB的存储。 谢谢