Listes des commandes sous Gluster 3.6.2

1. Avant-propos
1.1. Présentation
1.1.1 Schéma d'architecture
1.2. Installation des binaires du client Gluster
2. Listes des différentes commandes sous Gluster
2.1. Liste des volumes vu par GlusterFS
2.2. Etat d'un volume sous GlusterFS
2.3. Test d'un serveur distant GlusterFS
2.4. Test d'un client distant GlusterFS
2.5. Connaître la mémoire utilisée sur un volume Gluster
2.6. Connaitre les derniers fichiers consultés sur un volume Gluster
2.7. Connaitre les derniers fichiers écrits sur un volume Gluster
2.8. Connaitre les fichiers les plus ouverts sur un volume Gluster
2.9. Connaitre les fichiers les plus écrits sur un volume Gluster
2.10. Connaitre les répertoires les plus ouverts sur un volume Gluster
2.11. Connaitre les répertoires les plus lus sur un volume Gluster
2.12. GID Gluster
2.13. Connaître l'état des volumes Gluster
2.14. Création d'un volume Gluster Répliqué sur deux serveurs
2.15. Redistribuer les données d'un volume Gluster Répliqué sur deux serveurs
2.16. Arrêt/Relance d'un volume Gluster Répliqué sur deux serveurs
2.16.1 Arrêt d'un Volume Gluster
2.16.2 Démarrage d'un Volume Gluster
2.17. Changement d'un disque H.S puis activation avec Gluster
2.17.1 xxxxxxxxxxxxxxxxxxxxx
2.17.2 xxxxxxxxxxxxxxxxxxxxx
2.17.3 xxxxxxxxxxxxxxxxxxxxx
2.17.4 xxxxxxxxxxxxxxxxxxxxx
2.17.5 xxxxxxxxxxxxxxxxxxxxx
2.17.6 xxxxxxxxxxxxxxxxxxxxx
2.18. Online/Offline d'une brick sur un volume en mirroire

1. Avant-propos


1.1 - Présentation.


Petit mémo sur les commandes Gluster.

1.1.1 - Schema d'architecture




                                               +--------------------------------------+   +-----------------------
                                               | Serveur GlusterFS                    |   | Serveur GlusterFS
                                               | Version : 3.6.2                      |   | Version : 3.6.2
                                               | Hostname : arecibo                   |   | Hostname : seti
                                               |                             Failover |   |
                                               | IP : 172.21.3.74               <=====|===|===> IP : 172.21.3.75
                                               | Port:                                |   | 
                                               |                                      |   |
                                               | +---------------------------------+  |   |
                                               | |     Gluster Volume              |  |   |
                                               | |                                 |  |   |
                                               | +---------------------------------+  |   |
                                               +--------------------------------------+   +--------
                                                        A                     A
                                                       /                      |
                                                      /                       |
                                             +-----------------+      +-----------------+ 
                                             | Montage Gluster |      | Montage Gluster |
                                             +-----------------+      +-----------------+
                                                  /                           |
                                                 /                            |
                                                V                             V
                                +---------------------------+             +--------------------------+
                                |  Hostname : Jupiter       |             | Hostname : Saturn        |
                                |  Serveur : Apache         |             | Serveur : Apache         |
                                |  Montage Gluster :        |             | Montage Gluster :        |
                                |                           |             |                          |
                                |  I.P : 172.21.3.36        |             | I.P : 172.21.3.37        |
                                |  Port :                   |             | Port :                   |
                                +---------------------------+             +--------------------------+




1.2 - Installation des binaires du client Gluster.


Si vous avez déjà la LIBC6, utilisé l'option --nodeps.
[root@arecibo] # rpm -i --nodeps libgfapi0-3.4.0~qa2-2.1.1.x86_64.rpm
[root] # rpm -i --nodeps libgfapi0-3.4.0~qa2-2.1.1.x86_64.rpm
attention: libgfapi0-3.4.0~qa2-2.1.1.x86_64.rpm: Entête V3 RSA/SHA256 Signature, key ID 3dbdc284: NOKEY
[root] # 
[root@arecibo] # rpm -Uvh --nodeps glusterfs-3.6.2-1.el6.x86_64.rpm
[root] # rpm -Uvh --nodeps glusterfs-3.6.2-1.el6.x86_64.rpm
attention: glusterfs-3.6.2-1.el6.x86_64.rpm: Entête V4 RSA/SHA1 Signature, key ID 4ab22bb3: NOKEY
Préparation...              ########################################### [100%]
   1:glusterfs              ########################################### [100%]
[root] #
[root@arecibo] # rpm -Uvh glusterfs-fuse-3.6.2-1.el6.x86_64.rpm
[root] # rpm -Uvh glusterfs-fuse-3.6.2-1.el6.x86_64.rpm
attention: glusterfs-fuse-3.6.2-1.el6.x86_64.rpm: Entête V4 RSA/SHA1 Signature, key ID 4ab22bb3: NOKEY
Préparation...              ########################################### [100%]
   1:glusterfs-fuse         ########################################### [100%]
[root] #


2. Listes des différentes commandes sous Gluster


2.1 - Liste des volumes vu par GlusterFS


Nous allons lister tous les volume GlusterFS.
Commande a éxecuter sur le serveur GlusterFSd dans notre cas arecibo (ou le backup seti).
Nous observons deux volumes un nommé "volumePourApache" et l'autre "mysqlbackup".
Le volume "mysqlbackup" est mirroré.
Le volume "volumePourApache" est mirroré et fait du stripping.
[root@arecibo] # gluster volume info
[root@arecibo] # gluster volume info
 
Volume Name: volumePourApache
Type: Distributed-Replicate
Volume ID: 2f7e7500-19c6-460b-af9f-8a748d67199a
Status: Started
Number of Bricks: 2 x 2 = 4
Transport-type: tcp
Bricks:
Brick1: 172.21.3.74:/export/glusterfs/volumePourApache/brick1/brick
Brick2: 172.21.3.75:/export/glusterfs/volumePourApache/brick2/brick
Brick3: 172.21.3.75:/export/glusterfs/volumePourApache/brick1/brick
Brick4: 172.21.3.74:/export/glusterfs/volumePourApache/brick2/brick

Volume Name: mysqlbackup
Type: Replicate
Volume ID: a9cae806-d687-4338-98af-c9077ed22165
Status: Started
Number of Bricks: 1 x 2 = 2
Transport-type: tcp
Bricks:
Brick1: 172.21.3.74:/export/glusterfs/mysqlbackup/brick1/mysqlbackup
Brick2: 172.21.3.75:/export/glusterfs/mysqlbackup/brick1/mysqlbackup

[root@arecibo] # 

2.2 - Etat d'un volume sous GlusterFS


Afin de connaitre l'état d'un volume sous Gluster tapez la commande ci-dessous.
[root@arecibo] # gluster volume status volumePourApache
[root@arecibo] # gluster volume status volumePourApache
Status of volume: volumePourApache
Gluster process                                                   Port  Online	Pid
------------------------------------------------------------------------------------------
Brick 172.21.3.74:/export/glusterfs/volumePourApache/brick1/brick 49158	    Y   31449
Brick 172.21.3.74:/export/glusterfs/volumePourApache/brick2/brick 49159	    Y   31460
NFS Server on localhost                                             N/A     N   N/A
Self-heal Daemon on localhost                                       N/A     Y   31483
 
Task Status of Volume volumePourApache
------------------------------------------------------------------------------------------
Task                 : Rebalance           
ID                   : 3878017b-a28f-4617-bcc3-9d8886d777b9
Status               : completed           
 
[root@arecibo] #

