This is a freshly installed system, I do not have any apps, sysytem dataset pool: boot-pool, 2 HDDs in raid 1
No client is connected. What is strange is that the drives spin up only for a dozen of so seconds and the go back to spin down. When I connect a client, the drives spin up and work normally for 20 minutes, then go to spin down.
Have you checked your SMART service?
By default it checks disks every 30 min
Help: Check Interval
Define a number of minutes for smartd to wake up and check if any tests are configured to run.
Yes, that was the cause. I set Power Mode to Standby and the drives don’t spin up. Thanks for the help.
Sadly this option is now gone in 25.10 and my disks are forever spinning.
That would be an issue for me. Did you already find a way to solve this on 25.10?
Just stumbled upon this thread as I was wondering why my HDDs don’t spin down in 25.10-RC1. Downgraded to 24.04 and I can confirm that I have the S.M.A.R.T. service under System → Services and I can correctly set it to “Standby”. Am I missing something fundamental here? This is quite the downgrade.
Edit: found it, it is actually in the release notes “TrueNAS 25.10 removes the built-in SMART test scheduling and monitoring […] TrueNAS maintains monitoring of critical disk health indicators and automatically migrates existing scheduled SMART tests to cron tasks during upgrade.” Checked it: no cron jobs migrated but disks are now permanently kept from spinning down.
I already ditched one TrueNas installation for ProxMox because of the inability to provide proper GPU isolation (and the now removed “legacy” NVIDIA drivers). Seems like time to say goodbye to my 2nd and last TrueNas server as well.
Hope they have enough paying subscribers who don’t care about power saving. Sigh.
I think that’s not the reason. Even when stopping smartmontools and smartd on 25.10 RC.1, the disks wake up a few minutes after spinning down.
I think you are right. I just created an overlay on the middleware files that called smartctl and added ‘-n standby’ arguments to all calls and that alone did not fix it. So what could it be?
I have tracked it down to the services middlewared and netdata. Only when I stop both of them, the harddisk stays in a spin-down state.
Note that the disk in question is not even part of a pool, so I do not understand why Truenas is touching it on a regular basis.
I have tried to enable HDD standby in Truenas disk settings because it states “Temperature monitoring is disabled for standby disks”, but it did not change anything - still middlewared and netstat wake up the drive on a regular basis.
At this point I am not able to track it down any further. The issue seems to be a bug introduced with 25.10; earlier versions do not show this behavior.
Any further ideas?
Part of it seems to be the temperature monitoring. Inside /usr/lib/python3/dist-packages/middlewared/utils/disks_/disk_class.py there is a method called temp. As soon as I stop that method from actually polling the temperature through hwmon (I just have it return None values), the disks happily sleep after a few minutes.
Now the peculiar thing is: temp polling does not actually wake my disks (WD120EFBX in case anyone wonders) once they are asleep; it just weirdly enough seems to stop them from ever sleeping. Netdata being enabled causes no problems for me here.
EDIT: see my post below. I was just impatient
The above works as long as the disks are not part of an active pool. I still can’t get my disks to sleep by themselves when they are part of an active pool (i.e. not exported). This is even with netdata disabled. I can send them to sleep manually, and they stay asleep (meaning there is no I/O on them), but they just don’t sleep by themselves.
For the record, I still have my middleware hack active where I add a ‘-n standby’ to every smartctl call, which might contribute to the disks staying asleep.
Forget what I said earlier, it works in 25.10-RC.1 after preventing temp measurements from being taken. Disks just don’t spin down immediately after the 5min I set them to, but they eventually spin down:
- RAIDZ2 pool is active (not exported)
- Datasets on the disks are unlocked
- Datasets have active SMB shares on them
- My Jellyfin media is served from one of the Datasets on the pool
The pool:
- does not contain the apps datasets
- does not contain the system dataset
So it looks like it was the temperature polling after all (and maybe the -n standby). I will bisect this at some point but for now I am just happy my disks are asleep again when they should be.
Thank you for following up. This is matching my observation, that even if a disk is configured for HDD Standby (where Truenas used to stop temperature monitoring), temperatures are still listed in the reporting tab.
smartmontools shouldn’t be the reason in my point if view, since /etc/smartd.conf already contains -n standby, which should apply to all disks.
@AndBu could you please double check whether keeping smartmontools running makes any difference? For me, disk keep spun down without needing to change anything w.r.t. smart.
I have reported a bug w.r.t. this issue here: Jira
I’m running TrueNAS Core as well and my drives definitely do spin down with SMART enabled in the GUI. With both ZFS arrays and iSCSI devices directly shared. Note, I only have a boot pool other than those, no log/l2arc/whatever.
I have the server running on a smart plug which can measure the power usage. Spindown lowers the drive power usage considerably, so this way I can tell that some drives are down or not.
On a quiet night I can also physically hear it when my z1 array spins up, enterprise drives can get pretty loud.
We are talking about Truenas SCALE here, and there you can do a:
#hdparm -C /dev/sdX,
where /dev/sdX is the device you want to query. If the output is standby it is spun down. If it reads active/idle, it is not spun down.
I have never used TrueNas Core or any other *BSD-based system, so I don’t know how you could check it there.
Doesn’t seem like they have an interest in fixing this regression for the 25.10 release.
Correct, found this thread when I noticed my disks where not spinning down anymore after the update.
To add a bit more info, the drivetemp kernel documentation mentions this exact problem:
So as mentioned on Disks | TrueNAS Documentation Hub , temperature monitoring really needs to be disabled for standby disks to avoid this problem.
Correct, in the docs it says: “Temperature monitoring is disabled for standby disks.” except … it is not, the pool with standby disks still shows temperature.
And there does not seem to be a way to disable temp monitoring manually, unless I am missing something.
-edit-
It has been reported as a bug already: Jira
Is there a workaround in the meantime? AndBu mentioned disk_class.py I took a look at the content of that file, but I didn’t dare messing with it.
-edit2-
Workaround found, reverted back to 25.04.2.5 for now, there is nothing essential that I’m missing out on.
Reading the drive temperature may reset the spin down timer on some drives. A known workaround […] is to read the drive temperature at intervals larger than twice the spin-down time. Otherwise affected drives will never spin down.
Sounds like changing how often the temp method is called in disk_class.py might allow spin down while keeping temperature checks, I would check myself but I don’t dare updating to 25.10.