Seagate disks woes
I recently bought SAS disks for my homelab and I discovered that they are not supported by smartmontools. While I am not concerned too much with their remaining life I would like to spin them down when not used because they can be noisy. I would have used normal tools such as hd-idle, hdparm but they also do not work with these disks.
The solution is to use the vendor’s tools which you can find at openSeaChest.
The disks are also exposed by the kernel twice; first as storage using the /dev/sd?
prefix and
once more as /dev/sg?
. The vendor tools take the second device name. You can list the available
devices using the Basics
tool.
PowerControl
You can configure the disks’ power control values using the openSeaChest_PowerControl
binary.
Let’s see what the Extended Power Control makes available.
EPC is a proprietary implemantation of the TP10 Approved Standard and is described in this white paper from Seagate.
EPC describes more power states available to the disk and allow us to change the power level interactively and automatically. The power states described are for my Exos 7E8 are the following (ordered from more power to less power).
Idle A
This is the first power level after active, no RPM reduction means it’s useless for my use case.
Idle B
This is the second power level after active, no RPM reduction means it’s useless for my use case.
Idle C (AKA Standby Y)
This is the third power level after active. The drive speed is reduced to a lower RPM which is exactly my use case.
Standby Z
This it the fourth power level after active. The drive motor is spun down.
Power transition
The immediate solution is to use the PowerControl
tool to transition the disks to the idle_c
power mode.
After issuing the command to all disks the noise is reduced to a minimum and the disks are still available in a reasonable time.
Timers
Eventually the long term solution is to setup the disks to transition to the idle_c state using a timer. This will make sure that if they are not used the transition will happen automatically.
You can also set a timer value by specifying it in place of enable
The timer unit is 100 milliseconds so the value 12000 means 20 minutes. Unfortunately for me the disk comes with default values from the factory which are also the minimum values. If we take a look at the table describing the disks Extended Power Control we can see that these minimum value for the idle_c transition is 6000 which means 10 minutes.
Name Current Timer Default Timer Saved Timer Recovery Time C S
Idle A *1 *1 *1 70 Y N
Idle B *1200 *1200 *1200 310 Y N
Idle C 6000 6000 6000 7000 Y N
Standby Y 6000 6000 6000 7000 N N
Standby Z 9000 9000 9000 15000 N N
As we cannot reduce this timer value then the last thing left to do is enabling it.
The table report enabled timers with a *
in front of their value so next time we show
the table there will be a *
in front of our Current Timer and Saved Timer columns’ value.
The last two columns in the table describe which timer values can be changed and saved. On my drives I can only change the timer values for the transitions to idle_a, idle_b and idle_c.
Energy saving
If you have taken a peek at the Seagate white paper I linked you may have noticed the title: “Reducing Storage Energy Consumption by up to 75%”. The EPC feature will also save you money if enabled correctly! While the white paper describes the idea behind the technology there are no hard numbers there.
For those you have to look into your product manual. For my disks it’s on page 26 under the PowerChoice power management section.
state | Watts |
---|---|
Idle A | 6.52 |
Idle B | 5.96 |
Idle C | 4.23 |
Standby Z | 1.64 |