本發(fā)明是有關(guān)于一種路由方法,特別是指一種用于叢集式儲存系統(tǒng)的路由方法。
背景技術(shù):
:現(xiàn)有的叢集式儲存系統(tǒng)包含一主機(jī)及多數(shù)與該主機(jī)共同形成一網(wǎng)絡(luò)拓?fù)涞膬Υ嬖O(shè)備。每一儲存設(shè)備例如為可安裝多數(shù)硬盤的簡單磁碟綁定(justabunchofdisks,JBOD)磁碟服務(wù)器,該儲存設(shè)備包含多數(shù)輸出入模塊(Input/OutputModule,IOM)、一用于儲存資料的儲存模塊,及一電連接該儲存模塊及該等輸出入模塊的處理器。該主機(jī)以序列式小型計算機(jī)系統(tǒng)界面(SerialAttachedSCSI,SAS)連接至少一儲存設(shè)備的該等輸出入模塊。該主機(jī)與該等儲存設(shè)備之間的資料傳輸?shù)穆酚傻慕⒎绞綖椋涸撝鳈C(jī)利用動態(tài)路由,以廣播(broadcast)方式傳送一詢問訊框到每一儲存設(shè)備的各個輸出入模塊,然后每一儲存設(shè)備的處理器根據(jù)該詢問訊框,通過每一儲存設(shè)備的每一輸出入模塊回傳一包含該輸出入模塊與其所連接的其他輸出入模塊的之間的連接信息的回傳訊框至該主機(jī),而使該主機(jī)能根據(jù)該等回傳訊框建立資料傳輸?shù)穆酚伞,F(xiàn)有的叢集式儲存系統(tǒng)在較大的網(wǎng)絡(luò)里,因為動態(tài)路由的機(jī)制,容易產(chǎn)生資料傳輸?shù)难h(huán)(loop)。當(dāng)該主機(jī)傳送資料時,資料可能在循環(huán)上不斷地重復(fù)地轉(zhuǎn)發(fā),占據(jù)網(wǎng)絡(luò)頻寬和儲存設(shè)備的資源,造成效能下降。舉例來說,參閱圖1,該叢集式儲存系統(tǒng)包含一主機(jī)11、一儲存設(shè)備12A、一儲存設(shè)備12B,及一儲存設(shè)備12C。該儲存設(shè)備12A包括一輸出入模塊121A1及一與該輸出入模塊121A1連接的輸出入模塊121A2。該儲存設(shè)備12B包括一輸出入模塊121B1及一與該輸出入模塊121B1連接的輸出入模塊121B2。該儲存設(shè)備12C包括一輸出入模塊121C1及一與該輸出入模塊121C1連接的輸出入模塊121C2。在該主機(jī)11根據(jù)所有的輸出入模塊回傳的回傳訊框建立資料傳輸?shù)穆酚芍?,若該主機(jī)11要送出資料到該儲存設(shè)備12C的該輸出入模塊121C2,因為該輸出入模塊121A2連接與其同屬于儲存設(shè)備12A的該輸出入模塊121A1,所以該主機(jī)11傳送資料到該輸出入模塊121A2之后,所送出的資料可能會被該儲存設(shè)備12A的該輸出入模塊121A2送至該輸出入模塊121A1,再由該輸出入模塊121A1送回該主機(jī)11,產(chǎn)生了資料傳輸?shù)难h(huán)。目前已有數(shù)種技術(shù)試著解決資料傳輸?shù)难h(huán)問題。例如,當(dāng)有循環(huán)存在時,切斷循環(huán)上的某些資料傳輸?shù)倪B接(link)以使循環(huán)消失。然而,這種方式可能會造成資料的傳輸集中在少數(shù)路徑而造成資料傳輸堵塞,或者路徑刪除后資料無法傳送至某些輸出入模塊。因此,如何研發(fā)出一種能避免發(fā)生資料傳輸循環(huán)的路由方法,便成為相關(guān)業(yè)者所欲努力研究的方向。技術(shù)實現(xiàn)要素:因此,本發(fā)明的目的在于提供一種用于叢集式儲存系統(tǒng)的路由方法。于是,本發(fā)明用于叢集式儲存系統(tǒng)的路由方法,該叢集式儲存系統(tǒng)包含一主機(jī)及多數(shù)與該主機(jī)共同形成一網(wǎng)絡(luò)拓?fù)洳⒎謩e包括多數(shù)輸出入模塊的儲存設(shè)備,在該網(wǎng)絡(luò)拓?fù)渲校撝鳈C(jī)連接該等儲存設(shè)備的至少其中一者的每一輸出入模塊,每一儲存設(shè)備的每一輸出入模塊連接該輸出入模塊所屬的儲存設(shè)備的其他每一輸出入模塊,且連接至少一其他儲存設(shè)備的該等輸出入模塊的其中一者,且該主機(jī)到任一輸出入模塊的由該主機(jī)與屬于不同儲存設(shè)備的一或多數(shù)輸出入模塊所組成的路徑僅有一條,該用于叢集式儲存系統(tǒng)的路由方法包含一步驟(A)、一步驟(B),及一步驟(C)。在步驟(A)中,該主機(jī)通過該網(wǎng)絡(luò)拓?fù)浒l(fā)送一詢問訊框到該等儲存設(shè)備的該等輸出入模塊。在步驟(B)中,每一儲存設(shè)備的每一輸出入模塊在接收到該詢問訊框之后回傳一回傳訊框至該主機(jī),其中該回傳訊框包含該輸出入模塊與其所連接的每一其他儲存設(shè)備的輸出入模塊之間的外部連接信息,且不包含該輸出入模塊與其所屬的儲存設(shè)備的其他任一輸出入模塊之間的內(nèi)部連接信息。在步驟(C)中,該主機(jī)根據(jù)該等輸出入模塊回傳的該等回傳訊框產(chǎn)生該主機(jī)與該等輸出入模塊之間的資料傳輸?shù)穆酚伞1景l(fā)明的功效在于:通過該等輸出入模塊回傳的該等回傳訊框不包含該等輸出入模塊與其所屬的儲存設(shè)備的其他任一輸出入模塊之間的外部連接信息,以在建立資料傳輸?shù)穆酚蓵r避免產(chǎn)生資料傳輸?shù)难h(huán)。【附圖說明】圖1是一方塊圖,說明一熟知的叢集式儲存系統(tǒng);圖2是一方塊圖,說明執(zhí)行本發(fā)明用于叢集式儲存系統(tǒng)的路由方法的一的實施例的一叢集式儲存系統(tǒng);圖3是一流程圖,說明本發(fā)明用于叢集式儲存系統(tǒng)的路由方法的一實施例;圖4是一示意圖,說明本發(fā)明用于叢集式儲存系統(tǒng)的路由方法的該實施例的一詢問訊框的傳輸情況;圖5是一示意圖,說明本發(fā)明用于叢集式儲存系統(tǒng)的路由方法的該實施例的多數(shù)回傳訊框的傳輸情況;圖6是一示意圖,說明本發(fā)明用于叢集式儲存系統(tǒng)的路由方法的該實施例的該叢集式儲存系統(tǒng)的一主機(jī)與多數(shù)儲存設(shè)備的每一輸出入模塊之間的資料傳輸?shù)穆酚?;圖7是一示意圖,說明本發(fā)明用于叢集式儲存系統(tǒng)的路由方法的該實施例的該叢集式儲存系統(tǒng)的該主機(jī)與該等儲存設(shè)備共同形成一樹狀網(wǎng)絡(luò)拓?fù)?;及圖8是一示意圖,說明本發(fā)明用于叢集式儲存系統(tǒng)的路由方法的該實施例的該叢集式儲存系統(tǒng)的該主機(jī)與該等儲存設(shè)備共同形成一星狀網(wǎng)絡(luò)拓?fù)??!揪唧w實施方式】參閱圖2,本發(fā)明用于叢集式儲存系統(tǒng)的路由方法之一實施例是由一叢集式儲存系統(tǒng)執(zhí)行。該叢集式儲存系統(tǒng)包含一主機(jī)2及多數(shù)與該主機(jī)2共同形成一網(wǎng)絡(luò)拓?fù)涞膬Υ嬖O(shè)備3。每一儲存設(shè)備3包括多數(shù)輸出入模塊31、一用于儲存資料的儲存模塊(圖未示),及一電連接該儲存模塊及該等輸出入模塊的處理器(圖未示)。其中,該主機(jī)2連接該等儲存設(shè)備3的至少其中一者的每一輸出入模塊31。每一儲存設(shè)備3的每一輸出入模塊31具有一SAS地址,并連接該輸出入模塊31所屬的儲存設(shè)備3的其他每一輸出入模塊31,且連接至少一其他儲存設(shè)備3的該等輸出入模塊31的其中一者,且該主機(jī)2到任一輸出入模塊31的由該主機(jī)2與屬于不同儲存設(shè)備3的一或多數(shù)輸出入模塊31所組成的路徑僅有一條。例如,由該主機(jī)2到該輸出入模塊31C2的該路徑由該主機(jī)2與屬于不同儲存設(shè)備3的該輸出入模塊31A2、該輸出入模塊31B2、該輸出入模塊31C2所組成;又例如,由該主機(jī)2到該輸出入模塊31B1的該路徑由該主機(jī)2與屬于不同儲存設(shè)備3的該輸出入模塊31A1、該輸出入模塊31B1所組成。在本實施例中,是以該叢集式儲存系統(tǒng)包含三儲存設(shè)備3,且每一儲存設(shè)備3包括二輸出入模塊31為例,但不以此為限。且在本實施例中,該儲存設(shè)備3例如為JBOD磁碟服務(wù)器,該主機(jī)2例如為服務(wù)器主機(jī),且該主機(jī)2及該等儲存設(shè)備3分別具有二個埠(port),并透過主機(jī)總線配接器(hostbusadapter,HBA)連接,形成SAS網(wǎng)絡(luò)拓?fù)洌灰源藶橄?。參閱圖2與圖3,以下說明該實施例的各個步驟。在步驟401中,該主機(jī)2通過該網(wǎng)絡(luò)拓?fù)浒l(fā)送一詢問訊框到該等儲存設(shè)備3的該等輸出入模塊31,其中該詢問訊框為SAS訊框(SASframe)。詳細(xì)而言,如圖4所示,該詢問訊框被傳送到一儲存設(shè)備3A的一輸出入模塊31A1;然后,再通過該輸出入模塊31A1發(fā)送該詢問訊框到其所連接的另一儲存設(shè)備3B的一輸出入模塊31B1;最后,由該輸出入模塊31B1發(fā)送該詢問訊框到其所連接的另一儲存設(shè)備3C的一輸出入模塊31C1。類似地,該詢問訊框也被傳送到該儲存設(shè)備3A的一輸出入模塊31A2;然后,再通過該輸出入模塊31A2發(fā)送該詢問訊框到其所連接的該儲存設(shè)備3B的一輸出入模塊31B2;最后,由該輸出入模塊31B2發(fā)送該詢問訊框到其所連接的該儲存設(shè)備3C的一輸出入模塊31C2。在步驟402中,每一儲存設(shè)備3的每一輸出入模塊31在接收到該詢問訊框之后,每一儲存設(shè)備3的該處理器根據(jù)該詢問訊框,通過該儲存設(shè)備3的每一輸出入模塊31傳送一回傳訊框至該主機(jī)2,其中該回傳訊框包含該輸出入模塊31與其所連接的每一其他儲存設(shè)備3的輸出入模塊31之間的外部連接信息,也就是包含該輸出入模塊31的SAS地址及與其所連接的每一其他儲存設(shè)備3的輸出入模塊31的SAS地址,且不包含該輸出入模塊31與其所屬的儲存設(shè)備3的其他任一輸出入模塊31之間的內(nèi)部連接信息,也就是不包含該輸出入模塊31所屬的儲存設(shè)備3的其他任一輸出入模塊31的SAS地址。其中,在實施上,每一儲存設(shè)備3的處理器針對該儲存設(shè)備3的每一輸出入模塊31,先通過現(xiàn)有技術(shù)產(chǎn)生熟知的包含該儲存設(shè)備3中所有的輸出入模塊31的SAS地址與該輸出入模塊31所連接的每一其他儲存設(shè)備3的輸出入模塊31的SAS地址的該回傳訊框,接著執(zhí)行一程序碼來辨識該回傳訊框中是否除了該輸出入模塊31的SAS地址之外還包含該儲存設(shè)備3的其他輸出入模塊31的SAS地址,再從該回傳訊框中刪除該儲存設(shè)備3的其他輸出入模塊31的SAS地址,而使得該回傳訊框僅包含該輸出入模塊31的SAS地址及與其所連接的每一其他儲存設(shè)備3的輸出入模塊31的SAS地址,而不包含該輸出入模塊31所屬的儲存設(shè)備3的其他任一輸出入模塊31的SAS地址。參閱圖5,在本實施例中,該輸出入模塊31C1回傳的回傳訊框包含下列表一所示的一包含自身的SAS地址與該輸出入模塊31B1的SAS地址的表格資料,以讓該主機(jī)2據(jù)以判斷出該輸出入模塊31C1連接該輸出入模塊31B1。該輸出入模塊31B1回傳的回傳訊框包含下列表二所示的一包含自身的SAS地址、該輸出入模塊31C1的SAS地址,及該輸出入模塊31A1的SAS地址的表格資料,以讓該主機(jī)2據(jù)以判斷出該輸出入模塊31B1連接該輸出入模塊31C1與該輸出入模塊31A1。該輸出入模塊31A1回傳的回傳訊框包含下列表三所示的一包含自身的SAS地址與該輸出入模塊31B1的SAS地址的表格資料,以讓該主機(jī)2據(jù)以判斷出該輸出入模塊31A1連接該輸出入模塊31B1。同理,該輸出入模塊31A2、該輸出入模塊31B2,及該輸出入模塊31C2,所回傳方式亦相同。表一輸出入模塊本身的SAS地址所連接的輸出入模塊的SAS地址輸出入模塊31C1的SAS地址輸出入模塊31B1的SAS地址表二輸出入模塊本身的SAS地址所連接的輸出入模塊的SAS地址輸出入模塊31B1的SAS地址輸出入模塊31C1的SAS地址輸出入模塊31A1的SAS地址表三輸出入模塊本身的SAS地址所連接的輸出入模塊的SAS地址輸出入模塊31A1的SAS地址輸出入模塊31B1的SAS地址在步驟403中,該主機(jī)2根據(jù)該等輸出入模塊31傳送的該等回傳訊框產(chǎn)生該主機(jī)2與該等儲存設(shè)備3的該等輸出入模塊31之間的資料傳輸?shù)穆酚?。特別地,如圖6所示,因為在步驟403中的該等回傳訊框不包含屬于同一儲存設(shè)備3的該等輸出入模塊31之間的內(nèi)部連接信息,而使該主機(jī)2判定屬于同一儲存設(shè)備3的該等輸出入模塊31之間沒有路徑連接。如此,該主機(jī)2與該輸出入模塊31C1之間的路由,為經(jīng)該輸出入模塊31A1及該輸出入模塊31B1,而到該輸出入模塊31C1的路徑;該主機(jī)2與該輸出入模塊31B1之間的路由,為經(jīng)該輸出入模塊31A1,而到該輸出入模塊31B1的路徑;該主機(jī)2與該輸出入模塊31A1之間的路由,則是由該主機(jī)2直接傳送到該輸出入模塊31A1。同理,該主機(jī)2與該輸出入模塊31A2、該輸出入模塊31B2,及該輸出入模塊31C2之間所建立的路由類似上述。由上述可知,因為該主機(jī)2判定屬于同一儲存設(shè)備3的該等輸出入模塊31之間沒有路徑連接,所以該主機(jī)2通過動態(tài)路由所產(chǎn)生的該主機(jī)2與該輸出入模塊31之間的資料傳輸?shù)穆酚刹粫斐裳h(huán)。相對地,在熟知的叢集式儲存系統(tǒng)的動態(tài)路由方法中,因為回傳訊框包含屬于同一儲存設(shè)備的輸出入模塊之間的內(nèi)部連接信息,因而主機(jī)與輸出入模塊之間的資料傳輸?shù)穆酚扇菀自斐裳h(huán)。此外,在本實施例中是以靜態(tài)路由的方式建立同一儲存設(shè)備3的該等輸出入模塊31之間的路由,以達(dá)成同一儲存設(shè)備3的該等輸出入模塊31之間的資料傳輸。此外,雖然在本實施例中,該網(wǎng)絡(luò)拓?fù)錇閳D2所示的線形拓?fù)洌摼W(wǎng)絡(luò)拓?fù)淇捎衅渌膶嵤B(tài)樣,例如為圖7所示的樹狀拓?fù)洹D8所示的星狀拓?fù)涞?,其中該主機(jī)2到任一輸出入模塊31的由該主機(jī)2與屬于不同儲存設(shè)備3的一或多數(shù)輸出入模塊31所組成的路徑也僅有一條。綜上所述,本發(fā)明用于叢集式儲存系統(tǒng)的路由方法,通過每一輸出入模塊31傳送的該回傳訊框不包含該等輸出入模塊31與其所屬的儲存設(shè)備3的其他任一輸出入模塊31之間的內(nèi)部連接信息,以避免該主機(jī)2傳送的資料由動態(tài)路由所建立路由經(jīng)由其中一輸出入模塊31時,傳送到位于同一儲存設(shè)備3的其他輸出入模塊31而產(chǎn)生循環(huán),所以確實能達(dá)成本發(fā)明的目的。上面結(jié)合附圖對本發(fā)明的具體實施方式和實施例做了詳細(xì)說明,但不能以之限定本發(fā)明的范圍,在本發(fā)明申請專利范圍內(nèi)所作的修飾和變化,皆應(yīng)該屬于本發(fā)明專利范圍內(nèi)。當(dāng)前第1頁1 2 3