Relecture rapide
This commit is contained in:
parent
62da558c7c
commit
9333188e21
182
HowtoDRBD.md
182
HowtoDRBD.md
|
@ -1,24 +1,37 @@
|
||||||
# Howto DRBD
|
# Howto DRBD
|
||||||
|
|
||||||
Cette documentation concerne DRBD 8.3 (Debian 7 ou backports Debian 6) et DRBD 8.9 (Debian 8).
|
* Documentation : <http://www.drbd.org/en/doc/users-guide-84>
|
||||||
|
|
||||||
<http://drbd.linbit.com/users-guide/>
|
|
||||||
<http://drbd.linbit.com/users-guide-8.3/>
|
|
||||||
|
|
||||||
## Installation
|
## Installation
|
||||||
|
|
||||||
Debian 8 :
|
|
||||||
|
|
||||||
~~~
|
~~~
|
||||||
# aptitude install drbd-utils
|
# aptitude install drbd-utils
|
||||||
# modprobe drbd
|
|
||||||
~~~
|
~~~
|
||||||
|
|
||||||
Debian 7 ou backports Debian 6 :
|
|
||||||
|
|
||||||
~~~
|
~~~
|
||||||
# aptitude install drbd8-utils
|
# drbdadm -V
|
||||||
# modprobe drbd
|
DRBDADM_BUILDTAG=GIT-hash:\ 5474c321d80250cc61d851220503fdc739490ce9\ build\ by\ pbuilder@marvin\,\ 2016-01-04\ 12:36:34
|
||||||
|
DRBDADM_API_VERSION=1
|
||||||
|
DRBD_KERNEL_VERSION_CODE=0x080403
|
||||||
|
DRBDADM_VERSION_CODE=0x080902
|
||||||
|
DRBDADM_VERSION=8.9.2rc1
|
||||||
|
|
||||||
|
# modinfo drbd
|
||||||
|
filename: /lib/modules/3.16.0-4-amd64/kernel/drivers/block/drbd/drbd.ko
|
||||||
|
alias: block-major-147-*
|
||||||
|
license: GPL
|
||||||
|
version: 8.4.3
|
||||||
|
description: drbd - Distributed Replicated Block Device v8.4.3
|
||||||
|
author: Philipp Reisner <phil@linbit.com>, Lars Ellenberg <lars@linbit.com>
|
||||||
|
srcversion: 1A9F77B1CA5FF92235C2213
|
||||||
|
depends: lru_cache,libcrc32c
|
||||||
|
intree: Y
|
||||||
|
vermagic: 3.16.0-4-amd64 SMP mod_unload modversions
|
||||||
|
parm: minor_count:Approximate number of drbd devices (1-255) (uint)
|
||||||
|
parm: disable_sendpage:bool
|
||||||
|
parm: allow_oos:DONT USE! (bool)
|
||||||
|
parm: proc_details:int
|
||||||
|
parm: usermode_helper:string
|
||||||
~~~
|
~~~
|
||||||
|
|
||||||
|
|
||||||
|
@ -54,81 +67,14 @@ resource "vol0" {
|
||||||
|
|
||||||
## Configuration d'une ressource en mode Primary/Primary
|
## Configuration d'une ressource en mode Primary/Primary
|
||||||
|
|
||||||
La configuration entre 8.3 et supérieur est assez différente.
|
`/etc/drbd.d/r0.res` :
|
||||||
|
|
||||||
### DRBD 8.3
|
|
||||||
|
|
||||||
Fichier /etc/drbd.conf :
|
|
||||||
|
|
||||||
~~~
|
|
||||||
global { usage-count no; }
|
|
||||||
common { syncer { rate 30M; }}
|
|
||||||
resource r0 {
|
|
||||||
protocol C;
|
|
||||||
startup {
|
|
||||||
wfc-timeout 15;
|
|
||||||
degr-wfc-timeout 60;
|
|
||||||
become-primary-on both;
|
|
||||||
}
|
|
||||||
net {
|
|
||||||
cram-hmac-alg sha1;
|
|
||||||
shared-secret "mon-secret";
|
|
||||||
allow-two-primaries;
|
|
||||||
after-sb-0pri discard-zero-changes;
|
|
||||||
after-sb-1pri discard-secondary;
|
|
||||||
after-sb-2pri disconnect;
|
|
||||||
}
|
|
||||||
on kvm1 {
|
|
||||||
device /dev/drbd0;
|
|
||||||
disk /dev/sda10;
|
|
||||||
address 192.168.0.1:7788;
|
|
||||||
meta-disk internal;
|
|
||||||
}
|
|
||||||
on kvm2 {
|
|
||||||
device /dev/drbd0;
|
|
||||||
disk /dev/sda10;
|
|
||||||
address 192.168.0.2:7788;
|
|
||||||
meta-disk internal;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
~~~
|
|
||||||
|
|
||||||
Pour éviter les split-brain (incohérence des données), on peut demander à ce qu'un noeud qui n'a plus accès à son peer se "suicide" en ajoutant à la ressource la section :
|
|
||||||
|
|
||||||
~~~
|
|
||||||
handlers {
|
|
||||||
pri-on-incon-degr "/usr/lib/drbd/notify-pri-on-incon-degr.sh; /usr/lib/drbd/notify-emergency-reboot.sh; echo b > /proc/sysrq-trigger ; reboot -f";
|
|
||||||
pri-lost-after-sb "/usr/lib/drbd/notify-pri-lost-after-sb.sh; /usr/lib/drbd/notify-emergency-reboot.sh; echo b > /proc/sysrq-trigger ; reboot -f";
|
|
||||||
local-io-error "/usr/lib/drbd/notify-io-error.sh; /usr/lib/drbd/notify-emergency-shutdown.sh; echo o > /proc/sysrq-trigger ; halt -f";
|
|
||||||
}
|
|
||||||
~~~
|
|
||||||
|
|
||||||
A faire sur les deux machines :
|
|
||||||
|
|
||||||
~~~
|
|
||||||
# drbdadm create-md r0
|
|
||||||
# drbdadm attach r0
|
|
||||||
# drbdadm syncer r0
|
|
||||||
# /etc/init.d/drbd start
|
|
||||||
~~~
|
|
||||||
|
|
||||||
A faire sur une machine, initialiser la synchronisation:
|
|
||||||
|
|
||||||
~~~
|
|
||||||
# drbdadm -- --overwrite-data-of-peer primary r0
|
|
||||||
~~~
|
|
||||||
|
|
||||||
|
|
||||||
### DRBD 8.9
|
|
||||||
|
|
||||||
/etc/drbd.d/r0.res :
|
|
||||||
|
|
||||||
~~~
|
~~~
|
||||||
resource r0 {
|
resource r0 {
|
||||||
net {
|
net {
|
||||||
protocol C;
|
protocol C;
|
||||||
cram-hmac-alg "sha1";
|
cram-hmac-alg "sha1";
|
||||||
shared-secret "PASSPHRASE";
|
shared-secret "PASSWORD";
|
||||||
allow-two-primaries;
|
allow-two-primaries;
|
||||||
}
|
}
|
||||||
volume 0 {
|
volume 0 {
|
||||||
|
@ -145,7 +91,7 @@ resource r0 {
|
||||||
}
|
}
|
||||||
~~~
|
~~~
|
||||||
|
|
||||||
Note : "tic" et "tac" doivent correspondre aux hostnames réels des machines concernées.
|
*Note* : "tic" et "tac" doivent correspondre aux hostnames réels des machines concernées.
|
||||||
|
|
||||||
|
|
||||||
Puis sur les 2 machines :
|
Puis sur les 2 machines :
|
||||||
|
@ -171,79 +117,9 @@ Et sur l'une des 2 machines :
|
||||||
|
|
||||||
## Configuration d'une seconde ressource en mode Primary/Primary
|
## Configuration d'une seconde ressource en mode Primary/Primary
|
||||||
|
|
||||||
### DRDB 8.3
|
|
||||||
|
|
||||||
On ajoute la section suivante dans /etc/drbd.conf
|
|
||||||
|
|
||||||
~~~
|
|
||||||
resource r1 {
|
|
||||||
protocol C;
|
|
||||||
startup {
|
|
||||||
wfc-timeout 15;
|
|
||||||
degr-wfc-timeout 60;
|
|
||||||
become-primary-on both;
|
|
||||||
}
|
|
||||||
net {
|
|
||||||
cram-hmac-alg sha1;
|
|
||||||
shared-secret "mon-secret";
|
|
||||||
allow-two-primaries;
|
|
||||||
after-sb-0pri discard-zero-changes;
|
|
||||||
after-sb-1pri discard-secondary;
|
|
||||||
after-sb-2pri disconnect;
|
|
||||||
}
|
|
||||||
on kvm1 {
|
|
||||||
device /dev/drbd1;
|
|
||||||
disk /dev/sdb1;
|
|
||||||
address 192.168.0.4:7790;
|
|
||||||
meta-disk internal;
|
|
||||||
}
|
|
||||||
on kvm2 {
|
|
||||||
device /dev/drbd1;
|
|
||||||
disk /dev/sdb1;
|
|
||||||
address 192.168.0.2:7790;
|
|
||||||
meta-disk internal;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
~~~
|
|
||||||
|
|
||||||
Une fois la configuration en place sur tous les serveurs :
|
|
||||||
|
|
||||||
~~~
|
|
||||||
# drbdadm create-md r1
|
|
||||||
Writing meta data…
|
|
||||||
initializing activity log
|
|
||||||
NOT initialized bitmap
|
|
||||||
New drbd meta data block successfully created.
|
|
||||||
|
|
||||||
# /etc/init.d/drbd reload
|
|
||||||
Reloading DRBD configuration:.
|
|
||||||
~~~
|
|
||||||
|
|
||||||
Sur l'un des 2 serveurs, on lance :
|
|
||||||
|
|
||||||
~~~
|
|
||||||
# drbdadm -- --overwrite-data-of-peer primary r1
|
|
||||||
~~~
|
|
||||||
|
|
||||||
Sur l'autre, la synchronisation va se faire, puis on passer en Primary/Primary :
|
|
||||||
|
|
||||||
~~~
|
|
||||||
# cat /proc/drbd
|
|
||||||
version: 8.3.11 (api:88/proto:86-96)
|
|
||||||
srcversion: F937DCB2E5D83C6CCE4A6C9
|
|
||||||
0: cs:Connected ro:Primary/Primary ds:UpToDate/UpToDate C r-----
|
|
||||||
ns:97409309 nr:497444091 dw:647985959 dr:195677677 al:59202927 bm:47198 lo:0 pe:0 ua:0 ap:0 ep:1 wo:f oos:0
|
|
||||||
1: cs:SyncTarget ro:Secondary/Primary ds:Inconsistent/UpToDate C r-----
|
|
||||||
ns:0 nr:2699520 dw:2699520 dr:0 al:0 bm:164 lo:1 pe:6 ua:0 ap:0 ep:1 wo:f oos:2144717528
|
|
||||||
[>…] sync'ed: 0.2% (2094448/2097084)Mfinish: 6:20:25 speed: 93,956 (93,084) want: 92,160 K/sec
|
|
||||||
# drbdadm primary r1
|
|
||||||
~~~
|
|
||||||
|
|
||||||
### DRDB 8.9
|
|
||||||
|
|
||||||
On peut configurer plusieurs volumes par ressource.
|
On peut configurer plusieurs volumes par ressource.
|
||||||
|
|
||||||
/etc/drbd.d/r0.res :
|
`/etc/drbd.d/r0.res` :
|
||||||
|
|
||||||
~~~
|
~~~
|
||||||
resource r0 {
|
resource r0 {
|
||||||
|
@ -280,7 +156,7 @@ dans ce cas on dupliquera simplement la configuration d'une ressource en utilisa
|
||||||
|
|
||||||
Il est nécessaire de disposer d'un FS clusterisé car le FS sera monté à deux endroits différents, ce qui n'est pas possible avec un FS standard tel que ext4.
|
Il est nécessaire de disposer d'un FS clusterisé car le FS sera monté à deux endroits différents, ce qui n'est pas possible avec un FS standard tel que ext4.
|
||||||
|
|
||||||
##### Installation
|
### Installation
|
||||||
|
|
||||||
~~~
|
~~~
|
||||||
# aptitude install ocfs2-tools
|
# aptitude install ocfs2-tools
|
||||||
|
|
Loading…
Reference in a new issue