How do I check and monitor RAID scrubbing process on my QNAP NAS?
Applicable Products
- All NAS models running QTS or QuTS hero
Scenario
- You start a RAID scrubbing (data consistency check) task from the NAS GUI.
- In an SSH session, running
ps -efdoes not show any obvious process namedscrubor similar. - You want to detect via script whether RAID scrubbing is currently running, but cannot identify a dedicated user-space process.
Procedure
Step 1: Enable SSH
- Log in to QTS or QuTS hero with an administrator account.
- Go to Control Panel > Network & File Services > Telnet / SSH.
- Select Allow SSH connection.
- Set the port number (default: 22).
- Click Apply.
Step 2: Connect to the NAS using SSH
Use PuTTY (Windows) or Terminal (macOS/Linux) to connect to the NAS:
ssh admin@<NAS_IP>Step 3: Check and monitor the RAID scrubbing process
QTS (md-RAID)
On QTS systems that use Linux software RAID (md-RAID), you can check the RAID scrubbing status by reading /proc/mdstat.
Run the following command:
cat /proc/mdstatIf RAID scrubbing is in progress, you will see a line similar to the following for the affected RAID group:
md1 : active raid5 sda3[0] sdb3[1] sdc3[2]
[==>........] check = 15.3% (12345678/98765432) finish=120.0min speed=123456K/secYou can also check and monitor the scrubbing process using the following command:
ps -ef | grep resync | grep -v grepIf RAID scrubbing is in progress, you will see a process line similar to this:
21984 admin DWN [md1_resync]Key points:
- The percentage and estimated time in
/proc/mdstatshow the current progress. - The
md1_resynckernel thread indicates that a RAID resync or scrubbing process is in progress. - If no such operation is listed, RAID scrubbing is not currently running.
QuTS hero (ZFS)
On QuTS hero systems that use ZFS, you can check the scrub status of a storage pool using zpool status.
Run the following command:
zpool status <pool_name>If a scrub is in progress, you will see output similar to:
pool: pool1
state: ONLINE
scan: scrub in progress since Mon Feb 12 10:00:00 2026
15.3% done, 1h20m to go
config:
NAME STATE READ WRITE CKSUM
pool1 ONLINE 0 0 0
...If no scrub is running, the output will show the time of the last completed scrub or a message such as:
scan: scrub repaired 0B in 01:23:45 with 0 errors on Mon Feb 12 09:00:00 2026You can use this information in scripts to detect whether a scrub is currently running and to monitor its progress.