在Windows Azure上采用IaaS方式,创建和使用虚拟机(Virtual Machine, VM),其中一个非常关键的部分就是如何配置和使用磁盘。

Windows Azure为每一台新创建的虚拟机提供了两块盘:系统盘(OS disk)和临时盘(temporary Disk),其中系统盘为127G,不同尺寸的虚拟机临时盘大小不一样。

针对虚拟机的磁盘,请重点看下面的信息:

http://msdn.microsoft.com/en-us/library/windowsazure/dn197896.aspx

需要注意的是,对于小的数据量,可以考虑操作系统盘。但专门的数据存储,或者较大数据量或者未来增长较快的数据存储需求,不建议使用系统盘。

临时盘提供的是本虚拟机在机房里机柜的物理机器的本地存储,在计划内(如机柜、物理机等维护)或计划外(电源/网络故障、虚拟机失去响应)等情形时,Windows Azure OS会将虚拟机挪到别的地方,而这时临时盘的内容将丢失。

而且临时盘一般也是容量有限,虽然其访问和存取的速度都很快。

所以一般情况下临时盘不要存储业务数据,特别是关键的数据。

推荐的方式是,用户可以采用自己附加数据盘(Data Disk)的方式,不同尺寸的虚拟机可以附加的数据盘的数量也不一样:其中8核的XL和A7最多可以增加16块1T的数据盘,即每个虚拟机最多可提供16TB。

相比较临时盘不同的是,OS盘和数据盘都是最终存储在Windows Azure Blob Storage上,所以存储速度和临时盘有较大差异。

下面就是一个实测的结果,其中对数据盘进行了三次测试,结果稍有差别,但也可以看到用数据盘存储业务数据也是比较稳定的选择。

clip_image002

采用多个数据盘、不同的读写模式,最终的IOPS可能会得到不同的倍级提升。

一个可以参考的基准测试结果,可以参考白皮书:Performance Guidance for SQL Server in Windows Azure Virtual Machines

clip_image003

clip_image004

在一个虚拟机上附加多个数据盘后,还可以进一步地根据自身业务需要,部署磁盘阵列(Redundant Array of Independent Disks,RAID)。对于RAID的不同等级,可以参考:Standard RAID levels

以一个部署了SQL Server 2014 CTP的Windows Server 2012虚拟机为例,该虚拟机采用了中型(双核,3.5GB内存)。

这种尺寸的虚拟机可以最多添加4个数据磁盘。如下图所示:

clip_image005

在Windows Server 2012虚拟机中,可以打开“计算机管理(Computer Management)”工具,在其中的“磁盘管理(Disk Management)”中,可以看到虚拟机所拥有的所有磁盘,包括系统盘、临时盘和4块数据盘。

针对数据盘,可以新增一个RAID 5卷(New RAID-5 Volume)。如下图:

clip_image006

在对话框中,可以选择其中三块数据磁盘,构成RAID-5。

clip_image007