Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  1. Log in to the Abiquo Remote Services server.

  2. Go to /opt/abiquo/config folder and edit or create the veeam.properties file.

    • This is the default file location, and you can change it and configure the new location in abiquo.properties as described below

    • Make sure that this file is owned by the user "tomcat", group "tomcat".

  3. 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 Veeam host IP or FQDN. 

    1. Set Get the datacenter name as it appears in the Abiquo UI and get the Veeam host value from the Veeam Enterprise Manager view. 

      If there are hierarchy roots, find them with the following command.

      Code Blockcurl --

      by following one of the below options:

      1. Abiquo UI: Infrastructure → Datacenter

      2. CLI: In the abiquo.properties file abiquo.datacenter.id property

    2. Get the Veeam host value by following one of the below options:

      1. CLI: Find the Veeam host value with the following commands in the Abiquo Remote Services server. The Veeam host value is the name from the link which type is "BackupServerReference”.

        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
      2. Search for the BackupServerReference URL to set the veeamhost propertyVeeam Enterprise Manager UI: Dashboard → Summary → Backup servers

  4. For example, for two datacenters, called London and Frankfurt, and with the London veeamhost at 10.60.1.82 and the Frankfurt veeamhost at 10.60.1.90, the properties file would look as follows.

    Code Block
    veeam.infrastructure.datacenter.1=London
    veeam.infrastructure.veeamhost.1=10.60.1.82
    
    veeam.infrastructure.datacenter.2=Frankfurt
    veeam.infrastructure.veeamhost.2=10.60.1.90
  5. 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

  6. 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
    languagejs
    # Set the maximum restore points of a job for each schedule type
    veeam.maxrestorepoints=3
    veeam.maxrestorepoints.schedule.daily=8
    veeam.maxrestorepoints.schedule.monthly=3
    
    # Set the maximum restore points for a specific polity, e.g. "mypolicy", with preference over other properties
    #veeam.maxrestorepoints.policycode.mypolicy = 5

  7. Set the name of the dummy 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 dummy job (disabled) on each Veeam
    ## host in order to clone it to create new jobs.
    
    veeam.dummy.vmware.name=Abiquo Dummy VMWare Job

  8. Set the name of the backup repository for the dummy backup job, to match the job's Backup repository configuration on the Veeam server. For example, if you are using a repository called "Default Backup Repository".

    Code Block
    veeam.dummy.vmware.repository=Default Backup Repository

    If you need to change the backup repository, remember to change this property.

    (warning) 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.

  9. For Veeam v11, set the API version

    Code Block
    avbc.veeam.restapi.version=v1_5

  10. Optionally set other properties, according to your environment:

    Code Block
    languagejs
    # JOBS CONFIGURATION
    
    ## Since veeam api does not allow to create new jobs, only clone the
    ## existent jobs. The veeam needs a dummy 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
    
    #veeam.dummy.vmware.name=Abiquo Dummy VMWare Job
    #veeam.dummy.vmware.repository=Default Backup Repository
    
    #veeam.dummy.hyperv.name=Abiquo Dummy HyperV Job
    #veeam.dummy.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)
    #veeam.request.async.maxinterval=60000
    #veeam.request.async.mininterval=5000
    
    ## Maximum of time spent to retrieve the task result
    #veeam.request.async.totaltimeout=300000
    
    ## Timeout properties for synchronous request to Veeam api
    #veeam.client.connect.timeout=6000
    #veeam.client.read.timeout=10000
    
    ## Cache expiry time in milliseconds
    #veeam.cache.expire.duration=1800000

...