VMware环境虚拟机快照操作最佳实践

简介:

介绍

 

      VMware快照可保存虚拟机在特定时刻的状态和数据,包括虚拟机的电源状态(例如,打开电源、关闭电源、挂起),以及组成虚拟机的所有文件(磁盘、内存和其他设备如虚拟网络接口)。虚拟机提供了多个用于创建和管理快照及快照链的操作。通过这些操作,用户可以创建快照、还原到链中的任意快照以及移除快照。可以创建多种快照树。

      本文将介绍进行VMware快照操作的最佳实践。

更多信息

 

快照如何工作:

 

      VMware API允许VMware和第三方产品利用虚拟机及其快照执行操作。以下是可以使用我们的API对虚拟机和快照执行的常见操作列表:

·         CreateSnapshot:创建新的虚拟机快照。作为一个副作用,该操作将更新当前快照。

·         RemoveSnapshot:移除快照并删除任何关联的存储。

·         RemoveAllSnapshots:移除所有与虚拟机关联的快照。如果虚拟机没有任何快照,则此操作将成功返回。

·         RevertToSnapshot:将虚拟机的执行状态更改为此快照的状态。这等同于使用 vSphere/VI Client GUI 时快照管理器下的“转至”选项。

·         Consolidate:合并重做日志的层次结构。该操作仅在 vSphere 5.0 及更高版本中可用。

      以下是在VMware环境中处理如何创建、移除或恢复快照请求的高级别概述:

1.     创建、移除或恢复虚拟机快照的请求将使用VMware API从客户端发送到服务器。

2.     该请求将转发到当前托管存在问题的虚拟机的VMware ESX主机。

注意:只有在原始请求发送到其他服务器(例如管理ESX主机的vCenter)时才会发生此情况。

  1. 3.     如果快照包括内存选项,则ESX主机会将虚拟机内存写入磁盘。

注意:在整个写入内存期间虚拟机将处于停止状态。无法预先计算停止时间的长度,该时间长度取决于存在问题的磁盘的性能和写入的内存量。ESXi/ESXi 4.x和更高版本在写入内存时的停止时间较短。

  1. 4.     如果快照包括静默选项,则ESX主机将请求客户机操作系统通过VMware Tools静默磁盘。

注意:视客户机操作系统而定,静默操作可以通过同步驱动程序、vmsync模块或Microsoft卷影复制服务(VSS)完成。

  1. 5.     ESX主机对虚拟机快照数据库(.vmsd文件)进行相应的更改,这些更改反映在虚拟机的快照管理器中。

注意:移除快照时,快照管理器中的快照实体将在对子磁盘进行更改之前移除。从子磁盘继续运行虚拟机时,快照管理器不包含任何快照条目。

  1. 6.     ESX主机会调用与虚拟磁盘API函数类似的函数,对子磁盘(-delta.vmdk  .vmdk文件)和磁盘链进行更改。

注意:移除快照期间,如果子磁盘很大,则操作可能需要较长时间。这可能导致VirtualCenterVMware Infrastructure Client中出现超时错误消息。

子磁盘

      使用快照创建的子磁盘是稀疏磁盘。稀疏磁盘采用写入时复制 (COW) 机制,其中虚拟磁盘不包含任何数据,直到通过写入操作将数据复制到磁盘。此优化可节省存储空间。粒度是稀疏磁盘使用写入时复制机制的度量单位。每个粒度均是一个包含虚拟磁盘数据的扇区块。默认大小为128个扇区或64 KB

      注意:稀疏磁盘通常创建为VMFSSPARSE类型。自vSphere 5.5开始,对于大小为2TB或更大的任意vmdk,稀疏磁盘的类型均为SESPARSE

      重要的是要注意以下有关子磁盘空间利用率的要点:

·         如果虚拟机正在运行快照,则其正在对子磁盘或稀疏磁盘进行更改。对该磁盘执行的写入操作越多,该磁盘就会变得越大,直至达到上限(基础磁盘大小与少量开销之和)。

·         在子磁盘的空间要求中,除了其所依赖的父磁盘的空间要求之外还有附加要求。如果虚拟机具有一个带子磁盘的10 GB磁盘,则使用的空间为10 GB+子磁盘的大小+.vmsn文件大小+开销。

