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