]> git.proxmox.com Git - mirror_zfs.git/commit - cmd/zed/Makefile.am
Add illumos FMD ZFS logic to ZED -- phase 2
authorDon Brady <don.brady@intel.com>
Mon, 7 Nov 2016 23:01:38 +0000 (16:01 -0700)
committerBrian Behlendorf <behlendorf1@llnl.gov>
Mon, 7 Nov 2016 23:01:38 +0000 (15:01 -0800)
commit976246fadde25790cec3de50c01c689d98d84e0c
tree13cf67895edeeae4c842bb08f69573189ba8a83d
parentf4bae2ed6361917660f5238cd35672ad18d7babc
Add illumos FMD ZFS logic to ZED -- phase 2

The phase 2 work primarily entails the Diagnosis Engine and
the Retire Agent modules. It also includes infrastructure
to support a crude FMD environment to host these modules.

The Diagnosis Engine consumes I/O and checksum ereports and
feeds them into a SERD engine which will generate a corres-
ponding fault diagnosis when the SERD engine fires. All the
diagnosis state data is collected into cases, one case per
vdev being tracked.

The Retire Agent responds to diagnosed faults by isolating
the faulty VDEV. It will notify the ZFS kernel module of
the new VDEV state (degraded or faulted). This agent is
also responsible for managing hot spares across pools.
When it encounters a device fault or a device removal it
replaces the device with an appropriate spare if available.

Reviewed-by: Tony Hutter <hutter2@llnl.gov>
Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Signed-off-by: Don Brady <don.brady@intel.com>
Closes #5343
17 files changed:
cmd/zed/Makefile.am
cmd/zed/agents/README.md [new file with mode: 0644]
cmd/zed/agents/fmd_api.c [new file with mode: 0644]
cmd/zed/agents/fmd_api.h [new file with mode: 0644]
cmd/zed/agents/fmd_serd.c [new file with mode: 0644]
cmd/zed/agents/fmd_serd.h [new file with mode: 0644]
cmd/zed/agents/zfs_agents.c [new file with mode: 0644]
cmd/zed/agents/zfs_agents.h
cmd/zed/agents/zfs_diagnosis.c
cmd/zed/agents/zfs_mod.c
cmd/zed/agents/zfs_retire.c
cmd/zed/zed.d/checksum-spare.sh [deleted symlink]
cmd/zed/zed.d/io-spare.sh [deleted file]
cmd/zed/zed_disk_event.c
cmd/zed/zed_event.c
cmd/zed/zed_exec.c
module/zfs/vdev.c