Veeam: What’s New in Veeam Backup & Replication v10 – XFS (Reflink) and Fast Clone Repositories in Veeam

Greetings friends, a few years ago I told you all the advantages of using Microsoft’s ReFS file system to accompany it to our Veeam as a Backup Repository where the synthetic full is generated every week.

Veeam has been recommending for a long time to use this technology to make the disk operations that are made when a synthetic is generated really fast, so fast that Veeam marks it in its GUI as [fast clone].

So far, everything is wonderful, and I’m sure you are already using it in your Datacenter, but one of the new features that Veeam Backup & Replication includes in v10, is the possibility of using Linux-based repositories formatted in XFS with the Reflink flag, which is basically the same as ReFS.

Officially supported in Ubuntu 18.04 LTS, experimental in the rest of the distributions.

XFS (Reflink) explained in conjunction with Veeam Backup & Replication

If we want to take a closer look at how XFS works with Reflink enabled. For example, let’s think of a case with NTFS, where we have the typical full copy of each week, the incremental ones and the synthetic full backup, this would look like this in NTFS:

If we use XFS with Reflink enabled, we can see that the full synthetic copy instead of having to move all the incremental blocks to produce the new synthetic full, what it does is use the Reflink attribute of XFS to use the references to them to get a fast clone, which makes the copy much faster, and takes up less disk space.
This way, we can safely say that using XFS repositories with Reflink enabled, will allow us to reduce the size of our synthetic copies, and get them to go faster.

How to enable XFS (Reflink) in Ubuntu 18.04 LTS

First of all, mention that the reflink attribute of XFS is only found in modern kernel versions, for example Ubuntu 16.04 or earlier is not available, so in this case I recommend you to use Ubuntu 18.04 or any other modern system.

Operating System Installation

We will rely on the step-by-step installation of Ubuntu Server 18.04 LTS the following video:

Once we have everything up and running, we’ll give this Linux server an extra disk.

Command to Enable XFS (reflink) in Ubuntu 18.04 LTS

Once we have added to the disk, we can check that everything is ok if we launch the command lshw -class disk -class storage -short, which will show us something similar to this, watch out for my sdb which has 500GB

We will now format this entire disk with XFS format, and with the parameters that Veeam needs to execute the fast-clone, which are of course reflink and the activated CRC:

The result of the command has to be something similar to this, where we are shown that the CRC is activated, just like reflink:

All that’s left is to mount this new album in a folder, which we have to create:

If we do a simple df -hT we can see that everything is correct, as you see, for my Linux Operating System I use EXT4 and for my repository I use XFS (500GB) with the relevant attributes:

Note: Obviously I recommend you to add this new album to your fstab so that it is always mounted, we are going to know which is the UUID of our album, for it we launch the command blkid /dev/YOURDISK:

Now we will edit the file /etc/fstab in the following way, easier than flirting with vi or nano, although you could also, you see that I put my UUID and my route where I want it to be mounted:

We’ve got everything! Let’s throw some cool tests.

Check XFS (Reflink) on Ubuntu 18.04 LTS

There are several ways we can check how this technology works, in case the diagram above wasn’t clear to you, let’s see them.

I will create a silly file with 10GB of disk space, it can be less, change the 10240 by the number you want, in my case it took a while:

If I do a df -h now, I see that I have 14GB occupied 4GB of metadata and the new 10GB I created:

I’m going to launch a copy of this same file using the reflink parameter, it will look like this with its result:

An ls -hsl tells me, of course, that I now have 20GB of disk space consumed, 10GB for each file:

However, the command to see the disk space consumption has not grown a bit:

Everything fantastic so far, I hope. Let’s see much more in detail what’s going on, with the command filefrag -v FILEONE FILETWO we can see the following:

What’s all this? Well, we can see that they have the same extent, and also that they are in the same physical position inside the disk, which is basically what I was telling you in the diagram above, which doesn’t write anything new, they just reference and use the same block.

Creating a Veeam Repository for XFS (Reflink)

Once we have our Ubuntu 18.04 with XFS (Reflink) perfectly configured as I mentioned before, it’s time to add the Repository in the traditional way, in Backup Infrastructure – Add Repository

We will select that the Repository is of type Direct attached storage:

And we will select Linux now in this section: We will select the machine with Ubuntu 18.04 LTS, with its credentials and we can even click on populate to see the available volumes:

We will select now the folder inside the volume where we want to save the backups, also, we will be able to see an additional check called “Use fast cloning on XFS volumes” we can click on Advanced to see that we don’t have anything marked:

Finally, we will select the Mount Server and the path for vPowerNFS:

Configuring the Veeam Backup Jobs correctly for Veeam Repositories with XFS format (Reflink)

Once we have the new Veeam Backup Repository ready and configured following the previous steps, it’s time to create copy jobs to this new repository, let’s go.

I have to mention that the recommended way to use XFS (Reflink) repositories with Veeam is using synthetic backups, so we will go to the Storage tab in this copy job, we will select the Backup Repository, in my case I save a complete string of jobs (a full and its synthetic incrementals) and the rest of the archiving I do Backup Copy. We will click on Advanced:

We will select the option Incremental, the checkbox of create synthetic full backup, and the day we want, usually because it takes time and resources is better to do it during the weekend:

Veeam includes a task to protect tasks against data corruption, especially useful in Repositories with XFS (Reflink), although XFS already has its own technology for the same, I recommend enabling it in the backup job, which does not hurt either:

Once we launch the copies, when we get to the day when the synthetic full backup is done, we will be able to see if everything is correct that Veeam is making use of XFS (reflink) fast clone technology, and that the time to complete the operation is only 17 seconds in my case, in your cases, it will vary, but for sure it is much higher performance than if you do it over NTFS or another format that is not using fast-clone:

Testing the theory in our Veeam Backup Repository on XFS (Reflink)

We’ve seen a lot of theory in this post, now that we have a full synthetic copy, we can see the name in Veeam:

Let’s check how many of the blocks in this file are shared and come from the incremental, all of which say shared:

Furthermore, if we compile check again space we are using in disk:

And compared to what our files actually weigh, we can see the significant disk savings

Just friends, remember that you can download Veeam Backup & Replication from the following link:

Must-read Links

I will leave here a few really interesting links to bear in mind:

Author: jorgeuk

Father, writing in https://www.jorgedelacruz.es and https://jorgedelacruz.uk Blogger, Systems Engineer @veeam - vExpert 2014/2020 & NTC 2018/19

2 Thoughts

  1. Hi Jorge,

    Cool stuff here, but one thing I cannot find in Veeam site is the sizing recommended for using Linux XFS with Reflink, can you help sort this out? as per Refs its recommended 1GB RAM per 1TB, But nothing is mentioned for XFS with Reflink.

    Regards

    Pedro

  2. Hello Pedro,
    There is not much information on the Internet about it. I will like to think that it will tend to consume some less RAM than ReFS, as it does use 4K blocks, but I will keep it to 1TB/1GB RAM just in case, and monitor it with Grafana or similars.

    Let me know if you find some information, I couldn’t and I was looking for days on this.

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.