« Gluster : Création d'un cluster Glusterfs » : différence entre les versions

De www.yakakliker.org
(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
 
(9 versions intermédiaires par le même utilisateur non affichées)
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 6 : Ligne 8 :
Un 2ème réseau dédié va servir pour le service web (communication avec le reverse proxy)
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
Un 3ème réseau servira pour les accès Internet des serveurs


==== Paramètres des serveurs ====
==== Paramètres des serveurs ====


* Web01 :
* '''Web01 :'''
** IP LAN : 172.20.37.1/29
** IP LAN : 172.20.37.1/29
** IP GLUSTER : 100.85.37.1/29
** IP GLUSTER : 100.85.37.1/29
** IP WWW : 10.20.37.1/29
** IP WWW : 10.20.37.1/29
* Web02 :
* '''Web02 :'''
** IP LAN : 172.20.37.2/29
** IP LAN : 172.20.37.2/29
** IP GLUSTER : 100.85.37.2/29
** IP GLUSTER : 100.85.37.2/29
** IP WWW : 10.20.37.2/29
** IP WWW : 10.20.37.2/29
* Web03 :
* '''Web03 :'''
** IP LAN : 172.20.37.3/29
** IP LAN : 172.20.37.3/29
** IP GLUSTER : 100.85.37.3/29
** IP GLUSTER : 100.85.37.3/29
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 & configurer Apache sur chacun des serveurs .


== Liens ==
== Liens ==
Ligne 92 : Ligne 216 :


https://www.virtualizationhowto.com/2024/10/glusterfs-configuration-in-ubuntu-server-22-04-and-24-04/
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/
[[Catégorie:Gluster]]
[[Catégorie:Gluster]]
‎<html>
<script src='https://storage.ko-fi.com/cdn/scripts/overlay-widget.js'></script>
<script>
  kofiWidgetOverlay.draw('yakakliker', {
    'type': 'floating-chat',
    'floating-chat.donateButton.text': 'Café',
    'floating-chat.donateButton.background-color': '#00b9fe',
    'floating-chat.donateButton.text-color': '#fff'
  });
</script>
‎</html>
‎<html>
<a href="https://www.compteurdevisite.com" title="compteur web gratuit sans pub"><img src="https://counter6.optistats.ovh/private/compteurdevisite.php?c=b4epghealnwlf7wuq7gn3ygll9aywrfx" border="0" title="compteur web gratuit sans pub" alt="compteur web gratuit sans pub"></a>
‎</html>

Dernière version du 17 février 2025 à 14:34

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