We’ll narrow the discussion to the IaaS Disks offering, a persistent disk for Azure IaaS VMs, available as Standard (HDD) and Premium (SSD) SKUs. Besides considering the different SKUs that will dictate the storage performance and availability of your workload, there is also a couple of disk types to take into consideration, Unmanaged Disks and Managed Disks.
Unmanaged disks require customers to manage their VM Disks in the format of a VHD file into storage accounts, with an overhead in the management aspect of it that was later abstracted from customers with the GA of Managed Disks. Besides reducing the management overhead, Managed Disks also improved some performance aspects for Standard Disks. If you are looking to migrate from unmanaged to managed, I personally think this is a great option, and Microsoft did a great job in documenting it and making it easy to happen, as you can read here.
As you have all those different scenarios, what should you look for to take advantage of the right options while attending the workload requirements? That is a question I hear from different customers, and especially for Unmanaged Disks, there are different things to talk about:
Azure Storage Account Design
Storage specific limits are documented on this link, but in addition to the documented limits that will influence on your Azure storage account design, there are other important aspects related to the workload profile you should consider, for example:
- What is the required IOPS?
- What is the required Throughput?
- What is the required Volume Size?
- What is the Latency requirement?
- Does this workload required sustained IOPS performance?
- What is the workload type: e.g. database, file server, web server etc.?
Once you have the workload profile, combining the information with the storage account type limits, you can decide on your storage account design, e.g.: number of volumes/disks per storage account.The recommended number of disks per storage account depends on the storage type, e.g.: P10, P20 and P30 (all premium), and as we can see in the following table, the limitation is per disk type. This information is available on this link.
For Premium Storage Account (SSD)
The recommended number of disks per storage account depends on the storage type, e.g.: P10, P20 and P30 (all premium), and as we can see in the following table, the limitation is per disk type. This information is available on this link.
|Premium Storage Disk Type||P10||P20||P30|
|Disk Size||128 GiB||512 GiB||1024 GiB (1 TB)|
|Max IOPS per disk||500||2300||5000|
|Max throughput per disk||100 MB/s||150 MB/s||200 MB/s|
|Max number of disks per storage account||280||70||35|
Note that the IOPS limit for Premium Storage is per volume (P10, P20 or P30), and not per Storage account. You can mix and match all of them on the same storage account, as long as you don’t go above 35TB. The assumption is that as long as your environment is under those numbers, you should get the expected performance. Remember also that there are limits per VM, as explained here. Look for “Virtual machine disks: per VM limits”. In other words, independently from the limits explained above, your VM type will have specific IOPS/Throughput limits.
For Standard Storage Account (HDD)
We measure the limits for a standard storage account slightly different from a premium storage account, e.g.: it has a limitation of 20k IOPS (assuming 1KB object size) per storage account, whereas for premium storage account the practical limit you need to consider is 35TB of capacity.Taking this into consideration, the rule of thumb for the number of disks per standard storage account is 40 (considering 20,000/500 IOPS per disk). But always consider your workload profile as mentioned previously.
I hope this information can help you to take full advantage of Azure Storage Disks!