Obwohl Linux als freie Software kostenlos verfügbar ist, setzen viele beim Unternehmenseinsatz auf Enterprise-Distributionen mit Support. Wo die Stärken der ... (mehr)

Die Computing-Komponente Nova

Bis zu dieser Stelle ist bereits eine bunte Mischung an OpenStack-Diensten bereit für ihren Einsatz – der wichtigste von allen fehlt aber immer noch: Nova. Das ist die Computing-Komponente, also eben jene, die virtuelle Maschinen auf den Hosts der Wolke startet und sie später auch wieder stoppt. Um Nova auf Touren zu bringen, sind in diesem Szenario Dienste sowohl auf dem Host Alice als auch auf Bob zu konfigurieren. Der Host Charlie, der ja in diesem Beispiel als Netzwerk-Knoten fungiert, braucht dagegen keine eigene Nova-Komponente ( Abbildung 5 ).

Abbildung 5: Nach der Installation der Compute-Komponenten fungiert Bob als Compute-Knoten.

Zuerst die gute Nachricht: Die Nova-Konfiguration in »/etc/nova/nova.conf« kann auf den Hosts Alice und Bob identisch sein, Gleiches gilt für die API-Paste-Datei von Nova, die »/etc/nova/api-paste.ini« heißt. Bob als Compute-Knoten braucht im Anschluss nur noch einige kleinere Anpassungen der Qemu-Konfiguration von Libvirt, um virtuelle Maschinen starten zu können. Aber langsam und der Reihe nach.

Den Anfang macht Alice. In »/etc/nova/api-paste.ini« findet sich die Keystone-Konfiguration des Dienstes in dem Eintrag »[filter:authtoken]« . Die einzutragenden Werte sind äquivalent zu denen der »api-paste.ini« -Files der anderen Dienste, als Wert für »admin_user« dient hier aber »nova« .

Zudem finden sich in der Datei auch noch diverse Einträge, die den Begriff »volume« in ihrem Namen haben, zum Beispiel »[composite:osapi_volume]« . Sämtliche Einträge dieser Art, in deren Namen also das Wort »volume« vorkommt, muss der Admin aus der Konfiguration entfernen, weil sich unter Umständen sonst »nova-api« und »cinder-api« gegenseitig in die Haare geraten. Nach dieser Änderung ist »api-paste.ini« an die gleiche Stelle auf Bob zu kopieren.

nova.conf für OpenStack Compute

Dann folgt die eigentliche Konfigurationsdatei der Compute-Komponente, die »/etc/nova/nova.conf« heißt. Eine generische Version der Datei stellt der Autor dieses Artikels unter [4] bereit. Eine Übersicht der möglichen Parameter für »nova.conf« ist auf der OpenStack-Website unter [5] verfügbar. Die Beispielkonfiguration lässt sich so in nahezu jeder OpenStack-Umgebung verwenden, allerdings sind möglicherweise die in ihr benutzten IP-Adressen zu ändern. Sowohl Alice als auch Bob sollten die Datei als »/etc/nova/nova.conf« haben – ist sie an Ort und Stelle, folgt das Anlegen der Nova-Tabellen in MySQL auf Alice:

nova-manage db sync

Die Konfiguration von Nova ist damit abgeschlossen, auf Bob sind allerdings noch Veränderungen an der Qemu-Konfiguration von Libvirt und an der Libvirt-Konfiugration selbst nötig. Die Qemu-Konfiguration von Libvirt liegt in »/etc/libvirt/qemu.conf« – am Ende des Files sind noch folgende Zeilen anzuhängen:

cgroup_device_acl = [
     "/dev/null", "/dev/full", "/dev/zero",
     "/dev/random", "/dev/urandom",
     "/dev/ptmx", "/dev/kvm", "/dev/kqemu",
     "/dev/rtc", "/dev/hpet","/dev/net/tun",
]

Auch die Libvirt-Konfiguration selbst braucht eine Änderung – an das Ende von »/etc/libvirt/libvirtd.conf« gehören die folgenden Zeilen:

listen_tls = 0
listen_tcp = 1
auth_tcp = "none"

Diese Einträge sorgen dafür, dass Libvirt einen TCP/IP-Socket öffnet, um später Funktionen wie Live-Migration zu unterstützen. Damit das auch wirklich funktioniert, ist in »/etc/default/libvirt-bin« die Zeile »libvirtd_opts="-d"« durch »libvirtd_opts="-d -l"« zu setzen.

Anschließend wird ein Neustart aller betroffenen Komponenten fällig, auf Alice geht das mit »for i in nova-api-metadata nova-api-os-compute nova-api-ec2 nova-objectstore nova-scheduler nova-novncproxy nova-consoleauth nova-cert; do restart "$i"; done« . Auf Bob sorgt der Befehl »for in in libvirt-bin nova-compute; do restart $i; done« für den Neustart der wichtigen Komponenten. Ein »nova-manage service list « sollte danach die Nova-Dienste auf Alice und Bob auflisten und dabei für jeden Dienst als Status ":-)" eingetragen haben.

Im Grunde ist die Wolke damit bereits einsatzbereit, über die Konsole ließen sich bereits virtuelle Maschinen starten. Was noch fehlt, ist das OpenStack-Dashboard (Abbilung 6), das als Service-Servicing-Portal Endbenutzern das Anlegen virtueller Maschinen ermöglicht.

comments powered by Disqus
Einmal pro Woche aktuelle News, kostenlose Artikel und nützliche ADMIN-Tipps.
Ich habe die Datenschutzerklärung gelesen und bin einverstanden.

Konfigurationsmanagement

Ich konfiguriere meine Server

  • von Hand
  • mit eigenen Skripts
  • mit Puppet
  • mit Ansible
  • mit Saltstack
  • mit Chef
  • mit CFengine
  • mit dem Nix-System
  • mit Containern
  • mit anderer Konfigurationsmanagement-Software

Ausgabe /2023