Welcome to part one of our series on Azure Storage. Stay tuned for the second part.
An Overview of Azure Storage
Microsoft Azure Storage is a cloud-based storage offering that provides multiple storage solutions for organizations. In addition to a massively scalable object store for data objects, Azure Storage also offers a cloud-based file-sharing solution, a messaging store, NoSQL store, and disk storage for virtual machines.
All storage offerings available through Azure Storage are designed to be highly available and redundant. The underlying hardware that supports Azure Storage provides redundancy in the event of transient hardware failures, while many different replication offerings provide protection against local and regional outages.
Understanding that organizations appreciate and require secure data, Microsoft has designed Azure Storage so that all data written to it is encrypted when at rest and while in transit. With fine-grained controls available, organizations can manage who has access to what data as well.
Because it’s a managed service, maintenance of Azure Storage services, regular updates to the service, and issue resolution are all handled by Microsoft. This ensures that organizations can rid themselves of day-to-day care and feeding of the underlying hardware and services that support data storage.
The flexibility of Azure Storage ensures data stored in Azure Storage is accessible from anywhere in the world, via several methods and languages. Data hosted in Azure Storage can be accessed via HTTP or HTTPS, as well as via .NET, Java, Node.js, Python, PHP, and more. Data is also accessible via a stable REST API. Azure Storage also supports scripted data access via Azure PowerShell and Azure CLI. Data is also accessible visually via the Azure Storage Explorer and the Azure Portal.
Azure Storage includes several storage services. They include:
- Blob Storage
- Disk Storage
- File Storage
- Archive Storage
- Queue Storage
- Table Storage
All services available from Azure Storage are accessed through a storage account.
The Azure Blob Storage offering is built for massive object storage in the cloud. It is optimized for storing large amounts of unstructured data, which by definition does not adhere to any specific data model. Such data might include text data and binary data.
Typical uses for blob storage might include things like image serving or audio/video streaming, as well as log file storage. Other uses might include storing files for distributed access and storing backup data, archive data, and storing data for analysis later.
Blob storage consists of three key resources: storage account, containers within the storage account, and blobs that are hosted within the containers.
Each storage account provides a unique namespace within Azure for hosting data. All objects that are stored in Azure Storage feature an address that includes the unique storage account name.
Containers within an Azure storage account are used to organize blobs in much the same way that directories organize files within a traditional file system. Storage accounts can contain an unlimited number of containers, which in turn can store an unlimited number of blobs.
Blobs come in a few different types. They include:
- Block blobs
- Append blobs
- Page blobs
Block blobs consist of blocks of data that can be individually managed, and are used to store up to about 4.7TB of text and binary data. Append blobs are similar to block blobs since they are made up of blocks of data. However, append blobs are optimized for append operations, making them perfect for uses such as data logging from virtual machines. Page blobs can be used to store random access files that are up to 8TB in size. Virtual hard drives (VHDs) that serve as disks for virtual machines are stored in page blobs.
Azure VMs, just like any other computer, use disks as a place to store things like the OS, data, applications, and more. Every Azure VM has at least two disks attached, which include an OS disk and a temporary disk. Both disks are virtual hard disks, or VHDs, that are stored in an Azure storage account. In addition to an OS disk and a temporary disk, a virtual machine can also have one or more data disks attached as well. Data disks are also stored at VHDs.
Operating System Disk
The OS disk on every Azure VM is created from either a marketplace image or a custom image. It’s labeled as the “C: drive” by default and is registered as a SATA drive. The maximum size of the OS drive is 2TB.
The temporary disk that’s attached to a VM is used for short-term storage for apps and processes. It’s intended for storing things like page files and swap files. Temporary disks should not be used to store data that must be kept because data stored on temporary disks may be lost during maintenance events and whenever a VM is redeployed.
The temporary disk is labeled as “D: drive” by default.
Data disks are VHDs that are attached to virtual machines. They are used to store application data and other data that needs to be kept. Unlike OS disks, which are registered as SATA disks, data disks are registered as SCSI drives and labeled with a drive letter that you choose. Data disks have a maximum capacity of 4095 GB (or 4TB), while managed disks support a maximum capacity of 32,767 GB (32TB). The chosen size of a VM determines how many data disks can be attached to it. The size of the VM also determines the type of storage that can be used to host the disks.
Whether it’s a VHD that’s been uploaded or an empty VHD created in Azure, a data disk can be added to a VM at any time, by attaching it to the VM. When a disk is attached to a VM, the VM places a “lease” on the associated VHD file so that the VHD can’t be deleted while it’s attached to the VM.
A Note About VHDs:
VHDs that are used in Azure are .vhd files that are stored as page blobs in either a standard or premium storage account in Azure. It’s also important to note that Azure only supports the fixed disk VHD format.
When creating a disk in Azure, you have three performance tiers to choose from: Premium SSD Disks, Standard SSD, and Standard HDD Disks. In addition, there are two different types of disks that are offered, unmanaged and managed.
Standard HDD disks, as the name implies, are backed by mechanical HDDs. This tier offers cost-effective storage that can either be replicated locally within a single data center, or it can be geo-redundant across primary and secondary data centers.
Standard SSD disks are offered to support similar workloads as Standard HDD disks. However, Standard SSD disks provide consistent performance and better reliability than HDD. Standard SSD disks feature elements of both Premium SSD disks and of Standard HDD disks in order to provide an affordable storage solution that’s suitable for applications that do not require high disk IOPS (e.g., web servers). Microsoft recommends Standard SSD disks for most workloads.
Premium SSD disks are backed by SSDs. As such, they are a high-performance, low-latency disk option for virtual machines that run heavy I/O workloads (e.g., databases).
The “older” or “traditional” type of disk used by VMs in Azure is the unmanaged Disk. When using unmanaged disks, you’ll need to create and manage your own storage account, which will host your unmanaged disks.
If you choose the “managed disk” option when deploying a virtual machine, the creation and management of the storage account that hosts the managed disks is handled by Azure. All you need to do is specify the size of the managed disk and the performance tier (Standard or Premium), and Azure will create and manage the disk for you.
Microsoft recommends that managed disks be used for all new virtual machines and that any existing unmanaged disks be converted to managed disks. This should tell you all you need to know about the future of unmanaged disks.
Azure Files is a fully-managed file share offering hosted in the cloud. It provides hosting of file shares in Azure Storage that are accessible via the industry standard Server Message Block (SMB) protocol. As with traditional file shares, Azure file shares are concurrently mountable by cloud and on-premises machines, including Windows, Linux, and macOS. Azure file shares can also be used with Azure File Sync and cached on Windows Servers to provide quick access to data.
Azure file shares can be used to replace or supplement traditional on-premises file servers or even NAS devices. Because Azure file shares can be replicated to on-premises and cloud-based Windows servers via Azure File Sync, they are great for providing a distributed data cache for remote offices. When moving applications to the cloud, Azure file shares can facilitate the “lift and shift” approach because data that applications expect to reside on a file share can sit right in Azure files, in the cloud, close to the applications themselves.
Azure file shares are fully managed by Azure and they can be created, mounted, and managed via PowerShell and Azure CLI, meaning you can script solutions that access data stored in Azure file shares. Because Azure Files was built for resiliency, they are always available and you need not worry about downtime.
Stay tuned for the second part of this blog, where we explore other forms of Azure Storage. Learn more about designing and implementing an Azure storage strategy and leverage our multi-cloud learning platform to enhance your knowledge and practical experience in a cloud‑first environment.