备份式数据存储的健康管理方法及装置与流程

文档序号:23003257发布日期:2020-11-20 11:51阅读:163来源:国知局
备份式数据存储的健康管理方法及装置与流程

本发明涉及数据存储技术领域,更具体的说,涉及备份式数据存储的健康管理方法及装置。



背景技术:

在分布式文件系统中,在备份式数据存储完成后,通常需要将其转换成编码式数据存储,而为了减少备份式数据存储方式中由于磁盘坏块导致无法转换的情况,需要对备份式数据存储的健康度进行高效管理。其中,备份式数据存储,是指在一个条带中包含至少两个数据块组,且在不同的数据块组中存储的数据之间互为备份。

现有的备份式数据存储的健康管理,通常是为条带中每个数据块组分配一个健康值。若一个数据块组中所有数据块的数据均健康,则将该数据块组的健康值设置为1(表示健康),否则将该数据块组的健康值设置为0(表示不健康)。但是,这样的健康管理方式,使得条带中只要每个数据块组中均任意出现一个坏数据块,就会导致该条带中所有数据块组的健康值均为0,进而给出该条带整体数据不可用的结果,导致数据安全性与可靠性较差,使条带中所存储的数据无法得到更加充分、更加有效的利用。

因此,目前迫切需要一种切实有效的备份式数据存储的健康管理方案,以提高数据安全性与可靠性。



技术实现要素:

有鉴于此,本发明提供了一种备份式数据存储的健康管理方法及装置,以解决现有备份式数据存储的健康管理方案的数据安全性与可靠性较差的技术问题。

为实现上述目的,本发明提供如下技术方案:

一种备份式数据存储的健康管理方法,所述健康管理方法包括:

当接收到需要写入目标文件的数据时,创建与所述目标文件相关联的条带;所述条带包括一数据块矩阵;

将所述需要写入目标文件的数据,写入到所述数据块矩阵中;所述数据块矩阵中不同行的数据之间互为备份,且所述数据块矩阵中同一列的不同数据块用于存储相同的数据;

当目标列的至少一个数据块写入数据成功时,将所述目标列的健康值设定为第一预设值;所述目标列为所述数据块矩阵中的任一列;所述第一预设值表征健康;

当所述目标列的所有数据块全部写入数据失败时,将所述目标列的健康值设定为第二预设值;所述第二预设值表征不健康。

优选的,所述健康管理方法还包括:

根据所述数据块矩阵中各个列的健康值,生成所述条带的健康值。

优选的,所述健康管理方法还包括:

当目标数据块写入数据成功时,将所述目标数据块的健康值设定为所述第一预设值;所述目标数据块为所述数据块矩阵中的任一数据块;

当所述目标数据块写入数据失败时,将所述目标数据块的健康值设定为所述第二预设值。

优选的,所述当接收到需要写入目标文件的数据时,创建与所述目标文件相关联的条带包括:

当接收到需要写入目标文件的数据时,确定创建条带所需要的数据块的数目,作为目标数目;

从预设的数据块管理池中,选取所述目标数目的数据块;其中,所述目标数目的数据块源于不同的磁盘;

将所述目标数目的数据块,组合成与所述目标文件相关联的条带。

优选的,所述条带的健康值为一数字序列,所述根据所述数据块矩阵中各个列的健康值,生成所述条带的健康值包括:

当所述目标列的健康值为所述第一预设值时,将所述数字序列中与所述目标列相对应数字位设置为所述第一预设值;

当所述目标列的健康值为所述第二预设值时,将所述数字序列中与所述目标列相对应数字位设置为所述第二预设值。

一种备份式数据存储的健康管理装置,所述健康管理装置包括:

条带创建单元,用于当接收到需要写入目标文件的数据时,创建与所述目标文件相关联的条带;所述条带包括一数据块矩阵;

数据写入单元,用于将所述需要写入目标文件的数据,写入到所述数据块矩阵中;所述数据块矩阵中不同行的数据之间互为备份,且所述数据块矩阵中同一列的不同数据块用于存储相同的数据;

健康设置单元,用于当目标列的至少一个数据块写入数据成功时,将所述目标列的健康值设定为第一预设值;当所述目标列的所有数据块全部写入数据失败时,将所述目标列的健康值设定为第二预设值;所述第二预设值表征不健康;其中,所述目标列为所述数据块矩阵中的任一列;所述第一预设值表征健康。

