CN115509433A - 一种数据读写方法以及相关装置 - Google Patents

一种数据读写方法以及相关装置 Download PDF

Info

Publication number
CN115509433A
CN115509433A CN202110694337.7A CN202110694337A CN115509433A CN 115509433 A CN115509433 A CN 115509433A CN 202110694337 A CN202110694337 A CN 202110694337A CN 115509433 A CN115509433 A CN 115509433A
Authority
CN
China
Prior art keywords
storage controller
switch
message
packet
storage
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
Application number
CN202110694337.7A
Other languages
English (en)
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.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies 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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN202110694337.7A priority Critical patent/CN115509433A/zh
Priority to PCT/CN2022/098309 priority patent/WO2022267909A1/zh
Publication of CN115509433A publication Critical patent/CN115509433A/zh
Pending legal-status Critical Current

Links

Images

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/0604Improving or facilitating administration, e.g. storage management
    • 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
    • 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/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/062Securing storage systems
    • G06F3/0622Securing storage systems in relation to access
    • 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]

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)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本申请实施例公开了一种数据读写方法以及相关装置。交换机接收来自存储控制器的存储控制器的地址信息,并为该存储控制器分配对应的交换地址信息。根据该存储控制器的地址信息和该存储控制器对应的交换地址信息,该交换机建立与该存储控制器之间的直接路径连接,该直接路径连接用于传输输入输出I/O报文,I/O报文用于通过存储控制器向存储阵列写入数据或通过存储控制从存储阵列读取数据。由于交换机与存储控制器之间建立的直接路径连接可以传输I/O报文,避免了I/O处理的多次寻址,缩短了I/O报文的转发路径,减少数据读写操作完成时间,提升数据读写效率。

Description

