分布式存储系统的存储节点、系统、数据处理方法及装置与流程

文档序号:36175487 发布日期:2023-11-25 00:35 阅读:71 来源:国知局
分布式存储系统的存储节点的制作方法

本发明涉及分布式存储,具体涉及分布式存储系统的存储节点、系统、数据处理方法及装置。


背景技术:

1、分布式对象存储采用分布式的系统结构,将数据以切片式或粉碎式分散在多台独立存储服务器,具有较高的可靠性、可用性和存取效率,还易于扩展,已成为云提供商的重要存储服务。

2、相关技术中,分布式对象存储通常是建立在传统linux操作系统(operatingsystem,os)存储堆栈之上的。os作为分布式存储中对象存储管理服务网关(radosgateway,rgw)层和对象存储设备(object storage daemon,osd)之间的中间件,在数据访问过程中(即从用户应用程序模块到osd),用户应用程序接收到的输入输出(input/output,i/o)操作请求需要通过多个复杂且冗余的层进行传输。例如,需要通过os中的虚拟文件系统(virtual file system,vfs)、文件系统(file system,fs)和块(block)io层等实现数据访问和持久性的关键组件。而这些复杂且冗余的层都有各自的语法和语义,这些语法和语义对应的执行过程都消耗主机资源,增加了云服务应用程序请求处理的开销。


技术实现思路

1、有鉴于此,本发明提供了一种分布式存储系统的存储节点、系统、数据处理方法及装置,以解决云服务应用程序请求处理的开销大的问题。

2、第一方面,本发明提供了一种分布式存储系统的存储节点,存储节点包括用户模块、内核模块和对象存储设备,所述对象存储设备上配置有对象驱动器;

3、所述用户模块,用于接收第一输入输出操作请求,并用于将所述第一输入输出操作请求转换为第二输入输出操作请求,以及用于向所述内核模块发送所述第二输入输出操作请求,其中,所述第二输入输出操作请求为以键值对形式表示的所述第一输入输出操作请求,所述键值对中的键数据为标识信息,所述键值对中的值数据为所述第一输入输出操作请求中的访问数据信息;所述内核模块,用于在接收所述第二输入输出操作请求之后,调用所述对象存储设备配置的所述对象驱动器,并向所述对象驱动器发送所述第二输入输出操作请求;所述对象驱动器,用于接收所述第二输入输出操作请求,并用于将所述第二输入输出操作请求转换为第三输入输出操作请求,以及用于根据所述第三输入输出操作请求处理所述对象存储设备的数据,其中,所述第三输入输出请求为将标识信息转换为物理页地址信息的所述第二输入输出操作请求。

4、本发明提供的分布式存储系统的存储节点,通过在对象存储设备配置对象驱动器,使对象驱动器承载对象管理服务,使得分布式对象数据管理功能可以直接在对象存储设备上进行处理,简化了整个分布式存储节点的io堆栈的过程,可以减少分布式对象存储的数据管理开销。而且,对象驱动器承载对象管理服务,使得分布式对象数据管理功能可以直接在对象存储设备上进行处理,也能够确保访问分布式对象存储系统过程的数据原子性、一致性,具有稳定性。基于同等条件的硬件资源情况下,在高并发和多路云分布式对象存储环境中,与传统操作系统相比,能够减少元数据操作(例如按需输入、缓存、映射转换、日志)的数量和同步的io次数,能够节省约30%的io处理时延,键值对形式的对象存储设备在锁竞争上的时延消耗也会降低25%,进而提高整个分布式对象存储的io性能。在以数据为中心的环境中启用对象驱动器可以简化整个数据管理软件堆栈,同时也可以平衡分布式存储功能及其局限性。另外,由于在对象存储设备(osd)内部完成了标识信息到物理页地址信息的转换,减少了元数据的依赖,在对象存储设备(osd)的存储和检索过程中,由于避免了随机性,进而io竞争减少,会增加更多的io处理操作效率。

5、在一种可选的实施方式中,所述对象驱动器包括转换单元和索引管理单元;所述转换单元,用于接收所述第二输入输出操作请求,并将所述第二输入输出操作请求转换为所述第三输入输出操作请求;所述索引管理单元,用于根据所述物理页地址信息和索引信息确定物理地址,以及用于根据所述第三输入输出操作请求处理所述物理地址的数据。

6、在一种可选的实施方式中,所述第二输入输出操作请求的数量为多个,所述对象驱动器还包括命令接口单元和请求队列管理单元;所述命令接口单元,用于接收多个所述第二输入输出操作请求;所述请求队列管理单元,用于缓存多个所述第二输入输出操作请求,并用于依次向所述转换单元发送所述第二输入输出操作请求。

7、通过设置请求队列管理单元,能够对多个第二输入输出操作请求进行管理,进而可以有效地提高io数据处理的效率。

8、在一种可选的实施方式中,所述第三输入输出操作请求的请求类型为读请求类型,所述索引管理单元用于从所述物理地址读取数据。

9、在一种可选的实施方式中,所述第三输入输出操作请求的请求类型为写请求类型,所述索引管理单元用于在所述物理地址写入数据。

10、在一种可选的实施方式中,所述第三输入输出操作请求的请求类型为删除请求类型,所述索引管理单元用于删除所述物理地址的数据。

11、在一种可选的实施方式中,所述索引管理单元还用于在对所述物理地址的数据进行处理时,将处理的数据写入日志,所述日志用于在故障时恢复数据。

12、通过将处理的数据写入日志,在出现故障时能够从日志中恢复数据,保证了对象存储设备存储数据的稳定性。

13、在一种可选的实施方式中,所述索引管理单元还用于在对所述物理地址的数据进行处理时,向存储单元同步处理的所述物理地址的数据。

14、通过存储单元和设备内事务管理提供一致性保证,索引管理单元可以消除对额外日志记录和日志记录机制的需求,通过减少了读/写io操作请求次数。

15、在一种可选的实施方式中,所述存储单元为带电源的动态随机存取存储器。存储单元为带电源的动态随机存取存储器,能够避免数据丢失。

16、在一种可选的实施方式中,所述内核模块包括对象驱动器接口单元和对象驱动器驱动单元;所述对象驱动器接口单元,用于接收所述第二输入输出操作请求;所述对象驱动器驱动单元,用于调用所述对象驱动器,并向所述对象驱动器发送所述第二输入输出操作请求。

17、在一种可选的实施方式中,所述第二输入输出操作请求的数量为多个,所述对象驱动器接口单元包括标识管理单元和缓存管理单元;所述标识管理单元,用于接收多个所述第二输入输出操作请求;所述缓存管理单元,用于缓存多个所述第二输入输出操作请求,并依次向所述对象驱动器驱动单元发送所述第二输入输出操作请求。

18、通过设置缓存管理单元,能够对多个第二输入输出操作请求进行管理,进而可以有效地提高io数据处理的效率。该缓存管理单元可以为直接存储单元,直接存储单元是指一种允许在外部设备和存储器之间直接读写数据的高速传输操作,该传输过程既不通过中央处理器,也不需要中央处理器干预。直接存储单元大于存储设备的协商传输数据大小,通过驱动程序可以异步地提高性能。

19、在一种可选的实施方式中,所述用户模块包括应用程序请求单元和对象存储管理服务网关;所述应用程序请求单元,用于接收第一输入输出操作请求,并向所述对象存储管理服务网关发送所述第一输入输出操作请求;所述对象存储管理服务网关,用于将所述第一输入输出操作请求转换为所述第二输入输出操作请求,并向所述内核模块发送所述第二输入输出操作请求。

20、在一种可选的实施方式中,所述第三输入输出操作请求为超文本传输协议请求。

21、与传统的操作系统的io堆栈相比,由于对象驱动器能够将用户io请求简化为超文本传输协议操作请求,因此,通过键值对在锁竞争上的时延消耗会降低25%。与块io层相比,上述操作可以使元数据操作(如按需输入、缓存、映射转换、日志)的数量和同步io次数大幅度减小,进而提高了整个分布式对象存储系统性能。

22、第二方面,本发明提供了一种分布式存储系统,所述分布式存储系统包括上述第一方面或其对应的任一实施方式的分布式存储系统的存储节点。

23、第三方面,本发明提供了一种数据处理方法,所述数据处理方法应用于上述第一方面或其对应的任一实施方式的分布式存储系统的存储节点,或者所述数据处理方法应用于上述第二方面或其对应的任一实施方式的分布式存储系统,所述方法包括:接收第一输入输出操作请求,其中,所述第一输入输出操作请求包括访问数据信息;将第一输入输出操作请求转换为第二输入输出操作请求,其中,所述第二输入输出操作请求为以键值对形式表示的所述第一输入输出操作请求,所述键值对中的键数据为标识信息,所述键值对中的值数据为所述第一输入输出操作请求中的所述访问数据信息;调用对象存储设备配置的对象驱动器;控制对象驱动器将所述第二输入输出请求转换为第三输入输出操作请求,所述第三输入输出请求为将标识信息转换为物理页地址信息的所述第二输入输出操作请求;控制对象驱动器根据所述第三输入输出操作请求处理所述对象存储设备的数据。

