关于OpenStack的研究,你们基本都是集中于KVM,XEN这类开源虚拟化技术,对VMware的研究比较少。咱们公司(网新恒天)因为以前采用的虚拟化技术是VMware的,因此在OpenStack研究开始之初就以VMware为虚拟化平台,但愿能用OpenStack将VMware管理起来,通过4个月左右的研究开发,已经实现这个目标。如今咱们决定将本身的研究成果分享出来,但愿能和你们一块儿交流。html
本文主要讨论OpenStack管理 VMware ESX/ESXi 时的部署架构。python
由于VMware vSphere ESX/ESXi 的特殊性,致使Openstack管理ESX/ESXi时的部署架构会与KVM、XEN等不同,因此刚开始安装的时候会有这样的疑问:nova-compute 装哪里,怎么装呢? 下面就来讲明下这个问题。
由于VMware ESX/ESXi 是很是封闭的,ssh上去以后,会发现之个系统连一些经常使用的命令都没有,更不用说python、gcc了,是一个很是精简的系统,因此在ESX/ESXi上直接安装nova-compute基本是不可能的。要单独找一台计算机(物理机/虚拟机),在上面安装ubuntu,而后再在这个上面安装nova-compute,让nova-compute来经过网络的方式来链接ESX/ESXi。ESX/ESXi对外提供web services(SOAP实现)编程接口,nova-compute就是经过调用这些接口,将OpenStack命令转化成web services请求来实现对ESX/ESXi的控制。
概念架构图以下所示:web
OpenStack 管理VMware 架构概念图编程
在实际部署中,咱们这样来作,用虚拟机来作nova-compute结点,而且将这个虚拟机建在它上面的nova-comppute所链接的ESX/ESXi上,由于nova-compute结点只负责和ESX/ESXi通讯,虚拟化工做由ESX/ESXi来承担,nova-compute结点的负载很是小,对原有ESX/ESXi影响也很是小,实事证实这种作法是彻底可行的。(咱们实验用的虚拟机配置1vCPU,2G内存,毫无压力)ubuntu
OpenStack VMware ESXi 部署架构api
OpenStack官方关于VMware ESX/ESXi Server Support的图以下所示,比较详细。nova-compute经过SOAP使ESX/ESXi执行虚拟机相关操做,如建立、重启、删除,快照等;在建立虚拟的时候,能过glance取镜像传到ESX/ESXi上,在打快照的时候,先在ESX/ESXi执行快照命令,而后将生成的快照传到glance上。能够看到,OpenStack相似一个中转层代理,在两边分别实现OpenStack和ESX/ESXi的接口,而后将二者链接起来。网络
VMware ESX/ESXi Server Support 官方示意图架构