一种数据读写方法以及相关装置
技术领域
本申请涉及存储技术领域,尤其涉及一种数据读写方法以及相关装置。
背景技术
企业存储或者分布式存储系统通常包括客户端服务器集群、网络和存储阵列集群。客户端服务器集群(简称为客户端)可以承载例如结构化查询语言(Structured QueryLanguage,SQL)服务或者数据库等多种应用。客户端读写的数据实际存储于后端的存储阵列集群中。客户端的数据读写访问也称为输入/输出(input/output,I/O)请求,每一次数据读写访问都需要客户端通过网络到存储阵列集群中进行实际的数据读写操作。
存储阵列集群由很多存储控制器和存储阵列组成,考虑到高可用和数据访问一致性等因素,往往每个存储控制器分管部分数据盘的数据读写操作。每一次对数据的I/O请求,都需要存储阵列集群中对应的一个存储控制器负责这次I/O请求对数据盘的读写处理。即每个I/O请求有对应的归属存储控制器,归属存储控制器才有权限访问存储阵列中的数据。当前,客户端和存储阵列通常为两套独立的系统,客户端无法预先获取每个I/O请求对应的存储控制器。I/O请求与存储控制器之间的对应关系保存在存储阵列的每一个存储控制器中。客户端根据自身的算法(例如负载均衡,轮询等),将I/O请求发送到存储阵列中的一个存储控制器。该存储控制器通过查找I/O请求与存储控制器之间的对应关系,确定目标存储控制器并将此I/O请求重路由到目标存储控制器以进行数据读写操作。
上述方法由于需要重路由,因此I/O请求的转发路径较长,造成数据读写操作完成时间较长,影响数据读写效率。
发明内容
本申请提出一种数据读写方法,交换机接收来自存储控制器的所述存储控制器的地址信息,并为所述存储控制器分配对应的交换地址信息。根据该存储控制器的地址信息和该存储控制器对应的交换地址信息,该交换机建立与该存储控制器之间的直接路径连接,该直接路径连接用于传输I/O报文,所述I/O报文用于通过所述存储控制器向存储阵列写入数据或通过所述存储控制从存储阵列读取数据。由于交换机与存储控制器之间建立的直接路径连接可以传输I/O报文,避免了I/O处理的多次寻址,缩短了I/O报文的转发路径,减少数据读写操作完成时间,提升I/O访问次数(input/output per second,IOPS)性能,提升数据读写效率。
本申请第一方面提供一种数据读写方法,交换机接收存储控制器的地址信息,所述存储控制器的地址信息包括以下一项或多项:所述存储控制器的队列对端口号、所述存储控制器的互联网协议地址、所述存储控制器的传输控制协议TCP端口号、或者协议号;所述交换机为所述存储控制器分配对应的交换地址信息,所述交换地址信息包括以下一项或多项:所述交换机的队列对端口号、所述交换机的互联网协议IP地址或者所述交换机的端口号;所述交换机与所述存储控制器建立直接路径连接,所述直接路径连接用于传输输入输出I/O报文,所述I/O报文用于通过所述存储控制器向存储阵列写入数据或通过所述存储控制从存储阵列读取数据。
一种可能的场景中,交换机与该存储控制器建立通信连接。存储控制器的地址信息通过该通信连接传输至交换机中。该通信连接也可以称为控制面连接。具体建立该通信连接的过程如下:(a)、交换机发起关于直接路径连接的监听任务。(b)、当存储控制器上线后,该存储控制器本地分配存储控制器的队列对端口号(或者该存储控制器的IP地址与端口号)。(c)、交换机监听到存储控制器上线后,交换机与存储控制器通过远程直接数据存取RDMA建链流程(或者传输控制协议TCP建链流程)建立控制面连接。
当交换机与该存储控制器之间建立TCP连接,该TCP连接用于传输存储控制器的地址信息。该存储控制器的地址信息包括:该存储控制器的IP地址、该存储控制器的TCP端口号以及协议号。
当交换机与该存储控制器之间建立RDMA连接,该RDMA连接用于传输存储控制器的地址信息。该存储控制器的地址信息包括:该存储控制器的队列对端口号QP和该存储控制器的IP地址。
本申请中,当客户端上线后,客户端会与存储控制器建立网络连接,则交换机与该存储控制器建立网络连接。当网络连接建立后,交换机接收来自存储控制器的所述存储控制器的地址信息,并为所述存储控制器分配对应的交换地址信息。根据该存储控制器的地址信息和该存储控制器对应的交换地址信息,该交换机建立与该存储控制器之间的直接路径连接,该直接路径连接用于传输I/O报文,所述I/O报文用于通过所述存储控制器向存储阵列写入数据或通过所述存储控制从存储阵列读取数据。由于交换机与存储控制器之间建立的直接路径连接可以传输I/O报文,避免了I/O处理的多次寻址,缩短了I/O报文的转发路径,减少数据读写操作完成时间,提升IOPS性能,提升数据读写效率。
可选的,所述交换机接收来自所述存储控制器的路由信息,所述路由信息包括以下信息中的一项或多项:所述存储控制器的标识信息、所述存储控制器的输入输出I/O地址、目的地为所述存储控制器的I/O报文是否需要复制,或者所述存储控制器的负载信息,所述I/O地址包括逻辑单元号、命名空间的标识和/或逻辑区块地址。
本申请中将指存储控制器所管理的存储阵列的负载信息,简称为存储控制器的负载信息。存储控制器的负载信息包括但不限于:该存储控制器的存储空间总量、该存储控制器的剩余可用存储空间、该存储控制器的已用存储空间、该存储控制器的IOPS、该存储控制器是否支持双活模式,或者该存储控制器的温度。
交换机接收存储控制器的路由信息,使得交换机能够掌握存储控制器的状态,当交换机收到I/O报文后,可以为该I/O报文快速的确定对应的存储控制器。提升数据读写效率。
可选的,所述交换机生成第一映射关系,所述第一映射关系包括所述直接路径连接的标识信息和所述I/O地址的映射关系。该第一映射关系可以是键值对(key-value)的哈希(hash)表。该表的键(key)为I/O地址,该表的值(value)为该直接路径连接的标识信息。当交换机收到I/O报文后,可以为该I/O报文和第一映射关系快速的确定对应的存储控制器。提升数据读写效率。
一种可能的实现方式中,当任一交换机与任一存储控制器之间只建立一条直接路径连接时,该直接路径连接的标识信息可以是该存储控制器的标识信息。
可选的,该第一映射关系可以包括:直接路径连接的标识信息、存储控制器的标识信息和I/O地址。
可选的,该第一映射关系可以包括:直接路径的标识信息、I/O地址、存储控制器的标识信息和客户端的标识信息。
可选的,所述交换机接收来自客户端的第一I/O报文,该第一I/O报文用于通过存储控制器向存储阵列写入数据或通过存储控制器从存储阵列读取数据;所述交换机根据所述第一I/O报文和所述第一映射关系,确定所述直连路径连接;所述交换机通过所述直接路径连接,向所述存储控制器发送所述第一I/O报文。
具体的,交换机解析该第一I/O报文中的地址信息。交换机根据该第一I/O报文中的地址信息,确定该第一I/O报文的目的地,即该第一I/O报文对应的存储控制器。交换机根据该存储控制器的标识信息,确定对应的直接路径连接的标识信息。交换机使用该直接路径连接向存储控制器发送该第一I/O报文。
可选的,当该第一映射关系包括:直接路径连接的标识信息、存储控制器的标识信息和I/O地址时。交换机收到第一I/O报文后,首先,根据第一I/O报文中的I/O地址,确定对应的存储控制器的地址信息。其次,交换机根据该存储控制器的地址信息确定直接路径连接的标识信息。交换机使用该直接路径连接发送该第一I/O报文。
可选的,当任一交换机与任一存储控制器之间建立一条或多条直接路径连接时,不同的直接路径连接用于承载不同客户端的I/O报文。该第一映射关系包括:直接路径的标识信息、I/O地址、存储控制器的标识信息和客户端的标识信息。
交换机收到第一I/O报文后,首先,根据第一I/O报文中的I/O地址,确定对应的存储控制器的地址信息。其次,交换机根据第一I/O报文确定该I/O报文的源地址信息,即该第一I/O报文对应的客户端的地址信息。再次,交换机根据该客户端的地址信息,确定客户端的标识信息,一种可能的实现方式中,该客户端的地址信息与该客户端的标识信息一致。再次,交换机根据该客户端的标识信息,确定对应的直接路径连接的标识信息。交换机使用该直接路径连接发送该第一I/O报文。
可选的,该第一映射关系包括:直接路径的标识信息、I/O地址、存储控制器的标识信息和客户端的标识信息。
一种可能的实现中,交换机收到第一I/O报文后,首先,根据第一I/O报文中的I/O地址,确定对应的存储控制器的地址信息。其次,交换机检测该存储控制器对应的直接路径连接的数量。当该存储控制器仅对应一条直接路径连接时,交换机直接使用该直接路径连接发送该第一I/O报文。
当该存储控制器对应多条直接路径连接时,交换机根据该第一I/O报文中的源地址信息,即该第一I/O报文对应的客户端的地址信息,确定该第一I/O报文来自哪一个客户端。再次,交换机根据该客户端的地址信息,确定客户端的标识信息,一种可能的实现方式中,该客户端的地址信息与该客户端的标识信息一致。再次,交换机根据该客户端的标识信息,确定对应的直接路径连接的标识信息。交换机使用该直接路径连接发送该第一I/O报文。
可选的,交换机可以根据各个存储控制器上报的状态信息,动态选择合适的存储控制器接收该第一I/O报文。这里的合适的存储控制器可以是可用空间较大的存储控制器,或者IOPS性能较强的存储控制器,或者存储控制器的中央处理器(central processingunit,CPU)的处理负载较低的存储控制器,此处不作限制。以便均衡各个存储控制器的工作负载。
可选的,交换机检测该第一I/O报文,当第一I/O报文的目的地(存储控制器)为执行双活模式的存储控制器。则交换机复制该第一I/O报文。交换机向该存储控制器的备份存储控制器发送该第一I/O报文,该存储控制器与该备份存储控制器工作在双活模式。该交换机向备份存储控制器发送的第一I/O报文增加指示该报文为复制报文的标识。提升数据的安全性。
可选的,所述交换机检测所述第一I/O报文的类型;当所述第一I/O报文为数据报文时,所述交换机通过所述直接路径连接向所述存储控制器发送所述第一I/O报文;当所述第一I/O报文为非数据报文时,所述交换机透传所述第一I/O报文。通过识别报文的类型,对不同报文执行不同的处理,降低对网络的负载。
可选的,所述交换机通过所述直接路径连接,接收来自所述存储控制器的第一回复报文,所述第一回复报文为所述第一I/O报文的响应;所述交换机向所述客户端发送所述第一回复报文。交换机通过直接路径连接接收来自存储控制器的回复报文,交换机再将该回复报文发送至客户端,实现客户端不感知回复报文的路由路径。
可选的,所述交换机接收来自所述存储控制器的第二回复报文,所述第二回复报文为所述第一I/O报文的响应,所述第二回复报文的目的地为第二存储控制器,所述第二存储控制器为所述客户端为所述第一I/O报文初始分配的存储控制器;所述交换机向所述第二存储控制器转发所述第二回复报文;所述交换机接收来自所述第二存储控制器的第三回复报文,所述第三回复报文是根据所述第二回复报文生成的;所述交换机转发来自所述第二存储控制器的所述第三回复报文。
存储控制器可以将I/O回复报文转发给第二存储控制器,第二存储控制器为所述客户端为所述第一I/O报文初始分配的存储控制器。第二存储控制器保留与客户端的网络连接,因此第二存储控制器将I/O回复报文承载在网络连接上直接发给该客户端,交换机仅执行报文转发,也可以实现客户端不感知回复报文的路由路径。
可选的,所述第二回复报文包括代理指示信息,所述代理指示信息指示所述第二存储控制器代理所述存储控制器将所述第二回复报文发送至所述客户端,所述第三回复报文不包括所述代理指示信息。存储控制器通过显式的代理指示信息指示第二存储控制器将该第二回复报文发送至客户端,实现客户端不感知回复报文的路由路径。
可选的,当所述第一I/O报文需要复制时,所述交换机复制所述第一I/O报文;所述交换机向所述存储控制器的备份存储控制器发送复制的所述第一I/O报文,所述备份存储控制器和所述存储控制器工作在双活模式。
该存储控制器作为双活集群的一部分,双活集群工作在双活模式(也称为双活集群执行双活任务)。双活集群的特点是两个集群都是在线运行的,并且可以支持相同的应用负载。客户端在向双活集群写入数据时,例如客户端向双活集群发送I/O报文,则该双活集群中的其中一个集群根据该I/O报文执行读写操作,该集群复制该I/O报文并发送至另一个集群,以使另一个集群存储该I/O报文中的数据。客户端从双活集群中读取数据时,如果双活集群中有一个集群故障,另一个集群还可以正常工作,那么客户端可以直接通过正常工作的集群读取数据。由此可知,双活模式可以有效提升存储数据的安全性。类似地,当该存储控制器与备份存储控制器工作在双活模式,则该存储控制器接收I/O报文后,复制该I/O报文并向备份存储控制器发送该I/O报文。由该备份存储控制器存储该I/O报文中的数据。
可选的,当交换机接收第一I/O报文,交换机通过与存储控制器的直接路径连接向存储控制器发送该第一I/O报文。交换机向第二存储控制器发送第一指示信息,该第一指示信息指示第二存储控制器更新本地的接收报文的序列号,第二存储控制器为所述客户端为所述第一I/O报文初始分配的存储控制器。例如,存储控制器接收I/O报文后,为该I/O报文分配一个序列号,作为该接收报文的序列号。通过第一指示信息指示第二存储控制器更新本地的接收报文的序列号,避免第二存储控制器因为没有收到第一I/O报文导致乱序问题。
可选的,交换机向第二存储控制器发送第一指示信息,包括:交换机向第二存储控制器发送信号报文,该信号报文的报文头中包括第一I/O报文的报文头信息,该信号报文的报文头还包括第一指示信息。
可选的,交换机通知各个存储控制器关闭乱序报文的检测功能。避免第二存储控制器因为没有收到第一I/O报文导致乱序问题,第二存储控制器为所述客户端为所述第一I/O报文初始分配的存储控制器。
可选的,所述直接路径连接为传输控制协议TCP连接,或者,远程直接数据存储RDMA连接。
本申请第二方面提供一种数据读写方法,存储控制器向交换机发送存储控制器的地址信息,所述存储控制器的地址信息包括以下一项或多项:所述存储控制器的队列对端口号、所述存储控制器的互联网协议地址、所述存储控制器的传输控制协议TCP端口号、或者协议号;所述存储控制器与所述交换机建立直接路径连接,所述直接路径连接用于传输输入输出I/O报文,所述I/O报文用于通过所述存储控制器向存储阵列写入数据或通过所述存储控制从存储阵列读取数据。
当交换机与该存储控制器之间建立TCP连接,该TCP连接用于传输存储控制器的地址信息。该存储控制器的地址信息包括:该存储控制器的IP地址、该存储控制器的TCP端口号以及协议号。
当交换机与该存储控制器之间建立RDMA连接,该RDMA连接用于传输存储控制器的地址信息。该存储控制器的地址信息包括:该存储控制器的队列对端口号QP和该存储控制器的IP地址。
本申请中,当客户端上线后,客户端会与存储控制器建立网络连接,则交换机与该存储控制器建立网络连接。当网络连接建立后,交换机接收来自存储控制器的所述存储控制器的地址信息,并为所述存储控制器分配对应的交换地址信息。根据该存储控制器的地址信息和该存储控制器对应的交换地址信息,该交换机建立与该存储控制器之间的直接路径连接,该直接路径连接用于传输I/O报文,所述I/O报文用于通过所述存储控制器向存储阵列写入数据或通过所述存储控制从存储阵列读取数据。由于交换机与存储控制器之间建立的直接路径连接可以传输I/O报文,避免了I/O处理的多次寻址,缩短了I/O报文的转发路径,减少数据读写操作完成时间,提升IOPS性能,提升数据读写效率。
可选的,所述存储控制器向所述交换机发送所述存储控制器的路由信息,所述路由信息包括以下信息中的一项或多项:所述存储控制器的标识信息、所述存储控制器的输入输出I/O地址、目的地为所述存储控制器的I/O报文是否需要复制,或者所述存储控制器的负载信息,所述I/O地址包括逻辑单元号、命名空间的标识和/或逻辑区块地址。交换机接收存储控制器的路由信息,使得交换机能够掌握存储控制器的状态,当交换机收到I/O报文后,可以为该I/O报文快速的确定对应的存储控制器。提升数据读写效率。
可选的,所述存储控制器通过所述直接路径连接接收来自所述交换机的第一I/O报文。
可选的,所述存储控制器根据所述第一I/O报文,生成第一回复报文,所述第一回复报文为所述第一I/O报文的响应;所述存储控制器向所述交换机发送所述第一回复报文。交换机通过直接路径连接接收来自存储控制器的回复报文,交换机再将该回复报文发送至客户端,实现客户端不感知回复报文的路由路径。
可选的,所述存储控制器根据所述第一I/O报文,生成第二回复报文,所述第二回复报文为所述第一I/O报文的响应;所述存储控制器向所述交换机发送所述第二回复报文,所述第二回复报文的目的地为第二存储控制器,所述第二存储控制器为所述客户端为所述第一I/O报文初始分配的存储控制器。存储控制器可以将I/O回复报文转发给第二存储控制器,第二存储控制器为所述客户端为所述第一I/O报文初始分配的存储控制器。第二存储控制器保留与客户端的网络连接,因此第二存储控制器将I/O回复报文承载在网络连接上直接发给该客户端,交换机仅执行报文转发,也可以实现客户端不感知回复报文的路由路径。
可选的,所述第二回复报文包括代理指示信息,所述代理指示信息指示所述第二存储控制器代理所述存储控制器将所述第二回复报文发送至所述客户端。存储控制器通过显式的代理指示信息指示第二存储控制器将该第二回复报文发送至客户端,实现客户端不感知回复报文的路由路径。
可选的,所述直接路径连接为传输控制协议TCP连接,或者,远程直接数据存储RDMA连接。
本申请第三方面提供一种网络设备,包括:收发模块和处理模块;
所述收发模块,用于接收存储控制器的地址信息,所述存储控制器的地址信息包括以下一项或多项:所述存储控制器的队列对端口号、所述存储控制器的互联网协议地址、所述存储控制器的传输控制协议TCP端口号、或者协议号;
所述处理模块,用于为所述存储控制器分配对应的交换地址信息,所述交换地址信息包括以下一项或多项:所述交换机的队列对端口号、所述交换机的互联网协议地址或者所述交换机的端口号;
所述处理模块,还用于与所述存储控制器建立直接路径连接,所述直接路径连接用于传输输入输出I/O报文,所述I/O报文用于通过所述存储控制器向存储阵列写入数据或通过所述存储控制从存储阵列读取数据。
可选的,所述收发模块,还用于接收来自所述存储控制器的路由信息,所述路由信息包括以下信息中的一项或多项:所述存储控制器的标识信息、所述存储控制器的输入输出I/O地址、目的地为所述存储控制器的I/O报文是否需要复制,或者所述存储控制器的负载信息,所述I/O地址包括逻辑单元号、命名空间的标识和/或逻辑区块地址。
可选的,所述处理模块,还用于生成第一映射关系,所述第一映射关系包括所述直接路径连接的标识信息和所述I/O地址的映射关系。
可选的,所述收发模块,还用于接收来自客户端的第一I/O报文;
所述处理模块,还用于根据所述第一I/O报文和所述第一映射关系,确定所述直连路径连接;
所述收发模块,还用于通过所述直接路径连接,向所述存储控制器发送所述第一I/O报文。
可选的,所述处理模块,还用于检测所述第一I/O报文的类型;
所述收发模块,还用于当所述第一I/O报文为数据报文时,通过所述直接路径连接向所述存储控制器发送所述第一I/O报文;
所述收发模块,还用于当所述第一I/O报文为非数据报文时,透传所述第一I/O报文。
可选的,所述收发模块,还用于通过所述直接路径连接,接收来自所述存储控制器的第一回复报文,所述第一回复报文为所述第一I/O报文的响应;
所述收发模块,还用于向所述客户端发送所述第一回复报文。
可选的,所述收发模块,还用于接收来自所述存储控制器的第二回复报文,所述第二回复报文为所述第一I/O报文的响应,所述第二回复报文的目的地为第二存储控制器,所述第二存储控制器为所述客户端为所述第一I/O报文初始分配的存储控制器;
所述收发模块,还用于向所述第二存储控制器转发所述第二回复报文;
所述收发模块,还用于接收来自所述第二存储控制器的第三回复报文,所述第三回复报文是根据所述第二回复报文生成的;
所述收发模块,还用于转发来自所述第二存储控制器的所述第三回复报文。
可选的,所述第二回复报文包括代理指示信息,所述代理指示信息指示所述第二存储控制器代理所述存储控制器将所述第二回复报文发送至所述客户端,所述第三回复报文不包括所述代理指示信息。
可选的,所述处理模块,还用于当所述第一I/O报文需要复制时,复制所述第一I/O报文;
所述收发模块,还用于向所述存储控制器的备份存储控制器发送复制的所述第一I/O报文,所述备份存储控制器和所述存储控制器工作在双活模式。
可选的,所述直接路径连接为传输控制协议TCP连接,或者,远程直接数据存储RDMA连接。
本申请第四方面提供一种存储设备,包括:收发模块和处理模块;
所述收发模块,用于向交换机发送存储控制器的地址信息,所述存储控制器的地址信息包括以下一项或多项:所述存储控制器的队列对端口号、所述存储控制器的互联网协议地址、所述存储控制器的传输控制协议TCP端口号、或者协议号;
所述处理模块,用于与所述交换机建立直接路径连接,所述直接路径连接用于传输输入输出I/O报文,所述I/O报文用于通过所述存储控制器向存储阵列写入数据或通过所述存储控制从存储阵列读取数据。
可选的,所述收发模块,还用于向所述交换机发送所述存储控制器的路由信息,所述路由信息包括以下信息中的一项或多项:所述存储控制器的标识信息、所述存储控制器的输入输出I/O地址、目的地为所述存储控制器的I/O报文是否需要复制,或者所述存储控制器的负载信息,所述I/O地址包括逻辑单元号、命名空间的标识和/或逻辑区块地址。
可选的,所述收发模块,还用于通过所述直接路径连接接收来自所述交换机的第一I/O报文。
可选的,所述处理模块,还用于根据所述第一I/O报文,生成第一回复报文,所述第一回复报文为所述第一I/O报文的响应;
所述收发模块,还用于通过所述直接路径连接向所述交换机发送所述第一回复报文。
可选的,所述处理模块,还用于根据所述第一I/O报文,生成第二回复报文,所述第二回复报文为所述第一I/O报文的响应;
所述收发模块,还用于向所述交换机发送所述第二回复报文,所述第二回复报文的目的地为第二存储控制器,所述第二存储控制器为所述客户端为所述第一I/O报文初始分配的存储控制器。
可选的,所述第二回复报文包括代理指示信息,所述代理指示信息指示所述第二存储控制器代理所述存储控制器将所述第二回复报文发送至所述客户端。
可选的,所述直接路径连接为传输控制协议TCP连接,或者,远程直接数据存储RDMA连接。
本申请第五方面提供一种网络设备,该网络设备包括:处理器,用于使得网络设备实现如前述第一方面或第一方面的任一可能的实现方式中描述的方法。该设备还可以包括存储器,存储器与处理器耦合,处理器执行存储器中存储的指令时,可以使得网络设备实现前述第一方面任一种可能的实现方式描述的方法。该设备还可以包括通信接口,通信接口用于该装置与其它设备通信,示例性的,通信接口可以是收发器、电路、总线、模块或其它类型的通信接口。
本申请中存储器中的指令可以预先存储也可以在使用该网络设备时从互联网下载后存储,本申请对于存储器中指令的来源不进行具体限定。本申请中的耦合是装置、单元或模块之间的间接耦合或连接,其可以是电性,机械或其它的形式,用于装置、单元或模块之间的信息交互。
本申请第六方面提供一种存储设备,该网络设备包括:处理器,用于使得存储设备实现如前述第二方面或第二方面的任一可能的实现方式中描述的方法。该设备还可以包括存储器,存储器与处理器耦合,处理器执行存储器中存储的指令时,可以使得存储设备实现前述第二方面任一种可能的实现方式描述的方法。该设备还可以包括通信接口,通信接口用于该装置与其它设备通信,示例性的,通信接口可以是收发器、电路、总线、模块或其它类型的通信接口。
本申请中存储器中的指令可以预先存储也可以在使用该存储设备时从互联网下载后存储,本申请对于存储器中指令的来源不进行具体限定。本申请中的耦合是装置、单元或模块之间的间接耦合或连接,其可以是电性,机械或其它的形式,用于装置、单元或模块之间的信息交互。
本申请第七方面提供一种计算机存储介质,该计算机存储介质可以是非易失性的;该计算机存储介质中存储有计算机可读指令,当该计算机可读指令被处理器执行时实现第一方面或第一方面的任一可能的实现方式中描述的方法。
本申请第八方面提供一种计算机存储介质,该计算机存储介质可以是非易失性的;该计算机存储介质中存储有计算机可读指令,当该计算机可读指令被处理器执行时实现第二方面或第二方面的任一可能的实现方式中描述的方法。
本申请第九方面提供一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行如第一方面或第一方面的任一可能的实现方式中描述的方法。
本申请第十方面提供一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行如第二方面或第二方面的任一可能的实现方式中描述的方法。
本申请第十一方面提供了一种存储系统,该存储系统包括多个如上述第三方面或第五方面的网络设备,和多个如上述第四方面或第六方法的存储设备。
上述第三方面至第十一方面提供的方案,用于实现或配合实现上述第一方面或第二方面提供的方法,因此可以与第一方面或第二方面达到相同或相应的有益效果,此处不再进行赘述。
附图说明
图1a为本申请实施例涉及的一种网络架构示意图;
图1b为本申请实施例提出的一种网络架构示意图;
图2为本申请实施例提出的一种应用场景示意图;
图3为本申请实施例提出的又一种应用场景示意图;
图4为本申请实施例提供的数据读写方法的流程示意图;
图5为本申请实施例提出的一种数据读写方法的实施例示意图;
图6为本申请实施例提出的另一种数据读写方法的实施例示意图;
图7为本申请实施例提出的一种数据读写方法的又一种实施例示意图;
图8为本申请实施例提供的一种网络设备800的结构示意图;
图9为本申请实施例提供的一种网络设备900的结构示意图;
图10为本申请实施例提供的存储设备1000的结构示意图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,下面结合附图,对本申请的实施例进行描述。显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。本领域普通技术人员可知,随着新应用场景的出现,本申请实施例提供的技术方案对于类似的技术问题,同样适用。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的描述在适当情况下可以互换,以便使实施例能够以除了在本申请图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或模块的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或模块,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或模块。在本申请中出现的对步骤进行的命名或者编号,并不意味着必须按照命名或者编号所指示的时间/逻辑先后顺序执行方法流程中的步骤,已经命名或者编号的流程步骤可以根据要实现的技术目的变更执行顺序,只要能达到相同或者相类似的技术效果即可。本申请中所出现的单元的划分,是一种逻辑上的划分,实际应用中实现时可以有另外的划分方式,例如多个单元可以结合成或集成在另一个系统中,或一些特征可以忽略,或不执行,另外,所显示的或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元之间的间接耦合或通信连接可以是电性或其他类似的形式,本申请中均不作限定。并且,作为分离部件说明的单元或子单元可以是也可以不是物理上的分离,可以是也可以不是物理单元,或者可以分布到多个电路单元中,可以根据实际的需要选择其中的部分或全部单元来实现本申请方案的目的。
尽管本申请实施例对此不作限制,但是利用“处理”、“计算”、“确定”、“建立”、“分析”以及“检查”等术语进行的讨论可以指计算机、计算平台、计算系统或其它电子计算设备的操作和/或处理,其将表示为计算机寄存器和/或存储器中的物理(例如,电子)量的数据操作和/或转换为类似地表示为计算机寄存器和/或存储器中的物理量的其它数据或可以存储执行操作和/或处理指令的非瞬时性存储介质中的其它信息。
为了便于理解,以下先介绍本申请实施例所涉及的技术术语。
(1)、输入输出(input/output,I/O)报文。
I/O报文也可以称为I/O命令或者I/O请求。具体的,I/O命令可以分为读命令和写命令,是指由服务器上运行的应用程序下发的用于指示从存储阵列读数据或向存储阵列写数据的命令。服务器的处理器可以接收I/O命令,并将其存储在存储器中,以使得I/O命令等待被处理。具体的,可以将I/O命令存储在存储器的队列中。
(2)、队列。
队列是一种特殊的线性表,可以在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作。进行插入操作的端称为队尾,进行删除操作的端称为队头。队列中没有元素时,称为空队列。队列的数据元素又称为队列元素。在队列中插入一个队列元素称为入队,从队列中删除一个队列元素称为出队。队列又可以被称为先进先出(first in firstout,FIFO)线性表。
队列的类型可以有多种,例如,发送队列(send queue,SQ),接收队列(receivequeue,RQ),完成队列(complete queue,CQ),事件队列(event queue,EQ)。
发送端(例如:服务器)的发送队列和接收端(例如:存储控制器)的接收队列可以称为队列对(queue pair,QP)。
发送队列可以用于存储待处理的I/O命令;接收队列用于存储以及处理接收的I/O命令。
作为一个示例,当发送端为服务器,接收端为存储控制器时,服务器中的发送队列用于存储该服务器下发的用于指示向存储控制器读数据或写数据的I/O命令,例如,该I/O命令为读取存储控制器中存储的数据的读命令,服务器可以将处理后的读命令发送至存储控制器,该读命令中可以包括需要读取的数据的地址和长度等,以使得存储控制器可以根据该处理后的读命令,向服务器发送其需要读取的数据。
又如,该I/O命令为向存储控制器中写入数据的写命令,服务器可以对写命令进行处理之后,将处理后的写命令发送至存储控制器,以使得存储控制器可以根据处理后的写命令查找接收队列中的内存信息,根据查找到的内存信息将处理后的写命令中的数据存储至存储控制器的内存中。
类似地,存储控制器中的发送队列也可以存储该存储控制器下发的用于指示从服务器读数据或向服务器写数据的I/O命令,并通过存储控制器发送至服务器。具体请参考上文中的描述,此处不再赘述。
以分布式存储系统为例,如图1a所示,为本申请实施例涉及的一种网络架构示意图。客户端集群中包括多个客户端,存储阵列集群中包括多个存储控制器(例如图1a所示的存储控制器A和存储控制器N)以及存储阵列(图中未示出),客户端与存储控制器之间通过交换机建立连接。由于分布式存储系统中客户端集群与存储阵列集群通常分属于两个独立的系统,因此,客户端无法预先获取各个存储控制器的地址信息。当客户端发起I/O请求时(即客户端通过交换机向存储阵列集群发送I/O报文),由于客户端无法获知该I/O请求对应的归属存储控制器,客户端根据负载均衡等算法,在存储阵列集群中确定一个存储控制器。由该确定的存储控制器,查找该I/O报文的归属存储控制器,并将该I/O报文重路由至该归属存储控制器,完成读数据或者写数据。该归属存储控制器指的是该I/O报文的目的地,该归属存储控制器也可以称为目标存储控制器。该I/O报文中的寻址地址为该归属存储控制器的地址(例如,逻辑单元号(logical unit number,LUN)、逻辑区块地址(logical blockaddress,LBA))。
结合图1a,上述流程如下:来自客户端的I/O报文首先到达存储控制器A,该存储控制器A为客户端随机确定的。存储控制器A解封装I/O报文,根据I/O报文中的元数据查找映射关系表确定处理这个I/O报文的归属存储控制器N,然后存储控制器A将此I/O报文重新封装并转发至存储控制器N。存储控制器N接收该I/O报文后,重新解封装I/O报文,得到元数据获取存储阵列的地址信息。存储控制器N根据该I/O报文对存储阵列进行读写处理任务。此I/O报文的后续报文也需要经过上述流程反馈至客户端。
上述由接收到I/O报文的存储控制器向该I/O报文的归属存储控制器转发该I/O报文的过程称为重路由(也称为I/O重路由),由于重路由过程中,I/O报文需要经过多次寻址转发,因此I/O报文的转发路径较长,造成数据读写操作完成时间较长,每秒的I/O访问次数(input/output per second,IOPS)降低,影响数据读写效率。
有鉴于此,本申请提出一种数据读写方法,交换机接收来自存储控制器的所述存储控制器的地址信息,并为所述存储控制器分配对应的交换地址信息。根据该存储控制器的地址信息和该存储控制器对应的交换地址信息,该交换机建立与该存储控制器之间的直接路径连接,该直接路径连接用于传输I/O报文,所述I/O报文用于通过所述存储控制器向存储阵列写入数据或通过所述存储控制从存储阵列读取数据。由于交换机与存储控制器之间建立的直接路径连接可以传输I/O报文,因此客户端的I/O报文无需经过前述的重路由流程。缩短了I/O报文的转发路径,减少数据读写操作完成时间,提升每秒的I/O访问次数(input/output per second,IOPS),提升数据读写效率。
下面,首先介绍本申请实施例所适用的网络架构。请参阅图1b,为本申请实施例提出的一种网络架构示意图。网络架构包括客户端集群、交换机110以及存储阵列集群,其中,客户端集群包括一个或多个客户端,存储阵列集群包括一个或多个存储控制器120,每个存储控制器120管理一个或多个存储阵列(图中未示出)。客户端发起的I/O请求通过交换机110转发至存储控制器120。
本申请实施例中,当客户端上线后,该客户端会通过交换机与一个或多个存储控制器之间建立网络连接,该网络连接可以是传输控制协议(Transmission ControlProtocol,TCP)连接。交换机与存储控制器建立直接路径连接,该存储控制器可以是与该客户端建立网络连接的存储控制器,该存储控制器也可以是未与该客户端建立网络连接的存储控制器。本申请中,直接路径连接用于交换机和存储控制器之间的直接通信(即不需要通过其他存储控制器转发的通信),且该直接路径连接用于传输I/O报文。
下面结合附图进行说明:
(A)、请参阅图2,图2为本申请实施例提出的一种应用场景示意图。客户端上线后与存储控制器A和存储控制器B分别建立网络连接。交换机与该存储控制器A和存储控制器B分别建立连接。
一种可能的实现方式为:客户端上线后,客户端与存储控制器A和存储控制器B分别建立网络连接。交换机与每一个存储控制器(存储控制器A和存储控制器B)分别建立直接路径连接。
另一种可能的实现方式中:客户端上线后,客户端与存储控制器A和存储控制器B分别建立网络连接。当客户端下发I/O报文,客户端会为该I/O报文随机确定一个存储控制器,该I/O报文的实际目的地为该I/O报文的归属存储控制器。当随机确定的存储控制器与该归属存储控制器一致,则交换机与该归属存储控制器之间不建立直接路径连接。可选的,该交换机与其它存储控制器之间建立直接路径连接。
当随机确定的存储控制器与该归属存储控制器不一致,则交换机与该归属存储控制器之间建立直接路径连接。
另一种可能的实现方式中:客户端上线后,客户端与存储控制器A和存储控制器B建立网络连接。当客户端下发I/O报文,交换机根据该I/O报文与所有的存储控制器(存储控制器A和存储控制器B)建立直接路径连接。(B)、请参阅图3,图3为本申请实施例提出的又一种应用场景示意图。客户端上线后与存储控制器A和存储控制器B分别建立网络连接。图3中的存储控制器C并未与该客户端建立网络连接。交换机与该存储控制器A、存储控制器B和存储控制器C建立直接路径连接。一种可能的示例中,该客户端发起的I/O请求中归属存储控制器为该存储控制器C,而该客户端并未与该存储控制器C建立网络连接。当交换机收到该I/O请求后,该交换机与该存储控制器C建立直接路径连接。该交换机通过直接路径连接向该存储控制器C发送该I/O请求,以使存储控制器C完成I/O处理。这种场景下,交换机只有在需要与存储控制器C通信时,才建立与存储控制器C之间的直径路径连接。
另一种可能的实现方式中,当该客户端发起的I/O请求中归属存储控制器并不是存储控制器C,且存储控制器C与该客户端并未建立网络连接。当交换机收到该I/O请求后,该交换机与该存储控制器C建立直接路径连接。以便后续关于该存储控制器C的I/O请求,可以通过直接路径连接发送至该存储控制器C。
结合图1b,图2,以及图3所示的场景,本申请实施例提供了一种数据读写方法。如图4所示,为本申请实施例提供的数据读写方法的流程示意图,该数据读写方法包括步骤401-408。
401、交换机接收来自存储控制器的路由信息。
本实施例中,交换机接收来自存储控制器的路由信息,该路由信息包括以下信息中的一项或多项:存储控制器的标识信息、存储控制器的I/O地址、目的地为存储控制器的I/O报文是否需要复制,或者存储控制器的负载信息。I/O地址包括但不限于:逻辑单元号(logical unit number,LUN)、命名空间的标识(name space id,NSID),或逻辑区块地址(Logical Block Address,LBA)。本申请中,将指存储控制器所管理的存储阵列的负载信息,简称为存储控制器的负载信息。存储控制器的负载信息包括但不限于:该存储控制器的存储空间总量、该存储控制器的剩余可用存储空间、该存储控制器的已用存储空间、该存储控制器的IOPS、该存储控制器是否支持双活模式,或者该存储控制器的温度。
具体的,交换机首先与存储控制器之间建立通信连接,该通信连接采用的协议类型包括但不限于:传输控制协议(Transmission Control Protocol,TCP)、远程直接数据存取(Remote Direct Memory Access,RDMA)连接,或者用户数据报协议(User DatagramProtocol,UDP)。
一种可能的场景为:交换机与该存储控制器建立通信连接。当客户端上线后,该客户端配置可使用的存储控制器。该客户端与该存储控制器建立通信连接。该通信连接也可以称为控制面连接。具体的建立控制面连接的流程如下:
(a)、交换机发起关于直接路径连接的监听任务。
(b)、当存储控制器上线后,该存储控制器本地分配存储控制器的队列对端口号(或者该存储控制器的IP地址与端口号)。
(c)、交换机监听到存储控制器上线后,交换机与存储控制器通过RDMA建链流程(或者TCP建链流程)建立控制面连接。
当交换机与存储控制器之间建立该通信连接(控制面连接)后,交换机通过该通信连接接收来自存储控制器的路由信息。根据存储控制器实际采用的存储协议,该路由信息中的I/O地址可能不同,下面分别进行说明。
在一种可能的实现方式中,当存储控制器采用高速非易失性存储器(Non-Volatile Memory Express,NVMe)协议,则该I/O地址包括:逻辑区块地址和命名空间的标识。即交换机接收来自存储控制器的该存储控制器的LBA和该存储控制器的NSID。
在另一种可能的实现方式中,当存储控制器采用小型计算机系统接口(SmallComputer System Interface,SCSI)协议,则该I/O地址包括:逻辑单元号和逻辑区块地址。即交换机接收来自存储控制器的该存储控制器的LUN和该存储控制器的LBA。
存储控制器的标识信息可以包括该存储控制器的互联网协议(InternetProtocol,IP)地址和/或该存储控制器的名称。示例性的,该存储控制器的标识信息如表1所示:
表1
Figure BDA0003127444450000141
目的地为存储控制器的I/O报文是否需要复制,指的是该存储控制器是否处于双活(active-active)模式。该存储控制器作为双活集群的一部分,双活集群工作在双活模式(也称为双活集群执行双活任务)。双活集群的特点是两个集群都是在线运行的,并且可以支持相同的应用负载。客户端在向双活集群写入数据时,例如客户端向双活集群发送I/O报文,则该双活集群中的其中一个集群根据该I/O报文执行读写操作,该集群复制该I/O报文并发送至另一个集群,以使另一个集群存储该I/O报文中的数据。客户端从双活集群中读取数据时,如果双活集群中有一个集群故障,另一个集群还可以正常工作,那么客户端可以直接通过正常工作的集群读取数据。由此可知,双活模式可以有效提升存储数据的安全性。类似地,当该存储控制器与备份存储控制器工作在双活模式,则该存储控制器接收I/O报文后,复制该I/O报文并向备份存储控制器发送该I/O报文。由该备份存储控制器存储该I/O报文中的数据。
402、交换机接收来自存储控制器的存储控制器的地址信息。
本实施例中,交换机与存储控制器之间建立通信连接后,交换机接收来自存储控制器的存储控制器的地址信息。根据交换机与存储控制器之间建立的通信连接的不同,该交换机接收的存储控制器的地址信息可能不一样。下面分别进行说明。
当交换机与该存储控制器之间建立TCP连接,该TCP连接用于传输步骤401中的I/O路由信息与步骤402中的存储控制器的地址信息。该存储控制器的地址信息包括:该存储控制器的IP地址、该存储控制器的TCP端口号以及协议号。例如表2所示:
表2
存储控制器 存储控制器的IP地址 存储控制器的TCP端口号 协议号
存储控制器A 192.168.1.1 3260 6
存储控制器B 192.168.1.2 3270 6
当交换机与该存储控制器之间建立RDMA连接,该RDMA连接用于传输步骤401中的I/O路由信息与步骤402中的存储控制器的地址信息。该存储控制器的地址信息包括:该存储控制器的队列对端口号QP和该存储控制器的IP地址。例如表3所示:
表3
存储控制器 存储控制器的IP地址 存储控制器的队列对端口号
存储控制器A 192.168.1.1 551
存储控制器B 192.168.1.2 552
需要说明的是,步骤401与步骤402的执行顺序不作限制,即可以先执行步骤401再执行步骤402,也可以先执行步骤402再执行步骤401。
403、交换机为该存储控制器分配对应的交换地址信息。
本实施例中,当交换机接收该存储控制器的地址信息后,该交换机为该存储控制器分配对应的该交换地址信息。根据交换机与存储控制器之间建立的通信连接的不同,与步骤402类似,该交换地址信息存在不同,下面分别进行说明:
当交换机与该存储控制器之间建立TCP连接,该TCP连接用于传输步骤401中的I/O路由信息与步骤402中的交换地址信息。该交换地址信息包括:该交换机的IP地址、该交换机的TCP端口号以及协议号。例如表4所示:
表4
交换机 交换机的IP地址 交换机的TCP端口号 协议号
交换机A 192.168.1.3 3290 6
当交换机与该存储控制器之间建立RDMA连接,该RDMA连接用于传输步骤401中的I/O路由信息与步骤402中的交换地址信息。该交换地址信息包括:该交换机的队列对端口号QP和该交换机的IP地址。例如表5所示:
表5
交换机 交换机的IP地址 交换机的队列对端口号
交换机A 192.168.1.3 556
404、交换机与存储控制器建立直接路径连接。
本实施例中,该交换机通过与存储控制器之间的通信连接(即控制面连接),向存储控制器发送该存储控制器对应的交换地址信息。则交换机侧与存储控制器侧分别存储了交换地址信息和存储控制器的地址信息,交换机与存储控制器根据上述地址信息建立直接路径连接。交换机可以为每个直接路径连接分配一个直接路径连接的标识信息。具体的建立直接路径连接的流程,取决于该直接路径连接的类型。当该直接路径连接的类型为TCP时,通过TCP建链流程建立直接路径连接。当该直接路径连接的类型为RDMA通过RDMA建链流程建立直接路径连接。当该直接路径连接的类型为UDP时,通过UDP建链流程建立直接路径连接。需要说明的是,直接路径连接的类型包括但不限于TCP、UDP、或者RDMA。
示例性的,交换机A与存储控制器A之间的直接路径连接表示为:“存储控制器A:192.168.1.1//3260//6;交换机A:192.168.1.3//3290//6”。该直接路径连接的标识信息为“controller A-switch A”。该直接路径连接的类型为TCP。
交换机A与存储控制器B之间的直接路径连接表示为:“存储控制器B:192.168.1.2//3270//6;交换机A:192.168.1.3//3290//6”。该直接路径连接的标识信息为“controller B-switch A”。该直接路径连接的类型为TCP。
在又一种示例中,交换机A与存储控制器A之间的直接路径连接表示为:“存储控制器A:192.168.1.1//551;交换机A//192.168.1.3//556”。该直接路径连接的标识信息为“controller A-switch A”。该直接路径连接的类型为RDMA。
交换机A与存储控制器B之间的直接路径连接表示为:“存储控制器B:192.168.1.2//552;交换机A//192.168.1.3//556”。该直接路径连接的标识信息为“controller B-switch A”。该直接路径连接的类型为RDMA。
当任一个交换机与任一个存储控制器之间只建立一条直接路径连接时,该直接路径连接与存储控制器之间存在唯一的对应关系。因此,该直接路径连接的标识信息可以采用该存储控制器的标识信息。例如:交换机A与存储控制器B之间的直接路径连接表示为:“存储控制器B:192.168.1.2//552;交换机A//192.168.1.3//556”。该直接路径连接的标识信息为“controller B”。
在另一种可能的实现方式中,任一个交换机与任一个存储控制器之间可以建立多条直接路径连接。不同的直接路径连接可以承载不同客户端的I/O报文。下面进行示例说明。
示例性的,交换机A与存储控制器B之间的直接路径连接#1表示为:“存储控制器B:192.168.1.2//3270//6;交换机A:192.168.1.3//3290//6;客户端A:192.168.2.3//3310//6”。该直接路径连接#1的标识信息为“controller B-switch A-client A”。该直接路径连接#1的类型为TCP。
交换机A与存储控制器B之间的直接路径连接#2表示为:“存储控制器B:192.168.1.2//3270//6;交换机A:192.168.1.3//3290//6;客户端B:192.168.2.4//3320//6”。该直接路径连接#2的标识信息为“controller B-switch A-client B”。该直接路径连接#2的类型为TCP。
在又一种示例中,交换机A与存储控制器A之间的直接路径连接#1表示为:“存储控制器A:192.168.1.1//551;交换机A//192.168.1.3//556;客户端A//192.168.2.3//540”。该直接路径连接的标识信息为“controller A-switch A-client A”。该直接路径连接的类型为RDMA。
交换机A与存储控制器B之间的直接路径连接#2表示为:“存储控制器B:192.168.1.2//552;交换机A//192.168.1.3//556;客户端B//192.168.2.4//541”。该直接路径连接的标识信息为“controller B-switch A-client B”。该直接路径连接的类型为RDMA。
需要说明的是,根据直接路径连接使用的协议的不同,该直接路径连接还存在其它的实现方案,此处不作限制。上述直接路径连接的示例,还可以包括其它信息,例如:该直接路径连接的状态等,此处不作限制。
405、交换机生成第一映射关系。
本实施例中,交换机生成第一映射关系,该第一映射关系存在多种可能的实现,下面分别进行说明。
(a)、当任一个交换机与任一个存储控制器之间只建立一条直接路径连接时,该直接路径连接与存储控制器之间存在唯一的对应关系。因此,该直接路径连接的标识信息可以采用该存储控制器的标识信息。该第一映射关系包括存储控制器的标识信息和I/O地址。
示例性的,第一映射关系如表6所示:
表6
Figure BDA0003127444450000171
可选的,该第一映射关系包括:直接路径连接的标识信息、存储控制器的标识信息和I/O地址的映射关系。示例性的,第一映射关系如表7所示:
表7
Figure BDA0003127444450000172
可选地,该第一映射关系可以是键值对(key-value)的哈希(hash)表。该表的键(key)为I/O地址,该表的值(value)为该直接路径连接的标识信息和存储控制器的标识信息。
(b)、任一个交换机与任一个存储控制器之间可以建立多条直接路径连接。不同的直接路径连接可以承载不同客户端的I/O报文。
可选的,该第一映射关系包括:直接路径的标识信息、I/O地址、存储控制器的标识信息和客户端的标识信息。示例性的,第一映射关系如表8所示:
表8
Figure BDA0003127444450000173
该第一映射关系还可以包括直接路径连接的其他信息,包括但不限于:存储控制器的TCP端口号、存储控制器IP地址、交换机的IP地址、交换机的端口号、存储控制器的QP、交换机的QP、协议号,或者连接状态信息(例如报文序列号等)。
406、客户端向交换机发送第一I/O报文。
本实施例中,客户端向交换机发送第一I/O报文,该第一I/O报文用于通过存储控制器向存储阵列写入数据或通过存储控制器从存储阵列读取数据。
一种可能的实现方式中,步骤406执行在步骤401之前,客户端向交换机发送第一I/O报文后,执行步骤401-405。即交换机接收到来自客户端的I/O报文后,交换机与存储控制器之间建立直接路径连接。
在另一种可能的实现方式中,步骤401-405之后,执行步骤406。即交换机与存储控制器之间建立直接路径连接后,交换机接收来自客户端的I/O报文。
407、交换机根据第一I/O报文和第一映射关系,确定直接路径连接。
本实施例中,当交换机接收来自客户端的第一I/O报文后,交换机根据该第一I/O报文,从第一映射关系中确定转发该第一I/O报文的直接路径连接。
根据第一映射关系的不同实现,存在多种实现方案,下面分别进行说明。
可选的,当该第一映射关系包括:直接路径连接的标识信息和I/O地址时。交换机收到第一I/O报文后,首先交换机解析该第一I/O报文中的地址信息(包括源地址信息和目的地址信息)。交换机根据第一I/O报文中的I/O地址,确定直接路径连接的标识信息。交换机使用该直接路径连接发送该第一I/O报文。这种情况下,每个存储控制器仅对应一个直接路径连接。
可选的,当该第一映射关系包括:直接路径连接的标识信息、存储控制器的标识信息和I/O地址时。交换机收到第一I/O报文后,首先交换机解析该第一I/O报文中的地址信息(包括源地址信息和目的地址信息)。交换机根据第一I/O报文中的I/O地址,确定对应的存储控制器的地址信息。其次,交换机根据该存储控制器的地址信息确定直接路径连接的标识信息。交换机使用该直接路径连接发送该第一I/O报文。
可选的,当任一交换机与任一存储控制器之间建立一条或多条直接路径连接时,不同的直接路径连接用于承载不同客户端的I/O报文。该第一映射关系包括:直接路径的标识信息、I/O地址、存储控制器的标识信息和客户端的标识信息。
交换机收到第一I/O报文后,首先交换机解析该第一I/O报文中的地址信息(包括源地址信息和目的地址信息)。其次,根据第一I/O报文中的I/O地址,确定对应的存储控制器的地址信息。再次,交换机根据第一I/O报文确定该I/O报文的源地址信息,即该第一I/O报文对应的客户端的地址信息。再次,交换机根据该客户端的地址信息,确定客户端的标识信息,一种可能的实现方式中,该客户端的地址信息与该客户端的标识信息一致。再次,交换机根据该客户端的标识信息,确定对应的直接路径连接的标识信息。交换机使用该直接路径连接发送该第一I/O报文。
可选的,该第一映射关系包括:直接路径的标识信息、I/O地址、存储控制器的标识信息和客户端的标识信息。
一种可能的实现中,交换机收到第一I/O报文后,首先,首先交换机解析该第一I/O报文中的地址信息(包括源地址信息和目的地址信息)。其次,根据第一I/O报文中的I/O地址,确定对应的存储控制器的地址信息。再次,交换机检测该存储控制器对应的直接路径连接的数量。当该存储控制器仅对应一条直接路径连接时,交换机直接使用该直接路径连接发送该第一I/O报文。
当该存储控制器对应多条直接路径连接时,交换机根据该第一I/O报文中的源地址信息,即该第一I/O报文对应的客户端的地址信息,确定该第一I/O报文来自哪一个客户端。再次,交换机根据该客户端的地址信息,确定客户端的标识信息,一种可能的实现方式中,该客户端的地址信息与该客户端的标识信息一致。再次,交换机根据该客户端的标识信息,确定对应的直接路径连接的标识信息。交换机使用该直接路径连接发送该第一I/O报文。示例性的,当交换机解析该第一I/O报文中的地址信息为“LBA-A和NSID-A”,则交换机根据第一映射关系确定该第一I/O报文的目的地为存储控制器A,该存储控制器A的标识信息为“192.168.1.1/target100.com”。交换机根据第一映射关系,确定对应的直接路径连接的标识信息为“controller A-switch A”。交换机根据该直接路径连接的标识信息,确定该直接路径连接。
可选的,交换机可以根据各个存储控制器上报的状态信息,动态选择合适的存储控制器接收该第一I/O报文。这里的合适的存储控制器可以是可用空间较大的存储控制器,或者IOPS性能较强的存储控制器,或者存储控制器的中央处理器(central processingunit,CPU)的处理负载较低的存储控制器,此处不作限制。
可选的,交换机检测该第一I/O报文,当第一I/O报文的目的地(存储控制器)为执行双活模式的存储控制器。则交换机复制该第一I/O报文。交换机向该存储控制器的备份存储控制器发送该第一I/O报文,该存储控制器与该备份存储控制器工作在双活模式。该交换机向备份存储控制器发送的第一I/O报文增加指示该报文为复制报文的标识。
可选的,交换机检测该第一I/O报文,当第一I/O报文为数据报文时,交换机执行步骤408,通过直接路径连接向存储控制器发送该第一I/O报文。当第一I/O报文为非数据报文(例如,控制报文)时,交换机透传该第一I/O报文。
408、交换机通过直接路径连接向存储控制器发送第一I/O报文。
具体的,交换机确定直接路径连接后,将该第一I/O报文的报文头中目的地址替换为直接路径连接包括的存储控制器的地址信息。例如:直接路径连接的类型为RDMA为例。该第一I/O报文的报文头中目的地址被替换为“192.168.2.4//541”,则该第一I/O报文通过该直接路径连接“controller B-switch A-client B”发送至存储控制器B。
可选的,交换机通过直接路径连接向存储控制器发送第一I/O报文外,交换机还可以向第二存储控制器发送第一指示信息。该第一指示信息指示第二存储控制器更新本地的接收报文的序列号,第二存储控制器为所述客户端为所述第一I/O报文初始分配的存储控制器。通过第一指示信息指示第二存储控制器更新本地的接收报文的序列号,避免第二存储控制器因为没有收到第一I/O报文导致乱序问题。
可选的,交换机向第二存储控制器发送第一指示信息,包括:交换机向第二存储控制器发送信号报文,该信号报文的报文头中包括第一I/O报文的报文头信息,该信号报文的报文头还包括第一指示信息。
可选的,交换机通知各个存储控制器关闭乱序报文的检测功能。避免第二存储控制器因为没有收到第一I/O报文导致乱序问题,第二存储控制器为所述客户端为所述第一I/O报文初始分配的存储控制器。
本申请提出一种数据读写方法,交换机接收来自存储控制器的所述存储控制器的地址信息,并为所述存储控制器分配对应的交换地址信息。根据该存储控制器的地址信息和该存储控制器对应的交换地址信息,该交换机建立与该存储控制器之间的直接路径连接,该直接路径连接用于传输I/O报文,所述I/O报文用于通过所述存储控制器向存储阵列写入数据或通过所述存储控制从存储阵列读取数据。由于交换机与存储控制器之间建立的直接路径连接可以传输I/O报文,因此客户端的I/O报文无需经过前述的重路由流程。避免了I/O处理的多次寻址,缩短了I/O报文的转发路径,减少数据读写操作完成时间,提升IOPS性能,提升数据读写效率。
结合前述实施例,当存储控制器接收到第一I/O报文后,存储控制器可以通过多种方式向客户端发送回复报文。下面结合附图进行说明。
(1)、请参阅图5,为本申请实施例提出的一种数据读写方法的实施例示意图。该数据读写方法包括步骤501-504。
501、客户端向交换机发送第一I/O报文。
502、交换机通过直接路径连接,向存储控制器发送第一I/O报文。存储控制器根据该第一I/O报文向存储阵列写入数据或从存储阵列读取数据。
503、交换机通过直接路径连接接收来自存储控制器的第一回复报文。该第一回复报文为第一I/O报文的响应。该第一回复报文的目的地为该客户端。
504、交换机向客户端发送第一回复报文。
一种可能的实现方式中,交换机通过客户端与存储控制器之间建立的通信连接,向客户端发送该第一回复报文。例如:交换机通过客户端与存储控制器之间建立的TCP连接,向客户端发送第一回复报文。
在另一种可能的实现方式中,交换机与客户端之间建立直接路径连接。具体建立直接路径连接的方式与图4实施例中交换机与存储控制器之间建立直接路径连接的方式类似。交换机通过该直接路径连接向客户端发送第一回复报文。
本申请实施例中,存储控制器通过直接路径连接将第一回复报文发送至交换机,使得客户端不感知该第一回复报文的路由路径。
(2)、请参阅图6,图6为本申请实施例提出的另一种数据读写方法的实施例示意图。该数据读写方法包括步骤601-606。
601、客户端向交换机发送第一I/O报文。
602、交换机通过直接路径连接,向存储控制器发送第一I/O报文。存储控制器根据该第一I/O报文向存储阵列写入数据或从存储阵列读取数据。
603、交换机通过直接路径连接,接收来自存储控制器的第二回复报文。
该第二回复报文的目的地是第二存储控制器。该第二存储控制器为客户端为第一I/O报文初始分配的存储控制器。即,该第二存储控制器为客户端在发送第一I/O报文之前,为第一I/O报文随机分配的存储控制器。
该第二回复报文包括代理指示信息,该代理指示信息指示第二存储控制器代理存储控制器将第二回复报文发送至客户端。
另一种可能的实现方式中,存储控制器之间存在网络连接。存储控制器通过网络连接向第二存储控制器发送第二回复报文。此时,相应的交换机执行网络转发,将该第二回复报文由存储控制器转发至第二存储控制器。
604、交换机转发第二回复报文至第二存储控制器。
605、第二存储控制器接收到来自交换机的第二回复报文后,根据该第二回复报文生成第三回复报文,所述第三回复报文的目的地为该客户端,第二存储控制器向该交换机发送该修该第三回复报文。
第二存储控制器根据第二回复报文包括的代理指示信息,确定需要将该报文发送至客户端。第二存储控制器根据该第二回复报文生成第三回复报文,该第三回复报文的目的地为客户端,该第三回复报文不包括该代理指示信息。
606、交换机接收到来自第二存储控制器的第三回复报文后,向客户端发送该第三回复报文。
一种可能的实现方式中,交换机通过客户端与存储控制器之间建立的通信连接,向客户端发送该第三回复报文。例如:交换机通过客户端与存储控制器之间建立的TCP连接,向客户端发送第三回复报文。
在另一种可能的实现方式中,交换机与客户端之间建立直接路径连接。具体建立直接路径连接的方式与图4实施例中交换机与存储控制器之间建立直接路径连接的方式类似。交换机通过该直接路径连接向客户端发送第三回复报文。
本申请实施例中,存储控制器通过直接路径连接将第三回复报文发送至交换机,使得客户端不感知该第三回复报文的路由路径。
结合前述实施例,本申请实施例提出的数据读写方法还可以应用于其它系统中。下面结合附图进行说明,请参阅图7,图7为本申请实施例提出的一种数据读写方法的又一种实施例示意图。该数据读写方法包括步骤701-708。
701、交换机接收来自前端服务器的路由信息。
本实施例中,当客户端访问存储系统时,例如:用户在在线视频软件中点击某个视频,则该客户端(在线视频软件)访问存储系统。客户端与前端服务器建立连接,该连接可以是控制面连接,例如前述实施例中的TCP连接或RDMA连接等。
当客户端与前端服务器建立连接后,交换机接收来自前端服务器的路由信息。该前端服务器的路由信息包括但不限于:后端服务器的标识信息、后端服务器的I/O地址、数据的存储地址、或者后端服务器的负载信息。I/O地址包括但不限于:逻辑单元号、命名空间的标识,或逻辑区块地址。
后端服务器的标识信息可以包括该存后端服务器的IP地址和/或该后端服务器的名称。该数据的存储地址指的是后端服务器中数据的存储地址,该数据可以是业务关联的数据。例如:视频、音频、文本或者图像等。
后端服务器的负载信息包括但不限于:该后端服务器的存储空间总量、该后端服务器的剩余可用存储空间、该后端服务器的已用存储空间、该后端服务器的IOPS性能、该后端服务器的可用带宽、该后端服务器的带宽总量、或者该存储控制器的温度。
这里,后端服务器相当于前述各实施例中的存储控制器。
702、交换机接收来自前端服务器的地址信息,该地址信息为后端服务器的地址信息。
本实施例中,交换机与前端服务器之间建立通信连接后,交换机接收来自前端服务器的后端服务器的地址信息。根据前端服务器与后端服务器之间建立的通信连接的不同,该交换机接收的后端服务器的地址信息可能不一样。下面分别进行说明。
当前端服务器与后端服务器之间建立TCP连接,则该后端服务器的地址信息包括:该后端服务器的IP地址、该后端服务器的端口号以及协议号
当前端服务器与后端服务器之间建立RDMA连接,该后端服务器的地址信息包括:该后端服务器的队列对端口号QP和该后端服务器的IP地址。
需要说明的是,步骤701与步骤702的执行顺序不作限制,即可以先执行步骤701再执行步骤702,也可以先执行步骤702再执行步骤701。
本申请中,存储控制器的地址信息可以由存储控制器自己发送给交换机,也可以通过其他设备发给交换机,例如,本实施例中的前端服务器。
703、交换机存储该后端服务器对应的交换地址信息。
本实施例中,交换机接收该后端服务器的地址信息后,该交换机为该后端服务器分配对应的该交换地址信息。根据前端服务器与后端服务器之间建立的通信连接的不同,与步骤702类似,该交换地址信息存在不同,下面分别进行说明:
当前端服务器与该后端服务器之间建立TCP连接,该交换地址信息包括:该交换机的IP地址、该交换机的端口号以及协议号。
当前端服务器与该后端服务器之间建立RDMA连接,该交换地址信息包括:该交换机的队列对端口号QP和该交换机的IP地址。
704、交换机与后端服务器建立直接路径连接。
本实施例中,该交换机通过与后端服务器之间的通信连接(即控制面连接),向后端服务器发送该后端服务器对应的交换地址信息。则交换机侧与后端服务器侧分别存储了交换地址信息和后端服务器的地址信息,交换机与后端服务器根据上述地址信息建立直接路径连接。交换机可以为每个直接路径连接分配一个直接路径连接的标识信息。
705、交换机生成第二映射关系。
本实施例中,交换机生成第二映射关系,该第二映射关系包括:直接路径连接的标识信息、后端服务器的标识信息和I/O地址的映射关系。该第二映射关系为前述第一映射关系的一种实现方式。
706、客户端向交换机发送第二报文。
本实施例中,客户端向交换机发送第二报文,该第二报文用于向后端服务器读取或写入数据。例如:客户端需要向存储系统上传视频时,客户端向交换机发送第二报文,该第二报文携带该视频数据。客户端需要观看视频时,客户端向交换机发送第二报文,该第二报文携带需要读取的视频数据的地址或者标识。该第二报文为前述第一报文的一种实现方式。
一种可能的实现方式中,步骤706执行在步骤701之前,客户端向交换机发送第二报文后,执行步骤701-705。即交换机接收到来自客户端第二报文后,交换机与后端服务器之间建立直接路径连接。
在另一种可能的实现方式中,步骤701-705之后,执行步骤706。即交换机与后端服务器之间建立直接路径连接后,交换机接收来自客户端的第二报文。
可选的,在交换机与后端服务器建立直接路径连接前,交换机可以将客户端发送的建链、授权验证等报文透传至前端服务器。由前端服务器对上述建链或者授权验证等报文进行处理。
707、交换机根据第二报文和第二映射关系,确定直接路径连接。
本实施例中,当交换机接收来自客户端的第二报文后,交换机根据该第二报文,从第二映射关系中确定转发该第二报文使用的直接路径连接。
708、交换机通过直接路径连接向存后端服务器发送第二报文。
本申请提出一种数据读写方法,由于交换机与后端服务器之间建立的直接路径连接可以传输报文,因此客户端的报文无需经过前端服务器的重路由。避免了受限于前端服务器的计算能力与网络带宽造成的通信拥堵,提升了报文的处理效率,提升了后端服务器的利用效率,实现各个后端服务器的负载均衡。
为了实现上述实施例,本申请还提供了一种网络设备。可以参阅图8,图8为本申请实施例提供的一种网络设备800的结构示意图。
图8所示的网络设备800尽管示出了某些特定特征,但是本领域的技术人员将从本申请实施例中意识到,为了简洁起见,图8未示出各种其他特征,以免混淆本申请实施例所公开的实施方式的更多相关方面。为此,作为示例,在一些实现方式中,网络设备800包括一个或多个处理模块(如,CPU)801、网络接口802、编程接口803、存储器804和一个或多个通信总线805,用于将各种组件互连。在另一些实现方式中,网络设备800也可以在上述示例基础上省略或增加部分功能部件或单元。
在一些实现方式中,网络接口802用于在网络系统中和一个或多个其他的网络设备/服务器连接。在一些实现方式中,通信总线805包括互连和控制系统组件之间的通信的电路。存储器804可以包括非易失性存储器,例如,只读存储器(read-only memory,ROM)、可编程只读存储器(programmable ROM,PROM)、可擦除可编程只读存储器(erasable PROM,EPROM)、电可擦除可编程只读存储器(electrically EPROM,EEPROM)或闪存。存储器804也可以包括易失性存储器,易失性存储器可以是随机存取存储器(random access memory,RAM),其用作外部高速缓存。
在一些实现中,存储器804或存储器804的非暂时性计算机可读存储介质存储以下程序、模块和数据结构,或其子集,例如包括收发模块(图中未示出)、收发模块8041和处理模块8042。
在一个可能的实施例中,该网络设备800可以具有上述图2-图7对应的方法实施例中的交换机中的任意功能。
应理解,网络设备800对应于上述方法实施例中的交换机,网络设备800中的各模块和上述其他操作和/或功能分别为了实现上述方法实施例中的交换机所实施的各种步骤和方法,具体细节可参见上述图2-图7对应的方法实施例,为了简洁,在此不再赘述。
应理解,本申请可以是由网络设备800上的网络接口802来完成数据的收发操作,也可以是由处理器调用存储器中的程序代码,并在需要时配合网络接口802来实现收发模块的功能。
在各种实现中,网络设备800用于执行本申请实施例提供的数据读写方法,例如是执行上述图2-图7所示的实施例所对应的数据读写方法。
本申请图8所述的网络设备具体结构可以为图9所示。
图9为本申请实施例提供的一种网络设备900的结构示意图,网络设备900包括:主控板910和接口板930。
主控板910也称为主处理模块(main processing unit,MPU)或路由处理器(routeprocessor),主控板910用于对网络设备900中各个组件的控制和管理,包括路由计算、设备管理、设备维护、协议处理功能。主控板910包括:中央处理器911和存储器912。
接口板930也称为线路处理模块(line processing unit,LPU)、线卡(line card)或业务板。接口板930用于提供各种业务接口并实现数据包的转发。业务接口包括但不限于以太网接口、POS(Packet over SONET/SDH)接口等。接口板930包括:中央处理器931、网络处理器932、转发表项存储器934和物理接口卡(physical interface card,PIC)933。
接口板930上的中央处理器931用于对接口板930进行控制管理并与主控板910上的中央处理器911通信。
网络处理器932用于实现报文的转发处理。网络处理器932的形态可以是转发芯片。
物理接口卡933用于实现物理层的对接功能,原始的流量由此进入接口板930,以及处理后的报文从该物理接口卡933发出。物理接口卡933包括至少一个物理接口,物理接口也称物理口,物理接口可以为灵活以太(Flexible Ethernet,FlexE)物理接口。物理接口卡933也称为子卡,可安装在接口板930上,负责将光电信号转换为报文并对报文进行合法性检查后转发给网络处理器932处理。在一些实施例中,接口板930的中央处理器931也可执行网络处理器932的功能,比如基于通用CPU实现软件转发,从而接口板930中不需要网络处理器932。
可选的,网络设备900包括多个接口板,例如网络设备900还包括接口板940,接口板940包括:中央处理器941、网络处理器942、转发表项存储器944和物理接口卡943。
可选的,网络设备900还包括交换网板920。交换网板920也可以称为交换网板单元(switch fabric unit,SFU)。在网络设备有多个接口板930的情况下,交换网板920用于完成各接口板之间的数据交换。例如,接口板930和接口板940之间可以通过交换网板920通信。
主控板910和接口板耦合。例如,主控板910、接口板930和接口板940,以及交换网板920之间通过系统总线和/或系统背板相连实现互通。在一种可能的实现方式中,主控板910和接口板930之间建立进程间通信协议(inter-process communication,IPC)通道,主控板910和接口板930之间通过IPC通道进行通信。
在逻辑上,网络设备900包括控制面和转发面,控制面包括主控板910和中央处理器931,转发面包括执行转发的各个组件,比如转发表项存储器934、物理接口卡933和网络处理器932。控制面执行发布路由、生成转发表、处理信令和协议报文、配置与维护设备的状态等功能,控制面将生成的转发表下发给转发面,在转发面,网络处理器932基于控制面下发的转发表对物理接口卡933收到的报文查表转发。控制面下发的转发表可以保存在转发表项存储器934中。在有些实施例中,控制面和转发面可以完全分离,不在同一设备上。
应理解,网络设备800中的收发模块可以相当于网络设备900中的物理接口卡933或物理接口卡943;网络设备800中的收发模块8041和处理模块8042可以相当于网络设备900中的中央处理器911或中央处理器931,也可以相当于存储器912中存储的程序代码或指令。
应理解,本申请实施例中接口板940上的操作与接口板930的操作一致,为了简洁,不再赘述。应理解,本实施例的网络设备900可对应于上述各个方法实施例中的交换机,该网络设备900中的主控板910、接口板930和/或接口板940可以实现上述各个方法实施例中的交换机所具有的功能和/或所实施的各种步骤,为了简洁,在此不再赘述。
值得说明的是,主控板可能有一块或多块,有多块的时候可以包括主用主控板和备用主控板。接口板可能有一块或多块,网络设备的数据处理能力越强,提供的接口板越多。接口板上的物理接口卡也可以有一块或多块。交换网板可能没有,也可能有一块或多块,有多块的时候可以共同实现负荷分担冗余备份。在集中式转发架构下,网络设备可以不需要交换网板,接口板承担整个系统的业务数据的处理功能。在分布式转发架构下,网络设备可以有至少一块交换网板,通过交换网板实现多块接口板之间的数据交换,提供大容量的数据交换和处理能力。可选的,网络设备的形态也可以是只有一块板卡,即没有交换网板,接口板和主控板的功能集成在该一块板卡上,此时接口板上的中央处理器和主控板上的中央处理器在该一块板卡上可以合并为一个中央处理器,执行两者叠加后的功能。具体采用哪种架构,取决于具体的组网部署场景,此处不做唯一限定。
在一些可能的实施例中,上述交换机可以实现为虚拟化设备。虚拟化设备可以是运行有用于发送报文功能的程序的虚拟机(virtual machine,VM),虚拟路由器或虚拟交换机。虚拟化设备部署在硬件设备上(例如,物理服务器)。例如,可以基于通用的物理服务器结合网络功能虚拟化(network functions virtualization,NFV)技术来实现交换机。
应理解,上述各种产品形态的网络设备,分别具有上述方法实施例中交换机的任意功能,此处不再赘述。
图10为本申请实施例提供的存储设备1000的结构示意图。图10所示的存储设备1000为存储阵列。如图10所示,存储设备1000可以包括存储控制器1100和磁盘阵列1200,其中,这里的磁盘阵列1200用于提供存储空间,可以包括廉价冗余磁盘阵列(redundantarray of independent disk,简称RAID)或包括多个磁盘的磁盘柜。磁盘阵列1200可以有多个,磁盘阵列1200包括多个磁盘1202。磁盘1202用于存储数据。磁盘阵列1200通过SCSI协议等通信协议与控制器1100通信。协议在此不作限定。
该存储设备1000中的存储控制器1100,用于执行前述方法实施例中的相关步骤。
可以理解的是,磁盘阵列1200仅仅是存储设备中的存储器的一个示例。在本申请实施例中,数据也可以通过磁带库等存储器存储。应注意,磁盘1202也仅仅是构建磁盘阵列1200的存储器的一个示例。在实际应用中,例如,为了在包含多个磁盘的机柜之间构建磁盘阵列,还可以有一种实现方式。因此,在本申请实施例中,磁盘阵列1200还可以包括存储器,包括非易失性存储介质,例如固态硬盘(solid state disk,简称SSD)、包含多个磁盘的机柜、或服务器,在此不作限定。
存储控制器1100是存储设备1000的“大脑”,主要包括处理器1102、缓存1103、存储器1101、通信总线(简称总线)1105和通信接口1104。处理器1102、缓存1103、存储器1101和通信接口1104通过通信总线1105相互通信。应注意,本申请实施例中,存储设备1000中可以有一个或多个控制器1100。可以理解的是,当存储设备1000包括至少两个控制器1100时,可以提高存储设备1000的稳定性。
通信接口1104用于与交换机、客户端、其它网络设备或其它存储设备进行通信。
存储器1101用于存储程序1106。存储器1101可以包括高速随机存取存储器(random access memory,简称RAM),或者还可以包括非易失性存储器,例如至少一个磁盘存储器。可以理解的是,存储器1101可以是各种可以存储程序代码的非瞬时性机器可读介质,例如RAM、磁盘、硬盘驱动器、光盘、SSD或非易失性存储器。
程序1106可以包括程序代码,程序代码包括计算机操作指令。
缓存1103是控制器和硬盘驱动器之间的存储器,其容量小于硬盘驱动器,但速度快于硬盘驱动器。缓存1103用于临时存储数据,例如从交换机或其它存储设备接收的I/O事务,并临时存储从磁盘1202读取的数据,以提高阵列的性能和可靠性。缓存1103可以是各种可以存储数据的非瞬时性机器可读介质,例如RAM、ROM、闪存或SSD,此处不作限定。
处理器1102可以是中央处理器(central processing unit,简称CPU)或专用集成电路(application-specific integrated circuit,简称ASIC),或者被配置为实现本申请实施例的一个或多个集成电路。处理器1102中安装有操作系统和其它软件程序,不同的软件程序可以被视为不同的处理模块,具有不同的功能,例如处理磁盘1202的输入/输出(input/output,简称I/O)请求、对磁盘1202中的数据进行其它处理,或者修改存储设备1000中保存的元数据。存储控制器1100可以实现I/O操作、快照、镜像、复制等各种数据管理功能。在本申请实施例中,处理器1102用于执行程序1106,具体可以执行前述方法实施例中的相关步骤。
进一步地,本申请实施例还提供了一种计算机程序产品,当该计算机程序产品在网络设备上运行时,使得网络设备执行上述图2-图7对应的方法实施例中交换机执行的方法。
本申请实施例还提供了一种芯片系统,包括处理器和接口电路,接口电路,用于接收指令并传输至处理器。其中,所述处理器用于实现上述任一方法实施例中的方法。
可选的,该芯片系统还包括存储器,该芯片系统中的处理器可以为一个或多个。该处理器可以通过硬件实现也可以通过软件实现。当通过硬件实现时,该处理器可以是逻辑电路、集成电路等。当通过软件实现时,该处理器可以是一个通用处理器,通过读取存储器中存储的软件代码来实现上述任一方法实施例中的方法。
可选的,该芯片系统中的存储器也可以为一个或多个。该存储器可以与处理器集成在一起,也可以和处理器分离设置,本申请并不限定。示例性的,存储器可以是非瞬时性处理器,例如只读存储器ROM,其可以与处理器集成在同一块芯片上,也可以分别设置在不同的芯片上,本申请对存储器的类型,以及存储器与处理器的设置方式不作具体限定。
以上对本申请实施例进行了详细介绍,本申请实施例方法中的步骤可以根据实际需要进行顺序调度、合并或删减;本申请实施例装置中的模块可以根据实际需要进行划分、合并或删减。
应理解,说明书通篇中提到的“一个实施例”或“一实施例”意味着与实施例有关的特定特征、结构或特性包括在本申请的至少一个实施例中。因此,在整个说明书各处出现的“在一个实施例中”或“在一实施例中”未必一定指相同的实施例。此外,这些特定的特征、结构或特性可以任意适合的方式结合在一个或多个实施例中。应理解,在本申请的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
应理解,在本申请实施例中,“与A相应的B”表示B与A相关联,根据A可以确定B。但还应理解,根据A确定B并不意味着仅仅根据A确定B,还可以根据A和/或其它信息确定B。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

