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 小时前
ESXi CPU 使用率高怎么排查?esxtop 一键定位占用高的虚拟机与进程
java·linux·运维·服务器·网络·虚拟化
Fanfanaas1 小时前
Linux 进程篇 (四)
linux·运维·服务器·开发语言·c++·学习
终端行者2 小时前
Jenkins流水线Pipeline声明式语法基础入门----下
运维·jenkins·cicd
文慧的科技江湖2 小时前
光伏管理系统产品需求文档(PRD) -【详细功能需求及研发核心字段清单】
运维·开源·慧知重卡开源充电桩平台·慧知开源充电桩平台·开源充电桩平台·光伏开源管理系统
Jacob程序员2 小时前
Linux 下启动达梦数据库 Manager 图形化客户端
linux·运维·服务器
IMPYLH2 小时前
Linux 的 pwd 命令
linux·运维·服务器·bash
SPC的存折2 小时前
在Alpine 搭建 WordPress
linux·运维·服务器·数据库·php
倔强的小石头_2 小时前
在外需要访问公司内网文件服务器?Serv-U + 内网穿透 把 SFTP 端口穿透到公网
运维·服务器