OpenStack是一個由NASA(美國國家航空航天局)和Rackspace合作研發并發起的,以Apache許可證授權的自由軟件和開放源代碼項目。作為一個開源的云計算管理平臺項目,由多個相關聯的組件組合起來完成具體工作。OpenStack支持幾乎所有類型的云環境,項目目標是提供實施簡單、可大規模擴展、豐富、標準統一的云計算管理平臺。OpenStack通過各種互補的服務提供了基礎設施即服務(IaaS)的解決方案,每個服務提供API以進行集成。
OpenStack是一個旨在為公有云及私有云的建設與管理提供軟件的開源項目。它目前的社區擁有超過130多家企業及1600多位開發者,這些機構與個人都將OpenStack作為基礎設施即服務(IaaS)資源的通用前端。OpenStack項目的首要任務是簡化云的部署過程并為其帶來良好的可擴展性。
1 OpenStack三大核心組件
OpenStack因有計算、網絡、存儲三大組件的支撐,OpenStack能夠構建出多種靈活的企業級云計算應用平臺。有了OpenStack平臺通過對著三大組件的虛擬化,可以對用戶隱藏底層基礎設施的異構性及其實現的細節,達到業務的靈活性和便捷性以及可擴展性。
2 Openstack主要組件
OpenStack覆蓋了網絡、虛擬化、操作系統、服務器等各個方面。它是一個正在開發中的云計算平臺項目,根據成熟及重要程度的不同,被分解成核心項目、孵化項目,以及支持項目和相關項目。主要項目包括計算、網絡、對象存儲、塊存儲、身份、鏡像服務、門戶、測量、部署編排、數據庫服務等等,可以根據需要選擇安裝,組網結構也靈活多樣。每個項目都有自己的委員會和項目技術主管,而且每個項目都不是一成不變的,孵化項目可以根據發展的成熟度和重要性,轉變為核心項目。
下面列出了10個核心項目(即OpenStack核心服務)。
(1)計算服務(Compute Service):即Nova項目。一套控制器,用于為單個用戶或使用群組管理虛擬機實例的整個生命周期,根據用戶需求來提供虛擬服務。負責虛擬機創建、開機、關機、掛起、暫停、調整、遷移、重啟、銷毀等操作,配置CPU、內存等信息規格。自Austin版本集成到項目中。
(2)對象存儲(Object Storage):即Swift項目。一套用于在大規模可擴展系統中通過內置冗余及高容錯機制實現對象存儲的系統,允許進行存儲或者檢索文件。可為Glance提供鏡像存儲,為Cinder提供卷備份服務。自Austin版本集成到項目中
(3)鏡像服務(Image Service):即Glance。一套虛擬機鏡像查找及檢索系統,支持多種虛擬機鏡像格式(AKI、AMI、ARI、ISO、QCOW2、Raw、VDI、VHD、VMDK),有創建上傳鏡像、刪除鏡像、編輯鏡像基本信息的功能。自Bexar版本集成到項目中。
(4)身份服務(Identity Service):即Keystone。為OpenStack其他服務提供身份驗證、服務規則和服務令牌的功能,管理Domains、Projects、Users、Groups、Roles。自Essex版本集成到項目中。
(5)網絡管理服務(Networking Service):即Neutron。提供云計算的網絡虛擬化技術,為OpenStack其他服務提供網絡連接服務。為用戶提供接口,可以定義Network、Subnet、Router,配置DHCP、DNS、負載均衡、L3服務,網絡支持GRE、VLAN。插件架構支持許多主流的網絡廠家和技術,如OpenvSwitch。自Folsom版本集成到項目中。
(6)塊存儲(Block Storage):即Cinder。為運行實例提供穩定的數據塊存儲服務,它的插件驅動架構有利于塊設備的創建和管理,如創建卷、刪除卷,在實例上掛載和卸載卷。自Folsom版本集成到項目中。
(7)儀表盤(Dashboard):即Horizon。OpenStack中各種服務的Web管理門戶,用于簡化用戶對服務的操作,例如:啟動實例、分配IP地址、配置訪問控制等。自Essex版本集成到項目中。
(8)測量(Metering):即Ceilometer。像一個漏斗一樣,能把OpenStack內部發生的幾乎所有的事件都收集起來,然后為計費和監控以及其它服務提供數據支撐。自Havana版本集成到項目中。
(9)部署編排(Orchestration Service):即Heat。提供了一種通過模板定義的協同部署方式,實現云基礎設施軟件運行環境(計算、存儲和網絡資源)的自動化部署。自Havana版本集成到項目中。
(10)數據庫服務(Database Service):即Trove。為用戶在OpenStack的環境提供可擴展和可靠的關系和非關系數據庫引擎服務。自Icehouse版本集成到項目中。
OpenStack版本名稱首字母根據字母表順序來的,從最開始的Austin(A)一直到目前最新的Pike(P)版本。其中最新版本中涉及到的項目有上百個,包括很多新項目,比如多后端支持、通用時間支持、存儲復制、容器網絡支持、增量備份、IPv6和分布式SNAT等等。關于其中的項目請參考官方網站https://www.openstack.org。
3 OpenStack主要組件的關系
OpenStack主要組件之間的關系如上圖,這里做個簡單的說明:
(1)用戶通過Horizon進行介入訪問,采用RESTful API方式
(2)通過Keystone進行授權和認證
(3)Nova為計算服務,負責通過libvirt對整個虛擬機生命周期進行管理
(4)Glance作為鏡像服務對虛擬機鏡像進行管理
(5)Swift為虛擬機提供對象存儲,Cindor為虛擬機提供塊存儲
(6)組件之間的通信采用AMQP消息隊列進行調用
(7)圖中的網絡服務組件Quantum服務在Havana版本更名為了Neutron,用以對各個節點提供網絡服務