手册页部分 1M: 系统管理命令

退出打印视图

更新时间: 2014 年 7 月
 
 

ipmpstat(1M)

名称

ipmpstat - 显示 IPMP 子系统状态

用法概要

ipmpstat [-n] [-o field[,...] [-P]] -a|-g|-i|-p|-t

描述

ipmpstat 命令简要显示有关 IPMP 子系统的信息。如下所述,它支持五种不同的输出模式,每种模式都提供 IPMP 子系统的不同视图(地址、组、接口、探测器和目标)。每次调用至多可以指定一种输出模式,并且确保显示的信息前后一致。该命令还提供一种可解析输出格式,脚本可使用该格式来检查 IPMP 子系统的状态。仅需基本特权来调用 ipmpstat,但是探测模式需要所有特权。

选项

支持以下选项:

–a

显示 IPMP 数据地址信息(“地址”输出模式)。

–g

显示 IPMP 组信息(“组”输出模式)。

–i

显示 IP 接口信息(“接口”输出模式)。

–n

以数字形式显示 IP 地址,而不尝试将其解析为主机名。此选项可在任何输出模式下使用。

–o field[,...]

仅按顺序显示指定的输出字段。字段名称列表不区分大小写,以逗号分隔字段名称。如下所述,支持的字段名称取决于选定的输出模式。特殊字段名称 all 可用于显示给定输出模式的所有字段。

–p

显示 IPMP 探测器信息(“探测器”输出模式)。

–t

显示 IPMP 目标信息(“目标”输出模式)。

–P

如下所述,使用机器可解析格式显示。如果指定此选项,则必须使用 –o 选项指定明确的字段列表。

输出模式

输出模式

ipmpstat 实用程序支持下面列出的输出模式。请注意,这些模式映射至上述部分选项。

地址模式

地址模式会显示系统上所有 IPMP 数据地址的状态。支持以下输出字段:

ADDRESS

与信息相关联的主机名(或 IP 地址)。请注意,由于可能存在重复的停用地址,因此必须将地址与 GROUP 组合在一起才能构成唯一的标识。对于给定 IPMP 组,如果存在重复地址,至多会显示一个地址,且始终优先活动地址。

STATE

地址的状态。如果地址是 IFF_UP,则状态为 up(活动)(请参见 ifconfig(1M)),如果地址不是 IFF_UP,则状态为 down(不活动)。

GROUP

托管地址的 IPMP IP 接口。

INBOUND

将接收此地址的数据包的底层 IP 接口。这种情况会因为响应 IP 接口故障等外部事件而变化。如果此字段为空,系统将不接受发送至此地址的 IP 数据包(例如,由于地址停用或 IPMP 组中没有活动的 IP 接口)。

OUTBOUND

将使用此源地址发送数据包的底层 IP 接口。这种情况会因为响应 IP 接口故障等外部事件而变化。如果此字段为空,系统将不会将此地址作为源来发送数据包(例如,由于地址停用或 IPMP 组中没有活动的 IP 接口)。

如果未指定 –o,则将显示所有输出字段。

组模式

组模式会显示系统中所有 IPMP 组的状态。支持以下输出字段:

GROUP

与信息相关联的 IPMP IP 接口名称。对于匿名组(请参见 in.mpathd(1M)),此字段将为空。

GROUPNAME

IPMP 组名。对于匿名组,此字段将为空。

STATE

组的状态:

ok(正常)

组中的所有接口均可用。

degraded(降级)

组中的部分(并非全部)接口可用。

failed(失败)

组中无任何接口可用。

FDT

基于探测器的故障检测时间。如果禁用基于探测器的故障检测,此字段将为空。

INTERFACES

