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:

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 Ihave 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

  • ImageMagick Convert PDF Not Authorized
  • ImageMagick Converted PDF to JPEG some files have a black background solution
  • Linux Mint Mate Customize the Lock screen messages and hide username and real name
  • Ubuntu/Gnome/Mint/Centos How To Take a partial screenshot
  • ssh how to verify your host key / avoid MIM attacks
  • Cisco IP Phone CP-8845 8800/8900 Series How To Reset To Factory Settings Instructions
  • ls how to list ONLY directories
  • How to encrypt your SSH private key file id_rsa
  • Linux Mint 18 Disable User Name List from showing on Login Screen
  • Firefox Cannot Hit Enter Key In Address Bar and Location History Not Working
  • Cisco Unified Communications Manager / CUCM IP 8.6,10,12 Install Error Solution
  • Ubuntu Debian Mint Linux SSHD OpenSSH Server Not Starting After Reboot Solution
  • nmap how to scan for all ports and not just the 1000 most common ports
  • Windows 7,8,10 and Server 2008, 2012, 2016, 2019 Read Only Attribute Won't Go Away
  • bind / named how to make a wildcard record and retain defined A records
  • Cisco Unified Communications Manager 12 Install Errors on Proxmox/KVM
  • Local Vs Universally Administered MAC Address NIC Refuses to come up
  • Cisco Unified Communications Manager 12 CUCM 12 - How To Enable Video Calling
  • Windows 7, 8, 10, Windows Server 2008, 2012, 2016, 2019 How To AC97 Audio Drivers and Other Unsigned Drivers
  • Cisco Unified Communications Manager / CUCM IP Telephony Definitions