主机迁移约束、须知与注意事项汇总
本章节全面介绍了主机迁移过程中的关键约束条件、使用须知以及注意事项。旨在帮助用户在进行主机迁移时能够充分准备,避免常见问题,确保迁移过程顺利进行。
主机迁移服务约束与限制
迁移中心的主机迁移工作流通过主机迁移服务(SMS)创建并管理主机迁移任务,因此主机迁移服务的所有约束与限制同样适用于迁移中心的主机迁移场景。
限制项 |
约束和限制 |
---|---|
服务器规格 |
|
CPU与内存 |
|
操作系统 |
|
磁盘可用空间大小 |
|
磁盘数量 |
由于弹性云服务器 ECS的限制(创建弹性云服务器时,最多可以添加24块磁盘)以及SMS迁移过程中需要挂载一块代理磁盘,因此源端主机磁盘数量不能超过23块。 |
磁盘大小 |
|
文件系统 |
|
共享文件系统 |
只支持迁移本地磁盘上的文件,不支持迁移共享文件系统。 例如:NFS(Network File System)、Common Internet File System、NAS(Network Attached Storage)等中的文件。 |
LVM嵌套系统 |
不支持迁移LVM嵌套系统。 |
源端主机组件 |
源端主机需要包含迁移所需的必要组件。
|
限制项 |
约束和限制 |
---|---|
源端服务器数量 |
单个用户源端服务器限制1000台,如果有超过1000台的情况,请在服务器列表页面删除已完成迁移的服务器。 |
迁移并发数 |
同时进行迁移的源端服务器数量最多为100台。 |
服务器外挂存储 |
不支持迁移服务器挂载的外部存储。 |
加密文件 |
不支持迁移含有受保护文件夹、加密卷的系统。 |
多节点数据库和活动目录域(AD DS)服务器 |
不支持迁移AD和多节点数据库的服务器。 |
数据库应用数据和域控制器应用数据 |
不支持数据库、域控制器等应用数据迁移。 |
应用与硬件绑定 |
不支持迁移含有与硬件绑定的应用的系统。 |
动态磁盘 |
在Windows系统中,动态磁盘会当做基本磁盘来迁移,迁移完成后,目的端服务器不会有动态磁盘。 |
空磁盘(即未使用的磁盘) |
仅支持迁移源端服务器中已挂载且实际使用的磁盘,未使用的磁盘不会被迁移。 |
系统卷不在第一块磁盘的服务器 |
不支持迁移系统卷不在第一块磁盘上的服务器。 |
LVM精简卷(LV带pool标签) |
不支持迁移服务器中的LVM精简卷(LV带pool标签)。 |
磁盘列阵(RAID) |
不支持迁移磁盘列阵(RAID)场景。 |
大数据、容器集群 |
只适用于系统迁移,不适用于包括但不限于容器集群、大数据集群等集群迁移。 |
基于内存的压缩块设备(ZRAM) |
不支持迁移基于内存的压缩块设备(ZRAM)。SMS在采集阶段会忽略ZRAM设备,该设备为内存压缩块临时存储,迁移后需客户自行重新配置。 |
主机迁移服务使用须知与注意事项
迁移中心的主机迁移工作流通过主机迁移服务(SMS)创建并管理主机迁移任务,因此主机迁移服务的所有使用须知与注意事项同样适用于迁移中心的主机迁移场景。
- 迁移系统版本较老的服务器(如Windows 2008),可能出现系统内核无法兼容的情况,需提前做好评估,明确是否适合直接迁移,以免迁移后业务无法运行。
- 迁移前,需要关闭源端服务器中可能导致SMS-Agent启动失败的软件(如杀毒软件、安全防护软件)。如果不确定是否有冲突的软件,迁移前请做好数据备份。
- Linux块级迁移目前处于公测阶段,建议只在测试场景下使用。
- 确保操作系统中已安装virtio驱动,否则可能导致目的端无法启动。如果源端为华为云主机,您可以参考安装virtio驱动进行安装。
- 迁移前、后目的端与源端的差异请参见迁移后目的端与源端相比有哪些变化?
- 主机迁移对网络安全的要求请参见主机迁移的网络安全配置与条件有哪些?。
- 目的端服务器的安全组规则要求请参见如何配置目的端服务器安全组规则?。
- 迁移过程中会占用一定的源端主机资源,如内存,CPU,磁盘IO和网速等,请您根据实际业务场景设置合适的网络限流。Linux源端限流依赖系统自带的TC(TrafficControl)组件,如果TC组件未安装或者异常可能存在限流失效的情况。
- 因迁移速度受网络带宽,磁盘IO,CPU和内存占用率,文件大小、数量等因素影响,主机迁移服务无法准确的评估出迁移时长,迁移任务中“剩余迁移时间预测”仅供参考。更多迁移时长与迁移速度的说明请查看迁移时长相关问题解答。
- 建议30天内完成数据迁移和业务割接。
- 由于增量同步受源端文件数目,有效簇连续性以及源端增量数据大小等多方面因素影响,因此主机迁移服务无法评估和保障同步时长。
- 迁移过程中,禁止对目的端服务器的系统、磁盘进行操作,包括但不限于切换操作系统、重装系统等。
- 迁移过程中,会对目的端服务器的磁盘进行格式化并重新分区,请迁移前做好数据备份以及确认目的端服务器磁盘可被格式化。
- 迁移Windows主机过程中,禁止重启源端主机。重启会导致源端主机与SMS控制台断开连接,需要删除迁移任务重新创建。
- 迁移过程中,Windows迁移和Linux块级迁移禁止重启SMS-Agent。
- 迁移过程中,Linux文件级迁移重启SMS-Agent支持断点续传,但仍然有出现异常的风险,非必要,建议不要重启SMS-Agent。
- 迁移过程中,系统会产生一个按需计费的SMS临时磁盘以保证迁移正常进行,迁移完成后系统会自动卸载并删除该磁盘。如果在迁移期间,手动删除了未完成的任务,需要您手动删除该临时磁盘,以免产生额外费用。
- 如果迁移过程中出现报错,请及时收集迁移日志,以供技术人员定位问题。
查询迁移日志的方法参见如何查找SMS的运行日志?。
- 主机迁移服务属于系统迁移,可以保证迁移前后数据一致性,但无法确保迁移后业务能正常运行。应用能否成功部署,需要用户根据实际情况进行调整,SMS只负责数据迁移,不负责用户的业务调整。
- 主机迁移服务提供了数据一致性校验功能,您可以在配置目的端或进行增量同步时,启用并配置该功能,对源端数据和目的端数据进行一致性校验。该功能暂不支持BTRFS文件系统的主机。
主机迁移服务关键特性须知
主机迁移服务的关键特性须知如下:
Linux主机首次全量迁移时,为了适配华为云并确保目的端主机能够正常启动,会修改目的端主机以下目录中的部分参数配置。增量同步的时候,为了保证这些目录下的参数配置不被源端数据覆盖或修改,这些目录的数据默认不会同步:
/proc/*, /sys/*, /lost+found/*, /tmp/_MEI*, /var/lib/ntp/proc/*, /boot/*, /boot/efi/*, /etc/fstab, /etc/*, /etc/X11/*, /root/initrd_bak/*, /lib/modules/*, /boot/grub2/x86_64-efi/*, /boot/grub2/i386-pc/*
Linux迁移限速功能依赖于源端服务器上安装的tc命令以及cbq内核模块。以下是检查这些依赖项的方法:
- 检查tc命令:在Linux终端中输入以下指令,如果系统返回tc功能列表,则表示已安装tc命令。
# tc
- 检查cbq模块:在Linux终端中输入以下指令,如果系统返回相关输出,则表示cbq模块已加载。
lsmod | grep sch_cbq
- 支持网络连接中断恢复后的断点续传。
- 支持Linux重启后的断点续传,但不支持Windows重启后的断点续传。
迁移中心Agent使用须知
迁移中心Agent(MgC Agent)作为MgC部署在客户云环境网络边缘的工具,在主机迁移场景下,其主要作用是配合云端迁移工作流执行主机采集和数据迁移。

不建议将MgC Agent安装在源端待迁移的主机上,主要原因包括:
- 资源消耗:MgC Agent在采集和迁移运行过程中会消耗CPU和内存资源。在迁移任务量大时,这可能会对源端的业务运行造成影响。
- 端口占用:MgC Agent会占用源端主机上的一些端口,也可能会对源端业务产生影响。
- 需要对安装MgC Agent的主机开放5985端口。
- PowerShell 版本在3.0及以上。
- 需要开启WinRM远程访问,并与安装MgC Agent的主机建立连接,方法请参考Windows服务器WinRM服务配置与故障排查。
- 允许执行shell脚本。在源端主机打开PowerShell(以管理员身份),然后运行以下命令来查看当前的执行策略。
Get-ExecutionPolicy
如果返回值为“Restricted”,则表示不允许运行任何脚本。需要执行如下命令,并输入Y,将策略改为“RemoteSigned”。Set-ExecutionPolicy RemoteSigned
- 需要对安装MgC Agent的主机开放22端口。
- 需要开放root账号的直接连接权限。即允许通过SSH等远程连接方式使用root账号登录到源端Linux主机。
- 需要启用SFTP和SSH服务。
- 需要支持以下密钥交换算法和MAC算法:
- 密钥交换算法:ssh-ed25519、ecdsa-sha2-nistp256、ecdsa-sha2-nistp384、ecdsa-sha2-nistp521、rsa-sha2-512、rsa-sha2-256
- MAC算法:hmac-sha2-256、hmac-sha2-512
如果源端主机不支持以上安全算法,推荐升级OpenSSH版本至8.0及以上版本,否则无法进行主机深度采集。
- iptable未禁用与MgC Agent所在主机的通信。在源端主机执行如下命令,如果命令输出中的source字段包含MgC Agent所在主机的访问IP和端口,则代表已禁用,需要取消禁用。
iptables -L INPUT -v -n
执行如下命令取消禁用。iptables -D INPUT -s <source字段:MgC Agent所在主机IP地址>
迁移中心支持采集和迁移的操作系统
迁移中心支持采集和迁移的操作系统如下:
迁移中心支持采集和迁移的Windows系统列表参见表1。
OS版本 |
位数 |
支持UEFI |
备注 |
---|---|---|---|
Windows Server 2008 |
64 |
NO |
无法通过UEFI方式启动Windows Server 2008/2008 R2。 |
Windows Server 2008 R2 |
64 |
NO |
|
Windows Server 2012 |
64 |
Yes |
- |
Windows Server 2012 R2 |
64 |
Yes |
|
Windows Server 2016 |
64 |
Yes |
|
Windows Server 2019 |
64 |
Yes |
|
Windows Server 2022 |
64 |
Yes |
|
Windows 7 |
64 |
NO |
|
Windows 8.1 |
64 |
NO |
|
Windows 10 |
64 |
Yes |
迁移中心支持采集和迁移OpenSSH版本不低于7.0的Linux主机。如果源端主机使用的是低于7.0版本的OpenSSH,需要进行以下操作:
- 将OpenSSH升级到 7.0 或更高版本。
- 如果无法升级OpenSSH版本,需要在安装迁移中心Agent的主机上添加环境变量,方法请参考通过设置环境变量以采集和迁移OpenSSH版本低于7.0的Linux主机。
迁移中心支持采集和迁移的Linux操作系统列表参见表2。
操作系统类型 |
系统版本 |
OpenSSH默认版本 |
---|---|---|
CentOS |
CentOS 6.5及以上 |
OpenSSH 5.3 必须升级OpenSSH到7.0及以上版本,或设置环境变量。 |
CentOS 7.x |
OpenSSH 7.4 |
|
CentOS 8.x |
OpenSSH 8.0 |
|
CentOS Stream 8/9/10 |
OpenSSH 8.0 |
|
Ubuntu |
Ubuntu Server 16.04 |
OpenSSH 7.2 |
Ubuntu Server 18.04 |
OpenSSH 7.6 |
|
Ubuntu Server 20.04 |
OpenSSH 8.2 |
|
Ubuntu Server 22.04 |
OpenSSH 8.9 |
|
Red Hat |
Red Hat Enterprise Linux 7.x |
OpenSSH 7.4 |
Red Hat Enterprise Linux 8.x |
OpenSSH 8.0 |
|
Red Hat Enterprise Linux 9.x |
OpenSSH 8.7 |
|
Oracle Linux |
Oracle Linux 7.x |
OpenSSH 7.4 |
Oracle Linux 8.x |
OpenSSH 8.0 |
|
Oracle Linux 9.x |
OpenSSH 9.0 |
|
Amazon Linux |
Amazon Linux 2 |
OpenSSH 7.4 |
Amazon Linux 2018.03及以上 |
OpenSSH 7.4 |
|
Amazon Linux 2023 |
OpenSSH 8.9 |
|
Alibaba Cloud Linux |
Alibaba Cloud Linux 2.x |
OpenSSH 7.4 |
Alibaba Cloud Linux 3.x |
OpenSSH 8.2 |
|
openSUSE |
openSUSE Leap 15.4 |
OpenSSH 8.1 |
openSUSE Tumbleweed |
OpenSSH 9.0 |
|
麒麟 (Kylin) |
Kylin Operating System V10 |
OpenSSH 8.4 |
openEuler |
openEuler 22.03 LTS |
OpenSSH 8.8 |