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

有一些用户在刚开始的时候建立了A7,D14等虚拟机来跑一些IO要求比较高的应用,好比Oracle数据库,MySQL数据库,等到用户量上来以后,性能不够,须要升级数据磁盘到SSD固态硬盘,可是问题是:ios

  • Azure的固态硬盘SSD磁盘属于高级存储Premium Storagegit

  • A系列,D系列的虚拟机没法使用高级存储做为数据磁盘github

  • 只有DS,DSv2,GS系列的虚拟机才可使用SSD做为数据磁盘docker

  • A系列,D系列虚拟机没法直接升级为DS/GS系列shell

  • GS系列暂时在中国没有上线数据库

那么在这种状况下,除了建立高级存储帐号,从新建立DS系列的虚拟机,导数据库的数据从头再来以外, 有没有别的办法?答案是确定的,你能够根据以下步骤完成虚拟机的迁移:网络

  • 根据你如今的VM大小,选择你要建立的DS,DSv2的虚拟机大小ide

  • 建立高级存储帐号,目前中国北京和上海的高级存储都已经可用了工具

  • 中止当前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"

待续。。

相关文章
相关标签/搜索