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



終於正式進入 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 最重要最核心的服務。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM