存储文件的方法和装置制造方法

文档序号:6532528阅读:149来源:国知局
存储文件的方法和装置制造方法
【专利摘要】本发明公开了一种存储文件的方法和装置。该方法包括:确定待存储的文件的数据块的个数T,T为正整数;若T小于N,则按照冗余关系将该文件组织为包括N个数据块和M个校验块的数据块集合,其中,该N个数据块包括该文件的T个数据块以及无效数据块,该无效数据块中的数据为零,N和M为正整数;存储该文件的T个数据块和该M个校验块。本发明实施例的存储文件的方法和装置,能够节省存储空间和提高读写效率。
【专利说明】存储文件的方法和装置
【技术领域】
[0001]本发明涉及信息【技术领域】,尤其涉及存储文件的方法和装置。
【背景技术】
[0002]现有技术在按照冗余关系组织文件并存储时,例如,按照冗余关系将文件组织为分条(stripe)存储时,会将整个分条存储到磁盘。在文件数据的大小小于一个分条大小时,也会存储整个分条,即占用一个分条大小的磁盘空间。比如,在纠删码(Erasure Code)冗余方式中,将N份数据进行Erasure Code冗余校验计算,计算之后产生M份冗余。在文件数据不足N份数据时,会添加零以补足N份数据。N分数据和M份冗余组成一个分条,在存储时会将N分数据和M份冗余都存储到磁盘,这样会造成多占用存储空间。在独立冗余磁盘阵列(Redundant Array of Inexpensive Disks, RAID)方式中,如果文件大小不足一个分条,也会占用一个分条大小的磁盘空间,导致多占用存储空间。

【发明内容】

[0003]本发明实施例提供了一种存储文件的方法和装置,能够节省存储空间。
[0004]第一方面,提供了一种存储文件的方法,包括:确定待存储的文件的数据块的个数T,T为正整数;若T小于N,则按照冗余关系将该文件组织为包括N个数据块和M个校验块的数据块集合,其中,该N个数据块包括该文件的T个数据块以及无效数据块,该无效数据块中的数据为零,N和M为正整数;存储该文件的T个数据块和该M个校验块。
[0005]在第一种可能的实现方式中,该方法还包括:
[0006]记录该N个数据块的存储情况。
[0007]结合第一方面的第一种可能的实现方式,在第二种可能的实现方式中,记录该N个数据块的存储情况,包括:
[0008]通过位图Bitmap标识该N个数据块中的每一个数据块是否被存储。
[0009]结合第一方面的第一种可能的实现方式,在第三种可能的实现方式中,记录该N个数据块的存储情况,包括:
[0010]记录被存储的该文件的T个数据块的总大小。
[0011]结合第一方面的第一至三种可能的实现方式中的任一种可能的实现方式,在第四种可能的实现方式中,记录该N个数据块的存储情况,包括:
[0012]在该文件的元数据中记录该存储情况。
[0013]结合第一方面的第一至四种可能的实现方式中的任一种可能的实现方式,在第五种可能的实现方式中,该方法还包括:
[0014]在读取该文件的数据时,获取该存储情况;
[0015]根据该存储情况确定该文件被存储的T个数据块;
[0016]读取该T个数据块和该M个校验块。
[0017]第二方面,提供了一种存储文件的装置,包括:确定模块,用于确定待存储的文件的数据块的个数T,T为正整数;处理模块,用于在T小于N的情况下按照冗余关系将该文件组织为包括N个数据块和M个校验块的数据块集合,其中,该N个数据块包括该文件的T个数据块以及无效数据块,该无效数据块中的数据为零,N和M为正整数;存储模块,用于存储该文件的T个数据块和该M个校验块。
[0018]在第一种可能的实现方式中,该装置还包括:
[0019]记录模块,用于记录该N个数据块的存储情况。
[0020]结合第二方面的第一种可能的实现方式,在第二种可能的实现方式中,该记录模块具体用于通过位图Bitmap标识该N个数据块中的每一个数据块是否被存储。
[0021]结合第二方面的第一种可能的实现方式,在第三种可能的实现方式中,该记录模块具体用于记录被存储的该文件的T个数据块的总大小。
[0022]结合第二方面的第一至三种可能的实现方式中的任一种可能的实现方式,在第四种可能的实现方式中,该记录模块具体用于在该文件的元数据中记录该存储情况。
[0023]结合第二方面的第一至四种可能的实现方式中的任一种可能的实现方式,在第五种可能的实现方式中,该装置还包括:
[0024]读取模块,用于在读取该文件的数据时,获取该存储情况,根据该存储情况确定该文件被存储的T个数据块,读取该T个数据块和该M个校验块。
[0025]基于上述技术方案,本发明实施例的存储文件的方法和装置,通过在待存储的文件的数据块的个数小于组织数据块集合所需的数据块的个数时,只存储数据块集合中该文件的数据块以及校验块,能够节省存储空间和提闻读与效率。
【专利附图】

