W. Curtis Preston,TechTarget的执行编辑,同时是一位备份领域专家,对Hyper-V虚拟服务器的备份方面做了讨论,包括对比了Vmware环境和Hyper-V环境下备份的异同,在下面的Q&A中将会列出这些内容。
Hyper-V虚拟服务器环境下的备份面临什么样的挑战?
不得不说最大的挑战就是Hyper-V面临的是Vmware在市场中的统治地位。基本上,当你试图询问你正在使用的备份软件厂商人员有关于Microsoft Hyper-V的事情是,他们基本上是干瞪眼。当然,Hyper-V也在努力扩展它们的市场,数据备份和恢复方面只是一个很小的原因。Hyper-V所面临的另一个挑战,与Vmware境况类似,也就是质量守恒定律。比如,你有20台服务器,而你想将他们虚拟化到同一台物理服务器中,那么此时如果你需要将这20台虚拟服务器的数据进行备份或者恢复,那么所有这些操作只能通过这台物理服务器进行。这也是你所面临的最主要的挑战。
备份Hyper-V虚拟服务器有什么不同的方式么?比如,基于主机的备份和基于代理程序的备份有什么不同?
使用代理程序进行备份是备份虚拟服务器上数据的最普遍被使用的方式。基本上,你在所有虚拟机(VM)上安装一个代理程序,然后你就可以睁眼闭眼的认为所有你看到的都是物理机了,备份方式也与物理环境相同。这样就可以使用原有的备份软件和成熟备份方式来备份诸如数据库和其他数据了。也就是说,使用代理来备份虚拟机的优势就是你完全可以将它看作是物理机,与你之前所熟悉的备份呢方法相同。
另外一种方式,也就是基于主机的备份,也就是说直接备份Hyper-V物理机。这种情况下,也就相当于备份Hyper-V这台Windows Server上的数据了。与Vmware Server不同的是,当Vmware运行的时候,你无法连接到它自身而且也无法登录到它以便备份它上面的数据。而Hyper-V则不同,它就是一台Windows服务器,你可以像访问任何其他Windows服务器一样来访问Hyper-V服务器。但是如果你想连接并且备份那些VM范围之外的虚拟机,那么你就需要与他们架构中已经实现的,比如VSS来相互配合,这样就可以得到这些虚拟机的完整可用的备份。所有支持Hyper-V的备份软件产品都可以做到这一点。
为了提高备份效率和性能,Hyper-V中需要打开什么特殊设置么?能讨论一下VSS和Hyper-V Integration Service么?
卷影拷贝服务是无论如何都需要被Enable的,因为VSS是一个基础架构,这个架构平台用来对诸如Exchange Server以及SQL Server这样的应用程序进行静默操作以暂停它们的IO,并且将它们置于一致性状态,其次,VSS还会对应用程序所存储的数据所对应的文件系统部分进行静默,将缓存内的数据Flush以保证文件系统级别的一致性。那么,如果备份软件想要备份一个位于Hyper-V管理下的虚拟机,备份软件此时就需要使用到Hyper-V integration services了,而Hyper-V integration services会与VSS之间进行交互,然后VSS在与其架构中的Writer角色,每个应用程序都有自己对应的Writer,一旦所有受影响的Writer都完成了它们当前工作而被静默时,VSS便会调用架构中其他角色来对虚拟机所使用的卷创建快照,之后,VSS转过来通知备份软件它可以对这个生成的快照进行备份了。备份完成之后,对应的快照便可以被删除以释放空间,而且,如果备份软件使用了对应的备份类型,那么在备份结束时,应用程序还可以从它们对应的Writer处接受到备份已经完成的通知,从而这些应用程序可以继续进行下面的工作,这也就意味着,这些应用程序便可以将其在线重做日志在当前位置进行裁剪,从而生成新的日志继续工作。
对Hyper-V的备份与对Vmware的备份有什么不同?
我刚才所说的关于VSS的那些流程步骤,按理说在Vmware平台下也应该这样,非常不幸,实际上却不是。Vmware只在Windows Server 2003上才会与VSS Writer交互。而且,还记得上面我提过的“如果使用了对应的备份类型的话,应用程序将会裁剪它们的在线日志”么? 但是Vmware并没有选择“Backup”类型的备份,它使用的类型只是“VSS Copy”类型的。也就是说,Vmware只会通知VSS做一份数据的快照,仅此而已,并没有告诉VSS它做的是“Backup”,那么VSS Writer得到的通知也将会是本次操作只是做了一个Copy,而并不是Backup,所以,应用程序也就并不会对其在线日志进行裁剪操作了,因为只有在对对应数据进行了一次真正的“Backup”时,应用程序才会裁剪日志。虽然本质上是相同的,但是Vmware的做法却并不像Hyper-V那样,算是一种纯粹的备份操作。
所以,总体上讲,Vmware只在Windows Server 2003中才会与VSS Writer交互,而在WIndows 2008中,Vmware根本不与它们交互,这也就意味着,在Windows2008下,产生的快照是一份类似于系统崩溃时的不一致数据影像。利用这种不一致的数据影像恢复成的虚拟机,虚拟机上的应用程序就不得不进入一致性检查过程从而恢复到最后一个一致点了。这种情况无异于一次系统当机然后再恢复,这着实吓了我一跳,也就是说,只要你运行Vmware的操作系统不是Windows 2003,那么你得到的备份一定是一份不一致的数据,即便是使用了Windows2003,应用程序也不会裁减它们的在线日志。总之,Hyper-V在VSS备份方式下的实现要优于Vmware。
如果不使用第三方备份软件,而使用Microsoft Data Protection Manager (DPM)来备份Hyper-V虚拟机的话, 有什么益处和坏处呢?
Microsoft Data Protection Manager (DPM)是一个near-CDP产品。near-CDP与连续数据保护(continuous data protection,CDP)相似,但并不是完全“连续”的,粒度大概是1小时等的样子(译者注:每小时做一次快照)。首先,DPM非常完美的整合和支持了刚才我所提到的关于VSS的一切实现方式,很明显,它们都是Microsoft的产品嘛,这就是第一个优势,它可以保证你得到对VSS的完全支持,它会与VSS Writer交互的。
第二点,当你拿它与其他第三方备份程序作比较时,你就会发现,那些第三方备份软件大多只是一些传统的全备份或者增量备份软件。甚至对于IBM的Tivoli Storage Manager (TSM),其声称支持连续增量的方式备份,但是即便是这样它也只是支持对文件系统这么做。我们来看一下对虚拟机中的数据库或者其他应用程序做备份的时候,此时Vmware其实也做的是全备份和增量备份。所以,当你把DPM与其他传统备份软件作对比的时候,其他这些软件所作的只是全备份和增量备份而已。而DMP所做的就截然不同了,当你创建一个快照时,DPM对这个快照的备份并不是将它对应的内容全部备份,而只备份这次快照与上一次快照之间所变化的内容,所以它是一种及细粒度的永久增量式块级的备份技术。在Hyper-V下使用DPM时有两件事需要了解:一是他对Hyper-V的性能影响很小;二是它完全支持Windows,与其紧密耦合,因为它们都是Microsoft的产品。
如果使用第三方备份工具,会面临什么挑战?
如果选择使用第三方备份软件,那么你需要着重注意一条,也就是它必须支持VSS,同时,也要保证它能够与VSS Writer交互。几乎每人一想到VSS Writer,就想到了Exchange Server和SQL Server,但是Active Directory呢?Oracle呢?也有其他一些不太受关注的小型的VSS Writer。还有其他的应用程序运行在虚拟机中么?这些程序也有VSS Writer么?所选用的备份软件能够支持这些VSS Writer么?备份软件在执行备份的时候,一般适当的做法都是会首先查询VSS的元数据,VSS则会将它所管理的所有VSS Writer列表传送给备份程序,备份程序则应当与这个列表中所有的VSS Writer进行交互。所以,你会希望系统能够发现所有的VSS Wrtier,以及备份工具可以与所有这些Writer进行交互以便让对应的应用程序都按照正确的步骤运作。以上就是所有你需要在产品文档中以及测试中需要验证的。