Что означает TRIM на жестком диске (HDD)?

Вопрос или проблема

Я исследовал новый жесткий диск, когда заметил кое-что необычное:

CDI

Это жесткий диск на 1 ТБ от Seagate, и CrystalDiskInfo показывает, что он поддерживает TRIM! Насколько я знаю, TRIM — это особенность SSD, которая позволяет контроллеру перерабатывать удаленные несохраненные страницы для улучшения производительности записи в будущем. Но HDD просто перезаписывает старые данные и не нуждается в уведомлении об удалении.

Что означает поддержка TRIM на HDD?

Это, вероятно, означает, что ваш HDD — это диск с технологией SMR. Поскольку диски SMR работают по-другому, операция TRIM необходима для улучшения производительности со временем.

Страница поддержки WD предоставляет хорошее объяснение этого:

TRIM/UNMAP поддерживается для внешних жестких дисков с внутри установленным SMR (Shingled Magnetic Recording) диском, как у SSD, для управления наборами данных и улучшения производительности SMR со временем. Одним из преимуществ шинглованной записи является то, что все физические сектора записываются последовательно в радиальном направлении и перезаписываются только после завершения круга. Перезапись ранее записанного LBA (логическая блоковая адресация) приведет к тому, что предыдущая запись будет отмечена как недействительная, и LBA будет записан в следующий последовательно физический сектор. TRIM/UNMAP позволяет ОС информировать диск о блоках, которые больше не считаются используемыми и могут быть восстановлены HDD для обеспечения полной скорости последующих операций записи.

Документация для этого диска от Seagate перечисляет поддерживаемые команды SATA и не включает TRIM в этот список.

Упомянутая документация основана на марке и модели, указанных на показанном скриншоте:

https://www.seagate.com/files/www-content/product-content/seagate-laptop-fam/barracuda_25/en-us/docs/100818135e.pdf

Сегодня я был удивлен, когда пришел новый ST2000DM008, и он заявляет о поддержке TRIM. Я заметил это после того, как команда lvcreate начала обрабатывать свободное пространство.

Система SMART сообщает о поддержке TRIM. Это как бы намекает на то, что и мой, и ваш диски являются SMR.

TRIM на SMR HDD работает схожим образом, но также и очень по-другому, чем на SSD.

В обоих технологиях диск делится на большие области, которые записываются за один раз, и в обоих случаях TRIM помогает микропрограмме делать более эффективные записи, но если углубиться в детали, они работают весьма по-разному.

SSD имеют ячейки, содержащие множество секторов, и могут читать и записывать каждый сектор отдельно, однако запись возможна только в очищенные секторы — когда вы хотите перезаписать используемый сектор, требуется:

  • прочитать содержимое существующей ячейки;
  • изменить сектор, который вы хотите перезаписать;
  • записать содержимое в полностью очищенную ячейку;
  • отправить исходную ячейку в очередь на фон для стирания и повторного использования

Эта необходимость чтения всей ячейки, чтобы записать один сектор, называется “усилением записи”. Существует отображение, которое позволяет ячейкам быть связаными с диапазонами LBA, чтобы это работало.

Когда вы удаляете файлы, команда TRIM сообщает микропрограмме SSD, что соответствующие сектора больше не используются, и микропрограмма может:

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

SMR HDD относятся к другому типу, так как вы можете читать сектора поодиночке, но можете записывать только всю ячейку. Поэтому, чтобы записать отдельный сектор, если ячейка используется, требуется прочитать всю ячейку, изменить сектор и записать всю ячейку обратно, как на SSD, но если диск знает, что ячейка полностью пустая, он может просто записать в нее без чтения существующего содержимого, что в два раза быстрее. Диски SMR имеют CMR-кэш, куда сначала записываются данные, а затем в фоне эти записи выгружаются в основную SMR-область. (И если вы выполняете массовые записи случайных блоков, вы можете заполнить кэш гораздо быстрее, чем он выгрузится в фоне, и тогда все замедляется в (скажем) 100 раз.)

