7.6. NIC パーティションの設定
Red Hat OpenStack Platform (RHOSP) 管理ネットワークおよびプロバイダーネットワークに Single Root I/O Virtualization (SR-IOV) Virtual Function (VF) を設定して、各ホストに必要な NIC の数を減らすことができます。1 つの高速 NIC を複数の VF に分割する場合、NIC をコントロールプレーンおよびデータプレーントラフィックの両方に使用することができます。この機能は、Intel Fortville NIC および Mellanox CX-5 NIC で検証されています。
前提条件
-
アンダークラウドホストへのアクセスと
stack
ユーザーの認証情報。 NIC、そのアプリケーション、VF ゲスト、および OVS が同じ NUMA コンピュートノードに存在することを確認します。
そうすることで、NUMA 間の操作によるパフォーマンスの低下を防ぐことができます。
NIC ファームウェアを常に最新の状態に保ってください。
Yum
またはdnf
更新ではファームウェアの更新が完了しない可能性があります。詳細は、ベンダーのドキュメントを参照してください。
手順
-
アンダークラウドに
stack
ユーザーとしてログインします。 stackrc
ファイルを取得します。$ source ~/stackrc
「SR-IOV 用の NIC 設定テンプレートの作成」 で作成した NIC 設定テンプレート (例:
single_nic_vlans.j2
) を開きます。ヒントこのセクションの手順を完了したら、「NIC パーティションの設定例」 を参照してください。
インターフェイス種別
sriov_pf
のエントリーを追加して、ホストが使用できる Physical Function を設定します。- type: sriov_pf name: <interface_name> use_dhcp: false numvfs: <number_of_vfs> promisc: <true/false>
-
<interface_name>
は、インターフェイスの名前に置き換えます。 -
<number_of_vfs>
は VF の数に置き換えます。 -
オプション:
<true/false>
をtrue
に置き換えてプロミスキャスモードを設定するか、false
に置き換えてプロミスキャスモードを無効にします。デフォルト値はtrue
です。
注記numvfs
パラメーターは、ネットワーク設定テンプレートのNeutronSriovNumVFs
パラメーターに代わるものです。Red Hat では、デプロイ後のNeutronSriovNumVFs
パラメーターまたはnumvfs
パラメーターの変更をサポートしません。デプロイ後にいずれかのパラメーターを変更すると、その Physical Function (PF) 上に SR-IOV ポートを持つ実行中のインスタンスが使用できなくなる可能性があります。この場合、これらのインスタンスをハードリブートして、SR-IOV PCI デバイスを再び利用可能にする必要があります。-
インターフェイス種別
sriov_vf
のエントリーを追加して、ホストが使用できる Virtual Function を設定します。- type: <bond_type> name: internal_bond bonding_options: mode=<bonding_option> use_dhcp: false members: - type: sriov_vf device: <pf_device_name> vfid: <vf_id> - type: sriov_vf device: <pf_device_name> vfid: <vf_id> - type: vlan vlan_id: get_param: InternalApiNetworkVlanID spoofcheck: false device: internal_bond addresses: - ip_netmask: get_param: InternalApiIpSubnet routes: list_concat_unique: - get_param: InternalApiInterfaceRoutes
-
<bond_type>
を必要なボンディング種別 (例:linux_bond
) に置き換えます。ovs_bond
等の他のボンディング種別のボンディングに VLAN タグを適用することができます。 <bonding_option>
を、以下のサポートされるボンディングモードのいずれかに置き換えます。-
active-backup
Balance-slb
注記LACP ボンディングはサポートされません。
-
members
セクションで、ボンディングのインターフェイス種別としてsriov_vf
を指定します。注記インターフェイス種別として OVS ブリッジを使用している場合は、
sriov_pf
デバイスのsriov_vf
に OVS ブリッジを 1 つだけ設定することができます。単一のsriov_pf
デバイス上に複数の OVS ブリッジがあると、VF 間でパケットが重複し、パフォーマンスが低下する可能性があります。-
<pf_device_name>
を PF デバイスの名前に置き換えます。 -
linux_bond
を使用する場合は、VLAN タグを割り当てる必要があります。VLAN タグを設定する場合は、1 つのsriov_pf
デバイスに関連付けられた各 VF に一意のタグを設定するようにしてください。同じ VLAN 上の同じ PF の VF を 2 つ指定できません。 -
<vf_id>
を VF の ID に置き換えます。適用可能な VF ID の範囲は、ゼロから VF の最大数から 1 を引いた数値までです。 - スプーフィングチェックを無効にします。
-
VF 上の
linux_bond
のsriov_vf
に VLAN タグを適用します。
-
インスタンスに VF を確保するには、環境ファイルに
NovaPCIPassthrough
パラメーターを追加します。例
NovaPCIPassthrough: - address: "0000:19:0e.3" trusted: "true" physical_network: "sriov1" - address: "0000:19:0e.0" trusted: "true" physical_network: "sriov2"
RHOSP director はホストの VF を把握し、インスタンスで利用可能な VF の PCI アドレスを派生します。
NIC の分割が必要なすべてのノードで
IOMMU
を有効にします。例
たとえば、Compute ノードに NIC 分割を設定する場合は、そのロールの
KernelArgs
パラメーターを使用して IOMMU を有効にします。parameter_defaults: ComputeParameters: KernelArgs: "intel_iommu=on iommu=pt"
注記KernelArgs
パラメーターをロールの設定に初めて追加すると、オーバークラウドノードが自動的に再起動されます。必要に応じて、ノードの自動再起動を無効にし、代わりに各オーバークラウドのデプロイ後にノードの再起動を手動で実行できます。-
この NIC 設定テンプレート (例:
single_nic_vlans.j2
) を、「SR-IOV 用のベアメタルノード定義ファイルの作成」 で作成したベアメタルノード定義ファイルに追加してください。
次のステップ
- director を使用した Red Hat OpenStack Platform のインストールと管理 ガイドの オーバークラウドのネットワーク定義の設定とプロビジョニング
- director を使用した Red Hat OpenStack Platform のインストールと管理 ガイドの オーバークラウドのネットワーク仮想 IP の設定とプロビジョニング
- director を使用した Red Hat OpenStack Platform のインストールと管理 ガイドの オーバークラウドのベアメタルノードのプロビジョニング
- 「SR-IOV オーバークラウドのデプロイ」
関連情報