基于SSD的文件系统目录路径解析方法技术方案

技术编号:8801192 阅读:141 留言:0更新日期:2013-06-13 05:51
本发明专利技术公开了一种基于SSD的文件系统目录路径解析方法,使用SSD作为文件和目录的Inode信息缓存,应用程序访问一个文件或目录时,通过计数型布隆选择器CBF检查目标Inode标签是否在SSD上命中,如果Inode信息在SSD上命中,直接从SSD中读取缓存的Inode信息并返回给文件系统;否则,按照传统的方法逐步解析通向目标文件的目录路径,直到获取相应的Inode信息,解析过程中将每个目录分量对应的Inode信息都加入SSD缓存,以备后续使用,最终将获取的目标Inode信息返回给文件系统。本发明专利技术具有目录解析速度快、目录解析加速效果好、并发处理能力强、兼容性好、功耗低、时间和空间开销低的优点。

【技术实现步骤摘要】

本专利技术涉及计算机操作系统领域,具体涉及一种面向包含大量文件和目录的文件系统的基于SSD的文件系统目录路径解析方法
技术介绍
文件系统是一种重要的管理存储设备和组织用户数据的方法。目前,大部分文件系统都采用树形结构管理文件。树的内部节点代表目录,叶子节点代表普通文件,从树根到每个文件都有一条唯一的路径。用户访问一个文件时,文件系统需要解析通向该文件的路径。这条路径包含多个分量,每个分量对应一个目录名称。路径解析的过程就是逐个分析这些目录,直到取得目标文件的元信息。由于数字信息的爆炸式增长,文件系统管理的数据量不断增加,包含的目录和文件逐步增多,在这种大规模的文件系统中,目录路径解析存在两方面的问题。首先,由于每个目录中包含大量的文件和子目录,解析一个目录需要很长的时间。在Unix类文件系统中,目录被当作一种特殊的文件,这种特殊文件的数据就是该目录下所有普通文件和子目录的元信息。所谓解析一个目录,就是在该目录下的所有文件和子目录中匹配目录路径的下一个分量。这就需要从底层存储设备读出该目录下的所有文件和子目录,然后逐个匹配。由于所包含的文件和子目录数量庞大,以上过程需要多次访问底层存储设备。而以磁盘为代表的底层存储设备是整个存储系统的瓶颈,频繁的磁盘访问使解析一个目录的时延显著延长。另外,线性地匹配一个目录中的所有文件和子目录也需要很长的时间。其次,由于文件系统包含大量的文件和目录,在文件系统的目录树中,从根节点到叶子节点的路径很长。访问一个文件时,需要解析很长的目录路径。所以,加速文件系统目录路径的解析过程异常重要。目前采用的方法主要有以下几种:UDcache (DirectoryCache,目录缓存)。根据局部性原理,近期访问过的目录还会被再次访问。Dcache将近期访问的目录信息保存在内存中。解析目录路径时,先在Dcache中查找。如果一个目录在Dcache中命中,则无需访问磁盘。Dcache对小规模的文件系统尤其有效,但针对包含大量目录的文件系统,Dcache命中率较低。2、InodeCache(索引节点缓存)。在Unix类文件系统中,每个文件都对应一个Inode(IndexNode,索引节点),Inode中包含文件的所有描述信息,目录路径解析的最终目的就是得到待访问文件的Inode信息。InodeCache保存近期频繁访问文件的Inode信息,如果待访问文件的Inode在缓存中命中,则不用解析通向该文件的目录路径。InodeCache实现在内存中,只能缓存少量的Inode信息,在大规模文件系统中很难发挥作用。
技术实现思路
本专利技术要解决的技术问题是提供一种目录解析速度快、目录解析加速效果好、并发处理能力强、兼容性好、功耗低、时间和空间开销低的基于SSD的文件系统目录路径解析方法。为了解决上述技术问题,本专利技术采用的技术方案为:一种基于SSD的文件系统目录路径解析方法,其实施步骤如下:I)在内存中初始化计数型布隆选择器(Counting Bloom Filter)的整数数组,维护计数型布隆选择器的多个哈希函数;配置用于缓存索引节点信息的SSD,跳转执行下一I K少;2)响应应用程序对文件的读写请求,获取请求文件的绝对路径,跳转执行下一I K少;3)根据所述请求文件的绝对路径生成唯一且长度固定的目标索引节点标签,跳转执行下一步;4)将所述目标索引节点标签代入计数型布隆选择器,通过计数型布隆选择器检查目标索引节点标签是否在SSD上命中,当目标索引节点标签在SSD上命中时,判断应用程序对文件的读写请求是否会修改请求文件的索引节点信息,如果不会修改请求文件的索引节点信息则跳转执行步骤5),如果会修改请求文件的索引节点信息,则从SSD中删除请求文件的索引节点信息并跳转执行步骤7);当目标索引节点标签在SSD上未命中时,跳转执行步骤7);5)根据目标索引节点标签从SSD上读出指定页上缓存的多个索引节点信息,跳转执行下一步;6)将目标索引节点标签与读出的多个索引节点信息进行匹配,如果找到匹配目标索引节点标签的索引节点信息,则说明请求文件在SSD上命中索引节点信息,将命中的索引节点信息返回给文件系统,本次目录解析完毕,等待在下一次应用程序对文件的读写请求时跳转执行步骤2);如果没有找到匹配目标索引节点标签的索引节点信息,则跳转执行下一步;7)获取请求文件的绝对路径的第一层目录作为第一个待解析分量,跳转执行下一I K少;8)根据待解析分量的绝对路径生成唯一且长度固定的待解析分量索引节点标签,跳转执行下一步;9)将待解析分量索引节点标签代入计数型布隆选择器,通过计数型布隆选择器检查所述待解析分量索引节点标签是否在SSD上命中,当待解析分量索引节点标签在SSD上命中时,则跳转执行步骤10),否则跳转执行步骤12);10)根据待解析分量索引节点标签从SSD上读出指定页上缓存的多个索引节点信息,跳转执行下一步;11)将待解析分量索引节点标签与读出的多个索引节点信息进行匹配,如果匹配成功则跳转执行步骤15);否则跳转执行步骤12);12)从磁盘上读取待解析分量的索引节点信息,跳转执行下一步;13)将待解析分量索引节点标签加入到所述计数型布隆选择器中,跳转执行下一I K少;14)将待解析分量的索引节点信息及其索引节点标签写入SSD,跳转执行下一步;15)判断当前的待解析分量是否为请求文件的绝对路径的最后一个分量,如果是则说明已经找到目标索引节点信息,解析请求文件的绝对路径完毕,跳转执行步骤16);否则获取请求文件的绝对路径的下一层目录作为下一个待解析分量,返回执行步骤8);16)将目标索引节点信息返回给文件系统,本次目录解析完毕,等待在在下一次应用程序对文件的读写请求时跳转执行步骤2)。作为本专利技术上述技术方案的进一步改进:所述步骤3)的详细步骤为:根据请求文件的绝对路径作为输入,使用SHAl (Secure Hash Algorithm,安全哈希算法)算法对请求文件的绝对路径进行哈希运算,将哈希运算得到唯一且长度固定的哈希值作为目标索引节点标签输出;所述步骤8)的详细步骤为:根据待解析分量的绝对路径作为输入,使用SHAl算法对待解析分量的绝对路径进行哈希运算,将哈希运算得到唯一且长度固定的哈希值作为待解析分量索引节点标签输出;最终跳转执行步骤4)。所述步骤4)中通过计数型布隆选择器检查所述目标索引节点标签是否在SSD上命中的详细步骤为:将目标索引节点标签使用计数型布隆选择器的多个哈希函数进行哈希运算,根据哈希运算得到的多个哈希值在内存中的计数型布隆选择器的整数数组中查找对应的多个位置的整数,如果所述多个位置的整数均大于0,则判定所述目标索引节点标签在SSD上命中,否则判定所述目标索引节点标签在SSD上未命中;所述步骤9)中通过计数型布隆选择器检查所述待解析分量索引节点标签是否在SSD上命中的详细步骤为:将待解析分量索引节点标签使用计数型布隆选择器的多个哈希函数进行哈希运算,根据哈希运算得到的多个哈希值在内存中的计数型布隆选择器的整数数组中查找对应的多个位置的整数,如果所述多个位置的整数均大于0,则判定所述待解析分量索引节点标签在SSD上命中,否则判定所述待解析分量索引节点标签在SSD上术命中;所述步骤13)的详细步骤本文档来自技高网
...

