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