Virtualizace Flashcards
Úvod
Jako vizualizace se v prostředí počítačů označují postupy a techniky, které umožňují k dostupným zdrojům přistupovat jiným způsobem, než jakým fyzicky existují nebo jsou propojeny atd.
Virtualizované prostředí může být mnohem snáze přizpůsobeno potřebám uživatelů, snáze se používat, případně před uživateli zakrývat pro ně nepodstatné detaily(jako například rozmístění hardwarových prostředků)
Smyslem virtualizace je lepší využití hardwaru a pro více účelů. Virtualizovat lze na různých úrovních, od celého počítače, po jeho jednotlivé hardwarové komponenty (např. virtuální procesory, virtuální paměť, virtualizace vzdálených úložných zařízení, ..), případně pouze softwarové prostředí (virtualizace operačního systému)
Prostředí, které provádí virtualizaci kompletní sady fyzického hardwaru a které se jeví programům, které nad ním běží, jako skutečné hardwarové prostředí, které nazýváme virtuálním strojem.
Virtualizace hlavní výhody
jednodušší zálohování, duplikace virtuálních mašin, separace VM a HW, finančně levnější, migrace, testovatelnost
Virtualizace hlavní nevýhody
nelze virtualizovat na každém HW – procesor musí mít podporu virtualizace - neznamená, že procesor je i7, že nutné musí podporovat virtualizace. Jedná se o technologie AMD-V u amd a VT-X u Intelu
Proč virtualizovat
Finanční náklady Bezpečnost Snadná migrovatelnost Škálování výkonu Testovatelnost Zálohování
Proč virtualizovat - Finanční náklady
Můžeme ušetřit spoustu peněz instalací třeba 8 virtuálních serverů na jeden PC. Potom budete platit pouze za 1 skutečný server, který ale obsahuje další virtuální servery, takže jasné ekonomické výhody
Proč virtualizovat - Bezpečnost
Oddělení jednotlivých procesů nebo celých systému. Virtuální stroj nemůže poškodit fyzické zařízení. Virtuální servery jsou tak oddělené a nikdo nemůže lézt mezi servery.
Proč virtualizovat - Snadná migrovatelnost
Virtuální servery lze za chodu snadno migrovat z fyzického serveru na fyzický server. Velice snadno a rychle lze tak přenášet uživatelské servery i s daty a nastavením z ‘fyzického stroje na fyzický stroj bez poškození, nebo znehodnocení, či nutnosti opětovné reinstalace operačního systému virtuálního stroje.
Programy umožňující migrovat: Proxmox (zdarma)
Proč virtualizovat - Škálování výkonu
Možnost přidávat do virtuálních serverů za chodu další rám nebo procesory — toto ale neumožňují všechny virtualizační programy
Proč virtualizovat - Testovatelnost
Virtuální stroj je tzv. backbox, můžeme ho při poškození zahodit a nahodit prostě znovu, takže se nemusíme bát testovat škodlivé programy.
Proč virtualizovat - Zálohování
Pomocí tzv. snapshotů lze vzít virtuální server. Zmrazit ho (zazálohovat) a jeho zmraženou, zazálohovanou kopii použít v případě jeho výpadku v budoucnosti. Během několika minut lze nefunkční systém uvést do provozu několika příkazy, nebo několika kliknutími bez ztráty dat.
Typy virtualizace
Emulace
Plná virtualizace
Paravirtualizace
Virtualizace na úrovni operačního sytému
Typy virtualizace - Emulace
Virtualizace hardwarových komponent za účelem simulace jiné hardwarové platformy.
Emulace umožňuje programům běžet na jiné platformě, než pro jakou jsou naprogramovány
Hostované operační systémy a aplikace není nutné modifikovat (často to ani není žádoucí, je třeba zachovat plnou kompatibilitu). Vzhledem k tomu, že emulace virtualizuje odlišnou hardwarovou platformu, nevyužívá hardwarovou podporu virtualizace, kterou nabízí dnešní procesory, je pouze softwarová, a režie emulace je proto vysoká.
Emulační programy: DOSBox, DOSEM U, Bochs, PearPC, QEMU,
Výhody: možnost na libovolné platformě spustit systém a aplikace libovolné jiné platformy. Virtualizační software je obyčejnou aplikací, běží i bez administrátorských práv. Hostitelský ani hostovaný systém nemusí být nijak upraveny.
Nevýhody: nízký výkon, problémy s kompatibilitou emulovaného hardware.
Typy virtualizace - Plná virtualizace
Pokud postupujeme tímto způsobem, tj. virtualizujeme důsledně všechny součásti počítače, hovoříme o tzv. plné virtualizaci (full virtualization). V takovémto případě nabízíme prostředí, v němž běžící operační systém nemůže žádným způsobem poznat, že nemá přístup k fyzickému technickému vybavení (hardware). Operační systém ani aplikační programy nepotřebují žádné modifikace. Jedná se v podstatě o ideální stav, kdy dochází k plnému oddělení fyzické vrstvy, veškeré programy běží pouze na virtuálním hardware a přístup k fyzickému vybavení je vždy zprostředkován. To má samozřejmě řadu výhod - můžeme virtuální prostředí navrhnout tak, aby nám vyhovovalo (velikost paměti, typ procesoru, typ a kapacitu disku apod.). Programy jsou rovněž nezávislé na konkrétním technickém vybavení, jeho změna nemá na virtuální prostředí vliv (samozřejmě kromě výkonnostních charakteristik, tj. náš virtuální počítač může běžet rychleji nebo pomaleji, ale v každém případě poběží).
U plné virtualizace nemusí existovat žádná jednoduchá vazba mezi virtuálním prostředím a konkrétním hardware, na němž je virtuální počítač provozován. To umožňuje plnou přenositelnost - operační systém a aplikace běžící na procesoru Intel s architekturou IA-32 můžeme spouštět třeba na počítačích, vybavených procesory PowerPC. A následné je můžeme přenést na počítače vybavené jiným procesorem, aniž bychom provedli jedinou úpravu na úrovní virtuálního počítače. Podobné můžeme vytvořit virtuální počítač vybavený procesorem, který je teprve ve vývoji - návrh a ladění Operačního systému a aplikací tak může probíhat paralelně s vývojem vlastního hardware.
Programy využívající plnou vizualizací: VirtualBox, VMware, VirutaIPC, XEN
Výhody: hrubý výpočetní výkon, hostitelský ani hostovaný operační systém nemusí být nijak upraveny, přenositelnost
Nevýhody: Pomalé i/O.
Typy virtualizace - Paravirtualizace
Vyznačuje se tím, že provádí jen Částečnou abstrakcí na úrovní virtuálního počítače, tj. nabízí virtuální prostředí, které je podobné tomu fyzickému, na kterém virtuální počítač provozujeme. Virtualizace v tomto případě není úplná, některé vlastností např. procesoru mohou být omezeny a operační systém může rozpoznat, že běží ve virtuálním prostředí. Na druhou stranu skutečnost, že virtuální a fyzický hardware se příliš neliší, umožňuje, aby virtuální počítač v maximální míře využíval vlastností základního fyzického prostředí (nemusíme emulovat všechny komponenty virtuálního počítače jako plná virtualizace).
Paravirtualizace je široce využívána pří tvorbě virtuálních prostředí nad procesory Intel (a AMD). VMware Workstation a Xen patří mezí neznámější systémy, které jsou postaveny na paravirtualizaci. Základní principy Paravirtualizace si představíme na (zjednodušeném) modelu, který používá právě prostředí Xen.
Paravirtualizace je tak možná jen díky tomu, že konkrétní procesory podporují více úrovní ochrany. Procesory Intel mají definovány 4 úrovně ochrany, tzv. okruhy (rings). Na nejvyšším stupni ochrany (ring O) běží operační systém, uživatelské programy běží s nejnižším stupněm ochrany (ring 3). Ostatní stupně se běžně nevyužívají.
Při použití paravirtualizace se tedy virtuální OS posune do okruhu 1, čímž je nad virtuálními aplikacemi, a přitom pod fyzickým OS — omezené pravomoce
Úrovně ochrany však můžeme využít í místo výše zvýšené modifikace privilegovaných instrukcí - necháme operační systém ve virtuálním počítači provádět všechny instrukce, pokud však bude chtít provést “zakázanou” operaci (tj. takovou, na kterou teď’ nemá dostatečná oprávnění), pak dojde k přerušení a řízení převezme virtuální monitor. Ten operaci zkontroluje a provede ji tak, aby správně změnila stav virtuálního počítače. Není v principu třeba měnit operační systém, většina instrukcí běží přímo, pouze privilegované instrukce jsou výrazně pomalejší, protože je musí provést virtuální monitor. Operační systém však může zjistit, že běží ve virtuálním prostředí, protože může mít i na úrovni 1 možnost číst některé částí paměti, které jsou ve virtuálním počítači jiné, něž ve fyzickém. Pro paravirtualizaci je proto třeba modifikovat některé součásti operačního systému, změny jsou však malé a dobře lokalizovatelné (zvlášť dobře je pak možné provést tyto změny u operačních systémů, k nímž jsou k dispozici zdrojové kódy (i proto začala být tak oblíbená (para)virtualizace v prostředí Linuxu).
Výhody/nevýhody Paravirtualizace
Výhody: lepší výkon než v případě plné virtualizace
Nevýhody: hostitelský i hostované systémy musí být upraveny. Pokud k nim nemáte zdrojové kódy a výrobce neposkytne upravené jádro tak paravirtualizaci nelze použít.