La valeur Port correspond au port TCP utilisé dans notre exemple "49158", pour s'en rendre compte tapons la commande suivante :
[root@arecibo] # lsof -i:49158
[root@arecibo] # lsof -i:49158
COMMAND    PID USER   FD   TYPE   DEVICE SIZE/OFF NODE NAME
glusterfs 31449 root   10u  IPv4 45115859      0t0  TCP 172.21.3.74:49158->172.21.3.75:imaps (ESTABLISHED)
glusterfs 31449 root   11u  IPv4 45107544      0t0  TCP *:49158 (LISTEN)
glusterfs 31449 root   14u  IPv4 45107810      0t0  TCP 172.21.3.74:49158->web001:ircs (ESTABLISHED)
glusterfs 31449 root   15u  IPv4 45107824      0t0  TCP 172.21.3.74:49158->web002:pop3s (ESTABLISHED)
glusterfs 31449 root   16u  IPv4 45107856      0t0  TCP 172.21.3.74:49158->172.21.3.74:1018 (ESTABLISHED)
glusterfs 1758 root    8u  IPv4 45107855      0t0  TCP 172.21.3.74:1018->172.21.3.74:49158 (ESTABLISHED)
[root@arecibo] # 
La valeur PID correspond au processID unix utilisé dans notre exemple "31449", pour s'en rendre compte tapons la commande suivante :
[root@arecibo] # ps -ef | grep 31449 | grep -v grep
[root@arecibo] # ps -ef | grep 31449 | grep -v grep
root      31449     1  4 11:09 ?        00:07:14 /usr/sbin/glusterfsd -s 172.21.3.74 --volfile-id volumePourApache.172.21.3.74.export-glusterfs-volumePourApache-brick1-brick -p /var/lib/glusterd/vols/volumePourApache/run/172.21.3.74-export-glusterfs-volumePourApache-brick1-brick.pid -S /var/run/1829aeeff0965002532016aed60f8ac2.socket --brick-name /export/glusterfs/volumePourApache/brick1/brick -l /var/log/glusterfs/bricks/export-glusterfs-volumePourApache-brick1-brick.log --xlator-option *-posix.glusterd-uuid=656b329a-dd46-4c01-900a-b7083355d3a0 --brick-port 49158 --xlator-option volumePourApache-server.listen-port=49158
[root@arecibo] # 

2.3 - Test d'un serveur distant GlusterFS


Commande a éxecuter sur le serveur primaire GlusterFS sur le serveur arecibo.
Afin de voir si le noeud de backup du serveur Gluster "seti" est toujours UP, lancer la commande suivante :
[root@arecibo] # gluster peer probe 172.21.3.75
[root@arecibo] # gluster peer probe 172.21.3.75
peer probe: success. Host 172.21.3.75 port 24007 already in peer list
[root@arecibo] #


2.4 - Test d'un client distant GlusterFS


Commande a éxecuter sur le serveur primaire GlusterFS sur le serveur arecibo.
Afin de voir si les noeuds clients du serveur Gluster accède au serveur Gluster, lancer la commande suivante :
[root@arecibo] # netstat -tapu | grep gluster
[root] # netstat -tapu | grep gluster
tcp        0      0 *:49158                     *:*                         LISTEN      28764/glusterfsd    
tcp        0      0 *:49159                     *:*                         LISTEN      28775/glusterfsd    
tcp        0      0 *:24007                     *:*                         LISTEN      26581/glusterd      
tcp        0      0 172.21.3.74:24007           172.21.3.75:1023            ESTABLISHED 26581/glusterd      
tcp        0      0 172.21.3.74:24007           172.21.3.74:986             ESTABLISHED 26581/glusterd      
tcp        0      0 172.21.3.74:24007           saturn:1023                 ESTABLISHED 26581/glusterd      
tcp        0      0 172.21.3.74:49158           172.21.3.74:1005            ESTABLISHED 28764/glusterfsd    
tcp        0      0 172.21.3.74:49159           saturn:982                  ESTABLISHED 28775/glusterfsd    
tcp        0      0 localhost:24007             localhost:1015              ESTABLISHED 26581/glusterd      
tcp        0      0 172.21.3.74:49159           jupiter:983                 ESTABLISHED 28775/glusterfsd    
tcp        0      0 172.21.3.74:983             172.21.3.74:24007           ESTABLISHED 28775/glusterfsd    
tcp        0      0 172.21.3.74:49158           saturn:985                  ESTABLISHED 28764/glusterfsd    
tcp        0      0 172.21.3.74:49158           172.21.3.75:983             ESTABLISHED 28764/glusterfsd    
tcp        0      0 arecibo:exp1                seti:24007                  ESTABLISHED 26581/glusterd      
tcp        0      0 172.21.3.74:1005            172.21.3.74:49158           ESTABLISHED 4990/glusterfs      
tcp        0      0 localhost:1015              localhost:24007             ESTABLISHED 4990/glusterfs      
tcp        0      0 172.21.3.74:24007           172.21.3.74:983             ESTABLISHED 26581/glusterd      
tcp        0      0 172.21.3.74:49159           172.21.3.75:980             ESTABLISHED 28775/glusterfsd    
tcp        0      0 172.21.3.74:surf            172.21.3.75:49159           ESTABLISHED 4990/glusterfs      
tcp        0      0 172.21.3.74:49158           jupiter:986                 ESTABLISHED 28764/glusterfsd    
tcp        0      0 172.21.3.74:24007           jupiter:exp2                ESTABLISHED 26581/glusterd      
tcp        0      0 arecibo:1023                seti:24007                  ESTABLISHED 26581/glusterd      
tcp        0      0 172.21.3.74:986             172.21.3.74:24007           ESTABLISHED 28764/glusterfsd    
tcp        0      0 172.21.3.74:1017            172.21.3.75:24007           ESTABLISHED 26581/glusterd      
tcp        0      0 172.21.3.74:981             172.21.3.74:49159           ESTABLISHED 4990/glusterfs      
tcp        0      0 172.21.3.74:49159           172.21.3.74:981             ESTABLISHED 28775/glusterfsd    
[root] # 


Vous pouvez également voir la consomation d'un client Gluster en lançant la commande suivante :
[root@arecibo] # gluster volume status volumePourApache clients

[root] # gluster volume status volumePourApache clients
Client connections for volume volumePourApache
----------------------------------------------
Brick : 172.21.3.74:/export/glusterfs/volumePourApache/brick1/brick
Clients connected : 4
Hostname                                               BytesRead    BytesWritten
--------                                               ---------    ------------
172.21.3.74:1020                                        16765568        12296504
172.21.3.36:1002                                          197192          168420
172.21.3.37:1000                                            5636            5300
172.21.3.75:998                                             1000             628
----------------------------------------------
Brick : 172.21.3.75:/export/glusterfs/volumePourApache/brick2/brick
Brick is offline
----------------------------------------------
Brick : 172.21.3.75:/export/glusterfs/volumePourApache/brick1/brick
Clients connected : 4
Hostname                                               BytesRead    BytesWritten
--------                                               ---------    ------------
172.21.3.37:1016                                       100887391       276009408
172.21.3.75:1015                                        29901272        33099458
172.21.3.36:1018                                        82841944        98803160
172.21.3.74:1014                                            4768            2700
----------------------------------------------
Brick : 172.21.3.74:/export/glusterfs/volumePourApache/brick2/brick
Clients connected : 4
Hostname                                               BytesRead    BytesWritten
--------                                               ---------    ------------
172.21.3.74:1019                                           21248           20360
172.21.3.36:999                                           175292          130748
172.21.3.37:999                                             5224            4588
172.21.3.75:997                                             4676            2700
----------------------------------------------

[root] # 

2.5 - Connaître la mémoire utilisée sur un volume Gluster


Pour connaitre la consomation mémoire d'un volume Gluster taper la commande suivante :
[root@arecibo] # gluster volume status volumePourApache mem

[root] # gluster volume status volumePourApache mem
Memory status for volume : volumePourApache
----------------------------------------------
Brick : 172.21.3.74:/export/glusterfs/volumePourApache/brick1/brick
Mallinfo
--------
Arena    : 983040
Ordblks  : 36
Smblks   : 0
Hblks    : 13
Hblkhd   : 18161664
Usmblks  : 0
Fsmblks  : 0
Uordblks : 951456
Fordblks : 31584
Keepcost : 25280
 
