1xfsdump(8) System Manager's Manual xfsdump(8)
2
3
4
6 xfsdump - XFS filesystem incremental dump utility
7
9 xfsdump -h
10 xfsdump [ options ] -f dest [ -f dest ... ] filesystem
11 xfsdump [ options ] - filesystem
12 xfsdump -I [ subopt=value ... ]
13
15 xfsdump backs up files and their attributes in a filesystem. The files
16 are dumped to storage media, a regular file, or standard output.
17 Options allow the operator to have all files dumped, just files that
18 have changed since a previous dump, or just files contained in a list
19 of pathnames.
20
21 The xfsrestore(8) utility re-populates a filesystem with the contents
22 of the dump.
23
24 Each invocation of xfsdump dumps just one filesystem. That invocation
25 is termed a dump session. The dump session splits the filesystem into
26 one or more dump streams, one per destination. The split is done in
27 filesystem inode number (ino) order, at boundaries selected to equalize
28 the size of each stream. Furthermore, the breakpoints between streams
29 may be in the middle of very large files (at extent boundaries) if nec‐
30 essary to achieve reasonable stream size equalization. Each dump
31 stream can span several media objects, and a single media object can
32 contain several dump streams. The typical media object is a tape car‐
33 tridge. The media object records the dump stream as one or more media
34 files. A media file is a self-contained partial dump, intended to min‐
35 imize the impact of media dropouts on the entire dump stream at the
36 expense of increasing the time required to complete the dump. By
37 default only one media file is written unless a media file size is
38 specified using the -d option. Other techniques, such as making a sec‐
39 ond copy of the dump image, provide more protection against media fail‐
40 ures than multiple media files will.
41
42 However, the current implementation in Linux only supports one destina‐
43 tion and running single threaded. Therefore, the above comments regard‐
44 ing multiple streams describe the possible future capabilities.
45
46 xfsdump maintains an online dump inventory in /var/lib/xfsdump/inven‐
47 tory. The -I option displays the inventory contents hierarchically.
48 The levels of the hierarchy are: filesystem, dump session, stream, and
49 media file.
50
51 The options to xfsdump are:
52
53 -a Specifies that files for which the Data Migration Facility (DMF)
54 has complete offline copies (dual-state files) be treated as if
55 they were offline (OFL). This means that the file data will not
56 be dumped by xfsdump, resulting in a smaller dump file. If the
57 file is later restored the file data is still accessible through
58 DMF. If both '-a option' and '-z option' are specified, the '-a
59 option' takes precedence (see '-z option' below).
60
61 -b blocksize
62 Specifies the blocksize, in bytes, to be used for the dump. The
63 same blocksize must be specified to restore the tape. If the -m
64 option is not used, then -b does not need to be specified.
65 Instead, a default blocksize of 1Mb will be used.
66
67 -c progname
68 Use the specified program to alert the operator when a media
69 change is required. The alert program is typically a script to
70 send a mail or flash a window to draw the operator's attention.
71
72 -d filesize
73 Specifies the size, in megabytes, of dump media files. If not
74 specified, xfsdump will dump data to tape using a single media
75 file per media object. The specified media file size may need to
76 be adjusted if, for example, xfsdump cannot fit a media file onto
77 a single tape.
78
79 -e Allow files to be excluded from the dump. This will cause xfsdump
80 to skip files which have the "no dump" file attribute set. See the
81 "Excluding individual files" section below for details on setting
82 this file attribute. Files with an extended attribute named
83 "SGI_XFSDUMP_SKIP_FILE" will also be skipped, however this method
84 is deprecated and xfsdump will stop checking for it in a future
85 version.
86
87 -f dest [ -f dest ... ]
88 Specifies a dump destination. A dump destination can be the path‐
89 name of a device (such as a tape drive), a regular file or a
90 remote tape drive (see rmt(8)). This option must be omitted if
91 the standard output option (a lone - preceding the source filesys‐
92 tem specification) is specified.
93
94 -l level
95 Specifies a dump level of 0 to 9. The dump level determines the
96 base dump to which this dump is relative. The base dump is the
97 most recent dump at a lesser level. A level 0 dump is absolute -
98 all files are dumped. A dump level where 1 <= level <= 9 is
99 referred to as an incremental dump. Only files that have been
100 changed since the base dump are dumped. Subtree dumps (see the -s
101 option below) cannot be used as the base for incremental dumps.
102
103 -m Use the minimal tape protocol for non-scsi tape destinations or
104 remote tape destinations which are not scsi Linux tape drives nor
105 IRIX tape drives. This option cannot be used without specifying a
106 blocksize to be used (see -b option above).
107
108 -o Overwrite the tape. With this option, xfsdump does not read the
109 tape first to check the contents. This option may be used if xfs‐
110 dump is unable to determine the block size of a tape .
111
112 -p interval
113 Causes progress reports to be printed at the specified interval.
114 interval is given in seconds. The progress report indicates how
115 many files have been dumped, the total number of files to dump,
116 the percentage of data dumped, and the elapsed time.
117
118 -q Destination tape drive is a QIC tape. QIC tapes only use a 512
119 byte blocksize, for which xfsdump must make special allowances.
120
121 -s pathname [ -s pathname ... ]
122 Restricts the dump to files contained in the specified pathnames
123 (subtrees). Up to 100 pathnames can be specified. A pathname
124 must be relative to the mount point of the filesystem. For exam‐
125 ple, if a filesystem is mounted at /d2, the pathname argument for
126 the directory /d2/users is ``users''. A pathname can be a file or
127 a directory; if it is a directory, the entire hierarchy of files
128 and subdirectories rooted at that directory is dumped. Subtree
129 dumps cannot be used as the base for incremental dumps (see the -l
130 option above).
131
132 -t file
133 Sets the dump time to the modification time of file rather than
134 using the current time. xfsdump uses the dump time to determine
135 what files need to be backed up during an incremental dump. This
136 option should be used when dumping snapshots so that the dump time
137 matches the time the snapshot was taken. Otherwise files modified
138 after a snapshot is taken may be skipped in the next incremental
139 dump.
140
141 -v verbosity
142 -v subsys=verbosity[,subsys=verbosity,...]
143 Specifies the level of detail used for messages displayed during
144 the course of the dump. The verbosity argument can be passed as
145 either a string or an integer. If passed as a string the following
146 values may be used: silent, verbose, trace, debug, or nitty. If
147 passed as an integer, values from 0-5 may be used. The values 0-4
148 correspond to the strings already listed. The value 5 can be used
149 to produce even more verbose debug output.
150
151 The first form of this option activates message logging across all
152 dump subsystems. The second form allows the message logging level
153 to be controlled on a per-subsystem basis. The two forms can be
154 combined (see the example below). The argument subsys can take one
155 of the following values: general, proc, drive, media, inventory,
156 inomap and excluded_files.
157
158 For example, to dump the root filesystem with tracing activated
159 for all subsystems:
160
161 # xfsdump -v trace -f /dev/tape /
162
163 To enable debug-level tracing for drive and media operations:
164
165 # xfsdump -v drive=debug,media=debug -f /dev/tape /
166
167 To enable tracing for all subsystems, and debug level tracing for
168 drive operations only:
169
170 # xfsdump -v trace,drive=debug -f /dev/tape /
171
172 To list files that will be excluded from the dump:
173
174 # xfsdump -e -v excluded_files=debug -f /dev/tape /
175
176
177 -z size
178 Specifies the maximum size, in kilobytes, of files to be included
179 in the dump. Files over this size, will be excluded from the
180 dump, except for DMF dual-state files when '-a option' is speci‐
181 fied (see '-a option' above). When specified, '-a option' takes
182 precedence over '-z option'. The size is an estimate based on the
183 number of disk blocks actually used by the file, and so does not
184 include holes. In other words, size refers to the amount of space
185 the file would take in the resulting dump. On an interactive
186 restore, the skipped file is visible with xfsrestore's 'ls' and
187 while you can use the 'add' and 'extract' commands, nothing will
188 be restored.
189
190 -A Do not dump extended file attributes. When dumping a filesystem
191 managed within a DMF environment this option should not be used.
192 DMF stores file migration status within extended attributes asso‐
193 ciated with each file. If these attributes are not preserved when
194 the filesystem is restored, files that had been in migrated state
195 will not be recallable by DMF. Note that dumps containing extended
196 file attributes cannot be restored with older versions of xfsre‐
197 store(8).
198
199 -B session_id
200 Specifies the ID of the dump session upon which this dump session
201 is to be based. If this option is specified, the -l (level) and
202 -R (resume) options are not allowed. Instead, xfsdump determines
203 if the current dump session should be incremental and/or resumed,
204 by looking at the base session's level and interrupted attributes.
205 If the base session was interrupted, the current dump session is a
206 resumption of that base at the same level. Otherwise, the current
207 dump session is an incremental dump with a level one greater than
208 that of the base session. This option allows incremental and
209 resumed dumps to be based on any previous dump, rather than just
210 the most recent.
211
212 -E Pre-erase media. If this option is specified, media is erased
213 prior to use. The operator is prompted for confirmation, unless
214 the -F option is also specified.
215
216 -F Don't prompt the operator. When xfsdump encounters a media object
217 containing non-xfsdump data, xfsdump normally asks the operator
218 for permission to overwrite. With this option the overwrite is
219 performed, no questions asked. When xfsdump encounters end-of-
220 media during a dump, xfsdump normally asks the operator if another
221 media object will be provided. With this option the dump is
222 instead interrupted.
223
224 -I Displays the xfsdump inventory (no dump is performed). xfsdump
225 records each dump session in an online inventory in /var/lib/xfs‐
226 dump/inventory. xfsdump uses this inventory to determine the base
227 for incremental dumps. It is also useful for manually identifying
228 a dump session to be restored. Suboptions to filter the inventory
229 display are described later.
230
231 -J Inhibits the normal update of the inventory. This is useful when
232 the media being dumped to will be discarded or overwritten.
233
234 -L session_label
235 Specifies a label for the dump session. It can be any arbitrary
236 string up to 255 characters long.
237
238 -M label [ -M label ... ]
239 Specifies a label for the first media object (for example, tape
240 cartridge) written on the corresponding destination during the
241 session. It can be any arbitrary string up to 255 characters
242 long. Multiple media object labels can be specified, one for each
243 destination.
244
245 -O options_file
246 Insert the options contained in options_file into the beginning of
247 the command line. The options are specified just as they would
248 appear if typed into the command line. In addition, newline char‐
249 acters (\n) can be used as whitespace. The options are placed
250 before all options actually given on the command line, just after
251 the command name. Only one -O option can be used. Recursive use
252 is ignored. The source filesystem cannot be specified in
253 options_file.
254
255 -R Resumes a previously interrupted dump session. If the most recent
256 dump at this dump's level (-l option) was interrupted, this dump
257 contains only files not in the interrupted dump and consistent
258 with the incremental level. However, files contained in the
259 interrupted dump that have been subsequently modified are re-
260 dumped.
261
262 -T Inhibits interactive dialogue timeouts. When the -F option is not
263 specified, xfsdump prompts the operator for labels and media
264 changes. Each dialogue normally times out if no response is sup‐
265 plied. This option prevents the timeout.
266
267 -Y length
268 Specify I/O buffer ring length. xfsdump uses a ring of output
269 buffers to achieve maximum throughput when dumping to tape drives.
270 The default ring length is 3. However, this is only supported
271 when running multi-threaded which has not been done for Linux yet
272 - making this option benign.
273
274 - A lone - causes the dump stream to be sent to the standard output,
275 where it can be piped to another utility such as xfsrestore(8) or
276 redirected to a file. This option cannot be used with the -f
277 option. The - must follow all other options and precede the
278 filesystem specification.
279
280 The filesystem, filesystem, can be specified either as a mount point or
281 as a special device file (for example, /dev/dsk/dks0d1s0). The
282 filesystem must be mounted to be dumped.
283
285 Dump Interruption
286 A dump can be interrupted at any time and later resumed. To interrupt,
287 type control-C (or the current terminal interrupt character). The
288 operator is prompted to select one of several operations, including
289 dump interruption. After the operator selects dump interruption, the
290 dump continues until a convenient break point is encountered (typically
291 the end of the current file). Very large files are broken into smaller
292 subfiles, so the wait for the end of the current file is brief.
293
294 Dump Resumption
295 A previously interrupted dump can be resumed by specifying the -R
296 option. If the most recent dump at the specified level was inter‐
297 rupted, the new dump does not include files already dumped, unless they
298 have changed since the interrupted dump.
299
300 Media Management
301 A single media object can contain many dump streams. Conversely, a
302 single dump stream can span multiple media objects. If a dump stream
303 is sent to a media object already containing one or more dumps, xfsdump
304 appends the new dump stream after the last dump stream. Media files
305 are never overwritten. If end-of-media is encountered during the
306 course of a dump, the operator is prompted to insert a new media object
307 into the drive. The dump stream continuation is appended after the
308 last media file on the new media object.
309
310 Inventory
311 Each dump session updates an inventory database in /var/lib/xfs‐
312 dump/inventory. xfsdump uses the inventory to determine the base of
313 incremental and resumed dumps.
314
315 This database can be displayed by invoking xfsdump with the -I option.
316 The display uses tabbed indentation to present the inventory hierarchi‐
317 cally. The first level is filesystem. The second level is session.
318 The third level is media stream (currently only one stream is sup‐
319 ported). The fourth level lists the media files sequentially composing
320 the stream.
321
322 The following suboptions are available to filter the display.
323
324 -I depth=n
325 (where n is 1, 2, or 3) limits the hierarchical depth of the dis‐
326 play. When n is 1, only the filesystem information from the inven‐
327 tory is displayed. When n is 2, only filesystem and session infor‐
328 mation are displayed. When n is 3, only filesystem, session and
329 stream information are displayed.
330
331 -I level=n
332 (where n is the dump level) limits the display to dumps of that
333 particular dump level.
334
335 The display may be restricted to media files contained in a specific
336 media object.
337
338 -I mobjid=value
339 (where value is a media ID) specifies the media object by its
340 media ID.
341
342 -I mobjlabel=value
343 (where value is a media label) specifies the media object by its
344 media label.
345
346 Similarly, the display can be restricted to a specific filesystem.
347
348 -I mnt=mount_point
349 (that is, [hostname:]pathname), identifies the filesystem by
350 mountpoint. Specifying the hostname is optional, but may be use‐
351 ful in a clustered environment where more than one host can be
352 responsible for dumping a filesystem.
353
354 -I fsid=filesystem_id
355 identifies the filesystem by filesystem ID.
356
357 -I dev=device_pathname
358 (that is, [hostname:]device_pathname) identifies the filesystem by
359 device. As with the mnt filter, specifying the hostname is
360 optional.
361
362 More than one of these suboptions, separated by commas, may be speci‐
363 fied at the same time to limit the display of the inventory to those
364 dumps of interest. However, at most four suboptions can be specified
365 at once: one to constrain the display hierarchy depth, one to constrain
366 the dump level, one to constrain the media object, and one to constrain
367 the filesystem.
368
369 For example, -I depth=1,mobjlabel="tape 1",mnt=host1:/test_mnt would
370 display only the filesystem information (depth=1) for those filesystems
371 that were mounted on host1:/test_mnt at the time of the dump, and only
372 those filesystems dumped to the media object labeled "tape 1".
373
374 Dump records may be removed (pruned) from the inventory using the xfs‐
375 invutil program.
376
377 An additional media file is placed at the end of each dump stream.
378 This media file contains the inventory information for the current dump
379 session. Its contents may be merged back into the online inventory
380 database at a later time using xfsrestore(1M).
381
382 The inventory files stored in /var/lib/xfsdump are not included in the
383 dump, even if that directory is contained within the filesystem being
384 dumped. Including the inventory in the dump may lead to loss or cor‐
385 ruption of data, should an older version be restored overwriting the
386 current version. To backup the xfsdump inventory, the contents of
387 /var/lib/xfsdump should be copied to another location which may then be
388 safely dumped. Upon restoration, those files may be copied back into
389 /var/lib/xfsdump, overwriting whatever files may be there, or xfsinvu‐
390 til(1M) may be used to selectively merge parts of the restored inven‐
391 tory back into the current inventory. Prior to version 1.1.8, xfsdump
392 would include the /var/lib/xfsdump directory in the dump. Care should
393 be taken not to overwrite the /var/lib/xfsdump directory when restoring
394 an old dump, by either restoring the filesystem to another location or
395 by copying the current contents of /var/lib/xfsdump to a safe place
396 prior to running xfsrestore(1M).
397
398 Labels
399 The operator can specify a label to identify the dump session and a
400 label to identify a media object. The session label is placed in every
401 media file produced in the course of the dump, and is recorded in the
402 inventory.
403
404 The media label is used to identify media objects, and is independent
405 of the session label. Each media file on the media object contains a
406 copy of the media label. An error is returned if the operator speci‐
407 fies a media label that does not match the media label on a media
408 object containing valid media files. Media labels are recorded in the
409 inventory.
410
411 UUIDs
412 UUIDs (Universally Unique Identifiers) are used in three places: to
413 identify the filesystem being dumped (using the filesystem UUID, see
414 xfs(5) for more details), to identify the dump session, and to identify
415 each media object. The inventory display (-I) includes all of these.
416
417 Dump Level Usage
418 The dump level mechanism provides a structured form of incremental
419 dumps. A dump of level level includes only files that have changed
420 since the most recent dump at a level less than level. For example,
421 the operator can establish a dump schedule that involves a full dump
422 every Friday and a daily incremental dump containing only files that
423 have changed since the previous dump. In this case Friday's dump would
424 be at level 0, Saturday's at level 1, Sunday's at level 2, and so on,
425 up to the Thursday dump at level 6.
426
427 The above schedule results in a very tedious restore procedure to fully
428 reconstruct the Thursday version of the filesystem; xfsrestore would
429 need to be fed all 7 dumps in sequence. A compromise schedule is to
430 use level 1 on Saturday, Monday, and Wednesday, and level 2 on Sunday,
431 Tuesday, and Thursday. The Monday and Wednesday dumps would take
432 longer, but the worst case restore requires the accumulation of just
433 three dumps, one each at level 0, level 1, and level 2.
434
435 Quotas
436 If the filesystem being dumped contains user quotas, xfsdump will use
437 xfs_quota(8) to store the quotas in a file called xfsdump_quotas in the
438 root of the filesystem to be dumped. This file will then be included in
439 the dump. Upon restoration, xfs_quota [4m(8) can be used to reactivate
440 the quotas for the filesystem. Note, however, that the xfsdump_quotas
441 file will probably require modification to change the filesystem or
442 UIDs if the filesystem has been restored to a different partition or
443 system. Group and project quotas will be handled in a similar fashion
444 and saved in files called xfsdump_quotas_group and xfsdump_quotas_proj
445 , respectively.
446
447 Excluding individual files
448 It may be desirable to exclude particular files or directories from the
449 dump. The -s option can be used to limit the dump to a specified
450 directory, and the -z option can be used to exclude files over a par‐
451 ticular size. Additionally, when xfsdump is run with the -e option,
452 files that are tagged with the "no dump" file attribute will not be
453 included in the dump. The chattr(1) command can be used to set this
454 attribute on individual files or entire subtrees.
455
456 To tag an individual file for exclusion from the dump:
457
458 $ chattr +d file
459
460 To tag all files in a subtree for exclusion from the dump:
461
462 $ chattr -R +d directory
463
464 Note that any new files or directories created in a directory which has
465 the "no dump" attribute set will automatically inherit this attribute.
466 Also note that xfsdump does not check directories for the "no dump"
467 attribute.
468
469 Care should be taken to note which files have been tagged. Under nor‐
470 mal operation, xfsdump will only report the number of files it will
471 skip. The -v excluded_files=debug option, however, will cause xfsdump
472 to list the inode numbers of the individual files affected.
473
475 To perform a level 0, single stream dump of the root filesystem to a
476 locally mounted tape drive, prompting for session and media labels when
477 required:
478
479 # xfsdump -f /dev/tape /
480
481 To specify session and media labels explicitly:
482
483 # xfsdump -L session_1 -M tape_0 -f /dev/tape /
484
485 To perform a dump to a remote tape using the minimal rmt protocol and a
486 set blocksize of 64k:
487
488 # xfsdump -m -b 65536 -f otherhost:/dev/tape /
489
490 To perform a level 0, multi-stream dump to two locally mounted tape
491 drives:
492
493 # xfsdump -L session_2 -f /dev/rmt/tps4d6v -M tape_1 \
494 -f /dev/rmt/tps5d6v -M tape_2 /
495
496 To perform a level 1 dump relative to the last level 0 dump recorded in
497 the inventory:
498
499 # xfsdump -l 1 -f /dev/tape /
500
501 To copy the contents of a filesystem to another directory (see xfsre‐
502 store(8)):
503
504 # xfsdump -J - / | xfsrestore -J - /new
505
506
508 /var/lib/xfsdump/inventory
509 dump inventory database
510
512 attr(1), rmt(8), xfsrestore(8), xfsinvutil(8), xfs_quota(8),
513 attr_get(2).
514
516 The exit code is 0 on normal completion, non-zero if an error occurs or
517 the dump is terminated by the operator.
518
519 For all verbosity levels greater than 0 (silent) the final line of the
520 output shows the exit status of the dump. It is of the form:
521
522 xfsdump: Dump Status: code
523
524 Where code takes one of the following values: SUCCESS (normal comple‐
525 tion), INTERRUPT (interrupted), QUIT (media no longer usable), INCOM‐
526 PLETE (dump incomplete), FAULT (software error), and ERROR (resource
527 error). Every attempt will be made to keep both the syntax and the
528 semantics of this log message unchanged in future versions of xfsdump.
529 However, it may be necessary to refine or expand the set of exit codes,
530 or their interpretation at some point in the future.
531
532 The message ``xfsdump: WARNING: unable to open directory: ino N:
533 Invalid argument'' can occur with filesystems which are actively being
534 modified while xfsdump is running. This can happen to either directory
535 or regular file inodes - affected files will not end up in the dump,
536 files below affected directories will be placed in the orphanage direc‐
537 tory by xfsrestore.
538
540 xfsdump does not dump unmounted filesystems.
541
542 The dump frequency field of /etc/fstab is not supported.
543
544 xfsdump uses the alert program only when a media change is required.
545
546 xfsdump requires root privilege (except for inventory display).
547
548 xfsdump can only dump XFS filesystems.
549
550 The media format used by xfsdump can only be understood by xfsrestore.
551
552 xfsdump does not know how to manage CD-ROM or other removable disk
553 drives.
554
555 xfsdump can become confused when doing incremental or resumed dumps if
556 on the same machine you dump two XFS filesystems and both filesystems
557 have the same filesystem identifier (UUID). Since xfsdump uses the
558 filesystem identifier to identify filesystems, xfsdump maintains one
559 combined set of dump inventories for both filesystems instead of two
560 sets of dump inventories. This scenario can happen only if dd or some
561 other block-by-block copy program was used to make a copy of an XFS
562 filesystem. See xfs_copy(8) and xfs(5) for more details.
563
564
565
566 xfsdump(8)