OpenStack(理論篇)

OpenStack基礎理論

雲計算概述

概念

  • 狹義的雲計算是指IT基礎設施的交付和使用模式
  • 廣義的雲計算是指服務的交付和使用模式

    雲資源

  • 網絡資源
  • 存儲資源
  • 服務器資源

    雲計算服務模型

    IaaS(基礎架構即服務)

  • 提供底層IT基礎設施服務,包括處理能力、存儲空間、網絡資源等
  • 一般面向對象是IT管理人員

    PaaS(平臺即服務)

  • 把安裝好開發環境的 系統平臺作爲一種服務通過互聯網提供給用戶
  • 一般面向對象是開發人員

    SaaS(軟件即服務)

  • 直接通過互聯網爲用戶提供軟件和應用程序的服務
  • 一般面向的對象是普通用戶

    OpenStack概述

  • 一款雲計算模型中的一個項目
  • NASA和Rackspace合作研發併發起
  • 以Apache許可證授權的自由軟件和開放式源代碼項目
  • 旨在爲公共及私有云的建設與管理提供軟件的開源項目
  • 覆蓋了網絡、虛擬化、操作系統、服務器等各個方面

OpenStack服務框架

在這裏插入圖片描述

服務 項目名稱 描述
Compute (計算服務) Nove 負責實例生命週期的管理,計算資源的單位。對Hypervisor進行屏蔽,支持多種虛擬化技術(紅帽默認爲KVM),支持橫向擴展
Network(網絡服務) Neutron 負責虛擬網絡的管理,爲實例創建網絡的拓撲結構。是面向租戶的網絡管理,可以自己定義自己的網絡,各個租戶之間互不影響
Identity(身份認證服務) Keystone 類似於LDAP服務,對用戶、租戶和角色、服務進行認證與授權,且支持多認證機制
Dashboard(控制面板服務) Horizon 提供一個WEB管理界面,與OpenStack底層服務進行交互
Image Service (鏡像服務) Glance 提供虛擬機鏡像模板的註冊和管理,將做好的操作系統拷貝爲鏡像模板,在創建虛擬機時直接使用,可支持多格式的鏡像
Block Storage(塊存儲服務) Cinder 負責爲運行實例提供持久的快存儲設備,可進行方便的擴展,按需付費,支持多種後端存儲
Object Storage(對象存儲服務) Swift 爲OpenStack提供基礎雲的彈性存儲,支持集羣無單點故障
Telemetry(計量服務) Ceilometer 用於度量、監控和控制數據資源的集中來源,

OpenStack重要組件介紹

OpenStack認證服務(Keystone)

Keystone爲所有的OpenStack組件提供認證和訪問策略服務,它依賴自身REST(基於Identity API)系統進行工作,主要對(但不限於)Swift、Glance、Nova等進行認證與授權。事實上,授權通過對動作消息來源者請求的合法性進行鑑定。下圖顯示了身份認證服務流程圖:

在這裏插入圖片描述
Keystone採用兩種授權方式,一種基於用戶名/密碼,另一種基於令牌(Token)。

除此之外,Keystone提供以下三種服務:
令牌服務:含有授權用戶的授權信息
目錄服務:含有用戶合法操作的可用服務列表
策略服務:利用Keystone具體指定用戶或羣組某些訪問權限

keystone認證服務注意事項:

  • 服務入口:如Nova、Swift和Glance一樣每個OpenStack服務都擁有一個指定的端口和專屬的URL,我們稱其爲入口(endpoints)。
  • 區位:在某個數據中心,一個區位具體指定了一處物理位置。在典型的雲架構中,如果不是所有的服務都訪問分佈式數據中心或服務器的話,則也稱其爲區位。
  • 用戶:Keystone授權使用者
      PS:代表一個個體,OpenStack以用戶的形式來授權服務給它們。用戶擁有證書(credentials),且可能分配給一個或多個租戶。經過驗證後,會爲每個單獨的租戶提供一個特定的令牌。
  • 服務:總體而言,任何通過Keystone進行連接或管理的組件都被稱爲服務。舉個例子,我們可以稱Glance爲Keystone的服務。

  • 角色:爲了維護安全限定,就雲內特定用戶可執行的操作而言,該用戶關聯的角色是非常重要的。
      PS:一個角色是應用於某個租戶的使用權限集合,以允許某個指定用戶訪問或使用特定操作。角色是使用權限的邏輯分組,它使得通用的權限可以簡單地分組並綁定到與某個指定租戶相關的用戶。

  • 租間:租間指的是具有全部服務入口並配有特定成員角色的一個項目。
      PS:一個租間映射到一個Nova的“project-id”,在對象存儲中,一個租間可以有多個容器。根據不同的安裝方式,一個租間可以代表一個客戶、帳號、組織或項目。

    OpenStack計算設施----Nova

    Nova是OpenStack計算的彈性控制器。OpenStack雲實例生命期所需的各種動作都將由Nova進行處理和支撐,這就意味着Nova以管理平臺的身份登場,負責管理整個雲的計算資源、網絡、授權及測度。雖然Nova本身並不提供任何虛擬能力,但是它將使用libvirt API與虛擬機的宿主機進行交互。Nova通過Web服務API來對外提供處理接口,而且這些接口與Amazon的Web服務接口是兼容的。

功能及特點: 

  • 實例生命週期管理
  • 計算資源管理
  • 網絡與授權管理
  • 基於REST的API
  • 異步連續通信
  • 支持各種宿主:Xen、XenServer/XCP、KVM、UML、VMware vSphere及Hyper-V
    Nova彈性雲(OpenStack計算部件)包含以下主要部分:
  • API Server(nova-api)
  • 消息隊列(rabbit-mq server)
  • 運算工作站(nova-compute)
  • 網絡控制器(nova-network)
  • 卷管理(nova-volume)
  • 調度器(nova-scheduler)

解釋如下:

1)API服務器(nova-api)

API服務器提供了雲設施與外界交互的接口,它是外界用戶對雲實施管理的唯一通道。通過使用web服務來調用各種EC2的API,接着API服務器便通過消息隊列把請求送達至雲內目標設施進行處理。作爲對EC2-api的替代,用戶也可以使用OpenStack的原生API,我們把它叫做“OpenStack API”。

2)消息隊列(Rabbit MQ Server)

OpenStack內部在遵循AMQP(高級消息隊列協議)的基礎上採用消息隊列進行通信。Nova對請求應答進行異步調用,當請求接收後便則立即觸發一個回調。由於使用了異步通信,不會有用戶的動作被長置於等待狀態。例如,啓動一個實例或上傳一份鏡像的過程較爲耗時,API調用就將等待返回結果而不影響其它操作,在此異步通信起到了很大作用,使整個系統變得更加高效。

3)調度器(nova-scheduler)  

調度器負責把nova-API調用送達給目標。調度器以名爲“nova-schedule”的守護進程方式運行,並根據調度算法從可用資源池中恰當地選擇運算服務器。有很多因素都可以影響調度結果,比如負載、內存、子節點的遠近、CPU架構等等。強大的是nova調度器採用的是可插入式架構。
目前nova調度器使用了幾種基本的調度算法:

  • 隨機化:主機隨機選擇可用節點;
  • 可用化:與隨機相似,只是隨機選擇的範圍被指定;
  • 簡單化:應用這種方式,主機選擇負載最小者來運行實例。負載數據可以從別處獲得,如負載均衡服務器。

4)運算工作站(nova-compute)

運算工作站的主要任務是管理實例的整個生命週期。他們通過消息隊列接收請求並執行,從而對實例進行各種操作。在典型實際生產環境下,會架設許多運算工作站,根據調度算法,一個實例可以在可用的任意一臺運算工作站上部署。

5)網絡控制器(nova-network)

網絡控制器處理主機的網絡配置,例如IP地址分配,配置項目VLAN,設定安全羣組以及爲計算節點配置網絡。

6)卷工作站(nova-volume) 

卷工作站管理基於LVM的 實例卷,它能夠爲一個實例創建、刪除、附加捲,也可以從一個實例中分離卷。卷管理爲何如此重要?因爲它提供了一種保持實例持續存儲的手段,比如當結束一個 實例後,根分區如果是非持續化的,那麼對其的任何改變都將丟失。可是,如果從一個實例中將卷分離出來,或者爲這個實例附加上卷的話,即使實例被關閉,數據 仍然保存其中。這些數據可以通過將卷附加到原實例或其他實例的方式而重新訪問。

因此,爲了日後訪問,重要數據務必要寫入卷中。這種應用對於數據服務器實例的存儲而言,尤爲重要

OpenStack鏡像服務器----Glance

OpenStack鏡像服務器是一套虛擬機鏡像發現、註冊、檢索系統,我們可以將鏡像存儲到以下任意一種存儲中:

  • 本地文件系統(默認)
  • S3直接存儲
  • S3對象存儲(作爲S3訪問的中間渠道)
  • OpenStack對象存儲等等。 
    功能及特點:
  • 提供鏡像相關服務。
Glance構件:
  • 1)Glance-API:
      主要負責接收響應鏡像管理命令的Restful請求,分析消息請求信息並分發其所帶的命令(如新增,刪除,更新等)。默認綁定端口是9292。
    • 2)Glance-Registry:
        主要負責接收響應鏡像元數據命令的Restful請求。分析消息請求信息並分發其所帶的命令(如獲取元數據,更新元數據等)。默認綁定的端口是9191。

OpenStack存儲設施----Swift

Swift爲OpenStack提供一種分佈式、持續虛擬對象存儲,它類似於Amazon Web Service的S3簡單存儲服務。Swift具有跨節點百級對象的存儲能力。Swift內建冗餘和失效備援管理,也能夠處理歸檔和媒體流,特別是對大數據(千兆字節)和大容量(多對象數量)的測度非常高效。

swift功能及特點:  
  • 海量對象存儲
  • 大文件(對象)存儲
  • 數據冗餘管理
  • 歸檔能力-----處理大數據集
  • 爲虛擬機和雲應用提供數據容器
  • 處理流媒體
  • 對象安全存儲
  • 備份與歸檔
  • 良好的可伸縮性
Swift組件
  • Swift賬戶
  • Swift容器
  • Swift對象
  • Swift代理
  • Swift RING
      
    Swift代理服務器  

    用戶都是通過Swift-API與代理服務器進行交互,代理服務器正是接收外界請求的門衛,它檢測合法的實體位置並路由它們的請求。
    此外,代理服務器也同時處理實體失效而轉移時,故障切換的實體重複路由請求。

Swift對象服務器

對象服務器是一種二進制存儲,它負責處理本地存儲中的對象數據的存儲、檢索和刪除。對象都是文件系統中存放的典型的二進制文件,具有擴展文件屬性的元數據(xattr)。

注意:xattr格式被Linux中的ext3/4,XFS,Btrfs,JFS和ReiserFS所支持,但是並沒有有效測試證明在XFS,JFS,ReiserFS,Reiser4和ZFS下也同樣能運行良好。不過,XFS被認爲是當前最好的選擇。

Swift容器服務器

容器服務器將列出一個容器中的所有對象,默認對象列表將存儲爲SQLite文件(譯者注:也可以修改爲MySQL,安裝中就是以MySQL爲例)。容器服務器也會統計容器中包含的對象數量及容器的存儲空間耗費。

Swift賬戶服務器

賬戶服務器與容器服務器類似,將列出容器中的對象。

Ring(索引環)

Ring容器記錄着Swift中物理存儲對象的位置信息,它是真實物理存儲位置的實體名的虛擬映射,類似於查找及定位不同集羣的實體真實物理位置的索引服務。這裏所謂的實體指賬戶、容器、對象,它們都擁有屬於自己的不同的Rings。

OpenStack管理的Web接口----Horizon

Horizon是一個用以管理、控制OpenStack服務的Web控制面板,它可以管理實例、鏡像、創建密匙對,對實例添加捲、操作Swift容器等。除此之外,用戶還可以在控制面板中使用終端(console)或VNC直接訪問實例。

總之,Horizon具有如下一些特點:  
  • 實例管理:創建、終止實例,查看終端日誌,VNC連接,添加捲等
  • 訪問與安全管理:創建安全羣組,管理密匙對,設置浮動IP等
  • 偏好設定:對虛擬硬件模板可以進行不同偏好設定
  • 鏡像管理:編輯或刪除鏡像
  • 查看服務目錄
  • 管理用戶、配額及項目用途
  • 用戶管理:創建用戶等
  • 卷管理:創建卷和快照
  • 對象存儲處理:創建、刪除容器和對象
  • 爲項目下載環境變量

    Openstack網絡結構圖

    在這裏插入圖片描述

    
    整個OpenStack是由控制節點,計算節點,網絡節點,存儲節點四大部分組成。(這四個節點也可以安裝在一臺機器上,單機部署)

