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.
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 ...