通過接口卡傳輸信息、控制器故障處理方法、裝置及系統(tǒng)的制作方法
【專利摘要】本發(fā)明公開了一種存儲系統(tǒng),用于解決在控制器故障接口卡中的業(yè)務(wù)中斷、及與該接口卡連接的設(shè)備無法繼續(xù)使用的技術(shù)問題。所述系統(tǒng)包括:M個控制器,用于控制所述系統(tǒng);所述M個控制器中包括一個主控制器及M-1個作為冗余的從控制器,M為正整數(shù);N個接口卡,其中每個接口卡與至少兩個控制器連接,用于將所述控制器傳輸?shù)男盘?、或傳輸給所述控制器的信號進行中轉(zhuǎn),或用于處理來自所述控制器的信號;N為小于等于M的整數(shù)。本發(fā)明還公開了通過接口卡傳輸信息、控制器故障處理方法及相應(yīng)的裝置。
【專利說明】通過接口卡傳輸信息、控制器故障處理方法、裝置及系統(tǒng)
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及通信領(lǐng)域,特別涉及一種通過接口卡傳輸信息、控制器故障處理方法、裝置及系統(tǒng)。
【背景技術(shù)】
[0002]目前業(yè)界絕大多數(shù)存儲系統(tǒng)中,都采用的是兩個以上的控制器來做冗余設(shè)計,這是出于對存儲的高可靠性要求而設(shè)計的。在這種背景下,控制器都設(shè)計有冗余,如果一塊控制器故障,不會影響系統(tǒng)業(yè)務(wù),所有業(yè)務(wù)由另外冗余的控制器接管繼續(xù)工作,這種設(shè)計對存儲的可靠性是非常重要的。
[0003]而對于控制器控制和管理的接口卡,是分屬于各個控制器的,如圖1所示,接口卡I連接控制器A,接口卡2連接控制器B,每個接口卡只服務(wù)于一個控制器。例如,若控制器A發(fā)生故障,則該鏈路上的業(yè)務(wù)即停止,接口卡I也無法再繼續(xù)使用。其中,一個控制器也可以連接有多個接口卡,圖1中是以一個接口卡為例,但每個接口卡是只能服務(wù)于一個控制器的。
[0004]可見,一旦一個控制器故障,屬于該控制器的所有接口卡也都無法使用。一般來說,接口卡會連接有磁盤等其他設(shè)備,按照現(xiàn)有技術(shù)中的工作方式,接口卡在停止使用后會導(dǎo)致接口卡中的業(yè)務(wù)中斷,可能也會導(dǎo)致與該接口卡連接的磁盤等設(shè)備無法再接收或發(fā)送信息,相當于導(dǎo)致與該接口卡連接的設(shè)備無法再繼續(xù)使用。
【發(fā)明內(nèi)容】
[0005]本發(fā)明實施例提供一種通過接口卡傳輸信息、控制器故障處理方法、裝置及系統(tǒng),用于解決在控制器故障接口卡中的業(yè)務(wù)中斷、及與該接口卡連接的設(shè)備無法繼續(xù)使用的技術(shù)問題。
[0006]本發(fā)明的第一方面,提供一種存儲系統(tǒng),包括:
[0007]M個控制器,用于控制所述系統(tǒng);所述M個控制器中包括一個主控制器及M-1個作為冗余的從控制器,M為正整數(shù);
[0008]N個接口卡,其中每個接口卡與至少兩個控制器連接,用于將所述控制器傳輸?shù)男盘?、或傳輸給所述控制器的信號進行中轉(zhuǎn),或用于處理來自所述控制器的信號小為小于等于M的整數(shù)。
[0009]結(jié)合第一方面,在第一方面的第一種可能的實現(xiàn)方式中,所述接口卡與所述控制器通過PCIE總線相連。
[0010]結(jié)合第一方面的第一種可能的實現(xiàn)方式,在第一方面的第二種可能的實現(xiàn)方式中,所述接口卡與所述控制器之間還連接有串行控制總線和/或并行控制總線,用于傳輸控制信號。
[0011]結(jié)合第一方面或第一方面的第一種可能的實現(xiàn)方式或第二種可能的實現(xiàn)方式,在第一方面的第三種可能的實現(xiàn)方式中,所述系統(tǒng)還包括至少一個存儲設(shè)備,其中每個存儲設(shè)備與至少一個接口卡相連,以使所述控制器與所述存儲設(shè)備通過相應(yīng)的接口卡進行信息交互。
[0012]本發(fā)明的第二方面,提供一種通過接口卡傳輸信息的方法,包括:
[0013]當M個控制器中作為主控制器的第一控制器發(fā)生故障時,所述M個控制器中的第二控制器競爭為新的主控制器;
[0014]所述第二控制器至少通過所述N個接口卡中的第一接口卡進行信息中轉(zhuǎn);其中,所述第一接口卡分別與所述第一控制器及所述第二控制器連接。
[0015]結(jié)合第二方面,在第二方面的第一種可能的實現(xiàn)方式中,在所述M個控制器中的第二控制器競爭為新的主控制器之前,還包括:
[0016]所述第二控制器接收所述第一控制器發(fā)送的第一故障通知消息,所述第一故障通知消息用于通知所述第二控制器,所述第一控制器出現(xiàn)了故障。
[0017]結(jié)合第二方面或第二方面的第一種可能的實現(xiàn)方式,在第二方面的第二種可能的實現(xiàn)方式中,在所述M個控制器中的第二控制器競爭為新的主控制器之后,還包括:
[0018]所述第二控制器接收所述M個控制器中的第三控制器發(fā)送的第二故障通知消息,所述第二故障通知消息用于通知所述第二控制器,所述第三控制器出現(xiàn)了故障;
[0019]所述第二控制器從冗余控制器列表中去掉所述第三控制器的信息;其中,所述冗余控制器列表用于記錄能夠作為冗余的各控制器的信息。
[0020]本發(fā)明的第三方面,提供一種控制器故障處理方法,包括:
[0021]當M個控制器中作為主控制器的第一控制器發(fā)生故障時,N個接口卡中與所述第一控制器相連、且為所述第一控制器服務(wù)的第一接口卡接收所述第一控制器發(fā)送的第二故障通知消息,所述第二故障通知消息用于通知所述第一接口卡,所述第一控制器出現(xiàn)了故障;
[0022]所述第一接口卡根據(jù)所述第二故障通知消息,控制與所述第一控制器相連的端口進入非激活狀態(tài),以停止與所述第一控制器之間的通信。
[0023]結(jié)合第三方面,在第三方面的第一種可能的實現(xiàn)方式中,在第一接口卡接收所述第一控制器發(fā)送的第二故障通知消息之后,還包括:
[0024]所述第一接口卡接收所述M個控制器中的第二控制器發(fā)送的主控通知消息,所述主控通知消息用于通知所述第一接口卡,所述第二控制器已競爭為新的主控制器;
[0025]所述第一接口卡根據(jù)所述主控通知消息,控制與所述第二控制器相連的端口進入激活狀態(tài),以通過與所述第二控制器相連的端口與所述第二控制器進行通信。
[0026]本發(fā)明的第四方面,提供一種通過接口卡傳輸信息的方法,包括:
[0027]當存儲系統(tǒng)中包括的M個控制器中作為主控制器的第一控制器發(fā)生故障時,所述第一控制器向第一接口卡發(fā)送第二故障通知消息,所述第二故障通知消息用于通知所述第一接口卡,所述第一控制器出現(xiàn)了故障;其中,所述第一接口卡為所述存儲系統(tǒng)中包括N個接口卡中與所述第一控制器相連、且為所述第一控制器服務(wù)的接口卡;
[0028]所述第一接口卡根據(jù)所述第二故障通知消息,控制與所述第一控制器相連的端口進入非激活狀態(tài),以停止與所述第一控制器之間的通信;
[0029]當所述M個控制器中的第二控制器競爭為新的主控制器時,所述第二控制器向所述第一接口卡發(fā)送主控通知消息,所述主控通知消息用于通知所述第一接口卡,所述第二控制器已競爭為新的主控制器;其中,所述第一接口卡與所述第二控制器連接;
[0030]所述第一接口卡根據(jù)所述主控通知消息,控制與所述第二控制器相連的端口進入激活狀態(tài),以通過與所述第二控制器相連的端口與所述第二控制器進行通信。
[0031]本發(fā)明的第五方面,提供一種控制器,包括:
[0032]操作模塊,用于當M個控制器中作為主控制器的第一控制器發(fā)生故障時,令所述控制器競爭為新的主控制器;
[0033]通信模塊,用于至少通過所述N個接口卡中的第一接口卡進行信息中轉(zhuǎn);其中,所述第一接口卡分別與所述第一控制器及所述控制器連接。
[0034]結(jié)合第五方面,在第五方面的第一種可能的實現(xiàn)方式中,所述控制器還包括接收模塊,用于:在所述操作模塊令所述控制器競爭為新的主控制器之前,接收所述第一控制器發(fā)送的第一故障通知消息,所述第一故障通知消息用于通知所述控制器,所述第一控制器出現(xiàn)了故障。
[0035]結(jié)合第五方面或第五方面的第一種可能的實現(xiàn)方式,在第五方面的第二種可能的實現(xiàn)方式中,所述控制器還包括接收模塊和去除模塊;
[0036]所述接收模塊用于在所述操作模塊令控制器競爭為新的主控制器之后,接收所述M個控制器中的第三控制器發(fā)送的第二故障通知消息,所述第二故障通知消息用于通知所述控制器,所述第三控制器出現(xiàn)了故障;
[0037]所述去除模塊用于從冗余控制器列表中去掉所述第三控制器的信息;其中,所述冗余控制器列表用于記錄能夠作為冗余的各控制器的信息。
[0038]本發(fā)明的第六方面,提供一種接口卡,包括:
[0039]接收模塊,用于當M個控制器中作為主控制器的第一控制器發(fā)生故障時,接收所述第一控制器發(fā)送的第二故障通知消息,所述第二故障通知消息用于通知所述接口卡,所述第一控制器出現(xiàn)了故障;其中,所述接口卡為N個接口卡中與所述第一控制器相連、且為所述第一控制器服務(wù)的接口卡;
[0040]控制模塊,用于根據(jù)所述第二故障通知消息,控制與所述第一控制器相連的端口進入非激活狀態(tài),以停止與所述第一控制器之間的通信。
[0041]結(jié)合第六方面,在第六方面的第一種可能的實現(xiàn)方式中,所述接收模塊還用于:在接收所述第一控制器發(fā)送的第二故障通知消息之后,接收所述M個控制器中的第二控制器發(fā)送的主控通知消息,所述主控通知消息用于通知所述接口卡,所述第二控制器已競爭為新的主控制器;
[0042]所述控制模塊還用于:根據(jù)所述主控通知消息,控制與所述第二控制器相連的端口進入激活狀態(tài),以通過與所述第二控制器相連的端口與所述第二控制器進行通信。
[0043]本發(fā)明的第七方面,提供一種存儲系統(tǒng),包括:
[0044]第一控制器,用于當所述存儲系統(tǒng)中包括的M個控制器中作為主控制器的所述第一控制器發(fā)生故障時,向第一接口卡發(fā)送第二故障消息,所述第二故障通知消息用于通知所述第一接口卡,所述第一控制器出現(xiàn)了故障;其中,所述第一接口卡為所述存儲系統(tǒng)中包括的N個接口卡中與所述第一控制器相連、且為所述第一控制器服務(wù)的接口卡;
[0045]所述第一接口卡,用于根據(jù)所述第二故障通知消息,控制與所述第一控制器相連的端口進入非激活狀態(tài),以停止與所述第一控制器之間的通信;
[0046]第二控制器,用于當所述M個控制器中的所述第二控制器競爭為新的主控制器時,向所述第一接口卡發(fā)送主控通知消息,所述主控通知消息用于通知所述第一接口卡,所述第二控制器已競爭為新的主控制器;其中,所述第一接口卡與所述第二控制器連接;
[0047]所述第一接口卡還用于根據(jù)所述主控通知消息,控制與所述第二控制器相連的端口進入激活狀態(tài),以通過與所述第二控制器相連的端口與所述第二控制器進行通信。
[0048]本發(fā)明實施例中,一個接口卡至少與兩個控制器相連,若與一個接口卡相連的其中一個控制器出現(xiàn)了故障,則該接口卡可以停止服務(wù)于該控制器,同時,該接口卡還與其他控制器相連,還能夠繼續(xù)服務(wù)于其他控制器。這樣,即使控制器出現(xiàn)故障,接口卡只要無故障就還可以繼續(xù)為其他控制器服務(wù),可以繼續(xù)使用,相對于現(xiàn)有技術(shù)來說,接口卡中的業(yè)務(wù)不會中斷,并且與該接口卡連接的其他硬件設(shè)備也可以繼續(xù)通過該接口卡傳輸信息,保障了系統(tǒng)的可靠性。
[0049]并且,接口卡和與該接口卡連接的設(shè)備都可以繼續(xù)使用,也在一定程度上節(jié)省了硬件資源,提高了接口卡的利用率。并且,采用本發(fā)明實施例中的技術(shù)方案,可以在一定程度上減少接口卡的數(shù)量,使系統(tǒng)結(jié)構(gòu)趨于簡單,有利于減小系統(tǒng)的體積。
【專利附圖】
【附圖說明】
[0050]圖1為現(xiàn)有技術(shù)中存儲系統(tǒng)架構(gòu)圖;
[0051]圖2為本發(fā)明實施例中存儲系統(tǒng)的簡略架構(gòu)圖;
[0052]圖3為本發(fā)明實施例中存儲系統(tǒng)的一種實現(xiàn)方式的詳細架構(gòu)圖;
[0053]圖4為本發(fā)明實施例中存儲系統(tǒng)的另一種實現(xiàn)方式的簡略架構(gòu)圖;
[0054]圖5為本發(fā)明實施例中通過接口卡傳輸信息的方法的主要流程圖;
[0055]圖6為本發(fā)明實施例中控制器故障處理方法的主要流程圖;
[0056]圖7為本發(fā)明實施例中另一種通過接口卡傳輸信息的方法的主要流程圖;
[0057]圖8為本發(fā)明實施例中控制器的主要結(jié)構(gòu)框圖;
[0058]圖9為本發(fā)明實施例中接口卡的主要結(jié)構(gòu)框圖。
【具體實施方式】
[0059]本發(fā)明實施例提供一種存儲系統(tǒng),包括:M個控制器,用于控制所述系統(tǒng);所述M個控制器中包括一個主控制器及M-1個作為冗余的從控制器,M為正整數(shù)小個接口卡,其中每個接口卡與至少兩個控制器連接,用于將所述控制器傳輸?shù)?、或傳輸給所述控制器的信號進行中轉(zhuǎn),或用于處理來自所述控制器的信號;N為小于等于M的整數(shù)。
[0060]本發(fā)明實施例中,一個接口卡至少與兩個控制器相連,若與一個接口卡相連的其中一個控制器出現(xiàn)了故障,則該接口卡可以停止服務(wù)于該控制器,同時,該接口卡還與其他控制器相連,還能夠繼續(xù)服務(wù)于其他控制器。這樣,即使控制器出現(xiàn)故障,接口卡只要無故障就還可以繼續(xù)為其他控制器服務(wù),可以繼續(xù)使用,相對于現(xiàn)有技術(shù)來說,接口卡中的業(yè)務(wù)不會中斷,并且與該接口卡連接的其他硬件設(shè)備也可以繼續(xù)通過該接口卡傳輸信息,保障了系統(tǒng)的可靠性。
[0061 ] 并且,接口卡和與該接口卡連接的設(shè)備都可以繼續(xù)使用,也在一定程度上節(jié)省了硬件資源,提高了接口卡的利用率。并且,采用本發(fā)明實施例中的技術(shù)方案,可以在一定程度上減少接口卡的數(shù)量,使系統(tǒng)結(jié)構(gòu)趨于簡單,有利于減小系統(tǒng)的體積。
[0062]為使本發(fā)明實施例的目的、技術(shù)方案和優(yōu)點更加清楚,下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完整地描述,顯然,所描述的實施例是本發(fā)明一部分實施例,而不是全部的實施例。基于本發(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有作出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。
[0063]另外,本文中術(shù)語“系統(tǒng)”和“網(wǎng)絡(luò)”在本文中常被可互換使用。本文中術(shù)語“和/或”,僅僅是一種描述關(guān)聯(lián)對象的關(guān)聯(lián)關(guān)系,表示可以存在三種關(guān)系,例如,A和/或B,可以表示:單獨存在A,同時存在A和B,單獨存在B這三種情況。另外,本文中字符“/”,如無特殊說明,一般表示前后關(guān)聯(lián)對象是一種“或”的關(guān)系。
[0064]下面結(jié)合說明書附圖對本發(fā)明實施例作進一步詳細描述。
[0065]請參見圖2,本發(fā)明實施例提供一種存儲系統(tǒng),所述系統(tǒng)可以包括M個控制器201和N個接口卡202。圖2以M = 2、N = I為例。
[0066]M個控制器201用于控制所述系統(tǒng)。其中,M個控制器201中包括有一個主控制器201和M-1個作為冗余的從控制器201,M為正整數(shù)。S卩,M-1個從控制器201是作為主控制器201的備份,當主控制器201故障時可以由其中一個從控制器201繼續(xù)作為主控制器201來工作,使系統(tǒng)工作得以延續(xù)。
[0067]N個接口卡202,其中的每個接口卡202與M個控制器201中的至少兩個控制器201連接,接口卡202用于將與該接口卡202連接的控制器201傳輸?shù)摹⒒騻鬏斀o與該接口卡202連接的控制器201的信號進行中轉(zhuǎn),或者,接口卡202也用于處理來自與該接口卡202連接的控制器201的信號。
[0068]N為小于等于M的整數(shù),即,在所述系統(tǒng)中,接口卡202的數(shù)量小于等于控制器201的數(shù)量。本發(fā)明實施例中,一個接口卡202對應(yīng)多個控制器201 (即與至少兩個控制器201連接),一個控制器201可以只對應(yīng)一個接口卡202,或者,一個控制器201也可以對應(yīng)多個接口卡202。
[0069]接口卡202上可以具有多種類型的端口,能夠與不同硬件模塊相連。則控制器201所發(fā)出的信號能夠通過接口卡202進行中轉(zhuǎn)。例如,控制器201發(fā)送給接口卡202的信號的格式為格式1,若控制器201要將該信號發(fā)送給硬件模塊1,而硬件模塊I對應(yīng)的信號格式為格式2,則接口卡202可以將接收的信號的格式由格式I轉(zhuǎn)換為格式2后再發(fā)送給硬件模塊1,同樣的,由硬件模塊I發(fā)送給控制器201的信號也是通過接口卡202中轉(zhuǎn)。
[0070]控制器201還可以向接口卡202發(fā)送信號,例如用于控制接口卡202的信號,或者是向接口卡202告知控制器201的狀態(tài)的信號等等,接口卡202可以處理這些信號。同樣的,接口卡202也可以向控制器201發(fā)送信號,例如是用于通知控制器201接口卡202的狀態(tài)的彳目號等等。
[0071]可選的,請參見圖3,接口卡202和控制器201之間可以通過PCIE (PeripheralComponent Interconnect Express,快捷外設(shè)互連)總線相連。圖3以M = 2、N = I為例。
[0072]具體的,對于一個接口卡202和與其連接的一個控制器201來說,其之間連接的PCIE總線可以有兩條,分別是PCIE TX和PCIE RX,分別稱為PCIE發(fā)送總線和PCIE接收總線,這里的發(fā)送和接收都是針對控制器201來說的。通過PCIE TX,控制器201可以高速發(fā)送信號,通過PCIE RX,控制器201可以接收信號。在圖3中有兩個控制器201,a表示PCIETX, b 表示 PCIE RXo
[0073]本發(fā)明實施例中,PCIE TX和PCIE RX可根據(jù)實際業(yè)務(wù)要求設(shè)計,可以是X4、X8、X16等不同標準的帶寬,是控制器201與接口卡202之間的主要業(yè)務(wù)數(shù)據(jù)通道.
[0074]可選的,請仍然參見圖3,接口卡202和控制器201之間,還可以連接有串行控制總線和/或并行控制總線,用于傳輸控制信號。圖3中以同時連接有串行控制總線和并行控制總線為例,在圖3中,c表示串行控制總線,d表示并行控制總線。
[0075]串行控制總線傳輸?shù)氖堑退傩盘枺饕糜诳刂破?01與接口卡202之間實施一些相互握手的動作,比如可用于控制器201讀取接口卡202類型、狀態(tài)、告警信息等,以及用于接口卡202獲取控制器201的狀態(tài)信息,例如控制器201的主從狀態(tài)信息,即控制器201究竟是主控制器201還是從控制器201,等等。
[0076]并行控制總線傳輸?shù)氖歉咚傩盘?,主要用于控制?01控制接口卡202狀態(tài)和升級接口卡202的固件、版本等等,包括一般的基本控制信號,如在位信號、上電使能、中斷信號、復(fù)位信號等等。
[0077]總的來說,除了 PCIE是國際標準的協(xié)議方式,串行控制總線和并行控制總線都是可以按照所需功能來自定義的總線,不限于某種固定形式。
[0078]可選的,請仍參見圖3,N個接口卡202中的每個接口卡202都可以與服務(wù)器相連,這樣所述服務(wù)器與所述系統(tǒng)之間可以通過接口卡202實現(xiàn)信息交互。
[0079]可選的,請仍參見圖3,所述存儲系統(tǒng)還可以包括至少一個存儲設(shè)備,其中每個存儲設(shè)備與至少一個接口卡202相連,這樣,控制器201和存儲設(shè)備就可以通過相應(yīng)的接口卡202進行信息交互。存儲設(shè)備例如可以是硬盤,或者也可以是其他類型的用于存儲信息的設(shè)備。圖3中是以一個接口卡202、及該接口卡202連接了兩個存儲設(shè)備為例。
[0080]本發(fā)明實施例中,每個接口卡202中都可以具有控制模塊,接口卡202的功能通過所述控制模塊實現(xiàn)。
[0081]接口卡202中的控制模塊是可以處理、控制、轉(zhuǎn)換或切換控制器201與接口卡202之間的信號的模塊,可以是一個或多個芯片或外部板載線路,可根據(jù)控制器201的狀態(tài)或命令實現(xiàn)接口卡202上與控制器201連接的端口的狀態(tài)變化和切換,也可實現(xiàn)將信號從PCIE協(xié)議格式到其他各種協(xié)議格式的轉(zhuǎn)化,如從PCIE協(xié)議格式轉(zhuǎn)換為FC(Fibre Channel,光纖通道)協(xié)議格式、從PCIE協(xié)議格式轉(zhuǎn)換為GE (Gigabit Ethernet,千兆以太網(wǎng)接口)協(xié)議格式、從PCIE協(xié)議格式轉(zhuǎn)換為SAS (Serial Attached SCSI,串行連接SCSI)協(xié)議格式,等等??刂颇K還可以實現(xiàn)鏡像(NT)功能,以與控制器201實時備份數(shù)據(jù)。
[0082]另外,在圖3中可以看出,在兩個控制器201之間還有連接線,例如在兩個控制器201之間,可以具有用于傳輸鏡像數(shù)據(jù)的連接線,其中,鏡像數(shù)據(jù)可以是指備份數(shù)據(jù),可以具有用于傳輸心跳信息的連接線,另外還可以具有串行控制總線和/或并行控制總線。
[0083]本發(fā)明實施例中,若M>2,則每兩個控制器201之間都可以具有連接線,例如都可以具有用于傳輸鏡像數(shù)據(jù)的連接線和用于傳輸心跳信息的連接線,另外還可以具有串行控制總線和/或并行控制總線。
[0084]兩個控制器201之間通過鏡像和心跳進行狀態(tài)信息傳遞,實時監(jiān)控對方狀態(tài)和業(yè)務(wù)特征。
[0085]如上的圖2和圖3中所示出的均是比較常用的雙控存儲控制器與一個接口卡202冗余的架構(gòu)設(shè)計。業(yè)務(wù)正常運行時,業(yè)務(wù)流由主控制器201通過PCIE總線與接口卡202進行數(shù)據(jù)傳輸,接口卡202內(nèi)一般有switch (轉(zhuǎn)換)芯片會將PCIE格式的消息轉(zhuǎn)化成其他協(xié)議總線格式的消息,如FC協(xié)議、GE協(xié)議、SAS協(xié)議等等,接口卡202可以與前端的服務(wù)器端口或后端的磁盤等設(shè)備連接。當其中的主控制器201出現(xiàn)故障時,會通過控制器201之間的心跳信號或掉電中斷信號通知從控制器201,則從控制器201可競爭為主控制器201。因為接口卡202與兩個控制器201都有連接,則接口卡202控制端口狀態(tài)進行相應(yīng)的切換,接口卡202可繼續(xù)工作,為新的主控制器201服務(wù),使得接口卡202的業(yè)務(wù)得以繼續(xù),與接口卡202前端的服務(wù)器或后端的級聯(lián)框等業(yè)務(wù)得以保持。
[0086]請參見圖4,提供另一種可能的所述存儲系統(tǒng)的簡略架構(gòu)示意圖。圖4中以M =
2、N = 2為例。從圖4中可以看出,每個控制器201都可以連接兩個接口卡202。
[0087]例如,首先是左邊的控制器201作為主控制器201,該主控制器201所使用的是左邊的接口卡202。當左邊的控制器201故障時,該控制器201會通知右邊的控制器201,當然該控制器201也會通知與其連接的各接口卡202,以便各接口卡改變相應(yīng)的端口狀態(tài)。右邊的控制器201競爭為主控制器201。此時,右邊的控制器201可以繼續(xù)選擇使用左邊的接口卡202,或者可以選擇使用右邊的接口卡202,或者也可以選擇同時使用左邊的接口卡202和右邊的接口卡202,具體如何選擇可根據(jù)不同控制器201的不同需求,或者可以根據(jù)預(yù)先的設(shè)定規(guī)則,或者也可以隨機選擇,等等。
[0088]圖4是多個控制器201與多個接口卡202的冗余設(shè)計架構(gòu),接口卡202與多個控制器201以交叉的方式實現(xiàn)冗余設(shè)計,交叉連接的冗余方式使整個接口卡202的業(yè)務(wù)的可靠性更好,在有控制器201和接口卡202同時故障時,只要還有沒出現(xiàn)故障的控制器201和接口卡202,都可以使接口卡202前后端的業(yè)務(wù)繼續(xù)進行,避免業(yè)務(wù)中斷,系統(tǒng)可靠性得到較大的提升。
[0089]綜上,一個接口卡202可以連接多個控制器201,從而能夠為多個控制器201服務(wù)。例如按照圖2的例子,首先左邊的控制器201為主控制器201,接口卡202為左邊的控制器201服務(wù)。如果主控制器201出現(xiàn)了故障,則右邊的從控制器201可以競爭為從控制器201,接口卡202可以繼續(xù)為右邊的控制器201服務(wù),不會因為一個控制器201出現(xiàn)故障就連帶與該控制器201連接的接口卡202也不能使用,盡量保證接口卡202中的業(yè)務(wù)的連續(xù)性,使與接口卡連接的其他設(shè)備可以繼續(xù)使用,提高系統(tǒng)的可靠性,也盡量節(jié)省了硬件資源,提高接口卡202的利用率。
[0090]請參見圖5,基于同一發(fā)明構(gòu)思,本發(fā)明實施例提供一種通過接口卡傳輸信息的方法,所述方法可以應(yīng)用于圖2、圖3和圖4所示出的存儲系統(tǒng)中。所述方法的主要流程描述如下。
[0091 ] 步驟501:當M個控制器中作為主控制器的第一控制器發(fā)生故障時,所述M個控制器中的第二控制器競爭為新的主控制器。其中,所述M個控制器201中包括一個主控制器201及M-1個作為冗余的從控制器201,所述M個控制器201屬于存儲系統(tǒng),所述存儲系統(tǒng)中還包括N個接口卡202,其中每個接口卡202與至少兩個控制器201連接,用于將所述控制器201傳輸?shù)?、或傳輸給所述控制器201的信號進行中轉(zhuǎn),或用于處理來自所述控制器201的信號;N為小于等于M的整數(shù)。
[0092]以圖2和圖3中的系統(tǒng)架構(gòu)為例。例如所述第一控制器為圖中左邊的控制器201,所述第二控制器為圖中右邊的控制器201。
[0093]所述存儲系統(tǒng)要開始工作時,首先要上電,上電之后所述系統(tǒng)進行初始化,初始化完成后主控制器201偵測接口卡202在位信號,即判斷接口卡202是否已經(jīng)插入正確的插槽。如果接口卡202不在位,則需要插入接口卡202,如果能偵測到接口卡在位信號被拉低(因為通常是低電平有效),則通過驅(qū)動程序判斷接口卡202的類型的二進制值,即判斷接口卡202的類型是否是系統(tǒng)所支持的類型。如果是接口卡202的類型是非系統(tǒng)支持的類型,則通過所述驅(qū)動程序發(fā)出告警信息,接口卡202上的紅燈點亮,用戶可以重新插入所述系統(tǒng)支持的接口卡202。
[0094]在接口卡202識別到之后(即接口卡202已插入正確的插槽、接口卡202無故障、且接口卡202的類型為系統(tǒng)支持的類型),所述系統(tǒng)給接口卡202發(fā)送上電使能信號、時鐘信號和復(fù)位信號,以使接口卡202開始工作。發(fā)送完畢后,接口卡202與主控制器201自協(xié)商端口,所謂的協(xié)商端口,是指通過接口卡202與主控制器201的協(xié)商,確定接口卡202和主控制器201之間的傳輸通道的傳輸帶寬、傳輸速率等信息。在協(xié)商完畢后,接口卡202和主控制器201就可以進行通信。此時的主控制器201例如是指圖2中左邊的控制器201。
[0095]可選的,本發(fā)明實施例中,在所述M個控制器201中的所述第二控制器競爭為新的主控制器201之前,還可以包括:
[0096]所述第二控制器接收所述第一控制器發(fā)送的第一故障通知消息,所述第一故障通知消息用于通知所述第二控制器,所述第一控制器出現(xiàn)了故障。
[0097]當主控制器201故障時,主控制器201通過掉電中斷信號或心跳信號通知從控制器201,主控制器201的故障信息,即向從控制器201發(fā)送所述第一故障通知消息,則從控制器201競爭為主控制器201,此時新的主控制器201例如是指圖2中右邊的控制器201。同時,原主控制器201也會將故障信息通知接口卡202,或接口卡202可周期性、定時或隨機地自動探知各控制器201的狀態(tài)。
[0098]此時右邊的控制器201通過與接口卡202之間的串行控制總線或并行控制總線通知接口卡202,該控制器201已經(jīng)競爭為主控制器201,即控制器201之間發(fā)生了主從切換事件,接口卡202與控制器201之間連接的端口的工作狀態(tài)也需要進行切換,即,接口卡202與左邊的控制器201之間連接的端口可以停止工作,即令接口卡202與左邊的控制器201之間連接的端口進入非激活狀態(tài),或進入鏡像狀態(tài),接口卡202與右邊的控制器201之間連接的端口可以開始工作,即令接口卡202與右邊的控制器201之間連接的端口進入激活狀態(tài)??刂平涌诳?02上的端口進入非激活狀態(tài)、鏡像狀態(tài)或激活狀態(tài),具體可以是由接口卡202中的控制模塊來執(zhí)行。
[0099]控制端口進入鏡像狀態(tài),是指可以控制端口傳輸鏡像數(shù)據(jù),即備份數(shù)據(jù),此時,進入鏡像狀態(tài)的端口相當于成為另一個端口的備份端口。
[0100]進一步的,本發(fā)明實施例中,在所述M個控制器201中的所述第二控制器競爭為新的主控制器201之后,還可以包括:
[0101 ] 所述第二控制器接收所述M個控制器201中的第三控制器發(fā)送的第二故障通知消息,所述第二故障通知消息用于通知所述第二控制器,所述第三控制器出現(xiàn)了故障;
[0102] 所述第二控制器從冗余控制器列表中去掉所述第三控制器的信息;其中,所述冗余控制器列表用于記錄能夠作為冗余的各控制器201的信息。
[0103]例如,所述系統(tǒng)中共包括有三個控制器201,分別為控制器1、控制器2和控制器3,初始時,控制器I為主控制器201,控制器2和控制器3為從控制器201。
[0104]當控制器I出現(xiàn)故障時,控制器2競爭為了主控制器201,則此時控制器3仍為從控制器201。
[0105]在控制器2工作時,若控制器3也出現(xiàn)了故障,則控制器3會通過掉電中斷信號或心跳信號通知控制器2,即向控制器2發(fā)送所述第二故障通知消息,控制器2可以將控制器3的信息從所述冗余控制器列表中去除。同時控制器3也會將故障信息通知接口卡202,或接口卡202可周期性、定時或隨機地自動探知各控制器201的狀態(tài),則接口卡202會控制與控制器3之間的端口進入非激活狀態(tài)或鏡像狀態(tài)。
[0106]本發(fā)明實施例中,當從控制器201故障時,主控制器201與接口卡202之間的業(yè)務(wù)不會受到影響。若所述系統(tǒng)中還有其他的從控制器201,例如還有第四控制器。則當作為主控制器201的控制器2出現(xiàn)故障時,控制器2不會向有故障的控制器3發(fā)送故障信息,即當需要主從切換時,不會選擇有故障的從控制器201,而會選擇無故障的從控制器201。當然,若所述系統(tǒng)中再沒有其他的從控制器201,那么如果作為主控制器201的控制器2也故障,所述系統(tǒng)可能會停止運行。
[0107]當控制器3的故障恢復(fù)時,控制器3可以通過心跳信號等方式通知控制器2,則控制器2會重新將控制器3列入可以進行主從切換的選擇范圍,即重新將控制器3的信息加入所述冗余控制器列表。當然,當從控制器201的故障恢復(fù)時,從控制器201也可以通知接口卡 202。
[0108]本發(fā)明實施例中,控制器201與接口卡202之間可以互通信息。例如,控制器201可以實時、定時、或在有狀態(tài)轉(zhuǎn)換時向接口卡202發(fā)送通知消息,以告知接口卡202控制器201當前的狀態(tài),或者,接口卡202也可以實時、定時、或隨機地向控制器201發(fā)送探測消息,以探知控制器201當前的狀態(tài)。當然,接口卡202可以實時、定時、或在有狀態(tài)轉(zhuǎn)換時向控制器201發(fā)送通知消息,以告知控制器201接口卡202當前的狀態(tài),或者,控制器201也可以實時、定時、或隨機地向接口卡202發(fā)送探測消息,以探知接口卡202當前的狀態(tài)。
[0109]步驟502:所述第二控制器至少通過所述N個接口卡中的第一接口卡進行信息中轉(zhuǎn);其中,所述第一接口卡分別與所述第一控制器及所述第二控制器連接。
[0110]當所述第一控制器出現(xiàn)故障時,所述第二控制器競爭為主控制器201。在圖2和圖3中,所述第一控制器和所述第二控制器連接到同一個接口卡202,雖然所述第一控制器出現(xiàn)了故障,該接口卡202還可以繼續(xù)使用,則所述第二控制器可以繼續(xù)使用該接口卡202,這里將該接口卡202稱為所述第一接口卡。
[0111]請參見圖6,基于同一發(fā)明構(gòu)思,本發(fā)明實施例提供一種控制器故障處理方法,所述方法可以應(yīng)用于圖2、圖3和圖4所示出的存儲系統(tǒng)中。所述方法的主要流程描述如下。
[0112]步驟601:當M個控制器中作為主控制器的第一控制器發(fā)生故障時,N個接口卡中與所述第一控制器相連、且為所述第一控制器服務(wù)的第一接口卡接收所述第一控制器發(fā)送的第二故障通知消息,所述第二故障通知消息用于通知所述第一接口卡,所述第一控制器出現(xiàn)了故障。其中,所述M個控制器201中包括一個主控制器201及M-1個作為冗余的從控制器201,所述M個控制器201和所述N個接口卡202屬于存儲系統(tǒng),其中每個接口卡202與其中的至少兩個控制器201連接,用于將所述控制器201傳輸?shù)?、或傳輸給所述控制器201的信號進行中轉(zhuǎn),或用于處理來自所述控制器201的信號;N為小于等于M的整數(shù)。
[0113]以圖2和圖3為例,例如左邊的控制器201為主控制器201,當它出現(xiàn)故障時,可以向從控制器201發(fā)送第一故障通知消息,同時,也可以向接口卡202發(fā)送所述第二故障通知消息。具體的過程在介紹圖2-圖5時已有描述,此處不多贅述。
[0114]可選的,本發(fā)明實施例中,在所述第一接口卡接收所述第一控制器發(fā)送的所述第二故障通知消息之后,還可以包括:
[0115]所述第一接口卡接收所述M個控制器201中的第二控制器發(fā)送的主控通知消息,所述主控通知消息用于通知所述第一接口卡,所述第二控制器已競爭為新的主控制器201 ;
[0116]所述第一接口卡根據(jù)所述主控通知消息,控制與所述第二控制器相連的端口進入激活狀態(tài),以通過與所述第二控制器相連的端口與所述第二控制器進行通信。
[0117]以圖2和圖3為例,例如左邊的控制器201為主控制器201,當它出現(xiàn)故障時,可以向從控制器201發(fā)送第一故障通知消息,則從控制器201競爭為新的主控制器201,新的主控制器201會向所述第一接口卡發(fā)送所述主控通知消息,所述第一接口卡接收到所述主控通知消息后,則會激活與新的主控制器201之間的端口,以與新的主控制器201進行通信,具體的過程在介紹圖2-圖5時已有描述,此處不多贅述。
[0118]步驟602:所述第一接口卡根據(jù)所述第二故障通知消息,控制與所述第一控制器相連的端口進入非激活狀態(tài),以停止與所述第一控制器之間的通信。
[0119]接口卡202在接收到所述第二故障通知消息時,可以控制與左邊的控制器201相連的端口進入非激活狀態(tài),這樣就可以停止與左邊的控制器201之間的通信。
[0120]當然,在右邊的控制器201競爭為主控制器201后,也可以向接口卡202發(fā)送主控通知消息,接口卡202可以控制與右邊的控制器201相連的端口進入激活狀態(tài),從而與右邊的控制器201進行通信。
[0121]具體的實現(xiàn)過程在介紹圖2-圖5時已有描述,此處不多贅述。
[0122]請參見圖7,基于同一發(fā)明構(gòu)思,本發(fā)明實施例提供另一種通過接口卡傳輸信息的方法,所述方法可以應(yīng)用于圖2、圖3和圖4所示出的存儲系統(tǒng)中。所述方法的主要流程描述如下。
[0123]步驟701:當存儲系統(tǒng)中包括的M個控制器中作為主控制器的第一控制器發(fā)生故障時,所述第一控制器向第一接口卡發(fā)送第二故障通知消息,所述第二故障通知消息用于通知所述第一接口卡,所述第一控制器出現(xiàn)了故障;其中,所述第一接口卡為所述存儲系統(tǒng)中包括N個接口卡中與所述第一控制器相連、且為所述第一控制器服務(wù)的接口卡。
[0124]以圖2和圖3為例,例如左邊的控制器201為主控制器201,當它出現(xiàn)故障時,可以向從控制器201發(fā)送第一故障通知消息,同時,也可以向接口卡202發(fā)送所述第二故障通知消息。具體的過程在介紹圖2-圖5時已有描述,此處不多贅述。
[0125]步驟702:所述第一接口卡根據(jù)所述第二故障通知消息,控制與所述第一控制器相連的端口進入非激活狀態(tài),以停止與所述第一控制器之間的通信。
[0126]接口卡202在接收到所述第二故障通知消息時,可以控制與左邊的控制器201相連的端口進入非激活狀態(tài),這樣就可以停止與左邊的控制器201之間的通信。
[0127]步驟703:當所述M個控制器中的第二控制器競爭為新的主控制器時,所述第二控制器向所述第一接口卡發(fā)送主控通知消息,所述主控通知消息用于通知所述第一接口卡,所述第二控制器已競爭為新的主控制器;其中,所述第一接口卡與所述第二控制器連接。
[0128]步驟704:所述第一接口卡根據(jù)所述主控通知消息,控制與所述第二控制器相連的端口進入激活狀態(tài),以通過與所述第二控制器相連的端口與所述第二控制器進行通信。
[0129]繼續(xù)以圖2和圖3為例,例如左邊的控制器201為主控制器201,當它出現(xiàn)故障時,可以向從控制器201發(fā)送所述第一故障通知消息,則從控制器201競爭為新的主控制器201,新的主控制器201會向所述第一接口卡發(fā)送所述主控通知消息,所述第一接口卡接收到所述主控通知消息后,則會激活與新的主控制器201之間的端口,以與新的主控制器201進行通信,具體的過程在介紹圖2-圖5時已有描述,此處不多贅述。
[0130]請參見圖8,基于同一發(fā)明構(gòu)思,本發(fā)明實施例提供一種控制器,所述控制器可以是圖2-圖4所示的存儲系統(tǒng)中的控制器201,即也是圖5-圖7流程中所述的控制器201,特別的,該控制器201可以是圖5-圖7流程中所述的第二控制器。該控制器201可以包括操作模塊801和通信模塊802。
[0131]操作模塊801用于當M個控制器201中作為主控制器201的第一控制器發(fā)生故障時,令所述控制器201競爭為新的主控制器201。其中,所述M個控制器201中包括一個主控制器201及M-1個作為冗余的從控制器201,所述M個控制器201屬于所述存儲系統(tǒng),所述存儲系統(tǒng)中還包括N個接口卡202,其中每個接口卡202與至少兩個控制器201連接,用于將所述控制器201傳輸?shù)?、或傳輸給所述控制器201的信號進行中轉(zhuǎn),或用于處理來自所述控制器201的信號;N為小于等于M的整數(shù)。
[0132]通信模塊802用于至少通過所述N個接口卡202中的第一接口卡進行信息中轉(zhuǎn);其中,所述第一接口卡分別與所述第一控制器及所述控制器連接。
[0133]可選的,本發(fā)明實施例中,控制器201還可以包括接收模塊,用于:在操作模塊801令所述控制器201競爭為新的主控制器201之前,接收所述第一控制器發(fā)送的第一故障通知消息,所述第一故障通知消息用于通知所述控制器201,所述第一控制器出現(xiàn)了故障。
[0134]可選的,本發(fā)明實施例中,控制器201還可以包括所述接收模塊和去除模塊;
[0135]所述接收模塊用于在操作模塊801令控制器201競爭為新的主控制器201之后,接收所述M個控制器201中的第三控制器發(fā)送的第二故障通知消息,所述第二故障通知消息用于通知所述控制器201,所述第三控制器出現(xiàn)了故障;
[0136]所述去除模塊用于從冗余控制器列表中去掉所述第三控制器的信息;其中,所述冗余控制器列表用于記錄能夠作為冗余的各控制器201的信息。
[0137]請參見圖9,基于同一發(fā)明構(gòu)思,本發(fā)明實施例提供一種接口卡,所述接口卡可以是圖2-圖4所示的存儲系統(tǒng)中的接口卡202,即也是圖5-圖7流程中所述的接口卡202,特別的,該接口卡202可以是圖5-圖7流程中所述的第一接口卡。該接口卡202可以包括接收模塊901和控制模塊902。
[0138]接收模塊901用于當M個控制器201中作為主控制器201的第一控制器發(fā)生故障時,接收所述第一控制器發(fā)送的第二故障通知消息,所述第二故障通知消息用于通知所述接口卡202,所述第一控制器出現(xiàn)了故障;其中,所述接口卡202為N個接口卡202中與所述第一控制器相連、且為所述第一控制器服務(wù)的接口卡202 ;
[0139]控制模塊902用于根據(jù)所述第二故障通知消息,控制與所述第一控制器相連的端口進入非激活狀態(tài),以停止與所述第一控制器之間的通信。
[0140]可選的,本發(fā)明實施例中,接收模塊901還用于:在接收所述第一控制器發(fā)送的第二故障通知消息之后,接收所述M個控制器201中的第二控制器發(fā)送的主控通知消息,所述主控通知消息用于通知所述接口卡202,所述第二控制器已競爭為新的主控制器201 ;控制模塊902還用于:根據(jù)所述主控通知消息,控制與所述第二控制器相連的端口進入激活狀態(tài),以通過與所述第二控制器相連的端口與所述第二控制器進行通信。
[0141]基于同一發(fā)明構(gòu)思,本發(fā)明實施例還提供一種存儲系統(tǒng),所述存儲系統(tǒng)可以是圖2-圖4所示的存儲系統(tǒng),即也是圖5-圖7流程中所述的存儲系統(tǒng)。所述存儲系統(tǒng)可以包括第一控制器、第一接口卡和第二控制器。本發(fā)明實施例中,所述存儲系統(tǒng)中可以包括多個控制器201和多個接口卡202,這里只是以兩個控制器201 (即所述第一控制器和所述第二控制器)和一個接口卡202 (即所述第一接口卡)為例。
[0142]所述第一控制器,用于當所述存儲系統(tǒng)中包括的M個控制器201中作為主控制器201的所述第一控制器發(fā)生故障時,向所述第一接口卡發(fā)送第二故障消息,所述第二故障通知消息用于通知所述第一接口卡,所述第一控制器出現(xiàn)了故障;其中,所述第一接口卡為所述存儲系統(tǒng)中包括的N個接口卡202中與所述第一控制器相連、且為所述第一控制器服務(wù)的接口卡;
[0143]所述第一接口卡,用于根據(jù)所述第二故障通知消息,控制與所述第一控制器相連的端口進入非激活狀態(tài),以停止與所述第一控制器之間的通信;
[0144]所述第二控制器,用于當所述M個控制器201中的所述第二控制器競爭為新的主控制器201時,向所述第一接口卡發(fā)送主控通知消息,所述主控通知消息用于通知所述第一接口卡,所述第二控制器已競爭為新的主控制器201 ;其中,所述第一接口卡與所述第二控制器連接;
[0145]所述第一接口卡還用于根據(jù)所述主控通知消息,控制與所述第二控制器相連的端口進入激活狀態(tài),以通過與所述第二控制器相連的端口與所述第二控制器進行通信。
[0146]本發(fā)明實施例提供一種存儲系統(tǒng),包括:M個控制器201,用于控制所述系統(tǒng);所述M個控制器201中包括一個主控制器201及M-1個作為冗余的從控制器201,M為正整數(shù);N個接口卡202,其中每個接口卡202與至少兩個控制器201連接,用于將所述控制器201傳輸?shù)?、或傳輸給所述控制器201的信號進行中轉(zhuǎn),或用于處理來自所述控制器201的信號;N為小于等于M的整數(shù)。
[0147]本發(fā)明實施例中,一個接口卡202至少與兩個控制器201相連,若與一個接口卡202相連的其中一個控制器201出現(xiàn)了故障,則該接口卡202可以停止服務(wù)于該控制器201,同時,該接口卡202還與其他控制器201相連,還能夠繼續(xù)服務(wù)于其他控制器201。這樣,即使控制器201出現(xiàn)故障,接口卡202只要無故障就還可以繼續(xù)為其他控制器201服務(wù),可以繼續(xù)使用,相對于現(xiàn)有技術(shù)來說,接口卡202中的業(yè)務(wù)不會中斷,并且與該接口卡202連接的其他硬件設(shè)備也可以繼續(xù)通過該接口卡202傳輸信息,保障了系統(tǒng)的可靠性。
[0148]并且,接口卡202和與該接口卡202連接的設(shè)備都可以繼續(xù)使用,也在一定程度上節(jié)省了硬件資源,提高了接口卡202的利用率。并且,采用本發(fā)明實施例中的技術(shù)方案,可以在一定程度上減少接口卡202的數(shù)量,使系統(tǒng)結(jié)構(gòu)趨于簡單,有利于減小系統(tǒng)的體積。
[0149]所屬領(lǐng)域的技術(shù)人員可以清楚地了解到,為描述的方便和簡潔,僅以上述各功能模塊的劃分進行舉例說明,實際應(yīng)用中,可以根據(jù)需要而將上述功能分配由不同的功能模塊完成,即將裝置的內(nèi)部結(jié)構(gòu)劃分成不同的功能模塊,以完成以上描述的全部或者部分功能。上述描述的系統(tǒng),裝置和單元的具體工作過程,可以參考前述方法實施例中的對應(yīng)過程,在此不再贅述。
[0150]在本申請所提供的幾個實施例中,應(yīng)該理解到,所揭露的系統(tǒng),裝置和方法,可以通過其它的方式實現(xiàn)。例如,以上所描述的裝置實施例僅僅是示意性的,例如,所述模塊或單元的劃分,僅僅為一種邏輯功能劃分,實際實現(xiàn)時可以有另外的劃分方式,例如多個單元或組件可以結(jié)合或者可以集成到另一個系統(tǒng),或一些特征可以忽略,或不執(zhí)行。另一點,所顯示或討論的相互之間的耦合或直接耦合或通信連接可以是通過一些接口,裝置或單元的間接耦合或通信連接,可以是電性,機械或其它的形式。
[0151]所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個地方,或者也可以分布到多個網(wǎng)絡(luò)單元上??梢愿鶕?jù)實際的需要選擇其中的部分或者全部單元來實現(xiàn)本實施例方案的目的。
[0152]另外,在本申請各個實施例中的各功能單元可以集成在一個處理單元中,也可以是各個單元單獨物理存在,也可以兩個或兩個以上單元集成在一個單元中。上述集成的單元既可以采用硬件的形式實現(xiàn),也可以采用軟件功能單元的形式實現(xiàn)。
[0153]所述集成的單元如果以軟件功能單元的形式實現(xiàn)并作為獨立的產(chǎn)品銷售或使用時,可以存儲在一個計算機可讀取存儲介質(zhì)中?;谶@樣的理解,本申請的技術(shù)方案本質(zhì)上或者說對現(xiàn)有技術(shù)做出貢獻的部分或者該技術(shù)方案的全部或部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計算機軟件產(chǎn)品存儲在一個存儲介質(zhì)中,包括若干指令用以使得一臺計算機設(shè)備(可以是個人計算機,服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)或處理器(processor)執(zhí)行本申請各個實施例所述方法的全部或部分步驟。而前述的存儲介質(zhì)包括:U盤、移動硬盤、只讀存儲器(ROM, Read-Only Memory)、隨機存取存儲器(RAM, Random Access Memory)、磁碟或者光盤等各種可以存儲程序代碼的介質(zhì)。
[0154]以上所述,以上實施例僅用以對本申請的技術(shù)方案進行了詳細介紹,但以上實施例的說明只是用于幫助理解本發(fā)明的方法及其核心思想,不應(yīng)理解為對本發(fā)明的限制。本【技術(shù)領(lǐng)域】的技術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi),可輕易想到的變化或替換,都應(yīng)涵蓋在本發(fā)明的保護范圍之內(nèi)。
【權(quán)利要求】
1.一種存儲系統(tǒng),其特征在于,包括: M個控制器,用于控制所述系統(tǒng);所述M個控制器中包括一個主控制器及M-1個作為冗余的從控制器,M為正整數(shù); N個接口卡,其中每個接口卡與至少兩個控制器連接,用于將所述控制器傳輸?shù)男盘枴⒒騻鬏斀o所述控制器的信號進行中轉(zhuǎn),或用于處理來自所述控制器的信號;N為小于等于M的整數(shù)。
2.如權(quán)利要求1所述的方法,其特征在于,所述接口卡與所述控制器通過快捷外設(shè)互連PCIE總線相連。
3.如權(quán)利要求2所述的方法,其特征在于,所述接口卡與所述控制器之間還連接有串行控制總線和/或并行控制總線,用于傳輸控制信號。
4.如權(quán)利要求1-3任一所述的方法,其特征在于,所述系統(tǒng)還包括至少一個存儲設(shè)備,其中每個存儲設(shè)備與至少一個接口卡相連,以使所述控制器與所述存儲設(shè)備通過相應(yīng)的接口卡進行信息交互。
5.—種通過接口卡傳輸信息的方法,其特征在于,包括: 當M個控制器中作為主控制器的第一控制器發(fā)生故障時,所述M個控制器中的第二控制器競爭為新的主控制器; 所述第二控制器至少通過所述N個接口卡中的第一接口卡進行信息中轉(zhuǎn);其中,所述第一接口卡分別與所述第一控制器及所述第二控制器連接。
6.如權(quán)利要求5所述的方法,其特征在于,在所述M個控制器中的第二控制器競爭為新的主控制器之前,還包括: 所述第二控制器接收所述第一控制器發(fā)送的第一故障通知消息,所述第一故障通知消息用于通知所述第二控制器,所述第一控制器出現(xiàn)了故障。
7.如權(quán)利要求5或6所述的方法,其特征在于,在所述M個控制器中的第二控制器競爭為新的主控制器之后,還包括: 所述第二控制器接收所述M個控制器中的第三控制器發(fā)送的第二故障通知消息,所述第二故障通知消息用于通知所述第二控制器,所述第三控制器出現(xiàn)了故障; 所述第二控制器從冗余控制器列表中去掉所述第三控制器的信息;其中,所述冗余控制器列表用于記錄能夠作為冗余的各控制器的信息。
8.—種控制器故障處理方法,其特征在于,包括: 當M個控制器中作為主控制器的第一控制器發(fā)生故障時,N個接口卡中與所述第一控制器相連、且為所述第一控制器服務(wù)的第一接口卡接收所述第一控制器發(fā)送的第二故障通知消息,所述第二故障通知消息用于通知所述第一接口卡,所述第一控制器出現(xiàn)了故障; 所述第一接口卡根據(jù)所述第二故障通知消息,控制與所述第一控制器相連的端口進入非激活狀態(tài),以停止與所述第一控制器之間的通信。
9.如權(quán)利要求8所述的方法,其特征在于,在第一接口卡接收所述第一控制器發(fā)送的第二故障通知消息之后,還包括: 所述第一接口卡接收所述M個控制器中的第二控制器發(fā)送的主控通知消息,所述主控通知消息用于通知所述第一接口卡,所述第二控制器已競爭為新的主控制器; 所述第一接口卡根據(jù)所述主控通知消息,控制與所述第二控制器相連的端口進入激活狀態(tài),以通過與所述第二控制器相連的端口與所述第二控制器進行通信。
10.一種通過接口卡傳輸信息的方法,其特征在于,包括: 當存儲系統(tǒng)中包括的M個控制器中作為主控制器的第一控制器發(fā)生故障時,所述第一控制器向第一接口卡發(fā)送第二故障通知消息,所述第二故障通知消息用于通知所述第一接口卡,所述第一控制器出現(xiàn)了故障;其中,所述第一接口卡為所述存儲系統(tǒng)中包括N個接口卡中與所述第一控制器相連、且為所述第一控制器服務(wù)的接口卡; 所述第一接口卡根據(jù)所述第二故障通知消息,控制與所述第一控制器相連的端口進入非激活狀態(tài),以停止與所述第一控制器之間的通信; 當所述M個控制器中的第二控制器競爭為新的主控制器時,所述第二控制器向所述第一接口卡發(fā)送主控通知消息,所述主控通知消息用于通知所述第一接口卡,所述第二控制器已競爭為新的主控制器;其中,所述第一接口卡與所述第二控制器連接; 所述第一接口卡根據(jù)所述主控通知消息,控制與所述第二控制器相連的端口進入激活狀態(tài),以通過與所述第二控制器相連的端口與所述第二控制器進行通信。
11.一種控制器,其特征在于,包括: 操作模塊,用于當M個控制器中作為主控制器的第一控制器發(fā)生故障時,令所述控制器競爭為新的主控制器; 通信模塊,用于至少通過所述N個接口卡中的第一接口卡進行信息中轉(zhuǎn);其中,所述第一接口卡分別與所述第一控制器及所述控制器連接。
12.如權(quán)利要求11所述的控制器,其特征在于,所述控制器還包括接收模塊,用于:在所述操作模塊令所述控制器競爭為新的主控制器之前,接收所述第一控制器發(fā)送的第一故障通知消息,所述第一故障通知消息用于通知所述控制器,所述第一控制器出現(xiàn)了故障。
13.如權(quán)利要求11或12所述的控制器,其特征在于,所述控制器還包括接收模塊和去除豐吳塊; 所述接收模塊用于在所述操作模塊令控制器競爭為新的主控制器之后,接收所述M個控制器中的第三控制器發(fā)送的第二故障通知消息,所述第二故障通知消息用于通知所述控制器,所述第三控制器出現(xiàn)了故障; 所述去除模塊用于從冗余控制器列表中去掉所述第三控制器的信息;其中,所述冗余控制器列表用于記錄能夠作為冗余的各控制器的信息。
14.一種接口卡,其特征在于,包括: 接收模塊,用于當M個控制器中作為主控制器的第一控制器發(fā)生故障時,接收所述第一控制器發(fā)送的第二故障通知消息,所述第二故障通知消息用于通知所述接口卡,所述第一控制器出現(xiàn)了故障;其中,所述接口卡為N個接口卡中與所述第一控制器相連、且為所述第一控制器服務(wù)的接口卡; 控制模塊,用于根據(jù)所述第二故障通知消息,控制與所述第一控制器相連的端口進入非激活狀態(tài),以停止與所述第一控制器之間的通信。
15.如權(quán)利要求14所述的接口卡,其特征在于,所述接收模塊還用于:在接收所述第一控制器發(fā)送的第二故障通知消息之后,接收所述M個控制器中的第二控制器發(fā)送的主控通知消息,所述主控通知消息用于通知所述接口卡,所述第二控制器已競爭為新的主控制器; 所述控制模塊還用于:根據(jù)所述主控通知消息,控制與所述第二控制器相連的端口進入激活狀態(tài),以通過與所述第二控制器相連的端口與所述第二控制器進行通信。
16.—種存儲系統(tǒng),其特征在于,包括: 第一控制器,用于當所述存儲系統(tǒng)中包括的M個控制器中作為主控制器的所述第一控制器發(fā)生故障時,向第一接口卡發(fā)送第二故障消息,所述第二故障通知消息用于通知所述第一接口卡,所述第一控制器出現(xiàn)了故障;其中,所述第一接口卡為所述存儲系統(tǒng)中包括的N個接口卡中與所述第一控制器相連、且為所述第一控制器服務(wù)的接口卡; 所述第一接口卡,用于根據(jù)所述第二故障通知消息,控制與所述第一控制器相連的端口進入非激活狀態(tài),以停止與所述第一控制器之間的通信; 第二控制器,用于當所述M個控制器中的所述第二控制器競爭為新的主控制器時,向所述第一接口卡發(fā)送主控通知消息,所述主控通知消息用于通知所述第一接口卡,所述第二控制器已競爭為新的主控制器;其中,所述第一接口卡與所述第二控制器連接; 所述第一接口卡還用于根據(jù)所述主控通知消息,控制與所述第二控制器相連的端口進入激活狀態(tài),以通過與所述第二控制器相連的端口與所述第二控制器進行通信。
【文檔編號】H04L12/24GK104410510SQ201410579922
【公開日】2015年3月11日 申請日期:2014年10月24日 優(yōu)先權(quán)日:2014年10月24日
【發(fā)明者】唐覓, 陳明 申請人:華為技術(shù)有限公司