Přejít na hlavní obsah
Sleva 50% všechny plány, omezený čas. Od $2.48/mo
13 min left
Cloudová architektura a IT

KVM vs. OpenVZ vs. LXC: co vám typ virtualizace vašeho VPS ve skutečnosti dovolí

J Autor: Jonas 13 min čtení
KVM vs OpenVZ vs LXC title card showing three stacks: KVM with a guest OS and guest kernel over KVM/QEMU, OpenVZ with containers over a shared kernel, and LXC with containers over namespaces and cgroups on a shared kernel

Dva tarify VPS na jedné stránce. Čtyři vCPU, 8 GB RAM, 160 GB úložiště, téměř stejná cena. U jednoho stojí KVM. U druhého OpenVZ. Ani jedna stránka nevysvětluje, co to slovo mění.

Mění to, co smíte spustit. Typy virtualizace VPS nejsou jen poznámka pod čarou o výkonu. Rozhodují o tom, zda ovládáte jádro, zda je možný Windows a zda Docker funguje bez zásahu poskytovatele. KVM vs. OpenVZ vs. LXC je nejdřív otázka schopností a teprve pak otázka rychlosti.

Tento průvodce se věnuje třem označením, která jsou pro toto nákupní rozhodnutí nejdůležitější. Xen, VMware, Hyper-V a další virtualizační platformy existují, ale do tohoto trojího srovnání nepatří.

Stručně

  • KVM dává každému VPS vlastní jádro hosta. Docker běží normálně, Windows je technicky možný a obvykle můžete načítat moduly jádra nebo nabootovat vlastní jádro. Samotný KVM však negarantuje vyhrazený CPU ani RAM; závazky ohledně zdrojů stále závisejí na poskytovateli a tarifu.
  • OpenVZ tarify VPS jsou obvykle linuxové kontejnery sdílející jádro hostitele. Docker může v OpenVZ 7 běžet jen tehdy, když poskytovatel použije kompatibilní jádro a konfiguraci šablony. Jádro hostitele nevyměníte a paměť nad rámec RAM se řeší přes VSwap řízený poskytovatelem, nikoli běžným diskovým swapem spravovaným hostem.
  • LXC také sdílí jádro hostitele, ale staví na mechanismech izolace hlavního linuxového jádra. Docker může běžet, pokud hostitel povolí potřebné funkce, i když Proxmox doporučuje vnořit kontejnery do virtuálního stroje QEMU u zátěží vyžadujících maximální izolaci a živou migraci.
  • Kontejnery se obvykle snáz mění za běhu. I KVM může podporovat hot-plug CPU a paměti, takže "KVM vždy vyžaduje restart" není spolehlivé nákupní pravidlo. Zeptejte se poskytovatele, co jeho platforma skutečně podporuje.
  • U statického webu nebo malého LAMP stacku, který nikdy nepotřebuje Docker, Windows ani úpravy na úrovni jádra, může být praktický rozdíl malý. Izolace, životní cyklus a politika zdrojů se přesto mohou lišit.

Jediný rozdíl, z něhož plynou všechny ostatní

Dvoupanelový diagram. Vlevo oddělená jádra hosta: tři virtuální stroje, každý s vlastním hostovaným operačním systémem a vlastním jádrem, nad virtualizační vrstvou KVM/QEMU a fyzickým serverovým hardwarem, což umožňuje Linux nebo Windows, vlastní jádro, moduly jádra hosta, swap řízený hostem a silnější izolaci. Vpravo sdílené jádro hostitele: šablony poskytovatele pro OpenVZ i jmenné prostory a cgroups LXC směřují k jedinému linuxovému jádru hostitele, což hosta omezuje pouze na Linux, bez vlastního jádra, s moduly řízenými hostitelem, paměťovou politikou poskytovatele a nastavením jádra od poskytovatele

KVM dává každému VPS na hostiteli vlastní jádro hosta. Kontejnery OpenVZ a LXC používají jádro nabootované hostitelem.

KVM je plnohodnotné virtualizační řešení pro hardware x86 s virtualizačními rozšířeními. Do hlavního linuxového jádra byl začleněn od verze 2.6.20. Každý host vidí virtuální hardware a bootuje vlastní operační systém i vlastní jádro.

Kontejnerové typy fungují jinak. LXC je uživatelské rozhraní pro mechanismy izolace linuxového jádra, včetně jmenných prostorů, cgroups, capabilities, seccomp a bezpečnostních profilů. Cílem je prostředí blízké běžné instalaci Linuxu bez bootování samostatného jádra.