Теперь, подумав об этом, я полагаю, что это значит, что для SMR HDD:

  1. TRIM эффективен только тогда, когда у вас есть большие смежные пустые области диска – это бывает, когда диск относительно новый или когда вы создали такие области, запустив дефрагментацию. Если вы не выполняете дефрагментацию, вероятность того, что каждая ячейка содержит хотя бы один использованный сектор, возрастает, и тогда массовая производительность записи ухудшается — но если вы делаете дефрагментацию, чтобы создать большие области смежного свободного пространства, массовая производительность будет лучше.

  2. Хотя TRIM и автоматическую регулярную дефрагментацию поддерживает Windows и его файловые системы и имеет графический интерфейс, другие операционные системы могут не включать TRIM автоматически для SMR-дисков или не выполнять дефрагментацию автоматически.

  3. Мне неясно, были ли программы дефрагментации улучшены для выдачи команд TRIM во время дефрагментации (что было бы важно для скоростей дефрагментации) или после ее завершения (для будущих скоростей записи) или операционная система будет обрабатывать одно или оба из этого, как только сектора помечаются как неиспользуемые при дефрагментации.

  4. Некоторые файловые системы просто не имеют возможности дефрагментации (например, ZFS) — так что со временем массовые записи с ZFS на SMR-дисках, вероятно, замедлятся до ползания.

  5. Производительность SMR-дисков во время восстановления избыточных RAID1/5/6 или зеркал ZFS или RAIDZ будет в значительной степени зависеть от того, очищает ли код восстановления весь диск перед началом записи и выполняется ли запись затем последовательно по диску или случайным образом — с ZFS RAIDZ записи выполняются случайным образом, и время на восстановление может быть экспоненциально больше.

Ответ или решение

Теория: Что такое TRIM на HDD и как он работает в SMR-дисках

TRIM — это команда, известная большинству как специфическая для SSD, позволяющая контроллеру заблаговременно очищать блоки памяти, которые больше не используются, чтобы оптимизировать производительность записи. На первый взгляд, эта функция может показаться неуместной для традиционных жестких дисков (HDD), ведь они обычно перезаписывают данные, не требуя подобных операций очистки. Однако поддержка TRIM внезапно становится актуальной, когда речь идет о жестких дисках, работающих на основе технологии Shingled Magnetic Recording (SMR).

SMR-диски отличаются от их аналогов с CMR (Conventional Magnetic Recording) записью тем, как данные размещаются и перезаписываются на пластинах. В SMR накопителях данные пишутся "внахлест", как черепица на крыше, что позволяет увеличить плотность записи. Однако это же создает сложности при переписывании или обновлении данных, поскольку измененная информация затрагивает соседние дорожки, что требует перемещения большого объема данных.

Пример: Использование TRIM в SMR-дисках

Чтобы понять, зачем SMR-дискам может понадобиться поддержка TRIM, рассмотрим, как происходит запись данных на таких носителях. Несмотря на возможность поблочной записи, SMR-диски могут писать данные только крупными порциями (т.е. целыми зонами). Это требует считывания текущих данных, модифицирования необходимых участков и перезаписи всей зоны, что значительно замедляет процесс по сравнению с случайной записью.

В данном контексте TRIM используется для того, чтобы файловая система могла сообщать контроллеру SMR-диска о том, какие блоки больше не используются и могут быть безопасно удалены. Это позволяет менеджеру диска выполнять "очистку" ненужных зон, что улучшает общую производительность, так как данные могут быть записаны напрямую в более чистые зоны без дополнительных операций перезаписи.

Применение: Как оптимально использовать TRIM на SMR-дисках

Понимание того, как работает TRIM в контексте SMR-дисков, помогает владельцам и администраторам систем оптимизировать работу их хранилищ. Следующие рекомендации будут полезны:

  1. Оптимизация пространства: Регулярная дефрагментация может способствовать созданию более крупных непрерывных незаполненных областей на диске. Это позволит TRIM эффективнее очищать зоны и повысит скорость последовательной записи.

  2. Автоматизация процессов: Важной составляющей является поддержка операционной системой выполнения TRIM-команд для SMR-дисков. Администраторы должны удостовериться, что их ОС и файловая система настроены на регулярное выполнение операций TRIM, особенно если работа происходит с Windows.

  3. Особенности файловых систем: Не все файловые системы поддерживают динамическую дефрагментацию и TRIM. Например, ZFS известна отсутствием встроенных средств дефрагментации, что может привести к деградации производительности при массовой записи. Учтите это при выборе файловой системы для SMR-дисков.

  4. Работа с RAID-массивами: При работе с RAID-конфигурациями необходимо помнить о возможных сложностях при рельзилверинге данных. Важно заранее планировать последовательность операций восстановления и учитывать, что отсутствие предварительной очистки может существенно увеличить время восстановления.

Подводя итог, поддержка TRIM на SMR-дисках — это стратегическая возможность для улучшения работы при определенных сценариях использования. Это не столько "исправление" для старой технологии, сколько адаптивное решение для сложных современных систем хранения данных. Правильное применение TRIM в таких системах может значительно улучшить производительность и увеличить срок службы HDD, делая их более выгодными инвестициями в долгосрочной перспективе.

Оцените материал
Добавить комментарий

Капча загружается...