Microsoft Azure Premium Storage SSD Test

Hi,想必大家都知道巨硬在今年(2015)5月份在中国东部(上海)数据中心开放了中国区 Premium Storage Account的公开预览版。这真是令人兴奋的消息,尽管我们等的有些久...想来再也不用忍受每秒30MB的传输速率,进而沉浸在500MB/S的高速天堂,还真有点小激动呢~不过现实究竟是怎么样的呢?我们今天就来体验一把!

首先让我们来看看微软对Premium Storage Account的官方介绍:http://www.windowsazure.cn/documentation/articles/storage-premium-storage-preview-portal/?fb=002#creating-and-using-premium-storage-account-for-disks

懒得看?没关系我来摘录一些干货,首先要明白在Premium Storage Account中的硬盘都是SSD,而单个Premium Storage Account的大小限制在32TB(普通Storage Account是500TB),而想要利用好这些高速硬盘的优势,还需要使用专用的DS系列虚拟机,而你会发现这些虚拟机本身存在IOPS和磁盘带宽的参数:



这意味着什么?这意味着你想要飞翔在500+MB/S的高速天堂,必须使用16核心最高的DS14配置VM来挂载Premium Storage Account中的SSD磁盘...不过巨硬已经明确了DS系列虚拟机价格,与D系列持平。

然后我们再来看看SSD磁盘,可以看到分为P10、P20、P30三个级别:


它们也有各自的IOPS和IO带宽,值得注意的是,巨硬计算IOPS时使用的块大小是256KB。P10、P20、P30三个级别的划分是依靠挂载磁盘大小自动划分的,比如<=128GB的空磁盘就是P10,>128GB & <=512GB的空磁盘就是P20,>512 & <=1023GB的空磁盘就是P30,这从SSD本身的物理特性也不难理解,闪存颗粒越多,带宽越大,但巨硬肯定也从软件层面进行了IO限制(类似普通Storage Account的情况)。

所以问题来了,当你在DS虚拟机上挂载3块P30级别磁盘,想要达到最佳IO吞吐性能,需要使用哪种DS虚拟机?

答:最贵的那种偷笑

下面我们就真刀真枪的试试看效果,这里笔者选择了Windows Server 2012 VM 的两种虚拟机DS12和DS14(性能可参考文章前面的表格),并分别挂载了3块1T(P30级别)磁盘A、B、C,A磁盘为单盘(Cache为Read only),B和C磁盘(Cache为None)使用Windows Server 2012的Stroage Space创建Simple模式的虚拟磁盘阵列(类似Raid 0)。

测试软件选测了市面上主流的三款可视化工具:ATTO Disk Benchmarks、Crystal Disk Mark、AS SSD Benchmark。


首先我们在DS12上面的A磁盘进行测试,直接看结果截图:




从三款软件的测试结果来看,DS12VM的带宽影响了磁盘IO吞吐,将读写限制在了130左右,这符合巨硬官方指标的

DS12VM在128MB/S带宽的情况,而从4K-64K随机读写来看(最影响服务器标准的性能指标),读取性能竟然达到

1W5以上?开挂了么...而写入基本达到了官方5000的标准。其它指标就都比较一般了,没有什么亮眼之处。

接下来我们试一试DS12虚拟机的B&C(Raid 0)磁盘。





从测试来看,受DS12虚拟机限制IO带宽的情况更加明显,有意思的是有部分提高的同时,还有部分指标下降了,尤其

是4K-64K随机读写IOPS的read性能下降到官方指标水平(≈5000*2),而Write性能依然正常(5000*2)。


OK,既然DS12虚拟机影响了P30选手的发挥(PIG一样的队友效果),那么就罚下场~!裁判~!换人~!让DS14

上来~!

首先是DS14上的A磁盘:






通过结果可以看到,磁盘性能得到大幅提高,写入达到了200MB+,读取更是达到了500MB+!而IOPS测试中4K-64K随机读写的Read又是开挂了...5W5左右的数字让我怀疑是不是软件有问题?Write依然保持稳定。


接下来是压轴戏,DS14 + B&C (Raid 0)~!






这个测试结果又有些让人看不懂了,写入提高了一倍,但读取却下降到了400MB+,IOPS也有类似的情况,不过也在巨硬的正常指标,估计有软件兼容性问题,又或者巨硬在软件层做了什么控制影响了测试。


