Hi Nathan,
This is something that indeed is done by mdadm configuration. You need to check /etc/cron.d/mdadm:
#
# cron.d/mdadm -- schedules periodic redundancy checks of MD devices
#
# Copyright © martin f. krafft <madduck@madduck.net>
# distributed under the terms of the Artistic Licence 2.0
#
# By default, run at 00:57 on every Sunday, but do nothing unless the day of
# the month is less than or equal to 7. Thus, only run on the first Sunday of
# each month. crontab(5) sucks, unfortunately, in this regard; therefore this
# hack (see #380425).
57 0 * * 0 root if [ -x /usr/share/mdadm/checkarray ] && [ $(date +\%d) -le 7 ]; then /usr/share/mdadm/checkarray --cron --all --idle --quiet; fi
You can either disable this cronjob by commenting out the actual cron entry, or by moving the file 'mdadm' out of the '/etc/cron.d' folder.
Easiest would be to write a script that will iterare all mdadm devices, start the redundancy check, wait for the check to complete. then move to the next mdadm device.
Something like:
#!/bin/bash
case "$( /usr/bin/id -u )" in
'0')
;;
*)
echo "Please run as root user."
exit 1
;;
esac
for MD in /dev/md[0-9]*
do
SYNC_ACTION="/sys/block/${MD:?}/md/sync_action"
( echo 'check' > "${SYNC_ACTION:?}" ) || exit 1
while true
do
case "$( /usr/bin/cat "${SYNC_ACTION:?}" )" in
'')
exit
;;
'idle')
break
;;
esac
sleep 10
done
done
# EOF
Note that that code snippet was not tested, but should give you direction to your solution.
Hope that helps,
Groetjes,