{"id":1129,"date":"2016-03-12T11:50:13","date_gmt":"2016-03-12T09:50:13","guid":{"rendered":"https:\/\/www.vioreliftode.com\/?p=1129"},"modified":"2016-04-14T12:50:13","modified_gmt":"2016-04-14T10:50:13","slug":"microsoft-azure-iaas-storage-benchmarks-comparison-with-on-premises-part-7","status":"publish","type":"post","link":"https:\/\/www.vioreliftode.com\/index.php\/microsoft-azure-iaas-storage-benchmarks-comparison-with-on-premises-part-7\/","title":{"rendered":"Microsoft Azure IAAS \u2013 storage benchmarks, comparison with on-premises (part 7)"},"content":{"rendered":"<input class=\"fooboxshare_post_id\" type=\"hidden\" value=\"1129\"\/><p><em>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:<\/em><\/p>\n<ol>\n<li><em><a href=\"\/index.php\/microsoft-azure-iaas-storage-benchmarks-comparison-with-on-premises-part-1\" target=\"_blank\">Describe what does the Iometer benchmarks will consist of.<\/a><\/em><\/li>\n<li><em><a href=\"\/index.php\/microsoft-azure-iaas-storage-benchmarks-comparison-with-on-premises-part-2\" target=\"_blank\">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).<\/a><\/em><\/li>\n<li><em><a href=\"\/index.php\/microsoft-azure-iaas-storage-benchmarks-comparison-with-on-premises-part-3\" target=\"_blank\">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.<\/a><\/em><\/li>\n<li><em><a href=\"\/index.php\/microsoft-azure-iaas-storage-benchmarks-comparison-with-on-premises-part-4\" target=\"_blank\">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).<\/a><\/em><\/li>\n<li><em><a href=\"\/index.php\/microsoft-azure-iaas-storage-benchmarks-comparison-with-on-premises-part-5\" target=\"_blank\">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).<\/a><\/em><\/li>\n<li><em><a href=\"\/index.php\/microsoft-azure-iaas-storage-benchmarks-comparison-with-on-premises-part-6\" target=\"_blank\">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.<\/a><\/em><\/li>\n<li><em>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.<\/em><\/li>\n<li><em><a href=\"\/index.php\/microsoft-azure-iaas-storage-benchmarks-comparison-with-on-premises-part-8\" target=\"_blank\">Describe how I configured the Hyper-V on-premises VM and the benchmark results using local HDD and SSD.<\/a><\/em><\/li>\n<li><em><a href=\"\/index.php\/microsoft-azure-iaas-storage-benchmarks-comparison-with-on-premises-part-9\" target=\"_blank\">IOPS benchmark detailed conclusions (on-premises and Azure IaaS).<\/a><\/em><\/li>\n<\/ol>\n<p>&nbsp;<\/p>\n<h1>DS3 Standard VM using multiple (eight) disks (in RAID-0 striped configuration) hosted by Standard Locally Redundant Storage &#8211; setup and benchmark results<\/h1>\n<p>The <a href=\"https:\/\/azure.microsoft.com\/en-us\/documentation\/articles\/virtual-machines-size-specs\/\" target=\"_blank\">MS Azure Standard Tier DS series Standard_DS3 VM<\/a> 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.<\/p>\n<p>&nbsp;<\/p>\n<p>The following PowerShell commands have been used to provision an DS3 Standard VM with multiple (eight) disks hosted by Locally Redundant Storage (benchmark setup).<\/p>\n<pre class=\"brush: powershell; title: ; notranslate\" title=\"\">\r\nAdd-AzureAccount\r\n$subscriptionName = '&lt;YOUR SUBSCRIPTION NAME&gt;'\r\n$VMOSPremiumStorageAccountName = 'azioospremiumdisks' \r\n$IOStressStorageAccountName = 'aziostressdisks'\r\n$location = 'West Europe'\r\n$adminName = '&lt;YOUR ADMIN USER NAME&gt;'\r\n$adminPassword = '&lt;YOUR PASSWORD&gt;'\r\n$vmName ='AZIODS3'\r\n$imageFamily = 'Windows Server 2012 R2 Datacenter'\r\n$vmSize ='Standard_DS3'\r\n\r\nSelect-AzureSubscription -SubscriptionName $subscriptionName -Current\r\n\r\nNew-AzureStorageAccount -StorageAccountName $VMOSPremiumStorageAccountName -Location $location -Type 'Premium_LRS'\r\nNew-AzureStorageAccount -StorageAccountName $IOStressStorageAccountName -Location $location -Type 'Standard_LRS'\r\n\r\n\r\n$imageName = Get-AzureVMImage | where { $_.ImageFamily -eq $imageFamily } | sort PublishedDate -Descending | select -ExpandProperty ImageName -First 1\r\nSet-AzureSubscription -SubscriptionName $subscriptionName -CurrentStorageAccount $VMOSPremiumStorageAccountName\r\n$OSDiskPath = &quot;https:\/\/&quot; + $VMOSPremiumStorageAccountName + &quot;.blob.core.windows.net\/vhds\/&quot; + $vmName + &quot;_OS.vhd&quot;\r\n$vm = New-AzureVMConfig -Name $vmName -ImageName $imageName -InstanceSize $vmSize -MediaLocation $OSDiskPath\r\nAdd-AzureProvisioningConfig -Windows -VM $vm -AdminUsername $adminName -Password $adminPassword\r\nNew-AzureVM -ServiceName $vmName -VMs $VM -Location $location\r\n\r\nSet-AzureSubscription -SubscriptionName $subscriptionName -CurrentStorageAccount $IOStressStorageAccountName\r\n\r\n#These will attach eight new data disks configured to use the default host caching (None) on Standard_LRS\r\nGet-AzureVM $vmName -Name $vmName | Add-AzureDataDisk -CreateNew -DiskSizeInGB 127 -DiskLabel &quot;DATA01&quot; -LUN 0 | Update-AzureVM\r\nGet-AzureVM $vmName -Name $vmName | Add-AzureDataDisk -CreateNew -DiskSizeInGB 127 -DiskLabel &quot;DATA02&quot; -LUN 1 | Update-AzureVM\r\nGet-AzureVM $vmName -Name $vmName | Add-AzureDataDisk -CreateNew -DiskSizeInGB 127 -DiskLabel &quot;DATA03&quot; -LUN 2 | Update-AzureVM\r\nGet-AzureVM $vmName -Name $vmName | Add-AzureDataDisk -CreateNew -DiskSizeInGB 127 -DiskLabel &quot;DATA04&quot; -LUN 3 | Update-AzureVM\r\nGet-AzureVM $vmName -Name $vmName | Add-AzureDataDisk -CreateNew -DiskSizeInGB 127 -DiskLabel &quot;DATA05&quot; -LUN 4 | Update-AzureVM\r\nGet-AzureVM $vmName -Name $vmName | Add-AzureDataDisk -CreateNew -DiskSizeInGB 127 -DiskLabel &quot;DATA06&quot; -LUN 5 | Update-AzureVM\r\nGet-AzureVM $vmName -Name $vmName | Add-AzureDataDisk -CreateNew -DiskSizeInGB 127 -DiskLabel &quot;DATA07&quot; -LUN 6 | Update-AzureVM\r\nGet-AzureVM $vmName -Name $vmName | Add-AzureDataDisk -CreateNew -DiskSizeInGB 127 -DiskLabel &quot;DATA08&quot; -LUN 7 | Update-AzureVM\r\n<\/pre>\n<p>&nbsp;<\/p>\n<p>The above PowerShell commands created two storage accounts:<\/p>\n<ul>\n<li><em>azioospremiumdisks<\/em> &#8211; used to host the OS disk of the VM (Premium Locally Redundant Storage account).<\/li>\n<li><em>aziostressdisks<\/em> &#8211; used to host the additional two disks mapped to the VM (Standard Locally Redundant Storage account).<\/li>\n<\/ul>\n<p>The IOPS benchmarks are performed on the additional mapped disks. The <em>aziostressdisks<\/em> storage account will only host the additional virtual disks (F volume will be a stripe raid of 8 x 127 GB disks) &#8211; so in this way the benchmark tests are not influenced by other workloads.<\/p>\n<p>&nbsp;<\/p>\n<h1>Benchmark results (DS3 Standard VM, F: volume on eight striped disks, hosted by Azure Standard Locally Redundant Storage)<\/h1>\n<p>The Iometer results can be downloaded from <a href=\"\/wp-content\/uploads\/2016\/03\/AZIODS3_F_striped_on_8_disks_hosted_by_Standard_LRS.csv\" target=\"_blank\">here<\/a>.<\/p>\n<p>&nbsp;<\/p>\n<p><a href=\"https:\/\/www.vioreliftode.com\/wp-content\/uploads\/2016\/03\/DS3_Standard_VM_F_volume_striped_on_eight_disks_hosted_by_Azure_Standard_Locally_Redundant_Storage_Throughput.png\" rel=\"attachment wp-att-1131\"><img loading=\"lazy\" class=\"alignleft size-full wp-image-1131\" src=\"https:\/\/www.vioreliftode.com\/wp-content\/uploads\/2016\/03\/DS3_Standard_VM_F_volume_striped_on_eight_disks_hosted_by_Azure_Standard_Locally_Redundant_Storage_Throughput.png\" alt=\"DS3_Standard_VM_F_volume_striped_on_eight_disks_hosted_by_Azure_Standard_Locally_Redundant_Storage_Throughput\" width=\"1077\" height=\"433\" \/><\/a><br \/>\n<a href=\"https:\/\/www.vioreliftode.com\/wp-content\/uploads\/2016\/03\/DS3_Standard_VM_F_volume_striped_on_eight_disks_hosted_by_Azure_Standard_Locally_Redundant_Storage_IOPS_and_average_latency_distribution.png\" rel=\"attachment wp-att-1132\"><img loading=\"lazy\" class=\"alignleft size-full wp-image-1132\" src=\"https:\/\/www.vioreliftode.com\/wp-content\/uploads\/2016\/03\/DS3_Standard_VM_F_volume_striped_on_eight_disks_hosted_by_Azure_Standard_Locally_Redundant_Storage_IOPS_and_average_latency_distribution.png\" alt=\"DS3_Standard_VM_F_volume_striped_on_eight_disks_hosted_by_Azure_Standard_Locally_Redundant_Storage_IOPS_and_average_latency_distribution\" width=\"1873\" height=\"875\" \/><\/a><br \/>\nBy putting in parallel the above two charts with the charts obtained with &#8220;<a href=\"\/index.php\/microsoft-azure-iaas-storage-benchmarks-comparison-with-on-premises-part-3\" target=\"_blank\">A3 Standard VM using multiple (eight) disks (in RAID-0 striped configuration) hosted by Standard Locally Redundant Storage<\/a>&#8221; we can conclude there is not that big of a difference between using DS series VMs + Standard LRS and A series VMs + Standard LRS.<\/p>\n<p>&nbsp;<\/p>\n<p>For this storage setup (volume striped on eight disks hosted by Azure Standard LRS):<\/p>\n<ul>\n<li>I recommend it for hosting:\n<ul>\n<li>web servers (site files) for systems with moderate to high usage;<\/li>\n<li>MS SQL servers (database data and transaction log files) only for systems with light to moderate storage usage;<\/li>\n<li>file shares with light to moderate usage;<\/li>\n<li>test &amp; development VMs and production VMs with moderate usage;<\/li>\n<\/ul>\n<\/li>\n<li>I definitely not recommend it for hosting:\n<ul>\n<li>VMs with heavy storage usage;<\/li>\n<li>VMs with applications who rely on fast storage;<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<p><a href=\"\/index.php\/microsoft-azure-iaas-storage-benchmarks-comparison-with-on-premises-part-8\" target=\"_blank\">Continue with Microsoft Azure IAAS \u2013 storage benchmarks, comparison with on-premises (part 8).<\/a><\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>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: Describe what does the Iometer benchmarks will consist of. Describe how I configured the Azure VM and the benchmark results &hellip; <a href=\"https:\/\/www.vioreliftode.com\/index.php\/microsoft-azure-iaas-storage-benchmarks-comparison-with-on-premises-part-7\/\" class=\"more-link\">Continue reading <span class=\"screen-reader-text\">Microsoft Azure IAAS \u2013 storage benchmarks, comparison with on-premises (part 7)<\/span> <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":3,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"spay_email":"","jetpack_publicize_message":"Microsoft Azure IAAS \u2013 storage benchmarks, comparison with on-premises (part 7)","jetpack_is_tweetstorm":false},"categories":[32,75],"tags":[55,104,102,107,78,106,105,108],"jetpack_featured_media_url":"","jetpack_publicize_connections":[],"jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p4NfDd-id","_links":{"self":[{"href":"https:\/\/www.vioreliftode.com\/index.php\/wp-json\/wp\/v2\/posts\/1129"}],"collection":[{"href":"https:\/\/www.vioreliftode.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.vioreliftode.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.vioreliftode.com\/index.php\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/www.vioreliftode.com\/index.php\/wp-json\/wp\/v2\/comments?post=1129"}],"version-history":[{"count":0,"href":"https:\/\/www.vioreliftode.com\/index.php\/wp-json\/wp\/v2\/posts\/1129\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.vioreliftode.com\/index.php\/wp-json\/wp\/v2\/media?parent=1129"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.vioreliftode.com\/index.php\/wp-json\/wp\/v2\/categories?post=1129"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.vioreliftode.com\/index.php\/wp-json\/wp\/v2\/tags?post=1129"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}