2.10. Deploying a custom role with ML2/OVN
デフォルトの OSP 16.1 デプロイメントでは、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 を参照してください。
前提条件
- カスタムロールのデプロイ方法を理解している。詳細は、オーバークラウドの高度なカスタマイズ ガイドの コンポーザブルサービスとカスタムロール を参照してください。
手順
アンダークラウドホストに
stack
ユーザーとしてログインし、source コマンドでstackrc
ファイルを読み込みます。$ source stackrc
デプロイメントに適したカスタムロールファイルを選択します。そのままでご自分のニーズに適する場合には、直接デプロイコマンドで使用します。あるいは、他のカスタムロールファイルを組み合わせる独自のカスタムロールファイルを生成することもできます。
デプロイメント ロール ロールファイル Networker ロール
Networker
Networker.yaml
Networker ロールと SR-IOV の組み合わせ
NetworkerSriov
NetworkerSriov.yaml
共存する control および networker と SR-IOV の組み合わせ
ControllerSriov
ControllerSriov.yaml
- (オプション) これらのカスタムロールファイルの 1 つと他のカスタムロールファイルを組み合わせる新しいカスタムロールデータファイルを生成します。オーバークラウドの高度なカスタマイズ の roles_data ファイルの作成 に記載の手順に従います。デプロイメントに応じて、適切なソースロールファイルを含めます。
- (オプション) ロール用の特定のノードを特定するには、特定のハードウェアフレーバーを作成して特定のノードにフレーバーを割り当てることができます。次に、環境ファイルを使用してロールのフレーバーを定義し、ノード数を指定します。詳しい情報は、オーバークラウドの高度なカスタマイズ ガイドの 新規ロールの作成 の例を参照してください。
デプロイメントに適した環境ファイルを作成します。
デプロイメント 環境ファイルのサンプル 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: "" NetworkerSriovParameters: 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: ""
-
オーバークラウドをデプロイする。
-e
オプションを使用して、環境ファイルをデプロイメントコマンドに追加します。-r オプションを使用して、カスタムロールデータファイルをデプロイメントコマンドに追加します。(例:-r Networker.yaml
または-r mycustomrolesfile.yaml
)。
検証手順 - OVN のデプロイ
オーバークラウドの SSH ユーザー (デフォルトでは
heat-admin
) としてコントローラーまたは Networker ノードにログインします。例
ssh heat-admin@controller-0
ovn_metadata_agent
がコントローラーノードおよびネットワーカーノードで実行されていることを確認します。$ sudo podman ps | grep ovn_metadata
出力例
a65125d9588d undercloud-0.ctlplane.localdomain:8787/rh-osbs/rhosp16-openstack-neutron-metadata-agent-ovn:16.1_20200813.1 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 のデプロイメント
デフォルトでは
heat-admin
であるオーバークラウド SSH ユーザーとしてコンピュートノードにログインします。例
ssh heat-admin@compute-0
neutron_sriov_agent
がコンピュートノードで実行されていることを確認します。$ sudo podman ps | grep neutron_sriov_agent
出力例
f54cbbf4523a undercloud-0.ctlplane.localdomain:8787/rh-osbs/rhosp16-openstack-neutron-sriov-agent:16.2_20200813.1 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}, ...}
関連情報
- Advanced Overcloud Customization ガイドの Composable services and custom roles