This blog entry is the second in a series regarding virtual machines within Microsoft’s Azure Infrastructure-as-a-Service (IaaS) platform. This entry will focus on understanding the different options for VM sizes and choosing the right VM SKU.
It’s time. You’ve decided to start migrating some of your infrastructure to Azure. While it can be tempting to jump in with both feet, it is important to first take some time to understand what you are getting yourself into. A good place to start is vocabulary. Let’s all use the same terms to mean the same thing.
What’s in a name? E48ds_v4? D32a_v? Which virtual machine SKU do you need? Cryptic, huh?
Seeing these VM sizes or “SKUs”, it doesn’t immediately seem like there is any rhyme or reason to the naming. When choosing a VM, just scrolling through the list in the interface or the Azure calculator can be confusing. Microsoft clearly made some mistakes, as early VM SKUs were essentially random. But rest assured, Microsoft did smarten up and now there is some rhyme and a little reason for the naming convention for newer VMs, even if they don’t exactly roll off the tongue. Let’s break it down.
First, Azure VMs are placed in a category that helps to narrow down the initial decision of what VM type you may need. The first letter in the SKU is representative of the category in which the server belongs.
- General Purpose: A, B, and D series – VMs in this category have a balanced CPU to RAM ratio
- Compute Optimized: F series – VMs with a high CPU to RAM ratio
- Memory Optimized: E, and M series – VMs with high RAM to CPU ratio
- Storage Optimized: L series – VMs that provide extremely high storage throughput
- GPU: N Series – specialized VMs targeted for graphic intensive workloads such as video editing, CAD, CAM, etc.
- High Performance Compute: H series – Most powerful CPUs
Within each series, you may have additional categorizers that further break down that category. For example, the GPU series VMs are actually comprised of subcategories NC, ND, and NV. The large majority of VMs deployed, especially for law firms, belong to the general purpose family. This category also contains the most subcategories, where we will dive a bit deeper. The general purpose VMs are made up of 3 different families:
- A series: Lower powered CPU family with few options
- B series: Burstable VMs – These VMs are very cheap, but come with a number of limitations with respect to performance. We’ll cover more on these in a future post.
- D series: More mainstream usage, faster CPU than the A series, and multiple options
The D Series is the most popular of these and offers the most in the way of optional configurations. Unfortunately, more options creates more confusion. For example, we’ll examine the D8as_v4 and D8d_v4 SKUs. We already know they are part of the D family, but there must be some difference between the “as” and the “d” in the middle, in terms of features and possibly cost. Both have 8 vCPUs and 32 GB of RAM, but one will cost you $7,884 per year to run, while the other will cost you $7,148. Let’s dig deeper yet. The official breakdown on the naming convention looks like:
[Family] + [Sub Family] + [vCPU Count] + [Additive Features] + [Accelerator Type] _ [Version]
The items in bold will always be present, while the others may or may not exist for a given SKU. We already referenced the family, and the sub family. For the D Series VMs, there is one subfamily, the DC series VMs, which we will also cover in a subsequent post.
The number of vCPUs should be fairly self-explanatory (e.g. a D8 VM will have 8 vCPUs), but the phrase “should be” does some heavy lifting here. Remember that these naming conventions are about 3 years old, while Azure has some SKUs much older than that. There are still a number of SKUs available that do not follow the newer naming convention (e.g. there is a D13 SKU with 8 vCPUs).
The additive features are where a lot of the confusion comes in.
- a = AMD-based processor (as opposed to the default Intel-based processor)
- d = disk (local temp disk is present)
- h = hibernation capable
- i = isolated size
- l = low memory; a lower amount of memory than the memory intensive size
- m = memory intensive; the most amount of memory in a particular size
- t = tiny memory; the smallest amount of memory in a particular size
- r = RDMA capable
- s = Premium Storage capable, including possible use of Ultra SSD
You will see VMs with multiple features, but obviously some of the features above are mutually exclusive. For example, a SKU with both m and t features isn’t possible, as one indicates higher memory and the other indicates tiny memory.
In our original example above, the D8as_v4 VM has an AMD processor and supports premium storage, but has no local temp disk present, while the D8d_v4 has an Intel CPU and a local temp disk, but does not support premium storage.
Accelerator Type is something new (Q3 2020) and will not apply for D series virtual machines. At this point, it is only used with the specialized GPU based VMs to denote the type of hardware accelerator used.
Finally, the Vx denotes the version of the VM family in question. As a rule of thumb, anything V3 or later will follow the above naming conventions. Older versions or SKUs without a version number may follow the older, non-standardized naming.
Ready to get your project started? Contact our team for a plan.