I recently got my webhost (Hetzner) to add a paid of 16TB SATA drives to my webserver. Currently using 2.5TB of them. They're RAID 1 mirrored.
I also have two 4TB nVME drives with 700GB currently on them, also RAID 1 mirrored.
Every week CentOS kicks off a cronjob to run a "check" on both of my md arrays. They happen concurrently, with the nVME one finishing after 5 hours. The SATA one takes a painful 18hours, at 200MB/sec the whole time.
# Run system wide raid-check once a week on Sunday at 1am by default
0 1 * * Sun root /usr/sbin/raid-check
My server is plenty powerful, with a 32core EPYC and 128GB of ram, but I do notice an IO slowdown when this check is running.
is it necessary to run these weekly?
200MB/sec * 18 hours means it's doing the whole 16TB, not just the occupied space. Can this be made smarter/lazier in any way, so it only runs on the occupied space?
could this job be
nice
d or similar? I appreciate it would take longer, but that might be preferable. see edit belowwould scripting pauses into this be a bad idea? So instead of 18 hours in one hit I could do (say) 3 hours per night?
is this a problem everyone suffers, or have I made some poor decisions? Would getting a hardware raid card installed make me much happier, for example?
Edit
I have now discovered /etc/sysconfig/raid-check
and changed NICE=low
to NICE=idle
. I guess I won't know what difference that makes until next week.