资源类型名称的三个组成部分是在 RTR 文件中指定为 Vendor_id、Resource_type 和 RT_version 的特性。scrgadm 命令用来插入句点和冒号分界符以创建资源类型的名称:
vendor_id.resource_type:rt_version |
Vendor_id 前缀用来区分不同供应商提供的两个名称相同的注册文件。RT_version 用来区分同一基本资源类型的多个注册版本(升级)。为了确保 Vendor_id 的唯一性,建议使用创建该资源类型的公司的股票标志。
如果 RT_version 字符串中包含以下字符,将无法注册资源类型:空格、制表符、斜杠 ( /)、反斜杠 (\)、星号 (*)、问号 (?)、逗号 (,)、分号 (;)、左方括号 ([) 或右方括号 (])。
从 Sun Cluster 3.1 开始,RT_Version 特性(在 Sun Cluster 3.0 中为可选特性)已成为必需的特性。
scha_resource_get -O Type -R resource_name -G resource_group_name |
在 Sun Cluster 3.1 以前的版本中注册的资源类型名称继续采用以下语法:
vendor_id.resource_type |
支持升级的资源类型的 RTR 文件必须包含 #$upgrade 指令,后面跟有零或多个采用以下格式的指令:
#$upgrade_from version tunability |
upgrade_from 指令由字符串 #$upgrade_from 组成,其后跟有 RT_Version,再后面跟有对该资源的可调性约束。如果从中执行升级操作的资源类型不具有任何版本,则将 RT_Version 指定为空字符串,如下面最后一个示例所示:
#$upgrade_from "1.1" when_offline #$upgrade_from "1.2" when_offline #$upgrade_from "1.3" when_offline #$upgrade_from "2.0" when_unmonitored #$upgrade_from "2.1" anytime #$upgrade_from "" when_unmanaged |
当系统管理员尝试更改资源的 Type_version 时,RGM 将对资源执行这些约束。如果资源类型的当前版本未出现在列表中,RGM 将强制执行 WHEN_UNMANAGED 的可调性。
这些指令必须显示在 RTR 文件中的资源类型特性声明部分和 RTR 文件中的资源声明部分之间。请参见 rt_reg( 4)。
每当更改 RTR 文件的内容之后,都需要更改 RTR 文件中的 RT_Version 字符串。此特性的值必须明确表明哪一个是该资源类型的新版本,哪一个是旧版本。如果未更改 RTR 文件,则无需更改 RT_Version 字符串。
Sun Cluster 3.0 中的资源类型名称不包含版本后缀:
vendor_id.resource_name |
原来在 Sun Cluster 3.0 中注册的资源类型将继续使用采用此格式的名称(即使是在您将群集软件升级为 Sun Cluster 3.1 或更高版本之后)。同样地,如果 RTR 文件是在运行 Sun Cluster 3.1 或更高版本软件的群集上进行注册的,则其 RTR 文件中缺少 #$upgrade 指令的资源类型将被指定为 Sun Cluster 3.0 格式的名称,不包含版本后缀。
在 Sun Cluster 3.0 中,您可以注册包含 #$upgrade 或 #$upgrade_from 的 RTR 文件,但是不支持将现有资源移植到新资源类型。