Some key structures:
uberblock_t
: The starting point when examining a ZFS file system. 128k array of 1kuberblock_t
structures, starting at 0x20000 bytes within a vdev label. Defined inuts/common/fs/zfs/sys/uberblock_impl.h
Only one uberblock is active at a time; the active uberblock can be found with
zdb -uuu zpool-name
blkptr_t
: Locates, describes, and verifies blocks on a disk. Defined inuts/common/fs/zfs/sys/spa.h
.dnode_phys_t
: Describes an object. Defined byuts/common/fs/zfs/sys/dmu.h
objset_phys_t
: Describes a group of objects. Defined byuts/common/fs/zfs/sys/dmu_objset.h
- ZAP Objects: Blocks containing name/value pair attributes. ZAP stands for ZFS Attribute Processor. Defined by
uts/common/fs/zfs/sys/zap_leaf.h
- Bonus Buffer Objects:
dsl_dir_phys_t
: Contained in a DSL directorydnode_phys_t
; contains object ID for a DSL datasetdnode_phys_t
dsl_dataset_phys_t
: Contained in a DSL datasetdnode_phys_t
; contains ablkprt_t
pointing indirectly at a second array ofdnode_phys_t
for objects within a ZFS file system.znode_phys_t
: In the bonus buffer of dnode_phys_t structures for files and directories; contains attributes of the file or directory. Similar to a UFS inode in a ZFS context.