Skip navigation

CentOS 7 : réplication de donnée

Mise en place de GlusterFS sur CentOS 7

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 CentOS 7
172.16.0.11/24 gluster2.stan.local Nœud CentOS 7
172.16.0.12/24 client1.stan.local Client CentOS 7
172.16.0.13/24 client2.stan.local Client CentOS 7

Serveur de stockage

Configuration DNS

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

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

[root@cent-os~]#: 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 centos-release-gluster.

[root@cent-os~]#: yum install -y centos-release-gluster

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

[root@cent-os~]#: yum install -y glusterfs-server

Démarrage du service glusterd.

[root@cent-os~]#: systemctl start glusterd

Démarrage du service glusterd au boot.

[root@cent-os~]#: systemctl enable glusterd

Vérifier le status de ce service.

[root@cent-os~]#: systemctl status glusterd

sortie

 glusterd.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, donc ces valeurs sont a ajuster au besoin.

[root@cent-os~]#: firewall-cmd --permanent --zone=public --add-source=172.16.0.0/24
[root@cent-os~]#: firewall-cmd --permanent --zone=public --add-port=24000-25000/tcp
[root@cent-os~]#: firewall-cmd --permanent --zone=public --add-port=24000-25000/udp
[root@cent-os~]#: firewall-cmd --permanent --zone=public --add-port=49152-65535/tcp
    [root@cent-os~]#: firewall-cmd --permanent --zone=public --add-port=49152-65535/udp
[root@cent-os~]#: firewall-cmd --reload

Stockage

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

[root@cent-os~]#: 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@cent-os~]#: 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@cent-os~]#: mkfs.ext4 /dev/sdb1

Créer le dossier de montage.

[root@cent-os~]#: mkdir -p /data/gluster

Monter la nouvelle partition dans ce dossier.

[root@cent-os~]#: mount /dev/sdb1 /data/gluster

Éditer le fichier /etc/fstab pour monter la partition au démarrage.

[root@cent-os~]#: 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@cent-os~]#: 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@cent-os~]#: yum install -y glusterfs-client

Création du point de montage.

[root@cent-os~]#: mkdir -p /mnt/glusterfs

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

[root@cent-os~]#: 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, donc ces valeurs sont a ajuster au besoin.

[root@cent-os~]#: 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

Ajout du montage au démarrage.

[root@cent-os~]#: 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@cent-os~]#: touch /mnt/glusterfs/file1
[root@cent-os~]#: 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 | April 8, 2018 | No Comments | Système | Tags : centos centos 7 glusterfs HA systeme de fichier