OpenNebula 管理的 libvirt 不允许访问 /dev/kvm

OpenNebula 管理的 libvirt 不允许访问 /dev/kvm

我有一个全新安装的 Open Nebula 3.2.1,我正在尝试让它运行并管理一些新安装的 debian squeeze kvm 主机。

我的问题是,当 Open Nebula 部署虚拟机时,KVM 进程无法访问/dev/kvm主机上的设备。

我已根据文档设置了所有内容:

root@onhost1:~# ls -al /dev/kvm
crw-rw----  1 root kvm 10, 232 Feb  8 11:24 /dev/kvm

root@onhost1:~# id oneadmin
uid=500(oneadmin) gid=500(oneadmin) groups=500(oneadmin),106(kvm),108(libvirt)

libvirt/qemu.conf has:
user = "oneadmin"
group = "oneadmin"

当 libvirt 创建虚拟机时,它们没有设置任何辅助组,因此进程无法/dev/kvm通过文件权限进行访问。好吧,这很公平,尽管 Open Nebula 文档似乎表明应该以这种方式进行设置。

我尝试挂载 cgroup 来解决这个问题。挂载后,kvm 进程有以下 cgroup 条目:

1:devices,cpu:/libvirt/qemu/one-29

对应于:

/dev/cgroup/libvirt/qemu/one-29/devices.list:c 10:232 rwm

我对 cgroups 的工作方式缺乏了解,这告诉我这应该允许该进程访问/dev/kvm,但却不行。

我可以通过添加 ACL 条目 ( setfacl -m u:oneadmin:rw /dev/kvm) 来使它正常工作,但这似乎不对。Open Nebula/libvirt 不应该处理这个问题吗?

  • 需要做出哪些正确的改变?
  • 是否应该更改文档?
  • 我是否遗漏了什么?

答案1

尝试将 libvirt/qemu.conf 更改为:

user = "oneadmin"
group = "kvm"

相关内容