Réplication de données entre serveurs - GlusterFS (Debian/Ubuntu) - Le Guide Du SecOps (2024)

Publié par Geoffrey Sauvageot-Berland le

Réplication de données entre serveurs - GlusterFS (Debian/Ubuntu) - Le Guide Du SecOps (1)

Bonjour à tous, nous allons voir comment mettre en place un service Gluster-FS qui nous permet de faire du HAS (High-Availability Storage) entre deux serveurs. Cette solution est très populaire dans le monde de l’open source et est notamment utilisée par Amazon. Gluster-FS permet de fusionner un dossier / partition sur deux serveurs ou plus. Son but est de garantir l’intégrité des données dans un système d’information. C’est une solution fiable et pérenne pour votre infrastructure. Elle peut être couplée avec le service HA-Proxy pour mettre en place une solution «load balacing», répartition de charge en français.

Dans un premier temps, nous allons exécuter les différentes commandes suivantes nous permettant de pouvoir récupérer les différents dépôts. Puis, une fois que le service sera installé, nous allons le paramétrer et tester son implantation.

Note: Si vous utilisez le logiciel de virtualisation VMWorkstation, préféré l’utilisation de clone «full» et non pas de clone lié, qui peuvent altérer le bon fonctionnement du service glusterfs-server.

Table des matières

Prérequis :

Pour ce rapport, nous allons utiliser le logiciel de virtualisation VMWare Workstation 15.5.6, qui va nous permettre d’émuler deux machines virtuelles.

  • Serveur Debian 1 (IPfixe : 192.168.128.100/24)
  • Serveur Debian 2 (IPfixe : 192.168.128.200/24)
  • Un accès à internet sur les deux machines
  • Toutes les commandes ci-dessous seront exécutés par l’intermédiaire de root

Changement des noms d’hôtes des machines

hostnamectl set-hostname deb1.local # à éffectuer sur la machine deb1hostnamectl set-hostname deb2.local # à éffectuer sur la machine deb2

Modification du fichiers hosts (Résolution DNS locale)

À effectuer sur les deux serveurs :

nano /etc/hosts127.0.0.1 localhost127.0.1.1 debian.local debian192.168.128.100 deb1.local deb1192.168.128.200 deb2.local deb2

Avant de redémarrer pour appliquer les changements, veuillez tester la connectivité entre vos deux serveurs par l’intermédiaire des noms DNS :

À effectuer sur les deux serveurs :

ping deb1 # vérifiez que le retour de ping est correct (ainsi que l'@ ip qui est associée à ce nom : deb1 = 192.168.128.100ping deb2 # vérifier que le retour de ping soit bon (ainsi que l'@ ip qui est associée à ce nom : deb2 = 192.168.128.200

Lors des tests de ping, il ne faut pas qu’une adresse «localhost» vous réponde (127.0.0.1), mais bien les adresses IP de votre réseau

Installation de GlusterFS

Les prochaines directives doivent être effectuées sur les deux serveurs deb1 et deb2

apt-get update && apt-get upgradeapt-get install glusterfs-server

Une fois que l’installation de GlusterFS est terminé sur les deux machines, nous allons démarrer, vérifier le status, et activer le démarrage automatique du service au boot sur les deux serveurs :

systemctl start glusterdsystemctl status glusterd # Vérifie que le service est bien activé et lancésystemctl enable glusterd # permet de lancer le service au boot de la vm (très important)

Configuration

Création d’un «point de référence»

Créons le dossier data à la racine du disque, qui va servir de point de référence pour la suite. (À exécuter sur deb1 et deb2)

mkdir /data

Liaison des serveurs deb1 et deb2

Sur le serveur deb1.local uniquement, exécuter

gluster peer probe deb2.local# peer probe: success.

Le statut du pool de stockage approuvé devrait maintenant ressembler à ceci après l’exécution de la commande suivante.

root@deb1:~# gluster peer statusNumber of Peers: 1Hostname: deb2.localUuid: 2165b843-5dc5-4320-b664-e11c42f7e157State: Peer in Cluster (Connected)

Créons ensuite le partage nommé volume1 à l’aide de la commande suivante sur deb1.local :

root@deb1:~# gluster volume create volume1 replica 2 transport tcp deb1.local:/data/volume1 deb2.local:/data/volume1 force

Résultat de la commande :

volume create: volume1: success: please start the volume to access data

