專利名稱:雙控制器磁盤陣列、存儲系統(tǒng)以及數(shù)據(jù)存儲路徑切換方法
技術(shù)領(lǐng)域:
本發(fā)明涉及數(shù)據(jù)存儲技術(shù)領(lǐng)域,更具體地說,涉及一種雙控制器磁盤陣列、存儲系統(tǒng)以及數(shù)據(jù)存儲路徑切換方法。
背景技術(shù):
存儲設(shè)備,通常指磁盤陣列,是獨立在服務(wù)器外的一臺或多臺用以存儲數(shù)據(jù)的磁盤設(shè)備,其包括磁盤框以及多個控制器節(jié)點。當(dāng)前主流的磁盤陣列使用的是雙控制器磁盤陣列,如圖I所示,雙控制器磁盤陣列包括兩個控制器節(jié)點以及用于安裝物理存儲介質(zhì)(例如,固態(tài)硬盤)的磁盤框,服務(wù)器中的數(shù)據(jù)通過其中的一個控制器節(jié)點存儲在磁盤框中。在實際應(yīng)用中,當(dāng)雙控制器磁盤陣列中的一個控制器節(jié)點失效時,另外一個控制器節(jié)點必須能接管失效控制器節(jié)點的數(shù)據(jù)。為了實現(xiàn)上述目的,當(dāng)前已經(jīng)提出一種技術(shù)方案。在該方案中,當(dāng)某個控制器節(jié)點失效后,運行在服務(wù)器上的多路徑軟件檢測鏈路狀態(tài),根據(jù)失效的路徑(圖I中細(xì)實線所示的數(shù)據(jù)路徑I),切換至備份的路徑上(圖I中虛線所示的數(shù)據(jù)路徑2),也即,服務(wù)器將失效的控制器節(jié)點的數(shù)據(jù)傳輸路徑切換至另一控制器節(jié)點上,向另一控制器節(jié)點重新發(fā)送待存儲的數(shù)據(jù)。上述方案雖然能夠解決某個控制器節(jié)點失效的情況,但是會存在如下問題在服務(wù)器上安裝存儲設(shè)備廠商提供的多路徑軟件,并使用該軟件進(jìn)行路徑切換時,需要預(yù)先在服務(wù)器和磁盤陣列進(jìn)行一系列復(fù)雜配置才能實現(xiàn),增加了服務(wù)器和磁盤陣列的冗余數(shù)據(jù)量。
發(fā)明內(nèi)容
有鑒于此,本發(fā)明實施例目的在于提供一種雙控制器磁盤陣列、存儲系統(tǒng)以及數(shù)據(jù)存儲路徑切換方法,以解決服務(wù)器應(yīng)用多路徑軟件切換失效控制器節(jié)點時,服務(wù)器和雙控制器磁盤陣列需增加一系列復(fù)雜的配置來使用多路徑軟件的缺點。為實現(xiàn)上述目的,本發(fā)明實施例提供如下技術(shù)方案一種雙控制器磁盤陣列,應(yīng)用于包括雙控制器磁盤陣列和服務(wù)器的存儲系統(tǒng)中,所述雙控制器磁盤陣列包括磁盤框以及兩個控制器節(jié)點,每個所述控制器節(jié)點包括交換設(shè)備,其中交換設(shè)備的一個端口與對端控制器節(jié)點中交換設(shè)備的一個端口相連接;每個所述控制器節(jié)點通過本控制器節(jié)點中的交換設(shè)備接收所述服務(wù)器發(fā)送的數(shù)據(jù),并將所述數(shù)據(jù)存儲至所述磁盤框,其中每個所述控制器節(jié)點,還用于通過所述端口檢測對端控制器節(jié)點是否失效;當(dāng)檢測到對端控制器節(jié)點失效時,重新設(shè)置本控制器節(jié)點和對端控制器節(jié)點的配置參數(shù),使得對端控制器節(jié)點將接收到的所述服務(wù)器發(fā)送的數(shù)據(jù),通過對端控制器節(jié)點交換設(shè)備的端口發(fā)送至本控制器節(jié)點交換設(shè)備的端口中;每個所述控制器節(jié)點,還用于通過本控制器節(jié)點交換設(shè)備中所述端口接收對端控制器節(jié)點發(fā)來的數(shù)據(jù),并將接收到的數(shù)據(jù)存儲至所述磁盤框中,所述數(shù)據(jù)是服務(wù)器發(fā)送至對端控制器節(jié)點的。一種存儲系統(tǒng),包括服務(wù)器和如上述的雙控制器磁盤陣列。一種數(shù)據(jù)存儲路徑的切換方法,應(yīng)用于包括雙控制器磁盤陣列和服務(wù)器的存儲系統(tǒng)中,包括雙控制器磁盤陣列中的每個控制器節(jié)點通過其交換設(shè)備中與對端控制器節(jié)點連接的端口檢測對端控制器節(jié)點是否失效,所述雙控制器磁盤陣列包括磁盤框以及兩個控制器節(jié)點,每個所述控制器節(jié)點通過本控制器節(jié)點中的交換設(shè)備接收所述服務(wù)器發(fā)送的數(shù)據(jù),并將所述數(shù)據(jù)存儲至所述磁盤框,每個所述控制器節(jié)點包括交換設(shè)備,其中交換設(shè)備的 一個端口與對端控制器節(jié)點中交換設(shè)備的一個端口相連接;當(dāng)檢測到對端控制器節(jié)點失效時,重新設(shè)置本控制器節(jié)點和對端控制器節(jié)點的配置參數(shù),使得對端控制器節(jié)點將接收到的所述服務(wù)器發(fā)送的數(shù)據(jù),通過對端控制器節(jié)點交換設(shè)備的端口發(fā)送至本控制器節(jié)點交換設(shè)備的端口中;通過本控制器節(jié)點交換設(shè)備中所述端口接收對端控制器節(jié)點發(fā)來的數(shù)據(jù),所述數(shù)據(jù)是服務(wù)器發(fā)送至對端控制器節(jié)點的;并將接收到的數(shù)據(jù)存儲至所述磁盤框中。上述雙控制器磁盤陣列、存儲系統(tǒng)以及數(shù)據(jù)存儲路徑切換方法可帶來以下有益效果服務(wù)器只需要向雙控制器磁盤陣列中的任意一個控制器節(jié)點發(fā)送一次數(shù)據(jù),如果接收數(shù)據(jù)的控制器節(jié)點失效,就由對端節(jié)點接收數(shù)據(jù),通過控制器節(jié)點間相互檢測對方是否失效,因此本發(fā)明不必事先設(shè)定冗余的數(shù)據(jù)路徑,服務(wù)器則不必安裝多路徑軟件即可以實現(xiàn)將數(shù)據(jù)傳輸路徑切換至對端控制器節(jié)點上,減少了服務(wù)器和雙控制器磁盤陣列的冗余
數(shù)據(jù)量。
為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。圖I為現(xiàn)有技術(shù)中數(shù)據(jù)存儲路徑的切換方法示意圖;圖2為本發(fā)明實施例一提供的雙控制磁盤陣列和服務(wù)器的第一結(jié)構(gòu)示意圖;圖3為本發(fā)明實施例二提供的一種數(shù)據(jù)存儲路徑切換方法的第一流程圖;圖4為本發(fā)明實施例三提供的雙控制磁盤陣列和服務(wù)器的第二結(jié)構(gòu)示意圖;圖5為本發(fā)明實施例四提供的一種數(shù)據(jù)存儲路徑切換方法中重新設(shè)置配置參數(shù)的方法流程圖;圖6為本發(fā)明實施例五提供的數(shù)據(jù)存儲路徑切換方法的時序圖。
具體實施方式
下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護(hù)的范圍。為了引用和清楚起見,下文中使用的簡寫或縮寫或設(shè)備的中英文對照總結(jié)如下PCIE !Peripheral Component Interconnect Express,外設(shè)部件互連標(biāo)準(zhǔn)擴(kuò)展;PCIE 端點設(shè)備PCIE End Point ;PCIE 交換設(shè)備PCIE Switch Device ;CPU Central Processing Unit,中央處理器;NTB None-Transparent Bridge,非透明橋;上游端口upstream 口 ;下游端口 downstream 口。實施例一參考圖2,示出了本實施例提供的一種雙控制器磁盤陣列結(jié)構(gòu)示意圖和雙控制器磁盤陣列與服務(wù)器的連接示意圖。雙控制器磁盤陣列包括磁盤框以及兩個控制器節(jié)點,每個控制器節(jié)點包括交換設(shè)備,其中交換設(shè)備的一個端口與對端控制器節(jié)點中交換設(shè)備的一個端口相連接;每個控制器節(jié)點通過本控制器節(jié)點中的交換設(shè)備接收服務(wù)器發(fā)送的數(shù)據(jù),并將數(shù)據(jù)存儲至磁盤框中。為了敘述方便,將雙控制器磁盤陣列中的兩個控制器節(jié)點分別稱為控制器節(jié)點A以及控制器節(jié)點B??刂破鞴?jié)點A和控制器節(jié)點B的功能類似,可以互為主備,服務(wù)器或該磁盤陣列可以根據(jù)一定的選擇策略選擇其中的一個控制器節(jié)點來向磁盤框傳輸待存儲數(shù)據(jù)??刂破鞴?jié)點A中包含交換設(shè)備A,控制器節(jié)點B中包含交換設(shè)備B??刂破鞴?jié)點A和控制器節(jié)點B均可以通過本控制器節(jié)點中的交換設(shè)備接收所述服務(wù)器發(fā)送的數(shù)據(jù),并將所述數(shù)據(jù)存儲至所述磁盤框。交換設(shè)備A的端口 A5與交換設(shè)備B的端口 B5連接。每個所述控制器節(jié)點通過本控制節(jié)點的交換設(shè)備的端口檢測對端控制器節(jié)點是否失效;當(dāng)檢測到對端控制器節(jié)點失效時,重新設(shè)置本控制器節(jié)點和對端控制器節(jié)點的配置參數(shù),使得對端控制器節(jié)點將接收到的所述服務(wù)器發(fā)送的數(shù)據(jù),通過對端控制器節(jié)點交換設(shè)備中與本控制器節(jié)點連接的端口發(fā)送至本控制器節(jié)點交換設(shè)備的端口中;通過本控制器節(jié)點交換設(shè)備中所述端口接收對端控制器節(jié)點發(fā)來的數(shù)據(jù),所述數(shù)據(jù)是服務(wù)器發(fā)送至對端控制器節(jié)點的;并將接收到的數(shù)據(jù)存儲至所述磁盤框中。例如,在控制器節(jié)點A接收服務(wù)器發(fā)送的數(shù)據(jù),并將所述數(shù)據(jù)存儲至磁盤框的過程中,控制器節(jié)點B通過端口 B5檢測控制器節(jié)點A是否失效,并在檢測到控制器節(jié)點A失效時,重新設(shè)置控制器節(jié)點A和控制器節(jié)點B的配置參數(shù),使得控制器節(jié)點B將接收到的服務(wù)器發(fā)送的數(shù)據(jù),通過端口 A5發(fā)送至端口 B5中;并將端口 B5中接收到的數(shù)據(jù)存儲至磁盤框中。可選地,上述控制器節(jié)點檢測對端控制器節(jié)點是否失效的方式包括但不限于控制器節(jié)點判斷在預(yù)設(shè)的時間段內(nèi)本控制器節(jié)點交換設(shè)備中與對端控制器節(jié)點連接的端口是否收到對端控制器節(jié)點發(fā)送的握手消息;如果判斷結(jié)果為否,則確定對端控制器節(jié)點失效。例如,控制器節(jié)點B判斷在10秒內(nèi),端口 B5是否收到端口 A5發(fā)來的握手消息,如果未收到握手消息,則確定對端控制器節(jié)點失效。在設(shè)置預(yù)設(shè)時間段(即監(jiān)測握手消息的時間間隔)時,在系統(tǒng)允許的范圍內(nèi),可以綜合考慮控制器節(jié)點的處理性能、用戶對數(shù)據(jù)傳輸?shù)膶崟r性要求等因素,如果控制器節(jié)點的處理性能較高、且用戶實時性要求較高,那么監(jiān)測握手消息的時間間隔可以設(shè)置較短,反之可以適當(dāng)延長。當(dāng)然,還可以采用其他方式來檢測對端控制器節(jié)點是否失效,例如,控制器節(jié)點B以預(yù)設(shè)的時間間隔向控制器節(jié)點A發(fā)送探測消息,判斷是否能接收到控制器節(jié)點A反饋的響應(yīng)消息,若超過預(yù)設(shè)時間段未收到響應(yīng)消息,則確定控制器節(jié)點A失效?;蛘撸瑑蓚€控制器節(jié)點事先約定,每個控制器節(jié)點當(dāng)接收到對端控制器節(jié)點發(fā)送的中斷消息時,確認(rèn)對端控制器節(jié)點失效。相應(yīng)地,圖2所示的雙控制器磁盤陣列中的每個控制器節(jié)點還用于周期性地向?qū)Χ丝刂破鞴?jié)點發(fā)送握手消息,所述周期中的時間間隔不大于確定是否失效時所述預(yù)設(shè)的時間段。 上述雙控制器磁盤陣列可帶來以下有益效果服務(wù)器只需要向雙控制器磁盤陣列中的任意一個控制器節(jié)點發(fā)送一次數(shù)據(jù),如果接收數(shù)據(jù)的控制器節(jié)點失效,就由對端控制器節(jié)點接收數(shù)據(jù),即本實施例中的服務(wù)器向控制器節(jié)點A發(fā)送一次數(shù)據(jù),當(dāng)控制器節(jié)點A失效時,由控制器節(jié)點B主動接管所述數(shù)據(jù)。本實施例通過控制器節(jié)點間相互檢測對方是否失效,因此不必事先設(shè)定冗余的數(shù)據(jù)路徑,服務(wù)器則不必應(yīng)用多路徑軟件即可以實現(xiàn)將數(shù)據(jù)傳輸路徑切換至對端控制器節(jié)點上,避免了額外購買多路徑軟件的費用,也避免了現(xiàn)有存儲設(shè)備廠商各自提供的多路徑軟件容易產(chǎn)生的不兼容問題。由于服務(wù)器不必安裝多路徑軟件,服務(wù)器和雙控制器磁盤陣列就不需要增加配置來使用多路徑軟件,因此減少了服務(wù)器和雙控制器磁盤陣列的冗余數(shù)據(jù)量。實施例二請參照附圖3,本實施例提供了一種數(shù)據(jù)存儲路徑的切換方法,附圖2中的每個控制器節(jié)點可以采用該方法來實現(xiàn)切換數(shù)據(jù)存儲路徑。本實施例以控制器節(jié)點A失效,控制器節(jié)點B接管失效的控制器節(jié)點A上的數(shù)據(jù)為例。步驟201 :每個控制器節(jié)點通過其交換設(shè)備中與對端控制器節(jié)點連接的端口檢測對端控制器節(jié)點是否失效??刂破鞴?jié)點B通過端口 B5檢測控制器節(jié)點A是否失效,上述控制器節(jié)點B檢測控制器節(jié)點A是否失效的方式包括但不限于控制器節(jié)點B判斷在預(yù)設(shè)的時間段內(nèi)本控制器節(jié)點中交換設(shè)備的端口 B5是否收到控制器節(jié)點A發(fā)送的握手消息;如果判斷結(jié)果為否,則確定控制器節(jié)點A失效。例如,控制器節(jié)點B判斷在10秒內(nèi),端口 B5是否收到端口 A5發(fā)來的握手消息,如果未收到握手消息,則確定對端控制器節(jié)點失效。在設(shè)置預(yù)設(shè)時間段(即監(jiān)測握手消息的時間間隔)時,在系統(tǒng)允許的范圍內(nèi),可以綜合考慮控制器節(jié)點的處理性能、用戶對數(shù)據(jù)傳輸?shù)膶崟r性要求等因素,如果控制器節(jié)點的處理性能較高、且用戶實時性要求較高,那么監(jiān)測握手消息的時間間隔可以設(shè)置較短,反之可以適當(dāng)延長。當(dāng)然,還可以采用其他方式來檢測對端控制器節(jié)點是否失效,例如,控制器節(jié)點B以預(yù)設(shè)的時間間隔向控制器節(jié)點A發(fā)送探測消息,判斷是否能接收到控制器節(jié)點A反饋的響應(yīng)消息,若超過預(yù)設(shè)時間段未收到響應(yīng)消息,則確定控制器節(jié)點A失效。相應(yīng)地,控制器節(jié)點B還用于周期性地向控制器節(jié)點A發(fā)送握手消息,所述周期中的時間間隔不大于確定是否失效時所述預(yù)設(shè)的時間段。步驟202 :當(dāng)檢測到對端控制器節(jié)點失效時,重新設(shè)置本控制器節(jié)點和對端控制器節(jié)點的配置參數(shù),使得對端控制器節(jié)點將接收到的所述服務(wù)器發(fā)送的數(shù)據(jù),通過對端控制器節(jié)點交換設(shè)備的端口發(fā)送至本控制器節(jié)點交換設(shè)備的端口中。如圖2中所示,雙控制器磁盤陣列包括磁盤框以及兩個控制器節(jié)點,分別為控制器節(jié)點A和控制器節(jié)點B,每個控制器節(jié)點均可以通過本控制器節(jié)點中的交換設(shè)備接收所述服務(wù)器發(fā)送的數(shù)據(jù),并將所述數(shù)據(jù)存儲至所述磁盤框,每個控制器節(jié)點包括交換設(shè)備,其中交換設(shè)備A的端口 A5與交換設(shè)備B的端口 B5連接。在控制器節(jié)點A接收服務(wù)器發(fā)送的數(shù)據(jù),并將所述數(shù)據(jù)存儲至磁盤框的過程中,控制器節(jié)點B通過端口 B5檢測控制器節(jié)點A是否失效,并在檢測到控制器節(jié)點A失效時,重新設(shè)置控制器節(jié)點A和控制器節(jié)點B的配置參數(shù),使得控制器節(jié)點B將接收到的服務(wù)器發(fā)送的數(shù)據(jù),通過端口 A5發(fā)送至端口 B5中。步驟203 :通過本控制器節(jié)點交換設(shè)備中所述端口接收對端控制器節(jié)點發(fā)來的數(shù)據(jù),并將接收到的數(shù)據(jù)存儲至所述磁盤框中,所述數(shù)據(jù)是服務(wù)器發(fā)送至對端控制器節(jié)點的。控制器節(jié)點B的端口 B5接收控制器節(jié)點A發(fā)來的數(shù)據(jù),并將接收到的數(shù)據(jù)存儲至所述磁盤框中。上述數(shù)據(jù)存儲路徑的切換方法可帶來以下有益效果服務(wù)器只需要向雙控制器磁盤陣列中的任意一個控制器節(jié)點發(fā)送一次數(shù)據(jù),如果接收數(shù)據(jù)的控制器節(jié)點失效,就由對端節(jié)點接收數(shù)據(jù),本發(fā)明實施例通過控制器節(jié)點間相互檢測對方是否失效,因此不必事先設(shè)定冗余的數(shù)據(jù)路徑,服務(wù)器則不必應(yīng)用多路徑軟件即可以實現(xiàn)將數(shù)據(jù)傳輸路徑切換至對端控制器節(jié)點上,避免了額外購買多路徑軟件的費用。由于服務(wù)器不必安裝多路徑軟件,服務(wù)器和雙控制器磁盤陣列就不需要增加配置來使用多路徑軟件,因此減少了服務(wù)器和雙控制器磁盤陣列的冗余。實施例三本發(fā)明實施例提供了在雙控制器磁盤陣列以及服務(wù)器均支持PCIE總線的場景下,雙控制器磁盤陣列的一種具體結(jié)構(gòu),如附圖4所示。附圖4中的每個控制器節(jié)點除了包含交換設(shè)備(該交換設(shè)備的端口與對端控制器節(jié)點中交換設(shè)備的端口相連接)之外,還包括與服務(wù)器連接的第一端點設(shè)備、與所述磁盤框連接的第二端點設(shè)備和用于運行讀寫控制程序的中央處理器CPU??蛇x地,第一端點設(shè)備和第二端點設(shè)備可以是PCIE端點設(shè)備,交換設(shè)備可以是PCIE交換設(shè)備。具體地控制器節(jié)點A具有與服務(wù)器連接的PCIE端點設(shè)備Al,與磁盤框連接的PCIE端點設(shè)備A4??刂破鞴?jié)點A還具有PCIE交換設(shè)備A,用于運行讀寫控制程序的CPU A以及內(nèi)存A。PCIE交換設(shè)備A具有多個端口,分別為端口 A2、端口 A3、端口 A5以及端口 A6 ;PCIE端點設(shè)備Al與端口 A2連接;端口 A3與PCIE端點設(shè)備A4連接,并通過PCIE、端點設(shè)備A4將服務(wù)器下發(fā)的數(shù)據(jù)傳輸至磁盤框;內(nèi)存A通過中央處理器A與PCIE交換設(shè)備A的端口 A6連接。控制器節(jié)點B同樣具有與服務(wù)器連接的PCIE端點設(shè)備BI,與磁盤框連接的PCIE端點設(shè)備B4、PCIE交換設(shè)備B、CPU B以及內(nèi)存B,PCIE交換設(shè)備B具有端口 B2、端口 B3、端口 B5以及端口 B6,其結(jié)構(gòu)與控制器節(jié)點A相同,在此不做贅述。在雙控制器磁盤陣列中,控制器節(jié)點A與控制器節(jié)點B通過端口 A5和端口 B5連接,可選地,端口 A5和端口 B5可以為PCIE非透明橋端口。在附圖2所示的雙控制器磁盤陣列中 ,待存儲數(shù)據(jù)的存儲過程為每個控制器節(jié)點中的第一端點設(shè)備接收服務(wù)器發(fā)送的數(shù)據(jù),將數(shù)據(jù)發(fā)送至本控制器節(jié)點中的交換設(shè)備中;控制器節(jié)點中的CPU根據(jù)交換設(shè)備配置空間中的配置參數(shù),將交換設(shè)備中的數(shù)據(jù)發(fā)送至本控制器節(jié)點中的第二端點設(shè)備中,第二端點設(shè)備將數(shù)據(jù)發(fā)送至磁盤框。具體地,當(dāng)控制器節(jié)點A起作用時,控制器節(jié)點A中的PCIE端點設(shè)備Al接收服務(wù)器發(fā)送的數(shù)據(jù),將數(shù)據(jù)發(fā)送至本控制器節(jié)點中的PCIE交換設(shè)備A中;控制器節(jié)點A中的CPUA根據(jù)PCIE交換設(shè)備A配置空間中的配置參數(shù),將PCIE交換設(shè)備A中的數(shù)據(jù)發(fā)送至本控制器節(jié)點中的PCIE端點設(shè)備A4中,PCIE端點設(shè)備A4將數(shù)據(jù)發(fā)送至磁盤框。同理,控制器節(jié)點B接收服務(wù)器發(fā)送的數(shù)據(jù),并將數(shù)據(jù)存儲至磁盤框的過程與上述控制器節(jié)點A接收服務(wù)器發(fā)送的數(shù)據(jù),并將數(shù)據(jù)存儲至磁盤框的過程相同,在此不做贅述。雙控制器磁盤陣列中的每個控制器節(jié)點,還用于通過其交換設(shè)備中與對端控制器節(jié)點連接的端口檢測對端控制器節(jié)點是否失效;當(dāng)檢測到對端控制器節(jié)點失效時,重新設(shè)置本控制器節(jié)點和對端控制器節(jié)點的配置參數(shù),使得對端控制器節(jié)點將接收到的服務(wù)器發(fā)送的數(shù)據(jù),通過對端控制器節(jié)點交換設(shè)備的端口發(fā)送至本控制器節(jié)點交換設(shè)備的端口中;通過本控制器節(jié)點交換設(shè)備中端口接收對端控制器節(jié)點發(fā)來的數(shù)據(jù),數(shù)據(jù)是服務(wù)器發(fā)送至對端控制器節(jié)點的;并將接收到的數(shù)據(jù)存儲至磁盤框中。具體來說,控制器節(jié)點B可用于通過端口 B5檢測控制器節(jié)點A是否失效,當(dāng)檢測到控制器節(jié)點A失效時,控制器節(jié)點B重新設(shè)置本控制器節(jié)點和控制器節(jié)點A的配置參數(shù),使得控制器節(jié)點A將接收到的服務(wù)器發(fā)送的數(shù)據(jù),通過控制器節(jié)點A的PCIE交換設(shè)備A的端口 A5發(fā)送至PCIE交換設(shè)備B的端口 B5中??刂破鞴?jié)點B通過本控制器節(jié)點PCIE交換設(shè)備B中的端口 B5接收控制器節(jié)點A發(fā)來的數(shù)據(jù),數(shù)據(jù)是服務(wù)器發(fā)送至控制器節(jié)點A的;并將接收到的數(shù)據(jù)存儲至磁盤框中。本實施例的數(shù)據(jù)傳輸路徑參考圖2中的箭頭方向,服務(wù)器發(fā)送的數(shù)據(jù)以數(shù)據(jù)路徑3存儲至磁盤框中。下面將詳細(xì)地介紹重新設(shè)置配置參數(shù)的過程控制器節(jié)點將本控制器節(jié)點交換設(shè)備中與對端控制器節(jié)點連接的端口配置為上游端口,并通過該端口將對端控制器節(jié)點交換設(shè)備中與該節(jié)點連接的端口配置為下游端口,其中上游端口和下游端口是PCIE規(guī)范中定義的一種端口屬性,上游端口是指靠近接管方CPU方向的端口,下游端口是指遠(yuǎn)離接管方CPU的端口,被配置為上游端口的端口能夠掃描與該端口連接的下游端口的配置參數(shù),而被配置為下游端口的端口是不能夠掃描所連接的其他端口的配置參數(shù)的;控制器節(jié)點通過本控制器節(jié)點交換設(shè)備中與對端控制器節(jié)點連接的端口掃描對端控制器節(jié)點配置空間,以獲取對端控制器節(jié)點交換設(shè)備和第一端點設(shè)備配置空間中的配置參數(shù)。所述配置空間存儲有本控制器節(jié)點中的交換設(shè)備、端點設(shè)備和CPU的配置參數(shù),該配置參數(shù)為交換設(shè)備、端點設(shè)備和CPU的運行參數(shù)。重新設(shè)置對端控制器節(jié)點交換設(shè)備和第一端點設(shè)備的配置參數(shù),使得對端控制器節(jié)點的第一端點設(shè)備將接收到的數(shù)據(jù)發(fā)送到對端控制器節(jié)點的交換設(shè)備中后,通過對端控制器節(jié)點交換設(shè)備中與本控制器連接的端口發(fā)送至本控制器節(jié)點交換設(shè)備的端口中;本控制器節(jié)點交換設(shè)備將端口接收到的數(shù)據(jù)發(fā)送到本控制器節(jié)點的第二端點設(shè)備中。通過設(shè)置端口的配置參數(shù),上述PCIE交換設(shè)備中的端口可以被設(shè)置成為上游端口、下游端口。根據(jù)PCIE協(xié)議規(guī)范上游端口能掃描發(fā)現(xiàn)到連接在下游端口下所有PCIE端點設(shè)備以及交換設(shè)備,并進(jìn)行統(tǒng)一編址、路由訪問;PCIE非透明橋端口會進(jìn)行隔離,也就是說,隔離在PCIE非透明橋端口兩側(cè)的設(shè)備不能相互掃描發(fā)現(xiàn)對方。而端口的屬性能夠通過設(shè)置端口的配置參數(shù)進(jìn)行修改,因此,控制器節(jié)點A中的上述端口被分別設(shè)置成為下游端口A5、下游端口 A6、下游端口 A2以及下游端口 A3??刂破鞴?jié)點B中的上述端口被分別設(shè)置成為上游端口 B5、上游端口 B6、下游端口 B2以及下游端口 B3。在控制器節(jié)點B的上游端口 B5與控制器節(jié)點A的下游端口 A5相連后,與控制器節(jié)點B的上游端口 B6相連的CPU B可以掃描到控制器節(jié)點A的PCIE交換設(shè)備A以及控制器節(jié)點A中所有的PCIE端點設(shè)備。具體的,如圖3所示,以控制器節(jié)點A失效或故障為例,重新設(shè)置控制器節(jié)點B和控制器節(jié)點A中交換設(shè)備的端口的配置參數(shù)包括控制器節(jié)點B將本控制器節(jié)點PCIE交換設(shè)備B的端口 B5配置為上游端口,并通過本控制器節(jié)點PCIE交換設(shè)備B的端口 B5,將控制器節(jié)點A中PCIE交換設(shè)備A的端口 A5配置為下游端口 ;控制器節(jié)點B通過本控制器節(jié)點PCIE交換設(shè)備B中的端口 B5掃描控制器節(jié)點A的配置空間,以獲取控制器節(jié)點A中PCIE交換設(shè)備A和PCIE端點設(shè)備Al配置空間中的配置參數(shù);重新設(shè)置控制器節(jié)點A中PCIE交換設(shè)備A和PCIE端點設(shè)備Al配置空間中的配置參數(shù),使得控制器節(jié)點A的PCIE端點設(shè)備Al將接收到的數(shù)據(jù)發(fā)送到控制器節(jié)點A的PCIE交換設(shè)備A中后,通過控制器節(jié)點A中PCIE交換設(shè)備A的端口 A5發(fā)送至控制器節(jié)點B中PCIE交換設(shè)備B的端口 B5中;控制器節(jié)點B中的PCIE交換設(shè)備B將端口 B5接收到的數(shù)據(jù)發(fā)送到本控制器節(jié)點的PCIE端點設(shè)備BI中。本實施例提供的雙控制器磁盤陣列可帶來以下有益效果服務(wù)器只需要向雙控制器磁盤陣列中的任意一個控制器節(jié)點發(fā)送一次數(shù)據(jù),如果接收數(shù)據(jù)的控制器節(jié)點失效,就由對端控制器節(jié)點接收數(shù)據(jù),即本實施例中的服務(wù)器向控制器節(jié)點A發(fā)送一次數(shù)據(jù),當(dāng)控制器節(jié)點A失效時,由控制器節(jié)點B主動接管所述數(shù)據(jù)。本技術(shù)方案不必事先設(shè)定冗余的數(shù)據(jù)路徑,通過控制器節(jié)點間相互檢測對方是否失效,實現(xiàn)互相檢測并進(jìn)行數(shù)據(jù)路徑的切換,服務(wù)器不必應(yīng)用多路徑軟件即可以實現(xiàn)將數(shù)據(jù)傳輸路徑切換至對端的控制器節(jié)點上,避免了額外購買多路徑軟件的費用。由于服務(wù)器不必安裝多路徑軟件,服務(wù)器和雙控制器磁盤陣列就不需要增加配置來使用多路徑軟件,因此減少了服務(wù)器和雙控制器磁盤陣列的冗余。并且,當(dāng)控制器節(jié)點A失效后,控制器節(jié)點A上的某些部件(如圖4中的PCIE端點設(shè)備Al)還可以繼續(xù)提供服務(wù),避免了部分可用部件的浪費。實施例四
參見圖5,本發(fā)明實施例提供了在雙控制器磁盤陣列以及服務(wù)器均支持PCIE總線的場景下,一種數(shù)據(jù)存儲路徑的切換方法,附圖4中的每個控制器節(jié)點可以采用該方法來實現(xiàn)切換數(shù)據(jù)存儲路徑。本實施例還以控制器節(jié)點A失效,控制器節(jié)點B接管失效的控制器節(jié)點A上的數(shù)據(jù)為例。附圖4中的每個控制器節(jié)點的具體結(jié)構(gòu)可參見實施三,在此不做贅述。本實施例與實施例二中的數(shù)據(jù)存儲路徑的切換方法相同,其中,實施例二中的“每個控制器節(jié)點均可以通過本控制器節(jié)點中的交換設(shè)備接收所述服務(wù)器發(fā)送的數(shù)據(jù),并將所述數(shù)據(jù)存儲至所述磁盤框”過程具體為每個控制器節(jié)點中的第一端點設(shè)備接收服務(wù)器發(fā)送的數(shù)據(jù),將數(shù)據(jù)發(fā)送至本控制器節(jié)點中的交換設(shè)備中;控制器節(jié)點中的CPU根據(jù)交換設(shè)備配置空間中的配置參數(shù),將交換設(shè)備中的數(shù)據(jù)發(fā)送至本控制器節(jié)點中的第二端點設(shè)備中,第二端點設(shè)備將數(shù)據(jù)發(fā)送至磁盤框。
具體地,當(dāng)控制器節(jié)點A起作用時,控制器節(jié)點A中的PCIE端點設(shè)備Al接收服務(wù)器發(fā)送的數(shù)據(jù),將數(shù)據(jù)發(fā)送至本控制器節(jié)點中的PCIE交換設(shè)備A中;控制器節(jié)點A中的CPUA根據(jù)PCIE交換設(shè)備A配置空間中的配置參數(shù),將PCIE交換設(shè)備A中的數(shù)據(jù)發(fā)送至本控制器節(jié)點中的PCIE端點設(shè)備A4中,PCIE端點設(shè)備A4將數(shù)據(jù)發(fā)送至磁盤框。同理,控制器節(jié)點B接收服務(wù)器發(fā)送的數(shù)據(jù),并將數(shù)據(jù)存儲至磁盤框的過程與上述控制器節(jié)點A接收服務(wù)器發(fā)送的數(shù)據(jù),并將數(shù)據(jù)存儲至磁盤框的過程相同,在此不做贅述。下面詳細(xì)地介紹實施例二中重新設(shè)置配置參數(shù)的過程,參考圖5 步驟501 :控制器節(jié)點將本控制器節(jié)點交換設(shè)備中與對端控制器節(jié)點連接的端口配置為上游端口??刂破鞴?jié)點B將本控制器節(jié)點PCIE交換設(shè)備B的端口 B5配置為上游端口。步驟502 :通過本控制器節(jié)點交換設(shè)備中的所述端口將所連接的對端控制器節(jié)點交換設(shè)備中端口配置為下游端口??刂破鞴?jié)點B通過本控制器節(jié)點PCIE交換設(shè)備B的端口 B5,將控制器節(jié)點A中PCIE交換設(shè)備A的端口 A5配置為下游端口。步驟503 :通過本控制器節(jié)點交換設(shè)備中的所述端口,掃描對端控制器節(jié)點配置空間,以獲取對端控制器節(jié)點交換設(shè)備和第一端點設(shè)備配置空間中的配置參數(shù)??刂破鞴?jié)點B通過本控制器節(jié)點PCIE交換設(shè)備B中的端口 B5掃描控制器節(jié)點A的配置空間,以獲取控制器節(jié)點A中PCIE交換設(shè)備A和PCIE端點設(shè)備Al配置空間中的配
置參數(shù)。步驟504 :重新設(shè)置對端控制器節(jié)點交換設(shè)備和第一端點設(shè)備配置空間中的配置參數(shù),使得對端控制器節(jié)點的第一端點設(shè)備將接收到的數(shù)據(jù)發(fā)送到對端控制器節(jié)點的交換設(shè)備中后,通過對端控制器節(jié)點交換設(shè)備的端口發(fā)送至本控制器節(jié)點交換設(shè)備的端口中。重新設(shè)置控制器節(jié)點A中PCIE交換設(shè)備A和PCIE端點設(shè)備Al配置空間中的配置參數(shù),使得控制器節(jié)點A的PCIE端點設(shè)備Al將接收到的數(shù)據(jù)發(fā)送到控制器節(jié)點A的PCIE交換設(shè)備A中后,通過控制器節(jié)點A中PCIE交換設(shè)備A的端口 A5發(fā)送至控制器節(jié)點B中PCIE交換設(shè)備B的端口 B5中步驟505 :本控制器節(jié)點交換設(shè)備將所述端口接收到的數(shù)據(jù)發(fā)送到本控制器節(jié)點的第二端點設(shè)備中。
控制器節(jié)點B中的PCIE交換設(shè)備B將端口 B5接收到的數(shù)據(jù)發(fā)送到本控制器節(jié)點的PCIE端點設(shè)備BI中。本實施例提供的數(shù)據(jù)存儲路徑的切換方法可帶來以下有益效果服務(wù)器只需要向雙控制器磁盤陣列中的任意一個控制器節(jié)點發(fā)送一次數(shù)據(jù),如果接收數(shù)據(jù)的控制器節(jié)點失效,就由對端控制器節(jié)點接收數(shù)據(jù),即本實施例中的服務(wù)器向控制器節(jié)點A發(fā)送一次數(shù)據(jù),當(dāng)控制器節(jié)點A失效時,由控制器節(jié)點B主動接管所述數(shù)據(jù)。本技術(shù)方案不必事先設(shè)定冗余的數(shù)據(jù)路徑,通過控制器節(jié)點間相互檢測對方是否失效,實現(xiàn)互相檢測并進(jìn)行數(shù)據(jù)路徑的切換,服務(wù)器不必應(yīng)用多路徑軟件即可以實現(xiàn)將數(shù)據(jù)傳輸路徑切換至對端的控制器節(jié)點上,避免了額外購買多路徑軟件的費用。由于服務(wù)器不必安裝多路徑軟件,服務(wù)器和雙控制器磁盤陣列就不需要增加配置來使用多路徑軟件,因此減少了服務(wù)器和雙控制器磁盤陣列的冗余。并且,當(dāng)控制器節(jié)點A失效后,控制器節(jié)點A上的某些部件(如圖4中的PCIE端點設(shè)備Al)還可以繼續(xù)提供服務(wù),避免了部分可用部件的浪費。實施例五參考圖6,為了使本方案更加清楚,下面以雙控制器磁盤陣列中控制器節(jié)點A失效,控制器節(jié)點B接管控制器節(jié)點A上的數(shù)據(jù),以時序圖的方式加以介紹另參考圖4的雙控制磁盤陣列和服務(wù)器的結(jié)構(gòu)示意圖,控制器節(jié)點A具有與服務(wù)器連接的PCIE端點設(shè)備Al,與磁盤框連接的PCIE端點設(shè)備A4??刂破鞴?jié)點A還具有PCIE交換設(shè)備A,用于運行讀寫控制程序的中央處理器CPU A以及內(nèi)存A。PCIE交換設(shè)備A具有多個端口,分別為端口 A2、端口 A3、端口 A5以及端口 A6 ;PCIE端點設(shè)備Al與端口 A2連接;端口 A3與PCIE端點設(shè)備A4連接,并通過PCIE端點設(shè)備A4將服務(wù)器下發(fā)的數(shù)據(jù)傳輸至磁盤框;內(nèi)存A通過中央處理器A與PCIE交換設(shè)備A的端口 A6連接??刂破鞴?jié)點B同樣具有與服務(wù)器連接的PCIE端點設(shè)備BI,與磁盤框連接的PCIE端點設(shè)備B4、PCIE交換設(shè)備B、CPU B以及內(nèi)存B,PCIE交換設(shè)備B具有端口 B2、端口 B3、端口 B5以及端口 B6,其結(jié)構(gòu)與控制器節(jié)點A相同,在此不做贅述。該方法至少可以包括以下步驟步驟601 :周期性的發(fā)送握手消息??刂破鞴?jié)點A通過端口 A5周期性的向控制器節(jié)點B發(fā)送握手消息。上述握手消息可以為心跳消息。步驟602 :判斷在預(yù)設(shè)的時間段內(nèi)本控制器節(jié)點中交換設(shè)備的端口是否收到控制器節(jié)點A發(fā)送的握手消息,若是,說明對端控制器工作正常,則繼續(xù)監(jiān)控,重復(fù)本步驟,否貝U,確定出對端控制器節(jié)點失效,進(jìn)入步驟603。控制器節(jié)點B判斷在預(yù)設(shè)的時間段內(nèi)本控制器節(jié)點中PCIE交換設(shè)備B的端口 B5是否收到控制器節(jié)點A發(fā)送的握手消息,在本實施例中控制器節(jié)點未能在預(yù)設(shè)的時間段內(nèi)接收到握手消息,因此判斷出控制器節(jié)點A失效。步驟603 :將本控制器節(jié)點PCIE交換設(shè)備B中與對端控制器節(jié)點連接的端口配置為上游端口??刂破鞴?jié)點B將本控制器節(jié)點PCIE交換設(shè)備B的端口 B5配置為上游端口。
步驟604 :控制器節(jié)點B通過本控制器節(jié)點交換設(shè)備中與對端控制器節(jié)點連接的端口將控制器節(jié)點A交換設(shè)備中與該端口連接的端口配置為下游端口。具體的,控制器節(jié)點B通過本控制器節(jié)點PCIE交換設(shè)備B的端口 B5將控制器節(jié)點A中PCIE交換設(shè)備A中端口 A5配置為下游端口。步驟605 :控制器節(jié)點B通過本控制器節(jié)點交換設(shè)備中與對端控制器節(jié)點連接的端口掃描控制器節(jié)點A的配置空間。具體的,控制器節(jié)點B通過本控制器節(jié)點PCIE交換設(shè)備B的端口 B5掃描控制器節(jié)點A的配置空間。步驟606 :控制器節(jié)點B獲取控制器節(jié)點A交換設(shè)備和第一端點設(shè)備配置空間中的配置參數(shù)??刂破鞴?jié)點B獲取控制器節(jié)點A中PCIE交換設(shè)備A和PCIE端點設(shè)備Al配置空間中的配置參數(shù)。步驟607 :控制器節(jié)點B重新設(shè)置控制器節(jié)點A交換設(shè)備和第一端點設(shè)備配置空間中的配置參數(shù)??刂破鞴?jié)點B重新設(shè)置控制器節(jié)點A中PCIE交換設(shè)備A和PCIE端點設(shè)備Al配置空間中的配置參數(shù)。重新設(shè)置之后的結(jié)果是控制器節(jié)點A清除掉PCIE交換設(shè)備A和PCIE端點設(shè)備Al失效前的運行狀態(tài),使之重新進(jìn)入到上電之初的狀態(tài),另外,控制器節(jié)點A的PCIE交換設(shè)備A以及PCIE端點設(shè)備Al可以在控制器節(jié)點B的PCIE域中正常工作,也就是說,重新設(shè)置完成之后的效果為控制器節(jié)點A上的PCIE交換設(shè)備A和PCIE端點設(shè)備Al等同于控制器節(jié)點B上的PCIE交換設(shè)備B和PCIE端點設(shè)備BI。重新初始化完成后,當(dāng)PCIE端點設(shè)備Al收到服務(wù)器發(fā)送的數(shù)據(jù)時會直接將數(shù)據(jù)轉(zhuǎn)移到控制器節(jié)點B。步驟608 :控制器節(jié)點A的第一端點設(shè)備將接收到的數(shù)據(jù)發(fā)送到控制器節(jié)點A的交換設(shè)備中后,通過控制器節(jié)點A交換設(shè)備中與控制器節(jié)點B連接的端口發(fā)送至控制器節(jié)點B交換設(shè)備的端口中??刂破鞴?jié)點A的PCIE端點設(shè)備Al將接收到的數(shù)據(jù)發(fā)送到控制器節(jié)點A的PCIE交換設(shè)備A中后,通過控制器節(jié)點A的PCIE交換設(shè)備A的端口 A5發(fā)送至控制器節(jié)點B的PCIE交換設(shè)備B的端口 B5中。步驟609 :控制器節(jié)點B的交換設(shè)備將端口接收到的數(shù)據(jù)發(fā)送到本控制節(jié)點的第~■端點設(shè)備中??刂破鞴?jié)點B的PCIE交換設(shè)備B將端口 B5接收到的數(shù)據(jù)發(fā)送到本控制節(jié)點的PCIE端點設(shè)備B4中。需要說明的是,不限定控制器節(jié)點A接收服務(wù)器發(fā)送的數(shù)據(jù)的步驟時序,可以理解的是,控制器節(jié)點A接收服務(wù)器發(fā)送的數(shù)據(jù)是一個隨機(jī)的事件,其可以在本方案的任一時刻發(fā)生。
實施例六本發(fā)明還提供了一種存儲系統(tǒng),包括服務(wù)器和雙控制器磁盤陣列,雙控制器磁盤陣列為上述實施例一、實施例三任一實施例中的雙控制器磁盤陣列,具體參見實施例一和實施例三中雙控制器磁盤陣列的結(jié)構(gòu),在此不做贅述。
本存儲系統(tǒng)應(yīng)具有上述實施例中的雙控制器磁盤陣列,其具有上述雙控制器磁盤陣列的有益效果,在此不做贅述。在本發(fā)明上述的所有實施例中,通過端口檢測對端控制器節(jié)點是否失效包括每個控制器節(jié)點判斷在預(yù)設(shè)的時間段內(nèi)本控制器節(jié)點中交換設(shè)備的端口是否收到對端控制器節(jié)點發(fā)送的握手消息;如果判斷結(jié)果為否,則確定對端控制器節(jié)點失效。具體的,控制器節(jié)點B判斷在預(yù)設(shè)的時間段內(nèi)本控制器節(jié)點中的端口 B5是否收到控制器節(jié)點A發(fā)送的握手消息;如果判斷結(jié)果為否,則確定控制器節(jié)點A失效。握手消息可以為心跳消息,心跳消息可用來指示控制器節(jié)點還在正常工作。例如,在控制器節(jié)點中的交換設(shè)備、端點設(shè)備均支持P CIE總線、兩個控制器節(jié)點之間相互連接的端口為非透明橋端口的場景下,控制器節(jié)點B可監(jiān)控控制器節(jié)點A的狀態(tài),控制器節(jié)點A可以通過門鈴寄存器向控制器節(jié)點B傳送心跳消息,當(dāng)控制器節(jié)點B在規(guī)定的時間段內(nèi)沒有收到預(yù)先規(guī)定好的心跳消息時,就可以認(rèn)為控制器節(jié)點A失效,如果控制器節(jié)點B發(fā)現(xiàn)控制器節(jié)點A失效,它就需要采取一些必要的措施,使控制器節(jié)點A上的數(shù)據(jù)傳輸路徑切換至控制器節(jié)點B。其中,門鈴寄存器是用來送從非透明的橋一側(cè)到另一側(cè)的中斷請求,關(guān)于門鈴寄存器和門鈴機(jī)制,請參照非透明橋的相關(guān)技術(shù)文檔,在這里不再詳述。在上述所有實施例中,每個控制器節(jié)點還用于周期性地向?qū)Χ丝刂破鞴?jié)點發(fā)送握手消息,周期中的時間間隔不大于預(yù)設(shè)的時間段。在上述所有實施例中,所述對端控制器節(jié)點失效包括對端控制器節(jié)點中CPU故障,和/或與CPU連接的內(nèi)存故障。在上述所有實施例中,所述第一端點設(shè)備和第二端點設(shè)備包括外設(shè)部件互連標(biāo)準(zhǔn)擴(kuò)展PCIE端點設(shè)備,所述交換設(shè)備包括PCIE交換設(shè)備。通過以上的方法實施例的描述,所屬領(lǐng)域的技術(shù)人員可以清楚地了解到本發(fā)明可借助軟件加必需的通用硬件平臺的方式來實現(xiàn),當(dāng)然也可以通過硬件,但很多情況下前者是更佳的實施方式?;谶@樣的理解,本發(fā)明的技術(shù)方案本質(zhì)上或者說對現(xiàn)有技術(shù)做出貢獻(xiàn)的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計算機(jī)軟件產(chǎn)品存儲在一個存儲介質(zhì)中,包括若干指令用以使得一臺計算機(jī)設(shè)備(可以是個人計算機(jī),服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個實施例所述方法的全部或部分步驟。而前述的存儲介質(zhì)包括只讀存儲器(ROM)、隨機(jī)存取存儲器(RAM)、磁碟或者光盤等各種可以存儲程序代碼的介質(zhì)。對于裝置實施例而言,由于其基本相應(yīng)于方法實施例,所以相關(guān)之處參見方法實施例的部分說明即可。以上所描述的裝置實施例僅僅是示意性的,其中所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個地方,或者也可以分布到多個網(wǎng)絡(luò)單元上。可以根據(jù)實際的需要選擇其中的部分或者全部模塊來實現(xiàn)本實施例方案的目的。本領(lǐng)域普通技術(shù)人員在不付出創(chuàng)造性勞動的情況下,即可以理解并實施。在本發(fā)明所提供的幾個實施例中,應(yīng)該理解到,所揭露的裝置和方法,在沒有超過本申請的精神和范圍內(nèi),可以通過其他的方式實現(xiàn)。當(dāng)前的實施例只是一種示范性的例子,不應(yīng)該作為限制,所給出的具體內(nèi)容不應(yīng)該限制本申請的目的。例如,所述單元或子單元的劃分,僅僅為一種邏輯功能劃分,實際實現(xiàn)時可以有另外的劃分方式,例如多個單元或多個子單元結(jié)合一起。另外,多個單元可以或組件可以結(jié)合或者可以集成到對端個裝置,或一些特征可以忽略,或不執(zhí)行。另外,所描述裝置和方法以及不同實施例的示意圖,在不超出本申請的范圍內(nèi),可以與其它裝置,模塊,技術(shù)或方法結(jié)合或集成。對端點,所顯示或討論的相互之間的耦合或直接耦合或通信連接可以是通過一些接口,裝置或單元的間接耦合或通信連接,可以是電性,機(jī)械或其它的形式。以上所述僅是本發(fā)明的具體實施方式
,應(yīng)當(dāng)指出,對于本技術(shù)領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明原理的前提下,還可以做出若干改進(jìn)和潤飾,這些改進(jìn)和潤飾也應(yīng)視為本發(fā)明的保護(hù)范圍。
權(quán)利要求
1.一種雙控制器磁盤陣列,應(yīng)用于包括雙控制器磁盤陣列和服務(wù)器的存儲系統(tǒng)中,所述雙控制器磁盤陣列包括磁盤框以及兩個控制器節(jié)點,其特征在于, 每個所述控制器節(jié)點包括交換設(shè)備,其中交換設(shè)備的一個端口與對端控制器節(jié)點中交換設(shè)備的一個端口相連接;每個所述控制器節(jié)點通過本控制器節(jié)點中的交換設(shè)備接收所述服務(wù)器發(fā)送的數(shù)據(jù),并將所述數(shù)據(jù)存儲至所述磁盤框,其中; 每個所述控制器節(jié)點,還用于通過所述端口檢測對端控制器節(jié)點是否失效;當(dāng)檢測到對端控制器節(jié)點失效時,重新設(shè)置本控制器節(jié)點和對端控制器節(jié)點的配置參數(shù),使得對端控制器節(jié)點將接收到的所述服務(wù)器發(fā)送的數(shù)據(jù),通過對端控制器節(jié)點交換設(shè)備的端口發(fā)送至本控制器節(jié)點交換設(shè)備的端口中; 每個所述控制器節(jié)點,還用于通過本控制器節(jié)點交換設(shè)備中所述端口接收對端控制器節(jié)點發(fā)來的數(shù)據(jù),并將接收到的數(shù)據(jù)存儲至所述磁盤框中,所述數(shù)據(jù)是服務(wù)器發(fā)送至對端控制器節(jié)點的。
2.如權(quán)利要求I所述的雙控制器磁盤陣列,其特征在于,每個所述控制器節(jié)點還包括與所述服務(wù)器連接的第一端點設(shè)備、與所述磁盤框連接的第二端點設(shè)備和用于運行讀寫控制程序的中央處理器CPU; 所述通過本控制器節(jié)點中的交換設(shè)備接收所述服務(wù)器發(fā)送的數(shù)據(jù),并將所述數(shù)據(jù)存儲至所述磁盤框,,包括 每個所述控制器節(jié)點中的第一端點設(shè)備接收所述服務(wù)器發(fā)送的數(shù)據(jù),將所述數(shù)據(jù)發(fā)送至本控制器節(jié)點中的交換設(shè)備中; 所述控制器節(jié)點中的CPU根據(jù)所述交換設(shè)備配置空間中的配置參數(shù),將所述交換設(shè)備中的數(shù)據(jù)發(fā)送至本控制器節(jié)點中的第二端點設(shè)備中,所述第二端點設(shè)備將所述數(shù)據(jù)發(fā)送至磁盤框。
3.如權(quán)利要求2所述的雙控制器磁盤陣列,其特征在于,所述重新設(shè)置本控制器節(jié)點和對端控制器節(jié)點中交換設(shè)備的所述端口的配置參數(shù),包括 所述控制器節(jié)點將本控制器節(jié)點交換設(shè)備中與對端控制器節(jié)點連接的端口配置為上游端口,并通過本控制器節(jié)點交換設(shè)備中的所述端口將所連接的對端控制器節(jié)點中的端口配置為下游端口; 所述控制器節(jié)點通過本控制器節(jié)點交換設(shè)備中的所述端口掃描對端控制器節(jié)點配置空間,以獲取對端控制器節(jié)點交換設(shè)備和第一端點設(shè)備的配置參數(shù); 重新設(shè)置對端控制器節(jié)點交換設(shè)備和第一端點設(shè)備的配置參數(shù),使得對端控制器節(jié)點的第一端點設(shè)備將接收到的數(shù)據(jù)發(fā)送到對端控制器節(jié)點的交換設(shè)備中后,通過對端控制器節(jié)點交換設(shè)備的端口發(fā)送至本控制器節(jié)點交換設(shè)備的端口中; 本控制器節(jié)點交換設(shè)備將端口接收到的數(shù)據(jù)發(fā)送到本控制器節(jié)點的第二端點設(shè)備中。
4.如權(quán)利要求I至3任一所述的雙控制器磁盤陣列,其特征在于,所述通過所述端口檢測對端控制器節(jié)點是否失效,包括 每個所述控制器節(jié)點判斷在預(yù)設(shè)的時間段內(nèi)本控制器節(jié)點交換設(shè)備中與對端控制器節(jié)點連接的端口是否收到對端控制器節(jié)點發(fā)送的握手消息; 如果判斷結(jié)果為否,則確定對端控制器節(jié)點失效。
5.一種存儲系統(tǒng),其特征在于,包括服務(wù)器和如權(quán)利要求1、2、3或4所述的雙控制器磁盤陣列。
6.一種數(shù)據(jù)存儲路徑的切換方法,應(yīng)用于包括雙控制器磁盤陣列和服務(wù)器的存儲系統(tǒng)中,其特征在于,包括 雙控制器磁盤陣列中的每個控制器節(jié)點通過其交換設(shè)備中與對端控制器節(jié)點連接的端口檢測對端控制器節(jié)點是否失效,所述雙控制器磁盤陣列包括磁盤框以及兩個控制器節(jié)點,每個所述控制器節(jié)點通過本控制器節(jié)點中的交換設(shè)備接收所述服務(wù)器發(fā)送的數(shù)據(jù),并將所述數(shù)據(jù)存儲至所述磁盤框,每個所述控制器節(jié)點包括交換設(shè)備,其中交換設(shè)備的一個端口與對端控制器節(jié)點中交換設(shè)備的一個端口相連接; 當(dāng)檢測到對端控制器節(jié)點失效時,重新設(shè)置本控制器節(jié)點和對端控制器節(jié)點的配置參數(shù),使得對端控制器節(jié)點將接收到的所述服務(wù)器發(fā)送的數(shù)據(jù),通過對端控制器節(jié)點交換設(shè)備的端口發(fā)送至本控制器節(jié)點交換設(shè)備的端口中; 通過本控制器節(jié)點交換設(shè)備中所述端口接收對端控制器節(jié)點發(fā)來的數(shù)據(jù),并將接收到的數(shù)據(jù)存儲至所述磁盤框中,所述數(shù)據(jù)是服務(wù)器發(fā)送至對端控制器節(jié)點的。
7.如權(quán)利要求6所述的方法,其特征在于,所述通過本控制器節(jié)點中的交換設(shè)備接收所述服務(wù)器發(fā)送的數(shù)據(jù),并將所述數(shù)據(jù)存儲至所述磁盤框,包括 所述控制器節(jié)點中的第一端點設(shè)備接收所述服務(wù)器發(fā)送的數(shù)據(jù),將所述數(shù)據(jù)發(fā)送至本控制器節(jié)點中的交換設(shè)備中,所述控制器節(jié)點包括與所述服務(wù)器連接的第一端點設(shè)備、與所述磁盤框連接的第二端點設(shè)備和用于運行讀寫控制程序的CPU ; 所述控制器節(jié)點中的CPU根據(jù)所述交換設(shè)備配置空間中的配置參數(shù),將所述交換設(shè)備中的數(shù)據(jù)發(fā)送至本控制器節(jié)點中的第二端點設(shè)備中,所述第二端點設(shè)備將所述數(shù)據(jù)發(fā)送至磁盤框。
8.如權(quán)利要求7所述的方法,其特征在于,所述重新設(shè)置本控制器節(jié)點和對端控制器節(jié)點中交換設(shè)備的所述端口的配置參數(shù),包括 所述控制器節(jié)點將本控制器節(jié)點交換設(shè)備中與對端控制器節(jié)點連接的端口配置為上游端口,并通過本控制器節(jié)點交換設(shè)備中的所述端口將所連接的對端控制器節(jié)點中的端口配置為下游端口; 所述控制器節(jié)點通過本控制器節(jié)點交換設(shè)備中的所述端口掃描對端控制器節(jié)點配置空間,以獲取對端控制器節(jié)點交換設(shè)備和第一端點設(shè)備的配置參數(shù); 重新設(shè)置對端控制器節(jié)點交換設(shè)備和第一端點設(shè)備的配置參數(shù),使得對端控制器節(jié)點的第一端點設(shè)備將接收到的數(shù)據(jù)發(fā)送到對端控制器節(jié)點的交換設(shè)備中后,通過對端控制器節(jié)點交換設(shè)備的端口發(fā)送至本控制器節(jié)點交換設(shè)備的端口中; 本控制器節(jié)點交換設(shè)備將端口接收到的數(shù)據(jù)發(fā)送到本控制器節(jié)點的第二端點設(shè)備中。
9.如權(quán)利要求6至8任一所述的方法,其特征在于,所述通過其交換設(shè)備中與對端控制器節(jié)點連接的端口檢測對端控制器節(jié)點是否失效,包括 每個所述控制器節(jié)點判斷在預(yù)設(shè)的間隔時間內(nèi)本控制器節(jié)點交換設(shè)備中與對端控制器節(jié)點連接的端口是否收到對端控制器節(jié)點發(fā)送的握手消息; 如果判斷結(jié)果為否,則確定對端控制器節(jié)點失效。
10.如權(quán)利要求7或8所述的方法,其特征在于,所述對端控制器節(jié)點失效包括對端控制器節(jié)點中CPU故障,和/或與CPU連接的內(nèi)存故障。
11.如權(quán)利要求7或8所述的方法,其特征在于,所述第一端點設(shè)備和第二端點設(shè)備均包括外設(shè)部件互連標(biāo)準(zhǔn)擴(kuò)展PCIE端點設(shè)備,所述交換設(shè)備包括PCIE交換設(shè)備。
全文摘要
本發(fā)明公開了一種雙控制器磁盤陣列,應(yīng)用于包括雙控制器磁盤陣列和服務(wù)器的存儲系統(tǒng)中,雙控制器磁盤陣列包括磁盤框以及兩個控制器節(jié)點,每個控制器節(jié)點包括交換設(shè)備,其中交換設(shè)備的一個端口與對端控制器節(jié)點中交換設(shè)備的一個端口相連接;每個控制器節(jié)點用于通過端口檢測對端控制器節(jié)點是否失效;當(dāng)檢測到對端控制器節(jié)點失效時,本控制器節(jié)點使對端控制器節(jié)點將接收到的服務(wù)器發(fā)送的數(shù)據(jù),通過對端控制器節(jié)點交換設(shè)備的端口發(fā)送至本控制器節(jié)點交換設(shè)備的端口中,由于本發(fā)明不必在服務(wù)器中安裝多路徑軟件,因此減少了服務(wù)器裝置的冗余。本發(fā)明還公開了一種存儲系統(tǒng)和數(shù)據(jù)存儲路徑切換方法。
文檔編號G06F11/20GK102629225SQ201210049908
公開日2012年8月8日 申請日期2012年2月29日 優(yōu)先權(quán)日2011年12月31日
發(fā)明者李旭慧 申請人:成都市華為賽門鐵克科技有限公司