本發明是有關于一種路由方法,特別是指一種用于叢集式儲存系統的路由方法。
背景技術:
:現有的叢集式儲存系統包含一主機及多數與該主機共同形成一網絡拓撲的儲存設備。每一儲存設備例如為可安裝多數硬盤的簡單磁碟綁定(justabunchofdisks,JBOD)磁碟服務器,該儲存設備包含多數輸出入模塊(Input/OutputModule,IOM)、一用于儲存資料的儲存模塊,及一電連接該儲存模塊及該等輸出入模塊的處理器。該主機以序列式小型計算機系統界面(SerialAttachedSCSI,SAS)連接至少一儲存設備的該等輸出入模塊。該主機與該等儲存設備之間的資料傳輸的路由的建立方式為:該主機利用動態路由,以廣播(broadcast)方式傳送一詢問訊框到每一儲存設備的各個輸出入模塊,然后每一儲存設備的處理器根據該詢問訊框,通過每一儲存設備的每一輸出入模塊回傳一包含該輸出入模塊與其所連接的其他輸出入模塊的之間的連接信息的回傳訊框至該主機,而使該主機能根據該等回傳訊框建立資料傳輸的路由。現有的叢集式儲存系統在較大的網絡里,因為動態路由的機制,容易產生資料傳輸的循環(loop)。當該主機傳送資料時,資料可能在循環上不斷地重復地轉發,占據網絡頻寬和儲存設備的資源,造成效能下降。舉例來說,參閱圖1,該叢集式儲存系統包含一主機11、一儲存設備12A、一儲存設備12B,及一儲存設備12C。該儲存設備12A包括一輸出入模塊121A1及一與該輸出入模塊121A1連接的輸出入模塊121A2。該儲存設備12B包括一輸出入模塊121B1及一與該輸出入模塊121B1連接的輸出入模塊121B2。該儲存設備12C包括一輸出入模塊121C1及一與該輸出入模塊121C1連接的輸出入模塊121C2。在該主機11根據所有的輸出入模塊回傳的回傳訊框建立資料傳輸的路由之后,若該主機11要送出資料到該儲存設備12C的該輸出入模塊121C2,因為該輸出入模塊121A2連接與其同屬于儲存設備12A的該輸出入模塊121A1,所以該主機11傳送資料到該輸出入模塊121A2之后,所送出的資料可能會被該儲存設備12A的該輸出入模塊121A2送至該輸出入模塊121A1,再由該輸出入模塊121A1送回該主機11,產生了資料傳輸的循環。目前已有數種技術試著解決資料傳輸的循環問題。例如,當有循環存在時,切斷循環上的某些資料傳輸的連接(link)以使循環消失。然而,這種方式可能會造成資料的傳輸集中在少數路徑而造成資料傳輸堵塞,或者路徑刪除后資料無法傳送至某些輸出入模塊。因此,如何研發出一種能避免發生資料傳輸循環的路由方法,便成為相關業者所欲努力研究的方向。技術實現要素:因此,本發明的目的在于提供一種用于叢集式儲存系統的路由方法。于是,本發明用于叢集式儲存系統的路由方法,該叢集式儲存系統包含一主機及多數與該主機共同形成一網絡拓撲并分別包括多數輸出入模塊的儲存設備,在該網絡拓撲中,該主機連接該等儲存設備的至少其中一者的每一輸出入模塊,每一儲存設備的每一輸出入模塊連接該輸出入模塊所屬的儲存設備的其他每一輸出入模塊,且連接至少一其他儲存設備的該等輸出入模塊的其中一者,且該主機到任一輸出入模塊的由該主機與屬于不同儲存設備的一或多數輸出入模塊所組成的路徑僅有一條,該用于叢集式儲存系統的路由方法包含一步驟(A)、一步驟(B),及一步驟(C)。在步驟(A)中,該主機通過該網絡拓撲發送一詢問訊框到該等儲存設備的該等輸出入模塊。在步驟(B)中,每一儲存設備的每一輸出入模塊在接收到該詢問訊框之后回傳一回傳訊框至該主機,其中該回傳訊框包含該輸出入模塊與其所連接的每一其他儲存設備的輸出入模塊之間的外部連接信息,且不包含該輸出入模塊與其所屬的儲存設備的其他任一輸出入模塊之間的內部連接信息。在步驟(C)中,該主機根據該等輸出入模塊回傳的該等回傳訊框產生該主機與該等輸出入模塊之間的資料傳輸的路由。本發明的功效在于:通過該等輸出入模塊回傳的該等回傳訊框不包含該等輸出入模塊與其所屬的儲存設備的其他任一輸出入模塊之間的外部連接信息,以在建立資料傳輸的路由時避免產生資料傳輸的循環。【附圖說明】圖1是一方塊圖,說明一熟知的叢集式儲存系統;圖2是一方塊圖,說明執行本發明用于叢集式儲存系統的路由方法的一的實施例的一叢集式儲存系統;圖3是一流程圖,說明本發明用于叢集式儲存系統的路由方法的一實施例;圖4是一示意圖,說明本發明用于叢集式儲存系統的路由方法的該實施例的一詢問訊框的傳輸情況;圖5是一示意圖,說明本發明用于叢集式儲存系統的路由方法的該實施例的多數回傳訊框的傳輸情況;圖6是一示意圖,說明本發明用于叢集式儲存系統的路由方法的該實施例的該叢集式儲存系統的一主機與多數儲存設備的每一輸出入模塊之間的資料傳輸的路由;圖7是一示意圖,說明本發明用于叢集式儲存系統的路由方法的該實施例的該叢集式儲存系統的該主機與該等儲存設備共同形成一樹狀網絡拓撲;及圖8是一示意圖,說明本發明用于叢集式儲存系統的路由方法的該實施例的該叢集式儲存系統的該主機與該等儲存設備共同形成一星狀網絡拓撲。【具體實施方式】參閱圖2,本發明用于叢集式儲存系統的路由方法之一實施例是由一叢集式儲存系統執行。該叢集式儲存系統包含一主機2及多數與該主機2共同形成一網絡拓撲的儲存設備3。每一儲存設備3包括多數輸出入模塊31、一用于儲存資料的儲存模塊(圖未示),及一電連接該儲存模塊及該等輸出入模塊的處理器(圖未示)。其中,該主機2連接該等儲存設備3的至少其中一者的每一輸出入模塊31。每一儲存設備3的每一輸出入模塊31具有一SAS地址,并連接該輸出入模塊31所屬的儲存設備3的其他每一輸出入模塊31,且連接至少一其他儲存設備3的該等輸出入模塊31的其中一者,且該主機2到任一輸出入模塊31的由該主機2與屬于不同儲存設備3的一或多數輸出入模塊31所組成的路徑僅有一條。例如,由該主機2到該輸出入模塊31C2的該路徑由該主機2與屬于不同儲存設備3的該輸出入模塊31A2、該輸出入模塊31B2、該輸出入模塊31C2所組成;又例如,由該主機2到該輸出入模塊31B1的該路徑由該主機2與屬于不同儲存設備3的該輸出入模塊31A1、該輸出入模塊31B1所組成。在本實施例中,是以該叢集式儲存系統包含三儲存設備3,且每一儲存設備3包括二輸出入模塊31為例,但不以此為限。且在本實施例中,該儲存設備3例如為JBOD磁碟服務器,該主機2例如為服務器主機,且該主機2及該等儲存設備3分別具有二個埠(port),并透過主機總線配接器(hostbusadapter,HBA)連接,形成SAS網絡拓撲,但不以此為限。參閱圖2與圖3,以下說明該實施例的各個步驟。在步驟401中,該主機2通過該網絡拓撲發送一詢問訊框到該等儲存設備3的該等輸出入模塊31,其中該詢問訊框為SAS訊框(SASframe)。詳細而言,如圖4所示,該詢問訊框被傳送到一儲存設備3A的一輸出入模塊31A1;然后,再通過該輸出入模塊31A1發送該詢問訊框到其所連接的另一儲存設備3B的一輸出入模塊31B1;最后,由該輸出入模塊31B1發送該詢問訊框到其所連接的另一儲存設備3C的一輸出入模塊31C1。類似地,該詢問訊框也被傳送到該儲存設備3A的一輸出入模塊31A2;然后,再通過該輸出入模塊31A2發送該詢問訊框到其所連接的該儲存設備3B的一輸出入模塊31B2;最后,由該輸出入模塊31B2發送該詢問訊框到其所連接的該儲存設備3C的一輸出入模塊31C2。在步驟402中,每一儲存設備3的每一輸出入模塊31在接收到該詢問訊框之后,每一儲存設備3的該處理器根據該詢問訊框,通過該儲存設備3的每一輸出入模塊31傳送一回傳訊框至該主機2,其中該回傳訊框包含該輸出入模塊31與其所連接的每一其他儲存設備3的輸出入模塊31之間的外部連接信息,也就是包含該輸出入模塊31的SAS地址及與其所連接的每一其他儲存設備3的輸出入模塊31的SAS地址,且不包含該輸出入模塊31與其所屬的儲存設備3的其他任一輸出入模塊31之間的內部連接信息,也就是不包含該輸出入模塊31所屬的儲存設備3的其他任一輸出入模塊31的SAS地址。其中,在實施上,每一儲存設備3的處理器針對該儲存設備3的每一輸出入模塊31,先通過現有技術產生熟知的包含該儲存設備3中所有的輸出入模塊31的SAS地址與該輸出入模塊31所連接的每一其他儲存設備3的輸出入模塊31的SAS地址的該回傳訊框,接著執行一程序碼來辨識該回傳訊框中是否除了該輸出入模塊31的SAS地址之外還包含該儲存設備3的其他輸出入模塊31的SAS地址,再從該回傳訊框中刪除該儲存設備3的其他輸出入模塊31的SAS地址,而使得該回傳訊框僅包含該輸出入模塊31的SAS地址及與其所連接的每一其他儲存設備3的輸出入模塊31的SAS地址,而不包含該輸出入模塊31所屬的儲存設備3的其他任一輸出入模塊31的SAS地址。參閱圖5,在本實施例中,該輸出入模塊31C1回傳的回傳訊框包含下列表一所示的一包含自身的SAS地址與該輸出入模塊31B1的SAS地址的表格資料,以讓該主機2據以判斷出該輸出入模塊31C1連接該輸出入模塊31B1。該輸出入模塊31B1回傳的回傳訊框包含下列表二所示的一包含自身的SAS地址、該輸出入模塊31C1的SAS地址,及該輸出入模塊31A1的SAS地址的表格資料,以讓該主機2據以判斷出該輸出入模塊31B1連接該輸出入模塊31C1與該輸出入模塊31A1。該輸出入模塊31A1回傳的回傳訊框包含下列表三所示的一包含自身的SAS地址與該輸出入模塊31B1的SAS地址的表格資料,以讓該主機2據以判斷出該輸出入模塊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中,該主機2根據該等輸出入模塊31傳送的該等回傳訊框產生該主機2與該等儲存設備3的該等輸出入模塊31之間的資料傳輸的路由。特別地,如圖6所示,因為在步驟403中的該等回傳訊框不包含屬于同一儲存設備3的該等輸出入模塊31之間的內部連接信息,而使該主機2判定屬于同一儲存設備3的該等輸出入模塊31之間沒有路徑連接。如此,該主機2與該輸出入模塊31C1之間的路由,為經該輸出入模塊31A1及該輸出入模塊31B1,而到該輸出入模塊31C1的路徑;該主機2與該輸出入模塊31B1之間的路由,為經該輸出入模塊31A1,而到該輸出入模塊31B1的路徑;該主機2與該輸出入模塊31A1之間的路由,則是由該主機2直接傳送到該輸出入模塊31A1。同理,該主機2與該輸出入模塊31A2、該輸出入模塊31B2,及該輸出入模塊31C2之間所建立的路由類似上述。由上述可知,因為該主機2判定屬于同一儲存設備3的該等輸出入模塊31之間沒有路徑連接,所以該主機2通過動態路由所產生的該主機2與該輸出入模塊31之間的資料傳輸的路由不會造成循環。相對地,在熟知的叢集式儲存系統的動態路由方法中,因為回傳訊框包含屬于同一儲存設備的輸出入模塊之間的內部連接信息,因而主機與輸出入模塊之間的資料傳輸的路由容易造成循環。此外,在本實施例中是以靜態路由的方式建立同一儲存設備3的該等輸出入模塊31之間的路由,以達成同一儲存設備3的該等輸出入模塊31之間的資料傳輸。此外,雖然在本實施例中,該網絡拓撲為圖2所示的線形拓撲,但該網絡拓撲可有其他的實施態樣,例如為圖7所示的樹狀拓撲、圖8所示的星狀拓撲等,其中該主機2到任一輸出入模塊31的由該主機2與屬于不同儲存設備3的一或多數輸出入模塊31所組成的路徑也僅有一條。綜上所述,本發明用于叢集式儲存系統的路由方法,通過每一輸出入模塊31傳送的該回傳訊框不包含該等輸出入模塊31與其所屬的儲存設備3的其他任一輸出入模塊31之間的內部連接信息,以避免該主機2傳送的資料由動態路由所建立路由經由其中一輸出入模塊31時,傳送到位于同一儲存設備3的其他輸出入模塊31而產生循環,所以確實能達成本發明的目的。上面結合附圖對本發明的具體實施方式和實施例做了詳細說明,但不能以之限定本發明的范圍,在本發明申請專利范圍內所作的修飾和變化,皆應該屬于本發明專利范圍內。當前第1頁1 2 3