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