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

资源特性

本节介绍了 Sun Cluster 定义的一些资源特性。特性值分为以下几类(在“类别”后面给出):

“可调”一栏列出了是否以及何时可以更新资源特性,如下所示:

NONEFALSE

永远不 

TRUEANYTIME

任何时候 

AT_CREATION

在将资源添加到群集时 

WHEN_DISABLED

当资源被禁止时 

前面的是特性名,后面是对该特性的描述。

Affinity_timeout整数

以秒表示的时间长度,在此期间,对于资源中的任何服务,来自给定客户机IP 地址的连接均被发送到同一服务器节点。

仅当 Load_balancing_policyLb_stickyLb_sticky_wild 时,此特性才适用。此外,还必须将 Weak_affinity 设置为 FALSE(缺省值)。

此特性只用于可伸缩服务。

类别:

可选的

缺省值:

无缺省值

可调:

ANYTIME

Cheap_probe_interval整数

在两次资源故障快速探测的调用之间的秒数。此特性由 RGM 创建,并且仅当在 RTR 文件中声明该特性后,管理员才可以使用该特性。

如果在 RTR 文件中指定了缺省值,则此特性是可选的。如果未在资源类型文件中指定 Tunable 属性,则该特性的 Tunable 的值为 WHEN_DISABLED

如果在 RTR 文件中声明了此特性并且未指定 Default 属性,则此特性是必需的。

类别:

有条件的

缺省值:

无缺省值

可调:

WHEN_DISABLED

扩展特性

在资源类型的 RTR 文件中声明的扩展特性。资源类型的实现中定义了这些特性。资源特性属性中提供了有关您可以为扩展特性设置的各个属性的信息。

类别:

有条件的

缺省值:

无缺省值

可调:

取决于特定的特性

Failover_mode枚举值

如果启动方法(Prenet_startStart)失败,NONESOFTHARD 将只会影响故障转移行为。但是,一旦资源已成功启动,NONESOFTHARD 便不会对随后资源监视器用 scha_control(1HA)scha_control(3HA) 发起的资源重新启动或移交行为产生任何影响。NONE(缺省值)表示在方法失败时 RGM 将设置资源状态并等待用户干预。SOFT 表示,如果 Start 方法失败,则 RGM 会将资源组重新定位到其他节点。如果 Stop 方法或 Monitor_stop 方法失败,则 RGM 会将相应资源的状态设置为 Stop_failed 并将资源组的状态设置为 Error_stop_failed。然后,RGM 等待用户干预。对于 Stop 方法失败或 Monitor_stop 方法失败,NONESOFT 的作用是相同的。HARD 表示,如果 Start 方法失败,RGM 将重新定位相应的组。如果 Stop 方法失败或 Monitor_stop 方法失败,RGM 将异常终止相应的群集节点以停止资源。如果是 Start 方法失败或 Prenet_start 方法失败,则 HARDNONESOFT 都可以影响故障转移行为。

NONESOFTHARD 不同,RESTART_ONLYLOG_ONLY 可影响所有故障转移行为,包括监视器发起 (scha_control ) 的资源和资源组的重新启动行为,以及资源监视器发起 (scha_control) 的移交行为。RESTART_ONLY 表示监视器可以运行 scha_control 来重新启动资源,但如果 scha_control 随后失败,它会尝试执行资源组重新启动或移交操作。RGM 允许在 Retry_interval 指定的时间间隔内重新启动 Retry_count 次。如果超出了 Retry_count 的限制,则不再允许重新启动资源。如果将 Failover_mode 设置为 LOG_ONLY,则不允许重新启动或停止资源。将 Failover_mode 设置为 LOG_ONLY 的作用与在 Retry_count 设置为零的情况下将 Failover_mode 设置为 RESTART_ONLY 的作用相同。如果启动方法失败,则 RESTART_ONLYLOG_ONLY 的作用与 NONE 的作用相同:不发生任何故障转移行为,并且资源状态将更改为 Start_failed

类别:

可选的

缺省值:

无缺省值

可调:

ANYTIME

Load_balancing_policy字符串

定义所使用的负载平衡策略的字符串。此特性仅用于可伸缩服务。如果在 RTR 文件中声明了 Scalable 特性,则 RGM 将自动创建此特性。Load_balancing_policy 可以取以下值:

Lb_weighted(缺省值)。根据在 Load_balancing_weights 特性中设置的权重在各个节点间分配负载。

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

Lb_sticky_wild。连接到用通配符表示的粘滞服务的 IP 地址的给定客户机 IP 地址总是被发送到相同的群集节点,而忽略此 IP 地址的目标端口号。

类别:

有条件的/可选的

缺省值:

Lb_weighted

可调:

AT_CREATION

Load_balancing_weights字符串数组

只用于可伸缩资源。如果在 RTR 文件中声明了 Scalable 特性,则 RGM 将自动创建此特性。格式为 weight@ node,weight@node,其中 weight 是一个整数,它反映分配到指定 node 的负载的相对部分。分配到某个节点的负载部分是此节点的权数除以所有权数的和。例如,1@1,3@2 指定节点 1 接收 1/4 的负载而节点 2 接收 3/4 的负载。缺省值,即空字符串 (“”),设置了统一分发。未明确指定权重的任何节点的缺省权重为 1。

如果未在资源类型文件中指定 Tunable 属性,则相应特性的 Tunable 的值为 ANYTIME。更改该特性将仅改变新连接的分配。

类别:

有条件的/可选的

缺省值:

空字符串 ("")

可调:

ANYTIME

Type 中每个回调方法的method_timeout整数

以秒计算的时间段,这段时间过后,RGM 将认为对方法的调用已失败。

类别:

有条件的/可选的

缺省值:

如果该方法已在 RTR 文件中声明,则缺省值为 3600(一小时)

可调:

ANYTIME

Monitored_switch枚举值

如果群集管理员通过管理实用程序启用或禁用监视器,则 RGM 会将此特性设置为 EnabledDisabled。如果设置为 Disabled,则在下次启用该监视器前,不会调用该监视器的 Start 方法。如果资源没有监视器回调方法,则此特性不存在。

类别:

仅限于查询

缺省值:

无缺省值

可调:

永远不

Network_resources_used字符串数组

资源所使用的逻辑主机名或共享地址网络资源的列表。对于可伸缩服务,此特性必须是指存在于单独资源组的共享地址资源。对于失败转移服务,此特性是指存在于相同的资源组的逻辑主机名或共享地址资源。如果在 RTR 文件中声明了 Scalable 特性,则 RGM 将自动创建此特性。如果在 RTR 文件中没有声明 ScalableNetwork_resources_used 将不可用,除非在 RTR 文件中显式声明。

如果未在资源类型文件中指定 Tunable 属性,则该特性的 Tunable 的值为 AT_CREATION


注意 –

SUNW.Event(5) 手册页中说明了如何为 CRNP 设置该特性。


类别:

有条件的/必需的

缺省值:

无缺省值

可调:

AT_CREATION

每个群集节点上的 Num_resource_restarts整数

您无法直接设置该特性,该特性将由 RGM 设置为在过去的 n 秒内为该节点上的此资源调用 scha_controlResource_restartResource_is_restarted 的次数。n 为此资源的 Retry_interval 特性的值。只要此资源执行了 scha_control 移交操作,无论该移交尝试成功还是失败,RGM 都会将资源重新启动计数器重置为零。

如果资源类型未声明 Retry_interval 特性,则该类型的资源不能使用 Num_resource_restarts 特性。

类别:

仅限于查询

缺省值:

无缺省值

可调:

每个群集节点上的 Num_rg_restarts整数

您无法直接设置该特性,该特性将由 RGM 设置为在过去 n 秒内,此资源为其所在节点上包含的资源组调用 scha_controlRestart 的次数,其中 n 为此资源的 Retry_interval 特性的值。如果资源类型未声明 Retry_interval 特性,则该类型的资源不能使用 Num_rg_restarts 特性。

类别:

请参见说明

缺省值:

无缺省值

可调:

On_off_switch枚举值

