FLASH INFORMATIQUE FI



DRDB - doublez vos octets


DRBD (Distributed Replicated Block Device) est un logiciel libre sous licence GNU GPLv2 uniquement supporté sur GNU/Linux. Il permet la réplication de périphériques de stockage bloc à bloc, et peut être vu comme un disque RAID-1 réseau. C’est un des composants permettant d’assurer la haute disponibilité des ressources installées sur les disques/partitions/volumes logiques qu’il gère. Dans cet article à multimains, nous allons expliquer ce que d’une part nous avons testé et d’autre part mis en place à l’EPFL pour différentes applications en production.



DRBD is a free software available under the terms of the GNU GPLv2, supported only by GNU/Linux operating systems. It’s one of the components that can be used to ensure high availability of the resources installed on the disks/partitions/logicalvolumes it manages. In this collaborative article, we explain how DRBD works and why it is used at EPFL for different applications under production.


Marc REMY

Julia PAOLINI


Fiche descriptive



Contexte

Le besoin initial est de s’assurer que les données générées par des systèmes sont le plus en sécurité possible. Cela nous a conduits à rechercher un outil permettant la réplication de données garantissant leur consistance de manière transparente et fiable.

Ce qu’il permet de faire  ?

Ce logiciel est édité et supporté par la société Linbit.
Un bon schéma valant mieux qu’un long discours, voici celui qui vous attend sur la page d’accueil du site de DRBD.


Schéma explicatif DRBD - tiré du site

Les deux serveurs sont nommés noeuds, dont un est primaire : c’est lui qui reçoit les informations des couches supérieures. L’autre noeud est secondaire et passif et ne sera actif qu’en cas de panne du noeud primaire.
DRBD agit donc comme un système de réplication de type RAID-1, ni plus, ni moins. Il s’assure que les données soient les mêmes sur les 2 noeuds. Cela signifie que si vous effacez vos données sur un noeud, elles seront aussi effacées sur l’autre !
Ce N’est donc PAS un système de sauvegarde, ni de haute disponibilité en soi ! Par contre, concernant ce dernier cas, il est une des briques de base qui peut être utilisée pour en construire un.

À quel niveau cela intervient  ? Comment cela fonctionne-t-il ?

On ne le répétera jamais assez, DRBD intervient au niveau du bloc, il n’est donc pas conscient de ce qui se passe au niveau des couches supérieures ! Il est donc utile en cas de pannes hardware disque sur le noeud primaire, car le noeud secondaire est vivant et à jour et peut donc être mis comme actif.

Configuration réseau - tiré du site
Il est fortement conseillé, pour des raisons de performances, d’avoir une interface réseau dédiée entre les 2 noeuds de la réplication DRBD. Celle-ci devant être de préférence directe, c’est-à-dire avec un câble droit, ce qui élimine le risque de perte de données dû aux éventuels problèmes réseau (perte d’un switch, etc.).
Il y a plusieurs types de synchronisation possibles (référencés sous l’option protocol) :

  • A réplication asynchrone : les écritures sur le noeud primaire sont considérées comme définitives/validées une fois écrites sur le disque local et placées dans le buffer d’envoi TCP.
  • B réplication semi-synchrone : les écritures sur le noeud primaire sont considérées comme définitives/validées une fois écrites sur le disque local et reçues par le noeud secondaire.
  • C réplication synchrone : les écritures sur le noeud primaire sont considérées comme définitives/validées une fois que le noeud secondaire lui a confirmé que lui aussi a écrit les données.

La synchronisation de type protocol C est logiquement la plus utilisée. C’est le paramétrage qui assure la sécurité maximale des données. En interne, DRBD utilise un système de round-robin à 4 positions pour s’assurer que les données sont synchrones. Si un décalage de plus de 4 positions se produit, le système ne sait plus où se trouvent les bonnes données et il est arrêté. L’erreur est inscrite dans les traces du système et une intervention manuelle, ainsi que la lecture de la documentation concernant le Split-Brain, s’impose.
Il faut également faire attention à la version utilisée, car les commandes ont évolué de la version 8.3 à la version 8.4 (version la plus récente à la date de rédaction de cet article).

À quoi peut-on l’appliquer  ?

Nous, Camptocamp, utilisons déjà des systèmes de fichiers reposant sur DRBD pour plusieurs applications, voici des exemples de ce qui a été mis en place à l’EPFL : GED : stockage des index Lucene, et des fichiers binlog de MySQL. Infoscience : stockage des publications. MyEPFL : stockage de la base de données PostgreSQL. Le service Subversion (SVN) de l’EPFL : stockage de la configuration Apache des dépôts et leurs données. Il est possible pour MySQL de stocker la base de données sur un système de fichiers où DRBD est installé mais attention, seuls les moteurs transactionnels (InnoDB et Falcon) sont supportés.

Avantages / Inconvénients  ?

Les plus

  • La facilité de la mise en place : les paquets sont à installer, ou les sources à compiler (mais sans grand problème).
  • La réplication synchrone et transparente pour les applications.
  • Outil robuste et fiable.
  • Open source.

