天天看點

OpenStack 架構 - 每天5分鐘玩轉 OpenStack(15)

終于正式進入 OpenStack 部分了。

今天開始,CloudMan 将帶着大家一步一步揭開 OpenStack 的神秘面紗。

OpenStack 已經走過了 6 個年頭。

每半年會釋出一個版本,版本以字母順序命名。現在已經到第 12 個版本 Liberty(字母 L)。

OpenStack最初隻有兩個子產品(服務),現在已經有 20+(見下圖),每個子產品作為獨立的子項目開發。

面對如此龐大的陣容,作為初學者我們如何起步呢?

這也是 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 就跑不起來。

很顯然

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 最重要最核心的服務。

本文轉自CloudMan6 51CTO部落格,原文連結:http://blog.51cto.com/cloudman/1759049