Sun Cluster 数据服务开发者指南(适用于 Solaris OS)

实现可伸缩资源

可伸缩资源可以同时在多个节点上处于联机状态。 可伸缩资源包括数据服务,例如,Sun Cluster HA for Sun Java System Web Server(以前称为 Sun Cluster HA for Sun ONE Web Server)和 Sun Cluster HA for Apache。

RGM 提供了许多支持可伸缩资源实现的特性。

相应地将布尔资源类型特性 Failover 设置为 FALSE,允许在可同时在多个节点上处于联机状态的资源组中配置资源。

Scalable 资源特性用来确定该资源是否使用群集共享地址工具。 请将此特性设置为 TRUE,因为可伸缩服务使用共享地址资源,以将该可伸缩服务的多个实例作为单个服务向客户机显示。

RG_mode 特性使群集管理员可以将资源组标识为故障切换或可伸缩。 如果 RG_mode 的值是 SCALABLE,RGM 允许 Maximum_primaries 的值大于 1,这意味着该组可同时由多个节点控制。 RGM 允许 Failover 特性值是 FALSE 的资源在 RG_mode 的值是 SCALABLE 的资源组中实例化。

群集管理员将创建一个用来包含可伸缩服务资源的可伸缩资源组,还会创建一个用来包含可伸缩资源所依赖的共享地址资源的单独故障切换资源组。

群集管理员使用 RG_dependencies 资源组特性来指定在节点上使资源组联机和脱机的顺序。 此顺序对于可伸缩服务很重要,因为可伸缩资源和其依赖的共享地址资源位于不同的资源组中。 可伸缩数据服务需要在启动前将其网络地址(共享地址)资源配置为启用。 因此,管理员必须设置包含可伸缩服务的资源组的 RG_dependencies 特性,以包括含有共享地址资源的资源组。

当您在 RTR 文件中为资源声明 Scalable 特性时,RGM 将自动为该资源创建以下一组可伸缩特性:

Network_resources_used

用来标识此资源使用的共享地址资源。 此特性缺省为空字符串,因此群集管理员在创建资源时,必须提供可伸缩服务所使用的共享地址的实际列表。 scsetup 命令和 SunPlex Manager 为可伸缩服务提供了自动设置所需资源和组的功能。

Load_balancing_policy

用来指定资源的负载平衡策略。 您可以在 RTR 文件中明确地设置该策略(或使用缺省值 LB_WEIGHTED)。 在每一种情况下,群集管理员都可以在创建资源时更改该值(除非您在 RTR 文件中将 Load_balancing_policyTunable 设置为 NONEFALSE)。 有效值为:

LB_WEIGHTED

根据在 Load_balancing_weights 特性中设置的权重在不同的节点间分配负载。

LB_STICKY

可伸缩服务的给定客户机(由客户机的 IP 地址标识)总是发送到同一群集节点。

LB_STICKY_WILD

连接到通配粘滞服务的 IP 地址的某个给定客户机(由客户机的 IP 地址标识)总是发送到同一群集节点,而不管它来自哪个端口号。

对于使用 Load_balancing_policy LB_STICKYLB_STICKY_WILD 的可伸缩服务,在服务联机时更改 Load_balancing_weights 可能造成复位现有客户机关系。 在这种情况下,一个不同的节点可能会处理后面的客户机请求(即使原来是由该群集中另一个节点处理客户机请求)。

同样地,在群集上启动该服务的新实例可能也会重置现有的客户机关系。

Load_balancing_weights

用来指定要分配给每个节点的负载。 格式为 weight@node,weight@node,其中 weight 是一个反映分配到指定 node 的相对负载部分的整数。 分配到某个节点的负载部分是此节点的权重除以活动实例的所有权重的和。 例如,1@1,3@2 表明节点 1 接收到 1/4 的负载,而节点 2 接收到 3/4 的负载。

Port_list

用来标识服务器所侦听的端口。 此特性缺省为空字符串。 您可以在 RTR 文件中提供端口列表。 否则,群集管理员在创建资源时必须提供实际端口列表。

您可以创建可由管理员配置为可伸缩或故障切换的数据服务。 要进行此操作,请在数据服务的 RTR 文件中将 Failover 资源类型特性和 Scalable 资源特性都声明为 FALSE。 创建时请将 Scalable 特性指定为可调。

Failover 特性值 (FALSE) 允许将资源配置到可伸缩资源组中。 通过在创建资源时将 Scalable 的值更改为 TRUE,管理员可以启用共享地址,这样便创建了可伸缩服务。

从另一方面来说,即使将 Failover 的值设置为 FALSE,管理员也可以将资源配置到故障切换资源组中,以实现故障切换服务。 管理员无需更改值为 FALSEScalable。 要支持此操作,您必须对 Scalable 特性的 Validate 方法进行检查。 如果 Scalable 的值是 FALSE,请检验是否已将该资源配置到故障切换资源组中。

Sun Cluster 概念指南(适用于 Solaris OS)包含有关可伸缩资源的其它信息。

可伸缩服务的验证检查

每当在将可伸缩特性值设置为 TRUE 的情况下创建资源或更新资源时,RGM 都将验证各种资源特性。 如果特性值未正确配置,RGM 将拒绝更新或创建尝试。 RGM 将执行以下方面的检查: