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
[Nota]

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 Capitolo 7, 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;
            }
    } 
    
    [Nota]

    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