霍紹博 耿君毅 單 莘 李栓林 魯 瑞 王曉穎 付長(zhǎng)冬
1(中國(guó)移動(dòng)通信集團(tuán)有限公司 北京 100032)
2(北京郵電大學(xué) 北京 100876)
?
基于云計(jì)算的可擴(kuò)展云教室解決方案的設(shè)計(jì)與實(shí)現(xiàn)
霍紹博1耿君毅1單莘1李栓林1魯瑞1王曉穎1付長(zhǎng)冬2
1(中國(guó)移動(dòng)通信集團(tuán)有限公司北京 100032)
2(北京郵電大學(xué)北京 100876)
摘要針對(duì)當(dāng)前基于cluster的電子虛擬教室的諸多不足,提出一種基于云計(jì)算的云教室的實(shí)現(xiàn)方案。該方案通過(guò)使用分布式文件系統(tǒng)解決了傳統(tǒng)云教室擴(kuò)展性差的問(wèn)題,并在很大程度上提高云教室的I/O性能;同時(shí),通過(guò)線程調(diào)度機(jī)制實(shí)現(xiàn)了云教室資源調(diào)度管理以及多個(gè)云教室的同步讀寫(xiě)。實(shí)驗(yàn)結(jié)果表明:該方案能夠用于創(chuàng)建大規(guī)模高伸縮性的云教室,解決目前電子教室的可擴(kuò)展性差、I/O性能低以及高峰用戶讀寫(xiě)響應(yīng)慢等問(wèn)題,達(dá)到設(shè)計(jì)要求。
關(guān)鍵詞云計(jì)算云教室大數(shù)據(jù)hadoop
DESIGN AND IMPLEMENTATION OF SCALABLE CLOUD CLASSROOM SOLUTION BASED ON CLOUD COMPUTING
Huo Shaobo1Geng Junyi1Shan Xin1Li Shuanlin1Lu Rui1Wang Xiaoying1Fu Changdong2
1(China Mobile Group Corporation,Beijing 100032,China)2(Beijing University of Posts and Telecommunications,Beijing 100876,China)
AbstractAs to the disadvantages of current cluster-based virtual e-learning classroom, this paper proposes an implementing solution of cloud-computing based cloud-classroom. This solution ravels out the problem of poor scalability of traditional cloud classroom by using the distributed files system technology, and improves to great extent the I/O performance of cloud classroom; meanwhile, through thread scheduling mechanism it realises the resources scheduling and management of cloud classrooms as well as the synchronised read-write process between many cloud-classrooms. Experimental result shows that the solution can be used to create large-scale cloud classroom with high scalability, solves the problems of existing e-learning classrooms including poor scalability, low I/O performance and slow read-write responses to users in peak time, and meets the design requirement.
KeywordsCloud computingCloud classroomBig dataHadoop
0引言
隨著在線教育的發(fā)展,越來(lái)越多的商家推出了電子教室服務(wù),如edu.yy.cn、coursera等。使用這些電子教室,所有會(huì)員用戶都可以開(kāi)設(shè)課程[1],因此這類電子教室不僅需要考慮基本功能實(shí)現(xiàn)問(wèn)題,而且還要考慮系統(tǒng)性能問(wèn)題,如同時(shí)上課的電子教室數(shù)量、每個(gè)教室人數(shù)上限、每個(gè)教室可同時(shí)切換的教材或內(nèi)容數(shù)量等等,這類性能問(wèn)題直接關(guān)系到用戶體驗(yàn)和用戶學(xué)習(xí)質(zhì)量[2]。
目前主流的電子教室的實(shí)現(xiàn)平臺(tái)多基于Cluster集群模式的系統(tǒng)架構(gòu)[3],這種架構(gòu)存在的主要問(wèn)題包括:1) 同時(shí)打開(kāi)的電子教室數(shù)量有限,而且平臺(tái)擴(kuò)展性差;2) 電子教室可以同時(shí)容納的學(xué)員數(shù)量有限,無(wú)法滿足名教師授課情況下的高峰值、也不符合目前互聯(lián)網(wǎng)的業(yè)務(wù)模式;3) 在少量用戶的情況下可以很好的運(yùn)行,但是較多用戶的高I/O負(fù)載情況下會(huì)出現(xiàn)音視頻質(zhì)量下降,嚴(yán)重情況下導(dǎo)致系統(tǒng)崩潰[4];4) 在多個(gè)教室同時(shí)授課的情況下,對(duì)整個(gè)系統(tǒng)平臺(tái)的性能都存在較為嚴(yán)重的影響[5]。
針對(duì)上述不足之處,本文結(jié)合當(dāng)前流行的云計(jì)算技術(shù)具有良好擴(kuò)展性[6-9]和I/O性能好的特點(diǎn)[10-14],設(shè)計(jì)并實(shí)現(xiàn)了一種可擴(kuò)展云教室。這種云教室的主要特點(diǎn)是:可隨時(shí)根據(jù)云教室的數(shù)量、在線學(xué)院的數(shù)量對(duì)資源進(jìn)行擴(kuò)展,具有更好的I/O性能;同時(shí)實(shí)現(xiàn)了云教室資源的調(diào)度管理和多個(gè)云教室的同步讀寫(xiě)功能。
1實(shí)現(xiàn)方案
1.1設(shè)計(jì)思想
通過(guò)使用云計(jì)算技術(shù)將目前的固定電子教室模式升級(jí)擴(kuò)容為虛擬云教室模式,使之具有高可擴(kuò)展性、高可伸縮性和高I/O性能。
云教室和云教室平臺(tái)的核心定位為:
(1) 一個(gè)電子教室可以容納、增加N人,即電子教室的用戶數(shù)不受限制。這種模式的教室稱為云教室;
(2) 一個(gè)平臺(tái)上可以同時(shí)實(shí)時(shí)運(yùn)行N個(gè)云教室,即平臺(tái)上同時(shí)運(yùn)行的教室數(shù)不受限制。這種模式的平臺(tái)稱為云教室平臺(tái);
(3) 同時(shí),整個(gè)平臺(tái)系統(tǒng)I/O性能和單個(gè)云教室的I/O性能不受用戶增加的影響,其基本和服務(wù)器數(shù)量保持線性關(guān)系;
(4) 云教室承載在云教室平臺(tái)之上,可以任意關(guān)閉、打開(kāi)和管理;
(5) 云教室平臺(tái)可以動(dòng)態(tài)擴(kuò)展所需要的計(jì)算和存儲(chǔ)能力,以滿足性能需求。
1.2云教室平臺(tái)的實(shí)現(xiàn)原理
虛擬云教室平臺(tái)由1個(gè)教室平臺(tái)和N個(gè)云教室組成,其采用目前非常流行的大數(shù)據(jù)云計(jì)算架構(gòu)Hadoop實(shí)現(xiàn)。基于Hadoop架構(gòu)的云教室平臺(tái)其主要的系統(tǒng)結(jié)構(gòu)如圖1所示。
圖1中,云教室平臺(tái)由一個(gè)高可擴(kuò)展的HDFS分布式系統(tǒng)以及N個(gè)服務(wù)器(包括本地文件系統(tǒng)以及存儲(chǔ)設(shè)備)、多個(gè)云教室組成。其核心原理如下:
(1) 分布式文件系統(tǒng)HDFS將所有的N個(gè)服務(wù)器組成1個(gè)虛擬資源池;
(2) 每個(gè)云教室建立時(shí)從整個(gè)虛擬資源池中抽取所需要的服務(wù)器,組成單獨(dú)的云教室虛擬池,并形成新的分布式系統(tǒng)(HDFS教室);
(3) 當(dāng)云教室需要增加更多的服務(wù)器時(shí),其從云教室平臺(tái)的虛擬資源池中提取并加入到自己的云教室,形成新的分布式系統(tǒng)(HDFS教室);
(4) 當(dāng)云教室不再需要自己的服務(wù)器資源時(shí),則將相關(guān)的服務(wù)器釋放到云教室平臺(tái)的虛擬資源池中;
(5) 當(dāng)云教室平臺(tái)無(wú)法有效支撐目前各云教室的I/O性能需求時(shí),其可以動(dòng)態(tài)增加服務(wù)器,以提高整個(gè)云教室平臺(tái)的整體I/O性能,同時(shí)而不影響云教室的正常運(yùn)行。
因此,就具體實(shí)現(xiàn)而言,云教室平臺(tái)是由一個(gè)大的HDFS系統(tǒng)和多個(gè)小的動(dòng)態(tài)的HDFS教室(系統(tǒng))組成,它們之間組成動(dòng)態(tài)的集合關(guān)系。具體的云教室讀寫(xiě)機(jī)制全部由HDFS的Master和ChunkServer機(jī)制實(shí)現(xiàn)。
1.3云教室的實(shí)現(xiàn)原理
云教室核心是一個(gè)動(dòng)態(tài)的HDFS系統(tǒng)(或活動(dòng)教室),其采用分布式文件系統(tǒng)HDFS的多副本技術(shù)實(shí)現(xiàn),而具體的數(shù)據(jù)讀寫(xiě)完全按照HDFS的Master和Slave分布式機(jī)制。云教室的結(jié)構(gòu)框架如圖2所示。
圖2 云教室的結(jié)構(gòu)框架
從圖2中可以看出,云教室由1個(gè)主教室和多個(gè)擴(kuò)展教室組成,而主教室和存儲(chǔ)師資錄課授課課件信息的主服務(wù)器屬于1∶1關(guān)系,其存儲(chǔ)和管理主教室目前播放的教室內(nèi)容。而1個(gè)主教室可以根據(jù)人數(shù)擴(kuò)展N個(gè)擴(kuò)展教室,每個(gè)擴(kuò)展教室和1個(gè)從服務(wù)器連接,從服務(wù)器是主服務(wù)器的數(shù)據(jù)副本服務(wù)器。
因此,基于分布式文件系統(tǒng)的多副本技術(shù),可以非常容易地實(shí)現(xiàn)一個(gè)高可擴(kuò)展性的云教室,同時(shí)其I/O性能和服務(wù)器比例成線性關(guān)系。在實(shí)際實(shí)現(xiàn)中,可以根據(jù)用戶數(shù)動(dòng)態(tài)的擴(kuò)擴(kuò)展教室,從而達(dá)到空間無(wú)限大的云教室。
1.4云教室平臺(tái)的系統(tǒng)架構(gòu)與接口
云教室平臺(tái)從功能實(shí)現(xiàn)角度其就是一個(gè)統(tǒng)一的云教室管理器,而在系統(tǒng)架構(gòu)上其是基于分布式文件系統(tǒng)HDFS的客戶端管理軟件,具體結(jié)構(gòu)圖3所示。
圖3 云教室平臺(tái)系統(tǒng)架構(gòu)
云教室平臺(tái)是基于HDFS文件Client端的API接口實(shí)現(xiàn),其通過(guò)HDFS客戶端和Master、Chunkserver交互,實(shí)現(xiàn)云教室服務(wù)器的捆綁和釋放、云教室多副本數(shù)據(jù)的讀寫(xiě)等。因此,云教室平臺(tái)通過(guò)HDFS API實(shí)現(xiàn)和Master、ChunkServer的交互,而且通過(guò)API和HDFS客戶端屏蔽所有的I/O處理細(xì)節(jié)問(wèn)題。
云教室平臺(tái)是基于HDFS的核心機(jī)制實(shí)現(xiàn),通過(guò)HDFS的客戶端接口完全屏蔽了其內(nèi)部實(shí)現(xiàn)細(xì)節(jié),只關(guān)心云教室平臺(tái)的統(tǒng)一管理和云教室管理。
1.5云教室的調(diào)度管理機(jī)制
云教室平臺(tái)以及云教室統(tǒng)一通過(guò)HDFS客戶端API和分布式文件系統(tǒng)Master和Chunkserver服務(wù)器進(jìn)行交互;云教室平臺(tái)核心作用是管理,真正的讀寫(xiě)操作由云教室和Chunkserver直接完成。因此,基于分布式文件系統(tǒng)的I/O特點(diǎn),主教室和擴(kuò)展教室在系統(tǒng)I/O性能方面基本沒(méi)有區(qū)別。
云教室在具體實(shí)現(xiàn)上由1個(gè)主線程以及若干個(gè)子線程組成,主線程負(fù)責(zé)所有客戶端的I/O請(qǐng)求即用戶的調(diào)度管理,而子線程則每個(gè)對(duì)應(yīng)一個(gè)教室,負(fù)責(zé)具體的I/O讀寫(xiě)操作。
云教室的調(diào)度管理機(jī)制如下:
{
設(shè)置每個(gè)教室的固定人數(shù);
設(shè)置擴(kuò)展教室的數(shù)量;
For(;;) {
異步等待客戶端學(xué)員的I/O動(dòng)作;
IF(新學(xué)員加入) {
從所有教室中找到目前人數(shù)最少的教室;
將新學(xué)員分配到該教室;
修改所有教室的人員情況;
通知相關(guān)教室;
}
Else if(有學(xué)員退出){
修改教室的人員情況;
通知相關(guān)教室;
}
Else if(所有教室滿員)
拒絕該客戶;
}
}
因?yàn)镠DFS采用虛擬I/O,主教室和擴(kuò)展教室在I/O性能上沒(méi)有區(qū)別,每個(gè)擴(kuò)展教室或主教室在每次I/O存儲(chǔ)時(shí)全部存取最近的數(shù)據(jù)副本。因此云教室的調(diào)度管理算法采用公平調(diào)度策略,該算法最大的特點(diǎn)是保證每個(gè)教室人數(shù)相當(dāng),從而能夠使I/O負(fù)載均衡,也從而使I/O數(shù)據(jù)讀寫(xiě)的性能平衡,達(dá)到系統(tǒng)的最佳整體性能。
1.6云教室的讀寫(xiě)模型與同步機(jī)制
由于采用HDFS分布式讀取以及多教室的副本并發(fā)機(jī)制,則必然存在一個(gè)云教室下多個(gè)教室的異步速度問(wèn)題,所以必須實(shí)現(xiàn)云教室下的多教室同步機(jī)制。
云教室I/O模型如圖4所示。圖4中每個(gè)云教室具有1個(gè)主線程和N個(gè)子線程組成,每個(gè)子線程對(duì)應(yīng)一個(gè)教室,而主線程僅僅負(fù)責(zé)I/O請(qǐng)求,而子線程不僅處理I/O請(qǐng)求,而且需要根據(jù)I/O請(qǐng)求和具體的ChunkServer交互。
圖4 云教室I/O模型
每個(gè)子線程單獨(dú)和Master、ChunkServer交互,它們屬于完全獨(dú)立的I/O行為,因此必須在云教室中進(jìn)行同步管理,否則會(huì)導(dǎo)致同一云教室下的教室進(jìn)度異步問(wèn)題。
具體的讀寫(xiě)同步算法如下:
{
設(shè)置共享區(qū);
每個(gè)子進(jìn)程異步將數(shù)據(jù)量寫(xiě)到共享區(qū);
For(;;){
檢查每個(gè)子進(jìn)程的數(shù)據(jù)讀寫(xiě)進(jìn)度;
IF(x進(jìn)程速度超過(guò)5%)
異步通知該進(jìn)程等待;
IF(等待進(jìn)程已經(jīng)滿足進(jìn)度要求)
異步通知該進(jìn)程繼續(xù)處理;
Sleep(10);
}
}
云教室的同步機(jī)制可以使所有主、副教室并發(fā)處理的情況下,所有主、擴(kuò)展教室保持進(jìn)度一致,從而實(shí)現(xiàn)統(tǒng)一教學(xué)管理的目的。
2實(shí)際測(cè)試
為了驗(yàn)證方案的可行性,通過(guò)模擬實(shí)際生產(chǎn)環(huán)境對(duì)該方案進(jìn)行了測(cè)試。實(shí)驗(yàn)當(dāng)中只有服務(wù)器數(shù)量和云教室數(shù)量?jī)蓚€(gè)主要變量,所以可以使用控制變量法進(jìn)行對(duì)比測(cè)試。
2.1測(cè)試環(huán)境
為了確保測(cè)試結(jié)果的準(zhǔn)確性,選用34臺(tái)主流x86服務(wù)器作為硬件環(huán)境。具體服務(wù)器配置如表1所示。
表1 服務(wù)器硬件配置
同時(shí),在局域網(wǎng)內(nèi)進(jìn)行測(cè)試,選用千兆32口企業(yè)級(jí)交換機(jī),確保足夠使用的帶寬。為了避免服務(wù)器網(wǎng)絡(luò)子系統(tǒng)影響服務(wù)器帶寬,采用雙網(wǎng)卡交換機(jī)綁定的方式提高服務(wù)器帶寬。
服務(wù)器網(wǎng)站架構(gòu)選用當(dāng)今主流的免費(fèi)lamp,既操作系統(tǒng)采用linux,服務(wù)器采用Apache,數(shù)據(jù)庫(kù)采用mysql,以及php腳本解析器。
2.2測(cè)試過(guò)程
為了模擬實(shí)際情況,采用cinder對(duì)所有服務(wù)器進(jìn)行統(tǒng)一安裝linux操作系統(tǒng),并使用主流的云計(jì)算平臺(tái)openstack對(duì)所有服務(wù)器硬件資源進(jìn)行虛擬化。其中,openstack的計(jì)算控制節(jié)點(diǎn)、網(wǎng)絡(luò)節(jié)點(diǎn)等組件的控制節(jié)點(diǎn)集中放置在兩臺(tái)物理服務(wù)器上,剩余32臺(tái)服務(wù)器作為計(jì)算節(jié)點(diǎn)。計(jì)算節(jié)點(diǎn)的每個(gè)虛擬機(jī)設(shè)定為一個(gè)內(nèi)核、2 GB內(nèi)存,所以總共可以獲得128臺(tái)虛擬服務(wù)器。服務(wù)器分配情況如表2所示。
表2 虛擬服務(wù)器分配表
首先使用Loadrunner并發(fā)測(cè)試工具對(duì)前期服務(wù)器集群的I/O性進(jìn)行分析,當(dāng)達(dá)到I/O閾值上限之后以3臺(tái)/次的速度逐漸添加虛擬服務(wù)器,以后再次進(jìn)行最大I/O測(cè)試,直至添加完所有虛擬服務(wù)器。
2.3測(cè)試結(jié)果
對(duì)系統(tǒng)的最大并發(fā)數(shù)測(cè)試結(jié)果如圖5所示。
圖5 最大并發(fā)數(shù)測(cè)試結(jié)果
通過(guò)圖5可以看出:隨著服務(wù)器數(shù)目的增加,系統(tǒng)的最大并發(fā)數(shù)也逐漸增加,在96臺(tái)服務(wù)器之前服務(wù)器數(shù)量與I/O性能幾乎呈線性關(guān)系;當(dāng)服務(wù)器數(shù)目大于96臺(tái)時(shí),出現(xiàn)了拐點(diǎn),隨著服務(wù)器數(shù)量的增加,并發(fā)數(shù)增長(zhǎng)量放緩。因?yàn)樗捎玫奶摂M服務(wù)
器的配置完全相同,而且負(fù)載均衡服務(wù)器資源使用率未達(dá)到40%, 所以拐點(diǎn)的出現(xiàn)可能是由于openstack框架性能的影響。
隨著云教室數(shù)目增加,系統(tǒng)I/O會(huì)略有降低,這說(shuō)明云教室數(shù)量會(huì)在很小程度上影響系統(tǒng)的I/O性能。
3結(jié)語(yǔ)
本文基于云計(jì)算技術(shù)設(shè)計(jì)并實(shí)現(xiàn)了可擴(kuò)展云教室的方案。該方案所實(shí)現(xiàn)的云教室具有很好的可擴(kuò)展性,能夠根據(jù)云教室負(fù)載情況對(duì)硬件資源進(jìn)行擴(kuò)展,以適應(yīng)用戶數(shù)量達(dá)到峰值時(shí)的高并發(fā)、高I/O性能的要求,這為創(chuàng)建大規(guī)模高伸縮性的云教室提供了基礎(chǔ)。
由于條件限制,涉及方案只是虛擬機(jī)上進(jìn)行了測(cè)試,這和實(shí)際的企業(yè)生產(chǎn)環(huán)境仍有很大的差距,這些差距可能會(huì)使得測(cè)試結(jié)果有一定的偏差。因此,在更大規(guī)模物理機(jī)上進(jìn)行實(shí)際測(cè)試將是下一步的研究的主要工作。
參考文獻(xiàn)
[1] 李艷.基于ASP開(kāi)發(fā)的在線教育系統(tǒng)的分析與設(shè)計(jì)[D] .青島:中國(guó)海洋大學(xué),2006.
[2] 王雪,王志軍,王惟遠(yuǎn).網(wǎng)絡(luò)課程與在線教育游戲有機(jī)結(jié)合的研究[J].福建電腦,2008(2):182-183.
[3] 馬坤.教育數(shù)字化和在線化變革開(kāi)啟前景廣闊[J].股市動(dòng)態(tài)分析,2014(16):102-108.
[4] 張艷明,宋廣佳,孟娟娟,等.基于B/S模式的遠(yuǎn)程教育在線考試系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].黑龍江科技信息,2012(2):85-92.
[5] 馬小強(qiáng),孔慶儀.無(wú)線移動(dòng)電子教室的發(fā)展及構(gòu)成分析[J].中國(guó)電化教育,2009(1):32-34.
[6] 劉嵩,李文蕙.云計(jì)算系統(tǒng)中基于邊緣節(jié)點(diǎn)和容量的延遲分析[J].計(jì)算機(jī)應(yīng)用與軟件,2014,31(4):35-39,50.
[7] 吳正學(xué),戴牡紅.云計(jì)算中基于否定規(guī)則的訪問(wèn)控制技術(shù)的研究[J].計(jì)算機(jī)應(yīng)用與軟件,2014,31(1):30-33,72.
[8] 黃哲學(xué),曹付元,李俊杰,等.面向大數(shù)據(jù)的海云數(shù)據(jù)系統(tǒng)關(guān)鍵技術(shù)研究[J].網(wǎng)絡(luò)新媒體技術(shù),2012,1(6):20-26.
[9] 黃曉云.基于HDFS的云存儲(chǔ)服務(wù)系統(tǒng)研究[D].大連:大連海事大學(xué),2010.
[10] 徐文強(qiáng).基于HDFS的云存儲(chǔ)系統(tǒng)研究[D].上海:上海交通大學(xué),2011.
[11] 陳虎.基于HDFS的云存儲(chǔ)平臺(tái)的優(yōu)化與實(shí)現(xiàn)[D].廣州:華南理工大學(xué),2012.
[12] 成靜靜.基于Hadoop的分布式云計(jì)算/云存儲(chǔ)方案的研究與設(shè)計(jì)[J].數(shù)據(jù)通信,2012(5):14-18.
[13] 王彥明,奉國(guó)和,薛云.近年來(lái)Hadoop國(guó)外研究綜述[J].計(jì)算機(jī)系統(tǒng)應(yīng)用,2013,22(6):1-6.
[14] 黎宏劍,劉恒,黃廣文,等.基于Hadoop的海量電信數(shù)據(jù)云計(jì)算平臺(tái)研究[J].電信科學(xué),2012(8):80-85.
中圖分類號(hào)TP39
文獻(xiàn)標(biāo)識(shí)碼A
DOI:10.3969/j.issn.1000-386x.2016.02.020
收稿日期:2014-07-02?;艚B博,高工,主研領(lǐng)域:電信網(wǎng)業(yè)務(wù)和IT支撐,信息安全技術(shù)。耿君毅,高工。單莘,高工。李栓林,工程師。魯瑞,工程師。王曉穎,工程師。付長(zhǎng)冬,博士。