CN117971504A - 一种故障倒换Bus资源分配方法、系统及装置 - Google Patents
一种故障倒换Bus资源分配方法、系统及装置 Download PDFInfo
- Publication number
- CN117971504A CN117971504A CN202410372908.9A CN202410372908A CN117971504A CN 117971504 A CN117971504 A CN 117971504A CN 202410372908 A CN202410372908 A CN 202410372908A CN 117971504 A CN117971504 A CN 117971504A
- Authority
- CN
- China
- Prior art keywords
- host
- pcie
- bus
- switch
- resources
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 32
- 238000013468 resource allocation Methods 0.000 title claims description 29
- 238000011144 upstream manufacturing Methods 0.000 claims description 9
- 238000002955 isolation Methods 0.000 claims description 4
- 101710176296 Switch 2 Proteins 0.000 description 9
- 238000012545 processing Methods 0.000 description 4
- 102100035767 Adrenocortical dysplasia protein homolog Human genes 0.000 description 3
- 101000929940 Homo sapiens Adrenocortical dysplasia protein homolog Proteins 0.000 description 3
- 238000010276 construction Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000007613 environmental effect Effects 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 238000006467 substitution reaction 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
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- 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
-
- 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
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/0026—PCI express
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Quality & Reliability (AREA)
- Mathematical Physics (AREA)
- Computer Hardware Design (AREA)
- Hardware Redundancy (AREA)
Abstract
本发明提供了一种故障倒换Bus资源分配方法、系统及装置,该方法包括:在第一switch上预留第二Host上的PCIe子树资源;在第二switch上预留第一Host的PCIe子树资源;当第一Host检测到第二Host出现故障时,触发故障切换;基于上一级PCI桥的Bus资源以及PCI桥集合,遍历第二Host的PCIe子树并为普通PCI桥和热插拔PCI桥分配Bus资源;当第二Host的PCIe子树遍历完毕并且Bus资源分配成功后,将原故障的第二Host隔离,并拆除倒换口,完成对整个第二Host上的PCIe子树的接管。本方案对于故障倒换流程无需全部重起设备即可实现故障侧业务快速恢复,解决了带热插拔能力的PCIe子树的资源预留问题,可以实现PCIe子树的动态接入;本方案可显著提升系统的健壮性。
Description
技术领域
本发明涉及计算机数据处理及集成电路领域,尤其涉及一种支持PCIe Switch子树故障倒换的Bus资源分配方法、系统及装置。
背景技术
在基于PCIe的高可用系统中,要想实现高可用就要避免使用单点,假设单台服务器再强应用优化再到极致,只要单台服务器宕机,基本就不可用,只有在冗余备份上,其他备用的服务器才可以顶替上以保证可用性,才可能实现高可用,现有技术中一般采用主备模式与主主模式进行PCIe系统资源系统的部署,从而保证系统的高可用性。
在高可用的主主模式下,当其中一个Host出现故障的时候,由另一个Host对故障Host下的PCIe设备进行接管,从而保证系统的高可用性。然而当要接管故障Host下的PCIe子树时,在不影响原先Host下的PCIe设备的正常工作的情况下,需要接管侧的端口能够预留足够的bus资源,用来保证被接入的PCIe子树能够在新Host中重新枚举出来,这时候就可以让新Host可以管控到故障侧的PCIe设备;在主主模式下,必须同时保证两个主Host端的接口也能够预留Bus资源(因为不知道谁接管谁,可以互相接管)。
在目前的linux版本的PCIe子系统中,支持Hotplug的端口的Bus的预留是固定的,当接入的PCIe子树中含有支持Hotplug能力的端口时,会分配固定的预留资源,从而导致资源分配不足(因为倒换接口预留为A,则如果子树含有一个Hotplug端口的话,直接将A资源占用了,从而导致其他端口无法分配到bus资源)。从而导致主主模式下故障切换失败,影响整个系统的高可用性,因此如何进行合理的bus分配变得尤为重要。
发明内容
有鉴于此,为解决上述现有技术中存在的linux pcie子树热插入的缺点,本发明提供了一种针对PCIe Switch子树故障倒换的Bus资源分配方法、系统及装置。具体而言,本发明提供了以下技术特征:
一方面,本发明提供了一种故障倒换Bus资源分配方法,所述方法包括:
S1、在第一switch上预留第二Host上的PCIe子树资源;在第二switch上预留第一Host的PCIe子树资源;在所述第一Host及第二Host之间做保活,并在所述第一switch上的第二倒换口及第二switch上的第一倒换口均预留资源;
S2、当第一Host检测到第二Host出现故障时,触发故障切换,进入步骤S3;
S3、基于上一级PCI桥下的Bus资源以及PCI桥集合,遍历第二Host的PCIe子树并为普通PCI桥和热插拔PCI桥分配Bus资源,并验证各级Bus资源是否分配成功;
当第二Host的PCIe子树遍历完毕并且Bus资源分配成功后,执行步骤S4,否则重复执行S3;
S4、将原故障的第二Host隔离,并拆除倒换口,完成对整个第二Host上的PCIe子树的接管。
优选地,所述第一Host与第一switch的上行口相连,所述第二Host与第二switch的上行口相连;
所述第一switch与第二switch之间通过倒换口相连。
优选地,所述S3进一步包括:
S301、获取上一级PCI桥的Bus资源集合Rset = {a,a+1,…,b},其中,已分配PCI桥集合Rassigned = {m,m+1,…,n},未分配PCI桥集合Rnassigned = {h, h+1,…,g},则已分配PCI桥集合占用的Bus资源集合为Rset1 = {a, a+1,…,n-m},剩余可用Bus资源集合为Rremain = {n-m+1,…,b};
其中,a、b、m、n、h、g为正整数;
S302、在未分配PCI桥集合Rnassigned中,普通桥集合Rnornal = {h,h+1,…,l},热插拔桥集合 Rhotplug = {l+1,l+2,…,g};
S303、为每个普通桥分配1个Bus资源,并为每个热插拔桥分配Bus资源;并形成上一级PCI桥的子树集合St和对应的预留资源集合Bt;
S304、获取本级各PCI桥下的子树端口个数,形成对应的子树集合Pt;
S305、基于预留资源集合Bt及子树集合Pt,验证本级Bus资源分配是否成功;
S306、遍历第二Host的PCIe子树,直至完成Bus资源分配。
优选地,所述S4进一步包括:
S401、拆除第一switch的第一倒换口;
S402、重新扫描可以看到的第二switch端的倒换口;
S403、通过S402中扫描到的第二switch端的倒换口,将第二Host隔离;
S404、拆除第二switch端的倒换口,并触发本地端口下的总线复位;
S405、重新扫描Bus,完成对整个第二Host上的PCIe子树的接管。
优选地,所述S303中,为每个热插拔桥分配Bus资源的数量为:
。
优选地,所述S305中,验证本级Bus资源分配是否成功的方式为:
将预留资源集合Bt与子树集合Pt对应位置上的元素进行比较,如果Pi > Bi,则分配失败,否则分配成功,记结果集合为Rt={R1,R2,…,Ri,…,Rn};若Ri全部为成功,则本级Bus资源分配成功;
其中,Pi为子树集合Pt中的第i个元素,Bi为预留资源集合Bt中的第i个元素。
优选地,所述S403中,将第二Host隔离的方式为:
将第二switch上的倒换口的配置转移到第二Host一侧的PCIe交换芯片的上行口上,以完成隔离。
优选地,若本级Bus资源分配失败,则发送报错信息,并重新启动Bus资源分配。
另一方面,本发明还提供了一种故障倒换Bus资源分配系统,所述系统包括:
包含第一Host的第一switch,以及包含第二Host的第二switch;在第一switch上预留第二Host上的PCIe子树资源;在第二switch上预留第一Host的PCIe子树资源;在所述第一Host及第二Host之间做保活,并在所述第一switch上的第二倒换口及第二switch上的第一倒换口均预留资源;
故障切换模块,用于当第一Host检测到第二Host出现故障时,触发故障切换;
Bus资源分配模块,基于上一级PCI桥下的Bus资源以及PCI桥集合,遍历第二Host的PCIe子树并为普通PCI桥和热插拔PCI桥分配Bus资源,并验证各级Bus资源是否分配成功;以及
当第二Host的PCIe子树遍历完毕并且Bus资源分配成功后,触发倒换接入模块进行Host2子树的倒换接入;
倒换接入模块,用于当Bus资源分配成功后,将原故障的第二Host隔离,并拆除倒换口,完成对整个第二Host上的PCIe子树的接管。
优选地,所述第一Host与第一switch的上行口相连,所述第二Host与第二switch的上行口相连;所述第一switch与第二switch之间通过倒换口相连。
第三方面,本发明还提供了一种故障倒换Bus资源分配装置,所述装置包括至少两个PCIe交换芯片,以及存储器,所述PCIe交换芯片调用所述存储器中的指令,以执行如上所述的一种故障倒换Bus资源分配方法;所述存储器设置于所述PCIe交换芯片中,或者独立设置。
与现有技术相比,本发明提供的bus资源预留分配方案,用户可以保留倒换端的PCIe业务不受影响,有故障侧的PCIe子树可以快速热接入到倒换端的PCIe树中,从而保证PCIe服务器系统的健壮性。相比当前linux内核的BUS分配算法,本方案至少具有以下优点:
(1)对于故障倒换流程无需全部重起设备就可以实现故障侧业务快速恢复;(2)解决了带热插拔能力的PCIe子树的资源预留问题,可以实现PCIe子树的动态接入,无需重起整个系统。
本方案特别适用于一些数据中心的服务器中的PCIe热备处理,可以大大提升系统的健壮性,实现1+1等冗余设计以及环境的搭建,最终使得数据中心系统整体可靠性将得到极大的提升。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1为本发明实施例的故障切换典型冗余环境场景示意图;
图2为本发明实施例的故障切换流程图;
图3为本发明实施例的倒换处理流程图。
具体实施方式
下面结合附图对本发明实施例进行详细描述。应当明确,所描述的实施例仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
本领域技术人员应当知晓,下述具体实施例或具体实施方式,是本发明为进一步解释具体的发明内容而列举的一系列优化的设置方式,而该些设置方式之间均是可以相互结合或者相互关联使用的,除非在本发明明确提出了其中某些或某一具体实施例或实施方式无法与其他的实施例或实施方式进行关联设置或共同使用。同时,下述的具体实施例或实施方式仅作为最优化的设置方式,而不作为限定本发明的保护范围的理解。
在基于PCIe Switch的故障切换典型应用场景中,如图1所示:
当Host2发生故障后,switch2将作为switch1端口2下的一个子树接入到Host1的PCIe拓扑中,此时switch2子树将从switch1端口2下的总线(secondry bus)的资源中分配,此时switch2子树将从switch1端口2上分配的bus资源中进行bus资源分配,而此时switch1的端口2的资源是不够switch2子树的资源的,从而会导致PCIe枚举失败。传统的处理方法是Host1从BUS0下的设备进行复位(reset),然后从bus0下开始枚举,这样就可以最终建立起整个PCIe树,但是传统方案会导致Host1端的EP1与Host2端的EP3上的业务受影响,例如,假设EP1与EP3都为网卡,此时两个网卡间正在传送数据,此时如果按传统方案的话,该两网卡之间传送数据将会出现长时间断流的问题,严重影响设备的正常使用。
以下,结合图1、图2、图3对切换流程和倒换处理流程进行说明。
(一)本实施例中,首先进行PCIe子树冗余环境搭建配置:
(1)在switch1(即PCIe交换芯片1)上预留Host2上的PCIe子树所需资源;此处预留的资源,例如是指预留Bus资源,可以通过linux内核的cmdline参数设置要预留的Bus资源大小;其中,示例性地,switch1上的2口和switch2上的1口支持热插拔功能;此外,更为优选地,switch1、switch2上的两个NT口,与两个热插拔口紧邻设置;
(2)在switch2(即PCIe交换芯片2)上预留Host1下的PCIe子树资源;
(3)Host1与Host2之间做保活操作;双向保活操作可以通过例如以下方式实现:Host1、Host2互发保活报文,接收端如果在一定时间间隔内没有收到发送端发送的保活报文,就认为发生了故障;
(4)两个倒换口(即图1中的NT口)上预先配置预留两边子树上的足够资源。本实施例中,我们重点关注Bus资源,我们仅需要在switch上的倒换口预留资源即可。
(二)PCIe子树故障切换流程如图2所示:
(1)Host1与PCIe switch1的上行口相连,Host2与PCIe switch2的上行口相连,switch1、switch2分别挂接具体的EP设备,switch1与switch2之间通过NT口相连;此处,上行口即图1中的两个0口;
(2)当Host1检测到Host2出现故障时,触发故障切换;本实施例中,此处的故障检测,可以通过PCIe switch芯片的门铃和便签来实现,即通过一直写对端的便签,然后对端一直读便签的值,如果一段时间没有读到数据的话,就认为对端发生了故障,此时,触发故障切换;
(3)Host1接管Host2下挂的PCIe子树;接管的过程如图3所示,后续进行详细阐述。
(三)在Host1接管Host2下挂的PCIe子树之后,进入Bus分配处理流程
(1)获取上一级的PCI桥上的Bus资源集合 Rset = {a,a+1,…,b},其中a、b为正整数,并且b > a;上一级的PCI桥我们记为Ptop;
(2)假设Ptop下的Bus下有已经分配的PCI桥集合Rassigned = {m,m+1,…,n},其中m、n为正整数,以及未分配的PCI桥集合Rnassigned = {h, h+1,…,g},其中h、g为正整数,此时Rassigned占用的Bus资源集合为 Rset1 = {a, a+1,…,n-m};
(3)此时Ptop下剩余可用的Bus资源 Rremain = {n-m+1,…,b};
(4)在未分配的PCI桥集合Rnassigned中,普通桥Rnornal = {h,h+1,…,l},热插拔桥集合 Rhotplug = {l+1,l+2,…,g};
(5)为每个普通PCI桥分配1个bus资源,此时剩余可用的Bus资源 Rset_remain ={ n-m+1 +(l-h+1),…,b} = {n-m+l-h,…,b},其中n、m、h、l、b为正整数;
为每个热插拔PCI桥分配Bus资源个数为 Rhpnum = (b - (n-m+l-h))/ (g-(l+1)) =(b-n+m-l+h)/(g-l-1)
即;
此时该PCI桥的子树(即Ptop下的子树)集合 St = {1,2,3,…,i,…,n}其中n为子树编号,其对应的预留资源集合为Bt = {B1,B2,…,Bi,…,Bn},其中Bi为St子树对应的预留Bus资源个数;
(6)取每个PCI桥(即Ptop的下一级PCI桥)下的子树端口个数,形成对应的子树集合Pt = {P1,P2,…,Pi,…,Pn},其中Ti为PCI桥i对应的子树端口个数;
(7)我们将预留资源集合为Bt与子树集合Pt进行比较,如果Pi > Bi,则分配失败,否则分配成功,记结果集合Rt={R1,R2,…,Ri,…,Rn},其中Ri表示对应的Pi与Bi的比较结果,如果Rt中有一个元素为false,则代表本次Bus资源分配失败,只有在Rt中的所有元素为true的时候,则代表本级Bus资源分配成功,此后继续下一级Bus资源分配;当资源分配失败时,则发送报错信息,并通知用户,此时可以重新启动Bus资源分配;
(8)采用深度遍历算法等遍历方式,循环执行步骤(6)-(8),直到新接管过来的PCIe子树遍历完毕。
(四)结合图3所示,本实施例中,故障倒换后接入流程可设置如下:
(1)拆除倒换口,此处拆除Host1的倒换口(即NT口);
(2)调用Linux PCIe子系统重扫描命令,重新扫描可以看到对端的倒换口,也即可以看到原先出故障端的倒换口;
(3)通过对端倒换口,将原故障的Host2隔离;此处,隔离操作可以是:将倒换口配置转移到故障Host(即本实施例中的Host2)那边的PCIe交换芯片的上行口上,以完成隔离;
(4)拆除对端倒换口(即Host2端的旧倒换口),触发本地端口下的secondry Busreset(即触发本地端口下的总线复位);此处,示例性地,触发的方式可以设置为:调用linux PCIe子系统的设置接口,设置端口下的所属Bus的复位;
(5)重新扫描该Bus,此时Host1接管整个Host2所管辖的子树。此处,需要做Bus的重新扫描,即通过重新扫描从Linux的PCIe子系统上发现原先属于Host2上的PCI设备,从而完成对Host2子树的接管,不扫描的话就不会纳入host1的管理中,造成接管错误问题。
在另一个实施例中,本发明的方案还可以通过一种故障倒换Bus资源分配系统的方式来实现,结合图1所示,该系统可以包括:
包含第一Host的第一switch,以及包含第二Host的第二switch;在第一switch上预留第二Host上的PCIe子树资源;在第二switch上预留第一Host的PCIe子树资源;在所述第一Host及第二Host之间做保活,并在所述第一switch上的第二倒换口及第二switch上的第一倒换口均预留资源;
故障切换模块,用于当第一Host检测到第二Host出现故障时,触发故障切换;
Bus资源分配模块,基于上一级PCI桥下的Bus资源以及PCI桥集合,遍历第二Host的PCIe子树并为普通PCI桥和热插拔PCI桥分配Bus资源,并验证各级Bus资源是否分配成功;以及
当第二Host的PCIe子树遍历完毕并且Bus资源分配成功后,触发倒换接入模块进行Host2子树的倒换接入;
倒换接入模块,用于当Bus资源分配成功后,将原故障的第二Host隔离,并拆除倒换口,完成对整个第二Host上的PCIe子树的接管。
优选地,所述第一Host与第一switch的上行口相连,所述第二Host与第二switch的上行口相连;所述第一switch与第二switch之间通过倒换口相连。
该系统的第一switch和第二switch下,可以挂接多个EP设备。
本实施例中,当Host1检测到Host2发生故障时,可以执行上一实施例中提出的故障倒换Bus资源分配方法,以完成对Host2下的子树的接管。
本方案在又一种实施方式下,可以通过装置的方式来实现,该装置可以包括执行上述各个实施方式中各个或几个步骤的相应模块。因此,可以由相应模块执行上述各个实施方式的每个步骤或几个步骤,并且该装置可以包括这些模块中的一个或多个模块。模块可以是专门被配置为执行相应步骤的一个或多个硬件模块、或者由被配置为执行相应步骤的处理器来实现、或者存储在计算机可读介质内用于由处理器来实现、或者通过某种组合来实现。该装置可以利用总线架构来实现。总线架构可以包括任何数量的互连总线和桥接器,这取决于硬件的特定应用和总体设计约束。该装置中可以包含多个PCIe交换芯片,该些交换芯片中可以包含存储器,或者该存储器可以独立设置于该交换芯片之外。
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本方案的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本方案的实施方式所属技术领域的技术人员所理解。处理器执行上文所描述的各个方法和处理。例如,本方案中的方法实施方式可以被实现为软件程序,其被有形地包含于机器可读介质,例如存储器。在一些实施方式中,软件程序的部分或者全部可以经由存储器和/或通信接口而被载入和/或安装。当软件程序加载到存储器并由处理器执行时,可以执行上文描述的方法中的一个或多个步骤。备选地,在其他实施方式中,处理器可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行上述方法之一。
在流程图中表示或在此以其他方式描述的逻辑和/或步骤,可以具体实现在任何可读存储介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
Claims (10)
1.一种故障倒换Bus资源分配方法,其特征在于,所述方法包括:
S1、在第一switch上预留第二Host上的PCIe子树资源;在第二switch上预留第一Host的PCIe子树资源;在所述第一Host及第二Host之间做保活,并在所述第一switch上的第二倒换口及第二switch上的第一倒换口均预留资源;
S2、当第一Host检测到第二Host出现故障时,触发故障切换,进入步骤S3;
S3、基于上一级PCI桥下的Bus资源以及PCI桥集合,遍历第二Host的PCIe子树并为普通PCI桥和热插拔PCI桥分配Bus资源,并验证各级Bus资源是否分配成功;
当第二Host的PCIe子树遍历完毕并且Bus资源分配成功后,执行步骤S4,否则重复执行S3;
S4、将原故障的第二Host隔离,并拆除倒换口,完成对整个第二Host上的PCIe子树的接管。
2.根据权利要求1所述的方法,其特征在于,所述第一Host与第一switch的上行口相连,所述第二Host与第二switch的上行口相连;
所述第一switch与第二switch之间通过倒换口相连。
3.根据权利要求1所述的方法,其特征在于,所述S3进一步包括:
S301、获取上一级PCI桥的Bus资源集合Rset = {a,a+1,…,b},其中,已分配PCI桥集合Rassigned = {m,m+1,…,n},未分配PCI桥集合Rnassigned = {h, h+1,…,g},则已分配PCI桥集合占用的Bus资源集合为Rset1 = {a, a+1,…,n-m},剩余可用Bus资源集合为Rremain = {n-m+1,…,b};
其中,a、b、m、n、h、g为正整数;
S302、在未分配PCI桥集合Rnassigned中,普通桥集合Rnornal = {h,h+1,…,l},热插拔桥集合 Rhotplug = {l+1,l+2,…,g};
S303、为每个普通桥分配1个Bus资源,并为每个热插拔桥分配Bus资源;并形成上一级PCI桥的子树集合St和对应的预留资源集合Bt;
S304、获取本级各PCI桥下的子树端口个数,形成对应的子树集合Pt;
S305、基于预留资源集合Bt及子树集合Pt,验证本级Bus资源分配是否成功;
S306、遍历第二Host的PCIe子树,直至完成Bus资源分配。
4.根据权利要求1所述的方法,其特征在于,所述S4进一步包括:
S401、拆除第一switch的第一倒换口;
S402、重新扫描可以看到的第二switch端的倒换口;
S403、通过S402中扫描到的第二switch端的倒换口,将第二Host隔离;
S404、拆除第二switch端的倒换口,并触发本地端口下的总线复位;
S405、重新扫描Bus,完成对整个第二Host上的PCIe子树的接管。
5.根据权利要求3所述的方法,其特征在于,所述S303中,为每个热插拔桥分配Bus资源的数量为:
。
6.根据权利要求3所述的方法,其特征在于,所述S305中,验证本级Bus资源分配是否成功的方式为:
将预留资源集合Bt与子树集合Pt对应位置上的元素进行比较,如果Pi > Bi,则分配失败,否则分配成功,记结果集合为Rt={R1,R2,…,Ri,…,Rn};若Ri全部为成功,则本级Bus资源分配成功;
其中,Pi为子树集合Pt中的第i个元素,Bi为预留资源集合Bt中的第i个元素。
7.根据权利要求4所述的方法,其特征在于,所述S403中,将第二Host隔离的方式为:
将第二switch上的倒换口的配置转移到第二Host一侧的PCIe交换芯片的上行口上,以完成隔离。
8.根据权利要求6所述的方法,其特征在于,若本级Bus资源分配失败,则发送报错信息,并重新启动Bus资源分配。
9.一种故障倒换Bus资源分配系统,其特征在于,所述系统包括:
包含第一Host的第一switch,以及包含第二Host的第二switch;在第一switch上预留第二Host上的PCIe子树资源;在第二switch上预留第一Host的PCIe子树资源;在所述第一Host及第二Host之间做保活,并在所述第一switch上的第二倒换口及第二switch上的第一倒换口均预留资源;
故障切换模块,用于当第一Host检测到第二Host出现故障时,触发故障切换;
Bus资源分配模块,基于上一级PCI桥下的Bus资源以及PCI桥集合,遍历第二Host的PCIe子树并为普通PCI桥和热插拔PCI桥分配Bus资源,并验证各级Bus资源是否分配成功;以及
当第二Host的PCIe子树遍历完毕并且Bus资源分配成功后,触发倒换接入模块进行Host2子树的倒换接入;
倒换接入模块,用于当Bus资源分配成功后,将原故障的第二Host隔离,并拆除倒换口,完成对整个第二Host上的PCIe子树的接管。
10.一种故障倒换Bus资源分配装置,其特征在于,所述装置包括至少两个PCIe交换芯片,以及存储器,所述PCIe交换芯片调用所述存储器中的指令,以执行权利要求1-8任一所述的一种故障倒换Bus资源分配方法;所述存储器设置于所述PCIe交换芯片中,或者独立设置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410372908.9A CN117971504B (zh) | 2024-03-29 | 2024-03-29 | 一种故障倒换Bus资源分配方法、系统及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410372908.9A CN117971504B (zh) | 2024-03-29 | 2024-03-29 | 一种故障倒换Bus资源分配方法、系统及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117971504A true CN117971504A (zh) | 2024-05-03 |
CN117971504B CN117971504B (zh) | 2024-07-02 |
Family
ID=90863372
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410372908.9A Active CN117971504B (zh) | 2024-03-29 | 2024-03-29 | 一种故障倒换Bus资源分配方法、系统及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117971504B (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090077297A1 (en) * | 2007-09-14 | 2009-03-19 | Hongxiao Zhao | Method and system for dynamically reconfiguring PCIe-cardbus controllers |
CN101631083A (zh) * | 2009-08-07 | 2010-01-20 | 成都市华为赛门铁克科技有限公司 | 设备接管方法和装置及双控系统 |
CN101989240A (zh) * | 2009-07-13 | 2011-03-23 | 甲骨文美国公司 | 用于设备资源分配和再平衡的系统和方法 |
CN103117929A (zh) * | 2013-01-31 | 2013-05-22 | 中国科学院计算技术研究所 | 一种基于PCIe数据交换的通信方法及系统 |
CN106126460A (zh) * | 2016-06-16 | 2016-11-16 | 迈普通信技术股份有限公司 | 热插拔设备预留资源分配方法、装置和系统 |
CN107133185A (zh) * | 2017-04-19 | 2017-09-05 | 深圳市同泰怡信息技术有限公司 | 通过bios实现pcie设备热插拔功能的方法及主板 |
CN114785745A (zh) * | 2022-03-23 | 2022-07-22 | 新华三技术有限公司合肥分公司 | 一种配置设备资源的方法和交换机 |
-
2024
- 2024-03-29 CN CN202410372908.9A patent/CN117971504B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090077297A1 (en) * | 2007-09-14 | 2009-03-19 | Hongxiao Zhao | Method and system for dynamically reconfiguring PCIe-cardbus controllers |
CN101989240A (zh) * | 2009-07-13 | 2011-03-23 | 甲骨文美国公司 | 用于设备资源分配和再平衡的系统和方法 |
CN101631083A (zh) * | 2009-08-07 | 2010-01-20 | 成都市华为赛门铁克科技有限公司 | 设备接管方法和装置及双控系统 |
CN103117929A (zh) * | 2013-01-31 | 2013-05-22 | 中国科学院计算技术研究所 | 一种基于PCIe数据交换的通信方法及系统 |
CN106126460A (zh) * | 2016-06-16 | 2016-11-16 | 迈普通信技术股份有限公司 | 热插拔设备预留资源分配方法、装置和系统 |
CN107133185A (zh) * | 2017-04-19 | 2017-09-05 | 深圳市同泰怡信息技术有限公司 | 通过bios实现pcie设备热插拔功能的方法及主板 |
CN114785745A (zh) * | 2022-03-23 | 2022-07-22 | 新华三技术有限公司合肥分公司 | 一种配置设备资源的方法和交换机 |
Also Published As
Publication number | Publication date |
---|---|
CN117971504B (zh) | 2024-07-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4001877B2 (ja) | 入出力ファブリックにおけるハードウェア・エラーからの自動回復 | |
JP4039794B2 (ja) | マルチパス計算機システム | |
US7657698B2 (en) | Systems and methods for chassis identification | |
CN108984349B (zh) | 主节点选举方法及装置、介质和计算设备 | |
US11573737B2 (en) | Method and apparatus for performing disk management of all flash array server | |
EP0333593B1 (en) | A data processing system capable of fault diagnosis | |
US8347142B2 (en) | Non-disruptive I/O adapter diagnostic testing | |
CN110377456A (zh) | 一种虚拟化平台容灾的管理方法及装置 | |
WO2020233001A1 (zh) | 双控构架分布式存储系统、数据读取方法、装置和存储介质 | |
US11627036B2 (en) | Smart failover of redundant network IP based on redundant computer | |
CN112291082A (zh) | 机房容灾处理方法、终端及存储介质 | |
EP2069934B1 (en) | Fault-tolerant medium access control (mac) address assignment in network elements | |
US11636012B2 (en) | Method and apparatus for performing node information exchange management of all flash array server | |
CN117971504B (zh) | 一种故障倒换Bus资源分配方法、系统及装置 | |
JP2000222375A (ja) | マルチプロセッサシステム | |
US7117397B1 (en) | Apparatus and method for preventing an erroneous operation at the time of detection of a system failure | |
CN110839068B (zh) | 业务请求处理方法、装置、电子设备及可读存储介质 | |
CN105677519A (zh) | 一种资源的访问方法和装置 | |
CN112463669B (zh) | 一种存储仲裁管理方法、系统、终端及存储介质 | |
WO2016075813A1 (ja) | 計算機システム、及びその制御方法 | |
JP4159524B2 (ja) | Pciカード情報採取装置 | |
CN118606103A (zh) | 一种双az集群下的容灾方法及相关设备 | |
CN114579338A (zh) | 双机分布式仲裁系统及其仲裁方法 | |
JP2014081880A (ja) | 診断回路診断装置、診断回路診断システム、診断回路診断方法、及び、診断回路診断プログラム | |
KR20000033963A (ko) | 프로세스 감시 및 장애 복구방법 |
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 |