OpenStack架構

兩年前OpenStack基於NASA的Nova項目和Rackspace的Swift項目合併得以建立,而今OpenStack已經成爲雲計算領域的一顆新星,繼2012年四月發佈Essex版本之後,在今年九月底OpenStack第6版Folsom正式發佈,本文簡要分析了OpenStack Folsom的架構。

OpenStack架構

OpenStack的架構示意圖和目前已實現情況

藍色是要 openstack概念上的架構圖,紅色是目前已實現的。

OpenStack的組件

OpenStack目前有7個核心組件:Compute(計算), Object Storage(對象存儲),Identity(身份認證),Dashboard(儀表盤), Block Storage(塊存儲), Network(網絡) 和 Image Service(鏡像服務) 。下面將依次進行解釋:

Object Storage(代號爲“Swift”) 允許進行存儲或者檢索文件。目前已經有幾好家公司開始提供基於Swift商業存儲服務,這些公司包括KT,Rackspace公司(Swift項目的發源地)和Internap,而且很多大公司內部也使用Swift來存儲數據。

Image Service(代號爲“Glance”) 是一個虛擬機鏡像的存儲、查詢和檢索系統,它提供了一個虛擬磁盤映像的目錄和存儲庫,這些磁盤映像常常廣泛應用於OpenStack Compute之中,而且這種服務在技術上是屬於可選的,任何規模的雲都適用於它。

Compute(代號爲“Nova”) 根據需求提供虛擬服務。Rackspace公司和HP提供商業計算服務正是建立在Nova之上,Mercado Libre和NASA(Nova項目的起源地)內部也是使用的Nova。

Dashboard(代號爲“Horizon”) 爲所有OpenStack的服務提供了一個模塊化的web-based用戶界面。使用這個Web GUI,可以在雲上完成大多數的操作,如啓動實例,分配IP地址,設置訪問控制等。

Identity(代號爲“Keystone”) 爲所有的OpenStack服務提供身份驗證和授權。它還提供了一個在特定OpenStack雲服務上的服務目錄。

Network(代號爲“Quantum”) 在接口設備之間提供“網絡連接作爲一種服務”,而這些接口設備主要靠其他的OpenStack服務進行管理(最有可能是Nova)。該服務允許用戶創建自己的網絡,然後連接接口。Quantum提供一個可插拔的體系架構,它能支持很多流行的網絡供應商和技術,Quantum是Folsom版本中的新項目。

Block Storage(代號爲“Cinder”) 提供穩定的數據塊存儲服務。這個項目的很多代碼最初是來自於Nova之中(就是the nova-volume service)。但是請注意,這是塊存儲(或者volumes),而不是類似於NFS或者CIFS文件系統,Cinder在Folsom中也是一個全新的項目。除了這些核心項目之外,也有一些“孵化”項目,未來可能會考慮列入到OpenStack的核心項目之中。

部署

部署時,除了Dashboard必須部署在 nova-api server上以外,所有的其它進程都可以部署在不同的機器上。

OpenStack提供了基於Puppet 的自動部署工具。經過簡單配置,就可以把各個組件部署到不同機器上。

OpenStack的鏡像創建並沒有納入其職責列表。
你可以使用Ubuntu的已有image (https://help.ubuntu.com/community/UEC/),或者直接重新自己通過KVM安裝 http://cssoss.wordpress.com/2011/04/27/openstack-beginners-guide-for-ubuntu-11-04-image-management/


網絡模型

Flat Network Manager, Flat DHCP Network Manager, VLAN Network Manager.

VLAN Network Manager這種方式適合於共有云。

在私有云方面,IP充足,而且爲了方便的互聯互通,簡單的Flat結構網絡比較適合。

OpenStack支持Floating IPs,該特性可以方便的通過更改IP來Failover(容錯轉移)或者遷移。

CAAS

Cluster as a Service: Managing multiple clusters for openstack clouds and other diverse frameworks

OpenStack無法獨自滿足集羣計算的需求。目前有一種方案,把集羣計算部署放到IaaS/PaaS 的下一層,我們稱這種解決方案是 CaaS.

當前,在很多機構或者學校,部署了不同的集羣解決方案,但是他們使用的頻率並不是很高,因此資源利用率不高的情況下,造成了很大的浪費(比如電費,PC)。

設計目標:

o每個集羣資源都可以動態分配

o系統隔離性好

o集羣有足夠的性能和容量

設計:

oIaaS/PaaS層與CaaS 隔離

oIaaS/PaaS層可聯機擴展

oCaaS 層的鏡像可通過容器有效被處理

oCaaS 層是通過 webservice提供服務

o可通過 VLAN 網絡隔離

o自動安裝

在這個解決方案中是通過LXC方式來實現系統隔離

注:

LXC, LINUX的容器工具,他使用cgroup把系統資源分組進行隔離。
它不需要指令級模擬。因此相對其他虛擬化技術性能更高。
因爲他必須以進程運行執行文件的方式,因此不支持windows.


架構圖

CaaS中構建 OpenStack
Layers

oCaaS(Physical) Physical layer. OS is installed on physical machines.

oCaaS(LXC) LXC layer. A Tagged VLAN isolates LXC containers.

oIaaS Cloud layer.OpenStack(nova).

過程:

1.在物理機上安裝LXC

2. 配置VPN網絡

3. 執行nova的自動部署工具

重複1~3,在不同的機器上重複的安裝OpenStack的計算節點

 

運行時架構

系統內部交互圖

Swift    也是獨立組件,對系統運行沒影響。

nova-api 是對外的接口。

Glance   是獨立組件,供 nova-compute 下載鏡像使用。

 

核心組件:

Scheduler:根據當前資源使用情況,決定計算節點分佈到哪臺計算節點上。目前實現很薄,目前已支持插件方式擴展,方便後面可能有采用更復雜算法。

Compute:  計算節點,使用虛擬化技術,host 虛擬機

Network:  網絡管理,給虛擬機分配網絡和管理,使外部PC 可以可直接訪問

Volume:   給虛擬機分配額外持久化的存儲

運行時系統間交互都是通過異步消息的方式和DB進行交互。

 

運行時圖

管理和使用是走兩個通道的。管理必須要經由nova-api轉發過去。而運行時,直接連接計算節點上的虛擬機即可。

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章