KVM——迁移KVM虚拟机

KVM——迁移KVM虚拟机一 KVM 虚拟机迁移的方式 KVM 平台中的 KVM 虚拟机迁移分为以下两种 1 冷迁移 静态迁移 我们存放虚拟机磁盘的目录都是挂在的一个 nfs 文件系统的磁盘 进行冷迁移时 只要在目标主机上挂载这个 nfs 文件系统 就可以看到要迁移的那个虚拟机的磁盘文件 通常以 qcow2 或 raw 结尾的 然后 只需将虚拟机的 xml 配置文件发送到目标服务器上 然后重新定义一下迁移过来的虚拟机即可 2 热迁移 动态迁移 如果源宿主机和目的宿主机共享存储系统 则只需要通过网络发送客户机的 vCPU 执行状态 内存中的内容

[root@localhost ~]# systemctl stop firewalld [root@localhost ~]# setenforce 0 //实验环境,简单起见关闭防火墙与SElinux [root@localhost ~]# lsmod | grep kvm //确认虚拟机支持kvm环境 kvm_intel  0 kvm  1 kvm_intel irqbypass 13503 1 kvm [root@localhost ~]# virsh list --all //确认虚拟机存在,而且是关机的状态 Id 名称 状态 ---------------------------------------------------- - web01 关闭 

KVM服务器B的操作:

[root@localhost ~]# systemctl stop firewalld [root@localhost ~]# setenforce 0 //实验环境,简单起见关闭防火墙与SElinux [root@localhost ~]# lsmod | grep kvm //确认虚拟机支持kvm环境 kvm_intel  0 kvm  1 kvm_intel irqbypass 13503 1 kvm [root@localhost ~]# virsh list --all //确认没有kvm虚拟机 Id 名称 状态 ---------------------------------------------------- [root@localhost ~]# scp 192.168.1.7:/etc/libvirt/qemu/web01.xml /etc/libvirt/qemu/web01.xml //复制KVM宿主机A的虚拟机配置文件 [root@localhost ~]# scp 192.168.1.7:/kvm/disk/web01.raw /kvm/disk/web01.raw //复制KVM宿主机的虚拟机磁盘文件 [root@localhost ~]# cd /etc/libvirt/qemu/ [root@localhost qemu]# virsh define web01.xml 定义域 web01(从 web01.xml) //根据配置文件生成虚拟机 [root@localhost qemu]# virsh start web01 //开启虚拟机进行测试 域 web01 已开始 [root@localhost qemu]# virsh list --all Id 名称 状态 ---------------------------------------------------- 1 web01 running //可以正常开机表示没有问题,自行进行测试即可! 

静态迁移迁移完成!

[root@nfs ~]# yum -y install nfs-utils rpcbind #安装所需软件包 [root@localhost ~]# systemctl enable nfs #设置NFS开机自启 [root@localhost ~]# systemctl enable rpcbind #设置rpcbind开机自启 [root@nfs ~]# mkdir -p /nfsshare #创建需要共享的目录 [root@nfs ~]# vim /etc/exports #编辑NFS的配置文件,默认为空 /nfsshare *(rw,sync,no_root_squash) #第一列代表共享的目录 #第二列的星号代表允许所有网络访问; #rw代表读写权限;sync代表同步写入磁盘; #no_root_squash表示当前客户机以root身份访问时赋予本地root权限 #(默认是root_squash,将作为nfsnobody用户对待),若不加no_root_squash, #可能会导致被降权,而无法进行读写(wr)。 [root@nfs ~]# systemctl restart rpcbind #启动该服务 [root@nfs ~]# systemctl restart nfs #启动该服务 [root@nfs ~]# netstat -anpt | grep rpc #确认服务已启动 [root@nfs ~]# showmount -e #查看本机共享的目录 Export list for nfs: /nfsshare * [root@nfs ~]# firewall-cmd --add-service=rpc-bind --permanent [root@nfs ~]# firewall-cmd --add-service=nfs --permanent [root@nfs ~]# firewall-cmd --add-service=mountd --permanent [root@nfs ~]# systemctl restart firewalld #重启防火墙,使配置生效 
[root@localhost ~]# yum -y install nfs-utils rpcbind [root@localhost ~]# systemctl enable rpcbind [root@localhost ~]# systemctl start rpcbind [root@kvm ~]# showmount -e 192.168.10.12 #查询nfs服务器共享的目录 Export list for 192.168.10.12: /nfsshare * [root@kvm ~]# mkdir -p /kvm/disk/ [root@kvm ~]# mount -t nfs 192.168.10.12:/nfsshare /kvm/disk/ #进行挂载 [root@kvm ~]# df -hT /kvm/disk/ 文件系统 类型 容量 已用 可用 已用% 挂载点 192.168.10.12:/nfsshare nfs4 50G 33M 50G 1% /kvm/disk #在其中一台服务器上写入一个测试文件,看看在其他服务器上是否可以看到 [root@kvm1 ~]# touch /kvm/disk/test #在其中一个kvm服务器上创建测试文件 [root@kvm2 ~]# ls /kvm/disk #保证在第二台kvm服务器的目录下也可以看到 test 

至此,就保证了两台kvm服务器使用的目录都是同一块磁盘存储的(注意:两台kvm虚拟机的挂载nfs文件系统的目录路径必须一致,我这里两台kvm虚拟机都是挂载到了/kvm/disk/目录下,否则会在后面的操作中发生错误)。

3.测试完要取消挂载,不让下面操作进行不了

[root@kvm2 ~]# umount -t nfs 192.168.10.12:/nfsshare /kvm/disk/ 

4、在两个kvm服务器上分别创建存储卷:

