袁兆祥,彭 晶,安增軍,張 華
(1.國網(wǎng)經(jīng)濟(jì)技術(shù)研究院有限公司,北京 102209;2.江西博微新技術(shù)有限公司 項目中心,南昌 330096;3.國網(wǎng)江蘇省電力有限公司經(jīng)濟(jì)技術(shù)研究院 設(shè)計中心,南京 210024)
隨著電網(wǎng)建設(shè)的飛速發(fā)展和特高壓電網(wǎng)工程項目的啟動,我國電力工程建設(shè)已進(jìn)入新的階段.輸變電工程建設(shè)所需的計算機(jī)和網(wǎng)絡(luò)設(shè)備已基本健全,但信息和數(shù)據(jù)管理系統(tǒng)仍比較欠缺[1].如何提高電力工程數(shù)據(jù)管理的質(zhì)量和效率,實現(xiàn)電力工程的信息化管理已成為電力公司的工作重點(diǎn)[2-4].
輸變電工程主要含有工程地理信息、三維設(shè)計模型和文檔資料三類數(shù)據(jù)[5-6].根據(jù)這些數(shù)據(jù)的存儲方式可以將其分為結(jié)構(gòu)化數(shù)據(jù)[6]和非結(jié)構(gòu)化數(shù)據(jù)兩種類型[7].其中,結(jié)構(gòu)化數(shù)據(jù)包括行數(shù)據(jù)、二維表結(jié)構(gòu)數(shù)據(jù),通常采用行存儲和列存儲兩種方式[8];而非結(jié)構(gòu)化數(shù)據(jù)包括文本、視頻、圖像、數(shù)學(xué)模型等[9],此類數(shù)據(jù)通常具有多樣化的媒體形式,需要更大的存儲容量[10].平均每個輸變電工程包含500 MBit結(jié)構(gòu)化數(shù)據(jù)和50 GBit非結(jié)構(gòu)化數(shù)據(jù),而一個省電力公司需要處理超過50 TBit的結(jié)構(gòu)化數(shù)據(jù)和2.5 PBit的非結(jié)構(gòu)化數(shù)據(jù)[11].實現(xiàn)這些大規(guī)模數(shù)據(jù)的高效存儲,對于縮短項目建設(shè)時間、降低工程項目的成本、提高建設(shè)質(zhì)量和降低項目實施風(fēng)險均具有重要意義[12].
目前,主要采用集中式和完全分布式的方式存儲、處理海量數(shù)據(jù).其中,集中式處理方式使用ETL及網(wǎng)關(guān),將采集的數(shù)據(jù)發(fā)送給數(shù)據(jù)中心和數(shù)據(jù)存儲器,并根據(jù)不同的應(yīng)用場景和業(yè)務(wù)需求從海量數(shù)據(jù)中挖掘出所需的信息,該種方式廣泛應(yīng)用于銀行潛在客戶分析和貸款風(fēng)險評估中[13];完全分布式處理方式將數(shù)據(jù)以訂閱的方式推送給服務(wù)器,故不需要集中存儲,具有系統(tǒng)結(jié)構(gòu)簡單、實時特性好的優(yōu)點(diǎn),且數(shù)據(jù)存在時效性,被廣泛應(yīng)用于現(xiàn)場總線系統(tǒng)中[14].
基于以上分析,本文提出一種基于層級設(shè)計的輸變電工程數(shù)據(jù)存儲架構(gòu).該存儲方法根據(jù)結(jié)構(gòu)化數(shù)據(jù)和非結(jié)構(gòu)化數(shù)據(jù)的特點(diǎn)分別存儲,有助于優(yōu)化配置存儲資源;同時,提出了一種基于遺傳算法的數(shù)據(jù)遷移方法,以解決數(shù)據(jù)遷移導(dǎo)致的網(wǎng)絡(luò)訪問次數(shù)增加、負(fù)載不均衡和時間消耗大的問題.
本文將輸變電工程數(shù)據(jù)劃分為結(jié)構(gòu)化數(shù)據(jù)和非結(jié)構(gòu)化數(shù)據(jù)兩種,并根據(jù)其特點(diǎn)分別使用不同的存儲方式.表1為輸變電工程所包含的數(shù)據(jù)類型及其劃分結(jié)果.
表1 輸變電工程數(shù)據(jù)劃分Tab.1 Data division for power transmission and transformation engineering
由于結(jié)構(gòu)化數(shù)據(jù)只需要考慮是否能容納的問題,使用傳統(tǒng)的關(guān)系型數(shù)據(jù)庫即可方便地對數(shù)據(jù)進(jìn)行增加、刪除和修改等操作,因此,本文直接使用MySQL關(guān)系型數(shù)據(jù)庫存儲結(jié)構(gòu)化數(shù)據(jù).然而,非結(jié)構(gòu)化數(shù)據(jù)通常占用較大的存儲空間,對關(guān)系型數(shù)據(jù)庫造成較大的存儲壓力,并會降低數(shù)據(jù)庫的I/O性能,所以,本文使用虛擬機(jī)集群存儲系統(tǒng)存儲這些數(shù)據(jù).
為了保證非結(jié)構(gòu)化數(shù)據(jù)存取業(yè)務(wù)的擴(kuò)展性、可用性和可靠性,本文使用ThinLUN按需分配技術(shù)來提高存儲系統(tǒng)的擴(kuò)展性與利用率.該種分配技術(shù)只需較少的初期投入,并可以根據(jù)用戶需求的增長不斷擴(kuò)展存儲空間.ThinLUN使用寫時空間分配存儲空間,使用讀寫重定向技術(shù)進(jìn)行數(shù)據(jù)讀寫,從而實現(xiàn)空間的按需分配.其中,寫時空間分配技術(shù)即在I/O口發(fā)送寫請求時觸發(fā)存儲池的空間分配,而其他位置在用時再分配,分配流程如圖1所示.讀寫重定向技術(shù)即在讀寫操作時根據(jù)映射表進(jìn)行重定向,流程圖如圖2所示.具體操作為:
1)寫操作:收到寫請求后先查看映射表,若已記錄目標(biāo)的物理地址,則重新定向到該地址進(jìn)行覆蓋寫;否則,分配新的物理地址并進(jìn)行寫操作和記錄映射表.
2)讀操作:收到讀請求后先查看映射表,訪問映射表中存儲的物理地址進(jìn)行讀操作.
為了保證存儲系統(tǒng)不因自然或人為因素導(dǎo)致業(yè)務(wù)中斷和數(shù)據(jù)丟失,本文建立了災(zāi)難備份機(jī)制與容災(zāi)機(jī)制來保證系統(tǒng)在遭受不可抗力破壞時能確保業(yè)務(wù)不中斷及數(shù)據(jù)不丟失.
災(zāi)難備份機(jī)制實現(xiàn)輸變電工程數(shù)據(jù)到災(zāi)備系統(tǒng)的復(fù)制,并在災(zāi)難發(fā)生時保證數(shù)據(jù)的回傳;容災(zāi)機(jī)制能保證災(zāi)難發(fā)生后數(shù)據(jù)的遠(yuǎn)程備份,保證原有數(shù)據(jù)不遭到破壞或丟失.
圖1 寫時空間分配流程Fig.1 Space allocation process in writing time
圖2 讀寫重定向流程Fig.2 Reading and writing redirection process
為了避免出現(xiàn)輸變電工程數(shù)據(jù)存儲系統(tǒng)中,某一個數(shù)據(jù)存儲服務(wù)器被過度訪問導(dǎo)致負(fù)載過高的問題,本文基于遺傳算法提出了一種適用于輸變電工程數(shù)據(jù)存儲架構(gòu)的數(shù)據(jù)遷移方法,有效解決數(shù)據(jù)遷移導(dǎo)致的網(wǎng)絡(luò)訪問次數(shù)增加、負(fù)載不均衡和時間消耗大的問題.首先建立數(shù)據(jù)遷移中各優(yōu)化目標(biāo)的數(shù)學(xué)模型,然后使用遺傳算法求取最優(yōu)解.
2.1.1 訪問次數(shù)
數(shù)據(jù)遷移過程中產(chǎn)生了B次訪問,則其訪問次數(shù)需滿足
(1)
式中,bi為n/T時間段內(nèi)訪問次數(shù),T為總的訪問時間.
2.1.2 負(fù)載和過載指數(shù)建模
在數(shù)據(jù)遷移過程中,系統(tǒng)會優(yōu)先從負(fù)載較高的數(shù)據(jù)中心中選擇數(shù)據(jù)作為源數(shù)據(jù),因此,需要考慮每個數(shù)據(jù)中心的負(fù)載能力和實際負(fù)載等信息.設(shè)數(shù)據(jù)中心的當(dāng)前負(fù)載為fz、負(fù)載上限為fzh、負(fù)載下限為fzl,則數(shù)據(jù)中心dci的負(fù)載能力為fz(dci,t).
為了保證各數(shù)據(jù)中心處于理想負(fù)載區(qū)間,本文將負(fù)載最輕的前20%數(shù)據(jù)中心作為目標(biāo)數(shù)據(jù)中心,即:fzl
(2)
式中:cout為遷移出的數(shù)據(jù)塊負(fù)載;di為移動數(shù)據(jù).
2.1.3 傳輸時間建模
假設(shè)源數(shù)據(jù)中心為dci、目標(biāo)數(shù)據(jù)中心為dcj,將數(shù)據(jù)di從dci傳輸?shù)絛cj的時間為T′(d,dci,dcj),則有
T′(di,dci,dcj)=ds/v(dci,dcj)+Cij
(3)
式中:ds為數(shù)據(jù)塊的大小;v(dci,dcj)為數(shù)據(jù)傳輸率;Cij為數(shù)據(jù)遷移過程中發(fā)送請求、建立連接和斷開連接的耗時.
2.1.4 優(yōu)化目標(biāo)
數(shù)據(jù)遷移的目標(biāo)是減小網(wǎng)絡(luò)訪問次數(shù)、時間及負(fù)載不均衡現(xiàn)象,在最短的時間內(nèi)響應(yīng)系統(tǒng)的請求.因此,本文建立的目標(biāo)函數(shù)式為
t=αT′+βfz+γB
(4)
由于系統(tǒng)響應(yīng)時間過長會嚴(yán)重影響數(shù)據(jù)遷移過程,故本文取α為0.6,即使用遺傳算法優(yōu)先選擇耗時較少的遷移方案;遷移數(shù)據(jù)的不均衡度也會影響整個系統(tǒng)的負(fù)載,所以設(shè)置β為0.1,并優(yōu)先選擇負(fù)載最輕的前20%數(shù)據(jù)中心作為目標(biāo)數(shù)據(jù)中心;當(dāng)數(shù)據(jù)被分為多塊時,會增加網(wǎng)絡(luò)訪問的次數(shù),造成較大的時間損耗,故設(shè)置γ為0.3.
本文使用遺傳算法[15-16]求解優(yōu)化目標(biāo)t最小的數(shù)據(jù)布局方案.遺傳算法結(jié)合生物進(jìn)化的規(guī)律,選擇較優(yōu)秀的個體,而淘汰較差的個體,使得種群向更好的方向發(fā)展.本文選取式(4)作為目標(biāo)函數(shù),設(shè)計的基于遺傳算法的數(shù)據(jù)遷移方案優(yōu)化算法如下:
1)對數(shù)據(jù)中心進(jìn)行二進(jìn)制編碼.
2)初始化種群大小N,基因大小g,最大迭代代數(shù)G.
3)迭代N次,隨機(jī)生成N個遷移方案Si,當(dāng)Si∩Sj≠R時,計算目標(biāo)函數(shù)t.
4)對Si進(jìn)行變換操作.
5)將Si添加到較優(yōu)方案解集R中.
6)初始化當(dāng)前種群為0.
7)使用隨機(jī)法計算R中每種解被選中的概率,如果0.6 8)將S′i和S″i加入到R中. 9)計算新基因的適應(yīng)度函數(shù)值. 10)根據(jù)適應(yīng)度函數(shù)值得到最優(yōu)的遷移方案R. 本文將存儲器和服務(wù)器構(gòu)成一個標(biāo)準(zhǔn)存儲單元,為每臺服務(wù)器分配128 GB內(nèi)存,2顆8核CPU和1 TB硬盤,并使用虛擬機(jī)構(gòu)建不同數(shù)量的數(shù)據(jù)存儲中心進(jìn)行仿真測試. 本文為每個數(shù)據(jù)中心隨機(jī)分配不同數(shù)量的結(jié)構(gòu)化數(shù)據(jù)和非結(jié)構(gòu)化數(shù)據(jù),表2所示為本文試驗中數(shù)據(jù)存儲中心使用到的10組不同的配置參數(shù).表2中數(shù)據(jù)集數(shù)量越大,表明處理的數(shù)據(jù)量越大,存儲中心越多,表明系統(tǒng)使用了更多的分布式數(shù)據(jù)存儲中心.首先比較了數(shù)據(jù)遷移前后,存儲系統(tǒng)執(zhí)行同一任務(wù)所需的時間,結(jié)果如圖3所示.從圖3中可以看出,隨著任務(wù)數(shù)量的增加,數(shù)據(jù)遷移前后所需的執(zhí)行時間均有明顯上升,但遷移后所花費(fèi)的時間要明顯少于遷移前的.結(jié)果表明,執(zhí)行數(shù)據(jù)遷移能明顯提升輸變電工程數(shù)據(jù)存儲系統(tǒng)的性能. 比較寫入不同數(shù)據(jù)量的結(jié)構(gòu)化數(shù)據(jù)和非結(jié)構(gòu)化數(shù)據(jù)時,數(shù)據(jù)傳輸所需時間與總時間之比的變化情況,結(jié)果如圖4所示.其中總時間包括數(shù)據(jù)傳輸時間和數(shù)據(jù)處理時間,由于使用了相同的數(shù)據(jù)處理方式,故占用的時間相等,因此本文僅比較數(shù)據(jù)傳輸時間.從圖4中可以看出,隨著數(shù)據(jù)量的增加,結(jié)構(gòu)化數(shù)據(jù)和非結(jié)構(gòu)化數(shù)據(jù)的傳輸用時占比不會隨著數(shù)據(jù)量呈比例增加;但隨著數(shù)據(jù)量的增加,結(jié)構(gòu)化數(shù)據(jù)的用時占比明顯比非結(jié)構(gòu)化數(shù)據(jù)的用時占比少. 表2 存儲中心配置參數(shù)Tab.2 Configuration parameters for storage centers 圖3 數(shù)據(jù)遷移前后執(zhí)行相同任務(wù)所需時間比較Fig.3 Comparison of time required for same task operation before and after data migration 圖4 不同數(shù)據(jù)傳輸時間對比Fig.4 Comparison of transmission time for different data 本文提出了一種基于層級設(shè)計的輸變電工程數(shù)據(jù)存儲架構(gòu),根據(jù)結(jié)構(gòu)化數(shù)據(jù)和非結(jié)構(gòu)化數(shù)據(jù)的特點(diǎn)分別處理輸變電工程數(shù)據(jù).使用不同的存儲架構(gòu)能有效提升數(shù)據(jù)的存儲效率,并節(jié)約存儲空間.而使用基于遺傳算法的數(shù)據(jù)遷移方法實現(xiàn)海量數(shù)據(jù)的遷移,可以有效解決數(shù)據(jù)存儲服務(wù)器被過度訪問導(dǎo)致網(wǎng)絡(luò)訪問次數(shù)增加、負(fù)載不均衡和時間消耗大的問題.仿真與測試結(jié)果表明,所提出的存儲架構(gòu)與數(shù)據(jù)遷移方法能有效解決海量輸變電工程數(shù)據(jù)存儲的問題,并提升輸變電工程數(shù)據(jù)存儲系統(tǒng)的性能.3 仿真與分析
4 結(jié) 論