Files
org-roamings/20220525214257-drbd.org
2022-06-04 12:57:39 +02:00

72 lines
3.7 KiB
Org Mode

: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 <resource>
modprobe drbd
drbdadm up <resource>
#+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 <resource>
#+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]]