CN106775446A - 基于固态硬盘加速的分布式文件系统小文件访问方法 - Google Patents
基于固态硬盘加速的分布式文件系统小文件访问方法 Download PDFInfo
- Publication number
- CN106775446A CN106775446A CN201610993411.4A CN201610993411A CN106775446A CN 106775446 A CN106775446 A CN 106775446A CN 201610993411 A CN201610993411 A CN 201610993411A CN 106775446 A CN106775446 A CN 106775446A
- Authority
- CN
- China
- Prior art keywords
- file
- embedded
- client
- version
- threshold value
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
- G06F3/0611—Improving I/O performance in relation to response time
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/0643—Management of files
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明公开了一种基于固态硬盘加速的分布式文件系统小文件访问方法,步骤包括:设置内嵌文件大小阈值;客户端创建文件时,所创建文件的大小小于内嵌文件大小阈值,则将所创建文件作为内嵌文件内嵌存储到元数据服务器位于固态硬盘中的文件元数据区域,否则存储到对象存储服务器;客户端的进程打开文件时,根据文件元数据信息中的存储位置由元数据服务器或对象存储服务器响应用户访问请求并返回执行结果。本发明将小文件的数据直接存储在固态硬盘的元数据区域中、节省了小文件的数据存储位置的计算时间,节省了小文件访问的通信延时,提升了小文件的访问性能、优化方便、不会加重元数据服务器的负载以及降低分布式文件系统的整体性能。
Description
技术领域
本发明涉及分布式文件系统数据处理技术领域,具体涉及一种基于固态硬盘加速的分布式文件系统小文件访问方法。
背景技术
随着云计算、大数据技术的飞速发展,全球数据量呈爆炸式增长,这为分布式文件系统带来了新的发展机遇与挑战,从高性能计算到数据中心,从数据共享到互联网应用,分布式文件系统已渗透到数据应用的各个方面。当前多数分布式文件系统是针对大规模大数据文件的处理,小文件的存储优化相对缺乏。而随着社会化网络、移动通信和个人终端的发展,小文件在存储系统中所占的比例越来越高。例如社交网站Facebook自成立以来,已经存储了2500亿张以上的图片,淘宝C2C电子商务网站也存储超过280亿张图片,平均大小仅为17.45KB,百度、谷歌搜索到的网页文件均是小文件。因此,小文件的访问优化问题是当前分布式文件系统亟需解决的问题。
在分布式文件系统中,元数据记录了数据逻辑与物理位置的映像关系,以及文件的属性、访问权限等信息,对文件进行访问时,需要先向元数据服务器请求查询对应的元数据,然后通过获得的元数据进行后续的文件读写等I/O操作。因此,分布式文件系统如果想获得更高的系统可扩展性和IO并发性,元数据的管理至关重要,甚至直接影响到系统的性能、可靠性和稳定性等问题。如图1所示,分布式文件系统一般包括客户端(Client)、元数据服务器(Metadata Server)、对象存储服务器(Object-Store Server)、监视服务器,客户端提供标准的POSIX接口的访问能力;元数据服务器用于缓存和同步存储在固态硬盘中的元数据,管理命名空间;对象存储服务器将数据和元数据作为对象存储。为了维护数据的一致性,分布式文件系统设置了从缓存读和写入缓存两项权限,分别标记为RCache和WCache。RCache表示元数据服务器允许客户端从缓存中读取元数据。当客户端获得RCache权限时,表明客户端缓存的元数据信息与元数据服务器上的是保持一致的,可直接从客户端缓存中读取元数据信息。WCache表示元数据服务器允许客户端将数据写入到本地缓存中。当客户端获得WCache权限时,表明客户端缓存的元数据信息与元数据服务器上的是保持一致的,新的元数据可直接写入到缓存中。
如图2所示,对于分布式文件系统而言:当进程打开一个文件,客户端会向元数据服务器发送一个请求。元数据服务器通过文件系统目录结构将文件名转换为文件节点,此节点包含一个唯一的节点号、文件拥有者、文件模式、文件大小以及其他文件的元数据信息。如果该文件存在并且允许客户端访问,则元数据服务器返回节点编号、文件大小等文件元数据信息。当用户读取某个文件时,分布式文件系统首先判断该用户是否具有读取该文件的RCache权限,如果具有,则根据用户提供的文件节点号、文件层次、文件大小等信息,计算文件数据在对象存储服务器上的位置,再从对象存储服务器读取文件。当用户进行写操作时,文件系统首先判断客户端是否具有读取该文件的WCache权限,如果有,则允许客户端将写入的文件内容保存在对象存储服务器中,并且将新文件的大小和数据提供给元数据服务器,刷新该文件对应的元数据信息。当用户关闭文件后,文件系统将关闭向客户端提供的文件读写权限。在分布式文件系统中,通常将元数据与数据是独立开来,从而获得更高的系统扩展性和I/O并发能力。从图2流程所示中可以看出,当用户访问文件系统中的数据时,首先从元数据服务器读取文件的元数据信息,包括文件的inode节点、各种属性等,然后计算出文件数据的存储位置,再从对象存储服务器读取实际的文件内容。加上分布式的系统架构,相对于磁盘文件系统,分布式文件系统客户端与元数据服务器和对象存储服务器之间增加了网络连接,通常为延迟较大的TCP/IP网络。这样,即使用户是访问小文件时,也需要执行多次IO请求,而且较高的网络延时和多次磁盘IO延迟占用了大量的小文件读取时间,影响了小文件的访问性能及效率。当前分布式文件系统的小文件访问有两个问题:1)小文件的数据量很小,获取元数据后才需要与数据服务器网络通信,占用了网络延时;2)为了取得小文件的实际文件数据,需要与对象服务器进行一次或者多次磁盘IO,不仅增加了磁盘IO开销,还占用了数据服务器IO资源。综上所述,如何优化小文件的访问流程成为分布式文件系统亟需解决的关键技术问题。分布式文件系统使用多个元数据服务器来构建系统的命名空间,强化了元数据的并发访问功能,同时实现了元数据的负载均衡,因此,研究分布式文件系统的小文件访问优化方法、提高小文件的访问性能对于小文件的访问优化问题非常关键。
发明内容
本发明要解决的技术问题是:针对现有技术的上述技术问题,提供一种将小文件的数据直接存储在固态硬盘中的元数据区域、节省了小文件的数据存储位置的计算时间,节省了小文件访问的通信延时,提升了小文件的访问性能、优化方便、不会加重元数据服务的负载以及降低分布式文件系统的整体性能的基于固态硬盘加速的分布式文件系统小文件访问方法。
为了解决上述技术问题,本发明采用的技术方案为:
一种基于固态硬盘加速的分布式文件系统小文件访问方法,步骤包括:
1)在分布式文件系统中设置内嵌文件大小阈值;
2)通过分布式文件系统的客户端接收用户请求的类型,如果类型为创建文件,则跳转执行步骤3);如果类型为访问文件,则跳转执行步骤4);
3)客户端将所创建文件的大小和内嵌文件大小阈值进行比较,如果小于内嵌文件大小阈值,则将所创建文件作为内嵌文件内嵌存储到元数据服务器的文件元数据区域,所述文件元数据区域位于固态硬盘中,否则将所创建文件作为普通文件存储到对象存储服务器;最终,元数据服务器记录所创建文件的文件元数据信息并返回给客户端,跳转执行步骤2);
4)当客户端的进程打开文件时,客户端向元数据服务器同步目标文件的文件元数据信息,元数据服务器为客户端分配读写权限;当客户端进程进行具有权限的读写操作时,根据文件元数据信息中的存储位置由元数据服务器或对象存储服务器响应用户访问请求并返回执行结果;最终当客户端的进程关闭文件后,关闭向客户端提供的文件读写权限。
优选地,所述步骤1)的详细步骤包括:
1.1)预先在分布式文件系统中设置阈值设置模块,定义内嵌文件大小阈值变量embedded_size并初始化设置内嵌文件大小阈值embedded_size的值;
1.2)在分布式文件系统初始化时,通过所述阈值设置模块向分布式文件系统的各个客户端推送内嵌文件大小阈值embedded_size的值,各个客户端在收到推送的内嵌文件大小阈值embedded_size的值后在本地结点中存储内嵌文件大小阈值embedded_size的值。
优选地,所述步骤1.1)中初始化设置内嵌文件大小阈值embedded_size的值为4kbyte。
优选地,所述步骤1)还包括客户端修改内嵌文件大小阈值的步骤,详细步骤包括:在分布式文件系统运行过程中,如果用户通过客户端修改内嵌文件大小阈值embedded_ size的值,则该客户端向所述阈值设置模块发送新的阈值设置指令,所述阈值设置模块在收到新的阈值设置指令后,向分布式文件系统的各个客户端推送新的内嵌文件大小阈值embedded_size的值,各个客户端在收到新的内嵌文件大小阈值embedded_size的值后,更新本地结点中存储的内嵌文件大小阈值embedded_size的值。
优选地,所述步骤3)中客户端在将所创建文件的大小和内嵌文件大小阈值进行比较时,首先为所创建文件定义指定位数长度整数数据结构的本地内嵌版本号embedded_ version_l,如果所创建文件的大小小于内嵌文件大小阈值,则将本地内嵌版本号embedded_version_l初始化为第一极小值,否则将本地内嵌版本号embedded_version_l初始化为整数数据结构的最大值;元数据服务器记录所创建文件的文件元数据信息时,在文件元数据信息中为所创建文件定义指定位数长度整数的远程内嵌版本号embedded_ version_r,如果所创建文件的大小小于内嵌文件大小阈值,则将远程内嵌版本号embedded_version_r初始化为比第一极小值大的第二极小值,否则将远程内嵌版本号embedded_version_r初始化为整数数据结构的最大值;元数据服务器将所创建文件的文件元数据信息并返回给客户端后,如果客户端的本地内嵌版本号embedded_version_l为第一极小值,则将本地内嵌版本号embedded_version_l修改为元数据服务器返回的第二极小值以与元数据服务器的文件元数据信息保持同步。
优选地,所述第一极小值为0,所述第二极小值为1。
优选地,所述步骤4)的详细步骤包括:
4.1)当客户端的进程打开文件时,客户端向元数据服务器同步目标文件的文件元数据信息,元数据服务器为客户端分配读写权限,所述读写权限包括读文件权限RCache和写文件权限WCache;
4.2)当客户端进程进行读写操作时,首先判断读写操作的操作类型,当操作类型为读操作时,跳转执行步骤4.3),当操作类型为写操作时,跳转执行步骤4.7);
4.3)判断元数据服务器是否已经为客户端分配读文件权限RCache,如果已经为客户端分配读文件权限RCache,则跳转执行步骤4.4),否则向客户端返回拒绝读操作,退出;
4.4)客户端首先根据目标文件对应的本地内嵌版本号embedded_version_l判断目标文件的类型,如果本地内嵌版本号embedded_version_l小于整数数据结构的最大值,则判定目标文件为内嵌文件,跳转执行步骤4.5);否则判定目标文件为普通文件,跳转执行步骤4.6);
4.5)元数据服务器读取目标文件在文件元数据区域存储的内嵌文件数据并返回给客户端,退出;
4.6)客户端根据文件元数据信息确定目标文件的对象服务器,对象服务器读取目标文件在对象服务器中存储的普通文件数据并返回给客户端,退出;
4.7)判断元数据服务器是否已经为客户端分配写文件权限WCache,如果已经为客户端分配写文件权限WCache,则跳转执行步骤4.8),否则向用户返回拒绝写操作;
4.8)客户端首先根据目标文件对应的本地内嵌版本号embedded_version_l判断目标文件的类型,如果本地内嵌版本号embedded_version_l小于整数数据结构的最大值,则判定目标文件为内嵌文件,跳转执行步骤4.9);否则判定目标文件为普通文件,跳转执行步骤4.0);
4.9)客户端判断目标文件的写数据是否超过内嵌文件大小阈值,如果超过内嵌文件大小阈值则将执行目标文件的迁移使得目标文件从内嵌文件变更为普通文件,跳转执行步骤4.10);否则,客户端将写数据提交给元数据服务器,元数据服务器执行目标文件在文件元数据区域存储的内嵌文件数据的写操作、将远程内嵌版本号embedded_version_r加1并向客户端返回写操作的结果,客户端收到结果后更新本地内嵌版本号embedded_version_l,退出;
4.10)客户端将写数据提交给目标文件对应的对象存储服务器,对象存储服务器执行目标文件在文件元数据区域存储的内嵌文件数据的写操作,并向客户端返回写操作的结果,元数据服务器将远程内嵌版本号embedded_version_r加1并向客户端返回写操作的结果,客户端收到写操作的结果后更新本地内嵌版本号embedded_version_l,退出。
优选地,所述步骤4.3)和步骤4.7)向用户返回拒绝写操作时,同时还将包括执行目标文件的迁移使得目标文件从内嵌文件变更为普通文件的步骤。
优选地,所述执行目标文件的迁移的详细步骤包括:首先客户端等待获取异步锁,所述异步锁变量用于控制多个客户端的执行目标文件的迁移,使得同一个时间只有一个客户端可以执行目标文件的迁移;如果客户端获得异步锁,则首先向元数据服务器同步获取目标文件的文件元数据信息并更新本地内嵌版本号embedded_version_l,如果本地内嵌版本号embedded_version_l小于整数数据结构的最大值,则将目标文件从元数据服务器的文件元数据区域迁移到对象存储服务器,清除目标文件在文件元数据区域中的内嵌文件数据,使得目标文件从内嵌文件变更为普通文件。
优选地,所述步骤4.1)中同步目标文件的文件元数据信息的详细步骤包括:客户端首先向元数据服务器查询目标文件的文件元数据信息;然后将查询返回的文件元数据信息中的远程内嵌版本号embedded_version_r和本地内嵌版本号embedded_version_l比较,若本地内嵌版本号embedded_version_l较大,则客户端将目标文件在本地的文件元数据信推送给元数据服务器,元数据服务器将远程内嵌版本号embedded_version_r的值修改为与本地内嵌版本号embedded_version_l的值保持一致;若本地内嵌版本号embedded_ version_l较小,则将查询返回的文件元数据信息更新本地缓存的文件元数据信息。
本发明基于固态硬盘加速的分布式文件系统小文件访问方法具有下述优点:
1、本发明在分布式文件系统的客户端设置用于启用内嵌数据支持的小文件大小的阈值,客户端在用户创建文件时,如果文件大小小于阈值,则将文件作为内嵌文件,将内嵌文件的数据内嵌存储到元数据服务器的文件元数据区域,通过将小文件的数据直接存储在固态硬盘中的元数据区域,节省了数据存储位置的计算时间,同时节省了客户端与元数据服务器的通信延时,提升了小文件的访问性能。
2、本发明在分布式文件系统的客户端设置用于启用内嵌数据支持的小文件大小的阈值,阈值可设置,因此可根据实际应用需求,设置分布式文件系统中采用内嵌文件的文件大小,从而按需优化小文件访问性能。
3、本发明基于固态硬盘加速的分布式文件系统实现,作为内嵌文件的小文件的数据直接存储在固态硬盘中的元数据区域,利用了固态硬盘IO性能高的优点,利用了集群元数据服务器的元数据并发处理能力及负载均衡能力,而且内嵌小文件数据后,不会加重元数据服务的负载,降低分布式文件系统的整体性能。
附图说明
图1为现有技术的分布式文件系统的框架结构示意图。
图2为现有技术的分布式文件系统的请求响应过程示意图。
图3为本发明实施例的基本方法流程示意图。
图4为本发明实施例处理文件访问请求的详细流程示意图。
图5为实现本发明实施例基本方法的功能模块的框架结构示意图。
图6为本发明实施例中内嵌数据迁模块的工作流程示意图。
具体实施方式
下文将以基于固态硬盘加速的分布式文件系统(SSD-based DFS)为例,对基于固态硬盘加速的分布式文件系统小文件访问方法进行详细说明。SSD-based DFS和一般的分布式文件系统的区别在于采用固态硬盘来作为存储介质,例如本实施例中SSD-based DFS的元数据服务器的文件元数据区域即采用固态硬盘来作为存储介质。
如图3所示,本实施例基于固态硬盘加速的分布式文件系统小文件访问方法的步骤包括:
1)在分布式文件系统中设置内嵌文件大小阈值;
2)通过分布式文件系统的客户端(Client)接收用户请求的类型,如果类型为创建文件,则跳转执行步骤3);如果类型为访问文件,则跳转执行步骤4);
3)客户端将所创建文件的大小和内嵌文件大小阈值进行比较,如果小于内嵌文件大小阈值,则将所创建文件作为内嵌文件内嵌存储到元数据服务器(Metadata Server)的文件元数据区域,文件元数据区域位于固态硬盘中,否则将所创建文件作为普通文件存储到对象存储服务器(Object-Store Server);最终,元数据服务器记录所创建文件的文件元数据信息并返回给客户端,跳转执行步骤2);
4)当客户端的进程打开文件时,客户端向元数据服务器同步目标文件的文件元数据信息,元数据服务器为客户端分配读写权限;当客户端进程进行具有权限的读写操作时,根据文件元数据信息中的存储位置由元数据服务器或对象存储服务器响应用户访问请求并返回执行结果;最终当客户端的进程关闭文件后,关闭向客户端提供的文件读写权限。
本实施例要解决的技术问题是优化现有技术的SSD-based DFS中小文件的访问访问性能,本实施例在现有技术的SSD-based DFS的基础上,通过将小文件的数据内嵌到文件元数据区域,这样在读写小文件时,只需要从元数据服务器中读取文件的元数据时,就读取了整个文件的数据,不再需要从对象存储服务器读取数据,能够节省了数据存储位置的计算时间,同时节省了客户端与元数据服务器的通信延时,提升了小文件的访问性能。
本实施例中,步骤1)的详细步骤包括:
1.1)预先在分布式文件系统中设置阈值设置模块,定义内嵌文件大小阈值变量embedded_size并初始化设置内嵌文件大小阈值embedded_size的值;本实施例中,步骤1.1)中初始化设置内嵌文件大小阈值embedded_size的值为4 kbyte;
1.2)在分布式文件系统初始化时,通过阈值设置模块向分布式文件系统的各个客户端推送内嵌文件大小阈值embedded_size的值,各个客户端在收到推送的内嵌文件大小阈值embedded_size的值后在本地结点中存储内嵌文件大小阈值embedded_size的值。
本实施例中,步骤1)还包括客户端修改内嵌文件大小阈值的步骤,详细步骤包括:在分布式文件系统运行过程中,如果用户通过客户端修改内嵌文件大小阈值embedded_ size的值,则该客户端向阈值设置模块发送新的阈值设置指令,阈值设置模块在收到新的阈值设置指令后,向分布式文件系统的各个客户端推送新的内嵌文件大小阈值embedded_ size的值,各个客户端在收到新的内嵌文件大小阈值embedded_size的值后,更新本地结点中存储的内嵌文件大小阈值embedded_size的值。因此,当客户端修改内嵌文件大小阈值embedded_size后,该客户端向SSD-based DFS各客户端同步新的内嵌文件大小阈值embedded_size,此后各客户端上使用新的内嵌文件大小阈值embedded_size来作为启用内嵌数据支持的小文件大小。
本实施例中,步骤3)中客户端在将所创建文件的大小和内嵌文件大小阈值进行比较时,首先为所创建文件定义指定位数长度整数数据结构的本地内嵌版本号embedded_ version_l,如果所创建文件的大小小于内嵌文件大小阈值,则将本地内嵌版本号embedded_version_l初始化为第一极小值,否则将本地内嵌版本号embedded_version_l初始化为整数数据结构的最大值embedded_disabled;元数据服务器记录所创建文件的文件元数据信息时,在文件元数据信息中为所创建文件定义指定位数长度整数的远程内嵌版本号embedded_version_r,如果所创建文件的大小小于内嵌文件大小阈值,则将远程内嵌版本号embedded_version_r初始化为比第一极小值大的第二极小值,否则将远程内嵌版本号embedded_version_r初始化为整数数据结构的最大值embedded_disabled;元数据服务器将所创建文件的文件元数据信息并返回给客户端后,如果客户端的本地内嵌版本号embedded_version_l为第一极小值,则将本地内嵌版本号embedded_version_l修改为元数据服务器返回的第二极小值以与元数据服务器的文件元数据信息保持同步。本实施例中,第一极小值为0,第二极小值为1,整数数据结构的类型为uint64_t,即整数数据结构的指定位数长度为64位,因此整数数据结构的最大值embedded_disabled为(264–1)。客户端在用户创建文件时,在本地结点inode中为每一个创建的文件建立一个用于表示本地内嵌版本号embedded_version_l的数据结构,本地内嵌版本号embedded_version_l为指定位数长度的整数,针对内嵌文件将本地内嵌版本号embedded_version_l初始化为0,针对普通文件将本地内嵌版本号embedded_version_l初始化为整数数据结构的最大值embedded_disabled(264–1);元数据服务器在文件元数据区域生成创建文件的文件元数据信息时,在结点inode的文件元数据信息中建立一个用于表示远程内嵌版本号embedded_version_r的数据结构,针对内嵌文件将远程内嵌版本号embedded_version_r初始化为1,针对普通文件将远程内嵌版本号embedded_version_r初始化为指定位数长度的整数的最大值(264–1),元数据服务器将文件元数据信息发送给客户端后,客户端中创建文件对应的本地内嵌版本号被同步为1。初始化后,元数据服务器通过消息机制与客户端通信,将元数据服务器的文件元数据信息同步到客户端的缓存cache中,此时客户端的本地内嵌版本号embedded_version_l由初始状态0变成1,与元数据服务器端同步。
如图4所示,步骤4)的详细步骤包括:
4.1)当客户端的进程打开文件时,客户端向元数据服务器同步目标文件的文件元数据信息,元数据服务器为客户端分配读写权限,读写权限包括读文件权限RCache和写文件权限WCache;
4.2)当客户端进程进行读写操作时,首先判断读写操作的操作类型,当操作类型为读操作时,跳转执行步骤4.3),当操作类型为写操作时,跳转执行步骤4.7);
4.3)判断元数据服务器是否已经为客户端分配读文件权限RCache,如果已经为客户端分配读文件权限RCache,则跳转执行步骤4.4),否则向客户端返回拒绝读操作,退出;
4.4)客户端首先根据目标文件对应的本地内嵌版本号embedded_version_l判断目标文件的类型,如果本地内嵌版本号embedded_version_l小于整数数据结构的最大值embedded_disabled,则判定目标文件为内嵌文件,跳转执行步骤4.5);否则判定目标文件为普通文件,跳转执行步骤4.6);
4.5)元数据服务器读取目标文件在文件元数据区域存储的内嵌文件数据并返回给客户端,退出;
4.6)客户端根据文件元数据信息确定目标文件的对象服务器,对象服务器读取目标文件在对象服务器中存储的普通文件数据并返回给客户端,退出;
4.7)判断元数据服务器是否已经为客户端分配写文件权限WCache,如果已经为客户端分配写文件权限WCache,则跳转执行步骤4.8),否则向用户返回拒绝写操作;
4.8)客户端首先根据目标文件对应的本地内嵌版本号embedded_version_l判断目标文件的类型,如果本地内嵌版本号embedded_version_l小于整数数据结构的最大值embedded_disabled,则判定目标文件为内嵌文件,跳转执行步骤4.9);否则判定目标文件为普通文件,跳转执行步骤4.0);
4.9)客户端判断目标文件的写数据是否超过内嵌文件大小阈值,如果超过内嵌文件大小阈值则将执行目标文件的迁移使得目标文件从内嵌文件变更为普通文件,跳转执行步骤4.10);否则,客户端将写数据提交给元数据服务器,元数据服务器执行目标文件在文件元数据区域存储的内嵌文件数据的写操作、将远程内嵌版本号embedded_version_r加1并向客户端返回写操作的结果,客户端收到结果后更新本地内嵌版本号embedded_version_l,退出;
4.10)客户端将写数据提交给目标文件对应的对象存储服务器,对象存储服务器执行目标文件在文件元数据区域存储的内嵌文件数据的写操作,并向客户端返回写操作的结果,元数据服务器将远程内嵌版本号embedded_version_r加1并向客户端返回写操作的结果,客户端收到写操作的结果后更新本地内嵌版本号embedded_version_l,退出。
本实施例中,步骤4.3)和步骤4.7)向用户返回拒绝写操作时,同时还将包括执行目标文件的迁移使得目标文件从内嵌文件变更为普通文件的步骤。通过上述步骤,使得当客户端无法执行带缓存的读写,而只能同步读写数据时进行状态迁移。当多个用户同时对同一文件进行读写时,客户端不能确定是其是否拥有最新的内嵌数据embedded data,为了保证数据的一致性,此时,本实施例执行目标文件的迁移使得目标文件从内嵌文件变更为普通文件,强制客户端进行无缓存页(page cache)的同步读写,因此在这种情况下继续采用内嵌数据embedded data读写,会加重元数据服务器的负载。
如图5所示,执行目标文件的迁移的详细步骤包括:首先客户端等待获取异步锁,异步锁变量用于控制多个客户端的执行目标文件的迁移,使得同一个时间只有一个客户端可以执行目标文件的迁移;如果客户端获得异步锁,则首先向元数据服务器同步获取目标文件的文件元数据信息并更新本地内嵌版本号embedded_version_l,如果本地内嵌版本号embedded_version_l小于整数数据结构的最大值embedded_disabled,则将目标文件从元数据服务器的文件元数据区域迁移到对象存储服务器,清除目标文件在文件元数据区域中的内嵌文件数据,使得目标文件从内嵌文件变更为普通文件。
本实施例中,步骤4.1)中同步目标文件的文件元数据信息的详细步骤包括:客户端首先向元数据服务器查询目标文件的文件元数据信息;然后将查询返回的文件元数据信息中的远程内嵌版本号embedded_version_r和本地内嵌版本号embedded_version_l比较,若本地内嵌版本号embedded_version_l较大,则客户端将目标文件在本地的文件元数据信推送给元数据服务器,元数据服务器将远程内嵌版本号embedded_version_r的值修改为与本地内嵌版本号embedded_version_l的值保持一致;若本地内嵌版本号embedded_ version_l较小,则将查询返回的文件元数据信息更新本地缓存的文件元数据信息。
如图5所示,本实施例中阈值设置模块具体是布置在客户端中,且每一个客户端中还包括内嵌数据版本管理模块、内嵌数据存储模块及内嵌数据迁移模块;元数据服务器上设有内嵌数据版本管理模块、内嵌数据存储模块及内嵌数据迁移模块,阈值设置模块允许用户根据需求设置小文件的大小,即在设置的阈值内会启用内嵌数据支持;内嵌数据存储模块实现在设置的阈值内,将小文件数据作为内嵌数据存储在文件元数据区;内嵌数据版本管理模块用于维护内嵌数据的一致性,并用于标识内嵌数据的状态;内嵌数据迁移模块是在满足迁移条件时,完成内嵌数据从元数据区域到对象存储节点的迁移。客户端和元数据服务器的内嵌数据版本管理模块之间相互通信,实现客户端及元数据服务器之间的内嵌数据(embedded data)的版本管理;客户端和元数据服务器的内嵌数据存储模块之间相互通信,实现客户端及元数据服务器之间的内嵌数据(embedded data)的存储;客户端和元数据服务器的内嵌数据迁移模块之间相互通信,实现将元数据服务器上存储的内嵌数据(embedded data)迁移到对象服务器且更新元数据信息,使得该操作对用户透明。现有技术的SSD-based DFS的客户端在读文件时,需要先与元数据服务器通信得到元数据信息,然后根据元数据信息再从对象存储服务器读取数据;而本实施例由于使用了内嵌数据embedded data,因此如果读取的文件大小在内嵌数据embedded data的内嵌文件大小阈值embedded_ size内(即类型为内嵌文件),则只需要从元数据区域的扩展属性区域内嵌数据embedded_ data中读取数据返回给客户端即可,不再需要多次通信,从而能够提高小文件读操作的效率和性能;现有技术的SSD-based DFS写文件时,文件数据通常是存储在对象存储服务器的;而本实施例使用了内嵌数据embedded data,因此如果写入的文件数据比较小(小于阈值4k),则将文件作为内嵌文件,直接将文件的数据写入到元数据服务器中固态硬盘中元数据的扩展属性区域的embedded_data中,从而能够提升小文件写操作的效率和性能。
本实施例中,内嵌数据版本管理模块的实现方式如下:(1)在客户端上设计本地内嵌版本号uint64_t embedded_version_l和在元数据服务器上设计远程内嵌版本号uint64_t embedded_version_r,本地内嵌版本号embedded_version_l和远程内嵌版本号embedded_version_r的最大值embedded_disabled为264–1。(2)客户端和元数据服务器之间的内嵌数据版本管理模块负责客户端和元数据服务器中内嵌数据的版本管理,并标识内嵌数据的状态。(3)整数embedded_version_l在客户端的初始值为0,整数embedded_version_ r在元数据服务器Metadata Server的初始值为1。(4)当元数据服务器与客户端通信后,客户端的本地内嵌版本号embedded_version_l与元数据服务器的远程内嵌版本号embedded_ version_r保持一致。(5)当客户端内嵌数据embedded data更新时,内嵌数据版本管理模块负责将本地内嵌版本号embedded_version_l加1,然后向元数据服务器推送最新的内嵌数据和版本。(6)本地内嵌版本号embedded_version_l和远程内嵌版本号embedded_version_ r等于最大值embedded_disabled为264–1时,表明小文件的内嵌数据状态为disable,即文件为普通文件,而本地内嵌版本号embedded_version_l和远程内嵌版本号embedded_ version_r在小于264–1时,表示小文件的内嵌数据状态为embedded状态,文件为内嵌文件。(7)当文件发生迁移时,内嵌数据版本管理模块负责将本地内嵌版本号embedded_version_ l和远程内嵌版本号embedded_version_r设置为最大值。
本实施例中,内嵌数据存储模块负责在文件数据大小小于设置的阈值时,将小文件的数据存储到文件元数据区域中。内嵌数据存储模块的实现方式如下:(1)在客户端节点(inode)的数据结构中添加域bufferlistembedded_data,用于存放小文件的物理数据。(2)客户端根据设置的阈值,在文件大小小于内嵌文件大小阈值embedded_size值时,将文件的内容内嵌到元数据服务器中固态硬盘上的文件元数据inode的区域中。(3)在客户端打开文件时,元数据服务器向客户端推送最新的元数据信息,包括内嵌数据embedded data,内嵌数据存储模块判断是否更新客户端的内嵌数据embedded data。(4)当客户端因修改文件内容或者属性时改变了文件元数据信息,则首先将修改后的元数据信息保存了客户端内嵌数据存储模块,然后向元数据服务器推送更新的内嵌数据embedded data。
当文件大小过大时,为了避免造成元数据服务器负责过重,降低文件读写性能,需要将内嵌数据迁移到对象存储服务器,分别存储元数据和文件数据,本实施例的这个过程由内嵌数据迁模块完成。本实施例中,内嵌数据迁模块的实现方式如下:
(1)定义小文件的数据状态。因为小文件在读写过程中,文件大小是一个变化的状态,因此,本实施例根据小文件的数据存储位置,设计了两种文件状态:embedded状态(对应内嵌文件)和disable状态(对应普通文件)。embedded状态时,文件的所有数据均存放在元数据区域,对象存储服务器上没有存放文件数据。这种状态下,文件的读写直接针对元数据服务器。disable状态时,文件所有的数据从元数据区域迁移到对象存储服务器,元数据区域不再存放文件数据。这种情况下,内嵌数据embedded data处于不可用的状态,在完成数据迁移后,读写文件按原流程执行。
(2)设计状态变迁的条件。状态迁移的条件有两个:(I)、当文件大小超出阈值时进行迁移。因为当文件过大时,文件的数据存储在元数据区域会给元数据服务器带来比较重的负载,达不到优化的目的。(II)、当客户端无法执行带缓存的读写,而只能同步读写数据时进行状态迁移。因为当多个用户同时对同一文件进行读写时,客户端不能确定是其是否拥有最新的内嵌数据embedded data,为了保证数据的一致性,此时,SSD-based DFS会强制客户端进行无缓存页(page cache)的同步读写。在这种情况下,继续采用内嵌数据embedded data读写,会加重元数据服务器的负载。
(3)多客户端异步迁移处理。为了避免多客户端同时迁移造成修改的丢失,内嵌数据embedded data的迁移是异步进行的。例如,客户端Client#1打开文件,写入了区域[a,b],其中 a<阈值,b>阈值。当客户端Client#1将内嵌数据embedded data迁移到了对象存储服务器时,Client#1还没有通知元数据服务器告知内嵌数据embedded data已经撤消了。注意此时[a,阈值]中包含了客户端Client#1修改后的数据。此时,如果客户端Client#2打开文件,客户端Client#2本地缓存的文件元数据信息不是最新的,而最新的文件元数据信息在客户端Client#1是已经修改的,而且还没有同步到元数据服务器,如果客户端Client#2也迁移数据,则客户端Client#2上旧的内嵌数据embedded data将会覆盖客户端Client#1的修改。因此,本实施例中针对多客户端的数据迁移是异步进行的,即同一时间只允许一个客户端进行数据迁移。
(4)迁移函数算法设计。写入数据超出阈值或者存在多个文件写操作者时,为了避免频繁的embedded data写访问增加元数据服务器负担,需要进行数据的迁移,通过数据迁移将存放在元数据区域的文件内容迁移到对象存储服务器,平衡内嵌数据所获得的性能优势与带来的元数据服务器开销。首先定义迁移函数,本实施例中定义的迁移函数具体形式为int Client::migration_embedded_data(Inode *in)。然后,设计迁移函数的执行过程如下:(I)构造操作请求,标识为ops,比较本地内嵌版本号embedded_version_l和远程内嵌版本号embedded_version_r版本,将待迁移的内嵌数据embedded data写入到队列中,并设置其属性为元数据。第一步,构造写入操作请求:如ops.write(0, embedded_data, in-> truncate_size, in->truncate_seq)。embedded_data表示写入的待迁移的内嵌数据,in-> truncate_size表示内嵌数据的大小,in->truncate_seq表示内嵌数据embedded data在队列中的序号。第二步,构造属性设置操作请求,如ops.setxattr("embedded_version", embedded_version_bl);其中setxattr表示属性设置函数,embedded_version_bl表示本地内嵌版本号embedded_version_l或远程内嵌版本号embedded_version_r。(II)构造用于存储内嵌数据embedded data的目标对象,调用函数向目标对象发送数据。(III)等待数据发送完成。(IV)数据发送完成后,清除迁移的内嵌数据embedded data,并将内嵌数据embedded_version设置为disable状态,禁用内嵌数据embedded data使目标文件成为普通文件。
如图6所示,内嵌数据迁模块的工作过程如下:(1)、判断是否满足迁移条件,如果满足迁移条件则执行下一步执行数据迁移操作;(2)、将内嵌存储到元数据服务器的文件元数据区域的目标文件的文件数据迁移到对象存储服务器;(3)、清除在元数据服务器的文件元数据区域中内嵌存储的目标文件的文件数据(内嵌数据);(4)、将目标文件对应的远程内嵌版本号embedded_version_r设置为指定位数长度的整数的最大值embedded_disabled,从而使得目标文件从内嵌文件变成普通文件(从embedded状态变成disable状态)。
以上所述仅是本发明的优选实施方式,本发明的保护范围并不仅局限于上述实施例,凡属于本发明思路下的技术方案均属于本发明的保护范围。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理前提下的若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (10)
1.一种基于固态硬盘加速的分布式文件系统小文件访问方法,其特征在于步骤包括:
1)在分布式文件系统中设置内嵌文件大小阈值;
2)通过分布式文件系统的客户端接收用户请求的类型,如果类型为创建文件,则跳转执行步骤3);如果类型为访问文件,则跳转执行步骤4);
3)客户端将所创建文件的大小和内嵌文件大小阈值进行比较,如果小于内嵌文件大小阈值,则将所创建文件作为内嵌文件内嵌存储到元数据服务器的文件元数据区域,所述文件元数据区域位于固态硬盘中,否则将所创建文件作为普通文件存储到对象存储服务器;最终,元数据服务器记录所创建文件的文件元数据信息并返回给客户端,跳转执行步骤2);
4)当客户端的进程打开文件时,客户端向元数据服务器同步目标文件的文件元数据信息,元数据服务器为客户端分配读写权限;当客户端进程进行具有权限的读写操作时,根据文件元数据信息中的存储位置由元数据服务器或对象存储服务器响应用户访问请求并返回执行结果;最终当客户端的进程关闭文件后,关闭向客户端提供的文件读写权限。
2.根据权利要求1所述的基于固态硬盘加速的分布式文件系统小文件访问方法,其特征在于,所述步骤1)的详细步骤包括:
1.1)预先在分布式文件系统中设置阈值设置模块,定义内嵌文件大小阈值变量embedded_size并初始化设置内嵌文件大小阈值embedded_size的值;
1.2)在分布式文件系统初始化时,通过所述阈值设置模块向分布式文件系统的各个客户端推送内嵌文件大小阈值embedded_size的值,各个客户端在收到推送的内嵌文件大小阈值embedded_size的值后在本地结点中存储内嵌文件大小阈值embedded_size的值。
3.根据权利要求2所述的基于固态硬盘加速的分布式文件系统小文件访问方法,其特征在于,所述步骤1.1)中初始化设置内嵌文件大小阈值embedded_size的值为4 kbyte。
4.根据权利要求3所述的基于固态硬盘加速的分布式文件系统小文件访问方法,其特征在于,所述步骤1)还包括客户端修改内嵌文件大小阈值的步骤,详细步骤包括:在分布式文件系统运行过程中,如果用户通过客户端修改内嵌文件大小阈值embedded_size的值,则该客户端向所述阈值设置模块发送新的阈值设置指令,所述阈值设置模块在收到新的阈值设置指令后,向分布式文件系统的各个客户端推送新的内嵌文件大小阈值embedded_size的值,各个客户端在收到新的内嵌文件大小阈值embedded_size的值后,更新本地结点中存储的内嵌文件大小阈值embedded_size的值。
5.根据权利要求4所述的基于固态硬盘加速的分布式文件系统小文件访问方法,其特征在于,所述步骤3)中客户端在将所创建文件的大小和内嵌文件大小阈值进行比较时,首先为所创建文件定义指定位数长度整数数据结构的本地内嵌版本号embedded_version_l,如果所创建文件的大小小于内嵌文件大小阈值,则将本地内嵌版本号embedded_version_l初始化为第一极小值,否则将本地内嵌版本号embedded_version_l初始化为整数数据结构的最大值;元数据服务器记录所创建文件的文件元数据信息时,在文件元数据信息中为所创建文件定义指定位数长度整数的远程内嵌版本号embedded_version_r,如果所创建文件的大小小于内嵌文件大小阈值,则将远程内嵌版本号embedded_version_r初始化为比第一极小值大的第二极小值,否则将远程内嵌版本号embedded_version_r初始化为整数数据结构的最大值;元数据服务器将所创建文件的文件元数据信息并返回给客户端后,如果客户端的本地内嵌版本号embedded_version_l为第一极小值,则将本地内嵌版本号embedded_ version_l修改为元数据服务器返回的第二极小值以与元数据服务器的文件元数据信息保持同步。
6.根据权利要求5所述的基于固态硬盘加速的分布式文件系统小文件访问方法,其特征在于,所述第一极小值为0,所述第二极小值为1。
7.根据权利要求1~6中任意一项所述的基于固态硬盘加速的分布式文件系统小文件访问方法,其特征在于,所述步骤4)的详细步骤包括:
4.1)当客户端的进程打开文件时,客户端向元数据服务器同步目标文件的文件元数据信息,元数据服务器为客户端分配读写权限,所述读写权限包括读文件权限RCache和写文件权限WCache;
4.2)当客户端进程进行读写操作时,首先判断读写操作的操作类型,当操作类型为读操作时,跳转执行步骤4.3),当操作类型为写操作时,跳转执行步骤4.7);
4.3)判断元数据服务器是否已经为客户端分配读文件权限RCache,如果已经为客户端分配读文件权限RCache,则跳转执行步骤4.4),否则向客户端返回拒绝读操作,退出;
4.4)客户端首先根据目标文件对应的本地内嵌版本号embedded_version_l判断目标文件的类型,如果本地内嵌版本号embedded_version_l小于整数数据结构的最大值,则判定目标文件为内嵌文件,跳转执行步骤4.5);否则判定目标文件为普通文件,跳转执行步骤4.6);
4.5)元数据服务器读取目标文件在文件元数据区域存储的内嵌文件数据并返回给客户端,退出;
4.6)客户端根据文件元数据信息确定目标文件的对象服务器,对象服务器读取目标文件在对象服务器中存储的普通文件数据并返回给客户端,退出;
4.7)判断元数据服务器是否已经为客户端分配写文件权限WCache,如果已经为客户端分配写文件权限WCache,则跳转执行步骤4.8),否则向用户返回拒绝写操作;
4.8)客户端首先根据目标文件对应的本地内嵌版本号embedded_version_l判断目标文件的类型,如果本地内嵌版本号embedded_version_l小于整数数据结构的最大值,则判定目标文件为内嵌文件,跳转执行步骤4.9);否则判定目标文件为普通文件,跳转执行步骤4.0);
4.9)客户端判断目标文件的写数据是否超过内嵌文件大小阈值,如果超过内嵌文件大小阈值则将执行目标文件的迁移使得目标文件从内嵌文件变更为普通文件,跳转执行步骤4.10);否则,客户端将写数据提交给元数据服务器,元数据服务器执行目标文件在文件元数据区域存储的内嵌文件数据的写操作、将远程内嵌版本号embedded_version_r加1并向客户端返回写操作的结果,客户端收到结果后更新本地内嵌版本号embedded_version_l,退出;
4.10)客户端将写数据提交给目标文件对应的对象存储服务器,对象存储服务器执行目标文件在文件元数据区域存储的内嵌文件数据的写操作,并向客户端返回写操作的结果,元数据服务器将远程内嵌版本号embedded_version_r加1并向客户端返回写操作的结果,客户端收到写操作的结果后更新本地内嵌版本号embedded_version_l,退出。
8.根据权利要求7所述的基于固态硬盘加速的分布式文件系统小文件访问方法,其特征在于,所述步骤4.3)和步骤4.7)向用户返回拒绝写操作时,同时还将包括执行目标文件的迁移使得目标文件从内嵌文件变更为普通文件的步骤。
9.根据权利要求8所述的基于固态硬盘加速的分布式文件系统小文件访问方法,其特征在于,所述执行目标文件的迁移的详细步骤包括:首先客户端等待获取异步锁,所述异步锁变量用于控制多个客户端的执行目标文件的迁移,使得同一个时间只有一个客户端可以执行目标文件的迁移;如果客户端获得异步锁,则首先向元数据服务器同步获取目标文件的文件元数据信息并更新本地内嵌版本号embedded_version_l,如果本地内嵌版本号embedded_version_l小于整数数据结构的最大值,则将目标文件从元数据服务器的文件元数据区域迁移到对象存储服务器,清除目标文件在文件元数据区域中的内嵌文件数据,使得目标文件从内嵌文件变更为普通文件。
10.根据权利要求9所述的基于固态硬盘加速的分布式文件系统小文件访问方法,其特征在于,所述步骤4.1)中同步目标文件的文件元数据信息的详细步骤包括:客户端首先向元数据服务器查询目标文件的文件元数据信息;然后将查询返回的文件元数据信息中的远程内嵌版本号embedded_version_r和本地内嵌版本号embedded_version_l比较,若本地内嵌版本号embedded_version_l较大,则客户端将目标文件在本地的文件元数据信推送给元数据服务器,元数据服务器将远程内嵌版本号embedded_version_r的值修改为与本地内嵌版本号embedded_version_l的值保持一致;若本地内嵌版本号embedded_version_l较小,则将查询返回的文件元数据信息更新本地缓存的文件元数据信息。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610993411.4A CN106775446B (zh) | 2016-11-11 | 2016-11-11 | 基于固态硬盘加速的分布式文件系统小文件访问方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610993411.4A CN106775446B (zh) | 2016-11-11 | 2016-11-11 | 基于固态硬盘加速的分布式文件系统小文件访问方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106775446A true CN106775446A (zh) | 2017-05-31 |
CN106775446B CN106775446B (zh) | 2020-04-17 |
Family
ID=58973136
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610993411.4A Active CN106775446B (zh) | 2016-11-11 | 2016-11-11 | 基于固态硬盘加速的分布式文件系统小文件访问方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106775446B (zh) |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107332921A (zh) * | 2017-07-14 | 2017-11-07 | 郑州云海信息技术有限公司 | 一种延时更新元数据的方法、系统及分布式文件系统 |
CN107704596A (zh) * | 2017-10-13 | 2018-02-16 | 郑州云海信息技术有限公司 | 一种读取文件的方法、装置及设备 |
CN108174136A (zh) * | 2018-03-14 | 2018-06-15 | 成都创信特电子技术有限公司 | 云盘视频编码存储方法 |
CN108170757A (zh) * | 2017-12-22 | 2018-06-15 | 郑州云海信息技术有限公司 | 一种数据文件读取方法、装置及设备 |
CN109344122A (zh) * | 2018-10-15 | 2019-02-15 | 中山大学 | 一种基于文件预创策略的分布式元数据管理方法及系统 |
CN110147203A (zh) * | 2019-05-16 | 2019-08-20 | 北京金山云网络技术有限公司 | 一种文件管理方法、装置、电子设备及存储介质 |
CN110730250A (zh) * | 2019-09-06 | 2020-01-24 | 北京小米移动软件有限公司 | 信息处理方法及装置、服务系统、存储介质 |
CN110908965A (zh) * | 2019-11-07 | 2020-03-24 | 北京浪潮数据技术有限公司 | 一种对象存储管理方法、装置、设备及存储介质 |
CN111177105A (zh) * | 2019-12-29 | 2020-05-19 | 浪潮电子信息产业股份有限公司 | 分布式文件系统的海量文件写方法、装置、系统及介质 |
CN114936010A (zh) * | 2022-07-20 | 2022-08-23 | 阿里巴巴(中国)有限公司 | 数据处理方法、装置、设备及介质 |
WO2023116434A1 (zh) * | 2021-12-21 | 2023-06-29 | 华为技术有限公司 | 一种数据处理系统、方法及设备 |
CN116610634A (zh) * | 2023-07-19 | 2023-08-18 | 南京中孚信息技术有限公司 | 一种网盘终端的文件同步系统及方法 |
CN117591038A (zh) * | 2024-01-18 | 2024-02-23 | 济南浪潮数据技术有限公司 | 一种数据访问方法、装置、分布式存储系统及设备和介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101510219A (zh) * | 2009-03-31 | 2009-08-19 | 成都市华为赛门铁克科技有限公司 | 文件数据访问方法、装置以及系统 |
CN101866359A (zh) * | 2010-06-24 | 2010-10-20 | 北京航空航天大学 | 一种机群文件系统中的小文件存储和访问方法 |
US20130013675A1 (en) * | 2008-04-29 | 2013-01-10 | Overland Storage, Inc. | Peer-to-peer redundant file server system and methods |
CN103020315A (zh) * | 2013-01-10 | 2013-04-03 | 中国人民解放军国防科学技术大学 | 一种基于主从分布式文件系统的海量小文件存储方法 |
-
2016
- 2016-11-11 CN CN201610993411.4A patent/CN106775446B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130013675A1 (en) * | 2008-04-29 | 2013-01-10 | Overland Storage, Inc. | Peer-to-peer redundant file server system and methods |
CN101510219A (zh) * | 2009-03-31 | 2009-08-19 | 成都市华为赛门铁克科技有限公司 | 文件数据访问方法、装置以及系统 |
CN101866359A (zh) * | 2010-06-24 | 2010-10-20 | 北京航空航天大学 | 一种机群文件系统中的小文件存储和访问方法 |
CN103020315A (zh) * | 2013-01-10 | 2013-04-03 | 中国人民解放军国防科学技术大学 | 一种基于主从分布式文件系统的海量小文件存储方法 |
Cited By (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107332921A (zh) * | 2017-07-14 | 2017-11-07 | 郑州云海信息技术有限公司 | 一种延时更新元数据的方法、系统及分布式文件系统 |
CN107704596A (zh) * | 2017-10-13 | 2018-02-16 | 郑州云海信息技术有限公司 | 一种读取文件的方法、装置及设备 |
CN107704596B (zh) * | 2017-10-13 | 2021-06-29 | 郑州云海信息技术有限公司 | 一种读取文件的方法、装置及设备 |
CN108170757A (zh) * | 2017-12-22 | 2018-06-15 | 郑州云海信息技术有限公司 | 一种数据文件读取方法、装置及设备 |
CN108170757B (zh) * | 2017-12-22 | 2020-07-07 | 郑州云海信息技术有限公司 | 一种数据文件读取方法、装置及设备 |
CN108174136A (zh) * | 2018-03-14 | 2018-06-15 | 成都创信特电子技术有限公司 | 云盘视频编码存储方法 |
CN109344122B (zh) * | 2018-10-15 | 2020-05-15 | 中山大学 | 一种基于文件预创策略的分布式元数据管理方法及系统 |
CN109344122A (zh) * | 2018-10-15 | 2019-02-15 | 中山大学 | 一种基于文件预创策略的分布式元数据管理方法及系统 |
CN110147203A (zh) * | 2019-05-16 | 2019-08-20 | 北京金山云网络技术有限公司 | 一种文件管理方法、装置、电子设备及存储介质 |
CN110730250A (zh) * | 2019-09-06 | 2020-01-24 | 北京小米移动软件有限公司 | 信息处理方法及装置、服务系统、存储介质 |
CN110908965A (zh) * | 2019-11-07 | 2020-03-24 | 北京浪潮数据技术有限公司 | 一种对象存储管理方法、装置、设备及存储介质 |
CN111177105A (zh) * | 2019-12-29 | 2020-05-19 | 浪潮电子信息产业股份有限公司 | 分布式文件系统的海量文件写方法、装置、系统及介质 |
CN111177105B (zh) * | 2019-12-29 | 2022-03-22 | 浪潮电子信息产业股份有限公司 | 分布式文件系统的海量文件写方法、装置、系统及介质 |
WO2023116434A1 (zh) * | 2021-12-21 | 2023-06-29 | 华为技术有限公司 | 一种数据处理系统、方法及设备 |
CN114936010A (zh) * | 2022-07-20 | 2022-08-23 | 阿里巴巴(中国)有限公司 | 数据处理方法、装置、设备及介质 |
CN116610634A (zh) * | 2023-07-19 | 2023-08-18 | 南京中孚信息技术有限公司 | 一种网盘终端的文件同步系统及方法 |
CN116610634B (zh) * | 2023-07-19 | 2023-09-26 | 南京中孚信息技术有限公司 | 一种网盘终端的文件同步系统及方法 |
CN117591038A (zh) * | 2024-01-18 | 2024-02-23 | 济南浪潮数据技术有限公司 | 一种数据访问方法、装置、分布式存储系统及设备和介质 |
CN117591038B (zh) * | 2024-01-18 | 2024-06-11 | 济南浪潮数据技术有限公司 | 一种数据访问方法、装置、分布式存储系统及设备和介质 |
Also Published As
Publication number | Publication date |
---|---|
CN106775446B (zh) | 2020-04-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106775446A (zh) | 基于固态硬盘加速的分布式文件系统小文件访问方法 | |
CN106255967B (zh) | 分布式存储系统中的命名空间管理 | |
CN106233264B (zh) | 使用可变条带大小的文件存储装置 | |
US11561930B2 (en) | Independent evictions from datastore accelerator fleet nodes | |
CN103116618B (zh) | 基于客户端持久缓存的远程文件系统镜像方法及系统 | |
CN104820714B (zh) | 基于hadoop的海量瓦片小文件存储管理方法 | |
CN103338242B (zh) | 一种基于多级缓存的混合云存储系统和方法 | |
CN106462544A (zh) | 分布式存储系统中的会话管理 | |
CN106462601A (zh) | 针对多盘区操作的原子写入 | |
CN104133882A (zh) | 一种基于hdfs的小文件处理方法 | |
CN106462545A (zh) | 可缩放文件存储服务 | |
CN107832423B (zh) | 一种用于分布式文件系统的文件读写方法 | |
CN103020315A (zh) | 一种基于主从分布式文件系统的海量小文件存储方法 | |
CN110750507B (zh) | 面向dfs的全局命名空间下的持久客户端缓存方法及系统 | |
CN103530387A (zh) | 一种hdfs针对小文件的改进方法 | |
US11080207B2 (en) | Caching framework for big-data engines in the cloud | |
CN103888499A (zh) | 一种分布式对象处理的方法及系统 | |
CN103501319A (zh) | 一种低延迟的面向小文件的分布式存储系统 | |
Fu et al. | Optimized data replication for small files in cloud storage systems | |
CN114265814A (zh) | 一种基于对象存储的数据湖文件系统 | |
CN104951475B (zh) | 分布式文件系统和实现方法 | |
US10146833B1 (en) | Write-back techniques at datastore accelerators | |
US10387384B1 (en) | Method and system for semantic metadata compression in a two-tier storage system using copy-on-write | |
US10055139B1 (en) | Optimized layout in a two tier storage | |
CN113204520B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |