確定資源類型套裝軟體的安裝需求和封裝時,請牢記以下兩個需求︰
新資源類型註冊後,其 RTR 檔案必須可在磁碟上存取。
新類型的資源建立後,新類型之所有已宣告的方法路徑名稱和監視器程式必須位於磁碟中並且可執行。只要資源處於使用中狀態,則舊方法與監視器程式都必須保留在適當位置。
若要確定要使用的正確封裝,請考量以下問題︰
RTR 檔案是否變更?
特性的預設值或可調性是否變更?
特性的 min 或 max 值是否變更?
升級是否會新增或刪除特性?
監視器程式碼是否變更?
方法程式碼是否變更?
新方法或監視器程式碼,或二者是否與先前版本相容?
這些問題的答案有助於確定新資源類型要使用的正確封裝。
修改資源類型時,您無須建立新方法或監視器程式碼。例如,您可能僅變更資源特性的預設值或可調性。在此實例中,由於您不變更方法程式碼,您僅需要可讀 RTR 檔案之新的有效路徑名稱。
如果您無須重新註冊舊的資源類型,則新的 RTR 檔案可以覆寫先前的版本。否則,請將新的 RTR 檔案放入新路徑。
如果升級會變更特性的預設值或可調性,請使用資源類型新版本的 Validate 方法以驗證現有的特性屬性對於新資源類型有效。如果現有特性屬性對於新資源類型無效,則叢集管理員可以將現有資源的特性變更為正確的值。如果升級會變更特性的 min、max 或 type 屬性,則當叢集管理員升級資源類型時,scrgadm 指令將自動驗證這些限制。
如果升級會增加新特性或刪除舊特性,您可能需要變更回呼方法或監視器程式碼。
如果您僅變更資源類型的監視器程式碼,則安裝套裝軟體時可能覆寫監視器二進位程式碼。
如果在資源類型中僅變更方法程式碼,您必須確定新的方法程式碼是否與舊的方法程式碼相容。此問題的答案將確定新方法程式碼是必須儲存於新路徑還是可以覆寫舊方法。
如果您可以將新的 Stop、Postnet_stop 和 Fini 方法 (如果已宣告) 套用至已初始化的資源或由舊版本的 Start、Prenet_stop 或 Init 方法啟動的資源,則可以使用新方法覆寫舊方法。
如果將新的預設值套用至特性會導致 Stop、Postnet_stop 或 Fini 等方法失敗,叢集管理員必須在資源類型升級後,相應地限制資源狀態。
資源類型升級之後,您可以讓叢集管理員透過限制 Type_version 特性的可調性來限制資源狀態。
一種封裝方法是將仍支援的資源類型所有舊版本納入套裝軟體中。此方法允許套裝軟體的新版本替代套裝軟體的舊版本,而不會覆寫或刪除方法的舊路徑。您必須決定要支援的舊版本的數量。
下表概述了要用於新的資源類型之封裝方案。
表 4–1 確定要使用的封裝方案
變更類型 |
可調性值 |
封裝方案 |
---|---|---|
僅在 RTR 檔案中進行特性變更。 |
ANYTIME |
僅傳送新的 RTR 檔案。 |
更新方法。 |
ANYTIME |
將更新的方法放入與舊方法不同的路徑。 |
安裝新的監視器程式。 |
WHEN_UNMONITORED |
僅覆寫監視器的舊版本。 |
更新方法。 新的 Update 和 Stop 方法與舊的 Start 方法不相容。 |
WHEN_OFFLINE |
將更新的方法放入與舊方法不同的路徑。 |
更新方法,並將新特性增加到 RTR 檔案。新方法需要新特性。 目標是如果資源群組在某節點上從離線狀態轉為線上狀態,則允許所在資源群組保持線上狀態,但阻止資源處於線上狀態。 |
WHEN_DISABLED |
覆寫舊版方法。 |
更新方法,並將新特性增加到 RTR 檔案。新方法不需要新特性。 |
ANYTIME |
覆寫舊版方法。 |
更新方法。新的 Fini 方法與舊的 Init 方法不相容。 |
WHEN_UNMANAGED |
將更新的方法放入與舊方法不同的路徑。 |
更新方法。未對 RTR 檔案進行任何變更。 |
不適用。未對 RTR 檔案進行任何變更。 |
覆寫舊版方法。由於您未對 RTR 檔案進行變更,資源無需註冊或升級。 |