Wenn nur 2 Proxmox Server existieren/gebraucht werden und trotzdem ein Cluster erstellt werden soll kann man ein Quorum Device hinzufügen um zu verhindern das etc/pve
readonly wird wenn mal einer der Server rebootet/gewartet wird.
Ich habe einen alten RaspberryPI von 2011 genommen da dieser noch rumlag und als reines Quorum Device mehr als ausreichend ist. Er wurde mit einer 4GB SDCard bestückt auf welcher ein minimales Raspian installiert ist mit aktiviertem SSH Server. Mehr ist auch nicht notwendig.
Die beiden Proxmox Server sollten ebenfalls fertig installiert und auf dem neusten Stand sein. Einer der Proxmox Server darf keinerlei Container oder VM's enthalten wenn er dem Cluster beitritt. Auf dem anderen können beliebig viele Container und VM's vorhanden sein und auch laufen, dieser wird unser "Master" auf dem wir den Cluster erstellen.
Wir haben also drei Maschinen laufen mit den folgenden Hostnamen:"Proxmox", "Proxmox2" und "raspberrypi"
So als erstes erstellen wir jetzt auf "Proxmox" den Cluster in einer SSH Konsole:
pvecm create YOUR-CLUSTER-NAME
Überprüfen kann man das ganze mit:
pvecm status
Nun mit "Proxmox2" dem Cluster beitreten:
pvecm add IP-ADDRESS-PROXMOX
Jetzt wechseln wir auf den "raspberrypi" und installieren die nötigen Pakete und erstellen SSH Keys und kopieren sie auf die beiden Proxmox Maschinen damit diese sich Passwortlos anmelden können.
ssh-keygen -t rsa
ssh-copy-id root@IP-ADDRESS-PROXMOX
ssh-copy-id root@IP-ADDRESS-PROXMOX2
apt install corosync-qnetd
systemctl enable corosync-qnetd
systemctl start corosync-qnetd
Nun gehen wir zurück nach "Proxmox" und führen folgende Befehle aus, das gleiche machen wir danach auf "Proxmox2":
ssh-copy-id root@IP-ADDRESS-RASPBERRYPI
apt install corosync-qdevice
systemctl enable corosync-qdevice
Nun gehts wieder zurück auf "Proxmox" und wir erstellen das Quorum Device:
corosync-qdevice-net-certutil -Q -n YOUR-CLUSTER-NAME IP-ADDRESS-RASPBERRYPI IP-ADDRESS-PROXMOX IP-ADDRESS-PROXMOX2
Wenn das ganze sauber durchgelaufen ist muss jetzt nur noch die corosync.conf
angepasst werden. Damit diese dann auch gleich auf allen Nodes verteilt wird editieren wir sie in /etc/pve/corosync.conf
und passen den quorum
Block an:
quorum {
provider: corosync_votequorum
device {
model: net
votes: 1
net {
tls: on
host: IP-ADDRESS-RASPBERRYPI
algorithm: ffsplit
}
}
}
Jetzt noch im totem
Block die config_version
um 1
erhöhen damit die config auch neu syncronisiert wird.
Zum Schluss starten wir auf beiden "Proxmox" Maschinen den qdevice Service neu:
systemctl restart corosync-qdevice
Wenn alles geklappt hat sollte der Befehl corosync-quorumtool
auf einer der Proxmox Maschinen nun folgendes ausgeben:
Date: Sat Aug 25 12:24:30 2018
Quorum provider: corosync_votequorum
Nodes: 2
Node ID: 1
Ring ID: 2/8
Quorate: Yes
Votequorum information
Expected votes: 3
Highest expected: 3
Total votes: 3
Quorum: 2
Flags: Quorate Qdevice
Membership information
Nodeid Votes Qdevice Name
2 1 A,V,NMW 192.168.1.130
1 1 A,V,NMW 192.168.1.150 (local)
0 1 Qdevice