热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

【VMware】快照笔记

当我们在虚拟机上做实验或测试时、难免碰到一些不熟悉的地方、此时做个快照、备份一下当前的系统状态一旦操作失误、可以很快还原到出错前的状态、完成实验最终避免一步的失误导致重新开始整个实
当我们在虚拟机上做实验或测试时、难免碰到一些不熟悉的地方、此时做个快照、备份一下当前的系统状态
一旦操作失误、可以很快还原到出错前的状态、完成实验
最终避免一步的失误导致重新开始整个实验或测试的后果
当然、快照的功能远不止这个、

⑴ 定义

快照的英文就是 Snapshot、是对某一个特定文件系统在某一个特定时间时的一个具有只读属性的镜像
也就是、磁盘"快照"是我们在某个时刻'抓住时机'对虚拟机磁盘文件(vmdk)所进行的备份
当你创建一个快照,则那些现在可写的在那个点上将变成了只读
如果你创建了多个快照,那么你便有多个还原点可供恢复

⑵ 磁盘空间使用及增长率

快照文件最初很小(16M左右)
快照的增长率由服务器上磁盘的write I/O频度决定

⑶ 快照所含的文件类型

① vm_name-Δ.vmdk


比如:exam1-rhel5.4-000001-s011.vmdk
当你创建一个快照时,这些是特定的文件

Δ文件是基于vmdk上的变更位图,因此,它不能增长到比vmdk还大
例如:
RHEL5.8-s001.vmdk 为 1936000 K 则当创建一个快照时:RHEL5.8-s001.vmdk的大小为1935872 K

为虚拟机创建每一个快照时,都会创建一些Δ文件
当snapshot被删除或在snapshot manager里被恢复时,这些文件将自动删除

② vm_name.vmsd

