Уважаемые Chia фермеры,

Решил поделиться с вами своими наблюдениями и размышлениями по поводу работы жестких дисков в режиме 24/7. Все мы хотим, чтоб наши фермы работали долго и давали нам прибыль. Для этого жесткие диски должны быть надежными.

Погружение в Chia майнинг дало мне возможность собрать коллекцию из разных дисков от двух главных производителей: WD и Seagate (не хватает Toshiba, но думаю такими темпами и это не за горами).

Вот что у меня есть на данный момент из механических HDD.

Мои старички, выкорчеванные из внешних дисков, им уже лет по 7-8, но они все еще в строю с красивым смартом:

  • WD Green 2Tb WD20EARX
  • WD Green 3Tb WD30EZRX

То, что покупал специально для Chia:

  • WD Gold 8Tb WD8004FRYZ
  • WD Purple 8Tb WD82PURZ
  • WD White 16Tb WD160EDFZ (White потому что этот диск вытянут из внешнего WD My Book и на нем белая OEM наклейка. Судя по всему, это «задушенный» прошивкой до 5400 Rpm Ultrastar или Red, что в общем-то одно и тоже)
  • Seagate Exos X16 16Tb ST16000NM001G

Ко всему этому хозяйству прикупил еще и утилиту Hard Disk Sentinel Professional, чтобы все мониторить:

https://www.hdsentinel.com/

Плоттинг и фарминг пошел, и я начал копаться и наблюдать периодически за смартами своих дисков.

Первое, что заметил - это огромные значения «Raw Read Error Rate» и «Seek Error Rate» на абсолютно новом диске Seagate. Так как это мой первый Сигейт после печально известной Барракуды-«клик смерти» 7200.11, то первое что пришло в голову: «С**а опять! Сигейт больше никогда!». Но, так как гарантия на него 5 лет, то успокоился и начал искать информацию по этой теме. Оказалось, что Сигейт уникальные и неповторимые, считают по-особенному эти два параметра и что LOW Word (правая часть) этих параметров содержит статистические значения операций поиска/чтения, а HIGH Word (левая часть) содержит уже статистику по ошибкам чтения. Так вот в HIGH Word у меня все по нулям, что меня быстро успокоило. Поэтому не удивляйтесь, если у вас будет похожая картина с дисками Сигейт, или если вы захотите купить б/у диск, а там RAW значение «Seek Error Rate» в несколько миллионов.

Более подробная информация по этому поводу вот здесь:

http://www.users.on.net/~fzabkar/HDD/Seagate_SER_RRER_HEC.html

Надеюсь, я все правильно понял, а если нет, то больше в Сигейт ни ногой!

Далее хочу написать по поводу температуры. Все мои диски стоят внутри закрытого корпуса Antec P193 Silent Pro (старый, но вместительный корпус):

  • 4 в нижней корзине
  • 2 в средней
  • 4 в отсеках 5.25 (тут пока что стоят только мои четыре SSD SATA: два Intel и два Samsung)

Охлаждение:

  • процессор охлаждается 120mm Noctua NF-A12x25 PWM
  • перед двумя корзинами с дисками стоят по 120mm Noctua NF-P12 redux 1700 PWM
  • сверху корпуса дует одна 140mm Noctua NF-P14s redux 1200 PWM
  • на выдув из корпуса работает 120mm Noctua NF-S12B redux 1200 PWM
  • пространство 5.25 без вентиляторов, но в нем нет механических дисков, а SATA SSD практически не греются

Со всем этим средняя температура дисков примерно следующая (замеры делал летом в очень жаркую погоду, температура в помещении 25-27℃):

  • WD Green 2Tb WD20EARX: 36℃
  • WD Green 3Tb WD30EZRX: 36℃
  • WD Gold 8Tb WD8004FRYZ: 41℃
  • WD Purple 8Tb WD82PURZ: 42℃
  • OEM WD White 16Tb WD160EDFZ: 37℃
  • Seagate Exos X16 16Tb ST16000NM001G: 36℃

Как видно, самые горячие диски - это 8-терабайтники WD на «воздухе». Это не удивительно: пластин в них много, плюс они на 7200 оборотов. Самые холодные - это два диска «на гелии» и два древних Green, у которых всего по три блина. Вообще, по наблюдениям самый холодный диск - это Seagate Exos, несмотря на его объем.

Когда корзины не охлаждались, то температуры всех дисков были на 7-8 градусов больше, что уже не совсем хорошо, поэтому охлаждение имеет значение.

Идем дальше. Есть такой параметр как «Load/Unload Cycle Count», который хранит количество перемещений головок диска в парковочную зону для экономии энергии (пластины при этом могут продолжать вращаться, парковка головок не всегда сопровождается остановкой шпинделя, но об этом дальше). Так вот, этот параметр имеет свой гарантийный лимит. Производители явно указывают гарантированное количество этих циклов. Для потребительских дисков это обычно 300 000 циклов, а для серверных чаще всего 600 000.

