man: note that zdb operates directly on pool storage

A frequent misunderstanding is that zdb accesses the pool through the
kernel or filesystem, leading to confusion particularly when it can't
access something that it seems like it should be able to.

I've seen this confusion recently when zdb couldn't access a pool because
the user didn't have permission to read directly from the block devices,
and when it couldn't show attributes of encrypted files even though the
dataset was unlocked.

The manpage already speaks to another symptom of this, namely that zdb
may "behave erratically" on an active pool; here I'm trying to make that
a little more explicit.

Reviewed-by: Richard Yao <richard.yao@alumni.stonybrook.edu>
Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Reviewed-by: George Melikov <mail@gmelikov.ru>
Signed-off-by: Rob Norris <robn@despairlabs.com>
Closes #14539
This commit is contained in:
Rob N 2023-03-01 12:35:33 +11:00 committed by GitHub
parent cbd76b4032
commit 4fe9cc5437
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -103,6 +103,12 @@ characters, it is interpreted as a pool name.
The root dataset can be specified as The root dataset can be specified as
.Qq Ar pool Ns / . .Qq Ar pool Ns / .
.Pp .Pp
.Nm
is an
.Qq offline
tool; it accesses the block devices underneath the pools directly from
userspace and does not care if the pool is imported or datasets are mounted
(or even if the system understands ZFS at all).
When operating on an imported and active pool it is possible, though unlikely, When operating on an imported and active pool it is possible, though unlikely,
that zdb may interpret inconsistent pool data and behave erratically. that zdb may interpret inconsistent pool data and behave erratically.
. .