[Lenny] Problème RAID1

Bonjour à tous,
j’ai 2 disques de 1TO sdb et sdc que j’ai monté en RAID1 avec mdadm (/dev/md1)…

Au démarrage, j’ai un problème lors du fsck:

Log of fsck:

fsck.ext3: Bad magic number in super-block while trying to open /dev/md1

/dev/md1: 
The superblock couldn't be read or does no describe a correct ext2 filesystem.
If the device is valid and it really countains an ext2 filesystem (and not swap or ufs or something else)...


/dev/sda3: clean, 4675/12484608 files, 4103490/24952961 blocks
fsck died with exit status 8

Je n’arrive pas à trouver d’où vient le problème…

Dans Gparted:

/dev/sdb1: ext3, les champs taille 931.51Go, utilisé: 14.81Go, inutilisé 916.79Go, marqueur raid
/dev/sdc1: ext3, champ taille 931.51Go, utilisé: ---, Inutilisé: ----, marqueur raid
Informations sur sdc1: 
e2label: No such file or directory while trying to open /dev/sdc1
Couldn't find valid filesystem superblock

dumpe2fs: No such file or directory while trying to open /dev/sdc1

Auriez-vous des idées?

Merci

Que contient /proc/mdstat ?
Que racontent “mdadm -D /dev/md1” et “mdadm -E /dev/sd[bc]1” ?
Que dit gparted (et/ou fsck en lecture seule) sur dev/sdb1 ?
Si /dev/sdb1 semble correct, tu pourrais essayer de retirer /dev/sdc1 de /dev/md1 puis de l’ajouter à nouveau.

Alors, dans un premier temps:

[code]cat /proc/mdstat
Personalities : [raid1]
md1 : active (auto-read-only) raid1 sdc[1]
976762496 blocks [2/1] [_U]

unused devices:
[/code]

 mdadm -D /dev/md1
/dev/md1:
        Version : 00.90
  Creation Time : Sat Jan  2 15:19:24 2010
     Raid Level : raid1
     Array Size : 976762496 (931.51 GiB 1000.20 GB)
  Used Dev Size : 976762496 (931.51 GiB 1000.20 GB)
   Raid Devices : 2
  Total Devices : 1
Preferred Minor : 1
    Persistence : Superblock is persistent

    Update Time : Fri Jan  8 17:11:29 2010
          State : clean, degraded
 Active Devices : 1
Working Devices : 1
 Failed Devices : 0
  Spare Devices : 0

           UUID : 88c501b6:d47f5d7d:c230666b:5103eba0
         Events : 0.86

    Number   Major   Minor   RaidDevice State
       0       0        0        0      removed
       1       8       32        1      active sync   /dev/sdc

Comment je fais? :blush:

Pour le moment on ne touche à rien, on fait le point sur la situation.
Apparemment md1 n’a plus que sdc1 qui est foireux, et sdb1 a disparu, il n’est même pas listé en tant que “unused device”.
Que raconte la commande mdadm -E que j’avais mentionnée ? Et “fsck -n /dev/sdb1” ?
Tu peux regarder dans les logs s’il y a des messages intéressants concernant md1, sdb1 et sdc1 ?

Alors…

fsck -n /dev/sdb1 fsck 1.41.3 (12-Oct-2008) fsck : fsck.mdraid : non trouvé fsck : Erreur 2 lors de l'exécution de fsck.mdraid pour /dev/sdb1

mdadm -E mdadm: No devices to examine

Je comprends pas où j’ai me*dé :cry:
Merci pour ton aide encore une fois Pascal!

e2fsck -n /dev/sdb1
mdadm -E /dev/sd[bc]1

