2013-03-24 50 views
6

我想对我的Debian安装6 LXC(0.7.4.1),但是当我运行LXC-checkconfig我得到 “CGROUP内存控制器:缺少”LXC - CGROUP内存控制器:缺少

[email protected]:~# 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 

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

问候函

回答

5

Debian 6的内核没有内存cgroup功能。 但是,您可以在没有它的情况下运行lxc。

如果您需要内存cgroup,可以很容易地从backports安装新内核 。

  1. 添加反向移植
  2. 运行 “的apt-get安装的linux-image-3.2.0-0.bpo.4-AMD64”(或-686 i386的)的易行
  3. 添加内核启动选项“cgroup_enable = memory”到您的启动加载器设置 (例如/ etc/default/grub)以启用它。
  4. 重启

或者,如果你想重新编译内核,你可以使用Debian的内核封装系统; http://newbiedoc.sourceforge.net/system/kernel-pkg.html

+0

谢谢,backports解决了我的问题。 – 2013-04-02 15:25:56

2

here更新内核。

然后重新启动您的系统。这个问题自动解决,但如果不去/boot/config-<versionnumber>-generic。例如:/boot/config-3.11.0-13-generic

这里看看CONFIG_CGROUP_MEM_RES_CTLR=y是否可用。如果'是',那么确定,否则将其粘贴。

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进行一次调整。这两个都在文章中解释。

但底线,一般建议似乎是:如果你真的不需要对容器执行内存限制管理,则不启用它。有一些性能和内存开销。