Pokročilé architektury počítačů Přednáška 4 Stručný úvod do problematiky virtualizace Martin Milata
Obsah Virtualizace stručný úvod Jak funguje virtualizace Typy virtualizace Virtuální zařízení CPU RAM HDD NIC a virtuální počítačová síť Ostatní I/O Výkonnostní dopad virtualizace Virtuální procesor, Práce s pamětí, Minimalizace dopadů Měření výkonu a problematika srovnávání VirtualBox
Virtuální počítače a virtualizace Vytvoření virtuálního (ne fyzického) počítače uvnitř fyzického budeme nazývat virtualizace Jak bude uvedeno dále virtualizace v celé své šíři nezahrnuje pouze tvorbu celého počítače, ale také například virtuální prostředí umožňující běh aplikací (Java) Zrod virtualizace se datuje do 60. let 20. století a to v laboratořích společnosti IBM 1966 IBM procesory CP-40 a CP-67 Na poli x86 architektury se objevuje v roce 1999 díky společnosti VMware Dnes zaznamenává masivní rozšíření jak na straně dostupných produktů a řešení tak na straně jejího nasazení (Xen, KVM, VirtualPC a mnoho dalších) Cílem virtualizace počítačů (virtualizačního SW) je umožnit více operačním systémům využívat stejné HW zdroje (celé PC nebo CPU, RAM, NIC, atd.)
Jak virtualizace funguje? Mezi fyzický HW a operační systémy virtuálních počítačů je vložena virtualizační vrstva (hypervisor nebo Virtual Machine Monitor - VMM), která zprostředkovává přístup operačních systémů k fyzickému HW nebo obecněji provádění privilegovaných instrukcí Vrstva hypervisoru může být nadřazená všem na PC běžícím OS (VMware ESX, Xen) Hypervisor jako součást hostujícího OS (VirtualBox, VMware Server) Základní funkce VMM Přidělování CPU času VM, vykonávání privilegovaných instrukcí, emulace virtuálních a přístup k fyzickým I/O zařízením,... Řídící funkce VMM Vytvoření, spuštění, zastavení, zrušení VM
Jak virtualizace funguje?
Jak virtualizace funguje?
Typy virtualizace Virtualizaci a s ní spojené virtuální stroje (Virtual Machines VM) obvykle dělíme do tříd podle způsobu poskytování HW prostředků Mapování fyzických prostředků VM Emulace prostředků pro VM (vytváření virtuálního HW) Hardwarové Emulátory duplikuje nebo emuluje HW prostředky s cílem poskytnout přístup k nim OS v VM emulace dnes zastaralého či již neexistujícího HW, sdílení drahých HW zdrojů, umožnění běhu programu na různých počítačových architekturách emulací HW prostředků Emulátor i386 architektury pro PowerPC, Emulátor MIPS procesoru na x86 architekturách Aplikační virtuální stroje (Application Virtual Machine - AVM) cílem je izolace běžící aplikace od hardware počítače a tím zvýšení její přenositelnosti mezi různými platformami pro různé platformy je potřeba implementovat pouze AVM Java, Microsoft.NET
Typy virtualizace Mainframové virtuální stroje (Mainframe Virtual Machine MVM) Softwarová emulace uživatelského počítače. Uživateli dává iluzi plnohodnotného počítače se vlastním OS Obvykle nákladná mainframe řešení, efektivní sdílení výpočetních prostředků, rozsáhlé možnosti bezpečnostních politik IBM mainframe System/370, System/390 Virtuální stroje s vlastním OS (Operating systém Virtual Machine OSVM) Vytváří prostředí virtuálního počítače, ve kterém běží samostatný OS Hostitelský počítač provozuje na VM nezávislý OS, který mapuje nebo emuluje HW prostředky potřebné pro běh OS v rámci VM VMware řešení, KVM, Xen, Microsoft Virtual PC, Virtual Server, VirtualBox a další Dále budeme předpokládat virtualizaci tohoto typu Paralelní virtuální stroje (Parallel Virtual Machine PVM) Obtížně odlišitelná od paralelního počítaní Vytváří distribuované výpočetní prostředí běžící na mnoha počítačích s iluzí přítomnosti jen jednoho výpočetního uzlu Obvykle distribuována přes stovky až tisíce počítačů. Seti@Home projekt, Projekt RC5
Virtualizace a komponenty počítače CPU Virtualizační vrstva, která je přítomna mezi fyzickým a virtuálním hardwarem, řídí přístup virtuálního CPU k fyzickému. OSVM předpokládají shodnou ISA virtuálních procesorů s fyzickým procesorem Mnohem vyšší výkon v porovnání s plnou emulací odlišné ISA Neprivilegované instrukce přímo vykonávány na fyzickém CPU Virtual Machine Monitor (VMM) zpracovává zachycené privilegované instrukce - virtuální procesor Virtuální CPU disponuje vlastními registry, buffery, kontrolními strukturami (obsaženými v architektuře fyzického CPU) V závislosti na počtu fyzických procesorů může VM disponovat více než jedním virtuálním, které jsou na fyzické při běhu VM mapovány (staticky nebo dynamicky) Výpočetní výkon virtuálního CPU může být s pomocí VMM nastaven na odlišnou hodnotu oproti fyzickému CPU (obvykle omezení výkonu)
Privilegované a neprivilegované instrukce Problematika privilegovaných a neprivilegovaných instrukcí těsně souvisí s chráněným režimem procesoru při realizaci přístupů do paměti Procesory od 80386 disponují 4 stupňovou ochranou paměti (0 privilegovaný režim a 1,2,3 neprivilegované) Neprivilegovaný proces může přistupovat do privilegovanějšího režimu pouze přes známé brány (adresy podprogramu, které může proces volat). Např. přístup na úroveň 0 vyvolá přerušení s nutnou intervencí jádra OS Vybrané instrukce, které jsou označeny jako privilegované, mohou být prováděny jen procesy, s příslušným oprávněním Privilegované instrukce pro úroveň 0 (kernel space) zákaz přerušení, nastavení mapování paměti (MM), práce s I/O zařízeními
Virtualizace a komponenty počítače RAM VM podobně jako k CPU i k RAM přistupuje pomoci VMM resp. virtualizační vrstvy mezi fyzickým prostředkem a pamětí VM Virtuální paměť přidělená VM je mapována na fyzickou paměť Přidělovaná virtuální paměť může být stránkovaná: možnost alokovat pro virtuální počítače více paměti než je fyzické, významné snížení výkonu VM nestránkovaná: paměť je mapována přímo do fyzické paměti, součet přidělené paměti virtuálním strojům musí být menší než jaká je velikost fyzické paměti Správa virtuální paměti (Memory Management MM) je pro VM zcela transparentní Paměť VM je obvykle opětovně stránkována OS virtuálního počítače (další úroveň stránkování) Limity velikosti RAM paměti Hostitelský operační systém 32bitový versus 64bitový 32bitový systém a Physical Address Extensions (PAE) překročení limitu 4GB RAM VMM umožňuje nastavení resp. omezení velikosti paměti přidělené VM
Virtualizace a komponenty počítače Pevný disk Stejně jako u fyzického PC i u VM plní funkci perzistentního média Z VM je přistup k virtuálnímu pevnému disku (Virtual Hard Disk - VHD) realizován prostřednictvím VMM, který vytváří iluzi reálného disku Simulace Small Computer Sytem Interface (SCSI) nebo Integrated Drive Electronics (IDE) s připojeným diskovým zařízením Virtuální disk může být reprezentován Souborem nebo kolekcí souborů v souborovém systému hostitelského OS Má větší výkonnostní dopad než přímo mapovaný diskový oddíl Přináší výhodu snadné mobility Přímo mapovaným fyzickým oddílem Lokální oddíl na fyzickém disku hostitelského počítače Vzdáleně přístupný oddíl poskytnutý např. pomocí SAN, možná mobilita VM v rámci míst pokrytých SAN, která oddíl poskytuje Velikost disku je stanovena při jeho vytváření, bývá limitována možnostmi VMM Velikostí disku rozumíme jeho maximální velikost, kterou může VM využívat.
Virtualizace a komponenty počítače Typy virtuálních pevných disků Dynamické disky Disk obvykle realizován pomocí souborů v souborovém systému (File systém - FS) hostitelského stroje Při vytváření se stanoví jeho maximální velikost, tak však není ihned alokována. Místo zabírají pouze použité sektory Uložený obraz na fyzickém disku je vlivem postupného zvětšování velikosti značně fragmentován - výkonnostní dopad Možnost alokace většího virtuálního prostoru než jaký nabízí fyzický disk Dopředně alokované disky Obvykle v souborech ve FS hostitele je alokováno místo do maximální velikosti disku hned při jeho vytváření Mnohdy využito k tomuto účelu navrženého FS (VMFS - VMware) Omezení ne však odstranění problémů s fragmentací uloženého obrazu Velikost virtuálního prostoru je omezená velikostí fyzického média Je použitelný v produkčním prostředí pro aplikace s menšími nároky na diskové operace
Virtualizace a komponenty počítače Typy virtuálních pevných disků Fyzické disky mapované do VM Virtuální disk je přímo mapován na fyzický disk nebo diskový oddíl Nejvyšší výkonnost, odpadá problém s fragmentací při reprezentaci obrazu disku Přistup k disku prostřednictvím VMM (virtualizační vrstva vnáší částečné zpomalení) přímý přístup k HW (přístup k dedikovaným HW prostředků obchází VMM, efektivnější a rychlejší), vyžaduje podporu v hardware počítače Disky s možností návratu Po dobu běhu VM nejsou případné změny zapisovány přímo na disk, ale do pomocného souboru Po vypnutí VM je administrátorovi umožněno sloučit pomocný soubor s diskem a tím zapsat změny provedené během provozu. Výkonnostní dopad, využití pro tzv. bezpečný update. Systém je možné v případě neúspěchu vrátit do přesně původního stavu.
Virtualizace a komponenty počítače Typy virtuálních pevných disků Diferenční disky Umožňuje vytvořit hierarchii disků s tím, že Nadřazený disk (rodičovský) může mít více podřízených (potomků) Každý potomek má k dispozici rodičovský obraz, ten se tak neduplikuje, ukládají se pouze prováděné změny (obvyklá je realizace změn na úrovni modifikovaných bloků disku) Hierarchie může být dále prohlubována za předpokladu zachování stromové struktury Rodičovský disk nesmí jakkoliv změnit svůj obsah. Často připojen v tzv. read-only režimu Použití přináší možnost rychlého vytváření VM s definovanou konfigurací stanovenou na rodičovském disku. Negativem je však výkonnostní dopad Persistentní a nepersistentní disky Persistentní disk přímo zapisuje prováděné změny Nepersistentní disk změny uchovává jen po dobu běhu VM. Každý start VM znamená návrat k definované konfiguraci Hodí se pro testovací a výukové účely, stále konzistentní stav VM
Virtualizace a komponenty počítače Pevné disky další možnosti Snapshot Přináší možnost uchování konkrétního stavu disku VM s možností jeho snadné obnovy VM může mít v podobě snapshot-ů uchován různý stav pro různé scénáře použití Šetří prostor na fyzickém médiu, v závislosti na implementaci má různý negativní výkonnostní dopad Změna velikosti Výhodou virtuálního disku může být relativně snadné zvětšení kapacity Zvětšuje se pouze disk virtuálního počítače nikoliv souborový systém na něm Řešením může být připojení většího disku a následné vytvoření kopie disk-to-disk Změna velikosti disku může být spojena s přesunem na jiný typ VHD Přesun z disku realizovaného pomocí souborů v FS hostitelského počítače na VHD přímo mapovaný na diskový oddíl
Virtualizace a komponenty počítače Síťová rozhraní Umožnění transparentní síťové komunikace z prostředí VM pomocí virtuálního nebo fyzického rozhraní, případně kombinací obou typů Síťování s přímým mapováním fyzického rozhraní efektivnější přístup k PC sítí; minimalizovány dopady VMM vrstvy; nutná přítomnost podpory v architektuře hostujícího počítače a VMM Síťování s využitím virtuálního síťového rozhraní VM má k dispozici virtuální síťové rozhraní simulované VMM; komunikace vyžaduje účast VMM a tím CPU hostitelského stroje; skýtá větší možnosti různých typů konfigurace virtuální PC sítě
Virtualizace a komponenty počítače Síťová rozhraní Čtyři konfigurace virtuálního síťového adaptéru Host-only Networking VM není připojen k fyzickému rozhraní, případný lokální provoz může být monitorován administrátorem NAT networking VM je k fyzické počítačové sítí připojen přes virtuální NAT box, který realizuje překlad IP adres. Standardní pojetí privátní sítě Bridged Networking VM je pomocí virtuálního přepínače připojen přímo k fyzickému rozhraní, obvyklá podpora VLAN, virtuální síťový adaptér je stále potřeba Hybrid netwrking na straně virtuální infrastruktury kombinuje předchozí přístupy, využití při tvorbě testovacích prostředí
Virtualizace a komponenty počítače Virtuální počítačová síť Virtuální komponenty počítačové sítě Vše je realizováno pomocí software obvykle v VMM vrstvě Průchod dat vyžaduje asistenci procesoru Vnáší zpoždění při předávání rámců, zatěžuje hostitelský systém Síťová karta Simulované zařízení viditelné v VM, obvykle připojeno pomocí virtuálního PCI slotu, z hlediska lokální PC sítě vystupuje pod unikátní L2 (MAC) adresou Přepínač Realizuje propojení fyzické a virtuální síťové karty na úrovni L2 s nutnou účastí CPU Fyzická karta musí být schopna pracovat v tzv. promiscuous módu (zpracovávat veškerou komunikaci bez ohledu na L2 adresu) NAT box resp. Směrovač Propojuje virtuální privátní L3 síť s fyzickou sítí realizací překladu privátních IP adres na obvykle jednu veřejnou IP adresu přiřazenou fyzickému síťovému rozhraní Na straně privátní sítě bývá navíc přítomen virtuální přepínač. Tím je umožněno připojení více VM do stejné privátní sítě
Virtualizace a komponenty počítače Ostatní I/O zařízení Ostatní virtuální HW sériový a paralelní port, klávesnice, myš VMM obvykle realizuje mapování virtuálního zařízení na fyzické prostředky klávesnice a myš součástí vzdáleného přístupu disketové a optické mechaniky přístup pomocí VMM k fyzickým zdrojům nebo obrazu v podobě souboru v rámci FS hostitele přístup k vzdáleným fyzickým zařízením v rámci vzdálené správy USB porty resp. USB zařízení VMM musí implementovat USB vrstvu (USB host conteller) pro přemostění virtuálního a fyzického USB portu Zvuková karta (desktopová virtualizace) pomocí VMM emulované virtuální zařízení napojené na zvukový subsystém hostitele obvykle vystupuje v roli aplikace, která využívá služeb fyzické zvukové karty Grafická karta emulovaný HW využívaný při realizaci vzdáleného přístupu k VM serverová virtualizace často jen omezené možnosti na úrovni emulace jednoduchého grafického čipu (VGA-VESA) desktopová virtualizace často přináší hlubší provázání s fyzickým HW (akcelerace 2D, 3D grafiky)
Virtualizace a komponenty počítače Virtuální zařízení BIOS Podobně jako u fyzických PC i u VM umožňuje operačnímu systému přístup k HW prostředkům Obvykle je konfigurovatelný před startem operačního systému konfigurace chování virtuálního HW Funkce BIOS nastavení procesoru, test HW, inicializace operačního systému Limity virtualizace zařízení Virtuální zařízení připojována k virtuální základní desce (MB) Připojené virtuální zařízení vyžaduje určitý typ slotu na virtuálním MB Použitá sběrnice může mít pouze limitní počet slotů PCI obvykle do 6 slotů na sběrnici (více PCI sběrnic, hierarchizace PCI sběrnic)
Výkonnostní dopad virtualizace Výkon VM je snižován v závislosti na výši režie virtualizační vrstvy Srovnáním spotřeby HW prostředků při běhu procesu v prostředí VM s během na fyzickém PC můžeme stanovit režii spojenou s VMM např. v podobě konzumace dodatečných HW zdrojů (paměti a CPU). Potenciální zdroje režie VMM Udržování stavu virtuálních procesorů Podpora privilegovaných instrukcí Podpora stránkování ve VM Obsluha výjimek a I/O přerušení VM Podpora virtuálního časovače a hodin Přístup k I/O zařízením Režie emulované konzole VM Síťová komunikace (virtuální přepínač)
Výkon virtuálního procesoru Udržování stavu virtuálních procesorů Nutnost zachování integrity všech registrů, příznakových bitů, mapování přerušení při předání fyzického CPU mezi různými VM Vyšší režie než přepnutí procesů Podpora privilegovaných instrukcí Eliminace přímého vykonávání privilegovaných instrukcí VM binární převod na volání VMM zachycení instrukce a zpracování s účastí VMM - podpora virtualizace na úrovni CPU (v HW) Obsluha výjimek a I/O přerušení VM
Práce s virtuální pamětí Podpora stránkování ve VM Překlad adres ve VM a následný překlad hypervisorem na fyzickou adresu Překlad virtuální adresy ve VM realizován softwarově (CPU bez HW podpory překladu virtuálních adres ve VM) Překlad virtuálních adres ve VM s podporou HW (dnes CPU realizují překlad na obou úrovních s pomocí HW) Přístup k I/O zařízením Přístup k virtuálnímu zařízení vyžaduje zásah VMM Nutný překlad přístupu k virtuálnímu HW na přístup k fyzickému Podpora virtuálního časovače a hodin Režie emulované konzole VM Emulace konzole s grafickým výstupem (VGA-VESA) výpočetně náročná (Výpočet je ve zkratce realizován na CPU místo GPU, každý přístup do framebufferu vyžaduje zásah VMM).
Minimalizace dopadů virtualizace Některé vylepšení HW podpory virtualizace: Práce s pamětí Rozšíření chráněného režimu o úroveň určenou pro běh VMM (hypervisoru) Hardwarová podpora překladu virtuálních adres v rámci fyzického a virtuálního počítače Přímo mapovaná I/O zařízení Přístup k I/O zařízením je mapován přímo do paměti hypervisoru. Při přístupu odpadá potřeba zásahu VMM Network Interface Card (NIC), Host Bus Adapter (HBA) Hardwarové podpora pro efektivnější síťování Snížení režie spojené se síťovým provozem a provozem virtuálních přepínačů
Měření výkonu virtualizace Srovnání se provádí na základě výsledků sady testů provedených na fyzickém a virtuálním počítači Testy zaměřeny na výpočty CPU práci s pamětí I/O operace (práce s periferními zařízeními) výkon a kvalitu služeb virtuální počítačové sítě
Testy virtualizace Komerční sady testů Komplexnější a často komfortnější přístup k testování výkonu Obvykle sada připravených testů zaměřených přes celé spektrum problematiky výkonnostního srovnávání Testy resp. Sady testů SPECvirt_sc2010 VMmark OpenSource nástroje Mnohdy velice pokročilé nástroje s užším spektrem zaměření Komplexního srovnání lze dosáhnout kombinací několika nástrojů Projekty: LLCbench, Netperf, nbench, Bonnie++, UnixBench
VirtualBox Multiplatformní virtualizační nástroj určený pro enterprice i domácí nasazení (GNU varianta). Podporuje jak softwarovou tak hardwarově asistovanou (VT-x a AMD-V) virtualizaci Recompiled Execution Monitor (REM) softwarová emulace privilegovaných instrukci procesoru Hardware Acceleration Manager (HWACCM) podpora VT-x a AMD-V VirtualBox poskytuje sadu nástrojů a konfiguračních možností v souladu s prezentovanými možnostmi konfigurace VM Virtuální CPU, RAM, Disky (rawhdd, dynamic, prealocate, snapshot,...), NIC (NAT,Bridged, Internal, Host-only) GUI a CLI konfigurační rozhraní
VirtualBox Konfigurační možnosti Omezení velikosti RAM ve VM Vytváření virtuálních disků a mapování periferních zařízení dynamické a dopředně alokované IDE, SCSI, SAS emulované zařízení Konfigurace procesoru hardwarová virtualizace VT-x/AMD-V HW podpora stránkování Nested Paging Počítačová síť až 4 nezávislá síťová rozhraní Host-only, NAT, Bridged, Internal módy napojení na další síťový subsystém Mapování sériových a podpora USB portů Nastavení Video Adaptéru velikost video RAM podpora akcelerace 2D a 3D
Závěr Představení virtualizace s uživatelského pohledu Princip činnosti a typy virtualizací Virtuální zařízení a možnosti jejich konfigurace Výkonnostní dopady a způsoby jejich eliminace Stručně problematika testování virtualizace VirtualBox
Literatura John L. Hennessy, David A. Patterson, Computer Architecture: A Quantitative Approach (4th Edition) Andrew S. Tanenbaum, Operating Systems: Design and Implementation R. P. Goldberg: Survey of Virtual Machine Research C. Wolf, E. M. Halter: Virtualization: from the desktop to the enterprise Elektronické dokumenty www.vmware.com www.virtualbox.org