本公开涉及存储、数据冗余处理、独立磁盘冗余阵列(redundant array ofindependent disk,raid)和磁带驱动器领域,并提供一种用于改进的以顺序访问的方式对数据进行冗余存储的设备。此外,本公开提供了对应的方法和计算机程序。
背景技术:
1、在常规的存储系统中,使用纠删码进行数据的冗余存储。再生码是另一种类型的纠删码,它支持更快地重建。纠删码是支持在部分数据丢失的情况下恢复数据的编码。例如,独立磁盘冗余阵列(redundant array of independent disk,raid)5(其概念在图7中示出)使用一个额外的磁盘,该磁盘包括所有其它设备中的奇偶校验数据,并支持在一个磁盘出现故障的情况下恢复丢失的数据。例如,raid 6是支持在两个驱动器发生故障的情况下重建数据的方案。raid 5和raid 6需要在驱动器发生故障的情况下从剩余磁盘读取所有数据。
2、其它编码(例如zigzag编码)支持在驱动器出现故障的情况下读取显著更少的数据,并且还可以修复多于一个磁盘故障。不幸的是,zigzag编码量会呈指数级增长,因此对于具有10个以上磁盘驱动器的系统来说并不实用。
3、作为常规示例,图7中示出了具有两个数据磁盘和一个奇偶校验磁盘的raid 5系统。对磁盘进行切片,每个切片保留奇偶校验。针对每个切片,包括奇偶校验的磁盘都不同——对于第一切片,数据位于前两个磁盘a1、a2中,奇偶校验ap=(a1 xor a2)存储在第三磁盘上。对于第二切片,奇偶校验存储在第一磁盘上,数据存储在其它两个磁盘上。在磁盘2发生故障的情况下,可以使用(disk0 xor disk1)恢复磁盘中的每个块。在磁带系统raid(称为独立磁带冗余阵列(redundant array of independent tape,rait))中,数据通常被写入多个磁带,这些磁带显示为单个磁带。例如,图8示出了文件a的后续块如何以轮循(round robin)方式写入三个磁带驱动器。由于文件a要写入磁带驱动器,所述磁带驱动器仅支持顺序访问,因此文件a也可以称为“顺序访问数据”。如图所示,文件a被条带化到三个物理磁带驱动器,但这些磁带驱动器被可视化以呈现为单个驱动器。
4、支持raid(即rait)的磁带库直接将数据写入具有奇偶校验的磁带,这表示所需的磁带驱动器的数量决定了系统的可用raid。
5、缺点是需要很多磁带驱动器才能实现具有大奇偶校验数、小开销的raid。
6、因此,需要一种改进的用于存储顺序访问数据的冗余机制。
技术实现思路
1、鉴于上述问题,本公开实施例的目的是提供一种改进的用于存储顺序访问数据的冗余机制。
2、该目的或其它目的可以通过如所附独立权利要求中描述的本公开实施例实现。本公开的实施例的有利实现方式在从属权利要求中进一步定义。
3、本公开的第一方面提供了一种用于顺序访问数据冗余处理的设备,其中,所述设备用于:将预定义量的数据存储在顺序访问数据存储器(sequential access data store,sads)中;基于所述预定义量的数据确定奇偶校验信息;当所述预定义量的数据被存储在所述sads中时,将所述奇偶校验信息存储在所述sads中。
4、这确保了当预定义量的数据已经存储在sads中时,奇偶校验信息被存储在sads中。也就是说,由于在存储预定义量的数据期间改变的奇偶校验信息可以与预定义量的数据分开存储,因此提高了存储顺序访问数据的效率并且减少了开销。
5、具体地,设备用于在将预定义数量的数据存储到sads之前先获取该预定义量的数据。具体地,预定义量的数据是从外部设备获取的。
6、具体地,sads可以在用于顺序访问数据冗余处理的设备的外部。具体地,sads可以是用于顺序访问数据冗余处理的设备的一部分。
7、具体地,顺序访问数据包括要存储在sads中的数据。
8、在所述第一方面的一种实现方式中,所述设备还用于:当所述预定义量的数据被完全存储在所述sads中时,将所述奇偶校验信息存储在所述sads中。
9、这确保了奇偶校验信息在被存储在sads中之前可以被完全计算,从而减少了开销(例如,对于将奇偶校验信息临时存储在sads中)并进一步提高了效率。
10、在所述第一方面的另一种实现方式中,所述设备还用于将所述奇偶校验信息存储在直接访问数据存储器(direct access data store,dads)中。
11、这确保了奇偶校验信息可以以支持直接访问奇偶校验信息的方式进行存储,这在计算奇偶校验信息期间非常高效,因为奇偶校验信息不需要以顺序访问方式进行存储。
12、具体地,dads可以在用于顺序访问数据冗余处理的设备的外部。具体地,dads可以是用于顺序访问数据冗余处理的设备的一部分。
13、在所述第一方面的另一种实现方式中,所述设备还用于:在所述奇偶校验信息被存储在所述sads中之前,将所述奇偶校验信息存储在所述dads中。
14、这是有利的,因为在存储预定义量的数据期间不需要将奇偶校验信息存储到sads。
15、在所述第一方面的另一种实现方式中,所述设备还用于:对于正在被存储在所述sads中的所述预定义量的数据的每个元素,更新所述奇偶校验信息。
16、这确保了可以例如在将奇偶校验信息存储至dads中时对其进行更新,使得奇偶校验信息只需要被写入sads一次。
17、具体地,元素包括以下中的至少一者:文件;数据块。
18、在所述第一方面的另一种实现方式中,与所述sads相比,所述dads是较高存储层级的存储。
19、这是有利的,因为较高的存储层级支持对数据的直接访问,而较低的存储层级仅支持数据的顺序访问。
20、在所述第一方面的另一种实现方式中,所述dads包括以下中的至少一者:一级存储、二级存储。
21、这确保了可以使用能支持有效地使用数据直接访问的存储类型。
22、在所述第一方面的另一种实现方式中,所述一级存储包括以下中的至少一者:主存储器、随机存取存储器。
23、这确保了可以使用能支持有效地使用数据直接访问的存储器类型。
24、在所述第一方面的另一种实现方式中,所述二级存储包括以下中的至少一者:大容量存储设备、硬盘驱动器、固态硬盘、闪存驱动器、ram磁盘、非易失性存储器。
25、这确保了可以使用能支持有效地使用数据直接访问的存储器或磁盘类型。
26、在所述第一方面的另一种实现方式中,所述sads包括三级存储。
27、这确保了可以使用能支持有效地使用数据顺序访问的存储类型。
28、在所述第一方面的另一种实现方式中,所述三级存储包括磁带驱动器。
29、这确保了可以使用能支持有效地使用数据顺序访问的驱动器类型。
30、在所述第一方面的另一种实现方式中,所述sads包括x个存储实体,其中,x是大于1的整数,并且所述x个存储实体中的每个存储实体可以存储相同数量的数据。x个存储实体中的一个或多个存储实体可以存储不同数量的数据也是可能的。
31、这确保了可以使用x个存储(例如磁带驱动器)来实现sads。
32、具体地,存储实体是虚拟或物理存储驱动器。具体地,存储实体中的存储介质可以在将预定义量的数据存储在sads中期间被更换。例如,如果存储实体是磁带驱动器,则磁带驱动器中的磁带已满时,可以更换磁带。
33、在所述第一方面的另一种实现方式中,所述dads包括用于y个存储实体的存储空间,其中,所述y个存储实体中的每个存储实体可以存储与所述x个存储实体中的存储实体相同数量的数据。
34、这确保了dads和sads可以灵活地实现所需的raid级别。
35、具体地,x和y的比值对应于通过所述设备存储预定义数量的数据时,该预定义量的数据的raid级别。
36、具体地,术语raid是指廉价磁盘冗余阵列。
37、本公开的第二方面提供了一种用于顺序访问数据冗余处理的方法,所述方法包括以下步骤:设备将预定义量的数据存储在顺序访问数据存储器(sequential access datastore,sads)中;所述设备基于所述预定义量的数据确定奇偶校验信息;当所述预定义量的数据被存储在所述sads中时,所述设备将所述奇偶校验信息存储在所述sads中。
38、在所述第二方面的一种实现方式中,所述方法还包括:当所述预定义量的数据被完全存储在所述sads中时,所述设备将所述奇偶校验信息存储在所述sads中。
39、在所述第二方面的另一种实现方式中,所述方法还包括:所述设备将所述奇偶校验信息存储在直接访问数据存储器(direct access data store,dads)中。
40、在所述第二方面的另一种实现方式中,所述方法还包括:所述设备在所述奇偶校验信息被存储在所述sads中之前,将所述奇偶校验信息存储在所述dads中。
41、在所述第二方面的另一种实现方式中,所述方法还包括:所述设备对于正在被存储在所述sads中的所述预定义量的数据的每个元素,更新所述奇偶校验信息。
42、在所述第二方面的另一种实现方式中,与所述sads相比,所述dads是较高存储层级的存储。
43、在所述第二方面的另一种实现方式中,所述dads包括以下中的至少一者:一级存储、二级存储。
44、在所述第二方面的另一种实现方式中,所述一级存储包括以下中的至少一者:主存储器、随机存取存储器。
45、在所述第二方面的另一种实现方式中,所述二级存储包括以下中的至少一者:大容量存储设备、硬盘驱动器、固态硬盘、闪存驱动器、ram磁盘、非易失性存储器。
46、在所述第二方面的另一种实现方式中,所述sads包括三级存储。
47、在所述第二方面的另一种实现方式中,所述三级存储包括磁带驱动器。
48、在所述第二方面的另一种实现方式中,所述sads包括x个存储实体,其中,x是大于1的整数,并且所述x个存储实体中的每个存储实体可以存储相同数量的数据。x个存储实体中的一个或多个存储实体可以存储不同数量的数据也是可能的。
49、在所述第二方面的另一种实现方式中,所述dads包括用于y个存储实体的存储空间,其中,所述y个存储实体中的每个存储实体可以存储与所述x个存储实体中的存储实体相同数量的数据。
50、第二方面及其实现方式包括与第一方面及其相应的实现方式相同的优点。
51、本公开的第三方面提供了一种包括指令的计算机程序,当所述程序由计算机执行时,所述指令使所述计算机执行根据第二方面或其任何实现方式所述的方法。
52、第三方面包括与第一方面及其相应的实现方式相同的优点。
53、需要说明的是,本技术中所述的所有设备、元件、单元和装置都可以在软件或硬件元件或其任何种类的组合中实现。本技术中描述的各种实体执行的所有步骤以及所描述的将由各种实体执行的功能旨在表明相应的实体用于执行相应的步骤和功能。虽然在以下具体实施例的描述中,外部实体执行的具体功能或步骤没有在执行具体步骤或功能的实体的具体详述元件的描述中反映,但是技术人员应清楚,这些方法和功能可以通过相应的硬件或软件元件或其任何组合实现。
1.一种用于顺序访问数据冗余处理的设备(100),其中,所述设备(100)用于:
2.根据权利要求1所述的设备(100),其中,所述设备(100)还用于:当所述预定义量的数据(101)被完全存储在所述sads(102)中时,将所述奇偶校验信息(103)存储在所述sads(102)中。
3.根据权利要求1或2所述的设备(100),其中,所述设备(100)还用于将所述奇偶校验信息(103)存储在直接访问数据存储器dads(201)中。
4.根据前述权利要求中任一项所述的设备(100),其中,所述设备(100)还用于:在所述奇偶校验信息(103)被存储在所述sads(102)中之前,将所述奇偶校验信息(103)存储在所述dads(201)中。
5.根据前述权利要求中任一项所述的设备(100),其中,所述设备(100)还用于:对于正在被存储在所述sads(102)中的所述预定义量的数据(101)的每个元素(202),更新所述奇偶校验信息(103)。
6.根据前述权利要求中任一项所述的设备(100),其中,与所述sads(102)相比,所述dads(201)是较高存储层级的存储。
7.根据前述权利要求中任一项所述的设备(100),其中,所述dads(201)包括以下中的至少一者:一级存储(203)、二级存储(204)。
8.根据权利要求7所述的设备(100),其中,所述一级存储(203)包括以下中的至少一者:主存储器、随机存取存储器。
9.根据权利要求7或8所述的设备(100),其中,所述二级存储(204)包括以下中的至少一者:大容量存储设备、硬盘驱动器、固态硬盘、闪存驱动器、ram磁盘、非易失性存储器。
10.根据前述权利要求中任一项所述的设备(100),其中,所述sads(102)包括三级存储(205)。
11.根据权利要求10所述的设备(100),其中,所述三级存储(205)包括磁带驱动器。
12.根据前述权利要求中任一项所述的设备(100),其中,所述sads(102)包括x个存储实体,其中,x是大于1的整数,且所述x个存储实体中的每个存储实体可以存储相同数量的数据。
13.根据权利要求3至12中任一项所述的设备(100),其中,所述dads(201)包括用于y个存储实体的存储空间,其中,所述y个存储实体中的每个存储实体可以存储与所述x个存储实体中的存储实体相同数量的数据。
14.一种用于顺序访问数据冗余处理的方法(600),其中,所述方法(600)包括以下步骤:
15.一种包括指令的计算机程序,其中,所述指令当由计算机执行时,使所述计算机执行根据权利要求14所述的方法(600)。
