GNU/Linux >> Znalost Linux >  >> Linux

Úvod do virtualizace:Komplexní průvodce pro začátečníky

Virtualizace v dnešní době hraje zásadní roli. Od používání desktopů na spotřebitelské úrovni až po cloudové služby na podnikové úrovni existuje celá řada aplikací.

Tato příručka vám pomůže začít s virtualizací komplexním způsobem. To vám jako studentovi, inženýrovi nebo dokonce jako CTO poskytne dostatek základních znalostí, abyste porozuměli různým typům virtualizace a tomu, jak se dnes v průmyslu používá.

Toto je velký článek, takže mi dovolte shrnout, o čem v něm budu mluvit.

  • První část představuje hostitelský operační systém, virtuální stroje (VM) a hypervizory
  • Druhá část popisuje základní součásti virtualizace:CPU, RAM, síť a úložiště
  • Třetí část vrhá světlo na výhody virtualizace

Začněme!

Virtuální počítače, hostitelé a hypervizoři

Chcete-li lépe porozumět virtuálním strojům, hostitelům a hypervizorům, je nezbytné, abyste začali se základy hardwaru.

Nejprve potřebujete fyzický stroj/server, který obsahuje následující součásti tvořící celý systém:

  • Power Supply Unit (PSU)
  • Základní deska
  • Centrální procesorová jednotka (CPU)
  • Paměť s náhodným přístupem (RAM)
  • Karta síťového rozhraní (NIC)
  • Úložiště – Pevný disk (HDD) nebo SSD (Solid State Drive)

Všechny tyto komponenty jsou sestaveny dohromady, aby se synchronizovaly jako jedna výpočetní jednotka a stal se vaším vlastním osobním počítačem (PC) nebo serverem. Počkejte, osobní server zní zajímavě!

Co je operační systém (OS)?

Operační systém je systémový software, který funguje jako rozhraní mezi uživatelem a počítačem pro spouštění různých aplikací, s grafickým uživatelským rozhraním nebo bez něj. Jednou z těchto aplikací mohou být specializované virtualizační programy, jako je například VirtualBox.

Co je to hypervizor?

Hypervizor je systémový software, který funguje jako prostředník mezi počítačovým hardwarem a virtuálními stroji. Zodpovídá za efektivní alokaci a využití hardwarových prostředků, které mají používat příslušné virtuální stroje, které pracují samostatně na fyzickém hostiteli. Z tohoto důvodu se hypervizorům také říká správci virtuálních strojů.

Tento systémový software funguje jako rozhraní mezi uživatelem a počítačem s jediným účelem virtualizace, s grafickým uživatelským rozhraním nebo bez něj. Příkladem takového hypervizoru je VMware FXI.

Hypervizor se skládá ze tří hlavních modulů:

Dispečer — Představuje vstupní bod monitoru a přesměrovává instrukce vydávané instancí virtuálního stroje buď do modulů alokátorů nebo interpretů popsaných níže.

Alokátor — Kdykoli se virtuální stroj pokusí provést instrukci, která vede ke změně přidružených strojových prostředků, dispečer zavolá alokátor, který pak přidělí systémové prostředky, které mají být virtuálnímu stroji poskytnuty.

Tlumočník — Skládá se z interpretačních rutin, které se provádějí vždy, když virtuální stroj provádí privilegovanou instrukci. To je také vyvoláno dispečerem.

Musíte nainstalovat operační systém nebo hypervizor, který funguje jako rozhraní pro interakci s fyzickým hostitelským serverem/počítačem.

Předpokládejme, že je to Ubuntu Server, kde můžete hostovat nebo spouštět různé aplikace. Tyto aplikace na serveru běží uvnitř operačního systému.

Využitím hardwaru je může Ubuntu ovládat a množství zdrojů, ke kterým mají přístup.

Operační systém nebo hypervizor se tedy stává prostředníkem mezi aplikacemi a samotným hardwarem.

Co je virtuální počítač (VM)?

Virtuální počítač je software, který emuluje všechny funkce fyzického serveru a běží nad hostitelským operačním systémem nebo hypervizorem.

Proto nebudete spouštět aplikace přímo na fyzickém systému. Budou provozovány na virtuálních strojích, z nichž každý bude mít svůj vlastní nezávislý operační systém. Tímto způsobem mohou virtuální stroje provozovat různé operační systémy jednotlivě v rámci stejného fyzického systému.

Všechny tyto virtuální počítače mohou sdílet společnou sadu fyzického hardwaru a dokonce spolu interagovat přes virtuální síť, stejně jako fyzické počítače.

Můžete mít spoustu virtuálních strojů, každý s vlastním nezávislým operačním systémem, které sdílejí a využívají stejné fyzické komponenty, jak bylo zmíněno dříve.

