CN113377280A - 一种存储系统和请求处理方法以及交换机 - Google Patents

一种存储系统和请求处理方法以及交换机 Download PDF

Info

Publication number
CN113377280A
CN113377280A CN202010568783.9A CN202010568783A CN113377280A CN 113377280 A CN113377280 A CN 113377280A CN 202010568783 A CN202010568783 A CN 202010568783A CN 113377280 A CN113377280 A CN 113377280A
Authority
CN
China
Prior art keywords
storage
switch
request
controller
storage node
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
CN202010568783.9A
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 EP20924434.2A priority Critical patent/EP4102788A4/en
Priority to PCT/CN2020/114222 priority patent/WO2021179556A1/zh
Publication of CN113377280A publication Critical patent/CN113377280A/zh
Priority to US17/940,222 priority patent/US20230004304A1/en
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/061Improving I/O performance
    • G06F3/0611Improving I/O performance in relation to response time
    • 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
    • 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
    • G06F3/0613Improving I/O performance in relation to throughput
    • 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/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0635Configuration or reconfiguration of storage systems by changing the path, e.g. traffic rerouting, path reconfiguration
    • 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/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0658Controller construction arrangements
    • 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/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • 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]
    • 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/0671In-line storage system
    • G06F3/0673Single storage device
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/64Routing or path finding of packets in data switching networks using an overlay routing layer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/645Splitting route computation layer and forwarding layer, e.g. routing according to path computational element [PCE] or based on OpenFlow functionality
    • H04L45/655Interaction between route computation entities and forwarding entities, e.g. for route determination or for flow table update
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/76Routing in software-defined topologies, e.g. routing between virtual machines

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)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明实施例公开了一种存储系统和请求处理方法以及交换机,用于降低存储系统的时延,提高信息处理效率。其中,存储系统包括:交换机和多个存储节点,所述交换机和客户端、所述多个存储节点之间存在通信连接,其中,所述交换机,用于接收所述客户端发送的第一请求,所述第一请求包括存储分区的标识;根据所述存储分区的标识查询转发表中的表项,以确定所述存储分区的标识对应的目标存储节点;向所述目标存储节点发送所述第一请求;其中,所述表项包含存储分区的标识与目标存储节点的映射关系,所述目标存储节点为所述多个存储节点中的存储节点;所述目标存储节点,用于接收所述交换机发送的所述第一请求。

Description

