今天,在大规模使用Vmware的环境里,备份是一个大问题。很多情况下,使用传统的备份方法会造成单台 ESX Server上的虚拟机数量的限制,相当于降低了服务器虚拟化的应用价值。进一步分析,一种可行的解决方案是额外购买物理服务器来做虚拟机(VMs)的备份。
还有一些现有产品可以解决这个问题,比如把 VMware 环境迁移到一些特殊的存储设备上。如果没有相应的硬件,也可以采取一些临时的备份方法。在处理虚拟机备份这个问题上,有人多人在努力尝试。
物理设备的问题
一想起Vmware,我的脑海里就会浮现出电影“骇客帝国”(矩阵)的情景。运行在 VMware 中数以百万计的虚拟机与骇客矩阵里虚拟的人类是何等的相似。就像电影一样,一旦进入了矩阵,人就可能做各种不可思议的事情,在空间飞行、学习功夫或转瞬间从高楼跳下。我们可以把VMware想象成矩阵,VMs(虚拟机)可以轻松地从一台物理服务器“飞到”另一台。在 VMware 中,多亏了 HyperVisor虚拟机系统管理程序,虚拟机才可以在硬件上运行。
电影中当一个人在虚拟的骇客矩阵程序中死掉,在现实中也就死了,因为人的身体不能分辨痛苦是来自虚拟世界还是物理世界。与之类似,VMware 也不可能中断虚拟环境和物理环境之间的联系。虽然你可能将运行在一个ESX Server上的20个 VMs(虚拟机)看做是20台物理服务器,但事实上只有一台硬件服务器以及唯一的I/O通道和存储系统,即使备份系统把它们当做 20 台物理服务器一样对待,我们也知道它们其实运行在一台物理服务器上。
常见的做法:把虚拟机当物理设备
多数 VMware用户都假设他们的虚拟机是物理设备。在各类不同的技术研讨会上,我对大约5,000 名用户进行了问卷调查,试图了解他们怎样处理 VMware的备份问题。结果非常相似,只有一小部分的Vmware用户在使用 VCB (VMware Consolidated Backup)备份。而大多数人使则使用备份物理服务器的方法备份虚拟机。
这样做并不是不行,虽然很多备份管理员认为这样对VMware 做备份过于简单化,但实际上大多数人却都是这么做的。
如果你正在用这种方法做虚拟机的备份,不需要担心什么。传统备份的好处是过程比较简单。虚拟机的备份过程跟“真正的”(物理机)备份一样,可以做到文件级恢复,有支持数据库和应用的Agent代理,以及增量备份。(参见“改进旧的虚拟机备份策略”) 。
在ESX Server内部做备份
另一种选择是在 ESX Server内部的物理层运行备份软件。但糟糕的是,你很快会发现每天都要做全备份。而且如果你这么做,将不会得到备份软件厂商的任何支持,因为厂商不鼓励使用这样的方法。(他们希望用户使用VCB或者典型的Agent代理方式进行备份,可以获得更多的收入)。每天都要做全备份的原因是虚拟机上任何的数据改变都会导致与之关联的VMDK文件时间戳的更新,所以,即使是一个“增量”备份也跟全备份没有什么区别。
VMware Consolidated Backup:是希望还是炒作?
面对备份的难题,VMware 给出的答案是 VMware Consolidated Backup。要使用 VCB,需要在 ESX Server旁边部署一台物理的 Windows 服务器,并使其能够访问ESX Server 下VMFS文件系统所在的存储设备。对该存储设备的访问可以基于块(光纤通道和 iSCSI)或者基于 NFS协议。这台物理服务器以一个Proxy备份代理的角色执行虚拟机的备份,这样备份数据流就不需要经过ESX server了。
备份软件与 VMware Consolidated Backup之间有两种互相响应的方式。第一种仅限于Windows平台的VMs. 备份软件通过VCB接口程序通知VMware发起备份。VMware 调用Windows虚拟机上的VSS (Shadow Copy Service) 做一份VMware层快照,然后经过VCB将快照交给Proxy备份代理服务器,并以虚拟卷标的方式挂载(例如VM上“C:”卷的快照在Proxy备份代理服务器上以“H:”卷命名)。而后,我们可以用备份软件对这个虚拟卷做标准的全备份和增量备份。
这种方式的主要优点是可以做增量备份,不足之处是仅支持Windows平台,也没有正式的对应用程序的支持(包括支持VSS 的应用),而且不能恢复 VM 自身,只能恢复虚拟机上的文件。
另一种使用VCB的方法是针对整卷做备份。跟上面提到的类似,VMware 即可以调用 VSS 快照,也可以为非windows平台的VMs做同步镜像。用这个方法,VMDKs 裸卷在 VMFS 存储和代理服务器的存储之间被物理拷贝(也就相当于staged)。尽管ESX Server本身不会产生I/O,但VMFS 所在的存储设备还是有I/O负荷,相当于做全备份。
在利用主流的备份软件将裸卷的这份拷贝备份到磁带或者磁盘之前,实际上已经经过了一次全备份过程,这意味着每个全备份过程实际上要经过两次全备份I/O操作。除非备份软件能做进一步的处理,否则很难实现增量备份。这意味着绝大多数情况下这种VCB备份每天会产生两次全备份的I/O负荷。
Symantec 和 CommVault 想出了做增量备份的办法。Symantec 可以针对整卷做全备份,然后在文件级实现增量备份,这都依赖于 Veritas NetBackup备份软件的 FlashBackup 技术。Symantec通过实现增量备份,明显地降低了存储设备端的I/O负荷;然而,在恢复时仍然需要很多的步骤。首先恢复整卷的全备份,然后再依次恢复它的每一次增量备份。至少可以说这种恢复方法比较麻烦。
CommVault 的解决方案是对裸卷做块级增量备份,与Symantec的方法相比,CommVault属于更精确的增量备份,能够提供更简单(也可能更快速)的恢复能力。然而,CommVault 的方法仍然需要在生产端存储设备和proxy备份代理服务器之间完整的拷贝整个卷,因此,在生产端存储设备上每天还会产生一次全备份的I/O负荷。
恢复一个 VM虚拟机也需要两步。首先用备份软件将相应的VM数据恢复到proxy备份代理服务器 ,然后利用 VMware vCenter Converter工具恢复到 ESX Server。如果备份软件支持VMware,通过安装在虚拟机上的Agent代理,可以直接做单个文件的恢复;但是,恢复整个 VM 则必须通过上面两个步骤完成。
所有的这些问题导致了只有相对有限的用户采用了VCB备份方案,当VMware宣称有相当广泛的客户群购买了VCB license的时候,经验告诉我,有很多持有license的用户其实还没有实施VCB。所以,我们期待VMware 的 vSphere有更好的备份方案。(参见“关于vSphere”)
单点产品的帮助
一些具有针对性设计的单点产品可以解决Vmware备份中的一些问题。VizionCore公司的产品vRanger Pro较早的进入了Vmware备份这个市场,使用时间超过了其他任何产品。
另一个被用户广泛选择的产品是 PHD Virtual Technologies公司的 esXpress 。这两个产品都能实现VMDK卷的全备份和增量备份并且支持文件级恢复。可以通过调用VCB备份,也可以不用VCB。这两种产品有完全不同的设计思路和实现方式,所以选择时一定要确保与自身的环境相匹配。需要注意的是这两种产品对卷的增量备份仍然需要扫描整个 VMDK 文件,即使最后只有发生变化的那一部分数据被拷贝到备份系统。
在源端去重
用户也可以使用支持源端去重的备份软件,例如 Asigra 公司的Asigra, EMC 的Avamar 或者 Symantec 的 NetBackup PureDisk。第一种使用方法可以将支持源端去重的备份软件安装在 VM 中,以传统的方式进行备份。源端去重备份跟传统备份(甚至是增量备份)相比只需要更少的 CPU资源,I/O的密度也更低,这样就明显地降低了对 ESX Server的影响。我们也可以用备份软件提供的Agent对数据库和应用程序做这样的备份。但是,单纯做这种备份有一个缺点,通常无法对VM做“裸机”恢复。
有些产品的做法更进一步,在ESX Server内部运行备份程序,捕获做虚拟机恢复时所需要的变化数据块。但这种方法需要备份程序扫描所有VMDK文件的全部数据块才能找出哪些发生了改变。而CPU 执行这些哈希计算,会明显地影响I/O性能。
CDP和near-CDP方案
使用持续数据保护CDP 和near-CDP备份产品与使用重复数据删除软件的方式几乎相同。可以安装在VM虚拟机上并且像备份物理服务器一样对虚拟机做持续数据备份。这种备份对CPU和I/O的影响非常低。但是大部分的CDP软件不支持对整机的恢复,所以如果需要对损坏或删除的虚拟机做整体恢复,还需要有另外一个可选的备份方案。
带有Near-CDP功能的存储
到目前为止,所有的方案都包含有许多的缺点和优势。但是有一个完全不同的解决方案,值得认真考虑:使用支持Vmware的内建near-CDP备份功能的存储系统。(请记住,near-CDP只是对快照和复制的另一种更吸引人的叫法。)Dell EqualLogic, FalconStor 和 NetApp都拥有这样的产品. 其他存储厂商也在开发类似的功能,可以关注一下你的存储供应商。
这个概念相对比较简单。将VMDKs卷存放在此类存储设备上,而每个存储设备都有一个为VMware特别设计的工具,我们可以运行这个工具发起VMware备份。先由VMware创建一份快照,这点与VCB备份类似;之后存储设备针对Vmware的软件快照数据再做一份硬件快照;最后将这个备份快照复制到另外一台存储设备,至此完成备份的全过程。
利用这种技术,ESX Server上的CPU活动是最少的。并且,存储设备上的I/O活动也最少,而需要做的只是创建一份快照,然后对每天变化的数据进行一次智能的块级增量备份。(需要注意:是由存储设备来执行块级增量备份,因为存储设备知道哪些块需要复制拷贝,所以才能做到尽可能低的I/O影响)。与备份一样,存储厂商还能以各自不同的方式提供文件级数据恢复功能。
Dell EqualLogic的存储系统使用了iSCSI技术 ,因此可以直接通过IP协议与虚拟机通信,协同完成快照操作。FalconStor的解决方案需要在虚拟机上运行一个Agent代理程序,负责协同完成快照以及支持各类型应用。NetApp通过调用VMware的工具创建快照。而NetApp真正与众不同的特性是支持VMware数据的去重,使用集成在NetApp Data ONTAP操作系统中的重复数据删除工具,可以去除所有的冗余数据块,甚至包括活动状态的数据。
VM备份的底线
今天,我们可以使用很多技术更好的备份VMware。然而跟传统的备份比较,许多技术仍然存在不足。 也许当前最好的选择是把Vmware实例迁移到支持Vmware的near-CDP存储设备。也许Vmware的vSphere版本将解决这些备份问题。
作者:W.柯蒂斯·普雷斯顿 ,既是 TechTarget Storage Media Group的执行编辑,也是一名独立的备份专家。
附录:
改进旧的虚拟机备份策略
有几个步骤可以改进虚拟服务器的备份效果:
1. 首先要确定全备份的工作量非常大。
2. 尝试减少全备份的频率,从每周一次改为每月一次。
3. 最后,如果备份软件支持,可以考虑使用合成全备份功能。在备份软件端创建合成全备份,在虚拟机端只做增量备份。流行的备份软件都有合成全备功能。包括EMC的NetWorker,CommVault的Simpana和Symantec的Veritas NetBackup。
关于vSphere
vSphere是Vmware的下一代虚拟机架构,将添加一些新的功能,并解决一些备份的问题。特别是它会解决VMware Consolidated Backup (在vSphere里将不再叫VCB)的“二次拷贝”问题,实现真正的对VMDK文件的增量备份。Vmware vSphere的最初版本目前已经发布,但是要看到这些新的备份功能,我们还需要一段时间(也许6个月到一年)。