Skip to main content
A newer release of this product is available.

Start a SnapMirror transfer operation

Contributors

POST /snapmirror/relationships/{relationship.uuid}/transfers

Introduced In: 9.6

Starts a SnapMirror transfer operation. This API initiates a restore operation if the SnapMirror relationship is of type "restore". Otherwise, it intiates a SnapMirror "initialize" operation or "update" operation based on the current SnapMirror state.

Default property values

  • storage_efficiency_enabled - true

  • snapmirror update

  • snapmirror initialize

  • snapmirror restore

Important notes

  • The property "archive_retrieval_priority" is only applicable for object store SnapMirror relationships of type "restore".

Examples

The following examples show how to perform SnapMirror "initialize", "update", and "restore" operations.

Perform SnapMirror initialize or update

 POST "/api/snapmirror/relationships/e4e7e130-0279-11e9-b566-0050568e9909/transfers" '{}'

Perform SnapMirror initialize, update or restore with throttle value set

 POST "/api/snapmirror/relationships/e4e7e130-0279-11e9-b566-0050568e9909/transfers" '{"throttle":"100"}'

Perform SnapMirror restore transfer of a file

 POST "/api/snapmirror/relationships/c8c62a90-0fef-11e9-b09e-0050568e7067/transfers" '{"source_snapshot": "src", "files":[{"source_path": "/a1.txt.0", "destination_path": "/a1-renamed.txt.0"}]}'

Performing a SnapMirror initialize or update using a particular Snapshot copy.

 POST "/api/snapmirror/relationships/e4e7e130-0279-11e9-b566-0050568e9909/transfers" '{"source_snapshot":"snap1"}'

Performing a SnapMirror initialize or update of an object store SnapMirror relationship and locking Snapshot copy 'snap1' for a period of 40 months.

 POST "/api/snapmirror/relationships/e4e7e130-0279-11e9-b566-0050568e9909/transfers" '{"source_snapshot":"snap1", "snapshot_retention_period":"P40M"}]}'

Performing a SnapMirror restore transfer of a file with inode number 96 from an object store.

 POST "/api/snapmirror/relationships/5aadf886-2039-11ea-b47a-005056a778b7/transfers" '{"source_snapshot": "snap1", "files":[{"source_path": "96", "destination_path": "/f1"}]}'

Performing a SnapMirror restore transfer of a whole volume from an object store.

 POST "/api/snapmirror/relationships/5aadf886-2039-11ea-b47a-005056a778b7/transfers" '{"source_snapshot": "snap1"}'

Performing a SnapMirror restore transfer of a whole volume from an object store with archive_retrieval_priority high.

 POST "/api/snapmirror/relationships/5aadf886-2039-11ea-b47a-005056a778b7/transfers" '{"source_snapshot": "snap1", "archive_retrieval_priority": "high"}'

Parameters

Name Type In Required Description

relationship.uuid

string

path

True

Relationship UUID

return_records

boolean

query

False

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

  • Default value:

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

Request Body

Name Type Description

_links

_links

archive_retrieval_priority

string

This is supported for transfer of restore relationship only. Priority level at which objects are restored from the archival storage. The value can be high, standard or low. The cloud provider's lowest priority will be used as the default. It is only supported for object store SnapMirror relationships. If the objects were not archived, the property will be ignored.

bytes_transferred

integer

Bytes transferred

checkpoint_size

integer

Amount of data transferred in bytes as recorded in the restart checkpoint.

end_time

string

End time of the transfer.

error_info

error_info

Error information for the transfer.

files

array[files]

This is supported for transfer of restore relationship only. This specifies the list of files or LUNs to be restored. Can contain up to eight files or LUNs.

relationship

relationship

snapshot

string

Name of Snapshot copy being transferred.

snapshot_retention_period

string

Specifies the duration for which the Snapshot copy specified in the 'source_snapshot' property is locked in the object store. The retention period value represents a duration and must be specified in the ISO-8601 duration format. The retention period can be in years, months, or days. A period specified for years, months, or days is represented in the ISO-8601 format as "PY", "PM", or "PD" respectively. For example, "P10Y" represents a duration of 10 years. The period string must contain only a single time element, that is, either years, months, or days. A duration which combines different periods is not supported, for example "P1Y10M" is not supported. Years, if specified, must be less than or equal to 100. Months, if specified, must be less than or equal to 1200. Days, if specified, must be between and including 30 and 36500. This property is valid only if the 'source_snapshot' property is specified and when the property 'snapshot_lock_mode' in the policy associated with the SnapMirror relationship is set to enterprise or compliance. If this property is not specified and the source Snapshot copy being transferred does not match a policy rule, then a default retention period of "P30D" is set. This property is supported only for non-restore transfers and for object store SnapMirror relationships.

