顧雯軒 ,高 原 ,丁雨恒
(1.南瑞集團有限公司(國網(wǎng)電力科學研究院),江蘇南京 211106;2.國電南瑞科技股份有限公司,江蘇南京 211106;3.智能電網(wǎng)保護和運行控制國家重點實驗室,江蘇南京 211106)
電網(wǎng)調(diào)度控制系統(tǒng)是由若干程序、動態(tài)庫、配置文件、數(shù)據(jù)文件組成,它們均是以文件形式存儲在磁盤介質上。磁盤在經(jīng)過長時間的使用后可能發(fā)生損壞,本文就是從軟件角度探討通過備份恢復的方法解決磁盤損壞給系統(tǒng)帶來的風險。
目前電力系統(tǒng)和IT業(yè)界已針對備份恢復做了一定的研究,如王劍雄等[1-2]采用一套復雜的管理系統(tǒng)進行備份恢復,但是未見對管理節(jié)點進行多機冗余管理,若管理節(jié)點本身故障會造成數(shù)據(jù)無法恢復。周軼等[3]提到了全備份和增量備份,但是未提及遠程備份如果本機故障了則數(shù)據(jù)還是會發(fā)生丟失。戚斌[4]使用數(shù)據(jù)庫進行數(shù)據(jù)備份,這樣也增加了系統(tǒng)成本和恢復的復雜度。李文君等[5-6]是使用外部的一個磁盤陣列進行備份,但是為提到全量和增量備份的配合使用。
為了保證電網(wǎng)調(diào)度控制系統(tǒng)(下簡稱“調(diào)度系統(tǒng)”)的軟件、配置文件的安全性,須要建設一套備份恢復管理系統(tǒng),定時地將程序、動態(tài)庫、配置文件硬盤或磁盤陣列復制到本地或遠程備份目錄,磁帶驅動器和其他可移動媒體上。同時,提供完備恢復方式,當操作失誤或系統(tǒng)發(fā)生故障時,可將數(shù)據(jù)從備份載體中恢復,保證數(shù)據(jù)的可用性。
備份恢復模塊提供全備份和增量備份的功能,備份可自動執(zhí)行也可手動執(zhí)行。自動備份的對象、周期、路徑可配置,可執(zhí)行手動備份和恢復。備份文件可存放在遠程服務器,并可遠程登陸進行備份或恢復操作,可瀏覽備份文件的名稱和修改日期。
備份類型支持全量備份和增量備份兩種。全量備份是對所有平臺軟件、應用軟件以及配置參數(shù)進行完整備份,增量備份是對自上次備份以來涉及變化文件的備份。
備份對象可通過配置文件進行配置,備份對象是操作系統(tǒng)磁盤上的某個具體目錄。調(diào)度系統(tǒng)中的進程和動態(tài)庫以及配置文件是分別存放在$HOME/bin、$HOME/lib、$HOME/conf目錄下,所以默認將這3個目錄寫入配置文件,其他目錄以后可以增加。
為便于管理所有備份數(shù)據(jù),備份數(shù)據(jù)的名稱由備份對象、備份類型、備份時間組合而成。采用規(guī)范的命名規(guī)則,命名中含有備份的目錄名、備份日期、備份類型等信息,便于進行管理和數(shù)據(jù)恢復。
如圖1所示,本模塊采用的增量備份方式是每周日進行一次全量備份,然后每天備份與上次備份差異的部分。
圖1 增量備份原理
備份時可以選擇是否進行遠程備份(如另一臺服務器或者備調(diào)的服務器),選擇遠程備份時將備份數(shù)據(jù)傳輸?shù)竭h程服務器上。這樣即使萬一本地系統(tǒng)遭受破壞,系統(tǒng)數(shù)據(jù)均可避免損失,系統(tǒng)數(shù)據(jù)依然完整。
遠程備份需要進行備份的服務器與存儲備份文件的目標服務網(wǎng)絡能夠直接連通,且配置無密碼直接訪問。具體原理如圖2所示,通過設置2臺備份服務器保證備份數(shù)據(jù)的安全性。
圖2 遠程備份原理
恢復功能是將備份數(shù)據(jù)恢復到本地,為確保支撐平臺運行安全,恢復功能必須手動執(zhí)行?;謴凸δ芡ㄟ^選擇指定恢復時間點及恢復數(shù)據(jù)對象,將數(shù)據(jù)恢復到本地,也可以選擇從異地備份中恢復數(shù)據(jù)。
通過全量備份的數(shù)據(jù)對象可以直接恢復數(shù)據(jù),而增量備份的數(shù)據(jù)對象需要有對應全量備份及所有相關增量備份一起執(zhí)行,即當選擇恢復一個增量備份點時,需要備份時間點之前最近的一個全量備份和該全量備份之后到所選增量備份點之間所有增量備份,才能恢復數(shù)據(jù),恢復時按照備份點先后順序逐步依次進行恢復。
備份文件存放在用戶家目錄的/var/sys_backup目錄下,以及一臺遠程服務器用戶家目錄的/var/sys_backup_主機名的目錄下。目前按照需求分為三個子目錄,分別存放配置文件,可執(zhí)行程序,動態(tài)鏈接庫的備份文件。是否進行異地備份可配置。備份文件存儲的目錄如表1所示。
備份文件的文件名由主機名+備份時間構成。滾動存儲一定時間段(可配)的備份文件,較早的備份將被自動刪除。
備份文件通常為主機名.生成日期.星期幾.對象名稱.tar。如主機sca1-1七月十日的可執(zhí)行程序的備份文件在var/sys_backup/bin目錄中的名稱為sca1-1.20090710.Friday.bin.tar
表1 備份對象存放目錄
恢復的自動化工具運行后,將恢復的文件存放在執(zhí)行恢復命令主機的用戶家目錄的/var/sys_restore目錄下,分為三個子目錄?;謴臀募鎯Φ哪夸浫绫?所示。
表2 恢復對象存放目錄
供恢復人員確認后自行拷貝至目標目錄。
(1)備份命令。
提供手動備份功能的命令行工具sys_backup,備份對象為目錄,命令參數(shù)為備份對象,是全備份還是增量備份,是否產(chǎn)生異地備份文件,若是還需異地主機名參數(shù),可選擇備份后是否壓縮存儲。產(chǎn)生備份文件的存放位置和命名規(guī)則同自動備份一致。
(2)恢復命令。
提供手動恢復功能的命令行工具sys_restore,命令參數(shù)是恢復對象,恢復到的時間點,是從本地恢復還是從異地恢復,若從異地恢復還需主機名參數(shù)。
(3)備份界面。
圖形界面工具restore_man上具有備份界面和恢復界面。備份界面上首先以樹形結構展示目前自動備份的目錄對象,點開目錄對象可看見所有已產(chǎn)生的備份文件??尚薷?、新增、刪除自動備份的對象。展示并可編輯全備份的周期或執(zhí)行的日期,可設置是否進行異地自動備份,設置異地備份的主機名。設置備份后是否壓縮。
界面上可執(zhí)行手動備份,可選擇或輸入手動備份的對象,可選擇是否是增量備份,可選擇是否進行異地備份,可設置異地主機名。
可選擇只備份若干文件,產(chǎn)生的文件在恢復界面可單獨選擇進行恢復,不采用全恢復加增量恢復的方式。
(4)恢復界面。
restore_man的恢復界面上首先以樹形結構展示本地和異地所有可恢復的目錄對象,點開目錄對象可看見所有已產(chǎn)生的備份文件。并顯示每個目錄最早可恢復到的日期,可在界面上選擇恢復對象,設置恢復到的時間點,設置從本地還是異地恢復,選擇異地主機??蛇x擇恢復只含有若干個文件的備份,這時直接恢復覆蓋。
備份恢復功能可通過命令行或工具界面使用。備份命令須要指定備份數(shù)據(jù)對象、備份類型、是否異地備份、異地備份節(jié)點名稱等參數(shù)。恢復命令須要指定恢復數(shù)據(jù)對象、恢復時間點、是否從異地恢復、異地恢復節(jié)點名稱等參數(shù)。備份恢復界面中提供備份、恢復功能,如圖3所示。
備份功能中,顯示自定義的備份對象、最近備份點,以及選擇是否備份到遠程,創(chuàng)建增量備份或全量備份,并顯示創(chuàng)建備份的進度。
恢復功能中,顯示可供恢復的備份對象,選擇備份對象后可以恢復數(shù)據(jù),并顯示恢復數(shù)據(jù)的進度。
本文介紹了電網(wǎng)調(diào)度自動化系統(tǒng)的備份恢復模塊的設計與實現(xiàn)。本模塊具有以下技術特點:持自動備份及手動備份;提供一套備份文件的命名機制,便于檢索和恢復;備份恢復功能的運行不依賴支撐平臺的任何其他程序,能夠獨立運行;支持全備份和增量備份;支持異地備份恢復功能,可將備份文件存放在遠程服務器上,并支持從遠程服務器上恢復;提供命令行工具,可進行本地及遠程的備份和恢復操作;提供界面工具,可進行本地及遠程備份和恢復操作。軟件經(jīng)過驗證,達到了預先設計目標。
圖3 備份恢復模塊效果