Les moins

  • Pour être efficaces, les serveurs doivent être géographiquement proches (réduction de la latence).
  • Pour l’instant, pas plus que deux noeuds.
  • Avant la version 2.6.33 du noyau Linux, le module drbd est un module externe, il faut donc installer un paquet séparément depuis une autre source que la distribution utilisée. Et lors de mises à jour du noyau, il faut parfois attendre que le paquet du module drbd soit lui aussi mis à jour.
  • Si le lien réseau entre les deux noeuds n’est pas direct et dédié, DRBD peut générer du trafic sur le réseau sur lequel se trouve les machines (en fonction de l’application qui l’utilise ; cette remarque est à modérer, car il existe un paramètre DRBD qui permet de limiter le trafic).

Aller un peu plus loin

C’est bien joli, allez vous me dire, j’ai mes deux noeuds qui sont synchronisés, si je perds mon noeud primaire que se passe-t-il  ? Et bien pour l’instant, rien, c’est-à-dire que le service est interrompu.
Comme dit plus haut, DRBD s’occupe uniquement de la réplication des blocs. Si vous souhaitez gérer les deux noeuds, il vous faudra mettre en place sur eux une couche supplémentaire d’administration. Celle-ci se divise en deux :

  • La première dite inférieure, gère la communication entre les noeuds ; vous aurez le choix entre les logiciels Heartbeat, corosync et OpenAIS.
  • La seconde dite supérieure, gère les ressources du cluster, celles-ci pouvant être des adresses IP, des services (Apache, Tomcat, etc.), des systèmes de fichiers ; le logiciel pacemaker permet la gestion de ces ressources (quelles ressources tournent sur quel noeud, dans quel ordre, sous quelles conditions).

Il est également possible de configurer DRBD en mode master/master (dual-primary mode), mais il faut alors un système de fichiers supportant les accès concurrents (comme GFS, GFS2 et OCFS2) et utiliser corosync car les autres ne les supportent pas.

Conclusion

Camptocamp

Actuellement nous sommes très satisfaits de cet outil que nous avons mis en production sur :

  • Les plates-formes suivantes :
RHEL 5 Tikanga DRBD 8.3
RHEL 6 Santiago DRBD 8.4
Debian 6 Squeeze DRBD 8.3
  • Les systèmes de fichiers ext3 et ext4

Aucune perte de données n’a été à déplorer concernant l’expérience cumulée, nous n’avons vraiment pas eu d’incidents liés à DRBD, juste quelques arrêts avec le passage en Split-Brain, résolus sans problème avec la page citée en référence.

Julia

Uniquement testé et pas encore implémenté, je m’y suis intéressée plus particulièrement pour le mettre en place pour MySQL.
Comme dit plus haut, les tests de DRBD ont été faciles à réaliser, les tests de la couche de management (heartbeat-pacemaker) sont un peu plus délicats, il faut bien lire la documentation pour comprendre les impacts des paramètres.
On pourrait être tentés de comparer DRBD à la réplication MySQL, mais ce sont deux outils différents qui répondent à deux besoins distincts. Avant de choisir l’un ou l’autre, il faut se pencher sur ses besoins, et les limitations des outils. De plus, il est possible de combiner les deux technologies pour bénéficier des avantages de chacune, comme illustré sur le schéma ci-dessous.

Combinaison de DRBD et de la réplication MySQL - tiré du site
Le noeud primaire est noté comme étant active server, le noeud secondaire comme étant passive server. Le noeud actif a le rôle de maitre MySQL et les 3 machines au bas du schéma sont les slaves. Sans rentrer dans le détail, cette configuration permet de faire du fail-over grâce à DRBD et du load-balancing grâce à la réplication MySQL.





Glossaire

RAID-1 :
configuration miroir où les données sont répliquées à l’identique sur chaque disque.
round-robin :
méthode permettant de choisir une ressource parmi une liste. Si celle-ci n’est pas disponible, on essaye la suivante, puis ainsi de suite jusqu’à ce que la fin de la liste soit atteinte. L’on revient ensuite à la première de la liste, etc.


Article du FI-EPFL 2012 sous licence CC BY-SA 3.0 / J. Paolini ] M. Remy



Cherchez ...

- dans tous les Flash informatique
(entre 1986 et 2001: seulement sur les titres et auteurs)
- par mot-clé

Avertissement

Cette page est un article d'une publication de l'EPFL.
Le contenu et certains liens ne sont peut-être plus d'actualité.

Responsabilité

Les articles n'engagent que leurs auteurs, sauf ceux qui concernent de façon évidente des prestations officielles (sous la responsabilité du DIT ou d'autres entités). Toute reproduction, même partielle, n'est autorisée qu'avec l'accord de la rédaction et des auteurs.


Archives sur clé USB

Le Flash informatique ne paraîtra plus. Le dernier numéro est daté de décembre 2013.

Taguage des articles

Depuis 2010, pour aider le lecteur, les articles sont taggués:
  •   tout public
    que vous soyiez utilisateur occasionnel du PC familial, ou bien simplement propriétaire d'un iPhone, lisez l'article marqué tout public, vous y apprendrez plein de choses qui vous permettront de mieux appréhender ces technologies qui envahissent votre quotidien
  •   public averti
    l'article parle de concepts techniques, mais à la portée de toute personne intéressée par les dessous des nouvelles technologies
  •   expert
    le sujet abordé n'intéresse que peu de lecteurs, mais ceux-là seront ravis d'approfondir un thème, d'en savoir plus sur un nouveau langage.