摘 要:錯誤的頻繁發生已經成為阻礙網格穩健發展和大規模應用的主要障礙之一,網格系統的容錯性研究顯得尤為重要。根據網格計算的特點,提出了網格環境下的特殊容錯需求;結合用戶的服務質量要求,建立了包括網格錯誤檢測與網格錯誤管理的動態容錯服務架構,闡述了錯誤檢測服務與錯誤管理服務的組織結構、各組成模塊的具體功能;最后,給出了一個完整的容錯服務實現過程。
關鍵詞:網格; 容錯; 服務架構; 錯誤檢測; 錯誤管理
中圖分類號:TP311 文獻標志碼:A 文章編號:1001-3695(2008)08-2534-03
Dynamic fault-tolerance service framework for grid
JI Xiao-bo1a,CHEN Shu-yu1b, TIAN Dong1a,2, WANG Rong-bin1a
(1.a.College of Computer Science, b. College of Software Engineering, Chongqing University, Chongqing 400044, China; 2.Computer Software Development Ceanter of Guizhou Province, Guiyang 550000, China)
Abstract:Frequent occurrence of fault had been one of the primary obstacles to baffle the moderate development and scalable application of grid, it became extraordinarily important to research fault-tolerance of the grid system. According to the characteristics of grids, this paper summarized the special fault tolerance requirements of grid environment.Combined with the user’s QoS demands, established dynamic fault tolerance service architecture, which included grid fault detection and fault management services. Furthermore, illustrated the framework of the fault detection service and fault management service . At last, proposed an entire implementation procedure of fault tolerance service.
Key words:grid; fault-tolerance; service framework; fault detect; fault manage
網格構建于廣域、共享網絡之上,動態集成跨越多個組織域的資源,為應用提供高效、海量的計算與數據處理能力。在網格環境中,存在著成千上萬種通過網格平臺交互執行的資源、服務和應用程序,由于這些實體本身的高度異構特性,不僅存在實體自身可能的錯誤,而且存在因實體間的交互引起的錯誤。此外,由于機器故障、網絡斷開或遠程主機優先使用本地計算資源而導致進程終止,最終導致網格節點不可用的情況也普遍發生。目前,網格環境下提出的容錯架構[1~3]在擴展性、實用性、通用性等方面存在的問題有待進一步解決。
1 網格的容錯需求
在深入分析網格環境下可能出現的錯誤情形基礎上,本文認為,當且僅當發生以下兩種情形或其中之一時,稱網格系統發生錯誤:
a)由于資源崩潰導致其停止服務;
b)資源的可用性達不到最低的QoS標準。
在實現網格的容錯功能時,重點要研究網格資源的故障檢測方法,并為每一種故障提出各自合適的故障處理方法,保證正在運行的程序可靠執行。
1.1 通用的錯誤檢測機制
錯誤檢測機制的高效和通用性是判斷系統容錯性能是否設計良好的首要條件[4]。在設計網格環境下的通用錯誤檢測機制時,必須充分考慮網格的標準協議、各管理域的本地策略、高度異構的子集等因素,從而對設計錯誤檢測機制提出了新的要求,即錯誤檢測機制既不影響網格節點的本地管理策略,也不能對已有的網格協議作任何修改,這無疑加大了通用錯誤檢測機制的設計難度。由于網格的通用、異構、動態與大規模的特點,決定了網格環境下的錯誤檢測必須有效解決以下幾個問題,即消息爆炸、可擴展性、靈活性、網絡丟包問題[5,6]。
1.2 支持多種錯誤恢復技術的錯誤處理
由于網格的廣域、動態特性以及網格平臺軟件組件與網格應用多種多樣,導致在網格上有各種各樣的錯誤發生。而在目前的研究中,對于錯誤處理大多集中在對于某一種錯誤的處理方法,而不能處理多種語義下的網格錯誤。網格環境下的錯誤處理必須滿足以下要求:靈活多樣的錯誤處理策略、與應用程序代碼相分離的機制、支持指定任務錯誤處理[7]。
2 網格動態容錯服務架構
根據網格的容錯需求,結合開放網格服務架構(OGSA)的特點,提出增加容錯服務功能的動態容錯網格架構,如圖1所示,錯誤檢測服務和錯誤管理服務是該架構的核心部分。該架構可以實現網格計算環境在應用程序調度與執行時的自維護,當網格節點動態加入或離開時,不影響網格系統的一致性。
1)錯誤檢測服務(FDS) 主要負責監視進程、處理器和網絡的狀態,判斷錯誤發生與否,并將出錯信息發送至錯誤管理服務;
2)錯誤管理服務(FMS) 根據錯誤檢測服務發送的出錯信息,根據不同的錯誤類型和用戶的QoS需求,選擇合適的錯誤恢復策略,并執行相應的錯誤恢復進程;
3)QoS資源管理器(QoS RM) 由QoS需求定義和策略定義接口兩部分組成,主要是用于接受用戶對于應用的QoS需求[8,9],以及用戶自己定義的處理策略,實現網格錯誤處理的靈活性及滿足應用需要的服務質量;
4)網格資源分配管理(GRAM) 主要負責網格應用程序運行所需資源的分配和任務的運行控制;
5)元計算目錄服務(MDS) 主要包括數據庫、網格信息索引服務(GIIS)和網格資源信息服務(GRIS),它們主要是用來記錄網格節點信息和正在節點上運行的應用程序信息,以及用戶任務進行提交、注冊的基本信息;
6)資源列表(RL) 指可用于運行應用程序的資源,包括進程資源、處理器資源、網絡資源。
3 錯誤檢測服務
3.1錯誤檢測器
錯誤檢測服務由一系列層次狀組織結構的錯誤檢測器組成,內部結構主要包含以下五種服務:
a)狀態監視服務。負責監視與網格應用運行相關的進程、處理器和網絡(稱為被監視組件)的狀態。(a)根據心跳機制動態掌握被監視組件的存活狀態,并將心跳消息實時發送給統計服務;(b)根據用戶定義的QoS需求,動態掌握被監視組件滿足用戶QoS需求狀況,并將它們實時發送給QoS服務。
b)統計服務。負責接收狀態監視器發送過來的心跳消息,并根據心跳消息到達時間的歷史記錄,按照相關算法動態預測下一次心跳消息到達時間,并將計算結果發送給錯誤決策服務。
c)QoS服務。主要負責收集被監視組件在網格應用程序運行過程中滿足用戶需求狀況的信息,并據此將每一種資源滿足用戶QoS程度的信息匯總,并發送給錯誤決策服務。
d)錯誤決策服務。負責判斷網格系統發生錯誤與否和確定發生錯誤的類型。在網格應用程序開始運行時,通過其上層的通信服務了解用戶的QoS需求,建立基本QoS需求數據庫。在判斷系統錯誤時,根據統計服務動態預測的心跳消息到達時間與實際心跳消息到達的狀況比對,若在預測的時間內沒有收到被監視組件的心跳消息,則懷疑被監視組件出錯;根據QoS服務傳遞的信息與自己建立的基本QoS需求數據庫比對,若不能滿足基本的用戶QoS需求,則懷疑被監視組件出錯。
e)通信服務。系統發生錯誤時,及時將錯誤信息發送給錯誤管理服務,以便錯誤管理服務及時采取錯誤處理措施,保證系統的動態容錯性;在網格應用程序運行初始,通過錯誤管理服務獲取用戶對資源的基本QoS需求,并將其傳輸給錯誤決策服務,以建立基本的QoS需求數據庫。
3. 2 錯誤檢測器的部署
根據網格環境下的容錯需求,為保證錯誤檢測的可擴展性和避免消息爆炸問題,將錯誤檢測器按照層次方式組織。其中,錯誤檢測器按照本地組和全局組兩層方式來組織管理。在本地組中有惟一的組領導,本地錯誤檢測器檢測本地區域的對象,并向本地組領導匯報自身的狀況;在全局組中的錯誤檢測器通過本地區域錯誤檢測器的匯報消息來檢測全部對象。因此,錯誤檢測服務可被看做由本地錯誤檢測器和多級的組領導錯誤檢測器組成,本地組領導錯誤檢測器向與其同級的組領導錯誤檢測器和上級的全局組領導檢測器發送其檢測的對象狀態列表,消息的傳輸主要通過epidemic算法實現。
在具體部署過程中,錯誤檢測服務是最底層的狀態監視服務,一般部署在局域網中,或者是離局域網很近(指網絡上很靠近,延遲較小)的節點上。每個局域網內部署兩套狀態監視服務,這樣可保證其中一套狀態監視服務出錯時,另外一套仍能夠正常工作。當一個局域網內系統規模較大時,為保持較低的監控流量,可以將局域網劃分成兩個邏輯上的局域網。此外,越往上層的錯誤檢測器監控負載越高,有可能會造成單一失效。在實際應用中,可以根據具體情況采用多個高層錯誤檢測器的辦法實現錯誤檢測器自身的容錯。
4 錯誤管理服務
錯誤管理服務主要由基于QoS的錯誤處理策略選擇引擎和錯誤處理技術集成兩大組件組成。其中,基于QoS的錯誤處理策略選擇引擎主要由屬性分析、決策分析、策略制定和策略執行等模塊組成;錯誤處理技術集成組件主要實現集成各種錯誤處理技術的功能,主要涉及的錯誤處理技術有重試、副本、網格檢查點、網格工作流等[10]。
基于QoS的錯誤處理策略選擇引擎是錯誤管理服務的核心。其中:
a)屬性分析模塊。它主要是在規格化各種錯誤處理技術的相關屬性基礎上進行屬性分析。
b)決策分析模塊。它是應用決策分析理論,分析屬性分析模塊的結果來制定錯誤處理策略。
c)策略制定模塊。它是實現由決策分析模塊制定的錯誤處理策略,按照策略描述語言(PDL)的格式規范化該策略。
d)策略執行模塊。它是調用錯誤處理集成組件的相關接口實現錯誤處理。
5動態容錯的實現過程
根據上述設計,可得到動態容錯服務的實現過程(圖2)。
具體的容錯流程如下:
a) 網格用戶或應用程序向元計算目錄服務查詢可用的網格資源;
b) 元計算目錄服務將查詢結果列表傳輸給網格資源管理器;
c) 網格資源管理器為用戶或應用程序分配具體的資源;
d) 網格用戶或應用程序根據實際需求,向QoS資源管理器提出對資源的服務質量需求;
e) QoS資源管理器向錯誤管理服務注冊需要監視的對象;
f) 錯誤管理服務通知錯誤檢測服務具體的監視對象;
g) 錯誤檢測服務開始錯誤檢測,根據心跳消息到達時間狀況和被監視對象滿足用戶QoS需求情況,并確定被監視對象是否發生錯誤;
h) 錯誤檢測服務一旦確認被監視對象發生錯誤,立即通知錯誤管理服務和網格用戶或應用程序;
i) 收到錯誤發生消息后,錯誤管理服務首先向QoS資源管理器查詢用戶或應用程序對錯誤處理的服務質量需求;
j) QoS資源管理器向錯誤管理服務返回網格用戶或應用程序對錯誤處理的具體服務質量需求;
k) 錯誤管理服務根據具體的服務質量需求,制定相應的錯誤處理策略,選擇相應的錯誤處理技術,并執行錯誤恢復,從而達到保證應用程序正常運行的目的。
6 結束語
本文研究了一種容錯網格體系結構,闡述了核心服務的組織結構、各組成模塊的具體功能;最后,給出了一個完整的容錯服務實現過程。進一步的研究工作包括研究基于該動態容錯服務架構的自適應錯誤檢測算法、動態的錯誤處理服務選擇策略和自適應的錯誤恢復算法,并分別通過理論分析和仿真實驗驗證它們的正確性和有效性。
參考文獻:
[1] HWANG S. Grid workflow: a flexible framework for fault tolerance in the grid [D].[S.l.]:Southern California University, 2003.
[2]邱敏,桂小林.實現可靠計算的容錯網格結構[J].微電子學與計算機, 2005,22(7): 99-102.
[3] 石宣化,金海,羌衛中.通用網格容錯框架研究[J].華中科技大學學報,2006,34(7): 42-45.
[4]ABAWAJY JH. Fault detection service architecture for grid computing systems[C]// Proc ofICCSA.2004:107-115.
[5] SHI Xuan-hua, JINHai, HAN Zong-fen, et al. ALTER: adaptive failure detection services for grids[C]// Proc ofIEEE International Conference on Services Computing (SCC’05).2005:355-358.
[6]JAIN A, SHYAMASUNDAR RK. Failure detection and membership in grid environments[C]// Proc of the 5th IEEE/ACM International Workshop on Grid Computing (GRID’04). 2004:44-52.
[7]NGUYEN-TUONG A. Integrating fault-tolerance techniques in grid applications [D].[S.l.]:University of Verginia, 2000.
[8]CHEN W, TOUEG S, AGUILERA M K. On the quality of service of failure detectors[J]. IEEE Trans on Computers, 2002, 51(2): 13-32.
[9]BERTIER M, MARIN O, SENS P. Implementation and performance evaluation of an adaptable failure detector[C]// Proc of IEEE International Conference on Dependable Systems and Networks.2002:354-363.
[10]ELNOZAHY E, ALVISI L, WANG Y, et al. A survey of rollback recovery protocols in message passing systems[J].ACM Computing Survey, 2002,33(3):375-408.
注:本文中所涉及到的圖表、注解、公式等內容請以PDF格式閱讀原文