What ASR gives you
- Continuous, crash-consistent replication of VM disks to the target region (RPO typically under a minute; app-consistent points every 1–12 hours as configured).
- Recovery plans to fail over groups of VMs in order, with scripts and manual steps.
- Test failover into an isolated network without affecting production.
ASR is for VMs. PaaS services (SQL Database, Storage, App Service) use their own DR features.
1. Prerequisites in the DR region
- Recovery Services vault in the target region (not the source).
- Target VNet with the same address space (simplest for apps with hard-coded IPs) or a different one with DNS updates.
- A separate isolated VNet for test failovers.
- Network security groups, route tables, firewall rules and DNS in the DR region prepared and kept in sync (IaC).
- Target VM size quota checked in the DR region.
2. Enable replication
Portal (Site Recovery → Enable replication) or at scale with Azure Policy ("Configure disaster recovery on virtual machines by enabling replication via Azure Site Recovery"). Check:
az resource list -g rg-asr-cin --resource-type Microsoft.RecoveryServices/vaults -o table
Replication policy: recovery point retention (for example 24 hours), app-consistent snapshot frequency (for example 4 hours). Enable multi-VM consistency for VMs that must be consistent with each other (costs extra CPU; max 16 VMs per group).
3. Recovery plan
Group 1: domain controller / DNS (if any)
└─ Manual action: confirm AD replication healthy
Group 2: database VMs
└─ Script: start SQL services, verify databases online
Group 3: application servers
Group 4: web servers
└─ Script: update Front Door / Traffic Manager / DNS to DR endpoints
Scripts run as Azure Automation runbooks; keep them idempotent.
4. Test failover (do this quarterly)
- Recovery plan → Test failover → latest processed point → isolated test VNet.
- Log in through Bastion in the test network; check services and data.
- Record the actual RTO.
- Cleanup test failover, with notes.
5. Real failover runbook
| Step | Action |
|---|---|
| 1 | Declare the disaster (who decides, criteria agreed in advance) |
| 2 | Recovery plan → Failover, choose recovery point (latest for lowest RPO, latest app-consistent for safety) |
| 3 | Validate application, then Commit |
| 4 | Switch DNS / Front Door / connection strings |
| 5 | Communicate to customers |
| 6 | Re-protect (replicate DR → original region) once the original region is back |
| 7 | Planned failback during a maintenance window, then re-protect again |
Gotchas
- Replication needs outbound access from source VMs to ASR endpoints (via the firewall, service tags
AzureSiteRecovery,Storage.<region>,AzureActiveDirectory,EventHub). - Disks added after enabling replication must be added to replication.
- Static IPs, load balancers and public IPs in the DR region need to be configured in the replicated item's Network settings.
Tip
Write the RTO from the last test into the customer's DR document, not the theoretical one. "We measured 47 minutes on 12 September" is worth more than "ASR supports RTO under 2 hours".