(57)【要約】【課題】従来の分散ファイルシステムにおいては、各計算機の性能、セキュリティレベル、信頼性レベル、使用料金等をそれぞれ考慮した多様なファイル配置規則を設けること及び複数の配置規則を設けて使い分けることができなかった。【解決手段】ユーザから計算機２へ分散ファイルの作成要求があった場合、管理用計算機４へ、性能、セキュリティレベル、信頼性レベル、使用料金を考慮した配置規則からユーザの選択した配置規則を満たす計算機１のリストを取得する。ユーザから計算機２へ分散ファイルの参照要求があった場合、各計算機１から部分ファイルを収集するとともに、各計算機１からサーバ情報を収集する。各計算機２は、ユーザの選択した配置規則及び各計算機１からのサーバ情報を元に、部分ファイルの配置を評価し、必要があれば移動先の計算機１を選定し、部分ファイルの移動を指示する。【選択図】  図１
2004280485.tif 000002
【特許請求の範囲】
【請求項１】
第一の計算機、第二の計算機及び第三の計算機を有し、
前記第三の計算機は、前記第一の計算機に関する情報を有し、  前記第二の計算機は、ファイルの分散を規定する、複数の評価項目からなる情報（配置規則）を有し、
前記第二の計算機に、分散されるファイルの作成が指示された場合、前記第二の計算機は、前記第三の計算機に前記配置規則を送信し、
前記配置規則を受信した前記第三の計算機は、前記第一の計算機の情報を参照して、前記配置規則に適合する前記第一の計算機を特定し、前記特定された前記第一の計算機の情報を前記第二の計算機に送信し、
前記第二の計算機は、受信した前記第一の計算機の情報に基づいて、作成が指示されたファイルの部分ファイルを前記第一の計算機に送信することを特徴とする計算機システム。
【請求項２】
前記配置規則には、前記第一の計算機の性能についての評価項目が含まれることを特徴とする請求項１記載の計算機システム。
【請求項３】
前記配置規則には、前記第一の計算機のセキュリティ能力についての評価項目が含まれることを特徴とする請求項１及び請求項２のうちいずれか一つに記載の計算機システム。
【請求項４】
前記配置規則に含まれる評価項目には、各々の評価項目の優先度が設定されていることを特徴とする請求項１、２及び３のうちいずれか一つに記載の計算機システム。
【請求項５】
更に前記第二の計算機は、
前記部分ファイルを有する前記第一の計算機から前記第一の計算機に関する情報を取得し、
前記配置規則と取得した前記第一の計算機に関する情報を比較して前記配置規則を充足しない第一の計算機を決定し、
前記配置規則を充足しない第一の計算機から前記配置規則を充足する他の第一の計算機へ前記部分ファイルを転送する指示を、前記配置規則を充足しない第一の計算機へ送信することを特徴とする請求項１記載の計算機システム。
【請求項６】
前記第二の計算機は、前記配置規則を充足する他の第一の計算機に関する情報を、前記第三の計算機から取得することを特徴とする請求項５記載の計算機システム。
【請求項７】
前記第一の計算機と前記第三の計算機は同一の計算機であることを特徴とする請求項１から６のうちいずれか一つに記載された計算機システム。
【請求項８】
前記第二の計算機は入出力部を有し、
前記配置規則は、前記入出力部を介して入力される情報によって、ファイルごとに決定されることを特徴とする請求項１から７のうちいずれか一つに記載された計算機システム。
【請求項９】
前記第二の計算機は、ファイルの種類に応じて前記配置規則を複数有し、前記作成が指示されたファイルの種類に対応する配置規則を使用することを特徴とする請求項１から８のうちいずれか一つに記載された計算機システム。
【請求項１０】
第一の計算機及び第二の計算機に接続される計算機であって、
制御部及びストレージ装置を有し、
前記制御部は、
ファイルの分散を規定する、複数の評価項目からなる情報（配置規則）を有し、
前記制御部は、
分散されるファイルの作成が指示された場合、前記第二の計算機に前記配置規則を送信し、
前記第二の計算機から受信した前記第一の計算機の情報に基づいて、作成が指示されたファイルの部分ファイルを前記第一の計算機に送信することを特徴とする計算機。
【請求項１１】
前記制御部は、
前記部分ファイルを有する前記第一の計算機から前記第一の計算機に関する情報を取得し、
前記配置規則と取得した前記第一の計算機に関する情報を比較して前記配置規則を充足しない第一の計算機を決定し、
前記配置規則を充足しない第一の計算機から、前記配置規則を充足する他の第一の計算機へ前記部分ファイルを転送する指示を前記配置規則を充足しない第一の計算機へ送信することを特徴とする請求項１０記載の計算機。
【請求項１２】
前記配置規則を充足する他の第一の計算機を決定する際に、前記部分ファイルと関連する他の部分ファイルを有する第一の計算機を除外することを特徴とする請求項１１記載の計算機。
【請求項１３】
第一の計算機、第二の計算機及び第三の計算機を有する計算機システムにおいてファイルを分散する方法であって、
前記第二の計算機でファイルの分散を規定する、複数の評価項目からなる情報（配置規則）を有し、
前記第二の計算機に分散されるファイルの作成が指示された場合、前記第二の計算機で、前記第三の計算機に前記配置規則を送信し、
前記配置規則を受信した前記第三の計算機で、前記第一の計算機の情報を参照して、前記配置規則に適合する前記第一の計算機を特定し、前記特定された前記第一の計算機の情報を前記第二の計算機に送信し、
前記第二の計算機で、受信した前記第一の計算機の情報に基づいて、作成が指示されたファイルの部分ファイルを前記第一の計算機に送信することを特徴とするファイル分散方法。
【請求項１４】
更に前記第二の計算機で、
前記部分ファイルを有する前記第一の計算機から前記第一の計算機に関する情報を取得し、
前記配置規則と取得した前記第一の計算機に関する情報を比較して前記配置規則を充足しない第一の計算機を決定し、
前記配置規則を充足しない第一の計算機から、前記配置規則を充足する他の第一の計算機へ前記部分ファイルを転送する指示を前記配置規則を充足しない第一の計算機へ送信することを特徴とする請求項１３記載のファイル分散方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、複数の計算機がネットワークを介して接続された計算機システムにおいて、ファイルを分散して管理する分散ファイルシステムに関する。
【０００２】
【従来の技術】
計算機システムにおける従来の分散ファイルシステム、具体的には、計算機等が使用するプログラム等が使用する一かたまりのデータ（以下「ファイル」と称する）を複数に分割し、その分割された部分（以下「部分ファイル」と称する）の各々を、複数の計算機に分散して配置する技術の例が、特許文献１に開示されている。
【０００３】
また、ファイル分散の方法として、あらかじめ計算機間で各計算機の負荷、例えば、計算機が有するデータの最大転送レートの使用率や計算機が有するストレージ装置の使用率についての情報を共有し、この負荷情報に基づいて部分ファイルを各計算機に配置する方法が特許文献２に記載されている。また、特許文献２には、ある計算機に高い負荷が掛かった場合、負荷の集中している計算機に格納されている部分ファイルを他の計算機へ移動することも記載されている。
【０００４】
一方、非特許文献１には、数千数万を超える計算機が接続されることを前提とした広域ネットワークにおける分散ファイルシステムが提案されている。本文献では、広域ネットワークに接続される各計算機のセキュリティレベルや信頼性レベルなどには差異があることから、分散ファイルシステムにおいて、ある一つの部分ファイルから他の部分ファイルの位置が特定できないようにすることが開示されている。これにより、分散ファイルシステムのセキュリティを確保することができる。
【０００５】
【特許文献１】
特開平８−７７０５４号公報
【特許文献２】
特開２０００−２０７３７０号公報
【非特許文献１】
“Ｍａｉｎｔｅｎａｎｃｅ−Ｆｒｅｅ  Ｇｌｏｂａｌ  Ｄａｔａ  Ｓｔｏｒａｇｅ”（ＩＥＥＥ  Ｉｎｔｅｒｎｅｔ  Ｃｏｍｐｕｔｉｎｇ，Ｖｏｌ  ５，Ｎｏ  ５，Ｓｅｐｔｅｍｂｅｒ／Ｏｃｔｏｂｅｒ  ２００１，ｐｐ４０−４９）
【０００６】
【発明が解決しようとする課題】
特許文献２に開示された分散ファイルシステムでは、負荷情報のみに基づいて部分ファイルの移動が行われる。したがって、他の計算機と比較して高性能な計算機がシステム内に存在する場合、一つのファイルを構成する全ての部分ファイルが同一の計算機へ移動される可能性がある。これでは、一つのファイルを構成する部分ファイルを分散した意味が無くなる。この弊害を解消するためには、部分ファイルの移動先に同一のファイルを構成する他の部分ファイルがあるかどうかを確認するようにすればよい。具体的には、ある部分ファイルの情報から、同一のファイルを構成する他の部分ファイルの位置を特定できるようにすればよい。しかし、この方法では、非特許文献１に開示されているように、分散ファイルシステムにおけるセキュリティが確保されない。
【０００７】
また、従来の分散ファイルシステムにおいては、部分ファイルの配置を決定する規則又は部分ファイルを移動する規則（以下、「配置規則」という）の作成には、各計算機の負荷情報しか考慮されていない。したがって、従来技術の分散ファイルシステムでは、各計算機において性能やセキュリティレベル、信頼性レベル、使用料金等に差異がある場合に、これらを考慮した配置規則を規定して部分ファイルの配置や移動を行うことはできない。
【０００８】
更に、特許文献１、２及び非特許文献１に開示された分散ファイルシステムにおいては、複数の情報に基づく複数の配置規則を規定し、それを使い分けることは考慮されていない。
【０００９】
本発明の目的は、ファイルの部分ファイルを移動する場合において、セキュリティを確保しつつ、同一ファイルの全ての部分ファイルが一つの計算機に集まってしまう問題を解決する分散ファイル管理方法、及びこの方法を用いた分散ファイルシステムを提供することにある。
【００１０】
また、本発明の他の目的は、多様な配置規則に基づいて部分ファイルの配置を行う計算機システムにおけるファイル管理方法、及びこの方法を用いた分散ファイルシステムを提供することにある。
【００１１】
【課題を解決するための手段】
上記課題を解決するため、本発明の計算機システムは、以下の構成を有する。即ち、データを記憶するストレージ装置を備える複数の計算機（以下「計算機１」）、ユーザが使用する計算機（以下「計算機２」）及びこれら計算機を管理する計算機（以下「管理用計算機」）とがネットワークで接続された計算機システムである。本システムにおいて、計算機１は、自己の性能、セキュリティレベル、信頼性レベル、使用料金、及び負荷情報等を管理し、管理している情報を管理用計算機に送信する。管理用計算機は、送信されたこれらの情報をまとめて管理する。一方、計算機２は、ファイルを構成する部分ファイルの分散を規定する、複数の項目からなる情報（配置規則）を有する。
【００１２】
ここで、ユーザの指示等により分散されるファイルの作成が計算機２に指示された場合、計算機２は、配置規則を満足する計算機１についての情報を得るために、管理用計算機に配置規則についての情報を送信する。配置規則を受信した管理用計算機は、自己が管理する各計算機１の情報を参照して、受信した配置規則に適合する計算機１を特定し、特定された計算機１の情報を計算機２に送信する。
【００１３】
配置規則に適合する計算機１の情報を受信した計算機２は、その情報に基づいて、ファイルの部分ファイルを配置規則を満たす各計算機１に送信する。
【００１４】
また、本発明の計算機システムは、ある特定の契機において部分ファイルの再配置を行う態様を有しても良い。
【００１５】
この場合、ある特定の契機において、計算機２は、再配置の対象となるファイルを構成する部分ファイルを有する計算機１から、その計算機１に関する情報を受信する。計算機１に関する情報を受信した計算機２は、自己が有する配置規則と受信した計算機１に関する情報とを比較して、その時点で配置規則を満たさない計算機１の有無を確認する。
【００１６】
配置規則を満たさない計算機１が存在する場合、計算機２は、配置規則を満たす計算機１を確認するために、管理用計算機に配置規則に関する情報を送信する。配置規則を受信した管理用計算機は、自己が管理する計算機１に関する情報を参照して、受信した配置規則を満たす計算機１を特定し、その計算機１についての情報を計算機２に送信する。
【００１７】
配置規則を満たす計算機１の情報を受信した計算機２は、受信した計算機１の情報から、特定の計算機１を選択する。その後、計算機２は、配置規則を満たさない計算機１に対して、配置規則を満たす特定の計算機１へ部分ファイルを転送するよう指示を送信する。
【００１８】
尚、計算機１や計算機２が管理用計算機を兼ねていてもよく、計算機１が計算機２を兼ねていても良い。
【００１９】
また、計算機２が有する配置規則には、配置規則を構成する項目の優先度が設定される態様も考えられる。この場合、計算機２は、配置規則を満足する計算機１が存在しない場合、優先度の低い項目を配置規則から除外することによって、配置規則を緩和し、ファイルの分散先（再配置先）となる計算機１を確保する。尚、優先度が０の場合には、その項目は配置規則の内容としては考慮されない態様としても良い。
【００２０】
更に、計算機２は、複数の配置規則を有し、分散されるファイルの種類ごとに異なる配置規則を適用してファイルを分散する態様としても良い。また、ファイルの分散時にユーザ等に配置規則の各項目の選択又は優先度を設定させ、その選択又は設定に応じたファイル分散を行う態様でも良い。
【００２１】
また、配置規則を満たす計算機１が不足する場合、計算機２は、複数の部分ファイルを１つの計算機１に格納するようにしても良い。
【００２２】
また、部分ファイルの移動を指示された計算機１で、一定の条件を満たすまで部分ファイルの移動を保留する態様でも良い。この場合、計算機１は、一つの部分ファイルに対して複数の移動指示を受けることになるが、計算機１は、これら複数の移動指示に含まれる移動先の計算機１に重複する計算機１があるかどうかを確認し、重複している計算機１がある場合にのみ、部分ファイルの転送を実行する。ここで一定の条件とは、一定時間、または一定数指示を受け取るまでとするとよい。
【００２３】
【発明の実施の形態】
以下、本発明の実施の形態について、図面を用いて詳細に説明する。
【００２４】
図１は、本発明を適用した計算機システムの構成の一実施形態を示すブロック図である。図１の計算機システムは、計算機１Ａ、１Ｂ、１Ｃ、２Ａ、２Ｂ、及び管理用計算機４を有し、これらはすべてネットワーク３で相互に接続されている。
【００２５】
図１１は、計算機１の構成例を示す図である。計算機１は、ファイルや部分ファイルといったデータを記憶するハードディスクやディスクアレイ等のストレージ装置１４及び制御部１５を有する。制御部１５は、プロセッサ１６、メモリ１７、インタフェース１８、及びネットワークインタフェース１９を有する。プロセッサ１６は、ストレージ装置１４に格納された部分ファイルやファイルを管理するためのオペレーティングシステム等のプログラムを実行する。これらのプログラムは、メモリ１７に格納される。また、これらのプログラムは、フロッピー（登録商標）ディスク等の可搬記憶媒体又はネットワーク３を介して計算機１にインストールされる。
【００２６】
尚、ストレージ装置１４は、制御部１５と別筐体でも、同一筐体に組み込まれていても良い。制御部１５とストレージ装置１４は、ＳＣＳＩやファイバチャネル等のインタフェース１８を介して相互に接続される。また、制御部１５とストレージ装置１４が別筐体である場合には、制御部１５とストレージ装置１４が、ファイバチャネル等で構築されたストレージエリアネットワークで接続されていてもよい。更に、制御部１５とストレージ装置１４が別筐体の場合、ストレージ装置１４は更にストレージ装置１４全体の制御を行う制御部を有していても良い。
【００２７】
メモリ１７には、自サーバ状態管理プログラム１１、部分ファイル管理プログラム１２、及び部分ファイル再配置プログラム１３が格納される。
【００２８】
自サーバ状態管理プログラム１１は、計算機１の性能、セキュリティレベル、信頼性レベル、使用料金、又は負荷の情報等（以下、「サーバ情報」）を制御部１５が管理する際に実行される。サーバ情報に変更があった場合、制御部１５は、同プログラム１１を実行して、ネットワーク３を介して、管理用計算機４にその変更内容を通知する。尚、本実施形態においては、制御部１５は、サーバ情報のうち、頻繁に更新されることの少ない情報（ここでは、性能、セキュリティレベル、信頼性レベル、使用料金）の変更のみ、管理用計算機４に通知するようにする。
【００２９】
また、制御部１５は、部分ファイル管理プログラム１２の実行結果に基づいて、計算機２へ計算機１自身のサーバ情報を送信する。
【００３０】
部分ファイル管理プログラム１２は、計算機１のストレージ装置１４に格納されている部分ファイルを制御部１５が管理する際に実行される。又、同プログラム１２は、計算機２からの要求に基づいて、制御部１５が、部分ファイルの書き込み、読み出し、及び要求元となる計算機２への部分ファイルの送信を行う際にも実行される。
【００３１】
部分ファイル再配置プログラム１３は、計算機２からの部分ファイルの移動の指示に基づいて、制御部１５が部分ファイルの移動先を決定したり、制御部１５が部分ファイルの他の計算機１への転送を制御する際に実行される。また、同プログラム１３は、他の計算機１の制御部１５から部分ファイルの移動の受け入れ要求を受信した制御部１５が、移動を要求された部分ファイルを受信してストレージ装置１４へ保存する際にも実行される。
【００３２】
管理用計算機４は、計算機１と同様の構成であり、プロセッサ、メモリ、入出力部及びストレージ装置を有する。メモリには、分散ファイル情報管理テーブル４３、サーバ情報管理テーブル４４、分散ファイル管理プログラム４１及びサーバ情報管理プログラム４２が格納されている。
【００３３】
分散ファイル管理プログラム４１は、分散されて管理されるファイル（以下「分散ファイル」）を構成する各部分ファイルの位置を管理用計算機４が管理する際に実行される。管理用計算機４は、計算機２からの分散ファイル作成の通知に基づいて、通知された分散ファイルを構成する各部分ファイルにそれぞれ一意のＩＤ（以下「部分ファイルＩＤ」）を決定し、分散ファイル名、部分ファイルＩＤ、及び各部分ファイルを格納する計算機名を関連付けて管理する。この管理に使用されるテーブルが分散ファイル情報管理テーブル４３である。本テーブル４３の内容については後述する。
【００３４】
また、同プログラム４１は、管理用計算機４が、計算機２からの、分散ファイルを構成する部分ファイルのＩＤ及び位置に関する問い合わせに応じて、部分ファイルＩＤ及び部分ファイルの位置のリストを、問い合わせ元の計算機２に送信する際にも実行される。
【００３５】
サーバ情報管理プログラム４２は、管理用計算機４が、各計算機１の制御部１５から送信されるサーバ情報を管理する際に実行される。サーバ情報の管理に使用されるテーブルがサーバ情報管理テーブル４４である。本テーブル４４の内容例については後述する。また、同プログラム４２は、管理用計算機４が、計算機２からの問い合わせに対し、計算機２からの問い合わせに含まれる配置規則を満足する計算機１をサーバ情報管理テーブル４４に基づいて検索し、その結果を計算機２へ返信する際にも実行される。
【００３６】
尚、計算機１が分散ファイル管理プログラム４１等を有することで、管理用計算機４を兼ねても良い。
【００３７】
計算機２は、計算機１と同様の構成であり、プロセッサ、メモリ、入出力部、及びストレージ装置を有する。計算機２は、入出力部を介してユーザの指示を受け付ける。尚、計算機１又は管理用計算機４がユーザの指示を受け付ける入出力部を有することで計算機２を兼ねても良い。メモリには、配置規則２３、分散ファイル操作プログラム２２及び部分ファイル配置評価プログラム２１とが格納されている。
【００３８】
分散ファイル操作プログラム２２は、計算機２が、ユーザからの分散ファイルの作成要求に対し、分散ファイルの部分ファイルへの分割、配置先となる計算機１の確認、及び各計算機１への部分ファイルの作成要求を発信する際に実行される。
【００３９】
部分ファイル配置評価プログラム２１は、計算機２が部分ファイルの配置先となる計算機１を確認する際に、予め計算機２に設定されている性能、セキュリティレベル、信頼性レベル、使用料金、負荷情報等の項目に基づく配置規則を満足する計算機１の有無を計算機２が管理用計算機４へ問い合わせる際に実行される。又、問い合わせの結果得られる配置規則を満たす計算機１の数が、配置すべき部分ファイル数未満である場合、計算機２は、同プログラム２１を実行して配置規則から優先度の最も低い項目を除外し、再度管理用計算機４へ項目を除いた配置規則に合致する計算機１の有無を問い合わせる。
【００４０】
また、計算機２は、各計算機１から受け取ったサーバ情報に基づき、各計算機１が予め設定されている配置規則を満足しているかどうかをチェックする。チェックした結果、配置規則を満たさない計算機１が存在する場合、計算機２は、配置規則を満たさない計算機１が保存している部分ファイルの移動先となる計算機１を決定する。
【００４１】
具体的には、計算機２は、配置規則を満足する計算機１の有無を管理用計算機４へ問い合わせる。管理用計算機４は、計算機２からの要求に従って、要求に合致する計算機１を検索し、その結果を計算機２に送信する。その結果を受信した計算機２は、要求に合致する計算機１のうち、移動すべき部分ファイルが属する分散ファイルに属する他の部分ファイルを保存している計算機１を除外して、移動先となる計算機１を決定する。
【００４２】
図１は、分散ファイルＡ、Ｂ、Ｃが作成された後の状態を例示している。計算機１Ａのストレージ装置１４には分散ファイルＡの部分ファイルＡ１（１４１）、計算機１Ｂのストレージ装置１４には分散ファイルＡの部分ファイルＡ２（５１）及び分散ファイルＢの部分ファイルＢ１（５２）、計算機１Ｃのストレージ装置１４には分散ファイルＢの部分ファイルＢ２（６１）及び分散ファイルＣの部分ファイルＣ１（６２）が保存されている。
【００４３】
図２は、図１の状態における、管理用計算機４が有する分散ファイル情報管理テーブル４３の例を示したものである。管理用計算機４は、各分散ファイルの各部分ファイルに付された一意の部分ファイルＩＤと部分ファイルが格納される位置との対応関係を本テーブル４３で管理する。ここで、各分散ファイルに属性情報がある場合には、この属性情報を各部分ファイルに対応付けて管理する。図２では、分散ファイルの属性情報の例として、分散ファイルの種類を管理している。分散ファイルの属性情報としては、他にファイルの所有者、ファイル作成時刻、ファイル更新時刻などが考えられる。これらの情報は、各計算機２が分散ファイル作成要求をユーザから受取った際に、管理用計算機４に送信される。
【００４４】
図３は、管理用計算機４において管理されているサーバ情報管理テーブル４４の例を示したものである。ここで、本実施形態の各計算機１では、性能としてストレージ装置１４のデータ転送レート（Ｍバイト／秒）、セキュリティレベルとして各計算機１の管理者が設定した使用者等のレベル、信頼性レベルとして各計算機１の管理者が設定したレベル、使用料金として、各計算機１のストレージ装置１４の使用容量に応じた料金（円／Ｍバイト）、負荷情報として、各計算機１のストレージ装置１４の記憶領域の使用率（％）がサーバ情報として管理されているが、各計算機１から管理用計算機４へは、値の更新の頻度が少ない性能、セキュリティレベル、信頼性レベル、及び使用料金の情報のみが送信されると仮定する。これは、管理用計算機４と各計算機１との間の通信頻度を抑えるためである。したがって、管理用計算機４は、図３のように、各計算機１から送信された情報のみをサーバ情報管理テーブル４４で管理する。
【００４５】
尚、管理用計算機４へのサーバ情報の登録は、分散ファイルシステムの初期設定時に、ネットワーク３で接続された各計算機１から管理用計算機４へ自動的にサーバ情報が送信される構成としても良いし、ユーザ又は管理者が手動で設定する構成としても良い。また、サーバ情報に変更があった場合には、その都度、計算機１から管理用計算機４へ情報が転送されるか、ユーザ等が手動で登録を行う。
【００４６】
図４は、計算機２Ａにおいて予め規定されている配置規則のテーブル２３の例である。本図においては、配置規則の項目として、性能、セキュリティ、信頼性、使用料金及び負荷が採用されているが、他の組み合わせでも構わない。
【００４７】
また、本配置規則のテーブル２３では、各項目に優先度が設定される。計算機２は、配置規則を満足する計算機１の数が不足する場合、各項目に設定された優先度に応じて、配置規則のテーブル２３から項目を除外し、配置規則の条件を緩和する。これにより、次善の配置規則で部分ファイルを分散することが可能となる。
【００４８】
本図においては、性能の項目を優先度３とし、性能値が４０（Ｍバイト／秒）以上である計算機１に部分ファイルを配置することを規定している。また、セキュリティの項目を優先度１とし、セキュリティレベルの値が４以上である計算機１に部分ファイルを配置すること、また、信頼性の項目を優先度２とし、信頼性レベルの値が２以上である計算機１に部分ファイルを配置することを規定している。さらに、使用料金及び負荷の規則は優先度０とし、配置規則の項目としては適用しないことを示している。以下の説明では、優先度１が、優先度３よりも優先されるとして説明する。
【００４９】
尚、本実施形態では、配置規則の項目の組み合わせが一つの場合について説明する。しかし、他の実施形態として、分散ファイルの配置時に、ユーザに項目の優先度を決定させることで、個々の分散ファイルの配置ごとに、ユーザが望む項目から構成される配置規則を使用する態様が考えられる。
【００５０】
この場合、計算機２は、分散ファイル作成時に、入出力部に配置規則の項目を表示し、ユーザに項目の優先度を入力させる。ここで、ユーザは、優先したい項目について高い優先度を設定する。逆にユーザは優先度０を入力することで、その項目を配置規則から除外することも出来る。更に、新たな項目がユーザによって追加されても良い。
【００５１】
このようにして設定された項目及びその優先度を、計算機２はその分散ファイルの配置規則のテーブル２３としてメモリに記録すると共に、設定された配置規則の情報を管理用計算機４に送信する。管理用計算機４は、図２の分散ファイル情報管理テーブル４３を図１０のように拡張し、各分散ファイルごとの配置規則についても分散ファイルの属性情報として管理する。
【００５２】
また、本実施形態では、分散ファイルの種類を問わず同じ配置規則を適用しているが、他の実施態様として、分散ファイルの種類によって適用する規則の選択／優先度の設定を自動で行う態様も考えられる。この場合、計算機２は、あらかじめ、図９に示すように、図４に示す配置規則のテーブル２３をファイルの種類ごとに有する。そして、計算機２は、ユーザから分散ファイル作成が要求された場合に、要求されたファイルの種類に応じて図９の配置規則のテーブルから適用する配置規則を自動で選択し、必要があれば優先度を設定する。
【００５３】
尚、計算機２に設定されるファイルの種類ごとの配置規則の情報は、計算機１の使用者等が手動で入力したり、新たに計算機２がネットワーク３に接続された際に、管理用計算機４から配置規則の情報が自動的に転送されても良い。さらに、新たに追加される配置規則の項目の情報は、各計算機１及び管理用計算機４に転送され、各計算機１及び管理用計算機４は、追加された配置規則の項目に対応するサーバ情報の収集等を開始する。
【００５４】
次に、図１の計算機システムにおいて、ユーザから計算機２Ａに対し分散ファイルＡの作成要求があり、部分ファイルＡ１（１４１）及び部分ファイルＡ２（５１）が作成される場合の処理手順を説明する。
【００５５】
ユーザから入出力部を介して計算機２Ａに分散ファイルＡの作成要求があると、計算機２Ａは、ユーザから指定されたファイルを分散ファイルＡとし、分散ファイルＡを予め規定されたサイズに分割して部分ファイル（ここでは、２つの部分ファイルＡ１（１４１）及び部分ファイルＡ２（５１））を作成する。その後、計算機２Ａは、管理用計算機４に、作成する部分ファイル数（本例では２）を通知する。
【００５６】
管理用計算機４は、管理用計算機４が管理する計算機システム内で一意の部分ファイルＩＤを、計算機２Ａから通知された部分ファイル数と同じ数だけ作成し、作成した部分ファイルＩＤを計算機２Ａに通知する。管理用計算機４より部分ファイルＩＤを受け取った計算機２Ａは、受取った部分ファイルＩＤを各部分ファイルに付与する。さらに、計算機２Ａは、部分ファイルを配置すべき計算機１を決定する。以下、決定処理の手順を説明する。
【００５７】
図５は、計算機２Ａが、部分ファイルを配置すべき計算機１のリストを確定するまでの手順を示すフローチャートである。
【００５８】
まず、計算機２Ａは、自身が有する配置規則のテーブル２３の項目の中から、１以上の優先度が設定されている項目全てを選択する。この際、ファイルごとに特定の配置規則のテーブル２３が決まっている場合には、計算機２は、項目を選択する前に、その特定の配置規則のテーブル２３を選択する（ステップ５００）。その後、計算機２Ａは、管理用計算機４に対し、選択された項目で規定される配置規則を満足する計算機１を問い合わせるためのコマンドを送信する（ステップ５０１）。ただし、管理用計算機４に登録されていない項目の情報は管理用計算機４の返答では考慮されない。
【００５９】
問い合わせコマンドの結果を受信した計算機２Ａ（ステップ５０９）は、次に、配置規則の項目として負荷が選択されているかどうかを判定する。これは、本実施形態においては、負荷の情報は管理用計算機４では管理されていないため、管理用計算機４から送信された計算機１のリストについて、改めて負荷の条件を満たすかどうかを判断する必要があるからである。尚、本例では負荷の項目を例示するが、管理用計算機４で管理されない項目が他の項目である場合もある。このような項目がある場合、計算機２は、その項目についても、ここで説明した処理と同様の処理を行う（ステップ５０２）。
【００６０】
負荷の項目が選択されている場合には、計算機２Ａは、ステップ５０１で得られた計算機１のリストに含まれる全ての計算機１に対して、現在の負荷情報を問い合わせるコマンドを発行する。そして、その応答に基づいて、計算機２Ａは、配置規則の負荷の項目に設定された条件を満足していない計算機１をリストから除外する（ステップ５０３）。
【００６１】
次に、計算機２Ａは、ステップ５０３で修正された計算機１のリストに、作成した部分ファイル数（ここでは２）以上の計算機１が含まれているかどうかを判定する（ステップ５０４）。部分ファイル数以上の計算機１がリストに含まれていれば、計算機２は、適用した配置規則及び計算機１のリストを確定する（ステップ５０７）。
【００６２】
また、ステップ５０４において、計算機１のリストに部分ファイル数以上の数の計算機１が含まれない場合、計算機２Ａは、ステップ５０１で配置規則として選択された項目のうち、優先度が最も低い項目を除外する（ステップ５０５）。その後、計算機２Ａは、除外の結果、優先度が１、即ち最も優先度の高い項目が配置規則のテーブル２３に残っているかどうかを判定する（ステップ５０６）。優先度が１の項目が残っていない（すべての項目を除外してしまった）場合、計算機２Ａは、ユーザに対して警告を表示するとともに、直前に得られた計算機１のリスト（優先度１の項目を除外する前の計算機１のリスト）を表示する（ステップ５０８）。また、ステップ５０６において優先度１の項目が配置規則のテーブル２３に残っている場合、計算機２Ａは、ステップ５０１以降の処理を繰り返し、残っている項目で構成される配置規則を満たす計算機１のリストを確定する。
【００６３】
その後、計算機２Ａは、確定した計算機１のリストから、ランダムに部分ファイルと同じ数の計算機１を選択する。そして、計算機２Ａは、選択された各計算機１（この場合、計算機１Ａ及び１Ｂ）へそれぞれ部分ファイルＡ１及びＡ２の作成を指示する。この指示には、部分ファイルのデータ及び部分ファイルＩＤ等が含まれる。さらに、計算機２Ａは、管理用計算機４に対し、作成された分散ファイルに関する情報、具体的には、分散ファイル名、各部分ファイルＩＤ、及び各部分ファイルの配置場所（計算機１を特定する情報）を通知する。
【００６４】
尚、上述したように、計算機２Ａは、図５のステップ５０８の処理に基づいて、ユーザに配置規則を満足する計算機１が足りない旨の警告を出す。このとき、作成された計算機１のリストに計算機１が１つでも存在する場合、計算機２Ａが、部分ファイルのうち複数または全てを同一の計算機１に配置してもよいかどうかをユーザに選択させても良い。そして、ユーザがよいと選択した場合は、計算機２は、複数の部分ファイルを同一の計算機１に配置する。
【００６５】
また、計算機２Ａは、図５のステップ５０８の処理に基づいて優先度の低い項目を除外した配置規則を満たす計算機１のリストが得られた場合、除外された項目を入出力部を介してユーザへ示し、警告を発するようにしても良い。
【００６６】
次に、部分ファイル作成の指示を受けた計算機１の動作手順を説明する。
【００６７】
部分ファイル作成の指示を受けた各計算機１（ここでは１Ａ及び１Ｂ）は、指示と共に転送されたデータに基づいて自計算機１内のストレージ装置１４内に部分ファイルを作成する。また、計算機１は、計算機２Ａから受信した部分ファイルＩＤと部分ファイルのストレージ装置１４内の記憶位置を対応付けるテーブルを作成する。
【００６８】
図５のステップ５０１で計算機２Ａから問い合わせコマンドを受けた管理用計算機４は、以下のように動作する。管理用計算機４は、計算機２Ａから送信された配置規則の項目（図４）に基づいて、図３に示したサーバ情報管理テーブル４４の中から図４の配置規則を満足する計算機１（本例の場合計算機１Ａ及び１Ｂ）を抽出する。そして、抽出した計算機１の情報を、配置規則を満足する計算機１のリストとして計算機２Ａに送信する。
【００６９】
次に、図１の計算機システムにおいて、ユーザから計算機２Ｂに対する分散ファイルＢの参照要求があった場合の処理手順及びこの参照要求を契機として、部分ファイルの移動（再配置）を行う場合の処理動作について説明する。尚、部分ファイルの移動（再配置）を行う契機としては、参照要求の他に、部分ファイルの内容を書き換える要求を計算機２が受け付けた場合や、ある一定周期、若しくはユーザが指定した時刻等が考えられる。また、本例では、計算機２Ｂには、図６のような配置規則の項目及び優先度が設定されていると仮定する。
【００７０】
まず、入出力部を介してユーザから計算機２Ｂに分散ファイルＢの参照要求があると、計算機２Ｂは、分散ファイルＢを構成する各部分ファイルがどの計算機１に配置されているかを問い合わせるコマンドを管理用計算機４に送信する。
【００７１】
問い合わせのコマンドを受信した管理用計算機４は、分散ファイル情報管理テーブル４３を参照し、分散ファイルＢの各部分ファイルの部分ファイルＩＤ及び部分ファイルを保存している計算機１の計算機名を計算機２Ｂに送信する。本例では、管理用計算機４は、部分ファイルＢ１（５２）及び部分ファイルＢ２（６１）が各々計算機１Ｂ及び計算機１Ｃに保存されていることを示す情報を送信する。
【００７２】
管理用計算機４から分散ファイルＢの部分ファイルについての情報を受信した計算機２Ｂは、計算機１Ｂへ部分ファイルＢ１（５２）の読み出し要求を、計算機１Ｃへ部分ファイルＢ２（６１）の読み出し要求を送信する。各計算機１は、計算機２Ｂの要求に応じて該当する部分ファイルをストレージ装置１４から読み出して、計算機２Ｂへ送信する。この際、各計算機１は、各計算機１のサーバ情報も併せて計算機２Ｂに送信する。本例においては、図８に示されるようなサーバ情報が計算機２Ｂに送信されるものとする。尚、ファイルの再配置が他の契機で行われる場合には、計算機２は、その契機において、分散ファイルを構成する部分ファイルを有する計算機１に対して、各計算機１が有するサーバ情報を要求するコマンドを発行しても良い。
【００７３】
計算機２Ｂは、受信した部分ファイルＢ１（５２）及び部分ファイルＢ２（６１）から分散ファイルＢを復元する。また、各計算機１から受信したサーバ情報に基づいて、分散ファイルを構成する全ての部分ファイルの配置の評価を行う。
【００７４】
部分ファイルの配置の評価は、具体的には次のように行われる。即ち、計算機２Ｂは、部分ファイルを保存している各計算機１から送信されたサーバ情報と計算機２Ｂに登録されている配置規則とを比較して、分散ファイルＢの部分ファイルを格納する計算機１が、分散ファイルＢに対応する配置規則を満足しているかをチェックする。本例においては、計算機２Ｂは、図６の配置規則及び図８に示されるサーバ情報を比較する。尚、分散ファイルごとに配置規則が決まっている場合には、計算機２Ｂは、自計算機２Ｂが有する配置規則のテーブル２３の中から、分散ファイルＢに対応する配置規則を決定した上で比較を行う。
【００７５】
評価の結果、計算機２Ｂが有する配置規則を満足していない計算機１が存在する場合、計算機２Ｂは、部分ファイルの移動処理を行う。本例においては、計算機１Ｃが負荷の項目で配置規則を満たしていないので、計算機１Ｃに格納された部分ファイルＢ２（６１）が移動の対象となる。以下、部分ファイルの移動処理について説明する。
【００７６】
部分ファイルの移動を行う場合、計算機２Ｂは、まず配置規則を満足していない計算機１の数及び配置規則を満足していない計算機１に格納されている部分ファイルの数を確認する。通常、各計算機１には１つの部分ファイルしか格納されていないので、計算機１の数と部分ファイルの数は一致する。しかし、１つの分散ファイルの部分ファイルを重複して格納している計算機１が存在する場合には、配置規則を満足しない計算機１の数に比べて、それら計算機１に含まれる部分ファイルの数は多くなる。ここで確認された部分ファイルが、移動対象の部分ファイルとなる。
【００７７】
その後、計算機２Ｂは、移動先の計算機１の候補として、配置規則を満足する計算機１のリストを管理用計算機４から取得する。そして、計算機２Ｂは、計算機１のリストから移動先となる計算機１を決定し、移動対象となる部分ファイルを有する計算機１に対して、移動先となる計算機１へのデータの移動を指示する。
【００７８】
図７は、計算機２Ｂが、移動先となる計算機１の候補となる計算機１のリストを確定する手順を示すフローチャートである。
【００７９】
まず、計算機２Ｂは、配置規則のテーブル２３で、１以上の優先度が設定されている全ての項目を選択する（ステップ７００）。その後、計算機２Ｂは、管理用計算機４に対し、選択された項目で構成される配置規則を満足する計算機１の有無を問い合わせるコマンドを発行する（ステップ７０１）。
【００８０】
コマンドを受信した管理用計算機４は、受信した項目で構成される配置規則を満たす計算機１をサーバ情報管理テーブル４４から検索し、その結果得られる計算機１のリストを計算機２Ｂに送信する。本例の場合、管理用計算機４は、図６の配置規則を満足する計算機１として計算機１Ａを選択し、計算機２Ｂに通知する（ステップ７１０）。
【００８１】
配置規則を満たす計算機１のリストを受信した計算機２Ｂは、計算機２Ｂが有する配置規則の項目で負荷の項目が選択されているかどうかを判定する（ステップ７０２）。負荷の項目が選択されている場合には、計算機２Ｂは、受信した計算機１のリストに含まれる全ての計算機１に、現在の負荷情報を問い合わせるコマンドを発行する。コマンドの送信先である計算機１全てから応答が帰ってきたら、計算機２Ｂは、その応答に基づいて、負荷の項目を満足していない計算機１を、取得された計算機１のリストから除外する（ステップ７０３）。
【００８２】
次に、計算機２Ｂは、移動対象となっている部分ファイルが属する分散ファイル（この場合分散ファイルＢ）に含まれる他の部分ファイルを格納している計算機１がリストに含まれているかを判断する。具体的には、分散ファイル参照の際に管理用計算機４から受信した、他の部分ファイルを格納している計算機１の計算機名と、リストに含まれる計算機１の計算機名とを逐一比較する。そして、計算機２Ｂは、該当する計算機１がリストに含まれていれば、その計算機１をリストから除外する（ステップ７０４）。
【００８３】
次に、計算機２Ｂは、ステップ７０４までに得られた計算機１のリストに、移動すべき部分ファイルの数以上の計算機１が含まれているかどうかを判定する（ステップ７０５）。部分ファイル数以上の計算機１がリストに含まれていれば、計算機２Ｂは、適用した配置規則及び計算機１のリストを確定する（ステップ７０８）。本例においては、管理計算機４から通知された計算機１Ａについてステップ７０２〜７０５までの条件の確認が行われ、最終的に、計算機１Ａが移動先の計算機１のリストとして確定される。
【００８４】
一方、ステップ７０５において、計算機１のリストに移動すべき部分ファイルの数以上の計算機１が含まれていない場合、計算機２Ｂは、配置規則のテーブル２３から、優先度が最も低い項目を除外する（ステップ７０６）。その後、計算機２Ｂは、除外の結果、優先度が１の項目が配置規則のテーブル２３に残っているかどうかを判定する（ステップ７０７）。優先度が１の項目が残っていない（すべての項目を除外してしまった）場合、計算機２Ｂは、ユーザに警告を発し、最後に得られた計算機１のリスト（最後に優先度１の項目を除外する前の計算機１のリスト）を、移動先となる計算機１のリストとする（ステップ７０９）。
【００８５】
また、ステップ７０７において優先度１の項目が配置規則のテーブル２３に残っている場合、計算機２Ｂは、ステップ７０１の処理に戻り、管理用計算機４に対し、残っている項目で構成された配置規則を満たす計算機１を問い合わせるコマンドを送信し、以下、同様のステップを実行して所望の計算機１のリストを確定する。
【００８６】
その後、計算機２Ｂは、確定した移動先となる計算機１のリストから、移動すべき部分ファイル数分の計算機１を移動先の計算機１としてランダムに選択する。そして、計算機２Ｂは、配置規則を満たしていないと判断された計算機１に対し、移動すべき部分ファイルの部分ファイルＩＤ及び移動先となる計算機１の情報を送信する。
【００８７】
計算機２Ｂから移動すべき部分ファイルの部分ファイルＩＤ及び移動先となる計算機１の情報を受信した計算機１は、受信した部分ファイルＩＤを用いて部分ファイルの格納位置を特定し、指定された部分ファイルを指定された計算機１に送信する。
【００８８】
本実施形態においては、計算機２Ｂは、計算機１Ａを移動先の計算機１として選択し、部分ファイルＢ２（６１）の部分ファイルＩＤ及び計算機１Ａを示す情報を計算機１Ｃに送信する。指示を受けた計算機１Ｃは、計算機２Ｂの指示に従い、計算機１Ａへ部分ファイルＢ２（６１）を転送する。
【００８９】
ここで、移動先となる計算機１のリストに移動すべき部分ファイル数より多い計算機１が含まれる場合、計算機２Ｂは、移動すべき部分ファイルそれぞれに、重複しないよう全ての計算機１を割り振り振っても良い。この場合、ある部分ファイルには、複数の計算機１が移動先として割り振られることになる。その後計算機２Ｂは、部分ファイルの移動指示を部分ファイルを格納している計算機１に送信する際に、複数の計算機１を移動先の候補として指定する情報を送信する。移動先として複数の計算機１の情報を受取った計算機１は、受信した複数の計算機１に関する情報を用いて、転送先となる計算機１を自由に選択して部分ファイルを転送する。
【００９０】
またこの場合、移動すべき部分ファイルを保持している計算機１で、計算機２からの移動指示の実行をある一定の条件を満たすまで保留しておく構成とすることが出来る。さらに、部分ファイルの移動を保留している計算機１が、移動を保留している部分ファイルへの移動指示を重ねて受け取った場合、本計算機１は、各々の移動指示で指定される移動先となる計算機１のうち、全ての移動指示で移動先として指定されている計算機１を移動先として選択する。
【００９１】
尚、計算機２Ｂは、図７のステップ７０９の処理に基づき、ユーザに対し、部分ファイルが配置規則を満たさない計算機１に配置されているが、配置規則を満たす移動先の計算機１が見つからない旨の警告を入出力部に表示しても良い。また、移動先となる計算機１のリストに部分ファイル数未満の計算機１しか含まれていない場合、計算機２Ｂは、ユーザに対し、部分ファイルが配置規則を満たさない計算機１に配置されているが、配置規則を満たす移動先の計算機１の数が足りない旨の警告を入出力部に表示しても良い。
【００９２】
更にこの場合、計算機２Ｂは、配置規則を満たさない部分ファイルのうちの一部または全てを同一の計算機１に移動してもよいかどうかをユーザに選択させるようにしても良い。ここで、ユーザが部分ファイルの重複を許した場合、計算機２Ｂは、移動先の計算機１のリストから計算機１を無作為に抽出し、抽出された計算機１に部分ファイルを移動するよう、移動対象である部分ファイルを有する複数の計算機１に指示する。
【００９３】
又、上述したように、計算機１は、一定時間、または一定数の移動指示を計算機２Ｂから受信するまで、部分ファイルの移動処理の実行を保留しても良い。これにより、短時間の間に複数の計算機２から同一の部分ファイルの参照があった場合、計算機２毎の配置規則の違いによって、参照ごとに毎回部分ファイルが移動してしまう現象を避け、頻繁に部分ファイルが移動することによる計算機システムへ与える負荷を低減することができる。
【００９４】
尚、部分ファイルの移動処理を保留している計算機１は、その保留された移動処理を以下のパターンで実行する。
【００９５】
まず、保留している移動処理が１つしかなく、かつその移動処理の対象となる移動先の計算機１が一つしか指定されていない場合、移動処理を保留している計算機１は、移動先として指定された計算機１に部分ファイルを転送する。
【００９６】
次に、保留している移動処理が一つしかないが、移動処理の対象となる移動先の計算機１が複数指定されている場合、移動処理を保留している計算機１は、複数指定された計算機１からランダムに計算機１を選択し、選択した計算機１に部分ファイルを転送する。
【００９７】
また、保留している移動処理が複数あり、かつその各々の移動処理において移動先の計算機１が一つ又は複数指定されている場合、移動処理を保留している計算機１は、保留している各々の処理で指定される移動先の計算機１の中で、共通して存在する計算機１に部分ファイルを転送する。共通に存在する計算機１がない場合、移動処理を保留している計算機１は移動処理を行わない。
【００９８】
計算機２Ｂは、部分ファイル移動の完了を移動先となった計算機１から通知された後、管理用計算機４に対し、部分ファイルＩＤ及び部分ファイルの移動先である計算機１についての情報（ネットワークアドレス等）を通知する。
【００９９】
本例においては、計算機２Ｂは、部分ファイルＢ２（６１）の部分ファイルＩＤと移動先となる計算機１Ａの情報を、管理計算機４に通知する。
【０１００】
尚、上述した実施形態における部分ファイル転送の方法とは別の方法として、以下が考えられる。
【０１０１】
すなわち、移動処理における移動先となる計算機１が複数指定されている場合、移動処理を実行する計算機１が、その全ての移動先となる計算機１に部分ファイルを転送する形態である。尚、この場合、移動処理を実行する計算機１のストレージ装置に格納されている部分ファイルは削除される。
【０１０２】
また、移動先となる計算機１全てに部分ファイルを転送するのではなく、移動処理を行う計算機１が、移動先の候補となる複数の計算機１から複数の計算機１を選択し、その選択された計算機１に対して部分ファイルを転送することも考えられる。
【０１０３】
更に、保留している移動処理が複数あり、かつその各々の移動処理において移動先の計算機１が一つ又は複数指定されている場合で共通する計算機１がない場合、移動処理を保留している計算機１は、各々の移動処理の移動先として指定されている計算機１全て（又は一部）に部分ファイルを転送する。
【０１０４】
尚、本方法の場合、移動処理を行う計算機１は、複数の計算機１に同じ部分ファイルを転送したことを管理用計算機４に通知しなければならない。
【０１０５】
図１２は、本方法における管理用計算機４で保持されている分散ファイル情報管理テーブル４３の例を示す図である。本図においては、図２で説明した分散ファイル情報管理テーブル４３において、部分ファイルの保存先となる計算機１の情報を登録するエントリが複数用意される。
【０１０６】
また、本方法において、部分ファイルを複数の計算機１に配置（以下「部分ファイルのコピー」）してよいかどうかを、以下のように設定することが考えられる。
【０１０７】
一つは、ユーザが指定する場合である。この場合、分散ファイル情報管理テーブル４３には、図１３に示すようなエントリが、ファイルの属性情報として設定される。そして、ユーザは、分散ファイル作成時に、計算機２を介して図１３に示すエントリに値を設定することで、ある分散ファイルの部分ファイルのコピーの可否を設定する。計算機１は、この設定された情報を参照して部分ファイルのコピーを行う。
【０１０８】
もう一つは、あらかじめファイルの種類によって部分ファイルのコピーの可否を設定しておき、分散ファイルの再配置時に、部分ファイルの転送を行う計算機１がその情報に基づいて自動的に部分ファイルのコピーを行う場合である。この場合、管理用計算機４又は計算機１は、図１４に示すようなテーブルをあらかじめ有する。
【０１０９】
このようにして設定された情報に基づいて、計算機１は、部分ファイルのコピーを行う。尚、設定された情報が管理用計算機４にしか存在しない場合、移動処理を行う計算機１は、管理用計算機４に部分ファイルのコピー処理の可否を問い合わせ、その結果に応じて部分ファイルのコピーを行う。
【０１１０】
更に、本方法においては、同じ部分ファイルが複数の計算機１に存在するので、計算機２が分散ファイルを参照する場合、部分ファイルをどの計算機１から参照するかを決定する必要がある。決定方法としては以下の例が考えられる。
【０１１１】
第一の例は、管理用計算機４で参照先を決定する場合である。この場合、計算機２から部分ファイルの配置場所の問い合わせを受信したら、管理用計算機４は、部分ファイル情報管理テーブル４３に登録された複数の配置先からランダムに一つの計算機１を選択し、その情報を計算機２に通知する。
【０１１２】
第二の例は、分散ファイルを参照する計算機２が決定する場合である。この場合、部分ファイルの配置場所の問い合わせを受けた管理用計算機４は、同じ部分ファイルを格納する複数の計算機１に関する情報を全て計算機２へ送信する。複数の計算機１についての情報を受取った計算機２は、その複数の計算機１から任意に計算機１を選択して部分ファイルの送信要求を発行する。計算機２における計算機１の選択の仕方には、以下のような例が考えられる。
【０１１３】
一つ目は、計算機２が、管理用計算機４から受信した情報に含まれる計算機１全てに部分ファイルの送信要求を出し、最初に応答が返ってきたものを採用する。この場合、計算機２は、その他の計算機１に対しては部分ファイル送信の中止命令を送信する。
【０１１４】
二つ目は、計算機２が、管理用計算機４から受信した情報に含まれる全計算機１から並列して部分ファイルを取得する。具体的には、計算機２は、各々の計算機１に対して、それぞれの部分ファイルのオフセットを指定した取得要求を出す（「部分ファイルの最初の何バイト目から何バイトを送信」という要求を各計算機１に分割して出す）。
【０１１５】
本方法によれば、部分ファイルをより柔軟に計算機システム内の計算機に再配置することができる。
【０１１６】
上述した実施形態によれば、計算機システムは、部分ファイル自体が他の部分ファイルに関する情報を有していなくても、配置規則を満足する計算機１の情報を管理用計算機４から取得するだけで、部分ファイルを重複せずに配置することができる。これにより、計算機システムのセキュリティを確保しつつ、ファイルの分散を行うことが出来る。
【０１１７】
【発明の効果】
本発明によれば、分散ファイルの全ての部分ファイルが特定のサーバへ集まってしまうことを回避し、かつ計算機システムのセキュリティを確保しながら分散ファイルを配置することができる。
【０１１８】
また、複数かつ多様な配置規則を規定し、それらに従って部分ファイルを柔軟に配置することができる。
【図面の簡単な説明】
【図１】本発明の実施形態による計算機システムを示すブロック図である。
【図２】分散ファイル情報管理テーブルの一例を示す図である。
【図３】サーバ情報管理テーブルの一例を示す図である。
【図４】配置規則及び優先度設定情報の一例を示す図である。
【図５】部分ファイルの配置先計算機を選定する処理動作の一例を示すフローチャートである。
【図６】配置規則及び優先度設定情報の一例である。
【図７】部分ファイルの移動先計算機を選定する処理動作の一例を示すフローチャートである。
【図８】配置規則及び優先度設定情報の一例である。
【図９】分散ファイル種類適用規則対応表の例である。
【図１０】分散ファイル情報管理テーブルの一例を示す図である。
【図１１】計算機の構成例を示す図である。
【図１２】部分ファイル情報管理テーブルの例を示す図である。
【図１３】部分ファイル情報管理テーブルのファイル属性情報の例を示す図である。
【図１４】部分ファイルのコピーの可否を示す情報が登録されたテーブルの例を示す図である。
【符号の説明】
１、２…計算機、３…ネットワーク、４…管理用計算機、１４…ストレージ装置。
【図１】
2004280485.tif 000003
【図２】
2004280485.tif 000004
【図３】
2004280485.tif 000005
【図４】
2004280485.tif 000006
【図５】
2004280485.tif 000007
【図６】
2004280485.tif 000008
【図７】
2004280485.tif 000009
【図８】
2004280485.tif 000010
【図９】
2004280485.tif 000011
【図１０】
2004280485.tif 000012
【図１１】
2004280485.tif 000013
【図１２】
2004280485.tif 000014
【図１３】
2004280485.tif 000015
【図１４】
2004280485.tif 000016