Pokročilé architektury počítačů Tutoriál 2
Virtualizace a její dopady
Martin Milata
Obsah ●
Virtualizace ●
Jak virtualizace funguje
●
Typy
●
HW podpora virtualizace
●
Dopady virtualizace
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 programům nativní přístup k nim 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
Tři třídy virtualizace ●
Softwarová plná virtualizace ●
Hypervisor asistuje každé privilegované instrukci hostovaného OS – –
●
Nevyžaduje žádné změny v software ani vlastním OS hostovaného počítače (guest VM) –
●
Pokus o provádění privilegovaných instrukcí guest OS způsobí vyvolání výjimky obsluhované hypervisorem (pouze VMM běží v „ringu 0“) Zachycená privilegovaná instrukce je nahrazena odpovídající skupinou instrukcí definovaných jako důsledek obsluhy VMM, které zajistí izolaci a ekvivalentní výsledek pro VM
Provoz dnes „zastaralých“ OS (MSDOS, MS Windows 3.1, ...)
Představuje vysokou zátěž a tím významný pokles výkonu VM při provádění privilegovaných instrukcí –
Mezi privilegované instrukce patří například instrukce změn mapování paměti (stránkování, …) nebo požadavky na I/O zařízení
Tři třídy virtualizace
Tři třídy virtualizace ●
Operačním systémem asistovaná virtualizace nebo paravirtualizace ●
●
Je založena na modifikaci OS pro VM OS virtuálního počítače spolupracuje s hypervisorem a spoluutváří virtuální prostředí (resp. počítač) –
●
Modifikací kódu OS se snižuje počet privilegovaných instrukcí, které je potřeba obsluhovat výjimkou –
●
Hypervisor stále řídí přístup k HW prostředkům a zajišťuje izolaci jednotlivých VM
Znemožněn běh OS, které nejsou pro daný hypervisor upraveny
Přináší nejmenší výkonnostní dopad na VM –
Komunikace s I/O zařízeními je obvykle výhradou hypervisoru
Tři třídy virtualizace ●
Hardwarově asistovaná virtualizace ●
Přináší zjednodušení virtualizačních technik ve spolupráci s hardware –
●
●
Intel VT-x a AMD AMD-V podpora na úrovni procesoru
Základní podpora spočívá v rozšíření tříd oprávnění o třídu pod „ringem 0“ –
Vyšší stupeň oprávnění přináší možnost zachování běhu hostovaného OS na úrovni 0
–
Procesor ukládá stav VM v Virtual Machine Control Structures resp. Virtual Machine Control Blocks
Dosahuje vyššího výkonu než plná virtualizace a s další podporou v HW se vyrovnává paravirtualizaci –
Privilegované instrukce mohou být klasifikovány do dílčích tříd s rozdílnou úrovní zásahu hypervisoru
–
Zásah hypervisoru je realizován na základě výjimky, která má za následek snížení výkonu VM (při obsluze je řízení a tedy i procesor předán VMM)
–
Dnes je HW podpora rozšiřována o další techniky, z nichž některé jsou uvedené dále
Tři třídy virtualizace
Dopady virtualizace ●
Stažení a instalace virtuálního PC wget http://158.196.141.74:/virt/images/pap06virt-bench.sh -O /tmp/img.sh sh /tmp/img.sh ●
●
Skript je destruktivní k nastavení VirtualBoxu!
Stažení zdrojových kódů aplikace Mplayer wget http://158.196.141.74:/virt/images/mplayer.tar. bz2 -O /tmp/mplayer.tar.bz2
Dopady Virtualizace ●
Diskové operace dd if=/dev/zero of=/tmp/disk bs=1k count=10k
●
Dekomprese time tar xjf /tmp/mplayer.tar.bz2
●
Kompilace ./configure -yasm='' time make
Závěr
Dotazy?