Mempool Stats
-------------
Name                            HotCount ColdCount PaddedSizeof AllocCount MaxAlloc   Misses Max-StdAlloc
----                            -------- --------- ------------ ---------- -------- -------- ------------
volumePourApache-server:fd_t              0      1024          108       8676        2        0            0
volumePourApache-server:dentry_t         10     16374           84         10       10        0            0
volumePourApache-server:inode_t         647     15737          156        760      648        0            0
volumePourApache-changelog:changelog_local_t         0        64          116          0        0        0            0
volumePourApache-locks:pl_local_t         0        32          148      12421        1        0            0
volumePourApache-marker:marker_local_t         0       128          332      11505        1        0            0
volumePourApache-quota:quota_local_t         0        64          412          0        0        0            0
volumePourApache-server:rpcsvc_request_t         0       512         2828      80870        2        0            0
glusterfs:struct saved_frame           0         8          124          2        2        0            0
glusterfs:struct rpc_req               0         8          588          2        2        0            0
glusterfs:rpcsvc_request_t             1         7         2828          1        1        0            0
glusterfs:log_buf_t                    0       256          140          1        1        0            0
glusterfs:data_t                     155     16228           52     162766      159        0            0
glusterfs:data_pair_t                150     16233           68      86992      154        0            0
glusterfs:dict_t                      16      4080          140      76428       18        0            0
glusterfs:call_stub_t                  0      1024         3756      72763        3        0            0
glusterfs:call_stack_t                 1      1023         1836      72146        2        0            0
glusterfs:call_frame_t                 0      4096          172     347908       17        0            0
----------------------------------------------
Brick : 172.21.3.75:/export/glusterfs/volumePourApache/brick2/brick
Brick is offline
----------------------------------------------
Brick : 172.21.3.75:/export/glusterfs/volumePourApache/brick1/brick
Mallinfo
--------
Arena    : 6938624
Ordblks  : 1367
Smblks   : 0
Hblks    : 13
Hblkhd   : 18161664
Usmblks  : 0
Fsmblks  : 0
Uordblks : 6782768
Fordblks : 155856
Keepcost : 57696
 
Mempool Stats
-------------
Name                            HotCount ColdCount PaddedSizeof AllocCount MaxAlloc   Misses Max-StdAlloc
----                            -------- --------- ------------ ---------- -------- -------- ------------
volumePourApache-server:fd_t              0      1024          108    5327850        9        0            0
volumePourApache-server:dentry_t       7935      8449           84      11968     7936        0            0
volumePourApache-server:inode_t       16383         1          156   71083980    16384   342898         1094
volumePourApache-changelog:changelog_local_t         0        64          116          0        0        0            0
volumePourApache-locks:pl_local_t         0        32          148  159699575        4        0            0
volumePourApache-marker:marker_local_t         0       128          332      71984        2        0            0
volumePourApache-quota:quota_local_t         0        64          412          0        0        0            0
volumePourApache-server:rpcsvc_request_t         0       512         2828  344624562        7        0            0
glusterfs:struct saved_frame           0         8          124          3        2        0            0
glusterfs:struct rpc_req               0         8          588          3        2        0            0
glusterfs:rpcsvc_request_t             1         7         2828          1        1        0            0
glusterfs:log_buf_t                    0       256          140          1        1        0            0
glusterfs:data_t                     155     16228           52 1428323535      159        0            0
glusterfs:data_pair_t                150     16233           68  997611989      154        0            0
glusterfs:dict_t                      16      4080          140  476607895       35        0            0
glusterfs:call_stub_t                  0      1024         3756  347469738        7        0            0
glusterfs:call_stack_t                 1      1023         1836  340706014        7        0            0
glusterfs:call_frame_t                 0      4096          172 1704926683       42        0            0
----------------------------------------------
Brick : 172.21.3.74:/export/glusterfs/volumePourApache/brick2/brick
Mallinfo
--------
Arena    : 856064
Ordblks  : 33
Smblks   : 0
Hblks    : 13
Hblkhd   : 18161664
Usmblks  : 0
Fsmblks  : 0
Uordblks : 737136
Fordblks : 118928
Keepcost : 112544
 
Mempool Stats
-------------
Name                            HotCount ColdCount PaddedSizeof AllocCount MaxAlloc   Misses Max-StdAlloc
----                            -------- --------- ------------ ---------- -------- -------- ------------
volumePourApache-server:fd_t              0      1024          108         18        1        0            0
volumePourApache-server:dentry_t          8     16376           84          8        8        0            0
volumePourApache-server:inode_t          10     16374          156        139       11        0            0
volumePourApache-changelog:changelog_local_t         0        64          116          0        0        0            0
volumePourApache-locks:pl_local_t         0        32          148        297        1        0            0
volumePourApache-marker:marker_local_t         0       128          332         39        1        0            0
volumePourApache-quota:quota_local_t         0        64          412          0        0        0            0
volumePourApache-server:rpcsvc_request_t         0       512         2828        494        2        0            0
glusterfs:struct saved_frame           0         8          124          2        2        0            0
glusterfs:struct rpc_req               0         8          588          2        2        0            0
glusterfs:rpcsvc_request_t             1         7         2828          1        1        0            0
glusterfs:log_buf_t                    0       256          140          1        1        0            0
glusterfs:data_t                     155     16228           52       4237      159        0            0
glusterfs:data_pair_t                150     16233           68       3694      154        0            0
glusterfs:dict_t                      16      4080          140        556       18        0            0
glusterfs:call_stub_t                  0      1024         3756        391        2        0            0
glusterfs:call_stack_t                 1      1023         1836        411        2        0            0
glusterfs:call_frame_t                 0      4096          172       2484        8        0            0
----------------------------------------------



Affaire à suivre.....
[root] # gluster volume status volumePourApache inode
[root] # gluster volume status volumePourApache inode
Another transaction is in progress. Please try again after sometime.
[root] # gluster volume status volumePourApache inode
Another transaction is in progress. Please try again after sometime.
[root] # gluster volume stat^Cd
[root] # gluster volume status volumePourApache fd
Locking failed on 172.21.3.75. Please check log file for details.
[root] # gluster volume status volumePourApache callpool
Locking failed on 172.21.3.75. Please check log file for details.
[root] # gluster volume log rotate volumePourApache
volume log-rotate: failed: Locking failed on 172.21.3.75. Please check log file for details.

[..]

2.6 - Connaitre les derniers fichiers consultés sur un volume Gluster


Pour connaitre les derniers fichiers consultés sur un volume Gluster taper la commande suivante :
[root@arecibo] # gluster volume top volumePourApache read-perf bs 2014 count 1024

root] #  gluster volume top volumePourApache read-perf  bs 2014 count 1024
Brick: 172.21.3.74:/export/glusterfs/volumePourApache/brick2/brick
Throughput 2657.65 MBps time 0.0008 secs
Brick: 172.21.3.74:/export/glusterfs/volumePourApache/brick1/brick
Throughput 2515.04 MBps time 0.0000 secs
Brick: 172.21.3.75:/export/glusterfs/volumePourApache/brick1/brick
Throughput 2825.12 MBps time 0.0007 secs
MBps Filename                                        Time                      
==== ========                                        ====                      
   0 ...an.consultant/files/Photos/San Francisco.jpg 2016-02-19 16:04:14.687116
   0 ...ta/vacances/files/Photos/Paris.jpg 2016-02-17 07:54:19.332376
   0 ...ers/waze/skins/default/schema.50.v1427975561 2016-02-15 09:17:55.2779  
   0 ...es (3)/Brioche_Mouseline_jcb.odt.v1427975561 2016-02-15 09:17:54.982784
   0 .../Recettes (1)/Dents_de_loups.odt.v1427975561 2016-02-15 09:17:54.962561
   0 ...M/Camera/cache/2078400470401.tec.v1427975561 2016-02-15 09:17:54.941584
   0 .../DCIM/Camera/20140713_130500.jpg.v1427975561 2016-02-15 09:17:53.919450
   0 ...afile/cache/repos--575451557.dat.v1427975561 2016-02-15 09:17:53.687433
   0 ...06/Others/documents/Document.doc.v1427975561 2016-02-15 09:17:52.547050
   0 ...hers/Download/MéteoHebdoS01.pdf.v1427975561 2016-02-15 09:17:52.466773
   0 ...tions/Filiere-pro/ACF2/sans-import.xls 2016-02-15 09:17:51.18384

[..]

2.7 - Connaitre les derniers fichiers écrits sur un volume Gluster


Pour connaitre les derniers fichiers enregistrés sur un volume Gluster taper la commande suivante :
[root@arecibo] # gluster volume top volumePourApache write-perf bs 2014 count 1024
[root] # gluster volume top volumePourApache write-perf bs 2014 count 1024
Brick: 172.21.3.74:/export/glusterfs/volumePourApache/brick2/brick
Throughput 787.15 MBps time 0.0026 secs
MBps Filename                                        Time                      
==== ========                                        ====                      
   0 ...documents/Capture du 2015-12-02 14:40:59.png 2016-02-29 15:36:46.862597
Brick: 172.21.3.74:/export/glusterfs/volumePourApache/brick1/brick
Throughput 726.17 MBps time 0.0000 secs
MBps Filename                                        Time                      
==== ========                                        ====                      
   0 /data/admin/thumbnails/25220/32-32.png  2016-02-29 15:36:47.533987
   0 ...data/admin/thumbnails/25220/1023-781-max.png 2016-02-29 15:36:47.480489
Brick: 172.21.3.75:/export/glusterfs/volumePourApache/brick1/brick
Throughput 875.35 MBps time 0.0024 secs
MBps Filename                                        Time                      
==== ========                                        ====                      
   0 ...documents/Capture du 2015-12-02 14:40:59.png 2016-02-29 15:36:46.862004
   0 /data/htaccesstest.txt                  2016-02-26 15:08:04.514848
   0 ...data/admin/thumbnails/10/51-116-max.png 2016-02-25 16:41:03.66169 
   0 /data/admin/thumbnails/13/200-200.png   2016-02-25 16:41:03.5719  
   0 ...data/admin/thumbnails/13/342-305-max.png 2016-02-25 16:41:02.960116

[..]


Si vous souhaitez visualiser une "brick" spécifique, alors taper la commande suivante :
[root@arecibo] # gluster volume top volumePourApache write-perf bs 2014 count 1024 brick 172.21.3.74:/export/glusterfs/volumePourApache/brick2/brick

[root] # gluster volume top volumePourApache write-perf  bs 2014 count 1024 brick 172.21.3.74:/export/glusterfs/volumePourApache/brick2/brick 
Brick: 172.21.3.74:/export/glusterfs/volumePourApache/brick2/brick
Throughput 895.89 MBps time 0.0023 secs
MBps Filename                                        Time                      
==== ========                                        ====                      
   0 ...documents/Capture du 2015-12-02 14:40:59.png 2016-02-29 15:36:46.862597
[root] # 

2.8 - Connaitre les fichiers les plus ouverts sur un volume Gluster


Pour connaitre les fichiers les plus ouverts sur un volume Gluster taper la commande suivante :
[root@arecibo] # gluster volume top volumePourApache open
[root] # gluster volume top volumePourApache open
Brick: 172.21.3.74:/export/glusterfs/volumePourApache/brick2/brick
Current open fds: 0, Max open fds: 1, Max openfd time: 2016-02-29 15:36:46.857995
Brick: 172.21.3.74:/export/glusterfs/volumePourApache/brick1/brick
Current open fds: 0, Max open fds: 1, Max openfd time: 2016-02-29 13:55:39.114497
Brick: 172.21.3.75:/export/glusterfs/volumePourApache/brick1/brick
Current open fds: 0, Max open fds: 4, Max openfd time: 2016-02-04 12:00:09.914272
Count		filename
=======================
4		/index.html
1		/data/TurlanFranck/fichier/synthese.ods
1		/data/TurlanFranck/fichier/Evolution_missions.ods
1		/data/TurlanFranck/fichier/Cv.odp
1		/data/TurlanFranck/fichier/CV_v2.odt
1		/data/TurlanFranck/fichier/PresentationMission.ppt

[..]

2.8 - Connaitre les fichiers les plus lus sur un volume Gluster


Pour connaitre les fichiers les plus lus sur un volume Gluster taper la commande suivante :
[root@arecibo] # gluster volume top volumePourApache read
root] # gluster volume top volumePourApache readdir
Brick: 172.21.3.74:/export/glusterfs/volumePourApache/brick1/brick
Count		filename
=======================
2		/data/admin/thumbnails/25220
Brick: 172.21.3.74:/export/glusterfs/volumePourApache/brick2/brick
Brick: 172.21.3.75:/export/glusterfs/volumePourApache/brick1/brick
Count		filename
=======================
94		/data/cache
18		/data/files_versions/Bac-a-sable
14		/data/html/cache

[..]

2.9 - Connaitre les fichiers les plus écrits sur un volume Gluster


Pour connaitre les fichiers les plus écrits sur un volume Gluster taper la commande suivante :
[root@arecibo] # gluster volume top volumePourApache write

2.10 - Connaitre les répertoires les plus ouverts sur un volume Gluster


Pour connaitre les répertoires les plus ouverts sur un volume Gluster taper la commande suivante :
[root@arecibo] # gluster volume top volumePourApache opendir
[root@arecibo] # gluster volume top volumePourApache opendir
Brick: 172.21.3.74:/export/glusterfs/volumePourApache/brick1/brick
Brick: 172.21.3.74:/export/glusterfs/volumePourApache/brick2/brick
Brick: 172.21.3.75:/export/glusterfs/volumePourApache/brick1/brick
Brick: 172.21.3.75:/export/glusterfs/volumePourApache/brick2/brick
Count		filename
=======================
5		/home/arecibo/www/index.html
5		/home/arecibo/www/images/logo.gif
5		/home/arecibo/www/Visio
5		/home/arecibo/www/Visio/VISIO
5		/home/arecibo/www/Reunion_de_service
5		/home/arecibo/www/Recettes

[..]

2.11 - Connaitre les répertoires les plus lus sur un volume Gluster


Pour connaitre les répertoires les plus lus sur un volume Gluster taper la commande suivante :
[root@arecibo] # gluster volume top volumePourApache readdir

2.12 - GID Gluster


[root@arecibo] # getfattr -m . -d -e hex /export/glusterfs/volumePourApache/brick1/brick/data/turlan/files/Documents/Example.odt
[root] # ls -l /export/glusterfs/volumePourApache/brick1/brick/data/turlan/files/Documents/Example.odt
-rw-r--r-- 2 apache apache 36227 17 févr. 11:09 /export/glusterfs/volumePourApache/brick1/brick/data/turlan/files/Documents/Example.odt
[root] # getfattr -m . -d -e hex /export/glusterfs/volumePourApache/brick1/brick/data/turlan/files/Documents/Example.odt 
getfattr: Suppression des « / » en tête des chemins absolus
# file: export/glusterfs/volumePourApache/brick1/brick/data/turlan/files/Documents/Example.odt
trusted.afr.volumePourApache-client-0=0x000000000000000000000000
trusted.afr.volumePourApache-client-1=0x000000040000000200000000
trusted.gfid=0x515d44351d744f0bbd227fb9e2eadd42

[root] # ls -l /export/glusterfs/volumePourApache/brick1/brick/data/turlan/files/Documents/Example.odt
-rw-r--r-- 2 apache apache 36227 17 févr. 11:09 /export/glusterfs/volumePourApache/brick1/brick/data/turlan/files/Documents/Example.odt
[root] # ls


2.13 - Connaître l'état des volumes Gluster


Afin de connaitre l'état des volumes Gluster taper la commande suivante :
[root@arecibo] # gluster volume status
[root] # gluster volume status volumePourApache
Status of volume: volumePourApache
Gluster process								Port	Online	Pid
---------------------------------------------------------------------------------------------------
Brick 172.21.3.74:/export/glusterfs/volumePourApache/brick1/brick 49158 Y	2509
Brick 172.21.3.75:/export/glusterfs/volumePourApache/brick2/brick N/A   N	N/A
Brick 172.21.3.75:/export/glusterfs/volumePourApache/brick1/brick N/A   Y	1804
Brick 172.21.3.74:/export/glusterfs/volumePourApache/brick2/brick 49159 Y	2516
NFS Server on localhost							N/A	N	N/A
Self-heal Daemon on localhost						N/A	Y	2526
NFS Server on 172.21.3.75						N/A	N	N/A
Self-heal Daemon on 172.21.3.75						N/A	Y	1846
 
Task Status of Volume volumePourApache
---------------------------------------------------------------------------------------------------
Task                 : Rebalance           
ID                   : 3878017b-a28f-4617-bcc3-9d8886d777b9
Status               : completed           
 
[root] # 

2.14 - Création d'un volume Gluster Répliqué sur deux serveurs




+------------------------------------------------------------------------------------------------------------------------------+   
| Volume Repliqué                                                                                                              |   
| Gluster Version : 3.6.2                                                                                                      |   
|                                                                                                                              |   
| Nom : mysqlbackup                                                                                                            |
|                                                                                                                              |   
| +---------------------------------------------------------+ +------------------------------------------------------------+   |   
| | Serveur : arecibo                                       | | Serveur : seti                                             |   |
| | IP : 172.21.3.74                                        | | IP : 172.21.3.75                                           |   |
| | FS : /export/glusterfs/volumePourApache/brick1/mysqlbackup | | FS : /export/glusterfs/volumePourApache/brick1/mysqlbackup    |   |
| +---------------------------------------------------------+ +------------------------------------------------------------+   |   
|                                                                                                                              |   
+------------------------------------------------------------|-----------------------------------------------------------------+   
                                                             |
                                                             V
                                  +-------------------------------------------------+   
                                  |                                                 |   
                                  | Serveur : jupiter                               |   
                                  | IP : 172.21.3.36                                |   
                                  |                                                 |   
                                  | Point de montage : /mnt/backup_mysql            |
                                  |                                                 |   
                                  +-------------------------------------------------+   

