29juin 2011

Système de fichier distribué Glusterfs - volume répliqué et distribué

gluster_logo

Après quelques temps d'absence je reprend les différents tests gluster, nous attaquons par la mise en place d'un volume répliqué distribué. Je passerais volontairement la mise en place du volume répliqué simple car ne présentant aucun intérêt pour mes besoins.

Configuration de base :


Nous allons créer dans un premier temps le pool de confiance. Lorsque vous démarrez le premier serveur, le pool de confiance se compose de ce serveur seul, il vous suffira alors d'ajouter depuis ce serveur le 2nd serveur de stockage puis depuis des serveurs déjà présent dans le pool d'ajouter les serveurs suivants afin de les autoriser à interagir entre eux.

filer-1 ~ # gluster peer probe filer-2
Probe successful
filer-2 ~ # gluster peer probe filer-1
Probe successful


Configuration d'un volume répliqué et distribué :


Nous allons commencer par le plus simple à savoir un volume répliqué et distribué sur 2 serveurs de stockage, le but étant d'avoir du master/master (Raid-1).

  • La création du volume est extrêmement simple :
filer-2 ~ # gluster volume create test-volume replica 2 transport tcp filer-1:/mnt filer-2:/mnt
Creation of volume test-volume has been successful. Please start the volume to access data.
  • On vérifie le volume
filer-2 ~ # gluster volume info
Volume Name: test-volume
Type: Replicate
Status: Created
Number of Bricks: 2
Transport-type: tcp
Bricks:
Brick1: filer-1:/mnt
Brick2: filer-2:/mnt
  • A présent on démarre le volume
filer-2 ~ # gluster volume start test-volume
  • On monte le volume depuis les clients
client-1 ~ # mount -t glusterfs filer-1:7997:/test-volume /glusterfs
client-1 ~ # df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/sda1             7.9G  1.3G  6.3G  17% /
udev                   10M  112K  9.9M   2% /dev
shm                   249M     0  249M   0% /dev/shm
filer-1:/test-volume  9.9G  1.4G  8.1G  15% /glusterfs

Test divers :

  • On vérifie que le volume est bien redondant
client-1 ~ # touch /glusterfs/test
client-1 ~ # ls -l  /glusterfs/
total 0
-rw-r--r-- 1 root root 0 Mar  8 20:39 test
filer-1 ~ # ls -l /mnt/
total 0
-rw-r--r-- 1 root root 0 Mar  8 20:39 test
filer-2 ~ # ls -l /mnt/
total 0
-rw-r--r-- 1 root root 0 Mar  8 20:39 test
  • Simulation de panne sur filer-2

On désactive le filer-2

filer-2 ~ # halt
Broadcast message from root (pts/0) (Tue Mar  8 20:57:52 2011):
The system is going down for system halt NOW!

On écrit sur le point de montage depuis le client

client-1 ~ # rm /glusterfs/test 
client-1 ~ # touch /glusterfs/test_2
client-1 ~ # ls -l /glusterfs/
total 4
-rw-r--r-- 1 root root 0 Mar  8 22:43 test_2

On verifie que tout est ok sur le filer-1

filer-1 ~ # ls /mnt/ -l
total 4
-rw-r--r-- 1 root root 0 Mar  8 22:43 test_2

On réactive filer-2 et on vérifie que tout est ok, malheureusement, tant qu'aucun accès n'aura été fait depuis le client, la reconstruction du volume ne sera pas effectué.

filer-2 ~ # ls -l /mnt/
total 0

On effectue un accès depuis le client via un simple ls et on revérifie.

filer-2 ~ # ls /mnt/ -l
total 4
-rw-r--r-- 1 root root 0 Mar  8 22:43 test_2
  • Simulation de panne sur filer-1

On eteint filer-1

On écrit sur le point de montage depuis le client

client-1 ~ # rm /glusterfs/test_2
client-1 ~ # touch /glusterfs/test_3
client-1 ~ # ls -l /glusterfs/
total 4
-rw-r--r-- 1 root root 0 Mar  9 22:17 test_3

On effectue un accès depuis client-1 et on vérifie filer-1

filer-1 ~ # ls -l /glusterfs/
total 4
-rw-r--r-- 1 root root 0 Mar  9 22:17 test_3


On constate que le fait de monter filer-1 ne pose aucun problème en cas de panne de ce dernier, il serait donc plus juste de dire que nous avons monté le pool de confiance. :)

La prochaine étape un benchmark des performances ...

un commentaire

1. Le jeudi 20 septembre 2012, 16:08 par Tarok

Sais tu quels ports doivent être autorisés ?
Car perso, j'ai fait du distribué/répliqué avec 4 bricks.
et j'arrive à faire fonctionner que le répliqué (sur les 2 bricks du même serveur. Rien ne se passe sur le second serveur)

Merci pour une éventuelle piste..

Tarok