3.5. 配置グループの自動スケーリング
プール内の配置グループ (PG) 数では、クラスターのピアがデータおよびリバランスの分散方法などの重要なロールを果たします。
PG 数の自動スケーリングにより、クラスターの管理が容易になります。pg-autoscaling
コマンドは、PG のスケーリングの推奨事項を示します。または、クラスターの使用状況に応じて PG を自動的にスケーリングします。
- 自動スケーリングの動作に関する詳細は、「配置グループの自動スケーリング」 を参照してください。
- 自動スケーリングを有効または無効にする場合は、「配置グループの自動スケーリングモードの設定」 を参照してください。
- 配置グループのスケーリングの推奨事項を表示するには、「配置グループのスケーリングの推奨事項」 を参照してください。
- 配置グループの自動スケーリングを設定するには、「配置グループの自動スケーリングの設定」 を参照してください。
-
オートスケーラーをグローバル更新するには、「
noautoscale
フラグの更新」 を参照してください。 - ターゲットプールサイズを設定するには、「ターゲットプールサイズの指定」 を参照してください。
3.5.1. 配置グループの自動スケーリング リンクのコピーリンクがクリップボードにコピーされました!
auto-scaler の仕組み
auto-scaler はプールを分析し、サブツリーごとに調整します。各プールは異なる CRUSH ルールにマップされ、各ルールは異なるデバイスにデータを分散できるため、Ceph は階層の各サブツリーを独立して使用することを考慮します。たとえば、クラス ssd
の OSD にマップするプールと hdd
クラスの OSD にマップするプールは、それぞれがそれぞれのデバイスタイプの数に依存する最適な PG 数を持ちます。
3.5.2. 配置グループの分割とマージ リンクのコピーリンクがクリップボードにコピーされました!
分割
Red Hat Ceph Storage は既存の配置グループ (PG) を小規模な PG に分割することができます。これにより、特定のプールの PG の合計数が増加します。既存の配置グループ (PG) を分割すると、ストレージ要件の増加に伴って、少数の Red Hat Ceph Storage クラスターを徐々にスケーリングできます。PG の自動スケーリング機能により、pg_num
値を増やすことができます。これにより、既存の PG がストレージクラスターを拡張するように分割されます。PG の自動スケーリング機能が無効な場合には、PG 分割プロセスを開始する pg_num
値を手動で増やすことができます。たとえば、pg_num
の値を 4
から 16
に増やすと、4 つの部分に分割されます。pg_num
値を増やすと、pgp_num
値も増えますが、pgp_num
値は徐々に増加します。この段階の拡張は、オブジェクトデータを移行するため、ストレージクラスターのパフォーマンスおよびクライアントワークロードへの影響を最小限に抑えるために行われます。オブジェクトデータがシステムに大きな負荷が発生するためです。デフォルトでは、Ceph は "misplaced" の状態にあるオブジェクトデータの 5% を超えてキューを発行したり、移行したりしません。このデフォルトのパーセンテージは、target_max_misplaced_ratio
オプションで調整できます。
マージ
Red Hat Ceph Storage は、既存の PG をサイズの大きい PG にマージすることもできるので、PG の合計が減少します。2 つの PG を 1 つにまとめると、プールの相対的な量が徐々に減少したときや、選択した PG の初期数が大きすぎたときに特に役に立ちます。PG のマージは便利ですが、複雑で繊細なプロセスでもあります。マージ時に、I/O の PG への一時停止が発生し、ストレージクラスターのパフォーマンスへの影響を最小限に抑えるために一度に PG を 1 つだけマージします。新しい pg_num
値に達するまで、Ceph はオブジェクトデータのマージにゆっくり機能します。
3.5.3. 配置グループの自動スケーリングモードの設定 リンクのコピーリンクがクリップボードにコピーされました!
Red Hat Ceph Storage クラスターの各プールには PG の pg_autoscale_mode
プロパティーがあり、これを off
、on
、または warn
に設定することができます。
-
off
: プールの自動スケーリングを無効にします。各プールに適切な PG 数を選択するのは管理者次第です。詳細は、配置グループ数 セクションを参照してください。 -
on
: 指定プールの PG 数の自動調整を有効にします。 -
warn
: PG 数の調整が必要な場合にヘルスアラートを示します。
Red Hat Ceph Storage 5 以降のリリースでは、pg_autoscale_mode
がデフォルトで オン
になっています。アップグレードされたストレージクラスターは、既存の pg_autoscale_mode
設定を保持します。新しく作成されたプールでは、pg_auto_scale
モードが オン
になっています。PG カウントは自動的に調整され、Ceph ステータス
が PG カウント調整中に回復中と表示される場合があります。
オートスケーラーは bulk
フラグを使用して、PG の完全な補完で開始するプールを決定し、プール全体の使用率が均一でない場合にのみスケールダウンします。ただし、プールに bulk
フラグがない場合、プールは最小限の PG で開始され、プールでの使用量が多い場合にのみ開始されます。
オートスケーラーは重複するルートを特定し、そのルートが含まれるプールがスケーリングされないようにします。これは、root が重複しているとスケーリングプロセスに問題がある可能性があるためです。
手順
既存のプールで自動スケーリングを有効にします。
構文
ceph osd pool set POOL_NAME pg_autoscale_mode on
ceph osd pool set POOL_NAME pg_autoscale_mode on
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 例
[ceph: root@host01 /]# ceph osd pool set testpool pg_autoscale_mode on
[ceph: root@host01 /]# ceph osd pool set testpool pg_autoscale_mode on
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 新規作成されたプールで自動スケーリングを有効にします。
構文
ceph config set global osd_pool_default_pg_autoscale_mode MODE
ceph config set global osd_pool_default_pg_autoscale_mode MODE
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 例
[ceph: root@host01 /]# ceph config set global osd_pool_default_pg_autoscale_mode on
[ceph: root@host01 /]# ceph config set global osd_pool_default_pg_autoscale_mode on
Copy to Clipboard Copied! Toggle word wrap Toggle overflow bulk
フラグでプールを作成します。構文
ceph osd pool create POOL_NAME --bulk
ceph osd pool create POOL_NAME --bulk
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 例
[ceph: root@host01 /]# ceph osd pool create testpool --bulk
[ceph: root@host01 /]# ceph osd pool create testpool --bulk
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 既存プールの
bulk
フラグを設定または設定解除します。重要値は
true
、false
、1
、または0
として書き込む必要があります。1
はtrue
に相当し、0
はfalse
に相当します。大文字と小文字が異なるか、他の内容で書かれている場合、エラーが発生します。以下は、間違った構文で記述されたコマンドの例です。
[ceph: root@host01 /]# ceph osd pool set ec_pool_overwrite bulk True Error EINVAL: expecting value 'true', 'false', '0', or '1'
[ceph: root@host01 /]# ceph osd pool set ec_pool_overwrite bulk True Error EINVAL: expecting value 'true', 'false', '0', or '1'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 構文
ceph osd pool set POOL_NAME bulk true/false/1/0
ceph osd pool set POOL_NAME bulk true/false/1/0
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 例
[ceph: root@host01 /]# ceph osd pool set testpool bulk true
[ceph: root@host01 /]# ceph osd pool set testpool bulk true
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 既存プールの
bulk
フラグを取得します。構文
ceph osd pool get POOL_NAME bulk
ceph osd pool get POOL_NAME bulk
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 例
[ceph: root@host01 /]# ceph osd pool get testpool bulk bulk: true
[ceph: root@host01 /]# ceph osd pool get testpool bulk bulk: true
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
3.5.4. 配置グループのスケーリングの推奨事項 リンクのコピーリンクがクリップボードにコピーされました!
プール、その相対的な使用率、およびストレージクラスター内の PG カウントに対する推奨の変更を表示できます。
前提条件
- 稼働中の Red Hat Ceph Storage クラスターがある。
- すべてのノードへの root レベルのアクセス。
手順
以下を使用して、各プール、その相対使用率、および推奨される変更をすべて表示できます。
[ceph: root@host01 /]# ceph osd pool autoscale-status
[ceph: root@host01 /]# ceph osd pool autoscale-status
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力は以下のようになります。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
SIZE
は、プールに保存されているデータ量です。
TARGET SIZE
は、管理者が指定したデータ量を指しますが、最終的にこのプールに格納されることが予想されます。システムは、計算には、2 つの値の大きいほうを使用します。
RATE
は、プールが使用する raw ストレージ容量を決定するプールの乗数です。たとえば、3
つのレプリカプールは 3.0
の比率を持ち、k=4,m=2
イレイジャーコードプールの比率は 1.5
になります。
RAW CAPACITY
は、プールのデータを保存する OSD 上の raw ストレージ容量の合計量です。
RATIO
は、プールが消費している合計容量の比率です。つまり、ratio = size * rate / raw capacity になります。
TARGET RATIO
(存在する場合) は、ターゲット比率が設定された他のプールと相対的にプールが消費することが予想されるストレージの比率です。ターゲットサイズバイトと比率の両方が指定される場合、比率が優先されます。プールの作成時に指定されていない限り、TARGET RATIO
のデフォルト値は 0
です。プールで指定する --target_ratio
が多いほど、プールで必要な PG は大きくなります。
EFFECTIVE RATIO
は、次の 2 つの方法で調整した後の目標比率です。1 (目標サイズが設定されたプールで使用されると予想される容量を差し引く)。2. ターゲット比率が設定されたプール間でターゲット比率を正規化し、残りの領域を結合します。たとえば、target ratio
が 1.0 の 4 つのプールの effective ratio
は 0.25 になります。システムは、実際の比率が大きい場合と、その計算に効果的な比率を使用します。
BIAS
は、特定のプールで必要とする PG 数に関する事前情報に基づいて、プールの PG を手動で調整するための乗数として使用されます。デフォルトでは、プールの作成時に指定されていない限り、値は 1.0 です。プールに指定する --bias
が多いほど、プールで必要な PG は大きくなります。
PG_NUM
は、プールの現在の PG 数、または pg_num
の変更が進行中である場合にプールが現在操作している PG 数です。NEW PG_NUM
が存在する場合は、推奨される PG 数 (pg_num
) です。これは常に 2 の累乗となり、推奨される値は現在の値のみによって 3 倍以上になります。
AUTOSCALE
はプール pg_autoscale_mode
で、on
、off
、または warn
のいずれかになります。
BULK
は、どのプールが PG の完全な補完で開始するかを決定するために使用されます。BULK
は、プール全体の使用率が均等でない場合にのみスケールダウンします。プールにこのフラグがない場合、プールは最小量の PG で開始され、プールの使用量が増加した場合にのみ使用されます。
BULK
値は true
、false
、1
、または 0
です。1
は true
に相当し、0
は false
に相当します。デフォルト値は false
です。
BULK
値は、プールの作成中または作成後に設定します。
バルクフラグの使用の詳細は、プールの作成 および 配置グループの自動スケールモードの設定 を参照してください。
3.5.5. 配置グループの自動スケーリングの設定 リンクのコピーリンクがクリップボードにコピーされました!
クラスターの使用状況に基づいて PG を自動的にスケーリングできるようにするのは、PG をスケーリングする最も簡単な方法です。Red Hat Ceph Storage は、利用可能なストレージと、全システムにおける PG のターゲット数を取得して、各プールに保存されたデータ量を比較し、それに応じて PG を評価します。このコマンドは、現在の PG 数 (pg_num
) が計算または提案された PG 数から 3 倍以上ずれているプールにのみ変更を加えます。
各 OSD の PG のターゲット数は、mon_target_pg_per_osd
設定に基づいています。デフォルト値は 100
に設定されています。
手順
mon_target_pg_per_osd
を調整するには、以下を実行します。構文
ceph config set global mon_target_pg_per_osd number
ceph config set global mon_target_pg_per_osd number
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下に例を示します。
[ceph: root@host01 /]# ceph config set global mon_target_pg_per_osd 150
[ceph: root@host01 /]# ceph config set global mon_target_pg_per_osd 150
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
3.5.6. noautoscale フラグの更新 リンクのコピーリンクがクリップボードにコピーされました!
すべてのプールに対して同時にオートスケーラーを有効または無効にする場合は、noautoscale
グローバルフラグを使用できます。このグローバルフラグは、一部の OSD がバウンスされたとき、またはクラスターがメンテナンス中、ストレージクラスターのアップグレード中に役立ちます。アクティビティーの前にフラグを設定し、アクティビティーが完了したらフラグを解除できます。
デフォルトでは、noautoscale
フラグは off
に設定されています。このフラグが設定されている場合には、すべてのプールで pg_autoscale_mode
が オフ
になり、すべてのプールでオートスケーラーが無効になります。
前提条件
- 稼働中の Red Hat Ceph Storage クラスターがある。
- すべてのノードへの root レベルのアクセス。
手順
noautoscale
フラグの値を取得します。例
[ceph: root@host01 /]# ceph osd pool get noautoscale
[ceph: root@host01 /]# ceph osd pool get noautoscale
Copy to Clipboard Copied! Toggle word wrap Toggle overflow アクティビティーの前に
noautoscale
フラグを設定します。例
[ceph: root@host01 /]# ceph osd pool set noautoscale
[ceph: root@host01 /]# ceph osd pool set noautoscale
Copy to Clipboard Copied! Toggle word wrap Toggle overflow アクティビティーの完了時に
noautoscale
フラグの設定を解除します。例
[ceph: root@host01 /]# ceph osd pool unset noautoscale
[ceph: root@host01 /]# ceph osd pool unset noautoscale
Copy to Clipboard Copied! Toggle word wrap Toggle overflow