CN107769956B - 计算系统和冗余资源连接结构 - Google Patents

计算系统和冗余资源连接结构 Download PDF

Info

Publication number
CN107769956B
CN107769956B CN201710580359.4A CN201710580359A CN107769956B CN 107769956 B CN107769956 B CN 107769956B CN 201710580359 A CN201710580359 A CN 201710580359A CN 107769956 B CN107769956 B CN 107769956B
Authority
CN
China
Prior art keywords
switch
directly connected
data storage
resource connection
computing resources
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201710580359.4A
Other languages
English (en)
Other versions
CN107769956A (zh
Inventor
古尼斯瓦·R·玛瑞潽蒂
斯蒂芬·G·费舍尔
平展
英迪拉·乔西
哈里·罗杰斯
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.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics 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 Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of CN107769956A publication Critical patent/CN107769956A/zh
Application granted granted Critical
Publication of CN107769956B publication Critical patent/CN107769956B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/15Interconnection of switching modules
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error 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/2002Error 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 interconnections or communication control functionality are redundant
    • G06F11/2007Error 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 interconnections or communication control functionality are redundant using redundant communication media
    • G06F11/201Error 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 interconnections or communication control functionality are redundant using redundant communication media between storage system components
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/06Management of faults, events, alarms or notifications
    • H04L41/0654Management of faults, events, alarms or notifications using network fault recovery
    • H04L41/0663Performing the actions predefined by failover planning, e.g. switching to standby network elements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error 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/202Error 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/2023Failover techniques
    • G06F11/2025Failover techniques using centralised failover control functionality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error 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/202Error 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/2023Failover techniques
    • G06F11/2028Failover techniques eliminating a faulty processor or activating a spare
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error 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/202Error 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/2023Failover techniques
    • G06F11/2033Failover techniques switching over of hardware resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error 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/202Error 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/2035Error 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 without idle spare hardware
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error 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/202Error 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/2046Error 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 where the redundant components share persistent storage
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error 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/2053Error 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 persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2089Redundant storage control functionality
    • G06F11/2092Techniques of failing over between control units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error 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/2053Error 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 persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2094Redundant storage or storage space
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4022Coupling between buses using switching circuits, e.g. switching matrix, connection or expansion network
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/10Packet switching elements characterised by the switching fabric construction
    • H04L49/101Packet switching elements characterised by the switching fabric construction using crossbar or matrix
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/55Prevention, detection or correction of errors
    • H04L49/552Prevention, detection or correction of errors by ensuring the integrity of packets received through redundant connections
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/55Prevention, detection or correction of errors
    • H04L49/557Error correction, e.g. fault recovery or fault tolerance
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Mathematical Physics (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Hardware Redundancy (AREA)
  • Computer And Data Communications (AREA)

Abstract

提供了一种计算系统和一种冗余资源连接结构。提供对计算资源的高可靠性访问的计算系统包括:多个接口;多个计算资源组,每个计算资源组包括多个计算资源;至少三个交换机,每个交换机经由主机链路连接至所述多个接口中对应的一个接口,并经由多个资源连接连接至所述多个计算资源组中对应的一个计算资源组,每个交换机配置为使得如果一个交换机故障,则通过交换机之间的多个交叉连接来将数据流量分配至剩余的交换机。

Description

计算系统和冗余资源连接结构
本申请要求于2016年8月19日在美国专利及商标局提交的第62/377,487 号美国临时专利申请“用于平衡的性能和高可靠性的自适应多路径结构”及于 2016年11月4日在美国专利及商标局提交的第15/244,438美国专利申请的优先权和权益,这些申请的全部公开内容通过引用包含于此。
技术领域
本发明的实施例的各方面涉及为计算机系统提供冗余的领域。
背景技术
在计算机系统领域中,对数据和其他计算资源的可靠的且高性能的访问对企业和日常生活的持续运作是重要的。术语“高可靠性”(HA)经常用于描述减少或消除单点故障的系统(例如,为系统提供冗余使得单个组件的故障不会导致整个系统的故障)。
受益于高可靠性的示例计算机系统包括诸如存储区域网络(SAN)系统的数据存储系统,所述数据存储系统可以为通过诸如局域网(LAN)的计算机网络或通过互联网存储和检索数据提供数据资源。
发明内容
本发明的实施例的各方面涉及通过使用自适应多路径结构向计算资源提供平衡性能和高可靠性。
根据本发明的一个实施例,一种提供对计算资源的高可靠性访问的计算系统可以包括:多个接口;多个计算资源组,每个计算资源组包括多个计算资源;以及至少三个交换机,每个交换机经由主机链路连接至所述多个接口中对应的一个接口并经由多个资源连接连接至所述多个计算资源组中对应的一个计算资源组,每个交换机被配置为使得如果一个交换机故障,则通过交换机之间的多个交叉连接来将数据流量分配至剩余的交换机。
所述至少三个交换机可以包括:第一交换机;第二交换机;以及第三交换机,经由第一交叉连接直接连接至第一交换机,并经由第二交叉连接直接连接至第二交换机。
计算系统还可以包括:第一服务器节点,经由第一主机链路结合至第一交换机,第一服务器节点包括所述多个接口中的第一接口;以及第二服务器节点,经由第二主机链路结合至第二交换机,第二服务器节点包括所述多个接口中的第二接口。
计算系统还可以包括经由第三主机链路结合至第三交换机的第三服务器节点。
计算系统还可以包括:第一辅助交换机,直接连接至第一服务器节点;第二辅助交换机,直接连接至第二服务器节点;第三辅助交换机,直接连接至第三服务器节点;第一交叉连接,将第一辅助交换机直接连接至第二辅助交换机;第二交叉连接,将第一辅助交换机直接连接至第三辅助交换机;第三交叉连接,将第二辅助交换机直接连接至第三辅助交换机。
所述多个计算资源组中的第一计算资源组可以包括第一数据存储装置组,第一数据存储装置组中的每个数据存储装置具有经由所述多个资源连接中的第一资源连接直接连接至第一交换机的第一端口和经由所述多个资源连接中的第二资源连接直接连接至第二交换机的第二端口,所述多个计算资源组中的第二计算资源组可以包括第二数据存储装置组,第二数据存储装置组中的每个数据存储装置具有经由所述多个资源连接中的第三资源连接直接连接至第一交换机的第三端口和经由所述多个资源连接中的第四资源连接直接连接至第二交换机的第四端口。
计算系统还可以包括第四交换机,所述第四交换机经由第三交叉连接直接连接至第一交换机并经由第四交叉连接直接连接至第二交换机。
计算系统还可以包括第三数据存储装置组,第三数据存储装置组中的每个数据存储装置具有经由第五资源连接直接连接到第三交换机的第五端口和经由第六资源连接直接连接到第四交换机的第六端口。
计算系统还可以包括经由第四主机链路直接连接至第四交换机的第四服务器节点。
计算系统还可以包括第四数据存储装置组,第四数据存储装置组中的每个数据存储装置具有经由第七资源连接直接连接至第三交换机的第七端口和经由第八资源连接直接连接至第四交换机的第八端口。
每个交换机可以配置为:检测另一交换机的故障;经由主机链路和与所述交换机对应的交叉连接来提供对第一数据存储装置组和第二数据存储装置组的访问。
计算系统可以包括N个接口,其中,N是整数,其中,带宽单位B可以是所述多个计算资源组中的一个计算资源以全带宽操作所需要的带宽的量,其中,B可以是正数;其中,每个资源连接可以具有至少1×B的带宽,其中,所述多个计算资源组中的每个计算资源组可以具有最多K个计算资源,其中, K可以是自然数,其中,所述多个接口中的每个接口的每条主机链路可以支持K×B的正常流量带宽以及大于等于K×B的最大流量带宽,其中,所述多个交叉连接中的每个交叉连接可以具有至少K×B/(N-1)的带宽。
交换机可以是外围组件互连高速交换机,主机链路和资源连接可以是外围组件互连高速总线链路。
根据本发明的一个实施例,一种计算系统包括至少两个高可靠性对,每个高可靠性对包括:第一交换机;第二交换机;第一接口,经由第一主机链路结合至第一交换机;第二接口,经由第二主机链路结合至第二交换机;第一计算资源组,经由第一资源连接连接至第一交换机并经由第二资源连接连接至第二交换机;第二计算资源组,经由第三资源连接连接至第一交换机并经由第四资源连接连接至第二交换机;多个第一交叉连接,每个第一交叉连接将第一交换机直接连接至其余的高可靠性对中的每个高可靠性对的每个交换机;多个第二交叉连接,每个第二交叉连接将第二交换机直接连接至其余的高可靠性对中的每个高可靠性对的每个交换机。
第一计算资源组可以包括第一数据存储装置组,第一数据存储装置组中的每个数据存储装置具有经由第一资源连接直接连接至第一交换机的第一端口和经由第二资源连接直接连接至第二交换机的第二端口,其中,第二计算资源组可以包括第二数据存储装置组,第二数据存储装置组中的每个数据存储装置具有经由第三资源连接直接连接至第一交换机的第三端口和经由第四资源连接直接连接至第二交换机的第四端口。
第一交换机可以配置为:检测第二交换机的故障;经由第一主机链路和第一交叉连接提供对第一数据存储装置组和第二数据存储装置组的访问。
计算系统可以包括N个服务器节点,其中,N是整数,其中,带宽单位 B可以是一个计算资源以全带宽操作所需要的带宽的量,其中,B可以是正数,其中,每个资源连接可以具有至少1×B的带宽;其中,每个计算资源组可以具有最多K个计算资源,其中,K是正数,其中,每个服务器节点可以支持K×B的正常带宽并可以支持大于等于K×B的最大带宽,其中,每个交叉连接可以具有至少K×B/(N-1)的带宽。
交换机可以是外围组件互连高速交换机,主机链路和资源连接可以是外围组件互连高速总线链路。
所述至少两个高可靠性对可以包括:第一高可靠性对;第二高可靠性对;第三高可靠性对;第四高可靠性对。
根据本发明的一个实施例,一种冗余资源连接结构包括:第一交换机;第二交换机;第三交换机,经由第一交叉连接直接连接至第三交换机并经由第二交叉连接直接连接至第二交换机;第一计算资源组,第一计算资源组中的每个计算资源具有经由第一资源连接直接连接到第一交换机的第一端口和经由第二资源连接直接连接至第二交换机的第二端口;第二计算资源组,第二计算资源组中的每个计算资源具有经由第三资源连接直接连接到第一交换机的第三端口和经由第四资源连接直接连接至第二交换机的第四端口。
第一交换机可以配置为:检测第二交换机的故障;经由第一交叉连接提供对第一计算资源组和第二计算资源组的访问。
冗余资源连接结构还可以包括第四交换机,所述第四交换机经由第三交叉连接直接连接至第一交换机并经由第四交叉连接直接连接至第二交换机。
冗余资源连接结构还可以包括第三计算资源组,所述第三计算资源组经由第五资源连接直接连接到第三交换机并经由第六资源连接直接连接至第四交换机。
冗余资源连接结构还可以包括第四计算资源组,所述第四组计算资源经由第七资源连接直接连接至第三交换机并经由第八资源连接直接连接至第四交换机。
附图说明
附图与说明书共同示出了本发明的示例性实施例,并与描述共同用于解释本发明的原理。
图1A是示出包括根据本发明的一个实施例的自适应多路径结构的数据存储系统的框图。
图1B是示出包括根据本发明的一个实施例的自适应多路径结构的数据存储系统的框图。
图2A是示出根据本发明的一个实施例的交换机故障和数据传输重新平衡的框图。
图2B是示出根据本发明的一个实施例的服务器节点故障和数据传输重新平衡的框图。
图3是根据本发明的一个实施例的还包括连接服务器节点的辅助结构的系统的框图。
图4A是示出根据本发明的一个实施例的包括两个服务器节点和一个数据存储装置组的小型高可靠性配置的框图。
图4B示出根据本发明的一个实施例的图4A中示出的配置的扩展以包括额外的数据存储装置组。
图4C示出根据本发明的一个实施例的图4A中示出的配置的扩展以包括额外的服务器节点。
图5是示出根据本发明的一个实施例的总吞吐量为192GB/s的具有经由八个交换机连接至四十八个数据存储装置的八个服务器节点的系统的框图。
具体实施方式
在以下的详细描述中,仅通过说明的方式示出和描述本发明的某些示例性实施例。如本领域技术人员应认识到的,发明可以以很多不同的形式实施并不应被理解为受限于在此阐述的实施例。在整个说明书中同样的附图标记指示同样的元件。
本发明的实施例的各方面总体涉及用于通过一组接口提供对计算资源的高可靠性访问的系统和方法,其中,置于接口和计算资源之间的自适应结构在故障事件中保持对计算资源的访问,并且在一些实施例中,在故障事件中保持对这些资源的全性能访问。
例如,提供对计算资源的高可靠性访问的数据存储计算系统包括:多个接口;多个计算资源组,多个计算资源组中的每个计算资源组包括多个计算资源;至少三个交换机,每个交换机经由主链路而连接至多个接口中对应的一个接口,并经由资源连接而连接至多个计算资源组中对应的一个计算资源组,每个交换机被配置为使得如果一个交换机故障,则数据流量通过交换机之间的多个交叉连接而分布至剩余的交换机。
更具体地,诸如存储区域网络(SAN)系统的数据存储系统可以包括连接至一个或更多个服务器节点的数据存储装置。例如,数据存储装置可以是通过诸如外围组件互连高速(PCIe)总线的总线连接至服务器节点的固态驱动器(SSD)或硬盘驱动器(HDD)。例如,每个服务器节点可以包括中央处理单元、存储器和网络接口以对存储在数据存储装置上的数据提供远程访问,其中,数据存储装置被映射到服务器节点。然而,仅使用单个服务器节点的网络存储系统可能无法提供“高可靠性”(HA),因为如果所述单个服务器节点故障(例如,如果网络接口、总线或CPU损坏),则将丢失对存储在数据存储装置中的数据的访问。
如此,本发明的实施例的一些方面涉及一种提供对计算资源的高可靠性访问的自适应结构。在一个实施例中,每个计算资源连接至多个交换机,每个交换机经由自适应结构的交叉连接而连接到至少一个其他交换机。每个交换机连接至用于与计算资源的用户进行通信的接口(例如,网络接口)。在接口故障或交换机故障的事件中,自适应结构通过交叉连接将数据重新路由至其他接口。
在一个实施例中,接口可以是主机服务器节点的组件,其中,服务器节点是包括处理器(CPU)和存储器的计算机系统。服务器节点可以通过存储在服务器节点的存储器中并且由服务器节点的处理器运行或执行的应用程序来向用户提供对与计算资源相关联的服务的访问。例如,计算资源可以是数据存储装置组,在这种情况下,应用程序可以是网络文件服务器、网络服务器和数据库服务器等。如另一示例,计算资源可以是提供低延迟缓存的动态存储器。又如另一示例,计算资源可以是图形处理单元(GPU),在这种情况下,应用程序可以是例如3D渲染引擎、机器学习训练平台(例如,用于训练神经网络)和密码货币矿工(cryptocurrency miners,例如比特币)等。
本发明的实施例的一些方面涉及为诸如数据存储装置的计算资源提供充足的带宽。当过多的数据存储装置连接至服务器节点时,服务器节点和数据存储装置之间可能没有足够的可用带宽以使得数据存储装置以全性能来操作。更具体地,在单个服务器节点系统中,如果八个SSD连接至PCIe交换机,其中,每个SSD能够使至PCIe交换机的4条通路链路(×4)连接发生饱和,如果该服务器节点到PCIe交换机具有32条通路链路,则仅八个SSD就足以使至该服务器节点的连接饱和。如果有任何额外的数据存储装置被添加到系统,由于服务器节点与PCIe交换机之间的连接是系统中的瓶颈,因此没有充足的带宽使全部的数据存储装置以全性能操作。在一些情况下,服务器节点和网络适配器之间的连接同样也可能是系统中的瓶颈。
一些数据存储装置具有两个连接端口以提供冗余。例如,具有双PCIe 端口的数据存储装置可以具有连接至第一服务器节点的第一端口和连接至第二服务器节点的第二端口。在此布置中,如果一个服务器节点故障,则数据存储装置通过另一服务器节点仍是可访问的。
然而,在此布置中,服务器节点的故障加剧了带宽的局限性。继续上面的示例,当两个服务器节点一起可以为所连接的数据存储装置提供充足的带宽时,如果一个服务器节点故障,则往返数据存储装置的全部流量由尚存的服务器节点处理,其可能没有充足的带宽来处理额外的流量。具体地,如果数据存储装置的带宽需求已经使至服务器节点的两条链路饱和,则一个服务器节点的故障导致大约50%的性能退化。
因此,本发明的一些实施例涉及经由多个服务器节点提供对数据存储装置的访问的系统和方法,其中,所述系统和方法能够在服务器节点的故障事件中保持数据存储装置的全性能潜力(不存在性能退化)。更具体地,本发明的实施例的各方面涉及一种连接的自适应多路径结构以经由多个交换机将计算资源(诸如多端口数据存储装置)与服务器节点连接,其中,多路径结构在系统故障的事件中为数据流量提供替代路径。本发明的实施例的各方面能够应用于各种数量的服务器节点和计算资源组(例如,数据存储装置)以获得具体期望的系统性能配置文件。本发明的实施例的各方面也允许计算资源 (例如,数据存储容量)和通用计算能力两者(分别通过添加更多的数据存储装置或更多的服务器节点)从初始配置缩放到完全配置,同时在节点故障的情况下保持指定的性能配置文件。
为方便起见,下面将针对固态驱动器来描述本发明的实施例,所述固态驱动器具有经由PCIe交换机和PCIe结构而连接至主机服务器节点的非易失性存储器高速(NVMe)接口。然而,本发明的实施例不限于此,所述结构的底层架构能够应用于诸如以太网、
Figure GDA0003321127520000071
(IB)、光纤通道(FC),小型计算机系统接口(SCSI)和串行连接SCSI(SAS)等的其他接口。此外,本发明的实施例也能够应用于为其他类型的资源(诸如,硬盘驱动器、磁带驱动器、诸如动态随机访问存储器(DRAM)的易失性存储器以及诸如向量处理器、图形处理单元(GPU)、数字信号处理器(DSP)和现场可编程门阵列(FPGA)的计算单元)提供高可靠性。
多路径结构的结构
下面将以数据存储系统的具体示例描述本发明的实施例的各方面,在所述数据存储系统中,计算资源是双端口数据存储装置组,连接和交换机是PCIe 连接和交换机,接口是网络接口。然而,本发明的实施例不限于此,并能够应用于其他类型的计算资源、互联协议和接口。
图1A是示出包括根据本发明的一个实施例的自适应多路径结构的数据存储系统100的框图。图1A的实施例包括将服务器节点20互连至双端口数据存储装置组30的结构10。结构10可以以多种方式实现,诸如印刷电路板上的描线(trace)、多条电线(例如,诸如带状电缆、迷你SAS HD电缆、OCuLink 电缆等的电缆)及其组合。结构10包括位于交换机40之间的交叉连接12AC、 12BC、12BD和12AD。除了在节点故障的情况下提供带宽平衡,交叉连接12AC、12BC、12BD和12AD还能够用于端点的重新分配和带宽平衡以对抗非平衡的节点CPU使用和输入/输出(I/O)负荷,并在数据存储装置组30之间提供对等通信(例如,在服务器节点20没有明显参与的情况下,在第一数据存储装置组30A和第三数据存储装置组30C之间传输直接存储器访问)。
每个双端口数据存储装置组包括一个或更多个数据存储装置32,其中每个双端口数据存储装置经由资源连接16连接至两个不同的交换机。如在此使用的,术语“交换机”指为连接至交换机以进行通信的装置提供多条通信路径的电子组件,其中,交换机对装置之间的流量进行路由,并在连接至交换机的通信装置之间建立连接。
如图1A所示,每个服务器节点20包括一个或更多个主机处理器24(例如,
Figure GDA0003321127520000081
处理器),其中,主机处理器24通过PCIe连接而连接至网络接口26(例如,以太网NIC)并且也通过主机链路14(例如,另一个PCIe 连接或多个PCIe连接)而连接至对应的交换机40。每个服务器节点20与另一个服务器节点20组成一对,其可以被称为服务器节点的高可靠性(HA) 对等(peer)。例如,服务器节点20A和20B是HA对等并且构成对22AB。同时,相互HA对等的对22通过结构10提供两条冗余路径以访问一个或更多个数据存储装置组30(例如,HA对22AB提供对数据存储装置组30A和30B的访问)。HA对等节点的其他对22提供通往其他数据存储装置组30的冗余路径(例如,HA对22CD提供对数据存储装置组30C和30D的访问)。
结构10也使多个HA对等的对22互连以在单个服务器节点故障的事件中为全部节点和数据存储装置32提供平衡带宽的连接性。在具有N个服务器节点20(或N个交换机40)的系统中,从一个交换机40到其他N-2个交换机40中的每个的额外的交叉连接带宽的数量是每个服务器节点20在正常的、无故障的操作模式下支持的带宽(“正常带宽”)的1/(N-1)。结果,由于一个节点故障而导致的带宽损失能够由剩余的N-1个节点来缓解。
更具体地,图1A示出了四个服务器节点20(N=4)的情况。为了方便起见,图1A以B为单位来描绘带宽,其中,将B定义为一个数据存储装置 32的带宽需求。在图1A中,每个数据存储装置组30包括六个数据存储装置 32。因此,每个数据存储装置组30需要6B带宽(每个数据存储装置32为 1B)。如此,在图1A示出的实施例中,四个服务器节点20为系统中的二十四个数据存储装置32提供总计24B的吞吐量(每个节点6B)。
注意的是,服务器节点20和其对应的交换机40之间的每个连接的实际带宽容量是8B,因此比每个数据存储装置组30所需要的6B带宽容量超出 2B。此外,在图1A的实施例中,主机处理器24和网络接口26之间的连接所具有的带宽至少与主机处理器24和交换机40之间的带宽(例如,8B)相等。
如此,在图1A中示出的实施例中,从每个节点到每个非HA对等节点的交叉连接带宽是6B/3=2B。例如,对应于第一服务器节点20A的第一交换机40A与第一服务器节点20A的非HA对等节点20C和20D的交换机40C 和40D之间的每个交叉连接12AC和12AD的交叉连接带宽是2B。同样地,对应于第二服务器节点20B的第二交换机40B与第二服务器节点20B的非HA对等节点20C和20D的交换机40C和40D之间的每个交叉连接12BC和 12BD的交叉连接带宽也是2B。如图1A所示,在交换机40之间形成交叉连接12。然而,本发明的实施例不限于此,如上所述,每个交叉连接12的最小带宽可以设定为由每个服务器节点20在正常的非故障操作模式下支持的带宽除以服务器数量N减1。在其他实施例中,系统被设计为容许多个服务器节点20故障,每个交叉连接12的最小带宽可设定为由每个服务器节点20 在正常的非故障操作模式下支持的带宽除以服务器数量N减去将容许的故障的数量。
图1B是示出包括根据本发明的一个实施例的自适应多路径结构的数据存储系统100的框图,其中,B=×4(例如,4通路(lane)PCIe链路的带宽)。在PCIe 3.0的情况下,×4链路提供大约4GB/s的最大带宽或吞吐量。同样的组件用与图1A中同样的附图标记标注,因此这里不重复对这些组件的描述。
在图1B中示出的示例中,每个节点具有64条PCIe 3.0通路的四个服务器节点20连接至二十四个双端口NVMe SSD,所述二十四个双端口NVM SSD布置成四组,每组六个双端口NVMe SSD。二十四个双端口NVMe SSD 中的每个具有两个端点(两个“SSD端点”),其中,每个端点可以被分配给任意一个服务器节点。例如,第一数据存储装置组30A中的SSD的每个端点可以被分配给第一服务器节点20A。使用PCIe 3.0,图1B中示出的系统可以实现96GB/s用户数据吞吐量(96条通路的PCIe 3.0带宽)和高可靠性(在单个服务器节点故障的事件中保持对全部SSD的全性能访问)的端到端系统性能配置文件。
在图1B的示例实施例中,当以全负荷操作时,NVMe SSD 中的每个以大约4GB/s传输数据,因此可以通过单个×4链路进行服务。此外,双端口 NVMe SSD中的两个端口中的每个端口提供×4链路。结果,NVMe SSD的两个端口中的任一个的故障仍允许数据存储装置以全性能操作。由于每个 NVMe SSD需要四条PCIe通路的带宽,因此每组六个双端口NVMe SSD需要6×4=×24或24条通路的带宽以保持所有的数据存储装置组30的全性能。
如图1B所示,数据存储装置组30连接至PCIe交换机40。每个交换机 40也通过PCIe连接而连接至对应的主机服务器节点20。在图1B中示出的实施例中,PCIe交换机和服务器节点20的主机处理器24之间存在×32链路。
在图1B示出的配置中,服务器节点20A和20B是HA对等节点,提供对十二个SSD 00-11(两组SSD 30A和30B)的双端口访问。类似地,服务器节点20C和20D是HA对等节点,提供对另外十二个SSD 12-23(两组SSD 30C和30D)的双端口访问。
除了交换机40和资源(数据存储装置32)之间的资源连接16之外,图 1B中示出的PCIe结构10也包括主机链路14,所述主机链路14从四个服务器节点20到交换机40使总计一百二十八条PCIe 3.0通路(每个节点32条通路)互连。每条主机链路14可以包括多个连接。例如,在双处理器服务器节点的情况下,来自每个服务器节点的32条通路可以包括连接至服务器节点的第一CPU插槽的16条通路和连接至服务器节点的第二CPU插槽的16条通路。此外,每个服务器节点20可以包括多条主机链路14以将服务器节点连接至多个交换机40。如图1B的实施例所示,资源连接16包括跨越二十四个双端口NVMe SSD的一百九十二条通路,其中,每个SSD具有×4通路的带宽(~4GB/s)的吞吐能力。如此,每个SSD具有其吞吐能力(每个SSD为×4 通路)两倍的端口连接性(每个SSD为2×4通路)。为了使二十四个驱动器实现每个SSD×4通路总计九十六条通路的总吞吐量,每个服务器节点20从其×32通路的吞吐能力里提供×24通路的带宽。
在一些情况下,双端口NVMe SSD的每个端口具有比SSD的总吞吐能力低的带宽。例如,一些双端口NVMe SSD仅具有两个×2端口,意味着每个端口仅支持×2通路。结果,假设SSD的最大吞吐量是×4通路,如果端口中的一个端口故障或者连接至端口中的一个端口的交换机故障,则该SSD仅具有×2通路的连接性(即,其吞吐能力的一半)。
为了在单个服务器节点故障的事件中支持96GB/s的可维持的带宽,结构 10的交叉连接12在节点20A和20C、节点20A和20D、节点20B和20C和节点20B和20D中的每组节点之间提供24GB/s/(N-1)=8GB/s的交叉连接带宽。
由PCIe交换机40提供的通路的最小数量取决于所连接的组件(即,两个数据存储装置组30(例如,第一PCIe交换机40A连接至第一数据存储装置组30A和第二数据存储装置组30B)、主机处理器24和结构10的交叉连接 12)的需求。在图1B中示出的示例中,每个数据存储装置组30需要24条通路,主机处理器24需要32条通路,至结构10的两个交叉连接12中的每个需要8条通路,即总计24+24+32+8+8=96条通路。如此,在图1B中示出的实施例中,每个PCIe交换机40是×96交换机或96通路交换机。然而,本发明的实施例不限于此,交换机可以具有比需求的数量多的通路以满足所连接的组件的需求(在此具体示例中,PCIe交换机可以具有多于96条通路)。
在节点故障的情况下重新平衡带宽
图2A是示出根据本发明的一个实施例的交换机故障以及数据传输流量重新平衡的框图。在交换机40故障的事件中,由于服务器节点和交换机之间不存在冗余连接,因此与交换机40关联的服务器节点20也将从系统的其他部分断开。因此,在本发明的一些实施例中,交换机40的故障也基本导致其关联的服务器节点的丢失。然而,本发明的实施例不限于此,在一些实施例中,服务器节点可以连接至多个交换机。
在图2A的示例中,连接至故障交换机40B的服务器节点20B变得从数据存储系统100断开,因此由交换机40B和服务器节点20B处理的工作负荷或数据流量在剩余的N-1个交换机40A、40C和40D以及N-1个服务器节点 20A、20C和20D之间分配。来自或去往结合到故障交换机或节点20B的数据存储装置组30的数据传输经过冗余连接的交换机40A而通过。这种工作负荷的重新平衡保持了系统中全部二十四个SSD的吞吐量(每个SSD为×4 链路)。
由于系统内置的容量过剩,因此来自和去往连接至故障交换机的驱动器组的数据传输的性能得以保持。具体地,带宽的一部分来自于与HA对的尚存成员直接连接的服务器节点,带宽的剩余部分由通过结构10连接的其他服务器节点(例如,20A、20C和20D)来提供。此外,剩余的N-1个服务器节点(例如,20A、20C和20D)在它们与它们各自的交换机(例如,40A、40C 和40D)的连接中具有充足的带宽以容纳额外的负荷。
在本发明的一些实施例中,自适应多路径结构10中的交换机40被编程为自动检测这样的节点故障,并进而自动将SSD端点重新分配至服务器节点 20,并且在尚存的服务器节点之间重新平衡带宽。换言之,交换机40可以保持与如何基于交换机的当前配置到达每个SSD有关的信息,在物理层和链路层处监测服务器节点20、数据存储装置组30和其他交换机40之间的连接的错误情况,并将那些错误报告给管理系统(例如,服务器节点20中的一个或其他专用管理处理器)。管理系统可以基于报告的错误确定链路或服务器节点是否已经故障,并可以重新配置交换机40以将SSD的SSD端点重新分配至服务器节点20中的可到达的节点。尽管图2A中示出的单个节点故障不存在带宽退化,但是节点之间的交叉连接12跨越一个额外的级别(level)的PCIe 交换机,因此经历额外的延迟。然而,与访问SSD或从SSD访问的数据的总体延迟相比,通过PCIe交换机的延迟通常是小的并且不明显的。
图2B是示出根据本发明的一个实施例的服务器节点故障和数据传输重新平衡的框图。参照图2B,在服务器节点20B故障但其对应的交换机40B 尚存的事件中,数据仍能够通过运行的交换机40B路由,但只能通过尚存的三个服务器节点20A、20C和20D访问。在此事件中,自适应多路径结构中的管理系统(例如,服务器节点20中的一个或其他专用的管理服务器)可以被编程为自动检测服务器节点20B的故障,并且像图2A的实施例中那样自动将SSD端点重新分配至尚存的端点。在本发明的其他实施例中,在交换机自身中(例如,通过集成在交换机40中的处理单元)实现错误的检测和交换机40的自动重新配置。
在本发明的一些实施例中,单个交换机可能无法提供充足的带宽以允许两个数据存储装置组30以全性能操作。例如,如果交换机40B故障,则到达数据存储装置组30A和30B的唯一路径是通过尚存的交换机40A。如果尚存的交换机40A具有比×96通路少的通路,数据存储装置组30A和30B将不具有足够带宽以全速操作。然而,如果交换机40B没有故障而仅是关联的服务器节点20B故障,则交换机40B能够参与将数据重新路由至尚存的服务器节点20A、20C和20D。在一些这样的实施例中,存在充足的带宽使全部数据存储装置组30继续以全性能操作。
节点间通信
在本发明的一些实施例中,可以包括辅助结构50以用于服务器节点20 之间的通信。图3是根据本发明的一个实施例的还包括连接到服务器节点20 的辅助结构50的系统的框图。辅助结构包括使辅助交换机54(例如,54A、54B、54C和54D)彼此连接的互连52(例如,52AB、52AC、52AD、52BC 和52BD),其中,每个辅助交换机54直接连接至一个对应的服务器节点20 (例如,辅助交换机54A直接连接至服务器节点20A)。与结构10类似,辅助结构50可以以多种方式实现,诸如印刷电路板上的描线、多条电线(例如,诸如带状电缆、迷你SAS HD电缆、OCuLink电缆等的电缆)及其组合。根据本发明的一个实施例,辅助结构50连接至服务器节点CPU非透明桥接 (NTB)端口。例如,辅助结构50在能够使用的服务器节点20之间提供低延迟内部通信,以使服务器节点20之间的元数据同步。
递增扩展结构
虽然图1A、图1B、图2A、图2B和图3示出了为四个数据存储装置组提供高可靠性和高性能访问的服务器节点20的两个对22的系统,但是本发明的实施例不限于此。
本发明的实施例包括与具体应用的工作负荷需求相符的数据存储装置、交换机和服务器节点的配置。
图4A是示出根据本发明的一个实施例的包括两个服务器节点20A和 20B以及一个数据存储装置组30A的小型高可靠性配置的框图。在单个数据存储装置组的数据存储容量对于当前工作负荷是充足的并且能够通过冗余服务器节点满足高可靠性的情况下,图4A的配置可以是有用处的。
参照图4A,单个数据存储装置组30A连接至第一交换机40A和第二交换机40B两者。与图1A的实施例类似,第一交换机40A连接至第一服务器节点20A,第二交换机40B连接至第二服务器节点20B,在第一服务器节点 20A或第二服务器节点20B故障的事件中,数据存储装置组30A经由尚存的节点保持为可访问的。
当数据存储需求增加时,可以向图4A中示出的系统添加额外的数据存储装置组。例如,当可以通过将额外的数据存储装置与第一交换机40A和第二交换机40B连接来添加一个额外的数据存储装置以达到与第一服务器节点 20A、第二服务器节点20B、第一交换机40A、第二交换机40B、第一数据存储装置组30A和第二数据存储装置组30B基本类似的配置,但是与其他交换机不存在内部连接时,如前所述,如果服务器节点20A和20B两者之一或者交换机40A和40B两者之一故障,则第一数据存储装置组30A和第二数据存储装置组30B保持为可访问的。
图4B示出了根据本发明的一个实施例的图4A中示出的配置的扩展以包括额外的数据存储装置组。如图4B所示,第二数据存储装置组结合到第一交换机和第二交换机。图4B的配置还包括以第三交换机40C和第四交换机40D 代替额外服务器节点的形式的额外互连。第三数据存储装置组30C结合到第三交换机40C和第四交换机40D,第四数据存储装置组30D也结合到第三交换机40C和第四交换机40D。交叉连接12AC和12BC将第三交换机40C连接至第一交换机40A和第二交换机40B,交叉连接12AD和12BD将第四交换机40D连接到第一交换机40A和第二交换机40B。结果,第一服务器节点 20A和第二服务器节点20B能够经由第三交换机40C和第四交换机40D访问第三数据存储装置组30C和第四数据存储装置组30D。
在图4B示出的配置中,在服务器节点20A和20B中的一个故障或四个交换机40A、40B、40C和40D中的任一个故障的事件中,所有的数据存储装置保持为可访问的。然而,第三数据存储装置组30C和第四数据存储装置组30D的数据吞吐性能受限于交叉连接12的带宽,也受限于服务器节点20 和其对应的交换机40之间的主机链路14。具体地,在图4B的布置中,两个服务器节点20为所有四个数据存储装置组30提供总计16B的带宽(从每个服务器节点20提供8B),其意味着每个数据存储装置组4B,这与仅经由交叉连接12AC、12AD、12BC和12BD连接的数据存储装置组30C和30D可利用的最大带宽相对应(换言之,每个交叉连接2B,四个交叉连接提供总计 8B,所述8B被两组驱动器共享,每组驱动器4B)。此外,任一个服务器节点或任一个交换机的故障也将进一步影响系统的数据吞吐量。如此,图4B中示出的配置更适用于,例如,充足的带宽没有总存储容量重要的情况。
如果需要额外的带宽,则图4B的配置可被进一步扩展以将服务器节点连接至第三交换机40C和第四交换机40D,其导致与图1B中所见的基本相同的配置。如此,本发明的实施例允许系统根据需要递增扩展,以满足其用户不断增长的需求。
在本发明的其他实施例中,用户要求的工作负荷可能更偏向于计算密集型而非数据密集型。图4C示出根据本发明的一个实施例的图4A中示出的配置的扩展以包括额外的服务器节点。
从图4A中示出的两个服务器节点和一个具有六个数据存储装置的数据存储装置组30A的基础配置开始,可以添加第三服务器节点20C以及经由交叉连接12AC和12BC连接到第一交换机40A和第二交换机40B的第三交换机40C。可选择地,第三服务器节点20C可以经由替代额外交换机的无源互连板而连接至第一交换机40A和第二交换机40B(例如,服务器节点20C与交换机40A和40B之间的有效直接连接)。这能够在保持对相同组数据存储装置的访问的同时提高系统的计算能力。如果计算需求进一步增加,则第四节点20D可以通过第四交换机40D或经由无源互连板连接到第一交换机40A 和第二交换机40B。
这里的使用实例可以是:如果在两个服务器节点20A和20B上运行的软件栈是影响数据存储装置32达到全带宽的瓶颈,则在这种情况下,增加更多的服务器节点来提供更多的服务器计算能力。如果需要额外的存储器,则也可以用与上面相对于图4B示出的方式相似的方式逐步增加额外的数据存储装置组以达到,例如,如图1B所示的四个服务器节点加上二十四个数据存储装置的配置。
为方便起见,上面在具有至多四个交换机的配置的语境中描述了本发明的各方面实施例。然而,本发明的实施例不限于此。例如,本发明的一些实施例可以包括多于四个交换机。
使用类似方式,根据本发明的实施例的包括自适应多路径结构的数据存储系统100的变型可以包括:例如,总吞吐量为144GB/s的经由六个交换机连接至三十六个数据存储装置的六个服务器节点。如另一示例,图5是示出根据本发明的一个实施例的总吞吐量为192GB/s(基于上面关于每个数据存储装置具有约4GB/s吞吐量的假设)的系统的框图,该系统具有经由八个交换机(40A、40B、40C、40D、40E、40F、40G和40H)连接至四十八个数据存储装置的八个服务器节点(20A、20B、20C、20D、20E、20F、20G和 20H)。
如此,根据本发明的实施例的自适应多路径结构构架能够使用一组服务器节点和一组高性能多端口NVMe SSD来实现平衡的且可配置的端到端系统性能配置文件。所述性能在服务器节点和端点之间是平衡的,在单个节点故障的情况下,所述性能可以维持并平衡。
数据存储系统可以通过以太网连接来提供例如存储区域网络(SAN),多路径结构能够通过将底层驱动器(underlying drive)之间的性能与服务器节点相匹配的以太网来实现网络存储性能。
例如,系统性能配置文件可以是100GB/s用户数据吞吐量、服务器节点之间的低延迟内部通信、对端点上数据的高可靠性访问中的一个或更多个的组合。
本发明的实施例能够提供自适应多路径结构架构,该架构将一组服务器节点(PCIe根复合体)与一组多端口SSD(PCIe端点)互连;在服务器节点的数量、SSD的数量和端到端性能规范方面提供灵活性;在服务器节点和SSD 之间支持端到端负荷平衡;经由SSD的多端口提供从一对服务器节点(HA 对等)到一组SSD的冗余访问;在多对HA对等节点之间提供交叉连接带宽以允许在故障恢复和负荷平衡场景中使所有服务器节点之间的带宽重新平衡;能够通过在所有尚存的节点之间重新平衡带宽来保持单节点故障而不导致端到端系统性能的任何退化;并具有自动故障检测能力,其进而触发SSD端点到服务器节点的重新分配以及带宽的重新平衡。
本发明的实施例的各方面也使能以下能力:以灵活和可扩展的方式将一组PCIe根复合体(诸如服务器节点)与一组多端口PCIe端点(诸如双端口NVMe SSD)互连的能力;在单个根复合体故障的事件中继续访问全部PCIe 端点同时限制性能退化的能力;使带宽在根复合体和端点之间的分配平衡的能力;在故障恢复或负荷平衡场景中将PCIe端点动态地重新分配给根复合体的能力;在端点之间使能对等数据传输而不在主机根复合体上产生任何开销的能力;以及在HA对等服务器节点之间使能低延迟高吞吐量通信的能力。
虽然已经结合某些示例性实施例描述了本发明,但是将理解的是本发明不受限于公开的实施例,而是相反,本发明意图覆盖包括在所附权利要求及其等同物的精神和范围内的各种修改和等同布置。
例如,虽然上面关于如具有经由PCIe交换机连接至服务器节点的双PCIe 端口的固态驱动器的计算资源描述了本发明的实施例,但是本发明的实施例不限于此。例如,在本发明的一些实施例中,固态驱动器可以具有多于两个端口,但取而代之的是也可以包括具有各种数量的端点端口(例如大于等于两个)的SSD的使用。此外,在本发明的一些实施例中,服务器节点可以通过多个端口连接至结构。例如,每个服务器节点可以通过多条主机链路连接至多于一个交换机,从而在主机链路故障或交换机故障的事件中在服务器节点和计算资源之间提供冗余连接。根据主机链路和交换机的带宽,即使在故障条件下,这些冗余连接也可以允许服务器节点以全带宽操作。
根据一些实施例,固态驱动器可以使用诸如以太网、
Figure GDA0003321127520000171
(IB)、光纤通道(FC)和串行连接SCSI(SAS)等的不同接口。例如,在以太网接口的情况下,可以用网络(以太网)交换机来替代PCIe交换机。
根据一些实施例,使用自适应多路径结构连接的资源是其他类型计算资源,诸如硬盘驱动器、磁带驱动器、诸如动态随机存取存储器(DRAM)的易失性存储器以及诸如矢量处理器、图形处理单元(GPU)、数字信号处理器 (DSP)和现场可编程门阵列(FPGA)的计算单元。
在本发明的其他实施例中,每个单独的计算资源不需要具有多个端口。例如,每组计算资源可以包括向每个独立的计算资源提供链路和向两个连接的交换机40提供链路的适配器或交换机。如更具体的示例,每个数据存储装置32可以是单端口数据存储装置,其中,每个数据存储装置32连接至与数据存储装置组30关联的适配器。所述适配器转而也可以连接至两个交换机 40。以此方式,即使每个单独的数据存储装置是单端口装置,数据存储装置组30也仍连接至多个交换机40。如上所述,此技术也可以应用到其他类型的计算资源。
虽然为方便起见,在示出的实施例中接口的带宽相同(例如,每个数据存储装置组为6B,每个服务器节点和对应的交换机之间的连接为8B、交换机之间的每个交叉连接为2B),但是本发明的实施例不限于此,本发明的实施例也包括具有提供不同数量的带宽(例如,与接口关联的计算资源的吞吐量对应的带宽)的接口的实施例。在本发明的被设计为在单个服务器节点故障的事件中保持对连接至自适应多路径结构的资源的全性能访问的一些实施例中,交叉连接的总带宽(或“交叉连接带宽”)足以至少等于由单个节点正常提供的带宽。虽然这里示出了本发明的一些实施例,所述实施例将全部的交叉连接描述为具有相同带宽并连接至位于HA对外部的每个交换机,但是本发明的实施例不限于此。例如,在一些实施例中,交叉连接具有不同的带宽,在一些实施例中,交叉连接被连接至少于所有的其他交换机。
虽然为方便起见,示出了具有至多八个主机的实施例,但是本发明的实施例不限于此,可以用不同数量的主机来实现类似的构思。
类似地,本发明的实施例不限于恰好六个数据存储装置的组,而是也包括每组内具有变化数量的SSD的实施例(例如,每组内相同的数量或每组内变化的数量)。
本发明的实施例的一些方面使用结构故障检测和重新配置能力来与存储管理工具通信以改善存储基础设施管理。

Claims (22)

1.一种计算系统,所述计算系统提供对计算资源的高可靠性访问,所述计算系统包括:
多个接口;
多个计算资源组,每个计算资源组包括多个计算资源;
至少三个交换机,每个交换机经由主机链路连接至所述多个接口中对应的一个接口,并经由多个资源连接直接连接至所述多个计算资源组中对应的多个计算资源组,每个交换机被配置为使得如果一个交换机故障,则通过交换机之间的多个交叉连接来将数据流量分配至剩余的交换机,
其中,所述计算系统包括N个接口,其中,N是整数,
其中,带宽单位B是所述多个计算资源组中的一个计算资源以全带宽操作所需要的带宽的量,其中,B是正数,
其中,每个资源连接具有至少1×B的带宽,
其中,每个计算资源组具有最多K个计算资源,其中,K是整数,
其中,所述多个接口中的每个接口的每条主机链路支持K×B的正常流量带宽以及大于或等于K×B的最大流量带宽,并且
其中,所述多个交叉连接中的每个交叉连接具有至少K×B/(N-1)的带宽,
其中,所述多个接口被包括在多个服务器节点中。
2.如权利要求1所述的计算系统,其中,所述至少三个交换机包括:
第一交换机;
第二交换机;
第三交换机,经由第一交叉连接直接连接至第一交换机,并经由第二交叉连接直接连接至第二交换机。
3.如权利要求2所述的计算系统,所述计算系统还包括所述多个服务器节点,所述多个服务器节点包括:
第一服务器节点,经由第一主机链路结合至第一交换机,第一服务器节点包括所述多个接口中的第一接口;
第二服务器节点,经由第二主机链路结合至第二交换机,第二服务器节点包括所述多个接口中的第二接口。
4.如权利要求3所述的计算系统,所述计算系统还包括经由第三主机链路结合至第三交换机的第三服务器节点。
5.如权利要求4所述的计算系统,所述计算系统还包括:
第一辅助交换机,直接连接至第一服务器节点;
第二辅助交换机,直接连接至第二服务器节点;
第三辅助交换机,直接连接至第三服务器节点;
第一互连,将第一辅助交换机直接连接至第二辅助交换机;
第二互连,将第一辅助交换机直接连接至第三辅助交换机;
第三互连,将第二辅助交换机直接连接至第三辅助交换机。
6.如权利要求3所述的计算系统,其中,所述多个计算资源组中的第一计算资源组包括第一数据存储装置组,第一数据存储装置组中的每个数据存储装置具有经由所述多个资源连接中的第一资源连接直接连接至第一交换机的第一端口和经由所述多个资源连接中的第二资源连接直接连接至第二交换机的第二端口,
其中,所述多个计算资源组中的第二计算资源组包括第二数据存储装置组,第二数据存储装置组中的每个数据存储装置具有经由所述多个资源连接中的第三资源连接直接连接至第一交换机的第一端口和经由所述多个资源连接中的第四资源连接直接连接至第二交换机的第二端口。
7.如权利要求6所述的计算系统,所述计算系统还包括第四交换机,所述第四交换机经由第三交叉连接直接连接至第一交换机并经由第四交叉连接直接连接至第二交换机。
8.如权利要求7所述的计算系统,所述计算系统还包括第三数据存储装置组,第三数据存储装置组中的每个数据存储装置具有经由第五资源连接直接连接至第三交换机的第一端口和经由第六资源连接直接连接至第四交换机的第二端口。
9.如权利要求8所述的计算系统,所述计算系统还包括经由第四主机链路直接连接至第四交换机的第四服务器节点。
10.如权利要求9所述的计算系统,所述计算系统还包括第四数据存储装置组,第四数据存储装置组中的每个数据存储装置具有经由第七资源连接直接连接至第三交换机的第一端口和经由第八资源连接直接连接至第四交换机的第二端口。
11.如权利要求6所述的计算系统,其中,每个交换机配置为:
检测另一个交换机的故障;
经由主机链路和与所述交换机对应的交叉连接来提供对第一数据存储装置组和第二数据存储装置组的访问。
12.如权利要求1所述的计算系统,其中,交换机是外围组件互连高速交换机,
其中,主机链路和资源连接是外围组件互连高速总线链路。
13.一种计算系统,所述计算系统包括至少两个高可靠性对,每个高可靠性对包括:
第一交换机;
第二交换机;
第一接口,经由第一主机链路结合至第一交换机;
第二接口,经由第二主机链路结合至第二交换机;
第一计算资源组,经由第一资源连接直接连接至第一交换机并经由第二资源连接直接连接至第二交换机;
第二计算资源组,经由第三资源连接直接连接至第一交换机并经由第四资源连接直接连接至第二交换机;
多个第一交叉连接,每个第一交叉连接将第一交换机直接连接至其余的高可靠性对中的每个高可靠性对的每个交换机;
多个第二交叉连接,每个第二交叉连接将第二交换机直接连接至其余的高可靠性对中的每个高可靠性对的每个交换机,
其中,所述计算系统包括N个服务器节点,其中,N是整数,
其中,带宽单位B是一个计算资源以全带宽操作所需要的带宽的量,其中,B是正数,
其中,每个资源连接具有至少1×B的带宽,
其中,每个计算资源组具有最多K个计算资源,其中,K是整数,
其中,每个服务器节点支持K×B的正常带宽并支持大于或等于K×B的最大带宽,并且
其中,每个交叉连接具有至少K×B/(N-1)的带宽,
其中,所述N个服务器节点中的第一服务器节点包括第一接口,所述N个服务器节点中的第二服务器节点包括第二接口。
14.如权利要求13所述的计算系统,其中,第一计算资源组包括第一数据存储装置组,第一数据存储装置组中的每个数据存储装置具有经由第一资源连接直接连接至第一交换机的第一端口和经由第二资源连接直接连接至第二交换机的第二端口,
其中,第二计算资源组包括第二数据存储装置组,第二数据存储装置组中的每个数据存储装置具有经由第三资源连接直接连接至第一交换机的第一端口和经由第四资源连接直接连接至第二交换机的第二端口。
15.如权利要求14所述的计算系统,其中,第一交换机配置为:
检测第二交换机的故障;
经由第一主机链路和第一交叉连接提供对第一数据存储装置组和第二数据存储装置组的访问。
16.如权利要求13所述的计算系统,其中,交换机是外围组件互连高速交换机,
其中,主机链路和资源连接是外围组件互连高速总线链路。
17.如权利要求13所述的计算系统,其中,所述至少两个高可靠性对包括:
第一高可靠性对;
第二高可靠性对;
第三高可靠性对;
第四高可靠性对。
18.一种冗余资源连接结构,所述冗余资源连接结构包括:
第一交换机;
第二交换机;
第三交换机,经由第一交叉连接直接连接至第一交换机,并经由第二交叉连接直接连接至第二交换机;
第一计算资源组,第一计算资源组中的每个计算资源具有经由第一资源连接直接连接至第一交换机的第一端口和经由第二资源连接直接连接至第二交换机的第二端口;
第二计算资源组,第二计算资源组中的每个计算资源具有经由第三资源连接直接连接至第一交换机的第一端口和经由第四资源连接直接连接至第二交换机的第二端口,
其中,所述冗余资源连接结构还包括N个接口,其中,N是整数,每个交换机经由主机链路连接至所述N个接口中对应的一个接口,
其中,带宽单位B是一个计算资源以全带宽操作所需要的带宽的量,其中,B是正数,
其中,每个资源连接具有至少1×B的带宽,
其中,每个计算资源组具有最多K个计算资源,其中,K是整数,
其中,所述N个接口中的每个接口的每条主机链路支持K×B的正常流量带宽以及大于或等于K×B的最大流量带宽,并且
其中,第一交叉连接和第二交叉连接各自具有至少K×B/(N-1)的带宽。
19.如权利要求18所述的冗余资源连接结构,其中,第一交换机配置为:
检测第二交换机的故障;
经由第一交叉连接提供对第一计算资源组和第二计算资源组的访问。
20.如权利要求18所述的冗余资源连接结构,所述冗余资源连接结构还包括第四交换机,所述第四交换机经由第三交叉连接直接连接至第一交换机并经由第四交叉连接直接连接至第二交换机。
21.如权利要求20所述的冗余资源连接结构,所述冗余资源连接结构还包括第三计算资源组,所述第三计算资源组经由第五资源连接直接连接至第三交换机并经由第六资源连接直接连接至第四交换机。
22.如权利要求21所述的冗余资源连接结构,所述冗余资源连接结构还包括第四计算资源组,所述第四计算资源组经由第七资源连接直接连接至第三交换机并经由第八资源连接直接连接至第四交换机。
CN201710580359.4A 2016-08-19 2017-07-17 计算系统和冗余资源连接结构 Active CN107769956B (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201662377487P 2016-08-19 2016-08-19
US62/377,487 2016-08-19
US15/344,438 2016-11-04
US15/344,438 US10365981B2 (en) 2016-08-19 2016-11-04 Adaptive multipath fabric for balanced performance and high availability

Publications (2)

Publication Number Publication Date
CN107769956A CN107769956A (zh) 2018-03-06
CN107769956B true CN107769956B (zh) 2022-02-18

Family

ID=61191712

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710580359.4A Active CN107769956B (zh) 2016-08-19 2017-07-17 计算系统和冗余资源连接结构

Country Status (5)

Country Link
US (3) US10365981B2 (zh)
JP (1) JP7043201B2 (zh)
KR (1) KR102191242B1 (zh)
CN (1) CN107769956B (zh)
TW (1) TWI704459B (zh)

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11983138B2 (en) 2015-07-26 2024-05-14 Samsung Electronics Co., Ltd. Self-configuring SSD multi-protocol support in host-less environment
US10346041B2 (en) 2016-09-14 2019-07-09 Samsung Electronics Co., Ltd. Method for using BMC as proxy NVMeoF discovery controller to provide NVM subsystems to host
US11461258B2 (en) 2016-09-14 2022-10-04 Samsung Electronics Co., Ltd. Self-configuring baseboard management controller (BMC)
US20190109720A1 (en) 2016-07-26 2019-04-11 Samsung Electronics Co., Ltd. Modular system (switch boards and mid-plane) for supporting 50g or 100g ethernet speeds of fpga+ssd
US10210123B2 (en) 2016-07-26 2019-02-19 Samsung Electronics Co., Ltd. System and method for supporting multi-path and/or multi-mode NMVe over fabrics devices
US11144496B2 (en) 2016-07-26 2021-10-12 Samsung Electronics Co., Ltd. Self-configuring SSD multi-protocol support in host-less environment
US10372659B2 (en) 2016-07-26 2019-08-06 Samsung Electronics Co., Ltd. Multi-mode NMVE over fabrics devices
US10365981B2 (en) * 2016-08-19 2019-07-30 Samsung Electronics Co., Ltd. Adaptive multipath fabric for balanced performance and high availability
JP6854473B2 (ja) * 2017-04-17 2021-04-07 セレブラス システムズ インク. 加速化ディープラーニングのデータフロー・トリガー・タスク
US11102294B2 (en) * 2017-06-09 2021-08-24 Samsung Electronics Co., Ltd. System and method for supporting energy and time efficient content distribution and delivery
US10476816B2 (en) 2017-09-15 2019-11-12 Facebook, Inc. Lite network switch architecture
US10235625B1 (en) 2018-02-09 2019-03-19 Capital One Services, Llc Automatically scaling neural networks based on load
TWI679861B (zh) 2018-09-06 2019-12-11 財團法人工業技術研究院 控制器、調整封包通信規則的方法及網路通信系統
CN109408451B (zh) * 2018-11-05 2022-06-14 英业达科技有限公司 一种图形处理器系统
US11513699B2 (en) * 2019-08-01 2022-11-29 EMP IP Holding Company, LLC System and method for caching data in persistent memory of a non-volatile memory express storage array enclosure
US11515538B2 (en) * 2019-10-11 2022-11-29 GM Global Technology Operations LLC In-situ polymerization to protect lithium metal electrodes
TWI719741B (zh) * 2019-12-04 2021-02-21 財團法人工業技術研究院 改變冗餘處理節點的處理器及其方法
WO2021189332A1 (zh) * 2020-03-25 2021-09-30 华为技术有限公司 一种通信方法及相关装置
CN111639008B (zh) * 2020-05-29 2023-08-25 杭州海康威视系统技术有限公司 基于双端口ssd的文件系统状态监测方法、装置及电子设备
US11720413B2 (en) * 2020-06-08 2023-08-08 Samsung Electronics Co., Ltd. Systems and methods for virtualizing fabric-attached storage devices
TWI802268B (zh) * 2022-02-14 2023-05-11 神雲科技股份有限公司 伺服系統

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6330642B1 (en) * 2000-06-29 2001-12-11 Bull Hn Informatin Systems Inc. Three interconnected raid disk controller data processing system architecture
US7307948B2 (en) * 2002-10-21 2007-12-11 Emulex Design & Manufacturing Corporation System with multiple path fail over, fail back and load balancing
US9003090B1 (en) * 2014-03-25 2015-04-07 DSSD, Inc. PCI express fabric routing for a fully-connected mesh topology
CN104965677A (zh) * 2015-06-26 2015-10-07 北京百度网讯科技有限公司 存储系统

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5922077A (en) * 1996-11-14 1999-07-13 Data General Corporation Fail-over switching system
US6219753B1 (en) 1999-06-04 2001-04-17 International Business Machines Corporation Fiber channel topological structure and method including structure and method for raid devices and controllers
US6658478B1 (en) * 2000-08-04 2003-12-02 3Pardata, Inc. Data storage system
US6952734B1 (en) * 2000-08-21 2005-10-04 Hewlett-Packard Development Company, L.P. Method for recovery of paths between storage area network nodes with probationary period and desperation repair
US7505401B2 (en) * 2005-01-31 2009-03-17 International Business Machines Corporation Method, apparatus and program storage device for providing mutual failover and load-balancing between interfaces in a network
JP3890063B2 (ja) * 2005-03-03 2007-03-07 シャープ株式会社 排水処理装置および排水処理方法
US7903556B2 (en) * 2005-11-03 2011-03-08 Hewlett-Packard Development Company, L.P. Method of controlling data transfers between nodes in a computer system
US8296534B1 (en) 2007-06-29 2012-10-23 Emc Corporation Techniques for using flash-based memory in recovery processing
JP5127491B2 (ja) * 2008-02-08 2013-01-23 株式会社日立製作所 ストレージサブシステム及びこれの制御方法
US8296782B2 (en) 2008-04-22 2012-10-23 Lsi Corporation System eliminating hardware duplication during application testing of an internal storage array across different operating systems
CN102165427A (zh) * 2008-09-25 2011-08-24 Lsi公司 在外部存储阵列中验证带外管理应用的方法和/或装置
CN101727399B (zh) * 2008-10-30 2012-10-10 鸿富锦精密工业(深圳)有限公司 存储装置及使用该存储装置的数据交换系统
US9047351B2 (en) 2010-04-12 2015-06-02 Sandisk Enterprise Ip Llc Cluster of processing nodes with distributed global flash memory using commodity server technology
US8688926B2 (en) 2010-10-10 2014-04-01 Liqid Inc. Systems and methods for optimizing data storage among a plurality of solid state memory subsystems
US8468385B1 (en) * 2010-10-27 2013-06-18 Netapp, Inc. Method and system for handling error events
US8521941B2 (en) 2010-12-28 2013-08-27 Plx Technology, Inc. Multi-root sharing of single-root input/output virtualization
CN102394923A (zh) * 2011-10-27 2012-03-28 周诗琦 一种基于n×n陈列结构的云系统平台
US9158540B1 (en) 2011-11-14 2015-10-13 Emc Corporation Method and apparatus for offloading compute resources to a flash co-processing appliance
US9110813B2 (en) 2013-02-14 2015-08-18 Avago Technologies General Ip (Singapore) Pte Ltd Cache load balancing in storage controllers
US9785520B2 (en) * 2014-04-04 2017-10-10 Hitachi, Ltd. Computer system, storage apparatus and control method
US9921989B2 (en) 2014-07-14 2018-03-20 Intel Corporation Method, apparatus and system for modular on-die coherent interconnect for packetized communication
US9507678B2 (en) * 2014-11-13 2016-11-29 Netapp, Inc. Non-disruptive controller replacement in a cross-cluster redundancy configuration
US10390114B2 (en) * 2016-07-22 2019-08-20 Intel Corporation Memory sharing for physical accelerator resources in a data center
US10365981B2 (en) * 2016-08-19 2019-07-30 Samsung Electronics Co., Ltd. Adaptive multipath fabric for balanced performance and high availability

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6330642B1 (en) * 2000-06-29 2001-12-11 Bull Hn Informatin Systems Inc. Three interconnected raid disk controller data processing system architecture
US7307948B2 (en) * 2002-10-21 2007-12-11 Emulex Design & Manufacturing Corporation System with multiple path fail over, fail back and load balancing
US9003090B1 (en) * 2014-03-25 2015-04-07 DSSD, Inc. PCI express fabric routing for a fully-connected mesh topology
CN104965677A (zh) * 2015-06-26 2015-10-07 北京百度网讯科技有限公司 存储系统

Also Published As

Publication number Publication date
US20190294513A1 (en) 2019-09-26
US11693747B2 (en) 2023-07-04
TWI704459B (zh) 2020-09-11
CN107769956A (zh) 2018-03-06
JP2018029337A (ja) 2018-02-22
US20180052745A1 (en) 2018-02-22
KR102191242B1 (ko) 2020-12-15
US20230325288A1 (en) 2023-10-12
US10365981B2 (en) 2019-07-30
KR20180020873A (ko) 2018-02-28
TW201807581A (zh) 2018-03-01
JP7043201B2 (ja) 2022-03-29

Similar Documents

Publication Publication Date Title
CN107769956B (zh) 计算系统和冗余资源连接结构
US7676625B2 (en) Cross-coupled peripheral component interconnect express switch
JP5176039B2 (ja) 冗長ストレージサブシステム間におけるsasraidコントローラデバイスチャネルの接続のためのシステム、及び方法
KR101091360B1 (ko) 토러스 네트워크를 가지는 병렬 컴퓨터 시스템 상의 오류 복구
US7356728B2 (en) Redundant cluster network
US9871704B2 (en) High-availability computer system, working method and the use thereof
US8788753B2 (en) Systems configured for improved storage system communication for N-way interconnectivity
WO2017167106A1 (zh) 存储系统
US11537443B2 (en) Reconfigurable computing pods using optical networks
US11451889B2 (en) Reconfigurable computing pods using optical networks with one-to-many optical switches
US7373546B2 (en) Cluster network with redundant communication paths
US11341073B2 (en) Redundant paths to single port storage devices
US20050050243A1 (en) Modified core-edge topology for a fibre channel network
US20030061326A1 (en) Managing one or more domains in a system

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant