mirror of
https://git.proxmox.com/git/mirror_zfs.git
synced 2025-04-06 17:49:11 +03:00
![]() For zdb -l, detect when the configuration nvlist in some label l (l>0) is the same as a configuration already dumped. If so, do not dump it. Make a similar check when dumping Uberblocks for zdb -lu. Check whether a label already dumped contains an identical Uberblock. If so, do not dump the Uberblock. When dumping a configuration or Uberblock, state which labels it is found in (0-3), for example: labels = 1 2 3 Detecting redundant uberblocks or configurations is accomplished by calculating checksums of the uberblocks and the packed nvlists containing the configuration. If there is nothing unique to be dumped for a label (ie the configuration and uberblocks have checksums matching those already dumped) print nothing for that label. With additional l's or u's, increase verbosity as follows: -l Dump each unique configuration only once. Indicate which labels it appears in. -ll In addition, dump label space usage stats. -lll Dump every configuration, unique or not. -u Dump each unique, valid, uberblock only once. Indicate which labels it appears in. -uu In addition, state which slots are invalid. -uuu Dump every uberblock, unique or not. -uuuu Dump the uberblock blockpointer (used to be -uuu) Make exit values conform to the manual page. Failing to unpack a configuration nvlist is considered an error, as well as failing to open or read from the device. Add three tests, zdb_00{3,4,5}_pos to verify the above functionality. An example of the output: ------------------------------------ LABEL 0 ------------------------------------ version: 5000 name: 'pool' state: 1 txg: 880 < ... redacted ... > features_for_read: com.delphix:hole_birth com.delphix:embedded_data labels = 0 Uberblock[0] magic = 0000000000bab10c version = 5000 txg = 0 guid_sum = 3038694082047428541 timestamp = 1487715500 UTC = Tue Feb 21 14:18:20 2017 labels = 0 1 2 3 Uberblock[4] magic = 0000000000bab10c version = 5000 txg = 772 guid_sum = 9045970794941528051 timestamp = 1487727291 UTC = Tue Feb 21 17:34:51 2017 labels = 0 < ... redacted ... > ------------------------------------ LABEL 1 ------------------------------------ version: 5000 name: 'pool' state: 1 txg: 14 < ... redacted ... > com.delphix:embedded_data labels = 1 2 3 Uberblock[4] magic = 0000000000bab10c version = 5000 txg = 4 guid_sum = 7793930272573252584 timestamp = 1487727521 UTC = Tue Feb 21 17:38:41 2017 labels = 1 2 3 < ... redacted ... > Reviewed-by: Tim Chase <tim@chase2k.com> Reviewed-by: Don Brady <don.brady@intel.com> Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov> Signed-off-by: Olaf Faaland <faaland1@llnl.gov> Closes #5738 |
||
---|---|---|
.. | ||
acl | ||
atime | ||
bootfs | ||
cache | ||
cachefile | ||
casenorm | ||
chattr | ||
checksum | ||
clean_mirror | ||
cli_root | ||
cli_user | ||
compression | ||
ctime | ||
delegate | ||
devices | ||
exec | ||
fault | ||
features | ||
grow_pool | ||
grow_replicas | ||
history | ||
inheritance | ||
inuse | ||
large_files | ||
largest_pool | ||
libzfs | ||
link_count | ||
migration | ||
mmap | ||
mount | ||
mv_files | ||
nestedfs | ||
no_space | ||
nopwrite | ||
online_offline | ||
pool_names | ||
poolversion | ||
privilege | ||
quota | ||
raidz | ||
redundancy | ||
refquota | ||
refreserv | ||
rename_dirs | ||
replacement | ||
reservation | ||
rootpool | ||
rsend | ||
scrub_mirror | ||
slog | ||
snapshot | ||
snapused | ||
sparse | ||
threadsappend | ||
tmpfile | ||
truncate | ||
upgrade | ||
userquota | ||
vdev_zaps | ||
write_dirs | ||
xattr | ||
zvol | ||
Makefile.am |