如果群集管理员通过管理实用程序启用或禁用资源,则 RMG 会将此特性设置为 EnabledDisabled。如果设置为禁用,资源将进入脱机状态,并且再次启用资源前资源将不能调用任何回调。

类别:

仅限于查询

缺省值:

无缺省值

可调:

永远不

Port_list字符串数组

端口(服务器在其上进行侦听)号列表。每个端口号后面均附加了一个斜杠 (/),斜杠后面是该端口使用的协议,例如,Port_list=80/tcpPort_list=80/tcp6,40/udp6。您可以指定以下协议:

  • tcp(适用于 TCP IPv4)

  • tcp6(适用于 TCP IPv6)

  • udp(适用于 UDP IPv4)

  • udp6(适用于 UDP IPv6)

如果在 RTR 文件中声明了 Scalable 特性,则 RGM 将自动创建 Port_list。否则,此特性将不可用,除非在 RTR 文件中显式声明。

用于 Apache 的 Sun Cluster 数据服务指南(适用于 Solaris OS)中介绍了为 Apache 设置此特性的方法。

类别:

有条件的/必需的

缺省值:

无缺省值

可调:

AT_CREATION

R_description字符串

资源的简单说明。

类别:

可选的

缺省值:

空字符串

可调:

ANYTIME

Resource_dependencies字符串数组

相同或不同组中此资源对其具有强依赖性的资源列表。如果该列表中有任一资源处于脱机状态,则无法启动此资源。如果此资源与该列表中的某一资源同时启动,则 RGM 要等到该列表中的资源启动后才会启动此资源。如果没有启动此资源的 Resource_dependencies 列表中的资源,则此资源也会保持脱机状态。此资源的该列表中的资源可能会因它的资源组正处于脱机状态或它正处于 Start_failed 状态而没有启动。如果此资源因依赖于另一不同资源组中未能启动的资源而仍处于脱机状态,则此资源所属的组将进入Pending_online_blocked 状态。

如果此资源与该列表中的资源同时进入脱机状态,则将在停止该列表中的资源之前先停止此资源。但是,即使此资源仍处于联机状态或无法停止,该列表中属于另一不同资源组的资源照样也会停止。除非先禁用此资源,否则无法禁用该列表中的资源。

缺省情况下,在资源组中,应用程序资源对网络地址资源具有固有的强依赖性。有关 Implicit_network_dependencies 的更多信息,请参见资源组特性

在资源组中,按照依赖顺序,Prenet_start 方法将先于 Start 方法运行。按照依赖顺序,Postnet_stop 方法将迟于 Stop 方法运行。在不同的资源组中,依赖于其他资源的资源将等待其所依赖的资源完成 Prenet_startStart 方法后才开始运行 Prenet_start。而所依赖的资源将等待该资源完成 StopPostnet_stop 方法后才开始运行 Stop

类别:

可选的

缺省值:

空列表

可调:

ANYTIME

Resource_dependencies_restart字符串数组

相同或不同组中此资源对其具有重新启动依赖性的资源列表。

此特性的作用与Resource_dependencies 类似,只是如果重新启动依赖性列表中的任一资源被重新启动,则也会重新启动此资源。在该列表中的资源恢复为联机状态后也会重新启动此资源。

类别:

可选的

缺省值:

空列表

可调:

ANYTIME

Resource_dependencies_weak字符串数组

相同或不同组中此资源对其具有弱依赖性的资源列表。较弱的依赖性将确定方法调用的顺序。RGM 在调用此资源的 Start 方法前将先调用该列表中的资源的 Start 方法。RGM 在调用该列表中的资源的 Stop 方法前将先调用此资源的 Stop 方法。即使该列表中的资源启动失败或保持在脱机状态,仍然可以启动此资源。

如果此资源和它的 Resource_dependencies_weak 列表中的资源同时启动,则 RGM 将等待该列表中的资源启动后才开始启动此资源。如果该列表中的资源没有启动(例如,如果列表中资源的资源组处于脱机状态或列表中的资源处于 Start_failed 状态),则将重新启动此资源。在启动此资源的 Resource_dependencies_weak 列表中的资源时,此资源的资源组将会暂时进入 Pending_online_blocked 状态。如果该列表中所有资源均已启动或启动失败,则将启动此资源并且它的资源组将重新进入 Pending_online 状态。

