為了更好的理解,我們首先來說一下云計(jì)算的類型。根據(jù)所提供服務(wù)的類型,云計(jì)算有以下三種落地方式:
1、Iaas(基礎(chǔ)架構(gòu)即服務(wù)),用戶能從中申請(qǐng)到硬件或虛擬硬件,包括裸機(jī)或虛擬機(jī),然后在上邊安裝操作系統(tǒng)或其他應(yīng)用程序。
2、PaaS(平臺(tái)即服務(wù)),用戶能從中申請(qǐng)到一個(gè)安裝了操作系統(tǒng)以及支撐應(yīng)用程序運(yùn)行所需要的運(yùn)行庫等軟件的物理機(jī)或虛擬機(jī),然后在上邊安裝其他應(yīng)用程序,但不能修改已經(jīng)預(yù)裝好的操作系統(tǒng)和運(yùn)行環(huán)境。
3、SaaS(軟件即服務(wù)),用戶可以通過網(wǎng)絡(luò)以租賃的方式來使用一些軟件,而不是購買,比較常見的模式是提供一組賬號(hào)密碼。
OpenStack就是一種IaaS。2010年7月,RackSpace和美國國家航空航天局合作,分別貢獻(xiàn)出RackSpace云文件平臺(tái)代碼和NASA Nebula平臺(tái)代碼,并以Apache許可證開源發(fā)布了OpenStack,OpenStack由此誕生。OpenStack第一版的代號(hào)為Austin,以RackSpace所在的美國德州Texas首府命名,計(jì)劃每隔幾個(gè)月發(fā)布一個(gè)全新的版本,并且以26個(gè)英文字母為首字母從A到Z順序命名后面的版本。第一版僅有Swift和Nova兩個(gè)項(xiàng)目。
2011年2月,OpenStack社區(qū)發(fā)布了Bexar版本,這是OpenStack的第二版,新增了Glance來提供鏡像服務(wù)。
2011年4月,OpenStack社區(qū)發(fā)布了更加穩(wěn)定的Cactus版本,但是這個(gè)版本沒有新的項(xiàng)目。
2011年9月,OpenStack發(fā)布了它的第四個(gè)版本Diablo,從此OpenStack的版本更新定為每半年一次,分別是當(dāng)年的春秋兩季。
…….
OpenStack目前共涵蓋了七個(gè)核心組件,分別是計(jì)算(Compute)、對(duì)象存儲(chǔ)(Object Storage)、認(rèn)證(Identity)、用戶界面(Dashboard)、塊存儲(chǔ)(Block Storage)、網(wǎng)絡(luò)(Network)和鏡像服務(wù)(Image Service)。每個(gè)組件都是多個(gè)服務(wù)的集合,一個(gè)服務(wù)意味著運(yùn)行著的一個(gè)進(jìn)程。
Compute(Nova)Compute的項(xiàng)目代號(hào)是Nova,他根據(jù)需求提供虛擬機(jī)服務(wù),比如創(chuàng)建虛擬機(jī)或?qū)μ摂M機(jī)做熱遷移等。
Object Storage(Swift)它允許存儲(chǔ)或檢索對(duì)象,也可以認(rèn)為它允許存儲(chǔ)或檢索文件,它能以低成本的方式管理大量無結(jié)構(gòu)數(shù)據(jù)。
Identity(Keystone)為所有OpenStack服務(wù)提供身份驗(yàn)證和授權(quán),跟蹤用戶以及他們的權(quán)限,提供一個(gè)可用服務(wù)及API列表。
DashBoard(Horizon)它為所有OpenStack的服務(wù)提供一個(gè)模塊化的基于Django的界面,通過這個(gè)界面,不論是最終用戶還是運(yùn)維人員都可以完成大多數(shù)的操作,比如啟動(dòng)虛擬機(jī),分配IP地址,動(dòng)態(tài)遷移等。
Block Storage(Cinder)提供塊存儲(chǔ)服務(wù)
Network(Neutron)用于提供網(wǎng)絡(luò)連接服務(wù),允許用戶創(chuàng)建自己的虛擬網(wǎng)絡(luò)并連接各種網(wǎng)絡(luò)設(shè)備接口。
ImageService(Glance)提供一個(gè)虛擬機(jī)鏡像的存儲(chǔ)、查詢和檢索服務(wù),通過提供一個(gè)虛擬磁盤映像的目錄和存儲(chǔ)庫,為Nova虛擬機(jī)提供鏡像服務(wù)。
下面以創(chuàng)建虛擬機(jī)為例說明一下各個(gè)組件之間是如何相互配合完成工作的。用戶首先接觸到的是界面,也就是Horizon。通過Horizon上的簡(jiǎn)單界面操作,一個(gè)創(chuàng)建虛擬機(jī)的請(qǐng)求被發(fā)送到OpenStack系統(tǒng)后端。既然要啟動(dòng)一個(gè)虛擬機(jī),就必須指定虛擬機(jī)操作系統(tǒng)是什么類型,就必須下載啟動(dòng)鏡像以供虛擬機(jī)啟動(dòng)使用,這件事情就有Glance來完成的,而此時(shí)Glance所管理的鏡像是有可能存儲(chǔ)在Swift上的,所以需要與Swift交互得到需要的鏡像文件。
在創(chuàng)建虛擬機(jī)的時(shí)候,自然而然地需要Cinder提供塊服務(wù)和Neutron提供網(wǎng)絡(luò)服務(wù),以便該虛擬機(jī)有volume可以使用,能被分配到IP地址與外界網(wǎng)絡(luò)連接,而且之后改虛擬機(jī)資源的訪問要經(jīng)過KeyStone的認(rèn)證之后才可以繼續(xù)。至此,OpenStack的所有核心組件都參與了這個(gè)創(chuàng)建虛擬機(jī)的操作。