From: Tim Shimmin Date: Wed, 16 Jan 2002 08:12:04 +0000 (+0000) Subject: Do more testing on cumulative restores. X-Git-Tag: v1.1.0~1174 X-Git-Url: http://git.apps.os.sepia.ceph.com/?p=xfstests-dev.git;a=commitdiff_plain;h=6a8c2ea7bd5b6db3c6dfecf7d4366637b924cad3 Do more testing on cumulative restores. It found bug pv#844219. --- diff --git a/065 b/065 new file mode 100755 index 00000000..04d2c741 --- /dev/null +++ b/065 @@ -0,0 +1,201 @@ +#! /bin/sh +# XFS QA Test No. 065 +# $Id: 1.1 $ +# +# Testing incremental dumps and cumulative restores with +# "adding, deleting, renaming, linking, and unlinking files and +# directories". +# Do different operations for each level. +# +#----------------------------------------------------------------------- +# Copyright (c) 2000 Silicon Graphics, Inc. All Rights Reserved. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms of version 2 of the GNU General Public License as +# published by the Free Software Foundation. +# +# This program is distributed in the hope that it would be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +# +# Further, this software is distributed without any warranty that it is +# free of the rightful claim of any third person regarding infringement +# or the like. Any license provided herein, whether implied or +# otherwise, applies only to this software file. Patent licenses, if +# any, provided herein do not apply to combinations of this program with +# other software, or any other product whatsoever. +# +# You should have received a copy of the GNU General Public License along +# with this program; if not, write the Free Software Foundation, Inc., 59 +# Temple Place - Suite 330, Boston MA 02111-1307, USA. +# +# Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pkwy, +# Mountain View, CA 94043, or: +# +# http://www.sgi.com +# +# For further information regarding this notice, see: +# +# http://oss.sgi.com/projects/GenInfo/SGIGPLNoticeExplan/ +#----------------------------------------------------------------------- +# +# creator +owner=tes@sagan.melbourne.sgi.com + +seq=`basename $0` +echo "QA output created by $seq" + +here=`pwd` +tmp=/tmp/$$ +status=1 # failure is the default! +trap "rm -f $tmp.*; exit \$status" 0 1 2 3 15 + +# get standard environment, filters and checks +. ./common.rc +. ./common.filter +. ./common.dump + + +_ls_size_filter() +{ + # + # Print size ($5) and fname ($9). + # The size is significant since we add to the file as part + # of a file change for the incremental. + # + # Filter out the housekeeping files of xfsrestore + # + $AWK_PROG 'NF == 9 { print $5, $9; next } + NF == 1 { print }' |\ + sed -e 's/.*dumpdir/dumpdir/' |\ + egrep -v 'housekeeping|dirattr|dirextattr|namreg|state|tree' +} + +# real QA test starts here + +# +# adding - touch/echo, mkdir +# deleting - rm, rmdir +# renaming - mv +# linking - ln +# unlinking - rm +# files and directories +# + +_wipe_fs +mkdir -p $dump_dir ||\ + _error "cannot mkdir \"$dump_dir\"" +cd $dump_dir + +echo "Do the incremental dumps" +i=0 +num_dumps=8 # do some extra to ensure nothing changes +while [ $i -le $num_dumps ]; do + cd $dump_dir + case $i in + 0) + # adding + echo 'add0' >addedfile0 + echo 'add1' >addedfile1 + echo 'add2' >addedfile2 + echo 'add3' >addedfile3 + mkdir addeddir1 + mkdir addeddir2 + mkdir addeddir3 + mkdir addeddir4 + echo 'add4' >addeddir3/addedfile4 + echo 'add5' >addeddir4/addedfile5 + ;; + 1) + # deleting + rm addedfile2 + rmdir addeddir2 + rm -rf addeddir3 + ;; + 2) + # renaming + mv addedfile1 addedfile2 # rename to previous existing file + mv addeddir4/addedfile5 addeddir4/addedfile4 + mv addeddir4 addeddir6 + mv addeddir1 addeddir2 # rename to previous existing dir + ;; + 3) + # linking + ln addedfile0 linkfile0 + ln addedfile0 linkfile0_1 # have a 2nd link to file + ln addedfile2 linkfile2 + ln addeddir6/addedfile4 linkfile64 + ;; + 4) + # unlinking + rm linkfile0 # remove a link + rm addedfile2 # remove original link + rm linkfile64 # remove link + rm addeddir6/addedfile4 # remove last link + ;; + 5) # link first - then onto 6) + rm -rf * + echo 'add6' >addedfile6 + ln addedfile6 linkfile6_1 + ln addedfile6 linkfile6_2 + ln addedfile6 linkfile6_3 + ;; + 6) # then move the inode that the links point to + mv addedfile6 addedfile6_mv + rm linkfile6_1 + rm linkfile6_2 + rm linkfile6_3 + ln addedfile6_mv linkfile6_mv_1 + ln addedfile6_mv linkfile6_mv_2 + ln addedfile6_mv linkfile6_mv_3 + ;; + esac + cd $here + sleep 2 + _stable_fs + + echo "Listing of what files we have at level $i:" + ls -lRF $dump_dir | _ls_size_filter | tee $tmp.ls.$i + + dump_file=$tmp.df.level$i + _do_dump_file -l $i + i=`expr $i + 1` +done + +echo "Look at what files are contained in the inc. dump" +i=0 +while [ $i -le $num_dumps ]; do + echo "" + echo "restoring from df.level$i" + dump_file=$tmp.df.level$i + _do_restore_toc + i=`expr $i + 1` +done + +echo "Do the cumulative restores" +i=0 +while [ $i -le $num_dumps ]; do + dump_file=$tmp.df.level$i + echo "" + echo "restoring from df.level$i" + _do_restore_file_cum -l $i + echo "ls -lRF restore_dir" + ls -lRF $restore_dir/dumpdir | _ls_size_filter |\ + _check_quota_file | tee $tmp.restorals.$i + i=`expr $i + 1` +done + +echo "" +echo "Do the ls comparison" +i=0 +while [ $i -le $num_dumps ]; do + echo "Comparing ls of FS with restored FS at level $i" + diff -s $tmp.ls.$i $tmp.restorals.$i | sed "s#$tmp#TMP#g" + echo "" + i=`expr $i + 1` +done + + +# success, all done +status=0 +exit diff --git a/065.out b/065.out new file mode 100644 index 00000000..4f235ff0 --- /dev/null +++ b/065.out @@ -0,0 +1,910 @@ +QA output created by 065 +Do the incremental dumps +Listing of what files we have at level 0: +dumpdir: +6 addeddir1/ +6 addeddir2/ +23 addeddir3/ +23 addeddir4/ +5 addedfile0 +5 addedfile1 +5 addedfile2 +5 addedfile3 +dumpdir/addeddir1: +dumpdir/addeddir2: +dumpdir/addeddir3: +5 addedfile4 +dumpdir/addeddir4: +5 addedfile5 +Dumping to file... +xfsdump -l0 -f DUMP_FILE -M stress_tape_media -L stress_065 SCRATCH_MNT +xfsdump: using file dump (drive_simple) strategy +xfsdump: level 0 dump of HOSTNAME:SCRATCH_MNT +xfsdump: dump date: DATE +xfsdump: session id: ID +xfsdump: session label: "stress_065" +xfsdump: ino map phase 1: skipping (no subtrees specified) +xfsdump: ino map phase 2: constructing initial dump list +xfsdump: ino map phase 3: skipping (no pruning necessary) +xfsdump: ino map phase 4: skipping (size estimated in phase 2) +xfsdump: ino map phase 5: skipping (only one dump stream) +xfsdump: ino map construction complete +xfsdump: estimated dump size: NUM bytes +xfsdump: /var/xfsdump/inventory created +xfsdump: creating dump session media file 0 (media 0, file 0) +xfsdump: dumping ino map +xfsdump: dumping directories +xfsdump: dumping non-directory files +xfsdump: ending media file +xfsdump: media file size NUM bytes +xfsdump: dump size (non-dir files) : NUM bytes +xfsdump: dump complete: SECS seconds elapsed +xfsdump: Dump Status: SUCCESS +Listing of what files we have at level 1: +dumpdir: +6 addeddir1/ +23 addeddir4/ +5 addedfile0 +5 addedfile1 +5 addedfile3 +dumpdir/addeddir1: +dumpdir/addeddir4: +5 addedfile5 +Dumping to file... +xfsdump -l1 -f DUMP_FILE -M stress_tape_media -L stress_065 SCRATCH_MNT +xfsdump: using file dump (drive_simple) strategy +xfsdump: level 1 incremental dump of HOSTNAME:SCRATCH_MNT based on level 0 dump begun DATE +xfsdump: dump date: DATE +xfsdump: session id: ID +xfsdump: session label: "stress_065" +xfsdump: ino map phase 1: skipping (no subtrees specified) +xfsdump: ino map phase 2: constructing initial dump list +xfsdump: ino map phase 3: pruning unneeded subtrees +xfsdump: ino map phase 4: estimating dump size +xfsdump: ino map phase 5: skipping (only one dump stream) +xfsdump: ino map construction complete +xfsdump: estimated dump size: NUM bytes +xfsdump: creating dump session media file 0 (media 0, file 0) +xfsdump: dumping ino map +xfsdump: dumping directories +xfsdump: dumping non-directory files +xfsdump: ending media file +xfsdump: media file size NUM bytes +xfsdump: dump size (non-dir files) : NUM bytes +xfsdump: dump complete: SECS seconds elapsed +xfsdump: Dump Status: SUCCESS +Listing of what files we have at level 2: +dumpdir: +6 addeddir2/ +23 addeddir6/ +5 addedfile0 +5 addedfile2 +5 addedfile3 +dumpdir/addeddir2: +dumpdir/addeddir6: +5 addedfile4 +Dumping to file... +xfsdump -l2 -f DUMP_FILE -M stress_tape_media -L stress_065 SCRATCH_MNT +xfsdump: using file dump (drive_simple) strategy +xfsdump: level 2 incremental dump of HOSTNAME:SCRATCH_MNT based on level 1 dump begun DATE +xfsdump: dump date: DATE +xfsdump: session id: ID +xfsdump: session label: "stress_065" +xfsdump: ino map phase 1: skipping (no subtrees specified) +xfsdump: ino map phase 2: constructing initial dump list +xfsdump: ino map phase 3: pruning unneeded subtrees +xfsdump: ino map phase 4: estimating dump size +xfsdump: ino map phase 5: skipping (only one dump stream) +xfsdump: ino map construction complete +xfsdump: estimated dump size: NUM bytes +xfsdump: creating dump session media file 0 (media 0, file 0) +xfsdump: dumping ino map +xfsdump: dumping directories +xfsdump: dumping non-directory files +xfsdump: ending media file +xfsdump: media file size NUM bytes +xfsdump: dump size (non-dir files) : NUM bytes +xfsdump: dump complete: SECS seconds elapsed +xfsdump: Dump Status: SUCCESS +Listing of what files we have at level 3: +dumpdir: +6 addeddir2/ +23 addeddir6/ +5 addedfile0 +5 addedfile2 +5 addedfile3 +5 linkfile0 +5 linkfile0_1 +5 linkfile2 +5 linkfile64 +dumpdir/addeddir2: +dumpdir/addeddir6: +5 addedfile4 +Dumping to file... +xfsdump -l3 -f DUMP_FILE -M stress_tape_media -L stress_065 SCRATCH_MNT +xfsdump: using file dump (drive_simple) strategy +xfsdump: level 3 incremental dump of HOSTNAME:SCRATCH_MNT based on level 2 dump begun DATE +xfsdump: dump date: DATE +xfsdump: session id: ID +xfsdump: session label: "stress_065" +xfsdump: ino map phase 1: skipping (no subtrees specified) +xfsdump: ino map phase 2: constructing initial dump list +xfsdump: ino map phase 3: pruning unneeded subtrees +xfsdump: ino map phase 4: estimating dump size +xfsdump: ino map phase 5: skipping (only one dump stream) +xfsdump: ino map construction complete +xfsdump: estimated dump size: NUM bytes +xfsdump: creating dump session media file 0 (media 0, file 0) +xfsdump: dumping ino map +xfsdump: dumping directories +xfsdump: dumping non-directory files +xfsdump: ending media file +xfsdump: media file size NUM bytes +xfsdump: dump size (non-dir files) : NUM bytes +xfsdump: dump complete: SECS seconds elapsed +xfsdump: Dump Status: SUCCESS +Listing of what files we have at level 4: +dumpdir: +6 addeddir2/ +6 addeddir6/ +5 addedfile0 +5 addedfile3 +5 linkfile0_1 +5 linkfile2 +dumpdir/addeddir2: +dumpdir/addeddir6: +Dumping to file... +xfsdump -l4 -f DUMP_FILE -M stress_tape_media -L stress_065 SCRATCH_MNT +xfsdump: using file dump (drive_simple) strategy +xfsdump: level 4 incremental dump of HOSTNAME:SCRATCH_MNT based on level 3 dump begun DATE +xfsdump: dump date: DATE +xfsdump: session id: ID +xfsdump: session label: "stress_065" +xfsdump: ino map phase 1: skipping (no subtrees specified) +xfsdump: ino map phase 2: constructing initial dump list +xfsdump: ino map phase 3: pruning unneeded subtrees +xfsdump: ino map phase 4: estimating dump size +xfsdump: ino map phase 5: skipping (only one dump stream) +xfsdump: ino map construction complete +xfsdump: estimated dump size: NUM bytes +xfsdump: creating dump session media file 0 (media 0, file 0) +xfsdump: dumping ino map +xfsdump: dumping directories +xfsdump: dumping non-directory files +xfsdump: ending media file +xfsdump: media file size NUM bytes +xfsdump: dump size (non-dir files) : NUM bytes +xfsdump: dump complete: SECS seconds elapsed +xfsdump: Dump Status: SUCCESS +Listing of what files we have at level 5: +dumpdir: +5 addedfile6 +5 linkfile6_1 +5 linkfile6_2 +5 linkfile6_3 +Dumping to file... +xfsdump -l5 -f DUMP_FILE -M stress_tape_media -L stress_065 SCRATCH_MNT +xfsdump: using file dump (drive_simple) strategy +xfsdump: level 5 incremental dump of HOSTNAME:SCRATCH_MNT based on level 4 dump begun DATE +xfsdump: dump date: DATE +xfsdump: session id: ID +xfsdump: session label: "stress_065" +xfsdump: ino map phase 1: skipping (no subtrees specified) +xfsdump: ino map phase 2: constructing initial dump list +xfsdump: ino map phase 3: pruning unneeded subtrees +xfsdump: ino map phase 4: estimating dump size +xfsdump: ino map phase 5: skipping (only one dump stream) +xfsdump: ino map construction complete +xfsdump: estimated dump size: NUM bytes +xfsdump: creating dump session media file 0 (media 0, file 0) +xfsdump: dumping ino map +xfsdump: dumping directories +xfsdump: dumping non-directory files +xfsdump: ending media file +xfsdump: media file size NUM bytes +xfsdump: dump size (non-dir files) : NUM bytes +xfsdump: dump complete: SECS seconds elapsed +xfsdump: Dump Status: SUCCESS +Listing of what files we have at level 6: +dumpdir: +5 addedfile6_mv +5 linkfile6_mv_1 +5 linkfile6_mv_2 +5 linkfile6_mv_3 +Dumping to file... +xfsdump -l6 -f DUMP_FILE -M stress_tape_media -L stress_065 SCRATCH_MNT +xfsdump: using file dump (drive_simple) strategy +xfsdump: level 6 incremental dump of HOSTNAME:SCRATCH_MNT based on level 5 dump begun DATE +xfsdump: dump date: DATE +xfsdump: session id: ID +xfsdump: session label: "stress_065" +xfsdump: ino map phase 1: skipping (no subtrees specified) +xfsdump: ino map phase 2: constructing initial dump list +xfsdump: ino map phase 3: pruning unneeded subtrees +xfsdump: ino map phase 4: estimating dump size +xfsdump: ino map phase 5: skipping (only one dump stream) +xfsdump: ino map construction complete +xfsdump: estimated dump size: NUM bytes +xfsdump: creating dump session media file 0 (media 0, file 0) +xfsdump: dumping ino map +xfsdump: dumping directories +xfsdump: dumping non-directory files +xfsdump: ending media file +xfsdump: media file size NUM bytes +xfsdump: dump size (non-dir files) : NUM bytes +xfsdump: dump complete: SECS seconds elapsed +xfsdump: Dump Status: SUCCESS +Listing of what files we have at level 7: +dumpdir: +5 addedfile6_mv +5 linkfile6_mv_1 +5 linkfile6_mv_2 +5 linkfile6_mv_3 +Dumping to file... +xfsdump -l7 -f DUMP_FILE -M stress_tape_media -L stress_065 SCRATCH_MNT +xfsdump: using file dump (drive_simple) strategy +xfsdump: level 7 incremental dump of HOSTNAME:SCRATCH_MNT based on level 6 dump begun DATE +xfsdump: dump date: DATE +xfsdump: session id: ID +xfsdump: session label: "stress_065" +xfsdump: ino map phase 1: skipping (no subtrees specified) +xfsdump: ino map phase 2: constructing initial dump list +xfsdump: ino map phase 3: pruning unneeded subtrees +xfsdump: ino map phase 4: estimating dump size +xfsdump: ino map phase 5: skipping (only one dump stream) +xfsdump: ino map construction complete +xfsdump: estimated dump size: NUM bytes +xfsdump: creating dump session media file 0 (media 0, file 0) +xfsdump: dumping ino map +xfsdump: dumping directories +xfsdump: dumping non-directory files +xfsdump: ending media file +xfsdump: media file size NUM bytes +xfsdump: dump size (non-dir files) : NUM bytes +xfsdump: dump complete: SECS seconds elapsed +xfsdump: Dump Status: SUCCESS +Listing of what files we have at level 8: +dumpdir: +5 addedfile6_mv +5 linkfile6_mv_1 +5 linkfile6_mv_2 +5 linkfile6_mv_3 +Dumping to file... +xfsdump -l8 -f DUMP_FILE -M stress_tape_media -L stress_065 SCRATCH_MNT +xfsdump: using file dump (drive_simple) strategy +xfsdump: level 8 incremental dump of HOSTNAME:SCRATCH_MNT based on level 7 dump begun DATE +xfsdump: dump date: DATE +xfsdump: session id: ID +xfsdump: session label: "stress_065" +xfsdump: ino map phase 1: skipping (no subtrees specified) +xfsdump: ino map phase 2: constructing initial dump list +xfsdump: ino map phase 3: pruning unneeded subtrees +xfsdump: ino map phase 4: estimating dump size +xfsdump: ino map phase 5: skipping (only one dump stream) +xfsdump: ino map construction complete +xfsdump: estimated dump size: NUM bytes +xfsdump: creating dump session media file 0 (media 0, file 0) +xfsdump: dumping ino map +xfsdump: dumping directories +xfsdump: dumping non-directory files +xfsdump: ending media file +xfsdump: media file size NUM bytes +xfsdump: dump size (non-dir files) : NUM bytes +xfsdump: dump complete: SECS seconds elapsed +xfsdump: Dump Status: SUCCESS +Look at what files are contained in the inc. dump + +restoring from df.level0 +Contents of dump ... +xfsrestore -f DUMP_FILE -t +xfsrestore: using file dump (drive_simple) strategy +xfsrestore: searching media for dump +xfsrestore: examining media file 0 +xfsrestore: dump description: +xfsrestore: hostname: HOSTNAME +xfsrestore: mount point: SCRATCH_MNT +xfsrestore: volume: SCRATCH_DEV +xfsrestore: session time: TIME +xfsrestore: level: 0 +xfsrestore: session label: "stress_065" +xfsrestore: media label: "stress_tape_media" +xfsrestore: file system id: ID +xfsrestore: session id: ID +xfsrestore: media id: ID +xfsrestore: using online session inventory +xfsrestore: searching media for directory dump +xfsrestore: reading directories +xfsrestore: 6 directories and 11 entries processed +xfsrestore: directory post-processing +xfsrestore: reading non-directory files +xfsrestore: table of contents display complete: SECS seconds elapsed +xfsrestore: Restore Status: SUCCESS + +dumpdir/addeddir3/addedfile4 +dumpdir/addeddir4/addedfile5 +dumpdir/addedfile0 +dumpdir/addedfile1 +dumpdir/addedfile2 +dumpdir/addedfile3 + +restoring from df.level1 +Contents of dump ... +xfsrestore -f DUMP_FILE -t +xfsrestore: using file dump (drive_simple) strategy +xfsrestore: searching media for dump +xfsrestore: examining media file 0 +xfsrestore: dump description: +xfsrestore: hostname: HOSTNAME +xfsrestore: mount point: SCRATCH_MNT +xfsrestore: volume: SCRATCH_DEV +xfsrestore: session time: TIME +xfsrestore: level: 1 +xfsrestore: session label: "stress_065" +xfsrestore: media label: "stress_tape_media" +xfsrestore: file system id: ID +xfsrestore: session id: ID +xfsrestore: media id: ID +xfsrestore: using online session inventory +xfsrestore: searching media for directory dump +xfsrestore: reading directories +xfsrestore: 2 directories and 6 entries processed +xfsrestore: directory post-processing +xfsrestore: reading non-directory files +xfsrestore: table of contents display complete: SECS seconds elapsed +xfsrestore: Restore Status: SUCCESS + + +restoring from df.level2 +Contents of dump ... +xfsrestore -f DUMP_FILE -t +xfsrestore: using file dump (drive_simple) strategy +xfsrestore: searching media for dump +xfsrestore: examining media file 0 +xfsrestore: dump description: +xfsrestore: hostname: HOSTNAME +xfsrestore: mount point: SCRATCH_MNT +xfsrestore: volume: SCRATCH_DEV +xfsrestore: session time: TIME +xfsrestore: level: 2 +xfsrestore: session label: "stress_065" +xfsrestore: media label: "stress_tape_media" +xfsrestore: file system id: ID +xfsrestore: session id: ID +xfsrestore: media id: ID +xfsrestore: using online session inventory +xfsrestore: searching media for directory dump +xfsrestore: reading directories +xfsrestore: 4 directories and 7 entries processed +xfsrestore: directory post-processing +xfsrestore: reading non-directory files +xfsrestore: table of contents display complete: SECS seconds elapsed +xfsrestore: Restore Status: SUCCESS + +dumpdir/addeddir6/addedfile4 +dumpdir/addedfile2 + +restoring from df.level3 +Contents of dump ... +xfsrestore -f DUMP_FILE -t +xfsrestore: using file dump (drive_simple) strategy +xfsrestore: searching media for dump +xfsrestore: examining media file 0 +xfsrestore: dump description: +xfsrestore: hostname: HOSTNAME +xfsrestore: mount point: SCRATCH_MNT +xfsrestore: volume: SCRATCH_DEV +xfsrestore: session time: TIME +xfsrestore: level: 3 +xfsrestore: session label: "stress_065" +xfsrestore: media label: "stress_tape_media" +xfsrestore: file system id: ID +xfsrestore: session id: ID +xfsrestore: media id: ID +xfsrestore: using online session inventory +xfsrestore: searching media for directory dump +xfsrestore: reading directories +xfsrestore: 3 directories and 11 entries processed +xfsrestore: directory post-processing +xfsrestore: reading non-directory files +xfsrestore: table of contents display complete: SECS seconds elapsed +xfsrestore: Restore Status: SUCCESS + +dumpdir/addeddir6/addedfile4 +dumpdir/addedfile0 +dumpdir/addedfile2 +dumpdir/linkfile0 +dumpdir/linkfile0_1 +dumpdir/linkfile2 +dumpdir/linkfile64 + +restoring from df.level4 +Contents of dump ... +xfsrestore -f DUMP_FILE -t +xfsrestore: using file dump (drive_simple) strategy +xfsrestore: searching media for dump +xfsrestore: examining media file 0 +xfsrestore: dump description: +xfsrestore: hostname: HOSTNAME +xfsrestore: mount point: SCRATCH_MNT +xfsrestore: volume: SCRATCH_DEV +xfsrestore: session time: TIME +xfsrestore: level: 4 +xfsrestore: session label: "stress_065" +xfsrestore: media label: "stress_tape_media" +xfsrestore: file system id: ID +xfsrestore: session id: ID +xfsrestore: media id: ID +xfsrestore: using online session inventory +xfsrestore: searching media for directory dump +xfsrestore: reading directories +xfsrestore: 3 directories and 7 entries processed +xfsrestore: directory post-processing +xfsrestore: reading non-directory files +xfsrestore: table of contents display complete: SECS seconds elapsed +xfsrestore: Restore Status: SUCCESS + +dumpdir/addedfile0 +dumpdir/linkfile0_1 +dumpdir/linkfile2 + +restoring from df.level5 +Contents of dump ... +xfsrestore -f DUMP_FILE -t +xfsrestore: using file dump (drive_simple) strategy +xfsrestore: searching media for dump +xfsrestore: examining media file 0 +xfsrestore: dump description: +xfsrestore: hostname: HOSTNAME +xfsrestore: mount point: SCRATCH_MNT +xfsrestore: volume: SCRATCH_DEV +xfsrestore: session time: TIME +xfsrestore: level: 5 +xfsrestore: session label: "stress_065" +xfsrestore: media label: "stress_tape_media" +xfsrestore: file system id: ID +xfsrestore: session id: ID +xfsrestore: media id: ID +xfsrestore: using online session inventory +xfsrestore: searching media for directory dump +xfsrestore: reading directories +xfsrestore: 2 directories and 5 entries processed +xfsrestore: directory post-processing +xfsrestore: reading non-directory files +xfsrestore: table of contents display complete: SECS seconds elapsed +xfsrestore: Restore Status: SUCCESS + +dumpdir/addedfile6 +dumpdir/linkfile6_1 +dumpdir/linkfile6_2 +dumpdir/linkfile6_3 + +restoring from df.level6 +Contents of dump ... +xfsrestore -f DUMP_FILE -t +xfsrestore: using file dump (drive_simple) strategy +xfsrestore: searching media for dump +xfsrestore: examining media file 0 +xfsrestore: dump description: +xfsrestore: hostname: HOSTNAME +xfsrestore: mount point: SCRATCH_MNT +xfsrestore: volume: SCRATCH_DEV +xfsrestore: session time: TIME +xfsrestore: level: 6 +xfsrestore: session label: "stress_065" +xfsrestore: media label: "stress_tape_media" +xfsrestore: file system id: ID +xfsrestore: session id: ID +xfsrestore: media id: ID +xfsrestore: using online session inventory +xfsrestore: searching media for directory dump +xfsrestore: reading directories +xfsrestore: 2 directories and 5 entries processed +xfsrestore: directory post-processing +xfsrestore: reading non-directory files +xfsrestore: table of contents display complete: SECS seconds elapsed +xfsrestore: Restore Status: SUCCESS + +dumpdir/addedfile6_mv +dumpdir/linkfile6_mv_1 +dumpdir/linkfile6_mv_2 +dumpdir/linkfile6_mv_3 + +restoring from df.level7 +Contents of dump ... +xfsrestore -f DUMP_FILE -t +xfsrestore: using file dump (drive_simple) strategy +xfsrestore: searching media for dump +xfsrestore: examining media file 0 +xfsrestore: dump description: +xfsrestore: hostname: HOSTNAME +xfsrestore: mount point: SCRATCH_MNT +xfsrestore: volume: SCRATCH_DEV +xfsrestore: session time: TIME +xfsrestore: level: 7 +xfsrestore: session label: "stress_065" +xfsrestore: media label: "stress_tape_media" +xfsrestore: file system id: ID +xfsrestore: session id: ID +xfsrestore: media id: ID +xfsrestore: using online session inventory +xfsrestore: searching media for directory dump +xfsrestore: reading directories +xfsrestore: 0 directories and 0 entries processed +xfsrestore: directory post-processing +xfsrestore: table of contents display complete: SECS seconds elapsed +xfsrestore: Restore Status: SUCCESS + + +restoring from df.level8 +Contents of dump ... +xfsrestore -f DUMP_FILE -t +xfsrestore: using file dump (drive_simple) strategy +xfsrestore: searching media for dump +xfsrestore: examining media file 0 +xfsrestore: dump description: +xfsrestore: hostname: HOSTNAME +xfsrestore: mount point: SCRATCH_MNT +xfsrestore: volume: SCRATCH_DEV +xfsrestore: session time: TIME +xfsrestore: level: 8 +xfsrestore: session label: "stress_065" +xfsrestore: media label: "stress_tape_media" +xfsrestore: file system id: ID +xfsrestore: session id: ID +xfsrestore: media id: ID +xfsrestore: using online session inventory +xfsrestore: searching media for directory dump +xfsrestore: reading directories +xfsrestore: 0 directories and 0 entries processed +xfsrestore: directory post-processing +xfsrestore: table of contents display complete: SECS seconds elapsed +xfsrestore: Restore Status: SUCCESS + +Do the cumulative restores + +restoring from df.level0 +Restoring cumumlative from file... +xfsrestore -f DUMP_FILE -r RESTORE_DIR +xfsrestore: using file dump (drive_simple) strategy +xfsrestore: searching media for dump +xfsrestore: examining media file 0 +xfsrestore: dump description: +xfsrestore: hostname: HOSTNAME +xfsrestore: mount point: SCRATCH_MNT +xfsrestore: volume: SCRATCH_DEV +xfsrestore: session time: TIME +xfsrestore: level: 0 +xfsrestore: session label: "stress_065" +xfsrestore: media label: "stress_tape_media" +xfsrestore: file system id: ID +xfsrestore: session id: ID +xfsrestore: media id: ID +xfsrestore: using online session inventory +xfsrestore: searching media for directory dump +xfsrestore: reading directories +xfsrestore: 6 directories and 11 entries processed +xfsrestore: directory post-processing +xfsrestore: restoring non-directory files +xfsrestore: restore complete: SECS seconds elapsed +xfsrestore: Restore Status: SUCCESS +ls -lRF restore_dir +dumpdir: +6 addeddir1/ +6 addeddir2/ +23 addeddir3/ +23 addeddir4/ +5 addedfile0 +5 addedfile1 +5 addedfile2 +5 addedfile3 +dumpdir/addeddir1: +dumpdir/addeddir2: +dumpdir/addeddir3: +5 addedfile4 +dumpdir/addeddir4: +5 addedfile5 + +restoring from df.level1 +Restoring cumumlative from file... +xfsrestore -f DUMP_FILE -r RESTORE_DIR +xfsrestore: using file dump (drive_simple) strategy +xfsrestore: searching media for dump +xfsrestore: examining media file 0 +xfsrestore: dump description: +xfsrestore: hostname: HOSTNAME +xfsrestore: mount point: SCRATCH_MNT +xfsrestore: volume: SCRATCH_DEV +xfsrestore: session time: TIME +xfsrestore: level: 1 +xfsrestore: session label: "stress_065" +xfsrestore: media label: "stress_tape_media" +xfsrestore: file system id: ID +xfsrestore: session id: ID +xfsrestore: media id: ID +xfsrestore: using online session inventory +xfsrestore: searching media for directory dump +xfsrestore: reading directories +xfsrestore: 2 directories and 6 entries processed +xfsrestore: directory post-processing +xfsrestore: restoring non-directory files +xfsrestore: restore complete: SECS seconds elapsed +xfsrestore: Restore Status: SUCCESS +ls -lRF restore_dir +dumpdir: +6 addeddir1/ +23 addeddir4/ +5 addedfile0 +5 addedfile1 +5 addedfile3 +dumpdir/addeddir1: +dumpdir/addeddir4: +5 addedfile5 + +restoring from df.level2 +Restoring cumumlative from file... +xfsrestore -f DUMP_FILE -r RESTORE_DIR +xfsrestore: using file dump (drive_simple) strategy +xfsrestore: searching media for dump +xfsrestore: examining media file 0 +xfsrestore: dump description: +xfsrestore: hostname: HOSTNAME +xfsrestore: mount point: SCRATCH_MNT +xfsrestore: volume: SCRATCH_DEV +xfsrestore: session time: TIME +xfsrestore: level: 2 +xfsrestore: session label: "stress_065" +xfsrestore: media label: "stress_tape_media" +xfsrestore: file system id: ID +xfsrestore: session id: ID +xfsrestore: media id: ID +xfsrestore: using online session inventory +xfsrestore: searching media for directory dump +xfsrestore: reading directories +xfsrestore: 4 directories and 7 entries processed +xfsrestore: directory post-processing +xfsrestore: restoring non-directory files +xfsrestore: restore complete: SECS seconds elapsed +xfsrestore: Restore Status: SUCCESS +ls -lRF restore_dir +dumpdir: +6 addeddir2/ +23 addeddir6/ +5 addedfile0 +5 addedfile2 +5 addedfile3 +dumpdir/addeddir2: +dumpdir/addeddir6: +5 addedfile4 + +restoring from df.level3 +Restoring cumumlative from file... +xfsrestore -f DUMP_FILE -r RESTORE_DIR +xfsrestore: using file dump (drive_simple) strategy +xfsrestore: searching media for dump +xfsrestore: examining media file 0 +xfsrestore: dump description: +xfsrestore: hostname: HOSTNAME +xfsrestore: mount point: SCRATCH_MNT +xfsrestore: volume: SCRATCH_DEV +xfsrestore: session time: TIME +xfsrestore: level: 3 +xfsrestore: session label: "stress_065" +xfsrestore: media label: "stress_tape_media" +xfsrestore: file system id: ID +xfsrestore: session id: ID +xfsrestore: media id: ID +xfsrestore: using online session inventory +xfsrestore: searching media for directory dump +xfsrestore: reading directories +xfsrestore: 3 directories and 11 entries processed +xfsrestore: directory post-processing +xfsrestore: restoring non-directory files +xfsrestore: restore complete: SECS seconds elapsed +xfsrestore: Restore Status: SUCCESS +ls -lRF restore_dir +dumpdir: +6 addeddir2/ +23 addeddir6/ +5 addedfile0 +5 addedfile2 +5 addedfile3 +5 linkfile0 +5 linkfile0_1 +5 linkfile2 +5 linkfile64 +dumpdir/addeddir2: +dumpdir/addeddir6: +5 addedfile4 + +restoring from df.level4 +Restoring cumumlative from file... +xfsrestore -f DUMP_FILE -r RESTORE_DIR +xfsrestore: using file dump (drive_simple) strategy +xfsrestore: searching media for dump +xfsrestore: examining media file 0 +xfsrestore: dump description: +xfsrestore: hostname: HOSTNAME +xfsrestore: mount point: SCRATCH_MNT +xfsrestore: volume: SCRATCH_DEV +xfsrestore: session time: TIME +xfsrestore: level: 4 +xfsrestore: session label: "stress_065" +xfsrestore: media label: "stress_tape_media" +xfsrestore: file system id: ID +xfsrestore: session id: ID +xfsrestore: media id: ID +xfsrestore: using online session inventory +xfsrestore: searching media for directory dump +xfsrestore: reading directories +xfsrestore: 3 directories and 7 entries processed +xfsrestore: directory post-processing +xfsrestore: restoring non-directory files +xfsrestore: restore complete: SECS seconds elapsed +xfsrestore: Restore Status: SUCCESS +ls -lRF restore_dir +dumpdir: +6 addeddir2/ +6 addeddir6/ +5 addedfile0 +5 addedfile3 +5 linkfile0_1 +5 linkfile2 +dumpdir/addeddir2: +dumpdir/addeddir6: + +restoring from df.level5 +Restoring cumumlative from file... +xfsrestore -f DUMP_FILE -r RESTORE_DIR +xfsrestore: using file dump (drive_simple) strategy +xfsrestore: searching media for dump +xfsrestore: examining media file 0 +xfsrestore: dump description: +xfsrestore: hostname: HOSTNAME +xfsrestore: mount point: SCRATCH_MNT +xfsrestore: volume: SCRATCH_DEV +xfsrestore: session time: TIME +xfsrestore: level: 5 +xfsrestore: session label: "stress_065" +xfsrestore: media label: "stress_tape_media" +xfsrestore: file system id: ID +xfsrestore: session id: ID +xfsrestore: media id: ID +xfsrestore: using online session inventory +xfsrestore: searching media for directory dump +xfsrestore: reading directories +xfsrestore: 2 directories and 5 entries processed +xfsrestore: directory post-processing +xfsrestore: restoring non-directory files +xfsrestore: restore complete: SECS seconds elapsed +xfsrestore: Restore Status: SUCCESS +ls -lRF restore_dir +dumpdir: +5 addedfile6 +5 linkfile6_1 +5 linkfile6_2 +5 linkfile6_3 + +restoring from df.level6 +Restoring cumumlative from file... +xfsrestore -f DUMP_FILE -r RESTORE_DIR +xfsrestore: using file dump (drive_simple) strategy +xfsrestore: searching media for dump +xfsrestore: examining media file 0 +xfsrestore: dump description: +xfsrestore: hostname: HOSTNAME +xfsrestore: mount point: SCRATCH_MNT +xfsrestore: volume: SCRATCH_DEV +xfsrestore: session time: TIME +xfsrestore: level: 6 +xfsrestore: session label: "stress_065" +xfsrestore: media label: "stress_tape_media" +xfsrestore: file system id: ID +xfsrestore: session id: ID +xfsrestore: media id: ID +xfsrestore: using online session inventory +xfsrestore: searching media for directory dump +xfsrestore: reading directories +xfsrestore: 2 directories and 5 entries processed +xfsrestore: directory post-processing +xfsrestore: restoring non-directory files +xfsrestore: restore complete: SECS seconds elapsed +xfsrestore: Restore Status: SUCCESS +ls -lRF restore_dir +dumpdir: +5 addedfile6_mv +5 linkfile6_mv_1 +5 linkfile6_mv_2 +5 linkfile6_mv_3 + +restoring from df.level7 +Restoring cumumlative from file... +xfsrestore -f DUMP_FILE -r RESTORE_DIR +xfsrestore: using file dump (drive_simple) strategy +xfsrestore: searching media for dump +xfsrestore: examining media file 0 +xfsrestore: dump description: +xfsrestore: hostname: HOSTNAME +xfsrestore: mount point: SCRATCH_MNT +xfsrestore: volume: SCRATCH_DEV +xfsrestore: session time: TIME +xfsrestore: level: 7 +xfsrestore: session label: "stress_065" +xfsrestore: media label: "stress_tape_media" +xfsrestore: file system id: ID +xfsrestore: session id: ID +xfsrestore: media id: ID +xfsrestore: using online session inventory +xfsrestore: searching media for directory dump +xfsrestore: reading directories +xfsrestore: 0 directories and 0 entries processed +xfsrestore: directory post-processing +xfsrestore: restoring non-directory files +xfsrestore: restore complete: SECS seconds elapsed +xfsrestore: Restore Status: SUCCESS +ls -lRF restore_dir +dumpdir: +5 addedfile6_mv +5 linkfile6_mv_1 +5 linkfile6_mv_2 +5 linkfile6_mv_3 + +restoring from df.level8 +Restoring cumumlative from file... +xfsrestore -f DUMP_FILE -r RESTORE_DIR +xfsrestore: using file dump (drive_simple) strategy +xfsrestore: searching media for dump +xfsrestore: examining media file 0 +xfsrestore: dump description: +xfsrestore: hostname: HOSTNAME +xfsrestore: mount point: SCRATCH_MNT +xfsrestore: volume: SCRATCH_DEV +xfsrestore: session time: TIME +xfsrestore: level: 8 +xfsrestore: session label: "stress_065" +xfsrestore: media label: "stress_tape_media" +xfsrestore: file system id: ID +xfsrestore: session id: ID +xfsrestore: media id: ID +xfsrestore: using online session inventory +xfsrestore: searching media for directory dump +xfsrestore: reading directories +xfsrestore: 0 directories and 0 entries processed +xfsrestore: directory post-processing +xfsrestore: restoring non-directory files +xfsrestore: restore complete: SECS seconds elapsed +xfsrestore: Restore Status: SUCCESS +ls -lRF restore_dir +dumpdir: +5 addedfile6_mv +5 linkfile6_mv_1 +5 linkfile6_mv_2 +5 linkfile6_mv_3 + +Do the ls comparison +Comparing ls of FS with restored FS at level 0 +Files TMP.ls.0 and TMP.restorals.0 are identical + +Comparing ls of FS with restored FS at level 1 +Files TMP.ls.1 and TMP.restorals.1 are identical + +Comparing ls of FS with restored FS at level 2 +Files TMP.ls.2 and TMP.restorals.2 are identical + +Comparing ls of FS with restored FS at level 3 +Files TMP.ls.3 and TMP.restorals.3 are identical + +Comparing ls of FS with restored FS at level 4 +Files TMP.ls.4 and TMP.restorals.4 are identical + +Comparing ls of FS with restored FS at level 5 +Files TMP.ls.5 and TMP.restorals.5 are identical + +Comparing ls of FS with restored FS at level 6 +Files TMP.ls.6 and TMP.restorals.6 are identical + +Comparing ls of FS with restored FS at level 7 +Files TMP.ls.7 and TMP.restorals.7 are identical + +Comparing ls of FS with restored FS at level 8 +Files TMP.ls.8 and TMP.restorals.8 are identical + diff --git a/common.dump b/common.dump index 4f89b6f5..88651c50 100644 --- a/common.dump +++ b/common.dump @@ -296,10 +296,12 @@ _cleanup() # _stable_fs() { + _saveddir=`pwd`; cd / umount $SCRATCH_MNT >>$seq.full ||\ _error "unmount failed" mount -t xfs $SCRATCH_DEV $SCRATCH_MNT >>$seq.full ||\ _error "mount failed" + cd $_saveddir } # diff --git a/group b/group index 4b006b22..b064188d 100644 --- a/group +++ b/group @@ -119,3 +119,4 @@ ioctl nathans@sgi.com 062 attr auto 063 xfsdump auto 064 xfsdump auto +065 xfsdump auto