Claims (35)

1.一种数据读写方法,其特征在于,包括:
交换机接收存储控制器的地址信息,所述存储控制器的地址信息包括以下一项或多项:所述存储控制器的队列对端口号、所述存储控制器的互联网协议地址、所述存储控制器的传输控制协议TCP端口号、或者协议号;
所述交换机为所述存储控制器分配对应的交换地址信息,所述交换地址信息包括以下一项或多项:所述交换机的队列对端口号、所述交换机的互联网协议地址或者所述交换机的端口号;
所述交换机与所述存储控制器建立直接路径连接,所述直接路径连接用于传输输入输出I/O报文,所述I/O报文用于通过所述存储控制器向存储阵列写入数据或通过所述存储控制从存储阵列读取数据。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
所述交换机接收来自所述存储控制器的路由信息,所述路由信息包括以下信息中的一项或多项:所述存储控制器的标识信息、所述存储控制器的输入输出I/O地址、目的地为所述存储控制器的I/O报文是否需要复制,或者所述存储控制器的负载信息,
所述I/O地址包括逻辑单元号、命名空间的标识和/或逻辑区块地址。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
所述交换机生成第一映射关系,所述第一映射关系包括所述直接路径连接的标识信息和所述I/O地址的映射关系。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
所述交换机接收来自客户端的第一I/O报文;
所述交换机根据所述第一I/O报文和所述第一映射关系,确定所述直连路径连接;
所述交换机通过所述直接路径连接,向所述存储控制器发送所述第一I/O报文。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
所述交换机检测所述第一I/O报文的类型;
当所述第一I/O报文为数据报文时,所述交换机通过所述直接路径连接向所述存储控制器发送所述第一I/O报文;
当所述第一I/O报文为非数据报文时,所述交换机透传所述第一I/O报文。
6.根据权利要求4-5中任一项所述的方法,其特征在于,所述方法还包括:
所述交换机通过所述直接路径连接,接收来自所述存储控制器的第一回复报文,所述第一回复报文为所述第一I/O报文的响应;
所述交换机向所述客户端发送所述第一回复报文。
7.根据权利要求4-5在任一项所述的方法,其特征在于,所述方法还包括:
所述交换机接收来自所述存储控制器的第二回复报文,所述第二回复报文为所述第一I/O报文的响应,所述第二回复报文的目的地为第二存储控制器,所述第二存储控制器为所述客户端为所述第一I/O报文初始分配的存储控制器;
所述交换机向所述第二存储控制器转发所述第二回复报文;
所述交换机接收来自所述第二存储控制器的第三回复报文,所述第三回复报文是根据所述第二回复报文生成的;
所述交换机转发来自所述第二存储控制器的所述第三回复报文。
8.根据权利要求7所述的方法,其特征在于,所述第二回复报文包括代理指示信息,所述代理指示信息指示所述第二存储控制器代理所述存储控制器将所述第二回复报文发送至所述客户端,所述第三回复报文不包括所述代理指示信息。
9.根据权利要求4-8中任一项所述的方法,其特征在于,所述方法还包括:
当所述第一I/O报文需要复制时,所述交换机复制所述第一I/O报文;
所述交换机向所述存储控制器的备份存储控制器发送复制的所述第一I/O报文,所述备份存储控制器和所述存储控制器工作在双活模式。
10.根据权利要求1-9中任一项所述的方法,其特征在于,
所述直接路径连接为传输控制协议TCP连接,或者,远程直接数据存储RDMA连接。
11.一种数据读写方法,其特征在于,包括:
存储控制器向交换机发送所述存储控制器的地址信息,所述存储控制器的地址信息包括以下一项或多项:所述存储控制器的队列对端口号、所述存储控制器的互联网协议地址、所述存储控制器的传输控制协议TCP端口号、或者协议号;
所述存储控制器与所述交换机建立直接路径连接,所述直接路径连接用于传输输入输出I/O报文,所述I/O报文用于通过所述存储控制器向存储阵列写入数据或通过所述存储控制从存储阵列读取数据。
12.根据权利要求11所述的方法,其特征在于,所述方法还包括:
所述存储控制器向所述交换机发送所述存储控制器的路由信息,所述路由信息包括以下信息中的一项或多项:所述存储控制器的标识信息、所述存储控制器的输入输出I/O地址、目的地为所述存储控制器的I/O报文是否需要复制,或者所述存储控制器的负载信息,
所述I/O地址包括逻辑单元号、命名空间的标识和/或逻辑区块地址。
13.根据权利要求11-12中任一项所述的方法,其特征在于,所述方法还包括:
所述存储控制器通过所述直接路径连接接收来自所述交换机的第一I/O报文。
14.根据权利要求13所述的方法,其特征在于,所述方法还包括:
所述存储控制器根据所述第一I/O报文,生成第一回复报文,所述第一回复报文为所述第一I/O报文的响应;
所述存储控制器通过所述直接路径连接向所述交换机发送所述第一回复报文。
15.根据权利要求13所述的方法,其特征在于,所述方法还包括:
所述存储控制器根据所述第一I/O报文,生成第二回复报文,所述第二回复报文为所述第一I/O报文的响应;
所述存储控制器向所述交换机发送所述第二回复报文,所述第二回复报文的目的地为第二存储控制器,所述第二存储控制器为所述客户端为所述第一I/O报文初始分配的存储控制器。
16.根据权利要求15所述的方法,其特征在于,所述第二回复报文包括代理指示信息,所述代理指示信息指示所述第二存储控制器代理所述存储控制器将所述第二回复报文发送至所述客户端。
17.根据权利要求11-16中任一项所述的方法,其特征在于,所述直接路径连接为传输控制协议TCP连接,或者,远程直接数据存储RDMA连接。
18.一种交换机,其特征在于,包括:收发模块和处理模块;
所述收发模块,用于接收存储控制器的地址信息,所述存储控制器的地址信息包括以下一项或多项:所述存储控制器的队列对端口号、所述存储控制器的互联网协议地址、所述存储控制器的传输控制协议TCP端口号、或者协议号;
所述处理模块,用于为所述存储控制器分配对应的交换地址信息,所述交换地址信息包括以下一项或多项:所述交换机的队列对端口号、所述交换机的互联网协议地址或者所述交换机的端口号;
所述处理模块,还用于与所述存储控制器建立直接路径连接,所述直接路径连接用于传输输入输出I/O报文,所述I/O报文用于通过所述存储控制器向存储阵列写入数据或通过所述存储控制从存储阵列读取数据。
19.根据权利要求18所述的交换机,其特征在于,
所述收发模块,还用于接收来自所述存储控制器的路由信息,所述路由信息包括以下信息中的一项或多项:所述存储控制器的标识信息、所述存储控制器的输入输出I/O地址、目的地为所述存储控制器的I/O报文是否需要复制,或者所述存储控制器的负载信息,所述I/O地址包括逻辑单元号、命名空间的标识和/或逻辑区块地址。
20.根据权利要求19所述的交换机,其特征在于,
所述处理模块,还用于生成第一映射关系,所述第一映射关系包括所述直接路径连接的标识信息和所述I/O地址的映射关系。
21.根据权利要求20所述的交换机,其特征在于,
所述收发模块,还用于接收来自客户端的第一I/O报文;
所述处理模块,还用于根据所述第一I/O报文和所述第一映射关系,确定所述直连路径连接;
所述收发模块,还用于通过所述直接路径连接,向所述存储控制器发送所述第一I/O报文。
22.根据权利要求21所述的交换机,其特征在于,
所述处理模块,还用于检测所述第一I/O报文的类型;
所述收发模块,还用于当所述第一I/O报文为数据报文时,通过所述直接路径连接向所述存储控制器发送所述第一I/O报文;
所述收发模块,还用于当所述第一I/O报文为非数据报文时,透传所述第一I/O报文。
23.根据权利要求21-22中任一项所述的交换机,其特征在于,
所述收发模块,还用于通过所述直接路径连接,接收来自所述存储控制器的第一回复报文,所述第一回复报文为所述第一I/O报文的响应;
所述收发模块,还用于向所述客户端发送所述第一回复报文。
24.根据权利要求22-23在任一项所述的交换机,其特征在于,
所述收发模块,还用于接收来自所述存储控制器的第二回复报文,所述第二回复报文为所述第一I/O报文的响应,所述第二回复报文的目的地为第二存储控制器,所述第二存储控制器为所述客户端为所述第一I/O报文初始分配的存储控制器;
所述收发模块,还用于向所述第二存储控制器转发所述第二回复报文;
所述收发模块,还用于接收来自所述第二存储控制器的第三回复报文,所述第三回复报文是根据所述第二回复报文生成的;
所述收发模块,还用于转发来自所述第二存储控制器的所述第三回复报文。
25.根据权利要求24所述的交换机,其特征在于,所述第二回复报文包括代理指示信息,所述代理指示信息指示所述第二存储控制器代理所述存储控制器将所述第二回复报文发送至所述客户端,所述第三回复报文不包括所述代理指示信息。
26.根据权利要求21-25中任一项所述的交换机,其特征在于,
所述处理模块,还用于当所述第一I/O报文需要复制时,复制所述第一I/O报文;
所述收发模块,还用于向所述存储控制器的备份存储控制器发送复制的所述第一I/O报文,所述备份存储控制器和所述存储控制器工作在双活模式。
27.根据权利要求21-26中任一项所述的交换机,其特征在于,所述直接路径连接为传输控制协议TCP连接,或者,远程直接数据存储RDMA连接。
28.一种存储设备,其特征在于,包括:收发模块和处理模块;
所述收发模块,用于向交换机发送存储控制器的地址信息,所述存储控制器的地址信息包括以下一项或多项:所述存储控制器的队列对端口号、所述存储控制器的互联网协议地址、所述存储控制器的传输控制协议TCP端口号、或者协议号;
所述处理模块,用于与所述交换机建立直接路径连接,所述直接路径连接用于传输输入输出I/O报文,所述I/O报文用于通过所述存储控制器向存储阵列写入数据或通过所述存储控制从存储阵列读取数据。
29.根据权利要求28所述的存储设备,其特征在于,
所述收发模块,还用于向所述交换机发送所述存储控制器的路由信息,所述路由信息包括以下信息中的一项或多项:所述存储控制器的标识信息、所述存储控制器的输入输出I/O地址、目的地为所述存储控制器的I/O报文是否需要复制,或者所述存储控制器的负载信息,所述I/O地址包括逻辑单元号、命名空间的标识和/或逻辑区块地址。
30.根据权利要求28-29中任一项所述的存储设备,其特征在于,
所述收发模块,还用于通过所述直接路径连接接收来自所述交换机的第一I/O报文。
31.根据权利要求30所述的存储设备,其特征在于,
所述处理模块,还用于根据所述第一I/O报文,生成第一回复报文,所述第一回复报文为所述第一I/O报文的响应;
所述收发模块,还用于通过所述直接路径连接向所述交换机发送所述第一回复报文。
32.根据权利要求30所述的存储设备,其特征在于,
所述处理模块,还用于根据所述第一I/O报文,生成第二回复报文,所述第二回复报文为所述第一I/O报文的响应;
所述收发模块,还用于向所述交换机发送所述第二回复报文,所述第二回复报文的目的地为第二存储控制器,所述第二存储控制器为所述客户端为所述第一I/O报文初始分配的存储控制器。
33.根据权利要求32所述的存储设备,其特征在于,所述第二回复报文包括代理指示信息,所述代理指示信息指示所述第二存储控制器代理所述存储控制器将所述第二回复报文发送至所述客户端。
34.根据权利要求28-33中任一项所述的存储设备,其特征在于,所述直接路径连接为传输控制协议TCP连接,或者,远程直接数据存储RDMA连接。
35.一种存储系统,其特征在于,包括多个如权利要求18-27中任意一项所述的交换机,和多个如权利要求28-34中任意一项所述的存储设备。
CN202110694337.7A 2021-06-22 2021-06-22 一种数据读写方法以及相关装置 Pending CN115509433A (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202110694337.7A CN115509433A (zh) 2021-06-22 2021-06-22 一种数据读写方法以及相关装置
PCT/CN2022/098309 WO2022267909A1 (zh) 2021-06-22 2022-06-13 一种数据读写方法以及相关装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110694337.7A CN115509433A (zh) 2021-06-22 2021-06-22 一种数据读写方法以及相关装置

Publications (1)

Publication Number Publication Date
CN115509433A true CN115509433A (zh) 2022-12-23

Family

ID=84499582

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110694337.7A Pending CN115509433A (zh) 2021-06-22 2021-06-22 一种数据读写方法以及相关装置

Country Status (2)

Country Link
CN (1) CN115509433A (zh)
WO (1) WO2022267909A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117742606A (zh) * 2023-12-20 2024-03-22 成都北中网芯科技有限公司 一种dpu芯片及其报文存储模块和报文复制方法

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100493026C (zh) * 2006-06-08 2009-05-27 杭州华三通信技术有限公司 一种网际存储区域网络ip san的访问方法及交换机
US8312533B2 (en) * 2007-10-29 2012-11-13 The Boeing Company Virtual local area network switching device and associated computer system and method
US8713162B2 (en) * 2009-12-07 2014-04-29 John Lewis Hufferd Direct mode adapter based shortcut for FCoE data transfer
WO2015081515A1 (zh) * 2013-12-04 2015-06-11 华为技术有限公司 数据处理方法、装置、存储控制器和机柜
CN105934793A (zh) * 2014-12-27 2016-09-07 华为技术有限公司 一种存储系统数据分发的方法、分发装置与存储系统

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117742606A (zh) * 2023-12-20 2024-03-22 成都北中网芯科技有限公司 一种dpu芯片及其报文存储模块和报文复制方法

Also Published As

Publication number Publication date
WO2022267909A1 (zh) 2022-12-29

Similar Documents

Publication Publication Date Title
US11070479B2 (en) Dynamic resource allocation based upon network flow control
US11256582B2 (en) System, and control method and program for input/output requests for storage systems
KR102457091B1 (ko) Nvme-of 이더넷 ssd에서 데이터 복제를 제공하기 위한 시스템 및 방법
US10423332B2 (en) Fibre channel storage array having standby controller with ALUA standby mode for forwarding SCSI commands
US10496314B2 (en) Asynchronous semi-inline deduplication
US10970190B2 (en) Hybrid log viewer with thin memory usage
US8732381B2 (en) SAS expander for communication between drivers
US11200082B2 (en) Data storage system employing dummy namespaces for discovery of NVMe namespace groups as protocol endpoints
US10423584B2 (en) Synchronous replication for file access protocol storage
US10872036B1 (en) Methods for facilitating efficient storage operations using host-managed solid-state disks and devices thereof
US11405455B2 (en) Elastic scaling in a storage network environment
WO2022267909A1 (zh) 一种数据读写方法以及相关装置
EP3167372B1 (en) Methods for facilitating high availability storage services and corresponding devices
US11238010B2 (en) Sand timer algorithm for tracking in-flight data storage requests for data replication
US10768834B2 (en) Methods for managing group objects with different service level objectives for an application and devices thereof
CN113377280A (zh) 一种存储系统和请求处理方法以及交换机
KR20200008483A (ko) PCIe EP 및 네트워크 인터페이스를 통해 동시에 듀얼 라인 SSD 장치에 액세스하는 방법

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