(57)【要約】【課題】  複数のストレージ装置間でデータ移行作業を実施する際に、ストレージシステムに関わるサービスを停止せずに、データ移行作業を完了するサービスを提供する。【解決手段】  ファイルアクセス管理部１０２は、トランザクションＩＤ管理テーブル１２５およびサーバ情報管理テーブル１２６と、特殊オブジェクトＩＤ管理テーブル１２７と、移動処理を行うオブジェクト群の管理を行う移動オブジェクト状態管理テーブル１３０を備える。擬似ファイルシステム上に構成されている統合ディレクトリツリーを構成している、各サーバのオブジェクトとディレクトリツリー構造を別のサーバへコピーをして、移動処理を行っている際に、クライアントからの移動処理対象オブジェクトへの読み出しや書き込みなどのファイルアクセス要求の転送処理を、オブジェクトの移動処理状態によって変化させることにより、データ移動処理中であることをクライアントに隠蔽する。【選択図】  図３３
2007042115.tif 000002
【特許請求の範囲】
【請求項１】
少なくとも１つのクライアントと少なくとも１つのオブジェクトを管理する少なくとも１つのサーバとの間に論理的に配置されたスイッチ装置における、前記クライアントから送信された前記オブジェクトに関する要求を、当該オブジェクトを管理する前記サーバに転送し、当該要求に対する前記サーバからの応答を前記要求の送信元であるクライアントに転送するスイッチ方法において、
前記サーバが公開しているオブジェクト群を別のサーバへ移動する処理を行う際、移動する全てのオブジェクトの移動処理の進行状態と、クライアントから移動処理中に要求された更新情報と、移動前における当該オブジェクトの移動元オブジェクトＩＤと、移動後における当該オブジェクトの移動先オブジェクトＩＤと、移動先のサーバの識別情報である移動先サーバ識別情報との組み合わせを管理するテーブルを参照し、
所定の基準に基づいて前記オブジェクトを移動させるとともに、移動処理の進行状態と、コピー処理中の更新ログと、当該オブジェクトの移動元ＩＤと、移動先オブジェクトＩＤと、移動先サーバ識別情報とを前記テーブルにエントリする段階と、
移動処理を実行している際に、クライアントからの移動対象オブジェクトへの要求を転送する方法を、前記テーブルに登録されている進行状態と前記要求の内容により転送先を変更し、移動処理中であることを隠蔽する段階と、を備えるスイッチ方法。
【請求項２】
前記移動処理中にコピーが終了したオブジェクトに対し、クライアントからデータの書き込み要求がきた場合、移動元、および移動先へ書き込み要求を転送し、同期を維持することを特徴とする請求項１記載のスイッチ方法。
【請求項３】
前記移動処理中にコピー処理中のオブジェクトに対し、クライアントからのデータの書き込み要求が来た場合、書き込みデータの位置を前記テーブルに更新情報として登録した後、書き込み要求を移動元に転送し、前記コピー処理終了後に、前記更新情報を参照して、移動元から更新部分のデータを読み出し、移動先のオブジェクトへ書き込みを行う請求項１記載のスイッチ方法。
【請求項４】
前記移動処理中にコピー処理中のオブジェクトに対し、クライアントからのデータの書き込み要求が来た場合、書き込み要求に含まれる更新データおよび、書き込みデータの位置を前記テーブルに更新情報として登録した後、書き込み要求を移動元へ転送し、前記コピー処理終了後に、前記更新情報を用いて、移動先のオブジェクトへ書き込みを行う請求項１記載のスイッチ方法。
【請求項５】
少なくとも１つのクライアントと、少なくとも１つのオブジェクトを管理する少なくとも１つのサーバとの間に論理的に配置され、前記クライアントから送信された前記オブジェクトに関する要求を、当該オブジェクトを管理する前記サーバに転送し、当該要求に対する前記サーバからの応答を前記要求の送信元であるクライアントに転送するスイッチ装置において、
前記サーバが公開しているオブジェクト群を別のサーバへ移動する処理を行う際、移動する全てのオブジェクトの移動処理の進行状態と、クライアントから移動処理中に要求された更新情報と、移動前における当該オブジェクトの移動元オブジェクトＩＤと、移動後における当該オブジェクトの移動先オブジェクトＩＤと、移動先のサーバの識別情報である移動先サーバ識別情報との組み合わせを管理するテーブルと、
所定の基準に基づいて前記オブジェクトを移動させるとともに、移動処理の進行状態と、コピー処理中の更新ログと、当該オブジェクトの移動元ＩＤと、移動先オブジェクトＩＤと、移動先サーバ識別情報とを前記テーブルにエントリする移動処理管理手段と、を備え、
移動処理を実行している際に、クライアントからの移動対象オブジェクトへの要求を転送する方法を、前記テーブルに登録されている進行状態と前記要求の内容により転送先を変更して、移動処理中であることが隠蔽されるようにする、スイッチ装置。
【請求項６】
前記移動処理中にコピーが終了したオブジェクトに対し、クライアントからデータの書き込み要求がきた場合、移動元、および移動先へ書き込み要求を転送し、同期を維持することを特徴とする請求項５記載のスイッチ装置。
【請求項７】
前記移動処理中にコピー処理中のオブジェクトに対し、クライアントからのデータの書き込み要求が来た場合、書き込みデータの位置を前記テーブルに更新情報として登録した後、書き込み要求を移動元に転送し、前記コピー処理終了後に、前記更新情報を参照して、移動元から更新部分のデータを読み出し、移動先のオブジェクトへ書き込みを行う請求項５記載のスイッチ装置。
【請求項８】
前記移動処理中にコピー処理中のオブジェクトに対し、クライアントからのデータの書き込み要求が来た場合、書き込み要求に含まれる更新データおよび、書き込みデータの位置を前記テーブルに更新情報として登録した後、書き込み要求を移動元へ転送し、前記コピー処理終了後に、前記更新情報を用いて、移動先のオブジェクトへ書き込みを行う請求項５記載のスイッチ装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、クライアントとサーバとの間に論理的に配置されるスイッチ装置に関し、特に、ネットワークを介してファイル処理を実行するリモートファイルシステムが実装されたクライアント・サーバ・システムにおいて、クライアントに透過なシングルシステムイメージ（ＳＳＩ）の提供や負荷分散などのネットワークトラフィック制御を行うスイッチ装置に関する。
【背景技術】
【０００２】
ネットワークを介したクライアント・サーバ・システムを実現する方法としては、ＲＦＣ(request for comments)  １０９４やＲＦＣ  １８１３に記載されたネットワークファイルシステム（ＮＦＳ；network file system）プロトコルを使用する方法が有名である。このＮＦＳプロトコルは、ＮＦＳを実装するクライアントに、ネットワークを介した遠隔地にあるサーバに対するファイルの作成や消去、読み書き、移動等の、ファイルシステムとしての基本的な動作や、他のクライアントとのファイル共有などの利便性を提供する。ＮＦＳプロトコルでは、クライアントは、サーバ上のファイルなどのオブジェクトを識別するためのオブジェクトＩＤを使用し、リモートプロシージャコール（ＲＰＣ）などのアプリケーションインターフェースを介してサーバにアクセスを行う。例えば、ＮＦＳでは、オブジェクトＩＤとして、ファイルハンドルとよばれるものがある。
【０００３】
（レイヤ４−７スイッチ）ネットワークファイルシステムの実装は、いわゆるＩＰ(Internet Protocol)ネットワークのＯＳＩ（開放型システム間相互接続；open systems interconection）参照モデルに準拠したものが多く、ＯＳＩモデルのレイヤ３まで（物理層、データリンク層、ネットワーク層）の情報を利用して通常のルータなどの経路制御が行われることは広く知られている。さらに、近年では、ＯＳＩ参照モデルのレイヤ４からレイヤ７まで（トランスポート層、セッション層、プレゼンテーション層、アプリケーション層）の情報を利用して、さらにさまざまな利便性を提供しようという動きが盛んになっている。
【０００４】
レイヤ４情報を利用して送られてくるパケットのプロトコルの種類を判別し、プロトコルごとに対応するサーバへ振り分けるネットワークスイッチ装置は、ウェブ(web)ホスティングサービスなどで広く利用されている。さらに、最近では、レイヤ７情報を利用したウェブコンテンツごとのサーバ振り分けを実現するネットワークスイッチ装置が製品として発表されている。これらの技術の主な目的は、サーバの負荷分散や、サーバへのアクセスポリシーの制御（例えば、利用者の認証を行うＳＳＬ(secure socket layer)処理の単一サーバでの実行、年齢別の閲覧制限などである。ＳＳＬ処理を行う場合には、負荷分散等の目的のためのサーバの切り換えは禁止される。）である。なお、スイッチ装置は、論理的なパケット・スイッチとして動作する。
【０００５】
図４２は、ウェブスイッチの機能を示すブロック図である。ウェブスイッチ９００は、パケット処理部９０３と、ＨＴＴＰ(hypertext transfer protocol)処理部９０２とを備えている。パケット処理部９０３で受信したパケット処理を行った後、ＨＴＴＰ処理部９０２は、レイヤ４からレイヤ７に関する情報の収集を行い、レイヤ７に分類されるＵＲＬ(uniform resource locator)に関する情報を取り出す。さらに、ＨＴＴＰ処理部９０２は、取り出したＵＲＬに関する情報に基づいて、このＵＲＬを扱うべきサーバを、その所在はもとより、負荷分散などのポリシーも考慮して検索、特定する。そして、ＨＴＴＰ処理部９０２は、そのサーバへパケットが転送されるように、グローバルアドレスからローカルアドレスの変換（ＮＡＴ(network address translator)型変換）や、後述する仮想ＩＰクラスタリングによるＭＡＣ(media access control)アドレスの書き換えを行うことによって、元パケットのＭＡＣアドレスやＩＰアドレスを変換し、その変換に伴うチェックサムなどのセキュリティの矛盾を訂正する。パケット処理部９０３は、書き換えおよび訂正されたパケットをネットワーク上に送出する。
【０００６】
また、上述したスイッチ装置の以外にも、負荷分散等の目的のためのさまざまな技術が公開されている。そのような技術として広く知られるものに、例えば、各ネットワークエリアに分散配置した各ＤＮＳ（ドメインネームサーバ）が１つのドメイン名に複数のＩＰアドレスを対応させ、ラウンドロビン方式でＩＰアドレスを選択してクライアントへ伝えるという方法がある。
【０００７】
（仮想ＩＰクラスタリング）ところで、仮想ＩＰアドレスをクラスタアドレスとして定義し、複数のサーバにＩＰエイリアスとしてこの仮想ＩＰアドレスを設定し、スイッチとしての役割を有するコーディネータが、ＭＡＣアドレスの書き換えによりパケットを適切なサーバへリダイレクトして負荷分散を行う方法が知られている。このような方法では、各サーバが、仮想ＩＰアドレスをＩＰエイリアスとして設定しているので、クライアントからはあたかも１つのサーバが応答したように見える。この方法では、コーディネータを介さずに、直接対応したサーバからクライアントへ応答を返すことができる。応答を直接返す方法は、パケットがコーディネータを復路も通過する方法と比べ、ボトルネックが生じにくくなるという利点がある。この方法、およびこの方法に若干の改良を加えた方法は、現在、リナックス（Ｌｉｎｕｘ）などのＯＳ（オペレーティングシステム）を用いたクラスタリングシステムの一構成法として広く普及しているものである。
【０００８】
また、特許文献１には、ＬＡＮ（ローカルエリアネットワーク；local area network）などのネットワーク上に分散した複数のファイルサーバの台数やストレージ装置の接続状態をクライアントに意識させないで済むようにする別の方法が開示されている。図４３に示すように、この方法を実行するクライアント・サーバ・システムでは、ネットワーク２上に分散して構築され、互いにサーバ間専用結線７によって接続され、マルチキャストアドレスを共有する複数のファイルサーバ３を備えている。そして、各ファイルサーバ３にまたがって動作する仮想分散ファイルシステム４が実装されている。このシステムを構成する、各ファイルサーバ３上のモジュールは、クライアント１からマルチキャストされたファイル操作要求を受信すると、仮想分散ファイルシステム４と全ローカルファイルシステム６とのマッピングテーブルを利用して、自サーバが上記要求を処理可能な最適なサーバであるか否かを判断し、その判断結果に基づいて要求されたファイル操作を他のファイルサーバ３と重複することなく処理する。こうすることによって、ネットワーク上に分散した複数のファイルサーバ３を、クライアント１からは単一のサーバとして扱うことができるようになるため、サーバ３の台数やストレージ装置の接続状態をクライアント１に意識させない仮想分散ファイルサーバシステムを提供することができる。
【特許文献１】特開２００１−５１８９０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
しかし、分散型のネットワークを介したファイルシステムサービスに上述した従来技術を適用した場合には、以下に示す問題点が発生する。
【００１０】
（１）  レイヤ４−７スイッチを用いる方法も、仮想ＩＰクラスタリングを用いる方法も、パケットのリダイレクションにあたって書き換える内容がＭＡＣアドレスもしくはＩＰアドレスに限定されている。そのため、ＮＦＳのファイルハンドルなどのオブジェクトＩＤをクライアントがキャッシュに保管する実装のプロトコルにおいて、管理者が負荷分散や容量分散の目的という本来クライアントに対して通知する必要のない操作を行う場合、例えば、クライアントに一度割り当てたサーバから別のサーバへオブジェクトを移動するような場合には、クライアントが、古いサーバのオブジェクトＩＤをパケット内に含めてサーバにアクセスしてしまう。したがって、スイッチが新しいサーバにそのパケットを転送しても、新しいサーバはそのパケット内のオブジェクトＩＤを判読できずに、クライアントにエラーを返してしまう。すなわち、負荷分散型ネットワークを介したファイルシステムサービスにおいては、従来の負荷分散の方法を適用しても、クライアントに対する透過性を実現することができない。
【００１１】
（２）  ＩＰエイリアスの設定や仮想分散ファイルシステムの導入を行う際には、ユーザがすでに利用しているファイルサーバに対する改造が必須となるので、既存のクライアント・サーバのファイルシステムが稼動している場合にその構成を活かしたまま提供される利便性を得るためには、負荷分散という目的のみを解決する場合でも、煩雑なインストール作業が発生してしまう。
【００１２】
本発明の目的は、クライアントおよびサーバが標準のネットワークを介したファイルシステムサービスプロトコル（例えば、ＮＦＳ）さえサポートしていれば、それらの既存システムに手を加えることなく、複数のサーバを統合管理してクライアントにシングルシステムイメージ（ＳＳＩ；single system image）のファイルサービスを提供し、負荷分散、容量割り当て等の管理目的によるオブジェクトの再配置をユーザから隠蔽してＳＳＩを維持するなどの利便性を実現することができるスイッチ方法及び装置を提供することである。
【課題を解決するための手段】
【００１３】
上記課題を解決するために、本発明のスイッチ方法は、少なくとも１つのクライアントと少なくとも１つのオブジェクトを管理する少なくとも１つのサーバとの間に論理的に配置されたスイッチ装置における、前記クライアントから送信された前記オブジェクトに関する要求を、当該オブジェクトを管理する前記サーバに転送し、当該要求に対する前記サーバからの応答を前記要求の送信元であるクライアントに転送するスイッチ方法において、転送する応答に、前記オブジェクトを識別するために前記サーバで生成された元オブジェクトＩＤが含まれている場合には、前記元オブジェクトＩＤに対応するオブジェクトを管理するサーバを他のサーバから識別するためのサーバ識別情報を挿入することによって前記元オブジェクトＩＤを情報付帯オブジェクトＩＤに書き換える段階と、転送する要求に、前記情報付帯オブジェクトＩＤが含まれている場合には、前記情報付帯オブジェクトＩＤを前記元オブジェクトＩＤに復元する段階と、前記サーバのアドレス情報と前記サーバ識別情報との組み合わせを管理するテーブルを参照して、転送する要求の情報付帯オブジェクトＩＤに含まれる前記サーバ識別情報に対応するサーバのアドレス情報を求め、当該アドレス情報に基づいて当該要求の転送先を決定する段階と、を備えることを特徴とする。
【００１４】
また、本発明の別のスイッチ方法は、少なくとも１つのクライアントと少なくとも１つのオブジェクトを管理する少なくとも１つのサーバとの間に論理的に配置されたスイッチ装置における、前記クライアントから送信された前記オブジェクトに関する要求を、当該オブジェクトを管理する前記サーバに転送し、当該要求に対する前記サーバからの応答を前記要求の送信元であるクライアントに転送するスイッチ方法において、前記オブジェクトＩＤと、当該元オブジェクトＩＤに対応するオブジェクトを管理するサーバを他のサーバから識別するためのサーバ識別情報との組み合わせを管理する第１のテーブルを参照して、要求に含まれるオブジェクトＩＤに対応するサーバ識別情報を求める段階と、前記サーバのアドレス情報と前記サーバ識別情報との組み合わせを管理する第２のテーブルを参照して、当該サーバ識別情報に対応するサーバのアドレス情報を求める段階と、当該アドレス情報に基づいて当該要求の転送先を決定する段階と、を備えることを特徴とする。
【００１５】
本発明のスイッチ装置は、少なくとも１つのクライアントと、少なくとも１つのオブジェクトを管理する少なくとも１つのサーバとの間に論理的に配置され、前記クライアントから送信された前記オブジェクトに関する要求を、当該オブジェクトを管理する前記サーバに転送し、当該要求に対する前記サーバからの応答を前記要求の送信元であるクライアントに転送するスイッチ装置において、転送する応答に、前記オブジェクトを識別するために前記サーバで生成された元オブジェクトＩＤが含まれている場合には、前記元オブジェクトＩＤに対応するオブジェクトを管理するサーバを他のサーバから識別するためのサーバ識別情報を挿入することによって前記元オブジェクトＩＤを情報付帯オブジェクトＩＤに書き換え、転送する要求に、前記情報付帯オブジェクトＩＤが含まれている場合には、前記情報付帯オブジェクトＩＤを前記元オブジェクトＩＤに復元するオブジェクトＩＤ書き換え手段と、前記サーバのアドレス情報と前記サーバ識別情報との組み合わせを管理するテーブルと、該テーブルを参照して、転送する要求の情報付帯オブジェクトＩＤに含まれる前記サーバ識別情報に対応するサーバのアドレス情報を求め、当該アドレス情報に基づいて当該要求の転送先を決定する転送手段とを備えることを特徴とする。
【００１６】
本発明のスイッチ装置では、オブジェクトを管理するサーバとそのオブジェクトのオブジェクトＩＤとを対応付けすることができるスイッチを備え、そのスイッチが、クライアントに送信するオブジェクトＩＤに、そのオブジェクトを管理するサーバの識別情報を付与する。このようにすれば、次にクライアントがそのオブジェクトにアクセスしようとするときにクライアントが送信する要求中のオブジェクトＩＤに、そのオブジェクトを管理するサーバ識別情報が含まれるようになるため、スイッチ装置は、要求に含まれるサーバ識別情報から、転送先のサーバを決定することができるようになる。したがって、本発明のスイッチ装置を適用すれば、クライアント側で、オブジェクトを管理するサーバを特定する必要がなくなるため、クライアントに対する透過性を実現することができる。
【００１７】
また、本発明のスイッチ装置を適用しても、クライアントおよびサーバの処理を変更する必要はない。したがって、クライアントおよびサーバが標準のネットワークを介したファイルシステムサービスプロトコルさえサポートしていれば、既存システムに手を加えることなく、複数のサーバを統合管理してクライアントにＳＳＩのファイルサービスを提供することができる。
【００１８】
本発明のスイッチ装置では、前記サーバ識別情報には、オブジェクトが公開される単位である共有オブジェクト単位を識別するための共有オブジェクト単位識別情報が含まれる。このようにすれば、サーバ単位よりもさらに分解能が高い共有オブジェクト単位でのきめ細かい転送管理を実現することが可能となる。
【００１９】
また、本発明のスイッチ装置では、前記要求および前記応答を関連づけ、前記要求および前記応答を前記クライアントおよび前記サーバで区別するために付与されているトランザクションＩＤとクライアントのアドレス情報との組み合わせを管理する第２のテーブルと、転送する応答に含まれるトランザクションＩＤに対応するアドレス情報を、前記第２のテーブルを参照して求め、当該アドレス情報に基づいて当該応答の転送先を決定する第２の転送手段とをさらに備えていてもよい。
【００２０】
また、本発明では、前記要求および前記応答を関連づけ、前記クライアントと前記サーバの組み合わせを一意に特定するのに利用可能なＯＳＩモデル第４層以下のタグ情報とクライアントのアドレス情報との組み合わせを管理する分類テーブルと、応答を転送すべきクライアントのアドレス情報を、前記タグ情報と前記分類テーブルを参照して求め、当該アドレス情報に基づいて当該応答の転送先を決定する第３の転送手段とをさらに設けてもよく、あるいは、前記要求および前記応答を関連づけ、前記クライアントと前記サーバの組み合わせを一意に特定するのに利用可能なサーバとの通信セッション・ポート番号とクライアントのアドレス情報との組み合わせを管理する分類テーブルと、応答を転送すべきクライアントのアドレス情報を、前記ポート番号と前記分類テーブルを参照して求め、当該アドレス情報に基づいて当該応答の転送先を決定する第３の転送手段とをさらに設けてもよい。
【００２１】
このように分類テーブルと第３の転送手段とを設けることにより、ハードウエア処理が可能なＯＳＩモデル第４層以下のタグ情報を用いることができるようになり、より高速に処理を行うことができるようになる。
【００２２】
本発明では、前記オブジェクトＩＤ書き換え手段は、前記元オブジェクトＩＤを前記情報付帯オブジェクトに書き換える際のアルゴリズムを識別するためのアルゴリズム識別情報と前記元オブジェクトＩＤに復元するための復元情報との組み合わせを管理する第３のテーブルと、前記サーバ識別情報および前記アルゴリズム識別情報を前記元オブジェクトＩＤに挿入して前記情報付帯オブジェクトＩＤに書き換えるとともに、前記アルゴリズム識別情報と前記復元情報とを前記第３のテーブルに登録する応答処理手段と、前記情報付帯オブジェクトＩＤに含まれるアルゴリズム識別情報に対応する復元情報を前記第３のテーブルを参照して求め、当該復元情報に基づいて前記情報付帯オブジェクトＩＤを前記元オブジェクトＩＤに復元する要求処理手段とを備えていてもよく、前記復元情報は、前記元オブジェクトＩＤから削除されたデータと、該データの位置が含んでいてもよい。
【００２３】
さらに、前記応答処理手段は、前記元オブジェクトＩＤのデータ長が固定長である場合には、前記元オブジェクトＩＤの一部を削除し、削除した位置に前記アルゴリズム識別情報と前記サーバ識別情報とを挿入することによって前記情報付帯オブジェクトＩＤを生成し、前記元オブジェクトＩＤのデータ長が可変長であって、前記元オブジェクトＩＤと前記アルゴリズム識別情報と前記サーバ識別情報とのデータ長の和が最大データ長を越えない場合には、前記元オブジェクトＩＤに前記アルゴリズム識別情報と前記サーバ識別情報とを追加することによって前記情報付帯オブジェクトＩＤを生成し、前記元オブジェクトＩＤと前記アルゴリズム識別情報と前記サーバ識別情報とのデータ長の和が最大データ長を越える場合には、前記元オブジェクトＩＤの一部を削除し、削除した位置に前記アルゴリズム識別情報と前記サーバ識別情報とを挿入することによって前記情報付帯オブジェクトＩＤを生成するようにしてもよい。
【００２４】
さらに、本発明のスイッチ装置は、全ての要求および応答に含まれる情報付帯オブジェクトＩＤにおける前記アルゴリズム識別情報および前記サーバ識別情報の挿入位置やデータ長が同一であるのが望ましい。このようにすれば、オブジェクトＩＤに含まれる情報を抽出および検索するのに要する時間を短縮することができる。
【００２５】
また、本発明の他のスイッチ装置では、前記サーバより公開されたオブジェクトのディレクトリツリーを組み合わせ、１つの統合ディレクトリツリーとして管理する擬似ファイルシステムをさらに備え、前記統合ディレクトリツリーにおける各共有オブジェクト単位のディレクトリツリーのつなぎ目に相当するオブジェクトのオブジェクトＩＤと当該オブジェクトＩＤに関連し、複数の送信先に渡るアクセスを必要とする命令情報との組み合わせを管理する第４のテーブルと、転送する要求に含まれるオブジェクトＩＤと命令情報との組み合わせが、前記第４のテーブルにエントリされている場合には、当該要求を、前記各送信先に転送する要求に分割し、前記各送信先から受信した全ての応答を、前記クライアントに転送する応答に合成するファイルシステム補完手段とをさらに備える。
【００２６】
本発明のスイッチ装置では、擬似ファイルシステムの統合ディレクトリツリーを参照して、複数のサーバあるいは複数のファイルシステムを結合しているツリー部分のみの名前解決処理を行い、その他のツリー部分についてはサーバに処理を任せる。このようにすれば、名前解決処理の負荷を、スイッチとサーバとの間で分散することができる。なお、検索処理の効率化から、前記第４のテーブルに登録されるオブジェクトＩＤは、要求に含まれるオブジェクトＩＤと同じ前記情報付帯オブジェクトＩＤであるのが望ましい。
【００２７】
また、本発明の他のスイッチ装置では、前記サーバが公開するオブジェクトが移動したときの、移動前における当該オブジェクトの移動元オブジェクトＩＤと、移動後における当該オブジェクトの移動先オブジェクトＩＤと、移動先のサーバの識別情報である移動先サーバ識別情報との組み合わせを管理する第５のテーブルと、所定の基準に基づいて前記オブジェクトを前記擬似ファイルシステムによって管理されている統合ディレクトリツリーを参照して移動させるとともに、当該オブジェクトの移動元オブジェクトＩＤと、移動先オブジェクトＩＤと、移動先サーバ識別情報とを前記第５のテーブルにエントリするデータ移動処理手段と、転送する要求に含まれるオブジェクトＩＤが前記第５のテーブルの移動元オブジェクトＩＤと一致する場合には、前記第５のテーブルを参照し、当該オブジェクトＩＤを当該移動元オブジェクトＩＤに対応する移動先オブジェクトＩＤに変更し、当該移動元オブジェクトＩＤに対応するサーバ識別情報に基づいて送信先のサーバを決定する移動隠蔽手段とをさらに備える。
【００２８】
本発明のスイッチ装置では、移動元オブジェクトＩＤ、移動先オブジェクトＩＤ、移動先サーバとを対応付け可能な移動隠蔽手段を備えているので、負荷分散、容量割り当て等の管理目的によるオブジェクトの再配置をユーザから隠蔽してＳＳＩを維持するなどの利便性を実現することができる。
【００２９】
また、本発明のスイッチ装置では、前記第５のテーブルには、移動元オブジェクトＩＤとして、前記情報付帯オブジェクトＩＤがエントリされるのが処理の効率化の観点から見て望ましい。
【００３０】
また、前記オブジェクトＩＤ書き換え手段は、情報付帯オブジェクトＩＤに、データが移動したことを示すデータ移動フラグを組み込み、転送する要求に含まれるオブジェクトＩＤが前記第５のテーブルの移動元オブジェクトＩＤと一致する場合には、前記データ移動フラグを真に設定し、前記移動隠蔽手段は、前記データ移動フラグが真である場合に限って、前記第５のテーブルを検索するのが処理の効率化の観点から見て望ましい。
【００３１】
さらに、前記第５のテーブルでは、１回のデータ移動を１世代として付与される世代番号ごとにテーブルが作成され、前記オブジェクトＩＤ書き換え手段は、転送する要求に含まれるオブジェクトＩＤが前記第５のテーブルの移動元オブジェクトＩＤと一致する場合には、前記情報付帯オブジェクトＩＤに前記世代番号を組み込み、前記移動隠蔽手段は、前記第５のテーブルにおける各テーブルのうち、前記世代番号が付与されたテーブルだけを検索するのが処理の効率化の観点から見て望ましい。
【００３２】
本発明のさらに別のスイッチ装置は、前記サーバが公開しているオブジェクト群を別のサーバへ移動する処理を行う際、移動する全てのオブジェクトの移動処理の進行状態と、クライアントから移動処理中に要求された更新情報と、移動前における当該オブジェクトの移動元オブジェクトＩＤと、移動後における当該オブジェクトの移動先オブジェクトＩＤと、移動先のサーバの識別情報である移動先サーバ識別情報との組み合わせを管理する第６のテーブルと、前記擬似ファイルシステムを参照し、所定の基準に基づいて前記オブジェクトを移動させるとともに、移動処理の進行状態と、コピー処理中の更新ログと、当該オブジェクトの移動元ＩＤと、移動先オブジェクトＩＤと、移動先サーバ識別情報とを前記第６のテーブルにエントリする移動処理管理手段と、を備え、移動処理を実行している際に、クライアントからの移動対象オブジェクトへの要求を転送する方法を、前記第６のテーブルに登録されている進行状態と前記要求の内容により転送先を変更して、移動処理中であることが隠蔽されるようにする。
【００３３】
この構成を採用することにより、管理者によるサーバ間でのオブジェクト再配置作業時においても、ユーザへは再配置作業を隠蔽させることで、システム停止や、ファイルアクセスサービス停止を発生させずに管理作業を実行することを可能にする。
【００３４】
この場合、前記移動処理中のオブジェクト群に対し、移動先へのデータのコピーが終了した前記オブジェクト群の一部オブジェクトの前記第６のテーブルの移動処理の進行状態の情報を移動終了と共に、前記疑似ファイルシステムにおけるマッピング情報を、移動元のオブジェクトから移動先のオブジェクトに変更する、マッピング情報変更手段を備えるようにしてもよい。また、前記マッピング情報変更手段により、移動先オブジェクトにマッピングが変更され、移動終了となったオブジェクトに対し、移動元オブジェクトに関連付けられたオブジェクトＩＤによる要求であるかを、前記第６のテーブルにより判別し、該当する移動元オブジェクトＩＤを移動先オブジェクトＩＤへ書き換えて転送する、オブジェクトＩＤ書き換え手段を備えるようにしてもよい。
【００３５】
さらに、前記移動処理中にコピーが終了したオブジェクトに対し、クライアントからデータの書き込み要求がきた場合、移動元、および移動先へ書き込み要求を転送し、同期を維持するようにしてもよく、前記移動処理中にコピー処理中のオブジェクトに対し、クライアントからのデータの書き込み要求が来た場合、書き込みデータの位置を前記第６のテーブルに更新情報として登録した後、書き込み要求を移動元に転送し、前記コピー処理終了後に、前記更新情報を参照して、移動元から更新部分のデータを読み出し、移動先のオブジェクトへ書き込みを行うようにしてもよく、前記移動処理中にコピー処理中のオブジェクトに対し、クライアントからのデータの書き込み要求が来た場合、書き込み要求に含まれる更新データおよび、書き込みデータの位置を第６のテーブルに更新情報として登録した後、書き込み要求を移動元へ転送し、前記コピー処理終了後に、前記更新情報を用いて、移動先のオブジェクトへ書き込みを行うようにしてもよい。
【００３６】
本発明においてオブジェクトＩＤとは、典型的にはＮＦＳにおけるファイルハンドルであるが、これに限定されるものではなく、ネットワークを介在することができる任意のファイルシステムにおいて、オブジェクトを識別するものであればいずれのものも含まれる。また、ファイルシステムとしても、ＮＦＳに限定されるものではなく、他のファイルシステムにも本発明は適用可能である。
【発明の効果】
【００３７】
以上述べたように、本発明のスイッチ装置は以下に示す効果を有する。
【００３８】
（１）  クライアントおよびサーバが標準のネットワークを介したファイルシステムサービスプロトコル（例えばＮＦＳ）さえサポートしていれば、それらの既存システムに手を加えることなく、複数のサーバを統合管理してクライアントにＳＳＩのファイルサービスを実現できることにある。本発明のスイッチ装置の実装にあたっては、本発明のスイッチ装置を論理的にクライアントとサーバの間に配置するのみで、ＩＰエイリアスの設定や仮想分散ファイルシステムの導入などのクライアントおよびサーバの処理の変更が不要であるからである。
【００３９】
（２）  管理者が負荷や容量分散の目的という本来クライアントに対して通知する必要のない操作、例えばクライアントに一度割り当てたサーバから別のサーバへオブジェクトを移動するような場合に、クライアントに対して透過的に処理を実行することができ、クライアントに提示したＳＳＩの一貫性を維持することができる。本発明のスイッチ装置は、リモートファイルシステムにおいてディレクトリやファイルなどのオブジェクトを特定するためのオブジェクトＩＤとそのオブジェクトを処理するサーバを対応付けし、オブジェクトをクライアント透過に移動させた場合の新旧オブジェクトＩＤの変換などを行い、その結果に基づきクライアントからの要求を適切なサーバへ、またサーバからのオブジェクトＩＤを含む応答を適切なクライアントへ振り分けることができるからである。
【００４０】
（３）  大量のオブジェクトＩＤを、検索操作を介さずに処理して、パケットを適切なサーバへ転送することが可能であり、高速化、およびハードウエア実装に有利となる。クライアントに渡すオブジェクトＩＤを、サーバが発行した元オブジェクトＩＤから情報付帯オブジェクトＩＤへ書き換えるためである。
【００４１】
（４）  名前解決処理による負担をサーバとスイッチ装置とで分散して、名前解決処理の時間を短縮することができる。本発明によるスイッチ装置は、擬似ファイルシステムを備え、その擬似ファイルシステムがマウントポイントのみを管理し、そのマウントポイント配下の名前解決は矛盾なく各サーバへ委譲できるからである。
【００４２】
（５）  統合ディレクトリツリーにおける各共有オブジェクト単位のディレクトリツリーのつなぎ目を含むオブジェクトの移動要求があった場合に、つなぎ目以下のオブジェクトの実際の移動を行わず、そのつなぎ目以下のオブジェクトを所望の位置へと移動したと同等にクライアントに見せるようにテーブルを書き換えるので、非常に高速に移動を完了することができる。
【００４３】
（６）  ＯＳＩ参照モデルの第４層以下のタグ情報を使用できるようにした場合には、これらのタグ情報を用いてハードウエアによるオブジェクトＩＤ書き換えが可能となるので、さらに処理を高速に行うことができる。
【００４４】
（７）  さらに、管理者によるサーバ間でのオブジェクト再配置作業時においても、ユーザへは再配置作業を隠蔽させることで、システム停止や、ファイルアクセスサービス停止を発生させずに管理作業を実行することを可能にする。
【発明を実施するための最良の形態】
【００４５】
次に、本発明の好ましい実施の形態のスイッチ装置について図面を参照して詳細に説明する。
【００４６】
（第１の実施形態）まず、本発明の第１の実施形態のスイッチ装置について説明する。
【００４７】
図１は、本発明の第１の実施形態のスイッチ装置が設けられたクライアント・サーバ形式のリモートファイルシステムであるネットワークファイルシステムのブロック図である。図１に示すように、このネットワークファイルシステムでは、少なくとも１つのクライアント１と、少なくとも１つのサーバ３と、本実施形態のスイッチ装置の一例であるスイッチ１００とが、ＬＡＮあるいはインターネット等であるネットワーク２に接続されている。各サーバ３は、ファイルアクセスサービスによってアクセスされるファイル等のデータを管理する少なくとも１つのファイルシステム４と、前述のデータを格納する記憶装置５とをそれぞれ備えており、各クライアント１にファイルアクセスサービスを提供するファイルサーバである。
【００４８】
図１では、クライアント１とサーバ３とスイッチ１００とが、同一のネットワーク２に接続されているが、論理的には、スイッチ１００は各クライアント１と各サーバ３との間に配置されている。このようなリモートファイルシステムにおいては、全てのファイルアクセス操作は、クライアント１から送信されるファイルアクセス要求（例えば、いわゆるＵｎｉｘ（登録商標）系のシステムであればＮＦＳプロトコルによる要求）と、そのファイルアクセス要求に対してサーバ３から返信される応答とで成り立っており、サーバ３から何らかの要求が出力されることはないものとする。
【００４９】
クライアント１から送信されるファイルアクセス要求には、アクセス対象となるディレクトリやファイルなどのオブジェクトを識別するためのオブジェクトＩＤが含まれている。クライアント１は、ディレクトリやファイルなどのオブジェクトを識別するためのオブジェクトＩＤをファイルアクセス要求の中に指定することによって、サーバ３によって管理されるオブジェクトへアクセスする。オブジェクトＩＤはサーバ３によって生成されるものであり、クライアント１は最初にアクセス可能なオブジェクトの一覧を有している。クライアント１は、まず、その一覧から、オブジェクトまでのアクセスパスを指定した要求データを送信し、最初にアクセス可能なオブジェクトのオブジェクトＩＤをサーバ３の応答データから取得する。また、オブジェクトＩＤをすでに取得しているオブジェクトの下位に配置されたオブジェクトについては、クライアント１は、すでに取得しているオブジェクトＩＤと、ファイルアクセスを行うオブジェクトの名前を指定した要求データを送信し、その応答データからオブジェクトＩＤを取得する。つまり、クライアント１は、サーバ３からの応答データを受信して、その応答データに含まれるオブジェクトＩＤを取得しない限り、そのオブジェクトＩＤに対応するオブジェクトを操作することができない。
【００５０】
このネットワークファイルシステムでは、サーバ３の存在は、スイッチ１００によってクライアント１から隠蔽されており、クライアント１からのファイルアクセス要求はスイッチ１００に送信される。スイッチ１００は、クライアント１から送信されたファイルアクセス要求を受信し、そのファイルアクセス要求を適切なサーバ３に振り分けて転送（ルーティング）し、サーバ３から送信された前述のファイルアクセス要求に対する応答を受信し、ファイルアクセス要求を送信したクライアント１へとその応答を転送（ルーティング）するように動作する。
【００５１】
スイッチ１００は、クライアント１からファイルアクセス要求を受信したときには、そのファイルアクセス要求に含まれるオブジェクトＩＤを解析し、その解析結果に基づいて複数のサーバ３の中から、そのファイルアクセス要求を転送すべきサーバ３を決定し、そのファイルアクセス要求をそのサーバ３に転送する。しかし、サーバ３で生成されるオブジェクトＩＤは、一般的に、生成したサーバ３のみが解釈可能なデータ列によって構成されているため、スイッチ１００およびクライアント１では、そのデータを解釈することができない。また、異なるサーバ３でまったく同一のデータ列を有するオブジェクトＩＤを生成する可能性もある。そのため、このままでは、スイッチ１００がファイルアクセス要求の適切なルーティングを実行することができない。また、前述のように、クライアント１は、サーバ３からの応答データを受信して、その応答データに含まれるオブジェクトＩＤを取得しない限り、そのオブジェクトＩＤに対応するオブジェクトを操作することができない。
【００５２】
そこで、本実施形態のスイッチ装置であるスイッチ１００では、サーバ３から送信される応答データ中に含まれるオブジェクトＩＤに送信元のサーバ３を他のサーバ３から識別するためのサーバ識別情報を挿入し、サーバ識別情報が挿入されたオブジェクトＩＤを含む応答データによってパケットを再構成し、そのパケットをクライアント１に転送する。このようにすれば、クライアント１は、サーバ識別情報が挿入されたオブジェクトＩＤを含むファイルアクセス要求をスイッチ１００に送信するようになり、スイッチ１００では、そのオブジェクトＩＤに挿入されたサーバ識別情報を参照してそのファイルアクセス要求を転送すべきサーバを特定することができる。なお、スイッチ１００は、ファイルアクセス要求をサーバ３に転送する際には、サーバ識別情報を挿入したオブジェクトＩＤを、サーバ３が生成した元のオブジェクトＩＤに変換する必要がある。このようにスイッチ１００を備えることによって、ネットワークファイルシステムにおける複数のサーバによる分散処理が可能となる。
【００５３】
図２は、スイッチ１００の構成を示すブロック図である。図２に示すように、スイッチ１００は、オブジェクトＩＤ書き換え部１０１と、ファイルアクセス管理１０２と、パケット処理部１０３とを備えている。パケット処理部１０３は、ネットワーク２を介してクライアント１およびサーバ３から受信したパケットを解析して、パケットに含まれるデータをファイルアクセス管理部１２０に出力し、ファイルアクセス管理部１２０から出力されたデータをパケット化して、ネットワーク２を介してクライアント１およびサーバ３に送信する。ファイルアクセス管理部１０２は、パケット処理部１０３から出力されたデータを入力して解析し、パケット処理部１０３が受信したパケットの転送先を決定する。オブジェクトＩＤ書き換え部１０１は、ファイルアクセス管理部１０２が決定するパケットの転送先に応じて、前述のデータに含まれるオブジェクトＩＤの書き換えを行う。
【００５４】
図３は、ファイルアクセス管理部１０２の構成を示すブロック図である。図３に示すように、ファイルアクセス管理部１０２は、転送手段（第２の転送手段を含む）の一例であるデータ解析部１２４と、第２のテーブルの一例であるトランザクションＩＤ管理テーブル１２５と、サーバ情報管理テーブル１２６とを備えている。データ解析部１２４は、要求データおよび応答データを解析して、受信したパケットの適切な送信先を決定する。トランザクションＩＤ管理テーブル１２５には、各要求および応答データを関連づけ、個々の要求および応答データをクライアント１およびサーバ３で区別するために付与されているトランザクションＩＤが登録されている。サーバ管理テーブル１２６には、サーバ識別情報と、サーバ３のＩＰアドレスやＭＡＣアドレス等のサーバのアドレス情報との組み合わせがエントリされる。
【００５５】
図４は、オブジェクトＩＤ書き換え部１０１の構成を示すブロック図である。図４に示すように、オブジェクトＩＤ書き換え部１０１は、要求応答分配部１２０と、要求処理部１２１と、応答処理部１２２と、第３のテーブルの一例であるアルゴリズムテーブル１２３とを備えている。要求応答分配部１２０は、ファイルアクセス管理部１０２から送信されたデータが要求データである場合には、そのデータを要求処理部１２１に分配し、応答データである場合には、そのデータを応答処理部１２２に分配する。アルゴリズムテーブル１２３には、データの書き換え方が登録されている。要求処理部１２１および応答処理部１２３は、アルゴリズムテーブル１２３に登録された書き換え方に基づいて、オブジェクトＩＤの書き換えを行い、書き換えたオブジェクトＩＤを要求応答分配部１２０に送信する。要求応答分配部１２０は、書き換えられたオブジェクトＩＤをファイルアクセス管理部１０２に返信する。
【００５６】
＜オブジェクトＩＤフォーマット＞図５は、オブジェクト書き換え部１０１において書き換えられるオブジェクトＩＤのフォーマットの一例を示す図である。図５（ａ）は、サーバ３によって生成されるオブジェクトＩＤ、すなわち元オブジェクトＩＤ１５０である。元オブジェクトＩＤ１５０は、例えば、ＮＦＳ等のネットワークファイルアクセスプロトコルの種類やバージョンによってデータ長の定義が異なる。つまり、元オブジェクトＩＤ１５０は、一般的に、データ長が固定であるものと、最大データ長のみが決まっており、最大データ長の範囲内でデータ長が可変であるものの２種類に分類される。図５（ｂ）は、データ長が固定であるオブジェクトＩＤであって、オブジェクト書き換え部１０１によってサーバ識別情報１５４およびアルゴリズム識別情報１５３が挿入された情報付帯オブジェクトＩＤのフォーマットが示されている。図５（ｂ）に示すように、このオブジェクトＩＤはデータ長が固定であるので、サーバ識別情報１５４およびアルゴリズム識別情報１５３が挿入されても、全体のデータ長は固定（元オブジェクトＩＤ１５０と同じ長さ）となっていなければならない。したがって、オブジェクトＩＤ書き換え部１０１は、図５（ｂ）に示す情報付帯オブジェクトＩＤを生成する際には、図５（ａ）に示す元オブジェクトＩＤ１５０の一部を削除して圧縮データ１５２とし、サーバ識別情報１５４およびアルゴリズム識別情報１５３を先頭に付与する。なお、アルゴリズム識別情報１５３とは、元オブジェクトＩＤ１５０の一部を削除する際にオブジェクトＩＤ書き換え部１０１によって用いられる削除アルゴリズムを識別するための情報である。このように書き換えられた情報付帯オブジェクトＩＤを、圧縮型情報付帯オブジェクトＩＤ１５１と呼ぶ。
【００５７】
図５（ｃ）は、データ長が可変長であるオブジェクトＩＤであって、サーバ識別情報およびアルゴリズム識別情報が挿入された情報付帯オブジェクトＩＤが示されている。図５（ｃ）では、元オブジェクトＩＤ１５０のデータは削除されずに、サーバ識別情報１５４およびアルゴリズム識別情報１５３がそのまま追加されている。このような情報付帯オブジェクトＩＤを追記型情報付帯オブジェクトＩＤ１５５と呼ぶ。なお、データ長が可変長であっても、最大のデータ長を越える場合には、オブジェクトＩＤ書き換え部１０１では、追記型情報付帯オブジェクトＩＤ１５５でなく、圧縮型情報付帯オブジェクトＩＤ１５２が生成される。
【００５８】
また、図５（ｂ）に示すサーバ識別情報１５４およびアルゴリズム識別情報１５３とは、図５（ｃ）に示すサーバ識別情報１５４およびアルゴリズム識別情報１５３と、それぞれデータ長が同じであるのが望ましく、サーバ識別情報１５４とアルゴリズム識別情報１５３とは、それぞれ同じデータ位置に設定されるのが望ましい。オブジェクトＩＤの大きさは、一般的にＮＦＳバージョン２プロトコルでは、３２バイト程度であり、サイズが大きい。また、ＮＦＳバージョン３では、そのサイズを変えることもある。そのため、その中からデータ長や位置がまちまちである情報を抽出および検索するのには時間を要する。したがって、情報付帯オブジェクトＩＤに含まれる各識別情報の抽出や検索するには、それらのデータを同じデータ長、同じ位置とするのが望ましい。
【００５９】
図６は、アルゴリズムテーブル１２３の構成を示す図である。アルゴリズムテーブル１２３は、アルゴリズム識別情報１５３と、復元情報の一例である削除データ１５６と、同じく復元情報の一例である削除位置１５７との組によって構成されたエントリを有するテーブルである。このテーブルを参照すれば、要求処理部１２１は、削除データ１５６と、削除データ位置１５７とにより、圧縮データ１５２を元オブジェクト１５０へ戻すことが可能になる。なお、アルゴリズムテーブル１２３の削除データ１５６と、削除データ位置１５７の情報のないエントリは、圧縮データ１５２を生成せず、元オブジェクト１５０にそのままサーバ識別情報１５４およびアルゴリズム識別情報１５３を追加した追記型情報付帯オブジェクトＩＤのエントリである。
【００６０】
なお、サーバ３において元オブジェクトＩＤ１５０が一定の生成規則で生成されている場合には、元オブジェクトＩＤ１５０は、データ列に周期性のある（各元オブジェクトＩＤ１５０中に同一のビット列が同一の場所に発生する）ＩＤとなる。このような場合には、削除データ１５６と、削除データ位置１５７とが等しくし、同じアルゴリズム識別情報１５３を用いることによって、アルゴリズムテーブル１２３のエントリ数を削減することも可能である。
【００６１】
＜要求パケット受信の際の動作＞次に、スイッチ１００における、クライアント１から送られる要求パケットを受信した後、複数のサーバ３の中から適切なサーバを選択し、そのサーバにパケットを送信する場合の動作の手順について説明する。
【００６２】
パケット処理部１０３は、クライアント１から送信された要求パケットを受信すると、そのパケットからファイルアクセス要求データ、クライアント１のクライアントＩＰアドレス情報１６０およびクライアントＭＡＣアドレス情報１６１を抽出し、それらのデータをファイルアクセス管理部１０２に送信する。
【００６３】
ファイルアクセス管理部１０２のデータ解析部１２４は、それらのデータを受信すると、ファイルアクセス要求データを解析して、圧縮型情報付帯オブジェクトＩＤ１５１もしくは追記型情報付帯オブジェクトＩＤ１５５を抽出する。
【００６４】
そして、データ解析部１２４は、圧縮型情報付帯オブジェクトＩＤ１５１もしくは追記型情報付帯オブジェクトＩＤ１５５に含まれるサーバ識別情報１５４を抽出して、図７に示すサーバ情報管理テーブル１２６を参照し、サーバ識別情報１５４に対応するサーバ３のサーバＩＰアドレス情報１５８とサーバＭＡＣアドレス情報１５９とを読み出す。
【００６５】
ファイルアクセス要求データには、各要求データを区別するためのトランザクションＩＤ１６０が含まれている。データ解析部１２４は、トランザクションＩＤ１６０と、パケット管理部１０３より受信したクライアント１のクライアントＩＰアドレス情報１６１およびクライアントＭＡＣアドレス情報１６２と、ファイルアクセス要求データに含まれる、リードやライトなどのファイルアクセス命令情報１６３と、サーバ識別情報１５４とを、図８に示すトランザクションＩＤ管理テーブル１２５に登録する。
【００６６】
その後、データ解析部１２４は、圧縮型情報付帯オブジェクトＩＤ１５１もしくは追記型情報付帯オブジェクトＩＤ１５５を、情報付帯オブジェクトＩＤ書き換え命令とともに、オブジェクトＩＤ書き換え部１０１に送信する。これらのオブジェクトＩＤは、オブジェクトＩＤ書き換え部１０１において元オブジェクトＩＤ１５０に変換された後、再びファイルアクセス管理部１０２に送信される。
【００６７】
ファイルアクセス管理部１０２は、元オブジェクトＩＤ１５０をファイルアクセス要求に組み込む。ファイルアクセス管理部１０２において、再構成されたファイルアクセス要求データと、サーバ情報管理テーブル１２６を検索することにより特定された、サーバ３のサーバＩＰアドレス情報１５８、およびサーバＭＡＣアドレス情報１５９とは、パケット処理部１０３に送信される。パケット処理部１０３は、それらを要求パケットとして再構成し、そのパケットをサーバ３に送信する。
【００６８】
＜要求データの受信の際のオブジェクトＩＤ書き換え部の動作＞次に、クライアント１からの要求データに含まれる、圧縮型情報付帯オブジェクトＩＤもしくは追記型情報付帯オブジェクトＩＤ１５５を、元オブジェクトＩＤ１５０に復元する際の、オブジェクトＩＤ書き換え部１０１における動作の手順について説明する。
【００６９】
要求データの解析後に、ファイルアクセス処理部１０２から送信された、圧縮型情報付帯オブジェクトＩＤ１５１もしくは追記型情報付帯オブジェクトＩＤ１５５と、情報付帯オブジェクト書き換え命令とを受信すると、要求応答分配部１２０は、情報付帯オブジェクトＩＤ書き換え命令に基づいて、受信した圧縮型情報付帯オブジェクトＩＤ１５１、もしくは追記型情報付帯オブジェクトＩＤ１５５を要求処理部１２１に送信する。
【００７０】
要求処理部１２１は、アルゴリズムテーブル１２３を参照して、受信した情報付帯オブジェクトＩＤに含まれるアルゴリズム識別情報１５３に対応するエントリの削除データ１５６および削除データ位置１５７を特定し、それらに基づいて元オブジェクトＩＤ１５０を生成し、要求応答分配部１２０を介して、ファイルアクセス管理部１０２に生成した元オブジェクトＩＤ１５０を送信する。
【００７１】
＜応答パケット受信の際の動作＞次に、サーバ３から送られる応答パケットを、複数のクライアント１の中から適切なクライアントを選択して転送する際のスイッチ１００における動作の手順について説明する。パケット処理部１０３は、受信したサーバ３からの応答パケットから、応答データ、サーバ３のサーバＩＰアドレス情報１５８もしくはサーバＭＡＣアドレス情報１５９等のサーバアドレス情報を抽出し、ファイルアクセス管理部１０２に送信する。
【００７２】
ファイルアクセス管理部１０２のデータ解析部１２４は、サーバ管理テーブル１２６を参照し、サーバＩＰアドレス情報１５８もしくはサーバＭＡＣアドレス情報１５９と等しい値を持つエントリを検索し、そのエントリのサーバ識別情報１５４を得る。さらに、データ解析部１２４は、応答データを解析することにより、応答データに含まれるトランザクションＩＤ１６０を抽出し、トランザクションＩＤ管理テーブル１２５を参照して、サーバ識別情報１５４とトランザクションＩＤ１６０がともに一致するエントリを検索し、受信した応答データに対応するファイルアクセス要求を送信したクライアント１のクライアントＩＰアドレス情報１６１と、クライアントＭＡＣアドレス情報１６２と、ファイルアクセス命令情報１６３とを得る。
【００７３】
サーバ３からの応答パケットには、オブジェクトＩＤが含まれていない場合もある。特定のファイルアクセスサービスのプロトコルやバージョンでは、ファイルアクセス命令情報が応答データに明示されていない場合があるため、データ解析部１２４は、ファイルアクセス命令情報１６３を用いて、どの種類の命令に対する応答データかを特定することにより、応答データ中に元オブジェクトＩＤが含まれているかどうかを判断することができる。
【００７４】
応答データに元オブジェクトＩＤ１５０が含まれている場合は、データ解析部１２４は、元オブジェクトＩＤ１５０とともに、データ長の定義方法と、サーバ識別情報と、元オブジェクト書き換え命令とをオブジェクトＩＤ書き換え部１０１に送信する。オブジェクトＩＤ書き換え部１０１は、受信した元オブジェクトＩＤを、圧縮型情報付帯オブジェクトＩＤ１５１もしくは追記型情報付帯オブジェクトＩＤ１５５に書き換え、データ解析部１２４は、応答データを再構成する。データ解析部１２４は、応答データに元オブジェクトＩＤが含まれていない場合には、応答データに変更を加えない。その後、データ解析部１２４は、クライアントＩＰアドレス情報１６１と、クライアントＭＡＣアドレス情報１６２と、応答データをパケット処理部１０３に送信する。パケット処理部１０３は、応答パケットを生成し、応答パケットをクライアント１に送信する。
【００７５】
＜応答データ受信の際のオブジェクト書き換え部の動作＞図９は、応答データを受信した際のオブジェクト書き換え部１０１の動作を示すフローチャートである。図９に示すように、要求応答分配部１２０は、応答データに含まれる、元オブジェクトＩＤ１５０とともに、データ長の定義方法と、サーバ識別情報と、元オブジェクト書き換え命令をファイルアクセス管理部１２０から受信すると、元オブジェクト書き換え命令によって、応答処理部１２２へ受信したデータをすべて分配する（Ｓ１００）。
【００７６】
応答処理部１２２は、受信したデータの定義方法を判別し、元オブジェクトＩＤのデータ長が固定長であるか否かチェックする（Ｓ１０１）。ステップＳ１０１において、固定長である場合には、応答処理部１２２は、元オブジェクトＩＤのデータ列の一部を削除して圧縮データを生成し（Ｓ１０２）、削除データ１５６と、削除データ位置１５７と、削除アルゴリズムを区別するために付けられたアルゴリズム識別情報１５３を、アルゴリズムテーブル１２３に登録する（Ｓ１０３）。
【００７７】
アルゴリズムテーブル１２３への登録終了後、応答処理部１２２は、サーバ識別情報１５４と、アルゴリズム識別情報１５３と、圧縮データ１５２を組み合わせて、圧縮型情報付帯オブジェクトＩＤ１５１を生成し（Ｓ１０４）、その圧縮型情報付帯オブジェクトＩＤ１５１を、要求応答分配部１２０を経由して、ファイルアクセス管理部１０２へ送信する（Ｓ１０５）。
【００７８】
ステップＳ１０１において、元オブジェクトＩＤ１５０のデータ長が固定長でない場合には、応答処理部１２２は、サーバ識別情報１５４と、アルゴリズム識別情報１５３と、元オブジェクトＩＤ１５０の３つのデータ長の和を計算し、計算値と定義されている最大データ長を比較する（Ｓ１０６）。
【００７９】
ステップＳ１０６において、最大データ長よりも３つのデータ長の和が長い場合には、応答処理部１２２は、データ長が固定長である場合と同様の手順で処理を行い（Ｓ１０２〜Ｓ１０５）、３つのデータ長の和が最大データ長よりも短い場合は、削除データ１５６および削除データ位置１５７の情報が登録されないエントリとしてのアルゴリズム識別情報１５３を生成し、アルゴリズムテーブル１２３へ登録する（Ｓ１０７）。
【００８０】
応答処理部１２２は、アルゴリズムテーブル１２３への登録終了後、サーバ識別情報１５４と、アルゴリズム識別情報１５３と、元オブジェクトＩＤ１５０を組み合わせて、追記型情報付帯オブジェクトＩＤ１５５を生成し（Ｓ１０８）、要求応答分配部１２０を経由して、追記型情報付帯オブジェクトＩＤ１５５をファイルアクセス管理部１０２に送信する（Ｓ１０５）。
【００８１】
なお、本実施形態のスイッチ装置では、サーバ３で公開（エキスポート）する複数のオブジェクトの公開単位、すなわち共有オブジェクト単位で分割されている場合には、そのオブジェクトがその共有オブジェクト単位に含まれるかを識別するための共有オブジェクト単位ＩＤの項目をサーバ情報管理テーブル１２６のエントリとして追加してもよい。このようにすれば、スイッチ１００がオブジェクトを格納するサーバ３だけでなく、オブジェクトが含まれる共有オブジェクト単位も把握することができるようになるため、スイッチ１００においてサーバ単位よりもさらに分解能が高い共有オブジェクト単位でのきめ細かい転送管理を実現することが可能となる。
【００８２】
（第２の実施形態）次に、本発明の第２の実施形態のスイッチ装置について説明する。本実施形態のスイッチ装置は、第１の実施形態のスイッチ装置と同様に、図１に示すネットワークファイルシステムに用いられる装置である。
【００８３】
図１０は、本実施形態のスイッチ装置の構成を示すブロック図である。図１０に示すように、本実施形態のスイッチ１００は、第１の実施形態のスイッチ装置において備えられているオブジェクトＩＤ書き換え部１０１と、ファイルアクセス管理部１０２と、パケット処理部１０３とに加え、擬似ファイルシステム１０５を備えている。擬似ファイルシステム１０５は、複数のサーバ３のファイルシステム４で構成されている複数のディレクトリツリーを組み合わせ、１つの統合ディレクトリツリーとして管理するためのシステムである。ファイルシステム補完処理部１０４は、クライアント１からのファイルアクセス要求が、複数サーバ３もしくは複数のファイルシステム４等の複数の送信先に渡ってファイルアクセスを必要とする場合の補完処理を行う。
【００８４】
図１１は、本実施形態のスイッチ装置におけるファイルアクセス管理部１０２の構成を示すブロック図である。図１１に示すように、本実施形態のスイッチ装置におけるファイルアクセス管理部１０２は、第１の実施形態のスイッチ装置において備えられているデータ解析部１２４と、トランザクションＩＤ管理テーブル１２５と、サーバ情報管理テーブル１２６とに加え、第４のテーブルの一例である特殊オブジェクトＩＤ管理テーブル１２７を備えている。特殊オブジェクトＩＤ管理テーブル１２７は、複数のサーバ３もしくは複数のファイルシステム４等の複数の送信先に、ファイルアクセスが必要となるような、クライアント１からのファイルアクセス要求を判断するためのテーブルである。さらに、本実施形態のスイッチ装置におけるデータ解析部１２４は、オブジェクトＩＤ書き換え部１０１やパケット処理部１０３とのデータ入出力だけでなく、ファイルシステム補完処理部１０４とのデータの入出力が可能となっている。
【００８５】
次に、本実施形態のスイッチ装置であるスイッチ１００の動作について説明する。本実施形態のスイッチ装置は、第１の実施形態のスイッチ装置における要求パケットおよび応答パケットを、クライアント１もしくはサーバ３へ適切に振り分ける機能に加え、複数のサーバ３のファイルシステム４上に形成されている複数のディレクトリツリーを擬似ファイルシステム１０５のディレクトリツリーに統合することによって、複数のサーバ３における個々のファイルシステム４の存在をクライアント１に意識させることなく、スイッチ１００の擬似ファイルシステム１０５のみにアクセスしているかのように振舞わせる機能を有している。
【００８６】
擬似ファイルシステム１０５は、サーバ３によりネットワーク２を介してアクセス可能なものとして公開されているファイルシステム４上の複数のディレクトリツリーにおけるツリー構造を、擬似ファイルシステム１０５上で自由に組み合わせて、１つのディレクトリツリーにマッピングする。
【００８７】
スイッチ１００は、クライアント１から受信したファイルアクセス要求パケットを、単に特定のサーバ３へ振り分けるだけでなく、複数のサーバ３もしくは異なるファイルシステム４にまたがるようなファイルアクセス要求を受け取った場合に、１つのファイルアクセス要求を、複数のファイルアクセス要求に分割して複数のサーバ３もしくはファイルシステム４へ送信し、複数のサーバ３もしくはファイルシステム４から送信された全ての応答データをスイッチ１００で１つの応答データに再構成してクライアント１に返信する。
【００８８】
図１２は、擬似ファイルシステム１０５のディレクトリツリー２００の一例を示す図である。図１２に示すように、擬似ファイルシステム１０５は、サーバＡ（２５０）で公開されているディレクトリｂ（２２１）、およびサーバＢ（２５１）で公開されているディレクトリｃ（２２１）からのディレクトリツリーのツリー構造を、擬似ファイルシステム１０５上に形成されたルートディレクトリ２２０のサブディレクトリからのディレクトリツリーとしてマッピングする。さらに、擬似ファイルシステム１０５は、サーバＢ（２５１）で公開されているディレクトリｅ（２２４）からのディレクトリツリーのツリー構造を、ディレクトリｂ（２２１）からのディレクトリツリーの下層に存在するディレクトリｆ（２２３）のサブディレクトリからのディレクトリツリーとして登録することによって、擬似ファイルシステムディレクトリツリー２００を生成する。
【００８９】
なお、本実施形態のスイッチ装置では、擬似ファイルシステムディレクトリツリー２００上におけるディレクトリ名は、サーバ３のファイルシステム４で設定されたディレクトリ名と必ずしも同一にする必要はなく、別のディレクトリ名を設定して、クライアント１に公開してもよい。
【００９０】
擬似ファイルシステム１０５は、擬似ファイルシステム１０５のディレクトリツリー２００のツリー構造のみを管理しており、オブジェクトのデータ、属性情報、各ファイルシステム４の接合部以外のツリー構造等は、すべてサーバ３が管理を行っている。したがって、スイッチ１００では、複数のファイルシステム４を結合しているツリー部分のみの名前解決処理を行い、その他のツリー部分については、サーバ３に処理を任せている。このようにすれば、名前解決処理の負荷を、スイッチ１００とサーバ３との間で分散することができる。
【００９１】
スイッチ１００は、例えば、クライアント１から、ディレクトリｅ（２２４）に対応するオブジェクトＩＤや属性情報を取得する命令となる、ディレクトリｆ（２２３）に対応するオブジェクトＩＤを用いたファイルアクセス要求パケットを受信した場合には、その命令に対して正しく応答できるように新しい要求パケットを生成し、ディレクトリｆ（２２３）のデータを格納しているサーバＡ（２５０）と、ディレクトリｅ（２２４）のデータを格納しているサーバＢ（２５１）へ要求パケットをそれぞれ送信する。そして、その結果サーバＡ（２５０）、サーバＢ（２５１）から返信されてくる２つの応答パケットを再構成する処理を行うための管理情報として、擬似ファイルシステム１０５が用いられる。
【００９２】
スイッチ１００は、クライアント１からのファイルアクセス要求により、複数のサーバ３もしくはファイルシステム４へそれぞれ要求データを送るような補完処理を行わなければ正しい応答を返すことができない場合以外は、第１の実施形態のスイッチと同様の手順で処理を行うが、どちらの処理を行うかは、ファイルアクセス管理部１０２の特殊オブジェクトＩＤ管理テーブル１２７を用いて判断する。
【００９３】
特殊オブジェクトＩＤ管理テーブル１２７は、図１３に示すように、ディレクトリｂ（２２１）や、ディレクトリｅ（２２４）などの、ディレクトリツリー２００の異なるサーバ３上に存在するツリーのつなぎ目にあたるすべてのディレクトリのオブジェクトＩＤ１６４と、補完処理を行わなければならないすべてのファイルアクセス命令情報１６５からなるエントリによって構成されている。特殊オブジェクトＩＤ管理テーブル１２７には、擬似ファイルシステム１０５のディレクトリツリー２００が生成された時点で、対応するすべてのディレクトリが登録されている。なお、特殊オブジェクトＩＤ管理テーブル１２７に登録するオブジェクトＩＤ１６４は、クライアント１から送信される要求データに含まれる情報付帯オブジェクトＩＤと照合するため、情報付帯オブジェクトＩＤ、すなわち圧縮型情報付帯オブジェクトＩＤ１５１もしくは追記型情報付帯オブジェクトＩＤ１５５である。このようにすれば、照合時間を短縮することができる。
【００９４】
次に、クライアント１からの要求パケットやサーバ３からの応答パケットを受信した場合のスイッチ１００における動作の手順について詳細に説明する。図１４は、本実施形態のスイッチ装置の動作を示すフローチャートである。
【００９５】
図１４に示すように、クライアント１からのファイルアクセス要求パケットを受信すると、パケット処理部１０３は、ファイルアクセス要求データと、クライアント１のクライアントＩＰアドレス情報１６０およびクライアントＭＡＣアドレス情報１６１をパケットより抽出し、ファイルアクセス管理部１０２に送信する（Ｓ１１０）。
【００９６】
ファイルアクセス管理部１０２のデータ解析部１２４は、受信した要求データに含まれるリードやライトといった命令情報と、圧縮型情報付帯オブジェクトＩＤ１５１もしくは追記型情報付帯オブジェクトＩＤ１５５を抽出し、特殊オブジェクトＩＤ管理テーブル１２７に登録されたオブジェクトＩＤ１６４と命令情報１６５とのエントリにそれらが該当するものがあるか否か確認する（Ｓ１１１）。
【００９７】
要求データから抽出した命令情報と、情報付帯オブジェクトＩＤ１５１もしくは１５５との２つのデータのうち、特殊オブジェクトＩＤ管理テーブル１２７のエントリに、どちらか１つでも該当しない場合、以降のスイッチ１００における要求パケットに関する処理、および前記要求パケットに対応する応答パケットに関する処理は、第１の実施の形態のスイッチ装置における手順で処理が実行される（Ｓ１１２）。
【００９８】
要求データから取り出した命令情報と、オブジェクトＩＤ１５１もしくは１５５の２つのデータのうち、特殊オブジェクトＩＤ管理テーブル１２７のエントリにどちらも該当する場合、データ解析部１２４は、トランザクションＩＤ管理テーブル１２５に必要となるデータをすべて登録した後、受信した要求データをすべてファイルシステム補完処理部１０４へ送信する（Ｓ１１３）。
【００９９】
ファイルシステム補完処理部１０４は、擬似ファイルシステム１０５を参照して受信した要求データの解析を行った後、複数のサーバ３もしくはファイルシステム４へ送信する複数の要求データを生成し、パケット管理部１０３を介して、すべての要求パケットを、関連する複数あるいは１つのサーバ３へ送信する（Ｓ１１４）。なお、本ステップにおいて、１つのサーバ３へ全ての要求パケットの送信するのは、サーバ３が複数のファイルシステム４を備えており、擬似ファイルシステム１０５上のディレクトリツリー２００構成のマッピングが、それぞれのファイルシステム４を接合することで構成されている場合に限られる。
【０１００】
スイッチ１００のパケット処理部１０３は、サーバ３に送信した要求パケットに対する応答パケットを受信すると、その応答パケットから、応答データやサーバ３のアドレス情報１５８、１５９を抽出し、それらをファイルシステム補完処理部１０４に送信する（Ｓ１１５）。
【０１０１】
ファイルシステム補完処理部１０４は、応答データに元オブジェクトＩＤ１５０が含まれている場合には、オブジェクトＩＤの書き換え命令と、元オブジェクトＩＤ１５０と、サーバ３のアドレス情報１５８、１５９とをファイルアクセス管理部１０２へ送信する。
【０１０２】
ファイルアクセス管理部１０２は、受信したすべての応答データに含まれる元オブジェクトＩＤ１５０をオブジェクトＩＤ書き換え部１０１に送信し、第１の実施形態と同様に、圧縮型情報付帯オブジェクトＩＤ１５１あるいは追記型情報付帯オブジェクトＩＤ１５５に書き換えさせ、その情報付帯オブジェクトＩＤと、受信したすべての応答データを用いて、クライアント１からの要求データに対する応答データを生成する（Ｓ１１６）。
【０１０３】
ファイルアクセス管理部１０２は、トランザクションＩＤ管理テーブル１２５に登録されているデータと一致するエントリを検索し、クライアント１のアドレス情報を得た後、応答データとクライアント１のアドレス情報をパケット処理部１０３に送信する（Ｓ１１７）。パケット処理部１０３は、受信した応答データとクライアント１のアドレス情報とに基づいて応答パケットを生成し、その応答パケットをクライアント１に送信する。
【０１０４】
（第３の実施形態）次に、本発明の第３の実施形態のスイッチ装置について説明する。本実施形態のスイッチ装置は、第１の実施形態および第２の実施形態と同様に、図１に示すネットワークファイルシステムに適用される。
【０１０５】
図１５は、本実施形態のスイッチ装置の構成を示すブロック図である。図１５に示すように、本実施形態のスイッチ１００は、第１、第２の実施形態のスイッチ装置に備えられているオブジェクトＩＤ書き換え部１０１と、ファイルアクセス管理部１０２と、パケット処理部１０３と、第２の実施形態に備えられているファイルシステム補完処理部１０４と、擬似ファイルシステム１０５とに加え、、データ移動処理部１０６を備えている。データ移動処理部１０６は、各サーバ３のファイルアクセス処理の負荷や、記憶装置５の残り容量に基づいて、擬似ファイルシステム１０５上の統合ディレクトリツリーのディレクトリ構造を変更することなく、複数サーバ３間でデータの移動を行う。
【０１０６】
図１６は、本実施形態のスイッチ装置におけるファイルアクセス管理部１０２の構成を示すブロック図である。図１６に示すように、ファイルアクセス管理部１０２は、第１、第２の実施形態のスイッチ装置において備えられているトランザクションＩＤ管理テーブル１２５およびサーバ情報管理テーブル１２６と、第２の実施形態において備えられている特殊オブジェクトＩＤ管理テーブル１２７に加え、第５のテーブルの一例である移動オブジェクトＩＤ管理テーブル１２８を備えている。移動オブジェクトＩＤ管理テーブル１２８には、複数のサーバ３間でデータを移動した場合に生じるオブジェクトＩＤの変更による不具合を生じさせないようにする情報がエントリされている。また、移動隠蔽手段の一例を含むデータ解析部１２４では、オブジェクトＩＤ書き換え部１０１と、パケット処理部１０３と、ファイルシステム補完処理部１０４とのデータの入出力だけでなく、データ移動処理部１０６とのデータの入出力が可能となっている。
【０１０７】
次に、本実施形態のスイッチ装置の動作について説明する。本実施形態のスイッチ装置は、第１、第２の実施形態のスイッチ装置において備えられていた機能に加え、擬似ファイルシステム１０５上に構成されている統合ディレクトリツリーのツリー構造を保持したまま、その統合ディレクトリツリーを構成している各サーバ３の公開ディレクトリを元とするツリー構造を、別のサーバ３へコピーしてデータ移動を行った後、ツリー構造のマッピングを変更することによって、クライアント１にデータの移動を隠蔽し、統合ディレクトリツリーの構成を不変としたまま、サーバ３の記憶装置５における容量不足や、各サーバ３におけるファイルアクセス処理の負荷を軽減させる。
【０１０８】
サーバ３間におけるデータ移動に伴い、各ディレクトリやファイルなどのオブジェクトに対応するオブジェクトＩＤも変更する必要があるため、スイッチ１００では、データ移動前とデータ移動後のオブジェクトＩＤの変更履歴を管理し、クライアント１およびサーバ３において、オブジェクトＩＤの変更による不具合が生じないようにすることによって、データの移動の操作をクライアント１から隠蔽する。
【０１０９】
例えば、図１２に示されている擬似ファイルシステム１０５では、サーバＢ（２５１）における記憶装置の残り容量が少なく、サーバＡ（２５０）の記憶装置の残り容量に余裕があり、サーバＢ（２５１）のディレクトリｃ（２２２）からのディレクトリツリーにおけるデータと、オブジェクトの所有者、アクセス権などの属性情報を、ツリー構造ごとサーバＡ（２５０）にコピーするのが望ましい状況であるとする。本実施形態のスイッチ装置は、図１７に示すように、ディレクトリｃ（２２５）からのディレクトリツリーを擬似ファイルシステム１０５のディレクトリツリー２００の構造を変えることなくマッピングし直すように擬似ファイルシステム１０５の情報を更新した後、サーバＢ（２５１）のディレクトリｃ（２２２）からのディレクトリツリーのデータを削除する。このようにすれば、本実施形態のスイッチ装置では、クライアント１にデータの移動を隠蔽しつつ残り容量を増やすことができるようになるため、ディレクトリｃ（２２５）からのディレクトリツリーやディレクトリｅ（２２４）からのディレクトリツリーにおけるデータの追加が可能となる。
【０１１０】
次に、データ移動操作に関するスイッチ１００での動作手順について説明する。データ移動処理部１０６は、すべてのサーバ３における記憶装置５の残り容量データの監視と、スイッチ１００で処理されているファイルアクセス要求パケットや応答パケットに関する履歴データを記録している。そして、データ移動管理部１０６は、あらかじめ設定しておいた基準よりも、残り容量が少なくなった場合や、特定のサーバ３のみにファイルアクセス要求が集中していた場合に、擬似ファイルシステム１０５に登録されているデータを参照し、移動元のディレクトリツリーと、移動先を決定し、データのコピーを開始する。
【０１１１】
データコピーを実行する際に、データ移動処理部１０６は、クライアント１が既に取得している情報付帯オブジェクトＩＤ１５１、１５５により、移動データの対象となっているデータにアクセスする場合の不具合に対応するために、データの移動の対象となっているすべてのオブジェクトに関連する情報として、移動元のサーバ３が生成した元オブジェクトＩＤ１５０をオブジェクトＩＤ書き換え部１０１で書き換えた情報付帯オブジェクトＩＤ１５１、１５５と、移動先のサーバ３で生成された元オブジェクトＩＤ１５０と、サーバ情報管理テーブル１２６に登録されている移動先のサーバ３に対応したサーバ識別情報１５４とを、図１８に示す移動オブジェクトＩＤ管理テーブル１２８へ登録する。図１８に示すように、移動オブジェクトＩＤ管理テーブル１２８は、移動元オブジェクトＩＤ１６６と、移動先オブジェクトＩＤ１６７と、移動先サーバ情報１６８の情報からなるエントリにより構成されている。
【０１１２】
移動オブジェクトＩＤ管理テーブル１２８に登録されているオブジェクトが再び移動する場合には、移動オブジェクトＩＤ管理テーブル１２８の移動先オブジェクトＩＤ１６７が移動元オブジェクトＩＤ１６６の項目に追加され、残りの移動先オブジェクトＩＤ１６７と移動先サーバ情報１６８の項目は最新の状態に更新される。
【０１１３】
移動先オブジェクトＩＤ１６７に登録された情報のうち、ファイルアクセス補完処理部１０４での処理が必要となる可能性のあるオブジェクトを示すオブジェクトＩＤとしては、元オブジェクト１５０ではなく、圧縮型情報付帯オブジェクトＩＤ１５１および追記型情報付帯オブジェクトＩＤ１５５を登録する。この場合には、移動先サーバ情報１６８へはサーバ識別情報１５４を登録しないでおく。
【０１１４】
すべてのデータのコピーが完了し、移動元のサーバ３のデータを削除した後、、データ移動処理部１０６は、移動先のサーバ３でコピーを行ったディレクトリツリーに対して、ネットワーク２を介したファイルアクセスを可能とする公開ディレクトリの設定が行われていない場合は、移動先のサーバ３へ公開ディレクトリの設定を行って、擬似ファイルシステム１０５におけるツリー構造のマッピング情報の更新と、特殊オブジェクトＩＤ管理テーブル１２７に登録されているエントリのデータの更新を行う。
【０１１５】
次に、データ移動が行われた後で、クライアント１からの要求パケットおよびサーバ３からの応答パケットを受信した場合のスイッチ１００における詳細な処理手順について詳細に説明する。図１９は、パケットを受信した場合のスイッチ１００の動作を示すフローチャートである。
【０１１６】
クライアント１からのファイルアクセス要求パケットを受信すると、パケット処理部１０３は、ファイルアクセス要求データと、クライアント１のクライアントＩＰアドレス情報１６０およびクライアントＭＡＣアドレス情報１６１がパケットから抽出し、それらをファイルアクセス管理部１０２に送信する（Ｓ１２０）。
【０１１７】
データ解析部１２４は、受信した要求データを解析し、圧縮型情報付帯オブジェクトＩＤ１５１もしくは追記型情報付帯オブジェクトＩＤ１５５を抽出し、そのＩＤが移動オブジェクトＩＤ管理テーブル１２８に登録されているか否かを確認する（Ｓ１２１）。
【０１１８】
ステップＳ１２１において、抽出された圧縮型情報付帯オブジェクトＩＤ１５１もしくは追記型情報付帯オブジェクトＩＤ１５５が、移動オブジェクトＩＤ管理テーブル１２８の移動元オブジェクトＩＤ１６６として登録されていない場合には、以降の要求データ、およびその要求データに対応する応答データに関する処理は、第２の実施形態のステップＳ１１１からの処理が実行される（Ｓ１２２）。
【０１１９】
ステップＳ１２１において、抽出された圧縮型情報付帯オブジェクトＩＤ１５１もしくは追記型情報付帯オブジェクトＩＤ１５５が、移動オブジェクトＩＤ管理テーブル１２８の移動元オブジェクトＩＤ１６６として登録されている場合には、データ解析部１２４は、移動先サーバ情報１６８にサーバ識別情報１５４が登録されているかを確認する（Ｓ１２３）。
【０１２０】
ステップＳ１２３における確認後、移動先サーバ情報１６８にサーバ識別情報１５４が登録されていない場合には、要求データに含まれていた圧縮型情報付帯オブジェクトＩＤ１５１もしくは追記型情報付帯オブジェクトＩＤ１５５を、移動先オブジェクトＩＤ１６７に登録されている圧縮型情報付帯オブジェクトＩＤ１５１もしくは追記型情報付帯オブジェクトＩＤ１５５に変更し（Ｓ１２４）、以降の要求データ、およびその要求データに対応する応答データに関する処理は第２の実施形態のステップＳ１１１からの処理が実行される（Ｓ１２５）。
【０１２１】
ステップＳ１２３における確認後、移動先サーバ情報１６８にサーバ識別情報１５４が登録されている場合には、データ解析部１２４は、要求データに含まれていた圧縮型情報付帯オブジェクトＩＤ１５１もしくは追記型情報付帯オブジェクトＩＤ１５５を、移動先オブジェクトＩＤ１６７として登録されている元オブジェクトＩＤ１５０に変更し、移動先サーバ情報１６８に登録されているサーバ識別情報１５４を抽出する（Ｓ１２６）。
【０１２２】
データ解析部１２４は、トランザクションＩＤ管理テーブル１２５のエントリに必要な情報をすべて登録した後、移動オブジェクトＩＤ管理テーブル１２８から得られたサーバ識別情報１５４に基づいて、サーバ情報管理テーブル１２６から、サーバＩＰアドレス情報１５８、およびサーバＭＡＣアドレス情報１５９を抽出し、パケット処理部１０３へ、元オブジェクトＩＤ１５０に変更した要求データと、サーバＩＰアドレス情報１５８と、サーバＭＡＣアドレス情報１５９とを送信する（Ｓ１２７）。
【０１２３】
パケット処理部１０３は、ファイルアクセス管理部１０２から送信されたデータを用いて要求パケットを生成し、サーバ３に送信する（Ｓ１２８）。
【０１２４】
その要求パケットに対するサーバ３からの応答パケットに関するスイッチ１００の処理は、第１の実施形態のスイッチでの応答パケットの処理が実行される（Ｓ１２９）。
【０１２５】
（第４の実施形態）次に、本発明の第４の実施形態のスイッチ装置について説明する。本実施形態のスイッチ装置は、第３の実施形態のスイッチ装置を変形したものである。第３の実施形態のスイッチ装置では、一度にデータ移動するオブジェクトの数が非常に多い場合に、ファイルアクセス管理部１０２内の移動オブジェクトＩＤ管理テーブル１２８のエントリ数も非常に多くなって、それらのエントリを検索する時間が増大するようになる。
【０１２６】
そこで、本実施形態のスイッチ装置では、図２１に示すように、アルゴリズム識別情報１５３およびサーバ識別情報１５４とともに、データが移動したことを示すデータ移動フラグ１６９をオブジェクトＩＤに組み込み、オブジェクトＩＤ書き換え部１０１は、フラグ付き圧縮型情報付帯オブジェクトＩＤ１７１、もしくはフラグ付き追記型情報付帯オブジェクトＩＤ１７２を生成する際に、データ移動の対象となったオブジェクトに関しては、データ移動フラグ１６９を真に設定する。
【０１２７】
そして、本実施形態のスイッチ装置では、クライアント１からの要求データに含まれるフラグ付き圧縮型情報付帯オブジェクトＩＤ１７１もしくはフラグ付き追記型情報付帯オブジェクトＩＤ１７２を、データ解析部１２４において解析する際に、データ移動フラグが真である場合に限り、データ移動オブジェクトＩＤ管理テーブル１２８を検索する。このようにすれば、本実施形態のスイッチ装置では、第３の実施形態のスイッチ装置よりも効率のよい検索処理を行うことが可能となる。
【０１２８】
（第５の実施形態）次に、本発明の第５の実施形態のスイッチ装置について説明する。本実施形態のスイッチ装置は、第３の実施形態のスイッチ装置を変形したものである。第３の実施形態のスイッチ装置では、一度にデータ移動するオブジェクトの数が非常に多い場合に、ファイルアクセス管理部１０２内の移動オブジェクトＩＤ管理テーブル１２８のエントリ数が非常に多くなって、エントリを検索する時間が増大するようになる。
【０１２９】
そこで、本実施形態のスイッチ装置では、１回のデータ移動を１世代として世代番号をつけ、１回のデータ移動が終了するたびに世代を１つずつ増やし、現在の世代番号をデータ解析部１２４で記憶しておき、移動オブジェクトＩＤ管理テーブル１２８では、世代番号ごとにテーブルが作成される。
【０１３０】
さらに、オブジェクトＩＤ書き換え部１０１では、図２２に示すように、アルゴリズム識別情報１５３およびサーバ識別情報１５４とともに、データ移動世代番号１７２をオブジェクトＩＤに組み込むようにし、世代番号付き圧縮型情報付帯オブジェクトＩＤ１７３もしくは世代番号付き追記型情報付帯オブジェクトＩＤ１７４を生成する。
【０１３１】
データ解析部１２４は、クライアント１からの要求データに含まれる、世代番号付き圧縮型情報付帯オブジェクトＩＤ１７３もしくは世代番号付き追記型情報付帯オブジェクトＩＤ１７４をデータ解析部１２４にて解析して得られた世代番号に基づいて、移動オブジェクトＩＤ管理テーブル１２８におけるその世代番号のテーブルのみを検索する。このようにすれば、本実施形態のスイッチ装置は、第３の実施形態のスイッチ装置よりも効率の良い検索処理を行うことが可能となる。
【０１３２】
（第６の実施形態）次に、図１５および図２３から図２５を参照して、本発明の第６の実施形態を説明する。ここでは、本発明による擬似ファイルシステムのディレクトリツリーを具体的に説明する。図２３は、本発明による擬似ファイルシステムのディレクトリツリー２００を具体的に構成した場合の例を示している。サーバＡ（２５０）のディレクトリｆ（２２３）の下に、サーバＢ（２５１）にあるディレクトリｅ（２２４）を連結する場合、第６の実施形態では、ディレクトリｆ（２２３）の下にダミーディレクトリｅ’が作成される。そして、擬似ファイルシステム１０５のツリー構成情報より、ファイルアクセス管理部１０２の特殊オブジェクトＩＤテーブル１２７に、ディレクトリｆ（２２３）の下のオブジェクトを検索するコマンド（ＮＦＳのＬｏｏｋｕｐなど）がクライアントから発行された場合をピックアップできるようにディレクトリｆ（２２３）のオブジェクトＩＤが登録される。その結果、当該要求がクライアントより発行された場合、サーバＢ（２５１）のディレクトリｅ（２２４）が擬似ファイルシステムのディレクトリツリー２００通りに構成されているようにクライアントに見せるため、ファイルシステム補完処理部１０４はサーバＡ（２５０）とサーバＢ（２５１）に要求を分割送付して、その応答より必要な情報を集めて、クライアントに応答を返している。また、属性設定のコマンドがディレクトリｅ（２２４）に発行された場合も特殊処理が必要なため、ディレクトリｅ（２２４）のオブジェクトＩＤも特殊オブジェクトＩＤテーブル１２７に登録されている。この場合は、属性設定のコマンドをダミーディレクトリｅ’にも反映させるため、やはり、ファイルシステム補完処理部１０４はサーバＡ（２５０）とサーバＢ（２５１）に要求を分割送付する。
【０１３３】
いま、クライアントが、ディレクトリｆ（２２３）を、サーバＡ（２５０）のディレクトリｇの下に移動させる要求を出したとする（この場合は管理者による移動ではないため、実際に擬似ファイルシステムの構成も変化する）。図２４は、従来のファイルシステムの動作にならって、本発明によるスイッチ装置が移動を実施した結果を示している。この場合、ディレクトリｇの下にディレクトリｆ（２２３）が移動されて、ディレクトリ新ｆ（３００）（実際のディレクトリの名前が変わるわけではないが、対応するオブジェクトＩＤは変わるため区別の目的で新ｆとした）が生成され、その下に見えていたディレクトリｅ（２２４）は、サーバＢ（２５１）からその実態が実際にサーバＡ（２５０）へ移動されて、特殊オブジェクトＩＤテーブル１２７の内容がクリアされる。これは正常な動作結果であり、クライアントは自分の操作が完遂されたと認識するが、サーバ間でのファイル移動が発生するため、移動させるファイルの分量によっては、完了までに非常に長い時間がかかることがあった。
【０１３４】
これに対し図２５は、第６の実施形態による同じ移動の結果を示している。この場合、ディレクトリｆ（２２３）が、ディレクトリ新ｆ（３００）となるところは図２４の例と同じであるが、次に、データ移動処理部１０６のクライアント操作対応部は、このディレクトリ新ｆ（３００）の下に同時にダミーディレクトリｅ’（２２５）を新しいダミーディレクトリ新ｅ’（３０１）として移動する。そして、特殊オブジェクトＩＤテーブル１２７の内容のうち、登録されているオブジェクトＩＤをディレクトリｆ（２２３）のものからディレクトリ新ｆ（３００）のものに変更する。これにより、同様にクライアントの要求は完遂されるが、サーバＢ（２５１）のディレクトリｅ（２２４）配下のファイルは移動する必要がないため、非常に高速に移動を完了することができる。
【０１３５】
（第７の実施形態）次に、本発明の第７の実施形態のスイッチ装置について図面を参照して詳細に説明する。本実施形態のスイッチ装置は、第１の実施形態および第２の実施形態のスイッチ装置を変形したものである。本実施形態は第１の実施形態および第２の実施形態の処理の高速化を目的としている。
【０１３６】
第１の実施形態で、スイッチ１００は応答データにオブジェクトＩＤが含まれている場合にはオブジェクトＩＤ書き換え部１０１でオブジェクトＩＤを書き換える必要があるため、応答データに含まれるトランザクションＩＤを元にトランザクションＩＤ管理テーブル１２５からどの種類の命令に対する応答データであるか検索して求めている。また、第２の実施形態では応答パケットがファイルシステム補完処理部１０４により生成された要求に対する応答であるかを上記と同じくトランザクションＩＤ管理テーブル１２５を検索して求めている。この処理はトランザクションＩＤがＯＳＩモデルの第５〜７層に属するため、ソフトウエアによりトランザクションＩＤを抽出してトランザクションＩＤ管理テーブル１２５のエントリと逐次比較をすることになり、時間のかかる処理となっている。
【０１３７】
本実施形態ではハードウエア処理ができるＯＳＩモデルの第４層以下の情報を用いてどの種類の命令に対する応答であるかを判定できるようにする。例としてＯＳＩモデルの第４層に属するポート番号を用いた場合を説明する。ここでいうポート番号としては、ＴＣＰ(transmission control protocol)／ＩＰやＵＤＰ(user datagram protocol)でのポート番号が例示される。
【０１３８】
図２６は、第７の実施形態でのファイルアクセス管理部を示しており、新たに、分類テーブルの一例である処理分類テーブル１２９が追加されている。図２７に処理分類テーブル１２９の構成の一例を示す。
【０１３９】
まずサーバ３からの応答パケットに対して行う処理の違いに着目して命令の種類を分けて処理分類情報１７６を割り当てる。この分け方は命令ごとに分けてもよいし、処理の違いに着目して同様な処理を行う複数の命令をグループ化してもよい。ただし少なくとも、応答データにオブジェクトＩＤが含まれない命令グループ、応答データにオブジェクトＩＤが含まれる命令グループ、ファイルシステム補完処理部で生成された命令グループの３つに分けることにより高速化が可能になる。
【０１４０】
スイッチ１００はクライアント１からの要求データをサーバ３に転送する際にどの種類の命令であるかによってスイッチ１００からサーバ３へのポート番号を変える。そのポート番号情報１７５と処理分類情報１７６を処理分類テーブル１２９に格納しておく。ポート番号の選択はクライアント１からの要求ごとに空きポート番号を割り当てる方法でもよいし、命令の種類に対してあらかじめ固定的にポート番号を決めておく方法でもよい。ただし前者の方法では命令ごとに処理分類テーブル１２９のエントリを作ることになるため、処理高速化のためには後者の方法が望ましい。
【０１４１】
サーバ３からの応答パケットはスイッチ１００が要求を送ったポート番号に対して送られる。ファイルアクセス管理部１０２で、サーバ情報管理テーブル１２６を検索して得たサーバ識別情報１５４とポート番号情報１７５をもとに処理分類テーブル１２９を検索し、処理分類情報１７６、クライアントＩＰアドレス情報１６１、クライアントＭＡＣアドレス情報１６２を得る。ここまでの処理はＯＳＩモデルの第４層以下をハードウエアで検索できるＬＳＩを使えば高速に処理可能である。
【０１４２】
処理分類情報１７６から、応答パケットにオブジェクトＩＤが含まれない命令の場合には上記で得たクライアントＩＰアドレス情報１６１、クライアントＭＡＣアドレス情報１６２を元にＩＰアドレスとＭＡＣアドレスを変換するのみで応答パケットを転送することができるためきわめて高速な処理が可能になる。オブジェクトＩＤが含まれる命令の場合にはオブジェクトＩＤ書き換え部１０１で第１の実施形態と同様な処理を行う。ファイルシステム補完処理部１０４で生成された命令の場合にはファイルシステム補完処理部１０４で第２の実施形態と同様な処理を行う。
【０１４３】
このように、処理分類情報１７６によりサーバ３からの応答パケットを分類し、必要な処理のみ行うようにすることで処理の高速化が可能になる。
【０１４４】
図２８で以上のことを実際のハードウエア構成に即したブロックに分けて説明する。データ解析部１２４は高速処理が可能なデータ解析高速処理部１０７と処理に時間のかかるデータ解析非高速処理部１０８に分けることができる。データ解析高速処理部１０７にはサーバ情報管理テーブル１２６と処理分類テーブル１２９がつながり、データ解析非高速処理部１０８にはトランザクションＩＤ管理テーブル１２５と特殊オブジェクトＩＤ管理テーブル１２７がつながっている。応答データにオブジェクトＩＤが含まれない命令はポートＸ、応答データにオブジェクトＩＤが含まれる命令はポートＹ、ファイルシステム補完処理部１０４で生成する命令はポートＺを用いてサーバ３に送信する。サーバ３からの応答はポートＸの場合はデータ解析高速処理部１０７だけで処理されるため高速処理が可能となる。ポートＹの場合はデータ解析非高速処理部１０８で処理される。第２の実施形態の場合にファイルシステム補完処理部１０４を経由していたのに比較して、高速に処理可能である。ポートＺの場合はファイルシステム補完処理部１０４で処理される。この場合もあらかじめファイルシステム補完処理部１０４で生成された命令に対する応答であることがわかっているので余計な処理が割愛できる効果がある。
【０１４５】
なお本実施形態では、命令の区別にポート番号を用いる場合を例に説明したが、ポート番号以外にもＩＰアドレス、ＶＬＡＮ(Virtual LAN)タグ、ＭＰＬＳ(multiprotocol label switching)ラベル、ＭＡＣアドレス等のＯＳＩモデル第４層以下情報であれば同様に実施可能である。
【０１４６】
（第８の実施形態）次に、本発明の第８の実施形態のスイッチ装置について説明する。本実施形態のスイッチ装置は、第２の実施形態のスイッチ装置を変形したものである。本実施形態では第２の実施形態の処理を高速化することを目的としている。
【０１４７】
第２の実施形態ではステップＳ１１１においてクライアント１からの要求パケットに含まれるオブジェクトＩＤ、命令情報が特殊オブジェクトＩＤ管理テーブル１２７のエントリに該当するかを全ての要求について行う必要がある。オブジェクトＩＤは例えばＮＦＳでは３２バイトの長さがあり、ＯＳＩモデルの第５〜７層に属するためソフトウエア処理になり時間がかかる。またほとんどの場合には特殊オブジェクトＩＤ管理テーブルのエントリに該当しないため、結果的には行わなくてもよい処理を行っていることになる。
【０１４８】
本実施形態ではファイルシステムのつなぎ目となるオブジェクトに特殊な属性を記録しておき、ステップＳ１１１の判定を行わずに全ての要求をサーバ３に転送し、応答パケットに含まれる属性が前述の特殊な属性であるかをスイッチ１００で判定し、特殊な属性である場合のみファイルシステム補完処理を行うことで処理を高速化する。
【０１４９】
図２９を例に説明する。第２の実施形態では、サーバＡ（２５０）、サーバＢ（２５１）の全てのオブジェクトに対する要求についてオブジェクトＩＤが特殊オブジェクトＩＤ管理テーブル１２７のエントリに該当するか比較を行う。しかし図２９のオブジェクトグループＡ（２２６）、オブジェクトグループＢ（２２７）はエントリに該当しないため、結果的には行わなくてよい処理を行っている。そこで本実施形態ではあらかじめサーバＡ（２５０）のディレクトリｆ（２２３）の下のダミーのディレクトリｅ’（２２５）に特殊な属性を記憶させておく。スイッチ１００はクライアント１からのディレクトリｅに対応するオブジェクトＩＤや属性情報を取得する命令に対して第１の実施形態と同様な処理を行いサーバＡ（２５０）に転送する。サーバＡはダミーのディレクトリｅ’（２２５）のオブジェクトＩＤと疑似ファイルシステム１０５により記憶された特殊な属性を含む応答パケットをスイッチ１００に送る。スイッチ１００は応答パケットに特殊な属性が含まれているかを判定し、この例の場合は含まれているのでファイルシステム補完処理部にデータを送りステップＳ１１３からの処理が行われる。もし含まれていない場合は第１の実施形態と同様な処理を行う。上記フローチャートは、図３０のようになる。ステップＳ１３０で第１の実施形態と同様な処理を行い、サーバ３からの応答をステップＳ１３１で属性をチェックする。特殊な属性であれば第２の実施形態のステップＳ１１３へ移り、特殊な属性でなければステップＳ１３２で第１の実施形態と同様な処理を行う。
【０１５０】
このように、本実施形態では、スイッチ１００は、クライアント１からの要求パケット受信時に結果的に行わなくてもよい特殊オブジェクトＩＤ管理テーブル１２７の検索を行わないため、高速な処理が可能になる。その代わりにステップＳ１３１でサーバ３からの応答パケットに特殊な属性が含まれているかを判定する必要があるが、特殊オブジェクトＩＤ管理テーブル１２７が複数のエントリがありえることに対してこの判定は応答パケットの特定位置を特殊な属性と比較するだけであり、データ長もオブジェクトＩＤがＮＦＳであれば３２バイトの比較が最低必要なのに対して実装次第で短くすることが可能である。よってステップＳ１１１とステップＳ１３１を比較するとステップＳ１３１は高速な処理が可能である。
【０１５１】
（第９の実施形態）以下では、図１５、図３１および図３２を参照して、本発明の第９の実施形態を詳細に説明する。サーバＬ（３１０）およびサーバＭ（３１１）はマルチプロトコル対応サーバであり、ネットワークを介したファイルシステムのサービスを行うプロトコルとして、プロトコルＡとプロトコルＢを解釈することができる。また、プロトコルＡは、本発明によるスイッチ装置およびサーバＡも対応しているとする。図３１に示したように、本発明以外にも、同様の目的を達成するため、クライアントに改造を施す、あるいはサーバに分散ファイルシステムを導入するなどして、プロトコルＢによるアクセスに対して他の統合ディレクトリツリーのイメージ３２０を提供している事例がある。このような環境下において、本発明のスイッチ装置は、プロトコルＢ向けの統合ディレクトリツリーのイメージ３２０を取り込み、プロトコルＡによるアクセスに対しても同様の統合ディレクトリツリーのイメージ３２０を提供することができる。
【０１５２】
具体的には、擬似ファイルシステム１０５内のエージェントが、統合ディレクトリツリーのイメージ３２０の情報を入手する。次に、管理者の指示により、統合ディレクトリツリーのイメージ３２０のルートであるディレクトリＡを、スイッチ装置上の擬似ファイルシステムディレクトリツリー２００のどこに配置するかを決定する。この例では、擬似ファイルシステムディレクトリツリー２００のディレクトリｇ（すなわち、サーバＡ（２５０）のディレクトリｇ）の下にディレクトリＡが見えるように設定する場合を説明する。
【０１５３】
この場合、スイッチ装置はサーバＡのディレクトリｇの下にダミーディレクトリＡ’（３０２）を作成し、さらにサーバＬにプロトコルＡでアクセスして、そのディレクトリＡの下にダミーディレクトリＢ’（３０３）を作成する。続いて、特殊オブジェクトＩＤ管理テーブル１２７の内容を、これら２箇所のファイルシステムのつなぎ目がシームレスにクライアントからアクセスできるよう、ディレクトリｇとＡ、ディレクトリＡとＢのつなぎ目の情報を、たとえば図３２に記したように登録する。以上により、上述のように、つなぎ目に関係するアクセス要求については、ファイルシステム補完処理部１０４は要求を分割し適切なサーバに送付して、その応答より必要な情報を集めて、クライアントに応答を返すので、擬似ファイルシステムディレクトリツリー２００のイメージ通りの統合ツリーが提供できる。
【０１５４】
（第１０の実施形態）次に、本発明の第１０の実施の形態のスイッチ装置について説明する。本実施形態のスイッチ装置は、第１、第２および第３の実施形態と同様に、図１に示すネットワークファイルシステムに適用される。本実施形態は、複数のサーバ３間でのオブジェクト群の移動操作を、クライアント１からの移動対象オブジェクト群へのファイルアクセスを停止させずに行うことを目的としている。すなわち第１〜第３の実施形態のスイッチ装置では、複数のサーバを統合管理してクライアントにシングルシステムイメージのファイルサービスを提供することができるが、ユーザがサーバ上のオブジェクト（ファイル）に実際にアクセス（書込みや読出し）を行っている最中にオブジェクトの再配置を行おうとすると、そのアクセスの期間中はアクセスしようとした際に決定したオブジェクトＩＤを使い続ける形態となっているので、ユーザのアクセスが中断したり、適切な再配置を行えないことになる。そこでこの第１０の実施形態では、ユーザが現にサーバ上のオブジェクトにアクセスしているタイミングであっても管理者側ではオブジェクトの再配置を行うことができ、しかも、オブジェクトの再配置などが行われたことをユーザに隠蔽できるスイッチ装置について説明する。
【０１５５】
この実施形態では、第３の実施形態に関連して図１５を用いて説明したスイッチ装置を使用する。すなわちスイッチ１００は、第１、第２、第３の実施形態のスイッチ装置に備えられているオブジェクトＩＤ書き換え部１０１と、ファイルアクセス管理部１０２と、パケット処理部１０３と、第２、第３の実施形態に備えられているファイルシステム補完処理部１０４と、擬似ファイルシステム１０５とに加え、第３の実施形態に備えられているデータ移動処理部１０６を備えている。
【０１５６】
図３３は、本実施形態におけるファイルアクセス管理部１０２を示すブロック図である。ファイルアクセス管理部１０２は、第１、第２、第３の実施形態のスイッチ装置において備えられているトランザクションＩＤ管理テーブル１２５およびサーバ情報管理テーブル１２６と、第２、第３の実施形態において備えられている特殊オブジェクトＩＤ管理テーブル１２７に加えて、移動処理を行うオブジェクト群の管理を行う移動オブジェクト状態管理テーブル１３０を備えている。
【０１５７】
次に、本実施形態のスイッチ装置の動作について説明する。本実施の形態のスイッチ装置は、第１、第２、第３の実施形態のスイッチ装置において備えられていた機能に加え、擬似ファイルシステム１０５上に構成されている統合ディレクトリツリーを構成している、各サーバ３のオブジェクトとディレクトリツリー構造を別のサーバ３へコピーをして、移動処理を行っている際に、クライアント１からの移動処理対象オブジェクトへの読み出しや書き込みなどのファイルアクセス要求の転送処理を、オブジェクトの移動処理状態によって変化させることにより、データ移動処理中であることをクライアント１に隠蔽する。
【０１５８】
例えば、第３の実施形態の例で挙げたように、サーバＢ（２５１）のディレクトリｃ（２２２）からのディレクトリツリーにおけるオブジェクト群のデータと、オブジェクトの所有者、アクセス権などの属性情報を、ストレージ容量の不足といった理由により、ツリー構造ごとサーバＡ（２５０）へコピーするのが望ましい状況であったとする。オブジェクトの移動は、前記オブジェクト群のデータをコピーして、図１２の擬似ファイルシステム１０５のマッピング情報を更新し、サーバＢ（２５１）からコピーを行った部分を削除することで終了するが、オブジェクトのコピー中に、データの更新などのファイルアクセス操作を要求された際、データの不一致が生じないように、クライアント１からのファイルアクセスをスイッチ１００で制御することで、ファイルアクセスを停止することのない、移動処理を実行することが可能となる。
【０１５９】
次に、データの移動処理中の操作に関するスイッチ１００での動作について説明する。データ移動処理部１０６は、すべてのサーバ３における記憶装置５の残り容量データの監視と、スイッチ１００で処理されているファイルアクセス要求パケットや応答パケットに関する履歴データを記録している。そして、データ移動処理部１０６は、あらかじめ設定しておいた基準よりも、残り容量が少なくなった場合や、特定のサーバ３のみにファイルアクセス要求が集中していた場合に、擬似ファイルシステム１０５に登録されているデータを参照し、移動元のサーバ３のディレクトリツリーと、移動先のサーバ３の移動場所を決定する。
【０１６０】
データのコピーを実行する前に、データ移動処理部１０６は、移動元のサーバ３から、移動元のディレクトリツリーのオブジェクト群のディレクトリツリーの構成情報と、すべての元オブジェクトＩＤ１５０を抽出し、前記元オブジェクトＩＤ１５０は、オブジェクトＩＤ書き換え部１０１において、圧縮型情報付帯オブジェクトＩＤ１５１、および追記型情報付帯オブジェクトＩＤに変換した後、ファイルアクセス管理部１０２の移動オブジェクト状態管理テーブル１３０へ登録する。
【０１６１】
移動オブジェクト状態管理テーブル１３０は、図３４のように、移動元の圧縮型情報付帯オブジェクトＩＤ１５１、もしくは追記型情報付帯オブジェクトＩＤ１５５が登録されている移動元オブジェクトＩＤ１６６と、移動先の追記型情報付帯オブジェクトＩＤ１５１と追記型情報付帯オブジェクトＩＤ１５５が登録される移動先オブジェクトＩＤ１６７、移動処理の進行状態の情報を表す進行状態情報１７７と、対象オブジェクトのディレクトリツリー上の親オブジェクトに相当するオブジェクトの移動オブジェクト状態管理テーブル１３０上の付与番号を情報としてもつ、親オブジェクト番号１７８、コピー動作中のクライアント１からの更新履歴情報を登録する更新ログ情報１７９、対象オブジェクトがディレクトリであるかファイルであるかを示すオブジェクト属性情報１８０、移動先のサーバ３に対応したサーバ識別情報１５４を登録する移動先サーバ情報１６８からなるエントリにより構成されている。
【０１６２】
進行状態情報１７７へは、コピー処理が行われていないことを表す、未コピー状態、実際にコピー処理を行っている最中であることを表す、コピー中状態、コピーが終了したことを表す、コピー終了状態、移動処理が終了したことを示す、移動終了状態が登録され、各処理の状態により、未コピー状態→コピー中状態→コピー終了状態→移動終了状態という順番で登録が変更される。
【０１６３】
したがって、データ移動処理部１０６によって、データコピーが実行される前に、移動対象となったすべてのオブジェクトに対し、移動元オブジェクトＩＤ１６６と、ディレクトリ構成情報として、親オブジェクト番号１７８、およびオブジェクト属性情報１８０と、移動先サーバ情報１６８が登録されるとともに、進行状態情報１７７が、未コピー状態にセットされる。また、移動処理を行うオブジェクト群のディレクトリツリー上、最上位に位置するディレクトリに相当するオブジェクトのエントリの親オブジェクト番号１７８は０を登録する。
【０１６４】
ここで、この実施形態の処理の概要を図３５を用いて説明する。まず、移動対象のオブジェクトを決定するとともに、移動対象となる全てのオブジェクトに関する情報を移動オブジェクト状態管理テーブル１３０にマップとして登録する。次に、オブジェクトの移動を開始し、それに伴なって、マップ（移動オブジェクト状態管理テーブル１３０）の更新を行い、移動の終了を確認する。その際、オブジェクトを小さな移動処理単位に分割し、移動処理単位を１つずつ移動元から移動先にコピーするものとし、コピー後、コピーされたオブジェクトの同期を確認するとともに、上述した擬似ファイルシステムにおけるディレクトリの付け替えを行う（ＦＳ分岐の作成）。その際、コピー終了領域への更新は、データ移動処理部１０６によってブロックする。１つずつ移動処理単位をコピーすることを繰り返して、最終的に移動が終了したら、移動元にあるオリジナルのオブジェクトを削除し、これによって処理が完了する。
【０１６５】
次に、データ移動処理部１０６によって行われるオブジェクト群の移動処理の詳細について、図３６のフローチャートを用いて説明する。オブジェクト移動処理部１０６は、まず、移動オブジェクト状態管理テーブル１３０へ移動対象となるすべてのオブジェクトに関する情報を登録した後（Ｓ１４０）、親オブジェクト番号１７８より判別した、ディレクトリ階層上もっとも上位のディレクトリとなるオブジェクトと、親オブジェクト番号１７８より判別した、前述のオブジェクトの下層に含まれる１階層分のすべてのオブジェクトの移動処理を開始し（Ｓ１４１）、移動元サーバ３から移動先サーバ３へのコピーを実行する（Ｓ１４２）。データ移動処理部１０６は、実際にコピー処理を行うオブジェクトの移動オブジェクト状態管理テーブル１３０中の移動先オブジェクトＩＤ１６７へ、移動先のサーバ３から抽出した元オブジェクトＩＤ１５０を、オブジェクトＩＤ書き換え部１０１により、圧縮型情報付帯オブジェクトＩＤ１５１、および追記型情報付帯オブジェクトＩＤ１５５に変換したものを登録後、進行状態情報１７７がコピー中状態にセットし、移動元から移動先へのコピーを開始する。処理移動先へのコピー処理の終了とともに、進行状態情報１７７は、コピー終了状態にセットされる。進行状態情報１７７が、コピー中状態であるオブジェクトへクライアント１からの更新要求が発生した場合、データ解析部１２４は、更新データ以外の書き込み位置情報などを履歴情報として、更新ログ情報１７９に追記すする。当初のコピー処理が終了した後、更新ログ情報１７９に情報が登録されているかを確認し（Ｓ１４３）、登録されていれば、更新ログ情報１７９より更新差分のみのコピー処理を実行して、更新ログ情報１７９をクリアした後、進行状態情報１７７をコピー終了状態へセットする（Ｓ１４４）。
【０１６６】
一方、ステップＳ１４３において更新ログ情報が登録されていない場合には、１階層分のオブジェクトの進行状態情報１７７がすべてコピー終了状態にセットされた後、データ移動処理部１０６は、擬似ファイルシステム１０５に登録されている統合ディレクトリツリー情報のうち、コピーが終了した部分の移動元のオブジェクト部分のマッピングを移動先のオブジェクトへのマッピングとして変更を加えた後、マッピングを変更したオブジェクトの進行状態情報１７７を移動終了状態へセットする（Ｓ１４５）。そして前述の最上位ディレクトリに相当するオブジェクトの下層に含まれる１階層分のオブジェクトの中に、オブジェクト属性情報１８０に登録されている情報がディレクトリの属性であるオブジェクトが存在する、つまりサブディレクトリとなるオブジェクトが存在するかを確認し（Ｓ１４６）、サブディレクトリが存在する場合、データ移動処理部１０６は、そのサブディレクトリとなるオブジェクトから１階層分のすべてのオブジェクトを、最上位ディレクトリの場合と同様にして、コピー処理を行い（Ｓ１４７）、擬似ディレクトリ１０５のマッピング情報を変更する。サブディレクトリが存在しない場合、すなわち全ての処理が終了している場合には、ステップＳ１４８に移行して、移動元のデータを削除する。
【０１６７】
このようにして、サブディレクトリの有無を確認し、１階層分ずつディレクトリごとにディレクトリツリーをたどって移動処理を実行し、移動オブジェクト状態管理テーブル１３０に登録されたすべてのオブジェクトの進行状態情報１７７が、移動終了状態にセットされた後、移動元のサーバ３に存在する移動対象となったオブジェクトをすべて削除して、すべての移動処理を終了する（Ｓ１４８）。
【０１６８】
次に、データ移動処理部１０６により移動処理が行われている時のクライアント１からのファイルアクセス要求パケット、および応答パケットのスイッチ１００での処理方法の詳細について説明する。クライアント１からのファイルアクセス要求は、データや属性の読み出しを実行する読み出し操作、データの書き込みや属性変更などを実行する更新操作、オブジェクトを新しく作成する新規作成操作、オブジェクトを削除する削除操作があり、スイッチ１００は各操作によって処理方法を変更している。各操作におけるスイッチ１００での処理方法を図３７から図４１までのフローチャートを用いて説明する。
【０１６９】
クライアント１のファイルアクセス要求パケットを受信すると、パケット処理部１０３は、ファイルアクセス要求データと、クライアント１のクライアントＩＰアドレス情報１６０およびクライアントＭＡＣアドレス情報１６１を要求パケットから抽出し、それらをファイルアクセス管理部１０２へ送信する（Ｓ１５０）。
【０１７０】
データ解析部１２４は、受信した要求データを解析し、圧縮型情報付帯オブジェクトＩＤ１５１もしくは追記型情報付帯オブジェクトＩＤ１５５に含まれるサーバ識別情報１５４を抽出し、移動オブジェクト状態管理部１３０の移動先サーバ情報１６８に一致するサーバ識別情報１５４がないか確認する（Ｓ１５１）。
【０１７１】
前述したサーバ識別情報１５４が移動先サーバ情報１６８に存在しない場合、以降のスイッチ１００における操作は第２の実施形態における要求パケット、および応答パケットの処理と同様の方法とる（Ｓ１５２）。
【０１７２】
一方、ステップＳ１５１においてサーバ識別情報１５４が移動先サーバ情報１６８に存在する場合は、移動オブジェクト状態管理テーブル１３０の移動元オブジェクトＩＤ１６６に圧縮型情報付帯オブジェクトＩＤ１５１もしくは追記型情報付帯オブジェクトＩＤ１５５が登録されているか、エントリを検索して確認する（Ｓ１５３）。
【０１７３】
ここで、移動元オブジェクトＩＤ１６６に、一致する圧縮型情報付帯オブジェクトＩＤ１５１もしくは追記型情報付帯オブジェクトＩＤがない場合、以降のスイッチ１００における操作は第２の実施形態における要求パケット、および応答パケットの処理と同様の方法をとる（Ｓ１５４）。一方、移動元オブジェクトＩＤ１６６に圧縮型情報付帯オブジェクトＩＤ１５１もしくは追記型情報付帯オブジェクトＩＤが存在する場合、データ解析部１２４は、要求データからどのような操作要求であるかを判別する（Ｓ１５５）。
【０１７４】
ステップＳ１５５において、要求データから得られた操作要求が読み出し操作であった場合（Ｓ１６０）には、移動オブジェクト状態管理テーブル１３０の該当する移動元オブジェクトＩＤ１６６のエントリの進行状態情報１７７を参照し、未コピー状態、コピー中状態、コピー済み状態のいずれかの状態であった場合（Ｓ１６１）、移動元のサーバ３へ要求パケットを転送することになり（Ｓ１６２）、以降のスイッチ１００における操作は、第２の実施形態における要求パケット、および応答パケットの処理と同様の方法をとる（Ｓ１６３）。
【０１７５】
ステップＳ１６１において、未コピー、コピー中、コピー済みのいずれでもない場合は、移動済み状態であった場合（Ｓ１６４）であり、移動先のサーバ３へ要求パケットを転送することになり（Ｓ１６５）、移動オブジェクト状態管理テーブル１３０の該当した移動元オブジェクトＩＤ１６６のエントリの移動先オブジェクトＩＤ１６７に登録されている圧縮型情報付帯オブジェクトＩＤ１５１、もしくは追記型情報付帯オブジェクトＩＤ１５５に変換し（Ｓ１６６）、以降のスイッチ１００における操作は、第２の実施形態における要求パケット、および応答パケットの処理と同様の方法をとる（Ｓ１６３）。
【０１７６】
ステップＳ１５５において要求データから得られた操作要求が更新操作であった場合（Ｓ１７０）、移動オブジェクト状態管理テーブル１３０の該当する移動元オブジェクトＩＤ１６６のエントリの進行状態情報１７７を参照し、未コピー状態であった場合（Ｓ１７１）、移動元のサーバ３へ要求パケットを転送することになり（Ｓ１７２）、以降のスイッチ１００における操作は、第２の実施形態における要求パケット、および応答パケットの処理と同様の方法をとる（Ｓ１７３）。
【０１７７】
ステップＳ１７１において未コピー状態でない場合には、進行状態情報１７７から操作対象がコピー中かどうかを判断し、コピー中状態であった場合（Ｓ１７４）、移動元サーバ３へ要求パケットを転送することになり（Ｓ１７５）、その該当エントリの更新ログ情報１７９に、書き込み位置情報などの更新データ以外のメタ情報を追記し（Ｓ１７６）、以降のスイッチ１００における操作は、第２の実施形態における要求パケット、および応答パケットの処理と同様に方法をとる。ただし、移動元サーバ３からの応答データが、クライアント１に削除権限がないなどの理由でエラーとなっている場合は、応答データをクライアント１へ転送し、移動オブジェクト状態管理テーブル１３０の更新ログ情報１７９へ登録したデータを削除する（Ｓ１７７）。
【０１７８】
ステップＳ１７４においてコピー中でない場合には、進行状態情報１７７を参照して操作対象がコピー済みであるかどうかを判断し、コピー終了状態であった場合（Ｓ１７８）、移動元サーバ３および移動先サーバ３の両方へ転送することになり（Ｓ１７９）、トランザクションＩＤ管理テーブル１２５に必要な情報を登録した後、要求パケットに含まれる圧縮型情報付帯オブジェクトＩＤ１５１、もしくは追記型情報付帯オブジェクトＩＤ１５５をオブジェクトＩＤ書き換え部１０１で変換した元オブジェクトＩＤ１５０と、圧縮型情報付帯オブジェクトＩＤ１５１もしくは追記型情報付帯オブジェクトＩＤ１５５から抽出したサーバ識別情報１５４を元に、サーバ情報管理テーブル１２６から抽出した移動元サーバ３のＩＰアドレスやＭＡＣアドレス情報などの転送先のアドレス情報をファイルシステム補完処理部１０４に送る。
【０１７９】
同様にして、該当移動元オブジェクトＩＤ１６６のエントリの移動先オブジェクトＩＤ１６７に登録されている、圧縮型情報付帯オブジェクトＩＤ１５１、もしくは追記型情報付帯オブジェクトＩＤ１５５をオブジェクトＩＤ書き換え部１０１で変換した元オブジェクトＩＤ１５０と、移動先サーバ情報１６８に登録されているサーバ識別情報１５４を元に、サーバ情報管理テーブル１２６から抽出した移動先サーバ３のＩＰアドレスやＭＡＣアドレス情報などの転送先のアドレス情報をファイルシステム補完処理部１０４に送る。
【０１８０】
ファイルシステム補完処理部１０４では、ファイルアクセス管理部１０２より受け取った、移動元サーバ３向けのデータと、移動先サーバ３向けのデータを元に、要求パケットを移動元サーバ３、および移動先サーバ３へパケット処理部１０３を介してスイッチ１００から送信する（Ｓ１８０）。
【０１８１】
移動元サーバ３、および移動先サーバ３からのそれぞれの応答パケットをスイッチ１００で受け取り、パケット処理部１０３でそれぞれの応答データを抽出して、ファイルシステム補完処理部１０４に送り、ファイルシステム補完処理部１０４において、２つの応答データを受け取ったことを確認した後、応答データをファイルアクセス管理部１０２へ送る。以降のスイッチ１００での操作は、第１の実施形態の応答パケットの処理方法と同様な方法をとり、クライアント１へ応答パケットが返される（Ｓ１８１）。
【０１８２】
ステップＳ１７８においてコピー済みでない場合は、操作対象が移動済み状態であるので（Ｓ１８２）、移動先のサーバ３へ要求パケットを転送することになり（Ｓ１８３）、移動オブジェクト状態管理テーブル１３０の該当した移動元オブジェクトＩＤ１６６のエントリの移動先オブジェクトＩＤ１６７に登録されている圧縮型情報付帯オブジェクトＩＤ１５１、もしくは追記型情報付帯オブジェクトＩＤ１５５に変換し（Ｓ１８４）、以降のスイッチ１００における操作は、第２の実施形態における要求パケット、および応答パケットの処理と同様の方法をとる（Ｓ１８５）。
【０１８３】
ステップＳ１５５において要求データから得られた操作要求が新規作成操作であった場合（Ｓ１９０）、移動オブジェクト状態管理テーブル１３０の新規作成を行うディレクトリに相当するオブジェクトに該当する移動元オブジェクトＩＤ１６６のエントリの進行状態情報１７７を参照し、未コピー状態、コピー中状態、コピー済み状態のいずれかであるかを判定し（Ｓ１９１）、未コピー状態、コピー中状態、コピー済み状態のいずれかである場合には、移動元のサーバ３へ要求パケットを転送することになり（Ｓ１９２）、以降のスイッチ１００におけるパケット転送操作は、第２の実施の形態における要求パケット、および応答パケットの処理と同様の方法をとる（Ｓ１９３）とともに、データ移動処理部１０６は移動オブジェクト状態管理テーブル１３０へ作成されたオブジェクトのエントリを加える（Ｓ１９４）。
【０１８４】
ステップ１９０において未コピー状態、コピー中状態、コピー済み状態のいずれでもない場合、すなわち移動済み状態であった場合（Ｓ１９５）、移動先のサーバ３へ要求パケットを転送することになり（Ｓ１９６）、移動オブジェクト状態管理テーブル１３０の該当した移動元オブジェクトＩＤ１６６のエントリの移動先オブジェクトＩＤ１６７に登録されている圧縮型情報付帯オブジェクトＩＤ１５１、もしくは追記型情報付帯オブジェクトＩＤ１５５に変換し（Ｓ１９７）、以降のスイッチ１００における操作は、第２の実施形態における要求パケット、および応答パケットの処理と同様の方法をとる（Ｓ１９８）。
【０１８５】
ステップＳ１５５において  要求データから得られた操作要求が削除操作であった場合（Ｓ２００）、移動オブジェクト状態管理テーブル１３０の該当する移動元オブジェクトＩＤ１６６のエントリの進行状態情報１７７を参照し、未コピー状態であるかどうかを判定し（Ｓ２０１）、未コピー状態であった場合には、移動元のサーバ３へ要求パケットを転送することになり（Ｓ２０２）、以降のスイッチ１００におけるパケット転送操作は、第２実施の形態における要求パケット、および応答パケットの処理と同様の方法をとる（Ｓ２０３）とともに、データ移動処理部１０６は、移動オブジェクト状態管理テーブル１３０に登録されている削除操作されるオブジェクトのエントリを削除する。ただし、移動元サーバ３から返答される応答データが、クライアント１に削除権限がないなどの理由でエラーとなっている場合は、応答データをクライアント１へ転送し、該当するオブジェクトの移動オブジェクト状態管理テーブル１３０からの削除は行わない（Ｓ２０４）。
【０１８６】
ステップ２０１において未コピー状態でない場合には、進行状態情報１７７によりコピー中状態であるかどうかを判断し（Ｓ２０５）、コピー中状態であれば、移動元のサーバ３、および移動先のサーバ３へ要求を送信することになり（Ｓ２０６）、データ移動処理部１０６へ該当するオブジェクトのコピー処理を停止させる（Ｓ２０７）。書き込み操作の場合と同様にして、移動元サーバ３、および移動先サーバ３へ要求パケットの送信と、それぞれから返答される応答パケット処理を実行（Ｓ２０８）した後、データ移動処理部１０６は、該当するオブジェクトの移動オブジェクト状態管理テーブル１３０のエントリを削除する。ただし、移動元サーバ３および移動先サーバ３から返答される応答データが、クライアント１に削除権限がないなどの理由によりエラーとなった場合は、応答データをクライアント１へ転送するとともに、該当するオブジェクトの移動オブジェクト状態管理テーブル１３０からの削除は行わずに、データ移動処理部１０６での該当するオブジェクトのコピーを再開させる（Ｓ２０９）。
【０１８７】
ステップＳ２０５においてコピー中状態でない場合には、進行状態情報１７７によりコピー終了状態であるかどうかを判断し（ステップＳ２１０）、コピー終了状態である場合には、移動元のサーバ３および移動先のサーバ３に転送することになり（Ｓ２１１）、コピー中状態の場合と同様にして、ステップＳ１８０か〜Ｓ１７１と同様の、移動元サーバ３、および移動先サーバ３へ要求パケットの送信と、それぞれから返答される応答パケット処理を実行した後（Ｓ２１２）、ステップＳ２０４に移行し、データ移動処理部１０６は、該当するオブジェクトの移動オブジェクト状態管理テーブル１３０のエントリを削除する。ただし、移動元サーバ３および移動先サーバ３から返答される応答データが、クライアント１に削除権限がないなどの理由でエラーとなっている場合は、応答データをクライアント１へ転送し、該当するオブジェクトの移動オブジェクト状態管理テーブル１３０からの削除は行わない。
【０１８８】
ただし、要求データから得られたさ操作対象のオブジェクトがディレクトリであり、かつ進行処理状態情報１７７がコピー中、もしくはコピー終了状態であった場合、移動元サーバ３と移動先サーバ３への要求送信の方法は、同時に要求を送信するのではなく、まず移動元サーバ３へ削除要求を送信し、削除操作要求が成功した場合のみ、移動先サーバに要求を送信することとし、移動元サーバ３においてエラーとなった場合は、移動先サーバ３へは削除要求を送らない。
【０１８９】
ステップＳ２１０においてコピー済み状態でない場合は、操作対象が移動済み状態である場合であるから（Ｓ２１３）、移動先のサーバ３へ要求パケットを転送することになり（Ｓ２１４）、移動オブジェクト状態管理テーブル１３０の該当した移動元オブジェクトＩＤ１６６のエントリの移動先オブジェクトＩＤ１６７に登録されている圧縮型情報付帯オブジェクトＩＤ１５１、もしくは追記型情報付帯オブジェクトＩＤ１５５に変換し（Ｓ２１５）、以降のスイッチ１００における操作は、第２の実施形態における要求パケット、および応答パケットの処理と同様の方法をとる（Ｓ２１６）。
【０１９０】
データ移動処理部１０６によるオブジェクト群の移動処理がすべて完了し、移動元サーバ３の該当するオブジェクトが削除された後、移動オブジェクト状態管理テーブル１３０を用いた、要求パケット、および応答パケット処理は、移動オブジェクト状態管理テーブル１３０のエントリを一定時間後にデータ移動処理部１０６によって削除されるまで有効となる。
【０１９１】
（第１１の実施形態）本実施形態は、第１０の実施形態をさらに変更した実施形態である。第１０の実施形態では、移動対象となったすべてのオブジェクトの移動処理の終了後、移動元サーバ３の移動対象オブジェクトを削除していたが、本実施の形態では、前記移動元サーバ３の移動対象オブジェクトの削除を行なわない。また、移動処理中に、クライアント１からの更新操作要求、新規作成要求、削除要求のいずれかの操作要求が来た場合、操作対象オブジェクトの移動オブジェクト管理テーブル１３０の進行状態情報１７７が移動済み状態であっても、コピー済み状態と同じ処理をスイッチ１００で行うことで、移動元の移動対象のオブジェクトとそのオブジェクトの複製である移動先の移動対象のオブジェクト間で同期を取り続けることが可能となる。
【０１９２】
（第１２の実施形態）本実施形態は、第１０の実施形態および第１１の実施形態をさらに変更した実施形態である。第１０の実施形態、もしくは第１１の実施形態では、スイッチ１００での移動処理中にクライアント１からの更新操作要求が来た場合、操作対象となっているオブジェクトに移動オブジェクト状態管理テーブル１３０の更新ログ情報１７９に更新のメタ情報だけでなく、更新データも登録し、後々の更新部分のコピー処理時に、移動元サーバ３から読み出しを行わずに、直接移動先サーバ３の更新操作対象オブジェクトへ更新処理を行う。
【０１９３】
（まとめ）なお、前述のように、各実施形態に示すスイッチ装置は、図１に示すネットワーク構成のネットワークファイルシステムに適用することができるが、各実施形態のスイッチ装置は、図２０に示すように、ネットワーク２ではなく、スイッチ１００にサーバ３を直接接続する構成であっても、上述の機能を提供することが可能である。このようなネットワーク構成とすれば、クライアント１からサーバ３へのスイッチ１００を経由しないアクセスを完全に遮断することができるため、クライアント１から直接サーバ３へ不正にアクセスすることによって発生するシステムダウンを防ぐことが可能となる。
【０１９４】
また、各実施形態に示すスイッチ装置では、オブジェクトＩＤ書き換え部１０１の代わりに、サーバ３が生成した元オブジェクトＩＤ１５０とサーバ識別情報１５４との組み合わせから成るエントリを有するテーブル（第１のテーブル）を備えていてもよい。この場合、データ解析部１２４は、このテーブルを参照して、ファイルアクセス要求に含まれるオブジェクトＩＤに対応するサーバ識別情報を求め、サーバ情報管理テーブル１２６を参照して、そのサーバ識別情報に対応するサーバのアドレス情報を求め、そのアドレス情報に基づいてそのファイルアクセス要求の転送先を決定する。このようにすれば、元オブジェクトＩＤ１５０をクライアント１へそのまま渡しても同様の機能を実現することができる。しかし、この場合には、同じデータ列を有する元オブジェクトＩＤ１５０が生成される可能性もあるため、そのテーブルに既に登録されている元オブジェクトＩＤ１５０と同一のデータ列を有するオブジェクトＩＤをスイッチ１００で受信した場合は、スイッチ１００において、そのオブジェクトＩＤを別のデータ列に書き換え、前述のテーブルに書き換えられたデータ列を登録するエントリを設けるなどの処理が必要となる。
【０１９５】
また、上述した各実施形態のスイッチ装置は、ネットワークファイルシステムに適用されているが、本発明はこれに限定されるものではなく、複数のサーバが所有するリソース（オブジェクト）をクライアントが利用するシステムであれば、ネットワークファイルシステム以外にも適用することができる。
【０１９６】
なお、スイッチ１００には、スイッチ１００の動作を実行するためのプログラムが記録されている。このプログラムは、コンピュータサーバであるスイッチ１００のハードウエアの動作を制御するものであり、上述したスイッチ１００の処理は、全てそのプログラムによって指定されているものである。
【図面の簡単な説明】
【０１９７】
【図１】本発明の第１の実施形態のスイッチ装置が設けられたクライアント・サーバ形式のリモートファイルシステムであるネットワークファイルシステムのブロック図である。
【図２】本発明の第１の実施形態のスイッチの構成を示すブロック図である。
【図３】ファイルアクセス管理部の構成を示すブロック図である。
【図４】オブジェクトＩＤ書き換え部の構成を示すブロック図である。
【図５】オブジェクト書き換え部において書き換えられるオブジェクトＩＤのフォーマットの一例を示す図である。
【図６】アルゴリズムテーブルの構成を示す図である。
【図７】サーバ情報管理テーブル構成を示す図である。
【図８】トランザクションＩＤ管理テーブルの構成を示す図である。
【図９】応答データを受信した際のオブジェクト書き換え部の動作を示すフローチャートである。
【図１０】本発明の第２の実施形態のスイッチ装置の構成を示すブロック図である。
【図１１】本発明の第２の実施形態のスイッチ装置におけるファイルアクセス管理部の構成を示すブロック図である。
【図１２】擬似ファイルシステム１０５のディレクトリツリー２００の一例を示す図である。
【図１３】特殊オブジェクトＩＤ管理テーブルの構成を示す図である。
【図１４】本発明の第２の実施形態のスイッチ装置の動作を示すフローチャートである。
【図１５】本発明の第３の実施形態のスイッチ装置の構成を示すブロック図である。
【図１６】本発明の第３の実施形態のスイッチ装置におけるファイルアクセス管理部の構成を示すブロック図である。
【図１７】データの移動を示す図である。
【図１８】移動オブジェクトＩＤ管理テーブルの構成を示す図である。
【図１９】パケットを受信した場合のスイッチの動作を示すフローチャートである。
【図２０】本発明のスイッチ装置が適用されるクライアント・サーバ形式のリモートファイルシステムであるネットワークファイルシステムのブロック図である。
【図２１】オブジェクトＩＤのフォーマットの一例を示す図である。
【図２２】オブジェクトＩＤのフォーマットの一例を示す図である。
【図２３】第６の実施形態における、本発明による擬似ファイルシステムの具体的な構成法を示す図である。
【図２４】本発明によるスイッチ装置が、通常のファイルシステム処理によりディレクトリ移動を実施した場合の例を示す図である。
【図２５】本発明による第６の実施形態の動作を示す図である。
【図２６】本発明の第７の実施形態のスイッチ装置におけるファイルアクセス管理部の構成を示すブロック図である。
【図２７】処理分類テーブルの構成を示す図である。
【図２８】本発明の第７の実施形態のハードウエア構成のブロック図である。
【図２９】本発明の第８の実施形態の想定するディレクトリツリー構成の例を示す図である。
【図３０】本発明の第８の実施形態の動作を説明するフローチャートである。
【図３１】他の方法、プロトコルによる統合ディレクトリツリー環境が並存する例を示す図である。
【図３２】本発明の第９の実施形態による、統合ディレクトリツリー環境の取り込みを説明するための図である。
【図３３】本発明の第１０の実施形態におけるファイルアクセス管理部内の構成を示すブロック図である。
【図３４】本発明の第１０の実施形態における移動オブジェクト状態管理テーブルの構成を示す図である。
【図３５】本発明の第１０の実施形態での処理の概要を説明する図である。
【図３６】本発明の第１０の実施形態におけるデータ移動処理部におけるオブジェクトの移動処理手順をフローチャートで示した図である。
【図３７】本発明の第１０の実施形態におけるデータ移動処理部の移動処理中のクライアントからの要求パケットのスイッチ装置における処理手順をフローチャートで示した図である。
【図３８】読み出し操作要求時の処理手順をフローチャートで示した図である。
【図３９】更新操作要求時の処理手順をフローチャートで示した図である。
【図４０】新規作成操作要求時の処理手順をフローチャートで示した図である。
【図４１】削除操作要求時の処理手順をフローチャートで示した図である。
【図４２】ウェブスイッチの機能を示すブロック図である。
【図４３】特開２００１−５１８９０号公報に開示された方法を実行するシステムの構成を示すブロック図である。
【符号の説明】
【０１９８】
１    クライアント
２    ネットワーク
３    サーバ
４    ファイルシステム
５    記憶装置
６    ローカルファイルシステム
７    サーバ間専用結線
１００    スイッチ
１０１    オブジェクトＩＤ書き換え部
１０２    ファイルアクセス管理部
１０３    パケット処理部
１０４    ファイルシステム補完処理部
１０５    擬似ファイルシステム
１０６    データ移動処理部
１０７    データ解析高速処理部
１０８    データ解析非高速処理部
１２０    要求応答分配部
１２１    要求処理部
１２２    応答処理部
１２３    アルゴリズムテーブル
１２４    データ解析部
１２５    トランザクションＩＤ管理テーブル
１２６    サーバ情報管理テーブル
１２７    特殊オブジェクトＩＤ管理テーブル
１２８    移動オブジェクトＩＤ管理テーブル
１２９    処理分類テーブル
１３０    移動オブジェクト状態管理テーブル
１５０    元オブジェクトＩＤ
１５１    圧縮型情報付帯オブジェクトＩＤ
１５２    圧縮データ
１５３    アルゴリズム識別情報
１５４    サーバ識別情報
１５５    追記型情報付帯オブジェクトＩＤ
１５６    削除データ
１５７    削除データ位置
１５８    サーバＩＰアドレス情報
１５９    サーバＭＡＣアドレス情報
１６０    トランザクションＩＤ
１６１    クライアントＩＰアドレス情報
１６２    クライアントＭＡＣアドレス情報
１６３    ファイルアクセス命令情報
１６４    オブジェクトＩＤ
１６５    命令情報
１６６    移動元オブジェクトＩＤ
１６７    移動先オブジェクトＩＤ
１６８    移動先サーバ情報
１６９    データ移動フラグ
１７０    フラグ付き圧縮型情報付帯オブジェクトＩＤ
１７１    フラグ付き追記型情報付帯オブジェクトＩＤ
１７２    データ移動世代番号
１７３    世代番号付き圧縮型情報付帯オブジェクトＩＤ
１７４    世代番号付き追記型情報付帯オブジェクトＩＤ
１７５    ポート番号情報
１７６    処理分類情報
１７７    進行状態情報
１７８    親オブジェクト番号
１７９    更新ログ情報
１８０    オブジェクト属性情報
２００    擬似ファイルシステムディレクトリツリー
２２０    ルートディレクトリ
２２１〜２２４、３００    ディレクトリ
２２５、３０１〜３０３    ダミーディレクトリ
２２６〜２７    オブジェクトグループ
２５０    サーバＡ
２５１    サーバＢ
３１０    サーバＬ
３１１    サーバＭ
３２０    他の統合ディレクトリツリーのイメージ
９００    ウェブスイッチ
９０２    ＨＴＴＰ処理部
９０３    パケット処理部
Ｓ１００〜１０８、Ｓ１１０〜Ｓ１１７、Ｓ１２０〜Ｓ１３２    ステップ
Ｓ１４０〜１４８、Ｓ１５０〜Ｓ１５５、Ｓ１６０〜Ｓ１６６    ステップ
Ｓ１７０〜１８５、Ｓ１９０〜Ｓ１９８、Ｓ２００〜Ｓ２１６    ステップ
【図１】
2007042115.tif 000003
【図２】
2007042115.tif 000004
【図３】
2007042115.tif 000005
【図４】
2007042115.tif 000006
【図５】
2007042115.tif 000007
【図６】
2007042115.tif 000008
【図７】
2007042115.tif 000009
【図８】
2007042115.tif 000010
【図９】
2007042115.tif 000011
【図１０】
2007042115.tif 000012
【図１１】
2007042115.tif 000013
【図１２】
2007042115.tif 000014
【図１３】
2007042115.tif 000015
【図１４】
2007042115.tif 000016
【図１５】
2007042115.tif 000017
【図１６】
2007042115.tif 000018
【図１７】
2007042115.tif 000019
【図１８】
2007042115.tif 000020
【図１９】
2007042115.tif 000021
【図２０】
2007042115.tif 000022
【図２１】
2007042115.tif 000023
【図２２】
2007042115.tif 000024
【図２３】
2007042115.tif 000025
【図２４】
2007042115.tif 000026
【図２５】
2007042115.tif 000027
【図２６】
2007042115.tif 000028
【図２７】
2007042115.tif 000029
【図２８】
2007042115.tif 000030
【図２９】
2007042115.tif 000031
【図３０】
2007042115.tif 000032
【図３１】
2007042115.tif 000033
【図３２】
2007042115.tif 000034
【図３３】
2007042115.tif 000035
【図３４】
2007042115.tif 000036
【図３５】
2007042115.tif 000037
【図３６】
2007042115.tif 000038
【図３７】
2007042115.tif 000039
【図３８】
2007042115.tif 000040
【図３９】
2007042115.tif 000041
【図４０】
2007042115.tif 000042
【図４１】
2007042115.tif 000043
【図４２】
2007042115.tif 000044
【図４３】
2007042115.tif 000045