Ugrás a fő tartalomra
50% kedvezmény minden csomagra, korlátozott ideig. Már $2.48/mo
13 min left
Felhőarchitektúra és IT

KVM vs. OpenVZ vs. LXC: mit enged meg valójában a VPS virtualizációs típusa

J Szerző: Jonas 13 perc olvasás
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

Két VPS-csomag, ugyanazon az oldalon. Négy vCPU, 8 GB RAM, 160 GB tárhely, szinte azonos ár. Az egyiken KVM áll. A másikon OpenVZ. Egyik oldal sem magyarázza el, mit változtat ez a szó.

Azt változtatja meg, mit futtathat. A VPS virtualizációs típusai nem pusztán teljesítménnyel kapcsolatos lábjegyzetek. Eldöntik, hogy Ön uralja-e a kernelt, lehetséges-e a Windows, és működik-e a Docker a szolgáltató segítsége nélkül. A KVM, az OpenVZ és az LXC összevetése előbb képességkérdés, csak azután sebességkérdés.

Ez az útmutató a vásárlási döntés szempontjából legfontosabb három megnevezést tárgyalja. A Xen, a VMware, a Hyper-V és más virtualizációs platformok is léteznek, de kívül esnek ezen a hármas összehasonlításon.

Röviden

  • KVM minden VPS-nek saját vendégkernelt ad. A Docker rendesen fut, a Windows technikailag lehetséges, és általában betölthet kernelmodulokat vagy indíthat egyedi kernelt. A KVM önmagában viszont nem garantál dedikált CPU-t vagy RAM-ot; az erőforrás-vállalások továbbra is a szolgáltatótól és a csomagtól függenek.
  • OpenVZ a VPS-csomagok általában a gazdakernelt megosztó Linux-konténerek. A Docker OpenVZ 7 alatt csak akkor futhat, ha a szolgáltató kompatibilis kernelt és sablonkonfigurációt használ. A gazdakernelt nem cserélheti le, a RAM-on túli memóriát pedig a szolgáltató által vezérelt VSwap kezeli, nem a vendég által kezelt szokásos lemezes swap.
  • LXC szintén megosztja a gazdakernelt, de a fő Linux-kernel elszigetelési funkcióira épül. A Docker futhat, ha a gazdagép engedélyezi a szükséges funkciókat, bár a Proxmox azt ajánlja, hogy a maximális elszigetelést és élő migrációt igénylő terheléseknél a konténereket QEMU virtuális gépbe ágyazzuk.
  • A konténerek méretét általában könnyebb futás közben módosítani. A KVM is támogathatja a CPU és a memória hot-plugot, ezért a "KVM mindig újraindítást igényel" nem megbízható vásárlási szabály. Kérdezze meg a szolgáltatót, mit támogat valójában a platformja.
  • Egy statikus oldalnál vagy egy kis LAMP-stacknél, amelynek soha nincs szüksége Dockerre, Windowsra vagy kernelszintű testreszabásra, a gyakorlati különbség csekély lehet. Az elszigetelés, az életciklus és az erőforrás-politika azonban továbbra is eltérhet.

Az az egyetlen különbség, amelyből az összes többi következik

Kétpaneles ábra. Balra külön vendégkernelek: három virtuális gép, mindegyik saját vendég operációs rendszerrel és vendégkernellel, egy KVM/QEMU virtualizációs rétegen és fizikai szerverhardveren, ami lehetővé teszi a Linuxot vagy a Windowst, az egyedi kernelt, a vendégkernel-modulokat, a vendég által vezérelt swapet és az erősebb elszigetelést. Jobbra közös gazdakernel: az OpenVZ szolgáltatói sablonjai, valamint az LXC névterei és cgroupjai egyaránt egyetlen gazda Linux-kernelre mutatnak, ami a vendéget kizárólag Linuxra korlátozza, egyedi kernel nélkül, gazda által vezérelt modulokkal, szolgáltatói memóriapolitikával és szolgáltatói kernelbeállításokkal

A KVM a gazdagépen futó minden VPS-nek saját vendégkernelt ad. Az OpenVZ- és LXC-konténerek a gazdagép által elindított kernelt használják.

A KVM teljes körű virtualizációs megoldás x86-os hardverhez virtualizációs kiterjesztésekkel. A 2.6.20-as verziótól bekerült a fő Linux-kernelbe. Minden vendég virtuális hardvert lát, és saját operációs rendszert és kernelt indít.

A konténeres típusok másképp működnek. Az LXC egy felhasználói téri felület a Linux-kernel elszigetelési funkcióihoz, köztük a névterek, a cgroupok, a capabilities, a seccomp és a biztonsági profilok. Célja, hogy a szokásos Linux-telepítéshez közeli környezetet adjon anélkül, hogy külön kernelt indítana.

Az OpenVZ-konténer ugyanazt az általános, megosztott kerneles modellt követi, bár az OpenVZ saját platformot és saját kernelréteget használ. Az OpenVZ 7 konténereket és KVM virtuális gépeket is tud kezelni, de ha egy kereskedelmi VPS-csomagon "OpenVZ" szerepel, általában a konténeres típust adják el.

Az alábbi képességbeli különbségek mind ebből következnek. Egy kernelmodult olyan kernelbe kell betölteni, amelyet Ön irányít. Egy másik operációs rendszerhez másik kernel kell. A Dockernek kernelszintű névterekre van szüksége, amelyeknek ott kell rendelkezésre állniuk, ahol maga a kernel van. Ennek a határnak a KVM-oldalán a hipervizorréteg olyan architektúrát követ, amelyet általában így osztanak fel: 1-es és 2-es típusú hipervizorok.

Az LXC gyakran bukkan fel Proxmox-környezetekben, köztük saját kezelésű kiszolgálókon és egyes tárhelyplatformokon. Hogy be tudja-e kapcsolni a fejlett LXC-funkciókat, attól függ, ki felügyeli az adott gazdagépet.

Mit futtathat az egyes típusokkal

A KVM, az OpenVZ-konténerek és az LXC-konténerek képességeinek összevetése a Docker, az egyedi kernel, a vendég által betöltött modulok, a Windows vendég, a VPN-hálózat, a swap vezérlése, az élő átméretezés és a dedikált erőforrás-garancia mentén, azzal a megjegyzéssel, hogy a virtualizáció típusa a képességeket, a szolgáltató szabályzata pedig az erőforrás-garanciákat határozza meg

A vásárlást meghatározó szempontok: a kernel feletti kontroll, a vendég operációs rendszer támogatása, a Docker-kompatibilitás, a memória viselkedése, az átméretezés és az erőforrás-politika.

KépességKVMOpenVZLXC
DockerIgen, natívanFeltételes: csak OpenVZ 7, és a szolgáltatónak EZ sablont vagy megfelelő egyedi sablont kell használnia a szükséges gazdakernel-funkciókkal együttFeltételes: a gazdagépnek engedélyeznie kell a beágyazást és a keyctl
Egyedi kernel vagy betölthető modulokÁltalában igenNem, a gazdakernelhez kötveNem, megosztja a gazdakernelt
Windows vendég operációs rendszerkéntIgen, ha a szolgáltató támogatja a lemezképet és a licencelési utatNem, csak LinuxNem, csak Linux
VPN-kernelmodulok (WireGuard, OpenVPN)A vendég vezérliSzolgáltatófüggő: a TUN/TAP-nak elérhetőnek kell lennieSzolgáltatófüggő: a gazdagépen engedélyezett kernelfunkcióktól függ
A swap vezérléseA vendég vezérliA gazdagép által kezelt VSwap a szokásos lemezes swap helyettGazdagép-szabályzat, modern cgroup v2
Erőforrás-átméretezés menet közben, újraindítás nélkülPlatformfüggő, a CPU és a memória hot-plugja lehetségesGyakran lehetségesGyakran lehetséges
Dedikált erőforrás garanciájaNem eleve adott, a szolgáltató szabályzata döntNem eleve adott, és a konténersűrűség megkönnyíti a túlértékesítéstNem eleve adott

Melyiket válassza? A KVM a legtisztább válasz, ha Windowsra, egyedi kernelre, a vendég által betöltött modulokra vagy kiszámítható Docker-gazdagépre van szüksége. Az OpenVZ és az LXC hatékony Linux-környezet lehet, de a kernelszintű döntéseket a szolgáltatóra hagyják.

