System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术涉及计算机数据处理及集成电路领域,尤其涉及一种支持pcie switch子树故障倒换的bus资源分配方法、系统及装置。
技术介绍
1、在基于pcie的高可用系统中,要想实现高可用就要避免使用单点,假设单台服务器再强应用优化再到极致,只要单台服务器宕机,基本就不可用,只有在冗余备份上,其他备用的服务器才可以顶替上以保证可用性,才可能实现高可用,现有技术中一般采用主备模式与主主模式进行pcie系统资源系统的部署,从而保证系统的高可用性。
2、在高可用的主主模式下,当其中一个host出现故障的时候,由另一个host对故障host下的pcie设备进行接管,从而保证系统的高可用性。然而当要接管故障host下的pcie子树时,在不影响原先host下的pcie设备的正常工作的情况下,需要接管侧的端口能够预留足够的bus资源,用来保证被接入的pcie子树能够在新host中重新枚举出来,这时候就可以让新host可以管控到故障侧的pcie设备;在主主模式下,必须同时保证两个主host端的接口也能够预留bus资源(因为不知道谁接管谁,可以互相接管)。
3、在目前的linux版本的pcie子系统中,支持hotplug的端口的bus的预留是固定的,当接入的pcie子树中含有支持hotplug能力的端口时,会分配固定的预留资源,从而导致资源分配不足(因为倒换接口预留为a,则如果子树含有一个hotplug端口的话,直接将a资源占用了,从而导致其他端口无法分配到bus资源)。从而导致主主模式下故障切换失败,影响整个系统的高可用
技术实现思路
1、有鉴于此,为解决上述现有技术中存在的linux pcie子树热插入的缺点,本专利技术提供了一种针对pcie switch子树故障倒换的bus资源分配方法、系统及装置。具体而言,本专利技术提供了以下技术特征:
2、一方面,本专利技术提供了一种故障倒换bus资源分配方法,所述方法包括:
3、s1、在第一switch上预留第二host上的pcie子树资源;在第二switch上预留第一host的pcie子树资源;在所述第一host及第二host之间做保活,并在所述第一switch上的第二倒换口及第二switch上的第一倒换口均预留资源;
4、s2、当第一host检测到第二host出现故障时,触发故障切换,进入步骤s3;
5、s3、基于上一级pci桥下的bus资源以及pci桥集合,遍历第二host的pcie子树并为普通pci桥和热插拔pci桥分配bus资源,并验证各级bus资源是否分配成功;
6、当第二host的pcie子树遍历完毕并且bus资源分配成功后,执行步骤s4,否则重复执行s3;
7、s4、将原故障的第二host隔离,并拆除倒换口,完成对整个第二host上的pcie子树的接管。
8、优选地,所述第一host与第一switch的上行口相连,所述第二host与第二switch的上行口相连;
9、所述第一switch与第二switch之间通过倒换口相连。
10、优选地,所述s3进一步包括:
11、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};
12、其中,a、b、m、n、h、g为正整数;
13、s302、在未分配pci桥集合rnassigned中,普通桥集合rnornal = {h,h+1,…,l},热插拔桥集合 rhotplug = {l+1,l+2,…,g};
14、s303、为每个普通桥分配1个bus资源,并为每个热插拔桥分配bus资源;并形成上一级pci桥的子树集合st和对应的预留资源集合bt;
15、s304、获取本级各pci桥下的子树端口个数,形成对应的子树集合pt;
16、s305、基于预留资源集合bt及子树集合pt,验证本级bus资源分配是否成功;
17、s306、遍历第二host的pcie子树,直至完成bus资源分配。
18、优选地,所述s4进一步包括:
19、s401、拆除第一switch的第一倒换口;
20、s402、重新扫描可以看到的第二switch端的倒换口;
21、s403、通过s402中扫描到的第二switch端的倒换口,将第二host隔离;
22、s404、拆除第二switch端的倒换口,并触发本地端口下的总线复位;
23、s405、重新扫描bus,完成对整个第二host上的pcie子树的接管。
24、优选地,所述s303中,为每个热插拔桥分配bus资源的数量为:
25、。
26、优选地,所述s305中,验证本级bus资源分配是否成功的方式为:
27、将预留资源集合bt与子树集合pt对应位置上的元素进行比较,如果pi > bi,则分配失败,否则分配成功,记结果集合为rt={r1,r2,…,ri,…,rn};若ri全部为成功,则本级bus资源分配成功;
28、其中,pi为子树集合pt中的第i个元素,bi为预留资源集合bt中的第i个元素。
29、优选地,所述s403中,将第二host隔离的方式为:
30、将第二switch上的倒换口的配置转移到第二host一侧的pcie交换芯片的上行口上,以完成隔离。
31、优选地,若本级bus资源分配失败,则发送报错信息,并重新启动bus资源分配。
32、另一方面,本专利技术还提供了一种故障倒换bus资源分配系统,所述系统包括:
33、包含第一host的第一switch,以及包含第二host的第二switch;在第一switch上预留第二host上的pcie子树资源;在第二switch上预留第一host的pcie子树资源;在所述第一host及第二host之间做保活,并在所述第一switch上的第二倒换口及第二switch上的第一倒换口均预留资源;
34、故障切换模块,用于当第一host检测到第二host出现故障时,触发故障切换;
35、bus资源分配模块,基于上一级pci桥下的bus资源以及pci桥集合,遍历第二host的pcie子树并为普通pci桥和热插拔pci桥分配bus资源,并验证各级bus资源是否分配成功;以及
36、当第二host的pcie子树遍历完毕并且bus资源分配成功后,触发倒换接入模块进行host2子树的倒换接入;
...【技术保护点】
1.一种故障倒换Bus资源分配方法,其特征在于,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述第一Host与第一switch的上行口相连,所述第二Host与第二switch的上行口相连;
3.根据权利要求1所述的方法,其特征在于,所述S3进一步包括:
4.根据权利要求1所述的方法,其特征在于,所述S4进一步包括:
5.根据权利要求3所述的方法,其特征在于,所述S303中,为每个热插拔桥分配Bus资源的数量为:
6.根据权利要求3所述的方法,其特征在于,所述S305中,验证本级Bus资源分配是否成功的方式为:
7.根据权利要求4所述的方法,其特征在于,所述S403中,将第二Host隔离的方式为:
8.根据权利要求6所述的方法,其特征在于,若本级Bus资源分配失败,则发送报错信息,并重新启动Bus资源分配。
9.一种故障倒换Bus资源分配系统,其特征在于,所述系统包括:
10.一种故障倒换Bus资源分配装置,其特征在于,所述装置包括至少两个PCIe交换芯片,以及
...【技术特征摘要】
1.一种故障倒换bus资源分配方法,其特征在于,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述第一host与第一switch的上行口相连,所述第二host与第二switch的上行口相连;
3.根据权利要求1所述的方法,其特征在于,所述s3进一步包括:
4.根据权利要求1所述的方法,其特征在于,所述s4进一步包括:
5.根据权利要求3所述的方法,其特征在于,所述s303中,为每个热插拔桥分配bus资源的数量为:
6.根据权利要求3所述的方法,其特征在于,所述s305中,验证本级bus资源分配是否成功的方...
【专利技术属性】
技术研发人员:朱珂,常超,张明伟,闻亮,肖峰,万雪翔,薛鹏飞,姚领彦,田境遴,
申请(专利权)人:井芯微电子技术天津有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。