- Pip install Boto3 - Thu, Mar 24 2022
- Install Boto3 (AWS SDK for Python) in Visual Studio Code (VS Code) on Windows - Wed, Feb 23 2022
- Automatically mount an NVMe EBS volume in an EC2 Linux instance using fstab - Mon, Feb 21 2022
All the virtual machines of the new D-Series in Azure have SSDs. According to Microsoft’s announcement, these are the new virtual machine types.
Azure SSD VM sizes and pricing ^
|Name||vCores||Memory (GB)||Local SSD (GB)|
|Name||vCores||Memory (GB)||Local SSD (GB)|
We have to distinguish here between remote and local storage. The new virtual machines only support local SSDs (drive D:). Notice that the system drive (drive C:) doesn’t use the SSDs. Thus, the boot up speed of D-Series VMs shouldn’t differ from the A-Series VMs.
Microsoft warns against using local storage (drive D:) for storing any personal or application data because data stored on this drive is subject to loss and offers no redundancy or backup. However, contrary to AWS EC2 ephemeral local storage, the data survives if you temporarily shut down the machine. Nevertheless, using the local SSD in production environments only makes sense if the data you store on them is replicated across multiple VMs.
Notice that Amazon AWS supports local and remote SSDs (EBS volumes). However, the speed of the local and remote SSDs vary significantly (see below).
Prices for the new Azure SSD VMs are difficult to compare because the CPU cores, RAM configuration, and disk sizes of the D-Series VMs differ from those of the A-Series. The D-Series VMs have CPUs that are 60 percent faster and offer up to 112 GB of memory.
Use SSDs in Azure ^
To launch a virtual machine with SSD support, you simply have to choose one of the VM sizes that starts with a “D.” The VM sizes that begin with an “A” come with local HDDs.
Microsoft Azure - Launching VMs with SSD
You can also change the type of an old VM into a D-Series VM. After you stop the VM, you just have to select the VM and then click Configure.
Change an old VM to SSD
Just in case you are wondering, how you can check whether a virtual machine uses SSD or HDD, the only way I know of is to measure the speed. The guest OS only sees the virtual disk and therefore doesn’t have access to the physical properties of the storage media.
Azure vs. AWS SSD I/O benchmark ^
For my tests, I used the AS SSD Benchmark tool. Please note that my benchmark tests are by no means complete or exact. Performance tests have to be run over periods of time, and my tests represent only snapshots. Moreover, the tool I used is probably suboptimal for benchmarks in the cloud. I just ran these benchmarks to get a rough idea of the expected I/O improvements of the new SSDs in Azure.
I worked with a D3 VM (4 cores, 14 GB RAM, SSD) and an A5 VM (4 cores, 14 GB RAM, HDD). The screenshot below shows the benchmark of the remote HDD with an A5 VM.
Azure VM - Remote HDD
“Seq” measures the sequential speed by writing and reading a 1 GB file. The 4 K tests randomly choose 4K blocks. I think data from these 4K tests is not reliable with remote storage. “Acc.time” stands for the access time. Note that we also have to take network latencies into account here.
In comparison, the local SSD is, of course, much faster (sequential read/write).
Azure VM - Local SSD
Let’s see how this compares to the remote SSDs (EBS) in Amazon EC2 instances. I used the m3.xlarge instance type (4 vCPUs, 15 GB RAM).
EC2 instance - Remote SSD
As you can see, the sequential speed of the EC2 instance (58 MB/s, 69 MB/s) is not as fast as with Azure’s local SSDs (186 MB/s, 100 MB/s) but is significantly faster than Azure’s remote HDDs (31 MB/s, 5 MB/s). However, the bottleneck with remote SSDs is usually the network speed; thus, it makes more sense to compare the Azure SSD with the local EC2 SSD (instance store) read and write speed:
EC2 instance - Local SSD
The write speeds of the EC2 (97 MB/s) and Azure (100 MB/s) SSDs are more or less the same. However, Amazon’s SSDs (433 MB/s) appear to be significantly faster than Microsoft’s Azure SSDs (186 MB/s) in reading data.
All in all, I wouldn’t read too much into the details of the data and the overall score because the tests are very crude. I tested in the Azure location South Central US, and in the AWS availability zone us-east-1a with Windows Server 2012 R2.