Возникла необходимость приобрести жёсткий диск большой ёмкости для хранения резервных копий. Особо не заморачиваясь с выбором, купил новенький жёсткий диск WD20EARX на 2ТБ. Этот диск относится к серии Green, имеет частоту вращения шпинделя 5400 об/мин, и потребляет немного электроэнергии. То, что нужно для случаев, когда не требуется высокая производительность, а упор делается на низкие уровни энергопотребления, нагрева и шума.
Во время тестирования обратил внимание, что диск периодически издаёт негромкий, но отчётливый «кликающий» звук. Стало интересно, что это, и не является ли это заводским браком. Чуть-чуть погуглив, выяснилось, что браком это не является, и этот звук — звук парковки головок. Причиной оказалась фирменная технология WD Intellipark, которая паркует головки после определённого времени бездействия и отключает часть электронных схем для экономии электроэнергии. По умолчанию время бездействия выставлено в 8 секунд.
В S.M.A.R.T. жёсткого диска есть параметр, который показывает количество парковок головок. Это параметр Load_Cycle_Count
, под номером 193. У меня значение этого параметра за несколько часов использования превысило 200:
193 Load_Cycle_Count 0x0032 200 200 000 Old_age Always - 232
Выяснилось, что технология Intellipark в сочетании с технологией отложенной записи в Linux и вызывает постоянную парковку головок.
Я не тестировал диск под Windows, но однозначно ясно, что если вы используете диск WD Green на компьютере, в домашнем медиа-сервере или NAS, работающих под управлением Linux, то с этим однозначно что-то надо делать, т.к. постоянная парковка головок не только сказывается на производительности жёсткого диска, но и может существенно снизить продолжительность его службы и привести к преждевременной поломке.
К счастью, выход из этой ситуации есть.
На официальном сайте WD есть утилита, которая может изменить время бездействия до парковки головок, или полностью отключить эту функцию. Утилита называется wdidle3
, и её можно скачать здесь.
Утилита работает из-под DOS и имеет следующие параметры (взяты из официального описания):
WDIDLE3 [/S[<Timer>]] [/D] [/R] [/?] where: /S[<Timer>] Set timer, units in seconds. Default=8.0 (8.0 seconds). Resolution is 0.1 seconds from 8.0 to 12.7 seconds. Resolution is 30 seconds from 30 seconds to 300 seconds. Note, times between 12.8 and 30 seconds will be set to 30 seconds. /D Disable timer. /R Report current timer. /? This help info.
Для того, чтобы её запустить, нужно записать утилиту на загрузочный флоппи-диск, компакт-диск или сетевой диск, загрузить с него DOS и запустить например так:
wdidle3.exe /S 180
Это установит таймер бездействия на 3 минуты.
Это конечно всё хорошо, но мне было очень лениво вспоминать, как загружаться в DOS, я уже и не припомню, когда последний раз делал это. Поэтому нашёл альтернативный метод — аналогичную утилиту с открытым кодом idle3-tools
, разработанную для Linux. Даже если вы используете Windows, то возможно вам также будет проще загрузиться в какой-нибудь Linux Live CD, и запустить там утилиту.
Для запуска утилиты потребуется её скомпилировать из исходников, поэтому в системе должен быть установлен компилятор gcc и утилита сборки make.
Итак, качаем:
wget http://downloads.sourceforge.net/project/idle3-tools/idle3-tools-0.9.1.tgz?r=http%3A%2F%2Fsourceforge.net%2Fprojects%2Fidle3-tools%2Ffiles%2F
Распаковываем:
tar xzvf idle3-tools-0.9.1.tgz
Компилируем:
cd idle3-tools-0.9.1.tgz make make install make clean
Запускаем
idle3ctl
Утилита выведет список доступных опций запуска:
idle3ctl v0.9.1 - Read, Set or disable the idle3 timer of Western Digital drives Copyright (C) 2011 Christophe Bothamy Usage: idle3ctl [options] device Options: -h : displat help -V : show version and exit immediately -v : verbose output --force : force even if no Western Digital HDD are detected -g : get raw idle3 timer value -g100 : get idle3 timer value as wdidle3 v1.00 value -g103 : get idle3 timer value as wdidle3 v1.03 value -g105 : get idle3 timer value as wdidle3 v1.05 value -d : disable idle3 timer -s<value> : set idle3 timer raw value
Выясните имя устройства для вашего диска, например так:
fdisk -l
В моём случае это /dev/sdb
.
Если требуется установить таймер, например, на 5 минут, то утилиту запускаем так:
idle3ctl -s 300 /dev/sdb
Я вообще не стал заморачиваться с таймером, и полностью отключил фичу парковки головок:
idle3ctl -d /dev/sdb
Для того, чтобы изменения вступили в силу, жёсткий диск нужно полностью отключить и затем включить.
После всех этих операций щёлкающий звук исчез, а параметр Load_Cycle_Count
расти перестал.
Напоследок, мне было бы интересно узнать, как ведёт себя утилита idle3ctl
с жёсткими дисками других производителей, ведь у неё зачем-то есть параметр
--force : force even if no Western Digital HDD are detected
К тому же, я слышал, что другие производители также используют похожие технологии в дисках энергосберегающих серий.