У меня есть свежая установка 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"