System hanging when trying to spin-up from HD idle

cmrho

New Member
Nov 4, 2024
22
5
3
I've searched an found that sometimes LSI's SAS controllers will hang up when HDs are woken up from an idle state (idled using hd-idle). I'm experiencing this with my pve system. I've even swapped out controller cards using a different LSI controller and the problem persists.

At this point, I believe it might be an issue with pve. Has anyone else experienced this and found a resolution? TIA!
 
At this point, I believe it might be an issue with pve.
No and also no problem of LSI controller. Btw. is it flashed to IT-Mode? I don't know IR-Mode much, maybe there is also an overlapping idle-trigger.

Disks have different states of being "idle", if you choose APM level too deep, this results in problems you have. Overlapping "auto"stuff of disks itself with additionally APM gives also unwanted results.
Some HGST-SAS need special setting.
 
  • Like
Reactions: cmrho
No and also no problem of LSI controller. Btw. is it flashed to IT-Mode? I don't know IR-Mode much, maybe there is also an overlapping idle-trigger.

Disks have different states of being "idle", if you choose APM level too deep, this results in problems you have. Overlapping "auto"stuff of disks itself with additionally APM gives also unwanted results.
Some HGST-SAS need special setting.
Apparently I need to familiarize myself with the controller more. Thanks for your help.
 
If what mr44er posted should not apply (I would check that first), then have a look at the power supply.
Keep in mind, that every disk is drawing short-circuit current the moment the motor needs to start turning, after having fully stopped. This can create considerable peaks in current consumption.
If I remember correctly, then most LSI controllers do their disk spinup on boot as so called "staggered spin-up". Which means, that one after the other disks get spun up, in order to avoid huge current peaks (especially so on big disk arrays). However, I am not sure what happens in the case of a runtime spin-up.
 
  • Like
Reactions: cmrho
I successfully flashed this card to IT mode (9311 P16 version). But now it's doing something strange:

If I try to create a RAIDZ pool in proxmox using 4 disks, it fails.
But if I pass those HDs to a TrueNAS VM, I can create a RAIDZ pool without errors inside the VM.

This doesn't seem right? Is there a driver that TN uses that works?

BTW, the drives idle with no issues at all using HD-IDLE. They just don't want to wakeup correctly.
 
Last edited:
Try again without hdidle, I guess starting TN woke them up just in time. If they're idle and you want to create a pool at the same moment, it doesn't work.

Pls post output of smartctl -x /dev/sdX and sdparm -a /dev/sdX

You read this? https://www.seagate.com/files/docs/pdf/whitepaper/tp608-powerchoice-tech-provides-us.pdf

Can you rule out that you have PWDIS, PUIS problems?
Thanks for the help! Here's the output of the smartctl command on sda device (sdparm at the bottom). hd-idle was disabled when these outputs were collected:

Code:
=== START OF INFORMATION SECTION ===
Vendor:               SEAGATE
Product:              ST8000NM014A
Revision:             CSL9
Compliance:           SPC-5
User Capacity:        8,001,563,222,016 bytes [8.00 TB]
Logical block size:   512 bytes
Physical block size:  4096 bytes
Formatted with type 2 protection
8 bytes of protection information per logical block
LU is fully provisioned
Rotation Rate:        7200 rpm
Form Factor:          3.5 inches
Logical Unit id:      0x5000c500d821a67b
Serial number:        WSD4QXED
Device type:          disk
Transport protocol:   SAS (SPL-4)
Local Time is:        Thu Feb 13 22:19:43 2025 CST
SMART support is:     Available - device has SMART capability.
SMART support is:     Enabled
Temperature Warning:  Disabled or Not Supported
Read Cache is:        Enabled
Writeback Cache is:   Enabled

=== START OF READ SMART DATA SECTION ===
SMART Health Status: OK

Grown defects during certification <not available>
Total blocks reassigned during format <not available>
Total new blocks reassigned <not available>
Power on minutes since format <not available>
Current Drive Temperature:     19 C
Drive Trip Temperature:        60 C

Manufactured in week 40 of year 2021
Specified cycle count over device lifetime:  50000
Accumulated start-stop cycles:  65
Specified load-unload count over device lifetime:  600000
Accumulated load-unload cycles:  651
Elements in grown defect list: 0

Vendor (Seagate Cache) information
  Blocks sent to initiator = 367795352
  Blocks received from initiator = 3084798200
  Blocks read from cache and sent to initiator = 2527247088
  Number of read and write commands whose size <= segment size = 81884851
  Number of read and write commands whose size > segment size = 1142993

Vendor (Seagate/Hitachi) factory information
  number of hours powered up = 14111.10
  number of minutes until next internal SMART test = 16

Error counter log:
           Errors Corrected by           Total   Correction     Gigabytes    Total
               ECC          rereads/    errors   algorithm      processed    uncorrected
           fast | delayed   rewrites  corrected  invocations   [10^9 bytes]  errors
read:          0        1         0         1          1      35301.292           0
write:         0        0         1         1          1      37417.234           0
verify:        0        0         0         0          0     690739.435           0

Non-medium error count:        0

SMART Self-test log
Num  Test              Status                 segment  LifeTime  LBA_first_err [SK ASC ASQ]
     Description                              number   (hours)
# 1  Background short  Completed                   -    9055                 - [-   -    -]

Long (extended) Self-test duration: 45480 seconds [12.6 hours]

Background scan results log
  Status: waiting until BMS interval timer expires
    Accumulated power on time, hours:minutes 14111:06 [846666 minutes]
    Number of background scans performed: 104,  scan progress: 0.00%
    Number of background medium scans performed: 104


Protocol Specific port log page for SAS SSP
relative target port id = 1
  generation code = 0
  number of phys = 1
  phy identifier = 0
    attached device type: SAS or SATA device
    attached reason: power on
    reason: power on
    negotiated logical link rate: phy enabled; 12 Gbps
    attached initiator port: ssp=1 stp=1 smp=1
    attached target port: ssp=0 stp=0 smp=0
    SAS address = 0x5000c500d821a679
    attached SAS address = 0x500605b00cf38360
    attached phy identifier = 4
    Invalid DWORD count = 0
    Running disparity error count = 0
    Loss of DWORD synchronization count = 0
    Phy reset problem count = 0
relative target port id = 2
  generation code = 0
  number of phys = 1
  phy identifier = 1
    attached device type: no device attached
    attached reason: unknown
    reason: unknown
    negotiated logical link rate: phy enabled; unknown
    attached initiator port: ssp=0 stp=0 smp=0
    attached target port: ssp=0 stp=0 smp=0
    SAS address = 0x5000c500d821a67a
    attached SAS address = 0x0
    attached phy identifier = 0
    Invalid DWORD count = 0
    Running disparity error count = 0
    Loss of DWORD synchronization count = 0
    Phy reset problem count = 0

sdparm output
Code:
    /dev/sda: SEAGATE   ST8000NM014A      CSL9
Read write error recovery mode page:
  AWRE          1  [cha: y, def:  1, sav:  1]
  ARRE          1  [cha: y, def:  1, sav:  1]
  TB            0  [cha: y, def:  0, sav:  0]
  RC            0  [cha: n, def:  0, sav:  0]
  EER           0  [cha: y, def:  0, sav:  0]
  PER           0  [cha: y, def:  0, sav:  0]
  DTE           0  [cha: y, def:  0, sav:  0]
  DCR           0  [cha: y, def:  0, sav:  0]
  RRC           20  [cha: y, def: 20, sav: 20]
  COR_S         -1  [cha: n, def: -1, sav: -1]
  HOC           0  [cha: n, def:  0, sav:  0]
  DSOC          0  [cha: n, def:  0, sav:  0]
  LBPERE        0  [cha: n, def:  0, sav:  0]
  MWR           0  [cha: n, def:  0, sav:  0]
  WRC           5  [cha: y, def:  5, sav:  5]
  RTL           8000  [cha: y, def:8000, sav:8000]
Disconnect-reconnect (SPC + transports) mode page:
  BFR           0  [cha: n, def:  0, sav:  0]
  BER           0  [cha: n, def:  0, sav:  0]
  BIL           0  [cha: y, def:  0, sav:  0]
  DTL           0  [cha: n, def:  0, sav:  0]
  CTL           0  [cha: y, def:  0, sav:  0]
  MBS           160  [cha: y, def:160, sav:160]
  EMDP          0  [cha: n, def:  0, sav:  0]
  FA            0  [cha: n, def:  0, sav:  0]
  DIMM          0  [cha: n, def:  0, sav:  0]
  DTDC          0  [cha: n, def:  0, sav:  0]
  FBS           0  [cha: n, def:  0, sav:  0]
