虚拟化环境下的备份系统的架构以及相关操作与传统的备份环境区别很大,而且需要一些特殊的数据备份技术。本文中,你将会了解到一些最实用的VMware vShpere的备份最佳实践。
当遇到需要在VMware vShpere环境下备份其中的虚拟机时,你需要利用虚拟化所带来的机制以便最大化你的备份效率。同时你需要了解到底需要备份什么以及如何备份。另外,你不能用传统环境下的备份理念来备份一个虚拟环境。下面就是八条vShpere备份的最佳实践。
一、不要在Guest OS层面来备份虚拟机
对于传统的物理机操作系统来讲,你一般需要安装一个备份代理,通过备份代理来与备份服务器通信从而备份目标文件。但是这种方式对于虚拟机的Guest OS操作系统来讲已经显得很低效了,因为它会导致不必要的资源消耗,从而不仅影响到本台虚拟机的性能,还会导致运行在同一台物理服务器上的其他虚拟机操作系统的性能。
此时,你需要在虚拟层来备份这些虚拟机,这也意味着使用Image-level backup,也就是影像级别的备份来备份整个大vmdk虚拟磁盘文件,而无需Guest OS本身参与。为了实现这种方式,你所使用的备份软件则必须支持这种虚拟化备份,可以直接将虚拟机的虚拟磁盘备份下来而无需Guest OS或者物理服务器的参与。这样便会将传统备份Guest OS的备份过程所消耗的不必要的资源浪费节省掉,而且也可以确保虚拟机能够使用到所有资源而不会受到性能影响。
二、利用vStorage API
Backup(VCB)框架的一套API,而VCB是在Virtual Infrastructure 3中发布的,用于将备份操作从主机上卸载从而避免主机性能受到影响。vStorage API或者VCB不但可以允许对虚拟机磁盘影像文件的更方便的访问,而且还包含了一些可以加速备份的特性,比如Changed Block Tracking(CBT)。CBT是一种可以让系统对自从上次备份以来变化的块进行跟踪的技术,所以,备份软件只需要向VMkernel来查询这些信息即可。这种技术意味着备份软件不需要自己跟踪变化的块了,这样就可以让备份软件更加快捷的进行增量备份。vStorage API提供了更多的可以提高备份虚拟机效率的特点,所以你应当使用可以支持vStorage API的备份软件来执行虚拟化环境中的备份。
三、了解IO静默和VSS是如何工作的
如果你正在运行有交易型应用程序的虚拟机,比如关系型数据库以及邮件服务器等,那么在对它们进行备份之前,你需要首先将它们设置成静默模式从而可以得到一致的备份数据集。这种方式成为“应用一致性备份”,也就是在备份开始之前,对应的应用程序的IO被暂停,任何已经完成的交易或者脏数据会被写入磁盘。这样就可以保证对应的应用系统处于合适的状态,以便在数据恢复之后保证没有数据被丢失。这种静默操作仅仅对拿些自身被设计为支持静默操作的应用程序有效。
VMware Tools包含了一个专门用于和微软Volume Shadow Copy Service(VSS)打交道的驱动,这个驱动可以通过VSS在备份之前将对应的程序设置到对应的状态。VMware Tool中的这个驱动在过去并没有支持所有的Windows操作系统,所以很多备份软件厂商都开发了各自的驱动。所以,在使用这种方式备份的时候,你必须确保已经在虚拟机操作系统中安装了对应的VMware Tool驱动或者厂商提供的特定VSS驱动。而且也必须同时确保操作系统中的VSS服务没有被禁用,而且各项配置都正确。
四、充分利用备份资源
为了确保备份时间最短以满足日益缩小的备份窗口需求,你需要确保你拥有足够的硬件资源,尤其是备份服务器,确保其硬件规格足够,这样它才不会成为备份的平静。同时,有足够的网络带宽资源也是非常重要的。同样,足够的CPU和内存资源也一样很重要了。
备份服务器并不只是将数据从源服务器移动到目标介质这么简单,它可能还需要执行诸如重复数据删除或者压缩等来协助降低备份数据集所占用的物理存储空间,这些任务需要耗费大量的CPU和内存资源才能保证整个备份过程不会被拖慢太多。请确保你遵循了备份软件厂商所提供的备份服务器硬件推荐规格。对于备份来讲,资源给的越多越好,备份服务器如果资源紧张,那么整个备份过程会被拖慢很多。
五、快照并不是一种备份
虚拟即快照绝对不是一种备份。快照如果仅仅作为一种临时性的短期的虚拟机备份是可以的。但是他们会带来副作用。当一个快照被创建之后,所有针对对应虚拟机磁盘文件的写入操作均会被重定向写入到一个新的delta文件中,源文件变为只读。随着新数据的写入,Delta磁盘影像文件会以16MB为增量扩增。
而且每次增量数据写入都会导致对目标Lun进行加锁,从而降低了性能。你创建的快照越多,那么对应目标Lun中所承载的虚拟机的性能就越差。此外,快照也会占用额外的存储空间,每个快照都有可能额外占据与源盘相同大小的空间。如果你的存储空间不够用了,那么所有其上所承载的虚拟机都会被强行关机。
当你删除快照的时候,delta增量数据会被合并到源盘中,此时便会造成大量的磁盘IO操作,从而对虚拟机性能产生很大影响。此外,由于快照实质上是创建了一个与源影像文件相链接的新的虚拟磁盘影像文件,所以这回导致一些特性无法被激活,并且可能导致源盘与增量盘之间的映射出现问题。所以,不到万不得已不要使用快照,一旦使用,那么要在不用的时候尽快删掉他们。
六、创建自动备份时刻表时一定要小心
虚拟环境中的备份操作可能会非常消耗资源,因为虚拟环境是共享底层物理层的。因此,你需要仔细的配置自动备份时刻表以防止在短时间内将过大的压力承载到单一的资源之上。例如,不要同时备份同一个物理主机上的太多的虚拟机,或者同一个Lun上承载的多台虚拟机。尝试将时刻表均衡到多个资源之上,这样就可以防止单个资源过载。如果不这么做,不仅备份本身的性能会变差,就连相应的虚拟机的性能也会受到拖累。
七、对备份容错要心里有底
基本上所有使用Image-level备份方式的虚拟化备份解决方案都会利用虚拟机快照来解决备份过程中针对源文件的写入问题。VMware Fault Tolerance特性会用到两个虚拟机,也就是分别位于两台物理服务器上的主虚拟机和辅虚拟机。但是这两台虚拟机会共享使用同一份底层的虚拟磁盘影像文件。但是目前Fault Tolerance(FT)特性并不支持虚拟机快照,所以当备份具有FT特性的虚拟机时,效能就得不到保证。为了解决这个问题,你就需要寻找另外一种备用方式了,其中一种方法就是在备份运行的时候,临时关闭FT特性,这样就可以针对对应的虚拟机做快照了。
临时性禁用FT会保留住辅助虚拟机,当备份结束之后,FT可以方便的再次打开。可以使用PowerShell生成前处理或者后处理脚本来对这个过程实现自动化;另外一种方法是可以创建一份当前虚拟机的克隆,可以通过vCenter Server或者vCenter Converter实现。这样便可以将这份克隆备份下来,备份完成之后删除即可。你也可以使用基于存储端的快照来备份对应的虚拟机,不过需要在虚拟机中安装一个代理。
八、别忘了备份物理服务器以及vCenter Server上的配置信息
如果仅仅是一台物理主机或者vCenter服务器故障了,那么你可以很容易的再部署几台,但是同时,其上的配置信息也丢掉了。所以,定期的备份这些配置信息是非常必要的。通常当你备份一台主机的时候,你一般只是备份其上的虚拟机,而从来不会备份management console上的任何配置文件。然而,你需要备份的并不是management console中的配置文件,你需要的是备份对应的配置信息从而可以方便的重建一台物理服务器。
对于ESX主机,你可以使用esxcfg-info这条Service Console命令来将大量的配置信息输出到一份文本文件中。对于ESXi主机,你可以使用vicfg-cfgbackup命令(也是vShpere CLI的一部分)来将配置文件输出到文本文件中。对于ESX主机,你虽然无法使用esxcfg-info的输出来恢复对应的配置,但是至少在需要数据恢复的时候你可以知道你到底需要重新配置哪些参数。对于ESXi主机,你可以使用vicfg-cfgbackup命令来将配置信息恢复到主机上。
对于vCenter服务器,则一定要备份其上用来存放这台vCenter服务器上所有配置信息的数据库。数据库中包含了很多配置信息,包括集群信息、资源池、权限信息、报警信息、性能信息以及其他更多配置信息。有了数据库备份,你就可以方便的重装vCenter服务器然后直接让其指向你之前备份好的数据库即可重新上线运行了。同时,也请确保你对vCenter服务器上的SSL认证目录进行了备份,这个目录位于vCenter服务器上的data目录下。这个目录中包含了用于认证ESX或者ESXi主机以及客户端连接的SSL认证信息。
正如你所看到的,虽然VMware在最新的vShpere的版本中将虚拟机备份做的非常方便了,但是在备份虚拟机的时候,你仍然需要留心很多问题。这八个vSphere虚拟机备份最佳实践可以帮助你在备份虚拟机的时候减少一些麻烦。