在 Oracle® Solaris 11.2 中管理故障

退出打印视图

更新时间: 2014 年 7 月
 
 

故障管理概述

Oracle Solaris 故障管理功能包括下列组件:

  • 构建有复原能力的错误处理程序的体系结构

  • 结构化错误遥测

  • 自动诊断软件

  • 响应代理

  • 结构化消息

软件栈的许多部分都参与故障管理,其中包括 CPU、内存和 I/O 子系统、Oracle Solaris ZFS 以及许多设备驱动程序。

FMA 可以帮助解决故障和缺陷:

  • 故障-有故障的组件是指之前可以工作但现在无法再工作的组件。

  • 缺陷-有缺陷的组件是指一直无法正常工作的组件。

硬件可能会遇到故障和缺陷。大多数软件问题是缺陷,或是由配置问题引起的。故障管理和系统服务经常彼此交互。例如,硬件问题可能导致服务停止或重新启动。SMF 服务错误可能导致 FMA 报告缺陷。

故障管理栈包括错误检测器、诊断引擎和响应代理。

错误检测器

错误检测器检测系统中的错误,然后立即执行所需的处理。错误检测器向诊断引擎发出定义明确的错误报告或 ereport

诊断引擎

诊断引擎对 ereport 进行解释并确定系统中是否存在故障或缺陷。进行此确定之后,诊断引擎会发出一个可疑对象列表,该列表描述了可能是问题起因的资源或资源集。资源可能有相关的现场可更换单元 (Field Replaceable Unit, FRU)、标签或自动系统重新配置单元 (Automatic System Reconfiguration Unit, ASRU)。可以立即从服务中删除某个 ASRU 以减轻问题,直至更换完 FRU。

当可疑对象列表包含多个可疑对象时,例如,如果诊断引擎无法隔离单个可疑对象,将会为每个可疑对象分配一个概率,以指示它是关键可疑对象的可能性。该列表中的概率的总和为 100%。可疑对象列表由响应代理进行解释。

响应代理

响应代理会根据可疑对象列表尝试采取一些操作。响应包括记录一些消息、使 CPU 导线束脱机、回收内存页面以及回收 I/O 设备。

错误检测器、诊断引擎和响应代理由 Fault Manager 守护进程 fmd 连接起来,该守护进程充当各个组件之间的多路复用器,如下图所示。

图 1-1  故障管理体系结构组件

image:显示 Fault Manager 守护进程、错误检测器、诊断引擎和响应代理之间的关系。

Fault Manager 管理的问题的生命周期可能包括以下阶段:

诊断

Fault Manager 诊断出了一个新问题。诊断包括一个或多个可疑对象列表。可能自动隔离某个可疑对象以防止发生进一步错误。问题在事件有效载荷中问题由 UUID(Universally Unique Identifier,通用唯一标识符)进行标识,描述此问题解决生命周期的其他事件会引用匹配的 UUID。

更新

问题诊断中的一个或多个可疑资源已修复、更换或排除嫌疑,或者资源再次发生故障。可疑对象列表仍然包括至少一个故障的资源。可能已通过执行 fmadm 命令进行了修复,或者系统可能检测到了一次修复(例如,更改了某个部件的序列号)。Chapter 3, 故障修复中介绍了 fmadm 命令。

修复

问题诊断中的所有可疑资源均已修复、解决或被视为无故障。部分或全部资源可能仍处于隔离状态。

解决

问题诊断中的所有可疑资源均已修复、解决或被视为无故障,不再隔离。例如,涉嫌并已脱机的 CPU 现在重新联机。资源的脱机和联机通常是自动完成的。

Fault Manager 守护进程是一种服务管理工具 (Service Management Facility, SMF) 服务。缺省情况下,svc:/system/fmd 服务已启用。有关 SMF 服务的更多信息,请参见在 Oracle Solaris 11.2 中管理系统服务 。有关 Fault Manager 守护进程的更多信息,请参见 fmd(1M) 手册页。

fmadm config 命令可显示 Fault Manager 中每个模块的名称、说明和状态。这些模块可诊断和修复系统上的问题。fmstat 命令可显示有关这些模块的其他信息,如故障统计信息中所示。