Format (SBC) mode page:
  TPZ           1  [cha: n, def:  1, sav:  1]
  ASPZ          0  [cha: n, def:  0, sav:  0]
  ATPZ          0  [cha: n, def:  0, sav:  0]
  ATPLU         2  [cha: n, def:  2, sav:  2]
  SPT           3  [cha: n, def:  3, sav:  3]
  DBPPS         4160  [cha: n, def:4096, sav:4160]
  INTLV         1  [cha: n, def:  1, sav:  1]
  TSF           0  [cha: n, def:  0, sav:  0]
  CSF           0  [cha: n, def:  0, sav:  0]
  SSEC          0  [cha: n, def:  0, sav:  0]
  HSEC          1  [cha: n, def:  1, sav:  1]
  RMB           0  [cha: n, def:  0, sav:  0]
  SURF          0  [cha: n, def:  0, sav:  0]
Rigid disk (SBC) mode page:
  NOC           456616  [cha: n, def:456616, sav:456616]
  NOH           10  [cha: n, def: 10, sav: 10]
  SCWP          0  [cha: n, def:  0, sav:  0]
  SCRWC         0  [cha: n, def:  0, sav:  0]
  DSR           0  [cha: n, def:  0, sav:  0]
  LZC           0  [cha: n, def:  0, sav:  0]
  RPL           0  [cha: n, def:  0, sav:  0]
  ROTO          0  [cha: n, def:  0, sav:  0]
  MRR           7200  [cha: n, def:7200, sav:7200]
Verify error recovery (SBC) mode page:
  V_EER         0  [cha: y, def:  0, sav:  0]
  V_PER         0  [cha: y, def:  0, sav:  0]
  V_DTE         0  [cha: y, def:  0, sav:  0]
  V_DCR         0  [cha: y, def:  0, sav:  0]
  V_RC          20  [cha: y, def: 20, sav: 20]
  V_COR_S       -1  [cha: n, def: -1, sav: -1]
  V_RTL         8000  [cha: y, def:8000, sav:8000]
Caching (SBC) mode page:
  IC            0  [cha: y, def:  0, sav:  0]
  ABPF          0  [cha: n, def:  0, sav:  0]
  CAP           0  [cha: y, def:  0, sav:  0]
  DISC          1  [cha: n, def:  1, sav:  1]
  SIZE          0  [cha: n, def:  0, sav:  0]
  WCE           1  [cha: y, def:  0, sav:  1]
  MF            0  [cha: n, def:  0, sav:  0]
  RCD           0  [cha: y, def:  0, sav:  0]
  DRRP          0  [cha: n, def:  0, sav:  0]
  WRP           0  [cha: n, def:  0, sav:  0]
  DPTL          -1  [cha: n, def: -1, sav: -1]
  MIPF          0  [cha: y, def:  0, sav:  0]
  MAPF          -1  [cha: y, def: -1, sav: -1]
  MAPFC         -1  [cha: n, def: -1, sav: -1]
  FSW           1  [cha: n, def:  1, sav:  1]
  LBCSS         0  [cha: n, def:  0, sav:  0]
  DRA           0  [cha: y, def:  0, sav:  0]
  SYNC_PROG     0  [cha: n, def:  0, sav:  0]
  NV_DIS        0  [cha: n, def:  0, sav:  0]
  NCS           32  [cha: n, def: 32, sav: 32]
  CSS           0  [cha: n, def:  0, sav:  0]
Control mode page:
  TST           0  [cha: n, def:  0, sav:  0]
  TMF_ONLY      0  [cha: n, def:  0, sav:  0]
  DPICZ         1  [cha: y, def:  1, sav:  1]
  D_SENSE       0  [cha: y, def:  0, sav:  0]
  GLTSD         0  [cha: y, def:  0, sav:  0]
  RLEC          0  [cha: y, def:  0, sav:  0]
  QAM           0  [cha: y, def:  0, sav:  0]
  NUAR          0  [cha: n, def:  0, sav:  0]
  QERR          0  [cha: y, def:  0, sav:  0]
  VS_CTL        0  [cha: n, def:  0, sav:  0]
  RAC           0  [cha: n, def:  0, sav:  0]
  UA_INTLCK     0  [cha: n, def:  0, sav:  0]
  SWP           0  [cha: n, def:  0, sav:  0]
  ATO           1  [cha: y, def:  1, sav:  1]
  TAS           0  [cha: n, def:  0, sav:  0]
  ATMPE         0  [cha: n, def:  0, sav:  0]
  RWWP          0  [cha: y, def:  0, sav:  0]
  SBLP          0  [cha: n, def:  0, sav:  0]
  AUTOLOAD      0  [cha: n, def:  0, sav:  0]
  BTP           0  [cha: n, def:  0, sav:  0]
  ESTCT         45480  [cha: n, def:45480, sav:45480]
Control extension mode page:
  DLC           0  [cha: n, def:  0, sav:  0]
  TCMOS         0  [cha: y, def:  0, sav:  0]
  SCSIP         1  [cha: y, def:  1, sav:  1]
  IALUAE        0  [cha: n, def:  0, sav:  0]
  INIT_PR       0  [cha: n, def:  0, sav:  0]
  MSDL          0  [cha: y, def:  0, sav:  0]
  NSQCC         0  [cha: n, def:  0, sav:  0]
  SQCO          0  [cha: n, def:  0, sav:  0]
Protocol specific logical unit mode page:
  LUPID         6  [cha: n, def:  6, sav:  6]
Protocol specific port mode page:
  PPID          6  [cha: n, def:  6, sav:  6]
Power condition mode page:
  PM_BG         0  [cha: n, def:  0, sav:  0]
  STANDBY_Y     0  [cha: n, def:  0, sav:  0]
  IDLE_C        0  [cha: y, def:  0, sav:  0]
  IDLE_B        1  [cha: y, def:  1, sav:  1]
  IDLE_A        1  [cha: y, def:  1, sav:  1]
  STANDBY_Z     0  [cha: y, def:  0, sav:  0]
  IACT          10  [cha: n, def: 10, sav: 10]
  SZCT          36000  [cha: y, def:36000, sav:36000]
  IBCT          6000  [cha: n, def:6000, sav:6000]
  ICCT          9000  [cha: n, def:9000, sav:9000]
  SYCT          18000  [cha: n, def:18000, sav:18000]
  CCF_IDLE      1  [cha: y, def:  1, sav:  1]
  CCF_STAND     2  [cha: y, def:  2, sav:  2]
  CCF_STOPP     2  [cha: y, def:  2, sav:  2]
Power consumption mode page:
  ACT_LEV       1  [cha: y, def:  1, sav:  1]
  PC_ID         0  [cha: n, def:  0, sav:  0]
Informational exceptions control mode page:
  PERF          0  [cha: n, def:  0, sav:  0]
  EBF           0  [cha: n, def:  0, sav:  0]
  EWASC         0  [cha: y, def:  0, sav:  0]
  DEXCPT        0  [cha: y, def:  0, sav:  0]
  TEST          0  [cha: y, def:  0, sav:  0]
  EBACKERR      0  [cha: n, def:  0, sav:  0]
  LOGERR        1  [cha: y, def:  1, sav:  1]
  MRIE          6  [cha: y, def:  6, sav:  6]
  INTT          6000  [cha: y, def:6000, sav:6000]
  REPC          0  [cha: y, def:  0, sav:  0]
Background control (SBC) mode page:
  S_L_FULL      0  [cha: y, def:  0, sav:  0]
  LOWIR         0  [cha: y, def:  0, sav:  0]
  EN_BMS        1  [cha: y, def:  1, sav:  1]
  EN_PS         0  [cha: n, def:  0, sav:  0]
  BMS_I         144  [cha: y, def:144, sav:144]
  BPS_TL        24  [cha: y, def: 24, sav: 24]
  MIN_IDLE      250  [cha: y, def:250, sav:250]
  MAX_SUSP      0  [cha: y, def:  0, sav:  0]
 
Multiple problems here, but I think it is doable if they behave the same way as HGST disks do.
These disks were pulled from some storage, likely CLARiiON, ex-Data General, now EMC. These have own firmware line/revision CSL9 and in theory this could prevent changing the disks how you want/need it. Let's try it out.

