李明照, 王國勇
(洛陽理工學院 計算機與信息工程學院, 河南 洛陽 471023)
隨著網(wǎng)絡大數(shù)據(jù)等先進技術的快速發(fā)展,云計算領域?qū)υ瓶蚣艿姆€(wěn)定性要求越發(fā)嚴格.為了節(jié)省云計算成本,加強服務器本身的魯棒性,云框架穩(wěn)定性設計需求由此產(chǎn)生[1].云計算框架作為當今迅速崛起的一種前沿技術,其用群計算的方式將眾多單獨的計算機經(jīng)過高速局域網(wǎng)相連,提供更高計算效率[2].該技術在一定程度上將計算機與數(shù)據(jù)計算串聯(lián),由硬件支持轉(zhuǎn)變成軟件支持,同時擁有實時動態(tài)、自適應能力強的特征,優(yōu)秀的框架集成機制能夠更加完美地實現(xiàn)用戶要求[3].
自云計算框架被提出以來,該技術在云計算領域發(fā)展尤為迅速.云計算框架結合數(shù)據(jù)網(wǎng)絡,經(jīng)過匯總、改良以及管理資源等一系列方式滿足不同需求.云計算框架符合當下網(wǎng)絡條件時,該網(wǎng)絡數(shù)據(jù)的資源將可以隨意使用,并不會因條件而被制約,用戶可以在任意時間、地點來使用這項服務.但由于互聯(lián)網(wǎng)用戶的普遍性與數(shù)據(jù)分散性,導致當前云框架面臨的問題更加多樣化,如何有效地管制這些問題,是現(xiàn)在云框架研究領域需要解決的問題.
學者王毅敏[4]曾提出,根據(jù)SaaS平臺來構建云框架,經(jīng)過云計算用戶對環(huán)境的選擇完成設計.該框架在一定程度上能夠大幅度提升執(zhí)行指令的及時回應率,盡可能全面滿足用戶的基本要求,穩(wěn)定系數(shù)高,可靠性較為優(yōu)秀.但該框架在現(xiàn)實復雜數(shù)據(jù)計算中,存在效率低、網(wǎng)絡運行不流暢的問題.針對上述問題,本文提出了云計算網(wǎng)絡高彈性云構架設計方法,并對其可靠性進行分析.通過實驗證明,該云框架彈性高、數(shù)據(jù)流穩(wěn)定、信息準確豐富,具有優(yōu)質(zhì)的可靠性.
當前云計算框架下負載存在的主要問題是:通信服務器節(jié)點i在傳遞數(shù)據(jù)包的過程中,需要對比相鄰節(jié)點的約束值,選取最優(yōu)條件下的節(jié)點轉(zhuǎn)發(fā).一旦選取了最優(yōu)節(jié)點,完成了數(shù)據(jù)包的轉(zhuǎn)發(fā)任務,需要返回一個參數(shù)值,更新參數(shù)值與其他約束條件,以保證后面節(jié)點的信息傳遞更新.但是,由于不同位置的節(jié)點功能和處理能力不相同,節(jié)點承載的任務數(shù)量不能處于平衡狀態(tài),一旦發(fā)生負載不均衡,會造成網(wǎng)絡擁塞,導致所有的候選節(jié)點發(fā)送失敗,進而造成轉(zhuǎn)發(fā)節(jié)點選擇失敗.
設云框架下的節(jié)點i∈S,并設定約束Q值.若節(jié)點i轉(zhuǎn)發(fā)信息成功,其反饋計算表達式為
(1)
式中:D(i,k)為兩個節(jié)點間的距離;e(i,k)為轉(zhuǎn)發(fā)過程的能量開銷;a為節(jié)點覆蓋率;b為能量效率.在云計算框架下,通信成功會有反饋;通信失敗,則會得到一個反饋(懲罰),約束值更新為
Qt+1(i)=(1-λ)Qt(i)+λw(i)
(2)
式中,λ為學習速率,用來控制Q值的迭代刷新速度.約束值更新后,得到云框架下?lián)砣?jié)點選擇示意圖如圖1所示.
云框架下通信節(jié)點i通過約束Q值轉(zhuǎn)發(fā)信息,將數(shù)據(jù)包傳遞給目標節(jié)點T,完成數(shù)據(jù)處理.當數(shù)據(jù)包來到傳遞路徑上的節(jié)點2時,節(jié)點2有2—3和2—5兩種路徑可供選擇,在節(jié)點2中Q值最大的鄰居節(jié)點為節(jié)點3,因此數(shù)據(jù)包被發(fā)往節(jié)點3.以此類推,但節(jié)點3承載的任務數(shù)量過多,導致節(jié)點3所在區(qū)域發(fā)生了擁塞,造成了數(shù)據(jù)包在節(jié)點3發(fā)送延時增大,到達節(jié)點4的時間增加.網(wǎng)絡阻塞的情況越嚴重,延時次數(shù)越多,Q值將越小.一旦約束值過小,會發(fā)生完全擁塞,甚至造成網(wǎng)絡癱瘓,數(shù)據(jù)包直接丟失,云框架可靠性下降.
圖1 云框架擁塞節(jié)點選擇Fig.1 Node selection under congestion of cloud framework
云框架由并行計算、分散式計算以及網(wǎng)格計算組成,其中也包含了各項基礎設施,即是相關服務.服務包括平臺服務以及軟件服務,同時擁有更加明顯的7項特點:靈活性、單獨性、緊急性、分享性、可擴性、安全性及持續(xù)性.結合這些特點,框架可以基于用戶的要求來做出預期指令,良好的框架設計可完全避開忙碌期間而造成的服務器高負荷運轉(zhuǎn)階段,使云計算可靠性得到提升.
云框架彈性是指數(shù)據(jù)發(fā)送需求的彈性區(qū)間,具體表示數(shù)據(jù)量變動造成節(jié)點負載變動的可能性,即是一個通信需求量針對節(jié)點改變的自適應程度[5],計算表達式為
(3)
式中:ΔJ/J為通信數(shù)據(jù)需求量的變化率;ΔP/P為節(jié)點負載變動率.數(shù)據(jù)量和節(jié)點負載的變動比例完全相向,所以彈性系數(shù)為正值.云框架下的彈性需求及影響條件如表1所示.
在實際應用中,通信效果越好,則節(jié)點負載就會越高,進而將會造成擁塞.任意一條路徑資源需求量越高,局部網(wǎng)絡負載就會越重,可能導致網(wǎng)絡故障等問題.
表1 云框架下的彈性需求及影響條件Tab.1 Elastic requirements and influence conditions under cloud framework
蟻群算法是一種高智能算法,經(jīng)過改良優(yōu)化后可演化為深度學習算法[6-7].本文使用該算法計算云框架下服務器的數(shù)據(jù)最優(yōu)傳遞路徑,選取最優(yōu)節(jié)點,并確定其可行性.
設m為蟻群數(shù)量,dij(i,j=1,2,…,n)為相鄰路徑節(jié)點i和j的間距,則在t時刻,螞蟻k由i到j的概率為
(4)
式中:τij(t)為節(jié)點間路徑的信息素濃度;ηij為啟發(fā)因子,代表螞蟻從i到j的預計效果深淺,一般取ηij=1/dij;α為路徑上信息量的權重系數(shù)[8];β為啟發(fā)因子權重系數(shù)[9];Ak為螞蟻k目前可以經(jīng)過的點.
n個時間段后,螞蟻走過每一個路徑節(jié)點,完成一次路徑循環(huán).每只螞蟻路過的點,就是一個相對應的解.針對每一條路徑上的信息作出更新處理,即
τij(t+n)=(1-y)τij(t)+Δτij
(5)
式中,y∈(0,1)為信息量τij(t)隨時間變化產(chǎn)生的老化程度.
由于現(xiàn)有云框架下節(jié)點搜索容易陷入局部最優(yōu)解[10],無法找到全局最優(yōu)解,且最優(yōu)節(jié)點上用戶數(shù)量巨大,負載過重,可能導致?lián)砣?為減少該現(xiàn)象發(fā)生,在確定云框架彈性后,可將約束條件進行相關處理.
首先,假設最初通信成本為V0,如果該條件成立,則收益為W=MV0,其中,M為云框架下用戶數(shù)量.其次,設置好每個服務器之間的距離,dij能夠代表服務方的資源消耗與用戶的需求喜好,距離越長,消耗的云資源越多,同等用戶對該系統(tǒng)的需求越高.
為了能夠提升整體框架的運用率,降低網(wǎng)絡風險,本文根據(jù)均衡優(yōu)化算法再次做出改良:在選取下一個服務器的同時,需要在彈性約束下,考慮距離與負載的問題,式(4)進一步約束為
(6)
為了驗證設計云框架的可靠性,進行了相關模擬實驗.首先構建設計了基于蟻群算法和彈性約束的云框架結構,以節(jié)點i的數(shù)據(jù)傳輸為例,其傳輸路徑如圖2所示.
圖2 云框架數(shù)據(jù)傳輸示意圖Fig.2 Schematic diagram of data transmission under cloud framework
根據(jù)圖2可以看出,采用蟻群算法計算得出節(jié)點i的傳輸路徑共有兩條,分別為i—1—2—3—4—T和i—1—2—5—6—7—T.第1條路徑距離較短,傳輸時間較快,但是此時節(jié)點3、4的負載過高.此時需要引入彈性約束,在考慮距離的基礎上引入節(jié)點負載能力作為約束參量,在兩種參量的約束下,選取全局最優(yōu)解,此時節(jié)點i將選擇第2條路徑來傳輸數(shù)據(jù),避免了網(wǎng)絡擁塞.
為進一步驗證圖2所示云框架的負載均衡特性,在云計算虛擬機數(shù)據(jù)庫中選取10 GB數(shù)據(jù)組成網(wǎng)絡結構,該網(wǎng)絡結構圖節(jié)點負載情況如圖3所示.
采用文獻[4]方法作為實驗對比方法,分別測試云構架設計前后的節(jié)點負載情況,獲得負載調(diào)度響應時間對比結果如圖4所示.
分析對比圖4可以發(fā)現(xiàn),優(yōu)化前的節(jié)點負載調(diào)度響應時間最慢,在數(shù)據(jù)量為10 GB時的調(diào)度響應時間為60 s;采用文獻[4]方法對節(jié)點負載調(diào)度優(yōu)化后,在數(shù)據(jù)量為10 GB時的調(diào)度響應時間為24 s;而采用所提方法優(yōu)化后的調(diào)度響應時間為5 s.由此可見,所提方法能在最短時間內(nèi)完成節(jié)點調(diào)度,基本實現(xiàn)云框架全局的負載均衡.
圖3 網(wǎng)絡結構節(jié)點負載示意圖Fig.3 Schematic diagram of node load in network structure
圖4 云框架用戶負載響應時間圖Fig.4 Load response time diagram of users under cloud framework
假設云框架下各種服務器計算節(jié)點必須合理部署,本文采用國際通用的Voronoi劃分方法[11]對圖3所示的云框架節(jié)點進行劃分,將其放在指定坐標系中,測試200 mm×200 mm空間范圍內(nèi)10 GB數(shù)據(jù)的節(jié)點覆蓋率,得到Voronoi劃分結果如圖5所示.
在圖5云框架節(jié)點位置分布基礎上,對比測試文獻[4]及本文算法節(jié)點負載情況,得到節(jié)點負載分布圖如圖6所示.比較圖6可知,采用文獻[4]方法優(yōu)化后的云框架節(jié)點分布擁擠,節(jié)點超負載;而本文設計的云框架節(jié)點分布明顯比優(yōu)化前稀疏,且節(jié)點分布均勻,節(jié)點覆蓋率高,沒有明顯的多重覆蓋區(qū)域.
針對云計算網(wǎng)絡節(jié)點負載不均衡問題,設計了一種高彈性云構架,并引入蟻群算法和彈性需求作為理論依據(jù).同時,為了避免節(jié)點選擇陷入局部最優(yōu)解,運用需求彈性理論,引入彈性約束因子,動態(tài)改變信息濃度,使算法收斂到全局最優(yōu),從而使云框架達到負載均衡.通過實驗對比可知,優(yōu)化后的云構架能夠選擇最優(yōu)傳輸路徑,節(jié)點超負載狀況得到了明顯改善,節(jié)點覆蓋率高.說明設計的云構架具有優(yōu)質(zhì)的平臺可行性和運行彈性,在有效控制能量消耗的同時,還能延長網(wǎng)絡穩(wěn)定時間.
圖5 云框架下的節(jié)點Voronoi劃分圖Fig.5 Voronoi partition diagram of nodes under cloud framework
圖6 云框架下節(jié)點負載分布對比圖Fig.6 Comparison of node load distribution under cloud framework