Replication & Disaster Recovery
Replicate volumes between MayaNAS or MayaScale nodes for disaster recovery and data protection. MayaNAS includes enterprise-grade DR features at no additional cost — same posture as legacy NAS appliance products that charge per-protected-TB.
Access
Section titled “Access”Navigate to Replication in the Web UI sidebar.
Replication Types
Section titled “Replication Types”| Type | RPO | How It Works | Best For |
|---|---|---|---|
| Snapshot Mirroring (SnapMirror equivalent) | Configurable from minutes to days | Asynchronous incremental ZFS replication via zfs send/recv over encrypted SSH with on-the-wire compression. Resumable on interruption. Per-volume retention policies on source and target | Recommended for DR. Cross-region, cross-cloud, on-prem capable. No per-TB license |
| Synchronous (DRBD) | Zero data loss (RPO 0) | Writes acknowledged only after stable write on both nodes via DRBD block-level replication | Same-region HA for block volumes (RDBMS, VMware datastores) |
| Asynchronous (safe) | ~5 seconds | Writes acknowledged after secondary receives data in memory | Cross-region block replication with low-latency tolerance |
| Asynchronous (unsafe) | ~5 seconds | Primary does not wait for secondary acknowledgment | Maximum performance, tolerates some data loss |
Snapshot Mirroring is the recommended DR path for MayaNAS file/object workloads — it is the OpenZFS-native equivalent of NetApp SnapMirror, runs at the filesystem level, supports cross-region/cross-cloud/on-prem destinations, and is included with the product (no per-TB license fee).
Enable Replication
Section titled “Enable Replication”- Select a volume by checking its checkbox
- Click Enable
- Configure the replication pair:
| Field | Description |
|---|---|
| Remote Server | IP address of the secondary node |
| Remote Volume | Destination volume on the secondary node |
| Replication Type | sync, async-safe, async, or snapshot |
| Network Interface | Preferred interface for replication traffic |
| Sync Rate | Bandwidth allocation percentage (1–100%) |
- Click Finish
Schedule Replication
Section titled “Schedule Replication”For snapshot-based replication, set a schedule:
- Select a replicated volume
- Click Schedule
- Configure:
| Field | Description |
|---|---|
| Interval | frequent (minutes), hourly, daily, or monthly |
| Period | Number of intervals between replications |
| Keep | Number of replication snapshots to retain |
- Click Save
Start / Stop Replication
Section titled “Start / Stop Replication”- Start — Run replication on demand. Status auto-refreshes while running.
- Stop — Stop an active replication.
Status progresses through: Initializing > Replicating > Updated.
Disable Replication
Section titled “Disable Replication”- Select the replicated volume
- Click Disable
- Confirm deletion of the replication pair
Planning
Section titled “Planning”Synchronous Mirroring Requirements
Section titled “Synchronous Mirroring Requirements”- Identical storage capacity on primary and secondary
- Low-latency network between nodes
- Dedicated network interface recommended for replication traffic
Asynchronous Mirroring
Section titled “Asynchronous Mirroring”- Secondary can have different storage performance characteristics
- Safe mode ensures data received in memory before acknowledging
- Typically ~5 seconds of data at risk
Snapshot-Based Replication
Section titled “Snapshot-Based Replication”- Works over any network (including WAN)
- Minimum 1-minute RPO with frequent snapshot policy
- Suitable for cloud object storage connections
- No requirement for identical storage
# Create a synchronous replication pairmayacli create replication tank/data \ remote=server2:tank/data_mirror type=sync \ controller=eth1 syncrate=50
# Create a snapshot-based replication pairmayacli create replication tank/data \ remote=server2:tank/data_mirror type=snapshot
# Show all replication pairsmayacli show replication
# Show replication for a specific volumemayacli show replication tank/data
# Start replication (on demand)mayacli bind replication tank/data
# Stop replicationmayacli unbind replication tank/data
# Set a replication schedule (daily, keep 7)mayacli set replication tank/data interval=daily period=1 keep=7
# Set frequent replication (every 5 minutes, keep 12)mayacli set replication tank/data interval=frequent period=5 keep=12
# Disable replication schedulemayacli set replication tank/data interval=none
# Delete a replication pairmayacli delete replication tank/dataSee CLI Guide for the full command reference.