關於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 官方示意圖架構