【附图说明】
[0026]为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0027]图1是根据本发明实施例的分条的示意图。
[0028]图2是根据本发明实施例的存储文件的方法的示意性流程图。
[0029]图3是根据本发明实施例的小文件存储的示意图。
[0030]图4是根据本发明实施例的存储情况记录的示意图。
[0031]图5是根据本发明实施例的读取文件的方法的示意图。
[0032]图6是根据本发明实施例的文件大小变化的示意图。
[0033]图7是根据本发明实施例的存储文件的装置的示意性框图。
[0034]图8是根据本发明另一实施例的存储文件的装置的示意性框图。
[0035]图9是根据本发明又一实施例的存储文件的装置的结构图。
【具体实施方式】
[0036]下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明的一部分实施例,而不是全部实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动的前提下所获得的所有其他实施例,都应属于本发明保护的范围。
[0037]本发明实施例的技术方案可以用于以冗余关系组织文件的系统,该冗余关系可以是Erasure Code冗余关系或者其他冗余关系,本发明实施例对此不限定。
[0038]本发明实施例中的数据块集合包括按照冗余关系组织的N个数据块和M个校验块。该数据块集合可以为分条,但本发明实施例对此并不限定。
[0039]例如,如图1所示,一个分条由四个数据块和两个校验块构成,它们之间存在Erasure Code冗余关系。应理解,图1只是示例,不应对本发明实施例构成限定。
[0040]图2示出了根据本发明实施例的存储文件的方法100的示意性流程图。图2的方法由存储文件的装置执行。如图2所示,该方法100包括:
[0041]SI 10,确定待存储的文件的数据块的个数T,T为正整数;
[0042]S120,若T小于N,则按照冗余关系将该文件组织为包括N个数据块和M个校验块的数据块集合,其中,该N个数据块包括该文件的T个数据块以及无效数据块,该无效数据块中的数据为零,N和M为正整数;
[0043]S130,存储该文件的T个数据块和该M个校验块。
[0044]在本发明实施例中,存储文件的装置在按照冗余关系将待存储文件组织为包括N个数据块和M个校验块的数据块集合并存储时,首先确定待存储的文件的数据块的个数T。在T小于N时,即该文件的数据块的个数小于上述数据块集合所需要的数据块的个数(这种情况中的文件称为小文件)时,该数据块集合的N个数据块包括该文件的T个数据块以及无效数据块,其中,该无效数据块中的数据为零。也就是说,在这种情况下,数据块集合包括待存储文件的数据块,无效数据块以及校验块。然后,存储文件的装置只存储该文件的T个数据块和该M个校验块,即只将该文件的T个数据块和该M个校验块存储到磁盘,而不存储无效数据块。
[0045]在现有技术中,在T小于N时,也是存储全部N个数据块以及M个校验块。例如,如图1所示,在文件的数据只够一个数据块时,后面三个无效数据块也要存储到磁盘上,在读取数据时也要读取所有的数据块,这样不但占用了空间,读取效率也较低。
[0046]而在本发明实施例中,只存储T个数据块和M个校验块,因此,节省了存储空间。并且,在读写文件时所读写的数据块个数也减少,读写效率也能够提高。
[0047]因此,本发明实施例的存储文件的方法,通过在待存储的文件的数据块的个数小于组织数据块集合所需的数据块的个数时,只存储数据块集合中该文件的数据块以及校验块,能够节省存储空间和提高读写效率。
[0048]在本发明实施例中,可选地,该方法100还包括:
[0049]记录该N个数据块的存储情况。
[0050]在存储该文件的T个数据块和该M个校验块时,存储文件的装置同时记录该N个数据块的存储情况。也就是说,记录该N个数据块中各数据块被存储的情况。该存储情况用于在读取文件时确定文件有几个数据块。具体而言,由于没有存储全部N个数据块,文件的数据块个数不是固定的N个,因此,需要该存储情况以便于在读取文件时确定文件的数据块个数。
[0051]在SllO中,存储文件的装置确定待存储的文件的数据块的个数T。
[0052]具体而言,存储文件的装置根据待存储的文件的大小以及数据块的大小确定待存储的文件的数据块的个数T,其中数据块大小可以预先设定。例如,若数据块大小为128Κ,待存储的文件为100Κ,则T为I ;若待存储的文件为300Κ,则T为3。
[0053]在S120中,存储文件的装置在T小于N时,按照冗余关系将该文件组织为包括N个数据块和M个校验块的数据块集合,其中,该N个数据块包括该文件的T个数据块以及无效数据块,该无效数据块中的数据为零。
[0054]数据块集合为由冗余关系所决定的数据块和校验块的集合。在N份数据和M份冗余的冗余关系中,需要根据N份数据计算得到M份冗余。也就是说,需要根据N个数据块计算产生M个校验块。在本发明实施例中,当T小于N时,即待存储的文件的数据块个数小于根据冗余关系组织数据块集合所需的数据块时,在组织数据块集合时,仍然通过补充零以补足N个数据块。这些通过补充零得到的数据块称为无效数据块。例如,如图3所示,若N为4,Μ为2,即数据块集合(图中以分条为例)包括4个数据块和2个校验块,在文件数据只够一个数据块(即T为I)时,补充3个无效数据块,从而根据冗余计算得到校验块,以形成分条。
[0055]在S130中,存储文件的装置存储该文件的T个数据块和该M个校验块。
[0056]存储文件的装置只存储该文件的T个数据块和该M个校验块,即只将该文件的T个数据块和该M个校验块存储到磁盘,而不存储无效数据块。也就是说,尽管在根据冗余关系组织数据块集合时,会产生N个数据块和M个校验块,在本发明实施例中只存储该文件的T个数据块和该M个校验块。
[0057]如图3所示,在文件只有一个数据块时,只存储这一个数据块和两个校验块,不存储另外三个无效数据块。
[0058]为了便于后续的读取,存储文件的装置记录该N个数据块的存储情况。N个数据块的存储情况用于表示数据块集合中的N个数据块被存储的情况。根据该存储情况能够在读取文件时确定文件有几个数据块。
[0059]在本发明实施例中,记录该N个数据块的存储情况可以有多种方式。
[0060]可选地,记录该N个数据块的存储情况,包括:
[0061]通过位图Bitmap标识该N个数据块中的每一个数据块是否被存储。
[0062]具体而言,利用Bitmap中的各个位分别标识各个数据块的存储情况。例如,I表示数据块被存储,O表示数据块没有被存储。应理解,由于校验块都需要存储,因此不需要记录校验块的存储情况,即可以只记录数据块集合中N个数据块的存储情况。如图4所示,对于由4个数据块和2个校验块构成的分条,可以采用4位的Bitmap,每一位标识一个数据块。若4个数据块都为文件的数据块,即不是无效数据块,则4个数据块都要存储到磁盘,因此Bitmap为1111 ;若只有第一数据块为文件的数据块,其他三个数据块为无效数据块,则只存储第一个数据块,因此Bitmap为1000。
[0063]应理解,在通过Bitmap记录存储情况的方式中,Bitmap的位数也不限定,例如,Bitmap的位数可以多于数据块的个数,或者等于数据块和校验块的总数,Bitmap还可以同时记录校验块的存储情况等等。
[0064]可选地,记录该N个数据块的存储情况,包括:
[0065]记录被存储的该文件的T个数据块的总大小。
[0066]数据块集合中N个数据块的存储情况还可以通过记录被存储的T个数据块的总大小而标识。具体而言,将被存储的所有数据块的总大小记录下来,然后对一个数据块的大小取模,得到被存储的数据块的个数,从而得到存储情况。以分条为例,如果一个分条是1MB,包括8个数据块(N为8), 2个校验块(M为2),那么一个数据块为128KB。可以记录一个分条中实际被存储的数据块的总大小,比如640KB,那么640/128等于5,所以存储了 5个数据块以及2个校验块,还有3个无效数据块没有存储。
[0067]应理解,记录存储情况的方式还可以有其他方式,比如,可以采用索引的方式,不同的值表示不同的存储情况,本发明实施例不限定记录存储情况的方式。
[0068]在本发明实施例中,该N个数据块的存储情况记录在哪儿也有多种情况。
[0069]可选地,记录该N个数据块的存储情况,包括:
[0070]在该文件的元数据中记录该存储情况。
[0071]在这种实施方式中,存储情况记录在文件的元数据中。这样,就可以在读取元数据时知道被存储的文件有几个数据块。
[0072]可选地,记录该N个数据块的存储情况,包括:
[0073]在被存储的数据块中记录该存储情况。
[0074]在这种实施方式中,存储情况记录在数据块中。在存储数据块时,同时记录存储情况,如图4所示。
[0075]应理解,存储情况记录的方式还可以有其他方式,例如,可以将存储情况存储在上级块中,存储在文件索引节点(inode)中,或者构建一个文件容器存储在文件容器的属性中
坐坐寸寸ο
[0076]在本发明实施例中,可选地,该方法100还包括:
[0077]在读取该文件的数据时,获取该存储情况;
[0078]根据该存储情况确定该文件被存储的T个数据块;
[0079]读取该T个数据块和该M个校验块。
[0080]具体而言,由于在存储时只存储了文件的T个数据块以及M个校验块,在读取文件时,也只需读取T个数据块以及M个校验块。存储文件的装置获取与文件对应的存储情况,根据该存储情况确定文件被存储为T个数据块,从而读取该T个数据块以及M个校验块,并根据该T个数据块以及该M个校验块得到该文件的数据。若存储情况记录在元数据中,则在读取元数据时一并获取该存储情况,然后根据该存储情况读取数据块。若存储情况记录在被存储的数据块中,则在读取数据块时一并读取该存储情况。例如,访问数据块的时候,各数据块可以一次读取上来,然后,根据数据块中记录的存储情况判断文件应该有多少个数据块,从而收集齐文件的数据块。
[0081]例如,如图5所示,在读取文件时,先读取文件的元数据,获取存储情况,根据该存储情况确定文件只有一个数据块,因此,读取一个数据块以及两个校验块。
[0082]因此,本发明实施例的存储文件的方法,在读取文件时所读取的数据块的个数也减少,从而能够提闻读取效率。
[0083]采用本发明实施例的存储文件的方法还能够很好地实现大小文件的转换。以分条为例,如图6所示,当文件增大时,文件的数据块变多,直到占满整个分条,即分条内所有数据块都变为文件的数据块。在存储数据块的同时,存储情况也随之调整,以便于后续的数据块存储和读取。这样,在文件的数据不满一个分条时,能够最少地占用存储空间,随着文件的数据的增多,逐渐占满整个分条,从而达到自动调整的目的。因而,本发明实施例的存储文件的方法能够很好地实现大小文件的转换。
[0084]因此,本发明实施例的存储文件的方法,通过在待存储的文件的数据块的个数小于组织数据块集合所需的数据块的个数时,只存储数据块集合中该文件的数据块以及校验块,并记录数据块集合中数据块的存储情况,能够节省存储空间,提高读写效率,还便于实现大小文件的转换。。
[0085]应理解,在本发明的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
[0086]上文中结合图1至图6,详细描述了根据本发明实施例的存储文件的方法,下面将结合图7至图9,描述根据本发明实施例的存储文件的装置。
[0087]图7示出了根据本发明实施例的存储文件的装置700的示意性框图。如图7所示,该装置700包括:
[0088]确定模块710,用于确定待存储的文件的数据块的个数T,T为正整数;
[0089]处理模块720,用于在T小于N的情况下按照冗余关系将该文件组织为包括N个数据块和M个校验块的数据块集合,其中,该N个数据块包括该文件的T个数据块以及无效数据块,该无效数据块中的数据为零,N和M为正整数;
[0090]存储模块730,用于存储该文件的T个数据块和该M个校验块。
[0091]在本发明实施例中,存储文件的装置700在按照冗余关系将待存储文件组织为包括N个数据块和M个校验块的数据块集合并存储时,确定模块710确定待存储的文件的数据块的个数T。在T小于N时,即该文件的数据块的个数小于上述数据块集合所需要的数据块的个数(这种情况中的文件成为小文件)时,处理模块720组织的该数据块集合的N个数据块包括该文件的T个数据块以及无效数据块,其中,该无效数据块中的数据为零。也就是说,在这种情况下,数据块集合包括待存储文件的数据块,无效数据块以及校验块。存储模块730只存储该文件的T个数据块和该M个校验块,即只将该文件的T个数据块和该M个校验块存储到磁盘,而不存储无效数据块。
[0092]在现有技术中,在T小于N时,也会存储全部N个数据块以及M个校验块。例如,如图1所示,在文件的数据只够一个数据块时,后面三个无效数据块也要存储到磁盘上,在读取数据时也要读取所有的数据块,这样不但占用了空间,读取效率也较低。
[0093]而在本发明实施例中,只存储T个数据块和M个校验块,因此,节省了存储空间。并且,在读写文件时所读写的数据块个数也减少,读写效率也能够提高。
[0094]因此,本发明实施例的存储文件的装置,通过在待存储的文件的数据块的个数小于组织数据块集合所需的数据块的个数时,只存储数据块集合中该文件的数据块以及校验块,能够节省存储空间和提高读写效率。
[0095]在本发明实施例中,如图8所示,可选地,该装置700还包括:
[0096]记录模块740,用于记录该N个数据块的存储情况。
[0097]在存储模块730存储该文件的T个数据块和该M个校验块时,记录模块740记录该N个数据块的存储情况。也就是说,记录该N个数据块中各数据块被存储的情况。该存储情况用于在读取文件时确定文件有几个数据块。具体而言,由于没有存储全部N个数据块,文件的数据块个数不是固定的N个,因此,需要该存储情况以便于在读取文件时确定文件的数据块个数。
[0098]在本发明实施例中,可选地,该记录模块740具体用于通过位图Bitmap标识该N个数据块中的每一个数据块是否被存储。
[0099]具体而言,利用Bitmap中的各个位分别标识各个数据块的存储情况。例如,I表示数据块被存储,O表示数据块没有被存储。应理解,由于校验块都需要存储,因此不需要记录校验块的存储情况,即可以只记录数据块集合中N个数据块的存储情况。如图4所示,对于由4个数据块和2个校验块构成的分条,可以采用4位的Bitmap,每一位标识一个数据块。若4个数据块都为文件的数据块,即不是无效数据块,则4个数据块都要存储到磁盘,因此Bitmap为1111 ;若只有第一数据块为文件的数据块,其他三个数据块为无效数据块,则只存储第一个数据块,因此Bitmap为1000。
[0100]在本发明实施例中,可选地,该记录模块740具体用于记录被存储的该文件的T个数据块的总大小。
[0101]数据块集合中N个数据块的存储情况还可以通过记录被存储的T个数据块的总大小而标识。具体而言,将被存储的所有数据块的总大小记录下来,然后对一个数据块的大小取模,得到被存储的数据块的个数,从而得到存储情况。
[0102]在本发明实施例中,可选地,该记录模块740具体用于在该文件的元数据中记录该存储情况。
[0103]在本发明实施例中,如图8所示,可选地,该装置700还包括:
[0104]读取模块750,用于在读取该文件的数据时,获取该存储情况,根据该存储情况确定该文件被存储的T个数据块,读取该T个数据块和该M个校验块。
[0105]具体而言,由于在存储时只存储了文件的T个数据块以及M个校验块,在读取文件时,也只需读取T个数据块以及M个校验块。存储文件的装置获取与文件对应的存储情况,根据该存储情况确定文件被存储为T个数据块,从而读取该T个数据块以及M个校验块,并根据该T个数据块以及该M个校验块得到该文件的数据。若存储情况记录在元数据中,则在读取元数据时一并获取该存储情况,然后根据该存储情况读取数据块。若存储情况记录在被存储的数据块中,则在读取数据块时一并读取该存储情况。
[0106]本发明实施例的存储文件的装置,在读取文件时所读取的数据块的个数也减少,从而能够提闻读取效率。
[0107]在本发明实施例中,可选地,该冗余关系为纠删码Erasure Code冗余关系。
[0108]在本发明实施例中,可选地,该数据块集合为分条stripe。
[0109]根据本发明实施例的存储文件的装置700可对应于根据本发明实施例的存储文件的方法的执行主体,并且存储文件的装置700中的各个模块的上述和其它操作和/或功能分别为了实现图1至图6中的各个方法的相应流程,为了简洁,在此不再赘述。
[0110]本发明实施例的存储文件的装置,通过在待存储的文件的数据块的个数小于组织数据块集合所需的数据块的个数时,只存储数据块集合中该文件的数据块以及校验块,并记录数据块集合中数据块的存储情况,能够节省存储空间,提高读写效率,还便于实现大小文件的转换。
[0111]图9示出了本发明的另一实施例提供的存储文件的装置的结构,包括至少一个处理器902 (例如CPU),至少一个网络接口 905或者其他通信接口,存储器906,和至少一个通信总线903,用于实现这些装置之间的连接通信。处理器902用于执行存储器906中存储的可执行模块,例如计算机程序。存储器906可能包含高速随机存取存储器(RAM =RandomAccess Memory),也可能还包括非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。通过至少一个网络接口 905 (可以是有线或者无线)实现与至少一个其他网元之间的通信连接,可以使用互联网,广域网,本地网,城域网等。
[0112]在一些实施方式中,存储器906存储了程序9061,处理器902执行程序9061,用于:
[0113]确定待存储的文件的数据块的个数T,T为正整数;
[0114]若T小于N,则按照冗余关系将该文件组织为包括N个数据块和M个校验块的数据块集合,其中,该N个数据块包括该文件的T个数据块以及无效数据块,该无效数据块中的数据为零,N和M为正整数;
[0115]存储该文件的T个数据块和该M个校验块。
[0116]可选地,处理器902还用于记录该N个数据块的存储情况。
[0117]可选地,处理器902具体用于通过位图Bitmap标识该N个数据块中的每一个数据块是否被存储。
[0118]可选地,处理器902具体用于记录被存储的该文件的T个数据块的总大小。
[0119]可选地,处理器902具体用于在该文件的元数据中记录该存储情况。
[0120]可选地,处理器902还用于:
[0121]在读取该文件的数据时,获取该存储情况;
[0122]根据该存储情况确定该文件被存储的T个数据块;
[0123]读取该T个数据块和该M个校验块。
[0124]可选地,该冗余关系为纠删码Erasure Code冗余关系。
[0125]可选地,该数据块集合为分条stripe。
[0126]从本发明实施例提供的以上技术方案可以看出,本发明实施例通过在待存储的文件的数据块的个数小于组织数据块集合所需的数据块的个数时,只存储数据块集合中该文件的数据块以及校验块,能够节省存储空间和提闻读与效率。
[0127]应理解,在本发明实施例中,术语“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系。例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
[0128]本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
[0129]所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
[0130]在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口、装置或单元的间接耦合或通信连接,也可以是电的,机械的或其它的形式连接。
[0131]所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本发明实施例方案的目的。
[0132]另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以是两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
[0133]所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM, Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
[0134]以上所述,仅为本发明的【具体实施方式】,但本发明的保护范围并不局限于此,任何熟悉本【技术领域】的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
【权利要求】
1.一种存储文件的方法,其特征在于,包括: 确定待存储的文件的数据块的个数Τ,T为正整数; 若T小于N,则按照冗余关系将所述文件组织为包括N个数据块和M个校验块的数据块集合,其中,所述N个数据块包括所述文件的T个数据块以及无效数据块,所述无效数据块中的数据为零,N和M为正整数; 存储所述文件的T个数据块和所述M个校验块。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括: 记录所述N个数据块的存储情况。
3.根据权利要求2所述的方法,其特征在于,所述记录所述N个数据块的存储情况,包括: 通过位图Bitmap标识所述N个数据块中的每一个数据块是否被存储。
4.根据权利要求2所述的方法,其特征在于,所述记录所述N个数据块的存储情况,包括: 记录被存储的所述文件的T个数据块的总大小。
5.根据权利要求2至4中任一项所述的方法,其特征在于,所述记录所述N个数据块的存储情况,包括: 在所述文件的元数据中记录所述存储情况。
6.根据权利要求2至5中任一项所述的方法,其特征在于,所述方法还包括: 在读取所述文件的数据时,获取所述存储情况; 根据所述存储情况确定所述文件被存储的T个数据块; 读取所述T个数据块和所述M个校验块。
7.一种存储文件的装置,其特征在于,包括: 确定模块,用于确定待存储的文件的数据块的个数T,T为正整数; 处理模块,用于在T小于N的情况下按照冗余关系将所述文件组织为包括N个数据块和M个校验块的数据块集合,其中,所述N个数据块包括所述文件的T个数据块以及无效数据块,所述无效数据块中的数据为零,N和M为正整数; 存储模块,用于存储所述文件的T个数据块和所述M个校验块。
8.根据权利要求7所述的装置,其特征在于,所述装置还包括: 记录模块,用于记录所述N个数据块的存储情况。
9.根据权利要求8所述的装置,其特征在于,所述记录模块具体用于通过位图Bitmap标识所述N个数据块中的每一个数据块是否被存储。
10.根据权利要求8所述的装置,其特征在于,所述记录模块具体用于记录被存储的所述文件的T个数据块的总大小。
11.根据权利要求8至10中任一项所述的装置,其特征在于,所述记录模块具体用于在所述文件的元数据中记录所述存储情况。
12.根据权利要求8至11中任一项所述的装置,其特征在于,所述装置还包括: 读取模块,用于在读取所述文件的数据时,获取所述存储情况,根据所述存储情况确定所述文件被存储的T个数据块,读取所述T个数据块和所述M个校验块。
【文档编号】G06F11/10GK103797455SQ201380002592
【公开日】2014年5月14日 申请日期:2013年11月6日 优先权日:2013年11月6日
【发明者】曹宇 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1