VMware拥抱Docker再进一步vSphere也能成为Container主机

VMware
近日,VMware拥抱Docker再进一步,发表了一项新专案Bonneville预览版,要在Hypervisor原生支援Docker。VMware台湾技术总监吴子强表示,这能让vSphere平台变成Container主机。
未来,MIS只要运用现有的vSphere操作界面和管理工具,如vCenter Server就能管理Container,不需要额外的学习成本。
VMware高级主管工程师Ben Corrie在官方部落格上透露,早在去年VMworld宣布拥抱Docker之前2个月,VMware就启动了Bonneville计划,初始目标是能在虚拟化基础架构上直接部署Container。
他进一步解释,因为Container技术是一种将程式相依性打包的执行方式,并使用有限资源在私人命名空间(private namespace)下建立起执行环境。
而Container主机也是一个运算资源的资源池(Pool of compute resource),并搭配必要的储存及网络基础建设来管理Container。
“从这个角度来看,VM也相当符合Container的特质,而Hypervisor则就像是Container主机所负责的角色。”Ben Corrie表示。
因此,Bonneville专案采取了一个新的方法能在Hypervisor上执行Container。这个专案开发了一个在Hypervisor的Docker背景程式,搭配客制的图形驱动程式、网络驱动程式及其他执行所需驱动程式,来提供一个完全相容于vanilla版Docker客户端的API。
VMware的Bonneville专案在vSphere的Hypervisor内建Docker支援,结合Instant Clone技术来快速启动一个包着VM的Docker映象档。
让Container在Hypervisor的运作像是VM
如此一来,在Hypervisor中,Ben Corrie表示,Container就像是VM,而VM也可以像是Container,两者间并没有明显区分。
此外,可以不需要使用In-guest虚拟化技术(在VM中安装Guest OS的作法),就能让所有Container需要的基础架构都在VM外的Container主机上提供,而“Container就能视为是一个x86架构下的虚拟VM。”他说。
去年的VMworld大会时,VMware即大力鼓吹Container与VM互为相辅相成的角色的观念。
VMware呼吁要用1:1,一个Container搭配一个VM的作法,用VM的安全性来强化Container。
不过,当时VMware的做法仍是在VM中安装Guest OS后,在Guest OS上启用Container。
后来,为了加快这种VM内装Container的启动速度,VMware在4月时还推出了自家的轻量级Linux版本Photon,来作为VM中的Guest OS。
在刚发布的Bonneville专案中,VMware仍然是用VM来包Container,但是采取了不一样的新作法。透过Hypervisor启动的Container,原生就伴随了一个特殊的VM。
经VMware测试结果显示,Bonneville Container相较于VM,其大小已经非常接近原生Docker。
透过分支复制技术,建立小容量VM
这个VM是透过VMware的Instant Clone技术(分支复制)所复制的子VM(child VM)。vSphere内建了Photon核心(Photon Kernel),并将一份仅占25MB的迷你版Photon的映象档,预先载在内存中,称为父映像档(parent ROM image)。
Bonneville建立Container时,会用Instant Clone技术从内存中的这个父映象档来部署Container需要的子VM。由于采用写入时复制技术(copy-on-write)机制,子VM初始大小几乎为零,建立子VM同时也在其中建立了Container。VMware表示,透过这个方式所建立内有Container的子VM,开启时间小于1秒钟。
Ben Corrie表示,VMware也从用Docker储存库网站上下载了老旧的操作系统MS-DOS 6.22操作系统映象档和一款DOS游戏百战小旅鼠的映象档,并且成功地部署到Bonneville所建立的Container上执行。“即使是非Linux操作系统(如MS-DOS),亦可以使用Docker打包后在Linux环境下执行。”他说。
吴子强也表示,Bonneville专案的设计,就是希望能让所有以x86架构为基础的操作系统都能支援Docker,包括Windows操作系统。
(图片来源/VMware)
