KR20180020873A - 고 가용성 및 균등한 성능을 위한 적응적 다중 경로 패브릭 - Google Patents

고 가용성 및 균등한 성능을 위한 적응적 다중 경로 패브릭 Download PDF

Info

Publication number
KR20180020873A
KR20180020873A KR1020170071853A KR20170071853A KR20180020873A KR 20180020873 A KR20180020873 A KR 20180020873A KR 1020170071853 A KR1020170071853 A KR 1020170071853A KR 20170071853 A KR20170071853 A KR 20170071853A KR 20180020873 A KR20180020873 A KR 20180020873A
Authority
KR
South Korea
Prior art keywords
switch
data storage
resource
directly connected
connection
Prior art date
Application number
KR1020170071853A
Other languages
English (en)
Other versions
KR102191242B1 (ko
Inventor
구네스와라 알. 마리푸디
스테판 쥐. 피스쳐
잔 핑
인디라 조쉬
해리 로저스
Original Assignee
삼성전자주식회사
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 삼성전자주식회사 filed Critical 삼성전자주식회사
Publication of KR20180020873A publication Critical patent/KR20180020873A/ko
Application granted granted Critical
Publication of KR102191242B1 publication Critical patent/KR102191242B1/ko

Links

Images

Classifications

    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/15Interconnection of switching modules
    • 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/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
    • 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)
  • Hardware Redundancy (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Computer And Data Communications (AREA)

Abstract

본 발명의 실시 예에 따른 컴퓨팅 자원들로의 고가용성 액세스를 제공하는 컴퓨팅 시스템은 복수의 인터페이스들, 복수의 컴퓨팅 자원 세트들, 및 적어도 3개의 스위치들을 포함하고, 상기 복수의 컴퓨팅 자원 세트들 각각은 복수의 컴퓨팅 자원들을 포함하고, 상기 적어도 3개의 스위치들 각각은 호스트 링크를 통해 상기 인터페이스들 중 대응하는 하나와 연결되고, 복수의 자원 연결들을 통해 상기 복수의 컴퓨팅 자원 세트들 중 대응하는 하나와 연결되고, 상기 스위치들 각각은 상기 스위치들 중 하나가 고장인 경우, 상기 스위치들 사이의 복수의 교차-연결들을 통해 상기 스위치들 중 남은 것들로 데이터 트래픽이 분산되도록 구성된다.

Description

고 가용성 및 균등한 성능을 위한 적응적 다중 경로 패브릭{ADAPTIVE MULTIPATH FABRIC FOR BALANCED PERFORMANCE AND HIGH AVAILABILITY}
본 발명의 실시 예들의 사상들은 컴퓨터 시스템으로 리던던시(redundancy)를 제공하는 분야에 관한 것이다.
컴퓨터 시스템의 분야에서, 데이터 및 다른 컴퓨팅 자원들로의 신뢰성 있는 고성능 액세스(reliable and high performance access)는 비즈니스 및 일상 생활의 연속적인 동작들에 있어서 중요하다. 고 가용성(HA; high availability)의 용어는 단일 지점들의 고장(또는 단일 장애 지점들; single points of failure)을 제거하거나 또는 감소시키는 (예를 들어, 단일 구성의 고장이 전체 시스템의 고장으로 발생되지 않도록 시스템으로 리던던시(redundancy)를 제공하는) 시스템을 설명하는데 자주 사용된다.
고 가용성의 이점을 갖는 예시적인 컴퓨터 시스템들은 LAN(local area network)와 같은 컴퓨터 네트워크 또는 인터넷을 통해 데이터의 검색 또는 저장을 위한 데이터 자원들을 제공할 수 있는 SAN(storage area network)와 같은 데이터 저장 시스템들을 포함한다.
본 발명의 목적은 향상된 성능을 갖는 고 가용성 및 균등한 성능을 위한 적응적 다중 경로 패브릭을 제공하는데 있다.
본 발명의 실시 예들의 사상들은 적응적 다중 경로 패브릭의 사용을 통해 컴퓨팅 자원들로의 고 가용성 및 균형 있는 성능을 제공하는 것과 관련된다.
본 발명의 일 실시 예에 따르면, 컴퓨팅 자원들로의 고가용성 액세스를 제공하는 컴퓨팅 시스템은 복수의 인터페이스들, 복수의 컴퓨팅 자원 세트들, 및 적어도 3개의 스위치들을 포함하고, 상기 복수의 컴퓨팅 자원 세트들 각각은 복수의 컴퓨팅 자원들을 포함하고, 상기 적어도 3개의 스위치들 각각은 호스트 링크를 통해 상기 인터페이스들 중 대응하는 하나와 연결되고, 복수의 자원 연결들을 통해 상기 복수의 컴퓨팅 자원 세트들 중 대응하는 하나와 연결되고, 상기 스위치들 중 하나가 고장인 경우, 상기 스위치들 사이의 복수의 교차-연결들을 통해 상기 스위치들 중 남은 것들로 데이터 트래픽이 분산되도록 구성된다.
상기 적어도 3개의 스위치들은 제1 스위치, 제2 스위치, 및 제1 교차-연결을 통해 상기 제1 스위치와 직접적으로 연결되고, 제2 교차-연결을 통해 상기 제2 스위치와 직접적으로 연결되는 제3 스위치를 포함한다.
상기 컴퓨팅 시스템은 제1 호스트 링크를 통해 상기 제1 스위치와 연결되고, 상기 복수의 인터페이스들 중 제1 인터페이스를 포함하는 제1 서버 노드, 및 제2 호스트 링크를 통해 상기 제2 스위치와 연결되고, 상기 복수의 인터페이스들 중 제2 인터페이스를 포함하는 제2 서버 노드를 더 포함한다.
상기 컴퓨팅 시스템은 제3 호스트 링크를 통해 상기 제3 스위치와 연결되는 제3 서버 노드를 더 포함한다.
상기 컴퓨팅 시스템은 상기 제1 서버 노드와 직접적으로 연결되는 제1 보조 스위치, 상기 제2 서버 노드와 직접적으로 연결되는 제2 보조 스위치, 상기 제3 서버 노드와 직접적으로 연결되는 제3 보조 스위치, 상기 제1 보조 스위치를 상기 제2 보조 스위치와 직접적으로 연결하는 제1 교차-연결, 상기 제1 보조 스위치를 상기 제3 보조 스위치와 직접적으로 연결하는 제2 교차-연결, 상기 제2 보조 스위치를 상기 제3 보조 스위치와 직접적으로 연결하는 제3 교차-연결을 더 포함한다.
상기 복수의 컴퓨팅 자원 세트들 중 제1 컴퓨팅 자원 세트는 제1 데이터 저장 장치 세트를 포함하고, 상기 제1 데이터 저장 장치 세트의 데이터 저장 장치들 각각은 각각은 상기 복수의 자원 연결들 중 제1 자원 연결을 통해 상기 제1 스위치와 직접적으로 연결된 제1 포트 및 상기 복수의 자원 연결들 중 제2 자원 연결을 통해 상기 제2 스위치와 직접적으로 연결된 제2 포트를 포함하고, 상기 복수의 컴퓨팅 자원 세트들 중 제2 컴퓨팅 자원 세트는 제2 데이터 저장 장치 세트를 포함하고, 상기 제2 데이터 저장 장치 세트의 데이터 저장 장치들 각각은 각각은 상기 복수의 자원 연결들 중 제3 자원 연결을 통해 상기 제1 스위치와 직접적으로 연결된 제3 포트 및 상기 복수의 자원 연결들 중 제4 자원 연결을 통해 상기 2 스위치와 직접적으로 연결되는 제4 포트를 포함한다.
상기 컴퓨팅 시스템은 제3 교차-연결을 통해 상기 제1 스위치와 직접적으로 연결되고, 제4 교차-연결을 통해 상기 제2 스위치와 직접적으로 연결되는 제4 스위치를 더 포함한다.
상기 컴퓨팅 시스템은 제3 데이터 저장 장치 세트를 더 포함하고, 상기 제3 데이터 저장 장치 세트의 데이터 저장 장치들 각각은 제5 자원 연결을 통해 상기 제3 스위치와 직접적으로 연결되는 제5 포트 및 제6 자원 연결을 통해 상기 제4 스위치와 직접적으로 연결되는 제6 포트를 포함한다.
상기 컴퓨팅 시스템은 제4 호스트 링크를 통해 상기 제4 스위치와 직접적으로 연결된 제4 서버 노드를 더 포함한다.
상기 컴퓨팅 시스템은 제4 데이터 저장 장치 세트를 더 포함하고, 상기 제4 데이터 저장 장치 세트의 데이터 저장 장치들 각각은 제7 자원 연결을 통해 상기 제3 스위치와 직접적으로 연결되는 제7 포트 및 제8 자원 연결을 통해 상기 제4 스위치와 직접적으로 연결되는 제8 포트를 포함한다.
상기 스위치들 각각은 다른 스위치의 고장을 검출하고, 상기 스위치와 대응하는 상기 교차-연결 및 상기 호스트 링크를 통해 상기 제1 세트의 데이터 저장 장치들 및 상기 제2 세트의 데이터 저장 장치들로의 액세스를 제공하도록 구성된다.
상기 컴퓨팅 시스템은 N개(단, N은 자연수)의 인터페이스들을 포함하고, B(단, B는 양수)의 대역폭 단위는 상기 컴퓨팅 자원 세트들 중 하나가 전 대역폭(full bandwidth)로 동작하는데 요구되는 대역폭의 량을 가리키고, 상기 복수의 자원 연결들 각각은 적어도 1×B의 대역폭을 포함하고, 상기 복수의 컴퓨팅 자원 세트들 각각은 K(단, K는 자연수)개 이하의 컴퓨팅 자원들을 포함하고, 상기 복수의 인터페이스들 각각의 호스트 링크 각각은 K×B의 정상 트래픽 대역폭 및 K×B 이상의 최대 트래픽 대역폭을 지원하고, 상기 복수의 교차 연결들 각각은 적어도 K×B/(N-1)의 대역폭을 포함한다.
상기 스위치들은 PCIe(Peripheral Component Interconnect Express) 스위치이고, 상기 호스트 링크들 및 상기 자원 연결들은 PCIe 버스 링크들이다.
본 발명의 일 실시 예에 따른 컴퓨팅 시스템은 적어도 2개의 고-가용성 페어들(high-availability pairs)을 포함하고, 상기 고 가용성 페어들 각각은: 제1 스위치, 제2 스위치, 제1 호스트 링크를 통해 상기 제1 스위치와 연결되는 제1 인터페이스, 제2 호스트 링크를 통해 상기 제2 스위치와 연결되는 제2 인터페이스, 제1 자원 연결을 통해 상기 제1 스위치와 연결되고, 제2 자원 연결을 통해 상기 제2 스위치와 연결되는 제1 컴퓨팅 자원 세트, 제3 자원 연결을 통해 상기 제1 스위치와 연결되고, 제4 자원 연결을 통해 상기 제2 스위치와 연결되는 제2 컴퓨팅 자원 세트, 복수의 제1 교차-연결들, 및 복수의 제2 교차-연결을 포함하고, 상기 복수의 제1 교차-연결들 각각은 상기 제1 스위치를 상기 다른 고-가용성 페어들 각각의 각 스위치로 직접적으로 연결하고, 상기 제2 교차-연결들 각각은 상기 제2 스위치를 상기 다른 고-가용성 페어들 각각의 각 스위치로 직접적으로 연결한다.
상기 제1 컴퓨팅 자원 세트는 제1 데이터 저장 장치 세트를 포함하고, 상기 제1 데이터 저장 장치 세트의 데이터 저장 장치들 각각은 상기 제1 자원 연결을 통해 상기 제1 스위치와 직접적으로 연결되는 제1 포트 및 상기 제2 자원 연결을 통해 상기 제2 스위치와 직접적으로 연결되는 제2 포트를 포함하고, 상기 제2 컴퓨팅 자원 세트는 제2 데이터 저장 장치 세트를 포함하고, 상기 제2 데이터 저장 장치 세트의 데이터 저장 장치들 각각은 상기 제3 자원 연결을 통해 상기 제1 스위치와 직접적으로 연결되는 제3 포트 및 상기 제4 자원 연결을 통해 상기 제2 스위치와 직접적으로 연결되는 제4 포트를 포함한다.
상기 제1 스위치는 상기 제2 스위치의 고장을 검출하고, 상기 제1 호스트 링크 및 상기 제1 교차-연결을 통해 상기 제1 세트의 데이터 저장 장치들 및 상기 제2 세트의 데이터 저장 장치들로의 액세스를 제공하도록 구성된다.
상기 컴퓨팅 시스템은 N개(단, N은 자연수)의 서버 노드들을 포함하고, B(단, B는 양수)의 대역폭 단위는 상기 컴퓨팅 자원들 중 하나가 전 대역폭(full bandwidth)로 동작하는데 요구되는 대역폭의 량이고, 상기 자원 연결들 각각은 적어도 1×B의 대역폭을 포함하고, 상기 컴퓨팅 자원 세트들 각각은 K(단, K는 자연수)개 이하의 컴퓨팅 자원들을 포함하고, 상기 서버 노드들 각각은 K×B의 정상 대역폭을 지원하고, K×B 이상의 최대 대역폭을 지원하고, 상기 교차 연결들 각각은 적어도 K×B/(N-1)의 대역폭을 포함한다.
상기 스위치들은 PCIe(Peripheral Component Interconnect Express) 스위치들이고, 상기 호스트 링크들 및 상기 자원 연결들은 PCIe 버스 링크들이다.
상기 적어도 2개의 고-가용성 페어들은 제1 고-가용성 페어, 제2 고-가용성 페어, 제3 고-가용성 페어, 및 제4 고-가용성 페어를 포함한다.
본 발명의 일 실시 예에 따른 예비 자원 연결 패브릭은 제1 스위치, 제2 스위치, 제1 교차-연결을 통해 상기 제1 스위치와 직접적으로 연결되고, 제2 교차-연결을 통해 상기 제2 스위치와 직접적으로 연결되는 제3 스위치, 제1 컴퓨팅 자원 세트, 및 제2 컴퓨팅 자원 세트를 포함하고, 상기 제1 컴퓨팅 자원 세트 각각은 제1 자원 연결을 통해 상기 제1 스위치와 직접적으로 연결된 제1 포트 및 제2 자원 연결을 통해 상기 제2 스위치와 직접적으로 연결되는 제2 포트를 포함하고, 상기 제2 컴퓨팅 자원 세트 각각은 제3 자원 연결을 통해 상기 제1 스위치와 직접적으로 연결되는 제3 포트 및 제4 자원 연결을 통해 상기 제2 스위치와 직접적으로 연결되는 제4 포트를 포함한다.
상기 제1 스위치는 상기 제2 스위치의 고장을 검출하고, 상기 제1 교차-연결을 통해 상기 제1 컴퓨팅 자원 세트 및 상기 제2 컴퓨팅 자원 세트로의 액세스를 제공하도록 구성된다.
상기 예비 자원 연결 패브릭은 제3 자원 연결을 통해 상기 제1 스위치와 직접적으로 연결되고, 제4 자원 연결을 통해 상기 제2 스위치와 직접적으로 연결되는 제4 스위치를 더 포함한다.
상기 예비 자원 연결 패브릭은 제5 자원 연결을 통해 상기 제3 스위치와 직접적으로 연결되고, 제6 자원 연결을 통해 상기 제4 스위치와 직접적으로 연결되는 제3 컴퓨팅 자원 세트를 더 포함한다.
상기 예비 자원 연결 패브릭은 제7 자원 연결을 통해 상기 제3 스위치와 직접적으로 연결되고, 제8 자원 연결을 통해 상기 제4 스위치와 직접적으로 연결되는 제4 컴퓨팅 자원 세트를 더 포함한다.
본 발명에 따른 인터페이스들 및 컴퓨팅 자원들 사이에 위치한 적응적 패브릭(adaptive fabric)은 고장 상황에서 컴퓨팅 자원들로의 액세스를 유지하고, 일부 실시 예들에서, 고장 상황에서 자원들로의 전성능 액세스(full performance access)를 유지할 수 있다. 따라서, 향상된 성능을 갖는 고 가용성 및 균등한 성능을 위한 적응적 다중 경로 패브릭이 제공된다.
상세한 설명과 함께 첨부된 도면은 본 발명의 예시적인 실시 예를 보여주며, 상세한 설명과 함께 본 발명의 이론들을 설명하는 것을 뒷받침한다.
도 1a은 본 발명의 일 실시 예에 따른, 적응적 다중 경로 패브릭(adaptive multipath fabric)을 포함하는 데이터 저장 시스템을 보여주는 블록도이다.
도 1b는 본 발명의 일 실시 예에 따른, 적응적 다중 경로 패브릭을 포함하는 데이터 저장 시스템을 보여주는 블록도이다.
도 2a는 본 발명의 일 실시 예에 따른, 스위치의 고장 및 데이터 전송들의 리밸런싱(rebalancing)을 보여주는 블록도이다.
도 2b는 본 발명의 일 실시 예에 따른, 서버 노드의 고장 및 데이터 전송들의 리밸런싱을 보여주는 블록도이다.
도 3은 본 발명의 일 실시 예에 따른, 서버 노드들을 연결하는 보조 패브릭을 더 포함하는 시스템의 블록도이다.
도 4a는 본 발명의 일 실시 예에 따른, 2개의 서버 노드들 및 하나의 세트의 데이터 저장 장치들을 포함하는 작은 고 가용성 구조(small high availability configuration)를 보여주는 블록도이다.
도 4b는 본 발명의 일 실시 예에 따른, 추가적인 세트들의 데이터 저장 장치들을 포함하는 도 4a에 도시된 구조의 확장을 보여준다.
도 4c는 본 발명의 일 실시 예에 따른, 추가적인 서버 노드들을 포함하는 도 4a에 도시된 구조의 확장을 보여준다.
도 5는 본 발명의 일 실시 예에 따른, 192GB/s의 전체 처리량을 위하여 8개의 스위치들을 통해 48개의 데이터 저장 장치들로 연결된 8개의 서버 노드들을 포함하는 시스템을 보여주는 블록도이다.
이하의 상세한 설명에서, 설명의 편의를 위하여 본 발명의 특정 예시적인 실시 예들만 설명된다. 당업자는, 본 발명이 다양한 다른 형태로 구현될 수 있으며, 본문의 실시 예들에 한정되는 것으로 이해되어서는 안됨을 이해할 것이다. 상세한 설명의 전반에서, 유사한 참조 번호들은 유사한 구성 요소들을 지칭한다.
본 발명의 실시 예들의 사상들은 인터페이스들의 세트들을 통해 컴퓨팅 자원들로의 고 가용성 액세스(high availability access)를 제공하는 시스템들 및 방법들과 일반적으로 연관된다. 인터페이스들 및 컴퓨팅 자원들 사이에 위치한 적응적 패브릭(adaptive fabric)은 고장 상황에서 컴퓨팅 자원들로의 액세스를 유지하고, 일부 실시 예들에서, 고장 상황에서 자원들로의 전성능 액세스(full performance access)를 유지한다.
예를 들어, 컴퓨팅 자원들로의 고 가용성 액세스(high-availability access)를 제공하는 데이터 저장 컴퓨팅 시스템은 복수의 인터페이스들; 복수의 컴퓨팅 자원 세트들; 및 적어도 3개의 스위치들을 포함한다. 컴퓨팅 자원 세트들 각각은 복수의 컴퓨팅 자원들을 포함한다. 스위치들 각각은 호스트 링크를 통해 인터페이스들 중 대응하는 하나와 연결되고, 자원 연결(resource connection)을 통해 컴퓨팅 자원 세트들 중 대응하는 하나와 연결된다. 스위치들 각각은 스위치들 중 하나가 고장인 경우, 스위치들 사이의 복수의 교차-연결들(cross-connections)을 통해 데이터 트래픽이 스위치들 중 나머지들로 분산되도록 구성된다.
좀 더 구체적으로, SAN(storage area network) 시스템과 같은 데이터 저장 시스템은 하나 또는 그 이상의 서버 노드들과 연결된 데이터 저장 장치들을 포함할 수 있다. 예를 들어, 데이터 저장 장치들은 PCIe(peripheral component interconnect express) 버스와 같은 버스를 통해 서버 노드들과 연결된 SSD(solid state drvie) 또는 HDD(hard disk drive)일 수 있다. 예를 들어, 각 서버 노드는 중앙 처리 유닛, 메모리, 및 데이터 저장 장치들에 저장된 데이터로의 원격 액세스를 제공하는 네트워크 인터페이스를 포함할 수 있다. 이 때, 데이터 저장 장치들은 서버 노드들로 매핑된다. 그러나 단일 서버 노드(single server node)가 고장인 경우(예를 들어, 네트워크 인터페이스, 버스, 또는 CPU가 고장난 경우), 데이터 저장 장치들에 저장된 데이터로의 액세스가 손실될 것이기 때문에, 단일 서버 노드만 사용하는 네트워크 스토리지 시스템은 고 가용성(HA)을 제공할 수 없다.
이와 같이, 본 발명의 실시 예들의 일부 사상들은 컴퓨팅 자원들로의 고가용성 액세스를 제공하는 적응적인 패브릭(adaptive fabric)에 관한 것이다. 일 실시 예에서, 컴퓨팅 자원 각각은 복수의 스위치들과 연결되고, 스위치들 각각은 적응적 패브릭의 교차-연결을 통해 적어도 하나의 다른 스위치와 연결된다. 스위치들 각각은 컴퓨팅 자원들의 사용자들과의 통신을 위한 인터페이스(예를 들어, 네트워크 인터페이스)와 연결된다. 인터페이스의 고장 또는 스위치의 고장이 발생한 경우, 적응적 패브릭은 다른 인터페이스들의 교차-연결들을 통해 데이터로의 경로를 재설정(reroute)한다.
일 실시 예에서, 인터페이스들은 호스트 서버 노드의 구성들일 수 있다. 이 때, 서버 노드는 프로세서(CPU) 및 메모리를 포함하는 컴퓨터 시스템이다. 서버 노드들은 서버 노드의 메모리에 저장되고 서버 노드들의 프로세서에 의해 실행되고 구동되는 애플리케이션을 통해 사용자에게 컴퓨팅 자원들과 연관된 서비스들로의 액세스를 제공할 수 있다. 예를 들어, 컴퓨팅 자원들은 데이터 저장 장치 세트들일 수 있고, 이 경우, 애플리케이션들은 네트워크 파일 서버들, 웹 서버들, 데이터베이스 서버들 등일 수 있다. 다른 예로서, 컴퓨팅 자원들은 로우 레이턴시 캐시들(low latency caches)을 제공하는 동적 메모리(dynamic memory)일 수 있다. 또 다른 예로서, 컴퓨팅 자원들은 그래픽 처리 유닛(GPU; graphical processing unit)일 수 있고, 이 경우, 애플리케이션들은, 예를 들어, 3차원 렌더링 엔진들, 머신 러닝 트레이닝 플랫폼(예를 들어, 심층 신경망 학습), 가상화폐 마이너(cryptocurrency miner)(예를 들어, 비트코인) 등일 수 있다.
본 발명의 실시 예들의 일부 사상들은 데이터 저장 장치들과 같은 컴퓨팅 자원들로의 충분한 대역폭을 제공하는 것과 관련된다. 서버 노드들에 너무 많은 데이터 저장 장치들이 연결된 경우, 데이터 저장 장치들이 전성능(full performance)으로 동작할 수 있는, 서버 노드들 및 데이터 저장 장치들 사이의 가용한 대역폭이 충분하지 않을 수 있다. 좀 더 구체적으로, 단일 서버 노드 시스템에서, 8개의 SSD들이 PCIe 스위치와 연결되고, 각 SSD가 PCIe 스위치로의 4 레인 링크(×4) 연결을 포화시킬수 있고, 서버 노드가 PICe 스위치로의 32 레인 링크(×32)를 포함하는 경우, 8개의 SSD들 만으로 서버 노드로의 연결을 포화시키기에 충분하다. 추가적인 데이터 저장 장치들이 시스템에 추가되는 경우, 서버 노드 및 PCIe 스위치 사이의 연결이 시스템에서 병목 현상(bottleneck)으로 작용하기 때문에, 데이터 저장 장치들 전체를 전성능으로 동작시키기에는 대역폭이 충분하지 않을 수 있다. 일부 상황에서, 서버 노드 및 네트워크 어댑터 사이의 연결이 시스템에서 병목 현상으로 유사하게 작용할 수 있다.
일부 데이터 저장 장치들은 리던던시(redundancy)를 제공하는 2개의 연결 포트들(two connection ports)을 포함한다. 예를 들어, 듀얼 PCIe 포트들을 포함하는 데이터 저장 장치는 제1 서버 노드와 연결된 제1 포트 및 제2 서버 노드와 연결된 제2 포트를 포함할 수 있다. 이러한 방식에서, 서버 노드들 중 하나가 고장인 경우, 데이터 저장 장치는 다른 서버 노드를 통해 여전히 액세스될 수 있다.
그러나, 이러한 방식에서, 서버 노드의 고장은 대역폭 제한(bandwidth limitations)을 악화시킬 수 있다. 상술된 예를 계속해서 참조하면, 2개의 서버 노드들 모두가 연결된 데이터 저장 장치들에 대한 충분한 대역폭을 제공할 수 있는 반면에, 서버 노드들 중 하나가 고장인 경우, 데이터 저장 장치들로/로부터의 모든 트래픽이, 생존 서버 노드(surviving server node)에 의해 관리된다. 생존 서버 노드는 추가적인 트래픽을 관리하는데 충분한 대역폭을 갖지 않을 수 있다. 특히, 데이터 저장 장치들의 대역폭 요구들이 이미 서버 노드들로의 2개의 링크들을 포화시킨 경우, 서버 노드들 중 하나의 고장은 약 50%의 성능 감소를 발생시킨다.
그러므로, 본 발명의 일부 실시 예들은 복수의 서버 노드들을 통해 데이터 저장 장치들로의 액세스를 제공하는 시스템들 및 방법들에 관한 것이다. 이 때, 시스템들 및 방법들은 서버 노드의 고장 상황에서 성능 저하 없이 데이터 저장 장치들의 가능한 전성능(full performance potential)을 유지할 수 있다. 좀 더 상세하게, 본 발명의 실시 예의 사상들은 복수의 스위치들을 통해 서버 노드들과 (멀티-포트 데이터 저장 장치들과 같은) 컴퓨팅 자원들을 연결하는 적응적 다중 경로 패브릭(adaptive multipath fabric)과 관련된다. 이 때, 다중 경로 패브릭은 시스템의 고장 상황에서 데이터 트래픽에 대한 대체 경로들(alternate paths)을 제공한다. 본 발명의 실시 예들의 사상들은 특별히 요구되는시스템 성능 프로파일들을 달성하기 위하여, 다양한 복수의 서버 노드들 및 컴퓨팅 자원들(예를 들어, 데이터 저장 장치들)의 세트들로 적용될 수 있다. 본 발명의 실시 예들의 사상들은 노드 고장 상황에서, 더 많은 데이터 저장 장치들 또는 더 많은 서버 노드들을 각각 추가함으로써, 특정한 성능 프로파일을 유지하면서 초기 구성으로부터 전체 구성으로 컴퓨팅 자원들(예를 들어, 데이터 저장 용량) 및 일반 연산 용량 모두를 스케일링(scailing)할 수 있다.
설명의 편의를 위하여, 본 발명의 실시 예들은, 이하에서, PCIe 스위치들 및 PCIe 패브릭을 통해 호스트 버서 노드들과 연결된 NVMe(non-volatile memory express) 인터페이스들을 포함하는 솔리드 스테이트 드라이브들을 참조하여 설명될 것이다. 그러나, 본 발명의 실시 예들은 이에 한정되지 않으며, 패브릭의 기본 구조(underlying architecture)는 이더넷(Ethernet), IB(Infiniband®), 파이버채널(Fibre Channel), SCSI(small computer system interface), SAS(serially attached SCSI) 등과 같은 다른 인터페이스들로 적용될 수 있다. 추가적으로, 본 발명의 실시 예들은 하드 디스크 드라이브들, 테이프 드라이브들, DRAM(dynamic random access memory)과 같은 휘발성 메모리와 같은 다른 형태의 자원들, 및 벡터 프로세서들, 그래픽 처리 유닛들(GPUs), 디지털 신호 프로세서들(DSPs; digital signal processors), 및 FPGA(field programmable gate array)와 같은 연산 유닛들로 고가용성을 제공하는데 적용될 수 있다.
다중 경로 패브릭 구조(Multipath fabric structure)
본 발명의 실시 예들의 사상들은 컴퓨팅 자원들이 듀얼-포트 데이터 저장 장치 세트들이고, 연결들 및 스위치들이 PCIe 연결들 및 스위치들이고, 인터페이스들이 네트워크 인터페이스들인 데이터 저장 시스템의 특정 사례를 참조하여 이하에서 설명될 것이다. 그러나, 본 발명의 실시 예들이 이에 한정되는 것은 아니며, 다른 형태의 컴퓨팅 자원들, 연결 프로토콜들, 및 인터페이스들에 적용될 수 있다.
도 1a는 본 발명의 일 실시 예에 따른, 적응적 다중 경로 패브릭을 포함하는 데이터 저장 시스템(100)을 보여주는 블록도이다. 도 1a의 실시 예는 서버 노드들(20)을 듀얼 포트 데이터 저장 장치 세트들(30)과 연결하는 패브릭(10)을 포함한다. 패브릭(10)은 인쇄 회로 기판 상의 트레이스(trace), 복수의 전기 배선들(예를 들어, 리본 케이블, mini-SAS HD 케이블, OCuLink 케이블 등), 및 그것들의 조합과 같은 다양한 방식으로 구현될 수 있다. 패브릭(10)은 스위치들(40) 사이의 교차-연결들(12AC, 12BC, 12BD, 12AD)을 포함한다. 노드 고장의 경우에서 대역폭 밸런싱(balancing)을 제공하는 것에 추가적으로, 교차-연결들(12AC, 12BC, 12BD, 12AD)은 엔드포인트 재할당 및 대역폭 밸런싱에 사용되어 입력/출력(I/O) 부하들 및 비평형 노드 CPU 사용을 카운팅할 뿐만 아니라, 데이터 저장 장치 세트들(30) 사이의 피어-투-피어 통신(예를 들어, 서버 노드(20)로 부터의 중요한 간섭 없이, 제1 데이터 저장 장치 세트(30A) 및 제2 데이터 저장 장치 세트(30B)사이의 직접 메모리 접근 전송들(direct memory access transfers))을 제공할 수 있다.
듀얼-포트 데이터 저장 장치 세트들 각각은 하나 또는 그 이상의 듀얼-포트 데이터 저장 장치들(32)를 포함한다. 각 듀얼-포트 데이터 저장 장치는 자원 링크들(16)을 통해 2개의 다른 스위치들과 연결된다. 본문에서 사용되는 바와 같이, "스위치(switch)"의 용어는 통신을 위하여 스위치와 연결된 장치들에 대해 복수의 통신 경로들을 제공하는 전기적인 구성 요소를 지칭한다. 스위치는 장치들 사이의 트래픽의 경로를 설정하고, 스위치와 연결된 통신 장치들 사이의 연결들을 설정한다.
도 1a에 도시된 바와 같이, 각 서버 노드(20)는 하나 또는 그 이상의 프로세서들(24)(예를 들어, Intel® Xeon® 프로세서들)을 포함한다. 하나 또는 그 이상의 프로세서들(24)은 PCIe 연결을 통해 네트워크 인터페이스 카드(NIC)(26)(예를 들어, 이더넷 NIC)와 연결되고, 호스트 링크(14)(예를 들어, 다른 PCIe 연결 또는 복수의 PCIe 연결들)을 통해 대응하는 스위치(40)와 연결된다. 각 서버 노드(20)는 그것의 고 가용성 피어((HA peer; high availability peer)로써 지칭될 수 있는 다른 하나의 서버 노드(20)와 쌍을 이룬다. 예를 들어, 서버 노드들(20A, 20B)는 HA 피어들이고, 페어(22AB)를 형성한다. 공통 HA 피어들의 페어들(22)은 패브릭(10)을 통해 2개의 예비 경로들(redundant paths)을 제공하여 하나 또는 그 이상의 데이터 저장 장치 세트들(30)을 액세스한다. 예를 들어, HA 페어(22AB)는 데이터 저장 장치 세트들(30A, 30B)로의 액세스를 제공한다. HA 피어 노드들의 다른 페어들(22)은 다른 데이터 저장 장치 세트들(30)로 예비 경로들(redundant paths)을 제공한다. 예를 들어, HA 페어(22CD)는 데이터 저장 장치 세트들(30C, 30D)로의 액세스를 제공한다.
패브릭(10)은 복수의 HA 피어 페어들(22)을 연결하여, 단일 서버 노드 고장 상황에서, 데이터 저장 장치들(32) 및 모든 노드들에 걸친 균형 있는 대역폭을 위한 연결을 제공한다. N개의 서버 노드들(20)(또는 N개의 스위치들(40))을 구비한 시스템에서, 하나의 스위치(40)로부터 다른 N-2 개의 스위치들(40) 각각으로의 추가적인 교차-연결 대역폭의 양은 정상, 비-고장 모드의 동작에서 각 서버 노드(20)에 의해 지원되는 대역폭의 1/(N-1)배이다. (정상 대역폭 "normal bandwidth") 결과적으로, 하나의 노드의 고장으로 인한 대역폭의 손실은 나머지 N-1 개의 노드들에 의해 경감될 수 있다.
좀 더 상세하게, 도 1a는 4개의 서버 노드들(20)(N=4)을 보여준다. 설명의 편의를 위하여, 도 1a는 B 단위의 대역폭을 보여주고, 이 때, B는 데이터 저장 장치들(32) 중 하나의 대역폭 요구를 가리킨다. 도 1a에서, 데이터 저장 장치 세트(30) 각각은 6개의 데이터 저장 장치들(32)을 포함한다. 그러므로, 데이터 저장 장치 세트(30) 각각은 6B의 대역폭(각 데이터 저장 장치(32) 당 1B)을 필요로 한다. 도 1a에 도시된 바와 같이, 4개의 서버 노드들(20)은 시스템에서 24개의 데이터 저장 장치들(32)로 총 24B의 처리량(노드당 6B)을 제공한다.
서버 노드(20) 및 그것의 대응하는 스위치(40) 사이의 각 연결의 실제 대역폭 용량은 8B이므로, 데이터 저장 장치 세트(30) 각각에서 요구되는 6B의 대역폭 용량을 2B만큼 초과한다. 또한, 도 1a의 실시 예에서, 호스트 프로세서(24) 및 네트워크 인터페이스(26) 사이의 연결은 호스트 프로세서(24) 및 스위치(40) 사이의 대역폭, 예를 들어, 8B와 적어도 동일한 대역폭을 갖는다.
도 1a에 도시된 실시 예에서, 각 노드로부터 비-HA 피어 노드들 각각으로의 교차-연결 대역폭은 6B/3=2B이다. 예를 들어, 제1 서버 노드(42A)와 대응하는 제1 스위치(40A) 및 그것의 비-HA 피어 노드들(20C, 20D)의 스위치들(40C, 40D) 사이의 교차-연결(12AC, 12AD) 각각의 교차-연결 대역폭들은 2B이다. 마찬가지로, 제2 노드(20B)와 대응하는 제2 스위치(40B) 및 그것의 비-HA 피어 노드들(20C, 20D)의 스위치들(40C, 40D) 사이의 교차-연결들(12BC, 12BD) 각각의 교차-연결 대역폭은 2B이다. 도 1a에 도시된 바와 같이, 교차-연결들(12)은 스위치들(40) 사이에서 형성된다. 그러나, 본 발명의 실시 예들이 이에 한정되는 것은 아니며, 상술된 바와 같이, 교차-연결들(12) 각각의 최소 대역폭은 정상, 비-고장 모드의 동작에서 각 서버 노드(20)에 의해 지원되는 대역폭을 서버들의 개수(N)에서 1을 차감한 값으로 나눈 대역폭으로 설정될 수 있다. 또 다른 실시 예들에서, 시스템이 복수의 서버 노드들(20)의 고장을 수용하도록 설계된 경우, 교차-연결들(20) 각각의 최소 대역폭은 정상, 비-고장 모드의 동작에서 각 서버 노드(20)에 의해 지원되는 대역폭을 서버들의 개수(N)에서 수용되는 고장들의 개수를 차감한 값으로 나눈 대역폭으로 설정될 수 있다.
도 1b는 B=×4(예를 들어, 4 레인 PCIe 링크의 대역폭)인 경우에서, 본 발명의 일 실시 예에 따른, 적응적 다중 경로를 포함하는 데이터 저장 시스템(100)을 보여주는 블록도이다. PCIe 3.0의 경우, ×4 링크는 약 4GB/s의 최대 대역폭 또는 처리량을 제공한다. 유사한 구성들은 도 1a와 유사한 참조 번호가 부여되고, 이러한 구성들에 대한 설명은 생략된다.
도 1b에 도시된 실시 예에서, 노드당 64개의 PCIe 3.0 레인들을 구비한 4개의 서버 노드들(20)은 각 각 세트당 6개의 드라이브들을 포함하는 4개의 세트로 정렬된 24개의 듀얼-포트 NVMe SSD들과 연결된다. 24개의 듀얼-포트 NVMe SSD들 각각은 2개의 엔드포인트들(즉, 2개의 SSD 엔드포인트)을 포함한다. 이 때, 각 엔드포인트는 서버 노드들 중 어느 하나로 할당될 수 있다. 예를 들어, 제1 데이터 저장 장치 세트(30A)에서 SSD들의 엔드포인드들 각각은 제1 서버 노드(20A)로 할당될 수 있다. PCIe 3.0을 사용할 경우, 도 1b에 도시된 시스템은 96 GB/s 사용자 데이터 처리량(PCIe 3.0 대역폭의 96 레인들)의 엔드-투-엔드 시스템 성능 프로파일 및 고가용성(단일 서버 노드 고장의 상황에서 모든 SSD들로의 전성능 액세스가 유지됨.)을 보장할 수 있다.
도 1b의 예시적인 실시 예에서, 전 부하로 동작 중인 경우, NVMe SSD들(32) 각각은 약 4GB/s로 데이터를 전송하고, 이에 따라 단일 ×4 링크에 의해 제공될 수 있다. 또한, 듀얼-포드 NVMe SSD들에서 2개의 포트들 각각은 ×4 링크를 제공한다. 결과적으로, NVMe SSD들의 2개의 포트들 중 하나의 고장은 데이터 저장 장치가 여전히 전성능으로 동작할 수 있도록 한다. NVMe SSD들 각각이 4개의 PCIe 레인들의 대역폭을 요구하기 때문에, 데이터 저장 장치들의 전체 세트(30)의 전성능을 유지하기 위하여, 6개의 듀얼 포트 NVMe SSD들의 세트 각각은 6×4= ×24 또는 24 레인들의 대역폭을 필요로 한다.
도 1b에 도시된 바와 같이, 데이터 저장 장치 세트들(30)은 PCIe 스위치들(40)과 연결된다. 각 스위치(40)는 PCIe 연결을 통해 대응하는 호스트 서버 노드(20)와 연결된다. 도 1b의 실시 예에서, PCIe 스위치와 서버 노드(20)의 호스트 프로세서(24) 사이에 ×32 링크가 존재한다.
도 1b에 도시된 구성에서, 서버 노드들(20A, 20B)은 12개의 SSD들(00~11)(2개의 SSD 세트들(30A, 30B))로 듀얼-포트 액세스를 제공하는 HA-피어 노드들이다. 유사하게, 서버 노드들(20C, 20D)는 다른 12개의 SSD들(12~23)(2개의 SSD 세트들(30C, 30D))로 듀얼-포트 액세스를 제공하는 HA-피어 노드들이다.
도 1b에 도시된 PCIe 패브릭(10)은 호스트 링크(14)를 더 포함한다. 호스트 링크(14)는 스위치들(40) 및 자원들(데이터 저장 장치들(32)) 사이의 자원 연결들(16)에 추가적으로, 4개의 서버 노드들(20)로부터 스위치들(40)로의 총 128개의 PCIe 3.0 레인들(각 노드당 32 레인들)을 연결한다. 호스트 링크들(14) 각각은 복수의 연결들을 포함할 수 있다. 예를 들어, 듀얼-프로세서 서버 노드의 경우, 각 서버 노드로부터의 32개의 레인들은 서버 노드의 제1 CPU 소켓과 연결된 16개의 레인들 및 서버 노드의 제2 CPU 소켓과 연결된 16개의 레인들을 포함할 수 있다. 또한, 서버 노드들(20) 각각은 서버 노드를 복수의 스위치들(40)과 연결하는 복수의 호스트 링크들(14)을 포함할 수 있다. 도 1b의 실시 예에 도시된 바와 같이, 자원 연결들(16)은 24개의 듀얼-포트 NVMe SSD들에 걸친 총 192개의 레인들을 포함한다. 이 때, 각 SSD는 ×4 레인들의 대역폭(~4GB/s)의 처리 용량을 갖는다. 각 SSD는 처리 용량(SSD당 ×4 레인들)에 비하여 2배 많은 포트 연결 (SSD당 2×4 레인들)을 포함한다. 24개의 드라이브들에 걸친 총 96개의 레인들에 대한 SSD당 ×4 레인들의 전처리량(full throughput)을 달성하기 위하여, 각 서버 노드(20)는 ×32 레인들의 처리 용량 중에서 ×24 레인들의 대역폭을 제공한다.
일부 상황에서, 듀얼-포트 NVMe SSD들의 각 포트는 SSD의 전처리 용량(full throughput capability)보다 낮은 대역폭을 갖는다. 예를 들어, 일부 듀얼-포트 NVMe SSD들은 2개의 ×2 포트들만 포함하고, 이는 각 포트는 ×2 레인들만 지원함을 의미한다. 결과적으로, SSD의 최대 처리량은 ×4 레인들인 것으로 가정하면, 포트들 중 하나가 고장이거나 또는 포트들중 하나와 연결된 스위치가 고장인 경우, SSD는 ×2 레인들(즉, SSD의 처리 용량의 절반)만 연결이 가능하다.
단일 서버 노드가 고장인 상황에서, 96GB/s의 지속 가능한 대역폭을 지원하기 위하여, 패브릭(10)의 교차-연결들(12)은 노드들(20A, 20C), 노드들(20A, 20D), 노드들(20B, 20C), 및 노드들(20B, 20D) 각각의 사이에 24GB/s / (N-1) = 8GB/s의 교차 연결 대역폭(cross-connection bandwidth)을 제공한다.
PCIe 스위치(40)에 의해 제공되는 레인들의 최소 개수는 연결된 구성요소들, 즉, 2개의 데이터 저장 장치 세트들(30)(예를 들어, 제1 PCIe 스위치(40A)는 제1 세트(30A)의 데이터 저장 장치들 및 제2 세트(30B)의 데이터 저장 장치들과 연결됨), 호스트 프로세서(24), 및 패브릭(10)의 교차-연결들(12)의 필요 조건들에 의존한다. 도 1b에 도시된 실시 예에서, 전체 24+24+32+8+8=96 레인에 대하여, 데이터 저장 장치 세트들(30) 각각은 24 레인들을 필요로 하고, 호스트 프로세서(24)는 32 레인들을 필요로 하고, 패브릭(10)으로의 2개의 교차-연결들(12) 각각은 8 레인들을 필요로 한다. 도 1b에 도시된 실시 예에서, PCIe 스위치(40) 각각은 ×96 스위치 또는 96 레인 스위치이다. 그러나, 본 발명의 실시 예들이 이에 한정되는 것은 아니며, 스위치는 연결된 구성들이 필요로 하는 개수보다 많은 레인들을 포함할 수 있다. 이러한 특정 실시 예에서, PCIe 스위치는 96 레인 이상을 포함할 수 있다.
노드 고장에서의 대역폭 리밸런싱(Rebalancing bandwidth under node failure)
도 2a는 본 발명의 일 실시 예에 따른 스위치의 고장 및 데이터 전송 트래픽의 재균형(rebalancing)을 보여주는 블록도이다. 서버 노드들 및 스위치들 사이의 예비 연결들(redundant connections)이 없기 때문에, 스위치(40)의 고장 상황에서, 스위치(40)와 연관된 서버 노드(20)는 시스템의 나머지로부터 연결이 끊어질 것이다. 그러므로, 본 발명의 일부 실시 예들에서, 스위치(40)의 고장은 그것과 연관된 서버 노드의 손실을 실질적으로 발생시킨다. 그러나, 본 발명의 실시 예들이 이에 한정되는 것은 아니며, 일부 실시 예들에서, 서버 노드는 복수의 스위치들과 연결될 수 있다.
도 2a의 실시 예에서, 고장난 스위치(40B)와 연결된 서버 노드(20B)는 데이터 저장 시스템(10)으로부터 연결이 끊어질 수 있고, 그로 인하여, 스위치(40B) 및 서버 노드(20B)에 의해 관리되는 작업 부하 또는 데이터 트래픽이 나머지 N-1개의 스위치들(40A, 40C, 40D) 및 N-1개의 서버 노드들(20A, 20C, 20D)로 분산된다. 고장난 스위치 또는 노드(20B)와 연결된 데이터 저장 장치 세트들(30)로/로부터의 데이터 전송들은 중복으로 연결된 스위치(40A)를 경유한다. 이러한 작업 부하의 리밸런싱은 시스템의 24개 SSD들 전체의 처리량(SSD당 ×4 링크)을 유지한다.
시스템에 내장된 초과 용량 때문에, 고장난 스위치와 연결된 드라이브 세트들로/로부터의 데이터 전송들의 성능이 유지된다. 특히, 대역폭의 일부는 HA 페어의 생존 멤버들에 직접적으로 연결된 서버 노드로부터 비롯되고, 대역폭의 나머지 부분은 패브릭(10)을 통해 연결된 다른 서버 노드들(예를 들어, 20A, 20B, 20C)에 의해 제공된다. 또한, 나머지 N-1 서버 노드들(예를 들어, 20A, 20C, 20D)은 추가적인 부하를 수용하도록, 각각의 스위치들(예를 들어, 40A, 40C, 40D)과의 연결들에서 충분한 대역폭을 가진다.
본 발명의 일부 실시 예들에서, 적응적 다중 경로 패브릭(10)의 스위치들(40)은 이러한 노드 고장을 자동으로 검출하고, 이어서 SSD 엔드포인드들을 서버 노드들(20)로 자동으로 재할당하고, 생존 서버 노드들을 통해 대역폭을 리밸런싱하도록 프로그램된다. 다시 말해서, 스위치들(40)은 스위치들의 현재 구성을 기반으로 각 SSD에 어떻게 연결되는지에 대한 정보를 유지할 수 있고, 에러 조건들에 대하여 물리 및 링크 계층들에서 다른 스위치들(40), 데이터 저장 장치 세트들(30), 및 서버 노드들(20) 사이의 연결들을 모니터링할 수 있고, 이러한 에러들을 관리 시스템(예를 들어, 서버 노드들(20) 중 하나 또는 다른 전용 관리 프로세서)으로 보고할 수 있다. 관리 시스템은 보고된 에러들을 기반으로 링크 또는 서버 노드가 고장인지 판별할 수 있고, SSD들의 SSD 엔드포인트들을 서버 노드들(20) 중 도달할 수 있는 노드들에게로 재할당 하도록 스위치들(40)을 재구성할 수 있다. 비록 도 2a에 도시된 단일 노드 고장으로 인한 대역폭의 저하는 없으나, 노드들 사이의 교차-연결들(12)은 PCIe 스위치들의 하나의 추가적인 레벨을 경유하고, 이로 인하여 추가적인 레이턴시가 발생한다. 그러나, PCIe 스위치들을 통한 레이턴시는 SSD들로/로부터의 데이터 액세스의 전체 레이턴시와 비교하여 일반적으로 작고 무시할만하다.
도 2b는 본 발명의 일 실시 예에 따른, 서버 노드의 고장 및 데이터 전송들의 리밸런싱(rebalancing)을 보여주는 블록도이다. 도 2b를 참조하면, 서버 노드(20B)가 고장이나, 대응하는 스위치(40B)는 생존한 상황에서, 데이터는 기능 스위치(40B)를 통해 여전히 경유할 수 있으나, 3개의 생존 서버 노드들(20A, 20C, 20D)을 통해서만 액세스될 수 있다. 이러한 상황에서, 적응적 다중 경로 패브릭의 관리 시스템(예를 들어, 서버 노드들(20) 중 하나 또는 다른 전용 관리 프로세서)은 서버 노드(20B)의 고장을 자동으로 검출하도록 프로그램될 수 있고, 도 2A에 도시된 실시 예에서와 같이, SSD 엔드포인트들을 생존 엔드포인트들(surviving endpoints)로 자동으로 재할당할 수 있다. 본 발명의 다른 실시 예들에서, 에러들의 검출 및 스위치들(40)의 자동 재구성은 스위치들 자체에서(예를 들어, 스위치들(40)에 집적된 처리 유닛들에 의해) 구현된다.
본 발명의 일부 실시 예들에서, 개별적인 스위치는 2개 데이터 저장 장치 세트들(30)이 전 성능(full performance)으로 동작할 수 있는 충분한 대역폭을 제공하지 않을 수 있다. 예를 들어, 스위치(40B)가 고장인 경우, 데이터 저장 장치 세트들(30A, 30B)로의 유일한 경로들은 생존 스위치(40A)를 통해서이다. 생존 스위치(40A)가 ×96 레인보다 작은 레인들을 포함하는 경우, 데이터 저장 장치 세트들(30A, 30B)은 전 성능으로 동작하기 충분한 대역폭을 갖지 못할 것이다. 그러나, 스위치(40B)가 고장이 아니고, 연관된 서버 노드(20B)만 고장인 경우, 스위치(40B)가 정상 서버 노드들(20A, 20C, 20D)로 데이터를 재라우팅하는 것에 참여할 수 있다. 이러한 일부 실시 예들에서, 데이터 저장 장치 세트들(30) 전부가 전 성능으로 계속 동작할 수 있는 충분한 대역폭이 제공된다.
노드-간 통신(Inter-node communication)
본 발명의 일부 실시 예들에서, 보조 패브릭(50)(secondary fabric)이 서버 노드들(20) 사이의 통신을 위하여 포함될 수 있다. 도 3은 본 발명의 일 실시 예에 따른 서버 노드들(20)을 연결하는 보조 패브릭(50)을 더 포함하는 시스템의 블록도이다. 보조 패브릭(50)은 보조 스위치들(54)(예를 들어, 54A, 54B, 54C, 및 54D)을 다른 하나로 연결하는 상호-연결들(52)(inter-connections)(예를 들어, 52AB, 52AC, 52AD, 52BC, 및 52BD)을 포함할 수 있다. 이 때, 보조 스위치(54) 각각은 대응하는 하나의 서버 노드(20)와 직접적으로 연결된다. 예를 들어, 보조 스위치(54A)는 서버 노드(20A)와 직접적으로 연결된다. 패브릭(10)과 마찬가지로, 보조 패브릭(50)은 인쇄 회로 기판 상의 트레이스(trace), 복수의 전기 배선들(예를 들어, 리본 케이블들, mini-SAS HD 케이블들, OCuLink 케이블들 등), 및 그것들의 조합과 같은 다양한 방식으로 구현될 수 있다. 본 발명의 일 실시 예에 따르면, 보조 패브릭(50)은 서버 노드 CPU NTB(non-transparent bridge) 포트들과 연결된다. 보조 패브릭(50)은 서버 노드들(20) 사이의 메타데이터를 동기화하는데 사용될 수 있는, 서버 노드들(20) 사이의 저-지연 내부 통신(low-latency internal communication)을 제공한다.
패브릭을 점진적으로 확장(Incrementally expanding the fbric)
도 1a, 도 1b, 도 2a, 도 2b, 및 도 3은 4개의 데이터 저장 장치 세트들로의 고가용성 및 고성능 액세스를 제공하는 서버 노드들(20)의 2개의 쌍들(22)을 구비한 시스템들을 보여주고 있으나, 본 발명의 실시 예들이 이에 한정되는 것은 아니다.
본 발명의 실시 예들은 특정 애플리케이션의 작업 부하 필요 조건들에 따라 데이터 저장 장치들, 스위치들, 및 서버 노드들의 구성들을 포함한다.
도 4a는 본 발명의 일 실시 예에 따른 하나의 데이터 저장 장치 세트(30A) 및 2개의 서버 노드들(20A, 20B)을 포함하는 작은 고가용성 구성을 보여주는 블록도이다. 도 4a의 구성은 단일 데이터 저장 장치 세트의 데이터 저장 용량이 현재 작업 부하에 충분한 경우, 및 예비 서버 노드들을 통한 고가용성이 적절한 경우에 유용할 수 있다.
도 4a를 참조하면, 단일 데이터 저장 장치 세트(30A)는 제1 스위치(40A) 및 제2 스위치(40B) 모두와 연결된다. 도 1a의 실시 예와 마찬가지로, 제1 스위치(40A)는 제1 서버 노드(20A)와 연결되고, 제2 스위치(40B)는 제2 서버 노드(20B)와 연결된다. 제1 서버 노드(20A) 또는 제2 서버 노드(20B) 중 어느 하나가 고장인 경우, 데이터 저장 장치 세트(30A)는 생존 노드를 통해 액세스를 유지한다.
데이터 저장 수요가 증가하는 경우, 추가적인 데이터 저장 장치 세트들이 도 4A의 시스템에 추가될 수 있다. 예를 들어, 제1 스위치(40A) 및 제2 스위치(40B) 모두에 추가 데이터 저장 장치를 연결함으로써, 추가적인 하나의 데이터 저장 장치 세트가 추가되어, 다른 스위치들로의 상호-연결 없이, 제1 서버 노드(20A), 제2 서버 노드(20B), 제1 스위치(40A), 제2 스위치(40B), 제1 데이터 저장 장치 세트(30A), 및 제2 데이터 저장 장치 세트(30B)와 실질적으로 유사하게 구성될 수 있다. 앞서와 같이, 서버 노드들(20A, 20B) 중 하나 또는 스위치들(40A, 40B) 중 하나가 고장인 경우, 제1 및 제2 데이터 저장 장치 세트들(30A, 30B) 모두는 액세스 가능하게 유지된다.
도 4B는 본 발명의 일 실시 예에 따른, 추가적인 데이터 저장 장치 세트들을 포함하는 도 4A에 도시된 구성의 확장을 보여준다. 도 4B에 도시된 바와 같이, 제2 데이터 저장 장치 세트는 제1 스위치 및 제2 스위치와 연결된다. 도 4B의 구성은 추가적인 서버 노드들을 대신에 제3 스위치(40C) 및 제4 스위치(40D)의 형태로 추가적인 상호연결들을 더 포함한다. 제3 데이터 저장 장치 세트(30C)는 제3 및 제4 스위치들(40C, 40D)과 연결되고, 제4 데이터 저장 장치 세트(30D)는 제3 및 제4 스위치들(40C, 40D)과 연결된다. 교차-연결들(12AC, 12BC)은 제3 스위치(40C)를 제1 및 제2 스위치들(40A, 40B)과 연결하고, 교차-연결들(12AD, 12BD)은 제4 스위치(40D)를 제1 및 제2 스위치들(40A, 40B)과 연결한다. 결과적으로, 제1 및 제2 서버 노드들(20A, 20B)은 제3 및 제4 스위치들(40C, 40D)을 통해 제3 및 제4 데이터 저장 장치 세트들(30C, 30D)을 액세스할 수 있다.
도 4B에 도시된 구성에서, 서버 노드들(20A, 20B) 중 하나가 고장인 상황, 또는 4개의 스위치들(40A, 40B, 40C, 40D) 중 어느 것이 고장인 상황에서, 데이터 저장 장치들 전부가 액세스 가능하도록 유지된다. 그러나, 제3 및 제4 데이터 저장 장치 세트들(30C, 30D)의 데이터 처리량 성능(data throughput performance)은 교차-연결들(12)의 대역폭에 의해 제한되고, 서버 노드들(20) 및 그것들의 대응하는 스위치들(40) 사이의 호스트 링크(14)에 의해 제한된다. 특히, 도 4B의 배열에서, 2개의 서버 노드들(20)은 4개의 데이터 저장 장치 세트들(30) 전부로 총 16B의 대역폭(각 서버 노드(20)로부터 8B)을 제공하며, 이는 교차-연결들(12AC, 12AD, 12BD, 12BD)만을 통해 연결되는 데이터 저장 장치 세트들(30C, 30D)로의 가용한 최대 대역폭과 대응되는, 데이터 저장 장치 세트당 4B를 의미한다. 다시 말해서, 교차-연결당 2B이고, 4개의 교차-연결들은 2개의 드라이브 세트들과 공유되는 총 8B(드라이브 세트당 4B)를 제공한다. 또한, 서버 노드들 중 일부 또는 스위치들 중 일부의 고장은 시스템의 데이터 처리량에 추가적인 영향을 줄 것이다. 이러한 의미에서, 도 4B의 구성은, 예를 들어, 충분한 대역폭이 총 저장 용량보다 덜 중요한 경우에 더 적합하다.
추가적인 대역폭이 요구되는 경우, 도 4B의 구성은 서버 노드들을 제3 및 제4 스위치들(40C, 40D)로 연결하도록 확장될 수 있고, 이에 따라 도 1B에 도시된 바와 실질적으로 동일한 구조가 된다. 이러한 의미에서, 본 발명의 실시 예들은 사용자의 증가하는 요구 조건들을 맞추기 위하여 필요한 만큼 시스템의 점진적인 확장을 허용할 수 있다.
본 발명의 또 다른 실시 예들에서, 사용자들에 의해 요구되는 작업 부하들은 데이터에 집중하는 것(data-intensive)보다 연산에 더 집중(compute-intensive)-일 수 있다. 도 4c는 본 발명의 일 실시 예에 따른, 추가적인 서버 노드들을 포함하는 도 4에 도시된 구성의 확장을 보여준다.
도 4a에 도시된 바와 같이 6개의 데이터 저장 장치들의 하나의 세트(30A) 및 2개의 서버 노드들의 기본 구성으로 시작하여, 제3 서버 노드(20C)가 교차-연결들(12AC, 12BC)를 통해 제1 및 제2 스위치들(40A, 40B)과 연결된 제3 스위치(30C)와 함께 추가될 수 있다. 또는, 제3 서버 노드(20C)는 추가적인 스위치 대신에 패시브 상호연결 보드(passive interconnect board)(예를 들어, 서버 노드(20C) 및 스위치들(40A, 40B) 사이의 효율적인 직접 연결들)를 통해 제1 및 제2 스위치들(40A, 40B)와 연결될 수 있다. 이는 동일한 데이터 저장 장치들 세트로의 액세스를 유지하면서 시스템의 연산 능력을 향상시킬 수 있다. 연산 요구들이 더욱 증가하는 경우, 제4 노드(20D)가 제4 스위치(40D) 또는 패시브 연결 보드 중 하나를 통해 제1 및 제2 스위치들(40A, 40B)과 연결될 수 있다.
본문의 사용 사례는 2개의 서버 노드들(20A, 204) 상에서 구동하는 소프트웨어 스택이 데이터 저장 장치들(32)로의 전 대역폭을 달성하는 능력에 영향을 주는 병목 현상인 경우일 수 있으며, 이 경우, 좀 더 많은 서버 노드를 추가하는 것이 좀 더 많은 서버 연산 능력을 제공한다. 추가적인 스토리지가 요구되는 경우, 추가적인 데이터 저장 장치 세트들이 도 4B에 대하여 도시된 바와 유사한 방식으로 점진적으로 추가되어 도 1B에 도시된 바와 같이 24개의 데이터 저장 장치들 및 4개의 서버 노드들의 구조가 달성될 수 있다.
설명의 편의를 위하여, 본 발명의 실시 예들의 사상들이 4개 이하의 스위치들을 포함하는 구조의 맥락에서 설명되었다. 그러나, 본 발명의 범위가 이에 한정되는 것은 아니다. 예를 들어, 본 발명의 일부 실시 예들은 4개 이상의 스위치들을 포함할 수 있다.
유사한 방식을 사용할 경우, 본 발명의 실시 예들에 따른 적응적 다중 경로 패브릭들을 포함하는 데이터 저장 시스템들(10)의 변형들은, 예를 들어, 144GB/s의 전체 처리량에 대하여, 6개의 스위치들을 통해 36개의 데이터 장치들과 연결된 6개의 노드들을 포함할 수 있다. 다른 예로써, 도 5는 본 발명의 일 실시 예에 따른 192 GB/s의 전체 처리량(각각 약 4GB/s를 갖는 데이터 저장 장치에 대한 상술된 가정에 기반됨.)에 대하여 8개의 스위치들(40A, 40B, 40C, 40D, 40E, 40F, 40G, 40H)을 통해 48개의 데이터 저장 장치들과 연결된 8개의 서버 노드들(20A, 20B, 20C, 20D, 20E, 20F, 20G, 20H)을 포함하는 시스템을 보여주는 블록도이다.
이와 같이, 본 발명의 실시 예들에 따른 적응적 다중 경로 패브릭 구조는 서버 노드들의 그룹 및 고성능 멀티-포트 NVMe SSD들의 그룹을 사용하여 균형있고 구성 가능한 엔드-투-엔드 시스템 성능 프로파일(balanced and configurable end-to-end system performance profile)을 제공할 수 있다. 성능은 서버 노드들 및 엔드 포인트들을 통해 균형을 이루고, 성능은 단일 노드 고장에서 유지되고, 균형을 이룰 수 있다.
데이터 저장 시스템은, 예를 들어, 이더넷 연결을 통해 SAN을 제공할 수 있고, 다중 경로 패브릭은 서버 노드로의 기본 드라이브들 사이의 성능에 부합하는 이더넷을 통해 네트워크 스토리지 성능을 제공할 수 있다.
예를 들어, 시스템 성능 프로파일은 100GB/s 사용자 데이터 처리량; 서버 노드들 사이의 로우 레이턴시 내부 통신; 엔드포인트들 상의 데이터로의 고가용성 액세스 중 하나 또는 그 이상의 조합일 수 있다.
본 발명의 실시 예들은 적응적 다중 경로 패브릭 구조를 제공할 수 있다. 적응적 다중 경로 패브릭 구조는 서버 노드들의 그룹(PCIe 루트-콤플렉스들)을 멀티-포트 SSD들의 그룹과 연결하고; 서버 노드들의 개수, SSD들의 개수, 엔드-투-엔드 성능 규정(end-to-end performance specification)에 관하여 유연성(flexibility)을 제공하고; 서버 노드들 및 SSD들을 통해 엔드-투-엔드 부하 균형을 지원하고; SSD들의 멀티-포트들을 통해 한 쌍의 서버 노드들(HA-peers) 로부터 SSD들의 세트로의 예비 액세스를 제공하고; 여러 쌍의 HA-피어 노들들 사이의 교차-연결 대역폭을 제공하여 고장 복구 및 부하-균등화 시나리오들에서 모든 서버 노드들을 통해 대역폭을 리밸런싱하도록 하고; 모든 생존 노드에서 대역폭을 리밸런싱함으로써 엔드-투-엔드 시스템 성능의 저하 없이 단일 노드 고장을 견딜 수 있고; 자동 고장 검출 및 이후에 서버 노드들로의 SSD 엔드포인트들의 재할당 및 대역폭의 리밸런싱을 시작하는 능력을 제공한다.
본 발명의 실시 예들의 사상들은 유연하고 확장 가능한 방식으로 서버 노드들과 같은 PCIe 루트-컴플렉스들을 듀얼 -포트 NVMe SSD와 같은 멀티-포트 PCIe 엔드포인트들과 연결하는 기능; 단일 루트-콤플렉스 고장(HA)의 상황에서 성능 저하를 제한하면서 모든 PCIe 엔트포인트들을 계속적으로 액세스하는 기능; 루트-콤플렉스들 및 엔드포인트들 사이의 대역폭의 할당을 조정하는 기능; 고장 복구 또는 부하 밸런싱 시나리오에서, PCIe 엔드포인트들을 루트 컴플렉스들로 동적으로 재할당하는 기능; 호스트 루트-콤플렉스들 상의 오버헤드 없이 엔드포인트들 사이의 피어-투-피어 데이터 전송들을 수행하는 기능; 및 HA 피어 서버 노드들 사이의 로우-레이턴시 높은 처리량 통신을 수행하는 기능을 수행할 수 있다.
본 발명이 특정 예시적인 실시 예들과 관련하여 설명되었으나, 본 발명이 기재된 실시 예들에 한정되지 않으나, 반대로 첨부된 특허청구범위의 범위 및 사상 내에 포함된 동등한 배열들 및 다양한 변형들 및 그것들의 균등물을 아우르는 것으로 의도됨이 이해될 것이다.
예를 들어, 본 발명의 실시 예들은 PCIe 스위치들을 통해 서버 노드들로 연결되는 PCIe 포트들을 포함하는 솔리드 스테이트 드라이브들로써 컴퓨팅 자원에 관하여 설명되었으나, 본 발명의 실시 예들은 이에 한정되지 않는다. 예를 들어, 본 발명의 일부 실시 예들에서, 솔리드 스테이트 드라이브들은 둘 이상의 포트들을 포함할 수 있으나, 대신에 다양한 복수의 엔드포인트 포트들(예를 들어, 둘 이상의 포트들)을 포함하는 SSD의 사용도 포함할 수 있다. 또한, 본 발명의 일부 실시 예들에서, 서버 노드들은 복수의 포트들을 통해 패브릭에 연결될 수 있다. 예를 들어, 서버 노드는 다수의 호스트 링크를 통해 하나 이상의 스위치와 연결될 수 있고, 그로 인하여, 호스트 링크 또는 스위치가 고장인 상황에서, 서버 노드들 및 컴퓨팅 자원들 사이의 예비 연결들을 제공한다. 호스트 링크들 및 스위치들의 대역폭에 따라, 이러한 예비 연결들은, 고장 상태에서도, 서버 노드들이 전 대역폭으로 동작하도록 할 수 있다.
일부 실시 예들에 따르면, 솔리드 스테이트 드라이브들은 이더넷, IB(Infiniband®), FC(Fibre Channel), SAS(serially attached SCSI) 등과 같은 다른 인터페이스들을 사용할 수 있다. 예를 들어, 이더넷 인터페이스의 경우에서, PCIe 스위치는 네트워크(이더넷) 스위치로 교체될 수 있다.
일부 실시 예들에 따르면, 적응적 다중 결로 패브릭을 사용하여 연결된 자원들은 하드 디스크 드라이브들, 테이프 드라이브들, DRAM과 같은 휘발성 메모리와 같은 다른 형태의 컴퓨팅 자원들, 및 벡터 프로세서들, GPU, DSP, FPGA와 같은 컴퓨팅 유닛들일 수 있다.
본 발명의 또 다른 실시 예에서, 개별적인 컴퓨팅 자원들 각각은 복수의 포트들을 포함하는 것을 필요로 하지 않는다. 예를 들어, 각 컴퓨팅 자원 세트는 개별적인 컴퓨팅 자원들 각각으로의 링크들 및 2개의 연결된 스위치들(40)로 링크들을 제공하는 어댑터 또는 스위치를 포함할 수 있다. 좀 더 상세한 예로써, 데이터 저장 장치들(32) 각각은 각 데이터 저장 장치(32)가 데이터 저장 스토리지 장치들의 세트(30)와 연관된 어댑터와 연결되는 단일 포트 데이터 저장 장치일 수 있다. 차례대로, 어댑터는 2개의 스위치들(40)과 연결될 수 있다. 이러한 방식으로, 개별적인 데이터 저장 장치들 각각이 단일-포트 장치이더라도, 데이터 저장 장치 세트(30)는 복수의 스위치들(40)에 여전히 연결된다. 이러한 기법은 상술된 바와 같이 다른 형태들의 컴퓨팅 자원들에 적용될 수 있다.
설명의 편의를 위하여, 인터페이스들의 상대적인 대역폭들은 도시된 실시 예들에서 동일하나,(예를 들어, 데이터 저장 장치들의 각 세트에 대하여 6B, 각 서버 노드 및 대응하는 스위치 사이의 연결에 대하여 8B, 및 스위치들 사이의 각 교차 연결에 대하여 2B) 본 발명의 실시 예들이 이에 한정되는 것은 아니며, 본 발명의 실시 예들은 다른 대역폭(예를 들어, 인터페이스들과 연관된 컴퓨팅 자원들의 처리량과 대응하는 대역폭)을 제공하는 인터페이스들을 포함하는 실시 예들을 더 포함할 수 있다. 단일 서버 노드의 고장 상황에서, 적응적 다중 경로 패브릭과 연결된 자원들의 전 성능을 유지하도록 설계된 본 발명의 일부 실시 예들에서, 교차-연결들의 전체 대역폭(또는 교차-연결 대역폭)은 단일 노드에 의해 일반적으로 제공될 수 있는 대역폭과 적어도 동일하기에 충분하다. 본 발명의 일부 실시 예들이 본문에서, 교차-연결들 전부가 동일한 대역폭을 갖고, HA 쌍들 외부의 모든 스위치에 연결된 것으로 설명되었으나, 본 발명의 실시 예들이 이에 한정되는 것은 아니다. 예를 들어, 일부 실시 예들에서, 교차-연결들은 다른 대역폭을 갖고, 일부 실시 예들에서, 교차-연결들은 다른 스위치들 전부보다 적은 개수로 형성된다.
설명의 편의를 위하여, 8개 이하의 호스트들을 포함하는 실시 예들이 설명되었으나, 본 발명의 실시 예들이 이에 한정되는 것은 아니며, 유사한 개념이 다양한 수의 호스트들로 구현될 수 있다.
유사하게, 본 발명의 실시 예들이 정확히 6개의 데이터 저장 장치들의 세트들에 한정되는 것은 아니며, 각 세트에서 다수의 SSD들(예를 들어, 각 세트에서 동일한 개수 또는 각 세트에서 다양한 개수들)을 포함하는 실시 예들을 더 포함할 수 있다.
본 발명의 실시 예들의 일부 사상들은 패브릭 고장 검출 및 재구성 기능들을 사용하여 스토리지 관리 툴들과 통신하여 스토리지 기반 시설 관리를 향상시킨다.

Claims (24)

  1. 컴퓨팅 자원들로의 고가용성 액세스를 제공하는 컴퓨팅 시스템에 있어서,
    복수의 인터페이스들;
    복수의 컴퓨팅 자원 세트들; 및
    적어도 3개의 스위치들을 포함하고,
    상기 복수의 컴퓨팅 자원 세트들 각각은 복수의 컴퓨팅 자원들을 포함하고,
    상기 적어도 3개의 스위치들 각각은 호스트 링크를 통해 상기 인터페이스들 중 대응하는 하나와 연결되고, 복수의 자원 연결들을 통해 상기 복수의 컴퓨팅 자원 세트들 중 대응하는 하나와 연결되고, 상기 스위치들 중 하나가 고장인 경우, 상기 스위치들 사이의 복수의 교차-연결들을 통해 상기 스위치들 중 남은 것들로 데이터 트래픽이 분산되도록 구성되는 컴퓨팅 시스템.
  2. 제 1 항에 있어서,
    상기 적어도 3개의 스위치들은
    제1 스위치;
    제2 스위치; 및
    제1 교차-연결을 통해 상기 제1 스위치와 직접적으로 연결되고, 제2 교차-연결을 통해 상기 제2 스위치와 직접적으로 연결되는 제3 스위치를 포함하는 컴퓨팅 시스템.
  3. 제 2 항에 있어서,
    제1 호스트 링크를 통해 상기 제1 스위치와 연결되고, 상기 복수의 인터페이스들 중 제1 인터페이스를 포함하는 제1 서버 노드; 및
    제2 호스트 링크를 통해 상기 제2 스위치와 연결되고, 상기 복수의 인터페이스들 중 제2 인터페이스를 포함하는 제2 서버 노드를 더 포함하는 컴퓨팅 시스템.
  4. 제 3 항에 있어서,
    제3 호스트 링크를 통해 상기 제3 스위치와 연결되는 제3 서버 노드를 더 포함하는 컴퓨팅 시스템.
  5. 제 4 항에 있어서,
    상기 제1 서버 노드와 직접적으로 연결되는 제1 보조 스위치;
    상기 제2 서버 노드와 직접적으로 연결되는 제2 보조 스위치;
    상기 제3 서버 노드와 직접적으로 연결되는 제3 보조 스위치;
    상기 제1 보조 스위치를 상기 제2 보조 스위치와 직접적으로 연결하는 제1 교차-연결;
    상기 제1 보조 스위치를 상기 제3 보조 스위치와 직접적으로 연결하는 제2 교차-연결;
    상기 제2 보조 스위치를 상기 제3 보조 스위치와 직접적으로 연결하는 제3 교차-연결을 더 포함하는 컴퓨팅 시스템.
  6. 제 3 항에 있어서,
    상기 복수의 컴퓨팅 자원 세트들 중 제1 컴퓨팅 자원 세트는 제1 데이터 저장 장치 세트를 포함하고,
    상기 제1 데이터 저장 장치 세트의 데이터 저장 장치들 각각은 각각은 상기 복수의 자원 연결들 중 제1 자원 연결을 통해 상기 제1 스위치와 직접적으로 연결된 제1 포트 및 상기 복수의 자원 연결들 중 제2 자원 연결을 통해 상기 제2 스위치와 직접적으로 연결된 제2 포트를 포함하고,
    상기 복수의 컴퓨팅 자원 세트들 중 제2 컴퓨팅 자원 세트는 제2 데이터 저장 장치 세트를 포함하고,
    상기 제2 데이터 저장 장치 세트의 데이터 저장 장치들 각각은 각각은 상기 복수의 자원 연결들 중 제3 자원 연결을 통해 상기 제1 스위치와 직접적으로 연결된 제3 포트 및 상기 복수의 자원 연결들 중 제4 자원 연결을 통해 상기 2 스위치와 직접적으로 연결되는 제4 포트를 포함하는 컴퓨팅 시스템.
  7. 제 6 항에 있어서,
    제3 교차-연결을 통해 상기 제1 스위치와 직접적으로 연결되고, 제4 교차-연결을 통해 상기 제2 스위치와 직접적으로 연결되는 제4 스위치를 더 포함하는 컴퓨팅 시스템.
  8. 제 7 항에 있어서,
    제3 데이터 저장 장치 세트를 더 포함하고,
    상기 제3 데이터 저장 장치 세트의 데이터 저장 장치들 각각은 제5 자원 연결을 통해 상기 제3 스위치와 직접적으로 연결되는 제5 포트 및 제6 자원 연결을 통해 상기 제4 스위치와 직접적으로 연결되는 제6 포트를 포함하는 컴퓨팅 시스템.
  9. 제 8 항에 있어서,
    제4 호스트 링크를 통해 상기 제4 스위치와 직접적으로 연결된 제4 서버 노드를 더 포함하는 컴퓨팅 시스템.
  10. 제 9 항에 있어서,
    제4 데이터 저장 장치 세트를 더 포함하고,
    상기 제4 데이터 저장 장치 세트의 데이터 저장 장치들 각각은 제7 자원 연결을 통해 상기 제3 스위치와 직접적으로 연결되는 제7 포트 및 제8 자원 연결을 통해 상기 제4 스위치와 직접적으로 연결되는 제8 포트를 포함하는 컴퓨팅 시스템.
  11. 제 6 항에 있어서,
    상기 스위치들 각각은 다른 스위치의 고장을 검출하고, 상기 스위치와 대응하는 상기 교차-연결 및 상기 호스트 링크를 통해 상기 제1 세트의 데이터 저장 장치들 및 상기 제2 세트의 데이터 저장 장치들로의 액세스를 제공하도록 구성되는 컴퓨팅 시스템.
  12. 제 1 항에 있어서,
    상기 컴퓨팅 시스템은 N개(단, N은 자연수)의 인터페이스들을 포함하고,
    B(단, B는 양수)의 대역폭 단위는 상기 컴퓨팅 자원 세트들의컴퓨팅 자원들 중 하나가 전 대역폭(full bandwidth)로 동작하는데 요구되는 대역폭의 량을 가리키고,
    상기 복수의 자원 연결들 각각은 적어도 1×B의 대역폭을 포함하고,
    상기 복수의 컴퓨팅 자원 세트들 각각은 K(단, K는 자연수)개 이하의 컴퓨팅 자원들을 포함하고,
    상기 복수의 인터페이스들 각각의 호스트 링크 각각은 K×B의 정상 트래픽 대역폭 및 K×B 이상의 최대 트래픽 대역폭을 지원하고,
    상기 복수의 교차 연결들 각각은 적어도 K×B/(N-1)의 대역폭을 포함하는 컴퓨팅 시스템.
  13. 제 1 항에 있어서,
    상기 스위치들은 PCIe(Peripheral Component Interconnect Express) 스위치이고,
    상기 호스트 링크들 및 상기 자원 연결들은 PCIe 버스 링크들인 컴퓨팅 시스템.
  14. 적어도 2개의 고-가용성 페어들(high-availability pairs)을 포함하고,
    상기 고 가용성 페어들 각각은:
    제1 스위치;
    제2 스위치;
    제1 호스트 링크를 통해 상기 제1 스위치와 연결되는 제1 인터페이스;
    제2 호스트 링크를 통해 상기 제2 스위치와 연결되는 제2 인터페이스;
    제1 자원 연결을 통해 상기 제1 스위치와 연결되고, 제2 자원 연결을 통해 상기 제2 스위치와 연결되는 제1 컴퓨팅 자원 세트;
    제3 자원 연결을 통해 상기 제1 스위치와 연결되고, 제4 자원 연결을 통해 상기 제2 스위치와 연결되는 제2 컴퓨팅 자원 세트;
    복수의 제1 교차-연결들; 및
    복수의 제2 교차-연결을 포함하고,
    상기 복수의 제1 교차-연결들 각각은 상기 제1 스위치를 상기 다른 고-가용성 페어들 각각의 각 스위치로 직접적으로 연결하고, 상기 제2 교차-연결들 각각은 상기 제2 스위치를 상기 다른 고-가용성 페어들 각각의 각 스위치로 직접적으로 연결하는 컴퓨팅 시스템.
  15. 제 14 항에 있어서,
    상기 제1 컴퓨팅 자원 세트는 제1 데이터 저장 장치 세트를 포함하고, 상기 제1 데이터 저장 장치 세트의 데이터 저장 장치들 각각은 상기 제1 자원 연결을 통해 상기 제1 스위치와 직접적으로 연결되는 제1 포트 및 상기 제2 자원 연결을 통해 상기 제2 스위치와 직접적으로 연결되는 제2 포트를 포함하고,
    상기 제2 컴퓨팅 자원 세트는 제2 데이터 저장 장치 세트를 포함하고, 상기 제2 데이터 저장 장치 세트의 데이터 저장 장치들 각각은 상기 제3 자원 연결을 통해 상기 제1 스위치와 직접적으로 연결되는 제3 포트 및 상기 제4 자원 연결을 통해 상기 제2 스위치와 직접적으로 연결되는 제4 포트를 포함하는 컴퓨팅 시스템.
  16. 제 15 항에 있어서,
    상기 제1 스위치는 상기 제2 스위치의 고장을 검출하고, 상기 제1 호스트 링크 및 상기 제1 교차-연결을 통해 상기 제1 세트의 데이터 저장 장치들 및 상기 제2 세트의 데이터 저장 장치들로의 액세스를 제공하도록 구성되는 컴퓨팅 시스템.
  17. 제 14 항에 있어서,
    상기 컴퓨팅 시스템은 N개(단, N은 자연수)의 서버 노드들을 포함하고,
    B(단, B는 양수)의 대역폭 단위는 상기 컴퓨팅 자원들 중 하나가 전 대역폭(full bandwidth)로 동작하는데 요구되는 대역폭의 량이고,
    상기 자원 연결들 각각은 적어도 1×B의 대역폭을 포함하고,
    상기 컴퓨팅 자원 세트들 각각은 K(단, K는 자연수)개 이하의 컴퓨팅 자원들을 포함하고,
    상기 서버 노드들 각각은 K×B의 정상 대역폭을 지원하고, K×B 이상의 최대 대역폭을 지원하고,
    상기 교차 연결들 각각은 적어도 K×B/(N-1)의 대역폭을 포함하는 컴퓨팅 시스템.
  18. 제 14 항에 있어서,
    상기 스위치들은 PCIe(Peripheral Component Interconnect Express) 스위치들이고,
    상기 호스트 링크들 및 상기 자원 연결들은 PCIe 버스 링크들인 컴퓨팅 시스템.
  19. 제 14 항에 있어서,
    상기 적어도 2개의 고-가용성 페어들은
    제1 고-가용성 페어;
    제2 고-가용성 페어;
    제3 고-가용성 페어; 및
    제4 고-가용성 페어를 포함하는 컴퓨팅 시스템.
  20. 제1 스위치;
    제2 스위치;
    제1 교차-연결을 통해 상기 제1 스위치와 직접적으로 연결되고, 제2 교차-연결을 통해 상기 제2 스위치와 직접적으로 연결되는 제3 스위치;
    제1 컴퓨팅 자원 세트; 및
    제2 컴퓨팅 자원 세트를 포함하고,
    상기 제1 컴퓨팅 자원 세트 각각은 제1 자원 연결을 통해 상기 제1 스위치와 직접적으로 연결된 제1 포트 및 제2 자원 연결을 통해 상기 제2 스위치와 직접적으로 연결되는 제2 포트를 포함하고,
    상기 제2 컴퓨팅 자원 세트 각각은 제3 자원 연결을 통해 상기 제1 스위치와 직접적으로 연결되는 제3 포트 및 제4 자원 연결을 통해 상기 제2 스위치와 직접적으로 연결되는 제4 포트를 포함하는 예비 자원 연결 패브릭.
  21. 제 20 항에 있어서,
    상기 제1 스위치는 상기 제2 스위치의 고장을 검출하고, 상기 제1 교차-연결을 통해 상기 제1 컴퓨팅 자원 세트 및 상기 제2 컴퓨팅 자원 세트로의 액세스를 제공하도록 구성되는 예비 자원 연결 패브릭.
  22. 제 20 항에 있어서,
    제3 자원 연결을 통해 상기 제1 스위치와 직접적으로 연결되고, 제4 자원 연결을 통해 상기 제2 스위치와 직접적으로 연결되는 제4 스위치를 더 포함하는 예비 자원 연결 패브릭.
  23. 제 22 항에 있어서,
    제5 자원 연결을 통해 상기 제3 스위치와 직접적으로 연결되고, 제6 자원 연결을 통해 상기 제4 스위치와 직접적으로 연결되는 제3 컴퓨팅 자원 세트를 더 포함하는 예비 자원 연결 패브릭.
  24. 제 23 항에 있어서,
    제7 자원 연결을 통해 상기 제3 스위치와 직접적으로 연결되고, 제8 자원 연결을 통해 상기 제4 스위치와 직접적으로 연결되는 제4 컴퓨팅 자원 세트를 더 포함하는 예비 자원 연결 패브릭.


KR1020170071853A 2016-08-19 2017-06-08 고 가용성 및 균등한 성능을 위한 적응적 다중 경로 패브릭 KR102191242B1 (ko)

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 US10365981B2 (en) 2016-08-19 2016-11-04 Adaptive multipath fabric for balanced performance and high availability
US15/344,438 2016-11-04

Publications (2)

Publication Number Publication Date
KR20180020873A true KR20180020873A (ko) 2018-02-28
KR102191242B1 KR102191242B1 (ko) 2020-12-15

Family

ID=61191712

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170071853A KR102191242B1 (ko) 2016-08-19 2017-06-08 고 가용성 및 균등한 성능을 위한 적응적 다중 경로 패브릭

Country Status (5)

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

Families Citing this family (22)

* 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
US11461258B2 (en) 2016-09-14 2022-10-04 Samsung Electronics Co., Ltd. Self-configuring baseboard management controller (BMC)
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
US10372659B2 (en) 2016-07-26 2019-08-06 Samsung Electronics Co., Ltd. Multi-mode NMVE over fabrics devices
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
US11144496B2 (en) 2016-07-26 2021-10-12 Samsung Electronics Co., Ltd. Self-configuring SSD multi-protocol support in host-less environment
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
US10365981B2 (en) * 2016-08-19 2019-07-30 Samsung Electronics Co., Ltd. Adaptive multipath fabric for balanced performance and high availability
CA3060368C (en) * 2017-04-17 2020-07-28 Cerebras Systems Inc. Dataflow triggered tasks for accelerated deep learning
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 財團法人工業技術研究院 改變冗餘處理節點的處理器及其方法
CN114930312A (zh) * 2020-03-25 2022-08-19 华为技术有限公司 一种通信方法及相关装置
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 神雲科技股份有限公司 伺服系統
EP4387196A1 (en) * 2022-12-13 2024-06-19 Barcelona Supercomputing Center-Centro Nacional de Supercomputación System and method for connecting complete interconnection networks for high-performance computers

Citations (2)

* 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
US20090204743A1 (en) * 2008-02-08 2009-08-13 Tetsuya Inoue Storage subsystem and control method therefof

Family Cites Families (26)

* 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
US7307948B2 (en) * 2002-10-21 2007-12-11 Emulex Design & Manufacturing Corporation System with multiple path fail over, fail back and load balancing
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
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
KR20110067111A (ko) 2008-09-25 2011-06-21 엘에스아이 코포레이션 외부 스토리지 어레이에서의 대역외 관리 애플리케이션을 인증하기 위한 방법 및/또는 장치
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
US9003090B1 (en) * 2014-03-25 2015-04-07 DSSD, Inc. PCI express fabric routing for a fully-connected mesh topology
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
CN104965677B (zh) * 2015-06-26 2018-04-13 北京百度网讯科技有限公司 存储系统
US10034407B2 (en) * 2016-07-22 2018-07-24 Intel Corporation Storage sled for 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 (2)

* 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
US20090204743A1 (en) * 2008-02-08 2009-08-13 Tetsuya Inoue Storage subsystem and control method therefof

Also Published As

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

Similar Documents

Publication Publication Date Title
KR102191242B1 (ko) 고 가용성 및 균등한 성능을 위한 적응적 다중 경로 패브릭
JP5176039B2 (ja) 冗長ストレージサブシステム間におけるsasraidコントローラデバイスチャネルの接続のためのシステム、及び方法
Yu et al. Migration based protection for virtual infrastructure survivability for link failure
US7356728B2 (en) Redundant cluster network
JP6137313B2 (ja) 高可用性コンピュータシステム
US8788753B2 (en) Systems configured for improved storage system communication for N-way interconnectivity
US20130067197A1 (en) Computer subsystem and computer system
KR20130049720A (ko) 가상 sas 익스팬더를 통해 공유된 서버 직접 연결 저장장치
CN105472047A (zh) 存储系统
US11537443B2 (en) Reconfigurable computing pods using optical networks
CN112188325B (zh) 使用具有一对多光交换机的光网络的可重新配置的计算平台
WO2017167106A1 (zh) 存储系统
JP4483168B2 (ja) ディスクアレイ制御装置
US8160061B2 (en) Redundant network shared switch
US7373546B2 (en) Cluster network with redundant communication paths
US10469288B2 (en) Efficient data transfer in remote mirroring connectivity on software-defined storage systems
KR20020022164A (ko) 다중 호스트 컴퓨터와 레이드 사이의 중복연결을 위한 장치
CN106055276A (zh) 一种非集中式集群存储系统
US20050050243A1 (en) Modified core-edge topology for a fibre channel network
US20060233164A1 (en) Method to separate fibre channel switch core functions and fabric management in a storage area network
Xia et al. Stop rerouting! Enabling ShareBackup for failure recovery in data center networks

Legal Events

Date Code Title Description
A201 Request for examination
A302 Request for accelerated examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant