Постоянство 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
должно быть достаточно.