Skip to content

Glossary

Acronyms and Terms

Term Full Name Description
ACE Access Control Entry A single entry in an ACL specifying permissions for a user or group
ACL Access Control List A table of ACEs controlling access to a ZFS object
ARC Adaptive Replacement Cache ZFS's in-memory read cache
COW Copy On Write ZFS's transactional write model; data is never overwritten in place
DMU Data Management Unit Layer that organizes blocks into objects and object sets
DSL Dataset and Snapshot Layer Manages relationships between datasets, snapshots, and clones
DVA Data Virtual Address A (vdev, offset) pair identifying a block's physical location
MOS Meta Object Set The pool-wide object set (type DMU_OST_META) pointed to by the uberblock; contains all pool metadata
SA System Attributes Modern replacement for the bonus buffer znode format
SPA Storage Pool Allocator Top-level layer managing the storage pool, vdevs, and I/O
TXG Transaction Group A group of writes committed atomically; identified by a monotonically increasing 64-bit number
ZAP ZFS Attribute Processor Module for storing name-value pair attributes in objects
ZIL ZFS Intent Log Records synchronous operations for replay after crash
ZIO ZFS I/O Pipeline The I/O scheduling and execution framework
L2ARC Level 2 Adaptive Replacement Cache Secondary read cache on a dedicated device (SSD)
MMP Multi-Modifier Protection Heartbeat mechanism preventing simultaneous pool import on multiple hosts
SLOG Separate Log A dedicated device for ZIL (intent log) writes
ZPL ZFS POSIX Layer Makes DMU objects appear as a POSIX-compliant filesystem
ZVOL ZFS Volume A logical block device backed by a ZFS object set

DMU Object Types

These constants identify the type of data stored in a dnode. Values are stored in the dn_type field of dnode_phys_t and in the type field of blkptr_t.

Value Constant Description
0 DMU_OT_NONE Unallocated / free dnode
1 DMU_OT_OBJECT_DIRECTORY MOS object directory (ZAP)
2 DMU_OT_OBJECT_ARRAY Array of object numbers
3 DMU_OT_PACKED_NVLIST Packed nvlist data
4 DMU_OT_PACKED_NVLIST_SIZE Size of a packed nvlist object
5 DMU_OT_BPOBJ Block pointer object (formerly BPLIST)
6 DMU_OT_BPOBJ_HDR Block pointer object header
7 DMU_OT_SPACE_MAP_HEADER Space map header
8 DMU_OT_SPACE_MAP Space map
9 DMU_OT_INTENT_LOG ZFS intent log
10 DMU_OT_DNODE Array of dnodes (metadnode)
11 DMU_OT_OBJSET Object set
12 DMU_OT_DSL_DIR DSL directory
13 DMU_OT_DSL_DIR_CHILD_MAP DSL child directory map (ZAP)
14 DMU_OT_DSL_DS_SNAP_MAP DSL snapshot map (ZAP)
15 DMU_OT_DSL_PROPS DSL properties (ZAP)
16 DMU_OT_DSL_DATASET DSL dataset
17 DMU_OT_ZNODE ZPL file metadata
18 DMU_OT_OLDACL Legacy ACL data
19 DMU_OT_PLAIN_FILE_CONTENTS Regular file data
20 DMU_OT_DIRECTORY_CONTENTS Directory entries (ZAP)
21 DMU_OT_MASTER_NODE ZPL master node (ZAP)
22 DMU_OT_UNLINKED_SET Unlinked (delete queue) set
23 DMU_OT_ZVOL ZVOL data
24 DMU_OT_ZVOL_PROP ZVOL properties (ZAP)
25 DMU_OT_PLAIN_OTHER Other uint8 data (test)
26 DMU_OT_UINT64_OTHER Other uint64 data (test)
27 DMU_OT_ZAP_OTHER Other ZAP object (test)
28 DMU_OT_ERROR_LOG Persistent error log (ZAP)
29 DMU_OT_SPA_HISTORY Pool history
30 DMU_OT_SPA_HISTORY_OFFSETS Pool history offsets
31 DMU_OT_POOL_PROPS Pool properties (ZAP)
32 DMU_OT_DSL_PERMS DSL permissions (ZAP)
33 DMU_OT_ACL ZFS ACL (v1)
34 DMU_OT_SYSACL ZFS system ACL
35 DMU_OT_FUID FUID table
36 DMU_OT_FUID_SIZE FUID table size
37 DMU_OT_NEXT_CLONES Next clones (ZAP)
38 DMU_OT_SCAN_QUEUE Scan work queue (ZAP)
39 DMU_OT_USERGROUP_USED User/group space used (ZAP)
40 DMU_OT_USERGROUP_QUOTA User/group quota (ZAP)
41 DMU_OT_USERREFS Snapshot user reference holds (ZAP)
42 DMU_OT_DDT_ZAP Dedup table (ZAP)
43 DMU_OT_DDT_STATS Dedup statistics (ZAP)
44 DMU_OT_SA System attributes
45 DMU_OT_SA_MASTER_NODE SA master node (ZAP)
46 DMU_OT_SA_ATTR_REGISTRATION SA attribute registration (ZAP)
47 DMU_OT_SA_ATTR_LAYOUTS SA attribute layouts (ZAP)
48 DMU_OT_SCAN_XLATE Scan translations (ZAP)
49 DMU_OT_DEDUP Deduplicated block
50 DMU_OT_DEADLIST DSL deadlist map (ZAP)
51 DMU_OT_DEADLIST_HDR DSL deadlist header
52 DMU_OT_DSL_CLONES DSL directory clones (ZAP)
53 DMU_OT_BPOBJ_SUBOBJ Block pointer object subobject

Values 0x80 and above use the new-type encoding; see Chapter 3, Section 3.5.

Object Set Types

Value Constant Description
0 DMU_OST_NONE Uninitialized
1 DMU_OST_META Meta Object Set (pool-level, one per pool)
2 DMU_OST_ZFS ZPL filesystem, snapshot, or clone
3 DMU_OST_ZVOL ZFS volume

Checksum Algorithms

Value Name Algorithm Added
0 inherit Property value resolved at write time
1 on Property value (defaults to fletcher4)
2 off none v1
3 label SHA-256 (labels only, embedded) v1
4 gang_header SHA-256 (gang header only, embedded) v1
5 zilog fletcher2 (ZIL only, embedded) v1
6 fletcher2 fletcher2 v1
7 fletcher4 fletcher4 v1
8 sha256 SHA-256 v1
9 zilog2 fletcher4 (ZIL only, embedded) v1
10 noparity none (RAID-Z parity) v1
11 sha512 SHA-512 feature
12 skein Skein-512/256 feature
13 edonr Edon-R/256 feature
14 blake3 BLAKE3 feature

Compression Algorithms

Value Name Algorithm Added
0 inherit Property value resolved at write time
1 on Property value (defaults to lz4 if enabled, else lzjb)
2 off none v1
3 lzjb lzjb v1
4 empty Special: all‑zero blocks v1
5 gzip-1 GZIP level 1 v5
6 gzip-2 GZIP level 2 v5
7 gzip-3 GZIP level 3 v5
8 gzip-4 GZIP level 4 v5
9 gzip-5 GZIP level 5 v5
10 gzip-6 GZIP level 6 v5
11 gzip-7 GZIP level 7 v5
12 gzip-8 GZIP level 8 v5
13 gzip-9 GZIP level 9 v5
14 zle Zero-Length Encoding v20
15 lz4 LZ4 feature
16 zstd Zstandard feature

ZIL Transaction Types

Value Constant Description
1 TX_CREATE Create file
2 TX_MKDIR Create directory
3 TX_MKXATTR Create extended attribute directory
4 TX_SYMLINK Create symbolic link
5 TX_REMOVE Remove file
6 TX_RMDIR Remove directory
7 TX_LINK Create hard link
8 TX_RENAME Rename file or directory
9 TX_WRITE Write to file
10 TX_TRUNCATE Truncate file
11 TX_SETATTR Set file attributes
12 TX_ACL_V0 Set old-format ACL
13 TX_ACL Set ACL
14 TX_CREATE_ACL Create file with ACL
15 TX_CREATE_ATTR Create file with attributes
16 TX_CREATE_ACL_ATTR Create file with ACL and attributes
17 TX_MKDIR_ACL Create directory with ACL
18 TX_MKDIR_ATTR Create directory with attributes
19 TX_MKDIR_ACL_ATTR Create directory with ACL and attributes
20 TX_WRITE2 Write via dmu_sync EALREADY (block already on disk)
21 TX_SETSAXATTR Set SA-based extended attribute
22 TX_RENAME_EXCHANGE Atomic swap via renameat2
23 TX_RENAME_WHITEOUT Atomic whiteout via renameat2
24 TX_CLONE_RANGE Clone a file range

Pool States

Value Constant Description
0 POOL_STATE_ACTIVE Pool is active and in use
1 POOL_STATE_EXPORTED Pool has been exported
2 POOL_STATE_DESTROYED Pool has been destroyed
3 POOL_STATE_SPARE Device is reserved as a hot spare
4 POOL_STATE_L2CACHE Device is a level 2 ARC (cache) device

States 3 and 4 appear only in the labels of hot-spare and L2ARC devices; they are never the active state of a pool. Higher values (POOL_STATE_UNINITIALIZED, POOL_STATE_UNAVAIL, POOL_STATE_POTENTIALLY_ACTIVE) are in-memory software abstractions and never written to disk.

ZAP Block Type Identifiers

Value Constant Description
(1ULL << 63) + 3 ZBT_MICRO Microzap block
(1ULL << 63) + 1 ZBT_HEADER Fat ZAP header (first block)
(1ULL << 63) + 0 ZBT_LEAF Fat ZAP leaf block

ZAP Leaf Chunk Types

Value Constant Description
251 ZAP_CHUNK_ARRAY Name or value data chunk
252 ZAP_CHUNK_ENTRY Attribute entry chunk
253 ZAP_CHUNK_FREE Free chunk

Vdev Type Strings

Type String Description
"root" Root of the vdev tree
"mirror" Interior vdev: mirror (N-way replication)
"raidz" Interior vdev: RAID-Z (parity-based redundancy)
"draid" Interior vdev: distributed-parity RAID
"replacing" Interior vdev: temporary mirror during disk replacement
"spare" Interior vdev: spare wrapper (contains the actual spare leaf)
"disk" Leaf vdev: block storage device
"file" Leaf vdev: file-backed storage
"dspare" Leaf vdev: distributed spare within a dRAID group
"indirect" Remapped vdev after device removal
"hole" Placeholder for a removed top-level vdev slot
"missing" Placeholder for a device not present at import

Note: log devices are marked with an is_log flag in vdev configs rather than a distinct vdev‑tree type string, and L2ARC/spares are stored in auxiliary config lists, not under vdev_tree.

Pool Versions

See Chapter 1, Section 1.6 for full descriptions of each version.

Version Key Features
1 Initial ZFS format
2 Ditto blocks
3 Hot spares, RAID-Z2
4 Pool history
5 GZIP compression
6 Boot filesystem
7 Separate intent log devices (SLOG)
8 Delegated administration
9 FUID, refquota, refreservation
10 L2ARC
11 Next clones, origin, DSL scrub
12 Snapshot properties
13 Used space breakdown
14 Passthrough-x
15 User/group space accounting
16 STMF properties
17 RAID-Z3
18 User reference holds
19 Hole support
20 ZLE compression
21 Deduplication
22 Received properties
23 Slim ZIL
24 System attributes (SA)
25 Improved scrub/scan
26 Directory clones, improved deadlists
27 Fast snapshots
28 Multiple device replacement (last numbered version)
5000 Feature flags system

Feature Flags

Feature flags are identified by reverse-DNS GUIDs. See Chapter 1, Section 1.6 for the feature flag mechanism.

Source: module/zcommon/zfeature_common.c

Feature Name GUID Description
async_destroy com.delphix:async_destroy Destroy filesystems asynchronously
empty_bpobj com.delphix:empty_bpobj Snapshots use less space
lz4_compress org.illumos:lz4_compress LZ4 compression algorithm
multi_vdev_crash_dump com.joyent:multi_vdev_crash_dump Crash dumps to multiple vdev pools
spacemap_histogram com.delphix:spacemap_histogram Spacemaps maintain space histograms
enabled_txg com.delphix:enabled_txg Record txg at which a feature is enabled
hole_birth com.delphix:hole_birth Retain hole birth txg for more precise send
zpool_checkpoint com.delphix:zpool_checkpoint Pool state can be checkpointed
spacemap_v2 com.delphix:spacemap_v2 Efficient space maps for large segments
extensible_dataset com.delphix:extensible_dataset Enhanced dataset functionality
bookmarks com.delphix:bookmarks zfs bookmark command
filesystem_limits com.joyent:filesystem_limits Filesystem and snapshot limits
embedded_data com.delphix:embedded_data Embedded-data block pointers
livelist com.delphix:livelist Improved clone deletion performance
log_spacemap com.delphix:log_spacemap Log-structured metaslab space maps
large_blocks org.open-zfs:large_blocks Blocks larger than 128KB
large_dnode org.zfsonlinux:large_dnode Variable on-disk dnode sizes
sha512 org.illumos:sha512 SHA-512/256 checksum
skein org.illumos:skein Skein checksum
edonr org.illumos:edonr Edon-R checksum
redaction_bookmarks com.delphix:redaction_bookmarks Bookmarks with redaction lists
redacted_datasets com.delphix:redacted_datasets Redacted datasets from redacted send
bookmark_written com.delphix:bookmark_written written#\<bookmark> property
device_removal com.delphix:device_removal Top-level vdev removal
obsolete_counts com.delphix:obsolete_counts Reduced memory for removed devices
userobj_accounting org.zfsonlinux:userobj_accounting User/group object accounting
bookmark_v2 com.datto:bookmark_v2 Larger bookmarks
encryption com.datto:encryption Dataset-level encryption
project_quota org.zfsonlinux:project_quota Project-based space/object accounting
allocation_classes org.zfsonlinux:allocation_classes Separate allocation classes (special vdev)
resilver_defer com.datto:resilver_defer Defer new resilvers during active resilver
device_rebuild org.openzfs:device_rebuild Sequential mirror/dRAID device rebuilds
zstd_compress org.freebsd:zstd_compress Zstandard compression
draid org.openzfs:draid Distributed spare RAID
zilsaxattr org.openzfs:zilsaxattr xattr=sa logging in ZIL
head_errlog com.delphix:head_errlog Per-dataset on-disk error logs
blake3 org.openzfs:blake3 BLAKE3 checksum
block_cloning com.fudosecurity:block_cloning Block cloning via Block Reference Table
vdev_zaps_v2 com.klarasystems:vdev_zaps_v2 Root vdev ZAP
redaction_list_spill com.delphix:redaction_list_spill Increased redaction snapshot arguments
raidz_expansion org.openzfs:raidz_expansion RAIDZ vdev expansion
fast_dedup com.klarasystems:fast_dedup Advanced deduplication
longname org.zfsonlinux:longname Filenames up to 1024 bytes
large_microzap com.klarasystems:large_microzap Microzaps larger than 128KB
block_cloning_endian com.truenas:block_cloning_endian Fixes BRT ZAP endianness on new pools
dynamic_gang_header com.klarasystems:dynamic_gang_header Dynamically sized gang headers
physical_rewrite com.truenas:physical_rewrite Preserve logical birth time during rewrite