Message: ZFS-8000-9P

titleFailing device in replicated configuration
descriptionA device has experienced uncorrectable errors in a replicated configuration.
severityminor
typeerror
keysereport.fs.zfs.device.failing
detailsThe Message ID: ZFS-8000-9P indicates a device has exceeded the acceptable limit of errors allowed by the system. See document 203768 for additional information.
impactThe system is unaffected, though errors may indicate future failure. Future errors may cause ZFS to automatically fault the device.
responseZFS has attempted to repair the affected data.
action

Run 'zpool status -x' to determine which pool has experienced errors:

# zpool status
  pool: test
 state: ONLINE
status: One or more devices has experienced an unrecoverable error.  An
        attempt was made to correct the error.  Applications are unaffected.
action: Determine if the device needs to be replaced, and clear the errors
        using 'zpool online' or replace the device with 'zpool replace'.
   see: http://illumos.org/msg/ZFS-8000-9P
 scrub: none requested
config:

        NAME                  STATE     READ WRITE CKSUM
        test                  ONLINE       0     0     0
          mirror              ONLINE       0     0     0
            c0t0d0            ONLINE       0     0     2
            c0t0d1            ONLINE       0     0     0

errors: No known data errors

Find the device with a non-zero error count for READ, WRITE, or CKSUM. This indicates that the device has experienced a read I/O error, write I/O error, or checksum validation error. Because the device is part of a mirror or RAID-Z device, ZFS was able to recover from the error and subsequently repair the damaged data.

If these errors persist over a period of time, ZFS may determine the device is faulty and mark it as such. However, these error counts may or may not indicate that the device is unusable. It depends on how the errors were caused, which the administrator can determine in advance of any ZFS diagnosis. For example, the following cases will all produce errors that do not indicate potential device failure:

  • A network attached device lost connectivity but has now recovered
  • A device suffered from a bit flip, an expected event over long periods of time
  • An administrator accidentally wrote over a portion of the disk using another program

In these cases, the presence of errors does not indicate that the device is likely to fail in the future, and therefore does not need to be replaced. If this is the case, then the device errors should be cleared using 'zpool clear':

# zpool clear test c0t0d0

On the other hand, errors may very well indicate that the device has failed or is about to fail. If there are continual I/O errors to a device that is otherwise attached and functioning on the system, it most likely needs to be replaced. The administrator should check the system log for any driver messages that may indicate hardware failure. If it is determined that the device needs to be replaced, then the 'zpool replace' command should be used:

# zpool replace test c0t0d0 c0t0d2

This will attach the new device to the pool and begin resilvering data to it. Once the resilvering process is complete, the old device will automatically be removed from the pool, at which point it can safely be removed from the system. If the device needs to be replaced in-place (because there are no available spare devices), the original device can be removed and replaced with a new device, at which point a different form of 'zpool replace' can be used:

# zpool replace test c0t0d0

This assumes that the original device at 'c0t0d0' has been replaced with a new device under the same path, and will be replaced appropriately.

You can monitor the progress of the resilvering operation by using the 'zpool status -x' command:

# zpool status -x
  pool: test
 state: DEGRADED
status: One or more devices is currently being replaced.  The pool may not be
	providing the necessary level of replication.
action: Wait for the resilvering operation to complete
 scrub: resilver in progress, 0.14% done, 0h0m to go
config:

        NAME                  STATE     READ WRITE CKSUM
        test                  ONLINE       0     0     0
          mirror              ONLINE       0     0     0
            replacing         ONLINE       0     0     0
              c0t0d0          ONLINE       0     0     3
              c0t0d2          ONLINE       0     0     0  58.5K resilvered
            c0t0d1            ONLINE       0     0     0

errors: No known data errors