여러 파티션이 있는 SSD 디스크가 있습니다. 그 중 하나는 /home
ecryptfs 홈 디렉터리를 포함하는 로 마운트된 btrfs 볼륨이 있다는 것입니다 .
볼륨을 정리할 때 fstrim이 해당 볼륨의 데이터 블록을 정리하지 않는 것 같습니다. 이유는 무엇입니까? 아래에서 제가 설명과 함께 따라온 프로세스 및 설정에 대한 모든 정보를 볼 수 있습니다.
$ cat /etc/fstab
:
UUID=xxx / ext4 errors=remount-ro 0 1
UUID=yyy /media/vfio ext4 defaults 0 2
UUID=zzz /home btrfs defaults 0 2
$ mount | grep sda
:
/dev/sda5 on / type ext4 (rw,relatime,errors=remount-ro,data=ordered)
/dev/sda1 on /media/vfio type ext4 (rw,relatime,stripe=32721,data=ordered)
/dev/sda2 on /home type btrfs (rw,relatime,ssd,space_cache,subvolid=5,subvol=/)
$ ls -la /home /home/myuser/.Private # summary
:
/home:
.ecryptfs
myuser
/home/myuser/.Private -> /home/.ecryptfs/myuser/.Private
$ df -h
:
Filesystem Size Used Avail Use% Mounted on
/dev/sda5 16G 11G 4,7G 69% /
/dev/sda1 93G 52G 36G 60% /media/vfio
/dev/sda2 828G 542G 286G 66% /home
/home/myuser/.Private 828G 542G 286G 66% /home/myuser
처음으로 모든 볼륨에서 fstrim을 수행했습니다.
$ fstrim -va
:
/home/myuser: 286,4 GiB (307518836736 bytes) trimmed
/home: 286,4 GiB (307485450240 bytes) trimmed
/media/vfio: 40,4 GiB (43318886400 bytes) trimmed
/: 5,4 GiB (5822803968 bytes) trimmed
/home
추가 ecryptfs 마운트로 인해 fstrim이 트리에서 두 번 실행되는 것 같습니다. 이것은 문제가 되지 않습니다(특정 마운트 지점으로 fstrim을 실행하면 이를 방지할 수 있습니다). 문제는 /home
매 실행마다 동일한 양의 데이터가 발견되어 정리되기 때문에 정리가 예상대로 작동하지 않는다는 것입니다.
추가 실행에서는 이를 보여주었습니다.
$ fstrim -v /
(좋아요):
/: 0 B (0 bytes) trimmed
$ fstrim -v /home
(이것은 작동하지 않습니다):
/home: 286,4 GiB (307478061056 bytes) trimmed
sda2( /home
) 가지치기는 실행하는 데 시간이 좀 걸리므로 실제로 뭔가를 하고 있다는 점에 유의하세요.
답변1
fstrim이 보고한 크기에 대해 걱정하는 것은 일반적인 오해입니다.
정말 말이 안 돼요. 그냥 무시하세요.
fstrim
적절한 것을 발행하면 ioctl
다른 모든 것은 파일 시스템 결정이며 파일 시스템은 매우 다르게 작동합니다. 예를 들어, ext4
동일한 내용을 계속해서 볼 수 있도록 다듬지 말고 항상 볼 수 있도록 모든 무료 내용을 다듬어 보세요 0 bytes trimmed
. 다른 파일 시스템은 다른 작업을 수행할 수 있으며 이는 모두 파일 시스템이 시스템 호출 논리를 구현하기 위해 선택하는 방법에 따라 다릅니다(전혀 구현하는 경우).xfs
<roughly free space> bytes trimmed
FITRIM
정리하는 데이터의 양이 사용 가능한 공간보다 크지 않다면 (실제로 파일 시스템에서) 보고하는 내용에 관계없이 fstrim
문제가 없습니다.
결국, SSD 자체만이 현재 정리된 내용과 정리되지 않은 내용을 실제로 알 수 있습니다. 이미 정리된 블록을 잘라내도 문제가 되지 않습니다.
x bytes trimmed
보고서를 토대로 결론을 내리지 마십시오 fstrim
.
데이터가 정리되었는지 확인하려면 디스크의 원본 데이터를 검사해야 합니다. (https://unix.stackexchange.com/a/85880/30851) 그러나 그 방법은 btrfs에서는 작동하지 않을 수 있습니다. 나는 그것을 시도한 적이 없습니다.