6.3. NIC の分割
この機能は、本リリースでは テクノロジープレビュー として提供しているため、Red Hat では全面的にはサポートしていません。これは、テスト用途にのみご利用いただく機能で、実稼働環境にデプロイすべきではありません。テクノロジープレビュー機能についての詳しい情報は、「対象範囲の詳細」を参照してください。
Red Hat OpenStack Platform ホストが Virtual Function (VF) を使用できるように、Single Root I/O Virtualization (SR-IOV) を設定することができます。
1 つの高速 NIC を複数の VF に分割する場合、NIC をコントロールプレーンおよびデータプレーントラフィックの両方に使用することができます。その後、必要に応じて QoS (Quality of Service) 優先度の値を VF インターフェースに適用することができます。
手順
オーバークラウドデプロイメント用のテンプレートを作成する際に、以下の手順を実施するようにしてください。
os-net-configロールファイルでインターフェース種別sriov_pfを使用して、ホストが使用できる Physical Function を設定します。- type: sriov_pf name: <interface name> use_dhcp: false numvfs: <number of vfs> promisc: <true/false> #optional (Defaults to true)- type: sriov_pf name: <interface name> use_dhcp: false numvfs: <number of vfs> promisc: <true/false> #optional (Defaults to true)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記numvfsパラメーターは、ネットワーク設定テンプレートのNeutronSriovNumVFsパラメーターに代わるものです。Red Hat では、デプロイ後のNeutronSriovNumVFsパラメーターまたはnumvfsパラメーターの変更をサポートしません。デプロイ後にいずれかのパラメーターを変更すると、その Physical Function (PF) 上に SR-IOV ポートを持つ実行中のインスタンスが使用できなくなる可能性があります。この場合、これらのインスタンスをハードリブートして、SR-IOV PCI デバイスを再び利用可能にする必要があります。インターフェース種別
sriov_vfを使用して、ホストが使用できるボンドの Virtual Function を設定します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow VLAN タグは、共通の PF デバイスに属するすべての VF を通じて一意でなければなりません。VLAN タグをインターフェース種別に割り当てる必要があります。
- linux_bond
- ovs_bridge
- ovs_dpdk_port
- 適用可能な VF ID の範囲は、ゼロから VF の最大数から 1 を引いた数値までです。
仮想マシンに Virtual Function を確保するには、
NovaPCIPassthroughパラメーターを使用します。ホストではなく仮想マシンで使用するために Nova にパススルーする VF を識別するには、正規表現の値をaddressパラメーターに割り当てる必要があります。これらの値は
lspciから取得することができます。したがって、必要に応じてコンピュートノードを Linux 環境にブートしてこの情報を取得します。lspciコマンドは、各デバイスのアドレスを<bus>:<device>:<slot>の形式で返します。これらのアドレスの値を、以下の形式でNovaPCIPassthroughパラメーターに入力します。NovaPCIPassthrough: - physical_network: "sriovnet2" address: {"domain": ".*", "bus": "06", "slot": "11", "function": "[5-7]"} - physical_network: "sriovnet2" address: {"domain": ".*", "bus": "06", "slot": "10", "function": "[5]"}NovaPCIPassthrough: - physical_network: "sriovnet2" address: {"domain": ".*", "bus": "06", "slot": "11", "function": "[5-7]"} - physical_network: "sriovnet2" address: {"domain": ".*", "bus": "06", "slot": "10", "function": "[5]"}Copy to Clipboard Copied! Toggle word wrap Toggle overflow NIC の分割が必要なすべてのノードで
IOMMUを有効にします。たとえば、コンピュートノードに NIC 分割を設定する場合は、そのロールのKernelArgsパラメーターを使用して IOMMU を有効にします。parameter_defaults: ComputeParameters: KernelArgs: "intel_iommu=on iommu=pt"parameter_defaults: ComputeParameters: KernelArgs: "intel_iommu=on iommu=pt"Copy to Clipboard Copied! Toggle word wrap Toggle overflow
検証
VF の数を確認します。
[root@overcloud-compute-0 heat-admin]# cat /sys/class/net/p4p1/device/sriov_numvfs 10 [root@overcloud-compute-0 heat-admin]# cat /sys/class/net/p4p2/device/sriov_numvfs 10
[root@overcloud-compute-0 heat-admin]# cat /sys/class/net/p4p1/device/sriov_numvfs 10 [root@overcloud-compute-0 heat-admin]# cat /sys/class/net/p4p2/device/sriov_numvfs 10Copy to Clipboard Copied! Toggle word wrap Toggle overflow Linux ボンディングを確認します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow OVS ボンディングを一覧表示します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow OVS の接続を表示します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
NovaPCIPassthrough を使用して VF をインスタンスに渡した場合には、SR-IOV インスタンスをデプロイして テストを行います。
以下のボンディングモードがサポートされます。
- balance-slb
- active-backup