我如何重新安排 mdadm 重新同步?/etc/cron.d/mdadm 在哪里?

我如何重新安排 mdadm 重新同步?/etc/cron.d/mdadm 在哪里?

我在完全更新的 Ubuntu 20.04 上使用 mdadm 设置了软件 RAID。我每月会经历约 31 小时的阵列重新同步。我怀疑这是由以下原因引起的/etc/default/mdadm,其中包括:

# AUTOCHECK:
#   should mdadm run periodic redundancy checks over your arrays? See
#   /etc/cron.d/mdadm.
AUTOCHECK=true

我想更改这个安排的时间,但似乎没有/etc/cron.d/mdadm

# apt policy mdadm
mdadm:
  Installed: 4.1-5ubuntu1.2
  Candidate: 4.1-5ubuntu1.2
  Version table:
 *** 4.1-5ubuntu1.2 500
        500 http://us.archive.ubuntu.com/ubuntu focal-updates/main amd64 Packages
        100 /var/lib/dpkg/status
     4.1-5ubuntu1 500
        500 http://us.archive.ubuntu.com/ubuntu focal/main amd64 Packages

# find /etc -name '*mdadm*' -or -name '*checkarray*'
/etc/default/mdadm
/etc/monit/conf-available/mdadm
/etc/logcheck/violations.d/mdadm
/etc/logcheck/ignore.d.server/mdadm
/etc/modprobe.d/mdadm.conf
/etc/mdadm
/etc/mdadm/mdadm.conf

# dpkg -S /etc/cron.d/mdadm
dpkg-query: no path found matching pattern /etc/cron.d/mdadm

# grep -REi 'mdadm|raid|/dev/md|autocheck|checkarray' /etc/*cron*

#

所以我猜 Debian/Ubuntu 文档已经过时了,这个检查触发器已经移动了(/usr/share/mdadm/checkarray可能已经移动了,但我仍然不知道是什么触发了它)。第一个对话框指出dpkg-reconfigure mdadm,这个检查在每月第一个星期日的 01:06 触发(见下面的屏幕截图),但我找不到该触发器的来源。

dpkg-reconfigure mdadm 的第一个对话框

我能找到的最好的方法是 checkarray。我的搜索:

# dpkg -L mdadm |xargs -d '\n' grep -Fswn AUTOCHECK
/usr/share/mdadm/checkarray: -c|--cron  honour AUTOCHECK setting in /etc/default/mdadm.
/usr/share/mdadm/checkarray:if [ $cron = 1 ] && ! is_true ${AUTOCHECK:-false}; then

我猜解决方案是设置AUTOCHECK=false,找到checkarray它要运行的命令,然后手动添加我自己的 cron 作业来复制它。为此,我希望确认这是最佳选择,并找到传递它的理想参数。

我还很好奇旧方法发生了什么以及在哪里可以找到更新的文档。

附加问题:由于重新同步需要很长时间,有没有办法将其分解,以便我可以在多个晚上逐步完成?

答案1

它由 systemd 处理。使用的重新同步脚本是/usr/share/mdadm/mdcheck,触发器在/lib/systemd/system/mdcheck_start.timer,操作定义在/lib/systemd/system/mdcheck_start.service(或者可能是/etc/systemd/system/...,如果您需要修改它们,则应将上述内容复制到此处)。

您可以在服务文件中为该过程指定一个时间限制,它应该在下次启动时从上次中断的地方继续运行(计时器文件中指定了超时时间)。或者您可以在需要时中断检查 - 请查看 mdcheck 脚本的末尾。

相关内容