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