Azure Storage Architecture
There are two major components of Azure Storage and they are – Storage Stamps, Location Services. Each storage stamp consists of a cluster of storage node racks. Every rack has a fault domain of its own and the number of racks present can vary based on various factors. Utilization of storage stamps can reach up to seventy percent, after that data is relocated to a different stamp using location services.
Location services are generally distributed across globe and these services are responsible for storage stamps management. This service includes mapping storage accounts to storage stamps, namespace management, and adding new storage stamps. Upon creation of a new storage account, this location service maps the storage account to a primary storage stamp and also updates DNS so that it can point to virtual IPs. Apart from this, the metadata storage is also handled by the location services.
The storage stamps can be of the following types:
- Front End Layer
- Partition Layer
- Stream Layer
1. Front End Layer
This comprises servers, which are stateless. The main responsibility of these servers is to serve the incoming request by doing looking up Account Name and authorizing the requests. Its responsibilities also include forwarding the request to relevant servers. Apart from these tasks this layer also helps in caching the data.
2. Partition Layer
The partition layer manages the abstraction and tracks storage objects in Object Table. Ther are mainly three components of partition layer, they are –
- The Partition Manager
This is responsible for segregating the Object Table into Range Partition and it also keeps track of the mapping table.
- The Partition Servers
It is responsible to cater the request to Range Partition under dictation by the Partition Manager.
- The Lock Service
This component chooses the Partition Manager and assigns the lease to Partition Servers for serving a specific range Partition.
3. Stream Layer
This layer stores data in the disk and provide an interface to Partition Layer. This data can be distributed for balancing the load and can be replicated for redundancy across servers.
The Stream layer mainly comprises of two parts and they are called The Extend Nodes and The Stream Manager respectively.
- The Extreme Nodes
These are the nodes with extended replicas and their blocks. However, Extreme Nodes are unaware of abstraction but manage the extents by treating each extent as a separate file. It also keeps track of data blocks and indexes, which maps the data offset to their corresponding blocks along with file locations. Extent Nodes keeps track of the extent and the peer replicas.
- The Stream Manager
It is a standard cluster, which keeps track of stream namespaces. It also keeps track of the extents to stream mapping along with distribution of extents. Stream Manager Polls Extreme Nodes and checks compliance accordingly.
Lazy replication to extreme nodes starts to spread across fault domains if the Stream Manager detects that extents are stored in fewer extreme nodes. The smallest units of Stream Layer are the extents and extents are made up of small blocks. On the other hand, blocks are the smallest unit of data for writing and reading.
Azure Storage Replication
Two kinds of replication are there in Azure – Intra Stamp replication and Inter Stamp Replication.
- Inter Stamp Replication: An asynchronous replication handled by partition layer, which helps in geo-redundancy if any disaster or calamity occurs. Entire delta changes are replicated to different stamps, which helps in disaster recovery.
- Intra Stamp Replication: Asynchronous replication handled by Stamp layer. It ensures data redundancy during disk, server, or rack failures. Blocks are the unit of replication, which makes up a storage object.
Apart from this, there are few other important components, which contributes to the wonderful performance of, fault tolerance of Azure storage, they are as follows:
- Read Load balance
- Spindle Anti Starvation
With so much going in the backend, Azure ensures that the system is not only fault-tolerant but also consistent regarding performance and maintainability.
What is Blob storage?
Before getting into the definition of Azure BLOB storage, we first need to understand what is BLOB storage. BLOB stands for Binary Large Object and this type of storage is generally used for storing media like images, videos, etc. Microsoft offers three kinds of BLOB storage; they are as follows:
- Block BLOBS
- Append BLOBS
- Page BLOBS
BLOB Storage working
Block BLOB is used to upload and store a large amount of data. Append BLOB is used to optimize any operations therefore lot increases system efficiency. Page BLOB is used for paging and contexts witching purposes, this allows random read and writes operations to speed up.
Why Use Blob Storage?
There can be multiple reasons to use the BLOB storage, which include taking the load off your website or sharing files with peer users. In Azure BLOB, it provides persistent data storage, which is very crucial. With Azure cloud services, a user can easily execute their code in the virtual machines without having to worry about managing those themselves. The hard drives in Azure Virtual Machines are not persistent. Due to this, long-term use of any files needs to be put in persistent storage, which is why BLOB is important in this context.
Let us start with the Microsoft Azure Storage services, which are BLOB Storage, along with Windows Azure Tables and Windows Azure Queues. Azure Table stores data in key-value format and the Azure Queue service provides the messaging capability. However, Azure Service account needed to use any of these services. You can refer to the Azure official website for details of how to create an Azure account in order to use these services.
Briefly, BLOB storage is used in the following scenarios:
- Serving media like images or videos to browser
- File storage for distributed access
- Log Management
- Data storage for disaster management
However, normal file storage is used in situations like the following:
- Storing normal document on image files in local memory
- All Lift and Shift kind of applications
- Simple cloud development
This is a guide to Azure Storage. Here we discuss an Azure Storage Architecture, working, what is blob storage? Why Use BLOB Storage?. You can also go through our other related articles to learn more –