Kvm-Virtualization

libvirt cputune 配置如何進入 qemu-kvm

  • February 24, 2020

我正在將 xml libvirt 配置移植到 qemu 可執行參數。簡單地說,我有 .xml vm 配置,我想通過使用特殊的命令行參數virsh edit vm-name執行來執行同一台 vm 機器。qemu-system-x86_64死於我無法使用的特定需求libvirt。問題是 .xml vm config 使用來自主機的特殊 cpu 映射:

<cputune>
   <vcpupin vcpu='1' cpuset='3'/>
   <vcpupin vcpu='0' cpuset='0-2'/>
   <emulatorpin cpuset='0-2'/>
</cputune>

然後在 cpu numa config 中使用這些 vcpus:

<cpu>
   <numa>
       <cell cpus='0' memory='2097152'/>
       <cell cpus='1' memory='2097152'/>
   </numa>
</cpu>

我以這種方式映射 numa 配置:/usr/bin/qemu-system-x86_64 -numa node,nodeid=0,cpus=0,mem=2048 -numa node,nodeid=1,cpus=1,mem=2048但我不知道如何為/usr/bin/qemu-system-x86_64. 那就是問題所在。有任何想法嗎?

PS 我的具體任務是在 Kata-containers 執行時執行帶有 vcpu 調整的特定 vm,因為我想在 Docker 或 Kubernetes 下執行這樣的 vm。所以我需要修補 kata-runtime。Kata-runtime 使用Intel GoVmm執行 qemu-kvm vms ,它只能使用命令行參數執行 qemu 二進製文件。目前我正在修補 govmm 以滿足我的特定需求。Intel govmm 不使用 libvirt。

這些設置是使用 cgroups 而不是 qemu 選項設置的。cpuset您可以使用cgroup 子系統來實現它。您可以通過執行 qemu 程序獲取 cgroup 設置cat /proc/<qemu pid>/cgroups

另見: http: //man7.org/linux/man-pages/man7/cpuset.7.html

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