(57)【要約】【課題】ファイル入出力における応答性を改善し、スムーズな応答を行うことにより、快適なファイル提供環境を生成する分散型ファイルシステムを提供する。【解決手段】分散型ファイルシステムは、オブジェクトサーバ１０３と、メタサーバ１０２と、クライアント１０１とを備える。クライアント１０１は、メタデータの要求を送信し、第１のレスポンス情報として受信するネットワークＩ／Ｆ１１４と、ファイルの入出力を行うファイル制御部１１１とを備え、メタサーバ１０２は、メタデータを第１のレスポンス情報としてクライアント１０１に送信し、メタデータを第２のレスポンス情報としてオブジェクトサーバ１０３に送信するネットワークＩ／Ｆ１２４を備え、オブジェクトサーバ１０３は、第２のレスポンス情報を受信する第２のメタデータ受信部１３６と、メタデータに対応づけられたファイルに対して予備動作を実行する入出力制御部１３２とを備える。【選択図】図１
2010182011.tif 000002
【特許請求の範囲】
【請求項１】
ファイルを記憶するオブジェクトサーバと、前記ファイルに対応づけられたメタデータを格納するメタサーバと、前記オブジェクトサーバに対して前記ファイルの入出力を行うクライアントと、を備える分散型ファイルシステムであって、
前記クライアントは、
前記メタサーバに対し、前記ファイルの所在情報を示すメタデータの要求を送信するメタデータ要求送信手段と、
前記メタサーバから前記要求に応じて送信されたメタデータを、第１のレスポンス情報として受信する第１のメタデータ受信手段と、
前記第１のメタデータ受信手段によって受信されたメタデータが示す所在情報に対応するファイルを記憶する前記オブジェクトサーバに対し、当該ファイルの入出力を行うファイル入出力手段と、を備え、
前記メタサーバは、
前記メタデータ要求送信手段によって送信された前記要求を受信するメタデータ要求受信手段と、
前記メタデータ要求受信手段によって受信された前記要求に基づいて、当該メタデータを前記第１のレスポンス情報として前記クライアントに送信する第１のメタデータ送信手段と、
前記メタデータ要求受信手段によって受信された前記要求に基づいて、当該メタデータに対応づけられたファイルが記憶されている前記オブジェクトサーバに、当該メタデータを第２のレスポンス情報として送信する第２のメタデータ送信手段と、を備え、
前記オブジェクトサーバは、
前記第２のメタデータ送信手段によって送信された前記第２のレスポンス情報を受信する第２のメタデータ受信手段と、
前記第２のメタデータ受信手段によって受信された前記第２のレスポンス情報に基づいて、当該メタデータに対応づけられたファイルに対して予備動作を実行する予備動作手段と、
を備えることを特徴とする分散型ファイルシステム。
【請求項２】
前記第２のメタデータ送信手段は、
前記第２のレスポンス情報としてのメタデータに対応づけられたファイルの入出力を命令するコマンド情報を、当該第２のレスポンス情報とともに送信し、
前記第２のメタデータ受信手段は、
送信された前記コマンド情報と前記第２のレスポンス情報とを受信して、
前記予備動作手段は、
当該第２のメタデータ受信手段によって受信されたコマンド情報に基づいて、当該メタデータに対応づけられたファイルの入出力動作または先読み動作を実行する
ことを特徴とする請求項１に記載の分散型ファイルシステム。
【請求項３】
前記第２のメタデータ送信手段は、
前記第２のレスポンス情報としてのメタデータに対応づけられたファイルに関連する関連データについて、入出力が行われた履歴を示す実行ログ情報を、当該第２のレスポンス情報とともに送信し、
前記第２のメタデータ受信手段は、
送信された前記実行ログ情報と前記第２のレスポンス情報とを受信して、
前記予備動作手段は、
前記クライアントによる前記ファイル入出力手段の動作が開始する前に、前記実行ログ情報に示された前記関連データの読込みまたは領域確保動作を開始する
ことを特徴とする請求項１または２に記載の分散型ファイルシステム。
【請求項４】
少なくとも第１の前記オブジェクトサーバと、
当該第１のオブジェクトサーバが受信した前記第２のレスポンス情報としてのメタデータに対応づけられた関連ファイルを記憶する第２の前記オブジェクトサーバと、を有し、
前記第１のオブジェクトサーバは、
前記予備動作手段により前記予備動作が実行されると、当該予備動作が実行されたことを示す動作ログ情報を、前記第２のオブジェクトサーバに送信する
ことを特徴とする請求項１ないし３のいずれか１項に記載の分散型ファイルシステム。
【請求項５】
前記第２のオブジェクトサーバは、
前記第１のオブジェクトサーバから送信された動作ログ情報を前記メタデータ受信手段が受信して、
前記第２のオブジェクトサーバの前記予備動作手段は、
当該動作ログ情報に示された前記関連ファイルの読込みまたは領域確保動作を開始する
ことを特徴とする請求項４に記載の分散型ファイルシステム。
【請求項６】
前記オブジェクトサーバは、
前記第２のメタデータ受信手段によって受信された前記第２のレスポンス情報に基づいて、当該メタデータに対応づけられたファイルの少なくとも一部を構成するオブジェクトに対し、前記予備動作の少なくとも一部を構成する特定の実行コマンドを実行するデータ処理手段
を更に備えることを特徴とする請求項１ないし３のいずれか１項に記載の分散型ファイルシステム。
【請求項７】
前記特定の実行コマンドは、
前記オブジェクトに対し、前記予備動作の一部を構成する検索処理または圧縮／伸張処理である
ことを特徴とする請求項６に記載の分散型ファイルシステム。
【請求項８】
ファイルを記憶するオブジェクトサーバと、前記ファイルに対応づけられたメタデータを格納するメタサーバと、前記オブジェクトサーバに対して前記ファイルの入出力を行うクライアントと、を備える分散型ファイル管理方法であって、
前記クライアントが、前記メタサーバに対し、前記ファイルの所在情報を示すメタデータの要求を送信するメタデータ要求送信ステップと、
前記メタサーバが、前記メタデータ要求送信ステップで送信された前記要求を受信するメタデータ要求受信ステップと、
前記メタサーバが、前記メタデータ要求受信ステップで受信された前記要求に基づいて、当該メタデータを第１のレスポンス情報として前記クライアントに送信する第１のメタデータ送信ステップと、
前記メタサーバが、前記メタデータ要求受信ステップで受信された前記要求に基づいて、当該メタデータに対応づけられたファイルが記憶されている前記オブジェクトサーバに、当該メタデータを第２のレスポンス情報として送信する第２のメタデータ送信ステップと、
前記クライアントが、前記第１のメタデータ送信ステップで送信された前記第１のレスポンス情報を受信する第１のメタデータ受信ステップと、
前記オブジェクトサーバが、前記第２のメタデータ送信ステップで送信された前記第２のレスポンス情報を受信する第２のメタデータ受信ステップと、
前記オブジェクトサーバが、前記第２のメタデータ受信ステップで受信された前記第２のレスポンス情報に基づいて、当該メタデータに対応づけられたファイルに対して予備動作を実行する予備動作ステップと、
前記クライアントが、前記第１のメタデータ受信ステップで受信されたメタデータが示す所在情報に対応するファイルを記憶する前記オブジェクトサーバに対し、当該ファイルの入出力を行うファイル入出力ステップと、
を含むことを特徴とする分散型ファイル管理方法。
【請求項９】
前記第２のメタデータ送信ステップは、
前記第２のレスポンス情報としてのメタデータに対応づけられたファイルの入出力を命令するコマンド情報を、当該第２のレスポンス情報とともに送信し、
前記第２のメタデータ受信ステップは、
送信された前記コマンド情報と前記第２のレスポンス情報とを受信して、
前記予備動作ステップは、
当該第２のメタデータ受信ステップで受信されたコマンド情報に基づいて、当該メタデータに対応づけられたファイルの入出力動作または先読み動作を実行する
ことを特徴とする請求項８に記載の分散型ファイル管理方法。
【請求項１０】
前記第２のメタデータ送信ステップは、
前記第２のレスポンス情報としてのメタデータに対応づけられたファイルに関連する関連データについて、入出力が行われた履歴を示す実行ログ情報を、当該第２のレスポンス情報とともに送信し、
前記第２のメタデータ受信ステップは、
送信された前記実行ログ情報と前記第２のレスポンス情報とを受信して、
前記予備動作ステップは、
前記クライアントによる前記ファイル入出力ステップの動作が開始する前に、前記実行ログ情報に示された前記関連データの読込みまたは領域確保動作を開始する
ことを特徴とする請求項８または９に記載の分散型ファイル管理方法。
【請求項１１】
少なくとも第１の前記オブジェクトサーバと、
当該第１のオブジェクトサーバが受信した前記第２のレスポンス情報としてのメタデータに対応づけられた関連ファイルを記憶する第２の前記オブジェクトサーバと、を有し、
前記第１のオブジェクトサーバは、
前記予備動作ステップにより前記予備動作が実行されると、当該予備動作が実行されたことを示す動作ログ情報を、前記第２のオブジェクトサーバに送信する
ことを特徴とする請求項８ないし１０のいずれか１項に記載の分散型ファイル管理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、分散型ファイルシステムおよび分散型ファイル管理方法に関する。
【背景技術】
【０００２】
分散型ファイルシステムでは、ファイルサービスを行うクライアントが、まずメタサーバにファイル管理用メタデータ（以下、これをメタデータという。）を要求する。そして、クライアントは、メタデータを取得して、そのメタデータに基づいて、ファイルサーバであるオブジェクトサーバに対して改めてデータの入出力要求を行う。このように、分散型ファイルシステムでは、クライアントは、２段階の取得処理を行うことによって、データを取得していた。
【０００３】
そして、このような構成を採用することより、分散型ファイルシステムは、オブジェクトサーバの追加などが容易となり、拡張性の高いストレージサービスを提供することができる。
【０００４】
一方、クライアントとメタサーバとの間において、メタデータの送受信が必要となるため、上述した分散型ファイルシステムでは、通常のファイル入出力動作に対して、余計なプロトコルオーバーヘッドが発生していた。また、このようなプロトコルオーバーヘッドの発生を避けるため、メタデータを一時的にキャッシュするなどして、性能改善を行うなどの対策が必要となっていた。
【０００５】
また、メタデータのキャッシュにおいては、ファイルの属性情報などに基づいて、メタデータキャッシュを管理するなどの対策が必要となり、メタサーバの管理が複雑化し、メタサーバの処理負荷が増大を招いていた。
【０００６】
例えば、特許文献１には、分散型のファイルシステムにおいて、メタデータサーバマシン（メタサーバ）に対して、メタデータを要求後にデータサーバマシン（オブジェクトサーバ）にデータを要求するデータ処理システムの記載がある。また、そのメタデータのアクセスのオーバーヘッドを軽減するために、メタデータキャッシュ機構をクライアントマシンに導入し、メタデータキャッシュのヒット率を向上することで、性能を向上させる旨の記載がある。また、その際に、メタデータの属性が類似しているメタデータを検索してキャッシュヒット率の向上を図る方式の記載がある。
【０００７】
図１３は、特許文献１に記載されたデータ処理システムの構成図を示した図である。図１３に示したデータ処理システムでは、メタデータキャッシュの効率を向上するために、メタデータサーバ、すなわちファイルサーバ側でメタデータを検索し、クライアント側にキャッシュする構成が開示されている。
【特許文献１】特開平０７−０７３０８５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
ところで、第一の課題として、一般的な分散型ファイルシステムでは、クライアントの要求に対する応答性が悪かった。なぜなら、一般的な分散型ファイルシステムでは、クライアントがメタサーバに対してファイルの構成情報を示したメタデータを問い合わせた後、実際のデータを保持しているオブジェクトサーバに、データを要求する手順をとる必要があった。そのため、メタデータを送受信する必要があり、送受信プロトコルのオーバーヘッドが発生し、クライアントを介しての入出力要求の応答性が悪くなる、という課題があった。
【０００９】
また、第二の課題として、分散型ファイルシステムの応答性を改善するためには、メタサーバの処理負荷が増大して処理能力が低下する可能性があった。例えば、一般的な分散型ファイルシステムでは、メタサーバにおいて各種のファイル管理データを管理している。そこで、メタデータキャッシュを導入することによって応答性の改善を図る場合には、メタデータに対するアクセスを予め予測して、メタデータを読み出すなどの対策を行う必要が生じるため、メタサーバの負荷が増大する結果となっていた。したがって、メタサーバの処理内容を複雑化せずに、ファイル入出力処理の応答性を改善する、ということが課題であった。
【００１０】
本発明は上記事情に鑑みてなされたものであり、その目的とするところは、分散型ファイルシステムのファイル入出力における応答性を改善し、スムーズな応答を行うことにより、快適なファイル提供環境を生成する分散型ファイルシステムおよび分散型ファイル管理方法を提供することにある。
【課題を解決するための手段】
【００１１】
本発明によれば、ファイルを記憶するオブジェクトサーバと、前記ファイルに対応づけられたメタデータを格納するメタサーバと、前記オブジェクトサーバに対して前記ファイルの入出力を行うクライアントと、を備える分散型ファイルシステムであって、
前記クライアントは、
前記メタサーバに対し、前記ファイルの所在情報を示すメタデータの要求を送信するメタデータ要求送信手段と、
前記メタサーバから前記要求に応じて送信されたメタデータを、第１のレスポンス情報として受信する第１のメタデータ受信手段と、
前記第１のメタデータ受信手段によって受信されたメタデータが示す所在情報に対応するファイルを記憶する前記オブジェクトサーバに対し、当該ファイルの入出力を行うファイル入出力手段と、を備え、
前記メタサーバは、
前記メタデータ要求送信手段によって送信された前記要求を受信するメタデータ要求受信手段と、
前記メタデータ要求受信手段によって受信された前記要求に基づいて、当該メタデータを前記第１のレスポンス情報として前記クライアントに送信する第１のメタデータ送信手段と、
前記メタデータ要求受信手段によって受信された前記要求に基づいて、当該メタデータに対応づけられたファイルが記憶されている前記オブジェクトサーバに、当該メタデータを第２のレスポンス情報として送信する第２のメタデータ送信手段と、を備え、
前記オブジェクトサーバは、
前記第２のメタデータ送信手段によって送信された前記第２のレスポンス情報を受信する第２のメタデータ受信手段と、
前記第２のメタデータ受信手段によって受信された前記第２のレスポンス情報に基づいて、当該メタデータに対応づけられたファイルに対して予備動作を実行する予備動作手段と、
を備えることを特徴とする分散型ファイルシステムが提供される。
【００１２】
本発明によれば、ファイルを記憶するオブジェクトサーバと、前記ファイルに対応づけられたメタデータを格納するメタサーバと、前記オブジェクトサーバに対して前記ファイルの入出力を行うクライアントと、を備える分散型ファイル管理方法であって、
前記クライアントが、前記メタサーバに対し、前記ファイルの所在情報を示すメタデータの要求を送信するメタデータ要求送信ステップと、
前記メタサーバが、前記メタデータ要求送信ステップで送信された前記要求を受信するメタデータ要求受信ステップと、
前記メタサーバが、前記メタデータ要求受信ステップで受信された前記要求に基づいて、当該メタデータを第１のレスポンス情報として前記クライアントに送信する第１のメタデータ送信ステップと、
前記メタサーバが、前記メタデータ要求受信ステップで受信された前記要求に基づいて、当該メタデータに対応づけられたファイルが記憶されている前記オブジェクトサーバに、当該メタデータを第２のレスポンス情報として送信する第２のメタデータ送信ステップと、
前記クライアントが、前記第１のメタデータ送信ステップで送信された前記第１のレスポンス情報を受信する第１のメタデータ受信ステップと、
前記オブジェクトサーバが、前記第２のメタデータ送信ステップで送信された前記第２のレスポンス情報を受信する第２のメタデータ受信ステップと、
前記オブジェクトサーバが、前記第２のメタデータ受信ステップで受信された前記第２のレスポンス情報に基づいて、当該メタデータに対応づけられたファイルに対して予備動作を実行する予備動作ステップと、
前記クライアントが、前記第１のメタデータ受信ステップで受信されたメタデータが示す所在情報に対応するファイルを記憶する前記オブジェクトサーバに対し、当該ファイルの入出力を行うファイル入出力ステップと、
を含むことを特徴とする分散型ファイル管理方法が提供される。
【発明の効果】
【００１３】
本発明によれば、分散型ファイルシステムのファイル入出力における応答性を改善して、スムーズな応答を行うことにより、快適なファイル提供環境を生成する分散型ファイルシステムおよび分散型ファイル管理方法が提供される。
【図面の簡単な説明】
【００１４】
【図１】本発明の第１の実施の形態に係る分散型ファイルシステムの構成を示す構成図である。
【図２】本発明の第１の実施の形態に係るクライアントの処理動作を示したフローチャートである。
【図３】本発明の第１の実施の形態に係るクライアントからメタサーバに送付されるコマンドの例を示した図である。
【図４】本発明の第１の実施の形態に係るメタサーバからクライアントに送付されるレスポンスの例を示した図である。
【図５】本発明の第１の実施の形態に係るメタサーバの処理動作を示したフローチャートである。
【図６】本発明の第１の実施の形態に係るメタデータの例を示した図である。
【図７】本発明の第１の実施の形態に係るオブジェクトサーバの処理動作を示したフローチャートである。
【図８】本発明の第２の実施の形態に係る分散型ファイルシステムの構成を示す構成図である。
【図９】本発明の第２の実施の形態に係るオブジェクトサーバの処理動作を示したフローチャートである。
【図１０】本発明の第３の実施の形態に係る分散型ファイルシステムの構成を示す構成図である。
【図１１】本発明の第３の実施の形態に係るオブジェクトサーバの処理動作を示したフローチャートである。
【図１２】本発明の第３の実施の形態に係るオペレーションコマンドの説明図である。
【図１３】特許文献１に記載されたデータ処理システムの構成を示す構成図である。
【発明を実施するための形態】
【００１５】
（第１の実施の形態）
以下、本発明の実施の形態について、図面を用いて詳細に説明する。尚、すべての図面において、同様な構成要素には同様の符号を付し、適宜説明を省略する。
【００１６】
図１は、第1の実施の形態に係る分散型ファイルシステムの構成図を示した図である。図１に示す分散型ファイルシステムは、ファイルを記憶するオブジェクトサーバと、ファイルに対応づけられたメタデータを格納するメタサーバと、オブジェクトサーバに対してファイルの入出力を行うクライアントと、を備える分散型ファイルシステムである。
【００１７】
クライアント１０１は、メタサーバ１０２に対し、ファイルの所在情報を示すメタデータの要求を送信するメタデータ要求送信部１１５と、メタサーバ１０２から要求に応じて送信されたメタデータを、第１のレスポンス情報として受信する第１のメタデータ受信部１１６と、第１のメタデータ受信部１１６によって受信されたメタデータが示す所在情報に対応するファイルを記憶するオブジェクトサーバ１０３に対し、当該ファイルの入出力を行うファイル制御部（ファイル入出力手段）１１１と、を備えている。
【００１８】
そして、メタデータ要求送信部１１５と、第１のメタデータ受信部１１６は、ネットワークＩ／Ｆ１１４に設けられている。従って、ネットワークＩ／Ｆ１１４は、メタデータ要求送信部１１５の有する機能と、第１のメタデータ受信部１１６の有する機能を持ち合わせている。
【００１９】
メタサーバ１０２は、メタデータ要求送信部１１５によって送信された要求を受信するメタデータ要求受信部１２５と、メタデータ要求受信部１２５によって受信された要求に基づいて、当該メタデータを第１のレスポンス情報としてクライアントに送信する第１のメタデータ送信部１２６と、メタデータ要求受信部１２５によって受信された要求に基づいて、当該メタデータに対応づけられたファイルが記憶されているオブジェクトサーバ１０３に、当該メタデータを第２のレスポンス情報として送信する第２のメタデータ送信部１２７と、を備えている。
【００２０】
そして、メタデータ要求受信部１２５と、第１のメタデータ送信部１２６と、第２のメタデータ送信部１２７は、ネットワークＩ／Ｆ１２４に設けられている。従って、ネットワークＩ／Ｆ１２４は、メタデータ要求受信部１２５の有する機能と、第１のメタデータ送信部１２６の有する機能と、第２のメタデータ送信部１２７の有する機能を持ち合わせている。
【００２１】
オブジェクトサーバ１０３は、第２のメタデータ送信部１２７によって送信された第２のレスポンス情報を受信する第２のメタデータ受信部１３６と、第２のメタデータ受信部１３６によって受信された第２のレスポンス情報に基づいて、当該メタデータに対応づけられたファイルに対して予備動作を開始する入出力制御部（予備動作手段）１３２と、を備えている。
【００２２】
そして、第２のメタデータ受信部１３６は、ネットワークＩ／Ｆ１３４に設けられている。従って、ネットワークＩ／Ｆ１３４は、第２のメタデータ受信部１３６の機能を持ち合わせている。
【００２３】
本実施の形態では、ファイルとは、オブジェクトで構成されていることとする。そして、オブジェクトサーバ１０３は、ファイルもしくはファイルを構成するオブジェクトを保持している。クライアント１０１は、クライアント１０１内に格納されているアプリケーションを実行することによって、オブジェクトサーバ１０３に格納されているファイルまたはオブジェクトの入出力動作を行う。また、メタサーバ１０２は、オブジェクトサーバ１０３が保持しているファイルやオブジェクトを管理する。
【００２４】
ここで、メタデータとは、ファイルやオブジェクトに関する情報であり、例えば、ファイルやオブジェクトが格納されている所在を示す所在情報である。また、メタデータの要求とは、クライアント１０１が、メタサーバ１０２に対して、オブジェクトサーバ１０３に保持されているファイルやオブジェクトの所在情報を要求することをいう。また、第１のレスポンス情報とは、メタデータの要求に対して、メタサーバ１０２からクライアント１０１に送信されるメタデータのことである。また、第２のレスポンス情報とは、メタサーバ１０２において受信されたメタデータの要求に対して、メタサーバ１０２からオブジェクトサーバ１０３に送信されるメタデータのことである。
【００２５】
また、予備動作とは、メタデータに対応づけられたファイルに対して、クライアント１０１から入出力の要求が来る前に、オブジェクトサーバ１０３が、そのファイルの入出力に対して所定の動作を開始することをいう。この所定の動作には、例えば、データやファイルの入出力動作または先読み動作などが該当する。
【００２６】
具体的には、データやファイルの入出力動作は、メタサーバ１０２から送信された第２のレスポンス情報に基づいて、所定のデータ（ファイル）の入出力動作を予め開始することである。この場合、例えば、出力されるべきデータやファイルを検索したり、出力されるべきデータのアドレス値の設定などが該当する。また、先読み動作は、出力されるべきデータに関連づけられたファイルやデータの事前読み出しや、スクリプトファイルの設定などが該当する。
【００２７】
また、入力動作に関しては、書き込むべき領域の確保や関連するデータの検索などが該当する。このように、オブジェクトサーバ１０３は、第２のレスポンス情報に基づいて、クライアント１０１から要求される動作について、予め開始することができる。
【００２８】
本実施の形態では、以上の構成を備えることにより、分散型ファイルシステム全体として、以下のように動作する。
【００２９】
まず、クライアント１０１は、メタサーバ１０２にファイルの所在場所を問合せる。ここで、メタサーバ１０２は、ファイル及びその一部を構成するオブジェクトの所在を管理しているメタデータをデータベース（記憶装置）として保持している。そのため、メタサーバ１０２は、データベースを検索し、問合せのあったファイルのメタデータ（第１のレスポンス情報）をクライアント１０１に送信する。
【００３０】
また、メタサーバ１０２は、メタデータバスＭＢを介して、メタデータ情報（第２のレスポンス情報）を、オブジェクトサーバ１０３に送信する。そして、オブジェクトサーバ１０３は、受信したメタデータ情報（第２のレスポンス情報）に基づいて、予備動作を開始する。クライアント１０１は、受け取ったメタデータ（第１のレスポンス情報）に基づいて、ファイルを保持するオブジェクトサーバ１０３に、ファイルもしくはデータの入出力を要求する。そして、オブジェクトサーバ１０３は、クライアント１０１との間で、ファイルもしくはデータを送受信する。
【００３１】
これにより、本実施の形態では、分散型ファイルシステムのファイルの入出力における応答性を改善し、スムーズな応答を行うことにより、快適なファイル提供環境を生成する分散型ファイルシステムを実現できる。
【００３２】
なお、本実施の形態では、メタデータバスＭＢとして、専用の通信経路を記載しているが、分散型ファイルシステムにおいては、コマンドデータのやり取りを行うチャネル、あるいはネットワークなどと同じ通信経路を使用しても実現できる。
【００３３】
また、図１では、クライアント１０１とオブジェクトサーバ１０３は、それぞれ１台によって構成されているが、これは例示であって、複数台の構成においても同様に適用可能である。
【００３４】
次に、図１に示した分散型ファイルシステムの各構成について、詳細に説明する。
【００３５】
まず、クライアント１０１は、ネットワークＩ／Ｆ１１４と、ファイル制御部１１１と、ユーザーアプリケーション実行部１１０とを備えている。また、ネットワークＩ／Ｆ１１４は、メタデータ要求送信部１１５と、第１のメタデータ受信部１１６とを備えている。
【００３６】
クライアント１０１は、ユーザーアプリケーション実行部１１０が、オブジェクトサーバ１０３に記憶されているファイルの参照を行うためのプログラムを実行する。
【００３７】
このとき行われるファイル参照要求は、プログラムが実行されることによって、ユーザーアプリケーション実行部１１０からファイル制御部１１１に送られる。また、ファイル参照要求は、ファイルの所在を特定した上で、該当するファイルを構成するオブジェクトが記憶されているオブジェクトサーバ１０３へネットワークＩ／Ｆ１１４経由で送られる。このように、クライアント１０１は、ファイルやオブジェクトのファイル参照要求を送付することにより、ファイルの入出力要求をオブジェクトサーバ１０３に送信することができる。
【００３８】
なお、ファイル制御部１１１において、ファイルの所在を特定できる情報を保持していないときは、ネットワークＩ／Ｆ１１４を経由して、ファイルの所在をメタサーバ１０２に問合せる。そして、クライアント１０１は、ファイルの所在情報を示すメタデータをメタサーバ１０２から取得する。そして、クライアント１０１は、取得したメタデータを元に、ファイルの入出力要求を送付する動作を行う。
【００３９】
次に、メタサーバ１０２の構成について説明する。メタサーバ１０２は、ネットワークＩ／Ｆ１２４と、メタデータ管理部１２１と、入出力制御部１２２と、記憶装置１２３とを備えている。また、ネットワークＩ／Ｆ１２４は、メタデータ要求受信部１２５と、第１のメタデータ送信部１２６と、第２のメタデータ送信部１２７とを備えている。
【００４０】
メタサーバ１０２は、ネットワークＩ／Ｆ１２４を経由して受信したファイルの入出力要求に基づいて、メタデータ管理部１２１に、該当するファイルのメタデータの入出力処理を要求する。
【００４１】
記憶装置１２３は、ファイルやデータのメタデータを格納している。
【００４２】
メタデータ管理部１２１では、入出力要求に記述されたファイルＩＤ（identifier）で識別されるファイルのメタデータを、入出力制御部１２２経由で記憶装置１２３から読み出す。そして、メタデータ管理部１２１は、読み出した結果（すなわち第１のレスポンス情報である。）を、ネットワークＩ／Ｆ１２４経由でクライアント１０１に送信する。
【００４３】
ここで、メタデータの記憶装置１２３への格納方法は、通常のデータベース管理と同様に、ファイルＩＤをキーとしてメタデータを取得できる機構であれば良い。また、単純な表形式のデータとして保持する形態であっても構わない。
【００４４】
次に、オブジェクトサーバ１０３の構成について説明する。オブジェクトサーバ１０３は、ネットワークＩ／Ｆ１３４と、データ管理部１３１と、入出力制御部１３２と、記憶装置１３３とを備えている。また、ネットワークＩ／Ｆ１３４は、第２のメタデータ受信部１３６を備えている。
【００４５】
オブジェクトサーバ１０３は、ネットワークＩ／Ｆ１３４経由で受信したオブジェクトの入出力要求に基づいて、データ管理部１３１に、該当するオブジェクトのデータ入出力処理を要求する。
【００４６】
データ管理部１３１は、オブジェクトのデータの読み出し動作の場合には、オブジェクトのデータを入出力制御部１３２経由で記憶装置１３３から読み出す。そして、データ管理部１３１は、読み出された結果を、ネットワークＩ／Ｆ１３４経由でクライアント１０１に送信する。
【００４７】
一方、データ管理部１３１は、データの書き込みの場合には、ネットワークＩ／Ｆ１３４経由でクライアント１０１から書き込むデータを受信した後、入出力制御部１３２経由で記憶装置１３３に書き込みを行う。
【００４８】
ここで、オブジェクトのデータの読み出し動作の場合には、データ管理部１３１は、読み出すオブジェクトのデータを特定する。なお、本実施の形態では、キャッシュやバッファにそのデータをストアしてもよい。また、データを書き込む場合には、書き込み領域の確保を行う。また、読み出し動作および書き込み動作ともにメモリ上にリソースを確保する形態であってもよい。
【００４９】
また、記憶装置１３３へ書き込みを行う方法としては、ディスクの領域管理を行う分散型ファイルシステムでは、オブジェクトＩＤをファイル名として、データエリアをオブジェクトとして管理しても良い。また、オブジェクトは、固定長でも可変長でもよい。また、単に固定長のブロックで管理し、それぞれのインデックスをオブジェクトＩＤとして管理する形態であってもよい。
【００５０】
また、本実施の形態では、データの記憶装置１３３として、主に磁気ディスク装置を想定して記述しているが、これは特に限定されるものではなく、光ディスク、シリコンディスク、コントローラ上のメモリにより代用した記憶装置などであっても適用できる。
【００５１】
次に、第１の実施の形態におけるファイル入出力動作について、図面を用いて説明する。図２は、クライアント１０１のファイル制御部１１１における処理動作を示したフローチャートである。
【００５２】
まず、クライアント１０１は、ユーザーアプリケーション実行部１１０によって、ユーザーアプリケーションが起動する。そして、ユーザーアプリケーション実行部１１０は、ユーザーアプリケーションを動作して、ファイルの入出力要求を発行すると、クライアントコマンド処理が起動される。そして、クライアント１０１は、要求のあったファイルの入出力要求をメタサーバ１０２に発行する（ステップＳ１０１）。
【００５３】
この入出力要求は、例えば、図３に示すように、対象となるファイルを特定するファイルＩＤと、それに対する入出力要求のコマンド、アクセスする位置を与えるｏｆｆｓｅｔ、アクセスする長さを与えるｌｅｎｇｔｈなどから構成される。
【００５４】
ここで、コマンド自体を特定するためのコマンドＩＤや、ハンドルＩＤ、入出力要求を行ったクライアントを識別するクライアントＩＤおよび要求先のメタサーバを識別するメタサーバＩＤなども格納しておく。これらのＩＤは、それぞれを一意に識別するための情報であるが、ハンドルＩＤは、ファイルを操作している間、操作対象のファイルを一意に特定するためのＩＤである。
【００５５】
次に、クライアント１０１は、この入出力要求に対して、メタサーバ１０２からクライアント１０１への応答結果を取得する（ステップＳ１０２）。例えば、図４に示すように、入出力要求コマンドに含まれていた、コマンドＩＤ／ハンドルＩＤ、クライアントＩＤ、サーバＩＤなどに加え、レスポンス結果を格納する。
【００５６】
これらの応答は、必要に応じて大きなデータを伴うため、パラメータとして、後述するようなメタデータを付加する以外に、別途別のブロックをパケットとして返すプロトコルを利用しても良い。
【００５７】
クライアント１０１は、メタサーバ１０２から送信された第１のレスポンスに基づいて、実際のコマンド処理を実行する。具体的には、データの入出力要求のように、メタデータに基づいた入出力処理の要否を判断する（ステップＳ１０３）。
【００５８】
そして、送信された第１のレスポンスがデータの入出力を伴わない場合には（ステップＳ１０３のＮｏ）、そのまま処理を終了する。
【００５９】
一方、送信された第１のレスポンスが、データの入出力処理を伴う場合には（ステップＳ１０３のＹｅｓ）、オブジェクトサーバ１０３への入出力要求を発行する（ステップＳ１０４）。そして、クライアント１０１は、入出力要求に対する入出力結果がオブジェクトサーバ１０３から送信されるのを待ち受け、結果を取得し（ステップＳ１０５）、処理を終了する。以下、クライアントコマンド処理を繰り返すことになる。
【００６０】
次に、メタサーバ１０２のメタデータ管理部１２１における処理動作について、フローチャートを用いて説明する。図５は、メタサーバ１０２のメタデータ管理部１２１における処理動作を示したフローチャートである。
【００６１】
メタサーバ１０２は、クライアント１０１から、ネットワークＩ／Ｆ１２４を経由して、メタデータを要求するコマンドをメタデータ管理部１２１が受信すると（ステップＳ２０１）、メタサーバコマンド処理を起動する。そして、メタデータ管理部１２１は、そのコマンドに含まれる処理要求内容が、Ｏｐｅｎ，Ｃｌｏｓｅなどのファイル管理だけを目的としたコマンドであるか否かを判断する（ステップＳ２０２）。
【００６２】
ここで、ファイル管理だけを目的としたコマンドの場合には（ステップＳ２０２のＹｅｓ）、メタサーバ１０２が保持しているメモリ上のオープン管理テーブルに、対象のファイルのメタデータを記憶装置１２３から読み込む。そして、その対象ファイルを展開し、もしくは書き戻しを実行する（ステップＳ２０９）。そして、ファイル管理の結果に基づいたレスポンスを生成して、ステップＳ２０７に移行する。
【００６３】
一方、ステップＳ２０２において、Ｏｐｅｎ，Ｃｌｏｓｅなどのファイル管理の処理でないと判断された場合には（ステップＳ２０２のＮｏ）、メタデータの取得が必要な処理か否かを判断する（ステップＳ２０３）。もし、メタデータの取得が必要な処理の場合には（ステップＳ２０３のＹｅｓ）、メタデータを取得する動作を実行し（ステップＳ２０６）、ステップＳ２０７に移行する。
【００６４】
ステップＳ２０７において、メタサーバ１０２は、メタデータを含む形態の第１のレスポンス情報を生成し、クライアント１０１に送付する（ステップＳ２０７）。
【００６５】
なお、ここで生成される第１のレスポンス情報は、例えば、図６に示すように、図４のレスポンスに、ファイルのメタデータを付加したメタデータ情報を生成する。ここで、メタデータとしては、ファイルの属性としてのＡｔｔｒｉｂｕｔｅに加え、ファイルを構成するオブジェクトを保持しているＯｂｊｅｃｔ Ｓｅｒｖｅｒ ＩＤ、オブジェクトサーバ１０３内でのオブジェクトを識別するＯｂｊｅｃｔ ＩＤを保持している。また、オブジェクトサーバ１０３内での有効範囲を示すＯｆｆｓｅｔ、ｌｅｎｇｔｈなどの情報も保持している。また、メタサーバ１０２は、メタデータ情報にオブジェクトＩＤとして記載されている関連するオブジェクトサーバ１０３に対して、メタデータを含む同様のレスポンス（第２のレスポンス情報）を送付する（ステップＳ２０８）。
【００６６】
ここで、本実施の形態では、メタサーバ１０２のネットワークＩ／Ｆ１２４は、第２のレスポンス情報としてのメタデータに対応づけられたファイルの入出力を命令するコマンド（コマンド情報）を、第２のレスポンス情報とともに送信するようにしてもよい。すなわち、メタサーバ１０２は、メタデータを含む第２のレスポンス情報に相当するレスポンスを送信するだけでなく、そのメタデータに対するコマンドを併せて送信するようにしてもよい。この場合、送信されるコマンドは、命令されるコマンドに限定されるものではなく、例えば、複数のコマンドをバッチファイルとしてコマンド情報を生成し、そのコマンド情報を送信するようにしてもよい。
【００６７】
また、ネットワークＩ／Ｆ１２４は、第２のレスポンス情報としてのメタデータに対応づけられたファイルに関連する関連データについて、入出力が行われた履歴を示すログ情報（実行ログ情報）を、第２のレスポンス情報とともに送信するようにしてもよい。この関連データのログ情報は、メタデータ管理部１２１の任意の設定により、必要な関連データのログ情報だけ送信するように設定することができる。
【００６８】
ここで、関連データとは、あるファイルを構成するオブジェクトであったり、任意のオブジェクトに関連づけられているオブジェクトや、あるいは関連するファイルなどが該当する。
【００６９】
また、ログ情報とは、例えば、クライアント１０１からメタデータの取得要求があったことを示す履歴情報や、クライアント１０１へ第１のレスポンス情報を送信したことを示す履歴情報などが該当する。また、履歴情報とは、例えば、関連データ名、実行された実行コマンド名、または実行時刻などの情報が該当する。
【００７０】
また、第２のレスポンス情報の送付の際には、メタデータバスＭＢなどの通知専用のバスなどを利用して通知してもよく、もしくはコマンド、レスポンスと同様のネットワークＩ／Ｆ１２４を使用して通知してもよい。
【００７１】
一方、ステップＳ２０３において、メタデータの取得が不要のコマンドの場合には（ステップＳ２０３のＮｏ）、コマンドの処理を実行する（ステップＳ２０４）。そして、メタサーバ１０２は、その処理結果であるレスポンス（第１のレスポンス情報に相当する。）をクライアント１０１に送信し（ステップＳ２０５）、処理を終了する。
【００７２】
次に、オブジェクトサーバ１０３のデータ管理部１３１における処理動作について、フローチャートを用いて説明する。図７は、オブジェクトサーバ１０３のデータ管理部１３１における処理動作を示したフローチャートである。
【００７３】
オブジェクトサーバ１０３のネットワークＩ／Ｆ１３４は、クライアント１０１またはメタサーバ１０２から送信されたコマンドを受信する（ステップＳ３０１）。オブジェクトサーバ１０３は、ネットワークＩ／Ｆ１３４を経由して、データ管理部１３１がコマンドを受信すると、オブジェクトサーバ処理を起動する。
【００７４】
すなわち、ネットワークＩ／Ｆ１３４は、メタサーバ１０２から送信された第２のレスポンス情報を受信する。また、ネットワークＩ／Ｆ１３４は、第２のレスポンス情報としてのメタデータに対応づけられたファイルに関連する関連データについて、入出力が行われた履歴を示すログ情報がある場合には、このログ情報も受信する。
【００７５】
データ管理部１３１は、そのコマンドに含まれる処理要求内容がクライアント１０１とのデータの入出力を伴うコマンドか否かを判断する（ステップＳ３０２）。ここで、データの入出力を伴うコマンドの場合には（ステップＳ３０２のＹｅｓ）、入出力コマンド要求に沿ったデータの入出力を実行し、その結果をクライアント１０１に送信する（ステップＳ３０３）。
【００７６】
すなわち、オブジェクトサーバ１０３の入出力制御部１３２は、データ管理部１３１によって受信されたコマンドに基づいて、当該メタデータに対応づけられたデータ（ファイル）の入出力動作または先読み動作を実行する。
【００７７】
一方、データの入出力を伴うコマンドでない場合には（ステップＳ３０２のＮｏ）、メタサーバ１０２からの入出力コマンド実行に関するログ情報であるため、その入出力コマンド実行の内容を解析する（ステップＳ３０４）。
【００７８】
すなわち、オブジェクトサーバ１０３のデータ管理部１３１は、メタサーバ１０２から送信されたログ情報（実行ログ情報）と第２のレスポンス情報とを受信し、コマンドの内容を解析する。
【００７９】
そして、オブジェクトサーバ１０３の入出力制御部１３２は、クライアント１０１によるファイル制御部１１１の動作が開始する前に、ログ情報に示された関連データの読込みまたは領域確保動作を開始する。
【００８０】
具体的には、データ管理部１３１は、ログ情報に記載されているコマンドについて、時系列に沿ったコマンドの順番で、近い将来に実行されるコマンドと推測する。例えば、クライアント１０１からファイルの入出力の要求を予測したり、他の実行されるであろうコマンドを予測する。
【００８１】
そのため、オブジェクトサーバ１０３のリソースの使用状況などを考慮し、バッファなどのリソースに余裕があると判断されるときには、投機的な実行が可能と判断する（ステップＳ３０５のＹｅｓ）。そして、ログ情報に基づくデータの投機的な読み込み、領域確保動作などの処理動作を開始する（ステップＳ３０６）。
【００８２】
ここで、投機的な実行とは、クライアント１０１によるファイル制御部１１１の動作が開始する前に、ログに示された関連データの読込みまたは領域確保動作を開始することである。これは、クライアント１０１の次の動作を予測して、予測された動作を先行して予め処理を開始することを意味している。また、関連データの読み込みや領域確保動作は、投機的な実行の例示であって、これらに限定されるものではない。
【００８３】
一方、オブジェクトサーバ１０３のリソースの使用状況などを考慮し、バッファなどのリソースに余裕がないと判断されるときには投機的に実行が不可能と判断し（ステップＳ３０５のＮｏ）、そのまま処理を終了する。
【００８４】
以上説明したように本実施の形態によれば、クライアント１０１からオブジェクトサーバ１０３に対してファイルの要求が発生する前に、オブジェクトサーバ１０３は、メタサーバ１０２から第２のレスポンス情報（メタデータ）を受信することができる。そして、オブジェクトサーバ１０３は、通知された第２のレスポンス情報に基づいて、ファイルの入出力に関する入出力動作や読み出し動作などの予備動作を予め開始することができる。
【００８５】
このように、本実施の形態によれば、オブジェクトサーバ１０３が、ファイルデータの入出力に関する入出力動作や読み出し動作を開始することができるので、分散型ファイルシステムの応答性を改善することができる。
【００８６】
また、本実施の形態によれば、オブジェクトサーバ１０３は、クライアント１０１からの次のデータの入出力要求を高い確率で予測することができる。したがって、オブジェクトサーバ１０３は、オブジェクトサーバ１０３上に入出力されるデータ、バッファを確保し、先読み動作用キャッシュにデータを読み込むことができる。これにより、分散型ファイルシステムの応答性を改善することができる。
【００８７】
また、本実施の形態によれば、メタデータに関する関連情報をオブジェクトサーバ間で共有することができるので、メタサーバ１０２の負荷を増大させること無く、分散型ファイルシステムの応答性の改善を実現することができる。
【００８８】
また、本実施の形態によれば、クライアント１０１にメタデータキャッシュ機構を導入しなくても、メタサーバ１０２がメタデータの属性などに基づいた検索動作などの複雑な処理を行うことができるので、メタサーバ１０２の負荷を増大させないで、分散型ファイルシステムの応答性を改善することができる。
【００８９】
（第２の実施の形態）
次に、本発明の第２の実施の形態について図面を参照して詳細に説明する。図８は、第２の実施の形態に係る分散型ファイルシステムの構成図を示した図である。
【００９０】
第１の実施の形態と異なる点は、オブジェクトサーバ３０３を構成する２台のオブジェクトサーバ３０３ａ、３０３ｂが、データ管理部１３１ａ、１３１ｂ内に、メタデータを一時的にキャッシュするメタデータキャッシュ１３５ａ、１３５ｂを備えている点である。また、オブジェクトサーバ３０３ａ、３０３ｂは、メタデータバスＭＢを介して、メタデータの送受信ができる構成となっている。
【００９１】
これらの点以外は、第１の実施の形態と同じであるため、詳細な構成の説明は省略する。また、同一の処理には同一のステップを付し、適宜、説明を省略する。
【００９２】
すなわち、第２の実施の形態では、少なくとも第１のオブジェクトサーバ３０３ａと、当該第１のオブジェクトサーバが受信した第２のレスポンス情報としてのメタデータに対応づけられた関連ファイルを記憶する第２のオブジェクトサーバ３０３ｂと、を有している。
【００９３】
そして、第１のオブジェクトサーバ３０３ａは、入出力制御部１３２ａにより予備動作が実行されると、当該予備動作が実行されたことを示す動作ログ情報を、第２のオブジェクトサーバ３０３ｂに送信することができる。
【００９４】
ここで、動作ログ情報とは、例えば、オブジェクトサーバ３０３ａが予備動作として実行されたコマンド情報、コマンドが開始された時刻、オブジェクトサーバ３０３ａの識別情報またはメタデータなどを含んでいる。但し、動作ログ情報は、これらに限定されるものではなく、必要に応じて、他の動作履歴情報を付加したり、あるいは不要な履歴情報を削除してもよい。
【００９５】
図９は、オブジェクトサーバ３０３ａのデータ管理部１３１ａおよびオブジェクトサーバ３０３ｂのデータ管理部１３１ｂにおける処理動作を示したフローチャートである。
【００９６】
オブジェクトサーバ３０３ａのデータ管理部１３１ａは、クライアント１０１またはメタサーバ１０２から、ネットワークＩ／Ｆ１３４ａを経由してコマンドを受信すると（ステップＳ３０１）、オブジェクトサーバ処理を起動する。
【００９７】
データ管理部１３１ａは、そのコマンドに含まれる処理要求内容がクライアント１０１とのデータの入出力を伴うコマンドか否かを判断する（ステップＳ３０２）。ここで、データの入出力を伴うコマンドの場合には（ステップＳ３０２のＹｅｓ）、入出力コマンド要求に沿ったデータの入出力を実行し、その結果をクライアント１０１に送信する（ステップＳ３０３）。
【００９８】
ここで、第２の実施の形態では、データの入出力処理を実行した際に、この入出力処理の動作ログ情報を、他の関連するオブジェクトサーバ（例えば、オブジェクトサーバ３０３ｂである。）に対して送信する。具体的には、オブジェクトサーバ３０３ａが実行した入出力処理に関連したメタデータが、メタデータキャッシュ１３５ａ、１３５ｂにあるかどうかを判断する（ステップＳ３０７）。
【００９９】
もし、メタデータキャッシュ１３５ａおよび１３５ｂにメタデータが無い場合には（ステップＳ３０７のＮｏ）、データ管理部１３１ａはメタサーバ１０２に要求することにより、メタデータを取得する（ステップＳ３０８）。
【０１００】
そして、データ管理部１３１ａは、このメタデータキャッシュ１３５ａ、１３５ｂ上に取得し、保持されたメタデータをチェックし、今回のコマンドに関連する他の関連するオブジェクトサーバの有無を判断する（ステップ３０９）。本実施の形態では、オブジェクトサーバ３０３ｂがオブジェクトサーバ３０３ａに関連する他のオブジェクトサーバ（関連オブジェクトサーバともいう。）に該当する。
【０１０１】
そこで、他の関連オブジェクトサーバ３０３ｂが存在する場合には（ステップＳ３０９のＹｅｓ）、データ管理部１３１aは、発生した入出力コマンドの動作ログ情報を、他の関連オブジェクトサーバ３０３ｂに対して送付して通知する（ステップＳ３１０）。
【０１０２】
すなわち、オブジェクトサーバ３０３ｂは、オブジェクトサーバ３０３ａから送信された動作ログ情報を、ネットワークＩ／Ｆ１３４ｂを経由して受信する。
【０１０３】
一方、もし、他の関連オブジェクトサーバが存在しない場合には（ステップＳ３０９のＮｏ）、処理を終了する。
【０１０４】
ステップＳ３０２において、入出力コマンドでなかった場合には（ステップＳ３０２のＮｏ）、ステップＳ３０１で受信したコマンドは、メタサーバ１０２からの入出力コマンド実行に関するログ情報であることを意味している。このため、オブジェクトサーバ３０３ａは、ログ情報から入出力コマンド実行の内容を解析する（ステップＳ３０４）。
【０１０５】
ここで、ログ情報に記載されている入出力コマンドは、近い将来に実行されるコマンドと推測されるため、オブジェクトサーバ３０３ａのリソースの使用状況などを考慮して、上述と同様に、投機的に実行が可能か否か判断する（ステップＳ３０５）。そして、投機的な実行が可能な場合には（ステップＳ３０５のＹｅｓ）、ログ情報に基づくデータの投機的な読み込みまたは領域確保動作などを実行する（ステップＳ３０６）。
【０１０６】
すなわち、オブジェクトサーバ３０３ａの入出力制御部１３２ａは、ログ情報に示されたデータ（例えば、関連ファイルなど）の読込みまたは領域確保動作を実行することができる。
【０１０７】
一方、投機的な実行が可能でない場合には（ステップＳ３０５のＮｏ）、そのまま処理を終了する。
【０１０８】
以上説明したように第２の実施の形態によれば、第１のオブジェクトサーバ３０３ａは、入出力制御部１３２ａによって予備動作が実行されると、当該予備動作が実行されたことを示す動作ログ情報を、第２のオブジェクトサーバ３０３ｂに送信することができる。これにより、従来、メタサーバ１０２からオブジェクトサーバ１０３に送信されていた動作ログ情報を、オブジェクトサーバ間で送受信することができるので、メタサーバ１０２の負荷を軽減することができる。
【０１０９】
また、第２の実施の形態において、オブジェクトサーバ３０３ａは、メタサーバ１０２からの入出力コマンド実行に関するログ情報を取得することがある。この場合、オブジェクトサーバ３０３ａは、その入出力コマンド実行の内容を解析することができる。
【０１１０】
これにより、第２の実施の形態によれば、ログ情報に記載された入出力コマンドを解析することにより、リソースの使用状況やバッファを考慮して、ログ情報に基づくデータの投機的な読み込みまたは領域確保動作などを開始することができる。
【０１１１】
（第３の実施の形態）
次に、本発明の第３の実施の形態について図面を参照して詳細に説明する。図１０は、第３の実施の形態に係る分散型ファイルシステムの構成図を示したブロック図である。
【０１１２】
第３の実施の形態の分散型ファイルシステムの構成が第１の実施の形態の構成と異なる点は、オブジェクトサーバ４０３がデータ管理部１３１の指示に基づいて、オブジェクトに対して特定のデータを実行するデータ処理部１３５を備えている点である。このデータ処理部１３５を除いては、第１の実施の形態と同じであるため、詳細な構成の説明は省略する。
【０１１３】
具体的には、オブジェクトサーバ４０３は、ネットワークＩ／Ｆ１３４によって受信された第２のレスポンス情報に基づいて、当該メタデータに対応づけられたファイルの少なくとも一部を構成するオブジェクトに対し、予備動作として特定の実行コマンドを実行するデータ処理部１３５を備えることができる。
【０１１４】
次に、図１０を用いて、第３の実施の形態におけるオブジェクトサーバ４０３のファイル入出力動作について説明する。なお、第１の実施の形態で説明した同一の処理については説明を省略する。
【０１１５】
まず、クライアント１０１のファイル制御部１１１における処理動作について説明する。基本的には、第１の実施の形態と同様の動作となるため、処理動作自体は同じものとなる。ただし、ステップＳ１０２（図２）において取得したメタデータに基づいて、各オブジェクトに対して、情報の加工を指示する場合、図６に示したオブジェクトＩＤ毎に実施すべきオペレーションの設定を行う。そして、オブジェクトサーバ４０３に対するコマンドを生成し直した後、ステップＳ１０４（図２）以降の処理を実施する。以降は、クライアントコマンド処理を繰り返すことになる。
【０１１６】
次に、メタサーバ１０２のメタデータ管理部１２１における処理動作について説明する。基本的には、第１の実施の形態と同様の処理動作となるため、処理動作自体は同じものとなる。ただし、ステップＳ２０６（図５）において実施するコマンド処理内容に基づいて、各オブジェクトに対して、情報の加工を指示する場合、図６に示したオブジェクトＩＤ毎に実施すべきオペレーションの設定を行う。そして、オブジェクトサーバ４０３に対するコマンドを生成し直す。この場合、ステップＳ２０８の処理を実施することになる。以下、メタサーバコマンド処理を繰り返すことになる。
【０１１７】
次に、オブジェクトサーバ４０３のデータ管理部１３１における処理動作について説明する。図１１は、データ管理部１３１の処理動作を示したフローチャートである。
【０１１８】
まず、オブジェクトサーバ４０３のデータ管理部１３１は、ネットワークＩ／Ｆ１３４を経由して、クライアント１０１あるいはメタサーバ１０２からコマンドを受信すると（ステップＳ４０１）、オブジェクトサーバ処理が起動される。データ管理部１３１は、そのコマンドに含まれる処理要求内容が、クライアント１０１とのオペレーションコマンド（特定の実行コマンド）か否かを判断する（ステップＳ４０２）。
【０１１９】
ここで、オペレーションコマンドでない場合には（ステップＳ４０２のＮｏ）、データ管理部１３１は、通常の入出力コマンド要求に沿ったデータの入出力を実行し、その実行結果をネットワークＩ／Ｆ１３４を経由してクライアント１０１に送信する（ステップＳ４０３）。
【０１２０】
ここで、オペレーションコマンドとは、任意のオブジェクトに対する特定の実行コマンドである。例えば、任意のオブジェクトに対し、予備動作の一部を構成する検索処理または圧縮／伸張処理を実行させるコマンドなどが該当する。なお、このオペレーションコマンドは、オブジェクトに限定されるものではなく、ファイルに対して実行してもよい。また、特定の実行コマンドは、検索処理または圧縮／伸張処理に限定されるものではなく、ファイルの展開やオブジェクトの関連づけなどであってもよい。
【０１２１】
一方、メタサーバ１０２やクライアント１０１からのオペレーションコマンドの場合には（ステップＳ４０２のＹｅｓ）、そのコマンドの内容を解析する（ステップＳ４０４）。
【０１２２】
そして、オペレーションコマンドを解析した結果、オブジェクト毎のオペレーションコマンドが実行可能もしくは投機的に実行可能と判断される場合には（ステップＳ４０４のＹｅｓ）、そのオペレーションコマンドによる処理を実行する（ステップＳ４０５）。
【０１２３】
また、他の関連オブジェクトサーバに対応するオペレーションコマンドがある場合には（ステップＳ４０６のＹｅｓ）、他の関連オブジェクトサーバへオペレーションコマンドを送付する（ステップＳ４０７）。以下、オブジェクトサーバ処理を繰り返すことになる。
【０１２４】
図１２は、ある特定のファイルに関連するファイルのファイルＩＤを保持するメタデータの例である。この図１２を参照して、他のファイルとの関連を示すメタデータを、他のオブジェクトサーバにも転送する動作について説明する。
【０１２５】
図１２を参照すると、各ファイルＩＤに続くメタデータは、図６に示した各ファイルを構成するオブジェクトのオブジェクトＩＤなどを保持したメタデータである。第３の実施の形態は、このようなメタデータを採用することにより、第１の実施の形態と第２の実施の形態と同様の構成により、関連するオブジェクトサーバにメタデータを通知することができる。
【０１２６】
以上説明したように第３の実施の形態では、任意のファイルやオブジェクトに対し、オペレーションコマンドを実行することができる。これにより、分散型ファイルシステムでは、任意のファイルやオブジェクトに対してオペレーションコマンドを実行することができるので、詳細な予備動作を設定することができる。
【０１２７】
また、本実施の形態によれば、オペレーションコマンドとして、任意のファイルやオブジェクトに対して検索処理または圧縮／伸張処理を設定することができる。これにより、ファイルの入出力動作以外のときに、予備動作の少なくとも一部を構成する処理を行うことができるので、更なる応答性の改善を図ることができる。
【０１２８】
以上、図面を参照して本発明の実施形態について述べたが、これらは本実施の形態の例示であり、上記以外の様々な構成を採用することもできる。
【０１２９】
第１から第３までの実施の形態では、分散型ファイルシステムを用いて説明したが、本実施の形態はこれに限らず、分散型ファイル管理方法であってもよい。
【０１３０】
例えば、本実施の形態に係る分散型ファイル管理方法は、ファイルを記憶するオブジェクトサーバ１０３と、ファイルに対応づけられたメタデータを格納するメタサーバ１０２と、オブジェクトサーバ１０３に対してファイルの入出力を行うクライアント１０１と、を備える分散型ファイル管理方法であって、クライアント１０１が、メタサーバ１０２に対し、ファイルの所在情報を示すメタデータの要求を送信するメタデータ要求送信ステップと、メタサーバ１０２が、メタデータ要求送信ステップで送信された要求を受信するメタデータ要求受信ステップと、メタサーバ１０２が、メタデータ要求受信ステップで受信された要求に基づいて、当該メタデータを第１のレスポンス情報としてクライアント１０１に送信する第１のメタデータ送信ステップと、メタサーバ１０２が、メタデータ要求受信ステップで受信された要求に基づいて、当該メタデータに対応づけられたファイルが記憶されているオブジェクトサーバ１０３に、当該メタデータを第２のレスポンス情報として送信する第２のメタデータ送信ステップと、クライアント１０１が、メタサーバ１０２から要求に応じて送信されたメタデータを、第１のレスポンス情報として受信する第１のメタデータ受信ステップと、オブジェクトサーバ１０３が、第２のメタデータ送信ステップによって送信された第２のレスポンス情報を受信する第２のメタデータ受信ステップと、オブジェクトサーバ１０３が、第２のメタデータ受信ステップで受信された第２のレスポンス情報に基づいて、当該メタデータに対応づけられたファイルに対して予備動作を実行する予備動作ステップと、クライアント１０１が、第１のメタデータ受信ステップで受信されたメタデータが示す所在情報に対応するファイルを記憶するオブジェクトサーバ１０３に対し、当該ファイルの入出力を行うファイル入出力ステップと、を含むことを特徴とする。
【０１３１】
また、本実施の形態に係る分散型ファイル管理方法は、第２のメタデータ送信ステップが、第２のレスポンス情報としてのメタデータに対応づけられたファイルの入出力を命令するコマンド情報を、当該第２のレスポンス情報とともに送信し、第２のメタデータ受信ステップが、送信されたコマンド情報と第２のレスポンス情報とを受信して、予備動作ステップは、当該第２のメタデータ受信ステップで受信されたコマンド情報に基づいて、当該メタデータに対応づけられたファイルの入出力動作または先読み動作を実行するようにしてもよい。
【０１３２】
また、本実施の形態に係る分散型ファイル管理方法は、第２のメタデータ送信ステップが、第２のレスポンス情報としてのメタデータに対応づけられたファイルに関連する関連データについて、入出力が行われた履歴を示す実行ログ情報を、当該第２のレスポンス情報とともに送信し、第２のメタデータ受信ステップが、送信された実行ログ情報と第２のレスポンス情報とを受信して、予備動作ステップが、クライアント１０１によりファイル入出力ステップの動作が開始される前に、実行ログ情報に示された関連データの読込みまたは領域確保動作を開始するようにしてもよい。
【０１３３】
また、本実施の形態に係る分散型ファイル管理方法は、少なくとも第１のオブジェクトサーバ３０３ａと、当該第１のオブジェクトサーバ３０３ａが受信した第２のレスポンス情報としてのメタデータに対応づけられた関連ファイルを記憶する第２のオブジェクトサーバ３０３ｂと、を有し、第１のオブジェクトサーバ３０３ａは、予備動作ステップで予備動作が実行されると、当該予備動作が実行されたことを示す動作ログ情報を、第２のオブジェクトサーバに送信するようにしてもよい。
【０１３４】
なお、本実施の形態の各種の構成要素は、その機能を実現するように形成されていればよい。例えば、所定の機能を発揮する専用のハードウェア、所定の機能がコンピュータプログラムにより付与されたオブジェクトサーバ、コンピュータプログラムによりオブジェクトサーバに実現された所定の機能、これらの任意の組み合わせ、等として実現することができる。
【０１３５】
また、本実施の形態の各種の構成要素は、個々に独立した存在である必要はない。すなわち、複数の構成要素が一個のデバイスとして形成されていること、一つの構成要素が複数のデバイスで形成されていること、ある構成要素が他の構成要素の一部であること、ある構成要素の一部と他の構成要素の一部とが重複していること、等でもよい。
【０１３６】
また、本実施の形態における処理動作に関しては、複数のステップを順番に記載してあるが、その記載の順番は複数のステップを実行する順番を必ずしも限定するものではない。このため、本実施の形態に係る方法を実施するときには、その複数のステップの順番は内容的に支障しない範囲で変更することができる。
【０１３７】
また、本実施の形態の上記方法の複数のステップは個々に相違するタイミングで実行されることに限定されない。このため、あるステップの実行中に他のステップが発生すること、あるステップの実行タイミングと他のステップの実行タイミングとの一部ないし全部が重複していること、等でもよい。
【０１３８】
また、本実施の形態に係るクライアント１０１、メタサーバ１０２およびオブジェクトサーバ１０３は、情報処理装置によって構成することができる。また、クライアント１０１、メタサーバ１０２およびオブジェクトサーバ１０３は、ＣＰＵ（Central Processing Unit）、ＲＯＭ（Read Only Memory）、ＲＡＭ（Random Access Memory）、Ｉ／Ｆ（Interface）ユニット、等の汎用デバイスで構築されたハードウェア、所定の情報処理を実行するように構築された専用の論理回路、これらの組み合わせ、等として実施することができる。
【符号の説明】
【０１３９】
１０１    クライアント
１０２    メタサーバ
１０３    オブジェクトサーバ
１１０    ユーザーアプリケーション実行部
１１１    ファイル制御部
１１４    ネットワークＩ／Ｆ
１１５    メタデータ要求送信部
１１６    第１のメタデータ受信部
１２１    メタデータ管理部
１２２    入出力制御部
１２３    記憶装置
１２４    ネットワークＩ／Ｆ
１２５    メタデータ要求受信部
１２６    第１のメタデータ送信部
１２７    第２のメタデータ送信部
１３１    データ管理部
１３１ａ    データ管理部
１３１ｂ    データ管理部
１３２    入出力制御部
１３２ａ    入出力制御部
１３２ｂ    入出力制御部
１３３    記憶装置
１３３ａ    記憶装置
１３３ｂ    記憶装置
１３４    ネットワークＩ／Ｆ
１３４ａ    ネットワークＩ／Ｆ
１３４ｂ    ネットワークＩ／Ｆ
１３５    データ処理部
１３５ａ    メタデータキャッシュ
１３５ｂ    メタデータキャッシュ
１３６    第２のメタデータ受信部
１３６ａ    第２のメタデータ受信部
１３６ｂ    第２のメタデータ受信部
３０３ａ    オブジェクトサーバ
３０３ｂ    オブジェクトサーバ
４０３    オブジェクトサーバ
ＭＢ    メタデータバス
【図１】
2010182011.tif 000003
【図２】
2010182011.tif 000004
【図３】
2010182011.tif 000005
【図４】
2010182011.tif 000006
【図５】
2010182011.tif 000007
【図６】
2010182011.tif 000008
【図７】
2010182011.tif 000009
【図８】
2010182011.tif 000010
【図９】
2010182011.tif 000011
【図１０】
2010182011.tif 000012
【図１１】
2010182011.tif 000013
【図１２】
2010182011.tif 000014
【図１３】
2010182011.tif 000015