收稿日期:2023-05-22
DOI:10.19850/j.cnki.2096-4706.2024.04.010
摘? 要:文章介紹了某艦船武器調(diào)度系統(tǒng)高可用數(shù)據(jù)存儲方案,其硬件設(shè)計和軟件設(shè)計均采用熱備方式。方案應(yīng)用在軍用船艙中,所設(shè)計的硬件既能節(jié)省空間又能在多個方面實現(xiàn)冗余,且出現(xiàn)故障時互相不影響。軟件設(shè)計上采用容錯軟件將兩塊計算單元組成雙機熱備系統(tǒng);采用同步鏡像軟件將數(shù)據(jù)庫數(shù)據(jù)同步存儲到兩個磁盤陣列;采用連續(xù)備份軟件將兩塊計算單元的操作系統(tǒng)和重要數(shù)據(jù)備份。這種高可用數(shù)據(jù)存儲方案消除了艦船數(shù)據(jù)庫系統(tǒng)中設(shè)備或軟件單點故障的風險,具有良好的軍事意義和社會效益。
關(guān)鍵詞:數(shù)據(jù)庫;雙機熱備;鏡像;主備
中圖分類號:U665.261? 文獻標識碼:A? 文章編號:2096-4706(2024)04-0046-04
High Availability Data Storage Scheme for Shipborne Weapon Scheduling System
LIU Zhaoxia1, 2, 3
(1.The 713 Research Institute of CSSC, Zhengzhou 450015, China; 2.The Key Laboratory for Smart Field Area Management and Scheduling Technology? in Zhengzhou City, Zhengzhou? 450015, China; 3.The Key Laboratory for Intelligent Scheduling and Transportation Technology, Zhengzhou? 450015, China)
Abstract: This paper introduces a high availability data storage scheme for a ship's weapon scheduling system. The hardware and software designs both adopt a hot standby method. The scheme is applied in military cabins, and the designed hardware can save space and achieve redundancy in multiple aspects, without affecting each other in case of failure. In terms of software design, fault-tolerant software is used to form a dual machine hot standby system with two computing units. It uses synchronous mirroring software to synchronize and store database data on two disk arrays, and uses continuous backup software to backup the operating systems and important data of two computing units. This highly availability data storage scheme eliminates the risk of single point failure of equipment or software in ship database systems, and has good military significance and social benefits.
Keywords: database; hot standby; mirror image; standby
0? 引? 言
關(guān)鍵數(shù)據(jù)的持續(xù)可用和安全問題關(guān)系到軍用數(shù)據(jù)庫系統(tǒng)的生存和發(fā)展。保證數(shù)據(jù)的持續(xù)可用和安全的需求也越來越多樣化,單一的解決方案已經(jīng)不能滿足用戶的實際需求。因此,采用高可用解決方案保證數(shù)據(jù)持續(xù)可用和安全,可徹底解決軍用數(shù)據(jù)庫系統(tǒng)中設(shè)備或軟件單點故障的風險。
本方案提供一種某艦載武器調(diào)度系統(tǒng)高可用數(shù)據(jù)存儲方案,在數(shù)據(jù)庫服務(wù)器故障時,僅僅使用一次服務(wù)器的重新啟動即可以修復(fù)故障服務(wù)器,能夠解決現(xiàn)有技術(shù)中高可用系統(tǒng)設(shè)備或軟件單點故障的問題,極大地降低服務(wù)器的維護次數(shù),延長數(shù)據(jù)庫系統(tǒng)的維修周期,節(jié)省數(shù)據(jù)庫維護成本。
1? 硬件軟件組成
本方案應(yīng)用在軍用船艙里,要求硬件選型必須節(jié)省空間。在硬件設(shè)計和軟件設(shè)計上都采用了熱備方式,這種高可用解決方案能夠保障數(shù)據(jù)不丟失和系統(tǒng)不停頓,解決了軍用船艙數(shù)據(jù)庫系統(tǒng)中單點故障的風險。本方案應(yīng)用硬件如圖1所示。
(a)計算單元? (b)磁盤陣列
圖1? 數(shù)據(jù)庫服務(wù)器示意圖
本方案所有硬件采用海軍鑒定的標準機柜和組件,硬件的應(yīng)用方案設(shè)計節(jié)省空間,并且在多個方面實現(xiàn)冗余,出現(xiàn)故障互相不影響,其硬件包括:
1)數(shù)據(jù)庫服務(wù)器采用軍用機柜內(nèi)配置四塊計算單元,兩兩計算單元組成主備數(shù)據(jù)庫服務(wù)器,實現(xiàn)雙冗余。
2)四個計算單元安裝了兩個數(shù)據(jù)庫,正常數(shù)據(jù)庫和訓練數(shù)據(jù)庫實現(xiàn)數(shù)據(jù)庫軟件雙冗余。
每個計算單元采用雙硬盤,實現(xiàn)雙冗余:
3)每個計算單元采用多個網(wǎng)卡,實現(xiàn)雙冗余。
4)數(shù)據(jù)庫存儲采用軍用機柜內(nèi)配置兩個磁盤陣列,實現(xiàn)雙冗余。
5)雙網(wǎng)卡心跳檢測,實現(xiàn)心跳檢測雙冗余。
6)服務(wù)器使用UPS提供斷電保護,實現(xiàn)斷電后數(shù)據(jù)不丟失。
本方案每個組件采用成熟技術(shù)確保硬件安全,包括:
1)每個計算單元的雙硬盤采用Raid0或Raid1設(shè)置,提升讀寫速度或避免單硬盤故障。
2)每個磁盤陣列采用Raid5實現(xiàn)硬盤容錯。
3)網(wǎng)卡采用IPMP將雙網(wǎng)卡綁定為一個網(wǎng)卡,避免單網(wǎng)卡故障。
本方案采用多種雙機熱備技術(shù),包括:
1)采用容錯軟件,將兩塊計算單元組成雙機熱備系統(tǒng),設(shè)置雙心跳檢測,對外提供一個虛擬IP供用戶訪問數(shù)據(jù)庫。
2)采用同步鏡像軟件,將數(shù)據(jù)庫數(shù)據(jù)同步存儲在兩個磁盤陣列。
3)采用連續(xù)備份軟件,將兩塊計算單元的操作系統(tǒng)和重要數(shù)據(jù)備份。
2? 具體實施方式
雙機熱備方案實現(xiàn)首先使用兩個計算單元(第一計算單元test01、第二計算單元test02)和兩個磁盤陣列(第一磁盤陣列Z1、第二磁盤陣列Z2),兩個計算單元一主一備,兩臺磁盤陣列一主一備;兩個計算單元安裝操作系統(tǒng)為Windows Server 2008 R2,數(shù)據(jù)庫為Oracle 11g。兩個機柜內(nèi)部采用交換設(shè)備互聯(lián),負責計算單元和磁盤陣列的網(wǎng)絡(luò)通信,具體實施方式如圖2所示。
實施步驟具體如下:
1)將兩個磁盤陣列采用Raid5設(shè)置硬盤容錯,一個磁盤發(fā)生損壞后,不會影響數(shù)據(jù)的完整性,從而提高磁盤陣列的安全性和可靠性。
2)計算單元采用雙硬盤配置,可以采用三種方法處理:第一種可以采用Raid1避免單硬盤故障,兩個硬盤里的數(shù)據(jù)完全一樣,一旦其中一個硬盤壞了,依靠另一個硬盤,計算單元依然能正常運行;第二種可以采用Raid0提高存取速度;第三種可以采用操作系統(tǒng)鏡像方式,將計算單元其中一個硬盤安裝配置完成后鏡像安裝在另一個硬盤中備用,其中一個硬盤損壞后,計算單元操作系統(tǒng)啟動時在BIOS中設(shè)置啟動另一個硬盤實現(xiàn)硬盤切換。
圖2? 雙機熱備方案示意圖
3)兩個計算單元均安裝同步鏡像軟件,利用同步鏡像軟件將數(shù)據(jù)庫數(shù)據(jù)同步存儲在兩個磁盤陣列,保證兩臺磁盤陣列的數(shù)據(jù)保持一致,在服務(wù)器系統(tǒng)中兩臺磁盤陣列采用虛擬技術(shù)虛擬成一臺存儲設(shè)備提供給計算單元使用,用戶向虛擬的存儲設(shè)備中提交的數(shù)據(jù),同步鏡像軟件同時將數(shù)據(jù)復(fù)制到兩臺真實磁盤陣列中。
4)第一磁盤陣列Z1、第二磁盤陣列Z2充當存儲,用來存放數(shù)據(jù),兩個計算單元使用iSCSI連接兩個磁盤陣列。采用同步鏡像軟件,將第一磁盤陣列Z1和第二磁盤陣列Z2虛擬成一個虛擬陣列,計算單元將數(shù)據(jù)寫入虛擬陣列中,實際上是同時將數(shù)據(jù)寫入到第一磁盤陣列Z1和第二磁盤陣列Z2。當?shù)谝淮疟P陣列Z1損壞之后,第二磁盤陣列Z2即刻接管業(yè)務(wù),繼續(xù)提供數(shù)據(jù),從數(shù)據(jù)層面確保了服務(wù)的連續(xù)性。當修復(fù)的磁盤陣列重新上線使用時,鏡像軟件會將第一磁盤陣列Z1和第二磁盤陣列Z2做數(shù)據(jù)增量同步,確保數(shù)據(jù)的一致性。
5)虛擬的磁盤陣列在主備計算單元需要指定相同的驅(qū)動器符號,如圖3所示,設(shè)置虛擬磁盤陣列磁盤1為Z盤。
6)兩個計算單元均安裝容錯軟件,利用容錯軟件將主數(shù)據(jù)庫計算單元與備用數(shù)據(jù)庫計算單元組成一對雙機熱備系統(tǒng),設(shè)置雙心跳監(jiān)測、對外虛擬IP、卷
鎖、監(jiān)控Oracle服務(wù)和監(jiān)聽。
圖3? 磁盤1為虛擬磁盤陣列示意圖
7)計算單元test01包括至少5塊網(wǎng)卡,將網(wǎng)卡1和網(wǎng)卡2采用雙網(wǎng)綁定功能IPMP將兩個獨立的網(wǎng)卡綁定為一個對外使用IP為192.168.10.110。計算單元test02進行同樣設(shè)置,將網(wǎng)卡1和網(wǎng)卡2采用雙網(wǎng)綁定功能IPMP將兩個獨立的網(wǎng)卡綁定為一個對外使用IP為192.168.10.120。
8)首先使用容錯軟件創(chuàng)建心跳,心跳是兩個計算單元的通信通道,只有建立了心跳才能監(jiān)聽到相互的狀態(tài),連接狀態(tài)正常才能進行后續(xù)的配置,如圖4所示。對外網(wǎng)絡(luò)和心跳的IP設(shè)置在不同網(wǎng)段,計算單元其他網(wǎng)卡可使用不同網(wǎng)段連接磁盤陣列。
圖4? 心跳狀態(tài)正常示意圖
9)計算單元test01網(wǎng)卡3(IP為10.0.0.3)和網(wǎng)卡4(IP為10.0.0.1)做雙心跳設(shè)置,計算單元test02網(wǎng)卡3(IP為10.0.0.4)和網(wǎng)卡4(IP為10.0.0.2)做雙心跳設(shè)置。計算單元test01網(wǎng)卡3監(jiān)聽計算單元test02網(wǎng)卡3的狀態(tài),計算單元test01網(wǎng)卡4監(jiān)聽計算單元test02網(wǎng)卡4的狀態(tài),只要有一個心跳狀態(tài)正常,容錯軟件就能實現(xiàn)雙機熱備應(yīng)用。
10)使用容錯軟件創(chuàng)建虛擬IP,兩個計算單元的對外的IP地址是容錯軟件虛擬出來的IP地址,為兩個計算單元對外提供訪問的IP地址,即用戶客戶端訪問的IP地址,對外使用的綁定IP要和虛擬IP設(shè)置在同一個網(wǎng)段,本次設(shè)置的三個IP在同一個192.168.10網(wǎng)段。將兩個計算單元雙網(wǎng)卡綁定IP(192.168.10.110和192.168.10.120)虛擬成一個IP(192.168.10.100),其中一臺為主,出現(xiàn)問題時另外一臺接管這個IP,對外只需要提供192.168.10.100即可供用戶訪問數(shù)據(jù)庫,如圖5所示。
11)使用容錯軟件創(chuàng)建卷鎖,對共享磁盤陣列文件系統(tǒng)的保護機制是設(shè)置卷鎖,不允許兩個計算單元同時操作共享虛擬磁盤陣列。設(shè)置卷鎖后文件不能同時被來自兩個計算單元的系統(tǒng)訪問,避免了對文件系統(tǒng)造成損壞。創(chuàng)建完成卷鎖以后,在主計算單元上可以正常讀寫共享磁盤陣列,在備計算單元是不顯示共享磁盤陣列的,主計算單元故障切換至備用計算單元時才能在備用計算單元顯示共享磁盤陣列,備用顯示也是Z盤。
12)在主計算單元安裝Oracle數(shù)據(jù)庫,卷鎖切換至主計算單元上,將數(shù)據(jù)文件存放在Z盤;在備用計算單元安裝Oracle數(shù)據(jù)庫,卷鎖切換至備用計算單元上,刪除Z盤已經(jīng)存在的數(shù)據(jù)文件,將新產(chǎn)生的數(shù)據(jù)文件存放在Z盤。
13)在Oracle Net Manager中增加主機為192.168.
10.100數(shù)據(jù)庫的監(jiān)聽和服務(wù)。
14)使用容錯軟件創(chuàng)建NT服務(wù)資源,為保障雙機熱備的正常使用,應(yīng)該通過容錯軟件來完成啟動和停止NT服務(wù)。將Oracle的“OracleServiceDatabaseName”和“OracleOraDb10g_home1TNSListener”兩個服務(wù)依次添加成容錯軟件里的NT服務(wù)資源。
15)在操作系統(tǒng)的服務(wù)列表中停止Oracle的“OracleServiceDatabaseName”和“OracleOraDb10g_home1TNSListener”兩個數(shù)據(jù)庫的服務(wù),并設(shè)置啟動類型為“手動”,由容錯軟件啟動和停止數(shù)據(jù)庫的服務(wù)和監(jiān)聽。
16)雙機熱備配置完成后,為保障兩個計算單元之間心跳線的正常工作,打開兩個計算單元的防火墻,關(guān)閉防火墻或開啟軟件使用的所有相關(guān)端口。
17)殺毒軟件的查殺、掃描和惡意檢測行為會干擾雙機熱備軟件,應(yīng)該在殺毒軟件的“文件白名單”和“目錄白名單”兩個選項卡將相關(guān)文件排除在外。
18)配置完成雙機熱備后進行測試,可采用網(wǎng)絡(luò)故障切換測試、關(guān)機測試、關(guān)閉進程測試、客戶端連接測試等方法,主機備機逐個資源啟動停止,確保測試充分。圖6為雙機熱備資源啟動正常示意圖。
圖6? 雙機熱備4資源啟動正常示意圖
19)按照相同步驟在另外兩個計算單元上安裝訓練數(shù)據(jù)庫,正常數(shù)據(jù)庫存儲真實數(shù)據(jù),訓練數(shù)據(jù)庫存儲訓練數(shù)據(jù),正常數(shù)據(jù)庫故障可將數(shù)據(jù)導入到訓練數(shù)據(jù)庫中直接使用。
20)采用連續(xù)備份軟件將兩塊計算單元的操作系統(tǒng)和重要數(shù)據(jù)備份,實時監(jiān)控操作系統(tǒng)狀態(tài),操縱系統(tǒng)故障時自動還原故障系統(tǒng),重要數(shù)據(jù)丟失時將數(shù)據(jù)還原到發(fā)生意外前一秒鐘時狀態(tài)。
對于本系統(tǒng)而言,對數(shù)據(jù)安全性要求較高,因此服務(wù)器機柜另外還配置了UPS供電,當外部供電中斷時UPS報警,電池組能夠維持至少10分鐘,確保數(shù)據(jù)庫服務(wù)器有充足時間保存數(shù)據(jù)和關(guān)機,避免數(shù)據(jù)丟失。
本方案應(yīng)用在普通雙機熱備數(shù)據(jù)庫系統(tǒng)中最簡單配置為每臺服務(wù)器至少要有兩塊網(wǎng)卡,其中一塊網(wǎng)卡使用直連線連接兩臺服務(wù)器,專門用于配置心跳線;另外一塊網(wǎng)卡用于配置外網(wǎng)訪問,同時兼做心跳線。同一臺服務(wù)器兩塊網(wǎng)卡的IP地址設(shè)置在不同網(wǎng)段即可實現(xiàn)雙機熱備。
3? 效果分析
1)本方案利用容錯軟件將主數(shù)據(jù)庫計算單元與備用數(shù)據(jù)庫計算單元組成一對雙機熱備系統(tǒng),設(shè)置雙心跳監(jiān)測,將數(shù)據(jù)庫服務(wù)安裝在兩塊計算單元上,對外提供一個虛擬IP供用戶訪問數(shù)據(jù)庫。
2)利用同步鏡像軟件將數(shù)據(jù)庫數(shù)據(jù)同步存儲在兩個磁盤陣列,確保兩臺磁盤陣列的數(shù)據(jù)在任何時候保持一致,在服務(wù)器系統(tǒng)中采用虛擬技術(shù)將兩臺磁盤陣列虛擬成一臺存儲設(shè)備提供給計算單元使用,對于用戶向虛擬的存儲設(shè)備中提交的數(shù)據(jù),同步鏡像軟件同時將數(shù)據(jù)復(fù)制到兩臺真實磁盤陣列中。
3)采用連續(xù)備份軟件將兩塊計算單元的操作系統(tǒng)和重要數(shù)據(jù)進行備份,實時監(jiān)控操作系統(tǒng)狀態(tài)。
4)數(shù)據(jù)庫計算單元采用雙硬盤備用,避免單硬盤故障;采用雙網(wǎng)卡綁定IPMP將兩個網(wǎng)卡綁定為一個網(wǎng)卡,防止單網(wǎng)卡故障;將兩個磁盤陣列采用Raid5硬盤容錯設(shè)置,提高磁盤陣列安全性;UPS機柜提供斷電保護,避免數(shù)據(jù)丟失。
最后,在服務(wù)器故障時,僅僅使用一次服務(wù)器的重啟動即可以修復(fù)故障服務(wù)器,能夠解決現(xiàn)有技術(shù)中高可用系統(tǒng)磁盤陣列出現(xiàn)單點故障的風險,降低服務(wù)器的維護次數(shù),延長數(shù)據(jù)庫系統(tǒng)的維修周期,節(jié)省數(shù)據(jù)庫服務(wù)器維護成本。
4? 結(jié)? 論
此高可用數(shù)據(jù)存儲方案滿足了空間占用少、恢復(fù)時間短、故障后自動切換以及數(shù)據(jù)的高可用性等要求,經(jīng)在艦船某武器系統(tǒng)的若干條船上的應(yīng)用實踐,證明已達到了預(yù)期的數(shù)據(jù)應(yīng)用效果,具有良好的實用性和可推廣性。
參考文獻:
[1] 鄧秀輝,李民,方惠.基于分布式集群高可用管理信息系統(tǒng)設(shè)計 [J].制造業(yè)自動化,2022,44(7):43-45+122.
[2] 唐成,潘雷,劉可昌,等.一種雙機熱備切換系統(tǒng)的實現(xiàn)方案 [J].電子世界,2021(22):198-199.
[3] 高博,劉羽,唐瑩,等.一種基于硬件特征和動態(tài)許可證的分布式高可用軟件授權(quán)認證模型 [J].重慶理工大學學報:自然科學,2021,35(7):146-153.
[4] 李冬洋,嚴勇.一種基于組播機制的雙機熱備軟件系統(tǒng)設(shè)計 [J].現(xiàn)代雷達,2021,43(1):16-20.
[5] 孫友凱,賈立輝,董濤.基于虛擬IP的雙機熱備系統(tǒng)設(shè)計與實現(xiàn) [J].信息技術(shù)與信息化,2020(10):147-149.
[6] 王東方,李崢.中小企業(yè)服務(wù)器雙機熱備系統(tǒng)升級方案 [J].數(shù)字通信世界,2020(10):281-282.
[7] 王小娟.網(wǎng)絡(luò)類設(shè)備雙機熱備環(huán)境測試方法研究 [J].數(shù)字技術(shù)與應(yīng)用,2020,38(8):45-47.
[8] 張浙東,田霞,夏曉云,等.基于集群架構(gòu)的地海雜波數(shù)據(jù)存儲系統(tǒng) [J].現(xiàn)代雷達,2019,41(5):52-57+85.
[9] 苗云龍,陸彥輝,左明陽,等.基于鏈路非對稱網(wǎng)閘的雙機熱備系統(tǒng)研究及實現(xiàn) [J].現(xiàn)代電子技術(shù),2019,42(3):73-77.
[10] 何青松.煤礦安全監(jiān)控系統(tǒng)雙機熱備的優(yōu)化實現(xiàn) [J].煤礦安全,2018,49(7):109-111.
作者簡介:劉朝霞(1980.10—),女,漢族,河南鄭
州人,高級工程師,碩士研究生,研究方向:數(shù)據(jù)庫和物資管理調(diào)度。