Назад | Перейти на главную страницу

Управляемая 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, кажется, указывает, что это должно быть настроено таким образом.

Я пробовал монтировать контрольные группы, чтобы попытаться решить эту проблему. После того, как я это сделаю, процесс 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 не должны с этим справиться?

Попробуйте изменить libvirt / qemu.conf на:

user = "oneadmin"
group = "kvm"