总结:Premium Storage Account的出现可以说让有大并发吞吐或有高性能磁盘需求的云用户带来了希望,通过测试发现,磁盘性能也确实有了质的提升,但VM带宽限制将直接影响磁盘的最终性能,如何寻找最佳性价比的搭配将是客户不得不做的功课。


由于目前Premium Storage Account仍然处于公开预览阶段,所以在中国区的门户中是无法直接通过可视化界面进行配置的,需要使用Azure PowerShell脚本进行配置,下面我给出参考供大家测试使用。


# 201506 by leon liu
#当前中国区测试版高性能存储只能在中国东部使用,所以请注意虚拟网络、存储、云服务的位置必须都在中国东部(上海)
# 详细可参阅 http://www.windowsazure.cn/documentation/articles/storage-premium-storage-preview-portal/?fb=002#creating-and-using-premium-storage-account-for-disks
#填写您的订阅名称,建议可以先使用“Get-AzureSubscription”命令查看一下
$SubscriptionName = "企业客户试用账号"
#填写您的存储账户名称,注意只能使用小写字母+数字
$storageAccount = "psa001"

#创建新的高性能存储账号
New-AzureStorageAccount -StorageAccountName $storageAccount -Location "China East" -Type "Premium_LRS" -Verbose

#创建DS系列虚拟机相关参数
$storageAccount = "psa001"
$adminName = "yourName"
$adminPassword = "yourPassword"
$vmName ="dsvm001"
$location = "China East"
$cloudServiceName = "yourCloudName" # 要创建的云服务名称
$VNet="myvnet04" # Azure 虚拟网络
$Subnet = "Subnet-1" # Azure 虚拟网络子网
$AvailabilitySetName = "dsSet01"
$imageList = Get-AzureVMImage `
| where {$_.ImageName -like "*Windows-Server-2012-Datacenter*-zh.cn*"}
$image =$imageList[0]
$imageName = $image.ImageName
$vmSize =“Standard_DS12” # 大小写敏感,可选虚拟机大小参阅 https://msdn.microsoft.com/zh-cn/library/azure/dn197896.aspx
#$vmSize ="Standard_DS2"
$OSDiskPath = "https://" + $storageAccount + ".blob.core.chinacloudapi.cn/vhds/" + $vmName + "_OS_PIO.vhd" # 虚拟机磁盘存放位置及命名

# 使用上面的参数创建配置文件,创建虚拟机
$vm = New-AzureVMConfig -Name $vmName -ImageName $imageName -InstanceSize $vmSize -MediaLocation $OSDiskPath -AvailabilitySetName $AvailabilitySetName
Add-AzureProvisioningConfig -Windows -VM $vm -AdminUsername $adminName -Password $adminPassword | Set-AzureSubnet $Subnet
New-AzureVM -ServiceName $cloudServiceName -VMs $vm -VNetName $VNet -Location $location -Verbose


#附加新磁盘相关参数
$storageAccount = "psa001"
$vmName ="dsvm001"
$cloudServiceName = "yourCloudName"

$vm = Get-AzureVM -ServiceName $cloudServiceName -Name $vmName
$LunNo = 1 #设备通道不能冲突
$path = "http://" + $storageAccount + ".blob.core.chinacloudapi.cn/vhds/" + "myPrDisk_" + $LunNo + "_PIO.vhd"
$label = "Disk " + $LunNo

# 附加新磁盘,如果使用单盘建议使用HostCaching ReadOnly,如果打算建立软raid,建议使用HostCaching None
Add-AzureDataDisk -CreateNew -MediaLocation $path -DiskSizeInGB 1023 -DiskLabel $label -LUN $LunNo -HostCaching ReadOnly -VM $vm | Update-AzureVm -Verbose

# 分离并删除磁盘,请注意要删除的LUN设备通道值
$vmName = “dsvm001”
$cloudServiceName = "yourCloudName" 
#Get-AzureVM -ServiceName $cloudServiceName -name $vmName | Get-AzureDataDisk
Get-AzureVM -ServiceName $cloudServiceName -name $vmName | Remove-AzureDataDisk -LUN 2 -DeleteVHD | Update-AzureVM -Verbose

# 修改高性能存储中的DS系列虚拟机Size
$vmName = “dsvm001”
$cloudServiceName = "yourCloudName"
$vmSize =“Standard_DS14” 
Get-AzureVM -ServiceName $cloudServiceName -Name $vmName | Set-AzureVMSize -InstanceSize $vmSize | Update-AzureVM -Verbose

文中如有不对的地方还望大家指出,我会做出改进。感谢您耐心看完~!


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章