一种分布式文件系统中多客户端数据读写方法技术方案

技术编号:37353301 阅读:20 留言:0更新日期:2023-04-27 07:04
本发明专利技术涉及存储系统数据读写技术领域,提供一种分布式文件系统中多客户端数据读写方法,包括:系统中客户端以读写模式打开文件时,MDS为各客户端分配默认大小的范围锁;客户端在MDS分配的范围锁内进行缓存读写时判断客户端对应的读写模式;MDS汇总系统内读写文件的所有客户端对应的读写模式,根据汇总结果确定文件的读写模式;客户端根据确定的文件的读写模式对文件进行读写。根据本发明专利技术示例性实施例的分布式文件系统中多客户端数据读写方法,可以使不同客户端在不同偏移读写时可充分利用缓存,提升读写性能;通过识别多客户端IO模型,动态决定使用范围锁或直读直写模式,充分利用两种模式在不同场景下的优势,降低范围锁反复切换的开销。切换的开销。切换的开销。

【技术实现步骤摘要】
一种分布式文件系统中多客户端数据读写方法


[0001]本专利技术涉及存储系统数据读写
,尤其涉及一种分布式文件系统中多客户端数据读写方法。

技术介绍

[0002]POSIX语义对一个文件的并发读写有保序的要求,同理在分布式文件系统多个客户端并发读写时也参考同样要求。
[0003]Ceph文件系统是当前主流的分布式文件系统之一,该文件系统对该场景的实现方案如下:允许单个客户端读写时利用客户端缓存进行缓存读写,但识别到多个客户端并发读写时,则回收所有客户端的缓存读写能力,即退化成直读直写模式,以此来保证一致性及POSIX语义要求。
[0004]但是Ceph方案在多客户端同时读写场景中直读直写模式更多适用于小IO随机读写,但对于在单个文件不同偏移上进行大IO顺序读写的场景不太友好,不能充分利用客户端缓存提升性能。
[0005]因此,如何提供一种多客户端读写同一文件时仍能充分利用客户端缓存的方法,成为亟待解决的技术问题。

技术实现思路

