曾 毅,馬琳娟,魚 明
(1.廣西大學行健文理學院 理工學部 計算機與信息工程系, 南寧 530005; 2.北京理工大學 計算機學院, 北京 100081; 3.石河子大學 經濟與管理學院, 新疆 石河子 832000)
伴隨著互聯網技術的快速發展,全球信息互通和共享已經逐步成為現實。社會大眾在日常工作和生活中,通過各種聯網設備進行辦公和娛樂,大大提高了工作的效率和生活的便利性。然而,隨著互聯網用戶數量的快速增加,網絡信息量急劇增長,意味著當前已經進入了大數據信息化時代。當用戶訪問服務器時,對于以往的服務器運行體系來說,用戶必須保持與數據中心服務器的連接并發送訪問資源的請求(占用資源)[1]。這種運作模式已經無法應對現階段復雜的場景需求,造成了服務器上計算資源的大量浪費。在上述背景下,云計算模式[2-3]應運而生。作為一種新興的商業計算模式,由Google提出的云計算在IT行業內引起了第三次變革浪潮。
不同于傳統的數據中心,云數據中心的規模和自動化程度更高,導致云數據中心的管理和維護需要解決更加復雜的問題[4]。如何有效地管理和維護云數據中心成為目前相關研究領域的熱點[5]。其中,大數據遷移是云服務器新老系統更替、配置修改和升級軟件的基礎。如果數據中心中某些節點出現負載異常,就需要執行動態遷移策略將數據流量遷移到其他服務器設備上,以分布式處理方式完成負載均衡,這直接影響著云計算服務的效率。可以看出,一個先進的動態數據遷移策略對于云計算服務來說十分重要[6]。
本文提出了一種基于群體智能算法的大數據遷移策略,解決了大數據遷移過程中的負載平衡和帶寬瓶頸問題。在基于云計算架構的大數據遷移技術基礎上,采用人工魚群優化算法來解決m個服務器之間n個數據遷移的最優解問題。此外,把量子比特引入到人工魚群算法中,以避免陷入局部最優并提高收斂速度。仿真結果表明,相比現有的遷移策略,本文算法更好地提升了云計算服務器的資源利用率,在一定程度上緩解了云數據中心的負載均衡和帶寬擁擠問題。
大數據遷移直接影響著云計算服務的效率,是近年研究的熱點。黃冬梅等[7]針對混合云存儲架構中的數據遷移問題,提出了基于海洋生命周期的混合云存儲中大數據遷移算法。在該遷移算法中,將海洋數據的敏感度、數據訪問頻率、數據大小、數據時間長度等因素作為遷移因子,兼顧考慮了數據存儲容量和數據訪問過程中的動態變化,能夠有效降低數據管理成本,同時保證數據的訪問速度。張晉芳等[8]分別針對云計算環境下大數據動態策略中的全局時間消耗、網絡訪問次數和全局負載均衡3個參數進行求解,在Cloudsim仿真平臺中取得了良好的全局負載均衡效果。
群體智能優化算法是指無智能的或具有簡單智能的個體通過協作發揮出群體智能優勢的優化算法,可在沒有集中控制且不提供全局模型的條件下為復雜分布式問題求解提供基礎[9-11]。由于具有并行性和分布式優勢,群體智能優化算法逐步成為各種復雜工程最優求解問題的一個重要研究方向。其中,人工魚群算法是一種基于模擬魚群行為的群體智能算法[12],主要利用魚的三大基本行為(覓食、聚群和追尾行為),采用自上而下的尋優模式,從構造個體的底層行為開始,通過魚群中各個體的局部尋優達到全局最優值在群體中凸顯出來的目的。因此,本文將人工魚群算法應用于多個服務器之間的負載尋求問題,通過設定合理目標函數進行全局搜索。此外,為了減少搜索時間,獲得更好的全局尋優能力,本文把量子比特引入到人工魚群算法中來完成最優求解。
人工魚群算法模擬了自然界中魚群往往能自行或尾隨其他魚找到營養物質豐富區域的行為,根據人工魚群的特點,構造人工魚模擬魚群的覓食、聚群和追尾行為,從而實現尋優的目的。人工魚群具有收斂速度快、模型簡單的優點,但存在優化精度不足的缺點。
通常情況下,云計算的體系結構如圖1所示。該架構中的大數據遷移涉及云平臺的負載均衡問題和帶寬利用率問題。作為本文研究的目標,數據遷移是一種將離線存儲與在線存儲融合的技術,其過程大致可以分為抽取、轉換、裝載3個步驟。基于云計算架構的大數據遷移問題能看作為m個服務器之間n個數據遷移的最優解問題。設Sum為n個待遷移數據大小的總和,T為數據需要的傳輸時間,兩者的計算方式分別為:
(1)
(2)
其中:Mij表示第i個服務器中的第j個待遷移數據。設η為該服務器的帶寬占用率,則

(3)
其中:a表示當前服務器上的數據變動參數,a∈[0,π]。

