(57)【要約】【課題】ファイルレベルの仮想化を行う中間装置の処理負荷を軽減する。【解決手段】中間装置が、論理的な公開の単位である共有単位を示す共有情報を含んだオブジェクトＩＤを生成して発行する。共有単位は、二以上のオブジェクトを含んだ論理的な公開の単位である。各共有単位について、共有情報と、その共有単位を管理する装置を示す装置情報とが対応付けられた転送制御情報が用意される。中間装置は、共有情報を含んだオブジェクトＩＤを有する要求データを受信し、転送制御情報から、そのオブジェクトＩＤ中の共有情報に対応した装置情報を特定し、その装置情報が示す装置へ、要求データを転送する。【選択図】図７
2008234568.tif 000002
【特許請求の範囲】
【請求項１】
論理的な公開の単位であり一以上のオブジェクトを包含する複数の共有単位を一つの仮想的な名前空間としてクライアントに提供するファイルレベルの仮想化を行い、クライアントとファイルサーバとの間に論理的に配置される中間装置であって、
共有単位を示す共有情報を含んだオブジェクトＩＤを有する要求データをクライアント又は他の中間装置から受信する要求データ受信部と、
共有情報とその共有情報が示す共有単位を管理するファイルサーバである一以上の末端装置又は中間装置をそれぞれ表す一以上の装置情報とが対応付けられた転送制御情報を参照して、前記受信した要求データが有するオブジェクトＩＤ中の共有情報に対応した一以上の装置情報から一の装置情報を選択し、その選択した装置情報に対応した末端装置又は他の中間装置へ前記要求データを転送する要求転送処理部と、
を備える中間装置。
【請求項２】
前記要求転送処理部は、前記一の装置情報に対応する装置が他の中間装置、又は、共有情報を含んだフォーマットのオブジェクトＩＤの解釈が可能な末端装置であれば、前記要求データをそのまま該他の中間装置又は該末端装置へ転送する、
請求項１記載の中間装置。
【請求項３】
前記転送制御情報には、共有情報を含んだフォーマットのオブジェクトＩＤの解釈が不可能な特定の末端装置に対応した装置情報に、その特定の末端装置とのやり取りにおいてどのような方法でオブジェクトＩＤを変換するかを特定するためのアルゴリズム情報が対応付けられており、
前記要求転送処理部は、前記一の装置情報に対応したアルゴリズム情報を前記転送制御情報から特定し、前記特定したアルゴリズム情報に対応した変換アルゴリズムで、前記要求データに含まれる前記オブジェクトＩＤを変換し、その変換後のオブジェクトＩＤを有した要求データを、前記一の装置情報に対応した特定の末端装置に転送する、
請求項１記載の中間装置。
【請求項４】
前記要求データ中のオブジェクトＩＤに、そのオブジェクトＩＤ中の共有情報に対応した共有単位を管理する末端装置又は中間装置においてオブジェクトを同定するためのオブジェクト固有値が含まれ、
前記要求データの転送に応答して前記末端装置又は他の中間装置からオブジェクトＩＤを含んだ応答データを受信する応答データ受信部と、
前記受信した応答データを前記クライアント又は他の中間装置に送信する応答処理部を更に備え、
前記要求転送処理部は、前記一の装置情報に対応したアルゴリズム情報に対応する変換アルゴリズムに従って、前記要求データが有するオブジェクトＩＤ中の共有情報を除去して、前記一の装置情報に対応した特定の末端装置に、前記変換後のオブジェクトＩＤを有する前記要求データを転送し、
前記応答処理部は、前記特定の末端装置から受信した応答データ中のオブジェクトＩＤに、前記除去した共有情報を含め、その共有情報を含んだそのオブジェクトＩＤを有する応答データを前記クライアント又は他の中間装置に送信する、
請求項３記載の中間装置。
【請求項５】
前記要求転送処理部は、前記要求データが有するオブジェクトＩＤ中の共有情報を除去することに加えて、そのオブジェクトＩＤ中のオブジェクト固有値のサイズを第一のサイズから第二のサイズに拡大する第一の変換処理を行い、サイズ拡大後のオブジェクト固有値をオブジェクトＩＤとして含んだ前記要求データを前記特定の末端装置に送信し、
前記応答処理部は、前記応答データに含まれるオブジェクト固有値のサイズを第二のサイズから第一のサイズに縮小する第二の変換処理を行い、サイズ縮小後のオブジェクト固有値と前記除去された共有情報とを含んだ情報群を前記オブジェクトＩＤとして含んだ前記応答データを、前記クライアント又は他の中間装置に送信する、
請求項４記載の中間装置。
【請求項６】
前記要求データの転送に応答して前記末端装置又は他の中間装置からオブジェクトＩＤを含んだ応答データを受信する応答データ受信部と、
前記受信した応答データを前記クライアント又は他の中間装置に送信する応答処理部を更に備え、
前記応答処理部は、第一の共有単位に含まれる第一のオブジェクトの第一のオブジェクトＩＤと第二の共有単位に含まれ前記第一のオブジェクトと仮想的に同一である第二のオブジェクトの第二のオブジェクトＩＤとの対応関係を示す接続管理情報を参照し、前記受信した応答データ中のオブジェクトＩＤが前記接続管理情報に含まれているか否かを判定し、そのオブジェクトＩＤが前記接続管理情報に含まれている場合、そのオブジェクトＩＤに対応する他のオブジェクトＩＤを取得し、前記応答データに含まれる前記オブジェクトＩＤを前記取得した他のオブジェクトＩＤへ変更する、
請求項１記載の中間装置。
【請求項７】
オブジェクトを管理しそのオブジェクトを利用するためのファイルサービスを提供するオブジェクト管理部を更に備え、
前記要求転送処理部が、前記要求データが有する前記オブジェクトＩＤに含まれている共有情報を用いて前記転送制御情報を参照した場合に、そのオブジェクトＩＤに対応したオブジェクトが前記オブジェクト管理部により管理されていると判断したならば、前記オブジェクト管理部に前記要求データに従うオペレーションを実行させる、
請求項１記載の中間装置。
【請求項８】
アクセスの保留の対象となる共有単位に対応した共有情報を記憶領域に登録する共有情報登録部と、
前記受信した要求データが有するオブジェクトＩＤ中の共有情報に一致する共有情報が前記記憶領域に登録されているか否かの判定を行う保留判定部と、
前記判定の結果が肯定的であれば、前記オブジェクトＩＤに対応したオブジェクトへのアクセスができない旨を示す応答データを生成して前記クライアント又は他の中間装置に送信する応答処理部と
を更に備え、
前記要求転送処理部が、前記判定の結果が否定的であれば、前記転送制御情報を基に、前記要求データの転送を行う、
請求項１記載の中間装置。
【請求項９】
前記共有情報登録部は、マイグレーションの対象として指定された共有単位に対応する共有情報を前記記憶領域に登録する、
請求項８記載の中間装置。
【請求項１０】
仮想的な名前空間の構成の定義に関する名前空間定義情報を基に前記クライアントに前記仮想的な名前空間を提供する名前空間提供部と、
前記名前空間定義情報の更新の要求を受け付ける更新受付部と、
その要求に従い前記名前空間定義情報を更新する第一の更新部と、
前記名前空間定義情報の更新に関わる共有単位のための共有情報を決定する共有情報決定部と、
前記名前空間定義情報の更新に関わる情報と、前記決定された共有情報と、他の中間装置での名前空間定義情報を更新することの要求とを、該他の中間装置に送信する定義情報同期部と、
前記名前空間定義情報の更新を基に前記転送制御情報を前記決定された共有情報を含んだ転送制御情報に更新する第二の更新部と、を更に備える、
請求項１記載の中間装置。
【請求項１１】
仮想的な名前空間の構成の定義に関する名前空間定義情報を基に前記クライアントに前記仮想的な名前空間を提供する名前空間提供部と、
前記名前空間定義情報の更新に関わる情報と、決定された共有情報と、名前空間定義情報を更新することの要求とを受け付ける更新要求受付部と、
受けた要求に応答して、前記名前空間定義情報の更新の要求に従い前記名前空間定義情報を更新する第一の更新部と、
前記名前空間定義情報の更新を基に前記転送制御情報を前記決定された共有情報を含んだ転送制御情報に更新する第二の更新部と、を更に備える、
請求項１記載の中間装置。
【請求項１２】
マイグレーション対象として指定された共有情報に対応する共有単位をアンマウントするアンマウント部、を更に備える、
請求項１記載の中間装置。
【請求項１３】
マイグレーション先として指定された末端装置又は中間装置が自分である場合には、アンマウントされている状態の前記マイグレーション対象の共有単位をマウントするマウント部、を更に備える、
請求項１２記載の中間装置。
【請求項１４】
仮想的な名前空間の構成の定義に関する名前空間定義情報を基に前記クライアントに前記仮想的な名前空間を提供する名前空間提供部と、
前記マイグレーション対象の共有単位のアンマウントとマウントとに関わる、前記名前空間定義情報の更新を実行する第一の更新部と、
前記名前空間定義情報の更新を基に、前記転送制御情報を、前記マイグレーション対象として指定された共有情報と前記マイグレーション先として指定された末端装置又は中間装置に対応した装置情報とが対応付けられた転送制御情報に更新する第二の更新部と、を更に備える、
請求項１２記載の中間装置。
【請求項１５】
仮想的な名前空間の構成の定義に関する名前空間定義情報を基に前記クライアントに前記仮想的な名前空間を提供する名前空間提供部と、
リプリケーション対象の共有単位に関する情報と、リプリケーション先として指定された末端装置又は中間装置に関する情報とを前記名前空間定義情報で対応付ける第一の更新部と、
前記名前空間定義情報の更新を基に、前記転送制御情報において、前記リプリケーション対象として指定された共有情報に対応付けた、前記リプリケーション先として指定された末端装置又は中間装置に対応した装置情報を追加する第二の更新部と、
前記リプリケーション対象の共有単位の複製を前記リプリケーション先として指定された末端装置又は中間装置にマウントさせる要求をその末端装置又は中間装置に送信する複製マウント要求部と、を更に備える、
請求項１記載の中間装置。
【請求項１６】
仮想的な名前空間の構成の定義に関する名前空間定義情報を基に前記クライアントに前記仮想的な名前空間を提供する名前空間提供部と、
リプリケーション対象の共有単位に関する情報と、リプリケーション先として指定された末端装置又は中間装置に関する情報とを前記名前空間定義情報で対応付ける第一の更新部と、
前記名前空間定義情報の更新を基に、前記転送制御情報において、前記リプリケーション対象として指定された共有情報に対応付けた、前記リプリケーション先として指定された末端装置又は中間装置に対応した装置情報を追加する第二の更新部と、
前記リプリケーション対象の共有単位の複製を作成させる複製作成部と、
その共有単位の複製を、前記リプリケーション先として指定された自分にマウントするマウント部と、を更に備える、
請求項１記載の中間装置。
【請求項１７】
クライアントにファイルサービスを提供するファイルサーバシステムであって、
論理的な公開の単位であり一以上のオブジェクトを包含する複数の共有単位を一つの仮想的な名前空間としてクライアントに提供するファイルレベルの仮想化を行い、クライアントとファイルサーバとの間に論理的に配置される中間装置を複数台備え、
各中間装置が、
共有単位を示す共有情報を含んだオブジェクトＩＤを有する要求データをクライアント又は他の中間装置から受信する要求データ受信部と、
共有情報とその共有情報に対応した共有単位を管理するファイルサーバである一以上の末端装置又は中間装置をそれぞれ表す一以上の装置情報とが対応付けられた転送制御情報を参照して、前記受信した要求データが有するオブジェクトＩＤ中の共有情報に対応した一以上の装置情報から一の装置情報を選択し、その選択した装置情報に対応した末端装置又は他の中間装置へ前記要求データを転送する要求転送処理部と、を備える、
ファイルサーバシステム。
【請求項１８】
論理的な公開の単位であり一以上のオブジェクトを包含する複数の共有単位を一つの仮想的な名前空間としてクライアントに提供するファイルレベルの仮想化を行い、クライアントとファイルサーバとの間に論理的に配置される第一の中間装置が、共有単位を示す共有情報を含んだオブジェクトＩＤを有する要求データをクライアント又は第二の中間装置から受信し、
前記第一の中間装置が、共有情報とその共有情報に対応した共有単位を管理するファイルサーバである一以上の末端装置又は中間装置をそれぞれ表す一以上の装置情報とが対応付けられた転送制御情報を参照し、
前記第一の中間装置が、前記受信した要求データが有するオブジェクトＩＤ中の共有情報に対応した一以上の装置情報から一の装置情報を選択し、その選択した装置情報に対応した末端装置又は第三の中間装置へ前記要求データを転送する、
中継方法。
【請求項１９】
前記要求データの転送に応答して前記末端装置又は他の中間装置からオブジェクトＩＤを含んだ応答データを受信する応答データ受信部と、
その受信した応答データが有するオブジェクトＩＤに共有情報が含まれていない場合、前記末端装置又は他の中間装置を表す装置情報に対応した共有情報を転送制御情報から取得し、取得した共有情報を、前記受信した応答データが有するオブジェクトＩＤに含め、共有情報を含んだオブジェクトＩＤを有する応答データを、前記要求データの送信元に送信する応答処理部と
を備える請求項１記載の中間装置。
【請求項２０】
前記クライアントからオブジェクト問合せを受信し、そのオブジェクト問合せで指定されているオブジェクトに固有の値であるオブジェクト固有値と、そのオブジェクトを有する共有単位を示す共有情報とを含んだオブジェクトＩＤを生成し、そのオブジェクトＩＤを前記クライアントに通知するオブジェクトＩＤ通知部、を更に備え、
前記要求データ受信部は、その通知されたオブジェクトＩＤを含んだ要求データを受信する、
請求項１記載の中間装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ファイルレベルの仮想化に関する。
【背景技術】
【０００２】
ファイルサーバとは、一般に、通信ネットワークを通じてファイルサービスを提供する情報処理装置である。ファイルサーバは、利用者が円滑にファイルサービスを利用できるよう、運用管理される必要がある。格納するファイルの増大に伴い、複数のファイルサーバが導入されると、ファイルサーバの運用管理と各ファイルサーバを利用するクライアントの運用管理コストとが増大する。
【０００３】
クライアントの運用管理コストとは、例えばファイルサーバが提供する共有単位（論理的な公開単位）のマウント処理である。新たなファイルサーバが導入されて、共有単位の数が増えれば、それに伴いクライアントで行うマウント作業の回数も増える。このコストを低減するため、複数のファイルサーバが提供する複数の共有単位を一つの名前空間として仮想化する技術、つまり、ファイルレベルの仮想化技術がある。その一つの名前空間は、グローバルネームスペース（GNS）とも呼ばれる。
【０００４】
ファイルレベルの仮想化技術の一つとして、クライアントとファイルサーバとの間に論理的に配置する情報処理装置（以下、「中間装置」）を用いる方法が知られている（例えば特許文献１）。中間装置は、複数のファイルサーバが提供する複数の共有ディレクトリを統合し、擬似的なファイルシステムを構築し、クライアントから所定のファイル等のオブジェクトに対して要求があった場合に、当該オブジェクトが存在するファイルサーバへ要求を転送する処理を行う。
【０００５】
【特許文献１】特開２００３−２０３０２９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
クライアントがファイルサーバへ所望のオブジェクトに対するオペレーションを要求する際、一般に、その所望のオブジェクトを同定するため、オブジェクトＩＤと呼ばれる識別子が使用される。例えば、ファイル共有プロトコルがＮＦＳ（Network File System）の場合は、ファイルハンドルと呼ばれるオブジェクトＩＤが使用される。
【０００７】
オブジェクトＩＤは、ファイルサーバの内部ルールにより生成されるため、複数のファイルサーバの共有ディレクトリを統合した場合は、このオブジェクトＩＤが競合する可能性がある。特許文献１では、ファイルサーバの識別情報とアルゴリズムの識別情報とをオブジェクトＩＤに挿入する事によって、この競合を回避している。
【０００８】
しかし、特許文献１に開示の技術では、中間装置で必ずオブジェクトＩＤの変換を行う必要があるため、中間装置に処理負荷が集中し、中間装置の処理性能がネックとなって、システム全体の性能（クライアントに対する応答性能）が低下してしまうという問題がある。
【０００９】
また、特許文献１に開示の技術では、データをファイルサーバ間で移動するファイルシステムマイグレーションを実行する際、中間装置がオブジェクトＩＤの変換テーブル（移動元と移動先とを対応付けたテーブル）をファイル単位で保持しておく必要がある。従って、中間装置がクライアントからの要求の振り分け先を決定する際に、ファイル数に比例した膨大な数のエントリが登録されたテーブルを参照する必要がある。このため、中間装置の処理負荷が高くなってしまう。
【００１０】
従って、本発明の目的は、ファイルレベルの仮想化を行う中間装置の処理負荷を軽減することにある。
【００１１】
本発明の更なる目的は、後の説明から明らかになるであろう。
【課題を解決するための手段】
【００１２】
クライアントと中間装置との間でやり取りされるオブジェクトＩＤ中に、共有情報が挿入されるようにする。全ての中間装置と一部の末端装置が、オブジェクトＩＤを生成する際、共有情報を含んだオブジェクトＩＤを生成して発行する。少なくとも末端装置はファイルサーバである。中間装置がファイルサーバとしての機能を有している場合、他の中間装置は末端装置となり得る。
【００１３】
共有情報は、論理的な公開の単位である共有単位を示す情報であり、例えば、その共有単位を同定するための識別子（共有ＩＤ）である。共有単位には、一以上のオブジェクト、一般的には二以上のオブジェクトが含まれる。
【００１４】
中間装置の記憶資源に、共有単位毎に転送先装置を表した転送制御情報を記憶させる。転送制御情報は、例えばテーブルであり、共有情報と、転送先装置（中間装置或いは末端装置）に対応した装置情報との対応関係を示す。共有情報と装置情報は、１対１である必要は無く、１対多であっても良い。
【００１５】
中間装置は、オブジェクトＩＤを有する要求データをクライアントから受信し、上記の転送制御情報を参照することで転送先装置を特定し、特定した転送先装置に要求データを転送する。具体的には、中間装置は、そのオブジェクトＩＤ中の共有情報を用いて転送制御情報を参照し、その共有情報に対応した一以上の装置情報から一の装置情報を選択し、選択した一の装置情報から特定される末端装置又は他の中間装置に、要求データを転送する。
【発明を実施するための最良の形態】
【００１６】
一つの実施形態では、中間装置に、要求データ受信部と、要求転送処理部とを備える。要求データ受信部は、共有単位を示す共有情報（例えばＩＤ）を含んだオブジェクトＩＤを有する要求データをクライアント又は他の中間装置から受信する。要求転送処理部は、要求データが有するオブジェクトＩＤ中の共有情報を用いて、転送制御情報を参照する。転送制御情報には、各共有単位について、共有情報と、その共有単位を管理するファイルサーバである一以上の末端装置又は中間装置をそれぞれ表す一以上の装置情報（例えば装置ＩＤ）とが対応付けられている。要求転送処理部は、受信した要求データが有するオブジェクトＩＤ中の共有情報に対応した一以上の装置情報から一の装置情報を選択し、その選択した装置情報に対応した末端装置又は他の中間装置へ、要求データを転送する。
【００１７】
一つの実施形態では、要求転送処理部は、選択した一の装置情報に対応する装置が、他の中間装置、又は、共有情報を含んだフォーマットのオブジェクトＩＤの解釈が可能な末端装置であれば、受信した要求データをそのまま該他の中間装置又は該末端装置へ転送することができる。
【００１８】
一つの実施形態では、転送制御情報には、共有情報を含んだフォーマットのオブジェクトＩＤの解釈が不可能な特定の末端装置に対応した装置情報に、その特定の末端装置とのやり取りにおいてどのような方法でオブジェクトＩＤを変換するかを特定するためのアルゴリズム情報が対応付けられる。要求転送処理部は、選択した一の装置情報に対応したアルゴリズム情報を転送制御情報から特定し、特定したアルゴリズム情報に対応した変換アルゴリズムで、要求データに含まれるオブジェクトＩＤを変換し、その変換後のオブジェクトＩＤを有した要求データを、選択した一の装置情報に対応した特定の末端装置に転送することができる。
【００１９】
一つの実施形態では、要求データ中のオブジェクトＩＤに、そのオブジェクトＩＤ中の共有情報に対応した共有単位を管理する末端装置又は中間装置においてオブジェクトを同定するためのオブジェクト固有値が含まれる。中間装置は、更に、要求データの転送に応答して末端装置又は他の中間装置からオブジェクトＩＤを含んだ応答データを受信する応答データ受信部と、受信した応答データをクライアント又は他の中間装置に送信する応答処理部とを備えることができる。要求転送処理部は、選択した一の装置情報に対応したアルゴリズム情報に対応する変換アルゴリズムに従って、要求データが有するオブジェクトＩＤ中の共有情報を除去して、特定の末端装置に、変換後のオブジェクトＩＤを有する要求データを転送することができる。応答処理部は、特定の末端装置から受信した応答データ中のオブジェクトＩＤに、上記除去した共有情報を含め、その共有情報を含んだそのオブジェクトＩＤを有する応答データをクライアント又は他の中間装置に送信することができる。この実施形態では、例えば、オブジェクトＩＤのサイズが固定長であっても可変長であっても良い。
【００２０】
一つの実施形態では、要求転送処理部は、要求データが有するオブジェクトＩＤ中の共有情報を除去することに加えて、そのオブジェクトＩＤ中のオブジェクト固有値のサイズを第一のサイズから第二のサイズに拡大する第一の変換処理を行い、サイズ拡大後のオブジェクト固有値をオブジェクトＩＤとして含んだ前記要求データを前記特定の末端装置に送信することができる。応答処理部は、応答データに含まれるオブジェクト固有値のサイズを第二のサイズから第一のサイズに縮小する第二の変換処理を行い、サイズ縮小後のオブジェクト固有値と前記除去された共有情報とを含んだ情報群を前記オブジェクトＩＤとして含んだ応答データを、クライアント又は他の中間装置に送信することができる。この実施形態では、例えば、オブジェクトＩＤのサイズが固定長である。
【００２１】
一つの実施形態では、中間装置が、更に、要求データの転送に応答して末端装置又は他の中間装置からオブジェクトＩＤを含んだ応答データを受信する応答データ受信部と、受信した応答データをクライアント又は他の中間装置に送信する応答処理部とを備える。応答処理部は、第一の共有単位に含まれる第一のオブジェクトの第一のオブジェクトＩＤと第二の共有単位に含まれ前記第一のオブジェクトと仮想的に同一である第二のオブジェクトの第二のオブジェクトＩＤとの対応関係を示す接続管理情報を参照し、受信した応答データ中のオブジェクトＩＤがその接続管理情報に含まれているか否かを判定し、そのオブジェクトＩＤがその接続管理情報に含まれている場合、そのオブジェクトＩＤに対応する他のオブジェクトＩＤを取得し、応答データに含まれるオブジェクトＩＤをその取得した他のオブジェクトＩＤへ変更することができる。
【００２２】
一つの実施形態では、中間装置は、オブジェクトを管理しそのオブジェクトを利用するためのファイルサービスを提供するオブジェクト管理部を更に備えることができる。要求転送処理部が、要求データが有するオブジェクトＩＤに含まれている共有情報を用いて転送制御情報を参照した場合に、そのオブジェクトＩＤに対応したオブジェクトがオブジェクト管理部により管理されていると判断したならば、オブジェクト管理部に要求データに従うオペレーションを実行させることができる。ここで、そのオブジェクトＩＤに対応したオブジェクトがオブジェクト管理部により管理されているとの判断は、例えば、転送制御情報に、その共有情報と対応する装置情報が含まれていない場合や、装置情報が自分を表している場合に、行われて良い。要求データに従うオペレーションとしては、例えば、自分が管理するオブジェクトに対する更新（ライト）又は参照（リード）とすることができる。
【００２３】
一つの実施形態では、中間装置は、更に、アクセスの保留の対象となる共有単位に対応した共有情報を記憶領域に登録する共有情報登録部と、受信した要求データが有するオブジェクトＩＤ中の共有情報に一致する共有情報が記憶領域に登録されているか否かの判定を行う保留判定部と、判定の結果が肯定的であれば（つまり登録されていると判定されたならば）、オブジェクトＩＤに対応したオブジェクトへのアクセスができない旨を示す応答データを生成してクライアント又は他の中間装置に送信する応答処理部とを備えることができる。要求転送処理部は、上記判定の結果が否定的であれば、転送制御情報を基に、要求データの転送を行うことができる。
【００２４】
一つの実施形態では、共有情報登録部は、マイグレーションの対象として指定された共有単位に対応する共有情報を記憶領域に登録することができる。
【００２５】
一つの実施形態では、中間装置は、更に、名前空間定義情報の更新の要求に従い名前空間定義情報を更新する第一の更新部と、名前空間定義情報の更新を基に、転送制御情報を、決定された共有情報を含んだ転送制御情報に更新する第二の更新部と備えることができる。中間装置は、更に、仮想的な名前空間の構成の定義に関する名前空間定義情報の更新の要求を受け付ける更新受付部と、名前空間定義情報の更新に関わる共有単位のための共有情報を決定する共有情報決定部と、名前空間定義情報の更新に関わる情報と、決定された共有情報と、他の中間装置での名前空間定義情報を更新することの要求とを、該他の中間装置に送信する定義情報同期部とを備えることもできる。
【００２６】
一つの実施形態では、中間装置は、マイグレーション対象として指定された共有情報に対応する共有単位をアンマウントするアンマウント部を更に備えることができる。また、中間装置は、マイグレーション先として指定された末端装置又は中間装置が自分である場合には、アンマウントされている状態の前記マイグレーション対象の共有単位をマウントするマウント部、を更に備えることができる。第一の更新部は、マイグレーション対象の共有単位のアンマウントとマウントとに関わる、名前空間定義情報の更新を実行することができる。第二の更新部は、名前空間定義情報の更新を基に、転送制御情報を、マイグレーション対象として指定された共有情報とマイグレーション先として指定された末端装置又は中間装置に対応した装置情報とが対応付けられた転送制御情報に更新することができる。
【００２７】
一つの実施形態では、第一の更新部は、リプリケーション対象の共有単位に関する情報と、リプリケーション先として指定された末端装置又は中間装置に関する情報とを前記名前空間定義情報で対応付けることができる。第二の更新部は、名前空間定義情報の更新を基に、前記転送制御情報を、リプリケーション対象として指定された共有情報にリプリケーション先として指定された末端装置又は中間装置に対応した装置情報とが対応付けられた転送制御情報に更新することができる。中間装置は、更に、リプリケーション対象の共有単位の複製をリプリケーション先として指定された末端装置又は中間装置にマウントさせる要求をその末端装置又は中間装置に送信する複製マウント要求部を更に備えることができる。中間装置は、リプリケーション対象の共有単位の複製を作成させる複製作成部と、その共有単位の複製を、リプリケーション先として指定された自分にマウントするマウント部とをさらに備えることができる。
【００２８】
一つの実施形態では、中間装置は、応答データ受信部と、応答処理部とをさらに備えることができる。応答データ受信部は、要求データの転送に応答して末端装置又は他の中間装置からオブジェクトＩＤを含んだ応答データを受信することができる。応答処理部は、その受信した応答データが有するオブジェクトＩＤに共有情報が含まれていない場合、末端装置又は他の中間装置を表す装置情報に対応した共有情報を転送制御情報から取得し、取得した共有情報を、受信した応答データが有するオブジェクトＩＤに含め、共有情報を含んだオブジェクトＩＤを有する応答データを、要求データの送信元に送信することができる。
【００２９】
一つの実施形態では、中間装置は、オブジェクトＩＤ通知部を更に備えることができる。オブジェクトＩＤ通知部は、クライアントからオブジェクト問合せを受信し、そのオブジェクト問合せで指定されているオブジェクトに固有の値であるオブジェクト固有値と、そのオブジェクトを有する共有単位を示す共有情報とを含んだオブジェクトＩＤを生成し、そのオブジェクトＩＤを前記クライアントに通知することができる。要求データ受信部は、その通知されたオブジェクトＩＤを含んだ要求データを受信することができる。
【００３０】
上述した各部（要求データ受信部、要求転送処理部、応答データ受信部、応答処理部など）は、ハードウェア、コンピュータプログラム又はそれらの組み合わせ（例えば一部をコンピュータプログラムにより実現し残りをハードウェアで実現すること）により構築することができる。コンピュータプログラムは、所定のプロセッサに読み込まれて実行される。また、コンピュータプログラムがプロセッサに読み込まれて行われる情報処理の際、適宜に、メモリ等のハードウェア資源上に存在する記憶域が使用されてもよい。また、コンピュータプログラムは、ＣＤ−ＲＯＭ等の記録媒体から計算機にインストールされてもよいし、通信ネットワークを介して計算機にダウンロードされてもよい。
【００３１】
以下、本発明の幾つかの実施形態について、図面を参照して詳細に説明する。
【００３２】
＜第一の実施形態＞。
【００３３】
図１は、本発明の第一の実施形態に係る中間装置を備えたコンピュータシステムの構成例を示す図である。
【００３４】
少なくとも１つのクライアント１００と、少なくとも１つの中間装置２００と、少なくとも１つの末端装置３００とが、通信ネットワーク（例えばＬＡＮ（Local Area Network））１００に接続される。末端装置３００が一つも無くても良い。
【００３５】
末端装置３００は、クライアント１００に、ファイルの作成や削除、ファイルの読出しや書込み、ファイルの移動等のファイルサービスを提供するファイルサーバである。
【００３６】
クライアント１００は、末端装置３００又は中間装置２００が提供するファイルサービスを利用する装置である。
【００３７】
中間装置２００は、クライアント１００と末端装置３００との中間に位置し、クライアント１００から末端装置３００への要求と、末端装置３００からクライアント１００への応答とを中継する。クライアント１００から中間装置２００および末端装置３００への要求は、何らかの処理（例えば、ファイルやディレクトリ等のオブジェクトの取得等）を要求するメッセージ信号であり、中間装置２００および末端装置３００からクライアント１００への応答は、要求に対して応答するメッセージ信号である。なお、中間装置２００は、クライアント１００と末端装置３００との通信を中継するように、それらの間に論理的に位置すればよい。クライアント１００、中間装置２００および末端装置３００が同一の通信ネットワーク１０１に接続されているが、論理的には、中間装置２００は、各クライアント１００と各末端装置３００との間に配置されており、クライアント１００と末端装置３００との通信を中継する。
【００３８】
中間装置２００は、要求や応答の中継機能のみならず、クライアント１００にファイルサービスを提供するファイルサーバ機能も具備する。中間装置２００は、ファイルサービスを提供する際、仮想化された名前空間を構築して、その仮想的な名前空間をクライアント１００に提供する。仮想的な名前空間は、複数の中間装置２００や末端装置３００のファイルシステムのうち、共有可能な全部又は一部を統合して、単一の擬似的なファイルシステムとしたものである。具体的には、例えば、或る装置２００又は３００が管理するファイルシステム（ディレクトリツリー）の一部（Ｘ）と他の装置２００又は３００が管理するファイルシステム（ディレクトリツリー）の一部（Ｙ）とが共有可能であった場合に、中間装置２００は、ＸとＹとを含んだ単一の擬似的なファイルシステム（ディレクトリツリー）を構築して、クライアント１００に提供することができる。この場合のＸとＹとを含んだ単一の擬似的なファイルシステム（ディレクトリツリー）が、仮想化された名前空間である。仮想化された名前空間は、一般的に、ＧＮＳ（グローバルネームスペース）と呼ばれる。そのため、以下の説明において、仮想化された名前空間を「ＧＮＳ」と呼ぶこともある。一方、中間装置２００や末端装置３００の各々が管理しているファイルシステムを、「ローカルファイルシステム」と呼ぶことがある。特に、例えば、中間装置２００にとって、その中間装置２００で管理されているローカルファイルシステムのことを、「自ローカルファイルシステム」と呼び、他の中間装置２００又は末端装置３００で管理されているローカルファイルシステムは、「他ローカルファイルシステム」と呼ぶことがある。
【００３９】
また、以下の説明において、ローカルファイルシステムの全部又は一部であり共有可能な部分（上記の例では、ＸとＹ）を、すなわち、ローカルファイルシステムの論理的な公開単位を、「共有単位」と呼ぶことがある。この実施形態では、各共有単位に、共有単位を同定するための識別子である共有ＩＤが割当てられ、中間装置２００は、共有ＩＤを利用することにより、クライアント１００からのファイルアクセス要求の転送を行うことができる。共有単位には、一以上のオブジェクト（例えばディレクトリやファイル）が含まれる。
【００４０】
また、この実施形態では、複数の中間装置２００の中の一つが他の中間装置２００を制御することができる。以下、その一つの中間装置２００を「親中間装置２００ｐ」と呼び、親中間装置によって制御される中間装置２００を「子中間装置２００ｃ」と呼ぶ。この親子関係は、様々な方法により決定される。例えば、最初に起動された中間装置２００を親中間装置と決定し、その後に起動された中間装置２００を子中間装置２００ｃと決定することができる。親中間装置２００ｐは、例えば、マスタ中間装置或いはサーバ中間装置と呼ばれてもよいし、子中間装置２００ｃは、例えば、スレイブ中間装置或いはクライアント中間装置と呼ばれても良い。
【００４１】
図２は、中間装置２００の構成例を示すブロック図である。
【００４２】
中間装置２００は、少なくとも１つのプロセッサ（例えばＣＰＵ）２０１と、メモリ２０２と、メモリ２０２に対する入出力のバスであるメモリ-入出力バス２０４と、メモリ２０２、記憶装置２０６及び通信ネットワーク１０１に対する入出力を制御する入出力コントローラ２０５と、記憶装置２０６とを備える。メモリ２０２は、プロセッサ２０１に実行されるコンピュータプログラムとして、例えば、構成情報管理プログラム４００、スイッチプログラム６００及びファイルシステムプログラム２０３を記憶する。記憶装置２０６は、一以上の物理的な記憶装置（例えばハードディスク或いはフラッシュメモリ等）の記憶空間を基に形成された論理的な記憶装置（論理ボリューム）であっても良いし、物理的な記憶装置であっても良い。記憶装置２０６は、ファイル等のデータを管理する少なくとも１つのファイルシステム２０７を備える。ファイルシステムプログラム２０３がプロセッサ２０１で実行されることにより、ファイルシステム２０７に対するファイルの格納や、ファイルシステム２０７からのファイルの読出しを行うことができる。以下、コンピュータプログラムが主語になる場合は、実際にはそのコンピュータプログラムを実行するプロセッサによって処理が行われるものとする。
【００４３】
構成情報管理プログラム４００は、中間装置２００が親中間装置２００ｐとしても子中間装置２００ｃとしても振舞うことができるよう構成されている。以下、中間装置２００を親中間装置２００ｐとして振舞わせる場合の構成情報管理プログラム４００を「親構成情報管理プログラム４００ｐ」と表記し、子中間装置２００ｃとして振舞わせる場合の構成情報管理プログラム４００を「子構成情報管理プログラム４００ｃ」と表記する。構成情報管理プログラム４００は、親中間装置２００ｐ及び子中間装置２００ｃとしてのいずれかのみに振舞うよう構成されていても良い。構成情報管理プログラム４００及びスイッチプログラム６００の詳細については、後述する。
【００４４】
図３は、末端装置３００の構成例を示すブロック図である。
【００４５】
末端装置３００は、少なくとも１つのプロセッサ３０１と、メモリ３０２と、メモリ−入出力バス３０４と、入出力コントローラ３０５と、記憶装置３０６とを備える。メモリ３０２は、ファイルシステムプログラム３０３を備える。同図には記載されていないが、メモリ３０２は、さらに構成情報管理プログラム４００を備えていてもよい。記憶装置３０６は、ファイルシステム３０７を記憶する。
【００４６】
これらの構成要素は、中間装置２００における同一名の構成要素とそれぞれ基本的に同一であるので、説明を省略する。なお、記憶装置３０６は、末端装置３００の外に存在してもよい。すなわち、プロセッサ３０１を有する末端装置３００と、記憶装置３０６とが、分かれていても良い。
【００４７】
図４は、親構成情報管理プログラム４００ｐの構成例を示すブロック図である。
【００４８】
親構成情報管理プログラム４００ｐは、ＧＮＳ構成情報管理サーバ部４０１ｐと、中間装置情報管理サーバ部４０３と、構成情報通信部４０４とを備え、共有ＩＤ空き管理リスト４０２と、中間装置構成情報リスト４０５と、ＧＮＳ構成情報テーブル１２００ｐとを参照する機能を有する。リスト４０２及び４０５や、ＧＮＳ構成情報テーブル１２００ｐは、メモリ２０２に記憶されていて良い。
【００４９】
ＧＮＳ構成情報テーブル１２００ｐは、クライアント２００に提供するＧＮＳの構成の定義が記録されたテーブルである。ＧＮＳ構成情報テーブル１２００ｐの詳細については、後述する。
【００５０】
共有ＩＤ空き管理リスト４０２は、現在割当てることができる共有ＩＤを管理するための電子的なリストである。共有ＩＤ空き管理リスト４０２には、例えば、現在利用されていない共有ＩＤが登録されてもよいし、反対に、現在利用されている共有ＩＤが登録されてもよい。
【００５１】
中間装置構成情報リスト４０５は、一以上の中間装置２００の各々に関する情報（例えば、中間装置２００を同定するためのＩＤ）が登録される電子的なリストである。
【００５２】
図５は、子構成情報管理プログラム４００ｃの構成例を示すブロック図である。
【００５３】
子構成情報管理プログラム４００ｃは、ＧＮＳ構成情報管理クライアント部４０１ｃと、構成情報通信部４０４とを備え、ＧＮＳ構成情報テーブルキャッシュ１２００ｃに情報を登録する機能を有する。
【００５４】
ＧＮＳ構成情報テーブルキャッシュ１２００ｃは、例えば、メモリ２０２（或いはプロセッサ２０１のレジスタ）に用意される。このキャッシュ１２００ｃには、ＧＮＳ構成情報テーブル１２００ｐと、基本的に同じ内容の情報が登録される。具体的には、親構成情報管理プログラム４００ｐは、ＧＮＳ構成情報テーブル１２００ｐの内容を子中間装置２００ｃへ通知し、子中間装置２００ｃの子構成情報管理プログラム４００ｃは、その通知された内容を、ＧＮＳ構成情報テーブルキャッシュに登録する。
【００５５】
図６は、スイッチプログラム６００の構成例を示すブロック図である。
【００５６】
スイッチプログラム６００は、クライアント通信部６０６と、中間・末端装置通信部６０５と、ファイルアクセス管理部７００と、オブジェクトＩＤ変換処理部６０４と、擬似ファイルシステム６０１とを備える。
【００５７】
クライアント通信部６０６は、クライアント１００からの要求（以下、「要求データ」と呼ぶこともある）を受信し、受信した要求データをファイルアクセス管理部７００に通知する。また、クライアント通信部６０６は、ファイルアクセス管理部７００から通知された、クライアント１００からの要求データに対する応答（以下、「応答データ」と呼ぶこともある）を、クライアント１００へ送信する。
【００５８】
中間・末端装置通信部６０５は、ファイルアクセス管理部７００から出力されたデータ（クライアント１００からの要求データ）を、中間装置２００または末端装置３００へ送信する。また、中間・末端装置通信部４０５は、中間装置２００または末端装置３００からの応答データを受信し、受信した応答データをファイルアクセス管理部７００へ通知する。
【００５９】
ファイルアクセス管理部７００は、クライアント通信部６０６から通知された要求データを解析し、その要求データの処理方法を決定する。そして、決定された処理方法に基づいて、ファイルアクセス管理部７００は、中間・末端装置通信部６０５へその要求データを通知する。また、ファイルアクセス管理部７００は、クライアント１００からの要求が自分自身の有するファイルシステム２０７（自ローカルファイルシステム）に対する要求である場合、応答データを生成し、その応答データをクライアント通信部６０６へ通知する。ファイルアクセス管理部７００の詳細については、後述する。
【００６０】
オブジェクトＩＤ変換処理部６０４は、クライアント１００から受信した要求データに含まれるオブジェクトＩＤを、末端装置３００が認識できる形式に変換し、また、末端装置３００から受信した応答データに含まれるオブジェクトＩＤを、クライアント１００が認識できる形式に変換する。この変換は、後述するアルゴリズム情報に基づいて行われる。
【００６１】
擬似ファイルシステム６０１は、中間装置２００や末端装置３００のファイルシステムデータ２０７の全部又は一部を統合して、単一の擬似的なファイルシステムとしたものである。例えば、擬似ファイルシステム６０１には、ルートディレクトリ及び所定のディレクトリが構成され、擬似ファイルシステム６０１は、その所定のディレクトリに、中間装置２００や末端装置３００が管理するディレクトリをマッピングすることにより、作成される。
【００６２】
図７は、ファイルアクセス管理部７００の構成例を示すブロック図である。
【００６３】
ファイルアクセス管理部７００は、要求データ解析部７０２と、要求データ処理部７０１と、応答データ出力部７０３とを備え、スイッチ情報管理テーブル８００と、サーバ情報管理テーブル９００と、アルゴリズム情報管理テーブル１０００と、接続ポイント管理テーブル１１００と、アクセス保留共有ＩＤリスト７０４とを参照する機能を有する。
【００６４】
スイッチ情報管理テーブル８００、サーバ情報管理テーブル９００、アルゴリズム情報管理テーブル１０００及び接続ポイント管理テーブル１１００については、後述する。
【００６５】
アクセス保留共有ＩＤリスト７０４は、アクセスが保留されている共有ＩＤが登録される電子的なリストである。例えば、マイグレーションの準備中又は実施中に、マイグレーションの対象となっている共有単位の共有ＩＤが、アクセス保留共有ＩＤリスト７０４に登録され、その登録された共有単位にあるオブジェクトへのアクセスが保留される。
【００６６】
要求データ解析部７０２は、クライアント通信部６０６から通知された要求データを解析する。そして、要求データ解析部７０２は、通知された要求データからオブジェクトＩＤを取得し、そのオブジェクトＩＤから、共有ＩＤを取得する。
【００６７】
要求データ処理部７０１は、要求データ解析部７０２が取得した共有ＩＤに基づいて、スイッチ情報管理テーブル８００と、サーバ情報管理テーブル９００と、アルゴリズム情報管理テーブル１０００と、接続ポイント管理テーブル１１００と、アクセス保留共有ＩＤリスト７０４とのうちの任意の情報を参照し、要求データを処理する。
【００６８】
応答データ出力部７０３は、要求データ処理部７０１から通知された応答データをクライアント１００が応答可能な形式にして、クライアント通信部６０６へ出力する。
【００６９】
図８は、スイッチ情報管理テーブル８００の構成例を示す図である。
【００７０】
スイッチ情報管理テーブル８００は、共有ＩＤ８０１と、サーバ情報ＩＤ８０２と、アルゴリズム情報ＩＤ８０３との組によって構成されたエントリを有するテーブルである。共有ＩＤ８０１は、共有単位を同定するためのＩＤである。サーバ情報ＩＤ８０２は、サーバ情報を同定するためのＩＤである。アルゴリズム情報ＩＤ８０３は、アルゴリズム情報を同定するためのＩＤである。中間装置２００は、オブジェクトＩＤから取得された共有ＩＤに一致する共有ＩＤ８０１に対応したサーバ情報ＩＤ８０２及びアルゴリズム情報ＩＤ８０３を取得することができる。本テーブル８００には、一つの共有ＩＤ８０１に対して複数のサーバ情報ＩＤ８０２及びアルゴリズム情報ＩＤ８０３の組が登録されても良い。
【００７１】
図９は、サーバ情報管理テーブル９００の構成例を示す図である。
【００７２】
サーバ情報管理テーブル９００は、サーバ情報ＩＤ９０１とサーバ情報９０２との組によって構成されたエントリを有するテーブルである。サーバ情報９０２は、例えば、中間装置２００又は末端装置３００のＩＰアドレスや、ソケット構造体などである。中間装置２００は、取得されたサーバ情報ＩＤ７０２に一致するサーバ情報ＩＤ９０１に対応したサーバ情報９０２を取得し、そのサーバ情報９０２から、クライアント１００からの要求の処理先（例えば転送先）を特定することできる。
【００７３】
図１０は、アルゴリズム情報管理テーブル１０００の構成例を示す図である。
【００７４】
アルゴリズム情報管理テーブル１０００は、アルゴリズム情報ＩＤ１００１と、アルゴリズム情報１００２との組によって構成されたエントリを有するテーブルである。アルゴリズム情報１００２は、オブジェクトＩＤの変換方式を示す情報である。中間装置２００は、取得されたアルゴリズム情報ＩＤ１００１に一致するアルゴリズム情報ＩＤ１００１に対応したアルゴリズム情報１００２を取得し、そのアルゴリズム情報１００２から、オブジェクトＩＤをどのように変換するかを特定することができる。
【００７５】
なお、本実施形態では、スイッチ情報管理テーブル８００とサーバ情報管理テーブル９００とアルゴリズム情報管理テーブル１０００は、別々のテーブルとして構成されたが、スイッチ情報管理テーブル８００に、サーバ情報９０２とアルゴリズム情報１００２とを含めることで、これらが一つのテーブルとして構成されてもよい。
【００７６】
図１１は、接続ポイント管理テーブル１１００の構成例を示す図である。
【００７７】
接続ポイント管理テーブル１１００は、接続元オブジェクトＩＤ１１０１と、接続先共有ＩＤ１１０２と、接続先オブジェクトＩＤ１１０３との組で構成されたエントリを有するテーブルである。このテーブルが参照されることによって、中間装置２００は、或る共有単位から別の共有単位へ跨るアクセスの場合も、クライアント１００に対して単一の共有単位へのアクセス手順のみでのアクセスが可能となる。なお、ここでの接続元オブジェクトＩＤ１１０１や接続先オブジェクトＩＤ１１０３は、オブジェクトを同定する識別子（例えばファイルハンドル等）であり、クライアント１００と中間装置２００でやり取りされるものでもよいし、両者間でやり取りされるものでなくともオブジェクトを同定できるものであればよい。
【００７８】
図１２は、ＧＮＳ構成情報テーブル１２００の構成例を示す図である。
【００７９】
ＧＮＳ構成情報テーブル１２００は、共有ＩＤ１２０１と、ＧＮＳパス名１２０２と、サーバ名１２０３と、共有パス名１２０４と、共有設定情報１２０５と、アルゴリズム情報ＩＤ１２０６との組で構成されたエントリを有するテーブルである。このテーブル１２００でも、スイッチ情報管理テーブル８００の場合と同様に、同一の共有ＩＤ１２０１を含んだ複数のエントリを持つことができる。共有ＩＤ１２０１は、共有単位を同定するためのＩＤである。ＧＮＳパス名１２０２は、共有ＩＤ１２０１に対応する共有単位をＧＮＳに統合するパスである。サーバ名１２０３は、共有ＩＤ１２０１に対応する共有単位を保有するサーバ名である。共有パス名１２０４は、共有ＩＤ１２０１に対応する共有単位のサーバ上でのパス名である。共有設定情報１２０５は、共有ＩＤ１２０１に対応する共有単位に関する情報（例えば、共有単位のトップディレクトリ（ルートディレクトリ）に設定する情報、具体的には、例えば、読み込み専用を示す情報や、アクセス可能なホストの制限に関する情報など）である。アルゴリズム情報ＩＤ１２０６は、共有ＩＤ１２０１に対応する共有単位のオブジェクトＩＤの変換をどのように行うかを示すアルゴリズム情報の識別子である。
【００８０】
図１３Ａは、拡張形式ＯＫケースでやり取りされるオブジェクトＩＤの一例を示す図である。図１３Ｂは、拡張形式ＮＧケースでやり取りされるオブジェクトＩＤを示す図である。
【００８１】
拡張形式ＯＫケースとは、共有ＩＤ形式フォーマットのオブジェクトＩＤを末端装置３００が解釈できる場合であり、拡張形式ＮＧケースとは、共有ＩＤ形式フォーマットのオブジェクトＩＤを末端装置３００が解釈できない場合であり、それぞれの場合で、装置間でやり取りされるオブジェクトＩＤが異なる。
【００８２】
共有ＩＤ形式のフォーマットとは、オリジナルオブジェクトＩＤが拡張されたオブジェクトＩＤのフォーマットであり、３つのフィールドが用意されている。第一のフィールドには、オブジェクトＩＤ形式を示す情報であるオブジェクトＩＤ形式１３０１が書かれる。第二のフィールドには、共有単位を同定するための共有ＩＤ１３０２が書かれる。第三のフィールドには、拡張形式ＯＫケースでは、図１３Ａに示すように、オリジナルオブジェクトＩＤ１３０３が書かれ、拡張形式ＮＧケースでは、図１３Ｂの（ａ）に示すように、変換後のオリジナルオブジェクトＩＤ１３０４が書かれる。
【００８３】
共有ＩＤ形式フォーマットのオブジェクトＩＤを生成できる装置は、中間装置２００と一部の末端装置３００である。拡張形式ＯＫケースでは、クライアント１００と中間装置２００との間、中間装置２００と中間装置２００との間及び中間装置２００と末端装置間３００との間の全てにおいて、共有ＩＤ形式フォーマットが利用され、やり取りされるオブジェクトＩＤのフォーマットは不変である。前述したように、拡張形式ＯＫケースでは、第三のフィールドに、オリジナルオブジェクトＩＤ１３０３が書かれるが、それは、オブジェクトを保有する装置２００又は３００がそのオブジェクトをその装置２００又は３００内で同定するための識別子（例えばファイルのＩＤ）である。
【００８４】
一方、拡張形式ＮＧケースでは、クライアント１００と中間装置２００との間、及び中間装置２００と中間装置２００との間では、図１３Ｂの（ａ）に示すように、共有ＩＤ形式フォーマットのオブジェクトＩＤがやり取りされるが、第三のフィールドには、前述したように、変換後のオリジナルオブジェクトＩＤ１３０４が書かれる。そして、中間装置２００と末端装置３００との間では、図１３Ｂの（ｂ）に示すように、末端装置３００が解釈できるオリジナルオブジェクトＩＤ１３０５でやり取りされる。即ち、拡張形式ＮＧケースでは、中間装置２００が、末端装置３００からオリジナルオブジェクトＩＤ１３０５を受けた場合、そのオリジナルオブジェクトＩＤ１３０５を、共有形式フォーマットの第三のフィールドに記録する情報（変換後のオブジェクトＩＤ１３０４）に変換する正変換を行う。また、中間装置２００は、共有形式フォーマットのオブジェクトＩＤを受けた場合、第三のフィールドに書かれている情報をオリジナルオブジェクトＩＤ１３０５に変換する逆変換を行う。正変換及び逆変換のいずれも、上述したアルゴリズム情報１００２に基づいて行われる。
【００８５】
具体的には、例えば、変換後のオリジナルオブジェクトＩＤ１３０４は、オリジナルオブジェクトＩＤ１３０５それ自体、又は、オリジナルオブジェクトＩＤ１３０５の全部又は一部についてアルゴリズム情報１００２に基づく変換処理が行われたものである。例えば、オブジェクトＩＤが可変長であり、オリジナルオブジェクトＩＤ１３０５の長さに第一及び第二フィールドの長さを加えた長さが、オブジェクトＩＤの最大長以下であれば、第三のフィールドに、オリジナルオブジェクトＩＤ１３０５が変換後のオリジナルオブジェクトＩＤ１３０４として書込まれても良い。一方、例えば、オブジェクトＩＤのデータ長が固定長とされており、オブジェクトＩＤ形式１３０１及び共有ＩＤ１３０２を追加することによってその固定長をオーバーしてしまう場合は、オリジナルオブジェクトＩＤ１３０５の全部又は一部についてアルゴリズム情報１００２に基づく変換処理が行われる。この場合は、例えば、不必要なデータを削除する等して、変換後のオリジナルオブジェクトＩＤ１３０４がオリジナルオブジェクトＩＤ１３０５のデータ長よりも短くなるように変換される。
【００８６】
次に、中間装置２００の動作について説明する。中間装置２００は、上述したように、複数の共有単位を統合して単一の擬似的なファイルシステムとしたもの、つまりＧＮＳをクライアント１００に提供する。
【００８７】
図１４は、中間装置２００がＧＮＳを提供する処理のフローチャートである。
【００８８】
まず、クライアント通信部６０６は、クライアント１００からオブジェクトへのアクセス要求を含んだ要求データを受信する。要求データには、アクセス対象のオブジェクトを同定するためのオブジェクトＩＤが含まれている。クライアント通信部６０６は、受信した要求データをファイルアクセス管理部７００へ通知する。オブジェクトへのアクセス要求は、例えば、ＮＦＳプロトコルのリモートプロシージャーコール（ＲＰＣ）を利用して行われる。要求データの通知を受けたファイルアクセス管理部７００は、要求データからオブジェクトＩＤを抽出する。そして、ファイルアクセス管理部７００は、オブジェクトＩＤのオブジェクトＩＤ形式１３０１を参照して、このオブジェクトＩＤのフォーマットが、共有ＩＤ形式フォーマットであるかどうかを判定する（Ｓ１０１）。
【００８９】
共有ＩＤ形式フォーマットでなかった場合は（Ｓ１０１：ＮＯ）、従来のファイルサービス処理が行われ（Ｓ１０２）、その後、処理が終了する。
【００９０】
共有ＩＤ形式フォーマットであった場合は（Ｓ１０１：ＹＥＳ）、ファイルアクセス管理部７００は、抽出したオブジェクトＩＤに含まれる共有ＩＤ１３０２を取得する。そして、ファイルアクセス管理部７００は、アクセス保留共有ＩＤリスト７０４に登録された共有ＩＤの中に、取得した共有ＩＤ１３０２と一致するものがあるかどうかを判定する（Ｓ１０３）。
【００９１】
アクセス保留共有ＩＤリスト７０４に登録されているものと一致する場合は（Ｓ１０３：ＹＥＳ）、ファイルアクセス管理部７００は、クライアント通信部６０６を介して、要求データに含まれるオブジェクトＩＤに対応したオブジェクトへのアクセスが保留されている旨を示す応答データをクライアント１００へ送信し（Ｓ１０４）、その後、処理が終了する。
【００９２】
アクセス保留共有ＩＤリスト７０４に登録されているものと一致しない場合は（Ｓ１０３：ＮＯ）、ファイルアクセス管理部７００は、取得した共有ＩＤ１３０２と一致する共有ＩＤ８０１を含んだエントリがスイッチ情報管理テーブル８００にあるかどうかを判定する（Ｓ１０５）。ここで、前述したように、共有ＩＤ８０１が、取得した共有ＩＤ１３０２と一致するエントリは、複数存在する場合もある。
【００９３】
一致するエントリがない場合は（Ｓ１０５：ＮＯ）、受信した要求データは、この中間装置２００が処理を行うべきものと判断され、ファイルシステムプログラム２０３が実行されて、ＧＮＳローカル処理が行われる（Ｓ３００）。ＧＮＳローカル処理の詳細については、後述する。
【００９４】
一致するエントリがある場合は（Ｓ１０５：ＹＥＳ）、受信した要求データは、この中間装置２００以外の装置が処理を行うべきものと判断され、共有ＩＤ８０１が一致するエントリから、一組のサーバ情報ＩＤ８０２とアルゴリズム情報ＩＤ８０３との組が取得される（Ｓ１０６）。一致するエントリが複数ある場合には、例えば、その複数のエントリの中から、ラウンドロビンによって又はあらかじめ計測しておいた応答時間に基づいて、一のエントリが選択され、その選択されたエントリから、サーバ情報ＩＤ８０２とアルゴリズム情報ＩＤ８０３とが取得される。
【００９５】
次に、ファイルアクセス管理部７００は、サーバ情報管理テーブル９００を参照し、取得したサーバ情報ＩＤ８０２と一致するサーバ情報ＩＤ９０１に対応するサーバ情報９０２を取得する。同様に、ファイルアクセス管理部７００は、アルゴリズム情報管理テーブル１０００を参照し、取得したアルゴリズム情報ＩＤ８０３と一致するアルゴリズム情報ＩＤ１００１に対応するアルゴリズム情報１００２を取得する（Ｓ１１１）。
【００９６】
その後、ファイルアクセス管理部７００は、アルゴリズム情報１００２が所定値（例えば０という値）でなければ、オブジェクトＩＤ変換処理部６０４に指示して、取得したアルゴリズム情報１００２に基づく逆変換を行わせ（Ｓ１０７）、一方、アルゴリズム情報１００２が所定値であれば、このＳ１０７をスキップする。アルゴリズム情報１００２が所定値であるということは、本実施形態では、他の中間装置２００に要求データが転送されることを意味する。つまり、中間装置２００間での転送では、要求データは単に転送されるだけであって、変換処理は何ら行われない。すなわち、アルゴリズム情報１００２には、何も変換しないアルゴリズムを意味する情報（つまり上記所定値）や、オブジェクトＩＤ形式１３０１及び共有ＩＤ１３０２を追加又は削除するのみのアルゴリズムを示す情報や、オブジェクトＩＤ形式１３０１及び共有ＩＤフィールド１３０２を追加又は削除し、更に変換後のオリジナルオブジェクトＩＤ１３０４からオリジナルオブジェクトＩＤ１３０３を復元するアルゴリズムを示す情報等がある。
【００９７】
次に、ファイルアクセス要求レベルでトランザクション管理を行っているプロトコルであって、要求データ中にトランザクションＩＤが含まれる場合は、ファイルアクセス管理部７００は、そのトランザクションＩＤを保存し、要求データの転送先装置２００又は３００に対するトランザクションＩＤを付与する（Ｓ１０８）。転送先装置２００又は３００は、サーバ情報管理テーブル９００を参照し、取得した組のサーバ情報ＩＤ９０１に対応するサーバ情報９０２から同定することができる。なお、上記の条件に満たない場合（例えば、要求データ中にトランザクションＩＤが含まれない場合）は、このＳ１０８はスキップされて良い。
【００９８】
次に、ファイルアクセス管理部７００は、中間・末端装置通信部６０５を介して、Ｓ１１１において取得したサーバ情報９０２に基づいて特定された装置２００又は３００へ、受信した要求データそれ自体、或いは、変換後のオリジナルオブジェクトＩＤ１３０４を含む要求データを、送信する（Ｓ１０９）。その後、中間・末端装置通信部６０５は、送信先の装置からの応答データの受信を待つ（Ｓ１１０）。
【００９９】
中間・末端装置通信部６０５が応答データを受信すると、応答処理が行われる（Ｓ２００）。応答処理の詳細については、図１５を用いて説明する。
【０１００】
図１５は、中間装置２００が応答データを受信した際の処理（応答処理）のフローチャートである。
【０１０１】
中間・末端装置通信部６０５は、末端装置３００もしくは他の中間装置２００より応答データを受信する（Ｓ２０１）。中間・末端通信部６０５は、受信した応答データをファイルアクセス管理部７００へ通知する。
【０１０２】
ファイルアクセス管理部７００は、応答データ中にオブジェクトＩＤがある場合は、オブジェクトＩＤ変換処理部６０４に対して、応答データに含まれるオブジェクトＩＤの変換を指示する。指示を受けたオブジェクトＩＤ変換処理部６０４は、Ｓ１０７において参照されたアルゴリズム情報１００２に基づいて、オブジェクトＩＤを正変換する（Ｓ２０２）。もし、そのアルゴリズム情報１００２が所定値であれば、このＳ２００２はスキップされる。
【０１０３】
ファイルアクセス要求レベルでトランザクション管理が行われるプロトコルで、応答データ中にトランザクションＩＤが含まれる場合は、ファイルアクセス管理部７００は、Ｓ１０８にて保存しておいたトランザクションＩＤを応答メッセージに上書きする（Ｓ２０３）。なお、上記の条件に満たない場合（例えば、応答データ中にトランザクションＩＤが含まれない場合）、このＳ２０３はスキップされて良い。
【０１０４】
その後、ファイルアクセス管理部７００は、共有単位を跨るアクセスに対する処理である接続ポイント処理を行う（Ｓ４００）。接続ポイント処理の詳細は、後述する。
【０１０５】
その後、ファイルアクセス管理部７００は、クライアント通信部６０６を介して、応答データをクライアント１００へ送信し、応答処理を終了する。
【０１０６】
図１６は、中間装置２００が行うＧＮＳローカル処理のフローチャートである。
【０１０７】
まず、要求データから抽出されたオブジェクトＩＤ中の共有ＩＤ１３０２とオリジナルオブジェクトＩＤ１３０３とから、アクセス対象のオブジェクトが同定される（Ｓ３０１）。
【０１０８】
次に、要求データ中に含まれている、オブジェクトに対するオペレーション（例えば、ファイルの書込み或いは読出し）を示す情報に基づいて、応答データが作成される（Ｓ３０２）。応答データ中にオブジェクトＩＤを含める必要がある場合には、そのオブジェクトＩＤのフォーマットには、受信したフォーマットと同じフォーマットが用いられる。
【０１０９】
その後、スイッチプログラム６００のファイルアクセス管理部７００により、接続ポイント処理が行われる（Ｓ４００）。
【０１１０】
その後、応答データがクライアント１００へ送信される。
【０１１１】
図１７は、中間装置２００が行う接続ポイント処理のフローチャートである。
【０１１２】
まず、ファイルアクセス管理部７００は、応答データ中に、オブジェクトへのアクセス要求（要求データ）で指定されたアクセス対象のオブジェクトから見て、そのオブジェクトの子オブジェクト（ディレクトリツリーにおいて、アクセス対象のオブジェクトの下位のオブジェクト）又は親オブジェクト（ディレクトリツリーにおいて、アクセス対象のオブジェクトの上位のオブジェクト）のオブジェクトＩＤが、一以上含まれるかどうかを確認する（Ｓ４０１）。このような子オブジェクトや親オブジェクトのオブジェクトＩＤを含む応答データとしては、例えば、ＮＦＳプロトコルでいえば、LOOKUPプロシージャや、READDIRプロシージャや、READDIRPLUSプロシージャの応答データが該当する。応答データ中に、子オブジェクト又は親オブジェクトのオブジェクトＩＤが全く含まれない場合は（Ｓ４０１：ＮＯ）、処理を終了する。
【０１１３】
応答データ中に、子オブジェクト又は親オブジェクトのオブジェクトＩＤが一以上含まれる場合は（Ｓ４０１：ＹＥＳ）、ファイルアクセス管理部７００は、応答データ中の一の子オブジェクト又は親オブジェクトのオブジェクトＩＤを選択する（Ｓ４０２）。
【０１１４】
そして、ファイルアクセス管理部７００は、接続ポイント管理テーブル１１００を参照して、選択されたオブジェクトＩＤのオブジェクトが接続ポイントであるかどうかを判定する（Ｓ４０３）。具体的には、ファイルアクセス管理部７００は、接続ポイント管理テーブル１１００に登録されたエントリの中に、そのエントリの接続元オブジェクトＩＤ１１０１が、選択されたオブジェクトＩＤと一致するものがあるかどうかを判定する。
【０１１５】
一致するエントリがない場合は（Ｓ４０３：ＮＯ）、応答データ中に、未だ選択されていない他の子オブジェクト又は親オブジェクトのオブジェクトＩＤが含まれているかどうかが確認される（Ｓ４０７）。他の子オブジェクト又は親オブジェクトのオブジェクトＩＤが含まれていない場合は（Ｓ４０７：ＮＯ）、接続ポイント処理が終了する。他の子オブジェクト又は親オブジェクトのオブジェクトＩＤが含まれている場合は（Ｓ４０７：ＹＥＳ）、未だ選択されていない一の子オブジェクト又は親オブジェクトのオブジェクトＩＤが選択される（Ｓ４０８）。そして、Ｓ４０３からの処理が再び行われる。
【０１１６】
一致するエントリがある場合は（Ｓ４０３：ＹＥＳ）、その応答データ中のオブジェクトＩＤが、それと一致する接続元オブジェクトＩＤ１１０１に対応する接続先オブジェクトＩＤ１１０３へ置換される（Ｓ４０４）。
【０１１７】
次に、ファイルアクセス管理部７００は、選択されたオブジェクトＩＤのオブジェクトに関連する付随情報があるか否かを判定する（Ｓ４０５）。付随情報とは、例えば、そのオブジェクトに関する属性を示す情報である。付随情報がない場合は（Ｓ４０５：ＮＯ）、Ｓ４０７へ処理が移行する。付随情報がある場合は（Ｓ４０５：ＹＥＳ）、接続元オブジェクトの付随情報が接続先オブジェクトの付随情報に置換され（Ｓ４０６）、Ｓ４０７へ処理を移す。
【０１１８】
以上、上述した第一の実施形態によれば、クライアント１００と中間装置２００でやり取りされるオブジェクトＩＤ中に共有ＩＤというファイルサービスの公開単位を同定する識別子が挿入される。全ての中間装置２００と一部の末端装置３００は、オブジェクトＩＤを生成する際、あらかじめ共有ＩＤを含む形で生成する。クライアント１００は、共有ＩＤ形式フォーマットのオブジェクトＩＤを利用して、中間装置２００又は末端装置３００に対するオブジェクトの操作指示を行う。クライアント１００からオブジェクトＩＤを含んだ要求データを受信した中間装置２００は、共有ＩＤとサーバ情報ＩＤ（転送先となる中間装置２００又は末端装置３００に関する情報の識別子）とが対応付けられたスイッチ情報管理テーブル８００を参照し、そのオブジェクトＩＤ中の共有ＩＤを用いて特定された転送先が中間装置２００であれば、その要求データにたいてい格別の処理を施すことなく、その要求データをそのまま転送する。
【０１１９】
すなわち、要求データを受けた中間装置２００は、その要求データの転送先が他の中間装置２００である場合には、オブジェクトＩＤの変換は不要である。このため、要求データを受けた中間装置２００の処理負荷が軽減される。
【０１２０】
また、中間装置２００が転送先を決定する際に参照されるテーブルには、共有単位の個数に応じた数のエントリがあるに過ぎない。共有単位は、一般に、複数のオブジェクトの纏まりであるので、ファイル単位にエントリがあるテーブルに比して、テーブルのサイズは小さくなる。故に、要求データを受けた中間装置２００の処理負荷を軽減することができる。
【０１２１】
＜第二の実施形態＞。
【０１２２】
以下、本発明の第二の実施形態について説明する。その際、第一の実施形態との共通点については説明を省略或いは簡略し、第一の実施形態との相違点を主に説明する。
【０１２３】
第二の実施形態の中間装置２００は、第一の実施形態で示した複数の共有単位を単一の共有単位に統合し仮想化したファイル共有サービス（つまり、ＧＮＳを提供するサービス）を行うための中間装置の設定機能を有する。
【０１２４】
以下、管理者ユーザインターフェース（以下、管理ＵＩ）を有する設定元装置（例えば管理計算機）に対して所定の指示が管理者から入力されたことを契機（他の契機でも良い）に開始される、共有単位の統合の処理手順について、詳細に説明する。
【０１２５】
図１８は、ＧＮＳの設定処理のフローチャートである。
【０１２６】
まず、設定元装置が有する管理者ユーザインターフェース（例えばグラフィカルユーザインタフェース（ＧＵＩ））において、管理者により、統合対象の共有単位を持つサーバ名、アルゴリズム情報ＩＤ、その共有単位への共有パス名（例えば、その共有単位のトップディレクトリへのパス名）、その共有単位に対応した共有設定情報、ＧＮＳパス名が入力される（Ｓ５０１）。ここでＧＮＳパス名とは、ＧＮＳにおけるルートディレクトリからオブジェクト名までのパス名である。これら入力された情報は、設定元装置から、親中間装置２００ｐで動作する親構成情報管理プログラム４００ｐへ転送される（Ｓ５０２）。
【０１２７】
上記の情報の転送を受けた親構成情報管理プログラム４００ｐは、共有ＩＤ空き管理リスト４０２を参照して、上記統合対象の共有単位を同定するための、このコンピュータシステムにおいてユニークとなる共有ＩＤを決定する（Ｓ５０３）。
【０１２８】
そして、親構成情報管理プログラム４００ｐは、設定元装置から受信した情報と取得した共有ＩＤと含んだ、ＧＮＳ構成情報テーブル１２００ｐのエントリを生成し、そのエントリをＧＮＳ構成情報テーブル１２００ｐに登録する（Ｓ５０４）。
【０１２９】
次に、親構成情報管理プログラム４００ｐは、全ての子中間装置２００で動作する子構成情報管理プログラム４００ｃに対して、登録したエントリを通知するとともに、ＧＮＳの構築を行う共有統合ローカル処理の開始を指示する（Ｓ５０５）。
【０１３０】
その後、全ての中間装置２００（親・子中間装置）の構成情報管理プログラム４００は、共有統合ローカル処理を実施し（Ｓ６００）、処理を終了する。
【０１３１】
図１９は、共有統合ローカル処理のフローチャートである。
【０１３２】
まず、本処理を実施する中間装置２００が子中間装置２００ｃである場合、子構成情報管理プログラム４００ｃは、通知されたエントリをＧＮＳ構成情報テーブルキャッシュ１２００ｃに登録する（Ｓ６０１）。本処理を実施する中間装置２００が親中間装置２００ｐである場合、Ｓ６０１はスキップされる。
【０１３３】
構成情報管理プログラム４００は、登録されたエントリのサーバ名１２０３が、自装置の名前（その構成情報管理プログラム４００を実行する中間装置２００の名前）かどうかを判断する（Ｓ６０２）。
【０１３４】
サーバ名１２０３が自装置の名前の場合は（Ｓ６０２：ＹＥＳ）、構成情報管理プログラム４００は、バインドマウントを実行し（Ｓ６０５）、Ｓ６０６に進む。バインドマウントとは、登録されたエントリ中の共有パス名１２０４から特定される、自ローカルファイルシステムの全部又は一部である共有単位におけるトップディレクトリを、ＧＮＳパス名１２０２から特定されるディレクトリに、マウントすることである。
【０１３５】
サーバ名１２０３が自装置でない場合は（Ｓ６０２：ＮＯ）、構成情報管理プログラム４００は、ネットワークマウントを実行する（Ｓ６０３）。ネットワークマウントとは、登録されたエントリ中の共有パス名１２０４から特定される、他ローカルファイルシステムの全部又は一部である共有単位におけるトップディレクトリを、ＧＮＳパス名１２０２から特定されるディレクトリに、マウントすることである。
【０１３６】
Ｓ６０３の後、構成情報管理プログラム４００は、登録されたエントリに基づいて、スイッチ情報管理テーブル８００と接続ポイント管理テーブル１１００とが、更新される（Ｓ６０４）。例えば、登録されたエントリ中の共有ＩＤ１２０１と一致する共有ＩＤ８０１と、サーバ名１２０３に対応するサーバ情報ＩＤ８０２と、アルゴリズム情報ＩＤ１２０６と一致するアルゴリズム情報ＩＤ８０３とが、スイッチ情報管理テーブル８００に追記される。また、例えば、登録されたエントリ中の共有ＩＤ１２０１と一致する接続先共有ＩＤ１１０２が接続ポイント管理テーブル１１００に登録される。
【０１３７】
その後、構成情報管理プログラム４００は、共有情報設定１２０５をマウントディレクトリに設定する（Ｓ６０６）。例えば、構成情報管理プログラム４００は、“leaf1:/share”という共有が“root1:/gnsroot/leaf1_share”にマウントされた場合、マウントディレクトリである“/gnsroot/leaf1_share”に共有設定情報１２０５を設定する。
【０１３８】
次に、構成情報管理プログラム４００は、通知されたエントリの共有ＩＤ１２０１に一致する共有ＩＤが、アクセス保留共有ＩＤリスト７０４に登録されているかどうかを判断する（Ｓ６０７）。一致する共有ＩＤが登録されていない場合は（Ｓ６０７：ＮＯ）、処理を終了する。一致する共有ＩＤが登録されている場合は（Ｓ６０７：ＹＥＳ）、構成情報管理プログラム４００は、アクセス保留共有ＩＤリスト７０４から一致した共有ＩＤを削除して（Ｓ６０８）、終了する。
【０１３９】
以上、上述した第二の実施形態によれば、本システムに備えられる複数の中間装置２００は、ＧＮＳに関する構成情報を共有できる。つまり、クライアント１００に対して同一のＧＮＳを提供することができるようになる。従って、複数の中間装置２００が備えられることで、各々の中間装置２００の負荷を分散させることができ、中間装置２００の処理負荷を軽減することができる。
【０１４０】
なお、この第二の実施形態において、Ｓ５０３を契機に、親中間装置２００ｐは、クライアント１００からのアクセス要求を保留（処理しない）ようにしても良い。また、例えば、設定元装置又は親中間装置２００ｐが、クライアント１００で実行される、アクセス要求を発行するコンピュータプログラムを静止化（アクセス要求を発行しない状態）し、その後で、Ｓ５０１が行われ、Ｓ６０８の終了に応答して、設定元装置又は親中間装置２００ｐが、その静止化を解除してもよい。また、Ｓ５０３で決定された共有ＩＤや、Ｓ６０１で通知されたエントリ中の共有ＩＤは、アクセス保留共有ＩＤリスト７０４に登録され、Ｓ６０８で、削除されても良い。
【０１４１】
＜第三の実施形態＞。
【０１４２】
以下、本発明の第三の実施形態について説明する。その際、第一及び第二の実施形態との共通点については説明を省略或いは簡略し、第一及び第二の実施形態との相違点を主に説明する。
【０１４３】
第三の実施形態の中間装置１９００は、ファイル共有サービスを行っている最中に、ＧＮＳの構成を変えずに、ファイルシステムのマイグレーションやリプリケーションを実施することができる。
【０１４４】
図２０は、本発明の第三の実施形態に係る中間装置を備えたコンピュータシステムの構成例を示す図である。
【０１４５】
ストレージネットワーク（例えばＳＡＮ（Storage Area Network））１８０１に、複数の中間装置１９００と複数のストレージシステム１８０２ａ、１８０２ｂが接続されている（中間装置１９００に代えて、末端装置３００に、ストレージシステムが接続されても良い）。
【０１４６】
ストレージシステム１８０２ａ、１８０２ｂは、同様の構成を採用することができるので、ストレージシステム１８０２ａを代表的に例に採り説明する。ストレージシステム１８０２ａは、例えば、複数の物理的な記憶装置を備える。それら複数の物理的な記憶装置におり、ＲＡＩＤ（Redundant Array of Independent (or Inexpensive) Disks）が構成され、その複数の物理的な記憶装置を基に、複数の論理的な記憶装置１８０３ａ、１８０３ｂが形成される。
【０１４７】
中間装置１９００は、ストレージネットワーク１８０１を介して、ストレージシステム１８０２ａの記憶装置１８０３ａ及び１８０３ｂにアクセスすることができるし、別のストレージシステム１８０２ｂの記憶装置１８０３ｃ及び１８０３ｂにアクセスすることもできる。
【０１４８】
図２１は、第三の実施形態における中間装置１９００の構成例を示すブロック図である。
【０１４９】
中間装置１９００の構成は、基本的には第一の実施形態と同様であるが、入出力コントローラ２０５からストレージネットワーク１８０１に接続している点が異なる。即ち、本実施形態における中間装置１９００は、ストレージネットワーク１８０１ａ、１８０１ｂが備える記憶装置１８０３ａ、１８０３ｂ、１８０３ｃ、１８０３ｄにアクセスすることができる。また、中間装置１９００は、第一の実施形態と同様に、その装置内部に記憶装置２０６やファイルシステム２０７を備えてもよい。
【０１５０】
図２２は、中間装置１９００が行うファイルシステムマイグレーション処理のフローチャートである。なお、以下の説明では、マイグレーションの対象となるファイルシステムを、「ファイルシステム１８０４ａ」とする。マイグレーション前は、第一の子中間装置１９００ｃにファイルシステム１８０４ａがマウントされていて、そのファイルシステム１８０４ａは、第二の子中間装置１９００ｃにマイグレーションされるものとする。
【０１５１】
まず、管理者ＵＩにおいて、マイグレーションの対象となるファイルシステム１８０４ａに関する情報とマイグレーション先の第二の中間装置１９００ｃに関する情報とが入力される（Ｓ７０１）。以下、ファイルシステム１８０４ａに関する情報として、ファイルシステム１８０４ａを同定するための識別子であるファイルシステムＩＤが入力されるものとし、第二の中間装置１９００ｃに関する情報として、サーバ名が入力されるものとする。
【０１５２】
これら入力されたファイルシステムＩＤ及びサーバ名は、設定元装置から親構成情報管理プログラム４００ｐへ転送される（Ｓ７０２）。
【０１５３】
ファイルシステムＩＤ及びサーバ名を受けた親構成情報管理プログラム４００ｐは、そのファイルシステムＩＤに関連付けられている全ての共有ＩＤを取得する（Ｓ７０３）。例えば、ＧＮＳ構成情報テーブル１２００ｐにおける共有設定情報１２０５に、対応する共有ＩＤ１２０１から同定される共有単位を含んだファイルシステムのＩＤが含まれていて、それ故、そのＧＮＳ構成情報テーブル１２００ｐを参照すれば、受けたファイルシステムＩＤに対応する全ての共有ＩＤを取得することができる。以下、ファイルシステムＩＤに対応する共有ＩＤの取得は、ＧＮＳ構成情報テーブル１２００ｐ（又は、ＧＮＳ構成情報テーブルキャッシュ１２００ｃ）を参照することにより、行うことができるとする。
【０１５４】
そして、親構成情報管理プログラム４００ｐは、ＧＮＳ構成情報テーブル１２００ｐにおける、取得された共有ＩＤ１２０１に対応するサーバ名１２０３を、転送されて来たサーバ名に変更する（Ｓ７０４）。
【０１５５】
次に、親構成情報管理プログラム４００ｐは、全ての子中間装置１９００ｃで動作する子構成情報管理プログラム４００ｃに対して、転送されて来たファイルシステムＩＤ及びサーバ名と上記取得した共有ＩＤ１２０１とを通知するとともに、マイグレーションの準備処理の開始を指示する（Ｓ７０５）。
【０１５６】
その後、全ての中間装置１９００（親中間装置、子中間装置の両者を含む）の構成情報管理プログラム４００は、マイグレーションの準備処理を行う（Ｓ８００）。マイグレーションの準備処理の詳細については、後述する。
【０１５７】
全ての中間装置１９００においてマイグレーションの準備処理が完了したことを確認した後、親中間装置１９００の親構成情報管理プログラム４００ｐは、全ての子中間装置１９００の子構成情報管理プログラム４００ｃに対して、変更したエントリを通知するとともに、前述した共有統合ローカル処理の開始を指示する（Ｓ７０６）。
【０１５８】
その後、全ての中間装置１９００（親中間装置、子中間装置の両者を含む）の構成情報管理プログラム４００は、共有統合ローカル処理（図１９参照）を実施し（Ｓ６００）、ファイルシステムマイグレーション処理を終了する。
【０１５９】
図２３は、マイグレーションの準備処理のフローチャートである。
【０１６０】
まず、構成情報管理プログラム４００は、通知された共有ＩＤ１２０１をアクセス保留共有ＩＤリスト７０４に登録する（Ｓ８０１）。
【０１６１】
次に、構成情報管理プログラム４００は、通知された共有ＩＤ１２０１に対応する共有設定情報１２０５を全て削除する（Ｓ８０２）。
【０１６２】
そして、構成情報管理プログラム４００は、通知されたファイルシステムＩＤによって特定されるファイルシステムをアンマウントする（Ｓ８０３）。ここでは、第一の子中間装置１９００ｃの子構成情報管理プログラム４００ｃが、特定されたファイルシステム１８０４ａをアンマウントする。これらは、ネットワークマウントやバインドマウントやローカルマウントについてのアンマウントも含んでよい。なお、ローカルマウントとは、自ローカルファイルシステムの、ＧＮＳに統合されていないファイルシステム単位のマウントのことである。
【０１６３】
次に、構成情報管理プログラム４００は、通知されたサーバ名が自装置を示しているかどうかを判断する（Ｓ８０４）。マイグレーション先が自装置の場合は（Ｓ８０４：ＹＥＳ）、Ｓ８０３においてアンマウントされたファイルシステム１８０４ａがローカルマウントされ（Ｓ８０５）、マイグレーションの準備処理が終了する。すなわち、第二の子中間装置１９００ｃの子構成情報管理プログラム４００ｃが、ファイルシステム１８０４ａをマウントする。一方、マイグレーション先が自装置でない場合は（Ｓ８０４：ＮＯ）、何もせずにマイグレーションの準備処理を終了する。
【０１６４】
以上の例によれば、第一の子中間装置１９００ｃにストレージネットワーク１８０１を介してマウントされていたファイルシステム１８０４ａが、第一の子中間装置１９００ｃから切り離されて、第二の子中間装置１９００ｃに、ストレージネットワーク１８０１を介して、ファイルシステム１８０４ａがマウントされることにより、ファイルシステムマイグレーションが完了する。そうすると、そのファイルシステム１８０４ａに含まれている各共有ＩＤ１２０１に対応するサーバ名が、第一の子中間装置１９００ｃのサーバ名から第二の子中間装置１９００ｃのサーバ名に変更されるので、その変更を契機に、親構成情報管理プログラム４００ｐが、その変更後のサーバ名を含んだエントリの情報を全中間装置１９００に送信しＧＮＳ統合要求を行うことで、クライアント１００には、マイグレーションによる構成の変更を隠蔽することができる。なお、マイグレーション中も、各中間装置１９００は、要求データを受け付けることができる。もし、マイグレーション対象のファイルシステムに関わる共有単位の共有ＩＤが指定されている場合、マイグレーション中は、その共有ＩＤがアクセス保留共有ＩＤリストに登録されているので、要求データの処理が保留されることになる。
【０１６５】
図２４は、中間装置１９００が行うファイルシステムリプリケーション処理のフローチャートである。なお、以下の説明では、第一の子中間装置１９００ｃにマウントされているファイルシステム１８０４ａが第二の子中間装置１９００ｃにリプリケーションされるものとする。
【０１６６】
まず、管理者ＵＩにおいて、リプリケーションの対象となるファイルシステム１８０４ａに関する情報とリプリケーション先の第二の中間装置１９００ｃに関する情報とが入力される（Ｓ９０１）。以下、ファイルシステム１８０４ａに関する情報として、ファイルシステム１８０４ａを同定するための識別子であるファイルシステムＩＤが入力されるものとし、第二の中間装置１９００ｃに関する情報として、サーバ名が入力されるものとする。
【０１６７】
これら入力されたファイルシステムＩＤ及びサーバ名は、設定元装置から、親構成情報管理プログラム４００ｐへ転送される（Ｓ９０２）。
【０１６８】
ファイルシステムＩＤ及びサーバ名を受けた親構成情報管理プログラム４００ｐは、そのファイルシステムＩＤに関連付けられている全ての共有ＩＤを特定する（Ｓ９０３）。
【０１６９】
そして、親構成情報管理プログラム４００ｐは、ＧＮＳ構成情報テーブル１２００ｐにおいて、特定された共有ＩＤ１２０１を含むエントリの複製を作成し、エントリの複製におけるサーバ名１２０３を、転送されて来たサーバ名（つまり、リプリケーション先の装置のサーバ名）に変更する（Ｓ９０４）。
【０１７０】
次に、親構成情報管理プログラム４００ｐは、リプリケーション先の第二の子中間装置１９００ｃで動作する子構成情報管理プログラム４００ｃに対して、上記のファイルシステムＩＤ及びサーバ名と取得した共有ＩＤとを通知するとともに、リプリケーションの準備処理の開始を指示する（Ｓ９０５）。尚、リプリケーション先の装置が自装置、即ち、親中間装置１９００ｐであった場合は、Ｓ９０５における指示は行われない。
【０１７１】
その後、リプリケーション先の第二の子中間装置１９００ｃの子構成情報管理プログラム４００ｃは、リプリケーションの準備処理を行う（Ｓ１０００）。リプリケーションの準備処理の詳細については、後述する。
【０１７２】
リプリケーションの準備処理が完了したことを確認した後、親中間装置１９００ｐの親構成情報管理プログラム４００ｐは、全ての子中間装置１９００ｃの子構成情報管理プログラム４００ｃに対して、複製されたエントリを通知するとともに、前述した共有統合ローカル処理の開始を指示する（Ｓ９０６）。
【０１７３】
その後、全ての中間装置１９００（親中間装置、子中間装置の両者を含む）の構成情報管理プログラム４００は、共有統合ローカル処理（図１９参照）を実施し（Ｓ６００）、ファイルシステムリプリケーション処理を終了する。
【０１７４】
図２５は、リプリケーションの準備処理のフローチャートである。
【０１７５】
まず、構成情報管理プログラム４００（上記例では子構成情報管理プログラム４００ｃ）は、通知されて来たファイルシステムＩＤから同定されるファイルシステム１８０４ａの複製の作成を、ストレージシステム１８０２に対して指示する（Ｓ１１０１）。具体的には、例えば、構成情報管理プログラム４００は、ファイルシステム１８０４ａを記憶する記憶装置１８０３ａから別の記憶装置へのコピーを、その記憶装置１８０３ａを有するストレージシステム１８０２ａに指示する。別の記憶装置が記憶装置１８０３ｂであれば、ストレージシステム１８０２ａ内で記憶装置間のコピー（いわゆるローカルコピー）が行われ、別の記憶装置が記憶装置１８０３ｃ又は１８０３ｄであれば、ストレージシステム１８０２ａからストレージネットワーク１８０１を経由してストレージシステム１８０２ｂへリモートコピーが行われる。これにより、別の記憶装置に、ファイルシステム１８０４ａの複製が記憶される。
【０１７６】
次に、構成情報管理プログラム４００は、ファイルシステム１８０４ａの複製をローカルマウントし（Ｓ１００２）、リプリケーションの準備処理を終了する。
【０１７７】
この第三の実施形態において、マイグレーション先及びリプリケーション先の装置を第二の子中間装置１９００ｃとしたが、末端装置３００としても良いし、親中間装置１９００ｐとしてもよい。この場合は、末端装置３００にも、構成情報管理プログラム４００が備えられることになる。
【０１７８】
以上の例によれば、第一の子中間装置１９００ｃにストレージネットワーク１８０１を介してマウントされていたファイルシステム１８０４ａの複製が生成され、そのファイルシステム１８０４ａの複製が、第二の子中間装置１９００ｃに、ストレージネットワーク１８０１を介してマウントされることにより、ファイルシステムリプリケーションが完了する。そうすると、ＧＮＳ構成情報テーブル１２００ｐに含まれるエントリが増えるので、そのエントリ追加を契機に、親構成情報管理プログラム４００ｐが、その追加されたエントリの情報を全中間装置１９００に送信しＧＮＳ統合要求を行うことで、クライアント１００には、リプリケーションよる構成の変更を隠蔽することができる。
【０１７９】
また、ファイルシステム１２０４ａに対応した共有ＩＤと、ファイルシステム１２０４ａの複製に対応した共有ＩＤとは同じであり、リプリケーションにおける共有統合ローカル処理によって、スイッチ情報管理テーブル８００に、その同一の共有ＩＤ（以下、対象共有ＩＤ）に対して、第一の子中間装置１９００ｃと第二の子中間装置１９００ｃの両方のサーバ名が対応付けられる。このため、要求データを受けた中間装置２００は、その要求データでのオブジェクトＩＤ中に対象共有ＩＤが含まれている場合、転送先として、第一の子中間装置１９００ｃと第二の子中間装置１９００ｃとのいずれかを選択する（この選択は、ラウンドロビン形式など所定のルールによって行われて良い）。つまり、論理的に同一の共有単位については、アクセス先が振り分けられる。これにより、負荷分散となる。なお、論理的に同一の共有単位とは、共有単位は別々の位置に存在するが内容が同じであることを意味する。
【０１８０】
以上が、第三の実施形態についての説明である。なお、上記の説明では、マイグレーションもリプリケーションもファイルシステム単位であるが、ファイルシステム単位ではなく共有単位であっても良い。その場合、ファイルシステムＩＤに代えて、共有ＩＤが管理ＵＩに入力されても良い。
【０１８１】
上述した第三の実施形態によれば、マイグレーションやリプリケーションの処理を行っても、マイグレーション元とマイグレーション先との対応関係やリプリケーション元とリプリケーション先との対応関係は、ファイル単位ではなく共有単位で管理される。このため、マイグレーションやリプリケーションを行った後の、中間装置の処理負荷の増大を抑制することができる。
【０１８２】
以上、本発明の幾つかの実施形態を説明したが、これらは本発明の説明のための例示であって、本発明の範囲をこれらの実施形態にのみ限定する趣旨ではない。本発明は、他の種々の形態でも実施することが可能である。例えば、中間装置及び末端装置のうちの少なくとも一つを、NAS（Network Attached Storage）装置とすることができる。
【図面の簡単な説明】
【０１８３】
【図１】図１は、本発明の第一の実施形態に係る中間装置を備えたコンピュータシステムの構成例を示す図である。
【図２】図２は、中間装置の構成例を示すブロック図である。
【図３】図３は、末端装置の構成例を示すブロック図である。
【図４】図４は、親構成情報管理プログラムを示すブロック図である。
【図５】図５は、子構成情報管理プログラムの構成例を示すブロック図である。
【図６】図６は、スイッチプログラムの構成例を示すブロック図である。
【図７】図７は、ファイルアクセス管理部の構成例を示すブロック図である。
【図８】図８は、スイッチ情報管理テーブルの構成例を示す図である。
【図９】図９は、サーバ情報管理テーブルの構成例を示す図である。
【図１０】図１０は、アルゴリズム情報管理テーブルの構成例を示す図である。
【図１１】図１１は、接続ポイント管理テーブルの構成例を示す図である。
【図１２】図１２は、ＧＮＳ構成情報テーブルの構成例を示す図である。
【図１３】図１３Ａは、拡張形式ＯＫケースでやり取りされるオブジェクトＩＤの一例を示す図である。図１３Ｂ（ａ）は、拡張形式ＮＧケースにおいてクライアントと中間装置との間、及び中間装置と中間装置との間でやり取りされるオブジェクトＩＤの一例を示す図である。図１３Ｂ（ｂ）は、拡張形式ＮＧケースにおいて中間装置と末端装置との間でやり取りされるオブジェクトＩＤの一例を示す図である。
【図１４】図１４は、中間装置がＧＮＳを提供する処理のフローチャートである。
【図１５】図１５は、中間装置が応答データを受信した際の処理（応答処理）のフローチャートである。
【図１６】図１６は、中間装置が行うＧＮＳローカル処理のフローチャートである。
【図１７】図１７は、中間装置が行う接続ポイント処理のフローチャートである。
【図１８】図１８は、本発明の第二の実施形態における中間装置が行うＧＮＳの設定処理のフローチャートである。
【図１９】図１９は、共有統合ローカル処理のフローチャートである。
【図２０】図２０は、本発明の第三の実施形態に係る中間装置を備えたコンピュータシステムの構成例を示す図である。
【図２１】図２１は、第三の実施形態での中間装置の構成例を示すブロック図である。
【図２２】図２２は、ファイルシステムマイグレーション処理のフローチャートである。
【図２３】図２３は、マイグレーションの準備処理のフローチャートである。
【図２４】図２４は、ファイルシステムリプリケーション処理のフローチャートである。
【図２５】図２５は、リプリケーションの準備処理のフローチャートである。
【符号の説明】
【０１８４】
１００…クライアント、２００…中間装置、３００…末端装置、６００…スイッチプログラム、７００…ファイルアクセス管理部、８００…スイッチ情報管理テーブル、９００…サーバ情報管理テーブル、１０００…アルゴリズム情報管理テーブル、１１００…接続ポイント管理テーブル、１２００…GNS構成情報テーブル
【図１】
2008234568.tif 000003
【図２】
2008234568.tif 000004
【図３】
2008234568.tif 000005
【図４】
2008234568.tif 000006
【図５】
2008234568.tif 000007
【図６】
2008234568.tif 000008
【図７】
2008234568.tif 000009
【図８】
2008234568.tif 000010
【図９】
2008234568.tif 000011
【図１０】
2008234568.tif 000012
【図１１】
2008234568.tif 000013
【図１２】
2008234568.tif 000014
【図１３】
2008234568.tif 000015
【図１４】
2008234568.tif 000016
【図１５】
2008234568.tif 000017
【図１６】
2008234568.tif 000018
【図１７】
2008234568.tif 000019
【図１８】
2008234568.tif 000020
【図１９】
2008234568.tif 000021
【図２０】
2008234568.tif 000022
【図２１】
2008234568.tif 000023
【図２２】
2008234568.tif 000024
【図２３】
2008234568.tif 000025
【図２４】
2008234568.tif 000026
【図２５】
2008234568.tif 000027