【技术保护点】
一种基于SSD的文件系统目录路径解析方法,其特征在于实施步骤如下:1)在内存中初始化计数型布隆选择器的整数数组,维护计数型布隆选择器的多个哈希函数;配置用于缓存索引节点信息的SSD,跳转执行下一步;2)响应应用程序对文件的读写请求,获取请求文件的绝对路径,跳转执行下一步;3)根据所述请求文件的绝对路径生成唯一且长度固定的目标索引节点标签,跳转执行下一步;4)将所述目标索引节点标签代入计数型布隆选择器,通过计数型布隆选择器检查目标索引节点标签是否在SSD上命中,当目标索引节点标签在SSD上命中时,判断应用程序对文件的读写请求是否会修改请求文件的索引节点信息,如果不会修改请求文件的索引节点信息则跳转执行步骤5),如果会修改请求文件的索引节点信息,则从SSD中删除请求文件的索引节点信息并跳转执行步骤7);当目标索引节点标签在SSD上未命中时,跳转执行步骤7);5)根据目标索引节点标签从SSD上读出指定页上缓存的多个索引节点信息,跳转执行下一步;6)将目标索引节点标签与读出的多个索引节点信息进行匹配,如果找到匹配目标索引节点标签的索引节点信息,则说明请求文件在SSD上命中索引节点信息,将命中的索引节点信息返回给文件系统,本次目录解析完毕,等待在下一次应用程序对文件的读写请求时跳转执行步骤2);如果没有找到匹配目标索引节点标签的索引节点信息,则跳转执行下一步;7)获取请求文件的绝对路径的第一层目录作为第一个待解析分量,跳转执行下一步;8)根据待解析分量的绝对路径生成唯一且长度固定的待解析分量索引节点标签,跳转执行下一步;9)将待解析分量索引节点标签代入计数型布隆选择器,通过计数型布隆选择器检查所述待解析分量索引节点标签是否在SSD上命中,当待解析分量索引节点标签在SSD上命中时,跳转执行步骤10),否则跳转执行步骤12);10)根据待解析分量索引节点标签从SSD上读出指定页上缓存的多个索引节点信息,跳转执行下一步;11)将待解析分量索引节点标签与读出的多个索引节点信息进行匹配,如果匹配成功则跳转执行步骤15);否则跳转执行步骤12);12)从磁盘上读取待解析分量的索引节点信息,跳转执行下一步;13)将待解析分量索引节点标签加入到所述计数型布隆选择器中,跳转执行下一步;14)将待解析分量的索引节点信息及其索引节点标签写入SSD,跳转执行下一步;15)判断当前的待解析分量是否为请求文件的绝对路径的最后一个分量,如果是则说明 已经找到目标索引节点信息,解析请求文件的绝对路径完毕,跳转执行步骤16);否则获取请求文件的绝对路径的下一层目录作为下一个待解析分量,返回执行步骤8);16)将目标索引节点信息返回给文件系统,本次目录解析完毕,等待在在下一次应用程序对文件的读写请求时跳转执行步骤2)。...

