$ uname -r
5.0.9-301.fc30.x86_64
$ findmnt /
TARGET SOURCE FSTYPE OPTIONS
/ /dev/vda3 ext4 rw,relatime,seclabel
$ sudo fstrim -v /
fstrim: /: the discard operation is not supported相同的VM,但是在将磁盘从VirtIO切换到SATA之后:
$ findmnt /
TARGET SOURCE FSTYPE OPTIONS
/ /dev/sda3 ext4 rw,relatime,seclabel
$ sudo fstrim -v /
/: 5.3 GiB (5699264512 bytes) trimmed虚拟磁盘由一个QCOW2文件支持。我正在使用virt-manager / libvirt。libvirt是4.7.0-2.fc29.x86_64版本。我的主机目前正在运行一个普通内核Build5.1 (ish),所以目前它有点“定制”,但是我从股票Fedora内核配置开始构建它。
是否有一种方法可以在VirtIO上启用丢弃支持?还是代码还不支持它呢?我不一定需要确切的说明如何启用它,但我感到惊讶和好奇,我想要一个坚实的答案:-)。
发布于 2019-05-10 12:37:36
很明显,在这种情况下,丢弃是不被支持的。但是,如果将磁盘从"VirtIO“更改为" SCSI ",并将SCSI控制器更改为"VirtIO”,则可以工作。我找到了一个演练。有几个演练;这只是第一个搜索结果。这个新选项称为virtio-scsi。另一个较旧的系统称为virtio-block或virtio-blk。
我还在Ubuntu跟踪器上找到了一个很棒的线程。它指出,virtio-blk开始支持Linux5.0中的丢弃请求。它说,这也需要QEMU的支持,QEMU是在2019年2月22日承诺的。因此,在未来的版本中,我认为我们将自动获得VirtIO和丢弃的支持。
目前,我的virt-manager默认不创建virtio-scsi磁盘,即使它知道我正在安装Fedora 29;它只创建基本的"VirtIO“磁盘。我不知道切换到virtio-scsi是否有什么缺点。
我想,与模拟的virtio-scsi相比,virtio-blk提供了与D10相同的性能优势。(我没有看到在virt-manager中的任何地方使用NVME协议的选项:-P,带或不带VirtIO)。
oVirt网站有一些很好的宣传,其中提到
virtio-blk中的一些局限性virtio-scsi可以在传递模式下使用到SCSI LUN,并且可以使用各种新的SCSI命令特性,而不需要修改virtio-scsi。如果您没有专门使用SCSI传递,那么任何新命令都需要在QEMU中获得新的支持,而不是在virtio-scsi代码中。virtio-scsi包括对多个队列的支持。(我不清楚这是否也有助于提高单队列硬件的效率。)发布于 2023-01-18 21:09:54
我必须在libvirt域XML文件中显式启用丢弃,这样它才能正常工作:
-
+ https://unix.stackexchange.com/questions/518222
复制相似问题