前言
OpenStack是目前最流行的開源雲操作系統,學習和掌握開源OpenStack知識將幫助雲計算從業者打好堅實的基礎。
本文是HCIP-Cloud Computing-OpenStack認證第一章,幫助讀者初步瞭解OpenStack,爲後續的深入學習打下基礎。
OpenStack簡介
OpenStack定義
OpenStack是開源雲操作系統,可控制整個數據中心的大型計算,存儲和網絡資源池。用戶能夠通過web界面、命令行或API接口配置資源。
OpenStack社區網站:www.openstack.org
OpenStack和虛擬化、雲計算的關係
OpenStack是虛擬化和雲計算之間的紐帶。
虛擬化提供資源,
OpenStack對外提供服務,同時也可以管理下面這些資源。
-
OpenStack不是虛擬化
- OpenStack的架構定位與技術範疇
OpenStack只是系統的控制面
OpenStack不包括系統的數據面組件,如Hypervisor、存儲和網絡設備等。 - OpenStack和虛擬化有着關鍵的區別
虛擬化是OpenStack底層的技術實現手段之一,但並非核心關注點
- OpenStack的架構定位與技術範疇
-
OpenStack不是雲計算
- OpenStack只是構建雲計算的關鍵組件
內核、骨幹、框架、總線 - 爲了構建雲計算,我們還需要很多東西
- OpenStack只是構建雲計算的關鍵組件
OpenStack的設計思想
- 開放
- 開源,並儘可能重用已有開源項目
- 不要“重複發明輪子”
- 靈活
- 不使用任何不可替代的私有/商業組件
- 大量使用插件方式進行架構設計與實現
- 可擴展
- 由多個相互獨立的項目組成
- 每個項目包含多個獨立服務組件
- 無中心架構
- 無狀態架構
Apache 2.0 License
約70%的代碼(核心邏輯)使用python開發
缺點:開源部分過多,使得系統變得相對比較繁瑣。各組件之間的交互理解起來也比較麻煩。如果不熟悉OpenStack,遇到問題排錯很難。
OpenStack歷史版本
- OpenStack每年兩個大版本,一般在4月和10月中旬發佈,版本命名從字母A-Z。
OpenStack架構
OpenStack架構圖
- 粗體字標識爲OpenStack核心服務
- OpenStack的服務分爲如下幾大類:
- 計算
- 存儲
- 網絡
- 共用服務
- 硬件生命週期
- 編排
- 工作流
- 應用程序生命週期
- API代理
- 操作界面
- OpenStack服務組件通過消息隊列(Message Queue)相互通信。
- OpenStack組件衆多,建議重點關注計算、存儲和網絡服務組件,其他服務可以在實際工作需要時再進行學習。
OpenStack生產環境部署架構示例
- 生產環境中,一般會有專門的OpenStack部署服務節點、控制節點、計算節點、網絡節點和存儲服務節點等。
- 生產環境的控制節點建議三臺以上,其他節點按要求部署。
- 如果只是測試,OpenStack服務可以部署在單節點上。
OpenStack核心服務簡介
認證服務Ketstone
- Keystone
認證服務
首次出現在OpenStack的“Essex”版本中。 - 簡介
Keystone提供身份驗證,服務發現和分佈式多租戶授權。
Keystone支持LDAP,OAuth,OpenID Connect,SAML和SQL。- LDAP:Lightweight Directory Access Protocol,輕量目錄訪問協議
- OAuth:Open Authorization,爲用戶資源的授權提供了一個安全的,開放而又簡單的標準。
- OpenID Connect:OpenID和OAuth2的合集。
- SAML:Security Assertion Markup Language,安全斷言標記語言,是一個基於XML的開源標準數據格式,它在當事方之間交換身份驗證和授權數據尤其是在身份提供者和服務提供者之間交換。
- 依賴的OpenStack服務
不依賴其他OpenStack服務,爲其他OpenStack服務提供認證支持。
操作界面Horizon
- Keystone
操作界面
首次出現在OpenStack的“Essex”版本中。 - 簡介
Horizon提供基於Web的控制界面,使雲管理員和用戶能夠管理各種OpenStack資源和服務。 - 依賴的OpenStack服務
Keystone
鏡像服務Glance
- GLANCE
鏡像服務
首次出現在OpenStack的“Bexar”版本中。 - 簡介
Glance提供發現、註冊和檢索虛擬機鏡像功能。
Glance提供的虛擬機實例鏡像可以存放在不同地方,例如本地文件系統、對象存儲、塊存儲等。 - 依賴的OpenStack服務
Keystone
計算服務Nova
- Nova
計算服務
首次出現在OpenStack的“Austin”版本中。 - 簡介
Nova提供大規模、可擴展、按需自助服務的計算資源。
Nova支持管理裸機、虛擬機和容器。 - 依賴的OpenStack服務
Keystone、Neutron(網絡)、Glance(鏡像服務)
塊存儲服務Cinder
- Cinder
塊存儲服務
首次出現在OpenStack的“Folsom”版本中。 - 簡介
Cinder提供塊存儲服務,爲虛擬機實例提供持久化存儲。
Cinder調用不同存儲接口驅動,將存儲設備轉化成塊存儲池,用戶無需瞭解存儲實際部署的位置或設備類型。 - 依賴的OpenStack服務
Keystone
對象存儲服務Swift
- Swift
對象存儲服務
首次出現在OpenStack的“Austin”版本中。 - 簡介
Swift提供高度可用、分佈式、最終一致的對象存儲服務。
Swift可以高效、安全的且廉價的地存儲大量數據。
swift非常適合存儲需要彈性擴展的非結構化數據。 - 依賴的OpenStack服務
爲其他OpenStack服務提供對象存儲服務。
網絡服務Neutron
- Neutron
網絡服務首次出現在OpenStack的“Folsom”版本中。 - 簡介
Neutron負責管理虛擬網絡組件,專注於爲OpenStack提供網絡即服務。 - 依賴的OpenStack服務
Keystone
編排服務Heat
- Heat
編排服務
首次出現在OpenStack的“Havana”版本中。 - 簡介
Heat爲雲應用程序編排OpenStack基礎架構資源。
Heat提供OpenStack原生Rest API和CloudFormation兼容的查詢API - 依賴的OpenStack服務
Keystone
OpenStack服務間交互示例
創建一個VM需要的資源
在OpenStack中創建虛擬機,資源需求和物理PC類似。
OpenStack創建VM,服務間交互示例
- OpenStack核心工作之一是虛擬機生命週期管理。
- 虛擬機實例創建時,各OpenStack服務協調工作,完成任務。
OpenStack動手實驗:體驗OpenStack
OpenStack Training Labs環境安裝步驟
OpenStack Training Labs腳本安裝流程
- 安裝OpenStack Training Labs環境時,只需執行一條腳本命令:
$./st.py -b cluster
- 腳本會自動化完成OpenStack培訓環境搭建過程,安裝完成後,會有一個OpenStack控制節點和一個OpenStack計算節點。