lmctfy和lxc之间有什么区别?

25

最近,谷歌开源了其容器栈lmctfy (GitHub链接)。我不是很理解它,有几个问题。

lmctfy、lxc和docker之间有什么区别?
谷歌通过lmctfy解决了哪些问题?

谢谢

1个回答

46

我是lmctfy的开发人员之一。我将尝试从一句话开始,并稍后加入更多细节。

Linux内核支持cgroups进行资源隔离(cpu、内存、块io、网络等),无需启动虚拟机。它还提供了命名空间,完全隔离应用程序对操作环境的视图(进程树、网络、用户ID、挂载点)。

LXC结合cgroup和命名空间支持,为应用程序提供了一个隔离的环境。Docker在LXC的基础上构建了镜像管理和部署服务。

lmctfy与LXC处于同一级别。当前版本基于cgroups构建,下一个版本将添加命名空间支持。

考虑到Docker工作在更高的级别上,我将重点关注lmctfy和lxc之间的区别。

  • 资源管理API:LXC API是为命名空间支持构建的,几乎透明地导出了cgroup支持。Linux cgroup API不稳定且难以处理。通过lmctfy,我们尝试提供基于目的的资源配置,而无需用户理解cgroup的细节。

  • 优先级——超额分配和共享:lmctfy旨在为具有批量工作负载的机器提供资源共享和超额分配支持,这些负载可以在机器相对闲置时运行。所有应用程序都指定了优先级和延迟要求。lmctfy管理所有cgroup细节,以满足每个任务的优先级和延迟要求。

  • 编程接口:lmctfy是谷歌云端的最底层应用程序管理块。它被构建为与其他工具和程序一起使用。我们认为它的规范和稳定性更适合在其上构建更复杂的工具链。

自2007年以来,我们一直在使用lmctfy来管理谷歌的所有资源隔离需求。到目前为止,它已经混合到谷歌基础设施的其他部分中。在重新设计期间,我们能够将这个层分离出来,并认为将其放出并回馈社区是有趣的。

我在9月份进行了有关lmctfy的Linux Plumbers演讲。您可以在那里查看一些细节:

http://www.linuxplumbersconf.org/2013/ocw/events/LPC2013/tracks/153

是有关it技术的内容,该页面包括幻灯片和其他内容。你可以通过http://www.linuxplumbersconf.org/2013/ocw//system/presentations/1239/original/lmctfy%20(1).pdf

链接查看幻灯片。

我们不再积极开发lmctfy,并将我们的精力转移到libcontainer上。https://github.com/google/lmctfy -> https://github.com/docker/libcontainer 项目已迁移至RUNC -> https://github.com/opencontainers/runc - rofrol

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接