Kontejner OpenVZ se drží stejného obecného modelu sdíleného jádra, i když OpenVZ používá vlastní platformu a vlastní jaderný stack. OpenVZ 7 umí spravovat kontejnery i virtuální stroje KVM, ale pokud je běžný tarif VPS označen jako "OpenVZ", prodává se obvykle kontejnerový typ.

Všechny níže uvedené rozdíly ve schopnostech z toho vyplývají. Modul jádra se musí načíst do jádra, které ovládáte. Jiný operační systém potřebuje jiné jádro. Docker potřebuje jmenné prostory na úrovni jádra, a ty musí být dostupné tam, kde sídlí samotné jádro. Na straně KVM této hranice se vrstva hypervizoru řídí architekturou, která se běžně dělí na hypervizory typu 1 a typu 2.

LXC se často objevuje v prostředích Proxmox, včetně vlastnoručně spravovaných serverů a některých hostingových platforem. Zda můžete zapnout pokročilé funkce LXC, závisí na tom, kdo daného hostitele ovládá.

Co vám každý typ dovolí spustit

Srovnání schopností KVM, kontejnerů OpenVZ a kontejnerů LXC v oblasti Dockeru, vlastního jádra, modulů načítaných hostem, hosta Windows, sítě VPN, správy swapu, změny velikosti za běhu a záruky vyhrazených zdrojů, s poznámkou, že typ virtualizace určuje schopnosti, zatímco politika poskytovatele určuje záruky zdrojů

Osy, které rozhodují o nákupu, jsou kontrola nad jádrem, podpora hostovaného operačního systému, kompatibilita s Dockerem, chování paměti, změna velikosti a politika zdrojů.

SchopnostKVMOpenVZLXC
DockerAno, nativněPodmíněně: pouze OpenVZ 7 a poskytovatel musí použít šablonu EZ nebo vhodnou vlastní šablonu spolu s potřebnými funkcemi jádra hostitelePodmíněně: hostitel musí povolit vnořování a keyctl
Vlastní jádro nebo načítatelné modulyObvykle anoNe, svázáno s jádrem hostiteleNe, sdílí jádro hostitele
Windows jako hostovaný OSAno, pokud poskytovatel podporuje image a licenční cestuNe, pouze LinuxNe, pouze Linux
Moduly jádra pro VPN (WireGuard, OpenVPN)Řízeno hostemZávisí na poskytovateli: TUN/TAP musí být zpřístupněnZávisí na poskytovateli: závisí na funkcích jádra povolených na hostiteli
Správa swapuŘízeno hostemVSwap spravovaný hostitelem místo běžného diskového swapuPolitika hostitele, moderní cgroup v2
Změna zdrojů za běhu, bez restartuZávisí na platformě, hot-plug CPU a paměti je možnýČasto možnéČasto možné
Záruka vyhrazených zdrojůNení samozřejmá, rozhoduje politika poskytovateleNení samozřejmá a hustota kontejnerů usnadňuje přeprodejNení samozřejmá

Který si vybrat? KVM je nejčistší odpověď, když potřebujete Windows, vlastní jádro, moduly načítané hostem nebo předvídatelný hostitel pro Docker. OpenVZ a LXC mohou být efektivní linuxová prostředí, ale rozhodnutí na úrovni jádra nechávají na poskytovateli.

Tohle je mapa schopností, ne benchmark. Neříká nic o latenci úložiště, kvalitě sítě, generaci CPU, vytížení hostitele ani o tom, jak poskytovatel přiděluje zdroje. Dva poskytovatelé se stejným typem virtualizace mohou dodat velmi odlišné stroje.

Právě na podmíněných buňkách ztrácejí kupující čas. Jednou jsem nasazoval VPN na kontejnerovém VPS, kde potřebná síťová funkce na straně hostitele nebyla zpřístupněna. Rozhraní se nechtělo zvednout a náprava si vyžádala tiket na podporu místo změny konfigurace uvnitř hosta. U kontejnerového tarifu se ptejte, zda poskytovatel zpřístupňuje přesně to zařízení nebo tu funkci jádra, kterou vaše VPN potřebuje. U KVM to obvykle řídíte uvnitř hosta sami.

Proč je Docker otázkou, která rozhoduje o většině nákupů

