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