Skip to main content

Create an SVM migration operation

Contributors

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 or source.svm.uuid - Source SVM name or source SVM UUID.

  • source.cluster.name or source.cluster.uuid - Source cluster name or source cluster UUID

Optional properties

  • destination.ipspace.name or destination.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.

  • 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.

  • Default value: 1

  • Max value: 120

  • Min value: 0

return_records

boolean

query

False

The default is false. If set to true, the records are returned.

  • Default value:

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

Destination cluster details for the SVM migration.

ip_interface_placement

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

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

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

job_link

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

returned_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

Name Type Description

self

href

ipspace

Optional property used to specify which IPspace to use for the SVM. By default, the "default" ipspace is used.

Name Type Description

_links

_links

name

string

IPspace name

uuid

string

IPspace UUID

aggregates

Aggregate

Name Type Description

_links

_links

name

string

uuid

string

aggregate

Aggregate to use for volume creation.

Name Type Description

_links

_links

name

string

uuid

string

volume

Property indicating the source volume.

Name Type Description

_links

_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.

  • example: 028baa66-41bd-11e9-81d5-00a0986138f7

  • Introduced in: 9.6

  • x-nullable: true

volume_aggregate_pairs

Volume-aggregate pair information.

Name Type Description

aggregate

aggregate

Aggregate to use for volume creation.

volume

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

ipspace

Optional property used to specify which IPspace to use for the SVM. By default, the "default" ipspace is used.

volume_placement

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

_links

ip

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

_links

name

string

node

node

uuid

string

ip_interfaces

IP interface and network port pair information.

Name Type Description

interface

interface

Network interface on the source SVM.

port

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

_links

name

string

uuid

string

svm

Source SVM

Name Type Description

_links

_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

cluster

Source cluster for the SVM migration.

svm

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".

<