李 磊,高 巖,呂念玲,鄧洪波,王 云,秦慧平,梁志明
(1.華南理工大學 電子與信息學院,廣州 510641;2.工業和信息化部電子第五研究所 軟件質量工程研究中心,廣州 510610)
近些年,隨著云計算在教育中的應用和普及,很多高校都構建了面向教學和科研的云計算平臺,降低了投資和運營成本,簡化了應用程序的部署和管理,提高了應用程序和基礎設施的靈活性,優化了教學和科研的資源環境[1-3]。然而,面對不同類型的服務和計算資源的需求,如何能充分發揮云計算基礎設施即服務(IaaS)在實驗開發環境方面的快速部署、平臺即服務(PaaS)在計算實驗環境的快速擴展和實現軟件即服務(SaaS)在教學資源共享平臺彈性構建的優點,從而能進一步提高資源環境的使用效率和服務質量,成為云計算在教學應用中的關注點之一[4-5]。
前期構建的OpenStack教學科研云計算平臺[6]已經具備了彈性資源和按需使用等優點,利用OpenStack Neutron服務組件實現了對網絡資源的共享和隔離,可按照不同的實驗項目對虛擬機資源進行二層網絡資源隔離,提高了計算資源服務的可管理性[7]。然而,在面對不同層次的實驗教學資源服務需求時,傳統架構的OpenStack云平臺[6,8-10]無法實現硬件的配置與服務所需資源的匹配,難以保證計算資源服務的質量和使用效率,無法實現云平臺服務的異構化[11]。因此,在基于前期構建的OpenStack教學科研云計算平臺[6]的基礎上,實驗教學云平臺的構建應該針對實驗教學服務的多層次(IaaS、PaaS和SaaS)類型進行資源的按需劃分和規劃,多層次服務實驗教學云平臺的結構如圖1所示。

圖1 多層次服務實驗教學云平臺結構圖
在計算資源服務的部署上,對比于傳統的OpenStack實驗教學平臺[6,8-10],多層次服務實驗教學云平臺充分利用了OpenStack多區域(Region)結構對不同層次服務進行區域劃分[12],包括了IaaS、PaaS和SaaS 3個層次服務區域;同時在基礎組件服務的基礎上,將用戶信息和權限管理功能組件Keystone、虛擬機鏡像服務組件Glance和基于Djiango架構的Web網頁接入服務Horizon組件統一部署并整合為OpenStack公共組件服務。因此,多層次服務實驗教學云平臺結構不僅實現了對不同類型服務的資源劃分,也為針對性的硬件配置優化奠定了基礎;同時也保留對用戶信息認證、網絡接入和虛擬機鏡像服務的統一管理,實現了資源異構服務。
依據IaaS、PaaS和SaaS服務所面向不同層次教學服務的特點,3個層次區域內計算節點的硬件資源配置和規劃如表1所示。
IaaS服務主要是提供實驗環境的快速構建,硬件配置需要兼顧計算和存儲能力。考慮以最大配置為8個vCPU(虛擬CPU)、8GB RAM虛擬機為例,其中每個虛擬CPU需要一個獨立線程進行處理,每臺虛擬機一般為50%的使用概率[13],最大可提供30臺虛擬機。在表1的配置中,IaaS區域的每個計算節點可同時滿足3臺虛擬機對CPU的需求,并綜合考慮內存容量,其計算節點數量為:
(1)
PaaS服務主要是提供云端實驗計算環境的快速擴展,如Hadoop和Spark[14-15]實驗計算平臺。一般而言,PaaS服務計算節點的CPU和內存配置要高于IaaS服務的硬件資源配置。以每個實驗提交的計算任務數據為100 MB,每個CPU處理任務一般為50%的使用概率[13],同時可提交60個計算任務和支持10個實驗課程為例。在表1的配置中,綜合考慮CPU計算能力和內存容量,PaaS區域的計算節點數量為:
(2)
SaaS服務主要是提供在線的教學服務,如資料下載、在線教學視頻播放等。其中在線教學視頻一般為FLV視頻格式,播放時CPU占用率較低[16]。因此,SaaS服務的CPU和內存的配置可低于IaaS服務的硬件資源配置。考慮以單個視頻播放CPU負載為25%,同時最大可支持150個教學視頻播放為例。在表1配置中,SaaS區域服務的計算節點數量為:
(3)
IaaS和SaaS服務為了保證實驗數據和教學相關資料存儲的安全性,其計算節點采用了2塊硬盤作為RAID配置,提供相關數據的冗余存儲和備份;PaaS服務主要是面對數據流的計算服務,為了節省硬件的成本,采用單硬盤存儲可滿足需求。綜上所述,通過不同層次服務的資源配置和規劃,使得云平臺在面對不同的服務時可按需進行物理資源的配置和劃分,提高資源的可管理性和硬件使用的效用比,實現服務的異構化。
按照3個層次區域的硬件資源配置規劃,多層次服務實驗教學云平臺的每個區域由一套完整的Nova、Cinder和Neutron組件服務負責該區域內虛擬機、網絡存儲和網絡資源的管理和調度,主要的部署流程如圖2所示。

