歐衛(wèi)紅 楊永琴 李家華
(廣州科技職業(yè)技術(shù)大學(xué),廣東 廣州 510550)
近年來,信息技術(shù)的發(fā)展日新月異,人們的一舉一動都在被數(shù)字化,人們逐漸從信息匱乏的時代走入了信息充裕的時代。信息的社會地位也在不斷上升,現(xiàn)已成為人們生產(chǎn)、生活中不可缺少的重要資源??梢院敛豢鋸埖卣f“誰掌握了信息技術(shù)的話語權(quán),誰就掌握了未來”。而數(shù)據(jù)作為信息的主要來源和原始材料,迅速成為信息技術(shù)科學(xué)中的一個熱點,數(shù)據(jù)也成為一種新的自然資源[1]。在大千世界中各種活動產(chǎn)生著大量的數(shù)據(jù),我們稱之為大數(shù)據(jù)。[2,3]據(jù)統(tǒng)計每年產(chǎn)生的數(shù)據(jù)量正在逐年增長,而且根據(jù)數(shù)據(jù)顯示該增長趨勢依舊處于加速狀態(tài),預(yù)估近幾年數(shù)據(jù)量的增長速度將超過50%。[4]大數(shù)據(jù)其表現(xiàn)形式各樣,結(jié)構(gòu)復(fù)雜,但蘊含了各種豐富的信息,且具有廣泛的應(yīng)用潛質(zhì)。當今世界國際一體化加快形成,“互聯(lián)網(wǎng)+”快速推進,各種技術(shù)不斷成熟,因而又促進了信息處理技術(shù)快速發(fā)展。信息論告訴我們數(shù)據(jù)中包含了知識、客觀存在的規(guī)律等異常珍貴的財富和資源。計算機科學(xué)技術(shù)的快速發(fā)展為信息處理提供了一個理想的工作平臺,并逐步形成了分布式處理、知識識別及表達、數(shù)據(jù)挖掘、邊界處理等新的學(xué)科領(lǐng)域。
現(xiàn)階段各研究機構(gòu)和相關(guān)企業(yè)都在轉(zhuǎn)變模式,利用大數(shù)據(jù)分析處理來解決自身關(guān)注的問題及提升業(yè)務(wù)的處理能力。例如:在醫(yī)學(xué)應(yīng)用方面,利用新的信息技術(shù)獲取大量數(shù)據(jù)(圖形、圖像、文字、行為過程等),來研究疾病的發(fā)病機理及治療的方法;在圖像處理方面,利用新的信息技術(shù)獲取大量數(shù)據(jù),實現(xiàn)人臉識別技術(shù)。在企業(yè)中,人們利用各種渠道獲取用戶的大量數(shù)據(jù),利用大數(shù)據(jù)挖掘出用戶的愛好、需求趨勢、行為習(xí)慣等,從而調(diào)整自身的生產(chǎn)、銷售、庫存等以實現(xiàn)更大的效益。在國內(nèi),近年來大數(shù)據(jù)技術(shù)在各方的合力下發(fā)展非常迅速。2016年,國家工信部發(fā)布了《大數(shù)據(jù)產(chǎn)業(yè)發(fā)展規(guī)劃(2016-2020年)》。2017年12月,中共中央政治局就實施國家大數(shù)據(jù)戰(zhàn)略進行第二次集體學(xué)習(xí),習(xí)近平主席發(fā)表重要講話。“十九大”的政府工作報告中明確提出云計算、大數(shù)據(jù)成為“十四五”重點發(fā)展的技術(shù)領(lǐng)域。
大數(shù)據(jù)的高效處理需要強有力的基礎(chǔ)計算力,目前有兩種方式來提高計算力,一種是利用超級計算機處理大數(shù)據(jù),這種方式投入大,一般應(yīng)用于科學(xué)研究的數(shù)據(jù)處理;另一種是利用云計算平臺來處理大數(shù)據(jù),云計算具有超大規(guī)模、處理速度快、虛擬化、高可靠性、通用性、高可擴展性、性價比高等特點,它為大數(shù)據(jù)高效處理提供了一個理想的解決方案。
云計算技術(shù)[5,6]就是分布式計算的一種具體實現(xiàn),它是分布式計算、網(wǎng)格計算、負載均衡、并行計算、網(wǎng)絡(luò)存儲、熱備份冗雜和虛擬化等技術(shù)混合演進并躍升的結(jié)果。云計算技術(shù)的出現(xiàn)給大數(shù)據(jù)高效處理提供了一個理想的解決方案。云計算它提供一種“按需分配”的可擴展的計算服務(wù),提供強大的存儲能力和計算能力。[7]目前云計算技術(shù)得到了快速發(fā)展,2019年,以IaaS、PaaS和SaaS為代表的全球云計算市場規(guī)模達到1883億美元,增速20.86%,預(yù)計未來幾年將以每年20%左右的增長率快速增長[8]。各種跡象表明云計算的研究與開發(fā)在未來的若干年還將持續(xù)升溫,引領(lǐng)著計算機技術(shù)飛速發(fā)展。[9]這反映出人們從傳統(tǒng)的IT服務(wù)向云端服務(wù)的轉(zhuǎn)變,逐漸將業(yè)務(wù)趨向于數(shù)字化戰(zhàn)略,云計算理所當然成為承載大數(shù)據(jù)處理的首選基礎(chǔ)平臺。
如何更有效地在云平臺下實現(xiàn)高效處理大數(shù)據(jù),可從以下幾個方面進行分析:
實現(xiàn)高效的并行計算的關(guān)鍵點就是任務(wù)和虛擬機的調(diào)度問題,好的調(diào)度算法可大幅度提高資源利用率和處理數(shù)據(jù)的效率。云平臺在提供服務(wù)時,其物理節(jié)點的資源消耗是動態(tài)調(diào)整的,調(diào)度時不能保證每次新的任務(wù)都能及時部署到最優(yōu)剩余資源量的節(jié)點上。在實際的應(yīng)用過程中,用戶每次新的任務(wù)都是隨機地部署到一個物理節(jié)點上,如果提交的任務(wù)資源需求量比選取的物理節(jié)點的可用資源數(shù)更大,就會發(fā)生任務(wù)部署失敗的事件,影響處理效率。另一種情況,如果提交的任務(wù)資源需求量剛好與選取的物理節(jié)點的可用資源數(shù)相近,雖然能正常部署,但是其物理節(jié)點的負荷太高,其處理效率也不會高。我們改變一下任務(wù)的部署策略,每次都將任務(wù)部署到最空閑的物理節(jié)點上,這樣是可以得到最好的執(zhí)行效率,但大多數(shù)物理節(jié)點的利用率就會非常低,造成了大量的資源浪費。因此,不同的任務(wù)部署方式和不同的系統(tǒng)負載分布情況,直接決定云平臺的處理效率和服務(wù)能力。因此,大數(shù)據(jù)要在云平臺上進行高效處理,云平臺需要有相匹配的最佳虛擬機及任務(wù)部署方法,提高平臺的負載均衡能力,提高云計算平臺處理大數(shù)據(jù)的效率。圖1給出了任務(wù)在IAAS云平臺的部署過程。
圖1 任務(wù)在IAAS云平臺的部署
綜上所述,如何合理地進行任務(wù)和虛擬機的調(diào)度以實現(xiàn)整個云平臺的負載均衡是影響云平臺下大數(shù)據(jù)處理效率的第一個主要因素。
數(shù)據(jù)存儲技術(shù)一直對數(shù)據(jù)處理效率影響較大,選擇不同的數(shù)據(jù)存儲方式其數(shù)據(jù)處理效率有非常大的差異。如今,主要的網(wǎng)絡(luò)存儲解決方案有以下三種[10]:直連存儲DAS(Direct Attached Storage),聯(lián)網(wǎng)存儲NAS(Network Attached Storage),存儲區(qū)域網(wǎng)絡(luò)SAN(Storage Area Network)。目前,在實際應(yīng)用中使用比較多的是SAN,存儲區(qū)域網(wǎng)絡(luò)SAN[11]是獨立于服務(wù)器網(wǎng)絡(luò)系統(tǒng)之外的高速存儲網(wǎng)絡(luò),網(wǎng)絡(luò)上的應(yīng)用服務(wù)器可以共享所有的存儲設(shè)備,它一般采用FC(Fiber Channel,光通道)和SCSI(Small Computer System Interface,小型計算機系統(tǒng)接口)作為存儲訪問協(xié)議,并通過專用的交換機等設(shè)備組成高速可靠的網(wǎng)絡(luò),使存儲子系統(tǒng)網(wǎng)絡(luò)化,實現(xiàn)真正高速共享存儲的目標[12]。圖2是三種網(wǎng)絡(luò)存儲結(jié)構(gòu)圖。
圖2 三種網(wǎng)絡(luò)存儲結(jié)構(gòu)圖
在云平臺下一般資源都是分布式的,數(shù)據(jù)的存放也是分布式的。如何整合存儲在網(wǎng)絡(luò)上分布式的不同類型的數(shù)據(jù),提高其存儲空間利用率,并提供簡單、高效、智能的管理方式,降低運行成本是當前云平臺下存儲技術(shù)要急需解決的問題。
虛擬存儲技術(shù)的出現(xiàn)為云平臺提供了一個最佳的存儲解決方案。虛擬存儲技術(shù)將所有的存儲資源在邏輯上映射為一個整體,屏蔽了單個存儲設(shè)備的容量、速度等物理特性,向用戶呈現(xiàn)單一透明的存儲視圖。[13,14]虛擬存儲(Storage Virtualization)是邏輯存儲,它管理存儲數(shù)據(jù)的方式比較智能化。[15]其結(jié)構(gòu)如圖3所示。
圖3 虛擬存儲結(jié)構(gòu)及分類
從存儲虛擬化的實現(xiàn)原理來看,存儲虛擬化又分為帶內(nèi)和帶外兩種。[16]其虛擬化方式可分為三類:基于主機及服務(wù)器的虛擬化、基于網(wǎng)絡(luò)的虛擬化、基于存儲設(shè)備及存儲子系統(tǒng)的虛擬化。[17,18]他們各有優(yōu)缺點:基于主機及服務(wù)器的虛擬化具有較高的穩(wěn)定性,但不便于擴展,受限于主機自身的資源,也會導(dǎo)致主機性能下降?;诖鎯υO(shè)備及存儲子系統(tǒng)的虛擬化具有獨立性,節(jié)省主機的資源,擴展性也不錯,但存在兼容性問題,不同廠商的設(shè)備可能無法互聯(lián)互通?;诰W(wǎng)絡(luò)的虛擬化存儲系統(tǒng),從形式上是分布式的,是把網(wǎng)絡(luò)上的存儲設(shè)備或存儲系統(tǒng)進行整合并抽象成統(tǒng)一的存儲池,可以為用戶提供按需分配的服務(wù),它具有以下優(yōu)點:結(jié)構(gòu)上簡化了存儲架構(gòu)、實行集中存儲管理;存儲資源是按需分配的、并且可以動態(tài)調(diào)整,實現(xiàn)跨存儲平臺分級存儲,業(yè)務(wù)處理不受物理存儲設(shè)備的變化影響,同時解決了不同廠商的設(shè)備的兼容性問題,也有效降低了存儲成本。
因此,在云平臺上處理大數(shù)據(jù)時,選擇什么樣的存儲結(jié)構(gòu)是提高大數(shù)據(jù)處理效率的又一個主要因素。當然,影響在云平臺上處理大數(shù)據(jù)的處理效率的因素還很多,本文只是拋磚引玉,現(xiàn)在已經(jīng)有更多的學(xué)者去分析解決相關(guān)問題。
如何提升云平臺下大數(shù)據(jù)處理效率,本文提出了一種啟迪式的感應(yīng)負載均衡方法來優(yōu)化任務(wù)和虛擬機的調(diào)度,從而提高云平臺處理大數(shù)據(jù)的效率。
負載均衡的調(diào)度算法一般被分成兩類:動態(tài)負載均衡算法和靜態(tài)負載均衡算法。[19]經(jīng)典的靜態(tài)負載均衡調(diào)度算法有:輪詢調(diào)度(RR算法)算法、權(quán)重輪詢均衡(WRR算法)算法、最小連接數(shù)法(LC算法)算法、加權(quán)最小連接調(diào)度算法(WLC算法)等等。靜態(tài)負載均衡算法相對簡單,它主要是根據(jù)系統(tǒng)中一些靜態(tài)信息進行任務(wù)調(diào)度和分配,實現(xiàn)起來也比較容易,但它不能實時動態(tài)反映云平臺中各種資源的變化情況,而且當規(guī)模迅速擴大后存儲這些靜態(tài)信息的量也快速增長,其調(diào)度效率快速下降,使用靜態(tài)負載均衡算法就更顯得力不從心。因此,它不能很好滿足云平臺高效處理大數(shù)據(jù)的需求。
大數(shù)據(jù)處理的問題一般是規(guī)模比較大的,問題的復(fù)雜度也是比較高的,當我們處理問題的規(guī)模擴大后解決問題的時間復(fù)雜度就會快速增長,處理大數(shù)據(jù)的平臺的復(fù)雜度也會快速增長。人們在分析處理這類規(guī)模大復(fù)雜度高的問題時一般會采用P類問題和NP類問題來抽象。動態(tài)負載均衡調(diào)度算法[20]就是最典型的NP完全組合及優(yōu)化問題,在一大批解決問題的方法中求最優(yōu)值。在實際的生產(chǎn)和生活中,一般會借助于組合數(shù)學(xué)、擬陣和廣義擬陣以及圖論等理論,用直觀算法、近似算法來解決組合最優(yōu)化的問題。基于這些理論,提出了一大批實用高效的算法;如VMware就采用了分布式的資源調(diào)度算法(DRS算法),[21]DRS對資源的分配方式有兩種:第一種是將虛擬機遷移到另外一臺具有更多合適資源的服務(wù)器上,第二種是將該服務(wù)器上其他的虛擬機遷移出去,從而為該虛擬機騰出更多的“空間”。DRS減少了虛擬機停機時間,保持業(yè)務(wù)的持續(xù)性和穩(wěn)定性,提高了處理效率,減少了需要運行服務(wù)器的數(shù)量以及動態(tài)地切斷當前不需要使用的服務(wù)器的電源,提高了能源的利用率。文獻[22]中提出了基于網(wǎng)絡(luò)感知的虛擬機放置方法,這個方法提高了云計算平臺環(huán)境下虛擬機資源利用率以及數(shù)據(jù)密集型程序的運行效率,使其數(shù)據(jù)訪問時間最小,并且當該虛擬機的數(shù)據(jù)訪問時間不能滿足要求時,運用概率統(tǒng)計知識,將它遷移到其它物理服務(wù)器上。文獻[23]提出了基于虛擬機網(wǎng)絡(luò)親和度的動態(tài)調(diào)度策略,它主要是通過監(jiān)控成對虛擬機間的網(wǎng)絡(luò)親和度,再結(jié)合分布式交換算法來動態(tài)地調(diào)整虛擬機的遷移和放置,使通信的開銷最小化,從而實現(xiàn)負載均衡,提高處理效率。還有基于靜態(tài)和動態(tài)相結(jié)合的調(diào)度策略,基于改進遺傳算法和帕累托最優(yōu)化理論的啟發(fā)式自適應(yīng)多目標優(yōu)化算法[24],都從不同角度很好地解決了目前任務(wù)和虛擬機調(diào)度的效率問題。結(jié)合上述的分析,本文提出一種基于長期的工作過程的云計算平臺下啟迪式的感應(yīng)負載均衡方法E-LBI(Enlightening Load Balancing Method of Induction)來優(yōu)化在云計算平臺下處理大數(shù)據(jù)的效率。
E-LBI是從云平臺的長期運行維護的角度出發(fā)的,其主要的思想是將聚類思想與貝葉斯理論相結(jié)合,認為當集群中的所有物理主機的剩余負載率趨于相近時能反映出云平臺的負載均衡情況,利用聚類思想將主機動態(tài)分成剩余負載率低、中、高等集合。其任務(wù)部署問題可以形式化如下:有m個任務(wù)在Δt時間內(nèi)到達云平臺,需要把它們分配到由n臺物理服務(wù)器組成的云平臺上運行著的虛擬機上。我們用一個m維解向量P(p1,p2,……,pm)來表示一個任務(wù)部署的解決方案,pi代表將要執(zhí)行某個任務(wù)請求i的目的物理服務(wù)器。通過向量P來確定某個任務(wù)將會被部署到哪個物理服務(wù)器中。E-LBI方法就是利用它的算法機制以解向量P的形式解出最終部署策略。我們從六個方面來描述它,用一個六元組γ={SV,TC,Rc,Rm,Dc,Dm}來描述要求解的問題,其中SV表示n個可用物理主機的集合,SV(n,t)={sv1,sv2,...,svm},t表示任務(wù)部署的初始時間。TC(m,Δt,t)={tc1,tc2,...,tcm}表示在一個Δt時間內(nèi)所有的請求集合。Rc表示SV中各物理服務(wù)器的CPU所剩余的資源量,Rc(n,t)={Rc1,Rc2,...,Rcn}。Rm表示SV中各物理服務(wù)器的可用內(nèi)存資源量,Rm(m,t)={Rm1,Rm2,...,Rmm}。Dc表示TC中m個任務(wù)請求的CPU計算資源需求量,Dc(m,t)={Dc1,Dc2,...,Dcn}。Dm(m,t)={Dm1,Dm2,...,Dmm}是TC中m個任務(wù)請求的內(nèi)存資源需求量。
第i物理服務(wù)器的剩余資源量Ri可以定義如下:
α表示計算資源CPU的權(quán)重,β表示存儲資源內(nèi)存的權(quán)重。
任務(wù)集合的性能約束值可以被定義為TC中最大的資源請求量,其公式表達為:
第i個任務(wù)的請求資源量可定義如下:
E-LBI方法通過計算所有主機的剩余負載率的標準差來評價負載均衡程度,其期望和標準差表示如下:
第i個物理服務(wù)器的剩余負載率公式如下:
Ti表示第i個物理服務(wù)器的資源總量,其公式表達為:
代表第i個物理服務(wù)器的總CPU資源,代表第i個物理服務(wù)器的總內(nèi)存資源。E-LBI方法認為每個主機的剩余負載率Ei盡可能相近的情形可以反映一個云計算平臺的負載均衡程度,通過上面的公式,優(yōu)化目標可以得到以下公式:
E-LBI方法不是直接應(yīng)用公式(9)去優(yōu)化目標,而是從云平臺長期運營的角度來設(shè)計一個框架和過程式的方法集,從而實現(xiàn)更好的負載均衡效果。在E-LBI中,將剩余資源量比約束值大的物理服務(wù)器組成一個具有nˊ個物理服務(wù)器的新集合NSV,該集合中的物理服務(wù)器成為任務(wù)分配的最優(yōu)候選集,再利用聚類的思想把物理服務(wù)器之間的相似度與給定的閾值進行比較從NSV集合中找出最優(yōu)類簇組成最后的物理服務(wù)器最優(yōu)候選集。
相似度函數(shù)定義如下:
和表示物理服務(wù)器i和物理服務(wù)器j的第k個屬性。
物理服務(wù)器i的后驗概率P(Bi|A)公式如下:
采用E-LBI進行虛擬機和任務(wù)部署時有如下幾個步驟:第一步,通過動態(tài)監(jiān)測選出剩余資源比當前提交的任務(wù)的最大資源需求更大的一批主機構(gòu)成一個候選集群。第二步,先確定集合中每一臺物理主機的先驗概率,再通過貝葉斯理論計算出每一臺物理主機后驗概率,最后找出具有最大后驗概率的主機,同時結(jié)合物理主機的計算資源和內(nèi)存資源量,利用這三個值來計算其它所有主機與最大后驗概率主機的相似度。第三步,確定相似度閾值,把相似度值在閾值內(nèi)的主機構(gòu)成一個最優(yōu)物理主機集合。第四步,部署任務(wù)到最優(yōu)物理主機集合中的物理主機上來執(zhí)行。圖4描述了E-LBI任務(wù)部署過程。
圖4 E-LBI任務(wù)部署過程
我們采用CloudSim模擬器[25]對E-LBI啟迪式的感應(yīng)負載均衡方法、DLB動態(tài)負載均衡方法、RD隨機部署方法進行驗證和評估,分別從最大完成時間、衡量負載均衡效果的標準差值、任務(wù)部署事件的失敗次數(shù)進行比較。在CloudSim模擬器中創(chuàng)建一個模擬云平臺,該平臺由100臺物理服務(wù)器組成。模擬有30批任務(wù)同時請求,而且每批任務(wù)又有50個不同資源需求的子任務(wù)連續(xù)到達平臺。
在實驗中E-LBI、DLB、RD的最大完成時間的對比圖如圖5所示:RD方法是隨機地將任務(wù)部署到主機上的,隨著任務(wù)數(shù)量增加系統(tǒng)的性能下降比較快,因此任務(wù)的執(zhí)行時間增長也較快。DLB方法是基于歷史數(shù)據(jù)與經(jīng)驗再加上知識庫來預(yù)測將要到來的任務(wù)需求,通過計算系統(tǒng)負載均衡的收益值來進行任務(wù)部署,隨著任務(wù)數(shù)量增加各物理服務(wù)器之間的通信開銷快速增加,從而降低物理服務(wù)器處理性能,因此任務(wù)的執(zhí)行時間也隨之增加,但比RD方法要小。E-LBI方法經(jīng)過多次迭代會選擇最優(yōu)物理服務(wù)器集合來部署和處理任務(wù),減少了大量的通信開銷,物理服務(wù)器的性能得到最大程度的發(fā)揮,處理時間也會隨著任務(wù)數(shù)量增加而加大,但在相同條件下,E-LBI的處理時間更小。
圖5 E-LBI、DLB、RD的最大完成時間比較
在實驗中E-LBI、DLB、RD的負載均衡效果的標準差值對比圖如圖6所示:RD方法的標準差一直是最大的;DLB與E-LBI方法的標準差隨著時間的推移逐漸減少,其速度更快一些;E-LBI方法隨著時間的加長標準差減少比DLB更快。顯然,標準差值越小表示云平臺負載越均衡。
圖6 E-LBI、DLB、RD的負載均衡效果的標準差比較
在實驗中E-LBI、DLB、RD任務(wù)部署事件的失敗次數(shù)進行比較如圖7所示:RD方法和DLB方法隨著任務(wù)的增加,其部署任務(wù)失敗的次數(shù)越多,E-LBI相對增長緩慢一些。
圖7 任務(wù)部署事件失敗數(shù)量的比較
通過應(yīng)用E-LBI方法進行虛擬機的調(diào)度及任務(wù)部署,減少了任務(wù)部署失敗次數(shù),實現(xiàn)了更好的云平臺負載均衡效果,特別是在部署大規(guī)模而且連續(xù)任務(wù)請求時,它的表現(xiàn)更為優(yōu)秀,它提高了云平臺處理大數(shù)據(jù)的效率。
數(shù)據(jù)已成為當今社會的重要資源,為了更好更高效地處理大數(shù)據(jù),人們還在不斷地尋找新途徑和新方法。IAAS云計算平臺正在成為社會的基礎(chǔ)設(shè)施,是信息處理的基礎(chǔ),它提供了一個“按需分配”的計算、存儲、網(wǎng)絡(luò)資源池,為大數(shù)據(jù)處理提供強大的支持。云計算平臺和大數(shù)據(jù)處理都是一個復(fù)雜的大系統(tǒng),它們之間如何更好地結(jié)合,如何提高云計算平臺下大數(shù)據(jù)處理效率,本文只作了簡單的分析及優(yōu)化,并提出一種云計算平臺下啟迪式的感應(yīng)負載均衡方法E-LBI,下一步仍將繼續(xù)優(yōu)化完善。