(4)


(5)


圖1 云計算的體系結構
云計算架構中基于人工魚群算法的大數據遷移原理如圖2所示,其中標準人工魚群算法的流程如圖3所示[13]。

圖2 基于人工魚群算法的大數據遷移原理

圖3 標準人工魚群算法的流程
為避免人工魚群算法陷入局部極值點或者產生徘徊從而降低收斂速度,本文引入量子比特對標準人工魚群算法進行改進。
采用量子比特[14]與人工魚群相結合的方式對其進行改進。設種群大小為n,其信息素用量子位P=(p1,p2,…,pn)表示。基于人工魚群三大基本行為的算法流程如下:


(6)
其中:Rand 表示一個取值范圍為(0,1)的隨機數;step 表示步長;dij表示人工魚的當前鄰域。
2) 聚群行為。設人工魚群中人工魚的dij內感知到的伙伴數目為nf且中心位置狀態為Pc。若Yc/nf<δYi,則說明該伙伴中心處具有豐富的食物且附近擁擠程度較低,那么朝著該伙伴中心位置方向移動一步;反之,跳轉到上一步覓食行為。其數學表達式為:

(7)
其中,δ表示擁擠度因子。
3) 追尾行為。設人工魚在當前的dij內感知到食物濃度最大狀態是Pmax,若Ymax/nf<δYj,說明Pmax狀態存在較大的食物濃度且其附近擁擠程度較低,則朝Pmax的方向移動一步;反之,跳轉到覓食行為。其數學表達式為:

(8)
4) 隨機行為。設人工魚此刻的狀態是Pi,在感知范圍Visual 內隨機挑選另外一個狀態Pj并朝著此方向前進一步。
通過公告板保存最優人工魚群個體的狀態。對于所有人工魚個體來說,在其尋優過程中每次執行結束都會將自身狀態和公告板上的狀態進行對比,若其狀態比公告板狀態更好,則替換公告板的狀態。對于要解決的大數據服務節點遷移尋優問題,按照式(4)對量子人工魚群當前的狀態進行評估,挑選并執行一個使種群接下來狀態為最優的行為。人工魚群中個體的量子行為更新方式為[14]:
(9)

本文采用開源的虛擬化服務的云計算仿真平臺Cloud Sim,對基于量子人工魚群算法大數據遷移進行了驗證分析。實驗硬件環境:Windows 7 操作系統,Intel(R) Core(TM) i5 CPU,4GB RAM,500G硬盤。實驗軟件環境: Eclipse8.5,Cloud Sim3.0.3。量子人工魚群算法的參數設置如表1所示。

表1 實驗參數設置
為進一步驗證量子人工魚群算法的性能,選擇文獻[15]中的實例,將蟻群算法[16]、標準人工魚群算法[15]和量子人工魚群算法進行對比,結果如表2所示。不同算法在已知最優解為295時的收斂速度如圖4所示。

表2 數值結果對比

圖4 不同算法的收斂速度對比
在實驗環境下根據帶寬占用率(%),將本文的量子人工魚群與隨機遷移策略、最優遷移策略[17]進行對比,對比結果如表3所示。可以看出,隨著帶寬的不斷提高,3種策略的服務能力會相應提高,即帶寬占用率會越來越低。從表3可以看出,在相同帶寬條件下,相比隨機策略和最優策略,基于量子人工魚群算法的遷移策略因為占用的帶寬更少,具有更好的帶寬利用率,從而可以讓云計算數據中心提供更多的服務。
設置10周的測試時間,在負載均衡方面對待遷移數據的目標位置選擇策略進行驗證分析,期間每2周采集1次數據。10周內3種算法的負載均衡的對比結果如圖5所示。可以看出,隨著測試時間的增加,3種遷移策略的負載均衡度均不斷降低。但是,在相同時間點時基于量子人工魚群算法的遷移策略具有最好的負載均衡效果,有效增加了云計算服務器集群中數據節點的資源利用率。

表3 帶寬占用率的對比結果

圖5 負載均衡的比較
綜上所述,基于量子人工魚群算法的云數據遷移策略是一種具有較好帶寬利用率和負載均衡效果的方法。
本文提出了一種基于群體智能算法的大數據遷移策略,有效解決了大數據遷移過程中的負載平衡和帶寬瓶頸問題。在基于云計算架構的大數據遷移技術基礎上,采用人工魚群優化算法來解決m個服務器之間n個數據遷移的最優解問題。此外,把量子比特引入人工魚群算法中,從而避免陷入局部最優并實現了快速收斂速度。仿真結果表明,相比現有的遷移策略,提出算法更好地提升了云計算服務器的資源利用率,在一定程度上緩解了云數據中心的負載均衡和帶寬擁擠問題。
本文將量子比特機制引入人工魚群算法中,在大數據的遷移問題中,過大的數據量將帶來大的計算負擔。未來將重點關注提高人工魚群收斂速度的研究,計劃通過分布式計算提高尋優速度,從而提高算法的實用性。