DRDB

DRBD (Distributed Replicated Block Device) permet de créer un périphérique synchronisé entre deux serveurs.

Configuration de DRBD sous Debian

Testé avec Debian Wheezy.

Nous allons voir comment installer et configurer une ressource DRBD.

Configuration des hôtes

A faire sur les deux hôtes :

# apt-get install -y drbd8-utils
# cp /etc/drbd.d/global_common.conf{,.origin}

On modifie le fichier /etc/drbd.d/global_common.conf pour ajouter ces options :

global {
    usage-count yes;
}

common {
    protocol C;

    net {
        sndbuf-size 512k;
    }

    syncer {
        rate 30M;
    }
}

On créé le fichier /etc/drbd.d/r0.res :

resource r0 {
    device    /dev/drbd1;
    disk      /dev/vdb;
    meta-disk internal;

    on nasha1 {
        address   10.42.2.28:7789;
    }
    on nasha2 {
        address   10.42.2.30:7789;
    }
}

Cette commande créera la ressource :

# drbdadm create-md r0

Synchronisation

Nous allons maintenant effectuer une première synchronisation des ressources sur chacun des serveurs.

Il faut faire attention au serveur sur lequel on exécute les commandes.

On dit au serveur esclave que la ressource r0 est invalide :

root@nasha2# drbdadm up r0
root@nasha2# drbdadm invalidate r0

Cela permet de resynchroniser la ressource à partir du maître. On peut maintenant activer la ressource r0 sur l’autre serveur :

root@nasha1# drbdadm up r0

La ressource devrait être en train de se synchroniser entre les deux serveurs :

# cat /proc/drbd
version: 8.3.11 (api:88/proto:86-96)
srcversion: F937DCB2E5D83C6CCE4A6C9

1: cs:SyncSource ro:Secondary/Secondary ds:UpToDate/Inconsistent C r-----
    ns:1577080 nr:0 dw:0 dr:1577080 al:0 bm:96 lo:0 pe:182 ua:0 ap:0 ep:1 wo:f o
os:50850812
        [>....................] sync'ed:  3.1% (49656/51196)Mfinish: 1:54:05 spe
ed: 7,416 (6,704) K/sec

Sélection

Une fois synchronisé, on peut marquer notre serveur comme primaire :

root@nasha1# drbdadm primary r0

Mode maître/maître

Il faut ajouter cette commande dans le fichier de configuration global :

net {
    allow-two-primaries;
}

Note : il faut installer un système de fichier supportant le clustering comme GFS2 ou OCFS2 sous peine d’avoir des corruptions et des plantages.

Administration de DRBD

Supprimer une ressource :

# drbdadm down r0
# drbdadm disconnect r0

Ressources