創建群集可感知應用
在MSCS 版中群集可感知應用程序是使用群集API群集控制代碼函數以及資源API(在資源API中實現)與MSCS群集軟件通信並發揮群集功能優勢的應用程序
群集API允許群集可感知應用程序傳統應用程序以及服務與群集軟件交互
群集控制代碼是位值描述加諸於網絡網絡接口資源資源類型群組或節點上的操作
資源API定義了函數結構宏允許群集服務與資源通信
下面討論細節
群集API
群集API允許應用程序獲取群集對象信息初始化操作更新群集數據庫信息有個群集API集合
群集管理提供對事件通知群集對象所有群集狀態信息的訪問
群集數據庫管理允許群集可感知應用程序或資源DLL訪問和更新群集數據庫(群集數據庫是以Windows NT注冊表的一部分來實現的駐留在每個群集節點上它包含群集中所有物理和邏輯部件)僅應由群集服務和資源DLL通過API修改群集數據庫注意群集對象的屬性應該使用控制函數來管理應該只有資源DLL和由群集DLL控制的應用程序使用群集數據庫管理API
群組管理提供對群集內每個群組的訪問以及允許調用者修改群組成員或狀態和獲取信息該函數主要由群集服務的資源和故障轉移管理器實現
網絡接口管理打開或關閉網絡接口執行選擇操作以及獲取信息
網絡管理提供對網絡信息的訪問該信息由群集服務進行監視
節點管理允許調用者修改節點狀態執行操作獲取信息這些函數主要由成員管理器實現
資源管理允許調用者在一個或多個資源上執行不同操作包括獨立信息的獲取創建或刪除資源由資源控制代碼定義的初始化操作
群集管理工具也使用群集API例如MSCS自帶的群集管理器(CluAdminExe)資源監視器和資源DLL也有使用
圖展示群集API是如何在群集環境中使用的
圖在群集環境中的群集API訪問
群集控制節點
群集控制代碼是位值用於描述加諸在群集對象-比如資源資源類型群組節點或者網絡網絡接口-上的操作群集控制代碼類別有內部外部內部控制節點由僅由群集服務使用應用程序和資源DLL不能使用典型地內部控制代碼由群集服務發出向資源或資源類型通知事件
外部代碼表示可以由應用程序執行的操作這些操作的一個小子集用於管理群集屬性群集屬性用於描述群集對象-如資源資源類型群組節點-的特性有兩種類型公用私有公用屬性是靜態的作為特定類型應用於所有對象例如資源類型舉個例子所有資源 都有RestartAction的公用屬性公用屬性存儲在群集數據庫中私有屬性可以是靜態或動態數據用於描述資源的特定類型這些值存儲在群集數據庫或其它地方群集屬性進一步可分為只讀或讀寫屬性
更多關於群集控制代碼群集對象以及屬性屬性的信息請參考SDK文檔
資源API
資源API定義了函數結構允許群集服務與資源通信的宏通信是非直接的群集服務通過資源監視器初始化請求資源監視器將它們傳遞給資源狀態和事件信息又從資源DLL傳回到群集服務
圖展示了控制流是如何從群集服務通過資源監視器以及資源DLL傳遞到資源的該圖展示了個資源DLL三個用於群集服務資源類型一個用於由第三方開發者定義的資源類型
圖資源控制流
資源API包括
入口點函數允許資源監視器管理資源
回調函數允許資源DLL報告狀態記錄事件日志允許群集服務請求資源執行特定任務
結構和宏用於描述由Startup入口點函數返回的函數表以及描述資源狀態
因為群集可感知應用程序是通過編寫自定義資源實現的所以也必須定義其資源類型並且如本文前面所述如果應用程序按自定義資源接受管理就必須提供兩個DLL-資源DLL和群集管理器擴展DLL(注意群集管理器擴展DLL僅當資源需要屬性時是需要的不需要屬性的資源的例子是時間服務類型的資源)
下面開始談及如何編寫資源類型DLL
From:http://tw.wingwit.com/Article/program/net/201311/12827.html