diff options
author | Allan Jude <[email protected]> | 2021-11-30 09:46:25 -0500 |
---|---|---|
committer | GitHub <[email protected]> | 2021-11-30 07:46:25 -0700 |
commit | 2a673e76a928cca4df7794cdcaa02e0be149c4da (patch) | |
tree | 016afa631bb0d98f55b01e93ab80842fe6ffda27 /man/man7/vdevprops.7 | |
parent | 5f64bf7fdeebfbad50e98c6cd0c3a361a9aecabc (diff) |
Vdev Properties Feature
Add properties, similar to pool properties, to each vdev.
This makes use of the existing per-vdev ZAP that was added as
part of device evacuation/removal.
A large number of read-only properties are exposed,
many of the members of struct vdev_t, that provide useful
statistics.
Adds support for read-only "removing" vdev property.
Adds the "allocating" property that defaults to "on" and
can be set to "off" to prevent future allocations from that
top-level vdev.
Supports user-defined vdev properties.
Includes support for properties.vdev in SYSFS.
Co-authored-by: Allan Jude <[email protected]>
Co-authored-by: Mark Maybee <[email protected]>
Reviewed-by: Matthew Ahrens <[email protected]>
Reviewed-by: Mark Maybee <[email protected]>
Signed-off-by: Allan Jude <[email protected]>
Closes #11711
Diffstat (limited to 'man/man7/vdevprops.7')
-rw-r--r-- | man/man7/vdevprops.7 | 172 |
1 files changed, 172 insertions, 0 deletions
diff --git a/man/man7/vdevprops.7 b/man/man7/vdevprops.7 new file mode 100644 index 000000000..ec7b52955 --- /dev/null +++ b/man/man7/vdevprops.7 @@ -0,0 +1,172 @@ +.\" +.\" CDDL HEADER START +.\" +.\" The contents of this file are subject to the terms of the +.\" Common Development and Distribution License (the "License"). +.\" You may not use this file except in compliance with the License. +.\" +.\" You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE +.\" or http://www.opensolaris.org/os/licensing. +.\" See the License for the specific language governing permissions +.\" and limitations under the License. +.\" +.\" When distributing Covered Code, include this CDDL HEADER in each +.\" file and include the License file at usr/src/OPENSOLARIS.LICENSE. +.\" If applicable, add the following below this CDDL HEADER, with the +.\" fields enclosed by brackets "[]" replaced with your own identifying +.\" information: Portions Copyright [yyyy] [name of copyright owner] +.\" +.\" CDDL HEADER END +.\" +.\" Copyright (c) 2021 Klara, Inc. +.\" +.Dd November 27, 2021 +.Dt VDEVPROPS 7 +.Os +. +.Sh NAME +.Nm vdevprops +.Nd native and user-defined properties of ZFS vdevs +. +.Sh DESCRIPTION +Properties are divided into two types, native properties and user-defined +.Pq or Qq user +properties. +Native properties either export internal statistics or control ZFS behavior. +In addition, native properties are either editable or read-only. +User properties have no effect on ZFS behavior, but you can use them to annotate +vdevs in a way that is meaningful in your environment. +For more information about user properties, see the +.Sx User Properties +section, below. +. +.Ss Native Properties +Every vdev has a set of properties that export statistics about the vdev +as well as control various behaviors. +Properties are NOT inherited from top-level vdevs. +.Pp +The values of numeric properties can be specified using human-readable suffixes +.Po for example, +.Sy k , KB , M , Gb , +and so forth, up to +.Sy Z +for zettabyte +.Pc . +The following are all valid +.Pq and equal +specifications: +.Li 1536M , 1.5g , 1.50GB . +.Pp +The values of non-numeric properties are case sensitive and must be lowercase. +.Pp +The following native properties consist of read-only statistics about the +vdev. +These properties can not be changed. +.Bl -tag -width "fragmentation" +.It Sy capacity +Percentage of vdev space used +.It Sy state +state of this vdev such as online, faulted, or offline +.It Sy guid +globaly unique id of this vdev +.It Sy asize +The allocable size of this vdev +.It Sy psize +The physical size of this vdev +.It Sy ashift +The physical sector size of this vdev expressed as the power of two +.It Sy size +The total size of this vdev +.It Sy free +The amount of remaining free space on this vdev +.It Sy allocated +The amount of allocated space on this vdev +.It Sy expandsize +How much this vdev can expand by +.It Sy fragmentation +Percent of fragmentation in this vdev +.It Sy parity +The level of parity for this vdev +.It Sy devid +The device id for this vdev +.It Sy physpath +The physical path to the device +.It Sy encpath +The enclosure path to the device +.It Sy fru +Field Replacable Unit, usually a model number +.It Sy parent +Parent of this vdev +.It Sy children +Comma separated list of children of this vdev +.It Sy numchildren +The number of children belonging to this vdev +.It Sy read_errors , write_errors , checksum_errors , initialize_errors +The number of errors of each type encountered by this vdev +.It Sy null_ops , read_ops , write_ops , free_ops , claim_ops , trim_ops +The number of I/O operations of each type performed by this vdev +.It Xo +.Sy null_bytes , read_bytes , write_bytes , free_bytes , claim_bytes , +.Sy trim_bytes +.Xc +The cumulative size of all operations of each type performed by this vdev +.It Sy removing +If this device is currently being removed from the pool +.El +.Pp +The following native properties can be used to change the behavior of a ZFS +dataset. +.Bl -tag -width "allocating" +.It Sy comment +A text comment up to 8192 characters long +.It Sy bootsize +The amount of space to reserve for the EFI system partition +.It Sy path +The path to the device for this vdev +.It Sy allocating +If this device should perform new allocations, used to disable a device +when it is scheduled for later removal. +See +.Xr zpool-remove 8 . +.El +.Ss User Properties +In addition to the standard native properties, ZFS supports arbitrary user +properties. +User properties have no effect on ZFS behavior, but applications or +administrators can use them to annotate vdevs. +.Pp +User property names must contain a colon +.Pq Qq Sy \&: +character to distinguish them from native properties. +They may contain lowercase letters, numbers, and the following punctuation +characters: colon +.Pq Qq Sy \&: , +dash +.Pq Qq Sy - , +period +.Pq Qq Sy \&. , +and underscore +.Pq Qq Sy _ . +The expected convention is that the property name is divided into two portions +such as +.Ar module : Ns Ar property , +but this namespace is not enforced by ZFS. +User property names can be at most 256 characters, and cannot begin with a dash +.Pq Qq Sy - . +.Pp +When making programmatic use of user properties, it is strongly suggested to use +a reversed DNS domain name for the +.Ar module +component of property names to reduce the chance that two +independently-developed packages use the same property name for different +purposes. +.Pp +The values of user properties are arbitrary strings and +are never validated. +Use the +.Nm zpool Cm set +command with a blank value to clear a user property. +Property values are limited to 8192 bytes. +.Sh SEE ALSO +.Xr zpoolprops 7 , +.Xr zpool-set 8 |