(57)【特許請求の範囲】
【請求項１】
ストレージネットワーク内のアクセス対象物であるオブジェクトにアクセスするための方法であって、
ソースファイルサーバ上の前記オブジェクトの格納位置を示す情報を含むＮＡＳ（ネットワーク接続ストレージ）ファイルハンドルを、前記ストレージネットワーク内に設けられたコンピュータが前記ソースファイルサーバから受信し、該コンピュータにおいて記憶するステップと、
前記オブジェクトを表すものとして、前記オブジェクトの格納位置に依存しないスイッチファイルハンドルを、前記コンピュータからクライアント装置に送信するステップと、
前記コンピュータによって、前記オブジェクトに係る名前空間を前記ソースファイルサーバから宛先ファイルサーバに複製し且つ該オブジェクトに係るデータを該複製した名前空間に移動することにより、該ソースファイルサーバ上の格納位置から該宛先ファイルサーバ上の格納位置に前記オブジェクトを移動するステップと、ここで、前記名前空間の複製は前記データの移動とは別に実行され、
前記スイッチファイルハンドルを用いて前記オブジェクトへのアクセスをリクエストするアクセスリクエストを、前記コンピュータがクライアント装置から受信するステップと、
前記コンピュータによって、前記受信したアクセスリクエストがリクエストする前記オブジェクトの前記宛先ファイルサーバ上の格納位置にアクセスリクエストを送信するステップと、
を具備する方法。
【請求項２】
前記オブジェクトは、サブディレクトリおよびファイルを表すオブジェクトを有するディレクトリを備える、請求項１の方法。
【請求項３】
前記オブジェクトはファイルを備える、請求項１の方法。
【請求項４】
前記オブジェクトを移動するステップは、
移動中に、前記アクセスリクエストが前記名前空間にアクセスするか、またはそれを修正するリクエストを含む場合、前記名前空間のアクセスリクエストを、移動の間、前記名前空間および前記複製した前記名前空間の双方に送信するステップを備える、請求項１の方法。
【請求項５】
前記オブジェクトを移動するステップは、更に、
前記オブジェクトを移動する前に、記憶したファイルハンドルを前記宛先ファイルサーバ上の格納位置に格納するステップを備え、前記記憶したファイルハンドルは、前記ソースファイルサーバ上の前記オブジェクトの格納位置を示す、請求項１の方法。
【請求項６】
前記オブジェクトを移動するステップは、更に、
前記オブジェクトを移動した後に、記憶されたファイルハンドルを前記ソースファイルサーバ上の格納位置に格納するステップを備え、前記記憶されたファイルハンドルは、前記宛先ファイルサーバ上の前記オブジェクトの格納位置を示す、請求項１の方法。
【請求項７】
前記オブジェクトを移動するステップは、前記オブジェクトに対応するデータを移動するステップを備える、請求項１の方法。
【請求項８】
前記オブジェクトを移動するステップは、移動の成功に応じて、ファイルハンドル移動テーブルを、前記ソースファイルサーバ上の格納位置についてのエントリ、および前記宛先ファイルサーバ上の格納位置についてのエントリで更新することを備える、請求項１の方法。
【請求項９】
前記アクセスリクエストを送信するステップは、
前記ファイルハンドル移動テーブル内の前記オブジェクトを照合するステップと、
前記オブジェクトが見つけられたならば、前記アクセスリクエストを前記宛先ファイルサーバ上の格納位置に送信するステップとを備える、請求項８の方法。
【請求項１０】
前記アクセスリクエストを受信するステップは、更に、
移動されていない第２オブジェクトのための第２アクセスリクエストをクライアント装置から受信するステップを含み、
前記アクセスリクエストを送信するステップは、更に、
前記ファイルハンドル移動テーブル内の前記第２オブジェクトを照合することと、
前記第２オブジェクトが見つけられないならば、前記第２アクセスリクエストを前記ソースファイルサーバ上の格納位置に送信することを備える、請求項１の方法。
【請求項１１】
前記アクセスリクエストは、読出しリクエストおよび書込みリクエストの１つを含むファイルアクセスリクエストを備える、請求項１の方法。
【請求項１２】
前記アクセスリクエストは、作成リクエスト、削除リクエスト、移動リクエスト、コピーリクエスト、照合リクエスト、および名前書換えリクエストから成るグループの中の１つを含む名前空間アクセスリクエストを備える、請求項１の方法。
【請求項１３】
前記ＮＡＳファイルハンドルは、ＮＦＳ（ネットワークファイルシステム）ファイルハンドル、およびＣＩＦＳ（共通インターネットファイルシステム）ファイルハンドルから成るグループの中の１つを備える、請求項１の方法。
【請求項１４】
分散ストレージネットワーク内のアクセス対象物であるオブジェクトに集中してアクセスするための方法であって、
ソースファイルサーバ上の前記オブジェクトの格納位置を示す情報を含む入力ファイルハンドルを、前記ストレージネットワーク内に設けられたコンピュータが前記ソースファイルサーバから受信し、該コンピュータにおいて記憶するステップと、
前記オブジェクトを表すものとして、前記オブジェクトの格納位置に依存しないスイッチファイルハンドルを、前記コンピュータからクライアント装置に送信するステップと、
前記コンピュータによって、前記オブジェクトに対応付けられた名前空間を前記ソースファイルサーバから宛先ファイルサーバに複製し且つ該オブジェクトに対応付けられたデータを該複製した名前空間に移動することにより、該ソースファイルサーバ上の格納位置から該宛先ファイルサーバ上の格納位置に前記オブジェクトを移動するステップとで、ここで、前記名前空間の複製は前記データの移動とは別に実行され、また、移動中、オブジェクトアクセスリクエストは、前記ソースファイルサーバ上の名前空間と、前記宛先ファイルサーバ上の複製された名前空間との間で複製され、
前記コンピュータによって、前記移動後、ファイルハンドル移動テーブルを更新するステップと、ここで、前記ファイルハンドル移動テーブルは、前記ソースおよび宛先ファイルサーバ上のエントリオブジェクトの格納位置を示す情報を記憶し、
前記スイッチファイルハンドルを用いて前記オブジェクトへのアクセスをリクエストするアクセスリクエストを、前記コンピュータがクライアント装置から受信するステップと、
前記コンピュータによって、前記受信したアクセスリクエストがリクエストする前記オブジェクトの前記宛先ファイルサーバ上の格納位置にアクセスリクエストを送信するステップと、
を具備する方法。
【請求項１５】
前記分散ストレージネットワークは、ＮＡＳ（ネットワーク接続ストレージ）ストレージネットワークであり、前記アクセスリクエストは、ＮＡＳアクセスリクエストであり、そして前記入力ファイルハンドルはＮＡＳファイルハンドルである、請求項１４の方法。
【請求項１６】
前記ソースおよび宛先ファイルサーバは、ファイルシステムを含み、前記クライアント装置は前記ファイルシステムを含まない、請求項１４の方法。
【請求項１７】
ＮＡＳ（ネットワーク接続ストレージ）ストレージネットワーク内のアクセス対象物であるオブジェクトにアクセスするために前記ストレージネットワーク内に設けられたコンピュータによって実行されるコンピュータプログラムであって、前記コンピュータに、
ソースファイルサーバ上の前記オブジェクトの格納位置を示す情報を含むＮＡＳファイルハンドルを、前記コンピュータが前記ソースファイルサーバから受信し、該コンピュータにおいて記憶する手順と、
前記オブジェクトを表すものとして、前記オブジェクトの格納位置に依存しないスイッチファイルハンドルを、前記コンピュータからクライアント装置に送信する手順と、
前記コンピュータによって、前記オブジェクトに係る名前空間を前記ソースファイルサーバから宛先ファイルサーバに複製し且つ該オブジェクトに係るデータを該複製した名前空間に移動することにより、前記ソースファイルサーバ上の格納位置から該宛先ファイルサーバ上の格納位置に前記オブジェクトを移動する手順と、ここで、前記名前空間の複製は前記データの移動とは別に実行され、
前記スイッチファイルハンドルを用いて前記オブジェクトへのアクセスをリクエストするアクセスリクエストを、前記コンピュータがクライアント装置から受信する手順と、
前記コンピュータによって、前記受信したアクセスリクエストがリクエストする前記オブジェクトの前記宛先ファイルサーバ上の格納位置にアクセスリクエストを送信する手順と、
を実行させるためのコンピュータプログラム。
【請求項１８】
前記オブジェクトは、サブディレクトリおよびファイルを表すオブジェクトを有するディレクトリを備える、請求項１７のコンピュータプログラム。
【請求項１９】
前記オブジェクトはファイルを備える、請求項１７のコンピュータプログラム。
【請求項２０】
前記オブジェクトを移動する手順は、更に、
移動中に、前記アクセスリクエストを、前記名前空間および前記複製した名前空間の双方に送信する手順を前記コンピュータに実行させることを含む、請求項１７のコンピュータプログラム。
【請求項２１】
前記オブジェクトを移動する手順は、更に、
オブジェクトを移動する前に、記憶したファイルハンドルを、前記宛先ファイルサーバ上の格納位置に格納する手順を前記コンピュータに実行させることを含み、前記格納したファイルハンドルは、前記ソースファイルサーバ上の前記オブジェクトの格納位置を示す、請求項１７のコンピュータプログラム。
【請求項２２】
前記オブジェクトを移動する手順は、更に、
前記オブジェクトを移動した後に、記憶されたファイルハンドルを前記ソースファイルサーバ上の格納位置に格納する手順を前記コンピュータに実行させることを含み、前記記憶されたファイルハンドルは、前記宛先ファイルサーバ上の前記オブジェクトの格納位置を示す、請求項１７のコンピュータプログラム。
【請求項２３】
前記オブジェクトを移動する手順は、前記オブジェクトに対応するデータを移動する手順を前記コンピュータに実行させることを含む、請求項１７のコンピュータプログラム。
【請求項２４】
前記オブジェクトを移動する手順は、移動の成功に応じて、ファイルハンドル移動テーブルを、前記ソースファイルサーバ上の格納位置に対するエントリ、および前記宛先ファイルサーバ上の格納位置に対するエントリで更新する手順を前記コンピュータに実行させることを含む、請求項１７のコンピュータプログラム。
【請求項２５】
前記アクセスリクエストを送信する手順は、
前記ファイルハンドル移動テーブル内の前記オブジェクトを照合する手順と、
前記オブジェクトが見つけられたならば、前記アクセスリクエストを前記宛先ファイルサーバ上の格納位置に送信する手順と
を前記コンピュータに実行させることを含む、請求項２４のコンピュータプログラム。
【請求項２６】
前記アクセスリクエストを受信する手順は、
移動されていない第２オブジェクトのための第２アクセスリクエストをクライアント装置から受信する手順を前記コンピュータに更に実行させることを含み、
前記アクセスリクエストを送信する手順は、
前記ファイルハンドル移動テーブル内の前記第２オブジェクトを照合する手順と、、
前記第２オブジェクトが見つけられないならば、前記第２アクセスリクエストを前記ソースファイルサーバ上の格納位置に送信する手順と、
を前記コンピュータに更に実行させることを含む、請求項１７のコンピュータプログラム。
【請求項２７】
前記アクセスリクエストは、読出しリクエストおよび書込みリクエストの１つを含むファイルアクセスリクエストを備える、請求項２６のコンピュータプログラム。
【請求項２８】
前記アクセスリクエストは、作成リクエスト、削除リクエスト、移動リクエスト、コピーリクエスト、照合リクエスト、および名前書換えリクエストから成るグループの中の１つを含む名前空間アクセスリクエストを備える、請求項１７のコンピュータプログラム。
【請求項２９】
前記ＮＡＳファイルハンドルは、ＮＦＳ（ネットワークファイルシステム）ファイルハンドルおよびＣＩＦＳ（共通インターネットファイルシステム）ファイルハンドルから成るグループの中の１つを備える、請求項１７のコンピュータプログラム。
【請求項３０】
ストレージネットワーク内のアクセス対象物であるオブジェクトにアクセスするためのＮＡＳ（ネットワーク接続ストレージ）スイッチであって、
ソースファイルサーバ上のオブジェクトの格納位置を示す情報を含むＮＡＳファイルハンドルを該ソースファイルサーバから受信し、受信したＮＡＳファイルハンドルに応答して前記オブジェクトを表すものとして、該オブジェクトの格納位置に依存しないスイッチファイルハンドルを発行し、クライアント装置に送信するファイルサーバインターフェースと、
前記オブジェクトに係る名前空間を前記ソースファイルサーバから宛先ファイルサーバに複製し且つ該オブジェクトに係るデータを該複製した名前空間に移動することにより、前記ソースファイルサーバ上の格納位置から該宛先ファイルサーバ上の格納位置に前記オブジェクトを移動する移動モジュールと、ここで、前記名前空間の複製は前記データの移動とは別に実行され、
前記移動モジュールに通信接続され、前記スイッチファイルハンドルを用いて前記オブジェクトへのアクセスをリクエストするアクセスリクエストをクライアント装置から受信し、該受信したアクセスリクエストがリクエストする前記オブジェクトの前記宛先ファイルサーバ上の格納位置にアクセスリクエストを送信するリダイレクションモジュールと、
を備えるＮＡＳスイッチ。
【請求項３１】
前記オブジェクトは、サブディレクトリおよびファイルを表すオブジェクトを有するディレクトリを備える、請求項３０のＮＡＳスイッチ。
【請求項３２】
前記オブジェクトはファイルを備える、請求項３０のＮＡＳスイッチ。
【請求項３３】
移動中、前記リダイレクションモジュールは、前記名前空間および前記複製された名前空間の双方に前記アクセスリクエストを送信する、請求項３０のＮＡＳスイッチ。
【請求項３４】
前記オブジェクトを移動する前に、前記移動モジュールは、格納したファイルハンドルを前記宛先ファイルサーバ上の格納位置に格納し、前記格納したファイルハンドルは、前記ソースファイルサーバ上の前記オブジェクトの格納位置を示す、請求項３０のＮＡＳスイッチ。
【請求項３５】
前記オブジェクトを移動した後に、前記移動モジュールは、記憶されたファイルハンドルを前記ソースファイルサーバ上の格納位置に格納し、前記記憶されたファイルハンドルは、前記宛先ファイルサーバ上の前記オブジェクトの場所を示す、請求項３０のＮＡＳスイッチ。
【請求項３６】
前記移動モジュールは、前記オブジェクトに対応するデータを移動する、請求項３０のＮＡＳスイッチ。
【請求項３７】
前記移動モジュールは、移動の成功に応じて、前記ソースファイルサーバ上の格納位置についてのエントリ、および前記宛先ファイルサーバ上の格納位置についてのエントリでファイルハンドル移動テーブルを更新する、請求項３０のＮＡＳスイッチ。
【請求項３８】
前記リダイレクションモジュールは、前記ファイルハンドル移動テーブルの前記オブジェクトを照合し、前記アクセスリクエストを前記宛先ファイルサーバ上の格納位置に送信する、請求項３７のＮＡＳスイッチ。
【請求項３９】
前記リダイレクションモジュールは、移動されていない第２オブジェクトのための第２アクセスリクエストを受信し、前記ファイルハンドル移動テーブル内の前記第２オブジェクトを照合し、前記第２アクセスリクエストを前記ソースファイルサーバ上の場所に送信する、請求項３０のＮＡＳスイッチ。
【請求項４０】
前記アクセスリクエストは、読出しリクエストおよび書込みリクエストの１つを含むファイルアクセスリクエストを備える、請求項３０のＮＡＳスイッチ。
【請求項４１】
前記アクセスリクエストは、作成リクエスト、削除リクエスト、移動リクエスト、コピーリクエスト、照合リクエスト、および名前書換えリクエストから成るグループの中の１つを含む名前空間アクセスリクエストを備える、請求項３０のＮＡＳスイッチ。
【請求項４２】
前記ＮＡＳファイルハンドルは、ＮＦＳ（ネットワークファイルシステム）ファイルハンドル、およびＣＩＦＳ（共通インターネットファイルシステム）ファイルハンドルの中の１つを備える、請求項３０のＮＡＳスイッチ。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願のクロスリファレンス
本出願は３５Ｕ.Ｓ.Ｃ.１１９（ｅ）条に基づき、以下の優先権を主張する。「名前空間複製技法を用いるトランスペアレントなファイル移動のための方法および装置」と題する、Ｔｈｏｍａｓ Ｋ．Ｗｏｎｇ他による２００３年４月２４日出願の米国仮特許出願第６０／４６５，５７９号。「名前空間複製技法を用いるトランスペアレントなファイル複製のための方法および装置」と題する、Ｔｈｏｍａｓ Ｋ．Ｗｏｎｇ他による２００３年４月２４日出願の米国仮特許出願第６０／４６５，５７８号。「名前空間複製を用いるトランスペアレントなファイル複製」と題する、Ｔｈｏｍａｓ Ｋ．Ｗｏｎｇ他による（本出願と同一日付）出願の米国仮特許出願第（代理人整理番号＃２３３１３−０７９６２）号。これら各出願の全体を引用して本明細書に組み込む。
【０００２】
本発明は、一般にストレージネットワークに関し、より詳細には、名前空間複製を用いて、分散ストレージネットワーク内のファイルサーバ間のファイル移動を行うネットワーク装置に関する。
【背景技術】
【０００３】
コンピューターネットワークでは、ネットワークに直接接続するＮＡＳ（ネットワーク接続ストレージ）ファイルサーバが、ストレージネットワークのための低価格で簡便な構成が可能なソリューションを提供している。これらのＮＡＳファイルサーバは、自己充足型である。なぜなら、これらは、如何なるオペレーティングシステムを実行しているクライアントとも相互運用でき、オープンプロトコルを用いて通信できるファイルシステムを含むからである。例えば、Unixベースのクライアントは、カリフォルニア州サンタクララのサンマイクロシステムズ社のＮＦＳ（ネットワークファイルシステム）プロトコルを用いて、また、ウインドウズベースのクライアントは、ワシントン州レッドモンドのマイクロソフト社のＣＩＦＳ（共通インターネットファイルシステム）を用いて、ＮＡＳファイルサーバ上のファイルにアクセスできる。しかし、オペレーティングシステムがクライアントとファイルサーバとの間の通信に影響することはない。従って、ＮＡＳファイルサーバは、真に普遍的なファイルアクセスを提供することになる。
【０００４】
対照的に、より高価で強力なＳＡＮ（ストレージエリアネットワーク）ファイルサーバは、バックエンドでのファイバーチャンネル、つまり専用ネットワークで接続されるリソースを用いる。ＳＡＮファイルシステムは、オペレーティングシステムの一部、またはクライアント上で実行するアプリケーションである。しかし、異質のクライアントオペレーティングシステムが、各ファイルの追加コピーをストレージネットワーク上に格納するようリクエストして、ＳＡＮファイルサーバの互換性を確実にしてもよい。また、ＳＡＮ上のファイルサーバ間の通信は、独自プロトコルを用いるので、共通のベンダーが提供するのが普通である。結果として、ＮＡＳファイルサーバは、価格および簡便さが主な動機である場合に好適である。しかしながら、ＳＡＮストレージネットワークを越えるＮＡＳストレージネットワークの利点はまた、欠点も有している。
【０００５】
ＮＡＳファイルサーバの欠点の１つは、集中管理ではないことである。従って、各クライアントは、ＮＦＳファイルサーバのそれぞれの間の通信チャンネルを別々に維持しなければならない。ＮＡＳファイルサーバがストレージネットワークに追加されるか、または削除される場合、各クライアントは、関係するストレージリソースのディレクトリを適切にマウントまたはアンマウントしなければならない。これは、故障しているＮＡＳファイルサーバを同一構成のバックアップＮＡＳファイルサーバと交換する場合等の、ハードウエアに変更があるがネットワーク上で利用可能な特定ファイルには変更がない場合、特に非効率的である。
【０００６】
関連する欠点は、ファイル移動またはファイル複製の間等、ストレージネットワーク内にファイルを再配置するたびに、クライアントを再構成しなければならないということである。クライアントは、ファイルサーバ上にあるディレクトリまたはファイルオブジェクトの物理的な場所を識別するＮＡＳファイルハンドルを生成する。オブジェクトにアクセスするために、クライアントはオブジェクトアクセスリクエストをＮＡＳファイルサーバに直接送信する。ファイルを別のＮＡＳファイルサーバに再配置する場合は、続くファイルへアクセスするリクエストにより新規照合を要求してファイルを配置し、新規ＮＡＳファイルハンドルを生成する。
【０００７】
更なる欠点は、ファイル移動および複製等の大量データ転送動作中はＮＡＳファイルサーバにアクセスできないことである。このようなデータ転送は、業務時間以外に行って結果的に休止時間を低減するのが普通である。しかしながら、ストレージ容量を更に大量にするとデータ転送に必要な時間量が増大する。更に、多くの企業、およびアプリケーションでは、常時利用できるデータが必要である。
【０００８】
従って、必要があるのは、ＮＡＳファイルサーバ等のファイルサーバのクライアントにトランスペアレント性を提供するネットワーク装置である。更に、クライアントが再構成をしなくてもファイル移動が可能なネットワーク装置に対するニーズがある。更に、ファイル移動中のデータにアクセスを提供するネットワーク装置に対するニーズもある。
【発明の開示】
【０００９】
本発明は、クライアントにトランスペアレントな分散ストレージネットワーク内のファイル移動を提供することにより、これらのニーズを満たす。クライアントおよびＮＡＳファイルサーバのデータパス内のＮＡＳスイッチが、宛先ファイルサーバへのソースファイルサーバのファイル移動を名前空間複製を用いて確実に調整して、新規ファイル場所を追跡する。更に、ＮＡＳスイッチは、時間を要するデータ転送中のデータ利用可能性を維持する。
【００１０】
本発明により構成されるシステムの実施の形態は、ストレージネットワークのフロントエンドにあるクライアントと、バックエンドにあるソースファイルサーバおよび宛先ファイルサーバの双方に通信するＮＡＳスイッチを備える。ＮＡＳスイッチは、ソースおよび宛先ファイルサーバから受信するＮＡＳファイルハンドル（例えば、ＣＩＦＳファイルハンドルまたはＮＦＳファイルハンドル）を、場所とは無関係なスイッチファイルハンドルと結びつける。次いで、ＮＡＳスイッチは、クライアントにスイッチファイルハンドルをエクスポートする。続くクライアントからのオブジェクトアクセスリクエストに応じて、ＮＡＳスイッチは、スイッチファイルハンドルを、適切なＮＡＳファイルサーバに提出するために適切なＮＡＳファイルハンドルで置き換える。
【００１１】
別の実施の形態では、ＮＡＳスイッチは更に、ソースファイルサーバ上の場所にあるソースファイルを、宛先ファイルサーバ上の場所にある宛先ファイルに移動するのを調整する移動モジュールを備える。移動モジュールは、名前空間複製およびデータ複製を別々に実行する。名前空間複製は、ソースファイルサーバ上のディレクトリ階層の名前空間を宛先ファイルサーバにコピーする。名前空間複製では、宛先ファイルサーバへ移動されるファイルに対するソースファイルサーバからのポインタとして、またはソースファイルサーバから更に移動されるファイルに対する宛先ファイルサーバからのポインタとして、格納したファイルハンドルを使用することも含むことができる。次に、移動モジュールはデータを移動し、格納したファイルハンドルをスワップする。
【００１２】
更に別の実施の形態では、移動モジュールは、オブジェクトの移動が成功したときにファイル移動テーブルを更新する。従って、移動モジュールは、ソースファイルサーバにあるオブジェクトの場所、および宛先ファイルサーバにあるオブジェクトの場所を入力する。オブジェクトアクセスリクエストを受信すると、ＮＡＳスイッチは、スイッチファイルハンドルにより移動テーブルを検索する。一致した場合、ＮＡＳスイッチは、オブジェクトアクセスリクエストを宛先ファイルサーバ上の場所に送信する。さもなければ、ＮＡＳスイッチは、オブジェクトアクセスリクエストをソースファイルサーバ上の場所に送信する。移動モジュールは、分散ファイルサーバ、および移動を本来サポートしていないファイルサーバに移動サービスを提供するという利点を有する。
【００１３】
更に別の実施の形態では、移動中、移動モジュールは、ソースファイルサーバ上の名前空間、および宛先ファイルサーバ上の複製した名前空間の双方に、名前空間アクセスリクエストを複製する。
【００１４】
【００１５】
【００１６】
【００１７】
【００１８】
【００１９】
【００２０】
【００２１】
【００２２】
【００２３】
【発明を実施するための最良の形態】
【００２４】
本発明は、クライアントにトランスペアレントなストレージネットワーク内のファイル移動を提供する。クライアントおよびストレージネットワーク上のＮＡＳファイルサーバのデータパスにおけるＮＡＳ（ネットワーク接続ストレージ）スイッチは、クライアントへのデータ利用可能性を維持しながら、名前空間複製を用いて分散サーバ間のファイル移動を調整する。システムの実施の形態の幾つかを、図１〜図２で説明し、そこで動作する方法の幾つかの実施の形態を、図３〜図１０で説明する。
【００２５】
付帯の説明は、多様な具体的詳細内容により完全な説明を提供するためのものである。もちろん、ストレージネットワーク分野では、開示し、説明する本発明の特長に対して多くの異なる改変が可能であることは言うまでもない。当該技術に習熟する者にとって疑問の余地なく明らかなことは、本発明は以下に説明する幾つかの具体的な詳細説明なしに実施でき、自明のことであるが、本発明の多数の他の改変および実施の形態が、その教示および精神を満たしつつ実施できるのは事実である。例えば、本発明は、ＮＡＳプロトコルに基づいて動作するストレージネットワークに関して説明するが、ＮＡＳ以外の分散ストレージネットワーク、または混合プロトコルネットワークに対する将来のプロトコルでも同様に実施できる。従って、本発明は、以下に説明する特定の実施に制限されると理解すべきではなく、以下の請求の範囲によってのみ制限されると理解すべきである。
【００２６】
本発明の処理、特長、または機能は、適切な演算装置で実行されるプログラム命令により実施できる。例示の演算装置には、企業サーバ、アプリケーションサーバ、ワークステーション、パーソナルコンピュータ、ネットワークコンピュータ、ネットワーク家電、携帯情報端末、ゲームコンソール、テレビ、セットトップボックス、構内自動設備、ＰＯＳ端末、自動車、および個人通信装置が含まれる。プログラム命令はコンピュータ可読媒体、ストレージボリューム、またはインターネット上で配布できる。プログラム命令は、ソースコード、オブジェクトコード、またはスクリプト等の任意の適切な形式をとることができる。
【００２７】
図１は、本発明の一実施の形態によるストレージネットワークシステム１００を示すハイレベルブロック図である。システム１００は、ネットワーク１９５に接続されるＮＡＳスイッチ１１０、およびクライアント１４０を備える。ＮＡＳスイッチ１１０、ソースファイルサーバ１２０、および宛先ファイルサーバ１３０は、サブネットワーク１９６を介してそれぞれ通信接続される。注意すべきは、追加クライアント１４０、追加のソースおよび／または宛先ファイルサーバ１２０、１３０、および追加ＮＡＳスイッチ１１０を含む実施の形態等の、多様なシステム１００の構成をとり得るということである。システム１００のコンポーネントは、例えば、オペレーティングシステム、および／またはアプリケーションプログラムを実行するｘ８６型プロセッサを有するパーソナルコンピュータ、ワークステーション、最適化オペレーティングシステム、および／またはアプリケーションプログラムを有する特殊ＮＡＳ装置、修正したサーバブレード等に実装される。一実施の形態では、ストレージネットワーク１７５は、ＮＦＳおよびＣＩＦＳ等のプロトコルを用いるＮＡＳを備える。別の実施の形態では、ストレージネットワーク１７５は、ＮＡＳ、ＳＡＮや他の形式のストレージネットワークの組合せを備える。更に別の実施の形態では、ストレージネットワーク１７５は、分散した標準またはＮＡＳ以外の独自形式のストレージシステムを備える。
【００２８】
ＮＡＳスイッチ１１０は、オブジェクト管理に関してクライアント１４０に連続したトランスペアレント性を提供する。特に、ＮＡＳスイッチは、物理的構成、オブジェクト管理、オブジェクト移動、オブジェクト複製、効率的ストレージ、および／またはストレージネットワーク１７５上の他のサービスに関連するタスクをオフロードすることができる。好ましくは、ＮＡＳスイッチ１１０は、ファイルサーバ処理をクライアント１４０にエミュレートし、クライアント処理をファイルサーバ１２０、１３０にエミュレートする。従って、ＮＡＳスイッチ１１０が、ソースファイルサーバ１２０に対して意図したＮＡＳリクエストを宛先ファイルサーバ１３０上の適切な場所（すなわち格納位置）にリダイレクトできるので、クライアント１４０はＮＡＳスイッチ１１０を意識しない。このように、クライアント１４０は、ＮＡＳスイッチ１１０に対して直接、ファイル書き込み、ディレクトリ読み込み等のオブジェクトリクエストを提出する。同様に、ＮＡＳスイッチ１１０が、サーバファイルハンドルに含まれるリクエストをあたかもクライアント１４０から発信されたかのように提出できるので、ファイルサーバ１２０、１３０はＮＡＳスイッチ１１０を意識しない。そのために、ＮＡＳスイッチ１１０は、マッピング、コード変換、ブリッジ、パケット送出、他のネットワークインターフェース機能、および他の管理プロセスを用いて、ファイルハンドルスイッチングを実行するので、クライアント１４０は、ファイルの物理的場所（格納位置）の変更を追跡する必要性から開放される。
【００２９】
一実施の形態では、ＮＡＳスイッチ１１０は、通信、およびファイルハンドルスイッチングを容易にするために、クライアントモジュール１１２、およびファイルサーバーモジュール１１４を備える。クライアントモジュール１１２は、ＮＡＳスイッチハンドルを含むファイルサーバ１２０、１３０からエクスポートされたファイルシステムディレクトリを受信する。クライアント１４０と、ＮＡＳスイッチ１１０との間の互換性を作り出すために、クライアントモジュール１１２は、クライアント１４０に送信する内部スイッチファイルシステムにファイルシステムディレクトリをマッピングする。オブジェクトをリクエストするために、クライアント１４０は、エクスポートされたスイッチファイルシステムを検討し、リクエストした操作と併せてＮＡＳスイッチ１１０に送信するスイッチファイルハンドルを選択する。
【００３０】
ファイルサーバーモジュール１１４は移動処理を調整する。ファイルサーバーモジュール１１４は、移動能力を本来有していないこともあるソースおよび宛先ファイルサーバ１２０、１３０が受動的に実行するタスクを開始する。ファイルサーバーモジュール１１４は、ソースファイルサーバ１２０から宛先ファイルサーバ１３０に移動すべきデータを含む名前空間を複製し、次いで関連データを複製する。その間、およびそのあとで、ファイルサーバーモジュール１１４は、名前空間、およびクライアント１４０によるファイルオブジェクトアクセスリクエストを適切な場所にリダイレクトする。よって、データ転送サービスはクライアント１４０に利用可能なままである。
【００３１】
一実施の形態では、ファイルサーバーモジュール１１４は、移動、複製、および他のオブジェクト再配置処理（例えば、ファイルサーバ容量の追加または削除）により生じた再構成の追跡も、テーブルのネストされたシステム、さもなくばスイッチファイルシステムにリンクされた情報により行う。スイッチファイルハンドルは、再配置処理を通じて持続するので静的であるが、関係するＮＡＳファイルハンドルは、オブジェクトの現在場所に基づいて選択されるので、動的になることがある。オブジェクトの各種コピーを追跡するために、ファイルサーバーモジュール１１４は、移動、および複製したオブジェクトのＮＡＳファイルハンドルをストレージネットワーク１７５上の場所にマッピングする各ファイルシステムに対応するファイルハンドル移動テーブルおよびファイルハンドル複製テーブルを維持する。ファイルサーバーモジュール１１４の更なる実施の形態は、図２で説明する。
【００３２】
クライアントモジュール１１２は、図４に関して以下に説明するように、ＮＡＳファイルハンドルをスイッチファイルハンドルと関係付ける（３１０）。これにより、ＮＡＳスイッチ１１０が、クライアント１４０とファイルサーバ１２０、１３０との間の仲介として働くことが可能になる。クライアント１４０は、ＮＡＳスイッチ１１０があたかもファイルサーバ１２０、１３０であるかのように、スイッチファイルハンドルを用いてＮＡＳリクエストを提出し、次いで、ファイルサーバ１２０、１３０は、ＮＡＳスイッチ１１０からのＮＡＳファイルハンドルを、あたかもクライアント１４０が提出したかのように処理する。
【００３３】
一般に、ＮＡＳファイルハンドルは、オブジェクトが存在する限り、ディレクトリまたはファイル等の、ファイルサーバ１２０、１３０上のディレクトリファイルサーバ等のオブジェクトを一意に識別する。ＮＡＳファイルハンドルは、ファイルサーバ固有であり、ファイルハンドルを発行したファイルサーバ１２０、１３０にだけ有効である。ファイル名からファイルハンドルを取得する処理を照合と称する。ＮＡＳファイルハンドルは、以下に更に詳細に説明するように、例えば、テーブル１Ａ、および１Ｂを参照して、ＮＦＳまたはＣＩＦＳ等のプロトコルに従ってフォーマットしてもよい。対照的に、スイッチファイルハンドルは、場所に無関係なディレクトリまたはファイルオブジェクトを識別し、ファイル複製、移動、および他のデータ転送を通じて、それを持続する。スイッチファイルハンドルは、ソースファイルサーバ１２０ではなく、ＮＡＳスイッチ１１０内の内部システムを参照する修正したＮＡＳファイルハンドルとすることができる。これにより、持続ファイルハンドルを代替ＮＡＳファイルハンドルの選択にマッピングする際にＮＡＳスイッチ１１０が有効となる。元のＮＡＳファイルハンドルは、ソースファイルサーバ１２０上の最初のオブジェクト場所を指す。格納したＮＡＳファイルハンドルは、ファイルサーバ１２０、１３０上のオブジェクトとして格納した、代替のファイル場所を指し示すＮＡＳファイルハンドルを指す。
【００３４】
ＮＡＳスイッチ１１０が扱うオブジェクトアクセスリクエストには、例えば、ディレクトリおよび／またはファイルの読出し、書込み、作成、削除、移動、およびコピーが含まれる。名前空間アクセスは、照合、名前書換え、削除、または作成等の名前空間にアクセスし、または修正する操作を指す。ファイルアクセスは、読込みまたは書込み等のファイルにアクセスするか、修正する操作を指す。オブジェクトは、ディレクトリオブジェクトまたはファイルオブジェクトを参照することがある。ディレクトリオブジェクトは更に、サブディレクトリ、およびディレクトリ内のファイルオブジェクトを備えることがある。本明細書で用いるように、移動前のオブジェクト場所を指す各種の用語を同意語として用い（例えば、「一次の」、「ソースの」、「元の」、および「第一の」）、移動後の同一オブジェクトの場所を参照する各種の用語を用いる（例えば、「複製の」、「宛先の」、「置き換えの」、および「第２の」）。ＮＡＳスイッチ１１０の更なる実施の形態、およびそこで動作させる方法を以下に説明する。
【００３５】
クライアント１４０は、ソースファイルサーバ１２０に対して意図したスイッチファイルハンドルをＮＡＳスイッチ１１０に提出することによりファイルサーバ１２０、１３０上のリソースにアクセスする。スイッチハンドルを見つけるために、クライアント１４０は、最初に、スイッチファイルハンドルを含むエクスポートされたスイッチファイルシステムをマウントする。クライアント１４０は、オブジェクトを照合して、そのファイルハンドルを取得し、関係するリクエストを提出する。クライアント１４０の立場から見ると、変更していないオブジェクト場所を有するファイルサーバ１２０、１３０によりトランザクションが実行される。このように、クライアント１４０は、同じ方法でファイル複製の前後にＮＡＳスイッチ１１０と相互作用する。クライアント１４０のユーザは、コマンドラインインターフェース、ウインドウズ環境、ソフトウエアアプリケーション、または他の方法により操作を提出できる。一実施の形態では、ＮＡＳスイッチ１１０は、更に、ＮＡＳストレージネットワーク以外のストレージネットワーク１７５へのアクセスを提供する。
【００３６】
ソースファイルサーバ１２０は、ファイル移動前は、クライアント１４０に対する既定の、つまり元のネットワークファイルサーバである。ソースファイルサーバ１２０は更に、ソースオブジェクト１２５を備え、それには、企業データ、記録、データベース情報、アプリケーション等の、名前空間のディレクトリまたはファイルを含んでいる。ソースファイルサーバ１２０には、名前空間移動から生じた結果と相関関係があるＮＡＳスイッチ１１０が維持する移動ディレクトリのテーブルが格納できる。更に、ソースファイルサーバ１２０には、ＮＡＳスイッチ１１０が維持し、移動ディレクトリおよびファイルオブジェクト毎に表示されるファイルハンドル移動テーブルが格納できる。ソースファイルサーバ１２０は、例えば、オペレーティングシステムおよび／またはアプリケーションを有するｘ８６型プロセッサを用いるパーソナルコンピュータ、ワークステーション、最適化オペレーティングシステムおよび／またはアプリケーションを有する特殊ＮＡＳ装置、修正したサーバブレード等を備える。
【００３７】
宛先ファイルサーバ１３０は、ファイル移動後、ＮＡＳスイッチ１１０が用いるプライマリネットワークファイルサーバとなる。宛先ファイルサーバ１３０は、更に、宛先オブジェクト１３５を備え、それには複製された名前空間のディレクトリ、およびソースファイルが含まれる。宛先ファイルサーバ１３０は、ソースファイルサーバ１２０に関して説明したものと同一のハードウエアおよび／またはソフトウエアを備えることができる。ソースおよび宛先ファイルサーバ１２０、１３０は、ＮＡＳファイルサーバであることが好ましいが、ファイル移動を本来サポートしていない他の分散プロトコルを用いるファイルサーバとすることもできる。ソースおよび宛先ファイルサーバ１２０、１３０の更なる実施の形態、および関連する方法を以下に説明する。
【００３８】
ネットワーク１９５は、接続されているホスト（例えば、１１０、１４０）間のデータ転送を容易にする。ネットワーク１９５への接続は、有線および／または無線、パケットおよび／または回路スイッチ式でもよく、ＴＣＰ／ＩＰ（伝送制御プロトコル／インターネットプロトコル）、ＩＥＥＥ（電気電子技術者協会）８０２．１１、ＩＥＥＥ８０２．３（すなわち、イーサネット）、ＡＴＭ（非同期転送モード）等のネットワークプロトコルを用いてもよい。ネットワーク１９５は、例えば、ＬＡＮ（ローカルエリアネットワーク）、ＷＡＮ（広域エリアネットワーク）、インターネット等を備える。一実施の形態では、ＮＡＳスイッチ１１０は、インターネットに接続されるクライアント１４０と、ＬＡＮに接続されるディレクトリファイルサーバ１２０、およびシャドウファイルサーバ１３０との間のゲートウエイとして働く。サブネットワーク１９６は、ＮＡＳスイッチ１１０に最適応答時間を提供するローカルエリアネットワークであることが好ましい。一実施の形態では、サブネットワーク１９６は、ネットワーク１９５に統合される。
【００３９】
図２は、本発明の一実施の形態によるファイルサーバーモジュール１１４を示すブロック図である。ファイルサーバーモジュール１１４は、ファイルサーバーインターフェース２１０、移動モジュール２２０、およびリダイレクションモジュール２３０を備える。一般に、ファイルサーバーインターフェース２１０は移動前の操作を管理し、移動モジュール２２０は移動中のデータ利用可能性を維持し、そしてリダイレクションモジュール２３０は、クライアント１４０に移動後のトランスペアレント性を提供する。注意すべきは、モジュールは機能グループの例示にすぎないということである。
【００４０】
移動に先立ち、ファイルサーバーインターフェース２１０は、元のＮＡＳファイルハンドルを見付けるために用いるクライアント１４０からのリクエストによるスイッチファイルハンドルを受信する。ファイルサーバーインターフェース２１０は、ソースファイルサーバ１２０へのリクエストにより、元のＮＡＳファイルハンドルを提出する。オブジェクトが、ストレージネットワーク１７５の場所を未だ変更していない場合、ファイルサーバーインターフェース２１０は、元のＮＡＳファイルハンドルを用いる。ファイルサーバーインターフェース２１０は、スイッチファイルハンドルを移動モジュール２２０に提出して、オブジェクトがデータ移動の一部かどうかを判定できる。また、ファイルサーバーインターフェース２１０は、スイッチファイルハンドルをリダイレクションモジュール２３０に提出して、オブジェクトがデータ移動を完了させたかどうかを判定できる。いずれの場合も、ファイルサーバーインターフェース２１０が適切なファイルサーバ１２０、１３０へクライアントリクエストを送るのに用いるのに適切なＮＡＳファイルハンドルが返される。
【００４１】
移動中は、ＮＡＳスイッチ１１０内の移動モジュール２２０が、名前空間複製を用いて、ソースファイルサーバ１２０から宛先ファイルサーバ１３０への移動を調整する。名前空間複製は、ソースファイルサーバ１２０のディレクトリメタデータをデータ自体から切り離してコピーする。移動モジュール２２０がディレクトリを全体にわたってチェックしてデータをコピーする時、移動モジュールは、オブジェクトが移動したかどうか、もしそうならオブジェクトがどこに移動したかを示すファイルハンドル移動テーブルを更新する。名前空間複製は、データ移動よりも何倍も高速なので、データ移動が発生している間もディレクトリサービスは利用可能のままである。ファイルハンドル移動テーブルは、どのオブジェクトが移動したかの現在のリストを提供するので、ＮＡＳスイッチ１１０は、ほとんど連続したデータ利用可能性を提供できる。一実施の形態では、ＮＡＳスイッチは、例えば、装置クラッシュまたはデータ破壊に対してファイルハンドル移動テーブルを再構成できる。
【００４２】
ファイル移動してから、リダイレクションモジュール２３０は、ファイルハンドル移動テーブル内のクライアント１４０から受信したスイッチファイルハンドルを照合する。オブジェクトが移動した場合、リダイレクションモジュールは、宛先ファイルサーバ１３０上の場所と対応する宛先ＮＡＳファイルハンドルを出力する。
【００４３】
図３は、本発明の一実施の形態により、ＮＡＳストレージネットワーク内のトランスペアレントなファイル移動を提供する方法（３００）を示すハイレベルフロー図である。クライアントモジュール１１２は、図４に関し以下で説明するように、元のＮＡＳファイルハンドルをスイッチファイルハンドルと関係付ける（３１０）。これにより、ＮＡＳスイッチ１１０は、クライアント１４０と、ファイルサーバ１２０、１３０との間の仲介として働くことが可能になる。クライアント１４０は、あたかもＮＡＳスイッチ１１０がファイルサーバ１２０、１３０であるかのように、スイッチファイルハンドルを用いてＮＡＳリクエストを提出し、次いで、ファイルサーバ１２０、１３０は、あたかもそれらがクライアント１４０から提出されたかのように、ＮＡＳスイッチ１１０からのＮＡＳファイルハンドルを処理する。
【００４４】
移動モジュール２２０は、図５〜図９に関し以下で説明するように、名前空間複製を用いてファイル移動を実行する（３２０）。データ複製からディレクトリ複製を分離することにより、移動モジュール２２０は、ファイルサーバ１２０、１３０間の利用可能性、およびデータ統合を維持できる。
【００４５】
リダイレクションモジュール２３０は、図１０で以下に説明するように、移動したファイルに関するＮＡＳリクエストをリダイレクトする（３３０）。ＮＡＳスイッチ１１０は、移動に関わる要素を調整し、格納するので、クライアント１４０は、複製の前に用いたのと同一のスイッチファイルハンドルにより、代替場所に格納したオブジェクトの参照を継続する。しかしながら、バックエンドでは、多くの変更が起きる。例えば、ファイル移動は、ソースファイルサーバ１２０から宛先ファイルサーバ１３０にソースオブジェクト１２５を再配置する。
【００４６】
図４は、本発明の一実施の形態により、ＮＡＳファイルハンドルをスイッチファイルハンドルと関係付ける方法（３１０）を示すフロー図である。最初に、ＮＡＳスイッチ１１０は、プライマリサーバ１２０からエクスポートされたファイルシステムのディレクトリをマウントする（４１０）。一般に、ファイルシステムは、ファイルサーバ１２０、１３０上のオブジェクトをＮＡＳファイルハンドルのディレクトリ階層に体系化する。一実施の形態では、ＮＡＳスイッチ１１０は、関係するソースファイルサーバ１２０からエクスポートされたディレクトリを受信し、次いで、関係するクライアント１４０にエクスポートされたディレクトリを送信する。
【００４７】
クライアントモジュール１１２は、プライマリファイルサーバ１２０内のオブジェクト場所と無関係なスイッチファイルハンドルを生成する（４２０）。クライアントモジュール１１２は、ファイルサーバ１２０からのエクスポートされたファイルシステムを、表２Ａおよび表２Ｂの下に示すようなスイッチファイルシステム番号で、ファイルシステムまたはツリー識別子を置き換えることにより体系化する。クライアントモジュール１１２は、リクエスト操作で用いるためにクライアント１４０にスイッチファイルシステムをエクスポートする（４３０）。逆の処理では、ＮＡＳスイッチ１１０は、ＮＡＳリクエストを受信し、複製されたファイルハンドルおよび／または複製された名前空間を、ＮＡＳファイルハンドルを用いて検索する。従って、ファイルサーバーインターフェース２１０は、同期モジュール２３０が維持するネストされたテーブルのエントリをチェックする。ファイルサーバーインターフェース２１０は、オブジェクト場所に基づいて、スイッチファイルハンドルからＮＡＳファイルハンドルを生成する。ＮＦＳおよびＣＩＦＳファイルハンドルの内容の実施例を表１Ａ、表１Ｂに示す一方、スイッチファイルハンドル、または修正したＮＦＳおよびＣＩＦＳファイルハンドルを表２Ａおよび表２Ｂに示す。
【表１】
0004588024.tif 000002
【表２】
0004588024.tif 000003
【００４８】
以下に説明するように、オブジェクトを移動した後、ＮＡＳスイッチ１１０は、更新したＮＡＳファイルハンドルを用いて新規場所のオブジェクトにアクセスできる。
【００４９】
図５は、本発明の一実施の形態により、名前空間複製を用いてファイル移動を実行する方法（２２０）を示すフロー図である。移動モジュール２２０は、図６〜図７に関し以下で説明するように、ソースファイルサーバ１２０のディレクトリ階層を複製する（５１０）。一実施の形態では、ディレクトリ操作等のオブジェクトアクセスリクエストをクライアント１４０から受信する場合、それを第１および宛先ファイルサーバ１２０、１３０の双方に送信して、名前空間と、複製した名前空間との間の一貫性を維持する。こうして、ディレクトリをファイル移動処理中に作成または削除できる。一方、従来技術のシステムでは、ディレクトリはロックされるので、このような操作は不可能である。
【００５０】
ファイル移動中（５１０）に、クリティカルなディレクトリリクエストがソースファイルサーバに発行される場合（５２０）、移動モジュール２２０は、リクエストを再提出して複製した名前空間を更新する（５３０）。複製した名前空間は、宛先ファイルサーバ１３０上に格納するのが好ましい。結果的に、ディレクトリ作成、ファイル作成、ディレクトリ削除、ファイル削除等の操作がソースの名前空間に影響を与える場合、それと同一の修正が複製された名前空間に成される。ディレクトリ複製が完了すると（５４０）、クリティカルなディレクトリ操作を、複製した名前空間に直接提出できる。別の処理では、移動モジュール２２０は、ソースファイルサーバ１２０から宛先ファイルサーバ１３０にデータをコピーする（５５０）。
【００５１】
図６は、本発明の一実施の形態により、ソースファイルサーバ１２０から宛先ファイルサーバ１３０にディレクトリ階層を複製する方法（５１０）を示すフロー図である。再生モジュール２２０は、ソースファイルサーバ１２０のディレクトリ階層から現在のソースディレクトリを選択し、宛先ファイルサーバ１３０から現在の宛先ディレクトリを選択する（６１０）。移動モジュール２２０は、ソースおよび宛先場所に関連するスイッチファイルハンドルにより、複製テーブルにマッピングエントリを追加する（６２０）。移動モジュール２２０は、現在のソースディレクトリ内の、ファイルおよびディレクトリオブジェクトのリストから現在のオブジェクトを選択する（６３０）。
【００５２】
現在のオブジェクトがディレクトリの場合（５３０）、移動モジュール２２０は、宛先ファイルサーバ１３０内のディレクトリを、プライマリファイルサーバ１２０内の現在のディレクトリと同一名で作成する（６５０）。他方、現在のオブジェクトがファイルの場合（６４０）、再生モジュール２２０は、現在の宛先ディレクトリ内のファイルハンドルから、そのオブジェクトに対する格納したファイルハンドルにより、ファイルを作成する（６４５）。一実施の形態では、格納したファイルハンドルは、スイッチファイルハンドルと類似している。好適には、格納したファイルハンドルは所定のサイズなので、ＮＡＳスイッチ１１０は、ファイルサイズを検査するだけで、ファイルが格納したファイルハンドルを含むかどうかを判定できる。例示の格納したファイルフォーマットを表３に示す。
【表３】
0004588024.tif 000004
【００５３】
しかしながら、注意すべきは、格納したファイルフォーマットの変形があり得るということである。移動モジュール２２０は、ソースおよび宛先スイッチファイルハンドルにより、複製されたファイルリストにマッピングエントリを追加する（６５５）。
【００５４】
すべてのオブジェクトが処理され（６６０）、エラーがプロセス内で発生せず（６７０）、複製するディレクトリがそれ以上ない場合（６８０）、再生モジュール２２０は、名前空間複製を行う（６９０）。しかしながら、処理すべきオブジェクトがまだある場合（６６０）、移動モジュール２２０は、オブジェクトを選択する（６３０）ところから処理を続行する。ディレクトリまたはファイルの作成にエラーがあった場合（６７０）、再生モジュール２２０は、宛先ディレクトリを削除し（６７５）、マッピングエントリを追加する（６２０）点から処理を繰り返す。また、処理するディレクトリがまだある場合（６８０）、第１のファイルサーバ１２０は、プライマリディレクトリを選択する（５１０）点に戻る。
【００５５】
移動モジュール２２０は、図７に示すように名前空間に関わる。図７は、本発明の一実施の形態による名前空間複製を行う方法（６９０）を示すフロー図である。移動モジュール２２０は、移動ディレクトリテーブルにエントリを追加する（７１０）。その結果、以降のオブジェクトアクセスリクエストは、ソースファイルサーバ１２０ではなく、宛先ファイルサーバ１３０に導かれることになる。ソースファイルサーバ１２０は、複製テーブルを、もはや必要ないので削除する（７２０）。
【００５６】
図８は、本発明の一実施の形態によるデータコピーの方法（４２０）を示すフロー図である。ＮＡＳスイッチ１１０は、移動したファイルリスト内の現在のエントリを選択する（８１０）。ソースファイルサーバ１２０は、ソースオブジェクト１２５のデータを、宛先ファイルサーバ１３０内の宛先オブジェクト１３５にコピーする（８２０）。
【００５７】
データ転送中に（８３０）、エラーが発生しない場合、宛先ファイルサーバ１３０は、図９に示すようにデータ移動を行う（８４０）。図９は、本発明の一実施の形態によるデータ移動を行う方法（８４０）を示すフロー図である。移動モジュール２２０は、ソースファイルをロックして、ファイルへのそれ以上のアクセスを阻止する（９１０）。移動モジュール２２０は、ソースファイルの内容を、宛先ファイルサーバ１３０上の新規場所を示す格納したファイルハンドルで置き換える（９２０）。それが済むと、移動モジュール２２０は、移動したファイルリスト内の現在のエントリをマークし（９３０）、ファイルハンドル移動テーブル内のソースおよび宛先ファイルサーバ１２０、１３０上の場所を示すソースおよび宛先ファイルハンドルを記入する（９４０）。最後に、移動モジュール２２０は、ソースファイルへのアクセスを再開する（９５０）。
【００５８】
一実施の形態では、移動モジュール２２０は、例えば、装置クラッシュまたはデータ破壊により、移動モジュール２２０を再構成する。そのために、移動モジュール２２０は、ソースファイルサーバ１２０の名前空間を全体にわたってチェックする。格納したファイルハンドルは一貫したサイズを有するので、移動モジュール２２０は、格納したファイルハンドルを直ちに認識し、ポインタ情報を検索できる。この関連性を再構成したファイルハンドル移動テーブルのエントリに追加する。
【００５９】
図８を再度参照すると、エラーが発生する場合は（８３０）、データ転送を繰り返す。一実施の形態では、宛先ファイルサーバ１３０は、移動前のファイルサイズを移動後のファイルサイズと比較することによりエラーを検出する。
【００６０】
図１０は、本発明の一実施の形態により、移動したオブジェクトに関するＮＡＳリクエストをリダイレクトする方法（３３０）を示すフロー図である。ＮＡＳスイッチ１１０は、スイッチファイルハンドルから、ファイルシステムテーブルにおいてファイルシステムＩＤを見つける（１０１０）。ＮＡＳスイッチ１１０は、次に、ファイルシステムＩＤから、ファイルハンドル移動テーブルを見つける（１０２０）。ファイルが移動されていない場合（１０３０）、ＮＡＳスイッチ１１０は、ソース、つまり元のＮＡＳファイルハンドルを用いてクライアントリクエストを送る。ファイルが移動された場合（１０３０）、ＮＡＳスイッチ１１０は、ソースファイルサーバ１２０内のファイルハンドル移動テーブルから宛先ＮＡＳファイルハンドルを検索する。
【図面の簡単な説明】
【００６１】
【図１】本発明の一実施の形態に従うストレージネットワークシステムを示すハイレベルブロック図である。
【図２】本発明の一実施の形態に従うＮＡＳスイッチを示すブロック図である。
【図３】本発明の一実施の形態に従って、ＮＡＳストレージネットワーク内のトランスペアレントなファイル移動を提供する方法を示すハイレベルフロー図である。
【図４】本発明の一実施の形態に従って、元のＮＡＳファイルハンドルをスイッチファイルハンドルと関係付ける方法を示すフロー図である。
【図５】本発明の一実施の形態に従って、名前空間複製を用いてファイル移動を実行する方法を示すフロー図である。
【図６】本発明の一実施の形態に従って、ソースファイルサーバのディレクトリ階層を複製する方法を示すフロー図である。
【図７】本発明の一実施の形態に従って、名前空間複製を行う方法を示すフロー図である。
【図８】本発明の一実施の形態に従って、データコピーの方法を示すフロー図である。
【図９】本発明の一実施の形態に従って、データ移動を行う方法を示すフロー図である。
【図１０】本発明の一実施の形態に従って、移動したオブジェクトに関するＮＡＳリクエストをリダイレクトする方法を示すフロー図である。
【図１】
0004588024.tif 000005
【図２】
0004588024.tif 000006
【図３】
0004588024.tif 000007
【図４】
0004588024.tif 000008
【図５】
0004588024.tif 000009
【図６】
0004588024.tif 000010
【図７】
0004588024.tif 000011
【図８】
0004588024.tif 000012
【図９】
0004588024.tif 000013
【図１０】
0004588024.tif 000014