Analyse XFS space savings with reflink

Analyse XFS space savings with reflink

When backing up on XFS repositories for example with Veeam Backup&Replication, XFS feature reflink can be used for Fast Cloning. I wrote already a post about checking Microsoft ReFS space savings. Now I want to show some basics to check XFS savings too.

To check space savings on repository layer go to the repository directory and run: ls -lhs

You can see the size of each file and the total size of all files. If there a way to much files, run ls -lhs | grep total

Compare this to the size allocated on the volume. To show this, run df -h

In this example you see space savings of: (86 – 35) = 51G

Another way is the use the command xfs_bmap. It works on file-level and is very technical. I am still not sure to interpret all output correctly. At least it can show, reflink works!

To show all extents of a file, this command can be used:  xfs_bmap -e -l -p -v -v -v filename. Here also additional information like a legend is displayed.

I made a small script to show the size of all shared extents of all *.vbk-files. But do not overstrain it, its experimental.

for f in *.vbk
  echo "File $f size of shared extends:"
  xfs_bmap -v $f | grep -v 100000 | awk '{print $6}' | grep -Eo '[0-9]{1,7}' | paste -sd+ | bc  | awk '{print $1*4096/1024/1024/1024}'

Leave a Reply

Your email address will not be published. Required fields are marked *