-
OpenStack
鎖定
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發展歷程
(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&T、AMD、 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管理流程
OpenStackQEMU
一般情況下,OpenStack可以部署在Ubuntu的Linux操作系統上,為了進一步提高QEMU的運行效率,往往會增加一個KVM硬件加速模塊。KVM內嵌在Linux操作系統內核之中,能夠直接參與計算機硬件的調度,這一點是QEMU所不具備的。一般的QEMU程序的執行必然要經過程序從用户態向內核態的轉變,這必然會在一定程度上降低效率。所以QEMU雖然能夠通過轉換對硬件進行訪問,但在OpenStack中往往採用KVM進行輔助,使得OpenStack的性能表現得更為良好。
[3]
OpenStackLibvirt
Libvirt是一個開源的、支持Linux下虛擬化工具的函數庫。實質上它就是為構建虛擬化管理工具的API函數。Libvirt是為了能夠更方便地管理平台虛擬化技術而設計的開放源代碼的應用程序接口,它不僅提供了對虛擬化客户機的管理,也提供了對虛擬化網絡和存儲的管理。
[3]
最初的 Libvirt是隻針對Xen而設計的一系列管理和調度Xen下的虛擬化資源的API函數,目前高版本的 Libvirt可以支持多種虛擬化方案,包括KVM、QEMU、Xen、 VMware、 VirtualBox等在內的平台虛擬化方案,又支持 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、VDI、VHD、VMDK),有創建上傳鏡像、刪除鏡像、編輯鏡像基本信息的功能。自Bexar版本集成到項目中。
[1]
4、身份服務(Identity Service):Keystone。為OpenStack其他服務提供身份驗證、服務規則和服務令牌的功能,管理Domains、Projects、Users、Groups、Roles。自Essex版本集成到項目中。
[1]
5、網絡&地址管理(Network):Neutron。提供雲計算的網絡虛擬化技術,為OpenStack其他服務提供網絡連接服務。為用户提供接口,可以定義Network、Subnet、Router,配置DHCP、DNS、負載均衡、L3服務,網絡支持GRE、VLAN。插件架構支持許多主流的網絡廠家和技術,如OpenvSwitch。自Folsom版本集成到項目中。
[1]
6、塊存儲 (Block Storage):Cinder。為運行實例提供穩定的數據塊存儲服務,它的插件驅動架構有利於塊設備的創建和管理,如創建卷、刪除卷,在實例上掛載和卸載卷。自Folsom版本集成到項目中。
[1]
7、UI 界面 (Dashboard):Horizon。OpenStack中各種服務的Web管理門户,用於簡化用户對服務的操作,例如:啓動實例、分配IP地址、配置訪問控制等。自Essex版本集成到項目中。
[1]