It’s likely that your distribution already has mechanism(s) for periodicially running mdadm array checks but occasionally it’s useful/nessicary to force an immediate verifcation pass. A check of a Linux mdadm/device-mapper array is initiated by echoing a command into the coresponding sysfs attribute for the mdX device to be inspected.
There are two types of checks that can be run. A “sync” check that looks for and reports issues and a “repair” check that will attempt to resolve identified issues.
To run a “sync” check:
echo check > /sys/block/mdX/md/sync_action
To run a “repair” check:
echo repair > /sys/block/mdX/md/sync_action
See the RAID Administration page of Linux RAID wiki for more details.
Demo:
# for MD in /sys/block/md?/md/sync_action; do echo check > $MD; done
# cat /proc/mdstat
Personalities : [raid1]
md7 : active raid1 sdd1[0] sde1[1]
1953509312 blocks [2/2] [UU]
[>....................] resync = 0.0% (705280/1953509312) finish=323.0min speed=100754K/sec
md0 : active raid1 sdc1[2] sdb1[1] sda1[0]
513984 blocks [3/3] [UUU]
md5 : active raid1 sdc2[2] sdb2[1] sda2[0]
36861056 blocks [3/3] [UUU]
resync=DELAYED
md4 : active raid1 sdc5[2] sdb5[1] sda5[0]
16386176 blocks [3/3] [UUU]
resync=DELAYED
md1 : active raid1 sdc6[2] sdb6[1] sda6[0]
12586816 blocks [3/3] [UUU]
[>....................] resync = 2.5% (324480/12586816) finish=1.8min speed=108160K/sec
md3 : active raid1 sdc7[2] sdb7[1] sda7[0]
1020032 blocks [3/3] [UUU]
resync=DELAYED
md6 : active raid1 sdc8[2] sdb8[1] sda8[0]
45287104 blocks [3/3] [UUU]
resync=DELAYED
md2 : active raid1 sdc3[2] sdb3[1] sda3[0]
30716160 blocks [3/3] [UUU]
resync=DELAYED
unused devices:
This is what the coresponding dmesg looks like:
md: syncing RAID array md0 md: minimum _guaranteed_ reconstruction speed: 1000 KB/sec/disc. md: using maximum available idle IO bandwidth (but not more than 200000 KB/sec) for reconstruction. md: using 128k window, over a total of 513984 blocks. md: delaying resync of md1 until md0 has finished resync (they share one or more physical units) md: delaying resync of md2 until md0 has finished resync (they share one or more physical units) md: delaying resync of md3 until md0 has finished resync (they share one or more physical units) md: delaying resync of md4 until md0 has finished resync (they share one or more physical units) md: delaying resync of md5 until md0 has finished resync (they share one or more physical units) md: delaying resync of md6 until md0 has finished resync (they share one or more physical units) md: syncing RAID array md7 md: minimum _guaranteed_ reconstruction speed: 1000 KB/sec/disc. md: using maximum available idle IO bandwidth (but not more than 200000 KB/sec) for reconstruction. md: using 128k window, over a total of 1953509312 blocks. md: md0: sync done. md: delaying resync of md6 until md5 has finished resync (they share one or more physical units) md: delaying resync of md5 until md4 has finished resync (they share one or more physical units) md: delaying resync of md4 until md1 has finished resync (they share one or more physical units) md: delaying resync of md3 until md4 has finished resync (they share one or more physical units) md: delaying resync of md2 until md4 has finished resync (they share one or more physical units) md: delaying resync of md1 until md6 has finished resync (they share one or more physical units) md: delaying resync of md5 until md4 has finished resync (they share one or more physical units) md: delaying resync of md4 until md1 has finished resync (they share one or more physical units) md: delaying resync of md3 until md4 has finished resync (they share one or more physical units) md: delaying resync of md6 until md4 has finished resync (they share one or more physical units) md: delaying resync of md3 until md4 has finished resync (they share one or more physical units) md: delaying resync of md4 until md1 has finished resync (they share one or more physical units) md: delaying resync of md5 until md4 has finished resync (they share one or more physical units) md: syncing RAID array md1 md: minimum _guaranteed_ reconstruction speed: 1000 KB/sec/disc. md: using maximum available idle IO bandwidth (but not more than 200000 KB/sec) for reconstruction. md: using 128k window, over a total of 12586816 blocks. md: delaying resync of md2 until md4 has finished resync (they share one or more physical units) RAID1 conf printout: --- wd:3 rd:3 disk 0, wo:0, o:1, dev:sda1 disk 1, wo:0, o:1, dev:sdb1 disk 2, wo:0, o:1, dev:sdc1