Hypervizor nebo virtualizační software běžící na operačním systému je ve skutečnosti tím, co ovládá fyzické zdroje.

Hypervizor má přímý přístup k fyzickému hardwaru a řídí, ke kterým zdrojům mají virtuální stroje přístup.

To zahrnuje:

  • Kolik paměti (RAM) je přiděleno
  • Kolik fyzického přístupu k CPU získají
  • Jak přistupují ke své síti
  • Jak mají přístup ke svému úložišti

Vzhledem k tomu, že se více virtuálních strojů vytváří na softwaru pro virtualizaci OS (omezíme to na OSVS) nebo Hypervisoru, sdílejí také přesně stejnou sadu fyzických zdrojů.

Proto OSVS nebo Hypervisor řídí:

  • Jak jsou prostředky sdíleny s jednotlivými virtuálními stroji
  • Jak jsou prostředky prezentovány jednotlivým virtuálním počítačům

Typy hypervizorů

Pojďme se nyní podívat na typy hypervizorů a na to, jak se od sebe liší.

Hypervizor typu 1

Hypervizor, který lze nativně nainstalovat a spustit přímo na fyzickém hostiteli, se nazývá hypervizor typu 1.

Klíčové odkazy

  • Hypervizor typu 1 lze přímo nainstalovat na systém nebo fyzického hostitele.
  • Nevyžaduje, aby byl nejprve nainstalován nebo dostupný operační systém (OS), aby se mohl sám nasadit na server.
  • Přímý přístup k CPU, paměti, síti, fyzickému úložišti.
  • Využití hardwaru je efektivnější a poskytuje nejlepší výkon.
  • Lepší zabezpečení díky absenci jakékoli další vrstvy pro přístup k hardwaru.
  • Každý hypervizor typu 1 vždy vyžaduje vyhrazený fyzický stroj.
  • Mohou stát více a jsou vhodné více pro podniková řešení.
  • VMware ESXi, Citrix Hypervisor a Microsoft Hyper-V jsou některé příklady hypervizorů typu 1.

Hypervizor typu 2

Hypervizor, který nelze nativně nainstalovat a ke svému běhu na fyzickém hostiteli vyžaduje operační systém, se nazývá hypervizor typu 2.

Klíčové odkazy

  • Hypervizor typu 2 nelze přímo nainstalovat na prostý systém nebo fyzického hostitele.
  • Abyste se mohli nasadit, vyžaduje nejprve instalaci nebo dostupnost operačního systému.
  • Nepřímý přístup k CPU, paměti, síti, fyzickému úložišti.
  • Vzhledem k další vrstvě (OS) pro přístup ke zdrojům může být využití hardwaru méně efektivní a může mít zpoždění ve výkonu.
  • Potenciální bezpečnostní rizika kvůli dostupnosti hostitelského operačního systému.
  • Každý hypervizor typu 2 nevyžaduje vyhrazený fyzický počítač. Na jednom hostiteli jich může být mnoho.
  • Může stát méně a je vhodný více pro řešení pro malé firmy.
  • VMware Workstation Player, VMware Workstation Pro a VirtualBox jsou některé příklady hypervizorů typu 2.

Soubory virtuálního počítače a aktuální stav

Pojďme nyní porozumět souborům, které tvoří naše virtuální stroje, a tomu, jak využívají sdílené úložiště.

Virtuální stroj využívá paměť, CPU, síťový a úložný hardware našeho fyzického hostitele. Jak se to dělá?

Prostřednictvím hypervizoru.

Když virtuální stroj běží, má v paměti určité informace. Tyto informace jsou součástí aktuálního stavu virtuálního počítače.

Takže virtuální počítač je na hostiteli skutečně funkční. Kdykoli přehráváte video nebo otevřete webový prohlížeč na virtuálním počítači, tyto operace běhu probíhají v paměti virtuálního počítače. Ale všechny se ve skutečnosti vyskytují na fyzickém hostiteli. Toto je aktuální stav jakéhokoli virtuálního počítače.

Živý stav virtuálního stroje zpracovává všechna spuštění za běhu na CPU, a proto se to děje na hostiteli.

Když otevřete prohlížeč za účelem načtení webové stránky, šířka pásma sítě se projde přes NIC, která je také součástí fyzického hostitele. To vše je součástí živého stavu virtuálního počítače, který využívá úložné adaptéry k odesílání datového provozu do úložného zařízení. To se opět děje živě v reálném čase na hostiteli.

Virtuální počítač nemá žádné fyzické pevné disky. Pokud používáte Linux na virtuálním počítači, potřebuje schopnost číst a zapisovat data na az fyzického disku.

To znamená, že je nutný přístup k fyzickému disku. Virtuální počítač čte do az a běží na virtuálně přidělené jednotce. Ale operace jsou ve skutečnosti někde přesměrovány na fyzické úložné zařízení. Může to být přes síť Fibre Channel, ethernetovou síť nebo samotný místní disk – přímo v Hypervisoru nebo softwaru pro virtualizaci operačního systému.