source_snapshot

string

Specifies the Snapshot copy on the source to be transferred to the destination.

state

string

Status of the transfer. Set PATCH state to "aborted" to abort the transfer. Set PATCH state to "hard_aborted" to abort the transfer and discard the restart checkpoint. To find "queued" transfers refer to relationships GET API.

storage_efficiency_enabled

boolean

This is supported for transfer of restore relationship only. Set this property to "false" to turn off storage efficiency for data transferred over the wire and written to the destination.

throttle

integer

Throttle, in KBs per second. This "throttle" overrides the "throttle" set on the SnapMirror relationship or SnapMirror relationship's policy. If neither of these are set, defaults to 0, which is interpreted as unlimited.

total_duration

string

Elapsed transfer time.

uuid

string

Example request
{
  "_links": {
    "self": {
      "href": "/api/resourcelink"
    }
  },
  "archive_retrieval_priority": "high",
  "bytes_transferred": 0,
  "checkpoint_size": 0,
  "end_time": "2020-12-02T18:36:19-08:00",
  "error_info": {
    "code": 6620046,
    "message": "Transfer aborted"
  },
  "files": [
    {
      "destination_path": "/dirb/file2",
      "source_path": "/dira/file1"
    }
  ],
  "relationship": {
    "destination": {
      "cluster": {
        "_links": {
          "self": {
            "href": "/api/resourcelink"
          }
        },
        "name": "cluster1",
        "uuid": "1cd8a442-86d1-11e0-ae1c-123478563412"
      },
      "consistency_group_volumes": [
        {
          "name": "volume1",
          "uuid": "028baa66-41bd-11e9-81d5-00a0986138f7"
        }
      ],
      "ipspace": "Default",
      "path": "svm1:volume1",
      "svm": {
        "_links": {
          "self": {
            "href": "/api/resourcelink"
          }
        },
        "name": "svm1",
        "uuid": "02c9e252-41be-11e9-81d5-00a0986138f7"
      },
      "uuid": "4ea7a442-86d1-11e0-ae1c-123478563412"
    },
    "uuid": "d2d7ceea-ab52-11e8-855e-00505682a4c7"
  },
  "snapshot": "string",
  "snapshot_retention_period": "P30D",
  "source_snapshot": "string",
  "state": "string",
  "throttle": 0,
  "total_duration": "PT28M41S",
  "uuid": "4ea7a442-86d1-11e0-ae1c-123478563412"
}

Response

Status: 201, Created

Headers

Name Description Type

Location

Useful for tracking the resource location

string

Error

Status: Default

ONTAP Error Response codes

Error code Description

13303845

Restore operation failed

13303812

Initialize operation failed

13303844

Update operation failed

13303846

Empty source path file list

13303847

Invalid arguments

13304040

Throttle not supported for update of Synchronous SnapMirror relationships

6620237

SnapMirror relationship database write failed

6620238

SnapMirror relationship database read failed

13304026

API license token is required for this operation.

13304027

Invalid API license token specified.

6621865

Unexpected input value.

13304047

An additional property is required with the specified policy property.

13303872

Property specified requires an effective cluster version of ONTAP specified or later.

13304093

Property specified is not supported for specified relationships.

13304094

The property snapshot_retention_period is not supported for this relationship because the policy associated with it does not have the snapshot_lock_mode set to compliance or enterprise.

Name Type Description

error

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

error_info

Error information for the transfer.

Name Type Description

code

integer

Error code

message

string

Error message

files

Specifies a file or LUN consisting of a source_path and an optional destination_path. If not specified, the destination_path is the same as the source_path. File restore is not supported if the source_path or destination_path contains commas in its directory or file name.

Name Type Description

destination_path

string

source_path

string

cluster

Name Type Description

_links

_links

name

string

uuid

string

consistency_group_volumes

Name Type Description

name

string

The name of the volume.

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

  • x-ntap-createOnly: true

  • Introduced in: 9.8

svm

Name Type Description

_links

_links

name

string

The name of the SVM.

uuid

string

The unique identifier of the SVM.

snapmirror_endpoint

Endpoint of a SnapMirror relationship. For a GET request, the property "cluster" is populated when the endpoint is on a remote cluster. A POST request to create the destination SVM endpoint or to establish an SVM DR relationship must have the property "cluster" populated with the remote cluster details. A POST request to create the destination FlexVol volume, FlexGroup volume, Consistency Group, ONTAP S3 bucket and NON-ONTAP object-store endpoints can optionally specify the "cluster" property when the source SVM and the destination SVM are peered. A POST request to establish a SnapMirror relationship between the source endpoint and destination endpoint and when the source SVM and the destination SVM are not peered, must specify the "cluster" property for the remote endpoint.

Name Type Description

cluster

cluster

consistency_group_volumes

array[consistency_group_volumes]

Mandatory property for a Consistency Group endpoint. Specifies the list of FlexVol volumes for a Consistency Group.

ipspace

string

Optional property to specify the IPSpace of the SVM.

path

string

ONTAP FlexVol/FlexGroup - svm1:volume1 ONTAP SVM - svm1: ONTAP Consistency Group - svm1:/cg/cg_name ONTAP S3 - svm1:/bucket/bucket1 NON-ONTAP - objstore1:/objstore

  • example: svm1:volume1

  • Introduced in: 9.6

svm

svm

uuid

string

UUID of the endpoint. Applicable for object store SnapMirror relationships only.

relationship

Name Type Description

destination

snapmirror_endpoint

Endpoint of a SnapMirror relationship. For a GET request, the property "cluster" is populated when the endpoint is on a remote cluster. A POST request to create the destination SVM endpoint or to establish an SVM DR relationship must have the property "cluster" populated with the remote cluster details. A POST request to create the destination FlexVol volume, FlexGroup volume, Consistency Group, ONTAP S3 bucket and NON-ONTAP object-store endpoints can optionally specify the "cluster" property when the source SVM and the destination SVM are peered. A POST request to establish a SnapMirror relationship between the source endpoint and destination endpoint and when the source SVM and the destination SVM are not peered, must specify the "cluster" property for the remote endpoint.

  • Introduced in: 9.6

restore

boolean

Is the relationship for restore?

uuid

string

snapmirror_transfer

SnapMirror transfer information

Name Type Description

_links

_links

archive_retrieval_priority

string

This is supported for transfer of restore relationship only. Priority level at which objects are restored from the archival storage. The value can be high, standard or low. The cloud provider's lowest priority will be used as the default. It is only supported for object store SnapMirror relationships. If the objects were not archived, the property will be ignored.

bytes_transferred

integer

Bytes transferred

checkpoint_size

integer

Amount of data transferred in bytes as recorded in the restart checkpoint.

end_time

string

End time of the transfer.

error_info

error_info

Error information for the transfer.

files

array[files]

This is supported for transfer of restore relationship only. This specifies the list of files or LUNs to be restored. Can contain up to eight files or LUNs.

relationship

relationship

snapshot

string

Name of Snapshot copy being transferred.

snapshot_retention_period

string

Specifies the duration for which the Snapshot copy specified in the 'source_snapshot' property is locked in the object store. The retention period value represents a duration and must be specified in the ISO-8601 duration format. The retention period can be in years, months, or days. A period specified for years, months, or days is represented in the ISO-8601 format as "PY", "PM", or "PD" respectively. For example, "P10Y" represents a duration of 10 years. The period string must contain only a single time element, that is, either years, months, or days. A duration which combines different periods is not supported, for example "P1Y10M" is not supported. Years, if specified, must be less than or equal to 100. Months, if specified, must be less than or equal to 1200. Days, if specified, must be between and including 30 and 36500. This property is valid only if the 'source_snapshot' property is specified and when the property 'snapshot_lock_mode' in the policy associated with the SnapMirror relationship is set to enterprise or compliance. If this property is not specified and the source Snapshot copy being transferred does not match a policy rule, then a default retention period of "P30D" is set. This property is supported only for non-restore transfers and for object store SnapMirror relationships.

source_snapshot

string

Specifies the Snapshot copy on the source to be transferred to the destination.

state

string

Status of the transfer. Set PATCH state to "aborted" to abort the transfer. Set PATCH state to "hard_aborted" to abort the transfer and discard the restart checkpoint. To find "queued" transfers refer to relationships GET API.

storage_efficiency_enabled

boolean

This is supported for transfer of restore relationship only. Set this property to "false" to turn off storage efficiency for data transferred over the wire and written to the destination.

throttle

integer

Throttle, in KBs per second. This "throttle" overrides the "throttle" set on the SnapMirror relationship or SnapMirror relationship's policy. If neither of these are set, defaults to 0, which is interpreted as unlimited.

total_duration

string

Elapsed transfer time.

uuid

string

error_arguments

Name Type Description

code

string

Argument code

message

string

Message argument

error

Name Type Description

arguments

array[error_arguments]

Message arguments

code

string

Error code

message

string

Error message

target

string

The target parameter that caused the error.