Cross platform utilities useful for performing various operations on SATA, SAS, NVMe, and USB storage devices. - Seagate/openSeaChest
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 🧡
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.
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:
-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 and spindown_time=0 or something like that. It becomes obvious that the drive will never spin-down and people tend to focus only on the apm value and forget about the other... or vice-versa and ever a drive to spin down.
Note: the apm (-B) value can be queried with hdparm -B /dev/disk/by-uuid/xxxx however the current values of spindown_time (-S) cannot be queried.
Tip: to apply changes made to hdparm.conf you can run udevadm 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.