Pokud zvažujete, který virtuální server vybrat, ale nevyznáte se v rozdílech mezi technologiemi, potom by vám tento článek mohl pomoct. Dozvíte se v něm, jaké základní typy virtualizace existují a jaký je rozdíl mezi KVM a LXC virtualizací.
Není VPS jako VPS a vyznat se ve všech parametrech a technických detailech není vždy jednoduché. Rozhodli jsme se proto přiblížit, jak funguje samotná virtualizace, přičemž se zaměříme na KVM a LXC, které používáme v MasterDC pro virtuální servery s operačním systémem Linux. Než ale přejdeme ke konkrétním technologiím, tak si nejprve vysvětlíme, jaké typy virtualizace vlastně existují a jaké jsou jejich obecné výhody a nevýhody.
Typy virtualizace
Druhů virtualizace je hned několik a liší se především svým rozsahem a úrovní, na které je virtualizace prováděna, což má zásadní vliv na vlastnosti VPS jako je například škálovatelnost nebo kompatibilita operačního systému. Pro účely tohoto článku nám postačí představit základní dva typy – plnou virtualizaci a virtualizaci na úrovni operačního systému. Existují sice ještě nejrůznější typy částečných virtualizací, které virtualizují jen některé instance hardwaru (paměť, procesor, síťová karta), těm se ale v článku věnovat nebudeme.

Grafické znázornění plné virtualizace (vlevo) a virtualizace na úrovni operačního systému (vpravo).
Plná neboli nativní virtualizace je virtualizací v pravém slova smyslu. Její klíčovou komponentou je hypervizor, který monitoruje a řídí běh virtualizovaných serverů přímo na úrovni hardwaru. Lze si ho představit jako hlavního arbitra, který jednotlivým virtuálním serverům přiděluje výkon a paměť fyzického serveru a zároveň tyto virtuální servery od sebe odděluje.
Operační systém se v tomto případě nachází ve vrstvě nad hypervizorem a díky tomu dovoluje na jednotlivých virtualizovaných strojích spouštět různé nemodifikované operační systémy, což je jedna z hlavních výhod plné virtualizace. Naopak nevýhodou jsou poměrně vysoké režijní nároky. Samotný provoz hypervizoru můžet totiž spotřebovat až 20 % výkonu fyzického serveru. Typickým příkladem plné virtualizace jsou různá řešení od VMware.
Virtualizace na úrovni operačního systému, která vytváří tzv. kontejnery, také umožňuje běh několika oddělených virtuálních strojů na jednom fyzickém serveru. Hlavním rozdílem je, že tyto virtuální stroje běží na jednom sdíleném jádru operačního systému, takže i operační sytém jednotlivých virtuálních strojů (kontejnerů) musí mít stejné jádro. Aplikace pro vytváření virtuálních strojů je tak nad vrstvou s operačním systémem.
Výhodou virtualizace na úrovni operačního systému je především efektivnější využití výkonu a kapacity fyzického serveru než v případě plné virtualizace. Aplikace pak, podobně jako hypervizor, přiděluje kvóty na disku, paměť a prioritizuje procesorový čas. Další důležitou výhodou je možnost izolace kontejneru a následné nasazení v různých prostředích. Představiteli tohoto typu virtualizace jsou například OpenVZ, Docker nebo LXC.
Za KVM virtualizací stojí přední softwarové společnosti
KVM hypervizor byl původně vyvíjen izraelským startupem Qumranet. V září roku 2008 ho ale za 107 milionů dolarů koupil Red Hat, světová jednička v linuxových řešeních pro komerční sféru. Zkratka KVM znamená Kernel-based Virtual Machine, což můžeme volně přeložit jako “virtualizace na úrovni jádra”. Název tak odkazuje na mechanismus virtualizace, který KVM využívá – jedná se o modul, který umožní linuxovému jádru fungovat jako hypervizor.
Na jedné straně je tak nutné, aby byl operační systém již nainstalovaný, na straně druhé tento operační systém vlastně sám funguje jako hypervizor. Různé zdroje se proto vždy neshodují, o jaký typ virtualizace se jedná. Většina se ale přiklání k názoru, že KVM odpovídá plné virtualizaci, protože nainstalované jádro původního operačního systému se chová jako hypervizor. Odpovídá tomu i jedna z klíčových vlastností plné virtualizace – na KVM je totiž možné spouštět nemodifikované operační systémy.

Architektura KVM virtualizace. Zdroj: Freecodecamp.org
Jako svobodný software lze KVM používat na různých linuxových distribucích, jako například CentOS, Ubuntu nebo Debian. Pokud ale chcete virtualizovat fyzický server s operačním systémem Windows, je nutné sáhnout po jiném hypervizoru.