Go to main content

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

退出打印视图

更新时间: 2018年8月8日 星期三
 
 

fmadm (8)

名称

fmadm - 故障管理配置工具

用法概要

fmadm [-q] [subcommand [arguments]]

描述

管理员和服务人员可以使用 fmadm 实用程序来查看和修改由 Solaris Fault Manager fmd(8) 维护的系统配置参数。fmd 接收与系统软件检测到的状况有关的症状遥测,将遥测诊断为故障、缺陷或警报,启动主动式自我修复活动,如禁用故障组件等。

fmadm 可用于执行以下操作:

  • 查看当前参与故障管理的诊断引擎和代理的集合。

  • 查看被诊断为与故障、缺陷或警报关联的系统组件列表。

  • 执行与这些实体有关的管理任务。

Fault Manager 尝试将尽可能多的活动自动化,这样,通常就不需要使用 fmadm 了。当 Fault Manager 需要管理员、服务维修技术人员或 Oracle 的帮助时,会发出一条说明其需求的消息。它还会为您提供 Oracle 的 Web 站点上的知识文章。该 Web 站点可能会要求您使用 fmadm 或某个其他的故障管理实用程序来收集更多信息,或执行其他任务。fmd(8)fmdump(8) 的文档、fmstat(8) 手册页以及《在 Oracle Solaris 11.4 中确保系统和连接设备的安全》指南详细说明了用于观察故障管理活动的工具。

Fault Manager 的一个职责是跟踪组件的位置。在机箱级别,fmadm *-alias 子命令管理机箱 chassis-name.chassis-serialalias-id 的映射。受管理的 alias-id 将描述机箱的物理位置。

fmadm 实用程序要求为用户分配 solaris.fm.read RBAC 授权(“故障管理”或“故障信息”RBAC 配置文件)以进行读取操作,或者分配 solaris.fm.modify RBAC 授权(“故障管理”RBAC 配置文件)以进行修改操作。fmadm load 子命令要求用户拥有所有特权。

子命令

fmadm 命令接受以下子命令。有些子命令接受或要求额外的选项和操作数。acquitloadunloadrepairedreplacedresetrotate 子命令是供经过培训的技术人员使用的。不建议在没有获得具体指导(如阅读知识库文章)之前使用这些子命令。

fmadm acquit fmri | label [uuid]

通知 Fault Manager,不会将指定资源认定为 uuid 标识的事件中(如果未指定 UUID,则是在检测到的所有故障、缺陷或警报中)的可疑对象。fmadm acquit 命令应仅在 Oracle 修复过程文档的指导下使用。管理员可能需要使用额外的命令来重新启用之前发生故障的资源。

fmadm acquit uuid

通知 Fault Manager,可以放心地忽略由 uuid 标识的事件。fmadm acquit 命令应仅在 Oracle 修复过程文档的指导下使用。管理员可能需要使用额外的命令来重新启用之前发生故障的任何资源。

fmadm add-alias chassis-name.chassis-serial alias-id ['comment']

add-alias 子命令用于将 alias-id 设立为 chassis-name.chassis-serial 机箱的受管理别名。定义了受管理别名后,机箱的 /dev/chassis devchassis(4FS) 名称空间表示将使用更有意义的 alias-id 而不是 chassis-name.chassis-serial

# fmadm add-alias SUN-Storage-J4410.1039QAQ007 RACK29.U25-28

上述命令将验证新映射是否会与现有映射产生冲突。如果产生冲突,则映射不会发生任何更改。当关联的名称空间更新完成时,该命令即完成。如果更新后的名称空间没有使用新的 alias-id,则会显示一条警告,但是会更新映射。如果名称空间更新花费的时间过长,将列显一条警告。

add-alias 现在也接受 "SYS" 作为主机箱的标识符,而不需要 chassis-name.chassis-serial

如果提供可选注释,该注释会被保留下来,后续 lookup-aliaslist-alias 命令将会显示该注释。另请参见 remove-aliassync-alias

fmadm clear label | uuid | class@resource

通知 Fault Manager,应清除与指定位置 labeluuid 关联的或由 class@resource 标识的所有警报事件。此命令只能应用于警报(不能应用于缺陷或故障)。

fmadm config

