재부팅 후 fstrim이 mdraid 이미지의 모든 여유 공간을 정리하는 이유는 무엇입니까? [복사]

재부팅 후 fstrim이 mdraid 이미지의 모든 여유 공간을 정리하는 이유는 무엇입니까? [복사]

SSD 2개가 있는 서버가 있습니다.

Model Family:     Intel 520 Series SSDs
Device Model:     INTEL SSDSC2BW240A3F
Firmware Version: 400i
User Capacity:    240,057,409,536 bytes [240 GB]
Sector Size:      512 bytes logical/physical

EXT4 파일 시스템으로 포맷된 3개의 mdraid 미러 장치(md0,1,2)가 있습니다. 저는 gpt가 아닌 mbr 파티션 테이블을 사용하고 있습니다. 3개의 파일 시스템은 모두 다음을 통해 마운트됩니다.버리다설치 옵션.

/dev/md0 on / type ext4 (rw,discard,errors=remount-ro)
/dev/md2 on /vservers type ext4 (rw,discard)
/dev/md1 on /var type ext4 (rw,discard)

문제는 서버를 다시 시작할 때마다fstrim -v /any_mountpoint사용하지 않는 공간을 모두 정리해야 한다고 말합니다. 파일 시스템의 전체 fstrim을 수행하면 다음 재부팅까지 모든 것이 예상대로 작동합니다. 재부팅 후 fstrim을 다시 실행하면 전체 파일 시스템이 정리됩니다.

누군가 내가 뭘 잘못하고 있는지 설명해 줄 수 있나요? 내 생각에 ext4는 정리된 파일 시스템 부분을 기억한다고 생각합니다(내 데스크탑에서는 SSD가 1개이므로 그렇습니다). 이것은 3.13.0-23 일반 커널이 있는 Ubuntu 14.04에 있습니다.

답변1

얼마전에 제가 비슷한 질문을 한 적이 있습니다.fstrim은 폐기 마운트된 파티션을 사용하더라도 파티션 크기를 절반 이상 줄입니다.. 이 질문에서 무슨 일이 일어나고 있는지에 대한 더 자세한 설명/토론이 있지만 기본적으로 정리된 내용 fstrim(및 기본 FITRIM ioctl)에 대한 기록은 디스크에 기록되지 않고 커널 메모리에 보관됩니다. fstrim재부팅 후 실행될 때마다 FITRIM ioctl가능한 전체 범위의 s가 방출됩니다.

관련 정보