CN117093158B - 分布式存储系统的存储节点、系统、数据处理方法及装置 - Google Patents
分布式存储系统的存储节点、系统、数据处理方法及装置 Download PDFInfo
- Publication number
- CN117093158B CN117093158B CN202311339987.5A CN202311339987A CN117093158B CN 117093158 B CN117093158 B CN 117093158B CN 202311339987 A CN202311339987 A CN 202311339987A CN 117093158 B CN117093158 B CN 117093158B
- Authority
- CN
- China
- Prior art keywords
- input
- output operation
- operation request
- request
- data
- 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
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 17
- 238000012545 processing Methods 0.000 claims abstract description 44
- 238000000034 method Methods 0.000 claims description 46
- 230000015654 memory Effects 0.000 claims description 38
- 230000008569 process Effects 0.000 claims description 33
- 238000006243 chemical reaction Methods 0.000 claims description 27
- 238000012546 transfer Methods 0.000 claims description 10
- 238000004891 communication Methods 0.000 claims description 4
- 238000013523 data management Methods 0.000 abstract description 16
- 238000007726 management method Methods 0.000 description 69
- 230000006870 function Effects 0.000 description 12
- 238000012163 sequencing technique Methods 0.000 description 8
- 238000010586 diagram Methods 0.000 description 6
- 238000013507 mapping Methods 0.000 description 5
- 230000007246 mechanism Effects 0.000 description 4
- 230000001360 synchronised effect Effects 0.000 description 4
- 238000012005 ligant binding assay Methods 0.000 description 3
- 230000003068 static effect Effects 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000002688 persistence Effects 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 230000003139 buffering effect Effects 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 210000003041 ligament Anatomy 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/0643—Management of files
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
技术领域
本发明涉及分布式存储技术领域,具体涉及分布式存储系统的存储节点、系统、数据处理方法及装置。
背景技术
分布式对象存储采用分布式的系统结构,将数据以切片式或粉碎式分散在多台独立存储服务器,具有较高的可靠性、可用性和存取效率,还易于扩展,已成为云提供商的重要存储服务。
相关技术中,分布式对象存储通常是建立在传统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层等实现数据访问和持久性的关键组件。而这些复杂且冗余的层都有各自的语法和语义,这些语法和语义对应的执行过程都消耗主机资源,增加了云服务应用程序请求处理的开销。
发明内容
有鉴于此,本发明提供了一种分布式存储系统的存储节点、系统、数据处理方法及装置,以解决云服务应用程序请求处理的开销大的问题。
第一方面,本发明提供了一种分布式存储系统的存储节点,存储节点包括用户模块、内核模块和对象存储设备,所述对象存储设备上配置有对象驱动器;
所述用户模块,用于接收第一输入输出操作请求,并用于将所述第一输入输出操作请求转换为第二输入输出操作请求,以及用于向所述内核模块发送所述第二输入输出操作请求,其中,所述第二输入输出操作请求为以键值对形式表示的所述第一输入输出操作请求,所述键值对中的键数据为标识信息,所述键值对中的值数据为所述第一输入输出操作请求中的访问数据信息;所述内核模块,用于在接收所述第二输入输出操作请求之后,调用所述对象存储设备配置的所述对象驱动器,并向所述对象驱动器发送所述第二输入输出操作请求;所述对象驱动器,用于接收所述第二输入输出操作请求,并用于将所述第二输入输出操作请求转换为第三输入输出操作请求,以及用于根据所述第三输入输出操作请求处理所述对象存储设备的数据,其中,所述第三输入输出请求为将标识信息转换为物理页地址信息的所述第二输入输出操作请求。
本发明提供的分布式存储系统的存储节点,通过在对象存储设备配置对象驱动器,使对象驱动器承载对象管理服务,使得分布式对象数据管理功能可以直接在对象存储设备上进行处理,简化了整个分布式存储节点的IO堆栈的过程,可以减少分布式对象存储的数据管理开销。而且,对象驱动器承载对象管理服务,使得分布式对象数据管理功能可以直接在对象存储设备上进行处理,也能够确保访问分布式对象存储系统过程的数据原子性、一致性,具有稳定性。基于同等条件的硬件资源情况下,在高并发和多路云分布式对象存储环境中,与传统操作系统相比,能够减少元数据操作(例如按需输入、缓存、映射转换、日志)的数量和同步的IO次数,能够节省约30%的IO处理时延,键值对形式的对象存储设备在锁竞争上的时延消耗也会降低25%,进而提高整个分布式对象存储的IO性能。在以数据为中心的环境中启用对象驱动器可以简化整个数据管理软件堆栈,同时也可以平衡分布式存储功能及其局限性。另外,由于在对象存储设备(OSD)内部完成了标识信息到物理页地址信息的转换,减少了元数据的依赖,在对象存储设备(OSD)的存储和检索过程中,由于避免了随机性,进而IO竞争减少,会增加更多的IO处理操作效率。
在一种可选的实施方式中,所述对象驱动器包括转换单元和索引管理单元;所述转换单元,用于接收所述第二输入输出操作请求,并将所述第二输入输出操作请求转换为所述第三输入输出操作请求;所述索引管理单元,用于根据所述物理页地址信息和索引信息确定物理地址,以及用于根据所述第三输入输出操作请求处理所述物理地址的数据。
在一种可选的实施方式中,所述第二输入输出操作请求的数量为多个,所述对象驱动器还包括命令接口单元和请求队列管理单元;所述命令接口单元,用于接收多个所述第二输入输出操作请求;所述请求队列管理单元,用于缓存多个所述第二输入输出操作请求,并用于依次向所述转换单元发送所述第二输入输出操作请求。
通过设置请求队列管理单元,能够对多个第二输入输出操作请求进行管理,进而可以有效地提高IO数据处理的效率。
在一种可选的实施方式中,所述第三输入输出操作请求的请求类型为读请求类型,所述索引管理单元用于从所述物理地址读取数据。
在一种可选的实施方式中,所述第三输入输出操作请求的请求类型为写请求类型,所述索引管理单元用于在所述物理地址写入数据。
在一种可选的实施方式中,所述第三输入输出操作请求的请求类型为删除请求类型,所述索引管理单元用于删除所述物理地址的数据。
在一种可选的实施方式中,所述索引管理单元还用于在对所述物理地址的数据进行处理时,将处理的数据写入日志,所述日志用于在故障时恢复数据。
通过将处理的数据写入日志,在出现故障时能够从日志中恢复数据,保证了对象存储设备存储数据的稳定性。
在一种可选的实施方式中,所述索引管理单元还用于在对所述物理地址的数据进行处理时,向存储单元同步处理的所述物理地址的数据。
通过存储单元和设备内事务管理提供一致性保证,索引管理单元可以消除对额外日志记录和日志记录机制的需求,通过减少了读/写IO操作请求次数。
在一种可选的实施方式中,所述存储单元为带电源的动态随机存取存储器。存储单元为带电源的动态随机存取存储器,能够避免数据丢失。
在一种可选的实施方式中,所述内核模块包括对象驱动器接口单元和对象驱动器驱动单元;所述对象驱动器接口单元,用于接收所述第二输入输出操作请求;所述对象驱动器驱动单元,用于调用所述对象驱动器,并向所述对象驱动器发送所述第二输入输出操作请求。
在一种可选的实施方式中,所述第二输入输出操作请求的数量为多个,所述对象驱动器接口单元包括标识管理单元和缓存管理单元;所述标识管理单元,用于接收多个所述第二输入输出操作请求;所述缓存管理单元,用于缓存多个所述第二输入输出操作请求,并依次向所述对象驱动器驱动单元发送所述第二输入输出操作请求。
通过设置缓存管理单元,能够对多个第二输入输出操作请求进行管理,进而可以有效地提高IO数据处理的效率。该缓存管理单元可以为直接存储单元,直接存储单元是指一种允许在外部设备和存储器之间直接读写数据的高速传输操作,该传输过程既不通过中央处理器,也不需要中央处理器干预。直接存储单元大于存储设备的协商传输数据大小,通过驱动程序可以异步地提高性能。
在一种可选的实施方式中,所述用户模块包括应用程序请求单元和对象存储管理服务网关;所述应用程序请求单元,用于接收第一输入输出操作请求,并向所述对象存储管理服务网关发送所述第一输入输出操作请求;所述对象存储管理服务网关,用于将所述第一输入输出操作请求转换为所述第二输入输出操作请求,并向所述内核模块发送所述第二输入输出操作请求。
在一种可选的实施方式中,所述第三输入输出操作请求为超文本传输协议请求。
与传统的操作系统的IO堆栈相比,由于对象驱动器能够将用户IO请求简化为超文本传输协议操作请求,因此,通过键值对在锁竞争上的时延消耗会降低25%。与块IO层相比,上述操作可以使元数据操作(如按需输入、缓存、映射转换、日志)的数量和同步IO次数大幅度减小,进而提高了整个分布式对象存储系统性能。
第二方面,本发明提供了一种分布式存储系统,所述分布式存储系统包括上述第一方面或其对应的任一实施方式的分布式存储系统的存储节点。
第三方面,本发明提供了一种数据处理方法,所述数据处理方法应用于上述第一方面或其对应的任一实施方式的分布式存储系统的存储节点,或者所述数据处理方法应用于上述第二方面或其对应的任一实施方式的分布式存储系统,所述方法包括:接收第一输入输出操作请求,其中,所述第一输入输出操作请求包括访问数据信息;将第一输入输出操作请求转换为第二输入输出操作请求,其中,所述第二输入输出操作请求为以键值对形式表示的所述第一输入输出操作请求,所述键值对中的键数据为标识信息,所述键值对中的值数据为所述第一输入输出操作请求中的所述访问数据信息;调用对象存储设备配置的对象驱动器;控制对象驱动器将所述第二输入输出请求转换为第三输入输出操作请求,所述第三输入输出请求为将标识信息转换为物理页地址信息的所述第二输入输出操作请求;控制对象驱动器根据所述第三输入输出操作请求处理所述对象存储设备的数据。
本实施例提供的数据处理方法,在接收到第一输入输出操作请求之后,将第一输入输出操作请求转换为第二输入输出请求。然后,调用对象存储设备配置的对象驱动器,控制对象驱动器将第二输入输出请求转换为第三输入输出请求,并控制对象驱动器根据第三输入输出操作请求处理对象存储设备的数据。本发明利用对象存储设备配置的对象驱动器,使对象驱动器承载对象管理服务,使得分布式对象数据管理功能可以直接在对象存储设备上进行处理,简化了整个分布式存储节点IO堆栈的过程,可以减少分布式对象存储的数据管理开销。
在一种可选的实施方式中,所述第三输入输出操作请求的请求类型为读请求类型,所述控制对象驱动器根据所述第三输入输出操作请求处理所述对象存储设备的数据,包括:根据所述物理页地址信息和索引信息确定物理地址;从所述物理地址读取数据。
在一种可选的实施方式中,所述第三输入输出操作请求的请求类型为写请求类型,所述控制对象驱动器根据所述第三输入输出操作请求处理所述对象存储设备的数据,包括:根据所述物理页地址信息和索引信息确定物理地址;在所述物理地址写入数据。
在一种可选的实施方式中,所述第三输入输出操作请求的请求类型为删除请求类型,所述控制对象驱动器根据所述第三输入输出操作请求处理所述对象存储设备的数据,包括:根据所述物理页地址信息和索引信息确定物理地址;删除所述物理地址的数据。
在一种可选的实施方式中,所述第一输入输出请求的数量为多个,在所述将第一输入输出操作请求转换为第二输入输出操作请求之前,所述方法还包括:对多个所述第一输入输出操作请求进行排序,得到第一排序结果;所述将第一输入输出操作请求转换为第二输入输出操作请求,包括:根据所述第一排序结果依次将所述第一输入输出操作请求转换为所述第二输入输出操作请求。
第四方面,本发明还提供了一种数据处理装置,所述数据处理装置,包括:接收单元,用于接收第一输入输出操作请求,其中,所述第一输入输出操作请求包括访问数据信息;第一转换单元,用于将第一输入输出操作请求转换为第二输入输出操作请求,其中,所述第二输入输出操作请求为以键值对形式表示的所述第一输入输出操作请求,所述键值对中的键数据为标识信息,所述键值对中的值数据为所述第一输入输出操作请求中的所述访问数据信息;调用单元,用于调用对象存储设备配置的对象驱动器;第一控制单元,用于控制对象驱动器将所述第二输入输出请求转换为第三输入输出操作请求,所述第三输入输出请求为将标识信息转换为物理页地址信息的所述第二输入输出操作请求;第二控制单元,用于控制对象驱动器根据所述第三输入输出操作请求处理所述对象存储设备的数据。
在一种可选的实施方式中,所述第三输入输出操作请求的请求类型为读请求类型,所述第二控制单元包括:第一确定单元,用于根据所述物理页地址信息和索引信息确定物理地址;读取单元,用于从所述物理地址读取数据。
在一种可选的实施方式中,所述第三输入输出操作请求的请求类型为写请求类型,所述第二控制单元包括:第二确定单元,用于根据所述物理页地址信息和索引信息确定物理地址;写入单元,用于在所述物理地址写入数据。
在一种可选的实施方式中,所述第三输入输出操作请求的请求类型为删除请求类型,所述第二控制单元包括:第三确定单元,用于根据所述物理页地址信息和索引信息确定物理地址;删除单元,用于删除所述物理地址的数据。
在一种可选的实施方式中,所述第一输入输出请求的数量为多个,所述装置还包括:排序单元,用于在将第一输入输出操作请求转换为第二输入输出操作请求之前,对多个所述第一输入输出操作请求进行排序,得到第一排序结果;所述第一转换单元包括:第一转换子单元,用于根据所述第一排序结果依次将所述第一输入输出操作请求转换为所述第二输入输出操作请求。
第五方面,本发明提供了一种计算机设备,包括:存储器和处理器,存储器和处理器之间互相通信连接,存储器中存储有计算机指令,处理器通过执行计算机指令,从而执行上述第三方面或其对应的任一实施方式的数据处理方法。
第六方面,本发明提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机指令,计算机指令用于使计算机执行上述第一方面或其对应的任一实施方式的数据处理方法。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是一种分布式存储系统的存储节点的结构示意图;
图2是根据本发明实施例的一种分布式存储系统的存储节点的结构示意图;
图3是根据本发明实施例的又一种分布式存储系统的存储节点的结构示意图;
图4是根据本发明实施例的一种数据处理方法的流程示意图;
图5是根据本发明实施例的一种数据处理装置的结构框图;
图6是本发明实施例的计算机设备的硬件结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明提供了一种分布式存储系统的存储节点,可以应用于分布式存储系统。示例性的,节点可以为服务器或者计算机等电子设备。
在分布式存储系统中,对象存储节点通过网络接收应用程序的对象IO操作请求之后,由对象存储管理服务网关(RGW)处理。RGW向应用程序提供访问分布式存储系统的表现层状态转移应用程序接口(Representational State Transfer ApplicationProgramming Interface,Rest API)。该Rest API支持Amazon S3和openstack swift两种接口,从而负责数据管理。然而,实际的IO操作请求是由后端分布式存储服务器处理的,后端分布式存储服务器称为对象存储设备(OSD),用于持久化存储对象数据。其中,对象存储设备(OSD)能够将数据以对象的形式存储在集群中每个存储节点的物理磁盘上。
由于生产环境中的成熟度和便利性,通常,分布式存储节点构建在Linux操作系统OS堆栈之上。OS作为分布式存储RGW层和OSD之间的中间件,对象存储在分布式级别的性能受到本地节点操作系统OS的显著影响,因此,增加了云服务应用程序请求处理的开销。
相关技术中,对象存储通常是建立在传统Linux操作系统OS存储堆栈之上的,其中IO请求通过多个复杂且冗余的分层架构进行传输。随着存储服务系统对性能、一致性和容错性要求的不断提高,对象管理的复杂性急剧增加,在IO数据路径中会遇到更多的中间层。例如,OS中的虚拟文件系统(VFS)、文件系统(FS)和块(Block)IO层。而这些中间层都会添加各自的语法和语义,这些语法和语义消耗主机资源,例如,用于数据和元数据的计算、内存或者缓存等。给分布式对象存储性能带来了巨大挑战。这些中间层的编排和设计影响了分布式存储系统的整体性能,即分布式对象存储管理的效率。
具体地,如图1所示,在客户端访问分布式对象存储节点时,首先经过用户空间(用户模块)110,用户空间110的用户应用程序请求单元111和对象存储管理服务网关(RGW)112作为主机进程在分布式对象存储节点上运行,构成用户空间管理应用接口、负载均衡、一致性、容错等分布式服务。分布式对象存储管理服务网关(RGW)112将通过网络接收到的用户(或者对象)IO操作请求(Object-IO)转换为分布式对象存储服务器中的位置或文件操作请求(File-IO)。示例性的,在将Object-IO转换成File-IO的过程中,分布式对象存储管理服务网关(RGW)112还可能写日志,以便于存在故障时的数据恢复。
其次,File-IO进入内核空间(内核模块)120,内核模块120的操作系统为用户空间110和存储空间130之间的中间件。操作系统负责存储设备的持久性数据(和元数据)管理,为物理数据管理的软件和硬件资源的映射关系、一致性、数据分配和调度提供了机制。在操作系统中,虚拟文件系统(VFS)层121、文件系统(FS)层122和块(Block)IO层123是实现数据访问和持久性的最关键组件。
具体地,虚拟文件系统(VFS)层121通过系统调用为应用程序提供抽象和统一接口,以便跨对象存储设备(OSD)130访问文件系统(FS)层122。示例性的,虚拟文件系统(VFS)层121可以通过页缓存(page cache)访问文件系统(FS)层122。虚拟文件系统(VFS)层121的主要功能包括并发控制,权限检查,缓冲区和元数据缓存。在分布式对象存储节点中,大量的对象查找操作通常会导致大量的随机元数据小IO。因此,有效的虚拟文件系统(VFS)层121缓存对减少底层存储设备(例如文件系统(FS))元数据操作起着至关重要的作用。
文件系统(FS)层122管理数据、元数据和扩展属性(inode、xattr)。文件系统(FS)层122为应用程序提供了兼容posix的通用接口,用于访问对象存储设备(OSD)130上的数据。即,文件系统的主要职责包括文件/块分配,元数据组织,并发控制,进行文件IO操作请求(File IO)到块IO操作请求(block IO)的转换。随着数据存储的不断存储,基于传统文件系统的数据和元数据布局,会导致文件系统缓存或预取数据的能力下降。因此,文件系统(FS)层122会消耗更多的计算、内存和磁盘资源,同时增加请求处理和日志记录的开销。
块(Block)IO层123通过设备驱动程序(驱动设备)向对象存储设备(OSD)130调度块IO操作请求,接收文件系统(FS)层122的文件IO操作请求后,将其转换为块IO操作请求结构,块IO操作请求结构是内核中表示离散IO事件的数据结构,即连续逻辑块地址(LogicBlock Address,LBA)链表。内核空间中的大部分时间都消耗在块(Block)IO层123和文件系统(FS)层122上,这意味着文件块分配、资源(锁)争用、队列调度、多路复用和串行IO请求的平均延迟会增加。由于操作系统内核请求处理延迟,可能导致近35%的对象存储设备(OSD)130性能未得到充分利用。
再次,对象存储设备(OSD)130接收来自于操作系统的块IO操作请求,并在内部将块IO请求转换为LBA物理页地址(Physical Page address),通过索引管理模块进行管理。应理解,对象存储设备(OSD)130负责实际的物理存储,并提供存储数据的检索机制。
简而言之,操作系统接收来自分布式对象存储网关服务(RGW)的文件IO请求,其中虚拟文件系统(VFS)层121为文件系统(FS)层122提供统一的接口。文件系统(FS)层122重新索引请求,创建对应的元数据,如索引节点和日志。此外,请求被转换成包含LBA的多个块IO,由块(Block)IO层123通过驱动设备(程序)调度到对象存储设备(OSD)130。即在分布式对象存储节点的操作系统下,应用程序的一个IO操作请求处理操作需要进行多个IO地址转换(Object-IO→File-IO→Block-IO→Physical Page address)。在IO数据路径中遇到的中间层越多,请求处理所消耗的延迟就越高。也就是说,基于上述传统Linux操作系统OS多个复杂且冗余的分层架构处理IO操作请求,会增加性能开销,影响分布式存储管理的效率。
有鉴于此,本发明提供了一种分布式存储系统的存储节点,通过在存储节点设置对象驱动器,能够简化存储节点的IO堆栈过程,减少分布式对象存储的数据管理开销。
下面结合附图对本发明提供的分布式存储系统的存储节点进行详细说明。
如图2所示,本发明提供的分布式存储系统的存储节点包括用户模块210、内核模块220和对象存储设备230,对象存储设备230上配置对象驱动器231。
具体地,用户模块210用于接收第一输入输出操作请求,并用于将第一输入输出操作请求(Object-IO)转化为第二输入输出操作请求(Object ID),以及用于向内核模块220发送第二输入输出操作请求。其中,第二输入输出操作请求为以键值对(key-value)形式表示的第一输入输出操作请求,键值对中的键数据(key)为标识信息(OID),键值对中的值数据(value)为第一输入输出操作请求中的访问数据信息。对象的OID即Object ID,OID通过数据结构保存客户端请求信息(第一输入输出操作请求)。OID作为键数据(key)可以通过Object库和命令头(header)中的请求类型直接被应用程序使用。
示例性的,标识信息用于识别对象存储设备的键值对。标识信息可以为表征访问数据信息的关键字,标识信息也可以为访问数据信息对应的索引信息。例如,在访问数据信息为文件时,标识信息可以为文件名。
示例性的,在接收第一输入输出操作请求之后,可以通过静态哈希(hash)函数确定OID。
内核模块220用于在接收第二输入输出操作请求之后,调用对象存储设备(OSD)230配置的对象驱动器231,并向对象驱动器231发送第二输入输出操作请求。具体地,内核模块220充当了用户模块和OSD之间的纽带,提供了接口来持久化对象存储键值对。
对象驱动器231用于接收第二输入输出操作请求,并在接收第二输入输出操作请求之后,用于将第二输入输出操作请求转化为第三输入输出操作请求,以及用于根据第三输入输出操作请求处理对象存储设备230的数据。其中,第三输入输出请求为将标识信息转换为物理页地址信息的第二输入输出操作请求。即,对象驱动器231支持对象操作请求到物理页寻址的对象数据管理操作。相比于传统的基于操作系统的堆栈,通过对象驱动器具有更高效的IO路径。
本发明提供的分布式存储系统的存储节点,通过在对象存储设备230配置对象驱动器231,使对象驱动器231承载对象管理服务,使得分布式对象数据管理功能可以直接在对象存储设备230上进行处理,简化了整个分布式存储节点的IO堆栈的过程,可以减少分布式对象存储的数据管理开销。而且,对象驱动器231承载对象管理服务,使得分布式对象数据管理功能可以直接在对象存储设备230上进行处理,也能够确保访问分布式对象存储系统过程的数据原子性、一致性,具有稳定性。基于同等条件的硬件资源情况下,在高并发和多路云分布式对象存储环境中,与传统操作系统相比,能够减少元数据操作(例如按需输入、缓存、映射转换、日志)的数量和同步的IO次数,能够节省约30%的IO处理时延,键值对形式的对象存储设备230在锁竞争上的时延消耗也会降低25%,进而提高整个分布式对象存储的IO性能。在以数据为中心的环境中启用对象驱动器231可以简化整个数据管理软件堆栈,同时也可以平衡分布式存储功能及其局限性。另外,由于在对象存储设备(OSD)230内部完成了标识信息到物理页地址信息的转换,减少了元数据的依赖,在对象存储设备(OSD)230的存储和检索过程中,由于避免了随机性,进而IO竞争减少,会增加更多的IO处理操作效率。
在一些可选的实施方式中,存储节点可以包括多个对象存储设备,每个对象存储设备均配置对象驱动器。此时,内核模块接收第二输入输出操作请求之后,可以基于OID确定目标对象存储设备,然后调用目标对象存储设备配置的对象驱动器。其中,目标对象存储设备为多个对象存储设备中包括OID的对象存储设备。
下面结合附图对本发明提供的分布式存储系统的存储节点做进一步说明。
示例性的,如图3所示,用户模块210包括应用程序请求单元211和对象存储管理服务网关212。具体地,应用程序请求单元211,用于接收来自于客户端的第一输入输出操作请求,并向对象存储管理服务网关212发送第一输入输出操作请求。对象存储管理服务网关212用于将第一输入输出操作请求转化为第二输入输出操作请求,并向内核模块220发送第二输入输出操作请求。对象存储管理服务网关212使用键值存储维护对象的数据和元数据索引,同时编排对象存储操作。
内核模块220包括对象驱动器接口(API)单元221和对象驱动器驱动单元222。具体地,对象驱动器接口单元221用于接收第二输入输出操作请求,对象驱动器驱动单元222用于调用对象驱动器231,并向对象驱动器231发送第二输入输出操作请求。
本发明的对象驱动器接口单元221对上层的应用程序请求单元211透明,内部IO转换进行封装,能够提升数据处理的安全性,提高分布式文件存储的竞争力和维护成本。另外,对象驱动器接口单元221在不同硬件设备具有可移植性和通用性,适用于分布式对象存储系统标准S3接口库。
示例性的,第一输入输出请求的数量可能为多个,相应地,第二输入输出操作请求的数量也为多个。在该实施例中,对象驱动器接口单元221还包括标识管理单元2211和缓存管理单元2212。具体地,标识管理单元2211用于接收多个第二输入输出操作请求。缓存管理单元2212用于缓存多个第二输入输出操作请求,并依次向对象驱动器驱动单元222发送第二输入输出操作请求。通过设置缓存管理单元,能够对多个第二输入输出操作请求进行管理,进而可以有效地提高IO数据处理的效率。该缓存管理单元可以为直接存储单元,直接存储单元是指一种允许在外部设备和存储器之间直接读写数据的高速传输操作,该传输过程既不通过中央处理器(Central Processing Unit,CPU),也不需要CPU干预。直接存储单元大于存储设备的协商传输数据大小,通过驱动程序可以异步地提高性能。
对象驱动器231包括转换单元2313和索引管理单元2314。具体地,转换单元2313用于接收第二输入输出操作请求,并将第二操作请求转换为第三输入输出操作请求。第三输入输出请求为将标识信息转换为物理页地址信息的第二输入输出操作请求。也就是说,在接收到第二输入输出操作请求之后,将第二输入输出操作请求的标识信息转换为相应地物理页地址,转换之后的第二输入输出操作请求为第三输入输出操作请求,第三输入输出操作请求包括物理页地址信息。示例性的,第三输入输出操作请求可以为超文本传输(HyperText Transfer Protocol,HTTP)协议请求。例如,第三输入输出操作请求可以为查询(Put),获取(get),删除(delete),存储(exist),迭代(iterate)等HTTP协议操作请求。
与传统的操作系统IO堆栈相比,由于对象驱动器231能够将用户IO请求简化为HTTP协议操作请求,因此,通过键值对堆栈在锁竞争上的时延消耗会降低25%。与块IO层相比,上述操作可以使元数据操作(如按需输入、缓存、映射转换、日志)的数量和同步IO次数大幅度减小,进而提高了整个分布式对象存储系统性能。
索引管理单元2314用于根据物理页地址信息和索引信息确定物理地址,以及用于根据第三输入输出操作请求处理物理地址的数据。示例性的,索引管理单元2314预配置物理页地址信息和索引信息的第一对应关系,以及索引信息与物理地址的第二对应关系。在确定物理页地址信息之后,根据第一对应关系可以确定于物理页地址对应的索引信息,在确定索引信息之后,可以根据第二对应关系确定与索引信息对应的物理地址。
示例性的,在确定物理地址之后,在第三输入输出操作请求的请求类型为读请求类型的情况下,根据第三输入输出操作请求处理物理地址的数据具体可以为:从物理地址读取数据。在第三输入输出操作请求的请求类型为写请求类型的情况下,根据第三输入输出操作请求处理物理地址的数据具体可以为:在物理地址写入数据。在第三输入输出操作请求的请求类型为删除请求类型的情况下,根据第三输入输出操作请求处理物理地址的数据具体可以为:删除物理地址的数据。
在一些可选的实施方式中,第二输入输出请求的数量为多个,在该实施例中,对象驱动器231还包括命令接口单元2311和请求队列管理单元2312。具体地,命令接口单元2311用于接收多个第二输入输出操作请求,请求队列管理单元2312用于缓存多个第二输入输出操作请求,并用于依次向转换单元2313发送第二输入输出请求。
进一步地,在一些可选的实施方式中,索引管理单元2314还用于在处理物理地址的数据时,将处理的数据写入日志,日志用于在故障时恢复对象存储设备230的数据。示例性的,可以在日志(Journal)模块写日志。通过将处理的数据写入日志,在出现故障时能够从日志中恢复数据,保证了对象存储设备230存储数据的稳定性。
在另一些可选的实施方式中,索引管理单元2314还用于在处理物理地址的数据时,向存储单元同步处理的物理地址的数据。示例性的,存储单元可以为带电源的动态随机存取存储器(Dynamic Random Access Memory,DRAM)。通过存储单元和设备内事务管理提供一致性保证,索引管理单元可以消除对额外日志记录和日志记录机制的需求,通过减少了读/写IO操作请求次数。
本发明还提供了一种分布式存储系统,该分布式存储系统包括至少一个如上述任一实施例所述的存储节点。
在本发明中还提供了一种数据处理方法,可用于上述的分布式存储系统的存储节点,图4是根据本发明实施例的一种数据处理方法的流程示意图,如图4所示,该方法包括如下步骤:
步骤S401,接收第一输入输出操作请求。
其中,第一输入输出操作请求包括访问数据信息。示例性的,第一输入输出操作请求可以为写请求、读请求或者删除请求等。例如,访问数据信息可以为文件。
示例性的,第一输入输出操作请求可以来自于客户端。例如,客户端可以为计算机、电脑、服务器等电子设备。
步骤S402,将第一输入输出操作请求转换为第二输入输出操作请求。
其中,第二输入输出操作请求为以键值对形式表示的第一输入输出操作请求。键值对(key-value)中的键数据(key)为标识信息(OID),键值对中的值数据为第一输入输出操作请求中的访问数据信息。
示例性的,标识信息用于识别对象存储设备的键值对。标识信息可以为表征访问数据信息的关键字或者访问数据信息的索引。
示例性的,在接收第一输入输出操作请求之后,可以通过静态哈希(hash)函数确定OID。例如,访问数据信息为文件,可以通过静态哈希函数确定文件的OID。
步骤S403,调用对象存储设备配置的对象驱动器。
具体地,在确定第二输入输出操作请求之后,可以向对象驱动器发送调用请求,以调用对象驱动器。
在一些可选的实施方式中,存储节点包括多个对象存储设备,每个对象存储设备均配置对象驱动器。此时,根据标识信息确定目标对象存储设备,然后调用目标对象存储设备配置的对象驱动器。其中,目标对象存储设备为多个对象存储设备中与标识信息对应的对象存储设备。
步骤S404,控制对象驱动器将第二输入输出请求转换为第三输入输出操作请求。
其中,第三输入输出请求为将标识信息转换为物理页地址信息的第二输入输出操作请求。
示例性的,第三输入输出请求可以为HTTP协议请求。
步骤S405,控制对象驱动器根据第三输入输出操作请求处理对象存储设备的数据。
示例性的,在第三输入输出操作请求类型为读请求类型的情况下,步骤S405具体包括步骤a1和步骤a2。
步骤a1,根据物理页地址信息和索引信息确定物理地址。
示例性的,可以根据对应关系确定物理地址。具体地,存储节点预配置第一对应关系和第二对应关系。其中,第一对应关系为物理页地址和索引信息的对应关系,第二对应关系可以为索引信息和物理地址的对应关系。在确定物理页地址信息之后,可以根据第一对应关系确定索引信息,在确定索引信息之后,可以根据第二对应关系确定物理地址。
步骤a2,从物理地址读取数据。
示例性的,在第三输入输出操作请求类型为写请求类型的情况下,步骤S405具体包括步骤b1和步骤b2。
步骤b1,根据物理页地址信息和索引信息确定物理地址。
详细请参见步骤a1,在此不再赘述。
步骤b2,在物理地址写入数据。
示例性的,在第三输入输出操作请求类型为删除请求类型的情况下,步骤S405具体包括步骤c1和步骤c2。
步骤c1,根据物理页地址信息和索引信息确定物理地址。
详细请参见步骤a1,在此不再赘述。
步骤c2,删除物理地址的数据。
本实施例提供的数据处理方法,在接收到第一输入输出操作请求之后,将第一输入输出操作请求转换为第二输入输出请求。然后,调用对象存储设备配置的对象驱动器,控制对象驱动器将第二输入输出请求转换为第三输入输出请求,并控制对象驱动器根据第三输入输出操作请求处理对象存储设备的数据。本发明利用对象存储设备配置的对象驱动器,使对象驱动器承载对象管理服务,使得分布式对象数据管理功能可以直接在对象存储设备上进行处理,简化了整个分布式存储节点的IO堆栈的过程,可以减少分布式对象存储的数据管理开销。
在一个可选的实施方式中,第一输入输出请求的数量为多个,在将第一输入输出操作请求转换为第二输入输出操作请求之前,数据处理方法还包括:对多个第一输入输出操作请求进行排序,得到第一排序结果;将第一输入输出操作请求转换为第二输入输出操作请求,包括:根据第一排序结果依次将第一输入输出操作请求转换为第二输入输出操作请求。通过对多个第一输入输出操作请求进行管理,能够提升数据处理效率。
下面以客户端向存储节点发送写请求为例,对分布式存储系统的存储节点处理IO操作请求的过程进行详细说明。
具体地,客户端向存储节点发送第一写请求,第一写请求为存储第一文件的请求。相应地,用户模块中的应用程序请求单元接收第一写请求,并向对象存储管理服务网关发送第一写请求。对象存储管理服务网关接收到第一写请求之后,将第一写请求转换为第二写请求,第二写请求为以键值对形式表示的第一写请求。示例性的,键数据(key)为表征第一文件的关键字,例如,键数据可以为第一文件的文件名。值数据(value)为第一文件。对象存储管理服务网关确定第二写请求之后,向内核模块的对象驱动器接口单元发送第二写请求。
对象驱动器接口单元中的标识管理单元接收第二写请求,并向对象驱动器接口单元中的缓存管理单元发送第二写请求。缓存管理单元中可能缓存多个第二写请求,缓存管理单元用于为多个第二写请求排序,并按照排列顺序依次向对象驱动器驱动单元发送第二写请求。对象驱动器驱动单元接收到第二写请求之后,向相应的对象驱动器发送调用请求,以调用相应的对象驱动器。
对象驱动器中的命令接口单元用于接收第二写请求,并向请求队列管理单元发送第二写请求。请求队列管理单元中可能缓存多个第二写请求,请求队列管理单元用于为多个第二写请求排序,并按照排列顺序依次向转换单元发送第二写请求。转换单元接收到第二写请求之后,将标识信息转换为物理页地址信息,使第二写请求转换为第三写请求,并将第三写请求发送至索引管理单元。索引管理单元接收第三写请求之后,可以根据物理页地址信息和索引信息确定物理地址,进而将第一文件写入物理地址。
在本实施例中还提供了一种数据处理装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。该数据处理装置可以为上述实施例的存储节点,也可以为存储节点的一部分,配置在存储节点之上。
本实施例提供一种数据处理装置,如图5所示,包括:
接收单元501,用于接收第一输入输出操作请求,其中,第一输入输出操作请求包括访问数据信息;
第一转换单元502,将第一输入输出操作请求转换为第二输入输出操作请求,其中,所述第二输入输出操作请求为以键值对形式表示的所述第一输入输出操作请求,所述键值对中的键数据为标识信息,所述键值对中的值数据为所述第一输入输出操作请求中的所述访问数据信息;
调用单元503,用于调用对象存储设备配置的对象驱动器;
第一控制单元504,用于控制对象驱动器将所述第二输入输出请求转换为第三输入输出操作请求,所述第三输入输出请求为将标识信息转换为物理页地址信息的所述第二输入输出操作请求;
第二控制单元505,用于控制对象驱动器根据所述第三输入输出操作请求处理所述对象存储设备的数据。
在一些可选的实施方式中,第三输入输出操作请求的请求类型为读请求类型,第二控制单元505,包括:
第一确定单元,用于根据所述物理页地址信息和索引信息确定物理地址;
读取单元,用于从所述物理地址读取数据。
在一些可选的实施方式中,第三输入输出操作请求的请求类型为写请求类型,第二控制单元505,包括:
第二确定单元,用于根据所述物理页地址信息和索引信息确定物理地址;
写入单元,用于在所述物理地址写入数据。
在一些可选的实施方式中,第三输入输出操作请求的请求类型为删除请求类型,第二控制单元505,包括:
第三确定单元,用于根据所述物理页地址信息和索引信息确定物理地址;
删除单元,用于删除所述物理地址的数据。
在一些可选的实施方式中,第一输入输出请求的数量为多个,装置还包括:
排序单元,用于在将第一输入输出操作请求转换为第二输入输出操作请求之前,对多个所述第一输入输出操作请求进行排序,得到第一排序结果;
第一转换单元,包括:
第一转换子单元,用于根据所述第一排序结果依次将所述第一输入输出操作请求转换为所述第二输入输出操作请求。
上述各个模块和单元的更进一步的功能描述与上述对应实施例相同,在此不再赘述。
本实施例中的数据处理装置是以功能单元的形式来呈现,这里的单元是指专用集成电路(Application Specific Integrated Circuit,ASIC),执行一个或多个软件或固定程序的处理器和存储器,和/或其他可以提供上述功能的器件。
本发明实施例还提供一种计算机设备,具有上述图5所示的数据处理装置。
请参阅图6,图6是本发明可选实施例提供的一种计算机设备的结构示意图,如图6所示,该计算机设备包括:一个或多个处理器610、存储器620,以及用于连接各部件的接口,包括高速接口和低速接口。各个部件利用不同的总线互相通信连接,并且可以被安装在公共主板上或者根据需要以其它方式安装。处理器可以对在计算机设备内执行的指令进行处理,包括存储在存储器中或者存储器上以在外部输入/输出装置(诸如,耦合至接口的显示设备)上显示GUI的图形信息的指令。在一些可选的实施方式中,若需要,可以将多个处理器和/或多条总线与多个存储器和多个存储器一起使用。同样,可以连接多个计算机设备,各个设备提供部分必要的操作(例如,作为服务器阵列、一组刀片式服务器、或者多处理器系统)。图6中以一个处理器610为例。
处理器610可以是中央处理器,网络处理器或其组合。其中,处理器610还可以进一步包括硬件芯片。上述硬件芯片可以是专用集成电路,可编程逻辑器件或其组合。上述可编程逻辑器件可以是复杂可编程逻辑器件,现场可编程逻辑门阵列,通用阵列逻辑或其任意组合。
其中,所述存储器620存储有可由至少一个处理器610执行的指令,以使所述至少一个处理器610执行实现上述实施例示出的方法。
存储器620可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据计算机设备的使用所创建的数据等。此外,存储器620可以包括高速随机存取存储器,还可以包括非瞬时存储器,例如至少一个磁盘存储器件、闪存器件、或其他非瞬时固态存储器件。在一些可选的实施方式中,存储器620可选包括相对于处理器610远程设置的存储器,这些远程存储器可以通过网络连接至该计算机设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
存储器620可以包括易失性存储器,例如,随机存取存储器;存储器也可以包括非易失性存储器,例如,快闪存储器,硬盘或固态硬盘;存储器620还可以包括上述种类的存储器的组合。
该计算机设备还包括通信接口630,用于该计算机设备与其他设备或通信网络通信。
本发明实施例还提供了一种计算机可读存储介质,上述根据本发明实施例的方法可在硬件、固件中实现,或者被实现为可记录在存储介质,或者被实现通过网络下载的原始存储在远程存储介质或非暂时机器可读存储介质中并将被存储在本地存储介质中的计算机代码,从而在此描述的方法可被存储在使用通用计算机、专用处理器或者可编程或专用硬件的存储介质上的这样的软件处理。其中,存储介质可为磁碟、光盘、只读存储记忆体、随机存储记忆体、快闪存储器、硬盘或固态硬盘等;进一步地,存储介质还可以包括上述种类的存储器的组合。可以理解,计算机、处理器、微处理器控制器或可编程硬件包括可存储或接收软件或计算机代码的存储组件,当软件或计算机代码被计算机、处理器或硬件访问且执行时,实现上述实施例示出的方法。
虽然结合附图描述了本发明的实施例,但是本领域技术人员可以在不脱离本发明的精神和范围的情况下做出各种修改和变型,这样的修改和变型均落入由所附权利要求所限定的范围之内。
Claims (20)
1.一种分布式存储系统的存储节点,其特征在于,存储节点包括用户模块、内核模块和对象存储设备,所述对象存储设备上配置有对象驱动器;
所述用户模块,用于接收第一输入输出操作请求,并用于将所述第一输入输出操作请求转换为第二输入输出操作请求,以及用于向所述内核模块发送所述第二输入输出操作请求,其中,所述第二输入输出操作请求为以键值对形式表示的所述第一输入输出操作请求,所述键值对中的键数据为标识信息,所述键值对中的值数据为所述第一输入输出操作请求中的访问数据信息;
所述内核模块,用于在接收所述第二输入输出操作请求之后,调用所述对象存储设备配置的所述对象驱动器,并向所述对象驱动器发送所述第二输入输出操作请求;
所述对象驱动器,用于接收所述第二输入输出操作请求,并用于将所述第二输入输出操作请求转换为第三输入输出操作请求,以及用于根据所述第三输入输出操作请求处理所述对象存储设备的数据,其中,所述第三输入输出请求为将标识信息转换为物理页地址信息的所述第二输入输出操作请求。
2.根据权利要求1所述的存储节点,其特征在于,所述对象驱动器包括转换单元和索引管理单元;
所述转换单元,用于接收所述第二输入输出操作请求,并将所述第二输入输出操作请求转换为所述第三输入输出操作请求;
所述索引管理单元,用于根据所述物理页地址信息和索引信息确定物理地址,以及用于根据所述第三输入输出操作请求处理所述物理地址的数据。
3.根据权利要求2所述的存储节点,其特征在于,所述第二输入输出操作请求的数量为多个,所述对象驱动器还包括命令接口单元和请求队列管理单元;
所述命令接口单元,用于接收多个所述第二输入输出操作请求;
所述请求队列管理单元,用于缓存多个所述第二输入输出操作请求,并用于依次向所述转换单元发送所述第二输入输出操作请求。
4.根据权利要求2或3所述的存储节点,其特征在于,所述第三输入输出操作请求的请求类型为读请求类型,所述索引管理单元用于从所述物理地址读取数据。
5.根据权利要求2或3所述的存储节点,其特征在于,所述第三输入输出操作请求的请求类型为写请求类型,所述索引管理单元用于在所述物理地址写入数据。
6.根据权利要求2或3所述的存储节点,其特征在于,所述第三输入输出操作请求的请求类型为删除请求类型,所述索引管理单元用于删除所述物理地址的数据。
7.根据权利要求2或3所述的存储节点,其特征在于,所述索引管理单元还用于在对所述物理地址的数据进行处理时,将处理的数据写入日志,所述日志用于在故障时恢复数据。
8.根据权利要求2或3所述的存储节点,其特征在于,所述索引管理单元还用于在对所述物理地址的数据进行处理时,向存储单元同步处理的所述物理地址的数据。
9.根据权利要求8所述的存储节点,其特征在于,所述存储单元为带电源的动态随机存取存储器。
10.根据权利要求1至3中任一项所述的存储节点,其特征在于,所述内核模块包括对象驱动器接口单元和对象驱动器驱动单元;
所述对象驱动器接口单元,用于接收所述第二输入输出操作请求;
所述对象驱动器驱动单元,用于调用所述对象驱动器,并向所述对象驱动器发送所述第二输入输出操作请求。
11.根据权利要求10所述的存储节点,其特征在于,所述第二输入输出操作请求的数量为多个,所述对象驱动器接口单元包括标识管理单元和缓存管理单元;
所述标识管理单元,用于接收多个所述第二输入输出操作请求;
所述缓存管理单元,用于缓存多个所述第二输入输出操作请求,并依次向所述对象驱动器驱动单元发送所述第二输入输出操作请求。
12.根据权利要求1至3中任一项所述的存储节点,其特征在于,所述用户模块包括应用程序请求单元和对象存储管理服务网关;
所述应用程序请求单元,用于接收第一输入输出操作请求,并向所述对象存储管理服务网关发送所述第一输入输出操作请求;
所述对象存储管理服务网关,用于将所述第一输入输出操作请求转换为所述第二输入输出操作请求,并向所述内核模块发送所述第二输入输出操作请求。
13.根据权利要求1至3中任一项所述的存储节点,其特征在于,所述第三输入输出操作请求为超文本传输协议请求。
14.一种分布式存储系统,其特征在于,包括如权利要求1至13中任一项所述的存储节点。
15.一种数据处理方法,其特征在于,应用于如权利要求1至13中任一项所述的存储节点,或者应用于如权利要求14所述的分布式存储系统,所述方法包括:
接收第一输入输出操作请求,其中,所述第一输入输出操作请求包括访问数据信息;
将第一输入输出操作请求转换为第二输入输出操作请求,其中,所述第二输入输出操作请求为以键值对形式表示的所述第一输入输出操作请求,所述键值对中的键数据为标识信息,所述键值对中的值数据为所述第一输入输出操作请求中的所述访问数据信息;
调用对象存储设备配置的对象驱动器;
控制对象驱动器将所述第二输入输出请求转换为第三输入输出操作请求,所述第三输入输出请求为将标识信息转换为物理页地址信息的所述第二输入输出操作请求;
控制对象驱动器根据所述第三输入输出操作请求处理所述对象存储设备的数据。
16.根据权利要求15所述的方法,其特征在于,所述第三输入输出操作请求的请求类型为读请求类型,所述控制对象驱动器根据所述第三输入输出操作请求处理所述对象存储设备的数据,包括:
根据所述物理页地址信息和索引信息确定物理地址;
从所述物理地址读取数据。
17.根据权利要求15所述的方法,其特征在于,所述第三输入输出操作请求的请求类型为写请求类型,所述控制对象驱动器根据所述第三输入输出操作请求处理所述对象存储设备的数据,包括:
根据所述物理页地址信息和索引信息确定物理地址;
在所述物理地址写入数据。
18.一种数据处理装置,其特征在于,包括:
接收单元,用于接收第一输入输出操作请求,其中,所述第一输入输出操作请求包括访问数据信息;
第一转换单元,用于将第一输入输出操作请求转换为第二输入输出操作请求,其中,所述第二输入输出操作请求为以键值对形式表示的所述第一输入输出操作请求,所述键值对中的键数据为标识信息,所述键值对中的值数据为所述第一输入输出操作请求中的所述访问数据信息;
调用单元,用于调用对象存储设备配置的对象驱动器;
第一控制单元,用于控制对象驱动器将所述第二输入输出请求转换为第三输入输出操作请求,所述第三输入输出请求为将标识信息转换为物理页地址信息的所述第二输入输出操作请求;
第二控制单元,用于控制对象驱动器根据所述第三输入输出操作请求处理所述对象存储设备的数据。
19.一种计算机设备,其特征在于,包括:
存储器和处理器,所述存储器和所述处理器之间互相通信连接,所述存储器中存储有计算机指令,所述处理器通过执行所述计算机指令,从而执行权利要求15至17中任一项所述的方法。
20.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机指令,所述计算机指令用于使计算机执行权利要求15至17中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311339987.5A CN117093158B (zh) | 2023-10-17 | 2023-10-17 | 分布式存储系统的存储节点、系统、数据处理方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311339987.5A CN117093158B (zh) | 2023-10-17 | 2023-10-17 | 分布式存储系统的存储节点、系统、数据处理方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117093158A CN117093158A (zh) | 2023-11-21 |
CN117093158B true CN117093158B (zh) | 2024-02-06 |
Family
ID=88781486
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311339987.5A Active CN117093158B (zh) | 2023-10-17 | 2023-10-17 | 分布式存储系统的存储节点、系统、数据处理方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117093158B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106709048A (zh) * | 2017-01-05 | 2017-05-24 | 无锡江南计算技术研究所 | 一种面向高性能计算的分布式数据组织方法 |
CN110262754A (zh) * | 2019-06-14 | 2019-09-20 | 华东师范大学 | 一种面向NVMe和RDMA的分布式存储系统及轻量级同步通信方法 |
CN112612574A (zh) * | 2020-12-18 | 2021-04-06 | 海光信息技术股份有限公司 | 输入输出设备的内存访问管理单元、系统及地址转换方法 |
WO2023096118A1 (ko) * | 2021-11-25 | 2023-06-01 | (주)글루시스 | 스토리지 노드 기반의 키-값 스토어를 이용하는 데이터 입출력 방법 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11287994B2 (en) * | 2019-12-13 | 2022-03-29 | Samsung Electronics Co., Ltd. | Native key-value storage enabled distributed storage system |
US20230053087A1 (en) * | 2020-02-03 | 2023-02-16 | Samsung Electronics Co., Ltd. | Data management system and method of controlling |
-
2023
- 2023-10-17 CN CN202311339987.5A patent/CN117093158B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106709048A (zh) * | 2017-01-05 | 2017-05-24 | 无锡江南计算技术研究所 | 一种面向高性能计算的分布式数据组织方法 |
CN110262754A (zh) * | 2019-06-14 | 2019-09-20 | 华东师范大学 | 一种面向NVMe和RDMA的分布式存储系统及轻量级同步通信方法 |
CN112612574A (zh) * | 2020-12-18 | 2021-04-06 | 海光信息技术股份有限公司 | 输入输出设备的内存访问管理单元、系统及地址转换方法 |
WO2023096118A1 (ko) * | 2021-11-25 | 2023-06-01 | (주)글루시스 | 스토리지 노드 기반의 키-값 스토어를 이용하는 데이터 입출력 방법 |
Also Published As
Publication number | Publication date |
---|---|
CN117093158A (zh) | 2023-11-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10013185B2 (en) | Mapping systems and methods of an accelerated application-oriented middleware layer | |
US11144399B1 (en) | Managing storage device errors during processing of inflight input/output requests | |
US9613120B1 (en) | Replicated database startup for common database storage | |
KR101517258B1 (ko) | 크로스-시스템의 프록시-기반 태스크 오프로딩을 위한 장치, 시스템 및 방법 | |
EP2851807B1 (en) | Method and system for supporting resource isolation under multi-core architecture | |
US7620784B2 (en) | High speed nonvolatile memory device using parallel writing among a plurality of interfaces | |
US9251003B1 (en) | Database cache survivability across database failures | |
US9959074B1 (en) | Asynchronous in-memory data backup system | |
US9208003B2 (en) | Hypervisor to I/O stack conduit in virtual real memory | |
US10733027B2 (en) | Memory allocator | |
US10802766B2 (en) | Database with NVDIMM as persistent storage | |
AU2015229864A1 (en) | Reducing data volume durability state for block-based storage | |
US11269846B2 (en) | Efficient database journaling using non-volatile system memory | |
CN113032099B (zh) | 云计算节点、文件管理方法及装置 | |
US11500577B2 (en) | Method, electronic device, and computer program product for data processing | |
WO2023125524A1 (zh) | 数据存储方法、系统、存储访问配置方法及相关设备 | |
CA3129984A1 (en) | Method and system for accessing distributed block storage system in user mode | |
CN103150225B (zh) | 基于应用级代理的对象并行存储系统磁盘满异常容错方法 | |
JP2012123556A (ja) | 仮想サーバーシステム、及びその制御方法 | |
US20230136522A1 (en) | Method and system for implementing metadata compression in a virtualization environment | |
US10776173B1 (en) | Local placement of resource instances in a distributed system | |
US7752392B1 (en) | Method and apparatus for accessing a virtualized storage volume using a pre-loaded volume map | |
US10812408B1 (en) | Preventing concentrated selection of resource hosts for placing resources | |
CN117093158B (zh) | 分布式存储系统的存储节点、系统、数据处理方法及装置 | |
CN112948336B (zh) | 数据加速方法及缓存单元、电子设备及存储介质 |
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 |