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 ●
●
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 ●
●
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)
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í ●
●
●
Hypervisor jako součást hostujícího OS (VirtualBox, VMware Server)
Základní funkce VMM ●
●
Vrstva hypervisoru může být nadřazená všem na PC běžícím OS (VMware ESX, Xen)
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) ●
●
●
●
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) ● ●
●
Softwarová emulace uživatelského počítače. Uživateli dává iluzi plnohodnotného počítače se vlastním OS
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 – –
●
Správa virtuální paměti (Memory Management – MM) je pro VM zcela transparentní ●
●
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
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 ●
●
Virtuální disk může být reprezentován ●
●
●
Simulace Small Computer Sytem Interface (SCSI) nebo Integrated Drive Electronics (IDE) s připojeným diskovým zařízením
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 –
●
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 není připojen k fyzickému rozhraní, případný lokální provoz může být monitorován administrátorem
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 –
●
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č – –
●
Vnáší zpoždění při předávání rámců, zatěžuje hostitelský systém
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š – –
●
disketové a optické mechaniky – –
●
VMM musí implementovat USB vrstvu (USB host conteller) pro přemostění virtuálního a fyzického USB portu
Zvuková karta (desktopová virtualizace) – –
●
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 obvykle realizuje mapování virtuálního zařízení na fyzické prostředky klávesnice a myš součástí vzdáleného přístupu
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 –
●
Funkce BIOS –
●
konfigurace chování virtuálního HW 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 –
●
Podpora privilegovaných instrukcí ●
Eliminace přímého vykonávání privilegovaných instrukcí VM – –
●
Vyšší režie než přepnutí procesů
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í – –
●
Konfigurace procesoru – –
●
dynamické a dopředně alokované IDE, SCSI, SAS emulované zařízení 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