兼容性与工具配置说明

最近更新时间: 2025-02-18 16:02:00

支持的操作系统

目前在线迁移工具支持的源端主机操作系统包括但不限于以下操作系统:

Linux 操作系统Windows 操作系统
CentOS 5/6/7/8Windows Server 2008
Windows Server 2012
Windows Server 2016
Windows Server 2019
Windows Server 2022
Ubuntu 10/12/14/16/18/20
Debian 7/8/9/10
SUSE 11/12/15
openSUSE 42
Amazon Linux AMI
Red Hat 5/6/7/8
Oracle Linux 5/6/7/8

支持的迁移模式

公网迁移模式

如果您的源端主机和目标云服务器都具有公网访问能力,则可以使用公网迁移模式进行迁移。

在目前的公网迁移模式中,工具的控制链路通过互联网访问云平台的 API 发起迁移请求,工具的数据链路通过互联网向目标云服务器传输数据,将源端主机迁移至云平台的目标云服务器。此模式对应的mode参数值为0。

内网迁移模式

如果您的源端主机或目标云服务器处于某个内网或 VPC 中,源端主机不能通过互联网直接与目标云服务器建立连接,则可以使用工具的内网迁移模式进行迁移。内网迁移模式需要通过使用如 VPC 对等连接VPN 连接、或者 专线接入 等方式建立源端主机与目标云服务器的连接通道。

  • 场景1:(该场景仅支持使用工具迁移)如果您的源端主机或目标云服务器不能访问公网,则可以先通过一台拥有公网访问能力的主机(如网关)以互联网方式访问云平台的 API 发起迁移请求(工具的控制链路),再通过内网通道向目标云服务器传输数据进行迁移(工具的数据链路)。此场景不要求对源端主机和目标云服务器具有公网访问能力。此场景对应的mode参数值为1。
  • 场景2:如果您的源端主机可以访问公网,则可以先在源端主机上通过互联网访问云平台的 API 发起迁移请求(工具的控制链路),再通过内网通道向目标云服务器传输数据进行迁移(工具的数据链路)。此场景要求对源端主机具有公网访问能力,而目标云服务器则不要求。此场景对应的mode参数值为2。
  • 场景3:如果您的源端主机可以通过Http代理访问公网,则可以先在源端主机上通过网络代理访问云平台的 API 发起迁移请求(工具的控制链路),再通过内网通道向目标云服务器传输数据进行迁移(工具的数据链路)。此场景不要求对源端主机和目标云服务器具有公网访问能力。此场景对应的mode参数值为3。

压缩包文件说明

go2cloud.zip 解压后,文件说明如下:

文件名说明
go2cloud-linux.zipLinux 系统的迁移压缩包。
go2cloud-windows.zipWindows 系统的迁移压缩包。
readme.txt目录简介文件。
release_notes.txt迁移工具变更日志。

go2cloud-linux.zip 解压后,文件说明如下:

文件名说明
go2cloud_x64x86架构64位 Linux 系统的迁移工具可执行程序。
go2cloud_x32x86架构32位 Linux 系统的迁移工具可执行程序。
go2cloud_arm64arm架构64位 Linux 系统的迁移工具可执行程序。
user.json迁移时的用户信息。
client.json迁移工具的配置文件。
rsync_excludes_linux.txtrsync 配置文件,排除 Linux 系统下不需要迁移的文件目录。Windows系统因为是块级迁移,不支持文件和目录过滤。

go2cloud-windows.zip 解压后,文件说明如下:

文件名说明
go2cloud_x64.exex86架构64位 Windows 系统的迁移工具可执行程序。
user.json迁移时的用户信息。
client.json迁移工具的配置文件。
client.exeWindows 系统的数据迁移可执行程序。

注意:

不能删除配置文件,并请将配置文件存放在和 go2cloud 可执行程序同级目录下。

user.json 文件参数说明

user.json 配置文件说明如下表:

参数名称类型是否必填说明
SecretIdString账户 API 访问密钥 SecretId。
SecretKeyString账户 API 访问密钥 SecretKey。
RegionString目标云服务器的地域,只需填写地域,无需填写可用区。
InstanceIdString目标云服务器 CVM 的实例 ID,形如 ins-xxxxxxxx。(暂不支持轻量应用服务器)
EndPointstring目标环境的云API的EndPoint域名。

