Une version antérieure de ce tutoriel a été écrite par Brennan Bearnes.

Introduction

Lorsque vous stockez des données critiques, avoir un seul point de défaillance est très risqué. Alors que beaucoup de bases de données et autres logiciels vous permettent de répartir les données dans le contexte d’une seule application, d’autres systèmes peuvent fonctionner au niveau du système de fichiers pour s’assurer que les données sont copiées à un autre endroit chaque fois qu’elles sont écrites sur le disque.

GlusterFS est un système de fichiers de stockage connecté en réseau qui vous permet de mettre en commun les ressources de stockage de plusieurs machines. Cela vous permet de traiter plusieurs périphériques de stockage répartis sur plusieurs ordinateurs comme une seule unité plus puissante. GlusterFS vous donne également la liberté de créer différents types de configurations de stockage, dont beaucoup sont fonctionnellement similaires aux niveaux RAID. Par exemple, vous pouvez répartir les données sur différents nœuds du cluster, ou vous pouvez mettre en place une redondance pour une meilleure disponibilité des données.

Objectifs

Dans ce guide, vous créerez un tableau de stockage redondant en grappe, également connu sous le nom de système de fichiers distribués ou, comme il est mentionné dans la documentation GlusterFS, un pool de stockage fiable. Cela fournira des fonctionnalités similaires à une configuration RAID en miroir sur le réseau : chaque serveur indépendant contiendra sa propre copie des données, ce qui permettra à vos applications d’accéder à l’une ou l’autre des copies, contribuant ainsi à répartir votre charge de lecture.

Ce cluster GlusterFS redondant sera composé de deux serveurs Ubuntu 20.04. I agira comme un serveur NAS avec RAID en miroir. Vous accéderez ensuite au cluster à partir d’un troisième serveur Ubuntu 20.04 configuré pour fonctionner comme client GlusterFS.

Une note sur l’exécution sécurisée de GlusterFS

Lorsque vous ajoutez des données à un volume GlusterFS, les données sont synchronisées à chaque machine du pool de stockage où le volume est hébergé. Ce trafic entre les nœuds n’est pas crypté par défaut, ce qui signifie qu’il y a un risque qu’il puisse être intercepté par des acteurs malveillants.

Pour cette raison, si vous souhaitez utiliser GlusterFS en production, il est recommandé de l’exécuter sur un réseau isolé. Par exemple, vous pouvez le configurer pour qu’il fonctionne sur un nuage privé virtuel (VPC) ou avec un VPN fonctionnant entre chacun des nœuds.

Si vous prévoyez de déployer GlusterFS sur DigitalOcean, vous pouvez le configurer comme un réseau isolé en ajoutant votre infrastructure de serveur à un nuage privé virtuel DigitalOcean. Pour plus de détails sur la manière de le mettre en place, consultez notre documentation sur les produits VPC .

Conditions préalables

Pour suivre ce tutoriel, vous aurez besoin de trois serveurs fonctionnant sous Ubuntu 20.04. Chaque serveur doit avoir un utilisateur non root avec des privilèges administratifs et un pare-feu configuré avec UFW. Pour le mettre en place, suivez notre guide de configuration initiale du serveur pour Ubuntu 20.04.

Remarque  : Comme mentionné à la section Objectifs, ce tutoriel vous guidera à travers la configuration de deux de vos serveurs Ubuntu pour qu’ils agissent comme des serveurs dans votre pool de stockage et le dernier pour qu’il agisse comme un client que vous utiliserez pour accéder à ces nœuds.

Pour plus de clarté, ce tutoriel fera référence à ces machines avec les noms d’hôte suivants :

Nom d’hôteRôle dans le pool de stockagegluster0 Serveurgluster1 Serveurgluster2 Client

Les commandes qui devraient être exécutées sur gluster0  ou gluster1  auront respectivement des arrière-plans bleu et rouge :

Les commandes qui ne devraient être exécutées que sur le client (gluster2 ) auront un arrière-plan vert :

Les commandes qui peuvent ou devraient être exécutées sur plusieurs machines auront un arrière-plan gris :

Étape 1 - Configuration de la résolution DNS sur chaque machine

La mise en place d’une sorte de résolution de nom d’hôte entre chaque ordinateur peut aider à gérer votre pool de stockage Gluster. De cette façon, chaque fois que vous devez référencer une de vos machines dans une commande gluster plus loin dans ce tutoriel, vous pourrez le faire avec un nom de domaine facile à mémoriser ou même un surnom au lieu de leurs adresses IP respectives.

Si vous n’avez pas de nom de domaine de rechange, ou si vous souhaitez simplement configurer quelque chose rapidement, vous pouvez à la place modifier le fichier /etc/hosts sur chaque ordinateur. Il s’agit d’un fichier spécial sur les machines Linux où vous pouvez configurer le système de manière statique pour résoudre tous les noms d’hôte contenus dans le fichier en adresses IP statiques.

