Door de Ubuntu Enterprise Cloud is het open source Eucalyptus privé cloudplatform al geïntegreerd met Ubuntu, waardoor het creëren van een privé cloud te veel minder werk kost dan door eerst Linux te installeren en dan Eucalyptus. En als je vervolgens resources over wilt zetten naar de openbare cloud, of als je bij piekbelasting gebruik wilt maken van de openbare cloud, dan is de Ubuntu cloud zo ontworpen dat het compatibel is met EC2 van Amazon.

Aan de andere kant moet je als beheerder wel in zowel Ubuntu als Eucalyptus duiken, want omdat Ubuntu Enterprise Cloud helemaal afhankelijk is van Eucalyptus, moet je soms verder zoeken dan de Ubuntu-documentatie, zeker als er problemen zijn. Wij ondervonden dat de documentatie van Ubuntu over het aanpassen van images nog tekort schoot, terwijl dat toch een belangrijke stap is bij het uitrollen van Ubuntu Enterprise Cloud.

Virtualisatieplatform

Je kunt Ubuntu Enterpise Cloud op je eigen hardware zetten om er VM’s met applicaties op te draaien. Het idee is dat je er eerst storage aan toekent, en dat je daarna meerdere virtuele machines aanmaakt om data te verwerken en te verzamelen. Als dat goed werkt kun je de infrastructuur hergebruiken voor andere doelen.

Ubuntu Enterprise Cloud heeft beheertools die lijken op wat je hebt op de openbare cloud van Amazon. Die tools kunnen worden gebruikt om periodiek taken uit te voeren of eenmalige applicaties te draaien, zoals DNA analyse, het renderen van video of het reformatten of opnieuw indexeren van database tables.

Ubuntu Enterprise Cloud gebruikt KVM, het virtualisatieplatform dat in de Linux-kernel is opgenomen. Dit is belangrijk omdat er extra images worden geleverd door Eucalyptus. Daar zitten zowel images voor Xen als voor KVM tussen, en je moet dus de images hebben voor KVM als je ze in de Ubuntu Enterprise Cloud wilt importeren.

Controllers

Om UEC goed te kunnen draaien moesten we twee dedicated systemen hebben. De eerste wordt gebruikt voor de front-end beheer-applicaties, waaronder een Cloud Controller, een Cluster Controller, Walrus Controller en de Storage Controller. Het andere systeem werd de machine waarop de virtuele machines worden gehost.

De beheerdiensten waren makkelijk te begrijpen, omdat ze heel erg lijken op de onderdelen van Amazon EC2 Cloud. De Ubuntu Enterprise Cloud Controller is de front-end service applicatie. Daarmee verbind je als je de cloud wilt beheren. Het begrijpt EC2 API calls, en geeft je een webinterface.

Met de Cluster Controller beheer je elk cluster van node resources. Het communiceert met de host via de open source libvrt bibliotheek. Hoe meer hardware resources we in het systeem konden proppen, hoe meer nodes we konden draaien. Maar dat is natuurlijk niet iets wat Ubuntu aanraadt.

De Walrus Controller dient als een storage mechanisme, zoals Amazon 3S (Simple Storage Service) voor opslag van data of VM images. De Ubuntu Enterprise Cloud Storage Controller maakt virtuele disks aan die verbonden kunnen worden met draaiende machines. Elk cluster kan een Storage Controller krijgen voor het beheer, snapshots, object aggregatie, en zo verder.

Installatie

De installatie was erg makkelijk. We stopten de Ubuntu Server cd in het systeem, kozen Ubuntu Enterprise Cloud, en gingen aan de koffie. Tijdens de installatie hoefden we alleen wat opties te selecteren, en als er meer informatie nodig was kwamen er pop-ups waarin we keuzes konden maken, zoals hostname of een elastische IP adress range.

De installer maakte automatisch certificaten, sleutels, private sleutels en andere relevante data aan. De meeste van die klusjes zou je met de hand moeten doen als je Eucalyptus zelf ging opzetten.

