メイン コンテンツに進む
  • すばやく簡単にご注文が可能
  • 注文内容の表示、配送状況をトラック
  • 会員限定の特典や割引のご利用
  • 製品リストの作成とアクセスが可能
  • 「Company Administration(会社情報の管理)」では、お使いのDell EMCのサイトや製品、製品レベルでのコンタクト先に関する情報を管理できます。

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

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

この記事は自動翻訳されたものである可能性があります。品質に関するフィードバックがある場合は、このページの下部にあるフォームを使用してお知らせください。

文書の内容


現象

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.

 

原因

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.

解決方法

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:

文書のプロパティ


影響を受ける製品

Servers

最後に公開された日付

20 9月 2021

バージョン

4

文書の種類

Solution