看了網上的一些博客對OpenStack架構的描述,大部分都是將官網的架構圖截取下來(仍是純英文文字描述的圖片)或者直接將描述翻譯爲中文直接複製粘貼過來了。若是對於初學者而言,這或許是有字天書了。因此筆者先前的一篇文章是介紹了關於OpenStack的基礎知識和核心的組件服務。而本文先從OpenStack部署的節點結構描述,再來對其總體架構進行闡述。linux
在介紹OpenStack的節點類型以前咱們先對OpenStack作一些知識補充。web
OpenStack是適用於全部類型雲的開源雲計算平臺,其目標是易於實現,可大規模擴展且功能豐富。數據庫
OpenStack是經過一組互相關聯的服務組件提供IaaS(基礎設施即 服務)解決方案。咱們在實驗環境或生產環境中部署OpenStack實踐以前,都須要對其各類類型的節點及對應安裝的服務有所瞭解。後端
OpenStack的節點類型有如下四個類型:瀏覽器
下面咱們對這四個節點類型注意介紹。安全
控制節點包括了管理支持服務、基礎管理服務和擴展管理服務。服務器
相對於OpenStack而言,該服務屬於底層的一些軟件安裝,用於給相關的組件提供服務。例如安裝數據庫軟件、消息隊列軟件、Memorycache和Etcd等。網絡
該服務主要安裝了一些核心的服務,例如Kystone、Glance、Nova,也能夠安裝Neutron和Horizon服務。用於提供用戶基礎的控制與管理。架構
擴展管理服務是可選的一些組件的安裝,例如存儲管理,數據庫服務等。包括Cinder、Swift、Trove、Heat和Ceilometer主要的可選服務。框架
此外,控制節點通常來講須要經過網絡端口實現同各個節點之間的通訊或者管理。
網絡節點有且僅有Neutron服務,就是網絡服務。
Neutron主要負責管理私有網段和公有網段之間的通訊,同時管理虛擬機網絡之間的通訊以及防火牆等等。
通常在部署時會部署兩個以上的網絡端口,分別用於與控制節點通訊、同計算/存儲節點通訊、用於外部的虛擬機與相應的網絡之間的通訊。
計算節點主要包含計算服務、網絡服務以及監控服務。基礎服務是前兩個,監控能夠擴展選擇。
存儲包含的是塊存儲以及對象存儲。這二者雖然都是存儲,可是本質上有着巨大的不一樣。
塊存儲至關於虛擬出的一塊磁盤,能夠掛載在對應的虛擬機上,不會受到文件系統的影響,通常是用於虛擬機空間不足時擴容場景;而對象存儲,本質上是虛擬出一塊磁盤空間,能夠存儲文件,但不能進行格式化或轉換文件系統,通常用於雲磁盤/文件。
關於相關組件的部署與節點類型的對應關係能夠參考下圖(暫時不包括存儲):
這幅組件部署結構圖,或者說部署架構圖是很是經典的,當在後面咱們詳細對OpenStack中核心項目詳細介紹以後回顧這張圖的時候,可能會有別樣的感覺。
當咱們對實驗環境或者生產環境中部署OpenStack的節點類型有所瞭解的前提下,咱們來從兩個方面簡要說明一下OpenStack的總體架構,該架構是從官方文檔中截取,主要從概念和邏輯兩個方面進行劃分。
固然咱們仍是要遵循官方文檔的相關資料,不過這裏筆者將對整個內容稍做詳細的講述,畢竟本文是對一些有網絡,羣集和linux操做系統基礎而又想入門OpenStack的人羣提供較爲細緻的描述與介紹。
以下圖,顯示的是OpenStack服務之間的關係。筆者將其稱之爲OpenStack總體概念圖。它很好的顯示了OpenStack的典型項目,而且將各個服務聯繫起來。雖然未必一開始就能徹底弄懂,可是咱們能夠經過此圖從總體上對OpenStack的概念有進一步的理解。
那麼咱們如何看這幅概念架構圖呢?
嗯,能夠花幾分鐘本身先大體看一下這個架構圖,結合上篇文章的內容看看有多少是有些印象的。而後去搜索一下相關的介紹,筆者起初也是經過Google瀏覽器去到官網看官方文檔,而後發現不是很是容易理解,而後就去找資料,聽聽課等等,從網上找的博客文章呢,大多都是截取官網的圖片和複製了官方的簡要說明。若是你懶得去動手搜索,那就聽聽筆者的理解吧。固然筆者能力有限,若有紕漏之處但願您在下方留言指正。
筆者將上圖作一下標記,方便介紹,請參照下圖:
首先,總體上來看,咱們比較熟悉的應該是上圖中的加色部分,咱們稱之爲OpenStack的各類項目,也對應着各類服務;下面的表述中能夠將服務和項目認爲是同一種意思。
那麼咱們先看中間的紅色部分,VMs表示的是虛擬機實例,若是你們玩過或體驗過阿里雲的一些服務就對此有必定理解了。其實對於OpenStack而言,虛擬機實例就是爲客戶提供虛擬的服務,包括CPU、內存、帶寬、存儲等等資源。而這些實例須要由OpenStack各個服務的支持,也包括對其提供相對應的資源和對其進行管理操做。
其次咱們看紅色方框,這裏的服務有一個共同特色——全局性。例如:Keystone,我知道該服務是提供認證的,而須要認證的地方(服務)也是很是多的,Ceilometer服務提供的監控和Horizon服務提供的可視化界面操做管理也是一個道理。而之因此將這三個服務與下面的Swift服務(對象存儲)標註同一色塊,是由於該四個組件服務相對綠色塊而言沒有那麼核心。固然這裏只是筆者的理解,其實上圖給出的各類組件服務都是常見經常使用的,你們仍是要多多瞭解。
其次咱們來看紫色方框,這裏除了先前講述的虛擬機實例和對象存儲服務,還有四個(綠色塊)最爲核心的項目,以及其餘四個項目。
核心的項目介紹:Glance提供鏡像,Nova提供計算服務(例如能夠經過Nova進行數據處理實例等),Neutron提供網絡服務(各個節點通訊,內外網之間通訊以及與內部組件之間的通訊(有對應的API接口)),Cinder提供的就是存儲,至關於一個磁盤。
剩下的四個項目介紹:
Ironic項目,裸金屬,還記得上篇文章中咱們提到的Bare Metal嗎?其實裸金屬項目是OpenStack的一個比較特別的項目,是針對一些特殊的場景建立的,主要是爲了指定在一臺或多臺裸機上執行操做,例如部署大數據集羣時同時部署多臺物理機的場景,Ironic即可以實現硬件基礎設施資源的快速交付。
另外,在一些特殊的應用場景下,用戶須要直接使用物理服務器資源來知足特定需求的可行性和高效性,所以這也是OpenStack支持該項目的緣由之一。
Trove項目,是OpenStack提供的數據庫即服務的項目。主要是爲了使用戶可以快速輕鬆地利用關係數據庫的功能,而無需承擔處理複雜管理任務的負擔。雲用戶和數據庫管理員能夠根據須要配置和管理多個數據庫實例。
Heat項目,是OpenStack提供的編排服務,用於經過運行OpenStack API調用來生成正在運行的雲應用程序,描述雲應用程序。使用模板,能夠建立大多數OpenStack資源類型,例如實例,浮動IP,卷,安全組和用戶。它還提供了高級功能,例如實例高可用性,實例自動縮放和嵌套堆棧。這使OpenStack核心項目可以得到更大的用戶羣。
Sahara項目,是OpenStack提供的數據處理服務,主要是爲用戶提供一種簡單的方法來在OpenStack上預配數據處理框架(例如Hadoop,Spark和Storm)。這能夠經過指定配置參數(例如框架版本,羣集拓撲,節點硬件詳細信息等)來完成。
固然這裏主要是對上面的一些項目對應的功能和已經兩兩之間的關聯進行了簡單介紹,主要是要對其中的服務之間的聯繫有所瞭解,也就是要對黑色的英文單詞與短語翻譯理解,從而瞭解各個服務項目之間的聯繫。
若是對上圖的英文不太熟悉或者仍是以爲仍是比較抽象的話,能夠參考下面的簡化以後的架構(其實該圖本質上是認證服務的典型結構圖,這裏主要是由於中文友好,易於理解,包含了組件和對應的項目,給你們的直觀感受好些。關於Keystone以及其餘核心項目服務會持續進行介紹),可能方便你們從總體上對OpenStack核心內容及架構進行理解。
以上就是筆者對官方給出的OpenStack概念架構的介紹。其中涉及的重要組件服務在以後會逐一作更加細緻的介紹。
下面咱們來看看官方給出的邏輯架構圖。
下面咱們來談談OpenStack的邏輯架構,官方給出的邏輯架構(常見架構但並不惟一)以下圖所示:
從上圖咱們能夠發現與概念架構的相同之處就是相對應的組件服務仍是在的,不過區別也很是明顯,邏輯架構有了直觀的內外網的區分,而且將各個組件服務用虛線框隔開,每一個框內包含對應組件服務的一些存儲,功能模塊和API調用接口等,而又將各個組件之間用實現鏈接,表示出各個組件服務之間的邏輯關係。
不過如果詳細講述該邏輯架構委實枯燥,或許仍然會以爲複雜而抽象,而且筆者前面也說了這也是官方給出的常見架構,並不惟一。下面是簡化版本的邏輯架構圖和介紹。
用戶或管理者能夠經過網絡來使用或管理OpenStack雲平臺系統,主要有上圖給出的三種方法:命令行接口(對應的相關組件接口的調用)、雲管理工具如Rightscale和Enstratius等等、圖形化界面工具如Dashboard、Cyberduck等等。筆者使用過OpenStack提供的組件Dashboard,Horizon項目提供的Web圖形化界面工具來建立、管理該雲平臺。若是有使用過阿里雲相關服務的經驗,就更加好理解了。本文最後會給出筆者先前在筆記本的虛擬機上搭建部署的多節點的OpenStack雲平臺在本地登陸的Web界面圖。
而在OpenStack內部,每一個組件服務都有本身的邏輯架構,通常由功能模塊、數據庫或對應後端以及和其餘組件進行交互的API接口,這些接口則是經過消息隊列來實現通訊的,某些專業術語和名詞以後也會整理出來。
所以,理解OpenStack的邏輯架構能夠從總體到局部再到個體來理解。
下面演示如下如何登陸OpenStack管理使用界面,即Horizon項目提供的儀表板UI界面。
一、首先網頁中輸入本地控制節點ip地址,進入OpenStack儀表板登陸界面
二、查詢登陸用戶名和密碼(這裏做爲管理員登陸)
三、對照上圖登陸便可進入儀表板web管理界面
本文主要介紹了OpenStack的架構,從概念和邏輯兩個方面進行簡要闡述,最後給出筆者部署OpenStack時由Horizon項目提供的Web界面示例圖。