Des messages intéressants dans /var/log/* ?

e2fsck -n /dev/sdb1 e2fsck 1.41.3 (12-Oct-2008) /dev/sdb1 : propre, 11/61054976 fichiers, 3883124/244189984 blocs

[code]mdadm -E /dev/sd[bc]1
/dev/sdb1:
Magic : a92b4efc
Version : 00.90.00
UUID : 57574d12:95010b26:345a719c:ee0e83b4 (local to host serveur)
Creation Time : Sat Jan 9 16:53:41 2010
Raid Level : raid1
Used Dev Size : 976759936 (931.51 GiB 1000.20 GB)
Array Size : 976759936 (931.51 GiB 1000.20 GB)
Raid Devices : 2
Total Devices : 2
Preferred Minor : 1

Update Time : Sat Jan  9 17:04:00 2010
      State : active

Active Devices : 2
Working Devices : 2
Failed Devices : 0
Spare Devices : 0
Checksum : 8d720d59 - correct
Events : 5

  Number   Major   Minor   RaidDevice State

this 0 8 17 0 active sync /dev/sdb1

0 0 8 17 0 active sync /dev/sdb1
1 1 8 33 1 active sync
[/code]

checkfs

[code]

Log of fsck -C -R -A -a
Sat Jan 9 17:04:34 2010

fsck 1.41.3 (12-Oct-2008)
fsck.ext3: Bad magic number in super-block while trying to open /dev/md1

/dev/md1:
The superblock could not be read or does not describe a correct ext2
filesystem. If the device is valid and it really contains an ext2
filesystem (and not swap or ufs or something else), then the superblock
is corrupt, and you might try running e2fsck with an alternate superblock:
e2fsck -b 8193

/dev/sda3: clean, 4675/12484608 files, 4103490/24952961 blocks
fsck died with exit status 8

Sat Jan 9 17:04:34 2010
----------------[/code]

checkroot

[code]
Log of fsck -C -a -t ext3 /dev/sda1
Sat Jan 9 17:04:33 2010

fsck 1.41.3 (12-Oct-2008)
/dev/sda1: clean, 113070/3203072 files, 1008081/12799780 blocks

Sat Jan 9 17:04:33 2010
----------------[/code]

J’ai vu ça dans kern.log sinon rien d’intéressant à priori…

[quote]
Jan 9 17:06:16 serveur kernel: [ 128.402001] VFS: Can’t find ext3 filesystem on dev md1.[/quote]

La commande avec mdadm -E ne dit rien sur /dev/sdc1 ?

EDIT : je viens de me rendre compte que ton md1 est basé sur sdc et non sdc1. Donc pas sur une partition comme d’habitude mais sur le disque entier ! Pourtant gparted parle bien de sdc1, donc sdc contient une table de partition. Comment a été créé ce fichu RAID ? Il marchait avant ou tu viens de le créer ? Que contient /etc/mdadm/mdadm.conf ?

En tout cas sdb1 semble contenir un système de fichiers correct. 11 fichiers pour ~15 Go, c’est bon ? Tu peux essayer de le monter en lecture seule pour voir.

mdadm.conf:

[code]# mdadm.conf

Please refer to mdadm.conf(5) for information about this file.

by default, scan all partitions (/proc/partitions) for MD superblocks.

alternatively, specify devices to scan, using wildcards if desired.

DEVICE partitions

auto-create devices with Debian standard permissions

CREATE owner=root group=disk mode=0660 auto=yes

automatically tag new arrays as belonging to the local system

HOMEHOST

instruct the monitoring daemon where to send mail alerts

MAILADDR root

definitions of existing MD arrays

ARRAY /dev/md1 level=raid1 num-devices=2 UUID=88c501b6:d47f5d7d:c230666b:5103eba0

This file was auto-generated on Fri, 08 Jan 2010 20:08:49 +0100

by mkconf $Id$

[/code]

Je viens de le créer…

Je récapitule ce que j’ai fait…

Formatage des deux disques en “fd” RAID…
puis
mkdir /mnt/raid
mdadm --create /dev/md1 --level=1 --raid-devices=2 /dev/sdb1 /dev/sdc1
mkfs.ext3 /dev/md1
mount /dev/md1 /mnt/raid

Je me suis entre autres aidé de doc.ubuntu-fr.org/installation/raid1_software

EDIT: je rajoute au cas ou…

[code]mdadm --detail /dev/md1
/dev/md1:
Version : 00.90
Creation Time : Sat Jan 2 15:19:24 2010
Raid Level : raid1
Array Size : 976762496 (931.51 GiB 1000.20 GB)
Used Dev Size : 976762496 (931.51 GiB 1000.20 GB)
Raid Devices : 2
Total Devices : 1
Preferred Minor : 1
Persistence : Superblock is persistent

Update Time : Fri Jan  8 17:11:29 2010
      State : clean, degraded

Active Devices : 1
Working Devices : 1
Failed Devices : 0
Spare Devices : 0

       UUID : 88c501b6:d47f5d7d:c230666b:5103eba0
     Events : 0.86

Number   Major   Minor   RaidDevice State
   0       0        0        0      removed
   1       8       32        1      active sync   /dev/sdc

[/code]
Je note que Total Device: 1 et Raid Devices : 2

Peut-être devrais-je tout recommencer nan :unamused: ?

Quelques informations encore.
/proc/mdstat et mdadm -D indique que md1 est basé sur sdc (numéros major:mineur 8:32), l’autre volume a été retiré.
En revanche mdadm -E /dev/sdb1 indique que l’ensemble RAID auquel il appartient est basé sur sdb1 (8:17) et un autre périphérique, 8:33, qui correspond normalement à sdc1 mais n’est pas identifié comme tel. En relisant les messages d’erreur “No such file or directory while trying to open /dev/sdc1”, j’ai l’impression que le fichier périphérique (je ne parle pas de la partition) /dev/sdc1 n’existe pas. Pourtant gparted affiche la partition… Tu peux vérifier dans /dev et avec fdisk -l ?

Autre chose, l’identifiant (UUID) du superbloc RAID de sdb1 est différent ce celui de md1 rapporté par mdadm -D et inscrit dans mdadm.conf.

Quand tu as créé le RAID, je suppose qu’il fonctionnait ? Tu n’as rien fait d’autre ? A quel moment n’a-t-il plus fonctionné ? Après un redémarrage ? Les données qui sont dessus sont importantes ?

EDIT : note : mdadm --detail, c’est pareil que -D.

J’ai pas de /dev/sdc1

[code]fdisk -l

Disk /dev/sda: 160.0 GB, 160041885696 bytes
255 heads, 63 sectors/track, 19457 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0x0003f60b

Device Boot Start End Blocks Id System
/dev/sda1 * 1 6374 51199123+ 83 Linux
/dev/sda2 18801 19457 5277352+ 5 Extended
/dev/sda3 6375 18800 99811845 83 Linux
/dev/sda5 18801 19457 5277321 82 Linux swap / Solaris

Partition table entries are not in disk order

Disk /dev/sdb: 1000.2 GB, 1000204886016 bytes
255 heads, 63 sectors/track, 121601 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0x000d2be1

Device Boot Start End Blocks Id System
/dev/sdb1 1 121601 976760032 fd Linux raid autodetect

Disk /dev/sdc: 1000.2 GB, 1000204886016 bytes
255 heads, 63 sectors/track, 121601 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0x216c2bc4

Device Boot Start End Blocks Id System
/dev/sdc1 1 121601 976760001 fd Linux raid autodetect

Disk /dev/md1: 1000.2 GB, 1000204795904 bytes
255 heads, 63 sectors/track, 121601 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0x216c2bc4

Device Boot      Start         End      Blocks   Id  System

/dev/md1p1 1 121601 976760001 fd Linux raid autodetect
[/code]

[quote]Quand tu as créé le RAID, je suppose qu’il fonctionnait ? Tu n’as rien fait d’autre ? A quel moment n’a-t-il plus fonctionné ? Après un redémarrage ? Les données qui sont dessus sont importantes ?
[/quote]

J’ai créée le RAID, puis redémarré, c’est alors que les messages d’erreurs sont apparus.
J’ai aucune données dessus…

Il y plusieurs mystères qui demeurent.

  • Pourquoi /dev/sdc1 n’a pas été créé alors que la partition existe sur sdc ? Il faudrait regarder dans le log du dernier démarrage du noyau avec dmesg.
  • Pourquoi les volumes RAID des deux disques ont des UUID différents ?
  • Pourquoi fdisk indique que sdc1 est légèrement plus petite que sdb1 alors que les disques sont de même taille ?
  • Pourquoi md1 utilise le disque sdc et non la partition sdc1 ? (c’est peut-être lié au fait que sdc1 n’a pas été créé, mais quelle est la cause et la conséquence ?)

En tout cas un mystère s’éclaircit : le système de fichier a été créé dans sdc1, pas dans sdc, du coup on le cherche au mauvais endroit puisqu’il y a une piste d’écart.

Si le volume ne contient rien, le plus simple est à mon avis de tout supprimer et recréer, y compris les partitions RAID. Avais-tu laissé le temps au RAID de synchroniser après la création avant de redémarrer ?

Oui

Je n’y vois pas d’inconvénient. Par contre, existe-t’il une méthode bien clean pour m’éviter les mauvaises surprises par la suite?

Je n’ai pas lu le tutorial, mais la procédure que tu as indiquée me semble appropriée.

Ok merci pour ton aide!
Une dernière question, comment procéder pour supprimer sans traces mon raid?

Bonne soirée

Pour arrêter le volume RAID : mdadm --stop /dev/md1
Ensuite pour nettoyer je ne sais pas trop, je n’ai jamais fait. Il doit falloir supprimer la ligne ARRAY correspondante dans mdadm.conf, puis recréer les partitions RAID et recommencer la procédure.

Info : Il y a un rapport de bug Debian pour mdadm qui ressemble à ton problème : partition qui n’apparaît pas dans /dev et disque entier utilisé comme volume RAID au lieu de la partition.

http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=554461

Cela pourrait être lié au fait que la partition RAID va jusqu’à la fin du disque. Donc ça peut valoir le coup de les faire un peu plus petites. Et pour être tranquille, il faudrait effacer la fin du disque pour éliminer toute trace de ce qui pourrait ressembler à un superbloc RAID. L’option --zero-superblock est censée faire ça, mais un autre rapport de bug signale qu’elle ne marche pas toujours. Reste le bon vieux dd dans ce cas pour écrire des zéros. Le plus simple, créer une petite partition sdX2 dans l’espace restant et :

(On pourrait aussi effacer sdX à partir de la fin de sdX1, mais il faut calculer un peu)