如何确定设备的cgroup并将其交给lxc容器

How to determine the cgroup of a device and give it to a lxc container

我是 lxc 和 cgroups 的新手。我正在尝试隔离一个应用程序,并使用 LXC 构建它的容器。

到目前为止,我可以给它一些资源,例如 /dev/tty0/dev/fb0。很好,但是我正在努力寻找如何找到 /proc/*/ 对应的数字:

lxc.cgroup.devices.allow = c 4:0 rwm
lxc.mount.entry = /dev/tty0 dev/tty0 none bind,optional,create=file

lxc.cgroup.devices.allow = c 4:5 rwm
lxc.mount.entry = /dev/tty5 dev/tty5 none bind,optional,create=file

lxc.cgroup.devices.allow = c 29:0 rwm
lxc.mount.entry = /dev/fb0 dev/fb0 none bind,optional,create=file

似乎 fb029 来自 /proc/290 来自 fb0。对于给定的资源,我如何确定它应关联的数量是多少?

为什么 tty 与 4 关联,帧缓冲区与 29 关联?

cat /proc/devices 

给出了部分答案,但是/dev/input/*呢? sdaX?还是/dev/mmcblk0X

如何知道属于给定资源的cgroup?非常欢迎任何文档或指南。

看来这实际上比看起来要简单。

如果您想分享 /dev/tty0 只需查找次要和主要号码:

# ls -l /dev/tty5
crw--w---- 1 root tty 4, 5 Jan  1 01:37 /dev/tty5

如果你想共享字符设备 /dev/tty5 那么你想允许 :

lxc.cgroup.devices.allow = c 4:5 rwm
lxc.mount.entry = /dev/tty5 dev/tty5 none bind,optional,create=file

c来自char,4是主数,5是次数

如果你想分享 /dev/sda1 :

# ls -l /dev/sda1
brw-rw---- 1 root disk 8, 1 Jan  1 01:37 /dev/sda1

然后添加:

lxc.cgroup.devices.allow = b 8:1 rwm

其中 b 表示块设备,8 主设备号 1 次设备号。