OpenStack 雲端運算作業系統

OpenStack 雲端運算作業系統


Openstack 架構

OpenStack是2010年美國Rackspace與NASA 的專案合作,其用意是用開源的精神讓雲端服務可以在開放平台間移動, 而非在單一封閉的雲端服務廠商如AWS(Amazon Web Service)Microsoft Azure或Google 的雲端運算平台。

簡單的說Openstack是一作業系統,可以讓企業建立公有雲及私有雲服務,但OpenStack是一個平台,並非在作業系統上裝上軟體就可以運行的雲端服務。OpenStack是由多個軟體組件組合而成,每個組件都控制雲端服務的功能。例如某些組件負責運算網路及儲存管理,有些組件則負責認證管理或是做協調性的工作。把這些組件組合起來,企業或雲端服務供應商可以及時提供運算資源及管理大量的虛擬機器。

下面是目前Openstack的軟體組合

Compute
Code-name: Nova

Openstack 是 2010年Rackspace與 NASA 的專案合作,當時 NASA貢獻運算的部分,Rackspace貢獻儲存的部分。時至今日,運算專案名稱就叫做Nova。

Nova是設計來管理及自動化部署運算資源,那是一套虛擬機器管理的軟體,但它不是一hypervisor(虛擬層),而是用來管理虛擬技術如 KVMXenESX及Hyper-V,且可以跑在高效能的硬體設備上。開發者可以透過API來使用運算資源,系統管理者及使用者可以透過管理介面來增加或減少運算資源。整個運算架構是設計在一般標準的伺服器上做水平擴展。Nova 可以當成等同於Amazon Web service 的 Elastic Compute Cloud (EC2)。

Networking
Code-Name: Neutron

Neutron管理雲端服務的網路層,它是一API驅動的系統讓系統管理者或使用者客製化網路設定,然後即時應用在VLAN或虛擬私有網路(VPN)。Neurtron允許固定或浮動IP(浮動IP可以應用在節點失效或維護時,將流量導至其他節點。它也支援軟體定義網路OpenFlow協定及擴展套件如入侵偵測防火牆及負載平衡。

Object Storage
Code-name: Swift

Openstack 有兩個主要的儲存平台:一是Object Storage System 名稱是Swift,一是Block Storage 平台名稱是Cinder。Swift 是最早 Rackspace 貢獻的程式碼,是一完全分散式可擴展的API存取平台,可以與應用程式做整合或是用來做備份或歸檔,但它不是一傳統的檔案儲存系統。Openstack軟體會自動複製Swift資料到多個節點來保證冗餘及失效備援。如果一節點失效,資料會自動複製到到系統上的新節點。這是Openstack主要功能,讓系統可以無限擴展到巨大規模。您可以將 swift 比擬為 AWS 的 Simple Storage Service (S3)。

Block Storage
Clode-name: Cinder

不像swift,Cinder 允許可被管理,也就是他們可以指定到運算節點上來擴充儲存空間。Cinder軟體管理這些儲存區塊的產生,管理者可以自由在運算伺服器上加上或卸載儲存空間。Cinder其他主要功能還包含整合傳統的企業儲存系統,例如Linux Server Storage 及其他平台如CephNetAppNexenta SolidFire及Zadarc 等。這部分等同於AWS的 Elastic Block Storage (EBS) 功能。

Identity and access management
Code  name: Keystone

Openstack有一些專案提供組件間分享服務,例如Keystone。這專案的主要工具是用來做認證到雲服務及角色登入管理。keystone整合LDAP來提供一主要的使用者目錄。管理者可以設定政策來控管使用者可以存取哪些資源。keystone支援傳統的使用者及密碼登入,也支援token方式登入。

Dashboard
code name: Horizon

這是使用Openstack雲端的主要使用介面。這個web管理工具讓使用者及管理者有能力提供及自動化服務。如果應用程式API呼叫無法使用,它是主要存取資源的方式。

Image Service
Code-name: Glance

使用雲端平台的主要優點是能夠應使用者需求即刻建立虛擬機器。Glance藉由產生虛擬機器的樣板,快速複製虛擬機器,也就是管理者可以設定虛擬機器目錄,讓使用者可以選擇並自行產生VM,Glance也可以用來備份暨有的image 並存放起來。Glance 整合Cinder來存放image。

Usage data and orchestration

兩個最新的openstack專案是Ceilometer及Heat。Ceilometer是一量測系統,讓管理者追蹤雲端服務的使用狀況。包含使用者存取何種資源,及使用了多少資料量。Heat 是一管理引擎,能讓開發者自動套用架構。這讓computenetworking及storage設定可以自動地被指定到一虛擬機器或應用程式,這讓新的組件上線更方便。Heat也有自動擴展的元素,允許服務當需要時自動加進資源。

開發中: Database實體伺服器管理訊息及Hadoop

目前Openstack有一些正在開發的專案,尚未正式整合到OpenStack中, 這包含Trone – MySQL database as a service,等同於AWS Relational Database Service (RDS),另外一個是Sahara,它是用來讓Openstack 來控制Hadoop clusters。Ironic 這一專案用來讓Openstack 管理實體伺服器,Macaroni是一訊息伺服器。這些專案會繼續在Openstack社群中開發, 將來有可能會整合進Openstack的未來版本中。