Récupération de données sur un serveur Dell PowerEdge 7500 en Raid-1
Par philippe le samedi 26 décembre 2009, 17:43 - Lien permanent
Le
problème était le suivant : Le serveur avait eu une panne d'alimentation,
en attente d'une nouvelle alimentation de la part de Dell, les deux disques du
serveur avaient été déplacés dans un autre serveur. Le nouveau serveur a
fonctionné quelques temps, le serveur est monté en lamp et sert aussi de disque
de stockage. Puis le nouveau serveur a commencé à montrer des problèmes
d'erreurs disque. Comme l'alimentation est arrivée entre temps, les disques ont
été replacés dans le serveur d'origine avec la nouvelle alimentation. Dés lors
impossible de redémarrer comme avant. Le système ( une Ubuntu 8.04 LTS desktop
configurée à la main ) indique des erreurs dans le système ext3fs et ne se
monte qu'en lecture seule, ce qui empêche apache de se lancer.
C'est à ce moment que je suis appelé au téléphone pour aider. Mon conseil : corriger les erreur avec un outil de réparation du disque ( fsck ) et remonter la partition / en rw. Mais je ne suis pas sur place. Il semble en plus que du RAID1 soit impliqué.
Sur ce j'ai un train à prendre à Antibes pour me rendre à Paris pour les fêtes. Rendez-vous le soir vers minuit pour une étude plus sérieuse. L'amorçage de ce serveur est très lent, il commence toujours par une batterie d'initialisation ( bien 20 secondes ) pendant laquelle une jolie barre blanche progresse sur l'écran puis enfin propose F1/F2 Ctrl+A etc.. des options pour activer des gestionnaires du système matériel.
La personne qui prend en charge le problème a déjà réussi à sauvegarder sur un disque externe les contenus les plus importants ( ceux de /etc et ceux de /var/lib/mysql ). Je frappe la touche Echappement pour pour choisir le système que je désire lancer à partir de grub, je choisis le mode de maintenance avec le dernier noyau ( la deuxième entrée dans le menu ). Première déconvenue : le fsck est très lent et quelque soit le nombre de fsck impossible de rectifier les erreurs, elles semblent revenir automatiquement. Par contre il est possible une fois sur le compte root de monter un disque usb externe ( par exemple dans /tmp/extern ) et de là de sauvegrader un maximum de données. Mais cela n'aide pas vraiment, le disque externe n'est pas assez gros pour contenir l'intégralité des 150Gb de cette partition ou bien même les 30Gb utilisés de cette partition.
Je tente d'amrocer sur de version du noyau un peu plus anciens, en me disant que peut-être le support du contrôleur avait peut-être été cassé dans une des dernières versions... Mais sans succés ( d'ailleurs une petite recherche sur internet ne donnait rien de concluant dans cette direction ).
Il faut investiguer s'il n'est pas possible de régler ce problème disque depuis le niveau physique ( RAID ). On reboote et on utilise le gestionnaire de configuration raid qui est Ctrl+A. En particulier le Ctrl+A doit se faire en tapant Ctrl+Q puisque le clavier est français et qu'à ce niveau la machine de comprend que les claviers US. Allons-y pour Ctrl+Q qui nous envoie dans le la configuration des disques en RAID. Seconde déconvenue : les disques RAID1 n'indiquent aucun problème, le BIOS raid indique juste que les deux disques sont dans un état optimal. Troisième déconvenue : il n'y a pas d'utilitaire de reconstruction du disque dans ce BIOS.
Après avoir plusieurs fois lancé le test disque sur le début du disque car il est extrémément lent, je le lance jusqu à 31% (20 minutes quand même), or j'aiu la certitude qu'un problème d'inode avait été detecté bien avant 30%, ceci indique que ce n'est pas le contenu physique du disque qui est en cause mais son contenu logique. En fait fort probablement les deux disques RAID1 ne sont plus synchronisés causant ce genre de problème, pourquoi le contrôleur ne s'en s'aperçoit t'il pas ? mystère.
Tous ces tests disque on pris un temps monstrueux ( et je ne suis même pas allé jusqu'à la fin du sique ). Si je n'avais pas été pris par le temps, j'aurais lancé le test, et serait revenu voir le résultat le lendemain matin...
il est trois heures trente du matin.
De mémoire Avec F1 on rentrer dans le BIOS standard.
Ici rien de spécial, un peu de nettoyage, je supprime la description du lecteur de disquette puisque celui-ci a été retiré de la machine il y a bien longtemps, mais rien de très intéressant.
Nous faisons de nombreuses tentatives pour réinstaller un nouveau système depuis le lecteur de CDROM, mais sais-on pourquoi impossible de 'amrocer la ubuntu 8.04.03 LTS depuis le CDROM, les menus s'affichent mais le choix live ou install se solde par l'allumage et l'extinction de la led CD et c'est tout. Seule une mandrake accepte de s'installer.
Il est 5 heures du matin, comme le temps passe vite.
Finalement j'emploie les grands moyens étant donné que les deux disques sont en RAID1 ils contiennent théoriquement la même chose, donc on peux n'en garder qu'un ( ici je n'ai aucun matériel de rechange, il faut donc faire avec les moyens du bord ).
- j'ouvre la boite
- je reconnecte le controleur RAID sur le port PCI-X. il était sur le port PCI normal avec la partie étendue juste dans le vide ... Cela marchait avant donc cela n'est certainemnt pas la cause du problème, mais tant qu'à faire autant le brancher au mieux surout qu'il n'y a pas d'autre carte qui nécessite l'utilisation de ce connecteur.
- je déconnecte le second disque dur et je ne laisse que le premier
je reboote, j'entre dans la gestion du RAID on détruit la définition des deux disque, et en créé une nouvelle en RAID-0 avec un seul disque. On ré-installe la mandrake sur les 10 premiers Gigas je tente d'installer la ubuntu 8.04 cdrom qui refusait de démarrer en la copier sur cette partition et en la référençant dans grub avec un ( .. casper=/root/ubuntu/casper/vmlinuz ) mais dans grub le format de ce fichier n'est pas reconnu. A rebooter sur la mandrake un file sur ce fichier indique aussi data ( alors que l'on s'attendrait à un "Linux kernel x86 boot executable"' ... )... Bon donc ce noyau n'est réellement pas bon ? on abandonne cette solution,
Le temps s'ecoule encore et je tente encore une chose : je rebranche le second disque (qui étant RAID1 doit être un mirroir du premier ) mais ce coup-ci pas sur le contrôleur RAID mais sur le contrôleur SATA interne.
- je le connecte d'abord sur le SATA-1 et finalement sur le SATA-0 car sur le SATA-1 le bios refuse de démarrer. Et on reboote.
- je remonte ce disque en read-only et je copie l'intégralité de son contenu avec un banal cp -a sur une partition de 40Go créée sur le premier disque.
Il est 6h30 du matin.
Et... Miracle après avoir reconfiguré le contenu de /boot/grub/menu.lst de la mandriva pour pointer sur le second disque et utilisé /dev/sda2 au lieu de l'UUID de disque précédant... tout redémarre, et sans erreur.
Maintenant il me reste à bien analyser ce dépannage afin d'en tirer le maximum d'informations.
Commentaires
j ai eu recemment le meme genre de probleme sur un serveur dedie dedibox en raid 1 sur trois disques.
les disques marques failed n etaient finalement pas morts et le probleme semble lie au TLER.
pour ceux qui se retrouvent avec ce genre de problemes, je recommande fortement la lecture de :
http://en.wikipedia.org/wiki/Time-L...
Je ne dis pas que c est lie a ton probleme, mais ca pourrai l etre