6

我正在尝试在我的 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

根据谷歌搜索我需要重新编译我的内核,但我不知道如何。有人可以解释我该怎么做吗?

此致

4

3 回答 3

5

The kernel of Debian 6 has no memory cgroup feature. However you can run lxc without it.

If you NEED memory cgroup, it's easy to install the new kernel from backports.

  1. Add apt-line of backports
  2. Run "apt-get install linux-image-3.2.0-0.bpo.4-amd64" (or -686 for i386)
  3. Add a kernel boot option "cgroup_enable=memory" to your bootloader setting (e.g. /etc/default/grub) to enable it.
  4. reboot

Or, if you'd like to re-compile the kernel, you can use kernel-package system of Debian; http://newbiedoc.sourceforge.net/system/kernel-pkg.html

于 2013-03-26T07:35:00.597 回答
3

我有类似的内存 cgroup 问题,并且已经研究了很多。我写了一篇关于这里的博客文章:

http://blog.raymond.burkholder.net/index.php?/archives/639-Debian-Stretch-LXC-Memory-Controller.html

总之,内核是在必要的内存 cgroup 支持下编译的。美中不足: lxc-checkconfig有一个 bug,不能正​​确显示内存 cgroup 的状态。 CONFIG_CGROUP_MEM_RES_CTLR=y仅适用于较旧的内核(我相信在 3.6 之前的某个时间)。

我最终做了两个调整:一个调整到/boot/config-$version,一个调整到/etc/default/grub。两者都在文章中进行了解释。

但归根结底,一般建议似乎是:如果您确实不需要对容器执行内存限制管理,请不要启用它。有一些性能和内存开销。

于 2015-08-14T21:16:28.750 回答
2

从这里更新内核。

然后重新启动系统。这个问题会自动解决,但如果没有,请转到/boot/config-<versionnumber>-generic. 例如:/boot/config-3.11.0-13-generic

在这里看看是否CONFIG_CGROUP_MEM_RES_CTLR=y可用。如果“是”,则可以,否则将其粘贴。

于 2013-11-11T16:08:16.983 回答