首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >VirtIO存储支持丢弃(fstrim)吗?

VirtIO存储支持丢弃(fstrim)吗?
EN

Unix & Linux用户
提问于 2019-05-10 12:37:36
回答 2查看 6.5K关注 0票数 8
代码语言:javascript
复制
$ 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之后:

代码语言:javascript
复制
$ 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上启用丢弃支持?还是代码还不支持它呢?我不一定需要确切的说明如何启用它,但我感到惊讶和好奇,我想要一个坚实的答案:-)。

EN

回答 2

Unix & Linux用户

回答已采纳

发布于 2019-05-10 12:37:36

很明显,在这种情况下,丢弃是不被支持的。但是,如果将磁盘从"VirtIO“更改为" SCSI ",并将SCSI控制器更改为"VirtIO”,则可以工作。我找到了一个演练。有几个演练;这只是第一个搜索结果。这个新选项称为virtio-scsi。另一个较旧的系统称为virtio-blockvirtio-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网站有一些很好的宣传,其中提到

  1. virtio-blk中的一些局限性
  2. virtio-scsi可以在传递模式下使用到SCSI LUN,并且可以使用各种新的SCSI命令特性,而不需要修改virtio-scsi。如果您没有专门使用SCSI传递,那么任何新命令都需要在QEMU中获得新的支持,而不是在virtio-scsi代码中。
  3. virtio-scsi包括对多个队列的支持。(我不清楚这是否也有助于提高单队列硬件的效率。)
票数 8
EN

Unix & Linux用户

发布于 2023-01-18 21:09:54

我必须在libvirt域XML文件中显式启用丢弃,这样它才能正常工作:

代码语言:javascript
复制
-      
+      
票数 2
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/518222

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档