qemu的snapshot快照功能的详细使用介绍
快照功能还是蛮有趣的,就是资料比较少,这边万能菜道人特意整理了一下。
参考内容:
QEMU checkpoint(snapshot) 使用-pudn.com
KVM&QEMU学习笔记(二)-蒲公英云 (dandelioncloud.cn)
在线迁移存储 - 爱码网 (likecs.com)
场景:
window下使用qemu启动debian10
镜像格式:qcow2
介绍
qemu的快照功能到底是什么?
QEMU的快照功能就是将虚拟机的磁盘信息与内存信息进行有选择的备份下来,然后提供了恢复的功能,这就允许用户在为虚拟机创建一份虚拟机的备份,以便在以后需要的时候可以快速恢复到该状态。
snapshot的分类?
应该大致分为两类:
磁盘快照
qemu-img.exe 命令行来创建
磁盘快照包含磁盘中的存储信息,包括文件夹、文件的内容等等。
只能离线,即虚拟机在关闭的状态下进行创建快照。(运行下磁盘内容可能不太稳定)
检查点(checkpoint)快照
qemu 的monitor监视器(运行起来使用ctrl+alt+2才能看到)来使用命令创建。
检查点快照除了包含磁盘快照的内容,还将正在运行的内存信息也包括在内。
必须在线,即虚拟机在运行的状态下进行场景快照,因为不运行哪来的正在运行的信息。
可以用于快速启动(即VM的挂起和恢复功能!)
使用细节
磁盘快照的使用细节
磁盘快照按道理应该可以保存为内部文件(qcow2镜像内)和外部文件(独立存在)。
保存在内部的磁盘快照
创建快照,运行以下命令:
qemu-img.exe snapshot -c snapshot_name vm_name.qcow2其中,snapshot_name是您想要给快照命名的名称,vm_name.qcow2是要创建快照的虚拟机磁盘镜像的名称。该命令将创建一个名为snapshot_name的新快照。
使用快照就按之前能够正常运行的处理,你可以尝试添加和删除几个文件。
恢复快照:如果您想恢复到之前创建的快照,运行以下命令:
qemu-img.exe snapshot -a snapshot_name vm_name.qcow2其中,snapshot_name是您之前创建的快照的名称,vm_name.qcow2是虚拟机磁盘镜像的名称。该命令将使虚拟机恢复到创建快照时的状态。
删除快照:
qemu-img.exe snapshot -d snapshot-name vm_name.qcow2查看镜像中保存的快照列表:
qemu-img snapshot -l vm_name.qcow2注意:尽量不要在虚拟机在运行的状态下来操作磁盘快照啊,可能会损坏的。
保存在外部的磁盘快照
该内容和下面的检查点快照的使用细节中的独立存储的方式是一致的!
思路就是:
先创建一个child_image。
然后在这个child_image上进行磁盘快照!
检查点快照的使用细节
检查点快照按道理应该也可以保存为内部文件(qcow2镜像内)和外部文件(独立存在)。
无论创建内部文件还是外部文件,都需要先启动虚拟机!

接着ctrl+alt+2进入monitor命令行:

