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

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

56.阿里云虚拟机迁移至Azure(21V)_阿里云

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

56.阿里云虚拟机迁移至Azure(21V)_Azure_02

选择操作系统及磁盘大小

56.阿里云虚拟机迁移至Azure(21V)_云计算_03

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

56.阿里云虚拟机迁移至Azure(21V)_Azure_04

设置管理员密码和主机名

56.阿里云虚拟机迁移至Azure(21V)_阿里云_05

确定订单即可

56.阿里云虚拟机迁移至Azure(21V)_aliyun2azure_06

创建实例

56.阿里云虚拟机迁移至Azure(21V)_Azure_07

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

56.阿里云虚拟机迁移至Azure(21V)_阿里云_08

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

56.阿里云虚拟机迁移至Azure(21V)_aliyun2azure_09

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

56.阿里云虚拟机迁移至Azure(21V)_云计算_10

下一步

56.阿里云虚拟机迁移至Azure(21V)_aliyun2azure_11

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

56.阿里云虚拟机迁移至Azure(21V)_aliyun2azure_12

等待下载完成

56.阿里云虚拟机迁移至Azure(21V)_云计算_13

下载完成后执行安装

56.阿里云虚拟机迁移至Azure(21V)_阿里云_14

下一步

56.阿里云虚拟机迁移至Azure(21V)_阿里云_15

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

56.阿里云虚拟机迁移至Azure(21V)_Azure_16

下一步

56.阿里云虚拟机迁移至Azure(21V)_云计算_17

安装条件检查

56.阿里云虚拟机迁移至Azure(21V)_阿里云_18

设置MYSQL的密码

56.阿里云虚拟机迁移至Azure(21V)_阿里云_19

选择NO,下一步

56.阿里云虚拟机迁移至Azure(21V)_Azure_20

下一步

56.阿里云虚拟机迁移至Azure(21V)_阿里云_21

这里我通过公网IP来迁移

56.阿里云虚拟机迁移至Azure(21V)_阿里云_22

安装

56.阿里云虚拟机迁移至Azure(21V)_阿里云_23

等待安装完成

56.阿里云虚拟机迁移至Azure(21V)_Azure_24

安装完成

56.阿里云虚拟机迁移至Azure(21V)_阿里云_25

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

56.阿里云虚拟机迁移至Azure(21V)_阿里云_26

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

56.阿里云虚拟机迁移至Azure(21V)_阿里云_27

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

56.阿里云虚拟机迁移至Azure(21V)_aliyun2azure_28

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

56.阿里云虚拟机迁移至Azure(21V)_aliyun2azure_29

确定

56.阿里云虚拟机迁移至Azure(21V)_阿里云_30

确定

56.阿里云虚拟机迁移至Azure(21V)_Azure_31

创建关联策略

56.阿里云虚拟机迁移至Azure(21V)_aliyun2azure_32

完成后点击确定

56.阿里云虚拟机迁移至Azure(21V)_云计算_33

确定

56.阿里云虚拟机迁移至Azure(21V)_Azure_34

启用复制

56.阿里云虚拟机迁移至Azure(21V)_aliyun2azure_35

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

56.阿里云虚拟机迁移至Azure(21V)_aliyun2azure_36

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

56.阿里云虚拟机迁移至Azure(21V)_aliyun2azure_37

等待发现成功

56.阿里云虚拟机迁移至Azure(21V)_Azure_38

发现成功,确定

56.阿里云虚拟机迁移至Azure(21V)_云计算_39

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

56.阿里云虚拟机迁移至Azure(21V)_Azure_40

确定

56.阿里云虚拟机迁移至Azure(21V)_阿里云_41

启用复制

56.阿里云虚拟机迁移至Azure(21V)_阿里云_42

复制作业开始

56.阿里云虚拟机迁移至Azure(21V)_Azure_43

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

56.阿里云虚拟机迁移至Azure(21V)_云计算_44

开始复制同步

56.阿里云虚拟机迁移至Azure(21V)_aliyun2azure_45

等待复制同步完成

56.阿里云虚拟机迁移至Azure(21V)_阿里云_46

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

56.阿里云虚拟机迁移至Azure(21V)_Azure_47

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

56.阿里云虚拟机迁移至Azure(21V)_云计算_48

开始故障转移

56.阿里云虚拟机迁移至Azure(21V)_云计算_49

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

56.阿里云虚拟机迁移至Azure(21V)_aliyun2azure_50

查看作业状态

56.阿里云虚拟机迁移至Azure(21V)_云计算_51

可以看到虚拟机开始创建

56.阿里云虚拟机迁移至Azure(21V)_aliyun2azure_52

等待作业完成

56.阿里云虚拟机迁移至Azure(21V)_Azure_53

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

56.阿里云虚拟机迁移至Azure(21V)_aliyun2azure_54

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

56.阿里云虚拟机迁移至Azure(21V)_Azure_55

点击图示位置

56.阿里云虚拟机迁移至Azure(21V)_Azure_56

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

56.阿里云虚拟机迁移至Azure(21V)_aliyun2azure_57

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

56.阿里云虚拟机迁移至Azure(21V)_aliyun2azure_58

保存

56.阿里云虚拟机迁移至Azure(21V)_aliyun2azure_59

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

56.阿里云虚拟机迁移至Azure(21V)_云计算_60

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

56.阿里云虚拟机迁移至Azure(21V)_aliyun2azure_61

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

56.阿里云虚拟机迁移至Azure(21V)_Azure_62

关联IZ28SIQEBL2Z虚拟机的网络接口

56.阿里云虚拟机迁移至Azure(21V)_Azure_63

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

56.阿里云虚拟机迁移至Azure(21V)_云计算_64

最后验证是否可以连接

56.阿里云虚拟机迁移至Azure(21V)_Azure_65

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

56.阿里云虚拟机迁移至Azure(21V)_阿里云_66

最后再更新下源仓库和安装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

56.阿里云虚拟机迁移至Azure(21V)_Azure_67

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

# apt-get update

# apt-get install walinuxagent

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

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

ps axu | grep apt-get

56.阿里云虚拟机迁移至Azure(21V)_aliyun2azure_68

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

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

56.阿里云虚拟机迁移至Azure(21V)_aliyun2azure_69

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

56.阿里云虚拟机迁移至Azure(21V)_云计算_70

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

56.阿里云虚拟机迁移至Azure(21V)_云计算_71

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