📤↗ 以华为云迁移至腾讯云为例,了解不同云服务商之间的云服务器该如何迁移?

一、为什么要迁移?

比如说:我手里有一台旧的快到期的华为云服务器 和 一台新的腾讯云服务器,由于旧的华为云服务器续费比较贵,这才买了新的性价比更高的腾讯云服务器。

但是,我的旧服务器上存储了过多的资源、网站等,假若重新再跑一遍搭建流程,也不是不可以,但是那过程过于繁琐了。所以就在想有没有什么办法可以直接将旧服务器环境一键迁移至新服务器上,本文使用的是腾讯云官方的在线迁移工具,更多官方文档详情可以看这儿:云服务器 在线迁移概述-操作指南-文档中心-腾讯云

注意:腾讯云服务器和轻量应用服务器之间暂不支持在线迁移~

二、怎么迁移?→ 腾讯云在线迁移

两种迁移方式:

迁移方式

概述

适用场景

特点

在线迁移:客户端导入迁移源

登录源端实例运行工具导入迁移源,并在控制台上创建迁移任务,完成迁移

公网迁移 & 内网迁移

跨云迁移:适用各种源环境

IDC 上云

高兼容性

在线迁移:控制台一键迁移

控制台上验证访问身份即可一键导入迁移源并创建迁移任务

无需登录源端服务器

公网迁移

跨云迁移:适用于源端实例在友商 阿里云

一键批量迁移

三、华为云迁移至腾讯云流程

云服务器规格一览表

华为云服务器(源端主机)

腾讯云服务器(目标云服务器)

地域

华东 - 上海一 | 可用区 1

上海 | 上海五区

规格

  • CPU - 2 核 | 4GiB

  • 云硬盘:系统盘 - 40 GiB 高 IO

  • 带宽:1 Mbit/s

  • CPU - 2 核 内存 - 2GB

  • 系统盘 - SSD 云硬盘 40GiB

  • 流量包 - 200GB / 月(带宽:3Mbps)

镜像信息

CentOS 7.6 64bit

CentOS 7.6 64bit

1. 迁移流程

2. 迁移详细步骤

2.1. 步骤一:迁移前准备

2.1.1. 获取云 API 密钥(识别目标端)

API 密钥管理 页面中创建并获取 SecretId SecretKey

若您使用子账号进行控制台迁移,子账号需要 QcloudCSMFullAccessQcloudCVMFullAccess 权限,您可以使用主账号登录 访问管理控制台 授予。

2.1.2. 数据备份:快照

建议您暂停主机上的应用程序并进行数据备份,以避免迁移时对现有应用程序可能产生的影响。

  • 源端主机:可以选择源服务器快照功能等方式备份数据,源端主机是指待迁移的主机。

  • 目标云服务器:可以选择 创建快照 等方式备份目标云服务器数据。

2.1.3. 迁移前检查

迁移前,需根据实际情况进行检查。检查内容如下表:

  • 若迁移目标为云服务器,则需检查源端主机 目标云服务器

  • 若迁移目标为云服务器镜像,则仅需检查源端主机。

Linux 源端主机

1. 检查和安装 Virtio,操作详情可参见 Linux 系统检查 Virtio 驱动

2. 向腾讯云 API 发起迁移请求后,云 API 会使用当前 UNIX 时间检查生成的 Token,请确保当前系统时间无误。

拓:在 Linux 系统中,Virtio 是一种为虚拟化环境设计的驱动框架,用于提高虚拟机(VM)与宿主机之间的通信和性能。Virtio 驱动通过提供一组标准的虚拟设备,如网络适配器、块设备和其他设备,使虚拟机能够与宿主机进行高效的通信。

Windows 源端主机

1. 检查和安装 Virtio,操作详情可参见 Windows 系统检查 Virtio 驱动

2. (可选)检查和安装 Cloudbase-Init,详情请参见Windows 操作系统安装 Cloudbase-Init。您可以选择迁移前在源端主机安装,也可迁移后在目标实例安装:

若在迁移前安装,则迁移后将会进行自动配置网络、激活等初始化操作。

若未在迁移前安装,您可能需要使用 VNC 登录实例并手动修改网络配置。

3. 建议您暂时关闭杀毒软件,以免误杀迁移工具而导致迁移失败。

目标云服务器

1. 存储空间:目标云服务器的云硬盘(包括系统盘和数据盘)必须具备足够的存储空间用来装载源端的数据。

2. 安全组:安全组中开放 80、443 和 3389 端口。

3. 带宽设置:建议尽可能调大两端的带宽,以便更快迁移。迁移过程中,会产生约等于数据量的流量消耗,如有必要请提前调整网络计费模式。

4. 网络设置:若您的源段或者目的段主机只有 IPv6,不具备 IPv4,请参见 client.json 文件参数说明

源端主机检查:

sudo ./go2tencentcloud_x64 --check
2.1.3.1. 源端主机 检查 → Linux 系统检查含有 Virtio 驱动即可

⒈检查内核是否支持 Virtio 驱动

执行以下命令,确认当前内核是否支持 Virtio 驱动。

确认当前内核是否支持 Virtio 驱动:

grep -i virtio /boot/config-$(uname -r)

  • 如果返回结果中CONFIG_VIRTIO_BLK 参数和CONFIG_VIRTIO_NET 参数取值为 m,请继续往下执行 检查临时文件系统是否包含 Virtio 驱动

  • 如果在返回结果中CONFIG_VIRTIO_BLK 参数和CONFIG_VIRTIO_NET 参数取值为 y,表示该操作系统包含了 Virtio 驱动,您可以直接导入自定义的镜像到腾讯云。操作详情请参见 导入镜像概述

  • 如果在返回结果中没有CONFIG_VIRTIO_BLK 参数和CONFIG_VIRTIO_NET 参数的信息,表示该操作系统不支持导入腾讯云,请 下载和编译内核

⒉检查临时文件系统是否包含 Virtio 驱动

如果上一步执行结果参数取值为 m,则需要进一步检查,确认临时文件系统 initramfs 或者 initrd 是否包含 virtio 驱动。请根据操作系统的不同,执行相应命令:

CentOS 6/CentOS 7/CentOS 8/RedHat 6/RedHat 7 操作系统:

lsinitrd /boot/initramfs-$(uname -r).img | grep virtio

可得知,initramfs 已经包含了 virtio_blk 驱动,以及其所依赖的 virtio.kovirtio_pci.kovirtio_ring.ko,您可以直接导入自定义的镜像到腾讯云。操作详情请参见 导入镜像概述。 如果 initramfs 或者 initrd 没有包含 virtio驱动,请继续往下执行 重新配置临时文件系统

⒊重新配置临时文件系统

如果上一步执行结果显示临时文件系统 initramfs 或者 initrd 没有包含 virtio 驱动,则需要重新配置临时文件系统 initramfs 或者 initrd,使其包含 virtio 驱动。请根据操作系统的不同,选择相应操作:

CentOS 6/CentOS 7/CentOS 8/RedHat 6/RedHat 7 操作系统:

mkinitrd -f --allow-missing --with=xen-blkfront --preload=xen-blkfront --with=virtio_blk --preload=virtio_blk --with=virtio_pci --preload=virtio_pci --with=virtio_console --preload=virtio_console /boot/initramfs-$(uname -r).img $(uname -r)
2.1.3.2. 目标云服务器 检查 → 开放端口 80、443、3389

2.2. 步骤二:导入迁移源

2.2.1. 通过迁移工具导入迁移源(Linux 服务器)

⒈下载迁移工具:在待迁移的源端主机,这里是华为云服务器,执行以下命令 下载 迁移工具 go2tencentcloud.zip,并进入对应目录。

wget https://go2tencentcloud-1251783334.cos.ap-guangzhou.myqcloud.com/latest/go2tencentcloud.zip
unzip go2tencentcloud.zip
cd go2tencentcloud/go2tencentcloud-linux

(可选)排除源端主机上不需迁移的文件或目录。 若 Linux 源端主机中存在不需要迁移的文件或目录,可将文件或目录添加至 rsync_excludes_linux.txt 文件 中。

⒊导入迁移源

准备好事先访问密钥的 SecretIdSecretKey,以 64 位 Linux 源端主机为例,以 root 权限依次执行以下命令运行工具。

chmod +x go2tencentcloud_x64
sudo ./go2tencentcloud_x64

当迁移工具界面出现如下图所示信息时,表示迁移源已经成功导入控制台,可前往控制台查看迁移源。

2.2.2. 通过控制台查看迁移源

登录 在线迁移控制台 即可查看已导入的迁移源,状态为在线 。如下图所示:

注意:迁移源导入成功之后,请勿关闭实例中的迁移工具直至迁移任务完成。否则,迁移源离线之后,将无法完成迁移任务。

2.3. 步骤三:创建迁移任务

2.3.1. 创建迁移任务

登录 在线迁移控制台,单击目标迁移源所在行右侧的创建迁移任务。在弹出的创建迁移任务窗口中,参见以下信息进行配置。如下图所示:

目标类型根据自身需求选择:

云服务器镜像:迁移任务完成之后将为迁移源生成目标腾讯云镜像。 镜像名称:为迁移源生成的目标腾讯云镜像名称。

√ 云服务器实例:选择一台目标地域的云服务器实例作为迁移目标。 目标实例:建议目标云服务器的操作系统尽量和源端主机的操作系统类型一致。例如,CentOS 7 系统的对源端主机迁移时,选择一台 CentOS 7 系统的云服务器作为迁移目标。

迁移任务详细配置说明如下表:

基本选项:

配置选项

是否必填

说明

目的地域

源端主机要迁入的腾讯云地域。CentOS 7.6 64bit

任务名称

迁移任务的名称。

任务描述

迁移任务的描述。

目标类型

设置迁移源迁移至腾讯云的目标类型。

云服务器镜像:迁移任务完成之后将为迁移源生成目标腾讯云镜像。 镜像名称:为迁移源生成的目标腾讯云镜像名称。镜像名称在目标地域重复时,迁移任务会自动添加任务 ID 到镜像名称中。

云服务器实例:选择一台目标地域的云服务器实例作为迁移目标。 目标实例:建议目标云服务器的操作系统尽量和源端主机的操作系统类型一致。例如,CentOS 7 系统的对源端主机迁移时,选择一台 CentOS 7 系统的云服务器作为迁移目标。

镜像名称

迁移任务的目标类型为云服务器镜像时,您将得到一个自定义镜像,此处为镜像命名。镜像名称在目标地域重复时,迁移任务会自动添加任务 ID 到镜像名称中。

网络模式

设置迁移传输数据时使用的网络类型。

公网传输:迁移传输数据到目标云服务器或中转实例时使用公网传输。

内网传输:迁移传输数据到目标云服务器或中转实例时使用内网传输。详情请参见 内网迁移教程。 私有网络:迁移到云服务器镜像时,中转实例将创建在该私有网络 VPC 中。 子网:迁移到云服务器镜像时,中转实例将创建在该子网中。

迁移方式

设置 Linux 实例迁移数据的迁移方式类型,不同迁移方式的区别

Linux 文件级迁移:迁移颗粒度为文件级,高兼容性,相对较低的传输效率。

Linux 块级迁移:迁移颗粒度为磁盘逻辑存储单位级,高传输效率,相对较低的兼容性。

Windows 块级迁移:迁移颗粒度为磁盘逻辑存储单位级,Windows 迁移默认采用块级迁移,具备高兼容性和高传输效率。

配置增量同步

自定义配置增量同步时长,持续同步数据,灵活控制迁移交割时间。

不开启:由迁移工具自动识别并执行增量迁移,通常执行一次。

开启后:您可自主选择增量同步执行时长,工具会持续同步增量数据至腾讯云,您也可以在任务列表手动停止增量同步。

预约执行时间

创建迁移任务后,在设置的时间自动启动迁移任务。预约执行时间最早可设置为当前时间后 10 分钟。

高级配置 (可选):

配置选项

是否必填

说明

传输限制(KB/s)

迁移过程中,数据传输的带宽上限限制,单位为 KB/s,范围为 [0, 25600], 默认不限速。Windows 迁移暂不支持该选项。

Checksum 验证

开启后,可增强数据一致性校验,但是可能会降低传输速度。Windows 迁移暂不支持该选项。

2.3.2. 启动迁移任务

创建迁移任务后,可单击迁移任务页签,查看迁移任务。单击任务所在行右侧的开始 / 重试,并在弹出确认窗口中单击确定,即可开始迁移任务。此时任务状态变更为迁移中。如下图所示:

2.4. 步骤四:迁移后检查

2.4.1. 控制台查看迁移进度

当迁移任务状态为成功时,表示成功完成迁移。如下图所示:

2.4.2. 迁移后检查

迁移结果失败请检查日志文件(默认为迁移工具目录下的 log 文件)的错误信息输出、指引文档或者 服务器迁移类常见问题 进行排查和修复问题。修复后在迁移任务操作列单击开始 / 重试,即可重新开始迁移任务。

迁移结果成功若迁移目标为云服务器,请检查目标云服务器能否正常启动、目标云服务器数据与源端主机是否一致、网络是否正常或者其他系统服务是否正常。 若迁移目标为云服务器镜像,可单击迁移任务所在行的云服务器镜像 ID,进入 云服务器镜像页面 即可查看该镜像信息,您可使用该镜像创建云服务器。

如有迁移异常等问题请查看 服务器迁移类常见问题 解决。

其他更多关于云服务器与轻量应用服务器的迁移请看:轻量应用服务器 云服务器 CVM 数据迁移至轻量应用服务器-操作指南-文档中心-腾讯云