Corrections de présentation et de contenu

This commit is contained in:
jlecour 2017-01-26 14:50:11 +01:00
parent 45ad6a84f2
commit ea8a9c10e5

View file

@ -1,30 +1,35 @@
### Migration à chaud d'une .img via volumes drbd stacké
---
title: DRBD cas pratique : empilement de ressources (avec méta-données externes)
---
**Ce « retour » est incomplet et invalide !**
## Migration à chaud d'une .img via volumes DRBD empilés
On ne peut pas « empiler » un volume drbd sur un autre, sans utiliser les directives prévu à cet effet. Il faut donc forcément utiliser la méthode officielle : <http://www.drbd.org/en/doc/users-guide-83/s-three-nodes>
**Attention : ce « retour d'expérience » est incomplet et invalide !** ; on ne peut pas « empiler » un volume drbd sur un autre, sans utiliser les directives prévues à cet effet. Il faut donc forcément utiliser la méthode officielle : <http://www.drbd.org/en/doc/users-guide-83/s-three-nodes>.
Dans ce scénario, on dispose de VMs avec leur stockage sur un fichier.img. L'idée est de migrer le disque .img à chaud sur un autre hyperviseur en utilisant drbd en mode « stacké ».
Soit 3 hyperviseurs : foo, bar et baz
----
Dans ce scénario, on dispose de VMs avec leur stockage sur un fichier ".img". L'idée est de migrer le disque .img à chaud sur un autre hyperviseur en utilisant DRBD en mode « stacked » (empilé).
Nous utilisons 3 hyperviseurs : **foo**, **bar** et **baz**.
~~~
Fichier .img → loop device → drbd entre foo et bar → drbd entre bar et baz
~~~
On monte l'image sur un loop device.
On monte l'image sur un _loop device_.
~~~
foo# losetup /dev/loop0 qux.img
~~~
On monte un drbd entre foo:/dev/loop0 et bar:/dev/drbd0 (bar:/dev/drbd0 étant entre bar et baz).
Il faudra stocker les meta-donées en externe. On calcule la taille nécessaire.
On monte un DRBD entre `foo:/dev/loop0` et `bar:/dev/drbd0` (`bar:/dev/drbd0` étant entre bar et baz).
Il faudra stocker les meta-données en externe. On calcule la taille nécessaire.
<http://serverfault.com/questions/433999/calculating-drbd-meta-size>
metacalc.sh :
~~~
~~~{.bash}
#!/bin/bash
which bc >/dev/null 2>&1
@ -63,7 +68,7 @@ Meta Data: 1 MiB
~~~
On pourra ajouter une marge au cas où…
Si pas de possibilité LVM, on utilisera un fichier plus un loop device :
Si on n'a pas la possibilité d'utiliser LVM, on utilisera un fichier plus un loop device :
~~~
foo# dd if=/dev/zero of=./qux.img.drbd.metadata bs=1M count=2
@ -72,9 +77,9 @@ foo# losetup /dev/loop1 qux.img.drbd.metadata
Si l'on peut utiliser LVM, il suffira de créer un volume dédié.
Maintenant que l'on a un device pour les meta-données, on créer la ressource drbd.
Maintenant que l'on a un _device_ pour les meta-données, on créer la ressource DRBD.
Sur foo :
Sur **foo** :
~~~
resource "qux" {
@ -108,8 +113,7 @@ resource "qux" {
}
~~~
Attention si vous n'utiliser pas la même version de drbd… La config est différente.
En 8.3 :
Attention si vous n'utilisez pas la même version de DRBD, la config est différente. Exemple avec la version 8.3 :
~~~
resource "qux" {
@ -138,7 +142,7 @@ resource "qux" {
}
~~~
Sur bar :
Sur **bar** :
~~~
resource "qux" {
@ -172,13 +176,13 @@ resource "qux" {
}
~~~
On arrête la vm qux.
On arrête la VM **qux**.
~~~
foo# virsh stop qux
~~~
On active la nouvelle ressource drbd.
On active la nouvelle ressource DRBD.
~~~
foo# drbdadm create-md qux
@ -190,12 +194,13 @@ bar# foo# drbdadm attach qux
foo# drbdadm -- --overwrite-data-of-peer primary qux
~~~
On édite sa config pour être mettre /dev/drbdX en tant que disque. Et on démmare
On édite sa config pour être mettre `/dev/drbdX` en tant que disque. Et on démarre
~~~
foo# virsh edit
foo# vrish start
~~~
Une fois la synchro terminé. On pourra éteindre la VM et la démarrer sur bar.
On pourra supprier la ressources drbd qui a servi à la migration ainsi que le disque de méta-données.
Une fois la synchro terminé. On pourra éteindre la VM et la démarrer sur **bar**.
On pourra supprimer la ressources DRBD qui a servi à la migration ainsi que le disque de méta-données.