zpoolprops —
    properties of ZFS storage pools
Each pool has several properties associated with it. Some
    properties are read-only statistics while others are configurable and change
    the behavior of the pool.
User properties have no effect on ZFS behavior. Use them to
    annotate pools in a way that is meaningful in your environment. For more
    information about user properties, see the
    User Properties section.
The following are read-only properties:
  - allocated
- Amount of storage used within the pool. See
      fragmentation and free for more
      information.
- bcloneratio
- The ratio of the total amount of storage that would be required to store
      all the cloned blocks without cloning to the actual storage used. The
      bcloneratio property is calculated as:
    ((bclonesaved + bcloneused)
        * 100)
        /
      bcloneused 
- bclonesaved
- The amount of additional storage that would be required if block cloning
      was not used.
- bcloneused
- The amount of storage used by cloned blocks.
- capacity
- Percentage of pool space used. This property can also be referred to by
      its shortened column name,
      cap.
- dedupcached
- Total size of the deduplication table currently loaded into the ARC. See
      zpool-prefetch(8).
- dedup_table_size
- Total on-disk size of the deduplication table.
- expandsize
- Amount of uninitialized space within the pool or device that can be used
      to increase the total capacity of the pool. On whole-disk vdevs, this is
      the space beyond the end of the GPT – typically occurring when a
      LUN is dynamically expanded or a disk replaced with a larger one. On
      partition vdevs, this is the space appended to the partition after it was
      added to the pool – most likely by resizing it in-place. The space
      can be claimed for the pool by bringing it online with
      autoexpand=on
      or using zpoolonline-e.
- fragmentation
- The amount of fragmentation in the pool. As the amount of space
      allocated increases, it becomes more difficult to locate
      free space. This may result in lower write performance
      compared to pools with more unfragmented free space.
- free
- The amount of free space available in the pool. By contrast, the
      zfs(8) available
      property describes how much new data can be written to ZFS
      filesystems/volumes. The zpool free property is not
      generally useful for this purpose, and can be substantially more than the
      zfs available space. This discrepancy is due to several
      factors, including raidz parity; zfs reservation, quota, refreservation,
      and refquota properties; and space set aside by
      spa_slop_shift
      (see zfs(4) for more information).
- freeing
- After a file system or snapshot is destroyed, the space it was using is
      returned to the pool asynchronously. freeing is the
      amount of space remaining to be reclaimed. Over time
      freeing will decrease while free
      increases.
- guid
- A unique identifier for the pool.
- health
- The current health of the pool. Health can be one of
      ONLINE,
      DEGRADED,
      FAULTED,
      OFFLINE,
      REMOVED,
      UNAVAIL.
- last_scrubbed_txg
- Indicates the transaction group (TXG) up to which the most recent scrub
      operation has checked and repaired the dataset. This provides insight into
      the data integrity status of their pool at a specific point in time.
      zpool-scrub(8) can utilize this
      property to scan only data that has changed since the last scrub
      completed, when given the -Cflag. This property
      is not updated when performing an error scrub with the-eflag.
- leaked
- Space not released while freeing due to corruption, now
      permanently leaked into the pool.
- load_guid
- A unique identifier for the pool. Unlike the guid
      property, this identifier is generated every time we load the pool (i.e.
      does not persist across imports/exports) and never changes while the pool
      is loaded (even if a
      reguid
      operation takes place).
- size
- Total size of the storage pool.
- unsupported@guid
- Information about unsupported features that are enabled on the pool. See
      zpool-features(7) for
    details.
The space usage properties report actual physical space available
    to the storage pool. The physical space can be different from the total
    amount of space that any contained datasets can actually use. The amount of
    space used in a raidz configuration depends on the characteristics of the
    data being written. In addition, ZFS reserves some space for internal
    accounting that the zfs(8) command takes
    into account, but the zpoolprops command does not.
    For non-full pools of a reasonable size, these effects should be invisible.
    For small pools, or pools that are close to being completely full, these
    discrepancies may become more noticeable.
The following property can be set at creation time and import
    time:
  - altroot
- Alternate root directory. If set, this directory is prepended to any mount
      points within the pool. This can be used when examining an unknown pool
      where the mount points cannot be trusted, or in an alternate boot
      environment, where the typical paths are not valid.
      altroot is not a persistent property. It is valid only
      while the system is up. Setting altroot defaults to
      using cachefile=none, though this may
      be overridden using an explicit setting.
The following property can be set only at import time:
  - readonly=on|off
