分布式存储方法和装置、计算设备和存储介质制造方法及图纸

技术编号:30053254 阅读:15 留言:0更新日期:2021-09-15 10:56
本发明专利技术公开了一种分布式存储方法及装置、计算设备及存储介质,该分布式存储方法应用于包括若干存储节点的分布式集群中,包括:获取IO请求的起始地址和长度;基于IO请求的起始地址查找zookeeper统一视图,并将获取的ID信息发送至对应的目标存储节点,所述ID信息包括所述IO请求起始地址所在的存储节点ID以及对应的磁盘ID;目标存储节点根据所述IO请求的起始地址和长度、以及所述ID信息,执行IO请求。这样,通过利用zookeeper记录分布式存储节点的全局磁盘参数,在发生IO请求时,可以利用IO请求的起始地址查找zookeeper统一视图,从而根据获取的ID信息直接执行IO请求,为IO访问绕过内核和文件系统提供了可能,缩短了IO路径长度和响应时长。和响应时长。和响应时长。

【技术实现步骤摘要】
分布式存储方法和装置、计算设备和存储介质


[0001]本专利技术属于数据存储
,具体涉及一种分布式存储方法和装置、以及应用该分布式存储方法的计算设备和机器可读存储介质。

技术介绍

[0002]目前分布式存储应用越来越多,目的是通过高可扩展性来提供大容量和高性能。当前的分布式存储软件大部分集中于ceph的软件开发和修改中,ceph虽然加入了spdk对nvme的支持,但是依然是需要通过文件系统和内核的路径进行IO的访问,这无形增加了IO路径的长度,也增加了IO的响应时长。
[0003]公开于该
技术介绍
部分的信息仅仅旨在增加对本专利技术的总体背景的理解,而不应当被视为承认或以任何形式暗示该信息构成已为本领域一般技术人员所公知的现有技术。

技术实现思路

