GNU/Linux >> Tutoriels Linux >  >> Linux

Démarrer avec GlusterFS - considérations et installation

Cet article est mis à jour pour couvrir l'installation de GlusterFS® 7 sur CentOS® 7 et Ubuntu® 18.04. Tout le travail original dans ce document est le même, à l'exception de l'étape où vous créez le volume avec la réplique mot-clé.

Avant de commencer à utiliser GlusterFS, vous devez décider du type de volume dont vous avez besoin pour votre environnement. Les méthodes suivantes sont utilisées le plus souvent pour obtenir des résultats différents.

Volume répliqué

Ce type de volume permet la réplication de fichiers sur plusieurs briques. C'est le meilleur choix pour les environnements nécessitant une haute disponibilité, une haute fiabilité et un stockage évolutif. Ce type de volume fonctionne bien si vous prévoyez de monter vous-même le volume GlusterFS, par exemple, en tant que racine du document du serveur Web (/var/www ) ou similaire où tous les fichiers doivent résider sur ce nœud. La valeur transmise à réplica est le même nombre de nœuds dans le volume.

Les fichiers sont copiés sur chaque brique du volume, comme une matrice redondante de disques indépendants (RAID-1). Cependant, vous pouvez avoir trois briques ou plus ou un nombre impair de briques. L'espace utilisable correspond à la taille d'une brique et tous les fichiers écrits sur une brique sont répliqués sur toutes les autres. Les volumes de ce type offrent également des performances de lecture améliorées dans la plupart des environnements et sont le type de volumes le plus couramment utilisé lorsque les clients sont externes aux nœuds GlusterFS eux-mêmes.

Volume distribué-répliqué

Semblable à un RAID-10, un nombre pair de briques doit être utilisé. L'espace utilisable est la taille des briques combinées transmises à la réplique évaluer. Par exemple, s'il y a quatre briques de 20 gigaoctets (Go) et vous passez réplique 2 à la création, vos fichiers sont distribués sur deux nœuds (40 Go) et répliqués sur deux nœuds. Avec six briques de 20 Go et réplique 3 , vos fichiers sont distribués sur trois nœuds (60 Go) et répliqués sur trois nœuds. Si vous avez utilisé le réplica 2, ils sont ensuite distribués sur deux nœuds (40 Go) et répliqués sur quatre nœuds par paires. Cette distribution et cette réplication sont utilisées lorsque vos clients sont externes au cluster, et non des auto-montages locaux.

Prérequis

  • Deux serveurs ou plus avec stockage séparé. Les exemples de cet article sont basés sur les serveurs CentOS 7 et Ubuntu 18.04.
  • Un réseau privé entre les serveurs. Les exemples de cet article utilisent 192.168.0.0/24 .

Configuration de la compilation

Le build décrit dans ce document utilise la configuration suivante :

  • Quatre images de serveur Rackspace Cloud avec un /dev/xvde partition prête à l'emploi pour chaque brique
  • Un réseau privé cloud sur 192.168.0.0/24 pour la communication GlusterFS
  • GlusterFS 7.1 installé à partir du référentiel de packages du fournisseur

Préparation des serveurs

Effectuez la configuration et les installations suivantes pour préparer les serveurs :

  1. Configurer /etc/hosts .
  2. Installez les mises à jour du système d'exploitation (OS).
  3. Installez le logiciel GlusterFS.
  4. Configurer l'accès au réseau.
  5. Connectez les nœuds GlusterFS.

Configurer /etc/hosts pour la communication intra-nœud

Au lieu d'utiliser DNS, préparez /etc/hosts sur chaque serveur et assurez-vous que les serveurs peuvent communiquer entre eux. Tous les serveurs ont le nom glusterN comme nom d'hôte, utilisez donc glusN pour la couche de communication privée entre les serveurs.

# vi /etc/hosts
192.168.0.1  glus-01
192.168.0.2  glus-02
192.168.0.3  glus-03
192.168.0.4  glus-04

# ping -c2 glus-01; ping -c2 glus-02;  ping -c2 glus-03;  ping -c2 glus-04

Installer des packages

Exécutez les commandes de cette section pour effectuer les étapes suivantes :

  1. Installer les mises à jour du système d'exploitation.
  2. Installez le référentiel GlusterFS et les packages GlusterFS.

CentOS

yum update -y
yum install -y centos-release-gluster7
yum install -y glusterfs-server

Système d'exploitation Ubuntu

Le référentiel Ubuntu par défaut a GlusterFS 3.13.2 installé. Utilisez les commandes suivantes pour installer 7.1 :

apt update
apt upgrade -y
add-apt-repository -y ppa:gluster/glusterfs-7
apt install -y glusterfs-server

Configurer l'accès au réseau

CentOS

Utilisez les commandes suivantes pour autoriser le trafic Gluster entre vos nœuds et autoriser les montages client :

firewall-cmd --add-service=glusterfs
firewall-cmd --add-service=glusterfs --permanent

Système d'exploitation Ubuntu

Utilisez les commandes suivantes pour autoriser tout le trafic sur votre segment de réseau privé afin de faciliter la communication Gluster :

ufw enable
ufw allow from 192.168.0.0/24

Préparer les briques

Exécutez les commandes de cette section pour effectuer les étapes suivantes :

  1. Périphériques de bloc de partition.
  2. Créer la base du gestionnaire de volumes logiques (LVM).
  3. Préparez les briques de volume.

Les briques sous-jacentes sont un système de fichiers standard et un point de montage. Montez chaque brique de manière à décourager tout utilisateur de changer de répertoire et d'écrire lui-même dans les briques sous-jacentes.

Avertissement : Écrire directement sur une brique corrompt le volume.

Les briques doivent être uniques par nœud et il doit y avoir un répertoire dans le point de montage à utiliser lors de la création de volume. Tenter de créer un volume répliqué en utilisant le niveau supérieur des points de montage entraîne une erreur avec des instructions pour utiliser un sous-répertoire.

Tous les nœuds

parted -s -- /dev/xvde mktable gpt
parted -s -- /dev/xvde mkpart primary 2048s 100%
parted -s -- /dev/xvde set 1 lvm on
pvcreate /dev/xvde1
vgcreate vgglus-01 /dev/xvde1
lvcreate -l 100%VG -n gbrick1 vgglus-01
mkfs.xfs /dev/vgglus-01/gbrick1
echo '/dev/vgglus-01/gbrick1 /var/lib/gvol0 xfs defaults 0 0' >> /etc/fstab
mkdir /var/lib/gvol0
mount /var/lib/gvol0
  • glu-01

     mkdir /var/lib/gvol0/brick1
    
  • glu-02

     mkdir /var/lib/gvol0/brick2
    
  • glu-03

     mkdir /var/lib/gvol0/brick3
    
  • glu-04

     mkdir /var/lib/gvol0/brick4
    

Configurer GlusterFS

Suivez les étapes ci-dessous pour exécuter la configuration de GlusterFS.

Démarrer le démon glusterfsd

Vous pouvez redémarrer le démon au moment de l'exécution en utilisant les commandes suivantes :

systemctl enable glusterd
systemctl start glusterd

Créer un groupe de pairs

Un groupe de pairs est appelé pool de stockage de confiance dans GlusterFS.

  • glu-01

    gluster peer probe glus-02
    gluster peer probe glus-03
    gluster peer probe glus-04
    gluster peer status
    
  • glu-02

    gluster peer status
    
  • glu-03

    gluster peer status
    
  • glu-04

    gluster peer status
    

Vous pouvez maintenant vérifier l'état de votre nœud et du pool de serveurs gluster :

[root@gluster1 ~]# gluster pool list
UUID	                				Hostname	State
734aea4c-fc4f-4971-ba3d-37bd5d9c35b8	glus-04   	Connected
d5c9e064-c06f-44d9-bf60-bae5fc881e16	glus-03   	Connected
57027f23-bdf2-4a95-8eb6-ff9f936dc31e	glus-02   	Connected
e64c5148-8942-4065-9654-169e20ed6f20	localhost	Connected

Créer le volume

Par défaut, glusterd NFS autorise la lecture/écriture globale lors de la création du volume, vous devez donc configurer des restrictions d'autorisation de base uniquement pour le sous-réseau privé. glusterd démarre automatiquement NFSd sur chaque serveur et exporte le volume via celui-ci à partir de chacun des nœuds. La raison de ce comportement est que pour utiliser le système de fichiers client natif dans l'espace utilisateur (FUSE) pour monter le volume sur les clients, les clients doivent exécuter exactement la même version des packages GlusterFS. Si les versions sont différentes, il pourrait y avoir des différences dans les algorithmes de hachage utilisés par les serveurs et les clients, et les clients ne pourront pas se connecter.

Volume répliqué

L'exemple suivant crée une réplication sur les quatre nœuds. Chaque nœud contient une copie de toutes les données et la taille du volume correspond à la taille d'une seule brique. Notez que la sortie affiche 1 x 4 = 4 .

Un seul nœud :

 gluster volume create gvol0 replica 4 transport tcp \
 glus-01:/var/lib/gvol0/brick1 \
 glus-02:/var/lib/gvol0/brick2 \
 glus-03:/var/lib/gvol0/brick3 \
 glus-04:/var/lib/gvol0/brick4
 gluster volume start gvol0

[root@gluster1 ~]# gluster volume info gvol0

Volume Name: gvol0
Type: Replicate
Volume ID: 8d12cb5a-77ad-43a3-bdd1-ab48405ff1da
Status: Started
Snapshot Count: 0
Number of Bricks: 1 x 4 = 4
Transport-type: tcp
Bricks:
Brick1: glus-01:/var/lib/gvol0/brick1
Brick2: glus-02:/var/lib/gvol0/brick2
Brick3: glus-03:/var/lib/gvol0/brick3
Brick4: glus-04:/var/lib/gvol0/brick4
Options Reconfigured:
transport.address-family: inet
storage.fips-mode-rchecksum: on
performance.client-io-threads: off

Volume distribué-répliqué

Cet exemple crée une réplication distribuée sur des nœuds 2x2. Chaque paire de nœuds contient les données et la taille du volume est la taille de deux briques. Notez que la sortie affiche 2 x 2 = 4 .

Un seul nœud :

gluster volume create gvol0 replica 2 transport tcp \
glus-01:/var/lib/gvol0/brick1 \
glus-02:/var/lib/gvol0/brick2 \
glus-03:/var/lib/gvol0/brick3 \
glus-04:/var/lib/gvol0/brick4
gluster volume start gvol0

[root@gluster1 ~]# gluster volume info gvol0

Volume Name: gvol0
Type: Distributed-Replicate
Volume ID: b2ddd34b-ffb4-4fd8-ae60-b90adbd4c2ab
Status: Started
Snapshot Count: 0
Number of Bricks: 2 x 2 = 4
Transport-type: tcp
Bricks:
Brick1: glus-01:/var/lib/gvol0/brick1
Brick2: glus-02:/var/lib/gvol0/brick2
Brick3: glus-03:/var/lib/gvol0/brick3
Brick4: glus-04:/var/lib/gvol0/brick4
Options Reconfigured:
transport.address-family: inet
storage.fips-mode-rchecksum: on
performance.client-io-threads: off

Supprimer le volume

Après vous être assuré qu'aucun client (local ou distant) ne monte le volume, vous pouvez arrêter le volume et le supprimer à l'aide des commandes suivantes :

gluster volume stop gvol0
gluster volume delete gvol0

Effacer les briques

Si des briques sont utilisées dans un volume et qu'elles doivent être supprimées, vous pouvez utiliser l'une des méthodes suivantes :

GlusterFS définit un attribut sur les sous-répertoires de la brique. Si vous désactivez cet attribut, les briques peuvent être réutilisées.

  • glu-01 :

    setfattr -x trust.glusterfs.volume-id /var/lib/gvol0/brick1/setfattr -x trust.gfid /var/lib/gvol0/brick1rm -rf /var/lib/gvol0/brick1/.glusterfs

  • glu-02 :

    setfattr -x trust.glusterfs.volume-id /var/lib/gvol0/brick2/setfattr -x trust.gfid /var/lib/gvol0/brick2rm -rf /var/lib/gvol0/brick2/.glusterfs

  • glu-03 :

    setfattr -x trust.glusterfs.volume-id /var/lib/gvol0/brick3/setfattr -x trust.gfid /var/lib/gvol0/brick3rm -rf /var/lib/gvol0/brick3/.glusterfs

  • glu-04 :

    setfattr -x trust.glusterfs.volume-id /var/lib/gvol0/brick4/setfattr -x trust.gfid /var/lib/gvol0/brick4rm -rf /var/lib/gvol0/brick4/.glusterfs

Alternativement, vous pouvez supprimer les sous-répertoires puis les recréer.

  • glu-01

    rm -rf /var/lib/gvol0/brick1mkdir /var/lib/gvol0/brick1

  • glu-02 :

    rm -rf /var/lib/gvol0/brick2mkdir /var/lib/gvol0/brick2

  • glu-03 :

    rm -rf /var/lib/gvol0/brick3mkdir /var/lib/gvol0/brick3

  • glu-04 :

    rm -rf /var/lib/gvol0/brick4mkdir /var/lib/gvol0/brick4