圖2 多區域服務組件部署的主要流程
在前期工作的基礎上[6],按照相同的過程在3個區域內完成Nova、Cinder和Neutron服務組件的部署后,基于OpenStack平臺的多層次服務云平臺部署流程包括:①在公共組件服務的Keystone服務內分別為3個區域創建Nova、Cinder和Neutron服務組件的Endpoint(服務端點)名稱;②將區域內的服務組件權限認證地址修改為公共組件Keystone服務的地址和端口;③修改區域內服務組件對應的配置文件,使得區域內的服務能接入到平臺的公共組件Keystone、Glance和Horizon服務中;④統一各個區域內各個服務的管理密碼內容;⑤修改各個區域內的Nova服務的鏡像配置為公共服務的Glance API地址。完成部署后,多層次服務實驗教學云平臺內區域的結構如圖3所示。
圖中每個區域內的網絡節點具備3個網絡端口,分別用于管理網絡、虛擬機內網和外網的接入。其中管理網絡負責和區域內不同服務組件之間管理和控制信息的交互;虛擬機內網利用Neutron服務的2層網絡隔離實現區域內不同實驗資源之間的網絡資源隔離,使得不同實驗的虛擬機集群的IP可以重復,避免了不同教學實驗項目虛擬機資源的相互干擾;外網接入使得每個實驗虛擬機集群可通過獨立的公網IP訪問公網,提供云計算資源的對外接入訪問。

圖3 區域內的服務組件結構原理圖
區域管理節點負責運行Nova、Cinder和Neutron的管理服務組件,負責和公共組件服務進行通信,實現云平臺對資源調度的統一管理;存儲節點通過運行LVM服務提供網絡卷存儲服務,使用iSCSI網絡協議和Cinder服務提供虛擬機在線網絡存儲的掛載,實現數據存儲的擴展和備份[17];計算節點運行nova-compute和neutron-server服務對該節點啟動的虛擬機和網絡資源進行調度和管理。
由于網絡是云平臺的資源訪問的重要途徑,因此為了提高網絡接入的高可用性,每個區域網絡節點采用了高可用性結構進行部署,即采用多臺服務器同時運行neutron-l3-agent服務,實現多節點的網絡接入的負載均衡,避免網絡單點化故障。
根據不同層次服務(IaaS、PaaS和SaaS)的特點,多層次服務云平臺的虛擬機鏡像制作面向不同服務需求的虛擬機鏡像提供不同的資源服務,其配置如表2所示。

表2 虛擬機鏡像配置表
為了實現計算資源的按需使用,云平臺規劃了多種CPU、內存和硬盤的虛擬機配置組合,滿足不同服務資源的需求,使得計算資源可以按需進行使用,配置如表3所示。

