Table des matières

Redondance de disques avec DRBD

DRBD (Distributed Replicated Block Device) est un outil libre pour répliquer des blocs (disques, partitions, volumes LVM…) entre plusieurs serveurs Linux via une connexion réseau. Il peut être utile en cas de vouloir stocker des machines virtuelles, snapshots, etc.

Pour en savoir plus, voici les liens dont je me suis inspiré :

Pré-requis

Son mode de fonctionnement est très simple et requis juste un paquet qui est le suivant :

apt install drbd8-utils xfsprogs

Le second paquet permet d'utiliser le système de fichier XFS pour avoir la possibilité d'effectuer des snapshots

Pour limiter les futurs erreurs mineurs; j'explique quelques points :

  1. Lorsque l'on définira des instances avec leur IP, il faudra que celles-ci soient en corrélation avec le hostname.
  2. Les fichiers de configurations doivent avoir l'extension du fichier en .res.
  3. Une ressource peut être monté uniquement sur la machine déclaré “primaire”. Les autres serveurs restent passifs.

Status

Voir l'état des disques et sa configuration :

cat /proc/drbd
drbd-overview
drbdadm dump

Création de devices

Admettons que nous navons pas de disque durs à porté de main, on devra donc créer deux périfériques virtuel (devices). On peut les comparer ici à des partitions que l'on aurait pu créer au préalable :

dd if=/dev/zero of=/dev/loop bs=1M count=500
losetup /dev/loop1 /dev/loop

Ainsi, sur les deux machines :

disque.res
resource disque {
  meta-disk internal;
  device /dev/drbd1;
  syncer {
        verify-alg sha1;
  }
    on machine1  {
        disk /dev/loop1;
        address 192.168.4.233:7014;
    }
    on machine2 {
        disk /dev/loop1;
        address 192.168.4.200:7014;
    }
}

Pour vérifier que les synthaxes soient bien appliqué :

drbdadm dump disque

Un fois que la configuration est bien appliqué, on peut initialiser le disque virtuel dont la commande suivante doit être executé sur chacune des machines :

drbdadm create-md disque

Activer la ressource

Sur chacune des machines, nous vérifions d'abord que le module permettant de supporter un périphérique de type drbd est faisable :

modprobe drbd

Nous activons le périphérique :

drbdadm up disque

Sur une des machines, nous décidons d'un serveur maître avec cette commande :

drbdadm -- --overwrite-data-of-peer primary disque

Nous pouvons vérifier que tout s'est bien passé :

cat /pdrbdadm primaryroc/drbd

Il nous reste plus qu'a rendre utile le périphérique drbd1 :

mkfs.xfs /mnt/drbd1
mkdir /mnt/volume/
mount /mnt/drbd1 /mnt/volume/

Déplacer la ressource

Sur le serveur que l'on a désigné primaire, on lui indiquera que ce n'est plus le cas avec les commandes suivantes :

umount /mnt/volume/
drbdadm secondary disque

Et sur le serveur qui doit prendre le relais :

drbdadm primary disque
mount /mnt/drbd1 /mnt/volume/