云计算百科
云计算领域专业知识百科平台

服务器迁移怎么做?整机搬家的完整流程与三个必踩的坑

服务器迁移怎么做?整机搬家的完整流程与三个必踩的坑

换云、换机房、把老物理机搬上云——服务器迁移这件事听起来就是"把数据拷过去",真做起来才发现,麻烦的从来不是拷贝,是拷完之后那一堆"为什么起不来"。

我把整机迁移的完整过程跑了一遍,包括几个只有踩过才知道的细节。

先分清楚一件事:你要迁的到底是"数据",还是"整台机器"。这两件事的做法完全不同,混着做会浪费大量时间。


一、两条路:文件级迁移 vs 整机迁移(服务器迁移方案)

文件级迁移整机迁移
迁什么 应用代码、数据库、配置文件 操作系统 + 应用 + 数据 + 环境,整个系统盘和数据盘
怎么做 rsync / scp / 对象存储中转 用迁移工具做块级或文件级复制
适用场景 应用能重新部署、有部署文档 环境复杂、没人说得清上面装了什么
停机窗口 可做到很短 取决于数据量
风险 漏配环境 迁完起不来(驱动、授权、IP)

判断标准很简单:如果能在一台新机器上从零把服务重新跑起来,就走文件级;如果说不清这台机器上到底装过什么、改过什么配置,老老实实走整机迁移。

后者就是本文要讲的。

二、服务器迁移用多久?先算时间,再排窗口

排停机窗口之前,先把传输时间算出来,别拍脑袋。

迁移工具给出的估算逻辑是:

剩余同步时间 = (总数据量 – 已传输数据量) / 传输速度

这里有个容易看错的地方:控制台显示的速度是压缩前的数据量速度。如果你在创建任务时设了压缩率,显示速度会高于实际的网线传输速度——所以别拿显示速度去反推带宽够不够。

影响时间的主要是三个变量:

  • 数据量:这是大头,先看源机实际用了多少(不是磁盘标称容量)
  • 带宽:源服务器出网带宽通常是瓶颈
  • 压缩率:CPU 换带宽,源机 CPU 有余量时可以开高一点

我的建议是:先做一次演练,拿到真实速度再定窗口。迁移工具一般都带演练功能,演练会提前暴露驱动、分区、权限这些真问题,比事后救火便宜太多。

如果演练出来速度实在不够,临时提一下源机和目标机的固定带宽是最直接的办法。

三、服务器整机迁移的完整流程

以阿里云的服务器迁移中心(SMC)为例,整机迁移一共四步。工具本身免费,但迁移过程中会用到少量中转资源,这部分是按量计费的。

👉 服务器迁移中心 SMC | SMC 控制台 | SMC 官方文档

第一步:准备账号与源机环境

1、准备一个专用的 RAM 子账号,只给它迁移需要的权限,别用主账号的 AccessKey。这是最容易被忽略、也最不该省的一步。

2、在源机上检查两样东西:

  • rsync 在不在。多数主流系统是预装的,没有的话客户端会提示你装。
  • SELinux 是不是开着。开着的话客户端会提示禁用。

3、确认源机磁盘实际使用量,目标机的系统盘必须大于这个数——不是大于磁盘容量,是大于实际数据量。

第二步:导入迁移源

在源服务器上下载并运行迁移客户端:

wget https://p2v-tools.oss-cn-hangzhou.aliyuncs.com/smc/Alibaba_Cloud_Migration_Tool.zip
unzip Alibaba_Cloud_Migration_Tool.zip

解压出来会有多个平台的包,按 uname -a 的结果挑对应的那个(Linux x86_64 通常选 go2aliyun_client*_linux_x86_64):

unzip go2aliyun_client2.x.x_linux_x86_64.zip
cd go2aliyun_client2.x.x_linux_x86_64
chmod +x go2aliyun_client
./go2aliyun_client

运行后按提示输入凭证。这里有两种方式:

  • 激活码(推荐):在控制台生成,一次性、可设有效期,用完即弃
  • AccessKey:长期凭证,泄露风险高

导入成功的回显长这样:

Import Source Server [s-bp1xxxxxxxxxxx] Successfully!

看到这行,控制台的迁移源列表里才会出现这台机器,且状态为在线——不在线是没法建迁移任务的。

第三步:控制台创建迁移任务

1、在迁移源列表里找到刚导入的机器,点「创建迁移任务」。

2、目标类型有三个选项,选错会很麻烦:

目标类型产出适合
云服务器镜像 生成一个自定义镜像 最灵活,推荐。之后可用镜像开多台机器
云服务器实例 直接迁到已买的 ECS 源机和目标机的磁盘数量、大小要能对上
轻量应用服务器 直接迁到轻量 目标机就是台轻量的情况

3、几个值得调的参数:

  • 迁移演练:开。演练会提前把驱动、分区、权限的问题报出来
  • 压缩率:源机 CPU 有余量就开高,用 CPU 换时间
  • 传输限速:迁移不能把业务带宽吃干净,限一下
  • Checksum 验证:开着,牺牲一点时间换数据完整性

4、一个容易出错的选项:块复制。

  • 开着:传输速率稳、分区结构一致,但不能调整目标分区大小
  • 关掉:可以调整目标分区大小

Linux 上想缩盘,就必须关掉它。另外如果源机的快照驱动没装成功,也得关掉块复制,否则任务会失败。

第四步:验证

任务状态变成「已完成」之后,别急着切流量。

  • 目标类型是镜像 → 用镜像开一台新实例,登上去看服务起不起来
  • 平台一般也提供自动验证,会用编排模板自动开一台实例验证能不能正常启动

验证这一步省不得。我见过迁完状态显示成功、结果登上去服务起不来的情况。

四、三个必踩的坑

坑一:迁移途中把客户端关了

这是最高频的翻车方式,没有之一。

客户端一旦关闭,迁移源就和控制台断开了,迁移任务直接失败。所以:

  • 别在 SSH 里前台跑完就关终端,用 screen / tmux 挂着
  • 别在迁移过程中重启源机
  • 客户端日志一般在安装目录的 Logs 下(默认安装目录通常是 /root/smc/),出问题先看这里

坑二:迁完之后 IP 变了

这个坑不复杂,但一定会被忘。

迁移后新机器的公网 IP 是新的,所以:

  • 配置文件里写死的 IP(数据库连接串、内网服务地址、白名单)要改
  • 域名要重新解析到新 IP
  • DNS 的 TTL 要提前调小。迁移前一天把 TTL 调到几分钟,切的时候才能快速生效;否则用户那边可能缓存一两天

坑三:迁移出错后,中转资源还在计费

迁移过程中会在目标账号下自动创建一台临时中转实例(按量付费)和一块中转云盘。

  • 迁移成功 → 中转实例会自动释放,不用管
  • 迁移出错 → 中转实例不会自动释放,会一直挂着产生费用

所以任务报错之后,要么修完点「重试」(系统会从上次中断的地方继续),要么确认不用了就去手动清理迁移任务,把中转实例释放掉。这个不处理,几天下来账单会很难看。

五、迁完之后必须检查的几件事

  • 数据完整性:文件数量、数据库记录数对一遍,别只看服务起来了
  • 服务能不能起:尤其是开机自启的服务,迁移后经常丢失
  • 时间与时区:跨地域迁移时容易错,日志时间对不上会误导后续排查
  • 商业软件的授权:部分授权绑定硬件指纹,换机器后会失效,迁移前先确认
  • 监控与备份:新机器别忘记重新挂上

六、什么时候不该做整机迁移

说清楚边界,免得用错力气:

  • 只是迁一个网站 → 重新部署 + 导数据库更快,整机迁移是把整个系统的问题一起搬过来。目标机可以直接用 轻量应用服务器 起一个新的,比搬一台老的干净得多;要是本来就打算上生产环境,那就看 云服务器 ECS
  • 源系统太老(比如已经停止维护的老版本) → 别迁,借这个机会重装,否则老问题一个不少地跟过来
  • 源机上有硬件绑定的授权 → 迁过去大概率失效,先跟授权方确认
  • 你有完整的部署文档和自动化脚本 → 走"新建 + 部署",不要走"复制"。复制出来的是一台没人敢碰的黑盒

顺序总结一下:先演练拿速度 → 算窗口 → 迁 → 验证 → 切流量 → 清理中转资源。

迁移这事的难点从来不是"能不能拷过去",而是拷过去之后还有一堆状态要收拾。把上面三个坑提前处理掉,剩下的基本就是等传输进度条走完。

说明:文中涉及的产品能力、参数选项、计费规则均为发文时信息,具体以产品官网当期文档与控制台显示为准。 说明:文中链接为官方地址,介意者可自行进入官网搜索对应页面。

赞(0)
未经允许不得转载:网硕互联帮助中心 » 服务器迁移怎么做?整机搬家的完整流程与三个必踩的坑
分享到: 更多 (0)

评论 抢沙发

评论前必须登录!