前言

  Open Systems SnapVault是NetApp一个基于disk-to-disk的数据备份和数据恢复解决方案,主要用来保护位于第三方存储系统上的数据。OSSV是一个基于agent的方案,可以使一个安装有OSSV agent程序的主机和NetApp存储设备之间直接进行数据的传输。整个数据的备份方式是采用的数据块级的增量备份方式。OSSV备份到NetApp存储设备上的数据被作为NetApp的快照副本。采用NetApp OSSV解决方案的优点主要是快速、可靠和实现存储空间的优化。


概述

  NetApp OSSV解决方案中包含4个组成部分:

  1. OSSV主机

  2. OSSV代理软件

  3. TCP/IP网络

  4. NetApp存储设备

  OSSV支持windows系统客户端,UNIX/Linux系统客户端和VMware ESX客户端。在这些客户端上的数据通过OSSV进行备份。和传统的基于磁带的备份解决方案不同的是,OSSV只备份那些上次备份后发生变化的数据块,因此只需要在第一次备份的时候进行一次全备份。


  OSSV备份在NetApp存储系统上的数据被作为快照的副本进行保留。不同的备份计划能够维护不同级别的数据留存。在数据进行恢复的时候,数据可以直接从NetApp的快照副本进行恢复。


  另外,以快照副本方式进行保存的数据备份的内容是一个完整的数据备份,可以被用户访问和读取。这是因为OSSV在进行备份的时候,是按照客户端本身的数据格式进行备份的。这样就是说OSSV备份的内容随时可以用来提供给用户上线使用。


实现原理

  Open Systems SnapVault的原理就是将客户端的原数据映射到NetApp的存储系统上。OSSV进行备份的原数据可以是客户机本身安装的存储磁盘上的数据,也可以是通过SAN方式加载的磁盘上的数据。而且,这些原数据可以由一个磁盘组成,也可以是一个文件系统或是一个子目录。


  需要注意的一点是,OSSV不能备份CIFS或者是NFS的数据。也就是说在NAS环境下,OSSV不能够实现数据备份功能。我认为这个原因是OSSV就像前面提到的那样,是将原数据在NetApp的存储设备上做了一个映射。这个数据的镜像是以数据块方式做的,不是以文件方式实现。所以NetApp的OSSV不能在NAS环境中使用。不知道这样的分析对不对。


  在NetApp存储系统上,对于一个给定的备份关联,OSSV备份将被映射到一个volume的qtree上。多个OSSV关联能共享使用同一个目的volume,但是每一个OSSV关联将使用属于它们自己的qtree。同样的,每个OSSV主机也可以是多个关联的组成部分。这是不是就是说,一个OSSV主机上的数据可以备份到多个地方。


关联创建和基线传输

  在建立一个OSSV关联的时候,会启动一个基线传输的操作。所谓这个基线传输就是初始化的一个完整备份或者说是level-0备份。创建OSSV备份关联的方式可以采用在NetApp存储系统上执行snapvault命令来执行,也可以通过使用NetAppProtection Manager软件来实现。当这个OSSV备份关联被创建后,NetApp存储系统就会联系OSSV客户端,并且请求执行原数据的基线传输操作。我们需要知道的一个非常重要的一点是,数据的备份操作和恢复操作在执行的时候,是一个“拉动”(PULL)的操作,即将数据“拉动“过来,而不是一个”推送“(PUSH)的操作。在进行备份的 时候,是由NetApp存储设备将位于OSSV主机上的数据拉动过来。在执行数据恢复操作的时候,是由OSSV主机将位于NetApp存储设备上的数据副本拉回到OSSV主机上。


  在最初的基线传输完成之后,为了实现数据块级的增量备份,需要进行校验码计算。校验码的计算是按照原数据的每4KB数据块为一个单位进行计算的。计算出来的校验码信息被保存在OSSV主机的内部数据库里。然后,原数据被传输到NetApp存储设备的qtree上。这样看来,启用OSSV后,首先是建立OSSV主机和NetApp存储设备之间的OSSV关联,然后是计算OSSV主机上的原数据的校验码,并保存在OSSV主机的内部数据库里。完成这些工作后在进行最初的基线传输。在基线传输完成之后,一个NetApp的快照副本就被建立了。


增量备份

  在OSSV完成了最初的基线传输之后,以后的备份操作缺省地都是采用基于数据块级的增量备份。通过之前以4KB数据块为单位计算出来的,保存在OSSV主机内部数据库的校验码,OSSV可以只备份文件中发生变化的数据块,而不必备份整个文件。由于这个OSSV内建的高效率的特性,OSSV非常适合于采用低速网络连接的环境中。在一个增量备份完成后,一个NetApp快照副本就完成了,并且根据相关的留存需求保存为一个回复时间点。


  OSSV的备份过程可以分成两个阶段,在第一个阶段中,在OSSV主机上完成一个文件系统的扫描,并且在NetApp存储设备上建立一个目录结构。文件的删除信息也要发送到NetApp的存储设备上。在第二个阶段里面,针对修改的文件完成校验码的计算,然后再将备份的数据传输到NetApp存储设备上。


内部数据库(Internal Database)

  每个OSSV主机都会为一个OSSV关联维护一个状态数据库。这个数据库主要包含下面的文件:

  1. 历史文件(History File)

  2. 数据块级的增量校验文件(Block-level incremental checksum file)

  3. 检查点文件(Checkpoint file)

  缺省情况下,每个OSSV关联数据库也都作为这个关联的一部分需要备份的数据进行备份。这就是说进行备份的原数据也包括OSSV主机上的关联数据库。