Build highly available applications with zone-redundant storage (ZRS)
Zone-redundant storage (ZRS) replicates your data synchronously across three storage clusters in a single region. Each storage cluster is physically separated from the others and is located in its own availability zone (AZ). Each availability zone—and the ZRS cluster within it—is autonomous and includes separate utilities and networking features. A write request to a ZRS storage account returns successfully only after the data is written to all replicas across the three clusters.
When you store your data in a storage account using ZRS replication, you can continue to access and manage your data if an availability zone becomes unavailable. ZRS provides excellent performance and low latency. ZRS offers the same scalability targets as locally redundant storage (LRS). For more information on scalability targets for standard storage accounts, see Scalability targets for standard storage accounts.
Consider ZRS for scenarios that require consistency, durability, and high availability. Even if an outage or natural disaster renders an availability zone unavailable, ZRS offers durability for storage objects of at least 99.9999999999% (12 9's) over a given year.
Geo-zone-redundant storage (GZRS) (preview) replicates your data synchronously across three Azure availability zones in the primary region, then replicates the data asynchronously to the secondary region. GZRS provides high availability together with maximum durability. GZRS is designed to provide at least 99.99999999999999% (16 9's) durability of objects over a given year. For read access to data in the secondary region, enable read-access geo-zone-redundant storage (RA-GZRS). For more information about GZRS, see Geo-zone-redundant storage for highly availability and maximum durability (preview).
For more information about availability zones, see Availability Zones overview.
Support coverage and regional availability
ZRS currently supports standard general-purpose v2, FileStorage and BlockBlobStorage storage account types. For more information about storage account types, see Azure storage account overview.
General-purpose v2 ZRS accounts support block blobs, non-disk page blobs, standard file shares, tables, and queues.
For general-purpose v2 accounts, ZRS is generally available in the following regions:
- Asia Southeast
- Europe North
- Europe West
- France Central
- Japan East
- South Africa North
- UK South
- US Central
- US East
- US East 2
- US West 2
For FileStorage accounts (premium file shares) and BlockBlobStorage accounts (premium block blobs), ZRS is generally available in the following regions:
- Europe West
- US East
Microsoft continues to enable ZRS in additional Azure regions. Check the Azure Service Updates page regularly for information about new regions.
- Archive tier is not currently supported on ZRS accounts. See Azure Blob storage: hot, cool, and archive access tiers for more details.
- Managed disks do not support ZRS. You can store snapshots and images for Standard SSD Managed Disks on Standard HDD storage and choose between LRS and ZRS options.
What happens when a zone becomes unavailable?
Your data is still accessible for both read and write operations even if a zone becomes unavailable. Microsoft recommends that you continue to follow practices for transient fault handling. These practices include implementing retry policies with exponential back-off.
When a zone is unavailable, Azure undertakes networking updates, such as DNS repointing. These updates may affect your application if you are accessing your data before the updates have completed.
ZRS may not protect your data against a regional disaster where multiple zones are permanently affected. Instead, ZRS offers resiliency for your data if it becomes temporarily unavailable. For protection against regional disasters, Microsoft recommends using geo-redundant storage (GRS). For more information about GRS, see Geo-redundant storage (GRS): Cross-regional replication for Azure Storage.
Converting to ZRS replication
Migrating to or from LRS, GRS, and RA-GRS is straightforward. Use the Azure portal or the Storage Resource Provider API to change your account's redundancy type. Azure will then replicate your data accordingly.
Migrating data to ZRS requires a different strategy. ZRS migration involves the physical movement of data from a single storage stamp to multiple stamps within a region.
There are two primary options for migration to ZRS:
- Manually copy or move data to a new ZRS account from an existing account.
- Request a live migration.
Live migration is not currently supported for premium file shares. Only manually copying or moving data is currently supported.
If you need the migration to complete by a certain date consider performing a manual migration. A manual migration provides more flexibility than a live migration. With a manual migration, you're in control of the timing.
To perform a manual migration, you have options:
- Use existing tooling like AzCopy, one of the Azure Storage client libraries, or reliable third-party tools.
- If you're familiar with Hadoop or HDInsight, attach both source and destination (ZRS) account to your cluster. Then, parallelize the data copy process with a tool like DistCp.
- Build your own tooling using one of the Azure Storage client libraries.
A manual migration can result in application downtime. If your application requires high availability, Microsoft also provides a live migration option. A live migration is an in-place migration with no downtime.
During a live migration, you can use your storage account while your data is migrated between source and destination storage stamps. During the migration process, you have the same level of durability and availability SLA as you normally do.
Keep in mind the following restrictions on live migration:
- While Microsoft handles your request for live migration promptly, there's no guarantee as to when a live migration will complete. If you need your data migrated to ZRS by a certain date, then Microsoft recommends that you perform a manual migration instead. Generally, the more data you have in your account, the longer it takes to migrate that data.
- Live migration is supported only for storage accounts that use LRS replication. If your account uses GRS or RA-GRS, then you need to first change your account's replication type to LRS before proceeding. This intermediary step removes the secondary endpoint provided by GRS/RA-GRS.
- Your account must contain data.
- You can only migrate data within the same region. If you want to migrate your data into a ZRS account located in a region different than the source account, then you must perform a manual migration.
- Only standard storage account types support live migration. Premium storage accounts must be migrated manually.
- Live migration from ZRS to LRS, GRS or RA-GRS is not supported. You will need to manually move the data to a new or an existing storage account.
- Managed disks are only available for LRS and cannot be migrated to ZRS. You can store snapshots and images for Standard SSD Managed Disks on Standard HDD storage and choose between LRS and ZRS options. For integration with availability sets see Introduction to Azure managed disks.
- LRS or GRS accounts with Archive data cannot be migrated to ZRS.
You can request live migration through the Azure Support portal. From the portal, select the storage account you want to convert to ZRS.
- Select New Support Request
- Complete the Basics based on your account information. In the Service section, select Storage Account Management and the resource you want to convert to ZRS.
- Select Next.
- Specify the following values the Problem section:
- Severity: Leave the default value as-is.
- Problem Type: Select Data Migration.
- Category: Select Migrate to ZRS.
- Title: Type a descriptive title, for example, ZRS account migration.
- Details: Type additional details in the Details box, for example, I would like to migrate to ZRS from [LRS, GRS] in the __ region.
- Select Next.
- Verify that the contact information is correct on the Contact information blade.
- Select Create.
A support person will contact you and provide any assistance you need.
Live migration to ZRS FAQ
Should I plan for any downtime during the migration?
There is no downtime caused by the migration. During a live migration, you can continue using your storage account while your data is migrated between source and destination storage stamps. During the migration process, you have the same level of durability and availability SLA as you normally do.
Is there any data loss associated with the migration?
There is no data loss associated with the migration. During the migration process, you have the same level of durability and availability SLA as you normally do.
Are any updates required to the application(s) once the migration is complete?
Once the migration is complete the replication type of the account(s) will change to "Zone-redundant storage (ZRS)". Service endpoints, access keys, SAS, and any other account configuration options remain unchanged and intact.
Can I request a live migration of my general-purpose v1 account(s) to ZRS?
ZRS only supports general-purpose v2 accounts so before submitting a request for a live migration to ZRS make sure to upgrade your account(s) to general-purpose v2. See Azure storage account overview and Upgrade to a general-purpose v2 storage account for more details.
Can I request a live migration of my geo-redundant or read-access geo-redundant storage (GRS/RA-GRS) account(s) to ZRS?
Live migration is supported only for storage accounts that use LRS replication. If your account uses GRS or RA-GRS, then you need to first change your account's replication type to LRS before proceeding. This intermediary step removes the secondary endpoint provided by GRS/RA-GRS. Also, before submitting a request for a live migration to ZRS make sure your application(s) or workload(s) no longer require access to the secondary read-only endpoint and change the replication type of your storage account(s) to locally-redundant storage (LRS). See Changing replication strategy for more details.
Can I request a live migration of my storage account(s) to ZRS to another region?
If you want to migrate your data into a ZRS account located in a region different from the region of the source account, then you must perform a manual migration.
ZRS Classic: A legacy option for block blobs redundancy
Microsoft will deprecate and migrate ZRS Classic accounts on March 31, 2021. More details will be provided to ZRS Classic customers before deprecation.
Once ZRS becomes generally available in a region, customers won't be able to create ZRS Classic accounts from the Portal in that region. Using Microsoft PowerShell and Azure CLI to create ZRS Classic accounts is an option until ZRS Classic is deprecated.
ZRS Classic asynchronously replicates data across data centers within one to two regions. Replicated data may not be available unless Microsoft initiates failover to the secondary. A ZRS Classic account can't be converted to or from LRS, GRS, or RA-GRS. ZRS Classic accounts also don't support metrics or logging.
ZRS Classic is available only for block blobs in general-purpose V1 (GPv1) storage accounts. For more information about storage accounts, see Azure storage account overview.
To manually migrate ZRS account data to or from an LRS, ZRS Classic, GRS, or RA-GRS account, use one of the following tools: AzCopy, Azure Storage Explorer, Azure PowerShell, or Azure CLI. You can also build your own migration solution with one of the Azure Storage client libraries.
You can also upgrade your ZRS Classic account(s) to ZRS in the Portal or using Azure PowerShell or Azure CLI in the regions where ZRS is available. To upgrade to ZRS in the Azure portal, navigate to the Configuration section of the account and choose Upgrade:
To upgrade to ZRS using PowerShell call the following command:
Set-AzStorageAccount -ResourceGroupName <resource_group> -AccountName <storage_account> -UpgradeToStorageV2
To upgrade to ZRS using CLI call the following command:
az storage account update -g <resource_group> -n <storage_account> --set kind=StorageV2