Create SnapMirror then SnapVault cascade

 Goal

This workflow automates the creation of SnapMirror relationship for the specified volume and then creates a SnapVault relationship from the SnapMirror destination volume that was just provisioned. As part of the implementation logic, workflow will select suitable aggregates for provisioning the destination volumes from the specified resource pools. If the resource pool is not specified (value = "NONE"), all available aggregates on the specified destination cluster are considered for provisioning.

 

Note that the SnapVault relationship in this workflow has different snapshot retention than the SnapVault relationship that originates from a primary volume. The difference is that only SnapMirror-created snapshots are transferred to the SnapVault destination by the transfer schedule attached to the second-hop SnapVault relationship. If there is no policy attached to the second-hop SnapVault relationship, up to 251 SnapMirror-created snapshots are retained on the SnapVault destination. Retention count of those snapshots can be specified by attaching a policy with a special ‘sm_created’ label to the second-hop SnapVault relationship.

 

The topology for this workflow would be the following –

 

 

  1. Assign the selected snapshot policy to the primary volume. Any existing snapshot policy attached to the volume is replaced. It’s important to note that one can specify “NO CHANGE” as input to ensure that existing snapshot policy is retained.
  2. Once Snapshot policy is attached to the primary volume, workflow performs a license check on the clusters for “SnapMirror” license.

3.       SnapMirror: Select the aggregate for secondary provisioning based on the following criteria:

o    Filter Aggregates based on effective Clustered ONTAP version (Same or newer version the source cluster)

o    Filter aggregates by available capacity (aggregate should have more space available than the size of the destination volume).

o    Filter aggregates by delegation to Storage Virtual Machine (if aggregate_list of the destination Storage Virtual Machine is populated consider one of those aggregates only. Otherwise, consider all aggregates).

o    Filter aggregates by used space % (aggregate should not be more than 80% full after provisioning the volume)

o    Filter aggregates excluding root aggregates (Exclude root aggregates)

o    Filter aggregates excluding the specified aggregate (Exclude primary aggregate)

o    Filter aggregates in a resource Pool (filter accepts “NONE” to mean no selection)

o    Get all aggregates by node priority and volume count(return all aggregates along with a rank based on whether it is on the specified node or not, and volume count on the node)

o    When multiple aggregates satisfy the selection criteria, use the following ordered criteria to sort the aggregates and select the top one:

§  node.priority, ascending (returned by Get all aggregates by node priority and volume count)

§  node.volume_count, ascending (returned by Get all aggregates by node priority and volume count)

§  available_capacity, descending, (returned by Filter aggregates by available capacity)

  1. SnapMirror: Peer the source and destination Clusters. No error is returned if they are already peered. Both clusters must already have intercluster LIF/s created for each node.
  2. SnapMirror: Peer the source and destination Storage Virtual Machines. No error is returned if they are already peered.
  3. Create the destination volume with the following properties:
  1. Create the SnapMirror relationship between source and destination volumes with the specified policy and schedule. Use default value (unlimited) for the maximum transfer bandwidth.
  2. Start initialization of the SnapMirror relationship.
  3. Wait until the initialization is successful.

The following steps details those set of actions where the workflow will create SnapVault relationship from destination of SnapMirror relationship.

  1. Before creating the SnapVault relationship, workflow performs a license check on the clusters for “SnapVault” license.
  2. SnapVault: Select the aggregate for secondary provisioning based on the following criteria:

§  node.priority, ascending (returned by Get all aggregates by node priority and volume count) – This is for fault domain separation across nodes

§  node.volume_count, ascending (returned by Get all aggregates by node priority and volume count) – This is for load balancing across the nodes of the cluster

§  available_capacity, descending, (returned by Filter aggregates by available capacity) – This is for capacity balancing across aggregates

  1. SnapVault: Peer the source and destination Clusters. No error is returned if they are already peered. Both clusters must already have intercluster LIF/s created for each node.
  2. SnapVault: Peer the source and destination Storage Virtual Machines. No error is returned if they are already peered.
  3. Create the destination volume with the following properties:
  1. Create the SnapVault relationship between source and destination volumes with the specified policy and schedule. Use default values for the tries, transfer priority and throttle.
  2. Start initialization of the SnapVault relationship.
  3. Wait until the initialization is successful.

As part of the “Create SnapMirror then SnapVault” workflow, the following mandatory and optional user inputs are supplied,

 

 

This is the cluster where primary volume resides. It’s mandatory that it must be running Clustered Data ONTAP 8.2 or later. The lists of available clusters are displayed in the drop-down list showing cluster name, primary address and ONTAP version.

§  Storage Virtual Machine*: Storage Virtual Machine Name [Mandatory]

Select the primary Storage Virtual Machine name to which volume belongs. The list of available Storage Virtual Machine is displayed in the drop-down list for selection.

This is the primary volume to be protected. As part of the cluster and selected primary Storage Virtual Machine only, the list of volume is populated in the drop-down list for selection. This list will have Volume name, aggregate, used size, total size, and space guarantee information.

