我想让我的libvirt / lxc容器使用tun / tap设备。 为了做到这一点,我为一个正在运行的容器,我可以通过以下方式将其添加到允许的设备:
# echo "c 10:200 rwm" > /sys/fs/cgroup/devices/libvirt/lxc/client-1/devices.allow
导致:
# cat /sys/fs/cgroup/devices/libvirt/lxc/client-1/devices.list c 1:3 rwm c 1:5 rwm c 1:7 rwm c 1:8 rwm c 1:9 rwm c 5:0 rwm c 5:2 rwm c 136:* rwm c 10:200 rwm
但是,我有一些困难,使这个默认设置为每个容器。
谷歌search显示,改变/etc/cgconfig.conf
group libvirt/lxc { devices { devices.allow="c 10:200 rwm"; } }
应该修复,但它不(即使在重新启动涉及的服务-libvirtd,cgconfig-在每个可能的顺序)
玩了一下cgroup.clone_children设置,但没有帮助。
我的问题是:
1如何添加此设备作为默认允许每个libvirt / lxc容器?
2哪个进程负责默认的允许列表?
c 1:3 rwm c 1:5 rwm c 1:7 rwm c 1:8 rwm c 1:9 rwm c 5:0 rwm c 5:2 rwm c 136:* rwm
所有软件包都来自最新的Fedora 18系统。
libvirt_lxc根据guest虚拟机的configuration在启动时填充guest虚拟机的/dev树。 该文件说你必须把configuration放在客人的XMLconfiguration文件中。 使用带有“misc” type的hostdev ,其source指向/dev/net/tun的char设备。
代码片段应该如下所示:
... <devices> ... <hostdev mode='capabilities' type='misc'> <source> <char>/dev/net/tun</char> </source> </hostdev> </devices> ...
要编辑客人的XML文件使用virsh 。 对于本地实例,请使用以下命令:
virsh -c lxc:/// edit GUESTNAME
我可以确认这与libvirt-1.2.1一起工作。