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

文中如有不對的地方還望大家指出,我會做出改進。感謝您耐心看完~!


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