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系列暂时在中国没有上线

那么在这种情况下,除了创建高级存储账号,重新创建DS系列的虚拟机,导数据库的数据从头再来之外, 有没有别的办法?答案是肯定的,你可以根据如下步骤完成虚拟机的迁移:

  • 根据你现在的VM大小,选择你要创建的DS,DSv2的虚拟机大小
  • 创建高级存储账号,目前中国北京和上海的高级存储都已经可用了
  • 停止当前VM,拷贝当前虚拟机的系统VHD,数据VHS到高级存储账号
  • 利用拷贝完成的VHD创建系统盘
  • 利用系统磁盘创建DS,DSv2系列的虚拟机
  • 挂载数据磁盘,检查数据完整性
  • 重新创建端点信息,测试服务启动和连通性

上述这些步骤比较复杂,也容易出错,因此上我创建了一个虚拟机迁移脚本,这个脚本可以在同一个订阅的不同vnet之间,不同云服务之间,不同存储账号之间,不同的订阅之间,不同的虚拟机类型之间进行迁移,脚本我已经放在了github上,请前往如下地址下载:

https://github.com/kingliantop/azurelabs/blob/master/vm/VMCopy.ps1

本文介绍如何使用该脚本进行不同类型虚拟机之间的迁移:

  1. 首先在Azure上创建一台Windows Server 2012的虚拟机,作为迁移虚拟机运行迁移工具,虚拟机尺寸尽量选择大一些的,比如A7,主要是azcopy的执行性能和虚拟机的核数会有关系
  2. 在虚拟机的D盘(D盘是临时磁盘,重要数据不要放在上面,本例只是做临时迁移使用)创建一个目录,叫migvm
  3. 安装对应版本的Azure Powershell,在本测试中,请安装0.9.8版本,这个脚本目前是用ASM模式运作的,暂时不支持ARM,后续版本会支持:

Powershell 0.9.8

https://github.com/Azure/azure-powershell/releases?after=v1.0.0-preview-gallery-October2015

4. 安装最新版本的azcopy,下载连接如下,请将azcopy安装在d:\migvm下:

azcopy最新版本:

http://aka.ms/downloadazcopy

5. 下载Github上的VMcopy.ps1, 放在D:\migvm目录下

6. 利用Azure上的新portal,或者powershell,创建高级存储,目前国内的新portal经过测试可以成功创建高级存储:

或者通过Powershell创建:

New-AzureStorageAccount -StorageAccountName "mypremstorage" -Location "China North" -Type "Premium_LRS"

7. 在本测试中,源虚拟机是一台A3的Linux虚拟机,有一块数据磁盘:

8. 收集当前需要迁移的源VM的相关信息:

  • 云服务名称(Cloud Service name)
  • 虚拟机名称(VM name)
  • 当前订阅ID
  • 目标订阅ID(可不写,默认和源订阅一致,即同一个订阅
  • 目标云服务名称(云服务名称必须唯一
  • 源存储容器名称(可不写,默认是vhds
  • 目标存储名称(你创建的高级存储名称)
  • 目标存储容器名称(可不写,默认vhds
  • 目标虚拟网络名称
  • 目标region名称(可不写,默认值China East
  • 虚拟网络子网名称(可不写,默认值Subnet-1

注意事项和说明:

  • 可以看到,为了大家使用方便,大部分的值如果你不写,我都会有默认值,但你必须非常清楚自己的环境
  • 虚拟机在迁移过程中会停机,如果当前不是停机状态,脚本会经你确认后停机
  • 迁移完成后,源虚拟机不会有任何变化,只是拷贝了一份源虚拟机到目标存储和服务
  • 为了避免在同一个订阅下创建磁盘报错,默认情况下会给磁盘加一个后缀"cp",避免重复
  • 脚本的使用方法如下:

    .\VMCopy.ps1 -SourceSubscriptionId SubID

    -DestSubscritpionId DesSubID

    -SourceCloudServiceName "mycs"

    -SourceVMName "myvm"

    -DestCloudServiceName "descs"

    -DestStorageAccountName "destorage"

    -DestLocationName "China East"

    -DestVNetName "myvnet"

    -DestSubNet "desubnet"

    -DestSuffix "new"

9. 登入你的迁移工具虚拟机,打开Azure Powershell,添加源订阅账号和目标订阅账号:

Add-AzureAccount -Environment AzureChinacloud

10. 在Powershell里面,执行迁移脚本进行迁移,例如:

PS D:\migratevm> .\VMCopy.ps1 -SourceSubscriptionId IDXXX -DestSubscritpionId IDXXXX -SourceCloudServiceName mydockermaster -SourceVMName mydockermaster -DestCloudServiceName mydo

ckermasterds -DestStorageAccountName myxiostorage -SourceStorageContainerName vhds -DestStorageContainerName vhds -DestVNetName mydsvmnet -DestLocationName "China North"

待续。。

时间: 2024-10-01 03:55:56

Azure上A/D系列虚拟机到DS系列迁移(1)的相关文章

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

11. 该脚本会检测环境,停止虚拟机,拷贝VHD文件,创建磁盘等等,知道出现如下类似画面,他会暂停等待用户操作: 后面这几个步骤非常重要,关系到你后续的创建是否成功: 12. 进入D:\migvm目录,打开虚拟配置文件,该文件是导出的你源虚拟机的配置文件,一般的命名方式为ExportedVMConfig-CloudServiceName-VMName.xml,例如我的测试虚拟机的配置文件为ExportedVMConfig-centos71testcsnew-centos71test.xml 13

Azure技术08-虚拟机-创建高性能存储,并创建DS系列虚拟机

在使用Azure虚拟机过程中,不免遇到一些应用对磁盘IOPS要求非常高,针对高IOPS要求的应用,我们在以前只能通过Windows系统层面创建RAID的方式来提升磁盘性能,其实Azure高级存储Premium Storage在今年上半年就已经正式向广大用户推出,亮点在于Premium Storage服务采用SSD,并能够带来最高32TB存储容量以及每个VM高达64000 IOPS(即每秒IO操作次数). 在Azure Portal上现在是不支持图形化界面来创建Premium Storage的,所

Azure上的几个坑

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

Windows Azure Virtual Machine (24) 使用高级存储和DS系列VM

<Windows Azure Platform 系列文章目录> 本文介绍的是国内由世纪互联运维的Azure China 熟悉Azure平台的读者都了解,Azure VM每一块Disk的IOPS为500.我们以D系列的VM为例,IOPS信息如下: 虚拟机类型 CPU RAM 临时磁盘 外挂磁盘数 IOPS D1 1 3.5GB 50GB 2 2 * 500 D2 2 7GB 100GB 4 4 * 500 D3 4 14GB 200GB 8 8 * 500 D4 8 28GB 400GB 16

创建DS系列虚拟机及高级存储

在使用微软Azure公有云服务时,遇到很多高IO的需求,普通的VM和存储无法满足,那么我们可以通过高级存储来解决这个问题. 1. 高级存储介绍 Azure VM 支持附加多个高级存储磁盘,使你的应用程序可以具有每个 VM 多达 64 TB 的存储空间.借助高级存储,应用程序对于每个 VM 可以实现 80,000 IOPS(每秒输入/输出操作数)和每秒 2000 MB 的磁盘吞吐量,并且读取操作的延迟非常低. 使用高级存储时的可伸缩性和性能目标 当你为某个高级存储帐户设置磁盘时,其每秒的输入/输出

Microsoft Azure News(4) Azure新D系列虚拟机上线

<Windows Azure Platform 系列文章目录> 这个消息有点晚了,现在补上相关的内容. Azure的虚拟机以前都是A系列的,配置如下: VM Size CPU Core RAM OS Disk(windows) Tem Disk Attach Disk MAX IOPS A0 1(共享) 768MB 127GB 20GB 1 1x500 A1 1 1.75GB 127GB 70GB 2 2x500 A2 2 3.5GB 127GB 135GB 4 4x500 A3 4 7GB

Microsoft Azure News(4) Azure新DV2系列虚拟机上线

<Windows Azure Platform 系列文章目录> 在之前的文章中,笔者了Azure VM虚拟机,分为A系列和D系列2种 Microsoft Azure News(4) Azure新D系列虚拟机上线 2016-05-07,今天世纪互联运维的Azure China,正式宣布CPU为DV2系列的Azure VM,正式在国内商用. VM分为D1至D14,一共8种.如下表: VM Size CPU Core RAM OS Disk(windows) Tem Disk(SSD) Attach

Azure上Linux虚拟机Mac地址的持久化

有些用户在使用Azure Linux 虚拟机安装软件时,有些软件的license会和当前系统的mac地址绑定,那么在Azure VM重启,reszie(改变尺寸大小),停止然后再启动的时候,虚拟机的Mac地址会不会发生变化呢?Azure VM上的Mac地址是如何持久化的呢? ? 我们分VM在vNet和不在vNet中的情况来做一个测试. ? 不在vNet中的测试虚拟机 ? 我们快速创建一台测试的Linux Ubuntu虚拟机,不设置vNet, 意思是该虚拟机不在设定的vNet中,一般是作为测试使用

通过Powershell远程管理Windows Azure上的虚拟机

Windows Azure上连接虚拟机想必不是件难事尤其是连接Windows操作系统简单点几下鼠标通过远程桌面RDPWindows Azure虚拟机会帮助你自动创建远程连接RDP的Profile你就能体验到公有云带来的便利.由于虚拟机外部连接都是通过端口映射连接的.当然基于区域网络目前Azure.CN中新创建的虚拟网络已经都是区域网络了当然你目前仍然可以创建基于地缘组的虚拟网络虽然并不推荐后可以创建虚拟机实例级别的公共IP地址所以你也可以跳过通过"云服务"端口映射的RDP而直接连接虚拟