CN106776159B - 具有故障转移的快速***元件互连网络***与操作方法 - Google Patents
具有故障转移的快速***元件互连网络***与操作方法 Download PDFInfo
- Publication number
- CN106776159B CN106776159B CN201510952025.6A CN201510952025A CN106776159B CN 106776159 B CN106776159 B CN 106776159B CN 201510952025 A CN201510952025 A CN 201510952025A CN 106776159 B CN106776159 B CN 106776159B
- Authority
- CN
- China
- Prior art keywords
- host
- pci express
- management host
- switch
- memory address
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 49
- 230000002093 peripheral effect Effects 0.000 title claims abstract description 36
- 238000011144 upstream manufacturing Methods 0.000 claims abstract description 51
- 230000015654 memory Effects 0.000 claims description 210
- 230000008878 coupling Effects 0.000 claims description 24
- 238000010168 coupling process Methods 0.000 claims description 24
- 238000005859 coupling reaction Methods 0.000 claims description 24
- 238000011017 operating method Methods 0.000 claims description 7
- 230000008569 process Effects 0.000 claims description 5
- 238000007726 management method Methods 0.000 description 223
- 238000013461 design Methods 0.000 description 12
- 230000006870 function Effects 0.000 description 11
- 238000004891 communication Methods 0.000 description 9
- 238000005192 partition Methods 0.000 description 9
- 238000010586 diagram Methods 0.000 description 8
- 230000007246 mechanism Effects 0.000 description 8
- 238000013519 translation Methods 0.000 description 8
- 238000013507 mapping Methods 0.000 description 6
- 230000008901 benefit Effects 0.000 description 5
- 239000004744 fabric Substances 0.000 description 5
- 230000008859 change Effects 0.000 description 4
- 238000001514 detection method Methods 0.000 description 4
- 235000008694 Humulus lupulus Nutrition 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- PCHJSUWPFVWCPO-UHFFFAOYSA-N gold Chemical compound [Au] PCHJSUWPFVWCPO-UHFFFAOYSA-N 0.000 description 2
- 239000010931 gold Substances 0.000 description 2
- 229910052737 gold Inorganic materials 0.000 description 2
- 238000011084 recovery Methods 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 239000004606 Fillers/Extenders Substances 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4004—Coupling between buses
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
- G06F11/202—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
- G06F11/2023—Failover techniques
- G06F11/2033—Failover techniques switching over of hardware resources
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
- G06F11/2002—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where interconnections or communication control functionality are redundant
- G06F11/2007—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where interconnections or communication control functionality are redundant using redundant communication media
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1415—Saving, restoring, recovering or retrying at system level
- G06F11/1417—Boot up procedures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1415—Saving, restoring, recovering or retrying at system level
- G06F11/142—Reconfiguring to eliminate the error
- G06F11/1423—Reconfiguring to eliminate the error by reconfiguration of paths
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
- G06F11/2017—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where memory access, memory control or I/O control functionality is redundant
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
- G06F11/202—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
- G06F11/2023—Failover techniques
- G06F11/2028—Failover techniques eliminating a faulty processor or activating a spare
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
- G06F11/202—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
- G06F11/2038—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant with a single idle spare processing component
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
- G06F11/202—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
- G06F11/2043—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant where the redundant components share a common memory address space
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4004—Coupling between buses
- G06F13/4022—Coupling between buses using switching circuits, e.g. switching matrix, connection or expansion network
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4004—Coupling between buses
- G06F13/4027—Coupling between buses using bus bridges
- G06F13/404—Coupling between buses using bus bridges with address mapping
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4282—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
- G06F11/2097—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements maintaining the standby controller/processing unit updated
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Computer Hardware Design (AREA)
- Mathematical Physics (AREA)
- Small-Scale Networks (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
一种具有故障转移的快速***元件互连(PCIe)网络***与其操作方法。快速***元件互连(PCIe)网络***包括管理主机、PCIe交换机、第一非透明桥以及第二非透明桥。PCIe交换机的上游端口电性耦接至管理主机。第一非透明桥配置于PCIe交换机,用以电性耦接至计算主机的第一PCIe端口。第一非透明桥可以将计算主机的第一PCIe端口耦接到管理主机。第二非透明桥配置于PCIe交换机,用以电性耦接至计算主机的第二PCIe端口。第二非透明桥可以将计算主机的第二PCIe端口耦接到管理主机。
Description
技术领域
本公开涉及一种快速***元件互连(以下称PCIe)装置,且特别涉及一种具有故障转移能力的快速***元件互连网络***与操作方法。
背景技术
快速***元件互连(Peripheral Component Interconnect Express,PCIe)是由PCI特别兴趣小组(PCI Special Interest Group,PCI-SIG)开发的工业标准计算机扩展技术(industry standard computer expansion technology)。PCIe最初被设计为一个局部总线互联技术(local bus interconnect technology),用于连接一台机器内的CPU、GPU和I/O设备,并从此进展而成为具有点至点链接(point-to-point links)、逐中继段流量控制(hop-by-hop flow control)、端至端的重发(end-to-end retransmission)等特征的一个完全成熟的交换网络(switched network)。PCIe也可作为多板之间的被动背板互连(passive backplane interconnect among boards),以及用以连接机器与外部设备(例如存储盒)的扩展接口。
PCIe网络是具有串行点对点全双工通道(serial point-to-point full duplexlanes)的交换式网络。PCIe设备通过由一个或多个通道所组成的链路而连接到此PCIe网络。近日,利用PCIe接口将多个服务器(servers)或虚拟化I/O设备(virtualized I/Odevices)互连的扩展PCIe已经成为一个有趣的可能性。例如,PCIe的应用可以进一步扩展到机架内部互连(intra-rack interconnect)。PCIe交换机可以取代标准的机架顶部(topof rack,TOR)以太网交换机(Ethernet switch),也就是PCIe可以在同一机架内连接多个主机(hosts,例如服务器)。被允许连接到PCIe交换机的输入输出(I/O)设备可以分享于同一个机架内所有服务器。机架中的所有服务器之间也可以通过PCIe链路(PCIe links)彼此进行通信。
扩展PCIe到多服务器环境带来了几个新的挑战。传统的PCIe架构的主要限制是,在任何时间点,每一个PCIe域只有一个活动的根复合(active root complex)。其结果是没有两个服务器被允许共存于相同的PCIe域。为了PCIe成为机架内部主机间通信互连的可行***,需要额外的故障转移(fail-over)机制,以确保在任何单一控制平台(controlplane)和数据平台(data plane)故障的情况下网络操作仍能继续进行。
发明内容
本公开提供一种快速***元件互连(以下称PCIe)网络***与其操作方法,在PCIe网络环境中具有故障转移(fail-over)能力。
本公开的实施例提供一种PCIe网络***,包括第一管理主机、PCIe交换机、第一非透明桥以及第二非透明桥。PCIe交换机的第一上游端口电性耦接至第一管理主机。第一非透明桥配置于PCIe交换机,用以电性耦接至第一计算主机的第一PCIe端口。第一非透明桥可以将第一计算主机的第一PCIe端口耦接到第一管理主机。第二非透明桥配置于PCIe交换机,用以电性耦接至第一计算主机的第二PCIe端口。第二非透明桥可以将第一计算主机的第二PCIe端口耦接到第一管理主机。
本公开的实施例提供一种PCIe网络***的操作方法,包括:配置第一管理主机;配置PCIe交换机,其中PCIe交换机的第一上游端口电性耦接至第一管理主机;配置第一非透明桥于PCIe交换机,用以电性耦接至第一计算主机的第一PCIe端口;配置第二非透明桥于PCIe交换机,用以电性耦接至第一计算主机的第二PCIe端口;由第一非透明桥将第一计算主机的第一PCIe端口耦接到第一管理主机;以及由第二非透明桥将第一计算主机的第二PCIe端口耦接到第一管理主机。
本公开的实施例提供一种PCIe网络***,包括PCIe交换机、第一管理主机、第二管理主机以及第一非透明桥。第一管理主机电性耦接至PCIe交换机的第一上游端口。第二管理主机电性耦接至PCIe交换机的第二上游端口。第一非透明桥配置于PCIe交换机,用以电性耦接至第一计算主机的PCIe端口。当第一管理主机管理PCIe交换机时,第一非透明桥可以将第一计算主机的PCIe端口耦接到第一管理主机。当第二管理主机检测到第一管理主机故障时,第二管理主机进行故障转移程序以取代第一管理主机来管理PCIe交换机,使得第一非透明桥将第一计算主机的PCIe端口改为耦接到第二管理主机。
本公开的实施例提供一种PCIe网络***的操作方法,包括:配置PCIe交换机;配置第一管理主机,其中第一管理主机电性耦接至PCIe交换机的第一上游端口;配置第二管理主机,其中第二管理主机电性耦接至该PCIe交换机的第二上游端口;以及配置第一非透明桥于PCIe交换机,用以电性耦接至第一计算主机的PCIe端口;当第一管理主机管理PCIe交换机时,由第一非透明桥将第一计算主机的PCIe端口耦接到第一管理主机;以及当第二管理主机检测到第一管理主机故障时,由第二管理主机进行故障转移程序以取代第一管理主机来管理PCIe交换机,使得第一非透明桥将第一计算主机的PCIe端口改为耦接到第二管理主机。
基于上述,本公开实施例所述PCIe网络***与操作方法提出了一个基于容错PCIe的局域网络架构(fault-tolerant PCIe-based area network architecture),其中结合了故障转移机制。所述PCIe网络***与操作方法采取了PCIe架构特性的有效优点,并显著减少了由PCIe根复合(PCIe root complex)或PCIe链路/开关(PCIe link/switch)的故障所造成的服务中断时间(service disruption time)。
为让本公开的上述特征和优点能更明显易懂,下文特举实施例,并配合附图作详细说明如下。
附图说明
图1是依照本公开实施例说明一种快速***元件互连(PCIe)网络***的电路方块图。
图2与图3是依照本公开一实施例说明图1所示管理主机、计算主机与计算主机的存储器地址空间示意图。
图4是依照本公开实施例说明图1所示PCIe网络***的操作方法的流程示意图。
图5是依照本公开另一实施例说明图1所示PCIe网络***的操作方法的流程示意图。
图6是依照本公开实施例说明图5所示步骤S540的详细流程示意图。
图7是依照本公开实施例说明图1所示管理主机的操作时序示意图。
【符号说明】
100:PCIe网络***
110:PCIe交换机
111:第一上游端口
112:第二上游端口
121:第一管理主机
122:第二管理主机
123:以太网络
131:第一计算主机
132:第二计算主机
133:第三计算主机
134:第四计算主机
141:第一非透明桥
142:第二非透明桥
143:第三非透明桥
144:第四非透明桥
145:第五非透明桥
146:第六非透明桥
147:第七非透明桥
148:第八非透明桥
151:第一以太网络接口卡
152:第二以太网络接口卡
161、162:PCIe端口
CH1、CH2、MH:本地存储器地址
CH1’、CH2’、MH’、CH1”、CH2”、MH”:扩展存储器地址
S410、S420、S510~540、S541~S544:步骤
VS1:第一虚拟交换机
VS2:第二虚拟交换机
具体实施方式
在本申请说明书全文(包括权利要求书)中所使用的“耦接(或连接)”一词可指任何直接或间接的连接手段。举例而言,若文中描述第一装置耦接(或连接)于第二装置,则应该被解释成该第一装置可以直接连接于该第二装置,或者该第一装置可以通过其他装置或某种连接手段而间接地连接至该第二装置。另外,凡可能之处,在附图及实施方式中使用相同标号的元件/构件/步骤代表相同或类似部分。不同实施例中使用相同标号或使用相同用语的元件/构件/步骤可以相互参照相关说明。
***元件互连(Peripheral Component Interconnect,PCI)标准允许总线表现得像桥(bridge),其将局部处理器总线与***元件隔离,从而允许计算机的中央处理单元(CPU)较快速地运行。PCI的后继标准被称为快速PCI(PCI Express,简称为PCIe)。PCIe提供较高的性能,并维持与现有PCI应用的软件相容性。与PCI相比,具有三个层(交易层(transaction layer)、数据链路层(data link layer)和物理层(physical layer))的PCIe协议(protocol)更为复杂。在交易层中,PCIe以由时间分离的请求与响应来实施分割交易(split transactions)。数据链路层对由交易层产生的交易层分组(TLP)排序,确保经由确认协议(acknowledgement protocol)而在两个端点之间可靠地递送TLP,并要求对未确认的/坏的(unacknowledged/bad)TLP进行重放(replay),且初始化并管理流量控制信用。物理层规格划分为对应于电气规格和逻辑规格的两个子层。
在PCIe***中,根复合装置(root complex device)将处理器和存储器子***连接到包括一个或一个以上交换装置的PCIe交换结构(Switch Fabrics)。PCIe是使用点对点架构。类似于PCI***中的主桥(host bridge)。根复合装置(管理主机)产生如处理器行为的交易请求。根复合装置的功能可实现为离散装置,或可与处理器集成。
下述诸实施例将提出基于容错PCIe的局域网络架构(fault-tolerant PCIe-based rack area network architecture),其中结合了故障转移机制。下述诸实施例采取了PCIe架构特性的有效优点,以显著减少由PCIe根复合(PCIe root complex)或PCIe链路/开关(PCIe link/switch)的故障所造成的服务中断时间(service disruption time)。在操作原型的实证测试显示,PCIe根复合故障对数据平台零影响,并会为控制平台招致小幅的服务中断时间。对于冗余PCIe数据路径,PCIe链路/开关故障所导致的服务中断时间主要来自于目标端点(target end-point)的故障检测(failure detection)与地址重映射(address re-mapping)相关的延迟。
下述诸实施例将巧妙地利用非透明桥(non-transparent bridge,NTB)。非透明桥被设计成隔离PCIe域,但提供了存储器地址转译(memory address translation),以便于从一个PCIe域存取在另一个PCIe域中的资源。非透明桥是一种标准PCIe设备,故不再赘述。
图1是依照本公开实施例说明一种快速***元件互连(PCIe)网络***100的电路方块图。PCIe网络***100包括PCIe交换机110、第一管理主机121、第二管理主机122、第一计算主机131、第二计算主机132、第三计算主机133、第四计算主机134、第一非透明桥141、第二非透明桥142、第三非透明桥143、第四非透明桥144、第五非透明桥145、第六非透明桥146、第七非透明桥147以及第八非透明桥148。图1所示管理主机的数量、计算主机的数量与非透明桥的数量可以依据设计需求来决定,而不限于图1所示数量。依照应用需求,PCIe网络***100可以被应用在服务器机架中,或应用于其他环境中。基于PCIe的多主机机架局域网络架构(PCIe-based multi-host rack area networking architecture)的关键构件是机架顶部(top of rack,TOR)交换机。在机架中的每个机器或计算主机(例如服务器)通过两个独立的PCIe扩充卡和两条PCIe电缆连接到这个PCIe交换机的两个端口,并且以PCIe向机架内的其他计算主机进行通信,而且通过机架顶部交换机(PCIe交换机)的以太网端口(例如第一以太网络接口卡151与第二以太网络接口卡152)向机架外的机器进行通信。
PCIe交换机110的第一上游端口(upstream port)111电性耦接至第一管理主机121。PCIe交换机110的第二上游端口(upstream port)112电性耦接至第二管理主机122。PCIe网络***100设置了两个管理主机,分别为第一管理主机121与第二管理主机122,一个作为主管理主机(master management host,MMH),另一个作为备份管理主机(backupmanagement host,BMH)。主管理主机与备份管理主机的角色并非固定于第一管理主机121与第二管理主机122。举例来说,在初始状态下,第一管理主机121可以作为PCIe交换机110的PCIe域的根复合,亦即扮演主管理主机;第二管理主机122扮演备份管理主机。当第一管理主机121出现故障时,第二管理主机122可以进行“故障转移程序”(容后详述)以取代第一管理主机121来管理PCIe交换机110。完成“故障转移程序”后,第二管理主机122的角色从备份管理主机变为主管理主机,而第一管理主机121的角色从主管理主机变为备份管理主机。第一管理主机121与第二管理主机122之间用点至点以太网链接(point-to-pointEthernet link)123来相互连接。点至点以太网链接123可以载有存储器状态同步和心跳(memory state synchronization and heartbeats)。
第一至第八非透明桥141~148分别配置于PCIe交换机110。第一非透明桥141可以电性耦接至第一计算主机131的第一PCIe端口。第二非透明桥142可以电性耦接至第一计算主机131的第二PCIe端口。第三非透明桥143可以电性耦接至第二计算主机132的第一PCIe端口。第四非透明桥144可以电性耦接至第二计算主机132的第二PCIe端口。第五非透明桥145可以电性耦接至第三计算主机133的第一PCIe端口。第六非透明桥146可以电性耦接至第三计算主机133的第二PCIe端口。第七非透明桥147可以电性耦接至第四计算主机134的第一PCIe端口。第八非透明桥148可以电性耦接至第四计算主机134的第二PCIe端口。第一非透明桥141可以将第一计算主机131的第一PCIe端口耦接到第一管理主机121或第二管理主机122。第二非透明桥142可以将第一计算主机131的第二PCIe端口耦接到第一管理主机121或第二管理主机122。其余第三至第八非透明桥143~148可以参照非第一与第二透明桥141~142的相关说明而类推。
图2与图3是依照本公开一实施例说明图1所示第一管理主机121、第一计算主机131与第二计算主机132的存储器地址空间示意图。在此假设第一管理主机121作为PCIe交换机110的PCIe域的根复合,亦即扮演主管理主机。第一管理主机121的全域存储器地址空间被定义多个地址区间,如图2所示。这些地址区间中的一个地址区间被分配作为第一管理主机121的本地存储器地址MH(如图2所示斜线网底处)。PCIe交换机110的第一管理主机121将每个连接的机器(例如图1所示第一至第四计算主机131~134)的主存储器映射到第一管理主机121的全域存储器地址空间(物理存储器地址空间)。例如图2所示,第一计算主机131的本地主存储器地址CH1以及第二计算主机132的本地主存储器地址CH2分别被映射到第一管理主机121的全域存储器地址空间中的扩展存储器地址CH1’以及CH2’。除此之外,第一计算主机131的本地主存储器地址CH1以及第二计算主机132的本地主存储器地址CH2还被额外地被映射到第一管理主机121的全域存储器地址空间中的扩展存储器地址CH1”以及CH2”。
例如(但不限于此),假设连接至PCIe交换机110的每台机器(包括管理主机)具有本地存储器32GB。第一管理主机121将第i个连接的机器的本地存储器映射到第一管理主机121的全域存储器地址空间32GB+(i-1)*32GB至32GB+i*32GB的范围,以及将第i个连接的机器的本地存储器额外地映射到第一管理主机121的全域存储器地址空间1TB+32GB+(i-1)*32GB至1TB+32GB+i*32GB的范围。
第一管理主机121公开其全域存储器地址空间给每一个连接PCIe交换机110的机器。第一计算主机131的全域存储器地址空间被定义多个地址区间,第二计算主机132的全域存储器地址空间亦被定义多个地址区间,如图3所示。第一计算主机131的这些地址区间中的一个地址区间被分配作为第一计算主机131的本地存储器地址CH1(如图3所示斜线网底处)。第二计算主机132的这些地址区间中的一个地址区间被分配作为第二计算主机132的本地存储器地址CH2(如图3所示斜线网底处)。然后,连接至PCIe交换机110的每个机器(例如第一计算主机131与第二计算主机132)将第一管理主机121的整个物理地址空间(全域存储器地址空间)映射到各自的扩展存储器地址空间的范围,如图3所示。
第一管理主机121的扩展存储器地址CH1’可以通过PCIe交换机110的第一非透明桥141映射到第一计算主机131的本地存储器地址CH1。第一管理主机121可以使用扩展存储器地址CH1’(地址区间)经由PCIe交换机110的第一非透明桥141存取位于第一计算主机131的本地存储器地址CH1的资源。第一管理主机121的扩展存储器地址CH1”可以通过PCIe交换机110的第二非透明桥142映射到第一计算主机131的相同的本地存储器地址CH1。第一管理主机121可以使用扩展存储器地址CH1”(地址区间)经由PCIe交换机110的第二非透明桥142存取位于第一计算主机131的本地存储器地址CH1的资源。第一管理主机121对其他计算主机(例如第二计算主机132)的存取操作可以参照第一管理主机121对第一计算主机131的存取操作的相关说明而类推,故不再赘述。第一管理主机121将每一个连接的机器的本地物理地址空间映射至在全域地址空间中的两个独立区域,从而提供两个独立的路径以到达/存取每个连接的机器的资源。
第一计算主机131的扩展存储器地址MH’通过PCIe交换机110的第一非透明桥141映射到第一管理主机121的本地存储器地址MH。第一计算主机131可以使用其本身物理地址空间中的扩展存储器地址MH’(地址区间)经由PCIe交换机110的第一非透明桥141存取位于第一管理主机121的本地存储器地址MH的资源。第一计算主机131的扩展存储器地址MH”通过PCIe交换机110的第二非透明桥142映射到第一管理主机121的相同的本地存储器地址MH。因此,第一计算主机131还可以使用其本身物理地址空间中的扩展存储器地址MH”(地址区间)经由PCIe交换机110的第二非透明桥142存取位于第一管理主机121的本地存储器地址MH的资源。其他计算主机(例如第二计算主机132)对第一管理主机121的存取操作可以参照第一计算主机131的相关说明而类推,故不再赘述。
例如(但不限于此),假设连接至PCIe交换机110的每台机器(包括管理主机)具有本地存储器32GB。连接至PCIe交换机110的计算主机(例如第一计算主机131)可以藉由读取或写入其本地物理存储器地址范围64GB+(i-1)*32GB至64GB+i*32GB来存取第i个连接的机器(例如第二计算主机132)的本地存储器。换句话说,一个连接PCIe交换机110的机器可以通过低于32GB的范围(直接地)存取其本地存储器,或通过高于64GB的范围(间接通过第一管理主机121的物理地址空间)存取其自身的本地存储器。假设有50台机器连接于PCIe交换机110,包括第一管理主机121。然后,每一个连接的机器(例如第一计算主机131)能看到的物理存储器1600GB,包括在自己的机器所具有本地存储器32GB(零跳,zero hop),在第一管理主机121所具有存储器32GB(一跳,one hop),以及在其他连接的机器(例如第二计算主机132)所具有存储器1536GB(两跳,two hops)。因此,PCIe交换机110可以将所有连接的机器的物理存储器转移到一个全域性记忆池(global memory pool)。
举例来说,第一计算主机131的扩展存储器地址CH2’通过PCIe交换机110的第一非透明桥141映射到第一管理主机121的扩展存储器地址CH2’,而第一管理主机121的此扩展存储器地址CH2’通过PCIe交换机110的第三非透明桥143映射到第二计算主机132的本地存储器地址CH2。第一计算主机131可以使用此扩展存储器地址CH2’(地址区间)经由PCIe交换机110的第一非透明桥141与第一管理主机121来存取位于第二计算主机132的本地存储器地址CH2的资源。除此之外,第一计算主机131的扩展存储器地址CH2”可以通过PCIe交换机110的第二非透明桥142映射到第一管理主机121的扩展存储器地址CH2”,以及第一管理主机121的此扩展存储器地址CH2”通过PCIe交换机110的第四非透明桥144映射到第二计算主机132的相同的本地存储器地址CH2。因此,第一计算主机131可以使用扩展存储器地址CH2”(地址区间)经由PCIe交换机110的第二非透明桥142与第一管理主机121来存取位于第二计算主机132的本地存储器地址CH2的资源。
***初始化(System Initialization):
当PCIe交换机110启动时,其管理主机(例如第一管理主机121)可以列举(enumerate)所有连接到PCIe交换机110的相关设备,包括以太网络接口卡(例如第一以太网络接口卡151与第二以太网络接口卡152)和非透明桥端口(例如第一至第八非透明桥141~148)。第一以太网络接口卡151经由PCIe缆线连接至PCIe交换机110的PCIe端口161,而第二以太网络接口卡152经由PCIe缆线连接至PCIe交换机110的PCIe端口162。然后,藉由编程(programming)在PCIe交换机110的非透明桥端口(例如第一至第八非透明桥141~148)上的基底地址寄存器(Base Address Register,BAR)、存储器转译暂存器(memorytranslation register)和装置识别码转译表(device ID translation table)来设定上述存储器地址映射(详参图2与图3的相关说明)。最后,第一管理主机121也可以暴露了关于以太网络接口卡(例如第一以太网络接口卡151与第二以太网络接口卡152)的物理存储器地址范围给所有连接的机器,以便他们能直接与这些网络接口卡互动。为了使连接PCIe交换机110的机器可以在不相互干扰的方式下存取这些网络接口卡(例如第一以太网络接口卡151与第二以太网络接口卡152),第一管理主机121可以从具有单根输入输出虚拟化(single-root IO Virtualization,以下称SRIOV)能力的第一以太网络接口卡151与第二以太网络接口卡152分配一个或多个虚拟功能(virtual function,VF)给每一台机器。这个虚拟功能分配机制需要一种特殊的PCIe驱动器,以被安装在连接的机器中。为了容忍任何单一网络接口卡故障,一个连接的机器可以从不同以太网网络接口卡(例如第一以太网络接口卡151与第二以太网络接口卡152)请求多个虚拟功能。
因为连接到PCIe交换机110的每个机器可以定址到同一交换机的每个其他机器的每个物理记忆页(physical memory page),数据保全和安全性(data security andsafety)成为一个关键问题。更具体地,PCIe交换机110必须保证仅当明确允许时,连接到PCIe交换机110的机器才能够存取全域性记忆池中的远端物理记忆页。PCIe交换机110利用输入输出存储器管理单元(input–output memory management unit,以下称IOMMU)提供这种安全保障。当一台机器上的PCIe设备存取这台机器的物理存储器时,IOMMU使用一个IOMMU映射表而将存取操作所指定的地址转换到机器的物理存储器地址空间。当一个PCIe操作的目标地址不匹配IOMMU映射表中的任何条目时,此PCIe操作被拒绝并中止。已知IOMMU是为了防止在一个机器中的一个虚拟功能损坏在同一台机器的另一个虚拟功能。在本实施例中,IOMMU将被重新利用在PCIe交换机110,以防止一台物理机器(例如第一计算主机131)在没有另一物理机器(例如第二计算主机132)允许的情况下存取所述另一物理机器(例如第二计算主机132)的主存储器。
PCIe交换机110要求管理主机(例如第一管理主机121)作为第一个启动机器。在第一管理主机121列举了(enumerating)所有设备之后,其余的计算主机可以启动。PCIe交换机110的故障转移机制实现为非透明桥的驱动器和SRIOV以太网网络接口卡的驱动器的注册回调函数(registered callback function)。在接收到一个错误时,PCIe先进错误报告(advanced error reporting,AER)驱动器首先识别错误报告设备,并调用相应设备的驱动器的相应注册回调函数。
故障检测(Failure Detection):
为了检测和响应PCIe链路/交换机的故障,PCIe交换机110利用在每一个计算主机和管理主机的PCIe先进错误报告(AER)机制。由于PCIe网络***100包含多个PCIe域,在每个PCIe域中,PCIe网络***100启用PCIe先进错误报告服务驱动器(PCIe AER servicedriver)可快速检测任何在该PCIe域的故障。对于每一个计算主机和管理主机,在接收到错误信息时,他们的根复合(root complex)产生带有错误报告设备识别码(ID)的一个中断,而此错误信息被记录到相应的先进错误报告扩展容量结构(AER Extended CapacityStructure)中。通过先进错误报告(AER),如图2与图3所示,每个计算主机可以监控其两个相关联的非透明桥,以及管理主机可以在主PCIe域中监视所有的PCIe端点(PCIe end-points),包括所有的PCIe端口、交换机和以太网络接口卡。
每当处理先进错误报告(AER)驱动器检测到错误时,它将检测到的错误报告给管理主机(例如第一管理主机121),管理主机从所有的计算主机(例如第一至第四计算主机131~134)集中收集所有错误报告,并在必要时,通知受影响的计算主机以便采取适当的故障恢复操作(failure recovery action),例如:改变路线(switching routes)。只要每个计算主机具有至少一个功能性PCIe扩展器(functioning PCIe extender)和非透明桥端口,计算主机被认为是可到达/存取管理主机。因此,对于任何单一故障,管理主机(例如第一管理主机121)总是能够从计算主机收集错误报告,并且要求非分离带外通信(noseparate out-of-band communication)以故障恢复。
主/次地址空间(Primary/Secondary Address Space):
因为同一个计算主机(例如第一计算主机131)通过主非透明桥(primary Non-Transparent Bridge,例如第一非透明桥141)和次非透明桥(secondary Non-TransparentBridge,例如第二非透明桥142)连接到PCIe交换机110,PCIe网络***100将每个计算主机的本地物理存储器空间映射到由管理主机拥有的全域存储器空间中的两个不同的存储器地址范围,例如图2与图3所示。假定机架具有总共32个服务器(计算主机),每个服务器为其主存储器和MMIO(memory-mapped input output)装置消耗了32GB的本地存储器地址空间。通过再次将每个连接的机器的主存储器映射到次非透明桥所使用的物理存储器地址空间,PCIe网络***100把次地址范围放置于高于1TB(仅为示例,不限于此),并且公开其次物理存储器地址空间给每一个连接的机器,如图3所示。因此,第一管理主机121将第i个连接的机器的本地存储器映射到在全域性记忆池中的两个不同的物理地址范围,形成了主非透明桥设备的32GB+(i-1)*32GB至32GB+i*32GB的地址范围和次非透明桥设备的1T+32GB+(i-1)*32GB至1T+32GB+i*32GB的另一个地址范围。然后每个连接的机器(计算主机)将管理主机的主物理地址空间0至1TB(由主非透明桥所用)以及管理主机的次物理地址空间1TB至2TB(由次非透明桥所用)映射至其本地物理地址空间32GB以上的范围。
用这种设置,一个连接的机器(例如第一计算主机131)可以使用两个独立的路径(其一路径通过主第一非透明桥141,另一路径通过次第二非透明桥142)来存取另一个连接机器(例如第二计算主机132)的本地存储器。举例来说(但不限于此),假设连接至PCIe交换机110的每台机器(包括管理主机)具有本地存储器32GB。从第一计算主机131读或写本地物理存储器地址96GB至128GB范围(即扩展存储器地址CH2’)内的存储器请求可以经过主第一非透明桥141及其链接而到第二计算主机132的本地存储器CH2。第一计算主机131读或写本地物理存储器地址范围的1T+96GB至1T+128GB范围(即扩展存储器地址CH2”)内的存储器请求可以经过次第二非透明桥142及其连接线到达第二计算主机132的地址空间CH2。现代的64位服务器(计算主机)至少支持48位或256TB物理地址。假设每台服务器拥有物理存储器64GB,此256TB的物理地址空间可以支持多达2048个服务器(每个服务器消耗2个非透明桥端口)。
数据平台容错(Data Plane Fault Tolerance):
每个计算主机在由管理主机所管理的全域存储空间中占用了两个物理地址范围,这两个物理地址范围的使用策略可采用下述不同设计,即活性-消极设计(Active-PassiveDesign)与活性-活性设计(Active-Active Design)。
活性-消极设计:即使每个计算主机在由管理主机所管理的全域存储空间中占用了两个物理地址范围,在任何时间点上,所述两个物理地址范围仅有一个是活性,因此两个非透明桥的一个被使用。在此配置中,每当在计算主机或管理主机中的一个PCIe先进错误报告(AER)驱动器被调用时,它首先检查是否所报告的错误是不可校正和致命的(fatal)。如果它确实是不可校正和致命的错误,故障转移程序(fail-over procedure)会被触发。故障转移程序(fail-over procedure)的作为如下:1、将无法纠正的和致命的错误报告到管理主机;2、使用关联于相应非透明桥的门铃(doorbell)与暂存(scratchpad)机制将有关的主要地址空间的故障通知所有的计算主机,如此这些计算主机可以切换到次地址空间;3、修改管理主机的IOMMU,使得在管理主机的PCIe域中发起的缺陷管理区域(DefectManagement Area,简称DMA)操作还可以切换到次地址空间。每个计算主机维护物理存储器地址的列表,使用它来存取远端计算主机的资源,包括主存储器或MMIO设备。当管理主机发送出PCIe故障转移的通知,每个计算主机以此列表进行商议来修改他们以使用在次地址空间中的对应口。例如,在接收到PCIe故障转移通知时,第二计算主机132将其对第一计算主机131从64G至96G(扩展存储器地址CH1’)改变到1T+64G至1T+96GB(扩展存储器地址CH1”)(仅为示例,不限于此)。在第二计算主机132中对1T+64G存储器存取被转换为在第一管理主机121中对1T+32G存储器(扩展存储器地址CH1”)存取,并使用管理主机域中第一计算主机131的次非透明桥的BAR。类似地,管理主机维护物理存储器地址的类似列表(用于由驻留在管理主机的PCIe域中的I/O设备发起的DMA操作的目标)。当故障转移,管理主机与此列表协商以修改其IOMMU中的相关条目,以使用在次地址空间中的对应口(counterparts)。在活性-消极设计的优点是简单:只有一个全域变量是需要维护***状态。然而,在此设计中,许多链接利用不足。此外,在一个计算主机中的任何单一非透明桥/链接故障将导致所有的计算主机切换到它们的次非透明桥/链路,即使它们的主非透明桥/链接工作得很好。
活性-活性设计:数据平台容错的主动-主动设计允许可以同时使用计算主机的主要和次要地址空间。每个计算主机维护远端物理存储器地址的列表(其存储其他计算主机的资源),并且管理主机维护DMA物理存储器地址的列表(它的I/O设备使用于DMA操作)。无论何时,PCIe错误将触发PCIe故障转移,每个计算主机商议于远程物理存储器地址的列表,以及只修改那些受故障转移影响的部分;并且管理主机商议于DMA物理存储器地址的列表,以及只修改那些在IOMMU中受故障转移影响的部分。在此设计中,PCIe故障转移的范围可能是主地址空间的一个部分,而不是整个主地址空间。因此,在任何时间点,一些计算主机只能通过其次地址空间而被访问,而其他计算主机可能通过主要与次要地址空间而被访问。
综上所述,图4是依照本公开实施例说明图1所示PCIe网络***100的操作方法的流程示意图。步骤S410配置第一管理主机121与PCIe交换机110,其中PCIe交换机110的第一上游端口111电性耦接至第一管理主机121。步骤S410还配置第一非透明桥141与第二非透明桥142于PCIe交换机110。第一非透明桥141可以电性耦接至第一计算主机131的第一PCIe端口,而第二非透明桥142可以电性耦接至第一计算主机131的第二PCIe端口。在步骤S420中,第一非透明桥141可以将第一计算主机131的第一PCIe端口耦接到第一管理主机121,而第二非透明桥142可以将第一计算主机131的第二PCIe端口耦接到第一管理主机121。
控制平台容错(Control Plane Fault Tolerance):
PCIe交换机110的第一管理主机121与第二管理主机122可响应于所连接机器的物理存储器至物理地址空间的映射,并且用于以安全的方式将其物理地址空间,包括与其PCIe设备(例如:网络接口卡)相关联的地址范围,暴露给所连接的机器。在每个PCIe设备的地址分配后,管理主机将配置在PCIe层阶(PCIe hierarchy)中的每个点对点(P2P)桥的路由表(routing table),以使PCIe分组可相应转发。一旦管理主机完成这种设置,其作用变得可见(在它的PCIe设备树中的变化,即PCIe端点的添加或删除)。管理主机不涉及在各PCIe端点之间的点对点(peer-to-peer)数据传输。事实上,当管理主机故障,只要保持在P2P桥中的路由状态,PCIe端点可以继续交换彼此的数据。因此,当管理主机发生故障,则没有必要从这样的故障立即恢复,特别是因为因管理主机故障的已知恢复程序需要所有PCIe端点的全***的重启(system-wide restart)。本公开下述实施例将介绍无缝的管理主机故障转移,以减少控制平台的中断。
图5是依照本公开另一实施例说明图1所示PCIe网络***100的操作方法的流程示意图。步骤S510配置了PCIe交换机110、第一管理主机121与第二管理主机122。其中,第一管理主机121电性耦接至PCIe交换机110的第一上游端口111,而第二管理主机122电性耦接至PCIe交换机110的第二上游端口112。步骤S510还配置了第一非透明桥141于PCIe交换机110。第一非透明桥141可以电性耦接至第一计算主机131的PCIe端口。在步骤S520中,第一管理主机121管理PCIe交换机110,且第一非透明桥141将第一计算主机131的PCIe端口耦接到第一管理主机121。在步骤S530中,第二管理主机122可以检测第一管理主机121是否故障。当第二管理主机122检测到第一管理主机121故障时,第二管理主机122进行故障转移程序以取代第一管理主机121来管理PCIe交换机110,以及第一非透明桥141将第一计算主机131的PCIe端口改耦接到第二管理主机122(步骤S540)。
为了实现无缝的管理主机故障转移,PCIe网络***100设置了两个管理主机,第一管理主机121与第二管理主机122,其中一个作为主管理主机(master management host),另一个作为备份管理主机(backup management host)。主管理主机和备份管理主机之间可以用点对点(point-to-point)以太网络123相连接,它带有存储器状态同步和心跳(memorystate synchronization and heartbeats)。此外,主管理主机通过专用链路同步地复制修改以下状态到备份管理主机:1、初始PCIe设备扫描和列举(PCIe device scanning andenumeration)的结果,其中包括物理地址范围的分配,中断号等;2、在其PCIe域中的基底地址寄存器(BAR)的内容、转译寄存器的内容、设备ID转换表的内容、非透明桥端口的IOMMU的内容;3、对连接的机器支持单根IO虚拟化(SRIOV)的PCIe设备的虚拟功能(virtualfunction,VF)的分配;4、在其域中的PCIe设备驱动器的内部状态。
PCIe交换机110可以被划分为多个虚拟交换机(virtual switches),这些虚拟交换机可以独立使用。例如,PCIe网络***100将PCIe交换机110灵活划分为两个虚拟交换机,第一虚拟交换机VS1与第二虚拟交换机VS2。第一虚拟交换机VS1具有第一上游端口111,而第一管理主机121连接到第一虚拟交换机VS1的第一上游端口111。第二虚拟交换机VS2具有第二上游端口112,而第二管理主机122连接到第二虚拟交换机VS2的第二上游端口112。在初始状态下,假设第一管理主机121管理PCIe交换机110,PCIe交换机110的所有下游端口被分配给第一虚拟交换机VS1,而第二虚拟交换机VS2只有一个端口(第二上游端口112)。因此当第一管理主机121管理PCIe交换机110时,第一虚拟交换机VS1连接第一管理主机121与所有其他PCIe设备(例如第一至第四计算主机131~134)。当第二管理主机122检测到第一管理主机121故障时,第二管理主机122进行故障转移程序以取代第一管理主机121来管理PCIe交换机110。
图6是依照本公开实施例说明图5所示步骤S540的详细流程示意图。在图6所示实施例中,步骤S540所述故障转移程序包含了子步骤S541~S544。当第二管理主机122检测到第一管理主机121故障时,步骤S541会被执行。当主管理主机故障,在步骤S541中,第二管理主机122控制PCIe交换机110以使第一虚拟交换机VS1的所有下游端口改分配给第二虚拟交换机VS2,而第一虚拟交换机VS1只有第一上游端口111。藉由将所有PCIe设备(除了第一管理主机121)从第一虚拟交换机VS1重新分配至第二虚拟交换机VS2,第二管理主机122可以接管PCIe交换机110。重新分配允许第二虚拟交换机VS2形成一个新的PCIe层阶。端口重新分配的关键性质是,当从第一虚拟交换机VS1切换到第二虚拟交换机VS2时,桥的路由表的状态(bridges’routing table states)不改变。事实上,只有最高阶桥需要将他的第一上游端口111(连接到第一管理主机121)更新/切换至另一第二上游端口112(连接到第二管理主机122)。其结果是,改变了上游端口配置不影响在PCIe下游端口之间的点对点通信(peer-to-peer communication)。
PCIe桥的路由状态包含一个连续的地址范围(覆盖其下游端口),而带有超出此范围的目的地地址的任何分组将被转发到上游端口,所以改变上游端口不影响在PCIe端点之间的点对点通信。此外,由于第二管理主机122具有的PCIe相关状态完全相同于第一管理主机121的PCIe相关状态,当增加或删除PCIe设备时,或当分配或释放PCIe资源时,第二管理主机122可以立即恢复控制平台的服务。PCIe网络***100利用了Linux的暂停/恢复能力(suspend/resume facility)。当使用暂停操作时,整个***的状态(包括驱动器的状态)都经快照(snapshotted)并保存到磁盘中。
具体而言,无论是第一管理主机121和第二管理主机122都必须有三个磁盘分区以保持三种不同的内核映像(kernel images):控制器内核映像(controller kernelimage)、模板内核映像(template kernel image)以及运行内核映像(running kernelimage)。控制器内核用于启动(boot up)管理主机,以便管理其他两个内核映像。模板内核用于保持在发生故障后可以重复使用的金内核映像(golden kernel image)。在所有PCIe设备驱动器初始化后,从执行***的暂停指令来创建模板内核。运行内核是第一管理主机121与第二管理主机122执行管理主机功能所运行的内核。在开始时,第一管理主机121与第二管理主机122的控制器映像是相同于他们的模板映像,而第一管理主机121与第二管理主机122的运行映像是空的。
图7是依照本公开实施例说明图1所示第一管理主机121与第二管理主机122的操作时序示意图。图7所示横轴表示时间,图7所示上半部绘示第一管理主机121与第一虚拟交换机VS1的操作状态变化情形,而图7所示下半部绘示第二管理主机122与第二虚拟交换机VS2的操作状态变化情形。如图7所示,为了创建第二管理主机122的模板映像,所有PCIe设备(除了第一管理主机121)初始连接至第二虚拟交换机VS2,以及第二管理主机122从模板内核映像启动(boots-up),直到它的所有PCIe设备驱动器被初始化。然后,第二管理主机122暂停其模板映像分区,然后自我重新启动(这一次从控制器内核映像启动),然后将模板映像磁盘分区复制到运行映像磁盘分区。然后,第二管理主机122再次重新启动(这次从控制器内核映像),以监控第一管理主机121的状况。从这个角度上,第二管理主机122使用心跳消息(heartbeat messages)监控第一管理主机121的状况。
第二在管理主机122结束模板内核并从控制器内核映像重新启动时,所有的PCIe设备(除了第二管理主机122)被重新分配到第一虚拟交换机VS1,并且第一管理主机121从模板内核映像启动并继续运行,直到它的所有的PCIe设备驱动器被初始化。然后,第一管理主机121暂停其模板映像分区并且重新启动(这一次从控制器内核映像启动),然后将模板内核映像磁盘分区复制到运行内核映像磁盘分区。然后第一管理主机121再次重新启动(这次从运行内核映像),整个***开始工作,而第一管理主机121担任PCIe的管理工作(根复合)。总之,第一管理主机121的第一次暂停/重新启动是为了创建模板内核映像并复制它,而第一管理主机121的第二次重新启动是为了使***投入运行。
第二当管理主机122检测到第一管理主机121出现故障时,第二管理主机122指示第一虚拟交换机VS1的所有其他成员(除了第一管理主机121)加入第二虚拟交换机VS2,以及使用第二管理主机122的运行内核映像自我重新启动(步骤S542)。由于第二管理主机122的运行内核映像已经包含所有必要的PCIe设备驱动器的状态(如上所述),因此第二管理主机122可以管理在第二虚拟交换机VS2的PCIe域中的PCIe设备和非透明桥,而无需重新设定他们。在第二管理主机122自我重新启动之前,第一虚拟交换机VS1的成员必须重新分配给第二虚拟交换机VS2,否则重新启动会失败,因为在运行内核映像中的设备驱动器无法找到其相应的设备。在第二管理主机122重新启动的期间,控制平台的服务被中断。第一管理主机121使用控制器内核映像自我重新启动,然后将它的模板内核映像磁盘分区复制到第一管理主机121的运行内核映像磁盘分区(步骤S543)。在完成复制后,第一管理主机121从控制器内核映像重新启动,以不断监测的第二管理主机122的状况(步骤S544)。
值得注意的是,在不同的应用情境中,第一管理主机121、第二管理主机122、第一非透明桥141和/或第二非透明桥142的相关功能可以利用一般的编程语言(programminglanguages,例如C或C++)、硬件描述语言(hardware description languages,例如VerilogHDL或VHDL)或其他合适的编程语言来实现为软件、固件或硬件。可执行所述相关功能的软件(或固件)可以被布置为任何已知的计算机可存取介质(computer-accessible medias),例如磁带(magnetic tapes)、半导体(semiconductors)存储器、磁盘(magnetic disks)或光盘(compact disks,例如CD-ROM或DVD-ROM),或者可通过互联网(Internet)、有线通信(wired communication)、无线通信(wireless communication)或其它通信介质传送所述软件(或固件)。所述软件(或固件)可以被存放在计算机的可存取介质中,以便于由计算机的处理器来存取/执行所述软件(或固件)的编程码(programming codes)。另外,本公开的***、装置和方法可以通过硬件和软件的组合来实现。
综上所述,本公开诸实施例所述PCIe网络***100与操作方法提出了一个基于容错PCIe的局域网络架构,其中结合了故障转移机制。所述PCIe网络***100与操作方法采取了PCIe架构特性的有效优点,并显著减少了由PCIe根复合或PCIe链路/开关的故障所造成的服务中断时间。依照应用需求,PCIe网络***100可以被应用在服务器机架中作为机架顶部(top of rack,TOR)交换机,或应用于其他环境中。
虽然本公开已以实施例公开如上,然其并非用以限定本公开,本领域技术人员,在不脱离本公开的精神和范围内,当可作些许的更动与润饰,故本公开的保护范围当视所附权利要求书界定范围为准。
Claims (42)
1.一种快速***元件互连网络***,其特征在于,所述快速***元件互连网络***包括:
第一管理主机;
快速***元件互连交换机,其中该快速***元件互连交换机的第一上游端口电性耦接至该第一管理主机;
第一非透明桥,配置于该快速***元件互连交换机,用以电性耦接至第一计算主机的第一快速***元件互连端口,其中该第一非透明桥用以将该第一计算主机的该第一快速***元件互连端口耦接到该第一管理主机;以及
第二非透明桥,配置于该快速***元件互连交换机,用以电性耦接至该第一计算主机的第二快速***元件互连端口,其中该第二非透明桥用以将该第一计算主机的该第二快速***元件互连端口耦接到该第一管理主机。
2.如权利要求1所述的快速***元件互连网络***,其特征在于,该第一管理主机的第一扩展存储器地址通过该快速***元件互连交换机的该第一非透明桥映射到该第一计算主机的本地存储器地址,以及该第一管理主机的第二扩展存储器地址通过该快速***元件互连交换机的该第二非透明桥映射到该第一计算主机的该本地存储器地址。
3.如权利要求1所述的快速***元件互连网络***,其特征在于,该第一计算主机的第一扩展存储器地址通过该快速***元件互连交换机的该第一非透明桥映射到该第一管理主机的本地存储器地址,以及该第一计算主机的第二扩展存储器地址通过该快速***元件互连交换机的该第二非透明桥映射到该第一管理主机的该本地存储器地址。
4.如权利要求1所述的快速***元件互连网络***,其特征在于,该第一管理主机的全域存储器地址空间被定义多个地址区间,这些地址区间中的第一地址区间被分配作为该第一管理主机的本地存储器地址,该第一管理主机使用这些地址区间中的第二地址区间经由该快速***元件互连交换机的该第一非透明桥存取位于该第一计算主机的本地存储器地址的资源,以及该第一管理主机使用这些地址区间中的第三地址区间经由该快速***元件互连交换机的该第二非透明桥存取位于该第一计算主机的该本地存储器地址的资源。
5.如权利要求1所述的快速***元件互连网络***,其特征在于,该第一计算主机的全域存储器地址空间被定义多个地址区间,这些地址区间中的第一地址区间被分配作为该第一计算主机的本地存储器地址,该第一计算主机使用这些地址区间中的第二地址区间经由该快速***元件互连交换机的该第一非透明桥存取位于该第一管理主机的本地存储器地址的资源,以及该第一计算主机使用这些地址区间中的第三地址区间经由该快速***元件互连交换机的该第二非透明桥存取位于该第一管理主机的该本地存储器地址的资源。
6.如权利要求1所述的快速***元件互连网络***,其特征在于,所述快速***元件互连网络***还包括:
第三非透明桥,配置于该快速***元件互连交换机,用以电性耦接至第二计算主机的第一快速***元件互连端口,其中该第三非透明桥用以将该第二计算主机的该第一快速***元件互连端口耦接到该第一管理主机;以及
第四非透明桥,配置于该快速***元件互连交换机,用以电性耦接至该第二计算主机的第二快速***元件互连端口,其中该第四非透明桥用以将该第二计算主机的该第二快速***元件互连端口耦接到该第一管理主机。
7.如权利要求6所述的快速***元件互连网络***,其特征在于,该第一计算主机的第一扩展存储器地址通过该快速***元件互连交换机的该第一非透明桥映射到该第一管理主机的第二扩展存储器地址,该第一管理主机的该第二扩展存储器地址通过该快速***元件互连交换机的该第三非透明桥映射到该第二计算主机的本地存储器地址,该第一计算主机的第三扩展存储器地址通过该快速***元件互连交换机的该第二非透明桥映射到该第一管理主机的第四扩展存储器地址,以及该第一管理主机的该第四扩展存储器地址通过该快速***元件互连交换机的该第四非透明桥映射到该第二计算主机的该本地存储器地址。
8.如权利要求6所述的快速***元件互连网络***,其特征在于,该第一计算主机的全域存储器地址空间被定义多个地址区间,这些地址区间中的第一地址区间被分配作为该第一计算主机的本地存储器地址,该第一计算主机使用这些地址区间中的第二地址区间经由该快速***元件互连交换机的该第一非透明桥与该第一管理主机存取位于该第二计算主机的本地存储器地址的资源,以及该第一计算主机使用这些地址区间中的第三地址区间经由该快速***元件互连交换机的该第二非透明桥与该第一管理主机存取位于该第二计算主机的该本地存储器地址的资源。
9.如权利要求1所述的快速***元件互连网络***,其特征在于,所述快速***元件互连网络***还包括:
第二管理主机,电性耦接至该快速***元件互连交换机的第二上游端口,其中当该第二管理主机检测到该第一管理主机故障时,该第二管理主机进行故障转移程序以取代该第一管理主机来管理该快速***元件互连交换机。
10.如权利要求9所述的快速***元件互连网络***,其特征在于,该快速***元件互连交换机被划分为多个虚拟交换机,这些虚拟交换机中的第一虚拟交换机具有该第一上游端口,这些虚拟交换机中的第二虚拟交换机具有该第二上游端口,其中当该第一管理主机管理该快速***元件互连交换机时,该快速***元件互连交换机的所有下游端口被分配给该第一虚拟交换机,而该第二虚拟交换机只有该第二上游端口。
11.如权利要求10所述的快速***元件互连网络***,其特征在于,该故障转移程序包括:
由该第二管理主机控制该快速***元件互连交换机以使该第一虚拟交换机的所有下游端口改为分配给该第二虚拟交换机,而该第一虚拟交换机只有该第一上游端口;
由该第二管理主机使用该第二管理主机的运行内核映像自我重新启动;
由该第一管理主机使用该第一管理主机的控制器内核映像自我重新启动,以及将该第一管理主机的一模板内核映像复制为该第一管理主机的一运行内核映像;以及
由该第一管理主机使用该第一管理主机的该控制器内核映像自我重新启动,以及监视该第二管理主机的状况。
12.一种快速***元件互连网络***的操作方法,其特征在于,所述操作方法包括:
配置第一管理主机;
配置快速***元件互连交换机,其中该快速***元件互连交换机的第一上游端口电性耦接至该第一管理主机;
配置第一非透明桥于该快速***元件互连交换机,用以电性耦接至第一计算主机的第一快速***元件互连端口;
配置第二非透明桥于该快速***元件互连交换机,用以电性耦接至该第一计算主机的第二快速***元件互连端口;
由该第一非透明桥将该第一计算主机的该第一快速***元件互连端口耦接到该第一管理主机;以及
由该第二非透明桥将该第一计算主机的该第二快速***元件互连端口耦接到该第一管理主机。
13.如权利要求12所述的快速***元件互连网络***的操作方法,其特征在于,该第一管理主机的第一扩展存储器地址通过该快速***元件互连交换机的该第一非透明桥映射到该第一计算主机的本地存储器地址,以及该第一管理主机的第二扩展存储器地址通过该快速***元件互连交换机的该第二非透明桥映射到该第一计算主机的该本地存储器地址。
14.如权利要求12所述的快速***元件互连网络***的操作方法,其特征在于,该第一计算主机的第一扩展存储器地址通过该快速***元件互连交换机的该第一非透明桥映射到该第一管理主机的本地存储器地址,以及该第一计算主机的第二扩展存储器地址通过该快速***元件互连交换机的该第二非透明桥映射到该第一管理主机的该本地存储器地址。
15.如权利要求12所述的快速***元件互连网络***的操作方法,其特征在于,所述操作方法还包括:
将该第一管理主机的全域存储器地址空间定义为多个地址区间;
将该第一管理主机的这些地址区间中的第一地址区间分配作为该第一管理主机的本地存储器地址;
由该第一管理主机使用这些地址区间中的第二地址区间经由该快速***元件互连交换机的该第一非透明桥存取位于该第一计算主机的本地存储器地址的资源;以及
由该第一管理主机使用这些地址区间中的第三地址区间经由该快速***元件互连交换机的该第二非透明桥存取位于该第一计算主机的该本地存储器地址的资源。
16.如权利要求12所述的快速***元件互连网络***的操作方法,其特征在于,所述操作方法还包括:
将该第一计算主机的全域存储器地址空间定义为多个地址区间;
将这些地址区间中的第一地址区间分配作为该第一计算主机的本地存储器地址;
由该第一计算主机使用这些地址区间中的第二地址区间经由该快速***元件互连交换机的该第一非透明桥存取位于该第一管理主机的本地存储器地址的资源;以及
由该第一计算主机使用这些地址区间中的第三地址区间经由该快速***元件互连交换机的该第二非透明桥存取位于该第一管理主机的该本地存储器地址的资源。
17.如权利要求12所述的快速***元件互连网络***的操作方法,其特征在于,所述操作方法还包括:
配置第三非透明桥于该快速***元件互连交换机,用以电性耦接至第二计算主机的第一快速***元件互连端口;
配置第四非透明桥于该快速***元件互连交换机,用以电性耦接至该第二计算主机的第二快速***元件互连端口;
由该第三非透明桥将该第二计算主机的该第一快速***元件互连端口耦接到该第一管理主机;以及
由该第四非透明桥将该第二计算主机的该第二快速***元件互连端口耦接到该第一管理主机。
18.如权利要求17所述的快速***元件互连网络***的操作方法,其特征在于,该第一计算主机的第一扩展存储器地址通过该快速***元件互连交换机的该第一非透明桥映射到该第一管理主机的第二扩展存储器地址,该第一管理主机的该第二扩展存储器地址通过该快速***元件互连交换机的该第三非透明桥映射到该第二计算主机的本地存储器地址,该第一计算主机的第三扩展存储器地址通过该快速***元件互连交换机的该第二非透明桥映射到该第一管理主机的第四扩展存储器地址,以及该第一管理主机的该第四扩展存储器地址通过该快速***元件互连交换机的该第四非透明桥映射到该第二计算主机的该本地存储器地址。
19.如权利要求17所述的快速***元件互连网络***的操作方法,其特征在于,所述操作方法还包括:
将该第一计算主机的全域存储器地址空间定义为多个地址区间;
将这些地址区间中的第一地址区间分配作为该第一计算主机的本地存储器地址;
由该第一计算主机使用这些地址区间中的第二地址区间经由该快速***元件互连交换机的该第一非透明桥与该第一管理主机存取位于该第二计算主机的本地存储器地址的资源;以及
由该第一计算主机使用这些地址区间中的第三地址区间经由该快速***元件互连交换机的该第二非透明桥与该第一管理主机存取位于该第二计算主机的该本地存储器地址的资源。
20.如权利要求12所述的快速***元件互连网络***的操作方法,其特征在于,所述操作方法还包括:
配置第二管理主机,其中该第二管理主机电性耦接至该快速***元件互连交换机的第二上游端口;以及
当该第二管理主机检测到该第一管理主机故障时,进行故障转移程序以由该第二管理主机取代该第一管理主机来管理该快速***元件互连交换机。
21.如权利要求20所述的快速***元件互连网络***的操作方法,其特征在于,所述操作方法还包括:
将该快速***元件互连交换机划分为多个虚拟交换机,其中这些虚拟交换机中的第一虚拟交换机具有该第一上游端口,这些虚拟交换机中的第二虚拟交换机具有该第二上游端口;以及
当该第一管理主机管理该快速***元件互连交换机时,将该快速***元件互连交换机的所有下游端口分配给该第一虚拟交换机,其中该第二虚拟交换机只有该第二上游端口。
22.如权利要求21所述的快速***元件互连网络***的操作方法,其特征在于,该故障转移程序包括:
由该第二管理主机控制该快速***元件互连交换机以使该第一虚拟交换机的所有下游端口改为分配给该第二虚拟交换机,而该第一虚拟交换机只有该第一上游端口;
由该第二管理主机使用该第二管理主机的运行内核映像自我重新启动;
由该第一管理主机使用该第一管理主机的控制器内核映像自我重新启动,以及将该第一管理主机的模板内核映像复制为该第一管理主机的运行内核映像;以及
由该第一管理主机使用该第一管理主机的该控制器内核映像自我重新启动,以及监视该第二管理主机的状况。
23.一种快速***元件互连网络***,其特征在于,所述快速***元件互连网络***包括:
快速***元件互连交换机;
第一管理主机,电性耦接至该快速***元件互连交换机的第一上游端口;
第二管理主机,电性耦接至该快速***元件互连交换机的第二上游端口;以及
第一非透明桥,配置于该快速***元件互连交换机,用以电性耦接至第一计算主机的快速***元件互连端口;
其中当该第一管理主机管理该快速***元件互连交换机时,该第一非透明桥用以将该第一计算主机的该快速***元件互连端口耦接到该第一管理主机;以及
其中当该第二管理主机检测到该第一管理主机故障时,该第二管理主机进行故障转移程序以取代该第一管理主机来管理该快速***元件互连交换机,使得该第一非透明桥将该第一计算主机的该快速***元件互连端口改为耦接到该第二管理主机。
24.如权利要求23所述的快速***元件互连网络***,其特征在于,该第一管理主机的第一扩展存储器地址通过该快速***元件互连交换机的该第一非透明桥映射到该第一计算主机的本地存储器地址。
25.如权利要求23所述的快速***元件互连网络***,其特征在于,该第一计算主机的第一扩展存储器地址通过该快速***元件互连交换机的该第一非透明桥映射到该第一管理主机的本地存储器地址。
26.如权利要求23所述的快速***元件互连网络***,其特征在于,该第一管理主机的全域存储器地址空间被定义多个地址区间,这些地址区间中的第一地址区间被分配作为该第一管理主机的本地存储器地址,以及该第一管理主机使用这些地址区间中的第二地址区间经由该快速***元件互连交换机的该第一非透明桥存取位于该第一计算主机的本地存储器地址的资源。
27.如权利要求23所述的快速***元件互连网络***,其特征在于,该第一计算主机的全域存储器地址空间被定义多个地址区间,这些地址区间中的第一地址区间被分配作为该第一计算主机的本地存储器地址,该第一计算主机使用这些地址区间中的第二地址区间经由该快速***元件互连交换机的该第一非透明桥存取位于该第一管理主机的本地存储器地址的资源。
28.如权利要求23所述的快速***元件互连网络***,其特征在于,所述快速***元件互连网络***还包括:
第二非透明桥,配置于该快速***元件互连交换机,用以电性耦接至第二计算主机的快速***元件互连端口;
其中当该第一管理主机管理该快速***元件互连交换机时,该第二非透明桥用以将该第二计算主机的该快速***元件互连端口耦接到该第一管理主机;以及
其中当该第二管理主机取代该第一管理主机来管理该快速***元件互连交换机时,该第二非透明桥将该第二计算主机的该快速***元件互连端口改为耦接到该第二管理主机。
29.如权利要求28所述的快速***元件互连网络***,其特征在于,该第一计算主机的第一扩展存储器地址通过该快速***元件互连交换机的该第一非透明桥映射到该第一管理主机的第二扩展存储器地址,该第一管理主机的该第二扩展存储器地址通过该快速***元件互连交换机的该第二非透明桥映射到该第二计算主机的本地存储器地址。
30.如权利要求28所述的快速***元件互连网络***,其特征在于,该第一计算主机的全域存储器地址空间被定义多个地址区间,这些地址区间中的第一地址区间被分配作为该第一计算主机的本地存储器地址,该第一计算主机使用这些地址区间中的第二地址区间经由该快速***元件互连交换机的该第一非透明桥与该第一管理主机存取位于该第二计算主机的本地存储器地址的资源。
31.如权利要求23所述的快速***元件互连网络***,其特征在于,该快速***元件互连交换机被划分为多个虚拟交换机,这些虚拟交换机中的第一虚拟交换机具有该第一上游端口,这些虚拟交换机中的第二虚拟交换机具有该第二上游端口,其中当该第一管理主机管理该快速***元件互连交换机时,该快速***元件互连交换机的所有下游端口被分配给该第一虚拟交换机,而该第二虚拟交换机只有该第二上游端口。
32.如权利要求31所述的快速***元件互连网络***,其特征在于,该故障转移程序包括:
由该第二管理主机控制该快速***元件互连交换机以使该第一虚拟交换机的所有下游端口改为分配给该第二虚拟交换机,而该第一虚拟交换机只有该第一上游端口;
由该第二管理主机使用该第二管理主机的运行内核映像自我重新启动;
由该第一管理主机使用该第一管理主机的控制器内核映像自我重新启动,以及将该第一管理主机的模板内核映像复制为该第一管理主机的运行内核映像;以及
由该第一管理主机使用该第一管理主机的该控制器内核映像自我重新启动,以及监视该第二管理主机的状况。
33.一种快速***元件互连网络***的操作方法,其特征在于,所述操作方法包括:
配置快速***元件互连交换机;
配置第一管理主机,其中该第一管理主机电性耦接至该快速***元件互连交换机的第一上游端口;
配置第二管理主机,其中该第二管理主机电性耦接至该快速***元件互连交换机的第二上游端口;
配置第一非透明桥于该快速***元件互连交换机,用以电性耦接至第一计算主机的快速***元件互连端口;
当该第一管理主机管理该快速***元件互连交换机时,由该第一非透明桥将该第一计算主机的该快速***元件互连端口耦接到该第一管理主机;以及
当该第二管理主机检测到该第一管理主机故障时,由该第二管理主机进行故障转移程序以取代该第一管理主机来管理该快速***元件互连交换机,使得该第一非透明桥将该第一计算主机的该快速***元件互连端口改为耦接到该第二管理主机。
34.如权利要求33所述的快速***元件互连网络***的操作方法,其特征在于,该第一管理主机的第一扩展存储器地址通过该快速***元件互连交换机的该第一非透明桥映射到该第一计算主机的本地存储器地址。
35.如权利要求33所述的快速***元件互连网络***的操作方法,其特征在于,该第一计算主机的第一扩展存储器地址通过该快速***元件互连交换机的该第一非透明桥映射到该第一管理主机的本地存储器地址。
36.如权利要求33所述的快速***元件互连网络***的操作方法,其特征在于,所述操作方法还包括:
将该第一管理主机的全域存储器地址空间定义为多个地址区间;
将这些地址区间中的第一地址区间分配作为该第一管理主机的本地存储器地址;以及
由该第一管理主机使用这些地址区间中的第二地址区间经由该快速***元件互连交换机的该第一非透明桥存取位于该第一计算主机的本地存储器地址的资源。
37.如权利要求33所述的快速***元件互连网络***的操作方法,其特征在于,所述操作方法还包括:
将该第一计算主机的全域存储器地址空间被定义多个地址区间;
将这些地址区间中的第一地址区间被分配作为该第一计算主机的本地存储器地址;以及
由该第一计算主机使用这些地址区间中的第二地址区间经由该快速***元件互连交换机的该第一非透明桥存取位于该第一管理主机的本地存储器地址的资源。
38.如权利要求33所述的快速***元件互连网络***的操作方法,其特征在于,所述操作方法还包括:
配置第二非透明桥于该快速***元件互连交换机,用以电性耦接至第二计算主机的快速***元件互连端口;
当该第一管理主机管理该快速***元件互连交换机时,由该第二非透明桥将该第二计算主机的该快速***元件互连端口耦接到该第一管理主机;以及
当该第二管理主机取代该第一管理主机来管理该快速***元件互连交换机时,由该第二非透明桥将该第二计算主机的该快速***元件互连端口改为耦接到该第二管理主机。
39.如权利要求38所述的快速***元件互连网络***的操作方法,其特征在于,该第一计算主机的第一扩展存储器地址通过该快速***元件互连交换机的该第一非透明桥映射到该第一管理主机的第二扩展存储器地址,该第一管理主机的该第二扩展存储器地址通过该快速***元件互连交换机的该第二非透明桥映射到该第二计算主机的本地存储器地址。
40.如权利要求38所述的快速***元件互连网络***的操作方法,其特征在于,所述操作方法还包括:
将该第一计算主机的全域存储器地址空间定义为多个地址区间;
将这些地址区间中的第一地址区间分配作为该第一计算主机的本地存储器地址;以及
由该第一计算主机使用这些地址区间中的第二地址区间经由该快速***元件互连交换机的该第一非透明桥与该第一管理主机存取位于该第二计算主机的本地存储器地址的资源。
41.如权利要求33所述的快速***元件互连网络***的操作方法,其特征在于,所述操作方法还包括:
将该快速***元件互连交换机划分为多个虚拟交换机,其中这些虚拟交换机中的第一虚拟交换机具有该第一上游端口,这些虚拟交换机中的第二虚拟交换机具有该第二上游端口;以及
当该第一管理主机管理该快速***元件互连交换机时,将该快速***元件互连交换机的所有下游端口分配给该第一虚拟交换机,其中该第二虚拟交换机只有该第二上游端口。
42.如权利要求41所述的快速***元件互连网络***的操作方法,其特征在于,该故障转移程序包括:
由该第二管理主机控制该快速***元件互连交换机以使该第一虚拟交换机的所有下游端口改为分配给该第二虚拟交换机,而该第一虚拟交换机只有该第一上游端口;
由该第二管理主机使用该第二管理主机的运行内核映像自我重新启动;
由该第一管理主机使用该第一管理主机的控制器内核映像自我重新启动,以及将该第一管理主机的模板内核映像复制为该第一管理主机的运行内核映像;以及
由该第一管理主机使用该第一管理主机的该控制器内核映像自我重新启动,以及监视该第二管理主机的状况。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW104139259 | 2015-11-25 | ||
TW104139259A TWI597953B (zh) | 2015-11-25 | 2015-11-25 | 具故障轉移能力的快速周邊元件互連網路系統與操作方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106776159A CN106776159A (zh) | 2017-05-31 |
CN106776159B true CN106776159B (zh) | 2019-12-20 |
Family
ID=55168095
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510952025.6A Active CN106776159B (zh) | 2015-11-25 | 2015-12-17 | 具有故障转移的快速***元件互连网络***与操作方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US9760455B2 (zh) |
EP (1) | EP3173937B1 (zh) |
CN (1) | CN106776159B (zh) |
TW (1) | TWI597953B (zh) |
Families Citing this family (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104170307B (zh) | 2014-03-21 | 2017-12-12 | 华为技术有限公司 | 失效切换方法、装置和*** |
US10191878B2 (en) * | 2016-05-11 | 2019-01-29 | Tolefonaktiebolaget LM Ericsson (Publ) | High availability of PCIe devices under multiple processors to provide redundancy |
US10482050B2 (en) * | 2016-11-09 | 2019-11-19 | Qualcomm Incorporated | Link role determination in a dual-mode Peripheral Component Interconnect express (PCIe) device |
US10795842B2 (en) * | 2017-05-08 | 2020-10-06 | Liqid Inc. | Fabric switched graphics modules within storage enclosures |
US10599600B2 (en) * | 2017-06-16 | 2020-03-24 | Western Digital Technologies, Inc. | Peripheral Component Interconnect Express (PCIe) switching for multi-host computing system deployments |
CN107766181B (zh) * | 2017-09-12 | 2021-04-20 | 中国电子科技集团公司第五十二研究所 | 一种基于PCIe非透明桥的双控制器存储高可用子*** |
US10599461B2 (en) * | 2017-09-19 | 2020-03-24 | Microsoft Technology Licensing, Llc | Nested hypervisor memory virtualization |
US10523457B2 (en) | 2017-12-21 | 2019-12-31 | Industrial Technology Research Institute | Network communication method, system and controller of PCIe and Ethernet hybrid networks |
TWI679861B (zh) | 2018-09-06 | 2019-12-11 | 財團法人工業技術研究院 | 控制器、調整封包通信規則的方法及網路通信系統 |
US10956287B2 (en) | 2018-09-18 | 2021-03-23 | International Business Machines Corporation | Failover mechanism with minimized packet losses |
TWI704460B (zh) * | 2019-01-19 | 2020-09-11 | 神雲科技股份有限公司 | 叢集式系統中維持記憶體共享方法 |
US10585827B1 (en) | 2019-02-05 | 2020-03-10 | Liqid Inc. | PCIe fabric enabled peer-to-peer communications |
US10909054B2 (en) * | 2019-04-26 | 2021-02-02 | Samsung Electronics Co., Ltd. | Method for status monitoring of acceleration kernels in a storage device and storage device employing the same |
TWI732233B (zh) * | 2019-06-24 | 2021-07-01 | 竹北動力股份有限公司 | 控制系統和控制方法 |
CN113647058B (zh) * | 2020-02-27 | 2022-12-30 | 华为技术有限公司 | 一种基于PCIe的通信方法及装置 |
US11106607B1 (en) * | 2020-03-31 | 2021-08-31 | Dell Products L.P. | NUMA-aware storage system |
US11698878B1 (en) * | 2020-04-12 | 2023-07-11 | Peraton Labs Inc. | Highspeed shared-memory optical network interfaces and topology |
US11449456B2 (en) * | 2020-06-02 | 2022-09-20 | Microchip Technology Inc. | System and method for scheduling sharable PCIe endpoint devices |
CN112799991B (zh) * | 2021-01-07 | 2022-12-20 | 牛芯半导体(深圳)有限公司 | Pcie交换芯片 |
US11550722B2 (en) * | 2021-03-02 | 2023-01-10 | Ati Technologies Ulc | Method, system, and apparatus for supporting multiple address spaces to facilitate data movement |
US12001370B2 (en) * | 2021-12-30 | 2024-06-04 | Advanced Micro Devices, Inc. | Multi-node memory address space for PCIe devices |
CN115334015B (zh) * | 2022-07-04 | 2024-04-02 | 深圳市国微电子有限公司 | 基于PCIe交换芯片的虚拟交换模式控制方法 |
CN117827726B (zh) * | 2024-03-06 | 2024-05-31 | 井芯微电子技术(天津)有限公司 | 非透明桥传输的实现方法、装置、电子设备和存储介质 |
Family Cites Families (31)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6748478B1 (en) * | 2000-12-27 | 2004-06-08 | Intel Corporation | System function configurable computing platform |
US8051211B2 (en) | 2002-10-29 | 2011-11-01 | Cisco Technology, Inc. | Multi-bridge LAN aggregation |
JP4256693B2 (ja) | 2003-02-18 | 2009-04-22 | 株式会社日立製作所 | 計算機システム、i/oデバイス及びi/oデバイスの仮想共有方法 |
TWI234072B (en) | 2003-10-09 | 2005-06-11 | Mitac Int Corp | Fault-tolerance RAID controller |
US8176204B2 (en) | 2005-03-11 | 2012-05-08 | Hewlett-Packard Development Company, L.P. | System and method for multi-host sharing of a single-host device |
US20060274647A1 (en) | 2005-06-02 | 2006-12-07 | Broadcom Corporation | Dynamic port failover |
US20070253329A1 (en) * | 2005-10-17 | 2007-11-01 | Mo Rooholamini | Fabric manager failure detection |
US7395367B2 (en) * | 2005-10-27 | 2008-07-01 | International Business Machines Corporation | Method using a master node to control I/O fabric configuration in a multi-host environment |
CN101052013B (zh) * | 2007-05-22 | 2011-09-28 | 杭州华三通信技术有限公司 | 一种网络设备内部管理通道实现的方法及*** |
CN101102197B (zh) * | 2007-08-10 | 2010-06-09 | 北京理工大学 | 基于交换机的可扩展dspeed-dsp_q6455信号处理板 |
US20090063894A1 (en) | 2007-08-29 | 2009-03-05 | Billau Ronald L | Autonomic PCI Express Hardware Detection and Failover Mechanism |
KR101442309B1 (ko) | 2007-12-18 | 2014-09-23 | 인터내셔널 비지네스 머신즈 코포레이션 | 다수의 아답터들을 통해서 다수의 가상 ip 어드레스를 동시에 지원하는 호스트내 페일오버 |
US7934033B2 (en) | 2008-03-25 | 2011-04-26 | Aprius, Inc. | PCI-express function proxy |
JP5074457B2 (ja) | 2009-06-04 | 2012-11-14 | 株式会社日立製作所 | 計算機システム、スイッチ切り替え方法及びpciスイッチ |
CN101631083B (zh) * | 2009-08-07 | 2012-04-04 | 成都市华为赛门铁克科技有限公司 | 设备接管方法和装置及双控*** |
US8463934B2 (en) * | 2009-11-05 | 2013-06-11 | Rj Intellectual Properties, Llc | Unified system area network and switch |
US8677068B2 (en) * | 2010-06-18 | 2014-03-18 | Lsi Corporation | Scalable storage devices |
US8677180B2 (en) | 2010-06-23 | 2014-03-18 | International Business Machines Corporation | Switch failover control in a multiprocessor computer system |
US8677176B2 (en) | 2010-12-03 | 2014-03-18 | International Business Machines Corporation | Cable redundancy and failover for multi-lane PCI express IO interconnections |
US8645746B2 (en) | 2010-12-03 | 2014-02-04 | International Business Machines Corporation | Cable redundancy and failover for multi-lane PCI express IO interconnections |
US20130179722A1 (en) * | 2012-01-06 | 2013-07-11 | Glen Smith | Ring topology for compute devices |
JP5930046B2 (ja) * | 2012-08-17 | 2016-06-08 | 富士通株式会社 | 情報処理装置、及び情報処理装置の制御方法 |
US9086919B2 (en) * | 2012-08-23 | 2015-07-21 | Dell Products, Lp | Fabric independent PCIe cluster manager |
US9298648B2 (en) * | 2013-05-08 | 2016-03-29 | Avago Technologies General Ip (Singapore) Pte Ltd | Method and system for I/O flow management using RAID controller with DMA capabilitiy to directly send data to PCI-E devices connected to PCI-E switch |
US9280371B2 (en) | 2013-07-10 | 2016-03-08 | International Business Machines Corporation | Utilizing client resources during mobility operations |
KR102033112B1 (ko) * | 2013-07-15 | 2019-10-16 | 한국전자통신연구원 | Pci 익스프레스 스위치 장치 및 그의 접속 제어 방법 |
US9672167B2 (en) * | 2013-07-22 | 2017-06-06 | Futurewei Technologies, Inc. | Resource management for peripheral component interconnect-express domains |
US9195552B2 (en) * | 2014-02-05 | 2015-11-24 | Futurewei Technologies, Inc. | Per-function downstream port containment |
US20150261709A1 (en) * | 2014-03-14 | 2015-09-17 | Emilio Billi | Peripheral component interconnect express (pcie) distributed non- transparent bridging designed for scalability,networking and io sharing enabling the creation of complex architectures. |
US9734115B2 (en) * | 2014-11-18 | 2017-08-15 | Industrial Technology Research Institute | Memory mapping method and memory mapping system |
US10102169B2 (en) * | 2015-08-10 | 2018-10-16 | Microsemi Solutions (U.S.), Inc. | System and method for port migration in a PCIE switch |
-
2015
- 2015-11-25 TW TW104139259A patent/TWI597953B/zh active
- 2015-12-17 CN CN201510952025.6A patent/CN106776159B/zh active Active
- 2015-12-22 EP EP15202047.5A patent/EP3173937B1/en active Active
- 2015-12-30 US US14/983,580 patent/US9760455B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
US20170147456A1 (en) | 2017-05-25 |
EP3173937B1 (en) | 2018-08-22 |
CN106776159A (zh) | 2017-05-31 |
EP3173937A1 (en) | 2017-05-31 |
TW201720103A (zh) | 2017-06-01 |
TWI597953B (zh) | 2017-09-01 |
US9760455B2 (en) | 2017-09-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106776159B (zh) | 具有故障转移的快速***元件互连网络***与操作方法 | |
US11586514B2 (en) | High reliability fault tolerant computer architecture | |
US8498967B1 (en) | Two-node high availability cluster storage solution using an intelligent initiator to avoid split brain syndrome | |
US9542320B2 (en) | Multi-node cache coherency with input output virtualization | |
JP2004252591A (ja) | 計算機システム、i/oデバイス及びi/oデバイスの仮想共有方法 | |
US11573737B2 (en) | Method and apparatus for performing disk management of all flash array server | |
US10782898B2 (en) | Data storage system, load rebalancing method thereof and access control method thereof | |
WO2017167106A1 (zh) | 存储*** | |
JP2006227856A (ja) | アクセス制御装置及びそれに搭載されるインターフェース | |
JP2013206278A (ja) | 冗長化システム、冗長化方法、冗長化システムの可用性向上方法、及びプログラム | |
TWI773152B (zh) | 伺服器與應用於伺服器的控制方法 | |
JP4182948B2 (ja) | フォールト・トレラント・コンピュータシステムと、そのための割り込み制御方法 | |
Tu et al. | Seamless fail-over for PCIe switched networks | |
US7725761B2 (en) | Computer system, fault tolerant system using the same and operation control method and program thereof | |
US11210034B2 (en) | Method and apparatus for performing high availability management of all flash array server | |
TWI766590B (zh) | 伺服器及相關的控制方法 | |
US11366618B2 (en) | All flash array server and control method thereof | |
US10691560B2 (en) | Replacement of storage device within IOV replication cluster connected to PCI-e switch | |
CN113342257A (zh) | 伺服器及相关的控制方法 | |
CN116560827A (zh) | 一种数据处理方法及装置 |
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 |