CN113821487B - 本地文件系统实现方法、装置、设备及存储介质 - Google Patents
本地文件系统实现方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN113821487B CN113821487B CN202111117598.9A CN202111117598A CN113821487B CN 113821487 B CN113821487 B CN 113821487B CN 202111117598 A CN202111117598 A CN 202111117598A CN 113821487 B CN113821487 B CN 113821487B
- Authority
- CN
- China
- Prior art keywords
- file system
- file
- local
- log file
- local log
- 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
- 238000000034 method Methods 0.000 title claims abstract description 57
- 238000004590 computer program Methods 0.000 claims description 9
- 230000002085 persistent effect Effects 0.000 claims description 3
- 230000008878 coupling Effects 0.000 abstract description 10
- 238000010168 coupling process Methods 0.000 abstract description 10
- 238000005859 coupling reaction Methods 0.000 abstract description 10
- 238000013461 design Methods 0.000 description 30
- 238000010586 diagram Methods 0.000 description 11
- 238000004891 communication Methods 0.000 description 8
- 238000012217 deletion Methods 0.000 description 5
- 230000037430 deletion Effects 0.000 description 5
- 230000006870 function Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/172—Caching, prefetching or hoarding of files
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/13—File access structures, e.g. distributed indices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/1734—Details of monitoring file system events, e.g. by the use of hooks, filter drivers, logs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/1805—Append-only file systems, e.g. using logs or journals to store data
- G06F16/1815—Journaling file systems
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
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)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请提供一种本地文件系统实现方法、装置、设备及存储介质,该方法将本地日志文件系统作为后端对象存储,在写入数据时,将数据写入本地日志文件系统后异步写入对象存储,使得本地文件系统的写入性能得到较大提升,并在访问文件时,首先从本地日志文件系统读取数据,使得本地文件系统的访问性能得到较大提升。另外,本申请由于在写文件时,将数据写到本地日志文件系统,不会写数据到对象存储,而是由后台将数据推送到对象存储,这样,在对象存储不可用时,数据依然可以继续写入本地日志文件系统,解决现有借助用户空间文件系统框架将对象存储系统实现为本地文件系统,对对象存储的依赖与耦合太高的问题,提高本地文件系统的稳定性和可用性。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及一种本地文件系统实现方法、装置、设备及存储介质。
背景技术
随着互联网的快速发展,网络上产生和存储的数据也迎来了爆发式的增长。面对如此庞大的数据量,传统存储区域网络(Storage Area Network,SAN)等块存储和网络附属存储(Network Attached Storage,NAS)等文件存储系统,由于仅具备千万亿字节(Petabyte,PB)级扩展能力,已经显得有些无能为力。在这种情况下,对象存储服务应运而生。对象存储服务综合了SAN和NAS的优点,同时具有SAN的高速直接访问和NAS的数据共享等优势,提供了高可用性、跨平台性及安全性的数据共享存储体系结构。从原理上看,对象存储服务一般通过网络服务协议来实现数据的读/写和存储资源的访问,并采用扁平化结构来管理所有数据。
用户空间文件系统(Filesystem In Userspace,FUSE)是一种Unix/Linux操作系统提供的机制,这种机制使得非特权用户无需理解Unix/Linux内核的文件系统实现、无需编辑和编译内核的源代码就可以实现自己的文件系统。目前,FUSE已经被广泛用于编写开发各种文件系统,与传统的文件系统不同,FUSE并不一定真正地读写磁盘,它提供到已存在的文件系统或存储设备的转换,使得已存在的文件系统或存储设备上的数据以文件和目录的形式提供给用户或应用。
目前,借助FUSE文件系统框架将对象存储系统实现为本地文件系统已经有一些成熟稳定的实现案例,如基于FUSE的文件系统(S3 FUSE,s3fs)。s3fs为了保证本地文件系统与对象存储的数据实时一致性,写入数据时,需要同步写入到对象存储中,写入性能极差,而且访问文件时,需要从对象存储中获取,访问性能极差,另外,在对象存储不可用时,本地文件系统即不可用,对对象存储的依赖与耦合太高。
发明内容
本申请提供一种本地文件系统实现方法、装置、设备及存储介质,解决现有借助FUSE框架将对象存储系统实现为本地文件系统,出现的写入性能极差、访问性能极差,以及对对象存储的依赖与耦合太高的问题。
第一方面,本申请提供一种本地文件系统实现方法,所述本地文件系统包括本地日志文件系统和对象存储系统,所述方法应用于FUSE,所述方法包括:
在写文件时,判断所述本地日志文件系统是否满足预设写入条件;
若所述本地日志文件系统满足所述预设写入条件,则将待写入数据写入所述本地日志文件系统,基于所述待写入数据更新数据库中的元数据,并在关闭文件时,触发后台线程,以将所述待写入数据同步到所述对象存储系统;
在读文件时,判断所述本地日志文件系统是否满足预设读取条件;
若所述本地日志文件系统满足所述预设读取条件,则从所述本地日志文件系统读取待读取的数据。
在一种可能的设计中,所述判断所述本地日志文件系统是否满足预设写入条件,包括:
获取本地磁盘剩余空间,并判断所述剩余空间是否小于预设空间阈值;
若所述剩余空间大于或等于所述预设空间阈值,则判断本地磁盘使用率是否大于预设使用率阈值;
若所述使用率小于或等于所述预设使用率阈值,则判断所述本地日志文件系统满足所述预设写入条件。
在一种可能的设计中,所述判断所述本地日志文件系统是否满足预设读取条件,包括:
判断所述本地日志文件系统是否处于文件缺失状态;
若所述本地日志文件系统处于所述文件缺失状态,则判断所述对象存储系统是否在线;
若所述对象存储系统在线,则判断所述本地日志文件系统是否存储所述待读取的数据;
若所述本地日志文件系统存储所述待读取的数据,则判断所述本地日志文件系统满足所述预设读取条件。
在一种可能的设计中,所述本地日志文件系统中的目录树与所述对象存储系统中的对象一一对应;
所述方法还包括:
在遍历目录时,从所述本地日志文件系统中读取待读取目录。
在一种可能的设计中,所述方法还包括:
在创建文件时,在所述本地日志文件系统中创建文件,初始化文件元数据,并将初始化的文件元数据持久化到所述数据库中;
以所述本地日志文件系统中创建的文件作为对象名,触发所述后台线程,以将所述对象名同步到所述对象存储系统。
在一种可能的设计中,所述方法还包括:
在删除文件时,在所述本地日志文件系统中删除文件,并基于删除的文件在所述数据库中删除元数据;
触发所述后台线程,以基于所述删除的文件在所述对象存储系统中删除相应的对象。
在一种可能的设计中,所述方法还包括:
在打开文件时,判断在所述本地日志文件系统中与待打开文件同名的文件是否被打开;
若在所述本地日志文件系统中与待打开文件同名的文件未被打开,则从所述数据库中读取元数据以在所述本地日志文件系统中打开所述同名的文件。
在一种可能的设计中,所述方法还包括:
在重命名文件时,将所述本地日志文件系统中与待重命名文件对应的原文件进行重命名,并触发所述后台线程,以将重命名后的文件同步到所述对象存储系统。
第二方面,本申请提供一种本地文件系统实现装置,所述本地文件系统包括本地日志文件系统和对象存储系统,所述装置应用于FUSE,所述装置包括:
文件写入模块,用于在写文件时,判断所述本地日志文件系统是否满足预设写入条件;
所述文件写入模块,用于若所述本地日志文件系统满足所述预设写入条件,则将待写入数据写入所述本地日志文件系统,基于所述待写入数据更新数据库中的元数据,并在关闭文件时,触发后台线程,以将所述待写入数据同步到所述对象存储系统;
文件读取模块,用于在读文件时,判断所述本地日志文件系统是否满足预设读取条件;
所述文件读取模块,还用于若所述本地日志文件系统满足所述预设读取条件,则从所述本地日志文件系统读取待读取的数据。
在一种可能的设计中,所述文件写入模块,具体用于:
获取本地磁盘剩余空间,并判断所述剩余空间是否小于预设空间阈值;
若所述剩余空间大于或等于所述预设空间阈值,则判断本地磁盘使用率是否大于预设使用率阈值;
若所述使用率小于或等于所述预设使用率阈值,则判断所述本地日志文件系统满足所述预设写入条件。
在一种可能的设计中,所述文件读取模块,具体用于:
判断所述本地日志文件系统是否处于文件缺失状态;
若所述本地日志文件系统处于所述文件缺失状态,则判断所述对象存储系统是否在线;
若所述对象存储系统在线,则判断所述本地日志文件系统是否存储所述待读取的数据;
若所述本地日志文件系统存储所述待读取的数据,则判断所述本地日志文件系统满足所述预设读取条件。
在一种可能的设计中,所述本地日志文件系统中的目录树与所述对象存储系统中的对象一一对应。
所述装置还包括:
目录遍历模块,用于在遍历目录时,从所述本地日志文件系统中读取待读取目录。
在一种可能的设计中,所述装置还包括:
文件创建模块,用于在创建文件时,在所述本地日志文件系统中创建文件,初始化文件元数据,并将初始化的文件元数据持久化到所述数据库中;
以所述本地日志文件系统中创建的文件作为对象名,触发所述后台线程,以将所述对象名同步到所述对象存储系统。
在一种可能的设计中,所述装置还包括:
文件删除模块,用于在删除文件时,在所述本地日志文件系统中删除文件,并基于删除的文件在所述数据库中删除元数据;
触发所述后台线程,以基于所述删除的文件在所述对象存储系统中删除相应的对象。
在一种可能的设计中,所述装置还包括:
文件打开模块,用于在打开文件时,判断在所述本地日志文件系统中与待打开文件同名的文件是否被打开;
若在所述本地日志文件系统中与待打开文件同名的文件未被打开,则从所述数据库中读取元数据以在所述本地日志文件系统中打开所述同名的文件。
在一种可能的设计中,所述装置还包括:
文件重命名模块,用于在重命名文件时,将所述本地日志文件系统中与待重命名文件对应的原文件进行重命名,并触发所述后台线程,以将重命名后的文件同步到所述对象存储系统。
第三方面,本申请提供一种本地文件系统实现设备,包括:
处理器;
存储器;以及
计算机程序;
其中,所述计算机程序被存储在所述存储器中,并且被配置为由所述处理器执行,所述计算机程序包括用于执行如上第一方面以及第一方面各种可能的设计所述的本地文件系统实现方法。
第四方面,本申请提供一种计算机存储介质,所述计算机存储介质中存储有计算机执行指令,当处理器执行所述计算机执行指令时,实现如上第一方面以及第一方面各种可能的设计所述的本地文件系统实现方法。
第五方面,本申请提供一种计算机程序产品,包括计算机指令,所述计算机指令被处理器执行如上第一方面以及第一方面各种可能的设计所述的本地文件系统实现方法。
本申请提供的本地文件系统实现方法、装置、设备及存储介质,将本地日志文件系统作为后端对象存储,在写入数据时,将数据写入本地日志文件系统后异步写入对象存储,使得本地文件系统的写入性能得到较大提升,并在访问文件时,首先从本地日志文件系统读取数据,使得本地文件系统的访问性能得到较大提升。另外,本申请由于在写文件时,将数据写到本地日志文件系统,不会写数据到对象存储,而是由后台将数据推送到对象存储,这样,在对象存储不可用时,数据依然可以继续写入本地日志文件系统,解决现有借助FUSE框架将对象存储系统实现为本地文件系统,对对象存储的依赖与耦合太高的问题,提高本地文件系统的稳定性和可用性。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的现有本地文件系统的示意图;
图2是本申请实施例提供的本地文件系统实现系统架构示意图;
图3为本申请实施例提供的一种本地文件系统实现方法流程示意图;
图4为本申请实施例提供的一种写文件流程图;
图5为本申请实施例提供的一种关闭文件流程图;
图6为本申请实施例提供的一种读文件流程图;
图7为本申请实施例提供的一种创建文件流程图;
图8为本申请实施例提供的一种删除文件流程图;
图9为本申请实施例提供的一种打开文件流程图;
图10为本申请实施例提供的一种重命名文件流程图;
图11为本申请实施例提供的一种本地文件系统实现装置的结构示意图;
图12为本申请实施例提供的另一种本地文件系统实现装置的结构示意图;
图13A为本申请实施例提供的一种本地文件系统实现设备的基本硬件架构示意图;
图13B为本申请实施例提供的另一种本地文件系统实现设备的基本硬件架构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
对象存储拥有良好的可扩展性和扁平化无层次的数据结构,这使得对象存储系统可以对外提海量的数据存储服务。对象存储通常使用表述性状态传递(RepresentationalState Transfer,REST)应用程序接口(Application Programming Interface,API)对外提供服务,并且拥有标准的协议。常见的对象存储服务有Amazon简单存储服务(AmazonSimple Storage Service,Amazon S3)。
FUSE是Linux中允许用户可以根据需要定制运行于用户态文件系统的一种技术,FUSE提供了一种将文件系统的数据存储于对象存储上的方法,目前使用FUSE技术将对象存储映射到本地文件系统已有一些成熟的场景,其中使用最广泛的是s3fs。
但是,基于FUSE使用对象存储后端实现本地文件系统中,为了保证本地文件系统与对象存储的数据实时一致性,比如s3fs,在写入数据时,需要同步写入到对象存储中,例如图1中所示的Amazon S3中,写入性能极差,而且访问文件时,需要从对象存储中获取,例如从图1中所示的Amazon S3中获取,访问性能极差,另外,在对象存储不可用时,本地文件系统即不可用,对对象存储的依赖与耦合太高。其中,图1中将Amazon S3简写为S3,图1中还示出挂载点、虚拟文件系统(Virtual Filesystem Switch,VFS)、FUSE和服务程序,该服务程序包括用户态FUSE库(libfuse)和XFS(一种高性能的日志文件系统)。
为了解决上述技术问题,本申请实施例提出一种本地文件系统实现方法,将本地日志文件系统作为后端对象存储,在写入数据时,将数据写入本地日志文件系统后异步写入对象存储,使得本地文件系统的写入性能得到较大提升,并在访问文件时,首先从本地日志文件系统读取数据,使得本地文件系统的访问性能得到较大提升。另外,本申请实施例中由于在写文件时,将数据写到本地日志文件系统,不会写数据到对象存储,而是由后台将数据推送到对象存储,这样,在对象存储不可用时,数据依然可以继续写入本地日志文件系统,解决现有借助FUSE框架将对象存储系统实现为本地文件系统,对对象存储的依赖与耦合太高的问题,提高本地文件系统的稳定性和可用性。
可选地,本申请提供的一种本地文件系统实现方法,可以适用于图2所示的本地文件系统实现系统架构示意图,如图2所示,该系统可以包括FUSE、本地日志文件系统和对象存储系统。其中,FUSE一端连接用于实现VFS之下FUSE模块必要的接口的挂载点,另一端连接句柄(Handle),用于操作本地日志文件系统。
另外,上述系统中还可以包括数据库,该数据库用于存放文件元数据。
在具体实现过程中,在写文件时,FUSE可以通过Handle控制数据写入本地日志文件系统后即返回,异步同步到对象存储中,并基于写入的数据更新数据库中的元数据,使得本地文件系统的写入性能得到较大提升。这里,上述异步同步到对象存储中可以理解为:FUSE通过Handle触发后台线程,将数据同步到对象存储。其中,后台线程可以通过客户端(Client)将数据同步到对象存储。
在读文件时,FUSE可以通过Handle直接从本地日志文件系统读取数据,并且在文件缺失时,可以通过Client从对象存储读取数据,使得本地文件系统的访问性能得到较大提升。
其中,在写入文件时,FUSE控制数据写入本地日志文件系统即返回,不会写数据到对象存储,而是由后台将数据推送到对象存储,所以即使对象存储离线,数据依然可以继续写入本地日志文件系统,解决现有借助FUSE框架将对象存储系统实现为本地文件系统,对对象存储的依赖与耦合太高的问题,提高本地文件系统的稳定性和可用性。
另外,本申请实施例描述的系统架构以及业务场景是为了更加清楚的说明本申请实施例的技术方案,并不构成对于本申请实施例提供的技术方案的限定,本领域普通技术人员可知,随着网络架构的演变和新业务场景的出现,本申请实施例提供的技术方案对于类似的技术问题,同样适用。
下面以几个实施例为例对本申请的技术方案进行描述,对于相同或相似的概念或过程可能在某些实施例不再赘述。
图3为本申请实施例提供的一种本地文件系统实现方法流程示意图,该本地文件系统包括本地日志文件系统和对象存储系统。本实施例的执行主体可以为图2所示实施例中的FUSE,本实施例此处不做特别限制。如图3所示,该方法包括:
S301:在写文件时,判断本地日志文件系统是否满足预设写入条件。
示例性的,在写文件时,FUSE首先获取本地磁盘剩余空间,并判断该剩余空间是否小于预设空间阈值。如果上述剩余空间大于或等于预设空间阈值,则FUSE可以进一步判断本地磁盘使用率是否大于预设使用率阈值。如果上述使用率小于或等于预设使用率阈值,则FUSE判断本地日志文件系统满足上述预设写入条件。
其中,如果判断本地磁盘剩余空间小于预设空间阈值,则FUSE可以判断本地日志文件系统不满足上述预设写入条件,返回ENOSPEC错误,暂停数据写入。
另外,在判断本地日志文件系统是否满足预设写入条件时,FUSE还可以获取本地磁盘剩余空间,并判断该剩余空间是否小于预设空间阈值。如果上述剩余空间大于或等于预设空间阈值,则FUSE进一步判断本地磁盘使用率是否大于预设使用率阈值。如果上述使用率大于预设使用率阈值,则FUSE再判断对象存储系统是否在线。如果对象存储系统在线,则FUSE可以将程序暂停执行预设时间,并将输入输出(InputOutput,IO)速度降低预设数值后,判断日志文件系统满足上述预设写入条件。
其中,如果对象存储系统离线,则FUSE可以判断本地日志文件系统不满足上述预设写入条件,返回ENOSPEC错误,暂停数据写入。
另外,上述预设空间阈值、预设使用率阈值、预设时间和预设数值均可以根据实际情况设置,例如上述预设空间阈值为1GB,预设使用率阈值为90%,预设时间为1秒等。
S302:若本地日志文件系统满足上述预设写入条件,则将待写入数据写入本地日志文件系统,基于上述待写入数据更新数据库中的元数据,并在关闭文件时,触发后台线程,以将上述待写入数据同步到对象存储系统。
这里,写文件流程图如图4所示,如果本地日志文件系统满足上述预设写入条件,FUSE可以将将待写入数据写入本地日志文件系统,例如将数据已同步的方式写入本地日志文件系统,并基于上述待写入数据更新数据库中的元数据。如果本地磁盘剩余空间小于预设空间阈值,则FUSE可以返回ENOSPEC错误,暂停数据写入。如果对象存储在线,并且磁盘使用率大于预设使用率阈值,则FUSE可以将程序暂停执行预设时间,并将IO速度降低预设数值;若对象存储离线,并且磁盘使用率大于预设使用率阈值,则FUSE可以返回ENOSPEC错误,暂停数据写入。其中,本地日志文件系统可以为XFS,上述数据库可以为leveldb。
在本申请实施例中,由于页面大小限制,通常IO大小为4KB,所以此处不适合触发后台同步,可在IO结束后,关闭文件时,触发后台同步。示例性的,关闭文件流程图如图5所示,在关闭文件时,如果打开文件期间有数据写入,则FUSE触发后台同步数据,即触发后台线程,以将写入的数据同步到对象存储系统。其中,FUSE还可以将引用计数减1,若引用计数为0,则关闭文件句柄,释放资源。
S303:在读文件时,判断本地日志文件系统是否满足预设读取条件。
这里,FUSE可以判断本地日志文件系统是否处于文件缺失状态。如果本地日志文件系统处于文件缺失状态,则FUSE可以进一步判断对象存储系统是否在线。如果对象存储系统在线,则FUSE再判断本地日志文件系统是否存储待读取的数据。如果本地日志文件系统存储上述待读取的数据,则FUSE判断本地日志文件系统满足上述预设读取条件。
其中,如果日志文件系统没有处于所述文件缺失状态,则FUSE判断日志文件系统满足上述预设读取条件。
如果对象存储系统离线,FUSE可以判断日志文件系统不满足上述预设读取条件,返回EIO错误,暂停数据读取。
如果本地日志文件系统没有存储上述待读取的数据,则FUSE可以判断日志文件系统不满足上述预设读取条件,从对象存储系统读取待读取的数据。
S304:若本地日志文件系统满足上述预设读取条件,则从本地日志文件系统读取待读取的数据。
这里,读文件流程图如图6所示,如果本地日志文件系统满足上述预设读取条件,则FUSE直接从本地日志文件系统读取待读取的数据。如果文件处于缺失状态,且对象存储离线,则FUSE返回EIO错误。如果文件处于缺失状态,并且本地日志文件系统没有存储上述待读取的数据,则FUSE从对象存储读取所需数据。
另外,本地日志文件系统中的目录树与对象存储系统中的对象一一对应。
在遍历目录时,FUSE可以从本地日志文件系统中读取待读取目录。即由于本地日志文件系统中保留了完整的目录树和元数据信息,遍历目录直接读取本地日志文件系统中同名目录内容即可。
在挂载文件系统时,FUSE可以在本地日志文件系统中创建与对象存储系统中的对象一一对应的目录以及隐藏的数据库目录。
在创建文件时,FUSE可以在本地日志文件系统中创建文件,初始化文件元数据,并将初始化的文件元数据持久化到数据库中,还以本地日志文件系统中创建的文件作为对象名,触发后台线程,以将上述对象名同步到对象存储系统。例如图7所示的创建文件流程图,FUSE在本地日志文件系统中创建文件,初始化文件元数据,持久化到数据库中,并以本地路径的绝对目录作为对象名,触发同步到对象存储。
在删除文件时,FUSE可以在本地日志文件系统中删除文件,并基于删除的文件在数据库中删除元数据;触发后台线程,以基于上述删除的文件在对象存储系统中删除相应的对象。例如图8所示的删除文件流程图,FUSE删除本地日志文件系统中文件,删除数据库中的元数据,并触发删除对象存储中的对象。
在获取文件/目录属性时,FUSE可以获取目录属性时,直接返回本地日志文件系统目录属性即可,在获取文件属性时,数据库中文件数据最新,直接返回数据库中文件元数据即可。
在创建目录时,FUSE可以在本地日志文件系统中创建同名目录,将目录映射为对象存储中的一个对象,以绝对路径+“/”作为对象名,并触发同步到对象存储,其具体流程与创建文件流程类似,参照上述创建文件流程,在此不再赘述。
在删除目录时,FUSE可以删除本地日志文件系统中同名目录,并触发删除对象存储中的对象,其具体流程与删除文件流程类似,参照上述删除文件流程,在此也不再赘述。
在打开文件时,FUSE可以判断在本地日志文件系统中与待打开文件同名的文件是否被打开。如果在本地日志文件系统中与待打开文件同名的文件未被打开,则FUSE可以从数据库中读取元数据以在本地日志文件系统中打开上述同名的文件。例如图9所示的打开文件流程图,如果本地日志文件系统中同名文件未被打开,则FUSE可以以绝对路径作为关键值读取数据库中元数据,打开本地日志文件系统中同名文件,并缓存文件句柄,将引用计数加1。如果本地日志文件系统文件已打开,则FUSE可以将引用计数加1。如果文件处于缺失状态,则FUSE可以触发回填文件到本地日志文件系统。
在重命名文件时,FUSE可以将本地日志文件系统中与待重命名文件对应的原文件进行重命名,并触发后台线程,以将重命名后的文件同步到对象存储系统。例如图10所示的重命名文件流程图,在重命名文件时,FUSE可以首先将本地日志文件系统中原文件重命名(例如图中将文件绝对路径作为对象名,确定对象存储的原对象和目标对象,从而进行文件重命名),然后触发后台,将数据同步到对象存储。这里,图10还示出重命名目录流程图,在重命名目录时,文件系统特有的树形目录结构,除了加速访问查询速度外,在重命名的场景中,FUSE只需修改目录项(dentry)及索引节点(inode)中对应属性即可;对象储存的提供的是无层次的扁平化结果,所以FUSE需要将对目录的重命名递归操作展开到对文件的重命名操作,并触发后台同步数据到对象存储。
本实施例提供的本地文件系统实现方法,在将对象存储实现为文件系统的过程中,将本地磁盘上的文件系统完全作为对象存储的缓存来使用,极大的提升了文件系统的元数据访问性能和文件写入性能。并且将对象存储与文件系统解耦,避免在文件系统的IO链路上直接使用对象存储,提高文件系统的稳定性和可用性,即使对象存储离线,在短期内,文件系统依然可以进行读写。
对应于上文实施例的本地文件系统实现方法,图11为本申请实施例提供的本地文件系统实现装置的结构示意图。为了便于说明,仅示出了与本申请实施例相关的部分。图11为本申请实施例提供的一种本地文件系统实现装置的结构示意图,该本地文件系统实现装置110包括:文件写入模块1101以及文件读取模块1102。这里的本地文件系统实现装置可以是上述FUSE本身,或者是实现上述FUSE的功能的芯片或者集成电路。这里需要说明的是,文件写入模块以及文件读取模块的划分只是一种逻辑功能的划分,物理上两者可以是集成的,也可以是独立的。
其中,文件写入模块1101,用于在写文件时,判断所述本地日志文件系统是否满足预设写入条件。
所述文件写入模块1101,用于若所述本地日志文件系统满足所述预设写入条件,则将待写入数据写入所述本地日志文件系统,基于所述待写入数据更新数据库中的元数据,并在关闭文件时,触发后台线程,以将所述待写入数据同步到所述对象存储系统。
文件读取模块1102,用于在读文件时,判断所述本地日志文件系统是否满足预设读取条件。
所述文件读取模块1102,还用于若所述本地日志文件系统满足所述预设读取条件,则从所述本地日志文件系统读取待读取的数据。
在一种可能的设计中,所述文件写入模块1101,具体用于:
获取本地磁盘剩余空间,并判断所述剩余空间是否小于预设空间阈值;
若所述剩余空间大于或等于所述预设空间阈值,则判断本地磁盘使用率是否大于预设使用率阈值;
若所述使用率小于或等于所述预设使用率阈值,则判断所述本地日志文件系统满足所述预设写入条件。
其中,如果判断本地磁盘剩余空间小于预设空间阈值,则文件写入模块1101可以判断本地日志文件系统不满足上述预设写入条件,返回ENOSPEC错误,暂停数据写入。
另外,在判断本地日志文件系统是否满足预设写入条件时,文件写入模块1101还可以获取本地磁盘剩余空间,并判断该剩余空间是否小于预设空间阈值。如果上述剩余空间大于或等于预设空间阈值,则FUSE进一步判断本地磁盘使用率是否大于预设使用率阈值。如果上述使用率大于预设使用率阈值,则FUSE再判断对象存储系统是否在线。如果对象存储系统在线,则FUSE可以将程序暂停执行预设时间,并将IO速度降低预设数值后,判断日志文件系统满足上述预设写入条件。
其中,如果对象存储系统离线,则文件写入模块1101可以判断本地日志文件系统不满足上述预设写入条件,返回ENOSPEC错误,暂停数据写入。
在一种可能的设计中,所述文件读取模块1102,具体用于:
判断所述本地日志文件系统是否处于文件缺失状态;
若所述本地日志文件系统处于所述文件缺失状态,则判断所述对象存储系统是否在线;
若所述对象存储系统在线,则判断所述本地日志文件系统是否存储所述待读取的数据;
若所述本地日志文件系统存储所述待读取的数据,则判断所述本地日志文件系统满足所述预设读取条件。
其中,如果日志文件系统没有处于所述文件缺失状态,则文件读取模块1102判断日志文件系统满足上述预设读取条件。
如果对象存储系统离线,文件读取模块1102可以判断日志文件系统不满足上述预设读取条件,返回EIO错误,暂停数据读取。
如果本地日志文件系统没有存储上述待读取的数据,则文件读取模块1102可以判断日志文件系统不满足上述预设读取条件,从对象存储系统读取待读取的数据。
本申请实施例提供的装置,可用于执行上述方法实施例的技术方案,其实现原理和技术效果类似,本申请实施例此处不再赘述。
图12为本申请实施例提供的另一种本地文件系统实现装置的结构示意图。在图11基础上,上述本地文件系统实现装置110还包括:目录遍历模块1103、文件创建模块1104、文件删除模块1105、文件打开模块1106、文件重命名模块1107、文件挂载模块1108、文件/目录属性获取模块1109、目录创建模块1110、目录删除模块1111和目录重命名模块1112。
在一种可能的设计中,所述本地日志文件系统中的目录树与所述对象存储系统中的对象一一对应。
其中,目录遍历模块1103,用于在遍历目录时,从所述本地日志文件系统中读取待读取目录。
在一种可能的设计中,文件创建模块1104,用于在创建文件时,在所述本地日志文件系统中创建文件,初始化文件元数据,并将初始化的文件元数据持久化到所述数据库中;以所述本地日志文件系统中创建的文件作为对象名,触发所述后台线程,以将所述对象名同步到所述对象存储系统。
在一种可能的设计中,文件删除模块1105,用于在删除文件时,在所述本地日志文件系统中删除文件,并基于删除的文件在所述数据库中删除元数据;触发所述后台线程,以基于所述删除的文件在所述对象存储系统中删除相应的对象。
在一种可能的设计中,文件打开模块1106,用于在打开文件时,判断在所述本地日志文件系统中与待打开文件同名的文件是否被打开;
若在所述本地日志文件系统中与待打开文件同名的文件未被打开,则从所述数据库中读取元数据以在所述本地日志文件系统中打开所述同名的文件。
在一种可能的设计中,文件重命名模块1107,用于在重命名文件时,将所述本地日志文件系统中与待重命名文件对应的原文件进行重命名,并触发所述后台线程,以将重命名后的文件同步到所述对象存储系统。
在一种可能的设计中,文件挂载模块1108,用于在挂载文件系统时,在本地日志文件系统中创建与对象存储系统中的对象一一对应的目录以及隐藏的数据库目录。
在一种可能的设计中,文件/目录属性获取模块1109,用于在获取目录属性时,直接返回本地日志文件系统目录属性即可,在获取文件属性时,数据库中文件数据最新,直接返回数据库中文件元数据即可。
在一种可能的设计中,目录创建模块1110,用于在创建目录时,在本地日志文件系统中创建同名目录,将目录映射为对象存储中的一个对象,以绝对路径+“/”作为对象名,并触发同步到对象存储。
在一种可能的设计中,目录删除模块1111,用于在删除目录时,删除本地日志文件系统中同名目录,并触发删除对象存储中的对象。
在一种可能的设计中,目录重命名模块1112,用于在重命名目录时,文件系统特有的树形目录结构,除了加速访问查询速度外,在重命名的场景中,只需修改目录项(dentry)及索引节点(inode)中对应属性即可;对象储存的提供的是无层次的扁平化结果,所以需要将对目录的重命名递归操作展开到对文件的重命名操作,并触发后台同步数据到对象存储。
本申请实施例提供的装置,可用于执行上述方法实施例的技术方案,其实现原理和技术效果类似,本申请实施例此处不再赘述。
可选地,图13A和13B示意性地分别提供本申请所述本地文件系统实现设备的一种可能的基本硬件架构。
参见图13A和13B,本地文件系统实现设备包括至少一个处理器1301以及通信接口1303。进一步可选的,还可以包括存储器1302和总线1304。
其中,本地文件系统实现设备中,处理器1301的数量可以是一个或多个,图13A和13B仅示意了其中一个处理器1301。可选地,处理器1301,可以是中央处理器(centralprocessing unit,CPU)、图形处理器(graphics processing unit,GPU)或者数字信号处理器(digital signal processor,DSP)。如果本地文件系统实现设备具有多个处理器1301,多个处理器1301的类型可以不同,或者可以相同。可选地,本地文件系统实现设备的多个处理器1301还可以集成为多核处理器。
存储器1302存储计算机指令和数据;存储器1302可以存储实现本申请提供的上述本地文件系统实现方法所需的计算机指令和数据,例如,存储器1302存储用于实现上述本地文件系统实现方法的步骤的指令。存储器1302可以是以下存储介质的任一种或任一种组合:非易失性存储器(例如只读存储器(ROM)、固态硬盘(SSD)、硬盘(HDD)、光盘),易失性存储器。
通信接口1303可以为所述至少一个处理器提供信息输入/输出。也可以包括以下器件的任一种或任一种组合:网络接口(例如以太网接口)、无线网卡等具有网络接入功能的器件。
可选的,通信接口1303还可以用于本地文件系统实现设备与其它计算设备或者终端进行数据通信。
进一步可选的,图13A和13B用一条粗线表示总线1304。总线1304可以将处理器1301与存储器1302和通信接口1303连接。这样,通过总线1304,处理器1301可以访问存储器1302,还可以利用通信接口1303与其它计算设备或者终端进行数据交互。
在本申请中,本地文件系统实现设备执行存储器1302中的计算机指令,使得本地文件系统实现设备实现本申请提供的上述本地文件系统实现方法,或者使得本地文件系统实现设备部署上述的本地文件系统实现装置。
从逻辑功能划分来看,示例性的,如图13A所示,存储器1302中可以包括文件写入模块1101以及文件读取模块1102。这里的包括仅仅涉及存储器中所存储的指令被执行时可以分别实现文件写入模块以及文件读取模块的功能,而不限定是物理上的结构。
一种可能设计,如图13B所示,存储器1302中还包括目录遍历模块1103、文件创建模块1104、文件删除模块1105、文件打开模块1106、文件重命名模块1107、文件挂载模块1108、文件/目录属性获取模块1109、目录创建模块1110、目录删除模块1111和目录重命名模块1112,这里的包括仅仅涉及存储器中所存储的指令被执行时可以分别实现目录遍历模块、文件创建模块、文件删除模块、文件打开模块、文件重命名模块、文件挂载模块、文件/目录属性获取模块、目录创建模块、目录删除模块和目录重命名模块的功能,而不限定是物理上的结构。
另外,上述的本地文件系统实现装置除了可以像上述图13A和13B通过软件实现外,也可以作为硬件模块,或者作为电路单元,通过硬件实现。
本申请提供一种计算机可读存储介质,所述计算机程序产品包括计算机指令,所述计算机指令指示计算设备执行本申请提供的上述本地文件系统实现方法。
本申请实施例提供一种计算机程序产品,包括计算机指令,所述计算机指令被处理器执行本申请提供的上述本地文件系统实现方法。
本申请提供一种芯片,包括至少一个处理器和通信接口,所述通信接口为所述至少一个处理器提供信息输入和/或输出。进一步,所述芯片还可以包含至少一个存储器,所述存储器用于存储计算机指令。所述至少一个处理器用于调用并运行该计算机指令,以执行本申请提供的上述本地文件系统实现方法。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
Claims (10)
1.一种本地文件系统实现方法,其特征在于,所述本地文件系统包括本地日志文件系统和对象存储系统,所述方法应用于用户空间文件系统,所述方法包括:
在写文件时,判断所述本地日志文件系统是否满足预设写入条件;
若所述本地日志文件系统满足所述预设写入条件,则将待写入数据写入所述本地日志文件系统,基于所述待写入数据更新数据库中的元数据,并在关闭文件时,触发后台线程,以将所述待写入数据同步到所述对象存储系统;
在读文件时,判断所述本地日志文件系统是否满足预设读取条件;
若所述本地日志文件系统满足所述预设读取条件,则从所述本地日志文件系统读取待读取的数据;
所述判断所述本地日志文件系统是否满足预设写入条件,包括:
获取本地磁盘剩余空间,并判断所述剩余空间是否小于预设空间阈值;
若所述剩余空间大于或等于所述预设空间阈值,则判断本地磁盘使用率是否大于预设使用率阈值;
若所述使用率小于或等于所述预设使用率阈值,则判断所述本地日志文件系统满足所述预设写入条件。
2.根据权利要求1所述的方法,其特征在于,所述判断所述本地日志文件系统是否满足预设读取条件,包括:
判断所述本地日志文件系统是否处于文件缺失状态;
若所述本地日志文件系统处于所述文件缺失状态,则判断所述对象存储系统是否在线;
若所述对象存储系统在线,则判断所述本地日志文件系统是否存储所述待读取的数据;
若所述本地日志文件系统存储所述待读取的数据,则判断所述本地日志文件系统满足所述预设读取条件。
3.根据权利要求1所述的方法,其特征在于,所述本地日志文件系统中的目录树与所述对象存储系统中的对象一一对应;
所述方法还包括:
在遍历目录时,从所述本地日志文件系统中读取待读取目录。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在创建文件时,在所述本地日志文件系统中创建文件,初始化文件元数据,并将初始化的文件元数据持久化到所述数据库中;
以所述本地日志文件系统中创建的文件作为对象名,触发所述后台线程,以将所述对象名同步到所述对象存储系统。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在删除文件时,在所述本地日志文件系统中删除文件,并基于删除的文件在所述数据库中删除元数据;
触发所述后台线程,以基于所述删除的文件在所述对象存储系统中删除相应的对象。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在打开文件时,判断在所述本地日志文件系统中与待打开文件同名的文件是否被打开;
若在所述本地日志文件系统中与待打开文件同名的文件未被打开,则从所述数据库中读取元数据以在所述本地日志文件系统中打开所述同名的文件。
7.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在重命名文件时,将所述本地日志文件系统中与待重命名文件对应的原文件进行重命名,并触发所述后台线程,以将重命名后的文件同步到所述对象存储系统。
8.一种本地文件系统实现装置,其特征在于,所述本地文件系统包括本地日志文件系统和对象存储系统,所述装置应用于用户空间文件系统,所述装置包括:
文件写入模块,用于在写文件时,判断所述本地日志文件系统是否满足预设写入条件;
所述文件写入模块,用于若所述本地日志文件系统满足所述预设写入条件,则将待写入数据写入所述本地日志文件系统,基于所述待写入数据更新数据库中的元数据,并在关闭文件时,触发后台线程,以将所述待写入数据同步到所述对象存储系统;
文件读取模块,用于在读文件时,判断所述本地日志文件系统是否满足预设读取条件;
所述文件读取模块,还用于若所述本地日志文件系统满足所述预设读取条件,则从所述本地日志文件系统读取待读取的数据;
所述文件写入模块,具体用于获取本地磁盘剩余空间,并判断所述剩余空间是否小于预设空间阈值;若所述剩余空间大于或等于所述预设空间阈值,则判断本地磁盘使用率是否大于预设使用率阈值;若所述使用率小于或等于所述预设使用率阈值,则判断所述本地日志文件系统满足所述预设写入条件。
9.一种本地文件系统实现设备,其特征在于,包括:
处理器;
存储器;以及
计算机程序;
其中,所述计算机程序被存储在所述存储器中,并且被配置为由所述处理器执行,所述计算机程序包括用于执行如权利要求1-7任一项所述的方法的指令。
10.一种计算机存储介质,其特征在于,所述计算机存储介质中存储有计算机执行指令,当处理器执行所述计算机执行指令时,实现如权利要求1-7任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111117598.9A CN113821487B (zh) | 2021-09-23 | 2021-09-23 | 本地文件系统实现方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111117598.9A CN113821487B (zh) | 2021-09-23 | 2021-09-23 | 本地文件系统实现方法、装置、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113821487A CN113821487A (zh) | 2021-12-21 |
CN113821487B true CN113821487B (zh) | 2023-11-14 |
Family
ID=78921022
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111117598.9A Active CN113821487B (zh) | 2021-09-23 | 2021-09-23 | 本地文件系统实现方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113821487B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114780042B (zh) * | 2022-05-06 | 2023-07-28 | 安超云软件有限公司 | 提升nas存储性能的方法及装置、电子设备和存储介质 |
CN116541365B (zh) * | 2023-07-06 | 2023-09-15 | 成都泛联智存科技有限公司 | 文件存储方法、装置、存储介质及客户端 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20110048833A (ko) * | 2009-11-03 | 2011-05-12 | 창원대학교 산학협력단 | 비동기식 이퓨즈 otp 메모리 셀 및 비동기식 이퓨즈 otp 메모리 장치 |
CN105262837A (zh) * | 2015-11-03 | 2016-01-20 | 上海唐舜电信科技有限公司 | 一种基于云计算的三网融合应用终端接入装置及实现方法 |
CN106156289A (zh) * | 2016-06-28 | 2016-11-23 | 北京百迈客云科技有限公司 | 一种读写对象存储系统中的数据的方法以及装置 |
CN106202220A (zh) * | 2016-06-28 | 2016-12-07 | 北京百迈客云科技有限公司 | 一种读取对象存储系统中数据的方法以及装置 |
CN107045530A (zh) * | 2017-01-20 | 2017-08-15 | 华中科技大学 | 一种将对象存储系统实现为本地文件系统的方法 |
CN108881942A (zh) * | 2018-06-06 | 2018-11-23 | 西安交通大学 | 一种基于分布式对象存储的超融合常态录播系统 |
CN111008185A (zh) * | 2019-10-29 | 2020-04-14 | 厦门网宿有限公司 | 一种数据共享方法、系统及设备 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10366070B2 (en) * | 2015-02-20 | 2019-07-30 | Scality S.A. | Locking and I/O improvements of systems built with distributed consistent database implementations within an object store |
-
2021
- 2021-09-23 CN CN202111117598.9A patent/CN113821487B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20110048833A (ko) * | 2009-11-03 | 2011-05-12 | 창원대학교 산학협력단 | 비동기식 이퓨즈 otp 메모리 셀 및 비동기식 이퓨즈 otp 메모리 장치 |
CN105262837A (zh) * | 2015-11-03 | 2016-01-20 | 上海唐舜电信科技有限公司 | 一种基于云计算的三网融合应用终端接入装置及实现方法 |
CN106156289A (zh) * | 2016-06-28 | 2016-11-23 | 北京百迈客云科技有限公司 | 一种读写对象存储系统中的数据的方法以及装置 |
CN106202220A (zh) * | 2016-06-28 | 2016-12-07 | 北京百迈客云科技有限公司 | 一种读取对象存储系统中数据的方法以及装置 |
CN107045530A (zh) * | 2017-01-20 | 2017-08-15 | 华中科技大学 | 一种将对象存储系统实现为本地文件系统的方法 |
CN108881942A (zh) * | 2018-06-06 | 2018-11-23 | 西安交通大学 | 一种基于分布式对象存储的超融合常态录播系统 |
CN111008185A (zh) * | 2019-10-29 | 2020-04-14 | 厦门网宿有限公司 | 一种数据共享方法、系统及设备 |
Non-Patent Citations (2)
Title |
---|
Average consensus-based asynchronous tracking;Sandeep katragadda等;《2017 IEEE international conference on acoustic,speech and signal processing》;第1-2页 * |
分布式存储系统中高并发客户端的设计与实现;程煜 等;《小型微型计算机系统》;第35卷(第1期);第24-29页 * |
Also Published As
Publication number | Publication date |
---|---|
CN113821487A (zh) | 2021-12-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7378870B2 (ja) | ファイルシステムデータアクセス方法およびファイルシステム | |
CN107045530B (zh) | 一种将对象存储系统实现为本地文件系统的方法 | |
US7860907B2 (en) | Data processing | |
EP2754027B1 (en) | Method for creating clone file, and file system adopting the same | |
US6871245B2 (en) | File system translators and methods for implementing the same | |
US8515911B1 (en) | Methods and apparatus for managing multiple point in time copies in a file system | |
CN113821487B (zh) | 本地文件系统实现方法、装置、设备及存储介质 | |
US8095678B2 (en) | Data processing | |
US8090925B2 (en) | Storing data streams in memory based on upper and lower stream size thresholds | |
US11397749B2 (en) | Asynchronous replication of in-scope table data | |
US11210006B2 (en) | Distributed scalable storage | |
Chen et al. | vNFS: Maximizing NFS performance with compounds and vectorized I/O | |
US20190065526A1 (en) | File consistency in shared storage using partial-edit files | |
US8176087B2 (en) | Data processing | |
CN114528255A (zh) | 元数据管理方法、电子设备及计算机程序产品 | |
CN116467275A (zh) | 共享远程存储方法、装置、系统、电子设备及存储介质 | |
JPS63201864A (ja) | 分散型データ処理システム | |
CN117348968A (zh) | 一种虚拟磁盘的缓存数据加速方法、装置和设备 | |
CN114756509B (zh) | 文件系统的操作方法、系统、设备以及存储介质 | |
US8886656B2 (en) | Data processing | |
CN115794819A (zh) | 一种数据写入方法及电子设备 | |
Tchaye-Kondi et al. | Hadoop Perfect File: A fast access container for small files with direct in disc metadata access | |
Stender et al. | Loosely time-synchronized snapshots in object-based file systems | |
KR100912126B1 (ko) | 객체 기반 파일 시스템의 파일셋의 스냅샷 제공 방법 | |
US8290993B2 (en) | Data processing |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |