Docker容器还是虚拟机 Canonical的LXD成功消除二者隔阂
发布日期:2016-2-29 12:2:23
在LXD的帮助下,Docker容器已经能够在模拟虚拟机的同时保持着与裸机相当接近的运行速度与高安全性水平。 CoreOS已经成为一个理想的起点,它向我们充分展示了Docker与容器化技术能够给Linux(如阿里云主机)系统平台带来怎样的重塑效果。现在Canonical公司也加入到了游戏中来,虽然他们选择的方向明显有所不同。Canonical公司的全新项目名为LXD,全称是Linux Container Demon。除了传统的各类容器化应用程序之外,它还允许用户利用Docker容器机制来部署在功能上毫无妥协而且彼此独立的Linux虚拟机环境。在一段视频资料中,Canonical公司产品经理Dustin Kirkland将LXD描述为一套能够“以用户期望在裸机上获得的性能表现运行完整容器体系的系统,而且其使用体验与正常虚拟机(如阿里云主机)完全相同。” LXD利用容器技术对整套系统的运作模式进行虚拟化处理,同时尽最大可能使其与裸机运行效果保持对等。有鉴于此,用户可以在不同一秒钟的时间内启动新的虚拟机系统,而且这些虚拟机能够以前所未有的高密度进行运作——具体而言,每台物理主机上将能够承载成百上千套虚拟机系统。 在一封邮件当中,Kirkland进一步介绍了该项目在发展过程中所充分考量的多项重要因素:Canonical公司在OpenStack领域取得的技术成果、该公司为LXC提交的上游调整方案(LXC正是Docker所采用的基础技术)以及客户的实际需求。该公司“意识到客户以及市场对于在容器体系下运行通用而且完整的操作系统环境拥有着迫切的渴望,”Kirkland解释称。“这主要是考虑到提升安全性、强化性能表现、增加系统密度以及实现广泛可移植性等方面的需要。” 正如当下众多以容器技术为核心的项目一样(其中也包括Docker本身),LXD利用Go语言进行编写、同时为其各项功能提供命令行界面以及RESTful API。它还包含有多项扩展机制,允许其容器以安全方式访问存储与网络资源,而且使用与Linux容器相同的技术方案、从而带来丰富的安全功能,其中包括:cgroups、用户命名空间以及(前提是供应商已经提供相关支持)硬件辅助型容器化机制。 除了系统本身的高密度与在主机硬件上足以与原生机制相比肩的性能表现之外,LXD还拥有速度极快的实时迁移功能。这项功能允许管理员将活动容器当中的内容在不同物理主机之间随意移动。该功能的出现要归功于Canonical公司为上游体系提交的技术成果,即Checkpoint Restart(简称CRIU)。Kirkland还勾勒出了美好的未来发展图景:“我们完全可以在一套容器环境下运行〈毁灭战士〉游戏,同时在不破坏游戏体验的同时将其在两台不同的主机之间往来迁移——没错,完全无需中断游戏内容。”硬件辅助容器化功能可能最值得大家予以高度关注。为了能够让LXD以一套真正的虚拟机管理程序的姿态为用户服务,Canonical公司表示其“与芯片厂商进行持续协作,旨在确保硬件辅助功能可以切实为这些容器环境的安全性及隔离性提供帮助,正如我们如今所使用的传统虚拟机一样。” 说完了好消息,现在再来报告一点坏消息。LXD最大的弊端在于它在严格意义上属于一套Linux到Linux解决方案,而且就目前而言它所使用的全部功能都只能在Linux环境下实现。当被问及未来是否有可能推出面向Windows平台的移植版本时——考虑到微软公司最近宣布有计划以某种方式为Windows添加容器化技术支持——Kirkland并没有给出明确的答复,而仅仅表示:“由于容器本身的天然属性,”他在邮件中写道,“LXD永远只能在Linux到Linux的前提条件下实现。这也正是我们的关注重点。Linux用户阵营中的其它版本(也就是非Ubuntu版本)也能够运行在LXD容器当中。但从本质上讲,整个项目的正常起效仍然需要以Linux为基础。” 原文链接: http://www.infoworld.com/article/2843865/virtualization/canonicals-lxd-turns-docker-into-vm.html 原文标题:Docker container or VM? Canonical's LXD splits the difference
|