DRBD unter Ubuntu 10.04 einrichten

DRBD steht für Distributed Replicated Block Device. Vergleichbar ist das ganze mit Raid1, nur dass es nicht auf dem lokalen Computer geschieht, sondern über das Netzwerk zwischen zwei Computern. Eingesetzt wird diese Technik zum Beispiel um ein hochverfügbares System aufzubauen. Dabei ist der eine Computer immer der Master und der andere immer der Slave. Sollte einer von beiden ausfallen, kann der Zweite ohne Probleme die Arbeit ungehindert fortsetzen. Im folgenden wird gezeigt wie DRBD unter Ubuntu 10.04 eingerichtet werden kann. Es sollte sich so oder so ähnlich auch auf andere Linux-Distributionen übertragen lassen.

Zuerst wird eine freie Partition auf zwei Computern benötigt. Danach muss das Paket drbd8-utils installiert werden. Dies geschieht mit dem Aufruf des folgenden Befehls.

$ sudo apt-get install drbd8-utils

Anschließend kann im Verzeichnis /etc/drbd.d eine neue Datei angelegt werden. Diese muss unbedingt die Endung .res haben. Diese könnte zum Beispiel wie folgt aussehen.

resource test-data {
    # Protokoll-Version
    protocol C;
    startup {
        # Timeout (in Sekunden) für Verbindungsherstellung beim Start
        wfc-timeout         10;
        # Timeout (in Sekunden) für Verbindungsherstellung beim Start
        # nach vorheriger Feststellung von Dateninkonsistenz
        # ("degraded mode")
        degr-wfc-timeout  120;
    }

    disk {
        # Aktion bei EA-Fehlern: Laufwerk aushängen
        on-io-error detach;
    }

    net {
        # Algorithmus muss in /proc/crypto aufgelistet sein
        cram-hmac-alg sha1;
        # Passwort fuer Auth, wird empfohlen, bis 64 Zeichen lang
        shared-secret "geheim";
    }

    syncer {
        # Geschwindigkeit der HA-Verbindung
        rate 100M;
    }

    on test1 {
        # Name des bereitgestellten Blockdevices
        device     /dev/drbd0;
        # dem DRBD zugrunde liegendes Laufwerk
        disk       /dev/sda1;
        # Adresse und Port des Rechners test1
        address    192.168.1.1:7788;
        # Speicherort der Metadaten, hier im Laufwerk selbst
        meta-disk  internal;
    }

    on test2 {
        # Name des bereitgestellten Blockdevices
        device     /dev/drbd0;
        # dem DRBD zugrunde liegendes Laufwerk
        disk       /dev/sda1;
        # Adresse und Port des Rechners test2
        address    192.168.1.2:7788;
        # Speicherort der Metadaten, hier im Laufwerk selbst
        meta-disk  internal;
    }

}

Im konfigurierten Verbund sind die Rechner test1 und test2. Dabei wird jeweils die Partition /dev/sda1 als physisches Gerät verwendet. Das über DRBD zur Verfügung gestellte Block Device kann über /dev/drbd0 angesprochen werden.

Wichtig: Die Namen der Computer sollten per DNS oder per /etc/hosts aufgelöst werden können.

Die Datei muss auf beiden Computer vorhanden sein.

Anschließend muss auf den beteiligten Computern die Meta-Daten erstellt werden. Dies geschieht mit dem Befehl:

$ sudo drbdadm create-md test-data

Ist dies gemacht kann der DRBD-Dienst gestartet werden. Dies kann wie folgt realisiert werden:

$ sudo /etc/init.d/drbd start

Läuft der Dienst bereits sollte anstatt von "start" "restart" verwendet werden.

Zum Schluss muss noch dem entsprechenden Computer mitgeteilt werden, dass er der Master ist. (Wichtig: Nicht auf beiden Computern ausführen!!!)

$ sudo drbdadm -- --overwrite-data-of-peer primary all

Ist alles erfolgreich gewesen, dann steht das neue Block-Gerät über /dev/drbd0 zur Verfügung und kann wie eine lokale Festplatte angesprochen werden. Zum Beispiel kann wie folgt die Festplatte mit dem ext3-Dateisystem formatiert und eingebunden werden.

$ sudo  mkfs.ext3 /dev/drbd0
$ sudo mount /dev/drbd0 /mnt

Der aktuelle Status von DRBD kann mit folgendem Befehl abgerufen werden.

$ cat /proc/drbd

Verwandte Artikel