优选的,所述健康设置单元包括:

条带健康设置单元,用于根据所述数据块矩阵中各个列的健康值,生成所述条带的健康值。

优选的,所述健康设置单元包括:

数据块健康设置单元,用于当目标数据块写入数据成功时,将所述目标数据块的健康值设定为所述第一预设值;当所述目标数据块写入数据失败时,将所述目标数据块的健康值设定为所述第二预设值;其中,所述目标数据块为所述数据块矩阵中的任一数据块。

优选的,所述条带创建单元包括:

数据块数目确定单元,用于当接收到需要写入目标文件的数据时,确定创建条带所需要的数据块的数目,作为目标数目;

数据块选取单元,用于从预设的数据块管理池中,选取所述目标数目的数据块;其中,所述目标数目的数据块源于不同的磁盘;

数据块组合单元,用于将所述目标数目的数据块,组合成与所述目标文件相关联的条带。

优选的,所述条带的健康值为一数字序列;

所述条带健康设置单元具体用于,当所述目标列的健康值为所述第一预设值时,将所述数字序列中与所述目标列相对应数字位设置为所述第一预设值;当所述目标列的健康值为所述第二预设值时,将所述数字序列中与所述目标列相对应数字位设置为所述第二预设值。

从上述的技术方案可以看出,本发明提供的备份式数据存储的健康管理方法及装置,在将数据写入到条带的数据块矩阵中时,按照数据块矩阵的列来设置健康值;并且,在目标列中只要至少一个数据块写入数据成功,便将该目标列的健康值设定为表征健康的第一预设值;在目标列中只有所有数据块全部写入数据失败,才会将该目标列的健康值设定为表征不健康的第二预设值。这样,使得只有当条带中同一列的数据块全部损坏时才会给出条带完整数据被损坏的指示,大幅降低了条带数据不可用的概率,从而允许在较多数据块损坏的情况下,仍然保证条带数据的有效性,提高了条带数据的安全性与可靠性。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。

图1为本发明实施例提供的备份式数据存储的健康管理方法的一种流程图;

图2为本发明实施例提供的备份式数据存储的健康管理方法的另一种流程图;

图3为本发明实施例提供的备份式数据存储的健康管理方法的又一种流程图;

图4为本发明实施例提供的备份式数据存储的健康管理装置的一种结构示意图;

图5为本发明实施例提供的备份式数据存储的健康管理装置的一种结构示意图。

具体实施方式

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

备份式数据存储,也可称为“备份制”,该存储方式是指,在一个条带中包含至少两个数据块组,且不同的数据块组所存储的数据互为备份。在备份式数据存储中,一个条带中数据块的组织方式可参见下表1所示:

表1条带数据块组织方式

在表1中,一个条带中包括12个数据块,且将这12个数据块划分成了3个数据块组,其中,每一个数据块组均包括4个数据块。

各个数据块组之间所存储的数据都是相同的。即数据块组1、数据块组2和数据块组3三者所存储的数据是相同的。更细分地,不同数据块组中处于相同列的数据块所存储的数据是相同的,即数据块*1存储的数据是相同的,其中,“数据块*1”表示第1列的任意数据块组的数据块,“*”表示任意数据块组。也就是说,数据块11、数据块21、数据块31存储的数据是相同的,且其他列的数据块同理,比如,数据块*2存储的数据相同,数据块*3存储的数据相同,数据块*4存储的数据相同。

在此需要说明的是,上表1所示出的条带数据块组织方式只是其中一种示例,在实际应用中,条带中数据块的总数、数据块组的数目以及各个数据块组中所包含的数据块的个数,均可根据实际需求进行灵活配置,而并不局限于表1所示的示例。

在备份制数据存储过程中,可能某些数据块无法成功存储,可能的原因有数据块已经损坏、网络问题导致数据块存储的数据失败、磁盘已经掉线等,此时就需要使用一个比较方便的健康管理方法来管理数据存储的健康值了。这里的健康值可采用使用数字1来表示健康,使用数字0表示不健康,当然也可以选用其他数值或符号来表示健康与不健康,在此不做具体限制。

请参阅图1,图1为本发明实施例提供的备份式数据存储的健康管理方法的一种流程图。

如图1所示,所述健康管理方法包括:

s110:当接收到需要写入目标文件的数据时,创建与所述目标文件相关联的条带。

所述条带包括一数据块矩阵,该数据块矩阵的样式可参见表1所示的条带数据块组织方式中的数据块矩阵。

s120:将所述需要写入目标文件的数据,写入到所述数据块矩阵中。

所述数据块矩阵中不同行的数据之间互为备份,且所述数据块矩阵中同一列的不同数据块用于存储相同的数据。

数据块矩阵中每一行都是一个数据块组,不同的数据块组存储的数据之间互为备份。以表1所示为例,将需要写入目标文件的数据,写入到数据块组1的数据块11、数据块12、数据块13与数据块14中,数据块11、数据块12、数据块13与数据块14之间存储不同的数据,也可以是连续的数据;并且,在数据块组2与数据块组3中也写入与数据块组1完全相同的数据,使数据块组2与数据块组3成为数据块组1的镜像,也即,数据块组1、数据块组2与数据块组3之间互为备份。

具体地,数据块11、数据块21与数据块31存储相同数据,互为备份;数据块12、数据块22与数据块32存储相同数据,互为备份;数据块13、数据块23与数据块33存储相同数据,互为备份;数据块14、数据块24与数据块34存储相同数据,互为备份。

s130:当目标列的至少一个数据块写入数据成功时,将所述目标列的健康值设定为第一预设值。

所述目标列为所述数据块矩阵中的任一列。也就是说,当任一列中至少一个数据块写入数据成功时,则判定该列是健康的,将该列的健康值设定位第一预设值。所述第一预设值表征健康。“健康”即表示数据有效或数据可用。

s140:当所述目标列的所有数据块全部写入数据失败时,将所述目标列的健康值设定为第二预设值。

也就是说,当任一列中所有数据块全部写入数据失败,无一成功时,则判定该列是不健康的,将该列的健康值设定位第二预设值。所述第二预设值表征不健康。“不健康”即表示数据无效或数据不可用。

现有的技术方案是按数据块组来设置健康值,当任一数据块组中有任一数据块损坏时,则设置该数据块组的健康值为0以表示该数据块组不健康,数据完整性被破坏,这样只要在条带的各个数据块组均出现任意一坏块时就会给出条带无可用数据的结果指示。而本发明的技术方案,是按数据块矩阵的列来设置健康值,只有当条带中同一列的数据块全部损坏时,才表示条带的数据完整性被破坏,条带数据不可用。以表1为例,若只有数据块11、数据块22与数据块33损坏,现有技术方案则会将条带中所有数据块组的健康值标记为不健康,进而得出条带数据已不可用(无效)的结果,而本发明技术方案则仍会将条带中所有列均标记为健康,进而得出条带数据可用(有效)的结果。

本实施例提供的备份式数据存储的健康管理方法,在将数据写入到条带的数据块矩阵中时,按照数据块矩阵的列来设置健康值;并且,在目标列中只要至少一个数据块写入数据成功,便将该目标列的健康值设定为表征健康的第一预设值;在目标列中只有所有数据块全部写入数据失败,才会将该目标列的健康值设定为表征不健康的第二预设值。这样,使得只有当条带中同一列的数据块全部损坏时才会给出条带完整数据被损坏的指示,大幅降低了条带数据不可用的概率,从而允许在较多数据块损坏的情况下,仍然保证条带数据的有效性,提高了条带数据的安全性与可靠性。

请参阅图2,图2为本发明实施例提供的备份式数据存储的健康管理方法的另一种流程图。

如图2所示,所述方法健康管理包括:

s210:当接收到需要写入目标文件的数据时,创建与所述目标文件相关联的条带。

其中,所述条带包括一数据块矩阵。

s220:将所述需要写入目标文件的数据,写入到所述数据块矩阵中。

所述数据块矩阵中不同行的数据之间互为备份,且所述数据块矩阵中同一列的不同数据块用于存储相同的数据。

s230:当目标列的至少一个数据块写入数据成功时,将所述目标列的健康值设定为第一预设值。

所述目标列为所述数据块矩阵中的任一列;所述第一预设值表征健康。

s240:当所述目标列的所有数据块全部写入数据失败时,将所述目标列的健康值设定为第二预设值。

其中,所述第二预设值表征不健康。

在一示例中,当目标数据块写入数据成功时,将所述目标数据块的健康值设定为所述第一预设值;所述目标数据块为所述数据块矩阵中的任一数据块;当所述目标数据块写入数据失败时,将所述目标数据块的健康值设定为所述第二预设值。

通过为每一个数据块单独设置健康值,可以精确地确定出哪一个数据块是有效的,哪一个数据块是无效的,提高健康管理效率。

s250:根据所述数据块矩阵中各个列的健康值,生成所述条带的健康值。

条带中可设定多种健康值,例如,列的健康值、条带的健康值与数据块的健康值等。

本实施例提供的备份式数据存储的健康管理方法,不仅按照条带的数据块矩阵的列来设置相应的健康值,而且为条带生成相应的健康值,甚至为每一个数据块均设置相应的健康值。通过多种健康值的设置,能够提高备份式数据存储的健康管理效率与健康管理的精细化程度,从而进一步提高条带数据的安全性与可靠性。

请参阅图3,图3为本发明实施例提供的备份式数据存储的健康管理方法的又一种流程图。

如图3所示,所述健康管理方法包括:

s310:当接收到需要写入目标文件的数据时,确定创建条带所需要的数据块的数目,作为目标数目。

其中,创建条带所需的数据块的数目,可以是预先设置好的,也可以是根据需要写入目标文件的数据的数据量以及数据块的容量来确定的。

s320:从预设的数据块管理池中,选取所述目标数目的数据块。

其中,所述目标数目的数据块最好能够源于不同的磁盘。

在创建条带时,可以利用资源管理模块,确定创建条带所需要的数据块的数目,作为目标数据,然后从数据块管理池中,选取所述目标数目的数据块。

在资源管理模块中,可以采用一个数据表来管理数据块,参见下表2所示:

表2数据块管理表

其中,磁盘id用于从磁盘信息表中获取相应的磁盘的链接地址等信息,其中,磁盘信息表参见下表3所示:

表3磁盘信息表

数据服务模块用于处理用户数据,当用户需要对一个文件写入数据的时候,首先要将准备好的数据传输到数据服务模块中,数据服务模块再根据文件的id,向资源管理模块申请一个条带。

当数据服务模块需要获取一个数据块相关的信息时,资源管理模块可以通过数据块对应的磁盘id在磁盘中获取对应的磁盘id相关的信息,然后获取相应磁盘的链接地址,并和数据块一并返回给数据处理模块。

在选取数据块时,需要选取使用标志为0(表示未被使用)的数据块,并且,尽量按照不同的磁盘(即不同的磁盘id)来获取数据块,使获取到的数据块能够源于不同的磁盘。这是因为,当选取的数据块全都源于同一磁盘时,若这一磁盘发生了损坏,则将会直接导致所有数据块损坏,降低数据安全性较差;而当选取源于不同的磁盘的数据块来创建条带时,一个磁盘的损坏并不会导致所有数据块全部损坏,从而能够从另一方面进一步提高条带数据的安全性与可靠性。

s330:将所述目标数目的数据块,组合成与所述目标文件相关联的条带。

其中,所述条带包括一数据块矩阵。

例如,当需要12个数据块时,从数据块管理池中获取12个使用标志为0的数据块,然后随机组合成一个条带。假设从数据块管理池中获取到12个数据块,并随机组合后,分别为数据块0、数据块1、数据块2,……,数据块11。

然后,按照表1的方式进行分组,将数据块0、数据块1、数据块2、数据块3分成数据块组1;将数据块4、数据块5、数据块6、数据块7分成数据块组2;数据块8、数据块9、数据块10、数据块11分组成数据块组3。然后,就得到了下表4的结果。

表4条带数据块组合示例

将这个组合的数据块的数据块id按照其顺序存储到一个条带中,那么这个条带可如下表5所示:

表5条带信息表

当资源管理模块将数据块组织好后,将相关信息写入到一个新的条带中,并生成一个新的条带id,并写入到该条带对应的数据表中,且设置初始值,这个过程则称为条带的分配过程,也可称为条带的创建过程。

s340:将所述需要写入目标文件的数据,写入到所述数据块矩阵中。

所述数据块矩阵中不同行的数据之间互为备份,且所述数据块矩阵中同一列的不同数据块用于存储相同的数据。

其中,目标文件的文件描述可参见下表6所示:

表6文件描述表

当条带创建成功并写入数据后,系统会将条带id存放到目标文件对应的条带列表的尾部,条带列表中存储的就是条带的id,然后将这个条带的相关信息返回给数据服务模块。其中,返回给数据服务模块的条带信息参见下表7所示:

表7返回的条带信息表

在上表7中,数据块列表可包含多个数据块的信息,所有的数据块都是按照其保存在条带信息表中的顺序排列的,且用于保证存储的数据的顺序。

数据服务模块在收到到表7后,便将其转换成表8所示的数据结构,具体如下:

表8处理后的条带信息表

数据服务模块首先确定需要写入目标文件的数据的大小,若根据数据的大小与条带的容量,判断出数据足以在一个条带内进行存储,那么就将该数据直接存储到这个条带对应的磁盘上,待存储成功后再汇报给资源管理模块,同时将新存储的文件大小汇报给资源管理模块,资源管理模块将该文件的大小上增加新存储的数据的大小,同时将表8汇报给资源管理模块,资源管理模块根据表8更新条带的健康值和条带中每一个数据块的健康值。

当一个条带存储满了以后,若需要写入目标文件的数据中还有剩余的数据没有被存储,则在资源管理模块将该文件的大小上增加新存储的数据的大小之后,重新分配一个新的条带,来存储剩下没有存储完毕的数据。

s350:当目标列的至少一个数据块写入数据成功时,将所述目标列的健康值设定为第一预设值。

其中,所述目标列为所述数据块矩阵中的任一列;所述第一预设值表征健康。

s360:当所述目标列的所有数据块全部写入数据失败时,将所述目标列的健康值设定为第二预设值。

其中,所述第二预设值表征不健康。

在获得数据块矩阵中各个列的健康值之后,还可以根据所述数据块矩阵中各个列的健康值,来生成所述条带的健康值,其中,所述条带的健康值可以具体为一数字序列。

s370:当所述目标列的健康值为所述第一预设值时,将所述数字序列中与所述目标列相对应数字位设置为所述第一预设值。

s380:当所述目标列的健康值为所述第二预设值时,将所述数字序列中与所述目标列相对应数字位设置为所述第二预设值。

其中,数字序列中的数字位与所述数据块矩阵的列,一一对应。

在一示例中,第一预设值为1,第二预设值为0。数据块矩阵的列数为n,数据块矩阵的列索引号为i,i∈[0,n-1]。条带的健康值(也即数字序列)为二进制序列,初始值为0000b,其中,b表示二进制单位。

当目标列写入数据成功时,将数值1左移y位后与初始值0000b进行“求或”计算,即,条带健康值|(1<<y),得到条带的健康值。其中,y的值为所述目标列索引号。

当目标列写入数据失败时,将数值1左移y位后取反,再与初始值0000b进行“求与”计算,即,条带健康值&[~(1<<y)],得到条带的健康值。

其中:“|”表示或运算;“&”表示与运算;“~”表示取反运算;“<<”表示左移运算。

当所有列的健康值均为1时,条带的健康值为1111b,否则条带中相应列所对应的数字位为0,如1011b、1101b、0101b等。

本实施例提供的备份式数据存储的健康管理方法,当接收到需要写入目标文件的数据时,确定创建条带所需要的数据块的数目,作为目标数目;从预设的数据块管理池中,选取所述目标数目的数据块;其中,所述目标数目的数据块源于不同的磁盘;将所述目标数目的数据块,组合成与所述目标文件相关联的条带,提高了数据块与条带组合的灵活度,也进一步提高了数据安全性与可靠性。

以一个具体应用场景为例,一个条带有3个数据块组,每一个数据块组均有4个数据块,每一个数据块均能够存储4m的数据。那么一个数据块组最大能够存储16m的数据,也即一个条带最大能够存储16m的数据。一个数据块组能够存储的最大数据量就是一个条带能够存储的最大数据量,这是因为不同数据块组之间的数据互为备份,其他数据块组所存储的数据,并不能增加一个数据块组所能够存储的数据量。

首先将用户数据重复地存储到每一个数据块组的第一个数据块中,即写入到数据块*1中。其中,在存储数据之前,需要先连接各个数据块对应的磁盘,连接完毕后,再将数据存储到磁盘的对应的位置上。一个条带中的每一个数据块都描述了相应的磁盘信息,且每一个数据块在条带中的位置是固定的。其中,数据块在条带中的位置的计算方法为:通过每一个数据块对应的数据块编号乘以数据块大小。最后将需要存储的数据写入到对应的磁盘的指定位置。

若数据块*1中所有的数据都写入成功,则将数据块*1中每一个数据块的健康值都标记为1,且数据块*1对应列的健康值也都标记为1。由于数据块1在条带中的序号为0,那么条带的健康值设置为其当前健康值逻辑或上1,例如,条带的健康值的初始值为0000b,则设置后为0001b。

若数据块*1中有一个数据块写入数据失败,在此假设数据块21写入数据失败,则将这个数据块的健康值标记为0,而数据块*1对应列的健康值以及条带的健康值均保持不变。

若数据块*1中所有的数据块都无法进行存储,那么就将数据块*1中每一个数据块的健康值都标记为0,且数据块*1对应列的健康值也都标记为0,条带的健康值对应的数字位标记为0,此时表示这个条带的完整数据已遭损坏,然后将相关结果(数据块的健康值与条带的健康值等)存储到资源管理模块中,并返回该文件存储失败的提示信息,以便人工干预排查问题。

通过本发明的备份式数据存储的健康管理方法,可以看出,同一列的多个数据块(数据块*1)中最多可以损坏2个数据块。当第1列的数据块完成数据存储后,再依次继续第2列数据块的数据存储、第3列数据块的数据存储、第4列数据块的数据存储等,以此类推,直到将这个条带存储完毕或这个条带存储了部分数据后文件存储结束。通过上面的操作,只有条带的数据块矩阵中同一列的数据块均发生损毁时,才会给出条带完整数据被损坏的结果,而并不会在条带的各个数据块组均出现任一坏块时,就会给出条带完整数据被损坏的结果。显然,所有数据块组的同一列均发生损毁的概率,远远低于所以数据块组均出现任一坏块的概率,所以,本发明的备份式数据存储的健康管理方法,对于条带的数据安全性有着显著提高。

本发明实施例还提供了备份式数据存储的健康管理装置,所述备份式数据存储的健康管理装置用于实施本发明实施例提供的备份式数据存储的健康管理方法,下文描述的备份式数据存储的健康管理装置的技术内容,可与上文描述的备份式数据存储的健康管理方法的技术内容与相互对应参照。

请参阅图4,图4为本发明实施例提供的备份式数据存储的健康管理装置的一种结构示意图。

如图4所示,所述健康管理装置包括:条带创建单元10、数据写入单元20与健康设置单元30。

条带创建单元10,用于当接收到需要写入目标文件的数据时,创建与所述目标文件相关联的条带。

其中,所述条带包括一数据块矩阵。

数据写入单元20,用于将所述需要写入目标文件的数据,写入到所述数据块矩阵中。

其中,所述数据块矩阵中不同行的数据之间互为备份,且所述数据块矩阵中同一列的不同数据块用于存储相同的数据;

健康设置单元30,用于当目标列的至少一个数据块写入数据成功时,将所述目标列的健康值设定为第一预设值;当所述目标列的所有数据块全部写入数据失败时,将所述目标列的健康值设定为第二预设值。

其中,所述第二预设值表征不健康;所述目标列为所述数据块矩阵中的任一列;所述第一预设值表征健康。

本实施例提供的备份式数据存储的健康管理装置,在将数据写入到条带的数据块矩阵中时,按照数据块矩阵的列来设置健康值;并且,在目标列中只要至少一个数据块写入数据成功,便将该目标列的健康值设定为表征健康的第一预设值;在目标列中只有所有数据块全部写入数据失败,才会将该目标列的健康值设定为表征不健康的第二预设值。这样,使得只有当条带中同一列的数据块全部损坏时才会给出条带完整数据被损坏的指示,大幅降低了条带数据不可用的概率,从而允许在较多数据块损坏的情况下,仍然保证条带数据的有效性,提高了条带数据的安全性与可靠性。

