DRBD 9, Nutzung des Festplattenspeichers unter Proxmox VE, verteiltes Storage
Proxmox VE und DRBD 9 für verteiltes Storage in größeren Clustern. Mit Linstor können wir ein verteiltes Dateisystem aufsetzen, den Festplattenspeicher im Cluster nutzen und außerdem können wir das ganze System hochverfügbar machen.
Es werden 3 physische Server mit entsprechend viel RAM, sehr viel Festplattenspeicher und mehreren CPU Kernen gebraucht. Auf jedem Server wird Proxmox VE installiert.
Netz und die Namen der Server
Netz: 172.16.0.0/22 Domäne: mono.plan Gateway: 172.16.0.1 DNS: 8.8.8.8 oder andere DNS-Server
Nach der Proxmox VE Installation haben wir 3 Server zur Verfügung. Danach können wir im Browser auf dem Client die WEB Interfaces starten und sich anmelden. https://172.16.0.201:8006
Die WEB Interfaces von dem zweiten Proxmox VE Server. https://172.16.0.202:8006
Die WEB Interfaces von dem dritten Proxmox VE Server. https://172.16.0.103:8006
Die Namen der Server sollten in DNS eingetragen werden. Zur Sicherheit, im Falle, wenn der DNS-Server ausfallen sollte, trage ich auch die Namen der Server auf allen 3 Servern in der /etc/hosts Datei.
Wir definieren jetzt auf einem von den drei Proxmox VE einen Cluster. Der Name des Clusters, z.B. mbsCluster1. Wir können auch jeden anderen Namen nehmen. Es wird Links auf Datacenter geklickt, dann auf Cluster und auf Create Cluster.
Es wurde ein Cluster erstellt. Zuerst befindet sich der pve201 Server als einziger im Cluster. Um weitere Proxmox VE Server zu dem Cluster zufügen, klicken wir auf Join Infomation und kopieren die Informationen.
Mit einem Klick auf Copy Information werden alle benötigte Informationen für den Join weiter Maschinen in die Zwischenablage kopiert.
Wir wechseln zu dem zweiten Proxmox VE Server https://172.16.0.202:8006 und klicken auf Join Cluster. In dem geöffneten Fenster können wir in dem Eingabefeld mit STRG+V die Informationen aus der Zwischenablage einfügen. Danach müssen wir noch das Root-Passwort eintragen und den Join bestätigen, Wir warten eine Weile und aktualisieren dann die Web-Seite. Es kommt das Anmeldefenster und nach dem Anmelden sehen wir schon die Änderungen in auf der Oberfläche.
Wir wechseln zu dem dritten Proxmox VE Server https://172.16.0.203:8006 und klicken auf Join Cluster. In dem geöffneten Fenster können wir in dem Eingabefeld mit STRG+V die Informationen einfügen. Danach müssen wir noch das Root-Passwort eintragen und den Join bestätigen,
Alle drei Server befinden sich ab jetzt in einem Cluster. So sieht die grafische Oberfläche von Proxmox VE, wenn sich die Server pve201, pve202 und pve203 im Cluster befinden.
DRBD 9, Verwaltung des Festpalttenspeichers der 3 Server mit Linstor.
DRBD hat die Aufgabe, die Daten in Echtzeit auf andere Server zu spiegeln. Auf diese Weise kann man Hochverfügbarkeit der Server erreichen. In unserem Fall würde das so aussehen, dass die Daten, die auf dem Server pve201 gespeichert werden, sofort auf den anderen beiden Servern pve202 und pve203 gespiegelt werden. In unserem Fall haben immer aktuelle Daten auf 3 verschiedenen Servern.
Zu diesem Zweck brauchen wir DRBD 9 auf den Servern. Bei Standard Installation ist DRBD 8 auf Proxmox VE 8.x installiert.
Nach der Standard Proxmox VE Installation werden DRBD 9 Pakete installiert. Im ersten Schritt wird auf allen Servern Repository eingefügt.
linstor-satellite Dienst-Datei wird entsprechend angepasst. Die drei Zeilen werden eingefügt bzw. angepasst. Auf allen Server.
# systemctl edit linstor-satellite
[Service] Type=notify TimeoutStartSec=infinity
Der Dienst linstor-satellite wird auf jedem Server aktiviert.
# systemctl enable linstor-satellite --now
Auf jedem Server brauchen wir ein Volume Group. Wir gehen davon aus, dass mindestens eine zusätzliche Festplatte für die Daten verfügbar ist. Auf der Festplatte wird eine Partition erstellt, mit pvcreate wird die Partition initialisiert und danach wird ein Volume Group vg_drbd erstellt. Das machen wir auf allen Servern. In unserem Fall haben wir eine Festplatte sdb.
# cfdisk /dev/sdb
Wir haben eine Partition sdb1 erstelllt. Jetzt können wir die Partition initialisieren. Auf jedem Server
# pvcreate /dev/sdb1
Eine VG wird erstellt. Auf jedem Server,
# vgcreate vg_drbd /dev/sdb1
Aus einem Server machen wir zusätzlich einen Linstor-Controller. Auf dem Linstor-Controller und nur auf dem Linstor-Controller werden bestimmte Befehle ausgeführt, um den Festplattenspeicher auf den Servern zu nutzen, verwalten und zu kontrollieren. Wir nehmen gleich den ersten Server, also pve201
Storage Pool wird für jeden Server erstellt, selbstverständlich nur auf dem Linstor-Controller. Vorher haben wir schon Volume Group mit dem Namen vg_drbd auf jedem Server erstellt.
Volume Group wird ertellt. Nur auf dem Linstor-Controller
root@pve201:~# linstor volume-group create pve-rg
Resource Group kann man mit dem Befehl linstor resource-group list auflisten
root@pve201:~# linstor resource-group list
Die Proxmox VE Storage Datei /etc/pve/storage.cfg können wir jetzt bearbeiten. Es reicht, wenn wir die Datei nur auf dem Linstor-Controller (pve201) bearbeiten. Zwischen den Festplatten Einträgen bitte eine Zeile leer lassen.
Jetzt können wir auf der grafischen Oberfläche von Proxmox VE z.B. auf dem pev201 eine neue VM erstellen. Gleich nach der Erstellung der VM können wir uns auch den Zustand der Replikation der Festplatten mit dem folgenden Befehl anschauen. Die Daten werden synchronisiert.
root@pve201:~# linstor resource list
Wenn die Synchronisation abgeschlossen ist, wird es ca. so aussehen.
Wenn eine VM gestartet ist, wird die Festplatte bzw. die Festplatten in Benutzung (InUse) angezeigt.
Die VMs kann man jederzeit von einem zu dem anderen Server ohne Unterbrechung migrieren. Wir haben ein Cluster, aber noch keine Hochverfügbarkeit.
Der Cluster wird hochverfügbar gemacht.
Es wird eine HD Gruppe HA-Group erstellt. Zu dieser Gruppe werden alle 3 Knoten eingefügt pve201, pve202 und pve203.
Jetzt müssen wir noch die VM definieren, die zu der hochverfügbaren Gruppe gehören soll. Es wird links auf Datacenter geklickt, in der Mitte auf HA und rechts auf Resource->Add. Eine VM und die HA-Gruppewird ausgewählt. Mit dem Button Add wird das alles bestätigt. Ab jetzt haben wir hochverfügbare VM. Sollten der Knoten auf der die VM gerade läuft ausfallen, wird die VM in kürzeste Zeit auf einem anderen Knoten automatisch starten.
Wenn wir vorhaben, die VM ganz normal herunterzufahren, müssen wir die Option Request State auf stopped ändern. Dann kann die VM ganz normal heruntergefahren werden. Wollen wir die VM wieder starten, wechseln wir die Option Request State auf started