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

RMAPI 访问方法

API 提供了用于访问资源类型、资源和资源组属性以及其他群集信息的函数。这些函数是以 shell 命令和 C 函数的形式提供的,使您可以实现 shell 脚本或 C 程序形式的控制程序。

RMAPI Shell 命令

Shell 命令是在资源类型的回调方法的 shell 脚本实现中使用的,这些资源类型表示由群集的 RGM 控制的服务。可以使用这些命令完成以下任务:


注 –

此部分仅简要介绍了 shell 命令,1HA 手册页中提供了 shell 命令的权威性参考。如果未另加说明,与命令同名的手册页即与相应命令相关。


RMAPI 资源命令

使用这些命令,您可以访问关于资源的信息或设置资源的 StatusStatus_msg 属性。

scha_resource_get

访问有关 RGM 控制下的资源或资源类型的信息。此命令提供的信息与 scha_resource_get() C 函数相同。有关详细信息,请参见 scha_resource_get(1HA) 手册页。

scha_resource_setstatus

设置 RGM 控制下的资源的 StatusStatus_msg 属性。资源的监视器使用此命令来指明监视器识别出的资源状态。此命令提供与 scha_resource_setstatus() C 函数相同的功能。scha_resource_setstatus(1HA) 手册页中对此命令进行了详细介绍。


注 –

虽然对于资源监视器来说 scha_resource_setstatus() 有特定用途,但是任何程序都可以调用该函数。


资源类型命令

scha_resourcetype_get

访问有关向 RGM 注册的资源类型的信息。此命令提供与 scha_resourcetype_get() C 函数相同的功能。scha_resourcetype_get(1HA) 手册页中对此命令进行了详细介绍。

资源组命令

您可以使用这些命令访问关于资源组的信息或重新启动资源组。

scha_resourcegroup_get

访问关于 RGM 控制下的资源组的信息。此命令提供与 scha_resourcetype_get() C 函数相同的功能。scha_resourcegroup_get(1HA) 手册页中对此命令进行了详细介绍。

scha_control

请求重新启动 RGM 控制下的资源组或将其重定位到其他节点。此命令提供与 scha_control() C 函数相同的功能。scha_control(1HA) 手册页中对此命令进行了详细介绍。

群集命令

scha_cluster_get

访问关于群集的信息,例如群集名称、节点名称、ID、状态和资源组。此命令提供的信息与 scha_cluster_get() C 函数相同。scha_cluster_get(1HA) 手册页中对此命令进行了详细介绍。

C 函数

C 函数是在资源类型的回调方法的 C 程序实现中使用的,这些资源类型表示由群集的 RGM 控制的服务。可以使用这些函数完成以下任务:


注 –

此部分仅简要介绍了 C 函数,3HA 手册页中提供了 C 函数的权威性参考。如果未另加说明,与命令同名的手册页即与相应命令相关。有关 C 函数的输出参数和返回码的信息,请参见 scha_calls(3HA) 手册页。


资源函数

这些函数用于访问有关 RGM 所管理的资源的信息,或指明监视器识别出的资源状态。

scha_resource_open()scha_resource_get()scha_resource_close()

这些函数用于访问关于由 RGM 管理的资源的信息。scha_resource_open() 函数将对资源的访问进行初始化,并为 scha_resource_get()(该函数用于访问资源信息)返回句柄。scha_resource_close() 函数将使该句柄无效,并释放为 scha_resource_get() 返回值分配的内存。

scha_resource_open() 返回资源的句柄之后,可以通过群集重新配置或者管理操作更改资源。因此,scha_resource_get() 通过该句柄获取的信息就可能不准确。在对资源进行群集重新配置或管理操作的情况下,RGM 将把 scha_err_seqid 错误代码返回给 scha_resource_get(),以指明关于资源的信息可能已更改。此错误消息不是致命的。函数将成功返回。您可以选择忽略此消息并接受返回的信息,也可以关闭当前句柄并打开新句柄以访问关于资源的信息。

有一个手册页介绍了这三个函数。您可以通过 scha_resource_open(3HA)scha_resource_get(3HA)scha_resource_close(3HA) 中的任何一个函数访问此手册页。

scha_resource_setstatus()

设置 RGM 控制下的资源的 StatusStatus_msg 属性。资源的监视器使用此函数指示该资源的状态。


注 –

虽然对于资源监视器来说 scha_resource_setstatus() 有特定用途,但是任何程序都可以调用该函数。


资源类型函数

这些函数用于访问关于向 RGM 注册的资源类型的信息。

scha_resourcetype_open()scha_resourcetype_get()scha_resourcetype_close()

scha_resourcetype_open() 函数将对资源的访问进行初始化,并为 scha_resourcetype_get()(该函数用于访问资源类型信息)返回句柄。scha_resourcetype_close() 函数将使句柄无效,并释放为 scha_resourcetype_get() 返回值分配的内存。

scha_resourcetype_open() 返回资源类型的句柄之后,可以通过群集重新配置或管理操作更改资源类型。因此,scha_resourcetype_get() 通过该句柄获取的信息可能不准确。在对资源类型进行群集重新配置或管理操作的情况下,RGM 将把 scha_err_seqid 错误代码返回给 scha_resourcetype_get(),以指明关于资源类型的信息可能已更改。此错误消息不是致命的。函数将成功返回。您可以选择忽略此消息并接受返回的信息,也可以关闭当前句柄并打开新句柄以访问关于资源类型的信息。

有一个手册页介绍了这三个函数。您可以通过任一单个函数 scha_resourcetype_open(3HA)scha_resourcetype_get(3HA)scha_resourcetype_close(3HA) 访问此手册页。

资源组函数

您可以使用这些函数访问关于资源组的信息或重新启动资源组。

scha_resourcegroup_open()scha_resourcegroup_get()scha_resourcegroup_close()

这些函数用于访问关于由 RGM 管理的资源组的信息。scha_resourcegroup_open() 函数用来初始化对资源组的访问并返回 scha_resourcegroup_get () 的句柄,用于访问资源组信息。scha_resourcegroup_close() 函数将使句柄无效,并释放为 scha_resourcegroup_get() 返回值分配的内存。

scha_resourcegroup_open() 返回资源组句柄之后,可以通过群集重新配置或管理操作更改资源组。因此,scha_resourcegroup_get() 通过该句柄获取的信息可能不准确。在对资源组进行群集重新配置或管理操作的情况下,RGM 将把 scha_err_seqid 错误代码返回给 scha_resourcegroup_get(),以指明关于资源组的信息可能已更改。此错误消息不是致命的。函数将成功返回。您可以选择忽略此消息并接受返回的信息,也可以关闭当前句柄并打开新句柄以访问关于资源组的信息。

有一个手册页介绍了这三个函数。您可以通过任一单个函数 scha_resourcegroup_open(3HA)scha_resourcegroup_get(3HA)scha_resourcegroup_close(3HA) 访问此手册页。

scha_control()

请求重新启动 RGM 控制下的资源组或将其重定位到其他节点。scha_control(3HA) 手册页中对此函数进行了详细介绍。

群集函数

这些函数用于访问或返回关于群集的信息。

scha_cluster_open()scha_cluster_get()scha_cluster_close()

这些函数用于访问关于群集的信息,例如群集名称、节点名称、ID、状态和资源组。

scha_cluster_open() 返回群集的句柄之后,可以通过重新配置或管理操作更改群集。因此,scha_cluster_get() 通过该句柄获取的信息可能不准确。在对群集进行重新配置或管理操作的情况下,RGM 将把 scha_err_seqid 错误代码返回给 scha_cluster_get(),以指明关于群集的信息可能已更改。此错误消息不是致命的。函数将成功返回。您可以选择忽略此消息并接受返回的信息,也可以关闭当前句柄并打开新句柄以访问关于群集的信息。

有一个手册页介绍了这三个函数。您可以通过任一单个函数 scha_cluster_open(3HA)scha_cluster_get(3HA)scha_cluster_close(3HA) 访问此手册页。

scha_cluster_getlogfacility()

返回用作群集日志的系统日志工具的编号。将返回值与 syslog() Solaris 函数结合使用可以将事件和状态消息记录到群集日志中。scha_cluster_getlogfacility(3HA) 手册页中对此函数进行了详细介绍。

scha_cluster_getnodename()

返回在其上调用该函数的群集节点的名称。scha_cluster_getnodename(3HA) 手册页中对此函数进行了详细介绍。

公用程序函数

此函数将把错误代码转换为错误消息。

scha_strerror()

将某个 scha_ 函数返回的错误代码转换为相应的错误消息。将此函数与 logger 命令结合使用可以将消息记录到 Solaris 系统日志 (syslog) 中。scha_strerror(3HA) 手册页中对此函数进行了详细介绍。