client.json 文件参数说明

client.json 配置文件部分说明如下表:

参数名称类型是否必填说明
Client.Extra.IgnoreCheckBool默认值为 false,迁移工具默认在工具开始运行时自动检查源端主机环境,如果需要略过检查,请设置为 true。也可以直接使用工具的-ignore-check启动参数触发。
Client.Extra.DaemonBool默认值为 false,如果需要迁移工具后台运行,请设置为 true。也可以直接使用工具的-daemon启动参数触发。
Client.Net.Proxy.IpString默认值为空,若迁移场景为内网迁移 场景3 时,需要配置网络代理的 IP 地址。也可以直接使用工具的-proxy-ip启动参数传递IP值。
Client.Net.Proxy.IPv6Bool默认值为 false,若您期望使用 IPv6(例如迁移场景中源端或对端只有 IPv6 IP 的情况下)传输数据,需要您将此选项设置为 true,否则,迁移流量将通过 IPv4 传输。
Client.Net.Proxy.PortString默认值为空,若迁移场景为内网迁移 场景3 时,需要配置网络代理的端口。也可以直接使用工具的-proxy-port启动参数传递端口值。
Client.Net.Proxy.UserString默认值为空,若迁移场景为内网迁移 场景3 ,且您的网络代理还需认证时,需要配置网络代理的用户名。也可以直接使用工具的-proxy-user启动参数传递用户名。
Client.Net.Proxy.PasswordString默认值为空,若迁移场景为内网迁移 场景3 ,且您的网络代理还需认证时,需要配置网络代理的密码。也可以直接使用工具的-proxy-password启动参数传递密码值。

说明:

client.json 文件配置项通常无需填写。

rsync_excludes_linux.txt 文件说明

排除 Linux 源端主机中不需要迁移传输的文件,或指定目录下的配置文件。该文件中已经默认排除以下目录和文件,请勿删改

  • 复制
    复制成功
