DRBD

Aus xinux.net
Zur Navigation springen Zur Suche springen

konfigurationsdatei

global {

   usage-count yes;

} common {

       syncer {
               rate 10M;
       }
       protocol C;
       handlers {
               pri-on-incon-degr "echo o > /proc/sysrq-trigger ; halt -f";
               pri-lost-after-sb "echo o > /proc/sysrq-trigger ; halt -f";
               local-io-error "echo o > /proc/sysrq-trigger ; halt -f";
               outdate-peer "/usr/sbin/drbd-peer-outdater";
       }
       startup {
       }
       disk {
               on-io-error   detach;
       }
       net {
               after-sb-0pri disconnect;
               after-sb-1pri disconnect;
               after-sb-2pri disconnect;
               rr-conflict disconnect;
       }

} resource data {

               device          /dev/drbd0;
               meta-disk       internal;
       on emi {
               disk            /dev/sdd;
               address         10.0.0.1:7788;
       }
       on lilly {
               disk            /dev/sdb;
               address         10.0.0.2:7788;
       }

} <--

#/etc/drbd.conf
global {
    usage-count yes;
}
common {
  syncer { rate 10M; }
}
resource data {
  protocol C;
  handlers {
    pri-on-incon-degr "echo o > /proc/sysrq-trigger ; halt -f";
    pri-lost-after-sb "echo o > /proc/sysrq-trigger ; halt -f";
    local-io-error "echo o > /proc/sysrq-trigger ; halt -f";
    outdate-peer "/usr/sbin/drbd-peer-outdater";
  }
  startup {
  }
  disk {
    on-io-error   detach;
  }
  net {
    allow-two-primaries;
    after-sb-0pri disconnect;
    after-sb-1pri disconnect;
    after-sb-2pri disconnect;
    rr-conflict disconnect;
  }
  syncer {
    rate 10M;
    al-extents 257;
  }
  on thorin {
    device     /dev/drbd0;
    disk       /dev/sda3;
    address    172.18.241.29:7788;
    meta-disk  /dev/sda5 [0];
  }
  on thrain {
    device    /dev/drbd0;
    disk      /dev/sda3;
    address    172.18.241.30:7788;
    meta-disk /dev/sda5 [0];
  }
}

konfigurationsdatei auf andere node kopieren

root@thorin:~# scp /etc/drbd.conf thrain:/etc

auf beiden seiten md kreieren

root@thorin:~# drbdadm create-md  data
root@thrain:~# drbdadm create-md  data

partitionen aktivieren

root@thorin:~# drbdadm up  data
root@thrain:~# drbdadm up  data

eine seite auf master setzen.

root@thorin:~# drbdsetup /dev/drbd0 primary -o

formatieren.

root@thorin:~# mkfs.ext3 /dev/drbd0

---!>

Split Brain recovery manuell

Auf dem Secondary Node folgendes ausführen:

drbdadm secondary data 
drbdadm disconnect data 
drbdadm -- --discard-my-data connect data

und auf dem Primary Node:

drbdadm connect data

Das System stellt sich dann von selbst wieder her, wenn keine anderen Probleme vorliegen.

Zustand checken

root@reliant:~# drbd-overview 
  0:galactica-services  SyncTarget Primary/Primary Inconsistent/UpToDate C r---- 
	[====>...............] sync'ed: 25.7% (38072/51196)M
  1:orion               Connected  Primary/Primary UpToDate/UpToDate     C r----

Hozhammermethode

drbdadm -- --overwrite-data-of-peer primary data

Nützliche Kommandos für drbdadm

Der Befehl drbdadm ist vergleichbar mit mdadm bei Softraids. Er kann mit verschiedenen Parametern dazu benutzt werden, DRBD-Devices wie oben bereits gezeigt zu erstellen, aber auch zu ändern, zu (de-)aktivieren oder zu löschen.

Volle Neusynchronisation

von /dev/drbd0 mittels der DRBD-Ressource 'home-data' (Status in /proc/drbd)

drbdadm attach home-data

Trennen der Verbindung von Laufwerk und DRBD-Ressource:

drbdadm detach home-data 

Verbinden des DRBD-Treibers mit dem anderen Node:

drbdadm connect home-data 

Bestehende DRBD-Verbindung zum anderen Node trennen:

drbdadm disconnect home-data 

Masterrolle agbgeben:

drbdadm secondary home-data

Masterrolle übernehmen:

drbdadm primary home-data 

Übernahme von Änderungen an /etc/drbd.conf:

drbdadm adjust home-data 

Statusabfrage der Verbindung:

drbdadm role home-data