mdadm/md-check how to check array integrity without rebuilding

This doesn't seem to be widely known (maybe it's in some documentation that none of us read though) but there's an easy way to check the integrity of any mdadm array:

sudo echo check > /sys/block/md0/md/sync_action
-bash: /sys/block/md0/md/sync_action: Permission denied

sudo will never work, this only works as root since echo is not actually a binary/command.  It is built-into bash.


/sys/devices/virtual/block/md0/md# echo check >sync_action
 cat /proc/mdstat
Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]
md_d1 : inactive sdc2[1](S)
      20490816 blocks
      
md0 : active raid1 sda1[0] sdc1[1]
      943730240 blocks [2/2] [UU]
      [>....................]  check =  0.0% (424768/943730240) finish=111.0min speed=141589K/sec
     
unused devices: <none>

 

In dmesg you'll see the following:

[ 1761.813250] md: data-check of RAID array md0
[ 1761.813257] md: minimum _guaranteed_  speed: 1000 KB/sec/disk.
[ 1761.813263] md: using maximum available idle IO bandwidth (but not more than 200000 KB/sec) for data-check.
[ 1761.813273] md: using 128k window, over a total of 943730240 blocks.
[11451.021752] md: md0: data-check done.
[32917.662549] md: data-check of RAID array md0
[32917.662556] md: minimum _guaranteed_  speed: 1000 KB/sec/disk.
[32917.662562] md: using maximum available idle IO bandwidth (but not more than 200000 KB/sec) for data-check.
[32917.662571] md: using 128k window, over a total of 943730240 blocks.
 

When it's done you'll see this:

[11451.021752] md: md0: data-check done.

 

When there's corruption I have no idea what you'd see, maybe in mdstat you'll see a bad disk is off-line and marked as failed and an entry in dmesg/messages that the check is failed or completed with errors.  Just a guess, I've never seen any example of reference on the net about what happens or what is said if there is an inconsistency found.  Distributions like Ubuntu have a cronjob/script that check the array once a week though.

Latest Articles

  • AMD Set Fan Speed and Other Powerplay Memory/CPU Timings with a Linux script
  • Ethereum Mining Claymore Nanopool Error
  • genisoimage errors with long filenames and deep directory structures
  • Linux Kernel USB Export Errors
  • How to download gajim 0.16.9 XMPP/Jabber client so you can use OMEMO encryption
  • HP DL385 G7 Linux BIOS Update Flash
  • hwloc-nox set CPU affinity in Linux
  • Firefox An error occurred during a connection to some-ip-or-domain. SSL peer reports incorrect Message Authentication Code. Error code: SSL_ERROR_BAD_MAC_ALERT Solution
  • Proxmox understanding the directory structure and why an NFS datastore appears to be missing files/isos
  • pandoc convert markdown to html
  • Proxmox error uploading an iso solution
  • Cannot install moodle
  • MySQL change for Antelope format to Barracuda error solution
  • vmkping -I vmk1 10.0.2.69 PING 10.0.2.69 (10.0.2.69): 56 data bytes sendto() failed (Host is down)
  • gvfs mount in /run/user cannot be accessed or displayed wrong permissions
  • VMWare vSphere 6.7 Errors Solution 503 Service Unavailable (Failed to connect to endpoint:
  • How To Enable Nested KVM so guests can virtualize with hardware extensions
  • vi error solution E166: Can't open linked file for writing
  • Supermicro IPMI / KVM / BMC Remote Console Screen Resizing Issue - Window Cut Off Solution
  • Linux bash shell doesn't show username, hostname or current path fix solution