As descrived in the previous post (Optimize the consumed space of the Veeam Backup Catalog) the Veeam Backup Catalog is a feature of Veeam Backup & Replication that stands for VM guest OS file indexing.
It’s not a server role, but it’s a service of the Veeam Server, for this reason required space must be planned carefully.
By default, the indexing data is stored in the VBRCatalog folder (C:\VBRCatalog) on the Backup Server.
In medium/large deployment it’s a good idea dedicate a volume to the VBRCatalog to avoid that the filling of this folder compromize the C: volume and the Windows OS (that requires some free space on the system disk to works properly). In this way is also possible to use dedup or other specific volume options.
Note that the VBRCatalog cannot be redirected to a CIFS share or mapped network drive!
If you need to move it, just follow this KB: https://www.veeam.com/kb1453
The following steps are to be performed on the server where Veeam Backup & Replication is installed (in this example the servername is VBR) and the new destination of the Veeam Catalog will be the drive D:
- Make sure all jobs are stopped and disabled.
- Stop all Veeam services. For example using this PowerShell command:
Get-Service Veeam* | Stop-Service -Force
- Move the VBRCatalog folder to the new location.
- The action of moving or renaming the VBRCatalog folder will cause the share to be removed.
- If the VBRCatalog folder is missing or was deleted, create a new folder named “VBRCatalog” in the desired location.
- Intead of moving the file, could be better start a folder mirroring before stopping the service and than re-run the mirror. I usually use robocopy to perform this kind of task with a command like this:
- robocopy /mir C:\VBRCatalog D:\VBRCatalog
- If you using the mirroring you have to manually delete the C:\VBRCatalog folder!
- Recreate the Share
- Open Computer Management
- Navigate to [System Tools] > [Shared Folders] > [Shares]
- From Menu select [Action] > [New Share…]
- Select the new folder path to where the VBRCatalog was moved
- On the next page of the wizard, name the share VBRCatalog
- On the “Shared Folder Permissions” page, select [Customize permissions]
- Remove “Everyone”
- Add “Administrators”
Note: the Location selected when specifying Administrators must be the Veeam Server, not the domain. - The Permissions should now list Administrators with only Read Allow permission.
- Press OK and Finish (twice) to complete the recreation of the share.
- Intead of configuring the share manually it’s also possible use PowerShell with a command like this:
- New-SmbShare -Name VBRCatalog -Path “D:\VBRCatalog” -ReadAccess “Administrators”
- Change the location in the registry.
- Open Regedit
- Navigate to HKLM\SOFTWARE\Veeam\Veeam Backup Catalog
- Find the REG_SZ entry named CatalogPath
- Change the Value data to match the new VBRCatalog location.
- Start all Veeam services, for example using this PowerShell command or by rebooting the Veeam Server
Get-Service Veeam* | Start-Service
- Enable all jobs stopped in Step 1.
Performance considerations
There is another important reason to move the catalog to a dedicated volume: the performance aspect!
As suggested by Gostev, best results can be achieved by optimizing built-in search engine performance, and for that he recommend simply placing the catalog on an SSD drive.
And seems that placing catalog on a Windows Server dedupe volume works very well and makes search even faster in some scenarios, likely because the number of total blocks that must be read from disk is significantly reduced.
Bottom line, Veeam current recommendation for customers looking to index and search a very large amount of VMs, is to: use built-in search engine, place the catalog on a fast, dedicated volume (preferably backed by an SSD drive), and enable Windows Server dedupe on that volume.