Setting up C to C SnapMirror with Local and Replicated Vaults

Following on from the previous post (same but different) ... this time with Clustered ONTAP!

In the post, we run through the steps to setup a Clustered ONTAP SnapMirror-ed Production and DR setup, additionally with a SnapVault of the production volumes at the local site, and further mirror the volume with the SnapVaults to a DR site.

In the lab I have two sites with the below named Clustered ONTAP systems and Storage Virtual Machines. We will create 3 volumes on the Production SVM (NASVM1) that we want to protect.

NACLU1 - Production Cluster (with node NACLU1N1)
NASVM1 - Production SVM
NACLU2 - DR Cluster (with node NACLU2N1)
NASVM2 - DR SVM
NACLU3 - SnapVault Cluster (with node NACLU3N1)
NASVM3 - SnapVault SVM
NACLU4 - DR SnapVault Cluster (with node NACLU4N1)
NASVM4 - DR SnapVault SVM

IP Addressing:

NACLU1: 10.10.10.110 (N1 on .111)
NASVM1: 10.10.10.131
NACLU2: 10.10.10.210 (N1 on .211)
NASVM2: 10.10.10.231
NACLU3: 10.10.10.115 (N1 on .116)
NASVM3: 10.10.10.136
NACLU4: 10.10.10.215 (N1 on .216)
NASVM4: 10.10.10.236

Image: C to C SnapMirrors with Local and Replicated Vaults

Legend:

Workflow

Note 1: The version of Clustered Data ONTAP used in the lab is 8.2.1.
Note 2: SVMs are already setup and Protocol Licenses applied.

Step 1) Licensing Work

Here we add licenses for SnapMirror and SnapVault (Primary or Secondary) as required.

NACLU1::>

sys lic add LICENSECODE #SnapMirror
sys lic add LICENSECODE #SnapVault

NACLU3::>

sys lic add LICENSECODE #SnapMirror
sys lic add LICENSECODE #SnapVault

NACLU2::>

sys lic add LICENSECODE #SnapMirror

NACLU4::>

sys lic add LICENSECODE #SnapMirror

2) Schedules

Production data has:
- hourly snapshots @:00 and keeps 24 (0 -> SnapVault)
- nightly snapshot @22:15 Sat-Thu and keeps 12 (24 -> SnapVault)
- weekly snapshot @22:15 Fri and keeps 3 (5 -> SnapVault)
- monthly snapshot on the 1st of the Month @00:15 and keeps 2 (12 -> SnapVault)

Production data is mirrored every hour @:30
Production data is SnapVaulted every night @22:45
The SnapVault is mirrored every night @23:45

NACLU1::>

cron create -name PR_Hourly -minute 0
cron create -name PR_Nightly -minute 15 -hour 22 -dayofweek Sun-Thu,Sat
cron create -name PR_Weekly -minute 15 -hour 22 -dayofweek Fri
cron create -name PR_Monthly -minute 15 -hour 00 -day 1

snapshot policy create -policy PRODUCTION -enabled true -schedule1 PR_Hourly -count1 24 -schedule2 PR_Nightly -count2 12 -snapmirror-label2 PR_Nightly -schedule3 PR_Weekly -count3 3 -snapmirror-label3 PR_Weekly -schedule4 PR_Monthly -count4 2 -snapmirror-label4 PR_Monthly

NACLU2::>

cron create -name MirrorAt30Past -minute 30

NACLU3::>

cron create -name VaultAt2245 -minute 45 -hour 22

snapmirror policy create -policy SNAPVAULT -vserver NACLU3
snapmirror policy add-rule -policy SNAPVAULT -vserver NACLU3 -snapmirror-label PR_Nightly -keep 24
snapmirror policy add-rule -policy SNAPVAULT -vserver NACLU3 -snapmirror-label PR_Weekly -keep 5
snapmirror policy add-rule -policy SNAPVAULT -vserver NACLU3 -snapmirror-label PR_Monthly -keep 12