Ez képességtérkép, nem teljesítménymérés. Semmit nem mond a tároló késleltetéséről, a hálózat minőségéről, a CPU generációjáról, a gazdagép kihasználtságáról vagy a szolgáltató erőforrás-kiosztási szabályzatáról. Két szolgáltató ugyanazzal a virtualizációs típussal nagyon eltérő gépeket adhat.

A vevők a feltételes celláknál veszítik el az időt. Egyszer olyan konténeres VPS-en állítottam be VPN-t, ahol a szükséges hálózati funkció a gazdagép oldalán nem volt elérhetővé téve. Az interfész nem jött fel, és a javításhoz támogatási jegy kellett, nem pedig konfigurációmódosítás a vendégen belül. Konténeres csomagnál kérdezze meg, hogy a szolgáltató pontosan azt az eszközt vagy kernelfunkciót elérhetővé teszi-e, amelyre a VPN-nek szüksége van. KVM esetén ezt rendszerint Ön szabályozza a vendégen belül.

Miért a Docker az a kérdés, amely a legtöbb vásárlást eldönti

Háromoszlopos folyamatábra a Docker-útvonalak összevetéséhez. KVM: Linux vendég, vendégkernel, Docker Engine, konténerek, mindez a felhasználó felügyelete alatt. OpenVZ: OpenVZ 7, kompatibilis gazdakernel, EZ vagy megfelelő egyedi sablon, majd a szükséges gazdagép-funkciók, mielőtt a Docker elindulna, mindez a szolgáltató felügyelete alatt, a régi sablonokkal és a nem támogatott gazdagép-konfigurációval mint hibaágakkal. LXC: rendszerkonténer, a gazdagép által engedélyezett beágyazás, keyctl, Docker Engine, alkalmazáskonténerek, a gazdagép rendszergazdájának felügyelete alatt, azzal a megjegyzéssel, hogy éles Docker-üzemhez általában virtuális gép ajánlott

A konténeres VPS és a KVM VPS összevetése abban a pillanatban megszűnik elvont kérdés lenni, amint a Docker megjelenik a követelmények között. Maga a Docker kernel-névtereket, cgroupokat, hálózatot és tárolóillesztőket használ. KVM alatt ezek a funkciók az Ön által irányított vendégkernelhez tartoznak. OpenVZ vagy LXC alatt végső soron a gazdagéptől függenek.

Docker OpenVZ alatt

A Docker támogatása OpenVZ alatt olyan kiszolgálási döntés, amelyet Ön felett hoznak meg. Egy SolusVM támogatási cikk azt írja, hogy a Docker egy adott 3.10-es kernelkiadástól kezdve futhat OpenVZ 7 alatt, de azt is közli, hogy a Docker nem működik a szokásos, régi típusú, előre elkészített sablonokkal. A konténernek EZ sablont vagy megfelelő egyedi sablont kell használnia. Ugyanez a cikk kizárja a CentOS 8 vendégeket.

Működik tehát a Docker OpenVZ alatt? Néha. A szolgáltatónak kompatibilis OpenVZ 7 kernel és megfelelő sablonút köré kellett építenie a szolgáltatást. Ha a csomag oldala ezt nem mondja ki egyértelműen, vásárlás előtt kérdezze meg a támogatást, és kérje írásban a választ.

Ha a gazdagép konfigurációja nem kompatibilis, a Docker kapcsolóinak módosítása a VPS-en belül nem oldja meg a valódi problémát. A szolgáltatónak kell megváltoztatnia a konténer konfigurációját, vagy át kell tennie Önt másik virtualizációs típusra.

Docker LXC alatt

A Docker futhat LXC-n belül, ha a gazdagép elérhetővé teszi a szükséges funkciókat. Proxmoxban ide tartozik jellemzően a konténerbeágyazás és a keyctl a jogosultság nélküli konténerekhez.

A fontosabb vásárlási jelzés a platform gazdájának ajánlása. A Proxmox dokumentációja szerint a konténerek Proxmox QEMU virtuális gépbe ágyazása továbbra is ajánlott gyakorlat azoknál a felhasználási eseteknél, amelyek maximális elszigetelést és élő migrációt kívánnak, ahelyett hogy közvetlenül egy LXC rendszerkonténerben futnának.

Ha Ön felügyeli az LXC gazdagépet, mérlegelheti ezt a kompromisszumot, és saját ütemében tesztelheti a frissítéseket. Ha LXC VPS-t bérel, a kernelt, a biztonsági profilt és a fejlett funkciókapcsolókat a szolgáltató felügyeli. Erősíttesse meg a támogatott konfigurációt, ahelyett hogy feltételezné: elég a konténeren belüli root hozzáférés.

Docker KVM alatt

A Docker rendszerint működik, mert a Linux vendég maga vezérli a saját kernelkörnyezetét. A vendég fölött nincs LXC-beágyazási kapcsoló és nincs OpenVZ-sablonkövetelmény. Továbbra is szükség van támogatott Linux-disztribúcióra, kompatibilis kernelre, valamint elegendő memóriára és tárhelyre a terheléshez.

A vendégkernel birtoklása azzal is jár, hogy karban kell tartani. Nem menedzselt VPS-en a frissítések, a tűzfalszabályok, a Docker biztonsága és a mentések továbbra is az Ön felelőssége.

Fő tanulság: A Docker nem teszi lehetetlenné az OpenVZ-t vagy az LXC-t, de a szolgáltató konfigurációját az alkalmazás megbízhatóságának részévé teszi. Bérelt, éles Docker-gazdagép esetén a KVM megszünteti ezt a többletfüggőséget.

Vajon a "4 vCPU" négy dedikált CPU-magot jelent-e

A leggyakrabban leírt tünet az a VPS, amely lassúnak érződik, miközben a saját monitorozása tétlen processzort mutat. Ezt a konténeres virtualizáció teszi lehetővé. Az erőforrás-verseny egy réteggel az alatt zajlik, ameddig a vendég ellát, ezért a saját mérőszámai semmi rendellenest nem jeleznek.

Maga a csekély többletterhelés a mechanizmus. Egy konténer sokkal kevesebbe kerül a gazdagépnek, mint egy teljes virtuális gép, így ugyanarra a hardverre több fér el. Ezt a sűrűséget olcsó előállítani és a vendégen belülről nehéz észrevenni, ami szerkezetileg könnyebbé teszi a túlértékesítést OpenVZ alatt, mint KVM alatt. A KVM nem akadályozza meg a szolgáltatót abban, hogy telezsúfoljon egy gazdagépet. Vendégenként viszont valódi memóriát és valódi CPU-részesedést köt le, ami számtani felső korlátot szab a zsúfolásnak. A diagnosztikai oldalnak külön leírása van arról, hogyan állapítható meg, hogy a szolgáltató túlértékesít-e.

A memória is másként viselkedik. OpenVZ alatt nem használhatja a lemezes swapet további memóriaként, így a csomag oldalán szereplő RAM-érték fal, nem pedig lejtő. Egy KVM vendég memórianyomás alatt lelassul. Egy OpenVZ-konténernél memórianyomás alatt folyamatokat lőnek ki.

Van egy elszigetelési következmény is, és épp ezt becsülik alá a legtöbben. Egy konténer memóriája a gazdagépről megcímezhető, egy KVM vendégé nem. A vendégen belüli lemeztitkosítás továbbra is véd az ellopott lemez ellen. Egy futó konténer kulcsait viszont nem védi meg attól a géptől, amelyik futtatja. Ha a fenyegetésmodelljébe beletartozik a gazdagép üzemeltetője, a megosztott kernel rossz alap. Ezen a vendégen belüli semmilyen beállítás nem változtat.

Fő tanulság: ugyanaz a szám a csomag oldalán típusonként más ígéretet jelent. KVM-en kiosztás. OpenVZ-n olyan plafon, amelyen osztozik.

Hol van még értelme az OpenVZ-nek, és merre tart

Ha statikus oldalt vagy kis forgalmú LAMP-stacket üzemeltet, talán soha nem érinti azokat a képességeket, amelyeket az OpenVZ korlátoz. Nincs Windows, nincs egyedi kernel, nincs vendég által betöltött modul, és nincs éles Docker-igény. Ilyen szűk terhelésre egy jól üzemeltetett OpenVZ-konténer még mindig megteszi.

