概述
在线迁移是指在系统不停机的情况下,将服务器或虚拟机上的系统、服务程序等从自建机房(IDC)或云平台等源环境迁移同步至亿算云平台。 亿算云平台提供 go2cloud 迁移工具,在待迁移的源端主机上执行迁移工具后,源端主机即可整机迁移至亿算云平台的目标云服务器。该迁移工具可免除制作镜像、上传并导入镜像的繁琐,从源端直接迁移上云,方便实现企业上云、跨云平台迁移、跨账号/区域迁移或部署混合云等业务需求。
迁移工具说明
支持的迁移模式
默认模式
如果您的源端主机和目标云服务器都具有公网访问能力,则可以使用默认模式进行迁移。 在目前的默认模式中,源端主机通过互联网访问云API发起迁移请求,并向目标云服务器传输数据,将源端主机迁移至目标云服务器。
内网迁移模式
如果您的源端主机或目标云服务器处于某个内网或 VPC 中,源端主机不能通过互联网直接与目标云服务器建立连接,则可以使用工具的内网迁移模式进行迁移。内网迁移模式需要通过使用如 VPC 对等连接、VPN 连接或者专线接入等方式建立源端主机与目标云服务器的连接通道。
- 场景1:如果您的源端主机或目标云服务器不能访问公网,则可以先通过一台拥有公网访问能力的主机(如网关)以互联网方式访问云API发起迁移请求,再通过连接通道向目标云服务器传输数据进行迁移。此场景对源端主机和目标云服务器均不要求具有公网访问能力。
- 场景2:如果您的源端主机可以访问公网,则可以先在源端主机上通过互联网访问云API发起迁移请求,再通过连接通道向目标云服务器传输数据进行迁移。此场景对源端主机要求具有公网访问能力,而目标云服务器则不要求。
- 场景3:如果您的源端主机可以通过代理访问公网,则可以先在源端主机上通过网络代理访问云API发起迁移请求,再通过连接通道向目标云服务器传输数据进行迁移。此场景对源端主机和目标云服务器均不要求具有公网访问能力。
支持的操作系统
目前在线迁移工具支持的源端主机操作系统包括但不限于以下操作系统(32位或64位均可):
Linux 操作系统 | Windows 操作系统 |
CentOS 5/6/7 Ubuntu 10/12/14/16/18 Debian 7/8/9 SUSE 11/12/15 openSUSE 42 Amazon Linux AMI Red Hat 7/8 | Windows Server 2008R2 Windows Server 2012 Windows Server 2016 Windows Server 2019 Windows Server 2022 |
压缩包文件说明
文件名 | 说明 |
go2cloud_x64 | 64位 Linux 系统的迁移工具可执行程序。 |
go2cloud_x32 | 32位 Linux 系统的迁移工具可执行程序。 |
user.json | 迁移时源端主机和目标云服务器的配置文件,请根据 user.json 文件参数说明 修改配置。 |
client.json | 迁移工具的配置文件,请根据 client.json 文件参数说明 修改配置。 |
rsync_excludes_linux.txt | rsync 配置文件,排除 Linux 系统下不需要迁移的文件目录。 |
说明: 不能删除配置文件,并请将配置文件存放在和 go2cloud 可执行程序同级目录下。
- user.json 文件参数说明:
参数名称 类型 是否必填 说明 SecretId String 是 账户 API 访问密钥 SecretId。 SecretKey String 是 账户 API 访问密钥 SecretKey。 Region String 是 目标云服务器的地域,只需填写地域,无需填写可用区,取值请参考 地域 列表。 InstanceId String 是 目标云服务器的实例 ID,形如`ins-xxxxxxxx。` DataDisks Array 否 源端主机待迁移数据盘列表,每一个元素代表一块数据盘,最多支持20块数据盘。 DataDisks.Index Integer 是 源端数据盘序号,取值范围[1,20],值为1代表该块数据盘将迁移至目标云服务器的第一块数据盘,以此类推。 DataDisks.Size Integer 是 源端数据盘大小,单位GB,取值范围[10,16000]。 DataDisks.MountPoint String 是 源端数据盘挂载点,如"`/mnt/disk1`"。
例如,将一台 Linux 源端主机迁移至广州地域的一台云服务器中,user.json 文件配置为以下内容:
{
"SecretId": "your secretId",
"SecretKey": "your secretKey",
"Region": "ap-guangzhou",
"InstanceId": "your instance id"
}
说明: 请将对应参数值替换为您实际的配置参数。
例如,将一台 Linux 源端主机(包含一块数据盘,挂载点为/mnt/disk1
,大小为10
GB)迁移至广州地域的一台云服务器,user.json 文件配置为以下内容:
{
"SecretId": "your secretId",
"SecretKey": "your secretKey",
"Region": "ap-guangzhou",
"InstanceId": "your instance id",
"DataDisks": [
{
"Index": 1,
"Size": 10,
"MountPoint": "/mnt/disk1"
}
]
}
说明: 请将对应参数值替换为您实际的配置参数。
client.json 文件参数说明:
参数名称 类型 是否必填 说明 Client.Net.Mode Integer 是 默认值为`0`,取值范围:`0`(默认模式)、`1`(内网迁移模式:场景1)、`2`(内网迁移模式:场景2)、`3`(内网迁移模式:场景3),请根据您实际需要进行的不同模式/场景的迁移,填写相应的参数值。 Client.Net.Proxy.Ip String 否 网络代理 IP 地址,如果您需要进行 内网迁移模式:场景3的迁移,此项为必填参数。 Client.Net.Proxy.Port Integer 否 网络代理端口,如果您需要进行 内网迁移模式:场景3的迁移,此项为必填参数。 Client.Net.Proxy.User String 否 网络代理用户名,如果您需要进行内网迁移模式:场景3 的迁移并且网络代理需要认证,请填写网络代理用户名。 Client.Net.Proxy.Password String 否 网络代理密码,如果您需要进行内网迁移模式:场景3的迁移并且网络代理需要认证,请填写网络代理密码。 Client.Extra.IgnoreCheck Bool 否 默认值为`false`,迁移工具默认在工具开始运行时自动检查源端主机环境,如果需要略过检查,请设置为`true` 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`。 |
`--clean` | 目标云服务器强制退出迁移模式,清理现场。例如,如果控制台提示`Please execute '--clean' option manually.`,则需要使用此选项执行工具使目标云服务器退出迁移模式。 |
`--version` | 打印版本号。 |
迁移前的检查
迁移前,需要分别检查源端主机和目标云服务器。源端主机和目标云服务器需要检查的内容如下:
目标云服务器 |
|
Linux 源端主机 |
|
说明:
- 源端主机检查可以使用工具命令自动检查,如
sudo ./go2cloud_x64 --check
。- go2cloud 迁移工具在开始运行时,默认自动检查。如果需要略过检查强制迁移,请将 client.json 文件中的
Client.Extra.IgnoreCheck
字段配置为true
。
迁移步骤
亿算云平台提供的 go2cloud 迁移工具将整个迁移过程主要划分为以下三个阶段,用户可以在工具运行过程中直观的了解迁移的进度。
- 阶段1:初始化远程实例
- 阶段2:传输数据
- 阶段3:释放远程实例
每个阶段均会产生一些子任务去执行相关操作,部分耗时的子任务还将具有默认的最大超时时间。由于传输数据耗时受源端数据大小,网络带宽等因素影响,请耐心等待迁移流程的完成。迁移工具支持数据传输的断点续传。
注意: 开始迁移后目标云服务器将进入迁移模式,请不要对目标云服务器进行重装系统、关机、销毁、重置密码等操作,直至迁移完成退出迁移模式。
默认模式的迁移步骤
在 user.json 文件配置迁移源端主机和目标云服务器。 请按照 user.json 文件参数说明 配置必填项和所需项的值。
在 client.json 文件配置迁移模式和其他项。 将 client.json 文件里的
Client.Net.Mode
项设置为0
,即进行 默认模式 迁移。此外,如果还需要进行其他项设置,请按照 client.json 文件参数说明 进行配置。排除源端主机上不需迁移的文件或目录。(可选) 在 Linux 源端主机迁移时,如果需要排除一些不需迁移的文件或目录,可以将这些不需要迁移的文件或目录追加至 rsync_excludes_linux.txt 文件 中。
运行工具。 例如,在64位 Linux 源端主机下,以 root 权限执行以下命令运行工具。
sudo ./go2cloud_x64
如果运行工具时需要设置日志文件名和日志输出级别,可执行以下命令。
sudo ./go2cloud --log-file=my.log --log-level=3
工具运行后,请耐心等待迁移流程的完成。 一般默认模式下,迁移成功的控制台输出如下:
内网迁移模式的迁移步骤
场景1的迁移步骤
- 建立源端主机和目标云服务器的连接通道。
通过 VPC 对等连接 / VPN 连接 等方式,建立源端主机和目标云服务器的连接通道。
- 在 user.json 文件配置迁移源端主机和目标云服务器。
请按照 user.json 文件参数说明 配置必填项和所需项的值。
- 在 client.json 文件配置迁移模式和其他项。
将 client.json 文件里的Client.Net.Mode
项设置为1
,即进行 内网迁移模式:场景1 的迁移。此外,如果还需要进行其他项设置,请按照 client.json 文件参数说明 进行配置。
- 排除源端主机上不需迁移的文件或目录。(可选)
在 Linux 源端主机迁移时,如果需要排除一些不需迁移的文件或目录,可以将这些不需要迁移的文件或目录追加至 rsync_excludes_linux.txt 文件 中。
- 在一台可以访问公网的主机(如网关)上运行工具。
例如,在一台可以访问公网的主机上执行以下命令运行工具,进行阶段1的迁移。
sudo ./go2cloud_x64
若提示Stage 1 is finished and please run next stage at source machine.
,则说明阶段1已完成。
- 在待迁移的源端主机上运行工具。
待 步骤5(即阶段1)完成后,需先将阶段1的整个工具目录拷贝至待迁移的源端主机,再运行工具进行阶段2的迁移。
例如,执行以下命令运行工具,进行阶段2的迁移。
sudo ./go2cloud_x64
若提示Stage 2 is finished and please run next stage at gateway machine.
,则说明阶段2已完成。
- 在一台可以访问公网的主机(如网关)上运行工具。
待 步骤6(即阶段2)完成后,需先将阶段2的整个工具目录拷贝至刚才阶段1的主机,再运行工具进行阶段3的迁移。
例如,执行以下命令运行工具,进行阶段3的迁移。
sudo ./go2cloud_x64
若提示Migrate successfully.
,则说明整个迁移任务已完成。
场景2的迁移步骤
建立源端主机和目标云服务器的连接通道。
通过 VPC 对等连接 / VPN 连接 等方式,建立源端主机和目标云服务器的连接通道。
在 user.json 文件配置迁移源端主机和目标云服务器。
请按照 user.json 文件参数说明 配置必填项和所需项的值。
在 client.json 文件配置迁移模式和其他项。
将 client.json 文件里的
Client.Net.Mode
项设置为2
,即进行 内网迁移模式:场景2 的迁移。此外,如果还需要进行其他项设置,请按照 client.json 文件参数说明 进行配置。排除源端主机上不需迁移的文件或目录。(可选)
在 Linux 源端主机迁移时,如果需要排除一些不需迁移的文件或目录,可以将这些不需要迁移的文件或目录追加至 rsync_excludes_linux.txt 文件 中。
运行工具。
例如,在64位 Linux 源端主机下,以 root 权限执行以下命令运行工具。
sudo ./go2cloud_x64
工具运行后,请耐心等待迁移流程的完成。
一般迁移成功的控制台输出如下:
场景3的迁移步骤
- 建立源端主机和目标云服务器的连接通道。
通过 VPC 对等连接 / VPN 连接 等方式,建立源端主机和目标云服务器的连接通道。
在 user.json 文件配置迁移源端主机和目标云服务器。
请按照 user.json 文件参数说明 配置必填项和所需项的值。
在 client.json 文件配置迁移模式和其他项。
将 client.json 文件里的
Client.Net.Mode
项设置为3
,即进行 内网迁移模式:场景3 的迁移。将 client.json 文件里的
Client.Net.Proxy.Ip
和Client.Net.Proxy.Port
项设置为网络代理的 IP 地址和端口。
如果您的网络代理还需要认证,请在`Client.Net.Proxy.User`和`Client.Net.Proxy.Password`项填写网络代理的用户名和密码;如果不需要认证,则不填。此外,如果您还需要进行其他项设置,请按照 client.json 文件参数说明进行配置。
排除源端主机上不需迁移的文件或目录。(可选)
在 Linux 源端主机迁移时,如果需要排除一些不需迁移的文件或目录,可以将这些不需要迁移的文件或目录追加至 rsync_excludes_linux.txt 文件 中。
运行工具。
例如,在64位 Linux 源端主机下,以 root 权限执行以下命令运行工具。
sudo ./go2cloud_x64
工具运行后,请耐心等待迁移流程的完成。
一般迁移成功的控制台输出如下: