当前位置: 首页 > news >正文

KVM虚拟机的冷热迁移

首先了解在KVM(Kernel-based Virtual Machine)环境中,冷热迁移是指将虚拟机从一台主机迁移到另一台主机的过程,根据虚拟机是否需要停机,迁移分为热迁移和冷迁移:

冷迁移(Cold Migration)

  • 定义:冷迁移指在虚拟机关机的状态下进行迁移,即将虚拟机停止运行后,将其数据迁移到另一台物理主机,然后在新主机上启动。
  • 优点:实现方式较为简单,资源占用低,适合在不要求高可用性的场景中使用。
  • 应用场景:适用于需要较长时间的迁移、主机硬件维护或计划停机等情况下。
  • 技术原理:在虚拟机完全停止后,将虚拟机的配置文件和存储卷复制到目标主机,然后在目标主机上重启虚拟机。

热迁移(Live Migration)

  • 定义:热迁移指在不关闭虚拟机的情况下,将其从一台物理主机转移到另一台物理主机上。这意味着虚拟机在迁移过程中几乎不影响运行。
  • 优点:实现了虚拟机在不停机状态下的转移,适合需要高可用性和持续运行的业务场景。
  • 应用场景:当需要进行主机维护或负载均衡时,可以通过热迁移将虚拟机转移到其他主机,避免中断服务。
  • 技术原理:KVM 使用内存预拷贝(pre-copy)机制,在迁移前将虚拟机内存状态复制到目标主机。迁移时,首先复制内存的静态部分,随后实时同步内存的变化部分,直到两边内存状态完全一致。

实验环境:

主机IP
server10.0.0.200
Ubuntu0210.0.0.201

配置SSH免密和设置hosts解析
请在两台主机上分别执行
在这里插入图片描述

ssh key-gen
ssh-copy-id root@10.0.0.200

1、 冷迁移案例之无依赖环境迁移

环境查看
在这里插入图片描述

在这里插入图片描述
如若虚拟机还在运行中,请先关闭虚拟机在进行冷迁移动作

virsh destroy xxxxx

查看要迁移的虚拟机对应的磁盘文件路径,(这里我们迁移ubuntu20.04)
在这里插入图片描述

拷贝虚拟机的配置文件和磁盘到目标节点
在这里插入图片描述

在Ubuntu02主机上导入虚拟机并启动
在这里插入图片描述
可以使用用Xmanager打开窗口看的更清楚点
在这里插入图片描述
发现迁移前后,IP地址不变

2、热迁移

部署NFS服务器 源KVM虚拟机上操作

apt -y install nfs-kernel-server

编辑配置文件

[root@server ~]# vim /etc/exports
/data/isos *(rw,sync,no_root_squash)
#其中,* 表示允许所有客户端访问该共享。您可以根据需求更改为特定的 IP 地址或 IP 范围。选项说明:#rw:读写权限。
#sync:同步写入。
#no_root_squash表示当前客户机以root身份访问时赋予本地root权限
#(默认是root_squash,将作为nfsnobody用户对待),若不加no_root_squash,可能会导致被降权,而无法进行读写(rw)。

更新配置及重启服务

exportfs -a
systemctl restart nfs-kernel-server.service

在这里插入图片描述

配置NFS服务 在目标虚拟机上操作

apt install nfs-common -y

在客户端上创建一个挂载点,并将服务器的NFS共享目录挂载到该挂载点

mount -t nfs 10.0.0.200:/data/isos /data/isos

也可以设置开机自动挂载(可选)

10.0.0.200:/data/isos   /data/isos    nfs    defaults    0    0

在这里插入图片描述

热迁移时保证是不可以影响服务,这边是按照正在运行中的虚拟机进行迁移

为了模拟服务过程,这里采用长ping的方式进行测试
在这里插入图片描述
命令行进行迁移

virsh migrate --live ubuntu20.04-test --unsafe qemu+ssh://ubuntu02/system
#可选
--persistent 表示同时虚拟机的迁移配置文件。
--undefinesource 表示迁移时删除源虚拟机。

跟踪日志发现迁移过程

tail -f /var/log/libvirt/qemu/ubuntu20.04-test.log

在这里插入图片描述
迁移完成后,虚拟机并未停止中断服务,并已经运行在Ubuntu02虚拟机上
在这里插入图片描述

观察长ping的服务,发现就中断了一下,这个是不影响服务的
在这里插入图片描述
至此热迁移已完成

也可以在virt-manager上进行操作 建议使用
在这里插入图片描述
在这里插入图片描述
也可以反向再迁移回去到server服务器上去。


http://www.mrgr.cn/news/66084.html

相关文章:

  • Vue全栈开发旅游网项目(5)-景点详情模块API接口设计
  • DAY18|二叉树Part06|LeetCode: 530.二叉搜索树的最小绝对差、501. 二叉搜索树中的众数、236.二叉树的最近公共祖先
  • gRPC-拦截器
  • blender导入的图片渲染看不见,图片预览正常,但渲染不出
  • Chromium Mojo(IPC)进程通信演示 c++(1)
  • Go 函数的使用
  • 量化交易 股市技术指标
  • 【ARM Linux 系统稳定性分析入门及渐进 1.4 -- Crash 工具调用】
  • Vue 3 性能提升与 Vue 2 的比较 - 2024最新版前端秋招面试短期突击面试题【100道】
  • 51单片机--- 蜂鸣器电子琴仿真
  • 【Linux】网络编程:实现一个简易的基于HTTP协议格式、TCP传输的服务器,处理HTTP请求并返回HTTP响应;GET方法再理解
  • Odoo的结构
  • 数据分析-39-时间序列分解之经验小波分解EWT
  • 【笔记】变压器-热损耗-频响曲线推导 - 03 变压器参数-特性
  • PMP每日一练(二十三)
  • ​伊朗和以色列各类地图分享
  • 基于springboot+vue实现的网上书店系统 (源码+L文)
  • 25届大模型秋招总结经验分享(互联网版)
  • YOLOv10改进策略【卷积层】| 利用MobileNetv4中的UIB、ExtraDW优化C2fCIB
  • 3大关键点教你用Java和Spring Boot快速构建微服务架构:从零开发到高效服务注册与发现的逆袭之路
  • 一分钟讲透聚合SDK的工作原理
  • 少儿编程学习现状:提升思维与动手能力,家长需求大揭秘
  • Excel函数之XLOOKUP
  • 跨可用区的集群k8s的基本操作和配置理解
  • 如何在 uniapp 中实现图形验证码
  • 【日记】吹头发的时候好爆炸(449 字)