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服务器上去。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/909116.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

讲讲软件业务设计原则?

大家好,我是锋哥。今天分享关于【讲讲软件业务设计原则?】面试题。希望对大家有帮助; 讲讲软件业务设计原则? 1000道 互联网大厂Java工程师 精选面试题-Java资源分享网 在软件开发过程中,如何设计一个既高效又可维护…

Cuebric:用AI重新定义3D创作的未来

一、简介 Cuebric 是一家成立于2022年夏天的好莱坞创新公司,致力于为电影、电视、游戏和时尚等行业提供先进的AI多模态SaaS平台。自2024年1月正式推出以来,Cuebric 已经在市场上获得了广泛的认可和积极的反馈。目前,该平台正处于1.0版本的beta测试阶段,已募集约50万美元的…

快来了解一下服务器虚拟化!!!

服务器虚拟化是信息技术领域的一项重要技术,它允许在单一的物理服务器上运行多个虚拟服务器(虚拟机,VMs),每个虚拟机都可以运行自己的操作系统和应用程序。这项技术通过引入一层名为虚拟化层或虚拟机监视器&#xff08…

flink实战-- flink任务的火焰图如何使用

火焰图 Flame Graphs 是一种有效的可视化工具,可以帮助我们排查如下问题: 目前哪些方法正在消耗 CPU 资源?一个方法的消耗与其他方法相比如何?哪一系列的堆栈调用导致了特定方法的执行?y 轴表示调用栈,每一层都是一个函数。调用栈越深,火焰就越高,顶部就是正在执行的…

Oracle视频基础1.3.6练习

1.3.6 以下是您的需求清单(不含解决方案): 检查数据库启动情况等待会话结束,进行正常关机等待事务全部提交后再关机查看 alert 日志文件查看后台跟踪文件查看用户跟踪文件 检查数据库启动情况 ps -ef | grep oracle ipcs clear…

ROS2简介与Ubuntu24.04中安装指南

之前安装了一个版本,但是不愿意写blog,现在想想自己就是个沙子立个flag,每次配置项目,写流程blog ROS简介 ROS(Robot Operating System)是一个开源的机器人软件平台,提供了许多工具和库来帮助…

【Linux】- vim四种模式常见使用技巧

目录 一、快速认识vim 1、概念: 2、vim的四种模式及其互相转换 二、常见模式具体介绍 1、命令模式 2、底行模式 3、小技巧 一、快速认识vim 1、概念: vim是一个多模式的编辑器,vim里面还有很多的子命令,来进行代码的编写操…

Rust 力扣 - 1652. 拆炸弹

文章目录 题目描述题解思路题解代码题目链接 题目描述 题解思路 我们只需要遍历长度长度为k的窗口&#xff0c;然后把窗口内数字之和填充到结果数组中的对应位置即可 题解代码 impl Solution {pub fn decrypt(code: Vec<i32>, k: i32) -> Vec<i32> {let n c…

基于springboot的高校科研管理系统(源码+调试+LW)

项目描述 临近学期结束&#xff0c;还是毕业设计&#xff0c;你还在做java程序网络编程&#xff0c;期末作业&#xff0c;老师的作业要求觉得大了吗?不知道毕业设计该怎么办?网页功能的数量是否太多?没有合适的类型或系统?等等。这里根据你想解决的问题&#xff0c;今天给…

一个最简单的网络编程

今天总结一下&#xff0c;我至今学的第一个网络编程&#xff0c;也是一个最简单的网络编程。 这篇博客只是将如何用代码实现一个网络编程&#xff0c;具体细节不讲解&#xff0c;后续会介绍详细细节。 网络编程会涉及到客户端和服务器的实现。 1.服务器的实现 首先&#xf…

Centos开机自启动脚本示例

本文建议创建一个sh文件管理自启动的各项内容&#xff0c;再将sh文件设置开机启动 在/root/autoshell下创建一个autostart.sh&#xff0c;内容如下 #!/bin/bash # description:开机自启脚本# 启动mongodb sh /root/software/mongodb-linux-x86_64-rhel70-4.0.6/bin/mongod --c…

从APP小游戏到Web漏洞的发现

一、前因&#xff1a; 在对一次公司的一个麻将游戏APP进行渗透测试的时候发现&#xff0c;抓到HTTP请求的接口&#xff0c;但是反编译APK后发现没有在本身发现任何一个关于接口或者域名相关的关键字&#xff0c;对此感到了好奇。 于是直接解压后everything搜索了一下&#xff…

Docker-- cgroups资源控制实战

上一篇&#xff1a;容器化和虚拟化 什么是cgroups&#xff1f; cgroups是Linux内核中的一项功能&#xff0c;最初由Google的工程师提出&#xff0c;后来被整合进Linux内核; 它允许用户将一系列系统任务及其子任务整合或分隔到按资源划分等级的不同组内&#xff0c;从而为系统…

从0开始本地部署大模型

这就开始从0开始本地部署大模型 下载Ollama 下载地址&#xff1a;https://ollama.com/download/windows 适用于MacOS、Linux和Windows&#xff0c;这里我下载Windows的安装包。 直接打开安装包&#xff0c;点击install即可&#xff0c;安装完成后可以在任务栏中看到Ollama程…

【华为HCIP实战课程二十九】中间到中间系统协议IS-IS邻居关系建立和LSP详解,网络工程师

一、广播环境邻居关系建立详解 1、广播环境邻居关系建立 广播邻居关系采用三次握手,携带的邻居列表为接口的MAC来标识 2、LSP同步:3种报文(CSNP和PSNP和具体的LSP) CSNP作用类似DBD,请求者发送PSNP(类似LSR)来请求具体的LSP 广播网络LSP交互过程: R1-R2(DIS)--R3…

SpringBoot day 1105

ok了家人们&#xff0c;今天继续学习spring boot&#xff0c;let‘s go 六.SpringBoot实现SSM整合 6.1 创建工程&#xff0c;导入静态资源 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>Title</…

易盾增强版滑块识别/易盾识别/滑块识别/增强版滑块识别/易盾滑块本地识别

易盾增强版滑块识别 计算思路如下&#xff1a; 滑动条拖动距离传入 restrict 算法处理得到 初次值 J J * 率值0.309375 得到滑块偏移量。 滑块的旋转角度滑块偏移量*attrs 所以滑块偏移量滑块的旋转角度/attrs 通过滑块偏移量 求出 滑动条拖动距离 # 应用高斯模糊warped_…

WPF 特性------Binding

工业控制中&#xff0c;经常会需要把一个bool 型输入信号的状态显示在面板上&#xff0c;使用wpf 绑定的办法&#xff0c;可简洁实现&#xff1a; 实现步骤&#xff1a; 1&#xff0c;定义类&#xff1a; using System; using System.Collections.Generic; using System.Com…

ENSP (虚拟路由冗余协议)VRRP配置

VRRP&#xff08;Virtual Router Redundancy Protocol&#xff0c;虚拟路由冗余协议&#xff09;是一种用于提高网络可用性和可靠性的协议。它通过在多个路由器之间共享一个虚拟IP地址&#xff0c;确保即使一台路由器发生故障&#xff0c;网络依然能够正常运行&#xff0c;防止…

计算机网络(Ⅵ)应用层原理

一些网络应用的例子: E-mail Internaet电话 Web 电子支付 文本信息 搜索 P2P文件共享 流媒体 即时通讯 实时电视会议 .... .... 创建一个网络应用&#xff1a; 1.编程 2.在不同的端系统上运行。 网络应用的体系架构 可能的应用架构 1.客户-服…