On Thu, Oct 30, 2014 at 11:07:21AM +0800, Tommy Wu wrote:
> I just create a x86-64 VM (using VirtualBox 4.3.18, under windows 8).
> Install Debian jessie on it. Create a test partition in LVM for testing.
> (so I think it's not hardware issue here)
> test procedure:
> 1. mkfs.xfs the 1st partition in LVM
> 2. mount the 1st partition
> 3. extract linux-3.17.tar.xz to the partition
> 4. xfsdump the 1st partition
> 5. mkfs.xfs the 2nd partition in LVM
> 6. mount the 2nd partition
> 7. xfsrestore the dump file to 2nd partition
> 8. compare the file/directory in 2 partitions.
Partition sizes are roughly a 5GB source and 10GB destination.
So there's this many files in the fs:
> xfsrestore: 3054 directories and 50556 entries processed
OK, so on 3.18-rc2:
> root@debian:/mnt/xfsdump# mount /dev/debian/xfsrestore /mnt/xfsrestore
> root@debian:/mnt/xfsdump# cd /mnt/xfsrestore/
> root@debian:/mnt/xfsrestore# xfsdump -l 0 -o -p 300 -J -F -M test -L test -
> /mnt/xfsdump | gzip -qv > /mnt/xfsrestore/xfsdump.gz
> xfsdump: media file size 575648352 bytes
> xfsdump: dump size (non-dir files) : 560258760 bytes
These are a handful of bytes different.
> xfsdump: dump complete: 21 seconds elapsed
> xfsdump: Dump Status: SUCCESS
> root@debian:/mnt/xfsrestore# ls -la
> total 120680
> drwxr-xr-x 2 root root 23 Oct 30 10:48 .
> drwxr-xr-x 4 root root 4096 Oct 30 10:37 ..
> -rw-r--r-- 1 root root 123569739 Oct 30 10:48 xfsdump.gz
> root@debian:/mnt/xfsrestore# cat /mnt/xfsrestore/xfsdump.gz | gzip -dqv |
> xfsrestore -p 300 -J -t - | grep xfsrestore
and the test shows:
> xfsrestore: reading directories
> xfsrestore: 2035 directories and 33045 entries processed
A thousand less directories and 20000 less files, which doesn't make
much sense for a dump that has a few bytes difference in size.
So, I've done almost exactly the same test locally (I used the
3.18-rc2 tarball) and on both the upstream 3.18-rc2 kernel and my
current xfs-fixes-for-3.18-rc3 branch I can't reproduce your
$ find /mnt/test -type d |wc -l
$ find /mnt/test |wc -l
$ zcat dump.gz | sudo xfsrestore -p 300 -J - . |grep xfsrestore
xfsrestore: reading directories
xfsrestore: 3080 directories and 51068 entries processed
xfsrestore: directory post-processing
xfsrestore: restoring non-directory files
xfsrestore: restore complete: 7 seconds elapsed
xfsrestore: Restore Status: SUCCESS
$ find /mnt/scratch -type d |wc -l
$ find /mnt/scratch |wc -l
$ ls /mnt/scratch
Which shows that it's working just fine. I've tried cold cache
dumps. I've tried crc enabled filesystems, I've tried a bunch of
random permutations, but I cannot get dump/restore to do what you
are seeing it do. Whatever problem you are seeing is specific to
Hmmm - can you run 'ldd xfsdump' and 'ldd xfsrestore' and paste the
output for me?
Can you also please run a full test again on a kernel built from the
current xfs-fixes-for-3.18-rc3 branch, with full dump/restore debug
enabled and send me the output? i.e.
$ xfsdump -v debug ...
$ xfsrestore -v debug,tree=nitty ...
They ar going to produce a lot of output, so please capture it to
files rather than trying to cut/paste output to an email.