Lecteurs partagés haute disponibilité utilisant le stockage de blocs Vultr et GlusterFS

GlusterFS est un système de fichiers connecté au réseau qui vous permet efficacement de partager deux disques sur plusieurs appareils sur le réseau. Ce système de fichiers est parfaitement adapté à l'offre de stockage en bloc de Vultr, car vous pouvez partager un lecteur sur le réseau, ce qui n'est pas possible immédiatement.

En termes de fonctionnalités, d'extensibilité et de fiabilité, GlusterFS s'est avéré être l'un des systèmes de fichiers les plus sophistiqués et stables disponibles.

Lorsque des modifications sont apportées au lecteur sur un serveur, elles seront automatiquement répliquées sur l'autre serveur en temps réel. Pour y parvenir et suivre ce guide, vous aurez besoin de:

  • Deux instances de cloud Vultr, exécutant de préférence le même système d'exploitation.
  • Deux disques de stockage en bloc de la même taille.

Après avoir commandé ces deux lecteurs de stockage en bloc, vous devez les attacher à VM 1 et VM 2. Comme nous utiliserons les deux lecteurs de stockage en bloc pour le même système de fichiers, diviser la taille totale des deux lecteurs par deux vous donnera la quantité utilisable des GB. Par exemple, si vous avez deux disques de 100 Go, 100 Go seront utilisables (100 * 2/2).

De plus, les deux VM devront être au même endroit pour qu'elles soient sur le même réseau privé. Nous nous connecterons aux serveurs en utilisant leurs adresses IP internes. Notez que nous effacerons les données sur le lecteur de stockage en mode bloc. Assurez-vous qu'ils sont neufs et non formatés.

Dans ce guide, nous utiliserons storage1et storage2, respectivement avec des adresses IP privées 10.0.99.10 et 10.0.99.11. Les noms et adresses IP de vos serveurs seront très probablement différents, alors assurez-vous de les modifier lors de la configuration de GlusterFS.

Ce guide a été écrit en pensant à CentOS / RHEL 7. Cependant, GlusterFS est relativement compatible entre plusieurs distributions Linux.

Configuration de GlusterFS

Étape 1: modifier le /etc/hostsfichier

Pour que nous puissions nous connecter rapidement aux instances respectives, nous devons ajouter des noms faciles à retenir au hostsfichier. Ouvrez le /etc/hostsfichier et ajoutez les lignes suivantes au bas de celui-ci:

10.0.99.10 storage1
10.0.99.11 storage2

Étape 2: ajoutez le disque storage1

SSH dans storage1et exécutez les commandes suivantes. Par défaut, les lecteurs de stockage en bloc connectés sont montés en tant que /dev/vdb. Si cela diffère dans votre cas pour une raison quelconque, vous devez le modifier dans les commandes ci-dessous.

Formatez le disque:

fdisk /dev/vdb

Appuyez sur "Entrée" pour les trois questions suivantes (concernant la taille de la partition et autres, nous voulons utiliser tout l'espace disponible sur les lecteurs de stockage en bloc) et écrivez "w" pour écrire ces modifications sur le disque. Une fois cette opération terminée, écrivez:

/sbin/mkfs.ext4 /dev/vdb1

Nous sommes allés de l'avant et avons créé un système de fichiers maintenant car Vultr ne crée aucun système de fichiers sur le stockage de blocs par défaut.

Ensuite, nous allons créer le dossier dans lequel nous stockons nos fichiers. Vous pouvez changer ce nom mais vous ne le verrez pas apparaître beaucoup, donc pour éliminer la complexité, je vous recommande de le laisser tranquille.

mkdir /glusterfs1

Pour monter automatiquement le lecteur au démarrage, ouvrez /etc/fstabet ajoutez la ligne suivante au bas du fichier:

/dev/vdb1 /glusterfs1      ext4    defaults        1 2

Enfin, montez le lecteur:

mount -a

Le montage restera persistant pendant les redémarrages, donc lorsque vous redémarrez votre serveur, le lecteur sera automatiquement monté à nouveau.

Étape 3: ajoutez le disque storage2

Maintenant que le disque est ajouté et monté storage1, nous devons également créer le disque storage2. Les commandes diffèrent à peine. Pour fdisk, suivez les mêmes étapes que ci-dessus.

fdisk /dev/sdb
/sbin/mkfs.ext4 /dev/sdb1
mkdir /glusterfs2

Modifiez /etc/fstabet ajoutez la ligne suivante:

/dev/vdb1 /glusterfs2      ext4    defaults        1 2

Tout comme sur storage1, le disque sera automatiquement monté lors des redémarrages.

Montez le lecteur:

mount -a

Enfin, vérifions si nous pouvons voir la partition apparaître:

df -h

Vous devriez voir votre lecteur apparaître ici. Si ce n'est pas le cas, veuillez essayer de suivre les étapes ci-dessus.

Étape 4: Installation de GlusterFS sur storage1etstorage2

Nous devons ensuite installer GlusterFS. Ajoutez le référentiel et installez GlusterFS:

rpm  -ivh  http://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-5.noarch.rpm
wget -P /etc/yum.repos.d http://download.gluster.org/pub/gluster/glusterfs/3.7/3.7.5/CentOS/glusterfs-epel.repo
yum -y install glusterfs glusterfs-fuse glusterfs-server

Il est possible que vous obteniez une erreur yumcar la signature du référentiel n'est pas correcte. Dans ce cas, il est sûr de forcer la non vérification de la signature GPG:

yum -y install glusterfs glusterfs-fuse glusterfs-server --nogpgcheck

Sur les deux serveurs, exécutez les commandes suivantes pour démarrer GlusterFS maintenant et lancez-le automatiquement après un redémarrage:

systemctl enable glusterd.service
systemctl start glusterd.service

Si vous utilisez une ancienne version de CentOS, vous pouvez utiliser les commandes serviceet chkconfig:

chkconfig glusterd on
service glusterd start

Étape 5: désactivation du pare-feu sur storage1etstorage2

Bien que ce ne soit pas la meilleure solution en soi, c'est une bonne idée de désactiver le pare-feu afin d'éliminer les conflits possibles avec les ports bloqués. Si vous ne vous sentez pas à l'aise de le faire, n'hésitez pas à modifier les règles à votre guise, mais en raison de la nature de GlusterFS, je recommande fortement de désactiver le pare-feu. Considérant qu'un réseau privé est en fait privé sur Vultr (et vous n'avez pas besoin de pare-feu pour les autres clients), vous pouvez simplement bloquer tout le trafic entrant depuis Internet et restreindre les connexions autorisées au réseau privé. Cependant, désactiver le pare-feu et ne modifier aucune autre configuration système suffirait également:

systemctl stop firewalld.service
systemctl disable firewalld.service

Si vous utilisez une ancienne version CentOS qui ne prend pas en charge systemctl, utilisez les commandes serviceet chkconfig:

service firewalld stop
chkconfig firewalld off

Si vous ne l'utilisez pas firewalld, essayez de désactiver iptables:

service iptables stop
chkconfig iptables off

Étape 6: ajouter des serveurs au pool de stockage

Après avoir désactivé le pare-feu, nous pouvons ajouter les deux serveurs au pool de stockage. Il s'agit d'un pool composé de tout le stockage disponible. Exécutez la commande suivante sur storage1:

gluster peer probe storage2

Ce que fait cette commande, c'est l'ajouter storage2à son propre pool de stockage. En exécutant la commande suivante sur storage2, les deux disques seront synchronisés:

gluster peer probe storage1

Après avoir exécuté cela sur les deux serveurs, nous devons vérifier l'état sur les deux serveurs:

gluster peer status

Les deux serveurs doivent afficher un état de «pairs: 1». Une erreur courante est que les gens s'attendent à voir Peers: 2, mais comme storage1ils le verront storage2et vice versa, ils ne regardent pas avec eux-mêmes. C'est donc Peers: 1ce dont nous avons besoin.

Étape 7: création d'un lecteur partagé sur storage1

Maintenant que les deux serveurs sont capables de se connecter via GlusterFS, nous allons créer un lecteur partagé.

On storage1, exécutez:

gluster volume create mailrep-volume replica 2  storage1:/glusterfs1/files  storage2:/glusterfs2/files force

Le volume est maintenant créé. Dans GlusterFS, vous devez "démarrer" un volume pour qu'il soit activement partagé sur plusieurs appareils. Commençons:

gluster volume start mailrep-volume

Ensuite, choisissez un dossier qui doit se trouver sur le volume et répliqué sur les deux serveurs. Dans ce didacticiel, nous utiliserons le dossier /var/files. Naturellement, cela peut être tout ce que vous aimez. Créez-le storage1 uniquement :

mkdir /var/files

Ensuite, montez-le:

mount.glusterfs storage1:/mailrep-volume /var/files/

Mettez à jour /etc/fstabafin que le lecteur soit automatiquement monté au démarrage. Ajoutez ce qui suit:

storage1:/mailrep-volume /var/files glusterfs defaults,_netdev 0 0

