How to set up Repository Servers for success
A Repository Server is a storage location for your backups, so setting them up right the first time will ensure you have the best performance. When creating a repository, it is always a good idea to follow the Veeam Backup & Replication best practices: https://bp.veeam.com/vbr/VBP/2_Design_Structures/D_Veeam_Components/D_backup_repositories/.
The following are some things to consider when setting up a repository:
- ReFS/XFS: With Windows 2019/2022, ensure you format your repository drive(s) as ReFS with 64k block sizing to take advantage of space savings for Synthetic Fulls and GFS. For Linux, you need to set up XFS and Reflink to take advantage of space-saving and Fast Cloning. In both of these situations, storage efficiency will be realized for Synthetic Full backups. This efficiency prevents duplication but is not deduplication.
- Sizing: Ensure that you adhere to the Veeam Backup & Replication recommendation of one core and 4 GB of RAM per repository task. Just like Proxy Servers, your Repository servers have task limits as well. At a minimum, you need two cores and 8 GB of RAM.
When calculating the sizing requirements, you need to consider your Proxy Servers and the amount of CPU configured; you then need to use a 3:1 ratio for the core count on a Repository Server.
Example: Your Proxy Server is configured with 8 CPUs; you need to configure the Repository Server with 2 CPUs based on this rule of 3:1. To configure the RAM, you must multiply the CPU count by four to end up with 8 GB of RAM.
When you use the Windows ReFS filesystem as your repository, you must consider the overhead required for the filesystem and add another 0.5 GB of RAM per terabyte of ReFS.
Setting up your task limits for a Repository Server differs from a Proxy server due to how tasks get consumed. The setting you choose will be handled differently:
- Per-VM Backup Files: When selected in Veeam Backup & Replication v12, this creates a backup chain per VM located in a job; rather than having a chain for all VMs together, they get separated, so each VM has its chain with a VBM, a VBK, and VIB files. Therefore, if the backup job has 10 virtual machines, it will consume 10 repository tasks and 10 proxy tasks.
For comparison, here’s an example of a v11a backup chain with one VBM (metadata file), the initial VBK (full backup file), and the VIB file (incremental backup file):
Figure 1.20 – Per VM backup chain in v11
Now, here’s an example of the new Per VM backup chain from v12 where each VM will have separate VBM, VBK, and VIB files:
Figure 1.21 – Per VM backup chain in v12
- No Per-VM Selection: The backup job consumes one repository task, and the proxy task will remain the same with one task per virtual disk.
Note
To find out more about task limits, go to https://helpcenter.veeam.com/docs/backup/vsphere/limiting_tasks.html?ver=120.
When you’re setting up a repository for the first time, you can set the task limit:
Figure 1.22 – Repository task limit
Important note
When you limit the number of tasks per repository and have jobs with many virtual machines requiring backups, this will be one of the bottlenecks in your environment. You also need to ensure that you do not set the limit too high, as that could overwhelm your storage, causing performance degradation. Make sure you test all your components and the resources available for your backup infrastructure.
After completing this section, you should be able to choose which type of filesystem you wish to use for your repository and size it correctly based on your CPU and RAM. We also discussed the per-VM versus no per-VM methods, including the new v12 per-VM chains and how they get created. We will use this knowledge to tie this into creating a Scale-Out Backup Repository.