Как жесткий диск определяет, какой диск / сектор использовать?
Какой алгоритм выбирает это? Конечно, это не может быть случайным и не может быть последовательным.
Это конфиденциальная информация, которую вы вряд ли найдете. « Коммерческая тайна » или « секретный соус », если хотите ...
Нет « поверхностной » причины, по которой он не был бы случайным или последовательным ... но я подозреваю, что производители дисков будут оптимизировать пропускную способность, размещая данные на всех пластинах. Скорее всего, будет « глубокая » причина для размещения данных там, где они находятся (современные жесткие диски приближаются к сфере магии, с огромными техническими знаниями, необходимыми для понимания большей части происходящего).
Исторически это было открыто и хорошо понято (см. CHS ниже).
Есть ли контроллер, встроенный в сам привод?
Да, современный жесткий диск представит интерфейс SATA или SAS хост-машине ... Этот канал связи проходит между материнской платой и встроенным контроллером жесткого диска.
Контроллер впоследствии отвечает за управление скоростью вращения шпинделя, положением головки, обработкой между командами чтения / записи и точно синхронизированными аналоговыми сигналами в / из головок чтения / записи и т.д.
Или это материнская плата? ОС?
Исторически сложилось так, что жесткий диск представлял собой очень простое устройство - шаговый двигатель или звуковую катушку приводили в движение непосредственно от материнской платы для управления положением головы, а аналоговые сигналы были грубо очищены перед передачей на материнскую плату.
Посмотрите это видео демонтаж жесткого диска Fujitsu 337 МБ 8 дюймов для подробностей. Перейдите к ~ 2:04 для завершения работы интерфейсов (Storage Module Device). Тем не менее, как вы можете видеть, существует значительная схема поддержки для взаимодействия.
Жесткие диски были адресованы с использованием CHS (Цилиндр - Головка - Сектор), но в последнее время они адресованы с использованием LBA (Логическая блочная адресация).
Я думаю, что с введением LBA мы также начали видеть диски, которые управляли своими собственными поврежденными секторами - перемещая их в выделенное « свободное » пространство, когда они были обнаружены как плохие. Таким образом, у нас больше нет прямого контроля того, где расположены головки, какая головка используется и какой сектор доступен.
До того, как диски управляли своими собственными поврежденными секторами, вы могли видеть метки со списком поврежденных секторов с завода, которые вы должны были подать в систему при создании файловой системы. В качестве альтернативы вы можете использовать такой инструмент, как badblocks
для поиска проблем. Например:
Точно так же, как те же вопросы относятся к SSD?
С SSD все флэш-хранилище отображается из физического в виртуальное адресное пространство. Это позволяет осуществлять прозрачное выравнивание износа без каких-либо знаний от хост-машины.