OpenStack 雲端運算 雲端平台

循雲端運算四大組成元素 概覽OpenStack架構

2015-04-16
近年來,雲端運算技術的發展一日千里,相關衍生的技術如雨後春筍般逐一出現,其中OpenStack技術備受關注。呼應此一潮流,本文將概略介紹何謂雲端運算,並說明OpenStack的發展背景、架構以及其所提供的各項服務。
·Sheepdog:這是日本NTT公司的開發人員開始的一個計畫,Sheepdog目前主要設計給虛擬化中的VM映像檔儲存使用,也是筆者認為管理部署最簡單的分散式檔案系統,Sheepdog透過網路Multicast的方式來管理節點,只要設定好節點的IP位址,節點的自動加入與移除,Sheepdog都會自動進行,此外Sheepdog也支援類似磁碟陣列的Erasure Code資料儲存方式,但比較可惜的是,目前雖然有支援掛載成一般檔案系統的方式,但還不是很成熟,比較適用在Linux QEMU/KVM虛擬化VM映像檔來使用。

3. 虛擬化

虛擬化算是雲端運算的核心,因為它可以簡化電腦系統的管理,並強化電腦系統因應需求的延展性。主要開放原始碼熱門的平台虛擬化技術為Linux KVM及Xen,這兩個技術都可以支援運行Windows、FreeBSD、OpenSolaris等異質作業系統,而最近更熱門的是作業系統層級的虛擬化,例如Docker或已經在ISP廠商到處都可以買到的OpenVZ虛擬化主機也都是開放原始碼技術。

4. 軟體定義網路

目前網路的交換器(Switch)、路由器(Router)主要還是由專屬的廠商掌控,但是Google、Yahoo或Facebook等網路巨擘都需要建置維護非常大的資料中心(Data Center)。為了能夠更彈性地掌控網路,這幾家廠商聯合一些電信廠商成立了開放網路基金會(Open Network Foundation),定義並提出可以動態控管網路的開放協定OpenFlow,再加上開放原始碼Linux的底層,而構成了軟體定義網路的基礎與濫觴。

開放原始碼也有像OpenvSwitch這樣的軟體虛擬交換器來建構VM與VM之間的溝通,透過這些技術,原本的交換器就變成只是一種特殊訂製的電腦硬體,經由軟體的調整,可以讓這些硬體非常彈性地調整成交換器、路由器、防火牆或入侵偵測系統等所需的設備功能。像是Google已經全面換成自行製作的交換器,而最近Facebook也發表了自己所做的白牌交換器規格。繼Android、雲端運算之後,開放原始碼也在網路設備這部分開始掀起一場軟體革命。

OpenStack發展背景

前面提到的這些開放原始碼的關鍵技術,就構成了OpenStack這個目前雲端運算中最熱門IaaS計畫的基礎,OpenStack一開始是由Rackspace與美國太空總署(NASA)在2010年一起發起的雲端計算專案。Rackspace以公司的雲端檔案(Cloud Files)平台程式碼架構出OpenStack專案中雲端物件儲存(Object Storage)的基礎,而NASA則是以自己發展的Nebula平台程式碼作為OpenStack專案中雲端計算(Compute)的基本架構。

2012年OpenStack基金會被正式成立來接手管理OpenStack的發展,目前有超過兩百家公司加入這個開放原始碼專案。這兩百多家公司中赫然可以發現許多資通訊的巨擘都在其中,包括AT&T、IBM、Intel、AMD、EMC、Dell、HP、Cisco、Oracle、VMware、Yahoo,幾乎所有資通訊領域有名的公司都到齊了。

而拜開放原始碼發展模式之賜,OpenStack從2010年發展到現在,由原本雲端物件儲存與雲端計算兩個元件的專案,快速發展成為現在有十三個元件的超大專案,這十三個元件包括已正式發表及發展中尚未正式發表的。目前,IBM、Oracle、HP、VMware都已以OpenStack為基礎推出了相關產品,而OpenStack的用戶則有AT&T、Alcatel-Lucent、CERN、Deutsche Telekom、Paypal、Yahoo、Sony這些大公司,這也顯示OpenStack本身已漸趨成熟,已經可以應用在關鍵任務環境。

OpenStack架構

目前,OpenStack每半年會發表一個新版本,最新的穩定版本是在2014年10月16日發表的,其版本代號為Juno,而下一版則是預定於5月發表的Kilo。OpenStack目前的主要架構圖如圖2所示。


▲圖2 OpenStack概念架構圖。

圖2所示的架構圖說明了各個子計畫間的簡單關聯與互動,核心為虛擬機(VM)映像,其他部分就是圍繞著虛擬機提供著儲存、網路、身分認證、權限管理及圖形管理介面等服務。接著,分別說明各個服務的內容。

Compute服務

Compute服務計畫代號為Nova,Compute透過Identify服務進行身分認證與權限管理,磁碟和虛擬機映像檔案則是透過Image Service提供,Compute則負責虛擬機映像檔的啟動與停止,舉例來說,如果是使用Xen虛擬技術就透過XenAPI,QEMU/KVM則透過libvirt這個程式庫,Compute也可以透過VMwareAPI管理非開放原始碼的VMware虛擬機映像。

Identify服務

Identify服務計畫代號為Keystone,主要提供OpenStack各個服務的身分認證與權限控管服務,除了透過角色(Role)管控權限外,也透過類似群組概念的承租戶(Tenant)來對OpenStack內的資源或是物件進行群組分類識別,Identify同時也提供OpenStack各種服務的存取點(Endpoint)。

Image服務

Image服務計畫代號為Glance,Image服務中的glance-api提供存取虛擬映像(Image)的API,可以進行映像檔的尋找、存取與儲存。而glance-registry則可提供映像檔相關描述資料(Metadata)的記載,例如映像檔的大小、種類等等。

Object Storage服務

Object Storage服務計畫代號為Swift,這是OpenStack的分散式儲存,Object Storage提供Rest型態的HTTP API來讓客戶端存取檔案,同時也透過將資料複製多份並分散到網路儲存節點的方式,來確保資料的可靠性與安全性。

Block Storage服務

Block Storage服務計畫代號為Cinder,Block Storage服務主要是提供虛擬映像檔案的永久存放(Persistent Storage),同時也管理這些儲存的快照或是儲存型態的管理,透過外掛驅動程式(Driver),Block Storage服務也可以管理使用外掛的不同種類儲存裝置。


追蹤我們Featrue us

本站使用cookie及相關技術分析來改善使用者體驗。瞭解更多

我知道了!