Dans l'exemple suivant, le disque /dev/vdb est en panne.
La partition /dev/vdb1 intégrée au volume RAID1 /dev/md127 n'est plus accessible.
Dans le cas où la panne ne serait pas détectée par le système, exécuter la commande suivante :
$ mdadm --manage --set-faulty /dev/md127 /dev/vdb1
On vérifie l'état du volume RAID :
$ cat /proc/mdstat
Personalities : [raid1] [linear] [multipath] [raid0] [raid6] [raid5] [raid4] [raid10]
md127 : active raid1 vda1[2] vdb1[1](F)
10476416 blocks super 1.2 [2/1] [U_]
unused devices: <none>
La partition /dev/vdb1 est bien indiquée comme n'étant plus accessible (flag à F).
On supprime la partition /dev/vdb1 du volume RAID /dev/md127 :
$ mdadm /dev/md127 -r /dev/vdb1
mdadm: hot removed /dev/vdb1 from /dev/md127
On vérifie que la partition /dev/vdb1 a bien été supprimée :
$ cat /proc/mdstat
Personalities : [raid1] [linear] [multipath] [raid0] [raid6] [raid5] [raid4] [raid10]
md127 : active raid1 vda1[2]
10476416 blocks super 1.2 [2/1] [U_]
unused devices: <none>
La partition n'apparait plus.
Il faut maintenant arrêter la machine, remplacer le disque défectueux puis redémarrer la machine.
Après redémarrage de la machine, on liste les disques :
$ fdisk -l
Disk /dev/vda: 10.7 GB, 10737418240 bytes
16 heads, 63 sectors/track, 20805 cylinders, total 20971520 sectors
Units = sectors of 1 * 512 = 512 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/vda1 2048 20971519 10484736 fd Linux RAID autodetect
Disk /dev/vdb: 10.7 GB, 10737418240 bytes
16 heads, 63 sectors/track, 20805 cylinders, total 20971520 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000
Disk /dev/vdb doesn't contain a valid partition table
Disk /dev/md127: 10.7 GB, 10727849984 bytes
2 heads, 4 sectors/track, 2619104 cylinders, total 20952832 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000
Disk /dev/md127 doesn't contain a valid partition table
Mon nouveau disque /dev/vdb apparait bien dans la liste.
Il faut maintenant recopier la table de partition du disque sain /dev/vda vers le nouveau disque /dev/vdb.
$ sfdisk --dump /dev/vda | sfdisk /dev/vdb
Puis on vérifie que l'opération s'est bien déroulée :
$ fdisk -l
Disk /dev/vda: 10.7 GB, 10737418240 bytes
16 heads, 63 sectors/track, 20805 cylinders, total 20971520 sectors
Units = sectors of 1 * 512 = 512 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/vda1 2048 20971519 10484736 fd Linux RAID autodetect
Disk /dev/vdb: 10.7 GB, 10737418240 bytes
16 heads, 63 sectors/track, 20805 cylinders, total 20971520 sectors
Units = sectors of 1 * 512 = 512 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/vdb1 2048 20971519 10484736 fd Linux RAID autodetect
Disk /dev/md127: 10.7 GB, 10727849984 bytes
2 heads, 4 sectors/track, 2619104 cylinders, total 20952832 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000
Disk /dev/md127 doesn't contain a valid partition table
Mon nouveau disque /dev/vdb contient bien désormais une partition du type Linux RAID autodetect /dev/vdb1.
Pour terminer, il faut maintenant ajouter notre nouvelle partition /dev/vdb1 à notre volume RAID1 /dev/md127 :
$ mdadm /dev/md127 -a /dev/vdb1
Reste à vérifier la reconstruction du RAID :
$ cat /proc/mdstat
Personalities : [raid1] [linear] [multipath] [raid0] [raid6] [raid5] [raid4] [raid10]
md127 : active raid1 vdb1[3] vda1[2]
10476416 blocks super 1.2 [2/1] [U_]
[>....................] recovery = 2.7% (286656/10476416) finish=13.0min speed=13029K/sec
unused devices: <none>
Pour information, la reconstruction du RAID peut être suivie en temps réel grâce à cette commande :
$ watch -n 1 cat /proc/mdstat
Une fois la reconstruction terminée, on vérifie l'état de notre volume RAID1 /dev/md127 :
$ cat /proc/mdstat
Personalities : [raid1] [linear] [multipath] [raid0] [raid6] [raid5] [raid4] [raid10]
md127 : active raid1 vdb1[3] vda1[2]
10476416 blocks super 1.2 [2/2] [UU]
unused devices: <none>
$ mdadm --detail /dev/md127
/dev/md127:
Version : 1.2
Creation Time : Mon May 20 22:18:07 2013
Raid Level : raid1
Array Size : 10476416 (9.99 GiB 10.73 GB)
Used Dev Size : 10476416 (9.99 GiB 10.73 GB)
Raid Devices : 2
Total Devices : 2
Persistence : Superblock is persistent
Update Time : Tue May 21 13:29:20 2013
State : clean
Active Devices : 2
Working Devices : 2
Failed Devices : 0
Spare Devices : 0
Name : vm-vpn:127 (local to host vm-vpn)
UUID : 6479c625:120e2001:65ef33d1:dfb60c0f
Events : 90
Number Major Minor RaidDevice State
2 253 1 0 active sync /dev/vda1
3 253 17 1 active sync /dev/vdb1