本節說明了 Agent Builder 產生的輸出。
管理資源群組並最終管理叢集上資源的資源群組管理員 (RGM) 在回呼模型上工作。當發生特定事件 (如節點故障) 時,RGM 將為每個在受影響節點上執行的資源呼叫資源類型的方法。例如,RGM 將呼叫 Stop 方法以停止正在受影響節點上運行的資源,然後呼叫資源的 Start 方法以在其他節點上啟動資源。請參閱RGM 模型、回呼方法和rt_callbacks(1HA) 線上說明手冊,以取得關於該模型的更多資訊。
為了支援該模型,Agent Builder 將在 install_directory/rt_name/bin 目錄中產生八個可執行 C 程式或 Korn shell 程序檔,作為回呼方法。
嚴格地說,實施故障監視器的 rt_name _probe 程式不是回呼程式。RGM 不會直接呼叫 rt_name _probe,但會呼叫 rt_name_monitor_start 與 rt_name_monitor_stop,其透過呼叫 rt_name_probe 來啟動與停止故障監視器。
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 指令來指定該線上援助頁目錄的路徑。例如,如果 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 檔案以 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 檔案,並在 [建立] 螢幕和 [配置] 螢幕中填入您為現有資源類型提供的資訊。如果您要複製現有資源類型, 則此功能將十分有用。請參閱如何複製現有的資源類型。