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
相关推荐
xuefeiniao1 小时前
PHP2Shell漏洞修复
运维·服务器·php
便利店10242 小时前
系统活动一抓留存!深入 Linux C/C++ 调试工具之 sysdig
linux·运维·服务器·sysdig
智能运维指南3 小时前
企业 IT 运维自动化平台怎么选?从场景匹配到 POC 验证的完整评估框架
运维·自动化·自动化运维·嘉为蓝鲸
toooooop84 小时前
CentOS 7 内核 3.10.0-1160.119.1 升级指南
linux·运维·centos
云飞云共享云桌面4 小时前
广东东莞制造工厂10人共享一台三维设计服务器
运维·服务器·3d·自动化·制造
kkkkkkkkkk_Z4 小时前
新手自学嵌入式 | 学习日记:Linux驱动复习之系统移植(U-Boot篇)
linux·运维·学习
hz567895 小时前
企业视频会议系统方案:总部与分支机构高效协同如何落地?
运维·服务器·网络·安全·实时音视频·信息与通信
sun153690275725 小时前
露天矿边坡滑坡怎么预警?QY-19GNSS 自动化地表位移监测系统介绍
运维·安全·自动化
云计算练习生6 小时前
什么是文件权限?Linux 中 rwx 与数字权限的对应关系
linux·运维·服务器·操作系统·文件权限管理