Skip navigation

Debian 9 : réplication de donnée

Mise en place de GlusterFS sur Debian 9

GlusterFS est un système de fichiers réseau évolutif et open-source adapté aux charges de travail intensive en données. Permettant aussi et surtout l’accès concurrent aux ressources de stockage.

Environnement

IP Nom de l’hôte Rôle OS
172.16.0.10/24 gluster1.stan.local Nœud Debian 9
172.16.0.11/24 gluster2.stan.local Nœud Debian 9
172.16.0.12/24 client1.stan.local Client Debian 9
172.16.0.13/24 client2.stan.local Client Debian 9

Serveur de stockage

Configuration DNS

: à faire sur l’ensemble des nœuds serveur.

À défaut de DNS, éditer le fichier /etc/hosts

root@gluster1-2~#: vim /etc/hosts

aperçu du contenu du fichier

172.16.10.10 gluster1.stan.local gluster1
172.16.10.11 gluster2.stan.local gluster2
172.16.10.12 client1.stan.local client1
172.16.10.13 client2.stan.local client2

Installation de GlusterFS


Installer le packet glusterfs-server (côté serveur).

root@debian~#: apt install -y glusterfs-server

Démarrage du service glusterd.

root@gluster1-2~#: systemctl start glusterfs-server

Démarrage du service glusterd au boot.

root@gluster1-2~#: systemctl enable glusterfs-server

Vérifier le status de ce service.

root@gluster1-2~#: systemctl status glusterfs-server

sortie

 glusterfs-server.service - GlusterFS, a clustered file-system server
   Loaded: loaded (/usr/lib/systemd/system/glusterd.service; enabled; vendor preset: disabled)
   Active: active (running) since Sun 2018-04-08 02:48:27 EDT; 8s ago
 Main PID: 1296 (glusterd)
   CGroup: /system.slice/glusterd.service
           └─1296 /usr/sbin/glusterd -p /var/run/glusterd.pid --log-level INFO

Apr 08 02:48:27 gluster1.stan.local systemd[1]: Starting GlusterFS, a clustered file-syst.....
Apr 08 02:48:27 gluster1.stan.local systemd[1]: Started GlusterFS, a clustered file-syste...r.
Hint: Some lines were ellipsized, use -l to show in full.

Configuration du firewall

: pare défaut glusterd écoute sur le port 24007 mais il y a autant de port ouvert que de nœud, il faut donc ajuster le fierwall au besoin.

Stockage

Localiser le disque dur, dans le cas présent sdb.

root@gluster1-2~#: lsblk

sortie

NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda               8:0    0    8G  0 disk
├─sda1            8:1    0    1G  0 part /boot
└─sda2            8:2    0    7G  0 part
  ├─centos-root 253:0    0  6.2G  0 lvm  /
  └─centos-swap 253:1    0  820M  0 lvm  [SWAP]
sdb               8:16   0   12G  0 disk
sr0              11:0    1 1024M  0 rom 

Créer la partition destiné à GlusterFS avec fdisk /dev/sdb

root@gluster1-2~#: fdisk /dev/sdb

sortie

Welcome to fdisk (util-linux 2.23.2).

Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.

Device does not contain a recognized partition table
Building a new DOS disklabel with disk identifier 0xc83fd611.

Command (m for help): n
Partition type:
   p   primary (0 primary, 0 extended, 4 free)
   e   extended
Select (default p): p
Partition number (1-4, default 1): Entrée
First sector (2048-25165823, default 2048): Entrée
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-25165823, default 25165823): Entrée
Using default value 25165823
Partition 1 of type Linux and of size 12 GiB is set

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.

Formater la partition.

root@gluster1-2~#: mkfs.ext4 /dev/sdb1

Créer le dossier de montage.

root@gluster1-2~#: mkdir -p /data/gluster

Monter temporairement la nouvelle partition dans ce dossier.

root@gluster1-2~#: mount /dev/sdb1 /data/gluster

Pour monter la partition au boot il y a 2 méthodes :

  • créer un fichier unit.mount
  • éditer le classique /etc/fstab

Créer un fichier unit.mount

root@gluster1-2~#: vim /etc/systemd/system/data-gluster.mount

contenu du fichier

[Unit]
Description=Mount disk /dev/sdb1 for GlusterFS

[Mount]
What=/dev/sdb1
Where=/data/gluster
Type=ext4
Options=defaults

[Install]
WantedBy=multi-user.target
root@gluster1-2~#: systemctl start data-gluster.mount
root@debian~#: systemctl enable data-gluster.mount

: pour rappel, le nom du fichier unit doit être le même que celui du chemin du point de montage en remplaçant les « / » pas des « ».

Éditer fstab

root@gluster1-2~#: vim /etc/fstab

aperçu du contenu du fichier

