Just want to share some love about Seagate.
My new DIY NAS is idle most of the time so I want to configure it to be as power efficient as possible.
I spent a couple of evenings trying to make my new WD Red Plus drives go to standby (spindown) after 30 minutes of inactivity, without success. I read about WD not respecting hdparm commands, interpreting them differently and tried all suggestions, again without success. I even read about WD support saying they don’t support Linux. Strange as most of the available consumer NAS systems are based on Linux.
I then decided to try my 2nd choice drives: Seagate Ironwolf. On the first attempt they also didn’t go to standby after configuring with hdparm. Then I found this: Seagate offers an open-source suite of tools named openSeaChest, which lets you configure and test your drives in any possible way including firmware updates and … tada, power settings. After enabling idle_c and standby_z and configuring the timers the drives now do how I configured.
I returned the WD drives. Now Seagate is my top choice for future drive purchases 🧡
WD Red Plus drives go to standby (spindown) after 30 minutes of inactivity, without success. I read about WD not respecting hdparm commands, interpreting them differently and tried all suggestions, again without success. I even read about WD support saying they don’t support Linux.
This may appear to be the case, but it isn’t. I’ve tons of WD RED disks and they’re frankly one the best when it comes to power management. However you must be very carefully with the parameters you’re setting as they tend to require more than just setting the APM value.
Here’s an example from one of my drives from
hdparm.conf
:/dev/disk/by-uuid/xxxxxx { apm = 127 spindown_time = 24 }
Same thing on the CLI:
hdparm -B 127 /dev/disk/by-uuid/xxxxxx hdparm -S 24 /dev/disk/by-uuid/xxxxxx
What one has to be aware to start is that
-B
on the cli equalsapm
on the config file and-S
=spindown_time
.The interface of hdparm varies from the command line to the
hdparm.conf
file in multiple ways. Anyways the Arch Wiki has a table that makes your like easy: https://wiki.archlinux.org/title/hdparm#Power_management_configurationNow the two important bits to be aware with WD:
-B/apm > Values from 1 to 127 permit spin-down, whereas values from 128 to 254 do not. A value of 255 completely disables the feature. -S/spindown_time > The value of 0 disables spindown, the values from 1 to 240 specify multiples of 5 seconds and values from 241 to 251 specify multiples of 30 minutes.
What I’ve noticed by querying the drives is that they usually come with
apm=127
andspindown_time=0
or something like that. It becomes obvious that the drive will never spin-down and people tend to focus only on theapm
value and forget about the other… or vice-versa and ever a drive to spin down.Note: the
apm
(-B
) value can be queried withhdparm -B /dev/disk/by-uuid/xxxx
however the current values ofspindown_time
(-S
) cannot be queried.Tip: to apply changes made to
hdparm.conf
you can runudevadm trigger /dev/disk/by-uuid/xxxxxx
or/usr/lib/pm-utils/power.d/95hdparm-apm resume
.Give a try to my example above (cli) and you’ll see the drive spinning down in a few minutes.
I did quite some research when I worked with the WD Red Plus drives and also tried the
-S
switch, without success.In openSeaChest I just set the number of milliseconds for each power mode and it just works. I’m happy with that.
You’ve to set BOTH things (
-B
and-S
) with reasonable values in order for it to work.
Great share! Thanks.
I returned the WD drives. Now Seagate is my top choice for future drive purchases 🧡
That’s unfortunate, check my other post.
Now what’s even more unfortunate and that I can’t understand is why there seems to be no effort into porting the power management features of openSeaChest into hdparm. I don’t even get why the Seagate open-source team isn’t working in that because they’ve helped that project multiple times and for what’s worth openSeaChest was made available by them as well.