SR-IOV (Single Root Input/Output Virtualization
)는 가상 머신이 호스트 장치에 직접 액세스할 수 있도록 하는 호스트 하드웨어 장치 가상화 기술입니다. 다양한 유형의 장치를 가상화할 수 있지만 대부분 네트워크 어댑터를 가상화하는 데 사용됩니다. 이 기사에서는 Windows Hyper-V 서버에서 가상 머신 네트워크 어댑터에 대해 SR-IOV를 활성화하고 구성하는 방법을 보여줍니다.
SRV-IOV는 무료 Windows Hyper-V Server를 포함하여 Hyper-V 2012+에서 지원됩니다. 웹에서 전체 지침을 얻을 수 있으므로 SR-IOV 원칙에 대해 자세히 설명하지 않습니다. 실질적인 이해를 위해서는 SR-IOV가 VM용 호스트의 물리적 네트워크 어댑터에 대한 직접 액세스를 제공하고 Hyper-V 가상 스위치에 의한 트래픽 처리를 우회할 수 있다는 사실을 아는 것으로 충분합니다. SR-IOV 모드에서 하나의 물리적 네트워크 어댑터는 여러 가상 머신에 서비스를 제공할 수 있습니다.
Hyper-V 가상 머신에 SR-IOV를 사용하면 처리량을 크게 늘릴 수 있습니다. , 네트워크 지연 및 CPU 부하 감소 Hyper-V 소프트웨어에 의한 네트워크 트래픽 처리로 인해 발생합니다.
SR-IOV는 NIC 팀 구성과 호환되지 않습니다.Hyper-V 호스트에서 SRV-IOV를 활성화하려면 몇 가지 요구 사항을 충족해야 합니다.
우선 서버의 BIOS에서 SRV-IOV 및 가상화 지원을 활성화합니다. 공급업체에 따라 설정이 다를 수 있습니다.
- 가상화 지원:Intel(가상화 기술, Intel VT, VT-d, Vanderpool), AMD(SVM, AMD-V)
- IOMMU
- SR-IOV
- ASPM
모든 항목이 있는 것은 아니며 SR-IOV가 없을 수도 있습니다. 그러나 SR-IOV가 서버에서 지원되지 않는다는 의미는 아닙니다. 예를 들어 Supermicro 마더보드에는 BIOS에 SR-IOV가 없을 수 있지만 기본적으로 ASPM은 비활성화되어 있습니다. ASPM 및 가상화 지원을 활성화하면 SR-IOV가 자동으로 활성화됩니다.
호스트 Windows OS가 BIOS 설정에서 비활성화된 SR-IOV와 함께 설치된 경우 활성화한 후 시스템은 네트워크 어댑터를 교체한 것으로 간주합니다(현재 고정 IP 주소가 재설정됨).PowerShell을 사용하여 하드웨어 수준에서 Hyper-V 서버가 SR-IOV를 지원하는지 확인할 수 있습니다.
(get-vmhost).IovSupport
(get-vmhost).IovSupportReasons
서버가 기능을 지원하는 경우 IovSupport에 True
가 포함됩니다. . 그렇지 않으면 False
가 됩니다. . 이 경우 IovSupportReasons 항목은 SR-IOV가 지원되지 않는 이유를 보여줍니다. 일반적으로 그 이유를 자세히 설명합니다. 일반적인 이유는 다음과 같습니다.
- 시스템의 칩셋은 SR-IOV를 지원할 수 없는 인터럽트 재매핑을 수행하지 않습니다.
- 프로세서가 SLAT(2차 주소 변환)를 지원하지 않기 때문에 이 컴퓨터에서 SR-IOV를 사용할 수 없습니다. Intel 프로세서의 경우 이 기능을 EPT(Extended Page Tables)라고 할 수 있습니다. AMD 프로세서의 경우 이 기능을 RVI(Rapid Virtualization Indexing) 또는 NPT(Nested Page Tables)라고 합니다.
- SR-IOV는 PCI Express 하드웨어가 루트 포트에서 ACS(액세스 제어 서비스)를 지원하지 않으므로 이 시스템에서 사용할 수 없습니다. 자세한 내용은 시스템 공급업체에 문의하십시오.
- 이 컴퓨터에서 SR-IOV를 사용하려면 BIOS에 하드웨어 기능을 설명하는 잘못된 정보가 포함되어 있으므로 업데이트해야 합니다. 업데이트는 컴퓨터 제조업체에 문의하세요.
- 시스템의 칩셋은 DMA 재매핑을 수행하지 않으며, 그렇지 않으면 SR-IOV를 지원할 수 없습니다.
- SR-IOV는 I/O 재매핑 하드웨어의 사용을 비활성화하도록 구성되었기 때문에 이 시스템에서 사용할 수 없습니다.
- 이 시스템에서 SR-IOV를 사용하려면 Windows에서 PCI Express를 제어할 수 있도록 시스템 BIOS를 업데이트해야 합니다. 업데이트는 시스템 제조업체에 문의하십시오.
- 시스템에 SR-IOV에 대한 칩셋 지원이 있고 BIOS에서 I/O 가상화가 활성화되어 있는지 확인합니다.
- SR-IOV는 PCI Express 버스가 없다고 보고하므로 이 시스템에서 사용할 수 없습니다. 자세한 내용은 시스템 제조업체에 문의하십시오.
get-vmswitch | fl *iov*
명령에는 몇 가지 유용한 정보가 포함되어 있습니다. 예:
IovVirtualFunctionCount : 6 IovVirtualFunctionsInUse : 3
숫자는 사용 가능한 IOV 가상 장치의 수와 가상 머신에서 사용하는 가상 장치의 수를 보여줍니다.
Hyper-V 가상 스위치를 생성할 때 SR-IOV 지원 옵션 - 단일 루트 I/O 가상화(SR-IOV) 활성화를 확인합니다. .
또는 PowerShell을 사용하여 가상 스위치를 생성할 때 EnableIOV 옵션을 활성화합니다.
New-VMSwitch -Name "VMNetExt" -NetAdapterName "Ethernet 2" -EnableIov 1
SR-IOV가 하이퍼바이저 호스트에서 지원되는 경우 특정 가상 스위치에서 작동한다는 의미는 아닙니다. 스위치는 SR-IOV를 지원하는 네트워크 어댑터에 연결되어야 합니다.
또 다른 중요한 것이 있습니다. 마더보드에는 여러 네트워크 어댑터가 있을 수 있지만 SR-IOV는 그 중 일부에서만 지원될 수 있습니다. 또한 데이터시트에 따라 어댑터가 SR-IOV를 지원한다고 해서 마더보드에서 작동하는 것은 아닙니다.
따라서 스위치를 구성한 후 다음 명령을 사용하여 확인하십시오.
get-vmswitch | select IovSupport, IovSupportReasons, IovEnabled
선택
IovEnabled 옵션은 SR-IOV가 활성화되어 있는지 보여줍니다.
PowerShell을 사용하여 SR-IOV를 지원하는 네트워크 어댑터 목록을 표시할 수 있습니다.
Get-NetAdapterSriov | sort name | ft Name, InterfaceDescription, SriovSupport
하이퍼바이저 및 가상 스위치 수준에서 SR-IOV를 활성화한 후 가상 머신에서 활성화할 수 있습니다(기본적으로 비활성화되어 있음). SR-IOV 사용을 찾을 수 있습니다. 하드웨어 가속 옵션 가상 머신 네트워크 어댑터의 섹션입니다.
또는 PowerShell을 통해 가상 머신의 네트워크 어댑터에 대해 SR-IOV를 활성화할 수 있습니다.
Set-VMNetworkAdapter -VMName mytestvm -VMNetworkAdapterName “Network Adapter” -IovWeight 100
별도의 이벤트 뷰어 로그를 사용하여 Hyper-V의 모든 SR-IOV 오류 및 이벤트를 찾을 수 있습니다.
응용 프로그램 및 서비스 로그 -> Microsoft -> Windows -> Hyper-V-SynthNic -> 관리
SR-IOV가 제대로 작동하면 가상 머신 시작 시 이벤트 뷰어에 다음 항목이 표시됩니다.
12597 Network adapter (%NIC_ID%) Connected to virtual network. 12582 Network adapter (%NIC_ID%) started successfully. 12584 Network adapter (%NIC_ID%) allocated a virtual function. 12588 Network adapter (%NIC_ID%) assigned a virtual function.
SR-IOV는 가상 머신과 하이퍼바이저의 네트워크 성능을 향상시킵니다. 호스트 CPU에 과부하를 일으키는 가상 머신의 트래픽이 많은 Hyper-V 호스트에서 SR-IOV를 사용하면 가장 높은 결과를 볼 수 있습니다.