[发明专利]面向非易失性内存的文件系统的实现方法、系统及介质有效
申请号: | 201911426210.6 | 申请日: | 2019-12-30 |
公开(公告)号: | CN111221776B | 公开(公告)日: | 2023-06-23 |
发明(设计)人: | 黄林鹏;郑圣安;沈艳艳;陈雨亭;晏艳 | 申请(专利权)人: | 上海交通大学;清华大学 |
主分类号: | G06F16/11 | 分类号: | G06F16/11;G06F16/172;G06F16/13;G06F16/18;G06F16/182 |
代理公司: | 上海汉声知识产权代理有限公司 31236 | 代理人: | 胡晶 |
地址: | 200240 *** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 面向 非易失性 内存 文件系统 实现 方法 系统 介质 | ||
1.一种面向非易失性内存的用户态文件系统的实现方法,其特征在于,包括:
步骤1:在非易失性内存上划分区域,包括superblock区域、inodetable区域、data区域和journal区域;
步骤2:在inodetable区域中,根据索引节点树进行元数据的索引;
在data区域和journal区域中,根据数据块索引树分别进行文件数据块索引和日志块索引;
步骤3:用户态文件系统接收用户写入请求数据,构建元数据信息,通过B树组织数据,将写入请求数据和元数据信息存入非易失性内存;
步骤4:用户态文件系统接收用户的读取请求,通过多级哈希表,系统快速检索相应数据并返回给用户;
所述步骤2包括:
在用户发起文件的访问请求时,根据文件的全路径名获取文件的各级目录,将系统根目录的元数据作为当前元数据;
将下一级目录作为索引值,查询当前元数据下的表项,进行文件名匹配,若匹配成功,则获取所述下一级目录的元数据地址,并设定为当前元数据;
如果文件名不匹配,则继续执行下一个表项,直到匹配到文件名;
所述步骤2包括:
在用户发起写入数据的请求时,根据需要写入数据的大小计算出所需数据块个数;
将所需数据块个数作为索引值,从数据块索引树的最左侧的节点开始匹配,若当前节点提供的空闲数据块大于或等于索引值,则匹配成功;
若当前节点提供的空闲数据块小于索引值,则继续查找下一个节点,直到匹配成功;
所述数据块索引树中的每一个节点包括最小索引、最大索引和链表指针;
所述步骤3包括:
步骤3.1:用户发起写入数据请求,用户态文件系统记录写入地址、数据和数据长度;
步骤3.2:根据写入地址计算要写入的数据块:
数据全部写入数据块中,写入请求结束;
若要写入的数据块已经存在,则写入数据,更新写入地址、数据和数据长度,继续执行步骤3.2;
若要写入的数据块不存在,但要写入的数据块的父节点存在,则调用数据块索引树分配数据块,父节点记录分配的数据块的地址,写入数据,更新写入地址、数据和数据长度,继续执行步骤3.2;
若要写入的数据块不存在,且要写入的数据块的父节点不存在,则调用数据块索引树分配数据块,所分配的数据块存放B树的根节点地址,使得树的高度加1,继续执行步骤3.2;
所述步骤4包括:
采用多个级别的哈希表,不同级别的哈希表具有不同的高度,包含的元素个数也不同;同一个哈希表,表中包含的元素个数是固定的;
所述面向非易失性内存的用户态文件系统将文件所在目录与哈希表对应起来,当在第i层目录所在的哈希表插入一个文件时,系统首先计算当前哈希表是否已经填满,如果没有填满,则计算能够插入文件的空闲位置,尝试插入文件;如果所述哈希表已经填满,则尝试下一级存放更多文件的哈希表重复尝试插入文件,直至文件插入成功。
2.根据权利要求1所述的面向非易失性内存的用户态文件系统的实现方法,其特征在于,所述superblock区域存放用户态文件系统的整体信息,包括:非易失性内存的物理地址、元数据块数量和大小、数据块数量和大小、journal区域大小;
所述superblock区域在用户态文件系统启动时完成初始化操作;
所述inodetable区域存放元数据信息,该区域被分割为固定大小的块;
所述data区域存放数据,所述数据包括文件和目录,该区域支持分配不同的处理器页面大小;
所述journal区域存放写入操作,包括用户态文件系统中的元数据和数据,用户态文件系统重启后重新执行之前未完成的操作,使元数据和文件数据保持一致。
3.根据权利要求1所述的面向非易失性内存的用户态文件系统的实现方法,其特征在于,根据索引节点树组织元数据,所述索引节点树包括叶子节点和非叶子节点;
所述非叶子节点存放下一级节点的地址;
所述叶子节点存放元数据索引信息;
所述元数据索引信息包括元数据的inode号和地址这两个域;
所述元数据与元数据之间通过inode号建立一一映射关系。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海交通大学;清华大学,未经上海交通大学;清华大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201911426210.6/1.html,转载请声明来源钻瓜专利网。
- 上一篇:一种移动设备的管理方法
- 下一篇:基于物联网的设备管控平台