First of all...forget hdidle or any software solution, deinstall/deactivate it. It's maybe usable for SATA, but not for SAS. You don't need it with SAS-disks anyway, they can do it on their own and that is the better option. (I use this for years).

Code:
Power condition mode page:
  PM_BG         0  [cha: n, def:  0, sav:  0]
  STANDBY_Y     0  [cha: n, def:  0, sav:  0]
  IDLE_C        0  [cha: y, def:  0, sav:  0]
  IDLE_B        1  [cha: y, def:  1, sav:  1]
  IDLE_A        1  [cha: y, def:  1, sav:  1]
  STANDBY_Z     0  [cha: y, def:  0, sav:  0]
  IACT          10  [cha: n, def: 10, sav: 10]
  SZCT          36000  [cha: y, def:36000, sav:36000]
  IBCT          6000  [cha: n, def:6000, sav:6000]
  ICCT          9000  [cha: n, def:9000, sav:9000]
  SYCT          18000  [cha: n, def:18000, sav:18000]
  CCF_IDLE      1  [cha: y, def:  1, sav:  1]
  CCF_STAND     2  [cha: y, def:  2, sav:  2]
  CCF_STOPP     2  [cha: y, def:  2, sav:  2]

Focus on this first. From high to low states (1=on, 0=off) you have IDLE_A, IDLE_B, IDLE_C, STANDBY_Y, STANDBY_Z
The depending counters (these are ms) IACT, IBCT, ICCT, SYCT, SZCT
CCF_IDLE (1=automatic wakeup, 2=only manual wakeup) -> relevant for IDLE_A,B,C
CCF_STAND (1=automatic wakeup, 2=only manual wakeup) -> relevant for STANDBY_Y,Z (either this is your initial problem*)
CCF_STOPP (1=automatic wakeup, 2=only manual wakeup) -> relevant for motor stopped (deepest mode, *or this your initial problem)
sdparm -a /dev/sdX --longwill give you output with detailed explanations.

So, try out if this works and gets saved by the disk without error (-s=set, -S=save): sdparm -s CCF_STAND=1,CCF_STOPP=1 -S /dev/sdX
Changing idle and counters works the same way: sdparm -s IDLE_A=1,IACT=20,IDLE_B=1,IBCT=8000 -S /dev/sdX
NEVER try out STANDBY_Z first, it is possible that you need to reconnect the disk to wake it up again. In general be careful with the lower states and test one after another and most important: NEVER mix IDLE_C, STANDBY_Y, STANDBY_Z. Only choose one of them. So if IDLE_C works, deactivate it, then activate STANDY_Y and test it. Only test this on one hard drive at a time, not on all of them at once! (e.g. if all of the hard drives remain in deep standby, your pool will go offline and in the worst case scenario only a reboot will help) Even if the option is written there and it can be configured, that doesn't mean that the hard drive will do it. Keyword special firmware. So test it thoroughly on one hard drive first before configuring it on all of them.

Then focus on the next problem:
Code:
User Capacity:        8,001,563,222,016 bytes [8.00 TB]
Logical block size:   512 bytes
Physical block size:  4096 bytes
Formatted with type 2 protection
8 bytes of protection information per logical block
LU is fully provisioned

You don't want/need that type1 or type2 protection, that was useful for the storage but not for ZFS. It has its own protection information.
You need to reformat these disks, this will take ~12h with 8T disks. But you can open multiple ssh-sessions and do it in parallel with all disks.

I don't know if these disks can handle 4knative/AF format, but it should be preferred if. It is faster and overall better.
Try it (apt install sg3-utils if you don't already have it): sg_format -v --format --fmtpinfo=0 --pfu=0 --size=4096 /dev/sdX

If this does not start and gives errors, try format with 512 sector size: sg_format -v --format --fmtpinfo=0 --pfu=0 --size=512 /dev/sdX

After it is done, check again smartctl -x, protection stuff should be gone and according to the sector size the available blocks/capacity should fit now. It could not hurt to pull and reseat the disks to check if everything is still good after that. If all good, create now your pool and enjoy the optimal setting/speed. ;)

Happy hacking! :)
 
So, try out if this works and gets saved by the disk without error (-s=set, -S=save): sdparm -s CCF_STAND=1,CCF_STOPP=1 -S /dev/sdX
Thanks for taking the time, really, I appreciate you! I did this sdparm command to /sda and it worked without issues to change CCF_STAND and CCF_STOPP from 0 to 1. I didn't do it yet to the other disks since you recommended working with 1 disk at a time.
sg_format -v --format --fmtpinfo=0 --pfu=0 --size=4096 /dev/sdX
This would not initiate. Here's the output.
Code:
    SEAGATE   ST8000NM014A      CSL9   peripheral_type: disk [0x
      PROTECT=1
      << supports protection information>>
      Unit serial number: WSD4QXED
      LU name: 5000c500d821a67b
    mode sense(10) cdb: [5a 00 01 00 00 00 00 00 fc 00]
Mode Sense (block descriptor) data, prior to changes:
block count maxed out, set <<longlba>>
    mode sense(10) cdb: [5a 10 01 00 00 00 00 00 fc 00]
  <<< longlba flag set (64 bit lba) >>>
  Number of blocks=15628053168 [0x3a3812ab0]
  Block size=512 [0x200]
    mode select(10) cdb: [55 11 00 00 00 00 00 00 24 00]
mode select(10):
Fixed format, current; Sense key: Illegal Request
Additional sense: Invalid field in parameter list
  Field replaceable unit code: 17
  Sense Key Specific: Error in Data parameters: byte 21 bit 7
Try MODE SELECT again with SP=0 this time
    mode select(10) cdb: [55 10 00 00 00 00 00 00 24 00]
mode select(10):
Fixed format, current; Sense key: Illegal Request
Additional sense: Invalid field in parameter list
  Field replaceable unit code: 17
  Sense Key Specific: Error in Data parameters: byte 21 bit 7
MODE SELECT command: Illegal request, type: sense key, apart from

sg_format -v --format --fmtpinfo=0 --pfu=0 --size=512 /dev/sdX
This worked! I have all 4 drives formatting now. Once they are complete, I will check with smartctl command.

Then, I will go back and change the CCF_STAND and CCF_STOPP for all drives.
sdparm -s IDLE_A=1,IACT=20,IDLE_B=1,IBCT=8000 -S /dev/sdX

Does this command increase or decrease the idle time? It looks like IACT is set to 10 now and IBCT is at 6000.

Thanks again!
 
CCF_STAND and CCF_STOPP from 0 to 1. I didn't do it yet to the other disks since you recommended working with 1 disk at a time.
CCF_STAND and CCF_STOPP (from 2 ;) ) to 1 you can do on all disks at once (but wait for the format to complete as it's running now). The recommendation with only 1 disk at a time was only meant for IDLE_C, STANDBY_C and STANDBY_Z. ;)

This worked! I have all 4 drives formatting now. Once they are complete, I will check with smartctl command.
Nice! :) Be sure to check smartctl -x again (i.e. twice after formatting, the second time after you've unplugged and re-plugged everything) and then post it again so I can look at it. I also remember that there is firmware where the formatting went through but then nothing was changed. Luckily that's rare, but I hope for the best. :)

Does this command increase or decrease the idle time?
It simply overwrites. You can also choose single command sdparm -s IACT=20 -S /dev/sdX then check with sdparm -a again if it switched.
It looks like IACT is set to 10 now and IBCT is at 6000.
Correct. IACT=10 or 20 is good, IBCT=6000 too. A and B always works without problems.

For comparison, 4k native disk:
Code:
smartctl -x -q noserial /dev/da5
smartctl 7.4 2023-08-01 r5530 [FreeBSD 14.2-RELEASE amd64] (local build)
Copyright (C) 2002-23, Bruce Allen, Christian Franke, www.smartmontools.org

=== START OF INFORMATION SECTION ===
Vendor:               HGST
Product:              H7280A520SUN8.0T
Revision:             PD51
Compliance:           SPC-4
User Capacity:        8,001,563,222,016 bytes [8.00 TB]
Logical block size:   4096 bytes
LU is fully provisioned
Rotation Rate:        7200 rpm
Form Factor:          3.5 inches
Device type:          disk
Transport protocol:   SAS (SPL-4)
Local Time is:        Fri Feb 14 15:31:57 2025 CET
SMART support is:     Available - device has SMART capability.
SMART support is:     Enabled
Temperature Warning:  Enabled
Read Cache is:        Enabled
Writeback Cache is:   Disabled

=== START OF READ SMART DATA SECTION ===
SMART Health Status: OK

