一种文件系统中异步批量创建文件的系统及方法技术方案

技术编号:13288147 阅读:59 留言:0更新日期:2016-07-09 03:31
本发明专利技术提出一种文件系统中异步批量创建文件的系统及方法,该系统包括文件异步创建模块,用于接收文件创建请求,在父目录下创建所述文件的内存目录项,并标记为“未同步到磁盘”状态,为所述文件分配内存索引节点,并设置所述索引节点的索引节点号为伪索引节点号;文件创建批量回刷模块,用于扫描目录项缓存,获取所述内存目录项,及与所述伪索引节点号相对应的内存索引节点,选取在相同父目录下的多个被标记为“未同步到磁盘”状态的内存目录项,为每个所述文件分配真正索引节点号替换所述伪索引节点号,并为还未分配数据块资源状态的缓存页批量分配数据块资源,将分配的数据块资源记录到文件布局中,并将所述文件的所述内存目录项插入到所述父目录中。

【技术实现步骤摘要】

本专利技术涉及文件系统中文件创建
,特别涉及一种文件系统中异步批量创建文件的系统及方法
技术介绍
为提高文件系统访问性能,文件系统通常以异步导出方式提供文件与数据服务。文件系统在异步导出服务方式下,单个文件创建流程包括文件元数据和数据创建的两个过程。首先,查找并分配空闲的索引节点(inode);其次,在父目录中查找空闲位置并添加新创建文件的目录项;然后,查找并分配空闲的数据块到文件布局(layout)中;之后,把数据内容拷贝到内存缓存页(page)中。上述过程完成后,应用即认为文件创建成功。最后,文件元数据和内存页缓存数据被专门的回刷进程提交到磁盘,完成文件元数据和数据的持久化。文件系统的异步导出服务方式中,应用不必等待元数据和数据同步持久到磁盘就可以返回,获取了高的访问性能;但另一方面,如果在元数据或数据未提交到磁盘前服务器宕机,则相应的元数据和数据将被丢失。上述文件系统的文件创建过程存在以下两方面的性能开销。一方面,存在空闲inode与空闲数据块资源的查找和分配、在父目录中查找空闲位置并添加目录项等操作开销;另一方面,每个文件异步创建过程都需要重复进行上述操作,没能利用批量查找和批量操作减少每次文件异步创建的重复查找等开销。Linux操作系统标准的EXT3和EXT4文件系统可选择采用数据块的延迟分配技术,在文件的数据创建过程中,仅需要把数据内容拷贝到内存缓存页(page)中,应用即可认为数据创建成功。当数据异步提交到磁盘时,才进行空闲数据块的查找和分配,由此避免了文件创建过程中空闲数据块查找与分配的开销,降低了文件创建响应延迟。然而,目前仍然没有异步创建文件元数据的方式。针对现有技术的不足,我们提出了一种新的文件系统中异步批量创建文件的方法,一方面能够避免在异步的文件创建时包括的空闲inode与空闲数据块的查找和分配、在父目录中查找空闲位置并添加目录项等操作开销;另一方面可以对文件创建进行批量查找资源和批量添加目录项等操作,避免每次文件创建的重复查找和添加等操作开销。
技术实现思路
针对现有技术的不足,本专利技术提出一种文件系统中异步批量创建文件的系统及方法。本专利技术提出一种文件系统中异步批量创建文件的系统,包括:文件异步创建模块,用于接收文件创建请求,在父目录下创建所述文件的内存目录项,并标记为“未同步到磁盘”状态,为所述文件分配内存索引节点,并设置所述索引节点的索引节点号为伪索引节点号,以标识所述索引节点为异步创建;文件创建批量回刷模块,用于扫描目录项缓存,获取所述内存目录项,及与所述伪索引节点号相对应的索引节点,选取在相同父目录下的多个被标记为“未同步到磁盘”状态的内存目录项,为每个所述文件分配真正索引节点替换所述伪索引节点号,并为还未分配数据块资源状态的缓存页批量分配数据块资源,将分配的数据块资源添加到文件布局,并将所有所述文件的所述内存目录项插入到所述父目录中,并进行持久化。所述文件异步创建模块还包括分配所述内存索引节点的内存数据结构并设置相应属性,所述相应属性包括创建时间、修改时间、文件大小。还包括文件数据创建模块,用于接收文件写请求,在内存中分配缓存页,并标记状态为还未分配数据块资源状态,将需要写入的数据内容拷贝到所述缓存页中,并插入到所述文件的页缓存列表中。还包括索引节点资源管理模块,用于管理真正索引节点是否空闲,并提供批量查找与分配空闲索引节点的接口。还包括数据块资源管理模块,用于管理数据块资源是否空闲,并提供批量查找与分配空闲数据块资源的接口。还包括存储介质模块,用于持久存储文件系统元数据与数据,接收文件系统的元数据与数据提交请求并进行持久化。本专利技术还提出一种文件系统中异步批量创建文件的方法,包括:步骤1,接收文件创建请求,在父目录下创建所述文件的内存目录项,并标记为“未同步到磁盘”状态,为所述文件分配内存索引节点,并设置所述索引节点的索引节点号为伪索引节点号,以标识所述索引节点为异步创建;步骤2,扫描目录项缓存,获取所述内存目录项,及与所述伪索引节点号相对应的索引节点,选取在相同父目录下的多个被标记为“未同步到磁盘”状态的内存目录项,为每个所述文件分配新索引节点号替换所述伪索引节点号,并为还未分配数据块资源状态的缓存页批量分配数据块资源,将分配的数据块资源添加到文件布局,并将所有所述文件的所述内存目录项插入到所述父目录中,并进行持久化。所述步骤1还包括分配所述内存索引节点的内存数据结构并设置相应属性,所述相应属性包括创建时间、修改时间、文件大小。还包括接收文件写请求,在内存中分配缓存页,并标记状态为还未分配数据块资源状态,将需要写入的数据内容拷贝到所述缓存页中,并插入到所述文件的页缓存列表中。最高位为1表示所述伪索引节点号,最高位为0表示所述新索引节点号。由以上方案可知,本专利技术的优点在于:本专利技术一方面能够避免在异步文件创建时包括空闲索引节点与空闲数据块的查找和分配,以及在父目录中查找空闲位置并添加内存目录项等操作开销;另一方面可以对文件创建进行批量查找空闲资源和批量添加内存目录项等操作,避免每次文件创建中重复查找空闲索引节点和块资源,以及多次添加内存目录项等操作开销,在很大程度上提高文件创建性能。附图说明图1为本专利技术系统构架图;图2为本专利技术方法的步骤图;图3为本专利技术文件异步创建数据结构图;图4为本专利技术文件数据创建数据结构图;图5为本专利技术dir1父目录项数据结构示意图。具体实施方式下面给出本专利技术的具体实施方式,结合附图对本专利技术做出了详细描述。以具体在Ext3文件系统中的实施为例,对本专利技术进行详细描述。首先阐述一种文件系统中异步批量创建文件的系统。本系统包括六个模块,如图1所示:文件异步创建模块,文件数据创建模块,文件创建批量回刷模块,索引节点资源管理模块,数据块资源管理模块,存储介质模块。所述文件异步创建模块,首先通过标准的POSIX文件创建访问接口,接收应用发来的文件创建请求;然后在内存缓存中完成文件的创建,包括在父目录下创建所述文件的内存目录项dentry并标记为“未同步到磁盘”状态,分配内存索引节点inode内存数据结构并设置相应属性,并设置所述inode的索引节点号为伪的fake索引节点号,以标识该索引节点是异步创建的;之后即向应用返回所述文件创建成功的响应消息。所述文件数据创建模块,首先通过标准的本文档来自技高网
...

