Resource Group Manager (RGM) 管理資源群組和叢集上的終極資源。RGM 在回呼模型上工作。當發生特定事件時,例如,節點故障,RGM 將為每個在受影響節點上執行的資源呼叫資源類型的方法。例如,RGM 將呼叫 Stop 方法以停止正在受影響節點上執行的資源,然後呼叫資源的 Start 方法以在其他節點上啟動該資源。請參閱Resource Group Manager 模型、回呼方法以及 rt_callbacks(1HA) 線上手冊,以取得有關此模型的更多資訊。
為了支援此模型,Agent Builder 將在 install-directory/rt-名稱/bin 目錄中產生八個可執行的 C 程式或 Korn shell 程序檔。這些程式或 shell 程序檔將作為回呼方法使用。
嚴格來說,實作故障監視器的 rt-name_probe 程式不是回呼程式。RGM 不會直接呼叫 rt-name_probe。相反,RGM 將呼叫 rt-name_monitor_start 和 rt-name_monitor_stop。這些方法可透過呼叫 rt-name_probe 啟動和停止故障監視器。
以下為 Agent Builder 產生的八種方法︰
rt-name_monitor_check
rt-name_monitor_start
rt-name_monitor_stop
rt-name_probe
rt-name_svc_start
rt-name_svc_stop
rt-name_update
rt-name_validate
請參閱 rt_callbacks(1HA) 線上手冊,以取得有關每種方法的特定資訊。
在 install-directory/rt-name/src 目錄中 (C 輸出),Agent Builder 將產生以下檔案︰
標頭檔 (rt-name.h)
原始碼檔案 (rt-name.c),包含適用於所有方法的程式碼
共用程式碼的物件檔 (rt-name.o)
每種方法的原始碼檔案 (*.c)
每種方法的物件檔 (*.o)
Agent Builder 將 rt-name.o 檔案連結至每種方法的 .o 檔案,以在 install-directory/rt-name/bin 目錄中建立可執行檔。
對於 Korn shell 輸出,install-directory/rt-name/bin 目錄與 install-directory/rt-name/src 目錄相同。每個目錄均包含對應於七個回呼方法和 Probe 方法的上述八個可執行程序檔。
Korn shell 輸出包含兩個編譯的公用程式,gettime 和 gethostnames。特定回呼方法需要使用這些方法取得時間和進行探測。
您可以編輯原始碼,執行 make 指令以重新編譯程式碼,而當您完成時,可執行 make pkg 指令以產生新的套裝軟體。為了支援對原始碼進行變更,Agent Builder 會在可增加程式碼的適當位置內嵌原始碼的註釋。請參閱編輯產生的來源代碼。
在產生資源類型並將其套裝軟體安裝在叢集上後,您必須取得一個正在叢集上執行的資源類型實例 (資源)。通常,若要取得實例,您可以使用管理指令或 SunPlex Manager。然而,為了方便,Agent Builder 將產生自訂公用程式程序檔,以及用於停止和移除目標資源類型的資源的程序檔。這三個程序檔位於 install-directory/rt-name/util 目錄中,請執行以下作業︰
啟動程序檔。註冊資源類型,並建立必要的資源群組與資源。該程序檔也將建立可讓應用程式在網路上與用戶端進行通訊的網路位址資源 (LogicalHostname 或 SharedAddress)。
停止程序檔。停止資源。
移除程序檔。還原啟動程序檔的工作。也就是說,該程序檔停止並從系統移除資源、資源群組和目標資源類型。
由於這些程序檔使用內部慣例命名資源和資源群組,因此您僅可對由相應啟動程序檔啟動的資源使用移除程序檔。
Agent Builder 透過將應用程式名稱附加至程序檔名稱來命名這些程序檔。例如,如果應用程式名稱為 ftp,則程序檔名稱為 startftp、stopftp 和 removeftp。
Agent Builder 在 install-directory/rt-name/man/man1m 目錄中針對每個公用程式程序檔提供線上手冊。於線上手冊提供了有關您需要傳送至程序檔的引數的說明,因此在您啟動這些程序檔之前,應先閱讀這些線上手冊。
若要檢視這些線上手冊,請使用 -M 選項與 man 指令為此 man 目錄指定路徑。例如,如果 SUNW 是供應商名稱,ftp 是應用程式名稱,則請鍵入以下指令以檢視 startftp(1M) 線上手冊︰
% man -M install-directory/SUNWftp/man startftp |
叢集管理員也可使用線上援助頁公用程式程序檔。Agent Builder 產生的套裝軟體安裝在叢集上時,公用程式程序檔的線上手冊就會置於 /opt/rt-name/man 目錄中。例如,鍵入以下指令以檢視 startftp(1M) 線上手冊︰
% man -M /opt/SUNWftp/man startftp |
Agent Builder 將支援檔案 (例如,pkginfo、postinstall、postremove 以及 preremove) 置於 install-directory/rt-name/etc 目錄中。該目錄還包含資源類型註冊 (RTR) 檔案。RTR 檔案將宣告可用於目標資源類型的資源與資源類型特性,並在使用叢集註冊資源時初始化特性值。請參閱設定資源特性和資源類型特性,以取得更多資訊。RTR 檔案命名為 vendor-name.resource-type-name,例如 SUNW.ftp。
您可以使用標準文字編輯程式編輯此檔案並進行變更,而無需重新編譯來源代碼。然而,您必須使用 make pkg 指令重建套裝軟體。
install-directory/rt-name/pkg 目錄包含 Solaris 套裝軟體。套裝軟體名稱由供應商名稱和應用程式名稱連結而成,例如,SUNWftp。install-directory/rt-name/src 目錄中的 makefile 檔案支援新套裝軟體的建立。例如,如果您對原始碼檔案做出變更,並重新編譯程式碼,或對套裝軟體公用程式程序檔做出變更,請使用 make pkg 指令以建立新套裝軟體。
當您從叢集中移除套裝軟體時,如果您嘗試同時從多個節點執行指令,則 pkgrm 指令可能失敗。您可以透過以下兩種方法之一來解決此問題:
在從任何節點執行 pkgrm 指令之前,請先從叢集的任一節點執行 remove rt-name 程序檔。
從叢集的一個節點執行 pkgrm 指令,將處理所有所需的清除作業。然後,從剩下的節點同時執行 pkgrm 指令 (如有必要)。
如果由於您嘗試從多個節點同時執行 pkgrm 指令而導致該指令失敗,則請從一個節點再次執行該指令。然後,從剩下的節點執行該指令。
如果您在工作目錄中產生 C 或 Korn shell 原始碼,則 Agent Builder 將產生名為 rtconfig 的配置檔案。該檔案包含您在 [建立] 和 [配置] 畫面上指定的資訊。如果您從現有資源類型的工作目錄中啟動 Agent Builder,則 Agent Builder 將讀取 rtconfig 檔案。Agent Builder 會將為現有資源類型提供的資訊填入 [建立] 和 [配置] 畫面。如果您透過從 [檔案] 下拉式功能表中選擇 [載入資源類型] 來載入現有資源類型,Agent Builder 將執行相似的工作。如果您要複製現有資源類型, 則此功能將十分有用。請參閱重複使用使用 Agent Builder 建立的程式碼。