Replicated Volume mit Arbiter Host
Vorbereitungen
-
Installation GlusterFS: docs.gluster.org/en/latest/Install-Guide/Install/
-
GlusterFS Grundinstallation: docs.gluster.org/en/latest/Install-Guide/Configure/#for-debian
Hintergrund
Das GlusterFS soll als hochverfügbarer Speicher für Docker dienen und zwischen zwei VMs geteilt werden. Da aber bei einem “two-node-cluster” die Gefahr des Split-Brains hoch ist, wird ein Arbiter Host erstellt. Dieser dient als Zeuge und verhindert den Split Brain. Der Arbiter Host spart auch Speicherplatz da dieser keine Daten hält. Somit sind die Daten nur auf VM1 und VM3 vorhanden. Die Daten werden dann auf “/mnt/data” gemountet und können normal angesprochen werden.
Es wird ein Replicated Volume erstellt. Bei diesem Volume sind die Daten auf VM1 und VM3 vorhanden. Respektive des Raid1.
VM bei Netcup:
VM3:
- Hostname: gluster3
- IP: 10.0.151.2
- Wireguard Verbindung ins RZ
- Datenhost
- /gluster-data als Mountpoint für Glusterfs
- /mnt/data für den Host und später für Docker
- Geteilter Speicher “gluster-storage”
VMs auf Proxmox:
VM2:
- Hostname: gluster2
- IP: 10.44.42.11
- Glusterfs als Arbiter
- der Host dient als “Zeuge” um Split-Brain zu verhindern
VM1:
- Hostname: gluster1
- IP: 10.44.42.10
- Datenhost
- /gluster-data als Mountpoint für Glusterfs
- /mnt/data für den Host und später für Docker
- Geteilter Speicher “gluster-storage”
Replicated Volumes erstellen
Info: Thin-Arbiter Volume
Den peer probe und die Anpassung der Hostdatei muss schon durchgeführt worden sein. Alle Hosts müssen sich kennen und auch per DNS erreichbar sein.
gluster peer status
gluster volume create gluster-storage replica 2 arbiter 1 gluster1:/gluster-data gluster3:/gluster-data gluster2:/gluster-data force
Das Force ist notwendig da die Daten auf ”/” dem Host selbst liegen und keine weitere vhd oder weitere Festplatte verwendet wird.
gluster volume info
Hier sieht man, das der gluster Member “gluster2” der Arbiter Host ist und die anderen Hosts normale Data Member sind.
Client: Volume mounten beim Starten
Das mounten kann entweder manuell oder automatisch über die fstab erfolgen. Ich nutzte die fstab Datei.
Per apt den Client installieren.
apt -y install glusterfs-client
Test mount
Testen ob der mount funktionieren wird. Dieser sollte mit “df -h” eingesehen werden können.
mount -t glusterfs gluster1:/gluster-storage /mnt/data
Fstab anpassen
echo "gluster1:/gluster-storage /mnt/data glusterfs defaults,_netdev 0 0" >> /etc/fstab