2.7. Deploying a custom role with ML2/OVN
デフォルトの Red Hat OpenStack (RHOSP) デプロイメントでは、ML2/OVN コンポーザブルサービスはコントローラーノード上で実行されます。以下の例のように、サポートされているカスタムロールをオプションで使用できます。
- Networker
- 専用のネットワーカーノードで OVN コンポーザブルサービスを実行します。
- Networker と SR-IOV の組み合わせ
- SR-IOV と共に専用のネットワークノードで OVN コンポーザブルサービスを実行します。
- Controller と SR-IOV の組み合わせ
- SR-IOV 対応のコントローラーノードで OVN コンポーザブルサービスを実行します。
独自のカスタムロールを生成することもできます。
制限
本リリースでは、ML2/OVN デプロイメントで SR-IOV とネイティブ OVN DHCP の組み合わせを使用する場合、以下の制限が適用されます。
- すべてのポートに対して HA シャーシグループが 1 つしかないため、すべての外部ポートは単一のゲートウェイノード上でスケジュールされる。
- 外部ポートは論理ルーターのゲートウェイポートと共存しないため、VLAN テナントネットワークでは、VF (直接) ポートでの North-South ルーティングは SR-IOV では機能しない。Bug #1875852 を参照してください。
前提条件
カスタムロールのデプロイ方法を理解している。
詳細は、Director インストールおよび使用方法 ガイドの コンポーザブルサービスおよびカスタムロール を参照してください。
手順
アンダークラウドホストに
stackユーザーとしてログインし、source コマンドでstackrcファイルを読み込みます。$ source stackrc
デプロイメントに適したカスタムロールファイルを選択します。そのままでご自分のニーズに適する場合には、直接デプロイコマンドで使用します。あるいは、他のカスタムロールファイルを組み合わせる独自のカスタムロールファイルを生成することもできます。
デプロイメント ロール ロールファイル Networker ロール
Networker
Networker.yamlNetworker ロールと SR-IOV の組み合わせ
NetworkerSriov
NetworkerSriov.yaml共存する control および networker と SR-IOV の組み合わせ
ControllerSriov
ControllerSriov.yaml(オプション) 前述のカスタムロールファイルの 1 つを他のカスタムロールファイルと組み合わせた、新しいカスタムロールデータファイルを生成します。
Director のインストールと使用 ガイドの roles_data ファイルの作成 の手順に従ってください。デプロイメントに応じて、適切なソー出力ルファイルを含めます。
(オプション) ロール用の特定のノードを特定するには、特定のハードウェアフレーバーを作成して特定のノードにフレーバーを割り当てることができます。次に、環境ファイルを使用してロールのフレーバーを定義し、ノード数を指定します。
詳細については、Director のインストールと使用 ガイドの 新しいロールの作成 の例を参照してください。
デプロイメントに適した環境ファイルを作成します。
デプロイメント 環境ファイルのサンプル Networker ロール
neutron-ovn-dvr-ha.yaml
Networker ロールと SR-IOV の組み合わせ
ovn-sriov.yaml
デプロイメントに適するように、以下の設定を含めます。
デプロイメント 設定 Networker ロール
ControllerParameters: OVNCMSOptions: "" ControllerSriovParameters: OVNCMSOptions: "" NetworkerParameters: OVNCMSOptions: "enable-chassis-as-gw" NetworkerSriovParameters: OVNCMSOptions: ""Networker ロールと SR-IOV の組み合わせ
OS::TripleO::Services::NeutronDhcpAgent: OS::Heat::None ControllerParameters: OVNCMSOptions: "" ControllerSriovParameters: OVNCMSOptions: "" NetworkerParameters: OVNCMSOptions: "" NetworkerSriYou can uovParameters: OVNCMSOptions: "enable-chassis-as-gw"共存する control および networker と SR-IOV の組み合わせ
OS::TripleO::Services::NeutronDhcpAgent: OS::Heat::None ControllerParameters: OVNCMSOptions: "" ControllerSriovParameters: OVNCMSOptions: "enable-chassis-as-gw" NetworkerParameters: OVNCMSOptions: "" NetworkerSriovParameters: OVNCMSOptions: ""デプロイコマンドを実行し、
-rオプションを使用してデプロイコマンドにコア Heat テンプレート、その他の環境ファイル、およびカスタムロールデータファイルを含めます。重要後で実行される環境ファイルで定義されているパラメーターとリソースが優先されることになるため、環境ファイルの順序は重要となります。
例
$ openstack overcloud deploy --templates <core_heat_templates> \ -e <other_environment_files> \ -e /home/stack/templates/my-neutron-environment.yaml -r mycustom_roles_file.yaml
検証手順
tripleo-adminユーザーとして Controller ノードまたは Networker ノードにログインします。例
ssh tripleo-admin@controller-0
ovn_metadata_agentが実行されていることを確認します。$ sudo podman ps | grep ovn_metadata
出力例
a65125d9588d undercloud-0.ctlplane.localdomain:8787/rh-osbs ... openstack-neutron-metadata-agent-ovn ... kolla_start 23 hours ago Up 21 hours ago ovn_metadata_agent
OVN サービスが設定されたコントローラーノードまたは専用のネットワーカーノードが OVS のゲートウェイとして設定されていることを確認します。
$ sudo ovs-vsctl get Open_Vswitch . external_ids:ovn-cms-options
出力例
enable-chassis-as-gw
SR-IOV デプロイメントの追加検証手順
tripleo-adminユーザーとしてコンピュートノードにログインします。例
ssh tripleo-admin@compute-0
neutron_sriov_agentがコンピュートノード上で実行されていることを確認します。sudo podman ps | grep neutron_sriov_agent
出力例
f54cbbf4523a undercloud-0.ctlplane.localdomain:8787 ... openstack-neutron-sriov-agent ... kolla_start 23 hours ago Up 21 hours ago neutron_sriov_agent
ネットワークに接続された SR-IOV NIC が正常に検出されていることを確認します。
$ sudo podman exec -uroot galera-bundle-podman-0 mysql nova \ -e 'select hypervisor_hostname,pci_stats from compute_nodes;'
出力例
computesriov-1.localdomain {... {"dev_type": "type-PF", "physical_network" : "datacentre", "trusted": "true"}, "count": 1}, ... {"dev_type": "type-VF", "physical_network": "datacentre", "trusted": "true", "parent_ifname": "enp7s0f3"}, "count": 5}, ...} computesriov-0.localdomain {... {"dev_type": "type-PF", "physical_network": "datacentre", "trusted": "true"}, "count": 1}, ... {"dev_type": "type-VF", "physical_network": "datacentre", "trusted": "true", "parent_ifname": "enp7s0f3"}, "count": 5}, ...}
関連情報
- Director のインストールと使用 ガイドの コンポーザブルサービスとカスタムロール
- コマンドラインインターフェイスリファレンス の overcloud deploy