Western Digital Self Destruction?

Thank you for this useful input! I will definitely play with some HDDs and try it out as soon as I have some free time.
 
msi said:
Without trying sysutils/ataidle I came across a camcontrol command that I found googling across FreeBSD lists which disables power management but doesn't seem to be persistent over reboot (with the advantage that it doesn't mess around with the drive firmware). Since the 2 drives were anyway going to be replaced for 2.5" WD Reds (WD10JFCX) I gave it both a try with:
Code:
/sbin/camcontrol cmd ada0 -a "EF 85 00 00 00 00 00 00 00 00 00 00"

I put that line inside my rc.local so it gets executed during every powerup made a little cronjob to query the load_cycle cound every 5 minutes.

The same thing, only easier:
Install sysutils/ataidle. Add to /etc/rc.conf:
Code:
ataidle_enable="YES"
ataidle_ada0="-P 0"
 
I bought 4 WD 3TB Greens in 2011, 3 of which went into a RAIDZ on my home server and 1 went into my desktop. One on the server begin failing early in 2013 with ZFS checksum errors every scrub so I swapped it out with the one in my desktop. Here are the SMART stat from my server. You'll notice my /dev/ada2 has been parked ~57,000 times in two years since that was in my desktop while the other 2 are at ~75,000.

Code:
=== START OF INFORMATION SECTION ===
Model Family:     Western Digital Caviar Green (AF)
Device Model:     WDC WD30EZRS-00J99B0

My /dev/ada1
Code:
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       -       0
  3 Spin_Up_Time            0x0027   162   149   021    Pre-fail  Always       -       8866
  4 Start_Stop_Count        0x0032   100   100   000    Old_age   Always       -       58
  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   076   076   000    Old_age   Always       -       18138
 10 Spin_Retry_Count        0x0032   100   253   000    Old_age   Always       -       0
 11 Calibration_Retry_Count 0x0032   100   253   000    Old_age   Always       -       0
 12 Power_Cycle_Count       0x0032   100   100   000    Old_age   Always       -       57
192 Power-Off_Retract_Count 0x0032   200   200   000    Old_age   Always       -       54
193 Load_Cycle_Count        0x0032   175   175   000    Old_age   Always       -       75753
194 Temperature_Celsius     0x0022   130   118   000    Old_age   Always       -       22
196 Reallocated_Event_Count 0x0032   200   200   000    Old_age   Always       -       0
197 Current_Pending_Sector  0x0032   200   200   000    Old_age   Always       -       0
198 Offline_Uncorrectable   0x0030   200   200   000    Old_age   Offline      -       0
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      -       0

My /dev/ada2
Code:
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       -       0
  3 Spin_Up_Time            0x0027   160   140   021    Pre-fail  Always       -       8983
  4 Start_Stop_Count        0x0032   099   099   000    Old_age   Always       -       1197
  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   081   081   000    Old_age   Always       -       14392
 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   100   100   000    Old_age   Always       -       373
192 Power-Off_Retract_Count 0x0032   200   200   000    Old_age   Always       -       36
193 Load_Cycle_Count        0x0032   181   181   000    Old_age   Always       -       57785
194 Temperature_Celsius     0x0022   129   108   000    Old_age   Always       -       23
196 Reallocated_Event_Count 0x0032   200   200   000    Old_age   Always       -       0
197 Current_Pending_Sector  0x0032   200   200   000    Old_age   Always       -       0
198 Offline_Uncorrectable   0x0030   200   200   000    Old_age   Offline      -       0
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      -       0

My /dev/ada3
Code:
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       -       0
  3 Spin_Up_Time            0x0027   162   148   021    Pre-fail  Always       -       8900
  4 Start_Stop_Count        0x0032   100   100   000    Old_age   Always       -       58
  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   076   076   000    Old_age   Always       -       18185
 10 Spin_Retry_Count        0x0032   100   253   000    Old_age   Always       -       0
 11 Calibration_Retry_Count 0x0032   100   253   000    Old_age   Always       -       0
 12 Power_Cycle_Count       0x0032   100   100   000    Old_age   Always       -       57
192 Power-Off_Retract_Count 0x0032   200   200   000    Old_age   Always       -       54
193 Load_Cycle_Count        0x0032   175   175   000    Old_age   Always       -       75492
194 Temperature_Celsius     0x0022   128   117   000    Old_age   Always       -       24
196 Reallocated_Event_Count 0x0032   200   200   000    Old_age   Always       -       0
197 Current_Pending_Sector  0x0032   200   200   000    Old_age   Always       -       0
198 Offline_Uncorrectable   0x0030   200   200   000    Old_age   Offline      -       0
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      -       0
 
Found!
Read current value:
camcontrol cmd ada0 -v -a "80 45 00 44 57 40 00 00 00 00 00 00"
camcontrol cmd ada0 -v -a "B0 D6 BE 4F C2 40 00 00 00 00 01 00" -o 512 "2a 00 01 00 02 00 0d 00 16 00 01"
camcontrol cmd ada0 -v -a "B0 D5 BF 4F C2 40 00 00 00 00 01 00" -i 512 "i1"
camcontrol cmd ada0 -v -a "80 44 00 44 57 40 00 00 00 00 00 00"
Disable (write "00" in 3rd line):
camcontrol cmd ada0 -v -a "80 45 00 44 57 40 00 00 00 00 00 00"
camcontrol cmd ada0 -v -a "B0 D6 BE 4F C2 40 00 00 00 00 01 00" -o 512 "2a 00 02 00 02 00 0d 00 16 00 01"
camcontrol cmd ada0 -v -a "B0 D6 BF 4F C2 40 00 00 00 00 01 00" -o 512 "00"
camcontrol cmd ada0 -v -a "80 44 00 44 57 40 00 00 00 00 00 00"

After changing of timer value you must off/on power of your device to apply new settings (reboot is not help).
Source: https://www.truenas.com/community/t...ds-with-wdidle3-exe.18171/page-13#post-274687
 
Back
Top