Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
This article describes reliability support in Azure Table Storage, covering intra-regional resiliency via availability zones and multi-region deployments.
Reliability is a shared responsibility between you and Microsoft. You can use this guide to determine which reliability options fulfill your specific business objectives and uptime goals.
Table Storage is a service that stores structured NoSQL data in the cloud. It provides a schemaless store where each entity is accessed via a key and contains a set of attributes. A single table can contain entities that have different sets of properties, and properties can consist of various data types.
Table Storage provides several reliability features through the underlying Azure Storage platform. As part of Azure Storage, Table Storage inherits the same redundancy options, availability zone support, and geo-replication capabilities that ensure high availability and durability for your table data.
This article describes reliability and availability zones support in Table Storage. For a more detailed overview of reliability in Azure, see Azure reliability.
Note
Table Storage is part of the Azure Storage platform. Some of the capabilities of Table Storage are common across many Azure Storage services. In this article, we use Azure Storage to refer to these common capabilities.
Production deployment recommendations
For production environments, take the following actions:
Enable zone-redundant storage (ZRS) for the storage accounts that contain Table Storage resources. ZRS provides higher availability by replicating your data synchronously across multiple availability zones in the primary region. This replication protects against availability zone failures.
If you need resilience to region outages and your storage account's primary region is paired, consider enabling geo-redundant storage (GRS) to replicate data asynchronously to the paired region. In supported regions, you can combine geo-redundancy with zone redundancy by using geo-zone-redundant storage (GZRS).
For high-scale production workloads, or if you have high resiliency requirements, consider using Azure Cosmos DB for Table. Azure Cosmos DB for Table is compatible with applications that are written for Table Storage. It supports low-latency read and write operations at high scale and provides strong global distribution across multiple regions with flexible consistency models. It also provides built-in backup and other capabilities that enhance your application's resiliency and performance.
Reliability architecture overview
Table Storage operates as a distributed NoSQL database within the Azure Storage platform infrastructure. The service provides redundancy through multiple copies of your table data, and the specific redundancy model depends on your storage account configuration.
Locally redundant storage (LRS) replicates the data within your storage accounts to one or more Azure availability zones located in the primary region of your choice. Although there's no option to choose your preferred availability zone, Azure may move or expand LRS accounts across zones to improve load balancing. There's no guarantee that your data will be spread across zones. For more information about availability zones, see What are Availability Zones?.
Zone-redundant storage (ZRS), geo-redundant storage (GRS), and geo-zone-redundant storage (GZRS) provide extra protections. This article describes these options in detail.
Transient faults
Transient faults are short, intermittent failures in components. They occur frequently in a distributed environment like the cloud, and they're a normal part of operations. Transient faults correct themselves after a short period of time. It's important that your applications can handle transient faults, usually by retrying affected requests.
All cloud-hosted applications should follow the Azure transient fault handling guidance when they communicate with any cloud-hosted APIs, databases, and other components. For more information, see Recommendations for handling transient faults.
Table Storage client libraries and SDKs include built-in retry policies that automatically handle common transient failures such as network timeouts, temporary service unavailability (HTTP 503), throttling responses (HTTP 429), and partition server overload conditions. When your application experiences these transient conditions, the client libraries automatically retry operations by using exponential backoff strategies.
To manage transient faults effectively when you use Table Storage, take the following actions:
Configure appropriate timeouts in your Table Storage client to balance responsiveness with resilience to temporary slowdowns. The default timeouts in Azure Storage client libraries are typically suitable for most scenarios.
Implement exponential backoff for retry policies, especially when your application encounters HTTP 503 server busy or HTTP 500 operation timeout errors. Table Storage might throttle requests when individual partitions become hot or when storage account limits are approached.
Design partition-aware retry logic in high-scale applications. Partition-aware retry logic is a more advanced approach that considers partitioned architecture in Table Storage and distributes operations across multiple partitions to reduce the likelihood of encountering throttling on individual partition servers.
To learn more about the Table Storage architecture and how to design resilient and high-scale applications, see Performance and scalability checklist for Table Storage.
Availability zone support
Availability zones are physically separate groups of datacenters within each Azure region. When one zone fails, services can fail over to one of the remaining zones.
Table Storage is zone-redundant when you deploy it with ZRS configuration. Unlike locally redundant storage (LRS), ZRS guarantees that Azure synchronously replicates your table data across multiple availability zones. This configuration ensures that your tables remain accessible even if an entire availability zone becomes unavailable. All write operations must be acknowledged across multiple zones before the service completes the write, which provides strong consistency guarantees.
Zone redundancy is enabled at the storage account level and applies to all Table Storage resources within that account. Because the setting applies to the entire storage account, you can't configure individual entities for different redundancy levels. When an availability zone experiences an outage, Azure Storage automatically routes requests to healthy zones without requiring any intervention from you or your application.
Region support
You can deploy zone-redundant Azure Storage accounts in any region that supports availability zones.
Requirements
You must use a Standard general-purpose v2 storage account to enable ZRS for Table Storage. Premium storage accounts don't support Table Storage.
Cost
When you enable zone-redundant storage (ZRS), you're charged at a different rate than locally redundant storage (LRS) because of the extra replication and storage overhead.
For detailed pricing information, see Table Storage pricing.
Configure availability zone support
Create a zone-redundant storage account and table:
Create a storage account. Make sure to select ZRS, GZRS, or read-access geo-redundant storage (RA-GZRS) as the redundancy option.
Change replication type. To learn how to change an existing storage account to zone-redundant storage (ZRS) and about configuration options and requirements, see Change how a storage account is replicated.
Disable zone redundancy. Convert ZRS accounts back to a nonzonal configuration, such as locally redundant storage (LRS), by using the same redundancy configuration change process.
Normal operations
This section describes what to expect when a Table Storage account is configured for zone redundancy and all availability zones are operational.
Traffic routing between zones: Azure Storage with zone-redundant storage (ZRS) automatically distributes requests across storage clusters in multiple availability zones. Traffic distribution is transparent to applications and requires no client-side configuration.
Data replication between zones: All write operations to ZRS are replicated synchronously across all availability zones within the region. When you upload or modify data, the operation isn't considered complete until the data has been successfully replicated across all of the availability zones. This synchronous replication ensures strong consistency and zero data loss during zone failures.
Zone-down experience
When an availability zone becomes unavailable, Table Storage automatically handles the failover process by responding with the following behaviors:
Detection and response: Microsoft automatically detects zone failures and initiates recovery processes. No customer action is required for zone-redundant storage (ZRS) accounts.
If a zone becomes unavailable, Azure undertakes networking updates such as Domain Name System (DNS) repointing.
Notification: You can monitor zone failure events by using Azure Service Health and Resource Health. Set up alerts on these services to receive notifications of zone-level issues.
Active requests: In-flight requests might be dropped during the recovery process and should be retried. Applications should implement retry logic to handle these temporary interruptions.
Expected data loss: No data loss occurs during zone failures because data is synchronously replicated across multiple zones before write operations complete.
Expected downtime: A small amount of downtime, typically, a few seconds, might occur during automatic recovery as traffic is redirected to healthy zones. When you design applications for ZRS, follow practices for transient fault handling, including implementing retry policies with exponential back-off.
- Traffic rerouting: If a zone becomes unavailable, Azure undertakes networking updates such as Domain Name System (DNS) repointing so that requests are directed to the remaining healthy availability zones. The service maintains full functionality by using the healthy zones and doesn't require customer intervention.
Zone recovery
When the failed availability zone recovers, Azure Storage automatically restores normal operations across all of the availability zones. The service automatically ensures data consistency by synchronizing any operations that occurred during the outage period.
Testing for zone failures
When you use zone-redundant storage (ZRS), Azure Storage manages replication, traffic routing, and zone-down responses automatically. Because this feature is fully managed, you don't need to initiate or validate availability zone failure processes.
Multi-region support
Azure Storage, including Azure Blob Storage, Azure Files, Azure Table Storage, and Azure Queue Storage, provides a range of geo-redundancy and failover capabilities to suit different requirements.
Important
Geo-redundant storage (GRS) only works within Azure paired regions. If your storage account's region isn't paired, consider using the alternative multi-region approaches.
Replication across paired regions
Azure Storage provides several types of GRS in paired regions. Whichever type of GRS you use, data in the secondary region is always replicated by using locally redundant storage (LRS). This approach provides protection against hardware failures within the secondary region.
GRS provides support for planned and unplanned failovers to the Azure paired region when there's an outage in the primary region. GRS asynchronously replicates data from the primary region to the paired region.
Geo-zone-redundant storage (GZRS) replicates data in multiple availability zones in the primary region and into the paired region.
- Read-access geo-redundant storage (RA-GRS) and read-access geo-zone-redundant storage (RA-GZRS) extends geo-redundant storage (GRS) and geo-zone-redundant storage (GZRS), with the added benefit of read access to the secondary endpoint. These options are ideal for applications designed for high availability business-critical applications. In the unlikely event that the primary endpoint experiences an outage, applications configured for read access to the secondary region can continue to operate.
Failover types
Azure Storage supports three types of failover for different scenarios.
Customer-managed unplanned failover: You're responsible for initiating recovery if there's a region-wide storage failure in your primary region.
Customer-managed planned failover: You're responsible for initiating recovery if another part of your solution has a failure in your primary region. You need to switch your whole solution over to a secondary region.
Microsoft-managed failover: In exceptional circumstances, Microsoft might initiate failover for all geo-redundant storage (GRS) accounts in a region. However, Microsoft-managed failover is a last resort and is expected to only be performed after an extended period of outage. You shouldn't rely on Microsoft-managed failover.
GRS accounts can use any of these failover types. You don't need to preconfigure a storage account to use any of the failover types ahead of time.
Region support
Azure Storage geo-redundant configurations use Azure paired regions for secondary region replication. The secondary region is automatically determined based on your primary region selection and can't be customized. For a complete list of Azure paired regions, see Azure regions list.
If your storage account's region isn't paired, consider using the alternative multi-region approaches.
Requirements
Geo-redundant storage (GRS) and customer-initiated failover and failback are available in all Azure paired regions that support general-purpose v2 Azure Storage accounts.
Considerations
When you implement multi-region Table Storage, consider the following important factors:
Asynchronous replication latency: Data replication to the secondary region is asynchronous, which means that there's a lag between when data is written to the primary region and when it becomes available in the secondary region. This lag can result in potential data loss if a primary region failure occurs before recent data is replicated. The data loss is measured by the recovery point objective (RPO). You can expect the replication lag to be less than 15 minutes, but this time is an estimate and not guaranteed.
You can check the Last Sync Time property to understand how much data might be lost if your storage account has an unplanned failover.
Secondary region access: With geo-redundant storage (GRS) and geo-zone-redundant storage (GZRS) configurations, the secondary region isn't accessible for reads until a failover occurs.
read-access geo-redundant storage (RA-GRS) and read-access geo-zone-redundant storage (RA-GZRS) configurations provide read access to the secondary region during normal operations, but because of the asynchronous replication latency, they might return slightly outdated data.
- Feature limitations: Some Azure Storage features aren't supported or have limitations when you use geo-redundant storage (GRS) or customer-managed failover. Review feature compatibility before you implement geo-redundancy.
Cost
Multi-region Azure Storage account configurations incur extra costs for cross-region replication and storage in the secondary region. Data transfer between Azure regions is charged based on standard inter-region bandwidth rates.
For detailed pricing information, see Table Storage pricing.
Configure multi-region support
- Create a new geo-redundant storage (GRS) account. To create a GRS account, see Create a storage account and select GRS, read-access geo-redundant storage (RA-GRS), geo-zone-redundant storage (GZRS), or read-access geo-zone-redundant storage (RA-GZRS) during account creation.
Enable geo-redundancy on an existing storage account. To convert an existing storage account to geo-redundant storage (GRS), see Change how a storage account is replicated for step-by-step conversion procedures.
Warning
After your account is reconfigured for geo-redundancy, it might take a significant amount of time before existing data in the new primary region is fully copied to the new secondary region.
To avoid a major data loss, check the value of the Last Sync Time property before you initiate an unplanned failover. To evaluate potential data loss, compare the last sync time to the last time that data was written to the new primary region.
Disable geo-redundancy. Convert GRS accounts back to single-region configurations like locally redundant storage (LRS) or zone-redundant storage (ZRS) by using the same redundancy configuration change process.
Normal operations
This section describes what to expect when a storage account is configured for geo-redundancy and all regions are operational.
Traffic routing between regions: Azure Storage uses an active-passive approach where all write operations and most read operations are directed to the primary region.
For read-access geo-redundant storage (RA-GRS) and read-access geo-zone-redundant storage (RA-GZRS) configurations, applications can optionally read from the secondary region by accessing the secondary endpoint. This approach requires explicit application configuration and isn't automatic. Also, because of the asynchronous replication lag, data in the secondary region might be slightly outdated.
Data replication between regions: Write operations are first committed to the primary region by using the following configured redundancy types:
- Locally redundant storage (LRS) for geo-redundant storage (GRS) and RA-GRS
- Zone-redundant storage (ZRS) for geo-zone-redundant storage (GZRS) and RA-GZRS
After successful completion in the primary region, data is asynchronously replicated to the secondary region where it's stored by using LRS.
The asynchronous nature of cross-region replication means that there's typically a lag time between when data is written to the primary region and when it's available in the secondary region. You can monitor the replication time by using the Last Sync Time property.
Region-down experience
This section describes what to expect when a storage account is configured for geo-redundancy and there's an outage in the primary region.
Customer-managed failover (unplanned): Use an unplanned failover when storage in the primary region is unavailable.
Detection and response: In the unlikely event that your storage account is unavailable in your primary region, you can consider initiating a customer-managed unplanned failover. To make this decision, consider the following factors:
Whether Azure Resource Health shows problems accessing the storage account in your primary region
Whether Microsoft advises you to perform failover to another region
Warning
An unplanned failover can result in data loss. Before you initiate a customer-managed failover, decide whether the restoration of service justifies the risk of data loss.
Notification: Region failure events can be monitored through Azure Service Health and Resource Health. Set up alerts on these services to receive notifications of region-level issues.
Active requests: During the failover process, both the primary and secondary storage account endpoints become temporarily unavailable for both reads and writes. Any active requests might be dropped, and client applications need to retry after the failover completes.
Expected data loss: Data loss is common during an unplanned failover because of the asynchronous replication lag, which means that recent writes might not be replicated. You can check the Last Sync Time property to understand how much data might be lost during an unplanned failover. You can typically expect the data loss to be less than 15 minutes, but that time isn't guaranteed.
Expected downtime: Failover typically completes within 60 minutes, depending on the account size and complexity.
Traffic rerouting: As the failover completes, Azure automatically updates the storage account endpoints so that applications don't need to be reconfigured. If your application keeps Domain Name System (DNS) entries cached, it might be necessary to clear the cache to ensure that the application sends traffic to the new primary region.
Post-failover configuration: After an unplanned failover completes, your storage account in the destination region uses the locally redundant storage (LRS) tier. If you need to geo-replicate it again, you need to re-enable geo-redundant storage (GRS) and wait for the data to be replicated to the new secondary region.
For more information about how to initiate customer-managed failover, see How customer-managed (unplanned) failover works and Initiate a storage account failover.
Customer-managed failover (planned): Use a planned failover when storage remains operational in the primary region, but you need to fail over your whole solution to a secondary region for another reason.
Detection and response: You're responsible for deciding to fail over. You typically make this decision if you need to fail over between regions even though your storage account is healthy. For example, you might trigger a failover when there's a major outage of another application component that you can't recover from in the primary region.
Notification: Region failure events can be monitored through Azure Service Health and Resource Health. Set up alerts on these services to receive notifications of region-level issues.
Active requests: During the failover process, both the primary and secondary storage account endpoints become temporarily unavailable for both reads and writes. Any active requests might be dropped, and client applications need to retry after the failover completes.
Expected data loss: No data loss is expected because the failover process waits for all data to be synchronized.
Expected downtime: Failover typically completes within 60 minutes, depending on the account size and complexity. During the failover process, both the primary and secondary storage account endpoints become temporarily unavailable for both reads and writes.
Traffic rerouting: As the failover completes, Azure automatically updates the storage account endpoints so that applications don't need to be reconfigured. If your application keeps DNS entries cached, it might be necessary to clear the cache to ensure that the application sends traffic to the new primary region.
Post-failover configuration: After a planned failover completes, your storage account in the destination region continues to be geo-replicated and remains on the GRS tier.
For more information about how to initiate customer-managed failover, see How customer-managed (planned) failover works and Initiate a storage account failover.
Microsoft-managed failover: In the rare case of a major disaster, where Microsoft determines that the primary region is permanently unrecoverable, Microsoft might initiate automatic failover to the secondary region. This process is managed entirely by Microsoft and requires no customer action. The amount of time that elapses before failover occurs depends on the severity of the disaster and the time required to assess the situation.
- Notification: Region failure events can be monitored through Azure Service Health and Resource Health. Set up alerts on these services to receive notifications of region-level issues.
Important
Use customer-managed failover options to develop, test, and implement your disaster recovery plans. Don't rely on Microsoft-managed failover, which might only be used in extreme circumstances. A Microsoft-managed failover is likely initiated for an entire region. It can't be initiated for individual storage accounts, subscriptions, or customers. Failover might occur at different times for different Azure services. We recommend that you use customer-managed failover.
Region recovery
The failback process differs significantly between Microsoft-managed and customer-managed failover scenarios.
Customer-managed failover (unplanned): After an unplanned failover, the storage account is configured with locally redundant storage (LRS). To fail back, you need to re-establish the geo-redundant storage (GRS) relationship and wait for the data to be replicated.
Customer-managed failover (planned): After a planned failover, the storage account remains geo-replicated. You can initiate another customer-managed failover to fail back to the original primary region. The same failover considerations apply.
Microsoft-managed failover: If Microsoft initiates a failover, it's likely that a significant disaster occurred in the primary region, and the primary region might not be recoverable. Any timelines or recovery plans depend on the extent of the regional disaster and recovery efforts. You should monitor Azure Service Health communications for details.
Testing for region failures
You can simulate regional failures to test your disaster recovery procedures.
Planned failover testing: For geo-redundant storage (GRS) accounts, you can perform planned failover operations during maintenance windows to test the complete failover and failback process. Planned failover doesn't require data loss, but it does involve downtime during both failover and failback.
Secondary endpoint testing: For read-access geo-redundant storage (RA-GRS) and read-access geo-zone-redundant storage (RA-GZRS) configurations, regularly test read operations against the secondary endpoint to ensure that your application can successfully read data from the secondary region.
Alternative multi-region approaches
The cross-region failover capabilities of Azure Storage might be unsuitable because of the following reasons:
Your storage account is in a nonpaired region.
Your business uptime goals aren't satisfied by the recovery time or data loss that the built-in failover options provide.
You need to fail over to a region that isn't your primary region's pair.
You need an active/active configuration across regions.
Instead, you can design a cross-region failover solution that meets your needs. A complete treatment of deployment topologies for Azure Storage is outside the scope of this article, but you can consider a multi-region deployment model.
Note
For applications built to use Table Storage, consider using Azure Cosmos DB for Table. Azure Cosmos DB for Table supports advanced multi-region requirements, including support for nonpaired regions. It's also designed for compatibility with applications built for Table Storage.
You can deploy Azure Storage across multiple regions by using separate storage accounts in each region. This approach provides flexibility in region selection, the ability to use nonpaired regions, and more granular control over replication timing and data consistency. When you implement multiple storage accounts across regions, you need to configure cross-region data replication, implement load balancing and failover policies, and ensure data consistency across regions.
For Table Storage, a multiple-account approach requires you to manage data distribution, handle synchronization between tables across regions including conflict resolution, and implement custom failover logic.
Backups
Table Storage doesn't provide traditional backup capabilities like point-in-time restore (PITR). However, you can implement custom backup strategies for table data. For most solutions, you shouldn't rely exclusively on backups. Instead, use the other capabilities described in this guide to support your resiliency requirements. However, backups protect against some risks that other approaches don't. For more information, see Redundancy, replication, and backup.
If you require built-in backup capabilities, consider moving to Azure Cosmos DB for Table, which provides support for both periodic and continuous backups. For more information, see Online backup and on-demand data restore in Azure Cosmos DB.
For scenarios that require data backup from Table Storage, consider the following approaches:
Export by using Azure Data Factory. Use the Azure Data Factory connector for Table Storage to export your entities to another location. For example, you can back up each entity to a JSON file that's stored in Azure Blob Storage.
Perform application-level backup. Implement custom backup logic within your applications to export critical table entities to other storage services like Azure SQL Database or Azure Cosmos DB for more robust backup and restore capabilities.
When you design backup strategies for Table Storage, consider the partitioned nature of the data and ensure that your backup processes can handle large tables efficiently by processing multiple partitions in parallel.
Service-level agreement
The service-level agreement (SLA) for Azure Storage describes the expected availability of the service and the conditions that must be met to achieve that availability expectation. The availability SLA you're eligible for depends on the storage tier and the replication type that you use. For more information, see SLAs for Online Services.