Nous configurons DRBD pour la réplication de stockage sur deux serveurs CentOS 7

La traduction de l'article a été préparée en prévision du lancement du cours «Administrateur Linux. Virtualisation et clustering».

DRBD (Distributed Replicated Block Device — dispositif de bloc répliqué distribué) est une solution de stockage de données distribuée, flexible et universellement répliquée pour Linux. Il reflète le contenu des dispositifs de bloc tels que les disques durs, les partitions, les volumes logiques, etc. entre les serveurs. Il crée des copies de données sur deux dispositifs de stockage afin qu'en cas de défaillance de l'un d'eux, les données sur le deuxième puissent être utilisées.

On peut dire que c'est quelque chose comme une configuration RAID 1 avec des disques répliqués sur différents serveurs. Cependant, cela ne fonctionne pas exactement comme un RAID (même réseau).

À l'origine, DRBD était principalement utilisé dans des clusters informatiques à haute disponibilité (HA — high availability), mais depuis la version neuf, il peut être utilisé pour déployer des solutions de stockage cloud.

Dans cet article, nous allons vous montrer comment installer DRBD sur CentOS et démontrer brièvement comment l'utiliser pour la réplication de stockage (partition) sur deux serveurs. C'est l'article idéal pour commencer à travailler avec DRBD sous Linux.

Environnement de test

Nous allons utiliser 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 : Installation des paquets DRBD

DRBD est implémenté comme un module du noyau Linux. Il représente un pilote pour un dispositif de bloc virtuel, donc il se situe en bas de la pile d'entrée-sortie du système.

DRBD peut être installé à partir d'ELRepo ou d'EPEL. Commençons par importer la clé de signature du paquet ELRepo et activer le dépôt 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 avec :

# yum install -y kmod-drbd84 drbd84-utils

Si SELinux est activé, vous devez configurer les politiques pour que les processus DRBD soient exemptés du contrôle de SELinux.

# semanage permissive -a drbd_t

De plus, si votre système dispose d'un pare-feu (firewalld), vous devez ajouter le port DRBD 7789 pour autoriser 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

Ensuite, exécutez 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éparation du stockage bas niveau

Maintenant que nous avons installé DRBD sur les deux nœuds du cluster, nous devons préparer des espaces de stockage d'une taille à peu près égale. Cela peut être une partition de disque dur (ou un disque dur physique entier), un dispositif RAID logiciel, un volume logique LVM ou tout autre type de dispositif de bloc présent dans votre système.

Pour cet article, nous allons créer un dispositif de bloc de test d'une taille de 2 Go à l'aide de la commande dd.

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

Supposons qu'il s'agit d'une partition inutilisée (/dev/sdb1) sur le second dispositif de bloc (/dev/sdb) connecté aux deux nœuds.

Étape 3. Configuration de DRBD

Le fichier de configuration principal de DRBD est /etc/drbd.conf, et les fichiers de configuration supplémentaires se trouvent dans le répertoire /etc/drbd.d.

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

Faisons une sauvegarde du fichier source sur les deux nœuds, puis ouvrons un nouveau fichier pour l'édition (utilisez l'é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 dans les deux fichiers :

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

Enregistrez le fichier, puis fermez l'éditeur.

