Tuesday, 10 March 2015

Understanding BLOB storage in Azure

Since finding out that BLOB storage is the default storage type in Azure for your virtual machines I had a sudden interest to gain a strong understnading of how BLOB storage works.

BLOB stands for "Binary Large Object". From a database stand point a BLOB is typically binary data that does not conform to a common database type (e.g. string, interger and so on...) - an typical example might be an image.

Allows client data to be uploaded in binary format - the binary data (blobs) are stored in what Microsoft refer to as "Containers." Typically a storage account can contain unlimited containers and a container can contain unlimited blobs - as longs as the a block blob does not exceed 200GB and a page blog does not exceed 1TB.

As evident above there are two main types of blobs:
Block Blobs - Block Blobs consist of binary data that has been segmented into "blocks" for ease of transmission over a network. Each block within a blob can be upto 4MB in size and will vary and has it's own unique block ID. This allows blocks to be downloaded separetly / independently and in an asyncronous fashion - but upon completion be re-ordered in the correct sequence.

Page Blocks: Page Blocks as mentioned above can not exceed 1TB and consist of a collection of 512-byte pages. They are actually used for the VHD's for the IaaS (Infrastructure as a Service) VM's.

In order to access block storage Microsoft has provided a API access for a number of well known languages e.g. PHP, JAVA, Python and so on - hence allowing programs to easily access this storage.

It is also accessable via HTTP as follows:
http://<your-storage-account-name>/blob.core.windows.net/<container-name>/blob-name

You will likely notice during the VM provisioning stage a Storage Account will automatically be created for you and inside there a container created called "vhds" which should house all of your VM disks.

0 comments:

Post a Comment