跳过导航链接 | |
退出打印视图 | |
![]() |
在 Oracle Solaris 11.1 中管理服务和故障 Oracle Solaris 11.1 Information Library (简体中文) |
Oracle Solaris 故障管理功能提供的体系结构用于构建有复原能力的错误处理程序、结构化错误遥测工具、自动化诊断软件、响应代理以及结构化消息传送系统。软件栈的许多部分都参与故障管理,其中包括 CPU、内存和 I/O 子系统、Oracle Solaris ZFS、不断增加的一组设备驱动程序,以及其他管理栈。
FMA 用于帮助解决 Oracle Solaris 系统中可能会出现的问题。问题可能是一个故障,意思是说,某个功能过去正常工作但不再正常工作。问题可能是一个缺陷,意思是说,它从未正常工作。通常,硬件可能会出现故障,也可能会出现缺陷。但是,大多数软件问题是缺陷,或是由配置问题引起的。
在较高层面,故障管理栈包含错误检测器、诊断引擎和响应代理。错误检测器,顾名思义,它检测系统中的错误,然后立即执行所需的处理。错误检测器向诊断引擎发出定义明确的错误报告或 ereport。诊断引擎对 ereport 进行解释并确定系统中是否存在故障或缺陷。进行此确定之后,诊断引擎会发出一个可疑对象列表,该列表描述了可能是问题起因的资源或资源集。资源可能有也可能没有相关的现场可更换单元 (field-replaceable unit, FRU)、标签或自动系统重新配置单元 (Automatic System Reconfiguration Unit, ASRU)。可以立即从服务中删除某个 ASRU 以减轻问题,直至更换完 FRU。
当可疑对象列表包含多个可疑对象时,例如,如果诊断引擎无法隔离单个可疑对象,将会为每个可疑对象分配一个概率,以指示它是关键可疑对象的可能性。该列表中的各个概率的总和为 100%。可疑对象列表由响应代理进行解释。响应代理会根据可疑对象列表尝试采取一些操作。响应包括记录一些消息、使 CPU 导线束脱机、回收内存页面以及回收 I/O 设备。
错误检测器、诊断引擎和响应代理由 Fault Manager 守护进程 fmd 连接起来,该守护进程充当各个组件之间的多路复用器,如下图所示。
Fault Manager 守护进程本身也是由 SMF 控制的一个服务。该服务是缺省启用的,对该服务的控制方式与对所有其他 SMF 服务一样。有关更多信息,请参见 smf(5) 手册页。
在适当的情况下,FMA 和 SMF 服务会相互交互。某些硬件问题可能会导致服务被 SMF 停止或重新启动。另外,某些 SMF 错误会导致 FMA 报告某个缺陷。