Univerzita Hradec Králové Fakulta informatiky a managementu Katedra informatiky a kvantitativních metod
Návrh privátní IaaS cloudové platformy
Diplomová práce
Autor: Bc. Aleš Komárek Studijní obor: Informační management (2)
Vedoucí práce: Ing. Vladimír Soběslav, Ph.D.
Hradec Králové
Srpen 2013
Prohlášení Prohlašuji, že jsem svou diplomovou práci vypracoval samostatně a použil pouze zdroje uvedené v přiloženém seznamu.
V Hradci Králové dne 20. 8. 2013
Aleš Komárek
ii
Poděkování Rád bych zde poděkoval všem, kteří mi pomáhali při tvorbě této práce. Zvlášť pak děkuji svému vedoucímu práce, panu Vladimíru Soběslavovi, za odbornou pomoc, podnětné rady a čas, který mi věnoval a panu Janu Kaufmanovi, který mi pomohl překonat mnohé problémy při vlastní realizaci vybraného cloudového řešení.
iii
Anotace Diplomová práce se zaměřuje na problematiku virtualizace a cloudových služeb. Jedná se o dynamickou oblast, která poslední dobou prochází bouřlivým vývojem, jak po technické, tak po obchodní stránce. Teoretická část práce popisuje historii virtualizace a hlavní virtualizační a cloudové řešení s ohledem na jejich dopad na trh s těmito technologiemi. V praktické části bude vybráno vhodné řešení pro realizaci privátní IaaS platformy. Vybraná platforma se nasadí do dvou referenčních instalací. První instalace bude ve vizualizovaném prostředí VirtualBox. Druhá referenční instalace bude v síťové laboratoři CEPSOS při UHK FIM.
Annotation This master thesis focuses on virtualization and cloud services. It’s a very dynamic field, which undergoes a great deal of change in both technical and business aspects. Theoretical part describes history of virtualization and cloud solutions and their impact on market today. The practical part focuses on finding the most proper solution for realization of a private IaaS platform. Chosen platform will be then installed into two reference installations. First installation will be at virtual environment of VirtualBox virtualization application. The second installation will take place in the CEPSOS network laboratory at UHK FIM.
iv
„Simplicity is the ultimate sophistication.“
Leonardo da Vinci
v
Obsah 1. Úvod ...................................................................................................................................1 2. Cíl a metodika práce ...........................................................................................................2 2.1. Postup práce ............................................................................................................... 2 3. Virtualizace a cloud computing..........................................................................................3 3.1. Historie virtualizace ................................................................................................... 4 3.2. Základní rozdělení ...................................................................................................... 4 3.2.1. Modely poskytování cloudových služeb ............................................................. 6 3.2.2. Modely nasazení cloudů ...................................................................................... 7 3.3. Virtualizace systémů a procesů .................................................................................. 8 3.3.1. OpenVZ ............................................................................................................... 9 3.3.2. Xen .................................................................................................................... 10 3.3.3. KVM .................................................................................................................. 11 3.3.4. Oracle VirtualBox ............................................................................................. 11 3.3.5. VMware ESX .................................................................................................... 12 3.3.6. Windows Hyper-V ............................................................................................ 13 3.4. Virtualizace infrastruktury ....................................................................................... 13 3.4.1. Amazon EC2 ..................................................................................................... 14 3.4.2. VMware vSphere ............................................................................................... 15 3.4.3. OpenStack ......................................................................................................... 16 3.4.4. Apache CloudStack ........................................................................................... 16 3.5. Virtualizace aplikační platformy .............................................................................. 17 3.5.1. Google App Engine ........................................................................................... 17 3.5.2. Windows Azure ................................................................................................. 18 3.5.3. Heroku ............................................................................................................... 18 3.5.4. OpenShift........................................................................................................... 19 vi
4. Obchodní stránka virtualizace a cloud computingu .........................................................20 4.1. Přínosy ...................................................................................................................... 20 4.1.1. Konsolidace služeb ............................................................................................ 20 4.1.2. Sjednocení prostředí .......................................................................................... 21 4.1.3. Obnova hardware a software ............................................................................. 21 4.1.4. Vysoká dostupnost ............................................................................................ 21 4.2. Problémy .................................................................................................................. 22 4.2.1. Hardwarové nároky ........................................................................................... 22 4.2.2. Údržba virtuálních systémů ............................................................................... 22 4.2.3. Zvýšené licenční nároky a složitost................................................................... 23 4.3. Současný stav trhu .................................................................................................... 23 4.4. Trendy a výhledy ...................................................................................................... 23 4.4.1. Veřejné cloudové řešení .................................................................................... 24 4.4.2. Privátní cloudové řešení .................................................................................... 25 4.5. Situace v Evropě ....................................................................................................... 25 4.5.1. Uvolnění potenciálu cloudů v Evropě ............................................................... 25 4.5.2. Projekt Optimis.................................................................................................. 26 5. Výběr IaaS platformy .......................................................................................................27 5.1. Kritéria výběru ......................................................................................................... 27 5.2. Možnosti výběru ....................................................................................................... 28 5.3. Vlastní výběr ............................................................................................................ 29 6. Projekt OpenStack ............................................................................................................31 6.1. Architektura systému................................................................................................ 31 6.2.1. Nové služby ve verzi Folsom ............................................................................ 33 6.2. Služby systému OpenStack ...................................................................................... 34 6.2.1. Obrazová služba ................................................................................................ 34 vii
6.2.2. Úložiště objektů................................................................................................. 37 6.2.3. Síťová služba ..................................................................................................... 38 6.2.4. Blokové uložiště ................................................................................................ 39 6.2.5. Správce identit ................................................................................................... 39 6.2.6. Řídící aplikace ................................................................................................... 40 6.2.7. Výpočetní služba ............................................................................................... 41 6.3. Vývojový cyklus OpenStack platformy ................................................................... 45 6.3.1. Ubuntu Archiv ................................................................................................... 45 7. Realizace OpenStack platformy .......................................................................................46 7.1. VirtualBox virtuální server ....................................................................................... 46 7.1.1. Použitý hardware ............................................................................................... 46 7.1.2. Použité služby.................................................................................................... 46 7.1.3. Nastavení sítě .................................................................................................... 48 7.2. Laboratoř CEPSOS................................................................................................... 49 7.2.1. Použitý hardware ............................................................................................... 50 7.2.2. Použité služby.................................................................................................... 50 7.2.3. Nastavení sítě .................................................................................................... 51 7.2.4. Postup instalace ................................................................................................. 52 7.3. Ukázka nasazeného řešení ........................................................................................ 55 7.3.1. Instalace s Ubuntu vzhledem ............................................................................. 55 7.3.2. Instalace s OpenStack vzhledem ....................................................................... 56 8. Závěr .................................................................................................................................61 8.1. Podpora výuky.......................................................................................................... 62 8.2. Otevřený cloud ......................................................................................................... 63 Seznam použité literatury .....................................................................................................65 Seznam obrázků ...................................................................................................................70 Seznam tabulek.....................................................................................................................71 viii
Návrh privátní IaaS cloudové platformy Kapitola 1. Úvod
1. Úvod Jedním z hlavních důvodů pro psaní této práce je aktuální vývoj na trhu s virtualizačními a cloudovými technologiemi. Jde o velmi dynamický trh, který neustále směřuje k větší podpoře a využití kvalitních open-source řešení ze strany důležitých společností, od poskytovatelů infrastruktury, až po velké uživatele a poskytovatele služeb. Stále aktuálnější téma levného a spolehlivého cloudového řešení (1), které splňuje náročné požadavky na škálování, bezpečnost a stabilitu, má v dnešní době několik řešení. Liší se cenou, službami a celkových obchodním modelem. Trend přechodu od správy vlastních IT prostředků po prostředky kompletně outsourcované, ať fyzické nebo virtuální, je neustále sílící. Cena za vlastní správu IT zdrojů je v proměnném prostředí informačních technologií a souvisejících potřeb a hrozeb je rostoucí. Úspory jsou jedním z hlavních důvodů (1), proč firmy přecházejí na levnější a flexibilnější virtuální prostředky a do cloudových prostředí. Virtualizace má řadu omezení, která brání růstu infrastruktury nad určité meze. V první části práce je popsána teorie, která je nezbytná pro pochopení důležitosti virtualizace, následuje historie virtualizace a srovnání hlavních virtualizačních technologií současnosti. Následují výhody a problémy cloudových platforem a celkový pohled na trendy na trhu virtualizačních a cloudových technologií. Po výběru vhodné IaaS platformy pro privátní cloud, budou provedeny dvě referenční instalace.
1
Návrh privátní IaaS cloudové platformy Kapitola 2. Cíl a metodika práce
2. Cíl a metodika práce Cílem této diplomové práce je výběr vhodné IaaS platformy a následná realizace vybrané platformy v síťové laboratoři. Výběr bude podložen výčtem stávajících technologií v oblasti virtualizace a cloudových technologií. Nejdůležitější výběrová kritéria budou cena, kvalita dokumentace a podpory, podpora stávajících hardwarových prostředků a licenční podmínky. Popis vlastní architektury systému bude navržen pro aktuální verzi vybrané platformy. IaaS řešení jsou neustále vyvíjené systémy, kde se mění počet komponent, některé přibývají a některé se rozdělují. Z tohoto důvodu nelze mít pouze statický popis architektury systému, ale i určené procesy jak tuto architekturu přizpůsobovat aktuálním potřebám a možnostem. V rámci diplomové práce se vytvoří model architektury vybraného privátního IaaS systému. Tento model se pak přes konfigurační management promítne do reálného prostředí. Pro potřeby práce se vytvoří dvě referenční instalace: •
Nasazení na virtuálním serveru VirtualBox
•
Nasazení v síťové laboratoři CEPSOS při UHK FIM
2.1. Postup práce Cloudové IaaS platformy nemají jednotný postup instalace (2) (3) (4). Každá instalace je jedinečná, liší se počtem fyzických serverů, možnostmi použité virtualizační platformy a topologií sítě. Pro každé nasazení systému je důležité vytvořit jedinečný model, který bude použité servery, síť, softwarové služby a vazby mezi nimi detailně popisovat. Tento model se aplikuje na konfigurační management (5), který provede vlastní konfiguraci fyzických serverů a uvede servery do požadovaného stavu. Po dokončení nastavení serverů pomocí konfiguračního managementu je možné použít webové a API rozhraní cloudové platformy.
2
Návrh privátní IaaS cloudové platformy Kapitola 3. Virtualizace a cloud computing
3. Virtualizace a cloud computing Virtualizací (5) označujeme techniky, které umožňují k dostupným zdrojům přistupovat jiným způsobem, než jakým fyzicky existují, jsou propojeny atd. Virtualizované prostředí se dá snadněji přizpůsobit potřebám uživatelů, případně skrýt pro uživatele nepodstatné detaily (jako např. rozmístění hardwarových prostředků). Podle Popeka a Golberga (6) musí každé virtuální prostřední splňovat následující podmínky: •
Věrohodnost – Aplikace provozovaná ve virtualizovaném prostředí nesmí poznat rozdíl od fyzického serveru.
•
Výkonnost – Velká většina instrukcí virtualizovaného stroje se provádí přímo na hostitelském stroji.
•
Bezpečnost – Virtualizovaná prostředí se nemohou vzájemně ovlivňovat a přistupovat k hostitelskému stroji.
Virtualizovat jde na různých úrovních. Od celého počítače, který pak označujeme jako virtuální server, nebo jeho jednotlivých hardwarových komponent, například virtuální procesor nebo virtuální paměť, případně pouze softwarové prostředí, příkladem je JVM 1. Virtualizace také překračuje rámec jednotlivých serverů a virtualizují se například celé sítě (7), které jsou pak více flexibilní, dají se upravit v případě zvýšené zátěže nebo výpadku některých síťových spojů. Další oblastí, která se začíná ve větší míře virtualizovat, jsou diskové úložiště, které je pak využíváno jako služba. Tyto virtualizované služby pak tvoří základní prvky virtualizace celých IT infrastruktur (8), tzv. IaaS 2 řešení, které se také označují jako tzv. „cloudy“, příkladem jsou Amazon EC2, RackSpace jako firmy poskytující IaaS platformy, nebo OpenStack a CloudStack jako zástupci IaaS řešení, která se dají provozovat lokálně.
1 2
JVM – Java Virtual Machine IaaS – Infrastructure as a Service
3
Návrh privátní IaaS cloudové platformy Kapitola 3. Virtualizace a cloud computing Poslední dobou je stále populárnější je virtualizace na úrovni aplikační platformy (7), tzv. PaaS 3 řešení, kde se provozuje prostředí pro běh aplikací vytvořených v moderních programovacích jazycích, například Java, Python, Ruby nebo PHP. Tento přístup dovoluje provozovat aplikace bez potřeby správy jiných služeb a velmi dobrou mírou škálovatelnosti.
3.1. Historie virtualizace Význam termínu virtualizace pochází z 60. let 20. století, kdy vznikl pokusný stránkovací mechanismus systému IBM M44 (9). Zakládání a správa virtuálních strojů byla v počátcích CP40 také označována jako zakládaní a správa pseudostrojů a později jako virtualizace serverů. Od té doby získal termín virtualizace a virtuální stroj mnoho jiných významů. Virtualizace platformy je prováděna na dané hardwarové platformě pomocí řídícího programu na hostiteli, který vytváří simulované prostředí počítače (virtuální stroj) pro hostovaný software. Software hosta, často celý operační systém, funguje, jako by byl nainstalován přímo na hardwarové platformě. Typicky lze simulovat více takovýchto virtuálních strojů na jednom fyzickém stroji. Pro správnou funkci hosta je třeba, aby byl dostatečný výkon na straně hostitele a aby existovala podpora pro vnější rozhraní hostovaného systému, což obvykle zahrnuje hardwarové ovladače.
3.2. Základní rozdělení Existuje řada druhů virtualizace (9), základní rozdělení typů virtualizace je popsáno v následující tabulce. Typ
Popis
Emulace
Virtuální
stroj
simuluje
celý
hardware,
dovoluje
běh
neupraveného OS hosta na zcela odlišném procesoru. Tento
3
PaaS – Platform as a Service
4
Návrh privátní IaaS cloudové platformy Kapitola 3. Virtualizace a cloud computing
přístup je dlouho používán za účelem tvorby softwaru pro procesory, které nejsou fyzicky dostupné. Příklady: Bochs, Microsoft Virtual PC, QEMU bez akcelerace Nativní virtualizace Virtuální stroj simuluje dostatečné množství hardwaru tak, aby a plná virtualizace
umožnil oddělený běh neupraveného OS hosta určeného pro stejný druh CPU. Obvykle je možný souběh více instancí. Tento přístup se poprvé použil u systému CP-4O. Příklady: VirtualBox, Virtual PC, VMware Workstation, VMware ESX, QEMU, Hyper-V a další.
Paravirtualizace
Virtuální stroj nemusí nezbytně simulovat hardware, místo toho nabízí aplikační rozhraní, které může být použito jen z hostovaného systému. Příklady: Xen, KVM, Parallels Workstation
Virtualizace na
Virtualizuje se fyzický server na úrovni OS, což umožňuje běh
úrovni operačního
více izolovaných bezpečných virtuálních serverů na jednom
systému
fyzickém serveru. Prostředí hostovaného OS sdílejí jeden OS s hostitelským systémem. Aplikace běžící v hostovaném prostředí jej však vnímají jako samostatný systém. Příklady: Linux-VServer, Virtuozzo, OpenVZ
Aplikační
Desktopové nebo serverové aplikace běžící na daném stroji,
virtualizace
používají místní zdroje, ale běží ve zvláštním virtuálním stroji. To je rozdíl oproti tradičnímu lokálnímu běhu nativních aplikací, tj. softwaru instalovaném přímo na systému. Toto virtuální prostředí se chová jako vrstva mezi aplikací a operačním systémem, která zabraňuje konfliktům mezi aplikací a OS nebo mezi aplikacemi vzájemně. Příklady: Java Virtual Machine, Citrix, VMware a další 5
Návrh privátní IaaS cloudové platformy Kapitola 3. Virtualizace a cloud computing
Virtualizace
Virtualizace celé IT infrastruktury IaaS (8) kombinuje
infrastruktury
administraci virtualizace na úrovni operačních systémů a přidává navíc možnost navíc spravovat síťové služby, diskové úložiště a další služby. Příklady: Amazon EC2, OpenStack, CloudStack a další
Virtualizace
Virtualizace na úrovní aplikační platformy PaaS (8)
tvoří
platformy
prostředí vhodné pro provoz webových aplikací vytvořených v moderních programovacích jazycích (např. Java, Python, Ruby, PHP nebo Go). Příklady: OpenShift, Heroku, Google App Engine, Windows Azure Tabulka 1: Základní rozdělení virtualizačních technologií
Pro zaměření této práce jsou důležité virtualizace na úrovni operačního systému a paravirtualizace pro výběr nejvhodnější. Cloudové služby jsou nejpokročilejší formou virtualizace a jsou hlavním předmětem zájmu této diplomové práce, proto je dále rozdělíme na dílčí kategorie.
3.2.1. Modely poskytování cloudových služeb Poskytovatelé cloudů nabízejí své služby podle několika základních modelů: infrastruktura jako služba (IaaS), platforma jako služba (PaaS) a software jako služba (SaaS), kde IaaS je nejzákladnější a každý vyšší model obsahuje vlastnosti předchozích modelů.
3.2.1.1. Infrastruktura jako služba (IaaS) Nejzákladnější model poskytování cloudových služeb nabízí servery (8), fyzické nebo častěji virtuální, a další zdroje. Virtualizační hypervisor (Xen, KVM) provozuje virtuální stroje. Skupiny hypervisorů v rámci cloudu mohou provozovat velké množství virtuálních strojů a mají schopnost škálovat poskytované služby v závislosti na měnících se 6
Návrh privátní IaaS cloudové platformy Kapitola 3. Virtualizace a cloud computing požadavcích přicházejících od zákazníků. IaaS cloudové platformy nabízejí často i další služby jako jsou knihovny virtuálních disků, blokové a souborové úložiště, virtuální sítě, firewally pro rozložení zátěže. Poskytovatelé IaaS cloudových platforem poskytují tyto zdroje na vyžádání ze svých datových center.
3.2.1.2. Platforma jako služba (PaaS) V modelu Platforma jako služba (PaaS) hostují poskytovatelé cloudových služeb počítačovou platformu ve formě operačního systému (8), prostředí pro běh určitého programovacího jazyka, databáze a webového serveru. Vývojáři aplikací mohou provozovat a případně vyvíjet svá softwarová řešení bez výrazných nákladů a složitého nákupu a konfiguraci potřebného hardwaru a softwaru. Některé PaaS platformy nastavuje výpočetní a úložné prostředky aplikace automaticky tak, aby odpovídala aktuálním požadavkům aplikace bez nutnosti zásahu zákazníka.
3.2.1.3. Software jako služba (SaaS) V modelu SaaS provozují poskytovatelé cloudových služeb aplikační software v cloudu (8) a uživatelé k tomuto softwaru přistupují pomocí klientského software (např. webové prohlížeče). Uživatelé cloudu tedy nespravují infrastrukturu ani platformu, kde aplikace běží. Není proto třeba instalovat a spouštět cloudové aplikace na vlastních počítačích uživatele, což velmi zjednodušuje údržbu. Cloudové aplikace se liší od ostatních aplikací v možnostech škálování, kterého může být dosaženo díky distribuce úkolů na více virtuálních strojů, a tím reagovat na měnící se poptávku. Tento proces je pro uživatele služby transparentní, uživatel vidí pouze jeden přístupový bod pro danou aplikaci.
3.2.2. Modely nasazení cloudů Vlastní využití cloudů může probíhat několika způsoby (10). Veřejné a komunitní cloudy může používat jeden nebo více zákazníků. Privátní cloudy slouží většinou pro potřeby jednoho zákazníka a je většinou provozován na jeho infrastruktuře. Poslední model kombinuje možnosti předchozích řešení a dovoluje propojovat cloudové služby různých poskytovatelů do jednoho řešení. 7
Návrh privátní IaaS cloudové platformy Kapitola 3. Virtualizace a cloud computing
3.2.2.1. Veřejný cloud Veřejné cloudové aplikace (10), výpočetní výkon, úložiště a další služby jsou k dispozici široké veřejnosti poskytovatelem služby. Služby jsou poskytovány zdarma nebo podle modelu platby za množství použitých služeb. Je zvykem, že veřejní poskytovatelé cloudových služeb, jako je Amazon AWS, Microsoft nebo Google, vlastní a provozují hardwarovou infrastrukturu a nabízejí k ní přístup pouze přes Internet.
3.2.2.2. Komunitní cloud V rámci komunitního cloudu (10) sdílí infrastrukturu cloudu několik organizací, které mají společné zájmy (bezpečnost, dodržování předpisů, působnost, atd.). Komunitní cloud může být spravován interně nebo prostřednictvím třetí strany. Stejně může být hostovaný interně nebo externě. Náklady jsou rozloženy mezi méně uživatelů než na veřejném cloudu.
3.2.2.3. Privátní cloud Privátní cloud (10) je infrastruktura provozována výhradně v rámci jedné organizace. Může být spravován interně nebo prostřednictvím třetí strany a hostován opět interně nebo externě. Aby mohl podnik využít privátní cloud, musí nejprve virtualizovat celé své podnikatelské prostředí. Vlastní přechod vyvolává řadu bezpečnostních otázek, které je třeba řešit, aby se zabránilo vážným zranitelnostem celého řešení.
3.2.2.4. Hybridní cloud Hybridní cloud (10) je spojení dvou nebo více cloudů (soukromých, komunitních nebo veřejných), které zůstávají samostatné, ale jsou těsně propojeny. Toto složení rozšiřuje možnosti nasazení cloudových služeb a tím umožňuje IT organizacím využít veřejné cloudové prostředky k uspokojení dočasných potřeb. Tato schopnost umožňuje hybridním cloudům škálovat přes více nezávislých cloudů.
3.3. Virtualizace systémů a procesů Následuje podrobnější popis v dnešní době nejrozšířenějších technologií pro virtualizaci operačních systémů a procesů. Jednotlivé technologie se od sebe odlišují přístupem 8
Návrh privátní IaaS cloudové platformy Kapitola 3. Virtualizace a cloud computing k vlastní virtualizaci a provozovaným obchodním modelem. V rámci našeho rozdělení se tedy jedná o plné virtualizace, paravirtualizace, virtualizace na úrovni operačního systému případně virtualizace procesů. Implementací je celá řada a dále jsou popsané jen ty nejrozšířenější.
3.3.1. OpenVZ OpenVZ je virtualizace na úrovni operačního systému (9) pro Linux a využívá oddělených kontejnerů. OpenVZ vytváří více oddělených Linuxových kontejnerů (známé jako VPS 4) na jednom fyzickém serveru, který umožňuje lepší využití prostředků a zajišťuje, aby se aplikace neblokovaly.
Obrázek 1: OpenVZ virtualizace, převzato a upraveno z (11)
Každý kontejner se chová jako samostatný server, může být samostatně restartován, má uživatele, IP adresy, paměť, procesy, soubory, aplikace, systémové knihovny a konfigurační soubory.
4
VPS – Virtual Private Server
9
Návrh privátní IaaS cloudové platformy Kapitola 3. Virtualizace a cloud computing
3.3.2. Xen Xen vznikl jako výzkumný projekt na univerzitě v Cambridge pod vedením Iana Pratta, zakladatele společnosti XenSource. První verze Xenu byla vydána v roce 2003. V roce 2007 proběhla akvizice firmy XenSource společností Citrix Systems. Poté došlo i k přejmenování produktů pod značkou Citrix. Od roku 2010 je Xen komunitním projektem publikovaným pod licencí GPL. Amazon EC2, Linode a Rackspace Cloud používají pro správu virtuálních strojů Xen hypervisor.
Obrázek 2: Xen virtualizace, převzato a upraveno z (11)
Hypervisor Xenu (12) pracuje na nejnižší hardwarové vrstvě. Tato vrstva podporuje jeden nebo více hostovaných operačních systémů, jejichž běh je plánován na fyzické procesory. První hostovaný OS se nazývá doménou 0 (dom0). Hlavním účelem hostovaného systému dom0 je přímý přístup k hardware a jeho management. Do hostitelského systému je možné přidávat uživatelské domény (domU). Doména Dom0 je zpravidla upravený Linuxu nebo Solaris. Uživatelské domény mohou být Linuxové operační systémy nebo například Microsoft Windows.
10
Návrh privátní IaaS cloudové platformy Kapitola 3. Virtualizace a cloud computing
3.3.3. KVM Vývoj KVM 5 začal v technologické společnosti Qumranet v roce 2006. V roce 2008 byl Qumranet koupen technologickou společností Red Hat (13). Dnes KVM spravují vývojáři Marcelo Tosatti a Gleb Natapov. KVM je virtualizační infrastruktura založená na linuxovém jádru. Každý virtuální stroj má svůj vlastní virtualizovaný hardware včetně síťové karty, disku a grafické karty. Pro správnou funkci KVM vyžaduje procesor s rozšířením pro virtualizace hardwaru.
Obrázek 3: KVM virtualizace, převzato a upraveno z (11)
3.3.4. Oracle VirtualBox Oracle VM VirtualBox je virtualizační aplikace, vytvořená společností Innotek GmbH. V roce 2008 koupil Innotek společnost Sun Microsystems. Dnes projekt spravuje Oracle Corporation jako součást své rodiny vizualizačních řešení. VirtualBox podporuje architektury x86 a AMD64/Intel64 (14). V současné době běží VirtualBox na systému Windows, Linux, Macintosh a Solaris a podporuje velké množství hostovaných operačních
5
KVM - Kernel-based Virtual Machine
11
Návrh privátní IaaS cloudové platformy Kapitola 3. Virtualizace a cloud computing systémů, například Windows, DOS, Linux, Solaris, BSD, Android. Oracle VM VirtualBox se nainstaluje na stávající hostitelský operační systém jako aplikace. Tato hostitelská aplikace umožňuje spouštět hostované operační systémy, každý s vlastním virtuálním prostředí. VirtualBox podporuje architektury x86 a AMD64/Intel64 (14). V současné době běží VirtualBox na systému Windows, Linux, Macintosh a Solaris a podporuje velké množství hostovaných operačních systémů, například Windows, DOS, Linu, Solaris, BSD, Android.
Obrázek 4: Oracle VirtualBox virtualizace, převzato a upraveno z (11)
3.3.5. VMware ESX VMware ESX Server je tenký klient s vlastním jádrem, který běží přímo nad hardwarovou vrstvou (15). Kernel ESX funguje jako hostitelský operační systém pro vrstvení dalších služeb. Kernel je postaven na platformě Linux. Toto linuxové jádro na sebe váže modul vmkernel s dalšími obslužnými funkcemi, který tvoří základní stavební kámen celého řešení. Varianta ESXi je odlehčená verze ESX klienta, která dovoluje běžet hostitelský systém na výměnném zařízení. 12
Návrh privátní IaaS cloudové platformy Kapitola 3. Virtualizace a cloud computing Výhodou tohoto řešení je možnost alokace co největšího množství hardwarových prostředků pro hostované systémy. Tenký klient totiž zbytečně nevyužívá systémové prostředky hostujícího serveru. Pro vlastní práci s hostovanými systémy je k dispozici servisní konzole a díky ovladačům vmkernelu je možné k základnímu klientovi přistupovat z různých míst.
3.3.6. Windows Hyper-V Microsoft Hyper-V (16) je hypervisorově (obdobně jako Xen) stavěný serverový systém pro 32 a 64 bitové systémy. Někdy se nazývá také pod kódovým označením Viridian a dříve se jmenoval Windows Server Virtualization. První beta verze Hyper-V byla dodána v jistých edicích Windows Server 2008 a konečná verze byla vydána v červnu 2008. Od té doby je Hyper-V dostupný samostatně a zdarma. Dnes je technologie Hyper-V integrovaná do Windows Server 2012 (17), kde pomáhá organizacím všech velikostí zlepšit provozní efektivitu. Hyper-V v systému Windows Server 2012 značně rozšiřuje podporu pro hostitelské procesory a paměti. To nyní obsahuje podporu pro 64 procesorů a 1 TB operační paměti pro hostitelské servery HyperV, nový formát virtuálního pevného disku VHDX o kapacitě až 64 TB a lepší odolností. Díky systému Windows Server 2012 s technologií Hyper-V se mohou začít využívat nové technologie, zatímco se stále využívají stávající servery.
3.4. Virtualizace infrastruktury Infrastruktura jako služba (IaaS), není koncepčně nová (5). Společnosti využívají datová centra od té doby, co vznikly. To co odlišuje IaaS od klasických serverů v datových centrech jsou nástroje a služby za ním. Správné IaaS řešení by mělo plně nahradit všechny hardwarové potřeby firem v datových centrech. Mezi základní IaaS služby patří: •
Správa a provoz serverů
•
Vyrovnávání zátěže
•
Veřejné a soukromé připojení k síti 13
Návrh privátní IaaS cloudové platformy Kapitola 3. Virtualizace a cloud computing
•
Zabezpečení sítě
•
Úložiště dat
K těmto službám jsou navíc poskytovány všechny potřebné podpůrné služby. Ty zahrnují mimo jiné monitoring, napájení, chlazení, opravy a zabezpečení. Nejdůležitější službou jsou stále kvalifikovaní lidé, kteří se starají bezproblémový chod služby. Někteří globální poskytovatelé IaaS služeb poskytují také řešení pro geografickou diverzifikaci výpočetních zdrojů. To vše je k dispozici za cenu, která je prostě mimo možnosti tradičních fyzických serverů. Typicky se za jeden virtuální server účtují centy za hodinu. Jako první přestavil ucelenou platformu Amazon v roce 2006. V roce 2009 přešla firma VMware na řadu cloudových operačních systémů. Po roce 2010 se objevili otevřené IaaS řešení, které získávají značný ohlas. Následuje detailnější popis nejznámějších IaaS řešení.
3.4.1. Amazon EC2 Amazon Elastic Compute Cloud je webová služba (18), která poskytuje škálovatelnou výpočetní kapacitu na serverech v datových centrech firmy Amazon, které se mohou použít k vytvoření a provozu softwarových systémů. Ke službám a funkcím, které EC2 6 poskytuje, se přistupuje přes webové rozhraní, rozhraní příkazové řádky, nebo standardního API. První beta verzi EC2 vydala firma Amazon v srpnu 2006. Kapacita byla omezená a k dispozici byli pouze malé a střední instance. Velké a extra-velké instance byly přidány v roce 2008. Dnes je k dispozici celkem 12 druhů instancí. V roce 2008 přidal Amazon další vlastnosti a to statické IP adresy, geograficky oddělená datová centra a datové úložiště EBS 7 . V roce 2008 dosáhla služba EC2 verze 1.0 a v roce přibyl monitoring, vyvažování zátěže a konzole AWS 8.
6
EC2 – Elastic Compute Cloud EBS – Elastic Block Store 8 AWS – Amazon Web Services 7
14
Návrh privátní IaaS cloudové platformy Kapitola 3. Virtualizace a cloud computing Při užívání služby Amazon EC2 se platí pouze za kapacitu, která se reálně spotřebuje, procesorový výkon, síťový provoz, atd. Použití této služby eliminuje potřebu nákupu drahého hardware, snižuje potřebu přesného předvídání provozu, dovoluje automaticky nastavit a škálovat IT prostředky při řešení změnových požadavků nebo výkyvů v míře užívání poskytované služby. Mimo výpočetní servery Amazon dále poskytuje řadu služeb pod názvem AWS, které se dají použít v součinnosti s EC2 servery. Mezi tyto služby patří databáze, S3 úložiště a mnoho dalších.
3.4.2. VMware vSphere VMware vSphere je cloudový virtualizační operační systém od firmy VMware (15). V roce 2009 vyšla první verze VMware vSphere 4. VMware vSphere 4.1 se začal prodávat v srpnu 2010. Součástí této aktualizace byl vCenter Configuration Manager, a vCenter Application Discovery Manager. Přibyla schopnost vMotion přesouvat více než jeden virtuální stroj současně z jednoho hostitelského stroje na jiný. V únoru 2011 se přidala podpora pro RHEL 9, Ubuntu a Solaris. V červenci 2012 vydal VMware verzi VMware vSphere 5.1. VMware vSphere je dostupný v několik edicích, které se liší podle dostupných vlastností a ceně licence.
3.4.2.1. VMware edice Essentials Tato edice je určena pro menší nasazení (15). Limitace této edice jsou 3 fyzické servery, které se dají spravovat pomocí vCenter serveru, který je součástí této edice. Rozšířená edice „Essentials Plus“ dále přináší možnost vysoké dostupnosti HA Cluster, zálohování pomocí nástroje VMware Data Recovery a možnost přesouvat běžící virtuální servery mezi jednotlivými hostitelskými servery (vMotion).
9
RHEL – Red Hat Enterprise Linux
15
Návrh privátní IaaS cloudové platformy Kapitola 3. Virtualizace a cloud computing
3.4.2.2. VMware edice Acceleration Kit Acceleration kity jsou balíčky vCenter (15) serveru pro verzi standard (pro správu neomezeného počtu ESXi hostů) a enterprise verzí vSphere (Standard, Enterprise, Enterprise Plus). Limitujícím faktorem pro AK jsou počty patic procesorů a počet zakoupené paměti. Verze „Standard“ poskytuje stejné funkce jako verze „Essentials Plus“. Vyšší verze jsou potom obohaceny o další služby (vShield Zones, Storage vMotion…) pro podporu virtuální infrastruktury.
3.4.3. OpenStack OpenStack je cloudová platforma, kterou v červnu roku 2010 vytvořili společnosti Rackspace Hosting a NASA (19). Vychází z platformy Nebula z dílny NASA. NASA se spojila s firmou Rackspace, která vyvíjela platformu Cloud Files, která byla komplementární k nově vznikající aplikaci Nebula. První verze OpenStack systému byla uvolněna pod licencí Apache, která dovoluje téměř neomezené použití. První verze projektu byla vydána po čtyřech měsících pod označením Austin s plány na pravidelný cyklus nových verzí každých několik měsíců. Projekt adoptovali brzy i populární Linuxové distribuce Ubuntu Linux a Red Hat Linux, které pomáhají s vývojem a distribucí produkčních verzí systému.
3.4.4. Apache CloudStack Apache CloudStack (20) je software určený k nasazení a správu velkého počtu virtuálních strojů ve formě vysoce dostupné a škálovatelné infrastruktury jako služby. CloudStack používá celá řada poskytovatelů služby veřejného cloudu, mnoho společností má navíc také svůj soukromý cloud jako součást hybridního cloudového řešení. CloudStack je komplexní řešení, které zahrnuje celý balík funkcí, které se očekávají od IaaS řešení: orchestraci výpočetního výkonu, Network-as-a-Service, správu uživatelů služby, úplného a otevřeného rozhraní, počítání zdrojů, a prvotřídní uživatelské rozhraní.
16
Návrh privátní IaaS cloudové platformy Kapitola 3. Virtualizace a cloud computing CloudStack v současné době podporuje nejpopulárnější hypervisory VMware, KVM, Xen a XCP10. Uživatelé mohou spravovat svůj cloud přes jednoduché webové rozhraní, nástroje příkazového řádku nebo plnohodnotné API. Rozhraní, které CloudStack poskytuje, je kompatibilní s AWS EC2 a S3 pro ty organizace, které mají potřebu nasazovat hybridní cloudy.
3.5. Virtualizace aplikační platformy Nejmladší z rodiny virtuálních služeb je virtualizace aplikační platformy (8). Platforma jako služba – PaaS (8) poskytuje výpočetní platformu s celým řešením jako službu. V tomto modelu spotřebitel vytváří aplikace pomocí nástroje a knihoven dostupných od poskytovatele. Spotřebitel si řídí nasazení softwaru a konfiguraci nastavení. Poskytovatel poskytuje sítě, servery, datových úložiště a další služby. Díky PaaS lze nasadit aplikace bez nákladů a nutnosti nákupu drahého hardware a software.
3.5.1. Google App Engine GAE 11 umožňuje spouštět webové aplikace na infrastruktuře Googlu (21). Aplikace v App Engine se velmi snadno udržují a dobře škálují svůj výkon podle toho, jak rostou potřeby aplikace. V Google App Engine nejsou žádné servery. Stačí pouze nahrát aplikaci, a ta je okamžitě připravena pro své uživatele. Aplikace se dají provozovat na vlastní doméně, například http://www.example.com/, nebo se může použít generická doména appspot.com. Aplikace mohou být plně veřejné, nebo s omezeným přístupem pouze pro členy vaší organizace. GAE
podporuje
aplikace
napsané
v
různých
programovacích
jazycích.
Díky
integrovanému Java prostředí mohou být aplikace vytvořené pomocí standardních Java technologií, včetně JVM, Java servletů nebo jiných jazyků, které se kompilují do JVM, jako je JavaScript nebo Ruby. App Engine dále poskytuje Python runtime prostředí s
10 11
XCP – XenServer Cloud Platform GAE – Google App Engine
17
Návrh privátní IaaS cloudové platformy Kapitola 3. Virtualizace a cloud computing rychlým interpretem jazyka Python a standardní knihovnu. App Engine poskytuje také Go prostředí, kde běží aplikace napsané v Go kódu. Tyto prostředí jsou nastavena tak, aby zajistily co nejrychlejší a nejbezpečnější běh aplikací bez rušení od jiných aplikací v systému. GAE bylo první masově rozšířené PaaS řešení.
3.5.2. Windows Azure Další službou je Windows Azure (22). Je to cloudová platforma provozovaná společností Microsoft pro vytváření, a správu aplikací a služeb v celosvětové sítě datových center společnosti Microsoft. Služba Windows Azure se skládá z platformy jako službu (PaaS) a infrastruktury jako služba (IaaS). Také podporuje mnoho různých programovacích jazyků (PHP, .NET, and Node.js) a operačních systémů Windows 2008, Windows 2012 a několik Linuxových distribucí. Svým zaměřením je Windows Azure konkurenční produkt k službě Amazon Web Services, Google App Engine a obdobným službám. Služba Windows Azure se stala komerčně dostupnou v roce 2010.
3.5.3. Heroku Heroku se místo na virtualizace serverů zaměřuje na procesy. Základní aplikační jednotkou jsou takzvané „Dynos“ (23). Jsou to plně izolované kontejnery, provozované v takzvaném dyno prostředí. Jednotlivé Dynos pak přijímají webové žádosti, připojují se ke zdrojům z prostředí, jako jsou cachovací a databázové servery, a zapisují výstupy do Logplexu, který je pak vrací uživateli. Vlastní dynos jsou pak LXC kontejnery (24). Linuxové LXC kontejnery volí zcela odlišný přístup k virtualizaci, než virtualizační technologie jako KVM nebo Xen, které startují oddělené virtuální systémy na emulovaném hardwaru a pak snižují jejich zátěž přes paravirtualizace a podobné mechanismy. LXC využívá účinný mechanismus (upravené Linuxové řízení procesů) pro izolaci procesů místo naprosté izolace, která vede ke snížení účinnosti systému. Výsledkem je virtualizační systém, který je škálovatelný a přenositelný jako chroot. Je schopný současně provozovat tisíce emulované systémů na jednom hostitelském serveru. Možností je také lehká virtualizační platforma pro směrovače a inteligentní telefony. 18
Návrh privátní IaaS cloudové platformy Kapitola 3. Virtualizace a cloud computing
3.5.4. OpenShift OpenShift je PaaS platforma společnosti Red Hat (25). Díky tomuto řešení se Red Hat stal čtvrtou velkou společností s vlastní cloudovou PaaS platformou. OpenShift podporuje řadu moderních programovacích jazyků: node.js, Ruby, Python, PHP, Perl a Javu. Dále podporuje MySQL, PostgreSQL a MongoDB databáze. Platforma byla přestavena veřejnosti během roku 2011. Stejně jako OpenStack se jedná o open-source projekt, který se snaží o zavedení určité míry standardů do oblasti PaaS řešení. Koncepčně je velmi podobný Heroku a používá také LXC kontejnery pro oddělení jednotlivých procesů.
19
Návrh privátní IaaS cloudové platformy Kapitola 4. Obchodní strana virtualizace a cloud computingu
4. Obchodní stránka virtualizace a cloud computingu Virtualizace a cloudové služby představují rychle se rozvíjející trh IT technologií, který každým rokem roste. Vzhledem ke komplikovanosti moderních softwarových řešení se ustálil trend v odděleném provozování dílčích služeb na samostatných serverech. Běžně se provozují samostatné databázové, aplikační, poštovní servery, souborové servery, webové servery a další komponenty rozsáhlejších systémů. To nakonec vede k potřebě velkého množství serverů se všemi důsledky (26). Je nutná pravidelná systémová údržba, jednotlivé stroje nevyužívají plně svůj výkon a v neposlední řadě je zvýšená potřeba elektrické energie, klimatizace a záložní zdroje napájení. Proto se pomalu přechází na vizualizaci operačních systémů, dílčích služeb, i celých infrastruktur.
4.1. Přínosy Provozováním většího množství virtuálních serverů na menším množství serverů fyzických se uspoří prostory, elektrická energie a náklady na hardwarovou podporu vzhledem k menšímu počtu fyzických serverů, jedná se o tzv. „Green ICT“. Díky tomu se může lépe rozložit zátěž a využití výkonu jednotlivých fyzických serverů. Operátoři mohou reagovat na měnící se podmínky v provozní zátěži jednotlivých dílčích služeb systému, a případnou zátěž vhodně rozložit mezi servery fyzickými.
4.1.1. Konsolidace služeb Virtualizace umožnila dále rozvinout specializaci jednotlivých serverů na dílčí služby informačních systémů, každá služba má vlastní prostředí a není negativně ovlivňována dalšími službami v rámci jednoho systému. Výhody oddělených služeb spočívají v přesnějším monitorování služby a řešení případných výkonnostních problémů. Virtualizace zvyšuje dostupnost a provozní spolehlivost služeb ICT. Virtuální servery se snadno zálohují, stačí zálohovat konfigurační nastavení serveru a diskové soubory tvořící virtuální diskové jednotky virtuálního serveru. Virtualizace také přináší rychlejší obnovu 20
Návrh privátní IaaS cloudové platformy Kapitola 4. Obchodní strana virtualizace a cloud computingu po výpadku fyzického serveru. Virtuální server lze znovu spustit dalším serveru, u některých vizualizačních systémů je tato funkce dokonce automatická.
4.1.2. Sjednocení prostředí Produkční, testovací a vývojová prostředí mohou být díky virtualizaci prakticky identické. Stejné nejen z pohledu hardware, ale díky snadnější správě lze testovací prostředí snadno vytvořit „naklonováním“ prostředí provozního. Je tedy možné novou verzi komplexního informačního systému instalovat nejprve do virtuálního prostředí, otestovat nejdříve u dodavatele a teprve pak instalovat u zákazníka pouhým přenesením virtuálních serverů.
4.1.3. Obnova hardware a software Při provozu standardních serverů vyžaduje náhrada i jednoho serveru velké množství práce. Je třeba instalovat operační systém a všechny aplikace. Pak je třeba provést řadu testů, zda je nové prostředí stoprocentně kompatibilní a funkční s tím starým. Při použití virtualizace stačí na nový fyzický server nainstalovat jen prostředí pro virtualizaci a provozované virtuální servery pak stačí na nový server pouze přenést. Tím lze dosáhnout významné úspory času.
4.1.4. Vysoká dostupnost Díky možnosti rychlého a automatizovaného obnovení běhu virtuálních serverů po výpadku fyzického serveru, lze řešit vysoké dostupnost služby HA 12 již na úrovni virtualizačního systému, a není potřeba např. u aplikačních serverů řešení na úrovní operačního systému virtuálního serveru. Je možné pak provozovat „Standard“ verze aplikací místo mnohem dražších „Enterprise“ verzí a tím výrazně uspořit na licenčních nákladech. Vysokou dostupnost je možné řešit provozem serverů v geograficky oddělených clusterech, kde se zálohy provozních serverů v geograficky oddělených clusterech přenáší
12
HA – High Availability
21
Návrh privátní IaaS cloudové platformy Kapitola 4. Obchodní strana virtualizace a cloud computingu do záložního datového centra, kde existuje záloha provozního prostředí pro případ výpadku některých datových center.
4.2. Problémy Prvním problémem, který se musí řešit v rámci přechodu z fyzické na virtuální infrastrukturu, je přenesení stávajících fyzických serverů do virtuálních - tento jednorázový proces lze řešit novou instalací celého prostředí včetně testování, druhou možností je použití specializovaného P2V 13 softwaru pro přenesení fyzického serveru do virtuálního.
4.2.1. Hardwarové nároky Virtualizace má určitou režii. Ta spočívá hlavně ve zvýšené potřebě operační paměti fyzického serveru. Každý virtuální server provozuje svůj operační systém a v součtu je tak potřeba větší množství operační paměti. Další věc je úbytek výkonu procesoru, řádově v jednotkách procent. Tento problém mnohem dobře řeší nejnovější procesory a operační systémy s přímou podporou virtualizace a použitím hypervizoru. Další věc, kterou si je třeba uvědomit, výkon počítače není dán pouze výkonem jeho procesoru a operační paměti, ale též výkonem disků, síťových karet a dalších komponent. Reálný pokles výkonu způsobený virtualizací se tak může lišit podle zátěže a využití jednotlivých dílčích systémů fyzického serveru.
4.2.2. Údržba virtuálních systémů Jednoduché vytváření a provoz virtuálních serverů vede obvykle k nárůstu jejich počtu. Díky virtualizaci není třeba pokaždé pořizovat fyzické servery (27). Díky virtualizaci se začnou plně využívat možnosti klonování serverů, různá testovací a vývojová prostředí. To kromě výše popsaných přínosů znamená i zvýšení počtu serverů zahrnutých pod správu. Je proto nezbytné mít vhodné nástroje pro vlastní správu celé infrastruktury, které budou řídit provoz a monitorování celého prostředí, jak na fyzické, tak na virtuální úrovni.
13
P2V - Physical to Virtual
22
Návrh privátní IaaS cloudové platformy Kapitola 4. Obchodní strana virtualizace a cloud computingu Pro bezproblémový chod je nutná pravidelná správa, údržba a záplatování virtuálních OS.To, že je server virtuální, neznamená, že není třeba jej zahrnout do správy a údržby. Ta je sice jednoduší díky jednotnému emulovanému hardwarovému prostředí, ale zase se týká mnohem většího počtu systémů. Je proto třeba mít i tyto úkony maximálně zautomatizované a konfigurovatelné mimo vlastní virtuální servery. Vhodnými nástroji umožňujícími automatizaci této činnosti jsou nástroje Puppet nebo Salt.
4.2.3. Zvýšené licenční nároky a složitost Pro provoz virtuálních systémů platí různá licenční pravidla, některá jsou stejná jako pro fyzické systémy, některá odlišná (28). Celý proces licencování je v každém případě komplikovanější. Proto je třeba i nadále zvažovat množství a účelnost především provozních virtuálních serverů, kde je třeba mít přiměřený počet serverů a licencí.
4.3. Současný stav trhu V současné době jsou nejdůležitějšími hráči v oblasti virtualizace VMware a Amazon. VMware se stal standard pro privátní podnikové IaaS prostředí a Amazon se svou Elastic Compute Cloud službou dominuje na trhu IaaS řešení. Poslední dobou se začínají prosazovat hybridní IaaS řešení, která vhodně kombinují privátní a veřejné řešení. Navenek služba vystupuje jako jeden cloud, ale ve skutečnosti se jedná o několik propojených cloudů.
4.4. Trendy a výhledy Navzdory nesporným výhodám virtualizace a cloudových řešení, kdy tyto technologie šetří čas i peníze, není rychlost přijímání těchto technologií tak velká, jak by se mohlo zdát. Jak bylo řečeno, nejdůležitějšími hráči v oblasti virtualizace jsou v současné době VMware a Amazon. Jejich pozice je tak silná, že je pro ostatní technologické firmy vážnou hrozbou a proto se snaží přijít s otevřeným řešením, které by bylo kvalitativně i kvantitativně na obdobné úrovni jako řešení od firem VMware či Amazon.
23
Návrh privátní IaaS cloudové platformy Kapitola 4. Obchodní strana virtualizace a cloud computingu Jedním z řešení je OpenStack, který v dnešní době podporuje řada důležitých technologických společností. Hlavními členy nadace OpenStack, která se stará o vývoj OpenStack platformy, jsou společnosti AT&T, Canonical, HP, IBM, Nebula, Rackspace, Red Hat a SUSE. Dalšími firmami, které podporují nadaci OpenStack jsou Cisco (29), Dell, Intel, Yahoo a kupodivu také firma VMware.
Obrázek 5: Historie IaaS řešení
Rychlost přijímání virtualizace a cloudových řešení není velká a výrazně se liší regionálně. Ve srovnání se světem, kde je rychlost adoptování cloudových technologií i celkové využití cloudových technologií větší, je Evropa pozadu v mnoha ohledech. Evropa je podle studie firmy Logica zhruba 2 roky pozadu za USA.
4.4.1. Veřejné cloudové řešení V oblasti veřejných cloudů dlouhou dobu dominuje společnost Amazon se svojí Elastic Compute Cloud službou. Je to velmi dynamický trh, který každoročně roste. Na trh se snaží protlačit další společnosti, které se snaží konkurovat službám společnosti Amazon. Ta má velkou výhodu ve velikosti a počtu poskytovaných služeb. Platforma
Manažer
Amazon EC2
Vlastní
HP Cloud
OpenStack
GoGrid
Vlastní
Rackspace
OpenStack
Linode
Vlastní 24
Návrh privátní IaaS cloudové platformy Kapitola 4. Obchodní strana virtualizace a cloud computingu
Tabulka 2: Přehled manažerů IaaS platforem
4.4.2. Privátní cloudové řešení V oblasti privátních cloudů dochází k pomalému odchylování od řešení VSphere společnosti VMware (30), které je velmi nákladné a licence jsou přímo vázané na počítačový hardware, procesorová jádra a velikost operační paměti. Na jedné straně je řešení Hyper-V od společnosti Microsoft, který je výrazně levnější a má lepší licenční podmínky a na druhé straně jde o OpenStack, který je zdarma.
4.5. Situace v Evropě Evropa je podle studie firmy Logica (31) zhruba 2 roky pozadu za USA v mnoha ohledech adoptování virtualizačních a cloudových technologií. Je to nelichotivý stav a může se stát jednou z překážek pro globální konkurenceschopnost Evropských firem.
4.5.1. Uvolnění potenciálu cloudů v Evropě Jeden s nejvyšších orgánů Evropské Unie, Evropská Komise, si dal za cíl umožnit a usnadnit rychlejší přijetí cloudových služeb ve všech sektorech ekonomiky s cílem zvýšit její produktivitu, růst a celkovou zaměstnanost (32). Evropská komise přijala strategii pro "Uvolnění potenciálu cloudů v Evropě" koncem roku 2012. Tato strategie vymezuje opatření, která by měla zajistit vytvoření 2,5 milionu nových pracovních příležitostí v Evropě, roční zvýšení HDP EU o 160 miliard EUR (kolem 1%) do roku 2020. Strategie je navržena tak, aby urychlila a zvýšila využití cloudů v rámci všech odvětví hospodářství. Tato strategie je výsledkem analýzy politických, regulačních a technologických skupin a rozsáhlých konzultací se všemi zúčastněnými stranami, které posloužili k identifikaci potřeb, aby se co nejvíce využil potenciál, který cloudy mohou nabídnout. Tento dokument stanovuje další konkrétní kroky a představuje tak jasný politický závazek Evropské Komise. Čas ukáže, jak se politické cíle sloučí s obchodní realitou.
25
Návrh privátní IaaS cloudové platformy Kapitola 4. Obchodní strana virtualizace a cloud computingu
4.5.2. Projekt Optimis Projekt Optimis (33) se zaměřuje na optimalizaci cloudových služeb pomocí architektonického rámce a sady nástrojů určených pro vývoj. Optimalizace se vztahuje na kompletní životní cyklus cloudových služeb, od nasazení po provoz. To dává možnost poskytovatelům služeb rozvíjet služby všech typů cloudových prostředí - soukromé, hybridní i veřejné. Optimis zjednodušuje správu infrastruktur díky automatizaci většiny procesů a současně ponechává kontrolu nad rozhodováním. Různé nástroje pro správu v rámci projektu Optimis dovolují, aby byla výsledná infrastruktura adaptabilní, spolehlivá a škálovatelná. Pomocí OPTIMIS toolkitu mohou organizace snadno využívat služeb více poskytovatelů najednou a umožní jim optimalizovat využití zdrojů.
26
Návrh privátní IaaS cloudové platformy Kapitola 5. Výběr IaaS platformy
5. Výběr IaaS platformy Pro finální výběr vhodné platformy pro implementaci privátní IaaS platformy byl použit AHP 14 proces. AHP proces je systematický postup pro organizaci a analýzu složitých rozhodnutí (34). Tato metoda byla vyvinuta Thomasem L. Saatym v roce 1970 a má základy v matematice a psychologii. Neslouží k vybrání jednoznačné odpovědi, ale pomáhá určit, která z možností je podle zadaných kritérií nejlepší. Tato metoda nepředepisuje správné řešení, ale pomáhá lidem učinit to nejlepší rozhodnutí, které bude nejlépe vyhovovat jejich požadavkům. Poskytuje komplexní a racionální rámec pro strukturování rozhodovacího problému, pro reprezentaci a kvantifikaci jeho prvků a pro zhodnocení možných alternativních řešení. Po sestavení hierarchie se systematicky zhodnotí jednotlivé prvky porovnáním po párech s ohledem na dopad na prvek v hierarchii o úroveň výše. Při porovnávání se používají dostupné údaje o prvcích, které se převedou na konkrétní číselné hodnoty, které mohou být dále zpracovány a porovnány. Číselné priority jsou odvozeny pro každý prvek v hierarchii, což umožňuje porovnávat různé a často nesouměřitelné prvky konzistentním způsobem. Tato funkce odlišuje AHP proces od ostatních rozhodovacích technik. V posledním kroku procesu se vypočítaly číselné priority pro každou z možných alternativ.
5.1. Kritéria výběru Nejprve se zvolila vhodná kritéria výběru nejvhodnější privátní IaaS platformy. •
Cena – Kolik stojí pořízení daného řešení a jaké jsou udržovací poplatky? Je použití při dané ceně omezeno jen na určitý počet serverů?
•
Dokumentace – Existuje kvalitní dokumentace pro nasazení a provoz dané IaaS platformy? Jsou k dispozici knihy, které popisují způsob práce s danou platformou?
•
Komunita – Jak silnou má daná platforma komunitu? Jaká je podpora platformy ze strany velkých firem?
14
AHP – Analytický hierarchický proces
27
Návrh privátní IaaS cloudové platformy Kapitola 5. Výběr IaaS platformy
•
Hardwarová podpora – Jak velká je podpora pro různé hardwarové prvky systému: sítě, úložiště, atd.
•
Licence – Jaký typ licence daná platforma používá? Je to volná nebo uzavřená licence?
Jednotlivým kritériím se přiřadila určitá míra důležitosti, která je popsána v následující tabulce. Ceně byla přiřazena největší váha, protože představuje další náklady spojené s provozem privátního cloudu. Kritérium
Váha
Cena
0,30
Dokumentace
0,20
Komunita
0,20
Podpora HW
0,20
Licence
0,10 Tabulka 3: Kritéria výběru IaaS platformy
5.2. Možnosti výběru Jako možné alternativy pro výběr vhodné privátní IaaS platformy připadají v úvahu následující IaaS řešení. Ostatní z popisovaných IaaS řešení jsou pro nasazení ve veřejných cloudech. •
OpenStack
•
CloudStack
•
VMware Vsphere
28
Návrh privátní IaaS cloudové platformy Kapitola 5. Výběr IaaS platformy
5.3. Vlastní výběr Vlastí výběr proběhl v aplikaci ExpertChoice, která umí modely problémů pro AHP procesy velmi dobře modelovat. Celý rozhodovací proces je popsán následující hiearchií AHP procesu.
Obrázek 6: Rozhodovací hierarchie AHP procesu pro výběr IaaS platformy
Po vložení jednotlivých kritérií, jejich přiřazení možnostem výběru a porovnání vzájemných vztahů v programu ExpertChoice se došlo k výslednému rozhodnutí popsanému v následující tabulce. Platforma
Výsledná váha
OpenStack
0,45
CloudStack
0,37 29
Návrh privátní IaaS cloudové platformy Kapitola 5. Výběr IaaS platformy
0,18
Vsphere Tabulka 4: Možnosti výběru IaaS platformy
Vsphere je jediný zástupce komerčních řešení, je relativně drahý a má velmi omezenou licenci (15). Naopak má skvělou dokumentaci, ale nemá velkou komunitní podporu. Další alternativy byli volné řešení OpenStack a CloudStack, které jsou obdobné, ale OpenStack má přeci jen lepší dokumentaci a komunitní podporu. Co se týká podpory hardwarových komponent, OpenStack má obdobnou podporu jako VMware, zatímco CloudStack zaostává. Jako nejlepší volba nakonec vyšla OpenStack platforma, následovaná CloudStack platformou. Na posledním místě skončil VMware VSphere a to hlavně díky ceně a použité licenci.
30
Návrh privátní IaaS cloudové platformy Kapitola 6. Projekt OpenStack
6. Projekt OpenStack Tato kapitola se věnuje detailněji vybranému projektu OpenStack a popisu jeho jednotlivých částí. OpenStack byl vybrán z důvodu svobodné licence, dobré a rostoucí podpory ze strany společností i komunity a jeho vynikající dokumentací. Pro potřeby vlastní virtualizace operačních systémů byl vybrán Xen server, protože poskytuje nejlepší výkonnostní i bezpečnostní parametry. V červnu roku 2010 vytvořili společnosti Rackspace Hosting a NASA novou open-source cloudovou iniciativu pod jménem OpenStack. Do té doby se inženýři z NASA snažili vytvořit platformu Nebula, která koncepčně vycházela z projektu Eucalyptus, ale vzhledem k některým návrhovým nedostatkům tohoto řešení a nové neveřejné licenci se rozhodli pro vytvoření platformy vlastní pod názvem Nebula. Tomu pomohlo spojení s firmou Rackspace, vyvíjející platformu Cloud Files, která byla komplementární k nově vznikající aplikaci Nebula. Uvolnění existujícího kódu z NASA pod svobodnou licenci byl nejistý proces, který do jisté míry usnadnila geografická blízkost obou subjektů. RackSpace i NASA sídlí v Houstonu v Texasu. (19) Díky to byla první verze OpenStack systému uvolněna pod licencí Apache, která dovoluje téměř neomezené použití kódu. První vydání projektu pod označením Austin bylo vydáno po čtyřech měsících s plány na pravidelný cyklus nových verzí každých několik měsíců. Projekt adoptovali brzy i populární Linuxové distribuce Ubuntu Linux a Red Hat Linux.
6.1. Architektura systému Systém OpenStack byl navržen jako celek pro provoz „škálovatelného cloudového operačního systému“ (35). Bylo vytvořeno několik oddělených služeb, které byly navrženy tak, aby společně tohoto cíle dosáhly a vytvořily tak plnohodnotnou „Infastrukturu jako službu“ (IaaS). Integrace těchto služeb probíhá přes veřejná aplikační rozhraní (API), která jednotlivé služby poskytují nebo naopak používají. Tato rozhraní umožňují komunikaci mezi službami, ale také nahrazují dílčí službu jinou implementací, pokud má definované kompatibilní rozhraní. Tato rozhraní jsou většinou dostupná i koncovým uživatelům cloudu. 31
Návrh privátní IaaS cloudové platformy Kapitola 6. Projekt OpenStack V aktuální verzi Folsom se systém OpenStack skládá ze 7 základních komponent: •
Výpočetní služba (Compute Service)
•
Uložiště objektů (Object Storage)
•
Správce identit (Identity Service)
•
Řídící aplikace (Dashboard)
•
Blokové uložiště (Block Storage)
•
Sítová služba (Network Service)
•
Diskové obrazy (Image Service)
Jejich role v systému se dají zhruba shrnout: •
Uložiště objektů (kódové označení „Swift“) dovoluje ukládat soubory, ale neumožňuje připojovat adresáře jako souborové systémy. Několik společností poskytuje komerční uložiště na bázi Swiftu. Patří mezi ně firmy KT, Rackspace (kde Swift vznikl) a Internap. Swift využívají v mnoha velkých společnostech pro ukládání firemních dat.
•
Služba diskové obrazy (kódové označení „Glance“) poskytuje katalog virtuálních diskových obrazů. Tyto disky se nejčastěji využívají v OpenStack Výpočetní službě projektu OpenStack. Tato služba sice není povinná, ale žádný větší cloud se bez ní neobejde.
•
Výpočetní služba (kódové označení „Nova“) provozuje virtuální servery podle potřeby. Firmy Rackspace a HP poskytují komerční výpočetní službu postavenou na Nova a používá se ve firmách jako je Mercado Libre nebo NASA (kde Nova původně vznikla).
•
Řídící aplikace (kódové označení „Horizon“) je modulární webové rozhraní pro všechny služby z projektu OpenStack. S tímto webovým UI se dají provádět základní operace jako vytvoření nové serverové instance, přiřazení IP adres a nastavení přístupu.
•
Správce identit (kódové označení „Keystone“) poskytuje autentifikaci a autorizaci pro všechny služby projektu OpenStack. Pro potřeby jednotlivých OpenStack cloudů spravuje katalog služeb. 32
Návrh privátní IaaS cloudové platformy Kapitola 6. Projekt OpenStack Základní vazby mezi jednotlivými službami:
Obrázek 7: Obrázek 8: Architektura Openstack platformy, převzato a upraveno z (35)
6.2.1. Nové služby ve verzi Folsom •
Síťová služba (kódové označení „Quantum“) poskytuje „síťovou konektivitu jako službu“ mezi jednotlivými stroji spravovanými ostatními službami (nejčastěji Nova). Tato služba umožňuje uživatelům vytvářet si své vlastní virtuální sítě a
33
Návrh privátní IaaS cloudové platformy Kapitola 6. Projekt OpenStack připojovat na ně jednotlivé virtuální servery. Quantum má modulární architekturu, kterou podporuje mnoho významných výrobců síťových prvků. •
Blokové uložiště (kódové označení „Cinder“) poskytuje trvalé úložiště blokových uložišť pro virtuální servery. Tento projekt má kořeny v projektu Nova pod názvem nova-volume. Jedná se pouze o blokové uložiště, ne o souborový systém jako NFS nebo CIFS.
6.2.2. Nové služby ve verzi Grizzly •
Služba sběru metrik (kódové označení „Ceilometer“) (36) tvoří jednotný bod pro účetní systémy, které zde mohou získat všechny potřebné hodnoty počítadel, které jsou nutné pro řádné vyúčtování služeb pro zákazníky. Tato služba je schopná měřit všechny současné i budoucí komponenty projektu OpenStack.
•
Orchestrační služba (kódové označení „Heat“) (37) dovoluje nastavit kompozitní cloudové aplikace použitím formátu AWS CloudFormation, buď přes nativní API nebo dotazy na API kompatibilní s CloudFormation. Tato služba je důležitá pro zaplnění jedné z posledních mezer ve funkcích, které Amazon poskytuje a OpenStack ne.
6.2. Služby systému OpenStack V následující části budou detailněji popsané jednotlivé služby, ze kterých je systém OpenStack složen.
6.2.1. Obrazová služba Obrazová služba Glance (38) poskytuje služby spojené s virtuálními diskovými obrazy. Rozhraní obrazové služby poskytuje standardní REST formát pro přístup k informacím o uložených virtuálních diskových obrazech. Obrazy mohou být uloženy v různých úložištích, například v úložišti Swift nebo S3. Klienti mohou pomocí této služby registrovat nové obrazy nebo přistupovat k veřejně dostupným obrazům. Obrazy mohou mít různé formáty a vlastnosti v závislosti na použité metodě virtualizace. 34
Návrh privátní IaaS cloudové platformy Kapitola 6. Projekt OpenStack
6.2.1.1. Formáty diskových obrazů Důležitou vlastností jednotlivých diskových obrazů je formát, ve kterém je uložen. Existuje několik základních formátů diskových obrazů, které se liší způsobem ukládání informací na disk i metadaty, které daný diskový obraz popisují. Služba Glance podporuje následující formáty: Formát
Popis
RAW
Nestrukturovaný formát diskového obrazu
VHD
VHD diskový formát, častý formát používaný virtuálními stroji od firem VMware, Xen, Microsoft, VirtualBox and ostatních.
VMDK
Další obvyklý formát podporovaný všemi virtuálními stroji, pochází od firmy VMware
VDI
Formát diskového obrazu podporovaný VirtualBox a QEMU emulátorem
ISO
Archivní formát pro obsah optických disků (např. CDROM)
qcow2
Formát diskového obrazu podporovaný QEMU emulátorem, který se může dynamicky rozšiřovat
AKI
Diskový obraz, který vychází z Amazon Kernel Image
AKI
Diskový obraz, který vychází z Amazon Ramdisk Image
AMI
Diskový obraz, který vychází z Amazon Machine Image Tabulka 5: Formáty virtuálních diskových obrazů
35
Návrh privátní IaaS cloudové platformy Kapitola 6. Projekt OpenStack
6.2.1.2. Základní vlastnosti obrazů disků Při práci s obrazy je třeba specifikovat některé základní vlastnosti, které jsou důležité pro jejich další využití (39). V následující tabulce je seznam základních vlastností, které podporují všechny formáty obrazů disků.
Vlastnost
Popis
architecture
Architektura operačního systému
instance_uuid
ID instance pro vytvoření toho obrazu
kernel_id
ID obrazu uloženého ve službě Glance, který se použije jako kernel při startu serveru z AMI-kompatibilního obrazu
ramdisk_id
ID obrazu uloženého ve službě Glance, který se použije jako ramdisk při startu serveru z AMI-kompatibilního obrazu
os_distro
Obecný název operačního systému
os_libosinfo_shortid Zkrácený identifikátor operačního systému, více na http://libosinfo.org os_version
Verze operačního systému Tabulka 6: Vlastnosti virtuálních diskových obrazů
6.2.1.2. Základní vlastnosti obrazů disků Služba Glance podporuje několik základních způsobů ukládání souborů s obrazy disků: •
Souborový systém – Soubory se ukládají na místní souborový systém
•
Swift služba – Soubory se ukládají do služby Swift
•
S3 služba – Soubory se ukládají do služby S3
36
Návrh privátní IaaS cloudové platformy Kapitola 6. Projekt OpenStack Pro základní instalace stačí souborový systém, ale pro větší nasazení je třeba využít službu, která lépe škáluje a zvládá více současných přístupů.
6.2.2. Úložiště objektů Swift (40) je vysoce dostupné, distribuované a neustále konsistentní úložiště objektů. Swift byl původně vyvinutý firmou Raskspace a je jednou z původních služeb OpenStack platformy. Swift se používá pro efektivní, bezpečné a levné ukládání velkého množství dat. Nejdůležitějším prvkem infrastruktury Swift služby je Proxy server. Proxy server je propojuje dohromady celou Swift architekturu. Zpracuje každý požadavek, vyhledá umístění příslušného účtu, kontejneru nebo objektu v Kruhu (viz níže) a přesměruje žádost na určené místo. Veřejné API rozhraní je vystaveno také na Proxy serveru. Objekty procházejí směrem k uživateli z vlastních objektových serverů přes Proxy server, který je dále nijak nezpracovává. Kruh představuje mapování mezi jmény objektů uložených na disku a jejich fyzickým umístěním. K dispozici jsou samostatné Kruhy pro účty, kontejnery a objekty. Když je třeba provést operaci na určitém objektu, kontejneru, nebo na účtu, je potřeba komunikovat s příslušným Kruhem a určit jeho umístění v clusteru. Kruh udržuje toto mapování aktuální pomocí zón, zařízení a oddílů. Každý oddíl v Kruhu je replikován ve výchozím nastavení 3 krát. Umístění jednotlivých oddílů se uchovává v mapování uloženém na Kruhu. Kruh je také zodpovědný za určení, která zařízení se použijí v případě poruchy. Data mohou být izolována díky koncepci zón v Kruhu. U každé repliky oddílu je zaručeno, že bude v jiné zóně. Zóna může představovat pevný disk, server nebo datové centrum. Oddíly Kruhu jsou rovnoměrně rozděleny mezi všechny zařízení v infrastruktuře Swift služby. Když je potřeba některý oddíl přesunout (například v případě přidání nového zařízení do clusteru), Kruh zajistí, že se v určitý čas přesouvá pouze jedna replika oddílu.
37
Návrh privátní IaaS cloudové platformy Kapitola 6. Projekt OpenStack
6.2.3. Síťová služba Quantum (41) je služba OpenStack projektu, která poskytuje "Síť jako službu" mezi servery, na kterých běží další služby platformy (např. nova). Quantum se stal součástí OpenStack platformy ve verzi Folsom a nahradil službu nova-network. Quantum pracuje se sadou zásuvných modulů, které mohou použít rostoucí řadou síťových technologií. Tyto zásuvné moduly mohou být přímo součástí služby Quantum, nebo jsou spravované samostatně. Následuje základní sada modulů obsažených v hlavní distribuci služby Quantum: •
Open vSwitch
•
Cisco UCS/Nexus
•
Linux Bridge
•
Nicira NPV (Network Virtualization Platform)
•
Ryu OpenFlow Controller
•
NEC OpenFlow
Quantum je samostatná služba a stejně jako ostatní služby OpenStack platformy zahrnuje několik procesů na různých serverech. Hlavní proces služby je quantum-server. Je to Python server, který vystavuje API síťové služby a předává požadavky nastavenému modulu pro další zpracování. Modul vyžaduje přístup do databáze obdobně jako ostatní OpenStack služby. Quantum obsahuje i další služby, které mohou být potřeba v závislosti na nasazení: •
Agent zásuvného modulu - běží na každém hypervisoru a provádí konfiguraci virtuálního směrovače. Běh agenta závisí na použitém modulu, protože některé moduly nevyžadují agenta.
•
DHCP agent - Poskytuje DHCP služby uživatelům sítí. Tento agent je stejný pro všechny moduly.
•
L3 agent - L3/NAT směrování, které poskytuje přístup virtuálních strojů k externím sítím. Tento agent je stejný ve všech modulech.
38
Návrh privátní IaaS cloudové platformy Kapitola 6. Projekt OpenStack Tito agenti komunikují s hlavním procesem služby Quantum prostřednictvím standardního API sítě OpenStack. Quantum vyžaduje identitní službu Keystone pro autentizaci a autorizaci všech API dotazů.
6.2.4. Blokové uložiště Cílem projektu Cinder (42) je oddělit stávající blokovou službu nova-volume do vlastního projektu. Blokové úložiště je jednou ze zásadních složek OpenStack platformy, proto se jí dostává velké pozornosti. Vyčleněním do hlavního projektu OpenStack platformy se výrazně zlepšila funkčnost a spolehlivost této komponenty. Bloková služba Cinder je určena k provozu na jednom nebo více serverech. Cinder používá centrální databázi, která je sdílena všemi službami Cinder v systému. Množství dat užívaných touto službou se docela dobře vejde do SQL databáze. Pro malé nasazení je to optimální řešení. Pro větší nasazení, a to zejména v případě, pokud je bezpečnost problém, potřebuje Cinder více datových skladů s nějakým druhem agregace. Cinder slouží jako vrstva abstrakce pro různé druhy zařízení pro ukládání dat. Následující seznam popisuje jednotlivé služby, které jsou podporovány službou Cinder přímo prostřednictvím svých nativních API rozhraní. •
IBM Storwize V7000
•
IBM XIV Storage System
•
SheepDog
•
SolidFire
•
NexentaStor Appliance
6.2.5. Správce identit Keystone (43) je projekt OpenStack platformy, který má na starost poskytování Identity, Token, katalog a pravidel služeb. Slouží pro autentifikaci ostatních projektů v rodině OpenStack služeb. Keystone implementuje OpenStack identity API. Keystone je organizován do skupiny služeb přístupných na jednom nebo více koncových bodech. Mnoho z těchto služeb se používá kombinovaně. Například při použití řídící 39
Návrh privátní IaaS cloudové platformy Kapitola 6. Projekt OpenStack aplikace, Keystone nejprve ověří uživatele přes službu Identita, a po úspěšném ověření, vytvoří a vrátí Token příslušné služby. Služba Identity poskytuje ověřovací mechanismus a základní údaje o uživatelích, skupinách a rolích spolu se všemi souvisejícími metadaty. Všechny tyto údaje spravuje služba Keystone a ukládá je na datové uložiště. Služba Token ověřuje a spravuje tokeny používané při ověření požadavků již přihlášených uživatelů nebo služeb. Všechny podporované služby jsou uloženy v interním katalogu služeb. Služba Keystone v současné verzi podporuje následující typy datových úložišť: •
SQL databáze – Libovolná SQL databáze, například MySQL nebo PostgreSQL
•
LDAP adresář – Libovolný LDAP nebo Active Directory server, například Apache Active Directory, nebo OpenLDAP
6.2.6. Řídící aplikace Řídící aplikace Horizon (44) vznikla pouze pro správu výpočetní služby OpenStack platformy. Implementovala pouze základní funkce, šablony a dotazy na rozhraní API služby Nova. Pak se přibyla podpora pro další služby z rodiny OpenStack služeb. Ty se pak uspořádaly do projektového a systémového panelu. Tento růst byl ale velmi nesouměrný, vyhovoval sice dále popsané vlastnosti
"Základní podpora", ale nevyhovoval vlastnostem
"Rozšiřitelnost" a "Spravovatelnost". Zatímco se formovali ostatní klíčové hodnoty služby, bylo jasné, že je potřeba celý projekt redesingovat pro zlepšení modularity. Horizon tedy ve své podstatě implementuje návrhový vzor, podle kterého se jedná o aplikaci, do které se registrují a připojují ostatní aplikace. Následuje výpis základních principů služby Horizon.
6.2.6.1. Základní podpora Horizon má nyní 3 hlavní panely: uživatelský panel, panel nastavení a projektový panel. Aplikace používá abstraktní API rozhraní pro základní OpenStack služby s cílem poskytnout konzistentní a stabilní sadu opakovaně použitelných metod pro vývojáře. 40
Návrh privátní IaaS cloudové platformy Kapitola 6. Projekt OpenStack
6.2.6.2. Rozšiřitelnost Aplikace Horizon je založena na třídě Dashboard, která poskytuje konzistentní API a sadu funkcí pro všechny základní aplikace OpenStack platformy a stejně tak i pro aplikace třetích stran. Dashboard třída slouží zároveň jako nejvyšší úroveň navigace. Pokud potřebuje vývojář funkce z existujícího panelu (například přidání monitorovací strany do uživatelského panelu), jednoduchý registrační vzor dovoluje psát aplikace, které se mohou přidat jako strany do aktuálních panelů stejně snadno, jako vytvoření panelu nového. Jediné, co se musí udělat, je importovat panel, který je třeba rozšířit.
6.2.6.3. Ovladatelnost Aplikace Horizon má jednoduchá metodu pro registraci nových stránek do jednotlivých panelů. Každý panel musí ale obsahovat potřebnou logiku. Toto rozdělení se zabraňuje tomu, aby měli soubory nových stránek tisíce řádků, a umožňuje tak snadnou korelaci kódu přímo s navigací.
6.2.6.4. Konzistence Horizon poskytuje základní třídu, kterou mohou používat další aplikace, stejně jako sadu opakovaně použitelných šablon a dalších nástrojů, díky kterým se dá udržet soulad mezi aktuálními a novými aplikacemi.
6.2.6.5. Stabilita Architektura založena na několika
základních třídách a opakovaně použitelných
komponentách zajišťuje, že nově přidané položky budou zpětně kompatibilní, jak jen je to možné.
6.2.7. Výpočetní služba Nova (45) je název projektu pro výpočetní službu OpenStack platformy, která je hlavní část každého IaaS systému. Kdokoliv může využít Nova službu pro hostování a správu vlastních cloud computingových systémů. Služba Nova vznikla jako projekt v NASA Ames Research Laboratory. Služba Nova se řídí následující principy: 41
Návrh privátní IaaS cloudové platformy Kapitola 6. Projekt OpenStack
•
Komponentová architektura – rychle se dají přidávat nové funkce
•
Vysoká dostupnost – Zvládá velmi velká zatížení
•
Odolnost vůči chybám – Izolace procesů, aby se dalo vyhnout kaskádovým selháním
•
Obnovitelnost – Selhání by měla jít snadně diagnostikovat, odladit a opravit
•
Otevřené standardy – Nova představuje referenční implementaci pro výpočetní API
•
Kompatibilita API – Nova se snaží poskytovat API kompatibilní s hlavními IaaS systémy, jako je Amazon EC2
Služba Nova je tedy postavena na architektuře založené na zasílání zpráv, kde se nic přímo nesdílí. Všechny hlavní komponenty nova lze spustit na více serverech. To znamená, že veškerá komunikace mezi jednotlivými komponentami prochází přes frontu zpráv. Aby se zabránilo zablokování jednotlivých komponent při čekání na odpověď, používá se opožděné zpětné volání, které se spustí, až když je odpověď přijata. Nova používá pro ukládání dat centrální SQL databázi, která je sdílena všemi komponenty systému. Množství dat potřebných pro provoz této služby se pěkně vejde do SQL databáze. Pro malá nasazení se to může zdát jako optimální řešení. Pro větší nasazení, a zejména v případě, pokud je bezpečnost problém, může Nova použít více datových skladů s agregací. Následuje výčet komponent, které služba Nova obsahuje. Některé komponenty se již přesunuly do vlastních projektů. •
api – komponenta, která přijímá HTTP požadavky, převádí je na příkazy a komunikuje s ostatními komponenty přes frontu zpráv
•
scheduler – služba, která rozhoduje, na který hostitelský server se daný virtuální server nahraje
•
network – řídí přiřazování IP adres a virtuálních sítí VLAN, ve verzi Folsom byla nahrazena službou Quantum
•
compute – řídí vlastní komunikaci s hypervisorem a jednotlivé virtuální stroje
42
Návrh privátní IaaS cloudové platformy Kapitola 6. Projekt OpenStack
6.2.7.1. Podporované hypervisory Služba nova podporuje řadu virtuálních hostitelů (46), v realizaci je dokonce podpora pro fyzické servery, kde by OpenStack mohl spravovat fyzické servery.
Xen
KVM
QEMU
LXC
ESXi
HyperV
Fyzický
Pustit
✔
✔
✔
✔
✔
✔
✔
Restartovat
✔
✔
✔
✔
✔
✔
✔
Ukončit
✔
✔
✔
✔
✔
✔
✔
Změnit velikost
✔
✔
✔
?
?
✔
?
Obnovit
✔
✔
✔
?
✔
?
?
Pozastavit
✔
✔
✔
?
✗
✔
?
✔
✔
✔
?
✗
✔
?
✔
✔
✔
?
✔
✔
?
✔
✔
✔
?
✔
✔
?
Vložit síť
✔
✔
✔
?
✔
✔
✔
Vložit soubor
✔
✔
✔
?
?
✗
✔
Sériová konzole
✗
✔
✔
✗
✔
✗
✔
VNC konzole
✔
✔
✔
?
✔
?
?
Připojit disk
✔
✔
✔
✗
✔
✔
?
Vlastnost
Obnovit z pozast. Uspat Obnovit ze spánku
43
Návrh privátní IaaS cloudové platformy Kapitola 6. Projekt OpenStack
Odpojit disk
✔
✔
✔
✗
✔
✔
?
Živá migrace
✔
✔
✔
?
✔
✔
?
✔
✔
✔
?
✔
✔
?
iSCSI
✔
✔
✔
?
✔
✔
?
Nastavení hesla
✔
✗
✗
?
✗
✗
?
✔
✔
✔
?
✔
✔
?
✔
✔
✔
?
✔
✔
?
✔
✔
✔
?
✔
✔
✔
VLAN síť
✔
✔
✔
✔
✔
✗
?
Plochá síť
✔
✔
✔
✔
✔
✔
✔
✔
✔
✔
✔
?
?
?
✔
✔
✔
?
?
?
?
Routování
✔
✔
✔
?
✔
✗
?
Diagnostika
✔
✔
✔
?
?
?
?
Uložení stavu disku
Nastavení informací Vyvolání informací Integrace Glance
Bezpečnost. skupiny Firewallová pravidla
Tabulka 7: Podpora hypervisorů platformou OpenStack, převzato a upraveno z (46)
44
Návrh privátní IaaS cloudové platformy Kapitola 6. Projekt OpenStack Z tabulky vyplývá, že OpenStack má omezenou podporu správy přímo fyzických serverů, která se bude ještě dále prohlubovat.
6.3. Vývojový cyklus OpenStack platformy Od začátku vývoje projektu byl nastaven pravidelný půlroční cyklus nových verzí. Projekt začal v roce 2010. Poslední známé jméno vydání bude Havana. Aktuální verze je Grizzly a je zhruba měsíc stará.
6.3.1. Ubuntu Archiv Firma Canonical spravuje Ubuntu Cloud archiv (47), odkud je možné instalovat nové verze projektu OpenStack na stabilní verzi Ubuntu Server 12.04 LTS 15 včetně všech závislostí a to až do vydání další LTS verze Ubuntu (pravděpodobně to bude verze 14.04) v dubnu 2014. Pro zjednodušení aktualizace jednotlivých částí se využívají stejné postupy jako pro všechny ostatní aplikace v rámci operačního systému Ubuntu. Firma Canonical nespravuje, ani nemá plány v Ubuntu Cloud archivu spravovat instalace projektu OpenStack pro standardní (ne LTS) verze Ubuntu serveru. Následující diagram zobrazuje možnosti instalace projektu OpenStack v Linuxové distribuci Ubuntu:
Obrázek 8: Vývojové cykly OpenStack platformy, převzato a upraveno z (47) 15
LTS – Long time support, rozšířená serverová podpora s aktualizacemi po dobu 3 let
45
Návrh privátní IaaS cloudové platformy Kapitola 7. Realizace OpenStack platformy
7. Realizace OpenStack platformy OpenStack platforma je velmi dobře konfigurovatelná (48), dokáže spolupracovat s řadou různých druhů zařízení. Neexistuje jedna určitá instalace systému, každá je jedinečná podle dostupného hardwarového vybavení. První nasazení je realizováno na lokální virtuální server, kde se ladí konfigurace jednotlivých služeb. Druhé nasazení je již na více fyzických serverech a lépe simuluje reálné nasazení.
7.1. VirtualBox virtuální server První realizací systému OpenStack je instalace na virtuální server v prostředí VirtualBox. Vlastní virtualizace probíhá pomocí QEMU emulátoru v již virtualizovaném prostředí. Virtualizace na virtualizaci není ideální řešení a slouží pouze pro testování propojení a konfigurace jednotlivých služeb.
7.1.1. Použitý hardware Pro první nasazení se použil notebook Sony Vaio Z1, který má čtyřjádrový procesor Intel i7 s podporou virtualizace, 8GB RAM a 128GB SSD disk. Všechny služby jsou nainstalované na jednom virtuálním serveru, který běží v prostředí VirtualBox nainstalovaném na notebooku. Účel
Typ
VirtualBox virtuální server
2 CPU, 4GB RAM, 40GB HDD
Tabulka 8: Hardware pro nasazení OpenStack platformy na VirtualBox serveru
7.1.2. Použité služby V rámci nasazení na virtuálním serveru byly vybrané následující služby OpenStack platformy (49). Některé oblasti jdou realizovat i jednodušším způsobem, ale hlavním cílem
46
Návrh privátní IaaS cloudové platformy Kapitola 7. Realizace OpenStack platformy této instalace je testování a ladění komponent, které se použijí při reálném nasazení na fyzických serverech.
Vlastnost
Hodnota
Vydání OpenStack systému
Grizzly
Operační systém na hostu
Ubuntu 12.04 LTS
Zdroj instalace
Ubuntu Cloud Archive (47)
Hypervisor
QEMU
Databáze (SQL)
MySQL
Fronta zpráv (AMQP)
RabbitMQ
Síťová služba
Quantum
Správa sítě
-
Single/multi host síť
Single-host
Ukládání pro obrazovou službu (Glance)
Soubor
Ukládání pro správce identit (Keystone)
SQL
Ukládání pro blokové úložiště (Cinder)
LVM
Úložiště objektů
-
Úložiště pro živé migrace
-
Tabulka 9: Služby OpenStack platformy na VirtualBox serveru
47
Návrh privátní IaaS cloudové platformy Kapitola 7. Realizace OpenStack platformy
7.1.3. Nastavení sítě V rámci prvního nasazení byly vytvořeny 2 virtuální sítě, jedna veřejná s propojením na Internet a druhá místní pro management a datovou síť. OpenStack vyžaduje oddělené sítě, které fyzicky oddělují provoz virtuálních strojů od provozu a komunikace vlastní OpenStack infrastruktury.
Typ
Rozsah
Brána
Management a data
10.10.10.0/24
-
Veřejná
192.168.100.0/24
192.168.100.1
Tabulka 10: Nastavení sítě OpenStack platformy na VirtualBox serveru
Následující obrázek popisuje infrastrukturu OpenStack platformy nainstalované na VirtualBox serveru.
48
Návrh privátní IaaS cloudové platformy Kapitola 7. Realizace OpenStack platformy
Obrázek 9: Nasazení na VirtualBox serveru, převzato z (3)
7.2. Laboratoř CEPSOS Druhou realizací systému OpenStack je síťová laboratoř CEPSOS (50) při UHK FIM. Laboratoř vznikla v roce 2007, kdy se podařilo získat prostředky z fondu rozvoje vysokého školství pro nákup základního vybavení. V roce 2009 byl založen Labteam, který sdružuje studenty a akademické pracovníky s cílem zlepšit míru spolupráce a zlepšit řízení výzkumných projektů. V letech 2011 a 2012 byla laboratoř zásadně rozšířena a zmodernizována. Laboratoř je vybavena širokým spektrem síťových prvků, kabeláže, měřících přístrojů a fyzických serverů. Laboratoř proto představuje ideální prostředí pro nasazení OpenStack platformy.
49
Obrázek 10: Infrastruktura OpenStack platformy na VirtualBox serveru
Návrh privátní IaaS cloudové platformy Kapitola 7. Realizace OpenStack platformy
7.2.1. Použitý hardware V síťové laboratoři je k dispozici řada serverů. Pro účely této diplomové práce byly zvoleny servery IBM Server x320 s 16GB RAM a 500 GB pevnými disky, kterých je v laboratoři celkem 11. Instalace, po zkušenostech z prvního nasazení, proběhla bez problémů. Každý server má 2 pevné disky. Na prvním je primární operační systém a druhý je volný pro instalace nových služeb. Služby OpenStack platformy s vyhrazeným operačním systémem se instalovaly na druhý disk serverů. Při startu serveru lze pak vybrat, který operační systém se spustí. Účel
Typ
Řídící server
IBM Server x3200, 16GB RAM, 500 GB HDD
Síťový server
IBM Server x3200, 16GB RAM, 500 GB HDD
Výpočetní server
IBM Server x3200, 16GB RAM, 500 GB HDD
Přepínač
Cisco Catalyst 2960 Tabulka 11: Hardware pro nasazení OpenStack platformy v laboratoři CEPSOS
Servery poskytují dostatečný výkon, jedinou slabinou je přepínač Cicco Catalyst 2960, který pracuje s rychlostí 100Mbit/s, která není vyhovující. Mnohem vhodnější by byla rychlost sítě 1Gbit/s nebo vyšší.
7.2.2. Použité služby V rámci nasazení v laboratoři CEPSOS jsou vybrané služby OpenStack platformy (49), které jsou uvedené v následující tabulce. Tato instalace již mnohem lépe simuluje reálné nasazení. Použité služby jsou stejné jak při nasazení na VirtualBox virtuálním serveru. Procesory použitých serverů mají podporu virtualizace, proto jsme mohli použít virtualizaci KVM. 50
Návrh privátní IaaS cloudové platformy Kapitola 7. Realizace OpenStack platformy
Vlastnost
Hodnota
Vydání OpenStack systému
Grizzly
Operační systém na hostech
Ubuntu 12.04 LTS
Zdroj instalace
Ubuntu Cloud Archive (47)
Hypervisor
KVM
Databáze (SQL)
MySQL
Fronta zpráv (AMQP)
RabbitMQ
Síťová služba
Quantum
Správa sítě
GRE
Single/multi host síť
Multi-host
Ukládání
pro
obrazovou
službu Soubor
(Glance) Ukládání
pro
správce
identit SQL
(Keystone) Ukládání pro blokové úložiště (Cinder)
iSCSi
Úložiště objektů
-
Úložiště pro živé migrace
-
Tabulka 12: Služby OpenStack platformy v laboratoři CEPSOS
7.2.3. Nastavení sítě V rámci nasazení byly použité 3 sítě. Jedna veřejná s propojením na Internet, druhá místní pro management OpenStack platformy a třetí pro datovou komunikaci virtuálních serverů. 51
Návrh privátní IaaS cloudové platformy Kapitola 7. Realizace OpenStack platformy OpenStack z bezpečnostních důvodů vyžaduje oddělené sítě, které fyzicky separují provoz virtuálních strojů od provozu a komunikace vlastní OpenStack infrastruktury. Servery jsme jednoduše zapojili do nezávislých přepínačů. Odpadla proto nutnost konfigurovat oddělené VLAN sítě.
Typ
Rozsah
Brána
Management
10.10.10.0/24
-
Datová
10.100.100.0/24
-
Veřejná
192.168.1.0/24
192.168.1.1
Tabulka 13: Nastavení sítě OpenStack platformy v laboratoři CEPSOS
7.2.4. Postup instalace Instalace OpenStack platformy v síťové laboratoři CEPSOS je důležitou částí této diplomové práce, proto se bude jednotlivým krokům věnovat větší pozornost. Všechny servery v rámci platformy používají operační systém Ubuntu 12.04 se zdrojem OpenStack služeb v cloud archivu společnosti Canonical. První se instaloval řídící server, na kterém se spustil databázový server MySQL a fronta zpráv RabbitMQ. Jsou to služby, které využívají všechny ostatní komponenty OpenStack platformy pro ukládání dat a přenos zpráv. První službou z rodiny OpenStack služeb, která se nainstalovala na řídící server, byla identitní služba Keystone, do které se zaregistrovaly koncové body ostatních služeb. Další instalovanou službou byla obrazová služba Glance, která se nastavila pro ukládání souborů na lokální disk. Do služby Glance se pak importovalo několik základních obrazů operačních systémů ve formátu srozumitelném pro KVM virtualizaci. Další instalovanou službou na řídící server byla aplikace Horizon, která se napojila na službu Keystone. Služba Horizon se může napojit na více Keystone serverů, které pak mohou autentifikovat služby i v několika oddělených lokalitách. Poté se na řídící server 52
Návrh privátní IaaS cloudové platformy Kapitola 7. Realizace OpenStack platformy nainstalovala služba Quantum pro ovládání síťového serveru. Další aplikací instalovanou na řídící server byla služba Nova, která se stará o rozdělování virtuálních serverů na jednotlivé fyzické servery a poskytuje podporu pro virtuální konzole. Poslední služba instalovaná na řídící server byla služba Cinder, která se stará o přiřazování blokových zařízení jednotlivým virtuálním serverům. Po dokončení instalace a konfigurace řídícího serveru se nainstaloval síťový server. Na tento server se nainstalovala služba OpenVswitch. Je to linuxová služba poskytující podporu pro virtuální síťová zařízení. Pak se nainstalovaly některé moduly služby Quantum a to L3, DHCP a OVS. Posledním instalovaným typem serveru v rámci OpenStack platformy byl výpočetní server. Na tento server se nainstalovala služba OpenVswitch a Quantum s modulem OVS, který službu OpenVswitch ovládá. Následovala instalace a konfigurace KVM virtualizace a výpočetní částí služby Nova, která KVM virtualizaci řídí. Úspěšnost instalace se zkontrolovala jednoduchým příkazem. Pokud je u každé služby stav , znamená to, že instalace proběhla úspěšně a komponenty mezi sebou bez problémů komunikují.
Obrázek 11: Kontrola stavu služeb OpenStack platformy
Instalace proběhla v pořádku a mohlo se začít s instalací prvních virtuálních serverů. Nakonfigurovala se služba Quantum a vytvořily se potřebné virtuální sítě a směrovače, které přes síťový server propojují virtuální sítě OpenStack platformy z výpočeních serverů se sítí připojenou k internetu. 53
Návrh privátní IaaS cloudové platformy Kapitola 7. Realizace OpenStack platformy Poté se vytvořil první projekt a regulérní uživatel systému a mohly se začít instalovat vlastní virtuální servery. Instalace na Linuxu založených operačních systémů proběhla bez problémů. Problém nastal u instalace virtuálního Windows serveru, který se uzávěrky této práce nepodařilo vyřešit. Následující
obrázek
popisuje
infrastrukturu
OpenStack
platformy
nainstalované
v laboratoři CEPSOS.
Obrázek 12: Infrastruktura OpenStack platformy v laboratoři CEPSOS, převzato z (2)
54
Návrh privátní IaaS cloudové platformy Kapitola 7. Realizace OpenStack platformy
7.3. Ukázka nasazeného řešení Uživatelské rozhraní OpenStack platformy má na starosti aplikace Horizon. Následují ukázky nejdůležitějších stránek této aplikace, které demonstrují reálné použití OpenStack platformy.
7.3.1. Instalace s Ubuntu vzhledem Následující obrázek představuje úvodní obrazovku Horizon aplikace ve VirtualBox instalaci s Ubuntu vzhledem. Ubuntu vzhled je v porovnání se základním OpenStack vzhledem modernější a dobře demonstruje možnosti, jak je možné upravit Horizon aplikaci do požadovaného vzhledu dle potřeb a vzhledu organizace, která vlastní privátní cloudovou platformu provozuje. Horizon s tímto nastavením byl testován v rámci prvního nasazení ve virtuálním serveru na VirtualBox platformě. Následující náhled představuje úvodní stranu Horizon aplikace z pohledu administrátora celého systému. Další náhledy jsou již z pohledu konkrétního uživatele v základním OpenStack vzhledu.
Obrázek 13: Úvodní strana aplikace Horizon s Ubuntu vhledem
55
Návrh privátní IaaS cloudové platformy Kapitola 7. Realizace OpenStack platformy
7.3.2. Instalace s OpenStack vzhledem Jedním z prvních kroků po instalaci OpenStack platformy je vytvoření bezpečnostních skupin, které slouží k omezení přístupu k jednotlivým serverům. Ve své podstatě jde o nastavení firewallových pravidel přístupu k jednotlivým službám na servery patřících do dané bezpečnostní skupiny. Pro přístup na vytvořené virtuální stroje slouží SSH klíče, které se přes tu stranu dají jednoduše vytvořit nebo importovat. Při vytvoření nového serveru se vybrané klíče automaticky připojí k administrativnímu uživateli serveru. Poslední věcí, která jde na této straně měnit, jsou plovoucí IP adresy, které jsou mimo rámec této diplomové práce.
Obrázek 14: Přístupy a bezpečnostní skupiny
56
Návrh privátní IaaS cloudové platformy Kapitola 7. Realizace OpenStack platformy Další krok, který je třeba provést před vlastním spuštěním prvního virtuálního stroje, je nahrát do obrazové služby Glance obrazy operačních systémů. V rámci druhého nasazení se testovalo několik obvyklých operačních systémů. Do aplikace Glance se nahrály obrazy operačních systémů. •
CentOS 6.2 – Linuxová distribuce ve formátu AMI
•
Ubuntu 12.04 – Linuxová distribuce ve formátu AMI
•
Fedora 16 – Linuxová distribuce ve formátu QCOW2
Tyto obrazy představují instalační média pro instalaci čistých operačních systémů. Další z možností na této straně je správa již nainstalovaných systémů, které se mohou uložit do formy takzvaných snímků. Snímky dovolují klonovat existující servery s kompletním nastavením.
Obrázek 15: Obrazy a snímky virtuálních disků
Poté se může přistoupit k vytvoření vlastního virtuálního serveru. Při vytváření severu je třeba nastavit několik základních parametrů pro běh virtuálního serveru. Následuje výčet těch nejdůležitějších parametrů. 57
Návrh privátní IaaS cloudové platformy Kapitola 7. Realizace OpenStack platformy
•
Zdroj instance (Instance source) – Instaluje se instance z obrazu disku nebo ze snímku disku?
•
Obraz (Image) – Jaký zdrojový obraz disku (operační systém) se použije pro vytvoření virtuálního serveru?
•
Příchuť (Flavor) – Jaká je velikost instalovaného serveru: počet procesorů a velikost paměti?
•
Bezpečnostní skupina (Security group) – Firewallová pravidla virtuálního serveru.
Po instalaci serveru se tento objeví na straně se seznamem virtuálních serverů. Zde má uživatel možnost s virtuálními servery dále pracovat. Následuje výpis možných akcí pro jednotlivé virtuální servery.
Obrázek 16: Vytvoření nového virtuálního serveru
•
Vytvořit snímek (Create snapshot) – Vytvoří snímek s aktuální konfigurací virtuálního serveru pro možné klonování již hotových virtuálních serverů.
•
VNC konzole (VNC Console) – Terminálové připojení k virtuálnímu stroji. 58
Návrh privátní IaaS cloudové platformy Kapitola 7. Realizace OpenStack platformy
•
Přiřadit IP (Associate Floating IP) – Přiřadit plovoucí IP adresy virtuálnímu serveru.
•
Upravit server (Edit Instance) – Změny v nastavení virtuálního serveru.
•
Restarovat server (Reboot Instance) – Restart virtuálního serveru.
•
Odstranit server (Terminate Instance) – Kompletní odstranění virtuálního serveru.
Obrázek 17: Seznam virtuálních serverů
V detailu serveru má uživatel možnost zkontrolovat nastavení virtuálního serveru, prohlédnout si logy serveru, které zasílá příslušný hypervisor, a dále má možnost připojit se na server přes virtuální konzoli, která je zobrazena na následujícím obrázku.
59
Návrh privátní IaaS cloudové platformy Kapitola 7. Realizace OpenStack platformy
Obrázek 18: Konzole virtuálního serveru
Virtuální konzole lze použít pro terminálový i grafický přístup k virtuálnímu serveru. Přes tuto konzoli se může server ovládat bez omezení a je důležitá pro řešení problémů se sítí, kdy se k virtuálnímu serveru nelze připojit přímo.
60
Návrh privátní IaaS cloudové platformy Kapitola 8. Závěr
8. Závěr Otázka levného a spolehlivého cloudového IaaS řešení, které splňuje náročné požadavky na škálování, bezpečnost a stabilitu, má více řešení. Po zvážení všech hledisek jsem vybral projekt OpenStack (51). Hlavními důvody výběru byla cena, podpora hardwaru, vynikající dokumentace ke všem částem systému, svobodná licence a nástroje pro nasazení. Další zajímavý projekt, který připadal v úvahu, byl projekt CloudStack. Virtualizace má řadu omezení, které brání růstu infrastruktury nad určité meze. Cloudové platformy přináší nástroje, které pomáhají tyto omezení odstranit. OpenStack je systém, který má vynikající vlastnosti právě v oblasti správy a škálování IT infrastruktur. V praktické části se podařilo namodelovat a nainstalovat základní instalaci OpenStack platformy. První nasazení proběhlo na virtuálním serveru na platformě VirtualBox se všemi službami na jednom serveru a s použitou QEMU virtualizací. Druhé nasazení proběhlo v CEPSOS laboratoři a již mnohem více odpovídalo reálnému nasazení. V konfiguraci byli 3 servery (řídící server, síťový server a výpočetní server) s KVM virtualizací. Výsledkem obou nasazení bylo spuštění virtuálních serverů s operačním systémem Ubuntu. Realizace proběhly bez problémů díky obsáhlé dokumentaci, která podrobně popsala jednotlivé kroky a možnosti nastavení jednotlivých komponent, a hlavně díky podpoře ze strany komunity, bez které by vlastní realizace trvala mnohem déle. OpenStack se může díky své ceně a poskytované podpoře ze strany komunity i velkých firem nahradit stávající IaaS řešení jak v privátním, tak veřejném nasazení. Veřejné IaaS cloudy založené na OpenStack technologii již poskytují například HP a Cisco. V oblasti privátních cloudů má OpenStack potenciál nahradit drahá komerční řešení a díky jednoduchosti práce s virtualizovanými prostředky pomoci mnohem lépe využívat dostupné zdroje. OpenStack sice v současné podobě nenabízí všechny funkce a služby jako konkurenční produkty, ale vzhledem k dynamice vývoje a množství podpory lze usuzovat, že se
61
Návrh privátní IaaS cloudové platformy Kapitola 8. Závěr OpenStack během následujících let může stát otevřeným standardem pro provoz IaaS cloudů.
8.1. Podpora výuky Jedním z možných využití OpenStack platformy je prostředí síťové laboratoře CEPSOS, kde může plně nahradit nebo integrovat stávající komerční řešení, které díky licenčním omezením nedovoluje plné využití kapacity laboratoře. Platformu OpenStack je možné využít pro podporu výuky předmětů, jako jsou Počítačové sítě nebo Operační systémy. Platforma umožní vyučujícím jednoduše vytvořit a spravovat oddělené virtuální infrastruktury pro velký počet studentů najednou. V současné době jsou jediným omezením pro plnohodnotné nasazení v síťové laboratoři CEPSOS síťové přepínače. Jejich rychlost 100Mb/s nevyhovuje požadavkům pro přenos potřebných objemů dat. Tento problém se již řeší. Po instalaci nových přepínačů bude možné platformu použít jako plnohodnotný nástroj pro podporu výuky.
Obrázek 19: Využití OpenStack laboratoře pro podporu výuky
62
Návrh privátní IaaS cloudové platformy Kapitola 8. Závěr Další důležitá role platformy bude podpora akademických projektů, které se realizují na Fakultě informačních technologií Univerzity Hradec Králové, jmenovitě simulaci virtuální ekonomiky v Unity a EkiOne prostředí a hostování vlastního virtuálního světa v aplikaci OpenSim. Výhodou cloudového přístupu je pružnost alokace dostupných hardwarových zdrojů, kde se velmi rychle střídají potřeby
8.2. Otevřený cloud Další velkou inspirací při psaní této práce byl čínský projekt StackLab (52). Tento projekt slouží pro testování nasazení IaaS platformy v několika regionech, které přispěli a spravují společnosti, které poskytují služby v oblasti serverových technologií. Tyto regiony jsou administrované týmem vývojářů, který se stará bezproblémový běh řídících služeb systému i výpočetních serverů v jednotlivých regionech. Celý systém má jednotné rozhraní, kam mohou přistupovat koncoví uživatelé, kteří si mohou zdarma vyzkoušet plnohodnotnou práci s IaaS platformou.
Obrázek 20: Využití OpenStack laboratoře pro veřejný cloud, převzato z (53)
63
Návrh privátní IaaS cloudové platformy Kapitola 8. Závěr V laboratoři CEPSOS by mohl vzniknout pilotní region OpenStack platformy. Se získaným know-how se mohou oslovit významné firmy, které mohou mít obchodní zájem na propagaci otevřené cloudové platformy, případně testování různých hardwarových konfigurací pro vlastní potřebu. Další možný uživatel cloudových služeb je akademický sektor, kde již například CERN plánuje rozšířit vlastní cludovou infrastrukturu založenou na OpenStack platformě během následujících 18 měsíců o 15000 fyzických serverů na kterých bude v provozu více než 150000 serverů virtuálních (54). Věřím, že by navrhovaná řešení mohla pomoci k rozšíření povědomí i praktických zkušeností s cloudovými technologiemi jak pro studium a akademickou práci, tak i pro širší veřejnost v rámci České Republiky případně i Evropské Unie, protože míra použití cloudových technologií je v Evropě v porovnání se světem slabá.
64
Seznam použité literatury 1. Bradshaw, David. Quantitative Estimates of the Demand for Cloud Computing in Europe and the Likely Barriers to Up. Europen Comission. [Online] 13. 07 2012. [Citace: 21. 02 2013.] http://ec.europa.eu/information_society/activities/cloudcomputing/docs/quantitative_estim ates.pdf. 2. Msekni, Bilel. OpenStack Grizzly Install Guide, OVS MultiNode. GitHub. [Online] 17. 4 2013. [Citace: 20. 4 2013.] https://github.com/mseknibilel/OpenStack-Grizzly-InstallGuide/blob/OVS_SingleNode/OpenStack_Grizzly_Install_Guide.rst. 3. —. OpenStack Grizzly Install Guide, OVS SingleNode. GitHub. [Online] 22. 4 2013. [Citace: 25. 4 2013.] https://github.com/mseknibilel/OpenStack-Grizzly-InstallGuide/blob/OVS_MultiNode/OpenStack_Grizzly_Install_Guide.rst. 4. —. OpenStack Grizzly Install Guide, Nikira SingleNode. [Online] 15. 04 2013. [Citace: 10. 05 2013.] https://github.com/mseknibilel/OpenStack-Grizzly-InstallGuide/blob/Nicira_SingleNode/OpenStack_Grizzly_Install_Guide.rst. 5. Kusnetzky, Dan. Virtualization: A Manager's Guide. Sebastopol : O’Reilly Media, Inc., 2011. 9781449306458. 6. Popek, Gerald J. Goldberg, Robert P. Formal Requirements for Virtualizable Third Generation Architectures. ACM. [Online] 7 1974. [Citace: 20. 3 2013.] http://www.logos.ic.i.u-tokyo.ac.jp/~tau/lecture/os/gen/papers/p412-popek.pdf. 7. McGrath, Michael P. Understanding PaaS. Sebastopol : O’Reilly Media, Inc., 2012. 9781449323424. 8. Mell, Peter. The NIST Definition of Cloud Computing. NIST. [Online] 9 2011. [Citace: 29. 3 2013.] http://csrc.nist.gov/publications/nistpubs/800-145/SP800-145.pdf. 9. Kolyshkin, Kirill. Virtualization in Linux. OpenVZ. [Online] 1. 9 2006. [Citace: 15. 3 2013.] http://download.openvz.org/doc/openvz-intro.pdf.
10. FDCCI. What are the Deployment Models? Info.apps.gov. [Online] Federal Data Center Consolidation Initiative (FDCCI), 2012. [Citace: 1. 3 2013.] http://info.apps.gov/content/what-are-deployment-models. 11. Virtuatopia.com. An Overview of Virtualization Techniques. Virtuatopia. [Online] Virtuatopia.com, 4. 6 2009. [Citace: 22. 2 2013.] http://www.virtuatopia.com/index.php/An_Overview_of_Virtualization_Techniques. 12. Bahram, Paul. Xen and the Art of Virtualization. University of Cambridge Computer Laboratory. [Online] 2003. [Citace: 18. 3 2013.] http://www.cl.cam.ac.uk/research/srg/netos/papers/2003-xensosp.pdf. 13. Andrews, Jeremy. Interview: Avi Kivity. KernelTrap. [Online] 27. 4 2007. [Citace: 20. 3 2013.] http://kerneltrap.org/node/8088. 14. Oracle Corporation. Oracle VM VirtualBox User Manual. Oracle VM VirtualBox. [Online] 2013. [Citace: 20. 3 2013.] http://download.virtualbox.org/virtualbox/UserManual.pdf. 15. VMware. VMware vSphere ESXi and vCenter Server 5.1 Documentation. VMware vSphere 5.1 Documentation Center. [Online] VMware, 2013. [Citace: 15. 3 2013.] http://pubs.vmware.com/vsphere51/index.jsp?topic=%2Fcom.vmware.vsphere.vcenterhost.doc%2FGUID-3B5AF2B1C534-4426-B97A-D14019A8010F.html. 16. Microsoft. White Paper Hyper-V. [Online] 2013. [Citace: 3. 4 2013.] http://download.microsoft.com/download/5/D/B/5DB1C7BF-6286-4431-A244438D4605DB1D/WS%202012%20White%20Paper_Hyper-V.pdf. 17. —. Server Virtualization Windows 2012. Microsoft. [Online] 2012. [Citace: 2. 4 2013.] http://download.microsoft.com/download/5/D/B/5DB1C7BF-6286-4431-A244438D4605DB1D/WS%202012%20White%20Paper_Hyper-V.pdf. 18. Amazon. What is Amazon EC2? Amazon Web Services User Guide. [Online] Amazon, 2013. [Citace: 20. 3 2013.] http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/concepts.html.
66
19. Metz, Cade. The Secret History of OpenStack, the Free Cloud Software That’s Changing Everything. Wired.com. [Online] 2. 4 2012. [Citace: 01. 03 2013.] http://www.wired.com/wiredenterprise/2012/04/openstack/all/. 20. Apache Software Foundation. Open Source Cloud Computing: Apache CloudStack. CloudStack. [Online] 2013. [Citace: 14. 3 2013.] http://cloudstack.apache.org/about.html. 21. Google, Inc. What Is Google App Engine? Google Developers. [Online] 9. 2 2013. [Citace: 15. 3 2013.] https://developers.google.com/appengine/docs/whatisgoogleappengine. 22. Microsoft. Windows Azure. Windows Azure. [Online] 27. 8 2012. [Citace: 1. 3 2013.] http://msdn.microsoft.com/en-us/library/windowsazure/dd163896.aspx. 23. Heroku. Dynos and the Dyno Manager. Horoku dev center. [Online] 15. 2 2013. [Citace: 1. 3 2013.] https://devcenter.heroku.com/articles/dynos. 24. Containers, lxc Linux. Home. lxc Linux Containers. [Online] lxc Linux Containers, 2013. [Citace: 20. 3 2013.] http://lxc.sourceforge.net/. 25. Red Hat. OpenShift Platform as a Service. OpenShift. [Online] 2013. [Citace: 15. 3 2013.] https://www.openshift.com/paas. 26. Babcock, Charles. Virtualization's Promise And Problems. Information Week. [Online] 5. 16 2008. [Citace: 17. 3 2013.] http://www.informationweek.com/software/infrastructure/virtualizations-promise-andproblems/207602785. 27. Staten, James. Why Your Enterprise Private Cloud is Failing. Forrester Blogs. [Online] 25. 02 2013. [Citace: 08. 03 2013.] http://blogs.forrester.com/james_staten/13-0225-why_your_enterprise_private_cloud_is_failing. 28. TechTarget, Inc. Server virtualization issues contribute to data management complexity. TechTarget.com. [Online] 16. 10 2012. [Citace: 15. 3 2013.] http://searchstorage.techtarget.com/video/Server-virtualization-issues-contribute-to-datamanagement-complexity. 29. Cisco. Openstack at Cisco. Cisco.com. [Online] 2013. [Citace: 15. 3 2013.] http://www.cisco.com/web/solutions/openstack/index.html. 67
30. Bort, Julie. IBM Just Threw What Could Be A Knockout Punch At VMware. Business Insider. [Online] 11. 3 2013. [Citace: 2. 4 2013.] http://www.businessinsider.com/ibmvmware-openstack-2013-3. 31. CGI - Logica. Cloud adoption. Logica. [Online] 2011. [Citace: 28. 3 2013.] http://www.logica.com/we-are-logica/media-centre/articles/2012/cloud-adoption/. 32. European Commision. Unleashing the Potential of Cloud Computing in Europe. Europa.eu. [Online] 27. 9 2012. [Citace: 16. 3 2013.] http://ec.europa.eu/information_society/activities/cloudcomputing/docs/com/com_cloud.pd f. 33. Project Optimis. Why Use OPTIMIS? Project Optimis. [Online] 10 2012. [Citace: 18. 2 2013.] http://www.optimisproject.eu/sites/default/files/OPTIMIS%20White%20Paper.pdf. 34. Saaty, Thomas L. The Analytic Hierarchy/Network Process. Rev. R. Acad. Cien. Serie A. Mat. [Online] 2008. [Citace: 30. 2 2013.] http://www.rac.es/ficheros/doc/00576.PDF. 35. Pepple, Ken. OpenStack Folsom Architecture. Ken Pepple. [Online] 25. 9 2012. [Citace: 22. 1 2013.] http://ken.pepple.info/openstack/2012/09/25/openstack-folsomarchitecture/. 36. OpenStack Foundation. Ceilometer. OpenStack Wiki. [Online] 2013. [Citace: 22. 4 2013.] https://wiki.openstack.org/wiki/Ceilometer. 37. —. Heat. OpenStack Wiki. [Online] 2013. [Citace: 2. 4 2013.] https://wiki.openstack.org/wiki/Heat. 38. —. Glance’s documentation. OpenStack Documentation. [Online] OpenStack Foundation, 2013. [Citace: 19. 2 2013.] http://docs.openstack.org/developer/glance/. 39. —. Image metadata. OpenStack Compute Administration Manual. [Online] OpenStack Foundation, 18. 12 2012. [Citace: 9. 3 2013.] http://docs.openstack.org/trunk/openstackcompute/admin/content/image-metadata.html. 40. —. Swift Architectural Overview. OpenStack Documentation. [Online] 2013. [Citace: 15. 4 2013.] http://docs.openstack.org/developer/swift/overview_architecture.html.
68
41. —. Quantum. OpenStack Wiki. [Online] OpenStack Foundation, 2013. [Citace: 15. 2 2013.] https://wiki.openstack.org/wiki/Quantum. 42. —. Cinder’s developer documentation. OpenStack Documentation. [Online] OpenStack Foundation, 2013. [Citace: 18. 2 2013.] http://docs.openstack.org/developer/cinder/. 43. —. Keystone Architecture. OpenStack Documentation. [Online] 2013. [Citace: 18. 2 2013.] http://docs.openstack.org/developer/keystone/architecture.html. 44. —. Introducing Horizon. OpenStack Documentation. [Online] 2013. [Citace: 10. 4 2013.] http://docs.openstack.org/developer/horizon/intro.html. 45. —. Nova System Architecture. OpenStack Documentation. [Online] 2013. [Citace: 15. 3 2013.] http://docs.openstack.org/developer/nova/devref/architecture.html. 46. —. Hypervisor Support Matrix. OpenStack Wiki. [Online] 2013. [Citace: 18. 3 2013.] https://wiki.openstack.org/wiki/HypervisorSupportMatrix. 47. ServerTeam/CloudArchive. The Ubuntu Cloud Archive. Ubuntu Wiki. [Online] 22. 11 2012. [Citace: 18. 2 2013.] https://wiki.ubuntu.com/ServerTeam/CloudArchive. 48. Telecom, Institut Mines. OpenStack Folsom Install Guide. OpenStack-FolsomInstall-guide. [Online] 2012. [Citace: 15. 2 2013.] https://github.com/mseknibilel/OpenStack-Folsom-Installguide/blob/VLAN/2NICs/OpenStack_Folsom_Install_Guide_WebVersion.rst. 49. Pepple, Ken. Deploying OpenStack. Sebastopol : O’Reilly Media, Inc., 2011. 9781449311056. 50. Matyska, Jan. Laboratoř. CEPSOS. [Online] 2013. [Citace: 18. 4 2013.] http://www.cepsos.cz/laborator.html. 51. OpenStack Foundation. Openstack Open Source Cloud Computing Software. [Online] OpenStack Foundation, 10. 12 2012. [Citace: 10. 01 2013.] http://www.openstack.org/. 52. COSCL. StackLab. [Online] China Open Source Cloud League, 28. 9 2012. [Citace: 5. 1 2013.] http://stacklab.org/. 69
Seznam obrázků Obrázek 1: OpenVZ virtualizace, převzato a upraveno z (11) .............................................. 9 Obrázek 2: Xen virtualizace, převzato a upraveno z (11) ................................................... 10 Obrázek 3: KVM virtualizace, převzato a upraveno z (11) ................................................ 11 Obrázek 4: Oracle VirtualBox virtualizace, převzato a upraveno z (11) ............................ 12 Obrázek 5: Historie IaaS řešení ........................................................................................... 24 Obrázek 6: Rozhodovací hierarchie AHP procesu pro výběr IaaS platformy .................... 29 Obrázek 7: Obrázek 8: Architektura Openstack platformy, převzato a upraveno z (35) .... 33 Obrázek 8: Vývojové cykly OpenStack platformy, převzato a upraveno z (47) ................ 45 Obrázek 9: Nasazení na VirtualBox serveru, převzato z (3) ............................................... 49 Obrázek 10: Infrastruktura OpenStack platformy na VirtualBox serveru .......................... 49 Obrázek 11: Kontrola stavu služeb OpenStack platformy .................................................. 53 Obrázek 12: Infrastruktura OpenStack platformy v laboratoři CEPSOS, převzato z (2).... 54 Obrázek 13: Úvodní strana aplikace Horizon s Ubuntu vhledem ....................................... 55 Obrázek 14: Přístupy a bezpečnostní skupiny..................................................................... 56 Obrázek 15: Obrazy a snímky virtuálních disků ................................................................. 57 Obrázek 16: Vytvoření nového virtuálního serveru ............................................................ 58 Obrázek 17: Seznam virtuálních serverů............................................................................. 59 Obrázek 18: Konzole virtuálního serveru ........................................................................... 60 Obrázek 19: Využití OpenStack laboratoře pro podporu výuky ......................................... 62 Obrázek 20: Využití OpenStack laboratoře pro veřejný cloud, převzato z (53) ................. 63
70
Seznam tabulek Tabulka 1: Základní rozdělení virtualizačních technologií ................................................... 6 Tabulka 2: Přehled manažerů IaaS platforem ..................................................................... 25 Tabulka 3: Kritéria výběru IaaS platformy ......................................................................... 28 Tabulka 4: Možnosti výběru IaaS platformy....................................................................... 30 Tabulka 5: Formáty virtuálních diskových obrazů.............................................................. 35 Tabulka 6: Vlastnosti virtuálních diskových obrazů ........................................................... 36 Tabulka 7: Podpora hypervisorů platformou OpenStack, převzato a upraveno z (46) ....... 44 Tabulka 8: Hardware pro nasazení OpenStack platformy na VirtualBox serveru .............. 46 Tabulka 9: Služby OpenStack platformy na VirtualBox serveru ........................................ 47 Tabulka 10: Nastavení sítě OpenStack platformy na VirtualBox serveru .......................... 48 Tabulka 11: Hardware pro nasazení OpenStack platformy v laboratoři CEPSOS ............. 50 Tabulka 12: Služby OpenStack platformy v laboratoři CEPSOS ....................................... 51 Tabulka 13: Nastavení sítě OpenStack platformy v laboratoři CEPSOS ............................ 52
71
UNIVERZITA HRADEC KRÁLOVÉ Fakulta informatiky a managementu Rokitanského 62, 500 03 Hradec Králové, tel: 493 331 111, fax: 493 332 235
Zadání k závěrečné práci Jméno a příjmení studenta:
Aleš Komárek
Obor studia: Jméno a příjmení vedoucího práce:
Informační management (2) Vladimír Soběslav
Název práce: Návrh privátní IaaS cloudové platformy Název práce v AJ: Private IaaS cloud platform desing Podtitul práce: Podtitul práce v AJ: Cíl práce: Cílem této diplomové práce je výběr vhodné IaaS platformy a následná realizace vybrané platformy v síťové laboratoři CEPSOS. Osnova práce: 1. Úvod 2. Cíl a metodika práce 3. Virtualizace a cloud computing 4. Obchodní stránka virtualizace a cloud computingu 5. Výběr IaaS platformy 6. Projekt OpenStack 7. Realtizace OpenStack platformy 8. Závěr Projednáno dne:
Podpis studenta
Podpis vedoucího práce