Configuration de DRBD pour la réplication du stockage sur deux serveurs CentOS 7

La traduction de l'article a été préparée à la veille du début du cours "Administrateur Linux. Virtualisation et clustering".

DRBD (Distributed Replicated Block Device) est une solution de stockage distribuée, flexible et universellement réplicable pour Linux. Il reflète le contenu des périphériques blocs tels que les disques durs, les partitions, les volumes logiques, etc. entre les serveurs. Il crée des copies de données sur deux périphériques de stockage afin que si l'un d'eux tombe en panne, les données du second puissent être utilisées.

On pourrait dire que c'est quelque chose comme configuration RAID réseau 1 avec des disques mappés sur différents serveurs. Cependant, son fonctionnement est complètement différent du RAID (même du RAID réseau).

Initialement, DRBD était principalement utilisé dans les clusters informatiques à haute disponibilité (HA). Cependant, à partir de la version XNUMX, il peut être utilisé pour déployer des solutions de stockage cloud.

Dans cet article, nous expliquerons comment installer DRBD sur CentOS et démontrerons brièvement comment l'utiliser pour répliquer le stockage (partition) sur deux serveurs. C'est l'article parfait pour démarrer avec DRBD sous Linux.

Environnement de test

Nous utiliserons un cluster à deux nœuds pour cette configuration.

  • Nœud 1 : 192.168.56.101 – tecmint.tecmint.lan
  • Nœud 2 : 192.168.56.102 – server1.tecmint.lan

Étape 1 : Installer les packages DRBD

DRBD est implémenté en tant que module du noyau Linux. Il s'agit d'un pilote pour un périphérique bloc virtuel, il est donc situé tout en bas de la pile d'E/S du système.

DRBD peut être installé depuis ELRepo ou EPEL. Commençons par importer la clé de signature du package ELRepo et connecter le référentiel sur les deux nœuds comme indiqué ci-dessous.

# rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
# rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-3.el7.elrepo.noarch.rpm

Ensuite, vous devez installer le module du noyau DRBD et les utilitaires sur les deux nœuds en utilisant :

# yum install -y kmod-drbd84 drbd84-utils

Si SELinux est activé, vous devez configurer des politiques pour exempter les processus DRBD du contrôle SELinux.

# semanage permissive -a drbd_t

De plus, si votre système exécute un pare-feu (firewalld), vous devrez ajouter le port DRBD 7789 pour permettre la synchronisation des données entre les deux nœuds.

Exécutez ces commandes pour le premier nœud :

# firewall-cmd --permanent --add-rich-rule='rule family="ipv4"  source address="192.168.56.102" port port="7789" protocol="tcp" accept'
# firewall-cmd --reload

Exécutez ensuite ces commandes pour le deuxième nœud :

# firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.56.101" port port="7789" protocol="tcp" accept'
# firewall-cmd --reload

Étape 2 : préparer le stockage de bas niveau

Maintenant que DRBD est installé sur les deux nœuds du cluster, nous devons y fournir des zones de stockage d'approximativement la même taille. Il peut s'agir d'une partition de disque dur (ou d'un disque dur physique entier), d'un périphérique RAID logiciel, Volume logique LVM ou tout autre type de périphérique de blocage trouvé sur votre système.

Pour cet article, nous allons créer un périphérique de bloc de test de 2 Go à l'aide de la commande dd.

# dd if=/dev/zero of=/dev/sdb1 bs=2024k count=1024

Supposons qu'il s'agisse d'une partition inutilisée (/dev/sdb1) sur un deuxième périphérique bloc (/dev/sdb) connecté aux deux nœuds.

Étape 3. Configuration de DRBD

Fichier de configuration principal DRBD - /etc/drbd.conf, et des fichiers de configuration supplémentaires peuvent être trouvés dans le répertoire /etc/drbd.d.

Pour répliquer le stockage, nous devons ajouter les configurations nécessaires au fichier /etc/drbd.d/global_common.conf, qui contient les sections globales et générales de la configuration DRBD, et nous devons définir les ressources dans .res des dossiers.

Faisons une copie de sauvegarde du fichier d'origine sur les deux nœuds, puis ouvrons le nouveau fichier pour le modifier (utilisez un éditeur de texte de votre choix).

