Tämän viestin on alun perin kirjoittanut Abhijit Khande &; Vineeth V Acharya DELL Windows Engineering Teamista.
Kommentit ovat tervetulleita! Jos haluat ehdottaa aihetta tai esittää muita kommentteja, ota yhteyttä WinServerBlogs@dell.com.
Microsoft® Windows Server® 2012 Beta -käyttöjärjestelmässä Microsoft on ottanut käyttöön tuen useille verkkotilan ominaisuuksille. Yksi tällainen merkittävä ja mielenkiintoinen piirre on
Yhden juuren I/O-virtualisointi (SR-IOV), jonka avulla virtuaalikoneet voivat jakaa yhden PCI-e-laitteen. Tämä viesti tarjoaa peruskatsauksen SR-IOV: stä Windows Server 2012 Betassa ja siitä, miten se vähentää merkittävästi suorittimen käyttöä virtualisoidussa ympäristössä verkon I/O: n aikana.
SR-IOV-liitäntä on PCI Express (PCIe) -spesifikaation laajennus. SR-IOV:n avulla yksittäinen PCIe-laite, kuten verkkosovitin, voi tarjota useita kevyitä laitepintoja PCI-väylään ja erillisen pääsyn resursseihinsa eri instanssien välillä. Se saavutetaan käyttämällä useita virtuaalitoimintoja (VF) (tavallisen) fyysisen toiminnon (PF) lisäksi. Koska PCIe-laite on laitteistoriippuvainen, sekä PCIe-laitteen että alustan on tuettava tätä ominaisuutta.
Perinteisesti virtuaalikoneelle tarkoitettu paketti vastaanotetaan isäntäkäyttöjärjestelmässä olevalla fyysisellä verkkosovittimella (fyysisen toiminnon avulla). Tätä pakettia käsittelee NDIS (Network Driver Interface Specification for NICs) -ohjainmoduuli. Paketti toimitetaan sitten Hyper-V-kytkimelle, joka käsittelee paketin (kuten reitityksen, VLAN-suodatuksen) ja välittää paketin määrättyyn virtuaalikoneeseen VMBusin kautta, kuten kuvassa 1 esitetään. Käänteistä polkua noudatetaan, kun virtuaalikoneen on lähetettävä paketti.
SR-IOV:n avulla virtuaalikone voi käyttää virtuaalitoimintoa (VF) pakettien lähettämiseen ja vastaanottamiseen suoraan fyysiseen verkkosovittimeen ohittaen perinteisen polun kokonaan, kuten kuvassa 1 esitetään. Tämä paitsi tehostaa verkon I/O-toimintoja myös vähentää isäntäkoneen suorittimen kuormitusta.
Kuva 1: Tietopolku SR-IOV:n kanssa ja ilman sitä
Reaaliaikainen siirto > SR-IOV
Windows Server 2012 Beta -versiossa reaaliaikainen siirto voidaan suorittaa virtuaalikoneen SR-IOV:n avulla. Jos lähde- ja kohdejärjestelmät tukevat SR-IOV:tä ja kohteella on vapaa VF, virtuaalikone käyttää virtuaalitoimintoa. Jos ei, virtuaalikone palaa perinteiseen polkuun (VM-Bus).
Jokainen SR-IOV-yhteensopiva verkkosovitin paljastaa kiinteän määrän virtuaalitoimintoja, jotka voidaan suorittaa PowerShell-komennolla "Get-NetAdapterSriov".
Suorituskykyanalyysi
Teimme laboratoriossamme muutamia testejä verrataksemme suorituskykyä SR-IOV:n kanssa ja ilman sitä. Testiympäristö koostuu yhdestä testipalvelimesta (jossa testit suoritetaan) ja yhdestä tiedostopalvelimesta. Testipalvelin on Dell PowerEdge™ R710 II, jossa on Intel® X520 10 Gt Ethernet -sovitin ja Windows Server 2012 Beta OS. Tiedostopalvelin isännöi useita jaettuja SMB-resursseja, ja se on yhteydessä testipalvelimeen 10 Gt:n verkon kautta Dell PowerConnect™ 8024 -kytkimen kautta.
Tallensimme suorituskykytiedot verkkotiedonsiirtoon osallistuvien eri ohjainmoduulien ajoittamien DPC: iden (Deferred Procedure Call) käyttämänä prosessorina. Nämä tiedot tallennettiin sekä vieras- että isäntäkäyttöjärjestelmässä seuraavissa tilanteissa kuvatulla tavalla. Testipalvelimessa on 4 identtistä virtuaalikonetta, joissa Windows Server 2012 Beta on vieraskäyttöjärjestelmä. Nämä neljä virtuaalikonetta yhdistetään 10 gigatavun verkkoon virtuaalikytkimellä. Tämä testikokoonpano on esitetty kuvassa 2.
Kuva 2: Testin kokoonpano
Ennen suorituskykytietojen esittelyä on tärkeää esitellä erittäin kriittinen parametri, jota käytetään tässä testauksessa. Vuonna
Microsoft Windows Käyttöjärjestelmässä on järjestelmämekanismi nimeltä Deferred Procedure Call (DPC), joka mahdollistaa korkean prioriteetin tehtävät (esim.
Keskeytyskäsittelijä) lykätäkseen pakollisia mutta vähemmän tärkeitä tehtäviä myöhempää suorittamista varten. Tämän ansiosta laiteohjaimet ja muut matalan tason tapahtumien kuluttajat voivat suorittaa käsittelynsä korkean prioriteetin osan nopeasti ja ajoittaa ei-kriittisen lisäkäsittelyn suoritettavaksi pienemmällä prioriteetilla.
Skenaario 1 – suorituskyky johtaa virtuaalikoneeseen (vieraskäyttöjärjestelmä):
Käytimme tässä skenaariossa neljää virtuaalikonetta (VM 1–VM 4). SR-IOV otettiin käyttöön VM 1:ssä ja VM 2:ssa (valitsemalla "Enable SR-IOV" -vaihtoehto VM-asetuksissa) ja SR-IOV käytöstä VM 3:ssa ja VM 4:ssä (poistamalla valinta samasta vaihtoehdosta). Siksi VM 1 ja VM 2 käyttävät virtuaalitoimintoa (jonka Intel-sovitin paljastaa), kun taas VM 3 ja VM 4 käyttävät synteettistä polkua (VMBus) mihin tahansa verkkoviestintään, kuten kuvassa 2 esitetään.
Aloimme kopioida tietoja (kooltaan 20 Gt) yhdestä jaetusta SMB-resurssista virtuaalikoneisiin ja tallensimme järjestelmän suorittimen käyttölokit vieraskäyttöjärjestelmään.
Kuva 3: DPC-suorittimen käyttö virtuaalikoneissa
Kuvassa 3 SR-IOV viittaa keskimääräiseen DPC-suorittimen käyttöön VM-1:ssä ja VM-2:ssa ja ei-SR-IOV keskimääräiseen DPC-suorittimen käyttöön VM-3:ssa ja VM-4:ssä. Jos tarkastelemme kaaviota, näemme, että suorittimen käytössä ei ole paljon eroa näiden kahden tapauksen välillä, mutta emme ole vielä ottaneet huomioon suorittimen käyttöä isäntäkoneessa.
Skenaario 2 – suorituskykytulos isäntäkoneessa (isäntäkäyttöjärjestelmä):
Käytimme tässä skenaariossa yhtä virtuaalikonetta. Aloimme kopioida tietoja (kooltaan 20 Gt) jaetusta SMB-resurssista virtuaalikoneeseen ja tallensimme DPC-suorittimen käytön kahdelle moduulille, NDIS: lle ja VMBUS: lle, joita käytetään verkon I/O: ssa.
Kuva 4: DPC-suorittimen käyttö isäntäkoneessa
Tulokset on esitetty kuvassa 4. Kuten odotettiin, suorittimen käytössä on suuri ero näiden kahden tapauksen välillä (SR-IOV ja ei-SR-IOV). Suorittimen käyttö on luokkaa 102 SR-IOV: n tapauksessa ja luokkaa 103-104 ei-SR-IOV: n tapauksessa. Tämä johtuu pääasiassa siitä, että SR-IOV: n tapauksessa virtuaalikone kommunikoi suoraan fyysisen verkkokortin kanssa virtuaalitoiminnon kautta. Näin ollen isännän suoritinsyklejä ei käytetä verkkopakettien käsittelyyn. Jos kyseessä on muu kuin SR-IOV (kuten kuvassa 1) vieraskäyttöjärjestelmä kommunikoi isäntäkäyttöjärjestelmän kanssa VM-väylän kautta, joka puolestaan käsittelee paketit ja lähettää ne fyysisen verkkokortin kautta. Siksi moduuleja, kuten VM Bus ja NDIS, käytetään laajasti.
Suorittimen kokonaiskäyttöä laskettaessa havaitaan, että suorittimen käyttö verkon I/O:n aikana on paljon pienempi SR-IOV:tä käytettäessä. Kun SR-IOV on käytössä, Windows Server 2012 Beta auttaa asiakkaita vähentämään suorittimen kuormitusta verkon I/O-toimintojen aikana ja parantamaan siten järjestelmän yleistä suorituskykyä.
SR-IOV:n määrittäminen PowerShellin avulla
Seuraavien PowerShell-komentojen avulla voit luoda uuden virtuaalikytkimen, jossa SR-IOV on käytössä, ja liittää virtuaalikytkimen olemassa olevan virtuaalikoneen virtuaaliverkkosovittimeen.
HUOMAUTUS: Ennen seuraavien komentojen suorittamista seuraavat asetukset on otettava käyttöön BIOSissa
- Virtualisointitekniikka
- SR-IOV Global Ota käyttöön
(Olettaen, että yksi verkkosovitin (Intel X520) on kytketty)
$NetAdap = Get-NetAdapter | Missä-objekti { $_. Status -eq "Up"}(-EnableIOV-valitsinta käytetään SR-IOV:n käyttöönottoon virtuaalikytkimessä)
New-VMSwitch -Name "SRIOV Switch" -NetAdapterName $NetAdap.Name -AllowManagementOS $True -Notes "SRIOV switch on X520" -EnableIov $True
$VMSw = Get-VMSwitch
Uuden verkkosovittimen lisääminen VM-1:een ja sen kytkeminen virtuaalikytkimeen.
Add-VMNetworkAdapter -SwitchName $VMSw.Name -VMName VM-1 -Name "SRIOV Adapter"
HUOMAUTUS:Jotta tämä komento toimisi, virtuaalikone on poistettava käytöstä)
Voit myös käyttää jo olemassa olevaa VM-verkkosovitinta seuraavilla komennoilla)
$VMNet = Get-VMNetworkAdapter -VMName VM-1
Connect-VMNetworkAdapter -VMName VM-1 -SwitchName $VMSw.Name -Name $VMNet.Name
Jokaisella VM-verkkosovittimella on kaksi ominaisuutta, IovWeight ja VmqWeight, jotka vastaavat SR-IOV: tä ja VMQ: ta. Näiden painojen säätäminen ottaa ominaisuudet käyttöön tai poistaa ne käytöstä.