关于Hyper-V快照研究_avhd101_smeyou的博客-程序员宅基地

技术标签: 转载 学习  

虚拟机快照是虚拟机在特定时刻的状态、磁盘数据和配置的基于文件的快照。可以获取虚拟机的多个快照(甚至在其运行时)。然后,通过将相应快照应用于虚拟机可将虚拟机恢复为任何以前的状态

我先说一下Hyper-V快照的创建过程

1. 虚拟机暂停(对于用户来说是透明的,感觉不到)

2. 为快照创建AVHD文件(快照以 .avhd 文件的形式存储在虚拟硬盘上的同一位置)

3. 配置虚拟机

4. 将虚拟机的硬盘指向新创建的AVHD文件

5. 虚拟机恢复运行(用户感觉不到虚拟磁盘配置已被修改)

6. 当虚拟机虚拟机运行时将内存中的内容保存到磁盘

7. 快照完成后,虚拟机的配置文件和状态文件被保存到虚拟机的目录下的snapshot目录中

多快照之间的关系

下面来了解一下多个虚拟机快照AVHD文件之间的关系

上图是我更具自己的理解所画的简图,和官方的图不一样,下面通过一个例子对上图做一些解释,

首先我对一个虚拟机做了3个快照(图1),分别为快照A、快照B、快照B-1

图 1 快照A、快照B、快照B-1

下面,我分别看看 这几个快照的磁盘

图 2 快照A是磁盘使用的仍然是虚拟机的磁盘

图 3快照B的磁盘

图 4快照B-1的磁盘

图 5"立即"状态的磁盘

从上面的几张图可以看出除快照A之外,其他快照都是以.avhd的文件形式存储的,大家在这个地方也许就有点犯晕了,其实我也有点犯晕,转不过这个弯,我尝试着解释一下:

当我们创建快照A的同时,系统已经创建了一个.avhd文件,快照A创建的后对来宾系统的更改实际上是保存到这个.avhd文件中的,也就是说快照A是对创建快照之前虚拟机系统状态的一个保存,而.avhd是创建快照A后我们所实际使用的磁盘,也就是"立即"这个状态,当创建快照B是,这个.avhd文件将被作为快照被的磁盘,同时也作为快照B之后"立即"状态的父硬盘。

大家看着可能有点犯晕,看看下图(图6)能不能帮助你理解,如果还是不明白的话,大家可以自己动手做做实验

图6 点击"检查"会显示父硬盘的属性

快照的应用

快照的应用就是将你的虚拟机恢复到之前的某个状态,应用快照的过程如下:

1. 复制要应用快照的配置文件(.bin .vsv)

2. 创建新的AVHD文件,并链接到父AVHD(就是你应用的这个快照设置中的avhd文件)

注意:

1. 如果在应用某个快照之前没有对当前状态获取新的快照,那么当前状态中的所有操作将会丢失

2. 应用快照后的"立即"状态和当前快照的下一级快照在同一级别

也就是说"快照B-1"和"立即"的父硬盘是同一个

快照的删除

删除快照是,执行以下过程

1. 删除在创建快照时的虚拟机配置文件副本

2. 删除在创建快照时的内存副本

3. 关闭虚拟机,AVHD中的内容被合并到父磁盘中,AVHD文件被删除

注意:

删除快照树,该树下的所有子快照将被全部删除,如果该快照属下没有快照被应用,该快照树下所有快照的AVHD文件将被立即删除

有关虚拟机快照的注意事项

在许多设置中,您需要重新创建不同的计算环境并在这些环境中再现各种状况,此时快照可帮助您提高效率。例如,软件开发和测试、技术支持服务以及培训课程开发。

但是,使快照在某些设置中有用且有效的强大功能和灵活性,在其他设置中却可能导致意外和潜在的严重后果。这些后果包括在未正确管理快照时意外丢失数据的固有风险。例如,如果编辑连接到具有快照的虚拟机的虚拟硬盘,则可能发生数据丢失。

使用快照的适当设置为开发和测试活动,包括使用虚拟机作为暂存服务器以在将更新和修补程序部署到生产服务器之前对其进行测试。建议您不要在提供时间敏感服务(如 Active Directory 服务)的虚拟机上使用快照,或在性能或存储空间可用性至关重要时使用快照。

此外,在开始使用快照之前,应注意以下事项:

· 获取快照将降低虚拟机的性能(在创建快照时)。对于在生产环境中提供服务的虚拟机,不应在其上使用这些快照。

· 建议您不要在配置有固定虚拟硬盘的虚拟机上使用快照,因为这些快照会降低使用固定虚拟硬盘本应获得的性能收益。

· 快照需要充足的存储空间。快照以 .avhd 文件的形式存储在虚拟硬盘上的同一位置。获取多个快照可能会快速消耗大量存储空间。使用 Hyper-V 管理器删除快照时,将从快照树删除快照,但在关闭虚拟机之前,不会删除 .avhd 文件。

· 虚拟机快照与由卷影复制服务 (VSS) 创建的快照不同。虚拟机快照可以是一种有用的创建虚拟机临时备份的方式,但它不能替代永久备份解决方案

