Tutorials - DRBD

Sprachenübersicht/Betriebssysteme/Linux/Internet & Netzwerk

DRBD

Diese Seite wurde 17538 mal aufgerufen.

Dieser Artikel wurde in einem Wikiweb System geschrieben, das heißt, Sie können die Artikel jederzeit editieren, wenn Sie einen Fehler gefunden haben, oder etwas hinzufügen wollen.

Editieren Versionen Linkpartnerschaft Bottom Printversion

Keywords: drbd redundant high availability mirror raid1 network block device

Inhaltsverzeichnis



Vorwort Top


Möchte man einen hochverfügbaren Server betreiben, greift man gewöhnlich auf redundante Hardware zurück. Damit die Daten auf beiden Servern identisch sind, wird gewöhnlich ein gemeinsamer Storage verwendet. Doch auch der Storage muss zweifach ausgelegt sein, und genau hier kommt DRBD ins Spiel.

DRBD, das Distributed Replicated Block Device, ist ein Stück Software aus Österreich, welches über das Netzwerk eine Art Raid1 realisiert.

Installation Top


Da DRBD noch nicht im Kernel integriert ist, muss es zusätzlich heruntergeladen werden. Aus meiner Sicht lässt sich das wunderbar mit einem persönlich optimierten Kernel kombinieren.

Als erstes Laden wir die Kernel-Quellen herunter, entpacken den Kernel und konfigurieren ihn. Daraufhin muss er ein erstes Mal übersetzt werden. Dann folgen die DRBD-Quellen von der DRBD-Homepage. Im entpackten Verzeichnis exisitert die Datei Makefile.

In dieser Datei ändern wir folgende Zeile:

/usr/src/drbd-8.0.3/Makefile:


aus: KDIR := $(shell echo /lib/modules/`uname -r`/build)
wird: KDIR="/usr/src/linux-2.6.21.3"



KDIR muss auf das aktuelle Kernel-Source-Verzeichnis zeigen.

Nun folgt ein make kernel-patch, make tools und ein make install-tools im DRBD-Verzeichnis.

Um den erzeugten Kernel-Patch anzuwenden, wechseln wir in das Kernel-Source-Verzeichnis und führen folgenden Befehl aus:

/usr/src/linux-2.6.21.3:


patch -p1 -i ../drbd-8.0.3/patch-linux-2.6.21.3-drbd-8.0.3



Mit make menuconfig aktivieren wir jetzt unter Device-Drivers -> Block Devices das DRBD-Modul und kompilieren und installieren den Kernel. Eventuell muss noch die Grub-Konfiguration angepasst werden.

Konfiguration Top


Für das Netzwerk-Blockdevice ist auf beiden Rechnern eine leere Partition erforderlich, die wenn möglich, die selbe Größe haben sollten.

Die DRBD-Konfiguration sieht minimalistisch etwa so aus:

/etc/drbd.conf:


resource r0 {
  protocol C;

  syncer {
    rate 100M;
  }

  on client2 {
    device     /dev/drbd0;
    disk       /dev/hda2;
    address    192.168.0.50:7788;
    meta-disk  internal;
  }

  on client1 {
    device    /dev/drbd0;
    disk      /dev/hda2;
    address   192.168.0.51:7788;
    meta-disk internal;
  }
}



Initialisierung Top


Wir führen nun auf beiden Seiten folgenden Befehl aus:

Code:


drbdadm create-md r0
/etc/init.d/drbd start



Laut drbdadm dstate r0 haben wir nun auf beiden Seiten in inkonsistentes Raid1. Dies wird auf dem zukünftigen Primary wie folgt aufgelöst:

Code:


drbdadm detach r0
drbdadm attach r0
drbdadm primary r0
mkfs.xfs -f /dev/drbd0

mkdir /mnt/drbd
mount /dev/drbd0 /mnt/drbd



Jetzt haben wir bereits ein Dateisystem auf dem gespiegelten Block Device und es unter /mnt/drbd eingebunden. In der Zwischenzeit wird die komplette Partition auf den remote Host gespiegelt.

Status und Umschaltung Top


drbdadm <statustyp> r0 bietet drei verschiedene Statusinformationen:

  • state - gibt Secondary bzw. Primary für Local und Remote zurück


  • dstate - gibt UpToDate bzw. Inconsistend für Local und Remote zurück


  • cstate - gibt Connected, SyncSource bzw. SyncTarge aus Sicht des lokalen Hosts zurück



Mit watch cat /proc/drbd kann man den Resynchronisationsvorgang mitverfolgen.

Um von Primary auf Secondary umzuschalten, wird zuerst auf dem aktuellen Primary drbdadm secondary r0 und drbdadm primary r0 auf dem neuen Primary ausgeführt.

Automatisierung Top


Wie man eine automatische Umschaltung des Blockdevice mit Heartbeat erreicht, folgt in einem weiteren Tutorial.

Weblinks Top



Gibt es noch irgendwelche Fragen, oder wollen Sie über den Artikel diskutieren?

Editieren Versionen Linkpartnerschaft Top Printversion

Haben Sie einen Fehler gefunden? Dann klicken Sie doch auf Editieren, und beheben den Fehler, keine Angst, Sie können nichts zerstören, das Tutorial kann wiederhergestellt werden

Sprachenübersicht/Betriebssysteme/Linux/Internet & Netzwerk/DRBD