lmctfy和lxc有什么区别

时间:2013-10-05 10:07:00

标签: linux docker lxc

最近谷歌开源lmctfy,Google的容器堆栈。我不太了解,我有几个问题。

lmctfy与lxc和docker有什么区别?
谷歌用lmctfy解决了什么问题?

由于

1 个答案:

答案 0 :(得分:46)

这里的lmctfy开发人员之一。我将尝试从单行开始,稍后再介绍一些细节。

Linux内核支持用于资源隔离的cgroup(cpu,内存,块,网络等),不需要启动虚拟机。它还提供名称空间以完全隔离应用程序的操作环境视图(进程树,网络,用户ID,安装)。

LXC结合了cgroup和名称空间支持,为应用程序提供了一个独立的环境。 Docker构建在LXC之上,为其添加图像管理和部署服务。

lmctfy与LXC处于同一级别。当前版本以cgroup为基础,下一版本将添加命名空间支持。

鉴于Docker的工作水平较高,我只关注lmctfy和lxc之间的差异。

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

  • 优先级 - 过度使用和共享:lmctfy旨在为资源共享和过度使用批量工作负载的计算机提供支持,这些工作负载可以在计算机相对空闲时运行。所有应用程序都指定优先级和延迟要求。 lmctfy管理所有cgroup详细信息,以满足每项任务的优先级和延迟要求。

  • 程序化界面:lmctfy是Google云端应用管理的最低区块。它可以与其他工具和程序一起使用。我们觉得在它上面构建更复杂的工具链会更好地指定和稳定。

自2007年以来,我们一直在管理Google的所有资源隔离需求。到目前为止,它已经被用于其他Google基础架构部分。在重新设计过程中,我们能够彻底地将这一层分开,并认为把它拿出来并回馈它会很有趣。

我在9月份发表了关于lmctfy的Linux管道工讲座。你可以查看那里的一些细节: http://www.linuxplumbersconf.org/2013/ocw/events/LPC2013/tracks/153

幻灯片:http://www.linuxplumbersconf.org/2013/ocw//system/presentations/1239/original/lmctfy%20(1).pdf