Virtuální stroje musí používat sadu souborů pro správu virtualizace. Jeden z těchto souborů představuje virtuálně přidělenou jednotku nebo virtuální disk. Virtuální počítač potřebuje číst z virtuálního disku nebo na něj zapisovat prostřednictvím těchto souborů. Aby k tomu došlo, datový provoz bude proudit přes adaptér úložiště.

Ze zřejmých důvodů může existovat mnoho takových souborů odpovídajících jiným virtuálním strojům, které jsou uloženy na stejném fyzickém místě na pevném disku.

Pojďme si nyní promluvit o tom, jak se virtuální stroje vypínají a zálohují.

Aby to bylo možné, potřebuje virtuální počítač konfigurační informace, které se skládají především z aktuálního stavu:

  • Kolik paměti má VM získat?
  • Kolik CPU má dostat?
  • Jaká je velikost přiděleného disku?
  • Jak by virtuální počítač přistupoval k síti?

Všechny tyto informace jsou opět uloženy v souboru.

Dovolte mi uvést všechny typy úložiště souborů virtuálních strojů, aby byla zajištěna jejich plná funkčnost:

  • Statické nebo dynamické úložiště
  • Informace o konfiguraci
  • Informace systému BIOS
  • Pořízené snímky

Virtuální počítač tedy ukládá dva druhy stavů:

Živý stav

Živý stav je to, co se děje v reálném čase, což, jak jsem právě mluvil, může být:

  • Kolik aktuální paměti je využíváno
  • Kolik se využívá CPU
  • Jaké aktuální aplikace se používají
  • Jak je využívána nebo procházena šířka pásma sítě

Pokud fyzický hostitel nebo virtuální počítač v něm selže, všechny výše uvedené informace v reálném čase budou ztraceny. Je to podobné jako odpojení počítače.

Trvalý stav

Trvalý stav jsou soubory tohoto virtuálního počítače, které jsou trvale uloženy. To je možné prostřednictvím:

  • Ukládání souborů
  • Konfigurační soubory
  • Soubory snímků

Soubory související s trvalým stavem tvoří VM.

Stejně jako my lidé nemůžeme přežít bez správné výživy, i virtuální stroje potřebují mít správné a konzistentní přidělování zdrojů. Nedostatek těchto prostředků znamená, že virtuální stroje nebudou fungovat nejlépe.

Čtyři základní prvky, bez kterých virtuální počítače nemohou dosáhnout nejlepšího výkonu, jsou:

  • CPU
  • RAM
  • Síť
  • Úložiště

Virtualizace CPU

Jak virtuální počítač získá přístup k prostředkům CPU fyzického hostitele?

Fyzický hostitel má fyzický CPU. Řekněme například, že máme CPU se 4 fyzickými jádry. Nyní, pokud chcete alokovat 2 z těchto fyzických jader, když začnete vytvářet své virtuální stroje, budete alokovat 2 virtuální CPU. To znamená, že virtuální počítač by měl přístup ke 2 jádrům fyzického procesoru z hlavního CPU vytvořením virtuálního počítače se 2 virtuálními CPU.

Tato alokace však neznamená, že ostatní virtuální stroje nemohou tato jádra využít, což znamená, že mohu přiřadit všechna 4 jádra jinému virtuálnímu stroji. Z toho vyplývá, že tyto prostředky mohou být sdíleny všemi virtuálními stroji na hypervizoru nebo softwaru pro virtualizaci operačního systému.

V závislosti na typu zátěže byste měli přiřazovat jádra CPU na základě potřeby virtuálních strojů. Pokud je virtuální počítač v pořádku s 25% využitím CPU, můžete zbývající prostředky přiřadit jiným virtuálním počítačům, samozřejmě.

Proto se musíte vždy snažit, aby vaše virtuální stroje byly vždy správně nastaveny na základě požadavků aplikace, zejména pokud jde o prostředky CPU.

Virtualizace paměti

Pojďme nyní pochopit, jak jsou virtuální stroje schopny využívat paměťové zdroje hypervizoru.

Kolik paměti můžete přidělit virtuálnímu počítači, je opět založeno na fyzické paměti (RAM), kterou máte na svém fyzickém serveru.

Pokud má váš server například 8 GB paměti RAM, můžete přidělit 4 GB a spustit na svém virtuálním počítači plnohodnotnou plochu Ubuntu. Ubuntu Desktop si „myslí“, že má 4 GB fyzické paměti. Ale ve skutečnosti se stane, že tato přidělená paměť je mapována ze skutečných 8 GB samotné fyzické paměti.

Když virtuálnímu počítači přiřadíte 4 GB, nemůže použít více paměti, než je přidělené množství.

Stejně jako CPU to opět neznamená, že tyto 4 GB jsou vždy vyhrazeny pro VM. Pokud aplikace běžící na tomto virtuálním počítači v současné době nepotřebují tolik paměti, jiný virtuální počítač může použít stejný prostředek, jak a kdy je potřeba.

Když aplikace běží na virtuálním počítači, operační systém (na virtuálním počítači) alokuje paměť na základě své vlastní tabulky paměti, a když je na virtuálním počítači uzavřena, OS označí tyto stránky paměti jako volné. Ale protože si nikdy "neuvědomuje" přítomnost hypervizoru nebo virtualizačního softwaru, nikdy nebude informovat fyzický server o tomto zrušení přidělení.

Proto je úkolem hypervizoru nebo virtualizačního softwaru neustále nahlížet do operačního systému virtuálního počítače, sledovat tato alokace a čas od času přiřazovat nevyužité části paměti jiným virtuálním počítačům.

Na rozdíl od tohoto sdíleného aspektu alokace paměti mezi virtuálními stroji můžete také vynutit rezervaci paměti pro konkrétní virtuální počítače, aby využívaly určitou část fyzické paměti. To znamená, že ostatní virtuální počítače nemohou používat vyhrazenou paměť, i když ji virtuální počítač s rezervovanou pamětí nevyužívá. V obecné praxi je nejlepší se tomuto postupu vyhnout, protože sdílení paměti zajišťuje efektivní využití zdrojů na konci dne.

Můžete to vztáhnout ke sdíleným a dedikovaným serverům, které jsou poskytovány prostřednictvím Linode. Je hospodárnější sdílet servery v každodenní praxi a produkci správce systému.

Virtualizace sítě

Virtuální počítač Ubuntu běží na hostiteli na hypervizoru nebo virtualizačním softwaru. Tento virtuální počítač má to, co nazýváme virtuální NIC  V-NIC. To se rozšiřuje na kartu virtuálního síťového rozhraní.

Operační systém (Ubuntu) neví, že běží na virtuálním počítači. Očekává tedy, že uvidí veškerý stejný druh hardwaru, jaký by viděl, kdyby běžel na fyzickém serveru.

Pokud jde o virtualizaci sítě, musíte poskytnout svůj virtuální počítač, kartu virtuálního síťového rozhraní.

Ubuntu se ve skutečnosti chystá implementovat své ovladače pro kartu síťového rozhraní. Jako hostující operační systém nebude mít ponětí, že to ve skutečnosti není fyzická síťová karta.

Je to virtuální NIC, což je falešný hardware prezentovaný našemu virtuálnímu počítači, jako by byl skutečný. Pokud tedy máte fyzický server s fyzickou síťovou kartou, připojte svůj ethernetový kabel z ethernetového portu k fyzickému přepínači.

Pokud máte virtuální počítač s virtuálním NIC, připojíte jej k portu na virtuálním přepínači, podobně jako byste to udělali s fyzickým počítačem.

Proto v našem hypervizoru nebo virtualizačním softwaru budeme mít něco, co se nazývá virtuální přepínač. K tomuto virtuálnímu přepínači můžete připojit více virtuálních počítačů a mohou spolu komunikovat.

Dokud je umístíte na stejnou VLAN (virtuální místní síť), budou moci komunikovat prostřednictvím virtuálního přepínače stejně, jako by byly schopny komunikovat prostřednictvím jakéhokoli jiného typu fyzického přepínače.

Takže pokud máte jeden virtuální počítač připojený k virtuálnímu přepínači, můžete připojit druhý virtuální počítač. To umožňuje odesílání provozu z jednoho virtuálního počítače na druhý přímo v rámci tohoto virtuálního přepínače. Tento provoz nikdy nemusí opustit hostitele, pokud jsou tyto virtuální stroje ve stejné VLAN. Dokud jsou tyto virtuální počítače na stejné VLAN, mohou komunikovat a provoz nikdy nemusí procházet fyzickou sítí.

Zde je však důležitý bod. Část síťového provozu by musela procházet fyzickou sítí, a tak virtuální přepínač bude potřebovat uplink.

Stejně jako fyzický přepínač má uplinky na vyšší úroveň fyzického přepínače nebo fyzického routeru, náš virtuální přepínač také vyžaduje uplinky. Tyto uplinky jsou skutečné fyzické adaptéry na hostiteli. Tyto fyzické adaptéry se nazývají P-NIC nebo fyzické NIC nebo VM NIC.

Fyzická karta síťového rozhraní nebo NIC je vždy integrována do našich moderních základních desek na našich serverech:

Ale pokud chcete, můžete se také rozhodnout pro vyhrazenou síťovou kartu zapojenou do základní desky pro další síťové připojení:

Když vytvoříte hypervizor na hostiteli, tento hostitel má jednu nebo více karet síťového rozhraní, stejně jako jakýkoli jiný server.

