ZFS RAIDZ and atacontrol spindown settings

Mark Stapper stark at mapper.nl
Wed Jul 22 07:01:36 UTC 2009


Arnaud Houdelette wrote:
> Mark Stapper a écrit :
>> 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!
>>
>>   
> As I get quite the same issue with a 4 disk raidz pool, could you
> please tell me the result of your tries ? which command do you use to
> force the disks to spin up ?
>
> Thanks
I have been using a shell script containing:
#!/bin.sh
dd if=/dev/ad4 of=/dev/null count=1&
dd if=/dev/ad6 of=/dev/null count=1&
dd if=/dev/ad8 of=/dev/null count=1&
dd if=/dev/ad10 of=/dev/null count=1&


-------------- 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/20090722/4896626a/signature.pgp


More information about the freebsd-stable mailing list