Назад | Перейти на главную страницу

TRIM сохраняемость при перезагрузках

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

fstrim /mount/point

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

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

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

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

Однако ОС не отслеживает, какие блоки уже передали SSD-накопителю для TRIM при перезагрузках.

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