- If set to on, the pool will be imported in read-only
      mode. This property can also be referred to by its shortened column name,
      rdonly.
The following properties can be set at creation time and import
    time, and later changed with the zpool
    set command:
  - ashift=ashift
- Pool sector size exponent, to the power of
      2 (internally
      referred to as ashift). Values from 9 to 16, inclusive,
      are valid; also, the value 0 (the default) means to auto-detect using the
      kernel's block layer and a ZFS internal exception list. I/O operations
      will be aligned to the specified size boundaries. Additionally, the
      minimum (disk) write size will be set to the specified size, so this
      represents a space/performance trade-off. For optimal performance, the
      pool sector size should be greater than or equal to the sector size of the
      underlying disks. The typical case for setting this property is when
      performance is important and the underlying disks use 4KiB sectors but
      report 512B sectors to the OS (for compatibility reasons); in that case,
      set
      ashift=12
      (which is
      1<<12
      =
      4096).
      When set, this property is used as the default hint value in subsequent
      vdev operations (add, attach and replace). Changing this value will not
      modify any existing vdev, not even on disk replacement; however it can be
      used, for instance, to replace a dying 512B sectors disk with a newer 4KiB
      sectors device: this will probably result in bad performance but at the
      same time could prevent loss of data.
- autoexpand=on|off
- Controls automatic pool expansion when the underlying LUN is grown. If set
      to on, the pool will be resized according to the size of
      the expanded device. If the device is part of a mirror or raidz then all
      devices within that mirror/raidz group must be expanded before the new
      space is made available to the pool. The default behavior is
      off. This property can also be referred to by its
      shortened column name,
      expand.
- autoreplace=on|off
- Controls automatic device replacement. If set to off,
      device replacement must be initiated by the administrator by using the
      zpoolreplacecommand. If
      set to on, any new device, found in the same physical
      location as a device that previously belonged to the pool, is
      automatically formatted and replaced. The default behavior is
      off. This property can also be referred to by its
      shortened column name,
      replace.
      Autoreplace can also be used with virtual disks (like device mapper)
      provided that you use the /dev/disk/by-vdev paths setup by vdev_id.conf.
      See the vdev_id(8) manual page for
      more details. Autoreplace and autoonline require the ZFS Event Daemon be
      configured and running. See the zed(8)
      manual page for more details.
- autotrim=on|off
- When set to on space which has been recently freed, and
      is no longer allocated by the pool, will be periodically trimmed. This
      allows block device vdevs which support BLKDISCARD, such as SSDs, or file
      vdevs on which the underlying file system supports hole-punching, to
      reclaim unused blocks. The default value for this property is
      off.
    Automatic TRIM does not immediately
        reclaim blocks after a free. Instead, it will optimistically delay
        allowing smaller ranges to be aggregated into a few larger ones. These
        can then be issued more efficiently to the storage. TRIM on L2ARC
        devices is enabled by setting
        l2arc_trim_ahead
        > 0. Be aware that automatic trimming of recently freed data blocks
        can put significant stress on the underlying storage devices. This will
        vary depending of how well the specific device handles these commands.
        For lower-end devices it is often possible to achieve most of the
        benefits of automatic trimming by running an on-demand (manual) TRIM
        periodically using the zpooltrimcommand.
 
- bootfs=(unset)|pool[/dataset]
- Identifies the default bootable dataset for the root pool. This property
      is expected to be set mainly by the installation and upgrade programs. Not
      all Linux distribution boot processes use the bootfs property.
- cachefile=path|none
- Controls the location of where the pool configuration is cached.
      Discovering all pools on system startup requires a cached copy of the
      configuration data that is stored on the root file system. All pools in
      this cache are automatically imported when the system boots. Some
      environments, such as install and clustering, need to cache this
      information in a different location so that pools are not automatically
      imported. Setting this property caches the pool configuration in a
      different location that can later be imported with
      zpoolimport-c. Setting it to the value none
      creates a temporary pool that is never cached, and the "" (empty
      string) uses the default location.Multiple pools can share the same cache file. Because the
        kernel destroys and recreates this file when pools are added and
        removed, care should be taken when attempting to access this file. When
        the last pool using a cachefile is exported or
        destroyed, the file will be empty. 
- A text string consisting of printable ASCII characters that will be stored
      such that it is available even if the pool becomes faulted. An
      administrator can provide additional information about a pool using this
      property.