NACLU4::>

cron create -name MirrorVaultAt2345 -minute 45 -hour 23

3) Volume Work

Here we create volumes. Only the Production (NASVM1) volumes are type RW (Read-Write.)

NACLU1::>

vol create -vserver NASVM1 -volume prdvol1 -aggregate aggr1 -size 2g -space-guarantee none -type RW -snapshot-policy PRODUCTION
vol create -vserver NASVM1 -volume prdvol2 -aggregate aggr1 -size 2g -space-guarantee none -type RW -snapshot-policy PRODUCTION
vol create -vserver NASVM1 -volume prdvol3 -aggregate aggr1 -size 2g -space-guarantee none -type RW -snapshot-policy PRODUCTION

NACLU2::>

vol create -vserver NASVM2 -volume prdvol1_DR -aggregate aggr1 -size 2g -space-guarantee none -type DP
vol create -vserver NASVM2 -volume prdvol2_DR -aggregate aggr1 -size 2g -space-guarantee none -type DP
vol create -vserver NASVM2 -volume prdvol3_DR -aggregate aggr1 -size 2g -space-guarantee none -type DP

NACLU3::>

vol create -vserver NASVM3 -volume SV_prdvol1 -aggregate aggr1 -size 2g -space-guarantee none -type DP
vol create -vserver NASVM3 -volume SV_prdvol2 -aggregate aggr1 -size 2g -space-guarantee none -type DP
vol create -vserver NASVM3 -volume SV_prdvol3 -aggregate aggr1 -size 2g -space-guarantee none -type DP

NACLU4::>

vol create -vserver NASVM4 -volume SV_prdvol1_DR -aggregate aggr1 -size 2g -space-guarantee none -type DP
vol create -vserver NASVM4 -volume SV_prdvol2_DR -aggregate aggr1 -size 2g -space-guarantee none -type DP
vol create -vserver NASVM4 -volume SV_prdvol3_DR -aggregate aggr1 -size 2g -space-guarantee none -type DP

4) Hosts Work (Optional)

This step optional, you can let your external DNS handle this (if configured.)

NACLU1::>

vserver services dns hosts create -vserver NACLU1 -hostname NACLU2 -address 10.10.10.210
vserver services dns hosts create -vserver NACLU1 -hostname NACLU3 -address 10.10.10.115

NACLU2::>

vserver services dns hosts create -vserver NACLU2 -hostname NACLU1 -address 10.10.10.110

NACLU3::>

vserver services dns hosts create -vserver NACLU3 -hostname NACLU1 -address 10.10.10.110
vserver services dns hosts create -vserver NACLU3 -hostname NACLU4 -address 10.10.10.215

NACLU4::>

vserver services dns hosts create -vserver NACLU4 -hostname NACLU3 -address 10.10.10.115

5) Intercluster LIFs (Cluster to Cluster)

Intercluster LIFs are created for Cluster to Cluster communication.

NACLU1::>

net int create -vserver NACLU1N1 -lif rep1 -role intercluster -home-node NACLU1N1 -home-port e0b -address 10.10.10.121 -netmask 255.255.255.0

NACLU2::>

net int create -vserver NACLU2N1 -lif rep1 -role intercluster -home-node NACLU2N1 -home-port e0b -address 10.10.10.221 -netmask 255.255.255.0

NACLU3::>

net int create -vserver NACLU3N1 -lif rep1 -role intercluster -home-node NACLU3N1 -home-port e0b -address 10.10.10.126 -netmask 255.255.255.0

NACLU4::>

net int create -vserver NACLU4N1 -lif rep1 -role intercluster -home-node NACLU4N1 -home-port e0b -address 10.10.10.226 -netmask 255.255.255.0

Note: If these Intercluster LIFs weren’t all on the same subnet, you’d need to create a route/default gateway by using the command “net ro ro create”.

6) Peering

