URL: https://www.opennet.ru/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 92426
[ Назад ]

Исходное сообщение
"Новый libvirt не даёт qemu открыть /dev/net/tun"

Отправлено Ilya Evseev , 12-Окт-11 05:23 
Имеется Centos 6.

Чтобы qemu-kvm нормально работал с TAP-интерфейсами из-под libvirt,
был выключен SELinux и отредактирован /etc/libvirt/qemu.conf:

security_driver = none
user = root
group = root
clear_emulator_capabilities = 0

Благодаря этому qemu нормально запускался, пока Centos не был обновлён из CR.
libvirt при этом обновился с 0.8.1-27.el6 до 0.8.7-18.el6_1.1

Теперь qemu-kvm не хочет запускаться ни в какую - не может открыть /dev/net/tun.
Все советы из https://fedoraproject.org/wiki/How_to_debug_Virtualization_p... выполнены.
Дополнительно сделан "setcap cap_net_admin=ei /usr/libexec/qemu-kvm"

Специально положил на место /usr/libexec/qemu-kvm минимальную заглушку,
чтобы убедиться, что дело не в qemu, а в libvirt:

cmdline args: ...
user: uid=0(root) gid=0(root) groups=0(root),1(bin),2(daemon),3(sys),4(adm),6(disk),10(wheel)
running with caps =ep
open /dev/net/tun: Operation not permitted

Вопрос: в чём ещё может быть дело и что ещё имеет смысл проверить?


Содержание

Сообщения в этом обсуждении
"Новый libvirt не даёт qemu открыть /dev/net/tun"
Отправлено Ilya Evseev , 12-Окт-11 05:29 
> Благодаря этому qemu нормально запускался, пока Centos не был обновлён из CR.
> libvirt при этом обновился с 0.8.1-27.el6 до 0.8.7-18.el6_1.1
> Теперь qemu-kvm не хочет запускаться ни в какую
> - не может открыть /dev/net/tun.

Пересборка libvirt 0.8.7 без selinux и cap-ng не помогла:

rpmbuild --rebuild --without capng --without selinux libvirt-0.8.7-18.el6_1.1.src.rpm
rpm -Uvh ~/rpmbuild/RPMS/x86_64/libvirt*-0.8.7-18.el6.1.x86_64.rpm


"Новый libvirt не даёт qemu открыть /dev/net/tun"
Отправлено Ilya Evseev , 12-Окт-11 06:14 
Solution:
1) mkdir /dev/cgroup; mount -t cgroup none /dev/cgroup -o devices
2) uncomment cgroup_controllers and cgroup_device_acl in /etc/libvirt/qemu.conf
3) add "/dev/net/tun" to cgroup_device_acl list
4) /etc/init.d/libvirtd restart
5) fuck off redhead!