Remarque  : Si vous souhaitez configurer vos serveurs pour qu’ils s’authentifient avec un domaine qui vous appartient, vous devrez d’abord obtenir un nom de domaine à partir d’un registraire de domaine — comme Namecheap  ou Enom  — et configurer les enregistrements DNS appropriés.

Une fois que vous avez configuré un enregistrement A pour chaque serveur, vous pouvez passer à l’étape 2. En suivant ce guide, assurez-vous de remplacer glusterN.example.com  et gluster<^>N<^>  par le nom de domaine qui se résout au serveur respectif référencé dans la commande example.

Si vous avez obtenu votre infrastructure auprès de DigitalOcean, vous pouvez ajouter votre nom de domaine à DigitalOcean  puis configurer un enregistrement A unique pour chacun de vos serveurs .

À l’aide de votre éditeur de texte préféré, ouvrez ce fichier avec des privilèges root sur chacune de vos machines. Ici, nous utiliserons nano :

sudo nano /etc/hosts

Par défaut, le fichier ressemblera à quelque chose comme celui-ci avec les commentaires supprimés :

/etc/hosts

127.0.1.1 hostname hostname
127.0.0.1 localhost

::1 ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
ff02::3 ip6-allhosts

Sur l’un de vos serveurs Ubuntu, ajoutez l’adresse IP de chaque serveur, suivi des noms que vous souhaitez utiliser pour les référencer dans des commandes sous la définition de l’hôte locale.

Dans l’exemple suivant, chaque serveur a un long nom d’hôte qui s’aligne sur gluster``N``.example.com et un nom court qui s’aligne sur gluster``N. Vous pouvez changer les portions de gluster``N``.example.com et de gluster``N de chaque ligne en n’importe quel nom — ou des noms séparés par des espaces uniques — que vous souhaitez utiliser pour accéder à chaque serveur. Notez, cependant, que ce tutoriel utilisera ces exemples tout au long :

Remarque  : Si vos serveurs font partie d’un pool d’infrastructure VPC , vous devez utiliser l’adresse IP privée de chaque serveur dans le fichier /etc/hosts  plutôt que leurs IP publiques.

/etc/hosts

. . .
127.0.0.1       localhost
first_ip_address gluster0.example.com gluster0
second_ip_address gluster1.example.com gluster1
third_ip_address gluster2.example.com gluster2

. . .

Lorsque vous avez terminé d’ajouter ces nouvelles lignes au fichier /etc/hosts d'une machine, copiez-les et ajoutez-les aux fichiers /etc/hosts de vos autres machines. Chaque fichier /etc/hosts devrait contenir les mêmes lignes, reliant les adresses IP de vos serveurs aux noms que vous avez sélectionnés.

Enregistrez et fermez chaque fichier lorsque vous avez terminé. Si vous avez utilisé nano, faites-le en appuyant sur CTRL+XY, puis ENTER.

Maintenant que vous avez configuré la résolution de nom d’hôte entre chacun de vos serveurs, il sera plus facile d’exécuter des commandes plus tard lorsque vous configurez un pool de stockage et un volume. Ensuite, vous passerez par une autre étape qui doit être réalisée sur chacun de vos serveurs. À savoir, ajouter l’archive personnelle officielle des paquets du projet Gluster (PPA) à chacun de vos trois serveurs Ubuntu pour vous assurer que vous pouvez installer la dernière version de GlusterFS.

Étape 2 - Configuration des sources logicielles sur chaque machine

Bien que les référentiels Ubuntu 20.04 APT par défaut contiennent des paquets GlusterFS, au moment où nous écrivons ces lignes, ce ne sont pas les versions les plus récentes. Une façon d’installer la dernière version stable de GlusterFS (version  7.6 au moment où nous écrivons ces lignes) consiste à ajouter le PPA officiel du projet Gluster à chacun de vos trois serveurs Ubuntu.

Ajoutez le PPA pour les paquets GlusterFS en exécutant la commande suivante sur chaque serveur :

sudo add-apt-repository ppa:gluster/glusterfs-7

Appuyez sur ENTER lorsque vous êtes invité à confirmer que vous souhaitez réellement ajouter le PPA.

Après avoir ajouté le PPA, actualisez l’index local des paquets de chaque serveur. Cela permettra à chaque serveur de prendre connaissance des nouveaux paquets disponibles :

sudo apt update

Après avoir ajouté le PPA officiel du projet Gluster sur chaque serveur et mis à jour l’index local des paquets, vous êtes prêt à installer les paquets GlusterFS nécessaires. Cependant, comme deux de vos trois machines agira comme serveurs Gluster et l’autre comme client, il existe deux procédures distinctes d’installation et de configuration. Tout d’abord, vous installerez et configurez les composants du serveur.

#ubuntu

Comment créer un pool de stockage redondant en utilisant GlusterFS sur Ubuntu 20.04
1.20 GEEK