Setting up repository servers for success
A repository server is a storage location for your backups, so setting them up correctly the first time will ensure that 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/
Some things to consider when setting up a repository are the following:
- ReFS/XFS: With Windows 2016/2019, 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, a 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 1 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 2 cores and 8 GB of RAM.
When you calculate out the sizing requirements, you need to take into account your proxy servers and the amount of CPUs configured. You then need to use a 3:1 ratio for the core count on a repository server:
Example: If your proxy server was configured with 8 CPUs, you would then need to configure the repository server with 2 CPUs based on this rule of 3:1. To configure the RAM, you multiply the CPU count by four, ending up with 8 GB of RAM.
When you use the Windows ReFS filesystem as your repository, you need to consider the overhead required for the filesystem and be sure to add another 0.5 GB of RAM per terabyte of ReFS.
Setting up your task limits for a repository server is different to a proxy server due to the way tasks are consumed. The setting chosen will be handled differently:
- Per-VM Backup Files: When selected, this creates a backup chain per VM located in a job. Therefore, if the backup job has 10 virtual machines, then it will consume 10 repository tasks as well as 10 proxy tasks.
- No Per-VM Selection: The backup job consumes one repository task because all VM data gets written to the same backup file, and the proxy task will remain the same with one task per each virtual disk.
The task limits can be viewed at the following link: https://helpcenter.veeam.com/docs/backup/vsphere/limiting_tasks.html?ver=100.
When setting up a repository for the first time, you can set the task limit as follows:
Important note
When you limit the number of tasks per repository, and you have jobs with many virtual machines requiring backup, 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 to test all your components and resources available for your backup infrastructure.
You should, after this section, be able to choose which type of filesystem for your repository and also size it correctly based on CPU and RAM. We also discussed the per-VM versus no per-VM methods. Now we will use this knowledge to tie this into creating a scale-out repository.