Как часто диск будет делать такую парковку заложено в прошивке в параметрах питания. Существует несколько уровней управления питанием со своими таймингами и алгоритмами отключения различных модулей диска: от частичного отключения управляющей электроники до полной остановки шпинделя и парковки головок. На серверных дисках управление питанием довольно продвинутое, а на потребительских оно попроще, либо вовсе отсутствует. Так вот, по умолчанию эти настройки довольно «экономичные» и заставляют парковать головки чуть ли не каждые 6-8 сек !!!, если управляющая электроника определила простой диска.

Насколько я понял, существует два стандартных в отрасли «фреймворка» для управления питанием дисков:

  • Более старая и базовая: APM (Advanced Power Management). Присутствует на некоторых потребительских и на большинстве серверных дисков WD.

В моей коллекции она есть на WD White, Gold и Purple, но ее нет на обоих WD Green и на серверном Сигейте.

Уровень APM задается значением от 1 до 254. Вот что говорит по этому поводу документация Seagate:

[1 - 254] (SATA Only)
Use this option to set the APM level of a device.
Valid values are between 1 and 254.
1 = Minimum power consumption with standby mode
2-127 = Intermediate power management with standby mode
128 = Minimum power consumption without standby mode
129-253 = Intermediate power management without standby mode
254 = Maximum Performance.
  • Более новая и продвинутая: EPC (Extended Power Controls), у Сигейта имеет маркетинговое название «Power Choice».

У меня присутствует на Сигейте, на WD Gold и, внимание!, на OEM WD White вытянутом из внешнего диска, что еще раз подтверждает мои догадки, что это серверный Ultrastar с кастомной прошивкой.

Ниже привожу описание возможных EPC состояний из документации Seagate:

Idle_A
- Disables most of the servo system, reduces processor and channel 
  power consumption
- Discs rotating at full speed (7,200 RPM)

Idle_B
- Disables most of the servo system, reduces processor and channel
  power consumption
- Heads are unloaded to drive ramp.
- Discs rotating at full speed (7,200 RPM)

Idle_C/Standby_Y (SAS Only)
- Disables most of the servo system, reduces processor and channel
  power consumption
- Heads are unloaded to drive ramp.
- Drive speed reduced to a lower RPM (reduced RPM)

Standby_Z
- Heads are unloaded to drive ramp.
- Drive motor is spun down.
- Drive still responds to non-media access host commands.

Что характерно, у Seagate Exos нет различия между Idle_C и Standby_Y, присутствует только один Idle_C, а у двух моих WD Gold и White есть оба этих режима (что снова указывает на серверное происхождение White).

Плюс у каждого производителя могут быть свои уже проприетарные технологии экономии энергии например:

  • IntelliPower на WD Green и, скорее всего, ее более продвинутая версия на WD Blue. Поэтому на моих старых WD Green и нет APM – там используется IntelliPower.

  • PowerBalance на серверных Сигейтах, но эта штука, судя по документации, к парковке головок не имеет отношения, и связана с оптимизацией случайных операций чтения/записи. К тому же на моем Сигейте она оказалась отключена по умолчанию.

Осмыслив все это, я начал думать как отключить всю эту энергосберегающую лабуду, потому что после начала майнинга Chia, значения «Load/Unload Cycle Count» для большей части моих дисков пошли вверх с неплохой скоростью.

Оно и неудивительно. Диски работают 24/7, обращения к дискам не такие уж частые в процессе прохождения фильтра и поиска пруфов, но достаточно частые чтобы диски не засыпали надолго - вот они и дергают головками без остановки.

Ниже привожу примеры графиков эволюции данного параметра во времени. Hard Disk Sentinel отлично подходит для отслеживания всего этого. Начало измерений для WD Green примерно совпадает с началом майнинга.

Утилита Hard Disk Sentinel имеет еще одну интересную особенность. Она может считать что-то вроде тренда изменения того или иного параметра SMART от текущего значения до Threshold.

WD Green 2Tb: увеличение числа парковок примерно на 25 000 циклов за 3 месяца. Учитывая, что это потребительский диск, которому около 8 лет, то это немного настораживает. Но тут работает IntelliPower по своим неведомым алгоритмам, поэтому и колбасит головки как ей вздумается. Что касается тренда, то для этого диска оказалось не все так плохо. При текущих темпах увеличения количества циклов парковки ноль наступит примерно в марте 2026 года. Неплохо для 8-летнего механического диска, но доверять сильно этому графику я бы не стал.

Image

Image

WD Green 3Tb: похожая ситуация: начинает быть страшно за старичка… Все таки подходит уже к 200 000. Но тренд выглядит получше: ноль на сентябрь 2027-го.

Image

Image

Немного оптимистичнее дела обстоят с серверными дисками, учитывая, что они абсолютно новые.

WD Gold 8Tb: примерно 12 500 циклов за 3 месяца. Однако тренд совсем не радует. По мнению утилиты ноль наступит в январе 2024-го, что даже меньше гарантийного срока в 5 лет.

Image

Image

Seagate Exos 16Tb: около 5000 циклов за три недели. Хотя тут график начитает стабилизироваться. Тренд тоже не очень: ноль на сентябрь 2024-го, что тоже меньше гарантии.

Image

Image

OEM WD White 16Tb: пока держится неплохо, но прошло еще слишком мало времени для набора статистики. Тренд построить не получилось из-за слишком малого изменения параметра.

Image

Ну и, наконец, победитель в номинации «самый спокойный диск» - WD Purple 8Tb. Всего лишь 120 циклов за 3 месяца. Эти диски предназначены для видеонаблюдения 24/7, тут энергопотребление не играет роли, идет постоянное обращение к диску и по умолчанию он был в менее энергосберегающем режиме. Тренда тоже нет - слишком малое изменение «Load/Unload Cycle Count».

Image

Из этих графиков я могу сделать такой банальный вывод: у каждого диска свое предназначение. WD Green (и Blue) - это потребительские диски. Производитель сам позиционирует их как супер-экономичные и т. д. и т. п. Вот они по умолчанию и паркуют головки, как только представится возможность. WD Gold и Seagate Exos – диски для дата-центров. Они хоть и должны работать 24/7, но когда их сотни, а то и тысячи, то вопрос энергоэффективности начинает играть роль, вот у них и стоят из коробки установки EPC с низкими таймингами парковки. WD Purple – диск для видеонаблюдения 24/7 и энергоэффективность ему не очень-то и нужна.

Но нам, майнерам, пофиг на все эти технологии. Нам бы диски подешевле, повместительнее и понадежнее. И, как мне кажется, постоянное дергание головками и надежность двигаются в противоположных направлениях.

Что я сделал в первую очередь, так это перевел в режим максимальной производительности все диски поддерживающие APM. Большинство утилит для работы с дисками позволяют это делать (CrystalDiskInfo, Hard Disk Sentinel и т. д.):

Image

Как оказалось, изменение настроек APM также влияет и на настройки EPC: перевод диска в режим максимальной производительности обнулил и тайминги EPC на тех дисках, где он есть. Таким образом, у меня получилось «разогнать» WD White, Gold и Purple.

Остались мои старички: WD Green и Seagate Exos – оба без APM. Как оказалось, у Сигейт есть пакет крутейших утилит для работы с жесткими дисками (не только с дисками Seagate, но и от других производителей также!): SeaChest Utilities. Скачать можно с официального сайта Сигейт, все устанавливается за 10 сек., все утилиты из пакета не имеют GUI и работают только из командной строки, документация отличная:

https://www.seagate.com/fr/fr/support/software/seachest/

Из всего пакета нас интересует утилита SeaChest Power Control, которая позволяет показать и изменить настройки управления питанием дисков в системе.

С помощью этой утилиты я смог отключить EPC на моем серверном Сигейте:

SeaChest_PowerControl_x64_windows.exe -d <ID> --EPCfeature disable

либо

SeaChest_PowerControl_x64_windows.exe -d <ID> --idle_a disable
SeaChest_PowerControl_x64_windows.exe -d <ID> --idle_b disable
SeaChest_PowerControl_x64_windows.exe -d <ID> --idle_c disable

ВНИМАНИЕ: насколько я понял, утилита SeaChest не позволяет устанавливать тонкие настройки EPC (отдельно idle_a, idle_b, idle_c) на сторонних дисках (не Seagate). Так что на WD возможно лишь полностью отключить/включить EPC.

Вот что я получил в итоге, выполнив следующую команду:

SeaChest_PowerControl_x64_windows.exe -d <ID> --showEPCSettings

Seagate Exos 16Tb:

Image

OEM WD White 16Tb:

Image

WD Gold 8Tb:

Image

Теперь в колонке «Current Timer» у меня по нулям, что значит, что таймеры отключены.

Стоит обратить внимание на значения по умолчанию. Диски от WD из коробки идут с более «спокойными» (хотя все еще слишком короткими) таймингами. Они не опускаются ниже режима Idle_B и имеют для него тайминг в 6 сек. Сигейт же может из коробки опускаться до максимального Standby_Z с еще более зажатыми таймингами. Интересно.

В конце концов, остались два моих старых WD Green, которые не поддерживают ни APM, ни EPC, но которые все же пытаются экономить энергию. После недолгих поисков нашлась официальная утилита и для них: wdidle3. Она настолько древняя, что работает только из DOS, но все же позволяет менять настройки таймеров энергосбережения для дисков WD Green, Blue и Red (поддерживаются не все модели, поэтому надо экспериментировать).

Скачать ее можно, например, здесь:

https://www.truenas.com/community/threads/hacking-wd-greens-and-reds-with-wdidle3-exe.18171/
https://support.wdc.com/downloads.aspx?p=113

В общем, после создания загрузочной флешки с DOS и загрузки с нее, у меня получилось отключить энергосбережение и на двух моих WD Green.

Вывод текущего состояния таймеров парковки головок:

wdidle3.exe /r

Отключение таймеров:

wdidle3.exe /d

После этого надо выключить и включить комп, потому что настройки вступают в силу на следующем цикле запуска диска. ВНИМАНИЕ, насколько я понял, выбрать диск утилита не позволяет и пытается установить тайминги для всех поддерживаемых дисков сразу. Так что, если дисков много, то во избежание проблем лучше отключить ненужные диски либо физически, либо в BIOS.

Как оказалось, тайминги по умолчанию на парковку стояли 8 сек., что лучше серверных дисков, но все равно ужасающе мало.

Есть еще одна утилита, которую я использовал для WD Green - это утилита hdparm. Изначально она разработана под Linux, но в сети можно найти один ее древний билд 6.9. Она позволяет убрать таймер перехода диска в «standby mode»:

Put the drive into idle (low-power) mode, and also set the standby (spindown) 
timeout for the drive. This timeout value is used by the drive to determine 
how long to wait (with no disk activity) before turning off the spindle motor 
to save power.

Скачать ее можно здесь:

http://disablehddapm.blogspot.com/

Просмотр информации о диске:

.\hdparm.exe -I /dev/sda

Отключение таймера:

.\hdparm.exe -S 0 /dev/sda

Уже позже я понял, что утилита Victoria HDD/SSD также, судя по всему, позволяет работать с таймингами парковки WD Green/Blue, но дело было уже сделано и эту возможность я не тестировал, но я уверен, что она работает. Виктория также позволяет устанавливать настройки APM, но не EPC, так что SeaChest по прежнему может быть полезна.

Ссылка на утилиту:

https://hdd.by/victoria/

Таким образом, я смог сконфигурировать все мои жесткие диски, чтобы они не пытались так часто парковать головки. Возможно, я слишком заморачиваюсь и это все не влияет на надежность дисков, но логика подсказывает, что, скорее всего, влияет. Все-таки механизм, который постоянно на протяжении своей жизни двигается с максимальной амплитудой включаясь/выключаясь несколько десятков тысяч раз, может износиться быстрее, чем если он просто парит над блинами, выполняя операции чтения/записи. Но я могу и ошибаться. Возможно, более знающие люди мне что-то подскажут. Как минимум, мне было интересно заниматься этим небольшим исследованием. Через несколько лет, когда диски выйдут из строя, поставлю их красиво на полку над моим рабочим столом. Хорошая коллекция получится.

WD Green, конечно, настрадались в своей жизни, но хотя бы какой-то запас у них еще есть.

Надеюсь, эта информация будет кому-то полезна. Всем удачного майнинга. Скоро будем миллионерами!

P.S. Привожу ниже графики изменения «Load/Unload Cycle Count» после того как я отключил функции энергосбережения. Есть небольшой всплеск, соответствующий многочисленным перезагрузкам компа во время всех этих экспериментов, но в целом все диски явно «стабилизировались» в части парковки головок, причем, что интересно, старые WD Green стабилизировались полностью (показатель застыл и не растет), а все остальные диски делают ровно одну парковку в сутки. С чем это связано понятия не имею, но меня устраивает и так. Так что, вроде бы, все работает.

WD Green 2Tb:

Image

WD Green 3Tb:

Image

WD Gold 8Tb:

Image

Seagate Exos 16Tb:

Image

OEM WD White 16Tb:

Image

WD Purple 8Tb:

Image

P.P.S. Работая над этой статьей я успел купить еще два диска: один серверный Segate Exos 16Tb, идентичный уже имеющемуся, и один внешний WD MyBook 18Tb, который я успешно разобрал и вынул оттуда диск, который также по косвенным признакам оказался Ultrastar, но уже на 7200 оборотов. На этих двух дисках я также успешно отключил энергосбережение, разве что я понял, что, в принципе, можно оставить тайминги по умолчанию для режима idle_a, потому что он подразумевает отключение электроники, но не парковку головок. Кстати, второй Exos ведет себя абсолютно одинаково в том что касается счетчика ошибок чтения, упомянутого выше. Так что все в порядке и нужно просто правильно читать эти данные SMART. По состоянию на данный момент (28/08/2021) все мои диски стабильны по параметру «Load/Unload Cycle Count».

© 2021 ctrl-art-del