首页/云/云平台与虚拟化速查/热迁移与冷迁移概念
虚拟化基础63 条

热迁移与冷迁移概念

热迁移在业务运行中搬运虚机:内存多轮预拷贝后短停切换,KVM 侧由 virsh migrate 驱动,支持共享存储迁移与全量块迁移;冷迁移则关机后搬运配置与磁盘。

云平台与虚拟化速查云更新于 2026-10-13

热迁移与冷迁移是什么

热迁移在虚机运行状态下把内存与设备状态搬到另一台宿主。KVM 以预拷贝(pre-copy)为主:先整体传输内存,再反复重传被修改的脏页,等剩余量足够小后短暂暂停完成切换;另有 post-copy 等策略,代价是失败时恢复更麻烦。停机时间与脏页速率、迁移带宽强相关。冷迁移是关机后搬运配置与磁盘,简单可控但停机时间长。

基本信息

KVM 实现预拷贝(pre-copy)为主,另有 post-copy
前提两端 libvirt 版本兼容、存储与网络规划清楚、CPU 特性匹配
停机时间与脏页速率和迁移带宽强相关
存储处理共享存储只传内存;无共享存储需复制磁盘
冷迁移关机后拷贝配置与磁盘:可控但停机时间长

典型使用场景

  • 宿主维护或升级前把运行中的虚机迁走
  • 手工均衡节点负载,避免热点宿主
  • 机房搬迁时用冷迁移做批量搬运
  • 容灾切换演练中验证迁移流程与回退路径
  • 存储维护时只迁移计算资源,磁盘留在原地

观察迁移进度与执行迁移

观察迁移进度与执行迁移
virsh domjobinfo vm1                              # 迁移过程中查看进度与剩余数据量
virsh migrate --live --verbose vm1 qemu+ssh://node2/system
virsh domblklist vm1                              # 核对迁移后磁盘映射
virsh list --all | grep vm1                       # 确认源端与目标端状态
# 冷迁移:关机后搬运定义与磁盘,再在目标端 define 并启动
virsh shutdown vm1

热迁移与冷迁移对比

维度热迁移冷迁移
业务中断通常为秒级从分钟到小时,取决于数据量与链路
前提条件CPU 兼容、网络互通、存储方案明确仅需能搬运定义与磁盘文件
主要影响因素脏页速率与迁移带宽磁盘容量与传输速度
失败处理源端仍可回退,虚机不会同时运行重新开机即可,风险较低
适用场景在线维护与负载均衡可停机业务、大容量数据搬运
预拷贝能否收敛取决于业务写入强度:写密集的大内存虚机可能长时间停在最后阶段,必要时限流业务写入或改用带停机时间目标的方式。
迁移前确认目标端的 CPU 特性、存储路径与网络名称:三者之一不匹配都会让迁移失败或迁移后虚机起不来,先做一次小规格虚机的试迁更稳妥。

易错点

  • 源与目标宿主 CPU 差异大且未统一基线,迁移被拒绝或需强制绕过检查
  • 迁移网络与业务流量挤占同一链路,切换窗口内业务抖动
  • 写密集虚机迁移长期不收敛,迟迟无法完成切换
  • 迁移后未核对设备映射,虚机网络或磁盘指向错误

数据来源与参考

  • libvirt 文档:Migration
  • QEMU 文档:Live migration
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