Storage Account (Blob / Files / Queue / Table)
Redundancy is set per storage account via the SKU (LRS/ZRS/GRS/GZRS). Geo-redundant tiers replicate to the paired region, but write access after a regional outage requires a failover you trigger yourself.
LRS (Locally Redundant Storage)
Three synchronous copies within a single physical datacenter in the primary region.
- Replication
- Synchronous
- RPO
- 0 within the datacenter
- RTO
- N/A beyond node/rack failure — a full datacenter loss is not recoverable on LRS
- Failover trigger
- N/A
- Relative cost
- No extra cost
Cheapest tier — the baseline the other SKUs are priced against.
Cheapest tier, and the only redundancy option for Azure managed disks beyond ZRS.
Shows Unknown at every tier — there's no fixed RPO/RTO for this option; it depends entirely on an architecture you'd have to design and build.
ZRS (Zone-Redundant Storage)
Three synchronous copies spread across separate Availability Zones in the primary region.
- Replication
- Synchronous
- RPO
- 0
- RTO
- Effectively 0 — reads/writes continue through a zone loss; some DNS repointing may briefly affect in-flight requests
- Failover trigger
- Automatic
- Relative cost
- Low cost premium
ZRS typically costs a modest premium over LRS per GB stored — real Azure Storage pricing puts it in roughly the 20-30% range depending on the tier.
Does not by itself protect against a regional disaster — pair with GZRS for that.
RA-GRS / RA-GZRS with Geo-priority replication (recommended)
Asynchronous replication to the paired region. Azure's Geo-priority replication feature now commits to an RPO ≤15 minutes for Block Blob data specifically. The RA- (read-access) variant costs the same as plain GRS/GZRS and adds an automatic, SLA-backed read-only endpoint on the secondary — but that's reads only: writes are still unavailable until you trigger an account failover, RA- or not.
- Replication
- Asynchronous
- RPO
- ≤15 min, SLA-backed — but only for Block Blobs. Files/Tables/Queues/Page Blobs replicate best-effort with no committed RPO
- RTO
- Reads: near-0, automatic, 99.99% SLA on the RA- secondary endpoint. Writes: failover process plus DNS update, typically under an hour once triggered
- Failover trigger
- Manual (customer-triggered)
- Relative cost
- Moderate cost premium
GRS/GZRS roughly doubles the per-GB storage cost versus LRS, since you're paying for a full replicated copy in the secondary region — only storage cost doubles, there's no compute tier here.
The RTO figure above (60 min) is for restored write access. Read availability during the outage is a separate, better number if you're on RA-GRS/RA-GZRS — see the gotcha below.
Can reach at most Risk, never Pass — failover requires you to detect the outage and trigger it yourself — the clock doesn't start until someone acts, so this can't count as automatic.
Gotchas
RA-GRS/RA-GZRS's automatic failover only covers reads
Read-Access variants expose the secondary region as a read-only endpoint automatically, with its own 99.99% SLA and no failover trigger needed — genuinely useful for read-tolerant workloads during a regional outage. But write access is identical to plain GRS/GZRS: still invisible until you manually trigger an account failover. Don't let the automatic read path get conflated with automatic recovery — the account is still down for writes.
Plain GRS/GZRS (without RA-) has no upside over the RA- variant
Read-Access geo-redundant storage costs the same as the non-RA SKU. If an account is provisioned as plain GRS or GZRS, that's very likely a missed setting rather than a deliberate choice — there's no cost or performance reason to leave out the RA- read endpoint.
The 15-minute RPO guarantee is Block Blob only
Geo-priority replication's SLA-backed ≤15 min RPO applies to Block Blob storage. Azure Files, Table Storage, Queue Storage, and Page Blobs on the same GRS/GZRS account replicate on a best-effort basis with no committed number — don't assume the headline RPO covers every workload in the account.
Managed disks don't support cross-region redundancy at all
Managed disks support LRS and (with limitations) ZRS only — no GRS/GZRS option exists. VM disk resiliency beyond a zone is Azure Site Recovery's job, not the storage layer's.