2.8.2. CRUSH のチューニング
CRUSH を調整する前に、すべての Ceph クライアントおよびすべての Ceph デーモンが同じバージョンを使用するようにする必要があります。最近アップグレードした場合は、デーモンを再起動して、クライアントを再接続していることを確認します。
CRUSH パラメーターを調整する最も簡単な方法は、既知のプロファイルに変更します。以下のとおりです。
-
legacy
: v0.47 (pre-Argonaut) 以前のバージョンのレガシー動作。 -
argonaut
: v0.48 (Argonaut) リリースがサポートするレガシーの値。 -
bobtail
: v0.56 (Bobtail) リリースでサポートされる値。 -
firefly
: 0.80 (Firefly) リリースでサポートされる値。 -
hammer
: v0.94 (Hammer) リリースでサポートされる値。 -
jewel
: v10.0.2 (Jewel) リリースでサポートされる値。 -
optimal
: 現在の最適値 -
default
: 新規クラスターの現在のデフォルト値。
実行中のクラスターでプロファイルを選択するには、以下のコマンドを実行します。
# ceph osd crush tunables <profile>
これにより、データの移動が生じる場合があります。
通常、アップグレード後に CRUSH パラメーターを設定するか、または警告が表示されるようにする必要があります。バージョン v0.74 以降では、CRUSH パラメーターが最適な値に設定されていない場合に、Ceph は健全性についての警告を発行します。最適な値は v0.73 のデフォルトになります。この警告を外すには、2 つのオプションがあります。
既存クラスターの調整可能パラメーターを調整します。この結果、データの移動 (10% の可能性) が生じます。これは優先されるルートですが、データの移動がパフォーマンスに影響する可能性があります。以下を使用して、最適なチューニング可能なパラメーターを有効にできます。
# ceph osd crush tunables optimal
パフォーマンスの低下が悪い場合 (たとえば、負荷が非常に多い) か、非常に進捗が行われたか、またはクライアントの互換性の問題 (カーネルの cephfs または rbd クライアント、または pre-bobtail librados クライアント) がある場合には、以前のプロファイルに戻すことができます。
# ceph osd crush tunables <profile>
たとえば、pre-v0.48 (Argonaut) 値を復元するには、以下のコマンドを実行します。
# ceph osd crush tunables legacy
以下のオプションを、
ceph.conf
ファイルの[mon]
セクションに追加すると、CRUSH に変更を加えずに警告を離れることができます。mon warn on legacy crush tunables = false
変更を有効にするには、モニターを再起動するか、オプションを適用してモニターを実行します。
# ceph tell mon.\* injectargs --no-mon-warn-on-legacy-crush-tunables