3.2. Red Hat OpenStack のデプロイメント設定
Red Hat OpenStack Platform (RHOSP) デプロイメント設定の推奨事項に関する以下のリストを確認してください。
- 小規模なデプロイメントにより heat テンプレートを検証する
- 3 つ以上のコントローラーノード、1 つのコンピュートノード、および 3 つの Ceph Storage ノードで構成される、小規模な環境をデプロイします。この設定を使用して、すべての heat テンプレートが正しいことを確認できます。
- コンピュート全体のインスタンスの分散を改善する
多数のインスタンスの作成中、Compute スケジューラーは、コンピュートノードの以前のインスタンスのリソース割り当てが確定するまで、そのコンピュートノードのリソースを認識しません。コンピュートノードの不均一な生成を避けるために、次のいずれかの操作を実行できます。
NovaSchedulerShuffleBestSameWeighedHosts
パラメーターの値をtrue
に設定します。parameter_defaults: NovaSchedulerShuffleBestSameWeighedHosts: `True`
インスタンスによってコンピュートノードが過負荷になるのを防ぐには、
max_instances_per_host
をコンピュートノードが生成できるインスタンスの最大数に設定し、NumInstancesFilter
パラメーターが有効になっていることを確認します。コンピュートノードがこのインスタンス数に達すると、スケジューラーがそのノードをそれ以降のインスタンス生成スケジュールの対象として選択しなくなります。注記NumInstancesFilter
パラメーターはデフォルトで有効になっています。ただし、環境ファイルのNovaSchedulerEnabledFilters
パラメーターを変更する場合は、必ずNumInstancesFilter
パラメーターを有効にしてください。parameter_defaults: ControllerExtraConfig nova::scheduler::filter::max_instances_per_host: <maximum_number_of_instances> NovaSchedulerEnabledFilters: - AvailabilityZoneFilter - ComputeFilter - ComputeCapabilitiesFilter - ImagePropertiesFilter - ServerGroupAntiAffinityFilter - ServerGroupAffinityFilter - NumInstancesFilter
-
<maximum_number_of_instances>
は、コンピュートノードが生成できるインスタンスの最大数に置き換えます。
-
- Networking サービス (neutron) のスケール設定
パフォーマンスとスケールの安定性を向上させるために、表 3.1. の設定を、大規模な OpenStack 環境でテストおよび検証しました。
サーバー側のプローブ間隔は、
ovsdb-server
によってクライアント (neutron
、ovn-controller
、およびovn-metadata-agent)
に送信されるプローブのタイムアウトを制御します。タイムアウトが経過するまでにクライアントから応答が得られない場合、クライアントとの接続が切断され、強制的に再接続されます。クライアントがタイムアウトする可能性が最も高い状況は、クライアントがovsdb-server
に初めて接続し、データベースのコピーをメモリーにロードするときです。タイムアウトが短すぎると、データベースのダウンロード中にovsdb-server
がクライアントを切断します。その結果、クライアントが再接続して再試行することになり、このサイクルが永久に繰り返されます。したがって、最大タイムアウト間隔が機能しない場合は、プローブ間隔の値をゼロに設定してプローブを無効にしてください。クライアント側のプローブ間隔が無効になっている場合、
ovsdb-server
への接続が TCP キープアライブメッセージを使用して監視されます。注記可能な場合は、常に tripleo heat template (THT) のパラメーターを使用して必要な設定を行ってください。THT または Puppet でデフォルト値が定義されている場合、手動で行った設定が、設定ダウンロードの実行によって上書きされるためです。さらに、手動で設定できるのは既存の環境のみであるため、設定の変更は新しいノードや置き換えられたノードには適用されません。
表3.1 Networking サービスに推奨されるスケール設定 設定 説明 手動による設定 THT のパラメーター コンピュートノード上の OVS サーバー側の非アクティブ状態プローブ
このプローブ間隔を 5 秒から 30 秒に増やします。
ovs-vsctl set Manager . inactivity_probe=30000
コントローラーノード上の OVN Northbound サーバー側の非アクティブ状態プローブ
このプローブ間隔を 180000 ミリ秒に増やすか、0 に設定して無効にします。
podman exec -u root ovn_controller ovn-nbctl --no-leader-only set Connection . inactivity_probe=180000
コントローラーノード上の OVN Southbound サーバー側の非アクティブ状態プローブ
このプローブ間隔を 180000 ミリ秒に増やすか、0 に設定して無効にします。
podman exec -u root ovn_controller ovn-sbctl --no-leader-only set Connection . inactivity_probe=180000
コンピュートノード上の OVN コントローラーのリモートプローブ間隔
このプローブ間隔を 180000 ミリ秒に増やすか、0 に設定して無効にします。
podman exec -u root ovn_controller ovs-vsctl --no-leader-only set Open_vSwitch . external_ids:ovn-remote-probe-interval=180000
OVNRemoteProbeInterval: 180000
コントローラーノード上の Networking サービスのクライアント側プローブ間隔
このプローブ間隔を 180000 ミリ秒に増やすか、0 に設定して無効にします。
crudini --set /var/lib/config-data/puppet-generated/neutron/etc/neutron/plugins/ml2/ml2_conf.ini ovn ovsdb_probe_interval 180000
OVNOvsdbProbeInterval: 180000
コントローラーノード上の Networking サービスの
api_workers
neutron-server
の負荷に基づいて、個別の API ワーカープロセスのデフォルト数を 12 から 16 以上に増やします。crudini --set /var/lib/config-data/puppet-generated/neutron/etc/neutron/neutron.conf DEFAULT api_workers 16
NeutronWorkers: 16
コントローラーノード上の Networking サービスの
agent_down_time
非常に大規模なクラスターの場合は、
agent_down_time
を最大許容数に設定します。crudini --set /var/lib/config-data/puppet-generated/neutron/etc/neutron/neutron.conf DEFAULT agent_down_time 2147483
NeutronAgentDownTime: 2147483
コンピュートノード上の OVN メタデータの
report_agent
大規模なインストールでは、
report_agent
を無効にします。crudini --set /var/lib/config-data/puppet-generated/neutron/etc/neutron/neutron_ovn_metadata_agent.ini agent report_agent false
コンピュートノード上の OVN の
metadata_workers
すべてのコンピュートノードの
metadata_workers
を最小限に減らし、OVN Southbound データベースへの接続を減らします。crudini --set /var/lib/config-data/puppet-generated/neutron/etc/neutron/neutron_ovn_metadata_agent.ini DEFAULT metadata_workers 1
NeutronMetadataWorkers: 1
コンピュートノード上の OVN メタデータの
rpc_workers
すべてのコンピュートノードで
rpc_workers
を最小限に減らします。crudini --set /var/lib/config-data/puppet-generated/neutron/etc/neutron/neutron_ovn_metadata_agent.ini DEFAULT rpc_workers 0
NeutronRpcWorkers: 0
コンピュートノード上の OVN メタデータのクライアント側プローブ間隔
このプローブ間隔を 180000 ミリ秒に増やすか、0 に設定して無効にします。
crudini --set /var/lib/config-data/puppet-generated/neutron/etc/neutron/neutron_ovn_metadata_agent.ini ovn ovsdb_probe_interval 180000
OVNOvsdbProbeInterval: 180000
- 同時にプロビジョニングされるノードの数を制限する
平均的なエンタープライズレベルのラックユニット内に収まるサーバーの数は、通常 50 台です。そのため、同時にデプロイできるノードの数は、平均 1 ラック分です。
デプロイの問題を診断するのに必要なデバッグを最小限に抑えるには、一度にデプロイするノードを 50 個までにしてください。より大きな数のノードをデプロイする場合として、Red Hat は最大 100 ノードの同時テストに成功しています。
コンピュートノードをバッチでスケーリングするには、
--limit
オプションを指定してopenstack overcloud deploy
コマンドを使用します。これにより、時間が節約され、アンダークラウドでのリソース消費が削減されます。- 未使用の NIC を無効にする
デプロイ中にオーバークラウドに未使用の NIC がある場合は、NIC 設定テンプレートで未使用のインターフェイスを定義して、インターフェイスを
use_dhcp: false
およびdefroute: false
に設定する必要があります。未使用のインターフェイスを定義しない場合は、イントロスペクションおよびスケーリング操作中に、ルーティングの問題や IP 割り当ての問題が発生する可能性があります。デフォルトでは、NIC は
BOOTPROTO=dhcp
を設定します。つまり、未使用のオーバークラウド NIC は、PXE プロビジョニングに必要な IP アドレスを消費します。これにより、ノードで利用可能な IP アドレスのプールが減少する場合があります。- 未使用の Bare Metal Provisioning (ironic) ノードの電源をオフにする
- メンテナンスモードにある未使用の Bare Metal Provisioning (ironic) ノードの電源をオフにしてください。Bare Metal Provisioning は、メンテナンスモードのノードの電源状態を追跡せず、メンテナンスモードで電源オン状態のまま維持されている以前のデプロイメントのノードの電源状態を、誤ってオフとして報告します。これにより、未使用のノードのオペレーティングシステムに古い設定 (オーバークラウドネットワークの IP アドレスなど) がある場合、進行中のデプロイで問題が発生する可能性があります。デプロイが失敗した後に再デプロイする場合は、未使用のノードをすべて電源オフにしてください。