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.
