qemu/kvm 文件/块磁盘设备类型 - 和 iothreads

qemu/kvm 文件/块磁盘设备类型 - 和 iothreads

在 CentOS 7 主机上,我正在从 Amazon Linux 2 qcow2 映像创建虚拟机:

  • 下载 Amazon Linux 2 cloud-init 映像(.qcow2 格式)
  • 复制此文件,运行qemu-img resize将其扩大到40G
  • <disk type='file'>在我的虚拟机中使用和定义它<source file='my_resized_file.qcow2'>

这是可行的 - 但我在这个主机上运行着大约 30 台虚拟机,所有虚拟机都运行着相当重的 Docker 工作负载 - 而且磁盘 IO 不够好。

我想尝试使用iothreadscache=none因为io=native网上有很多帖子表明使用这些设置可以提高 SSD 和高 CPU 数主机的性能。我有足够的 CPU 可用。

我尝试过简单地添加iothreads=1到域和iothread=1磁盘,但失败并出现错误IOThreads not supported for this QEMU。我推测这是因为我使用的disk type=file是而不是disk type=block

我想:

  • 使用操作系统映像及其 cloud-init 函数
  • 为虚拟机提供 40G
  • 使用原始文件类型、iothreadscache=none可获得io=native最佳性能

因此我的问题是......

如何让我的 qcow2 OS 映像成为可以使用这些参数的 40G 原始块设备?

答案1

要将 QCOW2 转换为 RAW 图像文件,请使用qemu-img convert, 例如:

$ qemu-img convert -O raw /path/to/image.qcow2 /path/to/image.bin

QEMU 自 2011 年起支持 IOThreads。QEMU 2.0。QEMU 2.0.0 已在 EPEL 上可用,因此请尝试运行:

# yum -y install epel-release
# yum makecache && yum -y install qemu

相关内容