GNU/Linux >> Znalost Linux >  >> Linux

Co je to virtuální stroj a proč jej používat?

V budoucnu budeme moci používat tak dokonale zpracované systémy virtuální reality, aby byly téměř k nerozeznání od reality. Prostředí, která tam nejsou, ale můžete je vidět a cítit. I když tam sami ještě nejsme, v případě našich počítačů tam jsme. Virtualizační technologie vytváří tuto možnost pro naše počítače. To má různé aplikace a principy fungování a my se vám je pokusíme vysvětlit trochu podrobněji.

Virtuální stroj a jeho potřeba

Úvod

Provoz celého operačního systému tradičně vyžaduje sadu základního hardwaru, který má operační systém k dispozici. Chcete-li spustit více operačních systémů, lze také provést vícenásobné spouštění, ale v takovém případě nemůžete spustit dva operační systémy současně. Virtuální stroje nám poskytly možnost používat více než jeden operační systém současně na stejné sadě hardwaru .

V případě virtuálního stroje existuje několik zjevných bodů, které můžeme uvést. Stejně jako jsme začali tento článek, je to druh VR pro operační systémy. Virtuální počítače, které vytváříme, využívají „virtuální“ hardware. Hardware, který hostovaný operační systém používá, je stejně skutečný jako jakýkoli jiný, pokud jde o pochopení samotného operačního systému, ale operační systém je vytvořen pouze tak, aby se na něj díval tímto způsobem. RAM, úložiště a výkon procesoru používaný operačním systémem jsou využití pouze zlomků skutečného hardwaru. Veškerou tuto virtualizaci a správu provádí něco, čemu se říká hypervizor.

Hypervizor

Hypervizor je firmware, software nebo hardware, který je hlavní součástí virtuálního počítače. Ujasněme si zde trochu terminologie:systém, na který se virtuální počítače instalují, se nazývá hostitelský systém, a stroje nainstalované na virtuálních počítačích se nazývají systémy pro hosty . Hypervizor je vrstva, která spravuje všechny prostředky mezi virtuálními počítači a skutečným hardwarem systému (nebo operačním systémem, který je hostitelem hypervizoru). I když jsou operační systémy provozovány na virtuálním hardwaru, je úkolem hypervizora, aby to vypadalo, že operační systém má přístup ke skutečnému hardwaru.

Hypervizory poskytují stabilní nedobytnou hranici mezi různými operačními systémy provozovanými jako virtuální počítače. Hypervizor simuluje hardwarové komponenty pro VM, které jsou konfigurovány uživatelem. Hardware, který virtuální počítače využívají (prostřednictvím hypervizorů), jsou zlomky skutečného hardwaru systému. Nelze tedy překročit skutečné hardwarové limity. Pokud máte například 16 GB RAM, můžete ji rozdělit jako 8 GB mezi dva virtuální počítače.

Kritickým bodem je, že technologie, která umožňuje virtuální počítače:hypervizory; nevyžaduje žádný speciální hardware. Je to pouze nezbytná softwarová součást. Existují dva významné druhy hypervizorů:

Typ 2:Hostované hypervizory

Jsem si vědom toho, že demonstruji typ 2 před 1, ale existuje posloupnost. Hostované hypervizory zůstávají na aplikační úrovni. To by vám mohlo být známé, pokud jste někdy používali Oracle VM VirtualBox, VMWare nebo GNOME Boxy.

Toto je aplikace, která vám umožňuje nainstalovat OS jako virtuální stroj uvnitř vašeho OS (OS, ve kterém je samotná aplikace nainstalována). To je výrazně snadné nastavit a používat. Jediné, co musíte udělat, je nainstalovat aplikaci, která vám umožní vytvářet virtuální počítače, a získat obraz požadovaného OS. Můžete přímo určit, kolik RAM, místa na pevném disku atd. chcete virtuálnímu počítači povolit.

Používání hostovaného hypervizoru má významná pozitiva, zejména pro běžné uživatele, jako jsme my. Je tu však problém. Obvyklá struktura počítačového systému se řídí touto posloupností:

  • Fyzický hardware
  • Firmware
  • Ovladače
  • Operační systém
  • Aplikace

Když se trochu dostaneme do technických záležitostí, software, který používáme v počítačovém systému, má jiná „privilegia“. Pokud například povolíte jakémukoli softwarovému přístupu ke konfiguraci výkonu vašeho procesoru, může to snadno pokazit celý váš systém. Toto je špatná bezpečnostní praxe. Ve skutečnosti se stane, že jádro operačního systému začne interagovat s hardwarem. Pokud nějaká aplikace vyžaduje přístup k jakékoli hardwarové součásti, může poslat požadavek jádru a jádro poskytne vhodnou odpověď. Tyto požadavky se nazývají systémová volání nebo systémová volání .

Nyní se podíváme na případ virtuálního počítače na hostovaném hypervizoru. Například spustíte aplikaci v hostujícím OS. To odešle systémové volání do jádra hostujícího OS. To bude následně interpretováno a převedeno na jiné systémové volání hypervizorem, který nyní odešle toto systémové volání do jádra hostitelského OS (protože pamatujte, že hostovaný hypervizor je jen další aplikací pro hostitelský OS). Jádro hostitelského OS odešle odpověď hypervizoru, kterou je nyní třeba převést na odpovídající odpověď pro aplikaci v hostujícím OS. Fuj.

To vše znamená, že hostované hypervizory musí projít poměrně dlouhým procesem. Na většině moderního hardwaru to netrvá tak dlouho, jak se zdá, ale není to jako nativní rychlost a výkon. Řešením je hypervizor typu 1.

Typ 1:Bare Metal Hypervisor

Přímo k věci, holý kovový hypervizor sedí na vrchu vrstvy firmwaru/ovladače. To znamená, že může komunikovat s hardwarem přímo, stejně jako OS. Všechny požadované OS budou nainstalovány na horní část holého kovového hypervizoru a aplikace navrch toho. To přináší několik výhod. Všechny OS nainstalované na hypervisoru běží velmi dobře, téměř jako nativní OS, s minimálním zpožděním nebo zadrháváním. Pokud je hardware, na který se hypervizor instaluje, výkonný (jak tomu obvykle bývá u herních počítačů nebo serverů), bude schopen poměrně snadno spravovat více operačních systémů.

Některé běžné příklady holých kovových hypervizorů zahrnují VMWare ESXi, Microsoft Hyper-V, Citrix XenServer, Xen, Linux KVM atd.

Kontejnery

Kontejnery jsou trochu podobné virtuálním počítačům, ale je v nich docela velký rozdíl. Jak jsme viděli v případě hostovaných hypervizorů, virtuální počítače se používají k instalaci celého operačního systému a poté se aplikace instalují a používají nad těmito operačními systémy. Kontejner na druhou stranu sbalí kód aplikace, její závislosti, nástroje, knihovny, runtime a všechny další požadované věci a spustí právě tuto aplikaci ve virtuálním prostředí.

Obrázek zpřehlední hierarchii. Všimněte si, že kontejner je nainstalován nad OS a aplikace se pak spouštějí přímo uvnitř kontejneru. Uvnitř kontejneru není žádný operační systém, jako je tomu u virtuálních počítačů.

Použití

Takže jsme se již ponořili do detailů principů fungování virtuálních počítačů. Je čas zjistit, jak může být užitečný ve scénářích skutečného života.

Více pracovních stanic z jednoho systému

Prvním bodem a primárním prodejním bodem virtuálních počítačů je skutečnost, že na stejném počítači můžete používat více operačních systémů, které jsou od sebe navzájem odděleny. To otevírá neuvěřitelné možnosti. Pokud například potřebujete dvě pracovní stanice na stejném místě, můžete si koupit jeden výkonný systém, který je schopen provozovat dva samostatné systémy současně. To se ukáže jako skutečně velmi efektivní.

Toto má také široké použití. Pokud potřebujete aplikaci, která běží na jakémkoli OS, který nepoužíváte, nemusíte do počítače instalovat operační systém. Na svůj operační systém můžete nainstalovat hostovaný software hypervizoru a nainstalovat podporovaný operační systém. Je mnohem snazší se s tím vypořádat a udělat práci.

Maximální využití

Maximální využití zdrojů je důvodem, proč je virtualizace pro servery velmi oblíbená. Server je velmi, velmi výkonný počítač. Pro jeden operační systém je obtížné plně využít hardwarové prostředky. Řešení? Nainstalujte si holý hypervizor a spusťte několik operačních systémů, které společně využívají hardware jako celek.

Virtuální počítače tak využívají maximální využití zdrojů. Ale nemluvíme pouze o serverech. Pokud máte například výkonný herní počítač, můžete místo toho používat jeho hardware zcela, řekněme, pomocí jednoho OS jako primární pracovní stanice a jednoho jako NAS. Nebo možná významnější počet operačních systémů a úloh.

Účinnost energie

Protože nyní můžete provozovat dva systémy pomocí jednoho stroje místo dvou samostatných strojů pro dva různé systémy, ušetříte spoustu elektřiny a energie. Je to dobré pro váš účet za elektřinu; je to také nepochybně dobré pro životní prostředí.

Fyzický prostor/mobilita

Jeden stroj můžete používat pro více systémů místo různých zařízení, takže nyní přirozeně šetříte spoustu fyzického prostoru. To znamená, že pokud získáte jeden velmi výkonný stroj, můžete uspokojit požadavky více strojů, takže pokud budete muset přesunout infrastrukturu z jednoho místa na druhé, budete nyní muset přesunout méně fyzického hardwaru, než byste jinak tradičně museli .

Obnovení

To je šikovná funkce. Virtuální počítače mají vlastnost pořizování „snímků“. Protože je celý systém virtuální, virtuální počítače v určitých časových intervalech vytvářejí kopie svých vlastností, nastavení a dat. Takže pokud se váš systém v určitém okamžiku zkazí nebo poškodí, můžete se vrátit do jednoho ze stabilních stavů a ​​nebude naděláno mnoho škody.

Testovací oblast

Jako testovací základna se často používá VM (ve skutečnosti také kontejner). Jakékoli problémy, které můžete vytvořit ve virtuálním nastavení, nemohou poškodit skutečný hardware, a proto je ideálním místem pro testování nového softwaru (zejména firmwaru). Vývojáři často používají virtuální počítače také ke kontrole kompatibility s různými OS.

Závěr

Virtuální stroje nám poskytly mnoho vylepšení oproti našim starým metodám. Nyní můžeme provozovat systémy na menším prostoru, efektivněji a bezpečněji. Staly se snadným řešením pro použití softwaru, který není nativně podporován vaším operačním systémem. Virtuální počítače se staly rájem pro testovací účely – celkově skvělé pro osobní, profesionální a environmentální účely.

Doufáme, že tento článek byl pro vás informativní a užitečný.


Linux
  1. Linux – proč používáme Su – a nejen Su?

  2. Chroot „vězení“ – co to je a jak jej používat?

  3. Co zabilo můj proces a proč?

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

  2. Proč by se měl v Bash vyhnout eval a co bych měl místo toho použít?

  3. Proč používáme su – a nejen su?

  1. Co je příkaz cURL a jak jej používat?

  2. Jak na to:Co je Git a Github? Jak to mám používat a proč by mě to mělo zajímat?

  3. Kdy a proč bych měl používat Apt-get Update?