允许用于libvirt / lxc容器的cgroup设备

我想让我的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” typehostdev ,其source指向/dev/net/tunchar设备。

代码片段应该如下所示:

 ... <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一起工作。