CN110134657A - 基于非易失主存的文件系统元数据操作加速方法和系统 - Google Patents

基于非易失主存的文件系统元数据操作加速方法和系统 Download PDF

Info

Publication number
CN110134657A
CN110134657A CN201910276630.4A CN201910276630A CN110134657A CN 110134657 A CN110134657 A CN 110134657A CN 201910276630 A CN201910276630 A CN 201910276630A CN 110134657 A CN110134657 A CN 110134657A
Authority
CN
China
Prior art keywords
file
main memory
file system
volatile main
metadata
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.)
Pending
Application number
CN201910276630.4A
Other languages
English (en)
Inventor
王盈
蒋德钧
熊劲
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Institute of Computing Technology of CAS
Original Assignee
Institute of Computing Technology of CAS
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Institute of Computing Technology of CAS filed Critical Institute of Computing Technology of CAS
Priority to CN201910276630.4A priority Critical patent/CN110134657A/zh
Publication of CN110134657A publication Critical patent/CN110134657A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/13File access structures, e.g. distributed indices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/16File or folder operations, e.g. details of user interfaces specifically adapted to file systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/1847File system types specifically adapted to static storage, e.g. adapted to flash memory or SSD

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明提出一种基于非易失主存的文件系统元数据操作加速方法,包括:获取文件操作指令,根据非易失主存文件系统的根目录,判断该非易失主存文件系统中是否包含该文件操作指令的操作文件,若是,则绕过该非易失主存文件系统的VFS层,直接在该非易失主存文件系统中根据元数据找到待操作的目标文件,对该目标文件执行该文件操作指令,否则根据传统文件系统方式,由VFS层执行该文件操作指令。本发明绕过VFS直接在物理文件系统中操作元数据,在物理文件系统中支持完整的元数据操作语义方法使得元数据操作直接在物理文件系统中执行,提升元数据操作的性能和扩展性并减少文件系统对DRAM空间的占用。

Description

