8000 Enhancement to power modes of modern HDDs by ThunderEX · Pull Request #263 · smartmontools/smartmontools · GitHub
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

Enhancement to power modes of modern HDDs #263

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 4 commits into
base: master
Choose a base branch
from

Conversation

ThunderEX
Copy link
Contributor
@ThunderEX ThunderEX commented May 23, 2024

This PR include 2x changes:

The 1st change trys to resolve issue in #138 and #141.
One problem with modern HDDs is the more aggressive idle_a timer. Some (Seagate Exos 7E10, X18, X20, etc) may need only 10ms to enter idle_a. In

if (0 <= powermode && powermode < 0xff) {
, if one drive is not active, then smartd will pause 5s and check power mode again. Thus with modern drives, without #141, >= 18x drives will have the smartd exceed systemctl default timeout (90s).
The fix #138 and #141 do not address the issue at its root since it just increase the timeout. What's more, 10-disc HDDs now need 25s to spin up which is longer than we expect in
const char * notify = "EXTEND_TIMEOUT_USEC=20000000"; // typical drive spinup time is 20s tops
. And now 11-disc HDDs are incoming and may have even larger spin up time.
The main purpose of 1st commit is to change condition of re-check power mode from 0 <= powermode (compare against active) to dontcheck == 0 (compare against -n condition). So even if a drive enters idle_a, it won't need re-check power mode and thus save 5s delay.

The minor change in scsiprint.cpp in 1st change include some typo correction and correction for powerlimit. powerlimit for LOW POWER should be changed to lower power mode, because LOW POWER stands for an undivided power mode and lower power mode could avoid unnecessary spin up.

The 2nd change is a rework for #126. Almost all modern HDDs enable idle_a and idle_b. But current -n argument only accept idle or standby. The problem with idle_b is that HDD will unload its head assembly out of disk. So frequent idle_b switch will result in large load - unload count. That's why there are a lot of concerns on smart 193 Load_Cycle_Count parameter. By divide idle or standby into more detailed power modes, we could set -n idle_b to drive to limit increment of smart 193 Load_Cycle_Count.

Relative: WD whitepaper on power modes

@ThunderEX ThunderEX changed the title Epc fix Enhancement to power modes of modern HDDs May 23, 2024
@ThunderEX
Copy link
Contributor Author

I pushed some updates to:

  1. an amend commit to fix previous issue which broke -n never directive,
  2. add -n support for SAS for smartd, which is SATA only before, resolved ticket 1586,
  3. update man pages also accordingly.

I saw many discussion on high head load cycle count on different forums. Typical settings for smartd has setting of 0.5 hour polling cycle, which may lead to 224365*5=87600 head cycle for a 5-yr drive lifecycle. So this PR could be of help for those concerns raised by smartd.
Please let me know anything I can do to get rid of undecided label.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants
0