Create an SVM migration operation
POST /svm/migrations
Introduced In: 9.10
Creates an SVM migration operation. This API must be executed on the destination cluster. This API creates an SVM on the destination cluster and preserves the SVM's identity specified in the source cluster. Optionally, you can specify the aggregate list for creating the volumes, and IPspace. You can perform pre-checks to verify if SVM migration is possible, by setting the "check-only" option to "true". By default the values for auto-source-cleanup and auto-cutover is true.
Required properties
-
source.svm.name
orsource.svm.uuid
- Source SVM name or source SVM UUID. -
source.cluster.name
orsource.cluster.uuid
- Source cluster name or source cluster UUID
Optional properties
-
destination.ipspace.name
ordestination.ipspace.uuid
- Destination IP Space name or UUID where the vserver will be migrated to. -
destination.volume_placement.aggregates
- List of aggregates where the migrating volumes should go on the destination. -
destination.volume_placement.volume_aggregate_pairs
- List of volume aggregate pairs indicating where the migrating volumes should go on the destination. -
ip_interface_placement
- List of source SVM's IP interface and port pairs on the destination for migrating the SVM's IP interfaces. -
auto_cutover
- Option to specify whether to perform cutover automatically. Default is true. -
auto_source_cleanup
- Option to specify whether to perform souce cleanup automatically. Default is true. -
check_only
- Option to perform all the prechecks for migrate without actually starting the migrate. Default is false. -
throttle
- Option to specify a throttle value in KB/s. Defaults to unlimited.
Related ONTAP commands
-
vserver migrate start
Parameters
Name | Type | In | Required | Description |
---|---|---|---|---|
return_timeout |
integer |
query |
False |
The number of seconds to allow the call to execute before returning. When doing a POST, PATCH, or DELETE operation on a single record, the default is 0 seconds. This means that if an asynchronous operation is started, the server immediately returns HTTP code 202 (Accepted) along with a link to the job. If a non-zero value is specified for POST, PATCH, or DELETE operations, ONTAP waits that length of time to see if the job completes so it can return something other than 202.
|
return_records |
boolean |
query |
False |
The default is false. If set to true, the records are returned.
|
Request Body
Name | Type | Description |
---|---|---|
auto_cutover |
boolean |
Optional property that when set to true automatically performs cutover when the migration state reaches "ready for cutover". |
auto_source_cleanup |
boolean |
Optional property that when set to true automatically cleans up the SVM on the source cluster after the migration cutover. |
check_only |
boolean |
Optional property that when set to true performs only migration pre-checks not the actual migration. |
current_operation |
string |
|
destination |
Destination cluster details for the SVM migration. |
|
ip_interface_placement |
Optional property used to specify the list of source SVM's IP interface and network port pairs in the destination for migrating the source SVM IP interfaces. Note that the SVM migration does not perform any reachability checks on the IP interfaces provided. |
|
last_failed_state |
string |
Indicates the state of the migration. |
last_operation |
string |
|
messages |
array[messages] |
Errors and warnings returned/displayed during migration. |
point_of_no_return |
boolean |
Indicates if the migration has progressed beyond the point of no return. When true, the migration cannot be aborted or paused. When false, the migration can be paused or aborted. |
restart_count |
integer |
Number of times migrate restarted the transfer, for example, rollback to transfer after starting the cutover. |
source |
Source cluster details for the SVM migration. |
|
state |
string |
Indicates the state of the migration. |
throttle |
integer |
Optional property to specify a throttle value in KB/s for each individual volume transfer. Defaults to 0 if not set, which is interpreted as unlimited. The minimum throttle value is 4 KB/s, so if you specify a throttle value between 1 and 4, it will be treated as if you specified 4. |
time_metrics |
Various time metrics details |
|
uuid |
string |
SVM migration UUID |
Example request
{
"current_operation": "string",
"destination": {
"ipspace": {
"_links": {
"self": {
"href": "/api/resourcelink"
}
},
"name": "Default",
"uuid": "1cd8a442-86d1-11e0-ae1c-123478563412"
},
"volume_placement": {
"aggregates": [
{
"_links": {
"self": {
"href": "/api/resourcelink"
}
},
"name": "aggr1",
"uuid": "1cd8a442-86d1-11e0-ae1c-123478563412"
}
],
"volume_aggregate_pairs": [
{
"aggregate": {
"_links": {
"self": {
"href": "/api/resourcelink"
}
},
"name": "aggr1",
"uuid": "1cd8a442-86d1-11e0-ae1c-123478563412"
},
"volume": {
"_links": {
"self": {
"href": "/api/resourcelink"
}
},
"name": "volume1",
"uuid": "028baa66-41bd-11e9-81d5-00a0986138f7"
}
}
]
}
},
"ip_interface_placement": {
"ip_interfaces": [
{
"interface": {
"_links": {
"self": {
"href": "/api/resourcelink"
}
},
"ip": {
"address": "10.10.10.7"
},
"name": "lif1",
"uuid": "1cd8a442-86d1-11e0-ae1c-123478563412"
},
"port": {
"_links": {
"self": {
"href": "/api/resourcelink"
}
},
"name": "e1b",
"node": {
"name": "node1"
},
"uuid": "1cd8a442-86d1-11e0-ae1c-123478563412"
}
}
]
},
"last_failed_state": "string",
"last_operation": "string",
"messages": [
{
"code": "string",
"message": "string"
}
],
"restart_count": 0,
"source": {
"cluster": {
"_links": {
"self": {
"href": "/api/resourcelink"
}
},
"name": "cluster1",
"uuid": "1cd8a442-86d1-11e0-ae1c-123478563412"
},
"svm": {
"_links": {
"self": {
"href": "/api/resourcelink"
}
},
"name": "svm1",
"uuid": "02c9e252-41be-11e9-81d5-00a0986138f7"
}
},
"state": "string",
"throttle": 0,
"time_metrics": {
"cutover_complete_time": "2020-12-02 22:30:19 -0500",
"cutover_start_time": "2020-12-02 21:20:19 -0500",
"cutover_trigger_time": "2020-12-02 22:15:19 -0500",
"end_time": "2020-12-02 22:36:19 -0500",
"last_pause_time": "2020-12-02 21:50:19 -0500",
"last_resume_time": "2020-12-02 21:54:19 -0500",
"start_time": "2020-12-02 21:36:19 -0500"
},
"uuid": "4ea7a442-86d1-11e0-ae1c-123478563412"
}
Response
Status: 202, Accepted
Name | Type | Description |
---|---|---|
job |
||
num_records |
integer |
Number of records |
records |
array[svm_migration] |
Example response
{
"job": {
"_links": {
"self": {
"href": "/api/resourcelink"
}
},
"uuid": "string"
},
"num_records": 1,
"records": [
{
"current_operation": "string",
"destination": {
"ipspace": {
"_links": {
"self": {
"href": "/api/resourcelink"
}
},
"name": "Default",
"uuid": "1cd8a442-86d1-11e0-ae1c-123478563412"
},
"volume_placement": {
"aggregates": [
{
"_links": {
"self": {
"href": "/api/resourcelink"
}
},
"name": "aggr1",
"uuid": "1cd8a442-86d1-11e0-ae1c-123478563412"
}
],
"volume_aggregate_pairs": [
{
"aggregate": {
"_links": {
"self": {
"href": "/api/resourcelink"
}
},
"name": "aggr1",
"uuid": "1cd8a442-86d1-11e0-ae1c-123478563412"
},
"volume": {
"_links": {
"self": {
"href": "/api/resourcelink"
}
},
"name": "volume1",
"uuid": "028baa66-41bd-11e9-81d5-00a0986138f7"
}
}
]
}
},
"ip_interface_placement": {
"ip_interfaces": [
{
"interface": {
"_links": {
"self": {
"href": "/api/resourcelink"
}
},
"ip": {
"address": "10.10.10.7"
},
"name": "lif1",
"uuid": "1cd8a442-86d1-11e0-ae1c-123478563412"
},
"port": {
"_links": {
"self": {
"href": "/api/resourcelink"
}
},
"name": "e1b",
"node": {
"name": "node1"
},
"uuid": "1cd8a442-86d1-11e0-ae1c-123478563412"
}
}
]
},
"last_failed_state": "string",
"last_operation": "string",
"messages": [
{
"code": "string",
"message": "string"
}
],
"restart_count": 0,
"source": {
"cluster": {
"_links": {
"self": {
"href": "/api/resourcelink"
}
},
"name": "cluster1",
"uuid": "1cd8a442-86d1-11e0-ae1c-123478563412"
},
"svm": {
"_links": {
"self": {
"href": "/api/resourcelink"
}
},
"name": "svm1",
"uuid": "02c9e252-41be-11e9-81d5-00a0986138f7"
}
},
"state": "string",
"throttle": 0,
"time_metrics": {
"cutover_complete_time": "2020-12-02 22:30:19 -0500",
"cutover_start_time": "2020-12-02 21:20:19 -0500",
"cutover_trigger_time": "2020-12-02 22:15:19 -0500",
"end_time": "2020-12-02 22:36:19 -0500",
"last_pause_time": "2020-12-02 21:50:19 -0500",
"last_resume_time": "2020-12-02 21:54:19 -0500",
"start_time": "2020-12-02 21:36:19 -0500"
},
"uuid": "4ea7a442-86d1-11e0-ae1c-123478563412"
}
]
}
Headers
Name | Description | Type |
---|---|---|
Location |
Useful for tracking the resource location |
string |
Response
Status: 201, Created
Error
Status: Default
ONTAP Error Response Codes
Error Code | Description |
---|---|
262245 |
The value provided is invalid. |
13172746 |
SVM migration cannot be started. This is a generic code, see the response message for details. |
13173748 |
Migrate request cannot contain both \"aggregates\" and \"volume_aggregate_pairs\" within the \"volume_placement\" object. |
13173758 |
The property \"{property}\" is not supported for this operation. |
13173759 |
Migrate operation failed. To use LIF placement specify either the port UUID, or both the port name and the port node name. |
13173760 |
Migrate operation failed. LIF placement requires either the port node name or the port UUID to be specified if the port name is specified. |
13173761 |
Migrate operation failed. LIF placement requires either the port name or the port UUID to be specified if the port node name is specified. |
13173762 |
Migrate operation failed. To use LIF placement specify at least one of the following: IP interface UUID, IP interface name, or IP interface IP. |
13173764 |
Migrate operation failed because LIF placement is not supported on the destination cluster. Both clusters must have an effective cluster version of 9.12.1 or later. |
13173765 |
Migrate operation failed. Unable to determine if LIF placement is supported. Reason: \"{Reason}\" |
Also see the table of common errors in the Response body overview section of this documentation.
Name | Type | Description |
---|---|---|
error |
Example error
{
"error": {
"arguments": [
{
"code": "string",
"message": "string"
}
],
"code": "4",
"message": "entry doesn't exist",
"target": "uuid"
}
}
Definitions
See Definitions
href
Name | Type | Description |
---|---|---|
href |
string |
_links
Name | Type | Description |
---|---|---|
self |
ipspace
Optional property used to specify which IPspace to use for the SVM. By default, the "default" ipspace is used.
Name | Type | Description |
---|---|---|
_links |
||
name |
string |
IPspace name |
uuid |
string |
IPspace UUID |
aggregates
Aggregate
Name | Type | Description |
---|---|---|
_links |
||
name |
string |
|
uuid |
string |
aggregate
Aggregate to use for volume creation.
Name | Type | Description |
---|---|---|
_links |
||
name |
string |
|
uuid |
string |
volume
Property indicating the source volume.
Name | Type | Description |
---|---|---|
_links |
||
name |
string |
The name of the volume. This field cannot be specified in a POST or PATCH method. |
uuid |
string |
Unique identifier for the volume. This corresponds to the instance-uuid that is exposed in the CLI and ONTAPI. It does not change due to a volume move.
|
volume_aggregate_pairs
Volume-aggregate pair information.
Name | Type | Description |
---|---|---|
aggregate |
Aggregate to use for volume creation. |
|
volume |
Property indicating the source volume. |
volume_placement
Optional property to specify the source volume placement in the destination. It is input only and won't be returned by a subsequent GET. Volume placement is ignored if the migration resumes from the cleanup_failed state.
Name | Type | Description |
---|---|---|
aggregates |
array[aggregates] |
Optional property used to specify the list of desired aggregates to use for volume creation in the destination. |
volume_aggregate_pairs |
array[volume_aggregate_pairs] |
Optional property used to specify the list of desired volume-aggregate pairs in the destination. |
destination
Destination cluster details for the SVM migration.
Name | Type | Description |
---|---|---|
ipspace |
Optional property used to specify which IPspace to use for the SVM. By default, the "default" ipspace is used. |
|
volume_placement |
Optional property to specify the source volume placement in the destination. It is input only and won't be returned by a subsequent GET. Volume placement is ignored if the migration resumes from the cleanup_failed state. |
ip
IP information
Name | Type | Description |
---|---|---|
address |
string |
IPv4 or IPv6 address |
interface
Network interface on the source SVM.
Name | Type | Description |
---|---|---|
_links |
||
ip |
IP information |
|
name |
string |
The name of the interface. If only the name is provided, the SVM scope must be provided by the object this object is embedded in. |
uuid |
string |
The UUID that uniquely identifies the interface. |
node
Name | Type | Description |
---|---|---|
name |
string |
Name of node on which the port is located. |
port
Port to use for IP interface placement on the destination SVM.
Name | Type | Description |
---|---|---|
_links |
||
name |
string |
|
node |
||
uuid |
string |
ip_interfaces
IP interface and network port pair information.
Name | Type | Description |
---|---|---|
interface |
Network interface on the source SVM. |
|
port |
Port to use for IP interface placement on the destination SVM. |
svm_migration_ip_interface_placement
Optional property used to specify the list of source SVM's IP interface and network port pairs in the destination for migrating the source SVM IP interfaces. Note that the SVM migration does not perform any reachability checks on the IP interfaces provided.
Name | Type | Description |
---|---|---|
ip_interfaces |
array[ip_interfaces] |
List of source SVM's IP interface and port pairs on the destination for migrating the source SVM's IP interfaces. |
messages
Name | Type | Description |
---|---|---|
code |
string |
Argument code |
message |
string |
Message argument |
cluster
Source cluster for the SVM migration.
Name | Type | Description |
---|---|---|
_links |
||
name |
string |
|
uuid |
string |
svm
Source SVM
Name | Type | Description |
---|---|---|
_links |
||
name |
string |
The name of the SVM. This field cannot be specified in a PATCH method. |
uuid |
string |
The unique identifier of the SVM. This field cannot be specified in a PATCH method. |
source
Source cluster details for the SVM migration.
Name | Type | Description |
---|---|---|
cluster |
Source cluster for the SVM migration. |
|
svm |
Source SVM |
time_metrics
Various time metrics details
Name | Type | Description |
---|---|---|
cutover_complete_time |
string |
Cutover end time |
cutover_start_time |
string |
Cutover start time |
cutover_trigger_time |
string |
Cutover trigger time |
end_time |
string |
Migration end time |
last_pause_time |
string |
Last migration pause time |
last_resume_time |
string |
Last migration resume time |
start_time |
string |
Migration start time |
svm_migration
Provides information on SVM migration, default and user specified configurations, the state of the migration, and volume transfer metrics.
Name | Type | Description |
---|---|---|
auto_cutover |
boolean |
Optional property that when set to true automatically performs cutover when the migration state reaches "ready for cutover". |