DRBD: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
Pascal (Diskussion | Beiträge) (Die Seite wurde neu angelegt: „'''DRBD<sup>®</sup>''' (''Distributed Replicated Block Device'') ist eine freie Netzwerkspeicherlösungs-Software. Als Kernel…“) |
Thomas (Diskussion | Beiträge) |
||
(15 dazwischenliegende Versionen von 5 Benutzern werden nicht angezeigt) | |||
Zeile 1: | Zeile 1: | ||
− | + | ==Minimale Konfigurationsdatei== | |
+ | <source lang="bash"> | ||
+ | global { usage-count yes; } | ||
+ | common { | ||
+ | syncer { rate 100M; } | ||
+ | protocol C; | ||
+ | } | ||
+ | resource data { | ||
+ | device /dev/drbd0; | ||
+ | meta-disk internal; | ||
+ | on cp1 { | ||
+ | disk /dev/sdb; | ||
+ | address 10.0.0.1:7788; | ||
+ | } | ||
+ | on cp2 { | ||
+ | disk /dev/sdb; | ||
+ | address 10.0.0.2:7788; | ||
+ | } | ||
+ | } | ||
+ | </source> | ||
− | = | + | <!--- |
− | + | <source lang="bash"> | |
− | + | 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; | ||
+ | } | ||
+ | } | ||
+ | </source> | ||
− | + | #/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 | ||
+ | =Synrate= | ||
+ | ==erhöhen== | ||
+ | *drbdadm disk-options --c-plan-ahead=0 --resync-rate=110M home-data | ||
+ | ==rückgängig machen== | ||
+ | *drbdadm adjust home-data | ||
+ | |||
+ | =Links= | ||
+ | *https://docs.linbit.com/doc/users-guide-84/s-configure-sync-rate/ |
Aktuelle Version vom 20. September 2017, 17:40 Uhr
Minimale Konfigurationsdatei
global { usage-count yes; }
common {
syncer { rate 100M; }
protocol C;
}
resource data {
device /dev/drbd0;
meta-disk internal;
on cp1 {
disk /dev/sdb;
address 10.0.0.1:7788;
}
on cp2 {
disk /dev/sdb;
address 10.0.0.2:7788;
}
}
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
Synrate
erhöhen
- drbdadm disk-options --c-plan-ahead=0 --resync-rate=110M home-data
rückgängig machen
- drbdadm adjust home-data