Enkelt Root IO Virtualization


Innledning

Enkelt Root I /O Virtualization (SR-IOV) er en standard utviklet av PCI-SIG som fungerer sammen med systemet brikkesett støtter virtualiseringsteknologier. SR-IOV gjør nettverkstrafikk til å omgå programvare bryter laget av Hyper-V virtualiseringsbunken for å tillate SR-Iov kompatible enheter som skal tildeles direkte til en virtuell maskin. Den gjør dette ved å gi remapping av avbryter og DMA

Hyper-V i Windows Server 2012 har innebygd støtte for SR-IOV –. Dyktige nettverksenheter å tillate en SR-IOV virtuell funksjon av et fysisk nettverkskort som skal tildeles direkte til en virtuell maskin. Resultatet er økt nettverkstrafikk og reduserer nettverks ventetid for virtuelle maskiner som kjører på Hyper-V verter samtidig redusere verten CPU overhead kreves for behandling nettverkstrafikk.

Hvis du vil vite hvordan SR-IOV fungerer og hvordan du aktiverer det i en Hyper-V miljø, kommer jeg til å dele med deg et kort utdrag fra den uredigerte utkast av min nye eBok Optimalisering og feilsøking Hyper-V Networking (Microsoft Press, 2013). Innholdet i dette emnet ble bidratt med Keith Hill, en Sr. Support Escalation Engineer med Windows Server Core High Availability Team. Keith startet sin Microsoft reise i 1999 på afterhours support team. Han flyttet til klyngen teamet ca 7 år senere, og 2 år siden ble den Support Topic herren for Hyper-V innen Commercial Technical Support (CTS). Keith hadde også bistand av John Howard, Program Manager for Hyper-V, i å utvikle dette innholdet.

Oversikt

En av de nye funksjonene som følger med Hyper-V 2012 er Single Root I /O Virtualization (SR-IOV). SR-IOV er en spesifikasjon som ble opprettet av Peripheral Component Interconnect Special Interest Group (PCI-SIG) i 2010. Denne nye standarden, SR-IOV, gjør at en PCIe-enhet for å fremstå som flere separate fysiske PCIe-enheter.
< p> Merk:. For noen lys lesing kan du lese SR-IOV standard på denne web link

Det er viktig å merke seg at SR-IOV standarden gjelder for alle PCIe enheter, inkludert lagring. Men med Windows Server 2012 Microsoft så hvor den største gevinsten vil være i bruk av SR-IOV. Microsoft valgte å utelukkende jobbe med SR-IOV for nettverksbygging som eneste støttede enheten

I Windows Server 2008 R2 vi har to typer virtuelle nettverkskort:. Den emulerte nettverkskort (Legacy Network Adapter) og syntetisk nettverks adapter (nettverkskort). Jeg tror at de fleste av oss har lest de grunner som til hvilken som er bedre å bruke og hvorfor skal ikke bruke en emulert nettverkskort over en programvare nettverkskort. Men for de som ennå ikke å forstå det, og det er faktisk viktig til temaet i dette kapitlet for å forstå det, vil jeg kort gå over dem.

emulert nettverkskort er det verste utføre kortet ut av de to og bør brukes til å PXE boot et VM. Programvaren NIC er standard og får en ytelse på grunn av VMBus, et minne rørledning, som sender forespørsel enheten til den overordnede partisjonen og deretter til den fysiske enheten. Men det er overhead knyttet til I /O bane med programvaren NIC.

Kort sagt, programvare enheter innføre ventetid, øke den totale veilengden og forbruker beregne sykluser. Med høyere nettverkshastigheter, og antall støttet VM er på et system ville det ikke være uvanlig å se en enkelt kjerne blir konsumert med 5-7 GB /sek av nettverkstrafikk som genereres av de virtuelle maskinene som kjører på Windows Server 2008 R2 SP1 .

Så det førte Microsoft til å tilby andre alternativer for de scenarier. Alle velkommen ankomsten av SR-IOV i Windows Server 2012. Dette er en sikker enhet modell, godt forhold til programvare basert enhet deling I /O, som har lavere ventetid, høyere gjennomstrømning og lavere beregne overhead. Alt dette og det skalerer godt som antall VMs økning i fremtiden.

Hvordan SR-IOV fungerer

Så hvordan SR-IOV jobbe? I Windows Server 2012 fungerer Hyper-V SR-IOV gjennom fysiske funksjoner (PF) og virtuelle funksjoner (VF).

PFs er PCIe funksjon av et nettverkskort som støtter SR-IOV spesifikasjonen. PF inneholder alle de utvidede mulighetene i PCIe basis spesifikasjoner. Denne evnen brukes til å konfigurere og administrere SR-IOV funksjonaliteten til nettverkskortet inkludert muliggjør virtualisering og utsette VFS. VFS er "lette" funksjoner som mangler ressurser konfigurasjons. Hver VF aksjer ett av flere fysiske ressurser på nettverkskortet.

For eksempel VF aksjer ekstern nettverksport med PF og andre VFS. Mens VFS er forbigående, husk at PFs er alltid tilgjengelig (det er hvis det PCIe-enheten ikke er deaktivert). Det er viktig å forstå at en VF ikke kan eksistere uten PF. For illustrasjon la oss ta en titt på programvarekomponenter i følgende diagram:

Merk: Det er viktig å forstå at vfs er maskinvareressurser og på grunn av dette er det begrensninger på antall VFS som er tilgjengelig på forskjellige maskinvareenheter. Foreløpig slike enheter tilbyr opptil 64 vfs per PF.

SR-IOV høres flott ut, men det er noen ting til det. SR-IOV må støttes fra BIOS samt NIC og operativsystemet som kjører hypervisoren. En ting som noen mennesker får en smule litt forvirret løpet er at Hyper-V på Server-plattformen ikke krever slat, men for SR-IOV å jobbe det er et krav

. Merk: En enhet som er SR -IOV stand kan brukes som en vanlig I /O enheten utenfor virtualisering.

Aktivere SR-IOV

Så dette høres veldig interessant, men hvordan aktiverer du det? Vel det vil være det neste spørsmålet som jeg ville være å spørre. Forutsatt at du har satt opp i BIOS riktig, dine prosessorer støtter Second Level Address Translation (slat), og du har en SR-IOV PCIe nettverkskort i systemet; det første skrittet til å ha noen nettverkstilkobling (enten det er å aktivere SR-IOV eller ikke) er å opprette en ekstern virtuell svitsj. Du kan gjøre dette ved å bruke Virtual Switch sjef i Hyper-V Manager eller du kan gjøre dette i Powershell.

La oss starte med å se på Hyper-V Manager. Du åpen Hyper-V Manager, klikk deretter på Virtual Switch sjef på høyre side. Dette vil åpne opp Virtual Switch Manager-grensesnittet. Derfra er det mye som å lage noen annen virtuell svitsj med én forskjell:

Figur 2:. En skjermbilde som viser hvordan du aktiverer SR-IOV for en virtuell svitsj på verts

Merk: Ved nederst på vinduet kan du se SR-IOV advarsel. Når en bryter er opprettet kan du ikke legge dette alternativet igjen. Hvis du ønsker å legge SR-IOV senere må du slette bryteren og gjenskape det.

Som jeg antydet ovenfor kan du også lage Virtual Switch i Powershell. Ved hjelp av Powershell er utvidelser for Hyper-V du kjører kommandoen New-VMSwitch. Denne kommandoen krever en parameter for å angi fysiske nettverk som du ønsker å bruke. Og Microsoft tenkt på det også, og vi har en kommando for det. Du kan kjøre Get-NetAdapter å liste dem ut

Så her kan du se at jeg har listet ut nettverkskortene i PS nedenfor.

Figur 3: Et skjermbilde som viser hvordan du bruker Windows Powershell til listen Nettverkskort

Så nå som vi har nettverkskort navn vi kan bruke den New-VMSwitch kommando:.

Figur 4:. Et skjermbilde som viser Ny-VMSwitch cmdlet

Så nå med Get-VMSwitch kommando vi kan se egenskapene som ble eksponert på VMNetworkadapter objekt:

For de to siste, jeg vil ta opp disse sammen som de er like
.

IovSupport og IovSupportReasons er tallkode og beskrivelser om status for den fysiske nettverkskortet. Jeg vil ta opp dette mer i avsnittet om feilsøking.

Aktivere gjest OS

OK nå har vi bryteren opprettet, er det det? Og det riktige svaret ville være ennå ikke. Vi har nå for å muliggjøre gjesteoperativsystemet. Så med det i tankene vi åpner opp innstillingene for gjesten og under sub-node for nettverkskortet du vil se maskinvareakselerasjon. Du gjettet det … det er der vi vil gi SR-IOV for gjesten:


Figur 6: Et skjermbilde som viser hvordan du aktiverer SR-IOV for gjesten
Merk: Å plassere en hake i "Enable SR-IOV" boksen setter IovWeight innstillingen til noen tall som er større enn 0.

Og nå la oss ta en titt på Powershell for å se hvordan vi kan sette dette i Powershell.

Så med kommandoen Set-VMNetworkAdapter vi kan sette denne innstillingen:


Figur 7:. Et skjermbilde som viser Set-VMNetworkAdapter cmdlet

Her du kan se IovWeight satt til 50. Dette bør forklares noen, men konseptet her er veldig enkel. Så du kan bli kjent med VMQWeight i Windows Server 2008 R2, og godt IovWeight funksjonaliteten fungerer på samme måte i Windows Server 2012. Denne innstillingen uttrykker ønske om en maskinvareavlastning, men det er ikke en garanti. Så noen tall som er større enn 0 slår på denne innstillingen … så kort sagt 1-100 er på, og 0 er av

Merk: Ytterligere trinnene på hvordan å implementere nettverksredundans når du bruker SR-IOV sammen med veiledning fra. Keith Hill på hvordan du feilsøker SR-IOV kan finnes i min eBok Optimalisering og feilsøking Hyper-V Networking fra Microsoft Press.

Konklusjon

Mer informasjon om hvordan du feilsøker nettverk i Hyper-V miljøer kan bli funnet i min eBok Optimalisering og feilsøking Hyper-V nettverk, som omfatter innhold bidratt fra en rekke ulike eksperter på Windows Server-teamet hos Microsoft.