I have a three disk RAID 5 array for a home Raspberry PI 5 based NAS. The drives are loud when the NAS is idle. I would like to minimize noise by putting the drives into standby after a few minutes of inactivity using hdparm.
The problem is that mdadm wakes up the first sda drive by reading 4096B every 60s. I can put sdb and sdc drives to standby via hdparm, but I can’t figure out what exactly wakes up sda drive.
I would like to increase this 60s polling interval and understand what is causing this read.
This is for sure not caused by a user process.
I also tried to stop mdadm related backgound monitors, but it did not help.
systemctl stop mdcheck_continue.timer
systemctl stop mdcheck_start.timer
systemctl stop mdmonitor
$ dstat -d -D total,sda,sdb,sdc
-dsk/sda-----dsk/sdb-----dsk/sdc----dsk/total-
read writ: read writ: read writ: read writ
0 0 : 0 0 : 0 0 : 0 0
0 0 : 0 0 : 0 0 : 0 0
4096B 0 : 0 0 : 0 0 :4096B 12k # Read happens here
0 0 : 0 0 : 0 0 : 0 24k
$ sudo blktrace -d /dev/sda -o - | sudo blkparse -i - | tee /tmp/sda.trace
8,0 3 1 0.000000000 245073 Q RS 8 + 8 [mdadm]
8,0 3 2 0.000005871 245073 G RS 8 + 8 [mdadm]
8,0 3 3 0.000007223 245073 P N [mdadm]
8,0 3 4 0.000008686 245073 U N [mdadm] 1
8,0 3 5 0.000010297 245073 I RS 8 + 8 [mdadm]
8,0 3 6 0.000018204 245073 D RS 8 + 8 [mdadm]
8,0 3 7 0.000209594 0 C RS 8 + 8 [0]