One of the main considerations when architecting an IaaS-based solutions in Azure (or for any cloud platform, really) is deciding on the storage type or combination of types to use. Choosing storage resources to allocate to IaaS instances is a balancing act between not starving your infrastructure of IOPS or throughput, and not paying huge dollars for the Ultra-Mega-Hyper-Disk because you think you **might** need it.
Recently while researching Azure storage for a presentation, I came across these great articles by Andrew Cobb, a TSP at Microsoft Australia:
The articles are great at explaining the practical differences between the different storage types and caching options, and then displaying those differences using Iometer.
So, in order to make the content more accessible, I’ve put together an Azure Resource Manager template which deploys a single VM with multiple disks attached with different caching options (as per Andrew’s articles), installs Iometer using PowerShell DSC and then downloads and extracts a number of pre-configured Iometer tests.
The solution is now hosted in the Azure Quickstart Templates repository on GitHub, so you can deploy the solution directly from the “Deploy to Azure” link:
Also, I’ve included a slightly modified version of the template which makes use of Azure Managed Disks instead of VM disks stored in Azure blob storage:
So check out the templates and have a look at the demo environments. I’m going to add some additional samples using Storage Spaces, showing how you can achieve higher IOPS on standard storage.
If you have any ideas for improving the solutions, please feel free to fork the repository and submit a pull request 🙂