perfstat_ssp_ext 子例程
用途
检索与共享存储池 (SSP) 关联的层,故障组,物理卷和节点数据。
语法
#include <libperfstat.h>
int perfstat_ssp_ext (name, userbuff, sizeof_struct, desired_number, ssp_flag)
perfstat_ssp_id_t * name;
perfstat_ssp_t * userbuff;
size_t sizeof_struct;
int desired_number;
ssp_flag_t ssp_flag;
描述
perfstat_ssp_ext 子例程检索有关属于该故障组的层,故障组和物理卷的 SSP 统计信息。 此子例程还检索属于 SSP 的节点数据。
要检索 SSP 中的层数,必须将 name 和 userbuff 参数设置为 NULL ,将 desired_number 参数设置为 0 ,将 ssp_flag 参数设置为 SSPTIER。
要检索 SSP 中的可用故障组数,必须将 name 和 userbuff 参数设置为 NULL ,将 desired_number 参数设置为 0 ,将 ssp_flag 参数设置为 SSPFG。
要检索与 SSP 关联的物理卷数,必须将 name 和 userbuff 参数设置为 NULL ,将 desired_number 参数设置为 0 ,将 ssp_flag 参数设置为 SSPPV。
要检索与 SSP 关联的节点数,必须将 name 和 userbuff 参数设置为 NULL ,将 desired_number 参数设置为 0 ,将 ssp_flag 参数设置为 SSPNODE。
要检索特定于层,故障组,物理卷或节点的数据,必须指定 name 参数。
要启用这些数据的收集,必须通过运行以下子例程来配置集群统计信息收集:
perfstat_config(PERFSTAT_ENABLE | PERFSTAT_CLUSTER_STATS, NULL)在 SSP 数据收集完成后,必须通过运行以下子例程来禁用集群统计信息收集:
perfstat_config(PERFSTAT_DISABLE | PERFSTAT_CLUSTER_STATS, NULL)注: perfstat_ssp_ext 子例程只能在 Virtual I/O Server (VIOS) 上运行。
参数
- 名称
- 用于检索共享存储池中的层,故障组和物理卷的过滤器。 可以使用以下过滤器:
- 名称->tier.name
- 指定必须返回其数据的层名称。
- 名称->tier.id
- 指定必须返回其数据的层标识。
- name.fg.name
- 指定必须返回其数据的故障组名。
- 名称->fg.id
- 指定必须返回其数据的故障组标识。
- 名称->pv.name
- 指定必须返回其数据的物理卷名称。
- 名称->pv.id
- 指定必须返回其数据的物理卷标识。
- 名称-> 名称
- 指定必须返回其数据的节点名。
- 名称-> 规范
- 指定过滤器。 可以为此属性指定以下值:
- PERFFILT_ID
- 指定过滤器基于层,故障组或物理卷的标识。
- PERFFILT_NAME
- 指定过滤器基于层,故障组,物理卷或节点的名称。注: 不能同时使用标识和名称。
- PERFFILT_TIER
- 指定过滤器特定于层。 过滤器可以基于层标识或层名称。 必须相应地设置 spec 属性。
- PERFFILT_FG
- 指定过滤器特定于故障组。 过滤器可以基于故障组标识或故障组名称。 必须相应地设置 spec 属性。
- PERFFILT_PV
- 指定过滤器特定于物理卷。 过滤器可以基于唯一磁盘标识 (UDID) 或物理卷名称。 必须在这两种情况下都设置 spec 属性。
- PERFFILT_NODE
- 指定过滤器特定于节点。
注: 必须指定PERFFILT_ID或PERFFILT_NAME属性值。
- 用户 buff
- 指向使用
perfstat_ssp_t结构填充的内存区域。 内存通过计算(sizeof (perfstat_ssp_t) * returned_count)分配给此参数,其中returned_count是通过将此参数设置为 NULL 并将desired_number参数设置为零获得的值。 - 大小结构
- 指定
perfstat_ssp_t结构的大小。 - 期望数
- 指定要复制到 userbuff 参数的
perfstat_ssp_t结构的编号。 - ssp_flag
- 指定是需要检索层,故障组还是物理卷。 必须将此参数设置为下列其中一个值:
- SSPTIER
- 调用 SSPTIER 标志时, userbuff 参数设置为 NULL , desired_number 参数设置为 0 ,将返回基于 SSP 中 name 参数的层数。 分配 userbuff 参数时,会将特定于层的数据填充到用户缓冲区中。 name->spec 参数可与以下规范配合使用:
PERFFILT_ID或者PERFFILT_NAMEPERFFILT_TIER
- SSPFG
- 调用 SSPFG 标志时, userbuff 参数设置为 NULL , desired_number 参数设置为 0 ,将返回基于 SSP 中 name 参数的故障组数。 分配 userbuff 参数时,将根据 name 参数将特定于故障组的数据填充到用户缓冲区中。 name.spec 标志可与过滤器的以下规范配合使用:
PERFFILT_ID或者PERFFILT_NAMEPERFFILT_TIERPERFFILT_FG
- SSPPV
- 调用 SSPPV 标志时, userbuff 参数设置为 NULL , desired_number 参数设置为 0 ,将返回基于 SSP 中 name 参数的物理卷数。 分配 userbuff 参数时,会将特定于层的数据填充到用户缓冲区中。 name.spec 标志可与过滤器的以下规范配合使用:
PERFFILT_ID或者PERFFILT_NAMEPERFFILT_TIERPERFFILT_FGPERFFILT_PV
- SSPNODE
- 当调用 SSPNODE 标志时, userbuff 参数设置为 NULL , desired_number 参数设置为 o 0 时,将返回基于 SSP 中名称参数的节点数。 分配 userbuff 参数时,会将特定于节点的数据填充到用户缓冲区中。 name.spec 标志可与过滤器的以下规范配合使用:
PERFFILT_NAMEPERFFILT_NODE
返回值
成功完成子例程时,将返回已填充的结构数。 如果子程序不成功,则返回值为-1,errno变量表示错误。
错误代码
perfstat_ssp_ext 子例程由于下列其中一个错误而失败:
- EINVAL
- 其中一个参数无效。
- EfaulT
- 内存不足。
- ENOMEM
- 字符串的缺省长度为短。
- ENOMSG
- 字典不可访问。
- ETIMEDOUT
- 连接超时。
- ENOENT
- 找不到过滤器指定的数据。
文件
libperfstat.h 文件定义标准宏,数据类型和子例程。