2013-01-14 37 views
4

我有一个关于cgroups的问题,尤其是考虑到隔离问题。cgroups隔离(分离组进程)

维基百科指出,您可以使用cgroup来隔离组,因此“组中有单独的名称空间,因此它们不会看到彼此的进程,网络连接或文件”。

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

实施例:

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

非常感谢您的专业知识!

+0

不是一个真正的答案,因为我对这个主题很陌生。我想你可能会在这里找到一些线索...... http://en.gentoo-wiki.com/wiki/Improve_responsiveness_with_cgroups – drumfire

回答

2

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

更多来源:

0

虽然LXC是提供隔离,但cgroup的一个很好的答案甚至已经在缓存这种能力级别(如果处理器支持它)。像Mesos这样的许多集群管理者/资源管理者正在使用这些功能。使用cgset,您可以将IO,CPU和内存的限制设置为您的cgroup。你可以在here找到一些文件。