技術解析 容錯服務器技術還是雙機冗余?
1980年,當Bill Fost先生苦思冥想在為新公司取個什么名字的時候,無意間看到了飛機外層層疊疊的云層,由此“Stratus”誕生了。但是Bill Fost沒有想到,1990當他們注冊北京辦事處的時候,竟然可以使用“美國容錯計算機公司”,這種用技術術語命名公司的現象,此后再也沒有出現過。不知道國內有多少用戶知道 “美國容錯計算機公司”,進而了解容錯技術,但是相信,這幾年數量有限與很多技術領先型公司相類似,“酒香不怕巷子深”是其風格,市場上的低調在一定程度上制約了發(fā)展。
容錯的含義比較寬泛,這種不確定性容易引發(fā)歧義,增加理解上的難度。從概念上來說,容錯是指服務器對于錯誤的容納能力,是應用過程中對于服務器穩(wěn)定性追求的一個目標。為了這樣一個目標,有幾種技術上的實現方法,目前國內談論最多的是三種:服務器群集技術、雙機冗余服務器方案和單機容錯技術。
實際上,服務器群集和雙機冗余的技術比較類似,雙機冗余是最簡單的集群,是其一個特例,也可以把服務器集群技術視為雙機冗余的延伸,可以理解為一種多機容錯的方案。在一般的討論之中,集群技術是為了解決計算性能不足的問題,通過多臺服務器的集群計算,為高性能計算領域應用提供所需要的高性能。采用集群技術,通過多臺服務器之間的負載均衡,可以解決服務器單點故障所引發(fā)的系統不穩(wěn)定,提高系統的可靠性,因此集群具有更好的容錯能力,但是在實際的應用中,集群技術多用于高性能計算。
單機容錯技術以Stratus公司的ftServer、惠普公司的NonStop服務器和NEC公司的Express5800/ft為代表。這種技術具有比雙機冗余方案更高的容錯能力。據記者查閱有關技術資料,雙機冗余系統的可靠性可以達到99.9%,也就是3個9的能力,而Stratus公司的方案,其可靠性可以達到5個9。在記者的采訪中,惠普公司企業(yè)服務器產品經理陳武勝表示,其NonStop服務器作為目前惠普公司最高檔的服務器,其可靠性可以達到7個9的水平。在記者看來,雙機冗余與單機容錯有很多的差異,絕不是3個9和5個9的區(qū)別。為了了解這些區(qū)別,記者分別采訪了有關軟硬件廠商,并結合實際的應用案例,幫助讀者了解有關容錯服務器的技術。
產品技術篇之一 “沒有錯誤”的容錯服務器技術
單機容錯技術是我們?yōu)榱藚^(qū)別雙機冗余技術對Stratus等容錯服務器的稱謂,但是在我的采訪中,有關服務器廠商都不愿意采用這個稱謂,他們更愿意采用容錯服務器,因為單機只是一個表現形式,并不能準確表達其技術的特征。IDC資詢師將這種技術稱之為“沒有錯誤”的容錯服務器技術。
容錯與同步技術
美國容錯公司技術顧問高峰在接受記者采訪時表示,容錯服務器的技術并不難理解,計算機自誕生之日起,其系統結構并沒有發(fā)生任何改變,仍然是馮諾依曼教授所提出的由運算器(CA)、控制器(CC)、存儲器M和輸入/輸出裝置所組成,而容錯服務器的思路就是把所有這些部件全部采用冗余硬件設計。兩個部件共運行同一個任務,以此來提高系統的運行可靠性。
這種思路和方法在其他服務器產品中也有采用,據富士通公司首席技術官周一平介紹,富士通PRIMEQUEST服務器就采用了這種方法,該服務器采用英特爾安騰2處理器,富士通把很多大型機和 Unix小型機的技術進行了遷移。例如把處理器、內存和PCI總線進行冗余設計,使系統具有高的可靠性。
高峰表示,這種冗余硬件的設計并不難理解,但是最為困難的是如何保證計算和數據在硬件中的同步,這是Stratus核心的專利技術。在Stratus容錯服務器中,它被稱為同步(Lockstep)技術,在惠普的NonStop服務器中被稱為鎖步技術。
安騰還是x86
容錯服務器另外一個需要關注的焦點是處理器。據陳武勝介紹,目前惠普的NonStop服務器分為兩個系列:NonStop S和Integrity NonStop,其產品的差別在于所采用處理器芯片不同,NonStop S所采用的是MIPS芯片,是收購原美國天騰公司的產品,而Integrity NonStop所采用的是英特爾安騰2處理器。
陳武勝表示,除了處理器的差別之外,新的Integrity NonStop具有很多新的設計,例如采用3部件的冗余設計,此外系統總線也有很大改進,因此其可靠性才能夠達到7個9的水平。他指出,目前安騰2芯片已經內置了Lockstep同步技術,在芯片級提供了系統容錯設計的能力。而此前處理器芯片不具備這樣的能力,就需要通過外部結構設計來解決同步的問題。據了解,Integrity NonStop可以進一步分為NS1000、NS14000和NS16000,分為入門級、中高端和最高端服務器產品,其中最高端的NS16000服務器,其每個服務器的節(jié)點采用2~16個安騰2處理器。這些處理器節(jié)點通過惠普公司獨特的ServerNet進行連接,可以提供多達4080個處理器計算能力。
在Stratus公司的產品中,更加強調容錯的能力。據高峰介紹, ftServer已經是該公司第四代產品系列,此前先后經歷過Motorola M68000、Intel I860芯片、HP PARISC等不同處理器,以及VOS專有操作系統等階段。目前第四代產品采用基于x86結構的Intel 處理器,其W系列最高的6600可以實現基于容錯的4路雙核處理器的計算。高峰表示,Stratus將會在今年發(fā)布基于8路的容錯服務器產品。
高峰表示,容錯服務器選擇哪種處理器的關鍵還是要根據應用的需求。安騰處理器采用了全新的64位計算架構,需要配合主機級的NonStop操作系統。與之相比,x86架構應用比較普遍,用戶軟件無須要進行二次開發(fā)。Stratus公司之所以采用Linux、Windows等通用的平臺代替專用的VOS操作系統,就是為了降低容錯服務器的應用成本。
“無解”的軟件故障
容錯服務器通過硬件部件的冗余設計,以及同步技術的保證,可以有效解決因為硬件原因所造成的系統故障,但是并不能解決軟件故障。
高峰表示,雖然在理論上存在著兩個相同部件同時損壞的情況,但是隨著硬件水平的提高,這種概率是比較低的。高峰表示,容錯硬件的設計一方面可以防止硬件的單點故障,同時也可以防止硬件所造成的計算錯誤,并對此做出校正。從技術的角度來看,所有軟件在硬件看來就是0和1,但是在某些情況下,硬件會產生不穩(wěn)定,造成非0非1的中間狀態(tài),就會產生計算的錯誤,這種錯誤并不一定導致系統宕機,其錯誤不易被察覺。
在容錯服務器中,由于采用冗余部件同時運行同一應用任務,這樣當兩個系統產生不一樣計算結果的時候,系統就會察覺,并通過技術手段對于計算錯誤進行校驗,從而提高應用的準確性。但是如果是軟件本身的問題,無論是操作系統還是應用軟件,那么容錯服務器沒有辦法對于這種錯誤進行修整。因為對于容錯服務器而言,硬件所能夠辨別的就是0和1,至于0和1所蘊含的軟件邏輯,硬件無從辨別。高峰表示,軟件的問題只能夠通過軟件的方法加以解決。有些用戶對此存在一些誤解,認為容錯服務器不會宕機,實際上容錯服務器只能夠解決硬件的故障。
關于容錯服務器應用,記者也采訪了NEC技術經理黃后生,他表示,選擇容錯服務器的意義在于為關鍵業(yè)務應用提供可靠的硬件平臺。黃后生表示,用戶為追求系統可靠性,往往會選擇小型機,但這會增加成本,同時也對企業(yè)的技術人員提出了比較高的要求。但是選擇容錯服務器沒有這樣的要求,可以使用他們比較熟悉的Windows平臺或者Linux平臺。
黃后生表示,目前NEC的Express5800/ft服務器在原理上與Stratus非常類似,兩家公司在技術上有著戰(zhàn)略合作,共同開發(fā)有關容錯服務器的相關技術。目前NEC是Stratus公司的投資股東,持有 Stratus公司部分股票。在全球服務器市場上,NEC位列前5強,具有豐富應用和推廣的經驗,以及雄厚的市場推廣能力。在技術支持和服務方面,NEC 已經建立了非常好的渠道,這些優(yōu)勢都有助于容錯服務器在中國的應用和推廣。
產品技術篇之二基于“心跳”的雙機冗余服務器方案
相對于容錯服務器,雙機冗余服務器解決方案比較簡單,目前服務器廠商都可以提供。它所采用的是兩臺配置完全一樣的服務器系統,當一臺機器出現故障的時候,另外一臺機器接替其工作,保證系統的穩(wěn)定工作。
雙機熱備的兩種模式
雙機熱備有兩種實現模式,一種是比較標準的,兩臺服務器通過一個共享的存儲設備(磁盤陣列或存儲區(qū)域網SAN),并且安裝雙機軟件,實現雙機熱備,稱為共享方式。另一種方式是通過純軟件的方式,一般稱為純軟件方式或鏡像方式(Mirror)。
基于存儲共享的雙機熱備是最標準的方案。對于這種方式,采用兩臺或者多臺服務器,使用共享存儲設備,兩臺服務器之間可以采用互備、主從、并行等不同的工作方式。在工作過程中,兩臺服務器將以一個虛擬的IP地址對外提供服務,依工作方式的不同,其服務請求將發(fā)送給其中一臺服務器承擔。當一臺服務器出現故障時,另一臺服務器根據心跳偵測的情況做出判斷,并進行切換,接管服務。對于用戶而言,這一過程是全自動的。這種模式好處在于兩臺服務器所使用數據相同,但是也有用戶擔心,共享存儲設備會成為系統單一故障點。為此,存儲廠商也針對存儲設備推出了雙冗余的方案。
純軟件雙機冗余方案是一個更加經濟的方案,其沒有集中式存儲設備,其數據保存在服務器各自的硬盤上,通過支持鏡像的雙機軟件,將數據實時復制到另一臺服務器上。純軟件方案其數據同步運行在兩臺服務器上,如果一臺服務器出現故障,可以及時切換到另一臺服務器上。采用純軟件方式避免了磁盤陣列的單點故障;節(jié)約投資,不需購買昂貴的磁盤陣列;不受距離的限制;可以靈活地部署服務器。
軟件水平是關鍵
無論采用哪一個廠商的雙機冗余服務器解決方案,所采用的雙機或集群軟件是其中的關鍵,軟件定了,方案的容錯水平也就定了。
目前市場上在Windows平臺下比較常見的雙機軟件有DataWare、Lander Cluster和LifeKeeper;在Linux平臺下有DataWare、ROSE HA、PCL HA、 LifeKeeper和Lander Cluster等。此外,在SCO Unix和Sun Solaris平臺下常用的軟件有Lander Cluster和PCL HA。
為了對這些軟件的性能有所了解,記者采訪了DataWare的生產廠商,來自臺灣的ProWere公司,其在北京的辦事處豪威科技首席代表白廣凌和蔡雪濤工程師介紹了有關情況。白廣凌表示這些軟件在功能上都差不多,如自動偵測功能。它在兩臺服務器之間提供異常情況互相監(jiān)控,如果其中一臺主機發(fā)生故障,則故障機制立刻執(zhí)行,如果不能在故障主機解決,所有資源將自動切換到另一臺主機。雙機軟件一般提供兩種模式:Active / Standby 模式和Active / Active 模式,前者一臺作業(yè)主機承擔所有的工作負載,另一臺主機處于備援狀態(tài);而后者則是兩臺主機共同分擔工作負載,如果其中一臺主機故障,另一臺主機將自動承擔所有的工作負載。
蔡雪濤指出,雙機軟件的關鍵在于切換,最為忌諱的情況就是誤切換。如果雙機都認為對方發(fā)生了故障,就會產生兩臺主機相互爭奪資源的情況,就將導致嚴重的后果。蔡雪濤表示,雙機冗余服務器解決方案不能夠替代數據備份,以純軟件方式為例,如果數據有錯誤,那么其另一臺機器上的鏡像肯定也是錯誤的,因此雙機冗余服務器解決方案不能解決類似的錯誤。采用數據集中存儲的方式,無論是NAS還是SAN,兩臺服務器所使用的是同一個數據。但是存儲設備存在單一故障的風險,為此,ProWere推出了針對NAS存儲的雙冗余解決方案。
蔡雪濤表示,不同的雙機軟件在細節(jié)上還是有一些差異,最主要的是故障偵測的機制。兩臺服務器之間一般通過“心跳”線進行偵測,“心跳”線的連接有串口、SCSI和網絡連接三種方式。在一般情況下,應該至少采用兩種連接方式,以增加偵測的準確性。
目前雙機應用的范圍比較廣泛,無論在銀行、電信、政府、電力、石油、新聞出版、生產制造等行業(yè),凡涉及關鍵業(yè)務應用的領域,雙機冗余都是一個重要的解決方案。但是雙機冗余服務器方案同樣不能夠解決軟件的故障。蔡雪濤指出,以常見的數據庫故障為例,有些時候數據庫莫名其妙打不開了,在這種情況下,只有重新安裝數據庫,沒有其他好的辦法。蔡雪濤提醒用戶,雙機冗余不能夠替代備份,數據備份和災難恢復系統是應對故障最好的辦法。
案例應用篇電力SIS系統的選擇
廠級監(jiān)控信息系統(SIS系統)是目前電廠信息化建設的重要系統。據北京京能熱電股份有限公司(京能熱電)副總工程師李東介紹,SIS位于電廠管理信息 (MIS)系統與各種分散控制(DCS)系統之上,以經濟運行和提高發(fā)電企業(yè)整體效益為目的,采用先進、適用、有效的專業(yè)計算方法,實現整個電廠范圍內的信息共享,對廠級生產過程進行實時信息監(jiān)控和調度,提高機組運行的可靠性。
SIS系統為管理層決策提供了真實、可靠的實時運行數據。與此同時,與職工息息相關的績效考核等工作,也需要SIS系統提供支持。據了解,京能熱電從去年下半年開始實施SIS系統,其首要的任務就是選擇硬件支撐平臺。李東表示,SIS系統涉及大量復雜過程的實時信息數據操作,因此硬件平臺應該選用高性能、高可用性、升級便捷和維護方便的企業(yè)級數據庫服務器,同時應該兼顧開放式的體系結構和分布式系統設計。
經過對現有硬件平臺的分析比較,京能熱電最終選擇了Stratus ftServer W 系列 3300 服務器。據李東介紹,該服務器采用部件級冗余的工業(yè)標準容錯服務器,其可靠性設計達到99.999%以上,其中電源、CPU、內存、I/O控制組件均采用冗余配置。通過該服務器的CPU/MEM集成鎖步(Lock-Step)技術,其冗余部件在同一時鐘周期做同樣的指令,動態(tài)數據得到保護。
與雙機冗余服務器方案進行比較,京能熱電方面認為,容錯服務器具有更高的可靠性和系統可用性,在此,李東特別提到了I/O部件的冗余,他們也配對工作,能夠在發(fā)生故障時進行接管,切換時間在毫秒級。切換過程不需要使用任何軟件和編寫腳本程序。
從配置來看,該服務器采用雙路Intel Xeon 3.2GHz 處理器,二級緩存為1MB,其內存配置為2GB DDR。該服務器采用Windows Server 2003簡體中文企業(yè)版操作系統,配置相應的服務器管理軟件,在硬盤方面采用工業(yè)標準熱插拔內置硬盤,并作RAID 1保護,實際數據容量大于300GB,最大可達到480GB。該服務器集成一對雙口10/100/1000自適應RJ45以太網卡,四個網口可兩兩配對,互為冗余,每對網口可配置成同一IP地址,隨時進行故障切換。據了解,該服務器所有部件均可以模塊化方式進行熱插拔,即CPU、內存、電源、風扇、硬盤、網卡、所有I/O設備、甚至主機板出現故障時,均可不停機進行更換,能把硬件故障導致的平均非計劃停機時間控制在每年5分鐘之內。
李東表示,之所以選用Stratus公司的ftServer系列產品,有一個非常重要的原因,即目前國內市場上所采用的SIS系統軟件基本上基于 Windows平臺,因此基于x86平臺的ftServer就成為當然之選。如果是選用惠普公司的Integrity NonStop服務器,其應用軟件運行在NonStop OS之上,有別于Windows操作系統,將涉及到應用軟件的修改。李東也就雙機冗余方案進行了對比,經過他們測算,如果采用雙機冗余方案,需要購買兩套操作系統、兩套數據庫產品,那么其總體的投資與容錯服務器方案相當,而系統的可用性方面,容錯服務器顯然更具有優(yōu)勢。對此, Stratus公司高峰表示,目前國內的采購,軟件和硬件大多分開招標,這非常不利于用戶計算總體成本,對于容錯服務器產品銷售也有一定的影響。
李東表示,目前國內行業(yè)用戶對于軟件的正版化問題已經足夠重視,這非常有利于容錯服務器的應用推廣,從他們的應用實踐看,容錯服務器是一個不錯的選擇。
【編輯推薦】