其中:
控制節點負責對其餘節點的控制,包含虛擬機建立,遷移,網絡分配,存儲分配等等
計算節點負責虛擬機運行
網絡節點負責對外網絡與內網絡之間的通信
存儲節點負責對虛擬機的額外存儲管理等等



### 控制節點架構:

控制節點包括以下服務
 - 管理支持服務
 - 基礎管理服務
 - 擴展管理服務

  #### 1)管理支持服務包含MySQL與Qpid兩個服務

 - MySQL:數據庫作爲基礎/擴展服務產生的數據存放的地方
 - Qpid:消息代理(也稱消息中間件)爲其他各種服務之間提供了統一的消息通信服務

  ####  2)基礎管理服務包含Keystone,Glance,Nova,Neutron,Horizon五個服務

 - Keystone:認證管理服務,提供了其餘所有組件的認證信息/令牌的管理,創建,修改等等,使用MySQL作爲統一的數據庫
 - Glance:鏡像管理服務,提供了對虛擬機部署的時候所能提供的鏡像的管理,包含鏡像的導入,格式,以及製作相應的模板
 - Nova:計算管理服務,提供了對計算節點的Nova的管理,使用Nova-API進行通信
 - Neutron:網絡管理服務,提供了對網絡節點的網絡拓撲管理,同時提供Neutron在Horizon的管理面板
 - Horizon:控制檯服務,提供了以Web的形式對所有節點的所有服務的管理,通常把該服務稱爲DashBoard

  ####  3)擴展管理服務包含Cinder,Swift,Trove,Heat,Centimeter五個服務

 - Cinder:提供管理存儲節點的Cinder相關,同時提供Cinder在Horizon中的管理面板
 - Swift:提供管理存儲節點的Swift相關,同時提供Swift在Horizon中的管理面板
 - Trove:提供管理數據庫節點的Trove相關,同時提供Trove在Horizon中的管理面板
 - Heat:提供了基於模板來實現雲環境中資源的初始化,依賴關係處理,部署等基本操作,也可以解決自動收縮,負載均衡等高級特性。
 - Centimeter:提供對物理資源以及虛擬資源的監控,並記錄這些數據,對該數據進行分析,在一定條件下觸發相應動作

##### 控制節點一般來說只需要一個網絡端口用於通信/管理各個節點

### 網絡節點架構

##### 網絡節點僅包含Neutron服務

Neutron:負責管理私有網段與公有網段的通信,以及管理虛擬機網絡之間的通信/拓撲,管理虛擬機之上的防火等等

##### 網絡節點包含三個網絡端口

 - eth0:用於與控制節點進行通信
 - eth1:用於與除了控制節點之外的計算/存儲節點之間的通信
 - eth2:用於外部的虛擬機與相應網絡之間的通信

### 計算節點架構

##### 計算節點包含Nova,Neutron,Telemeter三個服務

  1)基礎服務

 - Nova:提供虛擬機的創建,運行,遷移,快照等各種圍繞虛擬機的服務,並提供API與控制節點對接,由控制節點下發任務
 - Neutron:提供計算節點與網絡節點之間的通信服務

  2)擴展服務

 - Telmeter:提供計算節點的監控代理,將虛擬機的情況反饋給控制節點,是Centimeter的代理服務

##### 計算節點包含最少兩個網絡端口

 - eth0:與控制節點進行通信,受控制節點統一調配
 - eth1:與網絡節點,存儲節點進行通信

### 存儲節點架構

##### 存儲節點包含Cinder,Swift等服務

 - Cinder:塊存儲服務,提供相應的塊存儲,簡單來說,就是虛擬出一塊磁盤,可以掛載到相應的虛擬機之上,不受文件系統等因素影響,對虛擬機來說,這個操作就像是新加了一塊硬盤,可以完成對磁盤的任何操作,包括掛載,卸載,格式化,轉換文件系統等等操作,大多應用於虛擬機空間不足的情況下的空間擴容等等
 - Swift:對象存儲服務,提供相應的對象存儲,簡單來說,就是虛擬出一塊磁盤空間,可以在這個空間當中存放文件,也僅僅只能存放文件,不能進行格式化,轉換文件系統,大多應用於雲磁盤/文件

##### 存儲節點包含最少兩個網絡接口

 - eth0:與控制節點進行通信,接受控制節點任務,受控制節點統一調配
 - eth1:與計算/網絡節點進行通信,完成控制節點下發的各類任務
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章