silvesterlangen.de

Seite
Menü

Proxmox Failover Cluster

Proxmox ist eine Virtualisierungslösung auf Basis KVM und LXC und verwendet als Grundlage Debian Linux. Der Vorteil daran ist, dass man problemlos aus den Repos von Debian Tools nachinstallieren kann, wenn man sie braucht.

 

Was haben wir vor?

Wir installieren drei Proxmox-Knoten und bilden mit ihnen einen Failover Cluster. Ziel ist es eine VM hochverfügbar zu halten. Bei Ausfall eines Knoten soll ein anderer Knoten die "Arbeit" übernehmen und die VM betreiben.

 

Die Installationsvarianten

Die Installation von Proxmox kann auf ein bestehendes Debian Linux aufgesetzt werden oder ein fertiges ISO genutzt werden. Das vom ISO installierte Proxmox verwendet LVM. Die installierten VMs werden dann in eigenen logical Volumes installiert. Das bietet den Vorteil, dass ein solches Volume problemlos vergrößert oder verkleinert werden kann.

Wichtig!
Sollten mehrere Proxmox Wirte zu einem Cluster zusammengefasst werden, dann bei der Wahl des Hostnamen darauf achten, dass sie unterschiedlich sind, da es sonst Probleme geben wird das Cluster zu bestücken. Außerdem ist es wichtig, dass die Knoten (Nodes) im selben Subnetz sind und alle Knoten untereinander per SSH erreichbar sind.

 

Vorbereitungen

Nach der Installation der VM treffe ich einige Vorbereitungen bevor ich die Knoten zu einem Cluster verbinde. Folgende Schritte habe ich gemacht:

  1. Jeder Knoten hat einen einzigartigen Hostnamen. Ich habe mich dafür entschieden die Knoten pve41 bis pve43 zu benennen.
  2. Die IP-Adressen hab ich im Bezug auf die Hostnamen 192.168.2.41 - 192.168.2.43 benannt, um so mit dem Hostnamen auch die IP zu wissen und umgekehrt
  3. Alle drei Knoten sind per NTP zeitsynchronisiert.
  4. Jeder Knoten hat zwei Festplatten. Eine für Proxmox und ISOs und die zweite für die VMs.

 

No Subscription Repository

https://pve.proxmox.com/wiki/Package_Repositories

 

Das Cluster erzeugen

Nach der Installation, der Vergabe einer gültigen IP und Hostnamen für jeden Node, muss das Cluster erst erzeugt werden. Noch ist jeder Knoten für sich. Um einen Cluster zu erzeugen führt man folgenden Befehl aus: pvecm create [ClusterName]

Als Beispiel also: pvecm create mycluster

Mit einem pvecm status kann dann geprüft werden, ob das Cluster erzeugt wurde. Es wird dann auch gleichzeitig dieser Knoten dem Cluster hinzugefügt.

Nun fügen wir die beiden anderen Cluster-Knoten hinzu. Das geschieht wieder per Consolel mit der folgenden Zeile: pvecm add 192.168.2.41

Das Cluster ansich ist schon erzeugt.  Bis jetzt können wir aber nur VMs auf den einzelnen Knoten erzeugen und wie von Knoten zu Knoten migrieren. Das geschieht auch nur mit heruntergefahrener VM. Eine Live-Migration ist nicht möglich.

 

Bevor wir mit der Installation von Ceph fortfahren, muss Proxmox komplett aktualisiert werden, da es ein Problem mit den Ceph-Paketen gibt, die dabei sind. Erst nach dem Update lässt sich Ceph ohne Theater installieren und einrichten. Darum bitte spätestens jetzt das Repo (siehe oben) einbinden und dann mit apt-get upgrade und dist-upgrade Proxmox auf den aktuellen Stand bringen.

 

Ceph installieren

Damit VMs per Live-Migration von Knoten zu Knoten bewegt werden können, benötigen wir einen gemeinsamen Storage. Dazu müssen wir Ceph installieren, um diesen gemeinsamen Storage bereitzustellen. Machen wir also per Console weiter. Auf allen drei Knoten muss Ceph installiert werden. Das holen wir uns ganz einfach per Apt aus den Proxmox-Repos.

pveceph install --version luminous

Nach dem Ceph installiert wurde, muss nun eine initiale Konfiguration für Ceph her. Diese erzeugt man mit dem Command: pveceph init --network 10.10.10.0/24

Damit Proxmox den Zustand des Storages prüfen kann und feststellen kann, wenn das Storage nicht in Ordnung ist, müssen noch drei Monitore installiert werden - Stichwort: Quorum. Das muss auf allen drei Knoten gemacht werden. pveceph createmon

Die weiteren beiden "Monitore" können über das Webinterface erstellt werden. Dazu klickt man auf den Knoten, dann Ceph -> Monitor -> Create und wählt dort den nächsten Knoten. Diesen Schritt mit dem dritten Knoten wiederholen.

 

Ceph OSD erstellen, Pool bilden und Storage bereitstellen

Nun muss der Storage zusammengebaut werden. Das lässt sich ebenfalls fein über die GUI machen. Es sei noch mal angemerkt, dass dafür eine extra Disk zur Verfügung stehen muss, die für den Storage verwendet wird. Per GUI wählt man den Knoten, dann Ceph -> OSD -> Create: OSD und wählt dort die Disk aus.

Per Console auf jedem Knoten ausgeführt geht das mit pveceph createosd /dev/sdb

Danach muss ein Pool erstellt werden. Das geht wieder in der GUI -> Knoten -> Ceph -> Pool -> Create. Im darauf folgenden Popup wird bei ID der Name vergeben. Den brauchen wir dann im Folgeschritt, wenn wir den Keyring anlegen. Die restlichen Einstellungen kann man erst mal so lassen. Wichtig ist zu wissen, dass man den Wert pg_num nur erhöhen, aber nicht senken kann. Dazu mal den Link anschauen und den richtigen Wert ermitteln. Für den ersten Run würde ich ihn aber so lassen und später anpassen.

Nun muss der Keyring bereitgestellt werden. Dazu wieder per Console erst ein Verzeichnis erstellen und dann die Datei kopieren. Dabei ist zu beachten, dass der Name, den wir oben bei Pool vergeben haben, hier wiederverwenden. Ich habe als Poolnamen "mypool" gewählt und nutze ihn entsprechend in diesem Beipiel:

mkdir /etc/pve/priv/ceph
cp /etc/pve/priv/ceph.client.admin.keyring /etc/pve/priv/ceph/mystorage.keyring

 

 

 

« vorige Seite Seitenanfang nächste Seite »
Seite
Menü
Earned Certificates:
LPIC-1 LPIC-1 LPIC-1
Powered by CMSimple | Template by CMSimple | Login