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

文档序号:35012977发布日期:2023-08-04 05:54阅读:28来源:国知局
数据读取方法、装置、设备、数据传输系统及存储介质与流程

本发明涉及存储,特别是涉及一种数据读取方法、装置、设备、数据传输系统及存储介质。


背景技术:

1、在分布式存储系统中,一般使用副本或者纠删数据冗余机制使得数据更加安全可靠。在副本场景下,每个副本都是一份完整的数据,对外可以提供完整的读写服务。在纠删场景下,分布式存储系统使用放置组(placement groups,pg)管理对象,一个放置组通常会选出一个主对象存储设备(object storage device,osd)与客户端设备进行数据输入输出(input/output,io)交互,响应客户端设备的读写请求。在纠删场景下,客户端设备不论向分布式存储系统发送写数据请求还是读数据请求,均需要经过主对象存储设备进行转发。

2、具体来说,在数据的读取过程中,由主对象存储设备接收客户端的读请求,由主对象存储设备计算出待读取数据所在的对象存储设备后,从本地或从对象存储设备拉取数据进行封装后返回给客户端设备。如果待读取数据位于从对象存储设备,则读请求的传输路径和返回封装数据的传输路径均需要经过主对象存储设备,使得数据与控制消息均需要在客户端设备与主对象存储设备之间、主对象存储设备和从对象存储设备之间转发,延长的数据传输路径导致主对象存储设备成为影响分布式存储系统读性能的瓶颈。

3、如何提升分布式存储系统的读性能,是本领域技术人员需要解决的技术问题。


技术实现思路

1、本发明的目的是提供一种数据读取方法、装置、设备、数据传输系统及存储介质,用于提升分布式存储系统的读性能。

2、为解决上述技术问题,本发明提供一种数据读取方法,应用于分布式存储系统的客户端设备,包括:

3、根据待读取数据所属的目标对象数据在所述分布式存储系统中所在的目标存储池的纠删配置参数,计算得到所述待读取数据所在的目标对象存储设备的信息;

4、生成对所述目标对象存储设备的第一读请求;

5、将所述第一读请求发送至所述目标对象存储设备,以使所述目标对象存储设备根据所述第一读请求获取本地存储的所述待读取数据并将所述待读取数据反馈给所述客户端设备。

6、在一些实施中,所述根据待读取数据所属的目标对象数据在所述分布式存储系统中所在的目标存储池的纠删配置参数,计算得到所述待读取数据所在的目标对象存储设备的信息,包括:

7、根据所述目标对象数据与放置组的第一映射关系,确定所述待读取数据所在的目标放置组的信息;

8、根据所述目标放置组的信息确定所述目标放置组对应的对象存储设备列表;

9、根据所述待读取数据在所述目标对象数据中的位置信息以及所述纠删配置参数,计算得到所述待读取数据所在的目标纠删单元的信息;

10、根据所述目标纠删单元的信息和所述对象存储设备列表,确定所述目标对象存储设备的信息。

11、在一些实施中,所述根据所述目标对象数据与放置组的第一映射关系,确定所述待读取数据所在的目标放置组的信息,包括:

12、应用可扩展哈希下的受控复制算法根据所述第一映射关系,计算得到所述目标放置组的信息。

13、在一些实施中,所述根据所述目标对象数据与放置组的第一映射关系,确定所述待读取数据所在的目标放置组的信息,包括:

14、根据所述目标对象数据的标识信息以及写入所述目标对象数据时接收所述分布式存储系统发送的所述第一映射关系,确定所述目标放置组的信息。

15、在一些实施中,所述根据所述目标放置组的信息确定所述目标放置组对应的对象存储设备列表,包括:

16、应用可扩展哈希下的受控复制算法确定与所述目标放置组对应的所述对象存储设备列表。

17、在一些实施中,所述纠删配置参数包括数据块个数和纠删条带长度;

18、所述根据所述待读取数据在所述目标对象数据中的位置信息以及所述纠删配置参数,计算得到所述待读取数据所在的目标纠删单元的信息,包括:

19、以所述纠删条带长度除以所述数据块个数,得到所述目标存储池的纠删单元长度;

20、以所述待读取数据在所述目标对象数据中的偏移量除以所述纠删单元长度再对所述数据块个数取余,得到所述目标纠删单元的序号。

21、在一些实施中,所述根据所述目标纠删单元的信息和所述对象存储设备列表,确定所述目标对象存储设备的信息,包括:

22、根据所述目标纠删单元的序号在所述对象存储设备列表中查询对应序号的对象存储设备为所述目标对象存储设备,得到所述目标对象存储设备的序号。

23、在一些实施中,还包括:

24、在将所述第一读请求发送至所述目标对象存储设备之前,判断所述目标对象存储设备的数量是否超出精简传输数量阈值;

25、如果是,则将所述第一读请求发送至所述目标存储池中对应的主对象存储设备,以使所述主对象存储设备确定所述目标对象存储设备后,将所述第一读请求转发至所述目标对象存储设备以获取所述待读取数据并经过所述主对象存储设备将所述待读取数据反馈给所述客户端设备;

26、如果否,则进入所述将所述第一读请求发送至所述目标对象存储设备,以使所述目标对象存储设备根据所述第一读请求获取本地存储的所述待读取数据并将所述待读取数据反馈给所述客户端设备的步骤。

27、在一些实施中,所述判断所述目标对象存储设备的数量是否超出精简传输数量阈值,包括:

28、根据所述纠删配置参数,计算得到所述目标存储池的纠删单元长度;

29、根据所述纠删单元长度,将所述待读取数据在所述目标对象数据中的位置信息向下对齐到纠删单元,得到所述待读取数据所在的目标纠删单元的个数;

30、若所述目标纠删单元的个数超出所述精简传输数量阈值,则确定所述目标对象存储设备的数量超出所述精简传输数量阈值;

31、若所述目标纠删单元的个数不超出所述精简传输数量阈值,则确定所述目标对象存储设备的数量不超出所述精简传输数量阈值。

32、在一些实施中,所述根据所述纠删单元长度,将所述待读取数据在所述目标对象数据中的位置信息向下对齐到纠删单元,得到所述待读取数据所在的目标纠删单元的个数,包括:

33、将所述待读取数据在所述目标对象数据中的偏移量向下对齐到纠删单元,得到所述待读取数据的首端所在的第一目标纠删单元的信息;

34、将所述待读取数据在所述目标对象数据中的偏移量与所述待读取数据的数据长度之和向下对齐到纠删单元,得到所述待读取数据的末端所在的第二目标纠删单元的信息;

35、以所述第一目标纠删单元到所述第二目标纠删单元所包含的纠删单元数量为所述目标纠删单元的个数。

36、在一些实施中,还包括:

37、在生成所述第一读请求时,为所述第一读请求添加精简传输路径标志;

38、如果所述目标对象存储设备的数量超出所述精简传输数量阈值,则剔除所述第一读请求中的所述精简传输路径标志后再进入所述将所述第一读请求发送至所述目标存储池中对应的主对象存储设备的步骤。

39、在一些实施中,还包括:

40、如果所述目标对象存储设备的数量不超出所述精简传输数量阈值,则为所述第一读请求添加精简传输路径标志。

41、在一些实施中,还包括:

42、根据所述客户端设备与所述分布式存储系统之间的传输性能测试结果,更新所述精简传输数量阈值。

43、在一些实施中,还包括:

44、在将所述第一读请求发送至所述目标对象存储设备之前,判断所述待读取数据是否均位于同一所述目标对象存储设备内;

45、如果是,则进入所述将所述第一读请求发送至所述目标对象存储设备,以使所述目标对象存储设备根据所述第一读请求获取本地存储的所述待读取数据并将所述待读取数据反馈给所述客户端设备的步骤;

46、如果否,则将所述第一读请求发送至所述目标存储池中对应的主对象存储设备,以使所述主对象存储设备确定所述目标对象存储设备后,将所述第一读请求转发至所述目标对象存储设备以获取所述待读取数据并经过所述主对象存储设备将所述待读取数据反馈给所述客户端设备。

47、在一些实施中,所述判断所述待读取数据是否均位于同一所述目标对象存储设备内,包括:

48、根据所述纠删配置参数,计算得到所述目标存储池的纠删单元长度;

49、将所述待读取数据在所述目标对象数据中的偏移量向下对齐到纠删单元,得到所述待读取数据的首端所在的第一目标纠删单元的信息;

50、将所述待读取数据在所述目标对象数据中的偏移量与所述待读取数据的数据长度之和向下对齐到纠删单元,得到所述待读取数据的末端所在的第二目标纠删单元的信息;

51、若所述第一目标纠删单元和所述第二目标纠删单元为同一纠删单元,则确定所述待读取数据均位于同一所述目标对象存储设备内;

52、若所述第一目标纠删单元和所述第二目标纠删单元不为同一纠删单元,则确定所述待读取数据未均位于同一所述目标对象存储设备内。

53、在一些实施中,所述根据待读取数据所属的目标对象数据在所述分布式存储系统中所在的目标存储池的纠删配置参数,计算得到所述待读取数据所在的目标对象存储设备的信息,包括:

54、获取所述分布式存储系统的对象存储设备地图中所述目标存储池的所述纠删配置参数;

55、根据所述纠删配置参数计算得到所述目标对象存储设备的信息。

56、在一些实施中,所述获取所述分布式存储系统的对象存储设备地图中所述目标存储池的所述纠删配置参数,包括:

57、响应对所述待读取数据的第一读命令,访问所述对象存储设备地图获取所述目标存储池的所述纠删配置参数。

58、在一些实施中,所述获取所述分布式存储系统的对象存储设备地图中所述目标存储池的所述纠删配置参数,包括:

59、获取随着所述分布式存储系统的存储池信息更新而同步到所述客户端设备存储的所述对象存储设备地图中所述目标存储池的所述纠删配置参数。

60、为解决上述技术问题,本发明还提供一种数据读取方法,应用于分布式存储系统中的目标对象存储设备,包括:

61、接收所述分布式存储系统的客户端设备发送的对待读取数据的第一读请求;

62、根据所述第一读请求确定所述待读取数据在本地存储中的位置;

63、自本地存储获取所述待读取数据,并将所述待读取数据反馈给所述客户端设备;

64、其中,所述第一读请求为所述客户端设备根据所述待读取数据所属的目标对象数据在所述分布式存储系统中所在的目标存储池的纠删配置参数,计算得到所述待读取数据所在的所述目标对象存储设备的信息后生成的对所述目标对象存储设备的所述第一读请求。

65、为解决上述技术问题,本发明还提供一种数据读取方法,包括:

66、分布式存储系统中的主对象存储设备收到所述分布式存储系统的客户端设备发送的第二读请求后,判断本地是否存储有所述第二读请求所需的第一待读取数据;

67、如果是,则所述主对象存储设备自本地存储获取所述第一待读取数据,并将所述第一待读取数据反馈给所述客户端设备;

68、如果否,则所述主对象存储设备将所述第二读请求发送至对应的从对象存储设备,并将所述从对象存储设备反馈的所述第一待读取数据发送至所述客户端设备;

69、所述从对象存储设备收到第三读请求后,自本地存储获取所述第三读请求所需的第二待读取数据,并将所述第二待读取数据发送至所述第三读请求的发送方设备。

70、为解决上述技术问题,本发明还提供一种数据传输系统,包括:客户端设备以及与所述客户端设备通信连接的分布式存储系统;

71、其中,所述客户端设备用于根据待读取数据所属的目标对象数据在所述分布式存储系统中所在的目标存储池的纠删配置参数,计算得到所述待读取数据所在的目标对象存储设备的信息;生成对所述目标对象存储设备的第一读请求;将所述第一读请求发送至所述目标对象存储设备,以使所述目标对象存储设备根据所述第一读请求获取本地存储的所述待读取数据并将所述待读取数据反馈给所述客户端设备。

72、在一些实施中,所述分布式存储系统包括设于所述目标存储池的主对象存储设备和从对象存储设备;

73、其中,所述主对象存储设备用于收到第二读请求后,判断本地是否存储有所述第二读请求所需的第一待读取数据;

74、如果是,则所述主对象存储设备自本地存储获取所述第一待读取数据,并将所述第一待读取数据反馈给所述客户端设备;

75、如果否,则所述主对象存储设备将所述第二读请求发送至对应的所述从对象存储设备,并将所述从对象存储设备反馈的所述第一待读取数据发送至所述客户端设备;

76、所述从对象存储设备用于收到第三读请求后,自本地存储获取所述第三读请求所需的第二待读取数据,并将所述第二待读取数据发送至所述第三读请求的发送方设备。

77、为解决上述技术问题,本发明还提供一种数据读取装置,应用于分布式存储系统的客户端设备,包括:

78、第一计算单元,用于根据待读取数据所属的目标对象数据在所述分布式存储系统中所在的目标存储池的纠删配置参数,计算得到所述待读取数据所在的目标对象存储设备的信息;

79、第一生成单元,用于生成对所述目标对象存储设备的第一读请求;

80、第一发送单元,用于将所述第一读请求发送至所述目标对象存储设备,以使所述目标对象存储设备根据所述第一读请求获取本地存储的所述待读取数据并将所述待读取数据反馈给所述客户端设备。

81、为解决上述技术问题,本发明还提供一种数据读取装置,应用于分布式存储系统中的目标对象存储设备,包括:

82、第一接收单元,用于接收所述分布式存储系统的客户端设备发送的对待读取数据的第一读请求;

83、第一查询单元,用于根据所述第一读请求确定所述待读取数据在本地存储中的位置;

84、第一获取单元,用于自本地存储获取所述待读取数据,并将所述待读取数据反馈给所述客户端设备;

85、其中,所述第一读请求为所述客户端设备根据所述待读取数据所属的目标对象数据在所述分布式存储系统中所在的目标存储池的纠删配置参数,计算得到所述待读取数据所在的所述目标对象存储设备的信息后生成的对所述目标对象存储设备的所述第一读请求。

86、为解决上述技术问题,本发明还提供一种数据读取设备,包括:

87、存储器,用于存储计算机程序;

88、处理器,用于执行所述计算机程序,所述计算机程序被所述处理器执行时实现如上述任意一项所述数据读取方法的步骤。

89、为解决上述技术问题,本发明还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如上述任意一项所述数据读取方法的步骤。

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

91、本发明还提供一种数据读取装置、设备、数据传输系统及存储介质,具有上述有益效果,在此不再赘述。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1