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
相关推荐
滕州市燕猫虎计算机科技工作室个体工商户2 分钟前
Docker常用命令
运维·docker·容器
海宇数据4 分钟前
零信任架构实战:基于海宇单人婚姻状态查询构建自动化KYC审核网关
运维·人工智能·架构·自动化
Lydia 不加班10 分钟前
Windows 服务器 人大金仓 54321 端口放行完整步骤
运维·服务器·windows
wdfk_prog1 小时前
lely-canopen-rtt:为什么推荐在 RT-Thread 上使用 Lely CANopen 构建主站
java·运维·缓存·docker·容器
元岳数字人小元1 小时前
数字人交互的用户体验设计与场景交互感受
运维·人工智能·开源·人机交互·交互
一技安身1 小时前
【信创】外网打包ragflow镜像并导入内网银河麒麟V10arm64服务器
运维·服务器
T01156181 小时前
全栈项目实战手记|艺培场馆课时预约小程序全项目开发历程完整复盘总结
运维·服务器·小程序
程序员-Benothing2 小时前
Linux 用户与用户组管理:useradd usermod groupadd 实战
linux·运维·服务器
33三 三like2 小时前
安装并启动Docker
运维·docker·容器
滕州市燕猫虎计算机科技工作室个体工商户2 小时前
进入Docker容器内的命令行界面
运维·docker·容器