]>
Commit | Line | Data |
---|---|---|
1 | .\" | |
2 | .\" This file and its contents are supplied under the terms of the | |
3 | .\" Common Development and Distribution License ("CDDL"), version 1.0. | |
4 | .\" You may only use this file in accordance with the terms of version | |
5 | .\" 1.0 of the CDDL. | |
6 | .\" | |
7 | .\" A full copy of the text of the CDDL should have accompanied this | |
8 | .\" source. A copy of the CDDL is also available via the Internet at | |
9 | .\" http://www.illumos.org/license/CDDL. | |
10 | .\" | |
11 | .\" | |
12 | .\" Copyright 2012, Richard Lowe. | |
13 | .\" Copyright (c) 2012, 2017 by Delphix. All rights reserved. | |
14 | .\" Copyright 2017 Nexenta Systems, Inc. | |
15 | .\" Copyright (c) 2017 Lawrence Livermore National Security, LLC. | |
16 | .\" Copyright (c) 2017 Intel Corporation. | |
17 | .\" | |
18 | .Dd April 14, 2017 | |
19 | .Dt ZDB 8 SMM | |
20 | .Os Linux | |
21 | .Sh NAME | |
22 | .Nm zdb | |
23 | .Nd display zpool debugging and consistency information | |
24 | .Sh SYNOPSIS | |
25 | .Nm | |
26 | .Op Fl AbcdDFGhiLMPsvX | |
27 | .Op Fl e Oo Fl V Oc Op Fl p Ar path ... | |
28 | .Op Fl I Ar inflight I/Os | |
29 | .Oo Fl o Ar var Ns = Ns Ar value Oc Ns ... | |
30 | .Op Fl t Ar txg | |
31 | .Op Fl U Ar cache | |
32 | .Op Fl x Ar dumpdir | |
33 | .Op Ar poolname Op Ar object ... | |
34 | .Nm | |
35 | .Op Fl AdiPv | |
36 | .Op Fl e Oo Fl V Oc Op Fl p Ar path ... | |
37 | .Op Fl U Ar cache | |
38 | .Ar dataset Op Ar object ... | |
39 | .Nm | |
40 | .Fl C | |
41 | .Op Fl A | |
42 | .Op Fl U Ar cache | |
43 | .Nm | |
44 | .Fl E | |
45 | .Op Fl A | |
46 | .Ar word0 Ns \&: Ns Ar word1 Ns :...: Ns Ar word15 | |
47 | .Nm | |
48 | .Fl l | |
49 | .Op Fl Aqu | |
50 | .Ar device | |
51 | .Nm | |
52 | .Fl m | |
53 | .Op Fl AFLPX | |
54 | .Op Fl e Oo Fl V Oc Op Fl p Ar path ... | |
55 | .Op Fl t Ar txg | |
56 | .Op Fl U Ar cache | |
57 | .Ar poolname Op Ar vdev Op Ar metaslab ... | |
58 | .Nm | |
59 | .Fl O | |
60 | .Ar dataset path | |
61 | .Nm | |
62 | .Fl R | |
63 | .Op Fl A | |
64 | .Op Fl e Oo Fl V Oc Op Fl p Ar path ... | |
65 | .Op Fl U Ar cache | |
66 | .Ar poolname vdev Ns \&: Ns Ar offset Ns \&: Ns Ar size Ns Op : Ns Ar flags | |
67 | .Nm | |
68 | .Fl S | |
69 | .Op Fl AP | |
70 | .Op Fl e Oo Fl V Oc Op Fl p Ar path ... | |
71 | .Op Fl U Ar cache | |
72 | .Ar poolname | |
73 | .Sh DESCRIPTION | |
74 | The | |
75 | .Nm | |
76 | utility displays information about a ZFS pool useful for debugging and performs | |
77 | some amount of consistency checking. | |
78 | It is a not a general purpose tool and options | |
79 | .Pq and facilities | |
80 | may change. | |
81 | This is neither a | |
82 | .Xr fsck 1M | |
83 | nor an | |
84 | .Xr fsdb 1M | |
85 | utility. | |
86 | .Pp | |
87 | The output of this command in general reflects the on-disk structure of a ZFS | |
88 | pool, and is inherently unstable. | |
89 | The precise output of most invocations is not documented, a knowledge of ZFS | |
90 | internals is assumed. | |
91 | .Pp | |
92 | If the | |
93 | .Ar dataset | |
94 | argument does not contain any | |
95 | .Qq Sy / | |
96 | or | |
97 | .Qq Sy @ | |
98 | characters, it is interpreted as a pool name. | |
99 | The root dataset can be specified as | |
100 | .Ar pool Ns / | |
101 | .Pq pool name followed by a slash . | |
102 | .Pp | |
103 | When operating on an imported and active pool it is possible, though unlikely, | |
104 | that zdb may interpret inconsistent pool data and behave erratically. | |
105 | .Sh OPTIONS | |
106 | Display options: | |
107 | .Bl -tag -width Ds | |
108 | .It Fl b | |
109 | Display statistics regarding the number, size | |
110 | .Pq logical, physical and allocated | |
111 | and deduplication of blocks. | |
112 | .It Fl c | |
113 | Verify the checksum of all metadata blocks while printing block statistics | |
114 | .Po see | |
115 | .Fl b | |
116 | .Pc . | |
117 | .Pp | |
118 | If specified multiple times, verify the checksums of all blocks. | |
119 | .It Fl C | |
120 | Display information about the configuration. | |
121 | If specified with no other options, instead display information about the cache | |
122 | file | |
123 | .Pq Pa /etc/zfs/zpool.cache . | |
124 | To specify the cache file to display, see | |
125 | .Fl U . | |
126 | .Pp | |
127 | If specified multiple times, and a pool name is also specified display both the | |
128 | cached configuration and the on-disk configuration. | |
129 | If specified multiple times with | |
130 | .Fl e | |
131 | also display the configuration that would be used were the pool to be imported. | |
132 | .It Fl d | |
133 | Display information about datasets. | |
134 | Specified once, displays basic dataset information: ID, create transaction, | |
135 | size, and object count. | |
136 | .Pp | |
137 | If specified multiple times provides greater and greater verbosity. | |
138 | .Pp | |
139 | If object IDs are specified, display information about those specific objects | |
140 | only. | |
141 | .It Fl D | |
142 | Display deduplication statistics, including the deduplication ratio | |
143 | .Pq Sy dedup , | |
144 | compression ratio | |
145 | .Pq Sy compress , | |
146 | inflation due to the zfs copies property | |
147 | .Pq Sy copies , | |
148 | and an overall effective ratio | |
149 | .Pq Sy dedup No * Sy compress No / Sy copies . | |
150 | .It Fl DD | |
151 | Display a histogram of deduplication statistics, showing the allocated | |
152 | .Pq physically present on disk | |
153 | and referenced | |
154 | .Pq logically referenced in the pool | |
155 | block counts and sizes by reference count. | |
156 | .It Fl DDD | |
157 | Display the statistics independently for each deduplication table. | |
158 | .It Fl DDDD | |
159 | Dump the contents of the deduplication tables describing duplicate blocks. | |
160 | .It Fl DDDDD | |
161 | Also dump the contents of the deduplication tables describing unique blocks. | |
162 | .It Fl E Ar word0 Ns \&: Ns Ar word1 Ns :...: Ns Ar word15 | |
163 | Decode and display block from an embedded block pointer specified by the | |
164 | .Ar word | |
165 | arguments. | |
166 | .It Fl h | |
167 | Display pool history similar to | |
168 | .Nm zpool Cm history , | |
169 | but include internal changes, transaction, and dataset information. | |
170 | .It Fl i | |
171 | Display information about intent log | |
172 | .Pq ZIL | |
173 | entries relating to each dataset. | |
174 | If specified multiple times, display counts of each intent log transaction type. | |
175 | .It Fl l Ar device | |
176 | Read the vdev labels from the specified device. | |
177 | .Nm Fl l | |
178 | will return 0 if valid label was found, 1 if error occurred, and 2 if no valid | |
179 | labels were found. Each unique configuration is displayed only once. | |
180 | .It Fl ll Ar device | |
181 | In addition display label space usage stats. | |
182 | .It Fl lll Ar device | |
183 | Display every configuration, unique or not. | |
184 | .Pp | |
185 | If the | |
186 | .Fl q | |
187 | option is also specified, don't print the labels. | |
188 | .Pp | |
189 | If the | |
190 | .Fl u | |
191 | option is also specified, also display the uberblocks on this device. Specify | |
192 | multiple times to increase verbosity. | |
193 | .It Fl L | |
194 | Disable leak tracing and the loading of space maps. | |
195 | By default, | |
196 | .Nm | |
197 | verifies that all non-free blocks are referenced, which can be very expensive. | |
198 | .It Fl m | |
199 | Display the offset, spacemap, and free space of each metaslab. | |
200 | .It Fl mm | |
201 | Also display information about the on-disk free space histogram associated with | |
202 | each metaslab. | |
203 | .It Fl mmm | |
204 | Display the maximum contiguous free space, the in-core free space histogram, and | |
205 | the percentage of free space in each space map. | |
206 | .It Fl mmmm | |
207 | Display every spacemap record. | |
208 | .It Fl M | |
209 | Display the offset, spacemap, and free space of each metaslab. | |
210 | .It Fl MM | |
211 | Also display information about the maximum contiguous free space and the | |
212 | percentage of free space in each space map. | |
213 | .It Fl MMM | |
214 | Display every spacemap record. | |
215 | .It Fl O Ar dataset path | |
216 | Look up the specified | |
217 | .Ar path | |
218 | inside of the | |
219 | .Ar dataset | |
220 | and display its metadata and indirect blocks. | |
221 | Specified | |
222 | .Ar path | |
223 | must be relative to the root of | |
224 | .Ar dataset . | |
225 | This option can be combined with | |
226 | .Fl v | |
227 | for increasing verbosity. | |
228 | .It Xo | |
229 | .Fl R Ar poolname vdev Ns \&: Ns Ar offset Ns \&: Ns Ar size Ns Op : Ns Ar flags | |
230 | .Xc | |
231 | Read and display a block from the specified device. | |
232 | By default the block is displayed as a hex dump, but see the description of the | |
233 | .Sy r | |
234 | flag, below. | |
235 | .Pp | |
236 | The block is specified in terms of a colon-separated tuple | |
237 | .Ar vdev | |
238 | .Pq an integer vdev identifier | |
239 | .Ar offset | |
240 | .Pq the offset within the vdev | |
241 | .Ar size | |
242 | .Pq the size of the block to read | |
243 | and, optionally, | |
244 | .Ar flags | |
245 | .Pq a set of flags, described below . | |
246 | .Pp | |
247 | .Bl -tag -compact -width "b offset" | |
248 | .It Sy b Ar offset | |
249 | Print block pointer | |
250 | .It Sy d | |
251 | Decompress the block. Set environment variable | |
252 | .Nm ZBD_NO_ZLE | |
253 | to skip zle when guessing. | |
254 | .It Sy e | |
255 | Byte swap the block | |
256 | .It Sy g | |
257 | Dump gang block header | |
258 | .It Sy i | |
259 | Dump indirect block | |
260 | .It Sy r | |
261 | Dump raw uninterpreted block data | |
262 | .El | |
263 | .It Fl s | |
264 | Report statistics on | |
265 | .Nm zdb | |
266 | I/O. | |
267 | Display operation counts, bandwidth, and error counts of I/O to the pool from | |
268 | .Nm . | |
269 | .It Fl S | |
270 | Simulate the effects of deduplication, constructing a DDT and then display | |
271 | that DDT as with | |
272 | .Fl DD . | |
273 | .It Fl u | |
274 | Display the current uberblock. | |
275 | .El | |
276 | .Pp | |
277 | Other options: | |
278 | .Bl -tag -width Ds | |
279 | .It Fl A | |
280 | Do not abort should any assertion fail. | |
281 | .It Fl AA | |
282 | Enable panic recovery, certain errors which would otherwise be fatal are | |
283 | demoted to warnings. | |
284 | .It Fl AAA | |
285 | Do not abort if asserts fail and also enable panic recovery. | |
286 | .It Fl e Op Fl p Ar path ... | |
287 | Operate on an exported pool, not present in | |
288 | .Pa /etc/zfs/zpool.cache . | |
289 | The | |
290 | .Fl p | |
291 | flag specifies the path under which devices are to be searched. | |
292 | .It Fl x Ar dumpdir | |
293 | All blocks accessed will be copied to files in the specified directory. | |
294 | The blocks will be placed in sparse files whose name is the same as | |
295 | that of the file or device read. | |
296 | .Nm | |
297 | can be then run on the generated files. | |
298 | Note that the | |
299 | .Fl bbc | |
300 | flags are sufficient to access | |
301 | .Pq and thus copy | |
302 | all metadata on the pool. | |
303 | .It Fl F | |
304 | Attempt to make an unreadable pool readable by trying progressively older | |
305 | transactions. | |
306 | .It Fl G | |
307 | Dump the contents of the zfs_dbgmsg buffer before exiting | |
308 | .Nm . | |
309 | zfs_dbgmsg is a buffer used by ZFS to dump advanced debug information. | |
310 | .It Fl I Ar inflight I/Os | |
311 | Limit the number of outstanding checksum I/Os to the specified value. | |
312 | The default value is 200. | |
313 | This option affects the performance of the | |
314 | .Fl c | |
315 | option. | |
316 | .It Fl o Ar var Ns = Ns Ar value ... | |
317 | Set the given global libzpool variable to the provided value. | |
318 | The value must be an unsigned 32-bit integer. | |
319 | Currently only little-endian systems are supported to avoid accidentally setting | |
320 | the high 32 bits of 64-bit variables. | |
321 | .It Fl P | |
322 | Print numbers in an unscaled form more amenable to parsing, eg. 1000000 rather | |
323 | than 1M. | |
324 | .It Fl t Ar transaction | |
325 | Specify the highest transaction to use when searching for uberblocks. | |
326 | See also the | |
327 | .Fl u | |
328 | and | |
329 | .Fl l | |
330 | options for a means to see the available uberblocks and their associated | |
331 | transaction numbers. | |
332 | .It Fl U Ar cachefile | |
333 | Use a cache file other than | |
334 | .Pa /etc/zfs/zpool.cache . | |
335 | .It Fl v | |
336 | Enable verbosity. | |
337 | Specify multiple times for increased verbosity. | |
338 | .It Fl V | |
339 | Attempt verbatim import. | |
340 | This mimics the behavior of the kernel when loading a pool from a cachefile. | |
341 | Only usable with | |
342 | .Fl e . | |
343 | .It Fl X | |
344 | Attempt | |
345 | .Qq extreme | |
346 | transaction rewind, that is attempt the same recovery as | |
347 | .Fl F | |
348 | but read transactions otherwise deemed too old. | |
349 | .El | |
350 | .Pp | |
351 | Specifying a display option more than once enables verbosity for only that | |
352 | option, with more occurrences enabling more verbosity. | |
353 | .Pp | |
354 | If no options are specified, all information about the named pool will be | |
355 | displayed at default verbosity. | |
356 | .Sh EXAMPLES | |
357 | .Bl -tag -width Ds | |
358 | .It Xo | |
359 | .Sy Example 1 | |
360 | Display the configuration of imported pool | |
361 | .Pa rpool | |
362 | .Xc | |
363 | .Bd -literal | |
364 | # zdb -C rpool | |
365 | ||
366 | MOS Configuration: | |
367 | version: 28 | |
368 | name: 'rpool' | |
369 | ... | |
370 | .Ed | |
371 | .It Xo | |
372 | .Sy Example 2 | |
373 | Display basic dataset information about | |
374 | .Pa rpool | |
375 | .Xc | |
376 | .Bd -literal | |
377 | # zdb -d rpool | |
378 | Dataset mos [META], ID 0, cr_txg 4, 26.9M, 1051 objects | |
379 | Dataset rpool/swap [ZVOL], ID 59, cr_txg 356, 486M, 2 objects | |
380 | ... | |
381 | .Ed | |
382 | .It Xo | |
383 | .Sy Example 3 | |
384 | Display basic information about object 0 in | |
385 | .Pa rpool/export/home | |
386 | .Xc | |
387 | .Bd -literal | |
388 | # zdb -d rpool/export/home 0 | |
389 | Dataset rpool/export/home [ZPL], ID 137, cr_txg 1546, 32K, 8 objects | |
390 | ||
391 | Object lvl iblk dblk dsize lsize %full type | |
392 | 0 7 16K 16K 15.0K 16K 25.00 DMU dnode | |
393 | .Ed | |
394 | .It Xo | |
395 | .Sy Example 4 | |
396 | Display the predicted effect of enabling deduplication on | |
397 | .Pa rpool | |
398 | .Xc | |
399 | .Bd -literal | |
400 | # zdb -S rpool | |
401 | Simulated DDT histogram: | |
402 | ||
403 | bucket allocated referenced | |
404 | ______ ______________________________ ______________________________ | |
405 | refcnt blocks LSIZE PSIZE DSIZE blocks LSIZE PSIZE DSIZE | |
406 | ------ ------ ----- ----- ----- ------ ----- ----- ----- | |
407 | 1 694K 27.1G 15.0G 15.0G 694K 27.1G 15.0G 15.0G | |
408 | 2 35.0K 1.33G 699M 699M 74.7K 2.79G 1.45G 1.45G | |
409 | ... | |
410 | dedup = 1.11, compress = 1.80, copies = 1.00, dedup * compress / copies = 2.00 | |
411 | .Ed | |
412 | .El | |
413 | .Sh SEE ALSO | |
414 | .Xr zfs 8 , | |
415 | .Xr zpool 8 |