【技术保护点】
一种文件系统中异步批量创建文件的系统,其特征在于,包括:文件异步创建模块,用于接收文件创建请求,在父目录下创建所述文件的内存目录项,并标记为“未同步到磁盘”状态,为所述文件分配内存索引节点,并设置所述索引节点的索引节点号为伪索引节点号,以标识所述索引节点为异步创建;文件创建批量回刷模块,用于扫描目录项缓存,获取所述内存目录项,及与所述伪索引节点号相对应的索引节点,选取在相同父目录下的多个被标记为“未同步到磁盘”状态的内存目录项,为每个所述文件分配真正索引节点替换所述伪索引节点号,并为还未分配数据块资源状态的缓存页批量分配数据块资源,将分配的数据块资源添加到文件布局,并将所有所述文件的所述内存目录项插入到所述父目录中,并进行持久化。

【技术特征摘要】
1.一种文件系统中异步批量创建文件的系统,其特征在于,包括:
文件异步创建模块,用于接收文件创建请求,在父目录下创建所述文件的
内存目录项,并标记为“未同步到磁盘”状态,为所述文件分配内存索引节点,
并设置所述索引节点的索引节点号为伪索引节点号,以标识所述索引节点为异
步创建;
文件创建批量回刷模块,用于扫描目录项缓存,获取所述内存目录项,及
与所述伪索引节点号相对应的索引节点,选取在相同父目录下的多个被标记为
“未同步到磁盘”状态的内存目录项,为每个所述文件分配真正索引节点替换
所述伪索引节点号,并为还未分配数据块资源状态的缓存页批量分配数据块资
源,将分配的数据块资源添加到文件布局,并将所有所述文件的所述内存目录
项插入到所述父目录中,并进行持久化。
2.如权利要求1所述的文件系统中异步批量创建文件的系统,其特征在于,
所述文件异步创建模块还包括分配所述内存索引节点的内存数据结构并设置
相应属性,所述相应属性包括创建时间、修改时间、文件大小。
3.如权利要求1所述的文件系统中异步批量创建文件的系统,其特征在于,
还包括文件数据创建模块,用于接收文件写请求,在内存中分配缓存页,并标
记状态为还未分配数据块资源状态,将需要写入的数据内容拷贝到所述缓存页
中,并插入到所述文件的页缓存列表中。
4.如权利要求1所述的文件系统中异步批量创建文件的系统,其特征在于,
还包括索引节点资源管理模块,用于管理真正索引节点是否空闲,并提供批量
查找与分配空闲索引节点的接口。
5.如权利要求1所述的文件系统中异步批量创建文件的系统,其特征在于,
还包括数据块资源管理模块,用于管理数据块资源是否空闲,并提供批量...

【专利技术属性】
技术研发人员:张军伟邵冰清顾滨兵董欢庆刘振军
申请(专利权)人:中国科学院计算技术研究所天津中科蓝鲸信息技术有限公司
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1