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 つのオプションがあります。

  1. 既存クラスターの調整可能パラメーターを調整します。この結果、データの移動 (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
  2. 以下のオプションを、ceph.conf ファイルの [mon] セクションに追加すると、CRUSH に変更を加えずに警告を離れることができます。

    mon warn on legacy crush tunables = false

    変更を有効にするには、モニターを再起動するか、オプションを適用してモニターを実行します。

    # ceph tell mon.\* injectargs --no-mon-warn-on-legacy-crush-tunables