pokročilé architektury...
TRANSCRIPT
Pokročilé architektury počítačů
Stručný úvod do problematiky virtualizace
Přednáška 4
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ýchinstrukcí 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řipojenpřes virtuální NAT box, který realizujepřeklad IP adres. Standardní pojetíprivátní sítě
● Bridged Networking
– VM je pomocí virtuálního přepínače připojenpřímo k fyzickému rozhraní, obvyklá podporaVLAN, 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