【技术特征摘要】
1.一种基于SSD的文件系统目录路径解析方法,其特征在于实施步骤如下: 1)在内存中初始化计数型布隆选择器的整数数组,维护计数型布隆选择器的多个哈希函数;配置用于缓存索引节点信息的SSD,跳转执行下一步; 2)响应应用程序对文件的读写请求,获取请求文件的绝对路径,跳转执行下一步; 3)根据所述请求文件的绝对路径生成唯一且长度固定的目标索引节点标签,跳转执行下一步; 4)将所述目标索引节点标签代入计数型布隆选择器,通过计数型布隆选择器检查目标索引节点标签是否在SSD上命中,当目标索引节点标签在SSD上命中时,判断应用程序对文件的读写请求是否会修改请求文件的索引节点信息,如果不会修改请求文件的索引节点信息则跳转执行步骤5),如果会修改请求文件的索引节点信息,则从SSD中删除请求文件的索引节点信息并跳转执行步骤7);当目标索引节点标签在SSD上未命中时,跳转执行步骤7); 5)根据目标索引节点标签从SSD上读出指定页上缓存的多个索引节点信息,跳转执行下一步; 6)将目标索引节点标签与读出的多个索引节点信息进行匹配,如果找到匹配目标索引节点标签的索引节点信息,则说明请求文件在SSD上命中索引节点信息,将命中的索引节点信息返回给文件系统,本次目录解析完毕,等待在下一次应用程序对文件的读写请求时跳转执行步骤2);如果没有找到匹配目标索引节点标签的索引节点信息,则跳转执行下一I K少; 7)获取请求文件的绝对路径的第一层目录作为第一个待解析分量,跳转执行下一步; 8)根据待解析分量的绝对路径生成唯一且长度固定的待解析分量索引节点标签,跳转执行下一步; 9)将待解析分量索引节点标签代入计数型布隆选择器,通过计数型布隆选择器检查所述待解析分量索引节点标签是否在SSD上命中,当待解析分量索引节点标签在SSD上命中时,跳转执行步骤10),否则跳转执行步骤12); 10)根据待解析分量索引节点标签从SSD上读出指定页上缓存的多个索引节点信息,跳转执行下一步; 11)将待解析分量索引节点标签与读出的多个索引节点信息进行匹配,如果匹配成功则跳转执行步骤15);否则跳转执行步骤12); 12)从磁盘上读取待解析分量的索引节点信息,跳转执行下一步; 13)将待解析分量索引节点标签加入到所述计数型布隆选择器中,跳转执行下一步; 14)将待解析分量的索引节点信息及其索引节点标签写入SSD,跳转执行下一步; 15)判断当前的待解析分量是否为请求文件的绝对路径的最后一个分量,如果是则说明已经找到目标索引节点信息,解析请求文件的绝对路径完毕,跳转执行步骤16);否则获取请求文件的绝对路径的下一层目录作为下一个待解析分量,返回执行步骤8); 16)将目标索引节点信息返回给文件系统,本次目录解析完毕,等待在在下一次应用程序对文件的读写请求时跳转执行步骤2)。2.根据...

【专利技术属性】
技术研发人员:卢宇彤廖湘科肖侬周恩强董勇所光张伟陈志广
申请(专利权)人:中国人民解放军国防科学技术大学
类型:发明
国别省市:

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

1