VMW0053: After upgrade, CBT restore fails with error "CBT file ... is not present." or VSA discovery fails (VMware)

Issues with client IDs can occur after upgrading clients created in Commvault V9 or upgraded from V9 to Commvault V11.

Symptom

  1. When performing a restore of a virtual machine with the Changed Block Tracking (CBT) option enabled, the restore cannot use CBT and reverts to a classic restore.

    The vsrst.log file shows the following messages:

    CBT file ... is not present. Can't continue in CBT Mode. Reversing to normal mode
    
    CBT restore is not possible, falling back to the old way
    
  2. Discovery can fail if a fault tolerance guest virtual machine (VM) is discovered, even when the virtual machine is not defined as content on the subclient for a backup job.

  3. After an upgrade from V9 to V11, or from V9 to V10 and then to V11, restoring a SQL Server, Exchange, or Oracle application database from a VSA Application Aware backup fails.

Cause

By default, clients created in Commvault V9 or upgraded from V9 to Commvault V11 use BIOS UUIDs. Virtualization clients created in Commvault V11 use instance UUIDs.

  1. By default, upgraded clients continue to use BIOS UUIDs; but CBT restores use instance UUIDs to identify changed blocks from the last backup. Because the UUIDs do not match, the restore reverts to a classic restore.

  2. If BIOS UUIDs are used, the BIOS UUIDs must be unique across all clients. For backup operations, discovery fails if there are duplicate UUIDs.

  3. Upgraded clients continue to use BIOS UUIDs; but restores from Application Aware backups use instance UUIDs to identify VMs to get, register, and mount volumes.

Resolution

Commvault V11 virtualization clients use instance UUIDs. After an upgrade, you can create a virtualization client for the vCenter, ensure that all virtual machines are covered by a subclient, and run full backups. Going forward, all backup and restore operations for the virtualization client will use instance UUIDs, and you will not encounter issues with BIOS UUIDs.

To resolve BIOS UUID issues for jobs from older clients created in Commvault V9, you can run the following stored procedure on the CommServe database (for Windows x64 systems only). The script enables or disables the use of VM Instance UUIDs to identify a virtual machine.

qoperation execscript -sn SetUseInstanceGUID -si "client_name" -si "instance_name" -si 0/1

The script resets the Instance property UseInstanceGUID to the value supplied. All parameters are required; the last parameter can be 0 (Unset) or 1 (Set). When the property is set to 0, the client behaves in V9 style, using BIOS UUIDs to identify virtual machines.

To resolve BIOS UUID issues, set client instances to use instance UUIDs:

  1. To verify the property change, run the following query before and after running the script.

    1. To find the instance ID:

      USE CommServ select distinct App.instance,App.clientId,C.name,I.name from APP_Client C,APP_InstanceName I,App_Application App where C.name = 'ClientName' and I.name = 'InstanceName' and App.clientId = C.id and App.instance = I.id

      The first column in the results from the above query gives the instance ID.

    2. To fetch the value of the property:

      select * from APP_INSTANCEPROP where componentNameId = @instanceId AND attrName = 'Use VM Instance GUID' and modified=0
  2. Log in to the CommServe host using qlogin.

  3. Run the script for any clients and instances that should use the VM instance UUID instead of the BIOS UUID.

    qoperation execscript -sn SetUseInstanceGUID -si "client_name" -si "instance_name" -si 1

    For multiple instances, you can run the script separately for each instance, or you can run the following script to set all instances to use the VM instance UUID instead of the BIOS UUID:

    qoperation execscript -sn SetUseInstanceGUID -si "ALL" -si "ALL" -si 1
  4. Run the following query to verify that the Instance Property in App_InstanceProp is changed to the value given in the third parameter.

    USE CommServ select distinct App.instance,App.clientId,C.name,I.name from APP_Client C,APP_InstanceName I,App_Application App where C.name = 'ClientName' and I.name = 'InstanceName' and App.clientId = C.id and App.instance = I.id

    The first backup job after executing the script will run as a full backup.

  5. Run a full backup job.

  6. Perform an in-place restore to verify that the restore uses CBT.

Additional Resources

Restore with Changed Block Tracking (CBT)

×

Loading...