徐古用 王慧瓊 廖曉春
摘要
智能變電站的網(wǎng)絡(luò)報文具有持續(xù)和海量的特點,相應(yīng)的分析處理裝置必須處在不間斷分析處理模式下,網(wǎng)絡(luò)報文的在線存儲流量極大,因此對存儲功能要求極其苛刻,在目前的技術(shù)條件下,這種海量數(shù)據(jù)的存儲介質(zhì)必須依賴于硬盤。針對這種情況,本文提出了硬盤分片和隨機存儲的儲存方法,并建立了與之匹配的算法設(shè)計及處理流程,避開了硬盤文件系統(tǒng)的不穩(wěn)定性和不確定性,實現(xiàn)了簡單、穩(wěn)定、堅固的直接讀寫硬盤存儲方案,提升了網(wǎng)絡(luò)報文分析裝置的可靠性。
【關(guān)鍵詞】智能變電站 網(wǎng)絡(luò)報文 海量數(shù)據(jù)裸盤存儲 冗余存儲
智能變電站是完全構(gòu)建在網(wǎng)絡(luò)傳輸和通信控制層面、可控、可測和可監(jiān)視的新一代技術(shù)體系,是智能電網(wǎng)的核心組成,也是支撐智慧城市發(fā)展的支柱,其特點是用網(wǎng)絡(luò)連接取代傳統(tǒng)接線方式,這決定了的網(wǎng)絡(luò)報文儲存處理及設(shè)備研制對智能變電站穩(wěn)定運行和可靠監(jiān)視的關(guān)鍵作用。此外,智能變電站采樣“三層兩網(wǎng)”的多源異構(gòu)報文發(fā)送模式,對數(shù)字標簽和時鐘同步要求較高,因此存儲介質(zhì)的信息傳遞、數(shù)據(jù)吞吐效率和存儲邏輯設(shè)計要求極高。以一座標準220kV智能變電站為例,正常情況下每天產(chǎn)生的網(wǎng)絡(luò)報文在5GB以上,異常情況下則輕易可達80GB,按目前的儲存技術(shù)水平,如此海量的網(wǎng)絡(luò)報文的存儲不得不依賴傳統(tǒng)的機械旋轉(zhuǎn)硬盤,也因此產(chǎn)生如下問題:
(1)機械硬盤屬于旋轉(zhuǎn)部件,不間斷運行將考驗生命周期及運行可靠性;
(2)海量數(shù)據(jù)的硬盤儲存吞吐率問題;
(3)傳統(tǒng)控制硬盤的隨機讀寫導(dǎo)致硬盤同一空間反復(fù)使用的易損問題;
(4)海量信息后期檢索的精準定位問題。
隨著南方電網(wǎng)繼保智能化戰(zhàn)略的實踐,2018年為智能變電站推廣元年,網(wǎng)絡(luò)報文的儲存也被空前高度的提上日程,優(yōu)先解決網(wǎng)絡(luò)報文儲存問題將全面支撐電網(wǎng)安全、精益管理和高效運維,實現(xiàn)專業(yè)管理、現(xiàn)場作業(yè)、班組運維、監(jiān)視控制及調(diào)度指揮全方位智能化,覆蓋調(diào)試、運行、檢修、改擴建和設(shè)備退役等整個時間維度周期,因此具有十分很重要的意義。
1基于裸盤儲存的空間結(jié)構(gòu)設(shè)計
智能變電站的網(wǎng)絡(luò)報文是7x24小時產(chǎn)生,因此變電站內(nèi)相應(yīng)的分析處理裝置必須處在不間斷運行的模式下。此外,網(wǎng)絡(luò)報文的在線存儲流量極大,而存儲功能要求相對簡單。在目前的技術(shù)條件下,這種海量數(shù)據(jù)的存儲介質(zhì)不得不依賴于硬盤。與傳統(tǒng)依賴操作系統(tǒng)控制硬盤的儲存方法不同,本文涉及的儲存方法適用于嵌入式系統(tǒng),以裸盤的方式對硬盤進行儲存控制。
將硬盤劃定為多個數(shù)據(jù)塊BLOCK,并按照數(shù)據(jù)進行排序,如BLOCK1、BLOCK2…,每個數(shù)據(jù)快BLOCK中包含很多個文件塊FM,將其記錄為F Ml、F M2--,并且為每個數(shù)據(jù)塊以及文件塊順序重新進行序號的羅列,比如O、1、2、3…。如圖1所示。
數(shù)據(jù)塊的功能劃定的步驟中,各個的數(shù)據(jù)塊所已經(jīng)選定的編號為O的數(shù)據(jù)塊為元數(shù)據(jù)塊,用于封裝文件塊的元數(shù)據(jù),剩余的數(shù)據(jù)庫主要是存儲文件快中的網(wǎng)絡(luò)報文數(shù)據(jù),以期利用的功能的數(shù)據(jù)塊的核心為數(shù)據(jù)塊的劃定,借此實施元數(shù)據(jù)與網(wǎng)絡(luò)報文數(shù)據(jù)的分開存儲,而且重點是需要記載元數(shù)據(jù)的地理位置,能夠利用元數(shù)據(jù)的搜索獲得對文件的塊的額第一時間獲知。
對網(wǎng)絡(luò)報文以及自身的屬性為劃分的依據(jù)的是流量的發(fā)展規(guī)律進行不同種類的報文數(shù)據(jù)的占取空間的范圍。并依據(jù)其類型進行網(wǎng)絡(luò)配文數(shù)據(jù)的分配與其占用空間相匹配的數(shù)據(jù)塊數(shù)目;可以對網(wǎng)絡(luò)報文的類型分別儲存和記載,這樣,在后續(xù)的檢索過程中,能夠按照網(wǎng)絡(luò)報文的不同類型繼而有組織、有規(guī)律存儲,而且是在后面的檢索過程中能夠針對性的實施檢索。而且依據(jù)其存儲不同種類的數(shù)據(jù)塊,也可以降低后續(xù)檢索的過程中的檢查時間以及網(wǎng)絡(luò)訪問銀盤的數(shù)據(jù)的指數(shù),針對其內(nèi)容數(shù)量較少的網(wǎng)絡(luò)報文此效率尤為明顯。
另外,依據(jù)的不同種類的網(wǎng)絡(luò)報文特性進行分配數(shù)據(jù)塊,以此針對擁有較多的流量的網(wǎng)絡(luò)報文分派大空間的報文數(shù)據(jù)塊,于此對與小流量的網(wǎng)絡(luò)報文則分派少量空間的的報文數(shù)據(jù)塊,例如,在SV網(wǎng)絡(luò)報文中需要分派到大范圍的報文數(shù)據(jù)塊,相應(yīng)的,PTP的網(wǎng)絡(luò)報文分派的小的報文數(shù)據(jù)塊,以此合理的實施了對于存儲空間使用率,因地制宜,均衡使用硬盤,避免了硬盤的磁道以及硬盤的扇區(qū)高強度的摩擦與讀寫。而且,修補磁道以及扇區(qū)的空閑致使的硬盤數(shù)據(jù)的損壞不可用情況,便于整體的硬盤系統(tǒng)協(xié)調(diào)和穩(wěn)定。
上述設(shè)計的硬盤劃分中,其所設(shè)定的數(shù)據(jù)塊基本容量為1GB為基本單位,各數(shù)據(jù)塊的容量劃分不等,通過將報文數(shù)據(jù)塊的容量劃分的大小不等,同樣方便了為不同類型的網(wǎng)絡(luò)報文分配空間的均衡,減少了因為分成均等的容量數(shù)據(jù)塊中的各個數(shù)據(jù)塊的所承載、分配的文件快數(shù)量龐大的問題,這會造成資源浪費,如果因為各個存儲塊的分配的范圍小,難免會使得一些占用的存儲空間大量的網(wǎng)絡(luò)報文承載大,存儲數(shù)量過多,增加了搜索過程中時間耗費的行為。
將硬盤劃定為數(shù)據(jù)塊、文件塊,并將它們按照不同屬性、類型進行網(wǎng)絡(luò)報文以及不同文件塊的信息的存儲以及設(shè)置,形成固定類型網(wǎng)絡(luò)報文占取預(yù)設(shè)配額的報文數(shù)據(jù)塊,借此實現(xiàn)了獨立的存儲結(jié)構(gòu)。采用這種的獨立性的結(jié)構(gòu)文件存儲設(shè)計,如果智能變電站因為某一特殊網(wǎng)絡(luò)差生事故,結(jié)果也就是將此種特定的類型的網(wǎng)絡(luò)報文的存儲數(shù)據(jù)消失,對于其他的網(wǎng)絡(luò)報文的存儲基本是不會影響,在安全性以及可靠性上大大的提升。
2網(wǎng)絡(luò)報文儲存方法的實現(xiàn)
將硬盤以1GB為單位劃分為若干個存儲塊,存儲塊作為報文配額分配的基本單位(數(shù)據(jù)結(jié)構(gòu)見圖1),存儲塊被分配給某種報文類型后,只能存儲此類報文。第0個存儲塊作為元數(shù)據(jù)塊,用于存放文件塊的元數(shù)據(jù)信息,來自分發(fā)模塊的原始報文先在內(nèi)存buffer中以pcap格式累積,等存儲規(guī)則滿足后,壓縮原始buffer,添加gzip頭和CRC,組成gzip格式的gzip_buffer,將gzip_buffer的內(nèi)容作為文件塊內(nèi)容寫入到存儲塊后,將文件塊在整個分區(qū)(整盤)中的偏移、長度、網(wǎng)絡(luò)ID、報文類型、第一幀報文的時間戳、最后一幀報文的時間戳作為文件塊的元數(shù)據(jù),寫入到第O個存儲塊中,寫入文件塊的元數(shù)據(jù)完畢后,文件塊按照時間先后順序加入到存儲塊的文件塊鏈表中。同時,存儲塊會按照存儲報文的時間先后順序依次加入到所屬報文類型的存儲塊鏈表中。
報文寫入的過程就是不斷分配存儲塊、填充存儲塊、再分配存儲塊的過程。當為報文分配的存儲塊總數(shù)目還在配額范圍以內(nèi)時,從公共可用存儲塊鏈表中分配存儲塊,新分配的存儲塊放在鏈表的尾部;當存儲塊的數(shù)目達到配額時,最老的存儲塊(鏈表的第一個元素)被覆蓋,同時存儲塊從鏈表頭移動到鏈表尾,達到每類報文在自己的存儲空間內(nèi)循環(huán)存儲的目的。
基于存儲塊的存儲結(jié)構(gòu)可以很好的應(yīng)對配額調(diào)整,如果MMS報文的配額調(diào)小,那么MMS存儲塊鏈表中最老的超過配額的存儲塊會被移除,掛到公共存儲塊鏈表中;相應(yīng)的,如果GOOSE的配額被調(diào)大,那么分配存儲塊時發(fā)現(xiàn)存儲塊的數(shù)目未達到配額,此時會向公共存儲塊鏈表請求存儲塊。
查詢單個報文或某個時間段的報文文件時,通過二級索引的方式,先在報文的存儲塊鏈表中找到含有目標報文的存儲塊,再在存儲塊中搜索含有目標報文的文件塊,達到快速檢索的目的。如圖2所示。
(1)接收原始報文,存儲到硬盤;
(2)按照時間點、報文類型、網(wǎng)絡(luò)ID精確查詢單幀報文;
(3)按照時間段、報文類型、網(wǎng)絡(luò)ID查詢這個時間段內(nèi)的文件塊并擴展文件下載命令;
(4)按照時間段、報文類型、網(wǎng)絡(luò)ID查詢這個時間段內(nèi)的文件塊并將文件塊解壓為文件系統(tǒng)的臨時文件用于離線分析;
(5)提供配置各類報文配額的接口;
(6)裸盤存儲模塊提供的接口與使用文件系統(tǒng)存儲方案的接口完全相同,確保服務(wù)端的其他模塊和客戶端無需修改即可使用。
3優(yōu)點總結(jié)
3.1保證磁盤壽命
正常情況下,每個文件塊的內(nèi)容寫入完畢后,需要寫入文件塊的元數(shù)據(jù)到O號存儲塊,但O號存儲塊位于磁盤的開始位置,在報文的存儲過程中,磁盤的磁頭會一直來會的移動,不停的尋道,不利于磁盤的壽命。寫文件塊時,先將元數(shù)據(jù)塊寫入到當前的存儲塊中再寫入文件塊的內(nèi)容,等到當前的存儲塊被填滿后再批量寫入元數(shù)據(jù)信息到O號存儲塊,這樣便極大的減少磁頭尋道的次數(shù),如果遇到失電或程序意外中止,下次程序啟動時,從上次寫入的存儲塊中讀入元數(shù)據(jù)信息。
3.2壞道(壞塊)處理
連續(xù)3次向存儲塊寫入數(shù)據(jù)失敗后,將存儲塊標記為不可用;連續(xù)3次向3個不同的存儲塊寫入數(shù)據(jù)失敗后,將硬盤標記為故障。
3.3多個硬盤的使用策略
與使用文件系統(tǒng)的存儲方案類似,如支持雙硬盤同時儲存:兩個硬盤同時寫入只是保證了在寫入時提供數(shù)據(jù)冗余,而不是全過程的冗余;根據(jù)所需存儲信息的重要程度和安全級別進行分類分別處理,如異常報文,其存儲會對異常報文做智能抽取,單獨進行雙硬盤同時存儲。而常規(guī)報文的寫入是沒必要冗余寫入的,從而保證了整體效率和性能的提升;同時寫入將系統(tǒng)的JO負荷提高一倍。
參考文獻
[1]余越,周春霞,詹榮榮等.智能變電站繼電保護裝置網(wǎng)絡(luò)壓力產(chǎn)生原因及測試方法研究[J].電力系統(tǒng)保護與控制,2017,45 (18):156-162.
[2]楊霽,張林,唐融.對分級存儲環(huán)境的數(shù)據(jù)即時應(yīng)用產(chǎn)品的研究[J],自動化與儀器儀表,2018 (09): 21-23+27.
[3]鄒國惠,潘登,廖曉春等,智能變電站網(wǎng)絡(luò)報文處理器的研究[J],自動化儀表,2014, 35(04):46-48+52.
[4]寧楠,廖曉春,鄧其軍等,基于IEEE1588的智能變電站多時鐘域數(shù)據(jù)同步技術(shù)[J].武漢大學學報(工學版), 2014, 47 (03): 344-349.
[5]佟為明,高吉星,金顯吉等,智能變電站過程層網(wǎng)絡(luò)報文傳輸時間計算及抖動抑制方法[J].電力自動化設(shè)備,2 01 8,38 (06):131-137.
[6]倫惠勤,駱燕婷,廖曉春等,同步數(shù)字傳輸體系(SDH)下的精確對時方案研究[J].武漢大學學報(工學版),2014,47(04):485-489+515.