Create a SnapMirror policy
POST /snapmirror/policies
Introduced In: 9.6
Creates a SnapMirror policy. The property "identity_preservation" is applicable to only SnapMirror relationships with SVM endpoints and it indicates which configuration of the source SVM is replicated to the destination SVM.
It takes the following values:
-
full
- indicates that the source SVM configuration is replicated to the destination SVM endpoint. -
exclude_network_config
- indicates that the source SVM configuration other than network configuration is replicated to the destination SVM endpoint. -
exclude_network_and_protocol_config
- indicates that the source SVM configuration is not replicated to the destination SVM endpoint.
Important notes
-
The property "identity_preservation" is applicable to only SnapMirror relationships with SVM endpoints and it indicates which configuration of the source SVM is replicated to the destination SVM.
-
The properties "identity_preservation" and "transfer_schedule" are not applicable for "sync" type policies.
-
The properties "copy_all_source_snapshots", "copy_latest_source_snapshot", and "create_snapshot_on_source" are mutually exclusive.
-
The properties "copy_all_source_snapshots", "copy_latest_source_snapshot", and "create_snapshot_on_source" are not applicable for "sync" type policies.
-
No "retention" properties can be specified if "copy_all_source_snapshots" or 'copy_latest_source_snapshot' is specified.
-
The properties "retention.creation_schedule" and "retention.prefix" are not applicable for "sync" type policies.
-
The property "retention.creation_schedule" is not applicable for "async" policies with "create_snapshot_on_source" set to "false".
-
The property "sync_common_snapshot_schedule" is not applicable for an "async" type policy.
-
The property "retention.count" specifies the maximum number of Snapshot copies that are retained on the SnapMirror destination volume.
-
When the property "retention.label" is specified, the Snapshot copies that have a SnapMirror label matching this property is transferred to the SnapMirror destination.
-
When the property "retention.creation_schedule" is specified, Snapshot copies are directly created on the SnapMirror destination. The Snapshot copies created have the same content as the latest Snapshot copy already present on the SnapMirror destination.
-
The property "transfer_schedule" cannot be set to null (no-quotes) during SnapMirror policy POST.
Required properties
-
name
- Name of the new SnapMirror policy.
Recommended optional properties
-
svm.name
orsvm.uuid
- Name or UUID of the SVM that owns the SnapMirror policy.
Default property values
If not specified in POST, the following default property values are assigned:
-
type
- async -
sync_type
- sync (whentype
is sync) -
network_compression_enabled
- false -
throttle
- 0 -
identity_preservation
-exclude_network_and_protocol_config
Related ONTAP commands
-
snapmirror policy create
Examples
Creating a SnapMirror policy of type "sync"
POST "/api/snapmirror/policies/" '{"name": "policy1", "svm.name": "VS0", "type": "sync", "sync_type": "sync"}'
Creating a SnapMirror policy of type "async" with two sets of retention values, one with a creation_schedule
POST "/api/snapmirror/policies" '{"name": "policy_ret", "svm": {"name": "vs1"}, "retention": [{"label": "weekly", "count": "2", "creation_schedule": {"name": "weekly"}}, {"label":"daily", "count":"7"}]}'
Creating a SnapMirror policy of type "async"
POST "/api/snapmirror/policies" '{"name": "newPolicy", "svm":{"name" : "vs1"}, "type": "async"}'
Creating a SnapMirror policy of type "async" which replicates all Snapshot copies
POST "/api/snapmirror/policies" '{"name": "newPolicy", "svm":{"name" : "vs1"}, "type": "async", "copy_all_source_snapshots": "true"}'
Creating a SnapMirror policy of type "async" which replicates latest Snapshot copy
POST "/api/snapmirror/policies" '{"name": "newPolicy2", "svm":{"name" : "vs1"}, "type": "async", "copy_latest_source_snapshot": "true"}'
Creating a SnapMirror policy of type "async" which does not create Snapshot copies on source
POST "/api/snapmirror/policies" '{"name": "newPolicy", "svm":{"name" : "vs1"}, "type": "async", "create_snapshot_on_source": "false", "retention": [{"label": "daily", "count": 7}]}'
Creating a SnapMirror policy of type "sync" with sync_type as "automated_failover"
POST "/api/snapmirror/policies/" '{"name": "policy1", "svm.name": "VS0", "type": "sync", "sync_type": "automated_failover" }'
Learn more
Parameters
Name | Type | In | Required | Description |
---|---|---|---|---|
return_records |
boolean |
query |
False |
The default is false. If set to true, the records are returned.
|
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.
|
Request Body
Name | Type | Description |
---|---|---|
_links |
||
comment |
string |
Comment associated with the policy. |
copy_all_source_snapshots |
boolean |
Specifies that all the source Snapshot copies (including the one created by SnapMirror before the transfer begins) should be copied to the destination on a transfer. "Retention" properties cannot be specified along with this property. This is applicable only to async policies. Property can only be set to 'true'. |
copy_latest_source_snapshot |
boolean |
Specifies that the latest source Snapshot copy (created by SnapMirror before the transfer begins) should be copied to the destination on a transfer. "Retention" properties cannot be specified along with this property. This is applicable only to async policies. Property can only be set to 'true'. |
create_snapshot_on_source |
boolean |
Specifies whether a new Snapshot copy should be created on the source at the beginning of an update or resync operation. This is applicable only to async policies. Property can only be set to 'false'. |
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. |
name |
string |
Name of the policy. |
network_compression_enabled |
boolean |
Specifies whether network compression is enabled for transfers. This is applicable only to the policies of type "async". |
retention |
array[snapmirror_policy_rule] |
Policy on Snapshot copy retention. |
scope |
string |
Set to "svm" for policies owned by an SVM, otherwise set to "cluster". |
svm |
||
sync_common_snapshot_schedule |
Schedule used to create common Snapshot copies for synchronous relationships. |
|
sync_type |
string |
|
throttle |
integer |
Throttle in KB/s. Default to unlimited. |
transfer_schedule |
The schedule used to update asynchronous relationships. |
|
type |
string |
|
uuid |
string |
Example request
{
"_links": {
"self": {
"href": "/api/resourcelink"
}
},
"comment": "string",
"copy_all_source_snapshots": 1,
"copy_latest_source_snapshot": 1,
"create_snapshot_on_source": "",
"identity_preservation": "string",
"name": "Asynchronous",
"retention": [
{
"count": "7",
"creation_schedule": {
"_links": {
"self": {
"href": "/api/resourcelink"
}
},
"name": "weekly",
"uuid": "1cd8a442-86d1-11e0-ae1c-123478563412"
},
"label": "hourly",
"prefix": "string"
}
],
"scope": "string",
"svm": {
"_links": {
"self": {
"href": "/api/resourcelink"
}
},
"name": "svm1",
"uuid": "02c9e252-41be-11e9-81d5-00a0986138f7"
},
"sync_common_snapshot_schedule": {
"_links": {
"self": {
"href": "/api/resourcelink"
}
},
"name": "weekly",
"uuid": "1cd8a442-86d1-11e0-ae1c-123478563412"
},
"sync_type": "string",
"throttle": 0,
"transfer_schedule": {
"_links": {
"self": {
"href": "/api/resourcelink"
}
},
"name": "weekly",
"uuid": "1cd8a442-86d1-11e0-ae1c-123478563412"
},
"type": "string",
"uuid": "4ea7a442-86d1-11e0-ae1c-123478563412"
}
Response
Status: 202, Accepted
Name | Type | Description |
---|---|---|
job |
Example response
{
"job": {
"_links": {
"self": {
"href": "/api/resourcelink"
}
},
"uuid": "string"
}
}
Error
Status: Default
ONTAP Error Response codes
Error code |
Description |
---|---|
--------- |
|
---------- |
|
13303850 |
Invalid input parameter |
13303887 |
|
Failed to create SnapMirror policy. Reason: Maximum number of allowed retention rules reached |
|
13304083 |
The specified property is not supported because all nodes in the cluster are not capable of supporting this property. |
13304084 |
|
Properties specified are mutually exclusive. Provide only one property. |
|
13304085 |
The specified property does not support the specified value. |
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 |
creation_schedule
Schedule used to create Snapshot copies on the destination for long term retention.
Name | Type | Description |
---|---|---|
_links |
||
name |
string |
Job schedule name |
uuid |
string |
Job schedule UUID |
snapmirror_policy_rule
SnapMirror policy rule for retention.
Name | Type | Description |
---|---|---|
count |
integer |
Number of Snapshot copies to be kept for retention. |
creation_schedule |
Schedule used to create Snapshot copies on the destination for long term retention. |
|
label |
string |
Snapshot copy label |
prefix |
string |
Specifies the prefix for the Snapshot copy name to be created as per the schedule. If no value is specified, then the label is used as the prefix. |
svm
Name | Type | Description |
---|---|---|
_links |
||
name |
string |
The name of the SVM. |
uuid |
string |
The unique identifier of the SVM. |
sync_common_snapshot_schedule
Schedule used to create common Snapshot copies for synchronous relationships.
Name | Type | Description |
---|---|---|
_links |
||
name |
string |
Job schedule name |
uuid |
string |
Job schedule UUID |
transfer_schedule
The schedule used to update asynchronous relationships.
Name | Type | Description |
---|---|---|
_links |
||
name |
string |
Job schedule name |
uuid |
string |
Job schedule UUID |
snapmirror_policy
SnapMirror policy information. SnapMirror policy can either be of type "async" or "sync". The policy type "async" can be associated with a SnapMirror relationship that has either the FlexVol volume or FlexGroup volume or SVM as the endpoint. The policy type "sync" along with "sync_type" as "sync" or "strict_sync" can be associated with a SnapMirror relationship that has FlexVol volume as the endpoint. The policy type "sync" can have a "sync_type" of either "sync", "strict_sync" or "automated_failover". If the "sync_type" is "sync" then a write success is returned to the client after writing the data to the source endpoint and before writing the data to the destination endpoint. If the "sync_type" is "strict_sync" then a write success is returned to the client after writing the data to the both source and destination endpoints. If the "sync_type" is "automated_failover" then the policy can be associated with a SnapMirror relationship that has Consistency Group as the endpoint. Use the "sync" policy with "sync_type" as "automated_failover" to establish SnapMirror relationships for business continuity usecases. SnapMirror relationships with policy type as "sync" and "sync_type" as "automated_failover" can be monitored by the Mediator, if configured. In case the source Consistency Group endpoint is not reachable, the Mediator may trigger a failover to the destination Consistency Group endpoint.
Name | Type | Description |
---|---|---|
_links |
||
comment |
string |
Comment associated with the policy. |
copy_all_source_snapshots |
boolean |
Specifies that all the source Snapshot copies (including the one created by SnapMirror before the transfer begins) should be copied to the destination on a transfer. "Retention" properties cannot be specified along with this property. This is applicable only to async policies. Property can only be set to 'true'. |
copy_latest_source_snapshot |
boolean |
Specifies that the latest source Snapshot copy (created by SnapMirror before the transfer begins) should be copied to the destination on a transfer. "Retention" properties cannot be specified along with this property. This is applicable only to async policies. Property can only be set to 'true'. |
create_snapshot_on_source |
boolean |
Specifies whether a new Snapshot copy should be created on the source at the beginning of an update or resync operation. This is applicable only to async policies. Property can only be set to 'false'. |
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. |
name |
string |
Name of the policy. |
network_compression_enabled |
boolean |
Specifies whether network compression is enabled for transfers. This is applicable only to the policies of type "async". |
retention |
array[snapmirror_policy_rule] |
Policy on Snapshot copy retention. |
scope |
string |
Set to "svm" for policies owned by an SVM, otherwise set to "cluster". |
svm |
||
sync_common_snapshot_schedule |
Schedule used to create common Snapshot copies for synchronous relationships. |
|
sync_type |
string |
|
throttle |
integer |
Throttle in KB/s. Default to unlimited. |
transfer_schedule |
The schedule used to update asynchronous relationships. |
|
type |
string |
|
uuid |
string |
job_link
Name | Type | Description |
---|---|---|
_links |
||
uuid |
string |
The UUID of the asynchronous job that is triggered by a POST, PATCH, or DELETE operation. |
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. |