[root@kvm1 ~]# virt-manager #打开虚拟机控制台 

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
下面对话框中,目标路径是KVM本机的“/kvm/disk”,主机名写的是nfs服务器的IP地址,源路径是nfs服务器共享的目录。
在这里插入图片描述








在这里插入图片描述
以上操作同样需要在第二台KVM上进行操作,最好定义的存储池名字等都一致。以免发生不必要的麻烦。

[root@kvm ~]# systemctl stop NetworkManager #停止此服务 [root@kvm ~]# virsh iface-bridge ens33 br0 #执行此命令时,若提示以下信息,不用在意,因为其已经存在了 使用附加设备 br0 生成桥接 ens33 失败 已启动桥接接口 br0 [root@kvm ~]# ls /etc/sysconfig/network-scripts/ | grep br0 ifcfg-br0 #确定有此文件就行 [root@kvm ~]# virsh destroy centos7.0 #关闭新建的虚拟机 域 centos7.0 被删除 [root@kvm ~]# virsh edit centos7.0 #编辑虚拟机的配置文件,定位到interface 
  
    'bridge'> #将此处改为bridge 
   
     '52:54:00:a9:cc:5f'/> #删除Mac地址这行 
    'br0'/> #将此处更改为这样 #保存退出即可 [root@kvm1 ~]# virsh start centos7.0 域 centos7.0 已开始  
    
  
[root@kvm ~]# systemctl stop NetworkManager #停止此服务 [root@kvm ~]# virsh iface-bridge ens33 br0 #执行此命令时,若提示以下信息,不用在意,因为其已经存在了 使用附加设备 br0 生成桥接 ens33 失败 已启动桥接接口 br0 [root@kvm ~]# ls /etc/sysconfig/network-scripts/ | grep br0 ifcfg-br0 #确定有此文件就行 #由于kvm2没有虚拟机,所以只需将网络更改为桥接模式即可,。 #以上配置是为了防止虚拟机迁移到这台服务器后,无法和公网进行联系。 
[root@kvm1 ~]# virt-manager #打开虚拟机控制台 

在这里插入图片描述
在这里插入图片描述

填写如下,填写完成后,单击“连接”:

在这里插入图片描述

[root@kvm1 ~]# yum -y install openssh-askpass //安装询问密码的依赖包,注意两台KVM服务器都需安装 

安装完成之后,在KVM服务器A上再次进行连接:

在这里插入图片描述
根据弹出的对话框提示,输入“yes”:
在这里插入图片描述




输入目标主机的root密码:

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

查看KVM虚拟机的访问是否存在终端现象,上面一直在ping baidu.com,发现访问并没有中断,至此,动态迁移成功

在这里插入图片描述
当然也可以吧kvm2上的centos7.0在迁移回去,按照上面操作就行

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/209439.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月19日 上午9:14
下一篇 2026年3月19日 上午9:14


相关推荐

  • redhat配置yum源服务器_redhat7网络yum源配置

    redhat配置yum源服务器_redhat7网络yum源配置配置yum源redhat默认自带的yum源需要注册才能更新,可以更换成Centos的yum源.文章目录配置yum源前言一、yum源的工作原理?二、yum配置步骤1.查看系统已经安装的yum2.删除自带的yum包3.下载相关的安装包4.安装包5.下载配置文件6.更新前言Yum(全称为YellowdogUpdater,Modified)是一个在Fedora和RedHat以及CentOS中的Shell前端软件包管理器。基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动

    2022年8月12日
    5
  • 微信公众平台二次开发JAVA

    微信公众平台二次开发JAVA写这篇文章其实也是为了给期末的作业增添一项亮点 正好想了一下就把期末的作业总结一下吧 首先介绍一下 期末的作业是做微信平台的二次开发 老师手底下正好有三位大神 可以分别在 python java php 方面帮到我们 相对来说 java 语言是我最熟悉的 所以一开始就选择了 java 看着确实很顺眼 但是做到后期发现了一些问题 于是开始改 python python 我也是比较喜欢的 第二篇文章会介绍 Py

    2026年3月17日
    2
  • python机器学习手写算法系列——线性回归「建议收藏」

    python机器学习手写算法系列——线性回归「建议收藏」本文致力于手把手教你实现一个最简单的机器学习模型–一元线性回归模型。短短的14行代码,就实现了。希望读完以后,你也能自己实现它。并对线性回归有更好的了解,或者从不了解到了解。

    2022年8月21日
    9
  • 大数据可视化的方法、挑战及进展[通俗易懂]

    大数据可视化的方法、挑战及进展[通俗易懂]大数据可视化的方法、挑战及进展摘要:在简化数据量和降低大数据应用的复杂性中,大数据分析发挥着关键的作用。可视化是其中一个重要的途径,它能够帮助大数据获得完整的数据视图并挖掘数据的价值。大数据分析和可视化应该无缝连接,这样才能在大数据应用中发挥最大的功效。这篇文章将介绍一些常规的数据可视化方法以及在大数据应用领域突破常规的可视化手段,也会讨论大数据可视化带来的挑战,同时介绍大数据可视化领域新的方

    2022年5月4日
    63
  • python 提示 keyError 的4种解决方法

    python 提示 keyError 的4种解决方法https blog csdn net u0 article details 在读取 dict 的 key 和 value 时 如果 key 不存在 就会触发 KeyError 错误 如 Python t a 1 b 2 c 3 print t d 就会出现

    2026年3月18日
    1
  • 百度文心一言API调用全攻略:批量改写文章助力自媒体与网站优化

    百度文心一言API调用全攻略:批量改写文章助力自媒体与网站优化

    2026年3月12日
    1

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号