Raid HS

Panique a bord, mon serveur ne redémarre pas !!! Juste après le boot, le message « le lecteur de disque n’est pas encore prêt ou n’est pas présent » est affiché. Il m’est proposé d’attendre (ce qui ne change rien) de passer ou tenter une récup manuelle.

Apparemment le raid est HS. J’ai passé pas mal de temps à comprendre la source du problème et trouvé la solution. J’en profite pour faire ce petit mémo afin de garder trace si cela se reproduit. Cela pourra toujours servir aussi à quelqu’un d’autre.


Analyse

Puisque c’est que le serveur me propose, je passe et je reprend la main sur la machine. Je checke les logs, mais je ne relève rien d’anormal… Je vérifie si mes disques sont bien détectées :

Bob@Linux:/$ sudo dmesg 

Je ne vois pas d’anomalies. Les disques ont pourtant bien montés au démarrage.

Bob@Linux:/$  sudo lshw -class disk
*-disk:1

       description: ATA Disk
       product: ST31000340NS
       vendor: Seagate
       physical id: 1
       bus info: scsi@4:0.0.0
       logical name: /dev/sdb
       version: SN06
       serial: 9QJ6NKGG
       size: 931GiB (1TB)
       capabilities: partitioned partitioned:dos
       configuration: ansiversion=5 signature=a4f32874

  *-disk:2
       description: ATA Disk
       product: ST31000524AS
       vendor: Seagate
       physical id: 0.0.0
       bus info: scsi@5:0.0.0
       logical name: /dev/sdc
       version: JC45
       serial: 6VPCATCP
       size: 931GiB (1TB)
       capabilities: partitioned partitioned:dos
       configuration: ansiversion=5 signature=55454ee8

Les disques sont bien présents et bien détectés par le système…

Je vérifie si le Raid est bien monté

Bob@Linux:/$ sudo mdadm --detail --scan --verbose

mdadm: md device /dev/md/d0 does not appear to be active.

Cela me confirme que le Raid n’est pas monté… OK. Les disques sont la, mais le Raid n’est pas monté… J’avance…

Bob@Linux:/$  ps ax | grep mda
 1262 ?        Ss     0:00 /sbin/mdadm --monitor --pid-file /var/run/mdadm/monitor.pid --daemonise --scan --syslog

Pourtant le daemon mdadm qui gère le Raid tourne…

Bob@Linux:/$ cat /proc/mdstat

Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]
md_d0 : inactive sdc1[1](S)
      976759936 blocks
unused devices

Là, si je comprend bien, ca me dit qu’il n’y a qu’un seul disque qui est dans le Raid…

Je relance donc le raid voir ce que ca donne.

Bob@Linux:/$ sudo mdadm --manage /dev/md/d0 --run

mdadm: started /dev/md/d0

Cette fois j’ai bien des infos qui sont remontées !! Je suis sur la bonne voie. :)

Bob@Linux:/$  sudo mdadm --detail /dev/md_d0

/dev/md_d0:
       Version : 00.90
       Creation Time : Sun Oct 30 02:14:52 2011
       Raid Level : raid1
       Array Size : 976759936 (931.51 GiB 1000.20 GB)
       Used Dev Size : 976759936 (931.51 GiB 1000.20 GB)
       Raid Devices : 2
       Total Devices : 1
       Preferred Minor : 0
       Persistence : Superblock is persistent
       Update Time : Sun Oct 30 10:53:19 2011
       State : clean, degraded
       Active Devices : 1
       Working Devices : 1
       Failed Devices : 0
       Spare Devices : 0

       UUID : 2ed56e17:30a5e840:c109596b:d7e29b7e (local to host linux)
       Events : 0.36
       Number   Major   Minor   RaidDevice State
       0       0        0        0      removed
       1       8       33        1      active sync   /dev/sdc1

Mais si je comprends bien, il n’y a qu’un seul disque déclaré dans le Raid… Quand je revérifie à nouveau le statut du raid, ca me confirme bien que le raid est actif.

Bob@Linux:/$  cat /proc/mdstat
Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]
md_d0 : active raid1 sdc1[1]
      976759936 blocks [2/1] [_U]
     unused devices:
 

Dans le doute, je vérifie les partitions en me disant qu’un disque est peut-etre tout moisi :

Bob@Linux:/$  sudo fdisk -l 

Disque /dev/sdb: 1000.2 Go, 1000204886016 octets
255 têtes, 63 secteurs/piste, 121601 cylindres
Unités = cylindres de 16065 * 512 = 8225280 octets
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Identifiant de disque : 0xa4f32874
Périphérique Amorce  Début        Fin      Blocs     Id  Système
/dev/sdb1               1      121601   976760001   fd  Linux raid autodetect

Disque /dev/sdc: 1000.2 Go, 1000204886016 octets
255 têtes, 63 secteurs/piste, 121601 cylindres
Unités = cylindres de 16065 * 512 = 8225280 octets
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Identifiant de disque : 0x55454ee8
Périphérique Amorce  Début        Fin      Blocs     Id  Système
/dev/sdc1               1      121601   976760001   fd  Linux raid autodetect
 

Mais je vois que les disques sont bien présents, et il n’y a pas d’anomalies remontées… Cela me remonte bien la présence des deux disques du RAID.

