CN104077084B - 分布式随机访问文件系统及其访问控制方法 - Google Patents
分布式随机访问文件系统及其访问控制方法 Download PDFInfo
- Publication number
- CN104077084B CN104077084B CN201410350026.9A CN201410350026A CN104077084B CN 104077084 B CN104077084 B CN 104077084B CN 201410350026 A CN201410350026 A CN 201410350026A CN 104077084 B CN104077084 B CN 104077084B
- Authority
- CN
- China
- Prior art keywords
- accessed
- data
- file
- file data
- module
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供一种分布式随机访问文件系统及其访问控制方法,其中,所述分布式随机访问文件系统至少包括:进程管理模块,用于在用户请求打开、关闭和读/写被访问文件时,管理进程对所述被访问文件的打开、关闭和读/写操作;查询判断模块,用于查询所述映射表,并判断所述被访问文件数据的逻辑地址与其所在的物理地址间是否存在映射关系;寻址访问模块,用于根据所述被访问文件数据的逻辑地址寻址到所述被访问文件数据的物理地址。本发明充分发挥了新型非易失存储器随机访问的优势,提高了文件的读写访问速度,节省了有限的DRAM资源,从而提高系统I/O性能,实现进程对文件数据的快速访问。
Description
技术领域
本发明涉及文件系统领域,特别是涉及一种分布式随机访问文件系统及其访问控制方法。
背景技术
文件系统是操作系统的重要组成部分,用于控制对文件数据的存取;它提供对文件和目录的分层组织形式、数据缓冲(对于实时系统,允许绕过缓冲)以及对文件数据存取权限的控制。
随着半导体存储技术的发展以及新型存储架构的提出,特别是将基于新型非易失随机存储器+DRAM(Dynamic Random Access Memory,动态随机存取存储器)的存储架构,替代传统NOR+NAND+DRAM或HDD(Hard Disk Drive,硬盘)/SSD(Solid State Disk,固态硬盘)+DRAM的存储架构的提出,传统的文件系统工作方式及文件访问方式在新型存储架构下不能很好的发挥新型非易失随机存储器独有的随机访问特性优势。因为:传统的文件系统保存在非易失存储器中,当进程访问文件系统中的各个文件数据时,首先操作系统需要将要访问的数据从非易失存储器中以数据页形式顺序加载到DRAM,然后CPU以随机访问的方式访问DRAM中的数据,进行相应的读取或改写;可见,传统的文件系统访问数据时需要将数据加载至DRAM会导致多次数据复制、冗余数据迁移、文件读写速度慢、加载至DRAM内的数据的副本占用有限的DRAM内存资源,以及多数据副本数据同步引入额外的系统资源消耗等,同时由于无法直接随机访问非易失存储器中的数据而不能发挥新型存储器随机访问的特性。
因此,如何在新型存储架构下管理文件系统及控制文件访问,充分发挥新型非易失存储器随机访问的优势,如何提高文件的读写访问速度,如何节省有限的DRAM资源,提高系统I/O性能,成为存储系统亟待解决的问题。
发明内容
鉴于以上所述现有技术的缺点,本发明的目的在于提供一种分布式随机访问文件系统及其访问控制方法,用于解决现有技术中传统文件系统工作模式在新型存储架构中不能充分发挥新型存储器随机访问的优势,以及传统文件系统读取访问文件数据速度慢等问题。
为实现上述目的及其他相关目的,本发明提供一种分布式随机访问文件系统,应用于由本地存储节点和远程存储节点组成的存储有文件数据和文件系统管理数据的存储系统,其中,所述远程存储节点通过网络与所述本地存储节点连接,所述远程存储节点用于存储远程文件数据和文件系统管理数据;所述本地存储节点用于存储本地文件数据和与所述远程存储节点中相同的文件系统管理数据;所述存储系统由至少一台主机构成,每台主机至少包括中央处理器以及由动态随机存取存储器和非易失性随机存储器组成的存储架构,其中,各主机的存储架构中的各动态随机存取存储器和各非易失性随机存储器采用统一物理地址编址;
所述分布式随机访问文件系统至少包括:进程管理模块,与所述进程管理模块连接的查询判断模块,以及与所述查询判断模块连接的寻址访问模块;其中:
进程管理模块,用于在用户请求打开、关闭和读/写被访问文件时,管理进程对所述被访问文件的打开、关闭和读/写操作;以及用于当所述进程打开所述被访问文件时,在进程虚拟地址空间中为所述被访问文件分配逻辑地址空间、文件数据指针和映射表;其中,所述文件数据指针指向所述进程管理模块在所述进程虚拟地址空间中为所述被访问文件分配的逻辑地址空间中的起始逻辑地址,所述被访问文件数据的逻辑地址的寻址基于所述文件数据指针和所述被访问文件数据的读/写请求中的偏移量实现;其中,所述映射表初始化为空表,且所述映射表用于保存所述被访问文件数据的逻辑地址与其所在的物理地址间的映射关系;当所述进程关闭所述文件时,调用所述清除模块;当所述进程读/写所述被访问文件时,调用所述查询判断模块;
查询判断模块,用于查询所述映射表,并判断所述被访问文件数据的逻辑地址与其所在的物理地址间是否存在映射关系;在所述被访问文件数据的逻辑地址与其所在的物理地址间存在映射关系时,调用所述寻址访问模块;
寻址访问模块,用于根据所述被访问文件数据的逻辑地址寻址到所述被访问文件数据的物理地址,所述进程基于所述被访问文件数据的物理地址原位读/写所述被访问文件数据。
优选地,所述分布式随机访问文件系统还包括:与所述查询判断模块连接的检索判断模块,与所述检索判断模块连接的中断模块,以及与所述中断模块、所述寻址访问模块连接的建立模块;其中:
检索判断模块,用于在所述被访问文件数据的逻辑地址与其所在的物理地址间不存在映射关系时,检索并判断所述被访问文件数据是否存储于所述本地存储节点的非易失性随机存储器中;在所述被访问文件数据存储于所述本地存储节点的非易失性随机存储器中时,调用中断模块;在所述被访问文件数据不存储于所述本地存储节点的非易失性随机存储器中时,继续判断所述被访问文件数据是否存储于所述本地存储节点的动态随机存取存储器中;在所述被访问文件数据存储于所述本地存储节点的动态随机存取存储器中时,调用所述中断模块;
中断模块,用于调用系统中断函数,并向所述建立模块发送系统中断通知;
建立模块,用于当接收到所述中断模块发出的系统中断后,在所述被访问文件数据存储于所述本地存储节点的非易失性随机存储器中时,以数据页形式建立所述被访问文件数据的逻辑地址与其所在的所述本地存储节点的非易失性随机存储器中物理地址间的映射关系,然后调用所述寻址访问模块;或者,在所述被访问文件数据存储于所述本地存储节点的动态随机存取存储器中时,以数据页形式建立所述被访问文件数据的逻辑地址与其所在的所述本地存储节点的动态随机存储器中的物理地址间的映射关系,然后调用所述寻址访问模块。
优选地,所述分布式随机访问文件系统还包括:与所述检索判断模块、所述中断模块连接的获取模块;其中:
获取模块,用于在所述被访问文件数据不存储于所述本地存储节点的动态随机存取存储器中时,根据所述文件系统管理数据确定存储所述被访问文件数据的远程存储节点,通过网络从所述远程存储节点中获取所述被访问文件数据,并存储于所述本地存储节点的动态随机存取存储器中,然后调用中断模块。
优选地,所述分布式随机访问文件系统还包括:与所述寻址访问模块连接的锁定/解锁模块;其中:
锁定/解锁模块,用于在所述进程响应所述被访问文件数据的写请求时,锁定所述被访问文件中相应的数据页,并判断锁定是否成功,若否,则等待所述被访问文件中相应的数据页解锁,重复判断锁定是否成功;若是,则修改所述文件系统管理数据,将所述被访问文件中相应数据页的访问锁定标识符标记为锁定状态;或者,用于解锁被锁定的被访问文件中相应的数据页,更新所述文件系统管理数据,将所述被访问文件中相应数据页的访问锁定标识符标记为解锁状态。
优选地,所述分布式随机访问文件系统还包括:与所述进程管理模块连接的清除模块;其中:
清除模块,用于在所述进程关闭所述被访问文件时,清除所述被访问文件数据的逻辑地址与其所在的物理地址间已建立的所有映射,并销毁所述文件数据指针。
优选地,所述映射表中至少包括:所述被访问文件数据的逻辑地址与其所在的所述本地存储节点的非易失性随机存储器中的物理地址间的映射,或者所述被访问文件数据的逻辑地址与其所在的所述本地存储节点的动态随机存储器中的物理地址间的映射。
本发明还提供一种如上所述的分布式随机访问文件系统的访问控制方法,其中,所述分布式随机访问文件系统的访问控制方法至少包括:
在用户请求打开、关闭和读/写被访问文件时,由所述进程管理模块管理进程对所述被访问文件的打开、关闭和读/写操作;
当所述进程打开所述被访问文件时,由所述进程管理模块在进程虚拟地址空间中为所述被访问文件分配逻辑地址空间、文件数据指针和映射表;其中,所述文件数据指针指向所述进程管理模块在所述进程虚拟地址空间中为所述被访问文件分配的逻辑地址空间中的起始逻辑地址,所述被访问文件数据的逻辑地址的寻址基于所述文件数据指针和所述被访问文件数据的读/写请求中的偏移量实现;其中,所述映射表初始化为空表,且所述映射表用于保存所述被访问文件数据的逻辑地址与其所在的物理地址间的映射关系;
当所述进程关闭所述文件时,由所述进程管理模块调用所述清除模块;
当所述进程读/写所述被访问文件时,由所述进程管理模块调用所述查询判断模块;由所述查询判断模块查询所述映射表,并判断所述被访问文件数据的逻辑地址与其所在的物理地址间是否存在映射关系;在所述被访问文件数据的逻辑地址与其所在的物理地址间存在映射关系时,调用所述寻址访问模块;由所述寻址访问模块根据所述被访问文件数据的逻辑地址寻址到所述被访问文件数据的物理地址,所述进程基于所述被访问文件数据的物理地址原位读/写所述被访问文件数据。
优选地,所述分布式随机访问文件系统的访问控制方法还包括:
在所述被访问文件数据的逻辑地址与其所在的物理地址间不存在映射关系时,由所述检索判断模块检索并判断所述被访问文件数据是否存储于所述本地存储节点的非易失性随机存储器中;在所述被访问文件数据存储于所述本地存储节点的非易失性随机存储器中时,调用中断模块;在所述被访问文件数据不存储于所述本地存储节点的非易失性随机存储器中时,继续判断所述被访问文件数据是否存储于所述本地存储节点的动态随机存取存储器中;在所述被访问文件数据存储于所述本地存储节点的动态随机存取存储器中时,调用所述中断模块;
由所述中断模块调用系统中断函数,并向所述建立模块发送系统中断通知;
当接收到所述中断模块发出的系统中断后,在所述被访问文件数据存储于所述本地存储节点的非易失性随机存储器中时,由所述建立模块以数据页形式建立所述被访问文件数据的逻辑地址与其所在的所述本地存储节点的非易失性随机存储器中物理地址间的映射关系,然后调用所述寻址访问模块;或者,在所述被访问文件数据存储于所述本地存储节点的动态随机存取存储器中时,由所述建立模块以数据页形式建立所述被访问文件数据的逻辑地址与其所在的所述本地存储节点的动态随机存储器中的物理地址间的映射关系,然后调用所述寻址访问模块。
优选地,所述分布式随机访问文件系统的访问控制方法还包括:
在所述被访问文件数据不存储于所述本地存储节点的动态随机存取存储器中时,由所述获取模块根据所述文件系统管理数据确定存储所述被访问文件数据的远程存储节点,通过网络从所述远程存储节点中获取所述被访问文件数据,并存储于所述本地存储节点的动态随机存取存储器中,然后调用中断模块。
优选地,所述分布式随机访问文件系统的访问控制方法还包括:
在所述进程响应所述被访问文件数据的写请求时,由所述锁定/解锁模块锁定所述被访问文件中相应的数据页,并判断锁定是否成功,若否,则等待所述被访问文件中相应的数据页解锁,重复判断锁定是否成功;若是,则修改所述文件系统管理数据,将所述被访问文件中相应数据页的访问锁定标识符标记为锁定状态。
优选地,所述分布式随机访问文件系统的访问控制方法还包括:
由所述锁定/解锁模块解锁被锁定的被访问文件中相应的数据页,更新所述文件系统管理数据,将所述被访问文件中相应数据页的访问锁定标识符标记为解锁状态。
优选地,所述分布式随机访问文件系统的访问控制方法还包括:
在所述进程关闭所述被访问文件时,由所述清除模块清除所述被访问文件数据的逻辑地址与其所在的物理地址间已建立的所有映射,并销毁所述文件数据指针。
优选地,所述映射表中至少包括:所述被访问文件数据的逻辑地址与其所在的所述本地存储节点的非易失性随机存储器中的物理地址间的映射,或者所述被访问文件数据的逻辑地址与其所在的所述本地存储节点的动态随机存储器中的物理地址间的映射。
如上所述,本发明的分布式随机访问文件系统及其访问控制方法,具有以下有益效果:
本发明在由动态随机存取存储器和非易失性随机存储器组成的新型存储架构下,管理文件系统及控制文件访问,能够在内存的进程虚拟地址空间中为被访问文件分配逻辑地址空间,同时为文件数据访问提供地址指针和映射表,实现了进程以内存映射方式访问文件数据,能够快速地随机访问本地或远程文件数据,充分发挥了新型非易失存储器随机访问的优势,提高了文件的读、写访问速度,节省了有限的动态随机存取存储器资源,从而提高了系统I/O性能,实现了进程对文件数据的快速访问。
附图说明
图1显示为本发明第一实施方式的分布式随机访问文件系统的模块示意图。
图2显示为本发明第二实施方式的分布式随机访问文件系统的访问控制方法中进程读被访问文件时的流程示意图。
图3显示为本发明第二实施方式的分布式随机访问文件系统的访问控制方法中进程写被访问文件时的流程示意图。
元件标号说明
1 进程管理模块
2 查询判断模块
3 寻址访问模块
4 检索判断模块
5 中断模块
6 建立模块
7 获取模块
8 锁定/解锁模块
9 清除模块
具体实施方式
以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。
请参阅图1和图2,本发明第一实施方式涉及一种分布式随机访问文件系统,应用于由本地存储节点和远程存储节点组成的存储有文件数据和文件系统管理数据的存储系统,其中,远程存储节点通过网络与本地存储节点连接,远程存储节点用于存储远程文件数据和文件系统管理数据;本地存储节点用于存储本地文件数据和与远程存储节点中相同的文件系统管理数据;存储系统由至少一台主机构成,每台主机至少包括CPU以及由动态随机存取存储器和非易失性随机存储器组成的存储架构,其中,各主机的存储架构中的各动态随机存取存储器和各非易失性随机存储器采用统一物理地址编址。
此外,每台主机还具有其各自的本地文件系统,若存储系统由N台主机构成,其中,N为自然数,那么根据数据存储管理的需求,将文件数据分布存储在N台主机的非易失随机存储器中,并反映在其各自的本地文件系统中。每台主机的非易失随机存储器除了存储有本实施方式的分布式随机访问文件系统的部分文件数据外,还存储有本实施方式的分布式随机访问文件系统的所有文件数据的文件系统管理数据。从其他主机获取的文件数据可缓存于本地存储节点的主机的动态随机存取存储器中。用户可以随机访问本实施方式的分布式随机访问文件系统的文件数据,访问操作至少包括打开、关闭和读/写被访问文件。在本实施方式中,将用户在请求打开、关闭和读/写被访问文件时所使用的主机视为本地主机,相应的,其他主机视为远程主机。本地存储节点由单独的本地主机构成,本地存储节点的非易失随机存储器用于存储本地文件数据,本地存储节点的动态随机存取存储器用于缓存远程文件数据;远程存储节点由单独的远程主机构成,远程存储节点用于存储远程文件数据。用户通过本地主机可以随机访问本地存储节点中存储的本地文件数据,还可以基于文件系统管理数据实现对远程存储节点中存储的远程文件数据的访问。
需要说明的是,本实施方式中所提供的图示仅以示意方式说明本发明的基本构想,遂图式中仅显示与本发明中有关的组件而非按照实际实施时的组件数目、形状及尺寸绘制,其实际实施时各组件的型态、数量及比例可为一种随意的改变,且其组件布局型态也可能更为复杂。
如图1所示,分布式随机访问文件系统至少包括:进程管理模块11,与进程管理模块11连接的查询判断模块22,以及与查询判断模块22连接的寻址访问模块33;其中:
进程管理模块1,用于在用户请求打开、关闭和读/写被访问文件时,管理进程对被访问文件的打开、关闭和读/写操作;以及用于当进程打开被访问文件时,在进程虚拟地址空间中为被访问文件分配逻辑地址空间、文件数据指针和映射表;其中,文件数据指针指向进程管理模块1在进程虚拟地址空间中为被访问文件分配的逻辑地址空间中的起始逻辑地址,被访问文件数据的逻辑地址的寻址是基于文件数据指针和被访问文件数据的读/写请求中的偏移量实现的;其中,映射表初始化为空表,且映射表用于保存被访问文件数据的逻辑地址与其所在的物理地址间的映射关系;当进程关闭文件时,调用清除模块;当进程读/写被访问文件时,调用查询判断模块2。
由于读/写请求中所请求访问的被访问文件数据的逻辑地址相对于文件数据指针指向的起始逻辑地址具有相应的偏移量,因此,在进程响应被访问文件数据的读/写请求时,被访问文件数据的逻辑地址只需要通过将文件数据指针加上该相应的偏移量就能实现寻址。
查询判断模块2,用于查询映射表,并判断被访问文件数据的逻辑地址与其所在的物理地址间是否存在映射关系;在被访问文件数据的逻辑地址与其所在的物理地址间存在映射关系时,调用寻址访问模块3。
寻址访问模块3,用于根据被访问文件数据的逻辑地址寻址到被访问文件数据的物理地址,进程基于被访问文件数据的物理地址原位读/写被访问文件数据。即进程直接从寻址到的被访问文件数据的物理地址中读/写被访问文件数据。
在本实施方式中,映射表中至少包括:被访问文件数据的逻辑地址与其所在的本地存储节点的非易失性随机存储器中的物理地址间的映射,或者被访问文件数据的逻辑地址与其所在的本地存储节点的动态随机存储器中的物理地址间的映射。
另外,被访问文件均基于数据页为单位建立被访问文件数据的逻辑地址与其所在的物理地址间的映射关系。
优选地,本实施方式的分布式随机访问文件系统还包括:与查询判断模块2连接的检索判断模块4,与检索判断模块4连接的中断模块5,以及与中断模块5、寻址访问模块3连接的建立模块6;其中:
检索判断模块4,用于在被访问文件数据的逻辑地址与其所在的物理地址间不存在映射关系时,检索并判断被访问文件数据是否存储于本地存储节点的非易失性随机存储器中;在被访问文件数据存储于本地存储节点的非易失性随机存储器中时,调用中断模块5;在被访问文件数据不存储于本地存储节点的非易失性随机存储器中时,继续判断被访问文件数据是否存储于本地存储节点的动态随机存取存储器中;在被访问文件数据存储于本地存储节点的动态随机存取存储器中时,调用中断模块5;
中断模块5,用于调用系统中断函数,并向建立模块6发送系统中断通知;
建立模块6,用于当接收到中断模块5发出的系统中断后,在被访问文件数据存储于本地存储节点的非易失性随机存储器中时,以数据页形式建立被访问文件数据的逻辑地址与其所在的本地存储节点的非易失性随机存储器中物理地址间的映射关系,然后调用寻址访问模块3;或者,在被访问文件数据存储于本地存储节点的动态随机存取存储器中时,以数据页形式建立被访问文件数据的逻辑地址与其所在的本地存储节点的动态随机存储器中的物理地址间的映射关系,然后调用寻址访问模块3。
优选地,本实施方式的分布式随机访问文件系统还包括:与检索判断模块4、中断模块5连接的获取模块7,用于在被访问文件数据不存储于本地存储节点的动态随机存取存储器中时,根据文件系统管理数据确定存储被访问文件数据的远程存储节点,通过网络从远程存储节点中获取被访问文件数据,并存储于本地存储节点的动态随机存取存储器中,然后调用中断模块5。
在本实施方式中,判断被访问文件数据是否存储于本地存储节点的非易失性随机存储器中,也就是判断被访问文件数据是否为存储在本地存储节点中的本地文件数据,若被访问文件数据是本地文件数据,则能够直接建立映射。而判断被访问文件数据是否存储于本地存储节点的动态随机存取存储器中,也就是判断被访问文件数据是否为已经从远程存储节点获取来的远程文件数据,若是,则能够直接建立映射;若否,则说明被访问文件数据仍然位于远程存储节点,需要通过网络协议获取数据,并保存于本地高速缓存、也就是本地存储节点的动态随机存取存储器中,并同样与被访问文件数据的逻辑地址建立映射关系,保证进程的正常访问。
优选地,本实施方式的分布式随机访问文件系统还包括:与寻址访问模块3连接的锁定/解锁模块8,用于在进程响应被访问文件数据的写请求时,锁定被访问文件中相应的数据页,并判断锁定是否成功,若否,则等待被访问文件中相应的数据页解锁,重复判断锁定是否成功;若是,则修改文件系统管理数据,将被访问文件中相应数据页的访问锁定标识符标记为锁定状态;或者,用于解锁被锁定的被访问文件中相应的数据页,更新文件系统管理数据,将被访问文件中相应数据页的访问锁定标识符标记为解锁状态。
多个进程同时对同一段被访问文件数据写操作时,采用锁定/解锁模块8,启动文件锁定-解锁机制,实现文件系统管理数据的同步更新。同一段被访问文件数据在任一时刻只能被一个进程锁定,锁定成功后,该进程获得写权限。未锁定该数据段的其他进程可获得读权限。
优选地,本实施方式的分布式随机访问文件系统还包括:与进程管理模块1连接的清除模块,用于在进程关闭被访问文件时,清除被访问文件数据的逻辑地址与其所在的物理地址间已建立的所有映射,并销毁文件数据指针。
在本实施方式中,非易失性随机存储器为相变存储器(PCRAM,Phase ChangeRandom Access Memory)、阻变存储器(R-RAM)、磁存储器(MRAM,Magnetic Random AccessMemory)或者铁电存储器(FeRAM)中的一种或几种。
本实施方式的分布式随机访问文件系统,在由动态随机存取存储器和非易失性随机存储器组成的新型存储架构下,管理文件系统及控制文件访问,能够在内存的进程虚拟地址空间中为被访问文件分配逻辑地址空间,同时为文件数据访问提供地址指针和映射表,实现了进程以内存映射方式访问文件数据,充分发挥了新型非易失存储器随机访问的优势,提高了文件的读写访问速度,节省了有限的DRAM资源,从而提高了系统I/O性能,实现进程对文件数据的快速访问。
值得一提的是,本实施方式中所涉及到的各模块均为逻辑模块,在实际应用中,一个逻辑单元可以是一个物理单元,也可以是一个物理单元的一部分,还可以以多个物理单元的组合实现。此外,为了突出本发明的创新部分,本实施方式中并没有将与解决本发明所提出的技术问题关系不太密切的单元引入,但这并不表明本实施方式中不存在其它的单元。
本发明第二实施方式涉及一种采用第一实施方式的如图1所示的分布式随机访问文件系统的访问控制方法,分布式随机访问文件系统的访问控制方法至少包括:
在用户请求打开、关闭和读/写被访问文件时,由进程管理模块1管理进程对被访问文件的打开、关闭和读/写操作。
当进程打开被访问文件时,由进程管理模块1在进程虚拟地址空间中为被访问文件分配逻辑地址空间、文件数据指针和映射表;其中,文件数据指针指向进程管理模块1在进程虚拟地址空间中为被访问文件分配的逻辑地址空间中的起始逻辑地址,被访问文件数据的逻辑地址的寻址是基于文件数据指针和被访问文件数据的读/写请求中的偏移量实现的;其中,映射表初始化为空表,且映射表用于保存被访问文件数据的逻辑地址与其所在的物理地址间的映射关系;当进程关闭文件时,由进程管理模块1调用清除模块。
如图2所示为进程读被访问文件时的流程图,如图3所示为进程写被访问文件时的流程图;当进程读/写被访问文件时,由进程管理模块1调用查询判断模块2;由查询判断模块2查询映射表,并判断被访问文件数据的逻辑地址与其所在的物理地址间是否存在映射关系;在被访问文件数据的逻辑地址与其所在的物理地址间存在映射关系时,调用寻址访问模块3;由寻址访问模块3根据被访问文件数据的逻辑地址寻址到被访问文件数据的物理地址,进程基于被访问文件数据的物理地址原位读/写被访问文件数据。
如图2和图3所示,本实施方式的分布式随机访问文件系统的访问控制方法还包括:
在被访问文件数据的逻辑地址与其所在的物理地址间不存在映射关系时,由检索判断模块4检索并判断被访问文件数据是否存储于本地存储节点的非易失性随机存储器(以PCRAM为例)中;在被访问文件数据存储于本地存储节点的非易失性随机存储器中时,调用中断模块5;在被访问文件数据不存储于本地存储节点的非易失性随机存储器中时,继续判断被访问文件数据是否存储于本地存储节点的动态随机存取存储器(以DRAM为例)中;在被访问文件数据存储于本地存储节点的动态随机存取存储器中时,调用中断模块5。
由中断模块5调用系统中断函数,并向建立模块6发送系统中断通知。
当接收到中断模块5发出的系统中断后,在被访问文件数据存储于本地存储节点的非易失性随机存储器中时,由建立模块6以数据页形式建立被访问文件数据的逻辑地址与其所在的本地存储节点的非易失性随机存储器中物理地址间的映射关系,然后调用寻址访问模块3;或者,在被访问文件数据存储于本地存储节点的动态随机存取存储器中时,由建立模块6以数据页形式建立被访问文件数据的逻辑地址与其所在的本地存储节点的动态随机存储器中的物理地址间的映射关系,然后调用寻址访问模块3。
在被访问文件数据不存储于本地存储节点的动态随机存取存储器中时,由获取模块7根据文件系统管理数据确定存储被访问文件数据的远程存储节点,通过网络从远程存储节点中获取被访问文件数据,并存储于本地存储节点的动态随机存取存储器中,然后调用中断模块5。
其中,获取模块7获取被访问文件数据的方法具体为:由获取模块7基于底层网络端口向确定存储被访问文件数据的远程存储节点发送数据请求,该远程存储节点接收到数据请求后向获取模块7发送被访问文件数据,由获取模块7接收该远程存储节点发送的被访问文件数据。
如图3所示,本实施方式的分布式随机访问文件系统的访问控制方法还包括:在进程响应被访问文件数据的写请求时,此时寻址访问模块3已经寻址到被访问文件数据的物理地址;由锁定/解锁模块8锁定被访问文件中相应的数据页,并判断锁定是否成功,若否,则等待被访问文件中相应的数据页解锁,重复判断锁定是否成功;若是,则修改文件系统管理数据,将被访问文件中相应数据页的访问锁定标识符标记为锁定状态。接着,进程原位写被访问文件数据。之后,由锁定/解锁模块8解锁被锁定的被访问文件中相应的数据页,更新文件系统管理数据,将被访问文件中相应数据页的访问锁定标识符标记为解锁状态。进程写被访问文件数据完成。
优选地,本实施方式的分布式随机访问文件系统的访问控制方法还包括:在进程关闭被访问文件时,由清除模块清除被访问文件数据的逻辑地址与其所在的物理地址间已建立的所有映射,并销毁文件数据指针。而采用清除模块9清除已建立的映射和销毁文件数据指针,以删除不需要的数据,节省了内存空间,提升了进程访问速度。
此外,非易失性随机存储器为相变存储器、阻变存储器、磁存储器或者铁电存储器中的一种或几种。在本实施方式中,请参阅图2和图3,非易失性随机存储器均采用相变存储器PCRAM。
上面各种方法的步骤划分,只是为了描述清楚,实现时可以合并为一个步骤或者对某些步骤进行拆分,分解为多个步骤,只要包含相同的逻辑关系,都在本专利的保护范围内;对算法中或者流程中添加无关紧要的修改或者引入无关紧要的设计,但不改变其算法和流程的核心设计都在该专利的保护范围内。
不难发现,本实施方式为与第一实施方式相对应的方法实施例,本实施方式可与第一实施方式互相配合实施。第一实施方式中提到的相关技术细节在本实施方式中依然有效,为了减少重复,这里不再赘述。相应地,本实施方式中提到的相关技术细节也可应用在第一实施方式中。
综上,本发明的分布式随机访问文件系统及其访问控制方法,在由动态随机存取存储器和非易失性随机存储器组成的新型存储架构下,管理文件系统及控制文件访问,能够在内存的进程虚拟地址空间中为被访问文件分配逻辑地址空间,同时为文件数据访问提供地址指针和映射表,实现了进程以内存映射方式访问文件数据,充分发挥了新型非易失存储器随机访问的优势,提高了文件的读写访问速度,节省了有限的DRAM资源,从而提高了系统I/O性能,实现进程对文件数据的快速访问。所以,本发明有效克服了现有技术中的种种缺点而具高度产业利用价值。
上述实施例仅例示性说明本发明的原理及其功效,而非用于限制本发明。任何熟悉此技术的人士皆可在不违背本发明的精神及范畴下,对上述实施例进行修饰或改变。因此,举凡所属技术领域中具有通常知识者在未脱离本发明所揭示的精神与技术思想下所完成的一切等效修饰或改变,仍应由本发明的权利要求所涵盖。
Claims (13)
1.一种分布式随机访问文件系统,应用于由本地存储节点和远程存储节点组成的存储有文件数据和文件系统管理数据的存储系统,其特征在于,所述远程存储节点通过网络与所述本地存储节点连接,所述远程存储节点用于存储远程文件数据和文件系统管理数据;所述本地存储节点用于存储本地文件数据和与所述远程存储节点中相同的文件系统管理数据;所述存储系统由至少一台主机构成,每台主机至少包括中央处理器以及由动态随机存取存储器和非易失性随机存储器组成的存储架构,其中,各主机的存储架构中的各动态随机存取存储器和各非易失性随机存储器采用统一物理地址编址,所述文件数据分布存储在各主机存储架构中的各非易失性随机存储器中,每台主机存储架构中的非易失性随机存储器用于存储部分文件数据以及所有文件数据对应的文件系统管理数据,每台主机存储架构中的动态随机存取存储器用于缓存从其他主机获取的远程文件数据;用户通过所述主机随机访问所述本地存储节点中存储的本地文件数据,并基于所述文件系统管理数据实现对所述远程存储节点中存储的远程文件数据的访问;
所述分布式随机访问文件系统至少包括:进程管理模块,与所述进程管理模块连接的查询判断模块和清除模块,以及与所述查询判断模块连接的寻址访问模块;其中:
进程管理模块,用于在用户请求打开、关闭和读/写被访问文件时,管理进程对所述被访问文件的打开、关闭和读/写操作;以及用于当所述进程打开所述被访问文件时,在进程虚拟地址空间中为所述被访问文件分配逻辑地址空间、文件数据指针以及映射表;其中,所述文件数据指针指向所述进程管理模块在所述进程虚拟地址空间中为所述被访问文件分配的逻辑地址空间中的起始逻辑地址,所述被访问文件数据的逻辑地址的寻址基于所述文件数据指针和所述被访问文件数据的读/写请求中的偏移量实现;其中,所述映射表初始化为空表,且所述映射表用于保存所述被访问文件数据的逻辑地址与其所在的物理地址间的映射关系;当所述进程关闭所述文件时,调用所述清除模块;当所述进程读/写所述被访问文件时,调用所述查询判断模块;
查询判断模块,用于查询所述映射表,并判断所述被访问文件数据的逻辑地址与其所在的物理地址间是否存在映射关系;在所述被访问文件数据的逻辑地址与其所在的物理地址间存在映射关系时,调用所述寻址访问模块;
寻址访问模块,用于根据所述被访问文件数据的逻辑地址寻址到所述被访问文件数据的物理地址,所述进程基于所述被访问文件数据的物理地址原位读/写所述被访问文件数据。
2.根据权利要求1所述的分布式随机访问文件系统,其特征在于,所述分布式随机访问文件系统还包括:与所述查询判断模块连接的检索判断模块,与所述检索判断模块连接的中断模块,以及与所述中断模块、所述寻址访问模块连接的建立模块;其中:
检索判断模块,用于在所述被访问文件数据的逻辑地址与其所在的物理地址间不存在映射关系时,检索并判断所述被访问文件数据是否存储于所述本地存储节点的非易失性随机存储器中;在所述被访问文件数据存储于所述本地存储节点的非易失性随机存储器中时,调用中断模块;在所述被访问文件数据不存储于所述本地存储节点的非易失性随机存储器中时,继续判断所述被访问文件数据是否存储于所述本地存储节点的动态随机存取存储器中;在所述被访问文件数据存储于所述本地存储节点的动态随机存取存储器中时,调用所述中断模块;
中断模块,用于调用系统中断函数,并向所述建立模块发送系统中断通知;
建立模块,用于当接收到所述中断模块发出的系统中断后,在所述被访问文件数据存储于所述本地存储节点的非易失性随机存储器中时,以数据页形式建立所述被访问文件数据的逻辑地址与其所在的所述本地存储节点的非易失性随机存储器中物理地址间的映射关系,然后调用所述寻址访问模块;或者,在所述被访问文件数据存储于所述本地存储节点的动态随机存取存储器中时,以数据页形式建立所述被访问文件数据的逻辑地址与其所在的所述本地存储节点的动态随机存取存储器中的物理地址间的映射关系,然后调用所述寻址访问模块。
3.根据权利要求2所述的分布式随机访问文件系统,其特征在于,所述分布式随机访问文件系统还包括:与所述检索判断模块、所述中断模块连接的获取模块;其中:
获取模块,用于在所述被访问文件数据不存储于所述本地存储节点的动态随机存取存储器中时,根据所述文件系统管理数据确定存储所述被访问文件数据的远程存储节点,通过网络从所述远程存储节点中获取所述被访问文件数据,并存储于所述本地存储节点的动态随机存取存储器中,然后调用中断模块。
4.根据权利要求1所述的分布式随机访问文件系统,其特征在于,所述分布式随机访问文件系统还包括:与所述寻址访问模块连接的锁定/解锁模块;其中:
锁定/解锁模块,用于在所述进程响应所述被访问文件数据的写请求时,锁定所述被访问文件中相应的数据页,并判断锁定是否成功,若否,则等待所述被访问文件中相应的数据页解锁,重复判断锁定是否成功;若是,则修改所述文件系统管理数据,将所述被访问文件中相应数据页的访问锁定标识符标记为锁定状态;或者,用于解锁被锁定的被访问文件中相应的数据页,更新所述文件系统管理数据,将所述被访问文件中相应数据页的访问锁定标识符标记为解锁状态。
5.根据权利要求1-4任一项所述的分布式随机访问文件系统,其特征在于,在所述进程关闭所述被访问文件时,所述清除模块用于清除所述被访问文件数据的逻辑地址与其所在的物理地址间已建立的所有映射,并销毁所述文件数据指针。
6.根据权利要求1-4任一项所述的分布式随机访问文件系统,其特征在于,所述映射表中至少包括:所述被访问文件数据的逻辑地址与其所在的所述本地存储节点的非易失性随机存储器中的物理地址间的映射,或者所述被访问文件数据的逻辑地址与其所在的所述本地存储节点的动态随机存取存储器中的物理地址间的映射。
7.一种如权利要求1所述的分布式随机访问文件系统的访问控制方法,其特征在于,所述分布式随机访问文件系统的访问控制方法至少包括:
在用户请求打开、关闭和读/写被访问文件时,由所述进程管理模块管理进程对所述被访问文件的打开、关闭和读/写操作;
当所述进程打开所述被访问文件时,由所述进程管理模块在进程虚拟地址空间中为所述被访问文件分配逻辑地址空间、文件数据指针和映射表;其中,所述文件数据指针指向所述进程管理模块在所述进程虚拟地址空间中为所述被访问文件分配的逻辑地址空间中的起始逻辑地址,所述被访问文件数据的逻辑地址的寻址基于所述文件数据指针和所述被访问文件数据的读/写请求中的偏移量实现;其中,所述映射表初始化为空表,且所述映射表用于保存所述被访问文件数据的逻辑地址与其所在的物理地址间的映射关系;
当所述进程关闭所述文件时,由所述进程管理模块调用所述清除模块;
当所述进程读/写所述被访问文件时,由所述进程管理模块调用所述查询判断模块;由所述查询判断模块查询所述映射表,并判断所述被访问文件数据的逻辑地址与其所在的物理地址间是否存在映射关系;在所述被访问文件数据的逻辑地址与其所在的物理地址间存在映射关系时,调用所述寻址访问模块;由所述寻址访问模块根据所述被访问文件数据的逻辑地址寻址到所述被访问文件数据的物理地址,所述进程基于所述被访问文件数据的物理地址原位读/写所述被访问文件数据。
8.根据权利要求7所述的分布式随机访问文件系统的访问控制方法,其特征在于,所述分布式随机访问文件系统还包括:与所述查询判断模块连接的检索判断模块,与所述检索判断模块连接的中断模块,以及与所述中断模块、所述寻址访问模块连接的建立模块;其中,所述分布式随机访问文件系统的访问控制方法还包括:
在所述被访问文件数据的逻辑地址与其所在的物理地址间不存在映射关系时,由所述检索判断模块检索并判断所述被访问文件数据是否存储于所述本地存储节点的非易失性随机存储器中;在所述被访问文件数据存储于所述本地存储节点的非易失性随机存储器中时,调用中断模块;在所述被访问文件数据不存储于所述本地存储节点的非易失性随机存储器中时,继续判断所述被访问文件数据是否存储于所述本地存储节点的动态随机存取存储器中;在所述被访问文件数据存储于所述本地存储节点的动态随机存取存储器中时,调用所述中断模块;
由所述中断模块调用系统中断函数,并向所述建立模块发送系统中断通知;
当接收到所述中断模块发出的系统中断后,在所述被访问文件数据存储于所述本地存储节点的非易失性随机存储器中时,由所述建立模块以数据页形式建立所述被访问文件数据的逻辑地址与其所在的所述本地存储节点的非易失性随机存储器中物理地址间的映射关系,然后调用所述寻址访问模块;或者,在所述被访问文件数据存储于所述本地存储节点的动态随机存取存储器中时,由所述建立模块以数据页形式建立所述被访问文件数据的逻辑地址与其所在的所述本地存储节点的动态随机存取存储器中的物理地址间的映射关系,然后调用所述寻址访问模块。
9.根据权利要求8所述的分布式随机访问文件系统的访问控制方法,其特征在于,所述分布式随机访问文件系统还包括:与所述检索判断模块、所述中断模块连接的获取模块;其中,所述分布式随机访问文件系统的访问控制方法还包括:
在所述被访问文件数据不存储于所述本地存储节点的动态随机存取存储器中时,由所述获取模块根据所述文件系统管理数据确定存储所述被访问文件数据的远程存储节点,通过网络从所述远程存储节点中获取所述被访问文件数据,并存储于所述本地存储节点的动态随机存取存储器中,然后调用中断模块。
10.根据权利要求7所述的分布式随机访问文件系统的访问控制方法,其特征在于,所述分布式随机访问文件系统还包括:与所述寻址访问模块连接的锁定/解锁模块;其中,所述分布式随机访问文件系统的访问控制方法还包括:
在所述进程响应所述被访问文件数据的写请求时,由所述锁定/解锁模块锁定所述被访问文件中相应的数据页,并判断锁定是否成功,若否,则等待所述被访问文件中相应的数据页解锁,重复判断锁定是否成功;若是,则修改所述文件系统管理数据,将所述被访问文件中相应数据页的访问锁定标识符标记为锁定状态。
11.根据权利要求10所述的分布式随机访问文件系统的访问控制方法,其特征在于,所述分布式随机访问文件系统的访问控制方法还包括:
由所述锁定/解锁模块解锁被锁定的被访问文件中相应的数据页,更新所述文件系统管理数据,将所述被访问文件中相应数据页的访问锁定标识符标记为解锁状态。
12.根据权利要求7-11任一项所述的分布式随机访问文件系统的访问控制方法,其特征在于,所述分布式随机访问文件系统的访问控制方法还包括:
在所述进程关闭所述被访问文件时,由所述清除模块清除所述被访问文件数据的逻辑地址与其所在的物理地址间已建立的所有映射,并销毁所述文件数据指针。
13.根据权利要求7-11任一项所述的分布式随机访问文件系统的访问控制方法,其特征在于,所述映射表中至少包括:所述被访问文件数据的逻辑地址与其所在的所述本地存储节点的非易失性随机存储器中的物理地址间的映射,或者所述被访问文件数据的逻辑地址与其所在的所述本地存储节点的动态随机存取存储器中的物理地址间的映射。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410350026.9A CN104077084B (zh) | 2014-07-22 | 2014-07-22 | 分布式随机访问文件系统及其访问控制方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410350026.9A CN104077084B (zh) | 2014-07-22 | 2014-07-22 | 分布式随机访问文件系统及其访问控制方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104077084A CN104077084A (zh) | 2014-10-01 |
CN104077084B true CN104077084B (zh) | 2017-07-21 |
Family
ID=51598371
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410350026.9A Active CN104077084B (zh) | 2014-07-22 | 2014-07-22 | 分布式随机访问文件系统及其访问控制方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104077084B (zh) |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105745900B (zh) * | 2014-10-31 | 2019-06-07 | 华为技术有限公司 | 访问文件的方法、分布式存储系统和网络设备 |
WO2016065612A1 (zh) * | 2014-10-31 | 2016-05-06 | 华为技术有限公司 | 访问文件的方法、系统和主机 |
US10198185B2 (en) | 2014-12-31 | 2019-02-05 | Samsung Electronics Co., Ltd. | Computing system with processing and method of operation thereof |
EP3324296B1 (en) | 2015-08-20 | 2019-12-04 | Huawei Technologies Co., Ltd. | File data access method and computer system |
CN105912897B (zh) * | 2016-04-12 | 2019-02-15 | 北京奇虎科技有限公司 | 终端的状态获取方法及系统、信息显示方法及系统 |
CN107969153B (zh) * | 2016-08-19 | 2021-06-22 | 华为技术有限公司 | 一种资源分配方法、装置及numa系统 |
KR20180067756A (ko) | 2016-12-12 | 2018-06-21 | 에스케이하이닉스 주식회사 | 제어 장치, 그 제어 장치를 포함하는 반도체 시스템 및 그 반도체 시스템의 구동 방법 |
KR102310117B1 (ko) | 2017-07-07 | 2021-10-08 | 에스케이하이닉스 주식회사 | 저장 장치 및 그 동작 방법 |
CN109144725B (zh) * | 2018-08-02 | 2020-11-17 | 北京达佳互联信息技术有限公司 | 文件处理方法、装置、电子设备及存储介质 |
CN112148202B (zh) * | 2019-06-26 | 2023-05-26 | 杭州海康威视数字技术股份有限公司 | 训练样本读取方法及装置 |
CN113780704A (zh) * | 2020-10-22 | 2021-12-10 | 北京京东振世信息技术有限公司 | 一种任务处理方法和装置 |
CN114817341B (zh) * | 2022-06-30 | 2022-09-06 | 北京奥星贝斯科技有限公司 | 访问数据库的方法和装置 |
CN115794750B (zh) * | 2023-02-07 | 2023-06-13 | 北京卡普拉科技有限公司 | 异步i/o系统文件打开/关闭的控制方法、装置及设备 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6646917B1 (en) * | 2002-10-10 | 2003-11-11 | Mitsubishi Denki Kabushiki Kaisha | Storage device managing nonvolatile memory by converting logical address to physical address of nonvolatile memory |
CN102169459A (zh) * | 2010-11-29 | 2011-08-31 | 北京握奇数据系统有限公司 | 一种访问数据的方法、装置和智能卡 |
CN103218312A (zh) * | 2013-03-28 | 2013-07-24 | 中国科学院上海微系统与信息技术研究所 | 文件访问方法及系统 |
CN103795813A (zh) * | 2014-03-10 | 2014-05-14 | 上海亦存网络科技有限公司 | 文件锁定、解锁方法及系统 |
CN103810113A (zh) * | 2014-01-28 | 2014-05-21 | 华中科技大学 | 一种非易失存储器和动态随机存取存储器的融合内存系统 |
-
2014
- 2014-07-22 CN CN201410350026.9A patent/CN104077084B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6646917B1 (en) * | 2002-10-10 | 2003-11-11 | Mitsubishi Denki Kabushiki Kaisha | Storage device managing nonvolatile memory by converting logical address to physical address of nonvolatile memory |
CN102169459A (zh) * | 2010-11-29 | 2011-08-31 | 北京握奇数据系统有限公司 | 一种访问数据的方法、装置和智能卡 |
CN103218312A (zh) * | 2013-03-28 | 2013-07-24 | 中国科学院上海微系统与信息技术研究所 | 文件访问方法及系统 |
CN103810113A (zh) * | 2014-01-28 | 2014-05-21 | 华中科技大学 | 一种非易失存储器和动态随机存取存储器的融合内存系统 |
CN103795813A (zh) * | 2014-03-10 | 2014-05-14 | 上海亦存网络科技有限公司 | 文件锁定、解锁方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN104077084A (zh) | 2014-10-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104077084B (zh) | 分布式随机访问文件系统及其访问控制方法 | |
US11086560B2 (en) | Data storage access method, device and apparatus for persistent memory | |
US10834224B2 (en) | Transaction log acceleration | |
CN107209715B (zh) | 文件数据访问方法和计算机系统 | |
US6457102B1 (en) | Cache using multiple LRU's | |
CN103218312B (zh) | 文件访问方法及系统 | |
JP6385995B2 (ja) | テーブル・オブ・コンテンツエントリを使用してデータを格納するためのシステムおよび方法 | |
CN104903872B (zh) | 用于自适应持久化的系统、方法和接口 | |
CN107168657B (zh) | 一种基于分布式块存储的虚拟磁盘分层缓存设计方法 | |
KR101620773B1 (ko) | 복합식 비휘발성 저장 디바이스를 위한 데이터 이송 | |
JP5717864B2 (ja) | データ記憶システムに用いるエンドポイントキャッシュ | |
US10474370B1 (en) | Method and system for mitigating the effect of write and read disturbances in solid state memory regions | |
CN103150136B (zh) | 基于ssd的大容量缓存中的lru策略实现方法 | |
US9851919B2 (en) | Method for data placement in a memory based file system | |
CN110119425A (zh) | 固态驱动器、分布式数据存储系统和利用键值存储的方法 | |
US20130091331A1 (en) | Methods, apparatus, and articles of manufacture to manage memory | |
CN105095113B (zh) | 一种缓存管理方法和系统 | |
CN106201335B (zh) | 存储系统 | |
US11797453B2 (en) | In-memory distributed cache | |
US9208088B2 (en) | Shared virtual memory management apparatus for providing cache-coherence | |
CN107256196A (zh) | 基于闪存阵列的支持零拷贝的缓存系统及方法 | |
CN109582221A (zh) | 主机计算设备、远程服务器设备、存储系统及其方法 | |
CN109558338A (zh) | 存储器中的动态页面分配 | |
CN104052824B (zh) | 分布式缓存方法及系统 | |
CN105653720A (zh) | 一种可灵活配置的数据库分层存储优化方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant |