KVM 上の vRR は、シングルルート I/O 仮想化(SR-IOV)インターフェイス タイプをサポートしています。SR-IOV(シングル ルート I/O 仮想化)では、物理機能を複数の個別の vNIC として表示できます。SR-IOV を使用すると、ネットワーク アダプターなどのデバイスは、さまざまなハードウェア機能間でリソースに個別にアクセスできます。SR-IOV をサポートする物理 NIC がある場合は、SR-IOV 対応 vNIC または VF(仮想機能)を vRR インスタンスにアタッチして、パフォーマンスを向上させることができます。
- SR-IOV を有効にする BIOS 要件。Intel VT-d または AMD IOMMU がシステム BIOS 設定で有効になっていることを確認します。
- KVM 向け VRR の SR-IOV には、次のいずれかの Intel NIC ドライバーが必要です。
- 40G ポートと i40e ドライバーを使用した Intel X710 または XL710
- 10G ポートと ixgbe ドライバーを使用した Intel X520 または X540
- Junos OS リリース:
- Junos OS リリース 17.4 以降では、Intel X710/XL710 NIC を備えた 40G ポートを vRR でサポートしています。
- Junos OS リリース 20.4R3 以降、Intel X520/X540 NIC を備えた 10G ポートを vRR でサポートできます。
- コマンドを使用して、ホストで使用可能な NIC(デバイス)をlshw -businfo -c network探します。
- 以下の出力では、10G NIC は enp2s0f0 と enp2s0f1 です。
- 40G NIC は enp4s0f0 および enp4s0f1
root@vrr-host: lshw -businfo -c network
Bus info Device Class Description
========================================================
pci@0000:02:00.0 enp2s0f0 network 82599ES 10-Gigabit SFI/SFP+ Network Connection
pci@0000:02:00.1 enp2s0f1 network 82599ES 10-Gigabit SFI/SFP+ Network Connection
pci@0000:04:00.0 enp4s0f0 network Ethernet Controller XL710 for 40GbE QSFP+
pci@0000:04:00.1 enp4s0f1 network Ethernet Controller XL710 for 40GbE QSFP+
pci@0000:04:02.0 enp4s2 network Illegal Vendor ID
pci@0000:07:00.0 enp7s0f0 network I350 Gigabit Network Connection
pci@0000:07:00.1 enp7s0f1 network I350 Gigabit Network Connection
- SR-IOV を構成する予定のデバイスを使用して、ホスト上の VM を削除します。
- デバイスでサポートされているVFの最大数を確認します(enp2s0f0やenp4s0f0など)
cat /sys/class/net/ enp4s0f0/device/sriov_totalvfs 63
- デバイスで必要な VF 数を設定します。
echo 2 > /sys/class/net/enp4s0f0/device/sriov_numvfs (as a root user)
- コマンドを使用して lspci VF が作成されているかどうかを確認します。デバイスのイーサネット コントローラに対応する仮想機能が表示されます。
lspci | grep Ethernet
04:00.0 Ethernet controller: Intel Corporation Ethernet Controller XL710 for 40GbE QSFP+ (rev 02) - PF1
04:00.1 Ethernet controller: Intel Corporation Ethernet Controller XL710 for 40GbE QSFP+ (rev 02) - PF2
04:02.0 Ethernet controller: Intel Corporation XL710/X710 Virtual Function (rev 02) - VF1
04:0a.0 Ethernet controller: Intel Corporation XL710/X710 Virtual Function (rev 02) - VF2
- ネットワーク デバイスの既存のインターフェイス スタンザを置き換えて、新しい XML を取得します。管理デバイスのエントリーは、そのまま維持してください。
<interface type='hostdev' managed='yes'>
<mac address='30:b6:4f:60:f2:82'/> - the same as in a non-SR-IOV XML or pick a valid mac
<driver name='kvm'/>
<source>
<address type='pci' domain='0x0000' bus='0x04’ slot='0x00’ function='0x0'/> - get this value from lspci output for the VF - column 1 domain:bus:slot:function (domain is 0x0000 by default).
</source>
<alias name='hostdev0'/>
<address type='pci' domain='0x0000' bus='0x01' slot='0x01’ function='0x0'/> - keep the same as in the existing XML
</interface>
- 新しいSRIOVベースのインターフェイスでVRRインスタンスを起動する
- 最後に、Junos vRR で作成された VF デバイスを確認するには、ブート メッセージで「名前の変更」の grep を実行します。
root@device> show system boot-messages | grep renaming
re_vrr_ifd_rename: renaming ixv* -> em* - 10G (ixv*)
re_vrr_ifd_rename: renaming ixlv* -> em* - 40G (ixlv*)
re_vrr_ifd_rename: renaming vtnet* -> em* - Management