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

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

上传大文件到 Azure 存储块 Blob java 迁移到azure_Ubuntu

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

上传大文件到 Azure 存储块 Blob java 迁移到azure_数据库_02

选择操作系统及磁盘大小

上传大文件到 Azure 存储块 Blob java 迁移到azure_Ubuntu_03

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

上传大文件到 Azure 存储块 Blob java 迁移到azure_操作系统_04

设置管理员密码和主机名

上传大文件到 Azure 存储块 Blob java 迁移到azure_运维_05

确定订单即可

上传大文件到 Azure 存储块 Blob java 迁移到azure_数据库_06

创建实例

上传大文件到 Azure 存储块 Blob java 迁移到azure_Azure_07

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

上传大文件到 Azure 存储块 Blob java 迁移到azure_Azure_08

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

上传大文件到 Azure 存储块 Blob java 迁移到azure_运维_09

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

上传大文件到 Azure 存储块 Blob java 迁移到azure_Azure_10

下一步

上传大文件到 Azure 存储块 Blob java 迁移到azure_数据库_11

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

上传大文件到 Azure 存储块 Blob java 迁移到azure_操作系统_12

等待下载完成

上传大文件到 Azure 存储块 Blob java 迁移到azure_操作系统_13

下载完成后执行安装

上传大文件到 Azure 存储块 Blob java 迁移到azure_Ubuntu_14

下一步

上传大文件到 Azure 存储块 Blob java 迁移到azure_运维_15

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

上传大文件到 Azure 存储块 Blob java 迁移到azure_操作系统_16

下一步

上传大文件到 Azure 存储块 Blob java 迁移到azure_操作系统_17

安装条件检查

上传大文件到 Azure 存储块 Blob java 迁移到azure_运维_18

设置MYSQL的密码

上传大文件到 Azure 存储块 Blob java 迁移到azure_Ubuntu_19

选择NO,下一步

上传大文件到 Azure 存储块 Blob java 迁移到azure_运维_20

下一步

上传大文件到 Azure 存储块 Blob java 迁移到azure_Azure_21

这里我通过公网IP来迁移

上传大文件到 Azure 存储块 Blob java 迁移到azure_操作系统_22

安装

上传大文件到 Azure 存储块 Blob java 迁移到azure_操作系统_23

等待安装完成

上传大文件到 Azure 存储块 Blob java 迁移到azure_操作系统_24

安装完成

上传大文件到 Azure 存储块 Blob java 迁移到azure_Ubuntu_25

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

上传大文件到 Azure 存储块 Blob java 迁移到azure_Azure_26

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

上传大文件到 Azure 存储块 Blob java 迁移到azure_数据库_27

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

上传大文件到 Azure 存储块 Blob java 迁移到azure_数据库_28

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

上传大文件到 Azure 存储块 Blob java 迁移到azure_Ubuntu_29

确定

上传大文件到 Azure 存储块 Blob java 迁移到azure_数据库_30

确定

上传大文件到 Azure 存储块 Blob java 迁移到azure_运维_31

创建关联策略

上传大文件到 Azure 存储块 Blob java 迁移到azure_Ubuntu_32

完成后点击确定

上传大文件到 Azure 存储块 Blob java 迁移到azure_Azure_33

确定

上传大文件到 Azure 存储块 Blob java 迁移到azure_Ubuntu_34

启用复制

上传大文件到 Azure 存储块 Blob java 迁移到azure_运维_35

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

上传大文件到 Azure 存储块 Blob java 迁移到azure_运维_36

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

上传大文件到 Azure 存储块 Blob java 迁移到azure_运维_37

等待发现成功

上传大文件到 Azure 存储块 Blob java 迁移到azure_操作系统_38

发现成功,确定

上传大文件到 Azure 存储块 Blob java 迁移到azure_Azure_39

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

上传大文件到 Azure 存储块 Blob java 迁移到azure_操作系统_40

确定

上传大文件到 Azure 存储块 Blob java 迁移到azure_Ubuntu_41

启用复制

上传大文件到 Azure 存储块 Blob java 迁移到azure_数据库_42

复制作业开始

上传大文件到 Azure 存储块 Blob java 迁移到azure_操作系统_43

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

上传大文件到 Azure 存储块 Blob java 迁移到azure_Ubuntu_44

开始复制同步

上传大文件到 Azure 存储块 Blob java 迁移到azure_Azure_45

等待复制同步完成

上传大文件到 Azure 存储块 Blob java 迁移到azure_数据库_46

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

上传大文件到 Azure 存储块 Blob java 迁移到azure_数据库_47

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

上传大文件到 Azure 存储块 Blob java 迁移到azure_Ubuntu_48

开始故障转移

上传大文件到 Azure 存储块 Blob java 迁移到azure_Azure_49

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

上传大文件到 Azure 存储块 Blob java 迁移到azure_Azure_50

查看作业状态

上传大文件到 Azure 存储块 Blob java 迁移到azure_操作系统_51

可以看到虚拟机开始创建

上传大文件到 Azure 存储块 Blob java 迁移到azure_Azure_52

等待作业完成

上传大文件到 Azure 存储块 Blob java 迁移到azure_Ubuntu_53

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

上传大文件到 Azure 存储块 Blob java 迁移到azure_操作系统_54

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

上传大文件到 Azure 存储块 Blob java 迁移到azure_Ubuntu_55

点击图示位置

上传大文件到 Azure 存储块 Blob java 迁移到azure_操作系统_56

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

上传大文件到 Azure 存储块 Blob java 迁移到azure_数据库_57

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

上传大文件到 Azure 存储块 Blob java 迁移到azure_Azure_58

保存

上传大文件到 Azure 存储块 Blob java 迁移到azure_运维_59

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

上传大文件到 Azure 存储块 Blob java 迁移到azure_运维_60

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

上传大文件到 Azure 存储块 Blob java 迁移到azure_操作系统_61

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

上传大文件到 Azure 存储块 Blob java 迁移到azure_操作系统_62

关联IZ28SIQEBL2Z虚拟机的网络接口

上传大文件到 Azure 存储块 Blob java 迁移到azure_操作系统_63

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

上传大文件到 Azure 存储块 Blob java 迁移到azure_Ubuntu_64

最后验证是否可以连接

上传大文件到 Azure 存储块 Blob java 迁移到azure_数据库_65

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

上传大文件到 Azure 存储块 Blob java 迁移到azure_Azure_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

上传大文件到 Azure 存储块 Blob java 迁移到azure_运维_67

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

# apt-get update

# apt-get install walinuxagent

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

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

ps axu | grep apt-get

上传大文件到 Azure 存储块 Blob java 迁移到azure_运维_68

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

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

上传大文件到 Azure 存储块 Blob java 迁移到azure_操作系统_69

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

上传大文件到 Azure 存储块 Blob java 迁移到azure_操作系统_70

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

上传大文件到 Azure 存储块 Blob java 迁移到azure_Azure_71

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


转载于:https://blog.51cto.com/rdsrv/2342034