Pour créer un volume vous devez créer d'abord une arborescense sur votre systeme.
Nous allons commencer par formater les disques en xfs avec des paramètres cohérents avec le chunk raid et en plaçant le log XFS sur /dev/vg00/lvxfssdblog pour sdb et sur /dev/vg00/lvxfssdclog pour sdc.

mkfs.xfs -f -d sunit=256,swidth=512 /dev/sdb1 -l logdev=/dev/vg00/lvxfssdblog,size=521728b
mkfs.xfs -f -d sunit=256,swidth=512 /dev/sdc1 -l logdev=/dev/vg00/lvxfssdclog,size=521728b

Rajouter vos partitions disque sur les deux système d'exploitation Linux (arecibo et seti).
[root@arecibo] # vi /etc/fstab
Idem sur le serveur seti.
[root@seti] # vi /etc/fstab
/dev/sdb1       /export/glusterfs/volumePourApache/brick1  xfs     defaults,logdev=/dev/vg00/lvsdblog,nobarrier,logbufs=8,noatime,nodiratime       0       0
Puis monter les deux nouveaux FileSytems :
[root@arecibo] # mount /export/glusterfs/volumePourApache/brick1
Idem sur le serveur seti.
[root@seti] # mount /export/glusterfs/volumePourApache/brick1
Puis vérifier que le nouveau "FileSystems" sur les deux serveurs.
[root@arecibo] # df -h
[root] # df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/mapper/vg00-lvroot
                      3,0G  1,7G  1,3G  58% /
tmpfs                  64G     0   64G   0% /dev/shm
/dev/sda1             504M   40M  439M   9% /boot
/dev/mapper/vg00-lvvar
                       17G  363M   16G   3% /var
/dev/mapper/vg00-lvvarlog
                      9,9G  4,6G  4,8G  50% /var/log
/dev/sdb1             7,3T   29G  7,3T   1% /export/glusterfs/volumePourApache/brick1
[root] # 
[root@arecibo] # mkdir /export/glusterfs/volumePourApache/brick1/mysqlbackup
Idem sur le serveur seti.
[root@seti] # mkdir /export/glusterfs/volumePourApache/brick1/mysqlbackup
[root@arecibo] # gluster volume create mysqlbackup replica 2 172.21.3.74:/export/glusterfs/volumePourApache/brick1/mysqlbackup 172.21.3.75:/export/glusterfs/volumePourApache/brick1/mysqlbackup
[root] # gluster volume create mysqlbackup replica 2 172.21.3.74:/export/glusterfs/volumePourApache/brick1/mysqlbackup 172.21.3.75:/export/glusterfs/volumePourApache/brick1/mysqlbackup
volume create: mysqlbackup: success: please start the volume to access data
Vérifier le résultat avec la commande Gluster.
[root@arecibo] # gluster volume info mysqlbackup
[root] # gluster volume info mysqlbackup
 
Volume Name: mysqlbackup
Type: Replicate
Volume ID: a9cae806-d687-4338-98af-c9077ed22165
Status: Created
Number of Bricks: 1 x 2 = 2
Transport-type: tcp
Bricks:
Brick1: 172.21.3.74:/export/glusterfs/volumePourApache/brick1/mysqlbackup
Brick2: 172.21.3.75:/export/glusterfs/volumePourApache/brick1/mysqlbackup
[root] # 

Démarrer le volume mysqlbackup.
[root] # gluster volume start mysqlbackup
volume start: mysqlbackup: success
[root] # 
Nous allons maintenant monter le volume sur un serveur client.
[root@jupiter] # vi /etc/fstab
172.21.3.74:/mysqlbackup	/mnt/backup_mysql	glusterfs	rw,suid,dev,exec,auto,nouser,async,_netdev,transport=tcp	0	0
[root@jupiter] # mkdir -p /mnt/backup_mysql
[root@jupiter] # mount /mnt/backup_mysql

Attention !! si vous avez cela, alors installer le client Gluster.
mount: type inconnu de système de fichiers 'glusterfs'
Attention !! si vous avez cela, alors démarrer le volume sur le serveur Gluster.
Mount failed. Please check the log file for more details.
Sinon, vous optennez ceci :

[root] # df -h
Filesystem            Size  Used Avail Use% Mounted on

[..]

172.21.3.74:/mysqlbackup                      7,3T   34G  7,3T   1% /mnt/backup_mysql
[root] # 

On va faire un test.
[root@jupiter] # touch /mnt/backup_mysql/toto

[root] # touch /mnt/backup_mysql/toto
[root] # ls -l /mnt/backup_mysql
total 0
-rw-r--r-- 1 root root 0  1 mars  12:22 toto
[root] # 

2.15 - Redistribuer les données d'un volume Gluster Répliqué sur deux serveurs


[root@arecibo] # gluster volume rebalance volumePourApache status

[root] # gluster volume rebalance volumePourApache status
                                    Node Rebalanced-files          size       scanned      failures       skipped               status   run time in secs
                               ---------      -----------   -----------   -----------   -----------   -----------         ------------     --------------
                               localhost                0        0Bytes             0             0             0            completed               0.00
                             172.21.3.75                0        0Bytes             0             0             0            completed               0.00
volume rebalance: volumePourApache: success: 
[root] # 



2.16 - Arrêt/Relance d'un volume Gluster Répliqué sur deux serveurs


Nous allons observer ce qui se passe au niveau du système lors d'un arrêt/relance d'un volume.

2.16.1 - Arrêt d'un volume Gluster


[root@arecibo] # gluster volume stop mysqlbackup
[root] # gluster volume stop mysqlbackup 
Stopping volume will make its data inaccessible. Do you want to continue? (y/n) y
volume stop: mysqlbackup: success
[root] # 
[root@arecibo] # ps -ef | grep gluster | grep mysqlbackup
[root] # ps -ef | grep gluster | grep mysqlbackup
[root] # 
[root@arecibo] # gluster volume status mysqlbackup
[root] # gluster volume status mysqlbackup 
Volume mysqlbackup is not started
[root] # 

2.16.2 - Démarrage d'un volume Gluster


[root@arecibo] # gluster volume start mysqlbackup
[root] # gluster volume start mysqlbackup 
volume start: mysqlbackup: success
[root] # 
[root@arecibo] # gluster volume status mysqlbackup
[root] # gluster volume status mysqlbackup 
Status of volume: mysqlbackup
Gluster process						Port	Online	Pid
------------------------------------------------------------------------------
Brick 172.21.3.74:/export/glusterfs/volumePourApache/brick1/mysqlbackup						49160	Y	23155
Brick 172.21.3.75:/export/glusterfs/volumePourApache/brick1/mysqlbackup						49161	Y	26168
NFS Server on localhost					N/A	N	N/A
Self-heal Daemon on localhost				N/A	Y	23177
NFS Server on 172.21.3.75				N/A	N	N/A
Self-heal Daemon on 172.21.3.75				N/A	N	N/A
 
Task Status of Volume mysqlbackup
------------------------------------------------------------------------------
There are no active volume tasks
 
[root] #
[root@arecibo] # ps -ef | grep gluster | grep mysqlbackup
[root] # ps -ef | grep gluster | grep mysqlbackup
root     22933     1  0 17:05 ?        00:00:00 /usr/sbin/glusterfsd -s 172.21.3.74 --volfile-id mysqlbackup.172.21.3.74.export-glusterfs-volumePourApache-brick1-mysqlbackup -p /var/lib/glusterd/vols/mysqlbackup/run/172.21.3.74-export-glusterfs-volumePourApache-brick1-mysqlbackup.pid -S /var/run/ce9afa455989e0fdb74a39cd8d2c57ef.socket --brick-name /export/glusterfs/volumePourApache/brick1/mysqlbackup -l /var/log/glusterfs/bricks/export-glusterfs-volumePourApache-brick1-mysqlbackup.log --xlator-option *-posix.glusterd-uuid=656b329a-dd46-4c01-900a-b7083355d3a0 --brick-port 49160 --xlator-option mysqlbackup-server.listen-port=49160
[root] # 


2.17 - Changement d'un disque H.S puis activation avec Gluster


Nous allons resynchroniser les brick gluster après le changement d'un disque dur.
Nous venons de remplacer un disque dur du slot 3 de notre serveur "seti" (172.21.3.75).
Cependant, il est toujours offline au niveau Gluster.
Le changement du disque a eu lieu à 10H50 et voici ce que nous pouvons voir dans le fichier /var/log/messages :
[root@arecibo] # tail -f /var/log/messages

