微軟叢集伺服器架構
MSCS由三個關鍵區段組合而成:
叢集服務
叢集服務(由事件處理器,容錯移轉管理員/資源管理員,全域更新管理器,以及其它部分組成)是MSCS的核心組件,並作為高優先順序的系統服務運行。叢集服務控制群集活動並提供諸如協作事件通知,群集組件間通訊處理,處理容錯移轉操作,以及組態管理之類的任務。每個叢集節點運行自己的叢集服務。
資源監視器
資源監視器是叢集服務和叢集資源之間的介面,並作為獨立的進程運行。叢集服務使用資源監視器在資源DLL之間進行通訊。資源監視器處理所有與資源的通訊,由此將不當操作或功能阻塞屏蔽在叢集服務之外。在單一節點上可以運行資源監視器的多個拷貝,由此提供了將不可預測的資源孤立於其它資源之外的方法。
資源DLL
MSCS的第三個關鍵組件是資源DLL。資源監視器和資源DLL使用資源API通訊。資源API是進入點、回呼函數、相關結構和用於資源管理的宏的集合。應用程式如果實現了自己的資源DLL與叢集服務進行通訊,並使用群集API來請求和更新群集資訊,則可稱為群集可感知(cluster-aware)應用。不使用群集或資源API和群集控制功能的應用程式和服務程式不能感知群集也不能得知MSCS是否正在運行。這些群集不可感知的程式通常按一般應用或服務程式管理。
群集可感知或不可感知的應用程式都可以在叢集節點上運行,並作為叢集資源被管理。但是,只有群集可感知應用程式能夠獲得叢集伺服器通過群集API提供的好處。例如,群集可感知應用能夠:
- 根據資源監視器的要求報告狀態。
- 優雅地響應聯機或離線請求。
- 更精確的響應IsAlive和LooksAlive請求。
MSCS包含進行基本群集管理的兩個工具:群集管理器(CluAdmin.exe)和命令列管理工具(Cluster.exe)。鼓勵你根據自身需要編製自訂的管理工具。不過,關於管理群集不可感知應用或開發群集管理工具的進一步討論已經超出了本文的範圍。
圖2展示了叢集服務,資源管理員,以及資源DLL在運行Windows NT伺服器、企業版本作業系統、群集管理應用程式的單個節點上如何彼此進行互動,包括了群集可感知和群集不可感知應用。
圖2.運行於Windows NT Server上單個節點的MSCS組件
注意群集感知應用也應該實現群集管理擴充DLL,該擴充DLL包含了來自於群集管理擴充API的介面之實現。群集管理擴充DLL允許應用程式在群集管理工具(CluAdmin.Exe)中進行配置。實現自訂的資源和群集管理擴充DLL允許對應用和其相關資源進行特別管理,並且使得系統管理工具更方便的對應用進行安裝和配置。
下一節講述資源和資源DLL的細節,並闡述編寫自訂資源DLL的原因。