目次

20 Ceph PG数

配置グループ (PG) 数が十分でないと、Ceph クラスターおよびデータ分散のパフォーマンスに影響します。
これは、nearfull osds エラーメッセージの主な原因の 1 つです。

現在のPG数確認

ceph osd pool get TEST-pool pg_num
32

1.変更前の準備

scrub止める

ceph osd set noscrub
ceph osd set nodeep-scrub

back_fillの値を下げておく

ceph tell 'osd.*' injectargs --osd-max-backfills=1 --osd-recovery-max-active=3

2.PG_num変更

ceph osd pool set TEST-pool pg_num 128
ceph osd pool set TEST-pool pgp_num 128

3.変更の確認

# ceph osd df
ID  CLASS  WEIGHT   REWEIGHT  SIZE     RAW USE  DATA     OMAP    META     AVAIL    %USE  VAR   PGS  STATUS
 3    hdd  0.81870   1.00000  838 GiB   54 GiB   53 GiB  10 KiB  986 MiB  784 GiB  6.43  0.92   89      up
 0    hdd  0.81870   1.00000  838 GiB   54 GiB   53 GiB  11 KiB  555 MiB  785 GiB  6.38  0.91   89      up
 1    hdd  0.81870   1.00000  838 GiB   63 GiB   62 GiB   4 KiB  712 MiB  775 GiB  7.50  1.07  102      up
 2    hdd  0.81870   1.00000  838 GiB   65 GiB   64 GiB   9 KiB  435 MiB  774 GiB  7.71  1.10  107      up
                       TOTAL  3.3 TiB  235 GiB  232 GiB  37 KiB  2.6 GiB  3.0 TiB  7.01 


# ceph -s
  cluster:
    id:     82c91e96-51db-4813-8e53-0c0044a958f1
    health: HEALTH_OK
 
  services:
    mon: 3 daemons, quorum ceph001,ceph002,ceph003 (age 16h)
    mgr: ceph001(active, since 16h), standbys: ceph003, ceph004, ceph002
    osd: 4 osds: 4 up (since 16h), 4 in (since 17h); 22 remapped pgs
 
  data:
    pools:   2 pools, 129 pgs
    objects: 20.27k objects, 78 GiB
    usage:   236 GiB used, 3.0 TiB / 3.3 TiB avail
    pgs:     0.775% pgs not active
             3006/60795 objects misplaced (4.944%)
             107 active+clean
             17  active+remapped+backfill_wait
             4   active+remapped+backfilling
             1   peering
 
  io:
    client:   11 KiB/s wr, 0 op/s rd, 4 op/s wr
    recovery: 44 MiB/s, 11 objects/s

4.完了後

ceph osd unset noscrub
ceph osd unset nodeep-scrub

PG変更中メモ

PG数変更後は、misplaceをremapし続ける、一度に実行数backfillは、[osd_max_backfills/osd_recovery_max_active]このへんで決まってそう。

misplacedが下記の値(defautl: 5%)を下回ると、次のPGをremapし始める。

※延々終わらないように見えるが、全部のPGをremapするとちゃんと終わる。

target_max_misplaced_ratio

# ceph config get mgr target_max_misplaced_ratio
0.050000