一种大文件存储方法

文档序号:6546330阅读:326来源:国知局
一种大文件存储方法
【专利摘要】本发明提供一种大文件存储方法,该方法包括:将大文件映射到至少一个文件系统的至少一个目录下;大文件的索引记录映射后的第一个目录的起始地址、大文件索引自身所在存储区域的地址以及大文件的基本信息;大文件映射后的每个目录下包括若干数据文件。本发明方案对于大文件的存储安全性更高。
【专利说明】一种大文件存储方法
【技术领域】
[0001]本发明涉及视频存储【技术领域】,尤其涉及一种大文件存储方法。
【背景技术】
[0002]随着监控系统高清摄像机的发展,相同时长的录像需要存储更大的文件,但同时又必须保证文件的可靠性,目前如Linux的ext3文件系统理论上最大文件能达到4T,但一般在使用时都不能大于2G,因为文件系统在断电等异常的情况下,一旦索引区异常,大文件将丢失更多的数据。
[0003]现有的解决方案都没有对监控业务作针对性的优化,只是使用通用的文件系统如XFS,虽然最大文件可以达到9EB,但使用文件系统来存储大文件都如出一辙的无法避免数据异常难恢复的问题。
[0004]使用文件系统,一旦索引发生异常,会丢失很多的数据,数据安全性难以保证。

【发明内容】

[0005]有鉴于此,本发明提供一种大文件存储方法。
[0006]该方法包括:将大文件映射到至少一个文件系统的至少一个目录下;大文件的索引记录映射后的第一个目 录的起始地址、大文件索引自身所在存储区域的地址以及大文件的基本信息;大文件映射后的每个目录下包括若干数据文件。
[0007]优选地,所述每个数据文件的大小相同。
[0008]优选地,所述目录以链表的方式进行连接,每个目录包含前一个目录的名称,当前目录的名称以及后一个目录的名称。
[0009]优选地,大文件映射后的每个目录下还包括所述大文件的备份索引。
[0010]优选地,所述大文件的索引相对于其映射的目录独立存储。
[0011]优选地,所述大文件索引还包括超级块,其中记录每一个大文件索引信息的占用情况。
[0012]相较于现有技术,本发明方案对于大文件的存储安全性更高。
【专利附图】

【附图说明】
[0013]图1是本发明实施例方案图。
【具体实施方式】
[0014]请参图1所示的大文件映射方案。一个大文件,比如BigFilel,映射成多个文件系统的多个目录,如C:\下的目录Dir-0-1-2,D:\下的目录Dir-1-2-3,E:\下的目录Dir-2-3-4, F: \下的目录Dir-4-5-O。当然其中几个目录属于同一个文件系统的目录也是可以的,比如目录Dir-0-1-2、目录Dir-1-2-3均属于C:\下的目录。每个目录下的单个数据文件大小固定,比如单个数据文件Filel、File2、……FileN的文件大小均为1G。每个目录最多存储数据文件个数受限选择存储的文件系统的类型。当然该大文件映射到一个文件系统的一个目录下也是可以的。如果该大文件的数据量不是特别大,映射到一个文件系统的一个目录后,该目录下最多能存储的数据文件的个数大于等于该大文件拆分后的数据文件的个数,此时就可以映射到一个文件系统的一个目录下。一个大文件的数据存储于多个文件系统的多个目录中,不会因为文件系统的一个目录索引或者一个文件系统的损坏而导致整个文件数据无法读取。
[0015]上述例子中的目录Dir-0-1-2中的O表示无效目录,只出现在第一个和最后一个目录,I表示当前目录名称,2表示下一个目录名称;目录Dir-1-2-3中的I表示前一个目录的名称,2表示当前目录的名称、3表示下一个目录的名称;目录Dir-2-3-4和目录Dir-4-5-0中的数字有相同的含义。所以这些目录之间必然是按照图1的方式连接在一起的,即属于链表方式的组织结构。所以目录的名称即确定了数据文件存储的顺序。当然,该种方式的目录名称(以三个数字和组合的方式命名,三个数字分别表示大文件中映射的前一个目录的名称、当前目录名称、下一个目录名称,O表示无效目录,只出现在第一个和最后一个目录,一个大文件所有映射目录以链表的方式连接在一起)属于本发明的一种优选地实施方式,本发明不排除其他实施方式。
[0016]图1中的第一层结构为大文件索引存储结构。首先是“super”区,也可以称为“超级块”,其中记录后面各个大文件索引的占用情况。本例中,super区后面包括N个大文
件块=BigFileU BigFile2、BigFile3......BigFileN0 大文件索引的 BigFile 块内描述该
大文件映射后的第一个目录的起始地址,当前BigFile块的地址以及大文件的基本信息。该大文件的基本信息包括文件名称、创建时间、文件大小等。当前BigFile块的地址和该BigFile块对应的大文件映射的目录的地址存储于不同的磁盘空间,即大文件索引相对于该大文件映射的目录独立存储。这样就有一个好处,如果大文件容量要扩展,而当前该大文件映射的文件系统已满的情况下,可以轻松地把新文件系统加入到本方案的系统中实现扩展。比如说,在图1的例子中,可以在目录Dir-3-4-0后增加目录Dir-4-5-0,当然目录Dir-3-4-0需要修改成Dir-3-4-5。该目录Dir-4-5-O是新文件系统的目录,比如G:\下的目录。现有的文件系统,由于文件大小受限于一开始系统格式化的大小,所以无法实现简单的扩展,而本发明方案相对于此优势非常明显。
[0017]在大文件映射的多个文件系统的每一个映射目录内都有一个该大文件的索引信息。请参图1中目录Dir-0-1-2中的BF1,该BFl中描述的内容和BigFilel中描述的内容完成一致。同样的,该大文件映射的其他目录,如Dir-1-2-3,Dir-2-3-4, Dir-4-5-0中均包含该BF1,即同一个大文件的所有映射目录内的BigFile块内容相同,作为大文件索引BigFile块的备份。在每一个映射的目录中都保存了大文件索引信息,在大文件索引信息损坏的情况下,可以容易恢复,不仅如此,在大文件映射的目录中如果有个别目录丢失,其它好的目录可以根据其内的大文件索引信息恢复剩余数据链式结构,保证没有损坏部分的数据可读写,增加了大文件的可靠性。
[0018]以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。
【权利要求】
1.一种大文件存储方法,其特征在于,该方法包括:将大文件映射到至少一个文件系统的至少一个目录下;大文件的索引记录映射后的第一个目录的起始地址、大文件索引自身所在存储区域的地址以及大文件的基本信息;大文件映射后的每个目录下包括若干数据文件。
2.如权利要求1所述的方法,其特征在于,所述每个数据文件的大小相同。
3.如权利要求1所述的方法,其特征在于,所述目录以链表的方式进行连接,每个目录包含前一个目录的名称,当前目录的名称以及后一个目录的名称。
4.如权利要求1所述的方法,其特征在于,大文件映射后的每个目录下还包括所述大文件的备份索引。
5.如权利要求1所述的方法,其特征在于,所述大文件的索引相对于其映射的目录独立存储。
6.如权利要求1所述的方法,其特征在于,所述大文件索引还包括超级块,其中记录每一个大文件索引信息的占用情况。
【文档编号】G06F17/30GK103970869SQ201410199107
【公开日】2014年8月6日 申请日期:2014年5月12日 优先权日:2014年5月12日
【发明者】吕志明 申请人:浙江宇视科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1