L’autre jour, je récupère un serveur (un Dell PowerEdge 2400). avec 4 disques SCSI :

  • 1 disque de 10Go
  • 1 disque de 16Go
  • 2 disques de 30 Go

je me dis : “LVM, ça marche sous Solaris, sous AIX… ca va le faire sous Ubuntu !” Du coup, j’utilise le premier disque comme racine, et je suis ce tutoriel qui explique comment mettre en place LVM.
j’agrège donc les 3 autres disques (sdb,sdc et sdd) pour me faire une partition de données de 76Go (le gars qui fait un peu trop confiance à ses disques) et je met un filesystem ext3.
Mais voila, 15 jour plus tard, après avoir passé toutes mes données sur ce serveur, le premier disques des 3 meurt inopinément…
Et là… c’est le drame !

Ma première idée a été de faire un fsck.ext3 sur le disque sdb, pour réparer les blocs défectueux, mais la seule réponse que j’ai eu à été que fsck ne reconnaissait pas le système de fichier.
le problème, c’est que lorsqu’un disque appartenant à un logical volume est défectueux, ce LV ne fonctionne plus du tout et pire encore, il n’existe plus. Après avoir beaucoup cherché parmi les outils disponibles, comme dd_rescue (qui aurais pu me permettre de recopier le contenu du disque pourri sur un autre), je me suis rendu à l’évidence : mon disque sdb était irrécupérable.
je l’ai donc retiré (en mode forcé) des physical volumes, et j’ai recréé un LV de 60 Go avec les deux disques restants.
je pensais ensuite restaurer les entêtes ext3 avec fsck, afin de récupérer les données des deux disques.
Malheureusement, le disque perdu étant le premier des trois, il contenait la table des inodes… ce qui fait que je ne pouvais pas récupérer le système de fichier…
J’ai donc décidé de reformater cette méta-partition en ext3, et ainsi de restaurer un état sain.
Ensuite, j’ai utilisé le logiciel PhotoRec (inclus dans le package testdisk) que j’ai fait travailler sur mon agrégat de disques. Au bout de 22 heures de travail, le programme m’a récupérer un certain nombre de fichiers (~30 000) que j’ai dû trier. j’ai d’ailleurs écrit ce script :

#!/bin/sh mkdir -p ../MEDIA/ASF  ../MEDIA/AVI  ../MEDIA/BMP  ../MEDIA/DOC mkdir -p ../MEDIA/GIF  ../MEDIA/GZ  ../MEDIA/JPG  ../MEDIA/MP3 mkdir -p ../MEDIA/MPG  ../MEDIA/OTHER  ../MEDIA/PDF  ../MEDIA/PNG mkdir -p ../MEDIA/TAR  ../MEDIA/TXT ../MEDIA/ZIP ../MEDIAS/HTML ../MEDIAS/XML find ./ -name *.asf -exec mv {} ../MEDIA/ASF/ ';' find ./ -name *.avi -exec mv {} ../MEDIA/AVI/ ';' find ./ -name *.doc -exec mv {} ../MEDIA/DOC/ ';' find ./ -name *.mp3 -exec mv {} ../MEDIA/MP3/ ';' find ./ -name *.mpg -exec mv {} ../MEDIA/MPG/ ';' find ./ -name *.txt -exec mv {} ../MEDIA/TXT/ ';' find ./ -name *.bmp -exec mv {} ../MEDIA/BMP/ ';' find ./ -name *.gif -exec mv {} ../MEDIA/GIF/ ';' find ./ -name *.gz -exec mv {} ../MEDIA/GZ/ ';' find ./ -name *.jpg -exec mv {} ../MEDIA/JPG/ ';' find ./ -name *.pdf -exec mv {} ../MEDIA/PDF/ ';' find ./ -name *.png -exec mv {} ../MEDIA/PNG/ ';' find ./ -name *.tar -exec mv {} ../MEDIA/TAR/ ';' find ./ -name *.zip -exec mv {} ../MEDIA/ZIP/ ';' find ./ -name *.html -exec mv {} ../MEDIA/HTML/ ';' find ./ -name *.xml -exec mv {} ../MEDIA/XML/ ';' mv */* ../MEDIAS/OTHER/

qui m’a permis de dégrossir le travail…

moralité : j’ai utilisé LVM une fois… on ne m’y reprendra pas !

En même temps, je ne veux dégouter personne. Il est possible de configurer LVM pour travailler en mirroir, ou sur du Raid 5, mais bon, de toute façons, je trouve que cela ajoute une couche supplémentaire qui, si elle apporte un certain confort quant au redimentionnement des partitions, peut également se transformer en calvaire lorsque quelque chose ne se passe pas bien.