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 地址标识)总是发送到同一个群集节点,无论指向哪个端口号。

对于使用 LB_STICKYLB_STICKY_WILDLoad_balancing_policy 的可伸缩服务,在服务处于联机状态时更改 Load_balancing_weights,可能会导致复位现有的客户机关联。在此情况下,一个不同的节点可能会处理后续的客户机请求(即使该客户机之前已由群集中的另一个节点处理过)。

同样地,在群集中启动该服务的一个新实例可能也会复位现有的客户机关联。

Load_balancing_weights

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

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 将执行以下方面的检查: