(57)【特許請求の範囲】
【請求項１】
それぞれが記憶装置と通信装置を備えた複数の計算機を、ネットワークを介して共通に接続した計算機クラスタシステムにおいて、
計算機クラスタシステム全体のファイルシステムは各計算機の記憶装置上に分散して存在し、
一部の計算機は、前記ファイルシステムの論理的構造を表すパスとファイルに対して計算機クラスタシステム全体で一意に割り当てられる大域識別子との関係を管理するパス管理部を有するサブシステムを有し、
各計算機は、それぞれの計算機が有する記憶装置の制御を行うカーネルを有し、
前記カーネルは、ファイルがどの記憶装置に記憶されているかを識別する局所識別子と前記大域識別子との対応関係を記憶・管理するリソース管理部と、記憶装置内でファイルが記憶された場所の番地と前記局所識別子との関係を管理するファイル管理部とを有し、
前記サブシステムのパス管理部に、前記計算機クラスタシステム上で動作するユーザプログラムが通知したファイルのパスに対応する大域識別子がない場合に、前記各計算機のリソース管理部は、前記ファイルのパスに対応する大域識別子と局所識別子の組を新たに記憶し、前記サブシステムは、前記ファイルのパスに対応する大域識別子とパスとの組を新たに記憶し、前記ユーザプログラムは、前記ファイルのパスに対応する大域識別子を取得することを特徴とする計算機クラスタシステム。
【請求項２】
記憶装置と通信装置を備え、ネットワークを介して共通に接続された複数の計算機から成る計算機クラスタシステムにおいて、
計算機クラスタシステム全体で使用するファイルシステムは各計算機の記憶装置上に分散して存在し、
計算機クラスタシステムで使用するオペレーティングシステムは、
前記ファイルシステムの論理的構造を表すパスとファイルに対して計算機クラスタシステム全体で一意に割り当てられる大域識別子との関係を管理するパス管理部を有するサブシステムと、
それぞれの計算機が有する記憶装置の制御を行うカーネルとを有し、
前記カーネルはファイルがどの記憶装置に記憶されているかを識別する局所識別子と前記大域識別子との対応関係を記憶・管理するリソース管理部と、記憶装置内でファイルが記憶された場所の番地と前記局所識別子との関係を管理するファイル管理部とを有し、かつ、各計算機において動作させ、
前記サブシステムは一部の計算機で動作させ、
前記サブシステムのパス管理部に、前記計算機クラスタシステム上で動作するユーザプログラムが通知したファイルのパスに対応する大域識別子がない場合に、前記各計算機のリソース管理部は、前記ファイルのパスに対応する大域識別子と局所識別子の組を新たに記憶し、前記サブシステムは、前記ファイルのパスに対応する大域識別子とパスとの組を新たに記憶し、前記ユーザプログラムは、前記ファイルのパスに対応する大域識別子を取得することを特徴とする計算機クラスタシステム。
【請求項３】
記憶装置と通信装置を備え、ネットワークを介して共通に接続された複数の計算機から成る計算機クラスタシステムにおいて、
計算機クラスタシステム全体で使用するファイルシステムは各計算機の記憶装置上に分散して存在し、
一部の計算機では、前記ファイルシステムの論理的構造を表すパスとファイルに対して計算機クラスタシステム全体で一意に割り当てられる大域識別子との関係を管理するパス管理部を有するサブシステムを動作させ、
各計算機上では、それぞれの計算機が有する記憶装置の制御を行うカーネルを動作させ、
前記カーネルは、ファイルがどの記憶装置に記憶されているかを識別する局所識別子と前記大域識別子との対応関係を記憶・管理するリソース管理部と、記憶装置内でファイルが記憶された場所の番地と前記局所識別子との関係を管理するファイル管理部とを有し、
前記サブシステムのパス管理部に、前記計算機クラスタシステム上で動作するユーザプログラムが通知したファイルのパスに対応する大域識別子がない場合に、前記各計算機のリソース管理部は、前記ファイルのパスに対応する大域識別子と局所識別子の組を新たに記憶し、前記サブシステムは、前記ファイルのパスに対応する大域識別子とパスとの組を新たに記憶し、前記ユーザプログラムは、前記ファイルのパスに対応する大域識別子を取得することを特徴とする計算機クラスタシステム。
【請求項４】
前記サブシステムのパス管理部に、前記計算機クラスタシステム上で動作するユーザプログラムが通知したファイルのパスに対応する大域識別子がない場合に、前記リソース管理部は、前記ファイルのパスに対応する大域識別子と局所識別子の組を新たに割り当てることを特徴とする請求項１乃至３いずれか１項記載の計算機クラスタシステム。
【請求項５】
前記サブシステムのパス管理部に、前記計算機クラスタシステム上で動作するユーザプログラムが通知したファイルのパスに対応する大域識別子がない場合に、前記サブシステムは、前記ファイルのパスに対応する大域識別子を割り当てて、パスと関連付けて記憶し、前記リソース管理部は、前記ファイルのパスに対応する大域識別子に対応する局所識別子を新たに割り当てて記憶することを特徴とする請求項１乃至３いずれか１項記載の計算機クラスタシステム。
【請求項６】
前記リソース管理部の大域識別子と局所識別子の対応関係に変更が生じた場合、前記リソース管理部とその他の計算機のリソース管理部との大域識別子と局所識別子との対応関係の情報を同一に保つことを特徴とする請求項１乃至５いずれか１項記載の計算機クラスタシステム。
【請求項７】
前記リソース管理部は、
前記カーネルから大域識別子を受け取って、これに対応する局所識別子を出力することを特徴とする請求項１乃至請求項６記載の計算機クラスタシステム。
【請求項８】
前記リソース管理部は、
計算機クラスタシステムを構成する他の計算機のリソース管理部から、前記局所識別子と前記大域識別子との対応関係の情報を取得することを特徴とする請求項１乃至請求項７記載の計算機クラスタシステム。
【請求項９】
前記リソース管理部は、
計算機クラスタシステムを構成する他の計算機のリソース管理部に前記局所識別子と前記大域識別子との対応関係の情報を通知することを特徴とする請求項１乃至請求項８記載の計算機クラスタシステム。
【請求項１０】
前記カーネルは、
計算機クラスタシステム上で動作するユーザプログラムから受け取ったファイルのパスとファイルオープン要求を前記サブシステムに通知して前記パスに対応する大域識別子を取得し、
前記ユーザプログラムに取得した大域識別子を返すことを特徴とする請求項１乃至請求項９記載の計算機クラスタシステム。
【請求項１１】
前記カーネルは、
前記ユーザプログラムから受けた前記大域識別子とファイルの読み出し要求を前記リソース管理部に通知して前記大域識別子を前記局所識別子に変換し、
変換して得られた前記局所識別子を前記ファイル管理部で記憶装置内の番地に変換し、
変換して得られた番地を利用して前記記憶装置にアクセスしてデータを読み出して、
読み出したデータを前記ユーザプログラムに返すことを特徴とする請求項１乃至１０記載の計算機クラスタシステム。
【請求項１２】
前記カーネルは、
前記ユーザプログラムから前記大域識別子とファイルに書き込むデータとファイルの書き込み要求を受け、
前記リソース管理部で前記大域識別子を前記局所識別子に変換し、
前記ファイル管理部で前記局所識別子を記憶装置内の番地に変換し、
前記記憶装置にアクセスしてデータを書き込むことを特徴とする請求項1乃至１１記載の計算機クラスタシステム。
【請求項１３】
前記カーネルは、
計算機クラスタシステム上で動作するプログラムからのファイル書き込み要求を受けた場合、
計算機クラスタシステムの異なる計算機に接続された複数の記憶装置にファイルを書き込み、
前記複数の記憶装置のうちのいずれかが故障した場合は他の記憶装置のファイルを利用してファイルアクセスを行うことを特徴とする請求項１乃至請求項１２記載の計算機クラスタシステム。
【請求項１４】
前記サブシステムは、
前記カーネルから前記ファイルシステムの論理的構造を表すパスを受け取って、
前記パスに対応する大域識別子を出力することを特徴とする請求項１乃至請求項１３記載の計算機クラスタシステム。
【請求項１５】
記憶装置と通信装置を備え、ネットワークを介して共通に接続された複数の計算機から成る計算機クラスタシステムにおけるファイルアクセス方法であって、
ユーザプログラムがファイルシステムの論理的構造を管理するサブシステムにファイルのパスを通知して当該ファイルの大域識別子を取得するオープンステップと、
ユーザプログラムが、ユーザプログラムと同一の計算機で動作するカーネルに前記大域識別子を通知してファイルの読み書きを依頼する要求ステップと、
前記カーネルが、前記大域識別子を局所識別子に変換して、読み書きすべきファイルが存在する記憶装置の所在を調べるファイル所在検索ステップと、
前記ファイル所在検索ステップの結果、カーネルが動作している計算機とファイルが存在する記憶装置の属する計算機とが異なる場合に、前記カーネルがファイルが存在する記憶装置の属する計算機で動作するカーネルへ読み書き要求及び前記局所識別子を転送する要求転送ステップと、
ファイルが存在する記憶装置の属する計算機上で動作するカーネルが前記局所識別子の示す記憶装置にアクセスして読み書き要求を実行するアクセスステップと、
前記アクセスステップを実行したカーネルが、前記アクセスステップの結果を前記ユーザプログラムに通知する結果報告ステップとを有し、
前記オープンステップにおいて、前記サブシステムのパス管理部に前記ファイルのパスに対応する大域識別子がない場合に、前記ユーザプログラムが前記サブシステムにファイルのパスを通知後、
前記カーネルが前記ファイルのパスに対応する大域識別子と局所識別子の組を新たに割り当てて記憶するステップと、
前記カーネルとその他の計算機のカーネルとの大域識別子と局所識別子との対応関係の情報を同一に保つステップと、
前記サブシステムが前記ファイルのパスに対応する大域識別子とパスの新規割り当てを行い記憶するステップとを含むことを特徴とするファイルアクセス方法。
【請求項１６】
記憶装置と通信装置を備え、ネットワークを介して共通に接続された複数の計算機から成る計算機クラスタシステムにおけるファイルアクセス方法であって、
ユーザプログラムがファイルシステムの論理的構造を管理するサブシステムにファイルのパスを通知して当該ファイルの大域識別子を取得するオープンステップと、
ユーザプログラムが、ユーザプログラムと同一の計算機で動作するカーネルに前記大域識別子を通知してファイルの読み書きを依頼する要求ステップと、
前記カーネルが、前記大域識別子を局所識別子に変換して、読み書きすべきファイルが存在する記憶装置の所在を調べるファイル所在検索ステップと、
前記ファイル所在検索ステップの結果、カーネルが動作している計算機とファイルが存在する記憶装置の属する計算機とが異なる場合に、前記カーネルがファイルが存在する記憶装置の属する計算機で動作するカーネルへ読み書き要求及び前記局所識別子を転送する要求転送ステップと、
ファイルが存在する記憶装置の属する計算機上で動作するカーネルが前記局所識別子の示す記憶装置にアクセスして読み書き要求を実行するアクセスステップと、
前記アクセスステップを実行したカーネルが、前記アクセスステップの結果を前記ユーザプログラムに通知する結果報告ステップとを有し、
前記オープンステップにおいて、前記サブシステムのパス管理部に、前記ファイルのパスに対応する大域識別子がない場合に、前記ユーザプログラムが前記サブシステムにファイルのパスを通知後、
前記サブシステムが前記ファイルのパスに対応する大域識別子を割り当てて、パスと関連付けて記憶するステップと、
前記カーネルが前記ファイルのパスに対応する大域識別子に対応する局所識別子を新たに割り当てて記憶するステップと、
前記カーネルとその他の計算機のカーネルとの大域識別子と局所識別子との対応関係の情報を同一に保つステップと、
を有することを特徴とするファイルアクセス方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ネットワークを介して共通に接続された複数の計算機で構成する計算機クラスタシステムに関する。
【０００２】
【従来の技術】
計算機単体の機能を補い、高性能化や高信頼性化を実現するために、複数の計算機を通信装置を介して接続した計算機クラスタシステムが用いられている。このように計算機同士を接続することで、個々の計算機に処理が分散されて高性能化でき、また、接続した計算機の一部に障害が発生した際に、他の計算機によって故障した計算機上の処理を引き継ぐことで高信頼性化を実現することができる。
【０００３】
このような計算機クラスタシステムを実現するのに適したＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）の構造の一つにマイクロカーネル方式がある。
【０００４】
マイクロカーネル方式のＯＳは特開平１１−３４５１３４号公報にあるように、ＯＳをプロセス管理やメモリ管理等を行うカーネル部分と、ファイルシステム管理やユーザ管理等のサービスをサブシステム部分としてカーネルから分離した構造になっている。
【０００５】
計算機クラスタシステムでマイクロカーネル方式のＯＳを用いた場合は、通信装置で接続された複数の計算機の全てでカーネルを動作させ、サブシステムは、計算機クラスタシステムの一部若しくは単一の計算機上でのみ動作させる。そして、計算機クラスタシステム上で動かす一般のプログラム（ユーザプログラム）は、ファイルアクセス等のＯＳのサービスを利用する際には、そのサービスを提供するサブシステムと通信を行い、当該サブシステムがカーネルと連携してサービスを提供する。
【０００６】
マイクロカーネル方式の利点は、新しいサービスの提供やＯＳのバージョンアップを、ＯＳ全体を入れ替える代わりにサブシステムの追加・変更という形で用意に実現でき、メンテナンス性に優れている点と、各計算機で動作させるカーネルがコンパクトにできるので、計算機の処理能力をユーザプログラムの動作に多く割り当てることができるという点が挙げられる。
【０００７】
【発明が解決しようとする課題】
図１２は従来のマイクロカーネル方式のＯＳで実現した計算機クラスタシステムを説明する図である。このシステムは、ユーザプログラム９０１が動作する計算機９００とファイルシステムを管理するサブシステム９１１が動作する計算機９１０がネットワーク９２０を介して共通に接続されている。説明を簡略化するために他のサブシステムが動作する計算機については省略する。
【０００８】
計算機９００は、ユーザプログラム９０１と、各種のハードウエア制御を行うカーネル９０２と、データ等を記憶する記憶装置９０３と、ネットワークを介して他の計算機と通信を行う通信装置９０４とを含んで構成されている。計算機９１０も同等な構成である。
【０００９】
計算機９１０上で動作するサブシステム９１１は、前述の通りファイルシステムを管理するためのサブシステムで、ディレクトリ構造等のパスを管理するパス管理部９１５と、ファイルがどの計算機の記憶装置内に存在するかを管理するリソース管理部９１６と、記憶装置内におけるファイルの物理的位置を管理するファイル管理部９１７とを有し、サブシステム９１１はこれらを利用してファイルシステムの管理を行っている。
【００１０】
図１３は従来の計算機クラスタシステムにおいて、ユーザプログラム９０１がファイルを読み出す際の読み出し要求及びデータの流れを説明する図である。
【００１１】
（１）まず、ユーザプログラム９０１はファイルシステムを管理するサブシステム９１１にアクセスして読み出したいファイル名を通知する。（２）サブシステム９１１は、ユーザプログラム９０１から通知された名称のファイルが、どの計算機のどの記憶装置のどの空間に保存されているかを検索し、当該ファイルが存在する記憶装置を持つ計算機のカーネルに通知する。
【００１２】
カーネル９０２に通知した場合は（３）カーネル９０２は記憶装置９０３に読み出し要求を通知する。（４）記憶装置９０３はファイルの内容を読み出してカーネル９０２に通知する。（５）カーネル９０２はサブシステム９１１にファイルの内容を転送する。（６）サブシステム９１１はファイルの内容をユーザプログラム９０１に転送する。
【００１３】
一方カーネル９１２に通知した場合は（３’）カーネル９１２は記憶装置９１３に読み出し要求を通知する。（４’）記憶装置９１３はファイルの内容を読み出してカーネル９１２に通知する。（５’）カーネル９１２はサブシステム９１１にファイルの内容を転送する。（６’）サブシステム９１１はファイルの内容をユーザプログラム９０１に転送する。
【００１４】
ファイル書き込み時の書き込み要求及びデータの流れもほぼ同じである。
【００１５】
このように従来のＯＳではサブシステム９１１でファイルシステムの論理的構造と物理的構造の両方を管理しているために、ファイルの読み書きを、常に一旦サブシステムの動いている計算機を経由して行うので、特にユーザプログラムが動作する計算機とファイルが存在する記憶装置を管理する計算機が同一である場合は、計算機内部のデータの流れに比べて低速なネットワーク経由でデータを送受信するために効率面で問題があった。
【００１６】
特に図１３の（５）（６）はネットワークを介したデータの通信であるので、計算機内部の通信である（４）などに比べると非常に効率が悪い。
【００１７】
また、記憶装置として用いられるハードディスク等の磁気ディスクは内部に駆動部品を含むため計算機を構成するメモリやプロセッサ等に比べると故障する可能性が極めて高いため、従来よりハードディスク間でデータの冗長性を持たせて故障によるファイル消失を防ぐ手法を用いることが多い。
【００１８】
従来の計算機クラスタシステムでも、各計算機の記憶装置間でファイルの複製を持つことで容易にデータに冗長性を持たせることができる。そして、記憶装置の故障時には複製したデータを利用することで処理を継続できる。しかし、従来の計算機クラスタシステムではファイルの読み書きをサブシステム経由で行うため、データに冗長性を持たせると、ファイルの複製を作る際のオーバヘッドが非常に大きくなり非効率である。
【００１９】
ここでは計算機２台だけで説明したが、台数が増えるとサブシステム９１１が動作する計算機９１０とは異なる計算機に接続された記憶装置へアクセスする機会が激増する。特に前述のようにファイルの複製を持つようにした場合は、複製元のファイルと複製したファイルの両方がサブシステム９１１が動作する計算機９１０とは異なる計算機に接続された記憶装置に存在するというケースが生じる。そして、その頻度は計算機の台数に比例して多くなるため、効率も計算機の台数に比例して悪くなってしまう。
【００２０】
そこで本発明では、効率よくファイルの読み書きを行うことができる計算機クラスタシステムを提供することを目的とする。
【００２１】
【課題を解決するための手段】
上記課題を解決するために本発明の計算機クラスタシステムは、それぞれが記憶装置と通信装置を備えた複数の計算機を、ネットワークを介して共通に接続した計算機クラスタシステムにおいて、計算機クラスタシステム全体のファイルシステムは各計算機の記憶装置上に分散して存在し、一部の計算機は、前記ファイルシステムの論理的構造を表すパスとファイルに対して計算機クラスタシステム全体で一意に割り当てられる大域識別子との関係を管理するパス管理部を有するサブシステムを有し、各計算機は、それぞれの計算機が有する記憶装置の制御を行うカーネルを有し、前記カーネルは、ファイルがどの記憶装置に記憶されているかを識別する局所識別子と前記大域識別子との対応関係を記憶・管理するリソース管理部と、記憶装置内でファイルが記憶された場所の番地と前記局所識別子との関係を管理するファイル管理部とを有し、前記サブシステムのパス管理部に、前記計算機クラスタシステム上で動作するユーザプログラムが通知したファイルのパスに対応する大域識別子がない場合に、前記各計算機のリソース管理部は、前記ファイルのパスに対応する大域識別子と局所識別子の組を新たに記憶し、前記サブシステムは、前記ファイルのパスに対応する大域識別子とパスとの組を新たに記憶し、前記ユーザプログラムは、前記ファイルのパスに対応する大域識別子を取得することを特徴とする。
【００２２】
また、本本発明の計算機クラスタシステムは、記憶装置と通信装置を備え、ネットワークを介して共通に接続された複数の計算機から成る計算機クラスタシステムにおいて、計算機クラスタシステム全体で使用するファイルシステムは各計算機の記憶装置上に分散して存在し、計算機クラスタシステムで使用するオペレーティングシステムは、前記ファイルシステムの論理的構造を表すパスとファイルに対して計算機クラスタシステム全体で一意に割り当てられる大域識別子との関係を管理するパス管理部を有するサブシステムと、それぞれの計算機が有する記憶装置の制御を行うカーネルとを有し、前記カーネルはファイルがどの記憶装置に記憶されているかを識別する局所識別子と前記大域識別子との対応関係を記憶・管理するリソース管理部と、記憶装置内でファイルが記憶された場所の番地と前記局所識別子との関係を管理するファイル管理部とを有し、かつ、各計算機において動作させ、前記サブシステムは一部の計算機で動作させ、前記サブシステムのパス管理部に、前記計算機クラスタシステム上で動作するユーザプログラムが通知したファイルのパスに対応する大域識別子がない場合に、前記各計算機のリソース管理部は、前記ファイルのパスに対応する大域識別子と局所識別子の組を新たに記憶し、前記サブシステムは、前記ファイルのパスに対応する大域識別子とパスとの組を新たに記憶し、前記ユーザプログラムは、前記ファイルのパスに対応する大域識別子を取得することを特徴とする。
【００２３】
また、本発明の計算機クラスタシステムは、記憶装置と通信装置を備え、ネットワークを介して共通に接続された複数の計算機から成る計算機クラスタシステムにおいて、計算機クラスタシステム全体で使用するファイルシステムは各計算機の記憶装置上に分散して存在し、一部の計算機では、前記ファイルシステムの論理的構造を表すパスとファイルに対して計算機クラスタシステム全体で一意に割り当てられる大域識別子との関係を管理するパス管理部を有するサブシステムを動作させ、各計算機上では、それぞれの計算機が有する記憶装置の制御を行うカーネルを動作させ、前記カーネルは、ファイルがどの記憶装置に記憶されているかを識別する局所識別子と前記大域識別子との対応関係を記憶・管理するリソース管理部と、記憶装置内でファイルが記憶された場所の番地と前記局所識別子との関係を管理するファイル管理部とを有し、前記サブシステムのパス管理部に、前記計算機クラスタシステム上で動作するユーザプログラムが通知したファイルのパスに対応する大域識別子がない場合に、前記各計算機のリソース管理部は、前記ファイルのパスに対応する大域識別子と局所識別子の組を新たに記憶し、前記サブシステムは、前記ファイルのパスに対応する大域識別子とパスとの組を新たに記憶し、前記ユーザプログラムは、前記ファイルのパスに対応する大域識別子を取得することを特徴とする。
【００２４】
また、本発明のファイルアクセス方法は、記憶装置と通信装置を備え、ネットワークを介して共通に接続された複数の計算機から成る計算機クラスタシステムにおけるファイルアクセス方法であって、ユーザプログラムがファイルシステムの論理的構造を管理するサブシステムにファイルのパスを通知して当該ファイルの大域識別子を取得するオープンステップと、ユーザプログラムが、ユーザプログラムと同一の計算機で動作するカーネルに前記大域識別子を通知してファイルの読み書きを依頼する要求ステップと、前記カーネルが、前記大域識別子を局所識別子に変換して、読み書きすべきファイルが存在する記憶装置の所在を調べるファイル所在検索ステップと、前記ファイル所在検索ステップの結果、カーネルが動作している計算機とファイルが存在する記憶装置の属する計算機とが異なる場合に、前記カーネルがファイルが存在する記憶装置の属する計算機で動作するカーネルへ読み書き要求及び前記局所識別子を転送する要求転送ステップと、ファイルが存在する記憶装置の属する計算機上で動作するカーネルが前記局所識別子の示す記憶装置にアクセスして読み書き要求を実行するアクセスステップと、前記アクセスステップを実行したカーネルが、前記アクセスステップの結果を前記ユーザプログラムに通知する結果報告ステップとを有し、前記オープンステップにおいて、前記サブシステムのパス管理部に前記ファイルのパスに対応する大域識別子がない場合に、前記ユーザプログラムが前記サブシステムにファイルのパスを通知後、前記カーネルが前記ファイルのパスに対応する大域識別子と局所識別子の組を新たに割り当てて記憶するステップと、前記カーネルとその他の計算機のカーネルとの大域識別子と局所識別子との対応関係の情報を同一に保つステップと、前記サブシステムが前記ファイルのパスに対応する大域識別子とパスの新規割り当てを行い記憶するステップとを含むことを特徴とする。
【００２５】
また、本発明のファイルアクセス方法は、記憶装置と通信装置を備え、ネットワークを介して共通に接続された複数の計算機から成る計算機クラスタシステムにおけるファイルアクセス方法であって、ユーザプログラムがファイルシステムの論理的構造を管理するサブシステムにファイルのパスを通知して当該ファイルの大域識別子を取得するオープンステップと、ユーザプログラムが、ユーザプログラムと同一の計算機で動作するカーネルに前記大域識別子を通知してファイルの読み書きを依頼する要求ステップと、前記カーネルが、前記大域識別子を局所識別子に変換して、読み書きすべきファイルが存在する記憶装置の所在を調べるファイル所在検索ステップと、前記ファイル所在検索ステップの結果、カーネルが動作している計算機とファイルが存在する記憶装置の属する計算機とが異なる場合に、前記カーネルがファイルが存在する記憶装置の属する計算機で動作するカーネルへ読み書き要求及び前記局所識別子を転送する要求転送ステップと、ファイルが存在する記憶装置の属する計算機上で動作するカーネルが前記局所識別子の示す記憶装置にアクセスして読み書き要求を実行するアクセスステップと、前記アクセスステップを実行したカーネルが、前記アクセスステップの結果を前記ユーザプログラムに通知する結果報告ステップとを有し、前記オープンステップにおいて、前記サブシステムのパス管理部に、前記ファイルのパスに対応する大域識別子がない場合に、前記ユーザプログラムが前記サブシステムにファイルのパスを通知後、前記サブシステムが前記ファイルのパスに対応する大域識別子を割り当てて、パスと関連付けて記憶するステップと、前記カーネルが前記ファイルのパスに対応する大域識別子に対応する局所識別子を新たに割り当てて記憶するステップと、前記カーネルとその他の計算機のカーネルとの大域識別子と局所識別子との対応関係の情報を同一に保つステップとを有することを特徴とする。
【００３７】
【発明の実施の形態】
（システム概要・構成）以下、図面を参照して本発明の一実施形態の計算機クラスタシステムについて説明する。図１は本発明の一実施形態の計算機クラスタシステムについて説明する図である。
【００３８】
本実施形態の計算機クラスタシステムは、ユーザプログラム１０１を実行する計算機１００と、サブシステム１１１を実行する計算機１１０の２台がネットワーク１２０を介して接続されている。
【００３９】
計算機１００には、データを記憶するための磁気ディスクである記憶装置１０５と、ネットワークを介して他の計算機と通信を行う通信装置１０６が備わっている。また、計算機１００では、これらの記憶装置１０５や通信装置１０６、そして図示しないメモリ等のハードウエア制御等を担当するプログラムであるカーネル１０２と、計算機クラスタシステム及びサブシステム１０８で提供されるサービスを利用するアプリケーション等のプログラムであるユーザプログラム１０１が実行されている。
【００４０】
カーネル１０２は、ハードウエアを制御するインターフェース（図示せず）の他に、計算機システム全体で用いられるファイルやプロセス等のリソースを管理するリソース管理部１０３と、記憶装置１０５に記憶させたデータの物理的な所在（すなわち、ファイルシステムの物理的構造）を管理するファイル管理部１０４とを備え、これらはシステムコールを用いてカーネル１０２の外部（例えばユーザプログラム１０１）からアクセス可能になっている。
【００４１】
計算機１１０の構成は計算機１００と同様で、記憶装置１１５と通信装置１１６を備える。また、計算機１１０上ではハードウエア制御等を担当するプログラムで、カーネル１０２と同等の機能を持つカーネル１１２と、ユーザプログラム１０１を含むあらゆるユーザプログラムに対してサービスを提供するプログラムであるサブシステム１１１が実行されている。
【００４２】
カーネル１１２の構成はカーネル１０２と同様で、ハードウエアを制御するインターフェース（図示せず）の他に、計算機システム全体で用いられるファイルやプロセス等のリソースを管理するリソース管理部１１３と、記憶装置１１５に記憶させたデータの物理的な所在を管理するファイル管理部１１４とを備え、これらはシステムコールを用いてカーネル１１２の外部（例えばサブシステム１１１）からアクセス可能になっている。
【００４３】
サブシステム１１１はディレクトリ構造等のファイルシステムの論理的構造を管理するプログラムであり、パスと呼ばれるユーザがファイルを識別するための文字列（例えば「／ｈｏｍｅ／ｕｓｅｒ１／ｍｏｖｉｅ／ｇｏｇｏ．ｍｐｇ」など）をファイルの識別子に変換する機能を提供するパス管理部１１７を備える。サブシステム１１１は、計算機クラスタシステム全体で用いられるあらゆるリソースに割り当てられる大域識別子（以下、ＧＩＤ）のうち、計算機クラスタシステム全体で用いられるファイルに対するＧＩＤとパスの関係を記憶し管理する。
【００４４】
リソース管理部１０３、１１３は、計算機クラスタシステム全体で用いられるリソースに対して、前述のＧＩＤ及びリソースが実際に存在する計算機内での一意の識別子である局所識別子（以下、ＬＩＤ）を割り当てを行うとともに、ＧＩＤとＬＩＤの対応関係を記憶し管理する。ＬＩＤは当該リソースが存在する計算機自体の識別子とその計算機内でのリソース識別子を組み合わせた構造をしている。例えば、計算機１００の記憶装置１０５に記憶されたファイルのＬＩＤは「（計算機１００を表す識別子）：（記憶装置１０５を表す識別子）：（計算機１００内で一意なファイルの識別子）」のような構造になる。
【００４５】
本実施形態においては、リソース管理部１０３、１１３は、一方のＧＩＤとＬＩＤの対応関係に変更が生じた場合は他方に変更を通知して互いの持つ対応関係の情報を同一に保つようにする。ただし、ＧＩＤとＬＩＤの対応関係情報の管理はこれに限らない。例えばリソース管理部１０３で中央集権的に管理して、リソース管理部１１３は必要な時に問い合わせ、変更時に変更内容をリソース管理部１０３に通知するようにしても良い。または、分散管理方式にして互いに必要な時、例えばＬＩＤとの対応関係が不明なＧＩＤを受け取った場合に問い合わせをしても良い。リソース管理部間でのＧＩＤとＬＩＤの対応関係の情報の同期もしくは交換方法は、計算機クラスタシステムの規模・設計・目的に応じて適宜変更するのが望ましい。
【００４６】
ファイル管理部１０４はカーネル１０２に接続された記憶装置１０５に記憶されるファイルの物理的な所在を管理し、ファイル管理部１１４はカーネル１１２に接続された記憶装置１１５に記憶されるファイルの物理的な所在を管理する。物理的な所在とは、ファイルに対してデータサイズに応じた数だけ割り当てられた、記憶装置１０５、１１５の記録単位であるブロックの番号やアドレスのことである。ファイル管理部１０４、１１４では、ＬＩＤとＬＩＤが指すファイルに割り当てられた全ブロックのアドレスを管理する。
【００４７】
記憶装置１０５、１１５はファイルを記憶する磁気ディスクである。尚、磁気ディスクに限らずフラッシュメモリ等でも良い。記憶装置１０５はカーネル１０２のファイル管理部１０４からの読み出し要求に応じてファイルのデータをファイル管理部１０４に渡し、ファイル管理部１０４からの書き込み要求に応じて、ファイル管理部１０４から受け取ったデータを記憶する。記憶装置１１５はカーネル１１２のファイル管理部１１４からの読み出し要求に応じてファイルのデータをファイル管理部１１４に渡し、ファイル管理部１１４からの書き込み要求に応じて、ファイル管理部１１４から受け取ったデータを記憶する。
【００４８】
通信装置１０６、１１６はネットワーク１２０を介して相互に通信を行う。通信装置１０６はカーネル１０２からの要求に応じて通信装置１１６へデータを送信し、通信装置１１６から受信したデータをカーネル１０２に渡す。通信装置１１６はカーネル１１２からの要求に応じて通信装置１０６へデータを送信し、通信装置１０６から受信したデータをカーネル１１２に渡す。通信装置１０６、１１６としては、例えば、イーサネット（登録商標）、非同期通信モード（ＡＴＭ）、トークンリング等を用いることができる。
【００４９】
（ファイルオープン）以下、図２のフローチャートを用いてユーザプログラム１０１がファイルをオープンする動作を説明する。
【００５０】
ユーザプログラム１０１は、オープンするファイルのパスを含むオープン要求をリソース管理部１０３に通知する（ステップ２０１）。リソース管理部１０３はオープン要求をサブシステム１１１に転送する（ステップ２０２）。サブシステム１１１は、オープン要求に含まれるパスに対応するＧＩＤをサブシステム１１１が記憶しているテーブルの中から探索する（ステップ２０３）。そして、見つかったか否かで処理を分岐させる（ステップ２０４）。
【００５１】
見つかった場合は、サブシステム１１１はそのＧＩＤを要求結果に含めてリソース管理部１０３に通知する（ステップ２０５）。リソース管理部１０３はユーザプログラム１０１に要求結果を通知する（ステップ２０６）。そして、ユーザプログラム１０１はＧＩＤを得る（ステップ２０７）。
【００５２】
一方、見つからなかった場合は、サブシステム１１１は後述するリソース管理部１０３にＧＩＤの割り当てを要求する（ステップ２０８）。リソース管理部１０３は後述するＧＩＤの新規割り当てを行い（ステップ２０９）、割り当て結果をユーザプログラム１０１に通知する（ステップ２１０）。そして、ユーザプログラム１０１はＧＩＤを得る（ステップ２０７）。
【００５３】
以後、ユーザプログラム１０１は当該ファイルの読み書きに際してはこのＧＩＤを用いて対象となるファイルを指定する。
【００５４】
図３は、前述のステップ２０８とステップ２０９、すなわちサブシステム１１１によるＧＩＤ割り当て要求とリソース管理部１０３によるＧＩＤの新規割り当ての動作を説明するフローチャートである。
【００５５】
サブシステム１１１はパスに対応するＧＩＤが存在しないことが判明したら、ユーザプログラム１０１からのオープン要求を解析して、ファイルの新規作成許可の有無を調べ（ステップ２２１）、以後の処理を分岐させる（ステップ２２２）。
【００５６】
新規作成許可が無い場合は、オープン結果は失敗となるのでリソース管理部１０３にオープン失敗を通知する（ステップ２２７）。リソース管理部１０３は、オープン結果は失敗なのでＧＩＤの割り当ては行わず（ステップ２２８）前述のステップ２１０でその旨をユーザプログラム１０１に通知する。
【００５７】
新規作成許可が有る場合は、サブシステム１１１はリソース管理部１０３にＧＩＤの新規割り当てを要求する（ステップ２２３）。リソース管理部１０３は、新たなＧＩＤとＬＩＤの組を生成して記憶する（ステップ２２４）。そして、生成したＧＩＤとパスをサブシステム１１１に通知して対応関係を記憶させるとともに、前述の通りＧＩＤとＬＩＤをリソース管理部１１３に通知してリソース情報の更新を行う（ステップ２２５）。そして、割り当て結果は成功となり（ステップ２２６）、前述のステップ２１０では成功した旨とＧＩＤをユーザプログラム１０１に通知する。
【００５８】
ここではファイルオープンについて説明したが、ファイル削除要求の場合は次のように処理を行う。
【００５９】
（１）ユーザプログラム１０１はリソース管理部１０３に削除要求を通知し、リソース管理部１０３はサブシステム１１１に削除要求を転送する。（２）サブシステム１１１はパス管理部１１７で記憶しているＧＩＤとこれに対応するパスを削除して、リソース管理部１０３にＧＩＤが削除されたことを通知する。（３）サブシステム１１１から通知を受けたリソース管理部１０３は該当するＧＩＤとこれに対応するＬＩＤを記憶から削除し、ファイル管理部１０４にＬＩＤが削除されたことを通知する。（４）リソース管理部１０３から通知を受けたファイル管理部１０４は、該当するＬＩＤとこれに対応するＬＩＤが指すファイルに割り当てられた全ブロックのアドレスの関係を記憶から削除する。
【００６０】
リソース管理部１０３からユーザプログラム１０１への削除結果の通知は、（３）の処理を行う時に並行して行っても良いし、（３）の処理終了後や、（４）の処理終了後でも構わない。（４）の処理終了後に削除結果の通知を行う場合は、ファイル管理部１０４の削除処理結果をリソース管理部１０３に通知させるようにする。
【００６１】
（ファイル書き込み）以下、図４のフローチャートを用いてユーザプログラム１０１がファイルにデータを書き込む動作を説明する。
【００６２】
ユーザプログラム１０１はファイルへの書き込み要求とＧＩＤとデータをリソース管理部１０３に通知する（ステップ３０１）。リソース管理部１０３はＧＩＤに対応するＬＩＤを検索する。そして、見つかったＬＩＤが示す計算機が計算機１００と異なる場合（すなわち、計算機１１０を示す場合）には書き込み要求とＬＩＤとデータをＬＩＤが示す計算機のリソース管理部に転送する（ステップ３０２）。
【００６３】
ＬＩＤが計算機１１０を示している場合は、ステップ３０２で書き込み要求とＬＩＤとデータは計算機１１０のリソース管理部１１３に転送される。リソース管理部１１３が後述するようなデータの書き込み処理を行い（ステップ３０３）、リソース管理部１１３は結果をリソース管理部１０３に通知する（ステップ３０４）。そして、リソース管理部１０３は書き込み処理の結果をユーザプログラム１０１に通知する（ステップ３０６）。
【００６４】
ＬＩＤが計算機１００を示している場合は転送の必要は無い。リソース管理部１０３は後述する書き込み処理を行い（ステップ３０５）、ステップ３０６を実行する。
【００６５】
図５はリソース管理部１０３におけるファイルの書き込み処理のフローチャートである。リソース管理部１１３についても同様の処理を行う。
【００６６】
リソース管理部１０３は書き込み要求とＬＩＤとデータをファイル管理部１０４に通知する（ステップ３１１）。ファイル管理部１０４はＬＩＤが示すファイルの記憶装置１０５内における物理的位置を検索するとともに（ステップ３１２）、ＬＩＤが示すファイルに割り当てられた記憶領域が書き込むデータのサイズに比べて十分な大きさが確保されているかをチェックする（ステップ３１３）。そして、十分な大きさの記憶領域がなければ確保を行う（ステップ３１４）。
【００６７】
そして、ファイル管理部１０４はデータを記憶装置１０５に書き込む（ステップ３１５）。ファイル管理部１０４は書き込み結果をリソース管理部１０３に通知する（ステップ３１６）。
【００６８】
このように、ユーザプログラム１０１がファイルにデータを書き込む際に、従来は必ずサブシステム１１１がユーザプログラム１０１からデータを受け取って書き込んでいたが、本実施形態ではユーザプログラム１０１が動作する計算機１００に接続された記憶装置１０５に書き込み対象のファイルが存在する場合は、ネットワークを介してデータを送信することなくファイルの書き込みが可能であるので効率がよい。
【００６９】
（ファイル読み出し）以下、図６のフローチャートを用いてユーザプログラム１０１がファイルからデータを読み出す動作を説明する。
【００７０】
ユーザプログラム１０１は読み出し要求とＧＩＤをリソース管理部１０３に通知する（ステップ４０１）。リソース管理部１０３はＧＩＤからＬＩＤを検索する。そして、見つかったＬＩＤが示す計算機が計算機１００と異なる場合（すなわち、計算機１１０を示す場合）には読み出し要求とＬＩＤをＬＩＤが示す計算機のリソース管理部に転送する（ステップ４０２）。
【００７１】
ＬＩＤが計算機１１０を示していた場合は、ステップ４０２で読み出し要求とＬＩＤを計算機１１０のリソース管理部１１３に転送される。リソース管理部１１３は後述するような読み出し処理を行い（ステップ４０３）、リソース管理部１１３は読み出し結果とデータをリソース管理部１０３に通知する（ステップ４０４）。そして、リソース管理部１０３は読み出し結果とデータをユーザプログラム１０１に通知する（ステップ４０６）。
【００７２】
ＬＩＤが計算機１００を示していた場合は転送の必要は無い。リソース管理部１０３は、後述する読み出し処理を行い（ステップ４０５）、ステップ４０６を実行する。
【００７３】
図７はリソース管理部１０３におけるファイルの読み出し処理のフローチャートである。リソース管理部１１３における読み出し処理も同様に行われる。
【００７４】
リソース管理部１０３は読み出し要求とＬＩＤをファイル管理部１０４に通知する（ステップ４１１）。ファイル管理部１０４はＬＩＤが示すファイルの記憶装置１０５内における物理的位置を検索する（ステップ４１２）。ファイル管理部１０４は記憶装置１０５からデータを読み出す（ステップ４１３）。ファイル管理部１０４はデータと読み出し結果をリソース管理部１０３に通知する（ステップ４１４）。
【００７５】
このように、ユーザプログラム１０１がファイルからデータを読み出す際に、従来は必ずサブシステム１１１が記憶装置１０５からデータを読み出してユーザプログラム１０１にデータを転送していたが、本実施形態ではユーザプログラム１０１が動作する計算機１００に接続された記憶装置１０５に読み出し対象ファイルが存在する場合はネットワークを介してデータを受信することなくファイルの読み出しが可能であるので効率がよい。
【００７６】
（リソース管理部の構成）図８はリソース管理部の構成を説明する図である。リソース管理部６０１は、ＧＩＤとＬＩＤの変換を行うＩＤ変換部６０２と、ＧＩＤとＬＩＤの対応関係を記憶しているリソース管理テーブル６０３とを有する。
【００７７】
ＩＤ変換部６０２は、ユーザプログラムやサブシステムから通知された要求、及び、他の計算機上のリソース管理部から転送された要求を受信して処理する。要求に含まれるＩＤがＧＩＤである場合は、リソース管理テーブル６０３を参照してＧＩＤをＬＩＤに変換する。変換して得られたＬＩＤが他の計算機に関するＬＩＤである場合には、該当する計算機に要求を転送する。さらに、ファイルの新規オープン時には新たなＧＩＤとＬＩＤを生成してリソース管理テーブル６０３に記憶させ、ファイル削除時にはＧＩＤとＬＩＤの削除を行う。
【００７８】
尚、前述の通り、本実施形態の場合はリソース管理テーブル６０３に変更が生じた場合は他の計算機のリソース管理部に変更内容を通知して、リソース管理テーブル６０３の内容の同一性を保つ。
【００７９】
リソース管理テーブル６０３はＧＩＤで表されるリソースに対応するＬＩＤを管理する。ＧＩＤはリソースの種類（プロセス、ファイル等）によって番号の付け方が異なるようにしてある。例えば図８だとＶＰで始まるＧＩＤはプロセス、ＶＦで始まるＧＩＤはファイルを表す。例えば、ＧＩＤがＶＰ０００１で表されるリソースは計算機１００上で動作するプロセスのＰ０００１であることが分かる。
【００８０】
（ファイル管理部の構成）図９はファイル管理部の構成を説明する図である。ファイル管理部７０１は、ＬＩＤを記憶装置上の位置に変換するブロック位置変換部７０２と、ＬＩＤと記憶装置上の位置の対応関係を記憶しているファイル管理テーブル７０３とを有する。
【００８１】
ブロック位置変換部７０２は、リソース管理部から受け取った書き込みや読み出し要求に含まれるＬＩＤ及びファイル内でのデータの位置情報（ファイルの先頭から何バイト目という情報）を、ファイル管理テーブル７０３を用いて記憶装置上の位置に変換する。記憶装置のブロックサイズが６４ＫＢの場合ならば、ＬＩＤがＦ０００３であるファイルの先頭から１３０ＫＢ目のデータは、ファイル管理テーブル７０３よりブロック８に格納されていることが分かる。
【００８２】
尚、ファイル管理部はＬＩＤ及びファイル内でのデータの位置情報から、記憶装置上の位置を知ることができれば図８の構成でなくても良い。
【００８３】
（パス管理部の構成）図１０はサブシステムのパス管理部の構成を説明する図である。パス管理部８０１は、ファイルシステムの一機能であるパスをＧＩＤに変換する機能を提供するパス変換部８０２と、パスとＧＩＤの対応を記憶するパス管理テーブル８０３とを有する。
【００８４】
パス変換部８０２は、リソース管理部よりファイルのオープン要求を受信し、要求に含まれるパスを、パス管理テーブル８０３を用いてＧＩＤに変換し、結果に含めてリソース管理部に通知する。また、逆にリソース管理部で生成されたファイルのＧＩＤとパスを受け取ってパス管理テーブルに記憶させたり、リソース管理部からＧＩＤが抹消された旨の通知を受けた場合にはパス管理テーブルから当該ＧＩＤとこれに関連付けられたパスを削除するなどの、パス管理テーブルの管理を行う。
【００８５】
変換の具体例を説明すると、例えばパスが「／ｈｏｍｅ／ｄｏｃ／ｄｏｃｕｍｅｎｔ．ｔｘｔ」であった場合、「ｈｏｍｅ」、「ｄｏｃ」、「ｄｏｃｕｍｅｎｔ．ｔｘｔ」の順にパス管理テーブル８０３を検索してＧＩＤを得る。
【００８６】
始めに、パス管理テーブル８０３に記憶されたデータから親ＧＩＤが無く、名前が「ｈｏｍｅ」であるデータを検索してデータ８０４を得る。
【００８７】
次に、データ８０４に含まれるＧＩＤ「ＶＦ０００１」を用いて、今度は親ＧＩＤが「ＶＦ０００１」であり、名前が「ｄｏｃ」であるデータを検索してデータ８０５を得る。
【００８８】
同様にしてデータ８０５を利用して、親ＧＩＤが「ＶＦ０００２」であり、名前が「ｄｏｃｕｍｅｎｔ．ｔｘｔ」であるデータを検索してデータ８０６を得て、「ｄｏｃｕｍｅｎｔ．ｔｘｔ」のＧＩＤ「ＶＦ０００３]」を結果に含めてリソース管理部に通知する。
【００８９】
ファイルが存在しない等の事情で変換できない場合はオープン要求を解析し、ファイルの新規作成許可が与えられている場合にはリソース管理部にＧＩＤの割り当てを要求し、許可が与えられていない場合はリソース管理部にエラーを返す。
【００９０】
尚、パスをＧＩＤに変換する機能を有すれば、パス管理部は図９の構成でなくても構わない。
（データの流れ）図１１はユーザプログラム１００１が記憶装置からデータを読み出す場合のデータの流れを説明する図である。図中では通信装置は省略してあるが計算機１０００、１０１０間の通信は通信装置を利用してネットワーク経由で行われる。
【００９１】
ユーザプログラム１００１が記憶装置１００３からファイルを読み出す場合は、読み出し要求は（１）ユーザプログラム１００１からカーネル１００２へ伝わり（２）カーネル１００２から記憶装置１００３に伝わる。そして、読み出したデータは（３）記憶装置１００３からカーネル１００２へ伝わり（４）カーネル１００２からユーザプログラム１００１に伝わる。
【００９２】
（１）〜（４）までの全ての通信は計算機内部で行われる。計算機内部の通信はネットワーク経由の通信に比べて大変高速であるので、読み出しが完了するまでの時間が短く済み、処理の効率が良いことがわかる。書き込みについても同様である。
【００９３】
一方、ユーザプログラム１００１が記憶装置１０１３からファイルを読み出す場合は、読み出し要求は（１）ユーザプログラム１００１からカーネル１００２へ伝わり（２’）カーネル１００２からカーネル１０１２へ転送されて（３’）カーネル１０１２から記憶装置１０１３に伝わる。そして、読み出したデータは（４’）記憶装置１０１３からカーネル１０１２へ伝わり（５’）カーネル１０１２からカーネル１００２へ転送され、（６’）カーネル１００２からユーザプログラム１００１に伝わる。書き込みの場合も同様である。
【００９４】
ユーザプログラムが動作する計算機とファイルが格納された記憶装置が接続された計算機が異なる場合は、読み書きの効率は従来と変わらない。しかし、同一の計算機に接続された記憶装置から読み書きする場合には従来のようなネットワーク経由のファイル内容の通信が行われないのでオーバヘッドが激減して効率が良くなるので、システム全体としてファイルの読み書きの効率が良くなる。
【００９５】
本実施形態では計算機は２台だけで説明したが、３台以上の計算機を用いて計算機クラスタシステムを構成することも可能である。また、複数のユーザプログラムを計算機クラスタシステムの異なる計算機上で実行し、そのユーザプログラムの一部をサブシステムが実行されている計算機上で実行しても良い。また、複数のサブシステムを計算機クラスタシステム内の異なる計算機上で実行しても良い。さらに、サブシステムの機能を分割し、計算機クラスタシステム内の異なる計算機上に分散して実行しても良い。
【００９６】
また、本実施形態では新しいファイルに対するＧＩＤをリソース管理部１０３若しくは１１３で割り当てるとしたが、サブシステム１１１で割り当てるようにしても良い。ユーザプログラム１０１ファイルのオープンをリソース管理部１０３に通知した場合を例に説明すると、ファイルが存在しない場合はサブシステム１１１はＧＩＤを割り当ててパスと関連付けて記憶するとともに、リソース管理部１０３に通知する。そして、リソース管理部１０３はＧＩＤに対応するＬＩＤを新たに割り当てて記憶する。
【００９７】
（冗長性を持たせた場合）ここまでは基本的なファイル読み書きについて説明してきたが、以下は異なる計算機の記憶装置にファイルの複製を作ることでデータの冗長性を持たせた場合の動作について説明する。
【００９８】
冗長性を持たせたファイルの場合、図８のＧＩＤ「ＶＦ０００４」のように一つのＧＩＤに対して複数のＬＩＤ「計算機１００：記憶装置１０５：Ｆ０００４」「計算機１１０：記憶装置１１５：Ｆ０００４」が存在する。
【００９９】
ファイルへの書き込み動作においては、ステップ３０２でＧＩＤに対応するＬＩＤを全て抽出する。そして、計算機１１０のリソース管理部１１３に書き込み要求とデータとＬＩＤ「計算機１１０：Ｆ０００４」を転送してリソース管理部１１３に書き込み処理を行わせる。これと並行してリソース管理部１０３も書き込み処理を行う。そしてリソース管理部１０３は両方の書き込みが完了してからステップ３０６を実行して書き込み結果をユーザプログラム１０１に通知する。尚、計算機クラスタシステムの運用形態・方針によっては、一方の書き込みが終わった段階でステップ３０６を実行させても良い。
【０１００】
ファイルの読み出し動作は、複数の計算機のうちの一つを選択して、冗長性を持たせていない場合と同様に行う。計算機の選択にあたっては、要求を出したユーザプログラムを実行している計算機を選択するのが最も効率的である。
【０１０１】
記憶装置に障害が発生した場合には、リソース管理部では故障した記憶装置の代わりに他の記憶装置のＬＩＤを選択するようにする。
【０１０２】
例えば、記憶装置１０５に障害が発生した場合には、ユーザプログラム１０１からのＧＩＤ「ＶＦ０００４」のファイルの読み出し要求を受けたリソース管理部１０３は、ＧＩＤからＬＩＤに変換する際には記憶装置１０５を指す「計算機１００：記憶装置１０５：Ｆ０００４」は選択せず、「計算機１１０：記憶装置１１５：Ｆ０００４」を選択するようにする。
【０１０３】
その結果、書き込み動作は図６のステップ４０１、４０２、４０３、４０４、４０６を実行することになり、書き込み動作は図４のステップ３０１、３０２、３０３、３０４、３０６を実行する。
【０１０４】
いずれの場合でもユーザプログラム１０１は障害が無い時と同様に読み書きをリクエストすれば良い。
【０１０５】
本実施形態の計算機クラスタシステムならば、ファイルの読み書きを要求したユーザプログラムやサブシステムが実行されている計算機と、読み書き対象のファイルが記憶された記憶装置が接続された計算機が同一である場合に効率よくファイルの読み書きを行えるので、システム全体の平均ファイルアクセス効率が向上する。また、ファイルの読み書きをカーネル側で実行することで、サブシステムが稼動する計算機に通信が集中しにくくなるので、システム全体の能力、堅牢性及び信頼性を向上させることができる。また、ファイルに冗長性を持たせた場合でも持たせていない場合と同様にファイルの読み書きを効率良くできる。
【０１０６】
【発明の効果】
以上、本発明の計算機クラスタシステムならば、ファイルシステムの機能を分割して、パス管理をサブシステムに、リソース管理及びファイル管理をカーネルに実装することにより、読み書きの効率を向上させることができる。
【図面の簡単な説明】
【図１】  本発明の一実施形態の計算機クラスタシステムの構成を説明する図。
【図２】  本発明の一実施形態の計算機クラスタシステムにおけるファイルオープン動作を説明するフローチャート。
【図３】  図２のステップ２０８、２０９におけるＧＩＤ割り当て動作を説明するフローチャート。
【図４】  本発明の一実施形態の計算機クラスタシステムにおけるファイル書き込み動作を説明するフローチャート。
【図５】  リソース管理部におけるファイル書き込み動作を説明するフローチャート。
【図６】  本発明の一実施形態の計算機クラスタシステムにおけるファイル読み出し動作を説明するフローチャート。
【図７】  リソース管理部におけるファイル読み出し動作を説明するフローチャート。
【図８】  リソース管理部の構成を説明する図。
【図９】  ファイル管理部の構成を説明する図。
【図１０】  サブシステムの構成を説明する図。
【図１１】  本発明の一実施形態の計算機クラスタシステムにおけるファイル読み出し時のデータの流れの一例を説明する図。
【図１２】  従来の計算機クラスタシステムの構成を説明する図。
【図１３】  従来の計算機クラスタシステムにおけるファイル読み出し時のデータの流れの一例を説明する図。
【符号の説明】
１００、１１０  計算機
１０１  ユーザプログラム
１０２、１１２  カーネル
１０３、１１３  リソース管理部
１０４、１１４  ファイル管理部
１０５、１１５  記憶装置
１０６、１１６  通信装置
１１１  サブシステム
１１７  パス管理部
１２０  ネットワーク
６０１  リソース管理部
６０２  ＩＤ変換部
６０３  リソース管理テーブル
７０１  ファイル管理部
７０２  ブロック位置変換部
７０３  ファイル管理テーブル
８０１  サブシステム（パス管理部）
８０２  パス変換部
８０３  パス管理テーブル
９００、９１０  計算機
９０１  ユーザプログラム
９０２、９１２  カーネル
９０３、９１３  記憶装置
９０４、９１４  通信装置
９１５  パス管理部
９１６  リソース管理部
９１７  ファイル管理部
９２０  ネットワーク
【図１】
0004245304.tif 000002
【図２】
0004245304.tif 000003
【図３】
0004245304.tif 000004
【図４】
0004245304.tif 000005
【図５】
0004245304.tif 000006
【図６】
0004245304.tif 000007
【図７】
0004245304.tif 000008
【図８】
0004245304.tif 000009
【図９】
0004245304.tif 000010
【図１０】
0004245304.tif 000011
【図１１】
0004245304.tif 000012
【図１２】
0004245304.tif 000013
【図１３】
0004245304.tif 000014