我正在使用带有 KVM/QEMU 的 libvirt。我找到了一个很棒的 PPA,uvtool (http://s3hh.wordpress.com/2013/12/12/quickly-run-ubuntu-cloud-images-locally-using-uvtool/),用于管理卷存储池中的映像和元数据。我可以从命令行快速创建新的 VM 客户机。这使得使用 shell 脚本轻松使用 uvt-kvm(uvtool 的包装器)创建/销毁以及使用 virsh(来自 libvirt 包)启动/停止变得容易。
由于某种原因,客户机只有一个 CPU/核心,我需要从命令行设置该数字。我找到了对 virsh 的 setvcpu 选项的引用,但没有如何使用它的示例。以下是我针对错误消息尝试的方法:
启动具有 2 个 CPU 的现有客户机:
tahoar@pttools0:~$ virsh start test-host setvcpus --count 2
error: command 'start' doesn't support option --count
使用默认设置启动现有客户机:
tahoar@pttools0:~$ virsh start test-host
Domain test-host started
在运行客户机时设置 CPU:
tahoar@pttools0:~$ virsh setvcpus test-host --count 2
error: invalid argument: requested vcpus is greater than max allowable vcpus for the domain: 2 > 1
谢谢你的帮助。
答案1
使用 创建虚拟机时uvt-kvm create
,您可以使用选项设置虚拟机中的 CPU 数量。--cpu cores
答案2
要使 setvpcus 正常工作,您需要为虚拟机配置“空闲”vcpus。示例 xml 配置摘录,其中 cpu 数量为 4,最大值为 16
<vcpu placement='static' current='4'>16</vcpu>
我只在 CentOS 6 上测试过,但在 Ubuntu 上应该是一样的。更多信息请见此处: