(57)【要約】  管理サーバは、リンク管理テーブル（１１１）とＩＯノード管理テーブル（１１２）と受信部（１２１）と選択部（１２４）と送信部（１２２）とを有する。受信部（１２１）は、データを入出力する入出力装置との間でのデータ転送を要求する転送要求をいずれかの情報処理装置から受信する。選択部（１２４）は、受信した転送要求に対して、入出力装置との間の通信経路を選択済みであると判定した場合、選択した通信経路から転送先の情報処理装置あるいは入出力処理装置を特定し、通信経路を選択済みではないと判定した場合、リンク管理テーブル（１１１）とＩＯノード管理テーブル（１１２）とが記憶する通信状態に基づいて選択した入出力装置との間の通信経路に基づいて、転送先の情報処理装置あるいは入出力処理装置を特定する。送信部（１２２）は、特定した情報処理装置あるいは入出力装置を識別する識別子を、転送要求を発した情報処理装置に送信する。
2012160641.tif 000002
【特許請求の範囲】
【請求項１】
互いに接続された情報処理装置間あるいは情報処理装置と入出力装置との間の通信状態を記憶する第１記憶部と、
データを入出力する入出力装置と、前記入出力装置にデータを入出力する入出力処理装置間の通信状態を、前記入出力処理装置の識別情報に対応付けて記憶する第２記憶部と、
前記入出力装置との間でのデータ転送を要求する転送要求をいずれかの情報処理装置から受信する受信部と、
前記受信部が受信した転送要求に対して、前記入出力装置との間の通信経路を選択済みであるか否かを判定し、入出力装置との間の通信経路を選択済みであると判定した場合、前記選択した通信経路から転送先の情報処理装置あるいは入出力処理装置を特定し、前記通信経路を選択済みではないと判定した場合、前記第１記憶部が記憶する通信状態と前記第２記憶部が記憶する通信状態とに基づいて前記入出力装置との間の通信経路を選択し、選択した通信経路に基づいて、転送先の情報処理装置あるいは入出力処理装置を特定する特定部と、
前記特定部が特定した情報処理装置あるいは入出力装置を識別する識別子を、前記転送要求を発した情報処理装置に送信する送信部と
を有することを特徴とする管理装置。
【請求項２】
前記管理装置において、
前記特定部は、転送要求先の入出力装置にデータを入出力する入出力処理装置または前記入出力装置と前記入出力処理装置との間の接続に異常が生じた場合、前記転送要求先の入出力装置にデータを入出力する他の入出力処理装置があるか否かを判定し、前記他の入出力処理装置があると判定したとき、当該入出力装置に対応付けて前記第２記憶部に記憶された前記入出力処理装置の識別情報を前記他の入出力処理装置の識別情報に更新して前記入出力装置との間の通信経路を選択し、選択した通信経路に基づいて、データ転送先の情報処理装置あるいは入出力処理装置を特定することを特徴とする請求項１記載の管理装置。
【請求項３】
前記管理装置はさらに、
前記受信部が、いずれかの情報処理装置から、その情報処理装置に隣接する他の情報処理装置または入出力処理装置との間の通信状態又は前記入出力装置との通信状態が変更されたことを示す情報を受信した場合、前記第１記憶部が記憶する通信状態及び前記第２記憶部が記憶する通信状態を更新する更新部を有することを特徴とする請求項１または２記載の管理装置。
【請求項４】
前記管理装置において、
前記特定部は、前記受信部が転送要求を受信した場合、前記第１記憶部と前記第２記憶部とが記憶する通信状態に基づいて転送要求先の入出力装置との間の通信経路のうち最短の通信経路を選択し、選択した最短通信経路に基づいて、データ転送先の情報処理装置を特定することを特徴とする請求項１記載の管理装置。
【請求項５】
他の情報処理装置と管理装置に接続する情報処理装置において、
接続された他の情報処理装置との通信状態を監視し、監視した通信状態を前記管理装置に通知する通知部と、
データを入出力する入出力装置との間でデータを転送する場合、自身がデータを転送すべき情報処理装置の識別子を要求する転送要求を前記管理装置に送信する送信部と、
前記送信部が送信した転送要求に対して、通知された通信状態に基づいて前記管理装置が選択した転送先の情報処理装置の識別子を前記管理装置から受信する受信部と、
前記管理装置から受信した転送先の情報処理装置の識別子を持つ情報処理装置に前記データを転送する転送部と
を有することを特徴とする情報処理装置。
【請求項６】
前記情報処理装置において、
前記送信部は、転送対象のデータの識別子と自装置の識別子と前記入出力装置の識別子とを含んだ転送要求を、前記管理装置に送信することを特徴とする請求項５記載の情報処理装置。
【請求項７】
メッシュ状またはトーラス状に接続された複数の情報処理装置と、前記複数の情報処理装置からデータを入出力される入出力装置と、前記複数の情報処理装置それぞれと接続される管理装置とを有する情報処理システムであって、
前記管理装置は、
互いに接続された情報処理装置間あるいは情報処理装置と入出力装置との間の通信状態を記憶する第１記憶部と、
データを入出力する入出力装置と、前記入出力装置にデータを入出力する入出力処理装置間の通信状態を、前記入出力処理装置の識別情報に対応付けて記憶する第２記憶部と、
前記入出力装置との間でのデータ転送を要求する転送要求をいずれかの情報処理装置から受信する受信部と、
前記受信部が受信した転送要求に対して、前記入出力装置との間の通信経路を選択済みであるか否かを判定し、入出力装置との間の通信経路を選択済みであると判定した場合、前記選択した通信経路から転送先の情報処理装置あるいは入出力処理装置を特定し、前記通信経路を選択済みではないと判定した場合、前記第１記憶部が記憶する通信状態と前記第２記憶部が記憶する通信状態とに基づいて前記入出力装置との間の通信経路を選択し、選択した通信経路に基づいて、転送先の情報処理装置あるいは入出力処理装置を特定する特定部と、
前記特定部が特定した情報処理装置あるいは入出力装置を識別する識別子を、前記転送要求を発した情報処理装置に送信する送信部と
を有し、
前記情報処理装置は、
接続された他の情報処理装置との通信状態を監視し、監視した通信状態を前記管理装置に通知する通知部と、
データを入出力する入出力装置との間でデータを転送する場合、自身がデータを転送すべき情報処理装置の識別子を要求する転送要求を前記管理装置に送信する送信部と、
前記送信部が送信した転送要求に対して、通知された通信状態に基づいて前記管理装置が選択した転送先の情報処理装置の識別子を前記管理装置から受信する受信部と、
前記管理装置から受信した転送先の情報処理装置の識別子を持つ情報処理装置に前記データを転送する転送部と
を有することを特徴とする情報処理システム。
【請求項８】
メッシュ状またはトーラス状に接続された複数の情報処理装置と、前記複数の情報処理装置からデータを入出力される入出力装置と、前記複数の情報処理装置それぞれと接続される管理装置とを有する情報処理システムにおけるデータ転送方法であって、
前記情報処理装置が、
前記入出力装置との間でデータを転送する場合、自身がデータを転送すべき情報処理装置の識別子を要求する転送要求を前記管理装置に送信し、
前記管理装置が、
前記入出力装置との間でのデータ転送を要求する転送要求をいずれかの情報処理装置から受信し、
前記受信した転送要求に対して、前記入出力装置との間の通信経路を選択済みであるか否かを判定し、入出力装置との間の通信経路を選択済みであると判定した場合、前記選択した通信経路から転送先の情報処理装置あるいは入出力処理装置を特定し、前記通信経路を選択済みではないと判定した場合、互いに接続された情報処理装置間あるいは情報処理装置と入出力装置との間の通信状態と前記入出力装置と、前記入出力装置にデータを入出力する入出力処理装置間の通信状態とに基づいて前記入出力装置との間の通信経路を選択し、選択した通信経路に基づいて、転送先の情報処理装置あるいは入出力処理装置を特定し、
前記特定した情報処理装置あるいは入出力装置を識別する識別子を、前記転送要求を発した情報処理装置に送信し、
前記情報処理装置が、
前記送信した転送要求に対して、通知された通信状態に基づいて前記管理装置が選択した転送先の情報処理装置の識別子を前記管理装置から受信し、
前記管理装置から受信した転送先の情報処理装置の識別子を持つ情報処理装置に前記データを転送する
ことを特徴とするデータ転送方法。
【請求項９】
管理装置が内蔵するコンピュータに、
データを入出力する入出力装置との間でのデータ転送を要求する転送要求をいずれかの情報処理装置から受信させ、
前記受信した転送要求に対して、前記入出力装置との間の通信経路を選択済みであるか否かを判定し、入出力装置との間の通信経路を選択済みであると判定した場合、前記選択した通信経路から転送先の情報処理装置あるいは入出力処理装置を特定し、前記通信経路を選択済みではないと判定した場合、互いに接続された情報処理装置間あるいは情報処理装置と入出力装置との間の通信状態と前記入出力装置と、前記入出力装置にデータを入出力する入出力処理装置間の通信状態とに基づいて前記入出力装置との間の通信経路を選択し、選択した通信経路に基づいて、転送先の情報処理装置あるいは入出力処理装置を特定させ、
前記特定した情報処理装置あるいは入出力装置を識別する識別子を、前記転送要求を発した情報処理装置に送信させる
ことを特徴とする経路選択プログラム。
【請求項１０】
他の情報処理装置と管理装置に接続する情報処理装置が内蔵するコンピュータに、
接続された前記他の情報処理装置との通信状態を監視し、監視した通信状態を前記管理装置に通知させ、
データを入出力する入出力装置との間でデータを転送する場合、自身がデータを転送すべき情報処理装置の識別子を要求する転送要求を前記管理装置に送信させ、
前記送信した転送要求に対して、通知された通信状態に基づいて前記管理装置が選択した転送先の情報処理装置の識別子を前記管理装置から受信させ、
前記管理装置から受信した転送先の情報処理装置の識別子を持つ情報処理装置に前記データを転送させる
ことを特徴とする転送要求プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、管理装置、情報処理装置、情報処理システム、データ転送方法、経路選択プログラム及び転送要求プログラムに関する。
【背景技術】
【０００２】
従来、複数のノードを有するコンピュータシステムは、ノード間それぞれをインターコネクトで接続した「クラスタ構成」を採用する。クラスタ構成を採用した場合、各ノードで分散した処理を並列して実行するので、コンピュータシステムの性能が向上する。また、一部のノードに障害が生じて処理が停止した場合でも、障害が生じていないノードでは処理を継続して実行するので、コンピュータシステムの可用性が向上する。【０００３】
図２１を用いて、クラスタ構成を採用したコンピュータシステムの構成例を説明する。図２１は、クラスタ構成を採用したコンピュータシステムの構成例を示す図である。図２１に示すように、コンピュータシステム９００は、計算ノード９０１〜９１２と、ＩＯ（Input  Output）ノード９１３〜９１６と、ＩＯ装置９１７〜９１８とを有する。計算ノード９０１〜９１２は、各種演算の実行やアプリケーション処理を実行する。ＩＯノード９１３〜９１６は、ＩＯ装置への入出力を制御する。ＩＯ装置９１７〜９１８は、例えば、データやアプリケーションなどを記憶する記憶装置である。【０００４】
図２１に示すように、各計算ノードと各計算ノードとの間、各ＩＯノードと各ＩＯノードとの間、各計算ノードと各ＩＯノードとの間は、インターコネクトによってそれぞれ接続されている。また、図２１の例では、ＩＯノード９１３は、ＩＯ装置９１７と接続されており、ＩＯノード９１４は、ＩＯ装置９１８と接続されており、ＩＯノード９１５は、ＩＯ装置９１８と接続されており、ＩＯノード９１６は、ＩＯ装置９１７と接続されている。なお、点線で示すＩＯノード９１４とＩＯ装置９１８との接続は、実線で示すＩＯノード９１５とＩＯ装置９１８との接続に異常が発生した場合に運用される待機系の接続である。同様に、点線で示すＩＯノード９１６とＩＯ装置９１７との接続は、実線で示すＩＯノード９１３とＩＯ装置９１７との接続に異常が発生した場合に運用される待機系の接続である。【０００５】
このようなコンピュータシステムにおいて、計算ノードは、ＩＯ装置へデータを転送する場合、次元順ルーティングによって、目的とするＩＯ装置と接続されたＩＯノードにデータを転送する。例えば、次元順ルーティングで転送されるデータは、まず、送信元のノードから、Ｘ軸の座標が転送先ノードのＸ軸の座標に一致するノードまでＸ軸に沿って転送される。次に、データは、データの転送方向をＹ軸上に転換し、転送先ノードまでＹ軸に沿って転送される。【０００６】
例えば、図２１の計算ノード９０１がＩＯ装置９１８へデータを転送する場合、計算ノード９０１は、計算ノード９０２、９０３、９０７、９１１を経由してＩＯ装置９１８に接続するＩＯノード９１５にデータを転送する。なお、次元順ルーティングによって選択される通信経路は、各計算ノード９０１〜９１２及び各ＩＯノード９１３〜９１６に予め設定されるのが一般的である。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２０１０−２１８３６４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
しかしながら、上述した従来の技術では、データ転送の可用性が高くないという課題があった。【０００９】
例えば、計算ノードは、次元順ルーティングで選択された経路上に存在するノード又は接続（インターコネクト）に異常が生じた場合、データを転送できなくなる。図２１において、計算ノード９０３と計算ノード９０７との接続が切断していた場合を例に説明する。計算ノード９０１は、計算ノード９０３をバイパスする経路でＩＯノード９１５と接続しているにもかかわらず、次元順ルーティングで選択された経路に従い、計算ノード９０３を経由してデータを転送しようとする。この結果、計算ノード９０１は、ＩＯノード９１５へデータを転送できなくなる。【００１０】
また、従来の技術では、ＩＯ装置と接続される運用系ＩＯノードに障害が生じた場合、計算ノードは、データを転送できない場合がある。図２１において、計算ノード９０６がＩＯ装置９１８にデータを転送する際に、運用系であるＩＯノード９１５に異常が生じ、ＩＯノード９１４が待機系から運用系に切り替わった場合を例に説明する。【００１１】
計算ノード９０６は、運用系のＩＯノードをＩＯノード９１５からＩＯノード９１４に切替えた場合でも、次元順ルーティングで選択された経路に従い、計算ノード９０７、計算ノード９１１、ＩＯノード９１５にデータを転送してしまう。ここで、ＩＯノード９１５がＩＯノード９１４へデータを転送できない場合、計算ノード９０６は、ＩＯ装置９１８にデータを転送できない。【００１２】
また、ＩＯノード９１５がＩＯノード９１４へデータを転送できる場合、計算ノード９０６は、ＩＯ装置９１８にデータを転送できるが、計算ノード９０６からＩＯノード９１４に至る最短経路よりも多くのノードを経由してＩＯノード９１４にデータを転送することになる。例えば、計算ノード９０６からＩＯノード９１４にデータを転送する場合に、経由するノード数が最小となる経路は、計算ノード９１０を経由した場合であるが、計算ノード９０６は、予め設定され経路に従うので、この経路を選択できない。このため、データを転送できる場合には、計算ノードによるデータの転送が遅延する可能性がある。【００１３】
１つの側面では、データ転送の信頼性を向上することができる管理装置、情報処理装置、情報処理システム、データ転送方法、経路選択プログラム及び転送要求プログラムを提供することを目的とする。
【課題を解決するための手段】
【００１４】
第１の案では、管理装置は、互いに接続された情報処理装置間あるいは情報処理装置と入出力装置との間の通信状態を記憶する。また、管理装置は、データを入出力する入出力装置と、入出力装置にデータを入出力する入出力処理装置間の通信状態を、入出力処理装置の識別情報に対応付けて記憶する。そして、管理装置は、入出力装置との間でのデータ転送を要求する転送要求をいずれかの情報処理装置から受信する。また、管理装置は、受信した転送要求に対して、入出力装置との間の通信経路を選択済みであるか否かを判定する。ここで、管理装置は、入出力装置との間の通信経路を選択済みであると判定した場合、選択した通信経路から転送先の情報処理装置あるいは入出力処理装置を特定する。一方、管理装置は、通信経路を選択済みではないと判定した場合、互いに接続された情報処理装置間あるいは情報処理装置と入出力装置との間の通信状態と前記入出力装置と、前記入出力装置にデータを入出力する入出力処理装置間の通信状態とに基づいて入出力装置との間の通信経路を選択する。続いて、管理装置は、選択した通信経路に基づいて、転送先の情報処理装置あるいは入出力処理装置を特定する。そして、管理装置は、特定した情報処理装置あるいは入出力装置を識別する識別子を、転送要求を発した情報処理装置に送信する。
【発明の効果】
【００１５】
データ転送の可用性を向上することができる。
【図面の簡単な説明】
【００１６】
【図１】図１は、コンピュータシステムの構成例を示す図である。
【図２】図２は、計算ノードの構成を示すブロック図である。
【図３】図３は、ＩＯノードの構成を示すブロック図である。
【図４】図４は、管理サーバの構成を示すブロック図である。
【図５】図５は、リンク管理テーブルの一例を示す図である。
【図６】図６は、ＩＯノード管理テーブルの一例を示す図である。
【図７】図７は、転送データ管理テーブルの一例を示す図である。
【図８】図８は、通信経路管理テーブルの一例を示す図である。
【図９】図９は、計算ノード１１とＩＯノード１５との通信状態に異常が生じたコンピュータシステムの一例を示す図である。
【図１０】図１０は、更新部によって更新されたリンク管理テーブルの一例を示す図である。
【図１１】図１１は、実施例１に係るＩＯノードに異常が生じたコンピュータシステムの一例を示す図である。
【図１２】図１２は、生成部によって更新されたＩＯノード管理テーブルの一例を示す図である。
【図１３Ａ】図１３Ａは、通信経路管理テーブルの一例を示す図である。
【図１３Ｂ】図１３Ｂは、通信経路管理テーブルの一例を示す図である。
【図１４】図１４は、計算ノードによるＩＯ装置へのデータ転送処理の処理手順を示すフローチャートである。
【図１５】図１５は、管理サーバによる処理の処理手順を示すフローチャートである。
【図１６】図１６は、更新処理の処理手順を示すフローチャートである。
【図１７】図１７は、経路選択処理の処理手順を示すフローチャートである。
【図１８】図１８は、実施例２に係る管理サーバの構成を示すブロック図である。図である。
【図１９】図１９は、経路選択プログラムを実行するコンピュータの一例を示す図である。
【図２０】図２０は、転送要求プログラムを実行するコンピュータの一例を示す図である。
【図２１】図２１は、クラスタ構成を採用したコンピュータシステムの構成例を示す図である。
【発明を実施するための形態】
【００１７】
以下に、本願の開示する管理装置、情報処理装置、情報処理システム、データ転送方法、経路選択プログラム及び転送要求プログラムの実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。そして、各実施例は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。
【実施例１】
【００１８】
ここでは、実施例１に係るコンピュータシステムの構成、計算ノードの構成、ＩＯ（Input  Output）ノードの構成、管理サーバの構成、計算ノードによる処理の処理手順、管理サーバによる処理の処理手順、実施例１に係る効果を順に説明する。【００１９】
［実施例１に係るコンピュータシステムの構成］
図１に示すコンピュータシステム１は、計算ノード２〜１３と、ＩＯノード１４〜１７と、ＩＯ装置２０〜２２と、管理サーバ１００とを有する。ここで、コンピュータシステム１が有する計算ノードの数、ＩＯノードの数、ＩＯ装置の数は一例であり、これに限定されるものではなく、任意に変更可能である。なお、計算ノード２〜１３及び、ＩＯノード１４〜１７は、情報処理装置の一例である。また、管理サーバ１００は、管理装置の一例である。【００２０】
管理サーバ１００と計算ノード２〜１３それぞれとは、例えば、ＬＡＮ(Local  Area  Network)で接続される。また、管理サーバ１００とＩＯノード１４〜１７それぞれとは、例えば、ＬＡＮで接続される。【００２１】
また、隣接する各計算ノードと各計算ノードとの間、隣接する各計算ノードと各ＩＯノードとの間、隣接する各ＩＯノードと各ＩＯノードとの間は、例えばインターコネクトによってメッシュ状に接続される。図１に示す一例では、計算ノード２は、計算ノード３、計算ノード６とそれぞれ接続される。計算ノード１１は、計算ノード７、計算ノード１０、計算ノード１２、ＩＯノード１５とそれぞれ接続される。なお、コンピュータシステム１はメッシュ状に接続されるものとして説明するが、これに限定されるものではなく、例えば、トーラス状に接続されてもよい。【００２２】
また、ＩＯノード１４とＩＯ装置２０とは、Ｆｉｂｒｅ  Ｃｈａｎｎｅｌ等のＩＯバスで接続される。ＩＯノード１５とＩＯ装置２０、２１とは、Ｆｉｂｒｅ  Ｃｈａｎｎｅｌで接続される。ＩＯノード１６とＩＯ装置２２とは、Ｆｉｂｒｅ  Ｃｈａｎｎｅｌ等で接続される。ＩＯノード１７とＩＯ装置２１、２２とは、Ｆｉｂｒｅ  Ｃｈａｎｎｅｌ等で接続される。なお、ＩＯノードとＩＯ装置はＦｉｂｒｅ  Ｃｈａｎｎｅｌで接続されるもとして説明するが、これに限定されるものではなく、例えば、ｉＳＣＳＩなどで接続されてもよい。【００２３】
図１の例では、ＩＯノードは、ＩＯ装置に対して、アクティブ‐パッシブ構成であり、運用系であるＩＯノードとＩＯ装置との接続を実線で示し、待機系であるＩＯノードとＩＯ装置との接続を点線で示す。ここで、アクティブ‐パッシブ構成とは、ＩＯ装置を共有する複数のノードのうち、通常の運用時には運用系のノードがＩＯ装置を専有する構成である。ＩＯ装置を共有する複数のノードは、運用系のノードと待機系のノードに分けられ、同一のＩＯ装置を運用系のノードと待機系のノードが同時に使用することはない。通常の運用時には、運用系のノードのみがＩＯ装置を使用し、運用系のノードに障害が発生した場合には待機系のノードがＩＯ装置を使用する。例えば、ＩＯ装置２０に対しては、ＩＯノード１４が運用系ノードであり、ＩＯノード１５が待機ノードである。ＩＯ装置２１に対しては、ＩＯノード１５が運用系ノードであり、ＩＯノード１７が待機系ノードである。また、ＩＯ装置に２２に対しては、ＩＯノード１７が運用系ノードであり、ＩＯ装置に２２に対してＩＯノード１６が待機系ノードである。なお、コンピュータシステムにおけるＩＯ装置とＩＯノードは、アクティブ‐パッシブ構成に限定されるものではなく、例えば、同一のＩＯ装置２０をＩＯノード１４とＩＯノード１５とが同時に使用するアクティブ‐アクティブ構成であってもよい。【００２４】
各計算ノード２〜１３は、各ＩＯ装置２０〜２２から入力したデータをもとに各種演算を実行したり、各ＩＯ装置２０〜２２から入力したアプリケーションを実行したりする。      【００２５】
計算ノードは、自装置と接続された計算ノードとの間の通信状態及び自装置と接続されたＩＯノードとの間の通信状態を監視し、監視した各通信状態を管理サーバ１００に通知する。例えば、計算ノード１２は、計算ノード８、計算ノード１１、計算ノード１３との間の通信状態及びＩＯノード１６との間の通信状態を監視し、監視した各通信状態を管理サーバ１００に通知する。【００２６】
また、各計算ノード２〜１３は、ＩＯ装置との間でデータを転送する場合、ＩＯ装置との間でのデータ転送を要求することを示すデータ転送要求を管理サーバ１００に送信する。例えば、図１に示す計算ノード７がＩＯ装置２１へデータを転送する場合について説明する。また、この場合、計算ノード７は、ＩＯ装置２１と隣接していない。このため、計算ノード７がＩＯ装置２１へデータを転送する場合、隣接する他のノードにデータを中継することになる。なお、以下の説明では、データの転送開始元になるノードを「転送開始元」、データの最終的な転送先となるＩＯ装置を「最終転送先」として適宜記す。【００２７】
計算ノード７は、「転送開始元である装置の識別子」と「自装置を識別する識別子」と「転送するデータを識別する識別子」と「最終転送先となるＩＯ装置２１の識別子」とを含んだ転送要求を管理サーバ１００に送信する。なお、転送開始元である計算ノード７が送信する「転送開始元である装置の識別子」と「自装置を識別する識別子」とは同一の値が格納される。【００２８】
続いて、計算ノード７は、管理サーバ１００からデータ中継先のノードとなる転送先のノードとして計算ノード１１であることを受信する。そして、計算ノード７は、計算ノード１１にデータを送信する。ここで、計算ノード７が送信するデータには、「転送開始元である装置の識別子」と「自装置を識別する識別子」と「転送するデータを識別する識別子」と「最終転送先となるＩＯ装置２１の識別子」とが含まれる。【００２９】
また、各計算ノード２〜１３は、隣接する計算ノードからデータを受信した場合、管理サーバ１００に転送要求を送信する。例えば、図１に示す計算ノード１１が、「転送開始元」である計算ノード７から「最終転送先」であるＩＯ装置２１へ転送するデータを受信した場合について説明する。【００３０】
計算ノード１１は、受信したデータから「転送開始元である装置の識別子」と「自装置を識別する識別子」と「転送するデータを識別する識別子」と「最終転送先となるＩＯ装置２１の識別子」とを抽出する。そして、計算ノード１１は、「転送開始元である計算ノード７の識別子」と「自装置を識別する識別子」と「転送するデータを識別する識別子」と「最終転送先となるＩＯ装置２１の識別子」とを含んだ転送要求を管理サーバ１００に送信する。計算ノード１１は、管理サーバ１００からデータ中継先のノードとなる転送先のノードとしてＩＯノード１５であることを受信する。そして、計算ノード１１は、ＩＯノード１５に「転送開始元である計算ノード７の識別子」と「自装置を識別する識別子」と「転送するデータを識別する識別子」と「最終転送先となるＩＯ装置２１の識別子」とを含んだデータを送信する。【００３１】
各ＩＯノード１４〜１７は、各ＩＯ装置２０〜２２への入出力を制御する。例えば、ＩＯノード１５は、計算ノード１１から転送されたデータを受信し、ＩＯ装置２１へ出力する。また、ＩＯノード１５は、ＩＯ装置２１から読み出したデータを計算ノード１１へ出力する。【００３２】
ＩＯノードは、自装置と接続されたＩＯノードとの間の通信状態及び自装置と接続された計算ノードとの間の通信状態及び自装置と接続されたＩＯ装置との間の通信状態をそれぞれ監視し、監視した通信状態を管理サーバ１００にそれぞれ通知する。例えば、ＩＯノード１５は、ＩＯノード１４、ＩＯノード１６との間の通信状態、計算ノード１１との間の通信状態及びＩＯ装置２０、２１との間の通信状態をそれぞれ監視し、監視した通信状態を管理サーバ１００にそれぞれ通知する。【００３３】
各ＩＯ装置２０〜２２は、例えば、ＨＤＤ（Hard  Disk  Drive）などの記憶装置であり、データやアプリケーションを記憶する。なお、ここでは、各ＩＯ装置２０〜２２をＨＤＤなどの記憶装置として説明するが、ＨＤＤなどの記憶装置に限定されず、例えば、各種センサ、プリンタ、ディスプレイなどであってもよい。なお、以下の説明においては、各計算ノード２〜１３及び各ＩＯノード１４〜１７を単に各ノード２〜１７として適宜記載するものとする。【００３４】
管理サーバ１００は、通知された各計算ノード２〜１３及び各ＩＯノード１４〜１７それぞれの通信状態を記憶する。また、管理サーバ１００は、データを記憶する複数のＩＯ装置と、複数のＩＯ装置へデータを入出力するノードとの通信状態を記憶する。【００３５】
また、管理サーバ１００は、複数のＩＯ装置２０〜２２のいずれかにデータの転送を要求するデータ転送要求をいずれかのノードから受信した場合に、以下の処理を実行する。すなわち、管理サーバ１００は、複数のノード間それぞれの通信状態と、ＩＯ装置へデータを入出力するノードとＩＯ装置との通信状態に基づいて、ＩＯ装置との間の通信経路を選択する。また、管理サーバ１００は、選択した通信経路に基づいて、転送先の計算ノードあるいはＩＯノードを特定する。そして、管理サーバ１００は、特定した計算ノードあるいはＩＯノードを識別する識別子を、転送要求を発した計算ノードに送信する。【００３６】
［計算ノードの構成］
図２は、実施例１に係る計算ノードの構成を示すブロック図である。図２に示すように、計算ノード２は、記憶部２ａと、制御部２ｂとを有する。なお、計算ノード２〜１３の構成は同様であるので、ここでは、計算ノード２の構成についてのみ説明し、計算ノード３〜１３の構成については説明を省略する。【００３７】
記憶部２ａは、例えば、半導体メモリ素子、又はハードディスクなどの記憶装置であり、自装置で実行した各種の処理結果や自装置で実行する各種の処理に必要なデータやアプリケーションなどを記憶する。また、記憶部２ａには、自装置を識別する識別子や、データを入出力するＩＯ装置を識別する識別子などが格納される。【００３８】
制御部２ｂは、第１通信部２ｃと、第２通信部２ｄと、リンク監視部２ｅと、転送要求部２ｆと転送部２ｇとを有する。例えば、制御部２ｂは、ＡＳＩＣ（Application  Specific  Integrated  Circuit）、ＦＰＧＡ（Field  Programmable  Gate  Array）、ＣＰＵ（Central  Processing  Unit）やＭＰＵ（Micro  Processing  Unit）などの集積回路である。制御部２ｂは、制御プログラム、各種の処理手順などを規定したプログラムおよび各種の処理に必要なデータを格納するための内部メモリを有する。【００３９】
第１通信部２ｃは、管理サーバ１００と、例えば、ＬＡＮで接続され、管理サーバ１００との情報のやり取りを制御する。例えば、第１通信部２ｃは、リンク監視部２ｅによって監視された通信状態を管理サーバ１００に送信する。また、第１通信部２ｃは、管理サーバ１００によって選択された転送先計算ノードまたはＩＯノードの識別子を管理サーバ１００から受信する。第１通信部２ｃは、受信した転送先計算ノードまたはＩＯノードの識別子を転送要求部２ｆに出力する。【００４０】
第２通信部２ｄは、隣接する計算ノードや隣接するＩＯノードとインターコネクトによって接続され、隣接する計算ノードや隣接するＩＯノードとの情報のやり取りを制御する。例えば、第２通信部２ｄは、管理サーバ１００から受信した転送先ノードの識別子に基づき、転送先ノードにデータを送信する。【００４１】
リンク監視部２ｅは、隣接する計算ノードや隣接するＩＯノードとの通信状態を監視する。リンク監視部２ｅは、監視した通信状態を管理サーバ１００に第１通信部２ｃを介して通知する。なお、リンク監視部２ｅは、通知部の一例である。【００４２】
転送要求部２ｆは、データを入出力するＩＯ装置との間でデータを転送する場合、自身がデータを転送すべき情報処理装置の識別子を要求する転送要求を管理サーバ１００に送信する。例えば、データを入出力するＩＯ装置に自装置が有するデータを転送する場合に、転送要求を生成し、第１通信部２ｃを介して生成した転送要求を管理サーバ１００に送信する。【００４３】
例えば、転送要求部２ｆは、ＩＯ装置に自装置が有するデータの転送を要求する場合、「データＩＤ」と、「転送開始元ＩＤ」と、「最終転送先ＩＤ」と、「転送元ＩＤ」とを含んだ転送要求を生成する。この転送要求に含まれる「データＩＤ」は、転送されるデータの識別子を示し、「転送開始元ＩＤ」は、データＩＤで識別されるデータの転送開始元になる計算ノードの識別子を示す。また、「最終転送先ＩＤ」は、データＩＤで識別されるデータの最終転送先となるＩＯ装置の識別子を示し、「転送元ＩＤ」は、自装置の識別子を示す。なお、データの転送開始元になる計算ノードが生成した転送要求では、「転送開始元ＩＤ」と「転送元ＩＤ」には、同じ識別子が格納される。【００４４】
また、転送要求部２ｆは、データを入出力するＩＯ装置に他装置から受信したデータを転送する場合に、転送要求を生成し、第１通信部２ｃを介して生成した転送要求を管理サーバ１００に送信する。【００４５】
例えば、転送要求部２ｆは、ＩＯ装置に他装置から受信したデータの転送を要求する場合、「データＩＤ」と、「転送開始元ＩＤ」と、「最終転送先ＩＤ」と、「転送元ＩＤ」とを含んだ転送要求を生成する。この転送要求に含まれる「データＩＤ」、「転送開始元ＩＤ」、「最終転送先ＩＤ」には、受信したデータに含まれる「データＩＤ」、「転送開始元ＩＤ」、「最終転送先ＩＤ」と同じ識別子が格納される。すなわち、この転送要求に含まれる「データＩＤ」、「転送開始元ＩＤ」、「最終転送先ＩＤ」には、データの転送開始元になる計算ノードが生成した転送要求に含まれる「データＩＤ」、「転送開始元ＩＤ」、「最終転送先ＩＤ」と同じ識別子が格納される。また、「転送元ＩＤ」には、自装置の識別子が格納される。【００４６】
また、転送要求部２ｆは、管理サーバ１００に送信した転送要求に対して、リンク監視部２ｅによって通知された通信状態に基づいて管理サーバ１００が選択した転送先計算ノードの識別子または転送先ＩＯノードの識別子を管理サーバ１００から第１通信部２ｃを介して受信する。そして、転送要求部２ｆは、受信した転送先計算ノードまたはＩＯノードの識別子を転送部２ｇに出力する。なお、転送要求部２ｆは、送信部、受信部の一例である。【００４７】
転送部２ｇは、管理サーバ１００から受信した転送先の計算ノードあるいはＩＯノードの識別子を持つ計算ノードあるいはＩＯノードにデータを転送する。例えば、転送部２ｇは、第１通信部２ｃを介して転送要求部２ｆから受信した転送先計算ノードまたはＩＯノードの識別子に基づき、転送先計算ノードまたは転送先ＩＯノードに、第２通信部２ｄを介してデータを送信する。ここで、転送部２ｇが送信するデータには、「データＩＤ」と、「転送開始元ＩＤ」と、「最終転送先ＩＤ」と、「転送元ＩＤ」とが含まれる。このように、転送部２ｇは、転送先計算ノードまたは転送先ＩＯノードに、「データＩＤ」と、「転送開始元ＩＤ」と、「最終転送先ＩＤ」と、「転送元ＩＤ」とを含んだデータを送信することで、データを受信したノードが、最終転送先を判定することができる。【００４８】
［ＩＯノードの構成］
図３は、実施例１に係るＩＯノードの構成を示すブロック図である。図３に示すように、ＩＯノード１４は、記憶部１４ａと、制御部１４ｂとを有する。なお、ＩＯノード１４〜１７の構成は同様であるので、ここでは、ＩＯノード１４の構成についてのみ説明し、ＩＯノード１５〜１７の構成については説明を省略する。【００４９】
記憶部１４ａは、例えば、半導体メモリ素子、又はＨＤＤなどの記憶装置であり、自装置の識別子や、データを入出力するＩＯ装置の識別子などを記憶する。【００５０】
制御部１４ｂは、第１通信部１４ｃと、第２通信部１４ｄと、第３通信部１４ｅと、リンク監視部１４ｆと、転送要求部１４ｇと、転送部１４ｈとを有する。例えば、制御部１４ｂは、ＡＳＩＣ、ＦＰＧＡ、ＣＰＵやＭＰＵなどの集積回路である。また、制御部１４ｂは、制御プログラム、各種の処理手順などを規定したプログラムおよび所要データを格納するための内部メモリを有する。【００５１】
第１通信部１４ｃは、管理サーバ１００と、例えば、ＬＡＮで接続され、管理サーバ１００との情報のやり取りを制御する。例えば、第１通信部１４ｃは、リンク監視部１４ｆによって監視された通信状態を管理サーバ１００に送信する。また、第１通信部１４ｃは、管理サーバ１００によって選択された転送先計算ノードまたはＩＯノードの識別子を管理サーバ１００から受信する。第１通信部１４ｃは、受信した転送先計算ノードまたはＩＯノードの識別子を転送要求部１４ｇに出力する。【００５２】
第２通信部１４ｄは、隣接する計算ノードや隣接するＩＯノードと、例えば、Ｔｏｆｕなどのインターコネクトによって接続され、隣接する計算ノードや隣接するＩＯノードとの情報のやり取りを制御する。例えば、第２通信部１４ｄは、管理サーバ１００から受信した転送先ノードの識別子に基づき、転送先ノードにデータを送信する。【００５３】
第３通信部１４ｅは、ＩＯ装置と、例えばＦｉｂｒｅ  Ｃｈａｎｎｅｌなどによって接続され、ＩＯ装置へのデータの入出力を制御する。例えば、第３通信部１４ｅは、転送部１４ｈから受信したデータをＩＯ装置に出力する。【００５４】
リンク監視部１４ｆは、隣接する計算ノードや隣接するＩＯノードとの通信状態を監視する。リンク監視部１４ｆは、監視した通信状態を管理サーバ１００に、第１通信部１４ｃを介して通知する。なお、リンク監視部１４ｆは、通知部の一例である。【００５５】
転送要求部１４ｇは、データを入出力するＩＯ装置にデータを転送する場合に、管理サーバ１００に転送先ノードの識別子を要求する転送要求を生成する。そして、転送要求部１４ｇは、生成した転送要求を管理サーバ１００に第１通信部１４ｃを介して送信する。また、転送要求部１４ｇは、送信した転送要求に対して、リンク監視部１４ｆによって通知された通信状態に基づいて、管理サーバ１００が選択した転送先計算ノードまたは転送先ＩＯノードの識別子を管理サーバ１００から第１通信部１４ｃを介して受信する。なお、転送要求部１４ｇは、送信部、受信部の一例である。なお、転送要求部１４ｇが生成する転送要求には、計算ノードの転送要求部２ｆが生成する転送要求と同様に「データＩＤ」と、「転送開始元ＩＤ」と、「最終転送先ＩＤ」と、「転送元ＩＤ」とが含まれる。【００５６】
転送部１４ｈは、第１通信部１４ｃを介して受信した転送先ノードの識別子に基づき、転送先ノードに第２通信部１４ｄを介してデータを送信する。また、転送部１４ｈは、計算ノードやＩＯノードから受信したデータをＩＯ装置に出力する。【００５７】
［管理サーバの構成］
次に、図４を用いて、管理サーバの構成を説明する。図４は、実施例１に係る管理サーバの構成を示すブロック図である。図４に示すように、管理サーバ１００は、記憶部１１０と、制御部１２０とを有する。【００５８】
記憶部１１０は、例えば、半導体メモリ素子、又はＨＤＤなどの記憶装置であり、リンク管理テーブル１１１とＩＯノード管理テーブル１１２と転送データ管理テーブル１１３と通信経路管理テーブル１１４とを有する。【００５９】
リンク管理テーブル１１１は、複数のノード間それぞれの通信状態を記憶する。図５は、リンク管理テーブルの一例を示す図である。例えば、リンク管理テーブル１１１は、図５に示すように、「リンクＩＤ」、「ノードａ」、「ノードｂ」、「通信状態」をそれぞれ対応付けた情報を記憶する。【００６０】
ここで、リンク管理テーブル１１１が記憶する「リンクＩＤ」には、隣接する計算ノードと計算ノードとの間、隣接する計算ノードとＩＯノードとの間、隣接するＩＯノードとＩＯノードとの間を接続するリンクの識別子が格納される。例えば、「リンクＩＤ」には、「ｘｘｘ１」や「ｘｘｘ２」などが格納される。【００６１】
「ノードａ」には、リンクＩＤで識別されるリンクを形成する計算ノード、ＩＯノードのうち一方のノードの識別子が格納される。例えば、「ノードａ」には、「計算ノード２」、「計算ノード３」などが格納される。また、「ノードｂ」には、リンクＩＤで識別されるリンクを形成する計算ノード、ＩＯノードのうち他方の識別子が格納される。例えば、「ノードｂ」には、「計算ノード３」、「計算ノード４」などが格納される。【００６２】
「通信状態」には、リンク識別子で識別されるリンクの通信状態を示す情報が格納される。例えば、「通信状態」には、通信状態が正常であることを示す「Ｎｏｒｍａｌ」や通信状態が異常であることを示す「Ｆａｌｌ」が格納される。リンク管理テーブル１１１として記憶される情報のうち、「リンクＩＤ、ノードａ、ノードｂ」として記憶される情報は、予め管理者によって設定される。なお、リンク管理テーブル１１１は、第１記憶部の一例である。【００６３】
図５に示す例では、リンク管理テーブル１１１は、リンクＩＤ「ｘｘｘ１」で識別されるリンクは、計算ノード２と計算ノード３とを接続し、リンクの状態が正常であることを示す。同様に、リンク管理テーブル１１１は、リンクＩＤ「ｘｘｘ２」で識別されるリンクは、計算ノード３と計算ノード４とを接続し、リンクの状態が正常であることを示す。【００６４】
ＩＯノード管理テーブル１１２は、データを記憶する複数のＩＯ装置と、前記複数のＩＯ装置へデータを入出力するノードとの通信状態を記憶する。図６は、ＩＯノード管理テーブルの一例を示す図である。例えば、ＩＯノード管理テーブル１１２は、図６に示すように、「リンクＩＤ」、「ＩＯノード」、「ＩＯ装置」、「通信状態」、「運用状態」をそれぞれ対応付けた情報を記憶する。【００６５】
ここで、ＩＯノード管理テーブル１１２が記憶する「リンクＩＤ」には、ＩＯノードとＩＯ装置とを接続するリンクの識別子が格納される。例えば、「リンクＩＤ」には、「００１」や「００２」などが格納される。【００６６】
「ＩＯノード」には、リンクＩＤで識別されるリンクを形成するＩＯノードの識別子が格納される。例えば、「ＩＯノード」には、「ＩＯノード１４」や「ＩＯノード１５」などが格納される。【００６７】
「ＩＯ装置」には、リンクＩＤで識別されるリンクにより接続されるＩＯ装置の識別子が格納される。例えば、「ＩＯ装置」には、「ＩＯ装置２０」や「ＩＯ装置２１」などが格納される。【００６８】
「通信状態」には、リンクの通信状態を示す情報が格納される。例えば、「通信状態」には、通信状態が正常であることを示す「Ｎｏｒｍａｌ」や通信状態が異常であることを示す「Ｆａｌｌ」が格納される。【００６９】
「運用状態」には、リンクの状態が待機系であるか運用系であるかを示す情報が格納される。例えば、「運用状態」には、ノードの運用状態が運用系であることを示す「Ａｃｔｉｖｅ」やノードの運用状態が待機系であることを示す「Ｓｔａｎｂｙ」が格納される。【００７０】
具体的には、ＩＯノード管理テーブル１１２は、リンクＩＤ「００１」で識別されるリンクは、ＩＯノード１４とＩＯ装置２０とを接続し、リンクの状態が正常であり、ＩＯノード１４が運用系であることを示す。同様に、ＩＯノード管理テーブル１１２は、リンクＩＤ「００２」で識別されるリンクは、ＩＯノード１５とＩＯ装置２０とを接続し、リンクの状態が正常であり、ＩＯノード１５が待機系であることを示す。ＩＯノード管理テーブル１１２として記憶される情報のうち、「リンクＩＤ」、「ＩＯノード」、「ＩＯ装置」、「運用状態」として記憶される情報は、予め管理者によって設定される。なお、ＩＯノード管理テーブル１１２は、第２記憶部の一例である。【００７１】
図４に戻って、転送データ管理テーブル１１３は、転送を要求されたデータの識別子とデータの転送開始元ノードとデータの最終転送先ノードとを対応付けて記憶する。図７は、転送データ管理テーブルの一例を示す図である。例えば、転送データ管理テーブル１１３は、図７に示すように、「データＩＤ」、「転送開始元ＩＤ」、「最終転送先ＩＤ」をそれぞれ対応付けた情報を記憶する。【００７２】
ここで、転送データ管理テーブル１１３が記憶する「データＩＤ」には、転送を要求されたデータの識別子が格納される。例えば、「データＩＤ」には、「ｘｘｘ１」や「ｘｘｘ２」などが格納される。なお、データＩＤは、データの転送開始元になる計算ノードによって付与される。【００７３】
「転送開始元ＩＤ」には、データＩＤで識別されるデータの転送開始元になる計算ノードの識別子が格納される。例えば、「転送開始元ＩＤ」には、「計算ノード２」や「計算ノード７」などが格納される。なお、転送開始元ＩＤは、データの転送開始元になる計算ノードによって付与される。【００７４】
「最終転送先ＩＤ」には、データＩＤで識別されるデータの最終的な転送先となるＩＯ装置の識別子が格納される。例えば、「最終転送先ＩＤ」には、「ＩＯ装置２０」や「ＩＯ装置２１」などが格納される。なお、最終転送先ＩＤは、データの転送開始元になる計算ノードによって付与される。【００７５】
図７に示す例では、転送データ管理テーブル１１３は、計算ノード２を転送開始元にしてＩＯ装置２０へ転送するデータのＩＤが「ｘｘｘ１」であることを示す。同様に、転送データ管理テーブル１１３は、計算ノード７を転送開始元にしてＩＯ装置２１へ転送するデータのＩＤが「ｘｘｘ２」であることを示す。【００７６】
図４に戻って、通信経路管理テーブル１１４は、転送を要求されたデータをデータ転送先へ転送する通信経路を記憶する。図８は、通信経路管理テーブルの一例を示す図である。例えば、通信経路管理テーブル１１４は、図８に示すように、「データＩＤ」、「通信経路ＩＤ」、「転送元ＩＤ」、「転送先ＩＤ」、「転送開始元ＩＤ」、「最終転送先ＩＤ」をそれぞれ対応付けた情報を記憶する。なお、「データＩＤ」、「転送開始元ＩＤ」、「最終転送先ＩＤ」に格納される情報については、転送データ管理テーブル１１３と同様であるので説明を省略する。【００７７】
ここで、「通信経路ＩＤ」には、データＩＤで識別されるデータをＩＯ装置に転送する通信経路を転送区間毎に分割した転送区間の識別子が格納される。例えば、「通信経路ＩＤ」には、分割された転送区間を識別する「ｘｘｘ２．０１」や「ｘｘｘ２．０２」などが格納される。【００７８】
「転送元ＩＤ」には、通信経路ＩＤに対応する転送元ノードの識別子が格納される。例えば、「転送元ＩＤ」には、「計算ノード７」や「計算ノード１１」などが格納される。「転送先ＩＤ」には、通信経路ＩＤに対応する転送先ノードの識別子が格納される。例えば、「転送先ＩＤ」には、「計算ノード１１」や「ＩＯノード１５」などが格納される。【００７９】
図８に示す例では、通信経路管理テーブル１１４は、計算ノード７を転送開始元にして、ＩＯ装置２１を最終転送先にするデータの転送がデータＩＤ「ｘｘｘ２」で識別されることを示す。また、通信経路管理テーブル１１４は、このデータの転送には、通信経路として「ｘｘｘ２．０１」、「ｘｘｘ２．０２」、「ｘｘｘ２．０３」で識別される３つに分割された転送区間が存在することを示す。また、通信経路管理テーブル１１４は、最初の転送区間である「ｘｘｘ２．０１」は、計算ノード７を転送元にして計算ノード１１を転送先にする経路であることを示す。通信経路管理テーブル１１４は、２番目の転送区間である「ｘｘｘ２．０２」は、転送元である計算ノード１１から転送先であるＩＯノード１５への経路であることを示す。通信経路管理テーブル１１４は、３番目の転送区間である「ｘｘｘ２．０３」は、転送元であるＩＯノード１５から転送先であるＩＯ装置２１への経路であることを示す。【００８０】
図４に戻り、制御部１２０は、受信部１２１と、送信部１２２と、更新部１２３と、選択部１２４とを有する。例えば、制御部１２０は、ＡＳＩＣ、ＦＰＧＡ、ＣＰＵやＭＰＵなどの集積回路である。制御部１２０は、制御プログラム、各種の処理手順などを規定したプログラムおよび各種の処理に必要なデータを格納するための内部メモリを有する。【００８１】
受信部１２１は、計算ノードそれぞれから各計算ノードが隣接する計算ノードやＩＯノードとの間を接続するリンクの通信状態を示す情報やＩＯノードとＩＯ装置との間を接続するリンクの通信状態を示す情報を受信する。そして、受信部１２１は、受信したリンクの通信状態を示す情報を更新部１２３に出力する。【００８２】
また、受信部１２１は、複数の計算ノードやＩＯノードのいずれかから、隣接する計算ノードやＩＯノードとの通信状態又はＩＯ装置との通信状態が変更されたことを示す情報を受信する。受信部１２１は、計算ノードの通信状態やＩＯノードの通信状態が更新されたことを示す情報を受信した場合、更新部１２３に出力する。【００８３】
また、受信部１２１は、複数のＩＯ装置のいずれかにデータの転送を要求する転送要求を計算ノードやＩＯノードのいずれかから受信する。例えば、受信部１２１は、計算ノードからＩＯ装置へデータ転送を要求していることを示す転送要求を受信する。そして、受信部１２１は、計算ノードＩＯ装置へデータ転送を要求していることを示す転送要求を選択部１２４に出力する。【００８４】
送信部１２２は、選択部１２４によって選択されたデータ転送先ノードの識別子を受信し、ＩＯ装置へデータ転送を要求している計算ノードに、受信したデータ転送先ノードの識別子を送信する。【００８５】
更新部１２３は、受信部１２１から受付けた、各計算ノードが接続するリンクの通信状態及び各ＩＯノードが接続するリンクの通信状態から、各ノード間を接続するリンクと、このリンクの通信状態とを対応付けた情報を生成する。【００８６】
図５に示す例では、更新部１２３は、受信部１２１を介して、計算ノード２から計算ノード３との通信状態が正常であることを示す通知を受信した場合、図５中（Ａ）に示すように、情報を格納する。すなわち、更新部１２３は、リンクＩＤ「ｘｘｘ１」の「通信状態」に通信状態が正常であることを示す「Ｎｏｒｍａｌ」を格納する。【００８７】
図６に示す例では、更新部１２３は、受信部１２１を介して、ＩＯノード１４からＩＯ装置２０との通信状態が正常であることを示す通知を受信した場合、図６中（Ａ）に示すように情報を格納する。すなわち、更新部１２３は、リンクＩＤ「００１」の「通信状態」に通信状態が正常であることを示す「Ｎｏｒｍａｌ」を格納する。【００８８】
また、更新部１２３は、受信部１２１から各計算ノードによって形成されるリンクの通信状態や各ＩＯノードによって形成されるリンクの通信状態が更新されたことを示す通知を受信した場合、リンク管理テーブル１１１やＩＯノード管理テーブル１１２を更新する。図９及び図１０を用いて更新部１２３によるリンク管理テーブル１１１の更新処理について説明する。図９は、計算ノード１１とＩＯノード１５との通信状態に異常が生じたコンピュータシステムの一例を示す図であり、図１０は、更新部によって更新されたリンク管理テーブルの一例を示す図である。【００８９】
図９に示すコンピュータシステムの場合、更新部１２３は、受信部１２１から計算ノード１１とＩＯノード１５との間で形成されるリンクの通信状態が異常であることを示す通知を受信する。このような場合には、更新部１２３は、図１０中（Ａ）に示すように、リンク管理テーブル１１１の「リンクＩＤ＝ｘｘｘ７」に対応する「通信状態」に、通信状態が異常であることを示す「Ｆａｌｌ」を格納する。【００９０】
また、更新部１２３は、ＩＯノードに異常が生じたことを示す通知をＩＯノードから受信した場合、ＩＯノード管理テーブル１１２及びリンク管理テーブル１１１を更新する。図１１及び図１２を用いて更新部１２３によるＩＯノードに異常が生じた場合のＩＯノード管理テーブル１１２及びリンク管理テーブル１１１の更新処理について説明する。図１１は、実施例１に係るＩＯノードに異常が生じたコンピュータシステムの一例を示す図であり、図１２は、生成部によって更新されたＩＯノード管理テーブルの一例を示す図である。【００９１】
図１１に示すように、ＩＯノード１５において障害が生じた場合には、更新部１２３は、以下の処理を実行する。すなわち、更新部１２３は、図１２中（Ａ）に示すように、ＩＯノード管理テーブル１１２の「リンクＩＤ＝００３」に対応する「通信状態」に、通信状態が異常であることを示す「Ｆａｌｌ」を格納し、「運用状態」に、異常であることを示す「Ｆａｌｌ」を格納する。また、更新部１２３は、図１０中（Ａ）に示すように、リンク管理テーブル１１１の「リンクＩＤ＝ｘｘｘ７」に対応する「通信状態」に、通信状態が異常であることを示す「Ｆａｌｌ」を格納する。【００９２】
選択部１２４は、データ転送要求を受信した場合に、リンク管理テーブル１１１とＩＯノード管理テーブル１１２に記憶されるリンクの通信状態に基づいて、ＩＯ装置へデータを転送できる通信経路を選択する。以下、選択部１２４による処理の一例を詳細に説明する。なお、選択部１２４は、特定部の一例である。【００９３】
例えば、選択部１２４は、データ転送要求を受信した場合、通信経路を選択済みであるか否かを判定する。選択部１２４は、通信経路を選択済みであると判定した場合に、経路管理テーブル１１４から転送先ノードを抽出する。【００９４】
具体的には、選択部１２４は、データ転送要求に含まれるデータＩＤと転送開始元計算ノードを識別する転送開始元ＩＤと最終転送先ＩＯ装置を識別する最終転送先ＩＤとデータの転送元ノードを識別する転送元ＩＤとを抽出する。そして、選択部１２４は、抽出したデータＩＤと一致するデータＩＤが転送データ管理テーブル１１３に存在するか否かを判定する。【００９５】
ここで、選択部１２４は、抽出したデータＩＤと一致するデータＩＤが転送データ管理テーブル１１３に存在すると判定した場合、通信経路を選択済みであると判定する。そして、選択部１２４は、経路管理テーブル１１４を検索し、データＩＤと転送開始元ＩＤと最終転送先ＩＤと転送元ＩＤとが一致するレコードの転送先ＩＤを抽出する。その後、選択部１２４は、抽出した転送先ＩＤを送信部１２２に出力する。【００９６】
一方、選択部１２４は、抽出したデータＩＤと一致するデータＩＤが転送データ管理テーブル１１３に存在しないと判定した場合、通信経路を選択済みではないと判定する。なお、選択部１２４が通信経路を選択済みではないと判定する一例として、転送開始元ノードから転送要求を受付けた場合が挙げられる。【００９７】
そして、選択部１２４は、通信経路を選択済みではないと判定した場合、リンク管理テーブル１１１とＩＯノード管理テーブル１１２とを参照し、計算ノードから要求されたＩＯ装置へデータを転送することができる最短の通信経路を選択する。【００９８】
具体的には、選択部１２４は、抽出したデータＩＤと一致するデータＩＤが転送データ管理テーブル１１３に存在しないと判定した場合、通信経路を選択済みではないと判定する。そして、選択部１２４は、抽出したデータＩＤと転送開始元ＩＤと最終転送先ＩＤとを対応付けて転送データ管理テーブル１１３に格納する。【００９９】
選択部１２４は、ＩＯノード管理テーブル１１２を読み出して、データ転送先のＩＯ装置へデータを入出力する運用系のＩＯノードが存在するか否かを判定する。また、選択部１２４は、データ転送先のＩＯ装置へデータを入出力する運用系のＩＯノードが存在すると判定した場合、当該運用系のＩＯノードを選択する。そして、選択部１２４は、リンク管理テーブル１１１を読み出して、データ転送開始元の計算ノードから選択したＩＯノードまでの最短経路を一つ選択する。【０１００】
また、選択部１２４は、選択した経路上のリンクに異常があるか否かを判定し、異常がないと判定した場合に選択した通信経路を経路管理テーブル１１４として生成する。そして、選択部１２４は、経路管理テーブル１１４を検索し、データＩＤと転送開始元ＩＤと最終転送先ＩＤと転送元ＩＤとが一致するレコードの転送先ＩＤを抽出する。選択部１２４は、抽出した転送先ＩＤを送信部１２２に出力する。【０１０１】
また、選択部１２４は、選択した経路上のリンクに異常があると判定した場合、異常があると判定されたリンクを迂回する迂回経路を選択し、迂回経路が選択できたか否かを判定する。そして、選択部１２４は、迂回経路が選択できたと判定した場合、選択した迂回経路上のリンクに異常があるか否かを判定する。また、選択部１２４は、迂回経路を選択できないと判定した場合、管理者に異常を通知する。【０１０２】
一方、選択部１２４は、データ転送先のＩＯ装置へデータを入出力する運用系のＩＯノードが存在しないと判定した場合、データ転送先のＩＯ装置と接続する待機系のＩＯノードが存在するか否かを判定する。そして、選択部１２４は、データ転送先のＩＯ装置と接続する待機系のＩＯノードが存在すると判定した場合、ＩＯノード管理テーブル１１２に記憶されるＩＯ装置へデータを入出力するＩＯノードを待機系のＩＯノードに更新する。そして、選択部１２４は、ＩＯ装置に接続するするＩＯノードを選択し、選択したＩＯノードまでの最短経路を一つ選択する。【０１０３】
図１１に示すように、ＩＯ装置２１へデータを入出力するＩＯノード１５において障害が生じた場合には、選択部１２４は、以下の処理を実行する。すなわち、選択部１２４は、ＩＯノード管理テーブル１１２の、ＩＯノード１７とＩＯ装置２１とを接続するリンクを示すリンクＩＤに対応する「運用状態」に運用系であることを示す「Ａｃｔｉｖｅ」を格納する。【０１０４】
次に、計算ノード７がＩＯ装置２１へデータ転送を要求した場合の選択部１２４による通信経路選択処理について、図１、図９、図１１を例に用いて説明する。選択部１２４は、ＩＯ装置２１と接続されるＩＯノードとしてＩＯノード１５を選択する。そして、選択部１２４は、図１に示すように、通信経路に異常がない場合、計算ノード７からＩＯ装置２１へデータを転送する転送ノードとして、計算ノード１１、計算ノード１５を選択する。この場合、選択部１２４は、データ転送先として計算ノード１１を選択し、選択したデータ転送先を送信部１２２に出力する。なお、この場合、選択部１２４は、選択した転送ノードの識別子に基づき、図８に示した通信経路管理テーブル１１４を生成する。【０１０５】
図９に示すように、計算ノード１１と計算ノード１５との間を接続するリンクが障害等により使用できない場合、選択部１２４は、以下の処理を実行する。すなわち、選択部１２４は、計算ノード１１と計算ノード１５との間で形成されるリンクを迂回する通信経路を選択する。【０１０６】
例えば、選択部１２４は、ＩＯ装置２１と接続されるＩＯノードとしてＩＯノード１５を選択し、計算ノード７からＩＯ装置２１へデータを転送する転送ノードとして、計算ノード１１、計算ノード１２、ＩＯノード１６、ＩＯノード１５を選択する。選択部１２４は、選択した転送ノードの識別子に基づき図１３Ａに示す通信経路管理テーブル１１４を生成する。なお、図１３Ａは、通信経路管理テーブルの一例を示す図である。この場合、選択部１２４は、データ転送先として計算ノード１１を選択し、選択したデータ転送先を送信部１２２に出力する。なお、選択部１２４が選択する通信経路はこれに限定されるものではない。例えば、選択部１２４は、計算ノード７からＩＯ装置２１へデータを転送する転送ノードとして、計算ノード１１、計算ノード１０、ＩＯノード１４、ＩＯノード１５を選択してもよい。【０１０７】
図１１に示すように、ＩＯノード１５に異常が生じ、ＩＯノード１５とＩＯ装置２１との間を接続するリンクを経由できない場合、選択部１２４は、以下の処理を実行する。すなわち、選択部１２４は、ＩＯ装置２１と接続されるＩＯノードとしてＩＯノード１７を選択する。そして、選択部１２４は、例えば、計算ノード７からＩＯ装置２１へデータを転送する転送ノードとして、計算ノード１１、計算ノード１２、計算ノード１３、ＩＯノード１７を選択する。選択部１２４は、選択した転送ノードの識別子に基づき、図１３Ｂに示す通信経路管理テーブル１１４を生成する。なお、図１３Ｂは、通信経路管理テーブルの一例を示す図である。この場合、選択部１２４は、データ転送先として計算ノード１１を選択し、選択したデータ転送先を送信部１２２に出力する。なお、選択部１２４が選択する通信経路はこれに限定されるものではない。例えば、選択部１２４は、計算ノード７からＩＯ装置２１へデータを転送する転送ノードとして、計算ノード１１、計算ノード１２、ＩＯノード１６、ＩＯノード１７を選択してもよい。【０１０８】
［計算ノードによるデータ転送処理の処理手順］
次に、図１４を用いて、実施例１に係る計算ノードによるＩＯ装置へのデータ転送処理の処理手順について説明する。図１４は、計算ノードによるＩＯ装置へのデータ転送処理の処理手順を示すフローチャートである。ここでは、計算ノード２を用いて説明するが、ここで説明する処理は、計算ノード２による処理に限定されるものではなく、他の計算ノードやＩＯノードにおいても同様の処理が実行される。【０１０９】
計算ノード２は、いずれかのＩＯ装置へ転送するデータが存在すると判定した場合（ステップＳ１０１、Ｙｅｓ）、自装置のＩＤとデータのＩＤと転送開始元ＩＤと最終転送先ＩＤとを管理サーバ１００に送信する（ステップＳ１０２）。例えば、計算ノード２は、いずれかのＩＯ装置に転送するデータを自身が生成した場合、または、隣接する計算ノードからいずれかのＩＯ装置に転送するデータを受信した場合、ＩＯ装置へ転送するデータが存在すると判定する。なお、計算ノード２は、いずれかのＩＯ装置に転送するデータを自身が生成した場合、自身でデータＩＤを生成する。【０１１０】
計算ノード２は転送先ノードの識別子を管理サーバ１００から受信し（ステップＳ１０３）、受信した転送先ノードの識別子に基づいて、転送先ノードにデータを送信する（ステップＳ１０４）。例えば、計算ノード２は、データＩＤ、自装置のＩＤ、転送開始元ＩＤ、最終転送先ＩＤなどを含んだデータを転送先ノードに転送する。計算ノード２は、その後処理を終了する。【０１１１】
［実施例１に係る管理サーバの処理の処理手順］
次に図１５、図１６、図１７を用いて、実施例１に係る管理サーバ１００の処理の処理手順を説明する。ここでは、図１５を用いて管理サーバ１００によるデータ転送処理の処理手順を説明し、図１６を用いて管理サーバ１００によるリンク管理テーブル及びＩＯノード管理テーブル更新処理の処理手順を説明し、図１７を用いて、管理サーバ１００による経路選択処理の処理手順を説明する。【０１１２】
（データ転送処理の処理手順）
図１５は、実施例１に係る管理サーバによるデータ転送処理の処理手順を示すフローチャートである。例えば、管理サーバ１００は、いずれかの計算ノードからＩＯ装置へデータの転送要求を受付けたことを契機に処理を実行する。【０１１３】
図１５に示すように、管理サーバ１００の受信部１２１が、ＩＯ装置へのデータ転送要求を計算ノードから受信する（ステップＳ２０１）。そして、選択部１２４は、データＩＤを抽出し（ステップＳ２０２）、抽出したデータＩＤに対応する経路を選択済みであるか否かを判定する（ステップＳ２０３）。ここで、選択部１２４は、抽出したデータＩＤと一致するデータＩＤが転送データ管理テーブル１１３に存在するか否かを判定する。そして、選択部１２４は、抽出したデータＩＤと一致するデータＩＤが転送データ管理テーブル１１３に存在すると判定した場合、通信経路を選択済みであると判定する。一方、選択部１２４は、抽出したデータＩＤと一致するデータＩＤが転送データ管理テーブル１１３に存在しないと判定した場合、通信経路を選択済みではないと判定する。【０１１４】
選択部１２４は、経路を選択済みではないと判定した場合（ステップＳ２０３、Ｎｏ）、通信経路を選択する処理を実行する（ステップＳ２０４）。選択部１２４によって経路が選択済みであると判定された場合（ステップＳ２０３、Ｙｅｓ）、あるいは選択部１２４が実行するステップＳ２０４の処理によって通信経路が選択された場合、送信部１２２は、選択された経路から転送先のノードを判別し、転送先を計算ノードに通知する（ステップＳ２０５）。選択部１２４は、その後処理を終了する。【０１１５】
（リンク管理テーブル及びＩＯノード管理テーブル更新処理の処理手順）
図１６は、リンク管理テーブル及びＩＯノード管理テーブル更新処理の処理手順を示すフローチャートである。管理サーバ１００は、ＩＯノードが異常であることを示す通知を異常が生じたＩＯノードから受信したことを契機に処理を実行する。【０１１６】
図１６に示すように、管理サーバ１００は、ＩＯノードから更新通知を受信した場合（ステップＳ３０１、Ｙｅｓ）、ＩＯノード管理テーブル１１２の「通信状態」を更新する（ステップＳ３０２）。例えば、管理サーバ１００は、ＩＯノード１５から異常が生じたことを通知された場合、ＩＯノード管理テーブル１１２の「通信状態」に異常を示す「Ｆａｌｌ」を格納する。また、管理サーバ１００が、異常から復旧したＩＯノード１５から正常である旨を通知された場合、ＩＯノード管理テーブル１１２の「通信状態」に正常を示す「Ｎｏｒｍａｌ」を格納し、「運用状態」に「Ｓｔａｎｂｙ」を格納する。【０１１７】
また、管理サーバ１００は、リンク管理テーブル１１１のうち異常が生じたＩＯノードとの通信状態を更新する（ステップＳ３０３）。例えば、管理サーバ１００は、ＩＯノード１５から異常が生じたことを通知された場合、リンク管理テーブル１１１のうちＩＯノード１５と形成するリンクの「通信状態」に異常を示す「Ｆａｌｌ」を格納する。また、管理サーバ１００は、異常から復旧したＩＯノード１５から正常である旨を通知された場合、リンク管理テーブル１１１のうちＩＯノード１５と形成するリンクの「通信状態」に正常を示す「Ｎｏｒｍａｌ」を格納する。【０１１８】
（経路選択処理の処理手順）
図１７は、経路選択処理の処理手順を示すフローチャートである。この処理は、図１５のステップＳ２０４の処理に対応し、選択部１２４が、抽出したデータＩＤに対応する経路を選択済みではないと判定したことを契機に処理を実行する。【０１１９】
図１７に示すように、管理サーバ１００の選択部１２４は、データ転送元の計算ノードとデータ転送先のＩＯ装置とを抽出し（ステップＳ４０１）、転送データ管理テーブル１１３を生成する（ステップＳ４０２）。【０１２０】
選択部１２４は、ＩＯノード管理テーブル１１２を読み出し（ステップＳ４０３）、データ転送先のＩＯ装置と接続された運用系ＩＯノードが存在するか否かを判定する（ステップＳ４０４）。ここで、選択部１２４は、データ転送先のＩＯ装置と接続された運用系ＩＯノードが存在しないと判定した場合（ステップＳ４０４、Ｎｏ）、以下の処理を実行する。すなわち、選択部１２４は、データ転送先ＩＯ装置と接続された待機系ＩＯノードが存在するか否かを判定する（ステップＳ４０５）。【０１２１】
選択部１２４によってデータ転送先ＩＯ装置と接続された待機系ＩＯノードが存在すると判定された場合（ステップＳ４０５、Ｙｅｓ）、更新部１２３は、ＩＯノード管理テーブル１１２及びリンク管理テーブル１１１を更新する（ステップＳ４０６）。【０１２２】
選択部１２４は、データ転送先のＩＯ装置と接続された運用系ＩＯノードが存在すると判定した場合（ステップＳ４０４、Ｙｅｓ）、ステップＳ４０６でＩＯノード管理テーブル１１２及びリンク管理テーブル１１１を更新した場合、以下の処理を実行する。すなわち、選択部１２４は、ＩＯノードを選択し（ステップＳ４０７）、続いて、リンク管理テーブル１１１を読み出す（ステップＳ４０８）。【０１２３】
次に、選択部１２４は、データ転送元の計算ノードから選択したＩＯノードまでの最短経路を一つ選択し（ステップＳ４０９）、選択した経路上のリンクまたはノードに異常があるか否かを判定する（ステップＳ４１０）。そして、選択部１２４は、選択した経路上のリンクまたはノードに異常がないと判定した場合（ステップＳ４１０、Ｎｏ）、通信経路管理テーブル１１４を生成し（ステップＳ４１１）、処理を終了する。【０１２４】
一方、選択部１２４は、選択した経路上のリンクまたはノードに異常があると判定した場合（ステップＳ４１０、Ｙｅｓ）、異常なリンクをまたはノード迂回する経路のうち最短となる経路を一つ選択する（ステップＳ４１２）。そして、選択部１２４は、最短経路を選択できたか否かを判定する（ステップＳ４１３）。ここで、選択部１２４は、最短経路を選択できたと判定した場合（ステップＳ４１３、Ｙｅｓ）、ステップＳ４１０に移行し、選択した最短経路上のリンクまたはノードに異常があるか否かを判定する。【０１２５】
一方、選択部１２４は、最短経路を選択できないと判定した場合（ステップＳ４１３、Ｎｏ）、異常を通知し（ステップＳ４１４）、処理を終了する。また、選択部１２４は、データ転送先ＩＯ装置と接続された待機系ＩＯノードが存在しないと判定した場合（ステップＳ４０５、Ｎｏ）、異常を通知し（ステップＳ４１４）、処理を終了する。【０１２６】
［実施例１の効果］
上述してきたように、本実施例１では、管理サーバ１００の選択部１２４は、生成した通信経路管理テーブル１１４から特定した転送先ノードの識別子を転送開始元ノードに通知する。このため、コンピュータシステム１の一部のリンクまたはノードに異常が発生した場合でも、データの転送元である計算ノードは、転送先であるＩＯ装置にデータを転送することができる。例えば、コンピュータシステム１では、通信経路上のリンクまたはノードでトラブルが発生した場合にシステムの可用性を向上させるために転送される可用性向上用データをＩＯ装置に転送することができる。【０１２７】
なお、管理サーバ１００は、生成した通信経路管理テーブル１１４から転送先ノードを特定し、特定した転送先ノードの識別子を転送開始元ノードに送信するものとして説明したが、これに限定されるものではない。例えば、管理サーバ１００は、通信経路管理テーブル１１４を生成し、通信経路上の全ての計算ノードとＩＯノードとに生成した通信経路管理テーブル１１４を送信するようにしてもよい。
【実施例２】
【０１２８】
実施例１では、入出力するデータ全体を一まとめに転送する場合について説明した。ところで、転送先のＩＯノード上で、書込み対象のデータを複数回に分けて追加書きできる場合は、データ全体を一まとめに転送する必要はない。また、データを複数のデータに分割するデータチャンク管理機構が存在する場合は、各データチャンクの通信毎にタイムスロットを割り当てて通信してもよい。そこで、実施例２では、データを分割するデータチャンク管理機構と、各リンクの利用権を一定時間毎あるいは転送単位毎のタイムスロットに分割し、それらを資源として管理するタイムスロット管理機構とを備えた管理サーバの実施例について説明する。【０１２９】
［実施例２に係る管理サーバの構成］
図１８は、実施例２に係る管理サーバの構成を示すブロック図である。図１８に示すように、管理サーバ２００は、記憶部１１０、制御部２２０を有する。なお、ここでは、図４に示した各部と同様の役割を果たす機能部については、同一符号を付すことにしてその詳細な説明を省略する。【０１３０】
制御部２２０は、受信部１２１、送信部１２２、更新部１２３、選択部１２４、タイムスロット管理部２２５、データチャンク管理部２２６を有する。【０１３１】
タイムスロット管理部２２５は、一定時間毎あるいは転送単位毎のタイムスロットに分割した各リンクの利用権を通信資源として管理する。例えば、タイムスロット管理部２２５は、データ量に対し利用可能なリンクの帯域の合計が小さい場合、各計算ノードからＩＯ装置までの経路中の各リンクの利用権の請求を受付け、各リンクの利用権を割り当てる。また、タイムスロット管理部２２５は、各リンクの利用権の情報を送信部１２２に出力する。この結果、送信部１２２は、リンクの利用権を請求した計算ノードに、リンクの利用権の割り当てを送信する。【０１３２】
データチャンク管理部２２６は、所定サイズに分割された転送単位であるデータチャンクの分割前のデータとの対応付け、および各データチャンクの転送先を管理する。例えば、データチャンク管理部２２６は、時分割されたタイムスロットの管理を行なうことにより、自装置が行う通信と他のノードが行なう通信とで、通信帯域を有効に利用できる。【０１３３】
このように管理サーバ２００がデータを分割し、各リンクの利用権を一定時間毎あるいは転送単位毎のタイムスロットに分割する結果、計算ノードは、通信帯域を超えるデータ転送が開始された場合の輻輳による実効通信帯域の低下を防止できる。例えば、管理サーバ２００は、短時間のうちに転送すべきデータが大量に発生する可用性データの転送において有効である。
【実施例３】
【０１３４】
ところで、本発明は、上述した実施例以外にも、種々の異なる形態にて実施されてよい。そこで、実施例３では、本発明に含まれる他の実施例について説明する。【０１３５】
（システム構成等）
実施例１及び実施例２において説明した各処理のうち自動的に行われるものとして説明した処理の全部または一部を手動的に行うこともできる。あるいは、手動的に行われるものとして説明した処理の全部又は一部を公知の方法で自動的に行うこともできる。この他、上記文章中や図面中で示した処理手順、制御手順、具体的名称については、特記する場合を除いて任意に変更することができる。【０１３６】
また、図示した記憶部が格納する情報は一例に過ぎず、必ずしも図示のごとく情報が格納される必要はない。【０１３７】
選択部１２４は、抽出したデータＩＤと一致するデータＩＤが転送データ管理テーブル１１３に存在するか否かを判定することで、抽出したデータＩＤに対応する経路を選択済みであるか否かを判定するものとして説明したがこれに限定されるものではない。例えば、選択部１２４は、転送要求に含まれる「転送開始元ＩＤ」と「転送元ＩＤ」とを抽出し、「転送開始元ＩＤ」と「転送元ＩＤ」とが一致するか否かを判定することで経路を選択済みであるか否かを判定するようにしてもよい。そして、選択部１２４は、「転送開始元ＩＤ」と「転送元ＩＤ」とが一致すると判定した場合、経路を未選択であると判定する。一方、選択部１２４は、「転送開始元ＩＤ」と「転送元ＩＤ」とが一致しないと判定した場合、経路を選択済みであると判定する。すなわち、選択部１２４は、転送開始元から転送要求を受けた場合には経路を未選択であると判定し、転送開始元ではないノードから転送要求を受けた場合には経路を選択済みであると判定する。【０１３８】
また、隣接する計算ノードと計算ノードとの間、隣接する計算ノードとＩＯノードとの間、隣接するＩＯノードとＩＯノードとの間のリンクは物理的なリンクとして説明したが、これに限定されるものではない。例えば、隣接する計算ノードと計算ノードとの間、隣接する計算ノードとＩＯノードとの間、隣接するＩＯノードとＩＯノードとの間のリンクは、仮想チャネルであってもよい。【０１３９】
また、各種の負荷や使用状況などに応じて、各実施例において説明した各処理の各ステップでの処理の順番を変更してもよい。例えば、図１６に示すステップＳ３０２とステップＳ３０３とを同時に実行しても良い。【０１４０】
また、図示した各構成部は、機能概念的なものであり、必ずしも物理的に図示のごとく構成されていることを要しない。例えば、管理サーバ１００が有する更新部１２３と選択部１２４とは統合されてもよい。さらに、各装置にて行われる各処理機能は、その全部または任意の一部が、ＣＰＵおよび当該ＣＰＵにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。【０１４１】
（プログラム）
ところで、上記実施例で説明した各種の処理は、あらかじめ用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータシステムで実行することによって実現することができる。そこで、以下では、上記実施例と同様の機能を有するプログラムを実行するコンピュータの一例を説明する。【０１４２】
図１９は、経路選択プログラムを実行するコンピュータの一例を示す図である。図１９に示すように、コンピュータ３００は、利用者からデータや各種設定などを受け付ける入力装置３１０と、コンピュータの状況などを通知する出力装置３２０とを有する。また、コンピュータ３００は、他の装置とデータを送受信するネットワークインターフェース３３０と媒体読取装置３４０とＲＡＭ（Random  Access  Memory）３５０とＲＯＭ（Read  Only  Memory）３６０とＣＰＵ３７０とバス３８０とを有する。そして、各装置３１０〜３７０それぞれは、バス３８０に接続される。【０１４３】
ここで、図１９に示すように、ＲＯＭ３６０には、図４に示した、受信部１２１と送信部１２２と更新部１２３と選択部１２４と同様の機能を発揮する経路選択プログラム３６１が予め記憶されている。そして、ＣＰＵ３７０は、経路選択プログラム３６１をＲＯＭ３６０から読み出して、経路選択プロセス３７１として実行する。すなわち、経路選択プロセス３７１は、図４に示した、受信部１２１と送信部１２２と更新部１２３と選択部１２４と同様の動作を実行する。【０１４４】
図２０は、転送要求プログラムを実行するコンピュータの一例を示す図である。図２０に示すように、コンピュータ４００は、利用者からデータや各種設定などを受け付ける入力装置４１０と、コンピュータの状況などを通知する出力装置４２０とを有する。また、コンピュータ４００は、他の装置とデータを送受信するネットワークインターフェース４３０と媒体読取装置４４０とＲＡＭ４５０とＲＯＭ４６０とＣＰＵ４７０とバス４８０とを有する。そして、各装置４１０〜４７０それぞれは、バス４８０に接続される。【０１４５】
ここで、図２０に示すように、ＲＯＭ４６０には、図２に示した、リンク監視部２ｅと転送要求部２ｆと転送部２ｇと同様の機能を発揮する転送要求プログラム４６１が予め記憶されている。そして、ＣＰＵ４７０は、転送要求プログラム４６１をＲＯＭ４６０から読み出して、転送要求プロセス４７１として実行する。すなわち、転送要求プロセス４７１は、図２に示した、リンク監視部２ｅと転送要求部２ｆと転送部２ｇと同様の動作を実行する。【０１４６】
ところで、上記した経路選択プログラム３６１、転送要求プログラム４６１は、必ずしもＲＯＭに記憶させておく必要はない。例えば、コンピュータ３００、４００に挿入されるフレキシブルディスク（ＦＤ）、ＣＤ−ＲＯＭ、ＭＯディスク、ＤＶＤディスク、光磁気ディスク、ＩＣカードなどの「可搬用の物理媒体」に記憶させておくようにしてもよい。また、コンピュータ３００、４００の内外に備えられるハードディスクドライブ（ＨＤＤ）などの「固定用の物理媒体」に記憶させておいてもよい。さらに、公衆回線、インターネット、ＬＡＮ（Local  Area  Network）、ＷＡＮ（Wide  Area  Network）などを介してコンピュータ３００、４００に接続される「他のコンピュータシステム」に記憶させておいてもよい。そして、コンピュータ３００、４００がこれらからプログラムを読み出して実行するようにしてもよい。【０１４７】
すなわち、このプログラムは、上記した「可搬用の物理媒体」、「固定用の物理媒体」、「通信媒体」などの記録媒体に、コンピュータ読み取り可能に記憶されるものである。そして、コンピュータ３００、４００は、このような記録媒体からプログラムを読み出して実行することで上記した実施例と同様の機能を実現する。なお、この他の実施例でいうプログラムは、コンピュータ３００、４００によって実行されることに限定されるものではない。例えば、他のコンピュータシステムまたはサーバがプログラムを実行する場合や、これらが協働してプログラムを実行するような場合にも、本発明を同様に適用することができる。
【符号の説明】
【０１４８】
１  コンピュータシステム
２〜１３  計算ノード
２ａ  記憶部
２ｂ  制御部
２ｃ  第１通信部
２ｄ  第２通信部
２ｅ  リンク監視部
２ｆ  転送要求部
２ｇ  転送部
１４〜１７  ＩＯノード
１４ａ  記憶部
１４ｂ  制御部
１４ｃ  第１通信部
１４ｄ  第２通信部
１４ｅ  第３通信部
１４ｆ  リンク監視部
１４ｇ  転送要求部
１４ｈ  転送部
２０〜２２  ＩＯ装置
１００  管理サーバ
１１０  記憶部
１１１  リンク管理テーブル
１１２  ＩＯノード管理テーブル
１２０  制御部
１２１  受信部
１２２  送信部
１２３  更新部
１２４  選択部
【図１】
2012160641.tif 000003
【図２】
2012160641.tif 000004
【図３】
2012160641.tif 000005
【図４】
2012160641.tif 000006
【図５】
2012160641.tif 000007
【図６】
2012160641.tif 000008
【図７】
2012160641.tif 000009
【図８】
2012160641.tif 000010
【図９】
2012160641.tif 000011
【図１０】
2012160641.tif 000012
【図１１】
2012160641.tif 000013
【図１２】
2012160641.tif 000014
【図１３Ａ】
2012160641.tif 000015
【図１３Ｂ】
2012160641.tif 000016
【図１４】
2012160641.tif 000017
【図１５】
2012160641.tif 000018
【図１６】
2012160641.tif 000019
【図１７】
2012160641.tif 000020
【図１８】
2012160641.tif 000021
【図１９】
2012160641.tif 000022
【図２０】
2012160641.tif 000023
【図２１】
2012160641.tif 000024
【手続補正書】
【提出日】平成25年12月5日(2013.12.5)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
互いに接続された情報処理装置間あるいは情報処理装置と入出力装置との間の通信状態を記憶する第１記憶部と、
データを入出力する入出力装置と、前記入出力装置にデータを入出力する入出力処理装置間の通信状態を、前記入出力処理装置の識別情報に対応付けて記憶する第２記憶部と、
前記入出力装置との間でのデータ転送を要求する転送要求をいずれかの情報処理装置から受信する受信部と、
前記受信部が受信した転送要求に対して、前記入出力装置との間の通信経路を選択済みであるか否かを判定し、入出力装置との間の通信経路を選択済みであると判定した場合、前記選択した通信経路から転送先の情報処理装置あるいは入出力処理装置を特定し、前記通信経路を選択済みではないと判定した場合、前記第１記憶部が記憶する通信状態と前記第２記憶部が記憶する通信状態とに基づいて前記入出力装置との間の通信経路を選択し、選択した通信経路に基づいて、転送先の情報処理装置あるいは入出力処理装置を特定する特定部と、
前記特定部が特定した情報処理装置あるいは入出力装置を識別する識別子を、前記転送要求を発した情報処理装置に送信する送信部と
を有することを特徴とする管理装置。
【請求項２】
前記管理装置において、
前記特定部は、転送要求先の入出力装置にデータを入出力する入出力処理装置または前記入出力装置と前記入出力処理装置との間の接続に異常が生じた場合、前記転送要求先の入出力装置にデータを入出力する他の入出力処理装置があるか否かを判定し、前記他の入出力処理装置があると判定したとき、当該入出力装置に対応付けて前記第２記憶部に記憶された前記入出力処理装置の識別情報を前記他の入出力処理装置の識別情報に更新して前記入出力装置との間の通信経路を選択し、選択した通信経路に基づいて、データ転送先の情報処理装置あるいは入出力処理装置を特定することを特徴とする請求項１記載の管理装置。
【請求項３】
前記管理装置はさらに、
前記受信部が、いずれかの情報処理装置から、その情報処理装置に隣接する他の情報処理装置または入出力処理装置との間の通信状態又は前記入出力装置との通信状態が変更されたことを示す情報を受信した場合、前記第１記憶部が記憶する通信状態及び前記第２記憶部が記憶する通信状態を更新する更新部を有することを特徴とする請求項１または２記載の管理装置。
【請求項４】
他の情報処理装置と管理装置に接続する情報処理装置において、
接続された他の情報処理装置との通信状態を監視し、監視した通信状態を前記管理装置に通知する通知部と、
データを入出力する入出力装置との間でデータを転送する場合、自身がデータを転送すべき情報処理装置の識別子を要求する転送要求を前記管理装置に送信する送信部と、
前記送信部が送信した転送要求に対して、通知された通信状態に基づいて前記管理装置が選択した転送先の情報処理装置の識別子を前記管理装置から受信する受信部と、
前記管理装置から受信した転送先の情報処理装置の識別子を持つ情報処理装置に前記データを転送する転送部と
を有することを特徴とする情報処理装置。
【請求項５】
前記情報処理装置において、
前記送信部は、転送対象のデータの識別子と自装置の識別子と前記入出力装置の識別子とを含んだ転送要求を、前記管理装置に送信することを特徴とする請求項４記載の情報処理装置。
【請求項６】
メッシュ状またはトーラス状に接続された複数の情報処理装置と、前記複数の情報処理装置からデータを入出力される入出力装置と、前記複数の情報処理装置それぞれと接続される管理装置とを有する情報処理システムであって、
前記管理装置は、
互いに接続された情報処理装置間あるいは情報処理装置と入出力装置との間の通信状態を記憶する第１記憶部と、
データを入出力する入出力装置と、前記入出力装置にデータを入出力する入出力処理装置間の通信状態を、前記入出力処理装置の識別情報に対応付けて記憶する第２記憶部と、
前記入出力装置との間でのデータ転送を要求する転送要求をいずれかの情報処理装置から受信する受信部と、
前記受信部が受信した転送要求に対して、前記入出力装置との間の通信経路を選択済みであるか否かを判定し、入出力装置との間の通信経路を選択済みであると判定した場合、前記選択した通信経路から転送先の情報処理装置あるいは入出力処理装置を特定し、前記通信経路を選択済みではないと判定した場合、前記第１記憶部が記憶する通信状態と前記第２記憶部が記憶する通信状態とに基づいて前記入出力装置との間の通信経路を選択し、選択した通信経路に基づいて、転送先の情報処理装置あるいは入出力処理装置を特定する特定部と、
前記特定部が特定した情報処理装置あるいは入出力装置を識別する識別子を、前記転送要求を発した情報処理装置に送信する送信部と
を有し、
前記情報処理装置は、
接続された他の情報処理装置との通信状態を監視し、監視した通信状態を前記管理装置に通知する通知部と、
データを入出力する入出力装置との間でデータを転送する場合、自身がデータを転送すべき情報処理装置の識別子を要求する転送要求を前記管理装置に送信する送信部と、
前記送信部が送信した転送要求に対して、通知された通信状態に基づいて前記管理装置が選択した転送先の情報処理装置の識別子を前記管理装置から受信する受信部と、
前記管理装置から受信した転送先の情報処理装置の識別子を持つ情報処理装置に前記データを転送する転送部と
を有することを特徴とする情報処理システム。
【請求項７】
メッシュ状またはトーラス状に接続された複数の情報処理装置と、前記複数の情報処理装置からデータを入出力される入出力装置と、前記複数の情報処理装置それぞれと接続される管理装置とを有する情報処理システムにおけるデータ転送方法であって、
前記情報処理装置が、
前記入出力装置との間でデータを転送する場合、自身がデータを転送すべき情報処理装置の識別子を要求する転送要求を前記管理装置に送信し、
前記管理装置が、
前記入出力装置との間でのデータ転送を要求する転送要求をいずれかの情報処理装置から受信し、
前記受信した転送要求に対して、前記入出力装置との間の通信経路を選択済みであるか否かを判定し、入出力装置との間の通信経路を選択済みであると判定した場合、前記選択した通信経路から転送先の情報処理装置あるいは入出力処理装置を特定し、前記通信経路を選択済みではないと判定した場合、互いに接続された情報処理装置間あるいは情報処理装置と入出力装置との間の通信状態と前記入出力装置と、前記入出力装置にデータを入出力する入出力処理装置間の通信状態とに基づいて前記入出力装置との間の通信経路を選択し、選択した通信経路に基づいて、転送先の情報処理装置あるいは入出力処理装置を特定し、
前記特定した情報処理装置あるいは入出力装置を識別する識別子を、前記転送要求を発した情報処理装置に送信し、
前記情報処理装置が、
前記送信した転送要求に対して、通知された通信状態に基づいて前記管理装置が選択した転送先の情報処理装置の識別子を前記管理装置から受信し、
前記管理装置から受信した転送先の情報処理装置の識別子を持つ情報処理装置に前記データを転送する
ことを特徴とするデータ転送方法。
【国際調査報告】
2012160641.tif 000025
2012160641.tif 000026
2012160641.tif 000027
2012160641.tif 000028