姜靜思
(武漢交通職業學院 湖北 武漢 430080)
作為一種以互聯網為基礎的新型計算方式,云計算最突出的特點就是其可以按照用戶的實際需求個性化地提供相應的資源[1]。這不僅為人們的生活和工作帶來了極大的便利,同時也衍生出了更加人性化的服務模式[2]。但是值得注意的是,在這一背景下,網絡數據信息的規模開始呈現出爆發式增長的趨勢,對相關存儲技術也提出了更高的要求[3]。現階段,大多數存儲都是建立在分布式網絡節點集群的基礎之上的,因此確保各節點負載均衡[4],實現對有限資源的有效管理成了數據存儲進一步研究的主要方向[5]。從宏觀角度分析,海量的數據信息規模也促使負載均衡策略成為數據存儲發展的必經之路[6]。
為此,本文提出考慮負載平衡的海量數據信息優化存儲方法,并通過試驗測試的方式分析了設計存儲方法在資源利用合理性以及存儲負載均衡性方面的價值。通過本文的研究,以期為數據信息存儲相關研究提供有價值的參考。
數據存儲是將待存儲的數據經過某一傳輸鏈路上各個節點的傳遞,將其發送至目標節點,這就意味著對應存儲鏈路的關鍵度越高[7],其可執行傳輸任務的總量越多[8]。為此,本文首先對存儲鏈路的關鍵度進行分析。首先,本文設置了一個無向連通參數G,利用其表示網絡存儲鏈路的關鍵度,則公式如下:
其中,V表示由存儲網絡中所有節點構成的集合,E表示由所有節點構成存儲鏈路的集合。需要注意的是,存儲環境中的每個節點都具有唯一的標識參數。
在此基礎上,在考慮負載平衡的前提下,對存儲的優化可以理解為是將存儲任務分配到具有最大負載空間的鏈路上[9]。對各個鏈路對應的傳輸效率進行分析,本文引入了平均期望負載參數,利用其反饋鏈路期望的最大傳輸流量,該值越高,則表明其傳輸效率越高,對應被選擇的概率也越高。具體的計算方式可以表示如下:
其中,AVE(l)表示存儲鏈路1的平均期望負載值,f(i,j)表示連通節點i和節點j的任意鏈路可負載的流量,n表示節點i和節點j之間鏈路數量。
需要注意的是,受實際運行情況的影響,存儲鏈路當前執行傳輸任務情況將直接影響其負載容量,因此,在對其實際負載情況進行分析時,需要充分考慮鏈路的當前負載,對應可執行傳輸流量可以表示為
其中,P(l)表示l鏈路的實際可執行傳輸流量負載,p(l)表示l鏈路當前執行傳輸流量負載。
以此為基礎,本文將P(l)作為關鍵度分析的基礎參數,P(l)值越高,則表明對應鏈路的關鍵度越高,相反地,P(l)值越低,則表明對應鏈路的關鍵度越低。
在確定存儲鏈路關鍵度的基礎上,本文采用蟻群算法實現對存儲的優化。其具體的執行方案見圖1。
按照圖1所示的方式,在獲取到各個傳輸鏈路的流量信息后,根據其當前執行傳輸流量負載情況,計算存儲網絡中鏈路的帶寬利用情況。當帶寬利用率較高時,表明該鏈路的負載也較大,此時利用蟻群算法,將帶寬利用率作為尋優參數。在蟻群算法具體的實施過程中,本文將存儲鏈路關鍵度作為蟻群尋優的距離,此時只需要計算出源節點到目的節點之間最短的路徑,得到的鏈路即為負載最小的傳輸路徑,將其作為數據存儲的鏈路,確保網絡負載均衡。為此,蟻群算法的具體步驟如下。
(1)對參數進行初始處理。
(2)螞蟻k(1,2,...,m) 根據鏈路上的信息素濃度,確定其選擇概率。其中,信息素濃度的計算方式可以表示為
其中,ρ表示信息素濃度,也就是鏈路的帶寬空閑率,λ表示鏈路節點的訪問熱度,Q表示鏈路的額定傳輸帶寬,a表示信息素對螞蟻的影響因子大小,cost(i,j)表示完成節點i和節點j之間數據傳輸所需的開銷。
通過式(1)可以看出,存儲路徑上信息素的存量與鏈路節點的訪問熱度直接相關。因此,在信息素濃度相同的條件下,螞蟻對信息素依賴程度會出現異常。
為此,本文在蟻群算法中引入了啟發因子,利用其反映路徑上存在的信息素對螞蟻選擇路徑時的相對重要性,其計算方式可以表示為
其中,h表示啟發因子,也就是節點i與節點j之間鏈路上信息素濃度對螞蟻的影響程度,c表示螞蟻對信息素依賴程度,L表示鏈路的長度,e表示對節點i與節點j之間鏈路喜好的程度次數,s表示節點i與節點j之間鏈路的擬合系數。
(3)在此基礎上,螞蟻根據鏈路上的信息素濃度完成對傳輸鏈路的選擇,直至存在ρ=ρmax,且h=bmax時,將對應的鏈路做出最終選擇,使得完成存儲的負載合理地分配到各個節點上,保證網絡的負載平衡。
(4)需要特別注意的是,由于存儲請求往往存在并發情況,可能會導致節點關鍵度信息在尋優過程中出現更新。因此本文在完成對目標鏈路的選擇后,制定了校驗機制,將當前時刻的存儲鏈路關鍵度參數與計算過程使用的存儲鏈路關鍵度參數進行比較。當二者相同時,則表明并發請求并未影響鏈路的關鍵度,可繼續執行蟻群算法的計算結果;當二者不同時,則表明并發請求對鏈路的關鍵度造成了影響,需要更新蟻群算法的參數信息,進行新一輪的尋優計算。由此確保存儲可以實現負載平衡。
在本文構建的測試環境中,共使用了6臺物理機進行測試優化信息存儲方法。對具體的設置情況進行布設時,將其中兩臺物理機作為搭建NFS服務的核心,其具體的作用是為存儲虛擬機提供配置信息(內存、CPU、硬盤等)。將另外4臺物理機作為部署XenServer環境的核心。在此基礎上,本文將所有XenServer 部署在同一個數據池中,通過這樣的方式使得所有物理機能夠共享相同的計算資源。不僅如此,在這樣的環境下,所有虛擬機也可以借助數據池的同源屬性,將任意一個物理機作為動態部署目標,此時物理機之間可以順利地執行虛擬機的遷移。具體的物理架構圖見圖2。
按照圖2所示的方式,完成對測試環境物理節點的設置。
在上述物理節點的基礎上,本文對測試環境中虛擬節點的設置是建立在XenServer服務基礎之上,并為其構建了動態機制。上文中已經提到,本文設置的物理機存在于同一數據池中,因此XenServer即使部署在特定物理機上,虛擬機也不會對特定的物理機產生依賴。在此基礎上,通過預先在虛擬節點上安裝Ubuntu Server以及對應Mongo DB存儲構架,使得虛擬機具備存儲功能。在對Mongo DB的節點進行具體劃分時,按照存儲節點和非存儲節點,設置了以輔助功能為基礎的配置節點和路由節點,對應的數量均為1個,存儲節點的數量為12個。在此基礎上,為每個虛擬節點配置了大小為5G的運行空間和大小為20G的存儲空間。
在上述基礎上,本文設計測試方法是通過調節存儲請求并發量,測試物理節點和虛擬節點的利用率。其中,前100 s存儲請求并發量由0勻速增長到100,100~150 s時間段內,并發數穩定在100狀態,并在結束時將并發請求數量降低至0。
利用黃永生[4]和閆娟雅[5]提出的方法同時進行存儲測試,對比3種方法的測試結果。其中,對于每個物理節點上資源的使用率,本文是通過采集其實時CPU、內存、帶寬的使用量與對應資源的實際總量進行計算的。對于虛擬節點上資源的使用率,本文同樣采用上述方法計算得出。
對比3種存儲方法下,物理節點和虛擬機節點的負載情況,分別見表1和表2。

