Skip to main content
  • Place orders quickly and easily
  • View orders and track your shipping status
  • Enjoy members-only rewards and discounts
  • Create and access a list of your products

SR-IOV Forbedring av nettverksI/O i et virtualisert miljø i Windows Server 2012

Summary: Dell-OS og programløsninger på Dell TechCenter – Prosjekt Sputnik, Microsoft Windows, Red Hat Linux, SUSE, Ubuntu, og mer

This article applies to This article does not apply to This article is not tied to any specific product. Not all product versions are identified in this article.

Symptoms

Dette innlegget ble opprinnelig skrevet av Abhijit Khande &; Vineeth V Acharya fra DELL Windows Engineering Team.

Kommentarer er velkomne! Hvis du vil foreslå et emne eller komme med andre kommentarer, kan du kontakte
WinServerBlogs@dell.com.


Med Microsoft® Windows Server® 2012 Beta operativsystem, har Microsoft innført støtte for en rekke funksjoner i nettverk plass. En så viktig og interessant funksjon er I/O-virtualisering med én rot (SR-IOV), som gjør det mulig for virtuelle maskiner å dele én enkelt PCI-e-enhet. Dette innlegget gir en grunnleggende oversikt over SR-IOV i Windows Server 2012 Beta og hvordan det drastisk reduserer CPU-utnyttelsen i et virtualisert miljø under nettverks-I/O.

SR-IOV-grensesnittet er en utvidelse av PCI Express (PCIe)-spesifikasjonen. SR-IOV gjør det mulig for en enkelt PCIe-enhet, for eksempel et nettverkskort, å gi flere lette maskinvareoverflater på PCI-bussen og skille tilgang til ressursene mellom de forskjellige forekomstene. Det oppnås ved bruk av flere virtuelle funksjoner (VF) i tillegg til den (vanlige) fysiske funksjonen (PF). Siden det er maskinvareavhengig, må både PCIe-enheten og plattformen støtte denne funksjonen. 

Tradisjonelt mottas en pakke bestemt for den virtuelle maskinen av det fysiske nettverkskortet (ved hjelp av fysisk funksjon) som finnes i vertsoperativsystemet. Denne pakken håndteres av drivermodulen for NDIS (Network Driver Interface Specification for NIC-er). Pakken leveres deretter til Hyper-V-bryteren, som behandler pakken (for eksempel ruting, VLAN-filtrering) og videresender pakken til den bestemte VM via VMBus, som vist i figur 1. Den motsatte banen vil bli fulgt når VM må sende en pakke.

 Med SR-IOV kan VM bruke en virtuell funksjon (VF) til å sende og motta pakker direkte til det fysiske nettverkskortet og omgå den tradisjonelle banen fullstendig som vist i figur 1. Dette øker ikke bare nettverks-I/O, men reduserer også overhead på vertsmaskinens CPU.
SLN312240_en_US__1i_OSandApplications_Virtualized_Environment1_2012_N_V1
Figur 1: Databane med og uten SR-IOV

Live Migration &; SR-IOV

I Windows Server 2012 Beta kan Live Migration utføres med SR-IOV som brukes av en virtuell maskin. Hvis kilde- og målsystemene støtter SR-IOV og målet har en tilgjengelig VF, vil VM-en bruke den virtuelle funksjonen. Hvis ikke, vil VM gå tilbake til den tradisjonelle banen (VM-buss).

Hvert SR-IOV-kompatible nettverkskort eksponerer et fast antall virtuelle funksjoner, som kan hentes ved å kjøre PowerShell-kommandoen "Get-NetAdapterSriov".


Ytelsesanalyse

Vi utførte noen tester i laboratoriet vårt for å sammenligne ytelsen med og uten SR-IOV. Testmiljøet består av én testserver (som testene utføres på) og én filserver. Testserveren er en Dell PowerEdge™ R710 II med en Intel® X520 10 GB Ethernet-adapter og Windows Server 2012 Beta OS. Filserveren er vert for flere delte SMB-ressurser, og er koblet til testserveren ved hjelp av et 10 GB-nettverk via en Dell PowerConnect™ 8024-svitsj.

Vi fanget ytelsesdataene i form av CPU-en som brukes av DPC-ene (Deferred Procedure Call) planlagt av de forskjellige drivermodulene som deltar i nettverksdataoverføringen. Disse dataene ble registrert både i gjeste- og vertsoperativsystemet, som beskrevet i følgende scenarier. Testserveren har 4 identiske virtuelle maskiner med Windows Server 2012 Beta som gjest OS. De fire virtuelle maskinene er koblet til 10 GB-nettverket via en virtuell svitsj. Denne testkonfigurasjonen er vist i figur 2.
SLN312240_en_US__2i_OSandApplications_Virtualized_Environment2_2012_N_V1
Figur 2: Testkonfigurasjon
Før vi viser frem ytelsesdataene, er det viktig å introdusere en svært kritisk parameter som brukes til denne testingen. I den Microsoft Windows Det finnes en systemmekanisme kalt Deferred Procedure Call (DPC), som tillater oppgaver med høy prioritet (f.eks. Avbruddsbehandling) for å utsette obligatoriske, men lavere prioriterte oppgaver for senere utførelse. Dette gjør det mulig for enhetsdrivere og andre forbrukere med lav prioritet å utføre den høyt prioriterte delen av behandlingen raskt, og planlegge ikke-kritisk tilleggsbehandling for kjøring med lavere prioritet.


Scenario 1 – Ytelsesresultater i virtuell maskin (gjesteoperativsystem):