[0004]本申请的目的在于提供一种分布式存储方法,其用于解决现有技术分布式存储中IO的访问路径较长,导致IO响应时长较长的问题。
[0005]为实现上述目的,本申请提供了一种分布式存储方法,应用于包括若干存储节点的分布式集群中,所述方法包括:
[0006]获取IO请求的起始地址和长度;
[0007]基于所述IO请求的起始地址查找zookeeper统一视图,并将获取的ID信息发送至对应的目标存储节点,所述ID信息包括所述IO请求起始地址所在的存储节点ID以及对应的磁盘ID;
[0008]所述目标存储节点根据所述IO请求的起始地址和长度、以及所述ID信息,执行IO请求。
[0009]一实施例中,所述目标存储节点通过spdk进程调用spdk用户层驱动模块执行IO请求。
[0010]一实施例中,所述方法还包括:
[0011]在执行完IO请求后,将数据缓存在本地。
[0012]一实施例中,所述方法还包括:
[0013]在所述IO请求为读请求时,将本地缓存数据的地址和状态区数据信息返回给用户;和/或,
[0014]在所述IO请求为写请求时,将状态区数据信息和写入数据长度返回给用户。
[0015]一实施例中,所述zookeeper统一视图配置在所述分布式集群的存储节点中和/或专用节点中。
[0016]本申请还提供一种分布式存储装置,应用于包括若干个存储节点的分布式集群中,所述分布式存储装置包括:
[0017]通信分析模块,用于获取IO请求的起始地址和长度;
[0018]zookeeper模块,用于基于所述IO请求的起始地址查找zookeeper统一视图,并将获取的ID信息发送至对应的目标存储节点,所述ID信息包括所述IO请求起始地址所在的存储节点ID以及对应的磁盘ID;
[0019]spdk模块,用于供目标存储节点根据所述IO请求的起始地址和长度、以及所述ID信息,执行IO请求。
[0020]一实施例中,所述目标存储节点通过所述spdk模块调用spdk用户层驱动模块执行IO请求。
[0021]一实施例中,所述目标存储节点在执行完IO请求后,将数据缓存在本地。
[0022]一实施例中,所述通信分析模块还用于在所述IO请求为读请求时,将本地缓存数据的地址和状态区数据信息返回给用户;和/或,
[0023]在所述IO请求为写请求时,将状态区数据信息和写入数据长度返回给用户。
[0024]一实施例中,所述zookeeper统一视图配置在所述分布式集群的存储节点中和/或专用节点中。
[0025]本申请还提供一种计算设备,包括:
[0026]至少一个处理器;以及
[0027]存储器,所述存储器存储指令,当所述指令被所述至少一个处理器执行时,使得所述至少一个处理器执行如上所述的分布式存储方法。
[0028]本申请还提供一种机器可读存储介质,其存储有可执行指令,所述指令当被执行时使得所述机器执行如上所述的分布式存储方法。
[0029]与现有技术相比,根据本申请的分布式存储方法,通过利用zookeeper记录分布式存储节点的全局磁盘参数,在发生IO请求时,可以利用IO请求的起始地址查找zookeeper统一视图,从而根据获取的ID信息直接执行IO请求,为IO访问绕过内核和文件系统提供了可能,缩短了IO路径长度和响应时长。
附图说明
[0030]图1是根据本申请一实施方式分布式存储方法的流程图;
[0031]图2是根据本申请一实施方式分布式存储方法所应用的分布式集群的架构图;
[0032]图3是根据本申请一实施方式分布式存储方法的原理示意图;
[0033]图4是根据本申请一实施方式分布式存储装置的模块图;
[0034]图5是根据本申请一实施方式计算设备的硬件结构图。
具体实施方式
[0035]以下将结合附图所示的各实施方式对本专利技术进行详细描述。但该等实施方式并不限制本专利技术,本领域的普通技术人员根据该等实施方式所做出的结构、方法、或功能上的变换均包含在本专利技术的保护范围内。
[0036]参图1,介绍本申请分布式存储方法的一具体实施方式。在本实施方式中,该方法包括以下步骤:
[0037]S11、获取IO请求的起始地址和长度。
[0038]配合参照图2和图3,本实施方式提供的分布式存储方法可以应用于分布式集群
中,在一个典型的分布式集群中,包括若干个可以彼此通信的存储节点。
[0039]当用户发送IO请求时,可以例如是分布式集群中距离该请求最近的一个存储节点接收该IO请求,并通过通信分析进程分析该IO请求的起始地址和长度。
[0040]一实施例中,这里的IO请求可以是读请求或者写请求。
[0041]S12、基于所述IO请求的起始地址查找zookeeper统一视图,并将获取的ID信息发送至对应的目标存储节点。
[0042]zookeeper统一视图的查找可以是通过zookeeper进程实现。zookeeper是一个分布式的用于协调的服务,分布式集群可以用zookeeper实现统一命名服务、配置管理、分布式锁、集群管理等功能。
[0043]这里的ID信息包括IO请求起始地址所在的存储节点ID以及对应的磁盘ID。通过使用zookeeper记录分布式存储节点的这些全局性磁盘参数,可以方便地根据当前的IO请求进行对应目标存储节点的查找。
[0044]在一些实施例中,zookeeper进程可以是配置在分布式集群中的存储节点中,例如,可以选定分布式集群中系统性能较强的节点进行配置,配置zookeeper进程的存储节点的数量可以为3个或5个。也即,在这样的实施例中,zookeeper统一视图被配置在分布式集群的存储节点中。
[0045]在一些实施例中,zookeeper进程也可以是不基于分布式集群中的存储节点进行配置,例如,可以设置合适数量的专用节点进行zookeeper进程的配置。也即,在这样的实施例中,zookeeper统一视图被配置在专用节点中。
[0046]S13、目标存储节点根据本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种分布式存储方法,应用于包括若干存储节点的分布式集群中,其特征在于,所述方法包括:获取IO请求的起始地址和长度;基于所述IO请求的起始地址查找zookeeper统一视图,并将获取的ID信息发送至对应的目标存储节点,所述ID信息包括所述IO请求起始地址所在的存储节点ID以及对应的磁盘ID;所述目标存储节点根据所述IO请求的起始地址和长度、以及所述ID信息,执行IO请求。2.如权利要求1所述的分布式存储方法,其特征在于,所述目标存储节点通过spdk进程调用spdk用户层驱动模块执行IO请求,并在执行完IO请求后,将数据缓存在本地。3.如权利要求2所述的分布式存储方法,其特征在于,所述分布式存储方法还包括:在所述IO请求为读请求时,将本地缓存数据的地址和状态区数据信息返回给用户;和/或,在所述IO请求为写请求时,将状态区数据信息和写入数据长度返回给用户。4.如权利要求1所述的分布式存储方法,其特征在于,所述zookeeper统一视图配置在所述分布式集群的存储节点中和/或专用节点中。5.一种分布式存储装置,应用于包括若干个存储节点的分布式集群中,其特征在于,所述分布式存储装置包括:通信分析模块,用于获取IO请求的起始地址和长度;zookeeper模块,用于基于所述IO请求的起...

【专利技术属性】
技术研发人员:王刚
申请(专利权)人:华云数据控股集团有限公司
类型:发明
国别省市:

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

1