Tyto karty fyzického síťového rozhraní na hostiteli se připojují k fyzickému přepínači a tento fyzický přepínač bude mít připojení ke směrovačům. Toto je způsob, jak dostat provoz na internet.

Prostřednictvím tohoto mechanismu se může také připojit k dalším fyzickým serverům, které jsou ve stejném datovém centru.

Virtuální stroje tedy mohou komunikovat se všemi těmito komponentami s nebo v rámci stejného fyzického serveru.

Pokud provoz musí skutečně opustit hostitele, aby mohl komunikovat mimo hostitele, aby zasáhl směrovač a dostal se do jiné VLAN nebo jiné sítě, bude tento provoz proudit z virtuálního počítače.

Prostřednictvím virtuálního přepínače se jeden z virtuálních přepínačů uplinkuje směrem k fyzické síti.

Když tento provoz dorazí na fyzický přepínač, vyhledá MAC tabulku (záznam jedinečných fyzických adres).

Poskytne příslušný port směrem k příslušnému cíli, kam má paket jít. Může směřovat k internetu nebo k fyzickému hostiteli ve vaší vlastní místní síti.

Tento mechanismus však zajišťuje schopnost všech vašich virtuálních strojů komunikovat se všemi zařízeními v mé fyzické síti. To je to, co dělá virtuální přepínač.

Základní myšlenkou je přimět hostující operační systém na virtuálním počítači, aby si „myslel“, že má fyzickou kartu síťového rozhraní. Takže do Ubuntu dodáte stejné ovladače a Ubuntu si bude myslet, že má skutečné hardwarové zařízení.

Když jsou datové pakety odeslány, provoz ve skutečnosti získává hypervizor, který jej nasměruje na příslušný virtuální přepínač podle pokynů.

Virtualizace úložiště

Nyní, když jste se dozvěděli o tom, jak virtuální počítače využívají CPU, paměť a síť, pojďme k poslednímu prostředku:úložiště.

Dovolte mi znovu zopakovat, že hostující operační systém netuší, že běží na virtuálním počítači. Virtuální počítač nemá vyhrazený fyzický hardware a zahrnuje úložný disk. Virtuální počítač nemá fyzický disk, který by mu byl vyhrazen.

Se sítí jsme měli virtuální NIC.

S virtualizací úložiště budeme mít virtuální řadič SCSI, pokud se zamyslíme nad tím, jak fyzický server pracuje s interními pevnými disky. Když operační systém potřebuje zapsat nějaký druh dat na disk, operační systém vygeneruje příkaz SCSI.

Pokud potřebuje načíst data z disku, vygeneruje příkaz SCSI a tento příkaz odešle do řadiče SCSI, který je propojen s fyzickými disky. To je způsob, jakým Ubuntu pracuje s úložištěm, neví, že zde běží na virtuálním počítači.

Musíme tedy zachovat tuto iluzi pro hostující operační systém také pro mechanismy úložiště.

Takže poskytnete Linuxu (běžícímu na VM) virtuální SCSI řadič. Bude emulovat, jako by na něm běžely skutečné fyzické disky.

Proto, když Ubuntu potřebuje provést nějaký příkaz úložiště, bude si myslet, že mám skutečný SCSI řadič.

Když je do řadiče SCSI odeslán příkaz úložiště, ve skutečnosti se stane, že je virtuální řadič SCSI (virtuální zařízení) přesměruje na hypervizor. Virtuální stroj odesílá tyto příkazy úložiště prostřednictvím svého virtuálního řadiče SCSI a dorazí k hypervisoru.

Hypervizor odtud určuje, co se stane s těmito příkazy úložiště. Pokud má virtuální počítač svůj vlastní soubor VMDK nebo virtuální disk na místním disku, jednoduše odešle tyto příkazy úložiště do tohoto souboru na vašem místním pevném disku.

Kromě této nejzákladnější funkce by to mohlo být také

  • úložné pole s optickými kanály
  • úložné pole iSCSI založené na Ethernetu
  • vláknový kanál přes Ethernet

Ale všechny fungují podobným způsobem.

Co by se lišilo, je ve skutečnosti síť.

Pokud hypervizor odešle příkaz úložiště do optického kanálu, tento příkaz úložiště projde touto sítí Fibre Channel, dokud nakonec nedorazí na virtuální disk.

Bez ohledu na hypervizor bude mít váš virtuální počítač virtuální disk.

Takto se příkazy SCSI dostanou z vašeho virtuálního počítače na váš virtuální disk, bez ohledu na to, kde se tento virtuální disk nachází.

Když virtuální stroj založený na Ubuntu generuje příkaz SCSI, odešle jej do virtuálního řadiče SCSI.

Hypervizor určí vhodné umístění pro tento virtuální disk a odešle jej adaptér úložiště a příkaz úložiště dorazí do úložiště dat.

