Microsoft Azure IAAS – storage benchmarks, comparison with on-premises (part 7)

This article is part of a series of 9 where I am talking about storage benchmarks performed on Microsoft Azure and on-premises. For a better understanding please make sure you read also the other parts:

  1. Describe what does the Iometer benchmarks will consist of.
  2. Describe how I configured the Azure VM and the benchmark results for the A3 Standard VM using a single disk hosted by Standard Locally Redundant Storage (LRS).
  3. Describe how I configured the Azure VM and the benchmark results for the A3 Standard VM using multiple (eight) disks in a RAID-0 (striped) configuration hosted by Standard Locally Redundant Storage.
  4. Describe how I configured the Azure VM and the benchmark results for the DS3 Standard VM using a single Premium P10 disk hosted by Premium Locally Redundant Storage (LRS).
  5. Describe how I configured the Azure VM and the benchmark results for the DS3 Standard VM using a single Premium P30 disk hosted by Premium Locally Redundant Storage (LRS).
  6. Describe how I configured the Azure VM and the benchmark results for the DS3 Standard VM using multiple (two) disks in a RAID-0 (striped) configuration hosted by Premium P30 Locally Redundant Storage.
  7. Describe how I configured the Azure VM and the benchmark results for the DS3 Standard VM using multiple (eight) disks in a RAID-0 (striped) configuration hosted by Standard Locally Redundant Storage.
  8. Describe how I configured the Hyper-V on-premises VM and the benchmark results using local HDD and SSD.
  9. IOPS benchmark detailed conclusions (on-premises and Azure IaaS).

 

DS3 Standard VM using multiple (eight) disks (in RAID-0 striped configuration) hosted by Standard Locally Redundant Storage – setup and benchmark results

The MS Azure Standard Tier DS series Standard_DS3 VM is limited to 128 MBps throughput, 12 800 IOPS and maximum 8 disks (premium or standard). The purpose of the following benchmark is to see if we register much better results when we attach eight standard disks to a DS3 VM. For this type of VM and storage, the default setting of the virtual disk host caching is set to None.

 

The following PowerShell commands have been used to provision an DS3 Standard VM with multiple (eight) disks hosted by Locally Redundant Storage (benchmark setup).

Add-AzureAccount
$subscriptionName = '<YOUR SUBSCRIPTION NAME>'
$VMOSPremiumStorageAccountName = 'azioospremiumdisks' 
$IOStressStorageAccountName = 'aziostressdisks'
$location = 'West Europe'
$adminName = '<YOUR ADMIN USER NAME>'
$adminPassword = '<YOUR PASSWORD>'
$vmName ='AZIODS3'
$imageFamily = 'Windows Server 2012 R2 Datacenter'
$vmSize ='Standard_DS3'

Select-AzureSubscription -SubscriptionName $subscriptionName -Current

New-AzureStorageAccount -StorageAccountName $VMOSPremiumStorageAccountName -Location $location -Type 'Premium_LRS'
New-AzureStorageAccount -StorageAccountName $IOStressStorageAccountName -Location $location -Type 'Standard_LRS'


$imageName = Get-AzureVMImage | where { $_.ImageFamily -eq $imageFamily } | sort PublishedDate -Descending | select -ExpandProperty ImageName -First 1
Set-AzureSubscription -SubscriptionName $subscriptionName -CurrentStorageAccount $VMOSPremiumStorageAccountName
$OSDiskPath = "https://" + $VMOSPremiumStorageAccountName + ".blob.core.windows.net/vhds/" + $vmName + "_OS.vhd"
$vm = New-AzureVMConfig -Name $vmName -ImageName $imageName -InstanceSize $vmSize -MediaLocation $OSDiskPath
Add-AzureProvisioningConfig -Windows -VM $vm -AdminUsername $adminName -Password $adminPassword
New-AzureVM -ServiceName $vmName -VMs $VM -Location $location

Set-AzureSubscription -SubscriptionName $subscriptionName -CurrentStorageAccount $IOStressStorageAccountName

#These will attach eight new data disks configured to use the default host caching (None) on Standard_LRS
Get-AzureVM $vmName -Name $vmName | Add-AzureDataDisk -CreateNew -DiskSizeInGB 127 -DiskLabel "DATA01" -LUN 0 | Update-AzureVM
Get-AzureVM $vmName -Name $vmName | Add-AzureDataDisk -CreateNew -DiskSizeInGB 127 -DiskLabel "DATA02" -LUN 1 | Update-AzureVM
Get-AzureVM $vmName -Name $vmName | Add-AzureDataDisk -CreateNew -DiskSizeInGB 127 -DiskLabel "DATA03" -LUN 2 | Update-AzureVM
Get-AzureVM $vmName -Name $vmName | Add-AzureDataDisk -CreateNew -DiskSizeInGB 127 -DiskLabel "DATA04" -LUN 3 | Update-AzureVM
Get-AzureVM $vmName -Name $vmName | Add-AzureDataDisk -CreateNew -DiskSizeInGB 127 -DiskLabel "DATA05" -LUN 4 | Update-AzureVM
Get-AzureVM $vmName -Name $vmName | Add-AzureDataDisk -CreateNew -DiskSizeInGB 127 -DiskLabel "DATA06" -LUN 5 | Update-AzureVM
Get-AzureVM $vmName -Name $vmName | Add-AzureDataDisk -CreateNew -DiskSizeInGB 127 -DiskLabel "DATA07" -LUN 6 | Update-AzureVM
Get-AzureVM $vmName -Name $vmName | Add-AzureDataDisk -CreateNew -DiskSizeInGB 127 -DiskLabel "DATA08" -LUN 7 | Update-AzureVM

 

The above PowerShell commands created two storage accounts:

  • azioospremiumdisks – used to host the OS disk of the VM (Premium Locally Redundant Storage account).
  • aziostressdisks – used to host the additional two disks mapped to the VM (Standard Locally Redundant Storage account).

The IOPS benchmarks are performed on the additional mapped disks. The aziostressdisks storage account will only host the additional virtual disks (F volume will be a stripe raid of 8 x 127 GB disks) – so in this way the benchmark tests are not influenced by other workloads.

 

Benchmark results (DS3 Standard VM, F: volume on eight striped disks, hosted by Azure Standard Locally Redundant Storage)

The Iometer results can be downloaded from here.

 

DS3_Standard_VM_F_volume_striped_on_eight_disks_hosted_by_Azure_Standard_Locally_Redundant_Storage_Throughput
DS3_Standard_VM_F_volume_striped_on_eight_disks_hosted_by_Azure_Standard_Locally_Redundant_Storage_IOPS_and_average_latency_distribution
By putting in parallel the above two charts with the charts obtained with “A3 Standard VM using multiple (eight) disks (in RAID-0 striped configuration) hosted by Standard Locally Redundant Storage” we can conclude there is not that big of a difference between using DS series VMs + Standard LRS and A series VMs + Standard LRS.

 

For this storage setup (volume striped on eight disks hosted by Azure Standard LRS):

  • I recommend it for hosting:
    • web servers (site files) for systems with moderate to high usage;
    • MS SQL servers (database data and transaction log files) only for systems with light to moderate storage usage;
    • file shares with light to moderate usage;
    • test & development VMs and production VMs with moderate usage;
  • I definitely not recommend it for hosting:
    • VMs with heavy storage usage;
    • VMs with applications who rely on fast storage;

 

Continue with Microsoft Azure IAAS – storage benchmarks, comparison with on-premises (part 8).

 

Leave a Reply