I've created several SnapMirror relationshsips via OnCommand System Manager and noticed that the data protection snapshots were not getting mirrored. I was using the DPDefault policy and changed to the MIrrorAllSnapshots policy, however the snaps still aren't getting mirrored. Any ideas?
I'm happy the mirrors are updating. I can see the timestamps of the mirror snaps updating, transfer rates, last transfer end time, etc. All looks good apart from mirroring the non-mirror snapshots. It's like the policy is stuck on DPDefault.
I thought DPDefault only mirrored snaps with a specific label?
SnapMirror Policy Name: DPDefault SnapMirror Policy Type: async-mirror Policy Owner: cluster-admin Tries Limit: 8 Transfer Priority: normal Ignore accesstime Enabled: false Transfer Restartability: always Network Compression Enabled: false Create Snapshot: true Comment: Default policy for DP relationship. Total Number of Rules: 1 Total Keep: 1 Rules: SnapMirror Label Keep Preserve Warn ------------------------------ ---- -------- ---- sm_created 1 false 0
If I create a new mirror with the MirrorAllSnapshots policy then there isn't a problem. However modifying the mirror doesn't seem to work.
cdotclusterdest::system controller> snapmirror show *test* -instance
Source Path: cdotclustersource-svm1:test_source Destination Path: cdotclusterdest-svm1:test_destination Relationship Type: XDP Relationship Group Type: none SnapMirror Schedule: - SnapMirror Policy Type: async-mirror SnapMirror Policy: MirrorAllSnapshots Tries Limit: - Throttle (KB/sec): unlimited Mirror State: Snapmirrored Relationship Status: Idle File Restore File Count: - File Restore File List: - Transfer Snapshot: - Snapshot Progress: - Total Progress: - Network Compression Ratio: - Snapshot Checkpoint: - Newest Snapshot: snapmirror.5172d83e-bec6-11e5-8993-00a0989ab01a_2147484832.2016-06-30_193015 Newest Snapshot Timestamp: 06/30 19:30:15 Exported Snapshot: snapmirror.5172d83e-bec6-11e5-8993-00a0989ab01a_2147484832.2016-06-30_193015 Exported Snapshot Timestamp: 06/30 19:30:15 Healthy: true Unhealthy Reason: - Constituent Relationship: false Destination Volume Node: cdotclusterdest-n2 Relationship ID: 01b1ac95-3eef-11e6-89fb-00a0989ac68f Current Operation ID: - Transfer Type: - Transfer Error: - Current Throttle: - Current Transfer Priority: - Last Transfer Type: update Last Transfer Error: - Last Transfer Size: 1.14KB Last Transfer Network Compression Ratio: 1:1 Last Transfer Duration: 0:0:4 Last Transfer From: cdotclustersource-svm1:test_source Last Transfer End Timestamp: 06/30 19:30:19 Progress Last Updated: - Relationship Capability: 8.2 and above Lag Time: 0:5:21 Identity Preserve Vserver DR: - Number of Successful Updates: 6 Number of Failed Updates: 0 Number of Successful Resyncs: 0 Number of Failed Resyncs: 0 Number of Successful Breaks: 0 Number of Failed Breaks: 0 Total Transfer Bytes: 18704 Total Transfer Time in Seconds: 38
The only difference between the two is that the one that isn't working has had it's policy changed from DPDefault to MirrorAllSnapshots
Version flexible snapmirror transfers all snapshots since common base snapshot. DPDefault policy creates new snapmirror snapshot when you start update and keeps this and only this snapshot, which also becomes next base snapshot. When you change policy to MirrorAllSnapshots, any snapshot on source volume that is older than latest snapmirror snapshot will be ignored. What you can do to transfer old snapshots is
destroy existing snapmirror relationship
create snapvault (XDP with policy XDPDefault)
resync using explicitly the oldest snapshot on source and -preserve to keep target content
destroy relationship and recreate again as XDP with policy MirrorAllSnapshots
update new snapmirror
Step 3 creates base snapshot from the oldest source snapshot; step 5 will transfer everything newer skipping over existing snapshots.
P.S. I think using DPDefault as alias for MirrorLatest was mistake; it means that moving from traditional SnapMirror to version flexible will suddenly do entirely different thing for apparently the same configuration. DPDefault should have been alias for MirrorAllSnapshots that is exactly what traditional SnapMirror did.
The new terminology is confusing, you have a Relationship Type, a SnapMirror Policy Type and a SnapMirror Policy. It takes a while to get a hang of the concepts especially as the manuals don't really do a great job of explaining things.
I did resolve it more or less along the lines that you suggested.
Modified the existing relationship to SnapMirror policy XDPDefault
Completed a SnapMirror update specifying one of the older snapshots
Modified the SnapMirror policy back to MirrorAllSnapshots
A subsequent snapmirror update relciated all the older snapshots