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 Nicolas SHINEY | May 23, 2018 | No Comments | Système | Tags : debian debian 9 glusterfs HA systeme de fichier