Current Drive Temperature:     46 C
Drive Trip Temperature:        85 C

Manufactured in week 02 of year 2016
Specified cycle count over device lifetime:  50000
Accumulated start-stop cycles:  39
Specified load-unload count over device lifetime:  600000
Accumulated load-unload cycles:  2742
Elements in grown defect list: 0

Vendor (Seagate Cache) information
  Blocks sent to initiator = 33630319290613760

Error counter log:
           Errors Corrected by           Total   Correction     Gigabytes    Total
               ECC          rereads/    errors   algorithm      processed    uncorrected
           fast | delayed   rewrites  corrected  invocations   [10^9 bytes]  errors
read:          0      180         0       180    3279076    1396914.193           0
write:         0        0         0         0   13804712     311000.029           0
verify:        0        0         0         0     107285          7.516           0

Non-medium error count:        0

No Self-tests have been logged

Background scan results log
  Status: waiting until BMS interval timer expires
    Accumulated power on time, hours:minutes 2570:33 [154233 minutes]
    Number of background scans performed: 337,  scan progress: 0.00%
    Number of background medium scans performed: 337

General statistics and performance log page:
  General access statistics and performance:
    Number of read commands: 1706870855
    Number of write commands: 2004523235
    number of logical blocks received: 75927741487
    number of logical blocks transmitted: 341043504134
    read command processing intervals: 0
    write command processing intervals: 0
    weighted number of read commands plus write commands: 0
    weighted read command processing plus write command processing: 0
  Idle time:
    Idle time intervals: 2995022593
      in seconds: 149751129.650
      in hours: 41597.536

Protocol Specific port log page for SAS SSP
relative target port id = 1
  generation code = 1
  number of phys = 1
  phy identifier = 0
    attached device type: expander device
    attached reason: power on
    reason: unknown
    negotiated logical link rate: phy enabled; 6 Gbps
    attached initiator port: ssp=0 stp=0 smp=1
    attached target port: ssp=0 stp=0 smp=1
    attached phy identifier = 35
    Invalid DWORD count = 0
    Running disparity error count = 0
    Loss of DWORD synchronization count = 0
    Phy reset problem count = 0
relative target port id = 2
  generation code = 1
  number of phys = 1
  phy identifier = 1
    attached device type: no device attached
    attached reason: unknown
    reason: power on
    negotiated logical link rate: phy enabled; unknown
    attached initiator port: ssp=0 stp=0 smp=0
    attached target port: ssp=0 stp=0 smp=0
    attached phy identifier = 0
    Invalid DWORD count = 0
    Running disparity error count = 0
    Loss of DWORD synchronization count = 0
    Phy reset problem count = 0

Code:
sdparm -a /dev/da5
    /dev/da5: HGST      H7280A520SUN8.0T  PD51
Read write error recovery mode page:
  AWRE          1  [cha: y, def:  1, sav:  1]
  ARRE          1  [cha: y, def:  1, sav:  1]
  TB            0  [cha: y, def:  0, sav:  0]
  RC            0  [cha: y, def:  0, sav:  0]
  EER           0  [cha: n, def:  0, sav:  0]
  PER           1  [cha: y, def:  1, sav:  1]
  DTE           0  [cha: y, def:  0, sav:  0]
  DCR           0  [cha: y, def:  0, sav:  0]
  RRC           8  [cha: y, def:  1, sav:  8]
  COR_S         0  [cha: y, def:  0, sav:  0]
  HOC           0  [cha: y, def:  0, sav:  0]
  DSOC          0  [cha: y, def:  0, sav:  0]
  LBPERE        0  [cha: n, def:  0, sav:  0]
  MWR           0  [cha: n, def:  0, sav:  0]
  WRC           8  [cha: y, def:  1, sav:  8]
  RTL           7000  [cha: y, def:  0, sav:7000]
Disconnect-reconnect (SPC + transports) mode page:
  BFR           0  [cha: y, def:  0, sav:  0]
  BER           0  [cha: y, def:  0, sav:  0]
  BIL           0  [cha: n, def:  0, sav:  0]
  DTL           0  [cha: n, def:  0, sav:  0]
  CTL           0  [cha: n, def:  0, sav:  0]
  MBS           314  [cha: y, def:314, sav:314]
  EMDP          0  [cha: n, def:  0, sav:  0]
  FA            0  [cha: n, def:  0, sav:  0]
  DIMM          0  [cha: n, def:  0, sav:  0]
  DTDC          0  [cha: n, def:  0, sav:  0]
  FBS           0  [cha: n, def:  0, sav:  0]
Format (SBC) mode page:
  TPZ           8699  [cha: n, def:8699, sav:8699]
  ASPZ          0  [cha: n, def:  0, sav:  0]
  ATPZ          0  [cha: n, def:  0, sav:  0]
  ATPLU         0  [cha: n, def:  0, sav:  0]
  SPT           471  [cha: n, def:471, sav:471]
  DBPPS         4096  [cha: n, def:4096, sav:4096]
  INTLV         1  [cha: n, def:  1, sav:  1]
  TSF           100  [cha: n, def:100, sav:100]
  CSF           24  [cha: n, def: 24, sav: 24]
  SSEC          0  [cha: n, def:  0, sav:  0]
  HSEC          1  [cha: n, def:  1, sav:  1]
  RMB           0  [cha: n, def:  0, sav:  0]
  SURF          0  [cha: n, def:  0, sav:  0]
Rigid disk (SBC) mode page:
  NOC           392300  [cha: n, def:392300, sav:392300]
  NOH           14  [cha: n, def: 14, sav: 14]
  SCWP          0  [cha: n, def:  0, sav:  0]
  SCRWC         0  [cha: n, def:  0, sav:  0]
  DSR           0  [cha: n, def:  0, sav:  0]
  LZC           0  [cha: n, def:  0, sav:  0]
  RPL           0  [cha: n, def:  0, sav:  0]
  ROTO          0  [cha: n, def:  0, sav:  0]
  MRR           7200  [cha: n, def:7200, sav:7200]
Verify error recovery (SBC) mode page:
  V_EER         0  [cha: n, def:  0, sav:  0]
  V_PER         0  [cha: y, def:  0, sav:  0]
  V_DTE         0  [cha: y, def:  0, sav:  0]
  V_DCR         0  [cha: y, def:  0, sav:  0]
  V_RC          1  [cha: y, def:  1, sav:  1]
  V_COR_S       0  [cha: n, def:  0, sav:  0]
  V_RTL         7000  [cha: y, def:  0, sav:7000]
Caching (SBC) mode page:
  IC            0  [cha: y, def:  0, sav:  0]
  ABPF          0  [cha: y, def:  0, sav:  0]
  CAP           0  [cha: y, def:  0, sav:  0]
  DISC          0  [cha: y, def:  0, sav:  0]
  SIZE          0  [cha: y, def:  0, sav:  0]
  WCE           0  [cha: y, def:  0, sav:  0]
  MF            0  [cha: y, def:  0, sav:  0]
  RCD           0  [cha: y, def:  0, sav:  0]
  DRRP          0  [cha: y, def:  0, sav:  0]
  WRP           0  [cha: y, def:  0, sav:  0]
  DPTL          -1  [cha: y, def: -1, sav: -1]
  MIPF          0  [cha: y, def:  0, sav:  0]
  MAPF          -1  [cha: y, def: -1, sav: -1]
  MAPFC         -1  [cha: y, def: -1, sav: -1]
  FSW           0  [cha: y, def:  0, sav:  0]
  LBCSS         0  [cha: y, def:  0, sav:  0]
  DRA           0  [cha: y, def:  0, sav:  0]
  SYNC_PROG     0  [cha: n, def:  0, sav:  0]
  NV_DIS        0  [cha: n, def:  0, sav:  0]
  NCS           8  [cha: y, def:  8, sav:  8]
  CSS           0  [cha: y, def:  0, sav:  0]
