KVM 主机迁移

 前言

vm1运行了1台kvm 虚机,vm2采用nfs挂载vm1共享的虚机磁盘路径,当我在vm1进行热迁移后,在vm2启动发现磁盘损坏,而当我在vm3创建nfs共享磁盘给vm1,vm2挂载后,创建的虚机,在vm1和vm2之间进行迁移是完全不会发生磁盘问题,同样在冷迁移也是不会发生磁盘问题。
综合以上,建议使用专门的nfs等共享存储服务器供kvm主机挂载。

前提条件:

  1. vm2...vmn主机需要安装kvm虚拟化软件,版本需一致;

  2. 桥接模式需要创建桥接网卡,并将eth0桥接到br0;

  3. 挂载路径必须一致。

冷迁移

缺点:

  • 迁移过程中虚拟机需要关闭,导致业务中断(也可以不关机,但是或导致mac地址冲突,会导致短暂业务中断)。
  • 迁移时间较长,尤其是磁盘文件较大的虚拟机。

拷贝磁盘与虚机xml文件到对应主机

[root@kafka-1 kvm]# scp /etc/libvirt/qemu/qianyi-bridge-vm.xml kafka-2:/etc/libvirt/qemu/qianyi-bridge-vm.xml
[root@kafka-1 kvm]# scp /opt/kvm/vm/qianyi-bridge-vm.qcow2  kafka-2:/opt/kvm/vm/qianyi-bridge-vm.qcow2

定义主机

virsh define /tmp/<vm-name>.xml

启动主机

virsh list --all


virsh start <vm-name>

测试访问

 vm1

 可以看到同一个ip解析出来俩mac地址。

关掉kvm1的虚机,只解析出来一个mac地址

 参数解释

arping VIP -s 源地址为IP   目标ip -c 1 查看结果,是否解析出来两个mac地址

热迁移

 vm3安装nfs

https://www.cnblogs.com/rtnb/p/15584847.html

vm1,2查看挂载

[root@kafka-1 kvm]# df -h
Filesystem               Size  Used Avail Use% Mounted on
devtmpfs                 1.9G     0  1.9G   0% /dev
tmpfs                    2.0G     0  2.0G   0% /dev/shm
tmpfs                    2.0G  9.2M  2.0G   1% /run
tmpfs                    2.0G     0  2.0G   0% /sys/fs/cgroup
/dev/mapper/centos-root   56G  5.7G   50G  11% /
/dev/sda1               1014M  183M  832M  19% /boot
192.168.64.12:/opt/kvm    36G  5.1G   31G  15% /opt/kvm
tmpfs                    392M  8.0K  392M   1% /run/user/0
[root@kafka-2 ~]# df -h
文件系统                 容量  已用  可用 已用% 挂载点
devtmpfs                 1.9G     0  1.9G    0% /dev
tmpfs                    2.0G     0  2.0G    0% /dev/shm
tmpfs                    2.0G  9.2M  2.0G    1% /run
tmpfs                    2.0G     0  2.0G    0% /sys/fs/cgroup
/dev/mapper/centos-root   36G   24G   12G   69% /
/dev/sda1               1014M  183M  832M   19% /boot
192.168.64.12:/opt/kvm    36G  5.1G   31G   15% /opt/kvm
tmpfs                    392M  4.0K  392M    1% /run/user/0

迁移

# 热迁移命令,不断网
virsh migrate --live --verbose domain qemu+ssh://192.168.64.11/system --unsafe
virsh migrate --live --verbose test2-nat-network-2 qemu+ssh://192.168.64.11/system --unsafe  # 迁移
virsh migrate --live --verbose test2-nat-network-2 qemu+ssh://192.168.64.14/system --unsafe  # 回迁

virsh migrate --live --persistent --undefinesource --verbose myvm qemu+ssh://root@192.168.64.11/system  --unsafe

 

参数解释

  --live 在线迁移
  --verbose 启用详细模式,迁移过程中会显示详细的输出信息,了解迁移的进度和状态。
  qemu+ssh://192.168.64.11/system:表示要将虚拟机迁移到192.168.64.11 的主机上,并使用 SSH 连接进行迁移。system 表示目标连接到 libvirt 的系统实例。
  IP 目标IP,必须和对面做主机名host解析。
  --unsafe 此参数允许在未启用共享存储的情况下进行迁移。正常情况下,为确保数据一致性,迁移通常需要源和目标主机之间共享存储。

  --undefinesource  迁移完成在源kvm删除虚机定义,但不删除磁盘文件。

  --persistent  目标主机上使虚拟机定义为持久性,即当目标宿主机重启,依然生效,不指定只是当前生效,当宿主机重启,虚机失效。

  注意: 两边xml文件配置里的磁盘路径需要指向共享存储目录

配置hosts解析

127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4 kafka-1
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.64.14 kafka-1
192.168.64.11 kafka-2
192.168.64.12 kafka-3

 

posted @ 2024-07-29 20:42  不会跳舞的胖子  阅读(1)  评论(0编辑  收藏  举报