武佳寧
基于OpenStack的云平臺虛擬集群部署設計
武佳寧
OpenStack憑借靈活高效的資源調度、彈性安全的資源整合管理和完全開源的公共項目迅速崛起。通過對OpenStack核心系統框架描繪和核心項目組件逐一分析,提出了可應用于企業級的OpenStack的云平臺虛擬集群架構設計方案,并對該方案的云計算層和云存儲層進行了剖析。
云計算;OpenStack;集群部署
OpenStack是由美國國家航空航天局(NASA)和Rackspace合作開發,由Apache授權的開源云計算。截止到2015年10月15日,OpenStack-Liberty版本正式下線,至此OpenStack共發布了12個版本。OpenStack的主版本以字母表順序排列,用年份加當年排序生成版本號,第一版版本號為Austin(2010.1)。OpenStack是IaaS組件,是為云計算基礎架構提供開放式的可擴展的操作環境,用戶可以自由的使用云服務并且建立自己的私有云,用來供企業事業單位的內部資源共享[1,2]。OpenStack通過子項目對云計算平臺的計算、網絡、存儲等資源進行管理,也提供虛擬化技術的技術支持[3]。通過這些年的演變OpenStack已經得到主流數據中心的廣泛支持,目前它已經成為企事業單位部署云計算服務的集成引擎[4,5]。
1.1OpenStack核心系統框架
OpenStack是Iaas交付型模型,代碼完全開放,為企業提供了靈活可行的架構解決方案,為程序技術人員提供出色的開源框架及高擴展的API[6,7]。OpenStack采用模塊化設計,在一個系統的體系下生成了十多個不同的核心開發項目,還有孵化項目、支持項目和相關項目,他們是由項目組建的相關程度和成熟程度來分解的。各個核心項目可以根據用戶的選擇挑選使用,也可以通過組件之間的合作運行來實現各種功能。
OpenStack的8個主要核心項目組件系統框架如圖1所示:

圖1 OpenStack核心系統框架圖
Heat提供的是可預先定義的云部署服務。用戶通過Horizon就是UI門戶組件在web界面訪問OpenStack,通過該門戶調用其他的核心項目組件為自己服務。所有項目組件都需要通過keystone身份驗證授權服務,通過驗證后得以調用Nova計算組件。Nova組件把相關信息存儲在對象存儲(Swift)和塊存儲(Cinder)中,并得到檢索服務。網絡管理(Neutron)為Nova提供虛擬網絡管理,鏡像(Glance)提供虛擬鏡像管理,它也可以存儲在Swift中。
1.2OpenStack核心項目組件
OpenStack的核心項目組件可以聯合在一起為用戶提供完整的云架構服務,也可以分開獨立工作,為用戶提供云存儲、虛擬化服務、鏡像或者操作系統服務。下面我們分析一下OpenStack最基本的5個核心項目組件。
1.21Nova——計算(Compute)
Nova是OpenStack核心項目組件中最重要的計算服務,其復雜度也是最高的。作為一套控制器,它為虛擬主機提供了開關機、創建調度、遷移調整等服務,可以根據不同的用戶(單獨或集群)的需求控制虛擬主機來配置CPU、內存等設備,在多個實例的特定項目中還能設置網絡。Nova組件通過管理hypervisor來管理虛擬主機,它可以為用戶提供預先設置好的鏡像,或者存儲用戶自行創建的鏡像,這樣用戶就可以把鏡像以虛擬機的形式啟動。其中Nova-API模塊接收來自外部的數據訪問;Nova-Compute模塊管理來自虛擬機的各項指令和具體實施;Nova-Scheduler模塊則進行算法調度。到Kilo版本,開始通過stackforge模塊提供對外的管控、EC2兼容等接口,取代了以前版本中的EC2 API模塊轉換服務。虛擬主機的調度調整和邏輯判斷是通過scheduler模塊完成的,模塊與模塊之間的通信是由消息隊列傳遞的,到Kilo版本進一步標準化了scheduler的接口并做了優化。
1.22Swift——對象存儲(Object Storage)
Swift自Austin版本就已經集成在OpenStack核心項目組件中,與Nova項目組件服務組成了最早的OpenStack服務平臺。所以在OpenStack服務平臺中所有的數據都被定義為一個對象,Swift則是用于可擴展并且支持多租戶的分布式對象存儲系統中,它通過高級容錯和內置冗余機制來操作對象文件實現對象存儲服務,可用于媒體存儲、文檔鏡像文件備份等,并支持文件檢索和文件存儲。Swift-Proxy是Swift的一個模塊,它對外提供存取接口,當一個對象經過Swift-Proxy接口及接入后,通過account、object、container模塊來定位對象,所以在OpenStack服務平臺中對象被描述為(account,object,container)。
1.23Glance——鏡像服務(Image Service)
Glance為OpenStack解決管理虛擬鏡像問題,能夠為虛主機提供鏡像上傳、驗證、刪除、存儲等功能,在Bexar版本中正式發布。Glance的主要接口是鏡像注冊和鏡像指派,比如把一個新生成的鏡像注冊到數據庫中,或者在實例化虛擬鏡像時指派它到某實體機上用以啟動虛擬主機。其中Glance-API模塊接收外部數據;Glance-Registry模塊保存鏡像文件的元數據并且負責檢索處理元數據;Glance-Adapter模塊處理匹配存儲類型。到Kilo版本,Glance做了一些優化,新版本里Glance可以使用多個Swift來存儲鏡像,這樣在大數據部署的情況下大大減少了大規模請求時造成的存儲瓶頸;增加了配置文件更新免重啟設置、多字段排序功能和鏡像自動格式轉化等實用的新改進。
1.24Keystone——身份服務(Identity Service)
Keystone在Essex版開始正式從Nova和Glance中剝離,是OpenStack核心項目組件中提供身份驗證服務的,提供登錄認證、用戶管理、服務規則和訪問控制等服務的組件。OpenStack的所有項目組件都需要Keystone提供服務,包括Account服務、Authentication服務和Authorization服務,這3種重要的服務被稱為3A服務。在部署OpenStack時要先部署Keystone,并把Nova、Swift、Glance、Neutron、Horizo等服務在Keystone中提前注冊,才能使其他服務被授權并允許使用。Keystone還為OpenStack提供了無需身份在線確認就可以離線獲取身份PKI令牌的功能,還支持多用戶身份管理并支持角色接入控制和群組管理控制,給予了管理員較大的權利。
1.25Neutron——網絡&地址管理(Network)
Neutron前身Quantum項目,Quantum是在Folsom版發布的,到Havana版中正式變更為Neutron,為OpenStack提供靈活的物理網絡服務,是云計算環境下的虛擬網絡功能組件。Neutron是基于可插拔式插件的架構,其核心插件Neutron-core plugin是核心插件,它提供邏輯API和功能實現之間的連接,當網絡連接請求發出后,Neutron中的插件就會對網絡的連接各個方面進行分析處理,它虛擬化了IP地址、子網、網絡中間設備,利用基于插件的架構完成網絡連接。到Kilo版本,Neutron解耦核心插件以及分離高級服務,并在IPv6功能方面有很多優化,比如支持一個網絡分配多個IPv6前綴;增強了IPv6 路由的技術支持;可以為DHCPv4和DHCPv6設置額外的DHCP選項。
OpenStack云平臺虛擬集群分為兩層:一層是云計算,一層是云存儲。云計算層負責部署高復雜度任務,虛擬服務器管理,鏡像管理,調度作業、資源配置策略等。該層相當高級管理和指揮層,它操作這個環境,通過組件與用戶交互,為用戶提供UI界面,為開發者提供API端口,通過API訪問云管理,還要有身份驗證系統和監控系統。根據一些企業數據中心和網絡信息中心網絡拓撲的特點,部署Openstack云平臺虛擬集群,當前的架構中為用戶提供了虛擬的服務以及強大的計算能力,該架構在多服務器的基礎上并行計算及存儲能力,高效利用各節點的信息處理能力,節約了響應時間及硬件成本。利用OpenStack服務部署的云平臺虛擬集群架構設計,如圖2所示:

圖2 基于OpenStack的云平臺虛擬集群架構設計圖
3.1構建OpenStack虛擬化集群系統架構
云計算層通過虛擬化技術架構整合的硬件資源,通過OpenStack的幾大核心項目組件的功能設計開發,對服務器、存儲設備以及網絡整合形成高效、統一、規模龐大的虛擬資源管理層。OpenStack的核心項目組件既可以獨立工作,也可以合作部署,對于核心組件Nova部署在性能強勁的服務器中,對于Keystone、Glance、Swift分別部署但可以對服務器的要求降低,核心的項目分布式部署在多個服務器中,組成的集群架構實現了云計算的高性能及較強的處理并發事件的能力。如圖2,Nova核心組件部署在高性能的服務器上,對各個組建服務器和交換機進行監控管理,各個網絡設備處于局域網中,使得虛擬數據訪問更加快捷安全,這樣虛擬化云計算服務層只有通過交換機與外網的通信,即在一個與外網不直接接觸的狀態。
3.2構建OpenStack云平臺存儲系統架構
云平臺的計算信息、網絡信息、鏡像數據等資源都需要資源層提供存儲服務,OpenStack的云存儲可以構建大規模大容量的存儲系統,它還包括虛擬鏡像存儲,對虛擬機的鏡像文件進行存儲、檢索和查詢。在企業級云平臺部署中資金一般投入不能過高,因此在集群架構的設計中,加入了對象存儲技術,這種方式通過服務器的疊加和良好的可擴展性,給了企業一個可以自主控制成本的優化方式。如圖2,云平臺虛擬集群的存儲需要存儲服務器若干,可以根據具體需求增加擴展存儲節點,通過網絡交換機連接各存儲節點,并需要身份認證交換機控制訪問,代理服務器控制負載保證負載均衡,這些基本元素構架了存儲系統。該云存儲可擴展支持多應用,支持文檔、數據、視頻存儲等靜態數據存儲和開發數據存儲,無限擴展所以容量無限,提供了彈性的云存儲。
3.3構建OpenStack云系統橫向擴展
構建成功了OpenStack云系統,新資源源源不斷的添加到服務器,就會有擴展的需求,OpenStack支持橫向擴展,用戶可以在已有的OpenStack云系統中直接添加新的服務器,在升級擴展的過程中可以做到不影響系統運行、不間斷系統服務。
3.3.1OpenStack云系統擴展規劃
規劃云系統的系統擴展性,需要平衡許多配置變量,可能很難達到完美配置方案,在實際運維中通過監控系統指標可以對系統的規劃提供許多指標從而進一步優化系統。一般從云系統的核心數量出發,通過如下公式:
可運行虛擬機估算數量=物理核數× 重用因子/ 每實例所需虛擬核數
系統需求的存儲估算容量=磁盤空間容量×可運行虛擬機估算實例數量
通過公式計算出估算虛擬機數量和存儲容量就可以規劃出在云系統中需要添加多少資源。OpenStack的系統默認值如表1所示:

表1 OpenStack的系統默認值
舉一個實例是m1.medium類型的例子:假設每個虛擬機需要2個虛擬核,50GB存儲空間,物理核數200個,CPU重用因子為16倍。那么按照公式,硬件環境可以支持的虛擬機實例為16×200/2=1600個, 需要存儲空間為1600× 50≈80TB。
估算了需要擴展的虛擬機數量和存儲空間,還要考慮用戶使用虛擬機的性能問題,不光考慮硬件本身的技術指標還要考慮性能需求和預算的問題,性能方面包括CPU總性能以及核數,存儲性能、內存空間、網絡帶寬等因素。
3.3.2OpenStack控制器節點的擴展
OpenStack控制器節點的擴展比較方便,可以通過添加更多節點來橫向擴展云系統,如果我們準備擴展的云系統沒有更高運行要求就可以按照和以前系統的配置進行擴展。如果我們遇到的是擴展運行要求更高一層的云系統,那需要從注意以下幾點配置擴展:用戶訪問量需要擴展增強,可以采用負載均衡的方式,把訪問請求分攤到各個服務器中,只要是標準的HTTP負載均衡方式都能夠完成分攤工作,也有些可以通過MySQL進行負載均衡;多進程問題,可以通過修改配置文件中的標示,讓多進程在幾個CPU硬件上分攤進程,分配計算任務;對于運維多個服務問題,可以直接通過消息隊列通訊的服務把它們安裝到其他服務器中完成。
3.3.3硬件擴展
云系統雖然靈活多變, 但是要求底層服務器的硬件穩定并且要求配置匹配,要求服務器至少CPU類型相同,從而支持實例遷移。OpenStack的硬件采購支持商品硬件,就是市場上提供的各種標配服務器,如果橫向擴展預算不足也支持現有服務器升級改造。硬件改造完成后就著手規劃系統容量,首先考慮云控制器的容量,一般在允許的情況下應給計算和存儲多預留容量,Nova-scheduler需根據內存信息和CPU核數進行資源管理和調配。如果遇到CPU不同的情況,則要根據CPU性能重新計算每個節點需要的存儲容量。在規劃中還要注意安裝監控系統,以便隨時了解資源的使用情況以及用戶增長情況,以便適時的考慮購置新硬件。最后,為了避免服務器高負荷運轉造成的設備故障頻發,可以在擴展初期就進行高負荷測試用來測試硬件的應對能力,一般是通過不間斷的連續運行CPU和磁盤的性能測試軟件3-7天,讓硬件的負荷達到極限。
通過開源OpenStack云計算平臺和虛擬化技術的開發,本文提供了一種基于OpenStack的云平臺虛擬集群部署設計。該云平臺虛擬集群充分利用了OpenStack的眾多能夠提供獨立服務的核心項目組件,以及云平臺虛擬化的技術優勢,完成了平臺構建。利用OpenStack的Glance服務靈活的部署虛擬環境和各個服務器所需要的虛擬資源,不僅提高了資源利用率,還大大降低了成本。下一步還將進一步研究該集群的其他系統功能效率,以便不斷提高其使用性能并完善負載均衡等問題。
[1] 朱近之.智慧的云計算[M].北京:北京電子工業出版社,2010.
[2] 雷萬云.云計算技術、平臺及應用案例[Ml.北京.清華大學出版社,2011.
[3] 耿向東. 走下云端,讓云計算落地開花 [J]. 中國新通信,2012,03.
[4] 鄧倩妮,陳全.云計算及其關鍵技術 [J].計算機應用,2009,29
[5] 懷進鵬,李沁,胡春明.基于虛擬機的虛擬計算環境研究與設計[J].軟件學報,2007,18
[6] 盛憲鋒,及俊川,周小軍.基于虛擬化技術的私有云APCS平臺設計[J].計算機工程,2011,08
[7] 曾龍海,張博鋒,張麗華.基于云計算平臺的虛擬集群構建技術研究[J].微電子學與計算機,2010,27
Design of Virtual Cluster Deployment on Cloud Platform Based on OpenStack
Wu Jianing
(Shaanxi Xueqian Normal University, Xi,an 710100,China)
OpenStack is rapid raising by its flexible efficient resource scheduling, flexible security resource integration management and fully open source public projects. By the description of OpenStack core system framework and the detail analysis of its core project components,this paper proposes a design scheme of virtual cluster deployment on the cloud platform which can be applied to enterprise level OpenStack, and analyzes the cloud computing layer and cloud storage layer.
Cloud Computing; OpenStack; Clustered Deploy
TP311
A
1007-757X(2016)06-0015-03
2016.02.15)
陜西省教育科學規劃課題(SGH13377);陜西學前師范學院教學改革項目(15JG022Q)
武佳寧(1981-),女,西安人,陜西學前師范學院工程師,研究方向:網絡技術、實驗室管理,西安,710100