基于非易失主存的文件系统元数据操作加速方法和系统
技术领域
本发明涉及计算机领域中基于非易失性主存的本地文件系统,并特别涉及一种基于非易失主存的文件系统元数据操作加速方法和系统。
背景技术
新型非易失性主内存(又称持久化内存persistent memory,简称PM)是一种非易失性存储器,存储密度高,能耗低,读性能接近于动态随机存取存储器(Dynamic RandomAccess Memory,简称DRAM)且访问接口和DRAM相同。PM的特性使得它可以放在IO总线上当做存储设备使用。现有的非易失性存储器件主要有相变存储器(phase change memory,简称PCM),可变电阻式随机存取存储器(Resistive Random Access Memory,简称ReRAM),以及Intel公司提出的3D-Xpoint技术。
现有的PM文件系统(ext4-dax,NOVA,PMFS,BPFS,SCMFS)移除了磁盘文件系统架构的数据缓存层,通用块层和I/O调度层,数据操作直接进入PM,降低文件操作时不必要的拷贝,如图2PM内核文件系统架构图所示。但是他们却保留了虚拟文件系统(VFS)层。VFS层缓存文件系统的元数据(目录项dentry和索引节点inode,在VFS中的缓存分别命名为dcache和icache,如图3)并执行权限检查和并发控制的功能。对于PM介质来说,读写性能和DRAM接近,这些元数据操作可以直接在PM文件系统中实现,在VFS中缓存元数据是不必要的。此外,缓存元数据需要所有操作原子的在VFS和物理文件系统中更新,降低了应用的性能并限制了元数据操作的多线程扩展性。以创建一个文件为例(创建/example/foo文件)。首先,操作系统在VFS中查找到目标文件的父目录example(第一步),然后对父目录加读写锁(第二步)阻止对父目录的并发修改操作。随后,物理文件系统创建文件foo(第三步),其中包括分配新的文件元数据(dentry和inode)和更新父目录(example)信息。在物理文件系统创建完之后,VFS缓存新创建文件的元数据(dcache和icache,第四步)并更新父目录的元数据。这些操作完成之后,一个创建操作才算完成,父目录(example)中的读写锁才可以去掉(第五步)。对于PM文件系统,在VFS中元数据的操作是可以去掉的,只需要执行第三步。此外,PM文件系统可以更细化目录的加锁粒度,提高元数据操作的并发性。
现有的优化PM文件系统的元数据操作问题的解决方法,主要有以下几种方式:
技术方案1:在物理文件系统层解决元数据操作问题(架构如图2)。NOVA采用日志结构(log-structure)减少元数据持久化开销,并且采用预分配空闲空间和inode到各个CPU减低多线程操作元数据的争用;BPFS使用优化后的写时复制(COW)减少元数据写放大开销;SCMFS通过预分配虚拟地址空间来减少文件索引的开销。这些文件系统的主要缺点是保留了VFS层:VFS层会缓存文件系统的元数据(dentry和inode)。对于PM介质来说,其读写性能和DRAM接近,缓存元数据会降低元数据操作的性能和扩展性。
BPFS发表在ACM SIGOPS 22nd symposium on Operating systems principles(SOSP’09)
SCMFS发表在2011International Conference for High PerformanceComputing,Networking,Storage and Analysis(SC’11)
NOVA发表在14th USENIX Conference on File and Storage Technologies(FAST’16)
技术方案2:SPFS移除了整个VFS层建立了一个单层级的文件系统,文件系统的所有信息都存储在PM中。然而,文件系统的一部分信息(状态信息)是不需要持久化存储的,例如文件加锁状态和进程访问数目。这些信息随着系统断电之后没有意义,因此不需要存储在PM中。PM具有比DRAM较高的写延迟,将这些信息记录在PM中降低元数据的性能。此外,该工作没有考虑元数据的扩展性问题。
SPFS发表在16th ACM International Conference on Computing Frontiers(CF’18)
技术方案3:ByVFS通过移除VFS中dcache来绕过VFS,提升元数据操作性能。这种方法的主要问题在于文件查找的性能,ByVFS绕过VFS之后相比于VFS已经缓存文件系统元数据时性能差。此外,ByVFS保留了文件的icache浪费DRAM的空间。
ByVFS发表在10th USENIX Workshop on Hot Topics in Storage and FileSystems(HotStorage’18)
发明内容
本发明的目的是解决上述现有技术无法解决的由于VFS层缓存元数据带来的PM文件系统元数据操作性能和扩展性问题,提出了一种基于非易失性主内存的文件系统元数据操作加速方法和系统(简称DirectFS)。
具体来说,本发明提出一种基于非易失主存的文件系统元数据操作加速方法,其中包括:
步骤1、获取文件操作指令,根据非易失主存文件系统的根目录,判断该非易失主存文件系统中是否包含该文件操作指令的操作文件,若是,则执行步骤2,否则执行步骤3;
步骤2、移除该非易失主存文件系统的VFS层,直接在该非易失主存文件系统中根据元数据找到待操作的目标文件,对该目标文件执行该文件操作指令;
步骤3、根据传统文件系统方式,由VFS层执行该文件操作指令。
所述的基于非易失主存的文件系统元数据操作加速方法,其中该步骤1包括:
步骤11、为该非易失主存文件系统挂载的根目录中添加标志符,判断该操作文件所在的路径中是否存在一个目录具有该标示符,若是,则根据该非易失主存文件系统的元数据,判断该非易失主存文件系统中是否包含该文件操作指令的操作文件,否则由VFS层执行该文件操作指令。
所述的基于非易失主存的文件系统元数据操作加速方法,其中该元数据包括目录项索引和索引节点,该非易失主存文件系统中该目录项索引具有直接指向该索引节点的指针。
所述的基于非易失主存的文件系统元数据加速方法,其中该步骤1中通过查找该操作文件判断该非易失主存文件系统中是否包含该文件操作指令的操作文件,其中查找该操作文件包括:
初次查找步骤:通过该非易失主存文件系统的目录的目录项索引找到操作文件的目录项,然后通过目录项中记录的索引节点号查找操作文件的索引节点,将操作文件的索引节点的地址记录在目录项索引中,最后返回操作文件的元数据;
后续查找步骤:通过该非易失主存文件系统的目录的目录项索引直接找到操作文件的索引节点,最后返回操作文件的元数据。
所述的基于非易失主存的文件系统元数据操作加速方法,其中在该非易失主存文件系统创建文件的步骤包括:
初始化步骤,对新创建文件分配初始元数据,该初始元数据的空间(目录项和inode)被预分配到每个CPU;
扩展目录项步骤,在该新创建文件的目录项中记录更新的父目录信息,得到扩展目录项;其中记录更新的父目录信息,即对该新创建文件的目录项进行扩充,增加本操作需要更新的父目录信息,如修改时间和硬链接数;
原子写步骤,将该扩展目录项的地址以原子写的方式写入日志结构中,后续文件访问时,通过该日志结构中的地址找到目录项,进而访问文件;
父目录更新步骤,更新该新创建文件的父目录的修改时间和目录项索引。
本发明还提供了一种基于非易失主存的文件系统元数据操作加速系统,其中包括:
模块1、获取文件操作指令,根据非易失主存文件系统的根目录,判断该非易失主存文件系统中是否包含该文件操作指令的操作文件,若是,则执行模块2,否则执行模块3;
模块2、移除该非易失主存文件系统的VFS层,直接在该非易失主存文件系统中根据元数据找到待操作的目标文件,对该目标文件执行该文件操作指令;
模块3、根据传统文件系统方式,由VFS层执行该文件操作指令。
所述的基于非易失主存的文件系统元数据操作加速系统,其中该模块1包括:
模块11、为该非易失主存文件系统挂载的根目录中添加标志符,判断该操作文件所在的路径中是否存在一个目录具有该标示符,若是,则根据该非易失主存文件系统的元数据,判断该非易失主存文件系统中是否包含该文件操作指令的操作文件,否则由VFS层执行该文件操作指令。
所述的基于非易失主存的文件系统元数据操作加速系统,其中该元数据包括目录项索引和索引节点,该非易失主存文件系统中该目录项索引具有直接指向该索引节点的指针。
所述的基于非易失主存的文件系统元数据加速系统,其中该模块1中通过查找该操作文件判断该非易失主存文件系统中是否包含该文件操作指令的操作文件,其中查找该操作文件包括:
初次查找模块:通过该非易失主存文件系统的目录的目录项索引找到操作文件的目录项,然后通过目录项中记录的索引节点号查找操作文件的索引节点,将操作文件的索引节点的地址记录在目录项索引中,最后返回操作文件的元数据;
后续查找模块:通过该非易失主存文件系统的目录的目录项索引直接找到操作文件的索引节点,最后返回操作文件的元数据。
所述的基于非易失主存的文件系统元数据操作加速系统,其中在该非易失主存文件系统创建文件的模块包括:
初始化模块,对新创建文件分配初始元数据,该初始元数据的空间被预分配到每个CPU;
扩展目录项模块,在该新创建文件的目录项中记录更新的父目录信息,得到扩展目录项;
原子写模块,将该扩展目录项的地址以原子写的方式写入日志结构中,后续文件访问时,通过该日志结构中的地址找到目录项,进而访问文件;
父目录更新模块,更新该新创建文件的父目录的修改时间和目录项索引。
本发明的技术效果包括:
1.本发明中提出的在物理文件系统中支持完整的元数据操作语义方法使得元数据操作直接在物理文件系统中执行,提升元数据操作的性能并减少文件系统对DRAM空间的占用。
2.本发明提出的inode快速查找方法使得查找文件时可以通过目录项索引直接获得文件inode位置,去掉了现有PM文件系统中查找文件inode的操作,提高了文件系统中文件查找的性能。
3.本发明中提出的log-structure优化方法在保证元数据操作宕机一致性的前提下降低了log资源的争用,配合着文件系统将所有空闲空间资源预分配到各个CPU的方法,使得元数据修改操作(例如创建文件)性能随着线程数的增加而增加。
表1展示了本发明(DirectFS)相比于已有PM文件系统PMFS节省的内存空间。当文件系统操作10万个文件时,DirectFS节省了5.9GB的内存空间。表1操作不同数量的文件,PMFS和DirectFS分别需要的DRAM空间大小,以及DirectFS节省的空间大小。
表1:
表2展示了在一个目录下操作100万个文件时各个系统调用的性能。对于现有的PM文件系统,无论VFS是否缓存了要操作的文件元数据信息,元数据写操作(open,rename,unlink,mkdir,rmdir)都需要到物理文件系统中执行。而对于元数据读操作(stat),VFS已经缓存了目标文件元数据时不需要到物理文件系统中执行。为了对比各个方面的性能,评测了现有的PM文件系统在VFS缓存目标文件的元数据信息(缓存命中)和未缓存目标文件元数据信息(缓存不命中)时的性能。本发明不需要VFS,直接在物理文件系统中执行。从表中可以看出,本专利的优势在于:
·对于元数据写操作(open,rename,unlink,mkdir,rmdir),本发明(DirectFS)相比于ext4-dax,PMFS和NOVA执行时间平均降低47.2%,96.9%和29.5%。
·在VFS缓存未命中时执行stat系统调用(读操作),本发明(DirectFS)相比于ext4-dax,PMFS和NOVA,执行时间降低60.7%,98.9%和21.5%。在VFS缓存命中时,本发明(DirectFS)仍然可以达到和其它文件系统相似的性能。而没有使用inode快速查找优化的DirectFS_no_qp相比于NOVA性能降低了19.3%。
·对于readdir系统调用,本发明(DirectFS)和ext4-dax一样减少了额外的inode查找操作,而PMFS和NOVA需要多一次inode查找操作,因此本发明性能最优。ext4-dax因为需要将元数据缓存到DRAM中,因此性能最差。
表2几个基本系统调用的执行时间;DirectFS为本发明实现的物理文件系统,DirectFS_no_qp为没有inode快速查找时的性能;”_2”和”_3”代表在目录层级2和3下分别执行系统调用,其它系统调用在目录层级1下执行;”_c”代表VFS缓存命中的情况,其它的为VFS缓存不命中的情况。
表2:
图1展示了在一个目录下多线程同时创建文件时的性能。可以看到优化log-structure技术使得元数据操作的性能随着线程数的增加而线性增长,其它文件系统由于线程冲突(争用锁)无性能提升。从图中可以看到,本发明的优势在于:
提升了文件系统元数据操作的扩展性。元数据操作的性能随着线程数的增加而线性增长。
附图说明
图1为在一个目录下多线程同时创建文件时的性能对比图;
图2为PM文件系统架构图;
图3为传统文件系统架构图;
图4为DirectFS文件系统架构图;
图5为文件创建过程。
具体实施方式
发明人在评测非易失性主内存文件系统中小文件操作性能时发现,在操作小文件时,VFS占据了小文件操作的主要开销,该开销产生的主要原因是VFS缓存了文件元数据。本人经过研究VFS的功能和特点,提出了一种基于非易失性主内存的文件系统元数据操作加速方法和系统。该方法在物理文件系统中支持完整的元数据操作,提升了文件系统元数据性能和扩展性。
本发明包括以下三个关键点:
1、一种绕过VFS直接在物理文件系统中操作元数据的方法。该方法通过在文件系统挂载的根目录中增加S_DIRECTFS_FLAG标志,辨别现有的PM文件系统和该方法优化的文件系统,使得本发明优化的文件系统可以直接在物理文件系统中操作元数据并且支持完整的元数据操作语义;技术效果,降低了文件元数据操作的开销,并减少了VFS缓存文件系统元数据带来的空间开销。
2、一种在文件系统中快速查询inode的方法。该方法在物理文件系统中增加一个从目录项索引到索引节点(inode)的指针,inode可以直接由目录项索引获得,不再需要经过inode索引查找;技术效果,加速了物理文件系统中文件查找的过程。
3、一种优化log-structure的方法。将log-structure技术中所有需要写入的数据预先分配存储空间;技术效果,通过原子写保证元数据操作的宕机一致性,减少了log-structure中log的争用,提高了元数据操作时的扩展性。
为让本发明的上述特征和效果能阐述的更明确易懂,下文特举实施例,并配合说明书附图作详细说明如下。
1、直接访问物理文件系统,在物理文件系统中支持完整的元数据操作语义:
传统方式中,物理文件系统只管理文件的存储信息,如文件大小、存储位置和访问权限,文件的操作由VFS来控制。如图3所示,图中dentry存储文件名和文件的inode号;inode存储文件的元数据信息,如大小和访问时间;文件系统通过文件名查找到dentry,再通过dentry中的inode号找到inode,即找到文件;dcache和icache分别为dentry和inode在VFS中的缓存;dindex为文件目录项索引。VFS通过缓存文件的元数据(dentry和inode)获得文件的信息,然后在VFS中再(icache中)增加文件的访问信息(如锁状态、引用计数等)。通过这种方式,VFS实现权限检查(permission check)和并发控制(concurrency control)的功能。本发明让所有的元数据操作都在物理文件系统中执行,如图4所示,物理文件系统支持权限检查和并发控制。此外,本发明在物理文件系统中增加了并发控制状态(cc_state)结构。cc_state在DRAM中记录文件的当前访问信息(锁状态和引用计数),通过配合物理文件系统中的元数据信息(dentry和inode),本发明让权限检查和并发控制直接在物理文件系统中执行。
本发明使得所有的元数据操作直接在物理文件系统中执行,减少了元数据操作在VFS中花费的时间,并且降低了文件系统元数据对DRAM的使用空间。传统方式访问文件需要在VFS中缓存dentry和inode,其中一个文件需要798B。而DirectFS只记录文件的锁和引用计数在内存中,每个文件只需要92B(cc_state)。
此外,DirectFS在PM文件系统挂载的根目录中增加S_DIRECTFS_FLAG标记来区分不同的文件系统。在这种方式下,只有DirectFS会在元数据操作时直接在物理文件系统中执行,其它文件系统仍采用原有方式访问元数据。增加flag标志的方式使得该技术与传统文件系统兼容,原有方式可以是其它文件系统仍采用传统VFS接口访问元数据。
2、inode快速查找:
在文件系统的目录项索引(dindex)中增加一个直接指向inode的指针。传统方式下文件查找操作先查找dentry,再查找inode。inode是通过在dentry中先获得inode号,再在inode索引中查找目标inode。本发明直接可以通过dindex获得inode的位置(图4inodequick path),减少了查找文件的开销。因为本发明将目录项索引结构建立在DRAM中,所以每次目录项索引重建之后需要重写inode到目录项索引中。目录项索引结构是建立在DRAM中,DRAM不保证宕机一致性,因此文件系统被卸载后目录项索引被撤销。此外为了减小DRAM空间,目录项索引结构当目录不再被访问时撤销。因此文件系统被卸载或者目录不被访问时,索引结构被撤销。此后再次访问目录时重新建立目录项索引。
3、优化log-structure技术:
本发明使用log-structure方法保证元数据操作的宕机一致性。传统的log-structure技术将元数据操作中所有元数据更新顺序的写入日志log中。这种方式会造成多线程更新时争用log,增加冲突。为了减少log的争用冲突,本发明在log中只记录更新的元数据的地址。本发明首先通过预分配机制在本地CPU中获得空闲空间(dentry,inode),并将更新的元数据写入,然后将这些新元数据的地址原子的写入log中。多线程争用不再需要锁,只需要原子更新log,增加了元数据操作的扩展性。
然而,一个元数据操作需要更新多个地方的元数据,为了保证宕机一致性,本发明扩充了传统元数据结构。以文件创建操作为例,创建一个文件需要新建文件的dentry和inode,然后更新父目录(新建文件所在的文件夹)的元数据信息。本发明扩充传统的元数据dentry中记录的内容(extend_dentry),让其在传统dentry的基础上增加需要修改的父目录信息(如mtime)。通过这种方式保证了元数据操作的宕机一致性:log未写入extend_dentry地址时创建操作没有完成,系统读不到任何关于新创建文件的信息;log写入extend_dentry地址时,创建文件操作完成,即使后续宕机了,也可以通过log中记录的extend_dentry读取到最新的文件以及父目录需要更新的元数据。
实施例1,删除操作(以remove(“/mnt/test/wy/example.txt”)为例)(移除VFS和inode快速查找):
假设PM文件系统在目录“/mnt/test/”中挂载,则VFS在查找到“test”目录时发现了S_DIRECTFS_FLAG标志,该标志代表着接下来的查找以DirectFS文件系统的方式进行处理,执行下列步骤:
1.在DirectFS中直接查找“wy/example.txt”文件是否存在:
a)先在DirectFS的根目录下查找“wy”的dentry,如果查找不到则文件不存在,返回错误。
b)如果存在,在PM文件系统中查找“wy”的inode。
i.如果是目录项索引重建之后第一次查找该文件的inode,则通过dentry中记录的inode号在inode索引中查找inode,之后将该inode的地址记录在目录项索引中,使得下次查找为快速查找。最后返回inode。
ii.如果不是目录项索引重建之后第一次查找该文件的inode,则直接从目录项索引中快速查找到inode地址并返回。
c)判断“wy”是否为目标文件,因为目标文件是“wy”目录下的“example.txt”的文件,因此继续循环执行a)步(在“wy”下查找“example.txt”)直到找到目标文件。
2.如果目标文件(example.txt)不存在则结束并返回错误。
3.文件存在则对该文件执行在DirectFS中执行删除操作。DirectFS删除该文件的dentry和inode,并且更新父目录文件的信息,例如修改时间和目录项索引。所有该技术中的操作不需要在VFS中执行。
4.操作结束。
实施例2:
文件创建操作(优化log-structure技术)
具体过程如下(图5):
1.对新创建的文件分配和初始化extend_dentry和inode。这些空间(extend_dentry和inode的空间)被预分配到每个CPU(图5第一步)。其中先分配extend_dentry和inode这两个数据结构,然后对着两个结构进行初始化。由于extend_dentry和inode这两个结构体预先分配多份到每个CPU中,操作请求时直接在本地CPU上分配,因此无冲突。初始化包括:inode存储的文件信息,如文件创建时间,文件大小,文件的访问权限;extend_dentry存储的信息,如存储文件的文件名,创建时间,以及分配的inode的inode number号。文件的创建时需要更新父目录中的修改时间保证创建操作的完整性。为了保证整个操作完成的原子性,将目录项(dentry)扩展为扩展目录项(extend_dentry),即extend_dentry在dentry的基础上增加了操作的修改时间。
2.将准备好的extend_dentry地址写入log-structure中(图5第二步)。因为是一个8字节的地址,可以原子写完成。后续文件访问时,通过log-structure中的地址找到dentry,进而访问文件。
3.更新父目录信息(图5第三步)。更新父目录信息指的是在目录项索引中加入新建文件,修改父目录的修改时间,以及根据操作类型修改父目录的硬链接数,如创建普通文件时,父目录的硬链接数不做修改,创建目录时,父目录的硬链接数加一。
4.操作结束。
以下为与上述方法实施例对应的系统实施例,本实施方式可与上述实施方式互相配合实施。上述实施方式中提到的相关技术细节在本实施方式中依然有效,为了减少重复,这里不再赘述。相应地,本实施方式中提到的相关技术细节也可应用在上述实施方式中。
本发明还提供了一种基于非易失主存的文件系统元数据操作加速系统,其中包括:
模块1、获取文件操作指令,根据非易失主存文件系统的根目录,判断该非易失主存文件系统中是否包含该文件操作指令的操作文件,若是,则执行模块2,否则执行模块3;
模块2、移除该非易失主存文件系统的VFS层,直接在该非易失主存文件系统中根据元数据找到待操作的目标文件,对该目标文件执行该文件操作指令;
模块3、根据传统文件系统方式,由VFS层执行该文件操作指令。
所述的基于非易失主存的文件系统元数据操作加速系统,其中该模块1包括:
模块11、为该非易失主存文件系统挂载的根目录中添加标志符,判断该操作文件所在的路径中是否存在一个目录具有该标示符,若是,则根据该非易失主存文件系统的元数据,判断该非易失主存文件系统中是否包含该文件操作指令的操作文件,否则由VFS层执行该文件操作指令。
所述的基于非易失主存的文件系统元数据操作加速系统,其中该元数据包括目录项索引和索引节点,该非易失主存文件系统中该目录项索引具有直接指向该索引节点的指针。
所述的基于非易失主存的文件系统元数据加速系统,其中该模块1中通过查找该操作文件判断该非易失主存文件系统中是否包含该文件操作指令的操作文件,其中查找该操作文件包括:
初次查找模块:通过该非易失主存文件系统的目录的目录项索引找到操作文件的目录项,然后通过目录项中记录的索引节点号查找操作文件的索引节点,将操作文件的索引节点的地址记录在目录项索引中,最后返回操作文件的元数据;
后续查找模块:通过该非易失主存文件系统的目录的目录项索引直接找到操作文件的索引节点,最后返回操作文件的元数据。
所述的基于非易失主存的文件系统元数据操作加速系统,其中在该非易失主存文件系统创建文件的模块包括:
初始化模块,对新创建文件分配初始元数据,该初始元数据的空间被预分配到每个CPU;
扩展目录项模块,在该新创建文件的目录项中记录更新的父目录信息,得到扩展目录项;
原子写模块,将该扩展目录项的地址以原子写的方式写入日志结构中,后续文件访问时,通过该日志结构中的地址找到目录项,进而访问文件;
父目录更新模块,更新该新创建文件的父目录的修改时间和目录项索引。

