Загрузка 0
ПОДЕЛИТЬСЯ

Мой блог

Листай вниз

Как внешний бокс для SSD блокирует работу TRIM в Windows

Как внешний бокс для SSD блокирует работу TRIM в Windows

Проекты, которые не помещаются на ноутбук, я переношу на внешний SSD. Долгое время я исходил из того, что операционная система обслуживает внешние и внутренние накопители одинаково. На первый взгляд всё выглядело благополучно, однако после того, как я присмотрелся к адаптеру устройства, обнаружилась скрытая проблема. Если накопитель в одном боксе может сообщать о доступности функции ReTrim, то при установке в другой корпус система выдает информацию об отсутствии операций. Для этой проверки я задействовал два стандартных бокса для твердотельных накопителей, используя один и тот же диск.

Команда fsutil и нюансы ее формулировок

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

В командной строке я ввел команду fsutil behavior query DisableDeleteNotify. В ответ система вернула ноль. Хотя на бумаге это выглядит как зеленый свет, на практике мы имеем дело с двойным отрицанием. Данный ответ лишь свидетельствует о том, что Windows не блокирует команды TRIM и уведомления об удалении. При этом система никак не сообщает, доходят ли уведомления до самого накопителя и выполняет ли диск соответствующие действия.

Затем я проверил инструмент оптимизации дисков, а через PowerShell запустил команду Optimize-Volume -ReTrim. В обоих случаях Windows корректно распознала устройство как твердотельный накопитель и предоставила те самые пути оптимизации, которые ожидаешь увидеть для любого SSD. Эти проверки подтвердили лишь готовность самой операционной системы, но они не смогли доказать, пропускает ли мост в корпусе накопителя команду UNMAP или же просто отбрасывает ее.

Когда те же самые инструменты применяются к внутреннему накопителю NVMe, картина получается более полной. После выполнения процедуры повторного тримминга в системных журналах обычно появляется четкая запись об истории оптимизации, которая подтверждает завершение команды. Журнал же моего внешнего тома показал лишь то, что перед нами твердотельный накопитель с активным графиком обслуживания. Со стороны Windows всё выглядело безупречно, и ничто не указывало на сбои в обслуживании. Однако оставался вопрос: существовал ли сквозной путь между портом USB и чипами памяти NAND?

Взаимодействие накопителя и операционной системы через мост

Мой накопитель никогда не общался с Windows напрямую — за него это делал внешний корпус. USB-мосты занимаются переводом команд хранения данных, и именно на этапе этого перевода часто происходят потери.

Если проследить всю цепочку, то получается прямой путь: стек хранения USB получает от Windows команду UNMAP на уровне SCSI. Именно эта команда лежит в основе поведения TRIM, с которым сталкивается пользователь. Затем мост внутри корпуса должен перевести ее на язык, понятный контроллеру твердотельного накопителя, после чего контроллер получает возможность пометить соответствующие блоки как свободные. Ошибочно полагать, что внешний бокс работает как абсолютно прозрачная труба. Адаптеры выполняют роль переводчиков и во время трансляции могут отбрасывать определенные SCSI-команды, включая UNMAP.

Протокол UASP подтверждает, что корпус использует протокол USB Attached SCSI, но это не дает никаких гарантий, что абсолютно все команды хранения данных, включая UNMAP, пройдут сквозь него до конца. Следовательно, корпус может не справляться с передачей TRIM или UNMAP даже в тех случаях, когда на коробке заявлена поддержка USB 3.2. В некоторых устройствах трансляция корректно работает лишь при определенных условиях: например, при использовании конкретного контроллера USB, определенной версии прошивки или после «холодного» подключения, когда устройство подсоединяется при уже выключенном хосте. Во всех остальных сценариях такие мосты дают сбой.

Общая схема выглядит следующим образом: Windows отправляет запрос через стек USB на мостовой чип, который перенаправляет его контроллеру SSD, а тот уже работает с памятью NAND. Как правило, сами накопители поддерживают TRIM, но именно корпус определяет, сможет ли хост эту поддержку увидеть. Из-за этого существует четкая граница между поддержкой TRIM самим SSD и поддержкой TRIM через конкретный бокс. Ошибка заключается в том, чтобы считать эти вещи одинаковыми.

Команда fsutil для проверки TRIM на внешний SSD
Выполнение команды fsutil для проверки статуса уведомлений об удалении.
Запуск команды optimize retrim для внешнего SSD
Запуск принудительного процесса retrim для подключенного накопителя.

Смена корпуса и изменение ответов системы

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

Окно оптимизации дисков в операционной системе Windows для внешний SSD
Интерфейс утилиты Optimize Drives для твердотельных накопителей.
Внешний бокс для NVMe накопителя, используемый как внешний SSD
Подключение внешнего кармана для накопителя к ноутбуку.
Установка твердотельного накопителя во внешний бокс Sabrent M.2
Процесс сборки накопителя в алюминиевом корпусе.

Оба бокса эксплуатировались на протяжении нескольких месяцев, справляясь со схожими нагрузками: архивными фото, видеоматериалами, музыкальными коллекциями и объемными рабочими папками. В операционной системе оба устройства определялись как накопители с интерфейсом USB. В служебной утилете «Оптимизация дисков» тип носителя корректно обозначался как твердотельный накопитель, однако стоило запустить повторную процедуру TRIM, как между ними обнаружилась разница. На первом боксе эта операция поддерживалась, тогда как на втором была недоступна.

Сравнение работы разных боксов для накопителя

Для наглядности можно сопоставить ключевые параметры:

  • Один и тот же накопитель: устройство A — да, устройство B — да.
  • Определение накопителя в Windows: устройство A — твердотельный накопитель, устройство B — твердотельный накопитель.
  • Поддержка оптимизации Windows: устройство A — доступна команда ReTrim, устройство B — операция недоступна.

Не пытаясь гадать по семействам микросхем, автор материала сделал сам корпус ключевой переменной, поскольку точно идентифицировать мостовые контроллеры в каждом случае не представлялось возможным. Даже внешне неотличимые друг от друга корпуса могут кардинально различаться на уровне прошивки и особенностей реализации. Подобные итоги вряд ли могут быть случайностью, учитывая, что сам твердотельный накопитель и персональный компьютер оставались неизменными.

Особенности работы накопителей без поддержки TRIM

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

Как выбрать надежный бокс

Далеко не каждый корпус достоин того, чтобы в него устанавливали быстрый накопитель. Перед тем как приступать к диагностике падения производительности или покупке нового диска, полезно ответить на три вопроса:

  • Поддерживает ли бокс TRIM и UNMAP на аппаратном уровне, а не просто заявляет о поддержке высоких скоростей USB 3.2?
  • Предоставляет ли производитель официальные обновления прошивки для устройства?
  • Упоминают ли независимые обзоры или детальные разборы конкретную модель мостового контроллера и передачу команд TRIM/UNMAP?

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

Источник: makeuseof.com

Оставить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

01.
На платформе MonsterInsights