Complete Guide to Azure Storage Services
Introduction to Azure Storage Services
Azure Storage is a comprehensive cloud solution offering a variety of storage services, including:
- Azure Blobs—a scalable object store typically used for binary data and text. The service can support big data analytics when using Data Lake Storage Gen2.
- Azure Files—a managed service for file shares. The service supports on-premises and cloud deployments.
- Azure Queues—a messaging store that enables reliable messaging between application components.
- Azure Tables—a NoSQL store offering schemaless storage for structured data.
- Azure Disks—a service offering block-level storage volumes for your Azure virtual machines (VMs).
In the sections below we’ll go into more detail about each of these services. Read this in-depth blog post to learn more about Azure storage pricing.
Types of Azure Storage Accounts
Azure Storage provides various storage accounts offering different features and pricing models. Here are the notable features and use cases offered by each account:
- General-purpose v2 accounts—basic accounts for various storage resources, including blobs, queues, tables, and files. These accounts are suitable for many typical storage scenarios.
- General-purpose v1 accounts—legacy accounts previously used for storage resources, including blobs, queues, tables, and files. Ideally, you should always prefer a general-purpose v2 account over v1.
- Block Blob Storage accounts—storage accounts offering premium performance characteristics for two types of blobs—block and append. Use this account for high transaction rates, consistently low storage latency, or smaller objects.
- File Storage accounts—storage accounts offering premium performance characteristics for files. Use this account for high-performance scale applications or enterprise applications.
- Blob Storage accounts—legacy storage accounts for blobs. Ideally, you should prefer a general-purpose v2 account over a blob storage account.
Azure also provides several Azure storage tiers you can use to optimize your costs.
Azure Blob Storage
Azure Blob offers cloud-based object storage optimized for huge amounts of unstructured data, such as binary or text data.
Blob Storage offers the following blob types:
- Block blobs—data blocks you can manage individually. You can use block blobs for text and binary data.
- Append blobs—data blocks optimized for append operations. You can use Append blobs to log data from VMs and other similar purposes.
- Page blobs—each page offers 512-byte for random read and write operations. You can use page blobs as disks for Azure VMs or store virtual hard drive (VHD) files.
You can use blob storage to store various data types, including files for distributed access, backup and restore data, archive information, and disaster recovery data. Blob storage is also suitable for streaming audio and video, writing to log files, and serving documents and images directly to browsers.
Azure Files
Azure Files provides fully-managed, cloud-based file shares. This service is ideal for containerization, lift and shift cloud migration scenarios and can help supplement or replace on-premises file servers.
You can mount Azure file shares concurrently through on-premises or cloud deployments and access them via the SMB or NFS protocols. Here is what you should know about each protocol:
- SMB—Azure file shares configured with SMB can be accessed from Linux, macOS, and Windows clients. You can cache SMB Azure file shares on Windows Servers using Azure File Sync to establish quick access.
- NFS—Azure file shares configured with NFS can be accessed only from Linux and macOS clients.
Azure Queue Storage
Azure Queue Storage lets you store a huge quantity of messages. You can access these messages from any location worldwide using authenticated calls with HTTP or HTTPS.
Here are notable features of Azure Queue Storage:
- Each queue message can reach a maximum of 64 KB.
- A queue can contain millions of messages, restricted only by the maximum capacity of the storage account.
- The service can deliver asynchronous messaging between application components regardless of their locations, including clouds, desktops, on-premises servers, and mobile devices.
This service is ideal for creating a backlog of work to process asynchronously, building process workflows, and managing asynchronous tasks.
Azure Table Storage
Azure Table is a key-attribute store that lets you store non-relational structured data in the cloud. Table storage is schemaless, allowing you to easily adapt data as needed.
Here are datasets commonly stored using Azure Table:
- User data for web applications
- Device information
- Address books
- Various metadata types
Azure Table lets you store numerous entities in each table. A storage account can contain as many tables as allowed by the capacity limit of the account.
Azure Managed Disks
Azure offers a managed disks service that lets you provision virtualized block-level storage volumes to use with Azure VMs.
A managed disk works like an on-premises server, except that Azure managed disks are available for on-demand provisioning. You can specify the desired disk type and size and provision the disk.
Here are key aspects to consider before choosing Azure managed disks:
- Disk types—Azure offers a variety of disk types, including standard hard disk drives (HDD), premium solid-state drives (SSD), standard SSDs, and ultra disks.
- VM disks—each subscription can create a maximum of 50,000 VM disks per region. This limitation applies to the same type of VM disks. For example, you can create thousands of HDD VMs using a single subscription.
- Availability Zones (AZs)—Azure-managed disks support AZs to provide high availability. AZs can help protect your applications from data center failures.
- Access control—Azure role-based access control (Azure RBAC) enables you to assign specific permissions for a managed disk to one or multiple users.
Azure Storage Best Practices
Here are a few best practices that can help you make more effective use of Azure storage services.
Define Multi-factor Authentication (MFA) for Administrator Accounts
You can use MFA to ensure that administrator accounts are properly protected. If an administrator account is compromised by attackers, they can create storage resources, delete existing resources, and steal sensitive data stored in your Azure storage services.
Plan for Bandwidth and Operations Restrictions per Blob
In Azure, a blog enables up to 500 requests per second. You might have a large number of clients reading from the same blob, and in some cases, the limit can be exceeded. If so, consider moving data to block blob storage, which provides a higher request rate. Block blob storage allows you to support a configurable number of IOPS for your data.
Another option is to use a content delivery network (CDN) to cache object data near to your clients and avoid a large volume of requests directly to your Azure blobs.
Enable Logging for Azure Blobs
Logs are important for monitoring data access patterns. You can use logs to create policies to reduce costs for storage blobs. For example, if logs show that data in specific blobs is not frequently accessed, you can move it to an archive storage tier to significantly reduce costs. Blog access logging is also important for security and compliance purposes, especially for sensitive data.
Enable Parallel Uploads
When you need to upload large volumes of data to Azure storage, it is a good idea to enable parallel uploads in your Azure Storage account. This can double the speed of your uploads. Set the ParallelOperationThreadCount parameter to eight times the number of cores available in the machine uploading data to Azure.
Conclusion
In this article, I explained the structure and capabilities of storage service in the Azure cloud. In particular, I reviewed:
- Types of Azure storage accounts—including General Purpose v1, General Purpose v2, and Block Blob Storage.
- Azure Blob Storage—elastically scalable object storage service.
- Azure Files—scalable cloud-based file storage.
- Azure Queue Storage—storage for messaging systems accessed by HTTP or HTTPS.
- Azure Table Storage—simple non-relational datastore using key-value pairs.
- Azure Managed Disks—virtual disk drives that can be attached to VMs.
In addition, I covered several best practices that can help you make more effective use of Azure storage resources. I hope this will be useful as you explore the use of cloud-based elastic storage services.