libvirt/lxc 容器允许的 cgroup 设备

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

然而,我在将其设为每个容器的默认设置时遇到了一些困难。

谷歌搜索显示,改变/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 系统。

答案1

/devlibvirt_lxc根据客户机的配置在启动时填充客户机树。文档表示您必须将配置放入来宾的 XML 配置文件中。使用hostdev带有“misc”的type,并将其source指向char处的设备/dev/net/tun

该代码片段应如下所示:

...
<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 一起使用。

相关内容