Tyto změny procházení dat jsou ve skutečnosti zapsány do souboru, který obsahuje virtuální disk virtuálního počítače. Může to být .VMX, .VMDK nebo jakýkoli jiný typ virtuálního souboru.

Doufám, že jste již pochopili základy virtualizace sítí a úložiště. Dovolte mi zdůraznit výhody virtualizace a mobility a také to, jak můžete fyzické hostitele převést na virtuální stroje.

Výhody virtualizace

Doposud jsme mluvili o tom, jak virtualizace v podstatě funguje prostřednictvím různých režimů správy zdrojů. Pojďme si nyní promluvit o mnoha klíčových výhodách.

Konsolidace

Nejprve si promluvme o účinnosti.

Pokud porovnáte svou virtuální infrastrukturu s tělocvičnou a někteří z vás to možná již někdy zažili.

Pokud kolem 1. ledna navštěvujete posilovnu, v tělocvičně začíná být opravdu rušno.

Během běžné části roku by stačila tělocvična s přibližně 20 běžeckými pásy a 50 posilovacími stroji.

Ale pokud jste majitelem tělocvičny, víte, že v lednu tam bude dvakrát až třikrát tolik lidí a bylo by produktivnější ztrojnásobit velikost vašeho prostředí.

Když si všichni tito lidé uvědomí, že jo, možná je ve skutečnosti tolik nebaví cvičit, přestanou posilovnu používat.

Od nynějška můžete tělocvičnu zmenšit podle svých požadavků.

Nyní by to bylo také opravdu skvělé, kdybyste mohli udělat totéž s hardwarem vašeho virtuálního datového centra.

Když se zabýváte virtualizací, přivádí vás to k myšlence cloud computingu, kde existuje prodejce nebo poskytovatel služeb, jako je například Linode. S ním můžete roztočit spoustu dočasných virtuálních strojů na hardwaru někoho jiného a přizpůsobit to rušnému období roku pro své zákazníky.

Ke cloud computingu se ale bez předchozí virtualizace opravdu nedostanete. Toto je první krok na této cestě, kde se můžeme dostat do stavu, kterému říkáme elasticita, kdy může vaše infrastruktura rychle růst nebo se zmenšovat.

Virtualizace je stavebním kamenem k tomuto druhu flexibility. Poskytuje nám možnost konsolidovat pracovní zátěž.

Níže vidíme datové centrum fyzických serverů.

Pro nejlepší praxi by každý z těchto serverů neměl používat jediný operační systém.

Přemýšlejte o tom, o kolik více úloh byste mohli dosáhnout, kdybyste provozovali 20 až 30 instancí Linuxu na každém z těchto serverů namísto pouze jedné na server!

To je největší výhoda virtualizace. To je výhoda, která zpočátku vedla tuto inovaci k virtualizaci:konsolidace.

Účinnost

V níže uvedeném diagramu máte tři různé servery s různými rolemi, které jsou k dispozici jako jednotlivé fyzické systémy v našem prostředí:

Máte tiskový server, který využívá 20 procent všech zdrojů a totéž platí pro webový a databázový server.

Jedná se o fyzické servery, které ve skutečnosti nevyužívají všechny své zdroje. Když se nad tím zamyslíte, zaplatili jste za všechen ten hardware, a pokud používáte jen 20 procent, plýtváte 80 procenty.

Zapojením zdrojů do fyzického hostitele, který může provozovat pouze jeden operační systém, máte nyní dvě možnosti, jak tento problém vyřešit:

Můžete začít instalovat další aplikace na náš server a spustit více aplikací na stejném serveru. Pokud však potřebujete restartovat tiskový server, budete se starat o to, co dalšího na tomto tiskovém serveru běží?

Co dalšího můžete ovlivnit prováděním údržby na mém tiskovém serveru? Na stejném hardwaru bude existovat příliš mnoho vzájemně závislých případů použití a scénářů aplikací, což výrazně snižuje efektivitu.

Proto většinou skončíme pouze plýtváním zdrojů. Místo toho se můžete těchto fyzických serverů zbavit a konsolidovat tyto pracovní zátěže na hypervizoru:

Prostřednictvím této konsolidace nyní můžete na tomto hypervizoru spouštět více instancí operačního systému. Nyní můžete velmi snadno a efektivně maximalizovat, měnit velikost a dosáhnout sladkého bodu, který by mohl představovat 60 nebo 70 procent využití zdrojů.

Nyní tedy efektivně využíváte zdroje, které jste si zakoupili, ale nepřetěžujete je.

To je náš konečný cíl virtualizace:maximalizovat investice do vyrobeného hardwaru bez plýtvání dalším kapitálem na zdroje, které nebudou nikdy využity.

Mobilita

Další velkou výhodou virtualizace je mobilita.

