我的 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
是0
)。我特意去查了一下,dm-thin.c
确认了一下。