Arrêtons-nous un instant sur la ligne protocol C. DRBD prend en charge trois modes différents de réplication (c'est-à-dire trois niveaux de synchronisation de réplication), à savoir :

  • protocol A : protocole de réplication asynchrone ; utilisé le plus souvent dans des scénarios de réplication à grande distance.
  • protocol B : protocole de réplication semi-synchrone ou protocole de mémoire synchronique.
  • protocol C : généralement utilisé pour des nœuds sur des réseaux de courte distance ; c'est sans aucun doute le protocole de réplication le plus couramment utilisé dans les configurations DRBD.

Important: Le choix du protocole de réplication influence deux facteurs de déploiement : la protection et la latence. En revanche, la bande passante n'est pas considérablement affectée par le protocole de réplication choisi.

Étape 4. Ajout de la ressource

Une ressource (Resource) est un terme englobant qui se réfère à tous les aspects d'un ensemble de données répliqués spécifique. Nous allons définir notre ressource dans le fichier /etc/drbd.d/test.res.

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

Attention aux noms d'hôtes, nous devons spécifier le nom d'hôte réseau, que l'on peut obtenir avec 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 se rapporte.
  • test: c'est le nom de la nouvelle ressource.
  • device /dev/drbd0: indique le nouveau périphérique de bloc virtuel géré par DRBD.
  • disk /dev/sdb1: c'est la partition du périphérique de bloc qui est le périphérique de sauvegarde pour le périphérique DRBD.
  • meta-disk: définit où DRBD stocke ses métadonnées. Internal signifie que DRBD stocke ses métadonnées sur le même périphérique physique bas niveau que ses données réelles en production.
  • address: indique l'adresse IP et le numéro de port du nœud correspondant.

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

Par exemple, la configuration ci-dessus peut être restructurée comme suit :

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. Initialisation et démarrage de 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 pour DRBD.
  • drbdsetup: outil d'administration de bas niveau pour connecter les périphériques DRBD à leurs périphériques de sauvegarde, configurer les ensembles de périphériques DRBD afin de refléter leurs périphériques de sauvegarde et vérifier la configuration des périphériques DRBD en cours d'exécution.
  • Drbdmeta: outil de gestion des métadonnées.

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

# drbdadm create-md test

Nous configurons DRBD pour la réplication de stockage sur deux serveurs CentOS 7
Initialisation du stockage des métadonnées

Ensuite, nous devons le démarrer, 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 pair :

# drbdadm up test

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

# lsblk

Nous configurons DRBD pour la réplication de stockage sur deux serveurs CentOS 7
Liste des périphériques block

Pour désactiver la ressource, exécutez :

# drbdadm down test

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

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

Nous configurons DRBD pour la réplication de stockage sur deux serveurs CentOS 7
Vérification de l'état de la ressource sur
devices

Étape 6 : Configuration de la ressource principale / source de synchronisation initiale des périphériques

À ce stade, DRBD est déjà opérationnel. Nous devons maintenant indiquer quel nœud doit être utilisé comme source de synchronisation initiale des périphériques.

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

# drbdadm primary --force test
# drbdadm status test

Nous configurons DRBD pour la réplication de stockage sur deux serveurs CentOS 7
Définir le nœud principal comme périphérique initial
Après la synchronisation, l'état des deux disques doit être À jour.

Étape 7 : Tester la configuration DRBD

Enfin, nous devons vérifier si le périphérique DRBD fonctionnera comme prévu pour stocker les données répliquées. Rappelez-vous que nous avons utilisé un volume de disque vide, donc nous devons créer un système de fichiers sur le périphérique 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 le périphérique en utilisant la commande suivante sur le nœud à partir duquel nous avons commencé la synchronisation complète initiale (où il y a une ressource avec le rôle principal) :

# mkfs -t ext4 /dev/drbd0

Nous configurons DRBD pour la réplication de stockage sur deux serveurs CentOS 7
Créons un système de fichiers sur le volume Drbd

Puis le monter comme indiqué (vous pouvez donner un nom approprié au point de montage) :

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

Maintenant, copiez ou créez des fichiers à l'emplacement de montage mentionné ci-dessus et faites une longue liste à l'aide de la commande ls:

# cd /mnt/DRDB_PRI/
# ls -l 

Nous configurons DRBD pour la réplication de stockage sur deux serveurs CentOS 7
Afficher la liste du contenu du volume principal Drbd

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

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

L'autre nœud (où il y a une ressource avec le rôle secondaire) devenez primaire, puis connectez-vous au périphérique et exécutez une longue liste des points de montage. Si la configuration 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 

Nous configurons DRBD pour la réplication de stockage sur deux serveurs CentOS 7
Vérification de la configuration DRBD fonctionnant sur le nœud secondaire.

Pour plus d'informations, veuillez consulter les pages d'aide des outils d'administration :

# man drbdadm
# man drbdsetup
# man drbdmeta

Aide : Guide de l'utilisateur 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 toute application. Dans cet article, nous avons montré comment installer DRBD sur CentOS 7 et avons brièvement démontré comment l'utiliser pour la réplication de stockage. N'hésitez pas à partager vos réflexions avec nous via le formulaire de rétroaction ci-dessous.

En savoir plus sur le cours.

Source : habr.com

Acheter un hébergement fiable pour les sites avec protection DDoS, serveurs VPS VDS 🔥 Acheter un hébergement fiable pour les sites avec protection DDoS, serveurs VPS VDS | ProHoster