圖 1:三種支持群集的 Microsoft 服務器技術 QQRead.com 推出數據恢復指南教程 數據恢復指南教程 數據恢復故障解析 常用數據恢復方案 硬盤數據恢復教程 數據保護方法 數據恢復軟件 專業數據恢復服務指南 通過 Microsoft 群集服務實現的故障轉移功能 MSCS 故障轉移功能是通過群集中連接的多臺計算機中的冗余實現的,每臺計算機都具有獨立的故障狀態。冗余要求在群集中的多臺計算機上安裝應用程序。但是,應用程序任何時刻只在一個節點上處于聯機狀態。當該應用程序出現故障或該服務器停機時,此應用程序將在另一個節點上重新啟動。Windows .NET Server 2003 Datacenter Edition 支持在一個群集中最多包含 8 個節點。 每個節點都具有自己的內存、系統磁盤、操作系統和群集資源的子集。假如某一節點出現故障,另一個節點將接管故障節點的資源(此過程稱為“故障轉移”)。然后,Microsoft 群集服務將在新節點上注冊資源的網絡地址,以便將客戶端流量路由至當前擁有該資源的可用系統。當故障資源恢復聯機狀態時,MSCS 可配置為適當地重新分配資源和客戶端請求(此過程稱為“故障回復”)。要使應用程序恢復到發生故障轉移時的那一點,節點必須能夠訪問保持應用程序狀態的共享存儲器。 請注重,Microsoft 群集服務旨在提供高可用性,而不是真正的容錯功能。“容錯”一詞通常用于描述提供更高級別恢復功能的技術。容錯服務器通常使用結合了特定軟件的高級硬件或數據冗余,為單個硬件或軟件故障提供近乎瞬時的恢復。這些解決方案的成本遠遠高于群集解決方案,因為必須支付冗余硬件的費用,而冗余硬件只不過閑置在那里等待恢復故障。Microsoft 群集服務使用價格適宜的標準硬件提供優秀的高可用性解決方案,同時最大程度地利用計算資源。
圖 2:Microsoft 群集服務 群集服務體系結構 Microsoft 群集服務包含三個主要組件:群集服務、資源監視器和資源 DLL。此外,群集治理器還答應生成提供治理功能的擴展 DLL。 群集服務 群集服務是核心組件,并作為高優先級的系統服務運行。群集服務控制群集活動并執行如下任務:協調事件通知、方便群集組件間的通信、處理故障轉移操作和治理配置。每個群集節點都運行自己的群集服務。 資源監視器 資源監視器是群集服務和群集資源之間的接口,并作為獨立進程運行。群集服務使用資源監視器與資源 DLL 進行通信。DLL 處理所有與資源的通信,因此在資源監視器上宿主 DLL 可以保護群集服務免受錯誤運行或停止工作的資源造成的影響。資源監視器的多個副本可以在單個節點上運行,從而可以將無法猜測的資源與其他資源隔離開。 群集服務在需要對資源執行操作時將向分配給該資源的資源監視器發送請求。假如資源監視器的進程中沒有可以處理該類型資源的 DLL,則使用注冊信息加載與該資源類型相關的 DLL。然后,將群集服務的請求傳遞至其中一個 DLL 的入口點函數。資源 DLL 將處理操作的具體信息以符合資源的特定需要。 資源 DLL 第三個主要的 Microsoft 群集服務組件是資源 DLL。資源監視器和資源 DLL 使用資源 API 進行通信。資源 API 是用于治理資源的入口點、回叫函數和相關結構及宏的集合。 對于群集服務而言,資源是任何可進行治理的物理或邏輯組件,例如磁盤、網絡名、IP 地址、數據庫、站點、應用程序和任何其他可以聯機和脫機的實體。資源可按類型進行組織。資源類型包括物理硬件(例如磁盤驅動器)和邏輯項(例如 IP 地址、文件共享和一般應用程序)。 每個資源都使用資源 DLL,它主要是資源監視器和資源之間的被動轉換層。資源監視器調用資源 DLL的入口點函數查看資源的狀態并使資源聯機和脫機。資源 DLL 負責通過便利的 IPC 機制與其資源進行通信,以實現這些方法。 實現其自身資源 DLL 與群集服務通信的應用程序以及使用群集 API 請求和更新群集信息的應用程序都被定義為群集相關應用程序。不使用群集或資源 API 以及群集控制代碼函數的應用程序和服務都不識別群集,也無法識別群集服務是否正在運行。這些群集無關應用程序通常作為一般應用程序或服務進行治理。 群集相關和群集無關應用程序都可以在群集節點上運行,并且都可以作為群集資源進行治理。但是,只有群集相關應用程序可以利用群集服務通過群集 API 提供的功能。開發群集相關應用程序需要建立自定義資源類型。通過自定義資源類型,開發人員可以使應用程序在群集發生各種事件(例如,節點即將脫機,因此會關閉數據庫連接)時,做出必要的響應并采取措施。 對于大多數需要在群集中運行的應用程序,最好花費一些時間和資源開發自定義資源類型。可先在群集環境中對應用程序進行測試,而不必修改應用程序的代碼或創建新的資源類型。在 Windows .NET Server 2003 中,未經修改的應用程序可以作為“群集相關”應用程序在基礎級別運行。群集服務專為此用途提供了一般應用程序資源類型。 QQRead.com 推出數據恢復指南教程 數據恢復指南教程 數據恢復故障解析 常用數據恢復方案 硬盤數據恢復教程 數據保護方法 數據恢復軟件 專業數據恢復服務指南 群集治理器擴展 DLL 群集治理器擴展 DLL 在群集治理器內提供特定于應用程序的治理功能,答應用戶以同樣的方式治理他們的應用程序,無論該應用程序是在群集內部還是在群集外部運行。開發人員可以在群集治理器框架內提供給用程序治理功能,或只是鏈接到現有的治理工具。 開發人員可通過編寫擴展 DLL 擴展群集治理器的功能。群集治理器應用程序通過一組已定義的 COM 接口與擴展 DLL 進行通信。擴展 DLL 必須實現一組特定的接口并且在群集的每個節點都進行注冊。
圖 3:主要組件:群集服務、資源監視器和資源 DLL 群集無關應用程序 不提供其自身資源 DLL 的應用程序或服務仍可以在群集環境中進行配置。Windows .NET Server 2003 中的群集服務包括僅用于此目的的一般資源 DLL:一般應用程序資源 DLL 和一般服務資源 DLL。群集服務將這些應用程序或服務看作是群集無關的一般應用程序或服務。 一般資源 DLL 只提供最基本的控制。例如,一般應用程序資源 DLL 通過確定應用程序的進程是否依然存在來檢查應用程序是否發生故障,并通過終止進程使應用程序脫機。但它并不依靠于其他資源,而是提供一個在群集環境中測試應用程序的簡單方法。 高可用性記事本
圖 4:群集治理器工具中的資源類型節點 群集治理器具有交互式向導,使您能夠為列出的任何資源類型創建資源。群集服務還提供了 COM 接口,答應以編程方式創建和治理資源。注重:最新的群集治理器工具及關聯的開發資源可以從 Platform SDK 獲得。 群集自動化服務器 群集自動化服務器提供一組自動化對象,用于向腳本語言公開一個完整的群集治理接口,使您能夠開發基于 Web 的遠程治理工具。群集自動化服務器能夠簡化和增強創建群集治理應用程序的進程。 群集自動化服務器的面向對象的本質意味著幾乎所有群集編程任務都將執行以下步驟:
圖 5:Notepad 資源參數 查看 Advanced(高級)選項卡,您將看到默認屬性,表明發生故障時應用程序至多重新啟動 3 次。LooksAlive 和 IsAlive 輪詢間隔默認為資源類型中的值,但也可以指定其他值將其改寫。由于此應用程序沒有非凡代碼使其成為群集相關應用程序,因此僅通過在系統中運行的進程存在與否確定其是否處于活動狀態。
圖 6:Notepad 資源 Advanced(高級)選項卡 測試應用程序 Notepad 資源聯機后將在服務器上啟動。假如 Notepad 進程被終止,它將立即再次啟動。這是因為群集服務在發揮作用,試圖使應用程序保持打開和運行狀態。作為一般應用程序資源,群集服務能夠注重到應用程序進程何時不再運行,并根據策略采取糾正措施。新聞熱點
疑難解答