ZFS RAIDZ and atacontrol spindown settings

Mark Stapper stark at mapper.nl
Tue Jul 21 08:53:54 UTC 2009



Ivan Voras wrote:
> 2009/7/21 Mark Stapper <stark at mapper.nl>:
>   
>> Ivan Voras wrote:
>>     
>>> Mark Stapper wrote:
>>>       
>>>> Good day,
>>>>
>>>> I am the proud user of a FreeBSD 7.2 AMD64 system housing, amongst other
>>>> things, a data server.
>>>> My "server"(It's called "Yoshi") runs FreeBSD from a mirrored system
>>>> disc, and has a zfs RAIDZ array with 4 discs for bulky data.
>>>> As it is a home server, and I work during the day, these four discs were
>>>> spinning happily all day long without much use for them doing so.
>>>> To save the world(and money) I issued the command "atacontrol spindown
>>>> 1800" for all the discs in my array spinning them down after thirty
>>>> minutes of idle spinning.
>>>> So far so good, me very happy! However, when I access the array after
>>>> the discs have been spun down, it spins up the discs one after the
>>>> other...
>>>> Mind you one AFTER the other, taking 4*9 seconds to do a "ls" command on
>>>> my music directory.
>>>> Content as I am with the smooth down- and upspinning of the disks, I
>>>> would like it better if the four discs would spin up simultaneously.
>>>> Thus my  question: "Is it possible to \"group\" discs to be spun up
>>>> together, or to issue a custom command upon upspinning of a disc such as
>>>> to spin up other disks?"
>>>>         
>>> Good question but the answer is probably no - it really only depends
>>> on how ZFS accesses the drives; if it accesses them in sequence, you
>>> can't change it.
>>>       
>> I've been looking at writing a shell script which monitors
>> /var/log/messages.
>> something like:
>>
>> If last line in /var/log/messages is like "request while spun down.
>> Starting."
>>    spinup disks
>>
>> couple of problems though, I should probably poll the kernel messages
>> every second or so, but if I only check the last linee, I could miss the
>> spinup message.
>> I could count the number of lines in /var/log/messages and keep count of
>> the number of lines i've seen. Problem with this approach is that it's
>> not very efficient.
>> So I was hoping there is a way to receive this kernel message directly.
>> I am now thinking in the lines of a program which received a signal on
>> new kernel messages available or something similar.
>>
>> Any thoughts?
>>     
>
> You could do what "tail -f" does and simply hook a kqueue to get new
> messages from the /var/log/messages file.
>   
I'll try that! thanks!

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 259 bytes
Desc: OpenPGP digital signature
Url : http://lists.freebsd.org/pipermail/freebsd-stable/attachments/20090721/5679ad08/signature.pgp


More information about the freebsd-stable mailing list