《Windows Azure Platform 系列文章目录》
本文介绍的是国内由世纪互联运维的Azure China
熟悉Azure平台的读者都了解,Azure VM每一块Disk的IOPS为500。我们以D系列的VM为例,IOPS信息如下:
虚拟机类型 | CPU | RAM | 临时磁盘 | 外挂磁盘数 | IOPS |
D1 | 1 | 3.5GB | 50GB | 2 | 2 * 500 |
D2 | 2 | 7GB | 100GB | 4 | 4 * 500 |
D3 | 4 | 14GB | 200GB | 8 | 8 * 500 |
D4 | 8 | 28GB | 400GB | 16 | 16 * 500 |
D11 | 2 | 14GB | 100GB | 4 | 4 * 500 |
D12 | 4 | 28GB | 200GB | 8 | 8 * 500 |
D13 | 8 | 56GB | 400GB | 16 | 16 *500 |
D14 | 16 | 112GB | 800GB | 32 | 32 * 500 |
这里要特别注意:用户在创建Azure VM的时候,不要把所有的虚拟机磁盘都保存在同一个存储账号里。因为一个存储账号是有IOPS上限20000的。
以笔者个人经验来说,我建议每3台虚拟机使用同一个存储账号,第4台虚拟机使用另外一个存储账号。
当我们需要更高的IOPS的时候,比如某些场景需要更高性能的磁盘读写,这时候就需要用到高级存储Premium Storage。
传统的标准存储(Standard Storage)使用的是普通硬盘(Hard Disk Drives, HDD),高级存储(Premium Storage)使用的固态硬盘(Solid State Drives, SSD)
使用高级存储(Premium Storage)可以提高IOPS和吞吐量,降低延时。每个VM可以配置最多32TB的持久化存储,每个VM可以超过50000的IOPS,读取操作的延迟少于1毫秒。
在开始本章内容之前,我们先介绍一下高级存储(Premium Storage)的注意事项:
1.Premium Storage目前在Azure China只能通过PowerShell创建。
2.Premium Storage支持的类库:Storage REST API version 2014-02-14 or later; Service Management REST API version 2014-10-01 or later; andAzure PowerShell version 0.8.10 or later.
3.Premium Storage目前只能在中国东部地区使用
4.Premium Storage目前只支持Page Blob,只能被Azure DS系列的VM使用
5.Premium Storage只支持本地冗余(Local Redundant Storage, LRS),即同一个数据中心三分冗余。在使用Premium Storage的时候想实现异地冗余,请参考:使用高级存储时的快照与复制 Blob
6.非DS系列的VM(A系列VM,D系列VM)是无法使用Premium Storage。
只有DS系列的VM才可以使用Premium Storage。DS系列的VM可以同时使用Premium Storage和标准存储(Standard Storage)
7.Premium Storage无法映射到自定义域名
8.Premium Storage无法使用存储分析进行监控。如果需要监控,请使用基于操作系统的工具,如Windows 性能监视器(对于 Windows VM)和 IOSTAT(对于 Linux VM)。
重要说明:
1.单个Premium Storage Account最大容量为32TB。如果需要使用40TB的Premium Storage,请使用两个Premium Storage Account。
2.默认情况下,附加到DS VM的Premium Storage缓存都设置为"读写"。为使应用程序的 I/O 达到最佳性能,建议使用此配置设置。对于频繁写入或只写的磁盘(例如 SQL Server 日志文件),请关闭磁盘缓存以获得更佳的应用程序性能。
3.Azure限制了DS VM到Premium Storage的网络带宽。例如,STANDARD_DS1 VM 为高级存储磁盘通信提供每秒 32 MB 的专用带宽。这意味着,附加到此 VM 的 P10 高级存储磁盘最高只能达到每秒 32 MB,而不能像 P10 磁盘那样最高达到每秒 100 MB。同样,STANDARD_DS13 VM 可跨所有磁盘最高达到每秒 256 MB。目前,DS 系列上的最大 VM 是 STANDARD_DS14,它可以跨所有磁盘最高提供每秒 512 MB。根据磁盘通信中的读写 IO 混合形式,你可能会获得高于此值的吞吐量。
请注意,这些限制只适用于磁盘通信。VM 网络通信可以使用单独的带宽,这不同于高级存储磁盘的专用带宽。下表列出了附加到 VM 的所有磁盘上的每个 DS 系列 VM 的当前最大 IOPS 和吞吐量(带宽)值:
VM大小 | CPU | 最大IOPS | 最大磁盘带宽 |
STANDARD_DS1 | 1 | 3,200 | 32MB/S |
STANDARD_DS2 | 2 | 6,400 | 64MB/S |
STANDARD_DS3 | 4 | 12,800 | 128MB/S |
STANDARD_DS4 | 8 | 25,600 | 256MB/S |
STANDARD_DS11 | 2 | 6,400 | 64MB/S |
STANDARD_DS12 | 4 | 12,800 | 128MB/S |
STANDARD_DS13 | 8 | 25,600 | 256MB/S |
STANDARD_DS14 | 16 | 50,000 | 512MB/S |
4.DS系列的VM可以同时使用Premium Storage和标准存储(Standard Storage)
5.可以使用Storage Space,设置软RAID,来提高磁盘的IOPS。具体请参考:
[New Portal]Windows Azure Virtual Machine (23) 使用Storage Space,提高Virtual Machine磁盘的IOPS
6.建议在系统盘+数据盘的情况下,如果系统盘只是用于引导,请考虑使用标准存储(Standard Storage),这样可以节省成本。数据盘可以使用Premium Storage,因为性能更好。
如果系统盘和数据盘有数据传输,系统盘可以使用Premium Storage以获得更好的性能。
高级存储性能:
当你为某个高级存储帐户设置磁盘时,其每秒的输入/输出操作次数 (IOPS) 和吞吐量(带宽)取决于磁盘大小。目前有三种类型的高级存储磁盘:P10、P20 和 P30。每种类型各有特定的 IOPS 和吞吐量限制,如下表所示:
Premium Storage | P10 | P20 | P30 |
磁盘大小 | 128GB | 512GB | 1024GB |
每个磁盘的IOPS | 500 | 2300 | 5000 |
每个磁盘的吞吐量 | 100MB/S | 150MB/S | 200MB/S |
Azure 会将磁盘大小映射(向上舍入)至表中指定的最接近高级存储磁盘选项。例如,大小为 100 GB 的磁盘会分类为 P10 选项,每秒最多可执行 500 个 IO 单位,每秒吞吐量可达 100 MB。同样地,大小为 400 GB 的磁盘会分类为 P20 选项,每秒最多可执行 2300 个 IO 单位,每秒吞吐量可达 150 MB。
输入/输出 (I/O) 单位大小为 256 KB。如果要传送的数据少于 256 KB,会视为单个 I/O 单位。较大的 I/O 大小则会视为大小是 256 KB 的多个 I/O。例如,1100 KB 的 I/O 会视为五个 I/O 单位。
吞吐量限制包含磁盘的读取和写入。例如,P10 磁盘的读取和写入总和应小于或等于每秒 100 MB。同样地,单个 P10 磁盘可有每秒 100 MB 的读取或每秒 100 MB 的写入吞吐量,或是每秒 60 MB 的读取和每秒 40 MB 的写入吞吐量。
当你在 Azure 创建磁盘后,请根据应用程序的容量、性能、缩放性和高峰负载需求来选择最适合的高级存储磁盘产品。
下表描述高级存储帐户的缩放性目标:
总帐户容量 | 本地冗余存储帐户的总带宽 |
|
入站 + 出站最高每秒 50 Gbps |
- 入站是指发送到存储帐户的所有数据(请求)。
- 出站是指从存储帐户接收的所有数据(响应)。
高级存储的计费方式:
1.Premium Storage按照磁盘分配的最大容量计费。例如:你申请了1TB的Premium Storage,实际只用了1GB,则Azure会按照Premium Storage的最大容量,即1TB计费。
2.DS VM还会按照分钟计费。DS系列VM的价格和D系列VM的价格相同
=============================分隔符===============================
接下来介绍使用高级存储Premium Storage和DS VM,关键步骤如下:
1.创建Premium Storage
2.创建DS VM
1.首先我们以管理员身份,运行Azure PowerShell
2.选择当前的订阅:
Select-AzureSubscription ‘[SubscriptionName]‘ –Current
3.在中国东部创建Premium Storage
New-AzureStorageAccount -StorageAccountName "yourpremiumaccount" -Location "China East" -Type "Premium_LRS"
4.创建新的DS VM,VM Size为DS2
$storageAccount = "yourpremiumaccount" $adminName = "youradmin" $adminPassword = "yourpassword" $vmName ="yourVM" $location = "China East" $imageName = "a699494373c04fc0bc8f2bb1389d6106__Windows-Server-2012-R2-201409.01-en.us-127GB.vhd" $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 Add-AzureProvisioningConfig -Windows -VM $vm -AdminUsername $adminName -Password $adminPassword New-AzureVM -ServiceName $vmName -VMs $VM -Location $location
5.在创建的DS VM上挂载新的数据磁盘:
$storageAccount = "yourpremiumaccount" $vmName ="yourVM" $vm = Get-AzureVM -ServiceName $vmName -Name $vmName $LunNo = 1 $path = "http://" + $storageAccount + ".blob.core.chinacloudapi.cn/vhds/" + "myDataDisk_" + $LunNo + "_PIO.vhd" $label = "Disk " + $LunNo Add-AzureDataDisk -CreateNew -MediaLocation $path -DiskSizeInGB 128 -DiskLabel $label -LUN $LunNo -HostCaching ReadOnly -VM $vm | Update-AzureVm
参考资料:
https://azure.microsoft.com/en-us/documentation/articles/storage-premium-storage-preview-portal/
http://www.windowsazure.cn/documentation/articles/storage-premium-storage-preview-portal/?fb=001