5.11. 配置グループ autoscaler

配置グループ (PG) チューニングでは、PG の計算ツールを使用して、pg_num の数字のプラグを手動で処理します。Red Hat Ceph Storage 4.1 以降では、Ceph Manager モジュール pg_autoscaler を有効にすると、PG のチューニングを自動的に実行できます。PG autoscaler はプールごとに設定され、pg_num を 2 の累乗でスケーリングします。PG Autoscaler は、推奨される値が実際の値が 3 倍を超える場合に、pg_num への変更のみを提案します。

PG autoscaler には 3 つのモードがあります。

warn
新しいプールおよび既存のプールのデフォルトモード。推奨される pg_num の値が現在の pg_num 値と大きく異なる場合に、ヘルス警告が生成されます。
on
プールの pg_num は、自動的に調整されます。
off
プールでは Autoscaler をオフにすることができますが、ストレージ管理者はプールの pg_num 値を手動で設定する必要があります。

プールに対して PG autoscaler が有効になったら、ceph osd pool autoscale-status コマンドを実行して値の調整を表示できます。この autoscale-status コマンドは、プールの現在の状態を示します。autoscale-status 列の説明は次のとおりです。

SIZE
プールに保存されているデータの合計量をバイト単位で報告します。このサイズには、オブジェクトデータと OMAP データが含まれます。
TARGET SIZE
ストレージ管理者が提供するプールの予想されるサイズを報告します。この値は、プールの理想的な PG 数を計算するために使用されます。
RATE
レプリケートされたバケットのレプリケーション係数、またはイレイジャーコーディングされたプールの比率。
RAW CAPACITY
プールが CRUSH に基づいてマップされるストレージデバイスの raw ストレージ容量。
RATIO
プールによって消費されるストレージの合計比率。
TARGET RATIO
ストレージ管理者によって提供された、ストレージクラスター全体のスペースのどの部分がプールによって消費されるかを指定する比率。
PG_NUM
プールの現在の配置グループ数。
NEW PG_NUM
提案される値。この値は設定できません。
AUTOSCALE
プールに設定された PG Autoscaler モード。

5.11.1. 配置グループ autoscaler の設定

Ceph Ansible を設定して、Red Hat Ceph Storage クラスターの新規プールの PG Autoscaler を有効および設定することができます。デフォルトでは、配置グループ (PG) はオフになっています。

重要

現在、新しい Red Hat Ceph Storage デプロイメントでのみ配置グループ Autoscaler を設定でき、既存の Red Hat Ceph Storage インストールには設定できません。

前提条件

  • Ansible 管理ノードへのアクセス
  • Ceph Monitor ノードへのアクセス

手順

  1. Ansible 管理ノードで、編集のために group_vars/all.yml ファイルを開きます。
  2. pg_autoscale_mode オプションを True に設定し、新規または既存のプールの target_size_ratio の値を設定します。

    openstack_pools:
        - {"name": backups, "target_size_ratio": 0.1, "pg_autoscale_mode": True, "application": rbd}
        - {"name": volumes, "target_size_ratio": 0.5, "pg_autoscale_mode": True, "application": rbd}
        - {"name": vms,     "target_size_ratio": 0.2, "pg_autoscale_mode": True, "application": rbd}
        - {"name": images,  "target_size_ratio": 0.2, "pg_autoscale_mode": True, "application": rbd}

    注記

    target_size_ratio 値は、ストレージクラスター内の他のプールとの対比で、重みの値になります。

  3. group_vars/all.yml ファイルへの変更を保存します。
  4. 適切な Ansible Playbook を実行します。

    ベアメタル デプロイメント

    [ansible@admin ceph-ansible]$ ansible-playbook site.yml -i hosts

    コンテナー デプロイメント

    [ansible@admin ceph-ansible]$ ansible-playbook site-container.yml -i hosts

  5. Ansible Playbook が完了したら、Ceph Monitor ノードから Autoscaler のステータスを確認します。

    [user@mon ~]$ ceph osd pool autoscale-status