组中底层 IP 接口的列表。此列表分为三个部分:

  1. 活动接口会首先列出,并且不用任何方括号或圆括号括起来。活动接口是指系统正用来发送或接收数据流量的那些接口。

  2. 随后会列出 INACTIVE 接口,并用圆括号括起来。INACTIVE 接口是那些正在工作但根据管理策略未在使用的接口。

  3. 最后会列出不可用的接口并用方括号括起来。不可用接口是在当前配置中根本无法使用的那些接口(例如 FAILEDOFFLINE)。

如果未指定 –o,则将显示所有输出字段。

接口模式

接口模式会显示系统中由 in.mpathd 跟踪的所有 IP 接口的状态。支持以下输出字段:

INTERFACE

与信息相关联的 IP 接口名称。

ACTIVE

此值为 yesno,具体取决于系统是否正在使用此 IP 接口传输 IP 数据通信。

GROUP

与 IP 接口相关联的 IPMP IP 接口。对于匿名组中的 IP 接口(请参见 in.mpathd(1M)),此字段将为空。

FLAGS

关于 IP 接口的各种信息:

i

由于处于 INACTIVE(非活动)状态而不可用。

s

标记为 STANDBY(备用)。

m

指定为其 IPMP 组发送/接收 IPv4 多播。

b

指定为其 IPMP 组发送/接收 IPv4 广播。

M

指定为其 IPMP 组发送/接收 IPv6 多播。

d

由于处于 down(关闭)状态而不可用。

h

由于存在重复硬件地址时 in.mpathd 将状态转为 OFFLINE(脱机)而不可用。

LINK

基于链接的故障检测状态:

up(活动)

链接处于活动状态。

down(不活动)

链接处于不活动状态。

unknown(未知)

网络驱动程序未报告链接状态更改。

PROBE

基于探测器的故障检测状态:

ok(正常)

探测器没有检测到问题。

failed(失败)

探测器检测到故障。

unknown(未知)

由于适合的探测器目标未知,因此无法发送探测器。

disabled(禁用)

由于尚未配置唯一的 IP 测试地址,已禁用探测器。

STATE

接口的整体状态:

ok(正常)

接口已联机并且正基于配置的故障检测方法正常工作。

failed(失败)

接口已联机,但链接状态为 down(不活动),或探测器状态为 failed(失败)。

offline(脱机)

接口已脱机。

unknown(未知)

接口已联机,但可能在工作,也可能未在工作,原因是配置的故障检测方法处于 unknown(未知)状态。

如果未指定 –o,则将显示所有输出字段。

探测器模式

探测器模式会显示有关 in.mpathd 正发送的探测器的信息。与其他输出模式不同,此模式会一直运行,直到使用 Ctrl-C 明确终止。支持以下输出字段:

TIME

发送探测器的时间,此时间相对于启动 ipmpstat 的时间。如果探测器是在启动 ipmpstat 之前发送的,此时间将为负值。

PROBE

代表探测器的标识符。此标识符嵌入了指示探测器类型的前缀,后跟探测器的数字标识符。探测器类型的允许值包括:

i

ICMP 探测器

t

过渡探测器

从活动接口发送 ICMP 探测器;对于由 in.mpathd 通过给定活动接口发送的每个 IP 探测器,其数字标识符会递增。此数字标识符与 ICMP 探测器数据包的 icmp_seq 字段相匹配,可供数据包监视工具用来进行更为详细的分析。

当 IPMP 组未在组中的任何接口上配置任何 NOFAILOVER 测试地址时,将从当前未用于接收数据包的所有接口发送过渡探测器。对于从给定接口发送的每个过渡探测器,其数据标识符会递增。探测器数据包的格式是实现的内部格式。

INTERFACE

发送探测器的 IP 接口。

TARGET

将 ICMP 探测器从活动接口发送到的目标的主机名(或 IP 地址),或者将过渡探测器发送到的 IP 接口的名称。

NETRTT

探测器的网络往返时间。这是从 IP 模块发送探测器到 IP 模块接收确认的时间。如果 in.mpathd 给出的结果是探测器已丢失,则此字段将为空。

