3.4. ノードの追加または削除に関する推奨事項
ノードの障害により、ノードを変更する前に一度に 1 つの OSD を削除するのが妨げられる場合があります。状況によっては、Ceph OSD ノードを追加または削除する際のパフォーマンスへの悪影響を軽減することができます。Red Hat は、ノード内で一度に 1 つの OSD を追加または削除し、次の OSD に進む前にクラスターが復元できるようにすることを推奨します。OSD の削除に関する詳細は、以下を参照してください。
- Ansible の使用
- コマンドラインインターフェイスの使用
Ceph ノードを追加する場合も、Red Hat では OSD を一度に 1 つずつ追加することを推奨します。OSD の追加に関する詳細は、以下を参照してください。
- Ansible の使用
- コマンドラインインターフェイスの使用
Ceph OSD ノードを追加または削除する場合は、実行中のその他のプロセスがパフォーマンスに影響することを考慮してください。クライアント I/O への影響を減らすために、Red Hat では以下を推奨します。
容量を計算する:
Ceph OSD ノードを削除する前に、ストレージクラスターがフル比率
に達することなくすべての OSD のコンテンツをバックフィルできることを確認してください。フル比率
に達すると、クラスターは書き込み操作を拒否するようになります。
一時的にスクラビングを無効にする:
スクラビングはストレージクラスターのデータの持続性を確保するために不可欠ですが、リソース集約型です。Ceph OSD ノードを追加または削除する前に、スクラビングおよびディープスクラビングを無効にし、先に進む前に現在のスクラビング操作を完了させます。以下に例を示します。
ceph osd set noscrub ceph osd set nodeep-scrub
Ceph OSD ノードを追加または削除すると、ストレージクラスターが active+clean
状態に戻り、noscrub
および nodeep-scrub
の設定を解除します。
バックフィルおよび復元を制限する:
osd pool default size = 3
や osd pool default min size = 2
などの妥当なデータの持続性がある場合は、パフォーマンスが劣化 (degraded
) した状態での動作に問題はありません。可能な限り早い復元時間用にストレージクラスターを調整することができますが、これにより Ceph クライアントの I/O パフォーマンスが著しく影響を受ける可能性があります。最大の Ceph クライアント I/O パフォーマンスを維持するには、バックフィルと復元の操作を制限し、その操作に長い時間をかけられるようにします。以下に例を示します。
osd_max_backfills = 1 osd_recovery_max_active = 1 osd_recovery_op_priority = 1
osd_recovery_sleep
などの sleep パラメーターおよび delay パラメーターを設定することもできます。
最後に、ストレージクラスターのサイズを拡張する場合は、配置グループの数を増やすことが必要となる場合があります。配置グループの数を拡張する必要がある場合、Red Hat はプレースメントグループの数を段階的に増やすことをお勧めします。配置グループの数を大幅に増やすと、パフォーマンスが大幅に低下します。