Xen Cluster Management Mit Ganeti Auf Debian Etch

Version 1.0
Author: Falko Timme


Ganeti ist ein Cluster-Virtualisierungs-Management-System, das auf Xen basiert. In dieser Anleitung werde ich erklären, wie man eine virtuelle Xen Maschine (instance genannt) auf einem Cluster von zwei physikalischen Systemen erstellt und wie man diese Instance verwaltet und diese virtuelle Maschine ohne Ausfall betreiben kann, wenn eines der beiden Systeme ausfällt.

Diese Anleitung ist ohne jegliche Gewähr! Ich übernehme keine Garantie, dass dies auch bei Dir funktionieren wird!

1 Vorbemerkung

Ganeti befindet sich noch immer in einem frühen Stadium. Momentan kann es auf Debian Etch Systemen installiert werden. Weiterhin kannst Du damit virtuelle Maschinen erstellen, die auch Debian Etch verwenden. Andere Linux Distributionen sollten theoretisch auch funktionieren, es gibt allerdings noch keinerlei Dokumentation darüber.

In dieser Anleitung verwende ich die physikalischen Systeme node1.example.com und node2.example.com:
  • node1.example.com: IP Adresse 192.168.0.100; wird der Master des Clusters sein.
  • node2.example.com: IP Adresse 192.168.0.101; wird das primäre System der virtuellen Maschine sein (auch bekannt als instance).
Beide haben eine 50GB Festplatte, von denen ich 10GB für die / Partition und 1GB für Swap verwende und den Rest unpartitioniert lasse, sodass der Rest von Ganeti genutzt werden kann (das Minimum sind 20GB!). Natürlich kannst Du die Partitionierung an Deine Wünsche anpassen, aber denke an das Minimum des ungenutzten Speicherplatzes.

Das Cluster, das ich erstellen möchte, wird cluster1.example.com genannt und wird auch die IP Adresse 192.168.0.100 haben.

Die Xen virtuelle Maschine (instance in Ganeti-Sprache genannt) wird die Bezeichnung inst1.example.com tragen mit der IP Adresse 192.168.0.105. inst1.example.com wird zwischen den beiden physikalischen Systemen gespiegelt unter Verwendung von DRBD - Du siehst, dies ist eine Art Netzwerk-RAID1.

Wie Du siehst, wird node1.example.com der Cluster Master sein, das heißt die Maschine, von der aus Du das Cluster kontrollieren und managen kannst. node2.example.com wird das primäre System von inst1.example.com sein, das heißt inst1.example.com wird auf node2.example.com laufen (alle Änderungen auf inst1.example.com werden auf node1.example.com mit DRBD zurückgespiegelt) bis node1.example.com übernimmt (zum Beispiel wenn Du node2.example.com zu Wartungszwecken runterfährst). Dies ist eine aktiv-passiv Konfiguration.

Ich denke es macht sich ganz gut die Rollen zwischen den beiden Systemen aufzuteilen, damit Du den Cluster Master und das primäre System nicht auf einmal verlierst, sollte ein System ausfallen.

In meinen Tests habe ich zwei Systeme mit jeweils 204MB RAM für node1 und node2 verwendet. Das ist ziemlich wenig und Du solltest deutlich mehr RAM verwenden, besonders auf Produktionssystemen. Für meine Tests war es jedoch ausreichend. Wegen des wenigem RAM habe ich mein Xen dom0s (node1 und node2) auf 64MB RAM begrenzt. Der Ganeti Installationsleitfaden besagt, dass 512MB vernünftig sind - ich finde 256MB sollten auch funktionieren. Wie auch immer, Dein System muss mehr RAM aufweisen als das, was Du für dom0 festlegst, damit genügend RAM für die virtuelle(n) Maschine(n) übrig ist.

Eine letzte Sache, die Du beachten solltest, ist, dass alle Hostnamen, die hier erwähnt werden, von allen Hosts aufgelöst werden sollten, was bedeutet, dass sie entweder in DNS existieren müssen oder Du alle Hostnamen in die /etc/hosts Datei auf allen Hosts setzen musst (das werde ich hier durchführen).

Ok, lass uns anfangen...

2 Installation Eines Basis-Debian-Systems Auf Den Physikalischen Systemen

Richte ein Basis-Debian-Etch-System auf node1 und node2 ein:

node1/node2:

Lege Deine Debian Etch Netinstall CD ein und starte von ihr. Drücke ENTER um hochzufahren:


Die Installation startet. Als Erstes musst Du eine Sprache wählen:


Wähle dann Deinen Standort:



Wähle ein Tastaturlayout:


Der Installer überprüft die Installations-CD, Deine Festplatte und konfiguriert das Netzwerk mit DHCP, falls ein DHCP Server im Netzwerk vorhanden ist:


Gib den Hostnamen an. Für node1.example.com gib node1, für node2.example.com gib node2 ein:


Gib Deinen Domain-Namen ein. In diesem Beispiel ist das example.com:


0 Kommentar(e)

Zum Posten von Kommentaren bitte