我尝试在我的Debian 6上安装LXC(0.7.4.1),但是当我运行lxc-checkconfig时,我得到了" Cgroup内存控制器:丢失"
root@lxcsrv01:~# lxc-checkconfig
Kernel config /proc/config.gz not found, looking in other places...
Found kernel config file /boot/config-2.6.32-5-686
--- Namespaces ---
Namespaces: enabled
Utsname namespace: enabled
Ipc namespace: enabled
Pid namespace: enabled
User namespace: enabled
Network namespace: enabled
Multiple /dev/pts instances: enabled
--- Control groups ---
Cgroup: enabled
Cgroup namespace: enabled
Cgroup device: enabled
Cgroup sched: enabled
Cgroup cpu account: enabled
Cgroup memory controller: missing
Cgroup cpuset: enabled
--- Misc ---
Veth pair device: enabled
Macvlan: enabled
Vlan: enabled
File capabilities: enabled
enabled
Note : Before booting a new kernel, you can check its configuration
usage : CONFIG=/path/to/config /usr/bin/lxc-checkconfig
根据谷歌搜索,我需要重新编译我的内核,但我不知道如何。 有人可以解释一下如何做到这一点吗?
祝你好运
答案 0 :(得分:5)
Debian 6的内核没有内存cgroup功能。 但是你可以在没有它的情况下运行lxc。
如果您需要内存cgroup,则可以轻松安装新内核 来自backports。
或者,如果您想重新编译内核,可以使用Debian的kernel-package系统; http://newbiedoc.sourceforge.net/system/kernel-pkg.html
答案 1 :(得分:3)
我有类似的内存cgroup问题,并且已经调查了很多。我在这里写了一篇博客文章:
http://blog.raymond.burkholder.net/index.php?/archives/639-Debian-Stretch-LXC-Memory-Controller.html
总之,内核是使用必要的内存cgroup支持编译的。美中之音: lxc-checkconfig 中有一个错误,无法正确显示内存cgroup的状态。 CONFIG_CGROUP_MEM_RES_CTLR=y
仅适用于较旧的内核(我相信在3.6之前的某个时间)。
我最后进行了两次调整:一次调整/boot/config-$version
,另一次调整/etc/default/grub
。两者都在文章中解释。
但最重要的是,一般建议似乎是:如果您确实不需要对容器执行内存限制管理,请不要启用它。有一些性能和内存开销。
答案 2 :(得分:2)
从here更新内核。
然后重启系统。此问题会自动解决,但如果没有,请转到/boot/config-<versionnumber>-generic
。例如:/boot/config-3.11.0-13-generic
此处查看CONFIG_CGROUP_MEM_RES_CTLR=y
是否可用。如果'是'则确定,否则将其粘贴到。