郭欣,張丹玨
基于OpenStack的數字校園體系架構研究
郭欣,張丹玨
當前,云計算技術的廣泛應用已成為不可阻擋的趨勢,隨之而來的開源云計算也迅速崛起。開源云計算以其開源性、低成本等優點吸引越來越多的用戶。對開源云計算OpenStack 的功能和架構進行介紹,并針對高校數字校園存在的問題,從數字校園的實際需求出發,利用先進的 OpenStack 平臺,采用分層設計的方法設計、實現一個可對云資源進行綜合管理的數字校園體系架構。并重點研究該架構中的資源調度,提出了一種基于任務調度和負載均衡的方案,通過實踐,驗證了該調度方案能夠均衡服務器的資源負載,使基于OpenStack的數字校園處于相對穩定的狀態。
開源云計算;OpenStack;數字校園;體系架構
近年來,高校校園信息化發展很快,國內很多高校都擁有千兆主干帶寬,甚至萬兆主干校園網的硬件環境;各種管理信息系統已在各個高校廣泛應用,并逐步成為支撐學校日常工作必不可少的條件。然而,隨著應用的不斷深入,早期不夠合理、全面的規劃和建設帶來的各種問題逐步顯現,并成為了進一步發展的瓶頸,例如:設備單獨購置,基礎設施重復建設;管理信息系統間相互隔離,系統架構各自為政;軟件系統升級困難,應用難以有效集成;信息孤島林立,服務的擴展性和交互性差等。
云計算作為分布式處理、并行處理和網格計算的發展,把存儲于個人電腦、移動電話和其他設備上的大量信息和處理器、存儲器等各種硬件資源集中在一起,合理調配、協同工作,將信息技術能力以服務的形式提供給終端用戶[1]。采用云計算集中管理、統一分配資源的方式,可以有效解決上述高校信息化建設中存在的問題。開源云計算技術作為云計算領域的新生力量,以其獨特的開源、低成本等優點日益受到關注。研究開源云計算技術,構建基于開源云計算技術的數字校園,對促進校園信息化發展,具有重要價值。
1.1 開源云計算簡介
目前比較流行的開源云計算管理平臺有Eucalyptus、OpenNebula、OpenStack、Enomaly、CloudStack 等。后起新秀OpenStack基于“完全開源”理念,以全開源的方式為用戶提供云計算功能,已逐漸占據主導地位。與商業云相比,開源云在許多方面具有得天獨厚的優勢。例如:免費不受專有軟件版權模式的影響,在預算短缺的時候是現成的工具;開放源代碼,為研究者提供了一個與商業云不同的開放的研究和試驗平臺;產品眾多,可以根據本單位實際情況進行選擇部署;一般都與相應商業云接口兼容,為平臺的發展和功能拓展提供了良好的基礎[2]。因此,對于大部分資金有限、希望快速部署云計算環境進行應用實驗的高校而言,選擇開源云計算產品進行自主開發是更為實際的選擇。
1.2 OpenStack介紹
OpenStack是RackSpace和美國國家航空航天局(NASA)共同開發的一個開源云計算項目,基于Apache2.0開源模式[3]。它旨在提供一個方便部署云的操作平臺,目前已經有150多個公司參與OpenStack項目,將其作為基礎設施即服務(IaaS)的通用前端。
OpenStack架構包括6個主組件:計算(Compute)、存儲(Storage)、網絡(Networking)、共享服務(Shared Services)、儀表板(Dashboard)和高級服務(Higher-level services)。這6個部分既可以組合在一起聯合工作,提供完整的云基礎架構服務;又可以獨立工作,分別提供虛擬化、云存儲和鏡像等服務。
(1)計算模塊(開發代號Nova),負責在OpenStack環境中管理虛擬機的整個生命周期:添加、調度和回收虛擬機。它是云平臺的中心控制器,提供一個工具來部署云。
(2)存儲模塊,分為對象存儲(Object Storage)和塊存儲(Block Storage)。對象存儲(開發代號Swift)通過RESTful(基于HTTP的API)存儲和檢索任意的非結構化數據對象,主要負責大規模數據對象管理。塊存儲(開發代號Cinder)為運行實例提供持久的存儲塊,它的可插拔驅動架構有利于創建和管理塊存儲設備。
(3)網絡模塊(開發代號Neutron),為其他OpenStack服務(如Nova)提供網絡連接服務,并為用戶定義和接入網絡提供API。其可插拔的體系結構,支持許多流行的網絡供應商和技術。
(4)儀表板( 開發代號 Horizon) ,為用戶和OpenStack底層服務(如啟動實例、分配IP地址和配置訪問控制等)進行交互提供基于Web的自助服務門戶。
(5)共享服務,提供身份服務( Identity Service) 、鏡像服務( Image Service)和測量(Telemetry)。身份服務(開發代號Keystone)為其他OpenStack服務提供身份驗證和授權。鏡像服務(開發代號Glance)存儲和檢索虛擬機磁盤鏡像,Nova利用該服務進行實例配置。測量(開發代號Ceilometer)監控和計量OpenStack的收費、標桿管理、可擴展性和統計。
(6)高級服務,OpenStack最新推出了編配服務(開發代號Heat),是一個以模板為驅動的服務,用于針對各種應用描述和自動部署計算、存儲和網絡資源,如圖1所示:

