分类: 服务器与存储
2008-06-11 18:19:50
NBU备份的逻辑结构
在任何备份产品中,都需要记录这样一些数据:客户机名称,备份目录,备份策略,文件备份的内容,存放备份文件的位置(介质名称、机械手、、介质),如果备份保存在磁盘上,那么需要记录其保存的目录。
为了保存相关的数据,NBU选择了使用两个不用的数据库来保存这些数据:EMM数据库和文件数据库。这些相关的数据库都有catalog来管理和维护。其中,EMM数据库中提供了专门的卷数据库(VolDB)和和介质数据库(MediaDB),主要用于维护与磁带,磁带机,机械手,介质,介质管理器等有关的信息;文件数据库保存你备份了什么文件,文件备份在哪里等信息。
NBU的这种逻辑设计,是与介质的不同有着密切的关系的。备份一般选择的是磁盘或者磁带。其中,磁盘是随机读写设备,所以对于备份和恢复来说,都非常容易管理;但是磁带是顺序读写设备,并不能随时删除或者读取数据,所以就需要某种机制来管理磁带,才能使其发挥出最大的效率。
为此,NBU为磁带设备管理提供了EMM数据库,专门管理机械手,磁带机和磁带的使用,注意,磁盘管理是不需要EMM数据库记录数据的。为此,NBU把文件管理与设备管理分开,使得所有备份都使用文件数据库,而仅有磁带设备使用EMM数据库。如图一和图二所示:
图一:磁带设备备份管理结构图
图二:磁盘设备备份管理结构图
从图一和图二可以看出,磁盘设备和磁带设备的备份结构是有很大差异的,磁带备份明显要复杂一些。因此很多在磁带备份中出现的问题,在磁盘备份上并不容易出现。从这个角度来说,使用虚拟带库,将真是的磁盘设备虚拟为磁带设备使用,并不是一个明智的选择。
NBU备份的物理结构
对于设备的备份来说,它是非常简单的,仅仅有文件目录即可,所以谈不上什么物理结构。此节只是针对磁带设备的备份物理结构
首先大家都明白,文件是一定要备份在磁带上面的,所以这些数据文件都是物理结构中的最小单位。
一个磁带可以保存一个至多个数据文件,所以它是物理结构中的次小单位。在这里需要说明的是,在NBU的定义里,数据文件总共有四种类型,分别是:普通备份数据文件(0)、catalog备份数据文件(1)、迁移器备份数据(2)以及存储迁移器为microsoft exchange或者windows 2000备份的数据文件(3)。我们平时接触的仅仅是0和1两种。NBU控制下的磁带仅仅能够存放某种特定类型的数据文件,而不能够同时保存两种不同类型。
为了保存用户日益增加的数据保护内容,同时能够自动透明的进行日常的备份工作,NBU引入了卷池的概念。卷池就是很多磁带的集合,这些磁带一起工作,为保存某一种特定类型备份内容共同工作,可以看作是一个大磁带。它是NBU备份结构中的最大单位。如图所示:
图三:NBU备份的物理结构
设备的备份与恢复
NBU有很多用户,抱怨NBU的设备无法自由的重复使用。其实这只是一个误区,如果用户能够理解NBU备份,恢复的原理。那么理解NBU的命令,自动玩转NBU,并不是一件很困难的事情。现在就分两部分来讲述NBU的备份和恢复,重点在磁带的恢复使用。
备份:
在磁带备份中,NBU为了管理磁带的使用,会在catalog数据库中添加一些标记位来记录磁带的使用信息。当磁带里新写入一个镜象的时候,assign标记位会记录该时间,Vimages标记(记录磁带上有多少没有过期的数据文件)会自动加1;当该数据文件过期以后,NBU会自动在把Vimages的值减一。如果该磁带写满,其对应的Full标记会自动置一。
需要注意到是,在磁带备份中,即使一盘磁带中仅剩一个镜象没有过期,它也不能被重复使用。这是因为磁带是顺序读写设备,NBU无法估计其剩余容量以及如何合理使用它。因此,在定制备份任务的时候,一定不要将保存时间差异很大的数据文件保存到相同的磁带中去,这将大大降低磁带的利用率。
恢复:
作为顺序读写设备,磁带的恢复会比磁盘恢复花费更多的时间,这是因为恢复前,NBU需要查询出恢复所需要的数据文件所在的介质、机械手和、磁带位置,然后在它们空闲的时候,将数据所在磁带放入磁带机,再找到对应的位置后,才能开始恢复。
如果在试图恢复的时候,数据文件所属的机械手或者磁带机或者磁带正在干别的事情,系统将不得不等待这些任务完成之后才能开始恢复文件(如果给恢复作业更高的优先级可以插队,但是默认情况下优先级是相同的),这就会带来更大的时延。这也是为什么备份作业都会选择在人下班以后的时间开始工作,这样可以避免多个任务抢占磁带系统资源。
设备的重复利用
通过上述讲解,大家也许可以明白,为什么自己的总是无法被重复使用。其实想要释放一个磁带是比较简单的,用户只要能够将某盘磁带里面的所有数据文件过期,就可以将它释放出来重新使用。具体的步骤是:
1. 过期磁带中的所有数据文件,就相当于将磁带的Vimages标记置零;
# ./netbackup/bin/admincmd/bpexpdate -m
2. 将该磁带释放出来(即使不做这步,在一定的间隔后,NBU会自动执行该命令):
# ./netbackup/bin/admincmd/bpmedia -unfreeze -m
3. 如果该磁带保存的是普通数据文件(0),那么它就应该可以被重复使用了,但是如果其上保存的是其他数据文件(1,2,3),那么它还需要被定制删除:# ./volmgr/bin/vmquery -deassignbyid
其中,pool_number可以通过# ./volmgr/bin/vmquery -m
这样,该磁带就可以释放并且被重复利用了。
(注),在某些网上的说法中,可以利用vmquery –m
在磁带设备中,catalog直接对应着数据文件(见图二),所以管理起来非常的简单。磁盘的备份就是直接备份到某个目录,在文件数据库中写入数据即可,不涉及EMM数据库的写入;磁盘数据的恢复也是直接从文件数据库读取出对应数据文件的目录位置,直接恢复即可。
如果磁盘的空间已经占满,那么也不需要过期掉该磁盘的所有文件,只需要在catalog中找到某些不再需要的记录并使它们过期,NBU会自动的将对应的数据文件删除,磁盘空间就有空余了。因为这些过程都非常简单和容易理解,所以就不过多阐述了。