Comme indiqué, nous allons maintenant démarrer le volume :

root@deb1:~# gluster volume start volume1

Vérification et tests de connectivités

Commande à exécuter sur le serveur deb1.local et deb2.local

Exécutez cette commande dans le but de connaitre l’ensemble des informations liées au cluster.

gluster volume info

Réplication de données entre serveurs - GlusterFS (Debian/Ubuntu) - Le Guide Du SecOps (2)
Réplication de données entre serveurs - GlusterFS (Debian/Ubuntu) - Le Guide Du SecOps (3)

Installation du «point de réplication»

Sur les deux serveurs deb1, deb2 créons le répertoire suivant:

cd /mntmkdir glusterfs

Maintenant, nous pouvons monter le système de fichiers GlusterFS sur /mnt/glusterfs

Sur deb1

mount.glusterfs deb2.local:/volume1 /mnt/glusterfs

Sur deb2

mount.glusterfs deb1.local:/volume1 /mnt/glusterfs

Tapez la commande suivante pour vérifier que les directives ont bien été prises en comptes :

df -h # sur les deux serveurs 
Réplication de données entre serveurs - GlusterFS (Debian/Ubuntu) - Le Guide Du SecOps (4)
Réplication de données entre serveurs - GlusterFS (Debian/Ubuntu) - Le Guide Du SecOps (5)

Montage Persistant


Au lieu de monter manuellement à chaque boot le partage GlusterFS vous pouvez modifier /etc /fstab afin que le partage soit monté automatiquement à chaque démarrage des serveurs.

Sur deb1

nano /etc/fstab
[...]deb2.local:/volume1 /mnt/glusterfs glusterfs defaults,_netdev 0 0

Puis enregistrez directement le fichier

Sur deb2, nous allons faire la même chose, en changeant le nom d’hôte de la machine.

nano /etc/fstab
[...]deb1.local:/volume1 /mnt/glusterfs glusterfs defaults,_netdev 0 0

Puis enregistrez directement le fichier

Pour tester si votre /etc/fstab fonctionne, redémarrez les deux machines

Après le reboot des deux machines, vous devriez voir que les deux points de montages sont toujours effectifs, lors de l’exécution de df -h sur les deux serveurs.

Sur deb1

Réplication de données entre serveurs - GlusterFS (Debian/Ubuntu) - Le Guide Du SecOps (6)

Sur deb2

Réplication de données entre serveurs - GlusterFS (Debian/Ubuntu) - Le Guide Du SecOps (7)

Conseils : Lors de l’extinction de ses serveurs, vérifiez que les points de montages sont toujours présents avec df -h. En effet, si pour une raison x, un des deux serveurs peut mettre plus de temps à démarrer, cela peut «rompre» le lien de réplication (HAS) entre les deux temporairement.

La solution dans ce cas est de redémarrer le serveur problématique et de vérifier que le point de montage est bel et bien de nouveau présent avec df -h lors du redémarrage de la machine problématique

Contrôle d’accès :

À ce stade, n’importe qui peut se connecter à votre volume de stockage sans aucune restriction. Vous pouvez modifier cette situation en définissant l’option auth.allow, qui définit les adresses IP des clients qui doivent avoir accès au volume.

gluster volume set volume1 auth.allow 192.168.128.100, 192.168.128.200

Test de la réplication inter-serveurs

