mirror of
				https://git.proxmox.com/git/mirror_zfs
				synced 2025-10-31 11:44:51 +00:00 
			
		
		
		
	 e458fcca75
			
		
	
	
		e458fcca75
		
			
		
	
	
	
	
		
			
			Update the project website links contained in to repository to reference the secure https://zfsonlinux.org address. Reviewed-By: Richard Laager <rlaager@wiktel.com> Reviewed-by: George Melikov <mail@gmelikov.ru> Reviewed-by: Garrett Fields <ghfields@gmail.com> Reviewed-by: Kjeld Schouten <kjeld@schouten-lebbing.nl> Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov> Closes #9837
		
			
				
	
	
		
			262 lines
		
	
	
		
			8.0 KiB
		
	
	
	
		
			Groff
		
	
	
	
	
	
			
		
		
	
	
			262 lines
		
	
	
		
			8.0 KiB
		
	
	
	
		
			Groff
		
	
	
	
	
	
| .\"
 | |
| .\" This file is part of the ZFS Event Daemon (ZED)
 | |
| .\" for ZFS on Linux (ZoL) <https://zfsonlinux.org/>.
 | |
| .\" Developed at Lawrence Livermore National Laboratory (LLNL-CODE-403049).
 | |
| .\" Copyright (C) 2013-2014 Lawrence Livermore National Security, LLC.
 | |
| .\" Refer to the ZoL git commit log for authoritative copyright attribution.
 | |
| .\"
 | |
| .\" The contents of this file are subject to the terms of the
 | |
| .\" Common Development and Distribution License Version 1.0 (CDDL-1.0).
 | |
| .\" You can obtain a copy of the license from the top-level file
 | |
| .\" "OPENSOLARIS.LICENSE" or at <http://opensource.org/licenses/CDDL-1.0>.
 | |
| .\" You may not use this file except in compliance with the license.
 | |
| .\"
 | |
| .TH ZED 8 "Octember 1, 2013" "ZFS on Linux" "System Administration Commands"
 | |
| 
 | |
| .SH NAME
 | |
| ZED \- ZFS Event Daemon
 | |
| 
 | |
| .SH SYNOPSIS
 | |
| .HP
 | |
| .B zed
 | |
| .\" [\fB\-c\fR \fIconfigfile\fR]
 | |
| [\fB\-d\fR \fIzedletdir\fR]
 | |
| [\fB\-f\fR]
 | |
| [\fB\-F\fR]
 | |
| [\fB\-h\fR]
 | |
| [\fB\-L\fR]
 | |
| [\fB\-M\fR]
 | |
| [\fB\-p\fR \fIpidfile\fR]
 | |
| [\fB\-P\fR \fIpath\fR]
 | |
| [\fB\-s\fR \fIstatefile\fR]
 | |
| [\fB\-v\fR]
 | |
| [\fB\-V\fR]
 | |
| [\fB\-Z\fR]
 | |
| 
 | |
| .SH DESCRIPTION
 | |
| .PP
 | |
| \fBZED\fR (ZFS Event Daemon) monitors events generated by the ZFS kernel
 | |
| module.  When a zevent (ZFS Event) is posted, \fBZED\fR will run any ZEDLETs
 | |
| (ZFS Event Daemon Linkage for Executable Tasks) that have been enabled for the
 | |
| corresponding zevent class.
 | |
| 
 | |
| .SH OPTIONS
 | |
| .TP
 | |
| .BI \-h
 | |
| Display a summary of the command-line options.
 | |
| .TP
 | |
| .BI \-L
 | |
| Display license information.
 | |
| .TP
 | |
| .BI \-V
 | |
| Display version information.
 | |
| .TP
 | |
| .BI \-v
 | |
| Be verbose.
 | |
| .TP
 | |
| .BI \-f
 | |
| Force the daemon to run if at all possible, disabling security checks and
 | |
| throwing caution to the wind.  Not recommended for use in production.
 | |
| .TP
 | |
| .BI \-F
 | |
| Run the daemon in the foreground.
 | |
| .TP
 | |
| .BI \-M
 | |
| Lock all current and future pages in the virtual memory address space.
 | |
| This may help the daemon remain responsive when the system is under heavy
 | |
| memory pressure.
 | |
| .TP
 | |
| .BI \-Z
 | |
| Zero the daemon's state, thereby allowing zevents still within the kernel
 | |
| to be reprocessed.
 | |
| .\" .TP
 | |
| .\" .BI \-c\  configfile
 | |
| .\" Read the configuration from the specified file.
 | |
| .TP
 | |
| .BI \-d\  zedletdir
 | |
| Read the enabled ZEDLETs from the specified directory.
 | |
| .TP
 | |
| .BI \-p\  pidfile
 | |
| Write the daemon's process ID to the specified file.
 | |
| .TP
 | |
| .BI \-P\  path
 | |
| Custom $PATH for zedlets to use.  Normally zedlets run in a locked-down
 | |
| environment, with hardcoded paths to the ZFS commands ($ZFS, $ZPOOL, $ZED, ...),
 | |
| and a hardcoded $PATH.  This is done for security reasons.  However, the
 | |
| ZFS test suite uses a custom PATH for its ZFS commands, and passes it to zed
 | |
| with -P.  In short, -P is only to be used by the ZFS test suite; never use
 | |
| it in production!
 | |
| .TP
 | |
| .BI \-s\  statefile
 | |
| Write the daemon's state to the specified file.
 | |
| .SH ZEVENTS
 | |
| .PP
 | |
| A zevent is comprised of a list of nvpairs (name/value pairs).  Each zevent
 | |
| contains an EID (Event IDentifier) that uniquely identifies it throughout
 | |
| the lifetime of the loaded ZFS kernel module; this EID is a monotonically
 | |
| increasing integer that resets to 1 each time the kernel module is loaded.
 | |
| Each zevent also contains a class string that identifies the type of event.
 | |
| For brevity, a subclass string is defined that omits the leading components
 | |
| of the class string.  Additional nvpairs exist to provide event details.
 | |
| .PP
 | |
| The kernel maintains a list of recent zevents that can be viewed (along with
 | |
| their associated lists of nvpairs) using the "\fBzpool events \-v\fR" command.
 | |
| 
 | |
| .SH CONFIGURATION
 | |
| .PP
 | |
| ZEDLETs to be invoked in response to zevents are located in the
 | |
| \fIenabled-zedlets\fR directory.  These can be symlinked or copied from the
 | |
| \fIinstalled-zedlets\fR directory; symlinks allow for automatic updates
 | |
| from the installed ZEDLETs, whereas copies preserve local modifications.
 | |
| As a security measure, ZEDLETs must be owned by root.  They must have
 | |
| execute permissions for the user, but they must not have write permissions
 | |
| for group or other.  Dotfiles are ignored.
 | |
| .PP
 | |
| ZEDLETs are named after the zevent class for which they should be invoked.
 | |
| In particular, a ZEDLET will be invoked for a given zevent if either its
 | |
| class or subclass string is a prefix of its filename (and is followed by
 | |
| a non-alphabetic character).  As a special case, the prefix "all" matches
 | |
| all zevents.  Multiple ZEDLETs may be invoked for a given zevent.
 | |
| 
 | |
| .SH ZEDLETS
 | |
| .PP
 | |
| ZEDLETs are executables invoked by the ZED in response to a given zevent.
 | |
| They should be written under the presumption they can be invoked concurrently,
 | |
| and they should use appropriate locking to access any shared resources.
 | |
| Common variables used by ZEDLETs can be stored in the default rc file which
 | |
| is sourced by scripts; these variables should be prefixed with "ZED_".
 | |
| .PP
 | |
| The zevent nvpairs are passed to ZEDLETs as environment variables.
 | |
| Each nvpair name is converted to an environment variable in the following
 | |
| manner: 1) it is prefixed with "ZEVENT_", 2) it is converted to uppercase,
 | |
| and 3) each non-alphanumeric character is converted to an underscore.
 | |
| Some additional environment variables have been defined to present certain
 | |
| nvpair values in a more convenient form.  An incomplete list of zevent
 | |
| environment variables is as follows:
 | |
| .TP
 | |
| .B
 | |
| ZEVENT_EID
 | |
| The Event IDentifier.
 | |
| .TP
 | |
| .B
 | |
| ZEVENT_CLASS
 | |
| The zevent class string.
 | |
| .TP
 | |
| .B
 | |
| ZEVENT_SUBCLASS
 | |
| The zevent subclass string.
 | |
| .TP
 | |
| .B
 | |
| ZEVENT_TIME
 | |
| The time at which the zevent was posted as
 | |
| "\fIseconds\fR\ \fInanoseconds\fR" since the Epoch.
 | |
| .TP
 | |
| .B
 | |
| ZEVENT_TIME_SECS
 | |
| The \fIseconds\fR component of ZEVENT_TIME.
 | |
| .TP
 | |
| .B
 | |
| ZEVENT_TIME_NSECS
 | |
| The \fInanoseconds\fR component of ZEVENT_TIME.
 | |
| .TP
 | |
| .B
 | |
| ZEVENT_TIME_STRING
 | |
| An almost-RFC3339-compliant string for ZEVENT_TIME.
 | |
| .PP
 | |
| Additionally, the following ZED & ZFS variables are defined:
 | |
| .TP
 | |
| .B
 | |
| ZED_PID
 | |
| The daemon's process ID.
 | |
| .TP
 | |
| .B
 | |
| ZED_ZEDLET_DIR
 | |
| The daemon's current \fIenabled-zedlets\fR directory.
 | |
| .TP
 | |
| .B
 | |
| ZFS_ALIAS
 | |
| The ZFS alias (\fIname-version-release\fR) string used to build the daemon.
 | |
| .TP
 | |
| .B
 | |
| ZFS_VERSION
 | |
| The ZFS version used to build the daemon.
 | |
| .TP
 | |
| .B
 | |
| ZFS_RELEASE
 | |
| The ZFS release used to build the daemon.
 | |
| .PP
 | |
| ZEDLETs may need to call other ZFS commands.  The installation paths of
 | |
| the following executables are defined: \fBZDB\fR, \fBZED\fR, \fBZFS\fR,
 | |
| \fBZINJECT\fR, and \fBZPOOL\fR.  These variables can be overridden in the
 | |
| rc file if needed.
 | |
| 
 | |
| .SH FILES
 | |
| .\" .TP
 | |
| .\" @sysconfdir@/zfs/zed.conf
 | |
| .\" The default configuration file for the daemon.
 | |
| .TP
 | |
| .I @sysconfdir@/zfs/zed.d
 | |
| The default directory for enabled ZEDLETs.
 | |
| .TP
 | |
| .I @sysconfdir@/zfs/zed.d/zed.rc
 | |
| The default rc file for common variables used by ZEDLETs.
 | |
| .TP
 | |
| .I @zfsexecdir@/zed.d
 | |
| The default directory for installed ZEDLETs.
 | |
| .TP
 | |
| .I @runstatedir@/zed.pid
 | |
| The default file containing the daemon's process ID.
 | |
| .TP
 | |
| .I @runstatedir@/zed.state
 | |
| The default file containing the daemon's state.
 | |
| 
 | |
| .SH SIGNALS
 | |
| .TP
 | |
| .B HUP
 | |
| Reconfigure the daemon and rescan the directory for enabled ZEDLETs.
 | |
| .TP
 | |
| .B TERM
 | |
| Terminate the daemon.
 | |
| 
 | |
| .SH NOTES
 | |
| .PP
 | |
| \fBZED\fR requires root privileges.
 | |
| .\" Do not taunt zed.
 | |
| 
 | |
| .SH BUGS
 | |
| .PP
 | |
| Events are processed synchronously by a single thread.  This can delay the
 | |
| processing of simultaneous zevents.
 | |
| .PP
 | |
| There is no maximum timeout for ZEDLET execution.  Consequently, a misbehaving
 | |
| ZEDLET can delay the processing of subsequent zevents.
 | |
| .PP
 | |
| The ownership and permissions of the \fIenabled-zedlets\fR directory (along
 | |
| with all parent directories) are not checked.  If any of these directories
 | |
| are improperly owned or permissioned, an unprivileged user could insert a
 | |
| ZEDLET to be executed as root.  The requirement that ZEDLETs be owned by
 | |
| root mitigates this to some extent.
 | |
| .PP
 | |
| ZEDLETs are unable to return state/status information to the kernel.
 | |
| .PP
 | |
| Some zevent nvpair types are not handled.  These are denoted by zevent
 | |
| environment variables having a "_NOT_IMPLEMENTED_" value.
 | |
| .PP
 | |
| Internationalization support via gettext has not been added.
 | |
| .PP
 | |
| The configuration file is not yet implemented.
 | |
| .PP
 | |
| The diagnosis engine is not yet implemented.
 | |
| 
 | |
| .SH LICENSE
 | |
| .PP
 | |
| \fBZED\fR (ZFS Event Daemon) is distributed under the terms of the
 | |
| Common Development and Distribution License Version 1.0 (CDDL\-1.0).
 | |
| .PP
 | |
| Developed at Lawrence Livermore National Laboratory (LLNL\-CODE\-403049).
 | |
| 
 | |
| .SH SEE ALSO
 | |
| .BR zfs (8),
 | |
| .BR zpool (8)
 | |
| .BR zpool-events (8)
 |