qemu的snapshot快照功能的详细使用介绍

news2024/9/29 17:12:59

快照功能还是蛮有趣的,就是资料比较少,这边万能菜道人特意整理了一下。

参考内容:

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镜像内)和外部文件(独立存在)。

保存在内部的磁盘快照
  1. 创建快照,运行以下命令:

qemu-img.exe snapshot -c snapshot_name vm_name.qcow2

其中,snapshot_name是您想要给快照命名的名称,vm_name.qcow2是要创建快照的虚拟机磁盘镜像的名称。该命令将创建一个名为snapshot_name的新快照。

  1. 使用快照就按之前能够正常运行的处理,你可以尝试添加和删除几个文件。

  1. 恢复快照:如果您想恢复到之前创建的快照,运行以下命令:

qemu-img.exe snapshot -a snapshot_name vm_name.qcow2

其中,snapshot_name是您之前创建的快照的名称,vm_name.qcow2是虚拟机磁盘镜像的名称。该命令将使虚拟机恢复到创建快照时的状态。

  1. 删除快照:

qemu-img.exe snapshot -d snapshot-name vm_name.qcow2
  1. 查看镜像中保存的快照列表:

qemu-img snapshot -l vm_name.qcow2

注意:尽量不要在虚拟机在运行的状态下来操作磁盘快照啊,可能会损坏的

保存在外部的磁盘快照

该内容和下面的检查点快照的使用细节中的独立存储的方式是一致的

思路就是:

  • 先创建一个child_image。

  • 然后在这个child_image上进行磁盘快照!

检查点快照的使用细节

检查点快照按道理应该也可以保存为内部文件(qcow2镜像内)和外部文件(独立存在)。

无论创建内部文件还是外部文件,都需要先启动虚拟机!

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

保存在内部的检查点快照
  1. 创建内部文件:

创建保存在qcow2镜像内部的检查点快照:

savevm vm1

注意:该操作实际相当于挂起了一个虚拟机备份,后面可以使用loadvm进行恢复!

  1. 查看已存在的快照(包含磁盘快照和检查点快照,大小是不一样的)

info snapshots
  1. 直接加载内部快照

方式一:

qemu已经启动该镜像了,可以使用命令直接恢复

loadvm vm1

方式二:

启动虚拟机的脚本修改为如下格式:

qemu-system-x86_64.exe -m 2G -smp 2 -device e1000e,ne  ......  -accel tcg -hda myimg.qcow2 -loadvm vm1

注意将qcow2放到后面哦,体验一下三秒钟启动的惊艳感觉吧!

  1. 删除内部快照

delvm vm1

独立存储的检查点快照

  1. 创建外部文件

同样要使用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

这样就启动成功了!

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

SpringMVC DispatcherServlet源码(4) HandlerMapping和HandlerAdapter等组件说明

本文介绍一下与DispacherServlet相关的几个重要组件: HandlerMapping - 管理请求与处理器映射关系HandlerAdapter - 请求处理器HandlerMethodArgumentResolver - 处理器方法参数解析器HandlerMethodReturnValueHandler - 处理器方法返回值处理器HttpMessageConvert…

LeetCode(剑指offer) DAY2

