複製鏈接
請複製以下鏈接發送給好友

OpenStack

鎖定
OpenStack是一個開源的雲計算管理平台項目,是一系列軟件開源項目的組合。由NASA(美國國家航空航天局)和Rackspace合作研發併發起,以Apache許可證(Apache軟件基金會發佈的一個自由軟件許可證)授權。 [1] 
OpenStack為私有云和公有云提供可擴展的彈性的雲計算服務項目目標是提供實施簡單、可大規模擴展、豐富、標準統一的雲計算管理平台。 [1] 
中文名
OpenStack雲計算管理平台
外文名
OpenStack
開發者
NASA,Rackspace
編程語言
Python
遵循標準
Open 、AMQP、SQLAlchemy

OpenStack簡介

Openstack是一個雲平台管理的項目,它不是一個軟件。這個項目由幾個主要的組件組合起來完成一些具體的工作。Openstack是一個旨在為公共及私有云的建設與管理提供軟件的開源項目。它的社區擁有超過130家企業及1350位開發者,這些機構與個人將 Openstack作為基礎設施即服務資源的通用前端。Openstack項目的首要任務是簡化雲的部署過程併為其帶來良好的可擴展性。本文希望通過提供必要的指導信息,幫助大家利用 Openstack前端來設置及管理自己的公共雲或私有云。 [2] 
Openstack是由 Rackspace和NASA共同開發雲計算平台,幫助服務商和企業內部實現類似於 Amazon ec2和S3的雲基礎架構服務( Infrastructure as a Service)。 Openstack包括兩個主要模塊:Nova和 Swift。前者是NASA開發的虛擬服務器部署和業務計算模塊;後者是 Backpack開發的分佈式雲存儲模塊,兩者可以一起用,也可以分開單獨用。 Openstack是開源項目,除了有 Rackspace和NASA的大力支持外,後面還有包括Dell、 Citrix、 Cisco Canonical這些重量級公司的貢獻和支持,發展速度非常快,有取代另一個業界領先開源雲台 Eucalyptus的態勢。 [2] 

OpenStack發展歷程

Openstack項目雖然誕生時間不長,但其發展之迅速,在雲計算領域的影響力擴展,使得這個年輕的項目成為業內所有人都不得不關注的焦點。 [2] 
2010年 Openstack項目成立。該項目由美國國家航空航天局(NASA)和 Rackspace合作研發, Apache許可證開源。目前為止共有以下版本: [2] 
(1) Austin——Openstack發佈的第一個版本,這是第一個開源的雲計算平台。 [2] 
(2) Bexar——Openstack發佈的第二個版本,添加了IPv6的支持、影像傳遞技術,以及Hyper-V和Xen等虛擬服務器功能。 [2] 
(3) Catus——Openstack發佈的第三個版本,添加了虛擬化功能、自動化功能以及一個服務目錄。 [2] 
(4) Diablo——Openstack發佈的第四個版本,增加了新的圖形化用户界面和統一身份識別管理系統 [2] 
(5) Essex——Openstack發佈的第五個版本,完善了 Keystone認證,刪除了對 Windows Hyper-V支持的相關代碼。 [2] 
(6) Folsom——2012年9月 Open Stack發佈的第六版。 Folsom包括了 Nova swift、 Horizon Keystone、 Glance原有的五個子項目之外,又多增 Quantum和 Cinder兩項。 Quantum支持了數個現有的虛擬網絡套件,如 Open vSwitch、Ryu網絡操作系統( Network Operation System,NOS)等,也包括了 Cisco、 Nicira和NEC等廠商提供的虛擬網絡套件等, Quantun可以讓Open Stack的IaS平台能採用軟件定義網絡( Software Defined network,SDN)的技術,如OpenFlow。Cinder則加強了區塊( Block)與磁盤區( Volume)的儲存能力。 [2] 
(7)Grizly——2013年4月Open Stack基金會發布的第七個版本。 Grizzly新增近230個新功能,涉及計算、存儲、網絡和共享服務等方面。例如 Open Stack計算虛擬化-計算使用“Cells”管理分佈式集羣,使用“NoDB”主機架構,以減少對中央數據庫的依賴。 [2] 
(8) Havana——2013年10月 Open Stack基金會發布的第八個版本。 Havana除了增加Open Stack Metering( Ceilometer)和 Open Stack Orchestration(Heat)兩個新組件外,還完成了400多個特性計劃,修補了3000多補丁。 [2] 
(9) Icehouse——2014年4月 Open Stack基金會發布的第九個版本。新版本提高了項目的穩定性與成熟度,提升用户體驗的一致性,特別是針對存儲方面。聯合身份驗證將允許用户通過相同認證信息同時訪問 Open Stack私有云與共有云。新項目 Trove( DB as a service)現在已經成為版本中的組成部分,它允許用户在 Open Stack環境中管理關係數據庫服務。 [2] 
(10)Juno——2014年10月 OpenStack基金會發布的第十個版本。新增包括圍繞 Hadoop和 Spark集羣管理和監控的自動化服務和支持軟件開發大數據分析和大規模應用架構在內的342個功能點,標誌着 Open Stack正向大範圍支持的成熟雲平台快速前進。自 Openstack項目成立以來,超過200個公司加入了該項目,其中包括AT&TAMD、 Cisco、Dell、IBM、 Intel、 Red hat等。目前參與 Openstack項目的開發人員有17000,來自139個國家,這一數字還在不斷增長中。來自諮詢機構 Forrester的分析表示, OpenStack已經逐步成為事實上( de facto)的基礎架構雲(IaaS)標準。 [2] 

