一种嵌入式终端的文件存取方法及系统的制作方法

文档序号:6506585阅读:109来源:国知局
一种嵌入式终端的文件存取方法及系统的制作方法
【专利摘要】本发明提出了一种嵌入式终端的文件存取方法及系统,所述方法包含:存储文件的步骤,具体包含:步骤101)计算文件所需的数据块的数目;步骤102)查询位图信息,根据所需的数据块的数目得到能满足分配需求的数据块组;步骤103)将文件存储于从102)中找到的数据块组中;查找读取文件的步骤,具体包含:步骤201)计算文件名的哈希值;步骤202)依据得到的哈希值,并根据映射表找到与文件对应的索引节点,查询索引节点中信息可获得文件内容所在的数据块的位置信息;其中,所述索引节点中采用若干区段的形式记录数据块位置信息,且每个区段中包含起始数据块编号和连续存放文件内容的数据块的数目;步骤203)从获得的数据块中读取所需文件的内容。本发明的技术能满足文件存储的高效性、可靠性、可用性和可扩展性需求。
【专利说明】一种嵌入式终端的文件存取方法及系统

【技术领域】
[0001] 本发明属于网络【技术领域】,具体涉及到一种嵌入式终端的文件存取方法及系统。

【背景技术】
[0002] 在数字媒体服务的应用场景中,需要将从外部节目源获取到的媒体数据存储到本 地的磁盘阵列,用于数据推送。
[0003] 采用何种方案来存储和管理流媒体数据是一个比较复杂和重要的问题。传统的方 法是利用基于通用操作系统(如Windows、Linux)的文件系统进行存储和管理。然而,操作 系统和文件系统都会带来不小的资源开销,同时还会带来存储上的瓶颈,由此引出了一个 在保证数据存储高可靠性的前提下,如何实现数据高效管理的问题。此问题亦即设计出一 个能满足需求的精简的磁盘数据管理系统来替代传统的文件系统。
[0004] 现有的文件存储技术和磁盘管理方法还无法完全满足上述应用需求,需要更合适 的方法来实现对流媒体数据的存储和管理。


【发明内容】

