21
0
Fork 0

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
1 changed files with 34 additions and 25 deletions

View File

@ -1,4 +1,6 @@
# Howto DRBD
---
title: Howto DRBD
---
* 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
depends: lru_cache,libcrc32c
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: disable_sendpage:bool
parm: allow_oos:DONT USE! (bool)
@ -34,22 +36,21 @@ parm: proc_details:int
parm: usermode_helper:string
~~~
## À propos des protocoles
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.
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é.
/!\ 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.
@ -93,7 +94,6 @@ resource r0 {
*Note* : "tic" et "tac" doivent correspondre aux hostnames réels des machines concernées.
Puis sur les 2 machines :
~~~
@ -114,7 +114,6 @@ Et sur l'une des 2 machines :
# drbdadm -- --overwrite-data-of-peer primary r0
~~~
## Configuration d'une seconde ressource en mode Primary/Primary
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>
~~~
command[check_drbd]=/usr/local/lib/nagios/plugins/check_drbd -d All -c StandAlone
~~~
## FAQ & Tips
### 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 :
~~~
drbdadm disconnect all
drbdadm disconnect all
drbdadm connect all
/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.
Faire un unmount de la partition concerné, puis :
~~~
## Faire un unmount de la partition concerné, puis :
# /etc/init.d/o2cb offline
# drbdadm down r0
# drbdadm create-md 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
## 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
# /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
~~~
/etc/init.d/o2cb online
/etc/init.d/ocfs2 restart
# /etc/init.d/o2cb online
# /etc/init.d/ocfs2 restart
~~~
### 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-----
~~~
Le nœud attend une éventuelle reconnexion du second nœud pour se resynchroniser.
~~~
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-----
~~~
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-----
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)
@ -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
~~~
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.
### Fixer une limite de synchronisation
~~~
resource <resource>
disk {
resync-rate 40M;
[]
}
[]
}
~~~
@ -366,7 +371,11 @@ resource <resource>
~~~
# drbdadm disconnect <resource>
# drbdadm detach <resource>
### OU
~~~
ou
~~~
# drbdadm down <resource>
~~~