Using the Virtual Machine Recovery Tool for System Center 2012 – Virtual Machine Manager (VMM)

Using the Virtual Machine Recovery Tool for System Center 2012 – Virtual Machine Manager (VMM)

The stand-alone Virtual Machine Recovery Tool works with System Center 2012 – Virtual Machine Manager (VMM) to temporarily remove a host, cluster, virtual machine, or service from VMM when that object is in a failed or persistent warning state due to environmental conditions, third-party applications, or other causes. After resetting the state of the object, once VMM refreshes, the object will appear as healthy in VMM.

This tool does not repair a damaged or incorrectly created virtual machine or corrupt .vhd file. It deals state information stored in the VMM database.

You can get the Virtual Machine Recovery Tool from the Download Center. You need .NET Framework 4.0 to run this program.

Install the Virtual Machine Recovery Tool by running VMMStateRecoveryTool.msi. Review and accept the terms of the License Agreement.

Important
This program is not a supported part of the VMM product. This program is offered “as-is” and is documented only in this wiki. Please share any insights you gain by using the Virtual Machine Recovery Tool by updating this wiki page.

 

To recover objects

  1. Double click the Virtual Machine Recovery Tool icon. The Connect Dialog opens.

  2. Enter the name for the VMM SQL Server computer.

  3. Select Windows Authentication or SQL Server Authentication and, if necessary, enter User name and Password. Click Connect.

    The credentials must have permissions for the SQL Server system. The Virtual Machine Recovery Tool connects directly to the SQL Server computer. It does not connect through VMM.

  4. Select the VMM database, and then click OK.

  5. Select the Clusters tab, the Hosts tab, the VMs tab, or the Services tab. The tool lists the appropriate objects in each tab.

    Warning
    Before beginning recovery of hosts or clusters, turn off Dynamic Optimization and Power Optimization. See How to Configure Dynamic Optimization and Power Optimization for more information. Do not migrate or store virtual machines on a host until recovery has completed.  

     

  6. Select the object, and then click Recover.

    The tool displays the progress of the recovery.

    Note
    After the recovery has completed, you may need to refresh items in the VMM console. For virtual machines associated with a private cloud, you must manually re-associate them to the private cloud.  

     

Ordinarily, virtual machine hosts refresh information in VMM within two minutes. After the host refreshes information in VMM, the recovery process is completed.

If a host is unable to refresh in VMM, due to host problems or networking problems, within 10 minutes, the Manual Recovery dialog box opens. Manual Recovery specifies the virtual machine to be recovered and provides a list of virtual machines from VMM.

Note
This list is not automatically updated. Use the Refresh button to update the list.  

After the host refreshes virtual machine information, the virtual machine appears in the VMM Managed VMs list. Select that virtual machine and click Recover. The Virtual Machine Recovery Tool finishes the recovery process.


Still looking for the content you need?

See Also

Sort by: Published Date | Most Recent | Most Useful
Comments
  • Is this Compatible with VMM 2012 SP1? It crashed when I tried to use it.

  • After using in VMM 2012 SP1, I cannot start system center virtual machine manager servcie anymore.

    Application: vmmservice.exe

    Framework Version: v4.0.30319

    Description: The process was terminated due to an unhandled exception.

    Exception Info: System.NullReferenceException

    Stack:

      at Microsoft.VirtualManager.Engine.WorkloadCreation.COMPort..ctor(Microsoft.VirtualManager.Engine.WorkloadCreation.ICOMPortContainerInternal, Byte)

      at Microsoft.VirtualManager.Engine.ImageLibrary.VMBase.ReadChildren(Boolean)

      at Microsoft.VirtualManager.Engine.ImageLibrary.VM.ReadChildren(Boolean)

      at Microsoft.VirtualManager.Engine.ImageLibrary.VM..ctor(Microsoft.VirtualManager.Remoting.VMData, Microsoft.VirtualManager.Utils.CarmineObjectLock, Boolean, Boolean, Boolean)

      at Microsoft.VirtualManager.Engine.ImageLibrary.LibraryUtils.CreateLibObject(Microsoft.VirtualManager.Remoting.LibObjectData, Microsoft.VirtualManager.Utils.CarmineObjectLock, Boolean, Boolean)

      at Microsoft.VirtualManager.Engine.ImageLibrary.LibraryUtils.GetLibObject(System.Guid, Microsoft.VirtualManager.Utils.CarmineObjectType, System.Guid, Microsoft.VirtualManager.Utils.CarmineObjectLockType, Boolean, Boolean)

      at Microsoft.VirtualManager.Engine.ImageLibrary.VM.Get(System.Guid, System.Guid, Microsoft.VirtualManager.Utils.CarmineObjectLockType, Boolean, Boolean)

      at Microsoft.VirtualManager.Engine.ImageLibrary.ComputerTier.ReadChildren()

      at Microsoft.VirtualManager.Engine.ImageLibrary.ComputerTier..ctor(Microsoft.VirtualManager.Remoting.ComputerTierData, Microsoft.VirtualManager.Utils.CarmineObjectLock, Boolean)

      at Microsoft.VirtualManager.Engine.ImageLibrary.LibraryUtils.CreateLibObject(Microsoft.VirtualManager.Remoting.LibObjectData, Microsoft.VirtualManager.Utils.CarmineObjectLock, Boolean, Boolean)

      at Microsoft.VirtualManager.Engine.ImageLibrary.LibraryUtils.GetLibObject(System.Guid, Microsoft.VirtualManager.Utils.CarmineObjectType, System.Guid, Microsoft.VirtualManager.Utils.CarmineObjectLockType, Boolean, Boolean)

      at Microsoft.VirtualManager.Engine.ImageLibrary.ComputerTier.Get(System.Guid, System.Guid, Microsoft.VirtualManager.Utils.CarmineObjectLockType)

      at Microsoft.VirtualManager.Engine.ImageLibrary.ServiceInstance.ReadChildren()

      at Microsoft.VirtualManager.Engine.ImageLibrary.ServiceInstance..ctor(Microsoft.VirtualManager.Remoting.ServiceInstanceData, Microsoft.VirtualManager.Utils.CarmineObjectLock, Boolean)

      at Microsoft.VirtualManager.Engine.ImageLibrary.LibraryUtils.CreateLibObject(Microsoft.VirtualManager.Remoting.LibObjectData, Microsoft.VirtualManager.Utils.CarmineObjectLock, Boolean, Boolean)

      at Microsoft.VirtualManager.Engine.ImageLibrary.LibraryUtils.GetLibObject(System.Guid, Microsoft.VirtualManager.Utils.CarmineObjectType, System.Guid, Microsoft.VirtualManager.Utils.CarmineObjectLockType, Boolean, Boolean)

      at Microsoft.VirtualManager.Engine.ImageLibrary.ServiceInstance.Get(System.Guid, System.Guid, Microsoft.VirtualManager.Utils.CarmineObjectLockType)

      at Microsoft.VirtualManager.Engine.ImageLibrary.ServiceInstance+<>c__DisplayClass6.<GetAll>b__4(Microsoft.VirtualManager.Remoting.ServiceInstanceData)

      at System.Collections.Generic.List`1[[System.__Canon, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]].ConvertAll[[System.__Canon, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]](System.Converter`2<System.__Canon,System.__Canon>)

      at Microsoft.VirtualManager.Engine.ImageLibrary.ServiceInstance.GetAll(Microsoft.VirtualManager.Utils.CarmineObjectLockType, System.Guid)

      at Microsoft.VirtualManager.Engine.VirtualManagerService.StartRefreshers()

      at Microsoft.VirtualManager.Engine.VirtualManagerService.ExecuteRealEngineStartup()

      at Microsoft.VirtualManager.Engine.VirtualManagerService.TryStart(System.Object)

      at System.Threading.ExecutionContext.RunInternal(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean)

      at System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean)

      at System.Threading.TimerQueueTimer.CallCallback()

      at System.Threading.TimerQueueTimer.Fire()

      at System.Threading.TimerQueue.FireNextTimers()

Page 1 of 1 (2 items)