這些範例說明多種不同資源類型安裝方案與升級方案。 已經基於對資源類型實作進行的變更之類型選擇了可調性資訊與封裝資訊。 可調性將資源的遷移套用至新資源類型。
所有範例都假定:
資源類型將在 Solaris 套裝軟體中提供。 請參閱 pkgadd(1M) 和 pkgrm(1M)。
由於僅有一個舊版本資源類型,因此在新 RTR 檔案中僅有一個 #$upgrade_from 指令
如果 RGM 有可能在從磁碟移除方法時呼叫它們,則安裝程序將不會移除或覆寫這些方法
除非另有註明,否則新方法與舊方法相容
在進行安裝或遷移之前,使用正確的 scswitch(1M) 指令或對等指令將資源與資源群組移至需要的狀態。 以下範例展示如何將資源群組移至不受管理狀態:
scswitch -M -n -j resource scswitch -n -j resource scswitch -F -g resource_group scswitch -u -g resource_group |
您可以透過使用以下指令來註冊資源類型:
scrgadm -a -t resource_type -f path_to_RTR_file |
您可以透過使用以下指令來遷移資源:
scrgadm -c -j resource -y Type_version=version \ -y property=value \ -x property=value ... |
遷移之後,使用適當的 scswitch(1M) 指令或對等指令將資源與資源群組回復到其上一個狀態:
scswitch -M -e -j resource scswitch -e -j resource scswitch -o -g resource_group scswitch -Z -g resource_group |
資源類型開發者可能需要指定比這些範例中所使用可調性值具有更多限制性的可調性值。 可調性值取決於對資源類型實作所做的確切變更。 此外,資源類型開發者可能會選擇使用不同的封裝方案來取代這些範例中使用的 Solaris 封裝。
表 3–1 升級資源類型的範例
變更類型 |
可調性 |
封裝 |
程序 |
---|---|---|---|
僅在 RTR 檔案中進行屬性變更。 |
Anytime |
僅提供新 RTR 檔案。 |
在所有節點上執行新 RTR 檔案的 pkgadd。 註冊新資源類型。 遷移資源。 |
方法被更新。 |
Anytime |
將更新的方法置於一個與舊方法不同的路徑中。 |
在所有節點上執行已更新方法的 pkgadd。 註冊新資源類型。 遷移資源。 |
新的監視器程式。 |
When_unmonitored |
僅覆寫舊版監視器。 |
停用監視。 在所有的節點上執行新監視器程式的 pkgadd。 註冊新資源類型。 遷移資源。 啟用監視。 |
方法被更新。 新的 Update/Stop 方法與舊的 Start 方法不相容。 |
When_offline |
將更新的方法置於一個與舊方法不同的路徑中。 |
在所有節點上執行已更新方法的 pkgadd。 註冊新資源類型。 使資源離線。 遷移資源。 使資源上線。 |
方法將更新,而新屬性將新增至 RTR 檔案。 新方法需要新屬性。 (目的在於萬一資源所在的資源群組在某個節點上從離線狀態移至線上狀態,可允許資源群組保持線上狀態,但阻止資源上線運作。) |
When_disabled |
覆寫舊版方法。 |
停用資源。
註冊新資源類型。 遷移資源。 啟用資源。 |
方法將更新,而新屬性將新增至 RTR 檔案。 新方法不需要新屬性。 |
Anytime |
覆寫舊版方法。 |
在該程序期間,RGM 將呼叫新方法,即使尚未執行遷移 (將會配置新屬性)。 新方法在不具有新屬性的情況下能夠工作很重要。 註冊新資源類型。 遷移資源。 |
方法被更新。 新的 Fini 方法與舊的 Init 方法不相容。 |
When_unmanaged |
將更新的方法置於一個與舊方法不同的路徑中。 |
使資源所在的資源群組不受管理。 在所有節點上執行已更新方法的 pkgadd。 註冊資源類型。 遷移資源。 使資源所在的資源群組受管理。 |
方法被更新。 未對 RTR 檔案進行任何變更。 |
不適用。 未對 RTR 檔案進行任何變更 |
覆寫舊版方法。 |
由於未對 RTR 檔案進行任何變更,因此不需要註冊或遷移資源。 |