OpenStack最新版本Folsom架構(gòu)解析 摘要: OpenStack的第6版,版本代號為Folsom的最新版于今年九月底正式發(fā)布,F(xiàn)olsom將支持下一代軟件定義網(wǎng)絡(luò)(SDN)作為其核心組成部分。Folsom改進了現(xiàn)有代碼的可用性和穩(wěn)定性,包括185個新功能,最主要是虛擬網(wǎng)絡(luò)方面的功能,而且這也是新成立的OpenStack基金會推出的第一個軟件版本。
兩年前OpenStack基于NASA的Nova項目和Rackspace的Swift項目合并得以建立,而今OpenStack已經(jīng)成為云計算領(lǐng)域的一顆新星,繼2012年四月發(fā)布Essex版本之后,在今年九月底OpenStack第6版Folsom正式發(fā)布,本文簡要分析了OpenStack Folsom的架構(gòu)。
OpenStack最新的組件
OpenStack目前有7個核心組件:Compute(計算), Object Storage(對象存儲),Identity(身份認證),Dashboard(儀表盤), Block Storage(塊存儲), Network(網(wǎng)絡(luò)) 和 Image Service(鏡像服務(wù)) 。下面將依次進行解釋:
Object Storage (代號為“Swift”) 允許進行存儲或者檢索文件。目前已經(jīng)有幾好家公司開始提供基于Swift商業(yè)存儲服務(wù),這些公司包括KT, Rackspace 公司(Swift項目的發(fā)源地)和Internap,而且很多大公司內(nèi)部也使用Swift來存儲數(shù)據(jù)。
Image Service (代號為“Glance”) 是一個虛擬機鏡像的存儲、查詢和檢索系統(tǒng),它提供了一個虛擬磁盤映像的目錄和存儲庫,這些磁盤映像常常廣泛應(yīng)用于OpenStack Compute之中,而且這種服務(wù)在技術(shù)上是屬于可選的,任何規(guī)模的云都適用于它。
Compute (代號為“Nova”) 根據(jù)需求提供虛擬服務(wù)。 Rackspace 公司和 HP 提供商業(yè)計算服務(wù)正是建立在Nova之上,Mercado Libre和NASA(Nova項目的起源地)內(nèi)部也是使用的Nova。
Dashboard (代號為“Horizon”) 為所有OpenStack的服務(wù)提供了一個模塊化的web-based用戶界面。使用這個Web GUI,可以在云上完成大多數(shù)的操作,如啟動實例,分配IP地址,設(shè)置訪問控制等。
Identity (代號為“Keystone”) 為所有的OpenStack服務(wù)提供身份驗證和授權(quán)。它還提供了一個在特定OpenStack云服務(wù)上的服務(wù)目錄。
Network (代號為“Quantum”) 在接口設(shè)備之間提供“網(wǎng)絡(luò)連接作為一種服務(wù)”,而這些接口設(shè)備主要靠其他的OpenStack服務(wù)進行管理(最有可能是Nova)。該服務(wù)允許用戶創(chuàng)建自己的網(wǎng)絡(luò),然后連接接口。Quantum提供一個可插拔的體系架構(gòu),它能支持很多流行的網(wǎng)絡(luò)供應(yīng)商和技術(shù),Quantum是Folsom版本中的新項目。
Block Storage (代號為“Cinder”) 提供穩(wěn)定的數(shù)據(jù)塊存儲服務(wù)。這個項目的很多代碼最初是來自于Nova之中(就是the nova-volume service)。但是請注意,這是塊存儲(或者volumes),而不是類似于NFS或者CIFS文件系統(tǒng),Cinder在Folsom中也是一個全新的項目。除了這些核心項目之外,也有一些“孵化”項目,未來可能會考慮列入到OpenStack的核心項目之中。
對比AWS的服務(wù)
雖然所有的OpenStack服務(wù)都具有自己的特色,但是很多人還是希望能看到它與AWS相似的部分,而且Amazon一直也是OpenStack的重要對手。
- Nova在概念上類似于AWS中的EC2服務(wù),不過事實上,它擁有很多種方法可以實現(xiàn)對EC2 API的兼容性。
- Swift在概念上類似于S3服務(wù),不過swift具有很強的擴展性、冗余和持久性。
- Glance提供了很多與Amazon AMI catalog相似的功能。
- Cinder提供類似于EBS塊存儲服務(wù)。?
概念架構(gòu)
OpenStack項目成立的目的是“提供一個大規(guī)模的可擴展的云操作系統(tǒng)”。要做到這一點,每一個組成服務(wù)的設(shè)計都要精心考慮,這樣才能打造一個完整的IaaS平臺。從概念上,我們可以描繪出各種服務(wù)之間的關(guān)系:
- Dashboard("Horizon") 提供了一個Web前端到OpenStack其他的服務(wù)的界面
- Compute("Nova") 存儲和檢索虛擬磁盤(images)和Image上相關(guān)的元數(shù)據(jù)(Glance)
- Network("Quantum") 提供虛擬網(wǎng)絡(luò)
- Block Storage("Cinder") 提供存儲。
- Image("Glance") 在對象存儲(Swift)上能夠完成虛擬磁盤文件的存儲
- 所有的服務(wù)進行身份驗證(Keystone)
這是一個程式化的簡化版的體系結(jié)構(gòu)視圖,而且假定構(gòu)建者使用所有的OpenStack服務(wù)進行最常見的配置操作,不過它也僅僅是顯示“操作員”看到的云——并沒有顯示出云用戶具體的使用過程,比如說用戶如何進行直接的對象存儲。
邏輯架構(gòu)
正如你能想象到的那樣,邏輯結(jié)構(gòu)要比概念架構(gòu)復(fù)雜得多的多(如圖所示)。正如任何面向服務(wù)的架構(gòu)圖一樣,如果想說明所有可能的服務(wù)通信組合,圖就會迅速“亂成一團”。下面的圖,僅僅顯示了一個最常見的基于OpenStack的云架構(gòu)。當(dāng)然,隨著OpenStack支持技術(shù)種類的多樣化,它并不能代表唯一的架構(gòu)圖。
該圖與上述的概念架構(gòu)圖是一致的:
- 最終用戶可以通過一個公共的Web界面(Horizon)進行交互或者通過其API直接訪問每一項服務(wù)
- 所有的服務(wù)進行身份驗證都是通過一個共同的來源(通過Keystone)
- 個人服務(wù)通過他們公共的API進行交互(除了那些擁有特別權(quán)限的地方才需要管理員的命令)
下面的章節(jié)中,將會深入到每個服務(wù)的架構(gòu)之中進行說明。
Dashboard
Horizon是一個模塊化的 Django Web 應(yīng)用程序,它為終端用戶和系統(tǒng)管理員提供界面來管理OpenStack服務(wù)。
和大多數(shù)Web應(yīng)用程序一樣,該體系架構(gòu)是也是非常簡單:
- Horizon通常使用Apache上的mod_wsgi進行部署。代碼本身被分離成可復(fù)用的python模塊,通過邏輯(使用不同的OpenStack API進行交互)和presentation(對不同的站點很容易實現(xiàn)定制)實現(xiàn)。
- 一個數(shù)據(jù)庫,不過因為它主要依賴于其他的數(shù)據(jù)服務(wù),所以本身存儲的數(shù)據(jù)非常少。
從網(wǎng)絡(luò)架構(gòu)的角度來看,這項服務(wù)需要客戶的訪問而且要能夠跟每項服務(wù)公共的API進行交互。如果您希望使用的管理員功能(即其他的服務(wù)),也需要連接到他們的Admin API端點(這不是客戶能隨意訪問的)。
Compute
Nova是OpenStack中最復(fù)雜的分布式組件,它通過大量的進程合作,將最終用戶的API請求發(fā)送到正在運行的虛擬機之上。以下是這些進程的列表及其功能的描述:
- nova-api:接受和響應(yīng)最終用戶Compute API的請求。它支持OpenStack Compute API,Amazon EC2 API和一個特殊的Admin API。它還引發(fā)多數(shù)業(yè)務(wù)流程的活動(如運行一個實例),并實施一些政策(主要是配額檢查)。
- nova-compute:主要是一個人工守護進程,它可以通過虛擬機管理程序的API(XenAPI for XenServer/XCP, libvirt for KVM or QEMU, VMwareAPI for VMware等)來創(chuàng)建和終止虛擬機實例。雖然通過該進程做的事情是相當(dāng)?shù)膹?fù)雜,但是它的基礎(chǔ)原理卻是非常的簡單:接收隊列中的動作,然后執(zhí)行一系列的系統(tǒng)命令(如啟動KVM實例),同時更新數(shù)據(jù)庫中的狀態(tài)。
- nova-volume:給虛擬機分配額外持久化的存儲,管理持久卷到計算實例的創(chuàng)建,連接和分離。一個新的OpenStack項目,Cinder,將最終替代nova-volume功能。在發(fā)布的Folsom版本中,nova-volume和Block Storage service(塊存儲服務(wù))有類似的功能。
- nova-network:該人工守護進程與nova-compute和nova-volume非常相似。它接受隊列中的網(wǎng)絡(luò)任務(wù),然后執(zhí)行任務(wù)操縱網(wǎng)絡(luò)(如設(shè)立橋接接口或更改iptables規(guī)則)。不過該項功能被移植到Quantum之中,已經(jīng)成為一個獨立的OpenStack服務(wù)。
- nova-schedule:從概念上說是OpenStack Nova中最簡單的一段代碼:從隊列上得到一個虛擬機實例請求并且決定它應(yīng)該在哪里運行(特別是它應(yīng)該運行在哪臺計算服務(wù)器主機之上)
- queue:提供了一個守護進程之間傳遞消息的中央樞紐。當(dāng)前由 RabbitMQ 實現(xiàn),理論上可以是Python的ampqlib支持的任何AMPQ消息隊列。新的Folsom版本支持 Zero MQ 。
- SQL database:存儲云基礎(chǔ)設(shè)施的編譯時和運行時的狀態(tài)。這包括可用的實例類型,在使用中的實例,可用的網(wǎng)絡(luò)和項目。從理論上講,OpenStack Nova可以支持任何SQL-Alchemy支持的數(shù)據(jù)庫,但是目前被廣泛使用的數(shù)據(jù)庫僅僅有sqlite3(只適用于測試和開發(fā)工作),MySQL和PostgreSQL。
-
Nova還提供控制臺的服務(wù),讓最終用戶通過代理服務(wù)器訪問他們的虛擬實例的控制臺。這涉及到多個守護進程(nova-console,nova-vncproxy和nova-consoleauth)。(編譯/
@CSDN王鵬
,審校/包研)
?
Object Store、 Image Store、 Identity、 Network、 Block Storage 、 Future Projects (敬請期待Part 2部分)
原文鏈接: OpenStack Folsom Architecture
相關(guān)閱讀: OpenStack峰會召開在即 淺析八個發(fā)展問題
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯(lián)系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
