Skip to content

Storage Pooling to Increase IOPS in Azure

In certain projects and customer environments, especially when dealing with databases or mission-critical applications, Input/Output Operations Per Second (IOPS) becomes a crucial performance metric. In some cases, even the highest-tier Azure disks, including premium options, may fall short of meeting these performance demands. When this happens, storage pooling can be a game-changing solution.

Key Concepts

Before diving into the step-by-step process, let’s clarify a few key points related to Azure storage performance:

VM IOPS Cap: This is the maximum number of IOPS a Virtual Machine (VM) can handle, based on its series and size. It is independent of the number or type of disks attached. In this scenario:

  • VM Size: E8bs_v5
  • Max IOPS: 24,200 IOPS

Disk IOPS Cap: Each type and size of disk in Azure has its own IOPS limit. For example:

  • Disk Type: 2 TB Premium SSD
  • Max IOPS: 7,500 IOPS

    Scenario

    For this guide, we assume the following configuration:

    VM Size: E8bs_v5 with a maximum IOPS of 24,200

    Disk Setup: 2 TB Premium SSD (7,500 IOPS max)

    We aim to increase IOPS by pooling multiple smaller disks. Specifically, we’ll add 4 disks, each 512 GB, with a total combined IOPS of 9,200.

    Using the DISKSPD tool to test disk performance, we can analyze the improvement after pooling the disks.

    Now using DISKSPD to performance test the 2 TB disk we were able to achieve the below figures

    And in order to achieve more IOPS, Attach four 512 GB Premium SSDs to the VM. Each disk offers 2,300 IOPS, for a total of 9,200 IOPS (4 x 2,300)

    Set Up Storage Pooling

    Open Server Manager

    • Once inside the VM, navigate to the Server Manager.
    • Go to File and Storage Services > Storage Pools.

    Create a New Storage Pool

    • In the Storage Pools section, click on New Storage Pool.
    • Give the storage pool a name, and select the four disks you added from the Azure Portal.
    • Follow the wizard to complete the pool creation.

    Create a New Virtual Disk from the Storage Pool

    • After creating the storage pool, you need to create a virtual disk from that pool.
    • In the Storage Pools section, click on your newly created pool, and then choose New Virtual Disk.
    • Specify the disk size and configuration (striped for performance is typically recommended).

    Create a New Volume

    • Once the virtual disk is created, create a new volume on that disk using the New Volume Wizard.
    • Format the volume using NTFS (or ReFS for advanced features).
    • Assign a drive letter for easy access.

    Run Disk Performance Tests

    Test with DISKSPD

    Use DISKSPD (or any other benchmarking tool) to measure the IOPS performance on the newly created storage pool.

    Running the tests again should show an improved IOPS performance. In this case, we achieved around 9,400 IOPS, an increase from the individual disk’s limit of 2,300 IOPS per disk.

    Further Reading and References

    Spread the love
    Published inAzure StorageAzure VM

    Be First to Comment

    Leave a Reply

    Your email address will not be published. Required fields are marked *