热门标签 | 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文件的好办法
所有的写入操作在原始文件上暂停了,因此,复制它在另一个存储卷上是很安全的

⑻ 快照和克隆的区别




推荐阅读
  • 本文详细介绍了如何安全地手动卸载Exchange Server 2003,以确保系统的稳定性和数据的完整性。根据微软官方支持文档(https://support.microsoft.com/kb833396/zh-cn),在进行卸载操作前,需要特别注意备份重要数据,并遵循一系列严格的步骤,以避免对现有网络环境造成不利影响。此外,文章还提供了详细的故障排除指南,帮助管理员在遇到问题时能够迅速解决,确保整个卸载过程顺利进行。 ... [详细]
  • SQL Server 2005 在安装过程中通常会伴随 VS2005 一起安装,并且为了便于数据库管理,还会安装 Management Studio Express 管理工具。然而,在实际使用中,用户可能会遇到登录故障。本文综合分析了这些登录问题的常见原因,并提供了多种有效的解决方法,包括检查配置设置、验证账户权限和网络连接等。通过这些措施,用户可以有效地诊断并解决 SQL Server 2005 的登录问题。 ... [详细]
  • 在MySQL中更新密码时,首先需要在DOS窗口中切换到mysql安装目录,并使用`--skip-grant-tables`参数启动MySQL服务,以跳过权限表验证。接着,在MySQL命令行中执行相应的SQL语句来设置新密码。完成密码更新后,重启MySQL服务以使更改生效。此外,对于电脑快捷方式的修改,可以通过右键点击快捷方式,选择“属性”,在弹出的窗口中进行路径或目标的修改,最后点击“应用”和“确定”保存更改。 ... [详细]
  • MySQL 数据备份与恢复的常见方法及其实践经验总结。物理备份涉及直接复制数据库文件,适用于大规模数据库环境,但无法在异构系统(如 Windows)中恢复。逻辑备份则侧重于导出建表语句和数据插入语句,便于跨平台迁移和部分数据恢复。此外,本文还探讨了增量备份、全量备份以及使用工具如 mysqldump 和 Percona XtraBackup 的具体应用场景和优缺点。 ... [详细]
  • 如何使用R语言高效连接并操作MySQL数据库
    如何使用R语言高效连接并操作MySQL数据库 ... [详细]
  • MongoDB核心概念与基础知识解析
    MongoDB 是一种基于分布式文件存储的非关系型数据库系统,主要采用 C++ 语言开发。本文将详细介绍 MongoDB 的核心概念和基础知识,包括其与传统 SQL 数据库的区别,数据库及集合的基本操作,如数据的插入、更新、删除和查询等。通过本文,读者可以全面了解 MongoDB 的基本功能及其应用场景。 ... [详细]
  • Node.js 配置文件管理方法详解与最佳实践
    本文详细介绍了 Node.js 中配置文件管理的方法与最佳实践,涵盖常见的配置文件格式及其优缺点,并提供了多种实用技巧和示例代码,帮助开发者高效地管理和维护项目配置,具有较高的参考价值。 ... [详细]
  • 关系型数据库管理系统(RDBMS)的核心术语包括:数据库,即一组相互关联的表;数据表,表现为数据的二维结构,类似于电子表格;列,用于存储同一类型的数据元素,如邮政编码等。这些术语在RDBMS的设计和应用中具有重要意义。 ... [详细]
  • HDU1176:免费馅饼问题的动态规划解法分析
    题目“免费馅饼”通过动态规划方法进行了解析。该问题的时间限制为 Java 2000ms 和其他语言 1000ms,内存限制为 Java 65536K 和其他语言 32768K。本文详细探讨了如何利用动态规划算法高效求解此问题,并对算法的时间复杂度和空间复杂度进行了深入分析。此外,还提供了具体的实现步骤和代码示例,帮助读者更好地理解和应用这一方法。 ... [详细]
  • 如何高效启动大数据应用之旅?
    在前一篇文章中,我探讨了大数据的定义及其与数据挖掘的区别。本文将重点介绍如何高效启动大数据应用项目,涵盖关键步骤和最佳实践,帮助读者快速踏上大数据之旅。 ... [详细]
  • 在处理遗留数据库的映射时,反向工程是一个重要的初始步骤。由于实体模式已经在数据库系统中存在,Hibernate 提供了自动化工具来简化这一过程,帮助开发人员快速生成持久化类和映射文件。通过反向工程,可以显著提高开发效率并减少手动配置的错误。此外,该工具还支持对现有数据库结构进行分析,自动生成符合 Hibernate 规范的配置文件,从而加速项目的启动和开发周期。 ... [详细]
  • 如何正确获取Oracle TNS_ADMIN环境变量的值
    如何正确获取Oracle TNS_ADMIN环境变量的值?TNS_ADMIN 是 Oracle 客户端配置中的一个重要环境变量,用于指定网络配置文件(如 tnsnames.ora)的路径。本文将详细介绍如何在不同操作系统中准确获取该变量的值,并提供实用的命令和步骤,帮助用户确保 Oracle 客户端的网络连接配置正确无误。 ... [详细]
  • 英语面试技巧:提升个人技能与表现
    在英语面试中,个人技能是指除专业知识外,能够促进职业发展的各种能力。虽然你可能具备多种技能,但建议重点突出与目标岗位最相关的几项,以增强面试官对你专业能力和适应性的认可。 ... [详细]
  • Go 项目中数据库配置文件的优化与应用 ... [详细]
  • 本文详细探讨了MySQL并发参数的优化与调整方法,旨在帮助读者深入了解如何通过合理配置这些参数来提升数据库性能。文章不仅介绍了常见的并发参数及其作用,还提供了实际操作中的调整策略和最佳实践,适合希望提高数据库管理技能的技术人员阅读。 ... [详细]
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社区 版权所有