上一篇我们把Windows Azure的存储服务用作网盘,本篇我们继续挖掘Windows Azure的存储服务——高级存储。高级存储自然要比普通存储高大上的,因为高级存储是SSD存储!其吞吐量和IOPS自然是普通存储没法比的。在高级存储功服务推出之前,用户为了提升磁盘性能,通常需要挂载多个持久盘做成RAID 0来使用。一个最大号的虚拟机,最多可以挂载16个持久盘,若将这16个磁盘组成RAID 0,理论上其整体磁盘性能可以提高16倍——当然这个只是理论值,因为是软RAID,总是要消耗一些计算资源的。

如果客户的应用场景对磁盘性能要求较高,例如:高频的数据库读写,大文件处理等,高级存储的优势就非常明显了。说到这里,我们不得不提一下D系列的虚拟机。很多用户误以为D系列的虚拟机已经是SSD存储了,为什么还需要高级存储呢?没错,D系列的虚拟机的确使用了SSD存储,但D系列虚拟机使用的SSD存储只是实例级存储,说白了就是临时盘。如果虚拟机关闭(释放)后再重新开启,或者因硬件故障执行迁移后,那么临时盘上的数据肯定就不存在了。因此,D系列虚拟机上的SSD临时盘(实例级存储)非常适合存放系统运行过程中的临时文件——作为操作系统或者应用程序的临时目录使用,例如:Windows Server的temp目录,Linux的Swap分区等。不管是A系列虚拟机还是D系列虚拟机,其附带的临时盘(实例级存储)都是不要钱的,免费。而持久盘是要按存储容量收费滴。

既然高级存储是用来存放虚拟机的持久盘(目前也只能用于虚拟机的持久盘,即:page blob),自然就不可能是免费的,而且其价格远高于普通存储。还有一点最关键的是:高级存储上的虚拟机持久盘是按所分配的容量计费,例如:用户创建了一个128G的高级存储持久盘,不管用户实际在上面存放了多少数据,其价格都是固定不变的;相比之下,用户即便创建了一个1TB的普通存储持久盘,但只在上面存储了10G数据,那么其价格只是按照10G来计算。好吧,一分钱一分货,好货不便宜。

目前,Windows Azure的高级存储服务只能在中国东部(上海)使用,由于中国版Windows Azure还没有提供新版的Web管理控制台,因此,只能通过PowerShell来配置和使用高级存储,包括创建使用高级存储的虚拟机。准备好万能的PowerShell,开工~~~

首先我们来创建一个高级存储账户,由于现在只有中国东部可以提供高级存储服务,因此[-Location]参数也只能设置为“China East”。

New-AzureStorageAccount -StorageAccountName [存储账户名称] -Location "China East" -Type "Premium_LRS" 

接下来要把创建好的高级存储账户设置当前存储账户,以便后续基于当前存储账户来创建虚拟机。这一步比较关键,而且Windows Azure的文档上漏掉了这一步,导致后续创建虚拟机的步骤无法顺利执行。

Set-AzureSubscription -CurrentStorageAccountName [高级存储账户名称] -SubscriptionId [订阅ID]

经过上述两个步骤,高级存储账号就准备好了。但是从Web管理控制台上是没法将虚拟机创建到高级存储账户的。继续PowerShell吧。

$storageAccount = "[高级存储账户名称]"
$vmName = "[虚拟机名称]"
$serviceName = "[云服务名称]"
$imageName = "[虚拟机镜像名称]"
$location = "China East"
$vmSize = "[DS系列虚拟机]"
$OSDiskPath = "https://" + "[高级存储账户名称]" + ".blob.core.chinacloudapi.cn/vhds/" + "[操作系统盘文件名].vhd"
$adminUsername = "[管理员用名]"
$adminPassword = "[管理员密码]"

#创建Windows虚拟机

New-AzureQuickVM -ImageName $imageName -MediaLocation $OSDiskPath -Windows -InstanceSize $vmSize -ServiceName $serviceName -Name $vmName -AdminUsername $adminUsername -Password $adminPassword -Location $location

#创建Linux虚拟机

New-AzureQuickVM -ImageName $imageName -MediaLocation $OSDiskPath -Linux -InstanceSize $vmSize -ServiceName $serviceName -Name $vmName -LinuxUser $adminUsername -Password $adminPassword -Location $location