OpenStack發展趨勢

儘管 Open Stack從誕生到現在已經變得日漸成熟,基本上已經能夠滿足雲計算用户的大部分的需求。但隨着雲計算技術的發展, Open Stack必然也需要不斷地完善。Open Stack已經逐漸成為市場上主流的一個雲計算平台解決方案。結合業界的一般觀點和調查中關於 Open Stack用户的意見, Open Stack需要完善的部分大體上可以歸納為以下幾個方面: [3] 
(1)增強動態遷移:雖然 Open Stack的Nova組件支持動態遷移,但實質上 Open Stack尚未實現真正意義上的動態遷移。在 Open Stack中因為沒有共存儲只能做塊遷移,共享遷移只能在有共享存儲的情況下才被使用。 [3] 
(2)數據安全:安全問題一直是整個雲計算行業的問題,儘管 Open Stack中存在對用户身份信息的驗證等安全措施,甚至劃分出可以單獨或合併表徵安全信任等級的域,但隨着用户需求的變化和發展,安全問題仍然不可小覷。 [3] 
(3)計費和數據監控:隨着 Open Stack在公有雲平台中的進一步部署,計費和監控成為公有云運營中的一個重要環節。雲平台的管理者和雲計算服務的提供者必然會進一步開發Open Stack的商業價值。儘管 Open Stack中已經有 Ceilometer計量組件,通過它提供的API接口可以實現收集雲計算裏面的基本數據和其他信息,但這項工程目前尚處於完善和測試階段,還需要大量的技術人員予以維護和支持。 [3] 

OpenStack工作流程

Open Stack的各個服務之間通過統一的REST風格的API調用,實現系統的松耦合。它內部組件的工作過程是一個有序的整體。諸如計算資源分配、控制調度、網絡通信等都通過AMQP實現。 Open Stack的上層用户是程序員、一般用户和 Horizon界面等模塊。這三者都是採用 Open Stack各個組件提供的API接口進行交互,而它們之間則是通過AMQP進行互相調用,它們共同利用底層的虛擬資源為上層用户和程序提供雲計算服務 [3] 

OpenStack管理流程

OpenStack既然是一個開源的雲平台項目,它的主要任務是給用户提供IaaS服務。 [3] 

OpenStackQEMU

QEMU是一個純軟件的計算機硬件仿真器。通過單獨運行QEMU來模擬物理計算機,具有非常靈活和可移植的特點,利用它能夠達到使用軟件取代硬件的效果。 [3] 
一般情況下,OpenStack可以部署在UbuntuLinux操作系統上,為了進一步提高QEMU的運行效率,往往會增加一個KVM硬件加速模塊。KVM內嵌在Linux操作系統內核之中,能夠直接參與計算機硬件的調度,這一點是QEMU所不具備的。一般的QEMU程序的執行必然要經過程序從用户態向內核態的轉變,這必然會在一定程度上降低效率。所以QEMU雖然能夠通過轉換對硬件進行訪問,但在OpenStack中往往採用KVM進行輔助,使得OpenStack的性能表現得更為良好。 [3] 
但需要説明的是KVM需要良好的硬件支持,有些硬件本身如果不支持虛擬化的時候,KVM則不能使用。 [3] 

OpenStackLibvirt