A tout hasard, je tenter de monter la partition du Raid

$ sudo mount /mnt/raid1/
 

Et ca marche ! Je retrouve mes datas. Mais mon raid est toujours bancal…

Bob@Linux:/$  cat /proc/mdstat

Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]
md_d0 : active raid1 sdb1[0]
      976759936 blocks [2/1] [U_]
      unused devices:
 


Résolution

Je rechecke l’état de mon Raid

Bob@Linux:/$ sudo mdadm --detail /dev/md_d0

/dev/md_d0:
        Version : 00.90
        Creation Time : Sun Oct 30 02:14:52 2011
        Raid Level : raid1
        Array Size : 976759936 (931.51 GiB 1000.20 GB)
        Used Dev Size : 976759936 (931.51 GiB 1000.20 GB)
        Raid Devices : 2
        Total Devices : 1
        Preferred Minor : 0
        Persistence : Superblock is persistent
        Update Time : Thu Nov 10 21:33:05 2011
        State : clean, degraded

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

UUID : 2ed56e17:30a5e840:c109596b:d7e29b7e (local to host mediaserver)
Events : 0.136748
Number   Major   Minor   RaidDevice State

       0       8       17        0      active sync   /dev/sdb1
       1       0        0        1      removed
 

Ça en devient vraiment agaçant…

Je suis très hésitant car j’ai peur de perdre toutes mes données avec une action incosidérée. Apparemment le probleme c’est que le second disque, pour une raison ou pour une autre, n’est plus intérgée dans le raid. Je tente donc un nouvel ajout…

Bob@Linux:/$ sudo mdadm /dev/md_d0 -a /dev/sdc1

mdadm: re-added /dev/sdc1
 

Et ca marche !!!!

Bob@Linux:/$ sudo mdadm --detail /dev/md_d0

/dev/md_d0:
        Version : 00.90
        Creation Time : Sun Oct 30 02:14:52 2011
        Raid Level : raid1
        Array Size : 976759936 (931.51 GiB 1000.20 GB)
        Used Dev Size : 976759936 (931.51 GiB 1000.20 GB)
        Raid Devices : 2
        Total Devices : 2

Preferred Minor : 0
Persistence : Superblock is persistent
Update Time : Thu Nov 10 21:39:26 2011
State : clean, degraded, recovering
Active Devices : 1
Working Devices : 2
Failed Devices : 0
Spare Devices : 1
Rebuild Status : 0% complete

UUID : 2ed56e17:30a5e840:c109596b:d7e29b7e (local to host mediaserver)
Events : 0.136756

Number   Major   Minor   RaidDevice State
       0       8       17        0      active sync   /dev/sdb1
       2       8       33        1      spare rebuilding   /dev/sdc1
 

Je retrouve un Raid complet. Mais en pleine reconstruction !!

Bob@Linux:/$  cat /proc/mdstat

Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]
md_d0 : active raid1 sdc1[2] sdb1[0]
      976759936 blocks [2/1] [U_]
      [>....................]  recovery =  1.8% (18362112/976759936) finish=266.2min speed=59998K/sec
unused devices:
 

Bon bah mainteannt, il n’y a plus qu’a attendre quelques heures que la reconstruction se termine !

Bob@Linux:/$ cat /proc/mdstat
Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]
md_d0 : active raid1 sdc1[1] sdb1[0]
      976759936 blocks [2/2] [UU]

unused devices: 
 


Résolution, la vraie

Mais quand je redémarre le serveur, j’ai exactement le même message… En fait, rien n’est résolu… Je rechecke l’état de mon Raid, et je vois que si, finalement y a du mieux. Si je passe, et que je tente de monter le Raid ensuite, cela ne pose aucune difficulté, et le raid est bien actif.

Bob@Linux:/$  sudo mdadm  --examine  --scan

ARRAY /dev/md0 level=raid1 num-devices=2 UUID=2ed56e17:30a5e840:c109596b:d7e29b7e
 

Le Raid semble bien configuré avec les deux disques. Mais le montage ne s’est pas fait… J’ai édité le fichier /etc/mdadm/mdadm.conf et j’ai ajouté le résultat de la commande précédente, pour forcer le raid à utiliser ces deux disques.

Bob@Linux:/$  sudo vi /etc/mdadm/mdadm.conf 

ARRAY /dev/md/d0 level=raid1 num-devices=2 UUID=2ed56e17:30a5e840:c109596b:d7e29b7e

Je retente le démarrage, et j’ai exactement le même message d’erreur.

Quand je checke la configuration du fichier de configuration /etc/fstab, je ne vois rien d’anormal… Et puis, j’ai un doute sur la déclaration du « File System ». Je modifie l’entrée de « /dev/md/d0  » en « /dev/md0  » . La seconde entrée est celle déclarée lors de la création du Raid. Ensuite, mdadm change la valeur en « /md/d0  » .

Bob@Linux:/$  sudo vi /etc/fstab 

# Montage de la partition du RAID de 1 To
#/dev/md/d0 /mnt/raid1 ext3 defaults 0 1
/dev/md0 /mnt/raid1 ext3 defaults 0 1

Et cette fois, c’est la bonne. le raid est bien chargé au démarrage et il est ensuite bien monté comme il faut.