http://yyimen.blog.163.com/blog/static/1797840472011466747552/

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/smeyou/article/details/8548771

智能推荐

杰奇安装 mysql失败_centos 6.9 X86 +wine(net2.0)+宝塔+杰奇 出现 mysqld.sock 错误_喵姐姐的小尾巴的博客-程序员宅基地

先安装宝塔 再装杰奇,访问无问题现在开始安装 VNC+wine 1.8yum install epel-releaseyum install wine (设置为 win 2008 R2 )安装 winetricks(安装 net 组件)这个是为了装关关采集。现在问题来了。杰奇会出现这个问题。Can't connect to local MySQL server through socket '/v...

arduino传感器专题介绍(3)_河西石头的博客-程序员宅基地

在前面两篇《arduino传感器专题介绍》中,我们比较详细的介绍了温度传感器,这篇开始我们来了解距离传感器。与温度传感器一样,用于测量距离的传感器也比较多,其工作原理各异,但最终都是通过对返回信号的检测来完成的。所以,我们很容易理解,按照这种原理来进行测距,其公式我们很熟悉:上图的超声波传感器是我们最熟悉的,我们就从超声波传感器开始。1、超声波传感器超声波传感器使用高频率的声波来进行测...

基于shamir 门限和html 标签id 的网页水印方法,基于Shamir门限和html标签id的网页水印方法..._反海的博客-程序员宅基地

Abstract:Html webpage watermarking technology is a information hiding technology branch, at present several methods have been proposed, but compared to other watermark technology, there still exist pr...

Vue组件的操作-自定义组件,动态组件,递归组件_掘金-我是哪吒的博客-程序员宅基地

作者 | Jeskson来源 | 达达前端小酒馆v-model双向绑定创建双向数据绑定,v-model指令用来在input,select,checkbox,radio等表单控件。v-model指令在内部使用不同的属性为不同的输入元素抛出不同的事件。v-mdel指令实现数据的双向绑定:<div> 用户名:<input type="text" v-model="na...

贪心之畜栏保留问题_4145 畜栏保存问题_xutian_curry的博客-程序员宅基地

注意需要进行两个排序,第一是对牛的开始时间进行从小到大排序,表示进栏的顺序第二是用队列对牛的的结束时间从小到大排序#include <iostream>#include <stdio.h>#include <memory.h>#include <memory>#include <math.h>#include <algor...

随便推点

Linux中添加计划任务与Elasticsearch日志自动清理_a616735104的博客-程序员宅基地

一、简述  当日志发送到ELK之后,Elasticsearch随着日志的增加,占用磁盘量会越来越大。这时候,需要我们写角本定期DELETE日志。角本写法,也很简单,只是发送HTTP的DELETE方式到:http://<ip>:<port>/*-yyyy.MM.dd*即可。  二、定期删除Elasticsearch中日志的角本:新建一个es-ind...

Hadoop的eclipse的插件是怎么安装的?_土地公公爷的博客-程序员宅基地

1)网上下载hadoop-eclipse-plugin-2.7.4.jar,将该jar包拷贝到Eclipse安装目录下的dropins文件夹下,我的目录是C:\Users\test\eclipse\jee-oxygen\eclipse\dropins,然后重启Eclipse就可以看到MapReduce选项了。2)启动eclipse,点开Windows->preferences,弹出如下对话...

代码审计工具_weixin_33895695的博客-程序员宅基地

2019独角兽企业重金招聘Python工程师标准>>> ...

Unity 人物方向旋转详细讲解_unity 人物旋转_类人_猿的博客-程序员宅基地

人物的旋转有很多种这里介绍旋转使用四元数的方法Quaternion.LookRotation(Vector3 dir);Quaternion.Lerp(Quaternion a, Quaternion b, float t);一、在介绍之前我们需要理解Unity的向量也就是Vector3首先我们创建一个Unity的脚本,将坐标系用Unity画出来如下图中白球的位置为0,0,0坐标的原...

使用 rocketmq-spring-boot-starter 来配置、发送和消费 RocketMQ 消息_阿里云云栖号的博客-程序员宅基地

简介:本文将 rocktmq-spring-boot 的设计实现做一个简单的介绍,读者可以通过本文了解将 RocketMQ Client 端集成为 spring-boot-starter 框架的开发细节,然后通过一个简单的示例来一步一步的讲解如何使用这个 spring-boot-starter 工具包来配置,发送和消费 RocketMQ 消息。作者 | 辽天来源 |阿里巴巴云原生公众号导读:本文将 rocktmq-spring-boot 的设计实现做一个简单的介绍,读者可以通过本文了解将 ..

TensorFlow2.4使用GPU计算报错:_,一亅com的博客-程序员宅基地

TensorFlow2.4使用GPU计算报错:tensorflow.python.framework.errors_impl.InternalError: Blas GEMM launch failed : a.shape=(2560, 256), b.shape=(256, 256), m=2560, n=256, k=256 [Op:MatMul]解决方法:1.重启电脑试试2.在文件开头添加from tensorflow.compat.v1 import ConfigProtofrom t

推荐文章

热门文章

相关标签