朱嘉斌 黃問(wèn)遂
(1.蘇州軌道交通建設(shè)有限公司 江蘇 蘇州 215003;2.上海華騰軟件系統(tǒng)有限公司 上海 200233)
地鐵清分中心是地鐵票務(wù)的最上層系統(tǒng),主要負(fù)責(zé)票款交易在線網(wǎng)內(nèi)的存儲(chǔ)和清分清算,其災(zāi)備是清分系統(tǒng)至關(guān)重要的組成部分,是實(shí)現(xiàn)清分系統(tǒng)不間斷運(yùn)行、地鐵票務(wù)收益連續(xù)清分的前提保證條件。如何合理規(guī)劃與建設(shè)地鐵清分中心的災(zāi)備系統(tǒng),成為建設(shè)清分中心所必須要考慮的問(wèn)題。
地鐵清分中心災(zāi)備系統(tǒng)按照災(zāi)備實(shí)現(xiàn)的最終目標(biāo)不同,分為數(shù)據(jù)容災(zāi)和應(yīng)用系統(tǒng)容災(zāi)。數(shù)據(jù)容災(zāi),是指建立一個(gè)或多個(gè)異地的數(shù)據(jù)備份系統(tǒng);應(yīng)用系統(tǒng)容災(zāi),是指在做好數(shù)據(jù)容災(zāi)的基礎(chǔ)上,在異地建立與本地運(yùn)營(yíng)系統(tǒng)類似的備份應(yīng)用系統(tǒng),可以根據(jù)企業(yè)的風(fēng)險(xiǎn)評(píng)估做備份策略,做到實(shí)時(shí)切換,在主系統(tǒng)遇故障時(shí)可實(shí)時(shí)平滑切換到應(yīng)用災(zāi)備系統(tǒng)。顯而易見(jiàn),兩者實(shí)現(xiàn)的代價(jià)不同:數(shù)據(jù)容災(zāi)僅僅在原系統(tǒng)基礎(chǔ)上增加了數(shù)據(jù)備份空間,備份空間載體可以是大容量硬盤(pán)或者磁帶庫(kù)等存儲(chǔ)介質(zhì);應(yīng)用系統(tǒng)容災(zāi)則是在原系統(tǒng)基礎(chǔ)上額外建立一個(gè)獨(dú)立完整的系統(tǒng),包括主機(jī)、硬盤(pán)等介質(zhì),也包含系統(tǒng)軟件及專用的系統(tǒng)切換軟件。
為確定建設(shè)災(zāi)備系統(tǒng)的配置規(guī)模,設(shè)計(jì)最符合用戶需求的清分中心災(zāi)備系統(tǒng),實(shí)現(xiàn)經(jīng)濟(jì)效益與工程社會(huì)效益最優(yōu)化的結(jié)合,需要考慮災(zāi)備系統(tǒng)建設(shè)的經(jīng)濟(jì)代價(jià)、所運(yùn)行業(yè)務(wù)受災(zāi)的影響、災(zāi)備等級(jí)和災(zāi)難所需恢復(fù)的時(shí)間等多種因素,統(tǒng)籌平衡各種要素,建立數(shù)據(jù)模型,確定最合適的系統(tǒng)配置,如圖1所示。
圖1 系統(tǒng)建設(shè)代價(jià)與災(zāi)難恢復(fù)時(shí)間和業(yè)務(wù)影響
下面以一般城市災(zāi)備等級(jí)要求為例,綜合考慮經(jīng)濟(jì)因素,設(shè)計(jì)能夠?qū)崿F(xiàn)平滑過(guò)渡的應(yīng)用系統(tǒng)容災(zāi)方案。
設(shè)計(jì)的清分中心應(yīng)用系統(tǒng)容災(zāi)方案,分本地主應(yīng)用系統(tǒng)和異地備份系統(tǒng)兩大部分。主應(yīng)用系統(tǒng)使用雙服務(wù)器、雙以太網(wǎng)交換機(jī)、雙存儲(chǔ)區(qū)域網(wǎng)絡(luò)(storage area network,SAN)交換機(jī)、雙冗余磁盤(pán)陣列、備份磁帶庫(kù),異地備份系統(tǒng)采用磁盤(pán)陣列、單服務(wù)器、單交換機(jī)實(shí)現(xiàn)。主應(yīng)用系統(tǒng)中的系統(tǒng)管理和異地備份系統(tǒng)間的同步管理由第三方服務(wù)器軟件實(shí)現(xiàn)。本方案能夠?qū)崿F(xiàn)數(shù)據(jù)庫(kù)、應(yīng)用系統(tǒng)的在線備份,通過(guò)采用合適的備份策略(定時(shí)增量備份和全備份),可以實(shí)現(xiàn)數(shù)據(jù)最大效率的完全備份存儲(chǔ)。容災(zāi)設(shè)計(jì)方案所采用的硬件設(shè)備以及備份軟件都必須是成熟可靠的,是經(jīng)過(guò)市場(chǎng)多年檢驗(yàn)的技術(shù),否則難以確保方案符合系統(tǒng)復(fù)原的需求。同時(shí),該方案提供的系統(tǒng)設(shè)計(jì)可以持續(xù)更新升級(jí),具有可擴(kuò)展性;能為后續(xù)備份系統(tǒng)的功能進(jìn)一步增加提供充足的擴(kuò)容空間,不浪費(fèi)初期建設(shè)投資。
備份軟件必須實(shí)現(xiàn)清分中心、生產(chǎn)中心和災(zāi)備中心磁盤(pán)陣列之間的遠(yuǎn)程數(shù)據(jù)復(fù)制,從而確保生產(chǎn)中心和容災(zāi)中心之間的數(shù)據(jù)一致性。本方案的特點(diǎn)是:數(shù)據(jù)復(fù)制過(guò)程完全由磁盤(pán)陣列控制,與主機(jī)無(wú)關(guān),不會(huì)影響主機(jī)對(duì)存儲(chǔ)的訪問(wèn)。采用本方案的好處:一是采取雙機(jī)備份技術(shù),降低硬件故障;二是采用準(zhǔn)實(shí)時(shí)的在線備份,降低誤操作或數(shù)據(jù)庫(kù)軟件故障;三是采取冗余的網(wǎng)絡(luò)接入措施,采用網(wǎng)絡(luò)互聯(lián)設(shè)備,保證99.9%的網(wǎng)絡(luò)正常連接(見(jiàn)圖2)。
對(duì)于地鐵清分中心這種實(shí)時(shí)性要求高的部門(mén),需要IT系統(tǒng)有非常高的可靠性和系統(tǒng)可用性作為安全生產(chǎn)的基本保障。主應(yīng)用系統(tǒng)容災(zāi)是建立在雙機(jī)集群的運(yùn)行環(huán)境上,所有服務(wù)器(包括應(yīng)用服務(wù)器、通信服務(wù)器、數(shù)據(jù)服務(wù)器、加密機(jī)以及SAN交換機(jī))均采用雙機(jī)并行方式,這樣系統(tǒng)的可靠性能得到大幅度提高。但是,通常后端的數(shù)據(jù)存儲(chǔ)仍然僅有一套。雖然存儲(chǔ)系統(tǒng)的設(shè)計(jì)從控制器、數(shù)據(jù)通道、I/O接口到磁盤(pán)環(huán)路都采用冗余結(jié)構(gòu),不存在系統(tǒng)本身的單點(diǎn)故障問(wèn)題,但是考慮到數(shù)據(jù)存儲(chǔ)系統(tǒng)是整個(gè)業(yè)務(wù)系統(tǒng)的關(guān)鍵所在,數(shù)據(jù)安全性和整個(gè)系統(tǒng)的可靠性都集中到唯一的磁盤(pán)系統(tǒng),一旦磁盤(pán)存儲(chǔ)系統(tǒng)發(fā)生故障,將會(huì)導(dǎo)致業(yè)務(wù)不能順利進(jìn)行,對(duì)正常的生產(chǎn)造成不可挽回的損失。本設(shè)計(jì)采用IBM主機(jī)、企業(yè)級(jí)存儲(chǔ)DS5020以及LVM鏡像容錯(cuò)加遠(yuǎn)程點(diǎn)對(duì)點(diǎn)復(fù)制(PPRC)的方案,實(shí)現(xiàn)生產(chǎn)數(shù)據(jù)的本地高可用性和異地保護(hù)。在通常的雙機(jī)集群的基礎(chǔ)上,建立完全冗余的數(shù)據(jù)存儲(chǔ)系統(tǒng),拓?fù)浣Y(jié)構(gòu)如圖3所示。
采用雙磁盤(pán)系統(tǒng),通過(guò)數(shù)據(jù)復(fù)制的方式,在兩套磁盤(pán)系統(tǒng)之間實(shí)現(xiàn)數(shù)據(jù)同步,可以有效地避免由于單一磁盤(pán)系統(tǒng)發(fā)生故障而導(dǎo)致的系統(tǒng)意外宕機(jī),充分提高了系統(tǒng)的連續(xù)可用性。這種雙磁盤(pán)系統(tǒng)數(shù)據(jù)同步復(fù)制機(jī)制,是基于IBM主機(jī)系統(tǒng)和IBM存儲(chǔ)系統(tǒng)相互配合的卷管理器(logical volume manager,LVM)的數(shù)據(jù)復(fù)制和容災(zāi)方式,是目前技術(shù)成熟度高、實(shí)施快速簡(jiǎn)便、應(yīng)用行之有效的數(shù)據(jù)容災(zāi)方式。采用這種方式,主應(yīng)用系統(tǒng)通過(guò)集群軟件HACMP進(jìn)行主機(jī)之間的接管,實(shí)現(xiàn)應(yīng)用系統(tǒng)的高可用性;數(shù)據(jù)存儲(chǔ)系統(tǒng)可以采用LVM進(jìn)行磁盤(pán)存儲(chǔ)系統(tǒng)之間的接管,實(shí)現(xiàn)應(yīng)用存儲(chǔ)系統(tǒng)的高可用性。即使有一半的主機(jī)系統(tǒng)和一半的存儲(chǔ)系統(tǒng)發(fā)生故障,不能正常工作,整個(gè)系統(tǒng)也不會(huì)發(fā)生癱瘓,仍舊可以繼續(xù)運(yùn)行,充分滿足客戶對(duì)高可靠性和連續(xù)可用性的要求。
應(yīng)用LVM方案,對(duì)用戶的現(xiàn)有環(huán)境沒(méi)有改變,不存在數(shù)據(jù)集中遷移的問(wèn)題,而且業(yè)務(wù)系統(tǒng)保持同時(shí)在線,不存在系統(tǒng)接管、應(yīng)用重新啟動(dòng)的問(wèn)題,可以實(shí)現(xiàn)系統(tǒng)的平滑過(guò)渡。實(shí)施LVM方案,可以在相同型號(hào)或不同型號(hào)的IBM存儲(chǔ)產(chǎn)品之間進(jìn)行。在實(shí)施IBM LVM的數(shù)據(jù)同步方案時(shí),分別將磁盤(pán)系統(tǒng)A和B通過(guò)光纖存儲(chǔ)卡(HBA)連接到SAN交換機(jī)上,主機(jī)可有效地識(shí)別兩套存儲(chǔ)系統(tǒng),對(duì)于應(yīng)用沒(méi)有任何影響。在主機(jī)上,基于磁盤(pán)底層的LVM在兩套磁盤(pán)系統(tǒng)之間建立鏡像關(guān)系,實(shí)現(xiàn)數(shù)據(jù)同步。LVM可以提供操作系統(tǒng)級(jí)別的鏡像功能,即可以為一個(gè)存儲(chǔ)塊提供多份拷貝。該功能包含在邏輯卷管理中,可支持2~3份拷貝的鏡像,具有可選順序(sequential)和并行(parallel)兩種存取方式,在讀數(shù)據(jù)時(shí)可從先找到的拷貝處讀取,加快訪問(wèn)速度。
圖2 應(yīng)用系統(tǒng)容災(zāi)物理拓?fù)?/p>
圖3 數(shù)據(jù)冗余拓?fù)?/p>
鏡像功能在數(shù)據(jù)損壞時(shí),能夠從備份中(最多有3份備份)自動(dòng)恢復(fù),增強(qiáng)系統(tǒng)的可靠性。
僅在本地實(shí)現(xiàn)容災(zāi)是不夠的,還要考慮主系統(tǒng)的物理地點(diǎn)出現(xiàn)災(zāi)難性破壞,地鐵清分中心系統(tǒng)需要設(shè)計(jì)異地災(zāi)備系統(tǒng)。應(yīng)用系統(tǒng)容災(zāi)方案中的異地災(zāi)備部分能夠完全實(shí)現(xiàn)主系統(tǒng)的各項(xiàng)功能,是一個(gè)獨(dú)立完整的系統(tǒng)。異地災(zāi)備部分主要由歷史數(shù)據(jù)服務(wù)器、應(yīng)用服務(wù)器、通信服務(wù)器、加密機(jī)、磁盤(pán)存儲(chǔ)、SAN交換機(jī)、工作站等組成。由于異地災(zāi)備部分與本地主系統(tǒng)之間距離一般不超過(guò)15 km,且機(jī)房之間可以通過(guò)裸光纖連接,所以將異地容災(zāi)系統(tǒng)的存儲(chǔ)通過(guò)裸光纖與主應(yīng)用系統(tǒng)磁盤(pán)存儲(chǔ)連接,實(shí)現(xiàn)數(shù)據(jù)鏡像;歷史數(shù)據(jù)服務(wù)器、應(yīng)用服務(wù)器、通信服務(wù)器則通過(guò)交換機(jī)、防火墻、路由器與本地主系統(tǒng)路由器相連,實(shí)現(xiàn)本地系統(tǒng)失效后異地災(zāi)備的平滑系統(tǒng)接管。
采用操作系統(tǒng)的鏡像復(fù)制、交易緩存/重做機(jī)制等技術(shù)并組合應(yīng)用,可以實(shí)現(xiàn)異地?cái)?shù)據(jù)備份更優(yōu)的目標(biāo)。
2.3.1 操作系統(tǒng)的鏡像復(fù)制
利用通用的IP網(wǎng)絡(luò)傳遞數(shù)據(jù),無(wú)需專門(mén)的網(wǎng)絡(luò)引擎。這種方式和應(yīng)用(尤其是數(shù)據(jù)庫(kù)應(yīng)用)結(jié)合較緊,在數(shù)據(jù)一致性、完整性上保證較好,與數(shù)據(jù)庫(kù)的日志文件基本一致;采用操作系統(tǒng)(OS)級(jí)數(shù)據(jù)復(fù)制方式,具有配置靈活、價(jià)格低、高性能等特征。但是,這種方式最大的缺點(diǎn)是在生產(chǎn)主機(jī)上資源占用太大,復(fù)制的壓力太大。一個(gè)大型系統(tǒng),如果既要保證系統(tǒng)能正常運(yùn)行,又要做大量的復(fù)制和備份工作,就會(huì)成本太高。在交易十分繁忙的應(yīng)用場(chǎng)合,采用這種方式交易數(shù)據(jù)只能用異步方式傳送到遠(yuǎn)程站點(diǎn),即定期、成批地把累積數(shù)據(jù)發(fā)送到異地備份中心。因此,對(duì)數(shù)據(jù)庫(kù)應(yīng)用來(lái)說(shuō),異步不能保證數(shù)據(jù)庫(kù)的一致性,容易造成數(shù)據(jù)庫(kù)癱瘓。該方式(Veritas VR)特有的IO log技術(shù),能保證異步方式數(shù)據(jù)庫(kù)的一致性。
為了實(shí)現(xiàn)數(shù)據(jù)的同步,利用數(shù)據(jù)鏡像功能LVM,為已有的磁盤(pán)A(即圖4的本地?cái)?shù)據(jù))添加一個(gè)拷貝,并將其鏡像設(shè)備指定為磁盤(pán)B(即圖4的異地?cái)?shù)據(jù))。
在正常工作模式下,數(shù)據(jù)的寫(xiě)入操作如圖4所示,其中AIX為高級(jí)交互式操作系統(tǒng)(下同)。
生產(chǎn)系統(tǒng)對(duì)磁盤(pán)A的“本地?cái)?shù)據(jù)”的任何更新都實(shí)時(shí)在磁盤(pán)B的“異地?cái)?shù)據(jù)”得到更新,“本地?cái)?shù)據(jù)”和“異地?cái)?shù)據(jù)”的更新方式可以選擇順序方式或者并行方式,建議使用并行方式以增強(qiáng)整體性能。
圖4 正常工作模式下的數(shù)據(jù)寫(xiě)入流程
當(dāng)本地存儲(chǔ)系統(tǒng)發(fā)生故障時(shí),生產(chǎn)無(wú)需停頓,生產(chǎn)主機(jī)利用異地的數(shù)據(jù)拷貝繼續(xù)運(yùn)行,因?yàn)閮蓚€(gè)系統(tǒng)間采取光纖直連方式,性能的影響可以忽略,如圖5所示。
圖5 本地存儲(chǔ)故障情況下的數(shù)據(jù)寫(xiě)入流程
當(dāng)進(jìn)行本地存儲(chǔ)維修時(shí),斷開(kāi)鏡像關(guān)系;在本地存儲(chǔ)修復(fù)后,恢復(fù)數(shù)據(jù)鏡像關(guān)系,數(shù)據(jù)重新在兩份拷貝間同步。
當(dāng)本地處于災(zāi)難狀態(tài)、雙機(jī)都無(wú)法使用時(shí),異地主機(jī)接管本地主機(jī)的存儲(chǔ)及應(yīng)用,此時(shí)數(shù)據(jù)的同步照常進(jìn)行,如圖6所示。
圖6 本地災(zāi)難下的數(shù)據(jù)寫(xiě)入流程
當(dāng)本地主機(jī)維修恢復(fù)運(yùn)行后,存儲(chǔ)及應(yīng)用由本地生產(chǎn)主機(jī)接管,在正常的運(yùn)行環(huán)境下工作。
2.3.2 交易緩存/重做機(jī)制
設(shè)置專門(mén)的交易報(bào)文緩存區(qū),并在災(zāi)備切換時(shí)通過(guò)交易報(bào)文的重做機(jī)制實(shí)現(xiàn)業(yè)務(wù)數(shù)據(jù)的連續(xù)性,達(dá)到在有限的代價(jià)內(nèi)復(fù)原點(diǎn)目標(biāo)(RPO)為零的優(yōu)化目標(biāo)。
1)主機(jī)及存儲(chǔ)系統(tǒng)失效。主系統(tǒng)部署了2套服務(wù)器、2臺(tái)存儲(chǔ)設(shè)備。當(dāng)其中1臺(tái)失效時(shí),可自動(dòng)存儲(chǔ)切換,業(yè)務(wù)應(yīng)用繼續(xù)運(yùn)行在業(yè)務(wù)中心。如果主系統(tǒng)2臺(tái)服務(wù)器或存儲(chǔ)設(shè)備同時(shí)失效,則可以將業(yè)務(wù)應(yīng)用切換到容災(zāi)中心。
2)系統(tǒng)失效。當(dāng)主應(yīng)用系統(tǒng)失效時(shí),可以將業(yè)務(wù)應(yīng)用切換到異地容災(zāi)中心繼續(xù)運(yùn)行。
3)網(wǎng)絡(luò)失效。如果主應(yīng)用系統(tǒng)與前端連接的網(wǎng)絡(luò)失效,但主應(yīng)用系統(tǒng)的內(nèi)部系統(tǒng)還能發(fā)揮作用,建議主應(yīng)用繼續(xù)運(yùn)行在本地,而業(yè)務(wù)網(wǎng)絡(luò)連接則通過(guò)異地容災(zāi)中心進(jìn)行中轉(zhuǎn)。如果主應(yīng)用系統(tǒng)與前端、主應(yīng)用系統(tǒng)與異地容災(zāi)中心的網(wǎng)絡(luò)連接全部中斷,則需要將業(yè)務(wù)應(yīng)用切換到異地容災(zāi)中心繼續(xù)運(yùn)行。
4)電力故障。當(dāng)主應(yīng)用系統(tǒng)電力出現(xiàn)故障時(shí),建議有序地將業(yè)務(wù)應(yīng)用切換到異地容災(zāi)中心。
5)環(huán)境失效。當(dāng)主應(yīng)用系統(tǒng)的環(huán)境失效導(dǎo)致該系統(tǒng)不適合人員繼續(xù)工作時(shí),建議將業(yè)務(wù)應(yīng)用切換到異地容災(zāi)中心。
6)火災(zāi)。當(dāng)火災(zāi)影響到業(yè)務(wù)中心的運(yùn)作時(shí),建議將業(yè)務(wù)應(yīng)用切換到異地容災(zāi)中心。
7)水災(zāi)、恐怖事件、公共安全事件。如果火災(zāi)影響到主應(yīng)用系統(tǒng)的運(yùn)作而未影響到異地容災(zāi)中心,則建議將業(yè)務(wù)應(yīng)用切換到異地容災(zāi)中心。按照要求,在控制中心與車(chē)輛段建設(shè)同城容災(zāi),清分中心和災(zāi)備中心采用雙網(wǎng)絡(luò)冗余,確保當(dāng)清分中心失效時(shí)可以人工啟動(dòng)災(zāi)備中心進(jìn)行業(yè)務(wù)轉(zhuǎn)接。根據(jù)以往實(shí)施經(jīng)驗(yàn),切換時(shí)間若小于120 min,可保證數(shù)據(jù)不會(huì)丟失。
設(shè)計(jì)合理的清分中心災(zāi)備系統(tǒng),優(yōu)化系統(tǒng)配置,強(qiáng)化相應(yīng)的軟件功能,提高運(yùn)營(yíng)對(duì)突發(fā)事件的管理能力,不僅能夠?qū)崿F(xiàn)既定的數(shù)據(jù)及系統(tǒng)備份的目標(biāo),還能將因故障而導(dǎo)致的業(yè)務(wù)損失降低到最低程度。
[1]夏科芬,李宇軒.清分系統(tǒng)數(shù)據(jù)級(jí)備份復(fù)制容災(zāi)技術(shù)在城市軌道交通系統(tǒng)中的研究與應(yīng)用[J].電腦開(kāi)發(fā)與應(yīng)用,2007,20(8):63-65.
[2]蓋學(xué)琦.災(zāi)備中心規(guī)劃五步走[J].計(jì)算機(jī)技術(shù)理論,2006,43:22-23.
[3]楊曉紅,李健,楊衛(wèi)國(guó).信息系統(tǒng)容災(zāi)技術(shù)的分析與研究[J].計(jì)算機(jī)工程與設(shè)計(jì),2005(26):10.
[4]肖萬(wàn)程.災(zāi)難備份系統(tǒng)[J].中國(guó)信息導(dǎo)報(bào),2003(7):12.
[5]成小平.災(zāi)難備份系統(tǒng)的建設(shè)[J].中國(guó)金融電腦,2003(1):23.
[6]馬錫紅.災(zāi)難性數(shù)據(jù)備份及恢復(fù)[J].中國(guó)金融電腦,2002(6):20.
[7]王富章,李平.關(guān)于網(wǎng)絡(luò)化AFC系統(tǒng)整合方案的研究[J].現(xiàn)代城市軌道交通,2005(5):15-18.