説明

ストレージデータ暗号化

ストレージ・デバイス上でデータを管理する工程は、暗号化されていないデータがストレージ・デバイスに格納されるのを阻止する工程を含み、暗号化されていないデータを阻止する工程は、ストレージ・デバイス上にデータを格納し、ストレージ・デバイス上への格納に先立ってデータを暗号化するアプリケーションに透過的である。ストレージ・デバイスは、テープ・ドライブおよび/またはディスク・ドライブを含むことができる。ストレージ・デバイス上でデータを管理する工程はまた、第1のストレージ・ロケーションから第2のストレージ・ロケーションへデータを移行する工程を含むことができる。第1のストレージ・ロケーションは第2のストレージ・ロケーションと同じであってもよいか、または第1のストレージ・ロケーションは第2のストレージ・ロケーションとは異なっていてもよい。暗号化されていないデータは、移行中に阻止されうる。ストレージ・デバイス上でデータを管理する工程はまた、ストレージ・デバイスから読み取ったデータを復号化する工程を含むことができる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は一般に、データ・ストレージ設備に関し、具体的には、データ・ストレージ設備内のデータの暗号化に関する。
(関連出願の相互参照)
本出願は、2004年6月18日に出願した米国特許出願第10/872,074号明細書(係属中)の一部継続出願である2004年10月1日に出願した米国特許出願第10/956,484号明細書(係属中)の一部継続出願である。
【背景技術】
【0002】
データ・ストレージ設備は一般に、物理ストレージ媒体および関連するコントロールを含むディスク・アレイ・ストレージ・デバイスを備える。たとえば、標準的なディスク・アレイ・ストレージ・デバイスは一般に、物理ストレージ媒体として複数の物理ディスク・ドライブを含む。コントロールは、キャッシュ・メモリ、相互接続バス、およびアダプタを含む。少なくとも1つのホスト・アダプタは、ホスト・プロセッサ、つまり「ホスト」とバスとの間を接続する。複数のディスク・アダプタは、バスと物理ディスク・ドライブとの間のインターフェイスとして機能する。
【0003】
ホストによって処理されているアプリケーションの観点からすれば、ディスク・ストレージは通常、「論理デバイス」内に構成される。そのような「論理デバイス」はまた、「論理ストレージ・デバイス」、「論理ボリューム」、および「デバイス」としても知られている。以下の説明では、「論理デバイス」を使用する。各論理デバイスは、単一の物理ディスク・ドライブの一部、または全体に構成されることがある。論理デバイスはまた、複数の物理ディスク・ドライブ上に構成されることもある。論理デバイスは、ファイルとも呼ばれる、1つまたは複数の「データ・セット」を格納する。各データ・セットは、1つまたは複数のエクステントを備える。エクステントは、通常ディスク・ストレージ・システム内の連続するシリンダまたはトラックである、1つまたは複数の連続ストレージ・ロケーションによって定義される。複数のデータ・セットは、「グループ」と呼ばれることがある。
【0004】
オペレーティング・システムは、制御ルーチンおよびデータ構造を提供して、ホスト・アプリケーションとデータ・ストレージ設備の仲介をする。ホスト・アプリケーションからの入出力要求は一般に、「読み取り」または「書き込み」操作のような操作を定義し、論理デバイスは、それぞれデータが取り出される(読み取られる)元、または送り出される先(書き込まれる)の論理ストレージ・ロケーションをアドレス指定する。
【0005】
たとえば、IBMベースのシステムは、アクセス方式、装置制御ブロック(UCB)、および各論理デバイスに割り当てられている関連構造を含むMVS(アイビーエムコーポレーション(IBM Corporation)の登録商標)オペレーティング・システムを使用する。オペレーティング・システムの入出力制御ルーチンは、これらの装置制御ブロックを使用して、アプリケーションによって提供された論理デバイス・アドレスを、ストレージ設備によって認識される接続ベースのアドレス指定に変換する。ボリューム目録(VTOC)内にあるようなメタデータは、特定のデータ・セットに割り当てられたその論理デバイス上で複数エクステントによって占有された正確なシリンダおよびヘッドの範囲を提供する。単一のエクステントは単一論理デバイス内の連続ストレージ・ロケーションを占有するが、そのようなオペレーティング・システムは、データ・セット内の個々のエクステントを多数の論理デバイスにわたって分散することができる。
【0006】
格納されるデータの量が増大するのに応じて、既存のデータ・ストレージ設備内のデータの量は最大容量に近づいてゆく。その容量を追加することは、さらに大容量の高いパフォーマンスを備える新しいデータ・ストレージ設備の追加を伴う。したがって、既存のデータ・ストレージ設備を新しいデータ・ストレージ設備の追加で置き換えるか、または補うことが望ましくなっている。結果として生じるパフォーマンスの向上によって利益を得るには、古いデータ・ストレージ設備から1つまたは複数の新しいデータ・ストレージ設備へのデータの移動が必要になることが多い。
【0007】
さらに、新しいストレージ設備内で個々の論理デバイスの記憶容量を増大させるという長期傾向もある。その1つの理由は、現在のオペレーティング・システム内の装置制御ブロックアドレスの数にアーキテクチャ上の制限があることである。これは、拡張ストレージをサポートするUCBの自由な増設を妨げる。この状況は、単一の論理デバイスのアドレス指定に対して複数のUCBが占有になることを求める特定のスループット最適化方法によってさらに悪化する。たとえば、現在使用可能なシステムは、単一の論理デバイスをアドレス指定するために複数の装置制御ブロックを使用して重複したアクセスを提供する。ビシリツキーら(Vishlitzky et al.)が取得した米国特許第6,665,739号明細書では、並列アクセス装置制御ブロックを使用することにより、単一論理デバイスへの重複した入出力要求に関して規定が設けられた機能拡張を開示する。1つのアプリケーションへの並列アクセス装置制御ブロックの各割り当ては、その他の目的に使用可能な装置制御ブロックの数を減少させる。
【0008】
ポリシーにおけるさまざまな機能拡張および変更は、可能であれば装置制御ブロックの数を節約する必要性を高めている。1つの節約の手法は、複数の小型論理デバイスから1つの大型論理デバイスにデータを統合することである。そのような手法では、既存の論理デバイスから同一または異なるデータ・ストレージ設備内の1つの論理デバイスへデータが移動されることが必要となる。しかし、また、移動または移行されるデータの通常のデータ処理アクティビティを中断することなく、そのような転送が透過的に発生することは、不可欠ではないとしても、目標である。
【0009】
そのような透過的な並列の移動または移行を提供するために多くの努力がなされてきた。たとえば、アトキン(Atkin)が取得した米国特許第6,145,066号明細書では、完全論理デバイス間のデータの透過的な移行のための方法を開示する。この特許の開示により、ソース論理デバイス内のデータは、マルチフェーズ・プロセスでターゲット論理デバイスに転送される。基本的に、コピー・サブタスクは、データをターゲット論理デバイスにコピーすることによって、ソース論理デバイスのワン・パスを完了する。各タスク中に、ユーザ・アプリケーションは、ソース論理デバイス内のデータと引き続き対話を行う。コピー・サブタスクがワン・パスを終了した後、リフレッシュ段階では、ソース論理デバイスに行われた変更を分析して、変更されたデータをターゲット論理デバイスにコピーする。このリフレッシュ段階は、変更の数があらかじめ定められたしきい値を下回るまで、繰り返し形式で続行する。次に、システムは、ソース論理デバイスへの入出力要求を静止させて、ユーザ・アプリケーションとその論理デバイスとの間のさらなる対話を妨げる。静止中に、残りの変更されたデータは、ターゲット論理デバイスに移動する。次に、スワップ操作は、ターゲット論理デバイスが新しいソース論理デバイスになるようにする。つまり、スワッピング操作が完了した後、ユーザ・アプリケーションとの通信は再び有効になり、静止状態は終了して、ユーザ・アプリケーションと新たなソースとなったターゲット内のデータとの間の対話が可能になる。
【0010】
前記のように、そのようなデータ移行は、論理デバイス内のすべてのデータに制限される。新しい論理デバイスは、ソース論理デバイスよりも大きい容量を有することもあるが、ソース論理デバイスからのデータは、基本的に損なわれることなくターゲット論理デバイスに転送される。システムは、論理デバイス内のエクステントのデータの処理、または1つの論理デバイス内の異なる論理デバイスからのデータ・エクステントの組み合わせについて提案を行うことはない。
【0011】
オフェクら(Ofek et al.)が取得し、本発明の譲受人に譲渡された米国特許第6,356,977号明細書では、オンラインのリアル・タイム・データ移行のシステムおよび方法を開示する。この特許によれば、置換データ・ストレージ設備は、既存データ・ストレージ設備とホスト・オペレーティング・システムまたはネットワークとの間を接続する。置換データ・ストレージ設備は、移行されるよう指定されたすべての論理デバイスに対するすべての入出力要求を処理する。バックグラウンドのコピー操作は、既存データ・ストレージ設備内の指定された論理デバイスから、置換データ・ストレージ設備内の対応する論理デバイスにデータを移動する。バックグラウンド操作によってデータがまだ移行されていないロケーションへの任意の入出力要求は、優先度ベースで処理され、その特定のロケーションに関して移行が発生したことを示すように状態が更新される。このシステムは基本的に、移行されている論理デバイスを静止させる必要を最小化する。しかし、これはまた、完全論理デバイスの移行に制限される。
【0012】
前述のアトキン(Atkin)およびオフェクら(Ofek et al.)の特許は、論理デバイス全体を移動するデータ移行システムの例である。これらは、1つまたは複数のソース論理デバイスから、単一のターゲット論理デバイスまたは複数のターゲット論理デバイスへと、エクステント単位ベースで、1つまたは複数のデータ・セットを移行するように適合されていない。これらは、特に論理デバイス内の一部のエクステントが移行中で、他のエクステントは移行されていない場合、ディスク・アレイ・ストレージ・デバイスの論理ボリュームの所定の数に割り当てられる必要のある装置制御ブロックの数を減少させることはできない。
【0013】
加えて、格納されるデータは機密の場合もあり、許可されたユーザを除いてはアクセス可能にすべきではない。たとえば、オンライン・ベンダまたは銀行の顧客リストは、顧客名および住所、さらにアカウント番号を含むことがある。ストレージ・デバイス上のデータへのアクセスを制限することは可能であるが、情報は、危険にさらされる可能性もあるテープにバックアップされることもある。さらに、場合によっては、悪意のあるユーザが、ディスク上のデータにアクセスを試みて、ストレージ・デバイスのセキュリティを無効にするために、物理的にディスクを移動させることができる。同様のさまざまな場合において、データへのアクセスを許可された者を除いては、データが使用可能にならないとすれば、それは有用なことであろう。
【発明の開示】
【発明が解決しようとする課題】
【0014】
したがって、1つの論理デバイスからもう1つの論理デバイスへ、論理デバイスよりも小範囲にわたる1つまたは複数のデータ・エクステントを移行する方法および装置を提供することは、本発明の目的である。
【0015】
本発明のもう1つの目的は、複数のソース論理デバイスから1つまたは複数のターゲット論理デバイスへ、複数のデータ・エクステントを移行する方法および装置を提供することである。
【0016】
本発明のさらにもう1つの目的は、ユーザ・アプリケーションと移行されているデータ・エクステントとの間の操作に透過的にデータ・エクステントを移行する方法および装置を提供することである。
【0017】
本発明のさらにもう1つの目的は、複数の論理デバイスを統合するためにデータ・エクステントを動的に複製することにより、データを移行する方法および装置を提供することである。
【0018】
本発明のさらにもう1つの目的は、論理デバイスの部分のみからデータ・エクステントを動的に複製することによりデータを移行する方法および装置を提供することである。
【課題を解決するための手段】
【0019】
本発明によれば、ソース論理デバイス内のデータ・セット・エクステントのデータ移行方法は、それぞれソース論理デバイスおよびターゲット論理デバイスのデータ・エクステントの既存のロケーションおよび将来のロケーションを識別して格納する制御データ構造を生成することによって達成される。ソース論理デバイス内の各データ・セット・エクステントは、ターゲット論理デバイスにミラーリングされたエクステントを生成するためにコピーされる。この状態の間、ソース論理デバイスにデータを書き込むよう求める要求は、ソースおよびターゲット論理デバイスの両方に方向付けられる。ソース論理デバイス内のすべてのデータ・セット・エクステントがミラーリングされると、すべての対応するメタデータは状態を確立するように更新され、それにより識別されたエクステントへのデータ要求は1つまたは複数のターゲット論理デバイス内の対応するロケーションに転換される。
【0020】
さらに本発明によれば、いつデータ・セットを移行すべきかを決定する工程は、データ・セットのパフォーマンス基準を提供する工程と、データ・セットの実測パフォーマンスを提供するためにデータ・セットのパフォーマンスを測定する工程と、データ・セットがパフォーマンス基準に従って実行していないことを実測パフォーマンスが示す場合に、データ・セットを移行する新しいロケーションを選択する工程と、データ・セットを新しいロケーションに移行する工程とを含む。データ・セットを移行する工程は、他のアプリケーションがデータ・セットにアクセスしているかどうかにかかわりなく、データ・セットを新しいロケーションに移動する工程を含むことができる。新しいロケーションを選択する工程は、複数のロケーションの各々を分析して、その予測パフォーマンスがパフォーマンス基準に従っているかどうかを判別する工程を含むことができる。いつデータ・セットを移行するかを決定する工程は、データ・セットが操作可能にされた後にパフォーマンス基準を調整する工程を含むことができる。パフォーマンス基準は、応答時間、読み取りパフォーマンス時間、書き込みパフォーマンス時間、制御パフォーマンス時間、および日付依存パフォーマンス時間からなるグループから選択されてもよい。パフォーマンス基準は、データ管理目標を含むことができる。データ管理目標は、接続タイプ、ローカル・ミラーリング・タイプ、リモート・ミラーリング・タイプ、および最大データ・セット・サイズからなるグループから選択されてもよい。
【0021】
さらに本発明によれば、いつデータ・セットを移行すべきかを決定する工程は、データ・セットのパフォーマンス基準を提供する工程と、データ・セットの実測パフォーマンスを提供するためにデータ・セットのパフォーマンスを測定する工程と、データ・セットがパフォーマンス基準に従って実行していないことを実測パフォーマンスが示す場合に、データ・セットが移動されることを確認するメッセージをユーザにプロンプト表示する工程と、データが移動されることをユーザが確認する場合に、データ・セットを移行する新しいロケーションを選択する工程と、データ・セットを新しいロケーションに移行する工程とを含む。いつデータ・セットを移行するかを決定する工程はまた、データ・セットが移動されることをユーザが確認しない場合に、その現在のロケーションにデータ・セットを保持する工程を含むことができる。いつデータ・セットを移行するかを決定する工程はまた、データ・セットが移行されることをユーザが確認しなかった後にフラグを設定する工程を含むことができる。データ・セットを移行する工程はまた、他のアプリケーションがデータ・セットにアクセスしているかどうかにかかわりなく、データ・セットを新しいロケーションに移動する工程を含むことができる。新しいロケーションを選択する工程は、複数のロケーションの各々を分析して、その予測パフォーマンスがパフォーマンス基準に従っているかどうかを判別する工程を含むことができる。いつデータ・セットを移行するかを決定する工程はまた、データ・セットが操作可能にされた後にパフォーマンス基準を調整する工程を含むことができる。パフォーマンス基準は、応答時間、読み取りパフォーマンス時間、書き込みパフォーマンス時間、制御パフォーマンス時間、および日付依存パフォーマンス時間からなるグループから選択されてもよい。パフォーマンス基準は、データ管理目標を含むことができる。データ管理目標は、接続タイプ、ローカル・ミラーリング・タイプ、リモート・ミラーリング・タイプ、および最大データ・セット・サイズからなるグループから選択されてもよい。
【0022】
さらに本発明によれば、いつデータ・セットを移行すべきかを決定するコンピュータ・ソフトウェアは、データ・セットのパフォーマンス基準を提供する実行可能コードと、データ・セットの実測パフォーマンスを提供するためにデータ・セットのパフォーマンスを測定する実行可能コードと、データ・セットがパフォーマンス基準に従って実行していないことを実測パフォーマンスが示す場合に、データ・セットを移行する新しいロケーションを選択して、データ・セットを新しいロケーションに移行する実行可能コードとを含む。データ・セットを移行する実行可能コードは、他のアプリケーションがデータ・セットにアクセスしているかどうかにかかわりなく、データ・セットを新しいロケーションに移動する実行可能コードを含むことができる。新しいロケーションを選択する実行可能コードは、複数のロケーションの各々を分析して、その予測パフォーマンスがパフォーマンス基準に従っているかどうかを判別する実行可能コードを含むことができる。コンピュータ・ソフトウェアはまた、データ・セットが操作可能にされた後にパフォーマンス基準を調整する実行可能コードを含むことができる。パフォーマンス基準は、応答時間、読み取りパフォーマンス時間、書き込みパフォーマンス時間、制御パフォーマンス時間、および日付依存パフォーマンス時間からなるグループから選択されてもよい。パフォーマンス基準は、データ管理目標を含むことができる。データ管理目標は、接続タイプ、ローカル・ミラーリング・タイプ、リモート・ミラーリング・タイプ、および最大データ・セット・サイズからなるグループから選択されてもよい。
【0023】
さらに本発明によれば、ストレージ・デバイス上でデータを管理する工程は、暗号化されていないデータがストレージ・デバイス上に格納されるのを阻止する工程を含み、暗号化されていないデータを阻止する工程は、ストレージ・デバイス上にデータを格納し、ストレージ・デバイス上への格納に先立ってデータを暗号化するアプリケーションに透過的である。ストレージ・デバイスは、テープ・ドライブおよび/またはディスク・ドライブを含むことができる。ストレージ・デバイス上でデータを管理する工程はまた、第1のストレージ・ロケーションから第2のストレージ・ロケーションへデータを移行する工程を含むことができる。第1のストレージ・ロケーションは第2のストレージ・ロケーションと同じであってもよいか、または第1のストレージ・ロケーションは第2のストレージ・ロケーションとは異なっていてもよい。暗号化されていないデータは、移行中に阻止されうる。ストレージ・デバイス上でデータを管理する工程はまた、ストレージ・デバイスから読み取ったデータを復号化する工程を含むことができる。データを復号化する工程はまた、使用が制限されている秘密復号鍵を使用する工程を含むことができる。ストレージ・デバイス上でデータを管理する工程はまた、不正改ざん防止モジュールを使用して秘密鍵を格納し、データを復号化する工程を含み、不正改ざん防止モジュールは秘密鍵へのアクセスを制限する。
【0024】
さらに本発明によれば、ストレージ・デバイス上でデータを管理するコンピュータ可読媒体におけるコンピュータ・ソフトウェアは、暗号化されていないデータがストレージ・デバイス上に格納されるのを阻止する実行可能コードを含み、暗号化されていないデータを阻止する工程は、ストレージ・デバイス上にデータを格納するアプリケーション、およびストレージ・デバイス上への格納に先立ってデータを暗号化する実行可能コードに透過的である。コンピュータ・ソフトウェアはまた、第1のストレージ・ロケーションから第2のストレージ・ロケーションへデータを移行する実行可能コードを含むことができる。第1のストレージ・ロケーションは第2のストレージ・ロケーションと同じであってもよいか、または第1のストレージ・ロケーションは第2のストレージ・ロケーションとは異なっていてもよい。コンピュータ・ソフトウェアはまた、移行中に暗号化されていないデータを阻止する実行可能コードを含むことができる。コンピュータ・ソフトウェアはまた、ストレージ・デバイスから読み取ったデータを復号化する実行可能コードを含むことができる。データを復号化する工程は、使用が制限されている秘密復号鍵を使用する工程を含むことができる。復号化は、ストレージ・デバイスに結合された少なくとも1つのホスト上で実行されうる。暗号化は、ストレージ・デバイスに結合された少なくとも1つのホスト上で実行されうる。暗号化は、ストレージ・デバイスに結合された少なくとも1つのホストまたはストレージ・デバイス上のいずれで実行されてもよく、復号化は、ストレージ・デバイスに結合された少なくとも1つのホストまたはストレージ・デバイスのうちのもう一方で実行されてもよい。
【0025】
添付の特許請求の範囲は、本発明の主題を特に指摘して明瞭に主張する。本発明のさまざまな目的、利点、および新奇な特徴は、類似する参照番号が類似した部分を参照する添付の図面と併せて以下の詳細な説明を読めばさらに完全に明らかとなろう。
【発明を実施するための最良の形態】
【0026】
図1は、一例として、ホスト21と、データ・ストレージ設備22および23として2つのディスク・アレイ・ストレージ・デバイスを含むデータ処理システム20を示す。当技術分野において知られているように、ホスト21は、少なくとも1つの専用領域25および共通ストレージ領域26に分割されるメイン・メモリ24を含む。1つまたは複数のプロセッサ30は、メモリ24と対話する。
【0027】
データ・ストレージ設備22および23のような、単一ホスト21と入出力デバイスとの間の通信は、サブチャネルを介して発生する。本発明を説明するために、サブチャネル31は、ホスト21とソース・データ・ストレージ設備22とを接続し、サブチャネル32は、ホスト21とターゲット・データ・ストレージ設備23とを接続する。2次ホスト21Aは、マルチ・プロセッサ30A、メモリ24A、サブチャネル31Aおよび32Aを備える類似した構造を有する。
【0028】
前述のように、ホスト・アプリケーションおよびデータ・ストレージ設備は、データのロケーションを異なる方法で識別する。つまり、ホスト・アプリケーションは、データを論理レベルで、データ・エクステントまたは「エクステント」および/または1つまたは複数のエクステントのデータ・セットと見なす。MVSオペレーティング・システム(z/OS)などのオペレーティング・システムは、データのホスト・アドレス指定フォーマットを、データ・ストレージ設備のアドレス指定フォーマットに変換する。
【0029】
具体的には、オペレーティング・システムは、ホスト・アプリケーションと、EXCP、メディア・マネージャ、入出力装置ルーチンのような低レベル・ルーチンとの間のインターフェイスとしてアクセス方式を使用する。入出力ドライバルーチンは、STARTIO関数のような低レベル関数を呼び出して、サブチャネル経由で入出力を開始し、それによりデータ・ストレージ設備との間で情報をやりとりする。オペレーティング・システムは、特に当技術分野でよく知られているCatalog、VTOC、VVDSなどのコンポーネントを含む統合カタログ機能(ICF)からの情報を使用して、アプリケーションから受け取ったアドレス指定フォーマットからのデータ・アドレスを、論理デバイス、シリンダ、およびヘッドによってデータを識別するアドレス指定フォーマットに変換する。この情報は一般に、「メタデータ」と呼ばれる。データ・ストレージ設備は、この論理デバイス・アドレス指定フォーマットを物理ディスク・ドライブ・アドレス指定フォーマットに変更するための情報を含む。
【0030】
本発明の理解を深めるために、図1におけるデータ・ストレージ設備22は、既存のまたはソースのデータ・ストレージ設備であり、データ・ストレージ設備23は、ソース・データ・ストレージ設備22からデータを受け取るターゲットとしての機能を果たす新規または先在のデータ・ストレージ設備であると仮定する。データ・ストレージ設備22は、論理デバイス22(1)、22(2)、22(n−1)、および22(n)が図1に示されている「n」個の論理デバイスを有する。データ・ストレージ設備23は、論理デバイス23(1)、23(2)、23(m−1)、および23(m)が示されている「m」個の論理デバイスを有する。以下の説明において、データ・ストレージ設備22の論理デバイスは「ソース論理デバイス」と呼ばれ、データ・ストレージ設備23の論理デバイスは「ターゲット論理デバイス」と呼ばれる。
【0031】
図1におけるホスト21は、IBM MVSオペレーティング・システムで稼働しているIBMメインフレーム・システムなどのような、オペレーティング・システムによって制御される多重処理装置を備える標準的なメインフレーム・システムを表す。そのようなホストにおいて、ユーザ・アプリケーションは、有用なデータを操作するための制御を提供する。USR1アプリケーション33およびUSR2アプリケーション34は、2つのそのようなユーザ・アプリケーションを表す。たとえば、USR1アプリケーション33は、トランザクション処理を担当する。USR2アプリケーション34は、USR1アプリケーション33を通じて供給されたデータに基づいてレポートを生成する。多くの場合、USR1アプリケーション33のようなアプリケーションは、1日24時間、週7日使用可能である必要がある。レポート・アプリケーションは、定期的に実行される。
【0032】
公知のように、データ・セットを形成するエクステントは、あらゆる方法で格納されうる。つまり、1つのデータ・セット内のエクステントは、連続であっても、不連続であってもよい。たとえば、USR1アプリケーション33およびUSR2アプリケーション34は、ソース・データ・ストレージ設備22のDS1データ・セット35、DS2データ・セット36、およびDS3データ・セット37として指定された3つの個別のデータ・セットと対話すると仮定する。説明のため、DS1およびDS2のデータ・セット35および36内のすべてのエクステントは連続し、各データ・セットが1つの論理デバイスに備えられると仮定する。DS3データ・セット37は、2つのエクステントDS3(1)およびDS3(2)がソース論理デバイス22(n−1)上に不連続に備わる5つのエクステントを有するが、エクステントDS(3)、DS(4)、およびDS(5)はソース論理デバイス22(n)上に連続して備わると仮定する。
【0033】
本発明は、連続エクステント、不連続エクステント、またはその組み合わせを備えるデータ・セットを移行する能力を有する。図1の具体的な実施形態を参照すると、本発明は、ユーザ・アプリケーション33および34と、DS1データ・セット35、DS2データ・セット36およびDS3データ・セット37内のデータとの間の対話を中断することなく、ソース論理デバイス22(1)、22(2)、22(n−1)および22(n)から、データ・ストレージ設備23のターゲット論理デバイスに、開示されたデータ・セットの各々を移行する能力を有する。たとえば、DS1データ・セット35およびDS2データ・セット36はいずれも、ターゲット論理デバイス23(1)のような1つの論理デバイスに移行することができる。図1はまた、DS3データ・セット37の4つのエクステントが、ターゲット論理デバイス23(m−1)の連続ロケーションに移行し、第5のエクステントDS3(5)がターゲット論理デバイス23(m)に移行する動作も示す。
【0034】
図1におけるメモリ24は、データ・ストレージ設備22および23の両論理デバイスごとに装置制御ブロック(UCB)を含む。これらの装置制御ブロックは、メモリ24の共通領域26に格納される。一例として、図1は、DS1データ・セット35を含むソース論理デバイス22(1)に関連付けられているUCB LDS1制御ブロック38を示す。UCB LDS2装置制御ブロック39は、ソース論理デバイス22(2)に関連付けられている。UCB LDT1装置制御ブロック40は、ターゲット論理デバイス23(1)に関連付けられている。その他の装置制御ブロック(図示されず)は、図1に示されるその他の論理デバイスの各々に関連付けられている。
【0035】
本発明の例示的な実施形態を説明する前に、図2における手順41によって示されるユーザ・アプリケーションの基本動作工程を検討することが有益であろう。USR2アプリケーション34のようなユーザ・アプリケーションが初期化されるとき、工程42は、本発明には関連しない特定の予備機能を実行する。工程43は、1つまたは複数の関連するデータ・セットを開く。たとえば、USR1アプリケーション33は、DS1データ・セット35およびDS3データ・セット37を開くが、USR2アプリケーション34はDS2データ・セット36を開く。その方法の一部において、USR1アプリケーション33およびUSR2アプリケーション34は、工程44において対応するデータ・セットのメタデータを取り出す。本発明にとって重要なことに、メタデータは、システムがいずれかの時点で特定の論理デバイスおよびUCBにマップするボリューム通し番号を提供するMVSカタログ情報を含む。VTOCは、シリンダおよびヘッド範囲のセットをエクステント・リストに提供する。
【0036】
工程45は、たとえば図1のデータ・ストレージ設備22を含むさまざまな入出力装置により入出力要求を制御するために、取り出したメタデータ、特にDS1データ・セット35、DS2データ・セット36、およびDS3データ・セット37を使用してアプリケーション機能を実行する。さらに、移行されるべきデータ・セットを開く各アプリケーションは、アプリケーションがそのデータ・セットを閉じるまで、そのデータ・セットの元のメタデータを使用し続ける。つまり、アプリケーションが終了すると、工程46は、開いているデータ・セット、またはアプリケーションが工程43において開いたデータ・セットを閉じる。しかし、あるアプリケーションがデータ・セットを閉じる場合、そのデータ・セットが引き続き別のアプリケーションに開かれている可能性もある。移行が発生した後にアプリケーションがデータ・セットを閉じた場合、アプリケーションがその後データ・セットを開くと、アプリケーションはターゲット論理デバイス上の移行されたデータに直接アクセスするので、この方法を理解しておくことは重要である。
【0037】
論理データ移行−−コマンド
多くの状況において、構成ステートメントは、本発明の論理データ移行アプリケーションのような、一連の制御アプリケーションの動作を制御する。一部の制御アプリケーションにおいて、1つまたは複数の構成ステートメントのセットは、制御アプリケーションの異なる段階を開始する。本発明の1つの実施形態において、さまざまな構成ステートメントは、初期化、移行および転換、および終了の段階の開始を有効にする。制御アプリケーションの機能の知識およびデータ処理システムの特定の構成により必要な構成ステートメントを生成することは、当業者の技術の範囲に含まれる。
【0038】
この説明のために、「コマンド」は、構成ステートメントのセットを表し、本発明に関連する情報を説明して、必要な構成ステートメントを準備できるようにする。所定のコマンドは、手順の単一の段階または複数の段階の開始を制御する能力を有すると見なされる。さらに、各段階は、その特定の段階を実行するためのモジュールとして実施されるものと見なされる。
【0039】
この背景をふまえ、図1および図3は、1つまたは複数のソース論理デバイス内の複数のエクステントから、1つまたは複数のターゲット論理デバイスへ、1つまたは複数のデータ・セットを移行することで特徴付けられうる論理デバイス移行(LDM)アプリケーション50の1つの実施例を示す。本発明の理解を助けるものとして、この特定のLDM論理アプリケーションは、各々特定の機能または関連する機能のグループを表す4つの別個の動作モジュールを有するものとして表される。これらは、初期化モジュール51、移行および転換モジュール52、終了モジュール53、および監視モジュール54を含む。
【0040】
専用アプリケーション・メモリ25におけるように、LDMアプリケーション50がメモリ24に読み込まれると、これはプロセッサ21が引数またはフィールドの形態で情報を有するLDMコマンドに応答できるようにする。基本的に、コマンドは以下の情報を含む。
【0041】
1.「LDM」または同等の演算コードなどのコマンド識別子。コマンドを論理データ移行コマンドとして識別する。
2.コマンドに応答して実行される図3のモジュールを識別する引数。たとえば、これらは、初期化引数、移行および転換引数、終了引数、監視引数、またはこれらの引数の一部またはすべての組み合わせを含むこともできる。
【0042】
3.具体的に、またはパターン・マッチングを介して名前により識別され、かつ/またはさまざまなソース・ボリュームを識別することにより識別されるソース・データ・セットの識別。ターゲット論理デバイスの識別は、具体的に、またはIBMのストレージ管理システム、つまり、いわゆるストレージ・グループあるいは同様の機構によって使用されるような、規則を介して行われる。データ・ストレージ設備においてデータ・グループ、セット、およびエクステントを識別するさまざまな方法が当技術分野で知られている。
【0043】
4.シリンダまたはトラックの数を確立するしきい値引数。その数を下回ると残りのトラックは、完全同期およびミラーリング状態を確立するために静止されたアプリケーション入出力によりコピーされる。
【0044】
5.データ・セットがデータ・グループに編成されるとき、引数は、グループ移行が一貫した方法で発生するかどうかを決定する。
6.別のホスト21Aにより形成される図1に示されるようなマルチホストネットワークにおいて、ホストが1次、またはオーナ、ホストまたは2次、または非オーナ、ホストであるかどうか。
【0045】
論路データ移行アプリケーションがロードされてアクティブにされると、LDMまたは同等のコマンドの実行は、図4に示されるようにさまざまな操作または手順のいずれかを開始する。たとえば、工程55は、コマンドの受信と、そのホストとLDMコマンドに応答して移行される任意のエクステントとの間のトランザクションのための監視モジュール54のアクティブ化を表す。工程56および工程57は、有効な引数に応答して図5に従って初期化モジュール51を処理する。移行および転換引数が有効である場合、工程58は、工程60が、データを移行する図7から10に示される工程に従って移行および転換モジュール52を処理できるようにする。終了引数が有効である場合、工程61は、工程62が、図11に示されるように終了モジュールを処理できるようにする。この特定の実施態様は、図3に示されるすべての手順が、1つのコマンドに応答して順序正しく処理されるようにする。しかし、明らかとなるように、第1のコマンドは通常、有効な初期化引数のみ、または有効な初期化引数と移行および転換引数の両方を含むことができる。後に、LDMコマンドは、有効な終了引数のみにより発行されることになろう。
【0046】
論理データ移行−−初期化段階
初期化引数を持つLDMコマンドが受信されると、LDMアプリケーション50は、初期化モジュール51を使用して、各エクステントが移行されるべきソース論理デバイス内のエクステントのロケーションおよびターゲット・ストレージ論理デバイスのロケーションを識別する制御データ構造を生成する。初期化モジュールはまた、ソースおよびターゲット論理デバイスに関連する構成情報を格納する。
【0047】
具体的には、初期化引数セットを持つコマンドを受信すると、図4の工程57は、工程71においてLDMコマンドを解析する図5の工程70に制御を移す。解析は、一貫したデータ移行の必要性およびしきい値を識別するLDMコマンドからの情報をもたらす。LDMコマンドの解析はさらに、ソース・エクステントおよび対応するターゲット・エクステントのロケーションが決定されうる情報ももたらす。
【0048】
工程72は、移行が満足される条件を検証する。たとえば、検証は、ソースおよびターゲット論理デバイスが互換であるかどうかを判別することを含むこともできる。条件が検証されると、工程73は、制御を工程74に移して初期化モジュールを続行する。それ以外の場合、工程73は、制御を工程75に移して、エラー・メッセージを生成し、コマンドに対するそれ以降の応答を終了して、論理データ移行を事実上中止する。
【0049】
工程74は、論理デバイス移行の実行および転換モジュール52中に使用するために、図6に示されるデータ構造に対応するデータ構造を確立する。この工程はまた、対応する引数またはLDMコマンドにしきい値をロードする。具体的には、図6は、異なるロケーションにおいて、しきい値エントリ77、グループ状態エントリ78、およびデータ・セット・ポインタ79を受け取るグループ・ブロック76を備えるデータ構造を示す。データ・セット・ポインタ79は、第1のデータ・セット・ブロック80のロケーションを識別する。データ・セット・ブロック82のような、各データ・セット・ブロックは、論理デバイス・ポインタ81およびデータ・セット状態エントリ82のロケーションを有する。各データ・セット・ブロックはまた、グループ内のすべてのデータ・セットについて個々のデータ・セット・ブロックをリンクするさまざまな既知の手段のいずれかを含む。
【0050】
論理デバイス・ポインタ81は、エクステント・ポインタ84および論理デバイス状態エントリ85のロケーションを含む第1の論理デバイス・ブロック83を指し示す。エクステント・ポインタ84は通常、選択された論理デバイスについて、エクステント・ブロック90のような、第1のエクステント・ブロックのロケーションを識別する。データ・セットに関連付けられているその他のすべての論理デバイスへのリンクも存在する。
【0051】
エクステント・ブロック90は、特定のエクステントに関する特定の情報を含む。1つのロケーションは、エクステント状態エントリ91を含む。その他のロケーションは、初期ソースおよびターゲット・アドレス92および終了アドレス93などの、アドレスの表現を格納する。アドレス92および93は各々、絶対アドレス、基底アドレスまたはオフセットによって、あるいは何らかのアドレス変換によって構成されうる。前述の説明と同様の方法で、単一の論理デバイスに関連付けられているすべてのエクステント・ブロックにリンクが提供される。
【0052】
さらに図6を参照すると、データ構造は、これ以降「制御ブロック」94および95と呼ぶ、トラック−シリンダ制御ブロックを含む。制御ブロック94およびブロック76、80、83、および90は、ソース論理デバイスと関連して格納される。図1において、情報は、データ・ストレージ設備22に格納される。これらのデータ構造は、データ・ストレージ設備の構成に応じて、キャッシュ・メモリ、物理ディスク、またはその両方に格納される。しかし、通常、ソース論理デバイス制御ブロックおよびデータポインタはまた、図1のメイン・メモリ24に格納される。制御ブロック95は通常、ターゲット論理デバイスに格納される。
【0053】
トラック・ベースでの制御が望ましい1つの実施形態において、制御ブロック94および95の各エントリは、エクステント状態エントリ96、列97に単一ソース・トラック・アドレス、および列100に対応するターゲット・トラック・アドレスを含む。エクステントが1つまたは複数の完全シリンダを占有する場合、列97および100のソースおよびターゲット・アドレス・エントリは、アドレスをシリンダ・レベルに対してのみ定義することができる。その場合、制御ブロック94および95の各行は、初期シリンダ・アドレスを識別する。エクステントがシリンダ境界で開始および終了しない場合、エントリは、個々のトラック・アドレス指定を提供するために、シリンダおよびヘッド・アドレスに対するものになる。
【0054】
COPY列101は、トラックごとに、トラックが引き続きコピーを必要とするかどうかを記録する。場合によっては、COPY列101は、ソース論理デバイスに関連付けられているトラック・テーブルによって構成されうる。そのような場合、制御ブロック94および95はまた、コピーされる必要があるトラックを反映するためにSYNC列102を含むことができる。
【0055】
図5および図6を共に参照すると、工程74が図6のデータ構造を確立した後、図5の残りの工程はさまざまなデータ構造を取り込む。この方法の一部として、工程103は、データ・セット・ポインタ79によって識別されたデータ・セットのような、識別されたデータ・セットのうちの1つを選択する。工程104および105は、ICFからの情報を使用して、そのデータ・セットのエクステントとエクステントのうちの1つを格納する各論理デバイスのロケーションを識別する。これに応答して、図5Aに示される方法は、ソース論理デバイスのエクステントの開始および終了アドレスを生成する工程106を伴うエクステント・ブロック制御テーブル・エントリを生成する。工程107は、ターゲット論理デバイス内のエクステントの開始アドレスをもたらす。この情報がそれぞれ、図6のブロック92および93にロードされた場合、工程108は、エクステント状態エントリ91のような、対応するエクステント状態エントリを、COPY状態を示すように初期COPY値に設定する。
【0056】
次いで、工程110は、トラック・シリンダ制御ブロック94および95の各々にデータを取り込む。つまり、識別されたエクステント内の各トラックまたはシリンダについて、工程110は所定の行にエントリを入力する。したがって、所定のエクステントは、トラック・シリンダ制御ブロック94および95内に多数の異なるエントリを有することができる。加えて、工程110は、列101内のすべてのCOPYビット、および列102内のすべてのSYNCビットに初期値を確立して、各々対応するトラックがコピーされる必要があることを示す。工程110はさらに、対応する状態エントリごとに初期状態値を設定する。
【0057】
戻って図5を参照すると、モジュールは、ループ制御として工程111を使用し、図5Aの手順が識別されたエクステント内のトラックごとにエクステント・ブロック90およびトラック・シリンダ制御ブロック94および95を確実に取り込むようにする。追加のエクステントがデータ・セット内で処理される必要がある場合、制御は工程111から工程105に戻る。
【0058】
選択された論理デバイス内のデータ・セットのエクステントのすべての制御データが制御データ構造を取り込んでいる場合、工程111は、データ・セット内のすべての論理デバイスが確実に処理されるようにする工程112に制御を移す。そうではない場合、制御は工程104に戻り、工程103において選択されたデータ・セットのエクステントを含む別の論理デバイスを選択する。データ・セットのすべての論理デバイス内のすべてのエクステントが処理されている場合、工程112は、工程113に制御を移す。工程113は、LDMコマンドで識別されたすべてのデータ・セットが処理されていることを確実にするため、ループ制御である。追加のデータ・セットが存在する場合、制御は工程113から工程103に戻る。すべてのデータ・セットが処理されている場合、初期化モジュール51の操作は中断して、図6のデータ構造が完全に取り込まれる。
【0059】
したがって、初期化モジュール51がその操作を完了する場合、環境は、データ移行を制御するために存在する。監視機能はアクティブであり、データ構造はアクティブである。ここで、有効な初期化引数と移行および転換引数と共に送信されたLDMコマンド、または有効な移行および転換引数と共に送信された後続のLDMコマンドによって、移行および転換が開始する。
【0060】
論理データ移行−−移行および転換段階
図7は全般として、データ移行に関与する各データ・セットに対してエクステント・ベースおよび論理デバイス・ベースでデータの移行が発生する移行および転換モジュール52の操作を示す。方法は、工程120において開始し、初期化モジュール51が初期化段階を完了していることを確認する。初期化段階が完了している場合、工程120は工程121に進み、移行および転換モジュールの残りの工程を開始する。それ以外の場合、工程120は、アボート・メッセージを生成する工程122に制御を移し、移行および転換段階は終了する。
【0061】
工程121は、データ・セットを選択し、図6のエントリ82のような、データ・セット状態エントリをTRANSITION値に変更する。工程123は、データ・セットの論理デバイスを選択して、その論理デバイス状態エントリをTRANSITION値に設定することにより、同様の操作を実行する。TRANSITION値は、論理デバイスがMIGRATED状態へ遷移していることを示す。
【0062】
次に、工程124は、ブロック90によって表されるエクステントなどのエクステントをミラーリングされるように選択する。図7Aに示されるように、工程125は、「ミラー・エクステント」方法における第1の工程である。工程125は、エントリ91などのエクステント状態エントリをCOPYING値に設定して、エクステントがターゲット論理デバイスにコピーされていることを示す。エクステントが1つまたは複数の完全シリンダによって定義されない場合、工程126はエクステント内のトラックを選択する。工程127は、図3の監視モジュール54または他のリソースによって取得された情報に基づいて、任意の外部操作がソース・エクステントを変更したかどうかを判別する。変更が発生した場合、移行および転換段階は、変更を処理する手順128を経由して終了する。それ以外の場合、制御は工程130に進む。
【0063】
工程130は、トラック行内の識別されたトラックの特定のソース・トラックを識別するために、ソース制御ブロック94に注目する。列101内の対応するCOPYビットが設定されている場合、工程130は工程131に進み、ソース論理デバイス・トラック内のデータを、制御ブロック94でトラック・アドレスによって定義されているように、ターゲット論理デバイス内の対応するトラックにコピーする。工程132は、特定の実施形態に応じて、トラック・シリンダ制御ブロック94および95内のCOPYビットおよび/またはSYNCビットの状態を、トラックがコピーされていること示すように変更する。工程132がその機能を実行した後、または選択されたトラックがすでにコピーされていると工程130が判別した場合、制御は工程123に移る。エクステント内にさらにトラックが存在する場合、工程133は、次のトラックを選択する工程126に制御を戻す。代替として、データ・セット内の選択されたエクステントがシリンダ・レベルで定義されている場合、工程130から工程132は、トラック・レベルではなく完全シリンダ・レベルでさまざまな操作を確立するように変更されうる。
【0064】
エクステントがこのループで処理された場合、工程133は、ソース論理デバイス制御ブロック94に存在するエクステントに対して設定されたCOPYビットまたはSYNCビットの数をカウントする工程134に制御を移す。後に説明されるように、ユーザ・アプリケーションは、COPYING状態中にエクステント内のデータを変更することができる。したがって、ループ通過を終えた時点で、コピーされたトラックが変更されている可能性もある。そのため、変更されたトラック内のデータは、再度コピーされる必要がある。工程134は、再度コピーされる必要のあるトラックの数を決定する。トラックの数が、図6のしきい値ブロック77において確立された特定のしきい値であるか、またはそれを超える場合、工程135は、トラックを選択することによりエクステントを再度処理する工程126に制御を戻す。
【0065】
工程126から工程135を備えるこのループは、あらかじめ定められた条件が達せられるまで続行する。この特定の実施形態においてコピーを必要とするトラックの数がしきい値を下回る値まで減少したときに、あらかじめ定められた条件は達せられる。次いで、工程135は、ターゲット論理デバイス・エクステント内のデータをソース論理デバイス・エクステント内のデータに同期化させる方法において第1の工程である図7Aの工程136に制御を移す。
【0066】
これは、連続した方法であり、そのため工程136はソース論理デバイス内のエクステントをロックして、アプリケーションとソース論理デバイス・エクステントとの間の対話を妨げる。次いで、工程137は、残りの変更済みトラックからターゲット論理デバイスにデータを移行することによって、ミラーリング操作を完了する。明らかなように、この間にホスト・アプリケーションとの対話は全く発生しない。この工程が完了すると、ターゲット論理デバイスのエクステント内のデータは、ソース論理デバイスの対応するエクステント内のデータをミラーリングする。工程140は、エントリ91のような、対応するエクステント状態エントリ内のエクステント状態を、同期化がそのエクステントに対して達成されていることを示すMIRRORED値に更新する。次いで、工程141は、ホストとエクステントとの間の通信を再び可能にするように、ソース・エクステントのロックを解除する。
【0067】
工程141がエクステントのロックを解除した後、エクステントは再びユーザ・アプリケーションに使用可能になる。次いで制御は、図7、特に工程142に戻る。論理デバイス内にさらにエクステントがある場合、工程142は、次のエクステントをミラーリングする方法を繰り返す工程124に制御を移す。
【0068】
データ・セット内のすべてのエクステントが転送されると、図7の工程142は、移行が一貫した方法で実行されているかどうかを判別する工程134に制御を移す。具体的には、工程143は、LDMコマンド内の一貫性引数を検査する。引数が有効である場合、1つまたは複数のターゲット論理デバイスに移行されたデータへの転換は、同時に発生するはずである。その場合、工程143は、他の論理デバイス内の追加データ・セット・エクステントが処理される必要があるかどうかを判別する工程144に進む。データ・セットの追加論理デバイス内のエクステントが処理される必要がある場合、工程144は、選択されたデータ・セットのエクステントを含む別の論理デバイスを選択する工程123に制御を戻す。すべての論理デバイスが処理されている場合、工程144は、追加のデータ・セット内のエクステントが処理される必要があるかどうかを調べる工程145に制御を移す。
【0069】
グループの一貫性が必要とされない場合、工程143は、図7Bに示される連続した「非一貫性変換」方法を開始するために制御を移し、ここで工程146は選択された論理デバイス内のエクステントをロックする。次いで、工程147は、論理デバイス内の識別されたデータ・セット・エクステントのメタデータを更新する。次いで、工程147はさらに、図6の状態エントリ86などの論理デバイス状態エントリ、およびエントリ91などのすべての対応するエクステント状態エントリを更新することにより、DIVERTED状態を示すように、データ・セットの状態を設定する。次いで、工程148は、ソース・データ・セット・エクステントのロックを解除して、制御を図7の工程144に移す。
【0070】
すべてのデータ・セットが完了したと工程144および工程145が判別した場合、工程145は制御を工程150に移す。グループ一貫性引数がLDMコマンドで設定されていなかったと仮定して、それ以上のアクションは行われない。
【0071】
グループ一貫性が必要とされる場合、「一貫性エクステント変換」方法が開始する。明らかとなるように、非一貫性エクステント変換および一貫性エクステント変換は、相互に排他的である。非一貫性エクステント変換と同様に、一貫性変換は連続した方法である。この方法は、工程150が、グループ内のすべてのデータ・セットのすべてのソース・エクステントを並行してロックする図7Cの工程151に制御を移すと開始する。次いで、工程152は、指定されたグループ内のすべてのソース・データ・セットおよびそれらのエクステントのメタデータを更新する。次の工程153は、エントリ78、82、86、および91などのエクステントおよびデータ・セット状態エントリを更新することによって、グループ内のすべてのデータ・セット、論理デバイスおよびエクステントの状態をDIVERTED値に変える。これが完了すると、工程154は、グループ内のすべてのソース・エクステントのロックを解除する。次いで、制御は、グループ状態エントリ78を更新することによって識別されたグループをDONEとマークする図7の工程155に戻る。
【0072】
このようにして、図7A、7B、および7Cの手順を含む図7の移行および転換モジュールがその操作を完了すると、すべての入出力要求はターゲット論理デバイスに転換される。最終的に、転換方法はまた終了されうるので、移行されたデータ・セットに関連付けられているストレージ領域は他の目的に使用されうる。
【0073】
論理データ移行−−入出力要求
ホスト・アプリケーションからの入出力要求の通常の処理と並行して論理データ移行を行うことの影響を最小化するため、エクステントが移行されている間であっても、データに対するそのようなホスト・アプリケーションからの入出力要求に引き続き応答することが必要である。監視モジュール54は、この必要な機能を実行する。そのようなモジュールは、当技術分野において知られているように、監視モジュール54により特殊処理に対する入出力要求を代行受信することによって操作することができ、1つの例は、本明細書に援用する米国特許出願第10/283,976号明細書において開示されている。図8は、図1におけるUSR1アプリケーション33またはUSR2アプリケーション34などの、ユーザ・アプリケーションからの入出力要求に応答する監視モジュール54のアクションを示す。
【0074】
監視モジュール54のこの実施形態はまた、複数のホストを有するシステムにおいて使用するように適合される。マルチホスト・システムにおいて、ホスト21のような1つのホストは、「1次ホスト」または「オーナ」ホストと呼ばれる。「オーナ」は、特定のデータ・セット・グループの方法を管理するために最適なホストとしてグループのアクティブ化時に確立される。特に、実際のデータ移行のすべてではないとしても、移行の多くはオーナによって行われる可能性が高い。特定のコマンド機能は、オーナによってのみ満足されうるが、これはユーザには透過的にすることができる。図1のホスト21Aなど、その他のホストは「2次」または「非オーナ」ホストである。非オーナ・ホストは、最低限でも、結果のデータ・セットへの入出力要求を監視して、ミラーリングおよび転換段階にアクティブに参加する必要がある。各1次および2次ホストは、監視モジュール54のインスタンスを使用して入出力要求を代行受信するが、その間データ移行方法は一部の小規模な変更で進行中である。したがって、複数ホストのアプリケーションにアクセス可能なエクステントからデータを移行することが可能である。
【0075】
移行されているデータ・セットにおけるデータ転送の要求は、LDMアプリケーション50に関連付けられている移行および転換モジュール52を処理しているものと同じホスト21から生じていると仮定し、工程160は、状態、アドレス、およびその他の情報をソース論理デバイス・データ構造から取得する工程161に制御を移す。工程160は、図7Aの工程127において有用である変更の監視を含む操作を監視する方法を表している。監視モジュールが2次ホストとして動作している場合、工程160は、ターゲット論理デバイスの制御ブロック95から状態およびその他の情報を取得する工程162に制御を移す。工程162は、工程161と類似している。この情報が取得されると、制御は工程163に移る。
【0076】
工程163は、入出力要求が図6のエクステント状態エントリ90内など、対応するエクステント状態エントリによって示されるような転換されたエクステント内のトラックに方向付けられているかどうかを決定する。方向付けられている場合、図8の工程163は、図6の状態およびその他の情報を使用してソース・トラック・アドレスをターゲット・トラック・アドレスに変換する工程164に進む。工程165は、受け取った入出力要求を、ターゲット論理デバイス内の対応するロケーションへの要求に再キャストする。工程166は、ターゲット論理デバイスでこの入出力要求を完了する。それ以上の移動はソース論理デバイス内のトラックでは発生しない。
【0077】
DIVERTED状態への遷移中、個々のエクステントは、COPYまたはMIRRORED状態のいずれかで存在する。その場合、工程163は、入出力要求が書き込みコマンドを含むかどうかを判別する工程167に進む。入出力要求が読み取りコマンドのみを含む場合、制御は、要求されたデータをソース論理デバイスから取り出す工程170に移る。DIVERTED状態への遷移に先立ち、読み取りコマンドがターゲット論理デバイス内のエクステントと対話する必要はない。次いで、読み取り専用入出力要求への応答が完了する。
【0078】
エクステントへの書き込みコマンドがDIVERTED状態へのエクステントの遷移に先立って入出力要求に含まれている場合、各書き込みコマンドは、ターゲット論理デバイス内の識別された各トラックがソース論理デバイス・トラックとの同期を維持できることを確実にするような方法で処理される必要がある。エクステントがCOPY状態にある場合、工程171および工程172は、工程173に制御を移す。この工程において、監視モジュール54は、工程174を使用して、識別されたトラックのみをソース論理デバイスで更新することにより各書き込みコマンドを完了する。しかし、工程173は、COPYビットおよびSYNCビットを、トラックが再度コピーされる必要があることを示す状態に更新する。その結果、変更されたデータは、その後ターゲット論理デバイスに転送される。これで、COPY状態のエクステントを伴う書き込み操作への応答は完了する。
【0079】
書き込まれるエクステントがMIRRORED状態にある場合、工程174は再び、ソース論理デバイスに対する要求を完了する。並行して、工程171は、使用可能なマッピング・データを使用してターゲット論理デバイスへの要求を生成する工程175に制御を移す。工程176は、データをターゲット論理デバイス内の対応するトラックに書き込むことにより、ターゲット論理デバイスへの要求を完了する。したがって、データがMIRROREDエクステントに書き込まれる場合、図8の操作は、2つの結果のトラックに送信された変更済みデータが同一の状態を維持することを保証する。いずれの書き込み操作についても、工程177は、書き込み操作が完了したことを示す前に、両方の並行方法の完了を待つアクションを表す。
【0080】
データ・セットのメタデータが、あるいは一貫性グループの場合は移行されるすべてのデータ・セットが更新されると、データ・セットの構成およびアドレスを識別する必要のあるすべての情報は、一度に、ターゲット・デバイス内の新しいロケーションを指し示すように変更される。しかし、いずれかのアプリケーションが開いている間、図8の転換操作は続行する。ただし、論理デバイス内のデータ・セット・エクステントがDIVERTED状態であった後に、アプリケーションが停止されて開始される場合、つまりリサイクルされる場合、アプリケーションは、カタログ、VTOC、およびその他のテーブルなど、ストレージ・ロケーションに関する使用可能なさまざまな情報に基づいて新規または更新されたメタデータでデータ・セットを開く。その後、そのアプリケーションからの読み取り/書き込み要求は、ターゲット・デバイスと直接に対話する。これ以上、ソース論理デバイスと対話する必要、または図8に示される監視モジュール機能の操作の必要はない。
【0081】
論理デバイス移行−−終了段階
データ移行の時点で稼働していたすべてのアプリケーションが移行後にいったん終了した場合、ソース・データ・セットを保持する必要はなくなる。この条件が存在する場合、システムは終了段階に入ることができる。図9に示されるように、終了モジュール53は、方法の実行中に使用されうる遅延180を含む。工程181は、データ移行を引き続き稼働する前に任意のアプリケーションが開始したかどうかを判別するために検査を行う。すべてのアプリケーションはリサイクルされていない場合、工程182は、この検査を再度試行する前に任意の時間待機する工程180に制御を戻す。場合によっては、終了することが必要になることもあり、終了段階を完了するために論理データ移行に先立って開始した任意のアプリケーションを直ちに制限することもある。
【0082】
いずれにしても、論理データ移行中にデータと対話していたすべてのアプリケーションが、移行が完了したのでいったん閉じられた場合、工程183は、図6に示されるデータ構造などの、論理移行アプリケーションのデータ構造を、データ処理システムのすべての関連する領域から削除する。次いで、工程184は、移行されたソース・エクステントのロケーションをその他の目的に使用できるように、VTOCまたは同等のデータ構造を更新する。
【0083】
前述の説明は、1つまたは複数のソース論理デバイスから1つまたは複数のターゲット論理デバイスへ、1つまたは複数のデータ・セットを移行する方法および装置の特定の実施形態に関連する。データ移行は、単一エクステントまたは複数エクステントの単一データ・セットを伴うことができる。さらに、データ移行は、一貫した方法でグループ内のすべてのデータ・セットの転送を実行するオプションを備えるデータ・セットのグループを伴うこともできる。いかなる形式であれ、移行は、データを並行して使用することもある他のアプリケーションに透過的である。方法は、そのようなユーザ・アプリケーションによって処理されるデータにおいて最小の中断しか伴わない。
【0084】
本発明のさまざまな目的は、コマンドに応答する論理データ移行アプリケーションの利用により実現される。コマンドは、ソース論理デバイス内の移行されるすべてのエクステント、およびそれらのエクステントを受け取るターゲット論理デバイス内のロケーションを識別する。ソース・デバイス内の各エクステントに対してターゲット論理デバイス内に対応するアドレスがあるので、従来技術のデータ移行システムとは異なり、さまざまなエクステントおよびデータ・セットが単一の論理デバイスに転送されることが可能である。初期化時に、方法は、さまざまな制御データ構造を生成して取り込む。移行および転換中に、アプリケーションは、1つまたは複数のソース論理デバイスのエクステントをトラック・ベースまたはシリンダベースで、制御データ構造内のアドレス情報に基づいて、1つまたは複数のターゲット論理デバイスにコピーする。これらの操作中、監視モジュールは、この段階においては要求を処理することにより、書き込み操作の場合には制御データ構造内の情報を更新することにより、他のアプリケーションからエクステントへの入出力要求に応答する。
【0085】
移行および転換中、ターゲット論理デバイス内の各エクステントは、連続した方法でソース論理デバイス内の対応するエクステントからミラーリングされる。この方法の実行中、まだコピーされていないトラックを、ユーザ・アプリケーションによって中断されることなく、ターゲット・デバイスにコピーするため、ミラーリングされているエクステントに一定時間にわたりロックがかけられる。連続の方法はエクステントに作用するので、中断がアプリケーションに影響を与える可能性は最小化される。エクステントがミラーリングされた後、監視機能は、ソース論理デバイスおよびターゲット論理デバイスを共に更新することにより、書き込み要求に応答する。
【0086】
論理デバイス内データ・セット・エクステントまたは複数データ・セット内のデータ・セット・エクステントのグループがミラーリングされた後、移行および転換モジュールは、各エクステントをDIVERTED状態に遷移させるが、そのタイミングはグループ一貫性の要件によって決まる。論理デバイス内のデータ・セット・エクステントが転換された後、監視機能は、すべての入出力要求を代行受信し、それらをターゲット・アドレスに再キャストして、要求を再発行する。
【0087】
この転換操作は、アプリケーションがデータ・セットを閉じるときまで、任意のアプリケーションからのすべての入出力要求を処理するよう続行する。アプリケーションがそのデータ・セットを再び開いた場合、転換の時点において転換されたデータ・セットに関連するすべてのメタデータは更新されているので、入出力要求はターゲット論理デバイスに方向付けられる。
【0088】
本発明は、特定の実施形態に関して開示された。開示された装置に対して、本発明を逸脱することなく多くの変更を加えることができることは明らかとなろう。たとえば、本発明は、本発明の譲受人から入手可能なSymmetrixデータ・ストレージ設備における本発明の特定の実施形態に関して説明された。しかし、本発明の論理データ移行を実施する基本的機能は、他の種類のデータ・ストレージ設備に容易に適合される。開示はさらに、図3に示されるような論理データ移行モジュールの編成、および図4、5、5A、7、7A、7B、7C、8、および9に示されるような特定の一連の操作への特定の参照を含む。これらの手順の変形および特定の工程ごとの具体的な機能は、別の種類のデータ・ストレージ設備により本発明を実施するため、または論理データ移行システムを他のアプリケーションと統合する目的で、または市販のオペレーティング・システムで使用可能な既存のユーティリティを使用するために変更されうる。さらに、本発明は、ソース・データ・ストレージ設備内の2つの論理デバイスとターゲット・データ・ストレージ設備内の単一論理デバイスとの間の特定の移動に関して説明された。本発明は、単一データ・ストレージ設備内で移行を実行することに対して同等に適用可能である。
【0089】
図6が特定のデータ構造および編成を示すことは明らかとなろう。当業者であれば、この特定の構造および編成を実施する知識、または具体的に開示された構造および編成の実施に他の構造および編成を適用する知識を備えるであろう。
【0090】
前述のように1つまたは複数の論理デバイスから異なる1つまたは複数の論理デバイスへデータを移行するようにシステムを動的に再構成する時期を決定するためのメトリクスを備えることは有用である。場合によっては、データを移行する決定は古いハードウェアの段階的廃止に従って行われることもあるが、データが格納されるデバイスのパフォーマンスが期待に応えていないときにデータを移行することが有用になる場合もある。
【0091】
アイビーエムコーポレーション(IBM Corporation)は、データ・セットが作成されたときに入力される基準に基づいてデータ・セットの割り当てを可能にするDFSMSを提供する。たとえば、ユーザがデータ・セットの特定のパフォーマンス(たとえば、特定のミリ秒応答時間)を備えることに関心がある場合、ユーザは望ましいパフォーマンス特性をDFSMSに入力して、望ましいパフォーマンス特性を満たすかまたはこれを超えるとされる適切なストレージ・デバイスを自動的に割り当てられる。しかし、このシステムには限界がある。まず第1に、最初の割り当て後にストレージ・デバイスがパフォーマンス要件を満たさない場合、データ・セットが別のアプリケーションによってアクセスされている間に、すでに割り当てられたデータ・セットを再割り当てするための機構は、DFSMSでは容易に提供されない。そのような場合、ユーザは、パフォーマンスの不足に気づき、新しいデータ・セット・スペースを別のデバイス上に手動で割り当て、そのデータ・セットにアクセスしているすべてのアプリケーションを終了して、古いデバイス上の古いデータ・セット・スペースから新しいデバイス上の新しいデータ・セット・スペースへデータを移動させる。さらに、時には、データ・セットの望ましいパフォーマンスは変化する。たとえば、ユーザは当初、4ミリ秒の応答時間を備えるデータ・セットを割り当てる場合がある。後に、ユーザは、状況の変化により、あるいはユーザが必要なパフォーマンスを過小評価していたために、3ミリ秒の応答時間のほうがより適切であると判断することもある。先の例の場合と全く同様に、ユーザは、パフォーマンスの不足に気づき、新しいデータ・セット・スペースを別のデバイス上に手動で割り当て、そのデータ・セットにアクセスしているすべてのアプリケーションを終了して、古いデバイス上の古いデータ・セット・スペースから新しいデバイス上の新しいデータ・セット・スペースへデータを移動させることになる。
【0092】
したがって、データ・セットのパフォーマンスを自動的に監視して、パフォーマンスが適切ではない場合にデータ・セットを再割り当てできることが望ましい。さらに、データ管理目標などの、任意の他の適切な基準に基づいてデータ・セットを自動的に再割り当てできることが望ましい。
【0093】
図10を参照すると、流れ図200は、本明細書に説明されるシステムと関連して実行される、自動的にデータ・セットのパフォーマンスを監視して適切な場合にデータ・セットを異なるデバイスに再割り当て(移動)する工程を示す。場合によっては、データ・セットは複数のデバイスにわたって分散されうることに留意されたい。したがって、データ・セットの一部(たとえば、特定のデバイス上の部分)のみを、他の部分を移動させることなく移動することが可能である。したがって、本明細書の説明では、データ・セットを再割り当て(移動)することはまた、データ・セットの一部のみを再割り当て(移動)することも示すことを理解されたい。
【0094】
処理は、データ・セットが格納されているストレージ・デバイスの実際のパフォーマンスを測定する最初の工程202で開始する。ストレージ・デバイスのパフォーマンスを測定することは、極めて簡単明瞭であり、たとえば、デバイスによって直接提供されるか、またはストレージ・デバイスに関連付けられている他の値に基づいて特性を確認することによって提供されるパフォーマンス特性の記録を伴う。使用されうる可能なパフォーマンス特性については、本明細書の他の部分で説明される。
【0095】
工程202に続くのは、工程202において測定された実際のパフォーマンスが望ましいパフォーマンスと比較されて、実際のパフォーマンスが望ましいパフォーマンスを満足するかまたはそれを上回るかどうか判別される工程204である。本明細書において使用される「パフォーマンス」は、本明細書の他の部分で説明されるデータ管理目標(たとえば、使用されるリモート・ミラーリングの種類)を含むように広義に解釈されうることに留意されたい。工程202と同様に、工程204は極めて簡単明瞭である。本明細書の他の部分において詳細に説明されているように、望ましいパフォーマンス特性のセットは、各データ・セットおよび/またはデータ・セットのグループに関連付けられうる。工程204に続くのは、工程204の比較の結果が良好である(つまり、実際のパフォーマンスが望ましいパフォーマンスを満足するかまたはそれを上回る)かどうかを判別する検査工程206である。比較の結果が良好ではない場合、つまり、実際のパフォーマンスがユーザの望ましいパフォーマンスを満足しないかまたはそれ以下になる場合、制御は、検査工程206から、データ・セットの新しいデバイスが選択される工程208に移る。工程208において新しいデバイスを選択することについては、本明細書の他の部分で詳細に説明される。工程208に続くのは、本明細書の他の部分で説明されている、データが移行される工程209である。
【0096】
実際のパフォーマンスが望ましいパフォーマンスを満足するかまたはそれを上回る場合に、工程209に続く、または工程206に続くのは、プロセッサが待機する工程212である。工程212は任意であるが、流れ図200におけるループのタイミングを制御するために便宜的に使用されうる。工程212に続いて、制御は、前述の工程202に戻る。
【0097】
図11を参照すると、流れ図220は、新しいデバイスが選択される図10の流れ図200の工程208を詳細に示す。流れ図220の処理は、デバイス索引DIが1に設定される最初の工程222で開始する。デバイス索引DIは、選択されうるすべての可能なストレージ・デバイスを通して繰り返すために使用される。工程222に続くのは、基準索引CIが1に設定される工程224である。基準索引CIは、どのデバイスが望ましい基準を満足するかしないか、またはそれを上回るか上回らないかを判別するために、すべての可能な基準を通して繰り返すために使用されうる。
【0098】
工程224に続くのは、デバイス索引基準DIが、可能なデバイスの数に対応するあらかじめ定められた値(工程226においてDIMAXと呼ばれる)を上回るかどうかを判別する検査工程226である。上回る場合、制御は、工程226から、エラーが通知される工程228に移る。デバイス索引DIが可能なデバイスの数を上回る場合、望ましい基準を満足するデバイスはないことに留意されたい。したがって、許容可能なデバイスがないことを呼び出しルーチンにアラートするために、工程228においてエラーが通知される。工程228の後、処理は完了する。
【0099】
DIがデバイスの数よりも大きくないことが検査工程226において判別された場合、制御は、検査工程226から、基準索引CIが可能な基準の数に対応するあらかじめ定められた数(CIMAX)を上回るかどうかを判別する検査工程232に移る。上回る場合、制御は、工程232から、DEV[DI]と呼ばれる検査対象の特定のデバイスをルーチンが返す工程234に移る。システムがすべての基準を通して繰り返し、検査対象の特定のデバイスDEV[DI]が各基準を満足するかまたは上回る場合、CIは、可能な基準の数(CIMAX)を超えるまで引き続き増分されるが、その場合デバイスDEV[DI]は望ましい基準をすべて満足しているかまたは上回っていることに留意されたい。工程234の後、処理は完了する。
【0100】
基準索引CIが可能な基準の数を超えないことが検査工程232において判別された場合、制御は、検査工程232から、検査対象のデバイスDEV[DI]が特定の基準CRIT[CI]を満足するかまたは上回るかどうかが判別される検査工程236に移る。満足するか上回る場合、制御は、検査工程236から、基準索引CIが増分される工程238に移る。工程238に続いて、制御は、前述の検査工程232に戻る。
【0101】
工程236においてデバイスDEV[DI]が特定の基準CRIT[CI]を満足しない場合、制御は、工程236から、デバイス索引DIが増分される工程242に移る。したがって、工程236は、望ましい基準のすべてを満足しないデバイスを拒否する。工程242の後、制御は、別のデバイスの基準の繰り返しを開始するために基準索引CIが1に設定される工程224に戻る。したがって、流れ図220の工程は、工程228によって証明されるように、望ましい基準のすべてを満足するデバイスがなくなるまで、または工程234によって証明されるように、すべての望ましい基準を満たすデバイスが少なくとも1つあるまで実行される。このようにして、望ましい基準を満足するデバイスがないことを示す工程228に到達するか、または望ましい基準をすべて満足する少なくとも1つのデバイスがあることを示す工程234に到達する。
【0102】
DFSMSに関連して前述されたミリ秒応答時間の基準に加えて、データ・セットまたはデータ・セットのグループのストレージ・デバイスを選択するために他の基準が使用されうる。その他の基準は、読み取りパフォーマンス時間、書き込みパフォーマンス時間、制御パフォーマンス時間、ミラー・パフォーマンス時間(つまり論理デバイスのミラーリングのパフォーマンス)、ストレージ・デバイスへの接続タイプ(たとえば、FICON、ESCON、並列チャネル、IP接続ストレージなど)、ローカル・ミラーリング・タイプ(たとえば、RAID1、RAID5、RAID10など)、リモート・ミラーリング・タイプ(たとえば、J0/J1 RDF、適応コピーRDF、SRDF/A、SAR、STAR、PPRC(変形を伴う)など)、最大データ・セット・サイズ、日付依存パフォーマンス、バックアップ頻度、およびバックアップの回数を含む。本明細書において使用される「パフォーマンス」は、データ管理目標(たとえば、使用されるリモート・ミラーリングの種類)を含むように広義に解釈されうることに留意されたい。したがって、パフォーマンス基準は、ミラーリングの種類または最大データ・セット・サイズなどの事項を含むように広義に解釈されうる。一般に、パフォーマンス基準は、確認することができ、データ・セットが配置される可能性のあるストレージ・デバイス間で異なることもある、システムの任意の望ましい特性であってもよい。
【0103】
工程202においてパフォーマンスを測定し、工程204においてパフォーマンスを比較するために、適切な機構が使用される。したがって、たとえば、バックアップの頻度の基準が使用される場合、工程202における実際のパフォーマンス測定は、特定のストレージ・デバイスのバックアップの頻度であるが、工程204において実際の基準202と比較される値は、特定のデータ・セットまたはデータ・セットのグループについてユーザにより提供されるバックアップの望ましい頻度である。同様に、基準が接続タイプである場合、工程202において測定される実際のパフォーマンスは、工程204でデータ・セットまたはデータ・セットのグループについてユーザに望まれる(たとえば、ESCON)接続タイプと比較されるストレージ・デバイスへの実際の接続である。これらのさまざまな基準を測定し、これらのさまざまな基準を実際の基準と比較することは、当業者には簡単明瞭である。その他の任意の適切な基準も使用されうる。データ・セットおよび/またはデータ・セットのグループに関連付けられている望ましいパフォーマンスは、それ自体がデータ・セット内に格納されるか、または他の適切な手段によって保持されうることに留意されたい。同様に、測定される実際のパフォーマンスはまた、データ・セットに格納されるか、または他の適切な手段によって保持される。
【0104】
本明細書に説明されるシステムは、DFSMSによって提供されるクラスのセットと類似したクラスの並列セットを使用して、DFSMSと共に使用される。本明細書において説明される機能にDFSMSを提供するためにフックとして使用される他の機構があってもよい。任意のデータ・セットを移行するかどうか判別するためにシステムが使用するパフォーマンス/管理規則をユーザが指定することができる機構を提供することにより、DFSMSを使用することなく本明細書に説明されるシステムを実施することも可能である。
【0105】
図12を参照すると、流れ図200’は、図10の流れ図200によって示される処理の代替実施形態を表している。図12の流れ図200’によって示される実施形態において、ユーザは、たとえ望ましいパフォーマンス(またはデータ管理特性)が満足されていないことをシステムが検出したとしても、移動を中止する選択肢を有する。流れ図200の要素と同じ参照番号を有する流れ図200’の要素は、類似した機能を実行するので、以下では説明されない。
【0106】
工程204の比較の結果が良好ではないことが検査工程206(前述)において判別される場合、制御は工程206から、データ・セットが移動されるべきであることを確認するプロンプトがユーザに表示される工程262に移る。工程262に続くのは、ユーザがデータ・セットの移動を中止することを決定したかどうか判別する検査工程264である。中止を決定した場合、制御は、工程264から、前述の工程212に移る。それ以外の場合、ユーザが移動を中止しないことを選択すると、制御は、工程264から、前述の工程208に移る。場合によっては、データ・セットが移動されないことをユーザが最初に示した後、あまり頻繁に(または絶えず)プロンプトがユーザに表示されないように、フラグを設定することが望ましいこともある。
【0107】
一部の実施形態において、ユーザがデバイスおよび/またはデータ・セットのサブセットの選択的な監視を要求することができる機構を提供することが可能であることに留意されたい。そのような機構は、システムによりアクセスされる構成ファイルの使用、ユーザへのプロンプト表示などを含む多くの方法で提供されうる。
【0108】
場合によっては、ディスクまたはテープ、あるいは他の媒体上のデータが危険にさらされる可能性があるという懸念もある。特にデータが数千の顧客の個人記録を含むような場合にはなおさらである。状況によっては、データを使用する任意のアプリケーションを変更する必要なく、データ暗号化を提供することが望ましい。以下で詳細に説明されるように、本明細書に説明されるデータ移行機構を使用して、そのようなアプリケーションに依存しない暗号化を提供することも可能である。
【0109】
図13を参照すると、データ移行アプリケーション50’は、アプリケーション50’が、初期化モジュール51、移行および転換モジュール52、終了モジュール53、および監視モジュール54を含むという点において、図3のデータ移行アプリケーション50と類似している。アプリケーション50’はまた、データが移行されるときにデータを暗号化するために使用されうる暗号化モジュール302を含む。しかし、本明細書の他の部分で説明されるように、データはまた、別のロケーションに移行されることなく暗号化されうる。本明細書に説明されるシステムは、ディスク・ストレージ、テープ、DVDなどを含む、任意の種類のストレージ媒体またはデバイスとの間で、暗号化/復号化を提供することができる。
【0110】
本明細書の1つの実施形態において、暗号化モジュール302は一般に知られた、公的に提供されている暗号化/復号化アルゴリズムを使用することができる。たとえば、アルゴリズムは、暗号鍵が公的に周知で使用可能であり、復号鍵がデータの復号化に復号鍵を使用する1つまたは複数のエンティティによって秘密にされるようなものであってもよい。そのような暗号化/復号化システムの場合、公開暗号鍵の知識は、復号鍵および/または暗号化されていないテキストのアクセスまたは知識を提供しない。そのような暗号化/復号化技法の例は、アールエスエイシステムズ(RSA Systems)[米国マサチューセッツ州ベッドフォード(Bedford)所在]によって提供される公開鍵暗号化を含む。
【0111】
他のシステムも、暗号化/復号化に使用されうる。たとえば、暗号化/復号化は、IBMによって提供されるS/390システムなど、IBM Common Cryptographic Architecture(CCA)を使用する1つまたは複数のシステムによって提供されうる。公開鍵に依存しないが、代わりに秘密鍵のみを使用する他のシステムも使用されうる。そのようなシステムでは、復号時に鍵の暗号漏洩を防ぐために講じられる対策が、暗号化の時点でも鍵に適用されうる。
【0112】
図14を参照すると、平文(暗号化されていない)データを暗号化モジュール302に提供する入力を有するものとして、暗号化モジュール302が詳細に示される。暗号化モジュール302はまた、暗号鍵を入力として受け取る。本明細書の他の部分で説明されるように、暗号鍵は、公的に周知で使用可能であるため、特殊な処理またはボールトを必要としないこともある。図14はまた、暗号化モジュール302の出力が暗号化データであることも示す。操作中、暗号化されていないデータは、暗号鍵と共に暗号化モジュール302への入力として提供される。暗号化モジュール302は、多くの周知の公的に使用可能な公開鍵暗号化アルゴリズムのうちのいずれかを使用して、データを暗号化することができる。
【0113】
図15を参照すると、流れ図310は、データ移行が本明細書に説明される暗号化と結合されるときにデータ移行の一部に関連して実行される工程を示す。流れ図310の工程は、トラックがソース論理デバイスからターゲット論理デバイスにコピーされる図7Aの流れ図の工程131に関連して実行される。流れ図310の工程はまた、図7Aの流れ図の工程137に関連して実行される。工程137において、残りのデータは、データ移行に関連してソース論理デバイスからターゲット論理デバイスにコピーされる。
【0114】
流れ図310の処理は、暗号鍵が取得される最初の工程312で開始する。本明細書の他の部分で説明されるように、暗号鍵は、公的に使用可能で周知であり、ボールトされるかまたは秘密にされる必要はない、公開鍵暗号方式を使用することが可能である。工程312に続くのは、ソース論理デバイスからターゲット論理デバイスにコピーされているデータに暗号鍵が適用される工程314である。工程314に続くのは、暗号化されたデータがターゲット論理デバイスに提供される工程316である。工程316の後、処理は完了する。
【0115】
本明細書の他の部分で説明されるように、このように暗号化されたデータの復号化は、復号鍵が秘密にされる必要があるため、いくぶん複雑になる。本明細書の他の部分で説明されるように、復号鍵の秘密性を保持するいくつかの技法がある。本明細書に説明されるシステムの場合、暗号鍵は、データを格納するストレージ・デバイス内に保持されるか、またはデータ移行アプリケーションで保持されて、悪意のある(無許可の)ユーザが暗号化されたデータをテープまたは他の媒体にコピーしようとするか、またはストレージ・デバイスから1つまたは複数のドライブを削除しようとした場合に、暗号鍵はストレージ・デバイスまたはデータ移行アプリケーションで保持されているので許可のあるユーザにしか使用できないため、暗号化されたデータは使用不可能になるようになっている。これを実施するために使用されうる機構については、本明細書の他の部分で説明される。
【0116】
図16を参照すると、流れ図320は、データ暗号化に関連して実行されうる工程を示す。処理は、データが秘密鍵を使用して復号化される最初の工程322で開始する。工程322においてデータを復号化することについては、本明細書の他の部分で詳細に説明される。工程322に続くのは、復号化されたデータがストレージ・デバイスの許可ユーザに提供される工程324である。工程324の後、処理は完了する。
【0117】
本明細書において説明されている機能は、別のロケーションへのデータ移行、「同所」データ移行(本明細書の他の部分で説明)に関連して、または1つまたは複数のボリューム、ファイル、および/またはその他の種類のストレージ・ユニットのストレージ方法の一部として実施されうることに留意されたい。たとえば、ユーザは、機密データを格納するために特定の論理ボリュームを作成することも、そのボリュームに格納されるデータを常時暗号化するようシステムを構成することもできる。その場合、システムは、暗号化されるためにデータがそのボリュームに書き込まれるようにし、復号化されるためにデータが(許可ユーザによって)そのボリュームから読み取られるようにする。本明細書の他の部分で説明される用に、暗号化/復号化は、ホスト上で稼働しているアプリケーションには透過的な方法で実行されうる。たとえば、暗号化/復号化機能は、ストレージ・デバイス上で提供される。代替として、暗号化/復号化機能は、暗号化および復号化を行うために、ストレージ・デバイスからのホストの読み取りおよびストレージ・デバイスへのホストの書き込みを代行受信する方法を使用して、1つまたは複数のホスト上で提供される。
【0118】
図17Aを参照すると、図340は、ストレージ・デバイスが不正改ざん防止モジュール342を含む実施形態を示す。図340はまた、ストレージ・デバイスの内部にあるメモリ346に結合された複数のディレクタ344a〜344cを示す。ディレクタ344a〜344cはそれぞれ、ホスト・アダプタ、ディスク・アダプタ、および/またはリモート・アダプタを表すことができる。本明細書の実施形態において、最大16のディレクタがメモリ346に結合されうる。もちろん、他の実施形態では、使用されうるディレクタの最大数がこれよりも多いかまたは少ない場合もある。
【0119】
340で表される図はさらに、ディレクタ344a〜344cおよび/または不正改ざん防止モジュール342の間の代替通信パスを提供するオプションの通信モジュール(CM)348を示す。ディレクタ344a〜344cおよび/または不正改ざん防止モジュール342のうちのいずれかが、メモリ346を経由する必要なくメッセージおよび/またはデータを他のディレクタ344a〜344cおよび/または不正改ざん防止モジュール344のいずれかに送信することができるように、各ディレクタ344a〜344cおよび/または不正改ざん防止モジュール342はCM348に結合される。CM348は、ディレクタ344a〜344cおよび/または不正改ざん防止モジュール342の1つを送信することで適切なアドレスを供給し、メッセージおよび/またはデータがディレクタ344a〜344cおよび/または不正改ざん防止モジュール342のうちの1つの意図された受信側によって受信されるようにする標準的なMUX/ルータ技術を使用して実施される。加えて、ディレクタ344a〜344cおよび/または不正改ざん防止モジュール342の1つを送信することで、他のディレクタ344a〜344cおよび/または不正改ざん防止モジュール342のすべてに同時にメッセージをブロードキャストすることが可能になる。
【0120】
図17Bを参照すると、350で表される図は、ストレージ・デバイス356に結合された複数のホスト352〜354を含む実施形態を示す。ホスト352〜354はそれぞれ、相互に独立しているストレージ・デバイス356と対話することができる。代替として、ホスト352〜354の一部または全部は、一斉にストレージ・デバイス356と対話することができる。350で表される図は、ホスト352が不正改ざん防止モジュール342を含むが、ホスト354は独自のバージョンの不正改ざん防止モジュール342’を含むことを示す。350で表される図によって示される実施形態において、不正改ざん防止モジュール342、342’の機能は、ストレージ・デバイス356(図17Aの図340によって表される)から、ホスト352〜354の各々に移動される。
【0121】
ホスト352〜354のすべてが不正改ざん防止モジュールを有することは必要ではないことに留意されたい。たとえば、350で表される図は、不正改ざん防止モジュールを含まないものとして353のホストを示す。一部の実施形態において、本明細書に説明される暗号化/復号化機能を実行するホストに不正改ざん防止モジュールを備えることだけが必要である。また、暗号化はストレージ・デバイスまたはホストの1つのいずれでも実行させることは可能であるが、暗号化はもう一方の側で実行されること、そして一般に本明細書に説明される機能は、適切なデバイスまたはデバイスの組み合わせで提供され、操作中であっても移動されうることに留意されたい。
【0122】
特定のボリューム、ファイル、または他のストレージ・ユニットに対してデータが常時暗号化される(つまり、データが、作成時点およびその後に暗号化される)ような場合において、ホストとストレージ・デバイス間のデータの平文伝送を防止するために不正改ざん防止モジュール342をホストに備えることは有利となることに留意されたい。一方、(同所でまたは別のロケーションへの)データ移行に関連してデータが暗号化されるような場合は、ストレージ・デバイスの一部として不正改ざん防止モジュール342を備えることが有利となりうる。もちろん、不正改ざん防止モジュールを、ストレージ・デバイスの一部と1つまたは複数のホストの一部に共に備えることも可能である。加えて、本明細書に説明される機能を、ストレージ・デバイスおよびホストの両方から分離するかまたは少なくとも部分的に分離して提供することも可能である。
【0123】
図17Aに関連して説明された実施形態および図17Bに関連して説明された実施形態(およびその他の実施形態)について、不正改ざん防止モジュール342は、不正改ざん防止モジュール342内部のデータの検査を許可しないハードウェア、ソフトウェア、またはそれらの組み合わせを使用して実施される。たとえば、不正改ざん防止モジュール342がハードウェア(たとえば、シングル・チップ)を使用して実施される場合、ハードウェアは、誰かがハードウェアを開こうと試みるごとにアクティブ化される自動消滅機構を備えてもよい。不正改ざん防止モジュールは、本明細書の他の部分で説明される、IBMによって提供される(z/390システム(z/Architecture))を使用して実施される。
【0124】
図18を参照すると、図360は、不正改ざん防止モジュール342のコンポーネントを示す。不正改ざん防止モジュール342は、ハードウェア、ソフトウェア、またはその適切な組み合わせを使用して実施されうることに留意されたい。不正改ざん防止モジュール342が、ソフトウェアおよび/または大量のソフトウェアを使用して実施される場合、ストレージ・デバイスは、不正改ざん防止モジュール342への特定のアクセスのみを許可するように構成されうる。
【0125】
360で表される図は、鍵データベース362および復号モジュール364を含むものとして不正改ざん防止モジュール342を示す。鍵データベース362は、データの暗号化および復号化に使用されるすべての公開鍵/秘密鍵のペアを含むことができる。不正改ざん防止モジュール342は、出力として、鍵データベース362からの公開鍵(ただし公開鍵のみ)を提供する。本明細書の他の部分で説明されるように、公開鍵は、秘密ではなく、データを暗号化したいと望むエンティティには既知であるかまたは認識可能である。
【0126】
鍵データベース362に格納されている公開鍵/秘密鍵ペアの秘密鍵は、復号モジュール364に提供される。復号モジュール364は、不正改ざん防止モジュール342の外部から暗号化されたデータを受け取り、不正改ざん防止モジュール342の出力として復号化されたデータ(平文データ)を提供する。本明細書の実施形態において、鍵データベース362、復号モジュール364、またはそれらの間のデータ通信パスには、外部アクセスは全く提供されない。これは、開かれた場合に自動消滅する不正改ざん防止ハードウェア(たとえば、チップ)を使用して実施されうる。代替として、鍵データベース362、復号モジュール364、および/またはそれらの間のデータ・パスへのアクセスを禁止するソフトウェア/システムの実装があってもよい。
【0127】
一部の実施形態において、構成モジュール366は、データを鍵データベース362に提供するために使用されうる。構成モジュール366は、適切に安全であり、許可のあるユーザにのみアクセス可能にすることができる。構成モジュール366を使用する実施形態において、構成モジュール366のみが、鍵データベース362に公開鍵/秘密鍵ペアを提供することができる。そのような機構を備えることで、悪意のあるユーザが、データに不正アクセスするために、その独自の公開鍵/秘密鍵ペアを鍵データベース362に提供しないよう防止する。
【0128】
構成モジュール366を備えているかどうかにかかわらず、エンティティが鍵データベース362にデータを書き込むことのみを許可され、データを読み取ることを許可されていない限り、合法的に生成された公開鍵/秘密鍵ペアが危険にさらされることは困難になることに留意されたい。
【0129】
本明細書において説明されているシステムは、論理データ移行の後に、(許可ユーザによって)暗号化されたデータの読み取りで、不正改ざん防止モジュール342を使用してデータを復号化するような論理データ移行に関連して実施されうる。他の機構が、暗号化されたデータを管理するために使用されうることにも留意されたい。たとえば、ストレージ・システム上に格納されるデータがすべて常時暗号化された状態になるように、データがストレージ・デバイスに書き込まれるときは常に暗号化され、ストレージ・デバイスから読み取られるときは常に復号化されるようなシステムを備えることが可能である。そのような機構は、ユーザがデータを暗号化するかしないかを選択できるように、オプションのフラグによってアクティブ化されてもよい。さらに、本明細書において説明されるシステムは、データの読み取りおよび書き込みを行うストレージ・デバイスのマイクロコードを含む、あらゆるコードのレベルにおいて実装されうることに留意されたい。システムは、書き込まれるデータが暗号化され、(許可ユーザによって)読み取られるデータが復号化されるように、データ読み取りおよびデータ書き込みを代行受信することによって実施されうる。
【産業上の利用可能性】
【0130】
本明細書に説明されるシステムは、たとえばデータ圧縮を含む、他の任意のデータ変更アルゴリズムに加えて実装されてもよい。暗号モジュールおよび復号モジュールはデータを同時に圧縮することができ、かつ/またはデータは暗号化/復号化の前または後までに圧縮される。さらに、一部の実施形態について、暗号化/復号化アルゴリズムがユーザ独自のカスタマイズ・アルゴリズムを提供するユーザにしか知られないように、ユーザがデータの暗号化および復号化にカスタマイズ・モジュールを提供し、システムが読み取りおよび書き込み(およびデータ移行)のデータ・ストリームを代行受信するフックを提供する暗号化/復号化がユーザ・モジュールによって提供される。本明細書の実施形態において、暗号化されたデータは、復号化されたデータと同じサイズである。
【0131】
本明細書に説明されるシステムは、データが特定のロケーションから読み取られ、暗号化された後、同じロケーションに戻される「同所」データ移行を使用して実施されうる。そのようなシステムにおいて、各ブロックが暗号化されるかどうかを示すために、フラグ(または他の適切な機構)が使用されてもよい。もちろん、データを別のロケーションに移動せざるを得ない状態を避けるために、暗号化されたデータが暗号化されていないデータと同じサイズであれば有益である。また、特定のブロックがすでに暗号化されているかどうかを示すインジケータ(たとえばフラグ)の値に応じて、各ブロックが復号化されることも復号化されないこともある、そのような「同所」移行が発生している間にファイル(またはボリューム)をアクセス可能にできることにも留意されたい。「同所」移行が完了すると、ファイル(またはボリューム)のすべてのデータは暗号化されて、インジケータを確認する必要はもはやなくなる。
【0132】
セキュリティを追加するために、公開鍵/秘密鍵ペアがストレージ・デバイスによって認識される機関によりデジタル署名される必要があることを要求することができる。したがって、公開鍵が公認の機関(たとえば、PKI CA)によってデジタル署名されていない限り、すべての公開鍵/秘密鍵ペアを拒否する機構があるので、鍵データベース362に独自の公開鍵/秘密鍵ペアを書き込もうと試みる悪意ある(無許可の)ユーザは困難におちいる。一部の実施形態において、セキュリティを追加するために、機関は、証明書が改ざんされていない(つまり引き続き有効である)ことを示す独自のデジタル証明書および証拠を提示することを要求されうる。そのような証拠は、X−509 PKI CRLの形態をとるか、またはデジタル証明書が失効していないことを証明する他の適切な機構であってもよい。一部の実施形態において、機関によって提示されるデジタル証明書は、公開鍵/秘密鍵ペアの一部である公開鍵を含むこともできる。
【0133】
したがって、前述のすべての説明と、本発明の真の精神および範囲にあるその他の変形および変更を対象とすることは、添付の特許請求の範囲の目的である。
【図面の簡単な説明】
【0134】
【図1】本発明から利益を享受することができ、複数データ・ストレージ設備を含む複数ホスト・データ処理システムを示すブロック図。
【図2】アプリケーションとデータ・セットとの間の標準的な従来技術の対話を示す流れ図。
【図3】本発明により動作する論理移行アプリケーションの編成を示すブロック図。
【図4】コマンドに応答する論理移行アプリケーションの動作を示す流れ図。
【図5】図3に示される初期化モジュールの動作を示す流れ図。
【図5A】図5に示される動作を示す詳細な流れ図。
【図6】図5に示される初期化モジュールによって生成されたデータ構造の1つの例を示すブロック図。
【図7】図3に示される移行および転換モジュールの動作を示す流れ図。
【図7A】図7に示される動作を示す詳細な流れ図。
【図7B】図7に示される動作を示す詳細な流れ図。
【図7C】図7に示される動作を示す詳細な流れ図。
【図8】図3に示される監視モジュールの動作を示す流れ図。
【図9】図3に示される終了モジュールの動作を示す流れ図。
【図10】動的データ・セット移行を実行するかどうかを決定する工程を示す流れ図。
【図11】データ・セット移行に対するターゲット論理デバイスの選択を示す流れ図。
【図12】動的データ・セット移行を実行するかどうかを決定する代替実施形態を示す流れ図。
【図13】本発明により動作する論理移行アプリケーションの代替実施形態の編成を示すブロック図。
【図14】本明細書において説明されるシステムによる暗号化モジュールの実施形態を示す図。
【図15】データ移行が本明細書に説明される暗号化と結合されるときにデータ移行に関連して実行される工程を示す流れ図。
【図16】本明細書に説明されるシステムによるデータ暗号化に関連して実行されうる工程を示す流れ図。
【図17A】ストレージ・デバイスが不正改ざん防止モジュールを含む実施形態を示す図。
【図17B】複数のホストデバイスが各々不正改ざん防止モジュールを含むことができる実施形態を示す図。
【図18】本明細書に説明されるシステムの実施形態による不正改ざん防止モジュールのコンポーネントを示す図。

