Azure storage is one of the fundamental concept to grasp before any non-trivia deployment can be done in azure. In this post I have tried to explain all the available storage options offered by Azure.
To get started with storing our data in Azure we need a valid subscription [free or pay as you go] within your Azure Account. Once you have an active subscription you can choose storage account type out of the two options offered by Azure.
- General Purpose
Each storage account has an upper limit of 500 TB and any data stored in these accounts gets replicated to ensure durability and high availability. Which replication is applied depends on the choice user makes and the type of data.
- LRS (Locally redundant storage): 3 copies in same data center.
- ZRS (Zone-redundant storage): 3 copies across data center and one or two regions.
- GRS (Geo-redundant storage): 6 copies, 3 in primary region and 3 in secondary region.
- RA-GRS (Read-access geo-redundant storage): same as GRS but with read access on copies in secondary region.
Now back to the storage accounts,
Blob Storage account: As the name suggests these accounts are specialized in storing blobs. Azure has categorized blobs into Block Blob, Append blob and Page blob [not supported by Blob Storage account]. All blobs are divided into chunks to make for easy upload/download. This account type also supports the concept of Hot and Cold tier where Hot tier is optimized for data with frequent read/write and Cold tier for storing infrequently accessed data.
- Block Blob: Default type for storing large objects, with each block upto 100 MB in size and upto 50,000 blocks / file, allowing a single file of max size 4.76 TB.
- Append Blob: Useful for files which grow incrementally like log files with new content getting appended to the end of the file, max block size for append blobs is 4 MB and upto 50,000 blocks/file, allowing a single file of max size 195 GB.
- Page Blob: Its not offered in Blob Storage account as its used for storing VHD files for VM’s. Each VHD file has to define the max size at the time of creation with upper limit of 8 TB. File consists of 512 byte pages optimized for random read and writes.
General Purpose Storage Account: This is the default type for majority of storage scenarios with 4 diff types of storage in this account.
- Blob Storage: Its the same Blob storage with Page, Block and Append blob options as described above but with all 3 being available for use, also there is no hot/cold tier on offer.
- File Storage: It is a general purpose file share which is accessible everywhere using SMB 3.0 protocol. Its similar to windows file share in usage and can be mapped to a windows drive letter with “net use” command for quick and easy access.
- Queue Storage: Azure storage queues are simple message store for reliable storing of messages upto 64 KB in size for maximum of 7 days. Max queue size is only limited by the storage space available in the storage account. It does not offer any broadcast or other advance messaging based services, for those services Azure Service bus is the right choice.
- Table Storage: Azure tables are a structured, non-relational data store. Each table stores a set of entities and each entity can have a max. of 255 properties to store data. Out of 255 properties 3 are pre-defined by Azure namely Timestamp which is populated by azure, partitionkey and rowkey. The other two properties need to be populated by user to uniquely identify each row in the table. Table storage is highly scalable with capability to store terabytes of data in a single table and allow really performant queries [although this will require partitioning].
Lastly there is an option of choosing standard (HDD) or premium (SSD) disks for storing your VHD files [Page Blob] in a General purpose storage account and the concept of managed disks. They are primarily used while creating VM’s which I will try and cover in one of my future blog.