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