快速了解 OpenStack 架構(gòu)
在學(xué)習(xí)OpenStack的過程中,感覺對整個OpenStack的架構(gòu)稍稍有些了解,所以將這些記錄下來,一來防止自己忘記,二來也可以對有需要的人提供幫助
本文章相關(guān)的靈感/說明/圖片來自于https://github.com/yongluo2013/osf-openstack-training/blob/master/installation/openstack-icehouse-for-centos65.md
首先放幾張圖,詳細的解釋了OpenStack的架構(gòu)

以及網(wǎng)絡(luò)拓撲結(jié)構(gòu)

方便了解整個架構(gòu)
- 整個OpenStack由控制節(jié)點,計算節(jié)點,網(wǎng)絡(luò)節(jié)點,存儲節(jié)點四大部分組成
- 控制節(jié)點負責(zé)了對其余節(jié)點的控制,包含虛擬機建立,遷移,網(wǎng)絡(luò)分配,存儲分配等等
- 計算節(jié)點負責(zé)了虛擬機運行
- 網(wǎng)絡(luò)節(jié)點負責(zé)了對外網(wǎng)絡(luò)與對內(nèi)網(wǎng)絡(luò)之間的通信
- 存儲節(jié)點負責(zé)了對虛擬機的額外存儲管理等等
以下架構(gòu)僅為本人理解,不盡完全,如有錯誤歡迎指出
控制節(jié)點架構(gòu)
控制節(jié)點包括以下服務(wù)
- 管理支持服務(wù)
- 基礎(chǔ)管理服務(wù)
- 擴展管理服務(wù)
管理支持服務(wù)包含MySQL與Qpid兩個服務(wù)
- MySQL:數(shù)據(jù)庫作為基礎(chǔ)/擴展服務(wù)產(chǎn)生的數(shù)據(jù)存放的地方
- Qpid:消息代理(也稱消息中間件)為其他各種服務(wù)之間提供了統(tǒng)一的消息通信服務(wù)
基礎(chǔ)管理服務(wù)包含Keystone,Glance,Nova,Neutron,Horizon五個服務(wù)
- Keystone:認證管理服務(wù),提供了其余所有組件的認證信息/令牌的管理,創(chuàng)建,修改等等,使用MySQL作為統(tǒng)一的數(shù)據(jù)庫
- Glance:鏡像管理服務(wù),提供了對虛擬機部署的時候所能提供的鏡像的管理,包含鏡像的導(dǎo)入,格式,以及制作相應(yīng)的模板
- Nova:計算管理服務(wù),提供了對計算節(jié)點的Nova的管理,使用Nova-API進行通信
- Neutron:網(wǎng)絡(luò)管理服務(wù),提供了對網(wǎng)絡(luò)節(jié)點的網(wǎng)絡(luò)拓撲管理,同時提供Neutron在Horizon的管理面板
- Horizon:控制臺服務(wù),提供了以Web的形式對所有節(jié)點的所有服務(wù)的管理,通常把該服務(wù)稱為DashBoard
擴展管理服務(wù)包含Cinder,Swift,Trove,Heat,Centimeter五個服務(wù)
- Cinder:提供管理存儲節(jié)點的Cinder相關(guān),同時提供Cinder在Horizon中的管理面板
- Swift:提供管理存儲節(jié)點的Swift相關(guān),同時提供Swift在Horizon中的管理面板
- Trove:提供管理數(shù)據(jù)庫節(jié)點的Trove相關(guān),同時提供Trove在Horizon中的管理面板
- Heat:提供了基于模板來實現(xiàn)云環(huán)境中資源的初始化,依賴關(guān)系處理,部署等基本操作,也可以解決自動收縮,負載均衡等高級特性。
- Centimeter:提供對物理資源以及虛擬資源的監(jiān)控,并記錄這些數(shù)據(jù),對該數(shù)據(jù)進行分析,在一定條件下觸發(fā)相應(yīng)動作
- 控制節(jié)點一般來說只需要一個網(wǎng)絡(luò)端口用于通信/管理各個節(jié)點
網(wǎng)絡(luò)節(jié)點架構(gòu)
網(wǎng)絡(luò)節(jié)點僅包含Neutron服務(wù)
Neutron:負責(zé)管理私有網(wǎng)段與公有網(wǎng)段的通信,以及管理虛擬機網(wǎng)絡(luò)之間的通信/拓撲,管理虛擬機之上的防火等等
網(wǎng)絡(luò)節(jié)點包含三個網(wǎng)絡(luò)端口
- eth0:用于與控制節(jié)點進行通信
- eth1:用于與除了控制節(jié)點之外的計算/存儲節(jié)點之間的通信
- eth2:用于外部的虛擬機與相應(yīng)網(wǎng)絡(luò)之間的通信
計算節(jié)點架構(gòu)
計算節(jié)點包含Nova,Neutron,Telemeter三個服務(wù)
基礎(chǔ)服務(wù)
- Nova:提供虛擬機的創(chuàng)建,運行,遷移,快照等各種圍繞虛擬機的服務(wù),并提供API與控制節(jié)點對接,由控制節(jié)點下發(fā)任務(wù)
- Neutron:提供計算節(jié)點與網(wǎng)絡(luò)節(jié)點之間的通信服務(wù)
擴展服務(wù)
Telmeter:提供計算節(jié)點的監(jiān)控代理,將虛擬機的情況反饋給控制節(jié)點,是Centimeter的代理服務(wù)
計算節(jié)點包含最少兩個網(wǎng)絡(luò)端口
- eth0:與控制節(jié)點進行通信,受控制節(jié)點統(tǒng)一調(diào)配
- eth1:與網(wǎng)絡(luò)節(jié)點,存儲節(jié)點進行通信
存儲節(jié)點架構(gòu)
存儲節(jié)點包含Cinder,Swift等服務(wù)
Cinder:塊存儲服務(wù),提供相應(yīng)的塊存儲,簡單來說,就是虛擬出一塊磁盤,可以掛載到相應(yīng)的虛擬機之上,不受文件系統(tǒng)等因素影響,對虛擬機來說,這個操作就像是新加了一塊硬盤,可以完成對磁盤的任何操作,包括掛載,卸載,格式化,轉(zhuǎn)換文件系統(tǒng)等等操作,大多應(yīng)用于虛擬機空間不足的情況下的空間擴容等等
Swift:對象存儲服務(wù),提供相應(yīng)的對象存儲,簡單來說,就是虛擬出一塊磁盤空間,可以在這個空間當(dāng)中存放文件,也僅僅只能存放文件,不能進行格式化,轉(zhuǎn)換文件系統(tǒng),大多應(yīng)用于云磁盤/文件
存儲節(jié)點包含最少兩個網(wǎng)絡(luò)接口
- eth0:與控制節(jié)點進行通信,接受控制節(jié)點任務(wù),受控制節(jié)點統(tǒng)一調(diào)配
- eth1:與計算/網(wǎng)絡(luò)節(jié)點進行通信,完成控制節(jié)點下發(fā)的各類任務(wù)