Control mode page:
  TST           0  [cha: n, def:  0, sav:  0]
  TMF_ONLY      0  [cha: n, def:  0, sav:  0]
  DPICZ         1  [cha: y, def:  1, sav:  1]
  D_SENSE       1  [cha: y, def:  1, sav:  1]
  GLTSD         0  [cha: n, def:  0, sav:  0]
  RLEC          0  [cha: n, def:  0, sav:  0]
  QAM           0  [cha: y, def:  0, sav:  0]
  NUAR          0  [cha: n, def:  0, sav:  0]
  QERR          0  [cha: y, def:  0, sav:  0]
  VS_CTL        0  [cha: n, def:  0, sav:  0]
  RAC           0  [cha: n, def:  0, sav:  0]
  UA_INTLCK     0  [cha: n, def:  0, sav:  0]
  SWP           0  [cha: n, def:  0, sav:  0]
  ATO           1  [cha: n, def:  1, sav:  1]
  TAS           0  [cha: n, def:  0, sav:  0]
  ATMPE         0  [cha: y, def:  0, sav:  0]
  RWWP          0  [cha: y, def:  0, sav:  0]
  SBLP          0  [cha: n, def:  0, sav:  0]
  AUTOLOAD      0  [cha: n, def:  0, sav:  0]
  BTP           0  [cha: y, def:  0, sav:  0]
  ESTCT         64971  [cha: n, def:64971, sav:64971]
Control extension mode page:
  DLC           0  [cha: n, def:  0, sav:  0]
  TCMOS         0  [cha: n, def:  0, sav:  0]
  SCSIP         0  [cha: n, def:  0, sav:  0]
  IALUAE        0  [cha: n, def:  0, sav:  0]
  INIT_PR       0  [cha: n, def:  0, sav:  0]
  MSDL          0  [cha: y, def:  0, sav:  0]
  NSQCC         0  [cha: n, def:  0, sav:  0]
  SQCO          0  [cha: n, def:  0, sav:  0]
Application tag (SBC) mode page:
  AT_LAST       1  [cha: y, def:  1, sav:  1]
  AT_LBAT       0xffff  [cha: y, def:0xffff, sav:0xffff]
  AT_LBA        0x0  [cha: y, def:0x0, sav:0x0]
  AT_COUNT      -1  [cha: y, def:-1, sav:-1]
  AT_LAST.1     0  [cha: y, def:  0, sav:  0]
  AT_LBAT.1     0x0  [cha: y, def:0x0, sav:0x0]
  AT_LBA.1      0x0  [cha: y, def:0x0, sav:0x0]
  AT_COUNT.1    0x0  [cha: y, def:0x0, sav:0x0]
  AT_LAST.2     0  [cha: y, def:  0, sav:  0]
  AT_LBAT.2     0x0  [cha: y, def:0x0, sav:0x0]
  AT_LBA.2      0x0  [cha: y, def:0x0, sav:0x0]
  AT_COUNT.2    0x0  [cha: y, def:0x0, sav:0x0]
  AT_LAST.3     0  [cha: y, def:  0, sav:  0]
  AT_LBAT.3     0x0  [cha: y, def:0x0, sav:0x0]
  AT_LBA.3      0x0  [cha: y, def:0x0, sav:0x0]
  AT_COUNT.3    0x0  [cha: y, def:0x0, sav:0x0]
  AT_LAST.4     0  [cha: y, def:  0, sav:  0]
  AT_LBAT.4     0x0  [cha: y, def:0x0, sav:0x0]
  AT_LBA.4      0x0  [cha: y, def:0x0, sav:0x0]
  AT_COUNT.4    0x0  [cha: y, def:0x0, sav:0x0]
  AT_LAST.5     0  [cha: y, def:  0, sav:  0]
  AT_LBAT.5     0x0  [cha: y, def:0x0, sav:0x0]
  AT_LBA.5      0x0  [cha: y, def:0x0, sav:0x0]
  AT_COUNT.5    0x0  [cha: y, def:0x0, sav:0x0]
  AT_LAST.6     0  [cha: y, def:  0, sav:  0]
  AT_LBAT.6     0x0  [cha: y, def:0x0, sav:0x0]
  AT_LBA.6      0x0  [cha: y, def:0x0, sav:0x0]
  AT_COUNT.6    0x0  [cha: y, def:0x0, sav:0x0]
  AT_LAST.7     0  [cha: y, def:  0, sav:  0]
  AT_LBAT.7     0x0  [cha: y, def:0x0, sav:0x0]
  AT_LBA.7      0x0  [cha: y, def:0x0, sav:0x0]
  AT_COUNT.7    0x0  [cha: y, def:0x0, sav:0x0]
  AT_LAST.8     0  [cha: y, def:  0, sav:  0]
  AT_LBAT.8     0x0  [cha: y, def:0x0, sav:0x0]
  AT_LBA.8      0x0  [cha: y, def:0x0, sav:0x0]
  AT_COUNT.8    0x0  [cha: y, def:0x0, sav:0x0]
  AT_LAST.9     0  [cha: y, def:  0, sav:  0]
  AT_LBAT.9     0x0  [cha: y, def:0x0, sav:0x0]
  AT_LBA.9      0x0  [cha: y, def:0x0, sav:0x0]
  AT_COUNT.9    0x0  [cha: y, def:0x0, sav:0x0]
  AT_LAST.10    0  [cha: y, def:  0, sav:  0]
  AT_LBAT.10    0x0  [cha: y, def:0x0, sav:0x0]
  AT_LBA.10     0x0  [cha: y, def:0x0, sav:0x0]
  AT_COUNT.10   0x0  [cha: y, def:0x0, sav:0x0]
  AT_LAST.11    0  [cha: y, def:  0, sav:  0]
  AT_LBAT.11    0x0  [cha: y, def:0x0, sav:0x0]
  AT_LBA.11     0x0  [cha: y, def:0x0, sav:0x0]
  AT_COUNT.11   0x0  [cha: y, def:0x0, sav:0x0]
  AT_LAST.12    0  [cha: y, def:  0, sav:  0]
  AT_LBAT.12    0x0  [cha: y, def:0x0, sav:0x0]
  AT_LBA.12     0x0  [cha: y, def:0x0, sav:0x0]
  AT_COUNT.12   0x0  [cha: y, def:0x0, sav:0x0]
  AT_LAST.13    0  [cha: y, def:  0, sav:  0]
  AT_LBAT.13    0x0  [cha: y, def:0x0, sav:0x0]
  AT_LBA.13     0x0  [cha: y, def:0x0, sav:0x0]
  AT_COUNT.13   0x0  [cha: y, def:0x0, sav:0x0]
  AT_LAST.14    0  [cha: y, def:  0, sav:  0]
  AT_LBAT.14    0x0  [cha: y, def:0x0, sav:0x0]
  AT_LBA.14     0x0  [cha: y, def:0x0, sav:0x0]
  AT_COUNT.14   0x0  [cha: y, def:0x0, sav:0x0]
  AT_LAST.15    0  [cha: y, def:  0, sav:  0]
  AT_LBAT.15    0x0  [cha: y, def:0x0, sav:0x0]
  AT_LBA.15     0x0  [cha: y, def:0x0, sav:0x0]
  AT_COUNT.15   0x0  [cha: y, def:0x0, sav:0x0]
Notch and partition (SBC) mode page:
  ND            1  [cha: y, def:  1, sav:  1]
  LPN           0  [cha: n, def:  0, sav:  0]
  MNN           40  [cha: n, def: 40, sav: 40]
  ANOT          0  [cha: y, def:  0, sav:  0]
  SBOU          0x0  [cha: y, def:0x0, sav:0x0]
  EBOU          0x5fc6c00  [cha: y, def:0x5fc6c00, sav:0x5fc6c00]
  PNOT          0x100c  [cha: n, def:0x100c, sav:0x100c]
Protocol specific logical unit mode page:
  LUPID         6  [cha: n, def:  6, sav:  6]
Protocol specific port mode page:
  PPID          6  [cha: n, def:  6, sav:  6]
Power condition mode page:
  PM_BG         0  [cha: y, def:  0, sav:  0]
  STANDBY_Y     0  [cha: y, def:  0, sav:  0]
  IDLE_C        1  [cha: y, def:  0, sav:  1]
  IDLE_B        1  [cha: y, def:  0, sav:  1]
  IDLE_A        1  [cha: y, def:  0, sav:  1]
  STANDBY_Z     0  [cha: y, def:  0, sav:  0]
  IACT          20  [cha: y, def:  0, sav: 20]
  SZCT          9600  [cha: y, def:  0, sav:9600]
  IBCT          4800  [cha: y, def:  0, sav:4800]
  ICCT          6000  [cha: y, def:  0, sav:6000]
  SYCT          6000  [cha: y, def:  0, sav:6000]
  CCF_IDLE      1  [cha: y, def:  1, sav:  1]
  CCF_STAND     1  [cha: y, def:  1, sav:  1]
  CCF_STOPP     1  [cha: y, def:  2, sav:  1]
