DRBD: corrections de syntaxe
This commit is contained in:
parent
d3af7f7a93
commit
0b018c2b0a
59
HowtoDRBD.md
59
HowtoDRBD.md
|
@ -1,4 +1,6 @@
|
||||||
# Howto DRBD
|
---
|
||||||
|
title: Howto DRBD
|
||||||
|
---
|
||||||
|
|
||||||
* Documentation : <http://www.drbd.org/en/doc/users-guide-84>
|
* Documentation : <http://www.drbd.org/en/doc/users-guide-84>
|
||||||
|
|
||||||
|
@ -26,7 +28,7 @@ author: Philipp Reisner <phil@linbit.com>, Lars Ellenberg <lars@linbit.c
|
||||||
srcversion: 1A9F77B1CA5FF92235C2213
|
srcversion: 1A9F77B1CA5FF92235C2213
|
||||||
depends: lru_cache,libcrc32c
|
depends: lru_cache,libcrc32c
|
||||||
intree: Y
|
intree: Y
|
||||||
vermagic: 3.16.0-4-amd64 SMP mod_unload modversions
|
vermagic: 3.16.0-4-amd64 SMP mod_unload modversions
|
||||||
parm: minor_count:Approximate number of drbd devices (1-255) (uint)
|
parm: minor_count:Approximate number of drbd devices (1-255) (uint)
|
||||||
parm: disable_sendpage:bool
|
parm: disable_sendpage:bool
|
||||||
parm: allow_oos:DONT USE! (bool)
|
parm: allow_oos:DONT USE! (bool)
|
||||||
|
@ -34,22 +36,21 @@ parm: proc_details:int
|
||||||
parm: usermode_helper:string
|
parm: usermode_helper:string
|
||||||
~~~
|
~~~
|
||||||
|
|
||||||
|
|
||||||
## À propos des protocoles
|
## À propos des protocoles
|
||||||
|
|
||||||
DRBD dispose de 3 protocoles de réplication/synchronisation, A, B et C.
|
DRBD dispose de 3 protocoles de réplication/synchronisation, A, B et C.
|
||||||
|
|
||||||
A : Réplication asynchrone. Les écritures sur le disque local du nœud primaire sont considérées complètes dès que le disque local a fini. Les paquets de réplication sont placés dans le buffer TCP.
|
A : Réplication asynchrone. Les écritures sur le disque local du nœud primaire sont considérées complètes dès que le disque local a fini. Les paquets de réplication sont placés dans le buffer TCP.
|
||||||
|
|
||||||
B : Réplication synchronisé en mémoire. Les écritures sur le disque local du nœud primaire sont considérées complètes dès que le disque local a fini *et* que les paquets de réplication sont reçus sur le second nœeud.
|
B : Réplication synchronisé en mémoire. Les écritures sur le disque local du nœud primaire sont considérées complètes dès que le disque local a fini **et** que les paquets de réplication sont reçus sur le second nœeud.
|
||||||
|
|
||||||
C : Réplication synchronisé sur les disques. Les écritures sur le disque local du nœud primaire sont considérées complètes dès que le disque local a fini *et* sur le disque distant aussi.
|
C : Réplication synchronisé sur les disques. Les écritures sur le disque local du nœud primaire sont considérées complètes dès que le disque local a fini **et** sur le disque distant aussi.
|
||||||
|
|
||||||
Le protocole C est le plus sécurisé, le B est un compromis entre rapidité et sécurité, et enfin le A est le plus rapide mais le moins sécurisé.
|
Le protocole C est le plus sécurisé, le B est un compromis entre rapidité et sécurité, et enfin le A est le plus rapide mais le moins sécurisé.
|
||||||
|
|
||||||
/!\ Attention, seul le protocole C permet d'utiliser l'option allow-two-primaries.
|
/!\ Attention, seul le protocole C permet d'utiliser l'option allow-two-primaries.
|
||||||
|
|
||||||
La modification du protocole se fait dans la section net{} d'une ressource. Le protocole utilisé par défaut est le protocole C.
|
La modification du protocole se fait dans la section `net{}` d'une ressource. Le protocole utilisé par défaut est le protocole C.
|
||||||
|
|
||||||
Exemple de configuration.
|
Exemple de configuration.
|
||||||
|
|
||||||
|
@ -93,7 +94,6 @@ 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 :
|
||||||
|
|
||||||
~~~
|
~~~
|
||||||
|
@ -114,7 +114,6 @@ Et sur l'une des 2 machines :
|
||||||
# drbdadm -- --overwrite-data-of-peer primary r0
|
# drbdadm -- --overwrite-data-of-peer primary r0
|
||||||
~~~
|
~~~
|
||||||
|
|
||||||
|
|
||||||
## Configuration d'une seconde ressource en mode Primary/Primary
|
## Configuration d'une seconde ressource en mode Primary/Primary
|
||||||
|
|
||||||
On peut configurer plusieurs volumes par ressource.
|
On peut configurer plusieurs volumes par ressource.
|
||||||
|
@ -220,12 +219,10 @@ EOT
|
||||||
|
|
||||||
Il peut être utile de surveiller l'état de la synchro via Nagios. <https://exchange.nagios.org/directory/Plugins/Operating-Systems/Linux/check_drbd/details>
|
Il peut être utile de surveiller l'état de la synchro via Nagios. <https://exchange.nagios.org/directory/Plugins/Operating-Systems/Linux/check_drbd/details>
|
||||||
|
|
||||||
|
|
||||||
~~~
|
~~~
|
||||||
command[check_drbd]=/usr/local/lib/nagios/plugins/check_drbd -d All -c StandAlone
|
command[check_drbd]=/usr/local/lib/nagios/plugins/check_drbd -d All -c StandAlone
|
||||||
~~~
|
~~~
|
||||||
|
|
||||||
|
|
||||||
## FAQ & Tips
|
## FAQ & Tips
|
||||||
|
|
||||||
### Récupérer d'une perte de connectivité
|
### Récupérer d'une perte de connectivité
|
||||||
|
@ -233,7 +230,7 @@ command[check_drbd]=/usr/local/lib/nagios/plugins/check_drbd -d All -c StandAlon
|
||||||
Quand il y a une perte de synchro. On peut y :
|
Quand il y a une perte de synchro. On peut y :
|
||||||
|
|
||||||
~~~
|
~~~
|
||||||
drbdadm disconnect all
|
drbdadm disconnect all
|
||||||
drbdadm connect all
|
drbdadm connect all
|
||||||
/etc/init.d/drbd stop && /etc/init.d/drbd start
|
/etc/init.d/drbd stop && /etc/init.d/drbd start
|
||||||
~~~
|
~~~
|
||||||
|
@ -281,15 +278,24 @@ Un des serveurs à perdu les méta-données il faut les re-construire pour que d
|
||||||
|
|
||||||
On peut aussi faire cette opération pour d'autres raisons, comme par exemple un nœud avec des données différentes de chaque côté suite à une désynchronisé trop longue et non détectée.
|
On peut aussi faire cette opération pour d'autres raisons, comme par exemple un nœud avec des données différentes de chaque côté suite à une désynchronisé trop longue et non détectée.
|
||||||
|
|
||||||
|
Faire un unmount de la partition concerné, puis :
|
||||||
|
|
||||||
~~~
|
~~~
|
||||||
## Faire un unmount de la partition concerné, puis :
|
|
||||||
# /etc/init.d/o2cb offline
|
# /etc/init.d/o2cb offline
|
||||||
# drbdadm down r0
|
# drbdadm down r0
|
||||||
# drbdadm create-md r0
|
# drbdadm create-md r0
|
||||||
# drbdadm up r0
|
# drbdadm up r0
|
||||||
## Si la synchro ne part pas, faire un connect.
|
~~~
|
||||||
|
|
||||||
|
Si la synchro ne part pas, faire un connect.
|
||||||
|
|
||||||
|
~~~
|
||||||
# drbdadm connect r0
|
# drbdadm connect r0
|
||||||
## Une fois la synchro terminé (cat /proc/drbd), on le repasse en primaire, pour être en master-master.
|
~~~
|
||||||
|
|
||||||
|
Une fois la synchro terminé (`cat /proc/drbd`), on le repasse en primaire, pour être en *master-master*.
|
||||||
|
|
||||||
|
~~~
|
||||||
# drbdadm primary r0
|
# drbdadm primary r0
|
||||||
# /etc/init.d/o2cb online
|
# /etc/init.d/o2cb online
|
||||||
~~~
|
~~~
|
||||||
|
@ -297,8 +303,8 @@ On peut aussi faire cette opération pour d'autres raisons, comme par exemple un
|
||||||
### Starting Oracle Cluster File System (OCFS2) mount.ocfs2: Unable to access cluster service while trying initialize cluster
|
### Starting Oracle Cluster File System (OCFS2) mount.ocfs2: Unable to access cluster service while trying initialize cluster
|
||||||
|
|
||||||
~~~
|
~~~
|
||||||
/etc/init.d/o2cb online
|
# /etc/init.d/o2cb online
|
||||||
/etc/init.d/ocfs2 restart
|
# /etc/init.d/ocfs2 restart
|
||||||
~~~
|
~~~
|
||||||
|
|
||||||
### Bien comprendre /proc/drbd
|
### Bien comprendre /proc/drbd
|
||||||
|
@ -306,24 +312,25 @@ On peut aussi faire cette opération pour d'autres raisons, comme par exemple un
|
||||||
~~~
|
~~~
|
||||||
0: cs:WFConnection ro:Primary/Unknown ds:UpToDate/DUnknown C r-----
|
0: cs:WFConnection ro:Primary/Unknown ds:UpToDate/DUnknown C r-----
|
||||||
~~~
|
~~~
|
||||||
|
|
||||||
Le nœud attend une éventuelle reconnexion du second nœud pour se resynchroniser.
|
Le nœud attend une éventuelle reconnexion du second nœud pour se resynchroniser.
|
||||||
|
|
||||||
~~~
|
~~~
|
||||||
0: cs:StandAlone ro:Primary/Unknown ds:UpToDate/DUnknown r-----
|
0: cs:StandAlone ro:Primary/Unknown ds:UpToDate/DUnknown r-----
|
||||||
~~~
|
~~~
|
||||||
Il s'agit d'un split-brain, le nœud est en standalone, et n'est plus synchronisé avec le second nœud.
|
|
||||||
|
|
||||||
|
Il s'agit d'un split-brain, le nœud est en standalone, et n'est plus synchronisé avec le second nœud.
|
||||||
|
|
||||||
~~~
|
~~~
|
||||||
0: cs:Connected ro:Primary/Primary ds:UpToDate/UpToDate C r-----
|
0: cs:Connected ro:Primary/Primary ds:UpToDate/UpToDate C r-----
|
||||||
~~~
|
~~~
|
||||||
Les nœuds sont bien synchronisés.
|
|
||||||
|
|
||||||
|
Les nœuds sont bien synchronisés.
|
||||||
|
|
||||||
~~~
|
~~~
|
||||||
0: cs:SyncSource ro:Primary/Secondary ds:UpToDate/Inconsistent C r-----
|
0: cs:SyncSource ro:Primary/Secondary ds:UpToDate/Inconsistent C r-----
|
||||||
ns:782997 nr:8388524 dw:10158853 dr:684557 al:456 bm:562 lo:0 pe:5 ua:64 ap:0 ep:1 wo:f oos:7780060
|
ns:782997 nr:8388524 dw:10158853 dr:684557 al:456 bm:562 lo:0 pe:5 ua:64 ap:0 ep:1 wo:f oos:7780060
|
||||||
[>…] sync'ed: 7.3% (7596/8188)Mfinish: 0:04:29 speed: 28,800 (28,964) K/sec
|
[>…] sync'ed: 7.3% (7596/8188)Mfinish: 0:04:29 speed: 28,800 (28,964) K/sec
|
||||||
~~~
|
~~~
|
||||||
|
|
||||||
Une synchronisation du serveur primaire est en cours vers le secondaire. (ro:Primary/Secondary ds:UpToDate/Inconsistent)
|
Une synchronisation du serveur primaire est en cours vers le secondaire. (ro:Primary/Secondary ds:UpToDate/Inconsistent)
|
||||||
|
@ -341,23 +348,21 @@ On peut aussi le faire avec drbdadm adjust all. Ou en précisent le nom de la re
|
||||||
|
|
||||||
### Changer le sync rate à la volée
|
### Changer le sync rate à la volée
|
||||||
|
|
||||||
|
|
||||||
~~~
|
~~~
|
||||||
drbdadm disk-options --c-plan-ahead=20 --resync-rate=20M nomRessource
|
# drbdadm disk-options --c-plan-ahead=20 --resync-rate=20M nomRessource
|
||||||
~~~
|
~~~
|
||||||
|
|
||||||
« plan-ahead » à 20 active un mode intelligent qui permet de prioriser les écritures en cours plutôt que la synchronisation en arrière-plan.
|
« plan-ahead » à 20 active un mode intelligent qui permet de prioriser les écritures en cours plutôt que la synchronisation en arrière-plan.
|
||||||
|
|
||||||
### Fixer une limite de synchronisation
|
### Fixer une limite de synchronisation
|
||||||
|
|
||||||
|
|
||||||
~~~
|
~~~
|
||||||
resource <resource>
|
resource <resource>
|
||||||
disk {
|
disk {
|
||||||
resync-rate 40M;
|
resync-rate 40M;
|
||||||
…
|
[…]
|
||||||
}
|
}
|
||||||
…
|
[…]
|
||||||
}
|
}
|
||||||
~~~
|
~~~
|
||||||
|
|
||||||
|
@ -366,7 +371,11 @@ resource <resource>
|
||||||
~~~
|
~~~
|
||||||
# drbdadm disconnect <resource>
|
# drbdadm disconnect <resource>
|
||||||
# drbdadm detach <resource>
|
# drbdadm detach <resource>
|
||||||
### OU
|
~~~
|
||||||
|
|
||||||
|
ou
|
||||||
|
|
||||||
|
~~~
|
||||||
# drbdadm down <resource>
|
# drbdadm down <resource>
|
||||||
~~~
|
~~~
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue