KVM상의 vRR은 SR-IOV(Single-Root I/O Virtualization) 인터페이스 유형을 지원합니다. SR-IOV(단일 루트 I/O 가상화)를 통해 물리적 기능이 여러 개의 개별 vNIC으로 표시되도록 합니다. SR-IOV를 사용하면 네트워크 어댑터와 같은 디바이스가 다양한 하드웨어 기능 간에 리소스에 별도의 액세스 권한을 가질 수 있습니다. SR-IOV를 지원하는 물리적 NIC가 있는 경우 SR-IOV 기반 vNIC 또는 VF(가상 기능)를 vRR 인스턴스에 연결하여 성능을 개선할 수 있습니다.
- SR-IOV를 활성화하기 위한 BIOS 요구 사항; 시스템 BIOS 설정에서 Intel VT-d 또는 AMD IOMMU가 활성화되는지 확인
- 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