xfs
[Top] [All Lists]

Re: How to copy files with preserving reflinks ?

To: xfs@xxxxxxxxxxx
Subject: Re: How to copy files with preserving reflinks ?
From: Prasanna Kumar Kalever <pkalever@xxxxxxxxxx>
Date: Fri, 26 Feb 2016 02:31:34 -0500 (EST)
Cc: Brian Foster <bfoster@xxxxxxxxxx>, Dave Chinner <dchinner@xxxxxxxxxx>
Delivered-to: xfs@xxxxxxxxxxx
In-reply-to: <957291997.53773945.1456468677495.JavaMail.zimbra@xxxxxxxxxx>
References: <957291997.53773945.1456468677495.JavaMail.zimbra@xxxxxxxxxx>
Thread-index: 5ens2e3ynh2AwTpa+0zLCF2xrhtXAeQq870V
Thread-topic: How to copy files with preserving reflinks ?
On Friday, February 26, 2016 12:07:57 PM, Prasanna Kumar Kalever wrote:
> Hi,
> 
> I have a VM file with reflinks to it, the reflinks were taken every night.
> 
> My question is how to copy/migrate all these file to a different xfs
> partition (which also have reflink enabled) without loosing the reflinks
> property, else may lead to copy all the shared blocks per file which will
> cost large disk space.
> 
> I have tried to copy them using rsync as below:
> 
> On Partition 1:
> 
> ActualFile.img -- [1] Actaul Size 10GB + [2] Append 2GB + [3] Append 1GB
> ReflinkCopy1   -- [1] Actual Size  0  -- Shared blocks 10GB
> ReflinkCopy2   -- [2] Actual Size  0  -- Shared blocks 12GB
> 
> 
> I have first rsync the files into Partition 2 as below:
> 
> # cd PARTITION2
> 
> # rsync /PARTITION1/ReflinkCopy1 ActualFile.img
> # du -sh ActualFile.img
> 10GB
> # cp --reflink=always ActualFile.img
> 
> # rsync /PARTITION1/ReflinkCopy2 ActualFile.img
> # du -sh ActualFile.img
> 12GB
> # cp --reflink=always ActualFile.img
> 
> # rsync  /PARTITION1/ActualFile.img ActualFile.img
> 
> But the size used by partition was 35GB (verified using df -h) instead of
> 13GB

Hurreyyy!!!!.... err..
While experimenting with rsync found "--no-whole-file" && "--inplace" , with 
these options it seems to be working


#rsync --no-whole-file --inplace --human-readable --stats reflinks/file  
../mount2/reflinks/file 

Number of files: 1 (reg: 1)
Number of created files: 0
Number of deleted files: 0
Number of regular files transferred: 1
Total file size: 69.63M bytes
Total transferred file size: 69.63M bytes
Literal data: 8.20M bytes
Matched data: 61.43M bytes
File list size: 0
File list generation time: 0.001 seconds
File list transfer time: 0.000 seconds
Total bytes sent: 8.23M
Total bytes received: 54.95K

But I still need to repeat the process of taking reflinks multiple times on new 
partition (per file).

Did not had luck to figure-out reflink related tools (du, ls ...)

-Prasanna

> 
> 
> 
> Also, where can I find reflink related tools ?
> 
> 
> Thanks,
> -Prasanna â
> 
> 
> 

<Prev in Thread] Current Thread [Next in Thread>