Configuration de DRBD pour répliquer le stockage sur deux serveurs CentOS 7

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








DRBD (Distributed Replicated Block Device) est une solution de stockage distribuĂ©e, flexible et rĂ©pliquĂ©e universellement 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 qu'en cas de dĂ©faillance de l'un d'entre eux, les donnĂ©es de l'autre puissent ĂȘtre utilisĂ©es.



Nous pouvons dire que c'est quelque chose comme une configuration rĂ©seau RAID 1 avec des disques mappĂ©s sur diffĂ©rents serveurs. Cependant, cela fonctionne trĂšs diffĂ©remment du RAID (mĂȘme en rĂ©seau).



Initialement, DRBD Ă©tait principalement utilisĂ© dans les clusters d'ordinateurs haute disponibilitĂ© (HA), mais Ă  partir de la version 9, il peut ĂȘtre utilisĂ© pour dĂ©ployer des solutions de stockage dans le cloud.



Dans cet article, nous vous expliquerons comment installer DRBD sur CentOS et vous montrerons briÚvement comment l'utiliser pour répliquer un 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: Installez les packages DRBD



DRBD est implémenté en tant que module du noyau Linux. Il s'agit d'un pilote de périphérique de bloc virtuel, il se trouve donc 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 libérer les processus DRBD du contrÎle SELinux.



# semanage permissive -a drbd_t


De plus, si votre systĂšme exĂ©cute un pare-feu, vous devez ajouter le port DRBD 7789 pour permettre la synchronisation des donnĂ©es entre les deux nƓuds.



ExĂ©cutez ces commandes sur 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 sur 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Ă©parez le stockage de bas niveau



Maintenant que DRBD est installĂ© sur les deux nƓuds du cluster, nous devons y prĂ©parer des zones de stockage d'environ 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 , d'un volume logique LVM ou de tout autre type de pĂ©riphĂ©rique bloc trouvĂ© sur votre systĂšme.



Pour ce didacticiel, 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 que ce soit 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



Le fichier de configuration DRBD principal est /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.confqui contient les sections de configuration DRBD globale et générale, et nous devons définir des ressources dans les .resfichiers.



Sauvegardez le fichier d'origine sur les deux nƓuds, puis ouvrez le nouveau fichier pour le modifier (utilisez votre Ă©diteur de texte prĂ©fĂ©rĂ©).



# 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.



Concentrons-nous briÚvement sur 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 couramment 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 sur les rĂ©seaux Ă  courte distance; c'est de loin le protocole de rĂ©plication le plus couramment utilisĂ© dans les paramĂštres DRBD.


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 est largement indépendant du protocole de réplication choisi.



Étape 4. Ajout d'une ressource



Ressource est un terme collectif qui fait référence à tous les aspects d'un ensemble de données spécifique en cours de réplication. Nous définirons notre ressource dans un 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ĂŽte, nous devons fournir 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Ăč:



  • on hostname : la section on Ă  laquelle appartient l'instruction de configuration imbriquĂ©e.
  • test : il s'agit du nom de la nouvelle ressource.
  • device / dev / drbd0 : spĂ©cifie un nouveau pĂ©riphĂ©rique de bloc virtuel gĂ©rĂ© par DRBD.
  • disk / dev / sdb1 : il s'agit d'une partition de pĂ©riphĂ©rique bloc qui est un pĂ©riphĂ©rique de sauvegarde pour un pĂ©riphĂ©rique DRBD.
  • meta-disk : 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.
  • adresse : spĂ©cifie l'adresse IP et le numĂ©ro de port de l'hĂŽte correspondant.


Notez Ă©galement que si les paramĂštres ont les mĂȘmes valeurs sur les deux hĂŽtes, vous pouvez les spĂ©cifier directement dans la section ressources.



Par exemple, la configuration ci-dessus pourrait ĂȘtre refactorisĂ©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. Initialisation et dĂ©marrage de la ressource



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



  • drbdadm : un outil d'administration DRBD de haut niveau.
  • drbdsetup : outil d'administration de niveau infĂ©rieur pour connecter les pĂ©riphĂ©riques DRBD Ă  leurs pĂ©riphĂ©riques de sauvegarde, configurer les paires de pĂ©riphĂ©riques DRBD pour mettre en miroir leurs pĂ©riphĂ©riques de sauvegarde et vĂ©rifier la configuration des pĂ©riphĂ©riques DRBD en cours d'exĂ©cution.
  • Drbdmeta : un outil de gestion des mĂ©tadonnĂ©es.


AprĂšs avoir ajoutĂ© toutes les configurations de ressources initiales, nous devons appeler la ressource sur les deux nƓuds.



# drbdadm create-md test




Initialisation du magasin de 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 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




Liste des périphériques



bloqués Pour désactiver une ressource, exécutez:



# drbdadm down test


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



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




VĂ©rifier l'Ă©tat d'une ressource pour le

mal




Étape 6: DĂ©finition de la ressource principale / source de la synchronisation initiale de l'appareil



À ce stade, DRBD est prĂȘt Ă  fonctionner. Nous devons maintenant spĂ©cifier quel nƓud doit ĂȘtre utilisĂ© comme source de la synchronisation initiale du pĂ©riphĂ©rique.



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




DĂ©finition du nƓud principal comme pĂ©riphĂ©rique de dĂ©marrage 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 il se doit 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 voir 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 Ă  partir duquel nous avons dĂ©marrĂ© la synchronisation complĂšte initiale (qui a une ressource avec un rĂŽle principal):



# mkfs -t ext4 /dev/drbd0




Créez un systÚme de fichiers sur le volume Drbd



Puis montez-le 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 des fichiers au point de montage ci-dessus et faites une longue liste avec la commande ls :



# cd /mnt/DRDB_PRI/
# ls -l 




RĂ©pertoriez le contenu du volume Drbd principal



Ensuite, dĂ©montez le pĂ©riphĂ©rique (assurez-vous que le montage n'est pas ouvert, changez le rĂ©pertoire aprĂšs le dĂ©montage pour Ă©viter les erreurs) et changez le rĂŽle de nƓud de principal Ă  secondaire:



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


Rendez un autre nƓud (qui a une ressource avec un rĂŽle secondaire) principal, puis attachez-lui un pĂ©riphĂ©rique et exĂ©cutez une longue liste de points de montage. Si la configuration fonctionne correctement, tous les fichiers stockĂ©s sur le volume devraient s'y trouver:



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




VĂ©rification de la configuration DRBD exĂ©cutĂ©e sur le nƓud secondaire.



Pour plus d'informations, reportez-vous aux pages de manuel 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 pour ajouter de la haute disponibilitĂ© Ă  presque toutes les applications. Dans cet article, nous vous avons montrĂ© comment installer DRBD sur CentOS 7 et avons briĂšvement expliquĂ© comment l'utiliser pour rĂ©pliquer le stockage. N'hĂ©sitez pas Ă  partager vos impressions avec nous en utilisant le formulaire de commentaires ci-dessous.






En savoir plus sur le cours.







All Articles