[0005] 本发明的目的在于,为克服上述现有技术中存在的不足,从而提出了一种嵌入式 终端的文件存取方法即系统。
[0006] 为了实现上述目的,本发明提供了一种嵌入式终端的文件存取方法,所述方法包 含:
[0007] 用于存储文件的步骤,具体包含:步骤101)计算文件所需的数据块的数目;步骤 102)查询位图信息,根据所需的数据块的数目得到能满足分配需求的数据块组;步骤103) 将文件存储于步骤102)找到的数据块组中。
[0008] 用于查找读取文件的步骤,具体包含:步骤201)计算文件名的哈希值;步骤202) 依据得到的哈希值,并根据映射表找到与文件对应的索引节点,查询索引节点中信息可获 得文件内容所在的数据块的位置信息;其中,所述索引节点中采用若干区段的形式记录数 据块位置信息,且每个区段中包含起始数据块编号和连续存放文件内容的数据块的数目; 步骤203)从获得的数据块组中读取所需文件的内容;其中,所述位图信息采用多层树状统 计结构进行索引和存储,且自下向上分别为位图块、统计块和超级块;所述位图块用于记录 数据块组中各数据块的使用状态;所述统计块对位图块信息进行统计,所述超级块则对统 计块信息进行统计,统计结果记录为最大连续可用空间和剩余总空间;所述数据块,用于存 放文件内容和文件元数据,且一个数据块为物理上若干连续的磁盘扇区,为一个数据块分 配一个全局的逻辑地址,并采用该逻辑地址进行寻址;述数据块组为若干物理地址和逻辑 地址均连续的数据块;所述映射表存储,用于记录文件名哈希值到索引节点的一一映射关 系。
[0009] 上述步骤102)进一步包含:步骤102-1)依据文件所需的数据块的数目,通过超级 块中记录的信息定位到某个拥有足够多空闲存储量的统计块;步骤102-2)依据定位得到 的统计块中记录的信息,再定位到某个位图块,即找到了能满足分配需求的数据块组,在该 数据块组内为该新文件分配存储空间。
[0010] 当为文件分配存储空间时仅在一个数据块组内进行;当为文件分配数据块时,采 用尽可能连续分配的思想为其分配存储空间。
[0011] 优化的,用于存储文件的步骤中所述的步骤103)之后还包含如下步骤:步骤104) 为文件分配存储空间后,将位图中与刚被分配数据块对应的位标记为"忙碌"状态,同时更 新统计块中对应信息,再进一步更新超级块中与之对应的信息。
[0012] 上述方法还包含:删除文件时更新位信息的步骤,具体为:
[0013] 删除文件时立即回收该文件占用的数据块,在数据块所在组对应的位块中更新位 信息,同时更新统计块中对应信息,进一步更新超级块中与之对应的信息。
[0014] 各数据块的使用状态采用二进制位表征。
[0015] 此外本发明还提供了一种嵌入式终端的文件存取系统,所述存储系统包含:
[0016] 数据块,用于存储文件和文件元数据,一个数据块包含物理上若干连续的磁盘扇 区;
[0017] 位图块,用于记录数据块的使用状态,一个位图块的信息标识了一组数据块的使 用状态;
[0018] 统计块,用于对若干位图块信息进行统计,一个统计块中的信息记录了一组位图 块中每个位图块表征的最大连续可用空间和剩余总空间;
[0019] 超级块,用于对统计块中的信息进行统计,记录每个统计块表征的最大连续可用 空间和剩余总空间;
[0020] 索引块,由若干索引节点组成,每个索引节点中存放与之对应的文件占用的数据 块的位置信息,及此文件大小、文件创建时间和文件类型信息;和
[0021] 文件入口,用于记录文件名哈希值到索引节点的映射表;
[0022] 其中,为所述的每个数据块分配一个逻辑地址,该逻辑地址用于文件存取时寻 址;
[0023] 所述文件名哈希值用于唯一标识该文件;
[0024] 当查找文件时,通过所述文件入口存储的映射表寻找文件对应的索引节点;
[0025] 当为新建文件分配存储空间时,先计算文件所需的数据块的数量,依次查询超级 块、统计块和位图块信息找到足够存储容量的数据块组,为新建文件分配存储空间。
[0026] 上述系统还包含:更新驱动模块,用于当存储文件时,删除文件时驱动位图块、统 计块和超级块改变对应数据块的使用状态信息。
[0027] 上述索引节点采用多个区段的形式记录数据块位置信息,每个区段中包含起始数 据块编号、连续数据块数目。
[0028] 总之,本发明公开了一种嵌入式系统磁盘数据管理方法,将磁盘阵列中的扇区映 射成逻辑上的数据块,通过对逻辑上的数据块的管理来实现对磁盘阵列资源的管理;该方 法采用扁平式目录结构,将文件的哈希值作为文件存储时的唯一标识;用二进制位表示数 据块的使用状态,位图信息采用多层树状统计结构进行存储,并将数据块分组管理,新建文 件时仅在同一组内为新文件预分配存储空间,为文件分配的存储空间的位置信息以区段的 形式记录;此外,对属于不同大小等级的文件,采用不同尺寸的数据块进行存储。
[0029] 与现有技术相比,本发明的技术优势在于:能满足流媒体应用中文件存储的高效 性、可靠性、可用性和可扩展性方面的需求,上述四方面优势具体为:
[0030] 高效性--能够实现磁盘空间的高效管理和文件的高效存储;
[0031] 可靠性--能够在异常情况和突发事件下对文件数据进行恢复;
[0032] 可用性--能够同时支持大文件和小文件的存储;
[0033] 可扩展性--能够支持系统容量和功能的扩展。

【专利附图】

【附图说明】
[0034] 下面结合附图对本发明进行详细的描述,使得本发明的上述优点更加明确。
[0035] 图1是本发明实施例提供的磁盘数据管理系统的逻辑结构示意图;
[0036] 图2是本发明实施例提供的存储位图的多层树状统计结构示意图,其中,图标"·" 表示最大连续可用空间,图标"□"表示剩余总空间;
[0037] 图3是本发明实施例提供的索引节点存储数据块位置信息示意图。

