Openstack架構概念圖-簡單彙總

散盡浮華發表於2018-02-22

 

OpenStack是一個雲平臺管理的專案,它不是一個軟體。這個專案由幾個主要的元件組合起來完成一些具體的工作。想要了解openstack,第一步我們可以觀察他的概念圖

針對上圖的翻譯+解釋:

上圖主要回答了openstack為我們提供什麼服務,它的功能有哪些,當然概念圖只是為我們提供了一個概念,而正如一開始介紹的那樣——OpenStack是一個雲平臺管理的專案,它不是一個軟體,這個專案由幾個主要的元件組合起來完成一些具體的工作。搞清楚由哪些元件完成這些功能,我們需要藉助下圖2,下圖為Grizzly的架構圖,簡述了套件之間是如何運作的:

OpenStack的Grizzly版共有7個不同功能套件,分別是:
運算套件Nova:openstack中的核心,負責計算和實施一些策略,很多元件都要通過他進行排程(Nova中的nova-api負責所以API的排程,初始化大多數部署,執行部分策略)
物件儲存套件Swift:分散式物件儲存,功能類似於hadoop,可是跟hadoop又有很大不同;在openstack中,swift用於儲存建立虛擬機器的映象檔案
區塊儲存套件Cinder:配分塊儲存,給虛擬機器增加一個塊儲存裝置(有點類似於行動硬碟);
網通套件Quantum:通過API來管理的網路架構系統;
身分識別套件Keystone:身份認證功能;
映象檔管理套件Glance:對映象檔案進行管理;
儀表板套件Horizon:就是一個UI;

以上是針對Openstack元件的一些通俗解釋,如果大家覺得不夠詳盡,可以查閱一下其他資料:但用過百度一下的朋友就肯定會發現,網上流傳著好幾個不同版本的架構圖,幾種架構圖描述的方式都相差很大,第一眼看上去甚至都不是一個東西,面對這種情況,我們可以假設他們都是對的,然後找出他們之間的聯絡,這樣我們也可以加深對openstack的理解;
現在看一下openstack的邏輯架構:

a) 終端使用者通過和nova-api對話來與OpenStack Compute互動。
b) OpenStack Compute守護程式之間通過佇列(行為)和資料庫(資訊)來交換資訊,以執行API請求。(交換資訊的方式我們以後會講)
c) OpenStack Glance基本上是獨立的基礎架構,OpenStack Compute通過Glance API來和它互動。

其各個元件的情況如下:
a) nova-api守護程式是OpenStack Compute的中心。它為所有API查詢(OpenStack API 或 EC2 API)提供端點,初始化絕大多數部署活動(比如執行例項),以及實施一些策略(絕大多數的配額檢查)。
因此很多相對於openstack獨立的基礎架構是跟nova-api交換資訊的,而不是向其他程式那樣使用佇列和資料庫;
b) nova-compute程式主要是一個建立和終止虛擬機器例項的Worker守護程式。基本原理:從佇列中接收行為,然後在更新資料庫的狀態時,執行一系列的系統命令執行他們。
c) nova-volume管理對映到計算機例項的卷的建立、附加和取消。這些卷可以來自很多提供商,比如,ISCSI和AoE。
d) Nova-network worker守護程式類似於nova-compute和nova-volume。它從佇列中接收網路任務,然後執行任務以操控網路,比如建立bridging interfaces或改變iptables rules。
e) Queue提供中心hub,為守護程式傳遞訊息。當前用RabbitMQ實現。但是理論上能是python ampqlib支援的任何AMPQ訊息佇列。
f) SQL database儲存雲基礎架構中的絕大多數編譯時和執行時狀態。當前廣泛使用的資料庫是sqlite3(僅適合測試和開發工作),MySQL和PostgreSQL。
g) OpenStack Glance,是一個單獨的專案,它是一個compute架構中可選的部分,分為三個部分:
    glance-api:glance-api接受API呼叫;
    glance-registry: glance-registry負責儲存和檢索映象的後設資料,實際的Image Blob儲存在Image Store中;
    the image store:Image Store可以是多種不同的Object Store,包括OpenStack Object Storage (Swift);
h) 最後,user dashboard是另一個可選的專案。OpenStack Dashboard提供了一個OpenStack Compute介面來給應用開發者和devops staff類似API的功能。當前它是作為Django web Application來實現的。當然,也有其他可用的Web前端。(說白了就是個UI)

接著來看看這個邏輯圖在概念圖上的對映:

通過這樣一張圖我們就可以很清楚地瞭解各個程式的功能,我們同樣可以把各元件對映到它的概念圖上:

也可以用以下的表示方式來表現它的架構:

或者用思維導圖表示:

通過上述的幾個圖,我們基本上可以梳理清Openstack的架構了,通過比較不同表達方式,可以更透徹地理解一個事物,就像學生時代一直強調的一題多解一樣,希望能以這樣的方式加深大家對Openstack架構的理解。

相關文章