Az életciklus ma több figyelmet kíván, mint egy évtizede. Az OpenVZ 7 a RHEL 7 kernelágára, a 3.10-es verzióra épül. A verziószám önmagában nem bizonyítja, hogy egy karbantartott vállalati kernelből hiányoznak a biztonsági javítások, hiszen a gyártók visszaportolják a foltokat. Azt viszont jelenti, hogy érdemes ellenőrizni a kompatibilitást olyan szoftverekkel, amelyek újabb kernelfelületeket várnak.

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 hivatalos életciklus-szabályzatban.

Ez ma nem töri el a működő OpenVZ-oldalt. Azt viszont fontossá teszi, hogy ismerje a szolgáltató migrációs tervét, mielőtt új, hosszú életű terhelést bíz rá. Kérdezze meg, melyik OpenVZ- vagy Virtuozzo-verzió fut, hogyan érkeznek a biztonsági javítások, és milyen migrációs út áll rendelkezésre.

Ha egy csomag oldala nem nevezi meg a virtualizáció típusát, kérdezze meg a támogatást, ahelyett hogy az árból következtetne rá. A választ érdemes írásban megőrizni.

Választás a terhelés alapján

Döntési folyamatábra, amely abból indul ki, mit követel a terhelése. A Windows, az egyedi kernel vagy a vendég által betöltött modulok igénye, illetve az éles Docker a KVM felé vezet. A csak Linuxot használó, külön kernelt nem igénylő terhelés az LXC felé vezet, ha Ön felügyeli a gazdagépet, vagy elfogadja a szolgáltató által vezérelt kernelfunkciókat. Az egyszerű, hagyományos Linux-terhelés csak akkor vezet az OpenVZ felé, ha a szolgáltató igazolta a platformverziót, a kompatibilitást, a támogatást és a migrációs terveket, egyébként vissza a KVM-hez. Minden útvonal a szolgáltató erőforrás-szabályzatának ellenőrzésével zárul

A követelményből induljon ki, ne a technológiából.

Válassza a KVM-et, ha a terhelésnek saját kernelre van szüksége

A KVM a kézenfekvő választás, ha bármelyikre szüksége van az alábbiak közül:

  • Windows mint vendég operációs rendszer
  • Egyedi kernel
  • A vendég által betöltött kernelmodulok
  • Éles Docker konténer a konténerben típusú függőségek nélkül
  • Beágyazott virtualizáció, ha a szolgáltató elérhetővé teszi
  • A vendég által vezérelt swap és kernelhangolás

A Windows dönt, mert az OpenVZ- és az LXC-konténerek egyaránt Linux gazdakernelt használnak. Az, hogy magához az alkalmazáshoz Linuxot vagy Windowst választ, külön kérdés: szoftverkompatibilitásról, üzemeltetésről és licencelésről szól. Lásd a Linux és Windows VPS összehasonlítását ehhez a döntéshez.

Válassza az LXC-t, ha hatékony Linux rendszerkonténert szeretne

Az LXC ésszerű, ha a terhelés kizárólag Linux, nincs szüksége külön kernelre, és hasznot húz a kis többletterhelésből vagy a gyors, gazdagép által kezelt változtatásokból. Különösen akkor hasznos, ha a Proxmox- vagy LXC-gazdagépet Ön maga felügyeli.

Bérelt LXC VPS esetén ellenőrizze a Docker támogatását, a szükséges eszközöket, a biztonsági módot, a mentések működését, és azt, hogy engedélyezhetők-e a fejlett funkciók.

Fontolja meg az OpenVZ-t egyszerű, ellenőrzött Linux-terheléshez

Az OpenVZ továbbra is elfogadható lehet egyszerű weboldalhoz, kis LAMP-stackhez, DNS-szolgáltatáshoz vagy hasonlóan hagyományos Linux-terheléshez, ha:

  • A szolgáltató dokumentálja a platform verzióját.
  • A szoftvere támogatja az elérhető kernelkörnyezetet.
  • Nincs szüksége Windowsra vagy kerneltestreszabásra.
  • A Docker vagy szükségtelen, vagy kifejezetten támogatott.
  • A szolgáltatónak hihető biztonsági és migrációs terve van.
  • Az ár vagy az üzemeltetési modell valódi okot ad rá, hogy ezt válassza.

Ne csupán azért válassza, mert egy régi összehasonlítás szerint az OpenVZ mindig olcsóbb. Vesse össze az aktuális csomagot, a támogatást, az erőforrás-szabályzatot és a migrációs lehetőségeket.

Ha a válasza a KVM-re esett, akkor a korlát dönt, nem az ízlés. A Cloudzy KVM VPS 60 másodperc alatt indul AMD EPYC alapon, tiszta NVMe-vel, és minden példány saját vendégkernelt kap. A kernelmodulok betöltődnek, az egyedi kernelek elindulnak, és Linux és Windows vendég egyaránt támogatott. A Docker elérhető a marketplace-en ha inkább nem maga telepítené.

Gyakran ismételt kérdések

Futtathatok Dockert OpenVZ VPS-en?

Csak akkor, ha a szolgáltató kompatibilis OpenVZ 7 környezetet állított be. A SolusVM kellően friss OpenVZ 7 kerneleken, EZ vagy megfelelő egyedi sablonokkal dokumentálja a támogatást, a szokásos régi sablonok viszont nem működnek. Amíg a szolgáltató nem erősíti meg a pontos beállítást, tekintse a Dockert nem támogatottnak.

Futtathat az OpenVZ Windowst?

Nem, OpenVZ-konténerként nem. A konténer a gazdagép Linux-kernelét osztja meg. A KVM tud Windows vendéget futtatni, mert a virtuális gép saját operációsrendszer-kernelt indít, ám a szolgáltatónak akkor is támogatnia kell a lemezképet, az ISO-t és a licencelési utat.

Az LXC ugyanaz, mint a Docker?

Nem. Az LXC-t jellemzően rendszerkonténerekhez használják, amelyek könnyű Linux-gépekre hasonlítanak init rendszerrel és több folyamattal. A Docker alkalmazáskonténer-platform, amely lemezképek és önálló szolgáltatások köré épül. Mindkettő olyan Linux-kernelfunkciókat használ, mint a névterek és a cgroupok, ezért keverik néha a két fogalmat.

Mi az az LXC VPS?

Az LXC VPS egy Linux rendszerkonténer, amelyet LXC vagy egy LXC-alapú platform, például a Proxmox szolgál ki. Nagyon úgy néz ki és úgy viselkedik, mint egy kis Linux-szerver, de a gazdakernelt osztja meg ahelyett, hogy sajátot indítana. Ettől könnyűsúlyú, ugyanakkor korlátozott a kernelszintű irányítás.

Honnan tudom, melyik virtualizációs típust használja a szolgáltató?

Nézze meg a csomag oldalát, vagy kérdezze a támogatást. Egy Linux-példányon belül ez a parancs gyakran azonosítja a környezetet:

systemd-detect-virt

Olyan értékeket adhat vissza, mint kvm, openvz, vagy lxc. A vendégen belüli felismerés hasznos, de vásárlás előtt továbbra is a szolgáltató írásos specifikációja a jobb forrás.

Garantál a KVM dedikált CPU-t és RAM-ot?

Nem. A KVM támogatja a CPU és a memória túlfoglalását. Egy szolgáltató kínálhat fenntartott erőforrásokat, megosztottakat vagy a kettő keverékét. Keressen kifejezett megfogalmazásokat, például dedikált RAM, rögzített CPU, fenntartott vCPU vagy nincs túlfoglalás, ahelyett hogy feltételezné: a hipervizor garantálja.

Mindig a KVM a jobb választás?

Nem. A KVM az egyetlen választás a Dockerhez, az egyedi kernelekhez és a Windowshoz, de olyan terhelésnél, amely ezek egyikét sem érinti, a gyakorlati különbség szinte észrevehetetlen.

Megosztás

Beszélgetés

Hozzászólások

Jelentkezzen be a beszélgetéshez.

Több a blogról

Folytassa az olvasást.

Készen áll a telepítésre? Már 2,48 $/hó-tól.

Független felhő 2008 óta. AMD EPYC, NVMe, 40 Gbps. 14 napos pénzvisszafizetési garancia.