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

Retrieve information for SnapMirror relationships

Contributors

GET /snapmirror/relationships

Introduced In: 9.6

Retrieves information for SnapMirror relationships whose destination endpoints are in the current SVM or the current cluster, depending on the cluster context.

  • snapmirror show

  • snapmirror list-destinations

Examples

The following examples show how to retrieve the list of SnapMirror relationships and the list of SnapMirror destinations.

  1. Retrieving the list of SnapMirror relationships. This API must be run on the cluster containing the destination endpoint.

 GET "/api/snapmirror/relationships/"
  1. Retrieving the list of SnapMirror destinations on source. This must be run on the cluster containing the source endpoint.

 GET "/api/snapmirror/relationships/?list_destinations_only=true"

Parameters

Name Type In Required Description

list_destinations_only

boolean

query

False

Set to true to show relationships from the source only.

throttle

integer

query

False

Filter by throttle

  • Introduced in: 9.9

policy.uuid

string

query

False

Filter by policy.uuid

policy.name

string

query

False

Filter by policy.name

policy.type

string

query

False

Filter by policy.type

transfer.uuid

string

query

False

Filter by transfer.uuid

transfer.bytes_transferred

integer

query

False

Filter by transfer.bytes_transferred

transfer.state

string

query

False

Filter by transfer.state

transfer.end_time

string

query

False

Filter by transfer.end_time

  • Introduced in: 9.9

transfer.total_duration

string

query

False

Filter by transfer.total_duration

  • Introduced in: 9.9

source.svm.uuid

string

query

False

Filter by source.svm.uuid

source.svm.name

string

query

False

Filter by source.svm.name

source.consistency_group_volumes.name

string

query

False

Filter by source.consistency_group_volumes.name

  • Introduced in: 9.8

source.consistency_group_volumes.uuid

string

query

False

Filter by source.consistency_group_volumes.uuid

  • Introduced in: 9.8

source.path

string

query

False

Filter by source.path

source.cluster.name

string

query

False

Filter by source.cluster.name

  • Introduced in: 9.7

source.cluster.uuid

string

query

False

Filter by source.cluster.uuid

  • Introduced in: 9.7

uuid

string

query

False

Filter by uuid

transfer_schedule.uuid

string

query

False

Filter by transfer_schedule.uuid

  • Introduced in: 9.9

transfer_schedule.name

string

query

False

Filter by transfer_schedule.name

  • Introduced in: 9.9

destination.svm.uuid

string

query

False

Filter by destination.svm.uuid

destination.svm.name

string

query

False

Filter by destination.svm.name

destination.consistency_group_volumes.name

string

query

False

Filter by destination.consistency_group_volumes.name

  • Introduced in: 9.8

destination.consistency_group_volumes.uuid

string

query

False

Filter by destination.consistency_group_volumes.uuid

  • Introduced in: 9.8

destination.path

string

query

False

Filter by destination.path

destination.cluster.name

string

query

False

Filter by destination.cluster.name

  • Introduced in: 9.7

destination.cluster.uuid

string

query

False

Filter by destination.cluster.uuid

  • Introduced in: 9.7

identity_preservation

string

query

False

Filter by identity_preservation

  • Introduced in: 9.9

exported_snapshot

string

query

False

Filter by exported_snapshot

lag_time

string

query

False

Filter by lag_time

healthy

boolean

query

False

Filter by healthy

restore

boolean

query

False

Filter by restore

state

string

query

False

Filter by state

consistency_group_failover.status.code

string

query

False

Filter by consistency_group_failover.status.code

  • Introduced in: 9.8

consistency_group_failover.status.message

string

query

False

Filter by consistency_group_failover.status.message

  • Introduced in: 9.8

consistency_group_failover.error.target

string

query

False

Filter by consistency_group_failover.error.target

  • Introduced in: 9.8

consistency_group_failover.error.arguments.message

string

query

False

Filter by consistency_group_failover.error.arguments.message

  • Introduced in: 9.8

consistency_group_failover.error.arguments.code

string

query

False

Filter by consistency_group_failover.error.arguments.code

  • Introduced in: 9.8

consistency_group_failover.error.message

string

query

False

Filter by consistency_group_failover.error.message

  • Introduced in: 9.8

consistency_group_failover.error.code

string

query

False

Filter by consistency_group_failover.error.code

  • Introduced in: 9.8

unhealthy_reason.code

integer

query

False

Filter by unhealthy_reason.code

unhealthy_reason.parameters

string

query

False

Filter by unhealthy_reason.parameters

unhealthy_reason.message

string

query

False

Filter by unhealthy_reason.message

fields

array[string]

query

False

Specify the fields to return.

max_records

integer

query

False

Limit the number of records returned.

return_records

boolean

query

False

The default is true for GET calls. When set to false, only the number of records is returned.

  • Default value: 1

return_timeout

integer

query

False

The number of seconds to allow the call to execute before returning. When iterating over a collection, the default is 15 seconds. ONTAP returns earlier if either max records or the end of the collection is reached.

  • Default value: 1

  • Max value: 120

  • Min value: 0

order_by

array[string]

query

False

Order results by specified fields and optional [asc

Response

Status: 200, Ok
Name Type Description

_links

_links

num_records

integer

Number of records

records

array[snapmirror_relationship]

Example response
{
  "_links": {
    "next": {
      "href": "/api/resourcelink"
    },
    "self": {
      "href": "/api/resourcelink"
    }
  },
  "records": {
    "_links": {
      "self": {
        "href": "/api/resourcelink"
      }
    },
    "consistency_group_failover": {
      "error": {
        "arguments": {
          "code": "string",
          "message": "string"
        },
        "code": "4",
        "message": "entry doesn't exist",
        "target": "uuid"
      }
    },
    "create_destination": {
      "storage_service": {
        "name": "extreme"
      },
      "tiering": {
        "policy": "all"
      }
    },
    "destination": {
      "cluster": {
        "_links": {
          "self": {
            "href": "/api/resourcelink"
          }
        },
        "name": "cluster1",
        "uuid": "1cd8a442-86d1-11e0-ae1c-123478563412"
      },
      "consistency_group_volumes": {
        "_links": {
          "self": {
            "href": "/api/resourcelink"
          }
        },
        "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"
      }
    },
    "exported_snapshot": "string",
    "identity_preservation": "full",
    "lag_time": "PT8H35M42S",
    "policy": {
      "_links": {
        "self": {
          "href": "/api/resourcelink"
        }
      },
      "name": "Asynchronous",
      "type": "async",
      "uuid": "4ea7a442-86d1-11e0-ae1c-123478563412"
    },
    "source": {
      "cluster": {
        "_links": {
          "self": {
            "href": "/api/resourcelink"
          }
        },
        "name": "cluster1",
        "uuid": "1cd8a442-86d1-11e0-ae1c-123478563412"
      },
      "consistency_group_volumes": {
        "_links": {
          "self": {
            "href": "/api/resourcelink"
          }
        },
        "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"
      }
    },
    "state": "snapmirrored",
    "throttle": 0,
    "transfer": {
      "_links": {
        "self": {
          "href": "/api/resourcelink"
        }
      },
      "end_time": "2020-12-02T18:36:19-08:00",
      "state": "aborted",
      "total_duration": "PT28M41S'",
      "uuid": "4ea7a442-86d1-11e0-ae1c-123478563412"
    },
    "transfer_schedule": {
      "_links": {
        "self": {
          "href": "/api/resourcelink"
        }
      },
      "name": "weekly",
      "uuid": "1cd8a442-86d1-11e0-ae1c-123478563412"
    },
    "unhealthy_reason": [
      {
        "code": "6621444",
        "message": "Failed to complete update operation on one or more item relationships.",
        "parameters": []
      },
      {
        "code": "6621445",
        "message": "Group Update failed",
        "parameters": []
      }
    ],
    "uuid": "4ea7a442-86d1-11e0-ae1c-123478563412"
  }
}

Error

Status: Default

ONTAP Error Response codes

Error code Description

13303825

Could not retrieve information for the SnapMirror policy type

13303817

Unknown value for the Snapmirror State

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

next

href

self

href

Name Type Description

self

href

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.

status

Name Type Description

code

string

Status code

message

string

SnapMirror Consistency Group failover status.

snapmirror_consistency_group_failover

SnapMirror Consistency Group failover information. The SnapMirror Consistency Group failover can be a planned or an unplanned operation. Only active SnapMirror Consistency Group failover operation progress can be monitored using this object. In case of an error during the failover operation, the property "consistency_group_failover.error" holds the reason for the error. ONTAP automatically retries any failed SnapMirror Consistency Group failover operation.

Name Type Description

error

error

status

status

storage_service

Name Type Description

enabled

boolean

This property indicates whether to create the destination endpoint using storage service.

enforce_performance

boolean

Optional property to enforce storage service performance on the destination endpoint. This property is applicable to FlexVol volume, FlexGroup volume, and Consistency Group endpoints.

name

string

Optional property to specify the storage service name for the destination endpoint. This property is considered when the property "create_destination.storage_service.enabled" is set to "true". When the property "create_destination.storage_service.enabled" is set to "true" and the "create_destination.storage_service.name" for the endpoint is not specified, then ONTAP selects the highest storage service available on the cluster to provision the destination endpoint. This property is applicable to FlexVol volume, FlexGroup volume, and Consistency Group endpoints.

  • enum: ["extreme", "performance", "value"]

  • Introduced in: 9.6

tiering

Name Type Description

policy

string

Optional property to specify the destination endpoint's tiering policy when "create_destination.tiering.supported" is set to "true". This property is applicable to FlexVol volume, FlexGroup volume, and Consistency Group endpoints. This property determines whether the user data blocks of the destination endpoint in a FabricPool will be tiered to the cloud store when they become cold. FabricPool combines flash (performance tier) with a cloud store into a single aggregate. Temperature of the destination endpoint volume blocks increases if they are accessed frequently and decreases when they are not. all ‐ This policy allows tiering of both destination endpoint Snapshot copies and the user transfered data blocks to the cloud store as soon as possible by ignoring the temperature on the volume blocks. This tiering policy is not applicable for Consistency Group destination endpoints or for synchronous relationships. auto ‐ This policy allows tiering of both destination endpoint Snapshot copies and the active file system user data to the cloud store none ‐ Destination endpoint volume blocks will not be tiered to the cloud store. snapshot_only ‐ This policy allows tiering of only the destination endpoint volume Snapshot copies not associated with the active file system. The default tiering policy is "snapshot_only" for a FlexVol volume and "none" for a FlexGroup volume.

supported

boolean

Optional property to enable provisioning of the destination endpoint volumes on FabricPool aggregates. This property is applicable to FlexVol volume, FlexGroup volume, and Consistency Group endpoints. Only FabricPool aggregates are used if this property is set to "true" and only non FabricPool aggregates are used if this property is set to "false". Tiering support for a FlexGroup volume can be changed by moving all of the constituents to the required aggregates. Note that in order to tier data, not only do the destination endpoint volumes need to support tiering by using FabricPools, the "create_destination.tiering.policy" must not be "none". A destination endpoint that uses FabricPools but has a tiering "policy" of "none" supports tiering but will not tier any data.

snapmirror_destination_creation

Use this object to provision the destination endpoint when establishing a SnapMirror relationship for a FlexVol volume, FlexGroup volume, SVM, or Consistency Group. Given a source endpoint, the destination endpoint is provisioned in the SVM specified in the "destination.path" property. While protecting an SVM, the SVM destination endpoint can only be provisioned on the local cluster. To provision the SVM destination endpoint use the optional "source.cluster.name" property to specify the remote cluster name or use the optional "source.cluster.uuid" property to specify the remote cluster UUID. When "create_destination.enabled" option is specified while making a POST for a SnapMirror relationship, the relationship can be automatically initialized by setting the "state" either to "snapmirrored" when the policy is of type "async" or to "in_sync" when the policy is of type "sync". The "destination.path" property must specify the destination endpoint path. For example, for FlexVol volume and FlexGroup volume, the "destination.path" can be specified as , for SVM data protection, the "destination.path" must be specified as <destination-svm-name:>, and for Consistency Group, the "destination.path" must be specified as <destination-svm-name:> along with the "destination.consistency_group_volumes" property to indicate the list of destination volumes of type "DP" in the Consistency Group. For a FlexVol volume, a FlexGroup volume, or a Consistency Group destination endpoint, the properties in this object can be specified either from the source or the destination cluster. For an SVM destination endpoint, the properties in this object can be specified from the destination cluster only. This object is not supported for non ONTAP endpoints.</destination-svm-name:></destination-svm-name:>

Name Type Description

enabled

boolean

Optional property to create the destination endpoint when establishing a SnapMirror relationship. It is assumed to be "false" if no other property is set and assumed to be "true" if any other property is set.

storage_service

storage_service

tiering

tiering

cluster

Name Type Description

_links

_links

name

string

uuid

string

consistency_group_volumes

Name Type Description

_links

_links

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

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, and Consistency Group 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

  • example: svm1:volume1

  • Introduced in: 9.6

svm

svm

policy

Basic policy information of the relationship.

Name Type Description

_links

_links

name

string

type

string

uuid

string

transfer

Basic information on the current transfer or the last transfer if there is no active transfer at the time of the request.

Name Type Description

_links

_links

bytes_transferred

integer

Bytes transferred.

end_time

string

End time of the last transfer.

state

string

total_duration

string

Transfer elapsed time.

uuid

string

transfer_schedule

Schedule used to update asynchronous relationships. This "transfer_schedule" overrides the "transfer_schedule" set on the SnapMirror relationship's policy. To remove the "transfer_schedule", set its value to null (no-quotes).

Name Type Description

_links

_links

name

string

Job schedule name

uuid

string

Job schedule UUID

snapmirror_error

SnapMirror error

Name Type Description

code

integer

Error code

message

string

Error message

parameters

array[string]

Parameters for the error message

snapmirror_relationship

SnapMirror relationship information. The SnapMirror relatiosnhip can be either "async" or "sync" based on the type of SnapMirror policy associated with the relationship. The source and destination endpoints of a SnapMirror relationship must be of the same type, for example, if the source endpoint is a FlexVol volume then the destination endpoint must be a FlexVol volume. The SnapMirror policy type "async" can be used when the SnapMirror relationship has FlexVol volume or FlexGroup volume or SVM as the endpoint. The SnapMirror policy type "sync" can be used when the SnapMirror relationship has FlexVol volume as the endpoint. The SnapMirror policy type "sync" with "sync_type" as "automated_failover" can be used when the SnapMirror relationship has Consistency Group as the endpoint.

Name Type Description

_links

_links

consistency_group_failover

snapmirror_consistency_group_failover

SnapMirror Consistency Group failover information. The SnapMirror Consistency Group failover can be a planned or an unplanned operation. Only active SnapMirror Consistency Group failover operation progress can be monitored using this object. In case of an error during the failover operation, the property "consistency_group_failover.error" holds the reason for the error. ONTAP automatically retries any failed SnapMirror Consistency Group failover operation.

  • Introduced in: 9.8

  • readOnly: 1

create_destination

snapmirror_destination_creation

Use this object to provision the destination endpoint when establishing a SnapMirror relationship for a FlexVol volume, FlexGroup volume, SVM, or Consistency Group. Given a source endpoint, the destination endpoint is provisioned in the SVM specified in the "destination.path" property. While protecting an SVM, the SVM destination endpoint can only be provisioned on the local cluster. To provision the SVM destination endpoint use the optional "source.cluster.name" property to specify the remote cluster name or use the optional "source.cluster.uuid" property to specify the remote cluster UUID. When "create_destination.enabled" option is specified while making a POST for a SnapMirror relationship, the relationship can be automatically initialized by setting the "state" either to "snapmirrored" when the policy is of type "async" or to "in_sync" when the policy is of type "sync". The "destination.path" property must specify the destination endpoint path. For example, for FlexVol volume and FlexGroup volume, the "destination.path" can be specified as , for SVM data protection, the "destination.path" must be specified as <destination-SVM-name:>, and for Consistency Group, the "destination.path" must be specified as <destination-SVM-name:/cg/consistency-group-name> along with the "destination.consistency_group_volumes" property to indicate the list of destination volumes of type "DP" in the Consistency Group. For a FlexVol volume, a FlexGroup volume, or a Consistency Group destination endpoint, the properties in this object can be specified either from the source or the destination cluster. For an SVM destination endpoint, the properties in this object can be specified from the destination cluster only. This object is not supported for non ONTAP endpoints.

  • Introduced in: 9.7

  • x-ntap-createOnly: true

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, and Consistency Group 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.

exported_snapshot

string

Snapshot copy exported to clients on destination.

healthy

boolean

Is the relationship healthy?

identity_preservation

string

Specifies which configuration of the source SVM is replicated to the destination SVM. This property is applicable only for SVM data protection with "async" policy type. This "identity_preservation" overrides the "identity_preservation" set on the SnapMirror relationship's policy.

lag_time

string

Time since the exported Snapshot copy was created.

policy

policy

Basic policy information of the relationship.

preserve

boolean

Set to true on resync to preserve Snapshot copies on the destination that are newer than the latest common Snapshot copy. This property is applicable only for relationships with FlexVol volume or FlexGroup volume endpoints and when the PATCH state is being changed to "snapmirrored".

quick_resync

boolean

Set to true to reduce resync time by not preserving storage efficiency. This property is applicable only for relationships with FlexVol volume endpoints and when the PATCH state is being changed to "snapmirrored".

recover_after_break

boolean

Set to true to recover from a failed SnapMirror break operation on a FlexGroup volume relationship. This restores all destination FlexGroup constituent volumes to the latest Snapshot copy, and any writes to the read-write constituents are lost. This property is applicable only for SnapMirror relationships with FlexGroup volume endpoints and when the PATCH state is being changed to "broken_off".

restore

boolean

Set to true to create a relationship for restore. To trigger restore-transfer, use transfers POST on the restore relationship. SnapMirror relationships with the policy type "async" can be restored. SnapMirror relationships with the policy type "sync" cannot be restored.

restore_to_snapshot

string

Specifies the Snapshot copy to restore to on the destination during the break operation. This property is applicable only for SnapMirror relationships with FlexVol volume endpoints and when the PATCH state is being changed to "broken_off".

source

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, and Consistency Group 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.

state

string

State of the relationship. To initialize the relationship, PATCH the state to "snapmirrored" for relationships with a policy of type "async" or to state "in_sync" for relationships with a policy of type "sync". To break the relationship, PATCH the state to "broken_off" for relationships with a policy of type "async" or "sync". SnapMirror relationships with the policy type as "sync" and "sync_type" as "automated_failover" cannot be "broken_off". To resync the relationship, PATCH the state to "snapmirrored" for relationships with a policy of type "async" or to state "in_sync" for relationships with a policy of type "sync". SnapMirror relationships with the policy type as "sync" and "sync_type" as "automated_failover" can be in "broken_off" state due to a failed attempt of SnapMirror failover. To pause the relationship, suspending further transfers, PATCH the state to "paused" for relationships with a policy of type "async" or "sync". SnapMirror relationships with the policy type as "sync" and "sync_type" as "automated_failover" cannot be "paused". To resume transfers for a paused relationship, PATCH the state to "snapmirrored" for relationships with a policy of type "async" or to state "in_sync" for relationships with a policy of type "sync". The entries "in_sync", "out_of_sync", and "synchronizing" are only applicable to relationships with a policy of type "sync". A PATCH call on the state change only triggers the transition to the specified state. You must poll on the "state", "healthy" and "unhealthy_reason" properties using a GET request to determine if the transition is successful. To automatically initialize the relationship when specifying "create_destination" property, set the state to "snapmirrored" for relationships with a policy of type "async" or to state "in_sync" for relationships with a policy of type "sync".

throttle

integer

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

transfer

transfer

Basic information on the current transfer or the last transfer if there is no active transfer at the time of the request.

transfer_schedule

transfer_schedule

Schedule used to update asynchronous relationships. This "transfer_schedule" overrides the "transfer_schedule" set on the SnapMirror relationship's policy. To remove the "transfer_schedule", set its value to null (no-quotes).

unhealthy_reason

array[snapmirror_error]

Reason the relationship is not healthy. It is a concatenation of up to four levels of error messages.

uuid

string