Bankovní institut vysoká škola Praha
Implementace infrastruktury do virtuálního prostředí Diplomová práce
Bc. Jiří Hanzal
Duben, 2015
Bankovní institut vysoká škola Praha Katedra informatiky a kvantitativních metod
Implementace infrastruktury do virtuálního prostředí Diplomová práce
Autor:
Bc. Jiří Hanzal Informační technologie a management
Vedoucí práce:
Praha
Ing. Vladimír Beneš Petrovický, Ph.D.
Duben, 2015
Prohlášení Prohlašuji, že jsem diplomovou práci zpracoval samostatně a v seznamu uvedl veškerou použitou literaturu. Svým podpisem stvrzuji, že odevzdaná elektronická podoba práce je identická s její tištěnou verzí a jsem seznámen se skutečností, že se práce bude archivovat v knihovně BIVŠ a dále bude zpřístupněna třetím osobám prostřednictvím interní databáze elektronických vysokoškolských prací.
V Rokytnici nad Rokytnou dne 27. 4. 2015
Bc. Jiří Hanzal
Poděkování
Velice děkuji vedoucímu mé diplomové práce Ing. Vladimíru Benešovi Petrovickému, Ph.D. za cenné rady, konzultace a čas, který mé práci věnoval. Jiří Hanzal
Anotace Diplomová práce popisuje virtualizaci a následně srovnává jednotlivá virtualizační prostředí. Jedna z kapitol této práce se zaměřuje na podrobnější rozbor nejrozšířenějšího virtualizačního produktu VMware. Rovněž jsou uvedena možná nasazení tohoto software pro jednotlivé komponenty hardware. V poslední části je představen funkční program pro reálné využití virtuálních serverů, včetně ukázek programu.
Klíčová slova: virtualizace, virtualizační prostředí, VMware, implementace
Annotation The dissertation describes virtualization and subsequently compares single virtual environment. One of this chapters of this dissertation focuses on a more elaborate analysis of the most widespread virtual product VMware. Possible introducing of this software for particular components of hardware is given as well. In the last part a functional program for actual use of virtual servers including some illustrations of the program is introduced.
Key words: Virtualization, Virtual environment, VMware, Implementation
Obsah 1
Virtualizace .................................................................................................................. 7 1.1
Základní pojmy – terminologie............................................................................... 8
1.2
Analýza ................................................................................................................. 10
1.3
Vývoj virtualizace ................................................................................................. 12
1.3.1 1.4 2
Porovnání podle virtualizační architektury ........................................................... 19
2.1.1
Microsoft Hyper–V ....................................................................................... 20
2.1.2
Citrix XenServer ............................................................................................ 22
2.1.3
Red Hat Enterprise Virtualization ................................................................. 24
2.1.4
Proxmox ........................................................................................................ 25
2.1.5
VMware ......................................................................................................... 26
2.2
4
Virtualizační architektury ..................................................................................... 16
Komparace virtualizačních prostředí ...................................................................... 19 2.1
3
Co je hlavním přínosem virtualizace ............................................................. 13
Výsledné porovnání virtualizačních prostředí ...................................................... 38
Popis implementace infrastruktury do virtuálního prostředí ............................... 41 3.1
Hypervizor ESX a ESXi ....................................................................................... 41
3.2
vCenter Server ...................................................................................................... 44
3.3
vSphere Update Manager...................................................................................... 46
3.4
Servery .................................................................................................................. 47
3.4.1
Virtuální servery ............................................................................................ 47
3.4.2
Fyzický server ............................................................................................... 48
3.5
Diskové úložistě .................................................................................................... 49
3.6
Switch ................................................................................................................... 49
3.7
Páskové zálohovací zařízení ................................................................................. 50
3.8
UPS ....................................................................................................................... 51
3.9
Mapy v systému vCenter Server ........................................................................... 52
Návrh automatizace některých manipulačních zásahů ......................................... 54 4.1
PowerShell ............................................................................................................ 54
4.2
Automatizace s PowerShell a PowerCLI .............................................................. 55
4.3
Program na zjištění spuštěných běžících automatických služeb na serverech ..... 55
4.3.1
Popis programu .............................................................................................. 56
4.3.2
Vývojový diagram ......................................................................................... 62 5
4.3.3
Program na zjišťování služeb ........................................................................ 63
4.3.4
Program s funkcemi ....................................................................................... 66
ZÁVĚR ............................................................................................................................... 69 SEZNAM POUŽITÝCH ZDROJŮ ................................................................................. 71 SEZNAM OBRÁZKŮ A TABULEK .............................................................................. 73 SEZNAM PŘÍLOH ........................................................................................................... 75
6
1 Virtualizace Jedním z cílů této práce je přiblížit smysl a význam virtualizace ve světě informačních technologií. Pokud se zamyslíme, uvědomíme si, že v současné době se s pojmem „virtuální“ setkáváme stále častěji. Jaký obsah tedy slovo virtualizace má? Označíme–li něco jako virtuální, vyjadřujeme tím absenci fyzické existence, nereálnost nebo klam, jež zastupuje pouhá představa či klamný obraz. Počátek virtualizace v informačních technologiích se datuje k přelomu 60. a 70. let minulého století, kdy společnost IBM v Cambridge vyvíjí první operační systém pro virtualizaci. Následně se tento pojem stal v informačních technologiích velice důležitý. Virtualizace může být realizována několika způsoby. Virtualizovat můžeme na úrovni aplikací, na úrovni operačního systému, plnou virtualizací atd. Hlavní zlom přinesla virtualizace serverová. Před virtualizací vyžadovaly serverovny přítomnost značného množství fyzických serverů. Tyto servery nebyly plně vytíženy, serverovny jimi byly neúčelně přeplněné, spotřebovávaly množství energie a dosahovaly vysokých teplot. Přechod na virtuální servery umožnil redukovat náklady na IT infrastrukturu úsporou fyzických serverů, snížení zátěže na IT, možnost navýšení výkonu atd. Výhody přechodu na serverovou virtualizaci jsou v této diplomové práci blíže popsány. V první části jsou pro přehlednost objasněny základní pojmy, které se v dalších kapitolách opakovaně vyskytují. Dále jsou v této kapitole popsány druhy virtualizace s uvedením hlavních výhod, jež daná virtualizace poskytuje. Následující kapitola představuje a porovnává virtualizační prostředí, která zajišťují serverovou virtualizaci. Bude zvolen jeden virtualizační produkt, u kterého jsou popsány jednotlivé funkcionality. Pro toto virtualizační prostředí bude objasněn proces jeho implementace a reálné hardwarové řešení. Poslední kapitola se zabývá návrhem automatizace některých manipulačních zásahů, kde je plně funkční program pro serverovou virtualizaci, který bude představen na názorných ukázkách.
7
1.1 Základní pojmy – terminologie Server je počítač, který poskytuje určité služby nebo programy, např. souborový server, tiskový server, webový server, databázový atd. Pro komunikaci mezi uživatelem a počítačem slouží některý z operačních systémů např. Windows 8 nebo Linux a jiné. U serverů je to např. Windows server 2008. Pro komunikaci mezi počítačem a serverem se využívá technologie klient – server, kdy program nebo prohlížeč v počítači žádá server o službu. Při přístupu na webový server – prohlížeč v počítači žádá o přístup na nějakou webovou stránku webového serveru, na kterém jsou tyto stránky umístěny. Stejný postup je i v případě přihlášení se do emailové schránky. Uživatelský účet – je omezený účet s oprávněním používat určité aplikace a programy. Používání tohoto účtu zvyšuje bezpečnost, např. při instalaci aplikací do počítače je zapotřebí práv administrátorského účtu. [3] Ve velké většině firem jsou nastaveny uživatelské účty users a jen několik admin účtů, které mají plná práva na provoz celé sítě a přidělování různých práv a omezení pro jednotlivé uživatele. Vzdálená plocha (remote control) – tato funkcionalita slouží k přihlášení se na jednotlivé počítače nebo servery. Windows 7 má v příslušenství vzdálenou plochu, nebo můžeme využít různé programy jako např. Mremote a mnoho dalších. Virtualizační prostředí (software) Virtualizační prostředí obsahuje různé postupy jak přistupovat ke zdrojům (pamětí, CPU, diskový prostor), než jakými postupy se přistupuje na zdroje, které fyzicky existují. Díky těmto virtuálním prostředím můžeme lépe vyhovět potřebám uživatelů. S jejich pomocí můžeme maximálně využít dostupný fyzický hardware. Mezi nejčastěji používaný software patří – VMware, Hyper–V atd. Aplikace – aplikační software, pomocí kterého můžeme provést žádanou činnost. Pomocí aplikace získáváme z dat, která zadáme na vstupu pomocí textového nebo grafického rozhraní, potřebný výstup (výsledek). Typickým balíčkem těchto aplikací je třeba Microsoft Office. Mezi aplikace nepatří operační systém. CPU (Central Processing Unit) – je to centrální procesorová jednotka. Zpracovává strojový kód programu a vykonává strojové instrukce. Je to základní část serveru a také počítače. 8
Engine – jádro programu nebo počítačové hry, ale ve virtuálním světě se jedná o virtuální stroj. Hypervizor – je nástroj využívaný ve virtuálním prostředí jako např. VMware, Citrix XenServer, Microsoft Hyper–V. S jeho pomocí můžeme na jednom počítači spustit souběžně více operačních systémů. Rozdělujeme jej na dva typy. Typ1 – běží přímo na hardwaru, operační systém běží na jiné úrovni pod hypervizorem. Typ1 je nazýván "holý hypervizor". Typ2 – využívá ke své činnosti hostitelský operační systém. Hypervizor je realizován nad vrstvou operačního systému. PowerShell – jedná se o objektově orientovaný skriptovací jazyk od společnosti Microsoft. Vychází z jednoduchosti příkazového řádku systému Unix a může pracovat také s objekty. PowerShell 2.0 je součástí windows jako nástupce klasického příkazového řádku cmd. Oproti příkazovému řádku dokáže přistupovat k registrům a souborovému systému. PowerCLI – po instalaci PowerCli lze v PowerShellu pracovat s objekty jako jsou virtuální stroje a s jejich vlastnostmi. Jeho hlavním přínosem je, že můžeme vytvářet skripty, kterými lze automatizovat procesy a ušetřit spoustu času a práce ve virtuálních prostředích, jako je VMware a další. Snapshot – v překladu z anglického jazyka je to fotka nebo momentka. V počítačových technologiích to znamená stav zaznamenaný v určitém časovém bodu. Kernel – v překladu z angličtiny jádro. V informačních technologiích se jedná o jádro operačního systému, které řídí běžící procesy a přiděluje využití paměti a čas procesoru pro dané programy, které ho pro svou činnost potřebují. Cluster – v překladu je to shluk, skupinka. Jedná se o spojení několika počítačů, která jsou propojeny sítí a chovají se jako jeden počítač. U virtualizačních prostředí se jedná o datové úložiště, které slouží k vyšší spolehlivosti toku dat. DNS (Domain Name System) – v překladu z anglického jazyka systém doménových jmen. DNS překládá adresy na symbolické adresy v internetu. Na serverech v internetu (nebo v síti) má uloženy své datové soubory, které jsou průběžně aktualizovány. DHCP (Dynamic Host Configuration Protocol) – jedná se o protokol, který přiděluje IP adresu nově připojeným klientům z definovaného rozsahu (poolu). V síti TCP/IP má každý počítač přidělenou IP adresu. Tuto IP adresu má po dobu své aktivity v síti. Při novém přihlášení může dostat jinou IP adresu. 9
UPS (Uninterruptible Power Supply) – v překladu nepřerušitelný zdroj energie. Některá zařízení potřebují stálý přísun elektrické energie, a to i při výpadku proudu. Pro jeho zajištění při výpadku proudu slouží právě zařízení UPS. [3]
1.2 Analýza První krok spočívá v sestavení vstupní analýzy pro vytvoření datového centra. Jde o jeden ze stěžejních úkonů při tvorbě virtuálního prostředí. Vychází z rozvahy, kterými servery disponujeme a které budeme později potřebovat. Rozdělení serverů dle funkce: fyzické servery a servery síťové infrastruktury, servery pro správu identit, tiskové, souborové, terminálové, aplikační, kolaborační. Souborový server (File server) – poskytuje služby úložišť a strukturovaných dokumentů v dané síti. Při používání tohoto serveru je snadnější zálohování, údržba, sdílení dat a hlavně centralizovaná správa. Využívá se zde technologie klient – server, kde uživatel přihlášený pod jménem a heslem projde autentizací, zda má na server přístup. Po úspěšném přihlášení může pracovat s daty na serveru, ale nemusí mít povolen přístup do všech složek, což je velká výhoda pro danou společnost, která může mít nastavená různá práva pro přístup do daných složek a souborů. Tiskový server (Print Server) – na tomto serveru jsou nainstalovány tiskárny, které si uživatel může po připojení do sítě přidat, má-li přidělena práva konkrétní tiskárnu užívat. Správce má přehled o všech IP adresách, které mají přiřazeny jednotlivé tiskárny. Na tomto serveru jsou nainstalovány potřebné ovladače pro provozované tiskárny pro 64 a 32 bitovou verzi. Existence Print serveru poskytuje zjevnou výhodu: úsporu času jednotlivých uživatelů při přidání tiskárny na svůj počítač, kdy uživatel nemusí získávat ovladače z různě dostupných zdrojů (internetu nebo CD přiloženým k tiskárnám) a nemusí tiskárnu instalovat jako lokální, protože si ji jenom vyhledá v síti a ovladače se stáhnou z print-serveru. Mimo to má správce sítě okamžitý přehled o přístupu uživatelů na jednotlivé tiskárny a může operativně nakládat s jejich právy pro tisk, skenování atd. [2] Servery pro správu identit “Tyto servery jsou hlavními správci identit pro danou síť. Obsahují a spravují databázi identit celého podniku pro všechny uživatele a přístup uživatelů prostřednictvím služeb protokolu LDAP (Lightweight Direktory Access Protocol). V případě systému Windows 10
Server 2008 by se jednalo servery, na kterých běží služba AD DS (Active Direktory Domain Services). Tato funkce by pokud možno neměla být sdílena s jinou funkcí, Pokud se nejedná o klíčovou síťovou funkci, jako například překlad IP adres prostřednictvím služby DNS (Domain Name System)“ [2]. Aplikační servery – slouží pro poskytování služeb různých aplikací uživatelům, např. mailserver – služba pro emailovou schránku v internetu, nebo v privátní síti nějaké firmy, Exchange server – zde má každý uživatel Mailbox (poštovní schránku). Webové servery – pomocí prohlížeče v našem počítači přistupujeme na webové stránky, které jsou umístěny na těchto serverech. Terminálové servery – pomocí těchto serverů se uživatelé přihlašují do sítě (terminálové připojení). Tyto servery poskytují uživatelům centrální prostředí pro přihlášení se do sítě pod loginem a heslem daného uživatele. S jejich pomocí může admin získávat informace o uživatelích, např. počet přihlášených uživatelů přes terminálový server, možnosti připojení se na uživatele přes vzdálenou plochu (remote control), odeslání rychlé zprávy připojenému uživateli a v neposlední řadě odpojení uživatele ze sítě jednotlivě, nebo lze naráz odpojit všechny users, kteří jsou připojeni přes daný terminálový server. Proxy servery – pomocí těchto serverů přistupujeme do jiné sítě (např. internetu). Proxy server slouží jako bezpečnostní prvek, který odděluje lokální počítačovou síť od internetu. Kolaborační servery- tvoří vnitřní infrastrukturu podniku. Mezi nejvíce využívané služby patří Windows SharePoint Services. Na Sharepointu může společnost zobrazovat různé interní informace pro své zaměstnance (kalendáře, docházka, informace o přítomnosti zaměstnanců atd.) Analýza by v konečné fázi měla počítat s menším počtem fyzických serverů, než jsme disponovali na začátku. Fyzické servery budeme používat ke spuštění tvorby virtuálních strojů. [2]
11
1.3 Vývoj virtualizace V roce 1966 byl poprvé použit pojem Hypervizor, "Hyper" znamenající nad a "Supervisor" v té době označoval operační systém. V roce 1967 vědecké centrum IBM v Cambridge vyvíjí CP – 40. Byl to první systém pro úplnou virtualizaci, který podporoval až 14 běžících virtuálních strojů. V roce 1986 přicházejí na trh počítače x86 (jedná se o 32 bitové počítače). Byl to nový směr vývoje počítačů a otevřely se nové možnosti virtualizace. V roce 1987 společnost Locus Computing představuje program Merge. Tento program je elementární virtualizační program pro spouštění MS – DOS v prostředí SCO – UNIX. Po roce 1990 se zvyšují nároky na hardware a jeho prostředky. IT odborníci si uvědomují, že je potřeba robustnější virtualizační řešení, které by uspokojilo nároky aktuálního období. V roce 1997 společnost Connectix vydává VIRTUAL PC. Tento program umožňuje virtualizaci na počítačích MAC. V roce 2003 koupil Microsoft produkt VIRTUAL PC a konečná verze, která podporuje MAC, byla vydána v roce 2006. V roce 1999 přichází na trh společnost VMware se svým produktem VMWARE WORKSTATION. V té době získává firma 65% podíl na trhu virtualizačních technologií. V roce 2003 XEN vydává první Open Source vitualizační platformu. Tuto společnost získá v roce 2007 Citrix Systems. XEN je dál využíván velkými společnostmi jako Amazon atd. V roce 2007 je představen Virtual Box společností Innotek. Společnost Sun Microsystems kupuje Virtual Box a tato společnost je následně pohlcena firmou Oracle. V roce 2008 Microsoft představuje svoji virtualizační platformu Hyper–V. V roce 2013 64 % firem, které mají více jak 50 zaměstnanců, používají virtualizaci a v roce 2013 provedlo 79 % společností virtualizaci v SMB sektoru. Na jaře roku 2012 Microsoft oznámil vydání Windows Serveru 2012 a spolu s ním i Hyper-V verze 3. Tato verze již může být skutečně produktem hodným srovnání s VMware, kde, alespoň v oblasti škálovatelnosti a limitů pro virtuální stroje, Microsoft na vývoji velmi zapracoval. Stále však zůstal u stejné technologie a velmi tak zaostává v densitě a výkonnosti. Výhodou virtualizace je, že může vytvořit virtuální servery nebo virtuální stanice ve fyzickém systému. Jsme omezeni pouze parametry reálného počítače nebo serveru, např. výkonem procesoru, velikostí operační paměti RAM, velikostí pevného disku, síťovou kartou. Pomocí virtualizačního softwaru mohou být virtuální počítače provozované na libovolném počtu operačních systémů jako Microsoft Windows, Linux, další Unixové systémy atd. [12]
12
Obrázek č. 1: Tradiční a virtuální architektura Zdroj: http://www.oldanygroup.cz/virtualizace-vmware-zakladni-informace-9/
Na obrázku č. 1 je zobrazena tradiční a virtuální architektura. U tradiční architektury je nainstalován operační systém, ve kterém jsou nainstalované různé aplikace. U virtuální architektury je na počítači nainstalován virtualizační software VMware a na něm může být nainstalováno několik virtuálních strojů nebo počítačů, na kterých běží operační systémy, které používají různé aplikace.
1.3.1 Co je hlavním přínosem virtualizace Snížení zátěže na IT – při použití virtuálních serverů dokáže 1 administrátor spravovat 3x více serverů, než když spravoval pouze fyzické servery. Uspoří se tak počet zaměstnaných pracovníků v IT oddělení. Redukce nákladů na IT infrastrukturu – redukce počtů fyzických serverů a použití virtuálních vede k velké úspoře energie, více místa v rackových skříních, nákladů na chlazení serverovny (klimatizace). Rychlejší zálohování a obnova dat – zálohuje se obraz pevného disku a paměti v dané jednotce času. Zálohují se snapshoty. Snažší obsluha programu – při použití virtualizace obsluhuje administrátor pouze jednu konzolu, která spravuje všechny servery (rychlejší nasazování nových serverů, přesun virtuálních strojů, správa RAM, CPU atd.)
13
Dostupnost aplikací – při použití virtualizace serverů neztratíme při výpadku proudu nebo plánované údržbě data a běžící aplikace, protože např. VMware používá funkcionality jako je Vmotion, DPM, HA mnoho dalších. Základní free verze – základní verze hypervizoru je ke stažení zdarma. Samozřejmě tyto verze běží s určitými omezeními, ale pro vyzkoušení a osvojení si různých postupů a technik s daným programem jsou dostačující. Úspora nákladů - cena pořízení virtuálních serverů proti fyzickým je nesrovnatelně nižší. Možnost navýšení výkonu - zvětšování diskového prostoru nebo navýšeni paměti RAM je podstatně rychlejší než u fyzických serverů. [2] Rozlišujeme 2 typy serverové virtualizace: softwarovou a hardwarovou.
Softwarová virtualizace: Virtualizovaný operační systém je spouštěn nad softwarovou virtualizační platformou na reálném operačním systému.
Host 1
Host 2
Host 3
Virtualizační vrstva Operační systém hostitele
Hardware Obrázek č. 2: Softwarová virtualizace Zdroj: http://interval.cz/podklady/1999-2008/hajek/1225/schema-sw.png-úprava autor
Na obrázku č. 2 je zobrazena softwarová virtualizace. Tato virtualizace je založena na existenci operačního systému, který je nainstalován na fyzickém hardware. Mezi operačním systémem (Windows nebo Linux) je virtualizační vrstva, která zajišťuje komunikaci. Operační systém potřebuje pro svou funkčnost různé zdroje a tím jsou omezeny možnosti virtuálních počítačů nebo serverů, které běží nad tímto operačním systémem. Tato virtualizace 14
je nejvíce používána pro testování nebo vývoj. V případě aktualizací jsou virtuální počítače závislé na operačním systému a v případě potřebných restartů operačního systému jsou také restartovány. [2]
Hardwarová virtualizace: Virtualizovaný operační systém je spouštěn nad softwarovou platformou nad hardware bez existujícího operačního systému.
Host 1
Host 2
Host 3
Hypervisor Hardware Obrázek č. 3: Hardwarová virtualizace Zdroj: http://interval.cz/podklady/1999-2008/hajek/1225/schema-hw.png-úprava autor
Na obrázku č.3 je zobrazena hardwarová virtualizace. Funkci virtualizační vrstvy zastupuje hypervizor, který je implementován přímo do hardwaru. Z tohoto důvodu je hardware hostitelského serveru zpřístupněn všem virtuálním počítačům nebo serverům, které běží nad ním. Daný hostitel potřebuje jenom malé množství fyzických zdrojů a tím můžeme docílit většího množství virtuálních strojů. Nejsou zde vyžadovány záplaty a aktualizace jako u operačních systémů na virtuálních strojích, protože hostitel neobsahuje běžný operační systém. Z tohoto důvodu nejsou virtuální stroje nad hypervizorem tak často restartovány jako u softwarové virtualizace, která obsahuje operační systém. Virtualizace úložišť: Z několika zařízení je vytvořeno fyzické úložiště, které je zobrazováno jako jedno úložiště. Může vzniknout přímo připojené úložiště (DAS), síťové připojené úložiště (NAS) nebo síť SAN (storage area network). Virtualizace aplikací: Při porovnání virtualizace aplikací a serverové virtualizace jsou tyto dva postupy velice podobné, protože obě virtualizace užívají stejné postupy, akorát u 15
serverové virtualizace se poskytování enginu používá ke spouštění celého operačního systému, ale u virtualizace aplikací jsou provozní aplikace odděleny od operačního systému. [2]
1.4 Virtualizační architektury Softwarová emulace hardwaru (Full Virtualization Binari Translation) Při použití této emulace nejsme nijak omezeni hardwarem a operační systém ve virtuálním serveru je nezměněn.
Obrázek č. 4: Plná virtualizace Zdroj: http://image.slidesharecdn.com/virtcloud-140522073920-phpapp02/95/cloud-computing-andvirtualization-22-638.jpg?cb=1409328958
Na obrázku č. 4 je zobrazena plná (nativní) virtualizace. Jedná se o plnou simulaci hardware, protože systém, který je virtualizován, o tom nemusí ani vědět. Virtualizace s hardwarovou asistencí (Hardware Assisted Virtualization) Na úroveň chipsetů, procesorů, paměti, host bus adaptérů a síťových karet je zaměřena hardwarová podpora virtualizace výrobců hardwarových komponent, která je způsobena zvyšujícími se požadavky na virtualizaci. Tato virtualizace je nazývána také jako nativní virtualizace (Native virtualization).
16
Obrázek č. 5: Virtualizace s hardwarovou asistencí Zdroj: http://img3.findthebest.com/sites/default/files/1765/media/images/_416068_i0.jpg
Na obrázku č. 5 je zobrazena virtualizace s hardwarovou asistencí. Ovládací prvek se nachází mezi hardwarovými a virtuálními systémy. Tento ovládací prvek se nazývá hypervizor. Každý virtuální stroj využívá svůj procesor, paměť, disky, síťové karty atd.
Paravirtualizace “metoda virtualizace, která vyžaduje zásah do jádra operačního systému provozovaného ve virtuálním prostředí. V jádře paravirtualizovaného operačního systému existují speciální rutiny, které přesměrovávají určité instrukce, které by jinak byly vykonány hardwarem do hypervizoru přes tzv. root partition (často nazývanou Domain0, nebo kontrolní doménou). Výhodou paravirtualizace je obecně nižší výkonnostní režie než u plné softwarové emulace “. [8] Tato virtualizace poskytuje softwarové rozhraní pro virtuální stroje, které je podobné, ale není identické skutečnému hardwaru, který je poskytovaný pro běžící virtuální stroje. Operační systém si může být vědom, že je virtualizovaný. Virtualizační vrstva je umístěna na vrcholu hardware a operační systémy jsou nainstalovány na horní virtualizační vrstvu. Například aplikace na webovém serveru Apache a MySQL jsou provozovány na horní části operačního systému a nejsou v interakci s aplikacemi, které běží na jiném operačním systému. Při použití zdrojů vzhledem k jednomu operačnímu systému to nemá vliv na operační systémy na
17
hardwaru nosiče serveru. Touto izolací je eliminována možnost přetížení způsobená jinými uživateli na nosiči. [9]
Obrázek č. 6: Paravirtualizace Zdroj: https://www.google.cz/search?q=Paravirtualization+picture&biw=1344&bih=761&tbm=isch&imgil=pxJq9A9ySbeKIM%253A%253BdBC970jl1jBWKM%253Bhttp%25253A%25252F% 25252Fwww.virtualizationsoftwares.com%25252Fwhat-isparavirtualization%25252F&source=iu&pf=m&fir=pxJq9A9ySbeKIM%253A%252CdBC970jl1jBWKM%252C_&usg=__yLiM-UmOzMmBQdRgv_jI0JEmSU%3D&ved=0CDwQyjc&ei=kH_sVJzAF5XmavjDgegB#imgdii=_&imgrc=pxJq9A9ySbeKIM%253A%3BdBC970jl1jBWKM%3Bhttp%253A%252F%252Fwww.virtualizationsoft wares.com%252Fimg%252Fparavirtualization.png%3Bhttp%253A%252F%252Fwww.virtualizationsoftwares.com%252Fwhat-is-paravirtualization%252F%3B550%3B410
18
2 Komparace virtualizačních prostředí V tabulce č. 1 jsou porovnávány virtualizační architektury VMware, Microsoft a Citrix. Tyto architektury jsou posouzeny podle hardwarového měřítka, účinnosti procesoru, účinnosti paměti, virtuálního měřítka, přidání a odebrání virtuálních prostředků, řešení při výpadku napájení, efektivity využití úložiště, síťového managementu, automatické záplaty. Při porovnání počtu logických jader jich má VMware 64, Microsoft 24 a Citrix 32. Ve druhém řádku tabulky je popsán CPU.
Tabulka č. 1: Komparace VMware, Microsoft, Citrix Zdroj: http://www.eszlh.com/cases1_637.html
2.1 Porovnání podle virtualizační architektury Pro serverovou virtualizaci jsou dostupné různé virtualizační architektury: Hyper–V, Citrix Xen Server, Red Hat Enterprise Virtualization, Proxmox a VMware. Všechna tato prostředí prodávají různé licence svých produktů, ale Proxmox je dostupná jako free verze.
19
2.1.1 Microsoft Hyper–V V první verzi Hyper–V byla obsažena funkce pro přesun virtuálních strojů a běžela na operačním systému Windows Server 2008. Tato funkce se nazývala Quick Migration. Během této migrace uložila obsah operační paměti do souboru, zastavila svoji činnost, provedla přesun a následné obnovení dat z paměti a z tohoto důvodu přestala být služba dostupná. Pokud jste chtěli tuto službu využívat, museli jste používat Hyper–V cluster. Z toho plynuly vyšší náklady pro zákazníka. Další vývoj byl zaměřen na clusterové služby a následný Windows Server 2008 R2, který obsahoval Live migration, která využívala přístup ke sdílenému úložišti Cluster Shared Volumes (CSV). Aby Hyper–V udržel krok s konkurencí, musel zamezit výpadku virtuálních strojů při přesunu. Toho bylo docíleno použitím živé migrace, kde je operační paměť virtuálního stroje synchronizována na určitého hostitele a poté je zrealizováno přepnutí virtuálního stroje. Mezi další funkce Hyper–V patří Quick Storage Migration (QSM). Tato funkce umožňuje přesun souborů virtuálních strojů na úrovni fyzických disků. V průběhu této funkce je virtuální stroj stále dostupný. Při této funkci dojde ke ztrátě konektivity až v jejím závěru, protože při jejím konci nastane přepnutí a proběhne kopie dat během migrace. Při používání rychlé a živé migrace a QSM je zapotřebí mít Hyper–V cluster. V roce 2012 byl vytvořen Hyper–V 2012, který měl vylepšený hypervizor. Tato verze umožňovala spustit několik živých migrací v jednom časovém intervalu. Byly představeny dvě nové funkcionality: Live Storage Migration a Shared Nothing Live Migration. První umožňuje přesun datových souborů dat u virtuálních strojů na disková úložiště za běhu. U druhé funkce je přesun běžícího virtuálního stroje mezi fyzickými hostiteli možný bez použítí sdíleného úložiště. Toto virtualizační prostředí obsahuje funkce jako je migrace virtuálních strojů, vysoká dostupnost dat, rozkládání zátěže – podobné funkce, které obsahuje VMware. [13]
Windows Server 2012 a 2012 R2 Hyper–V Až 1000 hostů na jednom hostiteli. Až 8000 hostů v rámci clusteru, který může mít až 64 nodů. Využití až 320 procesorových jader a 4 TB paměti pro Hyper-V roli na fyzickém hostiteli.
20
Přidělení až 64 virtuálních procesorů, 1 TB paměti a 255 disků (každý o velikosti až 64 TB) pro systém ve virtuálním prostředí. [14]
Obrázek č. 7: Microsoft Hyper–V Zdroj: http://www.win2008workstation.com/wp-content/uploads/2008/03/hyperv_9.jpg
Na obrázku č. 7 je zobrazen server-manager pro virtuální prostředí Microsoft hyper-V. Server-manager je rozdělen do tří základních částí. Vlevo jsou zobrazeny role a rysy a diagnostika, které můžeme upravovat na jednotlivých strojích. Storage je zobrazení dostupných úložišť. V prostřední části jsou vyobrazeny Virtual Machines (virtuální stroje), kde dostáváme informaci, že jeden je ve stavu running a zbylé dva jsou vypnuté. U běžícího stroje jsme informováni o CPU usage (využití procesoru). Uptime nás informuje, jak dlouho daný virtuální stroj běží. Pod nimi je zobrazen Snapshot1, který uvádí v jakém čase a datu byl spuštěn. Ve spodní části obrazovky je zaznamenána informace, kdy byl daný stroj vytvořen a
1
Snapshot - v překladu z anglického jazyka je to fotka, nebo momentka. V počítačových technologiích to znamená nějaký stav zaznamenaný v určitém časovém bodu.
21
jaké má Memory Usage (využití paměti). Vpravo jsou zobrazeny akce, které můžeme provést s daným strojem – New (nový), Edit disc (editování disku), Stop service (zastavení služby).
2.1.2 Citrix XenServer Citrix XenServer vznikl v roce 1990 jako součást výzkumného projektu v Cambridge, který vedli Keir Fraser a Ian Pratt, který je zakladatelem společnosti XenSource. Xenserver poskytoval správu zdrojů, účetnictví a audit, jehož jádro bylo tvořeno hypervizorem. V roce 2002 byl tento produkt zdokonalován vývojáři a v roce 2003 byla vyhlášena první oficiální verze Xen. V roce 2006 byla představena paravirtualizace Xen komunitou a Microsoft a Vmware zavedly paravirtualizaci do svého programu. Společnost Citrix koupila XenSource v roce 2007 a od tohoto roku se všechny produkty jmenují Citrix XenServer. V roce 2009 byl představen Xen cloud Platform. V roce 2011 bylo představeno první linuxové jádro, které je schopno butovat na Xen dom0. [15] Jedná se o virtualizační platformu open-source pro správu serverů, cloudu a desktopů virtuální infrastruktury. Dokáže spravovat virtuální servery s Windows i s Linuxem. Instalace je velice podobná jako u jiných konkurenčních software, po pár minutách je nainstalován hostitel. Po instalaci prvního hostitele je další přidání hostitelů nenáročné. Všichni další hostitelé se konfigurují podle prvního. Mezi využitelné funkce patří okamžité klonování virtuálního stroje, kde je stroj vytvořen podle základní předlohy – tato funkce není nijak časově náročná. V případě vytvoření klonu virtuálního stroje na základní předlohu, není již možný návrat do původní podoby, kterou disponoval před vytvořením na základní předlohu. XenServer dokáže zajistit vysoký výkon na architektuře x86, protože ve velkém množství procesů pracuje na principu Paravirtualizace. Architektura x86 obvykle nespolupracuje s běžnými virtualizačními technikami. [16]
22
Obrázek č. 8: XenCenter Zdroj: http://www.softkey.ru/images/upload/1/000cb2508721b0a81788e0844f2e914d.png
Obrázek č. 8 zachycuje virtualizační prostředí Xen center, kde jsme připojeni přes console (funguje jako vzdálená plocha) na virtuální stroj, na kterém je v této ukázce nainstalován systém windows XP. Tato konzole je aplikací windows a komunikuje s hlavním serverem v jedné farmě. Tuto metodu využívají další konzoly jiných software. V prostředí XenCenter si můžeme servery zobrazovat podle nainstalovaného operačního systému na jednotlivých strojích, podle folderu a nebo podle aktuálního stavu, zda je daný stroj zapnut nebo vypnut atd. Dané stroje si můžeme roztřídit podle jejich stavu stopped nebo running, čímž uspoříme množství času při další práci s nimi.
23
2.1.3 Red Hat Enterprise Virtualization Toto virtualizační prostředí je založeno na technologii KVM (Kernel Virtual Machine). Tato společnost u hypervizorů nepoužívá pouze emulaci hardwaru, ale zaměřuje se hlavně na paravirtualizaci, kde pomocí rozhraní mapuje virtuální stroje přímo na hardware. Časová náročnost instalace hypervizoru je ve srovnání s ostatními virtualizačními prostředími stejná. [17]
Obrázek č. 9: Red Hat Enterprise Virtualization Zdroj: http://www.virtualizationmatrix.com/wordpress/wpcontent/uploads/2011/11/RHEV3.png
V levé části obrázku č. 9 vidíme celý systém ve virtualizačním prostředí Red Hat Enterprise Virtualization s jeho Storage a clustery. V hlavní části obrázku nalezneme všechny virtuální stroje, kde tři jsou vypnuty a tři běží. Pokud je potřeba lze tyto stroje vypnout, nebo zapnout. Jsme informováni o Memory (využití paměti), CPU (využití procesoru), statusu (zda stroj běží, nebo ne), Uptime (po jakou dobu je daný stroj aktivní), Logged - in User (kdo poslední se zalogoval, přihlásil na daný stroj). Spodní výsek obrazovky patří kartě General – hlavní informace o stroji, např. jméno virtuálního stroje, nainstalovaný operační systém, počet jader CPU, definovaná a fyzická paměť, povolení USB a informace, ve které doméně se nachází atd.
24
2.1.4 Proxmox Jedná se o virtuální prostředí open source pro správu serverů. Proxmox je založen na virtualizaci KVM, kontejneru – based a správy virtuálních strojů. Toto prostředí využívá Kernerl – based Virtual machine (KVM) a virtualizační kontejner. Linuxové jádro tohoto prostředí je založeno na distribuci Debian GNU / Linux. KVM umožňuje pustit několik virtuálních počítačů najednou na windows nebo Linux, běžících s neupravenými obrazy. Přestože se jedná o free verzi, jsou využitelné všechny funkce, které toto virtuální prostředí nabízí. [18]
Obrázek č. 10: Virtuální prostředí Proxmox Zdroj: https://www.proxmox.com/cs/proxmox-ve
Na obrázku č. 10 je zobrazeno virtualizační prostředí proxmox, které zobrazuje datové centrum. V hlavní části jsou zobrazeny tři virtuální stroje prox-ceph-1 až prox-ceph-3, které jsou ve stavu online a jsme informování o jejich IP adrese, ID atd. Ve spodní části obrázku je umístěna karta Tasks – úkoly, tam jsou zaznamenány posledně provedené změny se servery. Jsme informováni o virtuálním stroji prox-ceph-1, který byl nejprve vypnut 13. září v 11:37 a poté byl spuštěn stejný den v 11:40.
25
2.1.5 VMware Historie VMware Tato společnost vznikla v Kalifornii v roce 1998. V roce 1999 byla na trh uvedena první verze Workstation 1.0, který umožňuje virtualizaci pracovních stanic. Zakládají se další centra, která jsou v New Yorku a Cambridge. VMware v roce 2001 přivádí na trh VMware GSX server, jedná se o virtualizaci serverů a použití ESX serveru, který má svůj hypervizor. V této době konkurenční společnosti Microsoft a Hyper–V představují své produkty, které virtualizují pouze počítače. VMware Virtual Center a technologie VMware VMotion a Virtual SMP jsou představeny v roce 2003. V roce 2004 se společnost EMC stává vlastníkem VMware a na trh nastupuje Workstation 4.5. V další fázi je podpora 64 bitových systémů. V roce 2005 je vydán Workstation 5.5. Produkty VMware jsou kompatibilní se systémy Microsoft a Linux. V roce 2006 lze tyto produkty instalovat i na Mac OS X. Tento rok byl pro tuto společnost úspěšný, protože přišla na trh s VMware Infrastructure 3, VirtualCenter 2.0 a VMware Server 1.0 (GSX). Konkurence na trhu reaguje představením XenServer 3.0 a XenSource a Microsoft pracuje na společném hypervizoru. V roce 2009 je vydán Workstation 7. [19] VMware nabízí virtualizační produkty, které umožňují provozovat na svých zařízeních více operačních systémů a aplikací, což je přínosem pro většinu klientů. Instalace Vmware není nijak časově náročná. Nabízí výběr ze dvou typů hostitele: ESX nebo ESXi. Vmware vCenter server je nainstalován na jednom hostiteli a umožňuje ovládat celou virtualizaci Vmware. Vmware obsahuje Management Assistant a skriptovací nástroj vSphere CLI. Mezi významné funkce tohoto virtualizačního prostředí patří Fault Tolerance, která zajišťuje nepřetržitou dostupnost virtuálního stroje, kdy v podstatě vytváří kopii primárního stroje na sekundární stroj, která vede ke stálé dostupnosti virtuálního stroje i při výpadku napájení atd. Dále dokáže migrovat data za provozu, aniž by uživatel cokoliv poznal. Jde o přemisťování disku mezi různými datovými úložišti, aniž by došlo k přerušení provozu. Mezi další funkce tohoto produktu patří VMware Data Recovery, která slouží pro plánování záloh, zálohování a obnovu virtuálních strojů. Funkce, která dokáže přidělovat další CPU nebo RAM virtuálním strojům za provozu, patří mezi nadstandartní. [1] [4] .
26
Obrázek č. 11: VMware Zdroj: http://www.sysadmintutorials.com/images/st/vmware/site-recovery-manager-5/srm-5-recovery/07vmware-srm-recovery.jpg
Obrázek č. 11 představuje virtualizační prostředí Vmware Vsphere Client. Vsphere Client nás informuje o všech virtuálních strojích. Pomocí Console se můžeme přihlásit na server Windows 2008 web1. Ve spodní části jsou zobrazeny Recent Task (poslední zaznamenané úkoly).
Jednotlivé funkce VMware V této kapitole jsou popsány funkce VMware: VMotion a Storage VMotion, DRS (Distributed Resource Scheduler), DPM (Distributed Power Management), HA (High Availability), FT (Fault Tolerance), Consolidated Backup, Storage Thin Provisioning, Profile – Driven Storage
VMotion a Storage VMotion Během této funkcionality můžeme přenést (zmigrovat) běžící virtuální stroj, který je na jednom hostiteli, na druhý bez vypnutí běžícího virtuálního stroje. Velká výhoda je, že tento virtuální stroj není odstaven ani odpojen od síťového připojení. Uživatel nic nezaznamená. Tento proces je nazýván živá migrace. [1] 27
. Obrázek č. 12: VMotion Zdroj: http://www.vmware.com/cz/products/vsphere/features/vmotion
Ze schématu funkce Vmotion (obr. č. 12) je patrné, že na 2 hostitelích běží virtuální stroje. Při použití Vmotion je provedena migrace virtuálního stroje z druhého hostitele na první. Uživatel během této migrace nic nepozná. Tato funkce bývá využívána správcem při běžné údržbě, kdy mu umožňuje přesunout virtuální stroje z jednoho hostitele na druhý a na prvním hostiteli provést danou údržbu a po provedení potřebné údržby přesunout tyto virtuální stroje na původního hostitele. “Dokonce i v průběhu běžných denních úkonů lze VMotion využívat například tehdy, když několik virtuálních strojů na témže hostiteli soupeří o stejný prostředek (což může kriticky snížit výkon všech virtuálních počítačů). Správce může tento problém vyřešit pomocí VMotion tak, že některý ze soupeřících virtuálních strojů přesune na jiného hostitele ESX/ESXi, kde je k dispozici více dostupných prostředků. Když například dva virtuální počítače soupeří o kapacitu CPU, lze tomu zamezit přesunutím jednoho stroje na hostitele s větší dostupností CPU. “ [1] V případě navýšení potřeby diskového pole dokáže Storage Vmotion přesunout nezbytné diskové prostory na běžících virtuálních strojích mezi jednotlivými datovými úložišti, což je velký přínos při migraci ze starého diskového pole na nové.[1]
28
DRS (Distributed Resource Scheduler) Úkolem DRS je zjišťování vytíženosti prostředků na všech hostitelích ESX/ESXi. Prvním příkladem je sledování vytíženosti CPU a RAM na jednotlivých hostitelích. V prvotní fázi je virtuální stroj přesunut na hostitele, který je v daném časovém horizontu pro tento virtuální stroj nejvhodnější. Po celou dobu běhu virtuálního stroje se snaží DRS najít a zajistit dané prostředky pro tento stroj, aby nedocházelo k pokusu o využití těchto prostředků jinými stroji a nesnižoval se tím výkon. DRS umísťuje virtuální stroje na jednotlivé hostitele, které jsou v daném okamžiku nejvhodnější. Velkým přínosem je to, že může virtuální stroje přesouvat i za jejich plného provozu. Například 3 servery mají aktivovanou funkci DRS a využívají klastr ESX/ESXi. Při větším zatížení jednoho serveru, který začne využívat větší množství CPU, je virtuální stroj, který nejvíce zatěžuje server, přesunut funkcí DRS na jiný server, který má volné prostředky pro jeho využití procesoru. Tímto přemístěním nebude první procesor na serveru tolik vytížen a chod serverů bude plynulejší. Funkce DRS je velice výhodná s kombinací používání menších serverů. Při použití většího počtu menších serverů je zajištěna lepší flexibilita, než když budeme mít menší počet větších serverů. Větší servery jsou obvykle dražší a výkonnější, ale větší servery nemusí být pro správnou funkčnost virtualizace vždy lepší. [1]
Obrázek č. 13: DRS Zdroj: http://www.vmware.com/cz/products/vsphere/features/drs-dpm.html
Funkce DRS (Distributed Resource Scheduler) (obr. č. 13) slouží ke zjišťování vytíženosti prostředků na všech hostitelích ESX/ESXi. Z obrázku vyplývá, že DRS je 29
aktivována na všech 3 serverech. Na každém serveru běží několik virtuálních strojů. Na druhém serveru potřebuje jeden z virtuálních strojů využít větší množství CPU. Funkce DRS přesune ostatní virtuální stroje na třetí server a na druhém zůstane pouze jeden virtuální stroj. Po tomto procesu je veškerá využitelnost CPU u druhého serveru věnována pouze tomu virtuálnímu stroji, který na ní právě běží, a v aktuální situaci využití procesoru nejvíce potřebuje.
DPM (Distributed Power Management) Tato funkce umožňuje přesunutí virtuálních strojů na jiného hostitele ESX/ESXi, což vede ke značnému snížení nákladů spojených s údržbou hardwaru a spotřebou energie. Nepotřebné Esxi jsou vypnuty po přesunu virtuálních strojů. V případě potřeby vyššího počtu hostitelů Esxi jsou hostitelé znovu aktivovány a virtuální počítače jsou rozděleny dle potřeby zpět na dané hostitele. Po skončení pracovní doby můžeme přesunout virtuální stroje z jednoho hostitele na druhý a nevyužívaný server můžeme vypnout a tím je zajištěna úspora energie, která při velkém množství serverů přináší značné úspory. Funkce DPM doporučuje vypnutí jednoho hostitele, pokud obě CPU a paměti na obou hostitelích jsou jenom lehce zatíženy. Jeden hostitel vypne a druhý přebere vykonávanou práci za prvního. Pokud jsou vypnuty hostitelé funkcí DPM, vCenter Server je zobrazuje v pohotovostním režimu. Pohotovostní režim nás informuje o tom, že v případě potřeby mohou být kdykoliv zapnuty. Tato funkcionalita je obsažená v Distributed Resource Scheduler a záleží jenom na správci systému, jestli ji bude využívat. [20] DPM redukuje silové vytížení. Šetří příkon energií a chlazení (při menším počtu běžících serverů není potřeba velké využití klimatizace). Automatizace umožňuje čerpání energií efektivně.
30
Obrázek č. 14: DPM Zdroj: https://www.google.cz/search?q=distributed+power+management+picture&biw=1200&bih=584&tbm=isch&tbo =u&source=univ&sa=X&ei=-CxJVLq9C4nEPbmZgJgI&ved=0CCQQsAQ
Na třech serverech na obrázku č.14 běží aplikace a OS. Při vypnutí prvního serveru se přesunou běžící aplikace na zbylé dva servery. V tomto případě se jedná o plánované vypnutí serveru. Pokud potřebujeme vypnout druhý server, tak se všechny běžící aplikace přesunou na další server. Tuto funkcionalitu využívají správci serverů po skončení pracovní doby, protože tím redukují silové vytížení.
High Availability – HA Pomocí této funkce dokážeme udržet v provozu všechny virtuální stroje při výpadku serveru, na kterém byly tyto stroje realizovány. Z důvodu nereálného předvídání chybových stavů daného serveru nemůže HA používat technologii V Motion pro migraci dat na jiného hostitele jako DRS, protože se v tomto případě nejedná o plánované odstavení serveru. [1]
31
HA musí reagovat na nenadálé výpadky chybou na fyzickém hostiteli. HA dokáže sledovat virtuální stroje a při vnitřní chybě je může automaticky restartovat. Pokud dojde k selhání hostitele ESXi a funkce HA je aktivní, tak je virtuální stroj restartován a spuštěn na jiném funkčním hostiteli. U používání této funkce došlo k velkému zlomu od verze vSphere 4.0. Na každém hostiteli lze nyní provozovat 512 virtuálních počítačů. V případě umístění virtuálních počítačů v clusteru je jejich počet navýšen na 3000. V dřívějších verzích to bylo u hostitele 100 virtuálních počítačů a u clusteru 1280 virtuálních počítačů. Při použití funkce HA se naruší provoz. Pokud dojde k pádu fyzického serveru, tak je virtuální počítač restartován. Tento proces restartování zajistí funkce HA. Všechny služby, které běží na tomto virtuálním stroji, jsou nedostupné po dobu jeho nečinnosti, kdy je restartován. Po naběhnutí virtuálního stroje jsou všechny služby nastartovány a vše běží normálním způsobem. [1] [4]
Obrázek č. 15: HA – High Availability Zdroj: http://www.vmware.com/files/images/thumbnails/vmw-dgrm-vsphere-0791-1-lg.jpg
Na obrázku č. 15 je zobrazena funkce HA (High Availability). V normálním provozu pracují tři servery. Na každém serveru běží několik virtuálních strojů s operačním systémem. Náhle dojde k selhání druhého serveru. Všechny virtuální stroje, které běží na tomto serveru, jsou restartovány a přesunuty na zbývající dva servery. Uživatel nepostřehne, že vůbec k nějakému výpadku došlo. V tomto případě se jedná o neplánovaný výpadek proudu, kdy administrátor nemůže předpovídat, kdy k němu dojde. 32
Fault Tolerance Pro některé uživatele nemusí být funkce HA dostačující, protože vyšší dostupnost není zajištěna podle jejich představ. HA zajišťuje ochranu před selháním fyzického serveru restartem virtuálního počítače. Při restartu virtuálního stroje je tento počítač po dobu 2 až 3 minut nedostupný. Při použití funkce vSphere Fault Tolerance nedojde k nedostupnosti virtuálního stroje, protože používá zrcadlovou synchronizaci, která vychází z technologie vLockstep. Tato technologie vytváří sekundární stroj (v podstatě kopii primárního stroje) na fyzickém hostiteli. Veškeré aktivity – služby aplikace na primárním stroji jsou realizovány na druhém sekundárním stroji. V případě poškození fyzického hostitele se aktivuje sekundární stroj a pokračuje se bez ztráty konektivity. To samé by se opakovalo, pokud by nastala stejná situace (chyba) na fyzickém hostiteli, který je v tento moment primární, ale v prvotní fázi byl sekundární, kdy zrcadlil primárního hostitele. V tomto okamžiku by se aktivoval třetí stroj, který by byl primární a čtvrtý stroj sekundární. Tímto způsobem jsme zajistili trvalou ochranu primárního virtuálního stroje. Může nastat situace, že na hostiteli vypadne několik virtuálních strojů a na tomto hostiteli je primární i sekundární stroj. V tomto případě je primární stroj zaveden na jiný server pomocí HA a ihned je vytvořen nový sekundární stroj, což zajistí Fault Tolerance. Tímto je dosaženo stálého chodu všech virtuálních strojů. [1] [4]
Obrázek č. 16: Fault tolerance Zdroj: http://info.nsiserv.com/Portals/14250/images/ft%202.png
33
Obrázek č. 16 ilustruje funkcionalitu Fault tolerance. V horní části obrázku jsou zobrazeny dva hostitelé (primární a sekundární). Ve spodní části obrázku došlo u prvního stroje k výpadku a začal být aktivní druhý stroj, ze sekundárního stroje se stal primární a třetí stroj se stal novým sekundárním. Výhody: Okamžité nahrazení vypadnuvší VM beze ztráty dat a výpadku služby Plně automatizované v rámci clusteru Nevýhody: Dvě synchronně „jedoucí“ VM Dvojnásobek použitých zdrojů Zátěž na infrastruktury v rámci ESXi
Consolidated Backup VMware consolidated Backup (VCB) slouží jako systém zálohování. Tato funkce zajišťuje ochranu dat pro virtuální stroje v lokálních i nelokálních sítích jiných systémů. Zálohování lze aplikovat na virtuálním serveru nebo jednoúčelovém fyzickém. U jiných systémů mohou být použity různé zálohovací nástroje NetBackup, Backup Exec atd. Zálohování probíhá na VCB serveru, na který jsou pomocí snímkování z ESX/ESXi připojeny snímky do souborových systémů. Nástroje jiných systémů nám umožňují zálohovat jednotlivé soubory nebo virtuální stroje ihned po připojení souborů z VCB serveru. [1] Consolidated Backup obsahuje ovladač VLUN a integrační modul, který je určen podle zálohovacího software. VLUN umožňuje snímání snapshotů virtuálního stroje a proxy serveru, řídí snímkování a je dostupný pro zálohování. [10]
34
Obrázek č. 17: Consolidated Backup Zdroj: http://www.virtualizationadmin.com/faq/vmware-vcb.html
Na obrázku č. 17 je znázorněn VMware Consolidated Backup s různými nástroji, které zajišťují zálohování systémů. VCB může běžet na virtuálním nebo fyzickém serveru, kde probíhá zálohování. Na ESX serveru běží virtuální stroje. Tento proces je založen na tom, že VCB vezme snímky snapshoty a připojí je k centralizovanému proxy serveru. Na proxy serveru běží pouze agenti a data a archivy dat jsou na backup disku.
Storage Thin Provisioning Tato funkce je nazývána Thin provisioning a snaží se optimalizovat dostupný fyzický prostor. Storage Thin Provisioning umožní virtuálnímu serveru vidět větší množství kapacity, kterou potřebuje pro svou činnost. Ve skutečnosti nemá tento server přidělenou kapacitu, ale tento diskový prostor je mu přidělen až některá, na něm běžící, aplikace potřebuje využít tento diskový prostor a skutečně na něj zapíše nějaká data. Takto můžeme efektivně pracovat s diskovým prostorem a serveru vnutíme, že má velké množství volného místa na disku. [21]
35
Obrázek č. 18: Storage Thin Provisioning Zdroj: https://www.vmware.com/cz/products/vsphere/features/storage-thin-provisioning
Schéma na obrázku č. 18 naznačuje datastore, virtuální disky a tři virtuální servery. Datastore, který má celkovou velikost 100 GB, obsahuje tři virtuální disky, které jsou určeny pro tři virtuální servery. První virtuální server, který je umístěn vlevo nahoře, má k dispozici tzv. thick disk, což je standardní disk, tak jak je známý u normálního fyzického serveru. Jeho skutečná velikost oddílu je 20 GB a celý tento oddíl je na datastoru alokován. Druhý virtuální server využívá funkcionalitu vStorage Thin Provisioning. Systém detekuje, že má přidělený oddíl o velikosti 40 GB, ale reálných dat má pouze 20 GB a v datastoru jeho 40 GB dat velký oddíl s 20 GB dat ve skutečnosti zabírá pouze oněch 20 GB. Třetí virtuální server pak má oddíl o velikosti 80 GB a systém detekuje, že má přidělený oddíl 80GB a 40 GB dat ve skutečnosti. Díky thin provisioningu v datastoru zabírá reálně právě 40 GB. Po sečtení velikosti oddílů všech tří oddílů virtuálních serverů zjistíme, že mají dohromady velikost 20 GB + 40 GB + 80 GB = 140 GB, což je o 40 GB více, než mají kapacitu disky v datastoru. Ve skutečnosti však máme k dispozici stále ještě 20 GB diskového prostoru, který si mohou aplikace na jednotlivých serverech alokovat. Pokud bychom v tomto případě nepoužili vStorage Thin Provisioning, museli bychom rozšiřovat kapacitu datastoru, respektive diskového pole, třetí virtuální server by se nám sem již nevešel, kapacita by musela být o 40 procent větší než současná, a to bez jakékoliv rezervy.
36
Profile – Driven Storage Jedná se o funkcionalitu, která se vyskytuje u verze VMware 5 a vyšších verzí. Můžeme kombinovat úložiště a profily virtuálních počítačů a přemístit virtuální počítač do takového úložiště, kde může dostatečně využívat výkon a kapacitu. Toto je řízeno přes rozhraní API, které má na starosti kontrolu úložišť a které je závislé na profilech úložišť daných virtuálních počítačů. Informace o možnosti úložiště lze získat přímo z pole úložišť, pokud je schopno komunikovat pře rozhraní API, nebo lze nadefinovat přes prostředí vSphere. Vlastnosti virtuálního počítače a virtuálních pevných disků na úložiště se definují pomocí profilů úložiště virtuálního stroje. Při realizaci nového profilu si zvolíme, jaké funkce mají být dostupné pro správnou funkci virtuálního počítače. V další fázi definujeme úložiště virtuálního stroje. Pomocí funkce Profile – Driven Storage je zajištěna kontrola umístěných virtuálních počítačů ve sdíleném úložišti a poskytnutí dostatečného množství kapacity jednotlivým virtuálním strojům. [4]
Obrázek č. 19: Profile – Driven Storage Zdroj: http://www.vmware.com/cz/products/vsphere/features/storage-policy-based-management
37
Funkce Profile–Driven Storage na obrázku č. 19 obsahuje tradiční úložiště (Traditional storage) a definované úložiště (Software defined storage). Toto úložiště automatizuje skladovací operace prostřednictvím standardizovaného přístupu. Storage – Based Policy Management je řídící politika, která poskytuje správu nad externími úložišti SAN a NAS, nad serverovými úložišti a hypervizorem založeným na datových službách – vSphere Replication. Storage – Based Policy Mangement umožňuje zachytit požadavky na kapacitu, výkon, dostupnost pro aplikace ve formě logických šablon nazývaných VM politika úložišť (VM storage policies). Dále zajišťuje a povoluje dynamickou kontrolu úrovně služeb úložišť pro virtuální stroje. Tyto politiky slouží jako automatizace kontroly a zajištění určité úrovně služeb po celou dobu životního cyklu aplikace. VI Admin může provést změny politik kdykoliv a nezbytné změny infrastruktury jsou konfigurovány prostřednictvím automatizace, tímto jsou umožněny rychlejší změny v dané společnosti. Profile Driven Management na tradičním úložišti pro VMFS a NFS datové úložiště běží na tradičním LUN pro základní úložiště. Storage – Based Policy Management povoluje řízení profilů managementu na základě předem přidělených paměťových zdrojů a schopností. Pokud chceme pomocí SPBM kontrolovat změny úložiště profilů, práva musí být nakonfigurována na fyzickou infrastrukturu. To se liší od software defined storage, kde kombinace zdrojů a datových služeb může být dynamicky potvrzena v reálném čase. [22]
2.2 Výsledné porovnání virtualizačních prostředí Porovnávat tyto virtualizační prostředí není jednoduché, protože se všechny produkty snaží nabízet podobnou funkcionalitu, ale u každého produktu se liší v propracovanosti jednotlivých funkcionalit. VMware je i přes dnešní konkurenci stále o krok vpředu před ostatními virtualizačními prostředími. Pro použití implementace infrastruktury do virtuálního prostředí jsou nejrozšířenější produkty VMware, Microsoft, Red Hat a Citrix. Proxmox si ještě nevydobyla na trhu takovou pozici jako výše jmenované společnosti.
38
Instalace a konfigurace clusteru se u Hyper–V liší od ostatních. VMware a Red Hat Enterprise Virtualization mají instalaci hostitelských počítačů a virtuálních strojů v jednom instalačním balíčku, kdežto Hyper–V využívá několik nástrojů. Při zátěži hypervizorů produkty VMware vSphere a Microsoft Hyper–V s Windows dosahují velmi dobrých výsledků. XenServer s Windows a Hyper–V s Linuxem zaostávají za ostatními. Při zátěži hypervizorů s Linuxem jsou na vrcholu vSphere, XenServer a RHEV. Pokud chceme porovnávat rychlost šifrování, která slouží jako podpora AES-NI instrukcí procesorů, tak XenServer a vSphere jsou rychlejší než zbylé dva Hyper-V a RHEV. Funkce sdílení stránek a komprimaci paměti nabízí pouze VMware vSphere a Ret Hat Enterprise Virtualization. Funkce migrace storage za provozu může nabídnout jedině VMware. Všechny hypervizory využívají emulaci hardwaru, ale RHEV používá paravirtualizaci k mapování virtuálních strojů. [23]
Obrázek č. 20: porovnání prostředí Zdroj: http://www.vmwarenews.cz/vmw/vmwnews.nsf/0/53bb1b111be5a818c12575e5005f83a6
Graf z obrázku č. 20 zachycuje splněná kritéria podle metodiky Burton Group, kde jsou porovnávány produkty od společnosti VMware, Citrix a Microsoft.
39
Verze VMware V současné době jsou k dispozici tyto licenční řady: VMware vSphere Essential, VMware vSphere Essential Plus, VMware vSphere Standard, VMware vSphere Advanced, VMware vSphere Enterprise, VMware vSphere Enterprise Plus.
40
3 Popis implementace infrastruktury do virtuálního prostředí 3.1 Hypervizor ESX a ESXi Ze všech porovnávaných virtualizačních prostředí jsme pro bližší rozbor a popis implementace zvolili Vmware. Nejdříve je potřeba vybrat hypervizor. VMware nabízí dva druhy hypervizoru: VMware ESX a ESXi. Tyto hypervizory jsou si velice podobné, jejich funkce jsou stejné a instalují se na holý hardware. Hypervizor ESX obsahuje VMkernel a Service Console. VMkernel dohlíží na komunikaci virtuálních počítačů k fyzickému hardwaru, kterou zajišťuje pomocí správy paměti, plánování CPU atd. Service Console plní úkol operačního systému, který vykonává služby jako webový server, firewall a nebo Simple Network Management Protocol (SNMP). Samozřejmě v porovnání s plně funkčním operačním systémem Service Console zaostává, ale je to jen proto, aby plnila a zabezpečovala funkce, které jsou nutné pro podporu virtualizace, a to plně dostačuje. Hlavním úkolem Service Console je komunikace s VMkernel, který tvoří jádro virtualizačního procesu. Hypervizor ESXi je novější druh hypervizoru. Dokáže zajistit stejné virtualizační funkce jako VMkernel ESX, ale neobsahuje nástroj Service Console. Z tohoto důvodu mu dostačuje 32 MB pro jeho instalaci. Vývoj VMware ESX serveru byl zastaven a nyní je vyvíjen pouze ESXi. Poslední verze ESX je ESX Server 4.1. Od verze VMware vSphere 5.0 není obsažen hypervizor ESX. ESXi vyžaduje výběr ze dvou nabízených prostředí: instalovatelného (Installable) a vestavěného (Embedded). Instalovatelná verze – jedná se o tradiční formu hypervizoru vSphere. Při této instalaci musíme rozhodnout, zda chceme nainstalovat ESXi na lokální disky serveru, nebo využít spustitelný program z konfigurace SAN. Tuto instalaci lze provést pomocí skriptů, v tomto případě se jedná o bezobslužnou instalaci. Vestavěná verze – hypervizor vSphere je nainstalován do trvalého úložiště jako OEM licence. V tomto případě se jedná o úsporu času pro správce, kteří provádí instalaci. [1] [4]
41
Obrázek č. 21: Architektury ESX a ESXi Zdroj: http://virtualization.info/en/news/2011/05/paper-vmware-esxi-4-1-operations-migration-guide.html
Na obrázku č. 21 je vyobrazena architektura obou hypervizorů VMware ESX a VMware ESXi. Hypervizor ESX obsahuje COS (Console system) – konzole operačního systému. Tato konzole obsahuje Hardware monitoring agents, System management agents, Cli commands for configuration and support, Vmware management agents a Infrastructure agents. Hypervizor ESXi už COS nepoužívá, pro všechny a agendy a služby používá VMkernel, které tvoří jádro virtualizačního procesu a v tomto jádře jsou všechny potřebné složky obsaženy. Výběr ESX nebo ESXi Tento výběr připadá v úvahu pouze do verze ESX Server 4.1. Vyšší verze obsahují pouze hypervizor ESXi. Při výběru musíme zvážit několik důležitých faktorů. Oba tyto hypervizory podporují DRS, DPM, FA atd. a používají 64 bitový hypervizor. ESX může více pracovat s nástroji jiných systémů a používat skripty, ale u ESXi je menší pravděpodobnost výskytu bezpečnostních rizik, protože nepoužívá Service console, která je založena na Linuxové platformě. Dalším faktorem, který si musíme uvědomit, je, že ESX obsahuje linuxovou servisní konzolu a to může být problém při obsluze IT týmu, který se bude muset naučit nové technologie při správě této konzoly. Důležité je zvážit podporu hardware a použití aplikace jiných systémů. Je nezbytné být obezřetný při instalaci service console u ESX, kdy je zapotřebí přesně zadat síťovou kartu. Při špatném nadefinování síťové karty nelze na server udělat ping a webová stránka bude nedostupná. [1]
42
Obrázek č. 22: Porovnání verzí
Zdroj: http://blogs.vmware.com/vsphere/2009/06/esxi-vs-esx-a-comparison-of-features.html Obrázek č. 22 znázorňuje verze Vmware. Virtualizační prostředí VMware má 7 dostupných verzí: ESXi Simple Server, Essential, Essential Plus, Standard, Advanced, Enterprise, Enterprise Plus. Vidíme, které verze obsahují hypervizor ESX a ESXi. U všech verzí až na jednu máme na výběr ze dvou možností výběru hypervizoru. Můžeme zvolit hypervizor ESX nebo ESXi. Pouze u verze ESXi Single Server můžeme použít pouze hypervizor ESXi. Tabulka nás informuje o dalších funkcích jednotlivých verzí VMware: vCenter Server Compability – kompatibilita s vCenter Serverem, Cores per Processor – počet jader procesoru, vSMP Support – vSMP podpora, Memory /Physical server – velikost paměti fyzického serveru, Thin Provisioning – zda obsahuje daná verze funkci Thin Provisioning. Dále jsou popsány ostatní funkce VC Agent, Update Manager, VMSafe, vStorage APIs for data Protection, High Availability – vysoká dostupnost, Data Recovery, Hot Add, Fault Tolerance, vShield Zones, VMotion, Storage VMotion, DRS+DPM, vNetwork Distributed Switch, Host Profiles, Third Party Multipathing. Některé funkcionality z této tabulky jsou popsány v kapitole Jednotlivé funkce VMware. 43
3.2 vCenter Server vCenter Server umožňuje správu virtuálních strojů, které jsou na hostitelích ESX/ESXi. Zdroje z dostupných hostitelů jsou shromažďovány do vCenteru Serveru a dále jsou tyto informace rozdělovány mezi virtuální stroje datového centra. vCenter Server obsahuje tyto systémové služby: Správa virtuálních strojů. Správa hostitelů ESX/ESXi. Správa šablon. Správa prostředků hostitelů ESX/ESXi a virtuálních strojů. Nasazování virtuálních strojů. Statistika a přihlašování. Plánování úloh. Správa alarmů a událostí. Při používání pokročilých funkcí, jako je VMware vMotion, VMware Distributed Resource Scheduler (DRS), VMware High Availability (HA) je nutné mít vCenterServer. [1] [4]
Obrázek č. 23: v Center Server Zdroj: https://pubs.vmware.com/vsphere-4-esxvcenter/index.jsp?topic=/com.vmware.vsphere.gsclassic.doc_41/getting_started/c_about_vmware_infrastr ucture.html
44
vSphere Client spravuje vCenter server (obr. č. 23), ke kterému jsou připojeny 4 hostitelé ESX/ESXi. Tyto hostitelé tvoří datové centrum. Na těchto hostitelích běží virtuální stroje, na kterých jsou nainstalované libovolné operační systémy. vCenter Server provádí tyto funkce: viditelnost (visibility) Pomocí vCenter Serveru můžeme konfigurovat ESX servery a virtuální stroje a můžeme monitorovat celou infrastrukturu, která je zajištěna pomocí událostí a upozornění. Objekty ve virtuální infrastruktuře mají různé role a oprávnění. škálovatelnost: (scalability) vCenter Server je škálovatelný servery ESX a virtuálními stroji. Jeden vSphere klient může obsluhovat několik vCenter Serverů. automatizace: (automation) vCenter Server může vyvolat akce pomocí výstrah. vCenter Server povoluje automatizovat stovky akcí. [11]
Obrázek č. 24: VMware vCenter Server Zdroj: http://www.onekobo.com/Articles/vSphere/Obj01/Obj1-5/Obj1-5b.html
VMware vCenter Server (obr. č. 24) obsahuje funkce: Automation, Scalability a visibility.
45
Minimální hardware pro systém vCenter Server Procesor o rychlosti nejméně 2 GHz. Alespoň 2 GB RAM. 1 GB volného místa na disku (pro lepší funkčnost 2 GB). Síťový adaptér (gigabitový Ethernet). Windows Server 2003 Service Pack 1 nebo Service Pack 2 (x86 nebo x64), Windows Server 2003 R2 s balíkem nebo bez balíku Service Pack 2 (x86 nebo x64), nebo Windows Server 2008 (x86 nebo x64). [1] [4] V tomto případě se jedná o minimální požadavky. V datovém centru, kde je velké množství hostitelů, bychom museli tyto požadavky navýšit. vCenter Server spravuje hostitele a virtuální stroje, ale pro plné využití své funkce potřebuje databázový server, na kterém jsou uloženy záznamy událostí, uživatelské účty a různá konfigurační nastavení.
Vcenter server podporuje pouze tyto databázové servery Oracle 10g R2. Oracle 11g R1. Oracle 11g R2. IBM DB2 9.5 (nutná aktualizace Service Pack 5, doporučena aktual. Service. Pack 7). IBM DB2 9.7 (nutná aktualizace Service Pack 2, doporučena aktual. Service Pack 3a). Microsoft SQL Server 2005 Express Edition. Microsoft SQL Server 2008 (x86 nebo x64). Microsoft SQL Server 2008 R2.
3.3 vSphere Update Manager Jedná se o softwarový balíček k vCenteru Serveru, který zajišťuje aktualizace pro ESXi hostitele a také se stará o aktualizace na virtuálních strojích. Automatická instalace aktualizací hostitelů ESXi. Rozpoznává zastaralé systémy, pomocí pravidel určených uživatelem. Skenování a prohledávání systémů neobsahující nejnovější aktualizace. Plná integrace s funkcemi ve vSphere (DRS atd.). 46
3.4 Servery Výkon serverů v dnešní době převyšuje požadavky softwaru. Malé datová centra nasazují velké množství serverů a každý z nich využije pouze 5 – 15 % své kapacity. Při konsolidaci dochází k transformaci z fyzických serverů na virtuální servery pomocí virtualizačních prostředí. Virtuální stroje, které jsou dostatečně navrženy na fyzickém serveru, jsou provozovány samostatně. Tím je zajištěna větší vytíženost fyzického serveru, který může mít na sobě několik virtuálních serverů. Společnost tak využije méně fyzických serverů s větším přínosem pro firmu. [24]
Obrázek č. 25: Konsolidace Zdroj: http://www.oldanygroup.cz/virtualizace-vmware-zakladni-informace-9/
Na obrázku č. 25 je zobrazena konsolidace serverů. V rackové skříni je umístěno několik fyzických serverů, které nejsou plně využity. Pomocí konsolidace a využití VMware je na jeden fyzický server nainstalováno několik virtuálních strojů. Tímto je fyzický server plně využit. Pro naše datové centrum musíme zvolit servery, které budeme používat. Použijeme jeden fyzický server pro zálohy atd. a na dalších dvou fyzických serverech bude pomocí VMware používané několik virtuálních strojů a virtuální servery.
3.4.1 Virtuální servery Je zapotřebí zvolit správný server, na kterém můžeme provozovat naše virtuální servery. Na dnešním trhu jsou dostupné servery mnoha značek – HP, IBM, DELL. Zvolili jsme server HP ProLiant BL460c G6 E5502 1,86 GHz Dual Core 6 GB Blade Server. Na těchto serverech bude nainstalován vCenter Server a Microsoft SQL Server. Pomocí 47
virtualizačního prostředí VMware můžeme provozovat tiskový, aplikační, databázový, terminálový, webový server. To už by záleželo na potřebách konkrétní společnosti.
Obrázek č. 26: Servery Zdroj: http://www.karma-group.ru/Sites/karma/Uploads/BL460cG6_4.206159b1beeffb7df61cc03c3f73869eec4.jpg
Obrázek č. 26 zachycuje podobu serverů HP ProLiant BL460c G6 E5502 1.86GHz Dual Core 6GB Blade Server.
3.4.2 Fyzický server Při výběru fyzického serveru, bude použit Server HP ProLiant DL360 G7. Je to ideální fyzický server, který nabízí koncentrovaný výkon 1U. Má výkonný Processor: Intel® Xeon® Processor X5606 (2.13 GHz, 8MB L3 Cache, 80 Watts, DDR3-800), s Chipsetem Intel® 5520, který je dostačující pro naše potřeby. Na tomto serveru jsou implementovány DNS (Domain Name System) a DHCP (Dynamic Host Configuration Protocol) a Domain Controller, které zajišťují ověřování IP adres při přihlašování uživatelů do sítě. V případě pádu nebo havárie všech virtuálních serverů by se uživatelé v naší lokalitě mohli přihlásit na svých stanicích do sítě, protože ověřování IP adres by zabezpečoval tento fyzický server. Uživatelé by se dostali na webový server, který by byl umístěn v jiné lokalitě serverů, pokud by měla naše modelová společnost servery na více lokalitách. Jejich provoz by byl omezen pouze daty na našich virtuálních serverech, které by neběžely. 48
Obrázek č. 27: Fyzický server Zdroj: http://www.pcpro.co.uk/gallery/reviews/361432/hp-proliant-dl360-g7
3.5 Diskové úložistě Bylo zvoleno diskové úložiště HP MSA 2040 1G iSCSI Dual Controller w/6 900GB 6G SAS 10K SFF HDD Bundle/TVlite
Obrázek č. 28: Diskové úložiště Zdroj: http://www8.hp.com/cz/cs/products/disk-storage/product-detail.html?oid=6991515#!tab=specs
3.6 Switch Existují dvě varianty tohoto switche: Fiber Channel switche a switche podporovaný technologií iSCSI. Při porovnání těchto 2 technologií Fiber Channel disponuje větší propustností, ale ke své plné funkčnosti potřebuje kompatibilní hardware. Rozhraní SCSI nemusí mít žádný specifický hardware, dokáže komunikovat s celým vybavením, na kterém běží síť, a proto je zavedení této technologie levnější. Při porovnání výkonu je FC trochu výkonnější než iSCSI, ale při správné implementaci je rozdíl nepatrný. Implementace iSCSI není složitá, z toho důvodu je 49
třeba vyvarovat se pouze základních chyb, které mohou být způsobeny nesprávnou konfigurací. [25]
Obrázek č. 29: Switch Zdroj: http://dcomcomputers.com/i-13380439-dell-powerconnect-6224-switch-bundle-with-stacking-moduleand-cable.html
3.7 Páskové zálohovací zařízení Pro zálohování byla zvolena pásková knihovna DELL PowerVault TL2000. Toto zálohovací zařízení je kompatibilní v podstatě se všemi serverovými technologiemi např. Dell, IBM, HP. Knihovna je vybavena 24 sloty do kterých lze umístit 24 magnetických pásek. Lze zvolit mezi technologiemi LTO-4, LTO-5, LTO-6. Konfigurace knihovny 1 nebo 2 LTO-4 6Gb SAS disk (y) s 24 sloty 1 nebo 2 LTO-4 8Gb FC disk (y) s 24 sloty 1 nebo 2 LTO-5 6Gb SAS disk (y) s 24 sloty 1 nebo 2 LTO-5 8 Gb FC disk (y) s 24 sloty 1 nebo 2 LTO-6 6Gb SAS disk (y) s 24 sloty 1 nebo 2 LTO-6 8Gb FC disk (y) s 24 sloty Při výběru technologie SAS Dual Drive je možné provádět dvě zálohovací úlohy najednou. Při ovládání máme výběr ze dvou možností. Můžeme toto zařízení obsluhovat přímo na ovládacím panelu s LCD, nebo přes webové rozhraní. [26]
50
Obrázek č. 30: Pásková knihovna Zdroj: http://www.dell.com/us/business/p/powervault-tl2000/pd
3.8 UPS Navrhujeme použít APC Smart-UPS RT 3000VA Rack-mount XL on-line, v případě výpadku napájení jsou všechny servery napájeny z této UPS. Jedná se o UPS, která má maximální nastavitelný výkon 2100 W /3000 VA a jmenovité výstupní napětí 230 V. U těchto druhů UPS on-line, není při výpadku proudu nebo jakémkoliv zkreslení vstupního napětí žádná prodleva v přechodu na bateriový režim a udržuje se stálé konstantní napětí. [27]
Obrázek č. 31: UPS Zdroj: http://www.alza.cz/apc-smart-ups-rt-3000va-rack-mount-xl-on-line-d259233.htm#foto
APC Smart-UPS RT 3000VA Rack-mount XL on-line (na obrázku č. 32) patří mezi UPS, která se umísťují do rackových skříní. Na horním (čelním) pohledu na UPS si všimneme především tlačítka pro vypnutí a zapnutí. Jsou zde i led diody, které nás informují o stavu baterie a dalších důležitých informacích o stavu UPS. 51
Ve spodní části obrázku je zobrazena zadní část UPS. K této UPS lze připojit 8x IEC 320 C13 2x IEC 320 C19 2x IEC Jumpers
3.9 Mapy v systému vCenter Server Pomocí záložky Maps si můžeme zobrazit uspořádání jednotlivých serverů a databází ve virtuálním prostředí, můžeme zobrazit celou virtuální infrastrukturu, která je na serveru HP ProLiant BL460c G6 E5502 1.86GHz Dual Core 6GB Blade Server. Můžeme znázornit vztahy mezi hostitelem a virtuálním strojem, hostitelem a sítí, hostitelem a datovým úložištěm, virtuálním strojem a sítí, virtuálním strojem a datovým úložištěm.
: Obrázek č. 32: Mapa serverů Zdroj: autor
52
Na obrázku č. 31 je naznačeno virtualizační prostředí Vmware Vsphere Client, ve kterém je zobrazena mapa uspořádání virtuálních serverů a databází v dané společnosti. Sc001.cop je HP ProLiant BL460c G6 E5502 1.86GHz Dual Core 6GB Blade Server. Na tento server jsou umístěny virtuální servery Sněhurka, Šmudla, Štístko a Bručoun. Všechny tyto servery jsou zapojeny do firemní sítě Net - company. Vpravo si můžeme nastavit přiblížení na danou mapu a další nastavení různých Host options a VM options (vysvětleno nad obrázkem).
53
4 Návrh automatizace některých manipulačních zásahů 4.1 PowerShell Operační systém Windows se vyvíjí už několik desítek let a možnosti automatizace nebo správa pomocí příkazového rozhraní nesplňovala všechna očekávání. Než se dostal PowerShell do dnešní podoby, musel projít různými etapami vývoje. Mezi nejčastěji používané varianty patří příkazové prostředí MS DOS a Cmd.exe Příkazové prostředí MS DOS – první počítače byly ovládány pomocí textových příkazů. Tato varianta byla pro hodně uživatelů velmi složitá, a proto vznikl první z operačních systémů MS DOS, který byl určen pro 16 bitové procesory. Jedná se o produkt, který dokázal jednoduše ovládat operační systémy od společnosti Microsoft. Měl velmi omezené možnosti s téměř neexistujícím skriptovacím jazykem. [5] [6]
Obrázek č. 33: MS DOS Zdroj: http://www.computerhistory.org/atchm/wp-content/uploads/2013/12/DOS20_screenshot.jpg
Obrázek č. 33 zobrazuje MS DOS. Zachycené datum spuštění je 1. 1. 1980. Pomocí příkazu dir jsou zobrazeny složky v jednotce A. Tato jednotka obsahuje 6 složek. Program byl určen pro 16 bitové procesory. Příkazové prostředí Cmd.exe – jedná se o modernější variantu používanou i v dnešní době. Toto prostředí se vyvinulo z MS DOS a bylo uvedeno na trh, když byly používané 32 bitové operační systémy a verze NT vydala svoji 4. verzi. Funkce jsou ve srovnání se svým předchůdcem vylepšeny a z tohoto důvodu je Cmd.exe požíván ve všech verzí Windows. [5] [6] 54
Obrázek č. 34: příkazový řádek Zdroj: autor
Příkazový řádek na obrázku č. 34 patří verzi 6.3.9600 z roku 2013.
4.2 Automatizace s PowerShell a PowerCLI Pomocí programovacího jazyka PowerShell můžeme naprogramovat skripty, s nimiž lze ušetřit množství času a práce. Pokud chceme pracovat s objekty, je zapotřebí nainstalovat program PowerCli, který nám umožňuje práci s objekty i s virtuálními stroji v prostředí VMware.
4.3 Program na zjištění spuštěných běžících automatických služeb na serverech Tento skript prověří, jestli všechny služby (services) na serveru běží. Program usnadňuje práci správci sítě při kontrole běžících služeb, které se mají spouštět automaticky, např. při restartu všech serverů, když se provádí instalace aktualizací a bezpečnostních záplat na jednotlivé servery. Po nainstalování všech aktualizací se všechny servery restartují a automatické služby by se měly samostatně spustit. Díky tomuto skriptu se nemusí admin přihlašovat na každý server zvlášť a zjišťovat, která služba na jakém serveru neběží, což je velice pracné a časově náročné. Program postupně projde servery a zjistí, které služby automatic nejsou ve stavu running, a pokud chceme, tak se je pokusí také spustit.
55
Obrázek č. 35: servery (lokalita 1) Zdroj: autor
V okně poznámkového bloku (obr. č. 35) jsou uvedeny názvy virtuálních serverů, které pak používá program při činnosti. Jedná se o lokalitu1, která obsahuje servery Sněhurka, Šmudla, Štístko, Bručoun, Stydlín.
4.3.1 Popis programu Tento program má takovou strukturu, že na začátku zadáme své přihlašovací údaje. Kde jsme v první fázi vyzváni, abychom se přihlásili pod účtem, na kterém jsme právě přihlášeni, nebo můžeme zvolit jiný účet. Po úspěšném ověření našeho loginu a hesla si vybíráme ze dvou možností, zda chceme zadat jméno serveru ručně anebo využít možnosti výběru přednastaveného seznamu. Při výběru ručně jsme dále vyzváni k zadání jména serveru, kde můžeme zadat jméno serveru (např. Sněhurka) a skript prověří, které automatické služby na daném serveru neběží. Při výběru druhé možnosti ze seznamu se nám zobrazí dostupné seznamy serverů. Tyto seznamy si můžeme nakonfigurovat podle našich představ, kde si lze rozdělit servery podle jejich funkcionalit. Můžeme si nastavit např. seznam1 s poštovními servery, seznam2 s terminálovými servery atd. Při volbě ze seznamů jsme omezeni pouze výběrem z nastavených seznamů, ale urychlíme si práci tím, že nemusíme zadávat všechny servery ručně. Při výběru z těchto dvou metod nám program zobrazí, které služby na daném serveru neběží a jestli se má program pokusit spustit neběžící služby automaticky. Můžeme zvolit zase z variant, zda chceme, aby program spustil službu sám, nebo jestli chceme být o neběžící službě pouze informováni a poté ji můžeme po přihlášení se na daný server spustit sami.
56
Obrázek č. 36: Ukázka programu – volba přihlašovacího účtu Zdroj: autor
Na obrázku č. 36 je zobrazeno okno v programu PowerShell. Při spuštění programu Prorgram1 - neběžící služby se nás program ptá, zda chceme zadat přihlašovací údaje ze stávajícího účtu nebo použít přihlašovací údaje pro jiný účet. Při stisknutí písmena "s" a potvrzení výběru program použije přihlašovací údaje stávajícího účtu. Při zadání písmena j, budeme v dalším kroku vyzváni k přihlašovacím údajům a budeme muset zadat svoje uživatelské jméno a heslo.
Obrázek č. 37: Ukázka programu – zadání přihlašovacích údajů Zdroj: autor
57
Při spuštění programu PowerShell (obr. č. 37) se nás program ptá, zda chceme použít přihlašovací údaje ze stávajícího účtu nebo využít možnosti přihlásit se pod jiným uživatelským jménem. Při zobrazení tohoto okna jsme v předchozí fázi zvolili možnost přihlásit se pod jiným účtem. V takovém případě zadáme nové uživatelské jméno a heslo.
Obrázek č. 38: Ukázka programu – výběr zadání serverů Zdroj: autor
Běžící okno v programu PowerShell (obr. č. 38) nás informuje o tom, zda chceme zadat název počítače ručně nebo použít přednastavený seznam. Při zadání volby ručně můžeme zadat "r" - ručně a poté zadat jméno serveru nebo použít přednastavený seznam "s", kde si vybereme, jaké servery chceme procházet zadáním čísla příslušné lokality serverů ze seznamu. Po stisknutí klávesy "r" a zadání jmen serveru (např. Sněhurka), pokračuje program dál, kdy se nás zeptá, jestli chceme nastartovat neběžící služby na daném serveru. Při výběru druhé možnosti bude zobrazen seznam serverů lokalit, které jsou nastaveny v textových souborech. Při změně jmenné konvence serverů v programu VMware je potřeba textové soubory aktualizovat a opravit nová jména serverů.
58
Obrázek č. 39: Ukázka programu – výběr seznamu serverů Zdroj: autor
Okno programu PowerShell z obrázku č. 39 se zobrazí, pokud jsme v předešlém kroku zadali volbu, že chceme využít přednastavený seznam. Jsme informováni o lokalitách, které jsou dostupné. Můžeme si zvolit z osmi lokalit a za každou lokalitou jsou názvy dvou serverů. V našem případě jsme zvolili číslo 2. Tudíž jsme vybrali lokalitu 2, na které jsou servery Merkur a Jupiter. Tečky za názvy serverů symbolizují, že se v lokalitě nachází více serverů. Např. lokalita 7 má pouze 2 servery Lotrando a Zubejda.
Obrázek č. 40: Ukázka programu – zobrazení průběhu programu Zdroj: autor
59
Z běžícího okna programu PowerShell na obrázku č. 40 je patrné, že jsou prověřovány servery Sněhurka, Šmudla a Bručoun. V tomto případě má tato lokality 5 serverů a Bručoun je poslední server v této lokalitě. Na těchto serverech jsou služby, které mají nastaveno automatické spuštění a neběží. To mohlo být způsobeno při restartu serverů a automatické služby, kdy se z důvodu nějaké chyby se sami nenastartovaly. Jedná se o služby Microsoft. NET Framework NGEN v4. 0. 30319_x86 (clr_optimization_v4. 0. 30319_32) a služba Performance
Logs and Alerts (SysmonLog). Tyto neběžící služby jsou na všech třech
serverech stejné. Po provedení skriptu jsme informováni o jeho ukončení.
Obrázek č. 41: Ukázka programu – zjišťování běžících služeb Zdroj: autor
Okno programu PowerShell (obr. č. 41) ukazuje situaci, kdy na serveru Sněhurka jsou postupně procházeny služby, které mají nastaveno automatické spuštění, ale neběží. Program nastartuje služby Microsoft .Net Framework a Performance Logs and Alerts. Program dále čeká na nastartování služeb 20 sekund, protože každá služba se spouští s odlišným časovým intervalem. Takto program prochází všechny služby na serveru Sněhurka a až je projde, tak jsou vypsány na obrazovku.
60
Obrázek č. 42: Ukázka programu – výpis chyby Zdroj: autor
Při zadávání serveru, na kterém se mají prozkoumat všechny běžící služby, můžeme udělat chybu a zadat špatné jméno serveru. Program PowerShell postupně prozkoumá, zda je jméno serveru správně a pokud ne, tak vypíše chybu na obrazovku s oznámení, že se nepodařilo najít seznam serverů (viz obr. č. 42).
61
4.3.2 Vývojový diagram
Start
inicializace
Zadání přihlašovacích údajů
Zadání serveru ručně or seznam
Zadání serveru ze seznamu
Zadání názvu serveru
Chcete spustit služby,které neběží ? Nastartování neběžících služeb Vypsání neběžících služeb Vypsání všech služeb neběžících služeb
Konec
Obrázek č. 43: Vývojový diagram Zdroj: autor
Vývojový diagram (obr. č. 43) přibližuje fungování programu pro zjištění neběžících služeb. Po startu programu jsou provedeny inicializace potřebné pro správnou činnost programu. Načtou se funkce z druhého programu, které jsou používány jako režijní a pro další skripty. Po inicializaci následuje zadání přihlašovacích údajů. V této fázi se přihlašujeme pod stávajícím účtem, nebo můžeme využít možnosti se přihlásit pod jiným účtem. Poté následuje rozhodovací blok, u kterého jsme vyzváni, jestli chceme zadat název serveru ručně (to je přímo napsáním jména serveru, u kterého potřebujeme zjistit neběžící služby), anebo chceme 62
využít přednastavený seznam. Při využití druhé možnosti jsou nám nabídnuty seznamy serverů, které obsahují všechny naše servery. V další fázi následuje rozhodovací blok, který se dotazuje, zda chceme neběžící služby nastartovat. Pokud zadáme, že nechceme neběžící služby nastartovat, tak program vypíše všechny služby u serverů, které byly zadány v předešlých krocích, a nebude se snažit neběžící služby spouštět a pouze je vypíše na obrazovku jako výstup programu. Pokud zadáme, že chceme neběžící služby spustit, program se pokusí služby, které mají nastaveno automatické spuštění a neběží, spustit. Při spuštění každé služby nás bude informovat a po spuštění jedné služby bude pokračovat na další. Po ukončení vypíše na obrazovku jako výstup skriptu, které služby se snažil spustit a které se mu podařilo nastartovat a které ne.
4.3.3 Program na zjišťování služeb Program nejprve spouští skript Program2 - funkce.ps1', ve kterém jsou nadefinovány různé funkce, které jsou používány v tomto a dalších programech. Tento skript je uložen na disku D:\programs, cesta je vložena do proměnné $include. $include = 'D:\programs\ Program2 - funkce.ps1'
Program testuje, jestli je v pořádku cesta k souboru. Pokud neexistuje cesta, tak je provedena kladná větev příkazu IF. if (!(Test-Path $include)) {
Pokud není, je vypsána zpráva, že soubor neexistuje a vyskočí z cyklu příkazem exit Write-Host "Neexistuje soubor společných funkcí a definicí ""$include""." exit
Pokud existuje cesta k souboru, tak je provedena záporná větev cyklu IF a je spuštěn skript Program2 - funkce.ps1' } else { .$include }
63
Program zjišťuje, jestli chceme zadat název serverů ručně, nebo použít přednastavený seznam, ve kterém jsou přednastaveny názvy serverů. Do $odpoved se načte r (ručně zadaný název počítače) nebo s (použití nadefinovaného seznamu). $odpoved = read_host_pismena "Chcete zadat název počítače [r]učně nebo použít přednastavený [s]eznam?" ("r","s")
Zjišťuji, jestli je v $odpoved hodnota r. Pokud ano, program nás vyzve k zadání počítače, jehož služby chceme zjistit. if ($odpoved -eq "r") { $server = (Read-Host -Prompt "Zadejte název počítače, jehož automatické služby chcete zjistit").Trim()
Testujeme, zda neexistuje $server a nebo je $server prázdný, potom je provedena kladná větev příkazu IF a smyčka programu je ukončena pomocí příkazu exit. if (!$server -or ($server -eq "")) { exit }
Do server_list je načteno pole a poté je do server_list načten název serveru, který je uložen v proměnné $server, tuto hodnotu jsme zadávali v předešlých krocích programu. $server_list = @() $server_list += $server
Pokud není v $odpoved hodnota r, dojde k výběru ze seznamu serverů, proběhne 2. strana cyklu, kde bude použita funkce vyber_soubor_ze_slozky_Lists. } else {
dojde k výběru ze seznamu serverů $file__server_list = vyber_soubor_ze_slozky_Lists
Pokud je file__server_list prázdný, tak se smyčka ukončí pomocí příkazu exit. if ($file__server_list -eq "") {exit}
Testujeme, jestli neexistuje file__server_list, a potom vypíšeme chybovou hlášku, že soubor se seznamem počítačů neexistuje, a nakonec vyskočíme ze smyčky. if (!(Test-Path $file__server_list)) {
Do proměnné $mesg_array je vypsán text "Soubor se seznamem počítačů neexistuje: " s $file__server_list 64
a v dalším kroku je zavolána funkce vypis_chyby, která vypíše obsah proměnné $mesg_array $mesg_array += "Soubor se seznamem počítačů neexistuje: ""$file__server_list""." vypis_chyby $mesg_array "exit" }
Do proměnné $server_list načtu obsah souboru $file__server_list $server_list = Get-Content $file__server_list
Ptám se na poslední operaci, jestli neproběhla v pořádku, kde v předešlé operaci se snaží program do proměnné $server_list načíst obsah $file__server_list if (!$?) {
Pokud operace neproběhla a nespojil se $server_list s $file__server_list, potom je do proměnné $mesg_array načten text a zavolána funkce na výpis chyby. $mesg_array += "Nepodařilo se načíst obsah souboru se seznamem serverů ""$file__server_list""." vypis_chyby $mesg_array "exit" } }
Tento blok programu se snaží nastartovat automatické služby, které jsou ve stavu stopped. V první fázi testuji, jestli v $nastartovat_sluzby je hodnota "a", pokud ano, tak program vypíše informaci, že proběhne nastartování služeb. if ($nastartovat_sluzby -eq "a") { Write-Host "Proběhne pokus o nastartování všech vyjmenovaných služeb:"
Nuluje se proměnná $i, která je používána jako počítadlo pro počítání služeb, které bude program startovat. $i = 0
Procházím všechny služby, které jsou stopped. A při každém průběhu smyčky inkrementuju počítadlo $i. foreach ($svc in $svc_auto_stopped) { $i++
Jsou postupně zobrazovány služby na obrazovku, kde $i zajišťuje pořadí služby a pomocí NoNewline jsou v jednom řádku. Tyto služby jsou postupně startovány. Write-Host " $i. Startuji $($svc.DisplayName) ($($svc.Name))... " -NoNewline $ret = $svc.InvokeMethod("StartService",$null)
Je testována proměnná $ret. if ($ret -ne 0) {
65
Pokud se $ret nerovná 0, tak je na monitoru vypsán NEÚSPĚCH! bílou barvou s červeným pozadím. Write-Host " NEÚSPĚCH! " -NoNewline -ForegroundColor White -BackgroundColor Red Write-Host " Návratový kód metody InvokeMethod(""StartService""): $ret"
Pokud se $ret nerovná 0, tak se provede funkce write_host_ok_enter, která je umístěna na disku D v pomocném skriptu 'D:\programs\ Program2 - funkce.ps1' } else { write_host_ok_enter } }
4.3.4 Program s funkcemi Tento program obsahuje pomocné funkce, které využíváme v hlavním programu. Tyto funkce jsou přímo v programu, protože jsou jako režijní pro další programy. Funkce vypíše na obrazovku " Ok " bílým písmem s tmavě zeleným pozadím. Funkce je využívána při výpisu nastartování služeb atd. function write_host_ok_enter { Write-Host " Ok " -ForegroundColor White -BackgroundColor DarkGreen }
Tato funkce slouží ke čtení textu do programu function read_host_pismena (
Program zajišťuje, že $text_vyzvy je řetěze, je zavolána funkce Funkce read_host_pismena a pokud není řetězec, tak vypíše Nezadali jste text. [String] $text_vyzvy = $(throw "[Funkce read_host_pismena] Nezadali jste text."),
Program zajišťuje, že $pole_moznych_odpovedi je řetězec a je volána funkce read_host_pismena a poté vypíše Nezadali jste text odpovědí, které může uživatel zadat. [String[]] $pole_moznych_odpovedi = $(throw "[Funkce read_host_pismena] Nezadali jste text odpovědí, které může uživatel zadat.")) {
Probíhá cyklus do a do proměnné $odpoved je načtena $text_vyzvy do { $odpoved = (Read-Host -Prompt $text_vyzvy).Trim()
66
Podmínka testuje dokud $pole_moznych_odpovedi obsahuje $odpoved } until ($pole_moznych_odpovedi -icontains $odpoved)
Poté je vypsána $odpoved $odpoved }
Tato funkce slouží k výběru souboru ze složky lists a následnému načtení do proměnné $path__lists cesty ke složce lists. function vyber_soubor_ze_slozky_Lists { $path__lists = $path__spolecne_root_path + "\Lists"
Testujeme, jestli neexistuje cesta k $path__lists , a pokud neexistuje, je vypsána na obrazovku chybová hláška "Složka se seznamem serverů neexistuje: " poté vyskočí program z cyklu if (!(Test-Path $path__lists)) { Write-Host "Složka se seznamem serverů neexistuje: ""$path__lists""" return "" }
Do proměnné $dir načteme položku $path__lists a následně počítáme $pocet. $dir = Get-ChildItem -Path $path__lists $pocet = $dir.Count
V tomto cyklu je testována proměnná $pocet, jestli se rovná 0. Pokud ano, tak se do proměnné $dir nenačetla žádná položka a v $pocet zůstala 0. Tím je ověřeno, že se nepovedlo načíst
žádný seznam serverů, a na monitor je vypsáno Ve složce se seznamem serverů není žádný soubor: a poté vyskočí program z cyklu. if ($pocet -eq 0) { Write-Host "Ve složce se seznamem serverů není žádný soubor: ""$path__lists""" return "" }
Je spuštěn cyklus do, který skončí za dané podmínky (($cislo -ge 1) -and ($cislo -le $pocet)) do {
67
Je nulovaná proměnná $i $i = 0 Write-Host ""
Jsou procházeny $file v proměnné $dir a při každém průběhu je inkrementovaná proměnná $i, která slouží jako počítadlo. V dalším kroku jsou pořadí a názvy ve složce vypisovány. foreach ($file in $dir) { $i++ Write-Host "$i. $($file.Name)" }
Do proměnné $odpoved zapíšeme Zadejte číslo seznamu serverů, který chcete použít $odpoved = Read-Host -Prompt "Zadejte číslo seznamu serverů, který chcete použít"
Testujeme, zda-li proměnná $cislo má nějakou hodnotu integer $odpoved. try { $cislo = [Int]$odpoved }
Pokud ne, tak do $cislo je vložena -1 catch { $cislo = -1 }
Testujeme $cislo, jestli je větší nebo rovno 1 a menší nebo rovno 1. Pokud je podmínka splněna, cyklus je ukončen a program pokračuje dál. } until (($cislo -ge 1) -and ($cislo -le $pocet)) $vybrana_cesta = $path__lists + "\" + $dir[$cislo - 1].Name $vybrana_cesta }
Při programování jsem se inspiroval různými ukázkami a myšlenkami z obou titulů o programování v PowerShellu od Patrika Maliny a knížky Microsoft Exchange Server 2010. Z těchto zdrojů jsem nastudoval různé ukázky programů a použil ve svém programu. Publikace jsou uvedeny v seznamu literatury [5] [6] [7] 68
ZÁVĚR Cílem této práce bylo popsat virtualizaci a porovnat dostupná virtualizační prostředí, která jsou určena pro serverovou virtualizaci. V další fázi této práce byl zvolen produkt VMware a byly vysvětleny různé funkcionality tohoto software. Následně byly vybrány hardwarové komponenty pro instalaci VMware na dané hardwarové prostředky dostupné v současné době. Závěrečná část přiblížila na řadě příkladů fungování reálného programu. V prvních odstavcích a kapitolách je velmi zevrubně rozebrána serverová virtualizace. Seznamuji čtenáře s vývojem a historií virtualizace a v další fázi objasňuji její přínosy pro přechod z fyzických serverů na virtuální servery s podrobným rozebráním jednotlivých druhů virtualizací. Při komparaci virtualizačních prostředí byly porovnávány VMware, Microsoft Hyper–V, Citrix XenServer, Red Hat Enterprise Virtualization a Proxmox. Všechny tyto produkty za své existence prošly určitým vývojem, ale VMware, který byl u zrodu prvotní myšlenky vizualizace, si právem udržuje dominantní pozici mezi uživateli. Nejvíce konkurovat společnosti VMware může společnost Microsoft se svým Hyper–V, který nabízí podobné, nebo jinak využitelné funkcionality. Od prvního vstupu na trh v roce 2008 udělal Microsoft ve vývoji Hyper–V mnoho práce. Jedna z verzí, vydaná na podzim roku 2012 spolu s novější verzí Windows Server 2012, upevnila druhou příčku značky na trhu, ale za společností VMware stále o krok zaostává. Další v pořadí je firma Citrix, která nabízí svůj Xen Server. Zbylá dvě virtualizační prostředí Red Hat Enterprise Virtualization a Proxmox se pohybují na trhu krátce a zatím nejsou schopny plně konkurovat nejrozšířenějšímu prostředí VMware. V další kapitole této práce jsou popsány různé funkce a licence společnosti VMware, které nám umožní lépe pochopit probíraná témata a osvětlit, co vše lze dokázat pomocí virtualizace. Po vysvětlení pojmů jako VMotion, High Availability a dalších jsem přešel k popisu implementace virtuálního prostředí na daný hardware. Byl zvolen jeden fyzický server a několik virtuálních serverů. Na virtuálním serveru je nainstalován vCenter Server, který má na jednom z virtuálních strojů svoji databázi. Tato kapitola obsahuje názornou ukázku mapy serverů, kde je zobrazena mapa virtuálních strojů s hostitelem a databázemi. Pro tyto servery bylo užito páskové zálohovací zařízení DELL, diskové úložiště, UPS a switch.
69
Při implementaci VMware na tyto hardwarové komponenty by bylo vše funkční. Při výběru komponent jsem si ověřil, že VMware je kompatibilní skoro se všemi dostupnými komponentami na trhu, které potřebujeme pro jeho realizaci. V poslední části je naprogramován program na zjišťování nespuštěných automatických služeb na virtuálních serverech. K naprogramování tohoto skriptu posloužil programovací jazyk PowerShell a dosahuje plné funkčnosti. Kapitola obsahuje ukázky programu a vývojový diagram, který ozřejmuje průběh celého programu. Všechny cíle této práce byly naplněny a věřím, že může posloužit jako podklad při implementaci serverové infrastruktury do daného podniku nebo při studiu programovacího jazyka PowerShell.
70
SEZNAM POUŽITÝCH ZDROJŮ [1]
LOWE, Scott. Mistrovství ve VMware vSphere 4: [kompletní průvodce profesionální virtualizací]. Vyd. 1. Brno: Computer Press, 2010, 662 s. Mistrovství. ISBN 978-80251-2915-9.
[2]
RUEST, Danielle a Nelson RUEST. Virtualizace: podrobný průvodce. Vyd. 1. Brno: Computer Press, 2010, 408 s. Mistrovství. ISBN 978-80-251-2676-9.
[3]
WINKLER, Peter. Velký počítačový lexikon: co je co ve světě počítačů. Vyd. 1. Brno: Computer Press, 2009, 520 s. ISBN 978-80-251-2331-7.
[4]
LOWE, Scott. Mistrovství ve VMware vSphere 5: kompletní průvodce profesionální virtualizací. 1. vyd. Brno: Computer Press, 2013, 728 s. Mistrovství. ISBN 978-80-2513774-1.
[5]
MALINA, Patrik. Powershell: podrobný průvodce skriptováním. 1. vyd. Brno: Computer Press, 2007, 340 s. ISBN 978-80-251-1816-0.
[6]
MALINA, Patrik. Jak vyzrát na Windows PowerShell 2.0. Vyd. 1. Brno: Computer Press, 2010, 464 s. ISBN 978-80-251-2732-2.
[7]
STANEK, William R. Microsoft Exchange Server 2010: kapesní rádce administrátora. Vyd. 1. Brno: Computer Press, 2010, 695 s. Kapesní rádce administrátora (Computer Press). ISBN 978-80-251-3342-2.
[8]
Dostupné z: http://www.vmwarenews.cz/vmw/vmwnews.nsf/0/53BB1B111BE5A818C12575E5005 F83A6
[9]
Dostupné z: https://sitevalley.com/blog/xen-and-openvz-technology-insight-andcomparison/
[10] Dostupné z: http://www.vmware.com/pdf/vi3_consolidated_backup.pdf [11] Dostupné z: http://searchvmware.techtarget.com/What-is-VMware-vCenter-Server [12] Dostupné z: http://www.zalohovani.net/informacni-grafika-historie-virtualizace/ [13] Dostupné z: http://www.zive.cz/clanky/hyper-v-2012-a-mobilita-vm/sc-3-a168700/default.aspx [14] Dostupné z: http://blogs.technet.com/b/technetczsk/p/microsoft-hyper-v.aspx [15] Dostupné z: http://www.xenproject.org/about/history.html [16] Dostupné z: http://www.citrix.com/products/xenserver/overview.html [17] Dostupné z: http://www.redhat.com/en/technologies/virtualization/enterprisevirtualization [18] Dostupné z: https://www.proxmox.com/en/proxmox-ve/features
71
[19] Dostupné z: http://www.windowsportal.cz/Home/tabid/36/EntryId/331/Historievirtualizacn-iacute-ch-produktu-VMware-Xen-Microsoft.aspx [20] Dostupné z: http://www.vmware.com/files/pdf/Distributed-Power-ManagementvSphere.pdf [21] Dostupné z: http://www.vmware.com/files/pdf/VMware-vStorage-Thin-ProvisioningDS-EN.pdf [22] Dostupné z: http://www.vmware.com/cz/products/vsphere/features/storage-policybased-management [23] Dostupné z: http://computerworld.cz/testy/test-souboj-hlavnich-virtualizacnichplatforem-43672 [24] Dostupné z: http://www.vmware.com/virtualization/virtualization-basics/what-isvirtualization [25] Dostupné z: http://dcomcomputers.com/i-13380439-dell-powerconnect-6224-switchbundle-with-stacking-module-and-cable.html [26] Dostupné z: http://www.dell.com/us/business/p/powervault-tl2000/pd [27] Dostupné z: https://www.alza.cz/apc-smart-ups-rt-3000va-rack-mount-xl-on-lined259233.htm#popis
72
SEZNAM OBRÁZKŮ A TABULEK Obrázek č. 1: Tradiční a virtuální architektura ....................................................................... 13 Obrázek č. 2: Softwarová virtualizace .................................................................................... 14 Obrázek č. 3: Hardwarová virtualizace ................................................................................... 15 Obrázek č. 4: Plná virtualizace ............................................................................................... 16 Obrázek č. 5: Virtualizace s hardwarovou asistencí ............................................................... 17 Obrázek č. 6: Paravirtualizace ................................................................................................ 18 Obrázek č. 7: Microsoft Hyper–V........................................................................................... 21 Obrázek č. 8: XenCenter ......................................................................................................... 23 Obrázek č. 9: Red Hat Enterprise Virtualization .................................................................... 24 Obrázek č. 10: Virtuální prostředí Proxmox ........................................................................... 25 Obrázek č. 11: VMware .......................................................................................................... 27 Obrázek č. 12: VMotion ......................................................................................................... 28 Obrázek č. 13: DRS ................................................................................................................ 29 Obrázek č. 14: DPM ............................................................................................................... 31 Obrázek č. 15: HA – High Availability .................................................................................. 32 Obrázek č. 16: Fault tolerance ................................................................................................ 33 Obrázek č. 17: Consolidated Backup ...................................................................................... 35 Obrázek č. 18: Storage Thin Provisioning .............................................................................. 36 Obrázek č. 19: Profile – Driven Storage ................................................................................. 37 Obrázek č. 20: porovnání prostředí ......................................................................................... 39 Obrázek č. 21: Architektury ESX a ESXi ............................................................................... 42 Obrázek č. 22: Porovnání verzí ............................................................................................... 43 Obrázek č. 23: v Center Server ............................................................................................... 44 Obrázek č. 24: VMware vCenter Server ................................................................................. 45 Obrázek č. 25: Konsolidace .................................................................................................... 47 Obrázek č. 26: Servery ............................................................................................................ 48 Obrázek č. 27: Fyzický server ................................................................................................ 49 Obrázek č. 28: Diskové úložiště ............................................................................................. 49 Obrázek č. 29: Switch ............................................................................................................. 50 Obrázek č. 30: Pásková knihovna ........................................................................................... 51 Obrázek č. 32: UPS ................................................................................................................. 51 Obrázek č. 31: Mapa serverů .................................................................................................. 52 Obrázek č. 33: MS DOS ......................................................................................................... 54 73
Obrázek č. 34: příkazový řádek .............................................................................................. 55 Obrázek č. 35: servery (lokalita 1) .......................................................................................... 56 Obrázek č. 36: Ukázka programu – volba přihlašovacího účtu .............................................. 57 Obrázek č. 37: Ukázka programu – zadání přihlašovacích údajů ........................................... 57 Obrázek č. 38: Ukázka programu – výběr zadání serverů ...................................................... 58 Obrázek č. 39: Ukázka programu – výběr seznamu serverů................................................... 59 Obrázek č. 40: Ukázka programu – zobrazení průběhu programu ......................................... 59 Obrázek č. 41: Ukázka programu – zjišťování běžících služeb .............................................. 60 Obrázek č. 42: Ukázka programu – výpis chyby .................................................................... 61 Obrázek č. 43: Vývojový diagram .......................................................................................... 62 Tabulka č. 1: Komparace VMware, Microsoft, Citrix ............................................................ 19
74
SEZNAM PŘÍLOH Příloha 1
Program1 - neběžící služby
Příloha 2
Program2 - Funkce
75
Příloha č. 1 Program1 - neběžící služby (Skript v programovacím jazyku PowerShell) $include = 'D:\Programs\Program2 - funkce.ps1' if (!(Test-Path $include)) { Write-Host "Neexistuje soubor společných funkcí a definicí ""$include""." exit } else { .$include } $mesg_array = @() $pauza_cekani_na_nastartovani_sluzeb = 20 $jine_kredence = $null Write-Host "`n" $odpoved = read_host_pismena "Chcete použít kredence [s]távajícího účtu, pod kterým jste právě přihlášen/a nebo chcete zadat [j]iné?" ("s","j") if ($odpoved -eq "j") { $jine_kredence = Get-Credential } $odpoved = read_host_pismena "Chcete zadat název počítače [r]učně nebo použít přednastavený [s]eznam?" ("r","s") if ($odpoved -eq "r") { $server = (Read-Host -Prompt "Zadejte název počítače, jehož automatické služby chcete zjistit").Trim() if (!$server -or ($server -eq "")) { exit } $server_list = @() $server_list += $server } else { $file__server_list = vyber_soubor_ze_slozky_Lists if ($file__server_list -eq "") {exit} if (!(Test-Path $file__server_list)) { $mesg_array += "Soubor se seznamem počítačů neexistuje: ""$file__server_list""." vypis_chyby $mesg_array "exit" } $server_list = Get-Content $file__server_list if (!$?) { $mesg_array += "Nepodařilo se načíst obsah souboru se seznamem serverů ""$file__server_list""." vypis_chyby $mesg_array "exit" } } $nastartovat_sluzby = read_host_pismena "Mám se pokusit zjištěné automatické neběžící služby nastartovat? [a]no, [n]e" ("a","n") if ($server_list.GetType().IsArray) { $pocet_kroku = $server_list.Count } else { $pocet_kroku = 1 } $krok = 0 foreach ($server in $server_list) { $mesg_array = @() # vynulování, pro každý cyklus jeden set chyb $krok++ Write-Host "`n" -NoNewline Write-Host " $krok/$pocet_kroku " -NoNewline -ForegroundColor White -BackgroundColor Red Write-Host " Prověřuji, zda všechny automatické služby na " -NoNewline Write-Host " $server " -NoNewline -ForegroundColor Black -BackgroundColor Yellow Write-Host " běží... " -NoNewline if ($jine_kredence) { $svc_auto_stopped = Get-WmiObject Win32_Service -ComputerName $server -Credential $jine_kredence -ErrorAction SilentlyContinue -Filter "(StartMode='Auto') and (State<>'Running')" 2>$null } else { $svc_auto_stopped = Get-WmiObject Win32_Service -ComputerName $server -ErrorAction SilentlyContinue -Filter "(StartMode='Auto') and (State<>'Running')" 2>$null
1
} if (-not $?) { $mesg_array += "Nepodařilo se získat seznam neběžících automatických služeb u ""$server"".`n$($Error[0])" vypis_chyby $mesg_array "ask" } else { if ($svc_auto_stopped) { Write-Host "`nTyto služby mají nastaveno automatické spouštění a neběží:" $pocet_pred_startem = 0 foreach ($svc in $svc_auto_stopped) { $pocet_pred_startem++ Write-Host " $pocet_pred_startem. $($svc.DisplayName) ($($svc.Name))" } if ($nastartovat_sluzby -eq "a") { Write-Host "Proběhne pokus o nastartování všech vyjmenovaných služeb:" $i = 0 foreach ($svc in $svc_auto_stopped) { $i++ Write-Host " $i. Startuji $($svc.DisplayName) ($($svc.Name))... " -NoNewline $ret = $svc.InvokeMethod("StartService",$null) if ($ret -ne 0) { Write-Host " NEÚSPĚCH! " -NoNewline -ForegroundColor White -BackgroundColor Red Write-Host " Návratový kód metody InvokeMethod(""StartService""): $ret" } else { write_host_ok_enter } } Write-Host "Čekám $($pauza_cekani_na_nastartovani_sluzeb) s na nastartování služeb... " -NoNewline Start-Sleep -Seconds $pauza_cekani_na_nastartovani_sluzeb write_host_ok_enter Write-Host "Opětovně prověřuji nastartování automatických služeb u $server... " -NoNewline if ($jine_kredence) { $svc_auto_stopped = Get-WmiObject Win32_Service -ComputerName $server -Credential $jine_kredence -ErrorAction SilentlyContinue -Filter "(StartMode='Auto') and (State<>'Running')" 2>$null } else { $svc_auto_stopped = Get-WmiObject Win32_Service -ComputerName $server -ErrorAction SilentlyContinue -Filter "(StartMode='Auto') and (State<>'Running')" 2>$null } if (-not $?) { $mesg_array += "Nepodařilo se získat seznam neběžících automatických služeb u ""$server"".`n$($Error[0])" vypis_chyby $mesg_array "ask" } else { if ($svc_auto_stopped) { Write-Host "`nTyto služby mají nastaveno automatické spouštění a neběží:" $pocet_po_startu = 0 foreach ($svc in $svc_auto_stopped) { $pocet_po_startu++ Write-Host " $pocet_po_startu. $($svc.DisplayName) ($($svc.Name))" } } } Write-Host "Počet služeb, které se na $server podařilo nastartovat: " -NoNewline Write-Host " $($pocet_pred_startem - $pocet_po_startu) " -NoNewline -BackgroundColor Yellow -ForegroundColor Black Write-Host "." } } else { write_host_ok_enter } } } Write-Host "`nSkript byl dokončen.`n"
2
Příloha č. 2 Program2 - Funkce (Skript v programovacím jazyku PowerShell) function vyber_soubor_ze_slozky_Lists { $path__lists = $path__spolecne_root_path + "\Lists" if (!(Test-Path $path__lists)) { Write-Host "Složka se seznamem serverů neexistuje: ""$path__lists""" return "" } $dir = Get-ChildItem -Path $path__lists $pocet = $dir.Count if ($pocet -eq 0) { Write-Host "Ve složce se seznamem serverů není žádný soubor: ""$path__lists""" return "" } do { $i = 0 Write-Host "" foreach ($file in $dir) { $i++ Write-Host "$i. $($file.Name)" } $odpoved = Read-Host -Prompt "Zadejte číslo seznamu serverů, který chcete použít" try { $cislo = [Int]$odpoved } catch { $cislo = -1 } } until (($cislo -ge 1) -and ($cislo -le $pocet)) $vybrana_cesta = $path__lists + "\" + $dir[$cislo - 1].Name $vybrana_cesta } function write_host_ok_enter { Write-Host " Ok " -ForegroundColor White -BackgroundColor DarkGreen } function read_host_pismena ( [String] $text_vyzvy = $(throw "[Funkce read_host_pismena] Nezadali jste text."), [String[]] $pole_moznych_odpovedi = $(throw "[Funkce read_host_pismena] Nezadali jste text odpovědí, které může uživatel zadat.")) { do { $odpoved = (Read-Host -Prompt $text_vyzvy).Trim() } until ($pole_moznych_odpovedi -icontains $odpoved) $odpoved } function vypis_chyby ( $pole_s_chybami = $(throw "[Funkce vypis_chyby] Nezadali jste pole s chybami."), [String] $akce = $(throw "[Funkce vypis_chyby] Nezadali jste akci.")) { if (!$pole_s_chybami) { Write-Host "[function vypis_chyby] Proměnná s chybami je prázdná." } else { $pole_s_chybami = @($pole_s_chybami) if ($pole_s_chybami.Count -gt 0) { Write-Host "`nVYSKYTLY SE TYTO CHYBY:" -BackgroundColor Red -ForegroundColor White for ($i = 0; $i -le $pole_s_chybami.Count - 1; $i++) { Write-Host " $($i+1). " -NoNewline -BackgroundColor Yellow -ForegroundColor Black Write-Host " $($pole_s_chybami[$i])" } } } switch ($akce) { "exit" { exit
1
} "ask" { Write-Host "`n" $odpoved = read_host_pismena "Chcete v provádění skriptu [P]okračovat nebo ho chcete [U]končit?" ("p","u") if ($odpoved -eq "u") { exit } return } "continue" { return } default { Write-Host "[function vypis_chyby] Akce ""$akce"" není platná akce pro tuto funkci." exit }
2