分布式高可用IC卡系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
文章出處:http://www.sgrivertours.com 作者:陳占偉 人氣: 發(fā)表時(shí)間:2011年11月23日
在很多普通高校、職高、高中的食堂,以前一般采用單機(jī)售飯IC卡系統(tǒng),隨著學(xué)校的擴(kuò)招、信息的增多,導(dǎo)致數(shù)據(jù)庫(kù)服務(wù)器訪問(wèn)量增大,數(shù)據(jù)量急劇膨脹,負(fù)載壓力增大,同時(shí)校內(nèi)超市的并人,要求應(yīng)用系統(tǒng)24小時(shí)不問(wèn)斷運(yùn)行。系統(tǒng)的復(fù)雜性及應(yīng)用環(huán)境的多樣化。給系統(tǒng)的運(yùn)行帶來(lái)不穩(wěn)定因素。有時(shí)會(huì)造成操作系統(tǒng)的崩潰。在系統(tǒng)故障的這段時(shí)間內(nèi)。客戶的應(yīng)用系統(tǒng)則完全中斷,無(wú)法進(jìn)行正常的業(yè)務(wù)交易,并且可能造成數(shù)據(jù)的損壞或丟失,這會(huì)給學(xué)校產(chǎn)生嚴(yán)重影響,甚至造成難以挽回的損失。單機(jī)食堂售飯IC卡系統(tǒng)存在的適用范圍小、安全性差、可用性不高等問(wèn)題日益突出。已滿足不了需要 因此,如何避免數(shù)據(jù)訪問(wèn)的瓶頸同時(shí)做到有效的數(shù)據(jù)保護(hù),是系統(tǒng)管理員刻不容緩的課題。
目前。校園網(wǎng)中許多原有的單臺(tái)服務(wù)器的并發(fā)處理能力及負(fù)載能力已越來(lái)越無(wú)法滿足需求,提高服務(wù)器性能已迫在眉睫。重新購(gòu)買(mǎi)新的性能更高的服務(wù)器,如小型機(jī)或當(dāng)下較為流行的刀片集群服務(wù)器是一種解決方法,但首先成本太高,其次是許多原有服務(wù)器仍較新,各方面的性能指標(biāo)良好,廢棄不用將造成極大的資源浪費(fèi)。面對(duì)不斷增加的負(fù)載壓力,可以從兩個(gè)方面來(lái)提升網(wǎng)絡(luò)服務(wù)器的響應(yīng)能力。一方面。可從客戶訪問(wèn)行為分析人手,主要研究Caching技術(shù),以縮小響應(yīng)時(shí)間,這種技術(shù)可以在現(xiàn)有服務(wù)器設(shè)備的基礎(chǔ)上盡可能地提高系統(tǒng)的性能,但性能提高的力度有限。
另一方面,可以從服務(wù)器的硬件性能來(lái)考慮:① 從服務(wù)器單機(jī)性能人手,提高服務(wù)器的性能,以高昂的價(jià)格換取性能的提高。高可用服務(wù)器,企業(yè)級(jí)一般價(jià)格在10,000~15,000美元;高可用系統(tǒng),根據(jù)處理器個(gè)數(shù) 冗余設(shè)備、服務(wù)器個(gè)數(shù)等配置狀況。一般價(jià)格要超過(guò)250,000美元;容錯(cuò)服務(wù)器則需要70 000~1 000 000美元。顯然一般學(xué)校承受不起。
② 從體系結(jié)構(gòu)人手,將過(guò)去單一的服務(wù)器模式擴(kuò)充為多服務(wù)器模式,用多臺(tái)計(jì)算機(jī)來(lái)協(xié)作完成本來(lái)由一臺(tái)服務(wù)器完成的功能。即分布式技術(shù)。這種技術(shù)可以顯著提高服務(wù)器的總體性能。并且具有良好的可擴(kuò)展性與高可靠性。根據(jù)學(xué)校的現(xiàn)有情況,采用分布式技術(shù)解決單臺(tái)服務(wù)器性能局限形成的系統(tǒng)訪問(wèn)瓶頸的問(wèn)題。
1 分布式高可用系統(tǒng)簡(jiǎn)介
分布式系統(tǒng)是由一些連接在一起的計(jì)算機(jī)構(gòu)成的一個(gè)并行或分布式的系統(tǒng)。不管內(nèi)部結(jié)構(gòu)如何復(fù)雜,從外部來(lái)看,它就是一個(gè)持續(xù)性地提供統(tǒng)一高性能服務(wù)的系統(tǒng)。分布式系統(tǒng)允許用戶把普通商用硬件系統(tǒng)組成機(jī)群。并根據(jù)需要隨時(shí)增加新的硬件。提高系統(tǒng)的伸縮性和可用性,從而能夠在價(jià)格相對(duì)低廉的中低端平臺(tái)上享用過(guò)去只有高端系統(tǒng)才具備的高可伸縮性和高可用性,既提高了系統(tǒng)的性能,同時(shí)也降低了成本。
計(jì)算機(jī)系統(tǒng)的可用性包括:可靠性(MTTF)和可維護(hù)性(MTTR) 計(jì)算機(jī)系統(tǒng)的可靠性用平均無(wú)故障時(shí)間(MTTF)來(lái)度量,即計(jì)算機(jī)系統(tǒng)平均能夠正常運(yùn)行多少時(shí)間才發(fā)生一次故障。系統(tǒng)的可靠性越高,平均無(wú)故障時(shí)間越長(zhǎng)??删S護(hù)性用平均維修時(shí)間來(lái)度量(MTTR),即系統(tǒng)發(fā)生故障后維修和重新恢復(fù)正常運(yùn)行平均花費(fèi)的時(shí)間。系統(tǒng)的可維護(hù)性越好,平均維修時(shí)間越短。計(jì)算機(jī)系統(tǒng)可用性定義為:MTTF/(MTTF+ MTTR)*100 。
計(jì)算機(jī)產(chǎn)業(yè)界常用“9”的個(gè)數(shù)來(lái)劃分計(jì)算機(jī)系統(tǒng)的可用性的類(lèi)型。一般將3個(gè)9(99.9 )以上的系統(tǒng)可用性。且在其支撐的業(yè)務(wù)運(yùn)營(yíng)的時(shí)間段內(nèi),能提供穩(wěn)定持續(xù)的系統(tǒng)連接、能滿足業(yè)務(wù)對(duì)性能的要求,能保證業(yè)務(wù)數(shù)據(jù)安全,即使出現(xiàn)故障也能在最短時(shí)間內(nèi)恢復(fù)的系統(tǒng)稱(chēng)為高可用性系統(tǒng)。
分布式高可用系統(tǒng),在進(jìn)入正常運(yùn)行狀態(tài)后。通過(guò)專(zhuān)用的通訊鏈路和其它節(jié)點(diǎn)進(jìn)行通訊。傳輸各節(jié)點(diǎn)的狀態(tài)信息,使各節(jié)點(diǎn)的核心管理模塊獲得所有節(jié)點(diǎn)的實(shí)時(shí)狀態(tài)。當(dāng)系統(tǒng)中有節(jié)點(diǎn)故障時(shí)。管理模塊根據(jù)當(dāng)前的狀態(tài)和該故障節(jié)點(diǎn)在系統(tǒng)中的角色做出系統(tǒng)是否重組。當(dāng)該節(jié)點(diǎn)為工作機(jī)時(shí),系統(tǒng)會(huì)自動(dòng)將屬于該節(jié)點(diǎn)的資源和任務(wù)移交到下一個(gè)備用節(jié)點(diǎn),保證該業(yè)務(wù)正常運(yùn)行。傳統(tǒng)的分布式系統(tǒng)產(chǎn)品提供磁盤(pán)陣列系統(tǒng)做為高可用產(chǎn)品不可缺少的部分,但用戶一直擔(dān)心單點(diǎn)故障的產(chǎn)生。所以磁盤(pán)陣列的可靠性一直是用戶命懸一線的關(guān)鍵。用戶不昔巨資購(gòu)建子存儲(chǔ)系統(tǒng)。或異地存儲(chǔ)子系統(tǒng)來(lái)保證數(shù)據(jù)的安全性。
2 系統(tǒng)采用的方案
采用雙機(jī)熱備方法。雙機(jī)熱備的原理:當(dāng)一臺(tái)服務(wù)器(主機(jī))在工作時(shí),另一臺(tái)服務(wù)器(備機(jī))作備用狀態(tài)。當(dāng)主機(jī)因?yàn)槟撤N原因出現(xiàn)故障。不能繼續(xù)提供服務(wù)時(shí),備用機(jī)能夠在規(guī)定的時(shí)間內(nèi)接替主機(jī)的工作,從而達(dá)到不停機(jī)的服務(wù)。備份方案分雙機(jī)冷備份和雙機(jī)熱備份兩種。雙機(jī)冷備份為主機(jī)實(shí)時(shí)工作,從機(jī)等待備用,這種方案最大的問(wèn)題是無(wú)法實(shí)現(xiàn)實(shí)時(shí)數(shù)據(jù)備份。雙機(jī)熱備份有雙機(jī)鏡像和共享磁盤(pán)陣列兩種方案。共享磁盤(pán)陣列方案為兩臺(tái)主機(jī)共用一個(gè)磁盤(pán)陣列。優(yōu)點(diǎn)是不降低系統(tǒng)性能,但要求磁盤(pán)陣列具有較高的可靠性,出現(xiàn)了單點(diǎn)故障。
雙機(jī)鏡像方案將主數(shù)據(jù)庫(kù)服務(wù)器上的表、文件、數(shù)據(jù)庫(kù)等通過(guò)專(zhuān)用連接通道鏡像到備用服務(wù)器上,優(yōu)點(diǎn)是簡(jiǎn)單、便宜,對(duì)數(shù)據(jù)維護(hù)的能力與共享磁盤(pán)陣列方案相同。雖然系統(tǒng)針對(duì)硬件的備份對(duì)提高可靠性有較大影響,但從方案的靈活性,投資相對(duì)小等方面考慮 ,本系統(tǒng)采用雙機(jī)熱備中的雙機(jī)鏡像軟件解決方案(如圖1所示)。雙機(jī)熱備軟件實(shí)現(xiàn)的關(guān)鍵是如何進(jìn)行實(shí)時(shí)監(jiān)控和數(shù)據(jù)備份。使用“心跳”檢測(cè)等方法可以得到主機(jī)的運(yùn)行狀態(tài),在合適的時(shí)機(jī)進(jìn)行控制權(quán)的轉(zhuǎn)換是系統(tǒng)正常運(yùn)行的保障。數(shù)據(jù)庫(kù)、實(shí)時(shí)數(shù)據(jù)等均需通過(guò)TCP/IP網(wǎng)絡(luò)鏡像到從機(jī)上,以保證數(shù)據(jù)的完整性。此外,同步可以防止多個(gè)應(yīng)用程序之間的訪問(wèn)沖突。對(duì)整個(gè)系統(tǒng)的嚴(yán)格測(cè)試最終驗(yàn)證了系統(tǒng)的可行性、可靠性和切換的無(wú)縫性。
圖1 純軟件雙機(jī)熱備份系統(tǒng)
對(duì)于純軟件的方式,通過(guò)鏡像軟件,將數(shù)據(jù)可以實(shí)時(shí)復(fù)制到另一臺(tái)服務(wù)器上,這樣同樣的數(shù)據(jù)就在兩臺(tái)服務(wù)器上各存在一份,如果一臺(tái)服務(wù)器出現(xiàn)故障,可以及時(shí)切換到另一臺(tái)服務(wù)器。準(zhǔn)備采用內(nèi)存鏡像的技術(shù),這個(gè)技術(shù)的優(yōu)點(diǎn)是所有的應(yīng)用程序和網(wǎng)絡(luò)操作系統(tǒng)在兩臺(tái)主機(jī)上鏡像同步,當(dāng)主機(jī)出現(xiàn)故障時(shí),備機(jī)可以在幾乎沒(méi)有感覺(jué)的情況下接管所有應(yīng)用程序。
3 主要問(wèn)題的解決
沒(méi)有了公共存儲(chǔ)設(shè)備磁盤(pán)陣列,對(duì)于某一個(gè)需要進(jìn)行切換的服務(wù)而言,怎樣保證其所用的數(shù)據(jù)在兩臺(tái)服務(wù)器上是一致的呢?這就是數(shù)據(jù)鏡像軟件的功能所在一通過(guò)網(wǎng)絡(luò),將某一臺(tái)服務(wù)器上指定路徑下的數(shù)據(jù)采用同步或異步方式,鏡像到另一臺(tái)服務(wù)器。鏡像軟件取代雙機(jī)熱備份系統(tǒng)的磁盤(pán)陣列,關(guān)鍵在于其必須與Cluster軟件協(xié)同工作。當(dāng)某一服務(wù)運(yùn)行于服務(wù)器A時(shí),它所使用的特定數(shù)據(jù)在服務(wù)器A上對(duì)應(yīng)于一個(gè)數(shù)據(jù)集合ФA,通過(guò)NTMirror將源數(shù)據(jù)集ФA鏡像到服務(wù)器B成為目標(biāo)數(shù)據(jù)集ФB,當(dāng)NT Cluster將該服務(wù)程序從服務(wù)器ФA切換到服務(wù)器ФB時(shí),它使用服務(wù)器B上的數(shù)據(jù)ФB,同時(shí)NTMirror自動(dòng)修改原來(lái)從ФA到ФB的鏡像成為從ФB到ФA的鏡像。對(duì)一個(gè)服務(wù)程序是這樣,對(duì)多個(gè)服務(wù)程序,則一一建立服務(wù)程序與數(shù)據(jù)鏡像集之間的關(guān)系。這樣,無(wú)論服務(wù)程序運(yùn)行于哪一個(gè)服務(wù)器,始終保證其所使用的數(shù)據(jù)在對(duì)端服務(wù)器有一份鏡像存在;當(dāng)一臺(tái)服務(wù)器發(fā)生故障失效,另一臺(tái)可在保證提供自己原有服務(wù)的同時(shí),啟動(dòng)失效服務(wù)器的應(yīng)用程序從而取代其服務(wù)器功能。
4 結(jié)束語(yǔ)
該系統(tǒng)使校園IC卡在性能、安全等方面得到提高和進(jìn)化,同時(shí)降低成本,在應(yīng)用數(shù)量增多、負(fù)載增大時(shí)雙機(jī)軟件還可以平滑過(guò)渡到集群軟件,易于擴(kuò)展。
(河南周口師范學(xué)院彭海云 陳占偉)