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.


Tags:

mdadm, md, array, rebuildingthis, doesn, widely, documentation, sudo, echo, sys, sync_action, bash, binary, devices, virtual, proc, mdstat, personalities, linear, multipath, raid, md_d, inactive, sdc, active, sda, uu, min, unused, dmesg, ll, _guaranteed_, kb, disk, maximum, idle, io, bandwidth, corruption, marked, entry, completed, errors, ve, reference, inconsistency, distributions, ubuntu, cronjob,

Latest Articles

  • How high can a Xeon CPU get?
  • bash fix PATH environment variable "command not found" solution
  • Ubuntu Linux Mint Debian Redhat Youtube Cannot Play HD or 4K videos, dropped frames or high CPU usage with Nvidia or AMD Driver
  • hostapd example configuration for high speed AC on 5GHz using WPA2
  • hostapd how to enable and use WPS to connect wireless devices like printers
  • Dell Server Workstation iDRAC Dead after Firmware Update Solution R720, R320, R730
  • Cloned VM/Server/Computer in Linux won't boot and goes to initramfs busybox Solution
  • How To Add Windows 7 8 10 11 to GRUB Boot List Dual Booting
  • How to configure OpenDKIM on Linux with Postfix and setup bind zonefile
  • Debian Ubuntu 10/11/12 Linux how to get tftpd-hpa server setup tutorial
  • efibootmgr: option requires an argument -- 'd' efibootmgr version 15 grub-install.real: error: efibootmgr failed to register the boot entry: Operation not permitted.
  • Apache Error Won't start SSL Cert Issue Solution Unable to configure verify locations for client authentication SSL Library Error: 151441510 error:0906D066:PEM routines:PEM_read_bio:bad end line SSL Library Error: 185090057 error:0B084009:x509 certif
  • Linux Debian Mint Ubuntu Bridge br0 gets random IP
  • redis requirements
  • How to kill a docker swarm
  • docker swarm silly issues
  • isc-dhcp-server dhcpd how to get longer lease
  • nvidia cannot resume from sleep Comm: nvidia-sleep.sh Tainted: Linux Ubuntu Mint Debian
  • zfs and LUKS how to recover in Linux
  • [error] (28)No space left on device: Cannot create SSLMutex Apache Solution Linux CentOS Ubuntu Debian Mint