Linux怎么在两台物理宿主机之间配置KVM虚拟机在线热迁移LiveMigration

星强大大_1411

星强大大_1411

2026-10-16

730人浏览

原创

共享存储必须提前挂载且路径完全一致,热迁移仅同步内存状态而非复制磁盘文件;nfs是最常用选择,但两台宿主机的挂载点必须均为/var/lib/libvirt/images,且需配置--live和--unsafe参数、同名网桥、兼容cpu模型。

linux怎么在两台物理宿主机之间配置kvm虚拟机在线热迁移livemigration

共享存储必须提前挂载且路径完全一致

热迁移不是复制磁盘文件,而是同步内存状态,所以虚拟机磁盘镜像必须对两台宿主机“同时可见”。NFS 是最常用也最稳妥的选择,但容易踩的坑是:/var/lib/libvirt/images 这个默认路径在两边宿主机上必须是同一个 NFS 挂载点,不能一边挂到 /mnt/nfs、另一边挂到 /data/vms —— 否则 virsh migrate 会报 cannot access storage file 错误。

实操建议:

  • 在 NFS 服务端(比如 192.168.31.194)导出目录时用 /var/lib/libvirt/images *(rw,sync,no_root_squash),避免权限问题
  • 两台宿主机都执行:mount -t nfs 192.168.31.194:/var/lib/libvirt/images /var/lib/libvirt/images,并写入 /etc/fstab
  • 验证:两边都运行 ls -l /var/lib/libvirt/images/myvm1.qcow2,确保属主是 root:root 且可读写

virsh migrate 命令必须带 --live 和 --unsafe 参数

virsh migrate 默认是冷迁移;漏掉 --live 就会停机,失去“在线”意义。而 --unsafe 不是可选项——当目标主机没有同名定义、或磁盘路径未被 libvirt 自动识别时,不加它会直接报错 operation failed: domain 'myvm1' already exists on destination host 或 unable to get disk source path。

典型命令格式:

virsh migrate --live --unsafe myvm1 qemu+ssh://192.168.31.203/system

注意点:

Zynq Linux Hardware Debug
Zynq Linux Hardware Debug

Zynq‑7000 / Zynq UltraScale+ 硬件调试技能。适用于 Xilinx Zynq(Cortex‑A9/A53 + FPGA)Linux 环境,调试 I2C、I2S、UART、GPIO 等外设。包括设备树配置、内核驱动、用户空间调试工具、交叉编译和常见问题排查,支持 PetaLinux 开发。

下载
  • qemu+ssh:// 表示走 SSH 传输控制指令,不是传磁盘数据(磁盘已在共享存储上)
  • 目标主机必须已安装 libvirt-daemon-system 并启动 libvirtd 服务
  • 源宿主机需配置到目标主机的 SSH 免密登录,且双方 /etc/hosts 中必须有对方的 FQDN 解析(例如 kvm02.example.com),否则报 Failed to connect to remote libvirt URI

网络桥接设备名和 MAC 地址必须保持一致

迁移后虚拟机网卡如果无法获取 IP 或直接断网,大概率是桥接配置不匹配。KVM 默认使用 virbr0,但它只是 NAT 模式,不适用于跨宿主机通信。你得手动创建一个同名的 Linux 网桥(如 br0),并在两台宿主机上绑定同一张物理网卡(如 ens33),且确保 STP 关闭、forward_delay 设为 0。

关键验证步骤:

  • 两边都运行:ip link show br0 和 brctl show br0,确认状态为 UP 且含物理网卡
  • 虚拟机 XML 中的 <interface type="bridge"></interface> 必须指定 <source bridge="br0"></source>,不能用 network='default'
  • 虚拟机内部的网卡 MAC 地址不能变,否则 DHCP 可能分配新 IP;可在 virsh edit myvm1 中固定 <mac address="52:54:00:12:34:56"></mac>

CPU 模型必须兼容,否则迁移中途失败

