Постоянство TRIM через перезагрузки

Допустим, у нас есть ext4 образ файловой системы, который мы сбросили на SSD (с dd). После нескольких креплений мы узнаем, что мы должны использовать discard флаг испускать TRIM Команды на диск. Как неясно, является ли ext4 обрежет все свободные блоки при первом discardМы делаем ручную онлайн-обрезку:

fstrim /mount/point

Надеюсь, это не будет взаимодействовать с discard вариант. Если мы выполним fstrim второй раз подряд он сообщит, что ни один блок не был обрезан. Любопытно, что после перезагрузки системы fstrim run снова сообщит, что многие блоки были обрезаны (в зависимости от свободного места).

Поэтому, хотя кажется очевидным, что ядро ​​Linux не отслеживает обрезанные блоки в постоянном хранилище, вопрос заключается в следующем: запоминает ли накопитель SSD постоянно обрезанные блоки?

В случае, если это полезно, намерение всего этого состоит в том, чтобы достичь состояния, аналогичного, если бы файловая система была недавно создана и смонтирована с discard включен с самого начала. Так что мне было интересно, если одно исполнение fstrim было достаточно.

1 ответ

Решение

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

Операционная система, однако, не отслеживает, какие блоки она уже сообщала SSD TRIM при перезагрузке.

Единственный вызов fstrim должно быть достаточно.

Другие вопросы по тегам