Mar  6 03:12:01 seti rsyslogd: [origin software="rsyslogd" swVersion="5.8.10" x-pid="1577" x-info="http://www.rsyslog.com"] rsyslogd was HUPed
Mar  7 09:40:22 seti wall[23950]: wall: user root broadcasted 1 lines (31 chars)
Mar  7 09:40:49 seti wall[23954]: wall: user root broadcasted 1 lines (46 chars)
Mar  7 09:41:39 seti wall[23983]: wall: user root broadcasted 1 lines (46 chars)
Mar  7 10:50:43 seti kernel: __ratelimit: 5 callbacks suppressed
Mar  7 10:50:43 seti kernel: sd 0:2:3:0: [sdc] Unhandled error code
Mar  7 10:50:43 seti kernel: sd 0:2:3:0: [sdc] Result: hostbyte=DID_BAD_TARGET driverbyte=DRIVER_OK
Mar  7 10:50:43 seti kernel: sd 0:2:3:0: [sdc] CDB: Read(10): 28 00 00 00 00 00 00 00 20 00
Mar  7 10:50:43 seti kernel: __ratelimit: 5 callbacks suppressed
Mar  7 10:50:43 seti kernel: __ratelimit: 8 callbacks suppressed
Mar  7 10:50:43 seti kernel: Buffer I/O error on device sdc, logical block 0
Mar  7 10:50:43 seti kernel: Buffer I/O error on device sdc, logical block 1
Mar  7 10:50:43 seti kernel: Buffer I/O error on device sdc, logical block 2
Mar  7 10:50:43 seti kernel: Buffer I/O error on device sdc, logical block 3
Mar  7 10:50:43 seti kernel: sd 0:2:3:0: [sdc] Unhandled error code
Mar  7 10:50:43 seti kernel: sd 0:2:3:0: [sdc] Result: hostbyte=DID_BAD_TARGET driverbyte=DRIVER_OK
Mar  7 10:50:43 seti kernel: sd 0:2:3:0: [sdc] CDB: Read(10): 28 00 00 00 00 00 00 00 08 00
Mar  7 10:50:43 seti kernel: Buffer I/O error on device sdc, logical block 0
Mar  7 10:50:43 seti kernel: sd 0:2:3:0: [sdc] Unhandled error code
Mar  7 10:50:43 seti kernel: sd 0:2:3:0: [sdc] Result: hostbyte=DID_BAD_TARGET driverbyte=DRIVER_OK
Mar  7 10:50:43 seti kernel: sd 0:2:3:0: [sdc] CDB: Read(10): 28 00 00 00 00 00 00 00 08 00
Mar  7 10:50:43 seti kernel: Buffer I/O error on device sdc, logical block 0
Mar  7 10:50:43 seti kernel: sd 0:2:3:0: [sdc] Unhandled error code
Mar  7 10:50:43 seti kernel: sd 0:2:3:0: [sdc] Result: hostbyte=DID_BAD_TARGET driverbyte=DRIVER_OK
Mar  7 10:50:43 seti kernel: sd 0:2:3:0: [sdc] CDB: Read(10): 28 00 00 00 00 00 00 00 08 00
Mar  7 10:50:43 seti kernel: Buffer I/O error on device sdc, logical block 0
Mar  7 10:50:43 seti kernel: sd 0:2:3:0: [sdc] Unhandled error code
Mar  7 10:50:43 seti kernel: sd 0:2:3:0: [sdc] Result: hostbyte=DID_BAD_TARGET driverbyte=DRIVER_OK
Mar  7 10:50:43 seti kernel: sd 0:2:3:0: [sdc] CDB: Read(10): 28 00 00 00 00 00 00 00 08 00
Mar  7 10:50:43 seti kernel: Buffer I/O error on device sdc, logical block 0
Mar  7 10:50:43 seti kernel: sd 0:2:3:0: [sdc] Unhandled error code
Mar  7 10:50:43 seti kernel: sd 0:2:3:0: [sdc] Result: hostbyte=DID_BAD_TARGET driverbyte=DRIVER_OK
Mar  7 10:50:43 seti kernel: sd 0:2:3:0: [sdc] CDB: Read(10): 28 00 00 00 00 00 00 00 08 00
Mar  7 10:50:43 seti kernel: Buffer I/O error on device sdc, logical block 0
Mar  7 10:50:43 seti kernel: sd 0:2:3:0: [sdc] Unhandled error code
Mar  7 10:50:43 seti kernel: sd 0:2:3:0: [sdc] Result: hostbyte=DID_BAD_TARGET driverbyte=DRIVER_OK
Mar  7 10:50:43 seti kernel: sd 0:2:3:0: [sdc] CDB: Read(10): 28 00 00 00 00 00 00 00 08 00
Mar  7 10:50:43 seti kernel: Buffer I/O error on device sdc, logical block 0
Mar  7 10:50:43 seti kernel: sd 0:2:3:0: [sdc] Unhandled error code
Mar  7 10:50:43 seti kernel: sd 0:2:3:0: [sdc] Result: hostbyte=DID_BAD_TARGET driverbyte=DRIVER_OK
Mar  7 10:50:43 seti kernel: sd 0:2:3:0: [sdc] CDB: Read(10): 28 00 00 00 00 00 00 00 08 00
Mar  7 10:50:43 seti kernel: sd 0:2:3:0: [sdc] Unhandled error code
Mar  7 10:50:43 seti kernel: sd 0:2:3:0: [sdc] Result: hostbyte=DID_BAD_TARGET driverbyte=DRIVER_OK
Mar  7 10:50:43 seti kernel: sd 0:2:3:0: [sdc] CDB: Read(10): 28 00 00 00 00 00 00 00 08 00
Mar  7 10:50:43 seti kernel: sd 0:2:3:0: [sdc] Unhandled error code
Mar  7 10:50:43 seti kernel: sd 0:2:3:0: [sdc] Result: hostby
Puis nous allons voir si le système a bien vu le nouveau disque "/dev/sdc".
[root@arecibo] # ls -l sd*
[root] # ls -l sd*
brw-rw---- 1 root disk 8,  0  7 mars   2016 sda
brw-rw---- 1 root disk 8,  1  7 mars  14:37 sda1
brw-rw---- 1 root disk 8,  2  7 mars   2016 sda2
brw-rw---- 1 root disk 8, 16  7 mars   2016 sdb
brw-rw---- 1 root disk 8, 17  7 mars   2016 sdb1
brw-rw---- 1 root root 8, 32  7 mars  15:20 sdc
[root] # 
Bien que le disque est été placé sur le controlleur "/dev/sdc" allons jeter un coup d'oeil au disque qui fonctionne.
Ce qui nous permettra de voir comment il a été taillé.
Comme la partition a été créé à l'origine avec GPT nous utiliserons "gdisk" au lieu de "fdisk".
[root@arecibo] # gdisk -l /dev/sdb
[root] # gdisk -l /dev/sdb
GPT fdisk (gdisk) version 0.8.2

Partition table scan:
  MBR: protective
  BSD: not present
  APM: not present
  GPT: present

Found valid GPT with protective MBR; using GPT.
Disk /dev/sdb: 15624998912 sectors, 7.3 TiB
Logical sector size: 512 bytes
Disk identifier (GUID): 54A7FB7B-ECCD-4400-AB4D-0E9EF87AE002
Partition table holds up to 128 entries
First usable sector is 34, last usable sector is 15624998878
Partitions will be aligned on 2048-sector boundaries
Total free space is 2014 sectors (1007.0 KiB)

Number  Start (sector)    End (sector)  Size       Code  Name
   1            2048     15624998878   7.3 TiB     8300  Linux filesystem
[root] # 

2.17.1 - Visualisation des disques physiques


Nous voyons dans l'exemple ci-dessous que nous avons trois disques (disk0, disk1 et disk2).
[root@seti] # lshw -class disk -class storage
[root] # lshw -class disk -class storage
  *-storage               
       description: RAID bus controller
       produit: MegaRAID SAS 2208 [Thunderbolt]
       fabriquant: LSI Logic / Symbios Logic
       identifiant matériel: 0
       information bus: pci@0000:0f:00.0
       nom logique: scsi0
       version: 05
       bits: 64 bits
       horloge: 33MHz
       fonctionnalités: storage pm pciexpress vpd msi msix bus_master cap_list rom
       configuration: driver=megaraid_sas latency=0
       ressources: irq:40 portE/S:2f00(taille=256) mémoire:a84bc000-a84bffff mémoire:a84c0000-a84fffff mémoire:a8100000-a811ffff(prefetchable)
     *-disk:0
          description: SCSI Disk
          produit: ServeRAID F5115
          fabriquant: IBM