Vervolgens installeerden we een node door de installatie voor nodes te draaien. Als beide machines op hetzelfde netwerk zitten, zal de node automatisch het cluster en de cloud controllers vinden. Er zijn verschillende netwerk topologieën beschikbaar, naar gelang hoeveel machines er beschikbaar zijn, maar Ubuntu raadt niet aan om één machine te gebruiken in een productieomgeving, hoewel dat wel mogelijk is.

Configuratie

Voor de verschillende jobs en hun applicaties moet je de Ubuntu Enterprise Cloud nog verder configureren. Het grootste gedeelte van de setup wordt al door de installer gedaan. Om UEC in gebruik te nemen gingen we naar de webinterface, en logden in als de default gebruiker admin/admin. Die combinatie veranderden we natuurlijk direct. Verder moesten we wat andere informatie invullen, zoals e-mail en naam, maar er kon ook nog wat optionele metadata worden ingevuld, zoals telefoonnummer, projectleider en projectomschrijving.

Toen dat eenmaal gedaan was, konden we een zipbestand downloaden waar onze gegevens in stonden (X.509 certs, publieke en privé sleutels) die gebruikt kunnen worden met Amazon EC2 tools (of met de Eucalyptus tools en bepaalde andere tools van derden). Daarnaast kun je een query ID en een geheime sleutel krijgen voor gebruik met Amazon-achtige tools. HybridFox, een Firefox plugin, was de simpelste en snelste tool die we konden vinden om het beheren van onze cloud te versimpelen (we hadden het natuurlijk ook met ssh kunnen doen, waardoor we alleen commandline tools ter beschikking zouden hebben).

Om energie te besparen is het mogelijk om de elektriciteit voor de nodes te beheren: aanzetten als er een job gedraaid moet worden, uitzetten als die job gereed is. Nadat we dat geconfigureerd hadden, gaat het automatisch en de controller zal van een afstand de machines aan- en uitzetten als dat nodig is. Om dit mogelijk te maken moesten we Wake-On-LAN voor onze netwerkinterface op de node zetten. Daarnaast moest de serverhost op z’n minst één van de volgende Linux power management commando’s ondersteunen: pm-suspend, pm-hibernate of poweroff. Default gebruikt de machine een van deze commando’s als hij vijf minuten niet gebruikt is (en, natuurlijk, als er geen instances op draaien).

We hebben dit getest en het lijkt prima te werken. Na vijf minuten werd onze node uitgeschakeld. We probeerden er vervolgens een nieuwe instance op te laden, en de machine ging keurig weer aan en draaide de instance. Dit lijkt dus een prima manier om energie te besparen als je nodes niet in gebruik zijn, zonder dat je steeds naar je datacentrum hoeft te rennen om de stroom uit en aan te zetten.

Imagebundels

Voor elke taak is er een VM instance die is voorgeconfigureerd om een deel of al het werk te doen. Het besturingssysteem is zo ontworpen dat het alleen die onderdelen gebruikt die nodig zijn. Als zo’n VM eenmaal gebouwd is, dan kan het ook gekopieerd worden, zodat meerdere instances gelijktijdig dezelfde soort taak uit kunnen voeren, of verschillende delen van een taak.

Het bundelen van Ubuntu Enterprise Cloud images lijkt erg op de methode die wordt gebruikt bij Amazon EC2, en gebruikt vrijwel dezelfde commando’s. Als je gewend bent aan de manier waarop EC2 het doet, dan zul je hier ook geen problemen tegenkomen. Ben je niet bekend met deze methode, dan levert de documentatie op de website van Eucalyptus informatie over de commando’s, euca-bundle-vol.

Voor het bundelen van onze VM begonnen we met een basis Ubuntu 10.04 Ubuntu Enterprise Cloud server image. Nadat we deze instance hadden opgestart, logden we in op die machine met ssh en we volgden de instructies om er meer applicaties op te installeren. In dit geval gebruikten we de LAMP server optie. Na de eerste installatie, upgradeden we naar de laatste versies, en vervolgens installeerden we onze testwebsite. De bundel werd vervolgens gebouwd met de commandline tools. Jammer genoeg zijn de commando’s niet zo slim dat je er dingen mee kunt doen als het eerst controleren van diskruimte.