[…]
/dev/sdb1 /data/gluster ext4 defaults 0 0

Configuration de GlusterFS

: à faire sur un seul des nœud serveur.

Création du pool de stockage à partir du nœud 1.

root@gluster1~#: gluster peer probe gluster2.stan.local

sortie

peer probe: success.

Vérifier le status du pool de stockage.

root@gluster1~#: gluster peer status

sortie

Number of Peers: 1

Hostname: gluster2.stan.local
Uuid: af98e122-83c6-42c1-bab8-33c584627a21
State: Peer in Cluster (Connected)

Lister le pool de stockage.

root@gluster1~#: gluster pool list

sortie

UUID					Hostname           	State
af98e122-83c6-42c1-bab8-33c584627a21	gluster2.stan.local	Connected
032454eb-1683-45f4-a5c8-dbdbd9ac65b0	localhost          	Connected 

Configuration du volume GlusterFS

Création du volume avec 2 duplications.

root@gluster1~#: gluster volume create gv0 replica 2 gluster1.stan.local:/data/gluster/gv0 gluster2.stan.local:/data/gluster/gv0 force

sortie

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

Démarrage du volume.

root@gluster1~#: gluster volume start gv0

sortie

volume start: gv0: success

Vérifier le status du volume.

root@gluster1~#: gluster volume info gv0

sortie

Volume Name: gv0
Type: Replicate
Volume ID: 1e743855-3935-4bda-abd9-383660f69e1e
Status: Started
Snapshot Count: 0
Number of Bricks: 1 x 2 = 2
Transport-type: tcp
Bricks:
Brick1: gluster1.stan.local:/data/gluster/gv0
Brick2: gluster2.stan.local:/data/gluster/gv0
Options Reconfigured:
transport.address-family: inet
nfs.disable: on
performance.client-io-threads: off

Installation et configuration côté client

: à faire sur l’ensemble des clients.

Tout comme les serveurs, à défaut de DNS, éditer le fichier /etc/hosts

root@debian~#: vim /etc/hosts

aperçu du contenu du fichier

172.16.10.10 gluster1.stan.local gluster1
172.16.10.11 gluster2.stan.local gluster2
172.16.10.12 client1.stan.local client1
172.16.10.13 client2.stan.local client2

Installer le packet glusterfs-client (côté client).

root@debian~#: apt install -y glusterfs-client

Création du point de montage.

root@debian~#: mkdir -p /mnt/glusterfs

Montage temporaire du système de fichier distant dans ce dossier.

root@debian~#: mount -t glusterfs gluster1.stan.local:/gv0 /mnt/glusterfs

Vérifier le montage.

: pare défaut glusterd écoute sur le port 24007 mais il y a autant de port ouvert que de nœud, il faut donc ajuster le fierwall au besoin.

root@debian~#: df -hP /mnt/glusterfs

sortie

Filesystem                Size  Used Avail Use% Mounted on
gluster1.stan.local:/gv0  6.2G  1.2G  5.1G  19% /mnt/glusterfs

Tout comme pour le côté serveur, pour le montage du système de fichier il est possible d’éditer
/etc/fstab ou de faire un fichier unit.mount.

Créer un fichier unit.mount

root@debian~#: vim /etc/systemd/system/mnt-glusterfs.mount

contenu du fichier

[Unit]
Description=Mount GlusterFS

[Mount]
What=gluster1.stan.local:/gv0
Where=/mnt/glusterfs
Type=glusterfs
Options=defaults,_netdev 0 0

[Install]
WantedBy=multi-user.target

Éditer fstab

root@debian~#: vim /etc/fstab

aperçu du contenu du fichier

[…]
gluster1.stan.local:/gv0 /mnt/glusterfs glusterfs  defaults,_netdev 0 0

Test de réplication

Mountage temporaire des volumes de stockage client sur les serveurs.

root@gluster1~#: mount -t gluster2.stan.local:/gv0 /mnt
root@gluster2~#: mount -t gluster1.stan.local:/gv0 /mnt

Sur les clients, génération de fichier.

root@debian~#: touch /mnt/glusterfs/file1
root@debian~#: touch /mnt/glusterfs/file2

Vérifier que les fichiers sont bien présent sur l’ensemble des nœuds.

root@gluster1~#:ls -l /mnt/
total 0
-rw-r--r--. 1 root root 0 Apr  8 03:48 file1
-rw-r--r--. 1 root root 0 Apr  8 03:48 file2
root@gluster2~#:ls -l /mnt/
total 0
-rw-r--r--. 1 root root 0 Apr  8 03:48 file1
-rw-r--r--. 1 root root 0 Apr  8 03:48 file2

by | May 23, 2018 | No Comments | Système | Tags : debian debian 9 glusterfs HA systeme de fichier