(57)【要約】【課題】ユーザが正しいファイルを探せないことやアーカイブコストを増大させることになる、重複データの大量の保存等、いくつかの限界がある。【解決手段】データは第一のＣＡＳ（コンテンツ・アドレッサブルストレージ）システムから第二のＣＡＳシステムに移行される。移行プロセスが開始すると、第二のＣＡＳシステムは第一のＣＡＳシステムに保存されたオブジェクトのリストを取り出す。このリストに基づき、第二のＣＡＳシステムは第一のＣＡＳシステムから各オブジェクトを取り出し、各オブジェクトのオブジェクトＩＤを計算し、各オブジェクトと計算したオブジェクトＩＤを第二のＣＡＳシステムのストレージデバイスに保存する。移行プロセスの間のダウンタイムを縮小する方法も開示される。【選択図】図２
2007305122.tif 000002
【特許請求の範囲】
【請求項１】
第一のストレージシステムから第二のストレージシステムにデータを移行する方法に於いて、該データはオブジェクトとして保存され、各オブジェクトはコンテンツとメタデータから構成され、各オブジェクトは該コンテンツに基づいて計算される固有のオブジェクトＩＤ（識別子）に従って保存され、該方法は、
前記第二のストレージシステムに於いて、前記第一のストレージシステムに保存されたオブジェクトのオブジェクトＩＤのリストを受信するステップと、
前記第二のストレージシステムが、前記オブジェクトＩＤを指定することによって前記第一のストレージシステムからオブジェクトを取り出すステップと、
前記第二のストレージシステムが、前記取り出したオブジェクトの前記コンテンツに基づいて該取り出したオブジェクトの新たなオブジェクトＩＤを計算するステップと、
前記取り出したオブジェクトの前記コンテンツとメタデータを前記第二のストレージシステムに保存するステップと、
から成ることを特徴とするデータ移行方法。
【請求項２】
請求項１に於いて、
前記リストの全てのオブジェクトが前記第一のストレージシステムから前記第二のストレージシステムに移行し終るまで該リストの各オブジェクトに対して、前記取り出すステップ、計算するステップ及び保存するステップを繰り返すステップを更に含むことを特徴とする方法。
【請求項３】
請求項２に於いて、
以前のオブジェクトＩＤと新たなオブジェクトＩＤとの間の関係をマッピングするマッピング情報を更新するステップと、
前記リスト上の全てのオブジェクトを前記第二のストレージシステムに移行し終わった時に、ユーザに移行完了の通知を送信するステップと、
を更に含むことを特徴とする方法。
【請求項４】
請求項３に於いて、
前記マッピング情報を前記第二のストレージシステムからホストコンピュータ上のアプリケーションプログラムに伝えるステップを更に含み、それによって前記アプリケーションプログラムは該アプリケーションプログラムが使用するオブジェクト管理情報を更新するために該マッピング情報を使用することを特徴とする方法。
【請求項５】
請求項２に於いて、
前記データの移行に先立ってホストコンピュータ上のアプリケーションプログラムを停止するステップを更に含むことを特徴とする方法。
【請求項６】
請求項５に於いて、
前記第一のストレージシステムを前記ホストコンピュータとの交信から切り離し、前記第二のストレージシステムを該ホストコンピュータとの交信のため接続するステップと、
前記アプリケーションプログラム又は新たにインストールしたアプリケーションプログラムを再開するのに先立って前記第二のストレージシステムとの接続に使用するために前記ホストコンピュータ上にアプリケーションプログラムインタフェースをインストールするステップと、
を更に含むことを特徴とする方法。
【請求項７】
請求項５に於いて、
前記第二のストレージシステムに於いて、前記第一のストレージシステムに保存されたオブジェクトのオブジェクトＩＤの前記リストを受信するステップに続いて、前記ホストコンピュータ上の前記アプリケーションプログラムを再開するステップと、
前記リスト上の全てのオブジェクトが前記第二のストレージシステムに移行し終わった後に前記ホスト上の前記アプリケーションプログラムの二度目の停止を行うステップと、
前記第二のストレージシステムに於いて、前記アプリケーションプログラムの再開以後に前記第一のストレージシステムに保存されたオブジェクトのオブジェクトＩＤの新たなリストを受信するステップと、
前記第二のストレージシステムが、前記新たなリスト上の前記オブジェクトＩＤに従って前記第一のストレージシステムからオブジェクトを取り出すステップと、
前記第二のストレージシステムが、前記取り出したオブジェクトの前記コンテンツに基づいて前記新たなリスト上の各取り出したオブジェクトの新たなオブジェクトＩＤを計算するステップと、
前記新たなリストから前記取り出したオブジェクトの前記コンテンツとメタデータを前記第二のストレージシステムに保存するステップと、
前記アプリケーションプログラム又は新たにインストールしたアプリケーションプログラムを再開するのに先立って前記第二のストレージシステムとの接続に使用するために前記ホストコンピュータ上にアプリケーションプログラムインタフェースをインストールするステップと、
を更に含むことを特徴とする方法。
【請求項８】
請求項５に於いて、
前記アプリケーションプログラムの再開に先立って前記第二のストレージシステムとの接続に使用するために前記ホストコンピュータ上にアプリケーションプログラムインタフェースをインストールするステップと、
前記第二のストレージシステムを前記ホストコンピュータとの交信状態に置くステップと、
を更に含み、
前記第二のストレージシステムがオブジェクトの読み出し要求を受信すると、該第二のストレージシステムは、該オブジェクトが該第二のストレージシステムに保存されているか、それとも前記第一のストレージシステムに保存されているか判定し、
前記オブジェクトが前記第一のストレージシステムに保存されている場合、前記第二のストレージシステムは、
前記第一のストレージシステムから前記オブジェクトを取り出し、
前記取り出したオブジェクトの前記コンテンツに基づいて該取り出したオブジェクトの新たなオブジェクトＩＤを計算し、
前記取り出したオブジェクトの前記コンテンツとメタデータを前記第二のストレージシステムに保存し、
前記要求に応答して前記オブジェクトと前記新たなオブジェクトＩＤを返送する、
ことを特徴とする方法。
【請求項９】
請求項５に於いて、
前記アプリケーションプログラムの再開に先立って前記第二のストレージシステムとの接続に使用するために前記ホストコンピュータ上にアプリケーションプログラムインタフェースをインストールするステップと、
前記第二のストレージシステムを前記ホストコンピュータとの交信状態に置くステップと、
を更に含み、
前記第二のストレージシステムがオブジェクトの読み出し要求を受信すると、該第二のストレージシステムは、該オブジェクトが該第二のストレージシステムに保存されているか、それとも前記第一のストレージシステムに保存されているか判定し、
前記オブジェクトが前記第二のストレージシステムに保存されている場合、該第二のストレージシステムは、
前記オブジェクトを取り出し、
前記要求に応答して前記オブジェクトを返送する、
ことを特徴とする方法。
【請求項１０】
請求項５に於いて、
前記アプリケーションプログラム又は新たにインストールしたアプリケーションプログラムの再開に先立って前記第二のストレージシステムとの接続に使用するために前記ホストコンピュータ上にアプリケーションプログラムインタフェースをインストールするステップと、
前記第二のストレージシステムを前記ホストコンピュータとの交信状態に置くステップと、
を更に含み、
前記第二のストレージシステムがオブジェクトの書き込み要求を受信すると、該第二のストレージシステムは、
前記オブジェクトの前記コンテンツに基づいて該オブジェクトの新たなオブジェクトＩＤを計算し、
前記取り出したオブジェクトの前記コンテンツとメタデータを前記第二のストレージシステムに保存し、
前記要求に応答して前記新たなオブジェクトＩＤを返送する、
ことを特徴とする方法。
【請求項１１】
第一のコントローラと第一のストレージデバイスを含む第一のＣＡＳ（コンテンツ・アドレッサブルストレージ）システムと、
第二のコントローラと第二のストレージデバイスを含む第二のＣＡＳシステムと、
少なくとも１台のホストコンピュータと、
前記第一のＣＡＳシステムに保存されたオブジェクトのオブジェクトＩＤのリストを受信する前記第二のＣＡＳシステム上の移行処理モジュールと、
から成り、
前記第一及び第二のＣＡＳシステムはデータのコンテンツに基づいて生成される該コンテンツのアドレスを使用して、該データをオブジェクトとして保存し、
前記ホストコンピュータは初めは前記第一のＣＡＳシステムとの交信状態にあり、前記第二のＣＡＳシステムは該第一のＣＡＳシステムのデータが該第二のＣＡＳシステムに移行できるように該第一のＣＡＳシステムと交信状態に置かれ、
前記移行処理モジュールは前記リストに従って各オブジェクトの前記オブジェクトＩＤを指定することにより前記第一のストレージシステムからオブジェクトを取り出し、
前記移行処理モジュールは取り出した各オブジェクトの新たなオブジェクトＩＤを計算し、
前記移行処理モジュールは取り出した各オブジェクトのコンテンツとメタデータを前記第二のストレージシステムに保存する、
ことを特徴とするシステム。
【請求項１２】
請求項１１に於いて、更に、
前記移行処理モジュールが前記リストを受信するのに先立って停止される、ホストコンピュータ上のアプリケーションプログラムから成り、
前記第一のＣＡＳシステムは前記ホストコンピュータとの交信から切り離され、前記第二のＣＡＳシステムは前記ホストコンピュータとの交信のために接続され、
前記オブジェクトを前記第二のＣＡＳシステムに移行の後、前記アプリケーションプログラム又は新たにインストールしたアプリケーションプログラムを再開するのに先立って該第二のＣＡＳシステムとの接続に使用するために前記ホストコンピュータ上にアプリケーションプログラムインタフェースをインストールする、
ことを特徴とするシステム。
【請求項１３】
第一のストレージシステムから第二のストレージシステムにデータを移行する方法に於いて、
前記第一のストレージシステムは、コンテンツと該コンテンツの属性を含むメタデータから構成されるオブジェクトを複数保存し、
前記各オブジェクトは前記コンテンツに基づいて計算された固有のオブジェクトＩＤ（識別子）を持ち、
前記第一のストレージシステムでの前記オブジェクトＩＤの計算方法は、前記第二のストレージシステムでの該オブジェクトＩＤの計算方法とは異なっており、
前記第一のストレージシステムは、該第一のストレージシステム及び（又は）前記第二のストレージシステムにアクセスするためのアプリケーションプログラムを有する少なくとも１台のホストコンピュータと当初は交信状態にあり、
前記移行方法は、
前記第二のストレージシステムに於いて、前記第一のストレージシステムに保存されたオブジェクトのオブジェクトＩＤのリストを受信するステップと、
前記第二のストレージシステムが、前記リスト上の各オブジェクトの前記オブジェクトＩＤに従い前記第一のストレージシステムからオブジェクトを取り出すステップと、
前記第二のストレージシステムが、取り出した各オブジェクトの前記コンテンツに基づいて該取り出した各オブジェクトの新たなオブジェクトＩＤを計算するステップと、
前記リスト上の全てのオブジェクトが取り出され保存し終わるまで、取り出した各オブジェクトの前記コンテンツとメタデータを前記第二のストレージシステムに保存するステップと、
から成ることを特徴とする方法。
【請求項１４】
請求項１３に於いて、
前記データの移行に先立って前記ホストコンピュータ上の前記アプリケーションプログラムを停止するステップと、
前記ホストコンピュータとの交信から前記第一のストレージシステムを切り離し、該ホストコンピュータとの交信のため前記第二のストレージシステムを接続するステップと、
前記第二のストレージシステムとの接続に使用するために前記ホストコンピュータ上にアプリケーションプログラムインタフェースをインストールするステップと、
前記リスト上の全てのオブジェクトを前記第二のストレージシステムに保存し終わった時に前記ホストコンピュータ上の前記アプリケーションプログラム又は新たにインストールしたアプリケーションプログラムを再開するステップと、
を更に含むことを特徴とする方法。
【請求項１５】
請求項１３に於いて、
前記データの移行に先立って前記ホストコンピュータ上の前記アプリケーションプログラムを停止するステップと、
前記第二のストレージシステムに於いて、前記第一のストレージシステムに保存されたオブジェクトのオブジェクトＩＤの前記リストの受信に引き続いて前記ホストコンピュータ上の前記アプリケーションプログラムを再開するステップと、
前記リスト上の全てのオブジェクトを前記第二のストレージシステムに保存し終わった後に、前記ホスト上の前記アプリケーションプログラムの二度目の停止を行うステップと、
前記第二のストレージシステムに於いて、前記アプリケーションプログラムが再開以後に前記第一のストレージシステムに保存されたオブジェクトのオブジェクトＩＤの新たなリストを受信するステップと、
前記第二のストレージシステムが、前記新たなリスト上のオブジェクトＩＤを指定することによって前記第一のストレージシステムからオブジェクトを取り出すステップと、
前記第二のストレージシステムが、前記取り出したオブジェクトの前記コンテンツに基づいて前記新たなリスト上の各取り出したオブジェクトの新たなオブジェクトＩＤを計算するステップと、
前記新たなリストから取り出した前記オブジェクトの前記コンテンツとメタデータを前記第二のストレージシステムに保存するステップと、
前記第二のストレージシステムとの接続に使用するために前記ホストコンピュータ上にアプリケーションプログラムインタフェースをインストールするステップと、
前記新たなリスト上の全てのオブジェクトを前記第二のストレージシステムに保存し終わった時に前記ホストコンピュータ上の前記アプリケーションプログラム又は新たにインストールしたアプリケーションプログラムを再開するステップと、
を更に含むことを特徴とする方法。
【請求項１６】
請求項１３に於いて、
前記データの移行に先立って前記ホストコンピュータ上の前記アプリケーションプログラムを停止するステップと、
前記第二のストレージシステムとの接続に使用するために前記ホストコンピュータ上にアプリケーションプログラムインタフェースをインストールするステップと、
前記アプリケーションプログラム又は新たにインストールしたアプリケーションプログラムを開始し、前記第二のストレージシステムを前記ホストコンピュータとの交信状態に置くステップと、
を更に含み、
前記第二のストレージシステムがオブジェクトの読み出し要求を受信すると、該第二のストレージシステムは該オブジェクトが該第二のストレージシステムに保存されているか、それとも前記第一のストレージシステムに保存されているかを判定し、
前記オブジェクトが前記第一のストレージシステムに保存されている場合、前記第二のストレージシステムは、
前記第一のストレージシステムから前記オブジェクトを取り出し、
前記取り出したオブジェクトの前記コンテンツに基づいて該取り出したオブジェクトの新たなオブジェクトＩＤを計算し、
前記取り出したオブジェクトの前記コンテンツとメタデータを前記第二のストレージシステムに保存し、
前記要求に応答して前記オブジェクトと前記新たなオブジェクトＩＤを返送する、
ことを特徴とする方法。
【請求項１７】
請求項１３に於いて、
前記データの移行に先立って前記ホストコンピュータ上の前記アプリケーションプログラムを停止するステップと、
前記第二のストレージシステムとの接続に使用するために前記ホストコンピュータ上にアプリケーションプログラムインタフェースをインストールするステップと、
前記アプリケーションプログラム又は新たにインストールしたアプリケーションプログラムを開始し、前記第二のストレージシステムを前記ホストコンピュータとの交信状態に置くステップと、
を更に含み、
前記第二のストレージシステムがオブジェクトの読み出し要求を受信すると、該第二のストレージシステムは該オブジェクトが該第二のストレージシステムに保存されているか、それとも前記第一のストレージシステムに保存されているかを判定し、
前記オブジェクトが前記第二のストレージシステムに保存されている場合、該第二のストレージシステムは、
前記オブジェクトを取り出し、
前記要求に応答して前記オブジェクトを返送する、
ことを特徴とする方法。
【請求項１８】
請求項１３に於いて、
前記データの移行に先立って前記ホストコンピュータ上の前記アプリケーションプログラムを停止するステップと、
前記第二のストレージシステムとの接続に使用するために前記ホストコンピュータ上にアプリケーションプログラムインタフェースをインストールするステップと、
前記アプリケーションプログラム又は新たにインストールしたアプリケーションプログラムを開始し、前記第二のストレージシステムを前記ホストコンピュータとの交信状態に置くステップと、
を更に含み、
前記第二のストレージシステムがオブジェクトの書き込み要求を受信すると、該第二のストレージシステムは、
前記オブジェクトの前記コンテンツに基づいて該オブジェクトの新たなオブジェクトＩＤを計算し、
前記取り出したオブジェクトの前記コンテンツとメタデータを前記第二のストレージシステムに保存し、
前記要求に応答して前記新たなオブジェクトＩＤを返送する、
ことを特徴とする方法。
【請求項１９】
請求項１３に於いて更に、
以前のオブジェクトＩＤと新たなオブジェクトＩＤの間の関係をマッピングするマッピング情報を更新するステップと、
前記リスト上の全てのオブジェクトを前記第二のストレージシステムに保存し終わった時に、ユーザに移行の完了通知を送信するステップと、
を更に含むことを特徴とする方法。
【請求項２０】
請求項１３に於いて、
マッピング情報を前記第二のストレージシステムから前記ホストコンピュータ上の前記アプリケーションプログラムに伝えるステップを更に含み、それによって該アプリケーションプログラム又は新たにインストールしたアプリケーションプログラムは該アプリケーションプログラム又は該新たにインストールしたアプリケーションプログラムが使用するオブジェクト管理情報を更新するために前記マッピング情報を使用する、ことを特徴とする方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は一般にストレージシステムに関し、更に具体的には複数のコンテンツ・アドレッサブルストレージ（ＣＡＳ：ｃｏｎｔｅｎｔｓ  ａｄｄｒｅｓｓａｂｌｅ  ｓｔｏｒａｇｅ）システムから成るストレージシステムに関する。
【背景技術】
【０００２】
多様なデータアーカイブ法が多数知られている中で、いずれの方法にも何がしかの欠点がある。最近まで、テープによるアーカイブが最も一般的に使用されていたデータアーカイブ法であるが、テープによるアーカイブはしばしばアクセスが難しく、アーカイブデータの迅速で容易な取り出しができない。この理由で、アーカイブ媒体の選択には、ディスクアレイがより迅速でより容易にアーカイブデータにアクセスすることが可能なので、より一般的になってきている。
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかしながら、従来のディスクアレイアーカイブ方式には、ユーザが正しいファイルを探せないことやアーカイブコストを増大させることになる、重複データの大量の保存等、いくつかの限界がある。
【０００４】
フィックス・コンテンツ・アウェアストレージ、コンテンツ・アドレッサブルストレージ
フィックス・コンテンツ・アウェアストレージ（ＦＣＡＳ：Ｆｉｘｅｄ  Ｃｏｎｔｅｎｔ  Ａｗａｒｅ  Ｓｔｏｒａｇｅ）はＳＮＩＡ（ストレージネットワーク工業会）によって多様なネーミングスキーマに基づく不変データ（フィックス・コンテンツ）及び関連するメタデータのストレージとして一般的に定義されており、コンテンツ・アドレッサブルストレージ（ＣＡＳ）やコンテンツに無関係なグローバルな識別子（例えば、ｗｗｗ．ｓｎｉａ．ｏｒｇを参照）を含む。ストレージ業界では、ＣＡＳは時としてコンテンツ・アドレスストレージ（ｃｏｎｔｅｎｔ  ａｄｄｒｅｓｓｅｄ  ｓｔｏｒａｇｅ）、コンテンツ・アウェアストレージ、或いはコンテンツ・アーカイブストレージとも呼ばれる。
【０００５】
ＣＡＳに於いては、ユーザとホストコンピュータは、データを標準のファイルとして処理するのでなくて、コンテンツとメタデータから成るオブジェクトとして保存して取り出す。データ（コンテンツ）にはメタデータ（コンテンツの属性）が伴っていて、「コンテンツアドレス」又は「オブジェクトＩＤ」として知られる固有のオブジェクト識別子が割り当てられる。アーカイブのために、オブジェクトはハードディスク上の不変のロケーションに保存される。各オブジェクトは一つしか存在しないので、同じファイルの複数のコピーは保存されない。このことは重複データの保存を減じ、全体の保存必要量を削減するので、上述のディスクアレイアーカイブ方式の主要な限界を克服できる。
【０００６】
ＣＡＳのオブジェクトでは、コンテンツはバイトストリームであり、メタデータは生成時刻、保持期間、コンテンツサイズ、コンテンツに関するコメント、等のコンテンツの属性に関する付加的な情報である。オブジェクトに詳細で考え抜かれたメタデータを付加することにより、データは、具体的なファイル名、日付、等の従来のファイル識別名称を知らずとも、インデックス付けされ、分類され、或いは検索され得る。従って、拡張したメタデータは、将来そのデータにアクセスする者がそのデータを理解し或いは応用する際に役立ち、所望のデータを検索したり収容する際にも役立つ、データに関する背景情報、コメント、等の情報を含むことができる。
【０００７】
オブジェクトをＣＡＳに保存すると、ＣＡＳシステムは識別情報（オブジェクトＩＤ又はオブジェクト識別子）を生成し、次いでこのオブジェクトＩＤをホスト／ユーザに返送する。ホスト／ユーザはこのオブジェクトＩＤを使用してオブジェクトにアクセスできる。ＣＡＳのいくつかの実装では、オブジェクトＩＤはＳＨＡ（安全ハッシュアルゴリズム）−１、ＳＨＡ−２５６、又はＭＤ−５（メッセージダイジェスト５）等の一種のハッシュアルゴリズムを使用して生成される。しかし現時点では、オブジェクトＩＤを生成する方法も、アクセスプロトコルも未だ標準化されていない。従って、ＣＡＳに於いてオブジェクトにアクセスできるようにするためには、ホストコンピュータは、ユーザが購入した特定のＣＡＳシステムのベンダーが供給したＡＰＩ（アプリケーションプログラムインタフェース）を使用せざるを得ない。
【０００８】
ＣＡＳは又、データ間の共通性を見つけ、保存データの重複を避けることで、データの縮減を可能にする。データがＣＡＳシステムに保存されると、データにハッシュアルゴリズムが適用され、これがコンテンツに応じた固有値をもたらす。ＣＡＳシステムは当該固有値を他の保存されたオブジェクトの固有値のインデックスと比較する。もし固有のハッシュ値がインデックス内になければ、データとそのメタデータは保存され、ハッシュ値がインデックスに追加される。しかしながら、もしハッシュ値が既にインデックスにあれば、当該データは既に保存されており、既に保存されているデータのメタデータとポインタのみが保存される。このことはアーカイブ保存空間の相当な節約となり得る。更に、多くのアプリケーションに於いて、ＣＡＳシステムでは、高価なファイバチャネルディスクよりはむしろ、より安価なＳＡＴＡハードディスクを使用でき、このことにより更にコストを節約できる。Ｋｉｌｉａｎ他による米国特許出願公開Ｎｏ．ＵＳ２００５０１２５６２５は、その全内容が参照により本明細書に組み込まれるものであるが、コンテンツアドレスを解析してデータストレージシステムの物理ストレージロケーションの選択を容易にするＣＡＳの一つのアプリケーションを論じている。このアプリケーションはＣＡＳストレージシステムに於けるデータ配置方法を開示しているが、一つのＣＡＳストレージシステムから別のシステムにデータを移行する方法については教示も提言もしていない。
【０００９】
ストレージシステム間のデータ移行
データの寿命は、一般にそれが保存されるストレージ装置の寿命よりも長いので、時として現在のストレージシステムから新たな交換ストレージシステムにデータを移行する必要性が生ずる。データ移行時の一つの重要な課題は移行の間に必要となるダウンタイムを短縮することである。Ｏｆｅｋ他による米国特許Ｎｏ．６，１０８，７４８はホストコンピュータがオンライン中にストレージシステムのデータを移行する一つの方法を開示している。Ｏｆｅｋ他はメインフレームストレージシステム或いはブロックアクセスストレージシステムに適用可能なデータ移行方法を開示しており、それによるとドナーストレージデバイス（移行されるストレージシステム）にもドニーストレージデバイス（新たにインストールされるストレージシステム）にも同じアクセス方法が適用される。しかしながら、本開示の中で記述する方法は、データアクセス方法がお互いに異なっているＣＡＳシステム間のデータ移行に向けられるので、Ｏｆｅｋ他によって開示された技術は使用できない。
【００１０】
ＣＡＳシステム間のデータ移行
ＣＡＳシステム間でデータを移行する時には、オブジェクトＩＤ情報は変更される可能性があり、従ってブロックベースのストレージシステムに適用可能な現状のデータ移行方法は使用できない。ＣＡＳシステムには業界標準が存在しないので、或るベンダーが販売した古いＣＡＳシステムと異なったベンダーが販売した新たなＣＡＳシステムとの間でデータを移動する際に、各オブジェクトのオブジェクトＩＤ（コンテンツアドレス）は古いシステム内と新しいシステム内では異なるであろう。これは、アクセス方法とオブジェクトＩＤの生成方法が異なっていることによる。例えば或るベンダーはオブジェクトＩＤを生成するのに一つ以上の第一のハッシュアルゴリズムを使用する可能性があるが、他方のベンダーは異なったハッシュアルゴリズムを使用する可能性がある。更に、両ＣＡＳシステムが同じベンダーによって製造されたとしても、オブジェクトＩＤの生成方法は新たなＣＡＳシステムがアップグレードされる時に異なったものになる可能性がある。従ってＣＡＳデータ移行に於いて、或るデータアクセス方法或いはオブジェクトＩＤ計算方式を持つ第一のＣＡＳシステムと、異なったデータアクセス方法とオブジェクトＩＤ計算方式を持つ第二のＣＡＳシステムの間でのデータ転送には別な方法が必要となる。
【課題を解決するための手段】
【００１１】
本発明ではドナーとしての第一のＣＡＳシステム、ドニーとしての第二のＣＡＳシステム、及び少なくとも１台のホストコンピュータを備える。移行の開始時、第二のＣＡＳシステムは、第一のＣＡＳシステムに保存されたオブジェクトのリスト（インデックス）を第一のＣＡＳシステムから取り出す。このリストに基づき、第二のＣＡＳシステムは第一のＣＡＳシステムから各オブジェクトを取り出し、各オブジェクトの新たなオブジェクトＩＤを計算し、各オブジェクトと計算したオブジェクトＩＤを第二のＣＡＳシステムのストレージデバイスに保存する。プロセスが終了後、第二のＣＡＳシステムは、第一のＣＡＳシステムが以前に割り当てていた各オブジェクトのオブジェクトＩＤと第二のＣＡＳシステムが新たに割り当てた各オブジェクトのオブジェクトＩＤとの間のマッピングを記録する情報をホストコンピュータに送信する。
【００１２】
以下の好適な実施例の詳細な説明により、本発明のこれら及びその他の特徴及び利点が当業者には明白になるであろう。
【発明を実施するための最良の形態】
【００１３】
以下の本発明の詳細な説明に於いて、発明の開示の一部を構成する添付図面が参照され、図中ではそれによって本発明が実施できる具体的な実施例が限定する目的ではなく説明の目的で示される。図中では、いくつかの図面を通して同じ数字は実質的に同様な要素を示す。更に、図面、前述の考察、及び以下の説明は典型的なものであって、説明のためのものに過ぎず、いかなる形であろうと本出願の発明の範囲を制限することを意図するものでない。
【００１４】
第一の実施例−システム構成：
図１は本発明が適用できる装置とシステム構成の例を示す。このシステムはドナーストレージシステム１ａ、ドニーストレージシステム１ｂ、及び少なくとも１台のホストコンピュータ２（以後「ホスト２」と呼ぶ）を含む。
【００１５】
ドナーストレージシステム１ａは、ドニーストレージシステム１ｂに移行するデータを有するＣＡＳシステムであり、このドニーストレージシステムも同様にＣＡＳシステムである。この実施例ではドナーストレージシステム１ａは第一のタイプのＣＡＳオブジェクトフォーマット計算方式とデータアクセス方法のデータを有する。本発明下では、このデータは第二のタイプのＣＡＳオブジェクトフォーマット計算方式とデータアクセス方法のデータを保存する、ドニーストレージシステム１ｂに移行される。移行はドナーシステムからデータのコピーを生成するため、その他の理由のために行われることもあり得るが、ドナーシステム１ａがドニーシステム１ｂにデータを移行する最も一般的な理由は、ドナーシステム１ａがドニーシステム１ｂに置き換えられる時である。この実施例ではドナーシステム１ａとドニーシステム１ｂは同様なハードウェアコンポーネントを有することを前提としており、従って以下の説明はこの実施例の両システムに当てはまる。しかし、別の実施例ではドニーストレージシステム１ｂはドナーストレージシステム１ａとは幾つかの異なるハードウェア要素から構成されていても良いことに注目願いたい。
【００１６】
各ストレージシステム１ａ、１ｂはディスクコントローラ１０とハードディスクドライブ等の、少なくとも１台のストレージデバイス１７を有する。ディスクコントローラ１０はＣＰＵ１１、メモリ１２、キャッシュメモリ１３、ＮＶＲＡＭ（不揮発性ランダムアクセスメモリ）１４、１個以上のネットワークインタフェース（Ｉ／Ｆ）１５及びディスクＩ／Ｆ１６を有することができ、これら各々について以下に、より詳細に記述する。
【００１７】
ＣＰＵ１１はストレージデバイス１７との間でのデータの保存や取り出し等のホストＩ／Ｏ（入出力）要求を処理するソフトウェアプログラムを実行する。本発明下でＣＰＵ１１が実行するソフトウェアプログラムを以下に、より詳細に記述する。
【００１８】
メモリ１２はＣＰＵ１１内で実行されるソフトウェアプログラムを保存したり、ストレージデバイス１７のデータを処理し管理するのに必要な情報を保存するのに使用される。キャッシュメモリ１３はホスト２との間で読み書きされるデータを一時的に保存したり、ホスト２の応答時間を縮めるためにデータをキャッシュするのに使用される。キャッシュメモリ１３はたとえストレージシステムの電源が故障してもデータを保存できるようにバッテリーバックアップを有するタイプのものにすることができる。更に、ストレージシステムの立ち上げの間にＣＰＵ１１で実行されるプログラムはＮＶＲＡＭ１４に保存される。ストレージシステム１ａ、１ｂが起動する時には、ＮＶＲＡＭ１４内のプログラムがメモリ１２にロードされ、ＣＰＵ１１がそれを実行する。
【００１９】
ネットワークＩ／Ｆ１５はネットワークスイッチ３経由でストレージシステム１ａ、１ｂをネットワーク１８に接続するために使用でき、この結果、ストレージシステムのホスト２との交信が可能になる。ネットワークＩ／Ｆ１５は又ドナーストレージシステム１ａがドニーストレージシステム１ｂと直接交信可能とするためにも使用できる。本実施例に於いては、ネットワークＩ／Ｆ１５はイーサネット（登録商標）インタフェースのネットワークインタフェースコントローラ（ＮＩＣ）とすることができるが、別のネットワークプロトコルを持つ他のタイプのインタフェースも使用可能である。
【００２０】
ディスクＩ／Ｆ１６はコントローラ１０を１台以上のストレージデバイス１７に接続する。本実施例では、ディスクＩ／Ｆ１６はファイバチャネル（ＦＣ）インタフェースであり、ストレージデバイス１７はファイバチャネルプロトコルに従ってディスクコントローラ１０がアクセスするＦＣディスクデバイスである。別の実装では、ディスクＩ／Ｆ１６はＡＴＡインタフェースとすることができる。この場合、ディスクＩ／Ｆ１６に接続されるストレージデバイス１７は、シリアルＡＴＡプロトコルに従ってディスクコントローラ１０がアクセスするＳ＿ＡＴＡ（シリアルＡＴＡ）タイプディスクデバイスとすることができる。更にそれに代わる別の実装では、ストレージデバイス１７はＮＦＳ（ネットワークファイルシステム）又はＣＩＦＳ（コモンインターネットファイルシステム）プロトコルでアクセスされるＮＡＳ（ネットワーク接続ストレージ）デバイスとすることができる。この場合、ディスクＩ／Ｆ１６はイーサネット（登録商標）インタフェースである。
【００２１】
ホスト２は、ＵＮＩＸ（登録商標）又はＷｉｎｄｏｗｓ（登録商標）オペレーティングシステムが走行する、典型的なＰＣ／ＡＴコンパティブルコンピュータ又はワークステーションとすることができる。別な実施例では、ホスト２はＯＳ／３９０（登録商標）又はＺ／ＯＳ（登録商標）等のオペレーティングシステムが走行するメインフレームコンピュータとすることができる。ホスト２は、少なくとも（各１個の）ＣＰＵ２１、メモリ２２、ディスクＩ／Ｆ２４及びネットワークインタフェースコントローラ（ＮＩＣ）等のネットワークＩ／Ｆ２３を含み、このネットワークＩ／Ｆ２３はネットワークスイッチ３に接続して、ホスト２がネットワーク１８経由でドナーストレージシステム１ａ及びドニーストレージシステム１ｂとの間で交信できるようにする。ホストコンピュータ２はネットワーク１８とスイッチ３経由でドナーストレージシステム１ａと交信し、ドナーストレージシステム１ａとの間でデータを保存したりアクセスすることができる。ドナーストレージシステム１ａのデータをドニーストレージシステム１ｂに移動する時には、ホスト２は交信のためにドニーストレージシステム１ｂに接続される。更に、ホスト２はまた、外部ストレージ５が自らのアクティブストレージとして使用され、ストレージシステム１ａ、１ｂは専らデータアーカイブ用にのみ使用されるような場合には、当該外部ストレージ５に接続されることもできる。
【００２２】
ネットワークスイッチ３はＬＡＮ（ローカルエリアネットワーク）スイッチとすることができ、ドナーストレージシステム１ａ、ドニーストレージシステム１ｂ、及び少なくとも１台のホスト２との間で交信を可能にするＬＡＮであるネットワーク１８の一部である。本実施例では、ネットワーク１８はイーサネット（登録商標）スイッチでよく、少なくとも１個のＬＡＮスイッチ３から構成される。当初はドナーストレージシステム１ａのみとホスト２がスイッチ３を介してネットワーク１８経由で相互接続される。ドニーストレージシステム１ｂは、インストールされる時にＬＡＮスイッチ３に接続される。本実施例ではスイッチ３の物理的なインタフェースはイーサネット（登録商標）である。
【００２３】
更に、ドニーストレージシステム１ｂのインストール時に、ドナーストレージシステム１ａとドニーストレージシステム１ｂを互いに接続するためにデータリンク４を使用できる。このようにして、データ移行が行われる時には、ドニーストレージシステム１ｂに移行するデータを、ネットワーク１８経由でなくデータリンク４経由で転送できる。データリンク４に使用される物理ネットワークＩ／Ｆ１５はＬＡＮスイッチ３に接続するために使用されるものと同じである。別の実施例では、データリンク４は存在せず、ドニーストレージシステム１ｂに移行するデータをＬＡＮスイッチ３経由で転送することも可能である。
【００２４】
機能図：
図２はドナーストレージシステム１ａ、ドニーストレージシステム１ｂ、及びホスト２の機能図を示す。ドナーストレージシステム１ａは、ホスト２上で走行する第一のアプリケーションプログラムインタフェース（ＡＰＩ１）２２ａ経由でホスト２からのアクセス要求を処理する、コマンド処理モジュール１１１ａを含む。コマンド処理モジュール１１１ａは、ホスト２から受信したデータのストレージデバイス１７上でのデータのロケーションを決定する。本実施例では、ストレージデバイス１７はファイバチャネルストレージデバイスなので、コマンド処理モジュール１１１ａは各データブロックを保存するストレージデバイス１７の論理ブロックアドレスを管理する。
【００２５】
ドニーストレージシステム１ｂは、コマンド処理モジュール１１１ａと類似のコマンド処理モジュール１１１ｂを含む。コマンド処理モジュール１１１ｂはホスト２上で走行する第二のアプリケーションプログラムインタフェース（ＡＰＩ２）２２ｂからのアクセス要求を処理し、ドニーストレージシステム１ｂのストレージデバイス１７にデータを保存する。
【００２６】
ドニーストレージシステム１ｂには移行処理モジュール１１３も含まれ、以下に、より詳細に論じるように、本発明に従ってドナーストレージシステム１ａからドニーストレージシステム１ｂにデータを移行するために使用される。移行処理モジュール１１３は好ましくはストレージシステム１ｂに置かれ、或いはリモートに置かれたメモリ１２、又は他のコンピュータ読み取り可能な媒体に保存されるソフトウェアとして具体化され、ドニーストレージシステム１ｂ上のＣＰＵ１１によって実行される。
【００２７】
ホスト２上のアプリケーションプログラム（ＡＰ）２１はドナーストレージシステム１ａ又はドニーストレージシステム１ｂにアクセスするプログラムである。ＡＰ２１がドナーストレージシステム１ａ又はドニーストレージシステム１ｂにアクセスする場合は、ＡＰＩ１（２２ａ）又はＡＰＩ２（２２ｂ）経由で行われる。
【００２８】
第一のアプリケーションプログラムインタフェース（ＡＰＩ１）２２ａはＡＰ２１がドナーストレージシステム１ａのデータにアクセスするために使用される。ＡＰＩ１  ２２ａはプログラムライブラリを有し、一般にドナーストレージシステム１ａのベンダーによりドナーストレージシステム１ａと共に提供される。同様に第二のアプリケーションプログラムインタフェース（ＡＰＩ２）２２ｂはＡＰ２１がドニーストレージシステム１ｂのデータにアクセスするために使用される。ＡＰＩ２  ２２ｂはプログラムライブラリを有し、一般にドニーストレージシステム１ｂのベンダーによりドニーストレージシステム１ｂと共に提供される。
【００２９】
オペレーティングシステム２３もホスト上に置かれており、ＡＰ２１、ＡＰＩ１  ２２ａ、又はＡＰＩ２  ２２ｂを実行可能にする基本インフラストラクチャを提供する。別の実装では、ＡＰＩ１  ２２ａ及び（又は）ＡＰＩ２  ２２ｂはオペレーティングシステム２３の一部として実装してもよい。ドニーストレージシステム１ｂをインストールする前は、ＡＰＩ２  ２２ｂはホスト２に存在しないが、ＡＰ２１、ＡＰＩ１  ２２ａ、及びオペレーティングシステム２３はホスト２にインストールされている。ドニーストレージシステム１ｂがシステムにインストールされると、ＡＰＩ２  ２２ｂもホスト２上にインストールされる。これらのプログラムの機能と相互関係を以下に、より詳細に論じる。
【００３０】
オブジェクト／コンテンツ：
図３は、ＣＡＳシステム（ドナーストレージシステム１ａ又はドニーストレージシステム１ｂ）に保存されるオブジェクトデータ構造の例を示す。ただし具体的な実装次第では付加的な又は異なったメタデータが含まれることもあり得る。このデータ構造を図示の実施例ではオブジェクト２００と呼ぶ。オブジェクト２００はコンテンツ２１０とメタデータ２２０から構成される。コンテンツ２１０はＡＰＩ１  ２２ａ又はＡＰＩ２  ２２ｂ経由でＡＰ２１が書き込むデータであり、メタデータ２２０はコンテンツ２１０の属性情報である。以下はメタデータ２２０に含まれる情報の例である。
【００３１】
オブジェクトＩＤ２２１：
このフィールドは各コンテンツの固有な識別番号を含む。ＣＡＳシステム（ドナーストレージシステム１ａ又はドニーストレージシステム１ｂ）は、オブジェクト２００を保存する前に、ＣＡＳシステム内で固有なオブジェクトＩＤ２２１を計算してオブジェクト２００に割り当てる。オブジェクトＩＤ２２１はコンテンツ２１０から生成され或いは計算され、コンテンツがシステム内で固有であれば、オブジェクトＩＤ２２１も又固有となる。好適な実施例では、オブジェクトＩＤ２２１を生成するためにＳＨＡ−１又はＭＤ５等のハッシュアルゴリズムが使用されるが、他の方法も使用できる。
【００３２】
コンテンツサイズ２２２：
このフィールドはコンテンツ２１０のサイズを示す。
【００３３】
生成日時２２３：
このフィールドはオブジェクト２００がＣＡＳシステムに最初に保存された日時を保存するために使用される。
【００３４】
アクセス日時２２４：
このフィールドはオブジェクト２００がＣＡＳシステム内で最後にアクセス（読み書き）された日時を保存するために使用される。
【００３５】
保持期間２２５：
本実施例では、ユーザはオブジェクト２００を或る期間書き込み保護状態に設定することができる。ユーザは、オブジェクトを書き込み保護状態に設定する時には、このオブジェクトを書き込み保護状態にしておく期間も指定できる。この期間を「保持期間」と呼び、このフィールドに保存される。ユーザがオブジェクトを書き込み保護状態に設定しない場合、保持期間２２５としてヌル値が設定される。
【００３６】
コメント２２６：
ユーザは一つ又は複数のコメントをＡＰＩ１  ２２ａ又はＡＰＩ２  ２２ｂ経由で各オブジェクト２００に追加できる。コメント２２６はコメントフィールドに保存され、データのタイプや具体的な実装に応じてオブジェクトのインデックス付けや検索の助けをしたり、文脈情報の提供、その他の目的に使用することができる。
【００３７】
アプリケーションプログラムインタフェース：
ホスト２がＣＡＳシステム（ドナーストレージシステム１ａ又はドニーストレージシステム１ｂ）にアクセスする時には、各コマンド処理モジュール１１１ａと１１１ｂは、それぞれアプリケーションプログラムインタフェース２２ａと２２ｂからコマンドを受信する。コマンド処理モジュール１１１ａと第一のアプリケーションプログラムインタフェースＡＰＩ１  ２２ａとの間、又はコマンド処理モジュール１１１ｂと第二のアプリケーションプログラムインタフェースＡＰＩ２  ２２ｂとの間で交換されるコマンドは一般的に、ドナーストレージシステム１ａ又はドニーストレージシステム１ｂのベンダーが定義する専用のコマンドである。別の実施例では、コマンドはＮＦＳやｈｔｔｐのような標準（又はデファクトスタンダードの）Ｉ／Ｏプロトコルに基づいて定義されるかもしれない。
【００３８】
本実施例では、各ＡＰＩ１  ２２ａとＡＰＩ２  ２２ｂはＣプログラミング機能のセットを有するＣ−プログラミングライブラリの形式で与えられる。ＡＰ２１は、その実行時にＡＰＩ１  ２２ａとＡＰＩ２  ２２ｂの一方とリンクされる。即ち、ＡＰ２１はＡＰＩ１  ２２ａ又はＡＰＩ２  ２２ｂで定義された機能を呼び出すようにプログラムされる。ＡＰ２１がＣＡＳシステムのデータを読み書きする時には、ＡＰＩ１  ２２ａ又はＡＰＩ２  ２２ｂで定義された機能が呼び出される。以下はＡＰＩ１  ２２ａ又はＡＰＩ２  ２２ｂで定義された典型的な共通機能についての簡単な説明である。
【００３９】
Ｃｒｅａｔｅ＿ｏｂｊｅｃｔ（）（オブジェクト生成）：
この機能はＣＡＳシステムに於いてオブジェクトを生成し保存するために使用される。オブジェクト生成機能を使用する時には、ＡＰ２１はコンテンツ情報を指定し、必要時にはＡＰＩ１  ２２ａ又はＡＰＩ２  ２２ｂ経由で付加的なコメント情報を伝える。ＣＡＳシステムはこれに応答して、オブジェクトを生成し、オブジェクトＩＤ情報をＡＰ２１に返送する。
【００４０】
Ｒｅａｄ＿ｏｂｊｅｃｔ（）（オブジェクト読み出し）：
この機能はＣＡＳシステムからオブジェクトを取り出すために使用される。この機能を使用する時には、ＡＰ２１はオブジェクトＩＤを指定し、これに応答してＣＡＳシステムはオブジェクトコンテンツとメタデータをホストに返送する。
【００４１】
Ｗｒｉｔｅ＿ｏｂｊｅｃｔ（）（オブジェクト書き込み）：
この機能は既に現在ＣＡＳシステムに存在するオブジェクトを更新するために使用される。
【００４２】
Ｓｅｔ＿ｒｅｔｅｎｔｉｏｎ（）（保持期間設定）：
この機能は指定されたオブジェクトの保持期間２２５を設定するために使用される。ただし、保持期間２２５は日付情報が保持期間２２５に設定されていない場合或いは保持期間が満了した場合のみ修正可能である。この機能を用いるときにはＡＰ２１はオブジェクトＩＤを指定する。
【００４３】
Ｍｏｄｉｆｙ＿ａｔｔｒｉｂｕｔｅ（）（属性修正）：
この機能はメタデータ２２０の情報を修正するために使用される。この機能によって必ずしもすべての情報が修正できるわけでない。本実施例では、この機能によって修正できる情報はコメント２２６と保持期間２２５のみである。ただし、保持期間２２５は日付情報が保持期間２２５に設定されていない場合或いは保持期間が満了した場合のみ修正可能である。本実施例では保持期間を設定／変更する際は、ユーザは保持期間設定機能か属性修正機能のいずれかを使用できる。別の実施例では、保持期間設定機能はＡＰＩ１  ２２ａ又はＡＰＩ２  ２２ｂに於いてサポートされていない、即ち属性修正機能のみが保持期間２２５を設定／変更するために存在することもある。
【００４４】
Ｌｉｓｔ＿ｏｂｊｅｃｔ（）（オブジェクトリスト）：
このコマンドは現在ＣＡＳシステムに保存されているオブジェクトのすべてのオブジェクトＩＤを取得するために使用される。
【００４５】
Ｑｕｅｒｙ（）（問い合わせ）：
このコマンドは指定された条件に合致するオブジェクトＩＤのリストを取得するために使用される。この機能を使用する時には、ＡＰ２１は一つ以上の条件を指定できる。例えば、ユーザが或る期間に生成されたオブジェクトＩＤのリストを取得したい時には、ＡＰ２１は生成日時情報２２３を指定して問い合わせ機能を発する。次いでＣＡＳシステムは指定された期間に生成されたオブジェクトのオブジェクトＩＤを返送する。
【００４６】
Ｌｉｓｔ＿ｍａｐｐｉｎｇ（）（マッピングリスト）：
このコマンドは、本発明に従ってドナーストレージシステム１ａからドニーストレージシステム１ｂにデータの移行が行われた時に、（以下に図６を参照して詳細に論じられる）オブジェクトマッピング情報７００を取得するために使用される。ドナーストレージシステム１ａ及びＡＰＩ１  ２２ａはこの機能をサポートする必要はないが、ドニーストレージシステム１ｂ及びＡＰＩ２  ２２ｂはこの機能をサポートしなければならない。
【００４７】
ＣＡＳでのオブジェクト管理：
図４はドナーストレージシステム１ａが維持するオブジェクト管理テーブル５００を示す。本実施例ではオブジェクト管理テーブル５００はドナーストレージシステム１ａのキャッシュメモリ１３に保存される。別の実施例では、オブジェクト管理テーブル５００はストレージデバイス１７に保存することができる。オブジェクト管理テーブル５００は各オブジェクト２００のロケーション情報を記録するために使用され、以下のフィールドを含む。
【００４８】
オブジェクトＩＤ５０１：
このフィールドはドナーストレージシステム１ａが現在維持する全てのオブジェクト２００のオブジェクトＩＤ情報を含む。
【００４９】
ディスクロケーション１  ５０２：
このフィールドにはオブジェクトＩＤ５０１が指定するコンテンツ２１０のロケーション情報が保存される。本実施例では、ロケーション情報はストレージデバイス１７内のＬＢＡ（論理ブロックアドレス）として保存される。別の実施例で、ストレージデバイス１７がＮＡＳデバイスの場合、ロケーション情報はファイル名情報とすることができる。
【００５０】
ディスクロケーション２  ５０３：
このフィールドはオブジェクトＩＤ５０１が指定するメタデータのロケーション情報を含み、同様にＬＢＡとして保存される。本実施例では、コンテンツ２１０とメタデータ２２０は、必ずしもドナーストレージシステム１ａ内でお互いが隣接するロケーションに保存される必要はない。従って、ドナーストレージシステム１ａはコンテンツ２１０とメタデータ２２０の両ディスクロケーションを別々に維持する。
【００５１】
図５はドニーストレージシステム１ｂが維持するオブジェクト管理テーブル６００を示す。ドニーオブジェクト管理テーブル６００の構成要素はドナーオブジェクト管理テーブル５００と同様である。従って、ドニーオブジェクト管理テーブル６００はドニーストレージシステム１ｂのキャッシュメモリ１３に保存される。しかし別の実施例では、ドニーオブジェクト管理テーブル６００はドニーストレージシステム１ｂのストレージデバイス１７に保存できる。ドニーオブジェクト管理テーブル６００は以下のフィールドを含む。
【００５２】
オブジェクトＩＤ６０１：
上述のオブジェクトＩＤ５０１と同様に、このフィールドはドニーストレージシステム１ｂが現在維持するすべてのオブジェクト２００の固有のオブジェクトＩＤを含む。
【００５３】
ディスクロケーション１  ６０２：
上述のディスクロケーション１  ５０２と同様に、このフィールドはドニーストレージシステム１ｂの各オブジェクトのコンテンツ２１０が保存されるロケーション情報を含む。
【００５４】
ディスクロケーション２  ６０３：
上述のロケーション２  ５０３と同様に、このフィールドはドニーストレージシステム１ｂの各オブジェクトの各メタデータ２２０が保存されるロケーション情報を含む。
【００５５】
以前のオブジェクトＩＤ６０４：
このフィールドはドナーストレージシステム１ａから移行されたオブジェクトに使用される。ドニーストレージシステム１ｂがドナーストレージシステム１ａからオブジェクトをコピーする時、ドナーストレージシステム１ａが当該オブジェクトに割り当てていたオブジェクトＩＤ情報は以前のオブジェクトＩＤフィールド６０４に保存される。以前のオブジェクトＩＤフィールド６０４の情報の使用方法の詳細は追って記述する。
【００５６】
更に、図６はマッピング情報７００を示し、ドニーシステム１ｂの新たなオブジェクトＩＤ７０１とドナーシステム１ａの以前のオブジェクトＩＤ７０２との間のマッピングを提供する。従って、マッピング情報７００は上述のオブジェクトＩＤフィールド６０１に相当するオブジェクトＩＤフィールド７０１と、上述の以前のオブジェクトＩＤフィールド６０４に相当する以前のオブジェクトＩＤフィールド７０２を含む。図８のステップ１００７に関連して以下により詳細に説明するように、マッピング情報７００はユーザ又はホストに伝えられる。
【００５７】
アプリケーションによるコンテンツ管理：
本実施例では、ＡＰ２１はリレーショナルデータベース（ＲＤＢ）であり、ドナーストレージシステム１ａ又はドニーストレージシステム１ｂに加えて、外部ストレージシステム５にデータを保存する。図７はＡＰ２１が外部ストレージシステム５に保存するデータベーステーブル８００の一例を示す。列８０１から８０５は、エントリーのＩＤ８０１、ユーザ８０２、タイトル８０３、説明８０４、等のテーブル８００の属性であり、列８０５にはＡＰ２１によって維持されるオブジェクトＩＤが保存される。一つの実施例では、テーブル８００は外部ストレージシステム５に保存され、一方テーブル８００にリストアップされたオブジェクトは（移行する前は）ドナーストレージシステムに保存されている。ＡＰ２１はユーザの要求に従って、データベーステーブル８００に情報を保存するか又は保存された情報を取り出す。ＣＡＳシステムのオブジェクトを取り出す必要がある時には、ＡＰ２１は指定されたオブジェクトをオブジェクトＩＤ８０５を使用して取り出す。オブジェクトを保存する必要がある時には、ＡＰ２１は（移行前は）ＡＰＩ１  ２２ａ又は（移行後は）ＡＰＩ２  ２２ｂを使用してオブジェクトを保存する。更に、オブジェクトが生成される時にはＣＡＳシステムからオブジェクトＩＤが返送されるので、ＡＰ２１は受信したオブジェクトＩＤ情報をデータベーステーブル８００に保存する。
【００５８】
移行プロセス：
図８は本発明の第一の実施例での移行動作のプロセスフローの概要を示す。このプロセスは以下のステップを含む。
【００５９】
ステップ１００１：
最初に、ユーザ又はホスト２はデータ損失になり得る移行中の書き込み操作を阻止するために、アプリケーションプログラム２１の実行を停止する。
【００６０】
ステップ１００２：
ユーザはネットワーク１８からドナーストレージシステム１ａを切り離し、ドナーストレージシステム１ａをドニーストレージシステム１ｂに接続する。切り離しプロセスは、ドナーストレージシステム１ａがそれ以上ホスト２と交信できないようにドナーストレージシステム１ａとネットワーク１８の間に存在するケーブルを物理的に取り除くことで行うことができる。別の実施例では、ユーザがドナーストレージシステム１ａに割り当てたＩＰアドレスを変更する等によりネットワーク構成を変更することで、論理的に行うことができる。
【００６１】
ステップ１００３：
ユーザはドニーストレージシステム１ｂをホスト２と交信できるようにする。接続プロセスは、ドニーストレージシステム１ｂとネットワーク１８間にケーブルを物理的に設置することによって行うことができ、更に必要な場合は、ユーザはドニーストレージシステム１ｂのＩＰアドレスをドナーストレージシステム１ａに割り当てられていたのと同じＩＰアドレスに設定しなければならないこともある。別の実施例では、ＩＰアドレス等のネットワーク構成を論理的に変更することで接続を行うことができる。更に、データリンク４を使用する場合は、その接続はこの時点で行われる。ドニーストレージシステム１ｂを接続の後、ユーザは移行プロセスを開始できる。
【００６２】
ステップ１００４：
図９に関連して以下により詳細に記述するように、移行はドニーストレージシステム１ｂに於いて行われる。
【００６３】
ステップ１００５：
ユーザ又はホスト２はドニーストレージシステム１ｂから移行プロセスが完了したとの通知を受信する。
【００６４】
ステップ１００６：
ユーザはホスト２に新たなＡＰＩ２  ２２ｂをインストールする。或る場合には、ＡＰ２１はアンインストールされ、ユーザはＡＰＩ２  ２２ｂを使用する、新たなアプリケーションプログラム（図２には図示されていない）又はドニーストレージシステム１ｂにアクセスするように特に構成されたＡＰ２１の変更バージョンをインストールしなければならないこともある。
【００６５】
ステップ１００７：
ユーザ又はホスト２はドニーストレージシステム１ｂからオブジェクトマッピング情報７００を受信する。マッピング情報に基づいてコンテンツ管理情報８００が更新され、ドニーストレージシステム１ｂが割り当てた新たなオブジェクトＩＤ８０５を使用してドニーストレージシステム１ｂの各オブジェクトにアクセス可能になる。ユーザがドニーストレージシステム１ｂから受信するオブジェクトマッピング情報７００は、ドナーストレージシステム１ａからドニーストレージシステム１ｂに移行した各オブジェクトに割り当てられたオブジェクトＩＤを特定する。前述のように、図６はオブジェクトマッピング情報７００の例を示し、ドニーストレージシステム１ｂが各オブジェクトに割り当てたオブジェクトＩＤ７０１のリスト、及び以前オブジェクトがドナーストレージシステム１ａにあった時にオブジェクトに割り当てられていた以前のオブジェクトＩＤ７０２のリストを含む。これに代って、ドニーストレージシステム１ｂはホスト２にコンテンツ管理情報テーブル８００を更新するように要求せずに、オブジェクト管理テーブル６００を維持し、ホスト２からの将来の読み出し要求に応答するためにこの情報を使用することもできる。
【００６６】
ステップ１００８：
ステップ１００７が完了後、ユーザはＡＰ２１を再開しプロセスは終了する。プロセスが完了後、ユーザはシステムからドナーストレージシステム１ａを切り離しても良い。
【００６７】
図９はドニーストレージシステム１ｂで実行される移行動作のプロセスフローを示す。図９に示す移行プロセスは以下のステップを含む。
【００６８】
ステップ１１０１：
ドニーストレージシステム１ｂの移行処理モジュール１１３はドナーストレージシステム１ａへのアクセスの準備を行う。本実施例では、ドナーストレージシステム１ａはホスト２又はドニーストレージシステム１ｂがオブジェクトにアクセスを試みる際には、認証機能を持つことを前提とする。従って、ドニーストレージシステム１ｂはドナーストレージシステム１ａにログオンして、認証プロセスを実行する。パスワード等の認証情報がユーザによってドニーストレージシステム１ｂに設定される。
【００６９】
ステップ１１０２：
ステップ１１０１の後、移行処理モジュール１１３は現在ドナーストレージシステム１ａに保存されている全てのオブジェクトのオブジェクトＩＤのリストをドナーストレージシステム１ａから取得する。オブジェクトＩＤのリストを取得するために、移行処理モジュール１１３はドナーストレージシステム１ａにＬｉｓｔ＿ｏｂｊｅｃｔ（）又はＱｕｅｒｙ（）機能を発行する。従って、移行処理モジュール１１３はＡＰＩ１  ２２ａについて上述したＬｉｓｔ＿ｏｂｊｅｃｔ（）又はＱｕｅｒｙ（）機能に等しい（又は類似の）機能を有することができる。
【００７０】
ステップ１１０３：
オブジェクトＩＤのリストに基づいて、移行処理モジュール１１３はドナーストレージシステム１ａから一つのオブジェクトを取り出す。こうして、コンテンツとメタデータが別々のロケーションに保存される本発明の実施例に於いては、コンテンツが取り出され、更にそのコンテンツのメタデータも同様に取り出される。
【００７１】
ステップ１１０４：
移行処理モジュール１１３はステップ１１０３で取り出したオブジェクトのコンテンツに従い新たなオブジェクトＩＤをハッシュアルゴリズム等によって計算し、取り出したメタデータに存在するパラメータやドニーストレージシステム１ｂに対して設定されている付加的なコメント等の新たなパラメータに従ってオブジェクトの新たなメタデータを構成する。移行処理モジュール１１３はオブジェクトコンテンツと各オブジェクトの新たなオブジェクトＩＤを含むメタデータをストレージデバイス１７に保存する。
【００７２】
ステップ１１０５：
移行処理モジュール１１３は新たなオブジェクトＩＤによりマッピング情報７００を更新し、更に新たに生成された各オブジェクトのコンテンツとメタデータが保存されるロケーションを管理するオブジェクト管理テーブル６００も更新する。前に論じたように、各オブジェクトに対してコンテンツとメタデータは分離したロケーションに或いは隣接して保存することができる。
【００７３】
ステップ１１０６：
移行処理モジュール１１３は、ステップ１１０２で取得したオブジェクトＩＤのリストにリストアップされた全てのオブジェクトが移行し終わったかチェックする。もし全てのオブジェクトが移行済みならばプロセスはステップ１１０６に進む。もしそうでなければ、プロセスはステップ１１０３に戻る。
【００７４】
ステップ１１０７：
一旦全てのオブジェクトがドナーストレージシステム１ａからドニーストレージシステム１ｂに移行し終わったなら、移行処理モジュール１１３はホスト２に移行が完了したことを通知する。別の実施例では、（図には示されていない）管理コンソールが存在し、移行完了メッセージがユーザのために管理コンソールのＧＵＩスクリーンに表示される。
【００７５】
ステップ１１０８：
移行処理モジュール１１３はオブジェクトマッピング情報７００をホスト２に伝える。別の実施例では、マッピング情報は管理コンソールに送信される。オブジェクトマッピング情報７００に基づいて、ユーザ又はＡＰ２１はコンテンツ管理情報８００を更新する。
【００７６】
第二の実施例：
第一の実施例では、ホストアプリケーション（ＡＰ２１）は全てのオブジェクトがドニーストレージシステム１ｂに移行し終わるまで停止していなければならない（図８のステップ１００１−１００８）。移行されるデータ量が増大すると、長時間のダウンタイムが発生し、そのことは多くの産業で望ましくない。第二の実施例で説明する方法は第一の実施例の方法よりもダウンタイムを短縮する。第二の実施例は、ＷＯＲＭ（ライトワンス、リードメニー）システムの場合のように、オブジェクトがドナーストレージシステム１ａに一旦書き込まれてしまうとホストはこのオブジェクトを更新したり上書きしたりしないシステムで有用である。この場合、ホストはドナーストレージ１ａに新たなオブジェクトの書き込みを続けることができ、一方で既存のオブジェクトはドニーストレージシステムに移行される。一旦既存のオブジェクトが移行されると、ドニーストレージはホストに接続され、次いで最初の移行が行われている間に生成された残りのオブジェクトがドニーストレージシステム１ｂに移行される。図１０は第二の実施例による移行動作の概要を示しており、以下のステップを含む。
【００７７】
ステップ２００１：
ユーザはドナーストレージシステム１ａをドニーストレージシステム１ｂと接続する。接続プロセスはドナーストレージシステム１ａとドニーストレージシステム１ｂ間をデータリンク４として物理的にケーブル接続するか、又はネットワーク１８経由で行われることも可能である。この時点では、ドニーストレージシステム１ｂはホスト２には接続されていない。
【００７８】
ステップ２００２：
ユーザはＡＰ２１を停止し、移行処理モジュール１１３を初期化することによりドナーストレージシステム１ａからドニーストレージシステム１ｂにデータ移行を開始する。
【００７９】
ステップ２００３：
ユーザはＡＰ２１を再開し、ＡＰ２１が以前と同様にドナーストレージシステム１ａにアクセスし続けることができるようにする。
【００８０】
ステップ２００４：
以下に図１１のステップ２１０１―２１０６に関連してより詳細に記述するように、ドニーストレージシステム１ｂによって最初の移行プロセスが実行される。
【００８１】
ステップ２００５：
ユーザはドナーストレージシステム１ａとドニーストレージシステム１ｂ間の移行が完了したかチェックするか、又は最初の移行の完了通知を受信するまで待機する。最初の移行が完了したら、プロセスはステップ２００６に進む。
【００８２】
ステップ２００６：
一旦最初の移行が完了したら、ユーザは再びＡＰ２１を停止しホスト２に新たなＡＰＩ２  ２２ｂをインストールする。場合によっては、ＡＰ２１をホスト２からアンイストールしなければならないこともあり、ユーザはＡＰＩ２  ２２ｂを使用してドニーストレージシステム１ｂにアクセスするように特化された、新たなアプリケーションプログラム又はＡＰ２１の変更バージョンをインストールしなければならないことがある。
【００８３】
ステップ２００７：
ユーザはドナーストレージシステム１ａをホスト２と交信できる状態から切り離し、ドニーストレージシステム１ｂをホスト２に接続して交信できるようにする。接続プロセスはドニーストレージシステム１ｂとネットワーク１８間にケーブルを物理的に取り付けることによって行うことができ、必要な場合には、ユーザはドニーストレージシステム１ｂのＩＰアドレスを以前にドナーストレージシステム１ａに割り当てられていたのと同じＩＰアドレスに設定しなければならないこともある。別の実施例では、ＩＰアドレスを論理的に変更する等によりネットワーク構成を変更することで接続を行うことができる。ドナーストレージシステム１ａとドニーストレージシステム１ｂ間の接続も元のままに保たれる。
【００８４】
ステップ２００８：
ドニーストレージシステム１ｂは、図１１のステップ２１０８―２１１２を実行することにより、残りのオブジェクトのコピーを開始する。この残りのオブジェクトとはステップ２００３と２００６の間にホスト２（ＡＰ２１）が新たに生成したドナーストレージシステム１ａのオブジェクトである。残りのオブジェクトをコピーするために、一つの方法では、ユーザは、ドニーストレージシステム１ｂにステップ２００３が開始した時刻後に生成された全てのオブジェクトを取り出すように命令する。
【００８５】
ステップ２００９：
一旦この二次の移行が完了したら、ユーザは移行が完了したという通知をホスト、或いは管理ターミナル、等にて受信する。
【００８６】
ステップ２０１０：
ユーザ又はホスト２はドニーストレージシステム１ｂからオブジェクトマッピング情報７００を受信する。このマッピング情報に基づいてコンテンツ管理情報８００が更新され、ドニーストレージシステム１ｂが割り当てた新たなオブジェクトＩＤを使用してドニーストレージシステム１ｂの各オブジェクトにアクセスできるようになる。
【００８７】
ステップ２０１１：
ステップ２０１０が完了後、ユーザはＡＰ２１を再開し、プロセスは終了する。プロセスが完了後、ユーザはシステムからドナーストレージシステム１ａを取り除くことができる。
【００８８】
図１１はドニーストレージシステム１ｂで実行される第二の実施例での移行動作のフローを示す。図１１は以下のステップを含む。
【００８９】
ステップ２１０１：
このステップは上記のステップ１１０１と同じである。
【００９０】
ステップ２１０２：
ステップ１１０２と同様に、移行処理モジュール１１３はドナーストレージシステム１ａからオブジェクトＩＤのリストを取り出す。しかしこのステップでのオブジェクトＩＤの受信リストは図１０のステップ２００２をユーザが実行する直前、即ちＡＰ２１が停止される直前、の時点にドナーストレージシステム１ａに存在していたオブジェクトＩＤを含む。移行処理モジュール１１３はこのステップではステップ２００２の後に生成されるオブジェクトＩＤを受信していない。従って、本発明のこの実施例では、ＡＰ２１を停止し、移行処理モジュールがオブジェクトＩＤのリストを取得し、その後ＡＰ２１を再開できる。ＡＰ２１を再開する時刻は記録され、その時刻後に生成される全てのオブジェクトＩＤをステップ２１０９の間に取り出し可能になる。
【００９１】
ステップ２１０３：
ステップ１１０３と同様に、移行処理モジュール１１３はオブジェクトＩＤのリストに基づいてドナーストレージシステム１ａから各オブジェクトを取り出す。
【００９２】
ステップ２１０４：
ステップ１１０４と同じ。
【００９３】
ステップ２１０５：
ステップ１１０５と同じ。
【００９４】
ステップ２１０６：
ステップ１１０６と同じ。
【００９５】
ステップ２１０７：
ステップ１１０７と同様に、移行処理モジュール１１３は最初の移行が完了したという通知をユーザ又はホストに送信し、次いでユーザは図１０のステップ２００５−２００７を実行する。
【００９６】
ステップ２１０８：
移行処理モジュール１１３はユーザが図１０のステップ２００５−２００７を実行し終わるのを待ち、次にプロセスはステップ２１０９に進める状態になる。
【００９７】
ステップ２１０９：
このプロセスはホスト２又はユーザが起動する。図１０のステップ２００８でユーザがドニーストレージシステム１ｂに残りのオブジェクトの移行を開始するように命令するとこのプロセスは開始する。このプロセスも又第一の実施例のステップ１１０２と同様なプロセスである。移行処理モジュール１１３はドナーストレージシステム１ａからオブジェクトＩＤのリストを取り出す。このステップで受信するオブジェクトＩＤは図１０のステップ２００３と２００６の間にホスト２がドナーストレージシステム１ａ上で生成したオブジェクトのオブジェクトＩＤである。
【００９８】
ステップ２１１０：
このステップで、全ての追加のオブジェクトを移行完了するまで上記のステップ２１０３から２１０６を繰り返し実行する。
【００９９】
ステップ２１１１：
ステップ１１０７と同じ。
【０１００】
ステップ２１１２：
ステップ１１０８と同じ。
【０１０１】
第三の実施例：
本発明の第二の実施例ではホスト２上のＡＰ２１のダウンタイムは本発明の第一の実施例よりも短くなるが、依然としてステップ２００６と２０１１の間でダウンタイムが存在する。第三の実施例では、移行は最小のダウンタイムでほぼオンラインで遂行される。第二の実施例と同様に、第三の実施例は、ＷＯＲＭ（ライトワンス、リードメニー）システムの場合のように、オブジェクトが一旦ドナーストレージシステム１ａに書き込まれたら、ホストは当オブジェクトを更新したり上書きしたりしないシステムに於いて有用である。第三の実施例に於いては、ホストはドニーストレージシステム１ｂに任意の新たなオブジェクトを書き込み、一方、既存のオブジェクトはドナーストレージからドニーストレージに移行される。更に、ホストが未だ移行が済んでいないオブジェクトにアクセスを要求したならば、ドニーストレージはドナーストレージから当オブジェクトを取り出し、そのオブジェクトをホストに返送する。図１２は第三の実施例での移行動作の概要を示し、以下のステップを含む。
【０１０２】
ステップ３００１：
ステップ２００６と同様に、ユーザはＡＰ２１を停止し、新たなＡＰＩ２  ２２ｂをインストールする。ユーザは更に、ＡＰＩ２  ２２ｂと連携するように構成される新たなＡＰ２１又はその変更バージョンをインストールすることもできる。
【０１０３】
ステップ３００２：
ステップ１００２と同様に、ユーザはドナーストレージシステム１ａを、ＬＡＮ１８から切り離しドニーストレージシステム１ｂに接続する。
【０１０４】
ステップ３００３：
ステップ１００３と同様に、ユーザはホスト２を一方のストレージシステム１ｂと接続する。接続動作の後、ユーザはドニーストレージシステム１ｂに移行を開始するように命令する。
【０１０５】
ステップ３００４：
ユーザはＡＰ２１を再開する。ＡＰ２１はＡＰＩ２  ２２ｂ経由でドニーストレージシステム１ｂにアクセスする。ドニーストレージシステム１ｂがアクセス要求を処理する方法は図１３と１４に詳細に説明される。
【０１０６】
ステップ３００５：
図９で詳細に説明されたプロセスと実質的に同じプロセスを使用して、ドナーストレージシステム１ａからドニーストレージシステム１ｂにオブジェクトの移行が、全てのオブジェクトが移行完了するまで実行される。従って第一の実施例に関連して図９を上記で説明済みなので、ここで再び説明することはしない。一旦全てのオブジェクトが移行されたら、ドニーストレージシステム１ｂからユーザに通知が送信される。
【０１０７】
ステップ３００６：
ユーザはドナーストレージシステム１ａからドニーストレージシステム１ｂへのオブジェクトの移行が完了したという通知を受信する。
【０１０８】
ステップ３００７：
ユーザはシステムからドナーストレージシステム１ａを取り除くことができる。
【０１０９】
かくしてステップ３００３で移行を開始する時に、ドニーストレージシステム１ｂはドナーストレージシステム１ａからのデータのコピーを開始する。ドニーストレージシステム１ｂにオブジェクトを移行するプロセスは第一の実施例（図９）のプロセスとほぼ同じであるが、もしホスト２又はユーザがオブジェクトマッピング情報７００を取り出す要求を明確に行わないならばステップ１１０８（オブジェクトＩＤマッピングを伝えるステップ）は必ずしも実行されないことが異なる。かくしてドニーストレージシステム１ｂはマッピング情報７００を維持して、これをアクセス要求の遂行のために使用しても良い。これとは別に、一旦移行が完了したら、ドニーストレージシステム１ｂはホスト２又はユーザにマッピング情報７００を伝えて、テーブル８００を更新可能にしても良い。更に、第一の実施例では移行プロセスの間ＡＰ２１を停止したのに対し、この第三の実施例では、ドニーストレージシステム１ｂは移行プロセスを実行中にも読み書き要求を処理することができる。このことはＡＰＩ２  ２２ｂをインストールする時間とドニーストレージ１ｂをホスト２に接続するのに必要な時間を除いて、ＡＰ２１とホスト２のダウンタイムを実質的に排除する。
【０１１０】
図１３はドニーストレージシステム１ｂがホスト２から読み出し要求を受信した時にドニーストレージシステム１ｂで実行される動作のプロセスフローを示す。図１３のプロセスは以下のステップを含む。
【０１１１】
ステップ３１００：
ドニーストレージシステム１ｂはホスト２からオブジェクトの読み出し要求を受信する。読み出し要求はオブジェクトのオブジェクトＩＤによってオブジェクトを指定する。
【０１１２】
ステップ３１０１：
ドニーストレージシステム１ｂのコマンド処理モジュール１１１ｂが読み出し要求を受信すると、このコマンド処理モジュールは、読み出し要求でホスト２が指定したオブジェクトＩＤを持つオブジェクトをドニーストレージシステム１ｂが維持しているかどうかをチェックする。ホスト２が指定したオブジェクトＩＤがオブジェクト管理テーブル６００のオブジェクトＩＤ列６０１に含まれているかどうかの判定が行われる。もしコマンド処理モジュール１１１ｂが、指定されたオブジェクトをドニーストレージシステム１ｂが維持していると判定したならば、プロセスはステップ３１０２に進む。しかしながら、もしオブジェクトＩＤがオブジェクト管理テーブル６００のオブジェクトＩＤ列６０１に存在しないならば、プロセスはステップ３１１１に進む。
【０１１３】
ステップ３１０２：
指定されたオブジェクトが既にドニーストレージシステム１ｂにあるので、コマンド処理モジュールはオブジェクト管理テーブル６００の情報を使用してドニーストレージシステム１ｂのストレージデバイス１７から指定されたオブジェクトＩＤに対応するオブジェクトを取り出す。
【０１１４】
ステップ３１０３：
コマンド処理モジュール１１１ｂは要求者に取り出したオブジェクトを返送する。
【０１１５】
ステップ３１１１：
もしオブジェクトがドニーストレージシステム１ｂに存在していないならば、コマンド処理モジュール１１１ｂは、移行プロセスを開始した時に（図９の）ステップ１１０２でドナーストレージシステム１ａから受信したオブジェクトＩＤのリストにホスト２からの要求で指定されたオブジェクトＩＤが含まれているかチェックする。もし指定されたオブジェクトＩＤがリストに存在するならば、プロセスはステップ３１１２に進む。もしそうでないならば、コマンド処理モジュール１１１ｂはドニーストレージシステム１ｂにもドナーストレージシステム１ａにもオブジェクトを見つけることができないので、終了してＡＰＩ２  ２２ｂにエラーを送信する。
【０１１６】
ステップ３１１２：
コマンド処理モジュール１１１ｂは移行処理モジュール１１３に、指定されたオブジェクトをドナーストレージシステム１ａから移行するように命令する。移行処理モジュール１１３は指定されたオブジェクトＩＤに対応するオブジェクトをドナーストレージシステム１ａから取り出す。
【０１１７】
ステップ３１１３：
移行処理モジュール１１３は新たなオブジェクトＩＤを計算して、ドニーストレージシステム１ｂのストレージデバイス１７にオブジェクト（各オブジェクトのコンテンツと新たなオブジェクトＩＤを含むメタデータの両者）を保存する。新たなオブジェクトＩＤの計算は、計算したオブジェクトＩＤがドニーストレージシステム１ｂ又はドナーストレージシステム１ａが既に生成済みのオブジェクトＩＤと一致しないように遂行される。このステップで実行されるステップの詳細を以下に図１５に関連して説明する。
【０１１８】
ステップ３１１４：
コマンド処理モジュール１１１ｂはステップ３１１３で計算した新たなオブジェクトＩＤを持つオブジェクトを返送する。
【０１１９】
ステップ３１１５：
コマンド処理モジュール１１１ｂはオブジェクト管理テーブル６００の以前のオブジェクトＩＤ列６０４に保存されたオブジェクトＩＤ情報を削除する。別の実施例ではステップ３１１５は存在せず（オブジェクトＩＤ情報はオブジェクト管理テーブル６００から削除されない）、ドニーストレージシステム１ｂがオブジェクトマッピング情報を維持して、将来ドニーストレージシステム１ｂで計算されるオブジェクトＩＤとドナーストレージシステム１ａが既に生成済みのオブジェクトＩＤとが一致しないようにできる。
【０１２０】
上記プロセスに従い、ＡＰ２１がドナーストレージシステム１ａからドニーストレージシステム１ｂに既に移行済みのオブジェクトの読み出し要求を発行すると、ＡＰ２１は読み出し要求に応答して更新されたオブジェクトＩＤを受信する。ＡＰ２１が更新されたオブジェクトＩＤを受信すると、ＡＰ２１は対応するオブジェクトＩＤ情報８０５が保存されたデータベーステーブル８００の行を更新する。オブジェクトＩＤ情報を更新した後、ＡＰ２１がオブジェクトを次に読み出すときには、新たなオブジェクトＩＤを使用する読み出し要求を発行することができる。従って、第三の実施例の移行方法では、ＡＰ２１はＡＰＩ２  ２２ｂから更新されたオブジェクトＩＤを受信する時にデータベーステーブル８００の内容を更新するように、変更バージョンのＡＰ２１をステップ３００１でインストールする必要がある。
【０１２１】
図１４はドニーストレージシステム１ｂがホスト２からオブジェクト書き込み要求を受信した時にドニーストレージシステム１ｂで実行されるプロセスのフローを示す。図１４は以下のステップを含む。
【０１２２】
ステップ３２００：
ドニーストレージシステムはホスト２からオブジェクト書き込み要求を受信する。
【０１２３】
ステップ３２０１：
上述したステップ３１１３と同様に、移行処理モジュール１１３は新たなオブジェクトＩＤを計算して、ドニーストレージシステム１ｂのストレージデバイス１７にオブジェクト（各オブジェクトのコンテンツと新たなオブジェクトＩＤを含むメタデータの両者）を保存する。このステップで実行されるプロセスの詳細を以下に図１５に関連して説明する。
【０１２４】
ステップ３２０２：
コマンド処理モジュール１１１ｂは新たに生成したオブジェクトに関連するオブジェクトＩＤを返送する。
【０１２５】
図１５はステップ３１１３又はステップ３２０１の間にドニーストレージシステム１ｂで実行されるプロセスフローを示し、以下のステップを含む。
【０１２６】
ステップ４００１：
コマンド処理モジュール１１１ｂはオブジェクトのコンテンツ２１０に基づいて新たなオブジェクトＩＤを計算する。
【０１２７】
ステップ４００２：
もし計算したオブジェクトＩＤがオブジェクト管理テーブル６００の以前のオブジェクトＩＤ列６０４に既に記録済みのオブジェクトＩＤ（ドナーストレージシステム１ａに既に保存済みのオブジェクトＩＤ）の一つと一致するならば、プロセスは以前のオブジェクトＩＤのいずれとも一致しないように新たなオブジェクトＩＤを再計算するため、プロセスは４００３に進む。このようにして、以前のオブジェクトと新たなオブジェクトとは同じＩＤを持たず、もしそうでないと、ホストから見てオブジェクトにアクセスしようとする時に混乱を引き起こすことになりかねない。計算されたオブジェクトＩＤが以前のオブジェクトＩＤのいずれとも等しくない時、プロセスはステップ４００４に進む。
【０１２８】
ステップ４００３：
プロセスはオブジェクトＩＤを再計算し、再計算されたオブジェクトＩＤが既に保存済みの他のオブジェクトＩＤに等しいかどうかチェックするためにステップ４００２に戻る。
【０１２９】
ステップ４００４：
もし計算したオブジェクトＩＤがオブジェクト管理テーブル６００のオブジェクトＩＤ列６０１に既に記録済みのオブジェクトＩＤ（ドニーストレージシステム１ｂに保存されているオブジェクトＩＤ）の一つと一致するならば、プロセスはステップ４００５に進む。計算したオブジェクトＩＤが既に保存済みのオブジェクトＩＤのいずれとも等しくない時は、プロセスはこのオブジェクトをストレージデバイス１７に保存するためにステップ４００８に進む。
【０１３０】
ステップ４００５：
このプロセスはそのオブジェクトＩＤがステップ４００１（又はステップ４００３又はステップ４００７）で計算されたオブジェクトＩＤに等しいと（ステップ４００４で）判定されたオブジェクトのコンテンツをストレージデバイス１７から読み出し、このコンテンツをこのプロセスで書き込もうとしているオブジェクトのコンテンツと比較する。
【０１３１】
ステップ４００６：
もしステップ４００５で比較した両者のコンテンツが全く等しいならば、ストレージデバイス１７に同じコンテンツが既に保存されているので、このオブジェクトを保存せずにプロセスは終了する。もしそうでないならば、他のオブジェクトと一致しないように新たなオブジェクトＩＤを再計算するために、プロセスはステップ４００７に進む。
【０１３２】
ステップ４００７：
このプロセスはステップ４００３と同様のプロセスである。このプロセスはオブジェクトＩＤを再計算し、再計算されたオブジェクトＩＤが既に保存済みの他のオブジェクトＩＤに等しいかチェックするためにステップ４００４に戻る。
【０１３３】
ステップ４００８：
一致するオブジェクトＩＤが存在しないと判定された時は、コマンド処理モジュール１１１ｂはコンテンツと新たなオブジェクトＩＤを含むメタデータの両者を保存することによってストレージデバイス１７にオブジェクトを保存する。
【０１３４】
このようにして、前述から本発明はＣＡＳシステム間のデータ移行を可能にする新規な方法を述べていることが分かるであろう。更に、本発明は移行プロセスの間のダウンタイムを最小にする方法を述べている。更に、本明細書で具体的な実施例が示され説明されているが、当業者は同じ目的を達成するものと予測できる任意の改編が、開示された具体的な実施例に置換できることを理解する。この開示は本発明の任意でかつ全ての翻案や変形をカバーするように意図しており、上述の記述は説明の形式でなされたもので制限する形式でなされたものでないことを理解する必要がある。従って、本発明の範囲は添付した特許請求項と当該請求項の権利が及ぶ等価部の全範囲を参照して正しく決定されなければならない。
【０１３５】
添付図面は、上述の一般的な説明及び以下の好適な実施例の詳細な説明とともに、本発明について現在考え得るベストモードの好適な実施例の原理を示し、説明する役目を果たす。
【図面の簡単な説明】
【０１３６】
【図１】図１は本発明が適用できる装置とシステム構成の例を示す。
【図２】図２は図１の構成の機能図を示す。
【図３】図３はＣＡＳシステムに保存されるオブジェクトのデータ構造の例を示す。
【図４】図４はドナーストレージシステムが維持するオブジェクト管理テーブルを示す。
【図５】図５はドニーストレージシステムが維持するオブジェクト管理テーブルを示す。
【図６】図６はオブジェクトマッピング情報の例を示す
【図７】図７はアプリケーションプログラムが維持するデータベーステーブルの例を示す。
【図８】図８は移行動作の概要を示す。
【図９】図９はドニーストレージシステムで実行される移行動作のプロセスフローを示す。
【図１０】図１０は第二の実施例での移行動作の概要を示す。
【図１１】図１１はドニーストレージシステムで実行される第二の実施例での移行動作のプロセスフローを示す。
【図１２】図１２は第三の実施例での移行動作の概要を示す。
【図１３】図１３はドニーストレージシステムがホストから読み出し要求を受信した時にドニーストレージシステムで実行される動作のプロセスフローを示す。
【図１４】図１４はドニーストレージシステムがホストからオブジェクト書き込み要求を受信した時にドニーストレージシステムで実行される動作のプロセスフローを示す。
【図１５】図１５は、図１３のステップ３１１３と図１４のステップ３２０１のプロセスフローを示す。
【符号の説明】
【０１３７】
２……ホスト、３……スイッチ、５……外部ストレージ、１０……コントローラ、１１、２１……ＣＰＵ、１２、２２……メモリ、１３……キャッシュメモリ、１４……ＮＶＲＡＭ、１５、２３……Ｉ／Ｆ、１６、２４……ディスクＩ／Ｆ、２１……アプリケーションプログラム（ＡＰ）、２２ａ……アプリケーションプログラムインタフェース（ＡＰＩ１）２２ｂ……アプリケーションプログラムインタフェース（ＡＰＩ２）、２３……オペレーティングシステム、１１１ａ、１１１ｂ……コマンド処理モジュール、１１３……移行処理モジュール
【図１】
2007305122.tif 000003
【図２】
2007305122.tif 000004
【図３】
2007305122.tif 000005
【図４】
2007305122.tif 000006
【図５】
2007305122.tif 000007
【図６】
2007305122.tif 000008
【図７】
2007305122.tif 000009
【図８】
2007305122.tif 000010
【図９】
2007305122.tif 000011
【図１０】
2007305122.tif 000012
【図１１】
2007305122.tif 000013
【図１２】
2007305122.tif 000014
【図１３】
2007305122.tif 000015
【図１４】
2007305122.tif 000016
【図１５】
2007305122.tif 000017
【外国語明細書】
2007305122000001.pdf