1.题目 从尾到头打印链表 解法一:先统计链表有多少节点,然后创建数组,再次遍历链表将值存储至数组,然后反转数组。这种解法思路简单,但是时间复杂度较高。 class Solution {int a 0,b0;public int[] reversePrint(Li…

Routability-Driven Macro Placement with Embedded CNN-Based Prediction Model

Routability-Driven Macro Placement with Embedded CNN-Based Prediction Model 2019 Design, Automation & Test in Europe Conference & Exhibition (DATE) DOI: 10.23919/DATE.2019.8715126 目录Abstract一、Introduction二、PROBLEM FORMULATION AND PRELIMINARIE…

java分析插入排序

首先查看一张经典的插入排序的图片 有图片可知,插入排序其字面的意思找到小的插入到前面就行 插入排序的基本思想就是分治:将数组分为两个区域,分别是已排序区和没有排序的区域 已排序区:假定一边的数组是都排序好的 wei排序区&…

软件测试选Python还是Java?

目录 前言 1、先从一门语言开始 2、两个语言的区别 3、两个语言的测试栈技术 4、如何选择两种语言? 总结 前言 对于工作多年的从业者来说,同时掌握java和Python两门语言再好不过,可以大大增加找工作时的选择范围。但是对于转行的人或者…

Vue2之Vue-cli应用及组件基础认识

Vue2之Vue-cli应用及组件基础认识一、Vue-cli1、单页面应用程序2、vue-cli介绍3、安装和使用4、创建项目4.1 输入创建项目4.2 选择第三项,进行自主配置,按回车键即可4.3 选择自己需要的库4.4 选择Vue的版本4.5 选择CSS选择器4.6 选择Babel、ESLint、etc等…

Sitara™处理器的产品开发路线图

Sitara™处理器的产品开发路线图概述Evaluation Phase(评估阶段)Board Development Phase(硬件发展阶段,硬件设计人员应重点关注这个阶段)Software Development Phase(软件发展阶段)Product Phase/SW Lifecycle概述 一般情况下,会存在四个主要的发展阶段…

从0到1一步一步玩转openEuler--15 openEuler使用DNF管理软件包

文章目录15.1 搜索软件包15.2 列出软件包清单15.3 显示RPM包信息15.4 安装RPM包15.5 下载软件包15.6 删除软件包DNF是一款Linux软件包管理工具,用于管理RPM软件包。DNF可以查询软件包信息,从指定软件库获取软件包,自动处理依赖关系以安装或卸…

书籍《金字塔原理》读后感

上周读完了书籍《金字塔原理》这本书,这本书在管理学中,比较有名的书籍了,之前没怎么读过跟管理学相关书籍,这本算是第一本,是上级推荐给自己的,自己首先查了下,推荐度还是挺好的,看…

uniapp实现app检查更新与升级-uni-upgrade-center详解

app检查更新与升级 参考链接: 升级中心uni-upgrade-center - App uni-admin h5 api App资源在线升级更新 uni-app使用plus注意事项 关于在线升级(WGT)的几个疑问 什么是升级中心uni-upgrade-center uniapp官方开发的App版本更新的插件&#…

结构体的不定长数组,用起来就是这么爽

结构体的不定长数组 结构体数组不定长的做法,有两种 第一种: 指针 第二种:长度为0的数组 1. 结构体的数组指针 特点: 结构体初始化时,可以是结构体指针,如struct tag_info *pInfo NULL; 也可以是结构体变量…

Python文件和数据格式化(教程)

文件是一个存储在副主存储器的数据序列,可包含任何数据内容。 概念上,文件是数据的集合和抽象,类似的,函数是程序的集合和抽象。 用文件形式组织和表达数据更有效也更加灵活。 文件包括两种形式,文本文件和二进制文…

推荐几款市面上常用的免费CMS建站系统

小编在网站建设行业从业十几年,很多客户或者朋友找我做网站的时候,都喜欢开发一个完全熟悉自己的网站系统,但是小编这里很不推荐。从0到1全新开发,成本,效率和成熟度这些和主流的cms建站系统比起来,完全没有…

文件与IO

一.文件的定义什么是文件?文件分为狭义上的文件和广义上的文件 狭义上的文件:文件夹中的文件:包括视频、图片、文本、可执行文件等等......其中有些文件是有后缀名的,而有一些文件是没有后缀名的广义上的文件:在Linux系…

Unix Linux、MAC、Window 如何安装配置环境?都在这里啦~

嗨害大家好鸭!我是小熊猫~ 这次将向大家介绍如何在本地搭建Python开发环境。 Python可应用于多平台包括 Linux 和 Mac OS X。 你可以通过终端窗口输入 “python” 命令来查看本地是否已经安装Python以及Python的安装版本。 源码资料电子书:点击此处跳转文末名片获…

PHP代码审计神器——RIPS个人汉化版(2017年老文)

一、RIPS简介 RIPS是一款PHP开发的开源的PHP代码审计工具,由国外的安全研究者Johannes Dahse开发,目前开源的最新版本是0.55。 程序小巧玲珑,仅有不到500kb,其中的PHP语法分析非常精准,可以实现跨文件变量和函数追踪…

Virtualbox安装Windows11教程,提供虚机专用镜像下载。

微软在Windows11安装过程中增加了TPM2.0安全验证,所以一些老旧的电脑或者不带TPM认证协议的虚拟机都无法安装系统镜像。 这给我们体验尝鲜带来了一些小小的困扰。其实有2种解决方法可以在虚拟机中体验到Windows11带来的变化。 方法一 虚拟机启动时先加载PE系统镜…

Python 版本的常见算法模板(一)

文章目录前言排序模板排序算法归并排序KMP图邻接表Floyd 算法DijkstraBellMan-Ford 算法SPFA 算法Prim 算法Kruskra 算法染色法Hunger算法前言 翻了翻自己以前写的一些博文,发现的话,还是有一些误区没有写好的,所以的话这里的重新写一下&…

年薪40W的测试工程师被裁,回怼的一番话,令人沉思...

腾讯一位测试工程师被炒,回怼到:“反正我有技术,在哪不一样” 在腾讯上班的朋友给我分享了今天在他公司遇到的事情,他部门一位测试工程师被炒,具体原因好像就是跟上司闹矛盾,部门的都觉得非常可惜,因为他算…

本地修改的文件,使用git stash暂存之后不小心将暂存区清空,重新找回之前被暂存的文件

概述 问题 日常使用git 时,将本地所做的修改使用git stash暂存,使用git pull拉取代码之后,之间用git stash clear将git stash暂存的内容删除掉了。本文讲述如何恢复git stash clear掉的暂存区代码。 解决方法 执行指令 git log --graph -…