Remontez le lecteur:

mount -a

Étape 8: création d'un lecteur partagé sur storage2

Maintenant que nous avons créé un lecteur partagé storage1, nous devons également en créer un storage2. Créez un dossier avec le même emplacement / chemin et nom:

mkdir /var/files
mount.glusterfs storage2:/mailrep-volume /var/files/

Tout comme sur storage1, ajoutez la ligne suivante à /etc/fstab:

storage2:/mailrep-volume /var/files glusterfs defaults,_netdev 0 0

Remontez le lecteur:

mount -a

Étape 9: tester le stockage partagé

Accédez au /var/filesdossier sur storage1et créez un fichier:

cd /var/files
touch created_on_storage1

Ensuite, dirigez-vous vers le storage2serveur. Exécutez ls -laet vous devriez voir le fichier created_on_storage1apparaître.

Sur storage2, accédez au /var/filesdossier et créez un fichier:

cd /var/files
touch created_on_storage2

Retournez à storage1et exécutez ls -la /var/files. Vous devriez voir le fichier created_on_storage2apparaître ici.

Étape 10: redémarrer tous les serveurs (facultatif)

Afin de vérifier si votre configuration restera persistante pendant les redémarrages, comme meilleure pratique, vous devez redémarrer tous les serveurs. Comme mentionné, vous devez attendre qu'un serveur soit en place, puis redémarrer l'autre pour que le lecteur partagé soit automatiquement monté.

Redémarrez d' storage1abord, attendez qu'il soit en place, puis redémarrez storage2. Maintenant, connectez-vous et exécutez sur les deux serveurs:

cd /var/files
ls -la

Vous devriez maintenant voir les deux fichiers apparaître. Assurez-vous de commencer sans aucun fichier sur le volume, supprimez donc les fichiers de test que nous avons créés. Vous pouvez le faire sur storage1, storage2ou les deux. Les modifications seront répliquées instantanément:

cd /var/files
rm created_on_storage1
rm created_on_storage2

Vous devez avoir un volume partagé identique sur les deux serveurs, quelles que soient les actions sur les deux volumes.

Vous avez maintenant configuré une configuration GlusterFS à part entière avec 100 Go (ou plus) d'espace utilisable. Dans le cas où vous en auriez besoin de plus à l'avenir, la configuration est facilement évolutive pour ajouter plus de capacité et / ou plus de serveurs si votre charge de travail l'exige.

Merci pour la lecture!


Remarque importante concernant le remontage

GlusterFS permet de garder vos données à jour sur deux disques. Cependant, vous devez noter que lorsque les deux serveurs sont redémarrés en même temps , vous devrez forcer le montage des lecteurs sur les deux serveurs. Vous devez forcer le montage manuellement en exécutant la commande suivante:

gluster volume start mailrep-volume force

En effet, l'un des serveurs agit comme un serveur et l'autre agit comme un client. Bien que la différence ne soit pas très facilement perceptible dans la pratique, cela signifie que lorsque vous devez redémarrer les deux serveurs, vous devez redémarrer l'un, attendre qu'il soit en place, puis démarrer l'autre.

Remarque importante concernant les sauvegardes

Même si vos données seront répliquées sur deux disques, vous devriez avoir vos données répliquées au moins trois fois. Bien que vos données soient mieux protégées contre la corruption de données et autres, vous devez noter que les modifications sont instantanées et vous ne serez en aucun cas protégé contre les erreurs humaines. Lorsque vous supprimez tous les fichiers sur un lecteur, ces modifications seront immédiatement répliquées sur l'autre lecteur, ce qui signifie que vos données seront effacées sur les deux instances.

Heureusement, il existe plusieurs approches pour éviter cela. Tout d'abord, je recommande d'activer les sauvegardes sur votre instance cloud elle-même. Bien que ces sauvegardes n'incluent pas de données sur le stockage en bloc, elles protégeront les données sur l'instance elle-même.

Lorsqu'il s'agit de sauvegarder les données sur le stockage en bloc lui-même, je recommande de faire tourner une instance distincte (par exemple un plan SATA) afin que vous puissiez exécuter une sauvegarde à partir de l'un des deux serveurs attachés chaque nuit, par exemple. De cette façon, vos données seront en sécurité sur un autre appareil séparé.

FAQ

Puis-je augmenter mon stockage sur disque?

Vous pouvez augmenter la taille de stockage des blocs à partir du panneau de configuration Vultr. Vous devez redimensionner le disque à l'intérieur du système d'exploitation après, mais cela sort du cadre de cet article.

