1.3. ハイパーコンバージドノード上におけるリソース分離の設定
ハイパーコンバージドノード上で Ceph OSD サービスと Compute サービスを共存させると、お互いが同じホスト上に存在することを認識しないため、Red Hat Ceph Storage サービスと Compute サービス間でリソースの競合が発生するリスクがあります。リソースの競合が発生すると、サービスのパフォーマンスが低下し、ハイパーコンバージェンスの利点が打ち消される可能性があります。
Ceph サービスと Compute サービスの両方にリソースの分離を設定して、競合が発生を防ぐ必要があります。
手順
(オプション) Compute 環境ファイルに以下のパラメーターを追加して、自動生成される Compute 設定を上書きします。
parameter_defaults: ComputeHCIParameters: NovaReservedHostMemory: <ram> NovaCPUAllocationRatio: <ratio>
-
<ram>
を、ハイパーコンバージドノード上で Ceph OSD サービスおよびインスタンスのオーバーヘッド用に確保する RAM 容量 (MB 単位) に置き換えます。 <ratio>
を、インスタンスをデプロイするコンピュートノードを選択する際に Compute スケジューラーが使用すべき比率に置き換えます。自動生成される Compute 設定についての詳細は、Compute サービス用に確保する CPU およびメモリーリソースの自動生成プロセス を参照してください。
-
Red Hat Ceph Storage 用にメモリーリソースを確保するには、
/home/stack/templates/storage-container-config.yaml
でis_hci
をtrue
に設定します。parameter_defaults: CephAnsibleExtraConfig: is_hci: true
この設定により、
ceph-ansible
は Red Hat Ceph Storage 用のメモリーリソースを確保することができ、HCI デプロイメントのosd_memory_target
パラメーター設定を自動的に調整することで、Ceph OSD によるメモリー増大を低減することができます。警告Red Hat では、
ceph_osd_docker_memory_limit
パラメーターを直接上書きすることは推奨しません。注記FileStore または BlueStore どちらのバックエンドが使用されていても、ceph-ansible 3.2 では、
ceph_osd_docker_memory_limit
は Ansible の検出したホストの最大メモリーに自動的に設定されます。(オプション) デフォルトでは、
ceph-ansible
は Ceph OSD ごとに 1 つの仮想 CPU を確保します。Ceph OSD ごとに複数の CPU が必要な場合は、以下の設定を/home/stack/templates/storage-container-config.yaml
に追加します。parameter_defaults: CephAnsibleExtraConfig: ceph_osd_docker_cpu_limit: <cpu_limit>
<cpu_limit>
を各 Ceph OSD 用に確保する CPU 数に置き換えます。ハードウェアおよびワークロードに基づいて CPU リソースを調整する方法の詳細は、Red Hat Ceph Storage Hardware Selection Guide を参照してください。
(オプション) 以下のパラメーターを Ceph 環境ファイルに追加することで、Ceph OSD の削除時に Red Hat Ceph Storage のバックフィルとリカバリーの操作の優先度を低くします。
parameter_defaults: CephConfigOverrides: osd_recovery_op_priority: <priority_value> osd_recovery_max_active: <no_active_recovery_requests> osd_max_backfills: <max_no_backfills>
-
<priority_value>
を、OSD クライアント OP の優先度と相対的に、リカバリーの操作の優先度に置き換えます。 -
<no_active_recovery_requests>
を、1 OSD あたりの 1 回にアクティブなリカバリー要求の件数に置き換えます。 <max_no_backfills>
を、単一の OSD との間で許容されるバックフィルの最大数に置き換えます。デフォルトの Red Hat Ceph Storage のバックフィルおよびリカバリーオプションに関する詳細は、Red Hat Ceph Storage のバックフィルとリカバリーの操作 を参照してください。
-
1.3.1. Compute サービス用に確保する CPU およびメモリーリソースの自動生成プロセス
director の提供するデフォルトのプラン環境ファイルにより、デプロイメント時のハイパーコンバージドノードのリソース制約が設定されます。このプラン環境ファイルは、OpenStack Workflow に以下のプロセスを実施するように指示します。
- ハードウェアノードの検査時に収集したハードウェアイントロスペクションデータを取得する。
- そのデータに基づき、ハイパーコンバージドノード上の Compute の最適な CPU およびメモリー割り当て負荷を算出する。
-
これらの制約を設定し Compute に CPU/メモリーリソースを確保するのに必要なパラメーターを自動生成する。これらのパラメーターは、
plan-environment-derived-params.yaml
ファイルのhci_profile_config
セクションで定義されます。
Compute の reserved_host_memory
および cpu_allocation_ratio
の設定値を算出するのに、各ワークロードプロファイルの average_guest_memory_size_in_mb
および average_guest_cpu_utilization_percentage
パラメーターが使用されます。
Compute 環境ファイルに以下のパラメーターを追加して、自動生成される Compute 設定を上書きすることができます。
自動生成される nova.conf パラメーター | Compute 環境ファイルのオーバーライド | 説明 |
---|---|---|
|
parameter_defaults: ComputeHCIParameters: NovaReservedHostMemory: 181000 | ハイパーコンバージドノード上で、Ceph OSD サービスおよびゲストインスタンスごとのオーバーヘッドに確保する RAM 容量を設定します。 |
|
parameter_defaults: ComputeHCIParameters: NovaCPUAllocationRatio: 8.2 | インスタンスをデプロイするコンピュートノードを選択する際に Compute スケジューラーが使用すべき比率を設定します。 |
これらのオーバーライドは、ComputeHCI
ロールを使用するすべてのノード (つまり、すべてのハイパーコンバージドノード) に適用されます。NovaReservedHostMemory
および NovaCPUAllocationRatio
の最適値を手動で決定する方法についての詳細は、OpenStack Workflow Compute の CPU およびメモリーの計算 を参照してください。
以下のスクリプトを使用して、ハイパーコンバージドノードの NovaReservedHostMemory
および NovaCPUAllocationRatio
の適切な基準値を算出することができます。
1.3.2. Red Hat Ceph Storage のバックフィルとリカバリーの操作
Ceph OSD が削除されると、Red Hat Ceph Storage はバックフィルおよびリカバリー操作を使用してクラスターをリバランスします。Red Hat Ceph Storage は配置グループポリシーに従って、データのコピーを複数保管するためにこの操作を実行します。これらの操作は、システムリソースを使用します。Red Hat Ceph Storage クラスターに負荷がかかっている場合、リソースがバックフィルおよびリカバリーに回されるので、パフォーマンスが低下します。
OSD 削除時のこのパフォーマンスへの影響を軽減するには、バックフィルおよびリカバリー操作の優先度を低くすることができます。この手法のマイナス面は、データのレプリカがより少ない状態が長くなるので、データがリスクにさらされる可能性が若干高くなることです。
以下の表で説明するパラメーターが、バックフィルおよびリカバリー操作の優先度を設定するのに使用されます。
パラメーター | 説明 | デフォルト値 |
---|---|---|
| OSD クライアントの操作に関して、リカバリー操作の優先度を設定します。 | 3 |
| 同時に要求できる 1 OSD あたりのアクティブなリカバリー要求の数を設定します。要求が増えるにつれてリカバリーは加速されますが、それらの要求によりクラスターにかかる負荷が増大します。レイテンシーを低くするには、このパラメーターを 1 に設定します。 | 3 |
| 単一の OSD との間で許容されるバックフィルの最大数を設定します。 | 1 |