2013-03-24 49 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進行一次調整。這兩個都在文章中解釋。

但底線,一般建議似乎是:如果你真的不需要對容器執行內存限制管理,則不啓用它。有一些性能和內存開銷。