xref: /freebsd/sys/contrib/openzfs/man/man7/zpoolprops.7 (revision 61145dc2b94f12f6a47344fb9aac702321880e43)
1*61145dc2SMartin Matuska.\" SPDX-License-Identifier: CDDL-1.0
23ff01b23SMartin Matuska.\"
33ff01b23SMartin Matuska.\" CDDL HEADER START
43ff01b23SMartin Matuska.\"
53ff01b23SMartin Matuska.\" The contents of this file are subject to the terms of the
63ff01b23SMartin Matuska.\" Common Development and Distribution License (the "License").
73ff01b23SMartin Matuska.\" You may not use this file except in compliance with the License.
83ff01b23SMartin Matuska.\"
93ff01b23SMartin Matuska.\" You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
10271171e0SMartin Matuska.\" or https://opensource.org/licenses/CDDL-1.0.
113ff01b23SMartin Matuska.\" See the License for the specific language governing permissions
123ff01b23SMartin Matuska.\" and limitations under the License.
133ff01b23SMartin Matuska.\"
143ff01b23SMartin Matuska.\" When distributing Covered Code, include this CDDL HEADER in each
153ff01b23SMartin Matuska.\" file and include the License file at usr/src/OPENSOLARIS.LICENSE.
163ff01b23SMartin Matuska.\" If applicable, add the following below this CDDL HEADER, with the
173ff01b23SMartin Matuska.\" fields enclosed by brackets "[]" replaced with your own identifying
183ff01b23SMartin Matuska.\" information: Portions Copyright [yyyy] [name of copyright owner]
193ff01b23SMartin Matuska.\"
203ff01b23SMartin Matuska.\" CDDL HEADER END
213ff01b23SMartin Matuska.\"
223ff01b23SMartin Matuska.\" Copyright (c) 2007, Sun Microsystems, Inc. All Rights Reserved.
233ff01b23SMartin Matuska.\" Copyright (c) 2012, 2018 by Delphix. All rights reserved.
243ff01b23SMartin Matuska.\" Copyright (c) 2012 Cyril Plisko. All Rights Reserved.
253ff01b23SMartin Matuska.\" Copyright (c) 2017 Datto Inc.
263ff01b23SMartin Matuska.\" Copyright (c) 2018 George Melikov. All Rights Reserved.
273ff01b23SMartin Matuska.\" Copyright 2017 Nexenta Systems, Inc.
283ff01b23SMartin Matuska.\" Copyright (c) 2017 Open-E, Inc. All Rights Reserved.
293ff01b23SMartin Matuska.\" Copyright (c) 2021, Colm Buckley <colm@tuatha.org>
30c98ecfceSAllan Jude.\" Copyright (c) 2023, Klara Inc.
313ff01b23SMartin Matuska.\"
3217aab35aSMartin Matuska.Dd November 18, 2024
333ff01b23SMartin Matuska.Dt ZPOOLPROPS 7
343ff01b23SMartin Matuska.Os
353ff01b23SMartin Matuska.
363ff01b23SMartin Matuska.Sh NAME
373ff01b23SMartin Matuska.Nm zpoolprops
383ff01b23SMartin Matuska.Nd properties of ZFS storage pools
393ff01b23SMartin Matuska.
403ff01b23SMartin Matuska.Sh DESCRIPTION
413ff01b23SMartin MatuskaEach pool has several properties associated with it.
423ff01b23SMartin MatuskaSome properties are read-only statistics while others are configurable and
433ff01b23SMartin Matuskachange the behavior of the pool.
443ff01b23SMartin Matuska.Pp
45c98ecfceSAllan JudeUser properties have no effect on ZFS behavior.
46c98ecfceSAllan JudeUse them to annotate pools in a way that is meaningful in your environment.
47c98ecfceSAllan JudeFor more information about user properties, see the
48c98ecfceSAllan Jude.Sx User Properties
49c98ecfceSAllan Judesection.
50c98ecfceSAllan Jude.Pp
513ff01b23SMartin MatuskaThe following are read-only properties:
523ff01b23SMartin Matuska.Bl -tag -width "unsupported@guid"
532a58b312SMartin Matuska.It Sy allocated
543ff01b23SMartin MatuskaAmount of storage used within the pool.
553ff01b23SMartin MatuskaSee
563ff01b23SMartin Matuska.Sy fragmentation
573ff01b23SMartin Matuskaand
583ff01b23SMartin Matuska.Sy free
593ff01b23SMartin Matuskafor more information.
602a58b312SMartin Matuska.It Sy bcloneratio
612a58b312SMartin MatuskaThe ratio of the total amount of storage that would be required to store all
622a58b312SMartin Matuskathe cloned blocks without cloning to the actual storage used.
632a58b312SMartin MatuskaThe
642a58b312SMartin Matuska.Sy bcloneratio
652a58b312SMartin Matuskaproperty is calculated as:
662a58b312SMartin Matuska.Pp
672a58b312SMartin Matuska.Sy ( ( bclonesaved + bcloneused ) * 100 ) / bcloneused
682a58b312SMartin Matuska.It Sy bclonesaved
692a58b312SMartin MatuskaThe amount of additional storage that would be required if block cloning
702a58b312SMartin Matuskawas not used.
712a58b312SMartin Matuska.It Sy bcloneused
722a58b312SMartin MatuskaThe amount of storage used by cloned blocks.
733ff01b23SMartin Matuska.It Sy capacity
743ff01b23SMartin MatuskaPercentage of pool space used.
753ff01b23SMartin MatuskaThis property can also be referred to by its shortened column name,
763ff01b23SMartin Matuska.Sy cap .
77ce4dcb97SMartin Matuska.It Sy dedupcached
78ce4dcb97SMartin MatuskaTotal size of the deduplication table currently loaded into the ARC.
79ce4dcb97SMartin MatuskaSee
80ce4dcb97SMartin Matuska.Xr zpool-prefetch 8 .
81ce4dcb97SMartin Matuska.It Sy dedup_table_size
82ce4dcb97SMartin MatuskaTotal on-disk size of the deduplication table.
833ff01b23SMartin Matuska.It Sy expandsize
843ff01b23SMartin MatuskaAmount of uninitialized space within the pool or device that can be used to
853ff01b23SMartin Matuskaincrease the total capacity of the pool.
863ff01b23SMartin MatuskaOn whole-disk vdevs, this is the space beyond the end of the GPT –
873ff01b23SMartin Matuskatypically occurring when a LUN is dynamically expanded
883ff01b23SMartin Matuskaor a disk replaced with a larger one.
893ff01b23SMartin MatuskaOn partition vdevs, this is the space appended to the partition after it was
903ff01b23SMartin Matuskaadded to the pool – most likely by resizing it in-place.
913ff01b23SMartin MatuskaThe space can be claimed for the pool by bringing it online with
923ff01b23SMartin Matuska.Sy autoexpand=on
933ff01b23SMartin Matuskaor using
943ff01b23SMartin Matuska.Nm zpool Cm online Fl e .
953ff01b23SMartin Matuska.It Sy fragmentation
963ff01b23SMartin MatuskaThe amount of fragmentation in the pool.
973ff01b23SMartin MatuskaAs the amount of space
983ff01b23SMartin Matuska.Sy allocated
993ff01b23SMartin Matuskaincreases, it becomes more difficult to locate
1003ff01b23SMartin Matuska.Sy free
1013ff01b23SMartin Matuskaspace.
1023ff01b23SMartin MatuskaThis may result in lower write performance compared to pools with more
1033ff01b23SMartin Matuskaunfragmented free space.
1043ff01b23SMartin Matuska.It Sy free
1053ff01b23SMartin MatuskaThe amount of free space available in the pool.
1063ff01b23SMartin MatuskaBy contrast, the
1073ff01b23SMartin Matuska.Xr zfs 8
1083ff01b23SMartin Matuska.Sy available
1093ff01b23SMartin Matuskaproperty describes how much new data can be written to ZFS filesystems/volumes.
1103ff01b23SMartin MatuskaThe zpool
1113ff01b23SMartin Matuska.Sy free
112bb2d13b6SMartin Matuskaproperty is not generally useful for this purpose, and can be substantially more
113bb2d13b6SMartin Matuskathan the zfs
1143ff01b23SMartin Matuska.Sy available
1153ff01b23SMartin Matuskaspace.
1163ff01b23SMartin MatuskaThis discrepancy is due to several factors, including raidz parity;
117bb2d13b6SMartin Matuskazfs reservation, quota, refreservation, and refquota properties; and space set
118bb2d13b6SMartin Matuskaaside by
1193ff01b23SMartin Matuska.Sy spa_slop_shift
1203ff01b23SMartin Matuska(see
1213ff01b23SMartin Matuska.Xr zfs 4
1223ff01b23SMartin Matuskafor more information).
1233ff01b23SMartin Matuska.It Sy freeing
1243ff01b23SMartin MatuskaAfter a file system or snapshot is destroyed, the space it was using is
1253ff01b23SMartin Matuskareturned to the pool asynchronously.
1263ff01b23SMartin Matuska.Sy freeing
1273ff01b23SMartin Matuskais the amount of space remaining to be reclaimed.
1283ff01b23SMartin MatuskaOver time
1293ff01b23SMartin Matuska.Sy freeing
1303ff01b23SMartin Matuskawill decrease while
1313ff01b23SMartin Matuska.Sy free
1323ff01b23SMartin Matuskaincreases.
1332a58b312SMartin Matuska.It Sy guid
1342a58b312SMartin MatuskaA unique identifier for the pool.
1353ff01b23SMartin Matuska.It Sy health
1363ff01b23SMartin MatuskaThe current health of the pool.
1373ff01b23SMartin MatuskaHealth can be one of
1383ff01b23SMartin Matuska.Sy ONLINE , DEGRADED , FAULTED , OFFLINE, REMOVED , UNAVAIL .
13917aab35aSMartin Matuska.It Sy last_scrubbed_txg
14017aab35aSMartin MatuskaIndicates the transaction group (TXG) up to which the most recent scrub
14117aab35aSMartin Matuskaoperation has checked and repaired the dataset.
14217aab35aSMartin MatuskaThis provides insight into the data integrity status of their pool at
14317aab35aSMartin Matuskaa specific point in time.
14417aab35aSMartin Matuska.Xr zpool-scrub 8
14517aab35aSMartin Matuskacan utilize this property to scan only data that has changed since the last
14617aab35aSMartin Matuskascrub completed, when given the
14717aab35aSMartin Matuska.Fl C
14817aab35aSMartin Matuskaflag.
14917aab35aSMartin MatuskaThis property is not updated when performing an error scrub with the
15017aab35aSMartin Matuska.Fl e
15117aab35aSMartin Matuskaflag.
1522a58b312SMartin Matuska.It Sy leaked
1532a58b312SMartin MatuskaSpace not released while
1542a58b312SMartin Matuska.Sy freeing
1552a58b312SMartin Matuskadue to corruption, now permanently leaked into the pool.
1563ff01b23SMartin Matuska.It Sy load_guid
1573ff01b23SMartin MatuskaA unique identifier for the pool.
1583ff01b23SMartin MatuskaUnlike the
1593ff01b23SMartin Matuska.Sy guid
1603ff01b23SMartin Matuskaproperty, this identifier is generated every time we load the pool (i.e. does
1613ff01b23SMartin Matuskanot persist across imports/exports) and never changes while the pool is loaded
1623ff01b23SMartin Matuska(even if a
1633ff01b23SMartin Matuska.Sy reguid
1643ff01b23SMartin Matuskaoperation takes place).
1653ff01b23SMartin Matuska.It Sy size
1663ff01b23SMartin MatuskaTotal size of the storage pool.
1673ff01b23SMartin Matuska.It Sy unsupported@ Ns Em guid
1683ff01b23SMartin MatuskaInformation about unsupported features that are enabled on the pool.
1693ff01b23SMartin MatuskaSee
1703ff01b23SMartin Matuska.Xr zpool-features 7
1713ff01b23SMartin Matuskafor details.
1723ff01b23SMartin Matuska.El
1733ff01b23SMartin Matuska.Pp
1743ff01b23SMartin MatuskaThe space usage properties report actual physical space available to the
1753ff01b23SMartin Matuskastorage pool.
1763ff01b23SMartin MatuskaThe physical space can be different from the total amount of space that any
1773ff01b23SMartin Matuskacontained datasets can actually use.
1783ff01b23SMartin MatuskaThe amount of space used in a raidz configuration depends on the characteristics
1793ff01b23SMartin Matuskaof the data being written.
1803ff01b23SMartin MatuskaIn addition, ZFS reserves some space for internal accounting that the
1813ff01b23SMartin Matuska.Xr zfs 8
1823ff01b23SMartin Matuskacommand takes into account, but the
1833ff01b23SMartin Matuska.Nm
1843ff01b23SMartin Matuskacommand does not.
1853ff01b23SMartin MatuskaFor non-full pools of a reasonable size, these effects should be invisible.
1863ff01b23SMartin MatuskaFor small pools, or pools that are close to being completely full, these
1873ff01b23SMartin Matuskadiscrepancies may become more noticeable.
1883ff01b23SMartin Matuska.Pp
1893ff01b23SMartin MatuskaThe following property can be set at creation time and import time:
1903ff01b23SMartin Matuska.Bl -tag -width Ds
1913ff01b23SMartin Matuska.It Sy altroot
1923ff01b23SMartin MatuskaAlternate root directory.
1933ff01b23SMartin MatuskaIf set, this directory is prepended to any mount points within the pool.
1943ff01b23SMartin MatuskaThis can be used when examining an unknown pool where the mount points cannot be
1953ff01b23SMartin Matuskatrusted, or in an alternate boot environment, where the typical paths are not
1963ff01b23SMartin Matuskavalid.
1973ff01b23SMartin Matuska.Sy altroot
1983ff01b23SMartin Matuskais not a persistent property.
1993ff01b23SMartin MatuskaIt is valid only while the system is up.
2003ff01b23SMartin MatuskaSetting
2013ff01b23SMartin Matuska.Sy altroot
2023ff01b23SMartin Matuskadefaults to using
2033ff01b23SMartin Matuska.Sy cachefile Ns = Ns Sy none ,
2043ff01b23SMartin Matuskathough this may be overridden using an explicit setting.
2053ff01b23SMartin Matuska.El
2063ff01b23SMartin Matuska.Pp
2073ff01b23SMartin MatuskaThe following property can be set only at import time:
2083ff01b23SMartin Matuska.Bl -tag -width Ds
2093ff01b23SMartin Matuska.It Sy readonly Ns = Ns Sy on Ns | Ns Sy off
2103ff01b23SMartin MatuskaIf set to
2113ff01b23SMartin Matuska.Sy on ,
2123ff01b23SMartin Matuskathe pool will be imported in read-only mode.
2133ff01b23SMartin MatuskaThis property can also be referred to by its shortened column name,
2143ff01b23SMartin Matuska.Sy rdonly .
2153ff01b23SMartin Matuska.El
2163ff01b23SMartin Matuska.Pp
2173ff01b23SMartin MatuskaThe following properties can be set at creation time and import time, and later
2183ff01b23SMartin Matuskachanged with the
2193ff01b23SMartin Matuska.Nm zpool Cm set
2203ff01b23SMartin Matuskacommand:
2213ff01b23SMartin Matuska.Bl -tag -width Ds
222c7046f76SMartin Matuska.It Sy ashift Ns = Ns Ar ashift
2233ff01b23SMartin MatuskaPool sector size exponent, to the power of
2243ff01b23SMartin Matuska.Sy 2
2253ff01b23SMartin Matuska(internally referred to as
2263ff01b23SMartin Matuska.Sy ashift ) .
2273ff01b23SMartin MatuskaValues from 9 to 16, inclusive, are valid; also, the
2283ff01b23SMartin Matuskavalue 0 (the default) means to auto-detect using the kernel's block
2293ff01b23SMartin Matuskalayer and a ZFS internal exception list.
2303ff01b23SMartin MatuskaI/O operations will be aligned to the specified size boundaries.
2313ff01b23SMartin MatuskaAdditionally, the minimum (disk)
2323ff01b23SMartin Matuskawrite size will be set to the specified size, so this represents a
233c03c5b1cSMartin Matuskaspace/performance trade-off.
2343ff01b23SMartin MatuskaFor optimal performance, the pool sector size should be greater than
2353ff01b23SMartin Matuskaor equal to the sector size of the underlying disks.
2363ff01b23SMartin MatuskaThe typical case for setting this property is when
2373ff01b23SMartin Matuskaperformance is important and the underlying disks use 4KiB sectors but
2383ff01b23SMartin Matuskareport 512B sectors to the OS (for compatibility reasons); in that
2393ff01b23SMartin Matuskacase, set
2403ff01b23SMartin Matuska.Sy ashift Ns = Ns Sy 12
2413ff01b23SMartin Matuska(which is
2423ff01b23SMartin Matuska.Sy 1<<12 No = Sy 4096 ) .
2433ff01b23SMartin MatuskaWhen set, this property is
2443ff01b23SMartin Matuskaused as the default hint value in subsequent vdev operations (add,
2453ff01b23SMartin Matuskaattach and replace).
2463ff01b23SMartin MatuskaChanging this value will not modify any existing
2473ff01b23SMartin Matuskavdev, not even on disk replacement; however it can be used, for
2483ff01b23SMartin Matuskainstance, to replace a dying 512B sectors disk with a newer 4KiB
2493ff01b23SMartin Matuskasectors device: this will probably result in bad performance but at the
2503ff01b23SMartin Matuskasame time could prevent loss of data.
2513ff01b23SMartin Matuska.It Sy autoexpand Ns = Ns Sy on Ns | Ns Sy off
2523ff01b23SMartin MatuskaControls automatic pool expansion when the underlying LUN is grown.
2533ff01b23SMartin MatuskaIf set to
2543ff01b23SMartin Matuska.Sy on ,
2553ff01b23SMartin Matuskathe pool will be resized according to the size of the expanded device.
2563ff01b23SMartin MatuskaIf the device is part of a mirror or raidz then all devices within that
2573ff01b23SMartin Matuskamirror/raidz group must be expanded before the new space is made available to
2583ff01b23SMartin Matuskathe pool.
2593ff01b23SMartin MatuskaThe default behavior is
2603ff01b23SMartin Matuska.Sy off .
2613ff01b23SMartin MatuskaThis property can also be referred to by its shortened column name,
2623ff01b23SMartin Matuska.Sy expand .
2633ff01b23SMartin Matuska.It Sy autoreplace Ns = Ns Sy on Ns | Ns Sy off
2643ff01b23SMartin MatuskaControls automatic device replacement.
2653ff01b23SMartin MatuskaIf set to
2663ff01b23SMartin Matuska.Sy off ,
2673ff01b23SMartin Matuskadevice replacement must be initiated by the administrator by using the
2683ff01b23SMartin Matuska.Nm zpool Cm replace
2693ff01b23SMartin Matuskacommand.
2703ff01b23SMartin MatuskaIf set to
2713ff01b23SMartin Matuska.Sy on ,
2723ff01b23SMartin Matuskaany new device, found in the same physical location as a device that previously
2733ff01b23SMartin Matuskabelonged to the pool, is automatically formatted and replaced.
2743ff01b23SMartin MatuskaThe default behavior is
2753ff01b23SMartin Matuska.Sy off .
2763ff01b23SMartin MatuskaThis property can also be referred to by its shortened column name,
2773ff01b23SMartin Matuska.Sy replace .
2783ff01b23SMartin MatuskaAutoreplace can also be used with virtual disks (like device
2793ff01b23SMartin Matuskamapper) provided that you use the /dev/disk/by-vdev paths setup by
2803ff01b23SMartin Matuskavdev_id.conf.
2813ff01b23SMartin MatuskaSee the
2823ff01b23SMartin Matuska.Xr vdev_id 8
2833ff01b23SMartin Matuskamanual page for more details.
2843ff01b23SMartin MatuskaAutoreplace and autoonline require the ZFS Event Daemon be configured and
2853ff01b23SMartin Matuskarunning.
2863ff01b23SMartin MatuskaSee the
2873ff01b23SMartin Matuska.Xr zed 8
2883ff01b23SMartin Matuskamanual page for more details.
2893ff01b23SMartin Matuska.It Sy autotrim Ns = Ns Sy on Ns | Ns Sy off
2903ff01b23SMartin MatuskaWhen set to
2913ff01b23SMartin Matuska.Sy on
2923ff01b23SMartin Matuskaspace which has been recently freed, and is no longer allocated by the pool,
2933ff01b23SMartin Matuskawill be periodically trimmed.
2943ff01b23SMartin MatuskaThis allows block device vdevs which support
2953ff01b23SMartin MatuskaBLKDISCARD, such as SSDs, or file vdevs on which the underlying file system
2963ff01b23SMartin Matuskasupports hole-punching, to reclaim unused blocks.
2973ff01b23SMartin MatuskaThe default value for this property is
2983ff01b23SMartin Matuska.Sy off .
2993ff01b23SMartin Matuska.Pp
3003ff01b23SMartin MatuskaAutomatic TRIM does not immediately reclaim blocks after a free.
3013ff01b23SMartin MatuskaInstead, it will optimistically delay allowing smaller ranges to be aggregated
3023ff01b23SMartin Matuskainto a few larger ones.
3033ff01b23SMartin MatuskaThese can then be issued more efficiently to the storage.
3043ff01b23SMartin MatuskaTRIM on L2ARC devices is enabled by setting
3053ff01b23SMartin Matuska.Sy l2arc_trim_ahead > 0 .
3063ff01b23SMartin Matuska.Pp
3073ff01b23SMartin MatuskaBe aware that automatic trimming of recently freed data blocks can put
3083ff01b23SMartin Matuskasignificant stress on the underlying storage devices.
3093ff01b23SMartin MatuskaThis will vary depending of how well the specific device handles these commands.
3103ff01b23SMartin MatuskaFor lower-end devices it is often possible to achieve most of the benefits
3113ff01b23SMartin Matuskaof automatic trimming by running an on-demand (manual) TRIM periodically
3123ff01b23SMartin Matuskausing the
3133ff01b23SMartin Matuska.Nm zpool Cm trim
3143ff01b23SMartin Matuskacommand.
3153ff01b23SMartin Matuska.It Sy bootfs Ns = Ns Sy (unset) Ns | Ns Ar pool Ns Op / Ns Ar dataset
3163ff01b23SMartin MatuskaIdentifies the default bootable dataset for the root pool.
317bb2d13b6SMartin MatuskaThis property is expected to be set mainly by the installation and upgrade
318bb2d13b6SMartin Matuskaprograms.
3193ff01b23SMartin MatuskaNot all Linux distribution boot processes use the bootfs property.
3203ff01b23SMartin Matuska.It Sy cachefile Ns = Ns Ar path Ns | Ns Sy none
3213ff01b23SMartin MatuskaControls the location of where the pool configuration is cached.
3223ff01b23SMartin MatuskaDiscovering all pools on system startup requires a cached copy of the
3233ff01b23SMartin Matuskaconfiguration data that is stored on the root file system.
3243ff01b23SMartin MatuskaAll pools in this cache are automatically imported when the system boots.
3253ff01b23SMartin MatuskaSome environments, such as install and clustering, need to cache this
3263ff01b23SMartin Matuskainformation in a different location so that pools are not automatically
3273ff01b23SMartin Matuskaimported.
3283ff01b23SMartin MatuskaSetting this property caches the pool configuration in a different location that
3293ff01b23SMartin Matuskacan later be imported with
3303ff01b23SMartin Matuska.Nm zpool Cm import Fl c .
3313ff01b23SMartin MatuskaSetting it to the value
3323ff01b23SMartin Matuska.Sy none
3333ff01b23SMartin Matuskacreates a temporary pool that is never cached, and the
3343ff01b23SMartin Matuska.Qq
3353ff01b23SMartin Matuska.Pq empty string
3363ff01b23SMartin Matuskauses the default location.
3373ff01b23SMartin Matuska.Pp
3383ff01b23SMartin MatuskaMultiple pools can share the same cache file.
3393ff01b23SMartin MatuskaBecause the kernel destroys and recreates this file when pools are added and
3403ff01b23SMartin Matuskaremoved, care should be taken when attempting to access this file.
3413ff01b23SMartin MatuskaWhen the last pool using a
3423ff01b23SMartin Matuska.Sy cachefile
3433ff01b23SMartin Matuskais exported or destroyed, the file will be empty.
3443ff01b23SMartin Matuska.It Sy comment Ns = Ns Ar text
3453ff01b23SMartin MatuskaA text string consisting of printable ASCII characters that will be stored
3463ff01b23SMartin Matuskasuch that it is available even if the pool becomes faulted.
3473ff01b23SMartin MatuskaAn administrator can provide additional information about a pool using this
3483ff01b23SMartin Matuskaproperty.
3493ff01b23SMartin Matuska.It Sy compatibility Ns = Ns Sy off Ns | Ns Sy legacy Ns | Ns Ar file Ns Oo , Ns Ar file Oc Ns …
3503ff01b23SMartin MatuskaSpecifies that the pool maintain compatibility with specific feature sets.
3513ff01b23SMartin MatuskaWhen set to
3523ff01b23SMartin Matuska.Sy off
3533ff01b23SMartin Matuska(or unset) compatibility is disabled (all features may be enabled); when set to
354f552d7adSMartin Matuska.Sy legacy
3553ff01b23SMartin Matuskano features may be enabled.
3563ff01b23SMartin MatuskaWhen set to a comma-separated list of filenames
3573ff01b23SMartin Matuska(each filename may either be an absolute path, or relative to
3583ff01b23SMartin Matuska.Pa /etc/zfs/compatibility.d
3593ff01b23SMartin Matuskaor
3603ff01b23SMartin Matuska.Pa /usr/share/zfs/compatibility.d )
3613ff01b23SMartin Matuskathe lists of requested features are read from those files, separated by
3623ff01b23SMartin Matuskawhitespace and/or commas.
3633ff01b23SMartin MatuskaOnly features present in all files may be enabled.
3643ff01b23SMartin Matuska.Pp
3653ff01b23SMartin MatuskaSee
3663ff01b23SMartin Matuska.Xr zpool-features 7 ,
3673ff01b23SMartin Matuska.Xr zpool-create 8
3683ff01b23SMartin Matuskaand
3693ff01b23SMartin Matuska.Xr zpool-upgrade 8
3703ff01b23SMartin Matuskafor more information on the operation of compatibility feature sets.
371ce4dcb97SMartin Matuska.It Sy dedup_table_quota Ns = Ns Ar number Ns | Ns Sy none Ns | Ns Sy auto
372ce4dcb97SMartin MatuskaThis property sets a limit on the on-disk size of the pool's dedup table.
373ce4dcb97SMartin MatuskaEntries will not be added to the dedup table once this size is reached;
374ce4dcb97SMartin Matuskaif a dedup table already exists, and is larger than this size, they
375ce4dcb97SMartin Matuskawill not be removed as part of setting this property.
376ce4dcb97SMartin MatuskaExisting entries will still have their reference counts updated.
377ce4dcb97SMartin Matuska.Pp
378ce4dcb97SMartin MatuskaThe actual size limit of the table may be above or below the quota,
379ce4dcb97SMartin Matuskadepending on the actual on-disk size of the entries (which may be
380ce4dcb97SMartin Matuskaapproximated for purposes of calculating the quota).
381ce4dcb97SMartin MatuskaThat is, setting a quota size of 1M may result in the maximum size being
382ce4dcb97SMartin Matuskaslightly below, or slightly above, that value.
383ce4dcb97SMartin MatuskaSet to
384ce4dcb97SMartin Matuska.Sy 'none'
385ce4dcb97SMartin Matuskato disable.
386ce4dcb97SMartin MatuskaIn automatic mode, which is the default, the size of a dedicated dedup vdev
387ce4dcb97SMartin Matuskais used as the quota limit.
388ce4dcb97SMartin Matuska.Pp
389ce4dcb97SMartin MatuskaThe
390ce4dcb97SMartin Matuska.Sy dedup_table_quota
391ce4dcb97SMartin Matuskaproperty works for both legacy and fast dedup tables.
3923ff01b23SMartin Matuska.It Sy dedupditto Ns = Ns Ar number
3933ff01b23SMartin MatuskaThis property is deprecated and no longer has any effect.
3943ff01b23SMartin Matuska.It Sy delegation Ns = Ns Sy on Ns | Ns Sy off
3953ff01b23SMartin MatuskaControls whether a non-privileged user is granted access based on the dataset
3963ff01b23SMartin Matuskapermissions defined on the dataset.
3973ff01b23SMartin MatuskaSee
3983ff01b23SMartin Matuska.Xr zfs 8
3993ff01b23SMartin Matuskafor more information on ZFS delegated administration.
4003ff01b23SMartin Matuska.It Sy failmode Ns = Ns Sy wait Ns | Ns Sy continue Ns | Ns Sy panic
4013ff01b23SMartin MatuskaControls the system behavior in the event of catastrophic pool failure.
4023ff01b23SMartin MatuskaThis condition is typically a result of a loss of connectivity to the underlying
4033ff01b23SMartin Matuskastorage device(s) or a failure of all devices within the pool.
4043ff01b23SMartin MatuskaThe behavior of such an event is determined as follows:
4053ff01b23SMartin Matuska.Bl -tag -width "continue"
4063ff01b23SMartin Matuska.It Sy wait
4073ff01b23SMartin MatuskaBlocks all I/O access until the device connectivity is recovered and the errors
408e92ffd9bSMartin Matuskaare cleared with
409e92ffd9bSMartin Matuska.Nm zpool Cm clear .
4103ff01b23SMartin MatuskaThis is the default behavior.
4113ff01b23SMartin Matuska.It Sy continue
4123ff01b23SMartin MatuskaReturns
4133ff01b23SMartin Matuska.Er EIO
4143ff01b23SMartin Matuskato any new write I/O requests but allows reads to any of the remaining healthy
4153ff01b23SMartin Matuskadevices.
4163ff01b23SMartin MatuskaAny write requests that have yet to be committed to disk would be blocked.
4173ff01b23SMartin Matuska.It Sy panic
4183ff01b23SMartin MatuskaPrints out a message to the console and generates a system crash dump.
4193ff01b23SMartin Matuska.El
4203ff01b23SMartin Matuska.It Sy feature@ Ns Ar feature_name Ns = Ns Sy enabled
4213ff01b23SMartin MatuskaThe value of this property is the current state of
4223ff01b23SMartin Matuska.Ar feature_name .
4233ff01b23SMartin MatuskaThe only valid value when setting this property is
4243ff01b23SMartin Matuska.Sy enabled
4253ff01b23SMartin Matuskawhich moves
4263ff01b23SMartin Matuska.Ar feature_name
4273ff01b23SMartin Matuskato the enabled state.
4283ff01b23SMartin MatuskaSee
4293ff01b23SMartin Matuska.Xr zpool-features 7
4303ff01b23SMartin Matuskafor details on feature states.
4313ff01b23SMartin Matuska.It Sy listsnapshots Ns = Ns Sy on Ns | Ns Sy off
4323ff01b23SMartin MatuskaControls whether information about snapshots associated with this pool is
4333ff01b23SMartin Matuskaoutput when
4343ff01b23SMartin Matuska.Nm zfs Cm list
4353ff01b23SMartin Matuskais run without the
4363ff01b23SMartin Matuska.Fl t
4373ff01b23SMartin Matuskaoption.
4383ff01b23SMartin MatuskaThe default value is
4393ff01b23SMartin Matuska.Sy off .
4403ff01b23SMartin MatuskaThis property can also be referred to by its shortened name,
4413ff01b23SMartin Matuska.Sy listsnaps .
4423ff01b23SMartin Matuska.It Sy multihost Ns = Ns Sy on Ns | Ns Sy off
4433ff01b23SMartin MatuskaControls whether a pool activity check should be performed during
4443ff01b23SMartin Matuska.Nm zpool Cm import .
4453ff01b23SMartin MatuskaWhen a pool is determined to be active it cannot be imported, even with the
4463ff01b23SMartin Matuska.Fl f
4473ff01b23SMartin Matuskaoption.
4483ff01b23SMartin MatuskaThis property is intended to be used in failover configurations
4493ff01b23SMartin Matuskawhere multiple hosts have access to a pool on shared storage.
4503ff01b23SMartin Matuska.Pp
4513ff01b23SMartin MatuskaMultihost provides protection on import only.
4523ff01b23SMartin MatuskaIt does not protect against an
4533ff01b23SMartin Matuskaindividual device being used in multiple pools, regardless of the type of vdev.
4543ff01b23SMartin MatuskaSee the discussion under
4553ff01b23SMartin Matuska.Nm zpool Cm create .
4563ff01b23SMartin Matuska.Pp
4573ff01b23SMartin MatuskaWhen this property is on, periodic writes to storage occur to show the pool is
4583ff01b23SMartin Matuskain use.
4593ff01b23SMartin MatuskaSee
4603ff01b23SMartin Matuska.Sy zfs_multihost_interval
4613ff01b23SMartin Matuskain the
4623ff01b23SMartin Matuska.Xr zfs 4
4633ff01b23SMartin Matuskamanual page.
4643ff01b23SMartin MatuskaIn order to enable this property each host must set a unique hostid.
4653ff01b23SMartin MatuskaSee
4663ff01b23SMartin Matuska.Xr genhostid 1
4673ff01b23SMartin Matuska.Xr zgenhostid 8
4683ff01b23SMartin Matuska.Xr spl 4
4693ff01b23SMartin Matuskafor additional details.
4703ff01b23SMartin MatuskaThe default value is
4713ff01b23SMartin Matuska.Sy off .
4723ff01b23SMartin Matuska.It Sy version Ns = Ns Ar version
4733ff01b23SMartin MatuskaThe current on-disk version of the pool.
4743ff01b23SMartin MatuskaThis can be increased, but never decreased.
4753ff01b23SMartin MatuskaThe preferred method of updating pools is with the
4763ff01b23SMartin Matuska.Nm zpool Cm upgrade
4773ff01b23SMartin Matuskacommand, though this property can be used when a specific version is needed for
4783ff01b23SMartin Matuskabackwards compatibility.
4793ff01b23SMartin MatuskaOnce feature flags are enabled on a pool this property will no longer have a
4803ff01b23SMartin Matuskavalue.
4813ff01b23SMartin Matuska.El
482c98ecfceSAllan Jude.
483c98ecfceSAllan Jude.Ss User Properties
484c98ecfceSAllan JudeIn addition to the standard native properties, ZFS supports arbitrary user
485c98ecfceSAllan Judeproperties.
486c98ecfceSAllan JudeUser properties have no effect on ZFS behavior, but applications or
487c98ecfceSAllan Judeadministrators can use them to annotate pools.
488c98ecfceSAllan Jude.Pp
489c98ecfceSAllan JudeUser property names must contain a colon
490c98ecfceSAllan Jude.Pq Qq Sy \&:
491c98ecfceSAllan Judecharacter to distinguish them from native properties.
492c98ecfceSAllan JudeThey may contain lowercase letters, numbers, and the following punctuation
493c98ecfceSAllan Judecharacters: colon
494c98ecfceSAllan Jude.Pq Qq Sy \&: ,
495c98ecfceSAllan Judedash
496c98ecfceSAllan Jude.Pq Qq Sy - ,
497c98ecfceSAllan Judeperiod
498c98ecfceSAllan Jude.Pq Qq Sy \&. ,
499c98ecfceSAllan Judeand underscore
500c98ecfceSAllan Jude.Pq Qq Sy _ .
501c98ecfceSAllan JudeThe expected convention is that the property name is divided into two portions
502c98ecfceSAllan Judesuch as
503c98ecfceSAllan Jude.Ar module : Ns Ar property ,
504c98ecfceSAllan Judebut this namespace is not enforced by ZFS.
505ce4dcb97SMartin MatuskaUser property names can be at most 255 characters, and cannot begin with a dash
506c98ecfceSAllan Jude.Pq Qq Sy - .
507c98ecfceSAllan Jude.Pp
508c98ecfceSAllan JudeWhen making programmatic use of user properties, it is strongly suggested to use
509c98ecfceSAllan Judea reversed DNS domain name for the
510c98ecfceSAllan Jude.Ar module
511c98ecfceSAllan Judecomponent of property names to reduce the chance that two
512c98ecfceSAllan Judeindependently-developed packages use the same property name for different
513c98ecfceSAllan Judepurposes.
514c98ecfceSAllan Jude.Pp
515c98ecfceSAllan JudeThe values of user properties are arbitrary strings and
516c98ecfceSAllan Judeare never validated.
517c98ecfceSAllan JudeAll of the commands that operate on properties
518c98ecfceSAllan Jude.Po Nm zpool Cm list ,
519c98ecfceSAllan Jude.Nm zpool Cm get ,
520c98ecfceSAllan Jude.Nm zpool Cm set ,
521c98ecfceSAllan Judeand so forth
522c98ecfceSAllan Jude.Pc
523c98ecfceSAllan Judecan be used to manipulate both native properties and user properties.
524c98ecfceSAllan JudeUse
525c98ecfceSAllan Jude.Nm zpool Cm set Ar name Ns =
526c98ecfceSAllan Judeto clear a user property.
527c98ecfceSAllan JudeProperty values are limited to 8192 bytes.
528