cgroups隔离(分离组进程)

时间:2013-01-14 18:02:36

标签: linux isolation cgroups

我对cgroup有疑问,特别是考虑隔离。

维基百科指出,你可以使用cgroup来隔离组,这样就有了“组的独立命名空间,所以他们看不到彼此的进程,网络连接或文件”。

我已经知道,如何在组之间共享或划分内存或cpu,但是想知道,组或用户如何只能看到自己的进程(例如cgrules.conf和cgconfig.conf中的内容) )。

示例:

当指定组的用户在其控制台中输入ps(或ps -aux)时,只应列出其进程,而不是其他用户/组的进程(如ps -u中所示)。 我知道我可以做一个快速而肮脏的编程方法来完成这样的事情,但我想知道它如何与cgroup一起工作。

非常感谢您的专业知识!

2 个答案:

答案 0 :(得分:3)

Cgroup实际上没有能力提供全面的命名空间隔离。您正在寻找的是Linux容器(LXC) - http://lxc.sourceforge.net/。 LXC使用cgroup进行资源管理,并允许您将进程容器化并将它们与主机系统隔离。 Libvirt还提供了一个LXC驱动程序,可以轻松设置容器,甚至可以在容器中运行完整的操作系统。

更多消息来源:

答案 1 :(得分:0)

虽然lxc是提供隔离的一个很好的答案,但cgroups即使在缓存级别也具有此功能(如果处理器支持它)。像Mesos这样的许多集群管理器/资源管理器都在使用这些功能。使用cgset,您可以为cgroup设置IO,CPU和内存的限制。您可以在here中找到一些文档。