# mv /etc/drbd.d/global_common.conf /etc/drbd.d/global_common.conf.orig
# vim /etc/drbd.d/global_common.conf 

Ajoutez les lignes suivantes aux deux fichiers :

global {
 usage-count  yes;
}
common {
 net {
  protocol C;
 }
}

Enregistrez le fichier puis fermez l'éditeur.

Examinons un instant la ligne du protocole C. DRBD prend en charge trois modes de réplication différents (c'est-à-dire trois degrés de synchronisation de réplication), à savoir :

  • protocole A : protocole de réplication asynchrone ; le plus souvent utilisé dans les scénarios de réplication longue distance.
  • protocole B : protocole de réplication semi-synchrone ou protocole de mémoire synchrone.
  • protocole C : généralement utilisé pour les nœuds des réseaux à courtes distances ; il s'agit de loin du protocole de réplication le plus couramment utilisé dans les paramètres DRBD.

Il est important: Le choix du protocole de réplication affecte deux facteurs de déploiement : la sécurité et la latence. En revanche, le débit ne dépend pas de manière significative du protocole de réplication sélectionné.

Étape 4 : Ajouter une ressource

Ressource est un terme générique qui fait référence à tous les aspects d'un ensemble de données répliqué particulier. Nous définirons notre ressource dans le fichier /etc/drbd.d/test.res.

Ajoutez ce qui suit au fichier sur les deux nœuds (n'oubliez pas de remplacer les variables par les valeurs réelles de votre environnement).

Faites attention aux noms d'hôtes, nous devons spécifier le nom d'hôte du réseau, qui peut être obtenu à l'aide de la commande uname -n.

resource test {
        on tecmint.tecmint.lan {
 		device /dev/drbd0;
       		disk /dev/sdb1;
        		meta-disk internal;	
                	address 192.168.56.101:7789;
        }
        on server1.tecmint.lan  {
		device /dev/drbd0;
        		disk /dev/sdb1;
        		meta-disk internal;
                	address 192.168.56.102:7789;
        }
}
}

où:

  • sur le nom d'hôte: La section on à laquelle l'instruction de configuration imbriquée s'applique.
  • tester: C'est le nom de la nouvelle ressource.
  • périphérique /dev/drbd0: Indique un nouveau périphérique de bloc virtuel géré par DRBD.
  • disque /dev/sdb1: Il s'agit d'une partition de périphérique de bloc qui est un périphérique de sauvegarde pour le périphérique DRBD.
  • méta-disque: Définit où DRBD stocke ses métadonnées. Interne signifie que DRBD stocke ses métadonnées sur le même périphérique physique de bas niveau que les données réelles en production.
  • propos: Indique l'adresse IP et le numéro de port du nœud correspondant.

Notez également que si les paramètres ont les mêmes valeurs sur les deux hôtes, vous pouvez les préciser directement dans la section ressources.

Par exemple, la configuration ci-dessus pourrait être restructurée pour :

resource test {
	device /dev/drbd0;
	disk /dev/sdb1;
        	meta-disk internal;	
        	on tecmint.tecmint.lan {
 		address 192.168.56.101:7789;
        	}
        	on server1.tecmint.lan  {
		address 192.168.56.102:7789;
        		}
}

Étape 5. Initialiser et lancer la ressource

Pour interagir avec DRBD, nous utiliserons les outils d'administration suivants (qui interagissent avec le module du noyau pour configurer et administrer les ressources DRBD) :

  • drbdadm: Outil d'administration de haut niveau DRBD.
  • configuration drbd: Un outil d'administration de niveau inférieur pour connecter les périphériques DRBD à leurs périphériques de sauvegarde, configurer des paires de périphériques DRBD pour refléter leurs périphériques de sauvegarde et pour vérifier la configuration des périphériques DRBD en cours d'exécution.
  • Drbdméta: Outil de gestion des métadonnées.

Après avoir ajouté toutes les configurations initiales de ressources, nous devons appeler la ressource sur les deux nœuds.

# drbdadm create-md test

Configuration de DRBD pour la réplication du stockage sur deux serveurs CentOS 7
Initialisation du magasin de métadonnées

Ensuite, nous devons l'exécuter, ce qui connectera la ressource à son périphérique de sauvegarde, puis définira les paramètres de réplication et connectera la ressource à son homologue :

# drbdadm up test

Maintenant, si vous exécutez la commande lsblk, vous remarquerez que le périphérique/volume DRBD drbd0 est associé au périphérique de sauvegarde /dev/sdb1:

# lsblk

Configuration de DRBD pour la réplication du stockage sur deux serveurs CentOS 7
Liste des appareils bloqués

Pour désactiver une ressource, exécutez :

# drbdadm down test

Pour vérifier l'état d'une ressource, exécutez la commande suivante (notez que l'état des disques est attendu à ce stade Incohérent/Incohérent):

# drbdadm status test
OR
# drbdsetup status test --verbose --statistics 	#for  a more detailed status

Configuration de DRBD pour la réplication du stockage sur deux serveurs CentOS 7
Vérifier l'état d'une ressource sur
mal

Étape 6 : Définir la source de synchronisation de la ressource principale/du périphérique initial

A ce stade, DRBD est prêt à démarrer. Nous devons maintenant spécifier quel nœud doit être utilisé comme source de synchronisation initiale des appareils.

Exécutez la commande suivante sur un seul nœud pour commencer la synchronisation complète initiale :

# drbdadm primary --force test
# drbdadm status test

Configuration de DRBD pour la réplication du stockage sur deux serveurs CentOS 7
Définition du nœud principal comme périphérique initial
Une fois la synchronisation terminée, l'état des deux disques doit être UpToDate.

Étape 7 : Test de la configuration DRBD

Enfin, nous devons vérifier si le périphérique DRBD fonctionnera comme nécessaire pour stocker les données répliquées. N'oubliez pas que nous avons utilisé un volume de disque vide, nous devons donc créer un système de fichiers sur l'appareil et le monter pour vérifier si nous pouvons l'utiliser pour stocker des données répliquées.

Nous devons créer un système de fichiers sur l'appareil à l'aide de la commande suivante sur le nœud sur lequel nous avons démarré la synchronisation complète initiale (qui a une ressource avec le rôle principal) :

# mkfs -t ext4 /dev/drbd0

Configuration de DRBD pour la réplication du stockage sur deux serveurs CentOS 7
Création d'un système de fichiers sur le volume Drbd

Montez-le ensuite comme indiqué (vous pouvez donner au point de montage un nom approprié) :

# mkdir -p /mnt/DRDB_PRI/
# mount /dev/drbd0 /mnt/DRDB_PRI/

Maintenant, copiez ou créez quelques fichiers dans le point de montage ci-dessus et faites une longue liste avec commandes ls:

# cd /mnt/DRDB_PRI/
# ls -l 

Configuration de DRBD pour la réplication du stockage sur deux serveurs CentOS 7
Répertoriez le contenu du volume principal Drbd

Ensuite, démontez le périphérique (assurez-vous que le montage n'est pas ouvert, modifiez le répertoire après le démontage pour éviter les erreurs) et modifiez le rôle du nœud de principal à secondaire :

# umount /mnt/DRDB_PRI/
# cd
# drbdadm secondary test

Rendez l'autre nœud (qui possède une ressource avec un rôle secondaire) principal, puis attachez-y un périphérique et émettez une longue liste de points de montage. Si l'installation fonctionne correctement, tous les fichiers stockés sur le volume devraient être là :

# drbdadm primary test
# mkdir -p /mnt/DRDB_SEC/
# mount /dev/drbd0 /mnt/DRDB_SEC/
# cd /mnt/DRDB_SEC/
# ls  -l 

Configuration de DRBD pour la réplication du stockage sur deux serveurs CentOS 7
Vérification de la configuration DRBD exécutée sur le nœud secondaire.

Pour plus d’informations, consultez les pages d’aide des outils d’administration :

# man drbdadm
# man drbdsetup
# man drbdmeta

Information: Manuel d'utilisation DRBD.

Résumé

DRBD est extrêmement flexible et polyvalent, ce qui en fait une solution de réplication de stockage adaptée à l'ajout de haute disponibilité à presque toutes les applications. Dans cet article, nous avons montré comment installer DRBD sur CentOS 7 et brièvement comment l'utiliser pour la réplication du stockage. N'hésitez pas à partager vos réflexions avec nous en utilisant le formulaire de commentaires ci-dessous.

En savoir plus sur le cours.

Source: habr.com

Ajouter un commentaire