徐古用 王慧瓊 廖曉春


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