I am wondering whether the raid rebuild process will impact the system performance significantly or not. Will the server be able to respond with a reasonable delay during the rebuild process?
Another question came to my mind. Is there any way we can give priority to the disk rebuild process? For example, can we limit the rate at which the data is read/written? Of course, this may be risky because we may have another failure during the rebuild. Let us focus on the performance aspect and ignore this risk!
I am talking about Linux raid mdadm.
In my experience the system stays quite usable during the rebuild. Of course, this depends on your hardware and workload. Is it mostly read or is there usually lots of write activity? On the top of my hat I would say the rebuild slows things down around 20-30 percent.
You can tune the rebuild rate with
dev.raid.speed_limit_{min,max}
sysctl tunables. By default the minimum rebuild rate is 1000 kilobytes per second and the maximum 100 000 kilobytes per second. To tune them, use for examplesysctl -w dev.raid.speed_limit_max=10000
or to make changes permanent, use
echo dev.raid.speed_limit_max=10000 >>/etc/sysctl.conf
and activate the changes withsysctl -p
It can impact it a lot of rebuild priority is high, 'reasonable' is subjective, it'll do best-efforts if set to high whereas if rebuild is set to low then it's the rebuild that gets best-efforts.
As for changing these priorities look at /proc/sys/dev/raid/speed_limit_max & /proc/sys/dev/raid/speed_limit_min.