Claims (10)

1.一种基于非易失主存的文件系统元数据操作加速方法,其特征在于,包括:
步骤1、获取文件操作指令,根据非易失主存文件系统的根目录,判断该非易失主存文件系统中是否包含该文件操作指令的操作文件,若是,则执行步骤2,否则执行步骤3;
步骤2、移除该非易失主存文件系统的VFS层,直接在该非易失主存文件系统中根据元数据找到待操作的目标文件,对该目标文件执行该文件操作指令;
步骤3、根据传统文件系统方式,由VFS层执行该文件操作指令。
2.如权利要求1所述的基于非易失主存的文件系统元数据操作加速方法,其特征在于,该步骤1包括:
步骤11、为该非易失主存文件系统挂载的根目录中添加标志符,判断该操作文件所在的路径中是否存在一个目录具有该标示符,若是,则根据该非易失主存文件系统的元数据,判断该非易失主存文件系统中是否包含该文件操作指令的操作文件,否则由VFS层执行该文件操作指令。
3.如权利要求2所述的基于非易失主存的文件系统元数据操作加速方法,其特征在于,该元数据包括目录项索引和索引节点,该非易失主存文件系统中该目录项索引具有直接指向该索引节点的指针。
4.如权利要求3所述的基于非易失主存的文件系统元数据加速方法,其特征在于,该步骤1中通过查找该操作文件判断该非易失主存文件系统中是否包含该文件操作指令的操作文件,其中查找该操作文件包括:
初次查找步骤:通过该非易失主存文件系统的目录的目录项索引找到操作文件的目录项,然后通过目录项中记录的索引节点号查找操作文件的索引节点,将操作文件的索引节点的地址记录在目录项索引中,最后返回操作文件的元数据;
后续查找步骤:通过该非易失主存文件系统的目录的目录项索引直接找到操作文件的索引节点,最后返回操作文件的元数据。
5.如权利要求1所述的基于非易失主存的文件系统元数据操作加速方法,其特征在于,在该非易失主存文件系统创建文件的步骤包括:
初始化步骤,对新创建文件分配初始元数据,该初始元数据的空间被预分配到每个CPU;
扩展目录项步骤,在该新创建文件的目录项中记录更新的父目录信息,得到扩展目录项;
原子写步骤,将该扩展目录项的地址以原子写的方式写入日志结构中,后续文件访问时,通过该日志结构中的地址找到目录项,进而访问文件;
父目录更新步骤,更新该新创建文件的父目录的修改时间和目录项索引。
6.一种基于非易失主存的文件系统元数据操作加速系统,其特征在于,包括:
模块1、获取文件操作指令,根据非易失主存文件系统的根目录,判断该非易失主存文件系统中是否包含该文件操作指令的操作文件,若是,则执行模块2,否则执行模块3;
模块2、移除该非易失主存文件系统的VFS层,直接在该非易失主存文件系统中根据元数据找到待操作的目标文件,对该目标文件执行该文件操作指令;
模块3、根据传统文件系统方式,由VFS层执行该文件操作指令。
7.如权利要求6所述的基于非易失主存的文件系统元数据操作加速系统,其特征在于,该模块1包括:
模块11、为该非易失主存文件系统挂载的根目录中添加标志符,判断该操作文件所在的路径中是否存在一个目录具有该标示符,若是,则根据该非易失主存文件系统的元数据,判断该非易失主存文件系统中是否包含该文件操作指令的操作文件,否则由VFS层执行该文件操作指令。
8.如权利要求7所述的基于非易失主存的文件系统元数据操作加速系统,其特征在于,该元数据包括目录项索引和索引节点,该非易失主存文件系统中该目录项索引具有直接指向该索引节点的指针。
9.如权利要求8所述的基于非易失主存的文件系统元数据加速系统,其特征在于,该模块1中通过查找该操作文件判断该非易失主存文件系统中是否包含该文件操作指令的操作文件,其中查找该操作文件包括:
初次查找模块:通过该非易失主存文件系统的目录的目录项索引找到操作文件的目录项,然后通过目录项中记录的索引节点号查找操作文件的索引节点,将操作文件的索引节点的地址记录在目录项索引中,最后返回操作文件的元数据;
后续查找模块:通过该非易失主存文件系统的目录的目录项索引直接找到操作文件的索引节点,最后返回操作文件的元数据。
10.如权利要求6所述的基于非易失主存的文件系统元数据操作加速系统,其特征在于,在该非易失主存文件系统创建文件的模块包括:
初始化模块,对新创建文件分配初始元数据,该初始元数据的空间被预分配到每个CPU;
扩展目录项模块,在该新创建文件的目录项中记录更新的父目录信息,得到扩展目录项;
原子写模块,将该扩展目录项的地址以原子写的方式写入日志结构中,后续文件访问时,通过该日志结构中的地址找到目录项,进而访问文件;
父目录更新模块,更新该新创建文件的父目录的修改时间和目录项索引。
CN201910276630.4A 2019-04-08 2019-04-08 基于非易失主存的文件系统元数据操作加速方法和系统 Pending CN110134657A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910276630.4A CN110134657A (zh) 2019-04-08 2019-04-08 基于非易失主存的文件系统元数据操作加速方法和系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910276630.4A CN110134657A (zh) 2019-04-08 2019-04-08 基于非易失主存的文件系统元数据操作加速方法和系统

