probleme de RAID 10 logiciel qui ne s'assemble plus après maj noyau

Le
Xavier Brochard
Bonjour à tous

J'ai un sérieux problème de Raid 10 logiciel sur un serveur DELL.
Après pas mal de lectures de doc, j'ai peur d'être dans le cas d'un disque
abîmé qui fait planter tout l'ensemble Raid (voire la carte controleur de
disques).

Ça a commencé comme des systèmes de fichier corrompus, après une mise à jour
du noyau et redémarrage, mais j'ai rapidement pensé à un problème matériel
ou raid.

Peut-être que quelqu'un peut m'aider à comprendre?

Le serveur est neuf (3 mois). Il contient 6 disques SATA-3 plus 1 SSD en
SATA-2, tous branché sur une carte Perc200 (c'est à dire une carte LSI).
Mais la carte sert seulement de controleur disque, le Raid est défini sur le
système.

Le Raid 10 logiciel rassemble 4 disques plus 1 spare. Chacun d'eux contient
une seule partition, pour le raid. Ensuite c'est repartitionné avec LVM par-
dessus. Le système (/ et /usr) est sur le SSD.

Voici le fichier fstab, sdb est le SSD:
-
# / was on /dev/sdb2 during installation
UUID‹b91544-89f2-476b-83e5-0e05437b7323 / ext4
errors=remount-ro,noatime 0 1
# /boot was on /dev/sdb1 during installation
UUIDZae8f66-809f-41a3-b89e-caa53ba08b46 /boot ext3
defaults,noatime 0 2
/dev/mapper/tout-home /home ext4 usrquota,grpquota 0 2
/dev/mapper/tout-sauvegarde /home/sauvegardes ext4 noatime,noexec 0
2
/dev/mapper/tout-tmp /tmp ext4 defaults,noatime 0
2
/dev/mapper/tout-var /var ext4 defaults,noatime 0
2
/dev/mapper/tout-swap none swap sw 0 0

Le sytème installé est ubuntu Lucid, version serveur, le noyau est
Ubuntu 2.6.32-29.58-server 2.6.32.28+drm33.13

Après une mise à jour du kernel et un reboot on m'a téléphoné pour me dire
que le système ne démarrait pas. Le prompt proposait de sauter le montage de
certaines partitions. J'ai leur ai dit OK.
Ensuite j'ai pris la main (ssh).

En fait aucune partition de l'ensemble raid/lvm n'était montée, sauf le
swap.Un fsck sur /tmp a abouti à un système de fichier partiellement
récupéré, avec certains dossiers en lecture seule, même pour root. Et plein
d'erreurs I/O dans syslog.
Ça ressemblait à un problème de disque.

Une vérification de la carte et des disques avec les utilitaires DELL et
smartctl n'a montré aucun problème.

Je me suis rendu compte que le Raid déconnait:
/proc/mdstat contenait:
Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4]
[raid10]
md0 : inactive sdd1[2](S) sdg1[4](S) sdf1[3](S) sde1[1](S) sdc1[0](S)
2441919680 blocks

Et le pilote de la carte LSI met aussi une erreur au démarrage.
mpt2sas0: failure at
/build/buildd/linux-2.6.32/drivers/scsi/mpt2sas/mpt2sas_scsih.c:3801/_scsih_add_device()!
mais j'ai lu qq part que c'était sans importance.

En redémarrant sur un noyau plus ancien, c'était pareil.
J'ai rebooté sur System rescue CD pour examiner tout ça:

J'ai lancé qq commandes mdadm pour voir:
%mdam -Av /dev/md0 /dev/sd[cdefg]1
donne
mdadm: looking for devices for /dev/md0
mdadm: cannot open device /dev/sdc1: Device or resource busy
mdadm: /dev/sdc1 has no superblock - assembly aborted

% mdadm --stop /dev/md0
% mdadm -Av /dev/md0 /dev/sd[cdefg]1
donne
mdadm: looking for devices for /dev/md0
mdadm: /dev/sdc1 is identified as a member of /dev/md0, slot 0.
mdadm: /dev/sdd1 is identified as a member of /dev/md0, slot 2.
mdadm: /dev/sde1 is identified as a member of /dev/md0, slot 1.
mdadm: /dev/sdf1 is identified as a member of /dev/md0, slot 3.
mdadm: /dev/sdg1 is identified as a member of /dev/md0, slot 4.
mdadm: added /dev/sdc1 to /dev/md0 as 0
mdadm: added /dev/sde1 to /dev/md0 as 1
mdadm: added /dev/sdf1 to /dev/md0 as 3
mdadm: added /dev/sdg1 to /dev/md0 as 4
mdadm: added /dev/sdd1 to /dev/md0 as 2
mdadm: /dev/md0 assembled from 1 drive and 1 spare - not enough to start the
array.


%mdadm --examine /dev/sd[cdefg]1
montre 2 disques "inversés", sdc1 et sdd1, et un problème avec sde1, mais
n'indique rien sur le superblock:

/dev/sdc1
--
this 1 8 49 1 active sync /dev/sdd1
0 0 8 33 0 active sync /dev/sdc1
1 1 8 49 1 active sync /dev/sdd1
2 2 8 65 2 active sync /dev/sde1
3 3 8 81 3 active sync /dev/sdf1
4 4 8 97 4 spare /dev/sdg1

/dev/sdd1

this 0 8 33 0 active sync /dev/sdc1
0 0 8 33 0 active sync /dev/sdc1
1 1 8 49 1 active sync /dev/sdd1
2 2 8 65 2 active sync /dev/sde1
3 3 8 81 3 active sync /dev/sdf1
4 4 8 97 4 spare /dev/sdg1

/dev/sde1
--
this 2 8 65 2 active sync /dev/sde1
0 0 0 0 0 removed
1 1 0 0 1 faulty removed
2 2 8 65 2 active sync /dev/sde1
3 3 0 0 3 faulty removed
(nothing for disk #5)

/dev/sdf1 et /dev/sdg1 sont "normaux".
A part ça tous les disques sont indiqués "clean" avec un checksum correct.


Je ne sais pas vraiment quoi faire, faute de bien comprendre la situation.
Est-ce un problème matériel (carte lsi ou disque) ou plutot un bug qui
aurait corrompu les partitions ou les systèmes de fichier?

Est-ce qu'il faut recréer le superblock sur sde1 ou réassembler la grappe
raid avec l'option --force?

Pour le dire franchement, j'ai peur de tout pêter. Et j'ai plein d'autres
questions, mais c'est déjà trop long.

Merci pour vos lumières
xavier
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Fabien LE LEZ
Le #23211751
On Thu, 17 Mar 2011 16:12:27 +0100, Xavier Brochard

après une mise à jour du noyau et redémarrage
[...] montre 2 disques "inversés", sdc1 et sdd1



Est-ce que le nouveau noyau a des règles différentes de l'ancien, et a
inversé sdc et sdd ? Ça s'est vu...

Quel type de RAID as-tu ? Deux blocs RAID-1 en RAID-0 ? Deux blocs
RAID-0 en RAID-1 ? Du RAID 10 façon Linux (RAID 10f2 ou 10n2 par
exemple) ?

As-tu un backup de tes données ?
Si oui, la solution est fort simple : un coup de "badblocks -w" sur
les cinq disques, histoire de vérifier (et vider) les disques, puis tu
recrées un nouveau RAID.

Si tu dois récupérer des données sur les disques, ça se complique.

Franchement, avec cinq disques, c'est le merdier. Débranche le spare,
il ne sert manifestement à rien.
Logiquement, un RAID 10 doit pouvoir fonctionner avec seulement deux
disques. Débranche deux des disques : ça mettra les données à l'abri,
et ça simplifiera le problème.
En fait, je te conseillerais même d'inverser les câbles de sdc et sdd,
et de débrancher le reste. Si sdc et sdd sont miroirs l'un de l'autre,
essaie avec sdc et sdf.

Accessoirement, si tu as des disques en rab', je t'encourage à faire
une copie physique de chaque disque actif (cat /dev/sdc /dev/sdx),
histoire de ne pas tout perdre si tu fais une connerie.
Xavier Brochard
Le #23211791
Fabien LE LEZ wrote:
On Thu, 17 Mar 2011 16:12:27 +0100, Xavier Brochard

après une mise à jour du noyau et redémarrage
[...] montre 2 disques "inversés", sdc1 et sdd1



Est-ce que le nouveau noyau a des règles différentes de l'ancien, et a
inversé sdc et sdd ? Ça s'est vu...



C'est, au départ, le même noyau juste mis à jour, mais effectivement quand
je boote sur sysrescuecd c'est un autre noyau.

Je vais vérifier l'ordre des disques avec le cd d'install du système

Quel type de RAID as-tu ? Deux blocs RAID-1 en RAID-0 ? Deux blocs
RAID-0 en RAID-1 ? Du RAID 10 façon Linux (RAID 10f2 ou 10n2 par
exemple) ?



Raid 10n2
c'est à dire 2 miroirs:
sdc1 avec sdd1
sde1 avec sdf1

As-tu un backup de tes données ?



eh ... non
enfin si mais sur le raid

Si oui, la solution est fort simple : un coup de "badblocks -w" sur
les cinq disques, histoire de vérifier (et vider) les disques, puis tu
recrées un nouveau RAID.

Si tu dois récupérer des données sur les disques, ça se complique.

Franchement, avec cinq disques, c'est le merdier. Débranche le spare,
il ne sert manifestement à rien.



bonne idée

Logiquement, un RAID 10 doit pouvoir fonctionner avec seulement deux
disques. Débranche deux des disques : ça mettra les données à l'abri,
et ça simplifiera le problème.



bonne idée

En fait, je te conseillerais même d'inverser les câbles de sdc et sdd,
et de débrancher le reste. Si sdc et sdd sont miroirs l'un de l'autre,
essaie avec sdc et sdf.



oui je vais voir

Accessoirement, si tu as des disques en rab', je t'encourage à faire
une copie physique de chaque disque actif (cat /dev/sdc /dev/sdx),
histoire de ne pas tout perdre si tu fais une connerie.



oui, je vais utiliser le spare et un disque externe

merci pour ces conseils plein de bon sens

xavier
Fabien LE LEZ
Le #23212061
On Thu, 17 Mar 2011 17:07:11 +0100, Xavier Brochard

As-tu un backup de tes données ?



eh ... non
enfin si mais sur le raid



Dans ce cas, abandonne l'idée du RAID, et sers-toi plutôt des disques
supplémentaires comme backup.

RAID a une utilité et une seule : permettre à la machine de continuer
à tourner en cas de panne de disque. Il évite le downtime, pas la
perte de données.
Fabien LE LEZ
Le #23212051
On Thu, 17 Mar 2011 17:07:11 +0100, Xavier Brochard

Raid 10n2



Pourquoi n2, au fait ? J'ai cru comprendre que f2 est plus rapide.
Xavier Brochard
Le #23213651
Xavier Brochard wrote:
Fabien LE LEZ wrote:
On Thu, 17 Mar 2011 16:12:27 +0100, Xavier Brochard

après une mise à jour du noyau et redémarrage
[...] montre 2 disques "inversés", sdc1 et sdd1



Est-ce que le nouveau noyau a des règles différentes de l'ancien, et a
inversé sdc et sdd ? Ça s'est vu...



C'est, au départ, le même noyau juste mis à jour, mais effectivement quand
je boote sur sysrescuecd c'est un autre noyau.

Je vais vérifier l'ordre des disques avec le cd d'install du système



avec le CD d'install l'ordre est correct
du coup ça veut-il dire qu'il y a un bug dans le noyau? c'est le même noyau
sur le système, avec juste une mise à jour de sécurité.

Nouveau problème:
en démarrant sur un noyau plus ancien (c'est à dire la même version mais
avec 3 mises à jour de sécurité en moins), en mode de récupération (single
user) le système gèle juste après avoir monté les 2 partitions du SSD.
J'obtiens un
init: ureadahead-other main process (623) terminated with status 4

grrr..

xavier
Xavier Brochard
Le #23213731
Fabien LE LEZ wrote:
On Thu, 17 Mar 2011 17:07:11 +0100, Xavier Brochard

Raid 10n2



Pourquoi n2, au fait ? J'ai cru comprendre que f2 est plus rapide.



C'est exact. Mes notes d'installation indiquent que j'aurais du faire f2
avec une taille de chunk (ou stride) de 64k
Mais mdadm --examine montre n2 avec chunkdk.
L'installation s'étant mal déroulée, pour des tas de raison (surtout parce
que la neige de décembre a empêché la livraison de matériel attendu),
j'avais décidé de la refaire fin mars. Je suppose que j'ai mis n2 pour voir
en attendant.

xavier
Xavier Brochard
Le #23214121
Fabien LE LEZ wrote:
On Thu, 17 Mar 2011 16:12:27 +0100, Xavier Brochard

après une mise à jour du noyau et redémarrage
[...] montre 2 disques "inversés", sdc1 et sdd1



Est-ce que le nouveau noyau a des règles différentes de l'ancien, et a
inversé sdc et sdd ? Ça s'est vu...



C'est pire que tout. J'ai inspecté de près les différents dmesg que j'ai pu
trouver (ils ont été loggés sur le disque ssd).
Avec le dernier noyau Ubuntu 2.6.32-29-server les disques et partitions sont
tous mélangés: disques entre disques, disques avec partitions et partitions
entre elles

par exemple:
[ 12.5] sda:
[ 12.5] sdc:
[ 12.5] sdd:
[ 12.5] sde: sdd1
[ 12.5] sdf: sdc1
[ 12.5] sda1 sda2
[ 12.5] sdg: sde1
[ 12.5] sdf1
Publicité
Poster une réponse
Anonyme