====== Installation GlusterFS ======
{{tag>stockage glusterfs}}
===== Install / configuration serveur =====
Nous installons les paquets serveur et client
sudo aptitude install glusterfs-server glusterfs-client rpcbind
Afin d'éviter que le réseau soit accessible depuis le WAN nous ajoutons ces lignes dans le fichier /etc/glusterfs/glusterd.vol
option transport.rdma.bind-address 192.168.100.30
option transport.socket.bind-address 192.168.100.30
option transport.tcp.bind-address 192.168.100.30
**Note importante :** Cette opération est à faire sur chaque noeud
Nous ajoutons le montage que nous allons utiliser dans /etc/fstab
/dev/mapper/vg_gluster-lv_gluster /exports/gluster ext4 auto,noatime,discard 0 0
nous activons le service et le démarrons
sudo systemctl enable --now glusterd
Depuis le premier noeuds, nous ajoutons le second
sudo gluster peer probe 192.168.100.31
Toujours depuis le premier noeuds, nous ajoutons le troisième
sudo gluster peer probe 192.168.100.31 192.168.100.32
Pour vérifier le statut
sudo gluster peer status
Nous devrions avoir ce genre de retour
Number of Peers: 2
Hostname: 192.168.100.31
Uuid: ff5945e3-f7d2-4e83-baa6-effafe0fb6b5
State: Peer in Cluster (Connected)
Hostname: 192.168.100.32
Uuid: d3afe542-87b5-46d8-8c5e-fe4a854c7a37
State: Peer in Cluster (Connected)
Si vous souhaitez enlever un noeud
sudo peer detach server-à-enlever
Il ne doit pas y avoir de brick sur le serveur à retirer du cluster.
Nous créons le répertoire de partage
sudo mkdir /exports/gluster/www
Nous créons le volume
sudo gluster volume create wwwvol replica 3 transport tcp 192.168.100.30:/exports/gluster/www 192.168.100.31:/exports/gluster/www 192.168.100.32:/exports/gluster/www force
Nous démarrons le partage
sudo gluster volume start wwwvol
Pour vérifier que le volume est partagé
sudo gluster volume status
===== Configuration client =====
==== Montage simple ====
Nous montons le partage sur le premier serveur
sudo mount 192.168.100.30:/webvol /var/www -t glusterfs -o defaults
Nous montons le partage sur le second serveur
sudo mount 192.168.100.31:/webvol /var/www -t glusterfs -o defaults
Si tout est ok, nous pouvons ajouter le montage dans /etc/fstab
192.168.100.31:/wwwvol /var/www glusterfs defaults,_netdev 0 0
==== Montage résilient ====
Nous créons le fichier /etc/glusterfs/wwwvol.vol
sudo vi /etc/glusterfs/wwwvol.vol
volume remote1
type protocol/client
option transport-type tcp
option remote-host 192.168.100.30
option remote-subvolume /exports/gluster/web
end-volume
volume remote2
type protocol/client
option transport-type tcp
option remote-host 192.168.100.31
option remote-subvolume /exports/gluster/web
end-volume
volume remote3
type protocol/client
option transport-type tcp
option remote-host 192.168.100.32
option remote-subvolume /exports/gluster/web
end-volume
volume replicate
type cluster/replicate
subvolumes remote1 remote2 remote3
end-volume
volume writebehind
type performance/write-behind
option window-size 1MB
subvolumes replicate
end-volume
volume cache
type performance/io-cache
option cache-size 512MB
subvolumes writebehind
end-volume
Nous montons le partage manuellement
sudo mount /etc/glusterfs/wwwvol.vol /var/www -t glusterfs -o defaults
Si tout est ok, nous pouvons ajouter le montage dans /etc/fstab
/etc/glusterfs/wwwvol.vol /var/www glusterfs defaults,_netdev 0 0
===== Liens =====
* [[https://www.octopuce.fr/glusterfs-systeme-de-fichier-reseau-synchronise-redondant/|GlusterFS, système de fichier réseau synchronisé & redondant]]
* [[https://www.jamescoyle.net/how-to/439-mount-a-glusterfs-volume|Mount a GlusterFS volume : more redundant mount example]]
* [[https://wiki.sadmin.fr/systemes/linux/glusterfs|Glusterfs]]
* [[https://www.howtoforge.com/tutorial/high-availability-storage-with-glusterfs-on-debian-8-with-two-nodes/|high availability storage with Glusterfs on Debian 8 with two nodes]]