내 LVM에는 씬 프로비저닝이 활성화되어 있습니다. 약간 다른 ext4 파일 시스템을 가진 거의 동일한 두 개의 씬 논리 볼륨이 있습니다. 첫 번째 볼륨은 파일 시스템을 저장하는 데 전적으로 사용됩니다. 두 번째 볼륨에서는 파일 시스템이 더 작은 오프셋에 저장됩니다. 옵션을 통해 설치 됩니다 -o offset=1048576
.
첫 번째 볼륨은 이 명령을 사용하여 정리할 수 있지만 fstrim
두 번째 볼륨은 정리할 수 없습니다. 오류가 발생합니다.
fstrim: second: the discard operation is not supported
나는 이것이 오프셋 마운팅 때문이라고 생각합니다. 오프셋 옵션 마운트 명령을 받으면 임시 루프 장치를 생성하여 마운트합니다. 따라서 주요 용의자는 루핑 장치입니다.
볼륨의 시작 블록 주소로 오프셋된 파일 시스템을 어떻게든 정리할 수 있습니까?
답변1
불가능해 보인다. 이유를 알아내려고 노력 중입니다. 댓글은 다음과 같습니다.loop.c
:
/*
* If the backing device is a block device, mirror its zeroing
* capability. Set the discard sectors to the block device's zeroing
* capabilities because loop discards result in blkdev_issue_zeroout(),
* not blkdev_issue_discard(). This maintains consistent behavior with
* file-backed loop devices: discarded regions read back as zero.
*/
LVM 씬 장치는 제로화 기능을 보고하지 않습니다( write_zeroes_max_bytes
yes 0
). 가서 확인하고 dm-thin.c
확인했어요.