終於正式進入 OpenStack 部分了。 今天開始,CloudMan 將帶着你們一步一步揭開 OpenStack 的神祕面紗。數據庫
OpenStack 已經走過了 6 個年頭。 每半年會發佈一個版本,版本以字母順序命名。如今已經到第 12 個版本 Liberty(字母 L)。 OpenStack最初只有兩個模塊(服務),如今已經有 20+(見下圖),每一個模塊做爲獨立的子項目開發。網絡
面對如此龐大的陣容,做爲初學者咱們如何起步呢? 這也是 CloudMan 寫這個系列教程的初衷: 經過實際操做幫助初學者由淺入深地學習和實踐 OpenStack,並最終具有實施 OpenStack 的能力。架構
咱們會把學習的重點放在 OpenStack 最核心的地方。 那什麼是核心呢?請看下圖分佈式
做爲 IaaS 層的雲操做系統,OpenStack 爲虛擬機提供並管理三大類資源:計算、網絡和存儲。
ide
這三個就是核心,因此咱們的學習重點就是: 搞清楚 OpenStack 是如何對計算、網絡和存儲資源進行管理的。 在 20+ 模塊中,管理這三類資源的核心模塊其實很少,這幾個模塊就是咱們的重點了。學習
要達到這個目的,咱們天然須要研究 OpenStack 的總體架構。 架構裏哪些核心模塊負責管理計算資源、網絡資源和存儲資源?模塊之間如何協調工做? 同時咱們會構建一個實驗環境,進到各個模塊的內部,經過實際操做真正理解和掌握 OpenStack。spa
好,下面咱們就從架構開始吧。操作系統
架構是個好東西,它能幫助咱們站在高處看清楚事物的總體結構,避免過早地進入細節而迷失方向。
orm
下圖是 OpenStack 的 Conceptual Architecture對象
中間菱形是虛擬機,圍繞 VM 的那些長方形表明 OpenStack 不一樣的模塊(OpenStack 叫服務,後面都用服務這個術語),下面來分別介紹。
Nova:管理 VM 的生命週期,是 OpenStack 中最核心的服務。
Neutron:爲 OpenStack 提供網絡鏈接服務,負責建立和管理L二、L3 網絡,爲 VM 提供虛擬網絡和物理網絡鏈接。
Glance:管理 VM 的啓動鏡像,Nova 建立 VM 時將使用 Glance 提供的鏡像。
Cinder:爲 VM 提供塊存儲服務。Cinder 提供的每個 Volume 在 VM 看來就是一塊虛擬硬盤,通常用做數據盤。
Swift:提供對象存儲服務。VM 能夠經過 RESTful API 存放對象數據。做爲可選的方案,Glance 能夠將鏡像存放在 Swift 中;Cinder 也能夠將 Volume 備份到 Swift 中。
Keystone:爲 OpenStack 的各類服務提供認證和權限管理服務。簡單的說,OpenStack 上的每個操做都必須經過 Keystone 的審覈。
Ceilometer:提供 OpenStac k監控和計量服務,爲報警、統計或計費提供數據。
Horizon:爲 OpenStack 用戶提供一個 Web 的自服務 Portal。
在上面的這些服務中,哪些是 OpenStack 的核心服務呢? 核心服務就是若是沒有它,OpenStack 就跑不起來。 很顯然
Nova 管理計算資源,是核心服務。
Neutron 管理網絡資源,是核心服務。
Glance 爲 VM 提供 OS 鏡像,屬於存儲範疇,是核心服務。
Cinder 提供塊存儲,VM怎麼也得須要數據盤吧,是核心服務。
Swift 提供對象存儲,不是必須的,是可選服務。
Keystone 認證服務,沒它 OpenStack 轉不起來,是核心服務。
Ceilometer 監控服務,不是必須的,可選服務。
Horizon 你們都須要一個操做界面吧。
如今核心服務有了,接下來咱們將鏡頭拉近點,看看核心服務內部的組成結構。 Logical Architecture
在 Logical Architecture 中,能夠看到每一個服務又由若干組件組成。 以 Neutron 爲例,包含
Neutron Server、Neutron plugins 和 Neutron agents
Network provider
消息隊列 Queue
數據庫 Neutron Database
在後面 Neutron 章節咱們會展開學習這些組件。
這裏想要強調一點: 上面是 Logical Architecture,描述的是 Neutron 服務各個組成部分以及各組件之間的邏輯關係。 而在實際的部署方案上,各個組件能夠部署到不一樣的物理節點上。
OpenStack 自己是一個分佈式系統,不但各個服務能夠分佈部署,服務中的組件也能夠分佈部署。 這種分佈式特性讓 OpenStack 具有極大的靈活性、伸縮性和高可用性。 固然從另外一個角度講,這也使得 OpenStack 比通常系統複雜,學習難度也更大。
後面章節咱們會深刻學習 Keystone、Glance、Nova、Neutron 和 Cinder 這幾個 OpenStack 最重要最核心的服務。