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í 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 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) 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
Tři třídy virtualizace Softwarová plná virtualizace Hypervisor asistuje každé privilegované instrukci hostovaného OS 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 Nevyžaduje žádné změny v software ani vlastním OS hostovaného počítače (guest 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č) Hypervisor stále řídí přístup k HW prostředkům a zajišťuje izolaci jednotlivých VM Modifikací kódu OS se snižuje počet privilegovaných instrukcí, které je potřeba obsluhovat výjimkou 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/pap06- virt-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?