linux - lmctfy 和 lxc 有什么区别

标签 linux docker lxc

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

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

谢谢

最佳答案

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

Linux 内核支持 cgroups 进行资源隔离(cpu、内存、blockio、网络等),无需启动虚拟机。它还提供命名空间来完全隔离应用程序对操作环境的 View (进程树、网络、用户 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 管理 Google 的所有资源隔离需求。到目前为止,它已被整合到 Google 基础架构的其他部分中。在重新设计期间,我们能够将这一层清晰地分离出来,并认为将它拿出来回馈会很有趣。

我在 9 月份就 lmctfy 进行了一次 Linux Plumbers 演讲。您可以在那里查看一些详细信息: http://www.linuxplumbersconf.org/2013/ocw/events/LPC2013/tracks/153

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

关于linux - lmctfy 和 lxc 有什么区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19196495/

相关文章:

docker - 将python打印输出重定向到graylog2

docker - 什么是 docker-compose.yml 文件?

docker - 操作系统容器与应用程序容器

linux - 在ubuntu上安装node-sspi时出现错误

c - 处理具有相同主编号但唯一次编号的多个设备文件

php - Docker 和 Laravel : configure: error: Package requirements (oniguruma) were not met

linux - Linux 容器的应用程序隔离?

c - 在linux C中,即使套接字有数据要读取,select()函数也会超时

Linux 磁盘分区和 Nginx

kubernetes - 运行 kubelet 时出错