欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種存儲(chǔ)系統(tǒng)中業(yè)務(wù)的鏈路切換方法和存儲(chǔ)設(shè)備的制造方法

文檔序號(hào):10690843閱讀:641來(lái)源:國(guó)知局
一種存儲(chǔ)系統(tǒng)中業(yè)務(wù)的鏈路切換方法和存儲(chǔ)設(shè)備的制造方法
【專利摘要】本發(fā)明公開了一種存儲(chǔ)系統(tǒng)中業(yè)務(wù)的鏈路切換方法和存儲(chǔ)設(shè)備,涉及存儲(chǔ)領(lǐng)域,在鏈路故障時(shí)將該鏈路所承載的業(yè)務(wù)進(jìn)行切換,以使該業(yè)務(wù)不被中斷,提高了業(yè)務(wù)的可靠性。所述存儲(chǔ)系統(tǒng)包括第一控制器和第二控制器,其中所述第一控制器和第二控制器分別與至少一個(gè)接口卡相連,每個(gè)所述接口卡包含至少一個(gè)端口;在所述存儲(chǔ)系統(tǒng)中預(yù)先配置綁定端口組,所述綁定端口組包括來(lái)自第一控制器和第二控制器的端口,所述方法包括:若所述第一控制器檢測(cè)到所述綁定端口組中第一端口的鏈路發(fā)生故障,則在所述綁定端口組中將所述第一端口的狀態(tài)標(biāo)記為不可用;從所述綁定端口組中挑選狀態(tài)為可用的第二端口,將所述第一端口的鏈路所承載的業(yè)務(wù)切換到所述第二端口的鏈路。
【專利說(shuō)明】
一種存儲(chǔ)系統(tǒng)中業(yè)務(wù)的鏈路切換方法和存儲(chǔ)設(shè)備
技術(shù)領(lǐng)域
[0001]本發(fā)明涉及存儲(chǔ)領(lǐng)域,尤其涉及一種存儲(chǔ)系統(tǒng)中業(yè)務(wù)的鏈路切換方法和存儲(chǔ)設(shè)備。
【背景技術(shù)】
[0002]隨著網(wǎng)絡(luò)應(yīng)用的快速發(fā)展,越來(lái)越多的用戶面臨網(wǎng)絡(luò)鏈路穩(wěn)定性的問題,最直接的手段就是在系統(tǒng)中通過鏈路聚合技術(shù)提供鏈路冗余功能。
[0003]鏈路聚合技術(shù)主要使用鏈路匯聚控制協(xié)議(Link Aggregat1n ControlProtocol,LACP),LACP是基于電器和電子工程師協(xié)會(huì)(Institute of Electrical andElectronics Engineer,IEEE)802.3ad標(biāo)準(zhǔn)提出的一種實(shí)現(xiàn)鏈路動(dòng)態(tài)匯聚的協(xié)議,通信的雙方分別通過鏈路匯聚控制協(xié)議數(shù)據(jù)單元(Link Aggregat1n Control Protocol DataUnit,LACPDU)與對(duì)端設(shè)備交互信息進(jìn)行鏈路的動(dòng)態(tài)匯聚和解匯聚,實(shí)現(xiàn)動(dòng)態(tài)的冗余備份。
[0004]現(xiàn)有技術(shù)中,存儲(chǔ)設(shè)備通過LACP方式在控制器內(nèi)實(shí)現(xiàn)鏈路聚合,即將同一控制器內(nèi)的一組端口捆綁在一起作為一個(gè)邏輯端口,在該控制器和交換機(jī)間形成聚合鏈路,即將所述一組端口中的每個(gè)端口與交換機(jī)之間的通信鏈路聚合成一條邏輯鏈路,數(shù)據(jù)傳輸過程中根據(jù)每條物理鏈路的狀態(tài)實(shí)現(xiàn)冗余路徑切換。當(dāng)所述一組端口中的某個(gè)端口故障時(shí),控制器可以快速感知,并使用其他端口的物理鏈路來(lái)承載業(yè)務(wù)。但是,若該控制器發(fā)送故障,則該控制器與所述交換機(jī)間的所有物理鏈路全部斷開,就不再存在冗余路徑。因此,現(xiàn)有技術(shù)中,當(dāng)存儲(chǔ)設(shè)備的控制器單點(diǎn)故障時(shí),該控制器的端口對(duì)應(yīng)的業(yè)務(wù)鏈路發(fā)生故障,業(yè)務(wù)被迫中斷。

【發(fā)明內(nèi)容】

[0005]本發(fā)明實(shí)施例提供了一種存儲(chǔ)系統(tǒng)中業(yè)務(wù)的鏈路切換方法和存儲(chǔ)設(shè)備,可以在鏈路故障時(shí)將該所述鏈路所承載的業(yè)務(wù)進(jìn)行切換,以使所述業(yè)務(wù)不被中斷。
[0006]為了達(dá)到上述目的,本發(fā)明采用如下技術(shù)方案:
[0007]第一方面,提供一種存儲(chǔ)系統(tǒng)中業(yè)務(wù)的鏈路切換方法,該存儲(chǔ)系統(tǒng)包括第一控制器和第二控制器,其中所述第一控制器和第二控制器分別與至少一個(gè)接口卡相連,每個(gè)接口卡包含至少一個(gè)端口 ;在該存儲(chǔ)系統(tǒng)中預(yù)先配置綁定端口組,該綁定端口組包括來(lái)自第一控制器和第二控制器的端口;所述方法包括:
[0008]若所述第一控制器檢測(cè)到所述綁定端口組中第一端口的鏈路發(fā)生故障,將所述第一端口的狀態(tài)標(biāo)記為不可用;
[0009]所述第一控制器從所述綁定端口組中挑選狀態(tài)為可用的第二端口,將所述第一端口的鏈路所承載的所述業(yè)務(wù)切換到所述第二端口的鏈路。
[0010]具體地,在所述存儲(chǔ)系統(tǒng)中會(huì)保存所述綁定端口組的綁定端口組信息。所述綁定端口組信息可以包括:
[0011 ] 綁定端口組標(biāo)識(shí):用于區(qū)分和識(shí)別該綁定端口組;
[0012]綁定端口組的附屬端口:即該綁定端口組所包含的來(lái)自至少2個(gè)控制器的多個(gè)端P;
[0013]附屬端口工作狀態(tài):用于表示每個(gè)附屬端口自身的狀態(tài),如可用或不可用;
[0014]附屬端口對(duì)應(yīng)鏈路的狀態(tài):于表示每個(gè)附屬端口所對(duì)應(yīng)鏈路的狀態(tài),如正常或故障;
[0015]綁定端口組MAC地址;
[0016]綁定端口組IP地址。
[0017]這里,所述將第一端口的狀態(tài)標(biāo)記為不可用即是在所述的綁定端口組信息中將所述第一端口的工作狀態(tài)改為不可用;進(jìn)一步地,將所述第一端口所對(duì)應(yīng)的鏈路的狀態(tài)變?yōu)楣收稀?br>[0018]所述綁定端口組信息在所述存儲(chǔ)系統(tǒng)中可以是作為全局信息保存,這樣在后續(xù)業(yè)務(wù)開展過程中,所述存儲(chǔ)系統(tǒng)中的各個(gè)控制器都可以查看、變更所述綁定端口組信息,如當(dāng)所述綁定端口組中的某附屬端口的工作狀態(tài)發(fā)生變化、或附屬端口的對(duì)應(yīng)鏈路的狀態(tài)發(fā)生變化。
[0019]優(yōu)選地,為了降低所述存儲(chǔ)系統(tǒng)中各個(gè)控制器間的耦合性,提升各個(gè)控制器的處理效率,降低控制器間通信時(shí)延,也可以將所述綁定端口組信息分別在所述綁定端口組中各個(gè)附屬端口所歸屬的不同控制器本地保存。這樣,在后續(xù)業(yè)務(wù)開展過程中,所述各個(gè)附屬端口所歸屬的不同控制器可以直接在本地查詢、變更所述綁定端口組信息。
[0020]在第一方面的第一種可能的實(shí)現(xiàn)方式中,所述方法還包括:第一端口歸屬于第一控制器,第一控制器檢測(cè)到所述第一端口的鏈路發(fā)生故障具體為:
[0021 ]若所述第一控制器檢測(cè)到所述第一端口發(fā)生故障或檢測(cè)到所述第一端口所歸屬的接口卡發(fā)生故障,則判斷所述第一端口的鏈路發(fā)生故障。
[0022]在第一方面的第二種可能的實(shí)現(xiàn)方式中,所述方法還包括:第一端口歸屬于所述第一控制器,所述第一控制器檢測(cè)到第一端口的鏈路發(fā)生故障具體為:
[0023]若第一控制器在預(yù)定義的時(shí)間閾值內(nèi)未收到來(lái)自對(duì)端交換機(jī)的鏈路狀態(tài)信息,則判斷所述第一端口的鏈路發(fā)生故障。
[0024]在第一方面的第三種可能的實(shí)現(xiàn)方式中,所述方法還包括:第一端口歸屬于第二控制器,所述第一控制器檢測(cè)到第一端口的鏈路發(fā)生故障具體為:
[0025]若第一控制器檢測(cè)到第二控制器發(fā)生故障,則判斷所述第一端口的鏈路發(fā)生故障。
[0026]在第一方面的第四種可能實(shí)現(xiàn)方式中,所述方法還包括:
[0027]所述第一控制器從所述綁定端口組中隨機(jī)挑選一個(gè)當(dāng)前狀態(tài)為可用的端口作為所述第二端口。
[0028]在第一方面的第五種可能實(shí)現(xiàn)方式中,所述方法還包括:所述第一控制器挑選所述綁定端口組中當(dāng)前狀態(tài)為可用且與所述第一端口歸屬于同一接口卡的端口作為所述第二端口 ;或者
[0029]若在所述綁定端口組中不存在當(dāng)前狀態(tài)為可用且與所述第一端口歸屬于同一接口卡的端口,則所述第一控制器挑選當(dāng)前狀態(tài)為可用且與所述第一端口歸屬于同一控制器的端口作為所述第二端口;或者
[0030]若在所述綁定端口組中既不存在當(dāng)前狀態(tài)為可用且與所述第一端口歸屬于同一接口卡的端口,也不存在當(dāng)前狀態(tài)為可用且與所述第一端口歸屬于同一控制器的端口,則所述第一控制器挑選所述綁定端口組中當(dāng)前狀態(tài)為可用且業(yè)務(wù)負(fù)載最低的端口作為第二端口。
[0031 ]結(jié)合第一方面至第一方面第五種可能實(shí)現(xiàn)方式,在第一方面第六種可能實(shí)現(xiàn)方式中,在存儲(chǔ)系統(tǒng)中,第一控制器和第二控制器歸屬于同一存儲(chǔ)設(shè)備。
[0032]結(jié)合第一方面至第一方面第五種可能實(shí)現(xiàn)方式,在第一方面第七種可能實(shí)現(xiàn)方式中,存儲(chǔ)系統(tǒng)中,第一控制器和第二控制器歸屬于不同存儲(chǔ)設(shè)備。
[0033]通過以上描述的方法,當(dāng)綁定端口組中的所述第一端口的鏈路出現(xiàn)故障時(shí),可以在所述綁定端口組中挑選狀態(tài)為可用的第二端口,由所述第二端口的鏈路來(lái)承載所述第一端口所承載的業(yè)務(wù)。因?yàn)樵诒痉椒ㄖ?,所述綁定端口組包含來(lái)自不同控制器的多個(gè)端口,這樣,無(wú)論是出現(xiàn)端口自身故障、接口卡故障,交換機(jī)側(cè)端口故障,還是出現(xiàn)某個(gè)控制器故障的情況,都可以從所述綁定端口組中挑選第二端口,并將本由所述第一端口的鏈路所承載的業(yè)務(wù)切換到所述第二端口的鏈路上以使得所述業(yè)務(wù)可以繼續(xù)進(jìn)行下去,并由此提高了整個(gè)存儲(chǔ)系統(tǒng)的業(yè)務(wù)可靠性。
[0034]第二方面,提供了一種存儲(chǔ)設(shè)備,所述存儲(chǔ)設(shè)備包括第一控制器和第二控制器,其中所述第一控制器和第二控制器分別與至少一個(gè)接口卡相連,每個(gè)所述接口卡包含至少一個(gè)端口;其中,所述第一控制器包括配置單元、檢測(cè)單元和切換單元;
[0035]所述配置單元,用于預(yù)先配置綁定端口組,所述綁定端口組包括來(lái)自第一控制器和第二控制器的端口 ;
[0036]所述檢測(cè)單元,用于檢測(cè)第一端口的鏈路發(fā)生故障,將所述第一端口的狀態(tài)標(biāo)記為不可用;
[0037]所述切換單元,用于從所述綁定端口組中挑選狀態(tài)為可用的第二端口,將所述第一端口的鏈路所承載的業(yè)務(wù)切換到所述第二端口的鏈路。
[0038]可選地,當(dāng)所述第一端口歸屬于所述第一控制器時(shí),所述檢測(cè)單元檢測(cè)到所述第一端口發(fā)生故障或檢測(cè)到所述第一端口所歸屬的接口卡發(fā)生故障,則判斷所述第一端口的鏈路發(fā)生故障。
[0039]可選地,當(dāng)所述第一端口歸屬于所述第一控制器,所述檢測(cè)單元還用于當(dāng)所述第一控制器在預(yù)定義的時(shí)間閾值內(nèi)未收到來(lái)自對(duì)端交換機(jī)的鏈路狀態(tài)信息時(shí),判斷所述第一端口的鏈路發(fā)生故障。
[0040]可選地,所述第一端口歸屬于所述第二控制器,所述檢測(cè)單元還用于在檢測(cè)到第二控制器發(fā)生故障,則判斷所述第一端口的鏈路發(fā)生故障。
[0041]第三方面,提供了一種存儲(chǔ)設(shè)備,包括:第一控制器、第二控制器、存儲(chǔ)器、通信接口和總線,所述第一控制器、第二控制器、存儲(chǔ)器和通信接口通過所述總線相連;所述存儲(chǔ)器用于存儲(chǔ)操作系統(tǒng)和程序,其中,所述程序包括用于執(zhí)行第一方面或第一方面的任意可能的實(shí)現(xiàn)方式中的方法的指令。所述第一控制器和所述第二控制器用于執(zhí)行所述存儲(chǔ)器的指令,并且當(dāng)所述第一控制器或所述第二控制器執(zhí)行所述存儲(chǔ)器存儲(chǔ)的指令時(shí),該執(zhí)行使得所述第一控制器或所述第二控制器執(zhí)行第一方面或第一方面的任意可能的實(shí)現(xiàn)方式中的方法。
[0042]第四方面,提供了一種計(jì)算機(jī)可讀介質(zhì),用于存儲(chǔ)計(jì)算機(jī)程序,該計(jì)算機(jī)程序包括用于執(zhí)行第一方面或第一方面的任意可能的實(shí)現(xiàn)方式中的方法的指令。
[0043]通過以上描述的方法及存儲(chǔ)設(shè)備,當(dāng)綁定端口組中的所述第一端口的鏈路出現(xiàn)故障時(shí),可以在所述綁定端口組中挑選狀態(tài)為可用的第二端口,由所述第二端口的鏈路來(lái)承載所述第一端口所承載的業(yè)務(wù)。因?yàn)樗鼋壎ǘ丝诮M包含來(lái)自不同控制器的多個(gè)端口,這樣,無(wú)論是出現(xiàn)端口自身故障、接口卡故障,交換機(jī)側(cè)端口故障,還是出現(xiàn)某個(gè)控制器故障的情況,都可以從所述綁定端口組中挑選第二端口,并將本由所述第一端口的鏈路所承載的業(yè)務(wù)切換到所述第二端口的鏈路上以使得所述業(yè)務(wù)可以繼續(xù)進(jìn)行下去,并由此提高了整個(gè)存儲(chǔ)系統(tǒng)的業(yè)務(wù)可靠性。
【附圖說(shuō)明】
[0044]圖1為本發(fā)明實(shí)施例提供的一種存儲(chǔ)系統(tǒng)示意圖;
[0045]圖1A為本發(fā)明實(shí)施例提供的一種存儲(chǔ)設(shè)備示意圖;
[0046]圖1B為本發(fā)明實(shí)施例提供的一種實(shí)現(xiàn)綁定端口組的示意圖;
[0047]圖2為本發(fā)明實(shí)施例提供的一種創(chuàng)建綁定端口組流程的示意圖;
[0048]圖2A為本發(fā)明實(shí)施例提供的一種保存綁定端口組信息的數(shù)據(jù)結(jié)構(gòu)的示意圖;
[0049]圖3為本發(fā)明實(shí)施例提供的一種業(yè)務(wù)處理流程圖;
[0050]圖3A為本發(fā)明實(shí)施例提供的一種保存鏈路業(yè)務(wù)信息的數(shù)據(jù)結(jié)構(gòu)的示意圖;
[0051]圖4為本發(fā)明實(shí)施例提供的一種存儲(chǔ)系統(tǒng)中業(yè)務(wù)的鏈路切換方法400的示意性流程圖;
[0052]圖5為本發(fā)明實(shí)施例提供的一種業(yè)務(wù)的鏈路切換方法的流程圖;
[0053]圖6為本發(fā)明實(shí)施例提供的另一種業(yè)務(wù)的鏈路切換方法的流程圖;
[0054]圖7為本發(fā)明實(shí)施例提供的另一種業(yè)務(wù)的鏈路切換方法的流程圖;
[0055]圖8為本發(fā)明實(shí)施例提供的一種存儲(chǔ)設(shè)備的結(jié)構(gòu)示意圖;
[0056]圖9為本發(fā)明實(shí)施例提供的另一種存儲(chǔ)設(shè)備的結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0057]下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例是本發(fā)明的一部分實(shí)施例,而不是全部實(shí)施例。基于本發(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動(dòng)的前提下所獲得的所有其他實(shí)施例,都應(yīng)屬于本發(fā)明保護(hù)的范圍。
[0058]本發(fā)明實(shí)施例提供的一種存儲(chǔ)系統(tǒng)中業(yè)務(wù)的鏈路切換的方法,應(yīng)用在存儲(chǔ)系統(tǒng)中,該存儲(chǔ)系統(tǒng)可以是由2個(gè)或2個(gè)以上存儲(chǔ)設(shè)備構(gòu)成的存儲(chǔ)集群系統(tǒng),其中每個(gè)存儲(chǔ)設(shè)備包含至少I個(gè)控制器,每個(gè)控制器分別與至少一個(gè)接口卡相連,如主機(jī)總線適配器(HostBus Adapter,HBA)卡,每個(gè)接口卡包含至少一個(gè)端口,所述控制器通過所述端口與其它實(shí)體通信,如交換機(jī)、服務(wù)器等。圖1所示為一種存儲(chǔ)系統(tǒng)的示意圖,該存儲(chǔ)系統(tǒng)為由存儲(chǔ)設(shè)備I和存儲(chǔ)設(shè)備2構(gòu)成的存儲(chǔ)集群系統(tǒng),所述存儲(chǔ)設(shè)備I包含控制器A和控制器B,分別通過端口Al、A2、B1、B2與交換機(jī)和服務(wù)器通信;所述存儲(chǔ)設(shè)備2包含控制器C和控制器D,分別通過端口C1、C2、D1、D2與所述交換機(jī)和服務(wù)器通信(圖中未顯示標(biāo)出接口卡)。本領(lǐng)域的技術(shù)人員可以理解的是,所述控制器是通過在其所包含的端口與所述交換機(jī)的端口間建立通信鏈路以實(shí)現(xiàn)控制器和所述交換機(jī)的通信。如所述控制器A、控制器B分別建立端口 A1、A2、B1、B2與所述交換機(jī)的端口 S1、S2、S3、S4端口間的鏈路,同樣的,所述交換機(jī)也通過SO端口建立與所述服務(wù)器Ql端口的通信鏈路,這樣,所述存儲(chǔ)設(shè)備I就可以和所述交換機(jī)、服務(wù)器通信。本發(fā)明實(shí)施例也可以應(yīng)用于由I個(gè)存儲(chǔ)設(shè)備構(gòu)成的存儲(chǔ)系統(tǒng),該存儲(chǔ)設(shè)備包括2個(gè)或2個(gè)以上的控制器。如圖1A所示,該存儲(chǔ)設(shè)備包含4個(gè)控制器,每個(gè)控制器分別與一個(gè)接口卡(接口卡在圖中沒有顯示出現(xiàn))相連,每個(gè)接口卡包含兩個(gè)端口,所述存儲(chǔ)設(shè)備通過其包含的端口與對(duì)端設(shè)備通信,如交換機(jī)或服務(wù)器。后續(xù)具體以圖1所示應(yīng)用場(chǎng)景詳細(xì)描述本發(fā)明實(shí)施例。
[0059]本發(fā)明提供的實(shí)施例需在存儲(chǔ)系統(tǒng)中預(yù)先將多個(gè)端口組成綁定端口組,這里所述多個(gè)端口來(lái)自不同控制器,則該綁定端口組中每個(gè)端口對(duì)應(yīng)的通信鏈路(即該端口與對(duì)端交換機(jī)端口間的通信鏈路)形成邏輯的聚合鏈路,則所述控制器通過所述聚合鏈路與所述對(duì)端交換機(jī)通信,如圖1B所示的I個(gè)例子,是將該存儲(chǔ)系統(tǒng)中的所有控制器的全部端口組成一個(gè)綁定端口組。
[0060]綁定端口組的創(chuàng)建方法如圖2所示,所述方法包括:
[0061]S201、主控制器將來(lái)自不同控制器的多個(gè)端口組成綁定端口組。
[0062]在如圖1所示的存儲(chǔ)系統(tǒng)中,由主控制器來(lái)負(fù)責(zé)創(chuàng)建綁定端口組。所述主控制器可以是存儲(chǔ)系統(tǒng)所包含的4個(gè)控制器中的任一控制器,示例地,可以是控制器標(biāo)識(shí)最小的控制器(即控制器A),本發(fā)明實(shí)施例對(duì)此不作限制。另外,本領(lǐng)域技術(shù)人員可以理解的是,當(dāng)原主控制器故障時(shí),所述存儲(chǔ)系統(tǒng)可以自動(dòng)選定其它控制器作為新的主控制器。
[0063]所述主控制器在創(chuàng)建綁定端口組時(shí),將不同控制器的多個(gè)端口組成I個(gè)綁定端口組,所述多個(gè)端口為該綁定端口組的附屬端口。如圖1B所示即為將所述存儲(chǔ)系統(tǒng)中所有控制器的所有端口組成I個(gè)綁定端口組。當(dāng)然,也可以根據(jù)業(yè)務(wù)需要?jiǎng)?chuàng)建多個(gè)綁定端口組,每個(gè)綁定端口組包含至少2個(gè)端口,所述至少2個(gè)端口來(lái)自不同的控制器,需要明確的是,在同一時(shí)刻,同一個(gè)控制器的同一端口僅能在一個(gè)綁定端口組中,不能被包含到多個(gè)綁定端口組中。
[0064]S202、主控制器生成綁定端口組信息。
[0065]所述綁定端口組信息可以包括:
[0066]綁定端口組標(biāo)識(shí):用于區(qū)分和識(shí)別該綁定端口組;
[0067]綁定端口組的附屬端口:即該綁定端口組所包含的來(lái)自至少2個(gè)控制器的多個(gè)端P;
[0068]附屬端口工作狀態(tài):用于表示每個(gè)附屬端口自身的狀態(tài),如可用或不可用;
[0069]附屬端口對(duì)應(yīng)鏈路的狀態(tài):于表示每個(gè)附屬端口所對(duì)應(yīng)鏈路的狀態(tài),如正?;蚬收?;
[0070]綁定端口組MAC地址(MediaAccess Control Address ,MAC Address);
[0071 ]綁定端口組IP地址(Internet Protocol Address) 0
[0072]可選地,所述綁定端口組信息還可以包括:
[0073]綁定端口組的虛擬局域網(wǎng)(VirtualLocal Area Network,VLAN);
[0074]附屬端口的鏈路統(tǒng)計(jì)信息:用于記錄每個(gè)附屬端口的工作鏈路信息。
[0075]圖2A為本發(fā)明實(shí)施例給出的一種保存綁定端口組信息的數(shù)據(jù)結(jié)構(gòu)示意圖,本領(lǐng)域技術(shù)人員可以理解的是,在實(shí)際應(yīng)用中,可以根據(jù)業(yè)務(wù)需要靈活采用各種不同的數(shù)據(jù)結(jié)構(gòu)來(lái)記錄所述綁定端口組信息,都在本發(fā)明的保護(hù)范圍內(nèi),本發(fā)明對(duì)所述數(shù)據(jù)結(jié)構(gòu)不做具體限定。
[0076]可選地,所述主控制器在創(chuàng)建綁定端口組的過程中會(huì)校驗(yàn)附屬端口的合法性,SP校驗(yàn)該附屬端口是否已加入其它綁定端口組,以及校驗(yàn)綁定端口組的MAC地址和IP地址的合法性。
[0077]在所述綁定端口組信息被生成后,在所述存儲(chǔ)系統(tǒng)中可以將所述綁定端口組信息作為全局信息保存,這樣在后續(xù)業(yè)務(wù)開展過程中,所述存儲(chǔ)系統(tǒng)中的各個(gè)控制器都可以查看、變更所述綁定端口組信息,如當(dāng)所述綁定端口組中的某附屬端口的工作狀態(tài)發(fā)生變化、或附屬端口的對(duì)應(yīng)鏈路的狀態(tài)發(fā)生變化。
[0078]S203、(可選)所述主控制器將所述綁定端口組信息發(fā)送給所述不同控制器。
[0079]S204、(可選)所述不同控制器分別本地保存所述綁定端口組信息。
[0080]優(yōu)選地,為了降低所述存儲(chǔ)系統(tǒng)中各個(gè)控制器間的耦合性,提升各個(gè)控制器的處理效率,降低控制器間通信時(shí)延,所述主控制器也可以將所述綁定端口組信息分別發(fā)送給所述綁定端口組中各個(gè)附屬端口所歸屬的不同控制器,由其分別本地保存所述綁定端口組信息。這樣,在后續(xù)業(yè)務(wù)開展過程中,所述控制器可以直接在本地查詢、變更所述綁定端口組信息。
[0081]本領(lǐng)域技術(shù)人員可以理解的是,在所述主控制器創(chuàng)建綁定端口組后,基于LACP技術(shù),該綁定端口組中每個(gè)附屬端口所歸屬的控制器分別通過該附屬端口向?qū)Χ私粨Q機(jī)發(fā)送鏈路匯聚協(xié)議數(shù)據(jù)單元(Link Aggregat1n Control Protocol Data Unit,LACPDU),向所述對(duì)端交換機(jī)通知自身的系統(tǒng)優(yōu)先級(jí)、端口優(yōu)先級(jí)、端口號(hào)、操作key值等信息。經(jīng)過協(xié)商后,可以將所述主控制器創(chuàng)建的綁定端口組中每個(gè)附屬端口與所述交換機(jī)的相應(yīng)端口建立的通信鏈路聚合成I條邏輯的聚合鏈路。該具體實(shí)現(xiàn)過程為L(zhǎng)ACP的現(xiàn)有技術(shù),此處不再贅述。
[0082]在所述主控制器完成綁定端口組創(chuàng)建并與對(duì)端交換機(jī)協(xié)商后,所述存儲(chǔ)系統(tǒng)可以基于所述綁定端口組的聚合鏈路與對(duì)端交換機(jī)以及服務(wù)器實(shí)現(xiàn)某業(yè)務(wù)的數(shù)據(jù)傳輸。如圖3所示,具體包括:
[0083 ] S301、服務(wù)器向交換機(jī)發(fā)送業(yè)務(wù)請(qǐng)求消息。
[0084]在所述業(yè)務(wù)開展的過程中,所述服務(wù)器向存儲(chǔ)系統(tǒng)發(fā)送業(yè)務(wù)請(qǐng)求消息,所述的業(yè)務(wù)請(qǐng)求消息可以是讀請(qǐng)求,也可以是寫請(qǐng)求,或是其它類別的業(yè)務(wù)相關(guān)消息,本發(fā)明對(duì)此不做限定。
[0085]S302、交換機(jī)將所述業(yè)務(wù)請(qǐng)求消息發(fā)送給控制器。
[0086]本發(fā)明實(shí)施例中,所述交換機(jī)在收到來(lái)自服務(wù)器的所述業(yè)務(wù)請(qǐng)求消息后,若所述交換機(jī)確認(rèn)其與存儲(chǔ)系統(tǒng)間基于上述實(shí)施例建立了綁定端口組并建立了聚合鏈路,則可以根據(jù)所述業(yè)務(wù)請(qǐng)求消息中攜帶的服務(wù)器MAC地址和IP地址,利用哈希算法從所述聚合鏈路內(nèi)選擇I條通信鏈路將所述業(yè)務(wù)請(qǐng)求消息發(fā)送給所述存儲(chǔ)系統(tǒng)的控制器,這里,所述控制器為所述通信鏈路所對(duì)應(yīng)的端口所歸屬的控制器。
[0087]S303、所述控制器接收并處理所述業(yè)務(wù)請(qǐng)求消息,生成鏈路業(yè)務(wù)信息。
[0088]在明確了由某具體通信鏈路來(lái)承載所述業(yè)務(wù)請(qǐng)求消息所對(duì)應(yīng)的業(yè)務(wù)后,所述控制器生成鏈路業(yè)務(wù)信息。所述鏈路業(yè)務(wù)信息可以包括:
[0089]工作控制器標(biāo)識(shí):即被選定的用于處理所述業(yè)務(wù)的控制器,也就是所述通信鏈路對(duì)應(yīng)端口所歸屬的控制器;
[0090]綁定端口組標(biāo)識(shí):即具體承載所述業(yè)務(wù)的綁定端口組的標(biāo)識(shí),也就是所述通信鏈路的端口所歸屬的綁定端口組的標(biāo)識(shí);
[0091]綁定端口組的附屬端口:即用來(lái)承載所述業(yè)務(wù)的通信鏈路對(duì)應(yīng)的控制器側(cè)的端口,該端口歸屬于所述綁定端口組;
[0092]進(jìn)一步地,所述鏈路業(yè)務(wù)信息還可以包括通信四元組信息、網(wǎng)絡(luò)傳輸層信息、應(yīng)用層協(xié)議標(biāo)識(shí)、應(yīng)用層業(yè)務(wù)信息、時(shí)間戳等信息中的任意I個(gè)或多個(gè)。
[0093]本發(fā)明實(shí)施例中,所述鏈路業(yè)務(wù)信息在新的業(yè)務(wù)啟動(dòng)之時(shí)或任意已存在的業(yè)務(wù)的鏈路發(fā)生變化時(shí)進(jìn)行更新。
[0094]圖3A所示為一種記錄并保存鏈路業(yè)務(wù)信息的數(shù)據(jù)結(jié)構(gòu)的示意圖,本領(lǐng)域技術(shù)人員可以理解的是,在實(shí)際應(yīng)用中,可以根據(jù)業(yè)務(wù)需要靈活采用各種不同的數(shù)據(jù)結(jié)構(gòu)來(lái)記錄所述鏈路業(yè)務(wù)信息,都在本發(fā)明的保護(hù)范圍內(nèi),本發(fā)明對(duì)所述數(shù)據(jù)結(jié)構(gòu)不做具體限定。
[0095]上述實(shí)施例結(jié)合圖1至圖3A描述的內(nèi)容,介紹了在由多個(gè)存儲(chǔ)設(shè)備構(gòu)成的集群存儲(chǔ)系統(tǒng)中、或由包含至少2個(gè)控制器的存儲(chǔ)設(shè)備構(gòu)成的存儲(chǔ)系統(tǒng)中,通過創(chuàng)建包含來(lái)自不同控制器的多個(gè)端口的綁定端口組,并將所述綁定端口組中的來(lái)自不同控制器的多個(gè)端口所對(duì)應(yīng)的通信鏈路聚合成I條邏輯的聚合鏈路來(lái)提供業(yè)務(wù),在業(yè)務(wù)開展過程中,可能因?yàn)槎丝诒旧?、或是接口卡、或是控制器、或是交換機(jī)端發(fā)生故障從而導(dǎo)致某條通信鏈路不能提供業(yè)務(wù),則可以從所述綁定端口組中重新挑選端口并通過所述端口對(duì)應(yīng)的通信鏈路來(lái)承載該業(yè)務(wù),以使得所述業(yè)務(wù)在上述任一故障的場(chǎng)景下都可以繼續(xù)進(jìn)行,由此進(jìn)一步提升了業(yè)務(wù)的可靠性。
[0096]如圖4所示,為本發(fā)明實(shí)施例提供的一種存儲(chǔ)系統(tǒng)中業(yè)務(wù)的鏈路切換的方法400的示意性流程圖,該方法400包括:
[0097]S410、檢測(cè)到綁定端口組中第一端口的鏈路發(fā)生故障,將所述第一端口的工作狀態(tài)標(biāo)記為不可用。
[0098]本發(fā)明實(shí)施例中,第一控制器檢測(cè)所述綁定端口組中第一端口對(duì)應(yīng)的鏈路出現(xiàn)故障。具體的,在如下幾種故障場(chǎng)景中會(huì)出現(xiàn)所述第一端口的鏈路故障:第一端口自身故障、或第一端口所在接口卡故障、或與所述第一端口相連的交換機(jī)側(cè)端口故障,這幾種場(chǎng)景下,所述第一控制器,即所述第一端口所歸屬的控制器,可以直接檢測(cè)出來(lái)具體故障并判斷所述第一端口的鏈路故障。
[0099]此外,如果第一端口所歸屬的控制器自身出現(xiàn)故障也會(huì)導(dǎo)致第一端口的鏈路故障,在這種場(chǎng)景下,所述第一控制器則是與所述第一端口歸屬的控制器有通信關(guān)系的控制器。
[0100]當(dāng)所述第一控制器檢測(cè)到所述第一端口的鏈路故障后,在綁定端口組信息中將所述第一端口的狀態(tài)標(biāo)記為不可用。
[0101]S420、從所述綁定端口組中挑選狀態(tài)為可用的第二端口,將所述第一端口的鏈路所承載的業(yè)務(wù)切換到所述第二端口的鏈路。
[0102]本發(fā)明實(shí)施例中,所述第一控制器可以從所述綁定端口組中當(dāng)前狀態(tài)為可用的附屬端口中隨機(jī)挑選I個(gè)端口作為所述第二端口,將原本通過所述第一端口對(duì)應(yīng)的鏈路來(lái)承載的業(yè)務(wù)切換到所述第二端口對(duì)應(yīng)的鏈路上來(lái)承載。優(yōu)選地,所述第一控制器也可以是按照最佳匹配原則從當(dāng)前狀態(tài)為可用的附屬端口中挑選I個(gè)端口作為所述第二端口。所述的最佳匹配準(zhǔn)則可以是:
[0103]準(zhǔn)則A:若所述綁定端口組中當(dāng)前狀態(tài)為可用的附屬端口中存在I個(gè)端口,該端口與所述第一端口歸屬于同一接口卡,則優(yōu)先挑選此端口作為第二端口 ;
[0104]準(zhǔn)則B:在不存在滿足準(zhǔn)則A的附屬端口的情況下,若所述綁定端口組中當(dāng)前狀態(tài)為可用的附屬端口中存在I個(gè)端口,該端口與所述第一端口歸屬于同一控制器,則優(yōu)先挑選此端口作為第二端口;
[0105]準(zhǔn)則C:在不存在滿足準(zhǔn)則A和B的附屬端口的情況下,從所述綁定端口組中當(dāng)前狀態(tài)為可用的附屬端口中挑選業(yè)務(wù)負(fù)載最低的附屬端口作為第二端口。
[0106]進(jìn)一步地,在準(zhǔn)則A中若發(fā)現(xiàn)所述綁定端口組中當(dāng)前存在多個(gè)狀態(tài)為可用的附屬端口且與所述第一端口歸屬于同一接口卡,則可以從所述多個(gè)附屬端口中隨機(jī)挑選I個(gè)附屬端口作為第二端口,也可以是挑選業(yè)務(wù)負(fù)載最低的附屬端口作為第二端口。同理,在準(zhǔn)則B中若發(fā)現(xiàn)所述綁定端口組中當(dāng)前存在多個(gè)狀態(tài)為可用的附屬端口且與所述第一端口歸屬于同一控制器,則可以從所述多個(gè)附屬端口中隨機(jī)挑選I個(gè)附屬端口作為第二端口,也可以是挑選業(yè)務(wù)負(fù)載最低的附屬端口作為第二端口。
[0107]通過以上描述的方法400,當(dāng)綁定端口組中的所述第一端口的鏈路出現(xiàn)故障時(shí),可以在所述綁定端口組中挑選狀態(tài)為可用的第二端口,由所述第二端口的鏈路來(lái)承載所述第一端口所承載的業(yè)務(wù)。因?yàn)樵诒景l(fā)明實(shí)施例中,所述綁定端口組包含來(lái)自不同控制器的多個(gè)端口,這樣,即使出現(xiàn)某個(gè)控制器故障的情況,依然可以從所述綁定端口組中挑選來(lái)自其他控制器的第二端口以承載本由所述第一端口承載的業(yè)務(wù),由此提高了整個(gè)存儲(chǔ)系統(tǒng)的業(yè)務(wù)可靠性。
[0108]接下來(lái),結(jié)合具體故障場(chǎng)景,介紹本發(fā)明實(shí)施例中提供的一種存儲(chǔ)系統(tǒng)中業(yè)務(wù)的鏈路切換的方法。
[0109]如圖5所示,該場(chǎng)景為第一端口自身故障或所述第一端口所歸屬的接口卡故障而導(dǎo)致的第一端口的鏈路故障,在該場(chǎng)景下所述方法具體包括:
[0110]S501、第一控制器檢測(cè)第一端口的鏈路故障。
[0111]當(dāng)?shù)谝欢丝谧陨沓霈F(xiàn)故障或者是第一端口所歸屬的接口卡出現(xiàn)故障,其歸屬的控制器,即第一控制器,可以直接檢測(cè)出來(lái)。由此,所述第一控制器判斷所述第一端口的鏈路故障。需要說(shuō)明的是,第一控制器如何檢測(cè)其所包含的接口卡或端口是否發(fā)生故障是現(xiàn)有技術(shù),在本實(shí)施例中不再贅述。
[0112]S502、所述第一控制器更新綁定端口組信息。
[0113]所述第一控制器更新綁定端口組信息,即將所述第一端口的工作狀態(tài)變?yōu)椴豢捎?。進(jìn)一步地,將所述第一端口所對(duì)應(yīng)的鏈路的狀態(tài)變?yōu)楣收?。可選地,所述第一控制器也可以是在檢測(cè)所述第一端口自身發(fā)生故障或第一端口所屬接口卡發(fā)生故障時(shí),生成節(jié)點(diǎn)狀態(tài)變更事件,所述節(jié)點(diǎn)狀態(tài)變更事件用于指示所述第一端口故障或第一端口所屬接口卡故障。則所述第一控制器在更新所述綁定端口組信息時(shí),可以根據(jù)所述節(jié)點(diǎn)狀態(tài)變更事件將所述第一端口的工作狀態(tài)變?yōu)椴豢捎?,將所述第一端口所?duì)應(yīng)的鏈路的狀態(tài)變?yōu)楣收稀?br>[0114]S503、(可選)所述第一控制器通知第二控制器所述第一端口的鏈路故障。
[0115]S504、(可選)第二控制器更新本地保存的綁定端口組信息。
[0116]本發(fā)明實(shí)施例中,所述步驟S503、S504為可選步驟。具體地,若所述綁定端口組信息是全局保存,則只需要所述第一控制器更新即可,不需要再執(zhí)行所述步驟S503、S504;若所述綁定端口組信息被所述綁定端口組中每個(gè)附屬端口所歸屬的控制器分別本地保存,則執(zhí)行所述步驟S503、S504。所述第二控制器為綁定端口組中各個(gè)附屬端口所歸屬的控制器中除第一控制器外的其它控制器,所述第二控制器可以是I個(gè)或多個(gè)。所述第一控制器通知第二控制器所述第一端口的鏈路故障,如可以是所述第一控制器向所述第二控制器發(fā)送鏈路變化事件,所述鏈路變化事件用于指示所述第一端口的鏈路故障。則所述第二控制器根據(jù)所述鏈路變化事件,在本地保存的綁定端口組信息中將所述第一端口的工作狀態(tài)變?yōu)椴豢捎?,將所述第一端口所?duì)應(yīng)的鏈路的狀態(tài)變?yōu)楣收稀?br>[0117]S505、所述第一控制器從所述綁定端口組中挑選第二端口。
[0118]所述第一控制器可以根據(jù)所述綁定端口組信息的記載確認(rèn)當(dāng)前處于可用狀態(tài)的附屬端口,如果當(dāng)前只有唯一一個(gè)附屬端口處于可用狀態(tài),則直接將該附屬端口作為第二端口;如果當(dāng)前有多個(gè)附屬端口都處于可用狀態(tài),則所述第一控制器可以是隨機(jī)挑選I個(gè)附屬端口作為第二端口,也可以是根據(jù)如圖4所示實(shí)施例所記錄的最佳匹配準(zhǔn)則來(lái)挑選第二端口。
[0119]S506、所述第一控制器將所述第一端口的鏈路所承載的業(yè)務(wù)切換到所述第二端口的鏈路。
[0120]S507、所述第一控制器更新鏈路業(yè)務(wù)信息。
[0121]所述第一控制器更新所述第一端口的鏈路所承載的業(yè)務(wù)的鏈路業(yè)務(wù)信息,具體為將所述鏈路業(yè)務(wù)信息中的工作控制器標(biāo)識(shí)更新為所述第二端口所歸屬的控制器標(biāo)識(shí);將綁定端口組附屬端口更新為所述第二端口。
[0122]在該場(chǎng)景中,當(dāng)?shù)谝欢丝谧陨戆l(fā)生故障或第一端口所歸屬的接口卡發(fā)生故障,可以在所述綁定端口組中挑選狀態(tài)為可用的第二端口,由所述第二端口的鏈路來(lái)承載所述第一端口所承載的業(yè)務(wù),由此提高了整個(gè)存儲(chǔ)系統(tǒng)的業(yè)務(wù)可靠性。
[0123]圖6為綁定端口組中與端口相連的交換機(jī)側(cè)端口故障或物理鏈路故障時(shí)的鏈路切換的流程圖,如圖所示,所述方法包括:
[0124]S601、第一控制器檢測(cè)到與第一端口相連的交換機(jī)側(cè)端口故障。
[0125]綁定端口組關(guān)系形成后,在控制器端口和交換機(jī)對(duì)端端口間會(huì)形成聚合鏈路,交換機(jī)按照預(yù)定義的時(shí)間閾值周期性向控制器通告交換機(jī)的鏈路狀態(tài)信息,所述預(yù)定義的時(shí)間閾值可以是10秒或者其它任意設(shè)定的值,本發(fā)明實(shí)施例對(duì)此不作具體限定。當(dāng)與所述第一端口相連的交換機(jī)側(cè)端口出現(xiàn)故障或者所述第一端口與所述交換機(jī)側(cè)端口間的物理鏈路出現(xiàn)故障,則所述第一端口歸屬的控制器,即第一控制器,在所述預(yù)定義的時(shí)間閾值內(nèi)無(wú)法收到來(lái)自交換機(jī)的鏈路狀態(tài)信息,則所述第一控制器判斷所述第一端口對(duì)應(yīng)的鏈路故障。需要說(shuō)明的是,交換機(jī)按照預(yù)定義的時(shí)間閾值定期通告交換機(jī)的鏈路狀態(tài)的過程是現(xiàn)有技術(shù),在本實(shí)施例中不再贅述。
[0126]S602、所述第一控制器更新綁定端口組信息。
[0127]所述第一控制器更新綁定端口組信息,即將所述第一端口的工作狀態(tài)為不可用,進(jìn)一步地,將所述第一端口所對(duì)應(yīng)的鏈路的狀態(tài)變?yōu)楣收?。可選地,所述第一控制器也可以是在檢測(cè)所述與第一端口相連的交換機(jī)側(cè)端口故障時(shí),生成交換機(jī)端口鏈路變化事件,所述交換機(jī)端口鏈路變化事件用于指示所述與第一端口相連的交換機(jī)側(cè)端口的鏈路出現(xiàn)故障。則所述第一控制器在更新所述綁定端口組信息時(shí),可以根據(jù)所述交換機(jī)端口鏈路變化事件將所述第一端口的工作狀態(tài)變?yōu)椴豢捎?,將所述第一端口所?duì)應(yīng)的鏈路的狀態(tài)變?yōu)楣收稀?br>[0128]S603、(可選)所述第一控制器通知第二控制器所述第一端口的鏈路故障。
[0129]S604、(可選)第二控制器更新本地保存的綁定端口組信息。
[0130]本發(fā)明實(shí)施例中,所述步驟S603、S604為可選步驟。具體地,綁定端口組信息可以為全局保存,也可以為每個(gè)附屬端口所歸屬的控制器分別本地保存,其具體實(shí)現(xiàn)過程與步驟S503、S504描述內(nèi)容相同,在此不再贅述。
[0131]S605、所述第一控制器從所述綁定端口組中挑選第二端口。
[0132]S606、所述第一控制器將所述第一端口的鏈路所承載的業(yè)務(wù)切換到所述第二端口的鏈路。
[0133]S607、所述第一控制器更新鏈路業(yè)務(wù)信息;
[0134]其中,步驟S605至步驟S607中處理過程與步驟S505至步驟S507中所述第二端口的選擇方法、更新所述鏈路業(yè)務(wù)信息描述內(nèi)容相同,在此不再贅述。
[0135]通過上述步驟S601至S607步驟的描述,在該場(chǎng)景中,當(dāng)與第一端口相連的交換機(jī)側(cè)端口出現(xiàn)故障或者所述第一端口與所述交換機(jī)側(cè)端口間的物理鏈路出現(xiàn)故障,可以在所述綁定端口組中挑選狀態(tài)為可用的第二端口,由所述第二端口的鏈路來(lái)承載所述第一端口所承載的業(yè)務(wù),由此提高了整個(gè)存儲(chǔ)系統(tǒng)的業(yè)務(wù)可靠性。
[0136]在另一個(gè)具體實(shí)施例中,如果第一端口所歸屬的控制器出現(xiàn)故障,也會(huì)導(dǎo)致第一端口的鏈路故障,圖7為該場(chǎng)景中鏈路切換處理的流程圖,如圖所示,所述鏈路切換管理方法包括:
[0137]S701、第一控制器檢測(cè)到第一端口的鏈路發(fā)生故障。
[0138]本實(shí)施例中,所述第一端口歸屬于第二控制器,所述第一控制器與所述第二控制器有通信關(guān)系,若所述第二控制器出現(xiàn)故障,則所述第一控制器可以檢測(cè)到所述第二控制器的故障,示例地,所述第一控制器可以使通過心跳檢測(cè)機(jī)制來(lái)檢測(cè)所述第二控制器的故障。當(dāng)所述第一控制器檢測(cè)到所述第二控制器故障,由此判斷所述第一端口對(duì)應(yīng)的鏈路故障。
[0139]S702、所述第一控制器更新綁定端口組信息。
[0140]所述更新綁定端口組信息,即將所述第一端口的工作狀態(tài)變?yōu)椴豢捎?,進(jìn)一步地,將所述第一端口所對(duì)應(yīng)的鏈路的狀態(tài)變?yōu)楣收稀?蛇x地,所述第一控制器檢測(cè)到所述第二控制器發(fā)生故障時(shí),生成節(jié)點(diǎn)狀態(tài)變更事件,所述節(jié)點(diǎn)變更事件用于指示所述第二控制器故障。則所述第一控制器在更新所述綁定端口組信息時(shí),可以根據(jù)所述節(jié)點(diǎn)狀態(tài)變更事件將所述第一端口的工作狀態(tài)變?yōu)椴豢捎?,將所述第一端口所?duì)應(yīng)的鏈路的狀態(tài)變?yōu)楣收稀?br>[0141]S703、(可選)所述第一控制器通知綁定端口組中其它控制器所述第一端口的鏈路故障。
[0142]S704、(可選)所述其它控制器更新本地保存的綁定端口組信息。
[0143]本實(shí)施例中,所述步驟S703、S704為可選步驟。具體地,若所述綁定端口組信息是全局保存,則只需要所述第一控制器更新即可,不需要再執(zhí)行所述步驟S703、S704;若所述綁定端口組信息被所述綁定端口組中每個(gè)附屬端口所歸屬的控制器分別本地保存,則執(zhí)行所述步驟S703、S704。所述第二控制器為發(fā)生故障的控制器,所述其它控制器為綁定端口組中除所述第一控制器和所述第二控制器外未發(fā)生故障的控制器,所述其它控制器可以是I個(gè)或多個(gè)。所述第一控制器通知所述其它控制器所述第一端口的鏈路故障,如可以是所述第一控制器向所述其它控制器發(fā)送鏈路變化事件,所述鏈路變化事件用于指示所述第一端口的鏈路故障。則所述其它控制器根據(jù)所述鏈路變化事件,在本地保存的綁定端口組信息中將所述第一端口的工作狀態(tài)變?yōu)椴豢捎?,將所述第一端口所?duì)應(yīng)的鏈路的狀態(tài)變?yōu)楣收稀?br>[0144]S705、所述第一控制器從所述綁定端口組中挑選第二端口。
[0145]S706、所述第一控制器將所述第一端口的鏈路所承載的業(yè)務(wù)切換到所述第二端口的鏈路。
[0146]S707、所述第一控制器更新鏈路業(yè)務(wù)信息。
[0147]其中,步驟S703至步驟S705中處理過程與步驟S505至步驟S507中所述第二端口的選擇方法、更新所述鏈路業(yè)務(wù)信息描述內(nèi)容相同,在此不再贅述。
[0148]在本實(shí)施例中,所述綁定端口組包含來(lái)自不同控制器的多個(gè)端口,當(dāng)某個(gè)控制器發(fā)生故障時(shí),可以從所述綁定端口組中挑選工作狀態(tài)為可用的第二端口以承載所述第一端口所承載的業(yè)務(wù),該第二端口歸屬于其它控制器,由此提高了整體存儲(chǔ)系統(tǒng)的業(yè)務(wù)可靠性。
[0149]綜上所述,在綁定端口組中任一端口故障、所述任一端口所歸屬的接口卡故障、與所述任一端口連接的交換機(jī)側(cè)端口故障、以及所述任一端口歸屬的控制器故障的場(chǎng)景中,本發(fā)明實(shí)施例中提供的方法均能夠從綁定端口組中挑選狀態(tài)為可用的端口以承載該端口的業(yè)務(wù),由此提高了整體存儲(chǔ)系統(tǒng)的可靠性。
[0150]值得說(shuō)明的是,對(duì)于上述方法實(shí)施例,為了簡(jiǎn)單描述,故將其都表述為一系列的動(dòng)作組合,但是本領(lǐng)域技術(shù)人員應(yīng)該知悉,本發(fā)明并不受所描述的動(dòng)作順序的限制,其次,本領(lǐng)域技術(shù)人員也應(yīng)該知悉,說(shuō)明書中所描述的實(shí)施例均屬于優(yōu)選實(shí)施例,所涉及的動(dòng)作并不一定是本發(fā)明所必須的。
[0151]本領(lǐng)域的技術(shù)人員根據(jù)以上描述的內(nèi)容,能夠想到的其他合理的步驟組合,也屬于本發(fā)明的保護(hù)范圍內(nèi)。其次,本領(lǐng)域技術(shù)人員也應(yīng)該熟悉,說(shuō)明書中所描述的實(shí)施例均屬于優(yōu)選實(shí)施例,所涉及的動(dòng)作并不一定是本發(fā)明所必須的。
[0152]上文中結(jié)合圖1至圖7,詳細(xì)描述了根據(jù)本發(fā)明實(shí)施例所提供的存儲(chǔ)系統(tǒng)中業(yè)務(wù)鏈路切換的方法,下面將結(jié)合圖8至圖9,描述根據(jù)本發(fā)明實(shí)施例所提供的存儲(chǔ)系統(tǒng)中業(yè)務(wù)鏈路的存儲(chǔ)設(shè)備。
[0153]圖8為本發(fā)明實(shí)施例提供的一種存儲(chǔ)設(shè)備800,所述存儲(chǔ)設(shè)備包含第一控制器和第二控制器,其中所述第一控制器和所述第二控制器分別與第一接口卡和第二接口卡相連,所述第一接口卡和所述第二接口卡又分別包含至少一個(gè)端口;其中,所述第一控制器包括配置單元801,檢測(cè)單元802和切換單元803:
[0154]所述配置單元801,用于預(yù)先配置綁定端口組,所述綁定端口組包括來(lái)自第一控制器和第二控制器的端口;
[0155]所述檢測(cè)單元802,用于檢測(cè)第一端口的鏈路發(fā)生故障,將第一端口的狀態(tài)標(biāo)記為不可用。
[0156]所述切換單元803,用于從所述綁定端口組中挑選狀態(tài)為可用的第二端口,將所述第一端口的鏈路所承載的業(yè)務(wù)切換到所述第二端口的鏈路。
[0157]可選地,當(dāng)所述第一端口歸屬于所述第一控制器時(shí),所述檢測(cè)單元802檢測(cè)到所述第一端口發(fā)生故障或檢測(cè)到所述第一端口所歸屬的接口卡發(fā)生故障,則判斷所述第一端口的鏈路發(fā)生故障。
[0158]可選地,當(dāng)所述第一端口歸屬于所述第一控制器,所述檢測(cè)單元802還用于當(dāng)所述第一控制器在預(yù)定義的時(shí)間閾值內(nèi)未收到來(lái)自對(duì)端交換機(jī)的鏈路狀態(tài)信息時(shí),判斷所述第一端口的鏈路發(fā)生故障。
[0159]可選地,所述第一端口歸屬于所述第二控制器,所述檢測(cè)單元802還用于在檢測(cè)到第二控制器發(fā)生故障,則判斷所述第一端口的鏈路發(fā)生故障。
[0160]所述切換單元803從所述綁定端口組中挑選狀態(tài)為可用的第二端口具體可以參照上述圖4所示的方法實(shí)施例中描述的準(zhǔn)則進(jìn)行挑選,此處不再贅述。
[0161]應(yīng)理解的是,根據(jù)本發(fā)明實(shí)施例的存儲(chǔ)設(shè)備800可對(duì)應(yīng)于執(zhí)行本發(fā)明實(shí)施例中的方法400,并且存儲(chǔ)設(shè)備800中的各個(gè)單元的上述和其它操作和/或功能分別為了實(shí)現(xiàn)圖1至圖7中的各個(gè)方法的相應(yīng)流程,為了簡(jiǎn)潔,在此不再贅述。
[0162]通過上述存儲(chǔ)設(shè)備的描述,在綁定端口組中任一端口故障、所述任一端口歸屬的接口卡故障、與所述任一端口連接的交換機(jī)側(cè)端口故障、以及所述任一端口歸屬的控制器故障場(chǎng)景中,本發(fā)明實(shí)施例提供的存儲(chǔ)設(shè)備可以在綁定端口組中挑選狀態(tài)為可用的端口所對(duì)應(yīng)的鏈路來(lái)承載業(yè)務(wù),提高存儲(chǔ)系統(tǒng)可靠性。
[0163]圖9為根據(jù)本發(fā)明實(shí)施例的一種存儲(chǔ)設(shè)備900的不意圖,如圖所不,所述存儲(chǔ)設(shè)備900包括第一控制器901、第二控制器902、存儲(chǔ)器903、通信接口 904和總線905。其中,第一控制器901與至少一個(gè)第一接口卡906通過所述總線905進(jìn)行通信,第二控制器與至少一個(gè)第二接口卡907通過所述總線905相通信,所述第一接口卡906和所述第二接口卡907分別包括至少I個(gè)端口。第一控制器901、第二控制器902、存儲(chǔ)器903、通信接口904通過總線905實(shí)現(xiàn)彼此之間的通信。
[0164]第一控制器901和第二控制器902可以采用通用的中央處理I器(CentralProcessing Un i t,CPU),微處理器,應(yīng)用專用集成電路(App I i cat i on SpecificIntegrated Circuit,ASIC),或者一個(gè)或多個(gè)集成電路,用于執(zhí)行相關(guān)程序,以實(shí)現(xiàn)前述本發(fā)明方法實(shí)施例中所提供的技術(shù)方案。
[0165]存儲(chǔ)器903可以是只讀存儲(chǔ)器(Read Only Memory,ROM),靜態(tài)存儲(chǔ)設(shè)備,動(dòng)態(tài)存儲(chǔ)設(shè)備或者隨機(jī)存取存儲(chǔ)器(Random Access Memory,RAM)。存儲(chǔ)器903可以存儲(chǔ)操作系統(tǒng)和程序908,其中,所述程序908是用于實(shí)現(xiàn)本發(fā)明前述方法實(shí)施例提供的任一可選技術(shù)方案的程序代碼,并由第一控制器901來(lái)執(zhí)行。
[0166]對(duì)于系統(tǒng)實(shí)施例而言,由于其基本對(duì)應(yīng)于方法實(shí)施例,所以相關(guān)之處參見方法實(shí)施例的部分說(shuō)明即可。以上所描述的系統(tǒng)實(shí)施例僅是示意性的,其中所述作為分離部件說(shuō)明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個(gè)地方,或者也可以分布到多個(gè)網(wǎng)絡(luò)單元上??梢愿鶕?jù)實(shí)際的需要選擇其中的部分或者全部模塊來(lái)實(shí)現(xiàn)本實(shí)施例方案的目的。本領(lǐng)域普通技術(shù)人員在不付出創(chuàng)造性勞動(dòng)的情況下,即可以理解并實(shí)施。
[0167]本發(fā)明可以在由計(jì)算機(jī)執(zhí)行的計(jì)算機(jī)可執(zhí)行指令的一般上下文中描述,例如程序模塊。一般地,程序模塊包括執(zhí)行特定任務(wù)或?qū)崿F(xiàn)特定抽象數(shù)據(jù)類型的例程、程序、對(duì)象、組件、數(shù)據(jù)結(jié)構(gòu)等等。也可以在分布式計(jì)算環(huán)境中實(shí)踐本發(fā)明,在這些分布式計(jì)算環(huán)境中,由通過通信網(wǎng)絡(luò)而被連接的遠(yuǎn)程處理設(shè)備來(lái)執(zhí)行任務(wù)。在分布式計(jì)算環(huán)境中,程序模塊可以位于包括存儲(chǔ)設(shè)備在內(nèi)的本地和遠(yuǎn)程計(jì)算機(jī)存儲(chǔ)介質(zhì)中。
[0168]本領(lǐng)域普通技術(shù)人員可以理解實(shí)現(xiàn)上述方法實(shí)施方式中的全部或部分步驟是可以通過程序來(lái)指令相關(guān)的硬件來(lái)完成,所述的程序可以存儲(chǔ)于計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì)中,這里所稱得的存儲(chǔ)介質(zhì),如:ROM、RAM、磁碟、光盤等。
[0169]還需要說(shuō)明的是,在本文中,諸如第一和第二等之類的關(guān)系術(shù)語(yǔ)僅僅用來(lái)將一個(gè)實(shí)體或者操作與另一個(gè)實(shí)體或操作區(qū)分開來(lái),而不一定要求或者暗示這些實(shí)體或操作之間存在任何這種實(shí)際的關(guān)系或者順序。而且,術(shù)語(yǔ)“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者設(shè)備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者設(shè)備所固有的要素。在沒有更多限制的情況下,由語(yǔ)句“包括一個(gè)……”限定的要素,并不排除在包括所述要素的過程、方法、物品或者設(shè)備中還存在另外的相同要素。
[0170]以上所述僅為本發(fā)明的較佳實(shí)施例而已,并非用于限定本發(fā)明的保護(hù)范圍。本文中應(yīng)用了具體個(gè)例對(duì)本發(fā)明的原理及實(shí)施方式進(jìn)行了閘述,以上實(shí)施例的說(shuō)明只是用于幫助理解本發(fā)明的方法及其核心思想;同時(shí),對(duì)于本領(lǐng)域的一般技術(shù)人員,依據(jù)本發(fā)明的思想,在【具體實(shí)施方式】及應(yīng)用范圍上均會(huì)有改變之處。綜上所述,本說(shuō)明書內(nèi)容不應(yīng)理解為對(duì)本發(fā)明的限制。凡在本發(fā)明的精神和原則之內(nèi)所作的任何修改、等同替換、改進(jìn)等,均包含在本發(fā)明的保護(hù)范圍內(nèi)。
【主權(quán)項(xiàng)】
1.一種存儲(chǔ)系統(tǒng)中業(yè)務(wù)的鏈路切換的方法,其特征在于,所述存儲(chǔ)系統(tǒng)包括第一控制器和第二控制器,其中所述第一控制器和第二控制器分別與至少一個(gè)接口卡相連,每個(gè)所述接口卡包含至少一個(gè)端口 ;在所述存儲(chǔ)系統(tǒng)中預(yù)先配置綁定端口組,所述綁定端口組包括來(lái)自第一控制器和第二控制器的端口 ;所述方法包括: 若所述第一控制器檢測(cè)到所述綁定端口組中第一端口的鏈路發(fā)生故障,將所述第一端口的狀態(tài)標(biāo)記為不可用; 所述第一控制器從所述綁定端口組中挑選狀態(tài)為可用的第二端口,將所述第一端口的鏈路所承載的所述業(yè)務(wù)切換到所述第二端口的鏈路。2.如權(quán)利要求1所述的方法,其特征在于,所述第一端口歸屬于所述第一控制器,所述第一控制器檢測(cè)到所述第一端口的鏈路發(fā)生故障具體為: 若所述第一控制器檢測(cè)到所述第一端口發(fā)生故障或檢測(cè)到所述第一端口所歸屬的接口卡發(fā)生故障,則判斷所述第一端口的鏈路發(fā)生故障。3.如權(quán)利要求1所述的方法,其特征在于,所述第一端口歸屬于所述第一控制器,所述第一控制器檢測(cè)到所述第一端口的鏈路發(fā)生故障具體為: 若所述第一控制器在預(yù)定義的時(shí)間閾值內(nèi)未收到來(lái)自對(duì)端交換機(jī)的鏈路狀態(tài)信息,則判斷所述第一端口的鏈路發(fā)生故障。4.如權(quán)利要求1所述的方法,其特征在于,所述第一端口歸屬于所述第二控制器,所述第一控制器檢測(cè)到所述第一端口的鏈路發(fā)生故障具體為: 若所述第一控制器檢測(cè)到所述第二控制器發(fā)生故障,則判斷所述第一端口的鏈路發(fā)生故障。5.如權(quán)利要求1所述的方法,其特征在于,所述第一控制器從所述綁定端口組中挑選狀態(tài)為可用的第二端口具體為: 從所述綁定端口組中隨機(jī)挑選一個(gè)當(dāng)前狀態(tài)為可用的端口作為所述第二端口。6.如權(quán)利要求1所述的方法,其特征在于,所述第一控制器從所述綁定端口組中挑選狀態(tài)為可用的第二端口具體為: 挑選所述綁定端口組中當(dāng)前狀態(tài)為可用且與所述第一端口歸屬于同一接口卡的端口作為所述第二端口;或者 若在所述綁定端口組中不存在當(dāng)前狀態(tài)為可用且與所述第一端口歸屬于同一接口卡的端口,則挑選當(dāng)前狀態(tài)為可用且與所述第一端口歸屬于同一控制器的端口作為所述第二端口 ;或者 若在所述綁定端口組中既不存在當(dāng)前狀態(tài)為可用且與所述第一端口歸屬于同一接口卡的端口,也不存在當(dāng)前狀態(tài)為可用且與所述第一端口歸屬于同一控制器的端口,則挑選所述綁定端口組中當(dāng)前狀態(tài)為可用且業(yè)務(wù)負(fù)載最低的端口作為第二端口。7.如權(quán)利要求1至6中任一所述方法,其特征在于,在所述存儲(chǔ)系統(tǒng)中,所述第一控制器和所述第二控制器歸屬于同一存儲(chǔ)設(shè)備。8.如權(quán)利要求1至6中任一所述方法,其特征在于,所述存儲(chǔ)系統(tǒng)中,所述第一控制器和所述第二控制器歸屬于不同存儲(chǔ)設(shè)備。9.一種存儲(chǔ)設(shè)備,其特征在于,所述存儲(chǔ)設(shè)備包括第一控制器和第二控制器,其中所述第一控制器和第二控制器分別與至少一個(gè)接口卡相連,每個(gè)所述接口卡包含至少一個(gè)端口;其中,所述第一控制器包括配置單元、檢測(cè)單元和切換單元; 所述配置單元,用于預(yù)先配置綁定端口組,所述綁定端口組包括來(lái)自第一控制器和第二控制器的端口 ; 所述檢測(cè)單元,用于檢測(cè)第一端口的鏈路發(fā)生故障,將所述第一端口的狀態(tài)標(biāo)記為不可用; 所述切換單元,用于從所述綁定端口組中挑選狀態(tài)為可用的第二端口,將所述第一端口的鏈路所承載的業(yè)務(wù)切換到所述第二端口的鏈路。10.如權(quán)利要求9所述的存儲(chǔ)設(shè)備,其特征在于,所述第一端口歸屬于所述第一控制器,則所述檢測(cè)單元檢測(cè)到所述第一端口的鏈路發(fā)生故障具體為: 若所述檢測(cè)單元檢測(cè)到所述第一端口發(fā)生故障或檢測(cè)到所述第一端口所歸屬的接口卡發(fā)生故障,則判斷所述第一端口的鏈路發(fā)生故障。11.如權(quán)利要求9所述的存儲(chǔ)設(shè)備,其特征在于,所述第一端口歸屬于所述第一控制器,所述檢測(cè)單元檢測(cè)到所述第一端口的鏈路發(fā)生故障具體為: 若所述檢測(cè)單元檢測(cè)到所述第一控制器在預(yù)定義的時(shí)間閾值內(nèi)未收到來(lái)自對(duì)端交換機(jī)的鏈路狀態(tài)信息,則判斷所述第一端口的鏈路發(fā)生故障。12.如權(quán)利要求9所述的存儲(chǔ)設(shè)備,其特征在于,所述第一端口歸屬于所述第二控制器,所述檢測(cè)單元檢測(cè)到所述第一端口的鏈路發(fā)生故障具體為: 若所述檢測(cè)單元檢測(cè)到所述第二控制器發(fā)生故障,則判斷所述第一端口的鏈路發(fā)生故障。13.如權(quán)利要求9所述的存儲(chǔ)設(shè)備,其特征在于,所述切換單元從所述綁定端口組中挑選狀態(tài)為可用的第二端口具體為: 所述切換單元從所述綁定端口組中隨機(jī)挑選一個(gè)當(dāng)前狀態(tài)為可用的端口作為所述第二端口。14.如權(quán)利要求9所述的存儲(chǔ)設(shè)備,其特征在于,所述切換單元從所述綁定端口組中挑選狀態(tài)為可用的第二端口具體為: 所述切換單元挑選所述綁定端口組中當(dāng)前狀態(tài)為可用且與所述第一端口歸屬于同一接口卡的端口作為所述第二端口 ;或者 若在所述綁定端口組中不存在當(dāng)前狀態(tài)為可用且與所述第一端口歸屬于同一接口卡的端口,則所述切換單元挑選當(dāng)前狀態(tài)為可用且與所述第一端口歸屬于同一控制器的端口作為所述第二端口;或者 若在所述綁定端口組中既不存在當(dāng)前狀態(tài)為可用且與所述第一端口歸屬于同一接口卡的端口,也不存在當(dāng)前狀態(tài)為可用且與所述第一端口歸屬于同一控制器的端口,則所述切換單元挑選所述綁定端口組中當(dāng)前狀態(tài)為可用且業(yè)務(wù)負(fù)載最低的端口作為第二端口。
【文檔編號(hào)】H04L12/24GK106059791SQ201610319322
【公開日】2016年10月26日
【申請(qǐng)日】2016年5月13日
【發(fā)明人】冷超
【申請(qǐng)人】華為技術(shù)有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
祁阳县| 宁波市| 佛教| 忻州市| 法库县| 金溪县| 高邮市| 温州市| 九江市| 格尔木市| 酉阳| 会宁县| 靖江市| 泰来县| 桐庐县| 渑池县| 太康县| 桑植县| 镇远县| 阳城县| 铜鼓县| 嘉善县| 博客| 桂平市| 诸暨市| 扎囊县| 会泽县| 临桂县| 蒲城县| 金沙县| 凤阳县| 崇明县| 利川市| 三穗县| 当涂县| 天峨县| 新民市| 平遥县| 阜阳市| 兴安盟| 绥阳县|