CN117851369A - 一种基于分布式存储系统的大数据存储访问方法 - Google Patents
一种基于分布式存储系统的大数据存储访问方法 Download PDFInfo
- Publication number
- CN117851369A CN117851369A CN202311722314.8A CN202311722314A CN117851369A CN 117851369 A CN117851369 A CN 117851369A CN 202311722314 A CN202311722314 A CN 202311722314A CN 117851369 A CN117851369 A CN 117851369A
- Authority
- CN
- China
- Prior art keywords
- file
- file system
- task
- client
- lease
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 53
- 238000013500 data storage Methods 0.000 title claims abstract description 34
- 238000007789 sealing Methods 0.000 claims abstract description 8
- 238000012545 processing Methods 0.000 claims description 40
- 230000008569 process Effects 0.000 claims description 22
- 238000004891 communication Methods 0.000 claims description 8
- 101710109733 ECF RNA polymerase sigma-E factor Proteins 0.000 claims description 3
- 230000000903 blocking effect Effects 0.000 claims description 3
- 230000009919 sequestration Effects 0.000 claims description 3
- 238000004904 shortening Methods 0.000 abstract 1
- 238000004364 calculation method Methods 0.000 description 7
- 238000010586 diagram Methods 0.000 description 7
- 238000005457 optimization Methods 0.000 description 4
- 238000007405 data analysis Methods 0.000 description 3
- 238000013523 data management Methods 0.000 description 2
- 238000012217 deletion Methods 0.000 description 2
- 230000037430 deletion Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 239000008358 core component Substances 0.000 description 1
- 238000007418 data mining Methods 0.000 description 1
- 238000013079 data visualisation Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000004927 fusion Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 239000002699 waste material Substances 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/18—File system types
- G06F16/182—Distributed file systems
- G06F16/1824—Distributed file systems implemented using Network-attached Storage [NAS] architecture
-
- 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/11—File system administration, e.g. details of archiving or snapshots
-
- 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/16—File or folder operations, e.g. details of user interfaces specifically adapted to file systems
- G06F16/162—Delete operations
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
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)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Human Computer Interaction (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明属于云存储技术领域,尤其是一种基于分布式存储系统的大数据存储访问方法,针对现有的Hadoop文件系统客户端无法直接将读写请求发送至存储集群,由于对象存储List Objects和Rename的代价比较大,导致基于对象存储的Hadoop文件系统在文件列举、文件重命名等操作上会比HDFS性能差的问题,现提出如下方案,所述大数据存储访问方法包括如下步骤:Σ1、类ΗΔΦΣ客户端实例初始化;Σ2、创建文件系统;Σ3、挂载文件系统;Σ4、创建目录;Σ5、创建文件,能够缩短IO路径,充分利用分布式集群能力,数据写入失败,直接封存chunk,重新选择chunk继续写入。
Description
技术领域
本发明涉及云存储技术领域,尤其涉及一种基于分布式存储系统的大数据存储访问方法。
背景技术
现有大数据场景下,基于大数据分析计算流程的大数据体系包含:大数据计算平台层,涵盖硬件、云计算技术与软件系统;大数据存储与管理层,包含数据的采集、数据的预处理;大数据分析计算层,涵盖数据挖掘、Hadoop等;大数据可视化层,基于大数据分析计算层对分析结果进行交互式可视化。
Hadoop是典型的大数据处理开源软件,Hadoop集群运行运行于廉价上有机器之上,形成了一整套完整的生态体系,已经成为大数据处理中的重要平台,Hadoop包含抽象文件系统的概念,定义了Hadoop抽象文件系统客户端接口,该接口的具体实现对应本地磁盘文件系统、HDFS分布式文件系统、构建在其他文件系统之上用于文件存档的文件系统、由FTP服务器支持的文件系统、由Amazon S3支持的文件系统、由Microsoft Azure支持的文件系统、由OpenStack Swift支持的文件系统等文件系统。
HDFS是一种分布式文件系统,是Hadoop生态系统的核心组件之一,HDFS类似于操作系统的文件系统,提供了海量数据的存储和管理,具有高容错性、高吞吐等优点。HDFS跨多台计算机存储,以流式数据访问模式存储超大文件。HDFS是一个主/从(Master)体系架构的分布式系统,HDFS集群至少包含1个名称节点(NameNode)、1个第二名称节点(SecondaryNameNode)和一个数据节点(DataNode),名称节点(NameNode)与数据节点(DataNode)提供了存储与管理数据的能力,用户使用该能力是通过HDFS客户端(Client)同称节点与数据节点交互以访问文件系统。
HDFS客户端(Client)实现了Hadoop抽象文件系统客户端接口。用户能够通过HDFS客户端向HDFS集群发起读写HDFS文件的请求,同时还能通过HDFS客户端执行类文件系统的命名空间操作,例如打开、关闭、重命名文件或者目录。
业界基于对象存储(Object Storage实现了标准的Hadoop文件系统,可以为Hadoop、Spark以及Tez等大数据计算框架集成对象存储提供支持,使其能够跟访问HDFS文件系统时相同,通过发送S3消息给对象存储,读写存储在对象存储上的数据。
计算存储分离的情况下,在私有云场景中,一般会运用虚拟化技术来创建多个计算集群,以支持上层大数据应用对计算的需求。Hadoop生态系统中可用的最著名的s3客户端是S3A,它适用于所有其他S3后端,通常来说,存储会使用对象存储服务来提供数据湖的共享存储后台,然后通过S3A插件来提供两者之间的连接,能够让Hadoop的应用能够无缝访问Ceph对象存储服务。
HDFS客户端(Client)向HDFS集群发起读、写、创建、删除、重命名HDFS文件的请求,使用的是HDFS集群的数据存储与管理能力。首先,HDFS本身的设计是计算资源和存储资源融合的,以一个集群来应对不同业务需求。后期随着业务体量急速增长,不同的业务对存储有不同的计算需求,业务会存在对计算资源的争抢;在后期扩容时,计算和存储无法解耦扩展,存在计算资源或者存储资源的浪费。其次,HDFS客户端(Client)读写文件需要根据位置信息建立数据流管道,数据块副本某个数据节点出现错误,错误处理会非常复杂,需要申请新的数据节点(DataNode),为数据块分配新的时间戳,使用新的时间戳建立新的数据流管道等等,增加了读写处理的时延。另外,不支持多个HDFS客户端(Client)并行写,需要租约(Lease)机制保证对HDFS文件的互斥写。租约(Lease)管理器需要维护一个线程定期检查租约是否过期,租约检查线程也需要消耗系统资源。
S3A使用对象存储的方案,以及业界实现的基于对象存储的Hadoop文件系统,大体流程是:Hadoop文件系统客户端在上传数据时,需要请求封装成HTTP然后发送给对象存储网关,然后由对象存储网关拆解后转为内部的请求发送给存储集群,实现将数据以写Hadoop文件系统内文件的方式,将数据上传至对象存储,如图1所示,以ceph对象存储为例,数据是如何上传的。因为数据的读写路径上都需要经过对象存储网关,然后再由对象存储网关把请求转发给存储集群,对象存储网关成为性能瓶颈是显然的。
Hadoop文件系统客户端无法直接将读写请求发送至存储集群,在整个IO路径上永远存在对象存储网关这一环节,由于对象存储List Objects和Rename的代价比较大,导致基于对象存储的Hadoop文件系统在文件列举、文件重命名等操作上会比HDFS性能差。
发明内容
本发明的目的是为了解决现有技术中存在Hadoop文件系统客户端无法直接将读写请求发送至存储集群,在整个IO路径上永远存在对象存储网关这一环节,由于对象存储List Objects和Rename的代价比较大,导致基于对象存储的Hadoop文件系统在文件列举、文件重命名等操作上会比HDFS性能差缺点,而提出的一种基于分布式存储系统的大数据存储访问方法。
为了实现上述目的,本发明采用了如下技术方案:
一种基于分布式存储系统的大数据存储访问方法,所述大数据存储访问方法包括如下步骤:
Σ1、类ΗΔΦΣ客户端实例初始化;
Σ2、创建文件系统;
Σ3、挂载文件系统;
Σ4、创建目录;
Σ5、创建文件;
Σ6、读写权限打开文件;
Σ7、写入文件数据;
Σ8、从文件中读取数据;
Σ9、关闭文件;
Σ10、删除文件;
Σ11、删除目录;
Σ12、卸载文件系统;
Σ13、删除文件系统。
优选的,所述步骤Σ2包括如下子步骤:
Σ21、业务线程中生成创建文件系统的任务,放入任务队列供轮询线程处理,阻塞等待任务处理结束;
Σ22、轮询线程轮询到该任务,对该任务进行处理,网使用网络通信异步方法向文件系统元数据服务器发送请求;
Σ23、请求返回后生成一个任务,将任务存放到类文件系统客队列中;
Σ24、轮询线程轮询到该任务,通知业务线程创建文件系统成功,创建文件系统流程结束;
Σ25、业务线程返回上层业务创建文件系统结果。
优选的,所述步骤Σ7还包括如下子步骤;
Σ71、检查客户端租约是否失效,文件是否未锁,如果文件锁没有丢失,进入步骤Σ72,如果失效或者文件锁丢失,进入步骤Σ75;
Σ72、获取本次写入涉及的χηυνκ,如果χηυνκ足够,进入步骤Σ73,如果χηυνκ不足,进入步骤Σ76;
Σ73、向χηυνκ的所有副本所在的数据存储节点发送消息写入数据,如果写入成功,进入步骤Σ74,如果写入失败,进入步骤Σ77;
Σ74、通知业务线程写入数据完成,写入数据流程结束;
Σ75、重新打开文件,检查文件长度,检查本次写入是否成功,如果成功,进入步骤Σ74,否则,进入步骤Σ71;
Σ76、申请χηυνκ,如果申请成功,进入步骤Σ72,如果返回文件被别的客户端锁住,进入步骤Σ74,如果返回文件锁丢失,进入步骤Σ75,如果返回其他的错误,没有超过3次,进入步骤Σ76,如果返回其他的错误,超过3次,进入步骤Σ74;
Σ77、封存(σεαλ)χηυνκ,如果返回成功,进入步骤Σ71,如果返回文件被别的客户端锁住,进入步骤Σ7,如果返回文件锁丢失,进入步骤Σ75,如果返回其他的错误,继续重试,进入步骤Σ77。
优选的,所述子步骤Σ22还包括进一步骤:
Σ221,客户端轮询线程轮询到该任务,调用处理函数对该任务进行处理,调用之前的绑定的处理函数,查询存储池是否存在,如果存在,则在该存储池中创建文件系统,使用网络通信框架的异步方法向文件系统元数据服务器发送请求,并且在此之前注册好回调函数,请求返回后调用该回调函数,生成一个任务,绑定的处理函数,将任务存放到类文件系统客户端的队列中。
优选的,所述客户端轮询线程轮询到该任务,在任务处理函数中,最终会激活创建文件系统上下文中的条件变量,创建文件系统流程结束,与创建文件系统类似,删除文件系统、挂载文件系统、卸载文件系统、创建文件、删除文件等大数据存储系统访问操作流程,也是生成任务存入任务队列,由轮询线程处理任务执行任务处理函数。
优选的,所述步骤Σ1、包括如下具体实施步骤:
Σ101、申请χλιεντιδ与λεασετιμε;
Σ102、循环检查任务队列,对任务进行处理;
Σ103、循环检查租约是否失效,如果失效,进入步骤Σ104;否则,进入步骤Σ105;
Σ104、将文件状态置为文件未锁;
Σ105、循环检查租约是否需要续约,如果需要续约,进入步骤Σ106,否则,进入步骤Σ102;
Σ106、对租约进行续约操作,进入步骤Σ102。
优选的,所述步骤Σ6还包括如下步骤:
Σ61,打开文件的时候,如果是包含了写权限,会从元数据服务器申请租约,打开成功即表示:成功获取了该文件在租约期限内的写权限,写文件的时候,开始就会检查客户端租约是否失效,如果已经失效,那么文件状态置为文件未锁;
写入的过程中,可能会丢失文件租约锁或者文件租约锁被别的客户端所占,并且,在写入的过程中,申请或者封存(表示不能再写入数据)χηυνκ,皆会向文件系统元数据服务器发送请求,此时可能会返回文件租约锁被占、文件租约锁丢失,文件状态置为文件已经被锁、文件未锁,对于文件未锁的情况,会重新打开文件,打开之后会根据文件的长度,检查本次写入是否成功。
优选的,所述步骤Σ6还包括如下步骤:
Σ62,打开文件的时候,会从文件系统服务端获取该文件已经写入数据的χηυνκ的信息,打开文件的权限包含写权限,则预申请χηυνκ,读文件会根据偏移与长度确定具体读取哪些χηυνκ,每个χηυνκ存在多个强一致副本,逐个向副本所在的数据存储节点发送消息读取数据,一旦读取到数据就不再读取下一个副本。
优选的,所述步骤Σ62的进一步步骤包括:
Σ621,写文件会根据偏移与长度确定具体写哪些χηυνκ,χηυνκ不足会向后端存储集群申请χηυνκ,返回失败,会间隔一定时间重试四次,返回成功后,类ΗΔΦΣ客户端会将申请的χηυνκ信息发送给文件系统元数据服务器,返回失败,将重试三次。
优选的,所述步骤Σ62的再一步步骤包括:
Σ622,向χηυνκ的所有副本所在的数据存储节点发送消息写入数据,某个副本写入失败表示写入χηυνκ失败,封存(σεαλ)该χηυνκ:向后端存储集群发送封存(σεαλ)请求即可,无需关注是否成功,向文件系统元数据服务器发送封存(σεαλ)请求,返回失败后继续重试,直至成功,最后,再重新选择χηυνκ继续写入。
有益效果
1、在使用对象存储方案中,增加了ΙΟ路径长度,对象存储网关会成为性能瓶颈时,本专利针对这种情况,本发明中所主张的类ΗΔΦΣ客户端,无需经过对象存储网关,而直接使用后端存储集群的数据存储能力。
2、在出现ΗΔΦΣ客户端(Xλιεντ)读写文件需要根据位置信息建立数据流管道时,错误处理会非常复杂,增加了读写处理的时延,本专利针对这种情况,类ΗΔΦΣ客户端写文件会进行文件ΙΟ拆分成χηυνκΙΟ并进行跟踪,χηυνκ某个副本写入失败,直接封存(σεαλ),重新选择χηυνκ继续写入。
3、当业界ΗΔΦΣ客户端(Xλιεντ)文件与目录操作直接访问需文件系统元数据服务器,同步等待处理完成,请求处理的吞吐量有限,基于对象存储的Ηαδοοπ文件系统在文件列举、文件重命名等操作性能差。本专利针对这些情况,上层业务请求的处理会生成任务,网络通信框架的异步请求返回后将生成任务,这些任务都会存放到队列中,等待轮询线程处理。
附图说明
图1为本发明基于Xεπη对象存储的Ηαδοοπ文件系统数据上传示意图;
图2为本发明为类ΗΔΦΣXλιεντ访问后端存储集群示意;
图3为本发明文件系统请求轮询处理示意图;
图4为本发明租约处理示意图;
图5为本发明租约失效处理示意图;
图6为本发明数据写入异常处理示意图;
图7为本发明基本流程示意图;
图8为本发明初始化流程示意图;
图9为本发明创建文件系统流程示意图;
图10为本发明写文件流程示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。
实施例一
参照图1-10,一种基于分布式存储系统的大数据存储访问方法,所述大数据存储访问方法包括如下步骤:
Σ1、类ΗΔΦΣ客户端实例初始化;
Σ2、创建文件系统;
Σ3、挂载文件系统;
Σ4、创建目录;
Σ5、创建文件;
Σ6、读写权限打开文件;
Σ7、写入文件数据;
Σ8、从文件中读取数据;
Σ9、关闭文件;
Σ10、删除文件;
Σ11、删除目录;
Σ12、卸载文件系统;
Σ13、删除文件系统。
所述步骤Σ1、包括如下具体实施步骤:
Σ101、申请χλιεντιδ与λεασετιμε;
Σ102、循环检查任务队列,对任务进行处理;
Σ103、循环检查租约是否失效,如果失效,进入步骤Σ104;否则,进入步骤Σ105;
Σ104、将文件状态置为文件未锁;
Σ105、循环检查租约是否需要续约,如果需要续约,进入步骤Σ106,否则,进入步骤Σ102;
Σ106、对租约进行续约操作,进入步骤Σ102。
所述步骤Σ2包括如下子步骤:
Σ21、业务线程中生成创建文件系统的任务,放入任务队列供轮询线程处理,阻塞等待任务处理结束;
Σ22、轮询线程轮询到该任务,对该任务进行处理,网使用网络通信异步方法向文件系统元数据服务器发送请求;
Σ23、请求返回后生成一个任务,将任务存放到类文件系统客队列中;
Σ24、轮询线程轮询到该任务,通知业务线程创建文件系统成功,创建文件系统流程结束;
Σ25、业务线程返回上层业务创建文件系统结果。
所述子步骤Σ22还包括进一步骤:
Σ221,客户端轮询线程轮询到该任务,调用处理函数对该任务进行处理,调用之前的绑定的处理函数,查询存储池是否存在,如果存在,则在该存储池中创建文件系统,使用网络通信框架的异步方法向文件系统元数据服务器发送请求,并且在此之前注册好回调函数,请求返回后调用该回调函数,生成一个任务,绑定的处理函数,将任务存放到类文件系统客户端的队列中。
所述步骤Σ7还包括如下子步骤;
Σ71、检查客户端租约是否失效,文件是否未锁,如果文件锁没有丢失,进入步骤Σ72,如果失效或者文件锁丢失,进入步骤Σ75;
Σ72、获取本次写入涉及的χηυνκ,如果χηυνκ足够,进入步骤Σ73,如果χηυνκ不足,进入步骤Σ76;
Σ73、向χηυνκ的所有副本所在的数据存储节点发送消息写入数据,如果写入成功,进入步骤Σ74,如果写入失败,进入步骤Σ77;
Σ74、通知业务线程写入数据完成,写入数据流程结束;
Σ75、重新打开文件,检查文件长度,检查本次写入是否成功,如果成功,进入步骤Σ74,否则,进入步骤Σ71;
Σ76、申请χηυνκ,如果申请成功,进入步骤Σ72,如果返回文件被别的客户端锁住,进入步骤Σ74,如果返回文件锁丢失,进入步骤Σ75,如果返回其他的错误,没有超过3次,进入步骤Σ76,如果返回其他的错误,超过3次,进入步骤Σ74;
Σ77、封存(σεαλ)χηυνκ,如果返回成功,进入步骤Σ71,如果返回文件被别的客户端锁住,进入步骤Σ7,如果返回文件锁丢失,进入步骤Σ75,如果返回其他的错误,继续重试,进入步骤Σ77。
所述客户端轮询线程轮询到该任务,在任务处理函数中,最终会激活创建文件系统上下文中的条件变量,创建文件系统流程结束,与创建文件系统类似,删除文件系统、挂载文件系统、卸载文件系统、创建文件、删除文件等大数据存储系统访问操作流程,也是生成任务存入任务队列,由轮询线程处理任务执行任务处理函数。
所述步骤Σ6还包括如下步骤:
Σ61,打开文件的时候,如果是包含了写权限,会从元数据服务器申请租约,打开成功即表示:成功获取了该文件在租约期限内的写权限,写文件的时候,开始就会检查客户端租约是否失效,如果已经失效,那么文件状态置为文件未锁;
写入的过程中,可能会丢失文件租约锁或者文件租约锁被别的客户端所占,并且,在写入的过程中,申请或者封存(表示不能再写入数据)χηυνκ,皆会向文件系统元数据服务器发送请求,此时可能会返回文件租约锁被占、文件租约锁丢失,文件状态置为文件已经被锁、文件未锁,对于文件未锁的情况,会重新打开文件,打开之后会根据文件的长度,检查本次写入是否成功。
所述步骤Σ6还包括如下步骤:
Σ62,打开文件的时候,会从文件系统服务端获取该文件已经写入数据的χηυνκ的信息,打开文件的权限包含写权限,则预申请χηυνκ,读文件会根据偏移与长度确定具体读取哪些χηυνκ,每个χηυνκ存在多个强一致副本,逐个向副本所在的数据存储节点发送消息读取数据,一旦读取到数据就不再读取下一个副本。
所述步骤Σ62的进一步步骤包括:
Σ621,写文件会根据偏移与长度确定具体写哪些χηυνκ,χηυνκ不足会向后端存储集群申请χηυνκ,返回失败,会间隔一定时间重试四次,返回成功后,类ΗΔΦΣ客户端会将申请的χηυνκ信息发送给文件系统元数据服务器,返回失败,将重试三次。
所述步骤Σ62的再一步步骤包括:
Σ622,向χηυνκ的所有副本所在的数据存储节点发送消息写入数据,某个副本写入失败表示写入χηυνκ失败,封存(σεαλ)该χηυνκ:向后端存储集群发送封存(σεαλ)请求即可,无需关注是否成功,向文件系统元数据服务器发送封存(σεαλ)请求,返回失败后继续重试,直至成功,最后,再重新选择χηυνκ继续写入。
实施例二
在实施例一的基础上改进:本专利中,针对如下情况:大数据存储中计算资源和存储资源融合,计算和存储无法解耦扩展业务会存在对计算资源的争抢、计算资源或者存储资源的浪费,使用对象存储方案中,Ηαδοοπ文件系统客户端的数据读写路径上都需要经过对象存储网关,增加了ΙΟ路径长度,对象存储网关会成为性能瓶颈。
采取如下优化方法:本发明中所主张的类ΗΔΦΣ客户端,支持大文件的读与追加写,无需经过对象存储网关,无需使用对象存储的数据存储能力,直接使用后端存储集群能力,类ΗΔΦΣ客户端将文件ΙΟ拆分为数据存储节点的XηυνκΙΟ请求,向不同的数据存储节点发送XηυνκΙΟ,并进行跟踪。
本专利中,针对如下情况:ΗΔΦΣ客户端(Xλιεντ)读写文件需要根据位置信息建立数据流管道,数据块副本某个数据节点出现错误,需要申请新的数据节点,为数据块分配新的时间戳,使用新的时间戳建立新的数据流管道等等,错误处理会非常复杂,增加了读写处理的时延。
采取如下优化方法:本专利主张的类ΗΔΦΣ客户端会缓存文件元数据,打开文件就会获取包含的χηυνκ的信息,从其中一个副本读取到数据就不再读取下一个副本,写文件会进行文件ΙΟ拆分与跟踪,χηυνκ某个副本写入失败,直接封存(σεαλ),重新选择χηυνκ继续写入。
本专利中,针对如下情况:ΗΔΦΣ客户端(Xλιεντ)文件与目录操作直接访问需文件系统元数据服务器,同步等待文件系统元数据服务器处理完成,可以处理的请求数在一定时间内是有限的,由于对象存储Λιστ和Ρεναμε的代价比较大,导致基于对象存储的Ηαδοοπ文件系统在文件列举、文件重命名等操作性能较差。
采取如下优化方法:本专利主张的类ΗΔΦΣ客户端处理上层业务请求,生成创建文件系统操作任务,将任务存放到队列中,等待轮询线程处理,轮询线程轮询到该任务,调用处理函数对该任务进行处理,使用网络通信框架的异步方法向文件系统元数据服务器发送请求,请求返回后生成任务,将任务存放到队列中,等待轮询线程处理。
本专利中,针对如下情况:支持多个ΗΔΦΣ客户端(Xλιεντ)并行写,需要租约(Λεασε)机制保证对ΗΔΦΣ文件的互斥写,租约(Λεασε)管理器需要维护一个线程定期检查租约是否过期,租约检查线程也需要消耗系统资源。
采取如下优化方法:轮询线程会循环检查租约是否失效,会处理租约更新:判断是否需要更新租约,如果需要更新租约,向元数据服务器发送消息更新租约,以写权限打开文件就获取了在租约期限内的写权限,写文件的时候,租约是失效,文件状态置为文件未锁,会重新打开文件,继续写入。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,根据本发明的技术方案及其发明构思加以等同替换或改变,都应涵盖在本发明的保护范围之内。
Claims (10)
1.一种基于分布式存储系统的大数据存储访问方法,其特征在于,所述大数据存储访问方法包括如下步骤:
Σ1、类ΗΔΦΣ客户端实例初始化;
Σ2、创建文件系统;
Σ3、挂载文件系统;
Σ4、创建目录;
Σ5、创建文件;
Σ6、读写权限打开文件;
Σ7、写入文件数据;
Σ8、从文件中读取数据;
Σ9、关闭文件;
Σ10、删除文件;
Σ11、删除目录;
Σ12、卸载文件系统;
Σ13、删除文件系统。
2.根据权利要求1所述的一种基于分布式存储系统的大数据存储访问方法,其特征在于,所述步骤Σ2包括如下子步骤:
Σ21、业务线程中生成创建文件系统的任务,放入任务队列供轮询线程处理,阻塞等待任务处理结束;
Σ22、轮询线程轮询到该任务,对该任务进行处理,网使用网络通信异步方法向文件系统元数据服务器发送请求;
Σ23、请求返回后生成一个任务,将任务存放到类文件系统客队列中;
Σ24、轮询线程轮询到该任务,通知业务线程创建文件系统成功,创建文件系统流程结束;
Σ25、业务线程返回上层业务创建文件系统结果。
3.根据权利要求1所述的一种基于分布式存储系统的大数据存储访问方法,其特征在于,所述步骤Σ7还包括如下子步骤;
Σ71、检查客户端租约是否失效,文件是否未锁,如果文件锁没有丢失,进入步骤Σ72,如果失效或者文件锁丢失,进入步骤Σ75;
Σ72、获取本次写入涉及的χηυνκ,如果χηυνκ足够,进入步骤Σ73,如果χηυνκ不足,进入步骤Σ76;
Σ73、向χηυνκ的所有副本所在的数据存储节点发送消息写入数据,如果写入成功,进入步骤Σ74,如果写入失败,进入步骤Σ77;
Σ74、通知业务线程写入数据完成,写入数据流程结束;
Σ75、重新打开文件,检查文件长度,检查本次写入是否成功,如果成功,进入步骤Σ74,否则,进入步骤Σ71;
Σ76、申请χηυνκ,如果申请成功,进入步骤Σ72,如果返回文件被别的客户端锁住,进入步骤Σ74,如果返回文件锁丢失,进入步骤Σ75,如果返回其他的错误,没有超过3次,进入步骤Σ76,如果返回其他的错误,超过3次,进入步骤Σ74;
Σ77、封存(σεαλ)χηυνκ,如果返回成功,进入步骤Σ71,如果返回文件被别的客户端锁住,进入步骤Σ7,如果返回文件锁丢失,进入步骤Σ75,如果返回其他的错误,继续重试,进入步骤Σ77。
4.根据权利要求1所述的一种基于分布式存储系统的大数据存储访问方法,其特征在于,所述子步骤Σ22还包括进一步骤:
Σ221,客户端轮询线程轮询到该任务,调用处理函数对该任务进行处理,调用之前的绑定的处理函数,查询存储池是否存在,如果存在,则在该存储池中创建文件系统,使用网络通信框架的异步方法向文件系统元数据服务器发送请求,并且在此之前注册好回调函数,请求返回后调用该回调函数,生成一个任务,绑定的处理函数,将任务存放到类文件系统客户端的队列中。
5.根据权利要求4所述的一种基于分布式存储系统的大数据存储访问方法,其特征在于,所述客户端轮询线程轮询到该任务,在任务处理函数中,最终会激活创建文件系统上下文中的条件变量,创建文件系统流程结束,与创建文件系统类似,删除文件系统、挂载文件系统、卸载文件系统、创建文件、删除文件等大数据存储系统访问操作流程,也是生成任务存入任务队列,由轮询线程处理任务执行任务处理函数。
6.根据权利要求1所述的一种基于分布式存储系统的大数据存储访问方法,其特征在于,所述步骤Σ1、包括如下具体实施步骤:
Σ101、申请χλιεντιδ与λεασετιμε;
Σ102、循环检查任务队列,对任务进行处理;
Σ103、循环检查租约是否失效,如果失效,进入步骤Σ104;否则,进入步骤Σ105;
Σ104、将文件状态置为文件未锁;
Σ105、循环检查租约是否需要续约,如果需要续约,进入步骤Σ106,否则,进入步骤Σ102;
Σ106、对租约进行续约操作,进入步骤Σ102。
7.根据权利要求1所述的一种基于分布式存储系统的大数据存储访问方法,其特征在于,所述步骤Σ6还包括如下步骤:
Σ61,打开文件的时候,如果是包含了写权限,会从元数据服务器申请租约,打开成功即表示:成功获取了该文件在租约期限内的写权限,写文件的时候,开始就会检查客户端租约是否失效,如果已经失效,那么文件状态置为文件未锁;
写入的过程中,可能会丢失文件租约锁或者文件租约锁被别的客户端所占,并且,在写入的过程中,申请或者封存χηυνκ,皆会向文件系统元数据服务器发送请求,此时可能会返回文件租约锁被占、文件租约锁丢失,文件状态置为文件已经被锁、文件未锁,对于文件未锁的情况,会重新打开文件,打开之后会根据文件的长度,检查本次写入是否成功。
8.根据权利要求1所述的一种基于分布式存储系统的大数据存储访问方法,其特征在于,所述步骤Σ6还包括如下步骤:
Σ62,打开文件的时候,会从文件系统服务端获取该文件已经写入数据的χηυνκ的信息,打开文件的权限包含写权限,则预申请χηυνκ,读文件会根据偏移与长度确定具体读取哪些χηυνκ,每个χηυνκ存在多个强一致副本,逐个向副本所在的数据存储节点发送消息读取数据,一旦读取到数据就不再读取下一个副本。
9.根据权利要求8所述的一种基于分布式存储系统的大数据存储访问方法,其特征在于,所述步骤Σ62的进一步步骤包括:
Σ621,写文件会根据偏移与长度确定具体写哪些χηυνκ,χηυνκ不足会向后端存储集群申请χηυνκ,返回失败,会间隔一定时间重试四次,返回成功后,类ΗΔΦΣ客户端会将申请的χηυνκ信息发送给文件系统元数据服务器,返回失败,将重试三次。
10.根据权利要求1所述的一种基于分布式存储系统的大数据存储访问方法,其特征在于,所述步骤Σ62的再一步步骤包括:
Σ622,向χηυνκ的所有副本所在的数据存储节点发送消息写入数据,某个副本写入失败表示写入χηυνκ失败,封存(σεαλ)该χηυνκ:向后端存储集群发送封存(σεαλ)请求即可,无需关注是否成功,向文件系统元数据服务器发送封存(σεαλ)请求,返回失败后继续重试,直至成功,最后,再重新选择χηυνκ继续写入。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311722314.8A CN117851369A (zh) | 2023-12-14 | 2023-12-14 | 一种基于分布式存储系统的大数据存储访问方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311722314.8A CN117851369A (zh) | 2023-12-14 | 2023-12-14 | 一种基于分布式存储系统的大数据存储访问方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117851369A true CN117851369A (zh) | 2024-04-09 |
Family
ID=90537490
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311722314.8A Pending CN117851369A (zh) | 2023-12-14 | 2023-12-14 | 一种基于分布式存储系统的大数据存储访问方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117851369A (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104008152A (zh) * | 2014-05-21 | 2014-08-27 | 华南理工大学 | 支持海量数据访问的分布式文件系统的架构方法 |
US10740005B1 (en) * | 2015-09-29 | 2020-08-11 | EMC IP Holding Company LLC | Distributed file system deployment on a data storage system |
-
2023
- 2023-12-14 CN CN202311722314.8A patent/CN117851369A/zh active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104008152A (zh) * | 2014-05-21 | 2014-08-27 | 华南理工大学 | 支持海量数据访问的分布式文件系统的架构方法 |
US10740005B1 (en) * | 2015-09-29 | 2020-08-11 | EMC IP Holding Company LLC | Distributed file system deployment on a data storage system |
Non-Patent Citations (2)
Title |
---|
RAMYA PATTURAJAN等: "SecDedoop: Secure Deduplication with Access Control of Big Data in the HDFS/Hadoop Environment", 《BIG DATA》, 30 April 2020 (2020-04-30), pages 147 - 163 * |
潘松杜: "多数据中心间异地存储管理平台的设计与实现", 《中国优秀硕士学位论文全文数据库信息科技辑》, no. 3, 15 March 2017 (2017-03-15), pages 137 - 278 * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11061865B2 (en) | Block allocation for low latency file systems | |
JP7378870B2 (ja) | ファイルシステムデータアクセス方法およびファイルシステム | |
US10929428B1 (en) | Adaptive database replication for database copies | |
KR102025934B1 (ko) | 분산형 시스템에서의 범위들의 분할 및 이동 | |
US10545927B2 (en) | File system mode switching in a distributed storage service | |
EP3803618B1 (en) | Distributed transactions in cloud storage with hierarchical namespace | |
US10140312B2 (en) | Low latency distributed storage service | |
CA2923068C (en) | Method and system for metadata synchronization | |
US9558194B1 (en) | Scalable object store | |
WO2020263765A1 (en) | Orchestrator for orchestrating operations between a computing environment hosting virtual machines and storage environment | |
US11157455B2 (en) | Inofile management and access control list file handle parity | |
CN111078121A (zh) | 一种分布式存储系统数据迁移方法、系统、及相关组件 | |
CN101084481A (zh) | 在群集存储环境中执行并行数据迁移的方法 | |
US11797213B2 (en) | Freeing and utilizing unused inodes | |
US10852985B2 (en) | Persistent hole reservation | |
US11151162B2 (en) | Timestamp consistency for synchronous replication | |
US11409711B2 (en) | Barriers for dependent operations among sharded data stores | |
US11461192B1 (en) | Automatic recovery from detected data errors in database systems | |
CN110471906A (zh) | 数据库切换方法、装置及设备 | |
CN117851369A (zh) | 一种基于分布式存储系统的大数据存储访问方法 | |
Gu et al. | Sector and sphere: Towards simplified storage and processing of large scale distributed data | |
Cavage et al. | Bringing arbitrary compute to authoritative data | |
Aladyshev et al. | Expectations of the High Performance Computing Cluster File System Selection | |
US20170308542A1 (en) | File system configuration data storage | |
Gu et al. | Sector and Sphere: the design and implementation |
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 |