fstrim, похоже, не обрезает раздел, который использует lvm и dm-crypt

Я пытаюсь настроить Fedora 25 с dm-crypt и LVM, но изо всех сил пытаюсь заставить TRIM работать.

$ sudo fstrim -av /boot: 28.6 MiB (30003200 bytes) trimmed /: 56.5 GiB (60672704512 bytes) trimmed $ sudo fstrim -av /boot: 0 B (0 bytes) trimmed /: 56.5 GiB (60671877120 bytes) trimmed 

Как видно из вышеприведенного вывода, многократное выполнение fstrim работает с незашифрованным ext4 /boot , но, похоже, не влияет на / (который находится на одном диске).

Настройка SSD -> dm-crypt -> LVM -> XFS

 $ lsblk -D NAME DISC-ALN DISC-GRAN DISC-MAX DISC-ZERO sda 0 512B 2G 0 ├─sda2 0 512B 2G 0 │ └─luks-dd5ce54a-34c9-540c-a4cf-2a712b8a3a5e 0 512B 2G 0 │ └─fedora-root 0 512B 2G 0 └─sda1 0 512B 2G 0 

Согласно этому вопросу, DISC-ZERO == 0 не должна быть проблемой

 # cat /etc/crypttab luks-dd... UUID=dd.. none discard # cat /etc/lvm/lvm.conf devices { ... issue_discards = 1 ... } 

Я также добавил параметр rd.luks.options=discard в /etc/default/grub и обновил initramfs и grub.cfg:

 # grub2-mkconfig -o /boot/grub2/grub.cfg # dracut -f 

Опция сброса правильно распространялась:

 # dmsetup table luks-d... 0 233385984 crypt aes-xts-plain64 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 0 8:2 4096 1 allow_discards 

Я пробовал варианты вышеупомянутой настройки, которые можно найти в Интернете, но это, похоже, следует за страницами руководства. Я не пытался использовать другую файловую систему, но XFS следует поддерживать.

  • Используйте «tune2fs» в файловой системе XFS, получите «Не удалось найти действительный суперблок файловой системы».
  • Как рассчитываются дельта XFS для xfsdump -ln?
  • mkfs.xfs / dev / custom_dev
  • Как смонтировать раздел XFS через / etc / fstab, а пользователи без полномочий root могут использовать r / w?
  • Использует ли какая-либо файловая система Copy for Write Mechanism для CP
  • Возможно изменение размера XFS?
  • Нормально ли иметь дубликат / var mount при использовании докеров?
  • XFS: rm не завершается, xfs_repair невозможно
  • One Solution collect form web for “fstrim, похоже, не обрезает раздел, который использует lvm и dm-crypt”

    Я думаю, что ваше тестирование не соответствует документации ( man fstrim ).

    -v, –verbose

    Подробное исполнение. С помощью этой опции fstrim выведет количество байтов, переданных из файловой системы в стек блока, на устройство для потенциального сброса. Это число является максимальной суммой сброса с точки зрения устройства хранения, так как FITRIM ioctl, называемый повторным, будет продолжать отправлять одни и те же сектора для отбрасывания повторно.

    fstrim будет сообщать о том же потенциальном отбросе байтов каждый раз , но только сектора, которые были записаны между сбросами, будут фактически отброшены устройством хранения. Кроме того, слой блока ядра оставляет за собой право регулировать диапазоны отбрасывания, чтобы соответствовать геометрии полосы рейда, устройствам без обрезки в настройке LVM и т. Д. Эти сокращения не отражались бы в fstrim_range.len (опция -length).

    Я предлагаю искать запросы сбрасывания, используя blktrace а именно, в то же время, когда вы запускаете fstrim. Надеюсь, он покажет, отправляются ли запросы сбрасывания на блок-устройство в нижней части стека. Вы можете сравнить результаты между sda1 и sda2 (после новой загрузки, чтобы избежать недокументированного поведения на sda1).

     blktrace -d $DEV -a discard -o - | blkparse -i - 
    Interesting Posts
    Linux и Unix - лучшая ОС в мире.