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

时间: 2024-10-01 06:42:59

Azure上的几个坑的相关文章

Windows Azure上的Odoo(OpenERP)-2.在Ubuntu虚拟机上部署Odoo(OpenERP)

创建虚拟机的步骤在这里就不再赘述了,请参考上一篇博文. 首先用下述命令将Ubuntu系统进行更新: 1. sudo apt-get update 2. sudo apt-get upgrade 3. sudo apt-get dist-upgrade 然后使用您熟悉的文本编辑器,编辑/etc/apt/sources.list 7.0稳定版 deb http://nightly.openerp.com/7.0/nightly/deb/  ./ 开发版,应为8.0版 deb http://night

在Azure上创建MYSQL服务

Azure和所有的云服务一样,也提供了MYSQL数据库,在Azure中叫mysql database on azure.下面我们来一起在Azure上创建一个Mysql数据库. 在新建--> 数据服务,Mysql database on azure当中选择,快速创建,并填写数据库的响应信息. 1.png 注意:名称只能是全小写. 创建成功后,可以到仪表盘当中看到数据库的响应信息. 2.png 如果需要,可以在帐户 Tab当中添加所需要的帐户,帐户格式为databasename%username,

Azure上A/D系列虚拟机到DS系列迁移(1)

有一些用户在刚开始的时候创建了A7,D14等虚拟机来跑一些IO要求比较高的应用,比如Oracle数据库,MySQL数据库,等到用户量上来之后,性能不够,需要升级数据磁盘到SSD固态硬盘,但是问题是: Azure的固态硬盘SSD磁盘属于高级存储Premium Storage A系列,D系列的虚拟机无法使用高级存储作为数据磁盘 只有DS,DSv2,GS系列的虚拟机才可以使用SSD作为数据磁盘 A系列,D系列虚拟机无法直接升级为DS/GS系列 GS系列暂时在中国没有上线 那么在这种情况下,除了创建高级

[移动端]移动端上遇到的各种坑与相对解决方案

mobileHack 这里收集了许多移动端上遇到的各种坑与相对解决方案 1.问题:手机端 click 事件会有大约 300ms 的延迟 原因:手机端事件 touchstart –> touchmove –> touchend or touchcancel –> click,因为在touch事件触发之后,浏览器要判断用户是否会做出双击屏幕的操作,所以会等待300ms来判断,再做出是否触发click事件的处理,所以就会有300ms的延迟 解决方法:使用touch事件来代替click事件,如

Azure上批量创建OS Disk大于30G的Linux VM

Azure上VM的OS盘的大小在创建时是固定的.Windows是127G,Linux是30G.如果需要批量创建的VM的OS Disk有更大的容量.可以考虑用下面的方法实现. 1 创建一台有Data-disk的CentOS VM,对其进行客户化,安装软件,挂载磁盘 2 扩大OS Disk的容量 3 在VM内resize OS Disk的容量 4 把这台VM捕获成Azure的Image 5 通过这个Image批量创建VM.创建VM的OS Disk容量是刚刚调整的容量 本文将采用Azure CLI 2

远程调试 Azure 上的 Website

让我们先检查一下使用的 Azure SDK 版本和 Visual Studio 版本.根据MSDN的介绍,Azure 的远程调试功能是在 Azure SDK 2.2 中加入的,所以请确保您的机器上安装了2.2或者是更新的 Azure SDK. 关于 Visual Studio 的版本问题,MSDN上的描述也很有趣.大意是使用 Visual Studio 2012 已经可以远程调试 Azure 上的 Website 了,但是 Visual Studio 2013 又对此做了很多的提升.个人理解最好

在Azure上实现Linux Server故障转移

要充分利用公有云的弹性扩展和高可用, 首先要在应用系统层面支持横向扩展(scale out),这个说起来很容易,或者说对新开发的应用系统而言已经成为标配.但是对已有的.老旧的应用系统来说,这就比较困难了,不是每个应用系统都能实现/支持横向扩展的.从客户的角度来说,基本上很难接受为了把应用系统迁移到公有云上而去额外投入修改应用系统代码.虽然我们都心知肚明,本质上这是在“偿还技术债”,修改应用系统代码也是为了更好地利用公有云的优势... 对于应用系统的横向扩展而言,“状态”是最大的拦路虎,要支持横向

在 Azure 上使用 Docker运行 Mono

Docker 是最近相当热门的一个名词,它是一个基于 Linux Container 的轻量化的虚拟技术,而微软也相当积极与 Docker 合作,在 Azure 上支持这个火热的技术,并且提供简单的方式来建立 Docker Host,本文将会介绍如何在 Azure 上使用 Docker. Docker 简介 Docker 是一个开源的项目,主要的特点是能将应用程序包装在一个 LXC (Linux Container) 容器中,当这些应用被包装进容器后,部署.迁移都变得更为简单.与传统的虚拟化技术

Global Azure上创建、配置、管理SQL Server信息

近期写了很多关于Azure的相关的文档,今天忙完介绍一下,如何在Windows Azure上配置和管理SQL Server信息:我们今天的实验还是以Global Azure来操作:其实在Windows Azure上的SQL Server结构跟本地差不多,只是在Azure上创建的SQL Server数据不会具有系统默认的管理员权限:比如创建数据库的时候需要指定数据库的管理员信息:不能使用sa做为管理员账户:具体就不多介绍了,具体见下: 我们首先单击SQL 数据库---添加 因为我们环境内没有创建过