Provide the snapshot policy to be assigned to the primary volume. Policy describes the schedules and retention counts for the local Snapshot copies. Available snapshot policy list that can be used from the specified primary Storage Virtual Machine only is displayed with a drop-down list showing policy name, snapshot schedules, snapshot counts and Snapmirror labels (comma separated list). It’s important to note that the list includes cluster-scoped policies and the policies scoped to the primary Storage Virtual Machine as well.

 

Note: This is an optional input and an empty policy named “NO CHANGE” is provided to allow keeping the existing policy.

 

 

 

Resource Pool*: SnapMirrorDestinationResourcePool [Mandatory]

Provide the resource pool for provisioning the SnapMirror destination volume. If specified, the destination aggregate is selected from this resource pool. If value "NONE" is specified, all available aggregates in the cluster will be considered for the resource selection. The list of available resource pools is displayed in the drop-down list and will show resource pool name, number of aggregates, % used total capacity. There is an included value “NONE” which will facilitate a way to specify no selection.

Cluster*: SnapMirrorDestinationClusterName [Mandatory]

Select the Cluster to be used for provisioning the SnapMirror destination volume. If a resource pool is specified, this input will be automatically selected based on the aggregates in the specified pool. If no resource pool is specified (value = "NONE"), any available cluster can be selected. As part of the selection, a drop-down list with cluster name, primary address and ONTAP version is listed. All selected resources result will be ONTAP 8.2 and later clusters only.

Storage Virtual Machine*: SnapMirrorDestination Storage Virtual Machine Name, 8.2 only [Mandatory]

Select the Storage Virtual Machine for the SnapMirror destination volume. For selection, a list of available Storage Virtual Machine on the destination cluster is displayed. It’s important to note that only ‘data’ Storage Virtual Machines are shown only.

Policy: Policy to be attached to the relationship [Optional].

Select the Policy to be attached to the new SnapMirror relationship. The policy has rules that specify which snapshots are transferred from the source to the SnapMirror destination and also the retention count for the transferred snapshots. For selection, a drop-down list showing policy name, snapshot labels, and snapshot counts for that policy (comma separated list) is listed. It’s important to note that –

o    Only the policies that can be used from the specified destination Storage Virtual Machine

o    A policy by name “NONE” is provided to omit any policy selection.

Transfer Schedule:  SnapMirrorSchedule to be attached to the relationship [Optional].

Select the Schedule for transferring snapshots to the SnapMirror destination. For selection, a drop-down list showing schedule name and description is displayed (as generated by ONTAP). It’s important to note that-

o    Only the schedules on the destination cluster are selected.

o    A schedule by name “NONE” is provided to omit any schedule selection.

 

Resource Pool*: SnapVaultDestinationResourcePool [Mandatory]

Provide the resource pool for provisioning the SnapVault destination volume. If specified, the destination aggregate is selected from this resource pool. If value "NONE" is specified, all available aggregates in the cluster will be considered for the resource selection. The list of available resource pools is displayed in the drop-down list and will show resource pool name, number of aggregates, % used total capacity. There is an included value “NONE” which will facilitate a way to specify no selection.

Cluster*: SnapVaultDestinationClusterName [Mandatory]

Select the Cluster to be used for provisioning the SnapVault destination volume. If a resource pool is specified, this input will be automatically selected based on the aggregates in the specified pool. If no resource pool is specified (value = "NONE"), any available cluster can be selected. As part of the selection, a drop-down list with cluster name, primary address and ONTAP version is listed. All selected resources result will be ONTAP 8.2 and later clusters only.

Storage Virtual Machine*: SnapVaultDestination Storage Virtual Machine Name, 8.2 only [Mandatory]

Select the Storage Virtual Machine for the SnapVault destination volume. For selection, a list of available Storage Virtual Machine on the destination cluster is displayed. It’s important to note that only ‘data’ Storage Virtual Machines are shown only.

Policy: Policy to be attached to the relationship [Optional].

Select the Policy to be attached to the new SnapVault relationship. The policy must have special 'sm-created' label that specifies the retention count for the SnapMirror-created snapshots that are transferred to the second-hop SnapVault destination. No other SnapMirror labels are applicable for the second-hop SnapVault relationship. If policy is omitted, up to 251 SnapMirror-created snapshots are retained on the SnapVault destination. For selection, a drop-down list showing policy name, snapshot labels, and snapshot counts for that policy (comma separated list) is listed. It’s important to note that –

o    Only the policies that can be used from the specified destination Storage Virtual Machine

o    Only the policies that have sm_created rule (SnapVault limitation)

o    A policy by name “NONE” is provided to omit any policy selection.

Transfer Schedule:  SnapVaultSchedule to be attached to the relationship [Optional].

Select the Schedule for transferring snapshots to the SnapVault destination. For selection, a drop-down list showing schedule name and description is displayed (as generated by ONTAP). It’s important to note that-

o    Only the schedules on the destination cluster are selected.

o    A schedule by name “NONE” is provided to omit any schedule selection.

 

 Result

This workflow protects the selected primary volume by provisioning the SnapMirror destination volume and then creates a SnapVault relationship from the SnapMirror destination volume. Selected schedules and policies will be applied to both SnapMirror and SnapVault relationships.