Třísloupcové schéma porovnávající cesty k Dockeru. KVM: linuxový host, jádro hosta, Docker Engine, kontejnery, vše pod kontrolou uživatele. OpenVZ: OpenVZ 7, kompatibilní jádro hostitele, šablona EZ nebo vhodná vlastní a potřebná funkcionalita hostitele, než Docker naběhne, vše pod kontrolou poskytovatele, se starými šablonami a nepodporovanou konfigurací hostitele jako větvemi selhání. LXC: systémový kontejner, vnořování povolené hostitelem, keyctl, Docker Engine, aplikační kontejnery, pod kontrolou správce hostitele, s poznámkou, že pro produkční Docker se obecně dává přednost virtuálnímu stroji

Kontejnerový VPS versus KVM VPS přestává být abstraktním srovnáním ve chvíli, kdy se ve vašich požadavcích objeví Docker. Docker sám používá jmenné prostory jádra, cgroups, síť a úložné ovladače. Uvnitř KVM tyto funkce patří jádru hosta, které ovládáte. Uvnitř OpenVZ nebo LXC nakonec závisejí na hostiteli.

Docker na OpenVZ

Podpora Dockeru na OpenVZ je rozhodnutí o provisioningu, které padá nad vámi. Jeden článek podpory SolusVM uvádí, že Docker může uvnitř OpenVZ 7 běžet od určitého vydání jádra řady 3.10, ale zároveň říká, že Docker nefunguje se standardními staršími předpřipravenými šablonami. Kontejner musí použít šablonu EZ nebo vhodnou vlastní šablonu. Tentýž článek vylučuje hosty s CentOS 8.

Funguje tedy Docker na OpenVZ? Někdy. Poskytovatel musí službu postavit na kompatibilním jádru OpenVZ 7 a na vhodné cestě šablon. Pokud to stránka tarifu neuvádí jasně, zeptejte se před nákupem podpory a odpověď si nechte písemně.

Když je konfigurace hostitele nekompatibilní, změna přepínačů Dockeru uvnitř VPS základní problém nevyřeší. Je potřeba, aby poskytovatel změnil konfiguraci kontejneru nebo vás přesunul na jiný typ virtualizace.

Docker na LXC

Docker může běžet uvnitř LXC, pokud hostitel zpřístupní potřebné funkce. V Proxmoxu k tomu obvykle patří vnořování kontejnerů a keyctl pro neprivilegované kontejnery.

Důležitějším nákupním signálem je doporučení tvůrce platformy. Dokumentace Proxmoxu uvádí, že vnořování kontejnerů do virtuálního stroje QEMU v Proxmoxu zůstává doporučenou praxí u případů použití, které vyžadují maximální izolaci a živou migraci, místo jejich přímého běhu v systémovém kontejneru LXC.

Pokud hostitele LXC ovládáte vy, můžete tento kompromis vyhodnotit a testovat aktualizace ve vlastním tempu. Pokud si LXC VPS pronajímáte, jádro, bezpečnostní profil i pokročilé přepínače funkcí ovládá poskytovatel. Nechte si podporovanou konfiguraci potvrdit, místo abyste předpokládali, že root uvnitř kontejneru stačí.

Docker na KVM

Docker běžně funguje, protože linuxový host ovládá vlastní jaderné prostředí. Nad hostem není žádný přepínač vnořování LXC ani požadavek na šablonu OpenVZ. Pořád ale potřebujete podporovanou linuxovou distribuci, kompatibilní jádro a dost RAM i úložiště pro danou zátěž.

Vlastnit jádro hosta znamená také se o něj starat. Na nespravovaném VPS zůstávají aktualizace, pravidla firewallu, zabezpečení Dockeru i zálohy na vás.

Klíčový poznatek: Docker nedělá z OpenVZ ani LXC nemožnou volbu, ale činí z konfigurace poskytovatele součást spolehlivosti vaší aplikace. U pronajatého produkčního hostitele pro Docker tuhle závislost navíc KVM odstraňuje.

Zda "4 vCPU" znamená čtyři vyhrazená jádra CPU

VPS, který působí pomale, zatímco jeho vlastní monitoring ukazuje nevytížený procesor, je nejčastěji popisovaný příznak. Umožňuje to kontejnerová virtualizace. Souboj o zdroje probíhá o vrstvu níž, než kam host vidí, takže jeho vlastní metriky nic špatného neukazují.

Mechanismem je sama nízká režie. Kontejner stojí hostitele mnohem méně než plnohodnotný virtuální stroj, takže se jich na stejný hardware vejde víc. Takovou hustotu je levné vytvořit a zevnitř hosta těžké odhalit, což přeprodej na OpenVZ strukturálně usnadňuje víc než na KVM. KVM poskytovateli nezabrání hostitele napěchovat. Vyhrazuje ale skutečnou paměť a skutečné podíly CPU na hosta, což pěchování dává aritmetický strop. Diagnostická stránka má vlastní návod na to, jak poznat, že váš poskytovatel přeprodává.

