Insights Striping Disks in Azure

Striping Disks in Azure

Sometimes when working with an Azure VM, you need to combine the size or throughput of multiple Azure disks.  You can do this by using Storage Spaces in Windows Server 2012 or 2016.  Storage Spaces is similar to RAID or the old dynamic disk technology in Windows and allows you to combine multiple disks into a single volume.  Doing so will aggregate the size and performance of the Azure disks.

Use Cases

There are two main reasons to combine disks.  First, disks in Azure are limited to 4TB, and some Azure-based applications limit disks to 1TB.  Although these limits are large enough for many cases, you may have a need for an even larger volume.  For example, 2x 3TB disks can be combined to achieve a single 6TB volume.  The second main use is to aggregate performance.  IOPS and throughput are limited at the disk level in Azure.  By combining multiple disks in a Storage Spaces Pool, reads and writes will be distributed among the underlying disks allowing you to achieve better performance.  Although Premium Storage should be used for IO-intensive applications, you can use pooled Standard Storage disks to achieve moderate performance at a lower price.  For example, combining 4 1TB standard (HDD) disks will get you 4TB of space with about 4x the performance of a single disk.

How To

Pooling disks in an Azure VM is fairly straightforward, but we won’t cover all of the steps in detail here.  Overall, you want to attach the disks to the VM in the Azure portal, log into the VM, create a storage pool using the disks with manual allocation, and then create a virtual disk from that pool.  When creating the virtual disk, use the simple storage layout and set the number of columns equal to the number of underlying disks.  With the virtual disk created, create an NTFS partition on it like normal and assign a drive letter.  Detailed steps for creating a storage pool are available on Technet.

Example

These screenshots show a set of 127GB drives pooled into a single 251GB volume within a Windows Storage Spaces pool:

Linux

The same principles apply to Linux-based servers in Azure.  However instead of Storage Spaces, use MDADM to stripe the disks.

For more information about disk performance in Azure and striping disks, refer to the Azure Documentation.