Libvirt是一個開源的、支持Linux下虛擬化工具的函數庫。實質上它就是為構建虛擬化管理工具的API函數。Libvirt是為了能夠更方便地管理平台虛擬化技術而設計的開放源代碼應用程序接口,它不僅提供了對虛擬化客户機的管理,也提供了對虛擬化網絡和存儲的管理。 [3] 
最初的 Libvirt是隻針對Xen而設計的一系列管理和調度Xen下的虛擬化資源的API函數,目前高版本的 Libvirt可以支持多種虛擬化方案,包括KVM、QEMU、Xen、 VMwareVirtualBox等在內的平台虛擬化方案,又支持 Openvz、LXC等 Linux容器虛擬化系統,還支持用户態Linux(UML)的虛擬化,它能夠對虛擬化方案中的Hypervisor進行適配,讓底層 Hypervisor對上層用户空間的管理工具可以做到完全透明。 [3] 

OpenStack核心項目

OpenStack覆蓋了網絡、虛擬化、操作系統、服務器等各個方面。它是一個正在開發中的雲計算平台項目,根據成熟及重要程度的不同,被分解成核心項目、孵化項目,以及支持項目和相關項目。每個項目都有自己的委員會和項目技術主管,而且每個項目都不是一成不變的,孵化項目可以根據發展的成熟度和重要性,轉變為核心項目。截止到Icehouse版本,下面列出了10個核心項目(即OpenStack服務)。 [1] 
1、計算(Compute):Nova。一套控制器,用於為單個用户或使用羣組管理虛擬機實例的整個生命週期,根據用户需求來提供虛擬服務。負責虛擬機創建、開機、關機、掛起、暫停、調整、遷移、重啓、銷燬等操作,配置CPU、內存等信息規格。自Austin版本集成到項目中。 [1] 
2、對象存儲(Object Storage):Swift。一套用於在大規模可擴展系統中通過內置冗餘及高容錯機制實現對象存儲的系統,允許進行存儲或者檢索文件。可為Glance提供鏡像存儲,為Cinder提供卷備份服務。自Austin版本集成到項目中。 [1] 
3、鏡像服務(Image Service):Glance。一套虛擬機鏡像查找及檢索系統,支持多種虛擬機鏡像格式(AKI、AMI、ARI、ISO、QCOW2、Raw、VDIVHD、VMDK),有創建上傳鏡像、刪除鏡像、編輯鏡像基本信息的功能。自Bexar版本集成到項目中。 [1] 
4、身份服務(Identity Service):Keystone。為OpenStack其他服務提供身份驗證、服務規則和服務令牌的功能,管理Domains、Projects、Users、Groups、Roles。自Essex版本集成到項目中。 [1] 
5、網絡&地址管理(Network):Neutron。提供雲計算的網絡虛擬化技術,為OpenStack其他服務提供網絡連接服務。為用户提供接口,可以定義Network、SubnetRouter,配置DHCP、DNS、負載均衡、L3服務,網絡支持GRE、VLAN。插件架構支持許多主流的網絡廠家和技術,如OpenvSwitch。自Folsom版本集成到項目中。 [1] 
6、塊存儲 (Block Storage):Cinder。為運行實例提供穩定的數據塊存儲服務,它的插件驅動架構有利於塊設備的創建和管理,如創建卷、刪除卷,在實例上掛載和卸載卷。自Folsom版本集成到項目中。 [1] 
7、UI 界面 (Dashboard):Horizon。OpenStack中各種服務的Web管理門户,用於簡化用户對服務的操作,例如:啓動實例、分配IP地址、配置訪問控制等。自Essex版本集成到項目中。 [1] 
8、測量 (Metering):Ceilometer。像一個漏斗一樣,能把OpenStack內部發生的幾乎所有的事件都收集起來,然後為計費和監控以及其它服務提供數據支撐。自Havana版本集成到項目中。 [1] 
9、部署編排 (Orchestration):Heat。提供了一種通過模板定義的協同部署方式,實現雲基礎設施軟件運行環境(計算、存儲和網絡資源)的自動化部署。自Havana版本集成到項目中。 [1] 
10、數據庫服務(Database Service):Trove。為用户在OpenStack的環境提供可擴展和可靠的關係和非關係數據庫引擎服務。自Icehouse版本集成到項目中。 [1] 
參考資料
  • 1.    許豪主編.雲計算導論:西安電子科技大學出版社,2015.12:第124頁
  • 2.    劉黎明,楊晶主編;王娟,屠曉雲,蔣佔生,張磊,嶽小冰,郭春璐副主編.雲計算應用基礎:西南交通大學出版社,2015.01:第250頁
  • 3.    韓璞主編;陳可副主編;劉黎明主審.技術原理與實戰:西安電子科技大學出版社,2016.04:第22頁