RTT

探测器的总往返时间。这是从 in.mpathd 开始执行发送探测器的代码到处理完 ack 的时间。如果 in.mpathd 给出的结果是探测器已丢失,则此字段将为空。如果总往返时间中的峰值在网络往返时间中未出现,则表示本地系统自身已过载。

RTTAVG

通过 INTERFACETARGET 的平均往返时间。这样有助于识别较慢的目标。如果没有足够的数据来计算平均值,则此字段将为空。

RTTDEV

通过 INTERFACETARGET 的往返时间的标准偏差。这样有助于识别较为紧凑的目标。如果没有足够的数据来计算标准偏差,则此字段将为空。

如果未指定 –o,则会显示除 RTTAVGRTTDEV 之外的所有字段。

目标模式

目标模式会显示 IPMP 探测器目标信息。支持以下输出字段:

INTERFACE

与信息相关联的 IP 接口名称。

MODE

探测器目标搜索模式:

routes

通过路由表发现的探测器目标。

多播

通过多播 ICMP 探测器发现的探测器目标。

disabled(禁用)

禁用所有基于探测器的故障检测。

transitive

故障检测通过过渡探测来实现,其中 IP 接口的运行状况通过探测组中的其他活动接口来确定。

TESTADDR

外出探测器中使用的源地址。正用于数据流量的活动接口和已明确配置了 NOFAILOVER 测试地址的接口将包含用于发送和接收 ICMP 探测器的主机名(或 IP 地址)。组中的其他所有接口将会显示发送探测器的接口的名称。请注意,如果活动 IP 接口同时配置了 IPv4 和 IPv6 测试地址,则会为每个测试地址分别显示探测器目标信息。

TARGETS

ICMP 探测器的探测器目标主机名(或 IP 地址)的空格分隔列表,或者过渡探测器的目标接口的空格分隔列表。IP 目标将按照启动顺序列出,如果找不到任何探测器目标,此字段将为空。

如果未指定 –o,则将显示所有输出字段。

输出格式

输出格式

缺省情况下,ipmpstat 会为其输出模式使用用户友好型表格格式,其中每行包含有关给定对象的一个或多个信息字段,而此对象也由这些字段中的一个或多个字段来唯一标识。在这种格式中,标识这些字段的标题显示在表上方(以及满屏信息后面),这些字段以空格分隔,空字段使用 --(双连字符)表示,还将使用其他视觉辅助。如果某个字段的值无法确定,其值将显示为 "?",并且会在标准错误中输出诊断消息。

机器可解析格式也使用表格格式,但此格式设计用于有效执行编程解析。具体来说,机器可解析格式与用户友好型格式的不同体现在以下方面:

  • 未显示标题。

  • 具有空值的字段不会生成输出,而不是显示 --

  • 字段以单个冒号 (:) 分隔,而不是不定数量的空格。

  • 如果请求了多个字段,并且字段值中出现了字符 : 或反斜杠 (\),则通过在字段前面添加 \ 前缀对其进行转义。

示例

示例 1 获取特定接口的故障检测时间

以下代码使用机器可解析输出格式创建 ksh 函数,此函数可输出给定 IPMP IP 接口的故障检测时间:

     getfdt() {
         ipmpstat -gP -o group,fdt | while IFS=: read group fdt; do
             [[ "$group" = "$1" ]] && { echo "$fdt"; return; }
         done
     }

属性

有关下列属性的说明,请参见 attributes(5)

/usr/sbin/ipmpstat

属性类型
属性值
可用性
system/core-os
接口稳定性
Committed(已确定)
机器可解析格式
Committed(已确定)
用户友好型格式
Not-an-Interface(不是接口)

/usr/sbin/ipmpstat 不是 Committed(已确定)接口。

另请参见

if_mpadm(1M)ifconfig(1M)in.mpathd(1M)attributes(5)