Disable Caviar Green drives spinning down

A few months ago I build a 1u server to go into a colo facility. Not knowing any better, I used WD Caviar Green drives. My users have been complaining that the system can be a little slow off the mark, and smartctl shows a very high Load_Cycle_Count. I've been reading that this is due to the "Green" meaning that they attempt to spin down frequently, and so the lag people are seeing is when the drives are spinning back up. The only suggestions I've seen for stopping them from spinning down involve bringing the server home and putting the disks into a Windows box to run a program. But I had a similar problem with a Seagate external drive once and fixed it with sdparm. Is there an sdparm command that will fix this problem?

=== 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       -       0
  3 Spin_Up_Time            0x0027   168   133   021    Pre-fail  Always       -       4558
  4 Start_Stop_Count        0x0032   100   100   000    Old_age   Always       -       65
  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   092   092   000    Old_age   Always       -       6213
 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       -       58
192 Power-Off_Retract_Count 0x0032   200   200   000    Old_age   Always       -       42
193 Load_Cycle_Count        0x0032   196   196   000    Old_age   Always       -       14941
194 Temperature_Celsius     0x0022   120   106   000    Old_age   Always       -       27
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

Solution 1:

Is there any way you can image that server onto another set of drives that are server grade, rather than altering the way those drives are designed to work? It sounds like you have a little time on your hands, since nothing has actually failed.

Running anything that alters how a HDD works on a production server is bad news, IMO. Using these types of drives that have constant activity is going to wear them out incredibly fast. I recommend trying a different approach that involves new hardware, as much as you probably don't want to do that.

Solution 2:

Working solution follows, tested right now!

  1. Download the WDSpinUp DOS Utility.

  2. Make a bootable FreeDOS USB drive with UNetbootin (sudo apt-get install unetbootin).

  3. Copy the downloaded utility to the USB drive.

  4. Configure your BIOS to have disk controllers running in Compatible or Legacy mode (depends by your motherboard manufacturer).

  5. Boot FreeDOS via USB, select FreeDOS Live CD with HIMEM + EMM386

  6. Move to C: (the USB drive) with C:

  7. Finally execute the utility with wdidle3.exe /D

  8. Remember to re-enable Enhanced or SATA controllers from BIOS.