Hello Neil, I want to propose some functionality for linux raid subsystem that I think will be very practical for many users, automatic waking of drives. I am using my own user land script written years ago to do that and I dont know if there is some standard solution now. If there is some, please point me to it. I am using couple of big RAID5 arrays in servers working like NASes in small office and home, which are in use only small part of the day. I am using low power server and aggressive power saving settings on HDDs to make power consumption substantially lower, for example drives are going to sleep after 15 min of inactivity. Normally problem with such settings is extremely long waking time when array is accessed. Software accessing data often first requests only chunk of data on first drive in array and waiting cca 20-30 sec for them, after processing them accessing data on another drive and waiting another 20-30 sec and so on. I solved it with my own script in PHP, which monitors drives' status periodically. When it detects that drive from RAID array woke up, it immediately wakes other drives. So total waking time is equal to waking of one drive plus couple of seconds. It works perfectly and smoothly for years for me. I attached the script from one of my servers, it is little cruel and using hwparm and smartctl to monitor and manipulating drives. It is little customized and specific for its server, for example one drive detected by model is not used to wake up other drives and two drives are also putting one another into sleep, because I found out the standby timeout setting was not working reliable on one drive. But you will get the idea. I think it could be useful for some users if there is possibility to use such feature. Do you think it would be useful? Do you think there is some place in linux raid infrastructure where it can be somehow implemented? (Possibly as some user land tool using some kernel APIs, I dont know.) Best regards, Patrik Horník
Attachment:
monitor_drives.php
Description: application/httpd-php