24、本实施例提供的数据处理方法,在接收到第一输入输出操作请求之后,将第一输入输出操作请求转换为第二输入输出请求。然后,调用对象存储设备配置的对象驱动器,控制对象驱动器将第二输入输出请求转换为第三输入输出请求,并控制对象驱动器根据第三输入输出操作请求处理对象存储设备的数据。本发明利用对象存储设备配置的对象驱动器,使对象驱动器承载对象管理服务,使得分布式对象数据管理功能可以直接在对象存储设备上进行处理,简化了整个分布式存储节点io堆栈的过程,可以减少分布式对象存储的数据管理开销。

25、在一种可选的实施方式中,所述第三输入输出操作请求的请求类型为读请求类型,所述控制对象驱动器根据所述第三输入输出操作请求处理所述对象存储设备的数据,包括:根据所述物理页地址信息和索引信息确定物理地址;从所述物理地址读取数据。

26、在一种可选的实施方式中,所述第三输入输出操作请求的请求类型为写请求类型,所述控制对象驱动器根据所述第三输入输出操作请求处理所述对象存储设备的数据,包括:根据所述物理页地址信息和索引信息确定物理地址;在所述物理地址写入数据。

27、在一种可选的实施方式中,所述第三输入输出操作请求的请求类型为删除请求类型,所述控制对象驱动器根据所述第三输入输出操作请求处理所述对象存储设备的数据,包括:根据所述物理页地址信息和索引信息确定物理地址;删除所述物理地址的数据。

28、在一种可选的实施方式中,所述第一输入输出请求的数量为多个,在所述将第一输入输出操作请求转换为第二输入输出操作请求之前,所述方法还包括:对多个所述第一输入输出操作请求进行排序,得到第一排序结果;所述将第一输入输出操作请求转换为第二输入输出操作请求,包括:根据所述第一排序结果依次将所述第一输入输出操作请求转换为所述第二输入输出操作请求。

29、第四方面,本发明还提供了一种数据处理装置,所述数据处理装置,包括:接收单元,用于接收第一输入输出操作请求,其中,所述第一输入输出操作请求包括访问数据信息;第一转换单元,用于将第一输入输出操作请求转换为第二输入输出操作请求,其中,所述第二输入输出操作请求为以键值对形式表示的所述第一输入输出操作请求,所述键值对中的键数据为标识信息,所述键值对中的值数据为所述第一输入输出操作请求中的所述访问数据信息;调用单元,用于调用对象存储设备配置的对象驱动器;第一控制单元,用于控制对象驱动器将所述第二输入输出请求转换为第三输入输出操作请求,所述第三输入输出请求为将标识信息转换为物理页地址信息的所述第二输入输出操作请求;第二控制单元,用于控制对象驱动器根据所述第三输入输出操作请求处理所述对象存储设备的数据。

30、在一种可选的实施方式中,所述第三输入输出操作请求的请求类型为读请求类型,所述第二控制单元包括:第一确定单元,用于根据所述物理页地址信息和索引信息确定物理地址;读取单元,用于从所述物理地址读取数据。

31、在一种可选的实施方式中,所述第三输入输出操作请求的请求类型为写请求类型,所述第二控制单元包括:第二确定单元,用于根据所述物理页地址信息和索引信息确定物理地址;写入单元,用于在所述物理地址写入数据。

32、在一种可选的实施方式中,所述第三输入输出操作请求的请求类型为删除请求类型,所述第二控制单元包括:第三确定单元,用于根据所述物理页地址信息和索引信息确定物理地址;删除单元,用于删除所述物理地址的数据。

33、在一种可选的实施方式中,所述第一输入输出请求的数量为多个,所述装置还包括:排序单元,用于在将第一输入输出操作请求转换为第二输入输出操作请求之前,对多个所述第一输入输出操作请求进行排序,得到第一排序结果;所述第一转换单元包括:第一转换子单元,用于根据所述第一排序结果依次将所述第一输入输出操作请求转换为所述第二输入输出操作请求。

34、第五方面,本发明提供了一种计算机设备,包括:存储器和处理器,存储器和处理器之间互相通信连接,存储器中存储有计算机指令,处理器通过执行计算机指令,从而执行上述第三方面或其对应的任一实施方式的数据处理方法。

35、第六方面,本发明提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机指令,计算机指令用于使计算机执行上述第一方面或其对应的任一实施方式的数据处理方法。

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