這便是本文目的所在,即忠實記錄並嘗試總結這個過程中的一些問題,與大家分享。
隨著亞馬遜在公有雲和 VMware 在私有雲方面的成功,各類企業紛紛在雲時代邁出了自己的步伐,這些企業希望在自身的計算資源(主機,網路,存儲)虛擬化過程中能夠獲得強大功能的同時,又維持相對低廉的成本。 這正是 IaaS 供應商們發展的動力。
IaaS 提供了對資源的自動化管理能力。 例如用介面、腳本甚至 Web Service API 實現對大量硬體、大量虛擬機器的生命週期管理。 IaaS 產品面對的是大規模、可伸縮的雲環境,這是與用手工管理有限資源的方式完全不同的一類系統。
CloudStack 前身為 cloud.com 的商業化產品,它在 2011 年被 Ctrix 以超過二億美金價格收購,隨後又在今年被捐獻給 Apache 基金會。 這項產品開源的舉措,引起了市場對 IaaS 發展路線的一些爭議,例如它與另外一個開源產品 OpenStack 的競爭與合作關係?
OpenStack 是由 Rackspace 和 NASA 主導開發的一個 IaaS,它擁有更大的使用者群,包括 HP,IBM,Dell 和 Redhat 等大公司。 表 1 列出了 CloudStack 與 OpenStack 的一些對比。
表 1.CloudStack 與 OpenStack 的對比
CloudStack OpenStack License Apache 2.0 授權協定,可免費用於商業模式 Apache 2.0 授權協定,可免費用於商業模式 支援的 Hypervisors KVM,XEN,Oracle VM,vSphere 和 Bare Metal KVM,XEN,(部分支援 Hyper-V,ESX,PowerVM) 支援的 Networking Model OpenFlow,VLAN 和 Flat networks VLAN,Flat,Flat DHCP 支援 的Storage NFS,Cluster LVM,Rados Block Device(Ceph),Local Storage iSCSI,Ceph,NFS,Local Storage 和 Swift(物件存儲) 客戶群 不到 60 家,包括諾 基亞,Zynga,日本電報電話公司,塔塔,阿爾卡特 160 家左右,包括了 NASA,Rackspace,HP,紅帽,Piston 開發語言 JAVA 為主 Python 為主 相容亞馬遜 EC2 API 是 是
可以認為,在市場上 CloudStack 和 OpenStack 這兩個 IaaS 平臺存在不同的功能、客戶和發展路線,前者作為曾經的商務軟體,已經被證明為可以可靠的用於生產系統;而後者,雖則目前缺少廣泛的真實使用者, 卻擁有更多的大公司支援。 這是它們顯著的不同。
儘管如此,但從技術而言,它們背後的原始程式碼貢獻者並不是一定不同的,經常有來自同一家公司的開發人員為這兩個開源專案提交代碼。 從這個角度說,兩個平臺在某一天的合併也不會令人驚奇。
還存在其它眾多的 IaaS 產品(例如 Eucalyptus,Nebula 等),可以在文末的 參考資源中找到一些介紹。 總體而言,這些產品當中 CloudStack 和 OpenStack 是特性最為相近、也是最引起爭論的,參考資源中的一篇文章提及到了最近發生的一個有趣爭論。
CloudStack 架構圖
CloudStack 採用了典型的分層結構:用戶端、核心引擎、以及資源層。 它面向各類型的客戶提供了不同的訪問方式:Web Console、Command Shell 和 Web Service API。 通過它們,使用者可以管理使用在其底層的計算資源(又分為主機、網路和存儲),完成諸如在主機上分配虛擬機器,配給虛擬磁片等功能。 見圖 1。
圖 1. 系統架構圖
虛擬機器如果使用 Xen 和 KVM,需要安裝 CloudStack Agent 來支援其與管理伺服器的交互。 而管理伺服器和 Xen Server 交互則是靠 XAPI,和 vCenter、ESX 交互靠 HTTP。