Virtual Machine Relocate VM Task
Relocates a virtual machine to the location specified by VirtualMachineRelocateSpec.
Starting from VCenter 5.1, this API also supports relocating a template to a new host should the current host become inactive. Starting from vCenter 6.0 this API also supports relocating a VM to a new vCenter service.
Requires the following additional permissions:
- Resource.HotMigrate if the virtual machine is powered on.
- Datastore.AllocateSpec if the virtual machine or its disks are being relocated to a new datastore.
- Resource.AssignVMToPool if the resource pool is changing.
- VirtualMachine.Inventory.Register against the destination folder if the virtual machine is moving to a new vCenter service.
- VirtualMachine.Inventory.Move against the virtual machine, source folder, and destination folder if the virtual machine is changing folders within the same vCenter service.
- Network.Assign against the new network if the virtual machine is changing networks.
If this virtual machine is configured with a VirtualNVDIMM device, and if the virtual machine will be moved to a different host, the VirtualNVDIMM will be automatically relocated to the destination host's Non-Volatile Memory storage. If this Virtual machine is configured with virtual disks via persistent memory storage profile:
- If spec specifies only compute location change, these virtual disks will be automatically moved to a persistent memory storage in destination host that supports the profile.
- If spec specifies primary datastore change via datastore, unlike regular virtual disks, these disks will not be automatically moved to the specified datastore, instead they will stay on a persistent memory storage in destination host that supports the profile.
- To explicityly move these disks to a location other than persistent memory storage, use disk locator to specify the new destination datastore along with a storage profile that removes the persistent memory storage requirement. Note that this downgrades the disk I/O performance.
- On the other hand, to move a virtual disk from a regular storage to persistent memory, use deviceChange to specify a storage profile of persistent memory storage. Note that this upgrades the disk I/O performance.
Required privileges: Resource.ColdMigrate
The unique identifier for the managed object to which the method attaches; the serialized managed object reference for a request has the form moType/moId
, in this case VirtualMachine/{moId}
.
The vSphere release schema. The current specification covers vSphere 8.0.2.0 APIs.
{
"spec": {
"_typeName": "string",
"service": {
"_typeName": "string",
"instanceUuid": "string",
"url": "string",
"credential": {
"_typeName": "string"
},
"sslThumbprint": "string"
},
"folder": {
"_typeName": "string",
"type": "string",
"value": "string"
},
"datastore": {
"_typeName": "string",
"type": "string",
"value": "string"
},
"diskMoveType": "string",
"pool": {
"_typeName": "string",
"type": "string",
"value": "string"
},
"host": {
"_typeName": "string",
"type": "string",
"value": "string"
},
"disk": [
{
"_typeName": "string",
"diskId": 0,
"datastore": {
"_typeName": "string",
"type": "string",
"value": "string"
},
"diskMoveType": "string",
"diskBackingInfo": {
"_typeName": "string"
},
"profile": [
{
"_typeName": "string"
}
],
"backing": {
"_typeName": "string",
"parent": "VirtualMachineRelocateSpecDiskLocatorBackingSpec Object",
"crypto": {
"_typeName": "string"
}
},
"filterSpec": [
{
"_typeName": "string"
}
]
}
],
"transform": "string",
"deviceChange": [
{
"_typeName": "string",
"operation": "string",
"fileOperation": "string",
"device": {
"_typeName": "string",
"key": 0,
"deviceInfo": {
"_typeName": "string",
"label": "string",
"summary": "string"
},
"backing": {
"_typeName": "string"
},
"connectable": {
"_typeName": "string",
"migrateConnect": "string",
"startConnected": false,
"allowGuestControl": false,
"connected": false,
"status": "string"
},
"slotInfo": {
"_typeName": "string"
},
"controllerKey": 0,
"unitNumber": 0,
"numaNode": 0,
"deviceGroupInfo": {
"_typeName": "string",
"groupInstanceKey": 0,
"sequenceId": 0
}
},
"profile": [
{
"_typeName": "string"
}
],
"backing": {
"_typeName": "string",
"parent": "VirtualDeviceConfigSpecBackingSpec Object",
"crypto": {
"_typeName": "string"
}
},
"filterSpec": [
{
"_typeName": "string"
}
],
"changeMode": "string"
}
],
"profile": [
{
"_typeName": "string"
}
],
"cryptoSpec": {
"_typeName": "string"
}
},
"priority": "string"
}
Specification for moving or copying a virtual machine to a different datastore or host.
MovePriority is an enumeration of values that indicate the priority of the task that moves a virtual machine from one host to another or one storage location to another.
Note this priority can affect both the source and target hosts.
Possible values:
lowPriority
: The task of moving this virtual machine is low priority.highPriority
: The task of moving this virtual machine is high priority.defaultPriority
: The task of moving this virtual machine is the default priority.
This method returns a Task object with which to monitor the operation.
{
"_typeName": "string",
"type": "string",
"value": "string"
}
InvalidArgument: in the following cases:
- the target host and target pool are not associated with the same compute resource
- the target pool represents a cluster without DRS enabled, and the host is not specified
- the virtual machine is powered on, its home or any of its disks will change storage location, and the host is not specified
- Datastore is not accessible in a cross-datacenter move
- Datastore in a diskLocator entry is not specified
- the specified device ID cannot be found in the virtual machine's current configuration
NotSupported: if the virtual machine is marked as template and the datastore is changing or if it is a cross vCenter vMotion operation.
Timedout: if one of the phases of the relocate process times out.
InvalidState: if the operation cannot be performed because of the host or virtual machine's current state. For example, if the host is in maintenance mode, or if the virtual machine's configuration information is not available.
InvalidDatastore: if the operation cannot be performed on the target datastores.
FileFault: if there is an error accessing the virtual machine files.
VmConfigFault: if the virtual machine is not compatible with the destination host. Typically, a specific subclass of this exception is thrown, such as IDEDiskNotSupported.
MigrationFault: if it is not possible to migrate the virtual machine to the destination host. This is typically due to hosts being incompatible, such as mismatch in network polices or access to networks and datastores. Typically, a more specific subclass is thrown.
InsufficientResourcesFault: if this operation would violate a resource usage policy.
DisallowedOperationOnFailoverHost: if the virtual machine is powered on and is being migrated to a failover host. See ClusterFailoverHostAdmissionControlPolicy.
{
"_typeName": "string",
"faultCause": "MethodFault Object",
"faultMessage": [
{
"_typeName": "string",
"key": "string",
"arg": [
{
"_typeName": "string",
"key": "string",
"value": {
"_typeName": "string"
}
}
],
"message": "string"
}
]
}