Infrastructure as a Service mit der Cloud Computing Lösung ... · openstack-nova-doc Nova Dokumentation openstack-nova-network Nova Netzwerkverwaltung openstack-nova-objectstore
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Infrastructure as a Service mit der CloudComputing Lösung OpenStack auf SUSE
Version 2011-01These materials were written for SUSE Linux Enterprise Server 11,Service Pack 1.
If you have any questions, comments or want to report errors in the training materialplease post them to [email protected].
The following names, products or services are registered trademarks:
Adaptec, AIX, AMD, AMD Virtualization, AMD-V, AutoBuild, Cisco, DB2, Debian, Domi-no, the Gecko, IBM, Intel, Intel Logo, Intel Inside Logo, Intel Centrino Logo, iSeries, Java,JDBC, JVM, J2EE, Linux, Microsoft Windows, Microsoft Virtual PC, Nagios, Nagios Lo-go, Novell, N Logo, OpenStack, openSUSE, openSUSE Logo, pSeries, QEMU, Qumranet,Qumranet Solid ICE, Red Hat, Red Hat Linux, Red Hat Enterprise Linux, Red Hat Sha-dowman Logo, Solaris, StarOffice, Sun, Sun Java, Sun Microsystems, SUSE, SUSE Linux,SUSE Linux Enterprise Server, Type Enforcement, UNIX, VirtualBox, VMware, VMwareWorkstation, VMware Server, VMware ESX, YaST, Xen, Xen Logo, zSeries.
We want to point out that all soft and hardware names, trademarks and product names ofthe respective firms used in this manual remain property of their respective holders evenif not mentioned in the list above or marked accordingly.
Cloud Computing ist ein Konzept um IT-Infrastruktur, z.B. Datenspeicher oder CPU Leis-tung, abstrahiert über ein Netzwerk anzubieten und zur Laufzeit den Bedarf an die Be-dürfnisse anzupassen. Der Pool der angebotenen Resource ist dabei zu jeder Zeit er-weiterbar oder reduzierbar (sprich skalierbar).
Unterschieden wird dabei nach privaten und öffentlichen Clouds (private/public Cloud).Ein Mischbetrieb ist möglich und wird dann als Hybrid Cloud bezeichnet.
Hinweis: Bei diesem Whitepaper wurden Sicherheitsaspekte ausser Acht gelassen.
Im Kapitel Sicherheit finden sich einige Anmerkungen, die man bei einem produktivenBetrieb beachten sollte.
Hinweis: OpenStack befindet sich momentan in der Entwicklung.
Viele Funktionen wurden bislang nicht implementiert oder sind nur rudimentär vorhan-den.
OpenStack besteht aus zwei Komponenten, Compute und Object Storage . Compute ist derTeil, der für das Verwalten und Einrichten größerer Gruppen von virtuellen Maschinenzuständig ist. Der Object Storage hingegen ist für das redundante Speichern von Datenverantwortlich. Da die Daten verteilt werden, spricht man vom infinite storage. Der ObjectStorage ist vergleichbar mit Amazons S3.
2005 entwickelte die Firma Rackspace die Rackspace Cloud und entschloss sich 2009, dieSoftware neu zu schreiben. Im März 2010 wurde diese dann als Open Source freigegeben(dies betrifft den Teil Storage). Im Mai 2010 gab die NASA ihr Nebula Projekt frei undbereits im Juni schlossen sie die beiden Projekte zu OpenStack zusammen. Im Juli 2010fand das erste Zusammentreffen der Entwickler mit einer Zielvorgabe statt und schon imOktober desselben Jahres wurde das erste Release namens Austin veröffentlicht. Daranwaren bereits 35 Partnerfirmen beteiligt. Das nächste Release Bexar wurde im Februar2011 veröffentlicht.
Aktuell unterscheidet man den Teil Compute , benannt Nova und natürlich den Object Sto-rage , der nun unter dem Namen Swift bekannt ist.
Paket Komponente Beschreibungopenstack-glance Nova Dienst zum Registrieren von Imagesopenstack-nova Nova gemeinsame Dateienopenstack-nova-api Nova der API-Daemonopenstack-nova-compute Nova startet virtuelle Maschinenopenstack-nova-doc Nova Dokumentationopenstack-nova-network Nova Netzwerkverwaltungopenstack-nova-objectstore Nova einfacher Store für Imagesopenstack-nova-scheduler Nova bestimmt, welche Node welche Maschi-
nen startetopenstack-nova-volume Nova verwaltet persistente Volumesopenstack-swift Swift Swift zweiter Teil von OpenStack , der
große Objectstoreopenstack-swift-account Swift Benutzerverwaltungopenstack-swift-auth Swift Authentifizierungopenstack-swift-container Swift Containeropenstack-swift-doc Swift Dokumentationopenstack-swift-object Swift Object Serveropenstack-swift-proxy Swift Proxy
Übersicht der zusätzlich benötigten Pakete
Paket benötigt für BeschreibungMySQL Nova Datenbankserver, enthält die Projekte, Benutzer etc.RabbitMQ Nova AMQP Server (Kommunikation der Dienste untereinan-
der)memcached Swift Speicheroptimierung
Hinweis
Eine umfangreiche Linksammlung zum Thema findet sich im entsprechenden Wikipe-diartikel (http://de.wikipedia.org/wiki/Cloud_Computing).
Name IP-Adresse Funktionares 192.168.2.110 Nova (API)brontes 192.168.2.120 Nova (Compute )chronos 192.168.2.130 Swift (API), Glance (API, Registry)deimos 192.168.2.140 Dienste (MySQL , iSCSI , RabbitMQ )
Die nachfolgenden Vorbereitungen auf allen Systemen durchführen, die in Verbindungmit dem OpenStack genutzt werden sollen. Für den produktiven Betrieb wird die Erstel-lung von einem AutoYaST-Profil für die normalen Nova - sowie Swift -Nodes empfoh-len.
1.1.1 Installation von SLES11 SP1
Die Beispiele in diesem Whitepaper wurden unter SLES11 SP1 mit allen verfügbaren Pat-ches erarbeitet und getestet. Die Installation wurde in eine einzelne primäre Partition zu15 GByte durchgeführt.
Device Boot Start End Blocks Id System/dev/sda1 * 1 1958 15727603+ 83 Linux/dev/sda2 1959 3042 8707230 82 Linux swap / Solaris
Installiert wurde ein minimales System, dass heisst lediglich mit den Pattern Minimalund base. Der verbleibende lokale Speicherplatz wird später zum Aufbau des DistributedStorage sowie des Object Storage verwendet. Sind die Systeme nicht ausreichend mit RAMausgestattet, sollte noch eine Swap-Partition eingerichtet werden. Generell ist es jedochzu empfehlen ausreichend dimensionierte Hardware zu verwenden.
Nicht notwendige Dienste wurden entfernt. Insbesondere wurde die SuSEfirewall2 deak-tiviert, da OpenStack seine eigenen iptables-Regeln setzt.
# zypper refMetadaten von Repository ’Python and Python Modules (SLE_11)’ abrufen [\]
Neuen Signierungsschlüssel für Repository oder Paket erhalten:Schlüssel-ID: 27163A4EEDF0D733Schlüsselname: devel:languages:python OBS Project \
<devel:languages:[email protected]>Schlüssel-Fingerprint: 172CCD6B0CF49B7388F1C61127163A4EEDF0D733Repository: Python and Python Modules (SLE_11)
Wollen Sie den Schlüssel zurückweisen, ihm temporär oder immer \vertrauen? [r/t/a/?] (r): a
Metadaten von Repository ’Python and Python Modules (SLE_11)’ \abrufen [FERTIG]
Cache für Repository ’Python and Python Modules (SLE_11)’ \erzeugen [FERTIG]
Metadaten von Repository ’OpenStack Packages for openSUSE and \SLES11 (SLE_11_SP1)’ abrufen [/]
Neuen Signierungsschlüssel für Repository oder Paket erhalten:Schlüssel-ID: C0CB79B9CE9EAAB5Schlüsselname: isv:B1-Systems OBS Project \
<isv:[email protected]>Schlüssel-Fingerprint: A3A19AC6B7B8D887BA3C46DFC0CB79B9CE9EAAB5Repository: OpenStack Packages for openSUSE and SLES11 (SLE_11_SP1)
Wollen Sie den Schlüssel zurückweisen, ihm temporär oder immer \vertrauen? [r/t/a/?] (r): a
Metadaten von Repository ’OpenStack Packages for openSUSE and \SLES11 (SLE_11_SP1)’ abrufen [FERTIG]
Cache für Repository ’OpenStack Packages for openSUSE and SLES11 \(SLE_11_SP1)’ erzeugen [FERTIG]
Metadaten von Repository ’SLES11-SP1-Updates’ abrufen [FERTIG]Cache für Repository ’SLES11-SP1-Updates’ erzeugen [FERTIG]Alle Repositorys wurden aktualisiert.
Hinweis: Standarddienste
Wenn ein eigenes System für notwendige zusätzliche Dienste, z.B. MySQL , verwendetwerden soll ist es nicht nötig, das Repository vom OBS einzubinden wenn die Dienstebereits in SLES11 SP1 enthalten sind. Da wir alle Dienste auf einem System betreibenwerden und beispielsweise RabbitMQ kein Bestandteil von SLES11 SP1 ist, muss auch aufdeimos dieses Repository hinzugefügt werden.
Hinweis: OpenSuSE Build Service
Stefan ”seife” Seyfried hat funktionierende RPM-Pakete zusammengestellt. Diese wurdenvon uns lange getestet und stehen nun auf dem OBS (OpenSUSE Build Service) im ProjektISV:B1-Systems:OpenStack zur Verfügung. Aktuellere Pakete finden sich ebenfalls auf demOBS, im Projekt home:seife:openstack.
Hinweis: Vendor Change
Da einige Pakete in einer aktuelleren Version, als in SLES11 SP1 vorhanden, benötigt wer-den kann es zu Warnungen bezüglich eines Vendor Changes kommen. Diese müssen be-stätigt werden, damit die aktuelleren Pakete eingespielt werden können.
Hinweis: verwendete Versionen
Die verwendeten Versionen in diesem Repository sind beabsichtigt. Teilweise funktionie-ren andere Versionen nicht, z.B. gibt es Probleme wenn eine andere Version von python-boto verwendet wird.
1.2 Abhängigkeiten
1.2.1 truncate
Jede Compute -Node benötigt truncate.
Leider enthält SLES11 SP1 diese normalerweise in den coreutils enthaltene Datei nicht.Aus diesem Grund benötigt man http://ftp.redhat.com/pub/redhat/rhel/beta/6/x86_64/os/Packages/coreutils-8.4-1.el6.x86_64.rpm.
Daraus extrahiert man sich truncate und kopiert die Datei nach /usr/local/bin.
Zur Netzwerkkommunikation muss IP-Forwarding aktiviert sein.Dazu editiert man /etc/sysconfig/sysctl:
# Runtime-configurable parameter: forward IP packets.# Is this host a router? (yes/no)#IP_FORWARD="yes"
Alternativ kann man das IP-Forwarding zur Laufzeit einschalten:
sysctl -w net.ipv4.ip_forward=1
1.2.3 Kernelmodule
Benötigte Kernelmodule:
• ext4 - ext4dev-kmp-default
• nbd
• kvm
Für den Zugriff auf Dateisysteme in den virtuellen Maschinen und die sog. Config-Injectionbenötigt man u.U. ext4. Dieses Modul muss unter SLES11 SP1 noch auf folgende Art ge-laden werden:
modprobe --allow-unsupported ext4
Hinweis: Für KVM muss Hardwarevirtualisierung im Bios aktiviert sein!
Zusätzlich zum Modul kvm muss das für die Hardwarearchitektur passende Module ge-laden werden, kvm_intel für Intel-VT oder kvm_amd für AMD-V.
Die Projektseite von MySQL findet sich unter http://www.mysql.com.
In der Datenbank werden sämtliche Benutzer, Projekte, Netzwerke, verwendete IP-Adressenund viele weitere Daten gespeichert.
Zuerst installiert und startet man den MySQL -Server und setzt ein Passwort für denBenutzer root. Danach erzeugt man eine Datenbank namens nova und erlaubt dem geradeerzeugten Benutzer den Zugriff auf diese Datenbank.
deimos:~ # zypper install mysql[...]deimos:~ # rcmysql startCreating MySQL privilege database...[...]Starting service MySQL donedeimos:~ # mysqladmin password testingdeimos:~ # mysql -u root -pEnter password:mysql> create database nova;Query OK, 1 row affected (0.00 sec)mysql> GRANT ALL PRIVILEGES ON *.* TO ’root’@’%’ \
IDENTIFIED BY ’testing’ WITH GRANT OPTION;Query OK, 0 rows affected (0.00 sec)
1.3.2 RabbitMQ
Die Kommunikation der einzelnen Dienste findet aktuell über das AMQP (Advanced Mes-sage Queueing Protocol) statt. Als Server unterstützt OpenStack aktuell RabbitMQ .
Die Projektseite findet sich unter http://www.rabbitmq.com.
Hinweis: Standardkonfiguration lauffähig
Die Konfiguration ist in /etc/sysconfig/rabbitmq-server enthalten. In der Default-konfiguration des SLES11-Paketes sollten keine Anpassungen erforderlich sein.
Verwaltung der virtuellen Maschinen mittels libvirt . Dies muss auf den Nodes geschehen,auf denen die Instanzen gestartet werden sollen (Compute -Nodes).
Auf dem Cloud Controller, nachfolgend als API-Node bezeichnet, der auf ares laufensoll, werden Dienste betrieben die nur einmal benötigt werden. Diese sind nova-api sowienova-scheduler . Es empfiehlt sich für diese Dienste ein eigenständiges System zu verwen-den.
Die Dienste nova-compute und nova-volume sowie ggf. nova-network werden auf den Sys-temen benötigt, auf denen später die virtuellen Maschinen betrieben werden sollen unddie nachfolgend als Compute -Nodes bezeichnet werden. Die Verwaltung der virtuellenMaschine wird mittels der libvirt durchgeführt.
Zusätzlich zur oben genannten nova.conf existiert noch eine Datei, die die Beschrei-bung der API enthält. Seit Neuestem heisst die Date paste-api.conf, vorher lauteteder Name nova-api.conf.
Alle von SQL Alchemy unterstützten Datenbanken können verwendet werden.
Hinzufügen des Verbindungsparameters zu /etc/nova/nova.conf:
--sql_connection=mysql://root:testing@deimos/nova
Hinweis: SQL Alchemy
Witerführende Informationen zu SQL Alchemy finden sich unter http://www.sqlalchemy.org.
Von dem API-Node ares aus muss nun die Datenbank nova wie folgt initialisiert wer-den:
ares:~ # nova-manage db sync2011-02-10 10:32:34,176 INFO migrate.versioning.api [-] 0 -> 1...2011-02-10 10:32:34,874 INFO migrate.versioning.api [-] done2011-02-10 10:32:34,874 INFO migrate.versioning.api [-] 1 -> 2...2011-02-10 10:32:35,321 INFO migrate.versioning.api [-] done
Hinweis: Access denied
Bei der Fehlermeldung: CRITICAL nova.root [-] (OperationalError) (1045,Äccess denied for user ’root’@’192.168.2.110’ (using password: YES)")None None bitte die unter Dienste beschriebene Konfiguration von MySQL überprü-fen.
deimos:~ # mysql -u root -pEnter password:[...]mysql> use nova;Database changedmysql> show tables;+-------------------------------------+| Tables_in_nova |+-------------------------------------+| auth_tokens || certificates |[...]
Die in der Datenbank hinterlegten Informationen lassen sich auch dazu verwenden eige-ne Auswertungsskripte zu schreiben.
2.3.2 AMQP
Hinzufügen des Messageing-Servers zur Konfiguration:
--rabbit_host=deimos
OpenStack verwendet das Python-Framework carrot zur Nutzung des AMQP Messa-ging. Unterstützt werden von diesem Framework nicht nur RabbitMQ , sondern auchZeroMQ und Apache ActiveMQ. Von OpenStack wird derzeitig ausschliesslich RabbitMQunterstützt, andere Systeme wurden bislang nicht getestet und werden nicht empfoh-len.
Hinweis: Parameterumbenennung
Die Flags in /etc/nova/nova.conf zur Konfiguration des Queingservers werden inden kommenden Releases vermutlich umbenannt werden. Weiterhin wird wahrschein-lich RabbitMQ vollständig durch ein anderes System ersetzt.
Warnung: Restart des RabbitMQ -Servers
Aktuell gibt es Probleme bei einem Neustart von RabbitMQ während Nova -Dienste dar-auf zugreifen. Teils können sich diese nicht wieder verbinden und müssen neu gestartetwerden.
Wenn der Dienst nova-network gestoppt wird, verbleiben aktuell die dynamisch erzeugtenNetzwerkbrücken. Dieser Fehler wird in einem späteren Release korrigiert.
2.3.8 Logfiles
Die Logfiles der einzelnen Dienste liegen unter /var/log/nova, für jeden Dienst gibt eseine eigene Datei:
Um festzustellen, ob die gerade gestarteten Dienst ordentlich durchlaufen, kann maneinen Blick in die entsprechenden Dateien werfen.
Hinweis: AMQP server
Bei dem Fehler ERROR nova.rpc [-] AMQP server on localhost:5672 is unreachable.Trying again in 10 seconds. in /var/log/messages die Konfiguration von Queingüberprüfen, es fehlt das Flag -rabbit_host in /etc/nova/nova.conf.
2.4 novamanage
nova-manage dient zur Verwaltung von Ressourcen in Nova . Darüber werden u.a. Pro-jekte, Benutzer, Netzwerke etc. angelegt, verändert oder entfernt.
2.4.1 Benutzer
ares:~ # nova-manage user admin berendt2011-02-10 12:41:27,677 AUDIT nova.auth.manager [-] Created user berendt \
Für die Verteilung per DHCP benötigt man einen Pool an Adressen, der den Instanzenzugewiesen werden kann. Hier wird ein vollständiges Class-C-Netz anglegt.
Mit Hilfe der euca2ools erzeugt man einen ssh-key. Dabei wird der Schlüssel in die Da-tenbank eingetragen und als Datei abgelegt. Auf diese Datei setzt man eingeschränkteLeserechte, sonst gibt der SSH-Zugriff später eine Fehlermeldung aus.
Warnung: euca2ools und Proxyserver
Bei Verwendung sämtlicher euca2ools darf keine Umgebungsvariable für einen Proxyser-ver gesetzt sein (export http_proxy)! Andernfalls brechen die Programme mit einemunbekannten Fehler ab. Zusätzlich darf beim Starten der einzelnen Nova -Dienste auchkein Proxyserver gesetzt sein!
2.4.5 Zertifikate exportieren
ares:~ # mkdir -p /root/credsares:~ # nova-manage project zipfile testing berendt /root/creds/novacreds.zip2011-02-10 12:43:06,419 WARNING nova.auth.manager [-] No vpn data for project \
Zur Nutzung der euca2ools braucht man die entsprechenden Umgebungsvariablen. Diesewerden per oben gezeigtem Export in die Datei novarc geschrieben und könne dannproblemlos genutzt werden.
2.4.6 Security Groups
Zur späteren Erreichbarkeit der Instanzen schaltet man ICMP und ssh-Zugriff frei. Dazumüssen die passenden Einträge erzeugt werden.
0.0.0.0/0PERMISSION ttylinux-uec default ALLOWS tcp 22 22 FROM CIDR \
0.0.0.0/0
2.4.7 service list
Hiermit erhält man eine Übersicht der aktuellen Dienste, die an der API registriert sind.Die Zeitverzögerung liegt bei 10 Sekunden und man kann Dienste über nova-manage de-aktiveren oder aktivieren.
Der Volume-Manager sorgt für die Zuteilung von persisten Volumes in den Instanzen.
ares:~ # pvcreate /dev/sda3No physical volume label read from /dev/sda3Physical volume "/dev/sda3" successfully created
ares:~ # vgcreate nova-volumes /dev/sda3Volume group "nova-volumes" successfully created
Der Standard-VolumeManager verwendet eine Volumegruppe mit den Namen nova-volumes,diese muss per lvm bereitgestellt werden und vor dem Start von nova-volume auf jedennormalen Node eingerichtet werden.
2.6 Objectstorage
Der Object Storage ist für die Ablage von Images notwendig, aus denen später die virtuel-len Systeme erstellt werden.
Konfigurationserweiterung /etc/nova/nova.conf:
--s3_host=ares
Hinweis: iptables
Automatisch erstelle iptables-Regeln blocken den TCP-Port 3333, der für den Dienst nova-objectstore benötigt wird. Daher muss man diesen nach dem Start manuell mitiptables -I INPUT -p tcp -dport 3333 -j ACCEPTfreigeben.
Für erste Tests ist es ausreichend den in Nova vorhandenen Dienst nova-objectstore zu ver-wenden. Dieser legt Images lokal unter /var/lib/nova/images ab und ist über einS3-API ansprechbar. In der Produktion sollte er später durch Glance und Swift , welchenachfolgend vorgestellt werden, ersetzt werden.
Thu Feb 10 18:47:20 CET 2011: ====== extracting image ======kernel : ttylinux-uec-amd64-12.1_2.6.35-22_1-vmlinuzramdisk: ttylinux-uec-amd64-12.1_2.6.35-22_1-initrdimage : ttylinux-uec-amd64-12.1_2.6.35-22_1.imgThu Feb 10 18:47:20 CET 2011: ====== bundle/upload kernel ======Thu Feb 10 18:47:22 CET 2011: ====== bundle/upload ramdisk ======Thu Feb 10 18:47:23 CET 2011: ====== bundle/upload image ======Thu Feb 10 18:47:23 CET 2011: ====== done ======emi="ami-qqu0aarf"; eri="ami-x3rgltwg"; eki="ami-04404gn9";
Anschliessend kann mit dem Skript uec-publish-tarball, welches im Paket cloud-utilsenthalten ist, der Upload eines Maschienenimages, welches sich aus Kernel, Ramdisksowie Festplattenimage zusammensetzt, getestet werden. Den tar-Ball kann man vonhttp://smoser.brickies.net/ubuntu/ttylinux-uec/ beziehen.
Hinweis: cloud-utils
Die diversen UEC Tols, wie uec-public-tarball sind im Paket cloud-utils ent-halten.
Warnung: Test- und Entwicklungszwecke
Im Skript uec-publish-tarball muss derzeit die Zeile 37 auskommentiert werden,da die Imagedateien sonst nicht hochgeladen werden.
Nun lassen sich mit dem Programm euca-describe-images, welches im Paket eu-ca2ools enthalten ist, alle auf dem konfigurierten Object Storage hinterlegten Imagesanzeigen.
2.6.4 Images manuell hinzufügen
Entpacken des Archives
ares:~ # tar xvzf euca-debian-5.0-x86_64.tar.gzeuca-debian-5.0-x86_64/euca-debian-5.0-x86_64/xen-kernel/euca-debian-5.0-x86_64/xen-kernel/vmlinuz-2.6.27.21-0.1-xeneuca-debian-5.0-x86_64/xen-kernel/initrd-2.6.27.21-0.1-xeneuca-debian-5.0-x86_64/kvm-kernel/euca-debian-5.0-x86_64/kvm-kernel/vmlinuz-2.6.28-11-genericeuca-debian-5.0-x86_64/kvm-kernel/initrd.img-2.6.28-11-genericeuca-debian-5.0-x86_64/debian.5-0.x86-64.img
Alternativ kann man die Images für die virtuellen Maschinen auch in Einzelschritten,direkt über die euca2ools hinzufügen. Für das folgende Beispiel wurde das 64-Bit-Imageeines Debian 5.0 vonhttp://open.eucalyptus.com/wiki/EucalyptusUserImageCreatorGuide_v2.0genommen.
Glance ist ein Dienst, der für das Entdecken, Registrieren und Empfangen von Imageda-teien zuständig ist. Über die API ist es möglich, sowohl die Daten zu empfangen als auchMetadaten abzufragen.Images die durch Glance verfügbar gemacht werden können an zahlreichen Stellen ge-speichert werden, vom einfachen Dateisystem bis zu Object Stores wie z.B. Swift .
Hinweis
Im produktiven Betrieb sollte Glance die Images verwalten.
Die Projektseite von Glance findet sich unter http://glance.openstack.org.
2.7.2 Vorbereitung
Zuerst muss eine Testpartition oder ein Logical Volume vorbereitet werden und unter/srv/glance gemountet werden.
Wie schon bei Nova selbst, erzeugen wir eine MySQL -Datenbank:
deimos:~ # mysql -u root -pEnter password:Welcome to the MySQL monitor. Commands end with ; or \g.Your MySQL connection id is 25Server version: 5.0.67 SUSE MySQL RPM
Type ’help;’ or ’\h’ for help. Type ’\c’ to clear the buffer.
Zum Testen des Uploads nimmt man erneut das Image von http://smoser.brickies.net/ubuntu/ttylinux-uec:
chronos:~ # tar xvzf ttylinux-uec-amd64-12.1_2.6.35-22_1.tar.gzttylinux-uec-amd64-12.1_2.6.35-22_1-floppyttylinux-uec-amd64-12.1_2.6.35-22_1.imgttylinux-uec-amd64-12.1_2.6.35-22_1-initrdttylinux-uec-amd64-12.1_2.6.35-22_1-loaderttylinux-uec-amd64-12.1_2.6.35-22_1-vmlinuz
In der Datenbank glance sollten nun neue Tabellen erstellt worden sein:
mysql> show tables;+------------------+| Tables_in_glance |+------------------+| image_properties || images |+------------------+2 rows in set (0.00 sec)
2.7.8 Anbindung an nova
Damit Nova die Images von Glance bezieht, müssen nachfolgende Flags auf den normalennova-Nodes gesetzt werden. Bei glance_port den Port des API-Servers, per Default9292, verwenden. Der Dienst nova-objectstore wird nicht mehr benötigt und kann gestopptwerden.
running testing (testing, brontes) 0 m1.tiny \2011-03-16T15:16:01Z nova
2.9 Distributed storage
Im Standard werden die Volumes für die einzelnen virtuellen Maschinen in einer loka-len LVM2 Volumegroup mit dem Namen nova-volumes abgelegt. Für den produktivenEinsatz ist diese Methode nicht geeignet.
2.9.1 Sheepdog
Bei Sheepdog handelt es sich um ein verteiltes Speichersystem für KVM. Es werden hoch-verfügbare blockorientiere Volumes zur Verfügung gestellt, die dann in KVM-basiertenvirtuellen Maschinen genutzt werden können. Dabei skaliert Sheepdog auf mehrere hun-dert Knoten und bietet Unterstützung für erweitertes Volume-Management wie z.B. Snaps-hots und Cloning.
Die Kommunikation erfolgt über Corosync , welches z.B. auch von dem Cluster ResourceManager Pacemaker verwendet wird.
Pakete sind in unserem Repository bereits vorhanden, die Installation erfolgt mit:
Die Projektseite findet sich unter http://www.osrg.net/sheepdog/.
Warnung: Xen
Sheepdog ist nur für die Verwendung mit KVM geeignet! Bei Verwendung von Xen mussiSCSI verwendet werden.
Warnung: Sheepdog ist in Entwicklung
Bei der Verwendung von Sheepdog sollte darauf geachtet werden, dass sich die Softwarederzeitig noch in der Entwicklung befindet und kein Stable-Release vorhanden ist. Füreine stabilere Umgebung sollte die später vorgestellte iSCSI -Lösung derzeitig noch be-vorzugt werden.
# zypper ar http://download.opensuse.org/repositories/isv:/B1-Systems:\/sheepdog/SLE_11_SP1/isv:B1-Systems:sheepdog.repo
Die Konfigurationsdatei /etc/corosync/corosync.conf
compatibility: whitetanktotem {version: 2secauth: offthreads: 0# Note, fail_recv_const is only needed if you’re# having problems with corosync crashing under# heavy sheepdog traffic. This crash is due to# delayed/resent/misordered multicast packets.# fail_recv_const: 5000interface {ringnumber: 0bindnetaddr: 192.168.2.110mcastaddr: 226.94.1.1mcastport: 5405}}logging {fileline: offto_stderr: noto_logfile: yesto_syslog: yeslogfile: /var/log/cluster/corosync.logdebug: offtimestamp: onlogger_subsys {subsys: AMFdebug: off
ares:~ # collie cluster infoWaiting for a format operation
Ctime Epoch Nodes
Der Parameter –copies gibt an, auf wie vielen Knoten ein Volume repliziert werden soll.Es empfiehlt sich hier einen Wert von mindestens 3 zu verwenden. Dazu braucht manentsprechend mind. drei Knoten auf denen Sheepdog verwendet wird.
# collie vdi object testing1Looking for the inode object 0x99c57e with 4 nodes
172.19.134.24:7000: doesn’t have172.19.134.26:7000: has the object (should be 2 copies)172.19.134.25:7000: has the object (should be 2 copies)172.19.134.27:7000: doesn’t have
Das Dashboard ist eine Referenzimplementierung für ein django-nova Projekt.
Hinweis: Projektseite
Die Projektseite findet sich unter http://wiki.openstack.org/OpenStackDashboard.
Der Inhalt der Variablen NOVA_ACCESS_KEY sowie NOVA_SECRET_KEY kann der Da-tei novarc entnommen werden, die zuvor mit nova-manage user zipfile erstelltwurde.
Im Dashboard als Superuser den gleichen Benutzer verwenden wie auch in Nova (NO-VA_ADMIN_USER). Ansonsten ist das Webinterface nicht benutzbar.
You just installed Django’s auth system, which means you don’t have any superusers defined.Would you like to create one now? (yes/no): yesUsername (Leave blank to use ’root’): adminE-mail address: [email protected]:Password (again):
Der OpenStackManager funktioniert lediglich als Erweiterung für das MediaWiki. Umihn betreiben zu können müssen weitere Konfigurationen vorgenommen werden, u.a.muss die Authentifizierung in einen LDAP-Baum verschoben werden.
Hinweis
Die Projektseite findet sich unter http://www.mediawiki.org/wiki/Extension:OpenStackManager.
2.10.3 ajaxterm
ajaxterm ist ein webbasiertes Terminal, inspiriert von anyterm. Allerdings ist ajaxtermin Python geschrieben. Es lässt sich recht einfach integrieren.
Hinweis
Zusätzliche Informationen sind hier zu finden: http://antony.lesuisse.org/software/ajaxterm.
Im Folgenden ein kurzes php-Skript, welches die Daten von deimos abruft und als Web-seite darstellt. Dabei werden die Daten direkt aus der MySQL -Datebank abgefragt.
<h1>Instances</h1><table><tr><th>hostname</th><th>hosted by</th><th>state</th></tr><?php$result = $db->query("SELECT * FROM instances WHERE state=1;");
<h1>Servies</h1><table><tr><th>host</th><th>binary</th><th>service</th></tr><?php$result = $db->query("SELECT * FROM services WHERE deleted=0 AND disabled=0;");