这段代码挺长,我们来解读一下:

  • $vmSize,既不是A系列也不是D系列,而是DS系列,只有DS系列的虚拟机才能使用高级存储。DS系列虚拟机的配置与D系列是一一对应的。例如:DS1的CPU核数、内存容量与D1是一样的。其大小描述规则也是与D系列虚拟机类似,例如:“Standard_DS2”。
  • $location,在中国北部开通高级存储服务之前,只能是“China East”了。
  • $imageName,使用[Get-AzureVMImage | Select-Object {$_.ImageName}]命令来查找需要使用的虚拟机镜像名称。
  • $OSDiskPath,是一个指向高级存储账户中vhd文件的路径,也就是指定虚拟机系统盘的存放路径。

当创建虚拟机的PowerShell命令正确返回时,虚拟机创建动作其实并没有真正完成。可以通过Web管理控制台查看新创建的虚拟机状态。在其状态为“Running”之前,虚拟机是不可用的,即无法远程登录也无法进行后续的磁盘挂载等操作。

等虚拟机创建完成(状态变为“Running”),我们就可以继续给虚拟机创建并附加持久盘。

#获取虚拟机实例的引用
$vm=Get-AzureVM -ServiceName [云服务名称] -Name [虚拟机名称]
#指定持久盘的存储位置
$dataDiskPath = "https://" + "[高级存储账户名称]" + ".blob.core.chinacloudapi.cn/vhds/" + "[持久盘文件名].vhd"
#指定持久盘的描述标签
$dataDiskLabel = "[持久盘描述标签]"
#指定Lun号,如果只有一个持久盘,取值为1;如果有多个持久盘,则为每个持久盘指定不同的Lun号。
$LunNo = 1
#创建高级存储持久盘并附加到虚拟机。[持久盘容量]的取值范围是:128,512,1024,即对应三种不同容量的高级存储持久盘。
Add-AzureDataDisk -CreateNew -MediaLocation $dataDiskPath -DiskSizeInGB [持久盘容量] -DiskLabel $dataDiskLabel -LUN $LunNo -HostCaching ReadOnly -VM $vm | Update-AzureVm

和普通存储一样,如果用户认为单个高级存储的持久盘性能依然不足,可以通过附加多个高级存储的持久盘并创建RAID 0来进一步提升整体磁盘性能。理论上,可以将一个虚拟机的磁盘配置到50000 IOPS,这性能足以让Windows Azure傲视于其他竞争对手了!

最后我们来说说Windows Azure高级存储的一些限制和注意事项吧:

  • 无法通过Web控制台对高级存储账户进行管理。虽然在Web控制台上能列出高级存储账户的名称,但仅此而已。
  • 将DS系列虚拟机放在独立的云服务中,不要与非DS系列虚拟机混搭。
  • 高级存储只能用于虚拟机的磁盘(系统盘和持久盘),不能用作blob存储和文件服务(File Service)。
  • 合理预估高级存储持久盘的容量并选择合适的磁盘大小,以免造成不必要的浪费。
  • 无法使用PowerShell来查看存放在高级存储账户上的vhd文件。但可以通过azcopy或者Start-AzureStorageBlobCopy往高级存储账户上复制vhd文件或者将vhd文件从高级存储账户上复制出来。

至此,我们已经能够顺利的使用Windows Azure高级存储服务了,希望中国北部(China North)的用户也能尽快用上高级存储服务。

