Linux
qemu/kvm 文件/塊磁碟設備類型 - 和 iothreads
在 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 還不夠好。
我想嘗試使用
iothreads
,cache=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 使用
- 使用原始文件類型、
iothreads
和cache=none
以io=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