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

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

谢谢

最佳答案

这里的lmctfy开发人员之一。我将尝试从单线开始,稍后再提供更多详细信息。

Linux内核支持cgroup用于资源隔离(cpu,内存,blockio,网络等),而无需启动虚拟机。它还提供了 namespace ,以完全隔离应用程序对操作环境的 View (进程树,网络,用户ID,安装)。

LXC结合了cgroup和 namespace 支持,为应用程序提供了隔离的环境。 Docker在LXC之上构建,以向其添加镜像管理和部署服务。

lmctfy与LXC处于同一级别。当前版本基于cgroups,下一个版本将添加 namespace 支持。

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

  • 资源管理API:LXC API是为 namespace 支持而构建的,并且几乎透明地导出cgroup支持。 Linux cgroup API不稳定且难以处理。使用lmctfy,我们尝试提供基于意图的资源配置,而用户无需了解cgroup的详细信息。
  • 优先级-过量使用和共享:lmctfy旨在为资源共享和过量使用具有批处理工作负载的计算机提供支持,这些工作负载可以在计算机相对空闲时运行。所有应用程序都指定优先级和延迟要求。 lmctfy管理所有cgroup详细信息,以满足每个任务的优先级和延迟要求。
  • 程序化界面:lmctfy是Google云的最低应用管理块。它可以与其他工具和程序一起使用。我们认为在上面构建更复杂的工具链时,它的指定性和稳定性要好得多。

  • 自2007年以来,我们就一直在管理Google的所有资源隔离需求。到目前为止,它已被整合到其他Google Infrastructure中。在重新设计期间,我们能够将这一层干净地分离出来,并认为将它放回去并得到返回很有趣。

    我在9月的Linux Plumbers演讲中谈到了lmctfy。您可以在此处查看一些详细信息:
    http://www.linuxplumbersconf.org/2013/ocw/events/LPC2013/tracks/153

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

    08-28 11:12