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 中的层数,必须将 nameuserbuff 参数设置为 NULL ,将 desired_number 参数设置为 0 ,将 ssp_flag 参数设置为 SSPTIER

要检索 SSP 中的可用故障组数,必须将 nameuserbuff 参数设置为 NULL ,将 desired_number 参数设置为 0 ,将 ssp_flag 参数设置为 SSPFG

要检索与 SSP 关联的物理卷数,必须将 nameuserbuff 参数设置为 NULL ,将 desired_number 参数设置为 0 ,将 ssp_flag 参数设置为 SSPPV

要检索与 SSP 关联的节点数,必须将 nameuserbuff 参数设置为 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_IDPERFFILT_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_NAME
  • PERFFILT_TIER
SSPFG
调用 SSPFG 标志时, userbuff 参数设置为 NULL , desired_number 参数设置为 0 ,将返回基于 SSP 中 name 参数的故障组数。 分配 userbuff 参数时,将根据 name 参数将特定于故障组的数据填充到用户缓冲区中。 name.spec 标志可与过滤器的以下规范配合使用:
  • PERFFILT_ID 或者 PERFFILT_NAME
  • PERFFILT_TIER
  • PERFFILT_FG
SSPPV
调用 SSPPV 标志时, userbuff 参数设置为 NULL , desired_number 参数设置为 0 ,将返回基于 SSP 中 name 参数的物理卷数。 分配 userbuff 参数时,会将特定于层的数据填充到用户缓冲区中。 name.spec 标志可与过滤器的以下规范配合使用:
  • PERFFILT_ID 或者 PERFFILT_NAME
  • PERFFILT_TIER
  • PERFFILT_FG
  • PERFFILT_PV
SSPNODE
当调用 SSPNODE 标志时, userbuff 参数设置为 NULL , desired_number 参数设置为 o 0 时,将返回基于 SSP 中名称参数的节点数。 分配 userbuff 参数时,会将特定于节点的数据填充到用户缓冲区中。 name.spec 标志可与过滤器的以下规范配合使用:
  • PERFFILT_NAME
  • PERFFILT_NODE

返回值

成功完成子例程时,将返回已填充的结构数。 如果子程序不成功,则返回值为-1,errno变量表示错误。

错误代码

perfstat_ssp_ext 子例程由于下列其中一个错误而失败:

EINVAL
其中一个参数无效。
EfaulT
内存不足。
ENOMEM
字符串的缺省长度为短。
ENOMSG
字典不可访问。
ETIMEDOUT
连接超时。
ENOENT
找不到过滤器指定的数据。

文件

libperfstat.h 文件定义标准宏,数据类型和子例程。