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.