【具体实施方式】
[0038] 下面结合附图对本发明进行详细的说明:
[0039] 本发明针对现有文件存储技术和磁盘管理方法在流媒体应用中存在的不足,结合 流媒体数据的特点,抽象出了一个逻辑上的磁盘数据管理系统,并基于该系统提出了一种 磁盘数据管理方法。
[0040] 其中,图1是磁盘数据管理系统的逻辑结构示意图;
[0041] 如图1所示,磁盘数据管理系统包括超级块、统计块、位图块、文件入口、索引块和 数据块。
[0042] 数据块,用于存储文件和文件元数据,所述数据块是系统中存储文件的最小单元, 且一个数据块在物理上对应若干连续的磁盘扇区,而一系列逻辑上连续的数据块又组成了 数据块组;
[0043] 位图块,用于记录数据块的使用状态,一个位图块的信息标识了一组数据块的使 用状态,具体为:位图块用于存储以二进制位表示的数据块是否被使用的信息,每个数据块 的状态用一个位来标识,而一组数据块的状态则用一个位图块来表示,一个位图块中位的 数量和一个组内数据块的数量应相同;
[0044] 统计块,用于对若干位图块信息进行统计,一个统计块中的信息记录了一组位图 块中每个位图块表征的最大连续可用空间和剩余总空间;
[0045] 超级块,对统计块中信息进行统计,超级块中记录了每个统计块表征的最大连续 可用空间和剩余总空间,还记录系统中数据块大小、总数等信息;
[0046] 索引块,由若干索引节点组成,每个索引节点中存放着与之对应的文件占用的数 据块的位置信息,还存储文件大小、文件创建时间、文件类型等元数据信息;
[0047] 文件入口,记录了文件名哈希值到索引节点的--映射关系;
[0048] 文件名的哈希值是系统中该文件的唯一标识,通过文件入口的一维映射,可以直 接找到文件对应的索引节点,因此本发明采用的是扁平式目录结构,省去了传统文件系统 中的目录结构,加快了访问文件的速度,减少了系统开销。
[0049] 从图1中可以看出,系统中存在不止一种数据块,这是为了存放不同大小等级的 文件。流媒体应用中主要包含流媒体数据的大文件和对其索引的小文件,大文件存于大数 据块中,小文件则存放在小数据块中,能降低磁盘碎片率。
[0050] 上述系统具体应用时还采用了如下策略:
[0051] 将若干个物理上连续的磁盘扇区合并为一个逻辑上的数据块,从而形成一个属于 数据块的全局逻辑地址空间,对磁盘阵列上扇区的物理寻址则被转换为对数据块的逻辑地 址寻址。
[0052] 采用扁平式目录结构,将文件名的哈希值作为系统中文件的唯一标识,摒弃了传 统文件系统中的目录结构,提高了访问文件的速度。
[0053] 将数据块分组管理,同组内数据块在逻辑上保持连续,把对数据块的操作简化到 在一个组内进行,利于文件的快速读写。
[0054] 用二进制位表示数据块是否为空闲状态,一个组内所有数据块的使用状态由一个 位图块来表征,位图块中每一个位信息表征与之对应的数据块的使用状态。
[0055] 位图信息采用多层树状统计结构进行索引和存储,自下向上分别为位图块、统计 块和超级块;其中,统计块对位图块信息进行统计,超级块则对统计块信息进行统计,统计 结果记录为最大连续可用空间和剩余总空间。
[0056] 为新文件预分配存储空间:先计算新文件所需数据块数,查询位图信息,找到一个 空闲数据块数能满足分配需求的组,之后在该组内按尽可能连续分配的思想为该文件分配 其所需存储空间,以保证读写数据的时间开销尽可能小。
[0057] 采用多个区段的形式,在索引节点中记录为各文件分配的数据块位置信息,每个 区段中包含起始数据块编号、连续数据块数目。
[0058] 删除文件时立即回收该文件占用的数据块和索引节点,清空文件入口中与此文件 相关的信息,更新位图。对属于不同大小等级的文件,采用不同尺寸的数据块进行存储,降 低了磁盘碎片率。
[0059] 图2是存储位图的多层树状统计结构示意图:
[0060] 如图2所示,该树状统计结构自底向上依次是位图块、统计块、超级块;
[0061] 每个位图块管理一组数据块,通过查询该位图块中的位信息便能获取该组数据块 的使用状况;
[0062] 在使用过程中,每组数据块中都可能存在空闲数据块,为了获取一组数据块使用 状态的详细信息,需要对组内最大连续可用数据块数和剩余可用数据块总数进行统计并记 录。统计块的作用就是记录位图块对应数据块组的最大连续可用空间和剩余总空间;
[0063] 统计块中包含若干个存储单元,如图2所示,每个单元内存放着对某一位图块的 统计结果,即该位图块管理的数据块组中最大连续可用空间和剩余总空间;
[0064] 超级块对对统计块中信息再进行统计,如图2所示,超级块中每个单元存放着对 某一统计块的统计结果;
[0065] 新建文件时,为新文件预分配存储空间,先计算该文件所需数据块数,查询该树状 统计结构便能在最短时间内找到能满足分配的数据块组。具体来说,先通过超级块中信息 定位到某统计块,在通过统计块中信息定位到某位图块,即找到了一个数据块组,在该组内 为该新文件分配存储空间;
[0066] 通过此树状统计结构寻找数据块组,避免了对所有位图块进行扫描,能大大降低 查询时间,为磁盘数据的高效管理提供了有力保障;
[0067] 为新文件预分配存储空间后,将位图中与刚被分配数据块对应的位标记为"忙碌" 状态,同时更新统计块中对应信息,进一步更新超级块中与之对应的信息;
[0068] 删除文件时立即回收该文件占用的数据块,在数据块所在组对应的位图中更新位 信息,同时更新统计块中对应信息,进一步更新超级块中与之对应的信息。
[0069] 图3是索引节点存储数据块位置信息示意图:
[0070] 索引节点中记录了与该节点对应的文件内容所在的数据块的位置信息,本申请没 有使用传统的直接/间接块映射表的记录方式,而采用多个区段的形式记录数据块位置信 息,每个区段中包含起始数据块编号、连续数据块数目;
[0071] 如图3所示,图中所描述的情况是文件内容存放在若干段数据块中,每段包含的 数据块数不尽相同,而每一段数据块的位置信息则采用区段的形式记录在索引节点中。具 体来说,存放该文件的区段信息为(18, 2)、(33, 3)、( 146,4),表示存储该文件的数据块包 括:从18号开始的2块数据块、从33号开始的3块数据块和从146号开始的4块数据块;
[0072] 此外,为新文件分配存储空间仅在一个数据块组内进行,避免了数据存放时跨度 太大造成文件读写时磁盘寻道时间过长带来的性能损失;在为新文件分配数据块时,采用 尽可能连续分配的思想为新文件分配存储空间;
[0073] 为文件分配的数据块尽可能连续,可以提高文件读写的性能,还减少了索引节点 存储数据块位置信息占用的空间,节约了元数据开销。
[0074] 综上所述,本发明提供的一种嵌入式系统磁盘数据存取方法,采用磁盘逻辑块方 式存储和管理数据内容,支持数据的高速访问和高效存储。设置不同尺寸的数据块,对属于 不同大小等级的文件,采用不同尺寸的数据块进行存储;将数据块分组管理,新建文件时仅 在同一组内为其预分配存储空间;用二进制位表示数据块是否为空闲状态,采用多层树状 统计结构存储位图信息;采用多个区段的形式记录为文件分配的数据块位置信息,每个区 段中包含起始数据块编号、连续数据块数目;采用扁平式目录结构,将文件名的哈希值作为 系统中文件的唯一标识。将若干个物理上连续的磁盘扇区合并为一个逻辑上的数据块,从 而形成一个属于数据块的全局逻辑地址空间,对磁盘阵列中扇区的物理寻址则被转换为对 数据块的逻辑地址寻址。树状统计结构中包括超级块、统计块和位图块,位图块中每一个位 则标识与之对应的某数据块的使用状态。为新创建文件预分配数据块时,先计算文件所需 数据块数,查询位图信息,找到一个空闲数据块数能满足分配需求的组,之后在该组内按尽 可能连续分配的思想为文件分配其所需存储空间,以保证文件读写的时间开销尽可能小; 删除文件时立即回收该文件占用的数据块,更新位图信息。
[0075] 最后需要说明的是,以上实施例仅用以说明本发明的技术方案而非限制。尽管参 照实施例对本发明进行了详细说明,本领域的技术人员应当理解,对本发明的技术方案进 行修替换或改进,都不脱离本发明技术方案的精神和范围,其均应涵盖在本发明的权利要 求范围内。
【权利要求】
1. 一种嵌入式终端的文件存取系统,其特征在于,所述存储系统包含: 数据块,用于存储文件和文件元数据,一个数据块包含物理上若干连续的磁盘扇区; 位图块,用于记录数据块的使用状态,一个位图块的信息标识了一组数据块的使用状 态; 统计块,用于对若干位图块信息进行统计,一个统计块中的信息记录了一组位图块中 每个位图块表征的最大连续可用空间和剩余总空间; 超级块,用于对统计块中的信息进行统计,记录每个统计块表征的最大连续可用空间 和剩余总空间; 索引块,由若干索引节点组成,每个索引节点中存放与之对应的文件占用的数据块的 位置信息,及此文件大小、文件创建时间和文件类型信息;和 文件入口,用于记录文件名哈希值到索引节点的映射表; 其中,为所述的每个数据块分配一个逻辑地址,该逻辑地址用于文件存取时寻址; 所述文件名哈希值用于唯一标识该文件; 当查找文件时,通过所述文件入口存储的映射表寻找文件对应的索引节点; 当为新建文件分配存储空间时,先计算文件所需的数据块的数量,依次查询超级块、统 计块和位图块信息找到拥有足够存储容量的数据块组,为新建文件分配存储空间。
2. 根据权利要求1所述的嵌入式终端的文件存取系统,其特征在于,所述系统还包含: 更新驱动模块,用于当存储文件时,删除文件时驱动位图块、统计块和超级块改变对应 数据块的使用状态信息。
3. 根据权利要求1所述的嵌入式终端的文件存取系统,其特征在于,所述索引节点采 用多个区段的形式记录数据块位置信息,每个区段中包含起始数据块编号、连续数据块数 目。
4. 一种嵌入式终端的文件存取方法,所述方法包含: 用于存储文件的步骤,具体包含: 步骤101)计算文件所需的数据块的数目; 步骤102)查询位图信息,根据所需的数据块的数目得到若干能满足分配需求的数据块 组; 步骤103)将文件存储于从102)中找到的数据块组中; 用于查找读取文件的步骤,具体包含: 步骤201)计算文件名的哈希值; 步骤202)依据得到的哈希值,并根据映射表找到与文件对应的索引节点,查询索引节 点中信息可获得文件内容所在的数据块的位置信息; 其中,所述索引节点中采用若干区段的形式记录数据块位置信息,且每个区段中包含 起始数据块编号和连续存放文件内容的数据块的数目; 步骤203)从获得的数据块中读取所需文件的内容; 其中, 所述位图信息采用多层树状统计结构进行索引和存储,且自下向上分别为位图块、统 计块和超级块;所述位图块用于记录数据块组中各数据块的使用状态;所述统计块对位图 块信息进行统计,所述超级块则对统计块信息进行统计,统计结果记录为最大连续可用空 间和剩余总空间; 所述数据块,用于存放文件内容和文件元数据,且一个数据块为物理上若干连续的磁 盘扇区,为一个数据块分配一个全局的逻辑地址,并采用该逻辑地址进行寻址; 所述数据块组为若干物理地址和逻辑地址均连续的数据块; 所述映射表存储,用于记录文件名哈希值到索引节点的一一映射关系。
5. 根据权利要求4所述的嵌入式终端的文件存储及读取方法,其特征在于,所述步骤 102)进一步包含: 步骤102-1)依据文件所需的数据块的数目,通过超级块中记录的信息定位到某个拥有 足够多空闲存储量的统计块; 步骤102-2)依据定位得到的统计块中记录的信息,再定位到某个位图块,即找到了能 满足分配需求的数据块组,在该数据块组内为该新文件分配存储空间。
6. 根据权利要求5所述的嵌入式终端的文件存储及读取方法,其特征在于, 当为文件分配存储空间时仅在一个数据块组内进行; 当为文件分配数据块时,采用尽可能连续分配的思想为其分配存储空间。
7. 根据权利要求4或5所述的嵌入式终端的文件存储及读取方法,其特征在于,用于存 储文件的步骤中所述的步骤103)之后还包含如下步骤: 步骤104)为文件分配存储空间后,将位图中与刚被分配数据块对应的位标记为"忙碌" 状态,同时更新统计块中对应信息,再进一步更新超级块中与之对应的信息。
8. 根据权利要求4所述的嵌入式终端的文件存储及读取方法,其特征在于,所述方法 还包含: 删除文件时更新位信息的步骤,具体为: 删除文件时立即回收该文件占用的数据块,在数据块所在组对应的位图块中更新位信 息,同时更新统计块中对应信息,进一步更新超级块中与之对应的信息。
9. 根据权利要求4所述的嵌入式终端的文件存储及读取方法,其特征在于,各数据块 的使用状态采用二进制位表征。
【文档编号】G06F17/30GK104346357SQ201310322934
【公开日】2015年2月11日 申请日期:2013年7月29日 优先权日:2013年7月29日
【发明者】陈君, 吴京洪, 李明哲, 李军, 叶晓舟 申请人:中国科学院声学研究所, 北京中科智网科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1