I paměť se chová jinak. Na OpenVZ nemůžete použít diskový swap jako dodatečnou paměť, takže číslo RAM na stránce tarifu je zeď, ne svah. Host na KVM se pod tlakem paměti zpomalí. Kontejneru na OpenVZ se pod tlakem paměti zabíjejí procesy.

Má to i důsledek pro izolaci a právě ten lidé podceňují nejvíc. Paměť kontejneru je z hostitele adresovatelná způsobem, jakým paměť hosta na KVM není. Šifrování disku uvnitř hosta vás pořád chrání před ukradeným diskem. Neochrání ale klíče běžícího kontejneru před strojem, který ho provozuje. Pokud do vašeho modelu hrozeb patří provozovatel hostitele, sdílené jádro je špatný základ. Žádná konfigurace uvnitř hosta to nezmění.

Klíčový poznatek: totéž číslo na stránce tarifu je podle typu jiným slibem. U KVM je to příděl. U OpenVZ je to strop, o který se dělíte.

Kde OpenVZ pořád dává smysl a kam směřuje

Pokud provozujete statický web nebo LAMP stack s malým provozem, možná se schopností, které OpenVZ omezuje, nikdy nedotknete. Žádný Windows, žádné vlastní jádro, žádný modul načítaný hostem a žádný produkční Docker. Pro takto úzkou zátěž dobře provozovaný kontejner OpenVZ pořád stačí.

Životní cyklus si žádá víc pozornosti než před deseti lety. OpenVZ 7 staví na jaderné větvi RHEL 7, verzi 3.10. Samotné číslo verze nedokazuje, že udržovanému podnikovému jádru chybí bezpečnostní opravy, protože dodavatelé záplaty zpětně portují. Znamená to ale, že byste měli ověřit kompatibilitu se softwarem, který očekává novější jaderná rozhraní.

The open-source OpenVZ project and the commercial Virtuozzo product are on separate tracks, and the commercial one has published dates. Virtuozzo Hybrid Server 7 reached end of maintenance in July 2024 and is listed for end of life in December 2027 in the oficiální politice životního cyklu.

Dnes fungující web na OpenVZ to nerozbije. Dělá to ale z migračního plánu poskytovatele důležitou věc, ještě než mu svěříte novou dlouhodobou zátěž. Zeptejte se, jaká verze OpenVZ nebo Virtuozzo běží, jak se doručují bezpečnostní opravy a jaká migrační cesta je k dispozici.

Pokud stránka tarifu typ virtualizace neuvádí, zeptejte se podpory, místo abyste jej odvozovali z ceny. Odpověď se vyplatí mít písemně.

Výběr podle zátěže

Rozhodovací schéma, které začíná tím, co vaše zátěž vyžaduje. Potřeba Windows, vlastního jádra nebo modulů načítaných hostem, případně produkčního Dockeru, vede ke KVM. Čistě linuxová zátěž bez potřeby samostatného jádra vede k LXC, pokud hostitele ovládáte vy nebo přijmete funkce jádra řízené poskytovatelem. Jednoduchá, běžná linuxová zátěž vede k OpenVZ jen tehdy, když poskytovatel doložil verzi platformy, kompatibilitu, podporu a migrační plány, jinak zpět ke KVM. Každá cesta končí u kontroly politiky zdrojů poskytovatele

Vyjděte z požadavku, ne z technologie.

Zvolte KVM, když zátěž potřebuje vlastní jádro

KVM je přímá volba, když potřebujete cokoli z následujícího:

  • Windows jako hostovaný operační systém
  • Vlastní jádro
  • Moduly jádra načítané hostem
  • Produkční Docker bez závislostí typu kontejner v kontejneru
  • Vnořená virtualizace, pokud ji poskytovatel zpřístupní
  • Swap a ladění jádra pod kontrolou hosta

Windows je rozhodující, protože kontejnery OpenVZ i LXC používají linuxové jádro hostitele. Volba mezi Linuxem a Windows pro samotnou aplikaci je samostatná otázka, která se týká softwarové kompatibility, správy a licencí. Podívejte se na srovnání VPS s Linuxem a Windows k tomuto rozhodnutí.

Zvolte LXC, když chcete efektivní linuxový systémový kontejner

LXC dává smysl, když je zátěž čistě linuxová, nepotřebuje samostatné jádro a těží z nízké režie nebo z rychlých změn spravovaných hostitelem. Zvlášť užitečný je, když hostitele Proxmox nebo LXC ovládáte sami.

U pronajatého LXC VPS ověřte podporu Dockeru, potřebná zařízení, bezpečnostní režim, chování záloh a to, zda lze zapnout pokročilé funkce.

Zvažte OpenVZ u jednoduché, ověřené linuxové zátěže

OpenVZ může být pro základní web, malý LAMP stack, službu DNS nebo podobně běžnou linuxovou zátěž stále přijatelný, když:

  • Poskytovatel dokumentuje verzi platformy.
  • Váš software podporuje dostupné jaderné prostředí.
  • Nepotřebujete Windows ani úpravy jádra.
  • Docker je buď zbytečný, nebo výslovně podporovaný.
  • Poskytovatel má věrohodný plán bezpečnosti a migrace.
  • Cena nebo provozní model vám dává skutečný důvod ho zvolit.

Nevybírejte ho jen proto, že staré srovnání tvrdí, že OpenVZ je vždy levnější. Porovnejte současný tarif, podporu, politiku zdrojů a možnosti migrace.

Pokud vaše odpověď dopadla na KVM, rozhoduje omezení, ne preference. Služba KVM VPS od Cloudzy nabootuje za 60 sekund na AMD EPYC s čistým NVMe a každá instance dostane vlastní jádro hosta. Moduly jádra se načítají, vlastní jádra bootují a podporováni jsou hosté s Linuxem i Windows. Docker najdete v marketplace pokud si ho nechcete instalovat sami.

Časté dotazy

Můžu na OpenVZ VPS spustit Docker?

Jen pokud poskytovatel nastavil kompatibilní prostředí OpenVZ 7. SolusVM dokumentuje podporu na dostatečně nových jádrech OpenVZ 7 se šablonami EZ nebo vhodnými vlastními, zatímco standardní starší šablony nefungují. Dokud poskytovatel přesné nastavení nepotvrdí, považujte Docker za nepodporovaný.

Zvládne OpenVZ spustit Windows?

Ne, jako kontejner OpenVZ ne. Kontejner sdílí linuxové jádro hostitele. KVM hosta s Windows spustit umí, protože virtuální stroj bootuje vlastní jádro operačního systému, i tak ale musí poskytovatel podporovat image, ISO a licenční cestu.

Je LXC totéž co Docker?

Ne. LXC se běžně používá pro systémové kontejnery, které připomínají odlehčené linuxové stroje s init systémem a více procesy. Docker je platforma aplikačních kontejnerů postavená kolem obrazů a jednotlivých služeb. Oba využívají funkce linuxového jádra, jako jsou jmenné prostory a cgroups, a proto se pojmy někdy pletou.

Co je LXC VPS?

LXC VPS je linuxový systémový kontejner provozovaný přes LXC nebo platformu postavenou na LXC, například Proxmox. Vypadá a chová se hodně jako malý linuxový server, ale místo vlastního jádra sdílí jádro hostitele. Díky tomu je odlehčený, zároveň je ale omezená kontrola na úrovni jádra.

Jak zjistím, jaký typ virtualizace poskytovatel používá?

Podívejte se na stránku tarifu nebo se zeptejte podpory. Uvnitř linuxové instance prostředí často rozpozná tento příkaz:

systemd-detect-virt

Může vrátit hodnoty jako kvm, openvz, nebo lxc. Detekce zevnitř hosta je užitečná, ale před nákupem zůstává lepším zdrojem písemná specifikace poskytovatele.

Zaručuje KVM vyhrazený CPU a RAM?

Ne. KVM podporuje přeplňování CPU i paměti. Poskytovatel může nabízet rezervované zdroje, sdílené zdroje nebo jejich kombinaci. Hledejte výslovné formulace jako vyhrazená RAM, připnutý CPU, rezervovaná vCPU nebo bez přeplňování, místo abyste předpokládali, že to zaručuje hypervizor.

Je KVM vždy lepší volba?

Ne. KVM je jediná volba pro Docker, vlastní jádra a Windows, ale u zátěže, která se ničeho z toho nedotkne, je praktický rozdíl téměř neviditelný.

Sdílet

Diskuse

Komentáře

Přihlaste se a zapojte se do diskuse.

Další z blogu

Pokračuj ve čtení.

Hotov k nasazení? Od 2,48 $/měs.

Nezávislý cloud od roku 2008. AMD EPYC, NVMe, 40 Gbps. Vrácení peněz do 14 dnů.