本文分享自天翼云开发者社区《VMware的快照原理》,作者:m****n

VMware的快照是基于数据块的快照。快照也是以一个文件方式存在的,缺省位置和虚拟机在同一目录下,它是一个Delta文件。每一次的快照就会产生一个新的Delta文件,而以前的Delta文件就进入一个只读状态。并且它是以16MB的大小来进行增长的。

快照文件的最大大小是不可能超过原磁盘文件的大小。

快照的不同类型:

  1. *-delta.vmdk文件:这是当你对一个VM做一个快照时产生的差异文件,也就是一个redo-log文件。Delta文件是一个针对初始VMDK而产生变化的一个Bitmap。
  2. *.vmsd文件:这个一个是用来存放关于快照的metadata和相关信息的文件。它是一个文本文件,存放一些诸如快照名,UID,磁盘文件名等等。它起始大小是0字节,直到做了第一个快照时才会改变大小。
  3. *.vmsn文件:这是一个快照状态文件,它存放的是当你做快照时虚拟机的真实运行状态。它的大小据于你是否选择保留VM的内存作为快照的一部分相关。

命令行创建快照

vmware-cmd myvm1.vmx createsnapshot snap1 'before upgrade' 1 1".

The options for quiesce and memory are either 1 for yes or 0 for no.

快照的删除或恢复

当你删除一个VM的所有快照时,所有在快照时创建出来的Delta文件被融合回原来的VMDK文件,然后删除这些Delta文件。但当你只删除一个快照时,那么只有这个快照会融合回它的上一级快照。

当你恢复一个快照时,现有的磁盘和内存状态被丢弃,然后VM被带回到那个时间点的状态,而这个快照成为新的父级快照。父级快照不一定就是最新做的快照,它在快照管理器中被标注为“you are here”。

当你用vmware-cmd来做时,vmware-cmd removesnapshots会删除所有的快照,vmware-cmd revertsnapshot会复原到最近的快照。若你要删除或复原到某一个快照时,你不能用命令行而需要用VIC。

若你复原一个不包含内存状态的快照,当你将VM启动时,它将会应用前一个快照。

如何找到那些有快照的VM呢

到/vmfs/volumes目录下: 运行 find –iname “*-delta.vmdk” –mtime +7 –ls 可以找到在7天内没有改变的快照。运行 find –iname “*-delta.vmdk可以找到所有的快照文件。

如何改变快照文件的缺省位置:

在VM的配置文件VMX中加一句: workingDir=”/vmfs/volumes/Snapvolume/snapshots/”。

在做Vomtion时,若你的快照文件不在共享存储位置或新ESX主机不能访问快照文件时,当迁移做完时,VM会崩溃掉。所以,建议在做Vmotion时,最好先把快照commit掉。

快照与磁盘空间的关系: 

当一个VM只有一个快照时,当你删除或commit快照时,你不需要额外的空间。但当一个VM有多个快照时,当你删除所有快照时,你需要额外的空间。

假设你要删除一个VM的所有快照(snap1,snap2,snap3),首先,snap3将融合进snap2,这将导致snap2增长,接下来,snap2将融合进snap1,这会导致snap1增长。最后,snap1将融合进原来的VMDK,这不需要额外的空间。只有当VMDK文件融合操作完成时,快照才会被删除,所以当一个有20G大小快照的VM在做commit时潜在地需要额外的20G。

