Roh*_*gal 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基础架构部分.在重新设计过程中,我们能够彻底地将这一层分开,并认为把它拿出来并回馈它会很有趣.
我在九月份就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