圖1 OpenStack概念架構圖[4]
OpenStack擁有開源的特質,并具有良好的控制性、兼容性、可擴展性與靈活性,因此我們選用OpenStack作為數字校園架構開發的平臺工具。基于OpenStack的數字校園架構分為5層,由下至上依次為:硬件設施層、虛擬資源層、管理中間件層、應用服務層和用戶訪問層,下層均為上層提供支撐,其架構靈活、方便擴展,交付了一組豐富的數字校園功能和服務,充分發揮了云計算的優勢,如圖2所示:

圖2 基于OpenStack的數字校園架構
2.1 硬件設施層
硬件設施層為數字校園建設打下基礎,為數字校園的正常運行提供必要的設備級支持。主要包括存儲設備、網絡設備、計算設備等硬件,以及基于硬件的全虛擬化解決方案、系統軟件等基礎設施。
2.2 虛擬資源層
虛擬資源層主要基于OpenStack的Horizon、Keystone、Neutron、Nova、Glance、Swift等組件進行開發,通過虛擬化技術整合異構平臺的硬件資源,實現對計算設備、存儲設備和網絡的虛擬化,在該層形成一個龐大的、有效、統一、可管理的虛擬資源池。OpenStack的各個組件既可以組合在一起聯合工作,又可以獨立工作,為了提高性能、減輕大量用戶并發訪問的壓力,該層在設計時將Keystone、Glance、Swift、Horizon部署在不同的服務器中,分別提供認證服務、鏡像管理、云存儲和Web等服務。計算節點由支持 VT 技術的20臺物理機組成,主要用于運行虛擬化實例,提供計算服務。控制節點部署在一臺高性能的服務器上,對計算節點、網絡節點和其他組件進行管理。網絡節點提供路由、NAT、DHCP、網絡插件代理以及虛擬機網絡連接等網絡服務。該層的各個組成部分均位于同一局域網內,這樣,局域網內任何一臺終端均可以直接訪問或使用該層提供的資源。另外,為了使虛擬資源層更安全,我們使用Nova 提供的虛擬化實例和外網隔離的網絡方案,為虛擬化實例組建一個與外網隔離的私有網絡,虛擬化實例通過內網交換機來通信。實例和外網通信時,再分配一個浮動的外網IP 地址給實例[5]。虛擬資源層的架構如圖3所示:

圖3 虛擬資源層架構
2.3 管理中間件層
管理中間件層對虛擬資源層所提供的資源進行監控、調度等管理,該層由xCAT集群管理、開發服務、作業管理和資源管理組成。xCAT是一個可擴展的高級集群管理和配置工具,允許使用者通過一個單點控制和管理一個集群系統[6]。xCAT對虛擬資源層進行監控管理、電源管理和硬件管理。開發服務通過部署各種特定的服務、解決方案堆棧或數據庫,為Glance提供各種開發環境。作業管理類似于Hadoop的任務管理,服務端為每個提交作業的用戶建立一個文件夾,存放該用戶的作業和相關文件,當需要執行作業的時候,作業從服務端上傳至分布式文件系統,并分發到虛擬資源層的資源節點,資源節點接收到作業后自動部署和配置完成處理,處理完畢后將結果以文件的形式返回給服務節點,并存儲在用戶的文件夾中,用戶可以下載查看,作業執行期間服務端也提供同步結果查看[7]。資源管理負責調度整個數字校園的資源并實現負載均衡,當中間件層的服務節點收到資源請求后,根據其監測到的虛擬資源層的資源使用情況判斷是否提供相應的資源,當虛擬資源層有足夠的資源可以提供時,就返回給用戶定制成功的信息,否則返回失敗信息,資源分配情況可以在資源列表中查看。
2.4 應用服務層
應用服務層由基礎支持平臺和部門業務系統組成。基礎支持平臺由公共數據平臺、數據交換平臺、統一身份認證平臺、服務整合平臺等組成,是為各業務系統提供支撐的技術平臺,它從信息展現、安全管理、信息資源管理、信息資源共享、業務協同等方面出發,通過構建各種基礎性的技術平臺,使各業務系統開發能夠遵循統一的技術規范和標準,同時也支持各個業務系統的建設,從而形成數字校園的應用支撐體系[8]。部門業務系統是直接支持學校各項工作的各種應用系統,覆蓋了學校的教學、科研、管理、服務等各個領域,這些業務系統構成了“數字校園應用體系”。業務系統是由業務需求驅動的,它會隨著學校管理和服務模式的變化而變化。
2.5 用戶訪問層
用戶訪問層為用戶訪問數字校園提供統一的門戶。該層利用成熟的門戶技術,使各應用系統能在前臺形成一體,實現單點登陸和個性化服務,為全校師生提供統一的信息發布和服務。用戶訪問層是訪問校園信息的唯一入口,它是學校信息資源的綜合展現。
3.1 硬件設施層建設
硬件設施層的建設包括綜合布線系統、園區骨干匯聚接入及無線網絡系統、綜合管網弱電系統、服務器主機、存儲、安全系統等構成數字校園的數據匯聚、運行支撐環境的建設。該層的建設工作很多高校已經完成,或者基本完成,為數字校園后續建設奠定了基礎。
3.2 虛擬資源層建設
虛擬資源層的建設主要通過部署OpenStack各個組件來實現。首先是系統安裝,考慮到數字校園的穩定性、后續管理等問題,本文采用 OpenStack源碼安裝,操作系統使用6.5版Centos,OpenStack的版本為Havana,然后具體部署Keystone、Glance、Nova、Swift、Cinder、Neutron和Horizon。Keystone部署的步驟:源碼安裝身份服務,定義用戶、租戶和角色,定義服務和API終端,驗證安裝;Glance部署的步驟:源碼安裝鏡像服務,創建并同步鏡像服務數據庫,驗證鏡像服務安裝;Nova部署的步驟:源碼安裝控制器計算服務,配置計算節點,開通網絡,啟動實例;Swift部署的步驟:源碼安裝Swift,安裝和配置存儲節點,安裝和配置代理節點,啟動存儲節點的服務,驗證安裝;Cinder部署的步驟:配置塊存儲服務控制器,配置塊存儲服務節點;Neutron部署的步驟:根據拓撲結構在網絡節點上安裝網絡服務,在計算節點、控制節點上安裝網絡支持,創建基礎網絡;Horizon部署的步驟:源碼安裝Horizon,為Horizon建立會話存儲。
3.3 管理中間件層建設
管理中間件層部署在虛擬資源層之上并向上層提供服務,包括部署xCAT、開發服務、作業管理和資源管理。xCAT部署的關鍵步驟:網絡配置,安裝管理節點,安裝xCAT軟件包,定義并安裝集群,配置服務與所有節點。開發服務的部署實質上就是創建各種軟件開發的環境并開啟相關服務,例如:Apache、MySql、 .NET、Hadoop、PHP和JAVA等,然后作為一個整體以服務的形式發布出去。作業管理和資源管理功能是通過中間件技術,利用虛擬資源層中OpenStack所提供的API進行開發實現。
3.4 應用服務層建設
應用服務層的建設由建設公共數據平臺、數據交換平臺、統一身份認證平臺等基礎支持平臺和教務管理系統、學工管理系統、人事管理系統、科研管理系統、資產管理系統、財務管理系統等部門業務系統組成。公共數據平臺建設主要包括:構建數據集成平臺,建立和完善運行機制。數據交換平臺建設主要包括:為各應用系統之間建立統一的數據交換通道,為公共數據平臺建設可靠的數據采集通道,建立學校統一的數據交換技術規范和標準。統一身份認證平臺建設主要包括:用戶身份數據統一管理、統一認證,單點登錄,安全審計。各個部門業務系統的建設過程類似,具體為:首先根據部門的業務需求設計功能點;然后逐一進行開發實現;再進行試用、修改。
3.5 用戶訪問層建設
用戶訪問層位于各層之上,是數字校園的入口,以瀏覽器的方式向用戶展現數字校園的應用信息,該層的建設內容包括:標準門戶服務器、內容集成工具、運行管理工具、接口擴展和用戶自定義工具等。
在數字校園中,隨著業務系統的數量增多,對虛擬資源層的資源調度提出了挑戰,靜態的資源分配往往會使虛擬機產生資源浪費或資源不足的情況,而人工的動態資源調整會有明顯的滯后性,因此,需要進行智能的動態資源調度。考慮到此,我們設計了基于OpenStack的數字校園動態資源調度方案,該方案分成兩步完成資源調度:
第一步:讓當前無法處理的任務請求進行排隊,然后選擇合適的任務進行操作。當等待隊列未滿,即等待分配資源的任務總數小于隊列所容納的最大值時,考慮任務在隊列中積壓時間與其將消耗資源的乘積,選出乘積最大的任務為其分配資源,以減少資源消耗量大、等待時間長的任務積壓,避免造成等待隊列后續滿負荷時請求丟失率的增加;當等待隊列中待分配的任務即將達到極限時,則優先選擇消耗資源較少的任務進行資源分配處理,從而提高任務處理速度和分配效率,減小等待隊列長度[9]。
具體地,通過式(1)計算總的任務請求數Q(t),Qn(t)為t時間單元內n類任務的請求數目,Cn(t)為新到達的任務請求數,Fn(t)為已經完成的任務請求數。判斷式(2)是否成立(QLmax為等待隊列最大長度,Ani(t-1)為t-1時間單元內積壓的待處理的n類任務),成立則根據式(3)選取隊列中積壓時間Tv與其將消耗資源Rallo的乘積Pv最大的任務進行操作;否則選取待分配任務中所需消耗資源Rallo最小的任務進行操作,如公式(1)、(2)、(3):

第二步:使用蟻群優化算法選擇合適的資源節點分配任務,優化資源配置,從而避免個別節點不堪重負,而其他節點資源閑置的狀況,實現負載均衡。具體過程為:待處理的任務通過訪問信息素,尋找信息素量大的資源節點。每次任務尋找到的都是負載較低的節點,該節點會因為獲得新的任務而負載上升,信息素下降。而高負載節點由于較少獲得任務,先前任務結束負載下降,信息素上升。這樣在多次調度后,低負載的節點負載會變高,而高負載節點的負載會變低,實現負載均衡[10]。信息素更新的公式為公式(4):

tij(t=1)為t+1時刻任務從節點i調度到j所經歷的路徑上的信息素濃度為初始時刻各條路徑上的信息素濃度,為參數,其值一般取0.1,為資源節點的負載比率。
為了驗證方案的可行性與效果,本文將該方案以Python語言加以實現,并整合到數字校園五層架構的管理中間件層中,作為資源管理的重要組成部分。通過監測數字校園的運行情況,從任務請求積壓量、系統達到穩定狀態時CPU、內存、硬盤的負載狀況,可以看出,該方案同時解決了任務積壓和資源負載問題,實現了有效的資源調度。
本文在分析開源云計算OpenStack 的功能和架構的基礎上,從數字校園的實際需求出發,利用OpenStack 平臺,采用分層設計的方法設計了一個可對云資源進行綜合管理的數字校園體系架構,并進行了實現。然后,針對影響數字校園運行效果的重要因素——資源調度,提出了一種基于任務調度和負載均衡的方案,該調度方案在保證服務性能和執行效率的基礎上,能夠均衡服務器的資源負載,使基于OpenStack的數字校園處于相對穩定的狀態。文中基于OpenStack的數字校園的設計、實現方法與資源調度方案具有一般意義,但如何結合各個院校數字校園建設的現狀和具體需求進行應用,仍需要作進一步的探討和深入的研究。
[1] 覃正,季成,徐興鋒,等.云計算、物聯網背景下服務外包產業的發展政策研究[J].國際貿易,2011(7):62.
[2] 秦潤鋒,樊勇兵,唐宏,等.開源云計算管理平臺技術在電信運營商私有云建設中的應用研究[J].電信科學, 2011(10):25.
[3] 李英壯,汪楠,李先毅.基于OpenStack開發云平臺的設計與實現[J].武漢大學學報(理學版),2012(10):58.
[4] Kevin Jackson.OpenStack CloudComputing Cookbook[EB/OL].[2013-01-12].http://www.chinacloud.cn/sh ow.aspx?id=11936&cid=22
[5] 李小寧,李磊,金連文,等.基于OpenStack 構建私有云計算平臺[J].電信科學, 2012(9):2.
[6] xCAT[EB/OL].[2012-10-22].http://xcat.source-forge.net.
[7] 高貴升.基于OpenStack 的計算云的研究與實現.[D].成都:成都理工大學,2012-5.
[8] 中職學校信息化建設內涵與建設模式探討[EB/OL].[2012-05-15].http://www.21cnlunwen.com/gllw /1205/1337087505.html.
[9] MAGULURI S T,SRIKANT R,YING L.Stochastic models of loadbalancing and scheduling in cloud computing clusters [C]// INFO-COM 2012: Proceedings of the 2012 IEEE International Conferenceon Computer Communications.Piscataway: IEEE,2012:702-710.
[10] 文曉棠.云計算環境下基于蟻群粒子群優化算法的資源調度策略研究.[D].南昌:江西師范大學,2013-6.
A Study on Digital Campus Architecture Based on OpenStack
Guo Xin, Zhang Danjue
(Informatization office, Sanda University, Shanghai201209, China)
At present, the extensive use of cloud computing technologies have become an irresistible trend, alongside with the rapid rise of open source cloud computing. Open source cloud computing is attracting more and more users due to its low cost and open source. This paper explains the function and architecture of OpenStack. Based on the current problems and the actual demands of digital campus and followed by utilizing the advanced OpenStack platform, the paper adopted hierarchical design method to achieve the architecture of digital campus that could be used to perform integrated management on cloud resources.It focused on resource scheduling in this framework and proposed a scheme that based on task scheduling and load balancing.The experiment of the scheme verifies that the scheduling strategy can balance server's resource load, so as to make the digital campus based on OpenStack relatively stable.
Open Source Cloud Computing; OpenStack; Digital Campus; System Architecture
TP311
A
1007-757X(2014)10-0049-04
2014.08.24)
上海高等教育學會研究課題 (ZCGJ68-13)
郭 欣(1982-),女,上海杉達學院,信息化辦公室,講師,碩士,研究方向:云計算、計算機應用,上海,201209張丹玨(1979-),女,上海,上海杉達學院,信息化辦公室,講師,碩士,研究方向:計算機應用,上海,201209