Gluster : Création d'un cluster Glusterfs
Introduction
L'objectif d'aujourd'hui est de créer un cluster de 3 serveurs web Ubuntu répliqués via Glusterfs
Chaque serveur aura un disque système (/dev/vda) et un disque datas (/dev/vdb)
Un réseau dédié va servir à la réplication Gluster.
Un 2ème réseau dédié va servir pour le service web (communication avec le reverse proxy)
Un 3ème réseau servira pour les accès Internet des serveurs
Paramètres des serveurs
- Web01 :
- IP LAN : 172.20.37.1/29
- IP GLUSTER : 100.85.37.1/29
- IP WWW : 10.20.37.1/29
- Web02 :
- IP LAN : 172.20.37.2/29
- IP GLUSTER : 100.85.37.2/29
- IP WWW : 10.20.37.2/29
- Web03 :
- IP LAN : 172.20.37.3/29
- IP GLUSTER : 100.85.37.3/29
- IP WWW : 10.20.37.3/29
Installation
Edition des fichiers /etc/hosts sur les 3 serveurs
Web01
127.0.0.1 localhost
127.0.1.1 web01.yakakliker.org web01
100.85.37.2 web02.yakakliker.org web02
100.85.37.3 web03.yakakliker.org web03
100.85.37.1 web01.yakakliker.org web01
# The following lines are desirable for IPv6 capable hosts
::1 ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
sudo hostnamectl set-hostname web01
reboot
Web02
127.0.0.1 localhost
127.0.1.1 web02.yakakliker.org web02
100.85.37.1 web01.yakakliker.org web01
100.85.37.3 web03.yakakliker.org web03
100.85.37.2 web02.yakakliker.org web02
# The following lines are desirable for IPv6 capable hosts
::1 ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
sudo hostnamectl set-hostname web02
reboot
Web03
127.0.0.1 localhost
127.0.1.1 web03.yakakliker.org web03
100.85.37.2 web02.yakakliker.org web02
100.85.37.1 web01.yakakliker.org web01
100.85.37.3 web03.yakakliker.org web03
# The following lines are desirable for IPv6 capable hosts
::1 ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
sudo hostnamectl set-hostname web03
reboot
Création et partage des clés SSH
Création des clés
Sur chacun des serveurs
ssh-keygen -t rsa -b 4096
Partage des clés entre serveurs
Web01
ssh-copy-id root@web02
ssh-copy-id root@web03
Web02
ssh-copy-id root@web01
ssh-copy-id root@web03
Web03
ssh-copy-id root@web01
ssh-copy-id root@web02
Faire un test en se connectant sur chacun des serveurs depuis les autres
Installation de Gluster
apt-get install glusterfs-server -y
Création des partitions sur chacun des serveurs
fdisk /dev/vdb
mkfs.xfs /dev/sdb1
Création du montage sur chacun des serveurs
mkdir /mnt/gluster01
Récuperation de l'UUID du disque pour le montage
blkid /dev/vdb1
Se qui doit répondre quelque chose comme ceci (attention c'est différent pour chacun des serveurs) :
/dev/vdb1: UUID="5a301614-2c75-4b59-a053-8918c1093685" BLOCK_SIZE="512" TYPE="xfs" PARTUUID="8301f8da-45f8-4b3b-8c73-8a6d7a84b64f"
nano /etc/fstab
- Ajouter la ligne (à adapter en fonction de la réponse précédente) :
/dev/disk/by-uuid/5a301614-2c75-4b59-a053-8918c1093685 /mnt/gluster01 xfs defaults 0 0
- Recharger le démon :
systemctl daemon-reload
- Recharger fstab
mount -a
Création du cluster Glusterfs
Sur Web01 uniquement
- On intègre les 12 autres serveurs au Cluster
gluster peer probe web02
gluster peer probe web03
- Petit contrôle
gluster pool list
Création du volume Gluster
Sur chacun des serveurs
mkdir /mnt/gluster01/b01
Sur Web01 uniquement
- On crée le volume avec les différents paramètres nécessaires
gluster volume create volume1 replica 3 web01:/mnt/gluster01/b01 web02:/mnt/gluster01/b01 web03:/mnt/gluster01/b01
- On démarre le volume
gluster volume start volume1
Montage du volume Gluster
- On crée le point de montage
mkdir /mnt/www
- On édite à nouveau fstab
nano /etc/fstab
- On ajout cette ligne
localhost:/volume1 /mnt/www glusterfs defaults,_netdev,x-systemd.requires=glusterd.service 0 0
- On recharge le démon
systemctl daemon-reload
- On recharge fstab
mount -a
Création du lien vers le dossier /var/www
- Depuis /var
ln -s ../mnt/www
... Reste à installer & configurer Apache sur chacun des serveurs .
Liens
https://www.it-connect.fr/tuto-glusterfs-cluster-haute-disponibilite-donnees-almalinux-ou-debian/
https://www.howtoforge.com/how-to-install-and-configure-glusterfs-on-ubuntu-22-04/
https://www.server-world.info/en/note?os=Ubuntu_22.04&p=glusterfs&f=2
https://docs.gluster.org/en/main/
https://docs.gluster.org/en/main/Administrator-Guide/Tuning-Volume-Options/