La panne!
Cela devait arriver (et ca vous arrivera, Murphy est la pour ca):
Aug 5 06:25:34 sophie mdadm[1199]: Fail event detected on md device /dev/md0, component device /dev/sdb1
Disque HS, heureusement, le serveur a ses données sur des disques RAID (RAID0, mode mirroir).
LDLC
Petite commande chez LDLC pour avoir du disque avec la bonne connectique (du SATA, oui, M'sieur), livré 2 jours après (rien ne presse un disque est encore OK, mais ne trainons pas)
Mise en place
Arret du serveur, debranchement du disque HS, mise en place du nouveau. bon, c'est du 320Go a la place de 200Go, mais ca va. reboot du PC.
Au boot, le classique press F1 .... puis l'OS est chargé.
root@ns2:~# cat /proc/mdstat ... md0 : active raid1 sda1[0] 7815488 blocks [2/1] [U_] ...
Table de partitions, HEIN?
Les méthodes sur le web imaginent que vous retrouvez un disque identique au précédent, et que vous savez exactement la taille de chaque partition a l'octet pret. Moi, perso, je m'en souviens plus.... Alors je prend les bons outils qui font les choses bien. En effet avec un disque neuf, on a ca:
root@ns2:~# fdisk /dev/sdb Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel Building a new DOS disklabel with disk identifier 0xb31ed563. Changes will remain in memory only, until you decide to write them. After that, of course, the previous content won't be recoverable. Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite) WARNING: DOS-compatible mode is deprecated. It's strongly recommended to switch off the mode (command 'c') and change display units to sectors (command 'u'). Command (m for help): q
Il est temps de connaitre les bonnes tailles des partitions, sans limiter mon 320Go à un 200Go
root@ns2:~# sfdisk -d /dev/sda | sfdisk /dev/sdb root@ns2:~# fdisk -l /dev/sda Disk /dev/sda: 200.0 GB, 200049647616 bytes 255 heads, 63 sectors/track, 24321 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x000c4348 Device Boot Start End Blocks Id System /dev/sda1 * 1 973 7815591 fd Linux raid autodetect /dev/sda2 974 24321 187542810 fd Linux raid autodetect root@ns2:~# fdisk -l /dev/sdb Disk /dev/sdb: 320.1 GB, 320072933376 bytes 255 heads, 63 sectors/track, 38913 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x00000000 Device Boot Start End Blocks Id System /dev/sdb1 * 1 973 7815591 fd Linux raid autodetect /dev/sdb2 974 24321 187542810 fd Linux raid autodetect
Tout va bien, on a créé une nouvelle table de partition avec la même taille (sfdisk -d /dev/sda | sfdisk /dev/sdb
). Et contrairement aux méthodes plus bourrines, la table de partition est pour un disque de 320Go et on peut encore creer des partitions derrière.
Reconsolidation du RAID
D'abord, on vérifie qu'est ce qu'on écrase. A faire sans avoir une Fischer sur la table!
root@ns2:~# mdadm --misc --detail /dev/md0 /dev/md0: Version : 0.90 Creation Time : Sat Jul 15 19:48:23 2006 Raid Level : raid1 Array Size : 7815488 (7.45 GiB 8.00 GB) Used Dev Size : 7815488 (7.45 GiB 8.00 GB) Raid Devices : 2 Total Devices : 1 Preferred Minor : 0 Persistence : Superblock is persistent Update Time : Fri Aug 24 16:30:57 2012 State : clean, degraded Active Devices : 1 Working Devices : 1 Failed Devices : 0 Spare Devices : 0 UUID : b677a1b8:a8777bf6:87d31425:345fc01d Events : 0.2932 Number Major Minor RaidDevice State 0 8 1 0 active sync /dev/sda1 1 0 0 1 removed
On est sur le bon, /dev/md0 est en théorie stocké par /dev/sda1 et /dev/sdb1. (ACHH, ce RAID a 6ans!!!!)
root@ns2:~# mdadm /dev/md0 --manage --add /dev/sdb1 root@ns2:~# cat /proc/mdstat Personalities : [raid1] md0 : active raid1 sdb1[2] sda1[0] 7815488 blocks [2/1] [U_] [>....................] recovery = 2.8% (221312/7815488) finish=1.8min speed=64262K/sec
Tout est bon, dans le meilleur des mondes, ca se reconstruit... donc pareil pour l'autre partition...
root@ns2:~# mdadm /dev/md1 --manage --add /dev/sdb2
Conclusion
40s dans l'OS pour lancer tout cela. Franchement, c'est pas dur, et c'est rien par rapport à perdre 15 ans de photos, de projets, de mails de documents, allez expliquez à votre femme que vous avez perdu toutes ses photos ....
(PS: Le RAID vous sauve d'une panne (1 disque qui lache clairement, mais ne vous dispense pas de backup. Un RAID ne peut rien contre un rm -fr /
ou une corruption silentieuse.
Je retourne faire une petite partie de http://www.springrts.com, avec ma Fischer.