CN116521091B - 数据读取方法、装置、设备、数据传输系统及存储介质 - Google Patents

数据读取方法、装置、设备、数据传输系统及存储介质 Download PDF

Info

Publication number
CN116521091B
CN116521091B CN202310773072.9A CN202310773072A CN116521091B CN 116521091 B CN116521091 B CN 116521091B CN 202310773072 A CN202310773072 A CN 202310773072A CN 116521091 B CN116521091 B CN 116521091B
Authority
CN
China
Prior art keywords
data
read
storage device
object storage
target
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
Application number
CN202310773072.9A
Other languages
English (en)
Other versions
CN116521091A (zh
Inventor
付尧
侯斌
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Suzhou Inspur Intelligent Technology Co Ltd
Original Assignee
Suzhou Inspur Intelligent Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Suzhou Inspur Intelligent Technology Co Ltd filed Critical Suzhou Inspur Intelligent Technology Co Ltd
Priority to CN202310773072.9A priority Critical patent/CN116521091B/zh
Publication of CN116521091A publication Critical patent/CN116521091A/zh
Application granted granted Critical
Publication of CN116521091B publication Critical patent/CN116521091B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy efficient computing, e.g. low power processors, power management or thermal management

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)

Abstract

本发明涉及存储技术领域,具体公开了一种数据读取方法、装置、设备、数据传输系统及存储介质,由分布式存储系统的客户端设备在需要读数据时,根据待读取数据所属的目标对象数据在分布式存储系统对应的目标存储池的纠删配置参数,计算得到待读取数据所在目标对象存储设备的信息,继而生成对该目标对象存储设备的第一读请求,将第一读请求发送至该目标对象存储设备,以使该目标对象存储设备在本地存储中获取待读取数据反馈给客户端设备,使得分布式存储系统纠删场景下的读数据操作非必须经过主对象存储设备中转,精简了读数据操作中的读请求传输路径和返回封装数据的传输路径,提高了读数据效率,进而提升了分布式存储系统的读性能。

Description

数据读取方法、装置、设备、数据传输系统及存储介质
技术领域
本发明涉及存储技术领域,特别是涉及一种数据读取方法、装置、设备、数据传输系统及存储介质。
背景技术
在分布式存储系统中,一般使用副本或者纠删数据冗余机制使得数据更加安全可靠。在副本场景下,每个副本都是一份完整的数据,对外可以提供完整的读写服务。在纠删场景下,分布式存储系统使用放置组(Placement Groups,PG)管理对象,一个放置组通常会选出一个主对象存储设备(Object Storage Device,OSD)与客户端设备进行数据输入输出(Input/Output,IO)交互,响应客户端设备的读写请求。在纠删场景下,客户端设备不论向分布式存储系统发送写数据请求还是读数据请求,均需要经过主对象存储设备进行转发。
具体来说,在数据的读取过程中,由主对象存储设备接收客户端的读请求,由主对象存储设备计算出待读取数据所在的对象存储设备后,从本地或从对象存储设备拉取数据进行封装后返回给客户端设备。如果待读取数据位于从对象存储设备,则读请求的传输路径和返回封装数据的传输路径均需要经过主对象存储设备,使得数据与控制消息均需要在客户端设备与主对象存储设备之间、主对象存储设备和从对象存储设备之间转发,延长的数据传输路径导致主对象存储设备成为影响分布式存储系统读性能的瓶颈。
如何提升分布式存储系统的读性能,是本领域技术人员需要解决的技术问题。
发明内容
本发明的目的是提供一种数据读取方法、装置、设备、数据传输系统及存储介质,用于提升分布式存储系统的读性能。
为解决上述技术问题,本发明提供一种数据读取方法,应用于分布式存储系统的客户端设备,包括:
根据待读取数据所属的目标对象数据在所述分布式存储系统中所在的目标存储池的纠删配置参数,计算得到所述待读取数据所在的目标对象存储设备的信息;
生成对所述目标对象存储设备的第一读请求;
将所述第一读请求发送至所述目标对象存储设备,以使所述目标对象存储设备根据所述第一读请求获取本地存储的所述待读取数据并将所述待读取数据反馈给所述客户端设备。
在一些实施中,所述根据待读取数据所属的目标对象数据在所述分布式存储系统中所在的目标存储池的纠删配置参数,计算得到所述待读取数据所在的目标对象存储设备的信息,包括:
根据所述目标对象数据与放置组的第一映射关系,确定所述待读取数据所在的目标放置组的信息;
根据所述目标放置组的信息确定所述目标放置组对应的对象存储设备列表;
根据所述待读取数据在所述目标对象数据中的位置信息以及所述纠删配置参数,计算得到所述待读取数据所在的目标纠删单元的信息;
根据所述目标纠删单元的信息和所述对象存储设备列表,确定所述目标对象存储设备的信息。
在一些实施中,所述根据所述目标对象数据与放置组的第一映射关系,确定所述待读取数据所在的目标放置组的信息,包括:
应用可扩展哈希下的受控复制算法根据所述第一映射关系,计算得到所述目标放置组的信息。
在一些实施中,所述根据所述目标对象数据与放置组的第一映射关系,确定所述待读取数据所在的目标放置组的信息,包括:
根据所述目标对象数据的标识信息以及写入所述目标对象数据时接收所述分布式存储系统发送的所述第一映射关系,确定所述目标放置组的信息。
在一些实施中,所述根据所述目标放置组的信息确定所述目标放置组对应的对象存储设备列表,包括:
应用可扩展哈希下的受控复制算法确定与所述目标放置组对应的所述对象存储设备列表。
在一些实施中,所述纠删配置参数包括数据块个数和纠删条带长度;
所述根据所述待读取数据在所述目标对象数据中的位置信息以及所述纠删配置参数,计算得到所述待读取数据所在的目标纠删单元的信息,包括:
以所述纠删条带长度除以所述数据块个数,得到所述目标存储池的纠删单元长度;
以所述待读取数据在所述目标对象数据中的偏移量除以所述纠删单元长度再对所述数据块个数取余,得到所述目标纠删单元的序号。
在一些实施中,所述根据所述目标纠删单元的信息和所述对象存储设备列表,确定所述目标对象存储设备的信息,包括:
根据所述目标纠删单元的序号在所述对象存储设备列表中查询对应序号的对象存储设备为所述目标对象存储设备,得到所述目标对象存储设备的序号。
在一些实施中,还包括:
在将所述第一读请求发送至所述目标对象存储设备之前,判断所述目标对象存储设备的数量是否超出精简传输数量阈值;
如果是,则将所述第一读请求发送至所述目标存储池中对应的主对象存储设备,以使所述主对象存储设备确定所述目标对象存储设备后,将所述第一读请求转发至所述目标对象存储设备以获取所述待读取数据并经过所述主对象存储设备将所述待读取数据反馈给所述客户端设备;
如果否,则进入所述将所述第一读请求发送至所述目标对象存储设备,以使所述目标对象存储设备根据所述第一读请求获取本地存储的所述待读取数据并将所述待读取数据反馈给所述客户端设备的步骤。
在一些实施中,所述判断所述目标对象存储设备的数量是否超出精简传输数量阈值,包括:
根据所述纠删配置参数,计算得到所述目标存储池的纠删单元长度;
根据所述纠删单元长度,将所述待读取数据在所述目标对象数据中的位置信息向下对齐到纠删单元,得到所述待读取数据所在的目标纠删单元的个数;
若所述目标纠删单元的个数超出所述精简传输数量阈值,则确定所述目标对象存储设备的数量超出所述精简传输数量阈值;
若所述目标纠删单元的个数不超出所述精简传输数量阈值,则确定所述目标对象存储设备的数量不超出所述精简传输数量阈值。
在一些实施中,所述根据所述纠删单元长度,将所述待读取数据在所述目标对象数据中的位置信息向下对齐到纠删单元,得到所述待读取数据所在的目标纠删单元的个数,包括:
将所述待读取数据在所述目标对象数据中的偏移量向下对齐到纠删单元,得到所述待读取数据的首端所在的第一目标纠删单元的信息;
将所述待读取数据在所述目标对象数据中的偏移量与所述待读取数据的数据长度之和向下对齐到纠删单元,得到所述待读取数据的末端所在的第二目标纠删单元的信息;
以所述第一目标纠删单元到所述第二目标纠删单元所包含的纠删单元数量为所述目标纠删单元的个数。
在一些实施中,还包括:
在生成所述第一读请求时,为所述第一读请求添加精简传输路径标志;
如果所述目标对象存储设备的数量超出所述精简传输数量阈值,则剔除所述第一读请求中的所述精简传输路径标志后再进入所述将所述第一读请求发送至所述目标存储池中对应的主对象存储设备的步骤。
在一些实施中,还包括:
如果所述目标对象存储设备的数量不超出所述精简传输数量阈值,则为所述第一读请求添加精简传输路径标志。
在一些实施中,还包括:
根据所述客户端设备与所述分布式存储系统之间的传输性能测试结果,更新所述精简传输数量阈值。
在一些实施中,还包括:
在将所述第一读请求发送至所述目标对象存储设备之前,判断所述待读取数据是否均位于同一所述目标对象存储设备内;
如果是,则进入所述将所述第一读请求发送至所述目标对象存储设备,以使所述目标对象存储设备根据所述第一读请求获取本地存储的所述待读取数据并将所述待读取数据反馈给所述客户端设备的步骤;
如果否,则将所述第一读请求发送至所述目标存储池中对应的主对象存储设备,以使所述主对象存储设备确定所述目标对象存储设备后,将所述第一读请求转发至所述目标对象存储设备以获取所述待读取数据并经过所述主对象存储设备将所述待读取数据反馈给所述客户端设备。
在一些实施中,所述判断所述待读取数据是否均位于同一所述目标对象存储设备内,包括:
根据所述纠删配置参数,计算得到所述目标存储池的纠删单元长度;
将所述待读取数据在所述目标对象数据中的偏移量向下对齐到纠删单元,得到所述待读取数据的首端所在的第一目标纠删单元的信息;
将所述待读取数据在所述目标对象数据中的偏移量与所述待读取数据的数据长度之和向下对齐到纠删单元,得到所述待读取数据的末端所在的第二目标纠删单元的信息;
若所述第一目标纠删单元和所述第二目标纠删单元为同一纠删单元,则确定所述待读取数据均位于同一所述目标对象存储设备内;
若所述第一目标纠删单元和所述第二目标纠删单元不为同一纠删单元,则确定所述待读取数据未均位于同一所述目标对象存储设备内。
在一些实施中,所述根据待读取数据所属的目标对象数据在所述分布式存储系统中所在的目标存储池的纠删配置参数,计算得到所述待读取数据所在的目标对象存储设备的信息,包括:
获取所述分布式存储系统的对象存储设备地图中所述目标存储池的所述纠删配置参数;
根据所述纠删配置参数计算得到所述目标对象存储设备的信息。
在一些实施中,所述获取所述分布式存储系统的对象存储设备地图中所述目标存储池的所述纠删配置参数,包括:
响应对所述待读取数据的第一读命令,访问所述对象存储设备地图获取所述目标存储池的所述纠删配置参数。
在一些实施中,所述获取所述分布式存储系统的对象存储设备地图中所述目标存储池的所述纠删配置参数,包括:
获取随着所述分布式存储系统的存储池信息更新而同步到所述客户端设备存储的所述对象存储设备地图中所述目标存储池的所述纠删配置参数。
为解决上述技术问题,本发明还提供一种数据读取方法,应用于分布式存储系统中的目标对象存储设备,包括:
接收所述分布式存储系统的客户端设备发送的对待读取数据的第一读请求;
根据所述第一读请求确定所述待读取数据在本地存储中的位置;
自本地存储获取所述待读取数据,并将所述待读取数据反馈给所述客户端设备;
其中,所述第一读请求为所述客户端设备根据所述待读取数据所属的目标对象数据在所述分布式存储系统中所在的目标存储池的纠删配置参数,计算得到所述待读取数据所在的所述目标对象存储设备的信息后生成的对所述目标对象存储设备的所述第一读请求。
为解决上述技术问题,本发明还提供一种数据读取方法,包括:
分布式存储系统中的主对象存储设备收到所述分布式存储系统的客户端设备发送的第二读请求后,判断本地是否存储有所述第二读请求所需的第一待读取数据;
如果是,则所述主对象存储设备自本地存储获取所述第一待读取数据,并将所述第一待读取数据反馈给所述客户端设备;
如果否,则所述主对象存储设备将所述第二读请求发送至对应的从对象存储设备,并将所述从对象存储设备反馈的所述第一待读取数据发送至所述客户端设备;
所述从对象存储设备收到第三读请求后,自本地存储获取所述第三读请求所需的第二待读取数据,并将所述第二待读取数据发送至所述第三读请求的发送方设备。
为解决上述技术问题,本发明还提供一种数据传输系统,包括:客户端设备以及与所述客户端设备通信连接的分布式存储系统;
其中,所述客户端设备用于根据待读取数据所属的目标对象数据在所述分布式存储系统中所在的目标存储池的纠删配置参数,计算得到所述待读取数据所在的目标对象存储设备的信息;生成对所述目标对象存储设备的第一读请求;将所述第一读请求发送至所述目标对象存储设备,以使所述目标对象存储设备根据所述第一读请求获取本地存储的所述待读取数据并将所述待读取数据反馈给所述客户端设备。
在一些实施中,所述分布式存储系统包括设于所述目标存储池的主对象存储设备和从对象存储设备;
其中,所述主对象存储设备用于收到第二读请求后,判断本地是否存储有所述第二读请求所需的第一待读取数据;
如果是,则所述主对象存储设备自本地存储获取所述第一待读取数据,并将所述第一待读取数据反馈给所述客户端设备;
如果否,则所述主对象存储设备将所述第二读请求发送至对应的所述从对象存储设备,并将所述从对象存储设备反馈的所述第一待读取数据发送至所述客户端设备;
所述从对象存储设备用于收到第三读请求后,自本地存储获取所述第三读请求所需的第二待读取数据,并将所述第二待读取数据发送至所述第三读请求的发送方设备。
为解决上述技术问题,本发明还提供一种数据读取装置,应用于分布式存储系统的客户端设备,包括:
第一计算单元,用于根据待读取数据所属的目标对象数据在所述分布式存储系统中所在的目标存储池的纠删配置参数,计算得到所述待读取数据所在的目标对象存储设备的信息;
第一生成单元,用于生成对所述目标对象存储设备的第一读请求;
第一发送单元,用于将所述第一读请求发送至所述目标对象存储设备,以使所述目标对象存储设备根据所述第一读请求获取本地存储的所述待读取数据并将所述待读取数据反馈给所述客户端设备。
为解决上述技术问题,本发明还提供一种数据读取装置,应用于分布式存储系统中的目标对象存储设备,包括:
第一接收单元,用于接收所述分布式存储系统的客户端设备发送的对待读取数据的第一读请求;
第一查询单元,用于根据所述第一读请求确定所述待读取数据在本地存储中的位置;
第一获取单元,用于自本地存储获取所述待读取数据,并将所述待读取数据反馈给所述客户端设备;
其中,所述第一读请求为所述客户端设备根据所述待读取数据所属的目标对象数据在所述分布式存储系统中所在的目标存储池的纠删配置参数,计算得到所述待读取数据所在的所述目标对象存储设备的信息后生成的对所述目标对象存储设备的所述第一读请求。
为解决上述技术问题,本发明还提供一种数据读取设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序,所述计算机程序被所述处理器执行时实现如上述任意一项所述数据读取方法的步骤。
为解决上述技术问题,本发明还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如上述任意一项所述数据读取方法的步骤。
本发明所提供的数据读取方法,由分布式存储系统的客户端设备在需要读数据时,根据待读取数据所属的目标对象数据在分布式存储系统对应的目标存储池的纠删配置参数,计算得到待读取数据所在目标对象存储设备的信息,继而生成对该目标对象存储设备的第一读请求,将第一读请求发送至该目标对象存储设备,以使该目标对象存储设备在本地存储中获取待读取数据反馈给客户端设备,使得分布式存储系统纠删场景下的读数据操作非必须经过主对象存储设备中转,精简了读数据操作中的读请求传输路径和返回封装数据的传输路径,提高了读数据效率,进而提升了分布式存储系统的读性能。
本发明还提供一种数据读取装置、设备、数据传输系统及存储介质,具有上述有益效果,在此不再赘述。
附图说明
为了更清楚的说明本发明实施例或现有技术的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种数据传输系统的架构图;
图2为本发明实施例提供的一种数据读取方法的流程图;
图3为本发明实施例提供的一种图2中S201的具体实施方式的流程图;
图4为本发明实施例提供的一种纠删数据冗余机制下的数据分布示意图;
图5为本发明实施例提供的另一种数据读取方法的流程图;
图6为本发明实施例提供的一种数据读取装置的结构示意图;
图7为本发明实施例提供的另一种数据读取装置的结构示意图;
图8为本发明实施例提供的一种数据读取设备的结构示意图。
具体实施方式
本发明的核心是提供一种数据读取方法、装置、设备、数据传输系统及存储介质,用于提升分布式存储系统的读性能。
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
下面对本发明实施例一进行说明。
图1为本发明实施例提供的一种数据传输系统的架构图。
为便于理解,首先对本发明适用的系统架构进行介绍。如图1所示,本发明实施例提供的具体实施方式可以适用于由客户端设备101以及与客户端设备101通信连接的分布式存储系统102构成的数据传输系统;
其中,客户端设备101用于根据待读取数据所属的目标对象数据在分布式存储系统102中所在的目标存储池的纠删配置参数,计算得到待读取数据所在的目标对象存储设备的信息;生成对目标对象存储设备的第一读请求;将第一读请求发送至目标对象存储设备,以使目标对象存储设备根据第一读请求获取本地存储的待读取数据并将待读取数据反馈给客户端设备101。
分布式存储系统102的纠删数据冗余机制,是将客户端设备101写入的对象数据分为K份原始数据,通过这K份原始数据计算出M份校验数据。将这个K+M份数据分别保存在不同的设备或者节点中,并可以通过K+M份中的任意K份数据块还原出写入的完整数据。在分布式存储系统102中,使用放置组(Placement Groups,PG)管理对象,放置组通过算法计算映射到对象存储设备(Object Storage Device,OSD)中去存储。一个放置组(PlacementGroups,PG)通常会选出一个主对象存储设备103与客户端进行数据输入输出(Input/Output,IO)交互,响应客户端的读写命令。在分布式存储系统102内部,由主对象存储设备103将客户端设备101写入或者读取的数据,在集群内部进行写入或者获取。
针对相关技术中基于客户端设备101读取分布式存储系统102中的对象存储设备上的数据时需要由该对象存储设备所在的存储池中的主对象存储设备103转发数据与控制消息导致读数据的传输路径较长、影响读性能的问题,在本发明实施例提供的数据传输方案中,由客户端设备101来直接与待读取数据所在的目标对象存储设备进行对接,减少主对象存储设备103的参与,从而在目标对象存储设备为从对象存储设备104时可以有效缩短读数据传输路径。
为使客户端设备101能够知晓目标对象存储设备的信息以便直接与目标对象存储设备通信,由客户端来根据分布式存储系统102的纠删数据冗余机制来计算得到待读取数据在此前写入分布式存储系统102时将具体被写入哪个对象存储设备,将该对象存储设备作为目标对象存储设备。在客户端设备101生成第一读请求时,增加根据待读取数据所属的目标对象数据在分布式存储系统102中所在的目标存储池的纠删配置参数,计算得到待读取数据所在的目标对象存储设备的信息的步骤。
分布式存储系统102则需要将存储有客户端设备101写入的对象数据的各纠删存储池的纠删配置参数提供给客户端设备101,以供客户端设备101自行进行纠删计算。
应用本发明实施例提供的数据传输系统,由分布式存储系统102的客户端设备101在需要读数据时,根据待读取数据所属的目标对象数据在分布式存储系统102对应的目标存储池的纠删配置参数,计算得到待读取数据所在目标对象存储设备的信息,继而生成对该目标对象存储设备的第一读请求,将第一读请求直接发送至该目标对象存储设备,以使该目标对象存储设备在本地存储中获取待读取数据反馈给客户端设备101,使得分布式存储系统102纠删场景下的读数据操作非必须经过主对象存储设备103中转,精简了读数据操作中的读请求传输路径和返回封装数据的传输路径,提高了读数据效率,进而提升了分布式存储系统102的读性能。
在实际应用中,由于纠删场景下,对象数据在写入分布式存储系统102时会被写入多个对象存储设备,在读取数据时,待读取数据也有可能位于多个对象存储设备。若目标对象存储设备为多个,由客户端设备101直接访问目标对象存储设备进行读数据的性能可能不如由主对象存储设备103进行转发。故在本发明实施例中,客户端设备101可以根据性能需求将读请求直接发送至目标对象存储设备或经过主对象存储设备103转发至目标对象存储设备。则针对分布式存储系统102的目标存储池中的主对象存储设备103和从对象存储设备104,主对象存储设备103可以用于收到第二读请求后,判断本地是否存储有第二读请求所需的第一待读取数据;如果是,则主对象存储设备103自本地存储获取第一待读取数据,并将第一待读取数据反馈给客户端设备101;如果否,则主对象存储设备103将第二读请求发送至对应的从对象存储设备104,并将从对象存储设备104反馈的第一待读取数据发送至客户端设备101。从对象存储设备104可以用于收到第三读请求后,自本地存储获取第三读请求所需的第二待读取数据,并将第二待读取数据发送至第三读请求的发送方设备。其中,主对象存储设备103接收到的第二读请求来自于客户端设备101,第二读请求中可以仅携带第一待读取数据在对象数据中的位置信息,也可以携带目标对象存储设备的信息,由主对象存储设备103确定目标对象存储设备的信息后进行第二读请求的处理,如本地为目标对象存储设备则自本地获取第一待读取数据,如本地不是目标对象存储设备,再定位对应的从对象存储设备104并转发第二读请求。从对象存储设备104接收到的第三读请求可以是客户端设备101直接发送的也可以是经过主对象存储设备103转发的,由于从对象存储设备104无需进行请求转发,故从对象存储设备104在接收到第三读请求后,即确定本地为目标对象存储设备,直接从本地获取第二待读取数据反馈给客户端设备101或经过主对象存储设备103转发给客户端设备101。
在上述架构的基础上,下面结合附图对本发明实施例提供的数据读取方法进行说明。
下面对本发明实施例二进行说明。
图2为本发明实施例提供的一种数据读取方法的流程图。
如图2所示,应用于分布式存储系统的客户端设备,本发明实施例提供的数据读取方法包括:
S201:根据待读取数据所属的目标对象数据在分布式存储系统中所在的目标存储池的纠删配置参数,计算得到待读取数据所在的目标对象存储设备的信息。
S202:生成对目标对象存储设备的第一读请求。
S203:将第一读请求发送至目标对象存储设备,以使目标对象存储设备根据第一读请求获取本地存储的待读取数据并将待读取数据反馈给客户端设备。
在具体实施中,对于S201来说,客户端设备进行纠删计算之前需要先获取目标存储池的纠删配置参数。此时需要先确定目标存储池的信息,再获取目标存储池的纠删配置参数。
在一些实施中,S201根据待读取数据所属的目标对象数据在分布式存储系统中所在的目标存储池的纠删配置参数,计算得到待读取数据所在的目标对象存储设备的信息,可以包括:获取分布式存储系统的对象存储设备地图(OSD Map)中目标存储池的纠删配置参数;根据纠删配置参数计算得到目标对象存储设备的信息。对象存储设备地图通常包含创建和上次修改映射时的集群的文件空间标识(file space ID,FSID)、存储池列表、副本大小、放置组编号、操作系统及其状态列表。通过执行查看分布式存储系统对象存储信息命令可以查看分布式存储系统的对象存储设备地图。
为方面客户端存储设备查看对象存储设备地图,可以预先将对象存储设备地图保存在客户端设备本地。则获取分布式存储系统的对象存储设备地图中目标存储池的纠删配置参数,可以包括:获取随着分布式存储系统的存储池信息更新而同步到客户端设备存储的对象存储设备地图中目标存储池的纠删配置参数。在纠删存储池创建时,会将纠删配置参数保存在对象存储设备地图中,以存储池名称做区分,形成一个以存储池名称为键(key),以存储池的纠删配置参数为值(value)的映射表。由分布式存储系统根据存储池信息的更新而更新对象存储设备地图后,将更新后的对象存储设备地图同步到客户端设备,具体可以保存在客户端设备的内存中,以便客户端设备在生成第一读请求时可以快速获取目标存储池的纠删配置参数。客户端在将对象存储设备地图应用到本地时,会遍历上述键(key)-值(value)映射表,从中解析出定位目标对象存储设备所需的纠删配置参数,可以以存储池ID为区分,将解析出的纠删配置参数保存在内存中,可以在需要读数据中进一步节省访问同一存储池对象时每次都需要去对象存储设备地图解析纠删配置的步骤。
或者,也可以由客户端设备在产生读需求时再访问分布式存储系统获取对象存储设备地图来获取目标存储池的纠删配置参数。则获取分布式存储系统的对象存储设备地图中目标存储池的纠删配置参数,还可以包括:响应对待读取数据的第一读命令,访问对象存储设备地图获取目标存储池的纠删配置参数。
客户端设备获取到目标存储池的纠删配置参数,即获取到了目标存储池的纠删数据冗余机制,此时客户端设备可以根据待读取数据在所在的对象数据中的位置,结合纠删配置参数自行进行纠删计算,得到待读取数据所在的目标对象存储设备的信息。
对于S202来说,客户端设备在进行纠删计算后得到的目标对象存储设备的信息通常为目标对象存储设备在目标存储池的对象存储设备列表中的序号,则客户端设备可以根据对象存储设备地图存储的对应序号的对象存储设备的地址信息,或者访问分布式存储系统获取对应序号的对象存储设备的地址信息,来通过目标对象存储设备的地址信息生成对目标对象存储设备的第一读请求。需要说明的是,第一读请求也可以是携带目标对象存储设备的信息的发送给目标存储池中的主对象存储设备的读请求,即可以由主对象存储设备解析第一读请求得到目标对象存储设备的信息后执行第一读请求的转发任务,而在目标对象存储设备反馈待读取数据时再由目标对象存储设备根据第一读请求中携带的客户端设备的地址信息直接将封装好的待读取数据反馈给客户端设备,相较于相关技术中读数据时数据与控制消息均需要由主对象存储设备转发的方案也缩短了读数据传输路径。
对于S203来说,客户端设备直接将第一读请求发送至目标对象存储设备,或由主对象存储设备将第一读请求转发给目标对象存储设备,由目标对象存储设备根据第一读请求中待读取数据的位置信息来定位待读取数据在本地的实际存储位置,进而获取本地存储的待读取数据封装后直接反馈给客户端设备,达到精简分布式存储系统读数据传输路径的效果。
本发明实施例提供的数据读取方法,由分布式存储系统的客户端设备在需要读数据时,根据待读取数据所属的目标对象数据在分布式存储系统对应的目标存储池的纠删配置参数,计算得到待读取数据所在目标对象存储设备的信息,继而生成对该目标对象存储设备的第一读请求,将第一读请求发送至该目标对象存储设备,以使该目标对象存储设备在本地存储中获取待读取数据反馈给客户端设备,使得分布式存储系统纠删场景下的读数据操作非必须经过主对象存储设备中转,精简了读数据操作中的读请求传输路径和返回封装数据的传输路径,提高了读数据效率,进而提升了分布式存储系统的读性能。
下面对本发明实施例三进行说明。
图3为本发明实施例提供的一种图2中S201的具体实施方式的流程图;图4为本发明实施例提供的一种纠删数据冗余机制下的数据分布示意图。
在上述实施例的基础上,本发明实施例进一步对确定目标对象存储设备的信息的方法进行说明。
如图2所述,在本发明实施例提供的数据读取方法中,S201:根据待读取数据所属的目标对象数据在分布式存储系统中所在的目标存储池的纠删配置参数,计算得到待读取数据所在的目标对象存储设备的信息,可以包括:
S301:根据目标对象数据与放置组的第一映射关系,确定待读取数据所在的目标放置组的信息。
S302:根据目标放置组的信息确定目标放置组对应的对象存储设备列表。
S303:根据待读取数据在目标对象数据中的位置信息以及纠删配置参数,计算得到待读取数据所在的目标纠删单元的信息。
S304:根据目标纠删单元的信息和对象存储设备列表,确定目标对象存储设备的信息。
对象数据在纠删存储池中的存储位置是由纠删存储池的纠删数据冗余机制决定的。如图4所示,在一个4MB大小的对象数据写入纠删存储池时,假设该纠删存储池的纠删条带长度为1MB,数据块个数K为4,校验块个数M为2,则在客户端设备写入该4MB的对象数据时,分布式存储系统会通过可扩展哈希下的受控复制(Controlled Replication UnderScalable Hashing,CRUSH)算法将该4MB的对象数据映射到某个放置组,例如PG1,同时,分布式存储系统还利用可扩展哈希下的受控复制算法计算出该放置组对应的对象存储设备列表。例如,PG1对象的对象存储设备列表可以记为[对象存储设备0,对象存储设备1,对象存储设备2,对象存储设备3,对象存储设备4,对象存储设备5],包含(K+M)个成员。
对于副本场景,这个4MB的对象数据在每个对象存储设备都存储着完整的4MB数据。但在纠删存储池中,这个4MB的对象数据在每个对象存储设备上并不是完整的,而是通过纠删计算出的K+M个纠删数据块,对于本例来说,是4个2MB的数据块和2个2MB的校验块。具体来说,如图4所示,分布式存储系统在纠删场景下对该4MB的对象数据所做的操作包括:按照纠删条带长度1MB,将该4MB的对象数据分为4个1MB的纠删条带(纠删条带1、纠删条带2、纠删条带3、纠删条带4),再对每个1MB的纠删条带按照纠删单元个数(如4)切分为4个纠删单元(如纠删条带1被切分为纠删单元1、纠删单元2、纠删单元3、纠删单元4),每个纠删单元的大小为1MB/4=256KB,这4个纠删单元分别存储在该放置组的4个对象存储设备成员中,4个纠删条带切分并存储到4个对象存储设备后在4个对象存储设备上形成4个2MB的数据块,并且通过纠删算法计算得到2个2MB的校验块,存在该放置组的另外2个对象存储设备成员中。则对于该4MB的对象数据,该放置组的每个对象存储设备实际只存储2MB的数据,每个2MB数据称为一个碎片(shard)。对于客户端设备来说,访问该4MB的对象数据时,数据范围为0~4MB,但在分布式存储系统真正读取数据时,该4MB的对象数据的0~256KB部分在对象存储设备0上,256KB~512KB部分在对象存储设备1上……以此类推。
则在本发明实施例提供的数据读取方法中,针对目标存储池的纠删数据冗余机制,若要定位目标对象存储设备,首先要知晓目标对象存储设备所处的目标存储池的信息,即需要确定目标对象存储设备由哪个放置组管理。再根据待读取数据在其写入时所处的目标对象数据中的位置信息以及目标存储池的纠删配置参数,计算得到待读取数据所在的目标纠删单元的信息。根据目标存储池的存储架构,知晓待读取数据所在的目标纠删单元的信息后,即可根据目标放置组对应的对象存储设备列表获悉对应的对象存储设备即为目标对象存储设备。
对于S301来说,对象存储设备地图存储有目标对象数据与放置组的第一映射关系,则在加载对象存储设备地图后,S301:根据目标对象数据与放置组的第一映射关系,确定待读取数据所在的目标放置组的信息,可以包括: 应用可扩展哈希下的受控复制算法根据第一映射关系,计算得到目标放置组的信息。
或者,也可以由客户端设备根据另外存储的对象数据与放置组的第一映射关系得到目标放置组的信息。则S301:根据目标对象数据与放置组的第一映射关系,确定待读取数据所在的目标放置组的信息,还可以包括:根据目标对象数据的标识信息以及写入目标对象数据时接收分布式存储系统发送的第一映射关系,确定目标放置组的信息。分布式存储系统可以在写完目标对象数据后即将第一映射关系发送至客户端设备,或可以在客户端设备产生读需求时再到分布式存储系统获取第一映射关系。
而确定目标放置组对应的对象存储设备列表也可以应用可扩展哈希下的受控复制算法得到。则S302:根据目标放置组的信息确定目标放置组对应的对象存储设备列表,可以包括:应用可扩展哈希下的受控复制算法确定与目标放置组对应的对象存储设备列表。
根据上文介绍的纠删数据冗余机制,客户端设备在读取数据时只需要读取数据块上的数据,则需要的纠删配置参数包括包括数据块个数和纠删条带长度。则S303:根据待读取数据在目标对象数据中的位置信息以及纠删配置参数,计算得到待读取数据所在的目标纠删单元的信息,可以包括:以纠删条带长度除以数据块个数,得到目标存储池的纠删单元长度;以待读取数据在目标对象数据中的偏移量除以纠删单元长度再对数据块个数取余,得到目标纠删单元的序号。
以图4为例,若待读取数据在目标对象数据中的位置信息为(1MB,8KB),即待读取数据在目标对象数据中的偏移量为1MB,数据长度为8KB,则通过纠删条带长度/数据块个数=1MB/4=256KB得到纠删单元长度后,再通过偏移量/纠删单元长度%数据块个数=1MB/256KB%4=0,确定待读取数据在第0个碎片上,而第0个碎片存储在PG1的对象存储设备列表中的对象存储设备0上。
则S304:根据目标纠删单元的信息和对象存储设备列表,确定目标对象存储设备的信息,可以包括:根据目标纠删单元的序号在对象存储设备列表中查询对应序号的对象存储设备为目标对象存储设备,得到目标对象存储设备的序号。通过对对象存储设备列表中的对象存储设备进行编号作为对象存储设备的标识信息,根据各对象存储设备的序号写入对象数据并根据各对象存储设备的序号确定与目标纠删单元对应的对象存储设备,可以方便地计算得到目标对象存储设备的信息。
在得到目标对象存储设备的信息后,客户端设备即可执行S202中生成对目标对象存储设备的第一读请求的步骤,但此时客户端设备仅知晓待读取数据在目标对象数据中的位置信息以及目标对象存储设备的信息,不知道待读取数据在目标对象存储设备中的实际存储位置。根据待读取数据在目标对象数据中的位置信息计算得到待读取数据在目标对象存储设备中的实际存储位置的任务可以由目标对象存储设备进行纠删计算得到,也可以由客户端设备自行计算得到。
则本发明实施例提供的数据读取方法还可以包括:根据待读取数据的偏移量除以纠删条带长度并乘以纠删单元长度后与待读取数据的偏移量对纠删单元长度取余的值的和,计算得到待读取数据在目标对象存储设备的本地偏移量。以图4为例,则为(1MB/1MB)×256KB+1MB%256KB=256KB。
下面对本发明实施例四进行说明。
在上述实施例的基础上,本发明实施例进一步提供一种优化性能的分布式存储系统读方案。
本发明实施例提供的数据读取方法还可以包括:
在将第一读请求发送至目标对象存储设备之前,判断待读取数据是否均位于同一目标对象存储设备内;
如果是,则进入将第一读请求发送至目标对象存储设备,以使目标对象存储设备根据第一读请求获取本地存储的待读取数据并将待读取数据反馈给客户端设备的步骤;
如果否,则将第一读请求发送至目标存储池中对应的主对象存储设备,以使主对象存储设备确定目标对象存储设备后,将第一读请求转发至目标对象存储设备以获取待读取数据并经过主对象存储设备将待读取数据反馈给客户端设备。
在实际应用中,由于纠删场景下,对象数据在写入分布式存储系统时会被写入多个对象存储设备,在读取数据时,待读取数据也有可能位于多个对象存储设备。若目标对象存储设备为多个,由客户端设备直接访问目标对象存储设备进行读数据的性能可能不如由主对象存储设备进行转发。故在本发明实施例中,在将第一读请求发送至目标对象存储设备之前,先判断待读取数据是否均位于同一目标对象存储设备内,如果是再进入S203执行将第一读请求发送至目标对象存储设备,以使目标对象存储设备根据第一读请求获取本地存储的待读取数据并将待读取数据反馈给客户端设备的步骤;如果否,则客户端设备将第一读请求发送至主对象存储设备进行转发。需要说明的是,客户端设备将第一读请求转发给主对象存储设备,但由于此前客户端设备已经进行纠删计算得到目标对象存储设备的信息,无需主对象存储设备再进行纠删计算,相较于相关技术直接由主对象存储设备转发数据与控制消息的方案仍达到了负载均衡的效果。
在本发明实施例中,判断待读取数据是否均位于同一目标对象存储设备内,可以包括:
根据纠删配置参数,计算得到目标存储池的纠删单元长度;
将待读取数据在目标对象数据中的偏移量向下对齐到纠删单元,得到待读取数据的首端所在的第一目标纠删单元的信息;
将待读取数据在目标对象数据中的偏移量与待读取数据的数据长度之和向下对齐到纠删单元,得到待读取数据的末端所在的第二目标纠删单元的信息;
若第一目标纠删单元和第二目标纠删单元为同一纠删单元,则确定待读取数据均位于同一目标对象存储设备内;
若第一目标纠删单元和第二目标纠删单元不为同一纠删单元,则确定待读取数据未均位于同一目标对象存储设备内。
如本发明实施例三介绍的,通过以纠删条带长度除以数据块个数,可以得到目标存储池的纠删单元长度。客户端设备原本已知的是待读取数据在目标对象存储设备中的位置信息,即偏移量和数据长度,则将待读取数据的偏移量向下对齐到纠删单元,得到待读取数据的首端所在的第一目标纠删单元的信息,再将待读取数据的偏移量与与待读取数据的数据长度之和向下对齐到纠删单元,得到待读取数据的末端所在的第二目标纠删单元的信息,分别得到待读取数据首尾两端所在的目标纠删单元,通过对第一目标纠删单元和第二目标纠删单元进行一致性对比,即可获悉待读取数据是否位于同一纠删单元。
以图4为例,若待读取数据在目标对象数据中的位置信息为(1MB,8KB),即待读取数据在目标对象数据中的偏移量为1MB,数据长度为8KB,则通过纠删条带长度/数据块个数=1MB/4=256KB得到纠删单元长度后,再通过偏移量向下对齐到纠删单元得到待读取数据的首端在1MB位置,通过偏移量+数据长度向下对齐到纠删单元得到待读取数据的尾端也在1MB位置,则可以确定待读取数据在同一个纠删单元内。
为便于客户端设备的读数据传输流程识别,本发明实施例提供的数据读取方法还可以包括:
在生成第一读请求时,为第一读请求添加精简传输路径标志;
如果待读取数据不均位于同一目标对象存储设备内,则剔除第一读请求中的精简传输路径标志后再进入将第一读请求发送至目标存储池中对应的主对象存储设备的步骤。
基于该精简传输路径标志,还能够使分布式存储系统中的目标对象存储设备接收到第一读请求后确定自身即为目标对象存储设备,主对象存储设备在接收到携带精简传输路径标志的第一读请求后无需启动转发流程。
或者,也可以在确定待读取数据位于同一目标对象存储设备内后再添加精简传输路径标志。则本发明实施例提供的数据读取方法还可以包括:如果待读取数据位于同一目标对象存储设备内,则为第一读请求添加精简传输路径标志。
下面对本发明实施例五进行说明。
在上述实施例的基础上,本发明实施例进一步提供一种优化性能的分布式存储系统读方案。
本发明实施例提供的数据读取方法还可以包括:
在将第一读请求发送至目标对象存储设备之前,判断目标对象存储设备的数量是否超出精简传输数量阈值;
如果是,则将第一读请求发送至目标存储池中对应的主对象存储设备,以使主对象存储设备确定目标对象存储设备后,将第一读请求转发至目标对象存储设备以获取待读取数据并经过主对象存储设备将待读取数据反馈给客户端设备;
如果否,则进入将第一读请求发送至目标对象存储设备,以使目标对象存储设备根据第一读请求获取本地存储的待读取数据并将待读取数据反馈给客户端设备的步骤。
除了本发明实施例四所介绍的优化性能的分布式存储系统读方案外,还可以通过设置精简传输数量阈值来供客户端设备选择是否执行精简数据传输路径方案,更加灵活地实现了客户端设备与分布式存储系统之间的负载均衡。
精简传输数量阈值可以预先由运维人员根据实验测得一个合适的数值,在实际运行中也可以灵活调整。则本发明实施例提供的数据读取方法还可以包括:根据客户端设备与分布式存储系统之间的传输性能测试结果,更新精简传输数量阈值。具体来说,在目标对象存储设备的数量不同的情况下,分别记录客户端设备与目标对象存储设备直接连接和通过主对象存储设备转发两种情况下的整体数据传输时长,来确定在目标对象存储设备的数量条件下哪种方案性能更优,进而确定精简传输数量阈值。
在本发明实施例中,判断目标对象存储设备的数量是否超出精简传输数量阈值,可以包括:
根据纠删配置参数,计算得到目标存储池的纠删单元长度;
根据纠删单元长度,将待读取数据在目标对象数据中的位置信息向下对齐到纠删单元,得到待读取数据所在的目标纠删单元的个数;
若目标纠删单元的个数超出精简传输数量阈值,则确定目标对象存储设备的数量超出精简传输数量阈值;
若目标纠删单元的个数不超出精简传输数量阈值,则确定目标对象存储设备的数量不超出精简传输数量阈值。
如本发明实施例三介绍的,通过以纠删条带长度除以数据块个数,可以得到目标存储池的纠删单元长度。客户端设备原本已知的是待读取数据在目标对象存储设备中的位置信息,即偏移量和数据长度,则通过待读取数据在目标对象数据中的位置信息向下对齐到纠删单元,可以得到待读取数据所在的目标纠删单元的个数。具体来说,根据纠删单元长度,将待读取数据在目标对象数据中的位置信息向下对齐到纠删单元,得到待读取数据所在的目标纠删单元的个数,可以包括:
将待读取数据在目标对象数据中的偏移量向下对齐到纠删单元,得到待读取数据的首端所在的第一目标纠删单元的信息;
将待读取数据在目标对象数据中的偏移量与待读取数据的数据长度之和向下对齐到纠删单元,得到待读取数据的末端所在的第二目标纠删单元的信息;
以第一目标纠删单元到第二目标纠删单元所包含的纠删单元数量为目标纠删单元的个数。
通过将待读取数据的偏移量向下对齐到纠删单元,得到待读取数据的首端所在的第一目标纠删单元的信息,再将待读取数据的偏移量与与待读取数据的数据长度之和向下对齐到纠删单元,得到待读取数据的末端所在的第二目标纠删单元的信息,分别得到待读取数据首尾两端所在的目标纠删单元,以第一目标纠删单元到第二目标纠删单元之间(包含第一目标纠删单元和第二目标纠删单元)所包含的纠删单元数量为目标纠删单元的个数,继而根据目标纠删单元的个数可知待读取数据所在的目标对象存储设备的数量。
以图4为例,若待读取数据在目标对象数据中的位置信息为(1MB,8KB),即待读取数据在目标对象数据中的偏移量为1MB,数据长度为8KB,则通过纠删条带长度/数据块个数=1MB/4=256KB得到纠删单元长度后,再通过偏移量向下对齐到纠删单元得到待读取数据的首端在1MB位置,通过偏移量+数据长度向下对齐到纠删单元得到待读取数据的尾端也在1MB位置,则可以确定待读取数据处于一个纠删单元内,即位于一个目标对象存储设备上。
为便于客户端设备的读数据传输流程识别,本发明实施例提供的数据读取方法还可以包括:
在生成第一读请求时,为第一读请求添加精简传输路径标志;
如果目标对象存储设备的数量超出精简传输数量阈值,则剔除第一读请求中的精简传输路径标志后再进入将第一读请求发送至目标存储池中对应的主对象存储设备的步骤。
基于该精简传输路径标志,还能够使分布式存储系统中的目标对象存储设备接收到第一读请求后确定自身即为目标对象存储设备,主对象存储设备在接收到携带精简传输路径标志的第一读请求后无需启动转发流程。
或者,也可以在确定目标对象存储设备的数量不超出精简传输数量阈值存储设备时再添加精简传输路径标志。则本发明实施例提供的数据读取方法还可以包括:如果目标对象存储设备的数量不超出精简传输数量阈值,则为第一读请求添加精简传输路径标志。
下面对本发明实施例六进行说明。
图5为本发明实施例提供的另一种数据读取方法的流程图。
如图5所示,应用于分布式存储系统中的目标对象存储设备,本发明实施例提供的数据读取方法包括:
S501:接收分布式存储系统的客户端设备发送的对待读取数据的第一读请求。
S502:根据第一读请求确定待读取数据在本地存储中的位置。
S503:自本地存储获取待读取数据,并将待读取数据反馈给客户端设备。
其中,第一读请求为客户端设备根据待读取数据所属的目标对象数据在分布式存储系统中所在的目标存储池的纠删配置参数,计算得到待读取数据所在的目标对象存储设备的信息后生成的对目标对象存储设备的第一读请求。
在具体实施中,目标对象存储设备可以为主对象存储设备也可以为从对象存储设备,可以进一步通过在第一读请求中添加精简传输路径标志以使主对象存储设备在接收到携带精简传输路径标志的第一读请求后无需启动转发流程。
本发明实施例与上述应用于客户端设备的数据读取方法的实施例相对性,因此本发明实施例的具体实施方案请参见上述应用于客户端设备的数据读取方法的实施例的描述,这里暂不赘述。
下面对本发明实施例七进行说明。
本发明实施例基于分布式存储系统中主对象存储设备和从对象存储设备的角度再次提供一种数据读取方法。本发明实施例提供的数据读取方法包括:
分布式存储系统中的主对象存储设备收到分布式存储系统的客户端设备发送的第二读请求后,判断本地是否存储有第二读请求所需的第一待读取数据;
如果是,则主对象存储设备自本地存储获取第一待读取数据,并将第一待读取数据反馈给客户端设备;
如果否,则主对象存储设备将第二读请求发送至对应的从对象存储设备,并将从对象存储设备反馈的第一待读取数据发送至客户端设备;
从对象存储设备收到第三读请求后,自本地存储获取第三读请求所需的第二待读取数据,并将第二待读取数据发送至第三读请求的发送方设备。
需要说明的是,从对象存储设备接收到的第三读请求,可以是由客户端设备直接发送的,也可以是由主对象存储设备转发的;从对象存储设备在本地获取第三读请求所需的第二待读取数据后,直接按照第三读请求的传输路径进行反馈,将第二待读取数据反馈给客户端设备或主对象存储设备。
本发明实施例与上述应用于客户端设备的数据读取方法的实施例相对性,因此本发明实施例的具体实施方案请参见上述应用于客户端设备的数据读取方法的实施例的描述,这里暂不赘述。
上文详述了数据读取方法对应的各个实施例,在此基础上,本发明还公开了与上述方法对应的数据读取装置、设备及计算机可读存储介质。
下面对本发明实施例八进行说明。
图6为本发明实施例提供的一种数据读取装置的结构示意图。
如图6所示,应用于分布式存储系统的客户端设备,本发明实施例提供的数据读取装置包括:
第一计算单元601,用于根据待读取数据所属的目标对象数据在分布式存储系统中所在的目标存储池的纠删配置参数,计算得到待读取数据所在的目标对象存储设备的信息;
第一生成单元602,用于生成对目标对象存储设备的第一读请求;
第一发送单元603,用于将第一读请求发送至目标对象存储设备,以使目标对象存储设备根据第一读请求获取本地存储的待读取数据并将待读取数据反馈给客户端设备。
在一些实施中,第一计算单元601根据待读取数据所属的目标对象数据在分布式存储系统中所在的目标存储池的纠删配置参数,计算得到待读取数据所在的目标对象存储设备的信息,可以包括:
根据目标对象数据与放置组的第一映射关系,确定待读取数据所在的目标放置组的信息;
根据目标放置组的信息确定目标放置组对应的对象存储设备列表;
根据待读取数据在目标对象数据中的位置信息以及纠删配置参数,计算得到待读取数据所在的目标纠删单元的信息;
根据目标纠删单元的信息和对象存储设备列表,确定目标对象存储设备的信息。
其中,根据目标对象数据与放置组的第一映射关系,确定待读取数据所在的目标放置组的信息,可以包括:应用可扩展哈希下的受控复制算法根据第一映射关系,计算得到目标放置组的信息。
或者,根据目标对象数据与放置组的第一映射关系,确定待读取数据所在的目标放置组的信息,可以包括:根据目标对象数据的标识信息以及写入目标对象数据时接收分布式存储系统发送的第一映射关系,确定目标放置组的信息。
其中,根据目标放置组的信息确定目标放置组对应的对象存储设备列表,可以包括:应用可扩展哈希下的受控复制算法确定与目标放置组对应的对象存储设备列表。
在一些实施中,纠删配置参数可以包括数据块个数和纠删条带长度;
则第一计算单元601根据待读取数据在目标对象数据中的位置信息以及纠删配置参数,计算得到待读取数据所在的目标纠删单元的信息,可以包括:
以纠删条带长度除以数据块个数,得到目标存储池的纠删单元长度;
以待读取数据在目标对象数据中的偏移量除以纠删单元长度再对数据块个数取余,得到目标纠删单元的序号。
其中,根据目标纠删单元的信息和对象存储设备列表,确定目标对象存储设备的信息,可以包括:根据目标纠删单元的序号在对象存储设备列表中查询对应序号的对象存储设备为目标对象存储设备,得到目标对象存储设备的序号。
在一些实施中,本发明实施例提供的数据读取装置还可以包括:
第一判断单元,用于在将第一读请求发送至目标对象存储设备之前,判断目标对象存储设备的数量是否超出精简传输数量阈值;如果是,则进入第一转发处理单元;如果否,则进入第一发送单元603;
第一转发处理单元,用于将第一读请求发送至目标存储池中对应的主对象存储设备,以使主对象存储设备确定目标对象存储设备后,将第一读请求转发至目标对象存储设备以获取待读取数据并经过主对象存储设备将待读取数据反馈给客户端设备。
其中,第一判断单元判断目标对象存储设备的数量是否超出精简传输数量阈值,可以包括:
根据纠删配置参数,计算得到目标存储池的纠删单元长度;
根据纠删单元长度,将待读取数据在目标对象数据中的位置信息向下对齐到纠删单元,得到待读取数据所在的目标纠删单元的个数;
若目标纠删单元的个数超出精简传输数量阈值,则确定目标对象存储设备的数量超出精简传输数量阈值;
若目标纠删单元的个数不超出精简传输数量阈值,则确定目标对象存储设备的数量不超出精简传输数量阈值。
其中,根据纠删单元长度,将待读取数据在目标对象数据中的位置信息向下对齐到纠删单元,得到待读取数据所在的目标纠删单元的个数,可以包括:
将待读取数据在目标对象数据中的偏移量向下对齐到纠删单元,得到待读取数据的首端所在的第一目标纠删单元的信息;
将待读取数据在目标对象数据中的偏移量与待读取数据的数据长度之和向下对齐到纠删单元,得到待读取数据的末端所在的第二目标纠删单元的信息;
以第一目标纠删单元到第二目标纠删单元所包含的纠删单元数量为目标纠删单元的个数。
在一些实施中,本发明实施例提供的数据读取装置还可以包括:
第一添加单元,用于在生成第一读请求时,为第一读请求添加精简传输路径标志;
第一剔除单元,用于如果目标对象存储设备的数量超出精简传输数量阈值,则剔除第一读请求中的精简传输路径标志后再进入第一转发处理单元将第一读请求发送至目标存储池中对应的主对象存储设备。
或者,本发明实施例提供的数据读取装置还可以包括:
第二添加单元,用于如果目标对象存储设备的数量不超出精简传输数量阈值,则为第一读请求添加精简传输路径标志。
在一些实施中,本发明实施例提供的数据读取装置还可以包括:
阈值调整单元,用于根据客户端设备与分布式存储系统之间的传输性能测试结果,更新精简传输数量阈值。
在一些实施中,本发明实施例提供的数据读取装置还可以包括:
第二判断单元,用于在将第一读请求发送至目标对象存储设备之前,判断待读取数据是否均位于同一目标对象存储设备内;如果是,则进入第一发送单元603执行将第一读请求发送至目标对象存储设备,以使目标对象存储设备根据第一读请求获取本地存储的待读取数据并将待读取数据反馈给客户端设备的步骤;如果否,则进入第二转发处理单元;
第二转发处理单元,用于将第一读请求发送至目标存储池中对应的主对象存储设备,以使主对象存储设备确定目标对象存储设备后,将第一读请求转发至目标对象存储设备以获取待读取数据并经过主对象存储设备将待读取数据反馈给客户端设备。
其中,判断待读取数据是否均位于同一目标对象存储设备内,可以包括:
根据纠删配置参数,计算得到目标存储池的纠删单元长度;
将待读取数据在目标对象数据中的偏移量向下对齐到纠删单元,得到待读取数据的首端所在的第一目标纠删单元的信息;
将待读取数据在目标对象数据中的偏移量与待读取数据的数据长度之和向下对齐到纠删单元,得到待读取数据的末端所在的第二目标纠删单元的信息;
若第一目标纠删单元和第二目标纠删单元为同一纠删单元,则确定待读取数据均位于同一目标对象存储设备内;
若第一目标纠删单元和第二目标纠删单元不为同一纠删单元,则确定待读取数据未均位于同一目标对象存储设备内。
在一些实施中,第一计算单元601根据待读取数据所属的目标对象数据在分布式存储系统中所在的目标存储池的纠删配置参数,计算得到待读取数据所在的目标对象存储设备的信息,可以包括:
获取分布式存储系统的对象存储设备地图中目标存储池的纠删配置参数;
根据纠删配置参数计算得到目标对象存储设备的信息。
其中,获取分布式存储系统的对象存储设备地图中目标存储池的纠删配置参数,可以包括:响应对待读取数据的第一读命令,访问对象存储设备地图获取目标存储池的纠删配置参数。
或者,获取分布式存储系统的对象存储设备地图中目标存储池的纠删配置参数,可以包括:获取随着分布式存储系统的存储池信息更新而同步到客户端设备存储的对象存储设备地图中目标存储池的纠删配置参数。
由于装置部分的实施例与方法部分的实施例相互对应,因此装置部分的实施例请参见方法部分的实施例的描述,这里暂不赘述。
下面对本发明实施例九进行说明。
图7为本发明实施例提供的另一种数据读取装置的结构示意图。
如图7所示,应用于分布式存储系统中的目标对象存储设备,本发明实施例提供的数据读取装置包括:
第一接收单元701,用于接收分布式存储系统的客户端设备发送的对待读取数据的第一读请求;
第一查询单元702,用于根据第一读请求确定待读取数据在本地存储中的位置;
第一获取单元703,用于自本地存储获取待读取数据,并将待读取数据反馈给客户端设备;
其中,第一读请求为客户端设备根据待读取数据所属的目标对象数据在分布式存储系统中所在的目标存储池的纠删配置参数,计算得到待读取数据所在的目标对象存储设备的信息后生成的对目标对象存储设备的第一读请求。
由于装置部分的实施例与方法部分的实施例相互对应,因此装置部分的实施例请参见方法部分的实施例的描述,这里暂不赘述。
下面对本发明实施例十进行说明。
图8为本发明实施例提供的一种数据读取设备的结构示意图。
如图8所示,本发明实施例提供的数据读取设备包括:
存储器810,用于存储计算机程序811;
处理器820,用于执行计算机程序811,该计算机程序811被处理器820执行时实现如上述任意一项实施例所述数据读取方法的步骤。
其中,处理器820可以包括一个或多个处理核心,比如3核心处理器、8核心处理器等。处理器820可以采用数字信号处理DSP(Digital Signal Processing)、现场可编程门阵列FPGA(Field-Programmable Gate Array)、可编程逻辑阵列PLA(Programmable LogicArray)中的至少一种硬件形式来实现。处理器820也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称中央处理器CPU(CentralProcessing Unit);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器820可以集成有图像处理器GPU(Graphics Processing Unit),GPU用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器820还可以包括人工智能AI(Artificial Intelligence)处理器,该AI处理器用于处理有关机器学习的计算操作。
存储器810可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器810还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。本实施例中,存储器810至少用于存储以下计算机程序811,其中,该计算机程序811被处理器820加载并执行之后,能够实现前述任一实施例公开的数据读取方法中的相关步骤。另外,存储器810所存储的资源还可以包括操作系统812和数据813等,存储方式可以是短暂存储或者永久存储。其中,操作系统812可以为Windows。数据813可以包括但不限于上述方法所涉及到的数据。
在一些实施例中,数据读取设备还可包括有显示屏830、电源840、通信接口850、输入输出接口860、传感器870以及通信总线880。
本领域技术人员可以理解,图8中示出的结构并不构成对数据读取设备的限定,可以包括比图示更多或更少的组件。
本发明实施例提供的数据读取设备,包括存储器和处理器,处理器在执行存储器存储的程序时,能够实现如上所述的数据读取方法,效果同上。
下面对本发明实施例十一进行说明。
需要说明的是,以上所描述的装置、设备实施例仅仅是示意性的,例如,模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,执行本发明各个实施例所述方法的全部或部分步骤。
为此,本发明实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现如数据读取方法的步骤。
该计算机可读存储介质可以包括:U盘、移动硬盘、只读存储器ROM(Read-OnlyMemory)、随机存取存储器RAM(Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
本实施例中提供的计算机可读存储介质所包含的计算机程序能够在被处理器执行时实现如上所述的数据读取方法的步骤,效果同上。
以上对本发明所提供的一种数据读取方法、装置、设备、数据传输系统及存储介质进行了详细介绍。说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置、设备及计算机可读存储介质而言,由于其与实施例公开的方法及数据传输系统相对应,所以描述的比较简单,相关之处参见方法及数据传输系统部分说明即可。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。
还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

Claims (24)

1.一种数据读取方法,其特征在于,应用于分布式存储系统的客户端设备,包括:
根据待读取数据所属的目标对象数据在所述分布式存储系统中所在的目标存储池的纠删配置参数,计算得到所述待读取数据所在的目标对象存储设备的信息;
生成对所述目标对象存储设备的第一读请求;
将所述第一读请求发送至所述目标对象存储设备,以使所述目标对象存储设备根据所述第一读请求获取本地存储的所述待读取数据并将所述待读取数据反馈给所述客户端设备;
还包括:
在将所述第一读请求发送至所述目标对象存储设备之前,判断所述目标对象存储设备的数量是否超出精简传输数量阈值;
如果是,则将所述第一读请求发送至所述目标存储池中对应的主对象存储设备,以使所述主对象存储设备确定所述目标对象存储设备后,将所述第一读请求转发至所述目标对象存储设备以获取所述待读取数据并经过所述主对象存储设备将所述待读取数据反馈给所述客户端设备;
如果否,则进入所述将所述第一读请求发送至所述目标对象存储设备,以使所述目标对象存储设备根据所述第一读请求获取本地存储的所述待读取数据并将所述待读取数据反馈给所述客户端设备的步骤;
或,
还包括:
在将所述第一读请求发送至所述目标对象存储设备之前,判断所述待读取数据是否均位于同一所述目标对象存储设备内;
如果是,则进入所述将所述第一读请求发送至所述目标对象存储设备,以使所述目标对象存储设备根据所述第一读请求获取本地存储的所述待读取数据并将所述待读取数据反馈给所述客户端设备的步骤;
如果否,则将所述第一读请求发送至所述目标存储池中对应的所述主对象存储设备,以使所述主对象存储设备确定所述目标对象存储设备后,将所述第一读请求转发至所述目标对象存储设备以获取所述待读取数据并经过所述主对象存储设备将所述待读取数据反馈给所述客户端设备。
2.根据权利要求1所述的数据读取方法,其特征在于,所述根据待读取数据所属的目标对象数据在所述分布式存储系统中所在的目标存储池的纠删配置参数,计算得到所述待读取数据所在的目标对象存储设备的信息,包括:
根据所述目标对象数据与放置组的第一映射关系,确定所述待读取数据所在的目标放置组的信息;
根据所述目标放置组的信息确定所述目标放置组对应的对象存储设备列表;
根据所述待读取数据在所述目标对象数据中的位置信息以及所述纠删配置参数,计算得到所述待读取数据所在的目标纠删单元的信息;
根据所述目标纠删单元的信息和所述对象存储设备列表,确定所述目标对象存储设备的信息。
3.根据权利要求2所述的数据读取方法,其特征在于,所述根据所述目标对象数据与放置组的第一映射关系,确定所述待读取数据所在的目标放置组的信息,包括:
应用可扩展哈希下的受控复制算法根据所述第一映射关系,计算得到所述目标放置组的信息。
4.根据权利要求2所述的数据读取方法,其特征在于,所述根据所述目标对象数据与放置组的第一映射关系,确定所述待读取数据所在的目标放置组的信息,包括:
根据所述目标对象数据的标识信息以及写入所述目标对象数据时接收所述分布式存储系统发送的所述第一映射关系,确定所述目标放置组的信息。
5.根据权利要求2所述的数据读取方法,其特征在于,所述根据所述目标放置组的信息确定所述目标放置组对应的对象存储设备列表,包括:
应用可扩展哈希下的受控复制算法确定与所述目标放置组对应的所述对象存储设备列表。
6.根据权利要求2所述的数据读取方法,其特征在于,所述纠删配置参数包括数据块个数和纠删条带长度;
所述根据所述待读取数据在所述目标对象数据中的位置信息以及所述纠删配置参数,计算得到所述待读取数据所在的目标纠删单元的信息,包括:
以所述纠删条带长度除以所述数据块个数,得到所述目标存储池的纠删单元长度;
以所述待读取数据在所述目标对象数据中的偏移量除以所述纠删单元长度再对所述数据块个数取余,得到所述目标纠删单元的序号。
7.根据权利要求6所述的数据读取方法,其特征在于,所述根据所述目标纠删单元的信息和所述对象存储设备列表,确定所述目标对象存储设备的信息,包括:
根据所述目标纠删单元的序号在所述对象存储设备列表中查询对应序号的对象存储设备为所述目标对象存储设备,得到所述目标对象存储设备的序号。
8.根据权利要求1所述的数据读取方法,其特征在于,所述判断所述目标对象存储设备的数量是否超出精简传输数量阈值,包括:
根据所述纠删配置参数,计算得到所述目标存储池的纠删单元长度;
根据所述纠删单元长度,将所述待读取数据在所述目标对象数据中的位置信息向下对齐到纠删单元,得到所述待读取数据所在的目标纠删单元的个数;
若所述目标纠删单元的个数超出所述精简传输数量阈值,则确定所述目标对象存储设备的数量超出所述精简传输数量阈值;
若所述目标纠删单元的个数不超出所述精简传输数量阈值,则确定所述目标对象存储设备的数量不超出所述精简传输数量阈值。
9.根据权利要求8所述的数据读取方法,其特征在于,所述根据所述纠删单元长度,将所述待读取数据在所述目标对象数据中的位置信息向下对齐到纠删单元,得到所述待读取数据所在的目标纠删单元的个数,包括:
将所述待读取数据在所述目标对象数据中的偏移量向下对齐到纠删单元,得到所述待读取数据的首端所在的第一目标纠删单元的信息;
将所述待读取数据在所述目标对象数据中的偏移量与所述待读取数据的数据长度之和向下对齐到纠删单元,得到所述待读取数据的末端所在的第二目标纠删单元的信息;
以所述第一目标纠删单元到所述第二目标纠删单元所包含的纠删单元数量为所述目标纠删单元的个数。
10.根据权利要求1所述的数据读取方法,其特征在于,还包括:
在生成所述第一读请求时,为所述第一读请求添加精简传输路径标志;
如果所述目标对象存储设备的数量超出所述精简传输数量阈值,则剔除所述第一读请求中的所述精简传输路径标志后再进入所述将所述第一读请求发送至所述目标存储池中对应的主对象存储设备的步骤。
11.根据权利要求1所述的数据读取方法,其特征在于,还包括:
如果所述目标对象存储设备的数量不超出所述精简传输数量阈值,则为所述第一读请求添加精简传输路径标志。
12.根据权利要求1所述的数据读取方法,其特征在于,还包括:
根据所述客户端设备与所述分布式存储系统之间的传输性能测试结果,更新所述精简传输数量阈值。
13.根据权利要求1所述的数据读取方法,其特征在于,所述判断所述待读取数据是否均位于同一所述目标对象存储设备内,包括:
根据所述纠删配置参数,计算得到所述目标存储池的纠删单元长度;
将所述待读取数据在所述目标对象数据中的偏移量向下对齐到纠删单元,得到所述待读取数据的首端所在的第一目标纠删单元的信息;
将所述待读取数据在所述目标对象数据中的偏移量与所述待读取数据的数据长度之和向下对齐到纠删单元,得到所述待读取数据的末端所在的第二目标纠删单元的信息;
若所述第一目标纠删单元和所述第二目标纠删单元为同一纠删单元,则确定所述待读取数据均位于同一所述目标对象存储设备内;
若所述第一目标纠删单元和所述第二目标纠删单元不为同一纠删单元,则确定所述待读取数据未均位于同一所述目标对象存储设备内。
14.根据权利要求1所述的数据读取方法,其特征在于,所述根据待读取数据所属的目标对象数据在所述分布式存储系统中所在的目标存储池的纠删配置参数,计算得到所述待读取数据所在的目标对象存储设备的信息,包括:
获取所述分布式存储系统的对象存储设备地图中所述目标存储池的所述纠删配置参数;
根据所述纠删配置参数计算得到所述目标对象存储设备的信息。
15.根据权利要求14所述的数据读取方法,其特征在于,所述获取所述分布式存储系统的对象存储设备地图中所述目标存储池的所述纠删配置参数,包括:
响应对所述待读取数据的第一读命令,访问所述对象存储设备地图获取所述目标存储池的所述纠删配置参数。
16.根据权利要求14所述的数据读取方法,其特征在于,所述获取所述分布式存储系统的对象存储设备地图中所述目标存储池的所述纠删配置参数,包括:
获取随着所述分布式存储系统的存储池信息更新而同步到所述客户端设备存储的所述对象存储设备地图中所述目标存储池的所述纠删配置参数。
17.一种数据读取方法,其特征在于,应用于分布式存储系统中的目标对象存储设备,包括:
接收所述分布式存储系统的客户端设备发送的对待读取数据的第一读请求;
根据所述第一读请求确定所述待读取数据在本地存储中的位置;
自本地存储获取所述待读取数据,并将所述待读取数据反馈给所述客户端设备;
其中,所述第一读请求为所述客户端设备根据所述待读取数据所属的目标对象数据在所述分布式存储系统中所在的目标存储池的纠删配置参数,计算得到所述待读取数据所在的所述目标对象存储设备的信息后生成的对所述目标对象存储设备的所述第一读请求;
所述客户端设备在将所述第一读请求发送至所述目标对象存储设备之前,判断所述目标对象存储设备的数量是否超出精简传输数量阈值;如果是,则将所述第一读请求发送至所述目标存储池中对应的主对象存储设备,以使所述主对象存储设备确定所述目标对象存储设备后,将所述第一读请求转发至所述目标对象存储设备以获取所述待读取数据并经过所述主对象存储设备将所述待读取数据反馈给所述客户端设备;如果否,则将所述第一读请求发送至所述目标对象存储设备,以使所述目标对象存储设备根据所述第一读请求获取本地存储的所述待读取数据并将所述待读取数据反馈给所述客户端设备;
或,
所述客户端设备在将所述第一读请求发送至所述目标对象存储设备之前,判断所述待读取数据是否均位于同一所述目标对象存储设备内;如果是,则将所述第一读请求发送至所述目标对象存储设备,以使所述目标对象存储设备根据所述第一读请求获取本地存储的所述待读取数据并将所述待读取数据反馈给所述客户端设备;如果否,则将所述第一读请求发送至所述目标存储池中对应的所述主对象存储设备,以使所述主对象存储设备确定所述目标对象存储设备后,将所述第一读请求转发至所述目标对象存储设备以获取所述待读取数据并经过所述主对象存储设备将所述待读取数据反馈给所述客户端设备。
18.一种数据读取方法,其特征在于,包括:
分布式存储系统中的主对象存储设备收到所述分布式存储系统的客户端设备发送的第二读请求后,判断本地是否存储有所述第二读请求所需的第一待读取数据;
如果是,则所述主对象存储设备自本地存储获取所述第一待读取数据,并将所述第一待读取数据反馈给所述客户端设备;
如果否,则所述主对象存储设备将所述第二读请求发送至对应的从对象存储设备,并将所述从对象存储设备反馈的所述第一待读取数据发送至所述客户端设备;
所述从对象存储设备收到第三读请求后,自本地存储获取所述第三读请求所需的第二待读取数据,并将所述第二待读取数据发送至所述第三读请求的发送方设备。
19.一种数据传输系统,其特征在于,包括:客户端设备以及与所述客户端设备通信连接的分布式存储系统;
其中,所述客户端设备用于根据待读取数据所属的目标对象数据在所述分布式存储系统中所在的目标存储池的纠删配置参数,计算得到所述待读取数据所在的目标对象存储设备的信息;生成对所述目标对象存储设备的第一读请求;将所述第一读请求发送至所述目标对象存储设备,以使所述目标对象存储设备根据所述第一读请求获取本地存储的所述待读取数据并将所述待读取数据反馈给所述客户端设备;
所述客户端设备还用于在将所述第一读请求发送至所述目标对象存储设备之前,判断所述目标对象存储设备的数量是否超出精简传输数量阈值;如果是,则将所述第一读请求发送至所述目标存储池中对应的主对象存储设备,以使所述主对象存储设备确定所述目标对象存储设备后,将所述第一读请求转发至所述目标对象存储设备以获取所述待读取数据并经过所述主对象存储设备将所述待读取数据反馈给所述客户端设备;如果否,则所述将所述第一读请求发送至所述目标对象存储设备,以使所述目标对象存储设备根据所述第一读请求获取本地存储的所述待读取数据并将所述待读取数据反馈给所述客户端设备;
或,
所述客户端设备还用于在将所述第一读请求发送至所述目标对象存储设备之前,判断所述待读取数据是否均位于同一所述目标对象存储设备内;如果是,则进将所述第一读请求发送至所述目标对象存储设备,以使所述目标对象存储设备根据所述第一读请求获取本地存储的所述待读取数据并将所述待读取数据反馈给所述客户端设备;如果否,则将所述第一读请求发送至所述目标存储池中对应的所述主对象存储设备,以使所述主对象存储设备确定所述目标对象存储设备后,将所述第一读请求转发至所述目标对象存储设备以获取所述待读取数据并经过所述主对象存储设备将所述待读取数据反馈给所述客户端设备。
20.根据权利要求19所述的数据传输系统,其特征在于,所述分布式存储系统包括设于所述目标存储池的主对象存储设备和从对象存储设备;
其中,所述主对象存储设备用于收到第二读请求后,判断本地是否存储有所述第二读请求所需的第一待读取数据;
如果是,则所述主对象存储设备自本地存储获取所述第一待读取数据,并将所述第一待读取数据反馈给所述客户端设备;
如果否,则所述主对象存储设备将所述第二读请求发送至对应的所述从对象存储设备,并将所述从对象存储设备反馈的所述第一待读取数据发送至所述客户端设备;
所述从对象存储设备用于收到第三读请求后,自本地存储获取所述第三读请求所需的第二待读取数据,并将所述第二待读取数据发送至所述第三读请求的发送方设备。
21.一种数据读取装置,其特征在于,应用于分布式存储系统的客户端设备,包括:
第一计算单元,用于根据待读取数据所属的目标对象数据在所述分布式存储系统中所在的目标存储池的纠删配置参数,计算得到所述待读取数据所在的目标对象存储设备的信息;
第一生成单元,用于生成对所述目标对象存储设备的第一读请求;
第一发送单元,用于将所述第一读请求发送至所述目标对象存储设备,以使所述目标对象存储设备根据所述第一读请求获取本地存储的所述待读取数据并将所述待读取数据反馈给所述客户端设备;
还包括:
第一判断单元,用于在将所述第一读请求发送至所述目标对象存储设备之前,判断所述目标对象存储设备的数量是否超出精简传输数量阈值;如果是,则进入第一转发处理单元;如果否,则进入所述第一发送单元;
所述第一转发处理单元,用于将所述第一读请求发送至所述目标存储池中对应的主对象存储设备,以使所述主对象存储设备确定所述目标对象存储设备后,将所述第一读请求转发至所述目标对象存储设备以获取所述待读取数据并经过所述主对象存储设备将所述待读取数据反馈给所述客户端设备;
或,
还包括:
第二判断单元,用于在将所述第一读请求发送至所述目标对象存储设备之前,判断所述待读取数据是否均位于同一所述目标对象存储设备内;如果是,则进入所述第一发送单元执行所述将所述第一读请求发送至所述目标对象存储设备,以使所述目标对象存储设备根据所述第一读请求获取本地存储的所述待读取数据并将所述待读取数据反馈给所述客户端设备的步骤;如果否,则进入第二转发处理单元;
所述第二转发处理单元,用于将所述第一读请求发送至所述目标存储池中对应的所述主对象存储设备,以使所述主对象存储设备确定所述目标对象存储设备后,将所述第一读请求转发至目标对象存储设备以获取所述待读取数据并经过所述主对象存储设备将所述待读取数据反馈给所述客户端设备。
22.一种数据读取装置,其特征在于,应用于分布式存储系统中的目标对象存储设备,包括:
第一接收单元,用于接收所述分布式存储系统的客户端设备发送的对待读取数据的第一读请求;
第一查询单元,用于根据所述第一读请求确定所述待读取数据在本地存储中的位置;
第一获取单元,用于自本地存储获取所述待读取数据,并将所述待读取数据反馈给所述客户端设备;
其中,所述第一读请求为所述客户端设备根据所述待读取数据所属的目标对象数据在所述分布式存储系统中所在的目标存储池的纠删配置参数,计算得到所述待读取数据所在的所述目标对象存储设备的信息后生成的对所述目标对象存储设备的所述第一读请求;
所述客户端设备还用于在将所述第一读请求发送至所述目标对象存储设备之前,判断所述目标对象存储设备的数量是否超出精简传输数量阈值;如果是,则将所述第一读请求发送至所述目标存储池中对应的主对象存储设备,以使所述主对象存储设备确定所述目标对象存储设备后,将所述第一读请求转发至所述目标对象存储设备以获取所述待读取数据并经过所述主对象存储设备将所述待读取数据反馈给所述客户端设备;如果否,则所述将所述第一读请求发送至所述目标对象存储设备,以使所述目标对象存储设备根据所述第一读请求获取本地存储的所述待读取数据并将所述待读取数据反馈给所述客户端设备;
或,
所述客户端设备还用于在将所述第一读请求发送至所述目标对象存储设备之前,判断所述待读取数据是否均位于同一所述目标对象存储设备内;如果是,则进将所述第一读请求发送至所述目标对象存储设备,以使所述目标对象存储设备根据所述第一读请求获取本地存储的所述待读取数据并将所述待读取数据反馈给所述客户端设备;如果否,则将所述第一读请求发送至所述目标存储池中对应的所述主对象存储设备,以使所述主对象存储设备确定所述目标对象存储设备后,将所述第一读请求转发至所述目标对象存储设备以获取所述待读取数据并经过所述主对象存储设备将所述待读取数据反馈给所述客户端设备。
23.一种数据读取设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序,所述计算机程序被所述处理器执行时实现如权利要求1至18任意一项所述数据读取方法的步骤。
24.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至18任意一项所述数据读取方法的步骤。
CN202310773072.9A 2023-06-28 2023-06-28 数据读取方法、装置、设备、数据传输系统及存储介质 Active CN116521091B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310773072.9A CN116521091B (zh) 2023-06-28 2023-06-28 数据读取方法、装置、设备、数据传输系统及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310773072.9A CN116521091B (zh) 2023-06-28 2023-06-28 数据读取方法、装置、设备、数据传输系统及存储介质

Publications (2)

Publication Number Publication Date
CN116521091A CN116521091A (zh) 2023-08-01
CN116521091B true CN116521091B (zh) 2023-09-15

Family

ID=87397992

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310773072.9A Active CN116521091B (zh) 2023-06-28 2023-06-28 数据读取方法、装置、设备、数据传输系统及存储介质

Country Status (1)

Country Link
CN (1) CN116521091B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116954523B (zh) * 2023-09-20 2024-01-26 苏州元脑智能科技有限公司 一种存储系统、数据存储方法、数据读取方法和存储介质
CN117390030B (zh) * 2023-12-12 2024-03-08 北京仁科互动网络技术有限公司 多维参数映射配置方法、装置和电子设备

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107608821A (zh) * 2017-09-29 2018-01-19 郑州云海信息技术有限公司 一种基于纠删码的数据读取方法、装置、设备
JP2020038623A (ja) * 2018-09-04 2020-03-12 北京百度网▲訊▼科技有限公司Beijing Baidu Netcom Science And Technology Co.,Ltd. データを記憶するための方法、装置及びシステム
CN112835511A (zh) * 2019-11-25 2021-05-25 浙江宇视科技有限公司 分布式存储集群的数据写入方法、装置、设备和介质
CN113204536A (zh) * 2021-05-27 2021-08-03 济南浪潮数据技术有限公司 一种用于分布式存储系统读写优化方法及装置
CN113515531A (zh) * 2021-05-08 2021-10-19 重庆紫光华山智安科技有限公司 数据访问方法、装置、客户端及存储介质
CN113535068A (zh) * 2020-04-21 2021-10-22 华为技术有限公司 数据读取方法和系统
CN113918380A (zh) * 2020-07-09 2022-01-11 浙江宇视科技有限公司 分布式存储读取系统及方法
CN115309336A (zh) * 2022-08-05 2022-11-08 重庆紫光华山智安科技有限公司 数据写入方法、缓存信息更新方法及相关装置
CN116266101A (zh) * 2021-12-17 2023-06-20 浙江宇视科技有限公司 一种分布式对象存储系统处理方法及装置、存储介质

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104272274B (zh) * 2013-12-31 2017-06-09 华为技术有限公司 一种分布式文件存储系统中的数据处理方法及设备

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107608821A (zh) * 2017-09-29 2018-01-19 郑州云海信息技术有限公司 一种基于纠删码的数据读取方法、装置、设备
JP2020038623A (ja) * 2018-09-04 2020-03-12 北京百度网▲訊▼科技有限公司Beijing Baidu Netcom Science And Technology Co.,Ltd. データを記憶するための方法、装置及びシステム
CN112835511A (zh) * 2019-11-25 2021-05-25 浙江宇视科技有限公司 分布式存储集群的数据写入方法、装置、设备和介质
CN113535068A (zh) * 2020-04-21 2021-10-22 华为技术有限公司 数据读取方法和系统
CN113918380A (zh) * 2020-07-09 2022-01-11 浙江宇视科技有限公司 分布式存储读取系统及方法
CN113515531A (zh) * 2021-05-08 2021-10-19 重庆紫光华山智安科技有限公司 数据访问方法、装置、客户端及存储介质
CN113204536A (zh) * 2021-05-27 2021-08-03 济南浪潮数据技术有限公司 一种用于分布式存储系统读写优化方法及装置
CN116266101A (zh) * 2021-12-17 2023-06-20 浙江宇视科技有限公司 一种分布式对象存储系统处理方法及装置、存储介质
CN115309336A (zh) * 2022-08-05 2022-11-08 重庆紫光华山智安科技有限公司 数据写入方法、缓存信息更新方法及相关装置

Also Published As

Publication number Publication date
CN116521091A (zh) 2023-08-01

Similar Documents

Publication Publication Date Title
CN116521091B (zh) 数据读取方法、装置、设备、数据传输系统及存储介质
TWI544334B (zh) 資料儲存裝置與資料儲存裝置操作方法
CN106951375B (zh) 在存储系统中删除快照卷的方法及装置
CN104407936B (zh) 一种数据快照方法及装置
CN112000627B (zh) 一种数据存储方法、系统、电子设备及存储介质
US11354050B2 (en) Data processing method, apparatus, and computing device
CN109445687B (zh) 一种数据存储方法以及协议服务器
JP2020123038A (ja) メモリシステムおよび制御方法
CN104991868A (zh) 一种多核处理器系统和缓存一致性处理方法
CN113728601B (zh) 优化压缩数据的存储和获取
CN109992566A (zh) 一种文件访问方法、装置、设备及可读存储介质
JP2008158800A (ja) 情報処理装置、履歴管理方法、履歴管理プログラム
CN109597903B (zh) 图像文件处理装置和方法、文件存储系统及存储介质
CN110968530B (zh) 一种基于非易失性内存的键值存储系统和内存访问方法
US9380127B2 (en) Distributed caching and cache analysis
CN108491290B (zh) 一种数据写入方法及装置
CN108205482B (zh) 文件挂载恢复方法
CN103778120A (zh) 全局文件标识生成方法、生成装置及相应的分布式文件系统
US11886225B2 (en) Message processing method and apparatus in distributed system
CN106095331B (zh) 一种固定大文件内部资源的控制方法
CN108287793B (zh) 响应消息的缓冲方法及服务器
CN117591009A (zh) 一种数据管理方法、存储装置及服务器
US9767023B2 (en) Method of controlling data writing to persistent storage device
US20200026467A1 (en) Method, electronic device and computer readable storage medium for i/o management
CN105068896A (zh) 基于raid备份的数据处理方法及装置

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