玩转Windows Azure存储服务——高级存储
在上一篇我们把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存储服务——高级存储的更多相关文章
- 微软开放技术发布开源 Jenkins 插件以将 Windows Azure Blob 服务用的开作存储库
发布于 2014-02-10 作者 陈 忠岳 持续集成 (CI) 的历史源远流长, 其宗旨在于软件团队在敏捷环境中不断将他们的工作整合为持续构建.管理 CI 进程的工具已存在一段时间.过去几年中 ...
- 宣布正式发布 Windows Azure 移动服务、网站及持续的服务创新
我们努力创新,向开发人员提供多样化平台以构建最好的云应用程序并在第一时间提供给世界各地的客户.许多新应用程序都属于"现代化应用程序",即始终基于 Web,且可以通过各种移动设备进行 ...
- 微软开放技术开发了适用于 Windows Azure 移动服务的开源 Android SDK
发布于 2014-02-10 作者 陈 忠岳 为进一步实现连接微软与非微软技术的目标,微软开放技术有限公司开发了适用于 Windows Azure 移动服务的 Android SDK,由Scot ...
- 转载文章:Windows Azure 基础结构服务上的 Microsoft Dynamics NAV 和 Microsoft Dynamics GP!
Windows Azure 基础结构服务(虚拟机和虚拟网络)可提供按需基础结构,该基础结构可进行伸缩以适应不断变化的业务需求.无论您是在虚拟机中创建新应用程序,还是运行现有应用程序,我们都将按分钟收费 ...
- 介绍Windows Azure HDInsight服务的Hadoop Storm的视频
介绍Windows Azure HDInsight服务的Hadoop Storm的原理,用例及开发入门的视频,收藏一下: http://channel9.msdn.com/Shows/Data-Exp ...
- 玩转Windows Azure存储服务——网盘
存储服务是除了计算服务之外最重要的云服务之一.说到云存储,大家可以想到很多产品,例如:AWS S3,Google Drive,百度云盘...而在Windows Azure中,存储服务却是在默默无闻的工 ...
- Windows Azure云服务价格调整通知
好消息!由世纪互联运营的 Windows Azure推出优惠啦.我们采纳了多渠道客户的意见和建议,为了更好地服务大家,将降低多种云服务的价格,其中包括我们最受欢迎的服务 -虚拟机和 Block ...
- Windows Azure文件共享服务--File Service
部署在Windows Azure上的虚拟机之间如何共享文件?例如:Web Server A和Web Server B组成负载均衡集群,两个服务器需要一个共享目录来存储用户上传的文件.通常,大家可能首先 ...
- Windows Azure 云服务角色架构
当我们使用VS发布一个Cloud Service或者在Portal上上传发布包后,就能启动和运行一个云服务,可以保护WebRole,WorkerRole的一个或者多个实例. Windows Azure ...
随机推荐
- 推荐12个最好的 JavaScript 图形绘制库
众多周知,图形和图表要比文本更具表现力和说服力.图表是数据图形化的表示,通过形象的图表来展示数据,比如条形图,折线图,饼图等等.可视化图表可以帮助开发者更容易理解复杂的数据,提高生产的效率和 Web ...
- Telerik JustDecompile 2014.1.255.0 开发版(.NET反编译神器,免费下载)
Telerik JustDecompile是Telerik公司推出一个免费的.NET反编译工具,支持插件与Visual Studio 2015~2013集成,还能够创建Visual Studio Pr ...
- 频率直方图(hist)
频率直方图(frequency histogram)亦称频率分布直方图.统计学中表示频率分布的图形.在直角坐标系中,用横轴表示随机变量的取值,横轴上的每个小区间对应一个组的组距,作为小矩形的底边:纵轴 ...
- [Android]竖直滑动选择器WheelView的实现
以下内容为原创,转载请注明: 来自天天博客:http://www.cnblogs.com/tiantianbyconan/p/3819304.html 公司项目中有这么一个需求,所以需要自己实现下.效 ...
- 微信小程序管理后台介绍
微信小程序的管理后台,每次进入都需要扫码,还是特别不爽,现在微信小程序还没正式发布,很多人都还没看到管理后台,这里抢先发布出来 ------------------------------------ ...
- Double 数据保留两位小数一:五舍六入
package com; public class T2 { public static void main(String[] args) { System.out.println(calculate ...
- Android开发实战(二十一):浅谈android:clipChildren属性
实现功能: 1.APP主界面底部模块栏 2.ViewPager一屏多个界面显示 3......... 首先需要了解一下这个属性的意思 ,即 是否允许子View超出父View的返回,有两个值true . ...
- 浅谈GridLayout(网格布局)
Android 4.0 布局-->GridLayout 网格布局 以行列单元格的形式展示内部控件排列,可以实现类似计算机键盘效果 ,也可以实现可自动变行的标签群效果 使用GridLayout , ...
- IOS开发 App Transport Security has blocked a cleartext HTTP (http://) resource load since it is insecure. Temporary exceptions can be configured via your app's Info.plist file.
xcode自7后不再使用http,而是使用https请求,但目前很多网络请求还只是以http请求,我们可以这样解决 info.plist->添加@“App Transport Security ...
- redis数据类型
Redis 数据类型 Redis支持五种数据类型:string(字符串),hash(哈希),list(列表),set(集合)及zset(sorted set:有序集合). String(字符串) st ...