Cloud Tech by Victor
DevOpsIntermediate

Azure Storage

How Blob, File, and Disk storage in Azure fit different access patterns, what redundancy options (LRS, ZRS, GRS) actually protect against, and why access tiers change cost, not durability.

Updated 2026-07-223 min read

Overview

Azure Storage covers three genuinely different access patterns under one umbrella: Blob for API-driven unstructured object storage, File for network-mountable file shares, and Disk for a VM's own block storage. Two orthogonal choices then apply mostly to Blob Storage, redundancy (how many copies exist and where, which is a durability decision) and access tier (Hot/Cool/Archive, which is a cost-versus-retrieval-speed decision, not a durability one). Conflating these two, assuming a cheaper tier means less durable data, or that geo-redundancy means instantly readable in the secondary region, is the most common source of storage design mistakes.

Quick Reference

ServiceAccess patternTypical use
Blob StorageHTTP/HTTPS object APIUnstructured data at scale, images, backups, logs
File StorageSMB/NFS mountable shareShared network drive across multiple VMs
Disk StorageBlock storage, attached to one VMA VM's own persistent virtual hard disk
RedundancyProtects againstConsistency
LRSHardware failure within a datacenterSynchronous
ZRSDatacenter failure within a regionSynchronous
GRSRegional disasterAsynchronous to secondary region

Syntax

bash
az storage account create \
  --name appuploadsprod --resource-group rg-app \
  --sku Standard_GRS --kind StorageV2

Examples

bash
# Access tier changes cost and retrieval speed, not durability;
# an Archive blob has identical durability to a Hot blob with the
# same redundancy setting, but takes hours to rehydrate before read.
az storage blob set-tier \
  --container-name backups --name 2026-01-full.bak \
  --tier Archive

RA-GRS still means asynchronous replication

Even with read access enabled on the secondary region, GRS replication is asynchronous, recent writes may not have propagated yet. Don't assume the secondary region is a real-time mirror; it's a disaster-recovery copy, not a synchronous replica.

Visual Diagram

Common Mistakes

  • Assuming a cheaper access tier (Cool, Archive) means less durable data; durability is entirely determined by the redundancy setting, not the tier.
  • Treating RA-GRS's secondary region as synchronously up to date, then being surprised by stale reads during a failover.
  • Storing frequently accessed data in the Archive tier to save on storage cost, then paying far more in retrieval cost and multi-hour rehydration delay than was saved.
  • Using Disk Storage where Blob Storage would fit better (e.g., storing application-generated files that don't need to live on a specific VM's attached disk).

Performance

  • Blob Storage access latency is generally higher than a locally attached Disk, since it's accessed over HTTP(S) rather than as a block device, the trade-off is scalability and API-driven access versus raw local I/O speed.
  • Archive tier retrieval isn't just slower, it's asynchronous by design, rehydration can take hours, so it is unsuitable for anything on a request-serving path.
  • File Storage performance tiers (Standard vs. Premium) affect IOPS and throughput ceilings for shared-drive workloads the same way disk performance tiers do for VM-attached storage.

Best Practices

  • Choose the storage service based on access pattern first (API-driven object, mountable share, or VM-attached disk), not on habit.
  • Set access tiers based on actual access frequency, and use lifecycle management policies to automatically transition aging data to cheaper tiers instead of doing it manually.
  • Choose redundancy (LRS/ZRS/GRS) based on the actual failure domain you need to survive, not reflexively picking the most redundant (and expensive) option everywhere.
  • Never assume a secondary GRS region is real-time consistent, design any failover process around its asynchronous replication lag.

Interview questions

What is the difference between Blob Storage, File Storage, and Disk Storage in Azure?

Blob Storage is object storage for unstructured data (images, backups, logs), accessed via HTTP/HTTPS APIs, not mounted as a filesystem. File Storage provides fully managed file shares accessible via the SMB or NFS protocol, usable as a network drive that multiple VMs can mount simultaneously. Disk Storage provides block-level storage attached to a single VM, functioning as its virtual hard disk. The choice depends on access pattern: Blob for API-driven unstructured data at scale, File for shared network-drive-style access across machines, Disk for a VM's own persistent local-feeling storage.

What is the difference between locally redundant storage (LRS), zone-redundant storage (ZRS), and geo-redundant storage (GRS)?

LRS replicates data three times within a single datacenter; it protects against hardware failure but not a datacenter-level outage. ZRS replicates synchronously across three availability zones within one region, protecting against a single datacenter failure while keeping data within the region. GRS replicates asynchronously to a second, geographically distant region on top of LRS in the primary region, protecting against a regional disaster at the cost of the secondary copy lagging slightly behind (eventual, not synchronous, consistency) and being unreadable by default unless read access is explicitly enabled (RA-GRS).

How do access tiers (Hot, Cool, Archive) affect Blob Storage, and what do they not affect?

Access tiers change the cost trade-off between storage price and access/retrieval price: Hot has the highest storage cost but cheapest, immediate access; Cool has lower storage cost but a higher per-access cost and is meant for infrequently accessed data; Archive has the lowest storage cost but data must be rehydrated (a process taking hours) before it can be read at all. What tiers do not affect is durability, the redundancy option (LRS/ZRS/GRS) determines durability independently of which access tier a blob is in, so a Cool or Archive blob is exactly as durable as a Hot one with the same redundancy setting.

References

ShareXLinkedInReddit
Was this page helpful?
Suggest an improvement