How is the RAID1 “check” (scrub) being scheduled on Rocky Linux 10 when mdcheck_start.timer is disabled?

Hello everyone,

I have a RAID1 setup on Rocky Linux 10 using mdadm. I noticed in my logs that the RAID arrays perform a “check” (sprawdzanie / consistency check) periodically, for example md124: check done, md125: check done, etc. However, some details of my setup are confusing:

  • mdcheck_start.timer is present on the system, but is disabled / inactive (systemctl status mdcheck_start.timer shows disabled, inactive (dead)).

  • In systemctl list-timers --all I only see mdadm-last-resort@md124.timer (which appears to be something else / for last-resort handling), and no active timer for scrubbing or checking under names like mdcheck_*.

I’d like to understand:

  1. How can I find out when the “check” process was first launched, especially for a given RAID device (e.g. /dev/md126)?

    • Any specific journalctl command or syslog entry I should look for?
  2. What mechanism is triggering these RAID checks automatically, given that mdcheck_start.timer is disabled?

    • Is there a cron job, or another timer unit, or some mdadm configuration file (like /etc/cron.d/mdadm or similar) that might be handling this?

    • Any documentation or examples specific to Rocky Linux 10 for this behavior?

  3. How to safely change or schedule RAID checks on Rocky Linux 10 — either to enable a timer with a specific schedule (nightly / monthly), or to view when the next check is supposed to occur.

    mdadm --detail /dev/md126
    /dev/md126:
    Version : 1.2
    Creation Time : Sun Aug 24 20:53:27 2025
    Raid Level : raid1
    Array Size : 7465646080 (6.95 TiB 7.64 TB)
    Used Dev Size : 7465646080 (6.95 TiB 7.64 TB)
    Raid Devices : 2
    Total Devices : 2
    Persistence : Superblock is persistent

     Intent Bitmap : Internal
    
       Update Time : Sun Sep 21 09:26:31 2025
             State : clean, checking
    Active Devices : 2
    

    Working Devices : 2
    Failed Devices : 0
    Spare Devices : 0

    Consistency Policy : bitmap

      Check Status : 80% complete
    
              Name : s19.jchost19.pl:root
              UUID : 04b96138:ba886b48:f5b8f2f0:de068bd2
            Events : 35977
    
    Number   Major   Minor   RaidDevice State
       0     259        9        0      active sync   /dev/nvme0n1p4
       1     259        5        1      active sync   /dev/nvme1n1p4
    

journalctl -k | grep md.*check
Sep 10 20:18:00 s19 systemd[1]: memstrack.service - Memstrack Anylazing Service was skipped because no trigger condition checks were met.
Sep 10 20:18:00 s19 systemd[1]: dracut-cmdline-ask.service - dracut ask for additional cmdline parameters was skipped because no trigger condition checks were met.
Sep 10 20:18:05 s19 systemd[1]: systemd-pcrextend.socket - TPM PCR Measurements was skipped because of an unmet condition check (ConditionSecurity=measured-uki).
Sep 10 20:18:05 s19 systemd[1]: systemd-pcrlock.socket - Make TPM PCR Policy was skipped because of an unmet condition check (ConditionSecurity=measured-uki).
Sep 10 20:18:05 s19 systemd[1]: fips-crypto-policy-overlay.service - Bind-mount FIPS crypto-policy in FIPS mode was skipped because of an unmet condition check (ConditionKernelCommandLine=fips=1).
Sep 10 20:18:05 s19 systemd[1]: systemd-hibernate-clear.service - Clear Stale Hibernate Storage Info was skipped because of an unmet condition check (ConditionPathExists=/sys/firmware/efi/efivars/HibernateLocation-8cf2644b-4b0b-428f-9387-6d876050dc67).
Sep 10 20:18:05 s19 systemd[1]: systemd-pcrmachine.service - TPM PCR Machine ID Measurement was skipped because of an unmet condition check (ConditionSecurity=measured-uki).
Sep 10 20:18:05 s19 systemd[1]: systemd-tpm2-setup-early.service - Early TPM SRK Setup was skipped because of an unmet condition check (ConditionSecurity=measured-uki).
Sep 14 01:00:04 s19 kernel: md: check of RAID array md124
Sep 14 01:00:09 s19 kernel: md: md124: check done.
Sep 14 01:01:04 s19 kernel: md: check of RAID array md125
Sep 14 01:01:09 s19 kernel: md: md125: check done.
Sep 14 01:02:04 s19 kernel: md: check of RAID array md126
Sep 14 01:02:10 s19 kernel: md: delaying check of md127 until md126 has finished (they share one or more physical units)
Sep 14 11:28:33 s19 kernel: md: md126: check done.
Sep 14 11:28:33 s19 kernel: md: check of RAID array md127
Sep 14 11:31:21 s19 kernel: md: md127: check done.
Sep 21 01:00:04 s19 kernel: md: check of RAID array md124
Sep 21 01:00:09 s19 kernel: md: md124: check done.
Sep 21 01:01:04 s19 kernel: md: check of RAID array md125
Sep 21 01:01:09 s19 kernel: md: md125: check done.
Sep 21 01:02:04 s19 kernel: md: check of RAID array md126
Sep 21 01:02:10 s19 kernel: md: delaying check of md127 until md126 has finished (they share one or more physical units)

journalctl -k | grep -Ei ‘md[0-9]+.*(check|data-check|resync|recovery|repair)’
Sep 14 01:00:09 s19 kernel: md: md124: check done.
Sep 14 01:01:09 s19 kernel: md: md125: check done.
Sep 14 11:28:33 s19 kernel: md: md126: check done.
Sep 14 11:31:21 s19 kernel: md: md127: check done.
Sep 21 01:00:09 s19 kernel: md: md124: check done.
Sep 21 01:01:09 s19 kernel: md: md125: check done.

This topic was automatically closed 60 days after the last reply. New replies are no longer allowed.