====== GlusterFS ====== \\ ===== Übersicht ===== ==== Storage ==== * **Brick:** Ist ein Filesytem Mount. Ein oder auch mehrere Bricks können ein Volume werden * **Translator:** Info fehlt noch... * **Volume:** Ist die Summe von einem oder mehreren Bricks die freigegeben werden für die Clients * **Node:** Ist ein Storage-Knoten ==== Gluster Komponenten (Services) ==== * **glusterd:** Ist der "Elastic volume management daemon" und läuft auf jeder Node die ein Volume exportiert * **glusterfsd:** Ist der "GlusterFS brick daemon" und läuft auf jeder Storage Node * **glusterfs:** Ist der NFS Server und FUSE Client Daemon * **mount.glusterfs:** FUSE native Mount Tool * **gluster:** Ist der "Gluster Console Manager" ==== Arten von Volumes ==== * **Distributed Volume:** Files werden verteilt auf verschiedenen Nodes. Ähnlich wie ein Raid0 * **Striped Volumes:** Es werden teile von Files auf verschiedenen Nodes verteilt. So wie es in Raid0 durchgeführt wird. * **Replicated Volume:** Files werden repliziert auf zwei oder mehreren Nodes abgelegt. Ähnlich wie ein Raid1 ---- ==== Installieren der nötigen Pakete ==== apt-get install glusterfs-server \\ ==== Mountpoint für das Glusterfs ==== Es wird ein Filesystem benötigt das dann später für das GlusterFS verwendet werden kann. Bevorzugt ist laut Doku xfs. Es kann natürlich auch ext sein jedoch gehe ich immer auf xfs. mkfs.xfs /dev/mapper/vg_sas-lv_gluster_sas mkfs.xfs /dev/mapper/vg_ssd_lv_gluster_ssd vim /etc/fstab /dev/mapper/vg_sas-lv_gluster_sas /var/lib/glusterfs/sas xfs defaults 1 2 /dev/mapper/vg_sas-lv_gluster_ssd /var/lib/glusterfs/ssd xfs defaults 1 2 mount -a mkdir -p /var/lib/glusterfs/sas/vol_sas_data_01 mkdir -p /var/lib/glusterfs/sas/vol_sas_01 mkdir -p /var/lib/glusterfs/ssd/vol_ssd_01 \\ ==== Gluster Peer ==== Die Nodes müssen ein peering aufbauen. Hier setzt man am besten auf jedem Host die nötigen Einträge im Hostfile. vim /etc/hosts 10.0.0.11 pve01-storage pve01 10.0.0.12 pve02-storage pve02 10.0.0.13 pve03-storage pve03 gluster peer gluster peer status gluster pool list \\ ==== Anlegen eines Volumes ==== Replicate Volume aus drei Bricks gluster volume create vol_ssd_01 replica 3 transport tcp pve01-storage:/var/lib/glusterfs/ssd/vol_ssd_01 pve02-storage:/var/lib/glusterfs/ssd/vol_ssd_01 pve03-storage:/var/lib/glusterfs/ssd/vol_ssd_01 gluster volume start vol_ssd_01 \\ ==== Volume Info ==== Info über alle bzw. auch über ein bestimmtes Volume gluster volume info all gluster volume info gluster volume get all \\ ==== Brick hinzufügen ==== Brick zu einem bestehenden Volume hinzufügen. \\ Hier muss (wenn es ein Replica ist) der Replica Count angepasst werden. \\ Wir haben bereits ein Volume mit drei Bricks und wollen ein viertes hinzufügen. gluster volume add-brick vol_ssd_01 replica 24 pve04-storage:/var/lib/glusterfs/ssd/vol_ssd_01 \\ ==== Brick entfernen ==== Brick aus einem Replica entfernen. \\ Hier muss der Replica Count angepasst werden. \\ Wir haben bereits ein Volume mit vier Bricks und möchte auf drei reduzieren. gluster volume remove-brick vol_ssd_01 replica 3 pve04-storage:/var/lib/glusterfs/ssd/vol_ssd_01 force \\ ==== Meta Daten von einem Brick entfernen ==== Wird benötigt wenn man ein "altes" Brick das man entfernt und gelöscht hat wieder verwenden möchte. setfattr -x trusted.glusterfs.volume-id setfattr -x trusted.gfid rm -rf /.glusterfs \\ ==== Healing ==== Healing der Volumes \\ gluster volume heal info gluster volume heal info summary \\ ==== Healing manuell starten ==== gluster vol heal full \\ ==== Upgrade ==== [[https://docs.gluster.org/en/latest/Upgrade-Guide/|https://docs.gluster.org/en/latest/Upgrade-Guide/]] \\ Ich verwende dazu die Docs vom Hersteller. Hat bis jetzt immer gut funktioniert.