Home / Reference / SnapMirror Active Sync
SnapMirror Active Sync & SM-BC Guide
Deliver Zero RPO (no data loss) and Zero RTO (transparent, sub-second application failover) across enterprise data centers. This guide breaks down ONTAP SnapMirror Active Sync (SM-AS) and SnapMirror Business Continuity (SM-BC), ONTAP Mediator quorum mechanics, uniform host multipathing, and end-to-end CLI provisioning.
Architecture Overview
SnapMirror Active Sync (SM-AS, introduced in ONTAP 9.14.1 and expanding upon SnapMirror Business Continuity / SM-BC) provides granular, volume-level and Consistency Group-level synchronous replication with automated, zero-touch storage failover. An independent third-site witness—the ONTAP Mediator—maintains continuous quorum and orchestrates sub-second failover without risk of split-brain.
1. Evolution & Feature Comparison
NetApp data protection architectures span asynchronous disaster recovery to fully synchronous active/active clusters. Understanding the exact boundaries between SM-S, SM-BC, SM-AS, and MetroCluster is critical for system design:
| Capability | SnapMirror Synchronous (SM-S) | SnapMirror Business Continuity (SM-BC) | SnapMirror Active Sync (SM-AS) | MetroCluster (IP / FC) |
|---|---|---|---|---|
| ONTAP Version | ONTAP 9.5+ | ONTAP 9.8 – 9.13.1 | ONTAP 9.14.1 / 9.15.1+ | ONTAP 9.0+ |
| Protection Granularity | Volume level | Consistency Group (CG) | Consistency Group (CG) / Volume | Aggregate level (SyncMirror) |
| RPO / RTO Target | RPO = 0, RTO = Minutes (manual) | RPO = 0, RTO = 0 (automated SAN) | RPO = 0, RTO = 0 (automated SAN + NAS) | RPO = 0, RTO = Seconds (automated) |
| Failover Trigger | Manual CLI / API | Automatic (via ONTAP Mediator) | Automatic (via ONTAP Mediator) | Automatic (via ONTAP Mediator / AUSO) |
| Protocols Supported | FC, iSCSI, NFSv3/v4 | FC, iSCSI (SAN only) | FC, iSCSI, NVMe/FC, NFSv3/v4.1, SMB | FC, iSCSI, NVMe, NFS, SMB, S3 |
| Access Model | Active / Standby (read-only dest) | Active / Standby (ALUA proxy dest) | Symmetric Active / Active (concurrent) | Active / Active (distinct aggregates) |
| Heterogeneous Hardware | Yes (different models permitted) | Yes (e.g. AFF A400 to AFF A800) | Yes (AFF, ASA, FAS supported) | No (strict model parity required) |
2. Quorum Mechanics & ONTAP Mediator
To eliminate split-brain scenarios (where both clusters mistakenly assume primary ownership and write conflicting data), SM-AS requires the ONTAP Mediator deployed at a separate third location or cloud failure domain (e.g., AWS EC2, Azure VM, or a third datacenter).
Quorum and Automated Failover (AFO) Decision Matrix
The clusters maintain constant bidirectional heartbeats with each other over the intercluster LIFs and with the ONTAP Mediator over secure HTTPS REST (port 443):
| Failure Scenario | Cluster A (Primary) | Cluster B (Secondary) | Mediator State | Action Taken |
|---|---|---|---|---|
| Primary Cluster Outage (Site A dies) | Down (Offline) | Healthy | Reachable by Cluster B | Automatic Failover: Mediator grants quorum to Cluster B. Secondary LUNs become Active/Optimized immediately. Zero RPO, zero application downtime. |
| Secondary Cluster Outage (Site B dies) | Healthy | Down (Offline) | Reachable by Cluster A | No Failover: Primary continues servicing active I/O. Relationship transitions to Out-of-sync without blocking application writes. |
| Intercluster Link Outage (Split-Brain risk) | Healthy (lost peer) | Healthy (lost peer) | Reachable by both | Quorum Race Prevention: Mediator grants exclusive master lock to Primary (Cluster A). Secondary remains standby. Prevents split-brain corruption. |
| Mediator Outage (Site C dies) | Healthy | Healthy | Unreachable | Safety Degradation: Synchronous replication continues normally. Automated failover is temporarily disabled (alerts emitted in EMS) until Mediator reconnects. |
3. Host Multipathing Topologies
SM-AS supports two primary host connectivity models for SAN environments:
A. Uniform Host Access (Recommended for Metro Distances)
Host HBAs/NICs are cross-cabled and zoned to storage target ports on both Cluster A and Cluster B simultaneously:
- Path Priority (ALUA): Paths to the Primary Cluster report as
Active/Optimized. Paths to the Secondary Cluster report asActive/Non-Optimized(or Standby). - Instant Failover: If Cluster A fails, the host multipathing driver (ESXi NMP/PSP, Linux DM-Multipath, or Windows MPIO) simply shifts I/O to the already-connected Secondary paths without needing to re-scan LUNs or re-login to target ports.
B. Non-Uniform Host Access
Hosts in Site A only cable to Cluster A; hosts in Site B only cable to Cluster B. Cross-site replication handles data mirroring. Used primarily in stretched hypervisor clusters where local compute always accesses local storage.
4. Prerequisites & Network Requirements
- Network Latency: Maximum Round Trip Time (RTT) ≤ 10ms between storage clusters (recommended < 5ms for write-heavy databases). RTT to ONTAP Mediator can be up to 100ms.
- Network MTU: 9000 bytes (Jumbo Frames) strongly recommended across intercluster LIFs to minimize packet fragmentation overhead during synchronous writes.
- Licensing: ONTAP One license or "Data Protection" bundle on both clusters.
- ONTAP Mediator Host: Linux virtual machine (RHEL 8/9, Rocky Linux, or AlmaLinux) running SCST kernel modules and Python 3.9+ with an SSL certificate.
5. Step-by-Step Implementation Runbook
Step 1: Verify Intercluster Peering & Ping Latency
::> cluster peer show
::> cluster peer ping -destination-cluster cluster02
Node: node01-a Destination Cluster: cluster02
Destination Node: node02-a Latency: 1.42 ms Status: reachable
Destination Node: node02-b Latency: 1.51 ms Status: reachable
::> vserver peer show
Step 2: Add and Validate the ONTAP Mediator
Run on both clusters to bind the Mediator witness:
::> snapmirror mediator add -mediator-address 192.168.100.50 -port 443 -user mediatoradmin
::> snapmirror mediator show
Mediator Address Peer Cluster Connection Status Quorum Status
---------------- ---------------- ----------------- -------------
192.168.100.50 cluster02 connected true
Step 3: Create the Consistency Group and Synchronous Relationship
Configure the SnapMirror relationship using the AutomatedFailover policy:
# Create destination volume on Cluster 2
cluster02::> volume create -vserver svm_db_dr -volume vol_prod_db -aggregate aggr1_ssd -size 2TB -type DP
# Provision SnapMirror relationship with AutomatedFailover policy
cluster02::> snapmirror create -source-path svm_db_prod:vol_prod_db -destination-path svm_db_dr:vol_prod_db -policy AutomatedFailover -cg-item-mappings vol_prod_db:vol_prod_db
# Initialize relationship
cluster02::> snapmirror initialize -destination-path svm_db_dr:vol_prod_db
# Verify relationship reaches "InSync" status
cluster02::> snapmirror show -destination-path svm_db_dr:vol_prod_db -fields state,status,sync-type
source-path destination-path state status sync-type
--------------------- --------------------- ------------ -------- ---------
svm_db_prod:vol_prod_db svm_db_dr:vol_prod_db Snapmirrored Idle sync
Step 4: Provision Identical igroups & Map LUNs on Both Clusters
For uniform host access, the initiator group and LUN geometry (LUN serial number and WWN) must match so the host operating system recognizes them as identical paths to the same block storage device:
# Cluster 01: Create igroup and map LUN
cluster01::> igroup create -vserver svm_db_prod -igroup esx_cluster_ig -protocol fcp -ostype vmware -initiator 21:00:00:24:ff:56:10:01,21:00:00:24:ff:56:10:02
cluster01::> lun map -vserver svm_db_prod -path /vol/vol_prod_db/lun_oracle_data -igroup esx_cluster_ig -lun-id 1
# Cluster 02: Create identical igroup and map secondary LUN
cluster02::> igroup create -vserver svm_db_dr -igroup esx_cluster_ig -protocol fcp -ostype vmware -initiator 21:00:00:24:ff:56:10:01,21:00:00:24:ff:56:10:02
cluster02::> lun map -vserver svm_db_dr -path /vol/vol_prod_db/lun_oracle_data -igroup esx_cluster_ig -lun-id 1 -additional-reporting-node-regex *
6. Operational Runbook: Planned Failover & Disaster Recovery
A. Planned Switchover (Maintenance / DR Drill)
Perform a non-disruptive, zero data loss planned switchover from the destination cluster:
# Initiate planned switchover on Cluster 02
cluster02::> snapmirror failover start -destination-path svm_db_dr:vol_prod_db
# Monitor switchover progress
cluster02::> snapmirror failover show -destination-path svm_db_dr:vol_prod_db
Source Path: svm_db_prod:vol_prod_db
Destination Path: svm_db_dr:vol_prod_db
Failover Status: completed
Error Reason: -
During a planned failover, ONTAP ensures all in-flight synchronous writes are committed on the source, reverses the replication direction, and transitions Cluster 02's paths to Active/Optimized while Cluster 01 becomes standby.
B. Forcing Unplanned Failover When Quorum is Lost
If the primary cluster is destroyed and the ONTAP Mediator is unreachable (catastrophic double-failure), an administrator can force promotion on the secondary cluster:
# Force failover (breaks relationship and promotes secondary to read/write)
cluster02::> snapmirror failover start -destination-path svm_db_dr:vol_prod_db -force true
C. Post-Incident Resynchronization
Once the failed site is restored, resynchronize data back to restore zero RPO protection:
# Re-establish synchronous replication in the reverse direction
cluster01::> snapmirror resync -destination-path svm_db_prod:vol_prod_db
7. Troubleshooting & Diagnostics Matrix
| Symptom / Status | Root Cause | Verification & Remediation |
|---|---|---|
Relationship status: Out-of-sync |
Intercluster network latency exceeded 10ms threshold or link dropped. | Check snapmirror show -expand. Run cluster peer ping. Verify firewall port 10000/tcp and MTU 9000 across intercluster switches. |
Mediator Quorum Status: false |
HTTPS connection to ONTAP Mediator failed or SSL certificate expired. | Run snapmirror mediator show. Check reachability on port 443. Run security certificate show -type client-ca. |
Host I/O latency spike on writes |
Synchronous double-commit overhead over slow intercluster link. | Review host I/O latency metrics. Ensure write-intensive workloads are hosted on SSD/NVMe tiers with RTT < 3ms. |
Auto-failover disabled (EMS alert) |
Replication out-of-sync or Mediator unreachable. | Check event log show -message-name *snapmirror*. Automatic failover disengages to prevent split-brain until InSync is restored. |
Essential Diagnostic Commands
# Comprehensive SnapMirror synchronous state check
::> snapmirror show -destination-path svm_db_dr:vol_prod_db -instance
# Check Mediator connectivity and event status
::> snapmirror mediator show -instance
::> event log show -message-name csm.*|snapmirror.* -time >5m
# Check Consistency Group operational status
::> consistency-group show -vserver svm_db_dr -instance