Vi brukte fire virtuelle maskiner (VM) i dette scenariet (VM 1 til VM 4). Vi aktiverte SR-IOV på VM 1 og VM 2 (ved å merke av for "Enable SR-IOV" i VM-innstillinger) og deaktiverte SR-IOV på VM 3 og VM 4 (ved å fjerne merket for det samme alternativet). Derfor vil VM 1 og VM 2 bruke den virtuelle funksjonen (eksponert av Intel-adapteren), mens VM 3 og VM 4 vil bruke den syntetiske banen (VMBus) for all nettverkskommunikasjon, som vist i figur 2.

Vi begynte å kopiere data (av størrelse 20 GB) fra én enkelt SMB-ressurs til de virtuelle maskinene og registrerte operativsystemets CPU-brukslogger i gjesteoperativsystemet.
SLN312240_en_US__3i_OSandApplications_Virtualized_Environment3_2012_N_V1
Figur 3: DPC CPU-bruk i virtuell maskin

I figur 3 refererer SR-IOV til gjennomsnittlig DPC CPU-bruk i VM-1 og VM-2, og ikke-SR-IOV refererer til gjennomsnittlig DPC CPU-bruk i VM-3 og VM-4. Hvis vi ser på grafen, ser vi at det ikke er stor forskjell i CPU-bruken mellom de to tilfellene, men vi har ikke tatt hensyn til CPU-bruken i vertsmaskinen ennå.


Scenario 2 – Ytelsesresultat i vertsmaskinen (verts-OS):

Vi brukte én virtuell maskin i dette scenariet. Vi begynte å kopiere data (av størrelse 20GB) fra SMB dele til VM og fanget DPC CPU bruk av 2 moduler, NDIS og VMBUS, som brukes i nettverk I / O.
SLN312240_en_US__4i_OSandApplications_Virtualized_Environment4_2012_N_V1
Figur 4: DPC CPU-bruk i vertsmaskin
Resultatene er vist i figur 4. Som forventet er det stor forskjell i CPU-bruken mellom de to tilfellene (SR-IOV og ikke-SR-IOV). CPU-bruken er i størrelsesorden 102 når det gjelder SR-IOV, og i størrelsesorden 103 - 104 når det gjelder ikke-SR-IOV. Dette skyldes hovedsakelig at når det gjelder SR-IOV, kommuniserer den virtuelle maskinen direkte med det fysiske nettverkskortet via den virtuelle funksjonen. Derfor brukes ikke CPU-syklusene til verten til å behandle nettverkspakker. Når det gjelder ikke-SR-IOV (som vist i figur 1), kommuniserer gjesteoperativsystemet med vertsoperativsystemet via VM-bussen, som igjen behandler pakkene og sender dem via det fysiske nettverkskortet. Derfor er moduler som VM Bus og NDIS mye brukt.

Ved beregning av total CPU-bruk observerer vi at CPU-utnyttelsen under nettverks-I/O er langt mindre ved bruk av SR-IOV. Derfor vil Windows Server 2012 Beta med SR-IOV aktivert hjelpe kunder med å redusere CPU-belastningen under nettverks-I/O og dermed forbedre den generelle systemytelsen.

 

Cause

Konfigurere SR-IOV ved hjelp av PowerShell

Du kan bruke følgende PowerShell-kommandoer til å opprette en ny virtuell svitsj med SR-IOV aktivert, og koble den virtuelle svitsjen til det virtuelle nettverkskortet på en eksisterende virtuell maskin.

MERK: Før du kjører følgende kommandoer, må følgende alternativer være aktivert i BIOS
  • Virtualiserings-teknologi
  • SR-IOV Global Enable
(Forutsatt at et enkelt nettverkskort (Intel X520) er koblet til)

$NetAdap = Get-NetAdapter | Hvor-objekt { $_. Status -eq "Up"}(-EnableIov-bryteren brukes til å aktivere SR-IOV i den virtuelle bryteren)

New-VMSwitch -Name "SRIOV Switch" -NetAdapterName $NetAdap.Name -AllowManagementOS $True -Notes: "SRIOV Switch on X520" -EnableIov $True

$VMSw = Get-VMSwitch
Legge til et nytt nettverkskort til VM-1 og koble det til den virtuelle svitsjen.





Legg til-VMNetworkAdapter -SwitchName $VMSw.Name -VMName VM-1 -Navn "SRIOV Adapter"


MERK:For at denne kommandoen skal fungere, må VM være slått av)
Du kan også bruke et allerede eksisterende VM-nettverkskort ved å bruke følgende kommandoer)

$VMNet = Get-VMNetworkAdapter -VMName VM-1

Connect-VMNetworkAdapter -VMName VM-1 -SwitchName $VMSw.Name -Name $VMNet.Name

Hvert VM-nettverkskort har to egenskaper, IovWeight &; VmqWeight, som tilsvarer henholdsvis SR-IOV og VMQ.  Hvis du justerer disse tykkelsene, aktiveres eller deaktiveres funksjonene.

Resolution

For å aktivere SR-IOV, sett IovWeight til 100. Hvis du vil deaktivere SR-IOV, setter du IovWeight til 0 (standard)

Set-VMNetworkAdapter -VMName VM-1 -VMNetworkAdapterName $VMNetName -IovWeight 100

der $VMNetName er navnet på VM-nettverkskortet som er koblet til SRIOV-svitsjen.

 
Gå til følgende koblinger for mer informasjon:

Affected Products

Servers
Article Properties
Article Number: 000129905
Article Type: Solution
Last Modified: 20 Sep 2021
Version:  4
Find answers to your questions from other Dell users
Support Services
Check if your device is covered by Support Services.