Some key structures:
uberblock_t: The starting point when examining a ZFS file system. 128k array of 1kuberblock_tstructures, starting at 0x20000 bytes within a vdev label. Defined inuts/common/fs/zfs/sys/uberblock_impl.hOnly one uberblock is active at a time; the active uberblock can be found with
zdb -uuu zpool-nameblkptr_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.hobjset_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_tdsl_dataset_phys_t: Contained in a DSL datasetdnode_phys_t; contains ablkprt_tpointing indirectly at a second array ofdnode_phys_tfor 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.
