您好,登錄后才能下訂單哦!
看了網上的一些博客對OpenStack架構的描述,大部分都是將官網的架構圖截取下來(還是純英文文字描述的圖片)或者直接將描述翻譯為中文直接復制粘貼過來了。如果對于初學者而言,這或許是有字天書了。所以筆者先前的一篇文章是介紹了關于OpenStack的基礎知識和核心的組件服務。而本文先從OpenStack部署的節點結構描述,再來對其整體架構進行闡述。
在介紹OpenStack的節點類型之前我們先對OpenStack做一些知識補充。
OpenStack是適用于所有類型云的開源云計算平臺,其目標是易于實現,可大規模擴展且功能豐富。
OpenStack是通過一組互相關聯的服務組件提供IaaS(基礎設施即 服務)解決方案。我們在實驗環境或生產環境中部署OpenStack實踐之前,都需要對其各種類型的節點及對應安裝的服務有所了解。
OpenStack的節點類型有以下四個類型:
下面我們對這四個節點類型注意介紹。
控制節點包括了管理支持服務、基礎管理服務和擴展管理服務。
相對于OpenStack而言,該服務屬于底層的一些軟件安裝,用于給相關的組件提供服務。例如安裝數據庫軟件、消息隊列軟件、Memorycache和Etcd等。
該服務主要安裝了一些核心的服務,例如Kystone、Glance、Nova,也可以安裝Neutron和Horizon服務。用于提供用戶基礎的控制與管理。
擴展管理服務是可選的一些組件的安裝,例如存儲管理,數據庫服務等。包括Cinder、Swift、Trove、Heat和Ceilometer主要的可選服務。
此外,控制節點一般來說需要通過網絡端口實現同各個節點之間的通信或者管理。
網絡節點有且僅有Neutron服務,就是網絡服務。
Neutron主要負責管理私有網段和公有網段之間的通信,同時管理虛擬機網絡之間的通信以及防火墻等等。
一般在部署時會部署兩個以上的網絡端口,分別用于與控制節點通信、同計算/存儲節點通信、用于外部的虛擬機與相應的網絡之間的通信。
計算節點主要包含計算服務、網絡服務以及監控服務。基礎服務是前兩個,監控可以擴展選擇。
存儲包含的是塊存儲以及對象存儲。這兩者雖然都是存儲,但是本質上有著巨大的不同。
塊存儲相當于虛擬出的一塊磁盤,可以掛載在對應的虛擬機上,不會受到文件系統的影響,一般是用于虛擬機空間不足時擴容場景;而對象存儲,本質上是虛擬出一塊磁盤空間,可以存儲文件,但不能進行格式化或轉換文件系統,一般用于云磁盤/文件。
當我們對實驗環境或者生產環境中部署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)。這可以通過指定配置參數(例如框架版本,群集拓撲,節點硬件詳細信息等)來完成。
當然這里主要是對上面的一些項目對應的功能和已經兩兩之間的關聯進行了簡單介紹,主要是要對其中的服務之間的聯系有所了解,也就是要對黑色的英文單詞與短語翻譯理解,從而了解各個服務項目之間的聯系。
如果對上圖的英文不太熟悉或者還是覺得還是比較抽象的話,可以參考下面的簡化之后架構,可能方便大家理解。
以上就是筆者對官方給出的OpenStack概念架構的介紹。其中涉及的重要組件服務在之后會逐一做更加細致的介紹。
下面我們來看看官方給出的邏輯架構圖。
下面我們來談談OpenStack的邏輯架構,官方給出的邏輯架構(常見架構但并不唯一)如下圖所示:
從上圖我們可以發現與概念架構的相同之處就是相對應的組件服務還是在的,不過區別也非常明顯,邏輯架構有了直觀的內外網的區分,并且將各個組件服務用虛線框隔開,每個框內包含對應組件服務的一些存儲,功能模塊和API調用接口等,而又將各個組件之間用實現連接,表示出各個組件服務之間的邏輯關系。
不過若是詳細講述該邏輯架構委實枯燥,或許仍然會覺得復雜而抽象,并且筆者前面也說了這也是官方給出的常見架構,并不唯一。下面是簡化版本的邏輯架構圖和介紹。
用戶或管理者可以通過網絡來使用或管理OpenStack云平臺系統,主要有上圖給出的三種方法:命令行接口(對應的相關組件接口的調用)、云管理工具如Rightscale和Enstratius等等、圖形化界面工具如Dashboard、Cyberduck等等。筆者使用過OpenStack提供的組件Dashboard,Horizon項目提供的Web圖形化界面工具來創建、管理該云平臺。如果有使用過阿里云相關服務的經驗,就更加好理解了。本文最后會給出筆者先前在筆記本的虛擬機上搭建部署的多節點的OpenStack云平臺在本地登錄的Web界面圖。
而在OpenStack內部,每個組件服務都有自己的邏輯架構,一般由功能模塊、數據庫或對應后端以及和其他組件進行交互的API接口,這些接口則是通過消息隊列來實現通信的,某些專業術語和名詞之后也會整理出來。
因此,理解OpenStack的邏輯架構可以從整體到局部再到個體來理解。
下面演示以下如何登錄OpenStack管理使用界面,即Horizon項目提供的儀表板UI界面。
1、首先網頁中輸入本地控制節點ip地址,進入OpenStack儀表板登錄界面
2、查詢登錄用戶名和密碼(這里作為管理員登錄)
3、對照上圖登錄即可進入儀表板web管理界面
本文主要介紹了OpenStack的架構,從概念和邏輯兩個方面進行簡要闡述,最后給出筆者部署OpenStack時由Horizon項目提供的Web界面示例圖。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。