如果此资源和该列表中的资源同时进入脱机状态,则在停止该列表中的资源之前将先停止此资源。如果此资源处于联机状态或停止失败,仍将停止该列表中的资源。除非先禁用此资源,否则无法禁用该列表中的资源。

在资源组中,按照依赖顺序,Prenet_start 方法将先于 Start 运行。按照依赖顺序,将在运行 Postnet_stop 方法后运行 Stop 方法。在不同的资源组中,依赖于其他资源的资源将等待其所依赖的资源完成 Prenet_startStart 方法后才开始运行 Prenet_start 方法。而所依赖的资源将等待该资源完成 StopPostnet_stop 方法后才开始运行 Stop 方法。

类别:

可选的

缺省值:

空列表

可调:

ANYTIME

Resource_name字符串

资源实例的名称。在群集配置中此名称必须唯一,并且在资源创建后该名称无法进行更改。

类别:

必需的

缺省值:

无缺省值

可调:

永远不

Resource_project_name字符串

与资源关联的 Solaris 项目名。使用此特性可将 Solaris 资源管理功能(例如 CPU 共享和资源池)应用至群集数据服务。当 RGM 使资源联机时,它将启动此项目名下的相关进程。如果未指定此特性,则将从包含该资源的资源组的 RG_project_name 特性中获取项目名(请参见 rg_properties [5])。如果也未指定该特性,则 RGM 将使用预定义的项目名 default。指定的项目名称必须存在于项目数据库中,并且用户 root 必须配置为已命名项目的成员。只有 Solaris 9 和更高版本的 Solaris 支持此特性。


注意 –

对此特性进行的更改将在下次启动资源时生效。


类别:

可选的

缺省值:

可调:

ANYTIME

每个群集节点上的 Resource_state枚举值

每个群集节点上由 RGM 确定的资源状态。可能出现的状态有 OnlineOfflineStart_failedStop_failedMonitor_failedOnline_not_monitoredStartingStopping

不能配置该特性。

类别:

仅限于查询

缺省值:

无缺省值

可调:

永远不

Retry_count整数

如果资源失败,监视器尝试重新启动该资源的次数。此特性由 RGM 创建,并且只有在 RTR 文件中声明后,管理员才可以使用此特性。如果在 RTR 文件中指定了缺省值,则 Retry_count 特性就是可选的。

如果未在资源类型文件中指定 Tunable 属性,则该特性的 Tunable 的值就为 WHEN_DISABLED

如果已在 RTR 文件中声明并且未指定 Default 属性,则此特性就是必需的。

类别:

有条件的

缺省值:

无缺省值

可调:

WHEN_DISABLED

Retry_interval整数

尝试重新启动失败的资源前计算的秒数。资源监视器将此特性与 Retry_count 一起使用。此特性由 RGM 创建,并且只有在 RTR 文件中声明后,管理员才可以使用此特性。如果在 RTR 文件中指定了缺省值,则 Retry_interval 特性就是可选的。

如果未在资源类型文件中指定 Tunable 属性,则此特性的 Tunable 的值就为 WHEN_DISABLED

如果已在 RTR 文件中声明并且未指定 Default 属性,则此特性就是必需的。

类别:

有条件的

缺省值:

无缺省值

可调:

WHEN_DISABLED

Scalable布尔值

表示资源是否为可伸缩的资源,即资源是否使用 Sun Cluster 的网络负载平衡功能。

如果在 RTR 文件中声明了此特性,则 RGM 将为该类型的资源自动创建以下可伸缩服务特性:Affinity_timeoutLoad_balancing_policyLoad_balancing_weightsNetwork_resources_usedPort_listUDP_affinityWeak_affinity。这些特性具有缺省值,除非在 RTR 文件中对它们进行了显式声明。在 RTR 文件中声明了 Scalable 后,其缺省值为 TRUE