Dans cette section, nous allons tester si nos serveurs se répliquent bien entre eux (que les données sur deb1, sont bien présentes sur deb2 et vice- versa

Essayez de créer x fichiers depuis deb1 dans le dossier /mnt/glusterfs, et vérifiez que les fichiers soient automatiquement clonés sur deb2 dans le dossier /mnt/glusterfs.

Sur deb1 :

cd /mnt/glusterfstouch helloworld worldhello hellools

Sur deb2

cd /mnt/glusterfsls
Réplication de données entre serveurs - GlusterFS (Debian/Ubuntu) - Le Guide Du SecOps (8)

Inversons le processus pour vérifier que deb1 recopie bien les données depuis deb2.

Sur deb2

cd /mnt/glusterfstouch coucoud france linuxls
Réplication de données entre serveurs - GlusterFS (Debian/Ubuntu) - Le Guide Du SecOps (9)

Sur deb1

cd /mnt/glusterfsls
Réplication de données entre serveurs - GlusterFS (Debian/Ubuntu) - Le Guide Du SecOps (10)

Dans les deux cas, nous constatons que la réplication a bien eu lieu et de manière instantanée.

Cas concrès

Attention ! Pour cette partie vous devez avoir un accès SSH/SFTP sur vos deux serveurs, ainsi que des droits d’écritures / lectures pour upluader des fichiers sur (deb1 ou deb2) /mnt/glusterfs

L’image ci-dessous vous montre l’upluad par SFTP d’un fichier «lourd» vers le dossier /mnt/glusterfs de deb1. Dès que l’upluad commence sur deb1.local (192.168.128.100), la réplication commence instantanément sur deb2 (192.168.128.200) comme vous le démontre l’image ci-dessous.

Réplication de données entre serveurs - GlusterFS (Debian/Ubuntu) - Le Guide Du SecOps (11)

Test de la haute disponibilité en cas d’incident

Nous allons arrêter deb1.local et ajouter des fichiers sur le partage GlusterFS depuis deb2

shutdown now # sur deb1

Sur deb2

Note : La création de fichiers / copie de fichiers peut s’avérer plus longue et prendre quelques secondes (~ 30-45 secondes). En effet pendant ce laps de temps le service GlusterFS sur deb2 cherchent à joindre deb1, et c’est pour cela que les fichier ne se créer/copie pas de manière immédiate, car ils sont mis en suspens, le temps que deb2 comprenne que deb1 n’est plus joignable

touch shut down replication valid# Création de fichiers pour le test

Après avoir créé ces fichiers, démarrer de nouveau votre serveur deb1, et vérifier une fois le système démarré, si la réplication a bien eu lieu (patienter quelques secondes … :)) :

Sur deb1 :

ls /mnt/glusterfs
Réplication de données entre serveurs - GlusterFS (Debian/Ubuntu) - Le Guide Du SecOps (12)
Réplication de données entre serveurs - GlusterFS (Debian/Ubuntu) - Le Guide Du SecOps (13)

Vérification tierce par SFTP sur les deux serveurs

C’est là que nous constatons la puissance de cette solution, en effet la reprise du service sur panne se fait de manière transparente, et le premiers nœud du cluster (deb1) se reconnecte automatiquement à son partenaire ou bout de quelques secondes (deb2).

Si vous êtes encore là, j’espère que vous avez pu réussir l’installation et la configuration de cette solution sans trop prise de tête. ^^

À bientôt 🙂

Brlndtech

En savoir plus sur Le Guide Du SecOps

Subscribe to get the latest posts sent to your email.

Réplication de données entre serveurs - GlusterFS (Debian/Ubuntu) - Le Guide Du SecOps (2024)

FAQs

How to configure glusterfs on Ubuntu? ›

Open a terminal and run the following commands:
  1. sudo apt update sudo apt install software-properties-common -y sudo add-apt-repository ppa:gluster/glusterfs-9 sudo apt update sudo apt install glusterfs-server -y.
  2. sudo systemctl start glusterd sudo systemctl enable glusterd.
Jan 2, 2024

How to remove glusterfs in Ubuntu? ›

Complete these steps to uninstall GlusterFS.
  1. Delete the Helm chart. helm delete --purge <release_name> --tls. ...
  2. Remove the Heketi and Gluster daemon configuration directories from each storage node. rm -rf /var/lib/heketi rm -rf /var/lib/glusterd rm -rf /var/log/glusterfs.
  3. Disable GlusterFS.

How to start GlusterFS? ›

Installing GlusterFS - a Quick Start Guide
  1. Step 1 – Have at least three nodes. ...
  2. Step 2 - Format and mount the bricks. ...
  3. Step 3 - Installing GlusterFS. ...
  4. Step 4 - Configure the firewall. ...
  5. Step 5 - Configure the trusted pool. ...
  6. Step 6 - Set up a GlusterFS volume. ...
  7. Step 7 - Testing the GlusterFS volume.

Is GlusterFS faster than nfs? ›

In the random read test, GlusterFS has good performance at data transfer speed and bandwidth, resulting in higher iops than NFS and MooseFS. The high performance of iops causes the runtime value to be smaller, which means that in jobs that require random data reading, GlusterFS can complete it quickly.

How to configure Slurm in Ubuntu? ›

Outline of steps:
  1. Prepare hardware.
  2. Install OSs.
  3. Sync UID/GIDs or create slurm/munge users.
  4. Install Software (Nvidia drivers, Anaconda and Python packages)
  5. Install/configure file sharing (NFS here; if using more than one node/computer in the cluster)
  6. Install munge/SLURM and configure.
  7. User management.

How to setup mDNS in Ubuntu? ›

mDNS is disabled by default in Ubuntu Server:
  1. $ resolvectl mdns Global: no Link 2 (eno1): no. mDNS setup involves two config changes: ...
  2. $ ls /run/systemd/network 10-netplan-eno1.network. ...
  3. $ mkdir /etc/systemd/network/10-netplan-eno1.network.d. ...
  4. $ resolvectl mdns Global: yes Link 2 (eno1): yes.

How to configure host file in Ubuntu? ›

  1. Open Applications > Utilities > Terminal.
  2. Open the hosts file by typing the following line in the terminal window: sudo nano /private/etc/hosts.
  3. Type your domain user password when prompted.
  4. Edit the hosts file and add your new mappings on the last line. ...
  5. Save the hosts file by pressing Control+X and answering Y.

How to configure Haproxy in Ubuntu? ›

Setting up Ha-Proxy
  1. Use the apt-get command to install HAProxy. ? apt-get install haproxy.
  2. Enable HAProxy to be started by the init script. ? ...
  3. Move the default config file to create a new default configuration file. ? ...
  4. Create a file named haproxy.cfg and add the following in the empty haproxy.cfg file. ?

Top Articles
NEWS Archives - Page 2 of 967 - Dubois County Free Press, Inc.
Nebraska Through the Lens
Genesis Parsippany
How To Do A Springboard Attack In Wwe 2K22
Booknet.com Contract Marriage 2
Seething Storm 5E
Zitobox 5000 Free Coins 2023
Swimgs Yung Wong Travels Sophie Koch Hits 3 Tabs Winnie The Pooh Halloween Bob The Builder Christmas Springs Cow Dog Pig Hollywood Studios Beach House Flying Fun Hot Air Balloons, Riding Lessons And Bikes Pack Both Up Away The Alpha Baa Baa Twinkle
Ncaaf Reference
Danielle Longet
Craigslist Dog Kennels For Sale
Best Restaurants Ventnor
Newgate Honda
Amelia Bissoon Wedding
Morocco Forum Tripadvisor
Moparts Com Forum
978-0137606801
Craigslist Edmond Oklahoma
Download Center | Habasit
Craftology East Peoria Il
Tamilrockers Movies 2023 Download
Morristown Daily Record Obituary
Hermitcraft Texture Pack
Decosmo Industrial Auctions
Ups Print Store Near Me
Timeforce Choctaw
Dr Ayad Alsaadi
Rimworld Prison Break
Happy Homebodies Breakup
Hefkervelt Blog
Kimoriiii Fansly
Bj's Tires Near Me
Desales Field Hockey Schedule
Laveen Modern Dentistry And Orthodontics Laveen Village Az
Devargasfuneral
EST to IST Converter - Time Zone Tool
Boone County Sheriff 700 Report
Cygenoth
Nail Salon Open On Monday Near Me
Frigidaire Fdsh450Laf Installation Manual
Booknet.com Contract Marriage 2
Is Ameriprise A Pyramid Scheme
Gas Buddy Il
Access to Delta Websites for Retirees
Cara Corcione Obituary
Okta Login Nordstrom
Random Warzone 2 Loadout Generator
Mikayla Campinos Alive Or Dead
Tenichtop
Loss Payee And Lienholder Addresses And Contact Information Updated Daily Free List Bank Of America
Elizabethtown Mesothelioma Legal Question
Latest Posts
Article information

Author: Jonah Leffler

Last Updated:

Views: 6192

Rating: 4.4 / 5 (65 voted)

Reviews: 88% of readers found this page helpful

Author information

Name: Jonah Leffler

Birthday: 1997-10-27

Address: 8987 Kieth Ports, Luettgenland, CT 54657-9808

Phone: +2611128251586

Job: Mining Supervisor

Hobby: Worldbuilding, Electronics, Amateur radio, Skiing, Cycling, Jogging, Taxidermy

Introduction: My name is Jonah Leffler, I am a determined, faithful, outstanding, inexpensive, cheerful, determined, smiling person who loves writing and wants to share my knowledge and understanding with you.