这些实例说明了几种不同资源类型的安装和升级方案。已经根据对资源类型实现进行的更改类型选择了可调性和封装信息。可调性适用于将资源移植到新资源类型的移植过程。
所有实例均假设:
资源类型来自 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 文件,因此无需注册或移植该资源。 |