[..]

[root] # 
[root@seti] # lshw -class disk
[root] # lshw -class disk
  *-disk:0                
       description: SCSI Disk
       produit: ServeRAID F5115
       fabriquant: IBM
       identifiant matériel: 2.0.0
       information bus: scsi@0:2.0.0
       nom logique: /dev/sda
       version: 3.30
       numéro de série: 00f734290f68c1eb1b9077ba07b00506
       taille: 46GiB (49GB)
       fonctionnalités: partitioned partitioned:dos
       configuration: ansiversion=5 sectorsize=4096 signature=0007f50b
  *-disk:1
       description: SCSI Disk
       produit: ServeRAID F5115
       fabriquant: IBM
       identifiant matériel: 2.2.0
       information bus: scsi@0:2.2.0
       nom logique: /dev/sdb
       version: 3.30
       numéro de série: 00eb96131027735b1c9077ba07b00506
       taille: 7450GiB (7999GB)
       fonctionnalités: gpt-1.00 partitioned partitioned:gpt
       configuration: ansiversion=5 guid=54a7fb7b-eccd-4400-ab4d-0e9ef87ae002 sectorsize=4096
  *-disk:2
       description: SCSI Disk
       produit: ServeRAID F5115
       fabriquant: IBM
       identifiant matériel: 2.3.0
       information bus: scsi@0:2.3.0
       nom logique: /dev/sdc
       version: 3.30
       numéro de série: 00858e7e89389a7a1e9077ba07b00506
       taille: 7450GiB (7999GB)
       configuration: ansiversion=5 sectorsize=4096

2.17.2 - Création de la partition avec GDISK


Pour créer la partition "/dev/sdc1" sur le nouveau disque, nous allons utiliser "gdisk".
[root@seti] # gdisk
[root] # gdisk
GPT fdisk (gdisk) version 0.8.2

Type device filename, or press  to exit: /dev/sdc
Partition table scan:
  MBR: not present
  BSD: not present
  APM: not present
  GPT: not present

Creating new GPT entries.

Command (? for help): ?
b	back up GPT data to a file
c	change a partition's name
d	delete a partition
i	show detailed information on a partition
l	list known partition types
n	add a new partition
o	create a new empty GUID partition table (GPT)
p	print the partition table
q	quit without saving changes
r	recovery and transformation options (experts only)
s	sort partitions
t	change a partition's type code
v	verify disk
w	write table to disk and exit
x	extra functionality (experts only)
?	print this menu

Command (? for help): n
Partition number (1-128, default 1): 
First sector (34-15624998878, default = 2048) or {+-}size{KMGTP}: 
Last sector (2048-15624998878, default = 15624998878) or {+-}size{KMGTP}: 
Current type is 'Linux filesystem'
Hex code or GUID (L to show codes, Enter = 8300): 
Changed type of partition to 'Linux filesystem'

Command (? for help): w

Final checks complete. About to write GPT data. THIS WILL OVERWRITE EXISTING
PARTITIONS!!

Do you want to proceed? (Y/N): Y
OK; writing new GUID partition table (GPT).
The operation has completed successfully.
[root] # 

2.17.3 - Création du File System avec mkfs.xfs


Nous allons maintenant créer un File System avec la commande "mkfs.xfs".
Pour se faire allons voir ou faire notre logdev sur vg00.
[root@seti] # ls -l /dev/vg00/
[root] # ls -l /dev/vg00/
total 0
lrwxrwxrwx 1 root root 7 15 mars  10:08 lvapp -> ../dm-4
lrwxrwxrwx 1 root root 7 15 mars  10:08 lvroot -> ../dm-0
lrwxrwxrwx 1 root root 7 15 mars  10:08 lvsdblog -> ../dm-5
lrwxrwxrwx 1 root root 7 15 mars  10:08 lvsdclog -> ../dm-6
lrwxrwxrwx 1 root root 7 15 mars  10:08 lvswap -> ../dm-1
lrwxrwxrwx 1 root root 7 15 mars  10:08 lvvar -> ../dm-2
lrwxrwxrwx 1 root root 7 15 mars  10:08 lvvarlog -> ../dm-3
-(mar. mars 15 10:37:30)--(PROD nuapgsd004:~)-
Maintenant nous pouvons créer le FS.
[root@seti] # mkfs.xfs -f -d sunit=256,swidth=512 /dev/sdc1 -l logdev=/dev/vg00/lvsdclog,size=521728b
[root] # mkfs.xfs -f -d sunit=256,swidth=512 /dev/sdc1 -l logdev=/dev/vg00/lvsdclog,size=521728b
mkfs.xfs: Specified data stripe unit 256 is not the same as the volume stripe unit 8
meta-data=/dev/sdc1              isize=256    agcount=32, agsize=61035168 blks
         =                       sectsz=4096  attr=2, projid32bit=0
data     =                       bsize=4096   blocks=1953124603, imaxpct=5
         =                       sunit=32     swidth=64 blks
naming   =version 2              bsize=4096   ascii-ci=0
log      =/dev/vg00/lvsdclog     bsize=4096   blocks=521728, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
[root] # 

2.17.4 - Montage du File System avec mkfs.xfs


N'oubliez pas de vérifier le point de montage du FS dans "/etc/fstab".
[root@seti] # vi /etc/fstab
/dev/sdc1 	/export/glusterfs/volumePourApache/brick2	xfs	defaults,logdev=/dev/vg00/lvsdclog,nobarrier,logbufs=8,noatime,nodiratime	0	0
Puis, monter le FS avec la ligne de commande suivante :
[root@seti] # mount /export/glusterfs/volumePourApache/brick2
Puis vérifier.
[root@seti] # df -k
[root] # df -k
Filesystem            1K-blocks     Used  Available Use% Mounted on
/dev/mapper/vg00-lvroot
                        3096336  2389920     549132  82% /
tmpfs                  66066900        0   66066900   0% /dev/shm
/dev/sda1                516040    40776     449052   9% /boot
/dev/mapper/vg00-lvvar
                       17319804   424676   16015308   3% /var
/dev/mapper/vg00-lvvarlog
                       10321208   526880    9270040   6% /var/log
/dev/sdb1            7812498412 35749704 7776748708   1% /export/glusterfs/volumePourApache/brick1
/dev/sdc1            7812498412    34208 7812464204   1% /export/glusterfs/volumePourApache/brick2
[root] #
[root] # gluster volume sync 172.21.3.74 all
Sync volume may make data inaccessible while the sync is in progress. Do you want to continue? (y/n) y
volume sync: success
[root] # 
[root] # grep 172.21.3.75 /var/lib/glusterd/peers/*
hostname1=172.21.3.75
[root] # 
[root] # gluster volume start volumePourApache
volume start: volumePourApache: failed: Failed to get extended attribute trusted.glusterfs.volume-id for brick dir /export/glusterfs/volumePourApache/brick2/brick. Reason : Aucune donnée disponible
[root] # 
[root] # gluster volume start volumePourApache force
volume start: volumePourApache: success
[root] # 
[root] # gluster volume status volumePourApache
Status of volume: volumePourApache
Gluster process						Port	Online	Pid
------------------------------------------------------------------------------
Brick 172.21.3.74:/export/glusterfs/volumePourApache/brick1/brick							49158	Y	31449
Brick 172.21.3.75:/export/glusterfs/volumePourApache/brick2/brick							49166	Y	2931
Brick 172.21.3.75:/export/glusterfs/volumePourApache/brick1/brick							49167	Y	2942
Brick 172.21.3.74:/export/glusterfs/volumePourApache/brick2/brick							49159	Y	1732
NFS Server on localhost					N/A	N	N/A
Self-heal Daemon on localhost				N/A	Y	2962
NFS Server on 172.21.3.74				N/A	N	N/A
Self-heal Daemon on 172.21.3.74				N/A	Y	1758
 
Task Status of Volume volumePourApache
------------------------------------------------------------------------------
Task                 : Rebalance           
ID                   : 3878017b-a28f-4617-bcc3-9d8886d777b9
Status               : completed           
 
