Veeam Backup Methods Explained
Updated: Aug 23, 2021
One of the more frequent questions I'm asked from Veeam users is, "Should we do forever forward incremental or forward incremental with periodic full?" This question quickly leads down a path to, "Should we do an active full or synthetic full?" Both of these are great questions but require context and background information to answer. The goal of this post is to arm you with the proper tools to know what's best for your environment.
First, it's important to understand the three backup methods within Veeam; forward incremental, forever forward incremental, and reverse incremental. Forever forward incremental is 3 I/Os per backup on the repository because on every backup a merge process takes place to combine the full backup file (.VBK) with the oldest incremental file (.VIB). The same is true for reverse incremental. The only difference is that the VBK in reverse incremental is always your latest recovery point, allowing for faster restores from the most recent point in time. Forward incremental on the other hand is 1 write I/O which allows for much faster backups. With the power of forward incremental comes great responsibility though. Weekly synthetic or active fulls must be ran. The benefit of having a weekly full to reference increases restore performance, whereas forever forward incremental can have poor restore performance if it's rehydrating data from a full taken weeks ago. Below is a table that is a good quick reference to understand the impact each method has on the backup repository.
The key takeaway here is that without fast performing destination storage and with a retention north of 14 days, reverse/forever forward incremental are not sustainable backup methods. The reason being is every backup requires 3 I/Os and restore performance can be impacted if the full being rehydrated is from weeks ago. Here is a nice cheat sheet though if you're like me and words are too hard to process.
Hopefully at this point, I've given you the proper ammunition to decide what backup method makes sense for your business. If you came to the conclusion that forward incremental is the backup method of choice the next questions is, "Should we do active fulls or synthetic fulls." The key benefit synthetic fulls has over active full is that it takes all the burden off your important compute resources. Synthetic full simply takes all the incrementals in your backup chain and merges them into a full backup file. When you add in fast cloning technology with Windows ReFS or Linux XFS this becomes a great option because rather than creating one giant new VBK, fast cloning technology creates a VBK that is a pointer file to the previous incrementals. This can be a huge space saver on your backup repository.
With the power of synthetic fulls and fast cloning technology comes great responsibility though. As time goes on fast cloning finds less space savings because if the last active full was taken months or even years ago the newly created synthetic full is referencing blocks that are no longer applicable. That's why the answer to the question is, "Both if you're leveraging ReFS or XFS." Luckily, Veeam makes it very easy to achieve this in the job settings. You can specify weekly synthetics and bi-monthly active fulls.
Lastly, I'll leave you with a nice illustration on what each backup chain looks like depending on the backup method with a 7 day retention. In this scenario periodic fulls might not be needed with only a 7 day retention. The furthest VBK Veeam will need to reference in forever forward incremental is 7 days ago, whereas forward incremental with periodic fulls is going to take up twice as much space on your repository, since two full 7 day backups chains are required before Veeam can delete backup files. In the case of a 30 day retention though, forever forward might create poor restore performance with the latest full always being 30 days ago. This is when forward incremental with periodic fulls is recommended with a combination of both synthetic and active fulls with Windows ReFS or Linux XFS.