比如:exam1-rhel5.4.vmsd
用于存储关于快照的元数据,为文本格式
包括快照显示名称(snapshot#.displayName)、UID和磁盘文件名等
在你没创建快照之前,这个文件的初始大小是0字节
也就是说,只要进行快照,这个文件就会增大和持续更新

在快照被delete后,这个文件不能被完全清除,一旦移除一个快照,它仍然会保留snapshot的UID

例子:

.encoding = "GBK"
snapshot.lastUID = "7"
snapshot.current = "6"
snapshot.mru0.uid = "6"
snapshot.mru1.uid = "7"
snapshot.mru2.uid = "5"
snapshot.mru3.uid = "1"
snapshot0.uid = "1"
snapshot0.filename = "exam1-rhel5.4-Snapshot1.vmsn"
snapshot0.displayName = "rhel5.4"
snapshot0.description = "系统刚安装好,环境刚配置完成,数据库软件还未安装"
snapshot0.createTimeHigh = "314967"
snapshot0.createTimeLow = "-495362528"
snapshot0.numDisks = "2"
snapshot0.disk0.fileName = "exam1-rhel5.4.vmdk"
snapshot0.disk0.node = "scsi0:0"
snapshot0.disk1.fileName = "exam1-rhel5.4-swap0.vmdk"
snapshot0.disk1.node = "scsi0:1"
snapshot1.uid = "5"
snapshot1.filename = "exam1-rhel5.4-Snapshot5.vmsn"
snapshot1.parent = "1"
snapshot1.displayName = "database sofe 10.2.0.2"
snapshot1.description = "1、只安装了数据库软件10.2.0.2|0D|0A2、实验脚本已上传"
snapshot1.createTimeHigh = "314971"
snapshot1.createTimeLow = "1951457584"
snapshot1.numDisks = "2"
snapshot1.disk0.fileName = "exam1-rhel5.4-000001.vmdk"
snapshot1.disk0.node = "scsi0:0"
snapshot1.disk1.fileName = "exam1-rhel5.4-swap0-000001.vmdk"
snapshot1.disk1.node = "scsi0:1"
snapshot2.uid = "6"
snapshot2.filename = "exam1-rhel5.4-Snapshot6.vmsn"
snapshot2.parent = "5"
snapshot2.displayName = "orcl emrep agent"
snapshot2.description = "1、手工建好orcl|0D|0A2、dbca建好emrep|0D|0A3、agent安装好"
snapshot2.createTimeHigh = "315010"
snapshot2.createTimeLow = "-2126901256"
snapshot2.numDisks = "2"
snapshot2.disk0.fileName = "exam1-rhel5.4-000002.vmdk"
snapshot2.disk0.node = "scsi0:0"
snapshot2.disk1.fileName = "exam1-rhel5.4-swap0-000002.vmdk"
snapshot2.disk1.node = "scsi0:1"
snapshot3.uid = "7"
snapshot3.filename = "exam1-rhel5.4-Snapshot7.vmsn"
snapshot3.parent = "6"
snapshot3.displayName = "physical datagurad"
snapshot3.description = "orcl配置了physical datagurad"
snapshot3.createTimeHigh = "315133"
snapshot3.createTimeLow = "1864149632"
snapshot3.numDisks = "2"
snapshot3.disk0.fileName = "exam1-rhel5.4-000003.vmdk"
snapshot3.disk0.node = "scsi0:0"
snapshot3.disk1.fileName = "exam1-rhel5.4-swap0-000003.vmdk"
snapshot3.disk1.node = "scsi0:1"
snapshot.numSnapshots = "4"



③ vm_name-.vmsn

比如:exam1-rhel5.4-Snapshot1.vmsn
snapshot的状态文件,里面存储的是使用快照时,一台虚拟机精确的运行状态
该文件取决于你是否保留这台虚拟机的存储作为snapshot的一部分
如果你选择保留虚拟机的存储,那么这个文件比较大,然后会分配给虚拟机最大的内存

⑷ 删除或恢复快照

--删除


删除所有snapshot,所有创建的Δ文件被合并到虚拟机原先的vmdk,然后被删除
删除一个snapshot,这个快照合并到它的父级快照

--恢复

无论你恢复哪个快照,这个快照就成为新的父级快照
在snapshot manager里可以看见这个父级快照,在它的下面有一个标签"you are here"

⑸ 磁盘空间和删除多个快照

这里有个经验:
事先在vmware虚拟机文件系统(vmfs)卷上为快照文件预留大概1/4虚拟机总磁盘的大小的磁盘空间

只有一个snapshot的虚拟机在删除快照时不需要额外的磁盘空间;不过,如果你有许多snapshot,当删除所有快照时
你将需要额外的磁盘空间,这是由于这些snapshot要合并到原始vmdk

例如:
假设你要删除有三个快照的虚拟机上的所有快照:S1 S2 S3
首先,S3将合并到S2,S2的大小将增加
接下来,S2合并到S1,S1的大小也将增加
最后,S1将合并到原始磁盘文件,这不需要额外的磁盘空间
当原始磁盘文件在整个操作结束时更新,这时快照文件才被删除,而不是每个合并过程时删除
因此,当删除它们时,拥有20GB快照文件的虚拟机可能需要额外的20GB

所以,使用较少额外磁盘空间来删除多个快照的解决办法是一个一个删除它们,从虚拟机父级快照开始到子级
使用这种方法,当快照被合并到先前的快照,只有先前快照增加了,然后删除

注意:当虚拟机有一个快照运行时,不要运行Windows磁盘碎片整理。碎片整理操作会改变许多磁盘块并能引起快照文件急速增加

⑹ 多长时间删除快照

活动了很长时间的快照(因此变得很大)在删除时需要很长时间
快照删除需要的时间的变化取决于虚拟机活动等级;当关闭虚拟机时,删除时间短
100GB的快照需要3到6小时合并到原始磁盘,这将影响虚拟机的性能
正因如此,你应该限制保留快照的时间长度,在你不需要它们时就删除

⑺ 使用快照备份运行着的虚拟机

snapshot在某种程度上就是一种备份
当虚拟机开着时,快照提供了一个备份原始VMDK文件的好办法
所有的写入操作在原始文件上暂停了,因此,复制它在另一个存储卷上是很安全的

⑻ 快照和克隆的区别




推荐阅读
  • 本文详细介绍了网络存储技术的基本概念、分类及应用场景。通过分析直连式存储(DAS)、网络附加存储(NAS)和存储区域网络(SAN)的特点,帮助读者理解不同存储方式的优势与局限性。 ... [详细]
  • 深入解析Redis内存对象模型
    本文详细介绍了Redis内存对象模型的关键知识点,包括内存统计、内存分配、数据存储细节及优化策略。通过实际案例和专业分析,帮助读者全面理解Redis内存管理机制。 ... [详细]
  • 本文详细介绍如何利用已搭建的LAMP(Linux、Apache、MySQL、PHP)环境,快速创建一个基于WordPress的内容管理系统(CMS)。WordPress是一款流行的开源博客平台,适用于个人或小型团队使用。 ... [详细]
  • PHP 过滤器详解
    本文深入探讨了 PHP 中的过滤器机制,包括常见的 $_SERVER 变量、filter_has_var() 函数、filter_id() 函数、filter_input() 函数及其数组形式、filter_list() 函数以及 filter_var() 和其数组形式。同时,详细介绍了各种过滤器的用途和用法。 ... [详细]
  • 本文详细探讨了HTML表单中GET和POST请求的区别,包括它们的工作原理、数据传输方式、安全性及适用场景。同时,通过实例展示了如何在Servlet中处理这两种请求。 ... [详细]
  • 方法:1 配置数据库basediros.path.abspath(os.path.dirname(__file__))  #获取当前文件的绝对路径appFlask(__name__ ... [详细]
  • 20100423:Fixes:更新批处理,以兼容WIN7。第一次系统地玩QT,于是诞生了此预备式:【QT版本4.6.0&#x ... [详细]
  • 本文深入探讨了HTTP请求和响应对象的使用,详细介绍了如何通过响应对象向客户端发送数据、处理中文乱码问题以及常见的HTTP状态码。此外,还涵盖了文件下载、请求重定向、请求转发等高级功能。 ... [详细]
  • 本文探讨了在 OpenStack 环境中使用虚拟机部署 Ceph 集群后,外部服务器通过浮动 IP 无法访问该集群的问题,并提供了详细的解决方案。 ... [详细]
  • 随着Redis功能的不断增强和稳定性提升,其应用范围日益广泛,成为软件开发人员不可或缺的技能之一。本文将深入探讨Redis集群的部署与优化,包括主从备份机制、哨兵模式以及集群功能,帮助读者全面理解并掌握Redis集群的应用。 ... [详细]
  • 本文详细介绍了如何通过RPM包在Linux系统(如CentOS)上安装MySQL 5.6。涵盖了检查现有安装、下载和安装RPM包、配置MySQL以及设置远程访问和开机自启动等步骤。 ... [详细]
  • 本文探讨了Java编程的核心要素,特别是其面向对象的特性,并详细介绍了Java虚拟机、类装载器体系结构、Java类文件和Java API等关键技术。这些技术使得Java成为一种功能强大且易于使用的编程语言。 ... [详细]
  • 尽管深度学习带来了广泛的应用前景,其训练通常需要强大的计算资源。然而,并非所有开发者都能负担得起高性能服务器或专用硬件。本文探讨了如何在有限的硬件条件下(如ARM CPU)高效运行深度神经网络,特别是通过选择合适的工具和框架来加速模型推理。 ... [详细]
  • 本主题面向IT专业人士,介绍了Windows Server 2012 R2和Windows Server 2012中的组托管服务账户(gMSA),涵盖了其应用场景、功能改进、硬件和软件要求以及相关资源。 ... [详细]
  • 配置多VLAN环境下的透明SQUID代理
    本文介绍如何在包含多个VLAN的网络环境中配置SQUID作为透明网关。网络拓扑包括Cisco 3750交换机、PANABIT防火墙和SQUID服务器,所有设备均部署在ESXi虚拟化平台上。 ... [详细]
author-avatar
mobiledu2502883317
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有