(57)【要約】【課題】オンラインのファイルサーバ間でもファイルを正常にマイグレーションすることが可能なファイルマイグレーション装置を提供する。【解決手段】メッセージフォワード手段１２０は、クライアントとサーバとのメッセージの転送を中継をしている。排他ロック状態情報管理手段１４０は、排他ロック状態情報を管理する。ファイル複製手段１３０は、ファイルの複製の作成を要求されると、排他ロック状態情報管理手段１４０に排他ロック状態情報を問合せ、そのファイルに排他ロックがかかっていれば、排他ロックの所有者になりすまして複製を作成する。メッセージフォワード手段１２０は、ファイルと複製との間の一貫性を保つための処理の間、メッセージの転送を遮断する。ファイル複製手段１３０は、その間に一貫性がとれているか否か調べて、一貫性がとれていなければ再び複製を作成し、一貫性がとれていればファイルへのアクセスを複製に切り替える。【選択図】      図２
2005018440.tif 000002
【特許請求の範囲】
【請求項１】
ファイルを記憶する複数のサーバと該サーバにアクセスするクライアントとのメッセージ通信にて経由される情報処理装置であって、
前記ファイルの各々に対する排他ロックの有無および該排他ロックの所有者の情報を含む排他ロック状態情報を管理する排他ロック状態情報管理手段と、
前記サーバ間でのファイルの複製の作成を要求されると、前記排他ロック状態情報管理手段に前記排他ロック状態情報を問合せ、該ファイルに排他ロックがかかっていれば、該排他ロックの所有者になりすまして該ファイルの複製を作成するファイル複製手段とを有する情報処理装置。
【請求項２】
前記クライアントと前記サーバとのメッセージの転送を中継をしており、前記ファイルと該ファイルの複製との間の一貫性を保つための処理の間、前記メッセージの転送を遮断するメッセージフォワード手段をさらに有し、
前記ファイル複製手段は、前記メッセージフォワード手段が前記メッセージの転送を遮断している間に、前記ファイルと前記複製の間で一貫性がとれているか否か調べて、一貫性がとれていなければ再び複製を作成し、一貫性がとれていれば前記ファイルへのアクセスを前記複製に切り替える、請求項１記載の情報処理装置。
【請求項３】
前記排他ロック状態情報管理手段は、クライアント、トランスポート、ユーザ、プロセス、またはこれらのうち少なくとも２つの組み合わせを識別するための情報を、前記排他ロックの所有者の情報として管理する、請求項１または２に記載の情報処理装置。
【請求項４】
前記排他ロック状態情報管理手段は、前記排他ロックの有無および該排他ロックの所有者の情報に加えて、該排他ロックの範囲を示す情報をも前記排他ロック状態情報に含めて管理しており、
前記ファイル複製手段は、前記排他ロックの範囲を示す情報を参照し、前記ファイルの排他ロックがかかっている範囲を複製するときに前記排他ロックの所有者になりすます、請求項１〜３のいずれか１項に記載の情報処理装置。
【請求項５】
前記排他ロック状態情報管理手段は、前記クライアントから前記サーバへの排他ロックを要求する要求メッセージに含まれる情報を保持し、該排他ロック要求メッセージによる要求が受け入れられた旨の応答メッセージが前記サーバからあると、保持しておいた前記情報に基づいて前記排他ロック状態情報を更新する、請求項１〜４のいずれか１項に記載の情報処理装置。
【請求項６】
ファイルを記憶する複数のサーバと該サーバにアクセスするクライアントとの通信にて経由される情報処理装置であって、
前記ファイルの各々のオープン状態情報を管理するオープン状態情報管理手段と、
前記サーバ間でファイルの複製を作成した後に該ファイルへのアクセスを該複製に切り替えるファイル複製手段と、
前記ファイルへのアクセスが前記複製に切り替わった後、該複製への最初のアクセスの前に、前記オープン状態情報管理手段に問合せて前記オープン状態情報を取得し、移動元サーバにおいて前記ファイルがオープンされていれば、オープン状態を移動先サーバに再現するオープン状態再現手段とを有する情報処理装置。
【請求項７】
前記クライアントと前記サーバとのメッセージの転送を中継しており、オープン状態を変化させる要求メッセージまたは応答メッセージに含まれる情報を前記オープン状態情報管理手段に通知するメッセージフォワード手段をさらに有し、
前記オープン状態情報管理手段は、オープン状態を変化させる要求メッセージに含まれる情報を前記メッセージフォワード手段から受けて保持し、該要求メッセージによる要求が受け入れられた旨の応答メッセージに含まれる情報を受けると、前記オープン状態情報を更新する、請求項６記載の情報処理装置。
【請求項８】
前記オープン状態再現手段は、前記移動元サーバにてオープンされていた前記ファイルの移動先サーバ上の前記複製をオープンして前記移動先サーバから第１のトークンを取得し、該ファイルが前記クライアント上のユーザによって前記移動元サーバにてオープンされたときに該移動元サーバから該ユーザに渡されていた第２のトークンと前記第１のトークンとの対応を記録することによりオープン状態を再現する、請求項６または７に記載の情報処理装置。
【請求項９】
前記オープン状態再現手段は、オープン状態を再現するとき、前記ユーザが認証されたときに前記移動元サーバから前記ユーザに渡された第３のトークン、または前記ファイルの存在するボリュームにアクセスしたときに前記移動元サーバから前記ユーザに渡された第４のトークンと、それらに対応する前記移動先サーバから渡されたトークンとの対応をさらに記録する、請求項８記載の情報処理装置。
【請求項１０】
ファイルを記憶する複数のサーバと該サーバにアクセスするクライアントとの通信にて経由される情報処理装置において前記サーバの前記ファイルを管理するファイル管理方法であって、
前記ファイルの各々に対する排他ロックの有無および該排他ロックの所有者の情報を含む排他ロック状態情報を管理しておくステップと、
前記サーバ間でのファイルの複製の作成を要求されると、前記排他ロック状態情報を参照し、前記ファイルに排他ロックがかかっていれば、該排他ロックの所有者になりすまして該ファイルの複製を作成するステップとを有するファイル管理方法。
【請求項１１】
前記ファイルと該ファイルの複製との間の一貫性を保つための処理の間、前記サーバと前記クライアントの間のメッセージの転送を遮断するステップと、
前記メッセージの転送が遮断されている間に、前記ファイルと前記複製の間で一貫性がとれているか否か調べて、一貫性がとれていなければ再び複製を作成し、一貫性がとれていれば前記ファイルへのアクセスを前記複製に切り替えるステップとをさらに有する、請求項１０記載のファイル管理方法。
【請求項１２】
前記排他ロックの所有者の情報は、クライアント、トランスポート、ユーザ、プロセス、またはこれらのうち少なくとも２つの組み合わせを識別するための情報によって表される、請求項１０または１１に記載のファイル管理方法。
【請求項１３】
前記排他ロックの有無および該排他ロックの所有者の情報に加えて、該排他ロックの範囲を示す情報をも前記排他ロック状態情報に含めて管理しており、
前記排他ロックの範囲を示す情報を参照し、前記ファイルの排他ロックがかかっている範囲を複製するときに前記排他ロックの所有者になりすます、請求項１０〜１２のいずれか１項に記載のファイル管理方法。
【請求項１４】
前記クライアントから前記サーバへの排他ロックを要求する要求メッセージに含まれる情報を保持するステップと、
前記要求メッセージによる要求が受け入れられた旨の応答メッセージが前記サーバからあると、保持しておいた前記情報に基づいて前記排他ロック状態情報を更新するステップとをさらに有する、請求項１０〜１３のいずれか１項に記載のファイル管理方法。
【請求項１５】
ファイルを記憶する複数のサーバと該サーバにアクセスするクライアントとの通信にて経由される情報処理装置において前記サーバの前記ファイルを管理するファイル管理方法であって、
前記ファイルの各々のオープン状態情報を管理しておくステップと、
前記サーバ間でのファイルの複製の作成を要求されると、前記サーバ間でファイルの複製を作成して、該ファイルへのアクセスを該複製に切り替えるステップと、
前記ファイルへのアクセスが前記複製に切り替わった後、該複製への最初のアクセスの前に、前記オープン状態情報において、移動元サーバにおける前記ファイルがオープンされていれば、オープン状態を移動先サーバに再現するステップとを有するファイル管理方法。
【請求項１６】
オープン状態を変化させる要求メッセージがあると、該要求メッセージに含まれる情報を保持するステップと、
該要求メッセージによる要求が受け入れられた旨の応答メッセージを受けると前記オープン状態情報を更新するステップとをさらに有する、請求項１５記載のファイル管理方法。
【請求項１７】
前記移動元サーバにてオープンされていた前記ファイルの移動先サーバ上の前記複製をオープンして前記移動先サーバから第１のトークンを取得し、
前記ファイルが前記クライアント上のユーザによって前記移動元サーバにてオープンされたときに該移動元サーバから該ユーザに渡されていた第２のトークンと前記第１のトークンとの対応を記録することによりオープン状態を再現する、請求項１５または１６に記載のファイル管理方法。
【請求項１８】
オープン状態を再現するとき、前記ユーザが認証されたときに前記移動元サーバから前記ユーザに渡された第３のトークン、または前記ファイルの存在するボリュームにアクセスしたときに前記移動元サーバから前記ユーザに渡された第４のトークンと、それらに対応する前記移動先サーバから渡されたトークンとの対応をさらに記録する、請求項１７記載のファイル管理方法。
【請求項１９】
ファイルを記憶する複数のサーバと該サーバにアクセスするクライアントとの通信にて経由される情報処理装置に、前記サーバの前記ファイルを管理させるためのファイル管理プログラムであって、
前記ファイルの各々に対する排他ロックの有無および該排他ロックの所有者の情報を含む排他ロック状態情報を管理しておく処理と、
前記サーバ間でのファイルの複製の作成を要求されると、前記排他ロック状態情報を参照し、前記ファイルに排他ロックがかかっていれば、該排他ロックの所有者になりすまして該ファイルの複製を作成する処理とを有するファイル管理プログラム。
【請求項２０】
前記ファイルと該ファイルの複製との間の一貫性を保つための処理の間、前記サーバと前記クライアントの間のメッセージの転送を遮断する処理と、
前記メッセージの転送が遮断されている間に、前記ファイルと前記複製の間で一貫性がとれているか否か調べて、一貫性がとれていなければ再び複製を作成し、一貫性がとれていれば前記ファイルへのアクセスを前記複製に切り替える処理とをさらに有する、請求項１９記載のファイル管理プログラム。
【請求項２１】
前記排他ロックの所有者の情報は、クライアント、トランスポート、ユーザ、プロセス、またはこれらのうち少なくとも２つの組み合わせを識別するための情報によって表される、請求項１９または２０に記載のファイル管理プログラム。
【請求項２２】
前記排他ロックの有無および該排他ロックの所有者の情報に加えて、該排他ロックの範囲を示す情報をも前記排他ロック状態情報に含めて管理しており、
前記排他ロックの範囲を示す情報を参照し、前記ファイルの排他ロックがかかっている範囲を複製するときに前記排他ロックの所有者になりすます、請求項１９〜２１のいずれか１項に記載のファイル管理プログラム。
【請求項２３】
前記クライアントから前記サーバへの排他ロックを要求する要求メッセージに含まれる情報を保持する処理と、
前記要求メッセージによる要求が受け入れられた旨の応答メッセージが前記サーバからあると、保持しておいた前記情報に基づいて前記排他ロック状態情報を更新する処理とをさらに有する、請求項１９〜２２のいずれか１項に記載のファイル管理プログラム。
【請求項２４】
ファイルを記憶する複数のサーバと該サーバにアクセスするクライアントとの通信にて経由される情報処理装置に、前記サーバの前記ファイルを管理させるためのファイル管理プログラムであって、
前記ファイルの各々のオープン状態情報を管理しておく処理と、
前記サーバ間でのファイルの複製の作成を要求されると、前記サーバ間でファイルの複製を作成して、該ファイルへのアクセスを該複製に切り替える処理と、
前記ファイルへのアクセスが前記複製に切り替わった後、該複製への最初のアクセスの前に、前記オープン状態情報において、移動元サーバにおける前記ファイルがオープンされていれば、オープン状態を移動先サーバに再現する処理とを有するファイル管理プログラム。
【請求項２５】
オープン状態を変化させる要求メッセージがあると、該要求メッセージに含まれる情報を保持する処理と、
該要求メッセージによる要求が受け入れられた旨の応答メッセージを受けると前記オープン状態情報を更新する処理とをさらに有する、請求項２４記載のファイル管理プログラム。
【請求項２６】
前記移動元サーバにてオープンされていた前記ファイルの移動先サーバ上の前記複製をオープンして前記移動先サーバから第１のトークンを取得し、
前記ファイルが前記クライアント上のユーザによって前記移動元サーバにてオープンされたときに該移動元サーバから該ユーザに渡されていた第２のトークンと前記第１のトークンとの対応を記録することによりオープン状態を再現する、請求項２４または２５に記載のファイル管理プログラム。
【請求項２７】
オープン状態を再現するとき、前記ユーザが認証されたときに前記移動元サーバから前記ユーザに渡された第３のトークン、または前記ファイルの存在するボリュームにアクセスしたときに前記移動元サーバから前記ユーザに渡された第４のトークンと、それらに対応する前記移動先サーバから渡されたトークンとの対応をさらに記録する、請求項２８記載のファイル管理プログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ファイルサーバ間のファイルマイグレーションを行う装置に関する。
【０００２】
【従来の技術】
近年、安価で高速なネットワークの普及に伴い、様々な情報システムにおいて、ネットワークを通してファイルサービスを提供するサーバが広く用いられるようになっている。このファイルサービスを提供するサーバはファイルサーバと呼ばれる。また、ファイルサービスの例としては、ＮＦＳ、ＣＩＦＳなどが挙げられる。
【０００３】
利用者がファイルサーバによるサービスを円滑に利用できるように、ファイルサーバの運用業務がシステム管理者により行われている。ファイルサーバの運用業務の中で重要なものの１つとして、ファイルサーバ間でのファイルのマイグレーションがある。ファイルマイグレーションとは、ファイルサーバ間でファイルを移動する行為である。例えば、システム管理者の指示により、管理目的でファイルを移動する場合が該当する。
【０００４】
ファイルマイグレーションの目的には、例えば以下に示すものである。
（１）  空き容量の有効活用
空き容量の少ないファイルサーバから空き容量の多いファイルサーバにファイルを移動することで、ファイルサーバの記憶容量を有効に活用する。
（２）  処理容量の有効活用
処理容量に対して多いアクセスを受けてレスポンスが悪くなっているファイルサーバから、処理容量に対してアクセスが少ないファイルサーバにファイルを移動することで、ファイルサーバの処理容量を有効に活用する。
（３）  ファイルサーバのリプレース
古いファイルサーバから新しいファイルサーバにファイルを移動して、古くなったファイルサーバを新しいファイルサーバにリプレースする。
【０００５】
また、ファイルサーバ間のファイルマイグレーションを行う従来の方法として、クライアントとサーバの間に存在する装置（以下、中間装置と称す）を用いる方法がある。
【０００６】
まず、システム管理者が中間装置にファイルマイグレーションを指示する。指示を受けた中間装置は、その指示に従ってファイルサーバ間でのファイルのマイグレーションを行う。
【０００７】
なお、ここで、「クライアントとサーバとの間に存在する」とは、物理的あるいは論理的な通信のルートとしてクライアントとサーバの中間に存在することを意味する。すなわち、クライアントからの要求が中間装置を経由してサーバに届き、またサーバからの応答が中間装置を経由してクライアントに届くことを意味している。
【０００８】
中間装置は、ファイルサーバ間でのファイルのマイグレーションを以下の２つのステップに沿って実行する。
（ステップ１）  複製
ファイル・アクセス・プロトコルを使って、移動元ファイルサーバにあるファイルを移動先ファイルサーバに一貫性のとれた状態で複製する。ここで、一貫性のとれた状態とは、ファイルに対する一連の処理が完結しており、データ間に矛盾が無いことを指す。例えば、ファイルの一部が変更前の状態で複製され、他の一部が変更後の状態で複製されると、一貫性がとれなくなる可能性がある。
（ステップ２）  アクセスの切り替え
クライアント上のユーザがアクセスするファイルサーバを移動元から移動先に切り替える。
【０００９】
また、中間装置によるファイルマイグレーションの利点として、以下の２つが挙げられる。
【００１０】
（１）  「複製」の際、複製物の一貫性をとるためにサーバ間通信を行う必要がない。その理由は、ファイルのデータ更新などの処理はクライアントからサーバへの要求により行われるので、中間装置が、要求や応答をモニターし、また一時的に遮断して、複製物間の一貫性をとることができるからである。
【００１１】
一般にサーバ間通信に用いられるプロトコルは、クライアントとサーバの間に用いられるファイルサービスプロトコルとは異なるものであり、サーバ間通信を行うためには、ファイルサーバがそのサーバ間通信のプロトコルを別に備えている必要がある。中間装置がファイルマイグレーションを行うこととすれば、ファイルサーバはサーバ間通信を行う必要が無い。
【００１２】
（２）  サーバの位置情報やファイルの識別子の変化をクライアントに意識させることなく、「アクセスの切り替え」を行うことができる。その理由は、中間装置が、要求や応答を転送するときにサーバの位置情報やファイルの識別子を付け替えることにより、「アクセスの切り替え」が可能だからである。
【００１３】
従来技術として、上述の中間装置を用いたファイルマイグレーション方法が提案されている（非特許文献１参照）。なお、非特許文献１ではＮＡＳスイッチが中間装置である。
【００１４】
従来の中間装置は、複数のサーバの公開ディレクトリを基とする統合ディレクトリのツリー構造を擬似ファイルシステム上に構成して管理している。そして、中間装置は、擬似ファイルシステム上の統合ディレクトリツリーのツリー構造を保持したまま、いずれかのサーバの公開ディレクトリのファイルを別のサーバへコピーする。次に、中間装置は、擬似ファイルシステムのツリー構造のマッピングを変更することによって、クライアントに対してデータの移動を隠蔽して統合ディレクトリツリーの構成を不変としたまま、ユーザからコピー先のファイルへのアクセスを可能にする。これにより、中間装置は、サーバの記憶装置における容量不足や、一部のサーバにおけるファイルアクセス処理の過負荷を緩和する。
【００１５】
サーバ間のデータ移動に伴い、各ディレクトリやファイルなどのオブジェクトに対応するオブジェクトＩＤも変更する必要がある。中間装置は、データ移動前と後のオブジェクトＩＤの変更履歴を管理し、クライアントおよびサーバにおいてオブジェクトＩＤの変更による不具合が生じないようにすることにより、データの移動の操作をクライアントから隠蔽する。すなわち、中間装置がサーバ間でデータを複製した後、ツリー構造のマッピングを変更することによりユーザのアクセスを切り替えている。
【００１６】
この従来技術によれば、中間装置が一貫性をとってデータを複製するので、複製物の一貫性をとるためのサーバ間通信が必要がない。また、中間装置がユーザからのメッセージの転送先を切り替えることによりアクセスの切り替えを行うので、移動に伴う、オブジェクトＩＤのようなファイル識別子の変化をクライアントに意識させることが無い。
【００１７】
また、別の従来技術の一例が、特許文献１に記載されている。特許文献１に記載された分散情報処理システムでは、クライアント上のアプリケーションプログラムが使用するサーバ上のファイルとの接続情報をサーバが磁気ディスクに保存している。そして、サーバは、クライアントからの要求に応じて、アプリケーションとファイルとの接続状態を磁気ディスク内の情報を用いて復活させる。
【００１８】
【非特許文献１】
山川、石川、菊池，「ＮＡＳスイッチ：ＮＦＳサーバの仮想化統合技術の開発」，電子情報通信学会技術研究報告Ｖｏｌ．１０２，Ｎｏ．２７５，ｐｐ１３−１８
【特許文献１】
特許第３３４３９４９号公報
【００１９】
【発明が解決しようとする課題】
通常、ファイルマイグレーションは、ファイルサーバがオフラインの状態で行われる。つまり、クライアントからのファイルサーバの利用を一時的に停止し、その間にファイルマイグレーションを行うのが一般的である。
【００２０】
しかし、ファイルサーバをオフライン状態にすることは、システムの内外に多大な影響を与えることがある。企業のシステムであれば、企業に大きな損失を与えることにつながることもある。また、業務等への影響を最小限にするために、夜間や休日にファイルマイグレーションを行うことがあるが、その場合にはシステム管理者の負担が大きくなる。
【００２１】
このような様々な理由から、ファイルマイグレーションはファイルサーバがオンラインの状態で行うことができることが好ましい。オンラインとは、ユーザがそのファイルサーバのファイルサービスを利用できる状態にあることをいう。つまり、電源が投入されており、通信ネットワークに接続されており、また、ユーザがアクセスするのに必要な、ソフトウェアに対する各種設定がされた状態である。
【００２２】
オンライン状態のファイルサーバでは、ユーザがファイルにアクセスするとき、データや状態に矛盾が発生するのを防止するために排他処理が行われる。ファイル・アクセス・プロトコルによって排他処理にも様々な方式がある。
【００２３】
排他処理の例として、オンライン状態のファイルサーバ内のファイルにユーザがアクセスする際、排他ロックをかけるというものがある。排他ロックは、所定のユーザ以外のユーザによるファイルへのアクセスを禁止するものである。
【００２４】
その中で強制ロック方式は、ユーザが排他ロックの取り決めを守るか否かによらず、排他ロックの影響を受ける方式をである。例えば、ロックの取り決めを守らないユーザであっても、そのファイルにかけられた排他ロックの種類に基づきアクセスを拒絶される。また、排他ロックの範囲として、ファイル全体をロックする他、バイトレンジロックのように部分的にロックするものもある。
【００２５】
強制ロック方式のファイル・アクセス・プロトコルの例としては、ＣＩＦＳ（Ｃｏｍｍｏｎ  Ｉｎｔｅｒｎｅｔ  Ｆｉｌｅ  Ｓｙｓｔｅｍ）、ＮＦＳｖ４（Ｎｅｔｗｏｒｋ  Ｆｉｌｅ  Ｓｙｓｔｅｍ  Ｖｅｒｓｉｏｎ  ４）が挙げられる。
【００２６】
また、いずれかのユーザがファイルをオープンしている状態（以下、オープン状態と称す）がファイルサーバによって管理されている場合がある。オープン状態の例としては、（１）ファイル全体に排他ロックがかけられる場合、（２）バイトレンジロックのように部分的な排他ロックがかけられる場合、（３）ファイルポインタのオフセットが管理される場合などが挙げられる。上述のＣＩＦＳおよびＮＦＳｖ４ではオープン状態が管理される。
【００２７】
また、排他処理として、ファイルをオープンする際にアクセスの許可を受けた証としてバイナリ形式の識別子（以下トークンとする）がファイルサーバからユーザに渡されるというものがある。上述のＣＩＦＳではトークンが用いられる。
【００２８】
排他処理が行われるオンライン状態では、ファイルマイグレーションに様々な困難がある。
【００２９】
強制ロック方式の排他処理が行われている場合、ユーザによって排他ロックされているファイルを中間装置は移動元サーバから移動先サーバへ複製できない。これは、ユーザによってファイルに排他ロックがかけられていると、中間装置の読み出し要求が移動元サーバに拒絶されるからである。
【００３０】
また、各ファイルサーバがオープン状態を管理している場合、中間装置が、ファイルへのアクセスを移動元サーバから移動先サーバへ切り替えると、移動元サーバでのオープン状態が移動先サーバでは無効になる。オープン状態が無効となると、他のユーザからのアクセスが可能になるので、本来禁止されるべきアクセスによりデータが書き換えられることがある。また、移動元サーバでセットされていたファイルポインタのオフセットがクリアされるため、アプリケーションが意図する範囲と異なる部分にデータを書き込んでしてしまうことがある。このように、ファイルをオープン状態がファイルサーバによって管理されている場合、中間装置がユーザからのアクセスの切り替えを行うと、ファイルが破壊されてしまう可能性がある。
【００３１】
また、ファイルをオープンする際にファイルサーバからユーザにトークンが渡されている場合、中間装置がアクセスを切り替えると、移動元サーバからトークンを渡されているアプリケーションは、そのトークンにより移動先サーバにアクセスしようとする。しかし、移動元サーバから渡されたトークンは移動先サーバでは無効となる。そのため、アクセスの切り替えの前後で同じトークンを使い続けようとするアプリケーションはエラーを受けてファイルへのアクセスに失敗し、異常終了することとなる。
【００３２】
本発明の目的は、オンラインのファイルサーバ間でもファイルを正常にマイグレーションすることが可能な装置を提供することである。
【００３３】
【課題を解決するための手段】
上記目的を達成するために、本発明の情報処理装置は、ファイルを記憶する複数のサーバと該サーバにアクセスするクライアントとのメッセージ通信にて経由される情報処理装置であって、
前記ファイルの各々に対する排他ロックの有無および該排他ロックの所有者の情報を含む排他ロック状態情報を管理する排他ロック状態情報管理手段と、
前記サーバ間でのファイルの複製の作成を要求されると、前記排他ロック状態情報管理手段に前記排他ロック状態情報を問合せ、該ファイルに排他ロックがかかっていれば、該排他ロックの所有者になりすまして該ファイルの複製を作成するファイル複製手段とを有している。
【００３４】
したがって、本発明によれば、排他ロック状態情報管理手段が、全てのファイルの排他ロック状態情報を管理しており、ファイル複製手段が、ファイルマイグレーションにおいて複製を作成する際に、排他ロック状態情報管理手段の排他ロック状態を調べ、排他ロックがかかっていればその排他ロックの所有者になりすましてファイルの複製を作成する。
【００３５】
また、前記クライアントと前記サーバとのメッセージの転送を中継をしており、前記ファイルと該ファイルの複製との間の一貫性を保つための処理の間、前記メッセージの転送を遮断するメッセージフォワード手段をさらに有し、
前記ファイル複製手段は、前記メッセージフォワード手段が前記メッセージの転送を遮断している間に、前記ファイルと前記複製の間で一貫性がとれているか否か調べて、一貫性がとれていなければ再び複製を作成し、一貫性がとれていれば前記ファイルへのアクセスを前記複製に切り替えることとしてもよい。
【００３６】
したがって、ファイルと複製の一貫性が取れていなければ、メッセージフォワード手段がメッセージ転送を遮断している状態で、ファイル複製手段が複製を作成しなおして一貫性をとった後にクライアントからのアクセスを複製に切り替えるので、ファイルとの一貫性がとれた複製を作成することができ、オンライン状態であっても、正常にファイルの複製を作成することができる。
【００３７】
また、前記排他ロック状態情報管理手段は、クライアント、トランスポート、ユーザ、プロセス、またはこれらのうち少なくとも２つの組み合わせを識別するための情報を、前記排他ロックの所有者の情報として管理することとしてもよい。
【００３８】
したがって、ファイルに排他ロックをかける主体の異なる様々なファイル・アクセス・プロトコルが用いられる場合に、各ファイル・アクセス・プロトコルにおける排他ロックの所有者を管理できる。
【００３９】
また、前記排他ロック状態情報管理手段は、前記排他ロックの有無および該排他ロックの所有者の情報に加えて、該排他ロックの範囲を示す情報をも前記排他ロック状態情報に含めて管理しており、
前記ファイル複製手段は、前記排他ロックの範囲を示す情報を参照し、前記ファイルの排他ロックがかかっている範囲を複製するときに前記排他ロックの所有者になりすますこととしてもよい。
【００４０】
したがって、ファイルの一部の範囲に排他ロックがかけられる場合、本情報処理装置はその部分の複製を作成するときだけ排他ロックの所有者になりすますことにより、正常にファイルの複製を作成することができる。
【００４１】
また、前記排他ロック状態情報管理手段は、前記クライアントから前記サーバへの排他ロックを要求する要求メッセージに含まれる情報を保持し、該排他ロック要求メッセージによる要求が受け入れられた旨の応答メッセージが前記サーバからあると、保持しておいた前記情報に基づいて前記排他ロック状態情報を更新することとしてもよい。
【００４２】
したがって、排他ロック状態情報管理手段が、排他要求の要求メッセージの内容を保持しておき、その要求が受け入れられたときに、要求メッセージの情報と応答メッセージの両方の情報を用いて排他ロック状態情報を更新するので、排他ロックの状態を管理するために必要な情報が応答メッセージからだけでは取得できない場合にも正常にファイルの複製を作成することができる。
【００４３】
本発明の他の情報処理装置は、ファイルを記憶する複数のサーバと該サーバにアクセスするクライアントとの通信にて経由される情報処理装置であって、
前記ファイルの各々のオープン状態情報を管理するオープン状態情報管理手段と、
前記サーバ間でファイルの複製を作成した後に該ファイルへのアクセスを該複製に切り替えるファイル複製手段と、
前記ファイルへのアクセスが前記複製に切り替わった後、該複製への最初のアクセスの前に、前記オープン状態情報管理手段に問合せて前記オープン状態情報を取得し、移動元サーバにおいて前記ファイルがオープンされていれば、オープン状態を移動先サーバに再現するオープン状態再現手段とを有している。
【００４４】
したがって、本発明によれば、オープン状態情報管理手段が各ファイルのオープン状態を管理しており、ファイル複製手段がファイルの複製を作成し、クライアントからのアクセスを複製に切り替えると、最初のアクセスの前に、オープン状態再現手段がオープン状態情報管理手段に問い合わせてファイルのオープン状態を移動先サーバに再現する。
【００４５】
また、前記クライアントと前記サーバとのメッセージの転送を中継しており、オープン状態を変化させる要求メッセージまたは応答メッセージに含まれる情報を前記オープン状態情報管理手段に通知するメッセージフォワード手段をさらに有し、
前記オープン状態情報管理手段は、オープン状態を変化させる要求メッセージに含まれる情報を前記メッセージフォワード手段から受けて保持し、該要求メッセージによる要求が受け入れられた旨の応答メッセージに含まれる情報を受けると、前記オープン状態情報を更新することとしてもよい。
【００４６】
したがって、オープン状態情報管理手段が、オープン状態を変化させる要求メッセージの内容を保持しておき、その要求が受け入れられたときに、要求メッセージの情報と応答メッセージの両方の情報を用いてオープン状態情報を更新する。
【００４７】
また、前記オープン状態再現手段は、前記移動元サーバにてオープンされていた前記ファイルの移動先サーバ上の前記複製をオープンして前記移動先サーバから第１のトークンを取得し、該ファイルが前記クライアント上のユーザによって前記移動元サーバにてオープンされたときに該移動元サーバから該ユーザに渡されていた第２のトークンと前記第１のトークンとの対応を記録することによりオープン状態を再現することとしてもよい。
【００４８】
したがって、移動元サーバでの第２のトークンと移動先での第１のトークンとの対応付けによりオープン状態が再現される。
【００４９】
また、前記オープン状態再現手段は、オープン状態を再現するとき、前記ユーザが認証されたときに前記移動元サーバから前記ユーザに渡された第３のトークン、または前記ファイルの存在するボリュームにアクセスしたときに前記移動元サーバから前記ユーザに渡された第４のトークンと、それらに対応する前記移動先サーバから渡されたトークンとの対応をさらに記録することとしてもよい。
【００５０】
したがって、オープン状態再現手段が、ユーザが認証されたときに渡された第３のトークン、またはボリュームにアクセスしたときに渡された第４のトークンをも再現する。
【００５１】
【発明の実施の形態】
本発明の実施形態について図面を参照して詳細に説明する。
【００５２】
（第１の実施形態）
図１は、本発明の第１の実施形態によるクライアント・サーバ・システムの構成を示すブロック図である。
【００５３】
図１を参照すると、第１の実施形態のクライアント・サーバ・システムは、少なくとも１つ（図１では２つ）のクライアント１１と、少なくとも１つ（図１では２つ）のサーバ１４と、中間装置１０１とを有している。クライアント１１、サーバ１４および中間装置１０１は、それぞれコンピュータで構成され、ネットワーク１２に接続されている。ネットワーク１２は、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、ＭＡＮ（Ｍｅｔｒｏｐｏｌｉｔａｎ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、ＷＡＮ（Ｗｉｄｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）あるいはインターネット等である。
【００５４】
クライアント１１は少なくとも１つのユーザ１１ａに利用され、またクライアント１１は少なくとも１つのリダイレクタ１１ｂを有している。ユーザとは、ファイルサービスを利用するプログラム、または仮想的なアイデンティティを表す。
【００５５】
ユーザ１１ａは、サーバ１４に記憶されているファイルにリダイレクタ１１ｂを介してアクセスする。リダイレクタ１１ｂはそのアクセスをリダイレクトする。
【００５６】
サーバ１４は、クライアント１１によってアクセスされるファイルを記憶し、管理し、各クライアント１１にファイルサービスを提供する。ファイルサービスの例としては、ＮＦＳ、ＣＩＦＳなどが挙げられる。
【００５７】
中間装置１０１は、ファイルサービスを利用するクライアント１１とファイルサービスを提供するサーバ１４との中間に位置する。クライアント１１からサーバ１４への要求と、サーバ１４からクライアント１１への応答とは必ず中間装置１０１を通る。クライアント１１からサーバ１４への要求は、何らかの処理を要求するメッセージ信号である。サーバ１４からクライアント１１への応答は、要求に対して応答するメッセージ信号である。
【００５８】
一例として、中間装置１０１は、物理的にクライアント１１とサーバ１４の間に位置すればよい。図１では、中間装置１０１は物理的にはクライアント１１とサーバ１４との間に位置していない。しかし、論理的には中間装置１０１はクライアント１１とサーバ１４の間に配置されており、クライアント１１からサーバ１４への全ての要求、およびサーバ１４からクライアント１１への全ての応答は中間装置１０１を経由する。
【００５９】
このように、クライアント１１からサーバ１４への全ての要求が経由する中間装置１０１は、具体的には、例えばプロキシサーバ、ゲートウェイ、透過プロキシサーバ、ロードバランサーなどである。
【００６０】
例えば、各クライアント１１が中間装置１０１をプロキシサーバまたはゲートウェイとして設定すればよい。また、中間装置１０１を透過プロキシサーバとするには、クライアント１１からサーバ１４へのパケットが必ず中間装置１０１を通るようにルーティング規則を設定すればよい。中間装置１０１をロードバランサーとするには、中間装置１０１を仮想サーバとしてクライアントに見せればよい。
【００６１】
図２は、第１の実施形態の中間装置１０１の構成を示すブロック図である。図２を参照すると、本実施形態の中間装置１０１は、パケット処理手段１１０、メッセージフォワード手段１２０、ファイル複製手段１３０、および排他ロック状態情報管理手段１４０を有している。
【００６２】
パケット処理手段１１０は、ネットワーク１２を介してクライアント１１およびサーバ１４からパケットを受信すると、パケットに含まれるメッセージを上位手段に出力し、また上位手段から出力されたメッセージをパケット化して、ネットワーク１２を介してクライアント１１またはサーバ１４に送信する。ここでは、メッセージを、ファイル・アクセス・プロトコルに基づく要求や応答の総称として用いる。
【００６３】
メッセージフォワード手段１２０は、パケット処理手段１１０からメッセージを受けると、フォワーディングテーブル（不図示）を参照して転送先を調べ、それを宛先に設定してメッセージをパケット処理手段１１０に送る。フォワーディングテーブルとは、メッセージに含まれるサーバ識別子とメッセージの転送先サーバがマッピングされたテーブルである。サーバ識別子は、例えばＩＰアドレスである。
【００６４】
また、排他ロック状態情報管理手段１４０における排他ロック状態の管理のために、メッセージフォワード手段１２０は、メッセージが排他ロックの要求もしくは応答であれば、そのメッセージのコピーを排他ロック状態情報管理手段１４０に送る。
【００６５】
また、ファイルマイグレーション中は、ファイル複製手段１３０における複製済ファイルの更新の監視を可能にするために、メッセージフォワード手段１２０は、メッセージが更新系の要求あるいは応答であれば、そのメッセージのコピーをファイル複製手段１３０に送る。更新系の要求とは、ファイルのデータを更新する処理の要求であり、更新系の応答とは更新系の要求に対する応答である。
【００６６】
ファイル複製手段１３０は、システム管理者によるファイルマイグレーションの指示を受けると、その指示に基づいて動作を開始する。動作を開始したファイル複製手段１３０は、サーバ１４間でファイルの複製を行う。ファイルの複製をしている間に、メッセージフォワード手段１２０から更新系の要求あるいは応答のメッセージのコピーを受けると、複製済のファイルに更新があるか否か調べる。複製済のファイルに更新があれば、複製の処理をやり直す必要があるからである。
【００６７】
また、ファイル複製手段１３０は、複製しようとしたファイルに排他ロックがかかっていれば、排他ロック状態情報管理手段１４０に問い合わせて排他ロック状態情報を入手する。そして、ファイル複製手段１３０は、排他ロック状態情報に含まれる所有者情報に基づいて排他ロックの所有者になりすますことにより、ファイルの読み出しを可能にする。なお、ここで、所有者とは、ファイルに排他ロックをかけているユーザもしくはユーザ上のプロセスのことをいう。所有者は、排他ロックをかけたファイルにアクセスすることができる。
【００６８】
複製が完了すると、ファイル複製手段１３０は、クライアントからのアクセスを切り替えるためにフォワーディングテーブルを書き換える。
【００６９】
排他ロック状態情報管理手段１４０は、各ファイルの排他ロックの状態を管理しており、メッセージフォワード手段１２０から排他ロック要求もしくは応答のメッセージのコピーを受けると排他ロック状態情報を更新する。排他ロック要求は、ファイルに排他ロックをかけること、または解除することを要求するメッセージである。排他ロック応答は、それに対する応答のメッセージである。排他ロック状態情報は、各ファイルに排他ロックがかかっているか否かや、排他ロックをかけているユーザあるいはクライアントを示す情報である。
【００７０】
また、排他ロック状態情報管理手段１４０は、ファイル複製手段１３０から問い合わせを受けると、記録している排他ロック状態情報を送る。
【００７１】
次に、本実施形態のクライアント・サーバ・システムの動作例について説明する。なお、ここでは、ファイル複製手段１３０は、システム管理者の指示に基づいて動作を開始するものとする。また、ファイル複製手段１３０は、他の手段の処理による割り込みを許容する。他の処理による割り込みがあると、ファイル複製手段１３０はスリープして、その処理が終了するのを待つ。
【００７２】
ファイル複製手段１３０以外は、データの入力や、問い合わせを受けて処理を開始するものとし、処理の途中で他の処理による割り込みを許容しない。
【００７３】
また、メッセージフォワード手段１２０とファイル複製手段１３０の連携動作を可能にするために、ファイル複製手段１３０には、マイグレーションフラグとフォワード遮断フラグの２つのフラグが設けられている。
【００７４】
マイグレーションフラグは、ファイル複製手段１３０が、メッセージフォワード手段１２０にファイルマイグレーション中であることを知らせるためのフラグである。メッセージフォワード手段１２０は、ファイルマイグレーション中には通常時と異なる動作をするために本フラグを用いる。
【００７５】
フォワード遮断フラグは、ファイル複製手段１３０が、メッセージフォワード手段１２０によるメッセージのフォワードを遮断するためのフラグである。ファイル複製手段１３０がファイルの複製を終えて複製対象の一貫性をチェックする際に、メッセージのフォワードは遮断される必要がある。そのために本フラグが用いられる。
【００７６】
なお、これらのフラグは、メッセージフォワード手段１２０とファイル複製手段１３０が連携動作をするための通信を行う方法の一例である。ファイル複製手段１３０にフラグを設ける他に、要求と応答をやりとりする方法や、フラグを管理する第三者的な手段を設ける方法、第三者的な手段が要求と応答を中継する方法などがある。また、これら複数の手段を１つの手段にまとめて実装することにより通信を無くすこともできる。
【００７７】
図３は、第１の実施形態のパケット処理手段の動作を示すフローチャートである。図３を参照すると、パケット処理手段１１０は、ネットワーク１２あるいは上位手段からデータを受信すると（ステップＡＡ１）、処理を開始する。上位手段とは、メッセージフォワード手段１２０やファイル複製手段１３０である。
【００７８】
まず、パケット処理手段１１０は、受けたデータがどこからのものかを調べる（ステップＡＡ２）。受けたデータがネットワーク１２からのパケットであれば、パケット処理手段１１０は、そのパケットからメッセージ部分を取得する（ステップＡＡ３）。１つのパケットに複数のメッセージが入っている場合があるが、その場合には複数のメッセージが取り出される。パケット処理手段１１０は、上位手段に各メッセージを送って（ステップＡＡ４）、処理を終了する。
【００７９】
また、１つのメッセージが複数のパケットにフラグメント化されている場合があるが、その場合、パケット処理手段１１０は、メッセージを構成するデータが揃ってから上位手段にメッセージを送る。
【００８０】
ステップＡＡ２の判定でデータが上位手段からであれば、パケット修理手段１１０は、メッセージをパケット化してネットワーク１２に送り（ステップＡＡ５）、終了する。
【００８１】
図４は、第１の実施形態のメッセージフォワード手段の動作を示すフローチャートである。図４を参照すると、メッセージフォワード手段１２０は、パケット処理手段１１０からメッセージを受信すると（ステップＡＢ１）、処理を開始する。
【００８２】
まず、メッセージフォワード手段１２０は、フォワード遮断フラグがＯＮか否かを調べる（ステップＡＢ２）。フォワード遮断フラグがＯＦＦであれば、メッセージフォワード手段１２０は、ステップＡＢ４の処理に移行する。フォワード遮断フラグがＯＮであれば、メッセージフォワード手段１２０は、一旦他の手段の処理に戻して、フォワード遮断フラグがＯＦＦになるまで待つ（ステップＡＢ３）。
【００８３】
ステップＡＢ２〜ＡＢ３の処理は、ファイル複製手段１３０が、移動元と移動先の間でファイルの一貫性がとれているか否かを確認する際などに、クライアントとサーバ間の通信を遮断するために設けられている。
【００８４】
次に、メッセージフォワード手段１２０は、マイグレーションフラグがＯＮか否か調べる（ステップＡＢ４）。マイグレーションフラグがＯＦＦであれば、メッセージフォワード手段１２０はステップＡＢ７の処理に移行する。マイグレーションフラグがＯＮであれば、メッセージフォワード手段１２０は、メッセージが更新系の要求あるいは応答か否かを調べる（ステップＡＢ５）。
【００８５】
メッセージが更新系の要求でも応答でもなければ、メッセージフォワード手段１２０は、ステップＡＢ７の処理に移行する。メッセージが更新系の要求あるいは応答であれば、ファイルフォワード手段１２０は、ファイル複製手段１３０にメッセージのコピーを送る（ステップＡＢ６）。
【００８６】
ステップＡＢ４〜ＡＢ６の処理は、マイグレーション対象のファイルに更新がされたか否かをファイル複製手段１３０が確認できるようにするための処理である。
【００８７】
ステップＡＢ５の処理において、メッセージが更新系の要求もしくは応答か否かの判断はメッセージに含まれるコマンドの種類に基づいて行う。コマンドの種類は、メッセージ内にシンボリックに示されている場合や、番号のようにバイナリ形式で示されている場合がある。いずれの場合もプロトコルの仕様に従って判断すればよい。更新系コマンドの例としては、ファイルを更新するコマンド、属性を更新するコマンド、名前空間を更新するコマンドなどがある。
【００８８】
また、プロトコルによっては応答にコマンドの種類が含まれていない。この場合、要求を受けたときにメッセージに含まれるメッセージ番号を記録しておき、応答を受けたときにメッセージ番号を照合することにより更新系か否か判断すればよい。
【００８９】
次に、メッセージフォワード手段１２０は、メッセージが排他ロック要求もしくは応答であるか否か調べる（ステップＡＢ７）。排他ロック要求もしくは応答でなければ、メッセージフォワード手段１２０は、ステップＡＢ９の処理に移行する。メッセージが排他ロック要求もしくは応答であれば、メッセージフォワード手段１２０は、排他ロック状態情報管理手段１４０にメッセージのコピーを送る（ステップＡＢ８）。
【００９０】
ステップＡＢ７〜ＡＢ８の処理は、排他ロック状態情報管理手段１４０が排他ロック状態情報を記録するのを可能にするために設けられている。
【００９１】
ステップＡＢ７の判定では、メッセージが排他ロック要求もしくは応答であるか否かは、メッセージに含まれるコマンドの種類とパラメータから判断できる。コマンドの種類とパラメータは、メッセージ内にシンボリックに示されている場合や、番号のようにバイナリ形式で示されている場合がある。いずれも場合もプロトコルの仕様に従って判断すればよい。
【００９２】
また、プロトコルによっては応答にコマンドの種類とパラメータが含まれていない。この場合、要求を受けたときにメッセージに含まれるメッセージ番号を記録しておき、応答を受けたときにメッセージ番号を照合することにより判断すればよい。
【００９３】
最後に、メッセージフォワード手段１２０は、フォワーディングテーブルを参照して転送先を調べ、それを宛先に設定してメッセージをパケット処理手段１１０に送る（ステップＡＢ９）。この場合、フォワーディングテーブルには、メッセージの送付先ＩＰアドレスと転送先のＩＰアドレスの対応がマッピングされている。また、サーバ識別子ではなく、ボリューム識別子やファイル識別子とメッセージの転送先サーバをマッピングすることとしてもよい。この場合、ボリューム単位、もしくはファイル単位でどのサーバに転送すればよいのかを中間装置１０１が管理することになる。また、サーバ識別子、ボリューム識別子、ファイル識別子の組み合わせと、メッセージの転送サーバの対応をマッピングすることももちろん可能である。
【００９４】
図５は、第１の実施形態のファイル複製手段の動作を示すフローチャートである。図５を参照すると、ファイル複製手段１３０は、システム管理者によるマイグレーション開始の指示を受けて（ステップＡＣ１）、処理を開始する。システム管理者は、その指示の際に移動元と移動先を併せて指定する。
【００９５】
移動元に属するファイルがマイグレーション対象のファイルである。ファイル複製手段１３０はこれらを移動先に複製する。指示は、例えば、サーバＳｅｒｖｅｒ１のボリュームＳｈａｒｅ１をサーバＳｅｒｖｅｒ２のボリュームＳｈａｒｅ２に移動するというようなものとなる。この場合は、ファイル複製手段１３０は、ボリュームＳｈａｒｅ１に属するファイルをボリュームＳｈａｒｅ２に移動する。この例ではボリューム単位の移動であるが、ディレクトリ単位の移動、ファイル単位の移動、またサーバ単位の移動という指定も考えられる。
【００９６】
処理を開始したファイル複製手段１３０は、マイグレーションフラグをＯＮにする（ステップＡＣ２）。次に、ファイル複製手段１３０は、移動元のファイルを移動先に複製する（ステップＡＣ３）。ステップＡＣ３の処理の詳細については図６のフローチャートを用いて後述する。
【００９７】
次に、ファイル複製手段１３０は、クライアントからのアクセスを移動元から移動先に切り替える（ステップＡＣ４）。ステップＡＣ４の処理の詳細については図９のフローチャートを用いて後述する。
【００９８】
最後に、ファイル複製手段１３０は、マイグレーションフラグをＯＦＦに戻して（ステップＡＣ５）、処理を終了する。
【００９９】
図６は、第１の実施形態のファイル複製手段が移動元のファイルを移動先に複製する動作を示すフローチャートである。図６を参照すると、ファイル複製手段１３０は、まず、同期状態管理ツリーを作成する（ステップＡＤ１）。同期状態管理ツリーとは、マイグレーション対象のディレクトリツリーを記述したものである。さらに、同期状態管理ツリーには、そのディレクトリツリーを構成する各ファイルが複製済か否かが記述されている。
【０１００】
同期状態管理ツリーを作成するために、ファイル複製手段１３０は、ディレクトリツリー構成を知るための要求をサーバに送る。例えば、プロトコルがＮＦＳであればＲＥＡＤＤＩＲやＲＥＡＤＤＩＲＰＬＵＳ、プロトコルがＣＩＦＳであればＦＩＮＤＦＩＲＳＴといったような要求をサーバに送る。また、各ファイルが複製済か否かについては、この時点では複製の処理を開始していないので全て複製済でないと記述する。
【０１０１】
次に、ファイル複製手段１３０は、同期状態管理ツリーにリストアップされている全てのファイルが複製済であり、かつ更新チェックが付されていない状態になるまでステップＡＤ３〜ステップＡＤ７の処理を繰り返す（ステップＡＤ２）。更新チェックの付与と削除については図７を用いて後述する。
【０１０２】
まず、ファイル複製手段１３０は、マイグレーション対象に更新がされているか否かを調べる（ステップＡＤ３）。ステップＡＤ３の処理の詳細については図７を用いて後述する。
【０１０３】
次に、ファイル複製手段１３０は、同期状態管理ツリー内のファイルの中から複製済でないものを１つ選択する（ステップＡＤ４）。次に、ファイル複製手段１３０は、選択したファイルが排他ロックされているか否か、排他ロック状態情報管理手段１４０に問い合わせて確認する（ステップＡＤ５）。
【０１０４】
選択したファイルが排他ロックされていれば、ファイル複製手段１３０は、ステップＡＤ７の処理に移行する。ファイルが排他ロックされていなければ、ファイル複製手段１３０は、ファイル複製手段１３０は排他ロック状態情報管理手段１４０から排他ロック状態情報を入手する（ステップＡＤ６）。
【０１０５】
この排他ロックの情報には、排他ロックの種類、排他ロックの範囲、排他ロックの所有者に関する情報が含まれている。排他ロックの種類および範囲に関する情報によって、ファイル内の排他ロックがかかっている範囲が示されている。排他ロックの所有者に関する情報は、排他ロックされているファイルを複製する際に利用される。
【０１０６】
次に、ファイル複製手段１３０は、選択したファイルを移動先に複製する（ステップＡＤ７）。この際、ファイル複製手段１３０は、ファイルの複製が済むと、同期状態管理ツリー上、そのファイルを複製済の状態にする。
【０１０７】
また、複製しようとするファイルが排他ロックされているものであれば、ファイル複製手段１３０は、ステップＡＤ６の処理により入手した排他ロック状態情報を用いる。つまり、ファイル複製手段１３０は、排他ロック状態情報に含まれている排他ロックの所有者の情報を用いて所有者になりすまし、複製を行う。
【０１０８】
排他ロックの所有者はファイル・アクセス・プロトコルによって異なるが、一般的には、クライアント、ＴＣＰコネクションなどのトランスポート、ユーザ、またはユーザ上のプロセス、もしくはこれらの組み合わせなどである。
【０１０９】
同期状態管理ツリーに複製ができていないファイルがなくなると、ファイル複製手段１３０は、ステップＡＤ２のループを脱してフォワード遮断フラグをＯＮにする（ステップＡＤ８）。
【０１１０】
最後に、ファイル複製手段１３０は、マイグレーション対象の中に一貫性がとれていないものがないか確かめて（ステップＡＤ９）、処理を終了する。ステップＡＤ９の処理の詳細については図８のフローチャートを用いて後述する。
【０１１１】
図７は、第１の実施形態のファイル複製手段が、マイグレーション対象に更新がされているか否か調べる動作を示すフローチャートである。図７を参照すると、ファイル複製手段１３０は、まず、メッセージフォワード手段１２０からのメッセージがあるか否かを判定する（ステップＡＥ１）。メッセージがなければ、ファイル複製手段１３０はそのまま処理を終了する。
【０１１２】
メッセージがあれば、ファイル複製手段１３０は、そのメッセージの対象とするファイルがマイグレーション対象か否か判定する（ステップＡＥ２）。
【０１１３】
メッセージが対象とするファイルは、メッセージに含まれるファイル識別子によって知ることができる。ファイル識別子は、メッセージ内にシンボリックに示されている場合や、ファイルサーバ１４からのトークンのようにバイナリ形式で示されている場合がある。パス名のようにシンボリックに示されていれば、ファイル識別子から容易にファイルを識別できる。トークンとしてバイナリ形式で示されている場合には、そのトークンがどのファイルに相当するかをなんらかの方法で知る必要がある。トークンは、オープンが成功したときにサーバからの応答によりクライアントに渡されるものなので、一例として、中間装置はオープンの要求と応答を監視すればトークンとパス名の対応関係を知ることができる。例えば、オープンの要求に含まれるパス名を一旦保持しておき、成功応答に含まれるトークンと関係づけして記録すればよい。
【０１１４】
メッセージが対象とするファイルがマイグレーション対象であるか否かを確認するには、そのファイルが同期状態管理ツリーで管理されているか否かを調べればよい。
【０１１５】
ステップＡＥ２の判定で、メッセージの対象がマイグレーション対象でなければ、ファイル複製手段１３０は処理を終了する。
【０１１６】
ステップＡＥ２の判定で、メッセージの対象がマイグレーション対象であれば、ファイル複製手段１３０は、メッセージが要求、成功応答、失敗応答のいずれであるかを調べる（ステップＡＥ３）。
【０１１７】
メッセージが要求であれば、ファイル複製手段１３０は、同期状態管理ツリーのファイルに更新チェックを付与する（ステップＡＥ４）。この時点では、要求が成功するか失敗するか分からず、ファイルが更新されるとは限らない。そのため、まだ複製済か否かを決定できず、更新チェックを付与するに留めてある。
【０１１８】
メッセージが成功応答であれば、ファイル複製手段１３０は、更新チェックが付与されている、対象ファイルを複製済でない状態に戻す（ステップＡＥ５）。つまり、複製をやり直すことになる。
【０１１９】
メッセージが失敗応答であれば、ファイル複製手段１３０は更新チェックを破棄する（ステップＡＥ６）。
【０１２０】
図８は、第１の実施形態のファイル複製手段がマイグレーション対象の中に一貫性がとれていないものが無いか確認する動作を示すフローチャートである。図８を参照すると、ファイル複製手段１３０は、まず、マイグレーション対象で一貫性がとれていないファイルがあるか否かを調べる（ステップＡＦ１）。一貫性のチェック方法は、例えば、ファイルの更新時刻を比較する方法、ファイルのデータのチェックサムを比較する方法などがある。
【０１２１】
一貫性のとれていないファイルがなければ、ファイル複製手段１３０は、処理を終了する。一貫性のとれていないファイルがあれば、ファイル複製手段１３０は、フォワード遮断フラグをＯＦＦにし、ステップＡＤ２の複製のループ、すなわちステップＡＤ２の処理に戻る（ステップＡＦ２）。
【０１２２】
図９は、図２のファイル複製手段がクライアントからのアクセスを移動元から移動先に切り替える動作を示すフローチャートである。図９を参照すると、ファイル複製手段１３０は、まず、移動元へのアクセスが移動先に移るようにフォワーディングテーブルを書き換える（ステップＡＧ１）。次に、ファイル複製手段１３０は、フォワード遮断フラグをＯＦＦにして（ステップＡＧ２）、処理を終了する。
【０１２３】
図１０は、排他ロック状態情報管理手段の動作を示すフローチャートである。図１０を参照すると、排他ロック状態情報管理手段１４０は、メッセージフォワード手段１２０からのデータ、あるいはファイル複製手段１３０からの問い合わせを受けると（ステップＡＨ１）、処理を開始する。
【０１２４】
排他ロック状態情報管理手段１４０は、まず、メッセージフォワード手段１２０からのデータ受信か、ファイル複製手段１３０からの問合せかを判定する（ステップＡＨ２）。
【０１２５】
メッセージフォワード手段１２０からのデータ受信であれば、排他ロック状態情報管理手段１４０は、そのデータが要求のメッセージか、成功応答のメッセージか、あるいは失敗応答のメッセージかを調べる（ステップＡＨ３）。
【０１２６】
要求のメッセージであれば、排他ロック状態情報管理手段１４０は、排他ロック要求の情報およびメッセージ番号を一旦保持して（ステップＡＨ４）、処理を終了する。
【０１２７】
メッセージ番号を保持するのは、後に応答があったとき、どの要求に対する応答かを調べるためである。排他ロック要求の情報を保持するのは、要求にしか含まれない情報があり、成功応答を受けたときに、これらの情報を記録するためである。
【０１２８】
成功応答のメッセージであれば、排他ロック状態情報管理手段１４０は、保持していた排他ロック要求の情報を記録することにより排他ロック状態情報を更新して（ステップＡＨ５）、処理を終了する。失敗応答のメッセージであれば、排他ロック状態情報管理手段１４０は、保持していた排他ロック要求の情報を破棄して（ステップＡＨ６）、処理を終了する。
【０１２９】
ステップＡＨ５およびステップＡＨ６において、応答がどの要求に対応するものかは、メッセージ番号で判断すればよい。
【０１３０】
記録する排他ロックの情報には、排他ロックの種類、排他ロックの範囲、および排他ロックの所有者に関する情報が含まれる。
【０１３１】
排他ロックの種類は、ファイル単位の排他ロックなのか、バイトレンジのような部分的な排他ロックなのかの情報である。排他ロックの範囲は、部分的な排他ロックがファイルのどの範囲にかかっているのかを示す情報である。
【０１３２】
排他ロックの所有者は、ファイル・アクセス・プロトコルによって異なるが、一般的には、クライアント、コネクション、ユーザ、プロセス、もしくはこれらの組み合わせなどである。
【０１３３】
排他ロックの種類および範囲に関する情報は、ファイルに排他ロックがかかっているか、また、どの範囲に排他ロックがかかっているかを判断するのに利用される。排他ロックがファイルの一部のみにかかっている場合には、その部分を複製するときだけ、排他ロックの所有者になりすませばよいからである。排他ロックの所有者に関する情報は、排他ロックされているファイルを複製する際に利用される。
【０１３４】
ステップＡＨ２の判定でファイル複製手段１３０からの問合せであれば、排他ロック状態情報管理手段１４０は、そのファイルに排他ロックがかかっていれば排他ロック状態情報をファイル複製手段に送り（ステップＡＨ７）、処理を終了する。
【０１３５】
本実施の形態によれば、メッセージフォワード手段１２０は、フォワーディングテーブルに従ってファイルサーバ１４とクライアント１１の間のメッセージを転送すると共に監視しており、排他ロックの要求または応答があれば、その内容を排他ロック状態情報管理手段１４０に通知し、ファイルマイグレーション中に更新系の要求または応答があれば、その内容をファイル複製手段１３０に通知する。
【０１３６】
排他ロック状態情報管理手段１４０は、メッセージフォワード手段１２０からの通知に基づいて各ファイルの排他ロックの有無および排他ロックの所有者の情報を含む排他ロック状態を管理している。
【０１３７】
ファイル複製手段１３０は、ファイルマイグレーションにおいて複製を作成する際に、排他ロック状態情報管理手段１４０から排他ロック状態を取得し、排他ロックがかかっていればその排他ロックの所有者になりすましてファイルの複製を作成し、また、ファイルマイグレーション中に複製済のファイルが更新されたことをメッセージフォワード手段１２０からの通知によって知ると、そのファイルの複製をやり直し、一貫性がとれた状態でファイルの複製が完了すると、フォワーディングテーブルを更新することにより、クライアントからのアクセスの、メッセージフォワード手段１２０による転送先を切り替える。
【０１３８】
そのため、中間装置１０１は、メッセージから認識される排他ロック状態の情報を利用してファイルを読み出し、メッセージから認識されるファイルの更新の情報を利用して一貫性のとれた状態でファイルの複製を行うことができるので、オンライン状態であっても、また排他ロックがかかっていても、正常にファイルマイグレーションを行うことができる。
【０１３９】
なお、本実施形態では、中間装置１０１が物理的に独立した形態で存在する例を示したが、本発明はそれに限定されない。中間装置１０１は論理的にクライアント１１とファイルサーバ１４の中間に存在する限り、物理的にどのような形態をとってもよい。
【０１４０】
例えば、中間装置１０１は、いずれかのファイルサーバ１４の内部に構成されてもよい。その場合、クライアント１１とファイルサーバ１４の通信は、中間装置１０１を内部に有するファイルサーバ１４を経由することとなる。また、中間装置１０１は、いずれかのクライアント１１の内部に構成されてもよい。その場合、クライアント１１とファイルサーバ１４の通信は、中間装置１０１を内部に有するクライアント１１を経由することとなる。
【０１４１】
また、本実施形態では、ファイル・アクセス・プロトコルとしてＣＩＦＳおよびＮＦＳｖ４を例として、ユーザが排他ロックの所有者となることとしたが、本発明はそれに限定されない。ファイル・アクセス・プロトコルに応じてファイルにアクセスする主体は様々であり、そのため排他ロックの所有者も様々である。
【０１４２】
（第２の実施形態）
第２の実施形態によるクライアント・サーバ・システムは図１に示した第１の実施形態と同様の構成である。ただし、本実施形態では、図１における中間装置１０１の代わりに中間装置１０２が設けられている。
【０１４３】
図１１は、第２の実施形態の中間装置１０２の構成を示すブロック図である。図１１を参照すると、本実施形態の中間装置１０２は、パケット処理手段１１０、メッセージフォワード手段１２１、ファイル複製手段１３１、オープン状態情報管理手段１５０、およびオープン状態再現手段１６０を有している。
【０１４４】
パケット処理手段１１０は第１の実施形態と同じである。
【０１４５】
メッセージフォワード手段１２１は、パケット処理手段１１０からメッセージを受けると、フォワーディングテーブル（不図示）を参照して転送先を調べ、それを宛先に設定してメッセージをパケット処理手段１１０に送る。
【０１４６】
また、オープン状態情報管理手段１５０におけるオープン状態情報の管理のために、メッセージフォワード手段１２１は、メッセージがオープン状態を変化させる要求もしくは応答であれば、そのメッセージのコピーをオープン状態情報管理手段１５０に送る。
【０１４７】
また、ファイルマイグレーション中は、ファイル複製手段１３１における複製済ファイルの更新の監視を可能にするために、メッセージフォワード手段１２１は、メッセージが更新系の要求もしくは応答であれば、そのメッセージのコピーをファイル複製手段１３１に送る。
【０１４８】
また、ファイルマイグレーション終了後は、メッセージフォワード手段１２１は、オープン状態を再現する必要があるか否か調べ、必要があれば、オープン状態再現手段１６０にオープン状態再現要求を送り、オープン状態の再現を指示する。
【０１４９】
さらに、メッセージフォワード手段１２１は、オープン状態が再現された状態を利用して送られるべきメッセージをオープン状態再現手段１６０に送る。メッセージフォワード手段１２０がメッセージをオープン状態再現手段１６０に送るのは、オープン状態が再現された状態を利用して代理転送してもらうためである。
【０１５０】
ファイル複製手段１３１は、システム管理者によるファイルマイグレーションの指示を受けると、その指示に基づいて動作を開始する。動作を開始したファイル複製手段１３１は、サーバ１４間でファイルの複製を行う。ファイルを複製している間に、メッセージフォワード手段１２１から更新系メッセージのコピーを受けると、複製済のファイルに更新があるか否か調べる。複製済のファイルに更新があれば、複製の処理をやり直す必要があるからである。
【０１５１】
また、ファイルの複製が完了すると、ファイル複製手段１３１は、オープン状態再現フラグをＯＮにした後、フォワーディングテーブルを書き換えて、クライアントからのアクセスを切り替える。
【０１５２】
オープン状態情報管理手段１５０は、メッセージフォワード手段１２０からオープン状態情報を変更する要求もしくは応答のメッセージのコピーを受けると、その内容に基づいてオープン状態情報を管理する。
【０１５３】
また、オープン状態再現手段１６０から問い合わせを受けると、オープン状態情報管理手段１５０は、管理しているオープン状態情報をオープン状態再現手段１６０に送る。
【０１５４】
オープン状態再現手段１６０は、メッセージフォワード手段１２１からオープン状態再現要求を受けると、オープン状態を再現する。また、オープン状態を再現した後に、再現されたオープン状態で送られるべきメッセージをメッセージフォワード手段１２１から受けると、トークンを付け替えてパケット処理手段１１０に送る（代理転送）。
【０１５５】
次に、本実施形態のクライアント・サーバ・システムの動作例について説明する。なお、ここでは、ファイル複製手段１３１は、システム管理者の指示に基づいて動作を開始するものとする。また、ファイル複製手段１３０は、他の手段の処理による割り込みを許容する。他の処理による割り込みがあると、ファイル複製手段１３１はスリープして、その処理が終了するのを待つ。
【０１５６】
ファイル複製手段１３１以外は、データの入力や、問い合わせを受けて処理を開始するものとし、処理の途中で他の処理による割り込みを許容しない。
【０１５７】
また、メッセージフォワード手段１２１とファイル複製手段１３１の連携動作を可能にするために３つのフラグを設けている。
【０１５８】
マイグレーションフラグとフォワード遮断フラグは、第１の実施形態と同様のフラグである。オープン状態再現フラグは、ファイル複製手段１３１が、メッセージフォワード手段１２１に、オープン状態を再現する必要があるか否か知らせるためのフラグであり、ここではファイルサーバ毎に設定されることとする。
【０１５９】
オープン状態再現フラグは、ファイルの複製とアクセスの切り替えが終了した時点でＯＮとなり、それにより、そのファイルサーバについてはオープン状態の再現を行う動作モードに移行する。オープン状態を再現する必要がある場合には、メッセージフォワード手段１２１は、通常時と異なる動作をするために本フラグを用いる。
【０１６０】
なお、本実施形態では、オープン状態再現フラグをＯＦＦにするタイミングは限定されないが、例えば、再現したオープン状態を用いるクライアントがいなくなった時点でＯＦＦにすることとしてもよい。クライアントとの間のＴＣＰコネクションが全て切断されたとき、逆にサーバとの間のＴＣＰコネクションが全て切断されたとき、中間装置１０２はオープン状態再現フラグをＯＦＦにすればよい。
【０１６１】
また、他の例として、オープン状態再現フラグをＯＦＦにするまでの時間をシステム管理者が予め設定しておくこととしてもよい。例えば、オープン状態再現フラグがＯＮになった後に１ヶ月経過したら本フラグをＯＦＦにしてオープン状態の再現を行わなくすることを管理者が予め設定しておく。中間装置１０２は、その時間が経過したら自動的に本フラグをＯＦＦにする。
【０１６２】
なお、これらのフラグは、メッセージフォワード手段１２１とファイル複製手段１３１が連携動作をするために通信を行う方法の一例である。ファイル複製手段１３１にフラグを設ける他に、要求と応答をやりとりする方法や、フラグを管理する第三者的な手段を設ける方法、第三者的な手段が要求と応答を中継する方法などがある。また、これら複数の手段を１つの手段にまとめて実装することにより通信を無くすこともできる。
【０１６３】
図１２は、第２の実施形態のメッセージフォワード手段の動作を示すフローチャートである。図１２を参照すると、メッセージフォワード手段１２１は、パケット処理手段１１０からメッセージを受けると、あるいはオープン状態再現手段１６０から問合せを受けると（ステップＢＡ１）、処理を開始する。
【０１６４】
まず、メッセージフォワード手段１２１は、メッセージまたは問合せがどこからのものか調べる（ステップＢＡ２）。
【０１６５】
パケット処理手段１１０からのメッセージであれば、メッセージフォワード手段１２１は、図４に示したステップＡＢ２〜ＡＢ６の処理を行う（ステップＢＡ３）。これは第１の実施形態と同じ動作である。
【０１６６】
次に、メッセージフォワード手段１２１は、メッセージがオープン状態を変更する要求もしくは応答であるか否かを調べる（ステップＢＡ４）。メッセージがオープン状態を変更する要求もしくは応答でなければ、メッセージフォワード手段１２１はステップＢＡ６の処理に移行する。
【０１６７】
メッセージがオープン状態を変更する要求もしくは応答であれば、メッセージフォワード手段１２１は、オープン状態情報管理手段１５０にメッセージのコピーを送る（ステップＢＡ５）。メッセージがオープン状態を変更する要求もしくは応答であるか否かは、メッセージに含まれるコマンドの種類から判断できる。コマンドの種類は、メッセージ内にシンボリックに示されている場合や、番号のようにバイナリ形式で示されている場合がある。いずれも場合もプロトコルの仕様に従って判断すればよい。オープン状態を変更するコマンドの例としては、オープン、クローズ、ロック、アンロック、デリートなどがある。
【０１６８】
また、プロトコルによっては、応答にコマンドの種類が含まれていない。この場合、要求を受けたときにメッセージに含まれるメッセージ番号を記録しておき、応答を受けたときにメッセージ番号を照合してコマンドの種類を判断すればよい。
【０１６９】
最後に、メッセージフォワード手段１２１は、オープン状態再現手段１６０もしくはパケット処理手段１１０にメッセージを送り（ステップＢＡ６）、処理を終了する。ステップＢＡ６の処理の詳細については図１３のフローチャートを用いて後述する。
【０１７０】
ステップＢＡ２の判定で、オープン状態再現手段１６０からの問合せであれば、メッセージフォワード手段１２１は、パケット処理手段１１０にメッセージを送り（ステップＢＡ７）、処理を終了する。
【０１７１】
図１３は、第２の実施形態のメッセージフォワード手段がオープン状態再現手段もしくはパケット処理手段にメッセージを送る動作を示すフローチャートである。図１３を参照すると、メッセージフォワード手段１２１は、まず、オープン状態再現フラグがＯＮか否か調べる（ステップＢＢ１）。
【０１７２】
オープン状態再現フラグがＯＦＦであれば、メッセージフォワード手段１２１は、フォワーディングテーブルを参照して転送先を調べ、それを宛先に設定してメッセージをパケット処理手段１１０に送り（ステップＢＢ７）、処理を終了する。
【０１７３】
オープン状態再現フラグがＯＮであれば、メッセージフォワード手段１２１は、メッセージが対象とするファイルがオープン状態を再現する必要のあるものか否か調べる（ステップＢＢ２）。
【０１７４】
メッセージが対象とするファイルは、メッセージに含まれるファイル識別子によって知ることができる。ファイル識別子は、パス名のようにメッセージ内にシンボリックに示されている場合や、ファイルサーバ１４からのトークンのようにバイナリ形式で示されている場合がある。パス名のようにシンボリックに示されていれば、ファイル識別子から容易にファイルを識別できる。トークンとしてバイナリ形式で示されている場合には、そのトークンがどのファイルに相当するかをなんらかの方法で知る必要がある。トークンは、オープンが成功したときにサーバからの応答によりクライアントに渡されるものなので、一例として、中間装置はオープンの要求と応答を監視すればパス名とトークンの対応関係を知ることができる。
【０１７５】
また、そのファイルがオープン状態を再現する必要のあるものか否かを、同期状態管理ツリーを参照して確認する。この同期状態管理ツリーは第１の実施形態のものと異なり、各ファイルがオープン状態を再現済か否かも記述されている。そのファイルが同期状態管理ツリーで管理されており、かつ、そのオープン状態が再現済でなければ、そのファイルはオープン状態を再現する必要がある。
【０１７６】
ファイルが同期状態管理ツリーで管理されていることは、そのファイルがマイグレーション対象であったことを意味するので、ステップＢＢ２の判定でＹＥＳ（すなわち、メッセージが対象とするファイルがオープン状態を再現する必要がある）となるのは、マイグレーション対象であり、複製が終わっているが、まだオープン状態を再現していないファイルがメッセージの対象となっているときである。
【０１７７】
ステップＢＢ２の判定で、メッセージが対象とするファイルがオープン状態を再現する必要がなければ、メッセージフォワード手段１２１はステップＢＢ４の処理に移行する。
【０１７８】
ステップＢＢ２の判定で、メッセージが対象とするファイルがオープン状態を再現する必要があれば、メッセージフォワード手段１２１は、オープン状態再現要求をオープン状態再現手段１６０に送り（ステップＢＢ３）、再現の処理が終了するまで待つ。
【０１７９】
次に、メッセージフォワード手段１２１は、メッセージが、再現されたオープン状態を利用するものか否か（すなわち、透過に転送されるべきメッセージか否か）調べる（ステップＢＢ４）。
【０１８０】
このステップ（ステップＢＢ４）は、再現されたオープン状態を利用するメッセージについては、移動元サーバからクライアントに渡されたトークンを、中間装置が移動先サーバから取得したトークンに変換するために設けられている。
【０１８１】
メッセージがどのオープン状態を利用するかは、メッセージに含まれる、ファイルをオープンした際にサーバから渡されたトークンによって識別できる。通常、トークンは、メッセージの中にファイル識別子として実装される。このトークンがオープン状態再現テーブルに記述されているか否かにより、再現されたオープン状態を利用するものか否かを判定できる。オープン状態再現テーブルとは、移動先サーバから渡されたトークンと、移動元サーバから渡された再現する前のトークンとを対応付けているテーブルである。
【０１８２】
なお、ファイル・アクセス・プロトコルによっては、ファイルをオープンした際にサーバから渡されたトークンだけでなく、ユーザが認証された際に渡されたトークン、ファイルの存在するボリュームにアクセスする許可を受けた際に渡されたトークンなどの様々なトークンを使わなければオープン状態を識別できない。この場合、他のトークンもオープン状態再現テーブルに記述しておけば、メッセージにて利用されるオープン状態が再現されたものか否かを判断できる。
【０１８３】
ステップＢＢ４の判定で、メッセージが再現されたオープン状態を利用するのでなければ、メッセージフォワード手段１２１は、フォワーディングテーブルを参照して転送先を調べ、それを宛先に設定してメッセージをパケット処理手段１１０に送る（ステップＢＢ６）。
【０１８４】
ステップＢＢ４の判定で、メッセージが再現されたオープン状態を利用するのであれば、メッセージフォワード手段１２１は、メッセージをオープン状態再現手段１６０に送り（ステップＢＢ５）、処理を終了する。
【０１８５】
図１４は、第２の実施形態のファイル複製手段の動作を示すフローチャートである。図１４を参照すると、ファイル複製手段１３１は、システム管理者からマイグレーション開始の指示を受けて（ステップＢＣ１）、処理を開始する。処理を開始したファイル複製手段１３１は、まず、マイグレーションフラグをＯＮにする（ステップＢＣ２）。
【０１８６】
次に、ファイル複製手段１３１は、移動元のファイルを移動先に複製する（ステップＢＣ３）。次に、ファイル複製手段１３１は、クライアントのアクセスを移動元から移動先に切り替える（ステップＢＣ４）。最後に、ファイル複製手段１３１は、マイグレーションフラグをＯＦＦにして（ステップＢＣ５）、処理を終了する。
【０１８７】
以上、ステップＢＣ１〜ステップＢＣ５は、図５に示した第１の実施形態のフローチャートと同様である。ただし、ステップＢＣ３およびステップＢＣ４の詳細の動作は第１の実施形態と異なる。ステップＢＣ３の詳細については図１５を、ステップＢＣ４の詳細については図１６をそれぞれ用いて後述する。
【０１８８】
図１５は、第２の実施形態のファイル複製手段が移動元のファイルを移動先に複製する動作を示すフローチャートである。図１５を参照すると、ファイル複製手段１３１は、まず、同期状態管理ツリーを作成する（ステップＢＤ１）。同期状態管理ツリーとは、マイグレーション対象のディレクトリツリーを記述したものである。また、同期状態管理ツリーには、そのディレクトリツリーを構成する各ファイルが複製済か否か記述されている。さらに、第２の実施形態の同期状態管理ツリーは第１の実施形態のものと異なり、さらに、各ファイルがオープン状態を再現済か否かが記述されている。
【０１８９】
次に、ファイル複製手段１３１は、同期状態管理ツリーにリストアップされている全てのファイルが複製済であり、かつ更新チェックが付されていない状態になるまでステップＢＤ３〜ステップＢＤ５の処理を繰り返す（ステップＢＤ２）。
【０１９０】
まず、ファイル複製手段１３１は、マイグレーション対象に更新がされているか否か調べる（ステップＢＤ３）。ステップのＢＤ３の処理の詳細は図７に示した第１の実施形態のと同じである。
【０１９１】
次に、ファイル複製手段１３１は、同期状態管理ツリー内のファイルの中から複製済でないものを１つ選択する（ステップＢＤ４）。次に、ファイル複製手段１３１は、選択したファイルを移動先に複製する（ステップＢＤ５）。この際に、ファイル複製手段１３１は、ファイルの複製が済むと、同期状態管理ツリー上、そのファイルを複製済の状態にする。なお、図１５に示されたフローでは特徴的な部分以外を簡略化しているため、ファイル・アクセス・プロトコルが強制ロック方式でありファイルに排他ロックがかかっている場合にマイグレーションが終了しない処理となっているが、第１の実施形態のステップＡＤ５〜ＡＤ７のようにして、これを解決してもよい。
【０１９２】
同期状態管理ツリーに複製ができていないファイルがなくなると、ファイル複製手段１３１は、ステップＢＤ２のループを脱してフォワード遮断フラグをＯＮにする（ステップＢＤ６）。
【０１９３】
最後に、ファイル複製手段１３１は、マイグレーション対象の中に一貫性がとれていないものがないか確かめて（ステップＢＤ７）、処理を終了する。ステップＢＤ７の処理の詳細については、図８に示した第１の実施形態と同じである。
【０１９４】
図１６は、第２の実施形態のファイル複製手段がクライアントからのアクセスを移動元から移動先に切り替える動作を示すフローチャートである。図１６を参照すると、ファイル複製手段１３１は、まず、移動元へのアクセスが移動先に移るようにフォワーディングテーブルを書き換える（ステップＢＥ１）。次に、ファイル複製手段１３１は、オープン状態再現フラグをＯＮにする（ステップＢＥ２）。最後に、ファイル複製手段１３１は、フォワード遮断フラグをＯＦＦにして（ステップＢＥ３）、処理を終了する。
【０１９５】
図１７は、第２の実施形態のオープン状態情報管理手段の動作を示すフローチャートである。図１７を参照すると、オープン状態情報管理手段１５０は、メッセージフォワード手段１２１からのデータ、あるいはオープン状態再現手段１６０からの問合せを受けると（ステップＢＦ１）、処理を開始する。
【０１９６】
オープン状態情報管理手段１５０は、まず、メッセージフォワード手段１２１からのデータ受信か、オープン状態再現手段１６０からの問合せかを判定する（ステップＢＦ２）。
【０１９７】
メッセージフォワード手段１２１からのデータ受信であれば、オープン状態情報管理手段１５０は、そのデータが要求のメッセージか、成功応答のメッセージか、失敗応答のメッセージかを調べる（ステップＢＦ３）。
【０１９８】
要求のメッセージであれば、オープン状態情報管理手段１５０は、そのメッセージからオープン状態を変化させる要求の情報とメッセージ番号を一旦保持し（ステップＢＦ４）、処理を終了する。
【０１９９】
メッセージ番号を保持するのは、後に応答があったとき、どの要求に対する応答かを調べるためである。オープン状態を変化させる要求の情報を保持するのは、要求にしか含まれない情報があり、成功応答を受けたとき、すなわち要求が受け入れられたときに、これらの情報を記録するためである。要求にしか含まれない情報の例としては、ロックの種類、ロックの範囲、ファイルポインタなどがある。
【０２００】
成功応答のメッセージであれば、オープン状態情報管理手段１５０は、保持していた情報からオープン状態の情報を記録して（ステップＢＦ５）、処理を終了する。
【０２０１】
失敗応答のメッセージであれば、オープン状態情報管理手段１５０は、保持していた情報を破棄して（ステップＢＦ６）、処理を終了する。
【０２０２】
ステップＢＦ５およびステップＢＦ６において、応答がどの要求に対応するものかは、メッセージ番号で判断すればよい。
【０２０３】
記録するオープン状態情報には、ファイル全体にかけるロック、バイトレンジロックのような部分的ロック、ファイルポインタのオフセットの状態に関する情報が含まれる。
【０２０４】
オープン状態情報管理手段１５０は、オープン状態を識別可能に管理するため、メッセージに付与されたトークン毎にオープン状態情報を記録する。通常、トークンは、メッセージの中にファイル識別子として実装される。
【０２０５】
なお、ファイル・アクセス・プロトコルによっては、ファイルをオープンした際にサーバから渡されたトークンだけでなく、ユーザが認証された際に渡されたトークン、ボリュームにアクセスする許可を受けた際に渡されたトークンなどの様々なトークンを使わなければオープン状態を識別できない。この場合、各トークンの組み合わせ毎に、オープン状態情報を記述しておけばよい。
【０２０６】
ステップＢＦ２の判定で、オープン状態再現手段１６０からの問合せであれば、オープン状態情報管理手段１５０は、オープン状態情報をオープン状態再現手段１６０に送り（ステップＢＦ７）、処理を終了する。
【０２０７】
図１８は、第２の実施形態のオープン状態再現手段の動作を示すフローチャートである。図１８を参照すると、オープン状態再現手段１６０は、メッセージフォワード手段１２１もしくはパケット処理手段１１０からのデータを受けて（ステップＢＧ１）、処理を開始する。まず、オープン状態再現手段１６０は、どこからデータを受けたのかを調べる（ステップＢＧ２）。
【０２０８】
メッセージフォワード手段１２１からのデータ受信であれば、オープン状態再現手段１６０は、データの内容を確かめる（ステップＢＧ３）。
【０２０９】
データの内容がメッセージであれば、オープン状態再現手段１６０は、メッセージのトークンを付け替えてパケット処理手段１１０に送る（ステップＢＧ４）ことにより代理転送して処理を終了する。この際に、オープン状態再現テーブルを参照し、移動元サーバからクライアントに渡されたトークンを、移動先サーバからクライアントの代理としての中間装置１０２に渡されたトークンに付け替える。
【０２１０】
ステップＢＧ３の判定で、データの内容がオープン状態再現要求であれば、オープン状態再現手段１６０は、オープン状態を再現して（ステップＢＧ５）、処理を終了する。ステップＢＧ５の処理の詳細は図１９のフローチャートを用いて後述する。
【０２１１】
ステップＢＧ２の判定で、パケット処理手段１１０からのデータ受信であれば、データ内容のメッセージのトークンを付け替えて、ＢＧ４の処理と逆方向に、メッセージフォワード手段１２１に送って（ステップＢＧ６）、処理を終了する。
【０２１２】
図１９は、第２の実施形態のオープン状態再現手段がオープン状態を再現する動作を示すフローチャートである。図１９を参照すると、まず、オープン状態再現手段１６０は、オープン状態管理手段１５０に、メッセージに含まれているファイル識別子を用いて、メッセージが対象としているファイルのオープン状態情報を問い合わせる（ステップＢＨ１）。オープン状態再現手段１６０は、どのユーザもそのファイルに対してオープン状態を設定していない旨の応答をオープン状態管理手段１５０から受けると、これ以降の処理を行わずに終了する。また、１つのファイルに複数のユーザのオープン状態が設定されている場合がある。
【０２１３】
少なくとも１つのオープン状態情報が設定されている旨の応答を受けると、オープン状態再現手段１６０は、オープン状態情報を再現する（ステップＢＨ２）。その際、オープン状態再現手段１６０は、各オープン状態を１つずつ再現していく。オープン状態再現手段１６０は、オープン状態を再現する際に移動先サーバのファイルをオープンするが、ファイルオープンの許可を受けると移動先サーバからトークンを渡される。
【０２１４】
次に、オープン状態再現手段１６０は、ファイルオープンの許可を受けた際に移動先サーバから渡されたトークンと、オープン状態を再現する前に移動元サーバからユーザに渡されていたトークンとを対応付け、その対応付け情報をオープン状態再現テーブルに記述する（ステップＢＨ３）。
【０２１５】
なお、ファイル・アクセス・プロトコルによっては、ファイルをオープンした際にサーバから渡されたトークンだけでなく、ユーザが認証された際に渡されたトークン、ボリュームにアクセスする許可を受けた際に渡されたトークンなどの様々なトークンを使わなければオープン状態を識別できない。この場合、他のトークンもオープン状態再現テーブルに記述する。
【０２１６】
本実施形態によれば、メッセージフォワード手段１２１は、フォワーディングテーブルに従ってファイルサーバ１４とクライアント１１の間のメッセージを転送すると共に監視しており、オープン状態を変化させる要求または応答があれば、その内容をオープン状態情報管理手段１５０に通知し、ファイルマイグレーション中に更新系の要求または応答があれば、その内容をファイル複製手段１３１に通知する。また、メッセージフォワード手段１２１は、ファイルマイグレーション終了後にオープン状態を再現する必要があるか否か調べ、必要があれば、オープン状態再現手段１６０にオープン状態再現要求を送る。また、メッセージフォワード手段１２１は、オープン状態が再現された状態で送られるべきメッセージがあれば、パケット処理手段１１０では無く、代理転送してもらうためにオープン状態再現手段１６０に送る。
【０２１７】
オープン状態情報管理手段１５０は、メッセージフォワード手段１２１からの通知に基づいて、各ファイルのオープン状態をトークンと関連付けて記録することによりオープン状態情報を管理しており、オープン状態再現手段１６０から問い合わせを受けると、管理しているオープン状態情報をオープン状態再現手段１６０に通知する。
【０２１８】
ファイル複製手段１３１は、ファイルマイグレーションにおいてファイルの複製を作成し、ファイルマイグレーション中に複製済のファイルが更新されたことをメッセージフォワード手段１２１からの通知によって知ると、そのファイルの複製をやり直し、一貫性がとれた状態でファイルの複製が完了すると、フォワーディングテーブルを更新することにより、クライアントからのアクセスの、メッセージフォワード手段１２１による転送先を切り替える。
【０２１９】
オープン状態再現手段１６０は、メッセージフォワード手段１２１からオープン状態再現要求を受けると、オープン状態情報管理手段１５０に問い合わせてオープン状態を再現し、トークンの対応付け情報をオープン状態再現テーブルに記録し、オープン状態を再現した後に、オープン状態が再現された状態で送られるべきメッセージのトークンをオープン状態再現テーブルに従って付け替えて、メッセージフォワード手段１２１の代理として転送する。
【０２２０】
そのため、中間装置１０２は、一貫性のとれた状態でファイルの複製を行い、オープン状態を再現してから、クライアントのアクセスを切り替えることができるので、オープン状態が管理される方式のファイル・アクセス・プロトコルにおいてオープン状態を継続させてファイルマイグレーションを行うことができ、オンライン状態でファイルマイグレーションを行ってもファイル破壊やアプリケーションの異常終了を引き起こさない。
【０２２１】
なお、本実施形態では、オープン状態再現フラグがファイルサーバ毎に設定される例を示したが、必ずしもファイルサーバ毎でなくてもよく、例えばマイグレーション毎、あるいはファイル毎に設定されることとしてもよい。
【０２２２】
オープン状態再現フラグがファイル毎に設定される場合、複製が完了したときにフラグがＯＮになる。ただし、フラグがＯＮとなるのはオープン状態を再現する必要があるファイルのみであり、言い換えれば、移動元サーバでオープン状態が設定されていたファイルのみである。また、ユーザが移動元サーバに設定していたオープン状態を利用しなくなったらフラグをＯＦＦにすることができる。例えば、ユーザによって使用されていたクライアントからのＴＣＰコネクションが切断されたことで、オープン状態が利用されなくなったことを認識すればよい。また、単純にフラグがＯＮになってから所定の期間が経過したことでフラグをＯＦＦにすることとしてもよい。
【０２２３】
【発明の効果】
本発明によれば、排他ロック状態情報管理手段が、全てのファイルの排他ロック状態情報を管理しており、ファイル複製手段が、ファイルマイグレーションにおいて複製を作成する際に、排他ロック状態情報管理手段の排他ロック状態を調べ、排他ロックがかかっていればその排他ロックの所有者になりすましてファイルの複製を作成するので、オンライン状態であり、排他ロックがかかっていても、正常にファイルの複製を作成することができる。これによりファイルサーバを停止することなく、マイグレーション作業を行うことができるようになる。
【０２２４】
また、ファイルと複製の一貫性が取れていなければ、メッセージフォワード手段がメッセージ転送を遮断している状態で、ファイル複製手段が複製を作成しなおして一貫性をとった後にクライアントからのアクセスを複製に切り替えるので、ファイルとの一貫性がとれた複製を作成することができ、オンライン状態であっても、正常にファイルの複製を作成することができる。
【０２２５】
また、ファイルに排他ロックをかける主体の異なる様々なファイル・アクセス・プロトコルが用いられる場合に、各ファイル・アクセス・プロトコルにおける排他ロックの所有者を管理できるので、ファイル・アクセス・プロトコルの種類に応じてオンライン状態で正常にファイルの複製を作成することができる。
【０２２６】
また、ファイルの一部の範囲に排他ロックがかけられる場合、本情報処理装置はその部分の複製を作成するときだけ排他ロックの所有者になりすますことにより、正常にファイルの複製を作成することができるので、負荷の高い、排他ロックの所有者になりすましての（排他ロックの所有者の情報を用いての）処理を削減し、処理負荷を軽減することができる。
【０２２７】
また、排他ロック状態情報管理手段が、排他要求の要求メッセージの内容を保持しておき、その要求が受け入れられたときに、要求メッセージの情報と応答メッセージの両方の情報を用いて排他ロック状態情報を更新するので、排他ロックの状態を管理するために必要な情報が応答メッセージからだけでは取得できない場合にも正常にファイルへのアクセスを複製に切り替えることができる。
【０２２８】
また、他の発明によれば、オープン状態情報管理手段が各ファイルのオープン状態を管理しており、ファイル複製手段がファイルの複製を作成し、クライアントからのアクセスを複製に切り替えると、最初のアクセスの前に、オープン状態再現手段がオープン状態情報管理手段に問い合わせてファイルのオープン状態を移動先サーバに再現するので、情報処理装置は、オープン状態が管理される方式のファイル・アクセス・プロトコルにおいてオープン状態を継続させてファイルマイグレーションを行うことができ、オンライン状態でファイルマイグレーションを行ってもファイル破壊やアプリケーションの異常終了を引き起こさない。
【０２２９】
また、オープン状態情報管理手段が、オープン状態を変化させる要求メッセージの内容を保持しておき、その要求が受け入れられたときに、要求メッセージの情報と応答メッセージの両方の情報を用いてオープン状態情報を更新するので、オープン状態を管理するために必要な情報が応答メッセージからだけでは取得できない場合にも正常にファイルへのアクセスを複製に切り替えることができる。
【０２３０】
また、移動元サーバでの第２のトークンと移動先での第１のトークンとの対応付けによりオープン状態が再現されるので、クライアント上のユーザはファイルのマイグレーション後にもマイグレーション前と同じようにファイルを利用することができる。これにより、サーバからクライアントへトークンが渡される方式のファイル・アクセス・プロトコルにおいても、アプリケーションがアクセスに失敗したり異常終了したりすることなくファイルマイグレーションを行うことができるようになる。
【０２３１】
また、オープン状態再現手段が、ユーザが認証されたときに渡された第３のトークン、またはボリュームにアクセスしたときに渡された第４のトークンをも再現するので、ファイルをオープンするときだけでなく、ユーザが認証されるとき、ボリュームにアクセスするときにもトークンが渡される方式のファイル・アクセス・プロトコルの場合においても、アプリケーションがアクセスに失敗したり異常終了したりすることなくファイルマイグレーションを行うことができるようになる。
【図面の簡単な説明】
【図１】本発明の第１の実施形態によるクライアント・サーバ・システムの構成を示すブロック図である。
【図２】第１の実施形態の中間装置１０１の構成を示すブロック図である。
【図３】第１の実施形態のパケット処理手段の動作を示すフローチャートである。
【図４】第１の実施形態のメッセージフォワード手段の動作を示すフローチャートである。
【図５】第１の実施形態のファイル複製手段の動作を示すフローチャートである。
【図６】第１の実施形態のファイル複製手段が移動元のファイルを移動先に複製する動作を示すフローチャートである。
【図７】第１の実施形態のファイル複製手段が、マイグレーション対象に更新がされているか否か調べる動作を示すフローチャートである。
【図８】第１の実施形態のファイル複製手段がマイグレーション対象の中に一貫性がとれていないものが無いか確認する動作を示すフローチャートである。
【図９】図２のファイル複製手段がクライアントからのアクセスを移動元から移動先に切り替える動作を示すフローチャートである。
【図１０】排他ロック状態情報管理手段の動作を示すフローチャートである。
【図１１】排他ロック状態情報管理手段の動作を示すフローチャートである。
【図１２】第２の実施形態のメッセージフォワード手段の動作を示すフローチャートである。
【図１３】第２の実施形態のメッセージフォワード手段がオープン状態再現手段もしくはパケット処理手段にメッセージを送る動作を示すフローチャートである。
【図１４】第２の実施形態のファイル複製手段の動作を示すフローチャートである。
【図１５】第２の実施形態のファイル複製手段が移動元のファイルを移動先に複製する動作を示すフローチャートである。
【図１６】第２の実施形態のファイル複製手段がクライアントからのアクセスを移動元から移動先に切り替える動作を示すフローチャートである。
【図１７】第２の実施形態のオープン状態情報管理手段の動作を示すフローチャートである。
【図１８】第２の実施形態のオープン状態再現手段の動作を示すフローチャートである。
【図１９】第２の実施形態のオープン状態再現手段がオープン状態を再現する動作を示すフローチャートである。
【符号の説明】
１１    クライアント
１１ａ    ユーザ
１１ｂ    リダイレクタ
１２    ネットワーク
１４    サーバ
１０１    中間装置
１１０    パケット処理手段
１２０，１２１    メッセージフォワード手段
１３０，１３１    ファイル複製手段
１４０    排他ロック状態情報管理手段
１５０    オープン状態情報管理手段
１６０    オープン状態再現手段
ＡＡ１〜ＡＡ５，ＡＢ１〜ＡＢ９，ＡＣ１〜ＡＣ５，ＡＤ１〜ＡＤ９，ＡＥ１〜ＡＥ６，ＡＦ１〜ＡＦ２，ＡＧ１〜ＡＧ２，ＡＨ１〜ＡＨ７，ＢＡ１〜ＢＡ７，ＢＢ１〜ＢＢ６，ＢＣ１〜ＢＣ５，ＢＤ１〜ＢＤ７，ＢＥ１〜ＢＥ３，ＢＦ１〜ＢＦ７，ＢＧ１〜ＢＧ６，ＢＨ１〜ＢＨ３    ステップ
【図１】
2005018440.tif 000003
【図２】
2005018440.tif 000004
【図３】
2005018440.tif 000005
【図４】
2005018440.tif 000006
【図５】
2005018440.tif 000007
【図６】
2005018440.tif 000008
【図７】
2005018440.tif 000009
【図８】
2005018440.tif 000010
【図９】
2005018440.tif 000011
【図１０】
2005018440.tif 000012
【図１１】
2005018440.tif 000013
【図１２】
2005018440.tif 000014
【図１３】
2005018440.tif 000015
【図１４】
2005018440.tif 000016
【図１５】
2005018440.tif 000017
【図１６】
2005018440.tif 000018
【図１７】
2005018440.tif 000019
【図１８】
2005018440.tif 000020
【図１９】
2005018440.tif 000021