I’m been using Azure IaaS in a lot of enterprise deployments lately and I’ve noticed that there is some confusion regarding the different storage types available and provisioned for the virtual machines. In many ways the capabilities associated with Azure storage is its greatest strength, but unless you configure it properly, you might be in for a surprise regarding your results. The key message to understand is the difference between the operating system disk, the temporary disk, and data disks as they have different performance characteristics and will impact your systems in different ways when used correctly or incorrectly.
The operating system disk:
This disk is used for the operating system install and it will exhibit great read performance. It is not however scalable for write performance, so you shouldn’t use it for any write-centric or data-centric use. It would NOT be the place where you would put your Microsoft SQL data, or your file server.
The cache / temporary disk
The cache disk is used for temporary data that you don’t want to keep. It might seem like it is retained, but eventually you will find this disk refreshed when the system is booted back up, or undergoes a “repair”. The cache disk is really only appropriate for storage of data you don’t want to keep.
The data disk
The data disk is where you should put any of your important information, especially databases and file stores. The data here can be effectively scaled out through striping several data disks together. A rule of thumb to use is that each data disk is worth approximately 500 IOPS. If you stripe several together you’ll see that number increase. At this point you might find it helpful to run some tests against the disks you’ve allocated to ensure you’ve added the appropriate IOPS for your capacity requirement. I’ll note that the disk IOPS will increase as it is used, which is a component of the caching engine of the data disk type. The cool thing about the data disk is that they are easy to provision and you can create stripes of a lot of disks (16) which will provide excellent scalability to your application.
The key point? Use the right disks for the right things. If you don’t, then you’ll get a different performance experience than you’re expecting. Now move some workloads to Azure and take advantage of the scalability!
Want to learn more? Check out the Azure internals session from TechEd!
Also, check out Azure Storage Testing, which checked a standard Azure hard disk against a local SSD and a small server. This performance can be improved by striping multiple Azure disks together.