networkpro .nl
VAKBLAD VOOR IT-BEHEER EN SMART SOLUTIONS 1e jaargang, nummer 4 2012
BIG DATA Big business in het petabyte tijdperk
Features CLOUD COMPUTING
Er is meer dan Google apps
OPENSTACK
De slag om de API
HET BESTE DATACENTER Onherkenbaar en onvindbaar?
Personal cloud l Open source l OpenStack Sheepdog l Ganeti l Open Nebula
CLOUD COMPUTING
Bouw uw eigen cloud
O
orspronkelijk was cloud computing synoniem met public clouds. Daarbij worden de computing resources door third party providers gehost. Ondernemingen maken zich steeds meer zorgen over de privacy, confidentiality en interoperability van public clouds. Deze bezwaren hebben mede geleid tot de ontwikkeling van de private cloud computing architectuur. Ongeacht het succes van de public cloud infrastructuur zal er om die redenen altijd een groot percentage van de werkbelasting binnen de firewall plaatsvinden. Dat geldt vooral voor applicaties met gevoelige data of intellectuele eigendommen. Beide cloudoplossingen (proprietary en open) zullen de komende jaren blijven groeien, elk met hun voor- en nadelen. Veel cloud-leveranciers schuiven op richting het gebruik van open-source cloud tools. Het lijkt op een strategische verschuiving, want de gevestigde cloudspelers (waaronder Citrix, Google en Red Hat) noemen wel de voordelen van de open source-cloud, maar in de tussentijd promoten ze hun eigen end-to-end cloudoplossing. Op basis van open source cloud-tools kunnen ondernemingen nu hun eigen private cloud gaan bouwen met, indien ze dat willen, koppelingen naar onder meer public Google en Amazone Web Services (AWS). Er bestaan diverse open source cloud-omgevingen. In dit artikel bespreken we het toonaangevende OpenStack open source cloud computing model.
Outsourcing Veel IT-managers maken zich zorgen over de complexiteit, kosten en beveiliging bij de implementatie van een cloud-infrastructuur. Ze denken dat de enige veilige weg is om de complexe bouw en het dito beheer van de cloud uit te besteden aan een service provider. Outsourcing neemt immers veel van deze zorgen weg. Service providers als Amazon, Google en Rackspace hebben een bewonderingswaardig werk gedaan om cloud computing naar de
18
www.networkpro.nl
OPENSTACK
Cloud-technologieën zijn al langer beschikbaar in proprietary vorm, maar in opkomst is nu cloud-technologie op basis van open source-software. Voor ondernemingen is het een interessant alternatief om een open en heterogene cloud-infrastructuur te kunnen toepassen. Een dergelijke heterogene infrastructuur kan uit zowel private als public clouds bestaan. BRAM DONS mainstream te brengen. Maar als gebruikers niet zorgvuldig de cloud-producten van leveranciers analyseren, dan kan de keuze voor een service provider ook tot verrassingen leiden. Ten eerste, een cloud-oplossing die niet is gebaseerd op gevestigde standaarden, kan bij verhuizing naar een andere service provider moeilijkheden opleveren. Zelfs de mogelijkheid om data van de ene naar de andere cloudgebaseerde applicatie te verplaatsen gaat niet altijd lukken. Ten tweede, bij outsourcing van de core infrastructuur naar een service provider is men overgeleverd aan
#4 december 2012
de grillen van de provider (de zogenaamde vendor-lockin). Want zal de service provider waarvoor men heeft gekozen morgen nog bestaan? We kunnen gerust aannemen dat Amazon en Google de komende jaren zullen overleven, maar hoe zal het de kleinere service providers vergaan? Het is ook belangrijk dat ondernemingen kiezen voor cloud-providers die open standaarden en heterogene cloud-omgevingen ondersteunen. OpenStack is zo’n open source-technologie die een massief schaalbare open source cloud computing software biedt.
CLOUD COMPUTING
OpenStack-technologie OpenStack biedt open source-software voor het bouwen van public en private clouds. Naast de software kent OpenStack ook een Community-omgeving en een continue ontwikkeling via Projecten. Het OpenStack Project werd in 2010 opgestart door de firma Rackspace en NASA. Oorspronkelijk bestond het uit een drietal ‘core’ services: OpenStack Compute (codenaam ‘Nova’), OpenStack Storage (codenaam ‘Swift’) en OpenStack Image (codenaam ‘Glance’). De nieuwste versies bevatten twee extra services: Dashboard (‘Horizon’) en Identity (‘Keystone’). De nieuwe ‘Folsom’-versie bevat ook een netwerk service (Quantum). Ten slotte, de deelname in de OpenStack Foundation is niet gratis. OpenStack mag dan wel open source zijn en betrekkelijk goedkoop in vergelijking met proprietary software, maar het is dus niet gratis. Volgens de OpenStack Foundation-wiki kost de platinum deelname vijfhonderd dollar per jaar, met minimaal drie jaar deelname. Het OpenStack Project als geheel is ontworpen om een massief, schaalbaar, cloud operating system te bieden. OpenStack is gebaseerd op een shared-nothing, messaging-gebaseerde, architectuur. Alle belangrijke componenten zijn op meerdere servers te draaien, inclusief een Compute, Volume, netwerk controller en een Object store (of image service). Een aparte cloud controller communiceert met de interne Object store via het HTTP-protocol, maar communiceert met een scheduler, network controller en volume controller via het Advanced Message Queue Protocol (AMQP). Om de blokkering van elke component te voorkomen, in afwachting van een response, maakt Compute gebruik van asynchrone calls. Een shared-nothing eigenschap wordt bereikt door dezelfde component meerdere malen te kopiëren. OpenStack Compute houdt de staat van het complete cloud systeem in een database bij. De OpenStack-services zijn ontworpen om gezamenlijk een complete Infrastructure as a Service (IaaS) te bieden. De integratie wordt mogelijk gemaakt door het gebruik van public API’s die door elke service worden ondersteund. Een API server fungeert als web server die als front end vóór de Computer cloud controller is geplaatst. De ontwerper is vrij in zijn keus welke service
1. Componenten OpenStack
hij inbouwt, mits hij de API’s ondersteunt; dit zijn meestal de API’s die beschikbaar zijn voor de eindgebruikers van de cloud.
Componenten OpenStack Zoals genoemd, OpenStack bestaat uit drie hoofcomponenten: Compute, Object Storage en Image Service. Compute is een cloud fabric controller die door een gebruiker of groep wordt gebruikt om virtual instances
op te starten en voor netwerkconfiguratie. Het is vergelijkbaar met Amazons EC2service, die volume services ondersteunt, analoog aan Elastic Block Store (EBS). Object Storage dient voor de opslag van objecten (files) in een massaal schaalbaar opslagsysteem. Er zijn geen directory’s te mounten, zoals dat met een file server kan. Het opslagsysteem heeft een ingebouwde redundantie en failover voorziening. Het
2. Compute-services #4 december 2012
www.networkpro.nl
19
CLOUD COMPUTING
3. OpenStack-architectuur
ondersteunt talrijke toepassingen, waaronder: backup of archivering van data, graphics of video-ondersteuning, opslag secondaire of tertiaire statische data. De Image Service fungeert als een lookup en retrieval systeem voor virtual machine images. Deze service kan op een drietal manieren worden geconfigureerd: opslaan van images, directe opslag op Amazons Simple Storage Solution (S3), of van S3opslag gebruikmaken met Object Store als intermediair voor de toegang tot S3. Dashboard biedt een modulaire webgebaseerde gebruikersinterface voor alle OpenStack-services. Identity ondersteunt authenticatie en autorisatie voor alle OpenStack-services en een service catalog voor services van een bepaalde toepassing. Compute kent meerdere services en er zijn talrijke configuraties mogelijk.
OpenStack Object Storage Veel cloud computing-omgevingen maken gebruik van persistent remote storage. Storage-oplossingen worden vaak in drie categorieën opgedeeld: object, block en file storage. Zo ook de Object Storage-oplossing. Object Storage is geen file of realtime data system, maar meer een storagesysteem voor de opslag van statische data voor de lange termijn. Het is gebaseerd op een gedistribueerde architectuur zonder centraal besturingspunt. Objecten worden naar meerdere devices geschreven, waarbij de software verantwoordelijk is voor datareplicatie en integriteit binnen de cluster. De storageclusters zijn horizon-
20
www.networkpro.nl
#4 december 2012
taal schaalbaar door nieuwe nodes toe te voegen. Bij uitval van een node repliceert OpenStack de inhoud naar de andere actieve nodes. Omdat OpenStack van software gebruikmaakt voor data replicatie en distributie tussen verschillende nodes, kunnen commodity harddrives en servers worden gebruikt, in plaats van dure apparatuur. Object Storage ondersteunt verschillende typen block storage: t"0&"5"PWFS&UIFSOFU t*&5J4$4*J4$4*&OUFSQSJTF5BSHFUWPMVmes (een oude iSCSI implementatie) t-7.WPMVNF3#%3BEPT#MPDL%FWJDF een netwerk block device voor objects in een Ceph gedistribueerde object store t4IFFQEPHHFEJTUSJCVFFSETUPSBHFTZTUFFNWPPS,7.PQCBTJTWBODPNNPEJUZ hardware t4PMBSJTJ4$4*J4$4*UBSHFUEJFPQ4PMBSJT ZFS draait t)14"/)14UPSBHF8PSLT14"/ target OpenStack kent twee typen block storage: AFQIFNFSBMFOQFSTJTUFOUAWPMVNFT&QIFmeral (kortdurende) storage bestaat alleen voor de levensduur van een instance. Het blijft wel beschikbaar bij een reboot van het guest OS, maar wordt verwijderd wanneer ook de instance wordt verwijderd. Volumes zijn persistent, gevirtualiseerde, block devices die onafhankelijk zijn van een bepaalde instance. Volumes kunnen aan een enkele instance worden gekop-
peld, maar weer af- en aangekoppeld aan een andere instance (vergelijkbaar met een USB-drive). Volume storage is persistent en wordt door de gebruiker gecreëerd. Bij de creatie zijn het nog raw block devices zonder partitie en filesystem. Ze moeten eerst aan een instance worden gekoppeld, daarna geparUJUJPOFFSEFOPGHFGPSNBUUFFSE7PMVNFT voorzien niet in de gelijktijdige toegang van meerdere instances. Daarvoor is nog steeds een traditioneel netwerk filesystem BMT/'4 $*'4PGFFODMVTUFSGJMFTZTUFNBMT GlusterFS nodig. Deze filesystems mogen binnen een OpenStack-cluster worden opgenomen of daarbuiten. Op dit moment heeft OpenStack Compute geen native support voor dit type file storage binnen FFOJOTUBODF&DIUFS NFU(MVTUFSTUPSBHF connector for OpenStack kan het GlusterFS filesystem wel als back-end voor de Image Service worden gebruikt. .FU0CKFDU4UPSBHF[JKOGJMFTWJBFFO)551 JOUFSGBDF EPPSHBBOTNFUFFO3&45"1* te benaderen. Clients hebben toegang tot data op gebruikersniveau. Dat wil zeggen, het operating system weet niet dat er een remote storage system aanwezig is. Gebruikers hebben toegang en modificeren GJMFTEPPS)551SFRVFTUTVJUUFWBBSEJHFO
Installatie en configuratie De stappen voor de installatie van een OpenStack-omgeving zoals beschreven in EFA*OTUBMMBOE%FQMPZ.BOVBM[JKOLFV[F platform, installatie en configuratie Identity en Image Service, installatie Compute, creatie en initialisatie van de ComputeEBUBCBTFNFU.Z42- UPFWPFHFOJNBHFT (optionele) installatie Object Storage en implementatie Dashboard. De complete installatie en configuratie beslaan bijna IPOEFSEQBHJOBTBBO-JOVYDPNNBOEPT XBBSWPPS[FLFSEFOPEJHF-JOVYFYQFSUJTF nodig is. De bedoeling is dat OpenStack-componenten op standaardhardware draaien. Voor een productieomgeving worden wel minimumeisen gesteld voor de cloud conUSPMMFS DPNQVUFSOPEFTFOQSPYZTFSWFST Voor de cloud controller (waarop netwerk, WPMVNF "1* TDIFEVMFSFOJNBHFTFSWJDFT ESBBJFO XPSEFOFFOCJUY (# 3". (#EJTL 4"5" 4"4PG44%
(C&/*$FOWPPSWPMVNFTUPSBHFUXFF5# 4"5" EJTLTWFSFJTU%F$PNQVUFOPEFT (waarop de virtual instances draaien) vra-
CLOUD COMPUTING
gen een 64-bit x86, 32 GB RAM en 30 GB disk space en twee 1 GbE NICs. Voor een Object Storage server, container/account en proxyserver wordt een dual quad core met 8 tot 12 GB RAM en 1 GbE NIC aanbevolen. OpenStack ondersteunt de meeste populaire Linux-varianten: CentOS, Debian, Fedora, RHEL, Debian en Ubuntu. Voor OpenStack Compute is toegang tot een PostgreSQL- of MySQL-database nodig. Het is ook als onderdeel van het Computeinstallatieproces op te nemen. Om alle services synchroon tussen meerdere nodes te houden moet het Network Time Protocol (NTP) worden geïnstalleerd.
OpenStack Virtual Machines KVM en Xen-gebaseerde hypervisors zijn voor productieomgevingen de meest geteste hypervisors. KVM wordt in OpenStack default geselecteerd en vraagt de minste extra configuratie-inspanning. Voor KVM moet de Compute-host de VT-technologie ondersteunen; VT wordt via de BIOS geactiveerd. Ingeval KVM acceleration niet wordt ondersteund, kan Compute voor een andere hypervisor worden geconfigureerd (zoals QEMU of Xen). Vanuit het perspectief van de Compute-service gezien is de QEMU supervisor grotendeels vergelijkbaar met de KVM supervisor. Het belangrijkste verschil is dat QEMU geen native virtualisatie ondersteunt. QEMU presteert slechter dan KVM en is dan ook een minder goede keuze voor een productieomgeving. De KVM en QEMU supervisor ondersteunen de volgende VM image formats: raw en QEMU (copy-on-write en vmdk). In OpenStack mogen VM’s in paravirtualized (PV) of hardware virtualized (HVM) mode draaien.
OpenStack-implementaties Het bouwen van een OpenStack-omgeving vraagt de nodige expertise. Wil men niet een cloud-omgeving van scratch opbouwen dan zijn er alternatieven. Zo biedt HP een versie van de OpenStack-software, HP Converged Cloud genaamd. Volgens HP biedt Converged Cloud ondernemingen een internetarchitectuur met koppelingen naar bepaalde externe cloud service providers (waaronder AWS). De Convergedarchitectuur ondersteunt de belangrijkste virtuele omgevingen, waaronder ESX Server, Hyper-V en KVM. Met behulp van
4. Object Storage Architectuur
cloud maps - dat zijn preconfigured cloudservices - hoeven gebruikers niet zelf een cloud vanaf scratch te ontwikkelen. HP hoopt OpenStack te gebruiken om te concurreren met AWS en VMware.
OpenStack-alternatieven De komende jaren zullen steeds meer softwareleveranciers cloud computingproducten aanbieden. Er is een vijftal open source-projecten op basis waarvan private en public clouds zijn te implementeren. Naast de hiervoor beschreven OpenStacksoftware bieden Eucalyptus, Sheepdog, Ganeti en OpenNebula mogelijkheden voor de ontwikkeling van applicaties en infrastructuur voor een cloud-omgeving. OpenStack is dus niet de enige deelnemer in de open source cloud-wereld. De firma Citrix heeft de CloudStack-software vrijgegeven. De software is vorig jaar verkregen van Cloud.com. CloudStack kan een belangrijke concurrent worden voor OpenStack, VMware en de open source-leverancier Eucalyptus; de laatste maakt van de AWS API’s gebruik voor de koppeling met bestaande cloud-diensten en -tools. Citrix heeft geprobeerd om met OpenStack een cloud te ontwikkelen maar vond dat de CloudStack-software een paar jaar voorop lag in ontwikkeling. Citrix vond ook dat OpenStack onnodig zijn eigen API ontwikkelde, want de Amazon Web Services API wordt al als een de facto standaard gezien, aldus Citrix. OpenStack reageerde daarop door erop te wijzen dat de OpenStack API al vanaf het begin compatibel is met zowel Amazon EC2 als S3.
VMware heeft zich bij de OpenStack Foundation aangemeld als gold member. De OpenStack Boards of Directors heeft nog positief gereageerd, omdat ze denken dat het een symbolische keuze is. Immers, VMware brengt zijn eigen cloud-software op de markt die niet in lijn is met het doel van OpenStack: de promotie van een open source cloud-platform. Sommige experts verwachten dat VMware op twee gebieden een belangrijke bijdrage aan OpenStack kan geven: virtual networking en de integratie van OpenStack met VMwares Cloud Foundry-platform. De vraag is of VMware zijn ESX hypervisor met het OpenStack Project wil integreren. Dat zou VMwaregebruikers toegang geven tot niet-VMware public clouds (en daarmee zou zijn eigen ontwikkelde vCloud-ecosysteem worden beconcurreerd). Verder willen ook Intel en NEC zich nog aansluiten. In april werden IBM en Red Hat al lid. De platinum leden zijn AT&T, Canonical, HP, Rackspace, Nebula en SUSE. De cloud-technologie is nog volop in ontwikkeling. Er is nog geen officiële APIstandaard, maar de Amazon-API maakt wel een goede kans om deze te worden. Maar de slag om de cloud-API is nog niet over en zal zeker de komende jaren nog voortduren.
Referenties en achtergrond Openstack www.openstack.org Sheepdog www.osrg.net/sheepdog Ganeti http://code.google.com/p/ganeti OpenNebula www.opennebula.org
#4 december 2012
www.networkpro.nl
21