KVM 热迁移要求源和目标宿主机 CPU 基本指令集一致。如果一边是 Intel Xeon、一边是 AMD EPYC,即使都开了 SVM/VT-x,virsh migrate 也会在“最终切换”阶段卡住,日志里出现 failed to start domain on destination: internal error: unable to execute QEMU command 'cont': Device 'cpu' is not available。

解决方法只有两个:

  • 在虚拟机 XML 中显式指定兼容 CPU 模型:<cpu mode="host-passthrough" fallback="allow"></cpu> 改为 <cpu mode="host-model" check="partial"></cpu>,让 libvirt 自动降级到双方共有的 feature 集
  • 更稳妥的是统一用 qemu64 模型:<cpu mode="custom" match="exact"><model fallback="forbid">qemu64</model></cpu>,牺牲少量性能换取稳定性
  • 迁移前务必在两边运行 kvm-ok 和 lscpu | grep -E "(Model|Flags)" 对比基础信息

真正麻烦的从来不是命令敲几遍,而是共享存储挂载点路径、网桥名、CPU 模型这三处细微不一致——它们不会在迁移开始时报错,而是在“快成功时”突然中断,且错误日志分散在 /var/log/libvirt/qemu/myvm1.log 和 journalctl -u libvirtd 里,需要交叉比对才能定位。

相关专题

更多
磁盘配额是什么
磁盘配额是什么

磁盘配额是计算机中指定磁盘的储存限制,就是管理员可以为用户所能使用的磁盘空间进行配额限制,每一用户只能使用最大配额范围内的磁盘空间。php中文网为大家提供各种磁盘配额相关的内容,教程,供大家免费下载安装。

2023.06.21

4030

4

如何安装LINUX
如何安装LINUX

本站专题提供如何安装LINUX的相关教程文章,还有相关的下载、课程,大家可以免费体验。

2023.06.29

3433

10

linux find
linux find

find是linux命令,它将档案系统内符合 expression 的档案列出来。可以指要档案的名称、类别、时间、大小、权限等不同资讯的组合,只有完全相符的才会被列出来。find根据下列规则判断 path 和 expression,在命令列上第一个 - ( ) , ! 之前的部分为 path,之后的是 expression。还有指DOS 命令 find,Excel 函数 find等。本站专题提供linux find相关教程文章,还有相关

2023.06.30

2613

5

linux修改文件名
linux修改文件名

本专题为大家提供linux修改文件名相关的文章,这些文章可以帮助用户快速轻松地完成文件名的修改工作,大家可以免费体验。

2023.07.05

6370

7

linux系统安装教程
linux系统安装教程

linux系统是一种可以免费使用,自由传播,多用户、多任务、多线程、多CPU的操作系统。本专题提供linux系统安装教程相关的文章,大家可以免费体验。

2023.07.06

6022

7

linux查看文件夹大小
linux查看文件夹大小

Linux是一种自由和开放源码的类Unix操作系统,存在着许多不同的Linux版本,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计算机。linux怎么查看文件夹大小呢?php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

2023.07.20

3513

8

linux查看ip命令
linux查看ip命令

本专题为大家提供linux查看ip命令相关文章内容,感兴趣的朋友可以免费下载体验试试。

2023.07.20

3005

4

linux查看cpu使用率
linux查看cpu使用率

在linux的系统维护中,可能需要经常查看cpu使用率,分析系统整体的运行情况。本专题为大家带来了linux查看cpu使用率的相关文章,感兴趣的朋友千万不要错过了。

2023.07.25

3239

6

linux查找文件命令
linux查找文件命令

Linux是一种自由和开放源码的类Unix操作系统,存在着许多不同的Linux版本,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计算机。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

2023.07.31

297

3

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Python uv官方安装与入门文档
Python uv官方安装与入门文档

共0课时 | 0人学习

Buffalo框架快速入门指南
Buffalo框架快速入门指南

共0课时 | 0人学习

Valgrind支持平台说明
Valgrind支持平台说明

共0课时 | 0人学习