表3 虛擬機配置組合列表
在實驗教學的應用方面,實驗課程管理員(主要是課程或者實驗室的相關負責人)作為一個OpenStack操作的租戶(Tenant),每個租戶按照實驗課程的資源和服務類型構建所需的IaaS、PaaS和SaaS資源提供實驗教學所需的環境。
4.2.1 面向IaaS服務的實驗教學應用
在面對不同的實驗教學項目時,管理員可按需快速地啟動已安裝好開發軟件的虛擬機提供在線實驗環境的快速部署。以嵌入式系統課程為例,管理員按照實驗所需的資源配置快速創建一定數量的虛擬機,包括具備gcc、Eclipse和Intellij idea開發環境的虛擬機,并在實驗課程開始前將虛擬機按需分配給參與實驗教學的學生,虛擬機管理界面如圖4所示。其中實驗開發環境主要是滿足計算和編譯服務,因此需要同時考慮CPU的計算能力和內存的容量,虛擬機的配置一般為M1.medium和M1.large。

圖4 IaaS服務虛擬機管理界面
4.2.2 面向PaaS服務的實驗教學應用
在面對數據分析、分布式計算和機器學習等相關實驗課程時,管理員可利用云平臺快速地擴展實驗課程需要的PaaS實驗計算環境。在實驗課程開始前,管理員按照實驗教學所需的計算能力啟動一定數量的Hadoop或者Spark服務鏡像虛擬機,并按照網絡的實際參數修改鏡像的配置,例如修改Hadoop的Master和Slave虛擬機的IP、端口以及集群管理模式等參數,實現PaaS實驗計算環境的快速擴展。同時利用Neutron服務的2層網絡隔離功能,使得多個實驗計算環境集群在彈性擴展時,計算集群內的IP獨立、可連續并且不受其他集群配置的干擾,提高資源的可管理性。
其中Hadoop和Spark是不同類型的計算框架,Hadoop主要是考慮CPU的計算能力和硬盤的存儲,虛擬機的配置一般為M1.small和M1.large;Spark是內存計算類型,主要考慮到CPU的計算能力和內存容量,虛擬機的配置一般為M1.medium和M1.xlarge。PaaS服務計算資源結構示意圖如圖5所示。

圖5 PaaS服務計算資源結構示意圖
4.2.3 面向SaaS實驗教學的應用
SaaS服務主要是提供實驗課程的在線學習服務,云平臺采用了Moodle軟件提供在線教學服務的快速構建[18]。每個實驗課程管理員可直接按需啟動表2中的SaaS服務虛擬機鏡像,包括了負載均衡、Apache PHP網頁服務和MySQL數據庫服務鏡像,按照在線教學服務的需求快速構建一套完整的Moodle在線服務集群。在完成服務集群的構建后,參與課程的學生和老師可直接利用Moodle軟件提供的功能實現在線教學服務,包括課程的講義、題庫、實驗代碼和在線教學視頻服務等。
由于Moodle軟件是將配置信息存儲于數據庫內,為了保證集群在不同時段的服務處理能力,Apache PHP網頁服務可以利用云計算的彈性特點實現在線的擴容,即當Apache PHP網頁服務端負載較高時,可由管理員新啟動一個虛擬機,并修改相關的數據庫信息配置,將該虛擬機增加到所屬負載均衡服務的后端內完成服務計算能力的擴展。以嵌入式系統實驗課程為例,SaaS在線學習服務資源結構示意圖如圖6所示。

圖6 SaaS在線學習服務資源結構示意圖
云計算的應用不僅能改善實驗資源的環境,也降低了實驗室的維護成本。基于OpenStack構建了多層次服務實驗教學云平臺,并對其進行了設計與應用;該平臺通過對不同層次服務(IaaS、PaaS和SaaS)區域資源的劃分和規劃,不僅實現了不同層次服務實驗資源的快速、彈性和按需使用,同時也進一步提高了硬件資源的效用比,提高了服務的質量,實現了資源的異構化,優化了實驗資源的使用,是面向實驗教學云計算平臺構建和應用的一次成功嘗試。