云时代的数据保护:虚拟机和OpenStack

在《云时代的数据保护(上):一体机与软硬解耦》一文中,我们讨论了将数据备份到云这个话题,本文的主题则是另一个方向——备份云中的数据。

如果是接近于传统数据中心的私有云,最近几年这一领域的主要挑战来自虚拟机。流行的老牌企业级数据备份软件,基本都加强了对虚拟化环境备份的支持;同时也涌现出好几家的专注于虚拟机备份的新兴厂商(有的已被收购),大家的宣传点也有些大同小异。在这里我想从用户的环境出发,谈一些共性的问题,包括价值点和挑战。

虚拟机备份VMware一支独秀

首先是虚拟化Hypervisor和管理平台在数据保护方面的支持程度,包括无代理、热备份(在线备份)、增量备份、合成备份、一致性处理、单文件恢复、即时恢复等方面。在这些中VMware做得最好,他们提供了一个强大的VADP(vStorage APIs for Data Protection)接口,备份软件只要遵循它来做就可以实现以上多数功能。

我们来挑几个要点简单说一下:➀更改块跟踪(CBT):无需花费时间在vSphere虚拟机管理程序系统上扫描客户机镜像中的更改块,从而加快备份和复制作业的速度。这个就是用来实现增量、合成备份的,重要的是不需要依赖虚拟机快照。

➁无用空间排除:以戴尔vRanger为例,相应的功能描述如下“获得专利的活跃块映射(ABM) – 从受保护的Windows客户机镜像中消除Windows页面文件、休眠文件和非活跃块及空白块,以加快备份、复制和恢复速度。”

➂一致性处理:利用VMware Tools,配合Windows VSS(卷影副本)快照实现虚拟机中SQL Server、Exchange等应用数据的一致性备份,或者Linux文件系统类似的静默处理。

➃单文件恢复:我觉得这一点的前提,主要是要保持源磁盘格式(vmdk)不变,就能浏览解析出其中的数据而无需整体恢复,不能再像磁带备份格式那样打包处理。

➄重复数据删除:这一点和VMware没有直接关系,把它补充进来是因为虚拟机备份通常重复内容多,可实现的重删比对于节约备份容量的意义较大。

简单谈下重复数据删除的分类:目标端(包括介质服务器)处理不增加生产主机负担;源端能够节约网络带宽;还有一种源端代理与磁盘备份设备协同处理的混合模式。

还是拿vRanger举个例子,它提供了3种支持:

✓提供NetVault SmartDisk(vRanger版本附加组件),实现企业级重复数据删除,可将备份存储占用空间减少多达90 %。——目标端重删

✓EMC Data Domain Boost支持 – 通过DD Boost API使用EMC Data Domain设备支持分布式重复数据删除。——混合式全局重删

✓Dell DR RDA支持 – 在Dell DR中通过RDA API支持客户端重复数据删除。——混合式全局重删

尽管Hyper-V这些年有不少进步,但VMware已经成了行业标杆,Hyper-V在虚拟机备份接口下的功夫也没有VMware多。主要的备份软件大多提供了Hyper-V支持,最常用的基础功能也可以实现。

对于有分支机构虚拟机备份,加上异地集中备份需求的用户,可以考虑采用戴尔DR2000v to DR4100/6000系列这样的多对一方案。DR2000v一款纯软件的虚拟设备,支持运行在VMware ESXi或者微软Hyper-V环境。它的许可证绑定在物理Dell DR系列设备上并提供完全相同的功能,包括重复数据删除、压缩和双向复制,以确保数据始终可恢复。我们看到在惠普和昆腾的磁盘备份产品线中,也提供类似的虚拟设备。

这样的复制一方面减少了实体设备,另外经过重删的数据也能够节省远程复制的带宽,有助于降低数据保护的总拥有成本。

开源虚拟机和OpenStack可靠备份如何做?

对于Xen、KVM这些开源项目,以及在此基础上研发、包装的各种虚拟机产品,就没有备份VMware这么乐观了。尽管有些商业软件也宣称提供支持,但能够达到的水平可以看看我们下面的简单分析。

从最基础的看起,首先是热备,为了保证虚拟机磁盘(镜像文件)的一致性,快照是要有的,VMware也是如此。然而做增量备份就没有那么简单了,没有CBT技术,下图是使用qcow2格式虚拟机磁盘文件的一种增量备份方法。

如上图,有一个链式增量快照文件,在每次增量备份时上次的快照也需要保留。然而从性能和管理复杂度上这个文件链最好不要太长,需要做一些后台合并的操作。VMware在这方面比较成熟了,而且通常只是为了备份临时打一个快照;qcow2据我了解没有这么成熟,一方面是快照合并时的性能影响,另外I/O复杂性的增加使它的快照合并存在可靠性上的隐患。

不同虚拟机平台更多的差异在于管理功能,这方面VMware有强大的vCenter、微软有System Center。开源领域广受关注的OpenStack,如今也盖过大数据热潮中的Hadoop成为一个新热点。一些企业的大型私有云、云平台咨询/服务提供商等,纷纷投入它的怀抱。我们也来看看OpenStack里的组件对备份支持如何。

图片引用自同行朋友的ppt,只用于讨论技术,不代表对公司产品的评价。

Cinder是OpenStack中通用的块存储管理接口,上图中是Cinder的备份功能。每一次增量备份,虚拟机的全部数据都要做切块Hash计算和比对,以确定新增数据。这样做可以不用快照了,但无法合成备份,但是我觉得效率还是不够高。

还有些OpenStack的用户不使用传统商业存储,选择开源的分布式文件系统,调用文件系统的快照来做备份也是一种办法。根据从业内专家朋友处的了解,比如Ceph和GlusterFS都可以通过一个网关节点来复制快照,理论上你可以把某个虚拟机备份到本地或者远程目标。但增量备份/恢复的实现可能没有想象中完善,或者还有些限制条件。而且如果想用传统的重复数据删除设备、磁带作为目标介质,应该还有一些工作要做。

有那么一句话“选择开源项目本身就意味着折腾”,而且KVM/Xen和OpenStack这些在备份方面的考虑本来就不多。所以对于一些关键的虚拟机,比如说运行数据库的,我们还是建议用传统方式——也就是当成物理机来备份。

凡是有过数据丢失经历的用户,对备份容灾方面的投入一定会更加重视,选择商业数据保护产品的另外一个重要价值就是服务。在没有理想的开源虚拟机备份方案的情况下,使用戴尔NetVault、AppAssure这类传统优秀备份、复制软件可以局部保护重点的虚拟机,不失为一种最合适企业的选择。可以根据数据量选择使用备份服务器本地磁盘,或者像戴尔DR4100/6000系列那样的重删磁盘备份设备。

戴尔与VMware、微软和RedHat等ISV都是长期合作关系,在AnyCloud任意云中,可以采用商业虚拟化产品,或者部署KVM、OpenStack这些开源方案及其衍生产品。对于各种云中的数据保护需求,戴尔是一位您可信赖的专家。