保存在内部的检查点快照
创建内部文件:
创建保存在qcow2镜像内部的检查点快照:
savevm vm1注意:该操作实际相当于挂起了一个虚拟机备份,后面可以使用loadvm进行恢复!
查看已存在的快照(包含磁盘快照和检查点快照,大小是不一样的)
info snapshots
直接加载内部快照
方式一:
qemu已经启动该镜像了,可以使用命令直接恢复
loadvm vm1方式二:
启动虚拟机的脚本修改为如下格式:
qemu-system-x86_64.exe -m 2G -smp 2 -device e1000e,ne ...... -accel tcg -hda myimg.qcow2 -loadvm vm1注意将qcow2放到后面哦,体验一下三秒钟启动的惊艳感觉吧!
删除内部快照
delvm vm1独立存储的检查点快照
创建外部文件
同样要使用minotor的命令,ctrl+alt+2:
这里先了解一下使用的ide0-hd0,可以使用一下命令查看来源:
info block
然后创建外部文件:
snapshot_blkdev ide0-hd0 vm1.qcow2 qcow2然后就可以在文件夹中找到新的vm1.qcow2文件了!
你可能会发现这个vm1.qcow2的大小很小,就几M的样子。
那是因为外部快照存储的是新变化的内容,你刚刚启动的虚拟机镜像已经成为了base_image,不允许修改的啦!
即:
base_image.qcow2 -> vm1.qcow2 两个累加出来的虚拟机!
这个很小的vm1.qcow2可以作为我们支持独立的磁盘快照和检查点快照的基础!
所以,所谓的独立存储就是在创建child_image基础之后,然后以这个child_image来做保存内部的磁盘快照,或者是检查点快照。
这里你应该发现在使用snapshot_blkdev之后,monitor的命令行已经在新的vm1.qcow2上了。
这时我们新建一个内部检查点快照:
savevm new_vm1你会发现该vm1.qcow2会膨胀到一两百M左右,这表示检查点快照应该存储成功了。
来使用独立存储文件来启动检查点快照吧:
qemu-system-x86_64.exe -m 2G -smp 2 -device e1000e,ne ...... -accel tcg -hda vm1.qcow2 -loadvm new_vm1这样就启动成功了!
相关文章:
qemu的snapshot快照功能的详细使用介绍
快照功能还是蛮有趣的,就是资料比较少,这边万能菜道人特意整理了一下。参考内容:QEMU checkpoint(snapshot) 使用-pudn.comKVM&QEMU学习笔记(二)-蒲公英云 (dandelioncloud.cn)在线迁移存储 - 爱码网 (likecs.com)…...
谷歌关键词优化多少钱【2023年调研】
本文主要分享Google关键词排名优化的一些成本调研,方便大家参考。 本文由光算创作,有可能会被剽窃和修改,我们佛系对待这种行为吧。 今年2023年了,谷歌关键词优化到底要多少钱? 答案是:价格在2w~25w左右…...
凸包及其算法
概念 凸包:一个能够将所有给定点围住的最小周长封闭图形。 稳定凸包:在当前组成凸包的点集 V0V_0V0 中新增一个不在凸包上的点,形成新点集 V1V_1V1,若可以使 V1V_1V1 中所有点都在 V1V_1V1 的点的凸包上,则这…...
计算机网络学习笔记(二)物理层
物理层(传输比特0/1)基本概念 物理层下的传输媒体 1. 导引型 同轴电缆,双绞线(绞合可抵御干扰),光纤,电力线 2. 非导引型(调制振幅 频率 相位) 无线电波,微…...
为什么职称要提前准备?
职称反映专业技术人员的学术和技术水平、工作能力的工作成就,具有学衔、岗位两种性质。目前中国现状下,职称主要代表社会地位,就业经验,职称等级越高,越容易得到更高的社会经济和福利待遇。 职称通过申报、评审的形式…...
MyBatis详解1——相关配置
一、什么是MyBatis 1.定义:是一个优秀的持久层框架(ORM框架),它支持自定义 SQL、存储过程以及高级映射。MyBatis是一个用来更加简单的操作和读取数据库的工具。 2.支持的操作方式:xml或者注解实现操作(xm…...
字节青训营——秒杀系统设计学习笔记(三)
限流算法 限流顾名思义,就是对请求或并发数进行限制;通过对一个时间窗口内的请求量进行限制来保障系统的正常运行。如果我们的服务资源有限、处理能力有限,就需要对调用我们服务的上游请求进行限制,以防止自身服务由于资源耗尽而…...
每天一道大厂SQL题【Day10】电商分组TopK实战
每天一道大厂SQL题【Day10】电商分组TopK实战 大家好,我是Maynor。相信大家和我一样,都有一个大厂梦,作为一名资深大数据选手,深知SQL重要性,接下来我准备用100天时间,基于大数据岗面试中的经典SQL题&…...
最全的免费录屏工具,这 19 款录屏软件绝对值得你收藏
屏幕录制软件可让您捕获屏幕以与他人共享,创建与产品相关的视频、教程、课程、演示、视频等。这些软件是您能够从网络摄像头和屏幕录制视频。以下是精选的顶级屏幕录像机列表。 适用于 PC 的19 款免费录屏屏幕录像机软件 1)奇客免费录屏 奇客免费录屏&am…...
vb.net计算之.net core基础(2)-发布应用
目录 发布程序测试运行运行方式发布程序 首先,将编译配置改为Release 然后,发布应用,在生成菜单下。 选择发布到文件夹 继续选择文件夹 接着,完成 关闭 点击发布标签栏的发布按钮...
微服务项目【商品秒杀接口压测及优化】
生成测试用户 将UserUtils工具类导入到zmall-user模块中,运行生成测试用户信息,可根据自身电脑情况来生成用户数量。 UserUtils: package com.xujie.zmall.utils;import com.alibaba.nacos.common.utils.MD5Utils; import com.fasterxml.j…...
1997. 访问完所有房间的第一天
题目 你需要访问 n 个房间,房间从 0 到 n - 1 编号。同时,每一天都有一个日期编号,从 0 开始,依天数递增。你每天都会访问一个房间。 最开始的第 0 天,你访问 0 号房间。给你一个长度为 n 且 下标从 0 开始 的数组 n…...
通达信交易接口以什么形式执行下单的?
通达信程交易接口 以API形式来执行下单接口,一般不再需要通过接口系统之间进行连接,通过直接调用通达信dll交易函数的方式直接进行交易,包括下单,撤单,查询资金股份、当日委托、当日成交等方面都能很快的执行出来。以a…...
CobaltStrike上线微信通知
CobaltStrike上线微信通知 利用pushplus公众号(每天免费发送200条消息) http://www.pushplus.plus/push1.html 扫码登录后需要复制token 可以测试一下发送一下消息,手机会受到如下消息。可以在微信提示里将消息免打扰关闭(默认…...
喜茶、奈雪的茶“花式”寻生路
配图来自Canva可画 疫情全面开放不少人“阳了又阳”,电解质饮品成为热销品,梨子、橘子、柠檬等水果被卖断货,凉茶、黄桃罐头被抢购一空,喜茶的“多肉大橘”、奈雪的“霸气银耳炖梨”、蜜雪冰城的“棒打鲜橙”、沪上阿姨的“鲜炖整…...
Xstream使用教程
1.Xstream介绍 官网:https://x-stream.github.io/tutorial.html 介绍:XStream 对象序列化和反序列化为 XML的一个JAVA类库。JDK 1.4以上适用。 PS:与JAXB相比,Xstream更好用一些,像XStreamImplicit这种注解,我在JAX…...
【正点原子FPGA连载】第十一章PL SYSMON测量输入模拟电压 摘自【正点原子】DFZU2EG_4EV MPSoC之嵌入式Vitis开发指南
1)实验平台:正点原子MPSoC开发板 2)平台购买地址:https://detail.tmall.com/item.htm?id692450874670 3)全套实验源码手册视频下载地址: http://www.openedv.com/thread-340252-1-1.html 第十一章PL SYSM…...
纷享销客百思特 | 数字化营销赋能企业新增长沙龙圆满落幕
为进一步帮助企业客户实现数字化转型,纷享销客联合百思特管理咨询集团,于2月10日举办 “数字化营销赋能企业新增长”主题沙龙。本次活动以“新变革新增长”为主题,现场30余位制造企业高管齐聚一堂,共同探讨企业如何在当前复杂的宏…...
oracle查看具体表占用空间 oracle查看表属于哪个用户
文章目录前言oracle查看具体表占用空间1、查看表空间总大小、使用率、剩余空间2、查看具体表的占用空间大小3、查看表空间对应日志文件oracle查看表属于哪个用户1、oracle怎么查看表属于哪个用户2、Oracle查询视图所属用户3、Oracle查询存储过程所属用户总结前言 表空间是数据…...
2.Visual Studio下载和安装
Visual Studio 是微软提供的一个集成开发环境(IDE),主要用于为 Windows 系统开发应用程序。Visual Studio 提供了构建 .Net 平台应用程序的一站式服务,可以使用 Visual Studio 开发、调试和运行应用程序。 1、Visual Studio下载 …...
shell脚本--常见案例
1、自动备份文件或目录 2、批量重命名文件 3、查找并删除指定名称的文件: 4、批量删除文件 5、查找并替换文件内容 6、批量创建文件 7、创建文件夹并移动文件 8、在文件夹中查找文件...
uni-app学习笔记二十二---使用vite.config.js全局导入常用依赖
在前面的练习中,每个页面需要使用ref,onShow等生命周期钩子函数时都需要像下面这样导入 import {onMounted, ref} from "vue" 如果不想每个页面都导入,需要使用node.js命令npm安装unplugin-auto-import npm install unplugin-au…...
【第二十一章 SDIO接口(SDIO)】
第二十一章 SDIO接口 目录 第二十一章 SDIO接口(SDIO) 1 SDIO 主要功能 2 SDIO 总线拓扑 3 SDIO 功能描述 3.1 SDIO 适配器 3.2 SDIOAHB 接口 4 卡功能描述 4.1 卡识别模式 4.2 卡复位 4.3 操作电压范围确认 4.4 卡识别过程 4.5 写数据块 4.6 读数据块 4.7 数据流…...
条件运算符
C中的三目运算符(也称条件运算符,英文:ternary operator)是一种简洁的条件选择语句,语法如下: 条件表达式 ? 表达式1 : 表达式2• 如果“条件表达式”为true,则整个表达式的结果为“表达式1”…...
定时器任务——若依源码分析
分析util包下面的工具类schedule utils: ScheduleUtils 是若依中用于与 Quartz 框架交互的工具类,封装了定时任务的 创建、更新、暂停、删除等核心逻辑。 createScheduleJob createScheduleJob 用于将任务注册到 Quartz,先构建任务的 JobD…...
Module Federation 和 Native Federation 的比较
前言 Module Federation 是 Webpack 5 引入的微前端架构方案,允许不同独立构建的应用在运行时动态共享模块。 Native Federation 是 Angular 官方基于 Module Federation 理念实现的专为 Angular 优化的微前端方案。 概念解析 Module Federation (模块联邦) Modul…...
【Web 进阶篇】优雅的接口设计:统一响应、全局异常处理与参数校验
系列回顾: 在上一篇中,我们成功地为应用集成了数据库,并使用 Spring Data JPA 实现了基本的 CRUD API。我们的应用现在能“记忆”数据了!但是,如果你仔细审视那些 API,会发现它们还很“粗糙”:有…...
管理学院权限管理系统开发总结
文章目录 🎓 管理学院权限管理系统开发总结 - 现代化Web应用实践之路📝 项目概述🏗️ 技术架构设计后端技术栈前端技术栈 💡 核心功能特性1. 用户管理模块2. 权限管理系统3. 统计报表功能4. 用户体验优化 🗄️ 数据库设…...
比较数据迁移后MySQL数据库和OceanBase数据仓库中的表
设计一个MySQL数据库和OceanBase数据仓库的表数据比较的详细程序流程,两张表是相同的结构,都有整型主键id字段,需要每次从数据库分批取得2000条数据,用于比较,比较操作的同时可以再取2000条数据,等上一次比较完成之后,开始比较,直到比较完所有的数据。比较操作需要比较…...
【从零开始学习JVM | 第四篇】类加载器和双亲委派机制(高频面试题)
前言: 双亲委派机制对于面试这块来说非常重要,在实际开发中也是经常遇见需要打破双亲委派的需求,今天我们一起来探索一下什么是双亲委派机制,在此之前我们先介绍一下类的加载器。 目录 编辑 前言: 类加载器 1. …...
