OpenStack 架構 之一 - 玩轉 OpenStack

 

 

終於正式進入 OpenStack 部分了。 今天開始,CloudMan 將帶着大家一步一步揭開 OpenStack 的神祕面紗。

OpenStack 已經走過了 6 個年頭。 每半年會發佈一個版本,版本以字母順序命名。現在已經到第 12 個版本 Liberty(字母 L)。 OpenStack最初只有兩個模塊(服務),現在已經有 20+(見下圖),每個模塊作爲獨立的子項目開發。

image45.png

面對如此龐大的陣容,作爲初學者我們如何起步呢? 這也是 CloudMan 寫這個系列教程的初衷: 通過實際操作幫助初學者由淺入深地學習和實踐 OpenStack,並最終具備實施 OpenStack 的能力。

我們會把學習的重點放在 OpenStack 最核心的地方。 那什麼是核心呢?請看下圖

作爲 IaaS 層的雲操作系統,OpenStack 爲虛擬機提供並管理三大類資源:計算、網絡和存儲。

這三個就是核心,所以我們的學習重點就是: 搞清楚 OpenStack 是如何對計算、網絡和存儲資源進行管理的。 在 20+ 模塊中,管理這三類資源的核心模塊其實不多,這幾個模塊就是我們的重點了。

要達到這個目的,我們自然需要研究 OpenStack 的整體架構。 架構裏哪些核心模塊負責管理計算資源、網絡資源和存儲資源?模塊之間如何協調工作? 同時我們會構建一個實驗環境,進到各個模塊的內部,通過實際操作真正理解和掌握 OpenStack。

好,下面我們就從架構開始吧。

OpenStack 架構

架構是個好東西,它能幫助我們站在高處看清楚事物的整體結構,避免過早地進入細節而迷失方向。

下圖是 OpenStack 的 Conceptual Architecture

中間菱形是虛擬機,圍繞 VM 的那些長方形代表 OpenStack 不同的模塊(OpenStack 叫服務,後面都用服務這個術語),下面來分別介紹。

Nova:管理 VM 的生命週期,是 OpenStack 中最核心的服務。

Neutron:爲 OpenStack 提供網絡連接服務,負責創建和管理L2、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 就跑不起來。 很顯然

  1. Nova 管理計算資源,是核心服務。

  2. Neutron 管理網絡資源,是核心服務。

  3. Glance 爲 VM 提供 OS 鏡像,屬於存儲範疇,是核心服務。

  4. Cinder 提供塊存儲,VM怎麼也得需要數據盤吧,是核心服務。

  5. Swift 提供對象存儲,不是必須的,是可選服務。

  6. Keystone 認證服務,沒它 OpenStack 轉不起來,是核心服務。

  7. Ceilometer 監控服務,不是必須的,可選服務。

  8. Horizon 大家都需要一個操作界面吧。

現在覈心服務有了,接下來我們將鏡頭拉近點,看看核心服務內部的組成結構。 Logical Architecture

在 Logical Architecture 中,可以看到每個服務又由若干組件組成。 以 Neutron 爲例,包含

  1. Neutron Server、Neutron plugins 和 Neutron agents

  2. Network provider

  3. 消息隊列 Queue

  4. 數據庫 Neutron Database

在後面 Neutron 章節我們會展開學習這些組件。

這裏想要強調一點: 上面是 Logical Architecture,描述的是 Neutron 服務各個組成部分以及各組件之間的邏輯關係。 而在實際的部署方案上,各個組件可以部署到不同的物理節點上。

OpenStack 本身是一個分佈式系統,不但各個服務可以分佈部署,服務中的組件也可以分佈部署。 這種分佈式特性讓 OpenStack 具備極大的靈活性、伸縮性和高可用性。 當然從另一個角度講,這也使得 OpenStack 比一般系統複雜,學習難度也更大。

後面章節我們會深入學習 Keystone、Glance、Nova、Neutron 和 Cinder 這幾個 OpenStack 最重要最核心的服務。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章