1.5. Ceph Manager バランサーモジュールの使用

バランサーは、Ceph Manager (ceph-mgr) のモジュールで、OSD 全体の配置グループ (PG) の配置を最適化することで、自動または監視された方法でバランスの取れた分散を実現します。

前提条件

  • 実行中の Red Hat Ceph Storage クラスター

手順

  1. balancer モジュールが有効になっていることを確認します。

    [root@mon ~]# ceph mgr module enable balancer
  2. balancer モジュールをオンにします。

    [root@mon ~]# ceph balancer on
  3. デフォルトのモードは crush-compat です。モードは以下のように変更できます。

    [root@mon ~]# ceph balancer mode upmap

    または

    [root@mon ~]# ceph balancer mode crush-compat

ステータス

バランサーの現在のステータスは、以下を実行していつでも確認できます。

[root@mon ~]# ceph balancer status

自動バランシング

デフォルトでは、バランサーモジュールをオンにする場合、自動分散が使用されます。

[root@mon ~]# ceph balancer on

以下を使用して、バランサーを再度オフにできます。

[root@mon ~]# ceph balancer off

これには、古いクライアントと後方互換性があり、時間の経過とともにデータディストリビューションに小さな変更を加えて、OSD を同等に利用されるようにする crush-compat モードを使用します。

スロットリング

たとえば、OSD が失敗し、システムがまだ修復していない場合などに、クラスターのパフォーマンスが低下する場合は、PG ディストリビューションには調整は行われません。

クラスターが正常な場合、バランサーは変更を調整して、置き間違えた、または移動する必要のある PG の割合がデフォルトで 5% のしきい値を下回るようにします。このパーセンテージは、max_misplaced 設定を使用して調整できます。たとえば、しきい値を 7% に増やすには、次のコマンドを実行します。

[root@mon ~]# ceph config-key set mgr/balancer/max_misplaced .07

監視付き最適化

balancer 操作はいくつかの異なるフェーズに分類されます。

  1. プラン の構築。
  2. 現在の PG ディストリビューションまたは プラン 実行後に得られる PG ディストリビューションに対するデータ分散の品質の評価。
  3. プラン の実行。

    • 現在のディストリビューションを評価し、スコアを付けます。

      [root@mon ~]# ceph balancer eval
    • 単一プールのディストリビューションを評価するには、以下を実行します。

      構文

      ceph balancer eval POOL_NAME

      [root@mon ~]# ceph balancer eval rbd

    • 評価の詳細を表示するには、以下を実行します。

      [root@mon ~]# ceph balancer eval-verbose ...
    • 現在設定されているモードを使用してプランを生成するには、以下を実行します。

      構文

      ceph balancer optimize PLAN_NAME

      PLAN_NAME は、カスタムプラン名に置き換えます。

      [root@mon ~]# ceph balancer optimize rbd_123

    • プランの内容を表示するには、以下を実行します。

      構文

      ceph balancer show PLAN_NAME

      [root@mon ~]# ceph balancer show rbd_123

    • 古いプランを破棄するには、以下を実行します。

      構文

      ceph balancer rm PLAN_NAME

      [root@mon ~]# ceph balancer rm rbd_123

    • 現在記録されているプランを表示するには、status コマンドを使用します。

      [root@mon ~]# ceph balancer status
    • プラン実行後に生じるディストリビューションの品質を計算するには、以下を実行します。

      構文

      ceph balancer eval PLAN_NAME

      [root@mon ~]# ceph balancer eval rbd_123

    • プランを実行するには、以下を実行します。

      構文

      ceph balancer execute PLAN_NAME

      [root@mon ~]# ceph balancer execute rbd_123

      注記

      ディストリビューションの改善が想定される場合にのみ、プランを実行します。実行後、プランは破棄されます。