Glusterfs eignet sich relativ gut für shared storage in Proxmox-Umgebungen. Wenn man dabei alles im Blick hat, erspart man sich so einigen Ärger.
Gluster Filesysteme verteilen ihre Daten, je nach Gusto der Administratorin, auf mehrere Platten. Wenn man einen “poor-womans”-Cluster gebaut hat, bei dem die Proxmox-Server auch gleich die Datenspeicher sind, muss man ein paar Sachen beachten. Zum Beispiel sollte man einen 2er Clusterknoten nur dann herunterfahren, wenn die Datenbestände auf beiden Geräten synchron sind. Und vielleicht möchte man auch die aktiven Maschinen vorher auf den CLusterknoten migrieren, der aktiv bleibt. Das spart hinterher Zeit. Was man auf jeden Fall nicht machen möchte, ist den 2. Knoten herunterzufahren, während die Synchronisation der Daten noch nicht abgeschlossen ist. Sonst hat man hinterher eine schöne Splitbrain-Situation und unter Umständen schönen Datensalat.
Um zu sehen, in welchen Zustand sich die Volumes befinden bedient man sich des “gluster”-Kommandos:
st-cluster-2# gluster volume status
Status of volume: proxmox
Gluster process TCP Port RDMA Port Online Pid
------------------------------------------------------------------------------
Brick 10.10.0.1:/srv/data/gluster-brick 49152 0 Y 2051
Brick 10.10.0.2:/srv/data/gluster-brick 49152 0 Y 2102
NFS Server on localhost N/A N/A N N/A
Self-heal Daemon on localhost N/A N/A Y 2144
NFS Server on 10.10.0.1 N/A N/A N N/A
Self-heal Daemon on 10.10.0.1 N/A N/A Y 2136
Task Status of Volume proxmox
------------------------------------------------------------------------------
There are no active volume tasks
Status of volume: proxmox-ssd
Gluster process TCP Port RDMA Port Online Pid
------------------------------------------------------------------------------
Brick 10.10.0.1:/proxmox-ssd 49153 0 Y 2078
Brick 10.10.0.2:/proxmox-ssd 49153 0 Y 2112
NFS Server on localhost N/A N/A N N/A
Self-heal Daemon on localhost N/A N/A Y 2144
NFS Server on 10.10.0.1 N/A N/A N N/A
Self-heal Daemon on 10.10.0.1 N/A N/A Y 2136
Task Status of Volume proxmox-ssd
------------------------------------------------------------------------------
There are no active volume tasks
Status of volume: proxmox-ssd2
Gluster process TCP Port RDMA Port Online Pid
-----------------------------------------------------------------------------
Brick 10.10.0.1:/var/lib/vz/gluster-ssd 49154 0 Y 2107
Brick 10.10.0.2:/var/lib/vz/gluster-ssd 49154 0 Y 2124
NFS Server on localhost N/A N/A N N/A
Self-heal Daemon on localhost N/A N/A Y 2144
NFS Server on 10.10.0.1 N/A N/A N N/A
Self-heal Daemon on 10.10.0.1 N/A N/A Y 2136
Task Status of Volume proxmox-ssd2
------------------------------------------------------------------------------
There are no active volume tasks
st-cluster-2#
Hier kann man sehen, dass beide Knoten aktiv sind. Ob auf einem Volume Daten noch zur Synchronisation anstehen erfährt man mit
st-cluster-2# gluster volume heal proxmox-ssd2 info
Brick 10.10.0.1:/var/lib/vz/gluster-ssd
Status: Connected
Number of entries: 0
Brick 10.10.0.2:/var/lib/vz/gluster-ssd
Status: Connected
Number of entries: 0
st-cluster-2#
Hier sind alle Daten synchron.
Wenn ein Volume fehlt, sieht das so aus:
Status of volume: proxmox-ssd2
Gluster process TCP Port RDMA Port Online Pid
------------------------------------------------------------------------------
Brick 10.10.0.2:/var/lib/vz/gluster-ssd 49154 0 Y 2124
NFS Server on localhost N/A N/A N N/A
Self-heal Daemon on localhost N/A N/A Y 2144
Task Status of Volume proxmox-ssd2
------------------------------------------------------------------------------
There are no active volume tasks
Nach dem Neustart wird wieder synchronisiert:
st-cluster-2# gluster volume heal proxmox-ssd2 info
Brick 10.10.0.1:/var/lib/vz/gluster-ssd
Status: Connected
Number of entries: 0
Brick 10.10.0.2:/var/lib/vz/gluster-ssd
/images/107/vm-107-disk-1.qcow2
/images/102/vm-102-disk-1.qcow2
Status: Connected
Number of entries: 2
st-cluster-2#
Es ist ratsam zu warten, bis die Anzahl der Einträge auf 0 gesunken ist. Für alle Volumes. Danach kann man gefahrlos die Maschinen zurückmigrieren und ggf. den anderen Clusterknoten neustarten.