There are currently four tiers of virtual hard disk (VHD) storage for Azure virtual machines:
- Standard HDD
- Standard SSD
- Premium SSD
- Ultra SSD
The choice of disk tier will impact your consumption costs, performance, and service level agreement (SLA). In this post, I will delve into each of these.
Note that I am going to focus on managed disks. Un-managed disks (where you explicitly pick a storage account to place the VHD page blobs) are old, no longer improved, have lower levels of availability, and don’t offer the Standard SSD or Ultra SSD tiers. You can convert single machines or availability set members with un-managed disks to managed disks with only a small amount of downtime.
All Azure disks are designed for 99.999% availability and all managed disks are stored with locally redundant storage (LRS) resilience (3 copies in a single storage cluster, in a single room, in a single data center) – see availability zones and/or Azure Site Recovery for Azure virtual machines if you need greater levels of resilience.
The Standard is described by Microsoft as being:
“… suited for dev/test and other infrequent access workloads that are less sensitive to performance variability.”
One might assume that they should go to the next level up (Standard SSD) for entry-level production workloads but that would be wrong. Most of the machines that I see being used are based on Standard HDD drives. This is because they:
- Are the cheapest option
- Are good enough for the job.
Sometimes with Microsoft, you have to remember that they get all caught up with the handful of “big money customers” that are responsible for many performance and size options in Azure that most of us will never deploy in test or production.
Standard HDD has the following performance levels per VHD:
- Up to 500 IOPS
- 60 MB/second
Standard HDD VHDs are stored on physical HDDs; this rotary mechanical media is in a multi-tenant storage cluster and therefore there is contention on the spindles between all the VHDs on the cluster. You should expect varying levels of performance, much as you would in an HDD-based SAN in a VMware or Hyper-V cluster.
If the throughput and IOPS of Standard SSD are good enough for you, but you wish to have lower latency and smoother flow of data then you should consider Standard SSD managed disks.
You can expect single-digit millisecond latency on most operations with Standard SSD. You should also observe a smoother flow of data because of the nature of flash storage which offers a parallel bus into and out of the disk, as opposed to a single head in an HDD.
If you require more performance, then Premium SSD might be required – but all is not as simple as one might imagine! Let’s start with the simple – Premium SSD offers lower latency than Standard HDD/SSD disks. After that things get more complicated.
The performance traits of a Premium SSD are based on the size of the disk; the bigger the VHD, the more throughput and IOPS it will offer. For example, a Standard HDD S4 (32 GB VHD) offers up to 60 MB/second throughput and 500 IOPS, but the Premium SSD P4 (32 GB VHD) offers 120 IOPS and 25 MB/second. There are two things to note in that last statement:
- Performance comparison: The small Premium SSD disk does offer less throughput and IOPS than a Standard HDD/SSD tier drive, but the largest Premium drive (P80 32 TiB) offer as much as 20,000 IOPS and 750 MB/second. The rates of the Standard drives do not increase with size.
- Predictability: The rates for Standard HDD/SSD drives are always listed as “up to” because there is no minimum guarantee due to the nature of the underlying hardware. Premium SSD drives offer specific rates.
Note that in any stress tests I have done in the last 4 years, I always achieve slightly below or above the listed rates for Standard or Premium drives.
Another important element of Premium SSD is that it comes with an SLA that you won’t get with Standard drives. Any virtual machine, regardless of availability set/zone membership, that only has Premium SSD drives will have a 99.9% SLA.
Note that Standard HDD/SSD drives can be deployed with any virtual machine series. However, Premium SSD drives can only be deployed with “S” variant machines, such as FS_v2-Series, DS_v3-Series, Bs-Series, and so on.
- Ultra SSD drives are still in private preview today and cannot be protected using Azure Backup.
- Can only be used with “S” variant machines – like Premium SSD – but are currently limited to Es_v3-Series and Ds_v3-Series machines.
- Comes with a virtual machine SLA – like Premium SSD.
- Can only be used as data disks, unlike the other tiers which can be deployed as OS disks too.
If Premium SSD is not fast enough for you, then maybe you need something faster, such as Ultra SSD. Ultra SSD offers the lowest latency, highest throughput and highest IOPS of any tier of disk.
What is different about Ultra SSD is that the performance is dictated by the configuration of the disk at the time of deployment. The other tiers of disk offer performance based on the underlying hardware.
With Ultra SSD you can achieve between 100-160,000 IOPS and 1-2,000 MB/second throughput, depending on the size of the disk and the level of performance that you require. Another difference is that the performance is metered and billed for, so you will pay for IOPS/hour and MB/second/hour which you do not account for with the other tiers.
Maybe you need to push things to be more extreme? If so, consider using the Ls-Series virtual machines; these machines place their OS and data disks on the internal flash storage of the underlying host (G-Series hardware) instead of on a storage cluster that is accessed across a network. The machines are therefore using fast flash storage that is inside the server with low latency.
But wait – something even faster is coming! We know that NVMe storage is being used in some Azure servers now – see Mission Critical Azure SQL Managed Instance. I believe that this is the “future virtual machine storage” that Mark Russinovich demonstrated at Ignite earlier this year.