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
相关推荐
日取其半万世不竭1 小时前
云服务器迁移怎么少停机?DNS 切换前后的完整清单
运维·服务器
FREEDOM_X2 小时前
Linux 多线程编程——总结
java·linux·运维·ubuntu
名字还没想好☜2 小时前
Docker 多阶段构建:把镜像从 1.2GB 砍到 15MB
运维·docker·容器·多阶段构建·镜像优化
祸心依旧2 小时前
Visual Studio 五月更新 —— 计划、评审、优化
运维·人工智能·visual studio
Web4Browser2 小时前
Headless 浏览器自动化适合哪些任务?巡检、截图和提交动作要分级
运维·前端·自动化
難釋懷2 小时前
Nginx浏览器强制缓存
运维·nginx·缓存
大博士.J2 小时前
视频号主体违规与认证上限?正确的解决方式
运维·python·自动化
山东点狮信息科技有限公司3 小时前
企业级应用双模式部署架构设计:从单体到微服务的平滑演进
运维·微服务·架构
hey you~3 小时前
400电话选型技术测评:一个开发视角的线路质量评估方案
运维·网络·数据库·400电话·企业通信
筱羽_筱羽3 小时前
跟着“Ubuntu18.04/20.04编译Linux5.10.76+Xenomai-3.2.1+IgH”教程遇到的问题
linux·运维·ubuntu