·         子磁盘会增长得很大,乃至填满整个数据存储,但这是因为包含数据存储的LUN不够大,无法容纳基础磁盘、已创建的快照数量、相关开销和已创建的.vmsn文件。

·         子磁盘的增长速度直接取决于对磁盘执行的I/O量。

·         子磁盘的大小对删除与子磁盘关联的快照所用的时间有直接影响。

磁盘链

      通常,首次创建快照时,将通过父磁盘创建第一个子磁盘。连续快照将从链上的最后一个子磁盘生成新的子磁盘。如果快照链中有多个分支,则关系可能会发生更改。

      下图是快照链的示例。每个正方形表示上面部分所述的一个数据块或粒度:

snapshot.jpg

      警告:手动操作单个子磁盘或任意快照配置文件可能会影响磁盘链。由于可能会导致数据丢失,VMware不建议手动修改磁盘链。

 

最佳实践:

 

·         快照不是备份。由于快照文件仅仅是原始虚拟磁盘的变更日志,请不要依赖它完成直接备份过程。虚拟机基于最新快照(而不是原始 vmdk 磁盘文件)运行。

·         快照不是原始VMDK磁盘文件的完整副本。快照文件中的变更日志与原始磁盘文件相结合,共同构成虚拟机的当前状态。如果删除基础磁盘,快照文件将毫无用处。

·         快照文件可以增大到与原始基础磁盘文件相同的大小,因此,虚拟机配置的存储容量的增加值等于虚拟机的原始容量乘以虚拟机上的快照数量。

·         一个链中支持的最大数量为32个。但是,VMware建议您在一个链中只使用23个快照。

·         使用的单个快照不要超过24-72小时。

o    这可以防止快照变得过大,以致删除快照/提交快照到原始虚拟机磁盘时引起问题。请创建快照,对虚拟机进行更改,然后在您确认虚拟机处于正常工作状态后立即删除/提交快照。

o    对于电子邮件和数据库服务器等高事务量虚拟机上使用的快照要格外用心。这些快照会很快增大,充满数据存储空间。当您确认您所测试的过程处于正常的工作状态后,请立即提交这些虚拟机上的快照。

·         如果使用与快照相关的第三方产品(如虚拟机备份软件),请定期监测为备份而配置的系统,以确保没有快照在很长一段时间内一直处于活动状态。

o    快照只应在备份过程期间存在。

o    通过第三方软件(通过API调用)创建的快照可能不会显示在vCenter快照管理器中。请定期通过命令行检查快照。

·         链中存在过多快照或快照容量太大可能会降低虚拟机和主机的性能。

·         配置自动vCenter Server警报,当从快照中运行虚拟机时将触发警报。

·         确认执行Storage vMotion之前不存在任何快照(通过命令行)。如果存在快照,则在执行Storage vMotion之前删除它们。

·         确认在增加任何虚拟机的虚拟磁盘或虚拟RDM容量之前不存在任何快照(通过命令行)。如果存在快照,则在增加磁盘容量之前删除它们。增加包含快照的磁盘的容量可能会导致快照损坏和潜在的数据丢失。

参考

 

VMware KB: Best practices for virtual machine snapshots in the VMware environment

VMware KB: Understanding virtual machine snapshots in VMware ESXi and ESX

应用于

 

VMware















本文转自bard_zhang51CTO博客,原文链接: http://blog.51cto.com/timefiles/1956299  ,如需转载请自行联系原作者


