I have a server that peforms a resync for its software raid in undefined intervals. This results in massive load and I am forced to stop all services until the resync is complete (20+ hours). What could be the reason for an automatic resync?
In some cases, cron. On RedHat-derived boxes, check for the existence of a file like
/etc/cron.weekly/99-raid-check; on other distros, it can be a file in the
Edit following your question: a check is not the same as a resync. A check compares the two halves of a RAID-1 array and updates
/sys/block/mdX/md/mismatch_cnt with the current count of differences between the two halves. But it requires reading every single bit of both halves of the mirror, and is thus hugely IO-intensive (well, input-intensive).
If you find the mismatch count is non-zero, you can then choose to force a resync. Your system's script may do that for you as part of the service, I can't comment, but there is a difference between a check and a resync. Both are hugely IO-intensive, though, and result in the sort of performance issues you describe.