- compatibility=off|legacy|file[,file]…
- Specifies that the pool maintain compatibility with specific feature sets.
      When set to off (or unset) compatibility is disabled
      (all features may be enabled); when set to legacy no
      features may be enabled. When set to a comma-separated list of filenames
      (each filename may either be an absolute path, or relative to
      /etc/zfs/compatibility.d or
      /usr/share/zfs/compatibility.d) the lists of
      requested features are read from those files, separated by whitespace
      and/or commas. Only features present in all files may be enabled.
    See
        zpool-features(7),
        zpool-create(8) and
        zpool-upgrade(8) for more
        information on the operation of compatibility feature sets. 
- dedup_table_quota=number|none|auto
- This property sets a limit on the on-disk size of the pool's dedup table.
      Entries will not be added to the dedup table once this size is reached; if
      a dedup table already exists, and is larger than this size, they will not
      be removed as part of setting this property. Existing entries will still
      have their reference counts updated.
    The actual size limit of the table may be above or
        below the quota, depending on the actual on-disk size of the entries
        (which may be approximated for purposes of calculating the quota). That
        is, setting a quota size of 1M may result in the maximum size being
        slightly below, or slightly above, that value. Set to
        'none' to
        disable. In automatic mode, which is the default, the size of a
        dedicated dedup vdev is used as the quota limit. The dedup_table_quota property works for
        both legacy and fast dedup tables. 
- dedupditto=number
- This property is deprecated and no longer has any effect.
- delegation=on|off
- Controls whether a non-privileged user is granted access based on the
      dataset permissions defined on the dataset. See
      zfs(8) for more information on ZFS
      delegated administration.
- failmode=wait|continue|panic
- Controls the system behavior in the event of catastrophic pool failure.
      This condition is typically a result of a loss of connectivity to the
      underlying storage device(s) or a failure of all devices within the pool.
      The behavior of such an event is determined as follows:
    
      - wait
- Blocks all I/O access until the device connectivity is recovered and
          the errors are cleared with zpoolclear. This is the default behavior.
- continue
- Returns EIOto any new write I/O requests but
          allows reads to any of the remaining healthy devices. Any write
          requests that have yet to be committed to disk would be blocked.
- panic
- Prints out a message to the console and generates a system crash
        dump.
 
- feature@feature_name=enabled
- The value of this property is the current state of
      feature_name. The only valid value when setting this
      property is enabled which moves
      feature_name to the enabled state. See
      zpool-features(7) for details
      on feature states.
- listsnapshots=on|off
- Controls whether information about snapshots associated with this pool is
      output when zfslistis
      run without the-toption. The default value is
      off. This property can also be referred to by its
      shortened name,
      listsnaps.
- multihost=on|off
- Controls whether a pool activity check should be performed during
      zpoolimport. When a pool
      is determined to be active it cannot be imported, even with the-foption. This property is intended to be used in
      failover configurations where multiple hosts have access to a pool on
      shared storage.Multihost provides protection on import only. It does not
        protect against an individual device being used in multiple pools,
        regardless of the type of vdev. See the discussion under
        zpoolcreate.
 When this property is on, periodic
        writes to storage occur to show the pool is in use. See
        zfs_multihost_interval
        in the zfs(4) manual page. In order to
        enable this property each host must set a unique hostid. See
        genhostid(1)
        zgenhostid(8)
        spl(4) for additional details. The
        default value is off. 
- version=version
- The current on-disk version of the pool. This can be increased, but never
      decreased. The preferred method of updating pools is with the
      zpoolupgradecommand,
      though this property can be used when a specific version is needed for
      backwards compatibility. Once feature flags are enabled on a pool this
      property will no longer have a value.
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 pools.
User property names must contain a colon
    (":") character to distinguish them from native
    properties. They may contain lowercase letters, numbers, and the following
    punctuation characters: colon (":"), dash
    ("-"), period
    ("."), and
    underscore
    ("_").
    The expected convention is that the property name is divided into two
    portions such as
    module:property, but this
    namespace is not enforced by ZFS. User property names can be at most 255
    characters, and cannot begin with a dash
  ("-").
When making programmatic use of user properties, it is strongly
    suggested to use a reversed DNS domain name for the
    module component of property names to reduce the
    chance that two independently-developed packages use the same property name
    for different purposes.
The values of user properties are arbitrary strings and are never
    validated. All of the commands that operate on properties
    (zpool list,
    zpool get,
    zpool set, and so forth) can
    be used to manipulate both native properties and user properties. Use
    zpool set
    name= to clear a user property. Property values are
    limited to 8192 bytes.