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