Test destructif sur lvm

LVM signifie Logical Volume Manager. Cela permet, entre bien autres choses, d'avoir un seul système de fichier dans plusieurs disques durs. Des tutoriaux sont disponibles en bas de page. Ici, on va simuler une réinstallation du système et voir comment LVM récupère sa configuration. En effet, on peut se demander si ce niveau de complication ne va pas partir en vacances lors d'un problème ou d'une réinstallation du système d'exploitation.

LVM est vraiment solide : il sauvegarde sa configuration dès que possible, a l'air de pouvoir se débrouiller même lorsqu'on a effacé /etc/lvm. En fait, ce répertoire est même restitué après avoir successivement supprimé le répertoire et purgé lvm2 !

En définitive, LVM retrouve sa configuration dès lors que les disques durs sont connectés, même lorsque les périphériques ont été inversés.

Normalement LVM utilise des partitions physiques pour fonctionner. Afin d'éviter d'avoir à sacrifier un disque dur, on va créer de toutes pièces ces partitions à partir de fichiers. Toutes les actions se font avec le compte root. LVM2 doit être installé.

Configuration de base

cd /root
mkdir test
cd test

Simulation de partitions physiques

Création des deux fichiers de 10Mo qui vont contenir les partitions

dd if=/dev/zero of=part_a bs=1M count=10
dd if=/dev/zero of=part_b bs=1M count=10

Création des partitions

losetup /dev/loop0 part_a
losetup /dev/loop1 part_b

LVM

Création des volumes physiques (Physical Volume, pv)

pvcreate /dev/loop0
pvcreate /dev/loop1

Création du groupe de volumes (Volum Group, vg)

vgcreate vg_test /dev/loop0 /dev/loop1
Vérification de l'état général de LVM
pvscan Total: 2 [19,62 MB] / in use: 0 [0 ] / in no VG: 2 [19,62 MB]

Notez le “in no VG: 2” : les PV n'ont pas encore été affectés. Affectation des PV : 2 sont en utilisation dorénavant.

lvcreate -L 16M -n lv_test vg_test
pvscan Total: 2 [16,00 MB] / in use: 2 [16,00 MB] / in no VG: 0 [0 ]
lvscan ACTIVE '/dev/vg_test/lv_test' [16,00 MB] inherit

Création du système de fichiers

mke2fs /dev/vg_test/lv_test
mkdir monte
mount /dev/vg_test/lv_test monte
cd monte

Fichiers de test

Un simple fichier texte

echo "test" > test

Création d'un fichier aléatoire avec calcul de somme de contrôle pour vérification

dd if=/dev/urandom of=gros_fichier bs=1M count=5
md5sum gros_fichier >../md5

Destruction simulée

cd ..
umount monte
aptitude --purge remove lvm2

il fait un backup et recrée même le répertoire mv /etc/lvm /etc/lvm-orig REBOOT Il est possible qu'il retrouve sa config en scannant les disques durs dispo ! En effet une réinstallation sans redémarrer lui permet de retrouver sa configuration. aptitude install lvm2 Tests de présence des PV,VG et LV

pvscan
No matching physical volumes found
vgscan
No volume groups found
lvscan
No volume groups found

Reconstruction

Ruse de Sioux : on inverse l'affectation des boucles aux fichiers

losetup /dev/loop1 part_a
losetup /dev/loop0 part_b
pvscan
vgscan
lvscan

Il retrouve vg_test dans l'état inactif, que l'on active.

lvchange -a y vg_test lvscan
ACTIVE ...

On poursuit les tests jusqu'au bout.

mount /dev/vg_test/lv_test monte
cat monte/test
test
md5sum monte/gros_fichier

c'est le bon !

Destruction manuelle

lvremove /dev/vg_test/lv_test il demande confirmation
vgremove /dev/vg_test
losetup -d /dev/loop0
losetup -d /dev/loop1
pvscan
vgscan
lvscan

Il ne reste rien.

Références