[发明专利]基于非易失内存设备的数据去冗余系统有效
申请号: | 201710077383.6 | 申请日: | 2017-02-14 |
公开(公告)号: | CN106775501B | 公开(公告)日: | 2019-06-11 |
发明(设计)人: | 李丁丁;唐立杰;田晓甲;汤庸 | 申请(专利权)人: | 华南师范大学 |
主分类号: | G06F3/06 | 分类号: | G06F3/06 |
代理公司: | 广州粤高专利商标代理有限公司 44102 | 代理人: | 林瑞云 |
地址: | 510660 *** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明涉及一种基于非易失内存设备的数据去冗余系统,包括基于NVRAM的新型内核文件系统模块,为一制定文件系统,位于内核的文件系统层次;用户空间文件系统模块,为一个位于用户空间中的特殊进程,可以向其他进程提供与NVRAM进行交互的中间层或者虚拟层;数据去冗余方法及其系统整合方式模块,提供具体的去冗余逻辑给所述的用户空间文件系统。NVRAM的新型内核文件系统模块用于改进传统文件系统对于NVRAM存储介质的性能次优性;用户空间文件系统用于以一种较低代价并友好的方式来接入去冗余功能;数据去冗余方法及其系统整合方式模块将具体的去冗余逻辑加入到了FUSE中,在CPU+NVRAM架构上产生了真正的数据去冗余效果。 | ||
搜索关键词: | 基于 非易失 内存 设备 数据 冗余 方法 系统 | ||
【主权项】:
1.一种基于非易失内存设备的数据去冗余系统,其特征在于,包括基于NVRAM的新型内核文件系统模块,为一制定文件系统,位于内核的文件系统层次,可以改进传统文件系统在NVRAM设备上的性能不足之处和功能冗余,同时向位于用户空间的各类进程提供一套与NVRAM交互、同时兼容现有标准的读写接口;用户空间文件系统模块,为一个位于用户空间中的特殊进程,可以向其他进程提供与NVRAM进行交互的中间层或者虚拟层;数据去冗余方法及其系统整合方式模块,提供具体的去冗余逻辑给所述的用户空间文件系统;其中,所述的数据去冗余方法及其系统整合方式模块包括:数据指纹仓库,用于存储块文件数据指纹,所述的数据指纹是指块文件的哈希值;文件块表,每张文件块表代表着一个文件,每张文件块表存储着该文件所引用的块文件;文件引用数表,用于存储每个块文件的被引用数;FUSE标准读写接口,处于FUSE进程中,包含去冗余读写逻辑,与所述的数据指纹仓库、文件块表、文件引用数表和其他模块进行数据交换;更具体的,数据去冗余方法及其系统整合方式模块中,所述的读写逻辑中读取逻辑包括如下步骤:S1,根据普通进程调用的读系统调用接口中的路径参数以及具体读取位置参数,找到其想要打开的文件及其所对应的文件块表;S2,根据文件块表中的条目以及所述的具体读取位置参数,找到该文件内部在本次读取操作中所涉及到的块文件,及其文件名和大小;S3,循环读取涉及到的一个或者多个块文件,直至读取完所有要读取的数据或者是读取到文件尾;S4,将读取到的数据返回给普通进程,本次读取流程结束;更具体的,数据去冗余方法及其系统整合方式模块中,所述的读写逻辑中写入逻辑包括如下步骤:S1,根据普通进程调用的写系统调用接口中的路径参数以及起始写入位置参数,找到对应的文件及其所对应的文件块表;S2,将文件块表读取到内存链表之中,可定义为文件块链表,该链表每个节点包含着一个数据指纹、对应的块文件大小和尾部标记,尾部标记即为标志着该块文件为该文件的文件尾的一个标记;S3,根据所述的具体写入位置参数计算要写入的块文件所在文件块链表的位置,对这种情况分类处理;S4,若要写入的位置位于链表内,则先将目标块文件的数据读取出来,放至内存区域中,该区域大小为一个粒度大小,其中该区域为FUSE进程的地址空间,此后,将要写入的数据写入到所述的区域之中覆盖原有数据,然后计算其哈希值得到这组数据的数据指纹,利用哈希值搜索数据指纹仓库,寻找是否有其他块文件具有相同的哈希值,如果有则不用写入,将该哈希值替换掉文件块链表中的目标块文件的哈希值对象;如果没有相同内容的块,则将所述的数据写入数据仓库,成为新的临时块文件,并且用数据指纹和文件大小替换掉文件块链表中的目标块文件的对象;若链表不足以存储完则创建新节点继续写入,直至写入完所有要写入的数据,本次写入流程结束;S5,若要写入的块文件位置超出文件链表,则以‘\0’字符填充最后一个链表节点,并创造新节点以扩展链表长度,直至写入的位置位于链表内;S6,先将目标块文件的数据读取出来,放至内存区域中,该区域大小为粒度大小,其中该区域为FUSE进程的地址空间,此后,将要写入的数据写入到所述的区域之中覆盖原有数据,然后计算其哈希值得到这组数据的数据指纹,利用哈希值搜索数据指纹仓库,寻找是否有其他块文件具有相同的哈希值,如果有则不用写入,将该哈希值替换掉文件块链表中的目标块文件的哈希值对象;如果没有相同内容的块文件,则将所述的数据写入数据仓库,成为新的临时块文件,并且用数据指纹和文件大小替换掉文件块链表中的目标块文件的对象,并创建新节点以扩展链表,直至写入完所有要写入的数据,本次写入流程结束;S7,将现在的数据块链表与存储在文件内的数据块表从头相比对,同一个位置,若链表中引用了的而文件内的数据块表未引用的则在文件引用表上进行更新,将未引用的文件引用数减一,新引用的文件引用数加一。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华南师范大学,未经华南师范大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201710077383.6/,转载请声明来源钻瓜专利网。
- 上一篇:一种计算机硬盘存储文件的方法与装置
- 下一篇:一种基于数据更新频率的写入方法