DRBD
DRDB (Distributed Replicated Block Device) replica i device a blocchi tra diversi host. La replica è trasparente alle applicazioni sul sistema host e qualsiasi device a blocchi (disco fisso, partizione, RAID, volume logico) può essere replicato.
Per utilizzare drbd, per prima cosa è necessario installare i pacchetti necessari. In un terminale digitare:
sudo apt-get install drbd8-utils
Se si sta usando il kernel virtuale come parte di una macchina virtuale, è necessario compilare il modulo drbd. Potrebbe anche essere più semplice installare il pacchetto linux-server nella macchina virtuale.
In questa sezione viene indicato come configurare drbd per replicare tra due host una partizione /srv separata con file system ext3. La dimensione della partizione non è rilevante, ma entrambe le partizioni devono avere la stessa dimensione.
Configurazione
I due host in questo esempio sono chiamati drbd01 e drbd02 ed è necessario configurarne la risoluzione del nome attraverso DNS o con il file /etc/hosts. Per maggiori informazioni, consultare DNS (Domain Name Service).
-
Per configurare drbd, sul primo host modificare il file /etc/drbd.conf:
global { usage-count no; } common { syncer { rate 100M; } } resource r0 { protocol C; startup { wfc-timeout 15; degr-wfc-timeout 60; } net { cram-hmac-alg sha1; shared-secret "secret"; } on drbd01 { device /dev/drbd0; disk /dev/sdb1; address 192.168.0.1:7788; meta-disk internal; } on drbd02 { device /dev/drbd0; disk /dev/sdb1; address 192.168.0.2:7788; meta-disk internal; } }
All'interno del file /etc/drbd.conf sono disponibili molte opzioni, ma per questo esempio i valori predefinito sono sufficienti.
-
Copiare il file /etc/drbd.conf sul secondo host:
scp /etc/drbd.conf drbd02:~
-
Sull'host drbd02, spostare il file in /etc:
sudo mv drbd.conf /etc/
-
Utilizzando l'utilità drbdadm, inizializzare l'archivio dei meta-dati. Su ogni singolo server eseguire il seguente comando:
sudo drbdadm create-md r0
-
Su entrambi gli host, avviare il demone drbd:
sudo /etc/init.d/drbd start
-
Sull'host drbd01, o su qualsiasi host primario configurato, digitare:
sudo drbdadm -- --overwrite-data-of-peer primary all
-
Una volta eseguito il comando precedente, inizierà la sincronizzazione dei dati con l'host secondario. Per visualizzare l'avanzamento, su drbd02, digitare il seguente comando:
watch -n1 cat /proc/drbd
Per fermare l'operazione di controllo, premere Ctrl+c.
-
Infine, aggiungere un file system a /dev/drbd0 e montarlo:
sudo mkfs.ext3 /dev/drbd0 sudo mount /dev/drbd0 /srv
Test
Per verificare che i dati siano effettivamente sincronizzati tra gli host, copiare alcuni file sull'host primario, drbd01, nella directory /srv:
sudo cp -r /etc/default /srv
Smontare /srv:
sudo umount /srv
Retrocedere il server primario a ruolo di secondario:
sudo drbdadm secondary r0
Ora, promuovere il server secondario a primario:
sudo drbdadm primary r0
Per completare, montare la partizione:
sudo mount /dev/drbd0 /srv
Usando ls dovrebbe essere possibile vedere il file /srv/default copiato dal precedente host primario drbd01.
Riferimenti
-
Per maggiori informazioni riguardo DRBD, consultare il sito web di DRBD.
-
The drbd.conf man page contains details on the options not covered in this guide.
-
Also, see the drbdadm man page.
-
Ulteriori informazioni sono disponibili nella documentazione online.