[root] # 
[root] # while true ; do df -h /export/glusterfs/volumePourApache/brick2 ; sleep 30; done
Filesystem      Size  Used Avail Use% Mounted on
/dev/sdc1       7,3T   75M  7,3T   1% /export/glusterfs/volumePourApache/brick2
Filesystem      Size  Used Avail Use% Mounted on
/dev/sdc1       7,3T   79M  7,3T   1% /export/glusterfs/volumePourApache/brick2
Filesystem      Size  Used Avail Use% Mounted on
/dev/sdc1       7,3T   79M  7,3T   1% /export/glusterfs/volumePourApache/brick2
Filesystem      Size  Used Avail Use% Mounted on
/dev/sdc1       7,3T   79M  7,3T   1% /export/glusterfs/volumePourApache/brick2
Filesystem      Size  Used Avail Use% Mounted on
/dev/sdc1       7,3T   79M  7,3T   1% /export/glusterfs/volumePourApache/brick2
Filesystem      Size  Used Avail Use% Mounted on
/dev/sdc1       7,3T   79M  7,3T   1% /export/glusterfs/volumePourApache/brick2
^C
[root] # 
[root] # gluster volume heal volumePourApache full
Commit failed on 172.21.3.74. Please check log file for details.
[root] #
[root] # gluster volume rebalance volumePourApache start
volume rebalance: volumePourApache: success: Initiated rebalance on volume volumePourApache.
Execute "gluster volume rebalance  status" to check status.
ID: 53db5882-6ee1-4ba5-aa47-a9d18a5259e5
[root] # 
[root] # while true; do df -hP /export/glusterfs/volumePourApache/brick2 | grep -v Filesystem ; sleep 2; done
/dev/sdc1       7,3T  464M  7,3T   1% /export/glusterfs/volumePourApache/brick2
/dev/sdc1       7,3T  470M  7,3T   1% /export/glusterfs/volumePourApache/brick2
/dev/sdc1       7,3T  488M  7,3T   1% /export/glusterfs/volumePourApache/brick2
/dev/sdc1       7,3T  509M  7,3T   1% /export/glusterfs/volumePourApache/brick2
/dev/sdc1       7,3T  542M  7,3T   1% /export/glusterfs/volumePourApache/brick2
^C
[root] # 
[root] # gluster volume heal volumePourApache info
Brick arecibo:/export/glusterfs/volumePourApache/brick1/brick/
/home/www/files/docs/asterisk-2.4.2.6/info.doc 
/home/www/files/docs/asterisk-2.4.2.6/schema.doc 

[..]


2.17.2 - Montage de la partition du disque changé


Pour rappel voici les point de montage de nos disques Gluster.
Nous voyons que la brique "brick2" est bien su le disque "sdc1".
[root@seti] # cat /etc/fstab
[root] # cat /etc/fstab

[..]

/dev/cdrom	/mnt/cdrom	auto	ro,noauto,user,exec	0	0
/dev/sdb1 	/export/glusterfs/volumePourApache/brick1	xfs	defaults,logdev=/dev/vg00/lvsdblog,nobarrier,logbufs=8,noatime,nodiratime	0	0
/dev/sdc1 	/export/glusterfs/volumePourApache/brick2	xfs	defaults,logdev=/dev/vg00/lvsdclog,nobarrier,logbufs=8,noatime,nodiratime	0	0
[root] # 

2.17.3 - Montage de la partition


Si nous essayons de monter la partition, voici ce qui se passe.
[root@seti] # mount /export/glusterfs/volumePourApache/brick2
[root] # mount /export/glusterfs/volumePourApache/brick2
mount: périphérique spécial /dev/sdc1 n'existe pas
[root] # 
C'est normal, il va falloir ....

2.17.4 - Visualisation des volumes Gluster


Nous voyons dans l'exemple ci-dessous que nous avons trois disques (disk0, disk1 et disk2).
Voici l'état du volume avant une action de notre part.
Nous voyons que la "brick2" est offline.
[root@seti] # gluster volume status volumePourApache
[root] # gluster volume status volumePourApache 
Status of volume: volumePourApache
Gluster process						Port	Online	Pid
------------------------------------------------------------------------------
Brick 172.21.3.74:/export/glusterfs/volumePourApache/brick1/brick							49158	Y	2509
Brick 172.21.3.75:/export/glusterfs/volumePourApache/brick2/brick							N/A	N	N/A
Brick 172.21.3.75:/export/glusterfs/volumePourApache/brick1/brick							N/A	Y	1804
Brick 172.21.3.74:/export/glusterfs/volumePourApache/brick2/brick							49159	Y	2516
NFS Server on localhost					N/A	N	N/A
Self-heal Daemon on localhost				N/A	Y	26187
NFS Server on 172.21.3.74				N/A	N	N/A
Self-heal Daemon on 172.21.3.74				N/A	Y	23177
 
Task Status of Volume volumePourApache
------------------------------------------------------------------------------
Task                 : Rebalance           
ID                   : 3878017b-a28f-4617-bcc3-9d8886d777b9
Status               : completed           
 
[root] # 
Nous allons lancer la commande ci-dessous pour remettre online la brick Gluster.
[root@seti] # gluster volume start volumePourApache force
[root] # gluster volume start volumePourApache force
volume start: volumePourApache: success
[root] #
Puis nous relançons la commande "status" et nous voyons que la brick2 est de nouveau online
[root@seti] # gluster volume status volumePourApache
[root] # gluster volume status volumePourApache 
Status of volume: volumePourApache
Gluster process						Port	Online	Pid
------------------------------------------------------------------------------
Brick 172.21.3.74:/export/glusterfs/volumePourApache/brick1/brick							49158	Y	2509
Brick 172.21.3.75:/export/glusterfs/volumePourApache/brick2/brick							49160	Y	24823
Brick 172.21.3.75:/export/glusterfs/volumePourApache/brick1/brick							N/A	Y	1804
Brick 172.21.3.74:/export/glusterfs/volumePourApache/brick2/brick							49159	Y	2516
NFS Server on localhost					N/A	N	N/A
Self-heal Daemon on localhost				N/A	Y	24842
NFS Server on 172.21.3.74				N/A	N	N/A
Self-heal Daemon on 172.21.3.74				N/A	Y	14763
 
Task Status of Volume volumePourApache
------------------------------------------------------------------------------
Task                 : Rebalance           
ID                   : 3878017b-a28f-4617-bcc3-9d8886d777b9
Status               : completed           
 
[root] #



2.18 - Online/Offline d'une brick avec Gluster


Afin de tester, le crash d'une "brick" sur l'un des deux serveurs, nous allons faire un kill sur une brick.
Nous pouvons voir que la "brick" du serveur "172.21.3.74" est offline.
[root@arecibo] # gluster volume status mysqlbackup

[root] # gluster volume status mysqlbackup
Status of volume: mysqlbackup
Gluster process						Port	Online	Pid
------------------------------------------------------------------------------
Brick 172.21.3.74:/export/glusterfs/volumePourApache/brick1/mysqlbackup						N/A	N	23140
Brick 172.21.3.75:/export/glusterfs/volumePourApache/brick1/mysqlbackup						49161	Y	8748
NFS Server on localhost					N/A	N	N/A
Self-heal Daemon on localhost				N/A	Y	23627
NFS Server on 172.21.3.75				N/A	N	N/A
Self-heal Daemon on 172.21.3.75				N/A	Y	11338
 
Task Status of Volume mysqlbackup
------------------------------------------------------------------------------
There are no active volume tasks
 
[root] # 
Puis pour mettre la brick sur les deux serveurs Online taper la commande suivante sur le serveur Offline :
[root@seti] # gluster volume status mysqlbackup
[root] # gluster volume start mysqlbackup force
volume start: mysqlbackup: success
[root] #
Vous pouvez ensuite voir le résultat :
[root@seti] # gluster volume status mysqlbackup
[root] # gluster volume status mysqlbackup
Status of volume: mysqlbackup
Gluster process						Port	Online	Pid
------------------------------------------------------------------------------
Brick 172.21.3.74:/export/glusterfs/volumePourApache/brick1/mysqlbackup						49160	Y	23661
Brick 172.21.3.75:/export/glusterfs/volumePourApache/brick1/mysqlbackup						49161	Y	8748
NFS Server on localhost					N/A	N	N/A
Self-heal Daemon on localhost				N/A	Y	23683
NFS Server on 172.21.3.75				N/A	N	N/A
Self-heal Daemon on 172.21.3.75				N/A	Y	11373
 
Task Status of Volume mysqlbackup
------------------------------------------------------------------------------
There are no active volume tasks
 
[root] #