暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

kvm-虚拟机迁移(热迁移)

330

作者介绍:简历上没有一个精通的运维工程师。请点击上方的蓝色《运维小路》关注我,下面的思维导图也是预计更新的内容和当前进度(不定时更新)。


虚拟化,简单来说就是把一台服务器/PC电脑,虚拟成多台独立的虚拟机,每台虚拟机之间相互隔离,每个虚拟机都有自己独立的操作系统,磁盘,网络资源。虚拟化是一个很庞大的系统,我的介绍主要是帮助你入门,让你了解基本技术原理,具备搭建操作虚拟化的能力。由于涉及到内容较多,这里的目录就只是以简单分类介绍和说明,不再针对单个小节进行目录列出,主要涉及的分类包括以下几个方面:


1.虚拟化介绍

2.kvm基本使用

3.kvm进阶使用(本小节属于)

4.kvm技术原理

5.vmware介绍&使用

6.小结


上一小节我们介绍了冷迁移和故障迁移,本小节将介绍热迁移。


热迁移


热迁移是指在虚拟机保持运行状态的同时将其从一个宿主服务器迁移到另一个宿主服务器。热迁移要求两个宿主服务器之间有足够的网络带宽来传输虚拟机的内存状态,并且虚拟机的磁盘必须位于共享存储上或者使用其他机制来保证数据的一致性。热迁移的过程大致如下:

  1. 初始化传输:将虚拟机的内存状态从源服务器传送到目标服务器。

  2. 持续同步:在迁移过程中,源服务器继续向目标服务器发送内存页的更新。

  3. 最终切换:当迁移足够多的内存页后,虚拟机在目标服务器上被激活,同时源服务器上的虚拟机被停止。

下面我们将基于共享存储nfs,搭建请看Linux基础软件-nfs,然后2台宿主机分别挂载nfs到本地,然后创建一个虚拟机使用nfs,这样2个节点都可以读取这个镜像文件。

服务IP角色
192.168.31.194
nfs共享存储
192.168.31.202原宿主机
192.168.31.203新宿主机
192.168.31.210虚拟机


准备工作

202和203都必须配置桥接网络,方便210虚拟机在迁移以后可以正常使用,由于kvm虚拟机迁移命令并不会迁移本地数据,所以镜像文件必须是使用共享存储。


并且在虚拟机系统里面运行一个程序,确保该程序不受迁移影响

原宿主机

目标主机

被迁移虚拟机

远程到虚拟机里面执行了一个shell脚本。

迁移

    #为帮忙查看,所以把命令换成多行
    virsh \
    migrate \
    --live \
    myvm1 \
    --unsafe \
    qemu+ssh://kvm31.203.example.com/system

    migrate    迁移参数

    --live        在线迁移

    myvm1     被迁移的主机名字

    --unsafe   使用不安全模式,这个是由于涉及到虚拟机使用磁盘的几种模式

    qemu+ssh://xx   使用ssh传输到目标主机

    这里最好配置免密,避免手工输入密码,另外就是要原主机和目标主机都使用域名,并配置hosts,否则会提示你FQDN错误。

    迁移后的目标主机

    主机处于运行状态,但是在默认的目录里面是没有该主机xml文件,它处于/run/libvirt/qemu目录,这个目录我们之前讲tmpfs虚拟文件系统说过它是基于内存的,如果这个时候我把这个主机关机,则这个主机在目标主机就会消失。

      [root@kvm31 qemu]# ll run/libvirt/qemu
      total 16
      -rw------- 1 root root 4 Oct 31 12:37 myvm1.pid
      -rw------- 1 root root 9126 Oct 31 12:37 myvm1.xml

      虚拟机内部状态

      可以看到我们迁移虚拟机的时间,ssh的目标主机没有中断,也没感知虚拟机发生了迁移。

      历史推荐内容

      Linux基础-包括文件的增删改查,磁盘管理,网络配置,用户配置,权限配置

      Linux进阶-包括硬件,日常运维,基础软件,日志,进阶命令,防火墙,shell编程,内核,linux系统及初始化


      文章转载自戏说数据那点事,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

      评论