Disk spin-down: What program to use and best practice today?

Hi
Sure, I would use the following repo;

If it doesn’t work as expected, roll back :wink:

New smartd version but still the same bad report
Smartd report disk as spinup and hdparm as standby.
Contrary to karlmistelberger](https://forums.opensuse.org/member.php/79833-karlmistelberger)log #26 there is no log as

**Mar 19 14:28:47 erlangen smartd[816]: Device: /dev/sdb [SAT], is in STANDBY mode, suspending checks **
Mar 20 19:15:47 localhost smartd[1131]: smartd 7.2 2021-09-14 r5237 [x86_64-linux-5.16.13-lp153.3.g9251332-default] (SUSE RPM)
...
Mar 20 19:15:47 localhost smartd[1131]: Monitoring 4 ATA/SATA, 0 SCSI/SAS and 1 NVMe devices
Mar 20 19:15:47 localhost smartd[1131]: Device: /dev/sdd [SAT], SMART Prefailure Attribute: 3 Spin_Up_Time changed from 163 to 162
Mar 20 19:15:47 localhost smartd[1131]: Device: /dev/sda [SAT], state written to /var/lib/smartmontools/smartd.WDC_WD40EFRX_68N32N0-WD_WCC7K1URKCCA.ata.state
Mar 20 19:15:47 localhost smartd[1131]: Device: /dev/sdb [SAT], state written to /var/lib/smartmontools/smartd.WDC_WD40EFRX_68N32N0-WD_WCC7K3FP1KRD.ata.state
Mar 20 19:15:47 localhost smartd[1131]: Device: /dev/sdc [SAT], state written to /var/lib/smartmontools/smartd.WDC_WD40EFRX_68WT0N0-WD_WCC4E1XXZ0TY.ata.state
Mar 20 19:15:47 localhost smartd[1131]: Device: /dev/sdd [SAT], state written to /var/lib/smartmontools/smartd.WDC_WD40EFRX_68N32N0-WD_WCC7K1LDVZ6H.ata.state
Mar 20 19:15:47 localhost smartd[1131]: Device: /dev/nvme0, state written to /var/lib/smartmontools/smartd.Samsung_SSD_980_1TB-S649NX0RC29102M.nvme.state
Mar 20 19:15:47 localhost systemd[1]: Started Self Monitoring and Reporting Technology (SMART) Daemon.
Mar 20 19:21:17 ASR5600G hd-idle[1110]: spindown: sda
Mar 20 19:21:18 ASR5600G hd-idle[1110]: spindown: sdb
Mar 20 19:21:18 ASR5600G hd-idle[1110]: spindown: sdc
Mar 20 19:21:19 ASR5600G hd-idle[1110]: spindown: sdd
Mar 20 19:45:47 ASR5600G smartd[1131]: Device: /dev/sda [SAT], SMART Usage Attribute: 194 Temperature_Celsius changed from 126 to 125
Mar 20 19:45:49 ASR5600G hd-idle[1110]: spinup: sda
Mar 20 19:45:49 ASR5600G hd-idle[1110]: spinup: sdb
Mar 20 19:45:49 ASR5600G hd-idle[1110]: spinup: sdc
Mar 20 19:45:49 ASR5600G hd-idle[1110]: spinup: sdd

~> sudo hdparm -C /dev/sda /dev/sdb /dev/sdc /dev/sdd && date
[sudo] password for root: 

/dev/sda:
 drive state is:  standby

/dev/sdb:
 drive state is:  standby

/dev/sdc:
 drive state is:  standby

/dev/sdd:
 drive state is:  standby
Sun 20 Mar 19:46:08 GMT 2022

Could be an issue with your configuration. Run exactly the following two commands from below using copy and paste. Post as follows:

**erlangen:~ #** **grep -v ^\# /etc/smartd.conf|grep -v ^\$** 
DEFAULT -d removable -s (S/../.././03|L/../(01|02|03|04|05|06|07)/7/01) 
DEVICESCAN 
**erlangen:~ #** **smartctl -n standby /dev/sdb** 
smartctl 7.2 2021-09-14 r5237 [x86_64-linux-5.16.14-1-default] (SUSE RPM) 
Copyright (C) 2002-20, Bruce Allen, Christian Franke, www.smartmontools.org 

Device is in STANDBY mode, exit(2) 
**erlangen:~ #**

By the way:

**erlangen:~ #** mount /HDD/ 
**erlangen:~ #** smartctl -n standby /dev/sdb 
smartctl 7.2 2021-09-14 r5237 [x86_64-linux-5.16.14-1-default] (SUSE RPM) 
Copyright (C) 2002-20, Bruce Allen, Christian Franke, www.smartmontools.org 

Device is in ACTIVE or IDLE mode 
**erlangen:~ #**
**erlangen:~ #** hdparm -Y /dev/sdb                     

/dev/sdb: 
 issuing sleep command 
**erlangen:~ #** smartctl -n standby /dev/sdb 
smartctl 7.2 2021-09-14 r5237 [x86_64-linux-5.16.14-1-default] (SUSE RPM) 
Copyright (C) 2002-20, Bruce Allen, Christian Franke, www.smartmontools.org 

Device is in STANDBY mode, exit(2) 
**erlangen:~ #**



Following your instructions
< 5mn after boot

> grep -v ^\# /etc/smartd.conf|grep -v ^\$
DEFAULT -d removable -s (S/../.././03|L/../(01|02|03|04|05|06|07)/7/01)
DEVICESCAN
DEFAULT -n standby
/dev/sda
/dev/sdb
/dev/sdb
/dev/sdd

~> sudo smartctl -n standby /dev/sdb
[sudo] password for root: 
smartctl 7.2 2021-09-14 r5237 [x86_64-linux-5.16.13-lp153.3.g9251332-default] (SUSE RPM)
Copyright (C) 2002-20, Bruce Allen, Christian Franke, www.smartmontools.org

Device is in ACTIVE or IDLE mode

5mn after boot

~> sudo smartctl -n standby /dev/sdb
smartctl 7.2 2021-09-14 r5237 [x86_64-linux-5.16.13-lp153.3.g9251332-default] (SUSE RPM)
Copyright (C) 2002-20, Bruce Allen, Christian Franke, www.smartmontools.org

Device is in ACTIVE or IDLE mode

~> sudo hdparm -C /dev/sda /dev/sdb /dev/sdc /dev/sdd && date

/dev/sda:
 drive state is:  standby

/dev/sdb:
 drive state is:  active/idle

/dev/sdc:
 drive state is:  standby

/dev/sdd:
 drive state is:  standby
Mon 21 Mar 09:58:02 GMT 2022

~> mount /HDD/
mount: /HDD/: can't find in /etc/fstab.

~> smartctl -n standby /dev/sdb
Absolute path to 'smartctl' is '/usr/sbin/smartctl', so running it may require superuser privileges (eg. root).
jp@ASR5600G:~> sudo smartctl -n standby /dev/sdb
smartctl 7.2 2021-09-14 r5237 [x86_64-linux-5.16.13-lp153.3.g9251332-default] (SUSE RPM)
Copyright (C) 2002-20, Bruce Allen, Christian Franke, www.smartmontools.org

Device is in ACTIVE or IDLE mode

~> sudo hdparm -Y /dev/sdb

/dev/sdb:
 issuing sleep command

~> sudo hdparm -C /dev/sda /dev/sdb /dev/sdc /dev/sdd && date

/dev/sda:
 drive state is:  standby

/dev/sdb:
 drive state is:  standby

/dev/sdc:
 drive state is:  standby

/dev/sdd:
 drive state is:  standby
**Mon 21 Mar 10:00:34 GMT 2022
**
~> sudo smartctl -n standby /dev/sdb
smartctl 7.2 2021-09-14 r5237 [x86_64-linux-5.16.13-lp153.3.g9251332-default] (SUSE RPM)
Copyright (C) 2002-20, Bruce Allen, Christian Franke, www.smartmontools.org

Device is in STANDBY mode, exit(2)

Moreover, journalctl can’t see /dev/sdb going in standby mode at the real time. Compare the 2 timestamps in bolt. 8 minutes later ???

~> sudo journalctl -b -u hd-idle.service -u systemd-suspend.service -u smartd.service
...
Mar 21 09:49:37 localhost hd-idle[1115]: hd-idle starting in nodaemon mode
Mar 21 09:49:37 localhost hd-idle[1115]:   disk: sdd timeout: 300
Mar 21 09:49:37 localhost hd-idle[1115]:   disk: sdc timeout: 300
Mar 21 09:49:37 localhost hd-idle[1115]:   disk: sdb timeout: 300
Mar 21 09:49:37 localhost hd-idle[1115]:   disk: sda timeout: 300
Mar 21 09:49:37 localhost hd-idle[1115]:   default timeout: 0
...
Mar 21 09:49:38 localhost systemd[1]: Started Self Monitoring and Reporting Technology (SMART) Daemon.
Mar 21 09:55:09 ASR5600G hd-idle[1115]: spindown: sda
Mar 21 09:55:10 ASR5600G hd-idle[1115]: spindown: sdc
Mar 21 09:55:10 ASR5600G hd-idle[1115]: spindown: sdd
**Mar 21 10:08:40 ASR5600G hd-idle[1115]: spindown: sdb**
lines 37-60/60 (END)


Still the issue that smartd spinup all disk every 30 mn. This is because the option is -n standby but should be -n standby,N. I’ll add it again now.

No evidence for -n standby,N being required on host erlangen. Changes to the configuration file require restart of the unit affected to become effective.

This is the difference we have between the 2 hosts with the same program version. I can’t understand that.

The target was to spindown the HDDs, this is done but I need now to monitor. To get a correct info as it is wrong with hd-idle, I need hdparm info. I have read it should be possible to turn hdparm into service and monitor it in journalctl.
I never did that. Do you know how to proceed?

I suggest you restart the unit and try again.

The target was to spindown the HDDs, this is done but I need now to monitor. To get a correct info as it is wrong with hd-idle, I need hdparm info. I have read it should be possible to turn hdparm into service and monitor it in journalctl.
I never did that. Do you know how to proceed?

You don’t need that. However you can use the following:

**erlangen:~ #** systemctl cat hdparm.service  
**# /etc/systemd/system/hdparm.service**
[Unit] 
Description=hdparm check status 

[Service] 
ExecStart=/usr/sbin/hdparm -C /dev/sdb 
**erlangen:~ #** systemctl cat hdparm.timer 
**# /etc/systemd/system/hdparm.timer**
[Unit] 
Description=Start hdparm service 

[Timer] 
OnBootSec=10 
OnUnitActiveSec=10 

[Install] 
WantedBy=timers.target 
**erlangen:~ #**

I always reboot the system after add a pkg or modify a config file.

~> systemctl cat hdparm.service
# /etc/systemd/system/hdparm.service
[Unit] 
Description=hdparm check status 

[Service] 
ExecStart=/usr/sbin/hdparm -C /dev/sda /dev/sdb /dev/sdc /dev/sdd

~> systemctl cat hdparm.timer
# /etc/systemd/system/hdparm.timer
[Unit] 
Description=Start hdparm service 

[Timer] 
OnBootSec=10 
OnUnitActiveSec=10 

[Install] 
WantedBy=timers.target 


I don’t know how to start it to get the log in journalctl. Let me know.

**erlangen:~ #** systemctl enable --now hdparm.timer               
Created symlink /etc/systemd/system/timers.target.wants/hdparm.timer → /etc/systemd/system/hdparm.timer. 
**erlangen:~ #** systemctl status hdparm.timer                   
**●** hdparm.timer - Start hdparm service 
     Loaded: loaded (/etc/systemd/system/hdparm.timer; enabled; vendor preset: disabled) 
     Active: **active (waiting)** since Mon 2022-03-21 19:13:32 CET; 6s ago 
    Trigger: Mon 2022-03-21 19:13:42 CET; 3s left 
   Triggers: ● hdparm.service 

Mar 21 19:13:32 erlangen systemd[1]: Started Start hdparm service. 
**erlangen:~ #** journalctl -b 0 --identifier hdparm --since 19:13 
Mar 21 19:13:32 erlangen hdparm[25478]: /dev/sdb: 
Mar 21 19:13:32 erlangen hdparm[25478]:  drive state is:  active/idle 
Mar 21 19:13:51 erlangen hdparm[25489]: /dev/sdb: 
Mar 21 19:13:51 erlangen hdparm[25489]:  drive state is:  active/idle 
Mar 21 19:14:01 erlangen hdparm[25491]: /dev/sdb: 
Mar 21 19:14:01 erlangen hdparm[25491]:  drive state is:  active/idle 
**erlangen:~ #**

OK, It’s working
However, the trigger is every minute. Is it possible that hd-idlel trig hdparm juste after the 4 spinup/spindown? No trigger every minute.
For exemple:

Mar 22 10:07:34 ASR5600G smartd[1128]: Device: /dev/sdc [SAT], starting scheduled Short Self-Test.
Mar 22 10:07:34 ASR5600G smartd[1128]: Device: /dev/sdd [SAT], SMART Usage Attribute: 194 Temperature_Celsius changed from 133 to 131
Mar 22 10:07:34 ASR5600G smartd[1128]: Device: /dev/sdd [SAT], old test of type S not run at Tue Mar 22 03:00:00 2022 GMT, starting now.
Mar 22 10:07:34 ASR5600G smartd[1128]: Device: /dev/sdd [SAT], starting scheduled Short Self-Test.
Mar 22 10:07:36 ASR5600G hd-idle[1103]: spinup: sda
Mar 22 10:07:36 ASR5600G hd-idle[1103]: spinup: sdb
Mar 22 10:07:36 ASR5600G hd-idle[1103]: spinup: sdc
Mar 22 10:07:36 ASR5600G hd-idle[1103]: spinup: sdd
**>>>>>>>>>>>> hd-idle trig hdparm here at 10:07:36 instead waiting 1mn**
Mar 22 10:08:08 ASR5600G systemd[1]: Started hdparm check status.
Mar 22 10:08:08 ASR5600G hdparm[4050]: /dev/sda:
Mar 22 10:08:08 ASR5600G hdparm[4050]:  drive state is:  active/idle
Mar 22 10:08:08 ASR5600G hdparm[4050]: /dev/sdb:
Mar 22 10:08:08 ASR5600G hdparm[4050]:  drive state is:  active/idle
Mar 22 10:08:08 ASR5600G hdparm[4050]: /dev/sdc:
Mar 22 10:08:08 ASR5600G hdparm[4050]:  drive state is:  active/idle
Mar 22 10:08:08 ASR5600G hdparm[4050]: /dev/sdd:
Mar 22 10:08:08 ASR5600G hdparm[4050]:  drive state is:  active/idle
Mar 22 10:08:08 ASR5600G systemd[1]: hdparm.service: Succeeded.
Mar 22 10:

If not possible, every 3mn is enough but I can’t see where to change

**erlangen:~ #** systemctl edit --full hdparm.timer                           
**erlangen:~ #** systemctl cat hdparm.timer         
**# /etc/systemd/system/hdparm.timer**
[Unit] 
Description=Start hdparm service 

[Timer] 
OnBootSec=0 
**OnUnitActiveSec=180 **

[Install] 
WantedBy=timers.target 
**erlangen:~ #** systemctl restart hdparm.timer                           
**erlangen:~ #** systemctl status hdparm.timer  
**●** hdparm.timer - Start hdparm service 
     Loaded: loaded (/etc/systemd/system/hdparm.timer; disabled; vendor preset: disabled) 
     Active: **active (waiting)** since Tue 2022-03-22 11:39:28 CET; 15s ago 
    Trigger: Tue 2022-03-22 11:42:28 CET; 2min 44s left 
   Triggers: ● hdparm.service 

Mar 22 11:39:28 erlangen systemd[1]: Started Start hdparm service. 
**erlangen:~ #**
**erlangen:~ #** journalctl -b --identifier hdparm                   
Mar 22 11:39:28 erlangen hdparm[7003]: /dev/sdb: 
Mar 22 11:39:28 erlangen hdparm[7003]:  drive state is:  standby 
Mar 22 11:42:30 erlangen hdparm[7092]: /dev/sdb: 
Mar 22 11:42:30 erlangen hdparm[7092]:  drive state is:  standby 
**erlangen:~ #**

Working fine.
Now I can post the log for hd-idle and hdparm in the same print.

~> sudo journalctl -b -f
...
Mar 22 17:07:31 ASR5600G systemd[1]: hdparm.service: Succeeded.
Mar 22 17:07:31 ASR5600G hdparm[3509]: /dev/sda:
Mar 22 17:07:31 ASR5600G hdparm[3509]:  drive state is:  standby
Mar 22 17:07:31 ASR5600G hdparm[3509]: /dev/sdb:
Mar 22 17:07:31 ASR5600G hdparm[3509]:  drive state is:  standby
Mar 22 17:07:31 ASR5600G hdparm[3509]: /dev/sdc:
Mar 22 17:07:31 ASR5600G hdparm[3509]:  drive state is:  standby
Mar 22 17:07:31 ASR5600G hdparm[3509]: /dev/sdd:
Mar 22 17:07:31 ASR5600G hdparm[3509]:  drive state is:  standby
Mar 22 17:09:52 ASR5600G smartd[1129]: Device: /dev/sda [SAT], SMART Usage Attribute: 194 Temperature_Celsius changed from 132 to 130
Mar 22 17:09:52 ASR5600G smartd[1129]: Device: /dev/sdb [SAT], SMART Usage Attribute: 194 Temperature_Celsius changed from 132 to 130
Mar 22 17:09:52 ASR5600G smartd[1129]: Device: /dev/sdc [SAT], SMART Usage Attribute: 194 Temperature_Celsius changed from 133 to 131
Mar 22 17:09:52 ASR5600G smartd[1129]: Device: /dev/sdd [SAT], SMART Usage Attribute: 194 Temperature_Celsius changed from 133 to 130
**Mar 22 17:09:54 ASR5600G hd-idle[1107]: spinup: sda**
Mar 22 17:09:54 ASR5600G hd-idle[1107]: spinup: sdb
Mar 22 17:09:54 ASR5600G hd-idle[1107]: spinup: sdc
Mar 22 17:09:54 ASR5600G hd-idle[1107]: spinup: sdd
Mar 22 17:10:29 ASR5600G chronyd[1325]: Source 2001:67c:440:257:91:236:251:234 replaced with 89.234.64.77
Mar 22 17:11:31 ASR5600G systemd[1]: Started hdparm check status.
**Mar 22 17:11:31 ASR5600G hdparm[3583]: /dev/sda:
Mar 22 17:11:31 ASR5600G hdparm[3583]:  drive state is:  standby**
Mar 22 17:11:31 ASR5600G hdparm[3583]: /dev/sdb:
Mar 22 17:11:31 ASR5600G hdparm[3583]:  drive state is:  standby
Mar 22 17:11:31 ASR5600G hdparm[3583]: /dev/sdc:
Mar 22 17:11:31 ASR5600G hdparm[3583]:  drive state is:  standby
Mar 22 17:11:31 ASR5600G hdparm[3583]: /dev/sdd:
Mar 22 17:11:31 ASR5600G hdparm[3583]:  drive state is:  standby
Mar 22 17:11:31 ASR5600G systemd[1]: hdparm.service: Succeeded.
Mar 22 17:14:54 ASR5600G hd-idle[1107]: spindown: sda
Mar 22 17:14:54 ASR5600G hd-idle[1107]: spindown: sdb
Mar 22 17:14:54 ASR5600G hd-idle[1107]: spindown: sdc
Mar 22 17:14:54 ASR5600G hd-idle[1107]: spindown: sdd
Mar 22 17:15:31 ASR5600G systemd[1]: Started hdparm check status.
...
Mar 22 17:39:31 ASR5600G hdparm[4057]: /dev/sda:
Mar 22 17:39:31 ASR5600G hdparm[4057]:  drive state is:  standby
Mar 22 17:39:31 ASR5600G hdparm[4057]: /dev/sdb:
Mar 22 17:39:31 ASR5600G hdparm[4057]:  drive state is:  standby
Mar 22 17:39:31 ASR5600G hdparm[4057]: /dev/sdc:
Mar 22 17:39:31 ASR5600G hdparm[4057]:  drive state is:  standby
Mar 22 17:39:31 ASR5600G hdparm[4057]: /dev/sdd:
Mar 22 17:39:31 ASR5600G hdparm[4057]:  drive state is:  standby
Mar 22 17:39:53 ASR5600G rsyslogd[1318]: -- MARK --
**Mar 22 17:39:54 ASR5600G hd-idle[1107]: spinup: sda**
Mar 22 17:39:54 ASR5600G hd-idle[1107]: spinup: sdb
Mar 22 17:39:54 ASR5600G hd-idle[1107]: spinup: sdc
Mar 22 17:39:54 ASR5600G hd-idle[1107]: spinup: sdd
Mar 22 17:40:21 ASR5600G chronyd[1325]: Source 2600:3c01::f03c:91ff:febf:c641 replaced with 2606:4700:f1::123
Mar 22 17:43:31 ASR5600G systemd[1]: Started hdparm check status.
**Mar 22 17:43:31 ASR5600G hdparm[4120]: /dev/sda:
Mar 22 17:43:31 ASR5600G hdparm[4120]:  drive state is:  standby**
Mar 22 17:43:31 ASR5600G hdparm[4120]: /dev/sdb:
Mar 22 17:43:31 ASR5600G hdparm[4120]:  drive state is:  standby
Mar 22 17:43:31 ASR5600G hdparm[4120]: /dev/sdc:
Mar 22 17:43:31 ASR5600G hdparm[4120]:  drive state is:  standby
Mar 22 17:43:31 ASR5600G hdparm[4120]: /dev/sdd:
Mar 22 17:43:31 ASR5600G hdparm[4120]:  drive state is:  standby
Mar 22 17:43:31 ASR5600G systemd[1]: hdparm.service: Succeeded.
**Mar 22 17:44:54 ASR5600G hd-idle[1107]: spindown: sda**
Mar 22 17:44:54 ASR5600G hd-idle[1107]: spindown: sdb
Mar 22 17:44:54 ASR5600G hd-idle[1107]: spindown: sdc
Mar 22 17:44:54 ASR5600G hd-idle[1107]: spindown: sdd
Mar 22 17:47:31 ASR5600G systemd[1]: Started hdparm check status.
**Mar 22 17:47:31 ASR5600G hdparm[4201]: /dev/sda:
Mar 22 17:47:31 ASR5600G hdparm[4201]:  drive state is:  standby**
Mar 22 17:47:31 ASR5600G hdparm[4201]: /dev/sdb:
Mar 22 17:47:31 ASR5600G hdparm[4201]:  drive state is:  standby
Mar 22 17:47:31 ASR5600G hdparm[4201]: /dev/sdc:
Mar 22 17:47:31 ASR5600G hdparm[4201]:  drive state is:  standby
Mar 22 17:47:31 ASR5600G hdparm[4201]: /dev/sdd:
Mar 22 17:47:31 ASR5600G hdparm[4201]:  drive state is:  standby
Mar 22 17:47:31 ASR5600G systemd[1]: hdparm.service: Succeeded.

See in bold. And I can confirm, all HDD stay spundown.
What do you call that, a bug or something else?
Anyway, I’ll monitor to set time at the best.

The above is inconclusive as configuration information is missing.

I ran the following test:

Default configuration of smartd:

**erlangen:~ #** rpm -V smartmontools                        
**erlangen:~ #** grep -v ^\# /etc/smartd.conf|grep -v ^\$                                            
DEFAULT -d removable -s (S/../.././03|L/../(01|02|03|04|05|06|07)/7/01) 
DEVICESCAN 
**erlangen:~ #**

Reduced check interval to 10 seconds:

**erlangen:~ #** grep -v ^\# /etc/sysconfig/smartmontools|grep -v ^\$              
SMARTD_CHECK_INTERVAL="10" 
SMARTD_LOG_FACILITY="daemon" 
SMARTD_DRIVEDB="" 
SMARTD_SAVESTATES="yes" 
SMARTD_ATTRLOG="yes" 
SMARTD_EXTRA_OPTS="" 
**erlangen:~ #**

hd-idle is configured to spin down disk on 3 idle seconds:

**erlangen:~ #** grep -v ^\# /etc/default/hd-idle|grep -v ^\$                        
HD_IDLE_OPTS="-i 0 -a /dev/disk/by-id/scsi-SATA_WDC_WD40EZRX-22S_WD-WCC4E2FYXSNV -i 3" 
**erlangen:~ #**

Started smartd and stopped it after some time elapsed:

**erlangen:~ #** journalctl --since 7:35 -u smartd.service -u hd-idle.service -g sdb      
Mar 23 07:35:08 erlangen smartd[29040]: Device: /dev/sdb, type changed from 'scsi' to 'sat' 
Mar 23 07:35:08 erlangen smartd[29040]: Device: /dev/sdb [SAT], opened 
Mar 23 07:35:08 erlangen smartd[29040]: Device: /dev/sdb [SAT], WDC WD40EZRX-22SPEB0, S/N:WD-WCC4E2FYXSNV, WWN:5-0014ee-262d2e71e, FW:80.00A80, 4.00 TB 
Mar 23 07:35:08 erlangen smartd[29040]: Device: /dev/sdb [SAT], found in smartd database: Western Digital Green 
Mar 23 07:35:09 erlangen hd-idle[28986]: spinup: sdb 
Mar 23 07:35:12 erlangen hd-idle[28986]: spindown: sdb 
Mar 23 07:35:17 erlangen smartd[29040]: Device: /dev/sdb [SAT], is SMART capable. Adding to "monitor" list. 
Mar 23 07:35:17 erlangen smartd[29040]: Device: /dev/sdb [SAT], state read from /var/lib/smartmontools/smartd.WDC_WD40EZRX_22SPEB0-WD_WCC4E2FYXSNV.ata.state 
Mar 23 07:35:17 erlangen smartd[29040]: **Device: /dev/****sdb**** [SAT], 4 Currently unreadable (pending) sectors**
Mar 23 07:35:17 erlangen smartd[29040]: **Device: /dev/****sdb**** [SAT], 1 Offline uncorrectable sectors**
Mar 23 07:35:17 erlangen smartd[29040]: Device: /dev/sdb [SAT], SMART Prefailure Attribute: 3 Spin_Up_Time changed from 180 to 181 
Mar 23 07:35:17 erlangen smartd[29040]: Device: /dev/sdb [SAT], SMART Usage Attribute: 194 Temperature_Celsius changed from 123 to 121 
Mar 23 07:35:17 erlangen smartd[29040]: Device: /dev/sdb [SAT], state written to /var/lib/smartmontools/smartd.WDC_WD40EZRX_22SPEB0-WD_WCC4E2FYXSNV.ata.state 
Mar 23 07:35:18 erlangen hd-idle[28986]: spinup: sdb 
Mar 23 07:35:21 erlangen hd-idle[28986]: spindown: sdb 
Mar 23 07:35:27 erlangen smartd[29040]: **Device: /dev/****sdb**** [SAT], 4 Currently unreadable (pending) sectors**
Mar 23 07:35:27 erlangen smartd[29040]: **Device: /dev/****sdb**** [SAT], 1 Offline uncorrectable sectors**
Mar 23 07:35:28 erlangen hd-idle[28986]: spinup: sdb 
Mar 23 07:35:31 erlangen hd-idle[28986]: spindown: sdb 
Mar 23 07:35:37 erlangen smartd[29040]: **Device: /dev/****sdb**** [SAT], 4 Currently unreadable (pending) sectors**
Mar 23 07:35:37 erlangen smartd[29040]: **Device: /dev/****sdb**** [SAT], 1 Offline uncorrectable sectors**
Mar 23 07:35:38 erlangen hd-idle[28986]: spinup: sdb 
Mar 23 07:35:41 erlangen hd-idle[28986]: spindown: sdb 
Mar 23 07:35:47 erlangen smartd[29040]: **Device: /dev/****sdb**** [SAT], 4 Currently unreadable (pending) sectors**
Mar 23 07:35:47 erlangen smartd[29040]: **Device: /dev/****sdb**** [SAT], 1 Offline uncorrectable sectors**
Mar 23 07:35:48 erlangen hd-idle[28986]: spinup: sdb 
Mar 23 07:35:48 erlangen smartd[29040]: Device: /dev/sdb [SAT], state written to /var/lib/smartmontools/smartd.WDC_WD40EZRX_22SPEB0-WD_WCC4E2FYXSNV.ata.state 
Mar 23 07:35:51 erlangen hd-idle[28986]: spindown: sdb 
**erlangen:~ #**

With the above configuration smartd.service indeed spins up the disk every 10 seconds and hd-idle.service reports spinup and performs spindown of the disk after 3 seconds.

Changed configuration to skip testing if in standby mode:

**erlangen:~ #** grep -v ^\# /etc/smartd.conf|grep -v ^\$                             
DEFAULT -d removable -s (S/../.././03|L/../(01|02|03|04|05|06|07)/7/01) **-n standby** 
DEVICESCAN 
**erlangen:~ #**

Rerunning of test:

**erlangen:~ #** journalctl --since 7:38 -u smartd.service -u hd-idle.service -g sdb              
Mar 23 07:48:19 erlangen smartd[29283]: Device: /dev/sdb, type changed from 'scsi' to 'sat' 
Mar 23 07:48:19 erlangen smartd[29283]: Device: /dev/sdb [SAT], opened 
Mar 23 07:48:19 erlangen smartd[29283]: Device: /dev/sdb [SAT], WDC WD40EZRX-22SPEB0, S/N:WD-WCC4E2FYXSNV, WWN:5-0014ee-262d2e71e, FW:80.00A80, 4.00 TB 
Mar 23 07:48:19 erlangen smartd[29283]: Device: /dev/sdb [SAT], found in smartd database: Western Digital Green 
Mar 23 07:48:19 erlangen hd-idle[28986]: spinup: sdb 
Mar 23 07:48:22 erlangen hd-idle[28986]: spindown: sdb 
Mar 23 07:48:28 erlangen smartd[29283]: Device: /dev/sdb [SAT], is SMART capable. Adding to "monitor" list. 
Mar 23 07:48:28 erlangen smartd[29283]: Device: /dev/sdb [SAT], state read from /var/lib/smartmontools/smartd.WDC_WD40EZRX_22SPEB0-WD_WCC4E2FYXSNV.ata.state 
Mar 23 07:48:29 erlangen hd-idle[28986]: spinup: sdb 
Mar 23 07:48:32 erlangen hd-idle[28986]: spindown: sdb 
Mar 23 07:48:33 erlangen smartd[29283]: Device: /dev/sdb [SAT], is in STANDBY mode, suspending checks 
Mar 23 07:48:33 erlangen smartd[29283]: Device: /dev/sdb [SAT], state written to /var/lib/smartmontools/smartd.WDC_WD40EZRX_22SPEB0-WD_WCC4E2FYXSNV.ata.state 
Mar 23 07:49:03 erlangen smartd[29283]: Device: /dev/sdb [SAT], state written to /var/lib/smartmontools/smartd.WDC_WD40EZRX_22SPEB0-WD_WCC4E2FYXSNV.ata.state 
**erlangen:~ #**

smartd.service now suspends checking.

Set hd-idle interval to 300 seconds and rerun:

**erlangen:~ #** journalctl --since 8:00 -u smartd.service -u hd-idle.service -g sdb 
Mar 23 08:01:57 erlangen hd-idle[29523]:   disk: sdb timeout: 300 
Mar 23 08:06:57 erlangen hd-idle[29523]: spindown: sdb 
Mar 23 08:07:40 erlangen smartd[29677]: Device: /dev/sdb, type changed from 'scsi' to 'sat' 
Mar 23 08:07:40 erlangen smartd[29677]: Device: /dev/sdb [SAT], opened 
Mar 23 08:07:40 erlangen smartd[29677]: Device: /dev/sdb [SAT], WDC WD40EZRX-22SPEB0, S/N:WD-WCC4E2FYXSNV, WWN:5-0014ee-262d2e71e, FW:80.00A80, 4.00 TB 
Mar 23 08:07:41 erlangen smartd[29677]: Device: /dev/sdb [SAT], found in smartd database: Western Digital Green 
Mar 23 08:07:49 erlangen smartd[29677]: Device: /dev/sdb [SAT], is SMART capable. Adding to "monitor" list. 
Mar 23 08:07:49 erlangen smartd[29677]: Device: /dev/sdb [SAT], state read from /var/lib/smartmontools/smartd.WDC_WD40EZRX_22SPEB0-WD_WCC4E2FYXSNV.ata.state 
Mar 23 08:07:49 erlangen smartd[29677]: **Device: /dev/****sdb**** [SAT], 4 Currently unreadable (pending) sectors**
Mar 23 08:07:49 erlangen smartd[29677]: **Device: /dev/****sdb**** [SAT], 1 Offline uncorrectable sectors**
Mar 23 08:07:49 erlangen smartd[29677]: Device: /dev/sdb [SAT], SMART Prefailure Attribute: 3 Spin_Up_Time changed from 181 to 182 
Mar 23 08:07:49 erlangen smartd[29677]: Device: /dev/sdb [SAT], SMART Usage Attribute: 194 Temperature_Celsius changed from 121 to 123 
Mar 23 08:07:49 erlangen smartd[29677]: Device: /dev/sdb [SAT], state written to /var/lib/smartmontools/smartd.WDC_WD40EZRX_22SPEB0-WD_WCC4E2FYXSNV.ata.state 
Mar 23 08:07:57 erlangen hd-idle[29523]: spinup: sdb 
Mar 23 08:07:59 erlangen smartd[29677]: **Device: /dev/****sdb**** [SAT], 4 Currently unreadable (pending) sectors**
Mar 23 08:07:59 erlangen smartd[29677]: **Device: /dev/****sdb**** [SAT], 1 Offline uncorrectable sectors**
Mar 23 08:08:09 erlangen smartd[29677]: **Device: /dev/****sdb**** [SAT], 4 Currently unreadable (pending) sectors**
Mar 23 08:08:09 erlangen smartd[29677]: **Device: /dev/****sdb**** [SAT], 1 Offline uncorrectable sectors**
Mar 23 08:08:19 erlangen smartd[29677]: **Device: /dev/****sdb**** [SAT], 4 Currently unreadable (pending) sectors**
Mar 23 08:08:19 erlangen smartd[29677]: **Device: /dev/****sdb**** [SAT], 1 Offline uncorrectable sectors**
Mar 23 08:08:30 erlangen smartd[29677]: **Device: /dev/****sdb**** [SAT], 4 Currently unreadable (pending) sectors**
Mar 23 08:08:30 erlangen smartd[29677]: **Device: /dev/****sdb**** [SAT], 1 Offline uncorrectable sectors**
Mar 23 08:08:39 erlangen smartd[29677]: **Device: /dev/****sdb**** [SAT], 4 Currently unreadable (pending) sectors**
Mar 23 08:08:39 erlangen smartd[29677]: **Device: /dev/****sdb**** [SAT], 1 Offline uncorrectable sectors**
Mar 23 08:08:48 erlangen smartd[29677]: Device: /dev/sdb [SAT], state written to /var/lib/smartmontools/smartd.WDC_WD40EZRX_22SPEB0-WD_WCC4E2FYXSNV.ata.state 
Mar 23 08:13:57 erlangen hd-idle[29523]: spindown: sdb 
**erlangen:~ #**

Back to default:

**erlangen:~ #** rpm -V smartmontools  
**erlangen:~ #** grep -v ^\# /etc/smartd.conf|grep -v ^\$                            
DEFAULT -d removable -s (S/../.././03|L/../(01|02|03|04|05|06|07)/7/01) 
DEVICESCAN 
**erlangen:~ #**
**erlangen:~ #** journalctl --since 8:30 -u smartd.service -u hd-idle.service -g sdb 
Mar 23 08:30:07 erlangen smartd[30556]: **Device: /dev/****sdb**** [SAT], 4 Currently unreadable (pending) sectors**
Mar 23 08:30:07 erlangen smartd[30556]: **Device: /dev/****sdb**** [SAT], 1 Offline uncorrectable sectors**
Mar 23 08:30:18 erlangen smartd[30556]: Device: /dev/sdb [SAT], not capable of SMART self-check 
Mar 23 08:30:18 erlangen smartd[30556]: **Device: /dev/****sdb**** [SAT], 4 Currently unreadable (pending) sectors**
Mar 23 08:30:18 erlangen smartd[30556]: **Device: /dev/****sdb**** [SAT], 1 Offline uncorrectable sectors**
Mar 23 08:30:27 erlangen smartd[30556]: **Device: /dev/****sdb**** [SAT], 4 Currently unreadable (pending) sectors**
Mar 23 08:30:27 erlangen smartd[30556]: **Device: /dev/****sdb**** [SAT], 1 Offline uncorrectable sectors**
Mar 23 08:30:37 erlangen smartd[30556]: **Device: /dev/****sdb**** [SAT], 4 Currently unreadable (pending) sectors**
Mar 23 08:30:37 erlangen smartd[30556]: **Device: /dev/****sdb**** [SAT], 1 Offline uncorrectable sectors**
Mar 23 08:30:47 erlangen smartd[30556]: **Device: /dev/****sdb**** [SAT], 4 Currently unreadable (pending) sectors**
Mar 23 08:30:47 erlangen smartd[30556]: **Device: /dev/****sdb**** [SAT], 1 Offline uncorrectable sectors**
Mar 23 08:30:57 erlangen smartd[30556]: **Device: /dev/****sdb**** [SAT], 4 Currently unreadable (pending) sectors**
Mar 23 08:30:57 erlangen smartd[30556]: **Device: /dev/****sdb**** [SAT], 1 Offline uncorrectable sectors**
Mar 23 08:31:02 erlangen smartd[30556]: Device: /dev/sdb [SAT], state written to /var/lib/smartmontools/smartd.WDC_WD40EZRX_22SPEB0-WD_WCC4E2FYXSNV.ata.state 
Mar 23 08:35:58 erlangen hd-idle[29523]: spindown: sdb 
**erlangen:~ #**

Does reboot change behavior?

**erlangen:~ #** journalctl -b -u smartd.service -u hd-idle.service -g sdb           
Mar 23 09:57:12 erlangen hd-idle[760]:   disk: sdb timeout: 300 
Mar 23 10:02:42 erlangen hd-idle[760]: spindown: sdb 
Mar 23 10:03:56 erlangen smartd[2757]: Device: /dev/sdb, type changed from 'scsi' to 'sat' 
Mar 23 10:03:56 erlangen smartd[2757]: Device: /dev/sdb [SAT], opened 
Mar 23 10:03:56 erlangen smartd[2757]: Device: /dev/sdb [SAT], WDC WD40EZRX-22SPEB0, S/N:WD-WCC4E2FYXSNV, WWN:5-0014ee-262d2e71e, FW:80.00A80, 4.00 TB 
Mar 23 10:03:56 erlangen smartd[2757]: Device: /dev/sdb [SAT], found in smartd database: Western Digital Green 
Mar 23 10:04:05 erlangen smartd[2757]: Device: /dev/sdb [SAT], is SMART capable. Adding to "monitor" list. 
Mar 23 10:04:05 erlangen smartd[2757]: Device: /dev/sdb [SAT], state read from /var/lib/smartmontools/smartd.WDC_WD40EZRX_22SPEB0-WD_WCC4E2FYXSNV.ata.state 
Mar 23 10:04:05 erlangen smartd[2757]: **Device: /dev/****sdb**** [SAT], 4 Currently unreadable (pending) sectors**
Mar 23 10:04:05 erlangen smartd[2757]: **Device: /dev/****sdb**** [SAT], 1 Offline uncorrectable sectors**
Mar 23 10:04:05 erlangen smartd[2757]: Device: /dev/sdb [SAT], state written to /var/lib/smartmontools/smartd.WDC_WD40EZRX_22SPEB0-WD_WCC4E2FYXSNV.ata.state 
Mar 23 10:04:12 erlangen hd-idle[760]: spinup: sdb 
Mar 23 10:04:15 erlangen smartd[2757]: **Device: /dev/****sdb**** [SAT], 4 Currently unreadable (pending) sectors**
Mar 23 10:04:15 erlangen smartd[2757]: **Device: /dev/****sdb**** [SAT], 1 Offline uncorrectable sectors**
Mar 23 10:04:25 erlangen smartd[2757]: **Device: /dev/****sdb**** [SAT], 4 Currently unreadable (pending) sectors**
Mar 23 10:04:25 erlangen smartd[2757]: **Device: /dev/****sdb**** [SAT], 1 Offline uncorrectable sectors**
Mar 23 10:04:35 erlangen smartd[2757]: **Device: /dev/****sdb**** [SAT], 4 Currently unreadable (pending) sectors**
Mar 23 10:04:35 erlangen smartd[2757]: **Device: /dev/****sdb**** [SAT], 1 Offline uncorrectable sectors**
Mar 23 10:04:45 erlangen smartd[2757]: **Device: /dev/****sdb**** [SAT], 4 Currently unreadable (pending) sectors**
Mar 23 10:04:45 erlangen smartd[2757]: **Device: /dev/****sdb**** [SAT], 1 Offline uncorrectable sectors**
Mar 23 10:04:55 erlangen smartd[2757]: **Device: /dev/****sdb**** [SAT], 4 Currently unreadable (pending) sectors**
Mar 23 10:04:55 erlangen smartd[2757]: **Device: /dev/****sdb**** [SAT], 1 Offline uncorrectable sectors**
Mar 23 10:05:05 erlangen smartd[2757]: **Device: /dev/****sdb**** [SAT], 4 Currently unreadable (pending) sectors**
Mar 23 10:05:05 erlangen smartd[2757]: **Device: /dev/****sdb**** [SAT], 1 Offline uncorrectable sectors**
Mar 23 10:05:10 erlangen smartd[2757]: Device: /dev/sdb [SAT], state written to /var/lib/smartmontools/smartd.WDC_WD40EZRX_22SPEB0-WD_WCC4E2FYXSNV.ata.state 
Mar 23 10:10:12 erlangen hd-idle[760]: spindown: sdb 
**erlangen:~ #**

Nope.

I am not certain to understand everything in your test. Sorry for my ignorance.
Correct me If I am wrong;
In your above code, I see, the device spindown, smartd can’t access the device (this is expected), then the device spinup, smartd still can’t access the device (not expected). Why?
Did you check physically the HDD is in fact spinning? This is why I added hdparm, it reports the real HDD state.

Thank you for your time.

hd-idle.service starts on boot at 09:57:12. Disk is idle for 300 seconds and spun down at 10:02:42. smartd.service starts at 10:03:56 and spins up disk. Note the 9 seconds delay until spinup is complete at 10:04:05.

Did you check physically the HDD is in fact spinning? This is why I added hdparm, it reports the real HDD state.

I verified state by running hdparm -C /dev/sdb:

[FONT=monospace]**erlangen:~ #** systemctl enable --now smartd.service                                
Created symlink /etc/systemd/system/multi-user.target.wants/smartd.service → /usr/lib/systemd/system/smartd.service. 
**erlangen:~ #** hdparm -C /dev/sdb                               

/dev/sdb: 
 drive state is:  active/idle 
**erlangen:~ #**[/FONT]

Disks have their own internal timeout: hdparm - ArchWiki. erlangen’s WD40EZRX-22SPEB0 comes with a (brain dead) Intellipark feature. I disabled it and use hd-idle instead: http://idle3-tools.sourceforge.net/

.

[FONT=monospace][FONT=arial]But why smartd can’t read the device from 10:04:15 -> 10:04:35?
[/FONT][/FONT]

Disks have their own internal timeout: hdparm - ArchWiki. erlangen’s WD40EZRX-22SPEB0 comes with a (brain dead) Intellipark feature. I disabled it and use hd-idle instead: http://idle3-tools.sourceforge.net/

Strange as in my previous install 15.2 I never got the spindown of the HDDs. It’s why I am here now. Maybe the default WD firmware is good enough for my use-case if it’s run efficiently!
Why did you disable it and use hd-idle? What are the pro and con?

[FONT=monospace][FONT=arial]
This is a misrepresentation of facts. smartctl actually reads the disk and notifies of damaged sectors.
[/FONT][/FONT]

Strange as in my previous install 15.2 I never got the spindown of the HDDs. It’s why I am here now. Maybe the default WD firmware is good enough for my use-case if it’s run efficiently!

Show the exact data of your disks:

**erlangen:~ #** inxi -zD 
**Drives:    Local Storage:****total:** 7.28 TiB **used:** 1.7 TiB (23.3%) 
           **ID-1:** /dev/nvme0n1 **vendor:** Samsung **model:** SSD 970 EVO Plus 2TB **size:** 1.82 TiB 
           **ID-2:** /dev/sda **vendor:** Crucial **model:** CT2000BX500SSD1 **size:** 1.82 TiB 
           **ID-3:** /dev/sdb **vendor:** Western Digital **model:** WD40EZRX-22SPEB0 **size:** 3.64 TiB 
**erlangen:~ #**

Your drives could be affected by excessive parking: Monitoring (and preventing) excessive hard drive head parking on Linux | タリ

Why did you disable it and use hd-idle? What are the pro and con?

hd-idle works. Internal power management didn’t work properly for the WD40EZRX-22SPEB0.

~> inxi -zD
Drives:
  Local Storage: total: 15.46 TiB used: 8.94 TiB (57.8%)
  ID-1: /dev/nvme0n1 vendor: Samsung model: SSD 980 1TB size: 931.51 GiB
  ID-2: /dev/sda vendor: Western Digital model: WD40EFRX-68N32N0
    size: 3.64 TiB
  ID-3: /dev/sdb vendor: Western Digital model: WD40EFRX-68N32N0
    size: 3.64 TiB
  ID-4: /dev/sdc vendor: Western Digital model: WD40EFRX-68WT0N0
    size: 3.64 TiB
  ID-5: /dev/sdd vendor: Western Digital model: WD40EFRX-68N32N0
    size: 3.64 TiB


You may show all smart attributes for all drives:

**erlangen:~ #** smartctl -A /dev/sdb 
smartctl 7.2 2021-09-14 r5237 [x86_64-linux-5.16.15-1-default] (SUSE RPM) 
Copyright (C) 2002-20, Bruce Allen, Christian Franke, www.smartmontools.org 

=== START OF READ SMART DATA SECTION === 
SMART Attributes Data Structure revision number: 16 
Vendor Specific SMART Attributes with Thresholds: 
ID# ATTRIBUTE_NAME          FLAG     VALUE WORST THRESH TYPE      UPDATED  WHEN_FAILED RAW_VALUE 
  1 Raw_Read_Error_Rate     0x002f   200   200   051    Pre-fail  Always       -       726 
  3 Spin_Up_Time            0x0027   179   175   021    Pre-fail  Always       -       8008 
  4 Start_Stop_Count        0x0032   093   093   000    Old_age   Always       -       7759 
  5 Reallocated_Sector_Ct   0x0033   200   200   140    Pre-fail  Always       -       0 
  7 Seek_Error_Rate         0x002e   200   200   000    Old_age   Always       -       0 
  9 Power_On_Hours          0x0032   082   082   000    Old_age   Always       -       13823 
 10 Spin_Retry_Count        0x0032   100   100   000    Old_age   Always       -       0 
 11 Calibration_Retry_Count 0x0032   100   100   000    Old_age   Always       -       0 
 12 Power_Cycle_Count       0x0032   098   098   000    Old_age   Always       -       2920 
192 Power-Off_Retract_Count 0x0032   200   200   000    Old_age   Always       -       81 
193 Load_Cycle_Count        0x0032   198   198   000    Old_age   Always       -       7708 
194 Temperature_Celsius     0x0022   113   110   000    Old_age   Always       -       39 
196 Reallocated_Event_Count 0x0032   200   200   000    Old_age   Always       -       0 
197 Current_Pending_Sector  0x0032   200   200   000    Old_age   Always       -       4 
198 Offline_Uncorrectable   0x0030   200   200   000    Old_age   Offline      -       1 
199 UDMA_CRC_Error_Count    0x0032   200   200   000    Old_age   Always       -       0 
200 Multi_Zone_Error_Rate   0x0008   200   200   000    Old_age   Offline      -       120 

**erlangen:~ #**