创建Linux主机迁移任务
操作场景
主机迁移服务(Server Migration Service,SMS)是一种P2V/V2V迁移服务,可以帮您把X86架构的物理服务器或者私有云、公有云平台上的虚拟机迁移到华为云弹性云服务器/Flexus云服务器上。
本章节主要指导您在SMS控制台,快速创建针对Linux系统主机的迁移任务,以实现快速迁移。
操作视频
操作流程
|
操作步骤 |
说明 |
|---|---|
|
|
|
在源端服务器上安装并启动迁移Agent。 |
|
|
在SMS控制台设置目的端服务器。 |
|
|
将源端服务器所有数据复制到目的端服务器。 |
|
|
将源端增量数据同步到目的端。 |
|
|
迁移完成后,删除迁移过程中产生的割接快照和同步快照,以避免持续产生不必要的费用。 |
准备工作
使用主机迁移服务前,请参考以下步骤准备好账号、权限及源端、目的端服务器环境。
- 已注册华为账号并开通华为云,登录华为云完成实名认证。
- 已获取账号迁移权限。
如果使用账号登录,默认拥有迁移权限,可无需配置迁移权限;如果使用IAM用户登录,可参考创建用户组并授权进行授权。
- 已获取目的端账号的AK/SK。
迁移时使用AK/SK进行鉴权认证,获取目的端账号的AK/SK操作请参见如何获取AK/SK?(账号)或如何获取AK/SK?(IAM用户)。
主机迁移服务不支持使用企业联邦用户(虚拟IAM用户)的AK/SK进行鉴权认证。
- 账号余额不少于100元(充值、代金券皆可)。
建议您目的端账户余额不少于100元(充值、代金券皆可),避免迁移过程中欠费,导致迁移失败。
- 源端操作系统要求。
主机迁移服务支持迁移的源端服务器操作系统列表请参见Linux兼容性列表。
- 迁移网络要求。
- 源端能连接到华为云API Gateway(端口:443),具体操作请参见源端能连接到API Gateway。
源端出网方向端口,建议全部开放。
- 使用IPv6进行迁移时,要求源端支持IPv4/IPv6双栈网络。
- 源端能连接到目的端。具体操作请参见源端能连接到目的端。
- 若使用弹性公网IP连接,目的端需要提前购买和配置正确的EIP。
- 若使用专线或者VPN,需提前购买和配置正确的专线或VPN。
- 目的端服务器所属安全组需要开放如下端口:
- Linux文件级迁移开放22端口。
- Linux块级迁移开放8900端口、22端口。
具体操作请参见目的端服务器所属安全组开放端口要求。
- 以上端口,建议只对源端服务器开放。
- 防火墙开放端口与操作系统开放端口保持一致。
- 源端能连接到华为云API Gateway(端口:443),具体操作请参见源端能连接到API Gateway。
- 源端服务器环境、剩余空间及其他要求。
- 源端服务器剩余空间要求:根分区可用空间小于200MB时不能迁移。
- 源端服务器环境要求:源端服务器时间与标准时间一致,避免源端Agent注册失败。
- 确保源端服务器安装了Rsync库(当前主流服务器系统已默认安装Rsync库,无需手动安装)。您可以在源端服务器执行如下命令,查看是否安装了Rsync库。
rsync -v
如果未安装Rsync库,根据具体的系统执行对应命令安装Rsync库:- CentOS执行:
yum -y install rsync
- Ubuntu执行:
apt-get -y install rsync
- Debian执行:
apt-get -y install rsync
- SUSE执行:
zypper install rsync
- 其他平台系统:参见官网安装相关文档。
- CentOS执行:
步骤一:在源端安装迁移Agent并启动
从主机迁移服务 SMS控制台,下载迁移Agent到源端服务器并安装,运行迁移Agent输入目的端服务器所在华为云账号的AK/SK,以及SMS域名。迁移Agent启动成功后会收集源端服务器信息并自动发送给主机迁移服务。
- 登录主机迁移服务管理控制台。
- 在左侧导航树中,单击“迁移Agent”,进入“迁移Agent”页面。
- 选择Linux操作系统,单击Linux Agent下载窗格中的“下载Agent”后的
图标,复制Agent的下载命令,在源端服务器执行命令下载迁移Agent。

