This is an old revision of the document!
Table of Contents
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 <ip> 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 <volumename>
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 </path/to/brick> setfattr -x trusted.gfid </path/to/brick> rm -rf </path/to/brick>/.glusterfs
Healing
Healing der Volumes
gluster volume heal <volume> info gluster volume heal <volume> info summary
Healing manuell starten
gluster vol heal <volume> full
