Výchozí stav Virtualizace je na Vysoké škole polytechnické Jihlava intenzivně využívána při výuce předmětu Počítačové sítě I. (dále jen PS1), Počítačové sítě II. (dále jen PS2) a Operační systémy. Předměty PS1 a PS2 vyučuji ve třetím a čtvrtém semestru studia (dle doporučeného studijního plánu), pro několik skupin studentů v denním i distančním studiu a české i anglické verzi předmětu. V předchozím modelu výuky tak docházelo k opakované reinstalaci služeb na počítačích v laboratoři vyhrazených pro tuto výuku v každé z vyučovaných skupin. Často bylo nutné počítače po skončení výuky v jedné skupině připravit na další výuku, pokud studenti nedodrželi pokyny o odinstalování konkrétní síťové služby. V loňském článku z této konference [2] jsem se věnoval tématu nasazení virtualizace ve výuce tohoto předmětu. Obrovskou výhodou tohoto přístupu je možnost vytvoření virtuálního počítače pro každého ze studentů. Tento počítač pak provází studenta celý semestr a student tento počítač má při dalším cvičení ve stavu, v jakém ho opustil na konci cvičení minulého. Cíl a metody Pojďme si připomenout, která z témat výuky počítačových sítí lze virtualizovat. Pro předmět PS1 se nabízí tato témata: konfigurace DNS BIND konfigurace SMTP Postfix konfigurace IMAP Dovecot konfigurace HTTP serveru Apache konfigurace FTP serveru ProFTPd Pro předmět PS2 lze virtualizovaně probírat to tato témata: instalace a konfigurace Active directory konfigurace DNS přidání PC do domény Instalace a konfigurace IIS Konfigurace firewallu Samozřejmě pokud chceme souběžně provozovat 20+1 virtuální počítač pro skupinu studentů a učitele, je nezbytný dostatečně výkonný hardware. Díky projektu FRVŠ č. 2472 získala Katedra elektrotechniky a informatiky VŠPJ tři výkonné servery IBM x3650 M3 v následující konfiguraci: 4-jádrový procesor Xeon E640 o frekvenci 2,66 GHz, 64 GB RAM (1333MHz), 2x SAS Disk 73 GB, Detailní informace viz [2]. Součástí dodávky bylo i diskové pole se 7 ks 600 GB SAS HDD (10000 RPM), které je klíčovou komponentou systému pro to, aby bylo možné souběžně spouštět větší množství virtuálních počítačů. Tématu provozu virtuálních počítačů s linuxovým operačním systémem jsem se věnoval v [1], pojďme se zaměřit na virtualizaci aktuální serverové platformy Microsoftu Windows 2012 serveru. Pro výuku předmětu PS2 má vzorový virtuální počítač následující konfiguraci: 1 logický procesor operační paměť 2048 MB 20 GB virtuální disk v podobě souboru na diskovém poli hypervizoru síťová karta v bridge módu s rozhraním hostitele neveřejná fixní IPv4 adresa operační systém Windows 2012 standard
Při instalaci virtuálního počítače (režim plné virtualizace) nám hypervizor nabídne nepříliš výkonnou síťovou kartu Hypervisor default s možností vybírat mezi dalšími pěti typy: Obr. 1 možnosti ovladače síť. karty Podobně v případě sběrnice disku je opět jako výchozí nepříliš výkonná varianta IDE : Obr. 2 možnosti ovladače diskové sběrnice
Pojďme se v další kapitole podívat na postup, který umožní díky paravirtualizaci značně zvýšit výkon síťové karty a diskového subsystému virtuálního počítače. Řešení Jak je patrné na předchozích obrázcích, ovladač diskové sběrnice a síťové karty lze změnit na položku Virtio. To však znamená přejít od plné virtualizace operačního systému k paravirtualizaci, tedy modifikaci vizualizovaného operačního systému tak, aby mohl využívat služeb hypervizoru a my získali na oplátku výkonnější prostředí pro provoz našich virtuálních počítačů. Jakým způsobem je emulován hardware u plné virtualizace a paravirtualizace ukazuje následující obrázek: Obr. 3 emulace hardwaru v plné virtualizaci a paravirtualizaci [3] Obrázek vlevo ukazuje plnou virtualizaci virtualizovaný operační systém bězí nad hypervizorem (hostitelským systémem), nevyžaduje žádné úpravy, veškerý virtuální hardware je emulován hypervizorem, virtuální systém neví o hypervizoru. Pravý obrázek ukazuje paravirtualizaci: modifikovaný virtuální systém komunikuje s hypervizorem pomocí speciálních ovladačů a dosahuje vyššího výkonu vstup/výstupních operací. Nevýhodou je ale nutnost modifikace virtuálního počítače. A proč přináší paravirtualizované prostředí virtuálních počítačů takové zlepšení? Nové procesory obsahují speciální instrukce (Intel VT-x, AMD AMD-V) pro vstup/výstupní operace, které právě urychlují tuto komunikaci. Naopak v plné virtualizaci musí být tyto instrukce zachyceny a emulovány hypervizorem, tudíž se na operacích projeví i jeho režie. Paravirtualizované ovladače pro Windows 2012 server přináší projekt Virtio. Tento projekt založil Rusty Russell (australský programátor, vývojář linuxové jádra i autor linuxových firewallů ipchains a iptables), aby podpořil svůj projekt virtualizace s názvem lguest. Nejdříve zkontrolujeme, zda naše verze hypervizoru je podporována: http://www.linux-kvm.org/page/guest_support_status Ovladače pro platformu Windows jsou dostupné zde: http://www.linux-kvm.org/page/windowsguestdrivers/download_drivers Aktuální verze je z 20.11.2013 a je ke stažení zde: http://alt.fedoraproject.org/pub/alt/virtio-win/latest/images/virtio-win-0.1-74.iso Postup instalace paravirtualizovaných ovladačů Virtio - vypneme virtuální počítač s Windows - instalační ISO obraz připojíme jako virtuální optickou mechaniku - po zapnutí virtuálního stroje nainstaluje ovladače z virtuální optické mechaniky - vypneme virtuální stroj
- k virtuálnímu počítači připojíme nový diskový oddíl (velikost libovolná, stačí pár MB) v podobě souboru na hypervizoru, ale již s použitím disk bus Virtio ovladače (viz. obrázek 2) - po spuštění virtuálního stroje dojde k zavedení ovladače disku Virtio - virtuální stroj nyní znovu vypneme a u systémového disku virtuálního počítače změníme disk bus na Virtio, dočasný diskový oddíl už lze smazat, stejně tak můžeme u síť. karty virtuálního počítače změnit typ ovladače na Virtio (viz. obr.1) - po spuštění virtuálního počítače nastavíme parametry IP protokolu pro nově nadetekovanou síťovou kartu Srovnání výkonu plně virtualizovaného a paravirtualizovaného prostředí Windows Pojďme se podívat, jaký nárůst výkonu přináší paravirtualizace v podobě API Virtio oproti plné virtualizaci. Obr. 4 I/O testy KVM bez použití cache, zdroj [4] Srovnání (viz. [4]) bylo provedeno na předchozí serverové platformě Microsoftu na Windows 2008 R2 serveru. První, modrá křivka grafu ukazuje výkon diskových operací, pokud je Windows server provozován nevirtualizovaně, přímo na hardwaru. Naopak zelená křivka udává výkon plně vizualizovaného Windows serveru bez použití Virtio ovladačů za pomocí KVM hypervizoru. Prostřední křivky oranžová a tmavě zelená zobrazuje výkon diskových operací paravirtuálního stroje s ovladači Virtio (s použitím a bez použití formátování disků pomocí LVM). Literatura [1] PŘIBYL, A. Využití virtualizace při výuce předmětu Počítačové sítě I. IN INFORMATIKA XXV /2012. MOTYČKA, ARNOŠT. 1. V. BRNO:MZLU, 2012. S. 91-92. (ISBN 978-80-7375-628-4.) [2] PŘIBYL, A. Využití KVM virtualizace v předmětu počítačové sítě. IN INFORMATIKA
XXVI/2013. MOTYČKA, ARNOŠT. 1. V. BRNO:MZLU, 2013. [3] JONES, M. Tim. Virtio: An I/O virtualization framework for Linux. IBM. IBM developerworks [online]. 2010 [cit. 2014-01-20]. Dostupné z: http://www.ibm.com/developerworks/library/lvirtio/ [4] Benchmarking Windows Guests on KVM:I/O performance. JRS SYSTEMS. JRS Systems: the blog [online]. 2013 [cit. 2014-01-20]. Dostupné z: http://jrs-s.net/2013/05/17/kvm-io-benchmarking/