zfs-explorer
A web-based, read-only visual inspector for ZFS on-disk structures.
What it is
ZFS exposes most of its internal metadata through zdb, a low-level debugging utility.
zdb is powerful but its output is dense and requires significant knowledge to navigate —
you need to know what to query and how to interpret what comes back.
zfs-explorer is a browser interface built on top of the same underlying structures. It lets you walk a pool's metadata visually: from the pool configuration down through the Meta Object Set, individual datasets, block pointer chains, and raw device extents. All reads are strictly non-destructive. The pool state is never modified.
The primary use case is learning and research — understanding how ZFS physically organizes data on disk, tracing the path from a file to its on-disk blocks, or inspecting structures that are poorly documented elsewhere.
Capabilities
- Pool configuration summary and vdev tree
- Persistent pool error log browsing
- Meta Object Set (MOS) object enumeration and inspection
- Dnode and block pointer (blkptr_t) decoding
- ZFS Attribute Processor (ZAP) table visualization
- Dataset and DSL graph traversal
- ZPL filesystem walking — directories and file objects
- Raw block hex inspection via DVAs
- Spacemap visualizer
- Object pinning and breadcrumb navigation for deep traversals
- Experimental offline mode for unimported or damaged pools
Technical details
The frontend is React 19 with TypeScript, built with Vite. The backend is written in Rust using
the axum web framework. Interaction with OpenZFS structures is handled through a C library
wrapper (libzdbdecode) that links against the OpenZFS libraries directly — the same path
zdb itself takes.
Deployment is either via Docker on a host with pool access, or through an SSH tunnel from a remote machine to a pool host running the backend. An experimental offline fixture mode allows pre-captured pool snapshots to be loaded without a live pool present, which is useful for testing and offline analysis.