Tento příspěvek původně napsali Abhijit Khande a Vineeth V Acharya z týmu DELL Windows Engineering Team.
Komentáře jsou vítány! Chcete-li navrhnout téma nebo vznést jiné komentáře, kontaktujte WinServerBlogs@dell.com.
S operačním systémem Microsoft® Windows Server® 2012 Beta zavedla společnost Microsoft podporu řady funkcí v síťovém prostoru. Jednou z takových významných a zajímavých vlastností je
Virtualizace s jedním kořenem I/O (SR-IOV), který umožňuje virtuálním počítačům sdílet jedno zařízení PCI-e. Tento příspěvek poskytuje základní přehled funkce SR-IOV v systému Windows Server 2012 Beta a jak drasticky snižuje využití procesoru ve virtualizovaném prostředí během síťových vstupně-výstupních operací.
Rozhraní SR-IOV představuje rozšíření specifikací PCI Express (PCIe). Technologie SR-IOV umožňuje jednomu zařízení PCIe, například síťovému adaptéru, poskytnout více odlehčených hardwarových povrchů na sběrnici PCI a oddělit přístup k jejím zdrojům mezi různými instancemi. Toho je dosaženo použitím více virtuálních funkcí (VF) kromě (obvyklé) fyzické funkce (PF). Vzhledem k tomu, že je závislá na hardwaru, musí tuto funkci podporovat zařízení PCIe i platforma.
Paket určený pro virtuální počítač je tradičně přijímán fyzickým síťovým adaptérem (pomocí fyzické funkce), který se nachází v hostitelském operačním systému. Tento paket je zpracováván modulem ovladače NDIS (Network Driver Interface Specification for NICs). Paket je pak poskytnut přepínači Hyper-V, který paket zpracuje (například směrování, filtrování VLAN) a předá paket do cílového virtuálního počítače prostřednictvím VMBus, jak je znázorněno na obrázku 1. Reverzní cesta bude následovat, když virtuální počítač musí odeslat paket.
S nástrojem SR-IOV může virtuální počítač pomocí virtuální funkce (VF) odesílat a přijímat pakety přímo do fyzického síťového adaptéru a zcela obejít tradiční cestu, jak je znázorněno na obrázku 1. To nejen zvyšuje síťové vstupně-výstupní operace, ale také snižuje režii procesoru hostitelského počítače.
Obrázek 1: Cesta k datům s funkcí SR-IOV a bez ní
Migrace za provozu a SR-IOV
V systému Windows Server 2012 Beta je možné migraci za provozu provádět pomocí funkce SR-IOV používané virtuálním počítačem. Pokud zdrojový a cílový systém podporují SR-IOV a cíl má k dispozici VF, virtuální počítač použije virtuální funkci. Pokud ne, virtuální počítač se vrátí k tradiční cestě (VM-Bus).
Každý síťový adaptér s podporou funkce SR-IOV zpřístupňuje pevný počet virtuálních funkcí, které lze získat spuštěním příkazu PowerShell "Get-NetAdapterSriov".
Analýza výkonu
V naší laboratoři jsme provedli několik testů, abychom porovnali výkon s technologií SR-IOV a bez jejího použití. Testovací prostředí se skládá z jednoho testovacího serveru (na kterém se testy provádějí) a jednoho souborového serveru. Testovacím serverem je Dell PowerEdge™ R710 II s 10GB ethernetovým adaptérem Intel® X520 a operačním systémem Windows Server 2012 Beta. Souborový server je hostitelem několika sdílených složek SMB a je připojen k testovacímu serveru pomocí 10GB sítě prostřednictvím přepínače Dell PowerConnect™ 8024.
Údaje o výkonu jsme zaznamenali z hlediska procesoru používaného DPC (Deferred Procedure Call) naplánovaným různými moduly ovladačů, které se účastní síťového přenosu dat. Tato data byla zachycena v hostovaném i hostitelském operačním systému, jak je popsáno v následujících scénářích. Testovací server má 4 identické virtuální počítače se systémem Windows Server 2012 Beta jako hostovaným operačním systémem. 4 virtuální počítače jsou připojeny k 10GB síti prostřednictvím virtuálního přepínače. Tato testovací konfigurace je znázorněna na obrázku 2.
Obrázek 2: Konfigurace
testu Než si představíme údaje o výkonu, je důležité představit velmi důležitý parametr používaný pro toto testování. V dialogovém okně
Microsoft Windows Existuje systémový mechanismus nazvaný Deferred Procedure Call (DPC), který umožňuje úlohy s vysokou prioritou (např.
Obslužná rutina přerušení), chcete-li odložit požadované, ale úlohy s nižší prioritou na pozdější spuštění. To umožňuje ovladačům zařízení a dalším příjemcům událostí nízké úrovně rychle provádět část zpracování s vysokou prioritou a plánovat další zpracování s nižší prioritou.
1. scénář – výsledky výkonu ve virtuálním počítači (hostovaný operační systém):
Pro tento scénář jsme použili čtyři virtuální počítače (VM 1 až VM 4). Povolili jsme funkci SR-IOV na virtuálních počítačích 1 a 2 (zaškrtnutím možnosti "Enable SR-IOV" v nastavení virtuálního počítače) a zakázali jsme funkci SR-IOV na virtuálních počítačích 3 a VM 4 (zrušením zaškrtnutí stejné možnosti). Proto virtuální počítače 1 a VM 2 budou používat virtuální funkci (vystavenou adaptérem Intel), zatímco virtuální počítače 3 a VM 4 budou používat syntetickou cestu (VMBus) pro jakoukoli síťovou komunikaci, jak je znázorněno na obrázku 2.
Začali jsme kopírovat data (o velikosti 20 GB) z jedné sdílené složky SMB do virtuálních počítačů a zachytili jsme protokoly využití systémového procesoru v hostovaném operačním systému.
Obrázek 3: Využití DPC CPU ve virtuálním počítači
Na obrázku 3 označuje SR-IOV průměrné využití DPC CPU ve VM-1 a VM-2 a Non-SR-IOV odkazuje na průměrné využití DPC CPU ve VM-3 a VM-4. Pokud se podíváme na graf, vidíme, že mezi těmito dvěma případy není velký rozdíl ve využití procesoru, ale ještě jsme nezohlednili využití procesoru v hostitelském počítači.
2. scénář - výsledek výkonu v hostitelském počítači (hostitelský operační systém):
Pro tento scénář jsme použili jeden virtuální počítač. Začali jsme kopírovat data (o velikosti 20 GB) ze sdílené složky SMB do virtuálního počítače a zaznamenali jsme využití DPC CPU 2 modulů, NDIS a VMBUS, které se používají v síťových I/O.
Obrázek 4: Využití DPC CPU v hostitelském stroji
Výsledky jsou uvedeny na obrázku 4. Jak se dalo očekávat, využití procesoru se podle očekávání výrazně liší mezi těmito dvěma případy (SR-IOV a Non-SR-IOV). Využití procesoru je řádově 102 v případě SR-IOV a 103–104 v případě non-SR-IOV. Je to hlavně proto, že v případě SR-IOV virtuální počítač přímo komunikuje s fyzickou síťovou kartou prostřednictvím virtuální funkce. Cykly procesoru hostitele se proto nepoužívají ke zpracování žádných síťových paketů. V případě jiného typu než SR-IOV (jak je znázorněno na obrázku 1) komunikuje hostovaný operační systém s hostitelským operačním systémem prostřednictvím sběrnice virtuálního počítače, která následně zpracovává pakety a odesílá je prostřednictvím fyzické síťové karty. Proto se hojně používají moduly jako VM Bus a NDIS.
Při výpočtu celkového využití procesoru zjistíme, že při použití SR-IOV je využití procesoru během síťových I/O mnohem menší. Systém Windows Server 2012 Beta s povolenou funkcí SR-IOV proto pomůže zákazníkům snížit režii procesoru během síťových vstupně-výstupních operací, a tím zlepšit celkový výkon systému.
Konfigurace rozhraní SR-IOV pomocí prostředí PowerShell
Pomocí následujících příkazů PowerShell můžete vytvořit nový virtuální přepínač s povolenou funkcí SR-IOV a připojit virtuální přepínač k virtuálnímu síťovému adaptéru existujícího virtuálního počítače.
POZNÁMKA: Před spuštěním následujících příkazů je třeba v systému BIOS povolit následující možnosti
- Technologie virtualizace
- Povolit SR-IOV Global
(Za předpokladu, že je připojen jeden síťový adaptér (Intel X520))
$NetAdap = Get-NetAdapter | where-object { $_. Status -eq "Up"}(Přepínač -EnableIov se používá k povolení funkce SR-IOV ve virtuálním přepínači)
New-VMSwitch -Name "SRIOV Switch" -NetAdapterName $NetAdap.Name -AllowManagementOS $True -Notes "SRIOV Switch on X520" -EnableIov $True
$VMSw = Get-VMSwitch
Přidání nového síťového adaptéru k VM-1 a jeho připojení k virtuálnímu přepínači.
Add-VMNetworkAdapter -SwitchName $VMSw.Name -VMName VM-1 -Name "SRIOV Adapter"
POZNÁMKA:Aby tento příkaz fungoval, musí být virtuální počítač vypnutý
)Pomocí
následujících příkazů můžete také použít již existující síťový adaptér virtuálního počítače)
$VMNet = Get-VMNetworkAdapter -VMName VM-1
Connect-VMNetworkAdapter -VMName VM-1 -SwitchName $VMSw.Name -Name $VMNet.Name
Každý síťový adaptér virtuálního počítače má dvě vlastnosti, IovWeight a VmqWeight, které odpovídají SR-IOV a VMQ. Nastavením těchto vah tyto funkce povolíte nebo zakážete.