Jump to content

Staggered Spinup of drives at start up


barrygordon

Recommended Posts

I am starting this thread at the suggestion of weebotech regarding a sideline branch to the "Pimping Your Rig" thread.

 

In a large multidrive array (12-20 drives), can the drives have staggered spinup times on power Up? That would tend to solve the power draw issue but may introduce others. Is that a drive function?, an OS function, a MoBo function, an application Function?, a....

 

I thought (and do not know why I do) that modern drives have some configuration setting that says wait n units of time after power on before powering up. If so I guess one has to go to the drive mfg to find out and how to do it.  I will do that fopr the Hitachi 2TB drives I am using and report back.

 

The delays need not be long as the startup inrush current lasts for a relatively short time, although Joe L added that the drives probably draw additional (higher than steady state spin draw) current after the inrush period has passed but they are not yet up to full speed.

Link to comment

In days of yesteryear with highspeed SCSI drives/controllers, there used to be jumpers on the drives or settings in te bios to handle this.

 

I noticed that modern WD drives, have a jumper for this called Power Up In Standby.

I also noticed you can set this in software on some drives with hdparm.

 

While not the beall end all for this, here is a script I use.

 

Note that I use the /dev/disk/by-id so that I am operating on the serial number assignment of the drive rather then the /dev/sd? device node.

 

Also, this can render your drive unable to spin up. Keep this in mind.

the -S244 is my own setting  ${PUIS} is the string to set power up in standby in software on the drive.

 

#!/bin/bash

PUIS="-s1 --yes-i-know-what-i-am-doing"
HDPARM_TEST="-Tt "
UDMA6="-X udma6"

TMPFILE=/tmp/S01-hdparm.$$
trap "rm -f ${TMPFILE}" EXIT HUP INT QUIT TERM

while read DISK PARM
do
    [ -z "${DISK%\#*}" ] && continue
    echo
    ls -l ${DISK} > ${TMPFILE}
    read -a LS    < ${TMPFILE}
    # hddtemp -f /dev/null ${DISK} 2>/dev/null
    hdparm -I ${DISK} | egrep -i 'Number:' | tr -s " " " " | tr -d '\t\n'
    echo " -> ${LS[10]}"
    if [ "${SET:=YES}" = "YES" ]
       then hdparm ${PARM} ${DISK}
    fi
    if [ "${TEST:=NO}" = "YES" ]
       then hdparm ${HDPARM_TEST} ${DISK}
    fi
    # hdparm -I ${DISK} | egrep -i standby
done <<-EOF
# Symlinked devies by serial number
# include list with a similar command like this.
# ls -1 /dev/disk/by-id | grep scsi-SATA* | grep -v part >> S01-hdparm
/dev/disk/by-id/scsi-SATA_ST31000340AS_5QJ0BH1D -S244
# /dev/disk/by-id/scsi-SATA_ST31000340AS_3QJ08RZW -S244
/dev/disk/by-id/scsi-SATA_ST31000340AS_9QJ1Q30B -S244
/dev/disk/by-id/scsi-SATA_ST31500341AS_9VS08VEK -S244
/dev/disk/by-id/scsi-SATA_ST31500341AS_9VS25PKR -S244
/dev/disk/by-id/scsi-SATA_WDC_WD10EACS-00_WD-WCASJ0353226 -S244 ${PUIS}
/dev/disk/by-id/scsi-SATA_WDC_WD10EACS-00_WD-WCASJ0437718 -S244 ${PUIS}
/dev/disk/by-id/scsi-SATA_WDC_WD10EACS-00_WD-WCASJ0808397 -S244 ${PUIS}
/dev/disk/by-id/scsi-SATA_WDC_WD10EACS-00_WD-WCASJ1352706 -S244 ${PUIS}
/dev/disk/by-id/scsi-SATA_WDC_WD10EACS-00_WD-WCASJ1353170 -S244 ${PUIS}
/dev/disk/by-id/scsi-SATA_WDC_WD10EACS-32_WD-WCASJ0126857 -S244 ${PUIS}
#
# Hard coded devices
# /dev/sda -S242 -s1 --yes-i-know-what-i-am-doing
# /dev/sdb -S242 -s1 --yes-i-know-what-i-am-doing
# /dev/sdd -S242 -s1 --yes-i-know-what-i-am-doing
# /dev/sdc -S242 -s1 --yes-i-know-what-i-am-doing
# /dev/sde -S242 -s1 --yes-i-know-what-i-am-doing
# /dev/sdf -S242 -s1 --yes-i-know-what-i-am-doing
# /dev/sdg -S242 -s1 --yes-i-know-what-i-am-doing
EOF

 

This was how I noticed it.

 

root@Atlas /boot/custom/etc/rc.d #hdparm -I /dev/disk/by-id/scsi-SATA_WDC_WD10EACS-00_WD-WCASJ1352706 | egrep -i stand

powers-up in standby; SET FEATURES subcmd spins-up.

 

Now this only solves a part of the problem.

 

Although it works for the initial power button. If all drives are spun down and you press SPIN UP. they will all spin up at the same time. There is no delay. I think this is a bad feature, but what can you do.

 

It is also a good way to test power supply surge.

Frankly, I would love some sort of "configurable" spin up delay in the front end control code.

It may go a way towards reducing the need for huge amperage for the starting current.

 

Link to comment

 

Frankly, I would love some sort of "configurable" spin up delay in the front end control code.

It may go a way towards reducing the need for huge amperage for the starting current.

 

 

 

Excellent idea.  I'm not sure my home can handle 20 drives and my son's laser printer simultaneously.    :D

Link to comment

 

Frankly, I would love some sort of "configurable" spin up delay in the front end control code.

It may go a way towards reducing the need for huge amperage for the starting current.

 

 

 

Excellent idea.  I'm not sure my home can handle 20 drives and my son's laser printer simultaneously.     :D

 

This is where a UPS helps. If there is a brown out, the UPS will compensate.

I used to blow the circuit breaker all the time, ever since I put the computer on a powerful UPS I stopped blowing the circuit breaker. (Even when lights blow out).

 

Note, only put the computer parts on the UPS, Not the laser printer (I'm not sure why, but I've read warnings not do hook them up that way).

Link to comment

stagger isng going to help, unraid spins all disks back up at once to power down.

 

nowdays this is set by disk controller mainly. setting by hdd jumper or firmware doesnt work as most controller onboard, cheap expansion card do not send the command to spin dsisk up so they wont detect at startup.

Link to comment

stagger isng going to help, unraid spins all disks back up at once to power down.

 

nowdays this is set by disk controller mainly. setting by hdd jumper or firmware doesnt work as most controller onboard, cheap expansion card do not send the command to spin dsisk up so they wont detect at startup.

 

Linux sends the command to spin up the disks and they are detected.

 

I've tested this with ICH, JMB 363, Silicon Image, Intel ESB. Marvell MV8's.

 

 

The issue is unRAID does not respect staggered spin up when pressing spin up or when initiating a power off.

Link to comment
Note, only put the computer parts on the UPS, Not the laser printer (I'm not sure why, but I've read warnings not do hook them up that way).

 

A laser printer draws large power surges for the fuser (the heater which melts the toner). Also, a cheap UPS does not output a sinewave like the normal power is and the laser printer doesn't take kindly to the poor power a cheap UPS supplies. You could use a UPS but it would have to be very over sized and a sinewave output model.

 

Peter

 

Link to comment

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...