ceph 在单个复制池中显示错误的已使用空间

ceph 在单个复制池中显示错误的已使用空间

我们使用的是 ceph 版本14.2.0。我们有 4 台主机,配备 24 个 BlueStore OSD,每个 OSD 为 1.8TB(2TB 旋转磁盘)。我们只有一个池size 2,我绝对确定我们使用的空间比ceph df显示的要多:

[root@blackmirror ~]# ceph osd dump | grep 'replicated size'
pool 2 'one' replicated size 2 min_size 1 crush_rule 0 object_hash rjenkins pg_num 900 pgp_num 900 autoscale_mode warn last_change 37311 flags hashpspool,selfmanaged_snaps stripe_width 0 application rbd

[root@blackmirror ~]# ceph df
RAW STORAGE:
CLASS     SIZE       AVAIL      USED       RAW USED     %RAW USED
    hdd       44 TiB     21 TiB     22 TiB       23 TiB         51.61
    TOTAL     44 TiB     21 TiB     22 TiB       23 TiB         51.61

POOLS:
    POOL     ID     STORED      OBJECTS     USED        %USED     MAX AVAIL
    one       2     2.7 TiB       2.94M     5.5 TiB     28.81       6.7 TiB

不太确定MAX AVAIL,但我认为这也是错误的。

以下是 的输出ceph osd df

ID CLASS WEIGHT  REWEIGHT SIZE    RAW USE  DATA     OMAP    META    AVAIL   %USE  VAR  PGS STATUS
 0   hdd 1.81310  1.00000 1.8 TiB  1.2 TiB  1.2 TiB 152 KiB 2.8 GiB 669 GiB 64.10 1.24  94     up
 1   hdd 1.81310  1.00000 1.8 TiB  937 GiB  935 GiB  80 KiB 2.2 GiB 926 GiB 50.31 0.97  72     up
 2   hdd 1.81310  1.00000 1.8 TiB  788 GiB  786 GiB  36 KiB 1.9 GiB 1.0 TiB 42.33 0.82  65     up
 3   hdd 1.81310  1.00000 1.8 TiB  868 GiB  866 GiB 128 KiB 2.1 GiB 995 GiB 46.59 0.90  69     up
 4   hdd 1.81310  1.00000 1.8 TiB  958 GiB  956 GiB  84 KiB 2.3 GiB 904 GiB 51.45 1.00  72     up
 5   hdd 1.81879  1.00000 1.8 TiB 1015 GiB 1013 GiB  64 KiB 2.4 GiB 847 GiB 54.50 1.06  77     up
 6   hdd 1.81310  1.00000 1.8 TiB 1015 GiB 1012 GiB  32 KiB 2.6 GiB 848 GiB 54.48 1.06  81     up
 7   hdd 1.81310  1.00000 1.8 TiB  935 GiB  932 GiB  40 KiB 2.3 GiB 928 GiB 50.18 0.97  70     up
 8   hdd 1.81310  1.00000 1.8 TiB  1.0 TiB  1.0 TiB  48 KiB 2.5 GiB 800 GiB 57.05 1.11  83     up
 9   hdd 1.81310  1.00000 1.8 TiB 1002 GiB 1000 GiB  96 KiB 2.3 GiB 861 GiB 53.79 1.04  77     up
10   hdd 1.81310  1.00000 1.8 TiB  779 GiB  777 GiB 168 KiB 1.9 GiB 1.1 TiB 41.80 0.81  63     up
11   hdd 1.81310  1.00000 1.8 TiB  1.1 TiB  1.1 TiB 128 KiB 2.6 GiB 768 GiB 58.77 1.14  83     up
12   hdd 1.81310  1.00000 1.8 TiB  798 GiB  796 GiB 120 KiB 1.9 GiB 1.0 TiB 42.85 0.83  67     up
13   hdd 1.81310  1.00000 1.8 TiB  1.1 TiB  1.1 TiB  64 KiB 2.6 GiB 761 GiB 59.12 1.15  89     up
14   hdd 1.81310  1.00000 1.8 TiB  1.2 TiB  1.2 TiB 128 KiB 2.7 GiB 680 GiB 63.51 1.23  88     up
15   hdd 1.81310  1.00000 1.8 TiB  766 GiB  764 GiB  64 KiB 1.9 GiB 1.1 TiB 41.15 0.80  58     up
16   hdd 1.81310  1.00000 1.8 TiB  990 GiB  988 GiB  80 KiB 2.4 GiB 873 GiB 53.15 1.03  81     up
17   hdd 1.81310  1.00000 1.8 TiB  980 GiB  977 GiB  80 KiB 2.3 GiB 883 GiB 52.61 1.02  77     up
18   hdd 1.81310  1.00000 1.8 TiB  891 GiB  890 GiB  68 KiB 1.7 GiB 971 GiB 47.87 0.93  73     up
19   hdd 1.81310  1.00000 1.8 TiB  1.1 TiB  1.1 TiB  60 KiB 2.0 GiB 784 GiB 57.87 1.12  87     up
20   hdd 1.81310  1.00000 1.8 TiB  956 GiB  955 GiB  48 KiB 1.8 GiB 906 GiB 51.37 1.00  73     up
21   hdd 1.81310  1.00000 1.8 TiB  762 GiB  760 GiB  32 KiB 1.6 GiB 1.1 TiB 40.91 0.79  58     up
22   hdd 1.81310  1.00000 1.8 TiB  979 GiB  977 GiB  80 KiB 1.9 GiB 883 GiB 52.60 1.02  72     up
23   hdd 1.81310  1.00000 1.8 TiB  935 GiB  934 GiB 164 KiB 1.8 GiB 927 GiB 50.24 0.97  71     up
                    TOTAL  44 TiB   23 TiB   22 TiB 2.0 MiB  53 GiB  21 TiB 51.61
MIN/MAX VAR: 0.79/1.24  STDDEV: 6.54

下面是输出rados df

[root@blackmirror ~]# rados df
POOL_NAME    USED OBJECTS CLONES  COPIES MISSING_ON_PRIMARY UNFOUND DEGRADED      RD_OPS      RD      WR_OPS      WR USED COMPR UNDER COMPR
one       5.5 TiB 2943372      0 5886744                  0       0        0 11291297816 114 TiB 24110141554 778 TiB        0 B         0 B

total_objects    2943372
total_used       23 TiB
total_avail      21 TiB
total_space      44 TiB

实际上,我们存储了大约 11TB 的数据,因此total_used上面看起来正确,因为我们的复制大小是 2。

在我们更改 OSD 18-23 后,这种情况开始发生。它们最初是 1TB 磁盘,但我们将它们升级到 2TB 以平衡集群。在我们更改第一个磁盘后,USEDMAX AVAIL1TBceph df降到了 1TB 左右。我认为这只是时间问题,但即使在所有恢复操作完成后,我们仍然看到上面的图片。我尝试强制对所有磁盘进行深度清理,这几乎杀死了集群中的所有应用程序 12 小时,但最后什么也没做。我不知道现在该怎么办。请帮忙。

相关内容