...
The Abiquo integrations supports the following versions of Veeam Backup & Replication with separate plugins.
Note |
---|
Each of the following Veeam backup plugins requires its own license. |
Veeam version | Backup plugin |
---|---|
Veeam 9.5 update 4 | Veeam 9.5 update version 4 |
Veeam 10 | Veeam 10 |
Veeam 11 | Veeam 10 |
See also steps to Upgrade from Veeam 10 to Veeam 11 belowSteps to upgrade Veeam below.
...
Prepare and maintain Veeam storage
Warning |
---|
Your backup administrator should prepare and maintain Veeam storage because Abiquo does not delete backups. |
Abiquo supports the use of retention policies to set the number of backups to keep but does not control how long to keep the backups.
When a user deletes a backup policy from a VM, Abiquo changes the name to disable and remove it from the next run. However, Abiquo does not detach the backup from the disabled job, so the backup will remain on the disk forever.
...
Hypervisors
The Abiquo Veeam backup plugins supports the following hypervisors: VMware
...
and Hyper-V.
...
Install Veeam
Install Veeam with the Veeam Enterprise Manager, which is an optional component
During the install, configure the API ports of the Veeam Enterprise Manager for the Veeam Backup RESTful API service to use. By default, the values are HTTP port
9399
and HTTPS port9398
.Ensure that the HTTPS port is reachable from all of the Abiquo Remote Services servers
...
On each hypervisor, deploy a placeholder VM
Name the VM to show that it is a placeholder VM so that it will not get accidentally deleted
In Veeam create a new job for the hypervisor
The default names that the Abiquo backup plugin will detect are
Abiquo placeholder dummy VMWare Job
for ESXi andAbiquo placeholder dummy HyperV Job
for HyperV
Add the placeholder VM
DO NOT set a schedule for the job
Save the job
...
Log in to the Abiquo Remote Services server
Go to
/opt/abiquo/config
folder and edit or create theveeam.properties
file.This is the default file and folder, to configure a new one, use abiquo.properties as described below
Ensure that the file owner is the
tomcat
user in thetomcat
group.
The Abiquo backup plugin is designed to manage one Veeam host for each Abiquo datacenter. To associate a datacenter with its Veeam host, set a property pair for the datacenter name and the backup server reference, which may be the host IP or FQDN. You must use the same backup server reference/s that the Veeam manager uses to identify the host/s
Get the datacenter name with one of these options:
Abiquo UI: Infrastructure → Datacenter
CLI: In the abiquo.properties file abiquo.datacenter.id propertyAPI: Get datacenter names and IDs: https://wiki.abiquo.com/api/latest/DatacentersResource.html#list-datacenter-names-and-ids, and List public cloud regions: https://wiki.abiquo.com/api/latest/PublicCloudRegionsResource.html#list-public-cloud-regions
Get the Veeam host value with one of these options to find the backup server reference:
Veeam Enterprise Manager UI: Dashboard → Summary → Backup servers
CLI: Find To find the Veeam host value with the following commands in , run these commands on the Abiquo Remote services server.
Code Block # Set variables export APIUSERNAME=administrator && export APIPASSWORD='XXXXXXXXXX' && export APIIP=10.10.X.X # Obtain authentication token export APISESSIONHEADER=$(curl --insecure --verbose --user ${APIUSERNAME}:${APIPASSWORD} --request POST "https://${APIIP}:9398/api/sessionMngr/?v=latest" --header "Content-Length: 0" 2>&1 | grep --only-matching --extended-regexp 'X-RestSvcSessionId: ([[:alnum:]])*') # Obtain hierarchy roots curl --silent --insecure --header "${APISESSIONHEADER}" --request GET "https://${APIIP}:9398/api/hierarchyRoots?format=Entity" | xmllint --format - > hierarchyRoots.xml
In the response, look for the
Link
entity with aType
ofBackupServerReference
. In this case it isveeam01.london.example.com
Code Block <Link Href="XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" Name="veeam01.london.example.com" Rel="Up" Type="BackupServerReference"/>
So as an example, consider two Abiquo datacenters, called
London
andFrankfurt
. The London Veeam host has a backup server reference ofveeam01.london.example.com
. And the Frankfurt Veeam host has a reference ofveeam02.frankfurt.example.com
. So the properties file would look as follows.Code Block veeam.infrastructure.datacenter.1=London veeam.infrastructure.veeamhost.1=veeam01.london.example.com veeam.infrastructure.datacenter.2=Frankfurt veeam.infrastructure.veeamhost.2=veeam02.frankfurt.example.com
If you have hosts in Veeam that are not in Abiquo, and they contain duplicates of VMs in Abiquo, you must set the
hypervisor
property to define the hosts in Abiquo, as a comma separated list. The Abiquo backup system will manage VMs on the hypervisors on the list only, to prevent critical errors in the backup system. If the property is empty or not supplied, the platform will use Veeam data from all hypervisors.Code Block veeam.infrastructure.hypervisor=myvCenter1.example.com,myvCenter2.example.com
To control backup expiration times in Veeam, use properties to set maximum restore points. Remember to remove the hash '#' comment mark at the start of the property line.
Code Block language js ### Set the default maximum restore points of a job for the system veeam.maxrestorepoints=3 ## Set the maximum restore points for each schedule type veeam.maxrestorepoints.schedule.daily=38 veeam.maxrestorepoints.schedule.dailyweekly=85 veeam.maxrestorepoints.schedule.monthly=3 ### Set the maximum restore points for a specific policy, e.g. "mypolicyMYPOLICY", ## with preference over other properties veeam.maxrestorepoints.policycode.mypolicyMYPOLICY = 5
Set the name of the placeholder backup job for your hypervisor
Code Block ## Veeam api does not allow us to create new jobs, only clone the ## existing jobs. So Veeam needs a placeholder job (disabled) on each Veeam ## host in order to clone it to create new jobs. veeam.placeholderdummy.vmware.name=Abiquo placeholderdummy VMWare Job
Set the name of the backup repository for the placeholder backup job, to match the job's
Backup repository configuration
on the Veeam server. For example, if you are using a repository calledDefault Backup Repository
.Code Block veeam.placeholderdummy.vmware.repository=Default Backup Repository
If you need to change the backup repository, remember to change this property.
If you have one Entity Manager for two Veeam servers, the backup repositories in the
veeam.properties
file must exist on each server. You do not have to use them but they must exist. Otherwise, the repository search could fail if each Veeam server uses a different repository name.For Veeam v11, set the API version
Code Block avbc.veeam.restapi.version=v1_5
Optionally, set other properties, according to your environment:
Code Block language js # JOBS CONFIGURATION ## Since veeam api does not allow to create new jobs, only clone the ## existent jobs. The veeam needs a placeholder job (disabled) in each veeam ## host in order to clone it to create new jobs. ## The following properties define the name of the jobs for each ## virtualization type #veeamveeam.placeholderdummy.vmware.name=Abiquo placeholderdummy VMWare Job #veeamveeam.placeholderdummy.vmware.repository=Default Backup Repository #veeam.placeholderdummy.hyperv.name=Abiquo placeholderdummy HyperV Job #veeam.placeholderdummy.hyperv.repository=Default Backup Repository # TASK MANAGEMENT ## Some operations in veeam api causes an asynchronous task that needs ## to be tracked to know the result of the operation. All these properties ## are defined in milliseconds ## Time to wait between each task state retrieve operation. ## Min and Max exists because each operation increase the next interval ## in a half of the last one (nextinterval = currentinterval * 1.50) #veeamveeam.request.async.maxinterval=60000 #veeamveeam.request.async.mininterval=5000 ## Maximum of time spent to retrieve the task result #veeamveeam.request.async.totaltimeout=300000 ## Timeout properties for synchronous request to Veeam api #veeamveeam.client.connect.timeout=6000 #veeamveeam.client.read.timeout=10000 ## Cache expiry time in milliseconds #veeamveeam.cache.expire.duration=1800000
...
In Abiquo, you will create backup policies for users to assign to their VMs. Abiquo will use the Code of the policy to identify which Veeam job to clone to create the backup. So create a backup job for each policy that you will create in Abiquo.
...
Warning |
---|
Backup policy code must match Veeam job When a user assigns a backup policy to a VM, if Abiquo cannot find the Veeam job to match a backup policy code, then it will not be able to create a new backup job in Veeam and the VM backups will not run. |
Warning |
---|
Disabled backups remain on disk |
For each backup policy you will create in Abiquo:
On the Veeam Backup and Replication server for the Abiquo datacenter, clone the original Abiquo dummy placeholder job
Rename the new job to a name that will exactly match the policy Code of policy
Code
of an Abiquo backup policy in the Abiquo datacenterTo set how many backups should be kept on the server, go to Job → Edit → Storage and set Restore points to keep on disk
Note the code and details to enter in your backup policy in Abiquo
Later, in Abiquo, after you create a Backup manager, create your backup policies with the right Code and make them available to users. See Backup and Create a backup policy
...