VMware的快照原理的更多相关文章

  1. VMware Snapshot 工作原理

    VMware中的快照是对VMDK在某个时间点的“拷贝”,这个“拷贝”并不是对VMDK文件的复制,而是保持磁盘文件和系统内存在该时间点的状态,以便在出现故障后虚拟机能够恢复到该时间点.如果对某个虚拟机创 ...

  2. 深入理解VMware虚拟机网络通信原理

    VMware虚拟机的上网方式有三种:NAT.桥接.仅主机模式,本篇介绍桥接模式和NAT模式. 1.实验环境 博主的实验环境如下: 宿主机操作系统:Windows 7 VMware Workstatio ...

  3. VMware的快照和克隆总结

    原文:https://www.cnblogs.com/zxz1987/p/6480833.html 多重快照功能简介:  快照的含义:对某一个特定文件系统在某一个特定时间内的一个具有只读属性的镜像.当 ...

  4. qcow2快照原理

    关键术语:cluster 一个Qcow2 img文件由固定大小的单元组成,该单元称为cluster,默认大小为65536bytes/64Ksector 数据块读写的最小单元,大小为512字节host ...

  5. 使用libvirtAPI打快照原理

    参考: https://blog.51cto.com/3646344/2096347 https://blog.51cto.com/3646344/2096351(磁盘外部快照) API接口: htt ...

  6. VMware NAT 设置原理

    1.网络地址转换(NAT):默认使用VMnet8 (强烈推荐) 这种访问模式指的是虚拟机不占用主机所在局域网的ip,通过使用主机的NAT功能访问局域网和互联网,意味着虚拟机可以访问局域网中的其他电脑, ...

  7. VMware 虚拟机快照、克隆、磁盘扩容

    1. 快照 快照是虚拟机某个时间点上完整系统的镜像,可以在虚拟机内部通过快照文件恢复系统到之前的节点. 拍摄快照: 恢复快照: 2. 克隆 克隆是原始虚拟机全部状态的一个拷贝,是脱离原始虚拟机独立存在 ...

  8. 基于LVM(逻辑卷管理)的快照原理

    一.为甚么不管多大的逻辑卷进行备份,快照都会在几秒之内完成? 快照在拍摄的一瞬间,系统会记录那个时间点逻辑卷的状态.数据等,此时拍下的快照相当于一张白纸.如图所示 快照做好后,随着时间的推移,源卷里的 ...

  9. mysql备份时的快照原理

    实际上实验的结果表明,这里的 the first such read指的是:对同一个表或者不同表进行的第一次select语句建立了该事务中一致性读的snapshot. 其它update, delete ...

  10. Redis快照原理详解

    本文对Redis快照的实现过程进行介绍,了解Redis快照实现过程对Redis管理很有帮助. Redis默认会将快照文件存储在Redis当前进程的工作目录中的dump.rdb文件中,可以通过配置dir ...

随机推荐

  1. php 安装使用 seaslog扩展

    这是一个高性能的日志记录扩展,能迅速帮你格式化的写入日志文件. 首先来看安装: sudo pecl install seaslog 一句话搞定,然后更新php.ini配置文件 添加启用以及一部分配置 ...

  2. C# 开发的环境监测上位机应用

    前言 在工业和科研领域,环境监测系统的重要性日益凸显.上位机软件作为环境监测系统的关键组成部分,负责数据采集.处理和显示,对提高监测效率和准确性起着至关重要的作用. 本文将向大家介绍一款用 C# 开发 ...

  3. Stratum挖矿协议&XMR挖矿流量分析

    目录 前言 区块链和挖矿相关概念 挖矿木马 挖矿协议Stratum Stratum工作过程 XMR挖矿流量分析 环境搭建 流量分析 总结 前言 之前参与了一个关于"挖矿行为检测"的 ...

  4. Converter Tutorial

    Setting up a simple example This is the most basic converter... let's start with a simple Person: pa ...

  5. 最全ECharts 实战大全(速记版+资源)

    hello,大家好,我是程序员海军,公众号已经快一年多没更新了,没更新的这段时间,我去哪了呢.这两年经历了很多事情,主要情感上占据大部分时间, 从失恋 - 谈对象 - 再失恋. 言归正传,近期我负责的 ...

  6. 无快不破,在本地 docker 运行 IDEA 里面的项目?

    目录 前言 Docker Compose 1. Docker Compose是什么? 2. Docker Compose 的具体步骤 3. 如何在IDEA项目里面使用Docker Compose 启动 ...

  7. k8s 实战 3----副本集

    副本集是什么?我们在前文中讲过什么是pod,简单来说pod就是k8s直接操作的基本单位.不了解的同学可以参考前文: k8s 实战 1 ---- 初识 (https://www.cnblogs.com/ ...

  8. Docker安装开源版obs对象存储服务minio,并后台运行

    ​​>Minio 是一个基于Apache License v2.0开源协议的对象存储服务,虽然轻量,却拥有着不错的性能.它兼容亚马逊S3云存储服务接口,非常适合于存储大容量非结构化的数据. 例如 ...

  9. 10C++选择结构(4)

    一.switch语句 问题:风之巅小学规定,若测试成绩大于或等于90分为"A",大于或等于70分小于90分为"B",大于或等于60分小于70分为"C& ...

  10. js面试题-代码实现

    新 API 最新的 url 参数获取的 API? URLSearchParams // 有如下一个url: http://localhost?a=1&b=2 function getUrlPa ...