一种支持磁带库多驱动并发写的备份方法与流程

文档序号:14713902发布日期:2018-06-16 00:57阅读:384来源:国知局
一种支持磁带库多驱动并发写的备份方法与流程

本发明涉及数据存储领域,尤其是涉及一种支持磁带库多驱动并发写的备份方法。



背景技术:

随着计算机的不断发展,数据保护也逐步在加强。大量的数据的累积加重了数据存储的压力。但是受限于合规及其他的一些因素,即便一些数据在很长一段时间不会被使用,这些数据也需要被保护。将这些数据迁移至磁带是一个比较好的方式。

磁带库单个驱动器的存储性能受限于硬件条件,性能极其有限。大量的数据迁移至磁带将受限于磁带库的驱动器性能瓶颈,导致备份窗口时间变的很长,影响了备份效率,也使得用户无法更快、更及时的进行数据保护。若有一种方法能将数据分发到多个磁带库驱动器上同时进行写数据操作,那么理论上在不存在其他性能瓶颈的情况下备份性能是所有磁带库驱动器性能的总和。该方法将大大提升数据迁移至磁带的性能。



技术实现要素:

本发明的目的就是为了克服上述现有技术存在的缺陷而提供一种支持磁带库多驱动并发写的备份方法,大幅缩减数据保护窗口时间、提升数据迁移至磁带的性能,以便用户能够更好更快更及时的进行数据保护。

本发明的目的可以通过以下技术方案来实现:

一种支持磁带库多驱动并发写的备份方法,包括以下步骤:

(1)初始化磁带库操作;

(2)根据步骤(1)选择的磁带库驱动器个数生成相同数量的写数据执行器,每个写数据执行器对应一个磁带库驱动器;

(3)处理数据,将数据分成数据组并写入;

(4)继续执行步骤(3)直到数据源传递过来的数据已全部接收并处理完成;

(5)结束备份,释放资源。

优选地,所述的步骤(1)具体包括以下步骤:

(1.1)选择参与备份的磁带库驱动器;

(1.2)将步骤(1.1)中选择的磁带库驱动器均加载磁带;

(1.3)将步骤(1.2)中加载的磁带定位至可写位置。

优选地,所述的步骤(1.3)的定位操作是异步执行的,所述的步骤(1.3)执行后后台将异步持续定位至步骤(1.3)指定的位置。

优选地,所述的步骤(3)包括以下步骤:

(3.1)接收数据源端传递过来的数据,将数据按照设定数据量的比例并按照传入的顺序接收一部分数据,将该部分数据定义为一个数据组;

(3.2)依次对步骤(3.1)中的数据组进行编号,以保证数据的顺序;

(3.3)从步骤(2)中生成的写数据执行器中选择一个可写的写数据执行器;

(3.4)处理步骤(3.3)中选择的写数据执行器的数据组存储信息;

(3.5)将步骤(3.1)中获取的数据组分发到步骤(3.3)中选择的写数据执行器;

(3.6)写数据执行器将数据组按照设定的数据格式组织成二进制数据;

(3.7)将步骤(3.6)中得到的二进制数据写入写数据执行器对应磁带库驱动器中加载的磁带。

优选地,所述的步骤(3.3)中的写数据执行器是否可写,取决于磁带是否已定位至可写位置、是否正在写数据组;

若所述的磁带已定位至可写位置且未正在写数据组则定义该写数据执行器的状态的为可写,在写数据组的过程中所述的写数据执行器的状态为不可写,写数据组完成后所述的写数据执行器的状态为可写。写数据执行器的可写状态保证了一个写数据执行器同时只可能存在一个数据组,写数据组的过程中写数据执行器的状态为不可写,写数据组完成后写数据执行器的状态为可写。

优选地,所述的步骤(3.5)的数据分发操作是异步执行的,所述的步骤(3.5)将数据组分发到写数据执行器即返回。

优选地,所述的写数据执行器通过步骤(3.6)将数据组组织成二进制数据并通过后台写线程中将数据写入磁带,所述的后台写线程会在后台持续的将传入的数据写入磁带,并在完成写入后生成该数据组对应的存储信息,所述的存储信息包括磁带标签、起始物理块位置、数据组大小和数据组属性信息。

优选地,所述的步骤(3.4)包括以下步骤:

(3.4.1)判断步骤(3.3)中选择的写数据执行器是否存在已完成写操作的数据组,若不存在则执行步骤(3.5),否则继续执行;

(3.4.2)获取步骤(3.3)中选择的写数据执行器对应的已完成写操作数据组的存储信息;

(3.4.3)将步骤(3.4.2)中获取的数据组存储信息按照设定的存储格式存储。

优选地,所述的步骤(5)包括以下步骤:

(5.1)依次选择一个步骤(2)中生成的写数据执行器;

(5.2)判断步骤(5.1)中选择的写数据执行器是否存在已完成写操作的数据组,若不存在则执行步骤(5.5),否则继续执行;

(5.3)获取步骤(5.2)中写数据执行器对应的已完成写操作数据组的存储信息;

(5.4)将步骤(5.3)中获取的数据组存储信息按照设定的存储格式存储;

(5.5)继续执行步骤(5.1)直到步骤(2)中生成的写数据执行器已全部选择;

(5.6)关闭步骤(2)中生成的写数据执行器;

(5.7)释放步骤(1.1)中选择的磁带库驱动器。

优选地,所述的写数据执行器是一种用于缓存数据组并将数据组按照设定的格式组织成二进制数据并写入磁带生成数据组存储信息的逻辑体,所述的每一个写数据执行器包括一个后台写线程用于数据的写入。

本发明中数据组的编号是唯一的,编号的目的是维持数据的写入顺序。在步骤3.5中数据组的编号会随着数据组一起分发到写数据执行器中,同时也会在步骤中3.4.2中与数据组的存储信息关联。

与现有技术相比,本发明能将数据源传入的数据分发到多个磁带库驱动器中写入,以实现大幅提升数据的写入性能,突破单个磁带库驱动器的写入性能瓶颈。该方法能积极有效的帮助用户更快、更及时的完成数据保护,从而节省更多的物力人本和人力人本。

附图说明

图1为本发明的方法流程图;

图2为本发明的步骤(1)中初始化磁带库操作的流程图;

图3为本发明的步骤(3)中处理数据的流程图;

图4为本发明的步骤(5)中结束备份释放资源的流程图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明的一部分实施例,而不是全部实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都应属于本发明保护的范围。

该实例采用的操作系统为64位RedHat Enterprise 5,数据采用10个文件大小为1GB的文件。磁带库采用ULT3580-TD5,包含4个磁带库驱动器、4个磁带,磁带的可写位置均为0。数据组的大小设置为最大64MB,当剩余数据源不足64MB时允许小于64MB。

如图1-4所示,该实例包含如下步骤:

(1)初始化磁带库操作

(1.1)选择4个磁带库驱动器作为参与备份的磁带库驱动器,磁带库驱动器设备路径分别为/dev/nst0、/dev/nst1、/dev/nst2、/dev/nst3;

(1.2)将步骤(1.1)选择的4个磁带库驱动器分别加载磁带,磁带标签分别为E01001L5、E01002L5、E01003L5、E01004L5;

(1.3)将步骤(1.2)中加载的磁带定位至可写位置,各个磁带的可写位置均为0。该操作为异步操作;

(2)生成4个写数据执行器,每个写数据执行器包含一个后台写线程用于将数据写入磁带;

(3)处理数据,将数据分成数据组并写入;

(3.1)依次读取10个1GB的文件的数据并将读取的数据作为数据源传入,将数据按照传入的顺序接收最大64MB数据,将该部分数据定义为一个数据组;

(3.2)依次对步骤(3.1)中的数据组进行编号,以保证数据的顺序,编号从0开始且唯一;

(3.3)从步骤(2)中生成的写数据执行器中选择一个可写的写数据执行器;

(3.4)处理步骤(3.3)中选择的写数据执行器的数据组存储信息;

(3.4.1)判断步骤(3.3)中选择的写数据执行器是否存在已完成写操作的数据组。若不存在则执行步骤(3.5),否则继续执行;

(3.4.2)获取步骤(3.3)中选择的写数据执行器对应的已完成写操作数据组的存储信息,存储信息包含磁带标签、数据组编号、起始物理存储位置、数据组大小、数据组属性等信息;

(3.4.3)将步骤(3.4.2)中获取的数据组存储信息按照一定的存储格式存储;

(3.5)将步骤(3.1)中获取的数据组分发到步骤(3.3)选择的写数据执行器,该操作为异步操作;

(3.6)写数据执行器将数据组按照一定的数据格式组织成二进制数据;

(3.7)将步骤(3.6)中得到的二进制数据通过写线程写入写数据执行器对应磁带库驱动器中加载的磁带;

(4)继续执行步骤(3)直到数据源传递过来的数据已全部接收并处理完成;

(5)结束备份,释放资源;

(5.1)依次选择一个步骤(2)中生成的写数据执行器;

(5.2)判断步骤(5.1)中选择的写数据执行器是否存在已完成写操作的数据组。若不存在则执行步骤(5.5),否则继续执行;

(5.3)获取步骤(5.2)中写数据执行器对应的已完成写操作数据组的存储信息;

(5.4)将步骤(5.3)中获取的数据组存储信息按照一定的存储格式存储;

(5.5)继续执行步骤(5.1)直到步骤(2)中生成的写数据执行器已全部选择;

(5.6)关闭步骤(2)中生成的写数据执行器;

(5.7)释放步骤(1.1)中选择的磁带库驱动器;

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1