Допустим, у нас есть ext4
образ файловой системы, который мы выгружали на SSD (с dd
). После нескольких подключений мы узнаем, что следует использовать discard
флаг испускать TRIM
команды к приводу. Поскольку неясно, действительно ли ext4
воля отделка все свободные блоки с первого раза монтируются discard
, делаем ручную онлайн-обрезку:
fstrim /mount/point
Надеюсь, это не будет взаимодействовать с discard
вариант. Если мы выполним fstrim
второй раз подряд он сообщит, что блоки не были обрезаны. Любопытно, что после перезагрузки системы дополнительный fstrim
run снова сообщит, что многие блоки были обрезаны (в зависимости от свободного места).
Поэтому, хотя кажется очевидным, что ядро Linux не отслеживает обрезанные блоки в постоянном хранилище, вопрос в следующем: SSD-накопитель постоянно запоминает обрезанные блоки?
В случае, если это полезно, целью всего этого является достижение состояния, аналогичного состоянию, если бы файловая система была только что создана и смонтирована с помощью discard
включен с самого начала. Так что мне было интересно, если единственное выполнение fstrim
было достаточно.
SSD запоминает, какие блоки обрезаются при перезагрузке. В противном случае SSD будет работать очень медленно после каждой перезагрузки, пока ОС не удастся проверить весь диск на наличие обрезанных блоков.
Однако ОС не отслеживает, какие блоки уже передали SSD-накопителю для TRIM при перезагрузках.
Единственный вызов fstrim
должно быть достаточно.