Puis-je attacher le stockage de bloc à plus de deux serveurs?

Bien que ce guide ait été écrit pour deux serveurs (donc deux lecteurs de stockage en bloc connectés aux deux serveurs), il est possible de prendre ce guide et de l'utiliser également pour plus de deux serveurs. Une configuration avec plus de deux serveurs / lecteurs pourrait ressembler à ceci pour 6 serveurs, par exemple:

VM: storage1
VM: storage2
VM: storage3
VM: storage4
Block Storage: attached to storage1
Block Storage: attached to storage2
Block Storage: attached to storage3
Block Storage: attached to storage4

Étant donné que tous les lecteurs de stockage en bloc ont une capacité de 200 Go, par exemple, vous obtiendrez 200 * 4 / 4. En d'autres termes, l'espace utilisable est toujours la capacité d'un lecteur de stockage en bloc unique. En effet, un serveur auquel un stockage en bloc est attaché est traité comme le «maître» par GlusterFS et il est répliqué sur les autres serveurs. Cependant, la configuration est conçue pour survivre sans serveur maître, ce qui en fait une solution stable, redondante et fiable.



Leave a Comment

Comment générer des clés SSH?

Comment générer des clés SSH?

Découvrez comment générer une clé SSH pour accéder à votre serveur sans mot de passe. Suivez nos étapes faciles à comprendre pour créer et ajouter des clés SSH.

Créer un serveur de messagerie avec hMailServer sous Windows

Créer un serveur de messagerie avec hMailServer sous Windows

Découvrez comment créer un serveur de messagerie avec hMailServer sous Windows pour recevoir des e-mails facilement.

LIA peut-elle lutter contre un nombre croissant dattaques de ransomware

LIA peut-elle lutter contre un nombre croissant dattaques de ransomware

Les attaques de ransomware sont en augmentation, mais l'IA peut-elle aider à lutter contre le dernier virus informatique ? L'IA est-elle la réponse ? Lisez ici, sachez que l'IA est un boone ou un fléau

ReactOS : est-ce lavenir de Windows ?

ReactOS : est-ce lavenir de Windows ?

ReactOS, un système d'exploitation open source et gratuit est ici avec la dernière version. Cela peut-il suffire aux besoins des utilisateurs de Windows modernes et faire tomber Microsoft ? Découvrons-en plus sur cet ancien style, mais une expérience de système d'exploitation plus récente.

Restez connecté via lapplication de bureau WhatsApp 24 * 7

Restez connecté via lapplication de bureau WhatsApp 24 * 7

Whatsapp a finalement lancé l'application de bureau pour les utilisateurs Mac et Windows. Vous pouvez désormais accéder facilement à Whatsapp depuis Windows ou Mac. Disponible pour Windows 8+ et Mac OS 10.9+

Comment lIA peut-elle faire passer lautomatisation des processus au niveau supérieur ?

Comment lIA peut-elle faire passer lautomatisation des processus au niveau supérieur ?

Lisez ceci pour savoir comment l'intelligence artificielle devient populaire parmi les petites entreprises et comment elle augmente les probabilités de les faire grandir et de donner à leurs concurrents un avantage.

La mise à jour du supplément macOS Catalina 10.15.4 cause plus de problèmes quelle nen résout

La mise à jour du supplément macOS Catalina 10.15.4 cause plus de problèmes quelle nen résout

Récemment, Apple a publié macOS Catalina 10.15.4, une mise à jour supplémentaire pour résoudre les problèmes, mais il semble que la mise à jour cause davantage de problèmes, ce qui entraîne le bridage des machines mac. Lisez cet article pour en savoir plus

13 outils commerciaux dextraction de données de Big Data

13 outils commerciaux dextraction de données de Big Data

13 outils commerciaux d'extraction de données de Big Data

Quest-ce quun système de fichiers de journalisation et comment fonctionne-t-il ?

Quest-ce quun système de fichiers de journalisation et comment fonctionne-t-il ?

Notre ordinateur stocke toutes les données d'une manière organisée connue sous le nom de système de fichiers de journalisation. C'est une méthode efficace qui permet à l'ordinateur de rechercher et d'afficher des fichiers dès que vous appuyez sur la recherche.https://wethegeek.com/?p=94116&preview=true

Singularité technologique : un futur lointain de la civilisation humaine ?

Singularité technologique : un futur lointain de la civilisation humaine ?

Alors que la science évolue à un rythme rapide, prenant le pas sur une grande partie de nos efforts, les risques de nous soumettre à une Singularité inexplicable augmentent également. Lisez, ce que la singularité pourrait signifier pour nous.