/dev/*
/sys/*
/proc/*
/var/cache/yum/*
/lost+found/*
/var/lib/lxcfs/*
/var/lib/docker-storage.btrfs/root/.local/share/gvfs-metadata/*

如果您需要排除其他目录和文件,请在该文件尾部追加内容。例如,排除挂载在 /mnt/disk1 的数据盘的所有内容。

  • 复制
    复制成功
/dev/*
/sys/*
/proc/*
/var/cache/yum/*
/lost+found/*
/var/lib/lxcfs/*
/var/lib/docker-storage.btrfs/root/.local/share/gvfs-metadata/*
/mnt/disk1/*

工具运行参数说明

参数选项说明
--help打印帮助信息。
--check检查源机器是否满足迁移,仅做检查不迁移。
--log-file设置日志文件名称,默认为 log。
--log-level日志输出级别,取值范围为1(ERROR 级别),2(INFO 级别)和3(DEBUG 级别),默认值为2。
--version打印版本号。
--clean使目的机器退出迁移模式,并清理还原工具配置文件。
-secret-id云API访问密钥SecretId。
-secret-key云API访问密钥SecretKey。
-region需要迁移到的目的地域。
-instance-id迁移为实例时,需要迁移到的目的实例ID。
-out-image-name 迁移为镜像时,镜像名称。
-remote-ip目的机器ip,默认自动从云api获取不需要指定。
-mode默认值为0。0为走公网传输数据,2为源端可以直接连接公网时但走内网传输数据,3为借助http代理访问公网然后数据走内网传输数据。
-dest-subnet-id使用内网模式迁移为镜像时,已打通内网的子网ID。
-dest-vpc-id使用内网模式迁移为镜像时,已打通内网的VPC ID。
-transit-image-id使用内网模式迁移为镜像时,中转实例的镜像ID。
-ignore-check迁移时跳过检查,直接迁移。
-console自动创建任务进行迁移,无需在控制台手动创建任务。
-no-console不依赖控制台进行迁移,此时控制台上看不到任务。
-proxy-ip当借助http代理内网迁移时,设置http代理ip。
-proxy-port设置http代理端口。
-proxy-user设置http代理用户名。
-proxy-password设置http代理密码。
-disable-cloud-init迁移后不对机器安装cloud-init。仅在Linux迁移有效。
-disable-cloud-init-network设置迁移后不让cloud-init初始化网络配置。仅在Linux迁移有效。
-preserve-hostname迁移后保留原hostname。仅在Linux迁移有效。
-preserve-hosts迁移后保留原hosts。仅在Linux迁移有效。
-preserve-dns迁移后保留原dns。仅在Linux迁移有效。
-preserve-mirrors迁移后保留原软件源。仅在Linux迁移有效。
-preserve-ntp 迁移后保留原ntp。仅在Linux迁移有效。
-bandwidth-limit设置限速带宽,单位是KB/s。仅在Linux迁移有效。
-incremental-time设置持续保持增量同步的时间,单位是分钟。
-minify允许迁移至磁盘空间更小的目的机器上,适用于迁移时缩容。
-blocktest测试是否可以进行块迁移。
-inject-virtio-skipWindows下跳过Virtio驱动自动安装。
-skip-inet-ip-checker当保持内网ip不变迁移时,跳过内网ip的检查。

迁移失败指引

在控制台服务器迁移操作后,会因为一些原因导致任务失败。在任务失败的情况下,您可以在 在线迁移控制台 查看错误码,并根据以下内容进行排查。

错误码错误说明指引
`ERROR_REMOTE_INSTANCE_STATUS_NOT_VALID`当前迁移目标实例状态不允许迁移仅支持运行中已关机的实例作为迁移目标实例。
`ERROR_SAME_INSTANCE`源实例和目标实例相同,不允许迁移请更换目标实例后重新发起迁移任务。
`ERROR_NO_IPV6`目标实例 IPV6 地址缺失目标实例没有 IPv6 地址,您可以使用 IPv4 地址进行迁移。
`ERROR_NO_PUBLIC_IP`目标实例没有公网 IP,无法使用公网模式迁移目标实例没有公网 IP,无法使用公网模式迁移,您可以将云上的目标实例分配一个弹性公网IP,或者使用内网模式迁移。
`ERROR_SAME_IP`内网迁移模式下,源实例内网 ip 和目标实例内网 ip 相同,无法建立连接您可以采用公网模式进行迁移;或者更换目标实例的内网 IP。
`ERROR_OS_NOT_MATCH`Windows 与 Linux 实例不能互相迁移Windows 系统的实例只能迁移到 Windows 实例上。Linux 系统的实例只能迁移到 Linux 的实例上。您可以更换目标实例重新迁移。
`ERROR_INSTANCE_TYPE_NOT_SUPPORTED`目标实例的实例类型暂不支持作为迁移目标方法一:您可以将迁移目标设置为镜像,得到自定义镜像后,再选择您需要的实例类型基于此自定义镜像创建实例。
方法二:您可以先迁移到另一台支持的类型(例如标准型 SA5 等)的实例上,迁移后创建自定义镜像,再选择您需要的实例类型基于此自定义镜像创建实例。
`ERROR_SEC_GROUP_PORT_NOT_OPEN3`目标实例安全组80、443、3389端口未开放您可在私有网络 > 安全 > 安全组控制台开放您相应的安全组端口。
`ERROR_ADD_MORE_DISK`目标实例数据盘数量不够您可以增加目标实例的数据盘数量,以达到迁移的要求。
`ERROR_SYSTEM_DISK_SIZE_NOT_ENOUGH`目标实例系统盘空间不足您可以扩容系统盘,以达到迁移的要求。
`ERROR_ENTER_MIGRATE_MODE`目标实例进入迁移模式失败请您联系客服协助。
`ERROR_HOST_TO_HOST_CONNECTION`迁移源无法连接到目标实例请您联系客服协助。
`ERROR_INIT_SERVER`初始化目标服务器失败请您联系客服协助。
`ERROR_DATA_TRANSMISSION`数据传输失败请您联系客服协助。