Cet article explique le processus d'installation et de configuration de CentOS 7 avec GlusterFS sur AArch64. GlusterFS est un système de fichiers open source et évolutif qui combine plusieurs serveurs de stockage utilisant Infiband ou TCP et constitue un grand système de fichiers réseau.
Exigences
Pour configurer GlusterFS, vous avez besoin de deux serveurs ou plus (AArch64) avec CentOS 7 installé. Les serveurs peuvent être physiques ou virtuels. J'utilise ici deux serveurs virtuels et je définis leurs noms d'hôte comme 'gfs1' et 'gfs2'. La connectivité réseau doit être active dans les deux. Chaque nœud doit avoir un périphérique de stockage. Dans les exemples utilisés dans cet article, des disques de stockage virtuels de 2 Go chacun sur les nœuds sont utilisés.
Ajoutez l'adresse IP et le nom d'hôte des serveurs à /etc/hosts dans les deux nœuds.
45.79.161.123 gfs1
45.79.174.123 gfs2
Installation de GlusterFS
Avant de procéder à l'installation, nous devons activer les référentiels EPEL (Exta Packages for Enterprise Linux) et GlusterFS sur les deux serveurs pour résoudre les dépendances externes au moment de l'installation. Si vous avez activé uniquement le référentiel GlusterFS et non le référentiel EPEL, il est probable que vous rencontriez le message d'erreur suivant lors de l'installation de glusterfs-server :
Error: Package: glusterfs-server-3.7.0-2.el7.x86_64 (glusterfs-epel)
Requires: liburcu-cds.so.1()(64bit)
Error: Package: glusterfs-server-3.7.0-2.el7.x86_64 (glusterfs-epel)
Requires: liburcu-bp.so.1()(64bit)
Activation du référentiel EPEL dans CentOS :
Utilisez wget pour récupérer le fichier requis et installez-le à l'aide de rpm.
[root@gfs1 ~]# wget http://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-5.noarch.rpm
--2015-05-26 10:35:33-- http://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-5.noarch.rpm
Resolving dl.fedoraproject.org (dl.fedoraproject.org)... 209.132.181.24, 209.132.181.25, 209.132.181.23, ...
Connecting to dl.fedoraproject.org (dl.fedoraproject.org)|209.132.181.24|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 14524 (14K) [application/x-rpm]
Saving to: epel-release-7-5.noarch.rpm
100%[======================================>] 14,524 --.-K/s in 0.06s
2015-05-26 10:35:33 (239 KB/s) - ˜epel-release-7-5.noarch.rpm saved [14524/14524]
[root@localhost ~]# rpm -ivh epel-release-7-5.noarch.rpm
warning: epel-release-7-5.noarch.rpm: Header V3 RSA/SHA256 Signature, key ID 352c64e5: NOKEY
Preparing... ################################# [100%]
Updating / installing...
1:epel-release-7-5 ################################# [100%]
Activation du dépôt GlusterFS :
[root@gfs1 ~]# wget -P /etc/yum.repos.d http://download.gluster.org/pub/gluster/glusterfs/LATEST/EPEL.repo/glusterfs-epel.repo
--2015-05-26 10:37:49-- http://download.gluster.org/pub/gluster/glusterfs/LATEST/EPEL.repo/glusterfs-epel.repo
Resolving download.gluster.org (download.gluster.org)... 50.57.69.89
Connecting to download.gluster.org (download.gluster.org)|50.57.69.89|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 1055 (1.0K) [text/plain]
Saving to: /etc/yum.repos.d/glusterfs-epel.repo
100%[======================================>] 1,055 --.-K/s in 0s
2015-05-26 10:37:49 (81.2 MB/s) - /etc/yum.repos.d/glusterfs-epel.repo saved [1055/1055]
Suivez les étapes mentionnées ci-dessous sur les deux serveurs :
Installez glusterfs sur les deux :
[root@gfs1 ~]# yum install glusterfs-server
Maintenant, démarrez le démon glusterfs :
root@gfs1 ~]# service glusterd start
Redirecting to /bin/systemctl start glusterd.service
Vérifiez si le service a démarré avec succès :
[root@gfs1 ~]# service glusterd status
Redirecting to /bin/systemctl status glusterd.service
glusterd.service - GlusterFS, a clustered file-system server
Loaded: loaded (/usr/lib/systemd/system/glusterd.service; disabled)
Active: active (running) since Tue 2015-05-26 10:42:08 UTC; 38s ago
Process: 13418 ExecStart=/usr/sbin/glusterd -p /var/run/glusterd.pid (code=exited, status=0/SUCCESS)
Main PID: 13419 (glusterd)
CGroup: /system.slice/glusterd.service
13419 /usr/sbin/glusterd -p /var/run/glusterd.pid
May 26 10:42:08 localhost.localdomain systemd[1]: Started GlusterFS, a cluste...
Hint: Some lines were ellipsized, use -l to show in full.
Désactivez SELinux, s'il est activé, en modifiant « SELINUX=disabled » ou « SELINUX=permissive » dans le fichier /etc/sysconfig/selinux.
Ensuite, videz les iptables.
[root@gfs1 ~]# iptables -F
Maintenant, créez des partitions identiques sur les deux nœuds. J'utilise ici la partition /dev/xvdc avec une taille de 2 Go.
fdisk /dev/xvdc
Créez une nouvelle partition en utilisant l'option 'n'. Choisissez l'option 'p' pour la partition principale, puis suivez les options par défaut. Lorsque vous avez terminé, sélectionnez 'w' pour enregistrer les données sur le disque et quitter.
Créez un système de fichiers sur la partition nouvellement créée :
mkfs.ext4 /dev/xvdc1
Montez-le sur un répertoire appelé /data/brick :
[root@gfs1 ~]# mkdir -p /data/brick
[root@gfs1 ~]# mount /dev/xvdc1 /data/brick
Ajoutez ceci à l'entrée fstab pour conserver le montage après le redémarrage.
[root@gfs1 ~]# echo "/dev/xvdc1 /data/brick ext4 defaults 0 0" >> /etc/fstab
Maintenant, nous devons configurer le pool de confiance.
Configuration
Nous devons créer un pool de stockage de confiance à partir des serveurs gluster qui fournissent les briques pour les volumes.
Exécutez la commande ci-dessous sur le premier serveur :
[root@gfs1 ~]# gluster peer probe gfs2
peer probe: success.
Exécuter sur le second serveur :
[root@gfs2 ~]# gluster peer probe gfs1
peer probe: success.
Vérifiez le pool de stockage :
[root@gfs1 ~]# gluster pool list
UUID Hostname State
4d1d974d-4c75-424c-a788-7f0e71002e02 gfs2 Connected
473b1bc5-b8c0-4cea-ac86-568a77d0edf0 localhost Connected
Configuration du volume GlusterFS :
Pour configurer le volume, il suffit d'exécuter les commandes ci-dessous sur un seul des serveurs. J'utilise le premier serveur (gfs1) ici.
[root@gfs1 ~]# gluster volume status
No volumes present
Je crée un volume répliqué dans cet exemple. Il offre une disponibilité et une fiabilité élevées. Pour plus de détails sur les différents types de volumes, veuillez consulter la page de la communauté gluster.
[root@gfs1 ~]# mkdir /data/brick/gvol0
[root@gfs1 ~]# gluster volume create gvol0 replica 2 gfs1:/data/brick/gvol0 gfs2:/data/brick/gvol0
volume create: gvol0: success: please start the volume to access data.
Démarrer le volume nouvellement créé
[root@localhost ~]# gluster volume start gvol0
volume start: gvol0: success
Vérifiez les détails :
[root@localhost ~]# gluster volume info
Volume Name: gvol0
Type: Replicate
Volume ID: 4a61822d-75cf-402b-bad4-19ae57626673
Status: Started
Number of Bricks: 1 x 2 = 2
Transport-type: tcp
Bricks:
Brick1: gfs1:/data/brick/gvol0
Brick2: gfs2:/data/brick/gvol0
Options Reconfigured:
performance.readdir-ahead: on
Oui, vous y êtes presque ! Il vous suffit de monter le volume nouvellement créé sur n'importe quel point de montage et de commencer à l'utiliser.
[root@gfs1 ~]# mount -t glusterfs gfs1:/gvol0 /mnt
[root@gfs2 ~]# mount -t glusterfs gfs1:/gvol0 /mnt
Copiez certaines données sur le volume monté à partir de n'importe quel serveur et vérifiez qu'elles sont également accessibles à partir de l'autre serveur.
[root@gfs1 ~]# cp /var/log/yum.log /mnt
[root@gfs2 mnt]# ls
yum.log
Conclusion
Toutes nos félicitations! Vous avez terminé la configuration de GlusterFS sur votre système CentOS7. Ce point de montage agit désormais comme un système de fichiers unique qui peut être utilisé pour créer, modifier ou supprimer des fichiers de l'un des nœuds. L'ensemble du processus d'installation et de configuration est assez simple et ne prend pas beaucoup de temps. Si vous souhaitez des ressources supplémentaires sur GlusterFS, vous pouvez consulter gluster.org