用于 Solaris OS 的 Sun Cluster 数据服务规划和管理指南

通过卸载非关键资源组来释放节点资源

Prioritized Service Management (RGOffload) 允许群集为关键的数据服务自动释放某个节点的资源。 如果启动关键的故障转移数据服务时需要先使非关键的可伸缩数据服务或故障转移数据服务脱机,则请使用 RGOffload。 RGOffload 可用于卸载包含非关键数据服务的资源组。


注意:

关键的数据服务必须是故障转移数据服务。所要卸载的数据服务可以是故障转移数据服务,也可以是可伸缩数据服务。


如何设置 RGOffload 资源

  1. 成为某个群集成员的超级用户。

  2. 确定是否已注册 RGOffload 资源类型。

    使用以下命令可显示一个资源类型列表。


    # scrgadm -p|egrep SUNW.RGOffload
    
  3. 如果需要,请注册资源类型


    # scrgadm -a -t SUNW.RGOffload
    

  4. 在要由 RGOffload 资源卸载的每个资源组中,将 Desired_primaries 设置为零。


    # scrgadm -c -g offload-rg -y Desired_primaries=0
    
  5. 将 RGOffload 资源添加到关键的故障转移资源组中,并设置扩展特性。

    请勿将一个资源组放在多个资源的 rg_to_offload 列表中。 如果将一个资源组放在多个 rg_to_offload 列表中,可能会使该资源组脱机然后再返回联机状态,并反复重复此过程。

    有关扩展特性的说明,请参见配置 RGOffload 扩展特性


    # scrgadm -aj rgoffload-resource\
    -t SUNW.RGOffload -g critical-rg \
    -x rg_to_offload=offload-rg-1, offload-rg-2, ...\
    -x continue_to_offload=TRUE \
    -x max_offload_retry=15
    

    注意:

    此处列出的是除 rg_to_offload 以外的扩展特性及其缺省值。 rg_to_offload 是一个用逗号分隔的资源组的列表,其中各个资源组之间相互保持独立。 此列表中不能包含正要向其中添加 RGOffload 资源的资源组。


  6. 启用 RGOffload 资源。


    # scswitch -ej rgoffload-resource
    
  7. 设置关键的故障转移资源与 RGOffload 资源的相关性。


    # scrgadm -c -j critical-resource \
    -y Resource_dependencies=rgoffload-resource
    

    也可以使用 Resource_dependencies_weak。 如果对 RGOffload 资源类型使用 Resource_dependencies_weak,即使在卸载 offload-rg 过程中出现错误,也会启动关键的故障转移资源。

  8. 使要卸载的资源组联机。


    # scswitch -z -g offload-rg, offload-rg-2, ... -h [nodelist]

    在关键资源组已经脱机的所有节点上,该资源组将保持联机状态。 故障监视器可防止该资源组在具有以下特点的节点上运行:其中的关键资源组仍处于联机状态。

    因为要卸载的资源组的 Desired_primaries 已设置为 0(请参见步骤 4),所以“-Z”选项不能使这些资源组联机。

  9. 如果关键的故障转移资源组没有联机,请使其联机。


    # scswitch -Z -g critical-rg
    

SPARC: 示例 – 配置 RGOffload 资源

此例说明了如何配置 RGOffload 资源 (rgofl)、包含 RGOffload 资源 (oracle_rg) 的关键资源组以及在关键资源组联机时被卸载的可伸缩资源组(IWS-SCIWS-SC-2)。 此例中的关键资源为 oracle-server-rs

在此例中,可以在群集“triped”的任何一个节点(phys-triped-1、phys-triped-2、phys-triped-3)上控制 oracle_rgIWS-SCIWS-SC-2


[确定是否已注册 SUNW.RGOffload 资源类型。]
# scrgadm -p|egrep SUNW.RGOffload
 
[如果需要,请注册资源类型。]
# scrgadm -a -t SUNW.RGOffload

[在要由 RGOffload 资源卸载的每个资源组中,将 Desired_primaries 设置为零。]
# scrgadm -c -g IWS-SC-2 -y Desired_primaries=0
# scrgadm -c -g IWS-SC -y Desired_primaries=0

[将 RGOffload 资源添加到关键资源组并设置扩展特性。]
# scrgadm -aj rgofl -t SUNW.RGOffload -g oracle_rg \
-x rg_to_offload=IWS-SC,IWS-SC-2 -x continue_to_offload=TRUE \
-x max_offload_retry=15
 
[启用 RGOffload 资源。]
# scswitch -ej rgofl
 
[设置关键故障转移资源与 RGOffload 资源的相关性。]
# scrgadm -c -j oracle-server-rs -y Resource_dependencies=rgofl
 
[使要卸载的资源组在所有节点上联机。]
# scswitch -z -g IWS-SC,IWS-SC-2 -h phys-triped-1,phys-triped-2,phys-triped-3
 
[如果关键故障转移资源组未联机,请使其联机。]
# scswitch -Z -g oracle_rg

配置 RGOffload 扩展特性

通常,在创建 RGOffload 资源时使用命令行 scrgadm -x parameter=value 来配置扩展特性。 有关所有 Sun Cluster 标准特性的详细信息,请参见附录 A,标准特性

表 2–2 说明了可为 RGOffload 配置的各种扩展特性。 “可调”条目说明何时可以更新该特性。

表 2–2 RGOffload 扩展特性

名称/数据类型 

缺省值  

rg_to_offload(字符串)

一个用逗号分隔的资源组的列表。当关键的故障转移资源组在某个节点上启动时,需要在该节点上卸载列表中的资源组。 此列表不应包含相互依赖的资源组。 此特性没有缺省值,因此必须进行设置。 

 

RGOffload 不检查 rg_to_offload 扩展特性中所设置的资源组列表中的相关性循环。 例如,如果资源组 RG-B 在某个方面依赖于 RG-A,则 RG-A 和 RG-B 都不应包含在 rg_to_offload 中。

 

缺省值:

可调:任何时候

continue_to_offload(布尔值)

布尔值,它表示是否在卸载资源组时出错后继续卸载 rg_to_offload 列表中的剩余资源组。

 

此特性仅用于 START 方法。 

 

缺省值: True

可调:任何时候

max_offload_retry(整数)

如果因重新配置群集或资源组而出现失败,在启动期间尝试卸载资源组的次数。 在连续两次重试之间有 10 秒钟的间隔。  

 

请设置 max_offload_retry,以便

 

(要卸载的资源组的数目 * max_offload_retry * 10 秒)

 

小于 RGOffload 资源的 Start_timeout。 如果此数值接近或大于 Start_timeout 的数值,则 RGOffload 资源的 START 方法可能会在完成最大卸载尝试次数之前便超时。

 

此特性仅用于 START 方法。  

 

缺省值: 15

可调:任何时候

故障监视器

RGOffload 资源的故障监视器探测可用于使 rg_to_offload 扩展特性中指定的资源组在控制关键资源的节点上保持脱机状态。 在每个探测周期内,故障监视器将检验所要卸载的资源组 (offload-rg) 在控制关键资源的节点上是否为脱机状态。 如果 offload-rg 在控制关键资源的节点上处于联机状态,则故障监视器将在除控制关键资源的那个节点之外的某个节点上尝试启动 offload-rg,从而使得 offload-rg 在控制关键资源的那个节点上脱机。

因为 offload-rgdesired_primaries 被设置为 0,所以在后来变得可用的节点上不会再启动已卸载的资源组。 因此,在使 offload-rg 在控制关键资源的节点上保持脱机的同时,RGOffload 故障监视器会在尽可能多的主节点上尝试启动 offload-rg,直到达到 maximum_primaries 限制。

RGOffload 会尝试启动所有已卸载的资源组,除非它们处于 MAINTENANCEUNMANAGED 状态。 要将资源组置于 UNMANAGED 状态,请使用 scswitch 命令。


# scswitch -u -g resourcegroup

在每个 Thorough_probe_interval 之后,都将调用故障监视器探测循环。