本節說明了 Agent Builder 產生的輸出。
管理資源群組並最終管理叢集上資源的資源群組管理員 (RGM) 在回呼模型上工作。 當發生特定事件 (如節點故障) 時,RGM 將為每個在受影響節點上執行的資源呼叫資源類型的方法。 例如,RGM 將呼叫 Stop 方法以停止正在受影響節點上執行的資源,然後呼叫資源的 Start 方法以在其他節點上啟動資源。 (請參閱RGM 模型、回呼方法以及 rt_callbacks(1HA) 線上援助頁,以取得有關此模型的詳細資訊。)
為了支援此模型,Agent Builder 將 (在 install_directory/rt_name/bin 目錄中) 產生 8 個作為回呼方法的可執行程式 (C) 或程序檔 (ksh)。
嚴格地說,實施故障監視器的 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 目錄中建立可執行檔。
對於 ksh 輸出,install_directory /rt_name/bin 目錄與 install_directory/rt_name/src 目錄完全相同,各包含八個可執行程序檔,對應於七個回呼方法和 PROBE 方法 。
ksh 輸出包含兩個編譯的公用程式 (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 之前,從叢集的某一個節點執行 removert_name 程序檔。
從叢集的某一個節點執行 pkgrm (其處理所有必要的清除),如有必要,然後同時從剩餘的節點執行 pkgrm。
如果由於您嘗試同時從多個節點執行 pkgrm 而導致該指令失敗,請再次從一個節點執行此指令,然後再從剩餘的節點執行它。
如果您在工作目錄中產生 C 來源代碼或 ksh 來源代碼,Agent Builder 將會產生配置檔案 rtconfig,該檔案包含您在 [建立] 畫面與 [配置] 畫面上輸入的資訊。 如果您從現有資源類型的工作目錄啟動 Agent Builder (或使用 [檔案] 功能表中的 [載入資源類型] 指令載入現有的資源類型),Agent Builder 將讀取 rtconfig 檔案,並使用您為現有資源類型提供的資訊填寫 [建立] 畫面與 [配置] 畫面。 如果您要複製現有資源類型, 則此功能將非常有用 (請參閱複製現有的資源類型)。