以前有部分业务在阿里云上,后来公司要求迁移到腾讯云,想着手动部署再切流量?太麻烦了!无意看到腾讯云有工具可迁移,我就做了下测试,这里是测试记录。大约是2020.8/9月份测试,距离这篇分享隔了四五个月。
1. 前言
本测试根据腾讯云官网的指引,使用腾讯云go2tencentcloud 迁移工具通过公网迁移服务器数据(如何将源服务器数据在线迁移到腾讯云CVM:https://cloud.tencent.com/developer/article/1625454)
2. 创建腾测试环境
2.1 创建腾讯云CVM实例
2.1.1 创建CVM实例
根据腾讯云CVM购买指南购买cvm实例:https://cloud.tencent.com/document/product/213/506
CVM配置名称 规格 备注
可用区 上海4区
实例规格 标准型S5 | S5.LARGE8
镜像ID Ubuntu Server 16.04.1 LTS 64位
CPU 4核
内存 8G
公网带宽 20Mbps
系统盘 50G
数据盘 30G
2.1.2 格式化云硬盘
挂载云硬盘 : https://cloud.tencent.com/document/product/362/5745
初始化数据盘(Linux 云服务器):https://cloud.tencent.com/document/product/213/17487
2.2 创建阿里云实例
2.2.1 创建ecs实例
根据阿里云创建实例步骤创建实例:https://ecs-buy.aliyun.com/wizard/#/prepay/cn-shanghai
ECS配置名称 规格 备注
可用区 华东2(上海)可用区 G
实例规格 ecs.g6e.large
镜像ID ubuntu_16_04_x64_20G_alibase_20200717.vhd
CPU 2核
内存 8G
公网带宽 20Mbps
系统盘 40G
数据盘 20G
2.2.2 挂载数据盘,格式化格式化,创建业务数据test.txt
ECS挂载数据盘详情见:https://help.aliyun.com/document_detail/25446.html?spm=5176.11065259.1996646101.searchclickresult.61b82b88X0voz0
ECS格式化数据盘详情见:https://help.aliyun.com/document_detail/116650.html?spm=5176.2020520101.0.dexternal.572c4df5IhCG9M
在数据盘上创建测试数据test.txt : echo "Migrate from ECS to CVM" test.txt
image.png
2.2.3下载go2tencentcloud迁移工具 并解压
-
mv go2tencentcloud.zip?_ga=1.259394893.65840289.1595928713 go2tencentcloud.zip
-
apt-get install unzip
-
unzip go2tencentcloud.zip
image.png
2.3 在ECS服务器安装模拟业务
2.3.1. 进入root用户,安装apache2
apt-get install apache2
image.png
apt-get install apache2-dev
image.png
2.3.2 启动apache2
systemctl start apache2
在浏览器输入ECS 公网ip ,查看apache正常启动
image.png
3. 检查源端主机和目标云服务器
3.1 目标端迁移环境检查
- 存储空间:目标云服务器的云硬盘(包括系统盘和数据盘)必须具备足够的存储空间用来装载源端的数据
(系统盘50G>40G,数据盘30G>20G) -
安全组:安全组中不能限制443端口和80端口
(安全组放通443和80端口)
image.png - 带宽设置:建议尽可能调大两端的带宽,以便更快迁移。迁移过程中,会产生约等于数据量的流量消耗,如有必要请提前调整网络计费模式。
- 需要检查目标CVM云服务器和源端EC2主机的操作系统类型是否一致。操作系统不一致会造成后续制作的镜像的信息与实际操作系统不符,建议两台机器的操作系统类型尽量一致。例如,CentOS 7 系统的对源端主机迁移时,选择一台 CentOS 7 系统的云服务器作为迁移目标。
3.2 检查源端主机:
本次使用自动检查(第5点)
- 检查和安装 Virtio,操作详情可参考 Linux 系统检查 Virtio 驱动。
- 检查是否安装了 rsync 和 grub2-install(或 grub-install)。
- 检查 SELinux 是否已打开。如果 SELinux 已打开,请关闭 SELinux。
向腾讯云 API 发起迁移请求后,云 API 会使用当前 UNIX 时间检查生成的 Token,请确保当前系统时间无误。 - 补充步骤:
如果源端是AWS EC2的云主机,需要检查源端主机的登录方式。如果您的 AWS 源端主机使用 SSH 密钥对方式登录,建议更换为密码方式登录,具体操作请参考 AWS 开启密码登录 EC2。
如果源端是华为云的云主机,需要执行cloud-init --version命令,检查源端主机中安装的 cloud-init 版本信息。如果安装 cloud-init 的版本低于17.1,建议卸载或移除该版本的 cloud-init。如果源端主机未安装 cloud-init,请跳过此操作。 -
自动检查:源端主机检查可以使用工具命令自动检查,如 sudo ./go2tencentcloud_x64 --check。>- go2tencentcloud 迁移工具在开始运行时,默认自动检查。如果需要略过检查强制迁移,请将 client.json 文件中的Client.Extra.IgnoreCheck字段配置为true。
image.png
4. 开始迁移
4.1 配置 user.json 文件
user.json 是配置源端主机和目标云服务器的文件。该文件的配置项如下:
您的账户 API 访问密钥 SecretId 和 SecretKey (https://cloud.tencent.com/document/product/598/40488)
目标云服务器所在地域。(https://cloud.tencent.com/document/product/213/6091)
image.png
目标云服务器的实例 ID。https://console.cloud.tencent.com/cvm/instance/index?rid=4
image.png
源端主机的数据盘配置。(可选)
如果不添加源端数据盘信息,目标端不会挂载数据盘,而是生成一个与源端数据盘路径同名的目录迁移源端数据盘数据,可能导致目标端系统盘容量不足的情况。。。添加错误MountPoint 目录 ,也是会自动创建目标端与源端相同的文件系统,挂载点目录名称也相同,这个应该是人性化的设计(担心用户填写错误)
user.json文件如下
image.png
4.2 配置 client.json 文件
client.json 是配置迁移模式和其他迁移配置项的文件。无论选择哪种迁移模式/场景,均需在 client.json 里的Client.Net.Mode项中设置相应的参数值。
image.png
4.3 排除源端主机上不需迁移的文件和目
(可选)在 Linux 源端主机编辑 rsync__excludes__linux.txt 文件,排除不需要迁移的文件和目录。
查看文件发现有默认如下文件不迁移
image.png4.4 运行工具发起迁移
./go2tencentcloud_x64
image.png
4.5 验证迁移是否成功
4.5.1 查看系统盘和磁盘
这个自行查看即可
4.5.2 查看数据盘文件
4.5.3 浏览器输入cvm公网ip验证服务是否正常
服务正常迁移测试完成
image.png
网友评论