Informational exceptions control mode page:
  PERF          0  [cha: y, def:  0, sav:  0]
  EBF           0  [cha: y, def:  0, sav:  0]
  EWASC         1  [cha: y, def:  1, sav:  1]
  DEXCPT        0  [cha: y, def:  0, sav:  0]
  TEST          0  [cha: y, def:  0, sav:  0]
  EBACKERR      0  [cha: y, def:  0, sav:  0]
  LOGERR        0  [cha: y, def:  0, sav:  0]
  MRIE          4  [cha: y, def:  4, sav:  4]
  INTT          0  [cha: y, def:  0, sav:  0]
  REPC          1  [cha: y, def:  1, sav:  1]
Background control (SBC) mode page:
  S_L_FULL      0  [cha: y, def:  0, sav:  0]
  LOWIR         0  [cha: y, def:  0, sav:  0]
  EN_BMS        1  [cha: y, def:  1, sav:  1]
  EN_PS         0  [cha: y, def:  0, sav:  0]
  BMS_I         168  [cha: y, def:168, sav:168]
  BPS_TL        24  [cha: y, def:  0, sav: 24]
  MIN_IDLE      2000  [cha: y, def:500, sav:2000]
  MAX_SUSP      0  [cha: y, def:  0, sav:  0]
 
Thanks again for your help @mr44er ! The formatting took about 18 hours. Afterwards, I adjusted the CCF_STAND and CCF_STOPP successfully for all 4 drives. However, when trying to adjust the idle time parameters, it doesn't seem to be accepting it. And, the drives still don't idle. Here's the output for the sdparm command:
Code:
   /dev/sda: SEAGATE   ST8000NM014A      CSL9
Read write error recovery mode page:
  AWRE          1  [cha: y, def:  1, sav:  1]
  ARRE          1  [cha: y, def:  1, sav:  1]
  TB            0  [cha: y, def:  0, sav:  0]
  RC            0  [cha: n, def:  0, sav:  0]
  EER           0  [cha: y, def:  0, sav:  0]
  PER           0  [cha: y, def:  0, sav:  0]
  DTE           0  [cha: y, def:  0, sav:  0]
  DCR           0  [cha: y, def:  0, sav:  0]
  RRC           20  [cha: y, def: 20, sav: 20]
  COR_S         -1  [cha: n, def: -1, sav: -1]
  HOC           0  [cha: n, def:  0, sav:  0]
  DSOC          0  [cha: n, def:  0, sav:  0]
  LBPERE        0  [cha: n, def:  0, sav:  0]
  MWR           0  [cha: n, def:  0, sav:  0]
  WRC           5  [cha: y, def:  5, sav:  5]
  RTL           8000  [cha: y, def:8000, sav:8000]
Disconnect-reconnect (SPC + transports) mode page:
  BFR           0  [cha: n, def:  0, sav:  0]
  BER           0  [cha: n, def:  0, sav:  0]
  BIL           0  [cha: y, def:  0, sav:  0]
  DTL           0  [cha: n, def:  0, sav:  0]
  CTL           0  [cha: y, def:  0, sav:  0]
  MBS           160  [cha: y, def:160, sav:160]
  EMDP          0  [cha: n, def:  0, sav:  0]
  FA            0  [cha: n, def:  0, sav:  0]
  DIMM          0  [cha: n, def:  0, sav:  0]
  DTDC          0  [cha: n, def:  0, sav:  0]
  FBS           0  [cha: n, def:  0, sav:  0]
Format (SBC) mode page:
  TPZ           1  [cha: n, def:  1, sav:  1]
  ASPZ          0  [cha: n, def:  0, sav:  0]
  ATPZ          0  [cha: n, def:  0, sav:  0]
  ATPLU         2  [cha: n, def:  2, sav:  2]
  SPT           3  [cha: n, def:  3, sav:  3]
  DBPPS         4096  [cha: n, def:4096, sav:4096]
  INTLV         1  [cha: n, def:  1, sav:  1]
  TSF           0  [cha: n, def:  0, sav:  0]
  CSF           0  [cha: n, def:  0, sav:  0]
  SSEC          0  [cha: n, def:  0, sav:  0]
  HSEC          1  [cha: n, def:  1, sav:  1]
  RMB           0  [cha: n, def:  0, sav:  0]
  SURF          0  [cha: n, def:  0, sav:  0]
Rigid disk (SBC) mode page:
  NOC           456616  [cha: n, def:456616, sav:456616]
  NOH           10  [cha: n, def: 10, sav: 10]
  SCWP          0  [cha: n, def:  0, sav:  0]
  SCRWC         0  [cha: n, def:  0, sav:  0]
  DSR           0  [cha: n, def:  0, sav:  0]
  LZC           0  [cha: n, def:  0, sav:  0]
  RPL           0  [cha: n, def:  0, sav:  0]
  ROTO          0  [cha: n, def:  0, sav:  0]
  MRR           7200  [cha: n, def:7200, sav:7200]
Verify error recovery (SBC) mode page:
  V_EER         0  [cha: y, def:  0, sav:  0]
  V_PER         0  [cha: y, def:  0, sav:  0]
  V_DTE         0  [cha: y, def:  0, sav:  0]
  V_DCR         0  [cha: y, def:  0, sav:  0]
  V_RC          20  [cha: y, def: 20, sav: 20]
  V_COR_S       -1  [cha: n, def: -1, sav: -1]
  V_RTL         8000  [cha: y, def:8000, sav:8000]
Caching (SBC) mode page:
  IC            0  [cha: y, def:  0, sav:  0]
  ABPF          0  [cha: n, def:  0, sav:  0]
  CAP           0  [cha: y, def:  0, sav:  0]
  DISC          1  [cha: n, def:  1, sav:  1]
  SIZE          0  [cha: n, def:  0, sav:  0]
  WCE           1  [cha: y, def:  0, sav:  1]
  MF            0  [cha: n, def:  0, sav:  0]
  RCD           0  [cha: y, def:  0, sav:  0]
  DRRP          0  [cha: n, def:  0, sav:  0]
  WRP           0  [cha: n, def:  0, sav:  0]
  DPTL          -1  [cha: n, def: -1, sav: -1]
  MIPF          0  [cha: y, def:  0, sav:  0]
  MAPF          -1  [cha: y, def: -1, sav: -1]
  MAPFC         -1  [cha: n, def: -1, sav: -1]
  FSW           1  [cha: n, def:  1, sav:  1]
  LBCSS         0  [cha: n, def:  0, sav:  0]
  DRA           0  [cha: y, def:  0, sav:  0]
  SYNC_PROG     0  [cha: n, def:  0, sav:  0]
  NV_DIS        0  [cha: n, def:  0, sav:  0]
  NCS           32  [cha: n, def: 32, sav: 32]
  CSS           0  [cha: n, def:  0, sav:  0]
Control mode page:
  TST           0  [cha: n, def:  0, sav:  0]
  TMF_ONLY      0  [cha: n, def:  0, sav:  0]
  DPICZ         1  [cha: y, def:  1, sav:  1]
  D_SENSE       0  [cha: y, def:  0, sav:  0]
  GLTSD         0  [cha: y, def:  0, sav:  0]
  RLEC          0  [cha: y, def:  0, sav:  0]
  QAM           0  [cha: y, def:  0, sav:  0]
  NUAR          0  [cha: n, def:  0, sav:  0]
  QERR          0  [cha: y, def:  0, sav:  0]
  VS_CTL        0  [cha: n, def:  0, sav:  0]
  RAC           0  [cha: n, def:  0, sav:  0]
  UA_INTLCK     0  [cha: n, def:  0, sav:  0]
  SWP           0  [cha: n, def:  0, sav:  0]
  ATO           1  [cha: y, def:  1, sav:  1]
  TAS           0  [cha: n, def:  0, sav:  0]
  ATMPE         0  [cha: n, def:  0, sav:  0]
  RWWP          0  [cha: y, def:  0, sav:  0]
  SBLP          0  [cha: n, def:  0, sav:  0]
  AUTOLOAD      0  [cha: n, def:  0, sav:  0]
  BTP           0  [cha: n, def:  0, sav:  0]
  ESTCT         45480  [cha: n, def:45480, sav:45480]
Control extension mode page:
  DLC           0  [cha: n, def:  0, sav:  0]
  TCMOS         0  [cha: y, def:  0, sav:  0]
  SCSIP         1  [cha: y, def:  1, sav:  1]
  IALUAE        0  [cha: n, def:  0, sav:  0]
  INIT_PR       0  [cha: n, def:  0, sav:  0]
  MSDL          0  [cha: y, def:  0, sav:  0]
  NSQCC         0  [cha: n, def:  0, sav:  0]
  SQCO          0  [cha: n, def:  0, sav:  0]
