Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
formation:anfbigdata [2016/12/14 16:50]
equemene [Gestion du tiering]
formation:anfbigdata [2016/12/15 18:59] (Version actuelle)
equemene
Ligne 1: Ligne 1:
-====== Travaux pratiques GlusterFS ======+====== Travaux pratiques GlusterFS ​pour ANF Bigdata ​======
  
-GlusterFS ou la quête ​de la simplicité ​+Support ​de Travaux pratiques dans le cadre de [[https://​indico.mathrice.fr/​event/​5/​|Des données au BigData : exploitez le stockage distribué]]
  
 +===== CQQCOQP (Comment ? Quoi ? Qui, Combien ? Où ? Quand ? Pourquoi ?) =====
 +
 +  * **Pourquoi ?** Survoler les principales fonctionnalités de GlusterFS et se faire sa propre idée
 +  * **Quoi ?** Tester au travers d'​exemples simples en appliquant le modèles STNPPNFP
 +  * **Quand ?** Jeudi 15 décembre de 9h à 12h
 +  * **Combien ?** 12GB d'​espace disque, 3GB de RAM, 5 VM 
 +  * **Où ?** Sur une machine unique, dans en environnement VirtualBox
 +  * **Qui ?** Pour des admin'​sys soucieux d'​expérimenter rapidement
 +  * **Comment ?** En appliquant une série de commandes simples au travers d'un terminal
 ===== Objectif de la séance ===== ===== Objectif de la séance =====
    
-C'est de donner un aperçu des différentes fonctionnalités de GlusterFS dans un environnement,​ en insistant sur sa simplicité d'​installation,​ de configuration,​ d'​administration.+C'est de donner un aperçu des différentes fonctionnalités de GlusterFS dans un environnement ​propre, en insistant sur sa simplicité d'​installation,​ de configuration,​ d'​administration.
 ===== Préparation de la séance ===== ===== Préparation de la séance =====
    
Ligne 591: Ligne 600:
 </​code>​ </​code>​
  
-Cette commande prend autour de 50 secondes ​sur une machine lente.+Cette commande prend un peu moins d'une minute ​sur une machine lente.
  
 Lançons maintenant une lecture tout aussi parallèle Lançons maintenant une lecture tout aussi parallèle
Ligne 598: Ligne 607:
 </​code>​ </​code>​
  
-Cette commande prend autour de 12 secondes.+Cette commande ​ne prend quelques quelques ​secondes.
  
 Il est possible de voir comment sont distribués les fichiers sur les différents serveurs : Il est possible de voir comment sont distribués les fichiers sur les différents serveurs :
Ligne 672: Ligne 681:
 <​code>​ <​code>​
 ssh root@peer1 gluster volume rebalance MyGlusterLinear status ssh root@peer1 gluster volume rebalance MyGlusterLinear status
 +</​code>​
 +Nous avons une sortie comparable à ce qui suit :
 +<​code>​
                                     Node Rebalanced-files ​         size       ​scanned ​     failures ​      ​skipped ​              ​status ​ run time in h:m:s                                     Node Rebalanced-files ​         size       ​scanned ​     failures ​      ​skipped ​              ​status ​ run time in h:m:s
                                ​--------- ​     ----------- ​  ​----------- ​  ​----------- ​  ​----------- ​  ​----------- ​        ​------------ ​    ​--------------                                ​--------- ​     ----------- ​  ​----------- ​  ​----------- ​  ​----------- ​  ​----------- ​        ​------------ ​    ​--------------
Ligne 685: Ligne 697:
 </​code>​ </​code>​
  
-</code> +<​code>​ 
-root@peer2: ​494+root@peer2: ​347
 root@peer1: 335 root@peer1: 335
-root@peer4: ls: impossible d'​accéder à /​MyGlusterLinear/​File.*:​ Aucun fichier ou dossier de ce type 
 root@peer4: 0 root@peer4: 0
 +root@peer4: ls: impossible d'​accéder à /​MyGlusterLinear/​File.*:​ Aucun fichier ou dossier de ce type
 root@peer3: 318 root@peer3: 318
 </​code>​ </​code>​
Ligne 695: Ligne 707:
 La redistribution n'est pas parfaite, mais elle reste correcte ! La redistribution n'est pas parfaite, mais elle reste correcte !
  
-Replaçons ​maintenant la brique issue de **peer2** par celle disponible ​de **peer4** :+Supprimons ​maintenant la brique issue de **peer1** à partir ​de **peer2** :
 <​code>​ <​code>​
-ssh root@peer2 gluster volume ​replace-brick MyGlusterLinear peer1:/​MyGlusterLinear ​peer4:/​MyGlusterLinear+ssh root@peer2 gluster volume ​remove-brick MyGlusterLinear peer1:/​MyGlusterLinear ​start
 </​code>​ </​code>​
  
 +Le message suivant indique que la procédure a démarré
 <​code>​ <​code>​
-volume ​replace-brick: success: ​replace-brick commit ​force operation successful+volume ​remove-brick ​start: success 
 +ID92c17fc7-9980-4c73-83fd-fd011a8be530 
 +</​code>​ 
 + 
 +Contrôlons la progression de la migration des données issues de la demande de suppression : 
 +<​code>​ 
 +ssh root@peer2 gluster volume remove-brick ​MyGlusterLinear peer1:/​MyGlusterLinear status 
 +</​code>​ 
 + 
 +Une fois terminé, nous avons pour la même commande précédente : 
 +<​code>​ 
 +                                    Node Rebalanced-files ​         size       ​scanned ​     failures ​      ​skipped ​              ​status ​ run time in h:m:s 
 +                               ​--------- ​     ----------- ​  ​----------- ​  ​----------- ​  ​----------- ​  ​----------- ​        ​------------ ​    ​-------------- 
 +                      peer1.gluster.zone ​             335         ​5.2KB ​          ​335 ​            ​0 ​            ​0 ​           completed ​       0:0:13 
 +</​code>​ 
 + 
 +Relançons la commande pour voir la distribution sur les différents serveurs 
 +<​code>​ 
 +clush -w root@peer[1-4] 'ls /​MyGlusterLinear/​File.* | wc -l' 
 +</​code>​ 
 +Nous obtenons : 
 +<​code>​ 
 +root@peer1: 0 
 +root@peer1: ls: impossible d'​accéder à /​MyGlusterLinear/​File.*:​ Aucun fichier ou dossier de ce type 
 +root@peer4: 0 
 +root@peer4: ls: impossible d'​accéder à /​MyGlusterLinear/​File.*:​ Aucun fichier ou dossier de ce type 
 +root@peer2: 347 
 +root@peer3: 653 
 +</​code>​ 
 +Les fichiers ont bien disparu de **peer1** et se sont retrouvés sur **peer3** ! 
 + 
 +Validons la suppression 
 +<​code>​ 
 +ssh root@peer2 'echo y | gluster volume remove-brick MyGlusterLinear peer1:/​MyGlusterLinear ​commit
 +</​code>​ 
 + 
 +Un petit message nous invite à la prudence, pour, au pire, restaurer les données : 
 +<​code>​ 
 +Removing brick(s) can result in data loss. Do you want to Continue? (y/n) volume remove-brick commit: success 
 +Check the removed bricks to ensure all files are migrated. 
 +If files with data are found on the brick path, copy them via a gluster mount point before re-purposing the removed brick. ​
 </​code>​ </​code>​
  
Ligne 712: Ligne 765:
 Status: Started Status: Started
 Snapshot Count: 0 Snapshot Count: 0
-Number of Bricks: ​3+Number of Bricks: ​2
 Transport-type:​ tcp Transport-type:​ tcp
 Bricks: Bricks:
 Brick1: peer2:/​MyGlusterLinear Brick1: peer2:/​MyGlusterLinear
-Brick2: peer4:/​MyGlusterLinear 
 Brick3: peer3:/​MyGlusterLinear Brick3: peer3:/​MyGlusterLinear
 Options Reconfigured:​ Options Reconfigured:​
Ligne 723: Ligne 775:
 nfs.disable:​ on nfs.disable:​ on
 </​code>​ </​code>​
- 
-Si nous regardons la répartitions des fichiers avec  
-<​code>​ 
-clush -w root@peer[1-4] 'ls /​MyGlusterLinear/​File.* | wc -l' 
-</​code>​ 
-Nous avons : 
-<​code>​ 
-root@peer3: 318 
-root@peer1: 347 
-root@peer2: 335 
-root@peer4: 347 
-</​code>​ 
-Nous voyons que la "​charge"​ de **peer1** a été transféré sur **peer4**. Cependant, en regardant la signature des fichiers, nous constatons qu'ils sont vides sur **peer1**. 
- 
  
 Effaçons ces fichiers et démontons le volume monté sur le client : Effaçons ces fichiers et démontons le volume monté sur le client :
Ligne 743: Ligne 781:
 sudo umount /​media/​MyGlusterLinear sudo umount /​media/​MyGlusterLinear
 </​code>​ </​code>​
 +
 +<note important>​Il ne faut utiliser la commande ''​replace-brick''​ **uniquement** dans le cadre d'un volume ''​replica''​ !</​note>​
  
 ===== Création d’un volume de type ''​striped''​ (équivalent RAID0) ===== ===== Création d’un volume de type ''​striped''​ (équivalent RAID0) =====
Ligne 1268: Ligne 1308:
 </​code>​ </​code>​
  
 +Montage du volume sur le client
 +<​code>​
 +sudo mkdir /​media/​MyGlusterReplica
 +sudo mount -t glusterfs -o noatime peer1:​MyGlusterReplica /​media/​MyGlusterReplica
 +sudo chmod 777 /​media/​MyGlusterReplica
 +sudo chmod o+t /​media/​MyGlusterReplica
 +</​code>​
 +
 +<​code>​
 +seq -w 1000 | /​usr/​bin/​time xargs -P 1000 -I '​{}'​ bash -c "echo Hello File '​{}'​ > /​media/​MyGlusterReplica/​File.'​{}'"​
 +</​code>​
 +
 +<​code>​
 +clush -w root@peer[1-4] 'ls /​MyGlusterReplica/​File.* | wc -l'
 +</​code>​
 +
 +<​code>​
 +root@peer1: 1000
 +root@peer3: 1000
 +root@peer4: 1000
 +root@peer2: 1000
 +</​code>​
 Résilience des disques ​ Résilience des disques ​
  
formation/anfbigdata.1481730613.txt.gz · Dernière modification: 2016/12/14 16:50 par equemene