【特許請求の範囲】
【請求項1】
ストレージ・デバイス上でデータを管理する方法であって、
該ストレージ・デバイス上に該データを格納するアプリケーションに透過的である、暗号化されていないデータが該ストレージ・デバイス上に格納されることを中断すること、
該ストレージ・デバイス上に格納する前に該データを暗号化すること、
を備える方法。
【請求項2】
前記ストレージ・デバイスはテープ・ドライブを含む、請求項1に記載の方法。
【請求項3】
前記ストレージ・デバイスはディスク・ドライブを含む、請求項1に記載の方法。
【請求項4】
第1のストレージ・ロケーションから第2のストレージ・ロケーションへデータを移行すること
をさらに備える、請求項1に記載の方法。
【請求項5】
前記第1のストレージ・ロケーションは前記第2のストレージ・ロケーションと同じである、請求項4に記載の方法。
【請求項6】
前記第1のストレージ・ロケーションは前記第2のストレージ・ロケーションと異なる、請求項4に記載の方法。
【請求項7】
暗号化されていないデータは移行中に中断される、請求項4に記載の方法。
【請求項8】
前記ストレージ・デバイスから読み取られたデータを復号化すること
をさらに備える、請求項1に記載の方法。
【請求項9】
データを復号化することは、使用が制限されている秘密復号鍵を使用する工程を含む、請求項6に記載の方法。
【請求項10】
前記秘密鍵へのアクセスを制限する、秘密鍵を格納してデータを復号化する不正改ざん防止モジュールを使用すること
をさらに備える、請求項9に記載の方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図5A】
image rotate

【図6】
image rotate

【図7】
image rotate

【図7A】
image rotate

【図7B】
image rotate

【図7C】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17A】
image rotate

【図17B】
image rotate

【図18】
image rotate


【公表番号】特表2008−544410(P2008−544410A)
【公表日】平成20年12月4日(2008.12.4)
【国際特許分類】
【出願番号】特願2008−518452(P2008−518452)
【出願日】平成18年6月23日(2006.6.23)
【国際出願番号】PCT/US2006/024535
【国際公開番号】WO2007/002438
【国際公開日】平成19年1月4日(2007.1.4)
【出願人】(503093224)イーエムシー コーポレイション (63)
【氏名又は名称原語表記】EMC CORPORATION
【Fターム(参考)】