Publications (1)

Publication Number Publication Date
CN110134657A true CN110134657A (zh) 2019-08-16

Family

ID=67569552

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910276630.4A Pending CN110134657A (zh) 2019-04-08 2019-04-08 基于非易失主存的文件系统元数据操作加速方法和系统

Country Status (1)

Country Link
CN (1) CN110134657A (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112073519A (zh) * 2020-09-09 2020-12-11 星辰天合(北京)数据科技有限公司 操作请求的处理方法和装置
CN113742127A (zh) * 2021-09-16 2021-12-03 重庆大学 一种裸闪存文件系统的故障恢复方法
CN113868322A (zh) * 2021-12-03 2021-12-31 杭州未名信科科技有限公司 一种语义结构解析方法、装置、设备及虚拟化系统、介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017007496A1 (en) * 2015-07-09 2017-01-12 Hewlett Packard Enterprise Development Lp Managing a database index file
CN107784121A (zh) * 2017-11-18 2018-03-09 中国人民解放军国防科技大学 一种基于非易失内存的日志文件系统的小写优化方法
CN107862064A (zh) * 2017-11-16 2018-03-30 北京航空航天大学 一个基于nvm的高性能、可扩展的轻量级文件系统

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017007496A1 (en) * 2015-07-09 2017-01-12 Hewlett Packard Enterprise Development Lp Managing a database index file
CN107862064A (zh) * 2017-11-16 2018-03-30 北京航空航天大学 一个基于nvm的高性能、可扩展的轻量级文件系统
CN107784121A (zh) * 2017-11-18 2018-03-09 中国人民解放军国防科技大学 一种基于非易失内存的日志文件系统的小写优化方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
JIAN XU,ET AL.: "NOVA: A log-structured file system for hybrid volatile/non-volatile main memories", 《PROCEEDINGS OF THE 14TH USENIX CONFERENCE ON FILE AND STORAGE TECHNOLOGIES, FAST 2016》 *
WING WANG,ET AL.: "Caching or not: rethinking virtual file system for non-volatile main memory", 《HOTSTORAGE"18: PROCEEDINGS OF THE 10TH USENIX CONFERENCE ON HOT TOPICS IN STORAGE AND FILE SYSTEMS》 *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112073519A (zh) * 2020-09-09 2020-12-11 星辰天合(北京)数据科技有限公司 操作请求的处理方法和装置
CN112073519B (zh) * 2020-09-09 2023-06-02 北京星辰天合科技股份有限公司 操作请求的处理方法和装置
CN113742127A (zh) * 2021-09-16 2021-12-03 重庆大学 一种裸闪存文件系统的故障恢复方法
CN113868322A (zh) * 2021-12-03 2021-12-31 杭州未名信科科技有限公司 一种语义结构解析方法、装置、设备及虚拟化系统、介质

Similar Documents

Publication Publication Date Title
Kwon et al. Strata: A cross media file system
US20210056074A1 (en) File System Data Access Method and File System
CN107862064B (zh) 一个基于nvm的高性能、可扩展的轻量级文件系统
US7010554B2 (en) Delegation of metadata management in a storage system by leasing of free file system blocks and i-nodes from a file system owner
US8484172B2 (en) Efficient search for migration and purge candidates
US6567928B1 (en) Method and apparatus for efficiently recovering from a failure in a database that includes unlogged objects
JP2505939B2 (ja) デ―タのキャストアウトを制御する方法
US7818346B2 (en) Database heap management system with variable page size and fixed instruction set address resolution
US7418544B2 (en) Method and system for log structured relational database objects
Levandoski et al. LLAMA: A cache/storage subsystem for modern hardware
US7694103B1 (en) Efficient use of memory and accessing of stored records
CN106844584B (zh) 元数据结构和基于其的操作方法、定位方法、切分方法
CN110134657A (zh) 基于非易失主存的文件系统元数据操作加速方法和系统
US8640136B2 (en) Sharing objects between computer systems
CN106599096A (zh) 基于非易失性内存的高性能文件系统设计方法
US7725507B1 (en) Dynamic directories
CN115048046B (zh) 日志文件系统以及数据管理方法
CN116226232A (zh) 面向分布式数据库的持久内存数据存储方法及系统
Nguyen et al. Why Files If You Have a DBMS
Lim et al. Leveldb-raw: Eliminating file system overhead for optimizing performance of leveldb engine
US20240028566A1 (en) Efficient append-only file system for high-performance key-value stores
Wang et al. Revisiting virtual file system for metadata optimized non-volatile main memory file system
Zhong et al. Buffered Hash Table: Leveraging DRAM to Enhance Hash Indexes in the Persistent Memory
CN117271379A (zh) 超算集群中突发缓存节点的存储管理方法及装置
CN116126243A (zh) 一种存储介质信息消除方法、系统和工具

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
WD01 Invention patent application deemed withdrawn after publication
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20190816