表1 不同方法下物理節點利用率對比表

表2 不同方法下虛擬節點利用率對比表
從表1和表2中可以看出,對比3種數據存儲方法,雖然整體上物理節點和虛擬節點的利用率均呈現出隨著存儲請求并發量的增加逐漸上升的趨勢,但是具體的利用率存在明顯差異。其中,黃永生方法和閆娟雅方法物理節點對CPU、內存以及帶寬的利用率明顯低于本文方法,且虛擬節點利用率與物理節點利用率之間的變化關系并不一致;閆娟雅方法中,虛擬節點利用率的提升幅度明顯大于物理節點利用率的提升幅度,黃永生方法中,虛擬節點利用率的提升幅度明顯小于物理節點利用率的提升幅度。而相比之下,本文存儲方法下的物理節點和虛擬節點的利用率均明顯高于對比方法,且二者的發展是存在一定協調關系的。這表明本文提出方法可以保障對存儲過程的負載平衡。
為了進一步驗證分析結果,對平均訪問時間進行對比,其結果見圖3。
從圖3中可以看出,對比3種方法,黃永生方法和閆娟雅方法的平均訪問時間隨著并發存儲請求規模的增加,上升趨勢更加明顯,當并發存儲請求數量達到100時,其訪問時間分別達到了35.8 ms和33.6 ms。相比之下,本文方法下的訪問時間發展趨勢受并發存儲請求規模的影響較小,當并發存儲請求數量達到100時,其訪問時間僅為22.5 ms。這是因為本文提出方法實現了對存儲負載的均衡管理,避免了由于單一負載異常引起的訪問延時,大大提高了對請求的處理效率。
在云存儲需求不斷提高的時代背景下,提高存儲性能和對有限資源的利用率主要取決于分布式集群各節點負載的均衡情況。本文提出考慮負載平衡的海量數據信息優化存儲方法,實現了對物理機以及虛擬機資源的有效利用,大大縮短了存儲訪問時間。通過本文的研究,希望可以為信息時代下數據存儲工作的開展提供有價值的參考。