Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
ZPOOL-EVENTS(8)		    System Manager's Manual	       ZPOOL-EVENTS(8)

NAME
       zpool-events -- list recent events generated by kernel

SYNOPSIS
       zpool events [-vHf] [pool]
       zpool events -c

DESCRIPTION
       Lists  all  recent  events  generated by	the ZFS	kernel modules.	 These
       events are consumed by the zed(8) and used to  automate	administrative
       tasks such as replacing a failed	device with a hot spare.  For more in-
       formation about the subclasses and event	payloads that can be generated
       see "EVENTS" and	the following sections.

OPTIONS
       -c      Clear all previous events.
       -f      Follow mode.
       -H      Scripted	 mode.	Do not display headers,	and separate fields by
	       a single	tab instead of arbitrary space.
       -v      Print the entire	payload	for each event.

EVENTS
       These are the different event subclasses.  The full event name would be
       ereport.fs.zfs.SUBCLASS,	but only the last part is listed here.

       checksum		  Issued when a	checksum error has been	detected.
       io		  Issued when there is an I/O error in a vdev  in  the
			  pool.
       data		  Issued when there have been data errors in the pool.
       deadman		  Issued  when	an  I/O	 request  is  determined to be
			  "hung", this can be caused by	lost completion	events
			  due	to   flaky   hardware	or    drivers.	   See
			  zfs_deadman_failmode in zfs(4) for additional	infor-
			  mation regarding "hung" I/O detection	and configura-
			  tion.
       delay		  Issued when a	completed I/O request exceeds the max-
			  imum	allowed	 time  specified by the	zio_slow_io_ms
			  module parameter.  This can be an indicator of prob-
			  lems with the	underlying storage device.  The	number
			  of   delay   events	is    ratelimited    by	   the
			  zfs_slow_io_events_per_second	module parameter.
       config		  Issued  every	 time  a vdev change have been done to
			  the pool.
       zpool		  Issued when a	pool cannot be imported.
       zpool.destroy	  Issued when a	pool is	destroyed.
       zpool.export	  Issued when a	pool is	exported.
       zpool.import	  Issued when a	pool is	imported.
       zpool.reguid	  Issued when a	REGUID (new unique identifier for  the
			  pool have been regenerated) have been	detected.
       vdev.unknown	  Issued  when the vdev	is unknown.  Such as trying to
			  clear	device errors on a vdev	that have  failed/been
			  kicked  from the system/pool and is no longer	avail-
			  able.
       vdev.open_failed	  Issued when a	vdev could not be opened  (because  it
			  didn't exist for example).
       vdev.corrupt_data  Issued  when	corrupt	 data  have been detected on a
			  vdev.
       vdev.no_replicas	  Issued when there are	no more	 replicas  to  sustain
			  the  pool.   This  would  lead  to  the  pool	 being
			  DEGRADED.
       vdev.bad_guid_sum  Issued when a	missing	device in the pool  have  been
			  detected.
       vdev.too_small	  Issued  when	the system (kernel) have removed a de-
			  vice,	and ZFS	notices	that the  device  isn't	 there
			  any	more.	 This	is   usually   followed	 by  a
			  probe_failure	event.
       vdev.bad_label	  Issued when the label	is OK but invalid.
       vdev.bad_ashift	  Issued when the ashift alignment requirement has in-
			  creased.
       vdev.remove	  Issued when a	vdev is	detached from a	mirror	(or  a
			  spare	 detached  from	a vdev where it	have been used
			  to replace a failed drive - only works if the	origi-
			  nal drive have been re-added).
       vdev.clear	  Issued when clearing device errors in	a pool.	  Such
			  as running zpool clear on a device in	the pool.
       vdev.check	  Issued  when a check to see if a given vdev could be
			  opened is started.
       vdev.spare	  Issued when a	spare have  kicked  in	to  replace  a
			  failed device.
       vdev.autoexpand	  Issued when a	vdev can be automatically expanded.
       io_failure	  Issued when there is an I/O failure in a vdev	in the
			  pool.
       probe_failure	  Issued when a	probe fails on a vdev.	This would oc-
			  cur  if a vdev have been kicked from the system out-
			  side of ZFS (such as the kernel have removed the de-
			  vice).
       log_replay	  Issued when the intent log cannot be replayed.   The
			  can  occur  in  the case of a	missing	or damaged log
			  device.
       resilver.start	  Issued when a	resilver is started.
       resilver.finish	  Issued when the running resilver have	finished.
       scrub.start	  Issued when a	scrub is started on a pool.
       scrub.finish	  Issued when a	pool has finished scrubbing.
       scrub.abort	  Issued when a	scrub is aborted on a pool.
       scrub.resume	  Issued when a	scrub is resumed on a pool.
       scrub.paused	  Issued when a	scrub is paused	on a pool.
       bootfs.vdev.attach

PAYLOADS
       This is the payload (data, information) that accompanies	an event.

       For zed(8), these are set to uppercase and prefixed with	ZEVENT_.

       pool		  Pool name.
       pool_failmode	  Failmode  -  wait,  continue,	 or  panic.   See  the
			  failmode property in zpoolprops(7) for more informa-
			  tion.
       pool_guid	  The GUID of the pool.
       pool_context	  The  load  state for the pool	(0=none, 1=open, 2=im-
			  port,	3=tryimport, 4=recover 5=error).
       vdev_guid	  The GUID of the vdev in question (the	 vdev  failing
			  or operated upon with	zpool clear, etc.).
       vdev_type	  Type	of  vdev  -  disk, file, mirror, etc.  See the
			  Virtual Devices section of zpoolconcepts(7) for more
			  information on possible values.
       vdev_path	  Full path of the vdev, including any -partX.
       vdev_devid	  ID of	vdev (if any).
       vdev_fru		  Physical FRU location.
       vdev_state	  State	of vdev	(0=uninitialized, 1=closed, 2=offline,
			  3=removed, 4=failed to open, 5=faulted,  6=degraded,
			  7=healthy).
       vdev_ashift	  The ashift value of the vdev.
       vdev_complete_ts	  The  time  the  last	I/O  request completed for the
			  specified vdev.
       vdev_delta_ts	  The time since the last I/O  request	completed  for
			  the specified	vdev.
       vdev_spare_paths	  List of spares, including full path and any -partX.
       vdev_spare_guids	  GUID(s) of spares.
       vdev_read_errors	  How  many read errors	that have been detected	on the
			  vdev.
       vdev_write_errors  How many write errors	that have been detected	on the
			  vdev.
       vdev_cksum_errors  How many checksum errors that	have been detected  on
			  the vdev.
       parent_guid	  GUID of the vdev parent.
       parent_type	  Type of parent.  See vdev_type.
       parent_path	  Path of the vdev parent (if any).
       parent_devid	  ID of	the vdev parent	(if any).
       zio_objset	  The object set number	for a given I/O	request.
       zio_object	  The object number for	a given	I/O request.
       zio_level	  The  indirect	 level	for the	block.	Level 0	is the
			  lowest level and includes data blocks.  Values  >  0
			  indicate metadata blocks at the appropriate level.
       zio_blkid	  The block ID for a given I/O request.
       zio_err		  The error number for a failure when handling a given
			  I/O request, compatible with errno(3)	with the value
			  of EBADE used	to indicate a ZFS checksum error.
       zio_offset	  The  offset  in  bytes of where to write the I/O re-
			  quest	for the	specified vdev.
       zio_size		  The size in bytes of the I/O request.
       zio_flags	  The current flags describing	how  the  I/O  request
			  should  be  handled.	 See the I/O FLAGS section for
			  the full list	of I/O flags.
       zio_stage	  The current stage of the I/O in the  pipeline.   See
			  the  I/O  STAGES  section for	a full list of all the
			  I/O stages.
       zio_pipeline	  The valid pipeline stages for	the I/O.  See the  I/O
			  STAGES  section  for	a  full	 list  of  all the I/O
			  stages.
       zio_delay	  The time elapsed (in nanoseconds)  waiting  for  the
			  block	 layer	to  complete  the I/O request.	Unlike
			  zio_delta, this does not include  any	 vdev  queuing
			  time	and is therefore solely	a measure of the block
			  layer	performance.
       zio_timestamp	  The time when	a given	I/O request was	submitted.
       zio_delta	  The time required to service a given I/O request.
       prev_state	  The previous state of	the vdev.
       cksum_algorithm	  Checksum algorithm used.  See	zfsprops(7)  for  more
			  information on the available checksum	algorithms.
       cksum_byteswap	  Whether or not the data is byteswapped.
       bad_ranges	  [start,  end)	 pairs of corruption offsets.  Offsets
			  are always aligned on	a 64-bit boundary, and can in-
			  clude	  some	 gaps	of    non-corruption.	  (See
			  bad_ranges_min_gap)
       bad_ranges_min_gap
			  In  order to bound the size of the bad_ranges	array,
			  gaps	of  non-corruption  less  than	or  equal   to
			  bad_ranges_min_gap bytes have	been merged with adja-
			  cent	corruption.   Always  at  least	8 bytes, since
			  corruption is	detected on a 64-bit word basis.
       bad_range_sets	  This array has one element per range in  bad_ranges.
			  Each	element	 contains  the	count  of bits in that
			  range	which were clear in the	good data and  set  in
			  the bad data.
       bad_range_clears	  This	array has one element per range	in bad_ranges.
			  Each element contains	the count  of  bits  for  that
			  range	 which	were set in the	good data and clear in
			  the bad data.
       bad_set_bits	  If this field	exists,	it is an array of (bad data  &
			  ~(good data)); that is, the bits set in the bad data
			  which	 are  cleared  in the good data.  Each element
			  corresponds a	byte whose offset is  in  a  range  in
			  bad_ranges,  and  the	 array	is  ordered by offset.
			  Thus,	the first element is the  first	 byte  in  the
			  first	 bad_ranges range, and the last	element	is the
			  last byte in the last	bad_ranges range.
       bad_cleared_bits	  Like bad_set_bits, but contains (good	data  &	 ~(bad
			  data)); that is, the bits set	in the good data which
			  are cleared in the bad data.

I/O STAGES
       The  ZFS	 I/O pipeline is comprised of various stages which are defined
       below.  The individual stages are used to construct these basic I/O op-
       erations: Read, Write, Free, Claim, and Ioctl.  These stages may	be set
       on an event to describe the life	cycle of a given I/O request.

       Stage			     Bit Mask	  Operations
       ------------------------------------------------------
       ZIO_STAGE_OPEN		     0x00000001	  RWFCI

       ZIO_STAGE_READ_BP_INIT	     0x00000002	  R----
       ZIO_STAGE_WRITE_BP_INIT	     0x00000004	  -W---
       ZIO_STAGE_FREE_BP_INIT	     0x00000008	  --F--
       ZIO_STAGE_ISSUE_ASYNC	     0x00000010	  RWF--
       ZIO_STAGE_WRITE_COMPRESS	     0x00000020	  -W---

       ZIO_STAGE_ENCRYPT	     0x00000040	  -W---
       ZIO_STAGE_CHECKSUM_GENERATE   0x00000080	  -W---

       ZIO_STAGE_NOP_WRITE	     0x00000100	  -W---

       ZIO_STAGE_BRT_FREE	     0x00000200	  --F--

       ZIO_STAGE_DDT_READ_START	     0x00000400	  R----
       ZIO_STAGE_DDT_READ_DONE	     0x00000800	  R----
       ZIO_STAGE_DDT_WRITE	     0x00001000	  -W---
       ZIO_STAGE_DDT_FREE	     0x00002000	  --F--

       ZIO_STAGE_GANG_ASSEMBLE	     0x00004000	  RWFC-
       ZIO_STAGE_GANG_ISSUE	     0x00008000	  RWFC-

       ZIO_STAGE_DVA_THROTTLE	     0x00010000	  -W---
       ZIO_STAGE_DVA_ALLOCATE	     0x00020000	  -W---
       ZIO_STAGE_DVA_FREE	     0x00040000	  --F--
       ZIO_STAGE_DVA_CLAIM	     0x00080000	  ---C-

       ZIO_STAGE_READY		     0x00100000	  RWFCI

       ZIO_STAGE_VDEV_IO_START	     0x00200000	  RW--I
       ZIO_STAGE_VDEV_IO_DONE	     0x00400000	  RW--I
       ZIO_STAGE_VDEV_IO_ASSESS	     0x00800000	  RW--I

       ZIO_STAGE_CHECKSUM_VERIFY     0x01000000	  R----

       ZIO_STAGE_DONE		     0x02000000	  RWFCI

I/O FLAGS
       Every I/O request in the	pipeline contains a set	 of  flags  which  de-
       scribe  its  function and are used to govern its	behavior.  These flags
       will be set in an event as a zio_flags payload entry.

       Flag			 Bit Mask
       -------------------------------------
       ZIO_FLAG_DONT_AGGREGATE	 0x00000001
       ZIO_FLAG_IO_REPAIR	 0x00000002
       ZIO_FLAG_SELF_HEAL	 0x00000004
       ZIO_FLAG_RESILVER	 0x00000008
       ZIO_FLAG_SCRUB		 0x00000010
       ZIO_FLAG_SCAN_THREAD	 0x00000020
       ZIO_FLAG_PHYSICAL	 0x00000040

       ZIO_FLAG_CANFAIL		 0x00000080
       ZIO_FLAG_SPECULATIVE	 0x00000100
       ZIO_FLAG_CONFIG_WRITER	 0x00000200
       ZIO_FLAG_DONT_RETRY	 0x00000400
       ZIO_FLAG_NODATA		 0x00001000
       ZIO_FLAG_INDUCE_DAMAGE	 0x00002000

       ZIO_FLAG_IO_ALLOCATING	 0x00004000
       ZIO_FLAG_IO_RETRY	 0x00008000
       ZIO_FLAG_PROBE		 0x00010000
       ZIO_FLAG_TRYHARD		 0x00020000
       ZIO_FLAG_OPTIONAL	 0x00040000

       ZIO_FLAG_DONT_QUEUE	 0x00080000
       ZIO_FLAG_DONT_PROPAGATE	 0x00100000
       ZIO_FLAG_IO_BYPASS	 0x00200000
       ZIO_FLAG_IO_REWRITE	 0x00400000
       ZIO_FLAG_RAW_COMPRESS	 0x00800000
       ZIO_FLAG_RAW_ENCRYPT	 0x01000000

       ZIO_FLAG_GANG_CHILD	 0x02000000
       ZIO_FLAG_DDT_CHILD	 0x04000000
       ZIO_FLAG_GODFATHER	 0x08000000
       ZIO_FLAG_NOPWRITE	 0x10000000
       ZIO_FLAG_REEXECUTED	 0x20000000
       ZIO_FLAG_DELEGATED	 0x40000000
       ZIO_FLAG_FASTWRITE	 0x80000000

SEE ALSO
       zfs(4), zed(8), zpool-wait(8)

FreeBSD	14.3			 July 11, 2023		       ZPOOL-EVENTS(8)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=zpool-events&sektion=8&manpath=FreeBSD+14.3-RELEASE+and+Ports>

home | help