[0006]有鉴于此,为了克服现有技术的不足,本专利技术提供一种分布式文件系统中多客户端数据读写方法。
[0007]一方面,本专利技术提供一种分布式文件系统中多客户端数据读写方法,包括:
[0008]步骤S1:系统中客户端以读写模式打开文件时,MDS为各客户端分配默认大小的范围锁;
[0009]步骤S2:客户端在MDS分配的范围锁内进行缓存读写时判断客户端对应的读写模式;
[0010]步骤S3:MDS汇总系统内读写文件的所有客户端对应的读写模式,根据汇总结果确定文件的读写模式;
[0011]步骤S4:客户端根据确定的文件的读写模式对文件进行读写。
[0012]进一步地,本专利技术分布式文件系统中多客户端数据读写方法的步骤S2包括:客户端在MDS分配的范围锁内进行缓存读写时,记录每次IO的偏移和长度,根据记录的IO的偏移和长度确定每次读写的位置,将每次读写的位置与上一次读写的位置进行比较,根据比较结果判断客户端对应的读写模式。
[0013]进一步地,本专利技术分布式文件系统中多客户端数据读写方法的步骤S2中,将每次读写的位置与上一次读写的位置进行比较,根据比较结果判断客户端对应的读写模式,包括:
[0014]当每次读写的位置与上一次读写的位置相同,将客户端对应的读写模式判定为顺
序读写;
[0015]当每次读写的位置与上一次读写的位置不同,将客户端对应的读写模式判定为随机读写。
[0016]进一步地,本专利技术分布式文件系统中多客户端数据读写方法的步骤S3中,根据汇总结果确定文件的读写模式,包括:
[0017]当系统内读写文件的所有客户端对应的读写模式都是顺序读写,将文件的读写模式判定为范围锁模式;
[0018]当系统内读写文件的任意客户端对应的读写模式为随机读写,将文件的读写模式判定为直读直写模式。
[0019]进一步地,本专利技术分布式文件系统中多客户端数据读写方法的步骤S4包括:
[0020]如果文件的读写模式为范围锁模式,客户端在读写所述文件时,将所述客户端的本地范围锁与已分配的范围锁进行匹配,当已分配的范围锁包含本地范围锁,对文件进行缓存读写;当已分配的范围锁不包含本地范围锁,向MDS发送新的范围锁的申请请求;
[0021]MDS收到客户端发送的申请请求后,对申请请求中的申请的新的范围锁与已经分配给其他客户端的范围锁进行比较,根据比较结果将新的范围锁分配至发送新的范围锁的申请请求的客户端。
[0022]进一步地,本专利技术分布式文件系统中多客户端数据读写方法的步骤S4中,对申请请求中的申请的新的范围锁与已经分配给其他客户端的范围锁进行比较,根据比较结果将新的范围锁分配至发送新的范围锁的申请请求的客户端,包括:
[0023]检查申请请求中的申请的新的范围锁与已经分配给其他客户端的范围锁是否存在交集;
[0024]当所述两种范围锁存在交集,判定范围锁冲突,MDS先回收已经分配给其他客户端的范围锁,再将新的范围锁分配至发送新的范围锁的申请请求的客户端;
[0025]当所述两种范围锁不存在交集,判定范围锁没有冲突,将新的范围锁分配至发送新的范围锁的申请请求的客户端。
[0026]进一步地,本专利技术分布式文件系统中多客户端数据读写方法的步骤S4包括:如果文件的读写模式为直读直写模式,MDS回收所有客户端的范围锁,客户端对文件进行直读直写。
[0027]另一方面,本专利技术提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被执行时,执行上述的方法。
[0028]最后,本专利技术还提供一种计算机设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述程序时实现所述方法的步骤。
[0029]本专利技术分布式文件系统中多客户端数据读写方法,具有以下有益效果:
[0030]1.本专利技术针对多客户端在单个文件不同偏移上进行大IO顺序读写的场景,引入范围锁机制,使不同客户端在不同偏移读写时可充分利用缓存,提升读写性能。
[0031]2.本专利技术通过识别多客户端IO模型,动态决定使用范围锁或直读直写模式,充分利用两种模式在不同场景下的优势,降低范围锁反复切换的开销。
附图说明
[0032]为了更清楚地说明本专利技术实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
[0033]图1为本专利技术第一实施例一种分布式文件系统中多客户端数据读写方法的流程图。
[0034]图2为本专利技术第三实施例一种分布式文件系统中多客户端数据读写方法中范围锁读写模式的流程图。
[0035]图3为本专利技术第三实施例一种分布式文件系统中多客户端数据读写方法中直读直写模式的流程图。
[0036]图4为本专利技术第四实施例一种分布式文件系统中多客户端数据读写方法的流程示意图。
[0037]图5为本专利技术第五实施例一种分布式文件系统中多客户端数据读写方法的流程示意图。
具体实施方式
[0038]下面结合附图对本专利技术实施例进行详细描述。
[0039]需说明的是,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合;并且,基于本公开中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本公开保护的范围。
[0040]需要说明的是,下文描述在所附权利要求书的范围内的实施例的各种方面。应显而易见,本文中所描述的方面可体现于广泛多种形式中,且本文中所描述的任何特定结构及/或功能仅为说明性的。基于本公开,所属领域的技术人员应了解,本文中所描述的一个方面可与任何其它方面独立地实施,且可以各种方式组合这些方面中的两者或两者以上。举例来说,可使用本文中所阐述的任何数目个方面来实本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种分布式文件系统中多客户端数据读写方法,其特征在于,所述方法包括:步骤S1:系统中客户端以读写模式打开文件时,MDS为各客户端分配默认大小的范围锁;步骤S2:客户端在MDS分配的范围锁内进行缓存读写时判断客户端对应的读写模式;步骤S3:MDS汇总系统内读写文件的所有客户端对应的读写模式,根据汇总结果确定文件的读写模式;步骤S4:客户端根据确定的文件的读写模式对文件进行读写。2.根据权利要求1所述的分布式文件系统中多客户端数据读写方法,其特征在于,步骤S2包括:客户端在MDS分配的范围锁内进行缓存读写时,记录每次IO的偏移和长度,根据记录的IO的偏移和长度确定每次读写的位置,将每次读写的位置与上一次读写的位置进行比较,根据比较结果判断客户端对应的读写模式。3.根据权利要求2所述的分布式文件系统中多客户端数据读写方法,其特征在于,步骤S2中,将每次读写的位置与上一次读写的位置进行比较,根据比较结果判断客户端对应的读写模式,包括:当每次读写的位置与上一次读写的位置相同,将客户端对应的读写模式判定为顺序读写;当每次读写的位置与上一次读写的位置不同,将客户端对应的读写模式判定为随机读写。4.根据权利要求1所述的分布式文件系统中多客户端数据读写方法,其特征在于,步骤S3中,根据汇总结果确定文件的读写模式,包括:当系统内读写文件的所有客户端对应的读写模式都是顺序读写,将文件的读写模式判定为范围锁模式;当系统内读写文件的任意客户端对应的读写模式为随机读写,将文件的读写模式判定为直读直写模式。5.根据权利要求1所述的分布式文件系统中多客户端数据读写方法,其特征在于,步骤S4包括:如果文件的读写模式为范围锁模式,客户端在读写所述文件时,将所述客户...

【专利技术属性】
技术研发人员:张思耀刘源
申请(专利权)人:中电云数智科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1