Hi,
today I did some restore tests (do you really trust your backups?)
The XFS filesystem /var/spool/imap (Cyrus IMAP spooldir) was backed up
in
level 0 on July, 2nd
1 3rd
1 4th
2 5th
2 6th
3 7th
3 8th.
I restored from tape to /mnt/junk the xfsdump images
level 0 of July, 2nd
1 4th
2 6th
3 8th.
Then I used tar to compare the two directory trees:
# (cd /var/spool/imap && tar cf - .) | tar df -
[...]
tar: ./user/be/Sent/xy/290.: Warning: Cannot stat: No such file or
directory
[...]
Lots of files were missing (mostly due to reorganisation, aka moving
mails to different folders). I traced the history of this particular
file user/be/Sent/xy/290.
It's not in the restored subtree:
# ls -l user/be/Sent/xy/29*
-rw------- 1 cyrus root 1243 Nov 30 2000
user/be/Sent/xy/29.
-rw------- 1 cyrus root 775 Jul 5 15:52
user/be/Sent/xy/291.
But it's still in the backed up spooldir:
# ls -l /var/spool/imap/user/be/Sent/xy/29*
-rw------- 1 cyrus root 1243 Nov 30 2000
/var/spool/imap/user/be/Sent/xy/29.
-rw------- 2 cyrus root 885 Jul 4 18:47
/var/spool/imap/user/be/Sent/xy/290.
-rw------- 2 cyrus root 775 Jul 5 15:52
/var/spool/imap/user/be/Sent/xy/291.
What did xfsrestore do to my holy IMAP spool???
Amanda's index tells me this file was backed up on July 5th and 6th in
level 2:
$ zgrep Sent/xy/290 _var_spool_imap/200107*
_var_spool_imap/20010705_2.gz:/user/be/Sent/xy/290.
_var_spool_imap/20010706_2.gz:/user/be/Sent/xy/290.
Then I restored that particular subtree user/be/Sent/xy with xfsrestore
debug mode:
# (/usr/sbin/amrestore -p $TAPE ente imap | /usr/sbin/xfsrestore -r -s
user/be/Sent/xy -v trace - .) > xfsrestore.debug.0
# (/usr/sbin/amrestore -p $TAPE ente imap | /usr/sbin/xfsrestore -r -v
trace - .) > xfsrestore.debug.1
# (/usr/sbin/amrestore -p $TAPE ente imap | /usr/sbin/xfsrestore -r -v
trace - .) > xfsrestore.debug.2
# (/usr/sbin/amrestore -p $TAPE ente imap | /usr/sbin/xfsrestore -r -v
trace - .) > xfsrestore.debug.3
After applying level 2, the file was in the restored subtree:
# ls -l user/be/Sent/xy/29*
-rw------- 1 cyrus root 1243 Nov 30 2000
user/be/Sent/xy/29.
-rw------- 1 cyrus root 885 Jul 4 18:47
user/be/Sent/xy/290.
After applying level 3, it was missing:
# ls -l user/be/Sent/xy/29*
-rw------- 1 cyrus root 1243 Nov 30 2000
user/be/Sent/xy/29.
-rw------- 1 cyrus root 775 Jul 5 15:52
user/be/Sent/xy/291.
xfsrestore.debug.3 told me xfsrestore had deleted user/be/Sent/xy/290.:
[...]
/usr/sbin/xfsrestore: rename nondir user/be/Sent/xy/290. to
orphanage/9074670.1
/usr/sbin/xfsrestore: unlink nondir orphanage/9074670.1
[...]
/usr/sbin/xfsrestore: restoring user/be/Sent/xy/291. (9074676 0)
/usr/sbin/xfsrestore: restoring regular file ino 9074676
user/be/Sent/xy/291.
/usr/sbin/xfsrestore: truncating user/be/Sent/xy/291. from 0 to 775
/usr/sbin/xfsrestore: restore complete: 76 seconds elapsed
What's going on here? I'm using xfsdump-1.0.9-0.
|