8.6. OVS TC-flower ハードウェアオフロードオーバークラウドのデプロイ
OVS TC-flower ハードウェアオフロード環境に Red Hat OpenStack Platform (RHOSP) オーバークラウドをデプロイする最後の手順は、openstack overcloud deploy
コマンドを実行することです。このコマンドに、作成したさまざまなオーバークラウドテンプレートと環境ファイルをすべて入力します。
前提条件
-
アンダークラウドホストへのアクセスと
stack
ユーザーの認証情報。 - NIC を含むホスト上の sudo へのアクセス。
-
このセクションの前の手順にリストされているすべてのステップを実行し、
overcloud deploy
コマンドの入力として使用するさまざまな heat テンプレートおよび環境ファイルをすべてアセンブルしました。
手順
-
アンダークラウドホストに
stack
ユーザーとしてログインします。 stackrc
アンダークラウド認証情報ファイルを入手します。$ source ~/stackrc
openstack overcloud deploy
コマンドを実行します。openstack overcloud deploy
コマンドへの入力を特定の順序でリストすることが重要です。一般的なルールは、デフォルトの heat テンプレートファイルを最初に指定し、次にカスタム環境ファイルと、デフォルトプロパティーのオーバーライドなどのカスタム設定を含むカスタムテンプレートを指定することです。次の順序で、
openstack overcloud deploy
コマンドに入力を追加します。オーバークラウド上の SR-IOV ネットワークの仕様が含まれるカスタムネットワーク定義ファイル (例:
network-data.yaml
)。詳細は、director を使用した Red Hat OpenStack Platform のインストールと管理 ガイドの ネットワーク定義ファイル設定のオプション を参照してください。
RHOSP director が OVS ハードウェアオフロード環境をデプロイするために使用する
Controller
およびComputeOvsHwOffload
ロールを含むロールファイル。例:
roles_data_compute_ovshwol.yaml
詳細は、「OVS TC-flower ハードウェアオフロード用のロールとイメージファイルの生成」 を参照してください。
オーバークラウドネットワークのプロビジョニングからの出力ファイル。
例:
overcloud-networks-deployed.yaml
詳細は、director を使用した Red Hat OpenStack Platform のインストールと管理 ガイドの オーバークラウドのネットワーク定義の設定とプロビジョニング を参照してください。
オーバークラウド仮想 IP のプロビジョニングからの出力ファイル。
例:
overcloud-vip-deployed.yaml
詳細は、director を使用した Red Hat OpenStack Platform のインストールと管理 ガイドの オーバークラウドのネットワーク仮想 IP の設定とプロビジョニング を参照してください。
ベアメタルノードのプロビジョニングからの出力ファイル。
たとえば、
overcloud-baremetal-deployed.yaml
です。詳細は、director を使用した Red Hat OpenStack Platform のインストールと管理 ガイドの オーバークラウドのベアメタルノードのプロビジョニング を参照してください。
コンテナーイメージを取得する場所と保存方法を決定するためにディレクターが使用するイメージファイル。
例:
overcloud_images.yaml
詳細は、「OVS TC-flower ハードウェアオフロード用のロールとイメージファイルの生成」 を参照してください。
環境が使用する Networking サービス (neutron) メカニズムドライバーとルータースキームの環境ファイル:
ML2/OVN
-
分散仮想ルーティング (DVR):
neutron-ovn-dvr-ha.yaml
-
集中型仮想ルーティング:
neutron-ovn-ha.yaml
-
分散仮想ルーティング (DVR):
ML2/OVS
-
分散仮想ルーティング (DVR):
neutron-ovs-dvr.yaml
-
集中型仮想ルーティング:
neutron-ovs.yaml
-
分散仮想ルーティング (DVR):
メカニズムドライバーに応じた SR-IOV の環境ファイル:
ML2/OVN
-
neutron-ovn-sriov.yaml
-
ML2/OVS
neutron-sriov.yaml
注記OVS-DPDK 環境もあり、OVS-DPDK インスタンスと SR-IOV インスタンスを同じノードに配置する場合は、デプロイメントスクリプトに次の環境ファイルを含めます。
ML2/OVN
neutron-ovn-dpdk.yaml
ML2/OVS
neutron-ovs-dpdk.yaml
以下の設定を含む 1 つ以上のカスタム環境ファイル:
- ComputeOvsHwOffload ノード用の PCI パススルーデバイス。
- ComputeOvsHwOffload ノードのロール固有のパラメーター。
OVS ハードウェアオフロード環境のデフォルト設定値をオーバーライドします。
例:
ovshwol-overrides.yaml
詳細は以下を参照してください。
- 「OVS TC-flower ハードウェアオフロード用の PCI パススルーデバイスの設定」。
「OVS TC-flower ハードウェアオフロード用のロール固有のパラメーターと設定オーバーライドの追加」。
例
サンプルの
openstack overcloud deploy
コマンドからのこの抜粋は、DVR を使用する SR-IOV、ML2/OVN 環境のコマンド入力の適切な順序を示しています。$ openstack overcloud deploy \ --log-file overcloud_deployment.log \ --templates /usr/share/openstack-tripleo-heat-templates/ \ --stack overcloud \ -n /home/stack/templates/network_data.yaml \ -r /home/stack/templates/roles_data_compute_ovshwol.yaml \ -e /home/stack/templates/overcloud-networks-deployed.yaml \ -e /home/stack/templates/overcloud-vip-deployed.yaml \ -e /home/stack/templates/overcloud-baremetal-deployed.yaml \ -e /home/stack/templates/overcloud-images.yaml \ -e /usr/share/openstack-tripleo-heat-templates/environments/services/\ neutron-ovn-dvr-ha.yaml -e /usr/share/openstack-tripleo-heat-templates/environments/services/\ neutron-ovn-sriov.yaml \ -e /home/stack/templates/ovshwol-overrides.yaml
openstack overcloud deploy
コマンドを実行します。オーバークラウドの作成が完了すると、RHOSP director は、オーバークラウドへのアクセスに役立つ詳細を提供します。
検証
- director を使用した Red Hat OpenStack Platform のインストールと管理 ガイドの オーバークラウドのデプロイメントの検証 のステップを実行します。
次のステップ
NIC の e-switch モードが
switchdev
に設定されていることを確認します。switchdev
モードにより、NIC 上にレプリゼンターポートが確立され、VF にマッピングされます。重要OpenFlow フローをハードウェアにオフロードするには、接続追跡 (conntrack) モジュールの
switchdev
ポートでセキュリティーグループとポートセキュリティーを有効にする必要があります。次のコマンドを実行して NIC を確認します。
例
この例では、NIC
pci/0000:03:00.0
が照会されます。$ sudo devlink dev eswitch show pci/0000:03:00.0
出力例
以下のような出力が表示されるはずです。
pci/0000:03:00.0: mode switchdev inline-mode none encap enable
NIC を
switchdev
モードに設定するには、次のコマンドを実行します。例
この例では、NIC
pci/0000:03:00.0
の e-switch モードがswitchdev
に設定されています。$ sudo devlink dev eswitch set pci/0000:03:00.0 mode switchdev
switchdev
対応 NIC からポートを割り当てるには、次の手順を実行します。admin
ロールを持つ RHOSP ユーザーとしてログインし、binding-profile
値がcapabilities
の neutron ポートを作成し、ポートセキュリティーを無効にします。重要OpenFlow フローをハードウェアにオフロードするには、接続追跡 (conntrack) モジュールの
switchdev
ポートでセキュリティーグループとポートセキュリティーを有効にする必要があります。$ openstack port create --network private --vnic-type=direct --binding-profile '{"capabilities": ["switchdev"]}' direct_port1 --disable-port-security
インスタンスの作成時にこのポート情報を渡します。
レプリゼンターポートをインスタンスの VF インターフェイスに関連付け、ワンタイム OVS データパス処理のためにレプリゼンターポートを OVS ブリッジ
br-int
に接続します。VF ポートのレプリゼンターは、物理 “パッチパネル” フロントエンドのソフトウェアバージョンのように機能します。新しいインスタンスの作成の詳細は、「SR-IOV または OVS TC-flower ハードウェアオフロード環境でのインスタンスの作成」 を参照してください。
インターフェイスおよびレプリゼンターポートに以下の設定を適用し、TC Flower がポートレベルでフロープログラミングをプッシュするようにします。
$ sudo ethtool -K <device-name> hw-tc-offload on
パフォーマンスを向上させるための、各ネットワークインターフェイスチャンネル数を調整します。
チャンネルには、割り込み要求 (IRQ) および IRQ のトリガーとなるキューのセットが含まれます。
mlx5_core
ドライバーをswitchdev
モードに設定すると、mlx5_core
ドライバーはデフォルトである単一の結合チャンネルに設定されます。この設定では、最適なパフォーマンスを得られない可能性があります。Physical Function (PF) マネージャーで次のコマンドを実行して、ホストで使用可能な CPU の数を調整します。
例
この例では、ネットワークインターフェイス
eno3s0f0
の多目的チャネルの数が3
に設定されています。$ sudo ethtool -L enp3s0f0 combined 3
関連情報
- director を使用した Red Hat OpenStack Platform のインストールと管理 ガイドの オーバークラウドの作成
- コマンドラインインターフェイスリファレンス の overcloud deploy
- 「SR-IOV または OVS TC-flower ハードウェアオフロード環境でのインスタンスの作成」
-
ethtool
の man ページ -
devlink
の man ページ - インスタンス作成のためのコンピュートサービスの設定 における コンピュートノードの CPU 固定の設定