fstrim не помнит блоки trmmed после перезагрузки

260
anonimou

Я использую LUKS + LVM полное шифрование диска (/ boot включен).

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

Я боюсь, что это изнашивает мой SSD.

Aug 07 15:49:18 /: 338.4 GiB (363312041984 bytes) trimmed [REBOOT] Aug 07 15:49:45 /: 225.5 MiB (236392448 bytes) trimmed [NO REBOOT] Aug 07 16:00:01 /: 1.4 GiB (1476653056 bytes) trimmed [REBOOT] Aug 09 08:08:43 /: 338.3 GiB (363260616704 bytes) trimmed [NO REBOOT] Aug 09 10:00:02 /: 1.6 GiB (1708560384 bytes) trimmed [NO REBOOT] Aug 09 16:00:02 /: 1.2 GiB (1317408768 bytes) trimmed [NO REBOOT] Aug 10 09:10:24 /: 4.9 GiB (5261406208 bytes) trimmed [REBOOT] Aug 10 15:02:24 /: 338.3 GiB (363209334784 bytes) trimmed 

Это правильное поведение? Я ожидаю, что после перезагрузки он продолжит просто обрезать несколько ГиБ, а не все свободное пространство.

0

1 ответ на вопрос

1
Elrond

Насколько я понимаю, твердотельные накопители fstrimи соответствующие вещи, это выглядит так:

TL; DR На обычных твердотельных накопителях повторная работа fstrimв тех же областях обычно не должна повредить.

fstim обходит всю файловую систему, проверяет, какие блоки не используются fs, и сообщает накопителю.

Таким образом, SSD получает команду TRIM: «Блок 123 не используется ОС, вы можете делать с ним все, что захотите». Большинство твердотельных накопителей помечают блок как неиспользуемый и фактически обнуляют содержимое. Поэтому при следующей команде TRIM для того же блока SSD обычно делает следующее: «Эй, он уже помечен как неиспользуемый. Я ничего не делаю и сообщаю пользователю, что он прошел успешно».

Вы можете использовать smartctl --xall /dev/sdXдо и после fstrimпроверки значений выравнивания износа (большинство твердотельных накопителей имеют некоторые атрибуты выравнивания износа). Они не должны сильно меняться. Очень мало для тех немногих блоков, которые изменили ваши демоны.

Похожие вопросы