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.conf
qui contient les sections de configuration DRBD globale et générale, et nous devons définir des ressources dans les .res
fichiers.
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.