如果在 RTR 文件中声明了此特性,则不允许再将 Tunable 属性指定为 AT_CREATION 以外的值。

如果未在 RTR 文件中声明此特性,则该资源将不可伸缩,而您也无法调节此特性,并且 RGM 也不会设置任何可伸缩服务特性。但是,您可以在 RTR 文件中明确声明 Network_resources_used Port_list 特性,这是因为它们在非可伸缩服务和可伸缩服务中都有用。

请结合 Failover 资源类型特性使用此资源特性,如下所述:

有关结合 Failover 资源类型特性来使用此资源特性的更多信息,请参见 r_properties (5)

类别:

可选的

缺省值:

无缺省值

可调:

AT_CREATION

每个群集节点上的 Status枚举值

由资源监视器使用 scha_resource_setstatus(1HA)scha_resource_setstatus(3HA) 设置。可能的值包括 OKdegradedfaultedunknownoffline。当资源进入联机或脱机状态时,如果资源监视器或资源调用的方法未设置 Status 的值,则 RGM 将自动设置 Status 的值。

类别:

仅限于查询

缺省值:

无缺省值

可调:

永远不

每个群集节点上的 Status_msg字符串

由资源监视器在设置 Status 特性的同时进行设置。当资源进入联机或脱机状态时,如果资源调用的方法未设置此特性,则 RGM 将自动把此特性的值复位为空字符串。

类别:

仅限于查询

缺省值:

无缺省值

可调:

永远不

Thorough_probe_interval整数

在两次资源高开销故障探测的调用之间的秒数。此特性由 RGM 创建,并且只有在 RTR 文件中声明后,管理员才可以使用此特性。如果在 RTR 文件中指定了缺省值,则 Thorough_probe_interval 就是可选的。

如果未在资源类型文件中指定 Tunable 属性,则此特性的 Tunable 的值就为 WHEN_DISABLED

如果未在 RTR 文件的特性声明中指定 Default 属性,则此特性为必需的。

类别:

有条件的

缺省值:

无缺省值

可调:

WHEN_DISABLED

Type字符串

资源类型,此资源是该资源类型的一个实例。

类别:

必需的

缺省:

无缺省值

可调:

永远不

Type_version字符串

指定当前与此资源关联的资源类型的版本。RGM 将自动创建此特性,该特性不能在 RTR 文件中声明。此特性的值与资源类型的 RT_version 特性一样。创建资源时,并不明确指定 Type_version 特性,尽管它可能显示为资源类型名称的后缀。编辑资源时,可以将 Type_version 更改为新值。

此特性的可调性源自以下源:

  • 资源类型的当前版本

  • RTR 文件中的 #$upgrade_from 指令

类别:

请参见说明

缺省值:

无缺省值

可调:

请参见说明

UDP_affinity布尔值

如果为 true,则来自给定客户机的所有 UDP 通信都将发送至当前处理该客户机的所有 TCP 通信的同一服务器节点。

仅当 Load_balancing_policy 的值为 Lb_stickyLb_sticky_wild 时,此特性才适用。此外,还必须将 Weak_affinity 设置为 FALSE(缺省值)。

此特性只用于可伸缩服务。

类别:

可选的

缺省值:

无缺省值

可调:

WHEN_DISABLED

Weak_affinity布尔值

如果为 true,则启用较弱的客户机关联性。除发生以下情况外,弱式客户机关联性允许将来自给定客户机的连接发送至同一服务器节点:

  • 服务器侦听器应某些情况要求而启动,例如,故障监视器的重新启动、资源的故障转移或切换,或者节点在失败后重新加入群集

  • 由于管理操作而导致可伸缩资源的 Load_balancing_weights 发生更改

就内存消耗和处理器周期而言,不采用缺省形式而启用较弱的关联性所使用的系统开销较低。

仅当 Load_balancing_policy 的值为 Lb_stickyLb_sticky_wild 时,此特性才适用。

此特性只用于可伸缩服务。

类别:

可选的

缺省值:

无缺省值

可调:

WHEN_DISABLED