Hello,
Like many users of Seagate Exos drives, I have found that they park their heads very aggressively, approximately every 2 minutes. Due to this behavior, the Load Cycle Count increases rapidly.
For example, one of my drives:
ID# ATTRIBUTE_NAME FLAG VALUE WORST THRESH TYPE UPDATED WHEN_FAILED RAW_VALUE
193 Load_Cycle_Count 0x0032 098 098 000 Old_age Always - 5659
240 Head_Flying_Hours 0x0000 100 253 000 Old_age Offline - 337
I have already found many topics about this issue, but all of them rely on using camcontrol (which is not available on SCALE) or SeaChest/OpenSeaChest.
The official SeaChest tool from Seagate is not compatible with SCALE.
OpenSeaChest needs to be compiled for BSD, but SCALE does not include the tools required to compile it.
Has anyone found a tool that can use EPC to change the Idle_b and Idle_c values for Exos drives?
In the archive, look for /SeaChestUtilities/Linux/Non-RAID/x_86_64
Obligatory word of warning - mucking with low-level drive settings like this can cause issues. If you do it on a live pool, I’d back up your data first.
Thanks, guys! I spent almost half the day solving this.
Here’s a quick tutorial for Linux newbies (like me ):
Download the Utilities:
Download the SeaChest utilities from jro post
Extract the Binaries:
Extract all binaries from: /SeaChestUtilities/Linux/Non-RAID/x_86_64/
Copy them to your network share.
Log in to Your TrueNAS Instance:
Navigate to System > Shell in the TrueNAS web interface.
Switch to the Root User:
Run the following command to switch to the root user: sudo -i
Open Midnight Commander: mc
Navigate to your network share where you copied the binaries. Copy them to /root/ and then close Midnight Commander.
Navigate to the Folder with Binaries:
Navigate to the folder where you copied the binaries, e.g., /root/exos_tools/.
Change premissions and make binaries executable: chmod 777 ./*
Scan for Device Handles:
Run this command to obtain device handles (e.g., /dev/sg2): ./SeaChest_Basics --scan
Check Idle State Timers:
Use this command to check the idle state timers: ./SeaChest_PowerControl -d /dev/sg2 --showEPCSettings
For example mine:
/dev/sg2 - OOS14000G - 00023Y4K - OOS1 - ATA
===EPC Settings===
* = timer is enabled
C column = Changeable
S column = Savable
All times are in 100 milliseconds
Name
Current Timer
Default Timer
Saved Timer
Recovery Time
C
S
Idle A
*1
*1
*1
1
Y
Y
Idle B
*1200
*1200
*1200
4
Y
Y
Idle C
0
6000
6000
30
Y
Y
Standby Z
0
9000
9000
210
Y
Y
Explanation of Idle States:
Power Condition Name
Description
Manufacturer Default Timer Values
Idle_a
Reduced electronics
100ms
Idle_b
Heads unloaded. Disks spinning at full RPM
2 min
Idle_c
Heads unloaded. Disks spinning at reduced RPM
4 min
Standby_z
Heads unloaded. Motor stopped (disks not spinning)
15 min
Set a Reasonable Idle_B Timer:
For example, set Idle_b to 6 minutes: ./SeaChest_PowerControl -d /dev/sg2 --idle_b 360000
Verify Changes:
Use this command to verify the changes were applied: ./SeaChest_PowerControl -d /dev/sg2 --showEPCSettings
Repeat the above steps for all drives you want to modify.
Clean Up:
After making the changes, open Midnight Commander and delete the folder containing the binaries to clean up the system.
I couldn’t include the original link or credit the authors due to publication restrictions sorry . However, I hope this guide helps others facing the same issue!