显示 Fault Manager 本身的配置,包括模块名称、版本以及每个组件模块的描述。Fault Manager 模块可提供包括自动诊断、自我修复以及向系统中存在的硬件和软件发送消息在内的各种服务。

fmadm faulty [–afprsv] [–u uuid]

此命令是 fmadm list 命令的别名。

fmadm flush fmri | label

对于其中指定资源已经修复、释放或更换的任何故障、缺陷或警报,刷新由 Fault Manager 缓存的该资源的信息。

fmadm list [–afprsv] [–u uuid]

显示 Fault Manager 当前认定为与故障、缺陷或警报关联的资源的状态信息。另请参见 list-alertlist-defectlist-fault 子命令。

支持以下选项:

–a

显示可能与故障、缺陷或警报关联的所有资源。缺省情况下,fmadm list 命令只列出故障、缺陷或警报仍处于活动状态的资源的输出。如果指定 –a 选项,将列出 Fault Manager 高速缓存的所有资源信息,包括可能已经释放或修复或系统中可能不再存在的资源的信息。

–f

显示与故障、缺陷或警报关联的 FRU(Field Replaceable Unit,现场可更换单元)。

–p

以各事件间的换页使输出通过页面调度程序。

–r

显示受影响的 Solaris 资源和它们的标识符 (FMRI) 以及它们的故障管理状态。

–s

每个事件显示一行摘要。

–u uuid

仅显示具有给定 uuid 的事件。

–v

显示完整输出。

如果事件有多个可疑对象(不管是不同的类还是在不同的 FRU 上),则显示确定度百分比。如果多个资源位于同一 FRU 上,并且不能 100% 确定事件与该 FRU 关联,则显示 FRU 上可疑对象的最大确定度百分比。

Fault Manager 将以下状态与已经诊断为具有故障、缺陷或警报的每个 FRU 关联。

faulty

FRU 已由 Fault Manager 诊断为与故障、缺陷或警报关联,并且仍存在于系统中。

faulty/not_present

FRU 已由 Fault Manager 诊断为与故障、缺陷或警报关联,并且不再存在于系统中。

replaced

FRU 已从系统中删除并且更换 FRU 已经就位。

repaired

已使用命令 fmadm repaired 通知 Fault Manager 已修复 FRU。

acquitted

已使用命令 fmadm acquit 通知 Fault Manager 已释放 FRU。

还将显示任何受影响的 Solaris 资源的状态。对于发生故障的 FRU,关联资源的状态可以是以下之一:

  • 发生故障且不再运行

  • 发生故障但仍在运行

  • 发生故障但仍提供降级服务

对于已经修复、更换或释放的 FRU,关联资源的状态可以是以下之一:

  • 正常且正在运行

  • 停止运行,但关联组件不再发生故障

  • 服务降级,但关联组件不再发生故障

fmadm list-alert [–afprsv] [–u uuid]

此子命令的行为类似于 list,但仅显示包含某个警报事件的可疑列表。

fmadm list-alias

list-alias 命令用于显示所有注释和映射。另请参见 add-aliaslookup-aliasremove-aliassync-alias 子命令。

fmadm list-defect [–afprsv] [–u uuid]

此子命令的行为类似于 list,但仅显示包含某个缺陷事件的可疑列表。

fmadm list-fault [–afprsv] [–u uuid]

此子命令的行为类似于 list,但仅显示包含某个故障事件的可疑列表。

fmadm load path

装入指定的 Fault Manager 模块。path 必须是绝对路径,且必须指向某个为模块定义的目录中存在的模块。通常,不需要使用此命令,因为 Fault Manager 会在 Solaris 最初引导时或根据需要自动装入模块。另请参见 fmadm unload

fmadm lookup-alias alias-id | chassis-name.chassis-serial

lookup-alias 子命令可用于确定当前映射。下面是一个命令示例。

# fmadm lookup-alias SUN-Storage-J4410.1039QAQ007

另请参见 add-aliaslist-aliasremove-aliassync-alias

fmadm remove-alias alias-id | chassis-name.chassis-serial

fmadm remove-alias 子命令用于删除 chassis-name.chassis-serialalias-id 的映射。

# fmadm remove-alias RACK29.U25-28

