GNU/Linux >> Znalost Linux >  >> Linux

Co je to linuxový kontejner a linuxový hypervizor?

Virtuální stroj (VM) je poměrně obecný termín pro mnoho virtualizačních technologií.

Existuje mnoho variant virtualizačních technologií, ale ty hlavní jsou:

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

qemu-kvm a VMWare jsou příklady toho prvního. Používají hypervizor ke správě virtuálních prostředí, ve kterých běží plný operační systém. Například na qemu-kvm můžete mít jeden virtuální počítač s FreeBSD, další s Windows a další s Linuxem.

Virtuální stroje vytvořené těmito technologiemi se k hostovi chovají jako izolované jednotlivé počítače. Ty mají virtuální CPU, RAM, NIC, grafiku atd., o kterých se host domnívá, že jsou pravým artiklem. Z tohoto důvodu lze na virtuální počítače nainstalovat mnoho různých operačních systémů, které fungují „z krabice“ bez nutnosti úprav.

I když je to velmi pohodlné, mnoho operačních systémů se nainstaluje bez velkého úsilí, má to nevýhodu v tom, že hypervizor musí simulovat veškerý hardware, což může věci zpomalit. Alternativou je paravirtualizovaný hardware, ve kterém je pro hosta vyvinuto nové virtuální zařízení a ovladač, který je navržen pro výkon ve virtuálním prostředí. qemu-kvm zadejte virtio řadu zařízení a ovladačů pro tento účel. Nevýhodou je, že musí být podporován hostující OS; ale pokud jsou podporovány, výhody výkonu jsou skvělé.

lxc je příkladem virtualizace na úrovni operačního systému neboli kontejnerů. V tomto systému je nainstalováno pouze jedno jádro - hostitelské jádro. Každý kontejner je jednoduše izolací uživatelských procesů. Například webový server (například apache ) je instalován v kontejneru. Pokud jde o webový server, jediným nainstalovaným serverem je on sám. V jiném kontejneru může být spuštěn FTP server. Tento FTP server si není vědom instalace webového serveru - pouze je vlastní. Jiný kontejner může obsahovat úplnou uživatelskou instalaci distribuce Linuxu (pokud je tato distribuce schopna běžet s jádrem hostitelského systému).

Při použití kontejnerů však neexistují žádné samostatné instalace operačního systému – pouze izolované instance uživatelských služeb. Z tohoto důvodu nemůžete instalovat různé platformy do kontejneru – žádný Windows na Linuxu.

Kontejnery se obvykle vytvářejí pomocí chroot . Tím se vytvoří samostatný soukromý kořenový adresář (/ ) pro proces, se kterým se má pracovat. Vytvořením mnoha individuálních soukromých kořenů běží procesy (webové servery nebo distribuce Linuxu atd.) ve vlastním izolovaném souborovém systému. Pokročilejší techniky, jako je cgroups může izolovat další zdroje, jako je síť a RAM.

Oba mají své klady a zápory a mnoho dlouhých debat o tom, co je nejlepší.

  • Kontejnery jsou lehčí v tom, že pro každý není nainstalován úplný operační systém; což je případ hypervizorů. Mohou tedy běžet na hardwaru nižších specifikací. Mohou však spouštět pouze hosty systému Linux (na hostitelích systému Linux). Protože sdílejí jádro, existuje také možnost, že kompromitovaný kontejner může ovlivnit jiný.
  • Hypervizory jsou bezpečnější a mohou provozovat různé operační systémy, protože v každém virtuálním počítači je nainstalován úplný operační systém a hosté o jiných virtuálních počítačích neví. To však využívá více zdrojů na hostiteli, který musí být relativně výkonný.

Kontejner je trochu jako chroot prostředí, kromě toho, že dosahuje úplnější izolace uživatelského prostoru. Neposkytuje skutečný virtuální počítač, ale virtuální operační systém. Virtuální počítače vytvářejí iluzi více strojů, v každém z nich může běžet skutečný, kompletní operační systém jako na holém kovu. "Kompletní operační systém" zde zahrnuje jádro. Některé virtuální počítače (např. QEMU) dokonce umožňují stimulaci různých druhů „holých kovových“ architektur.

Kontejnery místo toho vytvářejí iluzi několika jader, z nichž každé provozuje kompletní uživatelskou zemi. Můžete například spustit Debian v jednom kontejneru a Arch v jiném, takže perspektiva z kontejneru je v podstatě stejná jako u virtuálního počítače. Můžete však provozovat pouze uživatelskou zemi OS kompatibilní s jediným skutečným jádrem, v tomto případě Linuxem. To se liší od skutečných virtuálních počítačů, kde můžete provozovat nezávislé jádro a tedy jakýkoli operační systém.

Skutečné virtuální počítače jsou tedy z hlediska zdrojů dražší než kontejnery; pokud nepotřebujete různá jádra v každém VM, můžete také použít kontejner.

Existují další virtualizační systémy, které dělají něco podobného jako LXE, jako je openVZ, široce používaný prodejci VPS. OpenVZ VPS je nezávislý uživatel, který používá jádro svého hostitelského OS. To je důvod, proč takové VPS přicházejí v mnoha linuxových příchutích, ale nic jiného; musí být kompatibilní s hostitelským jádrem.

Virtualizace ve stylu OpenVZ a LXC se nazývá virtualizace na úrovni operačního systému .

Hypervizor je systém, který spravuje virtuální stroje, jako je VirtualBox, QEMU nebo Xen. Některé hypervizory, jako je Xen, běží na holém kovu a nevyžadují hostitelský OS (ačkoli mohou vyžadovat hostovaný OS, aby sloužil jako ovládací rozhraní). Jiné, jako VirtualBox a QEMU, běží uvnitř hostitelského OS. Některé, jako je QEMU, umožňují simulaci různých architektur strojů; jiné, jako je VirtualBox, ne (tj. architektura virtuálního počítače je vždy stejná jako skutečný hostitel). Simulace architektury vyžaduje více zdrojů, stejně jako skutečné virtuální počítače vyžadují více zdrojů než kontejnery.

Virtualizace ve stylu hypervizoru se nazývá virtualizace na úrovni platformy .


Linux
  1. Co jsou měkké a pevné odkazy v systému souborů Linux

  2. Co je vdso a vsyscall?

  3. Jaký je rozdíl mezi manuálovými stránkami 'hier(7)' a 'file-hierarchy(7)'?

  1. Co je to linuxový server a proč jej vaše firma potřebuje?

  2. Co je příkaz Chown v Linuxu a jak jej používat

  3. Co je Docker (a Linux kontejnery?)

  1. Jaká je aktuální úroveň běhu systému Linux?

  2. Jaký je účel souborů /etc/shadow a shadow cache v operačním systému Linux?

  3. Jak se naučit vnitřní části systému Linux