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

以及網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)

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