此文用于记录在使用Azure中国版时遇到的一些“坑”。

1、虚拟机备份/还原

在某些场景中,使用备份/还原功能来创建(克隆)虚拟机比使用capture的image要方便很多。虚拟机备份后,执行还原操作实质上是创建一个新的虚拟机,原虚拟机仍然保留。其效果和使用capture的image创建虚拟机基本是一样的,唯一的区别就是:在通过还原功能创建虚拟机时,虚拟机大小是不能选择的。如果要更改虚拟机的大小,只能在虚拟机还原完成后执行resize操作。还原出来的虚拟机其endpoint也被原样保留下来了。

这里的坑有两个:

  1. 中国版Azure的虚拟机备份功能与Ubuntu操作系统之间存在兼容性问题。运行Ubuntu操作系统的虚拟机可以正常备份,但还原出来的虚拟机的所有endpoint端口都变成了随机的数值(包括SSH端口)。而且无法使用SSH登录,提示用户名和密码错误。处理方法为:首先手工将endpoint端口修改正确,然后登录到预览版的Azure管理控制台重置管理员密码。
  2. 对于DS系列使用高级存储的虚拟机,执行备份是没有问题的,但还原时只能选择还原到普通存储上。处理方法为:使用脚本将还原出来的虚拟机复制到高级存储中。

2、创建DS系列(高级存储)虚拟机

在经典管理控制台中是无法创建DS系列虚拟机的,只能通过PowerShell脚本创建DS系列虚拟机,但是官方的文档中(包括中文和英文)都漏掉了一个步骤:

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

如果不指定当前订阅的默认存储账号,创建虚拟机的过程是无法执行成功的。

创建虚拟机的命令是这样的:

New-AzureVM -ServiceName [云服务名称] -VMs [虚拟机配置] -VNetName [虚拟网络名称]

是不是感觉少了点什么?没错这个命令没有指定subnet的参数!如果虚拟机所在的虚拟网络划分了多个子网,那么新创建出来的虚拟机就会被放到子网之外去,即:新创建出来的虚拟机不在任何子网中!所以创建好DS系列的虚拟机之后,一定要为新创建出来的虚拟机设置子网:

Get-AzureVM -ServiceName [云服务名称] -Name [虚拟机名称] | Set-AzureSubnet -SubnetNames [子网名称] | Update-AzureVM

等新版的Azure管理控制台正式上线后,就可以在通过web界面愉快的创建DS系列虚拟机了。

3、azcopy是可以指定blob类型的

上传自定义镜像除了使用PowerShell命令之外,azcopy也是可以的。只不过默认情况下,用azcopy上传的vhd镜像是block类型的,而block类型是无法作为虚拟机镜像使用的。其实azcopy有一个参数是可以指定上传类型的:“/BlobType: page”。记住这个参数吧,否则几十GB的文件上传完成后才发现类型不对肯定是令人抓狂的。:)

Azure上的几个坑的更多相关文章

  1. 微软.NET年芳15:我在Azure上搭建Photon服务器(C#.NET)

    网上火热的“微软.NET年芳15”文章,我也得写点什么嘛,毕竟我还是现任的微软MVP. 摘录网上的“.NET 15周年”信息如下: 微软的 .NET 框架本周迎来了 15 岁生日..NET 的第一个版 ...

  2. 在Azure上部署IPv6的App通过IOS App Store审核

    随着中国企业出海Go Global,越来越多的用户开始在Global Azure部署自己的应用.由于对Global Azure功能和文档的不熟悉,使用过程中或多或少遇到了一些坑.事实上呢,这些并不是坑 ...

  3. Azure 上通过 SendGrid 发送邮件

    SendGrid 是什么? SendGrid 是架构在云端的电子邮件服务,它能提供基于事务的可靠的电子邮件传递. 并且具有可扩充性和实时分析的能力.常见的用例有: 自动回复用户的邮件 定期发送信息给用 ...

  4. 在公有云AZURE上部署私有云AZUREPACK以及WEBSITE CLOUD(二)

    前言 (二)建立虚拟网络环境,以及域控和DNS服务器   1搭建虚拟网络环境 在Azure上创建虚拟网络.本例选择的是东南亚数据中心.后面在创建虚机的时候,也选择这个数据中心. VNet Name: ...

  5. 在Azure上的VM镜像库中找到想要的镜像

    Azure上的虚机镜像库中, 有很多的镜像,其中当然也包括了用户自定义上传的镜像. 在Powershell中如果想使用这些镜像的话, 则需要知道其名称 下面这条命令,可以获得所有的镜像信息 $imag ...

  6. 在Azure上部署Windows Server Core

    作为服务器操作系统,图形界面真心有些多余了,这也是很多人喜欢Linux服务器的原因之一.从Windows Server 2008开始,微软提供了Server Core版本,其实就是一个没有图形界面的服 ...

  7. 在 Azure 上使用 Docker运行 Mono

    Docker 是最近相当热门的一个名词,它是一个基于 Linux Container 的轻量化的虚拟技术,而微软也相当积极与 Docker 合作,在 Azure 上支持这个火热的技术,并且提供简单的方 ...

  8. 在公有云AZURE上部署私有云AZUREPACK以及WEBSITE CLOUD(一)

    (一)前言 本文主要介绍了实践部署AzurePack的Website Cloud的过程.在部署之前, 首先要对AzurePack有个基本的了解.   Azure Pack是微软的私有云方案,具有弹性. ...

  9. 在Azure上实现Linux Server故障转移

    要充分利用公有云的弹性扩展和高可用, 首先要在应用系统层面支持横向扩展(scale out),这个说起来很容易,或者说对新开发的应用系统而言已经成为标配.但是对已有的.老旧的应用系统来说,这就比较困难 ...

随机推荐

  1. 在linux平台实现atosl

    ➠更多技术干货请戳:听云博客 序言 怎么在linux 平台下实现一个类似于mac 平台下的 atos 工具( iOS 符号化解析)? 分析问题 在github上找到了几年前的开源实现,[https:/ ...

  2. 这些.NET开源项目你知道吗?让.NET开源来得更加猛烈些吧

    注意:有网友提出部分项目停止更新的事情,这个问题我特意注意过,很多都是小功能组件,功能稳定,没有bug,没更新是正常的.够用就行了.其次技术支持的事情,对开源免费来说,不能太强求,这里发布的都是小功能 ...

  3. RMAN异机恢复快速参考

    应用场景:服务器A为正常运行的生产环境,需要在服务器B上部署一套相同环境做测试. 数据库环境:RHEL6.4 + Oracle 11.2.0.4.7 一. 服务器A备份数据库 1.1 在线备份(数据库 ...

  4. Linux 平台静默安装 Oracle客户端

    需求:Linux平台,安装完整版Oracle客户端 Tips:如果只是用到sqlldr,sqlplus功能,可以参考<Linux上oracle精简版客户端快速部署>快速部署精简版:如果需要 ...

  5. C++异常处理:try,catch,throw,finally的用法

    写在前面 所谓异常处理,即让一个程序运行时遇到自己无法处理的错误时抛出一个异常,希望调用者可以发现处理问题. 异常处理的基本思想是简化程序的错误代码,为程序键壮性提供一个标准检测机制. 也许我们已经使 ...

  6. 使用BitArray判断素数

    首先显示1024范围内的所有素数,然后显示输入的数是否是素数.1024 是代码中计算的素数的范围,可以修改.计算平方根,是为了确定一个基数的范围.1024的平方根是32,两个超过32 的数相乘,肯定大 ...

  7. 苹果手机不支持click文字 需要添加 cursor:pointer 才能 识别可以点击

    给一个div 绑定一个 click事件,  苹果手机会识别不了,必须添加一个 cursor:pointer 才能 识别可以点击.安卓正常识别.

  8. HTTP、HTTP2

      HTTP.HTTP2.0.SPDY.HTTPS 你应该知道的一些事 原文链接:http://www.alloyteam.com/2016/07/httphttp2-0spdyhttps-readi ...

  9. 学习笔记 MSSQL显错手工注入

    和朋友一起学习,速度就是快.感谢珍惜少年时. 网上很多都在长篇大论MSSQL显错手工注入,其实原理只有一小段.如下: ' and (查询一段内容)=1 and 'C'='Cnvarchar类型(查询一 ...

  10. ASP.NET 在 Windows Azure 环境中使用基于 SQLServer 的 Session

    Session 嘛,占一点儿服务器资源,但是总归比 ViewState 和 Cookie 安全点儿,所以还是要用的. Windows Azure 环境中的 Web 服务器经由负载均衡调度,根本无法保证 ...