The Cluster and then Vserver (SVM), need to be peered as per requirements.

NACLU1::>

cluster peer create -peer-addrs 10.10.10.221 -username admin
vserver peer create -vserver NASVM1 -peer-cluster NACLU2 -peer-vserver NASVM2 -applications snapmirror
cluster peer create -peer-addrs 10.10.10.126 -username admin
vserver peer create -vserver NASVM1 -peer-cluster NACLU3 -peer-vserver NASVM3 -applications snapmirror

NACLU2::>

vserver peer accept -vserver NASVM2 -peer-vserver NASVM1

NACLU3::>

vserver peer accept -vserver NASVM3 -peer-vserver NASVM1
cluster peer create -peer-addrs 10.10.10.226 -username admin
vserver peer create -vserver NASVM3 -peer-cluster NACLU4 -peer-vserver NASVM4 -applications snapmirror

NACLU4::>

vserver peer accept -vserver NASVM4 -peer-vserver NASVM3

7) SnapVault Work

The SnapVaults run from NACLU1/NASVM1 -> NACLU3/NASVM3.

NACLU3::>

snapmirror create -source-path NASVM1:prdvol1 -destination-path NASVM3:SV_prdvol1 -type XDP -throttle unlimited -vserver NASVM3 -schedule VaultAt2245 -policy SNAPVAULT

snapmirror create -source-path NASVM1:prdvol2 -destination-path NASVM3:SV_prdvol2 -type XDP -throttle unlimited -vserver NASVM3 -schedule VaultAt2245 -policy SNAPVAULT

snapmirror create -source-path NASVM1:prdvol3 -destination-path NASVM3:SV_prdvol3 -type XDP -throttle unlimited -vserver NASVM3 -schedule VaultAt2245 -policy SNAPVAULT

snapmirror initialize NASVM3:SV_prdvol1
snapmirror initialize NASVM3:SV_prdvol2
snapmirror initialize NASVM3:SV_prdvol3

8) SnapMirror Work

SnapMirrors run from NACLU1/NASVM1 -> NACLU2/NASVM2...

NACLU2::>

snapmirror create -source-path NASVM1:prdvol1 -destination-path NASVM2:prdvol1_DR -type DP -throttle unlimited -vserver NASVM2 -schedule MirrorAt30Past -policy DPDefault

snapmirror create -source-path NASVM1:prdvol2 -destination-path NASVM2:prdvol2_DR -type DP -throttle unlimited -vserver NASVM2 -schedule MirrorAt30Past -policy DPDefault

snapmirror create -source-path NASVM1:prdvol3 -destination-path NASVM2:prdvol3_DR -type DP -throttle unlimited -vserver NASVM2 -schedule MirrorAt30Past -policy DPDefault

snapmirror initialize NASVM2:prdvol1_DR
snapmirror initialize NASVM2:prdvol2_DR
snapmirror initialize NASVM2:prdvol3_DR

And from NACLU3/NASVM1 -> NACLU4/NASVM4

NACLU4::>

snapmirror create -source-path NASVM3:SV_prdvol1 -destination-path NASVM4:SV_prdvol1_DR -type DP -throttle unlimited -vserver NASVM4 -schedule MirrorVaultAt2345 -policy DPDefault

snapmirror create -source-path NASVM3:SV_prdvol2 -destination-path NASVM4:SV_prdvol2_DR -type DP -throttle unlimited -vserver NASVM4 -schedule MirrorVaultAt2345 -policy DPDefault

snapmirror create -source-path NASVM3:SV_prdvol3 -destination-path NASVM4:SV_prdvol3_DR -type DP -throttle unlimited -vserver NASVM4 -schedule MirrorVaultAt2345 -policy DPDefault

snapmirror initialize NASVM4:SV_prdvol1_DR
snapmirror initialize NASVM4:SV_prdvol2_DR
snapmirror initialize NASVM4:SV_prdvol3_DR

THE END

Comments