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é :
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 :
Voir l'état des disques et sa configuration :
cat /proc/drbd drbd-overview drbdadm dump
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 :
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
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/
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/