当关联的名称空间更新完成时,上述命令即完成。另请参见 add-aliaslist-aliaslookup-aliassync-alias

fmadm repaired fmri | label

通知 Fault Manager,已经对指定的资源执行修复过程。fmadm repaired 命令应仅在 Oracle 修复过程文档的指导下使用。管理员可能需要使用额外的命令来重新启用之前发生故障的资源。

fmadm replaced fmri | label

通知 Fault Manager,已经替换指定的资源。此命令应在 Fault Manager 无法自动检测替换的情况下使用。fmadm replaced 命令应仅在 Oracle 修复过程文档的指导下使用。管理员可能需要使用额外的命令来重新启用之前发生故障的资源。

fmadm reset [–s serd] module

复位指定的 Fault Manager 模块或模块子组件。如果存在 –s 选项,将在模块内复位指定的 Soft Error Rate Discrimination (SERD) 引擎。如果不存在 –s 选项,会复位整个模块,并删除所有与该模块关联的持久性状态。fmadm reset 命令应仅在 Oracle 修复过程文档的指导下使用。通常,不需要使用此命令,因为 Fault Manager 自动管理其模块。

fmadm rotate errlog | fltlog | infolog | infolog_hival

fmadm rotate 命令是 logadm(8) 命令的辅助命令,可用于确保 logadm 正确轮转活动的日志文件。fmadm rotate 命令不可直接调用(直接调用可能会丢失日志历史记录)。如果当前日志文件的大小不为零,可以使用以下命令之一轮转相应的日志文件:

# logadm -p now -s 1b /var/fm/fmd/errlog
# logadm -p now -s 1b /var/fm/fmd/fltlog
# logadm -p now -s 1b /var/fm/fmd/infolog
# logadm -p now -s 1b /var/fm/fmd/infolog_hival
fmadm sync-alias

sync-alias 子命令用于成批手动导入一组映射。将维护当前映射的两个副本:

  • /etc/dev/chassis_aliases

  • /etc/dev/.chassis_aliases

要成批导入一组映射,您可以更新 /etc/dev/chassis_aliases 文件,然后运行 fmadm sync-alias。另请参见 add-aliaslist-aliaslookup-aliasremove-alias

fmadm unload module

卸载指定的 Fault Manager 模块。使用 fmadm config 输出中所列的基名来指定 module。通常,不需要使用此命令,因为 Fault Manager 会根据系统配置自动装入和卸载模块。另请参见 fmadm load

选项

支持以下选项:

–q

设置静默模式。fmadm 不会向标准输出发出表明成功操作结果的消息。

操作数

支持下列操作数:

subcommand

“子命令”部分中列出的一个子命令的名称。

arguments

一个或多个适用于选定 subcommand 的选项或参数,如“子命令”部分所述。这些参数包括 fmriuuidlabel。这些参数会标识作为 fmadm 子命令的对象的资源。使用 fmadm list 获取用于目标资源的 fmriuuidlabel。通常,label 是这些操作数中用户友好程度最高的。请参见下文的“示例”部分。

退出状态

将返回以下退出值:

0

成功完成

1

出现错误。错误包括与 fmd 的通信失败,或是执行请求操作的 RBAC 授权不足

2

指定的命令行选项无效

示例

示例 1 调用 list 子命令

以下命令调用 list 子命令,它显示一个组件的 uuidlabelfmri

# fmadm list
------------ ------------------------------------  ------------ ---------
TIME         EVENT-ID                              MSG-ID       SEVERITY
------------ ------------------------------------  ------------ ---------
Sep 09 16:15 96609fae-113c-e48c-b1cf-ebf4b0902d72  DISK-8000-3E Critical
                                                                
Problem Status  : open
Diag Engine     : eft / 1.16 
System
   Manufacturer : Oracle-Corp.
   Name         : SUN-FIRE-X4170-SERVER
   Part Number  : unknown
   Serial Number: 0920XF508B

