概述git
在學習OpenStack的過程當中,感受對整個OpenStack的架構稍稍有些瞭解,因此將這些記錄下來,一來防止本身忘記,二來也能夠對有須要的人提供幫助github
本文章相關的靈感/說明/圖片來自於https://github.com/yongluo2013/osf-openstack-training/blob/master/installation/openstack-icehouse-for-centos65.md數據庫
首先放幾張圖,詳細的解釋了OpenStack的架構以及網絡拓撲結構.centos
架構網絡
拓撲架構
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:與計算/網絡節點進行通訊,完成控制節點下發的各種任務
以上就是大概的Openstack存儲架構。