====== GlusterFS ====== * [[https://docs.gluster.org/|Gluster documentation]] Articles: * [[https://medium.com/search?q=glusterfs|GlusterFS sur medium.com]] ===== Install ===== * [[https://www.scaleway.com/en/docs/how-to-configure-storage-with-glusterfs-on-ubuntu/|Configure a High-Availability Storage with GlusterFS on Ubuntu 18.04 LTS]] * [[https://www.octopuce.fr/glusterfs-systeme-de-fichier-reseau-synchronise-redondant/|GlusterFS, système de fichier réseau synchronisé & redondant]] * [[https://docs.gluster.org/en/latest/Install-Guide/Install/|Install-Guide]]. * [[https://docs.gluster.org/en/latest/CLI-Reference/cli-main/|gluster (cli) command reference]] * glusterfs-01: Scaleway DEV1-S, 2 x vCPU, 2 GB, 20 GB NVMe, 200 Mbit/s * glusterfs-02: OVH B2-7, 2 x vCPU, 7 GB, 50 GB SSD, 250 Mbit/s Debian 10 (Buster) root@glusterfs-01:~# ping -c 6 glusterfs-02 --- glusterfs-02 ping statistics --- 6 packets transmitted, 6 received, 0% packet loss, time 13ms rtt min/avg/max/mdev = 6.097/6.221/6.390/0.122 ms debian@glusterfs-02:~$ ping -c 6 glusterfs-01 --- glusterfs-01 ping statistics --- 6 packets transmitted, 6 received, 0% packet loss, time 13ms rtt min/avg/max/mdev = 6.112/6.355/6.783/0.219 ms À faire sur les 2 machines Setup **''NTP''** on each of these servers to get the proper functioning of many applications on top of filesystem. This is an important requirement. # Mise à jour $ sudo apt update && sudo apt upgrade -y $ sudo apt install software-properties-common -y # Dépot GlusterFS # "LATEST" remplacé par "9" pour trouver "rsa.pub" $ wget -O - https://download.gluster.org/pub/gluster/glusterfs/9/rsa.pub | sudo apt-key add - $ DEBID=$(grep 'VERSION_ID=' /etc/os-release | cut -d '=' -f 2 | tr -d '"') $ DEBVER=$(grep 'VERSION=' /etc/os-release | grep -Eo '[a-z]+') $ DEBARCH=$(dpkg --print-architecture) $ echo deb https://download.gluster.org/pub/gluster/glusterfs/LATEST/Debian/${DEBID}/${DEBARCH}/apt ${DEBVER} main | sudo tee /etc/apt/sources.list.d/gluster.list # Install server & client $ sudo apt update $ sudo apt install glusterfs-server glusterfs-client # Démarrer et activer le service $ sudo systemctl start glusterd $ sudo systemctl enable glusterd $ sudo mkdir -p /glusterfs/distributed Si le gluster-server est sur localhost il faut l'indiquer dans ''/etc/hosts''. # Sur glusterfs-01 chez Scaleway 127.0.0.1 glusterfs-01 glusterfs-01 # glusterfs-02 chez Ovh xxx.xxx.xxx.xxx glusterfs-02 # Sur glusterfs-02 chez Ovh 127.0.1.1 glusterfs-02 glusterfs-02 # glusterfs-01 chez Scaleway xxx.xxx.xxx.xxx glusterfs-01 À faire sur une machine (ici glusterfs-01) as ''root'' gluster peer probe glusterfs-02 gluster peer status gluster peer list # Create a "replica" volume "vol01" gluster volume create vol01 replica 2 transport tcp glusterfs-01:/glusterfs/distributed glusterfs-02:/glusterfs/distributed force # Start volume gluster volume start vol01 Le status du volume: gluster volume status Status of volume: vol01 Gluster process TCP Port RDMA Port Online Pid ------------------------------------------------------------------------------ Brick glusterfs-01:/glusterfs/distributed 49152 0 Y 1029 Brick glusterfs-02:/glusterfs/distributed 49152 0 Y 715 Self-heal Daemon on localhost N/A N/A Y 1046 Self-heal Daemon on glusterfs-02 N/A N/A Y 732 Task Status of Volume vol01 ------------------------------------------------------------------------------ There are no active volume tasks Monter le volume : # le client glusterfs-client doit être installé $ sudo mount -t glusterfs glusterfs-02:/vol01 /mnt/glusterfs ==== TODO ==== * firewall * like ''iptables -I INPUT -i eth0 -s 192.168.0.0/16 -j ACCEPT'' * SSL transport * https://docs.gluster.org/en/latest/Administrator-Guide/SSL/ * Enabling TLS on the Management Path * ''sudo touch /var/lib/glusterd/secure-access'' ===== Résolution de problèmes ===== ==== Les ''bricks'' ne sont pas synchro ==== En cas de coupure réseau, redémarrage d'un serveur, la resynchronisation se fait tout seule au rétablissement (//pro-active self-healing daemon does this//). Mais il peut y avoir des cas où il faudrait forcer une synchro. La commande est : $ sudo gluster volume heal vol01 full Launching heal operation to perform full self heal on volume vol01 has been successful Use heal info commands to check status. Pour essayer, il suffit d'écrire un fichier directement dans une ''brick'', ce qui n'ai jamais à faire, puis de lancer la commande ''volume heal full''.