Pokud si pamatujete, jak funguje virtualizace sítí a úložišť, zamyslete se nad scénářem zde, kde máte pole úložišť s optickými kanály. Uvažujme také, že jste právě investovali do nového úložného pole iSCSI.

Nyní řekněme, že máte své úložné pole Fibre Channel a chcete tento virtuální počítač a všechny jeho soubory přemístit do nového úložného zařízení iSCSI, které je v jiné síti.

Řekněme, že je v síti Ethernet. Nyní se můžete snadno přemístit pomocí hypervizoru nebo virtualizačního softwaru. Jak příkazy SCSI vycházejí z vašeho virtuálního počítače, přijímá je hypervizor. Když použijete jiný adaptér úložiště a přemístíte tyto soubory VMS do jiného pole úložiště, hypervizor bude vědět, že jste tuto změnu provedli.

Jednoduše by to přesměrovalo tyto příkazy úložiště do nového umístění a plusem je, že to můžete dokonce udělat bez jakéhokoli výpadku na vašem virtuálním počítači.

Podívejme se na jiný scénář.

Řekněme, že máte více hostitelů a nyní se rozhodnete vzít virtuální počítač s Linuxem a přemístit živý stav virtuálního počítače na jiného hostitele. To bude fungovat také, pokud se druhý hostitel bude moci připojit ke sdílenému úložišti. Váš virtuální počítač bude mít stále přístup ke svému virtuálnímu disku a všem ostatním důležitým souborům virtuálního počítače, které potřebuje.

Takto úložiště, virtualizace a sdílené úložiště pomáhají dosáhnout mobility. Můžete si vzít virtuální stroje, přesunout je na různé hostitele, přesunout jejich soubory z jednoho úložného systému do druhého bez jakéhokoli výpadku.

Je to všechno kvůli hypervizoru uprostřed, který se vkládá mezi virtuální stroj a hardware.

To je to, co je populárně známé jako decoupling. To znamená, že virtuální stroj nemá přímý vztah s žádným hardwarem. Můžete jej přesunout z jednoho fyzického serveru na druhý. Můžete jej také přesunout z jednoho úložného systému do druhého. Mezi virtuálním strojem a konkrétním hardwarem neexistuje žádný pevný vztah. Jsou odděleny v pravém slova smyslu.

Jak vidíte, mobilita je hlavní výhodou virtualizace.

Jiný způsob, jak se na to podívat:

Řekněme, že máte více hostitelů a na všech těchto hostitelích běží mnoho virtuálních strojů a pracovní zátěž není příliš vyvážená, jak byste si přáli.

Pokud na hostiteli jedna máte spuštěny tři virtuální počítače, možná budete chtít migrovat některé z těchto VMS na hostitele dva, abyste vyrovnali zátěž na těchto dvou hostitelích.

Chcete se ujistit, že využití zdrojů našich hostitelů je za všech okolností poměrně rovnoměrně využíváno.

Pokud má hostitel jedna opravdu málo paměti, můžete přesunout některé virtuální počítače na jiného hostitele a v ideálním případě byste to chtěli udělat bez jakéhokoli výpadku.

Můžete provést živou migraci a vzít běžící virtuální počítač a přesunout jej z jednoho fyzického serveru na druhý bez prostojů. To je jeden z důležitých důvodů, proč byste mohli chtít migrovat virtuální počítače.

Dalším důvodem je také situace, kdy potřebujete provést jakoukoli údržbu. Řekněme, že můžete nainstalovat nějakou fyzickou paměť a přidat dalšího hostitele nebo jakoukoli jinou formu fyzické údržby.

To znamená, že budete mít na hostiteli výpadek. To prevent that, you can migrate all of the VMs to another host, perform maintenance, install memory or whatever you want to, say installing patches or carrying out a necessary reboot. You can migrate all VMs off of that host, do whatever you need to and then bring them back once the host is back up. All this can happen without any disruption for users.

How this is done:

Let's take a look at an example, migration, Say here we have a virtual machine running on host one you want to patch up. You also need to reboot this host.

So you have to initiate a migration of this VM from host one to host two.

But there are some prerequisites:

  • Shared storage
  • Virtual disk files
  • Configuration files
  • Virtual NICs
  • Snapshots

This is a VM that has network access and that virtual neck is connected to a virtual switch and it's available on a VLAN.

The virtual switch is connected to a physical switch and the virtual machine is addressed accordingly.

This VM exists on some VLAN that's got a port group on the virtual switch. If you move this VM down to another host and the virtual switch there does not have a matching configuration, that network would become unavailable.

You don't want that.

So you must ensure you have a compatible network on both of these hosts.

Simply said, you don't want the migrated VM to see anything different when it moves the host two and you want the compatable processors you want as they were on host one.

If they're Intel on host one, you want them to be compatible with AMD on host two.

