(57)【要約】【課題】ストレージ・メディア上の機密データの損失を最小限にするために、ストレージ・デバイスによるデータ保護を利用するための装置、システム、および方法を提供すること。【解決手段】装置は、監視モジュール、検証モジュール、および処理モジュールを含む。監視モジュールは、電子データ・ストレージ・デバイスに接続されたホストからの書き込みタイプのコマンドを認識する。検証モジュールは書き込みタイプのコマンドに関連付けられたパスキーの存在を決定する。処理モジュールは、パスキーの存在の決定に従って書き込みタイプのコマンドを処理する。この装置、システム、および方法は、電子データ・ストレージ・デバイス上の指定された保護領域が不注意によるデータのオーバレイに対して保護されるように、デバイス・レベルでの機密データの保護を提供する。【選択図】  図３
2009503709.tif 000002
【特許請求の範囲】
【請求項１】
電子データ・ストレージ・デバイスに接続されたホストからの書き込みタイプのコマンドを認識するように構成された監視モジュールと、
前記監視モジュールに結合された検証モジュールであって、前記検証モジュールは、前記書き込みタイプのコマンドに関連付けられたパスキーの存在を決定するように構成される、検証モジュールと、
前記検証モジュールに結合された処理モジュールであって、前記処理モジュールは、前記パスキーの存在の決定に従って前記書き込みタイプのコマンドを処理するように構成される、処理モジュールと、
を備える、電子データ・ストレージ・デバイス上のデータを保護するための装置。
【請求項２】
前記検証モジュールに結合された通知モジュールであって、前記通知モジュールは、基本キーを使用して前記電子データ・ストレージ・デバイスの領域を保護するための前記電子データ・ストレージ・デバイスの保護機能を前記ホストに通知するように構成される、通知モジュールをさらに備える、請求項１に記載の装置。
【請求項３】
前記検証モジュールに結合された活動化モジュールであって、前記活動化モジュールは、前記ホストによって指定された前記電子データ・ストレージ・デバイスの領域を、基本キーを使用して保護するように構成される、活動化モジュールをさらに備える、請求項１に記載の装置。
【請求項４】
前記検証モジュールに結合された定義モジュールであって、前記定義モジュールは基本キーを定義するように構成され、前記基本キーは前記電子データ・ストレージ・デバイス上の保護領域に関連付けられる、定義モジュールをさらに備える、請求項１に記載の装置。
【請求項５】
前記検証モジュールに結合された比較モジュールであって、前記比較モジュールは前記パスキーと前記基本キーとを比較するように構成される、比較モジュールをさらに備える、請求項４に記載の装置。
【請求項６】
前記処理モジュールに結合された書き込みモジュールであって、前記書き込みモジュールは、前記書き込みタイプのコマンド、および前記パスキーと前記基本キーとの間の互換性に応答して、前記ホストから前記電子データ・ストレージ・デバイスの前記保護領域にデータを書き込むように構成される、書き込みモジュールをさらに備える、請求項５に記載の装置。
【請求項７】
前記処理モジュールに結合された書き込みモジュールであって、前記書き込みモジュールは、前記書き込みタイプのコマンド、および前記パスキーの欠如に応答して、前記ホストから前記電子データ・ストレージ・デバイスの前記保護領域にデータを書き込むように構成される、書き込みモジュールをさらに備える、請求項１に記載の装置。
【請求項８】
前記処理モジュールに結合された失敗モジュールであって、前記失敗モジュールは、前記ホストによる正しいパスキー供給の障害に応答して、前記ホストから前記電子データ・ストレージ・デバイスの保護領域への前記書き込みタイプのコマンドを失敗させるように構成される、障害モジュールをさらに備える、請求項１に記載の装置。
【請求項９】
前記処理モジュールに結合された失敗モジュールであって、前記失敗モジュールは、前記パスキーの存在に応答して、前記ホストから前記電子データ・ストレージ・デバイスの非保護領域への前記書き込みタイプのコマンドを失敗させるように構成される、障害モジュールをさらに備える、請求項１に記載の装置。
【請求項１０】
前記検証モジュールに結合されたインデックス・モジュールであって、前記インデックス・モジュールは、前記電子データ・ストレージ・デバイス上の保護領域に関連付けられたインデックスを格納するように構成される、インデックス・モジュールをさらに備える、請求項１に記載の装置。
【請求項１１】
ホストに結合された電子データ・ストレージ・デバイスと、
前記電子データ・ストレージ・デバイスに結合されたストレージ・メディアであって、前記ストレージ・メディアはデータを格納するように構成される、ストレージ・メディアと、
前記ストレージ・デバイスに結合されたストレージ・コントローラであって、前記ストレージ・コントローラは、前記ストレージ・メディア上のデータの格納および前記データへのアクセスを管理するように構成される、ストレージ・コントローラと、
前記ストレージ・コントローラに結合された保護装置であって、前記保護装置は、前記ストレージ・メディアの保護領域を保護するように構成される、保護装置と、
を備える、電子データ・ストレージ・デバイス上のデータを保護するためのシステム。
【請求項１２】
前記電子データ・ストレージ・デバイスは前記ストレージ・コントローラに結合された通信モジュールを備え、前記通信モジュールは、前記電子データ・ストレージ・デバイスと前記ホストとの間のデータ通信を容易にするように構成される、請求項１１に記載のシステム。
【請求項１３】
前記電子データ・ストレージ・デバイスは前記ストレージ・コントローラに結合された追跡モジュールを備え、前記追跡モジュールは、前記ホストによる前記電子データ・ストレージ・デバイスへのアクセスを追跡するように構成される、請求項１１に記載のシステム。
【請求項１４】
前記ホストに結合された認識モジュールであって、前記認識モジュールは前記電子データ・ストレージ・デバイスを認識するように構成される、認識モジュールと、
基本キーを使用して前記電子データ・ストレージ・デバイスの領域を保護するための前記電子データ・ストレージ・デバイスの保護機能を確認するように構成される、確認モジュールと、
をさらに備える、請求項１１に記載のシステム。
【請求項１５】
前記ホストに結合された割り振りモジュールであって、前記割り振りモジュールは前記電子データ・ストレージ・デバイスの前記保護領域を指定するように構成される、割り振りモジュールをさらに備える、請求項１４に記載のシステム。
【請求項１６】
前記ホストに結合された実施モジュールであって、前記実施モジュールは、書き込みタイプのコマンドおよび関連付けられたパスキーを前記電子データ・ストレージ・デバイスに送信するように構成される、実施モジュールをさらに備える、請求項１４に記載のシステム。
【請求項１７】
コンピュータ上で実行された場合に、請求項１から１０に記載された本発明を実施するように実行するためのソフトウェア・コード部分を備える、デジタル・コンピュータの内部メモリにロード可能なコンピュータ・プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はストレージ・デバイスでのデータの保護に関し、とりわけ、ホストが関与しないストレージ・デバイスでのデータ保護に関する。
【背景技術】
【０００２】
データのブロックがストレージ・デバイスに格納されるストレージ環境では、格納されるデータの選択領域、または保護が必要な可能性のあるストレージ・インデックスが存在する場合がある。通常、格納環境は、ハード・ドライブなどの不揮発性ストレージ・デバイスに永続的にデータを格納する、オペレーティング・システムなどのホストからなる。ホストとデバイスとの間の通信は、ストレージ・メディア上にデータを格納し、これにアクセスする方法を決定する、ストレージ・コントローラによって達成される。現在、ストレージ・コントローラは、データ・ストレージおよびアクセスの管理に加えて、サービス品質（ＱｏＳ）、仮想化、ミラーリング、複製を管理し、多くは、ストレージ・デバイスの読み取りおよび書き込みの性能を拡張するためのバッファとして働くメモリを提供する。
【０００３】
進化し続けている情報化時代において、依然として変わらないのは、ミッション・クリティカルな（mission-critical）データの保護の必要性である。これが株式市場、会社の給与、電子商取引、企業データベース、医療記録、インターネット・バンキング、または国家安全保障的理由であるかどうかにかかわらず、データ格納の必要性と共にデータ保護の必要性は依然として大きくなりつつある。
【０００４】
所有者の総コストを下げることに対する最も大きな障害の１つが、ストレージ関連問題を管理することに関連する作業である。システム・リソースによる、手動ではなく自動的なストレージ・リソースおよびデータの管理が、この問題を軽減するのに役立つ。しかしながら、ストレージ・メディアのミッション・クリティカルなデータ、およびｚ／ＯＳ（ｚオペレーティング・システム）のＶＴＯＣ（ボリューム目録）などのストレージ・インデックスのシステム規模の保護を保証することは、依然として固有管理の難しさを示している。ミッション・クリティカルなビジネス・システムは、通常、組織の成功にとって不可欠な多くのミッション・クリティカルなビジネス・プロセスを管理する、ホストおよび分散コンピューティング環境の橋渡しをする。ビジネス・プロセスからのデータを、環境内の他の戦略的システムおよびアプリケーションと共有するためには、包括的解決策が必要である。さらに、この解決策は、システム性能に過度の負担をかけることなく、管理者の見誤りが最小限に組み込まれるように、十分に簡潔であるものとする。
【０００５】
大規模データベースの管理を必要とするこうしたミッション・クリティカルなアプリケーション用の主要サーバは、引き続きメインフレームとなる。メインフレームは、高い信頼性、性能、広範囲にわたる接続性オプション、および包括的企業ストレージ・ソリューションに関して設計される。一般に、メインフレーム上で実行されるオペレーティング・システムは、信頼性が高く、ウェブおよびＪａｖａベースのアプリケーションをサポートし、ミッション・クリティカルなアプリケーションをホストする。しかしながら、企業クラスの保護は、ストレージ・デバイスによるデータ保護に欠ける唯一の分野ではない。しばしば個人データの保護も、依然として重要であると考えられる。
【０００６】
大衆消費電化製品の分野では、製品のデジタルコンテンツを格納するために必要な容量が増加するにつれて、個人データを保護する必要性も増加する。これは特に、パーソナル・コンピュータ、ノートブック・コンピュータ、デジタル・カメラ、ビデオ・カメラ、デジタル・ビデオ・レコーダ（ＤＶＲ）、ポータブル・デジタル・オーディオ・プレーヤ、携帯電話、携帯情報端末、およびパーソナル・マルチメディア・プレーヤなどの製品に見られるが、これらに限定されることはない。
【０００７】
ストレージ管理における多くの進歩にもかかわらず、依然として、ミッション・クリティカルなデータの信頼できる保護の領域においては改善の余地がある。問題は、あるボリューム上の機密データが不可解にも破損した場合に存在し、これによって性能の低下が発生し、最悪のシナリオではミッション・クリティカルなデータが失われる。従来のシステムでは、ホストはこうしたストレージ領域の独自の保護を提供することができるが、現在の安全対策では適切な保護が得られない。たとえばストレージ・デバイスは、保護データ・トラックを有するハード・ドライブからなるものとすることができる。あるアプリケーションは、保護されていないトラックの領域への書き込み試行をホストに通知することができる。しかしながら、不注意によるデータのオーバレイ、格納されたデータの意図しない変更の場合、オーバレイされたストレージ・メディアの領域が、保護領域および非保護領域を追跡するストレージ・インデックスである可能性がある。ストレージ・インデックスが突然破壊されるだけでなく、非保護領域への書き込みタイプのコマンドが、保護データ・トラックを上書きしてしまう可能性があり、潜在的に、保護領域全体が不注意によるデータのオーバレイに対して無防備となる。本発明は、不注意によるデータのオーバレイの問題に対処する。
【０００８】
従来のメカニズムは、ｚ／ＯＳメインフレーム環境におけるシリアル化などの、これらの領域を適切に保護するものである。しかしながら、このシリアル化は、複数のプラットフォームにまたがって実施されず、不注意によるデータ・オーバレイも依然として生じる可能性がある。他の従来の技術は、実際にホストからストレージ・デバイスへのすべてのコマンドをスキャンし、ソフトウェアでは、所与の書き込みタイプのコマンドが、書き込みタイプのコマンドがアクセスを許可されていないストレージ・デバイスの領域への書き込みを試行しているかどうかを追跡するように試みる、ホスト制御の保護を提供する。残念なことに、ソフトウェアに置かれたこうしたホスト・レベルの解決策は、通常、システム性能に重大な影響を与え、ストレージ・デバイスによるデータ保護の特典をはるかに上回るコストを生じさせるものと見られてきた。
【０００９】
加えて、これらの不注意によるオーバレイの多くは診断されないままとなり、それによって、障害の発生源をさかのぼって追跡することが事実上困難となる。保護の方法がホスト・レベルである限り、ミッション・クリティカルであり価格の付けられない個人データを、真に保護することが望まれる可能性がある。
【発明の開示】
【発明が解決しようとする課題】
【００１０】
前述の考察により、ストレージ・デバイス・メソッドによる従来のホスト・レベルのデータ保護の限界を克服する、装置、システム、および方法が求められていることは明らかである。とりわけ、こうした装置、システム、および方法は、有益なことに、特定のホストとは無関係であり、そのため、デバイス・レベルの保護が提供される。この装置、システム、および方法は、誰がストレージ・データの更新を試行しているかを特定することによって、有益なことに、しばしば診断されないままとなる追跡不可能なデータのオーバレイを回避することにもなる。
【課題を解決するための手段】
【００１１】
本発明のいくつかの実施形態は、現況技術に応答して、とりわけ、ストレージ・デバイス・メソッドによる現在利用可能なデータ保護ではまだ完全に解決されていない当分野における問題および必要性に応答して、開発されてきたものである。したがって本発明は、当分野における前述の欠点の多くまたはすべてを克服する電子データ・ストレージ上のデータを保護するための、装置およびシステムを提供するために開発されてきた。
【００１２】
電子データ・ストレージ・デバイス上のデータを保護するための装置には、電子データ・ストレージ・デバイス上のデータを保護するために必要な動作を機能的に実行するように構成された、複数のモジュールを含む論理ユニットが提供される。記載された諸実施形態におけるこれらのモジュールは、監視モジュール、検証モジュール、および処理モジュールを含む。他の諸実施形態は、通知モジュール、活動化モジュール、定義モジュール、比較モジュール、インデックス・モジュール、書き込みモジュール、および失敗（fail）モジュールを含む。
【００１３】
一実施形態では、監視モジュールを、ストレージ・メディアにデータを書き込むようにとのホスト・コンピュータからの要求を識別するように構成することができる。一実施形態では、監視モジュールは、書き込みタイプのコマンドとストレージ・デバイスへの他のすべての要求との相違を認識するように、構成される。他の実施形態では、監視モジュールは、保護領域への書き込みタイプのコマンドと、ストレージ・メディア上の非保護領域への書き込みタイプのコマンドとの相違を認識するように、構成される。他の実施形態では、監視モジュールは、パスキーを備えたホスト・コンピュータからの書き込みタイプのコマンドと、パスキーを含まないホスト・コンピュータからの書き込みタイプのコマンドとの相違を認識するように、構成することができる。
【００１４】
加えて、検証モジュールは、ホスト・コンピュータからの書き込みタイプのコマンドに関連付けられた正しいパスキーの包含を検出することが可能であり、このパスキーは、ストレージ・デバイス上の保護領域へのアクセス許可を取得するように設計される。検証モジュールは、通知モジュール、活動化モジュール、定義モジュール、比較モジュール、およびインデックス・モジュールからなる。一実施形態では、検証モジュールは、ホスト・コンピュータの書き込みタイプのコマンドが、保護装置によって確立されたプロトコルおよびガイドラインに従って実行されることを検証することができる。他の実施形態では、ストレージ・コントローラに関連して、ストレージ・メディアの保護領域に書き込むための事前に定義された数の不法な試行が処理されてきたことを、システム管理者に通知するように、検証モジュールを構成することが可能であり、それにより、不注意によるオーバレイ再発の潜在的な原因を回避することができる。不法な試行の数は、システム管理者によって定義されるか、または保護装置によって設定されたデフォルト数とすることができる。
【００１５】
処理モジュールは、検証モジュール、および、とりわけ比較モジュールを介して、保護装置によって処理されるパスキー検証の結果に従って、ホスト・コンピュータからの書き込みタイプのコマンドを処理するように構成することができる。一実施形態では、検証モジュールが、ホスト・コンピュータからの書き込みタイプのコマンドが、保護装置によって確立された保護プロトコルに従うものと決定した場合、プロセス・モジュールは書き込みタイプのコマンドを処理する。このプロセス・モジュールは、書き込みモジュールおよび失敗モジュール（fail module）からなるものとすることができる。
【００１６】
一実施形態では、書き込みモジュールは、書き込みタイプのコマンドと、基本キーに対するパスキーの正常な比較とに応答して、ホスト・コンピュータからのデータを、ストレージ・メディアの保護領域に書き込むように構成することができる。他の実施形態では、書き込みモジュールは、書き込みタイプのコマンドと、データが保護領域を対象としていないことの決定とに応答して、ホスト・コンピュータからストレージ・メディアの非保護領域への書き込みタイプのコマンドを処理するように構成することができる。
【００１７】
失敗モジュールは、ホスト・コンピュータからストレージ・デバイスへの書き込みタイプのコマンドに失敗するように構成することができる。一実施形態では、失敗モジュールは、ホスト・コンピュータが正しいパスキーを供給しない場合、ストレージ・メディアの保護領域への書き込みタイプのコマンドを失敗させることができる。他の実施形態では、パスキーは保護領域に関連してのみ使用されることを意図しているため、ホスト・コンピュータがパスキーを供給する場合、失敗モジュールは、非保護領域への書き込みタイプのコマンドを失敗させることができる。
【００１８】
通信モジュールは、ストレージ・デバイスとホスト・コンピュータとの間の通信を容易にするように構成することができる。一実施形態では、通信モジュールは、ホスト・コンピュータによって保護された領域への書き込みタイプのコマンドが、処理モジュールを介して首尾よく処理されたことを確認する（acknowledge）ように構成することができる。他の実施形態では、通信モジュールは、ストレージ・メディアの保護領域の状況を通信するように構成することができる。たとえば、通信モジュールは、データ保護機能が活動化されたかどうか、ならびに、保護領域のサイズおよび使用可能スペースを、通信することができる。
【００１９】
保護装置に関連して、追跡モジュールは、誰がストレージ・デバイスを更新するように試行しているかを特定するように構成することができる。一実施形態では、追跡モジュールは、ストレージ・デバイスへの書き込みタイプのコマンドおよびアクセスのタイムスタンプを実行させるシステムの、識別が投入された追跡テーブルを格納することからなるものとすることができる。追跡モジュールのＩ／Ｏ追跡可能機能は、ストレージ・メディア上で不注意によるデータのオーバレイが試行された場合、ストレージ・デバイス上での診断されないデータ破損を解決するように設計される。一実施形態では、追跡テーブルをストレージ・デバイスと共にメモリ・デバイス内に格納することができる。他の実施形態では、追跡テーブルを、ストレージ・デバイスのストレージ・メディア上に直接格納することができる。
【００２０】
一実施形態では、通知モジュールは、基本キーを備えたストレージ・メディアの領域を保護するための保護装置の機能を、ホスト・コンピュータに通知するために実施することができる。ホスト・コンピュータが保護装置を活動化する許可をストレージ・デバイスに与えた場合、通信モジュールはストレージ・デバイスに承認を送ることができる。
【００２１】
一実施形態では、活動化モジュールは、保護装置を構成するコンポーネントのそれぞれを初期化する。活動化されると、活動化モジュールは、保護装置が意図されたように続行することを保証するために実施することができる。たとえば、現在の保護装置のすべての設定を、ストレージ・デバイスと共にメモリ・デバイス内に保持することで、活動化モジュールは、システムの強制リセットまたは予期せぬパワー損失などの予期せぬイベントの発生時に、すべての設定を回復および復元するために実施することができる。
【００２２】
保護装置がデータ保護機能を活動化することをホスト・コンピュータが許可すると、定義モジュールによって定義された基本キーの値をホスト・コンピュータに送ることができる。ある実施形態では、定義モジュールは、ランダム基本キーまたは静的基本キーのいずれかを定義することができる。他の実施形態では、定義モジュールは、システム管理者が基本キーを定義できるようにする。他の実施形態では、定義モジュールは、ストレージ・デバイスのハードウェア・シリアル番号または同様のハードウェア識別番号に関して、基本キーを定義することができる。
【００２３】
検証モジュールと共に、比較モジュールはパスキーと基本キーとを比較し、比較モジュールは、パスキーの単一ビットまたは一連のビットが実際に定義された基本キーの値と合致することを検証するように作られている。比較モジュールがパスキーと基本キーとの合致を計算するのに応答して、保護装置は、書き込みタイプのコマンドが処理されるために、ホスト・コンピュータがストレージ・メディアの保護領域にアクセスすることを認めることができる。
【００２４】
インデックス・モジュールは、ストレージ・メディア上の保護領域にインデックス付けするように構成することができる。インデックス・モジュールは、保護領域の場所、サイズ、および使用可能スペースをインデックス内に格納することができる。ある実施形態では、インデックス・モジュールはメモリ・デバイス、ストレージ・コントローラのバッファ、またはストレージ・メディア上に、インデックスを格納する。
【００２５】
電子データ・ストレージ・デバイス上のデータを保護するための、本発明のシステムも提示される。このシステムはストレージ・デバイスとして具体化することも可能であり、ストレージ・デバイスは、データへのアクセスおよびデータの格納を意図してホストと通信するように構成される。
【００２６】
とりわけ一実施形態では、システムは、電子データを格納するように構成されたストレージ・メディアを含む。システムは、ストレージ・デバイスがどのようにストレージ・メディア上にデータを格納し、このデータにアクセスするかを指定するように構成された、ストレージ・コントローラと、前述のように構成された、ストレージ・メディアの指定領域を保護するための保護装置と、も含む。他の実施形態では、システムは、ストレージ・メディア上の保護領域のインデックスを格納するように構成されたメモリ・デバイスと、基本キーを使用してストレージ・メディアの領域を保護するために、ホストから電子データ・ストレージ・デバイスへの要求を確認するように構成された通信モジュールと、電子データ・ストレージ・デバイスへのアクセスを追跡するように構成された追跡モジュールと、を含むことができる。
【００２７】
電子データ・ストレージ・デバイスの保護領域にデータを格納するための、本発明のシステムも提示される。このシステムは、ストレージ・メディア上のデータにアクセスし、このデータを格納する意図で、ストレージ・デバイスにアクセスするホスト・コンピュータとして具体化することができる。
【００２８】
とりわけ一実施形態では、このシステムは、ホストに接続された電子データ・ストレージ・デバイスの存在を検出するように構成された認識モジュールを含む。システムは、基本キーを使用して電子データ・ストレージ・デバイスの領域を保護するための電子データ・ストレージ・デバイスの機能を確認するように構成された、確認モジュールも含む。他の実施形態では、システムは、ホストによって指定された電子データ・ストレージ・デバイスの領域を基本キーで保護するための電子データ・ストレージ・デバイスの保護機能を実行可能にすることを、ストレージ・コントローラに許可するように構成された許可モジュールと、電子データ・ストレージ・デバイスの領域を被保護として指定するように構成された割り振りモジュールと、電子データ・ストレージ・デバイスの保護領域にパスキーと共に書き込みタイプのコマンドを送信するために電子デバイスの保護機能を実施するように構成された実施モジュールと、を含むことができる。
【００２９】
実行された場合、電子データ・ストレージ・デバイス上のデータを保護するための動作を実行するプログラムを格納するための、信号担持媒体も提示される。一実施形態では、この動作は、電子データ・ストレージ・デバイスに接続されたホストからの書き込みタイプのコマンドを認識するステップと、書き込みタイプのコマンドに関連付けられたパスキーの存在を決定するステップと、パスキーの存在の決定に従って書き込みタイプのコマンドを処理するステップとを含む。
【００３０】
他の実施形態では、この動作は、電子データ・ストレージ・デバイス上の保護領域に関連付けられた基本キーを定義するステップと、ストレージ・メディア上の保護領域へのアクセスを得るためにパスキーと基本キーとを比較するステップと、パスキーと基本キーとの間の互換性に応答して、ホスト・コンピュータからのデータを電子データ・ストレージ・デバイスの保護領域に書き込むステップと、を含むことができる。
【００３１】
実行された場合、電子データ・ストレージ・デバイス上のデータを保護するための動作を実行するプログラムを格納するための、信号担持媒体も提示される。一実施形態では、この動作は、電子データ・ストレージ・デバイスの存在を検出するステップと、電子データ・ストレージ・デバイスをホストするステップと、基本キーを使用して電子データ・ストレージ・デバイスの領域を保護するための電子データ・ストレージ・デバイスの保護機能を確認するステップと、を含む。
【００３２】
他の実施形態では、この動作は、ホストによって指定された電子データ・ストレージ・デバイスの領域を保護するための電子データ・ストレージ・デバイスのデータ保護機能を実行可能にすることを、保護装置に許可するステップと、電子データ・ストレージ・デバイスの領域を被保護として指定するステップと、書き込みタイプのコマンドおよび関連付けられたパスキーを電子データ・ストレージ・デバイスに送信するステップと、を含むことができる。
【００３３】
本明細書全体にわたる機能、利点、または同様の用語の言及は、本発明によって実現可能なすべての機能および利点が、本発明のいかなる単一の実施形態におけるべきもの、またはおけるものであることも、示唆するものではない。むしろ、この機能および利点を言い表す用語は、ある実施形態に関して説明される特定の機能、利点、または特徴が、本発明の少なくとも一実施形態に含まれることを意味するものと理解されよう。したがって、本明細書全体にわたる特徴および利点、ならびに同様の用語の考察は、同じ実施形態を言い表す可能性があるが、必ずしもこの限りではない。
【００３４】
さらに、本発明の説明される機能、利点、および特徴は、１つまたは複数の実施形態において、任意の好適な様式で組み合わせることができる。当業者であれば、本発明が、特定の実施形態の特定の機能または利点のうちの１つまたは複数なしに実施可能であることを理解されよう。他のインスタンスでは、本発明のすべての実施形態に存在しない可能性のあるある種の実施形態において、追加の機能および利点が認識される可能性がある。
【００３５】
本発明のこれらの機能および利点は、以下の説明および添付の特許請求の範囲から、より完全に明らかとなるか、または、以下で述べるような本発明の実施によって習得することができる。
【００３６】
次に、本発明の諸実施形態について、添付の図面を参照しながら単なる例として説明する。
【発明を実施するための最良の形態】
【００３７】
本明細書で説明される機能単位の多くは、実装の独立性を特に強調するために、モジュールとしてラベル付けされている。たとえば、モジュールは、カスタムＶＬＳＩ回路またはゲートウェイ・アレイ、論理チップなどの市販の半導体、トランジスタ、あるいは他の離散コンポーネントを備える、ハードウェア回路として実装することができる。モジュールは、フィールド・プログラム可能ゲート・アレイ、プログラム可能アレイ論理、プログラム可能論理デバイスなどの、プログラム可能ハードウェア・デバイス内で実装することもできる。
【００３８】
モジュールは、様々なタイプのプロセッサによる実行用のソフトウェアにも実装することができる。たとえば、実行可能コードの識別されたモジュールは、たとえばオブジェクト、プロシージャ、または関数として編成可能なコンピュータ命令の１つまたは複数の物理または論理ブロックを備えることができる。それにもかかわらず、識別されたモジュールの実行可能コードは、物理的にまとめて配置される必要はないが、論理的に結合された場合、モジュールを備え、そのモジュールの定められた目的を達成する、異なる場所に格納された種々の命令を備えることができる。
【００３９】
実際に、実行可能コードのモジュールは単一の命令または多くの命令とすることが可能であり、さらにいくつかの異なるコード・セグメントにわたって、異なるプログラム間で、およびいくつかのメモリ・デバイスにまたがって、分散することさえも可能である。同様に本明細書では、動作データはモジュール内で識別および図示可能であり、任意の好適な形で具体化すること、および、任意の好適なタイプのデータ構造内で編成することが可能である。動作データは、単一のデータ・セットとしてまとめるか、または異なるストレージ・デバイスにわたることを含む、異なる場所にわたって分散させることが可能であり、さらに、少なくとも部分的に、システムまたはネットワーク上で単なる電子信号として存在することが可能である。
【００４０】
図１は、ストレージ・システム１００の一実施形態を示す概略ブロック図である。例示されたストレージ・システム１００は、少なくとも１つのホスト・コンピュータ１０２を含む。各ホスト・コンピュータ１０２は、メインフレーム・コンピュータとすることができる。別の方法として、ホスト・コンピュータ１０２は、様々なオペレーティング・システムのうちの１つを使用する、サーバ、パーソナル・コンピュータ、ノートブック・コンピュータ、デジタル・カメラ、ビデオ・カメラ、デジタル・ビデオ・レコーダ／パーソナル・ビデオ・レコーダ（ＤＶＲ／ＰＶＲ）、ポータブル・デジタル・オーディオ・プレーヤ、携帯電話、携帯情報端末、またはパーソナル・マルチメディア・プレーヤとすることができる。ホスト・コンピュータ１０２は、ストレージ・エリア・ネットワーク（ＳＡＮ）または同様の通信チャネル１０６を介してストレージ・デバイス１０４に接続される。図２を参照すると、ストレージ・デバイス１０４のより深い説明が含まれる。
【００４１】
通信チャネル１０６は、ストレージ・エリア・ネットワーク（ＳＡＮ）を介して通信することができる。別の方法として、ホスト・コンピュータ１０２はストレージ・デバイス１０４に直接接続することができる。他の実施形態では、ホスト・コンピュータ１０２は、フラッシュ・メモリ・デバイスまたは同様の不揮発性ソリッドステート・メモリ・デバイスに直接接続することができる。
【００４２】
通信チャネル１０６は、一実施形態では、Ｓｍａｌｌ  Ｃｏｍｐｕｔｅｒ  Ｓｙｓｔｅｍ  Ｉｎｔｅｒｆａｃｅ（ＳＣＳＩ）、Ｉｎｔｅｒｎｅｔ  Ｓｍａｌｌ  Ｃｏｍｐｕｔｅｒ  Ｓｙｓｔｅｍ  Ｉｎｔｅｒｆａｃｅ（ｉＳＣＳＩ）、シリアルＡｄｖａｎｃｅｄ  Ｔｅｃｈｎｏｌｏｇｙ  Ａｔｔａｃｈｍｅｎｔ（ＳＡＴＡ）、Ｉｎｔｅｇｒａｔｅｄ  Ｄｒｉｖｅ  Ｅｌｅｃｔｒｏｎｉｃｓ／Ａｄｖａｎｃｅｄ  Ｔｅｃｈｎｏｌｏｇｙ  Ａｔｔａｃｈｍｅｎｔ（ＩＤＥ／ＡＴＡ）、米国電気電子学会規格１３９４（ＩＥＥＥ  １３９４）、ユニバーサル・シリアル・バス（ＵＳＢ）、Ｃｏｍｍｏｎ  Ｉｎｔｅｒｎｅｔ  Ｆｉｌｅ  Ｓｙｓｔｅｍ（ＣＩＦＳ）、Ｃｏｍｍｏｎ  Ｉｎｔｅｒｎｅｔ  Ｆｉｌｅ  Ｓｙｓｔｅｍ（ＣＩＦＳ）、ネットワーク・ファイル・システム（ＮＦＳ／ＮｅｔＷＦＳ）、ハイパーテキスト転送プロトコル（ＨＴＴＰ）、ファイル転送プロトコル（ＦＴＰ）、伝送制御プロトコル／インターネット・プロトコル（ＴＣＰ／ＩＰ）、Ｆｉｂｅｒ  Ｃｏｎｎｅｃｔｉｏｎ（ＦＩＣＯＮ）、エンタープライズ・システム接続（ＥＳＣＯＮ）、ソリッドステート・メモリ・バス、または任意の同様のインターフェースを使用して、実装可能である。
【００４３】
ホスト・コンピュータ１０２は、ホスト通信インターフェース１０８も含む。一実施形態では、ホスト通信インターフェース１０８は、認識（recognition）モジュール１１０、確認（acknowledge）モジュール１１２、許可（authorization）モジュール１１４、割り振り（allocation）モジュール１１６、および実施（implementation）モジュール１１８を含む。他の実施形態では、認識モジュール１１０、確認モジュール１１２、許可モジュール１１４、割り振りモジュール１１６、および実施モジュール１１８を、ホスト・コンピュータ１０２内に直接実装することができる。
【００４４】
動作時に、認識モジュール１１０は、新しいストレージ・デバイス１０４が、たとえばシステム・ユーザによってストレージ・システム１００に追加された場合を検出する。加えて認識モジュール１１０は、ストレージ・システム１００に接続されたストレージ・デバイス１０４がない場合を検出することができる。認識モジュール１１０は、ストレージ・デバイス１０４がストレージ・システム１００から除去された場合を検出することもできる。他の実施形態では、認識モジュール１１０は、データ保護機能を備えたストレージ・デバイス１０４がストレージ・システム１００に追加された場合と、データ保護機能を備えないストレージ・デバイス１０４がストレージ・システム１００に追加された場合とを、区別することができる。
【００４５】
一実施形態では、認識モジュール１１０は、データ保護機能を備えたストレージ・デバイス１０４がストレージ・システム１００に追加された場合、またはデータ保護機能を備えないストレージ・デバイス１０４がストレージ・システム１００に追加された場合を示すための、電気機械スイッチなどのハードウェア・メカニズムを含むことができる。たとえば、データ保護機能を備えたストレージ・デバイス１０４は、デバイス１０４がデータ保護機能を有する旨の信号をホスト１０２に対して送る、電気機械スイッチを作動させるピンを含むことができる。これに対して、データ保護機能を備えないストレージ・デバイス１０４は、電気機械スイッチを作動させないように、このピンを除去することができる。
【００４６】
ストレージ・デバイス１０４がデータ保護機能を有すると認識された場合、確認モジュール１１２は、データ保護機能がホスト・コンピュータ１０２によって認識されること、およびホスト・コンピュータ１０２がストレージ・デバイス・スキームによってデータ保護のプロトコルに準拠することを、ストレージ・デバイス１０４に通知することができる。一実施形態では、データ保護機能は、被保護として指定された領域へのアクセスを得るためにキーを使用することが可能であり、これによって保護／ロックされた領域のロックが解除され、意図された書き込みタイプのコマンド動作に対するアクセスが認められる。書き込みタイプのコマンドは、以前に書き込まれたデータの消去、以前に書き込まれたデータの更新、および、新しくフォーマット化された領域、あるいは以前に書き込まれたことがないかまたは新しく保護された領域への書き込みを含むが、これらに限定されることはない。本明細書での書き込み要求に関する言及は、任意の書き込みタイプのコマンドの例であり、任意の書き込みタイプのコマンドを言い表すものとすることができる。
【００４７】
ホスト・コンピュータ１０２が、ストレージ・デバイス１０４に対してデータ保護機能との対話機能を認めると、ストレージ・デバイス１０４は、データ保護機能を活動化するための許可をホスト・コンピュータ１０２から受け取ることができる。一実施形態では、許可モジュール１１４は、データ保護機能を活動化するための許可をストレージ・デバイス１０３に送信することができる。
【００４８】
ストレージ・デバイス１０４がデータ保護を実行できる場合、割り振りモジュール１１６は、ストレージ・デバイス１０４上の１つまたは複数の領域を、被保護として指定することができる。一実施形態では、割り振りモジュール１１６は、ユーザがこの指定を決定できるようにすることができる。他の実施形態では、割り振りモジュール１１６は、ストレージ・デバイス１０４がこの指定を制御できるようにすることができる。他の実施形態では、割り振りモジュール１１６は、保護領域、およびその逆に非保護領域の、割り振り済みサイズをリアルタイムで変更する機能を有することができる。
【００４９】
割り振りモジュール１１６は、ストレージ・デバイス１０４上の物理または論理のいずれかの領域を指定することができる。物理領域は、たとえば、保護データに関する単一の隣接領域が存在する、データ・ストレージ・スペースの隣接ブロックとすることができる。論理領域は、たとえば、データの保護に関して指定されたここにアクセスされる領域のランダム・セットとすることができる。したがって、保護データおよび非保護データは、ストレージ・デバイス１０４上のデータの論理ブロック全体に散在させることができる。
【００５０】
一実施形態では、実施モジュール１１８は、被保護として指定されたストレージ・デバイス１０４の領域への書き込み命令を実施し、この書き込み命令は関連付けられたパスキー１２０を含む。一実施形態では、パスキー１２０は、被保護として指定されたストレージ・デバイス１０４の領域へのアクセスを一時的に可能にするように設計された、１ビットまたは一連のビットとすることができる。実施モジュール１１８は、被保護として指定された領域にデータを書き込むためのコマンドを受け取り、この書き込み命令を、関連付けられたパスキー１２０を使用し、ストレージ・デバイス１０４のデータ保護機能を動作させるために確立可能なガイドラインおよびプロトコルに従って、実行することができる。
【００５１】
図２は、図１のホスト・コンピュータ１０２と共に実装可能なストレージ・デバイス２００の一実施形態を示す。このストレージ・デバイス２００は、図１のストレージ・デバイス１０４とほぼ同様である。例示されたストレージ・デバイス２００は、ストレージ・コントローラ２０２、ストレージ・メディア２０４、およびメモリ・デバイス２０６を含む。ストレージ・デバイス２００は、ストレージ・コントローラ２０２のＩ／Ｏ動作に従って、ストレージ・メディア２０４上にデータを格納し、これにアクセスすることができる。ある実施形態では、ストレージ・デバイス２００は、単一のストレージ・メディア２０４または複数のストレージ・メディア２０４を含むことができる。
【００５２】
ストレージ・コントローラ２０２は、ホスト・コンピュータ１０２とストレージ・デバイス２００のコンポーネントとの間の通信インターフェースとして動作するように構成することができる。ストレージ・コントローラ２０２は、通信チャネル１０６を介してホスト・コンピュータ１０２と通信する。ホスト１０２がストレージ・メディア２０４上へのデータの書き込みまたはこのデータへのアクセスのためのコマンドを送信した場合、ストレージ・コントローラ２０２はこのコマンドを受け取り、ストレージ・メディア２０４上にデータがどのように書き込まれるか、またはこのデータがどのようにアクセスされるかを決定することができる。一実施形態では、ストレージ・コントローラ２０２は、集積回路および１つまたは複数のメモリ・デバイス２０６に投入される小型回路基板である。ストレージ・コントローラ２０２は、ハード・ドライブなどのストレージ・メディア２０４に物理的に接続することができる。他の実施形態では、ストレージ・コントローラ２０２はストレージ・メディア２０４から分離することができる。
【００５３】
ストレージ・コントローラ２０２は、不揮発性半導体または他のメモリ・デバイス上に格納可能なファームウェア２０８を含む。ストレージ・コントローラ２０２の動作の多くは、ファームウェア２０８の実行によって決定される。例示されたファームウェア２０８は保護装置２１０を含む。一般に保護装置２１０は、ストレージ・メディア２０４上のストレージ・デバイス・スキームによってデータ保護を実施することができる。保護装置２１０の一例について、図３を参照しながらより詳細に図示および説明する。
【００５４】
例示されたストレージ・メディア２０４は、非保護領域２１２および保護領域２１４を含む。ストレージ・メディア２０４は、磁気ハード・ディスク・ドライブ、ソリッドステート・フラッシュ・メモリ、磁気テープ・ドライブ、または他の同様のメディアとすることができる。ストレージ・メディア２０４の非保護領域２１２は、ホスト・コンピュータ１０２が、不注意によるデータの上書きからの保護を必要としない可能性のあるデータを送信することが可能な、ストレージ・メディア２０４上の場所である。これに対して、保護領域２１４に格納されたデータは、不注意によるデータの上書きから保護される。たとえば、ストレージ・メディア２０４のコンテンツ・テーブルなどのミッション・クリティカル・データを、ストレージ・メディア２０４の保護領域２１４に書き込むことができる。前述のように、ストレージ・メディア２０４の保護領域２１４は、ストレージ・デバイス１０４上の物理領域または論理領域のいずれかとして指定することができる。
【００５５】
例示されたメモリ・デバイス２０６は、インデックス２１６、ベース・キー２１８、および追跡テーブル２２０を含む。メモリ・デバイス２０６は、ストレージ・デバイス２００のＩ／Ｏ性能を向上させるため、ならびにストレージ・デバイス２００の動作用に設計されたマイクロコードを格納するための、バッファ（図示せず）として働くことが可能である。バッファまたはキャッシュは、ストレージ・メディア２０４からの最近の読み取りの結果を保持するため、および、近い将来要求される可能性が高いデータをプリフェッチするために使用される。メモリ・デバイス２０６は、フラッシュ・メモリ、静的ランダム・アクセス・メモリ（ＳＲＡＭ）、不揮発性ランダム・アクセス・メモリ（ＮＶＲＡＭ）、電気的消去可能プログラム可能読み取り専用メモリ（ＥＥＰＲＯＭ）、消去可能プログラム可能読み取り専用メモリ（ＥＰＲＯＭ）、ＮＡＮＤ／ＡＮＤ、ＮＯＲ、分割ビット・ラインＮＯＲ（ＤＩＮＯＲ）、または任意の他の同様のメモリ・デバイスなどの、１つまたは複数の不揮発性半導体デバイスからなるものとすることができる。
【００５６】
ホスト・コンピュータ１０２が、ストレージ・メディア２０４上の保護領域２１４を割り振る場合、ストレージ・コントローラ２０２は、保護装置２１０を介して、保護領域２１４の場所、サイズ、および使用可能スペースをインデックス２１６に格納することができる。一実施形態では、インデックス２１６は、ストレージ・コントローラ・バッファと同じメモリ・デバイス２０６上に格納される。他の実施形態では、インデックス２１６は、実際のストレージ・メディア２０５上、または別のメモリ・デバイス上に格納される。
【００５７】
保護装置２１０は、ストレージ・メディア２０４の保護領域２１４を未許可の書き込みタイプのコマンドから守るために、基本キー２１８を使用することができる。一実施形態では、基本キー２１８は、単一ビットまたは一連のビットとして定義することができる。一実施形態では、ストレージ・メディア２０４の保護領域へのアクセスを得るためには、ホスト１０２からのパスキー１２０が基本キー２１８と合致しなければならない。別の方法として、合致に関して基本キー２１８およびパスキー１２０の一部を比較することができる。一実施形態では、基本キー２１８は、メモリ・デバイス２０６上またはストレージ・メディア２０４上に格納することができる。他の実施形態では、基本キー２１８はソフトウェア変数とすることができる。
【００５８】
基本キー２１８は、２進値、８進値、１６進値、ＡＳＣＩＩ（情報交換用米国標準コード）値、または任意の他の同様のエンコーディングとして符号化することができる。基本キー２１８には、ホスト・コンピュータ１０２によって定義されたように値を与えることができる。一実施形態では、基本キー２１８はランダム・プロセスによって定義されたようなランダム値として構成することができる。他の実施形態では、基本キー２１８はシステム管理者によって定義することができる。他の実施形態では、基本キー２１８は、ストレージ・デバイス１０４のハードウェア・シリアル番号などの、ハードウェア識別番号によって定義することができる。
【００５９】
一実施形態では、基本キー２１８は、ストレージ・デバイス２００に関連するレジスタ内のビットまたは一連のビットにおける論理値として実施することができる。ホスト・コンピュータ１０２が、ストレージ・メディア２０４の保護領域２１４にデータを格納するための書き込み要求を送信する場合、このホスト・コンピュータ１０２からの書き込み要求は、基本キー２１８の論理値をレジスタ内ビットまたは一連のビットにラッチするためのコマンドを含むことができる。
【００６０】
追跡テーブル２２０は、ストレージ・メディア２０４の保護領域２１４上で不注意によるデータのオーバレイが試行された場合に、ストレージ・デバイス２００上での診断されないデータ破損を解決するように設計された、Ｉ／Ｏ追跡可能性を提供することができる。追跡テーブル２２０は、ストレージ・デバイス２００の保護領域２１４に書き込みタイプのコマンドを要求するホスト１０２の識別子、ならびに要求のタイムスタンプを格納することができる。タイムスタンプは、要求が受信された日付または時間、あるいはその両方を含むことができる。
【００６１】
図３は、図２のストレージ・デバイス２００に関連して実装可能な、保護装置３００の一実施形態を示す概略ブロック図である。例示された保護装置３００は、図１に関して上記で説明したように、データ保護機能がホスト・コンピュータ１０２によって認識された旨をホスト・コンピュータ１０２がストレージ・デバイス２００に通知すると、起動することができる。
【００６２】
一実施形態では、保護装置３００は、ストレージ・コントローラ２０２内のマイクロコードで実装される。他の実施形態では、保護装置３００は、ストレージ・メディア２０４上に直接格納されたプログラムで実装することができる。例示された保護装置３００は、監視モジュール３０２、検証モジュール３０４、処理モジュール３０６、通信モジュール３０８、および追跡モジュール３１０を含む。
【００６３】
保護装置３００は、ストレージ・メディア２０４上のデータの割り振られた領域を保護し、ストレージ・メディア２０４の保護領域２１４への未許可の書き込みタイプのコマンドを防止する。これを実施するために、保護装置３００は、ホスト１０２が保護領域２１４を指定する方法、ならびに保護領域２１４内のデータにアクセスするかまたはこのデータを修正する方法を管理するための、保護プロトコルを実施することができる。
【００６４】
一実施形態では、保護装置３００は、保護領域２１４へのアクセスを制限するために使用される基本キー２１８を定義することができる。ホスト・コンピュータ１０２の保護領域２１４へのアクセスを得るために、保護装置３００の保護プロトコルは、ホスト・コンピュータ１０２からのパスキー１２０と基本キー２１８とを比較することができる。
【００６５】
ホスト１０２によって正しいパスキー１２０が供給されたことを、保護装置３００が検証モジュール３０４を介して検証した場合、ホスト・コンピュータに対してストレージ・メディア２０４の保護領域２１４へのアクセスが認められる。一実施形態では、書き込み要求が処理され、データが保護領域２１４に格納されると、基本キー２１８を表すレジスタ上のビットまたは一連のビットをリセットすることが可能であり、保護領域への次の書き込み要求が正しいパスキー１２０を含むまで、ストレージ・メディア２０４の保護領域２１４へのアクセスがロックアウトされる。
【００６６】
監視モジュール３０２は、ストレージ・メディア２０４にデータを書き込むためのホスト・コンピュータ１０２からの要求を識別する。一実施形態では、監視モジュール３０２は、ストレージ・デバイス２００への書き込み要求と任意の他の要求とを区別するように構成される。他の実施形態では、監視モジュール３０２は、保護領域２１４への書き込み要求と非保護領域２１２への書き込み要求との相違を認識するように構成される。他の実施形態では、監視モジュール３０２は、パスキー１２０を伴うホスト・コンピュータ１０２からの書き込み要求と、パスキー１２０を含まないホスト・コンピュータ１０２からの書き込み要求との相違を認識するように構成することができる。
【００６７】
検証モジュール３０４は、パスキー１２０がホスト・コンピュータ１０２からの書き込み要求に関連付けられているか否かを検出する。前述のように、パスキー１２０は、ストレージ・デバイス２００上の保護領域２１４へのアクセス許可を取得するように設計される。言い換えれば、パスキー１２０は、書き込みタイプのコマンドに対してストレージ・メディア２０４の保護領域２１４をロック解除することができる。一実施形態では、検証モジュール３０４は、ホスト・コンピュータ１０２からの書き込み要求が保護プロトコルに従って実行されることを検証するように構成することができる。
【００６８】
他の実施形態では、検証モジュール３０４は、ストレージ・コントローラ２０２に関連して、ストレージ・メディア２０４の保護領域２１４に書き込むための事前に定義された数の不法な試行が受信されたことを、システム管理者に通知するように構成することができる。この場合、不注意によるオーバレイ再発の潜在的な原因を検出することができる。他の実施形態では、検証モジュールは、保護領域２１４にデータを書き込むためのコマンドを受信すると、保護領域２１４が割り振られていることを検証することが可能であり、割り振られている場合は、保護されたデータを保護領域２１４に書き込む。検証モジュール３０４は、通知モジュール３１２、活動化モジュール３１４、定義モジュール３１６、比較モジュール３１８、およびインデックス・モジュール３２０を含む。
【００６９】
一実施形態では、通知モジュール３１２は、ストレージ・メディア２０４の領域に格納されたデータを保護するためのストレージ・デバイス２００の機能を、ホスト・コンピュータ１０２に通知することができる。一実施形態では、活動化モジュール３１４は保護装置３００を初期化し、保護装置３００の連続動作を保証する。たとえば、現在の保護装置３００のすべての設定をメモリ・デバイス２０６内に保持することで、活動化モジュール３１４は、ストレージ・デバイス２００に影響を与える、ストレージ・システム１００の強制リセットまたは予期せぬパワー損失などの予期せぬイベントに応答して、保護プロトコルの動作を回復および復元するために実施することができる。
【００７０】
一実施形態では、定義モジュール３１６は、基本キー２１８を定義することができる。ある実施形態では、定義モジュール３１６は、ランダムに生成された基本キー２１８または静的基本キー２１８のいずれかを定義することができる。他の実施形態では、定義モジュール３１６は、システム管理者が基本キー２１８を定義できるようにすることができる。他の実施形態では、定義モジュール３１６は、ストレージ・デバイス２００のハードウェア・シリアル番号または同様のハードウェア識別番号に関して、基本キー２１８を定義することができる。
【００７１】
一実施形態では、比較モジュール３１８は、検証モジュール３０４に関連してパスキー１２０と基本キー２１８とを比較する。この比較に応答して、保護装置３００は、処理されることになる書き込みタイプのコマンドに関する保護された領域２１４へのアクセスを、ホスト・コンピュータ１０２に対して認めることができる。比較モジュール３１８は、ホスト・コンピュータ１０２からの書き込み要求に関連して、パスキー１２０を受信することができる。ある実施形態では、パスキー１２０を書き込み要求のデータ構造内に埋め込むことができる。別の方法として、パスキー１２０を書き込み要求とは別に送信することもできる。他の実施形態では、比較モジュール３１８は、基本キー２１８とパスキー１２０とを比較するため、および合致があるかどうかを判別するために、ブール演算を実行することができる。
【００７２】
インデックス・モジュール３２０は、ストレージ・メディア２０４上の保護領域２１４にインデックス付けすることができる。たとえばインデックス・モジュール３２０は、前述のように、保護領域２１４の場所、サイズ、および使用可能スペースをインデックス２１６に格納することができる。ある実施形態では、インデックス・モジュール３２０は、インデックス２１６をメモリ・デバイス２０６、ストレージ・コントローラ２０２のバッファ、またはストレージ・メディア２０４上に格納する。
【００７３】
処理モジュール３０６は、パスキー検証プロセスの結果に従って書き込み要求を処理する。一実施形態では、検証モジュール３０４が、書き込み要求が保護プロトコルの制約を満たすかどうかを判別し、満たす場合、処理モジュール３０６がこの書き込み要求を処理する。例示された処理モジュール３０６は、書き込みモジュール３２２および失敗モジュール３２４からなる。
【００７４】
一実施形態では、書き込みモジュール３２２は、書き込み要求およびパスキー１２０と基本キー２１８との正常な比較に応答して、ホスト・コンピュータ１０２からのデータを保護領域２１４に書き込むように構成することができる。他の実施形態では、書き込みモジュール３２２は、書き込み要求と、パスキー１２０が関連する書き込み要求に含まれていなかったことの決定とに応答して、ホスト・コンピュータ１０２から非保護領域２１２への書き込み要求を処理するように構成することができる。
【００７５】
これに対して、失敗モジュール３２４は、ホスト・コンピュータ１０２が正しいパスキー１２０を供給しない場合、保護領域２１４への書き込み要求を失敗させることができる。同様に、パスキー１２０は保護領域２１４に関連してのみ使用されることを意図しているため、ホスト・コンピュータ１０２がパスキーを供給する場合、失敗モジュール３２４は、非保護領域２１２への書き込み要求を失敗させることができる。
【００７６】
通信モジュール３０８は、ストレージ・デバイス２００とホスト・コンピュータ１０２との間の通信を管理することができる。一実施形態では、通信モジュール３０８は、ホスト・コンピュータ１０２からのシステム照会に応答して、ストレージ・メディア２０４上の保護領域２１４および非保護領域２１２の諸領域を搬送する。他の実施形態では、通信モジュール３０８は、保護領域２１４への書き込み要求が正常に処理されたか否かを確認するように構成することができる。
【００７７】
他の実施形態では、通信モジュール３０８は、ストレージ・デバイス２００のデータ保護機能、およびそれらが活動化されたかどうかに関する、ホスト・コンピュータ１０２からの照会を受信することができる。他の実施形態では、通信モジュール３０８は、領域の現在のサイズおよび格納に使用できるスペースなどの、ストレージ・メディア２０４の保護領域２１４および非保護領域２１２の現在の状況を、ホスト・コンピュータ１０２に中継することができる。
【００７８】
一実施形態では、追跡モジュール３１０はホスト・コンピュータ１０２を監視することができる。ホスト・コンピュータ１０２がストレージ・デバイス２００の保護領域２１４への書き込みタイプのコマンドを実行するように要求した場合、追跡モジュール３１０は、ホスト・コンピュータ１０２の識別を含むログと、要求のタイムスタンプとを、追跡テーブル２２０上に格納することができる。一実施形態では、追跡モジュール３１０は、検証モジュール３０４が、書き込みタイプのコマンドが書き込み要求に関連付けられた正しいパスキー１２０を含まなかったと判別した場合にのみ、書き込みタイプのコマンド要求のログを格納することができる。
【００７９】
図４は、書き込みタイプのコマンドに関連付けられたデータ構造４００の一実施形態を示す。書き込み要求データ構造４００は、様々なフィールドと共にストレージ・メディア２０４に書き込まれることになるデータのブロックを囲む（envelop）フレーム処理タイプ（framedtype）の書き込み要求を含むことが可能であり、各フィールドは１ビットまたは一連のビットからなる。一実施形態では、ホスト・コンピュータ１０２は、ストレージ・メディア２０４上にデータを格納するための要求に関連して、データ構造４００を採用する。
【００８０】
例示されたデータ構造４００は多くの部分からなり、長さは固定または可変とすることができる。データ構造４００は、開始区切り文字ＳＯＦフィールド４０２（フレームの開始）、ｏｐｃｏｄｅフィールド４０４、ヘッダ・フィールド４０６、パスキー・フィールド４０８、データ・ブロック・フィールド４１０、ＣＲＣフィールド４１２（巡回冗長検査）、および終了区切り文字ＥＯＦフィールド４１４（フレームの終わり）を含む。
【００８１】
開始区切り文字ＳＯＦフィールド４０２は、書き込みタイプのコマンドの新しいフレームの開始をストレージ・デバイス２００に示す。ｏｐｃｏｄｅフィールド４０４は、書き込み、読み取り、消去、フォーマット、検証、または保護などのコマンドを含むことが可能であるが、これらに限定されない、ホスト・コンピュータ１０２が送信するコマンドのタイプを含む。ヘッダ・フィールド４０６は、ホスト・コンピュータ１０２の情報および他の制御情報を識別することなどの、コマンドのソースを格納することができる。パスキー・フィールド４０８は、保護領域２１４への書き込み要求がホスト・コンピュータ１０２によって送信される場合、パスキー１２０の値を格納する。パスキー・フィールド４０８は、非保護領域２１２への書き込み要求がホスト・コンピュータ１０２によって送信される場合、すべてゼロなどのｎｕｌｌ値を含むことができる。データ・ブロック・フィールド４１０は、ホスト・コンピュータ１０２がストレージ・メディア２０４上に格納するように要求するデータのブロックを含む。ＣＲＣフィールド４１２は、データ構造４００の保全性を検証するために組み込むことが可能な、計算された巡回冗長検査を格納する。終了区切り文字ＥＯＦフィールド４１４は、フレームの終わりをストレージ・デバイス２００に示す。
【００８２】
ホスト・コンピュータ１０２が書き込み要求をフレーム処理し、これをストレージ・デバイス２００に送信する場合、保護装置３００は、パスキー・フィールド４０８からパスキー１２０をストリップ（strip）し、このパスキー１２０と基本キー２１８とを比較するように、構成することができる。他の実施形態では、ホスト・コンピュータ１０２は、関連付けられた書き込み要求とは別にパスキー１２０を送信することができる。
【００８３】
図５および図６は、図３の保護装置３００によって実施可能な初期化方法５００の一実施形態を示す。便宜上、初期化方法５００は、第１の部分５００Ａおよび第２の部分５００Ｂに示されるが、まとめて初期化方法５００と呼ばれる。ここでは、図１および図２のストレージ・システム１００を参照しながら、初期化方法５００について説明する。
【００８４】
初期化方法５００は、ストレージ・デバイス２００をストレージ・システム１００に挿入する動作５０２、挿入されたストレージ・デバイス２００を検出する動作５０４、および、データ保護機能を、ホスト・コンピュータ１０２に通知５０６、ならびに確認５０８、許可５１０、および活動化５１２する動作を含む。初期化方法５００は、追加の、基本キー２１８を定義する動作５１４、保護領域２１４を割り振る動作５１６、正常な割り振りを判別する動作５１８、正常でない割り振りを失敗させる動作５２０、正常でない割り振りを再送信するかどうかを判別する動作５２２、ホスト・コンピュータ１０２にデータ保護機能が機能していることを通知する動作５２４、保護領域２１４のインデックス２１６を格納する動作５２６、および、追跡モニタを開始する動作５２８を含む。
【００８５】
初期化方法５００は、ストレージ・デバイス２００に関連付けられた保護装置３００の保護機能を開始する。明瞭にするために、初期化方法５００は一定の発生順に示されるが、ストレージ・システム１００は、これらの動作を並行して実行すること、あるいは必ずしも示された順序で実行しないこと、またはその両方が可能である。
【００８６】
例示された初期化方法５００は、ユーザまたはシステム管理者がストレージ・デバイス２００をストレージ・システム１００に挿入する５０２と、開始される。ある実施形態では、ユーザは、ストレージ・デバイス２００を、電源がオフの間にストレージ・システム１００に挿入する５０２か、またはすでに電源がオンのストレージ・システム１００にホットスワップ可能なストレージ・デバイス２００を挿入する５０２ことができる。
【００８７】
システム・ユーザがストレージ・システム１００にストレージ・デバイス２００を挿入した５０２後、ホスト・コンピュータ１０２は、接続されたストレージ・デバイス２００を検出する５０４。一実施形態では、システム・ユーザがストレージ・デバイス２００をストレージ・システム１００に挿入する５０２と、認識モジュール１１０が検出する５０４。
【００８８】
ホスト１０２が新しく追加されたストレージ・デバイス２００を検出する５０４ことに応答して、ストレージ・デバイス２００は、基本キー２１８を使用してストレージ・メディア２０４の保護領域２１４を保護するためのその機能を、ホスト・コンピュータ１０２に通知する５０６。ホスト・コンピュータ１０２は、ストレージ・デバイス２００に対して、ストレージ・デバイス２００に格納された保護装置３００のデータ保護機能を確認する５０８。一実施形態では、確認モジュール１１２は、ホスト通信インターフェース１０８を介して、ホスト１０２が保護プロトコルに準拠することを確認する５０８ことができる。
【００８９】
保護装置３００のデータ保護機能を確認した５０８後、ホスト・コンピュータ１０２は、ストレージ・デバイス２００に対してデータ保護機能を初期化するように許可する５１０ことができる。一実施形態では、許可モジュール１１４が、ストレージ・デバイスに対してデータ保護機能を初期化するように許可する５１０。ストレージ・デバイス２００は、通信チャネル１０６を介してホスト・コンピュータ１０２から許可を受け取ることができる。
【００９０】
ストレージ・デバイス２００がデータ保護機能を初期化するための許可を受信すると、ストレージ・デバイス２００は保護装置３００を活動化する５１２。一実施形態では、活動化モジュール３１４が保護装置３００を活動化する５１２ことができる。適用可能であれば、活動化モジュール３１４は、ストレージ・システム１００の強制リセット、予期せぬパワー損失、または他の有害なイベントに応答して、保護装置３００の動作を回復および復元することができる。
【００９１】
保護装置３００を活動化する５１２ことにより、ストレージ・デバイス２００は、データを保護領域２１４に保存するため、またはストレージ・メディア２０４上の領域を保護領域２１４として割り当てるための要求を、ホスト・コンピュータ１０２から受信することができる。しかしながら、データが保護領域２１４に保存される前、または保護領域２１４が割り当てられる前に、ストレージ・デバイス２００は、基本キー２１８を定義する５１４。一実施形態では、基本キー２１８は、定義モジュール３１６によって定義することができる５１４。定義モジュール３１６は、その長さ、値、エンコーディング、および格納される場所などの、基本キー２１８を定義する諸態様を決定することができる。
【００９２】
基本キーの値が定義された５１４後、もはやホスト・コンピュータ１０２は、ストレージ・メディア２０４の領域を保護領域２１４として指定することからの制約を受けず、ストレージ・メディア２０４の領域を保護領域２１４として割り振る５１６ための要求を送信することができる。一実施形態では、割り振りモジュール１１６は、ストレージ・デバイス１０４上の１つまたは複数の領域を被保護として割り振る５１６ことができる。前述のように、割り振りモジュール１１６は、ユーザまたはストレージ・デバイス２００がこの指定を決定できるようにすることが可能であり、ストレージ・デバイス１０４上の物理領域または論理領域のいずれかで割り振りを指定することができる。
【００９３】
ストレージ・メディア２０４の保護領域２１４を割り振る５１６ための要求が受信されると、初期化方法５００は、割り振りがいかなる競合もなく実行されたかどうかを判別する５１８。たとえば、ストレージ・デバイス２００が要求された割り振りサイズに対して十分なスペースを持たない、または要求された領域が書き込み保護されている、あるいは、要求をタイムアウトさせる大規模なデータ転送が実行中である、という可能性がある。
【００９４】
保護装置３００が、ストレージ・メディア２０４の領域を保護領域２１４として正常に割り振りできない場合、初期化方法５００は割り振り要求を失敗させる５２０。失敗モジュール３０６は、障害の原因に基づいて失敗シーケンスを開始することができる。したがってストレージ・デバイス２００は、保護領域２１４を割り振る５１６ための要求が失敗した５２０ことをホスト・コンピュータ１０２に通知することができる。割り振り要求が失敗すると５２０、初期化方法５００は、ホスト・コンピュータ１０２が保護領域２１４を割り振る５１６ための要求を再送するかどうかを判別する５２２。一実施形態では、システム・ユーザは、割り振り要求が失敗した５２０場合に、この要求を再送できる試行回数を設定することができる。
【００９５】
しかしながら、ホスト・コンピュータ１０２がストレージ・メディア２０４の領域を保護領域２１４として正常に割り振った５１８場合、ストレージ・デバイス２００は、割り振り要求が成功したこと、およびデータ保護機能が活動化されたことを、ホスト・コンピュータ１０２に通知する５２４。
【００９６】
保護領域２１４が割り振られる５１６と、ストレージ・デバイス２００はメモリ・デバイス２０６上にインデックス２１６を格納する５２６。一実施形態では、インデックス２１６は、保護領域２１４の場所、サイズ、および使用可能スペースを含む。他の実施形態では、インデックス２１６はストレージ・メディア２０４上に直接格納される。
【００９７】
ホスト・コンピュータ１０２がストレージ・メディア２０４上に保護領域２１４を正常に割り振った５１８後、ストレージ・デバイス２００は、Ｉ／Ｏ追跡可能性を提供するために追跡モニタを開始する５２８。一実施形態では、追跡モジュール３１０はストレージ・メディア２０４への書き込みタイプのコマンド・アクセスによって、各ホスト・コンピュータ１０２をアクティブに追跡する。したがってシステム・ユーザは、ストレージ・メディア２０４の保護領域２１４上で不注意によるデータのオーバレイが試行された場合、ストレージ・デバイス２００上での診断されないデータ破損を解決することができる。前述のように、追跡モジュール３１０は、保護領域２１４への書き込みタイプのコマンドを要求する各ホスト・コンピュータ１０２の識別を含むことが可能なログ、ならびに要求のタイムスタンプを、追跡テーブル２２０上に格納することができる。ストレージ・デバイス２００が追跡モニタを開始する５２８と、初期化方法５００を終結させることができる。
【００９８】
図７は、書き込み方法６００の一実施形態を示す。書き込み方法６００は、図１および図２のストレージ・システム１００を使用して実行することができる。書き込み方法６００は、ホスト・コンピュータ１０２とストレージ・デバイス２００との間の通信を監視する動作６０２、ホスト・コンピュータ１０２からのコマンドが書き込み要求であるかどうかを判別する動作６０４、および、データ保護機能が実行可能であるかどうかを判別する動作６０６を含む。例示された書き込み方法６００は、追加の、コマンド要求データが保護領域２１４に格納されるかどうかを判別する動作６０８、パスキー１２０が保護領域２１４への書き込み要求に含まれるかどうかを判別する動作６１０、パスキー１２０が正しいかどうかを判別する動作６１２、書き込み要求を処理する動作６１４、パスキー１２０が非保護領域２１２への書き込み要求に含まれるかどうかを判別する動作６１６、および、不完全な書き込み要求を失敗させる動作６１８も含む。
【００９９】
書き込み方法６００は、ストレージ・メディア２０４の保護領域２１４を不注意によるデータのオーバレイからアクティブに保護する、ホスト・コンピュータ１０２からストレージ・デバイス２００への書き込み要求を処理する。明瞭にするために、書き込み方法６００の諸動作は一定の発生順に示されるが、実際のシステム内での実行は並行して実施可能であり、必ずしも示された順序で実施されるとは限らない。
【０１００】
書き込み方法６００が開始され、保護装置３００は、ホスト・コンピュータ１０２とストレージ・デバイス２００との間の通信を監視する６０２。一実施形態では、監視モジュール３０２が、ホスト・コンピュータ１０２とストレージ・デバイス２００との間の通信を監視する６０２。たとえば、監視モジュール３０２は、データ構造４００のｏｐｃｏｄｅフィールド４０４からのコマンドのタイプをストリップ（strip）することにより、ホスト・コンピュータ１０２によってストレージ・デバイス２００に送信されるコマンドのタイプを監視する６０２ことができる。
【０１０１】
監視モジュール３０２がホスト・コンピュータ１０２からコマンドを受信すると、監視モジュール３０２は、ストレージ・デバイス２００に送信されるコマンドが書き込み要求（すなわち書き込みタイプのコマンド）であるかどうかを判別する６０４ために、コマンドを検査する。書き込み方法６００が、コマンドが書き込み要求であると判別する６０４と、書き込み方法６００は次へ進み、データ保護機能がストレージ・デバイス２００に対して実行可能であるかどうかを判別する６０６。コマンドが書き込み要求でない場合、書き込み方法６００は戻って、ホスト・コンピュータ１０２とストレージ・デバイス２００との間の通信を監視する６０２。
【０１０２】
書き込み要求が受信されると、書き込み方法６００は、ストレージ・デバイス２００に対する保護機能が活動化されるかどうかを判別する６０６。書き込み方法６００が、保護装置３００がアクティブであると判別した６０６場合、書き込み方法６００は次へ進み、書き込みタイプのコマンドの宛先が保護領域２１４であるかどうかを判別する６０８。書き込み方法６００が、保護装置３００がアクティブでないと判別した６０６場合、書き込み方法６００は次へ進み、書き込み要求を処理する６１４。保護装置３００のデータ保護機能が実行可能であれば、書き込み方法６００は、ホスト・コンピュータ１０２がデータを書き込むように要求する宛先がストレージ・メディア２０４の保護領域であるかどうかを判別する６０８。
【０１０３】
ストレージ・メディア２０４の保護領域２１４にデータを格納するための要求をホスト・コンピュータ１０２から受信すると、書き込み方法６００は書き込み要求がパスキー１２０を含むかどうかを判別する６１０ことができる。書き込み方法６００が、書き込み要求がパスキー１２０を含むと判別した６１０場合、書き込み方法６００は次へ進み、含まれるパスキー１２０が正しいかどうかを判別する６１２。書き込み方法６００が、保護領域２１４への書き込み要求がパスキー１２０を含まないと判別した６１０場合、書き込み方法６００は次へ進み、書き込み要求を失敗させる６１８。パスキー１２０が含まれ、これが正しい場合、書き込み方法６００は書き込み要求を処理する６１４。
【０１０４】
しかしながら、書き込み方法６００が、ホスト・コンピュータ１０２がストレージ・メディア２０４の非保護領域２１２へ書き込み要求を送信すると判別した６０８場合、書き込み方法６００は、非保護領域２１２への書き込み要求がパスキー１２０を含むかどうかを判別する６１６ことができる。書き込み方法６００が、書き込み要求がパスキー１２０を含むと判別した６１６場合、書き込み方法６００は次へ進み、書き込み要求を失敗させる６１８。非保護領域２１２への書き込み要求がパスキー１２０を含まない場合、書き込み方法６００は次へ進み、書き込み要求を処理する６１４。
【０１０５】
本発明の諸実施形態によって与えられるデータの保護は、システム性能全体に実際のプラスの影響を与えることができる。ある実施形態では、本発明は、実行可能時間（uptime）、アプリケーション可用性、および実時間ビジネス性能を向上させ、それらすべてが結果として所有者の総コストを引き下げることにつながる。本発明の諸実施形態は、データの保護に加えて、ストレージ・デバイス２００への書き込みタイプのコマンドの追跡、および不注意によるデータのオーバレイが試行された場合はその可能性のあるソースの追跡の機能を、システム管理者に提供する。
【０１０６】
本明細書に含まれる概略流れ図は、全体に論理流れ図として示される。したがって、示された順序およびラベル付けされた動作は、本発明の一実施形態を示す。機能、論理、または効果において、例示された方法の１つまたは複数の動作、あるいはその一部分と同等の、他の動作および方法が考案される可能性がある。加えて、採用されるフォーマットおよび記号は、方法の論理動作を説明するために提供されるものであり、方法の範囲を制限するものとは理解されない。流れ図では様々な矢印タイプおよび線タイプを採用することができるが、それらが対応する方法の範囲を制限するものとは理解されない。実際に、一部の矢印または他のコネクタを使用して、方法の論理流れのみを示すことができる。たとえばある矢印は、示された方法の列挙された動作間での、指定されていない持続時間の待機または監視を示すことができる。加えて、特定の方法が発生する順序は、示された対応する動作の順序に厳密に従う場合、または従わない場合がある。
【０１０７】
本明細書全体を通じた「一実施形態」、「実施形態」、または同様の用語への言及は、実施形態と共に説明される特定の機能、構造、または特徴が、本発明の少なくとも１つの実施形態に含まれることを意味する。したがって、本明細書全体を通じた「一実施形態では」、「実施形態では」、および同様の語句の出現は、すべて同じ実施形態を言い表す可能性があるが、その限りではない。
【０１０８】
信号担持媒体への言及は、信号を生成する機能、信号を生成させる機能、またはデジタル処理装置上で機械読み取り可能命令のプログラムを実行させる機能の、任意の形を取ることができる。信号担持媒体は、伝送線、コンパクト・ディスク、デジタル・ビデオ・ディスク、磁気テープ、ベルヌーイ・ドライブ、磁気ディスク、パンチ・カード、フラッシュ・メモリ、集積回路、または他のデジタル処理装置のメモリ・デバイスによって、具体化することができる。
【０１０９】
さらに、記載された本発明の機能、構造、または特徴は、１つまたは複数の実施形態において、任意の好適な様式で組み合わせることができる。本発明の諸実施形態を完全に理解するために、プログラミング、ソフトウェア・モジュール、ユーザ選択、ネットワーク・トランザクション、データベース照会、データベース構造、ハードウェア・モジュール、ハードウェア回路、ハードウェア・チップ、その他の例などの、多数の特定の細部が提供される。しかしながら当業者であれば、本発明が、この特定の細部のうちの１つまたは複数なしに、あるいは他の方法、コンポーネント、材料などを使用して、実施可能であることを理解されよう。他のインスタンスでは、本発明の諸態様を不明瞭にすることを避けるために、良く知られた構造、材料、または動作は詳細に図示または説明されない。
【図面の簡単な説明】
【０１１０】
【図１】ストレージ・システムの一実施形態を示す概略ブロック図である。
【図２】電子データ・ストレージ・デバイスの一実施形態を示す概略ブロック図である。
【図３】保護装置の一実施形態を示す概略ブロック図である。
【図４】書き込み要求データ構造の一実施形態を示す概略図である。
【図５】初期化方法の一実施形態を示す概略流れ図である。
【図６】初期化方法の一実施形態を示す概略流れ図である。
【図７】書き込み方法の一実施形態を示す概略流れ図である。
【図１】
2009503709.tif 000003
【図２】
2009503709.tif 000004
【図３】
2009503709.tif 000005
【図４】
2009503709.tif 000006
【図５】
2009503709.tif 000007
【図６】
2009503709.tif 000008
【図７】
2009503709.tif 000009
2009503709.tif 000010
2009503709.tif 000011
2009503709.tif 000012
【国際調査報告】
2009503709.tif 000013
2009503709.tif 000014
2009503709.tif 000015