动态迁移
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