Open molpako opened 8 months ago
Cephはクラスタに新しいOSDを追加や削除したときに、PGのリバランシングを行う。これをバックフィルというらしい。
backfillfull しきい値を超えた OSD。デフォルト値は90%
しきい値を超えた OSD はリバランシングの対象から外れる。対処法は新しいOSDの追加。
root@mon2:/# ceph osd df osd.4
ID CLASS WEIGHT REWEIGHT SIZE RAW USE DATA OMAP META AVAIL %USE VAR PGS STATUS
4 hdd 0.01819 1.00000 19 GiB 18 GiB 17 GiB 0 B 185 MiB 1.0 GiB 94.50 1.00 39 up
...
nearfull_ratio を超えたOSD。デフォルト値は85%
root@mon2:/# ceph osd df osd.6
ID CLASS WEIGHT REWEIGHT SIZE RAW USE DATA OMAP META AVAIL %USE VAR PGS STATUS
6 hdd 0.01819 1.00000 19 GiB 17 GiB 16 GiB 5 KiB 121 MiB 2.1 GiB 88.88 1.00 38 up
...
各しきい値は ceph osd dump
で確認できる
root@mon2:/# ceph osd dump | grep _ratio
full_ratio 0.95
backfillfull_ratio 0.9
nearfull_ratio 0.85
full_ratio 95 % を超えた OSD。上2つと違い、書き込みそのものができなくなっている
root@mon2:/# ceph osd df osd.3
ID CLASS WEIGHT REWEIGHT SIZE RAW USE DATA OMAP META AVAIL %USE VAR PGS STATUS
3 hdd 0.01819 1.00000 19 GiB 18 GiB 18 GiB 0 B 250 MiB 829 MiB 95.65 1.00 49 up
TOTAL 19 GiB 18 GiB 18 GiB 0 B 250 MiB 829 MiB 95.65
短期的な回避策はしきい値をあげること
poolがいっぱいになって書き込めない状態
root@mon2:/# ceph df detail
--- RAW STORAGE ---
CLASS SIZE AVAIL USED RAW USED %RAW USED
hdd 333 GiB 70 GiB 264 GiB 264 GiB 79.14
TOTAL 333 GiB 70 GiB 264 GiB 264 GiB 79.14
--- POOLS ---
POOL ID PGS STORED (DATA) (OMAP) OBJECTS USED (DATA) (OMAP) %USED MAX AVAIL QUOTA OBJECTS QUOTA BYTES DIRTY USED COMPR UNDER COMPR
.mgr 1 1 598 KiB 598 KiB 0 B 2 1.8 MiB 1.8 MiB 0 B 100.00 0 B N/A N/A N/A 0 B 0 B
cephfs_metadata 5 32 2.5 MiB 2.5 MiB 13 KiB 42 7.8 MiB 7.8 MiB 38 KiB 100.00 0 B N/A N/A N/A 0 B 0 B
cephfs_data 6 128 87 GiB 87 GiB 0 B 22.39k 262 GiB 262 GiB 0 B 100.00 0 B N/A N/A N/A 0 B 0 B
cephfs_data_ec 7 32 0 B 0 B 0 B 0 0 B 0 B 0 B 0 0 B N/A N/A N/A 0 B 0 B
たしかに書き込みできない
root@client1:/mnt# echo "A" > cant_write
bash: cant_write: Permission denied
reweight なんかしてみたがだめ。
root@mon2:/# ceph osd reweight-by-utilization 110 0.2 12
moved 20 / 611 (3.27332%)
avg 43.6429
stddev 7.28606 -> 8.32901 (expected baseline 6.36596)
min osd.4 with 29 -> 29 pgs (0.664484 -> 0.664484 * mean)
max osd.12 with 62 -> 62 pgs (1.42062 -> 1.42062 * mean)
oload 110
max_change 0.2
max_change_osds 12
average_utilization 0.7938
overload_utilization 0.8732
osd.9 weight 1.0000 -> 0.8195
osd.0 weight 1.0000 -> 0.8417
osd.7 weight 1.0000 -> 0.8837
osd.4 weight 0.8376 -> 0.8400
100%近いusedになり、複数osdが立ち上がらなってしまった。
$ ceph orch host drain osd3 --force --zap-osd-devices
作り直した
root@mon2:/# ceph osd df
ID CLASS WEIGHT REWEIGHT SIZE RAW USE DATA OMAP META AVAIL %USE VAR PGS STATUS
2 hdd 0.02910 1.00000 30 GiB 299 MiB 12 MiB 6 KiB 287 MiB 30 GiB 0.98 1.05 87 up
5 hdd 0.02910 1.00000 30 GiB 262 MiB 12 MiB 11 KiB 250 MiB 30 GiB 0.86 0.92 66 up
8 hdd 0.02910 1.00000 30 GiB 273 MiB 12 MiB 4 KiB 261 MiB 30 GiB 0.89 0.96 38 up
10 hdd 0.02910 1.00000 30 GiB 296 MiB 13 MiB 9 KiB 283 MiB 30 GiB 0.97 1.04 59 up
0 hdd 0.01819 0.84172 19 GiB 104 MiB 12 MiB 85 KiB 91 MiB 19 GiB 0.54 0.58 58 up
1 hdd 0.01819 1.00000 19 GiB 91 MiB 12 MiB 0 B 79 MiB 19 GiB 0.48 0.51 71 up
3 hdd 0.01819 0.82806 19 GiB 121 MiB 12 MiB 80 KiB 108 MiB 19 GiB 0.63 0.68 118 up
14 hdd 0.01819 1.00000 19 GiB 184 MiB 12 MiB 0 B 171 MiB 18 GiB 0.96 1.03 47 up
15 hdd 0.01819 1.00000 19 GiB 188 MiB 13 MiB 0 B 175 MiB 18 GiB 0.99 1.06 69 up
16 hdd 0.01819 1.00000 19 GiB 160 MiB 12 MiB 0 B 148 MiB 18 GiB 0.84 0.90 83 up
17 hdd 0.01819 1.00000 19 GiB 188 MiB 12 MiB 0 B 175 MiB 18 GiB 0.98 1.06 51 up
11 hdd 0.02730 1.00000 28 GiB 354 MiB 12 MiB 0 B 342 MiB 28 GiB 1.24 1.33 48 up
12 hdd 0.02730 1.00000 28 GiB 350 MiB 12 MiB 0 B 338 MiB 28 GiB 1.22 1.31 133 up
13 hdd 0.02730 1.00000 28 GiB 311 MiB 13 MiB 0 B 299 MiB 28 GiB 1.09 1.17 67 up
TOTAL 333 GiB 3.1 GiB 175 MiB 198 KiB 2.9 GiB 330 GiB 0.93
MIN/MAX VAR: 0.51/1.33 STDDEV: 0.22
CephFS上にでかいファイル作ってPOOL_FULLの状態を作った
health detail