----------------------------------------
Suspect 1 of 1:
  Fault class: fault.io.scsi.cmd.disk.dev.rqs.derr
  Certainty  : 100% 
  Affects    : dev:///:devid=id1,sd@n5000c5000940edbb//scsi_vhci/disk@g\
                 5000c5000940edbb
  Status     : faulted and taken out of service
  
   FRU  
      Status            : faulty
      Location         : "/SUN-Storage-J4410.1037QAQ052/HDD11"
      Location Alias   : "/RACK29.U25-28/HDD11"
      Manufacturer      : SEAGATE
      Name              : ST330057SSUN300G
      Part Number       : SEAGATE-ST330057SSUN300G
      Revision          : 0205 
      Serial Number     : 000930G01CN4----3SJ01CN4
      Chassis
         Manufacturer   : Oracle-Corp.
         Name           : SUN-Storage-J4410
         Part Number    : 594-5329
         Serial Number  : 1037QAQ052
      ...
      ...

在上面的输出中,uuidEVENT-ID 列中的第一项 96609fae-113c-e48c-b1cf-ebf4b0902d72label 位于位置行 "/SUN-Storage-J4410.1037QAQ052/HDD11" 中的 FRU 部分。在此示例中,已经设置了机箱别名,并且已有别名的位置显示在 "Location Alias"(位置别名)行 "/RACK29.U25-28/HDD11" 中。

fmri 可通过 fmdump –v 获得:

# fmdump -v
Sep 09 16:15:36.9252 96609fae-113c-e48c-b1cf-ebf4b0902d72 DISK-8000-3E \
Diagnosed 100%  fault.io.scsi.cmd.disk.dev.rqs.derr

Problem in: hc://:scheme=:chassis-mfg=Oracle-Corp.:chassis-name=SUN-\ 
Storage-J4410:chassis-part=594-5329:chassis-serial=1037QAQ052/ses-\ 
enclosure=0/bay=11/disk=0

Affects: dev:///:devid=id1,sd@n5000c5000940edbb//\ 
scsi_vhci/disk@g5000c5000940edbb
FRU: hc://chassis-mfg=Oracle-Corp.:chassis-name=SUN-Storage-J4410\ 
:chassis-part=594-5329:chassis-serial=1037QAQ052:fru-mfg=SEAGATE\ 
:fru-name=SEAGATE-ST330057SSUN300G:fru-part=SEAGATE-ST330057SSUN300G\ 
:fru-revision=0205:fru-serial=000930G01CN4--------3SJ01CN4/\
ses-enclosure=0/bay=11/disk=0

FRU Location: "/SUN-Storage-J4410.1037QAQ052/HDD11"

请注意,label 是使用最方便的标识符。可以使用 "Location"(位置)的别名或非别名形式。

示例 2 获取模块名称

以下命令显示每个组件的模块名称。模块名称被指定为 fmadm unload 命令的输入。

# fmadm config
MODULE                   VERSION STATUS  DESCRIPTION
cpumem-retire            1.1     active  CPU/Memory Retire Agent
disk-transport           1.0     active  Disk Transport Agent
eft                      1.16    active  eft diagnosis engine
..

属性

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

属性类型
属性值
可用性
system/fault-management
接口稳定性
请参见下文

命令行选项为 Committed(已确定)。用户可读输出为 not-an-interface(不是接口)。

另请参见

fmd(8)fmdump(8)fmstat(8)logadm(8)syslogd(8)attributes(7)devchassis(4FS)

在 Oracle Solaris 11.4 中确保系统和连接设备的安全

附注

Oracle Solaris FMA 不会确定或主动参与 SMART 故障分析或预测。它读取磁盘报告的 SMART 数据。

可以使用 SMARTCTL 等第三方实用程序查看更多 SMART 只读信息。这些阈值由磁盘制造商确定,并因磁盘制作/型号/固件级别而异。HDD 制造商不提供 SMART 阈值信息。不过,SMARTCTL 可能会向您显示这些值,但其为只读。

磁盘一旦断言 SMART 故障预测或警告,必须对其进行更换。您无法关闭 SMART 故障预测。请注意,磁盘完全出现故障只是时间问题。

虽然可以使用 fmadm acquit 命令告知 Oracle Solaris FMA 忽略特定 SMART 故障事件,但不建议这么做。此外,磁盘一旦断言 SMART 故障,便无法对其进行更改,必须更换。

建议确保您的系统软件和固件(包括 SAS 控制器和磁盘固件)始终保持最新。这可确保系统具有最佳功能。