cgroups隔离(分离组进程)

我有一个关于cgroups的问题,尤其是考虑到隔离。

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

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

例:

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

非常感谢您的专业知识!

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

更多来源:

尽管lxc是提供隔离的好办法,但即使在高速缓存级别(如果处理器支持),cgroup也具有此功能。 像Mesos这样的许多集群管理者/资源管理者正在使用这些功能。 使用cgset,您可以将IO,CPU和内存的限制设置为您的cgroup。 你可以在这里找到一些文件。