相关文章
|
23天前
|
存储 SQL 数据挖掘
虚拟化数据恢复—VMware虚拟机vmdk文件被误删除的数据恢复案例
虚拟化数据恢复环境: 某品牌服务器(部署VMware EXSI虚拟机)+同品牌存储(存放虚拟机文件)。 虚拟化故障: 意外断电导致服务器上某台虚拟机无法正常启动。查看虚拟机配置文件发现这台故障虚拟机除了磁盘文件以外其他配置文件全部丢失,xxx-flat.vmdk磁盘文件和xxx-000001-delta.vmdk快照文件还在。管理员联系VMware工程师寻求帮助。VMware工程师尝试新建一个虚拟机来解决故障,但发现ESXi存储空间不足。于是将故障虚拟机下的xxx-flat.vmdk磁盘文件删除,然后重建一个虚拟机并且分配固定大小的虚拟磁盘。
|
2月前
|
测试技术 Linux 虚拟化
iOS自动化测试方案(五):保姆级VMware虚拟机安装MacOS
详细的VMware虚拟机安装macOS Big Sur的保姆级教程,包括下载VMware和macOS镜像、图解安装步骤和遇到问题时的解决方案,旨在帮助读者顺利搭建macOS虚拟机环境。
60 3
iOS自动化测试方案(五):保姆级VMware虚拟机安装MacOS
|
2月前
|
编解码 Linux 虚拟化
超详细VMware虚拟机安装Win10操作系统过程图解
这篇文章提供了一个详细的VMware虚拟机安装Windows 10操作系统的图解教程,包括了从创建虚拟机到安装操作系统的全过程,以及安装后的一些基本设置,如屏幕分辨率调整等。作者还提到了后续会分享关于磁盘分区的创建过程。
超详细VMware虚拟机安装Win10操作系统过程图解
|
2月前
|
应用服务中间件 nginx Docker
本地通过域名访问虚拟机上nginx的服务、搭建域名访问环境一(反向代理配置)
这篇文章介绍了如何通过域名在本地访问虚拟机上的nginx服务,包括创建nginx容器、修改配置文件、修改本地host文件以及进行访问测试的详细步骤。文章提供了具体的Docker命令来创建并配置nginx容器,展示了配置文件的修改示例,说明了如何在本地系统的hosts文件中添加虚拟机IP和自定义域名,以及如何通过浏览器进行测试访问。
本地通过域名访问虚拟机上nginx的服务、搭建域名访问环境一(反向代理配置)
|
1月前
|
Ubuntu 开发工具 虚拟化
MacOS系统基于VMware Fusion配置Ubuntu 22.04LTS环境
这篇文章介绍了如何在MacOS系统上使用VMware Fusion虚拟化软件配置Ubuntu 22.04 LTS环境,包括自定义VMware Fusion网段、Ubuntu系统安装、配置root用户登录、设置静态IP地址、修改默认网卡名称、配置PS1变量、设置登录界面为字符界面、修改软件源和进行vim基础优化等步骤。
109 2
|
2月前
|
虚拟化
vmware虚拟机使用主机代理访问谷歌
vmware虚拟机使用主机代理访问谷歌
|
2月前
|
机器学习/深度学习 Ubuntu Linux
【机器学习 Azure Machine Learning】使用Aure虚拟机搭建Jupyter notebook环境,为Machine Learning做准备(Ubuntu 18.04,Linux)
【机器学习 Azure Machine Learning】使用Aure虚拟机搭建Jupyter notebook环境,为Machine Learning做准备(Ubuntu 18.04,Linux)
|
2月前
|
API 网络架构 开发者
【Azure 环境】调用Azure RunCommand 的REST API 设置虚拟机的环境变量(SetEnvironmentVariable)
【Azure 环境】调用Azure RunCommand 的REST API 设置虚拟机的环境变量(SetEnvironmentVariable)
|
2月前
|
安全 Windows
【Azure 环境】Azure 的PaaS服务如果涉及到安全漏洞问题后,我们如何确认所用服务的实例(VM:虚拟机)的操作系统已修复该补丁呢?
【Azure 环境】Azure 的PaaS服务如果涉及到安全漏洞问题后,我们如何确认所用服务的实例(VM:虚拟机)的操作系统已修复该补丁呢?
|
2月前
|
安全 网络安全
【Azure 环境】当本地网络通过ER专线与Azure云上多个虚拟网络打通,如何通过特定的网络策略来限制本地部分网段访问云上虚拟机22端口?
【Azure 环境】当本地网络通过ER专线与Azure云上多个虚拟网络打通,如何通过特定的网络策略来限制本地部分网段访问云上虚拟机22端口?
下一篇
无影云桌面