8.6. 配置グループの増加
配置グループ (PG) 数が十分でないと、Ceph クラスターおよびデータ分散のパフォーマンスに影響します。これは、nearfull osds
エラーメッセージの主な原因の 1 つです。
推奨される比率は、OSD 1 つに対して 100 から 300 個の PG です。この比率は、OSD をクラスターに追加すると減らすことができます。
pg_num
パラメーターおよび pgp_num
パラメーターにより、PG 数が決まります。これらのパラメーターは各プールごとに設定されるため、PG 数が少ないプールは個別に調整する必要があります。
PG 数を増やすことは、Ceph クラスターで実行できる最も負荷のかかる処理です。このプロセスは、ゆっくりと計画的に行わないと、パフォーマンスに深刻な影響を与える可能性があります。pgp_num
を増やすと、プロセスを停止したり元に戻したりすることはできず、完了する必要があります。ビジネスクリティカルな処理時間の割り当て以外で PG 数を増やすことを検討し、パフォーマンスに影響を与える可能性があることをすべてのクライアントに警告します。クラスターが HEALTH_ERR
状態にある場合は、PG 数を変更しないでください。
前提条件
- 健全な状態で稼働中の Red Hat Ceph Storage クラスター。
- ノードへのルートレベルのアクセス。
手順
データの再分配やリカバリーが個々の OSD や OSD ホストに与える影響を軽減します。
osd max backfills
、osd_recovery_max_active
、およびosd_recovery_op_priority
パラメーターの値を減らします。[ceph: root@host01 /]# ceph tell osd.* injectargs '--osd_max_backfills 1 --osd_recovery_max_active 1 --osd_recovery_op_priority 1'
シャローおよびディープスクラビングを無効にします。
[ceph: root@host01 /]# ceph osd set noscrub [ceph: root@host01 /]# ceph osd set nodeep-scrub
-
Ceph Placement Groups (PGs) per Pool Calculator を使用して、
pg_num
パラメーターおよびpgp_num
パラメーターの最適な値を計算します。 必要な値に達するまで、
pg_num
の値を少し増やします。- インクリメントの開始値を決定します。2 の累乗である非常に低い値を使用し、クラスターへの影響を判断して増やします。最適な値は、プールサイズ、OSD 数、クライアント I/O 負荷によって異なります。
pg_num
の値を増やします。構文
ceph osd pool set POOL pg_num VALUE
プール名と新しい値を指定します。例を以下に示します。
例:
[ceph: root@host01 /]# ceph osd pool set data pg_num 4
クラスターのステータスを監視します。
例:
[ceph: root@host01 /]# ceph -s
PG の状態は、
creating
からactive+clean
に変わります。すべての PG がactive+clean
の状態になるまで待ちます。
必要な値に達するまで、
pgp_num
の値を少し増やします。- インクリメントの開始値を決定します。2 の累乗である非常に低い値を使用し、クラスターへの影響を判断して増やします。最適な値は、プールサイズ、OSD 数、クライアント I/O 負荷によって異なります。
pgp_num
の値を増やします。構文
ceph osd pool set POOL pgp_num VALUE
プール名と新しい値を指定します。例を以下に示します。
[ceph: root@host01 /]# ceph osd pool set data pgp_num 4
クラスターのステータスを監視します。
[ceph: root@host01 /]# ceph -s
PG の状態は、
peering
、wait_backfill
、backfilling
、recover
などによって変わります。すべての PG がactive+clean
の状態になるまで待ちます。
- PG 数が不足しているすべてのプールに対して、前の手順を繰り返します。
osd max backfills
、osd_recovery_max_active
、およびosd_recovery_op_priority
をデフォルト値に設定します。[ceph: root@host01 /]# ceph tell osd.* injectargs '--osd_max_backfills 1 --osd_recovery_max_active 3 --osd_recovery_op_priority 3'
シャローおよびディープスクラビングを有効にします。
[ceph: root@host01 /]# ceph osd unset noscrub [ceph: root@host01 /]# ceph osd unset nodeep-scrub
関連情報
- ほぼ完全な OSD を参照してください
- Red Hat Ceph Storage 管理ガイド の 配置グループ設定の監視 セクションを参照してください。