OpenNebula: Der Aufbau einer Private Cloud

Was ist eine Private Cloud?

Das Ziel einer Private Cloud besteht nicht darin, der Öffentlichkeit eine Schnittstelle zur Cloud zur Verfügung zu stellen. um damit eigene Kapazitäten über der Internet anzubieten. Es geht vielmehr darum, seinen eigenen lokalen Nutzern eine flexible und agile private Infrastruktur bereitzustellen, in der die genutzten Services virtualisiert innerhalb eines selbst administrierten Bereich ausgeführt werden, um die Belastung effizient aufzuteilen. Die virtuelle Infrastruktur-Schnittstelle von OpenNebula stellt den Administratoren Funktionen für die Virtualisierung, die Netzwerkverwaltung, die Konfiguration von Images und physischen Ressourcen, das Management, sowie dem Monitoring und dem Accounting.

Die Sicht des Benutzers

Mit einer OpenNebula Private Cloud steht Nutzern der Infrastruktur eine elastische Plattform zum schnellen Bereitstellen und Skalieren von Services bereit, um den dynamischen Anforderungen gerecht zu werden. Die virtuelle Infrastruktur-Schnittstelle bietet folgenden Möglichkeiten, um Services auf virtuellen Maschinen zu hosten, bereitzustellen, sowie zu kontrollieren und zu überwachen.

  • Kommandozeile
  • XML-RPC API
  • Libvirt Virtualization API inkl. Management Tools

Die folgenden Beispiele zeigen die Funktionalität, die von der OpenNebula Kommandozeile bereitgestellt wird, um eine Private Cloud zu verwalten.

Zunächst überprüfen wir den Host und den physikalischen Cluster:

$ onehost list
 HID NAME                      RVM   TCPU   FCPU   ACPU    TMEM    FMEM STAT
   0 host01                      0    800    800    800 8194468 7867604   on
   1 host02                      0    800    797    800 8387584 1438720   on

Anschließend kann mittels onevm eine virtuelle Maschine an OpenNebula übertragen werden. Dazu wird als erstes ein Template einer virtuellen Maschine benötigt, aus dem ein Image erstellt wird. Das Image wird in dem Verzeichnis /opt/nebula/images abgelegt.

CPU    = 0.5
MEMORY = 128
OS     = [
  kernel   = "/boot/vmlinuz-2.6.18-4-xen-amd64",
  initrd   = "/boot/initrd.img-2.6.18-4-xen-amd64",
  root     = "sda1" ]
DISK   = [
  source   = "/opt/nebula/images/disk.img",
  target   = "sda1",
  readonly = "no" ]
DISK   = [
  type     = "swap",
  size     = 1024,
  target   = "sdb"]
NIC    = [ NETWORK = "Public VLAN" ]

Nachdem die virtuelle Maschine z.B. bzgl. der CPU und des Arbeitsspeichers auf die eigenen Bedürfnisse angepasst wurde, kann diese übertragen werden.

$ onevm submit myfirstVM.template

Nach dem Übertragen der virtuellen Maschine erhalten wir eine ID, mit welcher die virtuelle Maschine identifiziert werden kann, um diese zu überwachen und zu steuern. Die ID erhalten wir mit dem folgenden Befehl:

$ onevm list
  ID     USER     NAME STAT CPU     MEM        HOSTNAME        TIME
   0 oneadmin    one-0 runn   0   65536          host01  00 0:00:02

Das Feld STAT beschreibt den aktuellen Status der virtuellen Maschine. Befindet sich dieser im Status runn, ist die virtuelle Maschine online und wird ausgeführt. Abhängig davon, wie das Image konfiguriert wurde, haben wir Kenntnis von der IP-Adresse, wodurch wir uns auf der virtuellen Maschine anmelden können.

Um eine Migration durchzuführen, verwenden wir erneut den onevm Befehl. Wenn wir z.B. die virtuelle Maschine (VID=0) nach host02 (HID=1) übertragen wollen, nutzen wir:

$ onevm livemigrate 0 1

Damit wird die virtuelle Maschine von host01 nach host02 übertragen. Der Befehl onevm list sollte eine ähnliche Ausgabe der Folgenden anzeigen:

$ onevm list
  ID     USER     NAME STAT CPU     MEM        HOSTNAME        TIME
   0 oneadmin    one-0 runn   0   65536          host02  00 0:00:06

Wie das System funktioniert

OpenNebula - Eigenschaften

  • Verwaltung virtueller Netzwerke: Virtuelle Netzwerke verbinden die einzelnen virtuellen Maschinen.
  • Erstellen virtueller Maschinen: Die Beschreibung jeder einzelnen virtuellen Maschine wird der Datenbank hinzugefügt.
  • Bereitstellen virtueller Maschinen: Der Scheduler entscheided auf Basis von Richtlinien, wo eine virtuelle Maschine ausgeführt wird.
  • Verwaltung virtueller Maschinen Images: Vor dem Ausführen werden die virtuellen Maschinen Images zu dem Host übertragen und SWAP Disk Images erstellt. Nach dem Ausführen werden die virtuellen Maschinen Images in das Repository zurückkopiert.
  • Verwaltung gestarteter virtueller Maschinen: Virtuelle Maschinen werden gestartet und der aktuelle Status periodisch abgefragt. Zudem können die virtuellen Maschinen heruntergefahren, angehalten, gestopped und migriert werden.

OpenNebula Private Cloud - Die wichtigsten Komponeten

  • Hypervisor: Der Virtualisierungsmanager - auf den Ressourcen des Clusters installiert, die OpenNebula für die Verwaltung der virtuellen Maschinen vorgesehen hat.
  • Virtual Infrastructure Manager: Zentrale Verwaltungseinheit zum Steuern und Überwachen der virtuellen Maschinen und Ressourcen. Unterstützt weiterhin die Verwaltung der virtuellen Netzwerke, das Life-Cycle Management der virtuellen Maschinen, das Management der virtuellen Maschinen Images sowie die Fehlertoleranz.
  • Scheduler: Verwaltung der Richtlinien für die virtuellen Maschinen hinsichtlich der gleichmäßigen Verteilung der Last, Server Konsolidierung, Zugehörigkeit, Reservierung der Kapazitäten und SLAs

Quelle

  • Building a Private Cloud