DRBD – TecArt-CRM Developer-Wiki

DRBD

Aus TecArt-CRM Developer-Wiki

Wechseln zu: Navigation, Suche

Inhaltsverzeichnis

Ressourcen Erstellen

Alleinstehende Ressourcen

Um eine Disk mit DRBD zu spiegeln, muss zunächst auf beiden Nodes eine gleich große, leere Partition oder Festplatte bestehen. Um DRBD nun auf diese Partition anzuwenden erstellt man eine Config wie folgt:

resource RES_NAME {
  device    /dev/drbd1;
  disk      /dev/DISK_NAME;
  meta-disk internal;

  floating 10.10.10.1:7790;
  floating 10.10.10.2:7790;
}

Wobei RES_NAME durch einen einzigartigen Namen und DISK_NAME durch den Namen der Disk ausgetauscht werden muss. Außerdem müssen die IP-Adressen denen der beiden Nodes angepasst werden. Wichtig ist auch der Port, welcher für den Node einzigartig sein muss und noch nicht von anderen Programmen belegt sein darf.

Diese Konfiguration wird unter /etc/drbd.d/ als "RES_NAME.res" abgelegt.

Ist dies geschehen muss mit dem folgendem Befehl auf beiden Nodes der Metadatenspeicher erstellt werden:

[root@primary-node /]# drbdadm create-md RES_NAME

Erst wenn das geschehen ist, kann die Disk auf beiden Nodes gestartet werden:

[root@primary-node /]# drbdadm up RES_NAME

Danach wird auf dem primären Node die Ressource als Primär markiert:

[root@primary-node /]# drbdadm primary RES_NAME

Nun sollte in /proc/drbd der Fortschritt der Resourcen-Synchronisation angezeigt werden.

XEN VMs mit DRBD Ressourcen

Um XEN VMs zu erstellen, welche DRBD-Replizierte Disks haben, muss lediglich dem Erstellskript der weitere Parameter -D mit dem Hostnamen oder der IP des zweiten Nodes übergeben werden:

[root@primary-node /]# xen-create-vm -v 0 -h VM_HOSTNAME -s SKELETON -D SECOND_DRBD_HOST

Ressourcen Löschen

Um Ressourcen zu löschen, muss zuerst sichergestellt werden, das die Ressource nicht durch das Betriebssystem verwendet wird (z.B. gemountet ist oder durch ein Programm wie XEN verwendet wird). Ist dies geschehen, kann die Ressource mit folgendem Befehl gestoppt werden:

[root@drbd /]# drbdadm down RES

Dieser Befehl muss auf beiden DRBD-Hosts ausgeführt werden. Ist dies geschehen, muss anschließend die Konfiguration der Ressource unter /etc/drbd.d/ gelöscht werden und danach, wenn gewünscht, die jeweilige Partition auf dem Server. Ist dies alles geschehen, sollte unter

[root@drbd /]# /etc/init.d/drbd status

der Eintrag für die zuvor gelöschte Ressource nicht mehr vorhanden sein. Ist dies nicht der Fall kann ein Neuladen über folgenden Aufruf erzwungen werden:

[root@drbd /]# /etc/init.d/drbd reload


Outdated Disk Problem / Split Brain

Es kann vorkommen, dass DRBD nach dem Trennen der Verbindung zweier Disks den Status beider Platten auf Inconsistent setzt und beide Platten als Secondary markiert. In einem solchen Fall können die Disks über einen einfachen Connect-Befehl nichtmehr verbunden werden. Dies merkt man an den Stati der Disks auf beiden Nodes - der ehemalige Primary Node berichtet WFConnection (Waiting for Connection) und der ehemalige Secondary Node Standalone.

Um die Disks wieder zu Verbinden gibt es zwei Möglichkeiten. Die erste ist, mit Folgendem Befehl DRBD direkt anzuweisen, die Peer-Daten des Secondary Nodes zu überschreiben und den eigentlichen Primary Node wieder als solchen zu markieren:

[root@primary-node /]# drbdadm -- --overwrite-data-of-peer primary RES

Der Secondary Node muss danach noch mit folgendem Befehl angewiesen werden, die lokalen Daten mit denen des Primary Nodes zu ersetzen:

[root@drbd /]# drbdadm -- --discard-my-data connect RES

wobei RES für die DRBD-Ressource steht, die geändert wird. Danach sollte der Status der Ressource sich in /proc/drbd ähnlich wie nachfolgend geändert haben:

[root@drbd /]# cat /proc/drbd 
version: 8.3.7 (api:88/proto:86-91)
srcversion: EE47D8BF18AC166BE219757 

 1: cs:Connected ro:Primary/Secondary ds:UpToDate/UpToDate A r----
    ns:0 nr:463236 dw:463236 dr:41941676 al:0 bm:1280 lo:0 pe:0 ua:0 ap:0 ep:1 wo:b oos:0

Sollte diese Methode nicht funktionieren, kann man den UpToDate-Status der Festplatte auch per Hand setzen, dazu muss man auf dem Primary Node folgende Befehle ausführen:

[root@drbd /]# drbdadm down RES
[root@drbd /]# drbdadm -- ::::1:1:::: set-gi RES
[root@drbd /]# drbdadm up RES
[root@drbd /]# drbdadm primary RES

Zusätzlich muss auf dem Secondary Node der Befehl

[root@drbd /]# drbdadm -- --discard-my-data connect RES

ausgeführt werden. Danach sollte DRBD die Disks wieder verbunden und eine der Disks als Primary markiert haben.