CN116644022A - 一种数据处理节点和方法 - Google Patents
一种数据处理节点和方法 Download PDFInfo
- Publication number
- CN116644022A CN116644022A CN202310443079.4A CN202310443079A CN116644022A CN 116644022 A CN116644022 A CN 116644022A CN 202310443079 A CN202310443079 A CN 202310443079A CN 116644022 A CN116644022 A CN 116644022A
- Authority
- CN
- China
- Prior art keywords
- read
- shared memory
- node
- write 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.)
- Pending
Links
- 238000012545 processing Methods 0.000 title claims abstract description 100
- 238000000034 method Methods 0.000 title claims description 85
- 238000003672 processing method Methods 0.000 claims abstract description 9
- 230000008569 process Effects 0.000 claims description 48
- 230000004044 response Effects 0.000 claims description 10
- 238000010586 diagram Methods 0.000 description 13
- 230000006870 function Effects 0.000 description 8
- 230000005540 biological transmission Effects 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 6
- 230000003993 interaction Effects 0.000 description 6
- 238000004891 communication Methods 0.000 description 5
- 230000008901 benefit Effects 0.000 description 3
- 238000004590 computer program Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 239000004744 fabric Substances 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000013461 design Methods 0.000 description 2
- 239000013307 optical fiber Substances 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 101100421134 Schizosaccharomyces pombe (strain 972 / ATCC 24843) sle1 gene Proteins 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- -1 seg2 Proteins 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/163—Interprocessor communication
- G06F15/173—Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
- G06F15/17306—Intercommunication techniques
- G06F15/17331—Distributed shared memory [DSM], e.g. remote direct memory access [RDMA]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1458—Management of the backup or restore process
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
- G06F11/202—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
- G06F11/2023—Failover techniques
- G06F11/2033—Failover techniques switching over of hardware resources
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/544—Buffers; Shared memory; Pipes
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Mathematical Physics (AREA)
- Hardware Redundancy (AREA)
Abstract
本申请公开了一种数据处理节点及数据处理方法,其中,所述节点述包括:目标端,与主机端连接,运行于用户态,为所述主机端的读写请求提供NVMe‑oF存储服务;所述主机端,设置于NVMe驱动中,运行于内核态;共享内存,设置于所述NVMe驱动中;共享内存通道,连接所述目标端和所述主机端,使得用户态和内核态均能够利用所述共享内存通道访问所述共享内存;多径模块,设置于所述NVMe驱动中,绑定所述数据处理节点与所述数据处理节点的备份节点;处理器,利用所述共享内存和所述共享内存通道处理所述主机端的读写请求,在确定所述目标端不可访问的情况下,将所述主机端切换至与所述备份节点连接,利用所述备份节点处理所述读写请求。
Description
技术领域
本申请实施例涉及数据处理领域,涉及但不限于一种数据处理节点和方法。
背景技术
现有技术方案是目前基于全闪存的共享存储很多已经应用NVMe-oF,使得存储可以扩展到远端,存储端称为目标端(Target),远端称为主机端(Host),在该方案包括一种更低总体拥有成本(Total Cost of Ownership,TCO)的部署方式即双机超融合部署,即两台服务器每个服务器同时提供存储和计算服务。并提供高可用功能,即一台服务发生故障后,另外一台服务可以持续提供服务。
现有的双机高可用解决方案中,采用远程直接数据存取(Remote Direct MemoryAccess,RDMA)同时连接本机与远端。无论数据是否在本机,均需要经过网卡做数据交换。这样,即使是只与本节点存储交互,仍然要通过本地网络,有较大的开销;且在双机高可用方式中,双机通常使用直连线来连接,在另外一个机器发生故障时,由于网线没有供电,会导致本机网卡不能正常工作,从而使本机网卡的RDMA功能无法使用,而无法达到预先设计性能。
发明内容
有鉴于此,本申请实施例提供一种数据处理节点和方法。
本申请实施例的技术方案是这样实现的:
第一方面,本申请实施例提供一种数据处理节点,所述节点包括:
目标端,与主机端连接,运行于用户态,为所述主机端的读写请求提供NVMe-oF存储服务;
所述主机端,设置于NVMe驱动中,运行于内核态;
共享内存,设置于所述NVMe驱动中;
共享内存通道,连接所述目标端和所述主机端,使得用户态和内核态均能够利用所述共享内存通道访问所述共享内存;
多径模块,设置于所述NVMe驱动中,绑定所述数据处理节点与所述数据处理节点的备份节点;
处理器,利用所述共享内存和所述共享内存通道处理所述主机端的读写请求,在确定所述目标端不可访问的情况下,将所述主机端切换至与所述备份节点连接,利用所述备份节点处理所述读写请求。
第二方面,本申请实施例提供一种数据处理方法,应用于数据处理节点,所述数据处理节点包括目标端、主机端、共享内存、共享内存通道和多径模块,所述方法包括:
利用所述共享内存和所述共享内存通道处理所述主机端的读写请求,其中,所述目标端为所述读写请求提供NVMe-oF存储服务;
在确定所述目标端不可访问的情况下,将所述主机端切换至与备份节点连接,利用所述备份节点处理所述读写请求,其中,所述多径模块能够绑定所述数据处理节点和所述备份节点。
第三方面,本申请实施例提供一种电子设备,包括存储器和处理器,所述存储器存储有可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述方法。
第四方面,本申请实施例提供一种存储介质,存储有可执行指令,用于引起处理器执行时,实现上述方法。
本申请实施例中,数据处理节点包括:目标端,与主机端连接,运行于用户态,为所述主机端的读写请求提供NVMe-oF存储服务;所述主机端,设置于NVMe驱动中,运行于内核态;共享内存,设置于所述NVMe驱动中;共享内存通道,连接所述目标端和所述主机端,使得用户态和内核态均能够利用所述共享内存通道访问所述共享内存;多径模块,设置于所述NVMe驱动中,绑定所述数据处理节点与所述数据处理节点的备份节点;处理器,利用所述共享内存和所述共享内存通道处理所述主机端的读写请求,在确定所述目标端不可访问的情况下,将所述主机端切换至与所述备份节点连接,利用所述备份节点处理所述读写请求。这样,NVMe驱动与数据处理节点的共享存储服务进程间通过共享内存交互,时延和开销极低,无需通过网络接口并不会占用网卡带宽;同时写入数据时,由于少了一次网络请求,也会达到降低时延的效果。且由于故障不会受网卡的电气特性影响,可以有效降低故障率。
附图说明
图1为本申请实施例提供的一种NVMe-oF的传输协议架构示意图;
图2A为本申请实施例提供的一种数据处理节点的结构示意图;
图2B为本申请实施例提供的一种数据处理节点的结构示意图;
图3为本申请实施例提供的一种数据处理方法的实现流程示意图;
图4为本申请实施例提供的一种数据处理方法的实现流程示意图;
图5为本申请实施例提供的一种数据处理装置的组成结构示意图;
图6为本申请实施例提供的电子设备的一种硬件实体示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对申请实施例的具体技术方案做进一步详细描述。以下实施例用于说明本申请,但不用来限制本申请的范围。
在以下的描述中,涉及到“一些实施例”,其描述了所有可能实施例的子集,但是可以理解,“一些实施例”可以是所有可能实施例的相同子集或不同子集,并且可以在不冲突的情况下相互结合。
在以下的描述中,所涉及的术语“第一\第二\第三”仅仅是是区别类似的对象,不代表针对对象的特定排序,可以理解地,“第一\第二\第三”在允许的情况下可以互换特定的顺序或先后次序,以使这里描述的本申请实施例能够以除了在这里图示或描述的以外的顺序实施。
除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本申请实施例的目的,不是旨在限制本申请。
对本申请实施例进行进一步详细说明之前,对本申请实施例中涉及的名词和术语进行说明,本申请实施例中涉及的名词和术语适用于如下的解释。
NVMe-oF(NVMe over Fabrics)技术是对NVMe标准的一种应用,通过让不同的存储网络结构支持NVMe协定,从而实现传输性能。
图1为本申请实施例提供的一种NVMe-oF的传输协议架构示意图,如图1所示,该示意图包括NVMe主机软件11、主机端传输抽象12、传输协议13、控制端传输抽象14和NVMe固态硬盘15,其中,
传输协议13的协议规范可以使用光纤通道、无限宽带技术(InfiniBand,IB)、RoCE、iWARP或下一代光纤(Next Gen Fabrics)将NVMe的性能从存储阵列控制器扩展到结构,其中,Infiniband是一种专为RDMA设计的网络,从硬件级别保证可靠传输,而RoCE和iWARP都是基于以太网的RDMA技术。NVMe-oF使用替代数据传输协议(通过结构)作为传输映射。光纤建立在发送和接收消息的概念之上,而端点之间没有共享内存。NVMe结构消息传输将NVMe命令和响应封装到基于消息的系统中,该系统包括一个或多个NVMe命令或响应。
目前基于全闪存的共享存储很多已经应用NVMe-oF,使得存储可以扩展到远端,存储端称为目标(Target),远端称为主机(Host),在这个方案里还有一种更低总体拥有成本(Total Cost of Ownership,TCO)的部署方式即双机超融合部署,即两台服务器每个服务器同时提供存储和计算服务。并提供高可用功能,即一台服务发生故障后,另外一台服务可以持续提供服务。
图2A为本申请实施例提供的一种数据处理节点的结构示意图,如图2A所示,该结构示意图包括:节点1和节点2,其中,
节点1包括:目标端21和主机端22。
目标端21的NVMe-oF存储服务处于轮询模式211,该目标端21还包括其他服务212。
主机端22包括多径模块221。
在实施过程中,节点1和节点2上存储的数据相同,互为备份节点。
如图2A所示的共享存储中提供NVMe-oF接口,每个节点(节点1和节点2)同时连接本机与另外一个节点,组成高可用,两个机器可以通过远程直接数据存取(Remote DirectMemory Access,RDMA)连接。
采用RDMA同时连接本机与远端,无论数据是否在本机,均需要经过网卡做数据交换。在正常情况下,即使是只与本节点存储交互,仍然要通过本地网络,有较大的开销;在双机高可用方式中,双机通常可以用直连线来连接可以节省成本,但是另外一个机器发生故障时,由于网线没有供电,会导致本机网卡不能正常工作,从而使本机网卡的RDMA功能无法使用,而无法达到预先设计性能。
本申请实施例提供一种数据处理节点,如图2B所示,该数据处理节点包括:
目标端21,与主机端22连接,运行于用户态,为所述主机端22的读写请求提供NVMe-oF存储服务;
在一些实施例中,所述目标端能够实现非对称访问(Asymmetric NamespaceAccess,ANA),汇报多个路径的优先关系。
举例来说,目标端可以实现ANA,确定本地存储服务优先于备份节点的存储服务。
这样,连接数据处理节点和备份节点的情况下,目标端可以汇报本地存储优先使用。
在一些实施例中,所述NVMe-oF存储服务处于轮询模式。
这里,目标端21可以提供环形队列的轮询功能。
这样,可以使得存储服务处于轮询模式,可以实现收到环形队列中的读写请求立刻进行处理,提升读写请求处理的效率。
所述主机端22,设置于NVMe驱动中,运行于内核态;
这里,主机端21可以提供环形队列的轮询功能。
这样,可以使得主机端处于轮询模式,可以实现收到环形队列中的读写请求立刻进行处理,提升读写请求处理的效率。
共享内存23,设置于所述NVMe驱动中;
在一些实施例中,所述节点还包括:
数据收发模块214,与所述备份节点建立数据存取通道,实现对所述数据处理节点数据的备份。举例来说,该数据存取通道可以是RDMA通道。
这里,可以在NVMe驱动中分配一定区域的共享内存23,并将该共享内存23注册到存储服务进程的RDMA通道中,可以将位于该共享内存23的数据,通过RDMA传输到备份节点。
该共享内存23可以为共享内存通道、RDMA通道,以及用户态的NVMe-oF目标端21提供可以共享的内存服务。
在实施过程中,数据处理节点还包括内存映射模块,用于将共享内存23映射虚拟地址空间,使用户态和内核态都可以访问,当双方都不访问该共享内存的情况下,可释放该共享内存空间。
在实施过程中,数据处理节点还包括管理配置模块,以使得用户利用该管理配置模块管理和配置共享内存23每个单元的大小和数量等,举例来说,可以利用该管理配置模块,为如图2B中每个共享内存分段(seg0、seg1、seg2、seg3)对应配置一个共享内存池和环形队列。
在一些实施例中,所述共享内存包括数据交换的缓冲区和环形队列。
举例来说,共享内存23可以包括一个或若干个无锁环形队列和内存池。
这样,可以为数据交换提供缓存和队列服务,采用用户态与内核态共享内存技术、内核态与用户态环形队列通讯技术,可以提供更低的开销、延迟和更高的可靠性。
共享内存通道,连接所述目标端21和所述主机端22,使得用户态和内核态均能够利用所述共享内存通道访问所述共享内存23;
在实施过程中,数据处理节点还包括协议实现模块,该协议转换模块可以在共享内存通道中实现NVMe所需的协议,包括连接命令、创建Qpair命令等。用于完成NVMe主机端22与目标端21之间的连接。
这样,可以扩充NVMe-oF协议,并增加NVMe-oF协议的应用场景。
多径模块221,设置于所述NVMe驱动中,绑定所述数据处理节点与所述数据处理节点的备份节点;
这里,每个数据处理节点中的虚拟卷都会建立至少两条连接,一条是连接本机的,另外一条是连接另外一台备份节点的,通过多路径(multipath)组成路复用,即一台数据处理节点宕机后,另外一台备份节点可以通过本机通道与本地存储继续对上层应用提供存储服务。其中,上层应用包括虚拟机和容器,可以通过块接口或文件接口对该数据处理节点进行读写。
处理器,利用所述共享内存23和所述共享内存通道处理所述主机端22的读写请求,在确定所述目标端21不可访问的情况下,将所述主机端22切换至与所述备份节点连接,利用所述备份节点处理所述读写请求。
在实施过程中,数据处理节点还包括故障切换模块。确定当前NVMe-oF目标端21不可访问的情况下(例如存储服务进程退出等),可以利用该故障切换模块将主机端22切换到另外一个NVMe-oF通道(远端RDMA)连接,即将所述主机端22切换至与所述备份节点的目标端连接,利用所述备份节点的目标端处理所述读写请求。
在一些实施例中,确定共享内存通道不可用时,可以利用多径模块221控制,将读写路径转移到通过RDMA连接;同时在确定本地共享内存通道恢复的情况下,可以将RDMA的读写路径转移会共享内存通道。这里,共享内存通道不可用包括检测到NVMe-oF目标端21服务退出、主动报告错误或者读写通讯超时,也包括用户手动或者通过上层管理系统切换,比如热迁移。
这里,图2B所示的数据处理节点与图2A所示的节点1相比较,增加了共享内存23及其相关功能组件。这样,图2B所示的数据处理节点的数据通讯无需经过网卡可以进行数据交换。
本申请实施例中,数据处理节点包括:目标端,与主机端连接,运行于用户态,为所述主机端的读写请求提供NVMe-oF存储服务;所述主机端,设置于NVMe驱动中,运行于内核态;共享内存,设置于所述NVMe驱动中;共享内存通道,连接所述目标端和所述主机端,使得用户态和内核态均能够利用所述共享内存通道访问所述共享内存;多径模块,设置于所述NVMe驱动中,绑定所述数据处理节点与所述数据处理节点的备份节点;处理器,利用所述共享内存和所述共享内存通道处理所述主机端的读写请求,在确定所述目标端不可访问的情况下,将所述主机端切换至与所述备份节点连接,利用所述备份节点处理所述读写请求。这样,NVMe驱动与数据处理节点的共享存储服务进程间通过共享内存交互,时延和开销极低,无需通过网络接口并不会占用网卡带宽;同时写入数据时,由于少了一次网络请求,也会达到降低时延的效果。且由于故障不会受网卡的电气特性影响,可以有效降低故障率。
本申请提供一种数据处理方法,应用于数据处理节点,所述数据处理节点包括目标端、主机端、共享内存、共享内存通道和多径模块,如图3所示,该方法包括以下步骤:
步骤S310、利用所述共享内存和所述共享内存通道处理所述主机端的读写请求,其中,所述目标端为所述读写请求提供NVMe-oF存储服务;
这里,可以在NVMe驱动中分配一定区域的共享内存,并将该共享内存注册到存储服务进程的RDMA通道中,可以将位于该共享内存的数据,通过RDMA传输到备份节点。
该共享内存可以为共享内存通道、RDMA通道,以及用户态的NVMe-oF目标端提供可以共享的内存服务。
共享内存通道,连接所述目标端和所述主机端,使得用户态和内核态均能够利用该共享内存通道访问共享内存。
在实施过程中,主机端可以通过NVMe-oF与所述存储服务连接(共享内存和RDMA)。该数据处理节点的主机端可以基于ANA的报告,优先将请求发送给共享内存通道,共享内存通道将请求的命令头置入该共享内存的环形队列中,目标端提供的服务主进程利用共享内存通道获取环形队列中的读写请求,并完成该读写请求。
步骤S320、在确定所述目标端不可访问的情况下,将所述主机端切换至与备份节点连接,利用所述备份节点处理所述读写请求,其中,所述多径模块能够绑定所述数据处理节点和所述备份节点。
在实施过程中,该数据处理节点确定目标端不可访问的情况下(例如存储服务进程退出等),可以利用该故障切换模块将主机端切换到另外一个NVMe-oF通道(远端RDMA)连接,即将所述主机端22切换至与所述备份节点的目标端连接,利用所述备份节点的目标端处理所述读写请求。
本申请实施例中,利用所述共享内存和所述共享内存通道处理所述主机端的读写请求;在确定所述目标端不可访问的情况下,将所述主机端切换至与备份节点连接,利用所述备份节点处理所述读写请求。这样,通过对NVMe-oF协议进行扩展,增加共享内存和共享内存通道,满足多路径高可用、双节点高可用,更高的传输效率的情况下,可以提供更低的开销、延迟和更高的可靠性。
在一些实施例中,以上步骤S310“利用所述共享内存和所述共享内存通道处理所述主机端的读写请求”,可以通过以下步骤实现:
步骤311、响应于读写请求,所述主机端基于NVMe驱动将所述读写请求发送至共享内存通道;
在一些实施例中,可以设置所述NVMe-oF存储服务处于轮询模式。这样,存储服务处于轮询模式,可以收到环形队列中的请求进行立刻处理,有效提升读写请求的处理效率。
步骤312、所述NVMe驱动将所述读写请求置入所述共享内存的环形队列中;
在实施过程中,共享内存包括一个或若干个无锁环形队列和内存池。NVMe驱动可以将将所述读写请求置入所述共享内存的环形队列中。
步骤313、所述目标端的服务主进程处理从所述环形队列中获取的所述读写请求。
本申请实施例中,响应于读写请求,所述主机端基于NVMe驱动将所述读写请求发送至共享内存通道;所述NVMe驱动将所述读写请求置入所述共享内存的环形队列中;所述目标端的服务主进程处理从所述环形队列中获取的所述读写请求。这样,可以实现利用共享内存和共享内存通道,实现本机与本机之间的NVMe-oF传输方式。
在一些实施例中,以上步骤313“所述目标端的服务主进程处理从所述环形队列中获取的所述读写请求”可以通过以下步骤实现:
步骤3131、所述服务主进程从所述环形队列中获取所述读写请求;
步骤3132、确定所述读写请求为写请求,所述写请求包括待写入的写数据;
步骤3133、将所述写数据写入所述数据处理节点的本地存储;
在实施过程中,如果是写请求,将该写请求中的写数据写入数据处理节点的本地存储。
步骤3134、通过数据存取通道,将所述写数据同时写入所述备份节点。
在实施过程中,在执行步骤3133的同时,可以通过RDMA读/写方式将数据发送到备份节点,备份节点收到数据后,将数据写入到该备份节点的本地存储。
本申请实施例中,确定所述读写请求为写请求,所述写请求包括待写入的写数据;将所述写数据写入所述数据处理节点的本地存储;通过数据存取通道,将所述写数据同时写入所述备份节点。这样,可以实现数据处理节点的写数据备份至备份节点。
在一些实施例中,以上步骤313“所述目标端的服务主进程处理从所述环形队列中获取的所述读写请求”还包括以下步骤:
步骤3135、确定所述读写请求为读请求,所述读请求包括待读出的读数据的位置信息;
步骤3136、基于所述位置信息,将所述读数据读出至所述共享内存;
在实施过程中,可以将指定位置的数据读出到共享内存中,其中,指定位置是基于读请求中的位置信息确定的。
步骤3137、将所述共享内存中所述读数据的地址和完成状态,通过回应包的形式写入所述共享内存。
本申请实施例中,首先确定所述读写请求为读请求,然后将所述读数据读出至所述共享内存;最后将所述共享内存中所述读数据的地址和完成状态,通过回应包的形式写入所述共享内存。这样,可以通过共享内存处理读请求。
图4为本申请实施例提供的一种数据处理方法的流程示意图,如图4所示,该方法包括以下步骤:
步骤S410、数据处理节点和备份节点分别启动服务主进程;
在实施过程中,数据处理节点和备份节点的两个进程处于一个存储集群中,提供高可用服务。
步骤S420、创建一个或若干个逻辑卷并导出为NVMe-oF目标端;
这里,每个目标端对应存储的一个逻辑卷,并在目标端中通过ANA报告为共享内存为优选路径,RDMA为非优选路径。
步骤S430、数据处理节点和备份节点的客户端与本机的同一个NVMe-oF目标端建立共享内存通道,并与远端(另外一个节点)的RDMA通道连接;
在实施过程中,启动NVMe多路径(Multtipath)。
步骤S440、数据处理节点处理读写请求。
当读写发生的情况下,数据处理节点的NVMe驱动由于通过ANA的报告,可以优先将请求发送给共享内存通道,共享内存通道将请求的命令头置入该共享内存的环形队列中;服务主进程中的共享内存通道在轮询中获取环形队列的请求,并完成读写请求,其结果是将共享内存的数据写入存储器(写请求)或将存储器的数据放入共享内存(读请求);确定该操作为写请求的情况下,则写入请求还会将请求通过发送给备份节点,请求完成后,这段请求对应的内存为止可以标记为空闲用于下一次请求。
读写请求过程如下步骤:
A、主机端通过NVMe-oF与所述存储服务连接(共享内存和RDMA)。
B、多径模块将数据处理节点与备份节点绑定成一个,例如/dev/nvme0n1。
C、上层应用包括虚拟机、容器等,通过块接口或文件接口对该设备进行读写。
D、内核驱动(NVMe驱动)收到请求后将请求传递给共享内存通道。
E、共享内存通道将请求数据(如果存在写数据)和请求命令头置入共享内存中,并修改唤醒队列指针,插入该请求。
F、存储服务处于轮询模式,可以收到环形队列中的请求立刻进行处理,如果是读请求,则将指定位置的数据读出到共享内存中,并将共享内存地址和完成状态,通过回应包的形式写入到共享内存中;如果是写请求,则将共享内存中的数据写入本地存储,并通过RDMA读/写方式将数据发送到备份节点,备份节点收到数据后,将数据写入到本地存储。
G、内核的共享内存通道通过轮询环形队列数据,取到回应包和数据(如果是读),通过NVMe驱动、以及其上的内核协议栈返回到上层应用。
本申请实施例中,通过对NVMe-oF协议进行扩展,增加本机共享内存通道,提供更高效并解决现有方案的缺陷,满足多路径高可用、双节点高可用,更高的传输效率的情况下,采用用户态与内核态共享内存技术、内核态与用户态环形队列通讯技术、CPU卸载的方式提供NVMe-oF协议的通道、提供更低的开销和延迟和更高的可靠性。
基于前述的实施例,本申请实施例提供一种数据处理装置,该装置包括所包括的各模块,各模块包括各子模块,各子模块包括单元,可以通过电子设备中的处理器来实现;当然也可通过具体的逻辑电路实现;在实施的过程中,处理器可以为中央处理器(CPU)、微处理器(MPU)、数字信号处理器(DSP)或现场可编程门阵列(FPGA)等。
图5为本申请实施例提供的数据处理装置的组成结构示意图,应用于数据处理节点,所述数据处理节点包括目标端、主机端、共享内存、共享内存通道和多径模块,如图5所示,所述装置500包括:
第一处理模块501,用于利用所述共享内存和所述共享内存通道处理所述主机端的读写请求,其中,所述目标端为所述读写请求提供NVMe-oF存储服务;
第二处理模块502,用于在确定所述目标端不可访问的情况下,将所述主机端切换至与备份节点连接,利用所述备份节点处理所述读写请求,其中,所述多径模块能够绑定所述数据处理节点和所述备份节点。
在一些实施例中,所述第一处理模块501包括发送子模块、置入子模块和处理子模块,其中,所述发送子模块,用于响应于读写请求,利用所述主机端基于NVMe驱动将所述读写请求发送至共享内存通道;所述置入子模块,利用所述NVMe驱动将所述读写请求置入所述共享内存的环形队列中;所述处理子模块,利用所述目标端的服务主进程处理从所述环形队列中获取的所述读写请求。
在一些实施例中,所述处理子模块包括获取单元、第一确定单元、第一写入单元和第二写入单元,其中,所述获取单元,利用所述服务主进程从所述环形队列中获取所述读写请求;所述第一确定单元,用于确定所述读写请求为写请求,所述写请求包括待写入的写数据;所述第一写入单元,用于将所述写数据写入所述数据处理节点的本地存储;所述第二写入单元,用于通过数据存取通道,将所述写数据同时写入所述备份节点。
在一些实施例中,所述处理子模块还包括第二确定单元、读出单元和第三写入单元,其中,所述第二确定单元,用于确定所述读写请求为读请求,所述读请求包括待读出的读数据的位置信息;所述读出单元,用于基于所述位置信息,将所述读数据读出至所述共享内存;所述第三写入单元,用于将所述共享内存中所述读数据的地址和完成状态,通过回应包的形式写入所述共享内存。
在一些实施例中,所述装置还包括设置模块,用于设置所述NVMe-oF存储服务处于轮询模式。
以上装置实施例的描述,与上述方法实施例的描述是类似的,具有同方法实施例相似的有益效果。对于本申请装置实施例中未披露的技术细节,请参照本申请方法实施例的描述而理解。
需要说明的是,本申请实施例中,如果以软件功能模块的形式实现上述方法,并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对相关技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得电子设备(可以是手机、平板电脑、笔记本电脑、台式计算机等)执行本申请各个实施例所述方法的全部或部分。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read Only Memory,ROM)、磁碟或者光盘等各种可以存储程序代码的介质。这样,本申请实施例不限制于任何特定的硬件和软件结合。
对应地,本申请实施例提供一种存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述实施例中提供的数据处理方法中的步骤。
对应地,本申请实施例提供一种电子设备,图6为本申请实施例提供的电子设备的一种硬件实体示意图,如图6所示,该设备600的硬件实体包括:包括存储器601和处理器602,所述存储器601存储有可在处理器602上运行的计算机程序,所述处理器602执行所述程序时实现上述实施例中提供的数据处理方法中的步骤。
存储器601配置为存储由处理器602可执行的指令和应用,还可以缓存待处理器602以及电子设备600中各模块待处理或已经处理的数据(例如,图像数据、音频数据、语音通信数据和视频通信数据),可以通过闪存(FLASH)或随机访问存储器(Random AccessMemory,RAM)实现。
这里需要指出的是:以上存储介质和设备实施例的描述,与上述方法实施例的描述是类似的,具有同方法实施例相似的有益效果。对于本申请存储介质和设备实施例中未披露的技术细节,请参照本申请方法实施例的描述而理解。
应理解,说明书通篇中提到的“一个实施例”或“一实施例”意味着与实施例有关的特定特征、结构或特性包括在本申请的至少一个实施例中。因此,在整个说明书各处出现的“在一个实施例中”或“在一实施例中”未必一定指相同的实施例。此外,这些特定的特征、结构或特性可以任意适合的方式结合在一个或多个实施例中。应理解,在本申请的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
在本申请所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,如:多个单元或组件可以结合,或可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的各组成部分相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性的、机械的或其它形式的。
上述作为分离部件说明的单元可以是、或也可以不是物理上分开的,作为单元显示的部件可以是、或也可以不是物理单元;既可以位于一个地方,也可以分布到多个网络单元上;可以根据实际的需要选择其中的部分或全部单元来实现本实施例方案的目的。
另外,在本申请各实施例中的各功能单元可以全部集成在一个处理单元中,也可以是各单元分别单独作为一个单元,也可以两个或两个以上单元集成在一个单元中;上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:移动存储设备、只读存储器(Read Only Memory,ROM)、磁碟或者光盘等各种可以存储程序代码的介质。
或者,本申请上述集成的单元如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对相关技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得电子设备(可以是手机、平板电脑、笔记本电脑、台式计算机等)执行本申请各个实施例所述方法的全部或部分。而前述的存储介质包括:移动存储设备、ROM、磁碟或者光盘等各种可以存储程序代码的介质。
本申请所提供的几个方法实施例中所揭露的方法,在不冲突的情况下可以任意组合,得到新的方法实施例。
本申请所提供的几个产品实施例中所揭露的特征,在不冲突的情况下可以任意组合,得到新的产品实施例。
本申请所提供的几个方法或设备实施例中所揭露的特征,在不冲突的情况下可以任意组合,得到新的方法实施例或设备实施例。
以上所述,仅为本申请的实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
Claims (10)
1.一种数据处理节点,所述节点包括:
目标端,与主机端连接,运行于用户态,为所述主机端的读写请求提供NVMe-oF存储服务;
所述主机端,设置于NVMe驱动中,运行于内核态;
共享内存,设置于所述NVMe驱动中;
共享内存通道,连接所述目标端和所述主机端,使得用户态和内核态均能够利用所述共享内存通道访问所述共享内存;
多径模块,设置于所述NVMe驱动中,绑定所述数据处理节点与所述数据处理节点的备份节点;
处理器,利用所述共享内存和所述共享内存通道处理所述主机端的读写请求,在确定所述目标端不可访问的情况下,将所述主机端切换至与所述备份节点连接,利用所述备份节点处理所述读写请求。
2.如权利要求1所述的节点,所述节点还包括:
数据收发模块,与所述备份节点建立数据存取通道,实现对所述数据处理节点数据的备份。
3.如权利要求1所述的节点,所述目标端能够实现非对称访问,汇报多个路径的优先关系。
4.如权利要求1所述的节点,所述共享内存包括数据交换的缓冲区和环形队列。
5.如权利要求1所述的节点,所述NVMe-oF存储服务处于轮询模式。
6.一种数据处理方法,应用于数据处理节点,所述数据处理节点包括目标端、主机端、共享内存、共享内存通道和多径模块,所述方法包括:
利用所述共享内存和所述共享内存通道处理所述主机端的读写请求,其中,所述目标端为所述读写请求提供NVMe-oF存储服务;
在确定所述目标端不可访问的情况下,将所述主机端切换至与备份节点连接,利用所述备份节点处理所述读写请求,其中,所述多径模块能够绑定所述数据处理节点和所述备份节点。
7.如权利要求6所述的方法,所述利用所述共享内存和所述共享内存通道处理所述主机端的读写请求,包括:
响应于读写请求,所述主机端基于NVMe驱动将所述读写请求发送至共享内存通道;
所述NVMe驱动将所述读写请求置入所述共享内存的环形队列中;
所述目标端的服务主进程处理从所述环形队列中获取的所述读写请求。
8.如权利要求7所述的方法,所述目标端的服务主进程处理从所述环形队列中获取的所述读写请求,包括:
所述服务主进程从所述环形队列中获取所述读写请求;
确定所述读写请求为写请求,所述写请求包括待写入的写数据;
将所述写数据写入所述数据处理节点的本地存储;
通过数据存取通道,将所述写数据同时写入所述备份节点。
9.如权利要求8所述的方法,所述方法还包括:
确定所述读写请求为读请求,所述读请求包括待读出的读数据的位置信息;
基于所述位置信息,将所述读数据读出至所述共享内存;
将所述共享内存中所述读数据的地址和完成状态,通过回应包的形式写入所述共享内存。
10.如权利要求6至7任一项所述的方法,所述方法还包括:
设置所述NVMe-oF存储服务处于轮询模式。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310443079.4A CN116644022A (zh) | 2023-04-21 | 2023-04-21 | 一种数据处理节点和方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310443079.4A CN116644022A (zh) | 2023-04-21 | 2023-04-21 | 一种数据处理节点和方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116644022A true CN116644022A (zh) | 2023-08-25 |
Family
ID=87642482
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310443079.4A Pending CN116644022A (zh) | 2023-04-21 | 2023-04-21 | 一种数据处理节点和方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116644022A (zh) |
-
2023
- 2023-04-21 CN CN202310443079.4A patent/CN116644022A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10095639B2 (en) | Multi-processor startup system | |
US10642777B2 (en) | System and method for maximizing bandwidth of PCI express peer-to-peer (P2P) connection | |
JP6564960B2 (ja) | ネットワーキング技術 | |
US7664909B2 (en) | Method and apparatus for a shared I/O serial ATA controller | |
US20080155154A1 (en) | Method and System for Coalescing Task Completions | |
CN103257941B (zh) | 多协议存储控制器和系统 | |
CN107547623B (zh) | 应用数据传输方法、装置、应用服务器和应用代理服务器 | |
JPWO2006123747A1 (ja) | 分散型マルチメディアサーバシステムおよびマルチメディア情報配信方法ならびにそのプログラムおよび記録媒体 | |
US20080155571A1 (en) | Method and System for Host Software Concurrent Processing of a Network Connection Using Multiple Central Processing Units | |
US10162775B2 (en) | System and method for efficient cross-controller request handling in active/active storage systems | |
US7552355B2 (en) | System for providing an alternative communication path in a SAS cluster | |
CN115080479B (zh) | 传输方法、服务器、设备、裸金属实例及基板管理控制器 | |
US20230421451A1 (en) | Method and system for facilitating high availability in a multi-fabric system | |
US10154079B2 (en) | Pre-boot file transfer system | |
US7159010B2 (en) | Network abstraction of input/output devices | |
CN113971138A (zh) | 一种数据访问方法及相关设备 | |
CN102843435A (zh) | 一种在集群系统中存储介质的访问、响应方法和系统 | |
CN114706531A (zh) | 数据处理方法、装置、芯片、设备及介质 | |
CN113411363A (zh) | 一种镜像文件的上传方法、相关设备及计算机存储介质 | |
US6374248B1 (en) | Method and apparatus for providing local path I/O in a distributed file system | |
CN110471627B (zh) | 一种共享存储的方法、系统及装置 | |
JP4034572B2 (ja) | 遠隔割り込み信号の処理方法、システムおよびネットワークインターフェースシステム | |
CN110798366B (zh) | 任务逻辑的处理方法、装置及设备 | |
CN116644022A (zh) | 一种数据处理节点和方法 | |
US6832310B1 (en) | Manipulating work queue elements via a hardware adapter and software driver |
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 |