JP4712069B2 - スイッチ装置、ストレージシステム、およびルーティング方法 - Google Patents

スイッチ装置、ストレージシステム、およびルーティング方法 Download PDF

Info

Publication number
JP4712069B2
JP4712069B2 JP2008145983A JP2008145983A JP4712069B2 JP 4712069 B2 JP4712069 B2 JP 4712069B2 JP 2008145983 A JP2008145983 A JP 2008145983A JP 2008145983 A JP2008145983 A JP 2008145983A JP 4712069 B2 JP4712069 B2 JP 4712069B2
Authority
JP
Japan
Prior art keywords
frame
port
switch
output
determination
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2008145983A
Other languages
English (en)
Other versions
JP2009294772A (ja
Inventor
克矢 新潟
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2008145983A priority Critical patent/JP4712069B2/ja
Priority to US12/385,212 priority patent/US8130779B2/en
Publication of JP2009294772A publication Critical patent/JP2009294772A/ja
Application granted granted Critical
Publication of JP4712069B2 publication Critical patent/JP4712069B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/15Interconnection of switching modules
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/35Switches specially adapted for specific applications
    • H04L49/356Switches specially adapted for specific applications for storage area networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/25Routing or path finding in a switch fabric

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Description

本発明は、スイッチ装置、ストレージシステム、およびルーティング方法に関し、特に、フレーム転送の遅延を削減し、記憶媒体へのデータの書き込みおよび記憶媒体からのデータの読み出しを高速化することができるスイッチ装置、ストレージシステム、およびルーティング方法に関する。
近年、複数の記憶媒体を用いて大容量のデータ記憶を実現するストレージシステムが一般的になっている。ストレージシステムでは、データを処理するサーバやストレージコントローラなどの計算装置とデータを記憶するハードディスクドライブなどの記憶媒体との間に、スイッチやケーブルによるネットワークが構築される。そして、データやコマンドを含むフレームが計算装置と記憶媒体の間のネットワーク上を通信されることにより、データの書き込みや読み出しが行われる。このとき、計算装置は、イニシエータとして、データの書き込みまたは読み出しのターゲットとなる記憶媒体へコマンドを送信する。すなわち、計算装置がストレージシステム内の処理を主導しており、記憶媒体は、受動的に動作する。
ところで、計算装置と記憶媒体の間に設けられるスイッチは、それぞれ計算装置、記憶媒体、または他のスイッチと接続するポートを備えている。ポートは、例えばSAS(Serial attached SCSI)などの規格に準拠したインタフェースであり、計算装置または記憶装置から送信されたフレームは、スイッチのポートを介して転送される。すなわち、スイッチは、入力されたフレームの出力ポートを切り替えることにより、フレームの転送経路を制御している。
スイッチに備えられるポートには、大きく分けてダイレクトポートとカスケードポートとの2種類がある。ダイレクトポートは、計算装置や配下にある記憶媒体に直接接続するポートであり、カスケードポートは、他のスイッチに接続するポートである。したがって、計算装置または記憶媒体から送信されたフレームは、ダイレクトポートを介して初段のスイッチに入力され、カスケードポートを介して他のスイッチへ出力される。そして、フレームは、いくつかのスイッチによって転送された後、最終的に、フレームの送信先となっている記憶媒体または計算装置に接続するスイッチのダイレクトポートから出力される。
このようなスイッチによるフレームの転送の際には、ルーティングテーブルが参照されるのが一般的である。ルーティングテーブルは、ネットワークの初期化時などに、各スイッチにおいて別々に作成されるテーブルであり、フレームの送信先アドレスと出力ポートとの対応関係を記憶している。すなわち、ルーティングテーブルは、フレームを送信先アドレスへ転送するためには、スイッチ内のどのポートから出力すれば良いかを記憶している。そこで、スイッチは、フレームが入力されると、フレームのヘッダ部から送信先アドレスを確認し、送信先アドレスに対応する出力ポートをルーティングテーブルから検索する。そして、スイッチは、ルーティングテーブルの検索により決定された出力ポートからフレームを出力する。
特開2005−267327号公報
しかしながら、上述したスイッチによるフレームのルーティングにおいては、スイッチがルーティングテーブルを参照して出力ポートを決定する処理に時間を要し、記憶媒体へのデータの書き込みや記憶媒体からのデータの読み出しが遅延するという問題がある。通常、ルーティングテーブルには、ストレージシステム内のすべての計算装置および記憶媒体のアドレスについて、対応する出力ポートが記憶されている。したがって、ルーティングテーブルを参照して出力ポートを決定するには、スイッチは、多くのアドレスの中からフレームの送信先アドレスに一致するアドレスを検索する必要がある。このような検索は、フレームの送信元から送信先までの経路上にあるすべてのスイッチで行われるため、フレームの送信先までフレームが転送される際には遅延が生じる。
また、最近では、ハードディスクドライブの小型化などに伴って、1つのストレージシステム内に、より多くの記憶媒体が備えられるようになっている。このため、ルーティングテーブルは、多数のアドレスと出力ポートとの対応関係を記憶する必要があり、ルーティングテーブルの規模が拡大する傾向がある。結果として、フレームの送信先アドレスに一致するアドレスの検索には、さらに多くの時間を要することとなり、スイッチにおけるフレーム転送の遅延は増加している。
本発明はかかる点に鑑みてなされたものであり、フレーム転送の遅延を削減し、記憶媒体へのデータの書き込みおよび記憶媒体からのデータの読み出しを高速化することができるスイッチ装置、ストレージシステム、およびルーティング方法を提供することを目的とする。
上記課題を解決するために、スイッチ装置は、それぞれ他のスイッチ装置に接続する2つのカスケードポートと、それぞれ自装置の配下にある記憶媒体に接続する少なくとも1つのダイレクトポートと、前記ダイレクトポートに接続するすべての記憶媒体のアドレスに、それぞれの記憶媒体に接続するダイレクトポートを示す情報を対応付けて記憶する記憶手段と、一方のカスケードポートから入力されたフレームが、当該フレームの送信元から送信先の間の転送経路に配置される規定数のスイッチ装置を既に経由したか否かを判定する判定手段と、前記判定手段による判定の結果、前記フレームが規定数のスイッチ装置をまだ経由していない場合に、当該フレームを他方のカスケードポートから出力する出力手段と、前記判定手段による判定の結果、前記フレームが規定数のスイッチ装置を既に経由している場合に、当該フレームをダイレクトポートに出力することを決定する決定手段と、前記決定手段によってフレームをダイレクトポートに出力することが決定された場合に、前記記憶手段によって記憶された自装置のダイレクトポートを示す情報において、前記フレームの送信先アドレスに対応する出力ポートを検索する検索手段とを有し、前記検索手段は、前記記憶手段によって記憶されたダイレクトポートを示す情報およびカスケードポートを示す情報のうち、自装置のダイレクトポートを示す情報のみを検索範囲としてフレームの送信先アドレスに対応する出力ポートを検索する構成を採る。
また、ストレージシステムは、互いに接続してフレームを転送する複数のスイッチ装置と、各スイッチ装置に接続する記憶媒体とを備えるストレージシステムであって、前記スイッチ装置は、それぞれ他のスイッチ装置に接続する2つのカスケードポートと、それぞれ自装置の配下にある記憶媒体に接続する少なくとも1つのダイレクトポートと、前記ダイレクトポートに接続するすべての記憶媒体のアドレスに、それぞれの記憶媒体に接続するダイレクトポートを示す情報を対応付けて記憶する記憶手段と、一方のカスケードポートから入力されたフレームが、当該フレームの送信元から送信先の間の転送経路に配置される規定数のスイッチ装置を既に経由したか否かを判定する判定手段と、前記判定手段による判定の結果、前記フレームが規定数のスイッチ装置をまだ経由していない場合に、当該フレームを他方のカスケードポートから出力する出力手段と、前記判定手段による判定の結果、前記フレームが規定数のスイッチ装置を既に経由している場合に、当該フレームをダイレクトポートに出力することを決定する決定手段と、前記決定手段によってフレームをダイレクトポートに出力することが決定された場合に、前記記憶手段によって記憶された自装置のダイレクトポートを示す情報において、前記フレームの送信先アドレスに対応する出力ポートを検索する検索手段とを有し、前記検索手段は、前記記憶手段によって記憶されたダイレクトポートを示す情報およびカスケードポートを示す情報のうち、自装置のダイレクトポートを示す情報のみを検索範囲としてフレームの送信先アドレスに対応する出力ポートを検索し、前記記憶媒体は、前記検索手段による検索により決定された出力ポートから出力されるフレームに含まれるデータを記憶する構成を採る。
また、ルーティング方法は、それぞれ他のスイッチ装置に接続する2つのカスケードポートと、それぞれ自装置の配下にある記憶媒体に接続する少なくとも1つのダイレクトポートと、前記ダイレクトポートに接続するすべての記憶媒体のアドレスに、それぞれの記憶媒体に接続するダイレクトポートを示す情報を対応付けて記憶する記憶手段とを備えるスイッチ装置におけるルーティング方法であって、一方のカスケードポートから入力されたフレームが、当該フレームの送信元から送信先の間の転送経路に配置される規定数のスイッチ装置を既に経由したか否かを判定する判定ステップと、前記判定ステップにおける判定の結果、前記フレームが規定数のスイッチ装置をまだ経由していない場合に、当該フレームを他方のカスケードポートから出力する出力ステップと、前記判定ステップにおける判定の結果、前記フレームが規定数のスイッチ装置を既に経由している場合に、当該フレームをダイレクトポートに出力することを決定する決定ステップと、前記決定ステップにてフレームをダイレクトポートに出力することが決定された場合に、前記記憶手段によって記憶された自装置のダイレクトポートを示す情報において、前記フレームの送信先アドレスに対応する出力ポートを検索する検索ステップとを有し、前記検索ステップは、前記記憶手段によって記憶されたダイレクトポートを示す情報およびカスケードポートを示す情報のうち、自装置のダイレクトポートを示す情報のみを検索範囲としてフレームの送信先アドレスに対応する出力ポートを検索するようにした。
これらによれば、フレームが規定数のスイッチ装置をまだ経由していない場合には、無条件にフレームを隣接するスイッチ装置へ出力することができ、ポートを決定する処理を実行する必要がない。換言すれば、フレームの送信先に直接接続するスイッチ装置以外のスイッチ装置では、フレームが経由したスイッチ装置の数に対する判定のみで、フレームを出力するポートを決定することができる。したがって、フレーム転送の遅延を削減し、記憶媒体へのデータの書き込みおよび記憶媒体からのデータの読み出しを高速化することができる。
本明細書に開示されたスイッチ装置、ストレージシステム、およびルーティング方法によれば、フレーム転送の遅延を削減し、記憶媒体へのデータの書き込みおよび記憶媒体からのデータの読み出しを高速化することができる。
以下、本発明の一実施の形態について、図面を参照して詳細に説明する。以下においては、複数の計算装置と複数の記憶媒体がそれぞれスイッチを介して接続されたストレージシステムについて説明する。また、本実施の形態に係るストレージシステムにおいては、計算装置と記憶媒体との間で双方向にフレームが送受信されるが、以下では、主に計算装置から記憶媒体へフレームが送信される場合を中心に説明する。ただし、記憶媒体から計算装置へフレームが送信される場合にも、本発明を同様に適用することができる。
図1は、本実施の形態に係るストレージシステムの概略構成を示すブロック図である。同図に示すストレージシステムにおいては、計算装置100−1、100−2がルートスイッチ200を介して複数の記憶装置300に接続されている。各記憶装置300は、それぞれスイッチ310およびディスク部320を備えている。
計算装置100−1、100−2は、記憶装置300のディスク部320にデータを書き込むコマンドやデータそのものをフレームに格納して送信したり、記憶装置300のディスク部320からデータを読み出すコマンドをフレームに格納して送信したりする。このとき、計算装置100−1、100−2は、フレーム送信先となるディスク部320内の記憶媒体のアドレスを送信先アドレスとしてフレームのヘッダ部に格納する。
また、計算装置100−1、100−2は、フレーム送信先となるディスク部320内の記憶媒体までの経路上にあるスイッチ(ルートスイッチ200およびスイッチ310)の数をホップ数としてフレームのヘッダ部に格納する。このとき、計算装置100−1、100−2は、ネットワークの初期化時などに作成したホップ数テーブルを参照して、フレーム送信先に対応するホップ数をフレームのヘッダ部に格納する。すなわち、計算装置100−1、100−2は、ネットワークの初期化時などに、各スイッチ310において作成されるルーティングテーブルを参照し、例えば図2に示すようなホップ数テーブルをそれぞれ作成しておく。
ここで、例えば計算装置100−1が図2に示すホップ数テーブルを作成した場合、計算装置100−1といずれかのディスク部320内にあるディスクD11との間には、ルートスイッチ200を含めてスイッチが3つあることがわかる。同様に、計算装置100−1とディスクDmnの間には、スイッチが4つあることになる。このようなホップ数テーブルは、計算装置100−1、100−2がストレージシステム全体におけるスイッチ310とディスク部320内の記憶媒体との接続関係をルーティングテーブルから把握することにより、作成することが可能である。
そして、ホップ数テーブルが作成された後の通常運用時には、計算装置100−1、100−2は、例えば図3に示すようなフレーム構成のフレームを送信する。図3に示すフレームは、先頭から順にSOF(Start Of Frame)410、ヘッダ部420、データ部430、CRC(Cyclic Redundancy Check)440、およびEOF(End Of Frame)450の5つの領域を有している。
SOF410は、フレームの始端を示す部分であり、EOF450は、フレームの終端を示す部分である。これらのSOF410およびEOF450によって、フレームごとの境界が示されている。
ヘッダ部420は、フレームの転送に関する制御情報を含む部分であり、具体的には、DA(Destination Address:送信先アドレス)421、SA(Source Address:送信元アドレス)422、およびホップ数423を含んでいる。DA421およびSA422は、それぞれフレームの送信先および送信元のアドレスであり、計算装置100−1、100−2のアドレスやディスク部320内の記憶媒体のアドレスが格納されている。ホップ数423は、フレームが送信先へ到達するまでに経由するスイッチ(ルートスイッチ200およびスイッチ310)の数を示しており、上述したホップ数テーブルにおいて送信先の記憶媒体に対応するホップ数が格納されている。すなわち、計算装置100−1、100−2においてフレームに格納されるホップ数423は、フレームの送信元と送信先の組み合わせに固有の規定数であり、ストレージシステム内のネットワークのトポロジー構成から定まる。
データ部430は、送信すべきデータの本体を含む部分であり、フレームの送信先となっている記憶媒体に書き込むデータや記憶媒体からデータを読み出すコマンドなどが格納されている。CRC440は、フレームの転送中に発生した誤りを検出するための保護チェックコードである。
図1に戻って、ルートスイッチ200は、計算装置100−1、100−2と各記憶装置300とを接続するスイッチであり、計算装置100−1、100−2から送信されたフレームを、フレームの送信先となっている記憶媒体を備える記憶装置300に接続するポートへ出力する。同様に、ルートスイッチ200は、記憶装置300から送信されたフレームを、フレームの送信先となっている計算装置100−1、100−2に接続するポートへ出力する。このとき、ルートスイッチ200は、ネットワーク初期化時などに作成したルーティングテーブルを参照し、フレームの送信先アドレスに対応するポートへフレームを出力する。
また、ルートスイッチ200は、フレームをポートから出力する際、フレームのヘッダ部に格納されたホップ数を1減算した上で格納しなおす。すなわち、ルートスイッチ200は、フレームが送信先に到達するまでに経由するスイッチの数に等しいホップ数から、自己の分に相当する1を減算して転送する。したがって、ルートスイッチ200から出力されたフレームのホップ数は、フレームがルートスイッチ200以降送信先に到達するまでに経由するスイッチ310の数に等しくなっている。
なお、図1においては、ルートスイッチ200が4つのポートを有し、2つのポートにそれぞれ計算装置100−1、100−2が接続され、残りの2つのポートにそれぞれ記憶装置300が接続されるものとしたが、接続関係はこれに限定されない。すなわち、ルートスイッチ200は、2つ以上のポートを有していれば良く、それぞれのポートに計算装置および記憶装置のどちらが接続されるかは任意で良い。ただし、本実施の形態においては、計算装置から記憶装置へフレームが転送されるため、ルートスイッチ200の少なくとも1つのポートには計算装置が接続されており、少なくとも1つの他のポートには記憶装置が接続されているものとする。
記憶装置300は、1つの筐体内にスイッチ310およびディスク部320を備えており、スイッチ310によってルートスイッチ200または他の記憶装置300に接続されている。なお、図1において、異なる筐体に対応する複数の記憶装置300が一体的に構成されても良く、さらに計算装置100−1、100−2およびルートスイッチ200を含めたストレージシステム全体が一体的に構成されても良い。また、個々の記憶装置300は、必ずしも1つの筐体に対応する必要はないが、本実施の形態においては、互いに直接接続されたスイッチ310およびディスク部320の組み合わせが同一筐体内に配置されるものとする。すなわち、各スイッチ310は、配下にあるディスク部320とともに同一筐体内に配置されるものとする。
スイッチ310は、2つのカスケードポート(以下「Cポート」と略記する)を介してルートスイッチ200または他のスイッチ310に接続するとともに、ダイレクトポート(以下「Dポート」と略記する)を介して配下にある同一筐体内のディスク部320に接続する。そして、スイッチ310は、一方のCポートから入力されたフレームのホップ数が2以上の場合は、ホップ数を1減算した上で、他方のCポートからフレームを出力する。また、一方のCポートから入力されたフレームのホップ数が1の場合は、スイッチ310は、ルーティングテーブルを参照して、送信先アドレスに対応するDポートからフレームを出力する。スイッチ310の構成および動作については、後に詳述する。
ディスク部320は、少なくとも1つのハードディスクドライブ(以下「HDD」と略記する)などの記憶媒体を備えており、各記憶媒体は、スイッチ310のDポートから出力されたフレームに格納されたデータを記憶する。また、ディスク部320は、スイッチ310のDポートから出力されたフレームにデータを読み出すコマンドが格納されている場合は、記憶媒体に記憶された読み出し対象のデータをフレーム化してスイッチ310へ出力する。
図4は、本実施の形態に係る記憶装置300の要部構成を示すブロック図である。同図において、記憶装置300は、図1と同様にスイッチ310およびディスク部320を備えている。そして、スイッチ310は、Cポート311、ホップ数判定部312、Cポート313、ルーティングテーブル314、ポート決定部315、およびDポート316−1〜316−n(nは1以上の整数)を有している。また、ディスク部320は、フレーム処理部321−1〜321−nおよびHDD322−1〜322−nを有している。
まず、スイッチ310の構成を説明すると、Cポート311は、ルートスイッチ200または他のスイッチ310に接続するカスケードポートであり、データやコマンドを含むフレームを入出力する。ここでは、Cポート311は、図4に示す記憶装置300よりも計算装置100−1、100−2に近い側に設置されたルートスイッチ200またはスイッチ310に接続しているものとする。
ホップ数判定部312は、Cポート311またはCポート313から入力されたフレームのヘッダ部に格納されたホップ数が2以上であるか否かを判定する。そして、ホップ数判定部312は、ホップ数が2以上である場合は、ホップ数から1を減算した上でフレームのヘッダ部に格納しなおし、フレームが入力されたCポートに対向するCポート313またはCポート311から出力する。つまり、ホップ数判定部312は、ホップ数が2以上である場合は、フレームが送信先に到達するまでに自スイッチ310を含めて2つ以上のスイッチを経由することを意味するため、フレームの送信先が同一筐体内のディスク部320には属さないと判断する。このため、ホップ数判定部312は、自スイッチ310の分に相当する1をホップ数から減算した上で、入力されたCポートとは反対のCポート313またはCポート311からフレームを他のスイッチ310へ出力する。
このとき、ホップ数判定部312は、ルーティングテーブル314を参照したルーティングなどを行う必要がなく、フレームのヘッダ部に格納されたホップ数に関する判定のみで即座にフレームをCポート313またはCポート311から出力することができる。したがって、フレームがスイッチ310を通過する際の遅延を最小限に抑制することができ、フレーム転送の遅延を削減することができる。
一方、ホップ数判定部312は、ホップ数が1である場合は、フレームをポート決定部315へ出力する。すなわち、ホップ数判定部312は、ホップ数が1である場合は、フレームが送信先に到達するまでに自スイッチ310のみを経由することを意味するため、フレームの送信先が同一筐体内のディスク部320に属すると判断する。このため、ホップ数判定部312は、ルーティングテーブル314を参照したルーティングを実行させるために、フレームをポート決定部315へ出力する。
さらに、ホップ数判定部312は、ホップ数が0である場合は、強制的にルーティングテーブル314を参照したルーティングを実行させるために、フレームをポート決定部315へ出力する。上述したように、計算装置100−1、100−2は、ホップ数テーブルを参照してフレームのヘッダ部にホップ数を格納するが、例えば特殊なコマンドなどをデータ部に格納する特殊なフレームについては、ホップ数テーブルとは無関係にホップ数を0とする。すなわち、計算装置100−1、100−2は、ホップ数テーブルに記憶された実際のホップ数の代わりに、強制的なルーティングを指示する強制ルーティング指示情報として0をフレームのヘッダ部に格納する。
こうすることにより、ホップ数判定部312は、ホップ数として0を格納している特殊なフレームをすべてポート決定部315へ出力し、強制的にルーティングテーブル314を参照したルーティングを実行させる。したがって、すべてのスイッチにおいてルーティングテーブルを参照する従来と同様のルーティングを実行することも可能であり、特殊なフレームに関しては、確実なルーティングを行うことができる。なお、強制ルーティング指示情報としては、0以外にも例えば空白データなどを使用しても良い。要するに、1以上の数値とは異なる無効な値を強制ルーティング指示情報として用いることが可能である。
Cポート313は、他のスイッチ310に接続するカスケードポートであり、データやコマンドを含むフレームを入出力する。ここでは、Cポート313は、図4に示す記憶装置300よりも計算装置100−1、100−2から離れた側に設置されたスイッチ310に接続しているものとする。
ルーティングテーブル314は、ストレージシステム内のすべての計算装置100−1、100−2およびHDD322−1〜322−nなどの装置のアドレスとこれらの装置に対応するポートとを関連付けて記憶している。具体的には、例えば図5に示すように、ルーティングテーブル314は、計算装置100−1、100−2のアドレスには、Cポート311を関連付けて記憶している。また、図5に示すルーティングテーブル314は、同一の記憶装置300内のディスク部320に属するディスク(HDD)322−1〜322−nのアドレスには、それぞれのディスクに接続するDポート316−1〜316−nを関連付けて記憶している。さらに、図5に示すルーティングテーブル314は、他の記憶装置内のディスク部に属するディスクD11、D12などのアドレスには、Cポート313を関連付けて記憶している。
なお、図5において、ディスクD11、D12は、記憶装置300よりも計算装置100−1、100−2から離れた側に設置された記憶装置内に配置されているものとしているため、対応するポートがCポート313となっている。同様に考えて、記憶装置300よりも計算装置100−1、100−2に近い側に設置された記憶装置内に配置されたディスクのアドレスには、Cポート311が関連付けて記憶されていることとなる。
ポート決定部315は、ホップ数判定部312から出力されたフレームのヘッダ部から送信先アドレスを取得し、ルーティングテーブル314を参照して、送信先アドレスに対応するポートをフレームの出力ポートに決定する。すなわち、ポート決定部315は、ルーティングテーブル314を使用したルーティングにより、ヘッダ部に格納されたホップ数が1または0のフレームの出力ポートを決定する。そして、ポート決定部315は、決定した出力ポートからフレームを出力する。
ところで、ポート決定部315に入力されたフレームのうちホップ数が1のフレームは、送信先が必ず記憶装置300内のHDD322−1〜322−nのいずれかである。そこで、ポート決定部315は、ホップ数が1の場合、ルーティングテーブル314においてHDD322−1〜322−nのアドレスのみを検索範囲とし、フレームの送信先アドレスと一致するアドレスを検索しても良い。こうすることにより、ポート決定部315がルーティングテーブル314を参照してルーティングを実行する際にも、あらかじめ検索範囲を限定して送信先アドレスの検索に要する時間を短縮することができる。結果として、フレーム転送の遅延を削減することができる。
また、ポート決定部315は、ネットワークの初期化時などに、ディスク部320から出力されたフレームを計算装置100−1、100−2へ転送する場合のホップ数テーブルを作成する。すなわち、ポート決定部315は、計算装置100−1、100−2によって作成されたホップ数テーブルから、同一の記憶装置300内のHDD322−1〜322−nに対応するホップ数を計算装置100−1、100−2それぞれに関するホップ数として抽出する。そして、ポート決定部315は、例えば図6に示すように、抽出されたホップ数をそれぞれの計算装置100−1、100−2に対応付け、ホップ数テーブルとして記憶する。
ポート決定部315に記憶されたホップ数テーブルは、HDD322−1〜322−nに記憶されたデータを計算装置100−1、100−2へ送信する際に用いられる。すなわち、ポート決定部315は、Dポート316−1〜316−nを介して自スイッチ310に入力されたフレームのヘッダ部から送信先アドレスを取得し、ホップ数テーブルを参照して送信先アドレスに対応するホップ数をフレームのヘッダ部に格納する。その後、ポート決定部315は、ルーティングテーブル314を参照して、フレームの送信先アドレスに対応するポートをフレームの出力ポートに決定する。ここでは、フレームの送信先が計算装置100−1、100−2であるため、Cポート311が出力ポートに決定される。そして、ポート決定部315は、自スイッチ310の分に相当する1をヘッダ部のホップ数から減算した上で、出力ポートに決定されたCポート311からフレームを出力する。
Dポート316−1〜316−nは、それぞれディスク部320のHDD322−1〜322−nに接続するダイレクトポートであり、データやコマンドを含むフレームを入出力する。すなわち、Dポート316−1〜316−nは、配下にあるHDD322−1〜322−nに接続し、HDD322−1〜322−nとの間でデータやコマンドをやり取りする。
次に、ディスク部320の構成を説明すると、フレーム処理部321−1〜321−nは、スイッチ310のDポート316−1〜316−nを介して出力されたフレームに対して所定の処理を施す。具体的には、フレーム処理部321−1〜321−nは、フレームの末尾に付加されたCRCなどの保護チェックコードを用いて、転送中にフレームの誤りが発生していないことを確認する。そして、フレーム処理部321−1〜321−nは、対応するHDD322−1〜322−nにフレームのデータ部に格納されたデータを書き込む。
また、フレーム処理部321−1〜321−nは、フレームのデータ部にデータの読み出しを指示するコマンドが格納されている場合には、対応するHDD322−1〜322−nからデータを読み出し、読み出したデータをフレーム化する。このとき、フレーム処理部321−1〜321−nは、計算装置100−1、100−2が送信するフレームと同様のフレーム構成(図3参照)のフレームを生成する。ただし、ヘッダ部のホップ数については、上述したように、後にポート決定部315がホップ数テーブルを参照して格納する。フレーム処理部321−1〜321−nは、HDD322−1〜322−nから読み出されたデータを含むフレームをDポート316−1〜316−nを介してスイッチ310へ入力する。
HDD322−1〜322−nは、それぞれデータを記憶する記憶媒体であり、ストレージシステム内のすべての記憶媒体を一意に識別するアドレスがそれぞれに付与されている。
次いで、上記のように構成されたスイッチ310の動作について、図7に示すフロー図を参照しながら説明する。以下においては、ネットワークの初期化時における動作とネットワークの通常運用時における動作との両方について説明する。また、ネットワークの通常運用時の動作としては、計算装置100−1からストレージシステム内のいずれかの記憶媒体へフレームが送信された場合の動作を中心に説明する。
ネットワークの初期化時には、計算装置100−1、100−2や記憶媒体のアドレスと出力ポートとが対応付けられたルーティングテーブル314がスイッチ310内に作成される(ステップS101)。ルーティングテーブル314は、スイッチ310を含むストレージシステム内のすべてのスイッチによって作成される。そして、計算装置100−1、100−2によって、各スイッチが作成したルーティングテーブルが参照され、計算装置100−1、100−2それぞれから各記憶媒体へのホップ数を保持するホップ数テーブルが作成される。
計算装置100−1、100−2によってそれぞれ作成されたホップ数テーブルの情報は、スイッチ310にも通知され、ポート決定部315によって、HDD322−1〜322−nから計算装置100−1、100−2へのホップ数を保持するホップ数テーブルが作成される(ステップS102)。すなわち、ポート決定部315によって、HDD322−1〜322−nから読み出されたデータを含むフレームが計算装置100−1、100−2に到達するまでに経由するスイッチの数がそれぞれホップ数テーブルに記憶される。これにより、ネットワークの通常運用が可能となり、計算装置100−1、100−2による記憶媒体へのデータの書き込みや記憶媒体からのデータの読み出しが開始される。
ネットワークの通常運用時には、計算装置100−1からデータやコマンドを含むフレームが送信される。送信されたフレームは、ルートスイッチ200などのスイッチを経由して、スイッチ310のCポート311に受信される(ステップS103)。受信されたフレームは、ホップ数判定部312へ出力され、ホップ数判定部312によって、フレームのヘッダ部に格納されたホップ数が2以上であるか否かが判定される(ステップS104)。
この判定の結果、ホップ数が2以上であれば(ステップS104Yes)、ホップ数判定部312によって、フレームのヘッダ部に格納されたホップ数から1が減算された上で(ステップS105)、フレームがCポート313へ出力される(ステップS106)。すなわち、Cポート311からスイッチ310へ入力されたフレームのホップ数が2以上である場合は、このフレームの送信先が記憶装置300内のHDD322−1〜322−nではないため、フレームは、即座にCポート313を介して他のスイッチへ出力される。このとき、ホップ数判定部312によって、自スイッチ310に相当する1がホップ数から減算され、減算によりホップ数が更新されたフレームが他のスイッチへ出力される。
このように、ホップ数が2以上の場合は、ルーティングテーブル314を参照したルーティングが実行されることなく、フレームがスイッチ310を通過するのに要する時間が最小限に抑制される。したがって、フレーム転送の遅延を削減することができる。また、ホップ数から自スイッチ310の分に相当する1が減算されるため、スイッチ310から出力されたフレームのホップ数は、スイッチ310以降フレームが送信先に到達するまでに経由するスイッチの数に等しくなっている。この結果、スイッチ310以降にフレームが経由するスイッチにおいても、スイッチ310と同様にホップ数に応じたルーティングを実行することができる。
一方、ホップ数が2以上であるか否かの判定の結果、ホップ数が2未満であれば(ステップS104No)、引き続きホップ数判定部312によって、ホップ数が1であるか否かが判定される(ステップS107)。
この判定の結果、ホップ数が1であれば(ステップS107Yes)、フレームは、ホップ数判定部312からポート決定部315へ出力され、ポート決定部315によってルーティングテーブル314が参照され、フレームを出力するDポートが決定される(ステップS108)。すなわち、ポート決定部315によって、フレームの送信先アドレスに対応付けてルーティングテーブル314に記憶されたポートが出力ポートに決定される。ここでは、ホップ数が1であるため、フレームの送信先は、HDD322−1〜322−nのいずれかであることになり、ポート決定部315によって、Dポート316−1〜316−nのいずれかが出力ポートに決定される。
このとき、フレームの送信先がHDD322−1〜322−nに限定されていることから、ポート決定部315によって、ルーティングテーブル314の一部のアドレスを検索範囲とした検索が行われるようにしても良い。具体的には、HDD322−1〜322−nのアドレスのみを検索範囲として、フレームの送信先アドレスに一致するアドレスが検索されるようにしても良い。こうすることにより、ホップ数が1である場合にも、フレームがスイッチ310を通過するのに要する時間を短縮することができる。
出力ポートの決定後、フレームは、出力ポートとなったDポートへ出力され(ステップS109)、Dポートを介してディスク部320へ出力される。ディスク部320では、出力ポートとなったDポートに対応するフレーム処理部321−1〜321−nによって、フレームの誤り検出などの処理が実行される。その後、出力ポートとなったDポートに対応する記憶媒体(HDD322−1〜322−n)を対象として、フレームのデータ部に格納されたデータの書き込みや、フレームのデータ部に格納されたコマンドが指定するデータの読み出しが行われる。
また、ホップ数が1であるか否かの判定の結果、ホップ数が1でなければ(ステップS107No)、ホップ数は、強制ルーティング指示情報に相当する0などの無効な値となっていることになる。このため、フレームは、ホップ数判定部312からポート決定部315へ出力され、ポート決定部315によって強制的にルーティングテーブル314を参照したルーティングが実行される(ステップS110)。すなわち、ポート決定部315によって、フレームの送信先アドレスに対応付けてルーティングテーブル314に記憶されたポートが出力ポートに決定される。ここでは、ホップ数が0などの無効な値であるため、フレームの送信先は、HDD322−1〜322−nとは限らず、ポート決定部315によって、入力ポートであるCポート311以外のCポート313およびDポート316−1〜316−nのいずれかが出力ポートに決定される。
このとき、ホップ数が1の場合とは異なり、フレームの送信先が限定されていないため、ポート決定部315によって、ルーティングテーブル314のすべてのアドレスを検索範囲とした検索が行われる。ただし、ホップ数が0などの無効な値となるのは、例えばフレームが特殊なコマンドを含む場合や、ストレージシステム内のいずれかの記憶装置がスイッチ310と同様のスイッチを備えていない場合などの希少なケースに限られる。したがって、強制的なルーティングが頻繁に実行されることはなく、ホップ数が1以上の場合の動作により、確実にデータの書き込みや読み出しの高速化が図られる。
出力ポートの決定後、フレームは、出力ポートとなったCポート313またはDポート316−1〜316−nから他のスイッチまたはディスク部320へ転送される(ステップS111)。フレームが他のスイッチへ転送された場合は、ホップ数が0であるため、他のスイッチにおいても強制的にルーティングテーブルを使用したルーティングが実行される。また、フレームがディスク部320へ転送された場合は、ホップ数が1である場合と同様に、HDD322−1〜322−nを対象として、データの書き込みや読み出しが行われる。
なお、図7においては省略したが、HDD322−1〜322−nから読み出されたデータが計算装置100−1、100−2へ送信される場合には、フレーム処理部321−1〜321−nによって、読み出されたデータがフレーム化される。そして、得られたフレームがDポート316−1〜316−nを介してスイッチ310へ入力されると、ポート決定部315によって、ネットワークの初期化時に作成されたホップ数テーブルが参照され、フレームのヘッダ部に送信先の計算装置に対応するホップ数が格納される。さらに、ポート決定部315によって、ルーティングテーブル314が参照され、フレームの送信先の計算装置に対応する出力ポートが決定される。ここでは、計算装置100−1、100−2のアドレスは、いずれもCポート311に対応付けられているため、ポート決定部315によって、出力ポートがCポート311に決定される。そして、ポート決定部315によって、自スイッチ310の分に相当する1がヘッダ部のホップ数から減算された上で、Cポート311からフレームが出力される。
次に、本実施の形態に係るフレームのルーティングについて、さらに具体的に例を挙げながら説明する。図8は、本実施の形態に係る記憶装置の接続を模式的に示す図である。同図においては、2つの記憶装置300−1、300−2がスイッチ310−1、310−2によって接続されている。そして、スイッチ310−1、310−2は、それぞれカスケードポートとしてポートP0、Pn+1を有しており、ダイレクトポートとしてポートP1〜Pnを有している。なお、図8において、フレームを送信する計算装置は、スイッチ310−1のポートP0側に接続されているものとする。
スイッチ310−1は、ポートPn+1を介してスイッチ310−2に接続されており、ポートP1〜Pnを介して、それぞれディスク部320−1に属するディスクD1〜Dnに接続されている。同様に、スイッチ310−2は、ポートP0を介してスイッチ310−1に接続されており、ポートP1〜Pnを介して、それぞれディスク部320−2に属するディスクDn+1〜D2nに接続されている。
このような接続関係が成立している場合、スイッチ310−1、310−2は、それぞれ図9に示すようなルーティングテーブルを作成して保持することになる。すなわち、スイッチ310−1は、計算装置にポートP0を対応付けるエントリ501と、ディスクD1〜DnにポートP1〜Pnを対応付けるエントリ502と、ディスクDn+1〜D2nにポートPn+1を対応付けるエントリ503とを含むルーティングテーブルを保持する。また、スイッチ310−2は、計算装置にポートP0を対応付けるエントリ511と、ディスクD1〜DnにポートP0を対応付けるエントリ512と、ディスクDn+1〜D2nにポートP1〜Pnを対応付けるエントリ513とを含むルーティングテーブルを保持する。
ここでは、1つ目の例として、計算装置が記憶装置300−2のディスクD2nへフレームを送信する場合のルーティングについて説明する。
計算装置から送信されたフレームは、ポートP0を介してスイッチ310−1に入力される。スイッチ310−1では、フレームのヘッダ部に格納されたホップ数が2以上であるか否かが判定される。フレームの送信先は、スイッチ310−2に接続されたディスクD2nであるため、フレームがスイッチ310−1に入力された時点では、フレームのヘッダ部にはホップ数として2が格納されている。したがって、ホップ数が2以上であるため、スイッチ310−1は、フレームが入力されたカスケードポートP0とは異なるカスケードポートPn+1から即座にフレームを出力する。
すなわち、スイッチ310−1は、図9に示したルーティングテーブルを参照することなく、ホップ数から自スイッチ310−1に相当する1を減算した上で、フレームをポートPn+1から出力する。このとき、ホップ数から1が減算されたため、ポートPn+1から出力されたフレームのホップ数は1となっている。
スイッチ310−1から出力されたフレームは、ポートP0を介してスイッチ310−2に入力される。スイッチ310−2では、スイッチ310−1と同様に、フレームのヘッダ部に格納されたホップ数が2以上であるか否かが判定される。上述したように、フレームがスイッチ310−2に入力された時点では、フレームのヘッダ部にはホップ数として1が格納されている。したがって、ホップ数が2未満であるため、スイッチ310−2は、図9に示したルーティングテーブルを参照してルーティングを実行する。
すなわち、スイッチ310−2は、フレームのヘッダ部に格納されている送信先アドレスと一致するアドレスをルーティングテーブルから検索し、該当するアドレスに対応するポートをフレームの出力ポートに決定する。このとき、ホップ数が1であることから、フレームの送信先は、必ずディスクDn+1〜D2nのいずれかであることになり、ルーティングテーブルのエントリ513のみが検索範囲とされる。つまり、エントリ511、512は、検索範囲から除外され、ディスクDn+1〜D2nのアドレスのみの中からフレームの送信先アドレスが検索される。このため、ルーティングテーブルからフレームの送信先アドレスに一致するアドレスを検索するのに要する時間を短縮することができる。
送信先アドレスの検索の結果、出力ポートがディスクD2nに対応するポートPnに決定されると、フレームは、出力ポートとなったポートPnから出力され、例えばフレームのデータ部に格納されたデータがディスクD2nに書き込まれる。ここまでの過程において、スイッチ310−1では、ルーティングテーブルを用いた送信先アドレスの検索が一切不要であり、スイッチ310−2では、ルーティングテーブルの一部のエントリ513を検索範囲とした送信先アドレスの検索が実行されている。したがって、それぞれのスイッチ310−1、310−2においてルーティングテーブルのすべてのエントリを検索範囲とした送信先アドレスの検索が実行される場合と比較すると、大幅にフレーム転送の遅延が削減されることがわかる。
次に、2つ目の例として、計算装置が記憶装置300−1のディスクDnへフレームを送信する場合のルーティングについて説明する。
計算装置から送信されたフレームは、ポートP0を介してスイッチ310−1に入力される。スイッチ310−1では、フレームのヘッダ部に格納されたホップ数が2以上であるか否かが判定される。フレームの送信先は、スイッチ310−1に接続されたディスクDnであるため、フレームがスイッチ310−1に入力された時点で、フレームのヘッダ部にはホップ数として1が格納されている。したがって、ホップ数が2未満であるため、スイッチ310−1は、図9に示したルーティングテーブルを参照してルーティングを実行する。
すなわち、スイッチ310−1は、フレームのヘッダ部に格納されている送信先アドレスと一致するアドレスをルーティングテーブルから検索し、該当するアドレスに対応するポートをフレームの出力ポートに決定する。このとき、ホップ数が1であることから、フレームの送信先は、必ずディスクD1〜Dnのいずれかであることになり、ルーティングテーブルのエントリ502のみが検索範囲とされる。つまり、エントリ501、503は、検索範囲から除外され、ディスクD1〜Dnのアドレスのみの中からフレームの送信先アドレスが検索される。このため、ルーティングテーブルからフレームの送信先アドレスに一致するアドレスを検索するのに要する時間を短縮することができる。
送信先アドレスの検索の結果、出力ポートがディスクDnに対応するポートPnに決定されると、フレームは、出力ポートとなったポートPnから出力され、例えばフレームのデータ部に格納されたデータがディスクDnに書き込まれる。ここまでの過程において、スイッチ310−1では、ルーティングテーブルの一部のエントリ502を検索範囲とした送信先アドレスの検索が実行されている。したがって、スイッチ310−1においてルーティングテーブルのすべてのエントリを検索範囲とした送信先アドレスの検索が実行される場合と比較すると、フレーム転送の遅延が削減されることがわかる。
以上のように、本実施の形態によれば、フレームが送信先に到達するまでに経由するスイッチの数に等しいホップ数がフレームのヘッダ部に格納されており、各スイッチでは、ホップ数が2以上であれば、ホップ数から1を減算した上で無条件に隣接するスイッチへフレームが転送される。そして、ホップ数が1となっている場合に、ルーティングテーブルが参照され、同一の記憶装置内に配置された記憶媒体のアドレスを検索範囲として、フレームの送信先アドレスに一致するアドレスが検索される。このため、スイッチに入力されたフレームのホップ数が2以上であれば、このフレームが即座にスイッチから出力され、スイッチに入力されたフレームのホップ数が1であれば、迅速にフレームの出力ポートが決定される。したがって、フレームが転送経路にあるスイッチを通過するのに要する時間を短縮することができる。結果として、フレーム転送の遅延を削減し、記憶媒体へのデータの書き込みおよび記憶媒体からのデータの読み出しを高速化することができる。
なお、上記一実施の形態においては、フレームのヘッダ部に格納されたホップ数が、スイッチ310のホップ数判定部312によって1ずつ減算されるものとした。しかし、フレームがスイッチを通過するたびに、ホップ数を1ずつ加算することによっても本発明を実現することができる。この場合には、各スイッチにおいて、フレームのヘッダ部に格納されたホップ数と閾値とが比較されるようにし、ホップ数と閾値が等しくなったスイッチにおいてのみ、ルーティングテーブルを使用したルーティングが実行されるようにすれば良い。
具体的には、ホップ数を加算する場合のフレーム構成は、例えば図10に示すもののようになる。図10において、図3と同じ部分には同じ符号を付している。ホップ数を減算する場合(図3)との違いは、フレームのヘッダ部420にホップ数601および閾値602が含まれている点である。
ホップ数601は、フレームが送信されてから現在までに経由したスイッチの数を示している。すなわち、フレームが最初に送信される時点では、ホップ数601には0が格納されており、フレームがスイッチを通過するたびに、ホップ数601に1が加算されていく。
閾値602は、フレームが送信先へ到達するまでに経由するスイッチの合計数を示しており、ホップ数テーブルにおいて送信先の記憶媒体に対応するホップ数が格納されている。つまり、ホップ数を加算する場合には、ホップ数を減算する場合(図3)のホップ数423と同じ値が閾値602に格納されることになる。
このようなフレーム構成となっているため、各記憶装置のスイッチでは、フレームが入力されると、ヘッダ部のホップ数601に1が加算される。そして、加算後のホップ数601と閾値602とが比較され、ホップ数601が閾値602未満であれば、無条件に隣接するスイッチへフレームが転送される。一方、ホップ数601が閾値602に等しければ、ルーティングテーブルが参照され、同一の記憶装置内に配置された記憶媒体のアドレスを検索範囲として、フレームの送信先アドレスに一致するアドレスが検索される。
このように、ホップ数を1ずつ加算する場合には、フレームのヘッダ部にホップ数の閾値を格納しておき、各スイッチがホップ数と閾値の比較を行うことにより、上記一実施の形態と同様の効果が得られる。つまり、ホップ数を1ずつ減算する場合と1ずつ加算する場合のいずれにおいても、フレームのヘッダ部に格納されるホップ数は、フレームが送信元から転送される間に経由したスイッチの数を表している。そして、ホップ数に対する判定は、ネットワークのトポロジー構成上フレームの送信元と送信先の間に配置される規定数のスイッチをフレームが既に経由したか否かの判定に他ならない。
また、上記一実施の形態においては、ネットワークの初期化時に、ストレージシステム内のすべての計算装置および記憶媒体のアドレスと出力ポートとを対応付けたルーティングテーブルが作成されるものとした。しかし、フレームのホップ数が1であると判定されたスイッチにおいては、同一の記憶装置内に配置された記憶媒体のアドレスのみが検索範囲となるため、これらの記憶媒体のアドレスと出力ポートを対応付けたルーティングテーブルが作成されるようにしても良い。すなわち、スイッチにおけるルーティングテーブルを使用したルーティングの際に、必要となるアドレスは、スイッチと同一筐体内に配置された記憶媒体のアドレスのみである。そこで、各スイッチによって、同一筐体内に配置された記憶媒体のアドレスのみに関するルーティングテーブルが作成されるようにしても本発明を実現することができる。
以上の実施の形態に関して、さらに以下の付記を開示する。
(付記1)それぞれ他のスイッチ装置に接続する2つのカスケードポートと、
それぞれ自装置の配下にある記憶媒体に接続する少なくとも1つのダイレクトポートと、
一方のカスケードポートから入力されたフレームが、当該フレームの送信元から送信先の間の転送経路に配置される規定数のスイッチ装置を既に経由したか否かを判定する判定手段と、
前記判定手段による判定の結果、フレームが規定数のスイッチ装置をまだ経由していない場合に、当該フレームを他方のカスケードポートから出力する出力手段と、
前記判定手段による判定の結果、フレームが規定数のスイッチ装置を既に経由している場合に、当該フレームを出力するダイレクトポートを決定する決定手段と
を有することを特徴とするスイッチ装置。
(付記2)前記判定手段は、
フレームに格納されたホップ数情報を参照して、フレームの送信元において前記規定数に等しい値に設定された後はフレームがスイッチ装置を経由するたびに1ずつ減算されるホップ数が1に等しいか否かを判定し、
前記出力手段は、
前記判定手段による判定の結果、ホップ数が1より大きい場合に、フレームを前記他方のカスケードポートから出力する
ことを特徴とする付記1記載のスイッチ装置。
(付記3)前記出力手段は、
フレームに格納されたホップ数情報が示すホップ数を1減算した上で、当該フレームを前記他方のカスケードポートから出力することを特徴とする付記2記載のスイッチ装置。
(付記4)前記判定手段は、
フレームに格納されたホップ数情報および閾値情報を参照して、フレームの送信元において0に設定された後はフレームがスイッチ装置を経由するたびに1ずつ加算されるホップ数が、閾値情報に含まれる前記規定数に等しいか否かを判定し、
前記出力手段は、
前記判定手段による判定の結果、ホップ数が前記規定数未満である場合に、フレームを前記他方のカスケードポートから出力する
ことを特徴とする付記1記載のスイッチ装置。
(付記5)前記判定手段は、
フレームに格納されたホップ数情報が示すホップ数を1加算した上で、1を加算後のホップ数が前記規定数に等しいか否かを判定することを特徴とする付記4記載のスイッチ装置。
(付記6)前記決定手段は、
前記ダイレクトポートに接続するすべての記憶媒体のアドレスに、それぞれの記憶媒体に接続するダイレクトポートを対応付けて記憶する記憶手段を含み、
フレームの送信先アドレスに対応付けて前記記憶手段に記憶されたダイレクトポートをフレームの出力ポートに決定することを特徴とする付記1記載のスイッチ装置。
(付記7)前記記憶手段は、
前記ダイレクトポートに接続しない装置のアドレスに、それぞれ前記2つのカスケードポートのいずれか一方を対応付けて記憶することを特徴とする付記6記載のスイッチ装置。
(付記8)前記決定手段は、
前記記憶手段によって記憶されたダイレクトポートおよびカスケードポートのうち、前記ダイレクトポートのみを検索範囲としてフレームの送信先アドレスに対応する出力ポートを検索することを特徴とする付記7記載のスイッチ装置。
(付記9)前記決定手段は、
フレームが強制ルーティング指示情報を含む場合には、前記判定手段による判定の結果とは無関係に、前記2つのカスケードポートおよび前記ダイレクトポートの中からフレームを出力するポートを決定することを特徴とする付記1記載のスイッチ装置。
(付記10)互いに接続してフレームを転送する複数のスイッチ装置と、各スイッチ装置に接続する記憶媒体とを備えるストレージシステムであって、
前記スイッチ装置は、
それぞれ他のスイッチ装置に接続する2つのカスケードポートと、
それぞれ自装置の配下にある記憶媒体に接続する少なくとも1つのダイレクトポートと、
一方のカスケードポートから入力されたフレームが、当該フレームの送信元から送信先の間の転送経路に配置される規定数のスイッチ装置を既に経由したか否かを判定する判定手段と、
前記判定手段による判定の結果、フレームが規定数のスイッチ装置をまだ経由していない場合に、当該フレームを他方のカスケードポートから出力する出力手段と、
前記判定手段による判定の結果、フレームが規定数のスイッチ装置を既に経由している場合に、当該フレームを出力するダイレクトポートを決定する決定手段と
を有し、
前記記憶媒体は、
前記決定手段によって決定されたダイレクトポートから出力されるフレームに含まれるデータを記憶する
ことを特徴とするストレージシステム。
(付記11)それぞれ他のスイッチ装置に接続する2つのカスケードポートと、それぞれ自装置の配下にある記憶媒体に接続する少なくとも1つのダイレクトポートとを備えるスイッチ装置におけるルーティング方法であって、
一方のカスケードポートから入力されたフレームが、当該フレームの送信元から送信先の間の転送経路に配置される規定数のスイッチ装置を既に経由したか否かを判定する判定ステップと、
前記判定ステップにおける判定の結果、フレームが規定数のスイッチ装置をまだ経由していない場合に、当該フレームを他方のカスケードポートから出力する出力ステップと、
前記判定ステップにおける判定の結果、フレームが規定数のスイッチ装置を既に経由している場合に、当該フレームを出力するダイレクトポートを決定する決定ステップと
を有することを特徴とするルーティング方法。
一実施の形態に係るストレージシステムの概略構成を示すブロック図である。 一実施の形態に係るホップ数テーブルの一例を示す図である。 一実施の形態に係るフレーム構成の一例を示す図である。 一実施の形態に係る記憶装置の要部構成を示すブロック図である。 一実施の形態に係るルーティングテーブルの一例を示す図である。 一実施の形態に係る他のホップ数テーブルの一例を示す図である。 一実施の形態に係るスイッチの動作を示すフロー図である。 一実施の形態に係る記憶装置の接続を模式的に示す図である。 図8のスイッチに係るルーティングテーブルを示す図である。 他の実施の形態に係るフレーム構成の一例を示す図である。
符号の説明
310 スイッチ
311、313 カスケードポート(Cポート)
312 ホップ数判定部
314 ルーティングテーブル
315 ポート決定部
316−1〜316−n ダイレクトポート(Dポート)
320 ディスク部
321−1〜321−n フレーム処理部
322−1〜322−n ハードディスクドライブ(HDD)

Claims (10)

  1. それぞれ他のスイッチ装置に接続する2つのカスケードポートと、
    それぞれ自装置の配下にある記憶媒体に接続する少なくとも1つのダイレクトポートと、
    前記ダイレクトポートに接続するすべての記憶媒体のアドレスに、それぞれの記憶媒体に接続するダイレクトポートを示す情報を対応付けて記憶する記憶手段と、
    一方のカスケードポートから入力されたフレームが、当該フレームの送信元から送信先の間の転送経路に配置される規定数のスイッチ装置を既に経由したか否かを判定する判定手段と、
    前記判定手段による判定の結果、前記フレームが規定数のスイッチ装置をまだ経由していない場合に、当該フレームを他方のカスケードポートから出力する出力手段と、
    前記判定手段による判定の結果、前記フレームが規定数のスイッチ装置を既に経由している場合に、当該フレームをダイレクトポートに出力することを決定する決定手段と、
    前記決定手段によってフレームをダイレクトポートに出力することが決定された場合に、前記記憶手段によって記憶された自装置のダイレクトポートを示す情報において、前記フレームの送信先アドレスに対応する出力ポートを検索する検索手段とを有し、
    前記検索手段は、
    前記記憶手段によって記憶されたダイレクトポートを示す情報およびカスケードポートを示す情報のうち、自装置のダイレクトポートを示す情報のみを検索範囲としてフレームの送信先アドレスに対応する出力ポートを検索することを特徴とするスイッチ装置。
  2. 前記判定手段は、
    フレームに格納されたホップ数情報を参照して、フレームの送信元において前記規定数に等しい値に設定された後はフレームがスイッチ装置を経由するたびに1ずつ減算されるホップ数が1に等しいか否かを判定し、
    前記出力手段は、
    前記判定手段による判定の結果、ホップ数が1より大きい場合に、前記検索手段による検索を行うことなく、フレームを前記他方のカスケードポートから出力する
    ことを特徴とする請求項1記載のスイッチ装置。
  3. 前記出力手段は、
    フレームに格納されたホップ数情報が示すホップ数を1減算した上で、当該フレームを前記他方のカスケードポートから出力することを特徴とする請求項2記載のスイッチ装置。
  4. 前記判定手段は、
    フレームに格納されたホップ数情報および閾値情報を参照して、フレームの送信元において0に設定された後はフレームがスイッチ装置を経由するたびに1ずつ加算されるホップ数が、閾値情報に含まれる前記規定数に等しいか否かを判定し、
    前記出力手段は、
    前記判定手段による判定の結果、ホップ数が前記規定数未満である場合に、前記検索手段による検索を行うことなく、フレームを前記他方のカスケードポートから出力する
    ことを特徴とする請求項1記載のスイッチ装置。
  5. 前記判定手段は、
    フレームに格納されたホップ数情報が示すホップ数を1加算した上で、1を加算後のホップ数が前記規定数に等しいか否かを判定することを特徴とする請求項4記載のスイッチ装置。
  6. 前記記憶手段は、
    自装置とは異なるスイッチ装置に配下にある記憶媒体のアドレスに、それぞれ前記2つのカスケードポートのいずれか一方を示す情報を対応付けて記憶することを特徴とする請求項1記載のスイッチ装置。
  7. 前記検索手段は、
    フレームが強制ルーティング指示情報を含む場合には、前記決定手段による決定とは無関係に、前記記憶手段によって記憶される記憶媒体の全アドレスから前記フレームの送信先アドレスを検索することにより、当該フレームを出力するダイレクトポートを決定することを特徴とする請求項1記載のスイッチ装置。
  8. 互いに接続してフレームを転送する複数のスイッチ装置と、各スイッチ装置に接続する記憶媒体とを備えるストレージシステムであって、
    前記スイッチ装置は、
    それぞれ他のスイッチ装置に接続する2つのカスケードポートと、
    それぞれ自装置の配下にある記憶媒体に接続する少なくとも1つのダイレクトポートと、
    前記ダイレクトポートに接続するすべての記憶媒体のアドレスに、それぞれの記憶媒体に接続するダイレクトポートを示す情報を対応付けて記憶する記憶手段と、
    一方のカスケードポートから入力されたフレームが、当該フレームの送信元から送信先の間の転送経路に配置される規定数のスイッチ装置を既に経由したか否かを判定する判定手段と、
    前記判定手段による判定の結果、前記フレームが規定数のスイッチ装置をまだ経由していない場合に、当該フレームを他方のカスケードポートから出力する出力手段と、
    前記判定手段による判定の結果、前記フレームが規定数のスイッチ装置を既に経由している場合に、当該フレームをダイレクトポートに出力することを決定する決定手段と、
    前記決定手段によってフレームをダイレクトポートに出力することが決定された場合に、前記記憶手段によって記憶された自装置のダイレクトポートを示す情報において、前記フレームの送信先アドレスに対応する出力ポートを検索する検索手段と
    を有し、
    前記検索手段は、
    前記記憶手段によって記憶されたダイレクトポートを示す情報およびカスケードポートを示す情報のうち、自装置のダイレクトポートを示す情報のみを検索範囲としてフレームの送信先アドレスに対応する出力ポートを検索し、
    前記記憶媒体は、
    前記検索手段による検索により決定された出力ポートから出力されるフレームに含まれるデータを記憶する
    ことを特徴とするストレージシステム。
  9. それぞれ他のスイッチ装置に接続する2つのカスケードポートと、それぞれ自装置の配下にある記憶媒体に接続する少なくとも1つのダイレクトポートと、前記ダイレクトポートに接続するすべての記憶媒体のアドレスに、それぞれの記憶媒体に接続するダイレクトポートを示す情報を対応付けて記憶する記憶手段とを備えるスイッチ装置におけるルーティング方法であって、
    一方のカスケードポートから入力されたフレームが、当該フレームの送信元から送信先の間の転送経路に配置される規定数のスイッチ装置を既に経由したか否かを判定する判定ステップと、
    前記判定ステップにおける判定の結果、前記フレームが規定数のスイッチ装置をまだ経由していない場合に、当該フレームを他方のカスケードポートから出力する出力ステップと、
    前記判定ステップにおける判定の結果、前記フレームが規定数のスイッチ装置を既に経由している場合に、当該フレームをダイレクトポートに出力することを決定する決定ステップと、
    前記決定ステップにてフレームをダイレクトポートに出力することが決定された場合に、前記記憶手段によって記憶された自装置のダイレクトポートを示す情報において、前記フレームの送信先アドレスに対応する出力ポートを検索する検索ステップとを有し、
    前記検索ステップは、
    前記記憶手段によって記憶されたダイレクトポートを示す情報およびカスケードポートを示す情報のうち、自装置のダイレクトポートを示す情報のみを検索範囲としてフレームの送信先アドレスに対応する出力ポートを検索することを特徴とするルーティング方法。
  10. それぞれ他のスイッチ装置に接続する2つのカスケードポートと、
    それぞれ自装置の配下にある記憶媒体に接続する少なくとも1つのダイレクトポートと、
    自装置および他のスイッチ装置の配下にあるすべての記憶媒体のアドレスそれぞれと前記カスケードポートまたは前記ダイレクトポートとを対応付けて記憶する記憶手段と、
    一方のカスケードポートから入力されたフレームが、当該フレームの送信元から送信先の間の転送経路に配置される規定数のスイッチ装置を既に経由したか否かを判定する判定手段と、
    前記判定手段による判定の結果、前記フレームが規定数のスイッチ装置をまだ経由していない場合に、当該フレームを他方のカスケードポートから出力する出力手段と、
    前記判定手段による判定の結果、前記フレームが規定数のスイッチ装置を既に経由している場合に、前記記憶手段によって記憶される記憶媒体の全アドレスのうち前記ダイレクトポートに対応するアドレスを検索範囲に設定し、設定された検索範囲から前記フレームの送信先アドレスを検索することにより、当該フレームを出力するダイレクトポートを決定する決定手段と
    を有することを特徴とするスイッチ装置。
JP2008145983A 2008-06-03 2008-06-03 スイッチ装置、ストレージシステム、およびルーティング方法 Expired - Fee Related JP4712069B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2008145983A JP4712069B2 (ja) 2008-06-03 2008-06-03 スイッチ装置、ストレージシステム、およびルーティング方法
US12/385,212 US8130779B2 (en) 2008-06-03 2009-04-01 Switch device, storage system, and routing method determining output port for a frame based on hop count

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008145983A JP4712069B2 (ja) 2008-06-03 2008-06-03 スイッチ装置、ストレージシステム、およびルーティング方法

Publications (2)

Publication Number Publication Date
JP2009294772A JP2009294772A (ja) 2009-12-17
JP4712069B2 true JP4712069B2 (ja) 2011-06-29

Family

ID=41379719

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008145983A Expired - Fee Related JP4712069B2 (ja) 2008-06-03 2008-06-03 スイッチ装置、ストレージシステム、およびルーティング方法

Country Status (2)

Country Link
US (1) US8130779B2 (ja)
JP (1) JP4712069B2 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5526802B2 (ja) * 2010-01-20 2014-06-18 富士通株式会社 ストレージ装置,スイッチおよびストレージ装置の制御方法
US9429724B2 (en) * 2012-01-27 2016-08-30 Telefonaktiebolaget Lm Ericsson (Publ) Stackable interface modules for customized network functions
US20160099859A1 (en) * 2014-10-06 2016-04-07 Futurewei Technologies, Inc. Reverse Path Validation for Source Routed Networks
CN106126114B (zh) * 2016-06-15 2018-09-07 武汉卡码酷科技有限公司 一种有查询功能的存储器及其查询方法

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS61275953A (ja) * 1985-05-30 1986-12-06 Casio Comput Co Ltd デバイス選択方式
JPS63175552A (ja) * 1987-01-14 1988-07-19 Nec Corp ネツトワ−クアドレス拡張方式
JPH01297755A (ja) * 1988-05-26 1989-11-30 Nec Ibaraki Ltd 周辺装置の選択方式
JPH03196737A (ja) * 1989-12-26 1991-08-28 Fujitsu Ltd 通信システムおよび該システムに用いる中継装置
JPH03225544A (ja) * 1990-01-31 1991-10-04 Fujitsu Ltd 切り替え装置
JP2002278910A (ja) * 2001-03-21 2002-09-27 Toshiba Corp バス接続方法及びバス接続装置
JP2007531397A (ja) * 2004-03-26 2007-11-01 メトロ パケット システムズ インコーポレイテッド ネットワークシステムのツリー及びリング型のトポロジでの情報送信方法

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS61224061A (ja) * 1985-03-29 1986-10-04 Fujitsu Ltd 選択方式
US6546010B1 (en) * 1999-02-04 2003-04-08 Advanced Micro Devices, Inc. Bandwidth efficiency in cascaded scheme
US6496503B1 (en) * 1999-06-01 2002-12-17 Intel Corporation Device initialization and operation using directed routing
US6934283B1 (en) * 1999-11-08 2005-08-23 Hewlett-Packard Development Company, L.P. System and method for source defined packet routing
JP2001156819A (ja) 1999-11-30 2001-06-08 Canon Inc 通信ネットワーク並びにノード装置並びに伝送制御方法及び装置
GB2383508B (en) * 2001-12-22 2004-01-28 3Com Corp Cascade control system for network units
WO2004095779A1 (ja) 2003-04-24 2004-11-04 Fujitsu Limited リング間接続装置、及びデータ転送制御方法
US7876757B2 (en) * 2003-11-06 2011-01-25 International Business Machines Corporation Router-assisted fast processing of packet termination in host
US7564789B2 (en) * 2004-02-05 2009-07-21 Qlogic, Corporation Method and system for reducing deadlock in fibre channel fabrics using virtual lanes
JP4448719B2 (ja) 2004-03-19 2010-04-14 株式会社日立製作所 ストレージシステム
US7668925B1 (en) * 2005-01-28 2010-02-23 Pmc-Sierra, Inc. Method and apparatus for routing in SAS using logical zones
US8051334B2 (en) * 2007-11-14 2011-11-01 Emulex Design & Manufacturing Corporation Enabling SAS expander loops for increased fairness and performance
JP2009211140A (ja) * 2008-02-29 2009-09-17 Hitachi Ltd ストレージシステム及びその記憶媒体管理方法

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS61275953A (ja) * 1985-05-30 1986-12-06 Casio Comput Co Ltd デバイス選択方式
JPS63175552A (ja) * 1987-01-14 1988-07-19 Nec Corp ネツトワ−クアドレス拡張方式
JPH01297755A (ja) * 1988-05-26 1989-11-30 Nec Ibaraki Ltd 周辺装置の選択方式
JPH03196737A (ja) * 1989-12-26 1991-08-28 Fujitsu Ltd 通信システムおよび該システムに用いる中継装置
JPH03225544A (ja) * 1990-01-31 1991-10-04 Fujitsu Ltd 切り替え装置
JP2002278910A (ja) * 2001-03-21 2002-09-27 Toshiba Corp バス接続方法及びバス接続装置
JP2007531397A (ja) * 2004-03-26 2007-11-01 メトロ パケット システムズ インコーポレイテッド ネットワークシステムのツリー及びリング型のトポロジでの情報送信方法

Also Published As

Publication number Publication date
US8130779B2 (en) 2012-03-06
JP2009294772A (ja) 2009-12-17
US20090296705A1 (en) 2009-12-03

Similar Documents

Publication Publication Date Title
CN100581172C (zh) 一种对目的磁盘进行访问的方法和扩展磁盘容量的系统
US7979613B2 (en) Performance of a storage system
CN104954271B (zh) Sdn网络中的数据包处理方法和装置
US20120173840A1 (en) Sas expander connection routing techniques
JP4712069B2 (ja) スイッチ装置、ストレージシステム、およびルーティング方法
US9424892B2 (en) Storage device to which memory device are connectable in multiple stages
US8443117B2 (en) Connection expansion device, storage system, connection expansion control program, and connection expansion control method
US7761649B2 (en) Storage system with synchronized processing elements
US20110202716A1 (en) Storage system and data writing method
JP2009015843A (ja) ロング・サイド入出力コマンド処理
US8522075B2 (en) Storage system having storage devices for storing data and control devices for controlling the storage devices
US8176218B2 (en) Apparatus and methods for real-time routing of received commands in a split-path architecture storage controller
CN104348737A (zh) 一种组播报文的传输方法及交换机
KR20160005646A (ko) 메모리 네트워크 메카니즘을 가지는 전자 시스템 및 그 동작 방법
US20160378342A1 (en) Adaptive storage-aware multipath management
US7694081B2 (en) Storage system and method for controlling storage system
JP2019003586A (ja) ストレージ制御装置およびパス切り替え制御プログラム
US20100211735A1 (en) Storage system, storage control device, reception control device, and control method
CN114127700A (zh) 用于处理分组网络内的刷新请求的装置和方法
US10084859B2 (en) Method to designate and implement new routing options for high priority data flows
JP5168630B2 (ja) ブレードサーバシステムのキャッシュサーバ制御回路およびキャッシュサーバ制御方法
CN112764666B (zh) 用于存储管理的方法、设备和计算机程序产品
JP7409700B2 (ja) ストレージシステム、サーバ、パス切替方法、およびプログラム
US8307135B2 (en) Performance of a storage system
JP4963417B2 (ja) スイッチ装置、及び、フラッディング方法

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100202

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100326

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100817

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20101015

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20110315

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110322

LAPS Cancellation because of no payment of annual fees