Почему HDD стучит?

от автора

В последние недели много искал разные детали о внутренней работе механики и логики HDD и показалось, что неплохо было бы поделиться показавшимися мне интересными нюансами в этой сфере, которые тайной хоть и не являются, но редко мелькают в статьях. Статьёй хочется скорее пробудить интерес к бесконечно глубокой теме этих замечательных точных механических устройств и свежих трендов в их внутреннем устройстве, которые заставляют нервно курить в углу любой швейцарский часовой завод.

Не будем объяснять базу, но все знают, что магнитные головки HDD, прицепленные с одного конца «коромысла», приводятся в движение магнитной катушкой «Voice Coil» зажатой между двух неодимомых магнитов с другой стороны (а в современных дисках есть ещё и точный «доворот» пьезоэлементами на конце, недалеко от самих головок). Когда HDD надо переместить БМГ (Блок Магнитных Головок) на другую далёкую дорожку, он подаёт на Voice Coil резкий импульс тока, чтобы сорвать массивную металлическую конструкцию с места в нужном направлении, а потом ещё один обратный импульс тока для резкого торможения. Если посмотрите на фото БМГ, то поймёте как велика Voice Coil во всей этой конструкции и что ускорения и торможения происходят с довольно большими перегрузками. Это как если бы автомобиль весом 1.5 тонны разгонялся до 100 км/ч за 0.05…0.1 сек, а тормозил со скорости 100 км/ч на дистанции 1 метр и человек массов 80 кг потяжелел бы до 4 тонн. Если головки нужно перемещать в диапазоне до 50 дорожек, то Voice Coil не работает, достаточно пошевелить кончиком с головками с помощью пьезо-актуатора, который умеет гнуть металлический конец «коромысла» на 1…5 микрометров. И прыгать за 8 миллисекунд нужно не между тысячами дорожек, а по всей поверхности блина от края до края.

Если диск «серверный» (Seagate Exos, HGST Ultrastar, WD Ultrastar, WD Gold и т.п.) то прошивка диска «оформляет» импульсы Voice Coil максимально жёстко, чтобы получить минимальное время поиска с максимально адским стучанием и вибрацией. При этом, в дисках есть до 3 типов датчиков «механических помех» (2 штуки Rotational Vibration в разных концах платы, 2 штуки Shock Sensors, иногда ещё акселерометрых 3-осевые), и информация с этих датчиков постоянно корректирует силу импульсов движения БМГ на обоих этапах — Voice Coil + пьезо-актуаторы. Диск буквально пытается позиционировать головы в противофазе с вибрациями. Ко всему этому, отделом продаж этих дисков предполагается, что у вас и сервер не простой, а с серьёзной виброизоляцией между дисками. Маркетологи направления «диск серверный обыкновенный» как-бы говорят инженерам «можно очень сильно стучать, но и по вам будут бить, главное выжать минимальный seek time».

Если диск «видеорегистраторный» (Seagate: SkyHawk, WD Purple, Toshiba S300 и др.), то предполагаются сразу две любопытные вещи: первое: корпус видеорегистратора самый дешёвый и диск прикручен к нему пьяным Михалычем без всяких резиновых демпферов; второе: на диск не валится много команд на рандомный доступ и никому не нужно максимально низкое время поиска в базах данных. Оба этих требования позволяют ослабить резкость разгонных и тормозных импульсов тока на Voice Coil. Датчики вибраций при этом всё равно могут быть, если диск не просто «видеорегистраторный», а из дорогих премиум-серий этого типа, например тот же SkyHawk датчики RV имеет, а WD Purple нет.

В видеорегистраторных дисках есть ещё один интересный прикол: поддержка ATA Streaming Command Set. А со стороны видеорегистратора другой прикол: никаких обычных файловых систем, никаких команд серии FUA (Force Unit Access) (доступ к блинам в обход кеша диска). Для каждой камеры выделяют непрерывный массив секторов, перезаписываемый циклически, а каждая операция записи снабжается номером потока и обязательно идёт через кеш диска, в котором диск разные потоки склеивает и сбрасывает на физические блины максимально последовательными кусками, причём за фиксированное указанное извне время. Ошибка записи и уже не вписались в таймаут — никаких повторных попыток записи, едем дальше. В видеоархиве вы готовы потерять секунду с одной камеры, но сохранить целыми потоки со всех остальных 15 камер. При доступе к видеоархиву на операцию чтения секторов так же вешаются таймауты: сектор побился и плохо читается — множества повторных попыток чтения не будет, пишущиеся потоки с 16 камер более приоритетны. В обычном домашнем NAS такой диск будет при этом работать как «обычный», потому что NAS не догадается оформлять операции записи в разные потоки с навешанными на них таймаутами, поэтому непрочитанный сектор будет читаться до победного конца, блокируя операцию ввода-вывода и подвешивая систему. Просто чуть хуже Seek Time и тише стук.

Пьезо-актуаторов иногда бывает не один. Иерархия позиционирования в целом такая:

  1. VCM — Voice Coil, кидает коромысло на большие расстояние, но полоса пропускания 1…1.5 КГц. Этой полосы пропускания не хватает на компенсацию более высокочастотных механических помех и вибраций.

  2. Вторая ступень с Милли-пьезо-актуатором где-то в районе перехода «толстой железки» коромысла в тонкую. Толстые пьезоэлементы, видимые невооружённым глазом. Умеет 5…10 КГц.

  3. Третья ступень с Микро-пьезо-актуаторами где-то в непосредственной близи с магнитной головой. Умеет 20-30 КГц.

  4. А ещё головка умеет гулять по высоте с использованием встроенного нагревателя, который позволяет головке температурно «разбухать», регулируя зазор полёта над пластиной. Причём, насколько я понял, нагревателей в головке не один и она умеет искривляться локально.

Милли-Актуатор в центре кадра, Микро-Актуатор слева

Милли-Актуатор в центре кадра, Микро-Актуатор слева

Взаимосвязь разных датчиков «механических помех» на плате диска, потока данных о сервосигналах с блина, характеристики этого сервосигнала и горы разного DSP в чипах на плате диска — это отдельная инженерная мега-задача удержания головок на дорожке с разными стратегиями поведения в разных моделях диска:

  1. В серверных — максимально быстро найти нужную дорожку, спасаясь одновременно от стука по твоему корпусу от соседей в корзине (и крика сисадмина ртом в стойку).

  2. В видеорегистраторных — максимально намертво держаться на одной дорожке, чтобы не пропустить запись кадра в условиях, когда ждать повторной записи никто не будет, а рандомный доступ не нужен никому от слова совсем.

  3. Домашние — торопиться некуда, главное поменьше стучать, на пьезо-актуаторах можно сэкономить до наличия только одного «Милли», на датчиках тоже можно поэкономить.

Некоторые механические проблемы, с которыми постоянно борятся пьезо-актуаторы вместе с алгоритмами управления на плате диска:

  1. Ветер от пластин и турбулентность;

  2. Резонанс коромысла на некоторых частотах;

  3. Неидеальная форма блинов или вала или посадки блинов. Регулярные биения. Как я понял, одна из простейших задач внутри диска — относительно регулярная-постоянная корректировка в алгоритмы управления позиционировнаием;

  4. Подшипники шпинделя и их микроповреждения — достаточно рандомные биения;

  5. Внешние вибрации на корпус;

Почему же всё это до сих пор не умерло и кому-то интересно? Да просто недостаток микросхемных заводов на планете и цена на флешки в 10 раз выше, чем на HDD.

ссылка на оригинал статьи https://habr.com/ru/articles/1058704/