Is there a way to periodically verify that a linux software raid is valid and has no errors? Like a daemon that would scan all blocks and verify them.
From the the Linux Software Raid How To:
...basic example. Running:
mdadm --monitor --mail=root@localhost --delay=1800 /dev/md2
should release a mdadm daemon to monitor /dev/md2. The delay parameter means that polling will be done in intervals of 1800 seconds. Finally, critical events and fatal errors should be e-mailed to the system manager.
On Debian (and therefore Ubuntu) machines, cron runs:
the first Sunday of the month. This does exactly what you want.
It basically boils down to:
but with a lot of sanity around it. Steal it from your nearest Debian install, or from the mdadm source package.