Tags: Cloud, Virtualisierung
Ubuntu Enterprise Cloud (UEC) ist eine Server-Plattform zum Aufbau und Betrieb von private oder public Clouds. Aufbauend auf den aktuellen Ubuntu 10.4 Server wird
Eucalyptus ("Elastic Utility Computing Architecture Linking Your Programs To Useful Systems") verwendet. Diese aus einem universitären Projekt hervorgegangene freie Software wird zum einen als Service von dem gleichnamigen Startup betrieben, und ist außerdem als Paket für Ubuntu, RHEL, CentOS, openSUSE und Fedora verfügbar.
Eucalyptus plus Xen, KVM, ESX
Im Kern kann Eucalyptus verschiedene Hypervisor verwenden, um Systeme in der Cloud laufen zu lassen: Eucalyptus bevorzugt Xen, Ubuntu sieht KVM als Default vor, VMware ist in der kommerziellen Eucalyptus-Variante ebenfalls als „Motor“ verfügbar.
UEC geht mit dem Cloudcomputing-Ansatz somit deutlich über klassischen Lösungen zur Server-Virtualisierung hinaus: Rechner-, Speicher -und Netzwerkressourcen werden von dem System gebündelt und transparent für das Hosting virtueller Maschinen zur Verfügung gestellt. Die vorhandenen Ressourcen lassen sich dabei flexibel nutzen und ändern.
Die Besonderheit von UEC bzw. Eucalyptus ist dabei die weitgehende Anlehnung an den Cloud-Computing-Pionier Amazon: Alle wesentlichen Steuerungskommandos (EC2) sowie das Storage-Format (S3) sind kompatibel, so dass ein nahtloser Übergang von Amazon zur eigenen Wolke und umgekehrt möglich ist.
Amazon dürfte auch beim Anspruch auf die Verwaltung der Workloads Vorbild gewesen sein: diese lassen sich tatsächlich „elastisch“ verwalten: Dynamische Zuweisung von IP-Adressen, Auswahl von Rechnerressourcen, nachträgliche Erweiterung von Speicherplatz usw.
Architektur
UEC/Eucalyptus besteht aus einer Reihe von Server- bzw. Steuerungskomponenten. Grundsätzlich unterschieden wird dabei zwischen der zentralen Steuerung einerseits sowie den Nodes andererseits, auf denen die eigentlichen VMs – Eucalyptus spricht hier von „Instances“ – laufen und welche die Wolke ausmachen.
Die Steuerung besteht aus Cloud Controller (CLC), Cluster Controller (CC) sowie dem Storage Controller (SC). Die Architektur ist dabei hierarchisch aufgebaut:
- Jeder Node gehört zu einem Cluster, jeder Cluster gehört zu einer Cloud.
- Die Cloud wird vom CLC verwaltet, jeder Cluster vom CC.
Die Ubuntu-Variante von Eucalyptus fügt dem System einen Image-Store hinzu: Im Walrus-Speichersystem kann lokal ein Repository von Images bzw. VMs verwaltet werden, auf welches das Cloudsystem dynamischen zugreifen kann, um VMs zu provisionieren sowie darauf Snapshots zu erstellen.
In einem typischen Setup werden die Controller auf einem Rechner zusammengefasst, der dann das sog. Front-End bildet. Sämtliche Komponenten können aber jeweils auf eigenen Rechnern betrieben werden. Die Nodes werden auf dedizierten Rechnern betrieben, welche hardwareseitig über Virtualisierungsunterstützung (Intel VT, AMD SVM) verfügen müssen.
Ein typisches Minimal-Setup umfasst somit zwei Rechner (wobei für Test-Zwecke auch die Einrichtung eine Single-Server-Systems dokumentiert
Installation der Wolke: teils stürmisch
Welche Bedeutung Ubuntu dem Cloudcomputing-Paket beimisst, mag man daran ermessen, dass das Hauptmenü des Installationsprogramms direkt die Installation der Cloud anbietet. Dies macht es dem Administrator denkbar einfach, die Basis aufzusetzen: Auf dem Frontend-Rechner wird UEC als Controller mit allen benötigten Komponenten eingerichtet. Der Installer erfragt dabei vor allem, welche IP verwendet werden soll, welcher IP-Adressen-Bereich den Nodes zur Verfügung gestellt werden soll sowie welche Steuerungskomponenten (Controller) auf dem System einzurichten sind.
Auf allen Nodes erfolgt die Installation über denselben Menüpunkt, jedoch nur mit der Option „Node controller“.
Im Anschluss sollten die beteiligten Dienste auf allen Rechnern laufen. Nun ist der Zugriff über die Webadministration unter der IP des Controllers auf Port 8443 erreichbar.
UEC suggeriert mit dem Installationsprozess eine Einfachheit, die das Ganze jedoch in der Praxis nicht hat. Insbesondere die eigentliche Inbetriebnahme der Nodes, welche eigentlich mit einem einzigen Kommando im entsprechenden Cluster registriert und damit nutzbar sein sollten, erwies sich bei unseren Tests als Hürde. Zum einen muss das Networking richtig konfiguriert werden – hier greifen die Voreinstellungen des Installers nicht immer korrekt. Zum anderen müssen die Security-Komponenten richtig aufgesetzt werden – alle Steuerungskommandos werden über X509-Zertifikate gesichert, diese gilt es im System zu registrieren und richtig anzuwenden.
Besonderes Augenmerk sollte der Administrator dem Netzwerk-Setup schenken: UEC kennt vier Netzwerkmodi - SYSTEM, STATIC, MANAGED, MANAGE-NOVLAN. Dabei sehen SYSTEM und STATIC einen bereits im Netz vorhandenen DHCP-Server vor. Die Managed-Varianten dagegen implementieren einen eigenen DHCP-Server in der Cloud. Hier gilt es, dafür zu sorgen, dass keine Konflikte mit einem bereits im LAN vorhandenen DHCP-Server auftreten.
Hilfreich ist dabei, dass Eucalyptus MAC-Adressen in einem bestimmten reservierten Bereich vergibt – dieser lässt sich dann gezielt im vorhandenen DHCP-Server von der Verwaltung ausklammern. Weiterhin zu beachten ist, dass in der Eucalyptus-Konfigdatei /etc/eucalyptus/eucalyptus.conf derselbe Netzwerkmodus eingestellt wird wie auf dem Controller, damit das System zusammenspielt.
Inbetriebnahme
Nachdem der erste Node eingerichtet und rebootet ist, kann die Wolke in Betrieb genommen werden. Es empfiehlt sich, zu prüfen, ob alle Dienste laufen und miteinander kommunizieren:
cat /var/log/eucalyptus/registration.log
2010-07-23 11:13:36+02:00 | 4577 -> Calling walrus Walrus 192.168.10.169
2010-07-23 11:13:36+02:00 | 4578 -> Calling cluster cluster1 192.168.10.169
2010-07-23 11:13:36+02:00 | 4579 -> Calling storage cluster1 storage 192.168.10.169
2010-07-23 11:13:36+02:00 | 4578 -> Cluster cluster1 is already registered.
2010-07-23 11:13:36+02:00 | 4577 -> Walrus 192.168.10.169 is already registered.
2010-07-23 11:13:36+02:00 | 4579 -> SC for cluster1 is already registered.
2010-07-23 11:13:44+02:00 | 4800 -> Calling node cluster1 node 192.168.122.1
2010-07-23 11:13:44+02:00 | 4799 -> Calling node cluster1 node 192.168.10.169
2010-07-23 11:13:44+02:00 | 4800 -> euca_conf --register-nodes returned 0
Um den ersten Node in Betrieb zu nehmen, ist folgende Sequenz notwendig:
Credentials abrufen und für den User einrichten:
uecadmin@uec:~$ sudo euca_conf --get-credentials mycreds.zipunzip mycreds.zip
ln -s eucarc .eucarc
Node beim Cluster-Controller registrieren
uecadmin@uec:~$ sudo euca_conf --register-nodes 192.168.10.226
Ressourcen des Clusters prüfen:
uecadmin@uec:~$ euca-describe-availability-zones verbose AVAILABILITYZONE cluster1 192.168.10.169
AVAILABILITYZONE |- vm types free / max cpu ram disk
AVAILABILITYZONE |- m1.small 0021 / 0024 1 192 2
AVAILABILITYZONE |- c1.medium 0021 / 0024 1 256 5
AVAILABILITYZONE |- m1.large 0009 / 0012 2 512 10
AVAILABILITYZONE |- m1.xlarge 0009 / 0012 2 1024 20
AVAILABILITYZONE |- c1.xlarge 0003 / 0006 4 2048 20
Der Cluster meldet die Menge verfügbarer Ressourcen, dabei werden automatisch Availabilityzones gestaffelt nach Größenklassen von VMs gebildet.
Mit jedem weiteren Node kann das UEC-System somit nahtlos skaliert werden, eine der sehr elementaren Eigenschaften eines Cloudsystems und sicherlich einer der großen Vorteile.
Wolke ans Fliegen bringen
Ubuntu möchte es den Administratoren einfach machen und bietet im Web-Admin auf dem Reiter „Store“ eine Reihe fertig vorbereiteter Images zum Download an. Per Klick werden diese heruntergeladen und im Storage abgelegt. Anschließend kann man sich das Kommando anzeigen lassen, mit dem sich das Image als VM starten lässt:
euca-run-instances -k mykey emi-DFE11073
Mit dem Kommando euca-describe-instances läßt sich der Administrator den Status der VM anzeigen:
uecadmin@uec:~$ euca-describe-instances
RESERVATION r-47FB07CB admin default
INSTANCE i-4A060949 emi-39D4160B 192.168.10.172 192.168.10.242 running mykey 0 m1.small 2010-07-23T16:14:21.737Z cluster1 eki-AE9517D0 eri-17361927
Jeder Administrator wird aber seine eigenen Images erstellen und betreiben wollen.
Ein Eucalyptus-Image besteht aus den Komponenten:
VM image (*.img)
einem Xen-kompatiblen Pärchen aus Kernel und Ramdisk(xen-kernel/vmlinuz* und xen-kernel/initrd*)
einem KVM-kompatiblen Pärchen aus Kernel und ramdisk (kvm-kernel/vmlinuz* und kvm-kernel/initrd*).
Für Übungszwecke kann man sich z.B. hier ein entsprechend vorbereitetes Paket herunterladen.
Der Prozess der Image-Erstellung besteht aus mehreren Schritten:
Bundle: Die Bestandteile müssen zu einem Bundle zusammengestellt werden
Upload: Das Bundle wird als Image im Storage abgelegt
Registrierung: Das Bundle wird im Cluster Controller registriert
Dieser Vorgang wird für jeden Bestandteil – VM-Image, Kernel, Ramdisk – einzeln durchgeführt:
uecadmin@uec:~$ euca-bundle-image -i euca-ubuntu-9.04-x86_64/kvm-kernel/vmlinuz-2.6.28-11-generic --kernel true
uecadmin@uec:~$ euca-upload-bundle -b ubuntu-kernel-bucket -m /tmp/vmlinuz-2.6.28-11-generic.manifest.xml
uecadmin@uec:~$ euca-register ubuntu-kernel-bucket/vmlinuz-2.6.28-11-generic.manifest.xml
uecadmin@uec:~$ euca-upload-bundle -b ubuntu-kernel-bucket -m /tmp/vmlinuz-2.6.28-11-generic.manifest.xml
uecadmin@uec:~$ euca-register ubuntu-kernel-bucket/vmlinuz-2.6.28-11-generic.manifest.xml
uecadmin@uec:~$ euca-bundle-image -i euca-ubuntu-9.04-x86_64/kvm-kernel/initrd.img-2.6.28-11-generic --ramdisk true
uecadmin@uec:~$ euca-upload-bundle -b ubuntu-ramdisk-bucket -m /tmp/initrd.img-2.6.28-11-generic.manifest.xml
uecadmin@uec:~$ euca-register ubuntu-ramdisk-bucket/initrd.img-2.6.28-11-generic.manifest.xml
uecadmin@uec:~$ euca-upload-bundle -b ubuntu-ramdisk-bucket -m /tmp/initrd.img-2.6.28-11-generic.manifest.xml
uecadmin@uec:~$ euca-register ubuntu-ramdisk-bucket/initrd.img-2.6.28-11-generic.manifest.xml
uecadmin@uec:~$ euca-bundle-image -i euca-ubuntu-9.04-x86_64/ubuntu.9-04.x86-64.img --kernel $EKI --ramdisk $ERI
uecadmin@uec:~$ euca-upload-bundle -b ubuntu-image-bucket -m /tmp/ubuntu.9-04.x86-64.img.manifest.xml
uecadmin@uec:~$ euca-register ubuntu-image-bucket/ubuntu.9-04.x86-64.img.manifest.xml
Als nächstes kann man die erfolgreiche Registrierung prüfen mit
uecadmin@uec:~$ euca-describe-images
IMAGE ; emi-39D4160B ; ubuntu-image-bucket/ubuntu.9-04.x86-64.img.manifest.xmladmin ; available ; public ; x86_64 ; machine eki-AE9517D0 ; eri-17361927
IMAGE ; emi-E12B1087 ; image-store-1279878322/image.manifest.xml ; admin ; available ; public ; x86_64 ; machine eki-F75010FE ; eri-0BDE1171
IMAGE ; eki-F75010FE ; image-store-1279878322/kernel.manifest.xml ; admin ; available ; public ; x86_64 ; kernel
IMAGE ; eri-0BDE1171 ; image-store-1279878322/ramdisk.manifest.xml ; admin ; available ; public ; x86_64 ; ramdisk
Los geht es dann endlich mit dem Kommando zum Start:
uecadmin@uec:~$ euca-run-instances -k mykey --kernel eki-AE9517D0 --ramdisk eri-17361927 emi-39D4160B
Ggf. noch Zugriff auf das öffentliche Netz erteilen, mit ping testen und per SSH zur neuen VM verbinden:
euca-authorize default -P tcp -p 22 -s 0.0.0.0/0
ping 192.168.10.224
ssh root@192.168.10.224
Management
Grundsätzlich sind mehrere Wege vorgesehen, um die Dienste und VMs in der Wolke zu verwalten:
Den vollständigen Funktionsumfang erhält man (nur) über die Amazon-kompatiblen euc2ools, die Bestandteil des Eucalyptus-Pakets von UEC sind
Eine GUI ist verfügbar über die Firefox-Extension Elasticfox (alternativ über den sehr ähnlichen Fork Hybridfox)
Die eigene Cloud lässt sich zudem über Tools von Drittanbietern registrieren und managen: Landscape von Canonical (Ubuntu) als hosted oder lokale Edition sowie in Kürze RightScale (www.rightscale.com)
Fazit
Das Konzept ist faszinierend: Ubuntu liefert mit UEC und Eucalyptus eine vollständige Plattform für Cloud-Computing, kostenlos und Open-Source. Der Betrieb erweist sich als stabil, das System lässt sich sehr gut skalieren und somit kann man sich vorstellen, dass dieses Modell künftig auch in Unternehmen Schule machen könnte. Als Pluspunkt darf dabei sicherlich die weitgehende Kompatibilität zu Amazon EC2/S3 zählen, welche eine Migration in beide Richtung zu einer einfachen Aufgabe macht und damit die Zukunftssicherheit gewährleistet.
Ob das System derzeit für mehr als für Test- und Evaluierungszwecke taugt, darf jedoch fraglich erscheinen. Lediglich die Kommandozeilen-Tools sind vollständig – der Rest inklusive Elasticfox, dem Web-GUI sowie Hybridfox stellt eher ein Sammelsurium dar als eine vollständige und einheitliche Managementumgebung. Hier muss Canonical noch deutlich nachbessern, um gerade im Vergleich mit den großen Servervirtualisierungslösungen von Citrix, Red Hat und VMware Stand halten zu können.
Ganz wichtig: für den Enterprise-Betrieb selbstverständliche Sicherheitsmechanismen für Failover, High Availability usw. fehlen und müssten „manuell“ im System aufgesetzt werden.
Zudem ist der Setup-Prozess bei weitem nicht so einfach, wie das Marketing verspricht. Nach der Basis-Installation gilt es, die – vernünftige – Dokumentation intensiv zu studieren, bis sich ein erstes Erfolgserlebnis einstellt. Danach vergeht noch einiges mehr an Zeit, bis die weitergehenden Möglichkeiten – insbesondere bei den Security-Policies sowie bei der Umsetzung der Management-Konzepte (Zuteilung von Zonen, Ressourcen usw.) sowie beim Networking den Wünschen entsprechend umgesetzt sind.
Insgesamt ist der Ansatz viel versprechend und sucht derzeit in der Opensource-Szene seinesgleichen.
Links / Literatur
UEC-Home: http://www.ubuntu.com/cloud
Eucalyptus-Home: http://www.eucalyptus.com/
UEC-Dokumentation: https://help.ubuntu.com/community/UEC
Eucalyptus Beginner's Guide: http://cssoss.wordpress.com/2010/06/22/pdf-version-of-eucalyptus-beginners-guide-uec-edition/
Elasticfox: http://developer.amazonwebservices.com/connect/entry.jspa?externalID=609
Hybridfox: http://code.google.com/p/hybridfox/
Täglich Know-how für IT-Pros mit unserem Newsletter
// Kontakt: E-Mail, Xing, LinkedIn //
Ähnliche Beiträge
- Gartner Quadrant 2020 für hyperkonvergente Systeme: Nutanix und VMware weiter führend, Nischen-Player holen auf
- VMware: Update für Management-Plattform vRealize
- Mit Veeam VTL Tape-Libraries auf AWS verlagern
- Veritas mit Software-defined Storage für OpenStack
- Software-Defined-WAN-Lösung von Silver Peak mit Routing und Firewall