在一个VMware虚拟化架构中的虚拟机备份从来就不简单。这是因为多数的备份管理员在他们从备份物理服务器转变为备份虚拟服务器的时候没有认识到改变备份策略的必要。他们在每个虚拟机上部署代理或者客户端软件,就像他们是物理的机器一样。这在物理世界可以工作,所以为什么不能用在虚拟世界里呢?好吧,它可以工作,不过有些注意事项。
因为备份软件是针对在尽可能短的时间里备份尽可能多的服务器/设备而优化的(这对尽力优化备份时间窗口来说是合理的),它可能会使一个运行多个虚拟机的服务器I/O过载。试想有10个虚拟机在一个相同的服务器上同时尝试备份。即使是来自Intel和AMD的***的多核处理器也会喘不上气来。
然后就是有那些代理/客户端软件运行在每一个虚拟机上。备份软件几乎总是(只有很少的例外)需要在被保护的服务器上运行一个代理或者客户端软件。这个软件会扫描服务器,发现在文件或者块级的新的数据,然后在下一个备份时间窗口内将其备份。这个软件通常被描述成为“轻量级”,意思就是资源占用率很低。业界最普遍的资源占用率大约是2%。如何达到这一数字的方法有很多; 不过,这不能反映代理/客户端软件在进行备份时的资源占用。那时候需要的资源会高得多。把那个数字乘以虚拟机的数目,你会突然发现一个资源过度利用的瓶颈。
VMware早就意识到了这个备份问题并已经实现了VMware快照,来给每个虚拟机或者VMDK(virtual machine disk file虚拟机磁盘文件)镜像做一个某一时刻的快照。随后,VMware为Windows应用把Windows的VSS和VMDK快照集成起来,使得结构化的应用(SQL server,Exchange,Oracle,SharePoint等等)实现“崩溃一致性”。下一步,VMware实现了VCB(VMware综合备份)使得每个VMDK快照可以被挂接到一个和虚拟机本身分开备份的代理Windows服务器上(也就是说虚拟机中没有代理)。
不幸的是,这需要额外的物理Windows服务器,而且它的性能很差。 通过发布vSphere 4.1,VMware在使虚拟机备份比从前更简单更有效方面跨近了一大步。
用于数据保护和变化数据块跟踪的VMware vSphere vStorage API
在vSphere里,VMware引入了它的VADP(vStorage API for Data Protection——数据保护vStorage API)。VADP允许一个物理或虚拟的备份服务器告诉vSphere来对一个特定的VM做一个VMDK快照,并直接把它备份到备份服务器上。备份软件可能需要一个代理或者客户端软件从而运行在vSphere hypervisor上,不过这不是必须的。独立的VM不需要代理或者客户端软件。
VADP又更进了一步。在过去,每个VMDK快照都是一整个VMDK的完全的快照。这使得备份每个VMDK快照成了一个漫长的过程。它还在VMDK持续增长的情况下威胁到了备份时间窗口。vSphere4.1中的VADP增加了CBT(Changed Block Tracking——变化数据块追踪)功能。CBT意味着每个新的备份的VMDK快照只包含改变了的数据块,而不是整个的VMDK镜像。
VADP和CBT使得虚拟机可以被简单地备份而不会影响应用;不过,他们只是整个拼图的一部分。他们需要能够利用这些功能的备份软件。VMware本身提供了一个低端的软件包,叫做VDR(VMware Data Recovery——VMware数据恢复)。VDR被限制在100个虚拟机和1TB的数据存储内。它没有全局功能,也没有远程复制能力。
好消息是有很多的备份提供商的产品扩展能力更强,功能更丰富,并可以完全利用VADP和CBT的优势。这些供应商包括Acronis公司,Asigra公司,,CommVault公司,,EMC公司,,Hewlett-Packard (HP)公司,,IBM公司,,PhD技术, Symantec公司, Veeam软件, Vizioncore (现在是Quest软件)以及很多其它公司。
备份虚拟机不再像过去一样,是一件头疼的事情。VMware在提供新的工具,而备份厂家也在利用它们。现在就重新审视一下你的虚拟机备份策略,并和你的备份供应商讨论一下VADP和CBT,假如你还没有在享用这个更简单、快速的模式的话。
【编辑推荐】