Virtualizace na úrovni operačního systému

Virtualizace na úrovni operačního systému využívá pro svůj běh jádro operačního systému. Umožňuje spouštět více na sobě nezávislých a vzájemně izolovaných virtuálních počítačů. Ty se označují jako kontejnery, virtuální privátní servery (VPS), virtuální prostředí (VEs). Aplikace pro virtualizaci na úrovni operačního systému vytvoří virtualizační vrstvu, která řídí běh více virtuálních kontejnerů, zajišťuje abstraktní rozhraní pro přístup k hostitelskému systému (abstrakční vrstvu) a zajišťuje přidělování prostředků od systému. Mezi nejznámější patří OpenVZ, Jail, Solaris Containers, Parallels Virtuozzo. Jedná se o „měkkou“ virtualizaci, čili ne virtualizaci v pravém slova smyslu. Základem každého virtuálního stroje je hostitelský operační systém. Virtualizační vrstva zajistí virtualizaci prostředí daného operačního systému. Hlavní výhodou je rychlost. Hlavními nevýhodami jsou závislost na jednom operačním systému/distribuci. Problémy s případným upgradem hostitelského operačního systému, který může vést k nestabilitě, pádu, zhavarování některých aplikací. Fatální následky potom mají chyby přímo v hostitelském operačním systému, které se duplikují na všechny virtuální stroje (kontejnery).

Historie

editovat

V 60. letech vytvořila IBM operační systém CP/CMS (Control Program / Cambridge Monitor System), který v sobě vytvářel jednoduché virtuální stroje. Jednalo se o jednoduchý jednouživatelský systém. Velkou podobnost najdeme s pozdějšími terminály. Hlavním úskalím byl výkon samotného hardwaru, který neumožňoval širší nasazení. V dnešní době zažívá virtualizace na úrovni operačního systému velký boom. Především na poli hostingových služeb, kdy si již neplatíte v první řadě za služby např. LAMP serveru, ale za výkon, který mají mít. Jedná se tak o velký posun směrem ke zkvalitnění a variabilitě služeb.

Použití

editovat

Jak již bylo zmíněno. Virtuální hosting představuje hlavního zástupce využití virtualizace na úrovni operačního systému. Užitečné je nejen přidělení hardwarových prostředků mezi velký počet vzájemně nedůvěryhodných uživatelů, ale také konsoliduje serverový výkon a lépe ho využívá. Hlavní předností jsou například migrace virtuálních serverů mezi jednotlivými fyzickými servery pro lepší vyváženost výkonu. Druhou možností je oddělený běh aplikací na jednotlivých virtuálních serverech pro zvýšení bezpečnosti, nezávislosti a přidaných hardwarových zdrojích.

Výhody a nevýhody

editovat

Tato forma virtualizace má z hlediska ztráty celkového výkonu hardwaru nejnižší režii. To je způsobeno tím, že aplikace na virtuálních oddílech používají zcela totožně systémová volání a rozhraní, která nejsou emulována. To se děje například ve virtualizačních nástrojích, Xen aj.

Flexibilita

editovat

Na rozdíl od hardwarové virtualizace není virtualizace na úrovni OS tolik efektivní z hlediska možného přenosu na jiné stroje. Především kvůli odlišnostem jednotlivých operačních systémů, jejich verzí a záplat. V Linuxu to jsou například rozdílné distribuce. U operačních systémů firmy Microsoft jsou problémem licence, které do nedávna vůbec neřešily možnost nasazení Windows ve virtualizovaném prostředí. Tato omezení částečně překonal Solaris pomocí funkce, která poskytuje možnost emulace jádra Linuxu 2.4 a starších verzí systému Solaris.

Úložiště

editovat

Některé virtualizované operační systémy poskytují mechanismy na souborové úrovni. Standardní virtualizovaný souborový systém sdílený mezi jednotlivými kontejnery, automaticky při změně souboru vytvoří jeho kopii pro daný virtuální stroj (kontejner). Toto je jednodušší na zálohování, efektivnější a jednodušší, než vyrovnávací paměti na úrovni bloků copy-on-write, které jsou společné pro celý virtualizovaný systém. Jednotlivé kontejnery mohou pracovat se změněnými kopiemi původního souboru, vytvářet nové nebo naopak vrátit snímky celého systému zpět (snapshot systému).

Reference

editovat

V tomto článku byl použit překlad textu z článku Operating system-level virtualization na anglické Wikipedii.