请参阅图5,图5为本发明实施例提供的备份式数据存储的健康管理装置的另一种结构示意图。

如图5所示,本实施例的健康管理装置包括前述实施例中的条带创建单元10、数据写入单元20与健康设置单元30。

其中,所述条带创建单元10包括:数据块数目确定单元11、数据块选取单元12与数据块组合单元13。

数据块数目确定单元11,用于当接收到需要写入目标文件的数据时,确定创建条带所需要的数据块的数目,作为目标数目;

数据块选取单元12,用于从预设的数据块管理池中,选取所述目标数目的数据块;其中,所述目标数目的数据块源于不同的磁盘;

数据块组合单元13,用于将所述目标数目的数据块,组合成与所述目标文件相关联的条带。

其中,所述健康设置单元30包括:列健康值设置单元31、条带健康设置单元32与数据块健康设置单元33。

列健康设置单元31,用于当目标列的至少一个数据块写入数据成功时,将所述目标列的健康值设定为第一预设值;当所述目标列的所有数据块全部写入数据失败时,将所述目标列的健康值设定为第二预设值。

条带健康设置单元32,用于根据所述数据块矩阵中各个列的健康值,生成所述条带的健康值。

数据块健康设置单元33,用于当目标数据块写入数据成功时,将所述目标数据块的健康值设定为所述第一预设值;当所述目标数据块写入数据失败时,将所述目标数据块的健康值设定为所述第二预设值;其中,所述目标数据块为所述数据块矩阵中的任一数据块。

其中,所述条带的健康值为一数字序列;

所述条带健康设置单元32具体用于,当所述目标列的健康值为所述第一预设值时,将所述数字序列中与所述目标列相对应数字位设置为所述第一预设值;当所述目标列的健康值为所述第二预设值时,将所述数字序列中与所述目标列相对应数字位设置为所述第二预设值。

本实施例提供的备份式数据存储的健康管理装置,不仅按照条带的数据块矩阵的列来设置相应的健康值,而且为条带生成相应的健康值,甚至为每一个数据块均设置相应的健康值。通过多种健康值的设置,能够提高备份式数据存储的健康管理效率与健康管理的精细化程度,从而进一步提高条带数据的安全性与可靠性。

并且,当接收到需要写入目标文件的数据时,确定创建条带所需要的数据块的数目,作为目标数目;从预设的数据块管理池中,选取所述目标数目的数据块;其中,所述目标数目的数据块源于不同的磁盘;将所述目标数目的数据块,组合成与所述目标文件相关联的条带,提高了数据块与条带组合的灵活度,也进一步提高了数据安全性与可靠性。。

本发明实施例提供的备份式数据存储的健康管理装置,包括处理器和存储器,上述条带创建单元10、数据写入单元20、健康设置单元30、数据块数目确定单元11、数据块选取单元12、数据块组合单元13、列健康值设置单元31、条带健康设置单元32与数据块健康设置单元33等均作为程序单元存储在存储器中,由处理器执行存储在存储器中的上述程序单元来实现相应的功能。

处理器中包含内核,由内核去存储器中调取相应的程序单元。内核可以设置一个或以上,通过调整内核参数来解决目前备份式数据存储的数据安全性与可靠性较差的技术问题。

存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flashram),存储器包括至少一个存储芯片。

本发明实施例提供了一种存储介质,其上存储有程序,该程序被处理器执行时实现前述的备份式数据存储的健康管理方法的步骤。

本发明实施例提供了一种处理器,所述处理器用于运行程序,其中,所述程序运行时执行前述的备份式数据存储的健康管理方法的步骤。

本发明实施例提供了一种设备,设备包括处理器、存储器及存储在存储器上并可在处理器上运行的程序,处理器执行程序时实现前述的备份式数据存储的健康管理方法的步骤。

本文中的设备可以是服务器、pc、pad、手机等。

本申请还提供了一种计算机程序产品,当在数据处理设备上执行时,适于执行初始化有前述的备份式数据存储的健康管理方法的步骤的程序。

最后,还需要说明的是,在本文中,诸如第一和第一等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式来实现。基于这样的理解,本申请的技术方案对背景技术做出贡献的全部或者部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例或者实施例的某些部分所述的方法。

本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。

本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处。综上所述,本说明书内容不应理解为对本申请的限制。

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