« Gluster : Création d'un cluster Glusterfs » : différence entre les versions
 (Page créée avec « == Introduction == L'objectif d'aujourd'hui est de créer un cluster de 3 serveurs web Ubuntu répliqués via Glusterfs  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  ==== 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 : **... »)  | 
				Aucun résumé des modifications  | 
				||
| Ligne 1 : | Ligne 1 : | ||
== Introduction ==  | == Introduction ==  | ||
L'objectif d'aujourd'hui est de créer un cluster de 3 serveurs web Ubuntu répliqués via Glusterfs  | 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 réseau dédié va servir à la réplication Gluster.  | ||
| Ligne 42 : | Ligne 44 : | ||
ff02::1 ip6-allnodes  | ff02::1 ip6-allnodes  | ||
ff02::2 ip6-allrouters  | ff02::2 ip6-allrouters  | ||
</syntaxhighlight>  | </syntaxhighlight><code>sudo hostnamectl set-hostname web01</code>  | ||
<code>reboot</code>  | |||
==== Web02 ====  | ==== Web02 ====  | ||
| Ligne 59 : | Ligne 63 : | ||
ff02::1 ip6-allnodes  | ff02::1 ip6-allnodes  | ||
ff02::2 ip6-allrouters  | ff02::2 ip6-allrouters  | ||
</syntaxhighlight>  | </syntaxhighlight><code>sudo hostnamectl set-hostname web02</code>  | ||
<code>reboot</code>  | |||
==== Web03 ====  | ==== Web03 ====  | ||
| Ligne 78 : | Ligne 84 : | ||
</syntaxhighlight>  | </syntaxhighlight>  | ||
<code>sudo hostnamectl set-hostname web03</code>  | |||
<code>reboot</code>  | |||
=== Création et partage des clés SSH ===  | |||
==== Création des clés ====  | |||
===== Sur chacun des serveurs =====  | |||
<code>ssh-keygen -t rsa -b 4096</code>  | |||
==== Partage des clés entre serveurs ====  | |||
===== Web01 =====  | |||
<code>ssh-copy-id root@web02</code>  | |||
<code>ssh-copy-id root@web03</code>  | |||
===== Web02 =====  | |||
<code>ssh-copy-id root@web01</code>  | |||
<code>ssh-copy-id root@web03</code>  | |||
===== Web03 =====  | |||
<code>ssh-copy-id root@web01</code>  | |||
<code>ssh-copy-id root@web02</code>  | |||
Faire un test en se connectant sur chacun des serveurs depuis les autres  | |||
=== Installation de Gluster ===  | |||
<code>apt-get install glusterfs-server -y</code>  | |||
==== Création des partitions sur chacun des serveurs ====  | |||
<code>fdisk /dev/vdb</code>  | |||
<code>mkfs.xfs /dev/sdb1</code>  | |||
==== Création du montage sur chacun des serveurs ====  | |||
<code>mkdir /mnt/gluster01</code>  | |||
===== Récuperation de l'UUID du disque pour le montage =====  | |||
<code>blkid /dev/vdb1</code>  | |||
Se qui doit répondre quelque chose comme ceci (attention c'est différent pour chacun des serveurs) :<syntaxhighlight lang="bash">  | |||
/dev/vdb1: UUID="5a301614-2c75-4b59-a053-8918c1093685" BLOCK_SIZE="512" TYPE="xfs" PARTUUID="8301f8da-45f8-4b3b-8c73-8a6d7a84b64f"  | |||
</syntaxhighlight><code>nano /etc/fstab</code>  | |||
* Ajouter la ligne (à adapter en fonction de la réponse précédente) :  | |||
<syntaxhighlight lang="bash">  | |||
/dev/disk/by-uuid/5a301614-2c75-4b59-a053-8918c1093685 /mnt/gluster01 xfs defaults 0 0  | |||
</syntaxhighlight>  | |||
* Recharger le démon :  | |||
<code>systemctl daemon-reload</code>  | |||
* Recharger fstab  | |||
<code>mount -a</code>  | |||
=== Création du cluster Glusterfs ===  | |||
==== Sur Web01 uniquement ====  | |||
* On intègre les 12 autres serveurs au Cluster  | |||
<code>gluster peer probe web02</code>  | |||
<code>gluster peer probe web03</code>  | |||
* Petit contrôle  | |||
<code>gluster pool list</code>  | |||
=== Création du volume Gluster ===  | |||
==== Sur chacun des serveurs ====  | |||
<code>mkdir /mnt/gluster01/b01</code>  | |||
==== Sur Web01 uniquement ====  | |||
* On crée le volume avec les différents paramètres nécessaires  | |||
<code>gluster volume create volume1 replica 3 web01:/mnt/gluster01/b01 web02:/mnt/gluster01/b01 web03:/mnt/gluster01/b01</code>  | |||
* On démarre le volume  | |||
<code>gluster volume start volume1</code>  | |||
=== Montage du volume Gluster ===  | |||
* On crée le point de montage  | |||
<code>mkdir /mnt/www</code>  | |||
* On édite à nouveau fstab  | |||
<code>nano /etc/fstab</code>  | |||
* On ajout cette ligne  | |||
<syntaxhighlight lang="bash">  | |||
localhost:/volume1 /mnt/www glusterfs defaults,_netdev,x-systemd.requires=glusterd.service 0 0  | |||
</syntaxhighlight>  | |||
* On recharge le démon  | |||
<code>systemctl daemon-reload</code>  | |||
* On recharge fstab  | |||
<code>mount -a</code>  | |||
=== Création du lien vers le dossier /var/www ===  | |||
* Depuis /var  | |||
<code>ln -s ../mnt/www</code>  | |||
... Reste à installer Apache sur chacun des serveurs .  | |||
== Liens ==  | == Liens ==  | ||
Version du 18 décembre 2024 à 16:55
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
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 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