Oracle Solaris ZFS 管理指南

确定 ZFS 故障

作为组合的文件系统和卷管理器,ZFS 可以呈现许多不同的故障。本章首先概述各种故障,然后讨论如何在正运行的系统上确定各种故障。本章最后讨论如何修复问题。ZFS 可能遇到三种基本类型的错误:

请注意,单个池可能会遇到所有这三种错误,因此完整的修复过程依次查找和更正各个错误。

ZFS 存储池中缺少设备

如果某设备已从系统中彻底删除,则 ZFS 会检测到该设备无法打开,并将其置于 REMOVED(已删除)状态。这一删除可能会导致整个池变得不可用,但也可能不会,具体取决于池的数据复制级别。如果镜像设备或 RAID-Z 设备中的一个磁盘被删除,仍可以继续访问池。在下列情况下,池可能会发生故障 (FAULTED),即无法访问数据,除非重新安装设备:

ZFS 存储池中的设备已损坏

“损坏”一词涵盖各种可能出现的错误。以下是错误示例:

在一些情况下,这些错误是瞬态的,如控制器出现问题时的随机 I/O 错误。在另外一些情况下,损坏是永久性的,如磁盘损坏。但是,若损坏是永久性的,则并不一定表明该错误很可能会再次出现。例如,如果管理员意外覆写了磁盘的一部分,且未出现某种硬件故障,则不需要替换该设备。准确确定设备的问题不是一项轻松的任务,在稍后的一节中将对此进行更详细的介绍。

ZFS 数据已损坏

一个或多个设备错误(指示一个或多个设备缺少或已损坏)影响顶层虚拟设备时,将出现数据损坏。例如,镜像的一半可能会遇到数千个绝不会导致数据损坏的设备错误。如果在镜像另一面的完全相同位置中遇到错误,则会导致数据损坏。

数据损坏始终是永久性的,因此在修复期间需要特别注意。即使修复或替换底层设备,也将永远丢失原始数据。这种情况通常要求从备份恢复数据。在遇到数据错误时会记录错误,并可以通过常规池清理对错误进行控制,如下一节所述。删除损坏的块后,下一遍清理会识别出数据损坏已不再存在,并从系统中删除该错误的任何记录。