7.5. PG 数の増加
配置グループ(PG)数は、Ceph クラスターおよびデータ分散のパフォーマンスに影響します。これは、nearfull osds エラーメッセージの主な原因の 1 つです。
1 OSD あたり 100 から 300 PG の推奨比率は、以下のようになります。この比率は、OSD をクラスターに追加する際に減少する可能性があります。
pg_num パラメーターおよび pgp_num パラメーターにより、PG 数が決まります。これらのパラメーターは各プールごとに設定されるため、PG の数が別々に低く、各プールを調整する必要があります。
PG 数を増やすことができます。これは、Ceph クラスターで実行できる最も集約型プロセスです。このプロセスは、速度が遅い方法で行われない場合に、パフォーマンスに深刻な影響を与える可能性があります。pgp_num を増やすと、プロセスを停止したり元に戻したりすることはできず、完了する必要があります。
ビジネスの重要なプロセス時間割り当て外にある PG 数を増やし、パフォーマンスに影響を与える可能性のある可能性のあるクライアントをすべて警告することを検討してください。
クラスターが HEALTH_ERR 状態にある場合は、PG 数を変更しないでください。
手順: PG 数の追加
個別の OSD および OSD ホストでのデータ再分配および復旧の影響を減らします。
osd max backfills、osd_recovery_max_active、およびosd_recovery_op_priorityパラメーターの値を減らします。ceph tell osd.* injectargs '--osd_max_backfills 1 --osd_recovery_max_active 1 --osd_recovery_op_priority 1'
# ceph tell osd.* injectargs '--osd_max_backfills 1 --osd_recovery_max_active 1 --osd_recovery_op_priority 1'Copy to Clipboard Copied! Toggle word wrap Toggle overflow シャローおよびディープスクラビングを無効にします。
ceph osd set noscrub ceph osd set nodeep-scrub
# ceph osd set noscrub # ceph osd set nodeep-scrubCopy to Clipboard Copied! Toggle word wrap Toggle overflow
-
Ceph Placement Groups(PGs)per Pool Calculator
を使用して、pg_num パラメーターおよびパラメーターの最適値を計算します。pgp_num 必要な値に達するまで、
pg_numの値を少し増やします。- 開始の増分値を決定します。2 の累乗の値が非常に低い値を使用し、クラスターへの影響を決定する際にこの値を増やします。optimal の値は、プールサイズ、OSD 数、クライアント I/O 負荷により異なります。
pg_numの値を増やします。ceph osd pool set <pool> pg_num <value>
ceph osd pool set <pool> pg_num <value>Copy to Clipboard Copied! Toggle word wrap Toggle overflow プール名と新しい値を指定します。例を以下に示します。
ceph osd pool set data pg_num 4
# ceph osd pool set data pg_num 4Copy to Clipboard Copied! Toggle word wrap Toggle overflow クラスターのステータスを監視します。
ceph -s
# ceph -sCopy to Clipboard Copied! Toggle word wrap Toggle overflow PG の状態は、
creatingからactive+cleanに変わります。すべての PG がactive+cleanの状態になるまで待ちます。
必要な値に達するまで、
pgp_numの値を少し増やします。- 開始の増分値を決定します。2 の累乗の値が非常に低い値を使用し、クラスターへの影響を決定する際にこの値を増やします。optimal の値は、プールサイズ、OSD 数、クライアント I/O 負荷により異なります。
pgp_numの値を増やします。ceph osd pool set <pool> pgp_num <value>
ceph osd pool set <pool> pgp_num <value>Copy to Clipboard Copied! Toggle word wrap Toggle overflow プール名と新しい値を指定します。例を以下に示します。
ceph osd pool set data pgp_num 4
# ceph osd pool set data pgp_num 4Copy to Clipboard Copied! Toggle word wrap Toggle overflow クラスターのステータスを監視します。
ceph -s
# ceph -sCopy to Clipboard Copied! Toggle word wrap Toggle overflow PG の状態は、
peering、wait_backfill、backfilling、recoverなどによって変わります。すべての PG がactive+cleanの状態になるまで待ちます。
- PG 数が十分にないすべてのプールに対して直前の手順を繰り返します。
osd max backfills、osd_recovery_max_active、およびosd_recovery_op_priorityをデフォルト値に設定します。ceph tell osd.* injectargs '--osd_max_backfills 1 --osd_recovery_max_active 3 --osd_recovery_op_priority 3'
# ceph tell osd.* injectargs '--osd_max_backfills 1 --osd_recovery_max_active 3 --osd_recovery_op_priority 3'Copy to Clipboard Copied! Toggle word wrap Toggle overflow シャローおよびディープスクラビングを有効にします。
ceph osd unset noscrub ceph osd unset nodeep-scrub
# ceph osd unset noscrub # ceph osd unset nodeep-scrubCopy to Clipboard Copied! Toggle word wrap Toggle overflow
関連項目
- 「Nearfull OSD」
- 『Administration Guide for Red Hat Ceph Storage 3』の「Monitoring Placement Group States 」セクション