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

以及網絡拓撲結構

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























