Linux

qemu/kvm 文件/塊磁碟設備類型 - 和 iothreads

  • May 5, 2020

在 CentOS 7 主機上,我正在從 Amazon Linux 2 qcow2 映像創建 VM:

  • 下載 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 可供 VM 使用
  • 使用原始文件類型、iothreadscache=noneio=native獲得最佳性能

因此,我的問題是……

如何讓我的 qcow2 作業系統映像成為可以與這些參數一起使用的 40G 原始塊設備?

要將 QCOW2 轉換為 RAW 圖像文件,請使用qemu-img convert,例如:

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

自QEMU 2.0起,QEMU就支持 IOThreads 。QEMU 2.0.0 在 EPEL 上可用,所以嘗試執行:

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

引用自:https://serverfault.com/questions/1015715