Het opzetten van een image zoals beschreven is niet echt prettig. We leerden het door het fout te doen en opnieuw te proberen. We geven je de commando’s die we hebben gebruikt om een image te bundelen (nadat alles geüpdatet was) dat de nieuwste Ubuntu 10.04 draaide:

euca-bundle-image -i /boot/initrd.img-2.6.32-21-generic-pae --ramdisk true -r i386

euca-upload-bundle -b lamp-bucket -m /tmp/initrd.img-2.6.32-21-generic-pae.manifest.xml

euca-register lamp-bucket/initrd.img-2.6.32-21-generic-pae.manifest.xml

euca-bundle-image -i /boot/vmlinuz-2.6.32-21-generic-pae --kernel true -r i386

euca-upload-bundle -b lamp-bucket -m /tmp/vmlinuz-2.6.32-21-generic-pae.manifest.xml

euca-register lamp-bucket/vmlinuz-2.6.32-21-generic-pae.manifest.xml

euca-bundle-vol -p lamp-server -d /mnt --kernel eki-0E6C159C --ramdisk eri-4FE51677 -r i386 -s 5120

euca-upload-bundle -b lamp-bucket -m /mnt/lamp-server.manifest.xml

euca-register lamp-bucket/lamp-server.manifest.xml

Deze negen commando’s kunnen makkelijk in een script worden gezet om de verschillende onderdelen van de bundel te creëren: ramdisk, kernel en image. Merk op dat het makkelijk te begrijpen XML wordt gebruikt. We zouden wel willen dat de instructies verbeterd worden.

Gebruik en monitoring

Ubuntu Enterprise Cloud maakt gebruik van de Eucalyptus ‘euca’-commando’s voor het monitoren en beheren van instances. Die commando’s lijken veel op de commando’s die door Amazon worden gebruikt.

Het beheer kan met HybridFox, een plugin die is gebaseerd op ElasticFox van Amazon. Het is een Firefox browserextension die een simpele GUI levert voor het benaderen, monitoren en gebruiken van de cloud resources. In onze test werkte ElasticFox niet, omdat de nieuwste versie daarvan niet meer compatibel is met Eucalyptus. Maar HybridFox werkte prima. De combinatie van HybridFox en Ubuntu Enterprise Cloud maakte het makkelijk om een privé cloud te beheren. We kunnen dan ook iedereen aanraden om deze combinatie te gebruiken, en we denken dat het een prima toevoeging zou kunnen zijn aan de Ubuntu Enterprise Cloud download.

Met HybridFox konden we alles zien: onze images, instances, sleutelparen, security groups, elastische IP adressen, EBS volumes en clusters. We konden nieuwe instances maken van images, verbinden met instances via ssh, nieuwe sleutelparen en security groups toevoegen en veranderen en EBS volumes maken en verwijderen. Jammer genoeg konden we geen nieuwe bundels maken van draaiende instances en we konden ook geen bundels uploaden. Dat moest nog steeds vanuit de commandline.

Conclusie

Ubuntu Enterprise Cloud verzorgt een strakke samenwerking tussen Ubuntu, Eucalyptus en een aantal CLI tools, die ongeveer de lijn volgen die Amazon heeft uitgezet. Het werk dat je voor Ubuntu Enterprise Cloud hebt verzet wordt zo herbruikbaar als je het naar Amazon overzet.

We missen nog wel de vooraf gemaakte bundels zoals die worden gebruikt door bijvoorbeeld RightScale, zodat bepaalde veelvoorkomende taken makkelijker worden gemaakt. Toch wordt een paar uur werk al beloond met herbruikbare Ubuntu privé cloud job/batch componenten. Als je een beetje zenuwachtig wordt van openbare clouds, dan heb je nu een mooie manier om cloud computing binnen je eigen datacenter in te zetten.

Bron: Techworld