Protocol specific logical unit mode page:
  LUPID         6  [cha: n, def:  6, sav:  6]
Protocol specific port mode page:
  PPID          6  [cha: n, def:  6, sav:  6]
Power condition mode page:
  PM_BG         0  [cha: n, def:  0, sav:  0]
  STANDBY_Y     0  [cha: n, def:  0, sav:  0]
  IDLE_C        0  [cha: y, def:  0, sav:  0]
  IDLE_B        1  [cha: y, def:  1, sav:  1]
  IDLE_A        1  [cha: y, def:  1, sav:  1]
  STANDBY_Z     0  [cha: y, def:  0, sav:  0]
  IACT          10  [cha: n, def: 10, sav: 10]
  SZCT          36000  [cha: y, def:36000, sav:36000]
  IBCT          6000  [cha: n, def:6000, sav:6000]
  ICCT          9000  [cha: n, def:9000, sav:9000]
  SYCT          18000  [cha: n, def:18000, sav:18000]
  CCF_IDLE      1  [cha: y, def:  1, sav:  1]
  CCF_STAND     1  [cha: y, def:  2, sav:  1]
  CCF_STOPP     1  [cha: y, def:  2, sav:  1]
Power consumption mode page:
  ACT_LEV       1  [cha: y, def:  1, sav:  1]
  PC_ID         0  [cha: n, def:  0, sav:  0]
Informational exceptions control mode page:
  PERF          0  [cha: n, def:  0, sav:  0]
  EBF           0  [cha: n, def:  0, sav:  0]
  EWASC         0  [cha: y, def:  0, sav:  0]
  DEXCPT        0  [cha: y, def:  0, sav:  0]
  TEST          0  [cha: y, def:  0, sav:  0]
  EBACKERR      0  [cha: n, def:  0, sav:  0]
  LOGERR        1  [cha: y, def:  1, sav:  1]
  MRIE          6  [cha: y, def:  6, sav:  6]
  INTT          6000  [cha: y, def:6000, sav:6000]
  REPC          0  [cha: y, def:  0, sav:  0]
Background control (SBC) mode page:
  S_L_FULL      0  [cha: y, def:  0, sav:  0]
  LOWIR         0  [cha: y, def:  0, sav:  0]
  EN_BMS        1  [cha: y, def:  1, sav:  1]
  EN_PS         0  [cha: n, def:  0, sav:  0]
  BMS_I         144  [cha: y, def:144, sav:144]
  BPS_TL        24  [cha: y, def: 24, sav: 24]
  MIN_IDLE      250  [cha: y, def:250, sav:250]
  MAX_SUSP      0  [cha: y, def:  0, sav:  0]

Maybe the firmware that you mentioned is causing some issues? So strange that I'm having all of these issues idling HDs with SAS formatting. I have a 72Tb zfs pool on a separate Truenas system that has no issues managing hard drive power use. They are SATA, which might be one difference...
 
