Gluster : Création d'un cluster Glusterfs

De www.yakakliker.org

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.digitalocean.com/community/tutorials/how-to-create-a-redundant-storage-pool-using-glusterfs-on-ubuntu-20-04-fr

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://www.virtualizationhowto.com/2024/10/glusterfs-configuration-in-ubuntu-server-22-04-and-24-04/

https://docs.gluster.org/en/main/

https://docs.gluster.org/en/main/Administrator-Guide/Tuning-Volume-Options/

compteur web gratuit sans pub