一种存储系统和请求处理方法以及交换机
本申请要求于2020年3月9日提交中国专利局、申请号为202010159006.9、发明名称为“一种存储系统中的访问方法及存储系统”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。
技术领域
本申请涉及计算机技术领域,尤其涉及一种存储系统和请求处理方法以及交换机。
背景技术
互联网及数字化推动了数据大爆炸的产生,由此带来的信息处理需求非常大,例如数据存储需求远远超过目前的企业阵列存储系统所能提供的存储容量。用于信息处理的分布式系统可以是存储系统,存储系统开始成为互联网及大数据环境下的主要存储形态,例如可以是Hadoop分布式文件系统((Hadoop distributed file system,HDFS)。
分布式系统可以将信息处理及负载分配给各个服务器节点,提升了信息处理的容量和性能。但是大量消息及数据包在节点间连接的网络上分发及传递,这也增加了分布式系统内的节点间消息和信息转发量,也增加了分布式系统的时延。
例如,存储系统可以将存储的容量及负载分配给各个存储服务器节点,提升了存储的能量和性能。但是大量消息及数据包在节点间连接的网络上分发及传递,这也增加了分布式存现系统内的节点间消息和数据转发量,也增加了存储系统的时延。
发明内容
本发明实施例提供了一种存储系统和请求处理方法以及交换机,用于降低存储系统的时延,提高信息处理效率。
为解决上述技术问题,本发明实施例提供以下技术方案:
第一方面,本发明实施例提供一种存储系统,所述存储系统包括:交换机和多个存储节点,所述交换机和客户端、所述多个存储节点之间存在通信连接,其中,所述交换机,用于接收所述客户端发送的第一请求,所述第一请求包括存储分区的标识;根据所述存储分区的标识查询转发表中的表项,以确定所述存储分区的标识对应的目标存储节点;向所述目标存储节点发送所述第一请求;其中,所述表项包含存储分区的标识与目标存储节点的映射关系,所述目标存储节点为所述多个存储节点中的存储节点;所述目标存储节点,用于接收所述交换机发送的所述第一请求。在本发明实施例中,交换机接收客户端发送的第一请求,并根据第一请求查询转发表中的表项,从而确定存储分区的标识对应的目标存储节点,即交换机可以使用转发表中的表项确定处理第一请求的目标存储节点,从而减少了客户端和多个存储节点之间的消息以及数据转发量的开销,通过表项查询的方式降低了存储系统系统的时延,提高信息处理效率,提升存储系统的性能。
在一种可能的实现方式中,所述目标存储节点,还用于根据所述第一请求生成请求处理结果;向所述交换机发送所述请求处理结果;所述交换机,还用于接收所述请求处理结果,并向所述客户端发送所述请求处理结果。本发明实施例中软件定义交换机中内置转发表,软件定义交换机在路由时可以实现基于端口的交换,因此可以减少客户端的访问时延,例如大大减少了客户端与存储服务器集群进行输入输出访问时的时延。
在一种可能的实现方式中,所述存储系统还包括:控制器,所述控制器和所述客户端、所述交换机、所述多个存储节点之间分别存在通信连接,其中,所述控制器,用于接收所述客户端发送的第二请求;根据所述第二请求从所述多个存储节点中确定所述目标存储节点,向所述目标存储节点发送所述第二请求;所述目标存储节点,用于接收所述控制器发送的所述第二请求;根据所述第二请求生成所述存储分区的标识;向所述控制器发送所述存储分区的标识;所述控制器,用于接收所述目标存储节点发送的所述存储分区的标识,向所述交换机发送包含所述存储分区的标识与所述目标存储节点之间的映射关系的所述表项;所述交换机,用于接收所述控制器发送的所述表项,并根据所述表项更新所述转发表。本发明实施例中通过控制器可以向交换机发送表项,从而交换机可以使用该转发表与服务器集群中的数据服务器直接进行请求交互,减少了客户端的访问时延和请求的处理时延。
在一种可能的实现方式中,所述控制器,用于接收所述目标存储节点发送的所述存储分区的标识之后,根据所述存储分区的标识与所述目标存储节点之间的映射关系更新所述控制器中的分区映射表。例如在存储系统中,控制器具有名称服务器的功能,因此该分区映射表可以包括虚拟名称服务器与存储节点之间的映射关系。控制器通过存储分区的标识与目标存储节点之间的映射关系更新控制器中的分区映射表,从而可以记录从存储分区到目标存储节点之间的映射关系。
在一种可能的实现方式中,所述控制器,用于接收所述目标存储节点发送的所述存储分区的标识之后,根据所述存储分区的标识与所述目标存储节点之间的映射关系更新所述控制器中的存储节点状态表。其中,控制器可以在存储节点状态表中记录存储节点的实时状态,从而便于控制器准确的获取多个存储节点中的每个存储节点的状态。
第二方面,本发明实施例还提供一种请求处理方法,所述请求处理方法应用于存储系统,所述存储系统包括:交换机和多个存储节点,所述交换机和客户端、所述多个存储节点之间存在通信连接,其中,所述方法包括:所述交换机接收所述客户端发送的第一请求,所述第一请求包括存储分区的标识;所述交换机根据所述存储分区的标识查询转发表中的表项,以确定所述存储分区的标识对应的目标存储节点;其中,所述表项包含存储分区的标识与目标存储节点的映射关系,所述目标存储节点为所述多个存储节点中的存储节点;所述交换机向所述目标存储节点发送所述第一请求;所述目标存储节点接收所述交换机发送的所述第一请求。在本发明实施例中,交换机接收客户端发送的第一请求,并根据第一请求查询转发表中的表项,从而确定存储分区的标识对应的目标存储节点,即交换机可以使用转发表中的表项确定处理第一请求的目标存储节点,从而减少了客户端和多个存储节点之间的消息以及数据转发量的开销,通过表项查询的方式降低了存储系统系统的时延,提高信息处理效率,提升存储系统的性能。
在一种可能的实现方式中,所述方法还包括:所述目标存储节点根据所述第一请求生成请求处理结果;所述目标存储节点向所述交换机发送所述请求处理结果;所述交换机接收所述请求处理结果,并向所述客户端发送所述请求处理结果。本发明实施例中软件定义交换机中内置转发表,软件定义交换机在路由时可以实现基于端口的交换,因此可以减少客户端的访问时延,例如大大减少了客户端与存储服务器集群进行输入输出访问时的时延。
在一种可能的实现方式中,所述存储系统还包括:控制器,所述控制器和所述客户端、所述交换机、所述多个存储节点之间分别存在通信连接,其中,所述方法还包括:所述控制器接收所述客户端发送的第二请求;所述控制器根据所述第二请求从所述多个存储节点中确定所述目标存储节点;所述控制器向所述目标存储节点发送所述第二请求;所述目标存储节点接收所述控制器发送的所述第二请求;所述目标存储节点根据所述第二请求生成所述存储分区的标识;所述目标存储节点向所述控制器发送所述存储分区的标识;所述控制器接收所述目标存储节点发送的所述存储分区的标识;所述控制器向所述交换机发送所述存储分区的标识与所述目标存储节点之间的映射关系的所述表项;所述交换机接收所述控制器发送的所述表项,并根据所述表项更新所述转发表。本发明实施例中通过控制器可以向交换机发送表项,从而交换机可以使用该转发表与服务器集群中的数据服务器直接进行请求交互,减少了客户端的访问时延和请求的处理时延。
在一种可能的实现方式中,所述方法还包括:所述控制器接收所述目标存储节点发送的所述存储分区的标识之后,根据所述存储分区的标识与所述目标存储节点之间的映射关系更新所述控制器中的分区映射表。例如在存储系统中,控制器具有名称服务器的功能,因此该分区映射表可以包括虚拟名称服务器与存储节点之间的映射关系。控制器通过存储分区的标识与目标存储节点之间的映射关系更新控制器中的分区映射表,从而可以记录从存储分区到目标存储节点之间的映射关系。
在一种可能的实现方式中,所述方法还包括:所述控制器接收所述目标存储节点发送的所述存储分区的标识之后,根据所述存储分区的标识与所述目标存储节点之间的映射关系更新所述控制器中的存储节点状态表。其中,控制器可以在存储节点状态表中记录存储节点的实时状态,从而便于控制器准确的获取多个存储节点中的每个存储节点的状态。
在本申请的第二方面中,请求处理方法中各个步骤可以是前述第一方面以及各种可能的实现方式中所描述的功能模块执行的步骤,详见前述对第一方面以及各种可能的实现方式中的说明。
第三方面,本发明实施例还提供一种交换机,所述交换机应用于存储系统中,所述存储系统还包括:多个存储节点,所述交换机和客户端、所述多个存储节点之间存在通信连接,其中,所述交换机包括:接收模块,用于接收所述客户端发送的第一请求,所述第一请求包括:存储分区的标识;处理模块,用于根据所述存储分区的标识查询转发表中的表项,以确定所述存储分区的标识对应的目标存储节点;其中,所述表项包含存储分区的标识与目标存储节点的映射关系,所述目标存储节点为所述多个存储节点中的存储节点;发送模块,用于向所述目标存储节点发送所述第一请求。
在一种可能的实现方式中,所述接收模块,还用于接收所述目标存储节点根据所述第一请求发送的请求处理结果;所述发送模块,还用于向所述客户端发送所述请求处理结果。
在一种可能的实现方式中,所述存储系统还包括:控制器,所述控制器和所述客户端、所述交换机、所述多个存储节点之间分别存在通信连接,其中,所述接收模块,用于接收所述控制器发送的包含所述存储分区的标识与所述目标存储节点之间的映射关系的所述表项,其中,所述存储分区的标识由所述目标存储节点生成,所述目标存储节点由所述控制器从所述多个存储节点中确定;所述处理模块,用于根据所述表项更新所述转发表。
第四方面,本发明实施例还提供一种请求处理方法,所述请求处理方法应用于存储系统中的交换机,所述存储系统还包括:多个存储节点,所述交换机和客户端、所述多个存储节点之间存在通信连接,其中,所述方法包括:所述交换机接收所述客户端发送的第一请求,所述第一请求包括:存储分区的标识;所述交换机根据所述存储分区的标识查询转发表中的表项,以确定所述存储分区的标识对应的目标存储节点;其中,所述表项包含存储分区的标识与目标存储节点的映射关系,所述目标存储节点为所述多个存储节点中的存储节点;所述交换机向所述目标存储节点发送所述第一请求。
在一种可能的实现方式中,所述方法还包括:所述交换机接收所述目标存储节点根据所述第一请求发送的请求处理结果;所述交换机向所述客户端发送所述请求处理结果。
在一种可能的实现方式中,所述存储系统还包括:控制器,所述控制器和所述客户端、所述交换机、所述多个存储节点之间分别存在通信连接,其中,所述方法还包括:所述交换机接收所述控制器发送的包含所述存储分区的标识与所述目标存储节点之间的映射关系的所述表项,其中,所述存储分区的标识由所述目标存储节点生成,所述目标存储节点由所述控制器从所述多个存储节点中确定;所述交换机根据所述表项更新所述转发表。
在本申请的第四方面中,请求处理方法中各个步骤可以是前述第三方面以及各种可能的实现方式中所描述的功能模块执行的步骤,详见前述对第三方面以及各种可能的实现方式中的说明。
第五方面,本发明实施例还提供一种控制器,所述控制器属于存储系统,所述存储系统还包括:交换机和多个存储节点,所述控制器和客户端、所述交换机、所述多个存储节点之间分别存在通信连接,其中,所述控制器包括:接收模块,用于接收所述客户端发送的第二请求;处理模块,用于根据所述第二请求从所述多个存储节点中确定目标存储节点;发送模块,用于向所述目标存储节点发送所述第二请求;所述接收模块,还用于接收所述目标存储节点根据所述第二请求发送的存储分区的标识;所述发送模块,还用于向所述交换机发送包含所述存储分区的标识与所述目标存储节点之间的映射关系的所述表项。
在一种可能的实现方式中,所述处理模块,还用于接收所述目标存储节点发送的所述存储分区的标识之后,根据所述存储分区的标识与所述目标存储节点之间的映射关系更新所述控制器中的分区映射表。
在一种可能的实现方式中,所述处理模块,还用于接收所述目标存储节点发送的所述存储分区的标识之后,根据所述存储分区的标识与所述目标存储节点之间的映射关系更新所述控制器中的存储节点状态表。
第六方面,本发明实施例还提供一种请求处理方法,所述请求处理方法应用于存储系统中的控制器,所述存储系统还包括:交换机和多个存储节点,所述控制器和客户端、所述交换机、所述多个存储节点之间分别存在通信连接,其中,所述方法包括:所述控制器接收所述客户端发送的第二请求;所述控制器根据所述第二请求从所述多个存储节点中确定目标存储节点;所述控制器向所述目标存储节点发送所述第二请求;所述控制器接收所述目标存储节点根据所述第二请求发送的存储分区的标识;所述控制器向所述交换机发送包含所述存储分区的标识与所述目标存储节点之间的映射关系的所述表项。
在一种可能的实现方式中,所述方法还包括:所述控制器接收所述目标存储节点发送的所述存储分区的标识之后,根据所述存储分区的标识与所述目标存储节点之间的映射关系更新所述控制器中的分区映射表。
在一种可能的实现方式中,所述方法还包括:所述控制器接收所述目标存储节点发送的所述存储分区的标识之后,根据所述存储分区的标识与所述目标存储节点之间的映射关系更新所述控制器中的存储节点状态表。
第七方面,本发明实施例提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述第二方面或第四方面或第六方面所述的方法。
第八方面,本发明实施例提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述第二方面或第四方面或第六方面所述的方法。
第九方面,本发明实施例提供一种通信装置,该通信装置可以包括终端设备或者芯片等实体,所述通信装置包括:处理器、存储器;所述存储器用于存储所述转发表;所述处理器用于执行所述存储器中的指令,使得所述通信装置执行如前述第一方面或第二方面中任一项所述的方法。
第十方面,本申请提供了一种芯片系统,该芯片系统包括处理器,用于支持交换机或者控制器实现上述方面中所涉及的功能,例如,发送或处理上述方法中所涉及的数据和/或信息。在一种可能的设计中,所述芯片系统还包括存储器,所述存储器,用于保存交换机或者控制器必要的程序指令和数据。该芯片系统,可以由芯片构成,也可以包括芯片和其他分立器件。
附图说明
图1a为本发明实施例提供的一种分布式系统的组成架构示意图;
图1b为本发明实施例提供的另一种分布式系统的组成架构示意图;
图2a为本发明实施例提供的一种存储系统的组成架构示意图;
图2b为本发明实施例提供的另一种存储系统的组成架构示意图;
图3为本发明实施例提供的一种存储系统的应用场景示意图;
图4为本发明实施例提供的一种交换机的组成结构示意图;
图5为本发明实施例提供的另一种交换机的组成结构示意图;
图6为本发明实施例提供的一种控制器的组成结构示意图;
图7为本发明实施例提供的另一种控制器的组成结构示意图。
具体实施方式
本发明实施例提供了一种存储系统和请求处理方法以及交换机,用于降低存储系统的时延,提高信息处理效率。
下面结合附图,对本申请的实施例进行描述。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的术语在适当情况下可以互换,这仅仅是描述本申请的实施例中对相同属性的对象在描述时所采用的区分方式。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,以便包含一系列单元的过程、方法、系统、产品或设备不必限于那些单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它单元。
本发明实施例的技术方案可以应用于各种分布式系统,例如该分布式系统可以是分布式数据处理系统,或者是存储系统,对于本发明实施例提供的分布式系统的应用场景不做限定。例如,通常存储系统中包括如下三种部件:名称服务器(name server)和多个数据服务器(data server)。其中,多个数据服务器也称为服务器集群。通常存储系统无法在应用层地址空间识别并直接转发各部件间的数据分发,因而需要名称服务器的解析。本发明实施例提供的分布式系统包括:交换机和服务器集群,具体的,本发明实施例提供的交换机可以是软件定义交换机,后续以软件定义交换机进行示例说明,服务器集群具体可以是多个存储节点。本发明实施例提供的存储系统中利用软件定义网络(software definednetworking,SDN)转发表中的表项的可定义特性,直接交换存储数据读写请求,可以有效减少客户端与名称服务器、数据服务器之间的多次交互。
本发明实施例提供的分布式系统除了可以是存储系统,分布式系统还可以是网络负载均衡系统。通常的网络负载均衡系统主要利用服务器集群在软件层面实现负载均衡,这增加了大量的服务器成本,而本发明实施例提供的分布式系统包括:软件定义交换机和服务器集群,该软件定义交换机通过转发表中的表项可以识别上层数据包并直接分发,提升分布式系统的性能。
如图1a所示,本发明实施例提供一种分布式系统100,分布式系统100包括交换机101和服务器集群102,客户端和交换机101之间存在通信连接,交换机101和服务器集群102之间存在通信连接。其中,
交换机101,用于接收客户端发送的第一请求,其中,第一请求包括服务器分区号;根据待处理的服务器分区号查询交换机101中的转发表中的表项,以确定服务器分区号对应的数据服务器。其中,转发表中的表项包括:服务器分区号和服务器集群102中的数据服务器之间的映射关系;根据表项查询结果从服务器集群102中确定服务器分区号对应第一数据服务器;向第一数据服务器发送第一请求。
另外,第一请求中还可以携带源地址和目的地址,其中,该地址可以是互联网协议(internet protocol,IP)地址。
第一数据服务器,用于接收交换机101发送的第一请求。
在本申请的一些实施例中,第一数据服务器,还用于根据第一请求生成请求处理结果;向交换机101发送请求处理结果;
交换机101,用于接收请求处理结果,并向客户端发送请求处理结果。
其中,客户端和软件定义交换机之间存在通信连接,软件定义交换机向客户端发送请求处理结果之后,客户端可以通过该通信连接接收到请求处理结果。本发明实施例中软件定义交换机中内置转发表,软件定义交换机在路由时可以实现基于端口的交换,因此可以减少客户端的访问时延,例如大大减少了客户端与存储服务器集群进行输入输出(input/output,I/O)访问时的时延。
其中,本发明实施例提供的分布式系统为存储系统时,服务器分区号为存储分区的标识,数据服务器为存储节点或存储服务器。另一种实现存储节点还可以为硬盘框。
本发明实施例中,客户端可以具体部署在主机中,客户端发送的第一请求有多种实现方式,例如第一请求可以是数据读请求,或者数据写请求,或者是信息处理请求,此次不做限定。第一请求包括的待处理的服务器分区号可以是待处理的服务器的分区标识,待处理的服务器是指服务器集群中的一个或多个数据服务器。
交换机101具有网络功能,还具备直接交换客户端的请求的功能,交换机101可以使用转发表中的表项实现路由功能,该转发表也可以称为转发表,例如交换机101中存储有转发表,转发表包括服务器分区号和服务器集群中的数据服务器之间的映射关系,当交换机101接收到客户端的请求后,可以根据交换机101的本地转发表把客户端的请求发送到对应的数据服务器上,可以有效减少客户端与交换机、数据服务器之间的多次交互。例如交换机101可以是通过软件定义网络(software defined networking,SDN)的方式实现的交换机(switch)。其中,软件定义网络是一种新型网络架构,利用OpenFlow协议将交换机的控制平面从数据平面中分离,改以软件方式实现。该架构可使网络管理员在不更动硬件设备的前提下,以中央控制方式用程序重新规划网络,从而可以控制网络流量,便于进行核心网络的配置。
例如,本发明实施例提供的分布式系统100可以是存储系统,该存储系统具体可以是软件定义存储(software defined storage,SDS)的存储系统,存储系统中的交换机101还可以通过SDS实现,存储系统中可以包括多个存储节点,例如多个存储节点可以具体可以通过服务器集群实现。因此本发明实施例提供的交换机101也可以称为SDN交换机或者SDN/SDS交换机。其中,SDS的存储系统,相比与当前的以硬件方式交付的存储系统,SDS的存储系统中数据存储管理的软件与下层硬件之间是独立的,因此SDS的存储系统可以实现更灵活的基于策略的存储管理、配置及供给,SDS的存储系统包含存储虚拟化层以隔离上层的存储管理软件与下层硬件,存储管理软件在虚拟化层以上可以实现数据重删、复制、快照、自动精简配置(thin provisioning)及备份等数据管理功能。
举例说明如下,在存储系统中,交换机101中存储有转发表,该转发表中的表项记录服务器分区号和服务器集群102中的数据服务器之间的映射关系。本发明实施例提供的交换机101与当前的交换机相比,除了具有当前的交换机的网络功能以外,还具备直接转发存储数据读写请求的功能,即交换机101中存储有转发表,当交换机101收到客户端的请求后,会根据交换机101转发表中的表项,把客户端的数据读写请求转发到对应的数据服务器中。本发明实施例提供的存储系统中通过交换机101直接交换存储数据读写请求,可以有效减少客户端与原来的名称服务器、数据服务器之间的多次交互。
服务器集群102中包括N个数据服务器,其中N的取值为正整数,N的取值不做限定。其中,第一数据服务器是服务器集群102中的一个或多个数据服务器,第一数据服务器指的是交换机101根据路由查询结果从服务器集群102中确定出的数据服务器,例如第一数据服务器可以是交换机根据存储分区的标识查询表项后确定的目标存储节点。本发明实施例提供的服务器集群102可以是存储服务器集群,或者是数据服务器集群,或者是信息处理服务器集群,此处不做限定。
具体的,第一数据服务器对第一请求的处理具有多种实现方式,例如第一请求可以是数据读请求,则第一数据服务器可以根据该数据读请求从第一数据服务器的存储资源中读取数据。又如第一请求可以是数据写请求,则第一数据服务器可以根据该数据写请求向第一数据服务器的存储资源中写入数据。又如,第一请求可以是信息处理请求,则第一数据服务器可以根据该信息处理请求进行信息处理。
在本申请的一些实施例中,本发明实施例提供的请求处理方法除了执行前述步骤之外,该请求处理方法还包括:
软件定义控制器接收服务器分区号之后,根据服务器分区号与第一数据服务器之间的映射关系更新软件定义控制器中的分区映射表。
其中,软件定义控制器中包括分区映射表,该分区映射表又可以称为存储分区映射表,或者称为分区映射视图。软件定义控制器根据服务器分区号与第一数据服务器之间的映射关系更新软件定义控制器中的分区映射表,即软件定义控制器可以在分区映射表中记录服务器分区号与第一数据服务器之间的映射关系。例如在存储系统中,软件定义控制器具有名称服务器的功能,因此该分区映射表可以包括虚拟名称服务器与数据服务器之间的映射关系。
在本申请的一些实施例中,本发明实施例提供的请求处理方法除了执行前述步骤之外,该请求处理方法还包括:
软件定义控制器接收到服务器分区号之后,根据新的服务器分区号与第一数据服务器之间的映射关系更新软件定义控制器中的服务器状态表。
其中,软件定义控制器中包括服务器状态表,服务器状态又可以称为存储节点状态。例如数据服务器状态有多种,例如状态包括:在线,离线,缓存(caching up)。软件定义控制器可以在服务器状态表中记录服务器的实时状态,从而便于软件定义控制器准确的获取服务器集群中的每个服务器的状态。
如图1b所示,本发明实施例提供一种分布式系统100除了包括交换机101和服务器集群102之外,分布式系统100还包括:控制器103,客户端和控制器103之间存在通信连接,控制器103和交换机101、服务器集群102之间分别存在通信连接,其中,
控制器103,用于接收客户端发送的第二请求;根据第二请求从服务器集群102中确定第一数据服务器;向第一数据服务器发送第二请求;
第一数据服务器,用于接收控制器103发送的第二请求;根据第二请求生成服务器分区号;向控制器103发送服务器分区号;
控制器103,用于接收第一数据服务器发送的服务器分区号;向交换机101发送服务器分区号与第一数据服务器之间的映射关系;
交换机101,用于接收控制器103发送的映射关系,并根据映射关系更新转发表。
其中,控制器103除具有存储系统中的名称服务器的功能外,还具有软件定义网络的方式实现的控制器(controller)的功能,控制器103可以维护从该控制器103到服务器集群之间的转发表。举例说明如下,在存储系统中,控制器103具备存储系统中的名称服务器的功能,因此控制器103可以和数据服务器(DataServer)通讯,生成服务器分区号与数据服务器之间的映射关系作为转发表的表项,因此,该转发表的表项也可以称为映射关系表项,并且将此表项下发给交换机101。
例如,本发明实施例提供的分布式系统100可以存储系统,该存储系统具体可以是SDS的存储系统,存储系统中的控制器103还可以通过SDS实现,因此本发明实施例提供的控制器103也可以称为SDN控制器或者SDN/SDS控制器。本发明实施例提供的存储系统中控制器103可以向交换机101发送包含服务器分区号与数据服务器映射关系的表项,从而交换机101可以通过该表项直接发送存储数据读写请求,可以有效减少客户端与原来的名称服务器、数据服务器之间的多次交互。
在本申请的一些实施例中,软件定义控制器向软件定义交换机发送服务器分区号与第一数据服务器之间的映射关系,包括:软件定义控制器向软件定义交换机发送转发表的表项,表项包括服务器分区号与第一数据服务器之间的映射关系;
软件定义交换机接收软件定义控制器发送的表项,基于该表项更新转发表。其中,软件定义交换机中的转发表的更新可以是对转发表中的表项的更新。
在本申请的一些实施例中,第一请求为数据写请求;数据写请求携带的目的地址为分布式系统的地址,例如分布式系统的地址可以是存储系统的统一IP地址。本发明实施例提供的请求处理方法还包括:
A1、第一数据服务器根据数据写请求从服务器分区号对应的服务器分区分配存储资源;向软件定义交换机发送第一数据服务器的地址。
其中,第一数据服务器是服务器集群中的一个或多个服务器,第一数据服务器指的是软件定义交换机根据路由查询结果从服务器集群中确定出的数据服务器。例如第一数据服务器可以是存储服务器,或者称为存储服务器,第一数据服务器根据数据写请求获取待处理的服务器分区号对应的服务器分区,第一数据服务器为该服务器分区分配存储资源,然后向软件定义交换机发送第一数据服务器的地址,该第一数据服务器的地址是待写入数据的地址。
A2、软件定义交换机接收第一数据服务器的地址,并向客户端发送应答消息,应答消息包括第一数据服务器的地址,应答消息的源地址为分布式系统的地址。
其中,软件定义交换机向客户端发送应答消息,应答消息包括第一数据服务器的地址,从而使得客户端接收到应答消息之后可以获取到第一数据服务器的地址,即客户端可以确定数据需要写入的地址。该应答消息的源地址为分布式系统的地址,例如应答消息的源地址为存储系统的统一IP地址。
A3、客户端接收软件定义交换机发送的应答消息;向软件定义交换机发送数据写命令,数据写命令包括待写入数据,数据写命令携带的目的地址为分布式系统的地址。
在本发明实施例中,客户端接收应答消息之后,根据该应答消息确定数据需要写入的地址(即待写入数据需要写入到第一数据服务器中)。客户端向软件定义交换机发送数据写命令,数据写命令包括待写入数据,数据写命令携带的目的地址为分布式系统的地址,例如数据写命令携带的目的地址为存储系统的统一IP地址。
A4、软件定义交换机接收数据写命令,根据转发表向第一数据服务器发送数据写命令。
在本发明实施例中,软件定义交换机中存储有转发表,该转发表可用于将数据写命令发送到相应的服务器集群中的数据服务器,软件定义交换机可以使用转发表向第一数据服务器发送数据写命令,相比于当前的名称服务器进行数据服务器的查找的方式,本发明实施例可以降低客户端的访问时延。
A5、第一数据服务器接收软件定义交换机发送的数据写命令,并将待写入数据写入存储资源;向软件定义交换机发送数据写入结果。
在本发明实施例中,第一数据服务器接收软件定义交换机发送的数据写命令,第一数据服务器从数据写命令中提取出待写入数据,然后按照预先分配的存储资源进行数据写入,在数据写入完成之后,生成数据写入结果,然后向软件定义交换机发送该数据写入结果,其中,数据写入结果用于指示数据是否写入成功,以及指示指示数据写入的存储资源的位置。
A6、软件定义交换机接收数据写入结果,并向客户端发送数据写入结果,数据写入结果的源地址为分布式系统的地址。
在本发明实施例中,软件定义交换机可以从第一数据服务器接收到数据写入结果,软件定义交换机可以和客户端进行通信,向客户端发送数据写入结果,数据写入结果的源地址为分布式系统的地址,例如数据写入结果的源地址为存储系统的统一IP地址。
A7、客户端接收软件定义交换机发送的数据写入结果。
在本发明实施例中,客户端可以通过客户端与软件定义交换机之间的通信连接接收数据写入结果,其中,数据写入结果用于指示数据是否写入成功,以及指示数据写入的存储资源的位置。客户端可以根据接收到的数据写入结果确定待写入数据是否写入成功,以及根据该数据写入结果确定待写入数据被写入的第一数据服务器中的存储资源的位置。
在本申请的一些实施例中,第一请求为数据读请求;数据读请求携带的目的地址为分布式系统的地址。本发明实施例提供的请求处理方法除了执行前述步骤之外,该请求处理方法还包括:
B1、第一数据服务器根据数据读请求确定待处理的服务器分区号对应的服务器分区;从服务器分区中读取数据;向软件定义交换机发送读取到的数据。
其中,客户端可以生成数据读请求,客户端向软件定义交换机发送数据读请求,数据读请求包括待处理的服务器分区号,数据读请求携带的目的地址为分布式系统的地址,例如数据读请求携带的目的地址是存储系统的统一IP地址。软件定义交换机根据软件定义交换机中的转发表将数据读请求发送到第一数据服务器。第一数据服务器根据数据读请求确定服务器分区号对应的服务器分区,该存储服务器分区中存储有需要读取的数据,然后第一数据服务器从服务器分区中读取数据,在获得读取到的数据之后,第一数据服务器可以向软件定义交换机发送读取到的数据。
B2、软件定义交换机接收读取到的数据,并向客户端发送数据读出结果,数据读出结果包括读取到的数据,数据读出结果的源地址为分布式系统的地址。
在本发明实施例中,软件定义交换机可以从第一数据服务器接收读取到的数据,软件定义交换机通过软件定义交换机和客户端之间的通信连接向客户端发送数据读出结果。数据读出结果的源地址为分布式系统的地址,例如数据读出结果的源地址为存储系统的统一IP地址。
B3、客户端接收软件定义交换机发送的数据读出结果。
在本发明实施例中,客户端可以通过客户端与软件定义交换机之间的通信连接接收数据读出结果,其中,数据读出结果携带读取到的数据。客户端可以根据接收到的数据读出结果确定读取到的数据,从而完成客户端的数据读取。
本发明实施例中,客户端向控制器103发送第二请求,该第二请求可以用于触发创建服务器分区。控制器103根据第二请求从服务器集群102中确定第一数据服务器,第一数据服务器是服务器集群102中的一个或多个服务器,第一数据服务器指的是控制器103根据第二请求从服务器集群102中确定的数据服务器,例如第一数据服务器可以是控制器根据第二请求从多个存储节点中确定的目标存储节点。第一数据服务器可以根据第二请求生成服务器分区号,第一数据服务器向控制器103发送服务器分区号,控制器103可以确定服务器分区号与第一数据服务器之间的映射关系,控制器103还可以向交换机101发送包含该映射关系的表项,交换机101接收控制器103发送的表项,并根据表项更新转发表,该转发表中可以记录该表项。本发明实施例中通过控制器103可以向交换机101发送表项,从而交换机101可以使用该转发表与服务器集群102中的数据服务器直接进行请求交互,减少了客户端的访问时延和请求的处理时延。
如图2a所示,接下来以分布式系统为存储系统200进行示例说明,其中,在存储系统中,数据服务器为存储节点,服务器分区为存储分区,服务器分区号为存储分区的标识。存储系统200包括:交换机201和多个存储节点202,交换机201和客户端、多个存储节点202之间存在通信连接,其中,
交换机201,用于接收客户端发送的第一请求,第一请求包括存储分区的标识;根据存储分区的标识查询转发表中的表项,以确定存储分区的标识对应的目标存储节点;向目标存储节点发送第一请求;其中,表项包含存储分区的标识与目标存储节点的映射关系,目标存储节点为多个存储节点202中的存储节点;
目标存储节点,用于接收交换机201发送的第一请求。
本发明实施例中,客户端可以具体部署在主机中,客户端发送的第一请求有多种实现方式,例如第一请求可以是数据读请求,或者数据写请求,或者是信息处理请求,此次不做限定。第一请求包括的存储节点的分区号可以是能够处理第一请求的目标存储节点的分区标识,目标存储节点是指为多个存储节点中的一个或多个存储节点。
交换机具有网络功能,还具备直接交换客户端的请求的功能,交换机可以使用转发表中的表项实现转发功能。当交换机接收到客户端的请求后,可以根据交换机的本地转发表把客户端的请求发送到对应的存储节点上,可以有效减少客户端与交换机、存储节点之间的多次交互。
在本申请的一些实施例中,目标存储节点,还用于根据第一请求生成请求处理结果;向交换机201发送请求处理结果;
交换机201,还用于接收请求处理结果,并向客户端发送请求处理结果。
其中,交换机还具有向客户端发送请求处理结果的功能,从而客户端可以获取到针对第一请求反馈的请求处理结果,例如客户端根据请求处理结果确定是否读取到需要的数据,或者待写入的数据是否写入成功。
在本申请的一些实施例中,如图2b所示,存储系统200还包括:控制器203,控制器203和客户端、交换机201、多个存储节点202之间分别存在通信连接,其中,
控制器203,用于接收客户端发送的第二请求;根据第二请求从多个存储节点202中确定目标存储节点,向目标存储节点发送第二请求;
目标存储节点,用于接收控制器203发送的第二请求;根据第二请求生成存储分区的标识;向控制器203发送存储分区的标识;
控制器203,用于接收目标存储节点发送的存储分区的标识,向交换机201发送包含存储分区的标识与目标存储节点之间的映射关系的表项;
交换机201,用于接收控制器203发送的表项,并根据表项更新转发表。
其中,客户端向控制器203发送第二请求,该第二请求可以用于触发创建存储分区。控制器根据第二请求选择能够创建存储分区的目标存储节点,控制器转发该第二请求到目标存储节点,从而目标存储节点可以根据该第二请求生成存储分区的标识,向控制器发送存储分区的标识,控制器接收目标存储节点发送的存储分区的标识,向交换机发送包含存储分区的标识与目标存储节点之间的映射关系的表项。交换机接收控制器发送的表项,并根据表项更新转发表,本发明实施例中通过控制器可以向交换机发送转发表中的表项,从而交换机可以使用该转发表中的表项进行查询操作之后,与多个存储节点直接进行请求交互,减少了客户端的访问时延和请求的处理时延。
在本申请的一些实施例中,控制器203,用于接收目标存储节点发送的存储分区的标识之后,根据存储分区的标识与目标存储节点之间的映射关系更新控制器203中的分区映射表。
其中,控制器用于生成和维护分区映射表,该分区映射表又可以称为存储分区映射表,或者称为分区映射视图,控制器将分区映射表中包含存储分区的标识与存储节点的映射关系,控制器向交换机发送包含存储分区的标识与存储节点的映射关系的表项,作为交换机转发表中的表项。控制器根据存储分区的标识与目标存储节点之间的映射关系更新控制器中的分区映射表,即控制器可以在分区映射表中记录存储分区的标识与目标存储节点之间的映射关系。例如在存储系统中,控制器具有名称服务器的功能,因此该分区映射表可以包括虚拟名称服务器与存储节点之间的映射关系。控制器通过存储分区的标识与目标存储节点之间的映射关系更新控制器中的分区映射表,从而可以记录从存储分区到目标存储节点之间的映射关系。
在本申请的一些实施例中,控制器203,用于接收目标存储节点发送的存储分区的标识之后,根据存储分区的标识与目标存储节点之间的映射关系更新控制器203中的存储节点状态表。
其中,控制器中包括存储节点状态表,存储节点状态又可以称为存储节点状态。例如存储节点状态有多种,例如状态(Status)包括:在线(active),离线(lost),缓存(caching up)。控制器可以在存储节点状态表中记录存储节点的实时状态,从而便于控制器准确的获取多个存储节点中的每个存储节点的状态。
通过前述实施例的举例说明可知,本发明实施例提供的交换机接收客户端发送的第一请求,并根据第一请求查询转发表中的表项,从而确定存储分区的标识对应的目标存储节点,即交换机可以使用转发表中的表项确定处理第一请求的目标存储节点,从而减少了客户端和多个存储节点之间的消息以及数据转发量的开销,通过表项查询的方式降低了存储系统系统的时延,提高信息处理效率,提升存储系统的性能。
为便于更好的理解和实施本发明实施例的上述方案,下面举例相应的应用场景来进行具体说明。
请参阅如图3所示,为本发明实施例提供的一种系统架构示意图。系统架构可以包括SDN控制器、SDN交换机和服务器集群。在一种可能的实现方式中,存储系统还可以包括客户端。
其中,客户端可以通过主机实现,客户端具体可以是物理机负载(workload)、虚拟机负载、容器负载或者云原生负载和大数据Hadoop分布式文件系统(Hadoop distributedfile system,HDFS)负载。例如,客户端集成在主机侧,通过预先设定的协议和数据地址,向SDN交换机发送数据读写请求及应答。其中一种实现,向SDN交换机发送数据读写请求及应答中包含统一IP地址。
SDN控制器也可以称为SDN/SDS控制器,SDN控制器可以与服务器集群中的数据服务器(DataServer)通信,生成分区视图,分区视图也叫分区映射表。分区视图包含服务器分区号与数据服务器之间的映射关系,将包含服务器分区号与数据服务器之间的映射关系的表项定时通过OpenFlow协议更新到SDN交换机,其中,定时的方式可以包括每间隔5至60分钟。
例如,SDN控制器维护转发表,转发表中包含服务器分区号与数据服务器之间映射关系的表项。
分区映射表的内容如下表1所示:
Figure BDA0002548738380000131
例如,SDN控制器维护的数据服务器状态表的内容如下表2所示:
Figure BDA0002548738380000132
Figure BDA0002548738380000141
SDN交换机通过转发表中的表项执行SDN交换机发送相应的请求及请求处理结果。
例如,SDN交换机中存储的转发表的表项除了包含服务器分区号及数据服务器的映射关系外,还可以包含输入端口、输出端口等。
本发明实施例应用于存储系统中的控制器提供了名称服务器的功能与SDN控制器功能,维护分区视图,将包含服务器分区与数据服务器映射关系的表项下发给SDN交换机,可以有效减少客户端与原名称服务器,数据服务器之间的多次交互。
请参阅图4所示,本发明实施例提供的一种交换机400,所述交换机应用于分布式系统中,所述分布式系统还包括:服务器集群和所述交换机,交换机和所述服务器集群之间存在通信连接,其中,所述交换机包括:接收模块401、处理模块402和发送模块403,
接收模块,用于接收所述客户端发送的第一请求,所述第一请求包括服务器分区号;
处理模块,用于根据所述待处理的服务器分区号查询所述交换机中的转发表的表项,以确定服务分区号对应的数据服务器;其中,所述表项包括服务器分区号和所述服务器集群中的数据服务器之间的映射关系;发送模块,用于向所述第一数据服务器发送所述第一请求。
在本申请的一些实施例中,所述接收模块,用于接收所述第一数据服务器发送的请求处理结果;
所述发送模块,用于向所述客户端发送所述请求处理结果。
在本申请的一些实施例中,所述分布式系统还包括:软件定义控制器,所述客户端和所述软件定义控制器之间存在通信连接,所述软件定义控制器和所述交换机、所述服务器集群之间分别存在通信连接,其中,
所述接收模块,用于接收所述软件定义控制器发送的包含服务器分区号与数据服务器之间的映射关系表项;
所述处理模块,用于根据所述表项更新所述转发表。
本发明实施例还提供一种交换机,如图4所示,交换机应用于存储系统中,存储系统还包括:多个存储节点,交换机和客户端、多个存储节点之间存在通信连接,其中,交换机包括:
接收模块,用于接收客户端发送的第一请求,第一请求包括:存储分区的标识;
处理模块,用于根据存储分区的标识查询转发表中的表项,以确定存储分区的标识对应的目标存储节点;其中,表项包含存储分区的标识与目标存储节点的映射关系,目标存储节点为多个存储节点中的存储节点;
发送模块,用于向目标存储节点发送第一请求。
在本申请的一些实施例中,接收模块,还用于接收目标存储节点根据第一请求发送的请求处理结果;
发送模块,还用于向客户端发送请求处理结果。
在本申请的一些实施例中,存储系统还包括:控制器,控制器和客户端、交换机、多个存储节点之间分别存在通信连接,其中,
接收模块,用于接收控制器发送的包含存储分区的标识与目标存储节点之间的映射关系的表项,其中,存储分区的标识由目标存储节点生成,目标存储节点由控制器从多个存储节点中确定;
处理模块,用于根据表项更新转发表。
本发明实施例还提供一种计算机存储介质,其中,该计算机存储介质存储有程序,该程序执行包括上述方法实施例中记载的部分或全部步骤。
接下来介绍本发明实施例提供的另一种交换机,请参阅图5所示,交换机500包括:
处理器501和存储器502(其中,交换机500中的处理器501的数量可以一个或多个,图5中以一个处理器为例)。在本申请的一些实施例中,处理器501和存储器502可通过总线或其它方式连接,其中,图5中以通过总线连接为例。
存储器502用于存储转发表。处理器501控制交换机的操作,处理器501还可以称为中央处理单元(central processing unit,CPU)。具体的应用中,交换机的各个组件通过总线系统耦合在一起,其中总线系统除包括数据总线之外,还可以包括电源总线、控制总线和状态信号总线等。但是为了清楚说明起见,在图中将各种总线都称为总线系统。
上述本发明实施例揭示的方法可以应用于处理器501中,或者由处理器501实现。处理器501可以是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器501中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器501可以是通用处理器、数字信号处理器(digital signal processing,DSP)、专用集成电路(application specific integrated circuit,ASIC)、现场可编程门阵列(field-programmable gate array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器502,处理器501读取存储器502中的信息,结合其硬件完成上述方法的步骤。
本发明实施例中,处理器501,用于执行前述交换机执行的请求处理方法。
请参阅图6所示,本发明实施例提供的一种控制器600,所述控制器应用于分布式系统中,所述分布式系统还包括:交换机和服务器集群,所述交换机和客户端、所述服务器集群之间存在通信连接,其中,所述控制器包括:接收模块601、处理模块602和发送模块603,
接收模块,用于接收所述客户端发送的第二请求;
处理模块,用于根据所述第二请求从所述多个存储节点中确定目标存储节点;
发送模块,用于向所述目标存储节点发送所述第二请求;
所述接收模块,还用于接收所述目标存储节点根据所述第二请求发送的存储分区的标识;
所述发送模块,还用于向所述交换机发送包含所述存储分区的标识与所述目标存储节点之间的映射关系的所述表项。
在一种可能的实现方式中,所述处理模块,还用于接收所述目标存储节点发送的所述存储分区的标识之后,根据所述存储分区的标识与所述目标存储节点之间的映射关系更新所述控制器中的分区映射表。
在一种可能的实现方式中,所述处理模块,还用于接收所述目标存储节点发送的所述存储分区的标识之后,根据所述存储分区的标识与所述目标存储节点之间的映射关系更新所述控制器中的存储节点状态表。
接下来介绍本发明实施例提供的另一种控制器,请参阅图7所示,控制器700包括:
处理器701和存储器702(其中,控制器700中的处理器701的数量可以一个或多个,图7中以一个处理器为例)。处理器701和存储器702可通过总线或其它方式连接,其中,图7中以通过总线连接为例。
存储器702可以包括只读存储器和随机存取存储器,并向处理器701提供指令和数据。存储器702的一部分还可以包括NVRAM。存储器702存储有操作系统和操作指令、可执行模块或者数据结构,或者它们的子集,或者它们的扩展集,其中,操作指令可包括各种操作指令,用于实现各种操作。操作系统可包括各种系统程序,用于实现各种基础业务以及处理基于硬件的任务。
处理器701控制控制器的操作,处理器701还可以称为CPU。具体的应用中,控制器的各个组件通过总线系统耦合在一起,其中总线系统除包括数据总线之外,还可以包括电源总线、控制总线和状态信号总线等。但是为了清楚说明起见,在图中将各种总线都称为总线系统。
上述本发明实施例揭示的方法可以应用于处理器701中,或者由处理器701实现。处理器701可以是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器701中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器701可以是通用处理器、DSP、ASIC、FPGA或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器702,处理器701读取存储器702中的信息,结合其硬件完成上述方法的步骤。
本发明实施例中,处理器701,用于执行前述控制器执行的请求处理方法。
需要说明的是,上述装置各模块/单元之间的信息交互、执行过程等内容,由于与本申请方法实施例基于同一构思,其带来的技术效果与本申请方法实施例相同,具体内容可参见本申请前述所示的方法实施例中的叙述,此处不再赘述。
在另一种可能的设计中,当交换机或控制器为终端内的芯片时,芯片包括:处理单元和通信单元,所述处理单元例如可以是处理器,所述通信单元例如可以是输入/输出接口、管脚或电路等。该处理单元可执行存储单元存储的计算机执行指令,以使该终端内的芯片执行上述交换机或控制器的任意一项方法。可选地,所述存储单元为所述芯片内的存储单元,如寄存器、缓存等,所述存储单元还可以是所述终端内的位于所述芯片外部的存储单元,如只读存储器(read-only memory,ROM)或可存储静态信息和指令的其他类型的静态存储设备,随机存取存储器(random access memory,RAM)等。
其中,上述任一处提到的处理器,可以是一个通用中央处理器,微处理器,ASIC,或一个或多个用于控制前述方法的程序执行的集成电路。
另外需说明的是,以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。另外,本申请提供的装置实施例附图中,模块之间的连接关系表示它们之间具有通信连接,具体可以实现为一条或多条通信总线或信号线。
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到本申请可借助软件加必需的通用硬件的方式来实现,当然也可以通过专用硬件包括专用集成电路、专用CPU、专用存储器、专用元器件等来实现。一般情况下,凡由计算机程序完成的功能都可以很容易地用相应的硬件来实现,而且,用来实现同一功能的具体硬件结构也可以是多种多样的,例如模拟电路、数字电路或专用电路等。但是,对本申请而言更多情况下软件程序实现是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在可读取的存储介质中,如计算机的软盘、U盘、移动硬盘、ROM、RAM、磁碟或者光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述的方法。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。
所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存储的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘(Solid State Disk,SSD))等。

Claims (18)

1.一种存储系统,其特征在于,所述存储系统包括:交换机和多个存储节点,所述交换机和客户端、所述多个存储节点之间存在通信连接,其中,
所述交换机,用于接收所述客户端发送的第一请求,所述第一请求包括存储分区的标识;根据所述存储分区的标识查询转发表中的表项,以确定所述存储分区的标识对应的目标存储节点;向所述目标存储节点发送所述第一请求;其中,所述表项包含存储分区的标识与目标存储节点的映射关系,所述目标存储节点为所述多个存储节点中的存储节点;
所述目标存储节点,用于接收所述交换机发送的所述第一请求。
2.根据权利要求1所述的存储系统,其特征在于,所述目标存储节点,还用于根据所述第一请求生成请求处理结果;向所述交换机发送所述请求处理结果;
所述交换机,还用于接收所述请求处理结果,并向所述客户端发送所述请求处理结果。
3.根据权利要求1或2所述的存储系统,其特征在于,所述存储系统还包括:控制器,所述控制器和所述客户端、所述交换机、所述多个存储节点之间分别存在通信连接,其中,
所述控制器,用于接收所述客户端发送的第二请求;根据所述第二请求从所述多个存储节点中确定所述目标存储节点,向所述目标存储节点发送所述第二请求;
所述目标存储节点,用于接收所述控制器发送的所述第二请求;根据所述第二请求生成所述存储分区的标识;向所述控制器发送所述存储分区的标识;
所述控制器,用于接收所述目标存储节点发送的所述存储分区的标识,向所述交换机发送包含所述存储分区的标识与所述目标存储节点之间的映射关系的所述表项;
所述交换机,用于接收所述控制器发送的所述表项,并根据所述表项更新所述转发表。
4.根据权利要求3所述的存储系统,其特征在于,所述控制器,用于接收所述目标存储节点发送的所述存储分区的标识之后,根据所述存储分区的标识与所述目标存储节点之间的映射关系更新所述控制器中的分区映射表。
5.根据权利要求3或4所述的存储系统,其特征在于,所述控制器,用于接收所述目标存储节点发送的所述存储分区的标识之后,根据所述存储分区的标识与所述目标存储节点之间的映射关系更新所述控制器中的存储节点状态表。
6.一种请求处理方法,其特征在于,所述请求处理方法应用于存储系统,所述存储系统包括:交换机和多个存储节点,所述交换机和客户端、所述多个存储节点之间存在通信连接,其中,所述方法包括:
所述交换机接收所述客户端发送的第一请求,所述第一请求包括存储分区的标识;
所述交换机根据所述存储分区的标识查询转发表中的表项,以确定所述存储分区的标识对应的目标存储节点;其中,所述表项包含存储分区的标识与目标存储节点的映射关系,所述目标存储节点为所述多个存储节点中的存储节点;
所述交换机向所述目标存储节点发送所述第一请求;
所述目标存储节点接收所述交换机发送的所述第一请求。
7.根据权利要求6所述的方法,其特征在于,所述方法还包括:
所述目标存储节点根据所述第一请求生成请求处理结果;
所述目标存储节点向所述交换机发送所述请求处理结果;
所述交换机接收所述请求处理结果,并向所述客户端发送所述请求处理结果。
8.根据权利要求6或7所述的方法,其特征在于,所述存储系统还包括:控制器,所述控制器和所述客户端、所述交换机、所述多个存储节点之间分别存在通信连接,其中,所述方法还包括:
所述控制器接收所述客户端发送的第二请求;
所述控制器根据所述第二请求从所述多个存储节点中确定所述目标存储节点;
所述控制器向所述目标存储节点发送所述第二请求;
所述目标存储节点接收所述控制器发送的所述第二请求;
所述目标存储节点根据所述第二请求生成所述存储分区的标识;
所述目标存储节点向所述控制器发送所述存储分区的标识;
所述控制器接收所述目标存储节点发送的所述存储分区的标识;
所述控制器向所述交换机发送所述存储分区的标识与所述目标存储节点之间的映射关系的所述表项;
所述交换机接收所述控制器发送的所述表项,并根据所述表项更新所述转发表。
9.根据权利要求8所述的方法,其特征在于,所述方法还包括:
所述控制器接收所述目标存储节点发送的所述存储分区的标识之后,根据所述存储分区的标识与所述目标存储节点之间的映射关系更新所述控制器中的分区映射表。
10.根据权利要求8或9所述的方法,其特征在于,所述方法还包括:
所述控制器接收所述目标存储节点发送的所述存储分区的标识之后,根据所述存储分区的标识与所述目标存储节点之间的映射关系更新所述控制器中的存储节点状态表。
11.一种交换机,其特征在于,所述交换机应用于存储系统中,所述存储系统还包括:多个存储节点,所述交换机和客户端、所述多个存储节点之间存在通信连接,其中,所述交换机包括:
接收模块,用于接收所述客户端发送的第一请求,所述第一请求包括:存储分区的标识;
处理模块,用于根据所述存储分区的标识查询转发表中的表项,以确定所述存储分区的标识对应的目标存储节点;其中,所述表项包含存储分区的标识与目标存储节点的映射关系,所述目标存储节点为所述多个存储节点中的存储节点;
发送模块,用于向所述目标存储节点发送所述第一请求。
12.根据权利要求11所述的交换机,其特征在于,所述接收模块,还用于接收所述目标存储节点根据所述第一请求发送的请求处理结果;
所述发送模块,还用于向所述客户端发送所述请求处理结果。
13.根据权利要求11或12所述的交换机,其特征在于,所述存储系统还包括:控制器,所述控制器和所述客户端、所述交换机、所述多个存储节点之间分别存在通信连接,其中,
所述接收模块,用于接收所述控制器发送的包含所述存储分区的标识与所述目标存储节点之间的映射关系的所述表项,其中,所述存储分区的标识由所述目标存储节点生成,所述目标存储节点由所述控制器从所述多个存储节点中确定;
所述处理模块,用于根据所述表项更新所述转发表。
14.一种请求处理方法,其特征在于,所述请求处理方法应用于存储系统中的交换机,所述存储系统还包括:多个存储节点,所述交换机和客户端、所述多个存储节点之间存在通信连接,其中,所述方法包括:
所述交换机接收所述客户端发送的第一请求,所述第一请求包括:存储分区的标识;
所述交换机根据所述存储分区的标识查询转发表中的表项,以确定所述存储分区的标识对应的目标存储节点;其中,所述表项包含存储分区的标识与目标存储节点的映射关系,所述目标存储节点为所述多个存储节点中的存储节点;
所述交换机向所述目标存储节点发送所述第一请求。
15.根据权利要求14所述的方法,其特征在于,所述方法还包括:
所述交换机接收所述目标存储节点根据所述第一请求发送的请求处理结果;
所述交换机向所述客户端发送所述请求处理结果。
16.根据权利要求15所述的方法,其特征在于,所述存储系统还包括:控制器,所述控制器和所述客户端、所述交换机、所述多个存储节点之间分别存在通信连接,其中,所述方法还包括:
所述交换机接收所述控制器发送的包含所述存储分区的标识与所述目标存储节点之间的映射关系的所述表项,其中,所述存储分区的标识由所述目标存储节点生成,所述目标存储节点由所述控制器从所述多个存储节点中确定;
所述交换机根据所述表项更新所述转发表。
17.一种交换机,其特征在于,所述交换机包括:处理器,存储器;所述处理器、所述存储器之间进行相互的通信;
所述处理器用于执行所述存储器中的指令,执行如权利要求14至16中任一项所述的方法;
所述存储器用于存储所述转发表。
18.一种计算机可读存储介质,包括指令,当其在计算机上运行时,使得计算机执行如权利要求6至10、14至16中任意一项所述的方法。
CN202010568783.9A 2020-03-09 2020-06-19 一种存储系统和请求处理方法以及交换机 Pending CN113377280A (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
EP20924434.2A EP4102788A4 (en) 2020-03-09 2020-09-09 STORAGE SYSTEM AND DEMAND PROCESSING METHOD, AND SWITCH
PCT/CN2020/114222 WO2021179556A1 (zh) 2020-03-09 2020-09-09 一种存储系统和请求处理方法以及交换机
US17/940,222 US20230004304A1 (en) 2020-03-09 2022-09-08 Storage System, Request Processing Method, and Switch

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN2020101590069 2020-03-09
CN202010159006 2020-03-09

Publications (1)

Publication Number Publication Date
CN113377280A true CN113377280A (zh) 2021-09-10

Family

ID=77569486

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010568783.9A Pending CN113377280A (zh) 2020-03-09 2020-06-19 一种存储系统和请求处理方法以及交换机

Country Status (4)

Country Link
US (1) US20230004304A1 (zh)
EP (1) EP4102788A4 (zh)
CN (1) CN113377280A (zh)
WO (1) WO2021179556A1 (zh)

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103795570A (zh) * 2014-01-23 2014-05-14 杭州华三通信技术有限公司 环形拓扑的堆叠交换机系统的单播报文恢复方法及装置
CN104135539A (zh) * 2014-08-15 2014-11-05 华为技术有限公司 数据存储方法、sdn控制器和分布式网络存储系统
CN104301146A (zh) * 2014-10-23 2015-01-21 杭州华三通信技术有限公司 软件定义网络中的链路切换方法和装置
US20150106420A1 (en) * 2013-10-15 2015-04-16 Coho Data Inc. Methods, devices and systems for coordinating network-based communication in distributed server systems with sdn switching
US20150106578A1 (en) * 2013-10-15 2015-04-16 Coho Data Inc. Systems, methods and devices for implementing data management in a distributed data storage system
CN105610716A (zh) * 2016-03-09 2016-05-25 北京邮电大学 一种基于sdn的多媒体流量优化调度方法、装置及系统
CN106936731A (zh) * 2015-12-31 2017-07-07 北京华为数字技术有限公司 软件定义网络sdn中的报文转发的方法和装置
US10545667B1 (en) * 2015-03-04 2020-01-28 Amazon Technologies, Inc. Dynamic data partitioning for stateless request routing

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106164898B (zh) * 2014-10-11 2018-06-26 华为技术有限公司 数据处理方法和装置

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150106420A1 (en) * 2013-10-15 2015-04-16 Coho Data Inc. Methods, devices and systems for coordinating network-based communication in distributed server systems with sdn switching
US20150106578A1 (en) * 2013-10-15 2015-04-16 Coho Data Inc. Systems, methods and devices for implementing data management in a distributed data storage system
CN103795570A (zh) * 2014-01-23 2014-05-14 杭州华三通信技术有限公司 环形拓扑的堆叠交换机系统的单播报文恢复方法及装置
CN104135539A (zh) * 2014-08-15 2014-11-05 华为技术有限公司 数据存储方法、sdn控制器和分布式网络存储系统
CN104301146A (zh) * 2014-10-23 2015-01-21 杭州华三通信技术有限公司 软件定义网络中的链路切换方法和装置
US10545667B1 (en) * 2015-03-04 2020-01-28 Amazon Technologies, Inc. Dynamic data partitioning for stateless request routing
CN106936731A (zh) * 2015-12-31 2017-07-07 北京华为数字技术有限公司 软件定义网络sdn中的报文转发的方法和装置
CN105610716A (zh) * 2016-03-09 2016-05-25 北京邮电大学 一种基于sdn的多媒体流量优化调度方法、装置及系统

Also Published As

Publication number Publication date
EP4102788A4 (en) 2023-07-12
EP4102788A1 (en) 2022-12-14
WO2021179556A1 (zh) 2021-09-16
US20230004304A1 (en) 2023-01-05

Similar Documents

Publication Publication Date Title
US10782880B2 (en) Apparatus and method for providing storage for providing cloud services
US10705965B2 (en) Metadata loading in storage systems
US11249788B2 (en) Cloud management platform, and virtual machine management method and system
US20120197958A1 (en) Parallel Serialization of Request Processing
US11662928B1 (en) Snapshot management across cloud provider network extension security boundaries
CN106503058B (zh) 一种数据加载方法、终端和计算集群
JP6724252B2 (ja) データ処理方法、記憶システムおよび切り換え装置
US20140059315A1 (en) Computer system, data management method and data management program
US20150286414A1 (en) Scanning memory for de-duplication using rdma
CN104468150A (zh) 一种虚拟主机实现故障迁移的方法及虚拟主机业务装置
WO2021139264A1 (zh) 对象存储控制方法、装置、计算机设备及存储介质
US11994944B2 (en) Efficient networking for a distributed storage system
CN111225003B (zh) 一种nfs节点配置方法和装置
US20220141080A1 (en) Availability-enhancing gateways for network traffic in virtualized computing environments
EP3977707B1 (en) Hardware load balancer gateway on commodity switch hardware
US20240205292A1 (en) Data processing method and apparatus, computer device, and computer-readable storage medium
US11108686B1 (en) Port allocation at distributed network address translators
US11474857B1 (en) Accelerated migration of compute instances using offload cards
WO2022267909A1 (zh) 一种数据读写方法以及相关装置
CN113377280A (zh) 一种存储系统和请求处理方法以及交换机
US11397752B1 (en) In-memory ingestion for highly available distributed time-series databases
US10642788B1 (en) Sand timer algorithm for tracking in-flight data storage requests for data replication
CN115129779A (zh) 数据库的同步方法、装置及可读介质
WO2024093958A1 (zh) 一种存储池的访问方法以及装置
US20240037029A1 (en) Client allocation of memory across memory servers

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