KVM虚拟化热迁移

动态迁移

NFS 服务端:192.168.80.110

共享目录:服务端 /home/virt,两台宿主机本地挂载 /virt

宿主机:host1、host2

热迁移的前提

查看 CPU 特性(关键!对比两台 CPU 是否一致,迁移前提)

bash 复制代码
[root@node1 ~]# grep -E '^flags|^Features' /proc/cpuinfo | uniq

一、所有节点:修改主机名 + 配置 hosts 解析

1. node1 操作

bash 复制代码
# 修改主机名
hostnamectl set-hostname node1

# 写入hosts
cat > /etc/hosts <<EOF
192.168.80.21   node1
192.168.80.88   node2
EOF

2. node2 操作

bash 复制代码
# 修改主机名
hostnamectl set-hostname node2

# 写入hosts
cat > /etc/hosts <<EOF
192.168.80.21   node1
192.168.80.88   node2
EOF

3. 测试互通(两台都测)

bash 复制代码
ping node1
ping node2

二、操作 1:NFS 服务端配置

1.安装 NFS 服务

bash 复制代码
yum install -y nfs-utils rpcbind

2.创建共享目录

bash 复制代码
mkdir -p /home/virt
chmod 777 /home/virt

3.编辑 NFS 配置文件

bash 复制代码
vi /etc/exports

4.写入共享规则(严格要求:rw,sync,no_root_squash)

bash 复制代码
/home/virt  *(rw,sync,no_root_squash)

保存退出:按 ESC → 输入 :wq 回车

5.启动并开机自启

bash 复制代码
systemctl start rpcbind
systemctl start nfs
systemctl enable rpcbind
systemctl enable nfs

6.生效共享 & 验证

bash 复制代码
exportfs -rv
showmount -e

✅ 看到 /home/virt 共享完成。

三、Host1、Host2 安装 NFS 客户端 + 挂载共享

两台机器 Host1、Host2 全部执行

1.安装 NFS 客户端

bash 复制代码
yum install -y nfs-utils

2.本地统一创建挂载目录

bash 复制代码
mkdir -p /virt

3. 挂载 NFS 共享(题目指定命令)

bash 复制代码
mount -t nfs 192.168.80.110:/home/virt /virt

4.检查挂载是否成功

bash 复制代码
df -h

要求:两台主机本地挂载路径必须都是 /virt,完全一致。

5.配置hostname

bash 复制代码
[root@node2 virt]# cat /etc/hosts
192.168.80.21   node1
192.168.80.88  node2

四、关闭防火墙和开启服务

1. 启动 libvirt

bash 复制代码
systemctl enable --now libvirtd

2. # 关闭防火墙、selinux

bash 复制代码
systemctl stop firewalld
setenforce 0

五、创建虚拟机

1.查看系统支持哪些 OS(创建虚拟机用)

bash 复制代码
osinfo-query os

2.node1 上 创建虚拟机

bash 复制代码
virt-install   --name yuhua  --ram 2048   --vcpus=4   --cdrom=/home/*-DVD.iso   --disk path=/home/yuhua.qcow2,size=20,format=qcow2   --network bridge=virbr0   --os-variant generic

3.把虚拟机磁盘 移动到 NFS 共享目录 /virt

bash 复制代码
# 先关机
virsh shutdown yuhua

# 移动磁盘文件到共享存储
mv /home/yuhua.qcow2 /virt/

4.修改虚拟机配置文件,更新磁盘路径

bash 复制代码
virsh edit yuhua

找到这一行:

修改成:

bash 复制代码
<source file='/virt/yuhua.qcow2'/>

5.启动虚拟机 + 运行计数脚本

bash 复制代码
#启动虚拟机
virsh start yuhua
#进入虚拟机
virsh console yuhua
#创建count.sh运行计数脚本
#!/bin/bash
i=1
while true;do echo $i;i=$((i+1));sleep 1;done
#运行计数脚本
chmod +x count.sh
./count.sh

六、热迁移

node1 → node2

bash 复制代码
virsh migrate --live --persistent --undefinesource --unsafe --verbose yuhua qemu+ssh://node2/system

node2 → node1

bash 复制代码
 virsh migrate --live --persistent --undefinesource --unsafe --verbose yuhua qemu+ssh://node1/system
相关推荐
用户0328472220703 小时前
如何搭建本地yum源(上)
运维
大树883 天前
金刚石散热越强,管路越先见顶
大数据·运维·服务器·人工智能·ai
摇滚侠3 天前
Linux CentOS7 rpm 安装 MySQL 5.7
linux·运维·mysql
霸道流氓气质3 天前
领域驱动设计(DDD)在 Spring Boot 微服务中的实践指南
运维·spring boot·微服务
Inhand陈工3 天前
基于台达PLC与映翰通IG502的智慧水产养殖精准投喂与远程运维解决方案
运维·人工智能·物联网·阿里云·信息与通信
酣大智3 天前
ARP代理--工作原理
运维·网络·arp·arp代理
shushangyun_3 天前
2026年快消品B2B系统推荐:支持终端门店订货、促销政策自动化的工具?
java·运维·网络·数据库·人工智能·spring·自动化
施努卡机器视觉3 天前
SNK施努卡侧滑门锁上滑轮总成自动化装配线,从零件到组件,全流程精密制造方案
运维·自动化·制造
AC赳赳老秦3 天前
用 OpenClaw 搭建服务器故障应急响应系统,自动处理 80% 常见运维故障
android·运维·服务器·python·rxjava·deepseek·openclaw
java_cj3 天前
深入kube-apiserver认证机制:从Bearer Token到mTLS的完整认证链解析
linux·运维·服务器·云原生·容器·kubernetes