Veeam Best Practices
This guide outlines the best practices for using Datacore Swarm as a capacity tier for Veeam. Emphasis has been placed on Veeam Scale-out Backup Repository (SOBR) capacity planning, configuration, and workflow optimization.
Note that these practices are routinely updated to reflect changes associated with both Veeam and Datacore Swarm. It is also recommended to reference Veeam's published guidelines as outlined here: Repository Design
Use Scale-Out Backup Repository not Direct to S3 mode
As an administrator you need to have the ability to put a backup repository into maintenance mode, ( for example in the event of a bucket re-shard event ) , this is only possible with a Scale-Out backup repository configuration.
SOBR supports setting S3 backup repository as a performance tier, in combination with a backup-copy job this would fall under 3-2-1 backup rule and not rely on a single backup tier.
Comply with the 3-2-1 backup rule do not rely on a single backup tier
This rule is a robust guideline for data protection, ensuring redundancy, resilience, and the ability to recover data even in the face of unexpected events or disasters.
What is the 3-2-1 backup rule?
Use Multiple SOBR
Currently, Veeam supports only one object storage bucket per SOBR configuration. We recommend using multiple SOBRs pointing to different buckets and storage domains per client and workload type (VB365 Backup, Archive backup jobs etc.).
This will allow you to take advantage of “Per domain indexing” , where we create separate Elasticsearch indices per storage domain.
Caution
To use a SOBR a Veeam Enterprise (up to 2 SOBR) or an Enterprise Plus (unlimited SOBRs) license is required.
For best performance, we recommend using a performance tier in a SOBR as primary target.
Another advantage of multiple SOBR is that you can set different retention policies per SOBR.
Backup Job Storage Settings
Veeam allows you to configure a block size per Backup Job. The block size affects deduplication and incremental backup size. By default, blocks are compressed and the compression ratio is about 50%.
The smaller the block size, the more calls are needed to the object storage to upload the data. DataCore recommends to use “Local Target (large blocks)”. This is equal to a 4MB (=2MB after compression) object size. Performance Tier storage requirements depend on this setting, too.
Consult with Veeam or your partner before setting this.
Caution
Be aware that backup copy jobs inherit the Storage optimization of the backup job. You will not be able to modify it on “backup copy” type jobs.
Note
For VBR, setting the block size to 8MB for best performance (up to 3.5x faster), can be enabled via the following registry key:
UIShowLegacyBlockSize = 1 ( default is 0 )
Path: HKEY_LOCAL_MACHINE\SOFTWARE\Veeam\Veeam Backup and Replication\
Type: DWORD
See Veeam V12 Guidelines for more details on how to set the storage block size.
SOBR Offloading
For the SOBR offloading the aggregated number of concurrent tasks of all performance tier extents is used. If an extent has no limit on concurrent tasks, SOBR offload uses an unlimited number of tasks (up to the # of backup chains).
Each SOBR offload task will use up to 64 connections to the capacity tier. This is defined by S3ConcurrentTaskLimit in the Windows registry settings. (HKLM\SOFTWARE\Veeam\Veeam Backup and Replication\S3ConcurrentTaskLimit , requires a reboot to apply).
The default value of 64 (decimal) is applied to every worker process, meaning that the “SOBR Offloading” job overall may be using hundreds or thousands of concurrent connections, resulting in sub-optimal performance.
The performance will depend on the Veeam setup in the environment. If you have a single repository with 8 concurrent tasks and the above setting is left standard, you may have the ability to overpower the object store. For example: 8 x 64 connections, which may result in high CPU usage.
Since Veeam 11, the number of tasks can be throttled on the repository.
To calculate the number of S3 operations that are processed in parallel (max), use this calculation: Available Repository Task Slots * S3ConcurrentTaskLimit = Max used S3 operations in parallel.
Use the Veeam Object Storage IO sizing calculator Veeam Calculators for the best setting.
Info
To verify the current SOBR, offload job uses the new setting check %programdata%/Veeam/Backup/SOBR_Offload_name-of-sobr/VMname/*.gate.log and search for S3ConcurrentTaskLimit.
Task Throttling
Max Concurrent Tasks per Backup Proxy, by default, Veeam recommends this to be set to 2x the number of CPU cores in your VBR server. (Apply the same modifications on the VM backup proxy).
For more information, see Limitation of Concurrent Tasks - User Guide for VMware vSphere
Handling Multiple Veeam Backup Agents
Veeam recommends the use of VBR “managed mode” which provides network traffic rules via their backup proxies. In this mode, all data protection and administration tasks are performed by a backup administrator in Veeam Backup and Replication.
Reference: Veeam Agent Management Infrastructure - Veeam Agent Management Guide
Optimization Inside DataCore Swarm
By default, the cloud gateway 7.10.4 uses 50 threads to execute S3 MultiDelete requests, you can improve performance by increasing recursiveDeleteMaxThreads to 200 in /etc/caringo/cloudgateway/gateway.cfg
Warning
recursiveDeleteMaxThreads can overwhelm your Elasticsearch cluster if its not sized for the workload, in some situations you may have to reduce this configuration to get less CPU load on Elasticsearch.
recursiveDeleteMaxThreads must always be lower than threads and maxConnections
so if you set recursiveDeleteMaxThreads then we recommend also changing:
threads = 100 x number of CPU in Gateway
maxConnections = (threads/2) * swarm storage nodes
maxConnectionsPerRoute = threads/2
Example often used in the field: ( 10 storage nodes )
threads = 800
maxConnections = 4000
maxConnectionsPerRoute = 500
recursiveDeleteMaxThreads = 200
Veeam v12.3 auto-provisioning of buckets feature
Veeam v12.3 introduced the concept of auto-provisioning of buckets in a single backup repository based on a configurable total objects threshold.
This feature as it will not yield any performance improvements under Swarm.
Swarm Per Domain Indexing focuses on performance improvements at the domain - not the bucket level.
Final Remarks
For additional technical details, see Veeam V12 Guidelines.
For additional configuration steps, see the deployment guide for using Integrating Swarm Object Storage with Veeam Backup and Replication.
© DataCore Software Corporation. · https://www.datacore.com · All rights reserved.