DRBD: corrections de syntaxe

This commit is contained in:
Jérémy Lecour 2016-12-28 17:35:18 +01:00 committed by Jérémy Lecour
parent d3af7f7a93
commit 0b018c2b0a

View file

@ -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>
~~~ ~~~