This post will walk you through figuring out Azure Storage accounts, pricing, and redundancy. One of the first things you will want to do when deploying virtual machines, websites (they can use them), or anything else in Azure is a storage account. But I find that most people, if they bother to search for the Azure storage pricing page, find the official page and get blizzard blindness.
The Official Guides
I find these pages to be useful:
- Introduction to Microsoft Azure Storage: A nice introduction to the terminology, types, etc.
- Azure Storage Pricing: Get the pricing for each option.
- MSDN – Azure Storage: Lots of additional links.
- Windows Azure Storage – A Highly Available Cloud Storage Service with Strong Consistency: An interesting whitepaper discussing the internals and replication architecture of Azure Storage.
The Storage Account Concept
I imagine that you are the regular IT guy that asks for X GBs of a LUN at a certain RAID level. Things are different in Azure. A Storage Account is an access point to Azure storage. The account has a URL with permission-based access:
- URL that is unique to the storage account accessed via TLS 1.0 (successor to SSL) or later
- A primary and a secondary access key
You create the storage account with a selected resiliency level. You do not configure a size – a single storage account can storage up to 500 TB of data and you pay for the amount of each service type that is contained within the storage account. You can create containers within a storage account that are similar to folders, allowing you to logically place your data/files. And there are remote access tools for managing storage.
So all this means that your storage “request” becomes … I want a storage account with name X (which is used as the basis for the URL) of resiliency Y in region Z.
There are 4 models of resiliency:
- Locally Redundant Storage (LRS): 3 synchronous copies in a single data centre in the region of choice. There is no facility fault tolerance – if that single data centre has a catastrophic failure then you lose everything.
- Geo-Redundant Storage (GRS): 3 synchronous copies in a single data centre in the region of choice, PLUS 3 asynchronous copies in the neighbouring region. GRS gets your data replicated to another region and this is how one gets facility fault tolerance.
- Read-Access Geo-Redundant Storage (RA-GRS): 3 synchronous copies in a single data centre in the region of choice, PLUS 3 asynchronous read-only copies in the neighbouring region
- Zone Redundant Storage (ZRS): There are three copies of your data, “replicated three times across two to three facilities, either within a single region or across two regions”. ZRS can only be used with Block Blobs (no use for IaaS).
I know from experience that when you consider deploying a storage account for the first time you will be be wondering “how do I know where to put my files to be sure that I’m charged at the right rate?”. Don’t worry … all this is handled for you. Store your files and they are treated appropriately. Here are the 4 service types:
- Block blobs: Streaming and storing documents, videos, pictures, and other unstructured text or binary data. This is the service used by Azure Backup.
- Files (still in preview at the time of writing): Used to create in-Azure SMB 2.x file shares for sharing content between applications in Azure – nothing else.
- Page blobs & disks: Used to store Azure VM files (virtual hard disks in the VHD format – VHDX is not supported).
- Tables & Queues: NoSQL storage for unstructured and semi-structured data, and very much a PaaS thing.
What Kind of Azure Storage for IaaS?
For the most part, we in the IaaS world are concerned with:
- Block blobs for Azure Backup, LRS or GRS
- Page blobs & disks for Azure virtual machine (VM) files, LRS or GRS
- Page blobs & disks for Azure Site Recovery, GRS only
However, you might see other services being used for monitoring data, configuration files, metadata, etc. Don’t worry, that stuff is tiny, Azure storage is CHEAP, and Azure manages all that stuff.
Premium Storage Accounts
Everything above is related to Standard Storage accounts. However, Azure offers the ability to deploy Premium Storage where virtual machine files are stored on SSDs instead of HDDs. This increases IOPS and reduces latency, and comes at a much greater cost. Don’t be foolish and deploy Premium Storage based on gut feeling – this cost is big enough that a proof-of-concept with realistic load simulation has determined that Standard Storage was insufficient.