(57)【要約】      （修正有）【課題】通常の業務時間中のマイグレーションを行えるように、異なるローカルのファイル・システム間でデータ・マイグレーションを行う。【解決手段】プロキシ・コンポーネントは、アプリケーション、移行元のソース・ファイル・システムおよび移行先のファイル・システムの間に構成される。プロキシ・コンポーネントはソース・ファイル・システムおよび移行先ファイル・システムと相互運用され、ソース・ファイル・システムから移行先ファイル・システムにデータをマイグレートし、アプリケーションにトランスペアレントである。プロキシ・コンポーネントは、ソース・ファイル・システムおよび移行先のファイル・システムを、アプリケーションに代表される標準のファイル・システム・プロトコルに変換する。アプリケーションは、異なるファイル・システムに対処する必要がなく、データ・マイグレーション・プロセスを完全にトランスペアレントにする。【選択図】図５
2009211688.tif 000002
【特許請求の範囲】
【請求項１】
ファイルへの読み書きアクセスを所定のアプリケーション・プログラミング・インターフェイス（ＡＰＩ）２０３ｂ、４０１ｄを介して行うアプリケーション１０４、３０１ａがあり、該アプリケーションにより使用される前記ファイルをソース・ファイル・システム１０６a、３０８から移行先ファイル・システム１０６ｂ、３０８ｂにマイグレートする方法であって、
ａ）マイグレーション制御用のプロキシ・コンポーネント２０２、４０２が、
前記アプリケーションにならびに前記ソース・ファイル・システムおよび移行先ファイル・システムの両方に前記ＡＰＩを実装し、かつ通常の動作中、前記アプリケーションにより標準のファイル・システム・プロトコルを介して発行される読み書きリクエストを行うステップと、
ｂ）前記ステップａ）に加えて、前記アプリケーションが発行し、かつ前記マイグレーション中、前記ソース・ファイル・システムが受け取ったファイルへの読み出しリクエストの場合に、前記プロキシ・コンポーネントが、
前記ソース・ファイル・システムから前記ファイルを読み出し、かつ前記移行先ファイル・システムが必要とする特定のファイル・システム・プロトコルに従って前記移行先ファイル・システムに前記ファイルを書き込むステップ５３４、５３８と、
ｃ）前記ステップａ）に加えて、前記マイグレーション中、前記アプリケーションが発行し、かつ前記ソース・ファイル・システムが受け取ったファイルへの書き込みリクエストの場合に、前記プロキシ・コンポーネントが、
前記ソース・ファイル・システムおよび前記移行先ファイル・システムに、前記移行先ファイル・システムが必要とする前記特定のファイル・システム・プロトコルに従って前記ファイルを書き込むステップ５１０と
を含む方法。
【請求項２】
ｄ）前記マイグレーション・プロセス中、前記ソース・ファイル・システムに既に書き込まれたファイルを含む全てのファイルがマイグレートされてしまったとき、前記マイグレーション・プロセスを終了するステップ５３０と、
ｅ）前記アプリケーションが前記移行先ファイル・システムを実装する際の実装プロセスを初期化するステップ５４２と、
ｆ）前記アプリケーションの読み書きリクエストを開始もしくは再開し、かつ新しい読み書きリクエストのために前記移行先ファイル・システムを用いるステップと
を更に含む、請求項１に記載の方法。
【請求項３】
前記移行先ファイル・システムが標準のファイル・システムである、
請求項１に記載の方法。
【請求項４】
前記のステップａ）、ｂ）、およびｃ）が、
前記アプリケーションからの前記読み書きリクエストをインターセプトするクライアント部分２０１、３０１ｂと、前記ソース・ファイル・システムおよび前記移行先ファイル・システムとの相互作用を管理するサーバー部分２０３ａ、４０１ａとを有するマイグレーション・コントローラにより行われる、
請求項１に記載の方法。
【請求項５】
前記ソース・ファイル・システムおよび／もしくは前記移行先ファイル・システムがファイル・サーバー上でホストされるネットワーク・ファイル・システム、もしくはローカル・ファイル・システムである、
請求項１に記載の方法。
【請求項６】
前記ステップａ）、ｂ）、およびｃ）がウエブ・サービスとして実装される、
請求項１に記載の方法。
【請求項７】
ファイルへの読み書きアクセスを所定のアプリケーション・プログラミング・インターフェイス（ＡＰＩ）２０３ｂ、４０１ｄを介して行うアプリケーション１０４、３０１ａがあり、該アプリケーションが使用する前記ファイルをソース・ファイル・システム１０６ａ、３０８から移行先ファイル・システム１０６ｂ、３０８ｂにマイグレートするための電子データ処理システムであって、プロキシ・コンポーネント２０２、４０２を含み、前記プロキシ・コンポーネントが、
ａ）前記アプリケーションにならびに前記ソース・ファイル・システムおよび移行先ファイル・システムの両方に前記ＡＰＩを実装し、かつ通常の動作中、前記アプリケーションにより標準のファイル・システム・プロトコルを介して発行される読み書きリクエストを行う手段と、
ｂ）前記アプリケーションが発行し、かつ前記マイグレーション中、前記ソース・ファイル・システムが受け取ったファイルへの読み出しリクエストの場合に、
前記ソース・ファイル・システムから前記ファイルを読み出し、かつ前記移行先ファイル・システムが必要とする特定のファイル・システム・プロトコルに従って前記移行先ファイル・システムに前記ファイルを書き込む手段５３４、５３８と、
ｃ）前記マイグレーション中、前記アプリケーションが発行し、かつ前記ソース・ファイル・システムが受け取ったファイルへの書き込みリクエストの場合に、
前記ソース・ファイル・システムおよび前記移行先ファイル・システムに、前記移行先ファイル・システムが必要とする前記特定のファイル・システム・プロトコルに従って前記ファイルを書き込む手段５１０と
を含む、電子データ処理システム。
【請求項８】
ファイルへの読み書きアクセスを所定のアプリケーション・プログラミング・インターフェイス（ＡＰＩ）２０３ｂ、４０１ｄを介して行うアプリケーション１０４、３０１ａがあり、該アプリケーションが使用する前記ファイルをソース・ファイル・システム１０６ａ、３０８から移行先ファイル・システム１０６ｂ、３０８ｂにマイグレートするためのコンピュータ・プログラムであって、プロキシ・コンポーネント２０２、４０２の機能を含み、
ａ）前記アプリケーションにならびに前記ソース・ファイル・システムおよび移行先ファイル・システムの両方に前記ＡＰＩを実装し、かつ通常の動作中、前記アプリケーションにより標準のファイル・システム・プロトコルを介して発行される読み書きリクエストを行うステップと、
ｂ）前記ステップａ）に加えて、前記アプリケーションが発行し、かつ前記マイグレーション中、前記ソース・ファイル・システムが受け取ったファイルへの読み出しリクエストの場合に、前記プロキシ・コンポーネントが、
前記ソース・ファイル・システムから前記ファイルを読み出し、かつ前記移行先ファイル・システムが必要とする特定のファイル・システム・プロトコルに従って前記移行先ファイル・システムに前記ファイルを書き込むステップ５３４、５３８と、
ｃ）前記ステップａ）に加えて、前記マイグレーション中、前記アプリケーションが発行し、かつ前記ソース・ファイル・システムが受取ったファイルへの書き込みリクエストの場合に、前記プロキシ・コンポーネントが、
前記ソース・ファイル・システムおよび前記移行先ファイル・システムに、前記移行先ファイル・システムが必要とする前記特定のファイル・システム・プロトコルに従って前記ファイルを書き込むステップ５１０と
をコンピュータに実行させるコンピュータ・プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は電子データ・ストレージ管理の技術分野に関し、特にソース（移行元）ファイル・システムから移行先ファイル・システムにデータを移行させる即ちマイグレートする方法およびシステムに関する。
【背景技術】
【０００２】
ファイルをストアし、編成するのにファイル・システムが使用される。従来技術によれば、種々のタイプのネイティブな（ローカルな）ファイル・システム（ＮＴＦＳ、ＪＦＳ、ＪＦＳ２、およびＸＦＳなど）がある。更に、種々のタイプのネットワーク・ファイル・システム・プロトコル（ＮＦＳ、Fast connectsamba pc netlinkなどのＣＩＦＳ、Ａｐｐｌｅ  Ｆｉｌｅ  ＰｒｏｔｏｃｏｌおよびＡＦＳ、ＤＣＥ／ＤＦＳ）がある。ネットワーク・ファイル・システム・プロトコルはプロトコル・ベースでのクライアントへのファイル・システムを表し、ネイティブ・ファイル・システムにデータをストアする。多くのタイプのファイル・システムはプラットフォーム特有であり、例えばＮＴＦＳ（New TechnologyFile System）が  Ｍｉｃｒｏｓｏｆｔ  Ｗｉｎｄｏｗｓ（登録商標）により使用されるだけであり、ＪＦＳ（Journaled FileSystem）がＡＩＸおよびＬｉｎｕｘのプラットフォームのために使用されるだけである。ネイティブ・ファイル・システムは、またウイキペディアのファイル・システム比較で示されるように、異なる特性を有している。
http://en.wikipedia.org/wiki/Comparison_of_file_systems.
【０００３】
例えば、ＮＴＦＳはＮＴスタイルのＡＣＬ（Access ControlLists）を許容し、ＪＦＳはmodbitするだけか、もしくは拡張属性（Ｅｘｔｅｎｄｅｄ  Ａｔｔｒｉｂｕｔｅｓ）に改良版ＡＣＬをストアさせる。ネイティブ・ファイル・システムの種々の特性、およびＩＴで強化したユーザーなど他の動作上の側面のせいで、ユーザーは一つのタイプのファイル・システムから他のタイプのファイル・システムにデータをマイグレートする必要があるかもしれない。更にストレージ技術の分野での変化のペースが速いせいで、ユーザーは一つのストレージ・システムから他の、例えば新しいストレージ・システムにデータをマイグレートすることを強いられる。このストレージ・システムはこれによって同じタイプのもしくは異なるタイプのものであってもよい。このストレージ・システムはまた同じ業者のでも異なる業者のでもよい。
【０００４】
従来技術によるファイル・システムを配設(deploy)する種々の構成および目的がある。即ち、アプリケーション・サーバー構成およびファイル・サーバー構成である。
【０００５】
図１は、従来技術によるローカル（ネイティブ）・ファイル・システムを配設するアプリケーション・サーバーのための例示の配置（セットアップ）を示す。
【０００６】
アプリケーション・サーバー１０２はアプリケーション１０４を実行する。例えば、これは製品のための図面および明細書を創り出すのに使用されるアプリケーションであり得る。このデータ（図面および明細書）は通常はファイルにストアされる。このファイルはネイティブのファイル・システム１０６ａにストアされる。このファイル・システムはそのアプリケーションに論理ストレージを提供し、そのデータはハード・ディスクなどのストレージ・システム１０８上に物理的にストアされる。アプリケーション１０４はネイティブのファイル・システム１０６ａへの直接インターフェイス１０３を有し、ファイルの読み書きができるようにする。このインターフェイスをアプリケーション・プログラミング・インターフェイス（ＡＰＩ）が代表してもよい。このシナリオでは、アプリケーション１０４およびネイティブのファイル・システム１０６ａが同じアプリケーション・サーバー１０２上に存在する。
【０００７】
例えばファイル・システム１０６ａが陳腐化すると、ファイル・システム１０６ａから新しいファイル・システム１０６ｂにデータを移行すなわちマイグレートする必要がある。ネイティブのソース（すなわち移行元）ファイル・システム１０６ａから移行先のファイル・システム１０６ｂへのデータ・マイグレーションは、従来技法によればアプリケーション１０４によって行われる。これによってそのアプリケーション１０４はソース・ファイル・システム１０６ａから全てのファイルを読み出し、そのファイルを移行先のファイル・システム１０６ｂに書き込む。このことはアプリケーション１０４のためにより多くのオーバーヘッドを必要とし、そのことが前記のアプリケーション１０４がその実際のビジネス目的に仕えるのを妨げかねないことを意味する。 
【０００８】
図３で説明するファイル・サーバー３０６を含むセットアップのためにも同様の問題がある。ファイル・サーバー３０６はストレージ・システム３１０上にデータをストアするネイティブ・ファイル・システム３０８を配設している。
【０００９】
ファイル・サーバー３０６はファイルが複数のクライアント・システム３０２のためのファイルのファイル共有を許容する。従来のファイル共有はネットワーク３０４に跨る幾つかのクライアント・システム３０２にファイル（データ）を利用させるというプロセスである。これはＮＦＳやＣＩＦＳなどの標準化されたファイル・システムを介して行われることができる。ＮＦＳやＣＩＦＳは本発明を開示するために例示的に使用される。しかしまた、任意の他のファイル・システム・プロトコルが適当であるかもしれない。
【００１０】
クライアント・システム３０２はファイル・サーバー３０６にデータをストアするコンピュータおよび１個以上のアプリケーション３０１ａを含む。アプリケーション３０１ａおよびファイル・サーバー間のインターフェイスはファイル・サーバー・クライアント３０１ｂによって表される。このファイル・サーバー・クライアント３０１ｂはＮＦＳやＣＩＦＳのクライアントであってもよいが、これに限るものではない。従って、ファイル・サーバーはＮＦＳやＣＩＦＳのサーバーであってもよいが、これに限るものではない。ＮＦＳおよびＣＩＦＳは従来技術に従うファイル・システム・プロトコルである。
【００１１】
データが書き込まれると、アプリケーション３０１ａがファイル・サーバー・クライアント３０１ｂを介し、ネットワーク３０４を経てファイル・サーバー３０６にファイルを送る。ファイル・サーバー３０６はネイティブ（ローカル）のファイル・システム３０８中にデータをストアする。このネイティブのファイル・システム３０８はファイル・サーバーへの論理ストレージを表し、データはハード・ディスクなどのストレージ・システム３１０上に物理的にストアされる。従って、アプリケーション３０１ａがファイルを読み出すと、それはファイル・サーバー・クライアント３０１ｂを用いてファイル・サーバー３０６にリクエストを送る。ファイル・サーバー３０６はネイティブ・ファイル・システム３０８中にそのファイルを置き、それをストレージ・システム３１０から取り出し、それをアプリケーション３０１ａにファイル・サーバー・クライアント３０１ｂを介して送る。これが従来技術である。
【００１２】
例えばファイル・サーバー３０６が陳腐化するようになると、ファイル・サーバー３０６から新しいファイル・サーバー３０６にデータを移行すなわちマイグレートする必要がある。ソース即ち移行元のファイル・サーバー３０６から移行先のファイル・サーバー３０６へのデータ・マイグレーションは、従来技法によればアプリケーション３０１ａによって行われる。これによってそのアプリケーションはファイル・サーバー３０６からのファイルを読み出し、そのファイルを移行先のファイル・サーバー３０６に書き込む。このことはアプリケーション１０４のためにより多くのオーバーヘッドを必要とし、そのことが前記のアプリケーション１０４がその実際のビジネス目的に仕えるのを妨げかねないことを意味する。
【００１３】
要約すると、図１および図３の両方のシナリオにおけるデータ・マイグレーション・プロセスは、まず第１にこれを行うためのアプリケーション１０４もしくは幾つかのアプリケーションを必要とする。従来技法では、通常の動作のために使用されるのと同じインフラストラクチャが使用される。従って、通常の動作のために利用できる処理能力（一定時間内に処理できる情報量）はそのマイグレーション・プロセスのせいで減ってしまう。それに加えて、多くのビジネス・アプリケーションはそのようなファイル・マイグレーション・タスクをサポートする組み込んだ機能を提供しない。従って、そのファイルは追加のツールの助けを借りて、そのアプリケーションの外側でコピーされる必要がある。
【００１４】
あまりにも多くのアプリケーションの反復および品質低下を防ぐためにマイグレーションは通常の動作が比較的アクティブでないときにスケジュールされることができる。しかし、このことはマイグレーションが長い時間かかるか、もしくは特定のマイグレーション時間窓を必要とする。更に、従来技法によるこの種のマイグレーションは、管理者がマイグレーションをモニターしなければならないので、時間および資源が不都合にも多くかかる。また更に多くのオーバーヘッド必要であり、従ってデータの完全性を検証するのにも不利である。これにより移行元のファイル・システムから読み出されるデータを、移行先のファイル・システムに書き込まれるデータにマイグレーション中に比較しなければならない。これによって、移行元のファイル・システムにおけるデータが再び変化しかねず、その結果再度それをマイグレートする必要を生じさせる。これはアプリケーションによってか、または外部ツールによって行われる必要がある。このように、実際上、マイグレーション・プロセスと並行してユーザーもしくはアプリケーションがファイル・システム使用している間に、そのファイル・システムをマイグレートすることは殆どいつも不可能である。
【発明の概要】
【発明が解決しようとする課題】
【００１５】
従って本発明の目的は、ビジネス目的でソース（移行元）ファイル・システムを使用する通常の業務時間中でもマイグレーションを可能にするように、異なるローカルのファイル・システム間ならびに異なるファイル・サーバー間のデータ・マイグレーションを行うための改良された方法を提供することである。
【課題を解決するための手段】
【００１６】
本発明の前記の目的は、特許請求の範囲の独立請求項に示されている。更に本発明の有利な構成および実施例が夫々の実施態様項に開示されている。ここで各請求項について言及する。
【００１７】
要約すると、本発明は発明のプロキシ・コンポーネントを含む。単にプロキシと呼んでもよい。これはアプリケーション、移行元のソース・ファイル・システムおよび移行先のファイル・システムの間に構成される。前記ファイル・システムはファイル・サーバー上でホストされるネットワーク・ファイル・システムもしくはネイティブの（ローカルの）ファイル・システムであってよい。これによってプロキシ・コンポーネントはソース・ファイル・システムおよび移行先ファイル・システムと相互運用される。本発明のプロキシ・コンポーネントはソース・ファイル・システムから移行先ファイル・システムにデータをマイグレートする。それはアプリケーションにトランスペアレントである。そのアプリケーションはそのデータ・マイグレーション・プロセスに含まれていない。これによってプロキシ・コンポーネントはソース・ファイル・システムおよび移行先のファイル・システムを、そのアプリケーションに代表される標準のファイル・システム・プロトコルに変換する。このようにして、アプリケーションは異なるファイル・システムに対処する必要がなく、このデータ・マイグレーション・プロセスを完全にトランスペアレントにする。
【００１８】
本発明は、その基本的な側面によれば、アプリケーションにより使用されるファイルをソース・ファイル・システムから移行先ファイル・システムにマイグレートする方法および個々のシステムを開示する。前記アプリケーションは所定のアプリケーション・プログラミング・インターフェイス経由、すなわちそれ自身のＡＰＩもしくは個々のファイル・サーバーと通信するファイル・サーバー・クライアント経由で前記ファイルに読み書きアクセスを行う。
そして、その方法は、以下のステップを含む。すなわち
ａ）マイグレーション制御用のプロキシ・コンポーネント（２０２、４０２）が、
前記アプリケーションにならびに前記ソース・ファイル・システムおよび移行先ファイル・システムの両方にＡＰＩを導入し、かつ通常の動作中、前記アプリケーションにより標準のファイル・システム・プロトコルを介して発行される読み書きリクエストを行うステップと、
ｂ）前記ステップａ）に加えて、前記アプリケーションが発行し、かつ前記マイグレーション中、前記ソース・ファイル・システムが受け取ったファイルへの読み出しリクエストの場合に、前記プロキシ・コンポーネントが、
前記ソース・ファイル・システムから前記ファイルを読み出し（５３４）、かつ前記前記移行先ファイル・システムが必要とする特定のファイル・システム・プロトコルに従って前記移行先ファイル・システムに前記ファイルを書き込む（５３８）ステップと、
ｃ）前記ステップａ）に加えて、前記マイグレーション中、前記アプリケーションにが発行し、かつ前記ソース・ファイル・システムが受け取ったファイルへの書き込みリクエストの場合に、前記プロキシ・コンポーネントが、
前記ソース・ファイル・システムおよび前記移行先ファイル・システムに、前記前記移行先ファイル・システムが必要とする前記特定のファイル・システム・プロトコルに従って前記ファイルを書き込む（５１０）ステップとを含む。
【００１９】
前記の方法ステップは以下のステップに効果的に埋め込まれる。
‐マイグレーションの始めに、そして前記マイグレーションを終了するために、
ソース・ファイル・システムおよび移行先ファイル・システムを定義し、マイグレートされるべきファイルを定義し、そしてそのマイグレーション・プロセスのために開始時間をセットすることによってファイル・システム・マイグレーションのプロセスを初期化するステップと、
‐前記マイグレーション・プロセス中、前記ソース・ファイル・システムに既に書き込まれたファイルを含む全てのファイルがマイグレートされてしまったとき、前記マイグレーション・プロセスを終了するステップと、
‐前記アプリケーションが前記移行先ファイル・システムを実装する際の実装プロセスを初期化するステップと、
‐前記アプリケーションを開始もしくは再開し、かつ新しい読み書きリクエストのために前記移行先ファイル・システムを用いるステップとである。
【００２０】
本発明の方法は、有利なことに、前記ファイル・システムが、ファイル・サーバー上でホストされるネットワーク・ファイル・システムもしくはネイティブの（ローカルの）ファイル・システムであり得るという前述の事実の故に、非常に広範な用法を有する。
【００２１】
前記プロキシ・コンポーネントはまた現在あるファイル・システム・プロトコルを適用してもよい。前記アプリケーションは前記プロキシ・コンポーネントによりエクスポートされるソース・ファイル・システムを表すファイル共有を実装し、前記ソース・ファイル・システム中の全てのデータへのアクセスを得る。前記ソース・ファイル・システムへの前記サーバーもしくはアプリケーションによる全てのその後のアクセス動作は、これによって前記プロキシ・コンポーネントによってインターセプトされるように構成される。前記プロキシ・コンポーネントは前記ソース・ファイル・システム中のファイルへのアクセスを扱うように、かつ前記移行先ファイル・システムに前記ファイルを同時にコピーするように構成される。
【００２２】
一実施例では、前記プロキシ・コンポーネントが、ＮＦＳもしくはＣＩＦＳのような標準的なネットワーク・ファイル・システム・プロトコルに多くの異なるタイプのネイティブのファイル・システムを基本的に変換する。もし移行先ファイル・システム中の特定の機能が利用できないなら、前記プロキシ・コンポーネントはこれらの機能をマップし、それらを前記移行先ファイル・システムの拡張された属性にストアする。
【００２３】
好適な実施例において、前記プロキシ・コンポーネントは、移行先ファイル・システムの前記ファイル共有を前記データ・マイグレーション中の前記アプリケーションにエクスポートしない。こうして、前記アプリケーションはそのプロセスによって影響されない。
【００２４】
重要で発明的な特徴は、本発明の方法が一つのファイル・システムから他のファイル・システムにデータ・マイグレーションを自律的に行い、一方で、ユーザーおよびアプリケーションは前記マイグレーション・プロセスと同時に前記ファイル・システムを使用することができることである。このことを達成するために、前記プロキシ・コンポーネントに含まれる発明的な制御コンポーネントが、アプリケーションもしくはファイル・サーバーからの読み書きコマンドをインターセプトし、前記ソース・ファイル・システムから前記移行先ファイル・システムへの前記データ・マイグレーションを自律的に行う。これはアプリケーションもしくはサーバーに夫々トランスペアレントに行われ、そしてそれはマイグレーションのための余分なアプリケーション介入の必要性を取り除く。その必要性を取り除けなければ前記マイグレーション・プロセスのための専用のインフラストラクチャを展開することになろう。その管理オーバーヘッドは非常に低い。何故ならば本発明によるシステムおよび方法が自律的に働くからであり、前記アプリケーションにはトランスペアレントだからである。
【００２５】
本発明はまたファイル・システム・ベースのデータを一つのストレージ・サブシステムから他のストレージ・サブシステムに自律した態様でマイグレートし、同時に一つのタイプのファイル・システムから他のタイプのファイル・システムにデータをマイグレートする方法を提供する。
【００２６】
本発明のシステムおよび方法は顧客もしくはプロバイダに提供されるサービスとして導入され得る。チャージングは、マイグレートされた能力、もしくはどれだけ長くそのシステムが使用されるかというタイミングに基づき得る。従って、本発明のシステムは従来技術によるレポーティング・ツールを含むことができる。
【００２７】
本発明は、実施例に沿って説明されているが、図面における各図の形状によって制限されるものではない。
【発明を実施するための形態】
【００２８】
図２は図１に基づくネイティブのファイル・システム１０６ａを用いる、アプリケーション・サーバーのために使用される発明のデータ・マイグレーション・システムの好適な実施例を示す。プロキシ・コンポーネント２０２において導入される本発明のシステムおよび方法はネイティブのソース・ファイル・システム１０６ａから、アプリケーション・サーバー１０２に属するネイティブの移行先ファイル・システム１０６ｂへのファイル・データ・マイグレーションのために使用される。ネイティブのソース・ファイル・システム１０６ａおよびネイティブの移行先ファイル・システム１０６ｂは同じタイプのものであっても異なるタイプのものであってもよい。ファイル・サーバー２０３ａおよびファイル・サーバー・クライアント２０１に対し、ＮＦＳは、ＮＦＳのファイル・サーバー・クライアント２０１およびＮＦＳのファイル・サーバー２０３ａ間のデータ転送のためのファイル・システム・プロトコルとして使用される実施例であってよい。代替実施例において、ＮＦＳはＣＩＦＳに置き換えることができる。本発明はこれらのファイル・システム・プロトコルに限定されない。全てのコンポーネント（例えば、アプリケーション１０４、プロキシ・コンポーネント２０２、ネイティブのファイル・システム１０６ａおよび１０６ｂ）は同じアプリケーション・サーバー１０２上でホストされる。
【００２９】
アプリケーション・サーバー１０２によりホストされるアプリケーション１０４は発明のプロキシ・コンポーネント２０２に接続される。アプリケーション１０４はファイル・システムのデータを読み出したり書き込んだりする任意のアプリケーションであり得る。アプリケーション１０４はオフィス・アプリケーションおよびＣＡＤシステムのような同じサーバー上のファイルを処理してもよい。アプリケーション１０４はまた遠隔のクライアントにローカルのファイルを提供してもよい。この場合アプリケーション１０４はウエッブ・サーバーもしくはファイル・サーバーであってよい。プロキシ２０２というコンポーネントはアプリケーション読み出しおよび書き込みのリクエストのためのインターフェイスとして働くファイル・サーバー・クライアント２０１を含む。プロキシ・コンポーネント２０２はまた図５のプロセス５００において概略説明する新規なデータ・マイグレーション・プロセスを導入するプロキシ・メソッド２０３ｃを含む。プロキシ・コンポーネント２０２はまたファイル・サーバー２０３ａおよび異なるタイプのＡＰＩ２０３ｂを含む。そのＡＰＩは、ファイル・システム１０６ａおよび１０６ｂのタイプごとに１個のＡＰＩである。ファイル・サーバー・クライアント２０１はファイル・サーバー２０３ａと通信し、そのファイル・サーバーはソース・ファイル・システム１０６ａおよび移行先ファイル・システム１０６ｂ中のデータにＡＰＩ２０３ｂを介してアクセスする。ファイル・サーバー２０３ａは、ソース・ファイル・システム１０６ａからターゲットである移行先ファイル・システム１０６ｂにファイルのシームレスなマイグレーションを可能ならしめるように読み出しおよび書き込みのリクエスト中、プロキシ・メソッド２０３ｃと相互作用する。ソース・ファイル・システム１０６ａはストレージ・システム１０８上にデータをストアし、移行先ファイル・システム１０６ｂはストレージ・システム２０８上にデータをストアする。ストレージ・システム１０８および２０８は同じタイプであっても異なるタイプであってもよい。代替実施例のファイル・システム１０６ａおよび１０６ｂは、1個の同じストレージ・システム１０８上にデータをストアする。
【００３０】
プロキシ・コンポーネント２０２の一部としてのファイル・サーバー２０３ａはソース・ファイル・システム１０６ａをファイル・システム・プロトコルに変換し、これをそのアプリケーションへのファイル・サーバー・クライアント２０１を介して表す。アクセス制御リストなどソース・ファイル・システムからのファイル・システム・メタ・データはまたファイル・システム・プロトコルに従ってプロキシ・コンポーネント２０２によりマップされる。アプリケーション１０４はソース・ファイル・システム１０６ａ上の以前の全てのデータを、ファイル・サーバー・クライアント２０１を介してアクセスしている。プロキシ・コンポーネント２０２は両ファイル・システム１０６ａおよび１０６ｂにアクセスするが、アプリケーション１０４はプロキシ・コンポーネント２０２により、一層正確にはファイル・サーバー・クライアント２０１により表される1個のファイル・システムを見るだけである。
【００３１】
ファイル・サーバー２０３ａおよびファイル・サーバー・クライアント２０１により展開されるファイル・システム・プロトコルは、ＮＦＳもしくはＣＩＦＳに基づく例示的なものであり得る。従来技法による任意の他のファイル・システム・プロトコルも同様に使用できる。
【００３２】
プロキシ・コンポーネント２０２、特にプロキシ・メソッド２０３ｃにおいて導入されるデータ・マイグレーション・プロセス５００は図５で詳細に説明する。
【００３３】
このプロセスはステップ５０２で開始し、ステップ５０２に続く。そのステップでは、アプリケーション１０４から仕掛かり中のコマンドがあるか判定される。アプリケーションからのコマンドはプロキシ・コンポーネント２０２の一部であるファイル・サーバー・クライアント２０１に送られる。もしステップ５０４の答えがイエス（Ｙ）なら、そのプロセスは、プロキシ・コンポーネントがコマンドを受取るというステップ５０６に進む。そうでなく、ステップ５０４の答えがノー（Ｎ）なら、プロセスはメモリ・コントローラ５２０に進む。
【００３４】
ステップ５２０では、ソース・ファイル・システム１０６ａから移行先ファイル・システム１０６ｂにマイグレートされるべきファイルがもっとあるかそのプロセスがチェックする。もしステップ５２０の答えがイエスなら、そのプロセスはステップ５２２に進み、そこでファイルがソース・ファイル・システムから移行先ファイル・システムにプロキシ・コンポーネントによってコピーされる。ステップ５２２からはプロセスがステップ５０２に戻る。そうでなく、もしステップ５２０がノーなら、プロセスは以下で説明するようなステップ５４０に進む。
【００３５】
ステップ５０６に続くステップ５０７では、そのコマンドがファイル「書き込み」コマンドであるかそのプロセスがチェックする。もしその答えがイエスなら、そのプロセスはステップ５０８に進み、そこでは書き込まれるべきデータをファイル・サーバー２０３ａが受取る。ステップ５１０では、ソース・ファイル・システム１０６ａおよび移行先ファイル・システム１０６ｂにデータが書き込まれる。従ってそのデータは両方のファイル・システムに今は存在する。
【００３６】
ステップ５１２では、そのコマンドが完遂される。これはそのオペレーションの結果をチェックし、そしてファイル・サーバー・クライアント２０１を介してそのアプリケーション１０４に適当な復帰コードを与える。ことを含む。ステップ５１２からそのプロセスはステップ５０２に戻る。
【００３７】
もしステップ５０７の答えがノーであれば、そしてそのコマンドが「書き込み」でなければ、それは読み出しコマンドの筈であり、そのプロセスはステップ５３０に進む。ステップ５３０では、読み出されるべきデータが図２における両方のファイル・システム１０６ａ および１０６ｂに存在するか判定する。もしその答えがイエス（Ｙ）なら、そのプロセスはステップ５３２に進み、そこで一つのファイル・システムがその読み出し動作のために選択される。その選択は、もっとも利用されていないファイル・システムが選択されるというポリシーに基づく。ステップ５３４では、そのデータがその選択されたファイル・システムから読み出され、そしてそのプロセスはステップ５１２に進み、その読み出しコマンドが完遂される。
【００３８】
もしステップ５３０の答えがノーであって、読み出されるべきデータが両方のファイル・システムにないことを示すなら、そのプロセスはステップ５３６に進む。ステップ５３６では、そのデータがストアされているファイル・システムからデータが読み出される。ステップ５３８では、そのデータが他のファイル・システムにコピーされ、その結果今や両方のファイル・システムにそれが存在することになる。ステップ５３８からは、プロセスがステップ５１２に進み、そこで読み出しコマンドが完遂される。
【００３９】
ステップ５４０で、データ・マイグレーション・プロセスが終了する。このステップでいろいろなデータ完全性チェックが行われてもよく、これによってソース・ファイル・システム１０６ａ上のデータが移行先ファイル・システム１０６ｂ上のデータと同一であることを確実にする。更に、そのデータ・マイグレーションが完了したことを示すメッセージがユーザーに送られてもよい。そのメッセージはＳＮＭＰ、ＳＭＩ−Ｓもしくはeメールのような従来からある方法で送られてもよい。
【００４０】
ステップ５４２では、移行先ファイル・システム１０６ｂがアプリケーション１０４に実装(mount)される。これによって本発明の好適な実施例では、プロキシ・コンポーネント２０２が取り外され、移行先ファイル・システム１０６ｂがそのアプリケーションに実装される。今や、プロキシ・コンポーネント２０２によりマイグレートされたソース・ファイル・システム１０６ａ上の全てのデータにそのアプリケーションは直接アクセスすることになる。
【００４１】
代替実施例では、プロキシ・コンポーネント２０２が取り外されない。これは将来のマイグレーション・リクエストに対し柔軟性を確保するのには適切であろう。代わりに、プロキシ・コンポーネント２０２がファイル・サーバー・クライアントを介して移行先ファイル・システム１０６ｂを提供する。例えば、ＮＦＳプロトコルについていえば、プロキシ・コンポーネントが移行先ファイル・システムをアプリケーション１０４にエクスポートする。そのエクスポートされるファイル共有の名称はそのデータ・マイグレーションレーション中に使用される名称と同じであってよい。そこでソース・ファイル・システム１０６ａがプロキシ・コンポーネントから除去され、完全に削除されることができる。このプロセスはステップ５５０で終了する。
【００４２】
ビジネスの継続性の要求をアドレスする本発明の方法の他の重要な側面がある。ステップ５１０およびステップ５３８では、データが両方のファイル・システム、即ちソース・ファイル・システム１０６ａおよび移行先ファイル・システム１０６ｂにコピーされる。もしステップ５４０においてマイグレーションの終了に至る前に例えばそのソース・ファイル・システムに欠陥があるなら、プロキシ・コンポーネントは移行先ファイル・システム１０６ｂ中にストアされた全てのデータへの連続的なアクセスを許容するであろう。これはそのアプリケーションにトランスペアレントであり、高い可用性の目的に資する。
【００４３】
次に、図４に言及すると、図３に示した従来例のファイル・サーバー・ベースのアーキテクチャのために適用可能な本発明のデータ・マイグレーション・システムおよび方法がもっと詳細に示される。ここでファイルはネットワークにおける異なるクライアント相互間で共有されるであろう。図５に示されるプロセス５００の制御フローは殆ど同じままである。
【００４４】
プロキシ・コンポーネント４０２において実装される本発明のファイル・サーバー構成をベースとするシステムおよび方法は、ソース・ファイル・サーバー３０６から移行先ファイル・サーバー３０６ｂへのファイル・データ・マイグレーションのために使用される。ソース・ファイル・サーバー３０６および移行先ファイル・サーバー３０６ｂはそれらのファイル・システム３０８および３０８ｂを、その同じネットワーク・ファイル・システム・プロトコルを介してもしくは異なるネットワーク・ファイル・システム・プロトコルを介して共有してもよい。ＮＦＳもしくはＣＩＦＳはファイル・サーバー・クライアント３０１ｂ とファイル・サーバー４０１ａとの間のデータ転送のためのファイル・システム・プロトコルとして例示的に使用される。本発明はこれらのファイル・システム・プロトコルには限定されない。
【００４５】
サーバー３０２上で実行するアプリケーション３０１ａはソース・ファイル・サーバー３０６中にファイルをストアするためにファイル・サーバー・クライアント３０１ｂと通信する。
【００４６】
ファイル・サーバー・クライアント３０１ｂはネットワークネットワーク３０４を介して発明のプロキシ・コンポーネント４０２に接続される。プロキシ・コンポーネント４０２はファイル・サーバー４０１ａ、図５のプロセス５００で詳細に説明するプロキシ・メソッド４０１ｂ、ソース・ファイル・システムＡＰＩ４０１ｃおよび移行先ファイル・システムＡＰＩ４０１ｄを含む。
【００４７】
ファイル・サーバー４０１ａおよびファイル・サーバー・クライアント３０１ｂはＮＦＳもしくはＣＩＦＳに基づくのでもよいが、これに限るものではない。 ソース・ファイル・システムＡＰＩ４０１ｃはプロキシ・コンポーネント４０２をソース・ファイル・サーバー３０６に接続する。移行先ファイル・システムＡＰＩ４０１ｄはそのプロキシ・コンポーネントを移行先ファイル・サーバー３０６ｂに接続する。
【００４８】
プロキシ・コンポーネント４０２に従うファイル・サーバー４０１ａは図３によるソース・ファイル・サーバー３０６と同じ、クライアント・システム３０２へのインターフェイスを示す。従って、クライアント・システム３０２を変更する必要はない。プロキシ・コンポーネント４０２はまたソース・ファイル・サーバー３０６からＮＦＳプロトコルへのアクセス制御リストのようなファイル・システム・メタ・データをマップする。
【００４９】
ソース・ファイル・サーバー３０６は図３にあるようなプロキシ・コンポーネント４０２にその同じファイル共有をエクスポートし、かくしてソース・ファイル・サーバー３０６は何の変化も必要としない。プロキシ・コンポーネント４０２はソース・ファイル・サーバー３０６からファイル・サーバー・クライアント３０１ｂにエクスポートされるファイル・システムを提供する。これはアプリケーション３０１ａ図３に関連して以前説明したのと同じデータを、アプリケーション３０１ａが読み書きするのを可能にする。こうして、そのアプリケーションも何の変化もない。
【００５０】
更に、ソース・ファイル・サーバー３０６はファイル・システム３０８を、ストレージ・システム３１０上に物理的にストアされるデータのためのレポジトリとして配備し続ける。
【００５１】
移行先ファイル・サーバー３０６ｂはストレージ・システム４０８ｂ上にデータをストアする。代替実施例では、移行先のファイル・システム３０８ｂがリンク４０７を介してストレージ・システム３１０中にデータをストアする。ファイル・システム３０８および３０８ｂは同じタイプかもしくは異なるタイプのものであってよい。ストレージ・システム３１０および４０８ｂは同じタイプかもしくは異なるタイプのものであってよい。
【００５２】
前述のプロセス５００のプロセスの流れは殆ど同じままである。代替実施例では、プロキシ・コンポーネント４０２は、ステップ５４０で一旦マイグレーションが完遂すると除去されない。これは将来のマイグレーション・リクエストのための柔軟性を確保するのには適切かもしれない。代わりに、プロキシ・コンポーネント２０２がファイル・サーバー・クライアントを介して移行先のファイル・システム３０８ｂを提供する。例えば、ＮＦＳプロトコルについていえば、プロキシ・コンポーネントが移行先のファイル・システムをアプリケーション３０１ａにエクスポートする。そのエクスポートされたファイル共有の名称はデータ・マイグレーション中に使用されるのと同じ名称であってもよい。それからソース・ファイル・システム１０６ａはプロキシ・コンポーネントから除去されそして完全に削除される。
【００５３】
本発明はまた互換性のないファイル・サーバー相互間のファイルのマイグレーションをも可能にする。これによって、ソースおよび移行先のファイル・システム１０６ａ、１０６ｂならびにソースおよびターゲットのファイル・サーバー３０６、３０６ｂは夫々同じタイプのものであるかもしくは異なるタイプのものであり得る。実際にも、本発明は一つのベンダーのファイル・サーバーから他のベンダーのファイル・サーバーへのデータ・マイグレーションを許容する。その際、同時にファイル・システムのタイプを変更も許容する。そしてもっとも重要かつ有利なことに、データ・マイグレーションがアプリケーションにトランスペアレントなことである。そのアプリケーションはデータ・マイグレーションのために時間も資源も使う必要がない。更に、そのアプリケーションのインフラ構造がデータ・マイグレーション中使用されることがより少ない。
【００５４】
図２は一つのファイル・システムから他のファイル・システムにマイグレーションするためのアーキテクチャを示し、図４は一つのファイル・サーバーから他のファイル・サーバーへのマイグレーションを示す。これらの発明の方法およびアーキテクチャが、ファイル・サーバーからネイティブのファイル・システムにまたネイティブのファイル・システムからファイル・サーバーにマイグレートにファイルをマイグレートするのにも使用されることができることを当業者は理解できよう。
【００５５】
本発明は完全にハードウエアの実施例、完全にソフトウエアの実施例、またはハードウエアおよびソフトウエアの両方のエレメントを含む実施例の形態をとることができる。好適な実施例では、本発明は、ファームウエア、常駐のソフトウエア、マイクロコードなどを含むがそれらに限定されないソフトウエアで実装される。
【００５６】
更に、本発明は、コンピュータが利用可能もしくはコンピュータ読み出し可能な媒体からアクセス可能なコンピュータ・プログラム製品の形態をとることができ、コンピュータもしくは任意の命令実行システムによりもしくはそれと関連して使用するためのプログラム・コードを提供する。この説明のために、コンピュータが使用可能なもしくはコンピュータが読み出し可能な媒体であって、命令を実行するシステム、装置もしくはデバイスによりもしくはそれと関連して使用するためのプログラムを含み、ストアし、通信し、伝播し、もしくは搬送することができる任意の装置であってもよい。
【００５７】
その媒体は電子的、磁気的、光学的、電磁気的、赤外線、もしくは半導体のシステム（装置もしくはデバイス）、または伝播媒体であり得る。コンピュータ読み取り可能な媒体は半導体もしくは固体のメモリ、磁気テープ、取り外し可能なコンピュータ・フロッピー（登録商標）・ディスク、ランダム・アクセス・メモリ（ＲＡＭ）、読み出し専用メモリ（ＲＯＭ）、ハード磁気ディスクおよび光ディスクを含む。光ディスクの現在の例はＣＤ−ＲＯＭ（コンパクト・ディスクの読み出し専用メモリ）、ＣＤ−Ｒ／Ｗ（コンパクト・ディスクの読み書きメモリ）およびＤＶＤを含む。
【００５８】
プログラム・コードをストアしたり実行したりするのに適するデータ処理システムは、メモリ・エレメントにシステム・バスを介して直接もしくは間接に結合される少なくとも１個のプロセッサを含む。そのメモリ・エレメントは、プログラム・コード、大容量ストレージおよびキャッシュ・メモリの実際の実行中に用いられるローカル・メモリを含むことができる。そのキャッシュ・メモリは大容量ストレージから実行中にコードを取り出さねばならない回数を少なくするために少なくとも幾つかのプログラム・コードを一時的に記憶する役割がある。
【００５９】
入出力装置即ちＩ／Ｏ装置（キーボード、ディスプレイ、ポインティング装置などを含む）がそのシステムに直接にもしくは中間のＩ／Ｏコントローラを介して結合されることができる。
【００６０】
そのシステムにはネットワーク・アダプタもまた結合されてもよい。これによりそのデータ処理システムが他のデータ処理システムに、または中間の私的もしくは公的なネットワークを介して遠隔のプリンタもしくはストレージ装置に結合されるようになるのが可能となる。モデム、ケーブル・モデム、およびイーサーネット・カードは現在利用可能なタイプのネットワーク・アダプタのほんの一部である。
【図面の簡単な説明】
【００６１】
【図１】ネイティブ・ファイル・システムを用い、従来のアプリケーション・サーバー・ベースのシステムのために使用されるハードウエアおよびソフトウエアの環境よりなる、従来技法の最も基本的な構成のコンポーネントを示す。
【図２】図１によるアプリケーション・サーバー・ベースのシステムにおける本発明の方法の好適な実施例のために使用される発明のハードウエアおよびソフトウエアの環境よりなるもっとも基本的な構成のコンポーネントを示す。
【図３】従来技術のファイル・サーバー・ベースのシステムために使用される従来技術のハードウエアおよびソフトウエアの環境の最も基本的な構成のコンポーネントを示す。
【図４】図３によるファイル・サーバー・ベースのシステムにおける本発明の方法の好適な実施例のために使用される発明のハードウエアおよびソフトウエアの環境よりなるもっとも基本的な構成のコンポーネントを示す。
【図５】本発明の方法の好適な実施例の重要な諸ステップの制御フローを示す。
【符号の説明】
【００６２】
１０２  アプリケーション・サーバー
１０４  アプリケーション
１０６ａ  （ソース）ファイル・システム
１０６ｂ  （移行先）ファイル・システム
１０８  ストレージ・システム
２０１  ファイル・サーバー・クライアント
２０２  プロキシ・コンポーネント
２０３ａ  ファイル・サーバー
２０３ｂ  ＡＰＩ（アプリケーション・プログラミング・インターフェイス）
２０３ｃ  プロキシ・メソッド
２０８  ストレージ・システム
３０１ａ  アプリケーション
３０１ｂ  ファイル・サーバー・クライアント
３０２  クライアント・システム
３０４  ネットワーク
３０６  ファイル・サーバー
３０８  ネイティブ・ファイル・システム
３１０  ストレージ・システム
４０１ａ  ファイル・サーバー
４０１ｂ  プロキシ・メソッド
４０１ｃ  ソース・ファイル・システムＡＰＩ
４０１ｄ  移行先ファイル・システムＡＰＩ
４０２  プロキシ・コンポーネント
【図１】
2009211688.tif 000003
【図２】
2009211688.tif 000004
【図３】
2009211688.tif 000005
【図４】
2009211688.tif 000006
【図５】
2009211688.tif 000007