- 复制CMS文件和CRL文件的下载命令,在源端Linux主机下载CMS文件和CRL文件,对迁移Agent进行软件包完整性校验,具体操作参见如何校验迁移Agent软件包数字签名CMS完整性?。

- 完整性校验完成后,执行以下命令,解压SMS-Agent软件包。
tar -zxvf SMS-Agent.tar.gz
- 执行以下命令,进入源端服务器的SMS-Agent目录。
cd SMS-Agent
- 若使用HTTP/HTTPS代理服务器,请执行8.。
若不使用HTTP/HTTPS代理服务器,请执行9.。
- 代理服务器为一种特殊网络服务,当您的源端无法通过公网访问华为云时,可以通过代理服务器访问华为云,代理服务器需用户自行配置。
- 代理仅用于专线/VPN场景下源端到服务端的注册,不用于数据迁移过程。
- 配置HTTP/HTTPS代理服务器(可选)。
- 执行如下命令,进入config目录。
cd SMS-Agent/agent/config
- 执行如下命令,打开并编辑auth.cfg文件。若迁移过程中不使用HTTP/HTTPS代理,禁止修改auth.cfg文件。
vi auth.cfg
示例:(以下仅为示例说明,具体代理服务器信息,请根据实际情况填写。)
[proxy-config] enable = true proxy_addr = https://your-proxy-addr.com proxy_port = 3128 proxy_user = root use_password = true
- enable:使用代理时,设置为true。
- proxy_addr:代理服务器地址,允许源端服务器通过代理服务器访问主机迁移服务,非目的端地址。your-proxy-addr.com需要更换为您代理服务器的地址,协议需要根据代理服务器的实际情况配置,建议您将代理服务器协议配置为https。
- proxy_user:代理有用户名的话,就填写用户名,如root;没有则不填。
- use_password:代理有密码的话设置为true,否则false。
- 执行如下命令,保存auth.cfg文件并退出。
:wq
- 执行如下命令,进入config目录。
- 执行以下命令,启动SMS-Agent。
./startup.sh
- 请仔细阅读显示内容,然后输入“y”并按键盘上的“Enter”键。
图1 输入y
- 根据提示,输入目的端服务器所在华为云账号的AK、SK,以及SMS域名。SMS域名可在SMS控制台的“迁移Agent”页面获取,如图3所示。
图2 输入AK/SK
如果您的账号已经开通企业项目,输入AK/SK后,Agent会查询有主机迁移权限的企业项目并罗列,供您选择。选择具体的企业项目后,主机迁移服务会将主机迁移到您指定的企业项目中。实现迁移时权限、资源和财务的隔离。更多详细介绍和操作步骤请参见将主机迁移至企业项目最佳实践。
当出现如下界面时,表示Linux版的SMS-Agent启动成功,开始给主机迁移服务上传源端服务器信息。您可以前往SMS控制台的迁移服务器列表页面查看上报的源端服务器。图4 Agent启动成功
步骤二:设置迁移目的端
需要同时满足以下条件,才可以在SMS控制台的服务器列表中对源端服务器进行目的端设置:
- 源端服务器状态为“连接正常”。
- 迁移阶段为“可迁移性检查”。
- 实时状态为“待设置目的端”。
- 登录主机迁移服务管理控制台。
- 在左侧导航树中,单击“迁移服务器”,进入迁移服务器列表页面。
- 在迁移服务器列表中找到源端待迁移的服务器,单击“迁移阶段/实时状态”列的“设置目的端”或操作列的“更多 > 设置目的端”,进入迁移配置页面。
- 在“迁移配置”页面的“目的端基础配置”区域,根据表1参数说明,设置相关参数。
表1 基础配置参数说明 参数
子参数
说明
目的端区域
-
选择目的端服务器所在区域。
目的端迁移端口
-
Linux系统默认开放22端口和8900端口。
说明:开放端口的用途如下:
- 22端口:传输链路初始化端口,用于建立传输通道。部分区域支持修改。
- 8900端口:数据传输端口,用于传输数据。不支持修改。
网络类型
公网
默认使用公网迁移,要求目的端服务器配置有“弹性IP”。
私网
私网包括专线、VPN、对等连接、同VPC子网以及CC 云连接等。如果选择私网,则需要提前创建,迁移时会使用目的端私有IP。
有关通过私网进行迁移的网络场景和解决方案,可以参考通过VPN、云专线、云连接打通SMS迁移网络。
IP版本
IPv4
默认使用IPv4进行数据迁移。
IPv6
双栈网络下,可以选择使用IPv6进行主机迁移。使用IPv6进行迁移的准备工作和注意事项参见IPv6迁移最佳实践。
注意:在选择IPv6进行迁移时,目的端仅支持选择已有的服务器,不支持通过SMS服务创建新服务器。
- 配置目的端规格。目的端配置支持以下两种方式:
- 已有服务器:在已有服务器列表中选择预先在华为云创建的服务器作为迁移目的端。
为确保迁移后目的端能够正常启动,已有服务器迁移会将目的端服务器进行格式化,并修改注册表和网络配置等信息。建议在迁移前进行数据备份。
在已有服务器列表中,根据“推荐目的端”的规格,勾选满足要求的服务器作为目的端服务器。如果已有服务器列表中没有满足要求的服务器,可以单击列表上方说明框中的“弹性云服务器ECS”前往ECS控制台,并根据“推荐目的端”的规格购买弹性云服务器,方法请参考购买弹性云服务器。
- 创建新服务器:通过配置目的端主机规格,SMS会根据配置的规格自动购买目的端服务器。
选择创建新服务器,系统会根据源端服务器规格,自动推荐包括服务器名称、可用区、虚拟机规格、磁盘信息、弹性公网IP、虚拟私有云、子网与安全组等参数配置。您也可以单击“修改配置”按钮,手动调整以上参数配置。
- 当虚拟机配置模板选择“自动推荐”时,系统将自动推荐可用区、实例规格、磁盘类型、虚拟私有云、子网和安全组等配置,并在迁移过程中自动创建。您还可以在此基础上进行手动调整。
- 虚拟私有云为系统自动创建时,创建策略如下:
若源端IP是192.168.X.X,则推荐创建的VPC网段是192.168.0.0/16,同时创建一个子网,网段也是192.168.0.0/16。
若源端IP是172.16.X.X,则推荐创建的VPC网段是172.16.0.0/12,同时创建一个子网,网段也是172.16.0.0/12。
若源端IP是10.X.X.X,则推荐创建的VPC网段是10.0.0.0/8,同时创建一个子网,网段也是10.0.0.0/8。
- 安全组为系统自动创建时,创建策略如下:
如果是Windows创建开放8899、8900和22端口的安全组规则。
如果是Linux文件级迁移创建开放22端口的安全组规则。
如果是Linux块级迁移创建开放8900和22端口的安全组规则。
- 虚拟私有云为系统自动创建时,创建策略如下:
- 当虚拟机配置模板选择“自定义模板”时,系统将根据模板自动填充可用区、实例规格、磁盘类型、虚拟私有云、子网和安全组等配置,同时您也可以手动进行调整。有关自定义模板的创建,请参考创建虚拟机配置模板。
- 磁盘高级设置。
- 数据盘支持的磁盘模式包括:VBD类型(默认)、SCSI类型。关于磁盘模式的详细介绍请参见磁盘模式及使用方法。
- 数据盘支持创建“共享盘”,关于共享磁盘的详细介绍请参见共享云硬盘及使用方法。
- 支持将新建服务器的系统盘和数据盘设置为“加密盘”。关于磁盘加密的详细介绍请参见加密云硬盘及使用方法。使用该功能,需要先创建委托授权EVS访问KMS。授权成功后,设置以下参数:
- 从KMS密钥中选择
默认密钥: 成功授权EVS访问KMS,系统会创建默认密钥“evs/default”。
自定义密钥: 即您已有的密钥或者新创建密钥,创建方式请参见创建密钥。
- 输入KMS密钥ID
输入来自其他用户的共享密钥ID,请确保密钥位于目的端区域。共享方式请参见创建密钥授权。
- 迁移过程中禁用、删除等使密钥不可用的操作都会导致迁移失败,请确保迁移过程中密钥处于启用状态。
- 加密磁盘创建完成后不支持修改。
- 当前密钥共享仅支持授权给账号,不支持授权给用户。
- 使用KMS加密模式,超过免费配额会收取相应费用。详情参见密码安全中心计费说明。
- 从KMS密钥中选择
- 当虚拟机配置模板选择“自动推荐”时,系统将自动推荐可用区、实例规格、磁盘类型、虚拟私有云、子网和安全组等配置,并在迁移过程中自动创建。您还可以在此基础上进行手动调整。
目的端服务器的要求请参见目的端服务器要求。
- 已有服务器:在已有服务器列表中选择预先在华为云创建的服务器作为迁移目的端。
- 配置资源限制(可选)。
在“资源限制”区域,根据表2,设置相关参数。
表2 资源限制参数配置说明 参数
说明
CPU限制
仅Linux系统迁移支持该配置,详细介绍请参见Linux迁移,设置Cgroup资源限制。
内存限制
磁盘吞吐限制
网络限流
根据要迁移的源端带宽大小及业务要求,设置限制带宽大小。设置为0时,代表不限流。
以下场景下网络限流不可用:
- 使用了IPv6迁移。
- 源端缺少TC模块。
超速阈值(%)
用于控制网络流量,防止网络传输速率超出设定的限制。当网络数据传输速率连续多次超过设置的超速阈值时,迁移任务会自动暂停。
例如:网络限流设置为10 Mbps,超速阈值设置为10%,则当网络传输速率连续多次超过限流值的110%(即11 Mbps)时,任务会自动暂停。
注意:该功能仅适用于迁移Linux系统主机,且以下场景不可用:
- 使用了IPv6迁移。
- 源端缺少TC模块。
- SMS-Agent版本小于24.9.0。
- 开启迁移演练。
迁移演练功能可以帮助您在正式迁移前,充分了解迁移任务的可行性和潜在风险。包含检测安全组端口配置是否正确、域名连通性是否正常,以及是否具备迁移所需权限等关键要素,并针对性地提供修复建议,从而减少实际迁移中可能出现的问题和损失。
开启此功能后,系统会在全量复制操作执行前,自动为您创建一个迁移演练任务。整个迁移演练过程通常需要5-15分钟。在此期间,按量计费资源将会产生一定的费用。计费项请参见计费说明。迁移演练任务仅为模拟迁移,不会真正传输源端数据,因此产生的费用较低。
迁移演练任务的结果可以在任务详情中查看。具体查看方法,请参考查看迁移演练状态和报告。
- 配置迁移参数。
在“迁移参数”区域,根据表3,设置相关参数。
表3 迁移参数配置说明 参数
子参数
说明
迁移后主机状态
关机
选择关机,迁移完成后目的端服务器自动关机。
开机
选择开机,迁移完成后目的端服务器保持开机状态。
迁移方式
Linux块级
Linux块级迁移是指全量复制和持续同步的最小粒度为磁盘逻辑单位"块"。这种方式同步效率高,但兼容性差。
Linux文件级
Linux文件级迁移是指全量复制和同步最小粒度为文件,这种方式同步效率低,但兼容性好。Linux系统默认使用文件级迁移方式。
多进程设置
自动
SMS-Agent会根据源端资源情况自动设置迁移进程数量。
手动
手动设置“迁移”和“同步”最大进程个数,SMS-Agent根据设置的进程个数,启用多个进程执行迁移任务。
该设置仅适用Linux文件迁移,关于进程个数的计算和设置的详细介绍,请参考如何设置多进程个数。
持续同步
-
关闭时,迁移任务在完成全量复制后,系统会自动启动目的端,无需用户手动启动。启动目的端后,如果需要同步源端增量数据,可以单击任务操作列的“更多 >同步”,将增量数据同步至目的端服务器。
开启时,迁移任务在完成全量复制后,会进入持续同步阶段。在此阶段,系统会定时自动同步源端增量数据到目的端。此时,目的端尚未启动,且无法进行操作。如需退出该阶段,可以在迁移任务的“迁移阶段/实时状态”列,单击“启动目的端”来启动目的端服务器。
数据一致性
-
关闭时,迁移任务在完成全量复制后,不进行数据一致性校验。在执行增量同步操作时,可以重新选择是否进行数据一致性校验。
开启时,迁移任务执行完全量复制后,自动进行数据一致性校验。默认使用快速校验(即比对文件大小和修改时间)。在进行增量同步时,可以再次调整校验策略。该功能暂不支持BTRFS文件系统的主机。数据一致性校验的参数说明如下:
- 启用哈希校验:通过计算和比较文件内容的哈希值进行校验。适合于单文件体积大且文件内容重要的场景,将增加源端CPU负载及源端磁盘IO负载,校验时间也更长。
注意:
- 被运作中的软件占用的文件无法进行哈希校验。
- 勾选该选项后,必须指定校验目录,并且只校验指定目录下的文件内容。
- 数据范围。
- 排除下列目录:填写不需要进行数据校验的目录路径,最多支持填写30个路径,路径之间用英文逗号隔开。例如:/root/data,/var。不填则校验所有目录文件。
- 仅包含下列目录:只对填写的目录文件进行校验。
注意:- 请务必输入正确路径,路径错误或路径下不存在文件时,校验结果中会显示校验文件数量为0。
- 需要校验的数据量越大,则一致性校验的用时越长,建议仅对关键目录进行校验。
- 为避免校验数据量过大,以下路径将被默认排除:
- Linux系统的/bin,/boot,/dev,/home,/etc,/lib,/media,/proc,/sbin,/selinux,/sys,/usr,/var,/run,/tmp目录。
- Windows系统的分区根目录,如:C:\,O:\。
如果默认排除的目录中有需要校验的目录,可以参考修改默认排除的目录进行处理。
调整分区
-
关闭时,目的端服务器的磁盘数量、分区大小与源端服务器保持一致。
开启后,您可以手动调整目的端磁盘数量和分区大小。有关详细信息和操作方法,请参见调整磁盘分区。
专线中转IP配置
-
仅适用于专线迁移场景,用于设置目的端中转IP。该场景下的网络配置方法,可参考源端无法访问公网,源端和目的端不能直接互通。
- 启用哈希校验:通过计算和比较文件内容的哈希值进行校验。适合于单文件体积大且文件内容重要的场景,将增加源端CPU负载及源端磁盘IO负载,校验时间也更长。
- 保存配置并开始迁移。
完成目的端参数配置后,在迁移配置页面右侧的“配置概要”区域确认参数配置。确认配置信息无误后,选择是否立即启动迁移任务以执行迁移:
步骤三:开始服务器全量复制
全量复制会把源端服务器所有数据都复制到目的端,复制速度取决源端服务器出网带宽和目的端服务器入网带宽(两者取较小者)。
开始服务器复制后,禁止重启源端及Agent,否则会导致迁移失败。
- 在迁移服务器列表页面找到待迁移的服务器,单击“迁移阶段/实时状态”或“操作”列的“开始”,右侧弹出“开始”窗口,单击“确定”,开始全量复制。
或勾选待迁移的服务器,单击服务器列表上方的“开始”,右侧弹出“开始”窗口,单击“确定”,开始全量复制。图5 开始全量复制
- 单击源端服务器名称,可以查看迁移进度。
- 如果在设置迁移目的端时,“持续同步”参数配置选择“否”,则全量复制完成后系统会自动启动目的端。当“迁移阶段/实时状态”均为已完成时,代表目的端服务器已启动。
- 如果在设置迁移目的端时,“持续同步”参数配置选择“是”,当全量复制完成后任务会进入“持续同步”状态(即“迁移阶段/实时状态”均为持续同步)。该状态下,系统会自动把源端新增或修改的磁盘数据持续同步到目的端。如果需要停止持续同步并启动目的端,请参考启动目的端进行手动启动。
- 启动目的端后,如果您的源端服务器有增量数据,您还可以使用同步功能,将源端增量数据同步到目的端。
- 在主机迁移并割接完成后,通常还需要您根据业务需要对目的端服务器进行一些额外的配置调整。详细介绍请参考主机迁移完成后还需要手动修改哪些配置项?
步骤四:同步增量数据
启动目的端后,如果源端服务器有增量数据,可以使用同步功能,将源端增量数据同步到目的端。
进行增量数据同步,目的端新增数据会被源端数据覆盖,详细说明参见迁移完成后,目的端主机已启动并有新数据写入,再次进行源端增量数据同步,目的端新增数据会不会被源端数据覆盖?
- 在迁移服务器列表页面找到需要进行同步的服务器,单击列表上方的“同步”按钮,或在操作列单击“更多 > 同步”。
- 在弹出的“同步”窗口,仔细查看同步说明,主机迁移服务提供了校验数据一致性功能,如果您需要启用该功能,请参考如何校验源端与目的端的数据一致性?进行配置。确认同步增量数据后,单击“确定”。

步骤五:清理资源
在主机迁移完成并且不再需要进行数据同步时,您可以选择将迁移过程中产生的割接快照和同步快照进行删除。
清理快照资源后,将无法执行增量数据同步。请在执行清理资源操作前,确保您已不再需要进行增量数据同步。
- 选择任务状态为已完成且不再需要进行增量数据同步的服务器,在“迁移阶段/实时状态”列单击“清理资源”。
图6 清理资源
- 在弹出的“清理资源”窗口,如果您确定要清理资源,请在输入框中输入 “DELETE”或单击“一键输入”后,单击“确定”执行资源清理。
图7 确认清理
调整Linux磁盘分区
调整Linux磁盘分区存在以下约束与限制:
- Linux支持LVM调整,可以选择物理卷和逻辑卷是否迁移以及调整大小。
- Linux Btrfs文件系统暂时不支持磁盘分区调整。
- Linux系统分区,swap分区是否迁移不可选,默认为“是”,必须进行迁移。
- LVM迁移卷组,可通过卷组配置页,左上方的按钮组,选择全部迁移或暂不迁移。
- LVM中的逻辑卷如果是否迁移都选择“否”,则卷组不迁移,对应的物理卷是否迁移也会全部自动切换成“否”。
- Linux块级迁移,磁盘分区只可以调大。
- Linux文件级迁移,磁盘分区可以调大,也可以调小,调小时需保证调小后的分区大小大于已使用空间+1GB。如果调整前分区大小小于已使用空间+1GB,则无法将磁盘分区大小调小。具体规则请参见卷组和磁盘分区大小调整规则。
- 在迁移配置页面的“迁移参数”区域,开启“调整分区”,单击“调整磁盘分区”,弹出“磁盘分区调整”窗口。
- 卷组配置。
- 如源端有LVM逻辑卷组,需要先设置好逻辑卷大小,再调整物理卷大小。
- 如果源端没有LVM逻辑卷,可以跳过。
图8 卷组配置
- 单击“下一步:磁盘调整”按钮,进行磁盘配置。
- 单击“磁盘调整”按钮,根据实际需求调整磁盘大小。调整完成后,可以在窗口底部查看待迁移磁盘总览,如Linux磁盘分区调整所示。
- 如果调整分区大小超过当前磁盘大小时,请先单击“磁盘调整”,调大磁盘大小后再进行分区调整。
- 如果调整分区大小后,小于当前磁盘大小,如有必要,可单击“磁盘调整”,调小磁盘大小。
- 调整完成后,单击“下一步 确认调整”,确认磁盘调整无误后,单击“确定”,完成磁盘分区的调整。
确定后,调整分区功能无法重新设置为“关闭”。如果想要恢复原始磁盘分区设置,请在服务器列表操作列,单击“更多 > 删除”,然后在源端重启Agent,之后重新进行目的端配置。
查看迁移演练状态和报告
在设置目的端时,如果开启了“迁移演练”功能,可以通过以下步骤查看迁移演练状态和报告。
- 在迁移服务器列表,单击源端服务器名称,右侧弹出任务详情窗口。
- 在任务进展页签,选择“任务跟踪”,可以查看迁移演练的实时状态和阶段。

- 在任务详情窗口的上方,单击演练状态后的“查看报告”,在右侧弹出迁移演练报告窗口中可以查看演练详情和检查项结果。

相关文档
如果在迁移过程中遇到报错,可以参考错误码的排查与解决方法进行处理。

