(57)【要約】【課題】コントローラが、コントローラに結合された第１のストレージ・ユニットから暗号化されたデータを受信する、方法、システム、および製品を提供すること。【解決手段】受信した暗号化されたデータは、コントローラに結合された第２のストレージ・ユニットに格納され、このコントローラは、第１のストレージ・ユニットに比べて高速で第２のストレージ・ユニットにアクセスすることができる。暗号化されたデータは、少なくとも１つの条件が満たされるまで、第２のストレージ・ユニット内で維持される。【選択図】  図１
2009534726.tif 000002
【特許請求の範囲】
【請求項１】
コントローラ内で実装される方法であって、
コントローラに結合された第１のストレージ・ユニットから暗号化されたデータを受信するステップと、
前記受信した暗号化されたデータを、前記コントローラに結合された第２のストレージ・ユニットに格納するステップであって、前記コントローラは、前記第１のストレージ・ユニットに比べて高速で前記第２のストレージ・ユニットにアクセスすることが可能な、格納するステップと、
前記暗号化されたデータを、少なくとも１つの条件が満たされるまで、前記第２のストレージ・ユニット内で維持するステップと、
を含む方法。
【請求項２】
前記コントローラによって、前記第２のストレージ・ユニット内で維持される前記暗号化されたデータにアクセスするための要求を受信するステップであって、前記第２のストレージ・ユニット内で維持される前記暗号化されたデータにアクセスするための前記要求を受信すると同時に、前記少なくとも１つの条件が満たされる、受信するステップと、
前記第２のストレージ・ユニット内で維持される前記暗号化されたデータが、前記第２のストレージ・ユニット内で維持される前記暗号化されたデータにアクセスするための前記要求の受信に応答して、復号されるステップと、
をさらに含む、請求項１に記載の方法。
【請求項３】
前記第２のストレージ・ユニットに関連付けられた暗号化インジケータ・データ構造を維持するステップであって、前記暗号化インジケータ・データ構造は、前記第２のストレージ・ユニット内で維持されるデータが暗号化されているかどうかを示すことができる、維持するステップと、
前記暗号化インジケータ・データ構造を、前記第２のストレージ・ユニット内で維持される前記暗号化されたデータの復号化に応答して、前記第２のストレージ・ユニット内で維持される前記暗号化されたデータが暗号化されていないことを示すように更新するステップと、
をさらに含む、請求項２に記載の方法。
【請求項４】
前記コントローラによって、前記コントローラ上のロードが所定のしきい値未満であることを決定するステップであって、前記コントローラ上の前記ロードが前記所定のしきい値未満であることが前記コントローラによって決定されると同時に、前記少なくとも１つの条件が満たされる、決定するステップと、
前記コントローラ上の前記ロードが所定のしきい値未満であるという前記コントローラによる決定に応答して、前記第２のストレージ・ユニット内で維持される前記暗号化されたデータを復号するステップと、
をさらに含む、請求項１に記載の方法。
【請求項５】
前記第１のストレージ・ユニットはディスクからなり、前記第２のストレージ・ユニットはキャッシュである、請求項１に記載の方法。
【請求項６】
第１のストレージ・ユニットと通信するシステムであって、
前記第１のストレージ・ユニットに結合されたコントローラと、
前記コントローラに結合された第２のストレージ・ユニットと、
前記コントローラに含まれるプロセッサと、
前記プロセッサに結合されたメモリであって、前記プロセッサは請求項１から５のいずれかに記載のステップを実行するように動作可能である、メモリと、
を備えるシステム。
【請求項７】
コンピュータ上で実行された場合に請求項１から５のいずれかに記載のステップを実行するコンピュータ読み取り可能コードを備える、コンピュータ・プログラム。
【請求項８】
コンピュータ読み取り可能コードをコントローラ内に統合するステップを有し、前記コードが前記コントローラと組み合わせて請求項１から５のいずれかに記載のステップを実行するように動作可能な、コンピューティング・インフラストラクチャを活用するための方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、ストレージ・システムにおけるデータの暗号化／復号化に関する。
【背景技術】
【０００２】
ネットワークにおけるデータの暗号化は、「動作中のデータ」の暗号化および「静止中のデータ」の暗号化という、２つの異なるタイプに分類することができる。「動作中のデータ」の暗号化は、データがネットワーク全体にわたって送信側と受信側の間で移動している場合に、データにセキュリティを提供する。「動作中のデータ」は、「伝送中（in flight）のデータ」と呼ばれる場合もある。「静止中のデータ」の暗号化とは、ストレージ媒体内に格納されている、伝送中でないデータの暗号化である。たとえば、ディスクに格納されたデータの暗号化またはデータベース内のデータの暗号化は、「静止中のデータ」の暗号化と呼ばれる場合がある。
【０００３】
「静止中のデータ」の暗号化は、ディスクに格納されたデータを保護するために望ましい。ハードウェアを介して実行されるデータの暗号化はハードウェア暗号化と呼ばれ、ソフトウェアを介して実行されるデータの暗号化はソフトウェア暗号化と呼ばれる。ハードウェア暗号化はソフトウェア暗号化に比べて高速であって、こうしたハードウェア暗号化は多くの状況で使用できない場合があり、たとえばハードウェア暗号化は特定のディスク・ファイバ・チャネル・インターフェースでは使用できない場合がある。多くの場合、ソフトウェア暗号化は「静止中のデータ」の暗号化に使用される。
【０００４】
特定のディスク・ステージング・アルゴリズムは、キャッシュ上での読み取りヒット率を向上させるために、２次ストレージからキャッシュへのデータの投機的（speculative）プリフェッチを実行する。投機的にプリフェッチされたデータで復号化を実行すると、性能の低下につながる可能性がある。投機的にプリフェッチされるデータの量を削減することで、実行される復号化の量を削減することができる。しかしながら、投機的にプリフェッチされるデータの量を削減することは、読み取りヒット率を低下させ、性能を低下させる可能性がある。いったんディスク・ヘッドが所望のデータ上に配置されると、所望のデータと共に追加のデータをキャッシュに転送するために要する時間は、所望のデータ上にヘッドを配置するために要する時間に比べて、ほんのわずかな追加のみでよいことから、投機的プリフェッチは、ストレージ・システム内でしばしば使用される。
【発明の開示】
【発明が解決しようとする課題】
【０００５】
コントローラが、コントローラに結合された第１のストレージ・ユニットから暗号化されたデータを受信する、方法、システム、および製品を提供することである。
【課題を解決するための手段】
【０００６】
受信した暗号化されたデータは、コントローラに結合された第２のストレージ・ユニットに格納され、このコントローラは、第１のストレージ・ユニットに比べて高速で第２のストレージ・ユニットにアクセスすることができる。暗号化されたデータは、少なくとも１つの条件が満たされるまで、第２のストレージ・ユニット内で維持される。
【０００７】
他の実施形態では、コントローラは、第２のストレージ・ユニット内で維持される暗号化されたデータにアクセスするための要求を受信し、第２のストレージ・ユニット内で維持される暗号化されたデータにアクセスするための要求を受信すると同時に、少なくとも１つの条件が満たされる。第２のストレージ・ユニット内で維持される暗号化されたデータは、第２のストレージ・ユニット内で維持される暗号化されたデータにアクセスするための要求の受信に応答して、復号される。
【０００８】
さらに他の実施形態では、第２のストレージ・ユニットに関連付けられた暗号化インジケータ・データ構造が維持され、この暗号化インジケータ・データ構造は、第２のストレージ・ユニット内で維持されるデータが暗号化されているかどうかを示すことができる。暗号化インジケータ・データ構造は、第２のストレージ・ユニット内で維持される暗号化されたデータの復号化に応答して、第２のストレージ・ユニット内で維持される暗号化されたデータが暗号化されていないことを示すように更新される。
【０００９】
追加の実施形態では、コントローラによって、コントローラ上のロードが所定のしきい値未満であることが決定され、コントローラ上のロードが所定のしきい値未満であることがコントローラによって決定されると同時に、少なくとも１つの条件が満たされる。コントローラ上のロードが所定のしきい値未満であるというコントローラによる決定に応答して、第２のストレージ・ユニット内で維持される暗号化されたデータが復号される。
【００１０】
他の追加の実施形態では、第１のストレージ・ユニットはディスクからなり、第２のストレージ・ユニットはキャッシュである。
【００１１】
次に本発明の諸実施形態について、単なる例として、添付の図面を参照しながら説明する。
【発明を実施するための最良の形態】
【００１２】
以下の説明では、本明細書の一部を形成し、いくつかの諸実施形態を例示する、添付の図面が参照される。他の諸実施形態が使用可能であること、ならびに構造上および動作上の変更が可能であることを理解されよう。
【００１３】
特定の実施形態では、ストレージ・システムのキャッシュに格納されたデータを維持し、これにアクセスするための、「オン・デマンド復号化」ソリューションを提供する。「オン・デマンド復号化」では、読み取りヒット率を向上させるために投機的プリフェッチが実行される。しかしながら、キャッシュ内に保持される投機的にプリフェッチされたデータは、暗号化されたままである。特定の実施形態では、投機的にプリフェッチされたデータは、データがアクセスされない限り、およびアクセスされるまで、復号されない。他の実施形態では、投機的にプリフェッチされたデータは、ストレージ・システム上のロードが所定のしきい値未満の場合に復号される。
【００１４】
図１は、特定の実施形態に従った、コンピューティング環境１００を示すブロック図である。コンピューティング環境１００は、サーバ１０４およびストレージ１０６に結合された、コントローラとも呼ばれるストレージ・コントローラ１０２を含む。ストレージ・コントローラ１０２およびサーバ１０４は、パーソナル・コンピュータ、ワークステーション、メインフレーム、ハンド・ヘルド・コンピュータ、パーム・トップ・コンピュータ、電話デバイス、ネットワーク機器、ブレード・コンピュータなどの、当分野で現在知られたデバイスを含む、任意の好適な計算デバイスとすることができる。ストレージ１０６は、磁気または光ディスク、テープなどの、当分野で現在知られた媒体を含む、任意の好適なストレージ媒体を含むことができる。
【００１５】
ストレージ・コントローラ１０２は、キャッシュ１０８、コントローラ・アプリケーション１１０、および暗号化インジケータ・データ構造１１２を含む。キャッシュ１０８は、投機的にプリフェッチされたデータ１１４がアクセスされない限り、およびアクセスされるまで、暗号化されたままとすることができる、投機的にプリフェッチされたデータ１１４と、暗号化されていないデータ１１６とを含むことができる。ストレージ１０６は静止中のデータを暗号化し、ストレージ１０６に格納されたデータは、図１では暗号化されたデータ１１８として示される。コントローラ・アプリケーション１１０は、暗号化されたデータ１１８を、ストレージ１０６からキャッシュ１０８へステージング１２０、すなわちコピーすることができる。暗号化されたデータ１１８がサーバ１０４によって特に要求されていないが、暗号化されたデータ１１８のサーバ１０４からの将来の要求を見越してステージング１２０される場合、暗号化されたデータ１１８は、キャッシュ１０８に格納された際に、投機的にプリフェッチされたデータ１１４と呼ぶことができる。データは、コントローラ・アプリケーション１１０によって、キャッシュ１０８からストレージ１０６へとデステージ１２２、すなわち移動することも可能である。暗号化インジケータ・データ構造１１２は、ストレージ・コントローラ１０２のキャッシュ１０８に格納されたデータが暗号化されたデータまたは復号されたデータであるかどうかを識別する情報を格納する。たとえば特定の実施形態では、暗号化インジケータ・データ構造１１２を実装するビット・マップを使用して、キャッシュ１０８内のどちらのデータが暗号化されるかを識別することができる。
【００１６】
特定の実施形態では、サーバ１０４は、データに関する読み取りあるいは書き込みまたはその両方の要求１２４をストレージ・コントローラ１０２に送信する。コントローラ・アプリケーション１１０は、第１にキャッシュ１０８から要求１２４を満たすように試行し、要求１２４がキャッシュ１０８を介して満たされることができない場合、コントローラ・アプリケーション１１０は、ストレージ１０６を使用し、ステージ１２０およびデステージ１２２を介して要求を満たす。
【００１７】
図２は、特定の実施形態に従った、オン・デマンドでデータを復号するための第１の動作を示す図である。図２に示された動作は、ストレージ・コントローラ１０２のコントローラ・アプリケーション１１０内で実装することができる。
【００１８】
制御はブロック２００で開始され、コントローラ・アプリケーション１１０がストレージ１０６からキャッシュ１０８へとデータを投機的にプリフェッチする。データの投機的プリフェッチは、多くの異なる方法で実行することができる。たとえば特定の実施形態では、キャッシュ１０８内ではみつからないサーバ１０４によって要求されたデータがストレージ１０６からキャッシュ１０８へとステージング１２０された場合、追加のデータもストレージ１０６からキャッシュ１０８へとステージング可能であり、こうした追加のデータを投機的にプリフェッチされたデータ１１４と呼ぶことができる。ストレージ１０６に格納されたデータが暗号化された静止中のデータであるため、投機的にプリフェッチされたデータ１１４は暗号化されたデータである。
【００１９】
コントローラ・アプリケーションは（ブロック２０２で）、キャッシュ内に格納された投機的にプリフェッチされたデータ１１４が暗号化されていると示されるように、キャッシュ１０８に関連付けられた暗号化インジケータ・データ構造１１２を更新する。
【００２０】
コントローラ・アプリケーション１１０は（ブロック２０４で）、データにアクセスするために、コマンド１２４、すなわち要求をサーバ１０４から受信し、コントローラ・アプリケーション１１０は、アクセスされることになるデータがキャッシュ１０８内で使用可能であることを決定する。コントローラ・アプリケーション１１０は（ブロック２０６）で、暗号化インジケータ・データ構造１１２から、アクセスされることになるデータが暗号化されているかどうかを判別する。暗号化されている場合、制御はブロック２０８へと進み、コントローラ・アプリケーション１１０はアクセスされることになるデータを復号し、データが復号されたデータであることを示すように、暗号化インジケータ・データ構造１１２を更新する。その後、コントローラ・アプリケーション１１０は（ブロック２１０で）、復号されたデータへのアクセスをサーバ１０４に許可する。
【００２１】
ブロック２０６で、コントローラ・アプリケーションが、暗号化インジケータ・データ構造１１２から、アクセスされることになるデータがキャッシュ内で暗号化されていないことを決定した場合、制御はブロック２１０に進み、コントローラ・アプリケーション１１０は復号されたデータへのアクセスをサーバ１０４に許可する。
【００２２】
したがって図２は、コントローラ・アプリケーション１１０がデータをストレージ１０６からキャッシュ１０８へと投機的にプリフェッチし、データにアクセスするための要求がサーバ１０４から受信されない限り、および受信されるまで、プリフェッチされたデータを暗号化された状態で維持する、特定の実施形態を示す。投機的にプリフェッチされたデータ１１４は、データにアクセスするためのサーバ１０４からの要求に応答して復号される。サーバ１０４によってアクセスされない投機的にプリフェッチされたデータ１１４は暗号化されたままであり、キャッシュ１０８からストレージ１０６へと後でデステージ１２２することが可能であるため、ストレージ・コントローラにかかる処理オーバヘッドは削減される。
【００２３】
図３は、特定の実施形態に従った、オン・デマンドでデータを復号するための第２の動作を示す図である。図３に示された動作は、ストレージ・コントローラ１０２のコントローラ・アプリケーション１１０内で実装可能である。
【００２４】
制御はブロック３００で開始され、コントローラ・アプリケーション１１０は、ストレージ１０６からキャッシュ１０８へとデータを投機的にプリフェッチする。コントローラ・アプリケーション１１０は（ブロック３０２で）、キャッシュ１０８内に格納された投機的にプリフェッチされたデータ１１４が暗号化されていると示されるように、キャッシュ１０８に関連付けられた暗号化インジケータ・データ構造１１２を更新する。
【００２５】
制御はブロック３０４に進み、コントローラ・アプリケーション１１０は、コントローラ１０２上のロードが所定のしきい値未満であるかどうかを判別する。所定のしきい値は、プログラムを介して設定可能である、あるいはコントローラ１０２の管理者によって設定可能である、またはその両方である。コントローラ１０２上のロードは、プロセッサ使用率が高いほど、コントローラ上のロードが大きいことに対応する可能性がある、コントローラ１０２上でのプロセッサ使用率の測定値を含むことができる。
【００２６】
コントローラ・アプリケーション１１０が、コントローラ１０２上のロードが所定のしきい値未満であることを決定した場合、コントローラ・アプリケーション１１０は（ブロック３０６で）、暗号化インジケータ・データ構造１１２から、投機的にプリフェッチされたデータ１１４が暗号化されているかどうかを判別する。暗号化されている場合、コントローラ・アプリケーションは投機的にプリフェッチされたデータ１１４を復号し、投機的にプリフェッチされたデータが暗号化されていないことを示すように、暗号化インジケータ・データ構造１１２を更新する。
【００２７】
ブロック３０４で、コントローラ・アプリケーション１１０が、コントローラ１０２上のロードが所定のしきい値未満でないことを決定した場合、コントローラ・アプリケーション１１０は（ステップ３００で）、ストレージ１０６からキャッシュ１０８へのデータの投機的プリフェッチを続行する。ブロック３０６で、コントローラ・アプリケーション１１０が、暗号化インジケータ・データ構造１１２から、投機的にプリフェッチされたデータ１１４がキャッシュ１０８内で暗号化されていないことを決定した場合、コントローラ・アプリケーション１１０は（ステップ３００で）、ストレージ１０６からキャッシュ１０８へのデータの投機的プリフェッチを続行する。
【００２８】
したがって図３は、ストレージ・コントローラ１０２上のロードが所定のしきい値未満である場合、キャッシュ内の投機的にプリフェッチされたデータ１１４が復号される、特定の実施形態を示す。
【００２９】
図４は、特定の実施形態に従った、暗号化されたデータを維持するためのコントローラ１０２内で実装される第３の動作を示す図である。図４に示された動作は、コントローラ１０２のコントローラ・アプリケーション１１０内で実装可能である。
【００３０】
制御はブロック４００で開始され、コントローラ１０２は、コントローラ１０２に結合された第１のストレージ・ユニット１０６から暗号化されたデータを受信することができる。特定の実施形態では、第１のストレージ・ユニット１０６はディスクからなる。
【００３１】
受信した暗号化されたデータは（ブロック４０２で）、コントローラ１０２に結合された第２のストレージ・ユニット１０８に格納され、コントローラ１０２は、第１のストレージ・ユニット１０６に比べて高速で第２のストレージ・ユニット１０８にアクセスすることができる。特定の実施形態では、第２のストレージ・ユニット１０８はキャッシュである。
【００３２】
暗号化されたデータは（ブロック４０４で）、少なくとも１つの条件が満たされるまで、第２のストレージ・ユニット１０８内で維持される。特定の実施形態では、コントローラ１０２上のロードが所定のしきい値未満であることがコントローラ１０２によって決定されると同時に、少なくとも１つの条件が満たされる。特定の他の実施形態では、第２のストレージ・ユニット１０８内で維持される暗号化されたデータにアクセスするための要求を受信すると同時に、少なくとも１つの条件が満たされる。
【００３３】
特定の実施形態は、たとえハードウェアの暗号化／復号化がストレージ・コントローラ１０２内で使用できない場合であっても、ディスク１０６からキャッシュ１０８への暗号化されたデータの投機的プリフェッチを可能にする。投機的にプリフェッチされたデータ１１４は、データにアクセスするための要求が受信されるまで、暗号化された状態で維持される。代替実施形態では、ストレージ・コントローラ上のデータが所定のしきい値未満である場合、投機的にプリフェッチされたデータ１１４は復号される。ストレージ１０６からキャッシュ１０８へのデータの投機的なプリフェッチの結果として、キャッシュ上の読み取りヒット率が向上する。暗号化された投機的にプリフェッチされたデータ１１４にアクセスするための要求が受信された場合、または、コントローラ１０２上のロードが所定のしきい値未満の場合、投機的にプリフェッチされたデータ１１４が復号されるため、性能の低下は減少する。
【００３４】
追加の実施形態の詳細
説明された技法は、ソフトウェア、ファームウェア、マイクロコード、ハードウェア、あるいはそれらの任意の組み合わせ、またはそれらすべてを含む、方法、装置、または製品として実装可能である。本明細書で使用される「製品」という用語は、媒体内に実装されるコードまたは論理を言い表し、こうした媒体は、ハードウェア論理（たとえば集積回路チップ、プログラマブル・ゲート・アレイ（ＰＧＡ）、特定用途向け集積回路（ＡＳＩＣ）など）、あるいは、磁気ストレージ媒体（たとえばハード・ディスク・ドライブ、フロッピィ・ディスク、テープなど）、光ストレージ（ＣＤ−ＲＯＭ、光ディスクなど）、揮発性および不揮発性メモリ・デバイス（たとえば、電気的消去再書き込み可能読み取り専用メモリ（ＥＥＰＲＯＭ）、読み取り専用メモリ（ＲＯＭ）、再書き込み可能読み取り専用メモリ（ＰＲＯＭ）、ランダム・アクセス・メモリ（ＲＡＭ）、動的ランダム・アクセス・メモリ（ＤＲＡＭ）、静的ランダム・アクセス・メモリ（ＳＲＡＭ）、フラッシュ、ファームウェア、再書き込み可能論理など）などの、コンピュータ読み取り可能媒体を備えることができる。コンピュータ読み取り可能媒体内のコードは、プロセッサによってアクセスおよび実行される。コードまたは論理が内部で符号化された媒体は、空間、または光ファイバ、銅線などの伝送媒体を介して伝播される、伝送信号を含むこともできる。コードまたは論理が内部で符号化された伝送信号は、無線信号、衛星伝送、電波、赤外線信号、ブルートゥースなどをさらに含むことができる。コードまたは論理が内部で符号化された伝送信号は、送信局による送信および受信局による受信が可能であり、伝送信号内部で符号化されたコードまたは論理は、受信側および送信側の局または装置にあるハードウェアまたはコンピュータ読み取り可能媒体内に復号および格納することができる。加えて「製品」は、内部でコードが具体化、処理、および実行される、ハードウェアおよびソフトウェアの構成要素の組み合わせを含むこともできる。もちろん、当業者であれば、諸実施形態の範囲を逸脱することなく多くの修正が実行可能であること、および製品が任意の情報担持媒体を含むことが可能であることを、理解されよう。たとえば製品は、マシンによって実行された場合に結果として動作が実行される、内部に命令を格納したストレージ媒体を含む。
【００３５】
特定の実施形態は、全体としてハードウェアの実施形態、全体としてソフトウェアの実施形態、またはハードウェアおよびソフトウェアの両方の要素を含む実施形態の形を取ることができる。好ましい実施形態では、本発明は、ファームウェア、常駐ソフトウェア、マイクロコードなどを含むがこれらに限定されることのない、ソフトウェア内で実装される。
【００３６】
さらに特定の実施形態は、コンピュータまたは任意の命令実行システムによって、またはそれらに関連して使用するための、プログラム・コードを提供する、コンピュータ使用可能またはコンピュータ読み取り可能の媒体からアクセス可能な、コンピュータ・プログラム製品の形を取ることができる。この説明では、コンピュータ使用可能またはコンピュータ読み取り可能の媒体は、命令実行システム、装置、またはデバイスによって、あるいはそれらに関連して使用するための、プログラムの包含、格納、通信、伝播、または移送が可能な、任意の装置とすることができる。媒体は、電子、磁気、光、電磁、赤外線、または半導体のシステム（あるいは装置またはデバイス）、あるいは伝播媒体とすることができる。コンピュータ読み取り可能媒体の例には、半導体またはソリッド・ステート・メモリ、磁気テープ、取り外し可能コンピュータ・ディスケット、ランダム・アクセス・メモリ（ＲＡＭ）、読み取り専用メモリ（ＲＯＭ）、剛性磁気ディスク、および光ディスクが含まれる。光ディスクの現在の例には、コンパクト・ディスク−読み取り専用メモリ（ＣＤ−ＲＯＭ）、コンパクト・ディスク−読み取り／書き込み（ＣＤ−Ｒ／Ｗ）、およびＤＶＤが含まれる。
【００３７】
「特定の実施形態」、「ある実施形態」、「実施形態」、「諸実施形態」、「その実施形態」、「その諸実施形態」、「１つまたは複数の実施形態」、「何らかの実施形態」、および「一実施形態」という用語は、特に明示されていない限り、（すべてではないが）１つまたは複数の実施形態を意味する。「含む」、「備える」、「有する」、およびそれらの変形の用語は、特に明示されていない限り、「含むがしかし限定されない」ことを意味する。列挙されたアイテムのリストは、特に明示されていない限り、任意またはすべてのアイテムが相互に排他的であることを示唆するものではない。「ある（ａ）」および「その（ｔｈｅ）」という用語は、特に明示されていない限り、「１つまたは複数」を意味する。
【００３８】
互いに通信しているデバイスは、特に明示されていない限り、互いに連続して通信しているとは限らない。加えて、互いに通信しているデバイスは、直接、あるいは１つまたは複数の中継を介して間接的に、通信することができる。さらに、互いに通信しているいくつかの構成要素を備えた実施形態の説明は、こうした構成要素のすべてが必要であることを示唆するものではない。これに対して、多種多様な可能な実施形態を例示するために、多様なオプションの構成要素について説明している。
【００３９】
さらに、プロセス・ステップ、方法ステップ、アルゴリズムなどは、一連の順序で説明されている場合があるが、こうしたプロセス、方法、およびアルゴリズムは、代替の順序で動作するように構成することができる。言い換えれば、説明されている場合のあるステップのいかなるシーケンスまたは順序も、必ずしもステップがその順序で実行される旨の要件を示すものではない。本明細書で説明されたプロセスのステップは、任意の実際の順序で実行可能である。さらにいくつかのステップは、同時に、並行して、または一斉に実行可能である。
【００４０】
本明細書で単一のデバイスまたは製品について説明されている場合、単一のデバイス／製品の代わりに、複数のデバイス／製品が（それらが協働するか否かにかかわらず）使用可能であることが明らかとなろう。同様に、本明細書で複数のデバイスまたは製品（それらが協働するか否かにかかわらず）について説明されている場合、複数のデバイスまたは製品の代わりに、単一のデバイス／製品が使用可能であることが明らかとなろう。デバイスの機能あるいは機構は、別の方法として、こうした機能／機構を有するものとして明示的に説明されていない１つまたは複数の他のデバイスによって具体化することが可能である。したがって他の諸実施形態は、必ずしもデバイス自体を含むとは限らない。
【００４１】
図５は、特定の実施形態において、図１のコンピューティング環境１００のストレージ・コントローラ１０２およびサーバ１０４がコンピュータ・システム５００のコンピュータ・アーキテクチャに従って実装可能な、例示的コンピュータ・システム５００を示す図である。コンピュータ・システム５００はシステムと呼ばれる場合もあり、特定の実施形態ではプロセッサ５０４を含むことが可能な回路５０２を含むことが可能である。システム５００は、メモリ５０６（たとえば揮発性メモリ・デバイス）およびストレージ５０８も含むことができる。システム５００の特定の要素は、図１のストレージ・コントローラ１０２およびサーバ１０４内に見られる場合または見られない場合がある。ストレージ５０８は、不揮発性メモリ・デバイス（たとえばＥＥＰＲＯＭ、ＲＯＭ、ＰＲＯＭ、ＲＡＭ、ＤＲＡＭ、ＳＲＡＭ、フラッシュ、ファームウェア、再書き込み可能論理など）、磁気ディスク・ドライブ、光ディスク・ドライブ、テープ・ドライブなどを含むことができる。ストレージ５０８は、内部ストレージ・デバイス、取り付け型ストレージ・デバイス、あるいはネットワーク・アクセス可能ストレージ・デバイス、またはそれらすべてを備えることができる。システム５００は、メモリ５０６内にロード可能であり、プロセッサ５０４または回路５０２によって実行可能な、コード５１２を含む、プログラム論理５１０を含むことができる。特定の実施形態では、コード５１２を含むプログラム論理５１０はストレージ５０８に格納することができる。特定の他の実施形態では、プログラム論理５１０は回路５０２内に実装可能である。したがって、図５ではプログラム論理５１０を他の要素と別に示しているが、プログラム論理５１０はメモリ５０６あるいは回路５０２またはそれら両方の内部に実装可能である。
【００４２】
特定の実施形態は、コンピュータ読み取り可能コードをコンピューティング・システムに統合する、人または自動化された処理によって、コンピューティング命令を展開するための方法を対象とすることが可能であり、コードとコンピューティング・システムとがあいまって、説明された実施形態の動作を実行することが可能となる。
【００４３】
図２、図３および図４に示された少なくとも特定の動作は、並行して、ならびに順次、実行することができる。代替の実施形態では、特定の動作は、異なる順序での実行、修正、または除去が可能である。
【００４４】
さらに、ソフトウェアおよびハードウェア構成要素の多くは、例示の目的で別々のモジュール内に記載されている。こうした構成要素は、より少数の構成要素に統合するか、またはより多数の構成要素に分割することができる。加えて、特定構成要素によって実行されるように記載された特定の動作は、他の構成要素による実行が可能である。
【００４５】
図１〜図５で図示または言及されたデータ構造および構成要素は、特定タイプの情報を有するように記載されている。代替の実施形態では、このデータ構造および構成要素を異なるように構造化すること、ならびに、図面で図示または言及されたものよりも少ない、多い、または異なるフィールド、あるいは異なる機能を有することが可能である。
【００４６】
したがって、諸実施形態の前述の記載は、例示および説明の目的で提示されたものである。諸実施形態を網羅すること、または開示された精密な形に限定することは意図されていない。上記教示に照らして、多くの修正および変形が可能である。
【図面の簡単な説明】
【００４７】
【図１】特定の実施形態に従った、コンピューティング環境を示すブロック図である。
【図２】特定の実施形態に従った、オン・デマンドでデータを復号するための第１の動作を示す図である。
【図３】特定の実施形態に従った、オン・デマンドでデータを復号するための第２の動作を示す図である。
【図４】特定の実施形態に従った、暗号化されたデータを維持するためのコントローラ内で実装される第３の動作を示す図である。
【図５】特定の実施形態において、図１のコンピューティング環境のコントローラがコンピューティング・システムのアーキテクチャに従って実装可能な、コンピューティング・システムのアーキテクチャを示す図である。
【図１】
2009534726.tif 000003
【図２】
2009534726.tif 000004
【図３】
2009534726.tif 000005
【図４】
2009534726.tif 000006
【図５】
2009534726.tif 000007
【国際調査報告】
2009534726.tif 000008
2009534726.tif 000009