如何创建虚拟机备份并避免一些常见错误

在虚拟化环境下进行备份和在物理环境中是不同的。虽然虚拟机备份的方式有很多,但由于虚拟化环境的特点,可能会遇到很多意想不到的问题。在本篇文章中我们会讲解如何高效的创建虚拟机备份并避免一些常见错误。

不建议通过客户端备份虚拟机

在备份虚拟机时候,采用客户端操作系统的方式备份是最为常见的误区。你不能使用传统的在客户端操作系统上安装代理的备份方式来处理虚拟机备份。这种方式的问题之一就是低效性,原因是在于虚拟层所处的位置在物理硬件以及客户端操作系统之间。因而客户端操作系统没有对物理设备上存储数据的直接访问权限,这样而来,备份的时候如果采用这种方式,宿主机上的代理就必须要通过虚拟层去访问虚拟机上的数据。这样的方法带来的另外一个问题是,会造成主机端没有必要的资源消耗,并且如果是遇到多个备份并行进行,还可能造成瓶颈问题。

替代的方法是,备份服务器应该直接访问虚拟层而不是走客户端虚拟机。通过这样的方法,虚拟机操作系统就不会参与到备份进程里,也不会消耗宿主机上的资源。相比于之前的方式,这样的方式显得更为有效率,因为备份服务器可以直接将虚拟机磁盘直接从主机的data store挂载过来。这样的方式被称为镜像级备份,虚拟机的数据文件是以数据块级别的方式备份的,而不是传统的文件级别备份。使用镜像级备份需要使用可以调用VMware vStorage API的备份软件直接访问虚拟磁盘文件来完成。

需要特别建议的是,不要尝试直接在虚拟存储层备份虚拟机磁盘文件而绕过虚拟层。虚拟机操作系统以及虚拟磁盘在备份前需要处于特别的状态,而如果绕过虚拟层,这一系列变化将无法完成。

虚拟机快照并不是备份

虚拟机的快照保留了虚拟机做快照时候的状态。此外,多个快照可以保证有多个恢复点。在很多时候,这样的方式都会很有用,然而这并不能被作为主要的一个备份方式。其中的一个问题是,虚拟机的快照一旦被恢复到了其中一个还原点,就无法恢复到现在的状态。如果虚拟机现在的状态丢失了,那么仅能恢复到上一次做快照的状态。快照技术无法恢复单独文件,它能做的只是将整个虚拟机的状态进行恢复。快照技术还有另外的一些问题,比如说,它只是以16MB大小增量进行:虚拟机所在的LUN在进行容量增长的时候需要以锁定的状态进行,这样可以避免其他主机对相同的LUN进行写操作。

快照相关的操作大多数与SCSI有关,其过程大都会影响虚拟机的性能,因为需要等待LUN解锁。随着数据的写入,每个快照是单独的文件,这样下来,如果有大量的快照会产生磁盘空间的问题。快照的用途是短期的备用备份功能,例如有需要恢复到之前状态的情况,比如说虚拟机系统打过补丁或者应用升级后。

确保使用了正确的静默方式

大多数虚拟化备份应用在使用镜像级备份的时候都会忽视虚拟机里面本身的应用情况。在备份虚拟机的时候,需要事先确认里面的应用在备份前已经静默完成,这样以确保备份是完整连续的。如果没有使用正确的静默方式,备份的数据在恢复的时候可能会遇到不完整的问题。静默操作由虚拟机内置操作系统本身完成,对于微软操作系统来说,VSS将会帮助处理这一系列问题。由于备份服务器备份虚机的时候是在虚拟层完成的,而不是客户端操作系统里面,就需要另外的应用来告知客户端操作系统来静默虚拟机。

在vSphere环境下,第三方的应用叫VMware Tools,它会告知VSS服务来静默客户端操作系统。VMware Tools安装在客户端操作系统上并在操作系统和虚拟层之间来提高服务。

对于像Linux那样一些操作系统没有VSS这样的本地服务的系统来说,VMware Tools提供了特别的驱动程序以确保它们能提供像VSS一样的服务。因此VMware Tool是否安装在客户机里面尤为重要。当然,也有一些VMware Tools的版本并不支持相应的操作系统版本,因此在使用之前,建议了解该系统版本是否支持对应的应用服务。

许多的备份服务厂商都会提供相应的代理来应对VMware Tools提供的静默进程无法支持这样的服务。

谨慎的规划备份周期

虚拟机的本质上共享主机的,而主机则又共享存储设备,因此创建虚拟机备份的时候需要考虑到对资源的消耗情况。在一个虚拟化环境下,创建备份可能导致主机和虚拟机之间资源竞争的情况发生。即便是在虚拟层的备份会减少对虚拟机资源的占用,然而对主机以及存储设备的占用仍然是不能忽视的。

为了能避免集中的I/O写入对虚拟机带来的性能影响,建议用户在使用虚拟机备份的时候能减少并行虚拟机在主机和共享存储上运行的数量。主机通常在虚拟化环境中往往会共享同一个存储,在同一个共享存储上由多个并发虚拟机备份产生的资源紧张也会影响到其运行的主机。

同样的,在相同主机上如果有太多的虚拟机备份进程同时运行,将会造成主机上的性能瓶颈。

我们建议用户能谨慎的均衡好备份时间,以避免造成资源竞争这样的问题。不要指望哪一个虚拟机会告诉你问题在哪里,我们建议可以查看统计结果以判断。这将帮助你了解I/O的问题以及做出适当的调整。

不要让你的备份服务器资源紧张

备份服务器的基本原理很像水泵:数据从源端读取然后流进备份服务器,之后又被送到备份设备上。备份服务器可以处理的量取决于分配给它的资源,换句话说,资源越丰富,我们就能更快的将数据抽取上来。备份可以很大程度上占用网络和存储的资源,然而这并不是仅仅将数据由A传递到B,而是完整的备份过程。除了数据的拷贝和传递,还有重复数据删除,数据压缩的过程以判断还有哪些磁盘块上的数据需要备份。

为了能使备份服务器达到最大的吞吐性能,我们需要分配足够的资源以免达到瓶颈。

你需要监控备份服务器的资源使用情况:从实际情况上来说,宁肯让备份服务器占用更多的资源也不要让它的资源不够。如果需要备份的资源更多,那么很可能的是备份服务器也需要更多。如果能确保备份服务器有足够的资源调配,那么我们就能确保它能以最佳性能抽取数据并且能最大程度上缩短备份窗口。

虚拟化架构引入了许多传统物流环境下无法比拟的备份方式或手段。与虚拟化环境集成的备份应用可以利用这样一些的技术手段以提升备份的效率。 VMware公司为此特地开发了相关的API接口以方便第三方备份应用的调用,比如VADP接口,它能帮助备份应用直接与主机以及存储设备通信。VADP 提供了更为有效的虚拟磁盘文件的访问方式,例如像变更块追踪技术(CBT)等,将大大缩短原有备份所要的时间。

增量备份的关键是能判断出自上次备份后的改变量。CBT技术将查询虚拟机的VMkernal,里面将记录磁盘块改变的记录,通过快速查询,我们将很快的知道虚拟机的虚拟磁盘自上次指定时间后的变化量发生在哪些数据块上。

备份应用通常自己就能完成这些判断操作,因此越快的完成这些操作就意味着能更快的完成增量备份操作。

为了能实现最有效率的备份方式,我们建议能最大程度的采用虚拟化架构提供的备份接口以达到高效备份的效果。