服务一个客户,告诉我阿里云上跑的一台Ubuntu包年包月虚拟机即将到期了,因为很多种原因(不便深说)客户认为还是Azure得服务和体验是很棒的,决定在到期停机之前把这台业务虚拟机迁移到Azure上了,怎么做呢?我想到的是之前给大家介绍过得AWS迁移至Azure文章的方法,使用ASR吧,之前的文章主要介绍了迁移Windows虚拟机,那么这次我就给大家分享从阿里云上迁移Ubuntu系统到Azure吧,其实不难,怎么做呢?

在阿里云上有一台虚拟机Ubuntu14.04 x64,这台就是要迁移的业务虚拟机

clip_image001[4]

接下来为了迁移这台Ubuntu的虚拟机到Azure上,我采用Azure ASR来进行迁移,首先需要再阿里云上新建一台虚拟机Windows Server 2012 R2英文版作为配置服务器,选择机型大小

clip_image002[4]

选择操作系统及磁盘大小

clip_image003[6]

设置虚拟机网络和带宽(这里我懒得弄专有网络了)

clip_image004[4]

设置管理员密码和主机名

clip_image005[4]

确定订单即可

clip_image006[4]

创建实例

clip_image007[4]

Windows Server 2012 R2英文版的虚拟机就创建好了

clip_image008[4]

登录进去可以看到该虚拟机有一长内部IP的网卡,一张公网IP的网卡(这点和Azure和企业内部的网络有点不一样,呵呵)

clip_image009[4]

接下来回到Azure管理门户,这里我准备好了需要迁移的目标虚拟网络和子网,这里我就不再赘述,之前的文章有写,这里我新建一个ASR

clip_image010[4]

下一步

clip_image011[4]

在阿里的Windows Server 2012 R2服务器上下载这些配置服务器的安装包和密钥

clip_image012[4]

等待下载完成

clip_image013[4]

下载完成后执行安装

clip_image014[4]

下一步

clip_image015[4]

选择密钥所在位置(我下载到桌面的)

clip_image016[4]

下一步

clip_image017[4]

安装条件检查

clip_image018[4]

设置MYSQL的密码

clip_image019[4]

选择NO,下一步

clip_image020[4]

下一步

clip_image021[4]

这里我通过公网IP来迁移

clip_image022[4]

安装

clip_image023[4]

等待安装完成

clip_image024[4]

安装完成

clip_image025[4]

点击YES后立刻打开记事本粘贴这个生成的密码,并将这个记事本保存到桌面上,接着重启该服务器

clip_image026[4]

点击Cspconfigtool工具添加Ubuntu的root账号和密码

clip_image027[4]

这里我采用和阿里该Ubuntu一样的计算机名进行配置

clip_image028[4]

这是Azure门户上也可以检测到这台配置好的Windows Server 2012 R2配置服务器了

clip_image029[4]

确定

clip_image030[4]

确定

clip_image031[4]

创建关联策略

clip_image032[4]

完成后点击确定

clip_image033[4]

确定

clip_image034[4]

启用复制

clip_image035[4]

选择存储账户和迁移到Azure的虚拟网路

clip_image036[4]

添加需要迁移复制的Ubuntu的计算机名以及公网IP

clip_image037[4]

等待发现成功

clip_image038[4]

发现成功,确定

clip_image039[4]

选择推送Agent的账户,就是上面我们在Windows Server 2012 R2用Cspconfigtool工具添加Ubuntu的root账号和密码得那条信息,选择即可

clip_image040[4]

确定

clip_image041[4]

启用复制

clip_image042[4]

复制作业开始

clip_image043[4]

Windows Server 2012 R2配置服务器成功给Ubuntu推送了Agent并启动复制

clip_image044[4]

开始复制同步

clip_image045[4]

等待复制同步完成

clip_image046[4]

复制同步完成,是受保护的状态

clip_image047[4]

接下来我就不再执行测试故障转移了,直接故障转移了

clip_image048[4]

开始故障转移

clip_image049[4]

请勿取消正在进行的故障转移:在故障转移开始前,停止 VM 复制。 如果取消正在进行的故障转移,故障转移会停止,但 VM 将不再进行复制;当作业处于“启动故障转移”时,请在阿里上将Ubuntu虚拟机关机

clip_image050[4]

查看作业状态

clip_image051[4]

可以看到虚拟机开始创建

clip_image052[4]

等待作业完成

clip_image053[4]

这个虚拟机只能通过该虚拟网络下的其他机器去连接或者部署了站点到站点的×××或者点到站点的×××去连接这台虚拟机

clip_image054[4]

那么给该虚拟机加一个公网IP,点击网络接口

clip_image055[4]

点击图示位置

clip_image056[4]

点击IP配置的下图所示位置

clip_image057[4]

新建一个该虚拟机的公网IP资源

clip_image058[4]

保存

clip_image059[4]

接下来创建一个网络安全组

clip_image060[4]

输入新安全组的名称和选择资源组后点击创建

clip_image061[4]

创建好以后点击这个新建的安全组,关联

clip_image062[4]

关联IZ28SIQEBL2Z虚拟机的网络接口

clip_image063[4]

接下来添加入站规则SSH访问端口

clip_image064[4]

最后验证是否可以连接

clip_image065[4]

没问题后就可以点击完成迁移

clip_image066[4]

最后再更新下源仓库和安装Azure Linux代理即可

参考: http://www.windowsazure.cn/zh-cn/documentation/articles/virtual-machines-linux-create-upload-vhd/

以 Ubuntu 14.04 为例,其他Linux版本可参考以上链接。

在源虚拟机命令行窗口中执行,无需切换至Linux图形界面、Windows系统或依靠Hyper-V等第三方工具。

将阿里云映像中的现有源仓库替换为 Azure 源仓库。

# cp /etc/apt/sources.list /etc/apt/sources.list.bak

# sed -i s/mirrors.aliyun.com/azure.archive.ubuntu.com/g /etc/apt/sources.list

# sed -i /aliyuncs/d /etc/apt/sources.list

添加有效的 DNS 服务器。

编辑“/etc/resolv.conf”,添加如下DNS服务器:

nameserver 8.8.8.8 #Google

nameserver 223.5.5.5 #Ali

clip_image067[4]

安装 Azure Linux Agent。(此操作将会移除NetworkManager和NetworkManager-gnome程序包)

# apt-get update

# apt-get install walinuxagent

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

备注如果执行不了apt-get update可以查询是否之前错误的执行导致进程已存在

ps axu | grep apt-get

clip_image068[4]

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

最后再检查一下Agent服务是否启动

clip_image069[4]

重启该系统就可以检查agent的状态是否OK

clip_image070[4]

最后清理ASR,把Configuration Servers和复制策略点进去清除再删除干净即可收工。

clip_image071[4]

到这里就完成阿里云的Ubuntu虚拟机迁移至Azure上运行了。