You want these two hosts to be as much identical as you can possibly make them.

When it comes to the network and storage configuration, they obviously need to match up.

Finally, you need a way to perform the transfer from host one to host two. So you're going to have a special network that takes all of the contents of memory, takes what's currently happening on the current VM and creates a copy of it on the other host.

Once you've covered my prerequisites, the rest of it is pretty straightforward.

You write a copy of the VM that is going to be created on a destination host in this case.

Based on VMware terminology, you're going to use something called a VM kernel port to create a network, and that network is going to be used to create a copy of the current VM on the destination host.

When that copy is complete, you will capture everything that's changed in that VM during that copy process. You call this a memory bitmap.

All of the contents of this memory bitmap are transferred over to the new copy of the VM and that becomes your live running virtual machine.

The downtime is so negligible, that it's not even perceptible to the users of your applications. This is called live migration of a virtual machine, while it's running and moved from one host to another.

This facilitates amazing flexibility, because you can move VMs wherever you need to.

Another notable advantage is automated load balancing.

You can group together hosts in what's called a cluster. Once you group those together, what you would now want is to allow your virtual machines to efficiently make use of the resources of the cluster as a whole.

You'll want to consider all of these hosts are interchangeable. It doesn't matter which host your VMs run on. If VMs need to move around to equalize workload, you can definitely make that to happen automatically.

That's the purpose of automatic load bouncing in VMware terminology.

This is also called distributed resource scheduler, in order to allow virtual machines to automatically be live migrated from host to host for the purposes of load balancing across themselves.

Converting physical servers to VMs

In this section, you'll learn about some concepts required to convert a physical machine to a virtual machine.

There are different software options out there to accomplish that.

Let's say you have a physical server with Ubuntu installed on it. It has all kinds of physical hardware like CPUs, RAM and network adapters and storage disks.

Our Ubuntu operating system has drivers for devices such as network adapters. It knows what kind of CPUs are being used:be it AMD or Intel CPUs. It has got a SCSI controller to connect to physical disks and the operating system is also aware of the actual physical hardware.

When we take this physical server and use one of our software tools to convert it to a virtual machine, the first step that happens is that virtual machine is created as virtual replica of the physical machine.

You're going to have a virtual machine present your hypervisor with the appropriate CPU, memory, network and storage specifications. It might not exactly match up with what we had in the physical server.

When you create a virtual machine, your goal should always be to rightsize that virtual machine. It's never to just take what the physical server had and duplicate it. The goal is always to right size it to give the virtual machine the correct resources that it needs to do its job (efficiently run applications) and nothing extra.

You'd want your resource consumption to be about 60, 70 percent utilization for CPU and the same for memory. You don't want them unutilized at 10 percent with four CPUs. That's not efficient.

You're also going to need a physical NIC, for the virtual machine and this is going to be a hardware change for the guest operating system.

So what would be most ideal to have is a network interface card that was specifically designed to run on a virtual machine, a good example of this is the VMware VMAX.

The beautiful thing about this, is that now the virtual machine has no relationship with actual physical hardware, so we get mobility by breaking out of specific hardware dependency everytime.

Other benefit that is often overlooked is the fact that as you virtualize, all of your OS instances(Linux/Mac/Windows) are going to have a similar set of virtual hardware. It allows you to standardize your operating system configuration.

You replace our physical hardware with virtual hardware and your physical hard disk with a virtual disk.

This is a file that could be on a local storage of the host, it could be on:

  • a fibre channel
  • a SCSI storage array
  • an NFS server

What's most important is that you create this virtual disk and migrate all of the data from the source virtual machine to the virtual disk. When the power's on, it's got its new hardware with its new disk. From this point on, it should just work.

That's how you convert a physical server to a virtual machine.

Depending on which hypervisor you're using:

  • VMware has vCenter converter
  • Microsoft has VM converter
  • Veeam has disk to VHD

You can start using these solutions on your existing physical servers, convert them to virtual machines and run them on your hypervisor. Helder has shared some tips on building homelab which is a good way to experiment.

Hope you found this detailed introduction to virtualization helpful. Please leave any feedback if you have in the comment section below. Thank you.


Linux
  1. Průvodce linuxovým terminálem pro začátečníky

  2. Cron Job:Komplexní průvodce pro začátečníky 2022

  3. Co je Docker Container:Úvodní příručka pro začátečníky

  1. YAML pro začátečníky

  2. Stručný úvod do rolí Ansible pro správu systému Linux

  3. Komplexní příručka pro nastavení ověřování pomocí klíče SSH2

  1. Jak nainstalovat MongoDB na Ubuntu 18.04 – Průvodce pro začátečníky

  2. Virtualizace na PC, vysvětlení pro začátečníky s praktickými příklady použití

  3. Co je Linux? Průvodce pro netechnické uživatele