玩转Windows Azure存储服务——高级存储的更多相关文章

  1. 微软开放技术发布开源 Jenkins 插件以将 Windows Azure Blob 服务用的开作存储库

     发布于 2014-02-10 作者 陈 忠岳 持续集成 (CI) 的历史源远流长, 其宗旨在于软件团队在敏捷环境中不断将他们的工作整合为持续构建.管理 CI 进程的工具已存在一段时间.过去几年中 ...

  2. 宣布正式发布 Windows Azure 移动服务、网站及持续的服务创新

    我们努力创新,向开发人员提供多样化平台以构建最好的云应用程序并在第一时间提供给世界各地的客户.许多新应用程序都属于"现代化应用程序",即始终基于 Web,且可以通过各种移动设备进行 ...

  3. 微软开放技术开发了适用于 Windows Azure 移动服务的开源 Android SDK

     发布于 2014-02-10 作者 陈 忠岳 为进一步实现连接微软与非微软技术的目标,微软开放技术有限公司开发了适用于 Windows Azure 移动服务的 Android SDK,由Scot ...

  4. 转载文章:Windows Azure 基础结构服务上的 Microsoft Dynamics NAV 和 Microsoft Dynamics GP!

    Windows Azure 基础结构服务(虚拟机和虚拟网络)可提供按需基础结构,该基础结构可进行伸缩以适应不断变化的业务需求.无论您是在虚拟机中创建新应用程序,还是运行现有应用程序,我们都将按分钟收费 ...

  5. 介绍Windows Azure HDInsight服务的Hadoop Storm的视频

    介绍Windows Azure HDInsight服务的Hadoop Storm的原理,用例及开发入门的视频,收藏一下: http://channel9.msdn.com/Shows/Data-Exp ...

  6. 玩转Windows Azure存储服务——网盘

    存储服务是除了计算服务之外最重要的云服务之一.说到云存储,大家可以想到很多产品,例如:AWS S3,Google Drive,百度云盘...而在Windows Azure中,存储服务却是在默默无闻的工 ...

  7. Windows Azure云服务价格调整通知

     好消息!由世纪互联运营的 Windows Azure推出优惠啦.我们采纳了多渠道客户的意见和建议,为了更好地服务大家,将降低多种云服务的价格,其中包括我们最受欢迎的服务 -虚拟机和 Block ...

  8. Windows Azure文件共享服务--File Service

    部署在Windows Azure上的虚拟机之间如何共享文件?例如:Web Server A和Web Server B组成负载均衡集群,两个服务器需要一个共享目录来存储用户上传的文件.通常,大家可能首先 ...

  9. Windows Azure 云服务角色架构

    当我们使用VS发布一个Cloud Service或者在Portal上上传发布包后,就能启动和运行一个云服务,可以保护WebRole,WorkerRole的一个或者多个实例. Windows Azure ...

随机推荐

  1. 充满想象力的 JavaScript 物理和重力实验

    在这个列表中挑选了9个物理和重力实验,用来展示 Javascript 的强大.几年前,所有这些实验都必须使用 Java 或 Flash 才能做.在下面这些惊人的例子中,就个人而言,我比较喜欢仿真布料的 ...

  2. Popline:帅气的浮动 HTML5 文本编辑器工具栏

    Popline 是一个基于 HTML5 实现的富文本编辑器工具栏,设计灵感来自 PopClip ,相比传统的文本编辑器工具,Popline 能够浮动在编辑的文本周围,操作起来十分方便. 您可能感兴趣的 ...

  3. HHKB MAC 配置指南 操作指南 快捷键

    1. 设备: mac电脑一台.hhkb键盘一个 2. 初级配置 (1)调节hhkb的模式为Macintosh模式:011001 (打开键盘侧边的滑盖,按照这个顺序调正) (2)Mac电脑安装官方驱动  ...

  4. js一些代码方法

    概要 1.替换json对象中属性值(包括子对象) 2.兼容多个$库写法(zepto与jquery) 3.闭包保持变量的做法 详情 1.替换json对象中属性值(包括子对象) //替换json对象属性值 ...

  5. javascript --- Function模式

    回调函数 在javascript中,当一个函数A作为另外一个函数B的其中一个参数时,则称A函数为回调函数,即A可以在函数B的运行周期内执行(开始,中间,结束). 举例来说,有一个函数用于生成node. ...

  6. <!DOCTYPE>

     定义和用法 所有浏览器都支持 <!DOCTYPE> 声明. <!DOCTYPE> 声明必须是 HTML 文档的第一行,位于 <html> 标签之前. <!D ...

  7. 关于SAP的事务提交和回滚(LUW)

    1 Sap的更新的类型 在sap中,可以使用CALL FUNCTION ... IN UPDATE TASK将多个数据更新绑定到一个database LUW中.程序使用COMMIT WORK提交修改请 ...

  8. 劳动节脑洞大开!利用Debug API 获取 加壳客户端的MD5值

    系统 : Windows xp 程序 : 某游戏客户端 程序下载地址 :不提供 要求 : 远程注入 & 获取MD5值 使用工具 : vc++6.0 & OD 案例说明: 该游戏客户端对 ...

  9. CALayer 易混淆的两个属性 - position和anchorPoint

    1.简单介绍 CALayer有2个非常重要的属性:position和anchorPoint @property CGPoint position;                           ...

  10. Android Animation学习(二) ApiDemos解析:基本Animators使用

    Android Animation学习(二) ApiDemos解析:基本Animatiors使用 Animator类提供了创建动画的基本结构,但是一般使用的是它的子类: ValueAnimator.O ...