|
Společnost VMWare jako první přišla na to, jak virtualizovat počítač s architekturou x86 na té samé architektuře. Dnes jsou její produkty vyspělé, neuvěřitelně spolehlivé a díky výhodám, které nabízejí, je používají všechny společnosti z žebříčku Fortune 100 a 98% společností z Fortune 1000. VMWare nabízí celou škálu produktů virtualizace, zde se zaměříme na popis produktů pro virtualizaci serverů, které se souhrnně nazývají v nové verzi vSphere (dříve Virtual Infrastructure).

Jádro tvoří samotný hypervisor ESX (jeho zjednodušená verze pod názvem ESXi byla v roce 2008 dokonce uvolněna zdarma), který běží na hardwaru (nepoužívá tedy jiný operační systém, ať už Windows nebo Linux ). Tento hypervisor umožňuje provoz virtuálních počítačů, kterým vytváří prostředky (procesor, paměť, disky, CD/DVD atd.). Umí také vytvořit virtuální ethernetový switch (nebo více switchů), který umožňuje komunikaci virtuálních počítačů navzájem a po připojení jedné nebo více síťových karet hostitelského systému i komunikaci s vnějším světem.
Správa – vytváření a ovládání virtuálních počítačů a přidělování prostředků – se děje pomocí konzoly VI Client (běžná Windows aplikace), kterou si správce může stáhnout a nainstalovat na svůj počítač ihned po instalaci hypervisoru ESX z jeho webového serveru. Některé funkce operátorského charakteru jsou taktéž přístupné pomocí webového rozhraní.
Tím jsme se dostali k jednomu ESX serveru (říkáme ESX host), na kterém běží několik virtuálních strojů, a jeho ovládací konzole. Jenže to není zdaleka vše, co virtuální infrastruktura VMWare umí.
Pokud připojíme několik počítačů s VMWare ESX ke společnému diskovému úložišti (síť typu SAN, ať už se jedná o Fibre
Channel nebo iSCSI), dostaneme další možnosti. Aby se výpočetní prostředky jednotlivých ESX serverů logicky spojily, a také aby se daly přehledně ovládat, k tomu slouží softwarová komponenta VirtualCenter (nově vCenter). vCenter řeší centralizovanou správu ESX hostů, evidenci virtuálních strojů „pod jednou střechou“, sběr statistických dat a další činnosti jako je HA, vMotion nebo DRS, které si popíšeme za chvilku. Stejná správcovská konzola, VI Client, pak komunikuje s VirtualCentrem a ne s jednotlivými ESX hosty.
Zde se již dostáváme k vychytávkám, které v prostředí fyzických serverů naprosto nejsou možné. Můžeme si vytvořit virtuální server, třeba Windows 2003, a použít ho jako šablonu – prostým naklonováním pak vytvoříme během několika minut třeba čtyři Windows 2003 servery, na jeden nainstalujeme třeba doménový řadič, na druhý Exchange atd. U čtyř fyzických serverů je to čtyřikrát instalace (včetně ovladačů pro hardware) a stahování aktualizací, jinými slovy hodiny místo minut.
Kromě toho, pokud k obrazu virtuálního stroje na diskovém poli může přistupovat přes síť typu SAN několik ESX hostů, není
problém virtuální počítač spustit na jednom či druhém ESX hostu. Tento proces lze automatizovat, pokud jeden ESX host například vypadne, virtuální stroj je automaticky nastartován na jiném ESX hostu. Odstávka virtuálního serveru pak trvá pouze tak dlouho, jak dlouho trvá nastartování operačního systému včetně příslušných služeb. U fyzického stroje by to znamenalo instalaci OS, instalaci aplikací, konfigurace, obnovu ze zálohy, zkrátka – v nejlepším případě mnoho hodin práce (a to když se všechno podaří). Tento mechanismus se v prostředí VMWare nazývá HA (High Availability). VirtualCenter se stará nejen o zjištění, že se některý ESX host a na něm běžící virtuální stroje nehlásí, ale také o rozdělení, který virtuální stroj přidělí na který zbývající ESX host tak, aby byly zajištěny prostředky pro jeho spuštění (paměť, procesorový výkon, aby byl připojen ke stejné síti atd.)
Společnost VMWare však došla ještě dál, a vyvinula technologii, která umožňuje přesunout mezi jednotlivými ESX hosty dokonce běžící virtuální stroj. Tato technologie se nazývá vMotion a i technicky zdatným jedincům může připadat jako zázrak. Jak je něco takového možné?
Disky, které vidí virtuální počítač, jsou na sdíleném diskovém úložišti, takže je vidí oba ESX hosty a mohou je virtuálnímu počítači zpřístupnit. Zbývá tedy přenést obsah paměti RAM a procesorových registrů. Obsah paměti běžícího virtuálního stroje je tedy za chodu zkopírován s tím, že veškeré zápisy do paměti hypervisor odchytí, zapíše si je „bokem“ a kromě toho si udělá bitovou mapu změněných stránek paměti. V okamžiku, kdy je přenesen základní
obraz paměti, je virtuální počítač na starém ESX hostu pozastaven, přenese se ještě bitová mapa změněných stránek a registry CPU (to je dohromady celkem málo dat, takže se jedná o zlomek sekundy) a řízení je předáno virtuálnímu stroji na novém ESX hostu. Je vyslán speciální paket (reverzní ARP), který aktualizuje směrovací tabulky aktivních prvků, aby síťová komunikace správně našla svůj počítač, když najednou připojen na jiném portu. Na pozadí pak probíhá dokopírování změněných stránek paměti. V okamžiku, kdy by virtuální počítač sáhl do paměti, která byla změněna a není dosud dokopírována (což se pozná podle bitové mapy změněných stránek), je tato změněná stránka dokopírována přednostně a běh programu ve virtuálním stroji pokračuje již na aktuálních datech. Pokud z nějakého důvodu kopírování neproběhne úspěšně, je virtuální stroj ponechán na původním ESX hostu.
Toto je samozřejmě zjednodušený popis, ve skutečnosti musí před zahájením operace VirtualCenter zkontrolovat řadu předpokladů, ať už se jedná například o připojení do stejné sítě (bylo by smutné, zaživa odmigrovat server, jen abychom zjistili, že se na novém ESX hostu nedostane do sítě), nebo stejné vlastnosti CPU (mezi jednotlivými generacemi procesorů jsou rozdíly v instrukcích – MMX, několik generací SSE, VT...).
Tato technologie, jakkoliv geniální, může na první pohled působit jako samoúčelná hračka. Využívá ji však řada nadstavbových technologií, které jsou naopak vysoce užitečné.
Tak především je to DRS – Distributed Resource Scheduling. Běžící virtuální počítače kladou různé nároky na zdroje – výkon CPU, paměť atd.- tyto požadavky se navíc v průběhu času mění. Tak by se mohlo stát, že jeden ESX host je přetížený, zatímco druhý, i když na něm běží třeba 6 virtuálních strojů, nedělá nic. Zde nastupuje DRS, který právě pomocí vMotion přesune vituální stroje tak, aby výpočetní prostředky byly rovnoměrně využity.
Další technologií využívající vMotion je APM – Advanced Power Management. Typicky v noci, kdy je zátěž serverů nižší, jsou virtuální servery odmigrovány z jednoho nebo více ESX hostů a tyto uvolněné stroje se pak vypnou. Když se zátěž opět zvýší, vypnuté stroje se dálkově zapnou, nabootují ESX hypervisor a vMotion na ně opět přesune virtuální počítače tak, aby se zátěž rozdělila.
V neposlední řadě také tato technologie zjednodušuje údržbu – je-li potřeba vysát prach, vyměnit ventilátor či přidat paměť, odmigrují se běžící virtuální stroje pryč a ESX host se vypne.
Mezi další užitečné technologie patří například Transparent Page Sharing, tedy transparentní sdílení stránek. Firmy mají typicky tendenci používat na svých serverech určitou verzi operačního systému, například Windows Server 2003. To ale znamená, že několik virtuálních serverů používá hodně podobný kód, spousta standardních DLL knihoven je stejná. VMWare inteligentně rozezná tyto společné bloky kódu a pokud jsou pro více virtuálních strojů společné, jsou ve fyzické paměti pouze jednou. Pokud ovšem některý server do takového identického bloku paměti něco zapíše, a jiný ne, tyto obsahy by se lišily. VMWare to řeší tak, že v případě zápisu vytvoří kopii, ze sdílené stránky jsou nyní dvě samostatné stránky. Je neuvěřitelné, kolik paměti toto dokáže ušetřit - z vlastní zkušenosti naší společnosti na serveru s 16GB RAM, kde je provozováno několi verzí serverů Windows (Windows 2003 Standard, Windows 2003 Web Edition, Windows Server 2008), je sdíleno cca 1GB paměti. Pro zákazníka to znamená možnost spouštění více virtuálních strojů na stejném hardwaru.
Přihlaste se k odběru novinek:
Vybrané články
Novinky
Office 2010 Professional pro vysokoškoláky