zoukankan      html  css  js  c++  java
  • Azure上的几个坑

    此文用于记录在使用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的文件上传完成后才发现类型不对肯定是令人抓狂的。:)

  • 相关阅读:
    CSS 文档流
    索引器实现
    HTTP请求报文和响应报文的内容
    【面试题42】翻转单词顺序VS左旋转字符串
    手机连接虚拟机服务器,架构微信内网开发环境
    thrift的使用介绍
    hessian 在PHP中的使用介绍
    PHP simplexml_load_string() 函数
    微信公共平台开发
    使用缓存Memcache存储更新微信access token
  • 原文地址:https://www.cnblogs.com/hunterxue/p/5783210.html
Copyright © 2011-2022 走看看