Maybe the firmware that you mentioned is causing some issues?
Yes and no. I totally forgot to look at cha: n/y. That means changeable: yes and changeable: no <- that is "engraved" in the firmware.
So you can only change and save where you have [cha: y

You have IDLE_A,B,C changeable, STANDBY_Y not, but STANDBY_Z yes and in addition only SZCT availabe. Not good, but better than nothing.

Try sdparm -s IDLE_C=1 -S /dev/sdX and wait 9000ms, check how they are idle. (idle_c does not always mean motor stopped, I don't know how this model behaves). Btw...how do you check if they spin down? By ears? :D
If this worked and you wanna test the deeper mode, try this: sdparm -S IDLE_C=0,STANDBY_Z=1,SZCT=18500 -S /dev/sdX(a value over 18000, because that is SYCT minimum).
Mhm...you could try to choose a value under 18000 but I don't know how that behaves or you could test hdidle again to send them to sleep. They should now wakeup without problems.

has no issues managing hard drive power use. They are SATA, which might be one difference...
Yes, SATA is another thing. They have APM.

But...the most important thing is that CCF_STAND and CCF_STOPP was correctly saved!
The formatting took about 18 hours.
Did it work/change something?
 
Last edited:
https://www.seagate.com/files/www-c...city-3-5-hdd-10tb/_shared/docs/100840702d.pdf
On page 59 ;)

Default values
Default values are hard-coded in the drive firmware stored in flash E-PROM (nonvolatile memory) on the drive’s PCB. These
default values can be changed only by downloading a complete set of new firmware into the flash E-PROM. An initiator can
request and receive from the drive a list of default values and use those in a Mode Select command to set up new current and
saved values, where the values are changeable
 
Unfortunately, none of this work resulted in any difference. :-(. The drives never idled automatically. I reinstalled hd-idle and it did idle (again) after the default 10 minutes. But it encountered the same wake-up issues that essentially required a full reboot. I think I've resigned myself to just using 4 drives with single parity to cut down on power use (I really only need ~ 20Tb of backup storage) and just eat the 50 watts of extra power. It seems silly to worry about 50 watts, but we are net zero on my property (fully renewable energy) and I have become the household energy czar, lol. But batteries are expensive and the sun doesn't always shine.

In any case, I extend my sincere appreciation for enlightening me to the workings of these spinners. I learned a lot!
 
I checked hd-idle https://github.com/adelolmo/hd-idle. From there:
-p power_condition
Power condition to send with the issued SCSI START STOP UNIT command. Possible valuesare 0-15 (inclusive). The default value of 0 works fine for disks accessible via theSCSI layer (USB, IEEE1394, ...), but it will NOT work as intended with real SCSI / SAS disks.A stopped SAS disk will not start up automatically on access, but requires a startup command for reactivation.Useful values for SAS disks are 2 for idle and 3 for standby.

It looks like hd-idle is definitely not suitable for SAS and it kicks them into some deadlock.

Another idea:
sdparm -s IDLE_A=0,IDLE_B=0,IDLE_C=0,STANDBY_Z=1,SZCT=18500 -S /dev/sdX //only standby_z after a bit over ~30 minutes
sdparm -s PM_BG=1 -S /dev/sdX //as it says, precedence
sdparm -s EN_BMS=0 -S /dev/sdX //deactivate background media scan to not interfere

If this works, try a counter lower than 18000. But again, how do you check if they're idle/standby?
What does smartctl -x say?

Code:
Power condition [po] mode page:
  PM_BG         0  [cha: y, def:  0, sav:  0]  Power management, background functions, precedence
  STANDBY_Y     0  [cha: y, def:  0, sav:  0]  Standby_y timer enable
  IDLE_C        1  [cha: y, def:  0, sav:  1]  Idle_c timer enable
  IDLE_B        1  [cha: y, def:  0, sav:  1]  Idle_b timer enable
  IDLE_A        1  [cha: y, def:  0, sav:  1]  Idle_a timer enable
  STANDBY_Z     0  [cha: y, def:  0, sav:  0]  Standby_z timer enable
  IACT          20  [cha: y, def:  0, sav: 20]  Idle_a condition timer (100 ms)
  SZCT          9600  [cha: y, def:  0, sav:9600]  Standby_z condition timer (100 ms)
  IBCT          4800  [cha: y, def:  0, sav:4800]  Idle_b condition timer (100 ms)
  ICCT          6000  [cha: y, def:  0, sav:6000]  Idle_c condition timer (100 ms)
  SYCT          6000  [cha: y, def:  0, sav:6000]  Standby_y condition timer (100 ms)
  CCF_IDLE      1  [cha: y, def:  1, sav:  1]  check condition if from idle_c
  CCF_STAND     1  [cha: y, def:  1, sav:  1]  check condition if from a standby
  CCF_STOPP     1  [cha: y, def:  2, sav:  1]  check condition if from stopped
Informational exceptions control [ie] mode page:
  PERF          0  [cha: y, def:  0, sav:  0]  Performance (impact of ie operations)
  EBF           0  [cha: y, def:  0, sav:  0]  Enable background function
  EWASC         1  [cha: y, def:  1, sav:  1]  Enable warning
  DEXCPT        0  [cha: y, def:  0, sav:  0]  Disable exceptions
  TEST          0  [cha: y, def:  0, sav:  0]  Test (simulate device failure)
  EBACKERR      0  [cha: y, def:  0, sav:  0]  Enable background (scan + self test) error reporting
  LOGERR        0  [cha: y, def:  0, sav:  0]  Log informational exception errors
  MRIE          4  [cha: y, def:  4, sav:  4]  Method of reporting informational exceptions
  INTT          0  [cha: y, def:  0, sav:  0]  Interval timer (100 ms)
  REPC          1  [cha: y, def:  1, sav:  1]  Report count (or Test flag number [SSC-3])
Background control (SBC) [bc] mode page:
  S_L_FULL      0  [cha: y, def:  0, sav:  0]  Suspend on log full
  LOWIR         0  [cha: y, def:  0, sav:  0]  Log only when intervention required
  EN_BMS        1  [cha: y, def:  1, sav:  1]  Enable background medium scan
  EN_PS         0  [cha: y, def:  0, sav:  0]  Enable pre-scan
  BMS_I         168  [cha: y, def:168, sav:168]  Background medium scan interval time (hour)
  BPS_TL        24  [cha: y, def:  0, sav: 24]  Background pre-scan time limit (hour)
  MIN_IDLE      2000  [cha: y, def:500, sav:2000]  Minumum idle time before background scan (ms)
  MAX_SUSP      0  [cha: y, def:  0, sav:  0]  Maximum time to suspend background scan (ms)
 
I checked hd-idle https://github.com/adelolmo/hd-idle. From there:


It looks like hd-idle is definitely not suitable for SAS and it kicks them into some deadlock.

Ok, I've removed hd-idle and won't use it again.
Another idea:
sdparm -s IDLE_A=0,IDLE_B=0,IDLE_C=0,STANDBY_Z=1,SZCT=18500 -S /dev/sdX //only standby_z after a bit over ~30 minutes
sdparm -s PM_BG=1 -S /dev/sdX //as it says, precedence
sdparm -s EN_BMS=0 -S /dev/sdX //deactivate background media scan to not interfere

If this works, try a counter lower than 18000. But again, how do you check if they're idle/standby?
What does smartctl -x say?

I forgot to tell you in the last response: I have smart plugs that monitor wattage on my systems.

I will try these other settings today.

The IDLE_C settings aren't saved on reboot. The 'sav' is 0 for this versus IDLE_A and IDLE_B the 'sav' is '1'.

IDLE_C 1 [cha: y, def: 0, sav: 0]

Code:
Power condition [po] mode page:
  PM_BG         0  [cha: y, def:  0, sav:  0]  Power management, background functions, precedence
  STANDBY_Y     0  [cha: y, def:  0, sav:  0]  Standby_y timer enable
  IDLE_C        1  [cha: y, def:  0, sav:  1]  Idle_c timer enable
  IDLE_B        1  [cha: y, def:  0, sav:  1]  Idle_b timer enable
  IDLE_A        1  [cha: y, def:  0, sav:  1]  Idle_a timer enable
  STANDBY_Z     0  [cha: y, def:  0, sav:  0]  Standby_z timer enable
  IACT          20  [cha: y, def:  0, sav: 20]  Idle_a condition timer (100 ms)
  SZCT          9600  [cha: y, def:  0, sav:9600]  Standby_z condition timer (100 ms)
  IBCT          4800  [cha: y, def:  0, sav:4800]  Idle_b condition timer (100 ms)
  ICCT          6000  [cha: y, def:  0, sav:6000]  Idle_c condition timer (100 ms)
  SYCT          6000  [cha: y, def:  0, sav:6000]  Standby_y condition timer (100 ms)
  CCF_IDLE      1  [cha: y, def:  1, sav:  1]  check condition if from idle_c
  CCF_STAND     1  [cha: y, def:  1, sav:  1]  check condition if from a standby
  CCF_STOPP     1  [cha: y, def:  2, sav:  1]  check condition if from stopped
Informational exceptions control [ie] mode page:
  PERF          0  [cha: y, def:  0, sav:  0]  Performance (impact of ie operations)
  EBF           0  [cha: y, def:  0, sav:  0]  Enable background function
  EWASC         1  [cha: y, def:  1, sav:  1]  Enable warning
  DEXCPT        0  [cha: y, def:  0, sav:  0]  Disable exceptions
  TEST          0  [cha: y, def:  0, sav:  0]  Test (simulate device failure)
  EBACKERR      0  [cha: y, def:  0, sav:  0]  Enable background (scan + self test) error reporting
  LOGERR        0  [cha: y, def:  0, sav:  0]  Log informational exception errors
  MRIE          4  [cha: y, def:  4, sav:  4]  Method of reporting informational exceptions
  INTT          0  [cha: y, def:  0, sav:  0]  Interval timer (100 ms)
  REPC          1  [cha: y, def:  1, sav:  1]  Report count (or Test flag number [SSC-3])
Background control (SBC) [bc] mode page:
  S_L_FULL      0  [cha: y, def:  0, sav:  0]  Suspend on log full
  LOWIR         0  [cha: y, def:  0, sav:  0]  Log only when intervention required
  EN_BMS        1  [cha: y, def:  1, sav:  1]  Enable background medium scan
  EN_PS         0  [cha: y, def:  0, sav:  0]  Enable pre-scan
  BMS_I         168  [cha: y, def:168, sav:168]  Background medium scan interval time (hour)
  BPS_TL        24  [cha: y, def:  0, sav: 24]  Background pre-scan time limit (hour)
  MIN_IDLE      2000  [cha: y, def:500, sav:2000]  Minumum idle time before background scan (ms)
  MAX_SUSP      0  [cha: y, def:  0, sav:  0]  Maximum time to suspend background scan (ms)
 
I have smart plugs that monitor wattage on my systems.
Ah, that's good.
https://www.seagate.com/files/www-c...city-3-5-hdd-10tb/_shared/docs/100840702d.pdf on page 28 you see the mode, consumption and transition states between.
There are two things...it says recovery from standby_y and z requires a command...this could be seagate in general (with HGST disks it mostly works without command, only with CCF_STAND=1 and CCF_STOPP=1 set) or this special firmware. =Possible that the standby modes are not usable with these disks at all how you would want that.
And the other thing...you have the SED version of these disks:
The standard drive models and the SED drive models have identical hardware, however the security and encryption portion of the
drive controller ASIC is enabled and functional in the SED models. This represents a small additional drain on the 5V supply of about
30mA and a commensurate increase of about 150mW in power consumption.


sdparm -s STANDBY_Z=1 -S /dev/sdX <- does this alone work and survice a reboot?

Edit:
If both the Power Condition mode page and START STOP UNIT command methods are used, the START STOP UNIT command request
takes precedence over the Power Condition mode page power control and may disable the idle condition and standby condition
timers
I think this is what happens with hd-idle. It sends STOP UNIT. This has precedence over everything and that does prevent the wake up.
 
Last edited:
Ah, that's good.
https://www.seagate.com/files/www-c...city-3-5-hdd-10tb/_shared/docs/100840702d.pdf on page 28 you see the mode, consumption and transition states between.
There are two things...it says recovery from standby_y and z requires a command...this could be seagate in general (with HGST disks it mostly works without command, only with CCF_STAND=1 and CCF_STOPP=1 set) or this special firmware. =Possible that the standby modes are not usable with these disks at all how you would want that.
And the other thing...you have the SED version of these disks:



sdparm -s STANDBY_Z=1 -S /dev/sdX <- does this alone work and survice a reboot?

Yep, this did survive the reboot. Well, a soft reboot, anyway. So did the IDLE_C parameter.

None of it is really working though, I don't think. It's running about 30W higher than I expected. When hd-idle kicks in, the system drops to 135W. It runs at about 185W now.
Edit:

I think this is what happens with hd-idle. It sends STOP UNIT. This has precedence over everything and that does prevent the wake up.
 
A stopped SAS disk will not start up automatically on access, but requires a startup command for reactivation.Useful values for SAS disks are 2 for idle and 3 for standby.

So there is no wakeup with STOP@135W.
I guess values 2 and 3 are what you've set up with sdparm anyway itself...

https://manpages.ubuntu.com/manpages/xenial/man8/sg_start.8.html
sg_start --start /dev/sdX vs sg_start --stop /dev/sdX

I think a SCSI/SAS STOP mode is a special mode and only meant for maintenance*.

Edit:
*https://www.t10.org/ftp/t10/document.08/08-126r0.pdf
page3
In this Sleep state, all functions
are stopped and no commands, except for reset may be received. The unit is consuming less power than
when in the Standby state. The Drive context is invalid in the Sleep state.
 
Last edited:
  • Like
Reactions: cmrho