Aug 12,
2017

Bad defaults

In my opinion, with good defaults options aren't needed. Options in software creates complexity, as all the code paths should be equally tested.

One always hope to encounter, if not good, at least reasonable defaults, especially in consumer hardware.

This post is about bad defaults.

Seagate has decided that their line of NAS hard disks1 needs to have a power saving feature, with two profiles enabled on the firmware as default. The first one has a default timeout of 10 seconds and a null impact on the mechanical hardware itself, as it only stops the current feeding the disc's heads. The conscious reader would have guessed that it also has negligible effects on power savings2.

The second enabled profile has a timeout of 240 seconds and it's more substantial than the first one as it parks the disc's heads on the drive ramp. For the reader unfamiliar with a drive internals, it's the heads' rest location, outside the disc platters.

So if the drive is idle for more than 4 minutes, the firmware unload the heads to the drive ramp. The number of times this operation is executed is recorded under the field labeled "load/unload cycle" in the disc's SMART data tally. Usually the discs mechanics are guaranteed for half a million load/unload cycles, after few months my disk reported nearly 40000 load/unload cycles.

Not good.

It has happened before, with other manufacturers it was even worst. If I recall correctly "Western Digital" had produced in the past disks with a similar behavior and didn't provided a modified firmware but instead they offered a DOS utility that periodically wrote a sector to avoid the disc to enter idle mode. If I'm not wrong, in that specific case the disc completely spin down: maximum power savings!

Fortunately Seagate offers an utility to modify the power saving's settings, it's a command line tool called sc-powerchoice or SeaChest_PowerChoice, available only as an IA32/AMD64 executable (no sources) inside a live Linux distribution that should be flashed on a USB memory stick. Unfortunately, again, it was only distributed as a Windows executable instead of a normal disk image3.

щ(゚д゚щ)

Groan.

Anyway, after extracting and locally mounting the disc image I was able to copy the "64-bit" version of the utility on my NAS and finally I was allowed to disable the second profile with:

$ sudo sc-powerchoice -d /dev/sg1 --changePower --powerMode idle_b --disableMode

where the drive path is found using the --scan option and the command to show the current configuration is:

$ sudo sc-powerchoice -d /dev/sg1 -i --showEPCSettings

End of the rant.


  1. in this case the model was a Seagate ST6000VN0021 ↩︎

  2. according to Seagate data sheets ↩︎

  3. I wasn't able to find a single place where to download the 500 KB utility, let alone finding the sources ↩︎