:PROPERTIES: :ID: 34ceb92e-c507-4c61-9c6a-51501b80f054 :mtime: 20220525221941 :ctime: 20220525214257 :END: #+title: DRBD * Introduction DRBD : * *Distributed Replicated Block Device* en anglais, périphérique en mode bloc répliqué et distribué en français, * Architecture de stockage distribuée pour GNU/Linux, * Permet la réplication de périphériques de bloc (disques, partitions, volumes logiques etc.) entre des serveurs, * Open source et support commercial, * Est composé d'un module noyau et d'outils d'administration en /user space/, * peut être utilisé aussi bien en dessous qu'au-dessus de la pile de Linux LVM, * Support de la répartition de charge depuis la version 8, * Réplication entre 2 serveurs, plus à partir de la version 9. * Peut être intégré à un cluster ([[id:012e07b1-e12a-46e9-9a26-a93cde8b92ce][Pacemaker]] par exemple), * Est intégré au projet [[http://www.linux-ha.org/wiki/Main_Page][Linux HA]]. #+DOWNLOADED: https://upload.wikimedia.org/wikipedia/commons/thumb/4/47/Drbd-arch.png/640px-Drbd-arch.png @ 2022-05-25 22:06:08 #+ATTR_ORG: :width 500 [[file:Introduction/640px-Drbd-arch_2022-05-25_22-06-08.png]] * Réplication de données La réplication des données est réalisée : * En *temps réel* et *en permanence* : pendant que les applications modifient les données présentes sur le /block device/, * De façon *transparente* (réplication au niveau /block device/) : les applications n'ont pas conscience que ces données sont stockées et répliquées, * De façon synchrone ou asynchrone : * *Synchrone* : l'écriture sur le /block device/ entraine la mise à jour sur l'ensemble des serveurs avant la notification de fin d'écriture, * *Asynchrone* : la notification de fin d'écriture est réalisée avant la réplication de la données sur les autres serveurs. * Principes de fonctionnement * DRBD ajoute une couche logique de /block device/ (conventionnellement nommée /dev/drbdX, ou X est le numéro de périph. mineur), * Les écritures sur le noeud primaire sont transférées sur le /block device/ et propagées au noeud secondaire pour que celui-ci transfère les données à son /block device/, * Les lectures sont effectées localement. * En cas de défaillance du nœud primaire : * Un orchestrateur promeut le nœud /slave/ dans un état /master/, * Quand l'ancien nœud /master/, précédemment défaillant, revient, le système peut ou non l'élever au rôle de /master/, après une synchronisation des données du périphérique. * L'algorithme de synchronisation de DRBD est efficace : *seuls les blocs qui ont changé durant la panne doivent être resynchronisés*, plutôt que le périphérique dans son entièreté. * Les outils ** drbdadm Outil d'administration de haut niveau de DRBD. Il utilise le fichier de config ~/etc/drbd.conf~ et sert d'interface avec les outils suivants. *** Création d'une ressource (à faire sur chacun des serveurs) #+BEGIN_SRC shell :results output drbdadm create-md modprobe drbd drbdadm up #+END_SRC *** Pour forcer un serveur à passer /master/ (suite à un /split-brain/ par exemple) L'autre server devenant alors /slave/ et devant synchroniser ses données avec celles du nouveau maitre : #+BEGIN_SRC shell :results output drbdadm -- --overwrite-data-of-peer primary #+END_SRC ** drbdsetup Outil du configuration du module DRBD après son chargement. ** drbdmeta Outil permettant la manipulation des métadonnées des structures de DRBD. * Références * [[https://fr.wikipedia.org/wiki/DRBD][Drbd - Wikipedia]] * [[https://fr-wiki.ikoula.com/fr/Mise_en_place_de_DRBD_en_mode_primaire-secondaire][Mise en place de DRBD en mode primaire/secondaire - wiki-ikoula]]