fstrim이 lvm 및 dm-crypt를 사용하여 파티션을 정리하지 않는 것 같습니다.

fstrim이 lvm 및 dm-crypt를 사용하여 파티션을 정리하지 않는 것 같습니다.

dm-crypt 및 LVM을 사용하여 Fedora 25 설정을 시도했지만 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암호화 없이 반복 실행이 가능합니다.외부 4 /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가 지원되어야 합니다.

답변1

귀하의 테스트가 문서( man fstrim)와 일치하지 않는 것 같습니다.

-v, --verbose

상세한 실행. 이 옵션을 사용하면 fstrim은 파일 시스템의 출력을 블록 스택 아래로 바이트 단위로 장치에 전달하여 폐기할 수 있습니다. 저장 장치의 관점에서 이 숫자는 최대 폐기 양입니다. 반복되는 FITRIM ioctl 호출은 반복 폐기를 위해 동일한 섹터를 계속 전송하기 때문입니다.

fstrim은 매번 잠재적으로 삭제된 동일한 바이트를 보고합니다.하지만 폐기 사이에 기록된 섹터만 실제로 저장 장치에 의해 폐기됩니다. 또한 커널 블록 레이어는 RAID 스트라이프 형상, 정리를 지원하지 않는 LVM 설정의 장치 등을 수용하기 위해 폐기 범위를 조정할 수 있는 권한을 보유합니다. 이러한 감소는 fstrim_range.len(--length 옵션)에 반영되지 않습니다.

찾기 삭제 요청을 사용하는 것이 좋습니다블록 추적대신 fstrim을 실행하는 동안입니다. 드롭 요청이 스택 하단의 블록 장치에 제출되고 있는지 표시되기를 바랍니다. sda1과 sda2 사이의 결과를 비교할 수 있습니다(sda1에서 문서화되지 않은 동작을 피하기 위해 새로 부팅한 후).

btrace -a discard $DEV

관련 정보