Ajouter des briques

Vous pouvez ajouter plus de briques à un volume en cours d'exécution. Ajoutez une brique supplémentaire à notre exemple de volume répliqué ci-dessus en utilisant la commande suivante :

gluster volume add-brick gvol0 replica 5 gluster5:/var/lib/gvol0/brick5

Vous pouvez utiliser le add-brick pour modifier la disposition de votre volume, par exemple, pour transformer un volume distribué à deux nœuds en un volume distribué et répliqué à quatre nœuds. Après une telle opération, vous devez rééquilibrer votre volume. De nouveaux fichiers sont automatiquement créés sur les nouveaux nœuds, mais les anciens ne sont pas déplacés.

gluster volume add-brick gvol0 replica 2 \
gluster5:/var/lib/gvol0/brick5 ;
gluster6:/var/lib/gvol0/brick6
gluster volume rebalance gvol0 start
gluster volume rebalance gvol0 status

## If needed (something didn't work right)
gluster volume rebalance gvol0 stop

Options de volume

Pour afficher les options de volume configurées, exécutez la commande suivante :

gluster volume info gvol0

Voici un exemple de sortie :

Volume Name: gvol0
Type: Replicate
Volume ID: 8d12cb5a-77ad-43a3-bdd1-ab48405ff1da
Status: Started
Snapshot Count: 0
Number of Bricks: 1 x 4 = 4
Transport-type: tcp
Bricks:
Brick1: glus-01:/var/lib/gvol0/brick1
Brick2: glus-02:/var/lib/gvol0/brick2
Brick3: glus-03:/var/lib/gvol0/brick3
Brick4: glus-04:/var/lib/gvol0/brick4
Options Reconfigured:
transport.address-family: inet
storage.fips-mode-rchecksum: on
performance.client-io-threads: off

Pour définir une option pour un volume, utilisez la commande set mot-clé comme suit :

gluster volume set gvol0 performance.write-behind off
volume set: success

Pour effacer une option sur un volume par défaut, utilisez la réinitialisation mot-clé comme suit :

gluster volume reset gvol0 performance.read-ahead
volume reset: success: reset volume successful

Montages clients

La méthode préférée d'un client pour monter un volume GlusterFS consiste à utiliser le client FUSE natif. Les montages NFS sont possibles lorsque GlusterFS est déployé en tandem avec NFS-Ganesha®.

Client FUSE

Le client FUSE permet au montage de se produire avec une connexion de style "round robin" GlusterFS. Dans /etc/fstab , le nom d'un nœud est utilisé. Cependant, des mécanismes internes permettent à ce nœud d'échouer et les clients basculent vers d'autres nœuds connectés dans le pool de stockage approuvé.

CentOS :

yum install -y centos-release-gluster7
yum install -y glusterfs-fuse

Ubuntu :

add-apt-repository -y ppa:gluster/glusterfs-7
apt install glusterfs-client

Commun :

vi /etc/hosts
192.168.0.2  glus-01
192.168.0.4  glus-02
192.168.0.1  glus-03
192.168.0.3  glus-04

`modprobe fuse
 echo 'glus-01:/gvol0 /mnt/gluster/gvol0 glusterfs _netdev 0 0' >> /etc/fstab
 mkdir -p /mnt/gluster/gvol0
 mount /mnt/gluster/gvol0`

Références

  • https://www.gluster.org/annonce-gluster-7-0/
  • https://docs.gluster.org/en/latest/
  • https://wiki.centos.org/HowTos/GlusterFSonCentOS
  • https://kifarunix.com/install-and-setup-glusterfs-on-ubuntu-18-04/
  • https://launchpad.net/~gluster

Article suivant

Dépannage de GlusterFS


Linux
  1. Démarrer avec NetworkManager sous Linux

  2. Comment avez-vous commencé avec Linux ?

  3. Démarrer avec les serveurs cloud

  4. Démarrer avec Magento sur Debian 10

  5. Démarrer avec Tasksel sur Debian

Démarrer avec GNUPlot

Tutoriel Podman - Premiers pas avec Podman

Comment installer et démarrer avec Itch sur Ubuntu Linux

Comment démarrer avec Arch Linux

Installation et premiers pas avec Git

Comment démarrer avec Midnight Commander en 2022