(57)【要約】【課題】  今日に至るまで、多くの場合、データのこのような保存は、データを多様な媒体に、データが最初に保存されてから将来に亘っても本媒体が改変されないように事前に注意してコピーする形で実行されている。不幸にして、このような方式は厄介で、非効率的で、実施し難いものである。多様な方法は多くの場合、データ保存のコストを大きく増大させる。【解決手段】  本発明はデータ正常性の保証の必要性に向けられ、システムのユーザによって選択されている指定された時点以降、指定ボリューム上のデータが改変されないようにハードディスクドライブ上のデータを保護することにより実施する。【選択図】  図１
2006228203.tif 000002
【特許請求の範囲】
【請求項１】
選択データを保存するストレージボリュームと、
前記ストレージボリュームに対するアクセス制御を行い、前記ストレージボリュームの少なくとも一つの選択部分に保存されたデータに対する書き込み動作を防止するコマンドを受領する、前記ストレージボリュームに結合したストレージコントローラと
を備え、
前記ストレージコントローラが前記コマンドを受信する第一の時点で、前記データに対する第一のハッシュ値を計算することを特徴とするストレージシステム。
【請求項２】
前記第一の時点以降の第二の時点で、前記ストレージボリュームの少なくとも一つの前記選択部分に保存された前記データに対して第二のハッシュ値を計算し、該第二のハッシュ値を前記第一のハッシュ値と比較して、前記ストレージボリュームの前記少なくとも一つの選択部分に保存された前記データが、前記第一の時点と前記第二の時点との間で改変されたかを判定することを特徴とする、請求項１に記載のシステム。
【請求項３】
前記保存されたデータに対してハッシュ値を保存するために、前記ストレージボリューム、該ストレージボリュームの前記選択部分、および該選択部分に保存されたデータに対する前記ハッシュ値を特定する情報を含むハッシュ値テーブルを更に保有することを特徴とする、請求項２に記載のシステム。
【請求項４】
前記ハッシュ値は前記テーブルに保存される前に秘密キーを用いて計算され、前記テーブルは更に暗号化キーに関する情報を保有することを特徴とする、請求項１に記載のシステム。
【請求項５】
前記ハッシュ値テーブルを保存するのに追加のストレージボリュームを備えることを特徴とする、請求項３に記載のシステム。
【請求項６】
前記ストレージボリュームは各々がアドレス範囲を持つ複数のセクションに分割され、前記ストレージボリュームの前記少なくとも一つの選択部分は複数のセクションを保有することを特徴とする、請求項１に記載のシステム。
【請求項７】
前記コマンド受信を契機に、前記セクションに対する書き込み動作が拒否され、各セクションに対する前記第一のハッシュ値が計算されることを特徴とする、請求項６に記載のシステム。
【請求項８】
前記少なくとも一つの選択部分はデータ範囲で決定されることを特徴とする、請求項１に記載のシステム。
【請求項９】
前記少なくとも一つの選択部分はファイル名で決定されることを特徴とする、請求項１に記載のシステム。
【請求項１０】
ストレージボリュームに保存された選択データのデータ正常性を検証する方法において、
前記選択データに対して書き込み動作を拒否するステップと、
前記選択データに対して第一のハッシュ値を計算するステップと、
後の時点で、前記選択データのデータ正常性を検証する要求を受信するステップと、
前記後の時点で、前記選択データに対して第二のハッシュ値を計算するステップと、
前記選択データの改変の有無を判定するために前記第一と第二のハッシュ値を比較するステップと、
より成ることを特徴とする方法。
【請求項１１】
前記ストレージボリューム、前記選択データのアドレス、および前記第一のハッシュ値を特定する情報を含み、ハッシュ値を保存するためのテーブルに前記第一のハッシュ値を保存するステップを更に含むことを特徴とする、請求項１０に記載の方法
【請求項１２】
前記第一のハッシュ値を前記テーブルに保存する前に秘密キーを用いて計算するステップを更に含むことを特徴とする、請求項１０に記載の方法。
【請求項１３】
前記選択データを保存するストレージボリュームとは異なるストレージボリュームに前記テーブルを保存するステップを更に含むことを特徴とする、請求項１１に記載の方法。
【請求項１４】
前記選択データが保存され、各々がアドレス範囲を有する複数のセクションに前記ストレージボリュームを分割するステップを更に含むことを特徴とする、請求項１３に記載の方法。
【請求項１５】
前記選択データに対する書き込み動作を拒否するステップおよび前記選択データに対する第一のハッシュ値を計算するステップが実行される時に、前記複数のセクションに対する書き込み動作が拒否されて、各セクションに対する前記第一のハッシュ値が計算されることを特徴とする、請求項１４に記載の方法。
【請求項１６】
前記セクションはアドレス範囲で決定されることを特徴とする、請求項１４に記載の方法。
【請求項１７】
前記セクションはファイル名で決定されることを特徴とする、請求項１４に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
０００１    本発明はストレージシステムに、より詳細には、ストレージシステムに於いてデータの正常性を保証する技術に関連する。
【背景技術】
【０００２】
０００２    世界中の巨大組織体は今や、大量のテキスト、ビデオ、画像及び音声情報を含む何百万の電子的トランザクションに見舞われている。これらの情報は日毎に分類され、保存され、アクセスされ、更に転送されている。この様な情報の量は増大し続けている。この様な大量の情報を管理する一つの技術は、ストレージシステムを使用することである。従来のストレージシステムは、データを記録し、ミラーし、遠隔バックアップし、更に再生する多様な制御機構の下で稼動する多数のディスクドライブを含む。この急速に増大するデータ量のために、多くの会社はこれら情報技術システムによってデータを注意深く取り扱わなければならない。
【発明の開示】
【発明が解決しようとする課題】
【０００３】
０００３    このようなデータの管理で急速に重要になってきていることは、データを保護し、将来に亘ってデータが改変されない仕掛けを確立することである。今日では、例えば、データ管理の共通的目標の一つは、所定ボリューム上の所定時点のデータを所定期間、保護することである。例えば、米国に於いては、証券取引委員会規則１７条ａ−４では、所定の組織に対して、電子メール、音声メール、及び各種ドキュメント等の交信情報を、指定期間の間保存することを義務付けている。今日に至るまで、多くの場合、データのこのような保存は、データを多様な媒体に、データが最初に保存されてから将来に亘っても本媒体が改変されないように事前に注意してコピーする形で実行されている。この一例では、データは、テープドライブと最初の書き込み以降改変されないように安全に保管されたテープを用いてバックアップされる。不幸にして、このような方式は厄介で、非効率的で、実施し難いものである。多様な方法は多くの場合、データ保存のコストを大きく増大させる。
【０００４】
０００４    従って、バックアップシステムのような現行のシステムの不都合が無く、保存データの正常性を保証するより効率的で有効な方式が望まれる。
【課題を解決するための手段】
【０００５】
０００５    本発明はデータ正常性の保証の必要性に向けられ、システムのユーザによって選択されている指定された時点以降、指定ボリューム上のデータが改変されないようにハードディスクドライブ上のデータを保護することにより実施する。システムは、ストレージシステムが指定ボリューム又はその部分に対して、書き込み要求を拒否し、読み出し要求のみを受け付ける機能を備えることにより、好適に実施される。加えて、指定時点以降、例えば、読み出し専用の制限を越えて不正になされたデータの再書き込みによって保存データが改変されていないことを、証明するための技術が採用されている。
【０００６】
０００６    好適な実施例では、本機能を備えるストレージシステムは、選択データを保存する第一のストレージボリュームと第一のストレージボリュームに結合する第二のストレージボリュームを含む。コントローラは、データの第一のハッシュ値を選択された時点で計算し、この第一のハッシュ値を第二のストレージボリュームに保存するために、第二のストレージボリュームに結合する。後に、データの正常性の判定が必要になった時には、保存されている第一のハッシュ値を、当該データについて計算された新しいハッシュ値と比較して、選択された時点と検証が行われる時点間でのデータ改変の有無の判定が可能になる。
【発明を実施するための最良の形態】
【０００７】
００１３    図１は、本発明を実施できる典型的なストレージシステムのブロック図である。ストレージシステム１０１自身は通常、ストレージコントローラ１０２とボリューム系列１０３と１０４を含む。説明上、ボリューム１０３は、望むなら他のユーザデータと共に、ハッシュテーブルを保存するために使用されるので、「ハッシュボリューム」と呼ばれる論理又は物理ボリュームとし、一方ボリューム１０４はストレージシステム１０１のもう一つのボリュームとする。ストレージシステム１０１は、インタフェース１０５を通して、バス１１９、例えばファイバチャネル、に結合される。バス１１９は、ホスト１０７から情報を受け取り又このホストに情報を提供するためにホストバスアダプタ１０８を通して結合される。ストレージシステム１０１は、更に他のインタフェース５０１を通して、他のホスト５０２とそのホストバスアダプタ５０３に結合される。
【０００８】
００１４    この適用で、推奨される実施内容は、ハッシュボリュームを上述したように使用することである。しかしながら、代わりに、ハッシュ値用のストレージとして、分離したボリューム、共有メモリ、又はデータボリュームと同じボリュームを用いても良い。本ストレージは、例えば、図５で説明する実施内容の如く望まれる如何なるロケーションに置いても、ストレージシステム１０１又は１０９に置いても良い。
【０００９】
００１５    ホスト１０７がボリューム１０４に対して入出力動作を発行すると、これらの要求はインタフェース１０５を通して、ストレージシステム１０１に届き、コントローラ１０２を経由して実ボリュームに転送される。ボリュームからの読み出しはコントローラ１０２によって実行され、結果のデータはホスト１０７に返送される。以下により詳細に説明するように、好適な実施例では、コントローラは更に所定のホストからまたは所定のボリュームに対する入出力動作を受ける又は拒否することを許可するアクセス制御能力を有する。言い換えると、コントローラ１０２は、ボリューム１０４又はその一部からの読み出しのみを許可し、ボリューム１０４又はその一部に対する書き込みを全て拒否する機能を持つことができる。以下に説明するように、これは全ての書き込み要求の対象アドレスを「書き込み禁止」アドレスのテーブルと照合することにより実行される。
【００１０】
００１６    ストレージコントローラ１０２は又、ボリューム１０４に保存されたデータの全体又はその一部のハッシュ値を計算することが可能な機能を備える。計算されたハッシュ値はハッシュボリューム１０３に保存される。ハッシュ値はそれらが操作するデータによって実質的に固有に定義され、結果として重複の可能性は極めて稀になる。それゆえ、ハッシュ値が計算された指定時点と後にハッシュ値が再計算されるまでの間にデータが改変されたか否かの判定を行う技術は、ハッシュ値によってもたらされる。ハッシュ値は、ハッシュ値から元データを「逆計算」することが不可能な「一方向」ハッシュ操作を用いて計算することが望ましい。ハッシュ値の計算と保存はデータ正常性をもたらす本発明の一つの特徴である。
【００１１】
００１７    図２はハッシュ値を保存するテーブルを図示する。通常、本テーブルはハッシュボリュームと称されるボリューム１０３上に置かれる。ハッシュ値を生成するアルゴリズムは良く知られている。ここでは、ハッシュ値は、将来の時点で無改変を保証されることを求められたハードディスクドライブの領域に保存されたデータに対して実施される数学的操作によって計算される。例えば、図２のテーブルは、ストレージボリューム１０４の指定アドレス範囲のデータに基づいて計算されたハッシュ値を示す。
【００１２】
００１８    図２に於いては、各アドレス範囲にセクション番号が割り当てられている。図示されているように、図２のボリューム１は４セクションを有し、ボリューム２は３セクションを有する。本図では、データ範囲はセクションとボリュームの各々に指定されているが、これらは任意である。しかしながら、ハッシュ値をボリューム全体ではなくより限定されたアドレス範囲に基づいて計算することのメリットは、ハッシュ値をより短時間で計算できることである。ボリューム全体に対してハッシュ値を計算するには長時間を要する。更に、ハッシュ値をデータのサブセットに対して計算することにより、もしもデータが改変されたときには後で再計算することが可能になる。ハッシュ値そのものは、指示されたロケーションのデータ範囲に存在するデータを用いて計算される。例えば、図２の４行目のハッシュ値は、ＩＤ＝１のボリューム上の４０９６〜８１９１の範囲のデータに対するハッシュ値である。
【００１３】
００１９    ハッシュ値の計算には、望みの任意の技術を用いることができるが、採用する具体的なアルゴリズムによって、ハッシュ値の長さは通常変動する。例えば、ＳＨＡ−１アルゴリズムは１６０ビットのハッシュ値を、ＭＤ−５アルゴリズムは１２８ビットのハッシュ値を生成する。ハッシュ値テーブルには、採用した特定のアルゴリズムを表示する欄を追加して、データ範囲毎に異なったアルゴリズムを採用できるようにしても良い。
【００１４】
００２０    本発明でのシステムの動作方法を次に説明する。データの保護が必要になったら、ストレージシステムは所望のボリューム又はその一部を「保護モード」にする。本モードはホスト、ストレージコントローラ、管理コンピュータ又は他のソースからのコマンドにより開始される。本コマンドを、ここでは、「保護モード開始」コマンドと呼ぶ。ボリューム全体を本保護モードにする場合は、本コマンドは対象ボリュームのＩＤを含むのが普通である。しかしながら、既に述べたように、ボリューム全体を幾つかのセクションに分割し、ハッシュ値は各セクションに対して計算することもできる。ボリュームをセクションに分割するプロセスは、保護モード開始コマンドを受け取る前に実行しても良いし、その後でも良い。ボリュームを分割する仕方は、ストレージコントローラ１０２によって自動的に決定されても良いし、コマンドによって指定されても良いし、又は保護モード開始コマンドの受け取りに先立ってセクションを構築する分離した専用コマンドによって指定されても良い。対象ボリュームのデータの一部分のみを保護する場合には、保護モード開始コマンドはその内容にデータ範囲を含むことができる。
【００１５】
００２１    図３は保護モード動作を説明するフローチャートである。ここで示す通り、プロセスは、ストレージコントローラ１０２が保護モード開始コマンドを受信することにより開始する（ステップ３０１）。コマンドの受信を契機に、ストレージコントローラ１０２は指定された範囲２０３に対して、ボリューム１０４のデータのハッシュ値の計算を行う。この時点以降、ストレージコントローラ１０２は、これらのセクション(或いは指定された全ての領域)に対する全ての書き込み要求を拒否するが、読み出し要求は受け続ける。この結果、指定ボリューム又はセクションに対する書き込みは発生しない。
【００１６】
００２２    図４は、書き込み禁止ボリューム又は領域の正常性を検証するプロセスを示す。本動作は、図３のプロセス以降何時発生しても良い。ステップ４０１に示す通り、ストレージコントローラは所望領域のデータ正常性を検証するコマンドを受信すると、ステップ４０２にて対象領域のデータのハッシュ値を計算する。次いで、ステップ４０３に示す通り、ステップ４０２で計算したハッシュ値と当該領域のためにテーブルに保存されている対応するハッシュ値とを比較する。比較の結果不一致が存在すると、ステップ４０５にて失敗が返送される。不一致がなければ、ステップ４０４にて成功が返送される。プロセスはこれで終了する。
【００１７】
００２３    既に説明したように、ハッシュ機能への入力データは、対象ボリュームの全データでも良く、又より好ましくは本データの部分でも良い。部分データを生成するには、ボリュームを幾つかのセクションの等しい部分に分割し、又はセクタで分割し、又は他の任意の方法で分割してもよい。しかしながら、ボリュームを分割する場合には、各部分のアドレス範囲を、例えば、図２の欄２０３に示す如く、直接または間接的に、指定しなければならない。ボリューム分割を具体的に指定するには、保護モード開始を示すコマンドで指定するか、自動的に計算するか、又は具体的構成での分離したコマンドで指定するかができる。
【００１８】
００２４    ボリュームが保存ファイルに基づいてセクションに分割されているなら、保護が必要なアドレス範囲は通常ホスト１０７より与えられる。これは、ホスト１０７が、本ストレージのファイルシステムを基に指定ファイルが保存されているブロックのアドレステーブルを維持しているからである。このケースでは、対象ファイルへの書き込み要求は、ストレージコントローラレベルではなく、ファイルシステムレベルで拒否される。
【００１９】
００２５    ストレージシステムがネットワーク直結ストレージサーバとして稼動しているなら、ホスト１０７より与えられる情報はアドレス範囲ではなく、ファイル名、デイレクトリ名、及びパーテイション名であって良い。本情報によりストレージコントローラはテーブル２０１に類似の情報を生成することが可能である。これによって、図３に示すデータの特定範囲によって権利を拒絶するのではなく、指定ファイルによって権利を拒絶する。
【００２０】
００２６    図５は、本発明を実施するために使用できるストレージシステムのもう一つの実施例の図である。図５の左側部分に示す構成要素は図１の相当部分に対応する。これに加えて、しかしながら、自らのボリューム１１１とストレージコントローラ１１２を備えるストレージシステム１０９が更に存在する。図５に示すストレージシステムは、典型的には外部ストレージシステムであるストレージシステム１０９に存在する実ボリュームを、ストレージシステム１０１の仮想ボリューム１０４として提示する仮想化機能を有する。この動作では、ホスト１０７がボリューム１０４に入出力指示を発行すると、本指示はインタフェース１０５を通してストレージシステム１０１に来るが、本指示は更に、インタフェース１０６と１１０を通して実ボリューム１１１に転送される。動作の結果は、逆方向にホスト１０７に返送される。この実施内容では、ストレージコントローラ１０２が、ボリューム１１１へのＩ／Ｏ動作を拒否および許可するアクセス制御機能を備える。更に又、本コントローラは指定ボリューム又はその部分に対してハッシュ値を計算して、本ハッシュ情報をボリューム１０３に保存する機能を持つ。図１に関連して既に述べたように、ハッシュ機能は対象ボリュームの全データかその部分に適用することができる。図５でのホスト１１４の存在については次に述べる。
【００２１】
００２７    ここに述べる技術は、ストレージシステム１０９が指定データ範囲に対する書き込み要求を拒否する機能を欠いていても、本発明によってデータの改変の有無を判定できるので、極めて有益である。例えば、ストレージシステム１０９が一つのホスト１１４に接続され、本ホストから指定データ領域に対し不法な書き込み要求を受けるかもしれない。図５はこの様な環境の一例を示す。インタフェース１０６経由でのボリューム１１１へのアクセスは、ＬＵＮセキュリテイ又はゾーニング等のセキュリテイ技術を用いて、インタフェース１０６から来るもののみに限定される。しかしながら、ホスト１１４がボリューム１１１にアクセスすることを可能にする別のパス（１１３−１１５−１１４）がある。このことは、システム管理者が、不注意によってインタフェース１１３経由のアクセスをクローズするためのシステム構築を忘れるか、このようなインタフェースの存在すら知らなかった場合に発生することがある。データを露出するこのようなセキュリテイホールが全く存在していないことを証明することは困難かもしれないが、本発明によれば、データは最初のハッシュ値が生成されハッシュボリューム１０３に保存されて以来改変されていない、即ちデータの正常性を証明する方法を提供することができる。
【００２２】
００２８    本発明のもう一つの態様として、指定した保護開始時点以降データは改変できないが、改変があってもそれを発見できるように、改変対策として、ハッシュ値を再計算することを確かにする技術が提供される。図４で指定される検証プロセスを、図６の欄６０１に示すごとき暗号キーと共に使用することによって、本問題は解決される。ハッシュアルゴリズムが暗号キーを使用し、本キーが安全に保存されているならば、データの正常性の保証レベルは向上する。もとより、テーブル内のハッシュ値が、後にデータの正常性をチェックする時に、システムに無警告のまま改変されていないことを保証する必要性に応じて、暗号化レベルは調整可能である。このような暗号キーを採用するアルゴリズムの一例はＨＭＡＣ(ＲＦＣ２１０４)である。
【００２３】
００２９    データ正常性を検証する監査機能について以下に述べる。あるボリュームが過去の指定時点で、保護モード開始コマンドと図３に示すプロセスを使用して、保護モード下に置かれたとする。更に、現時点で、データが指定時点以降無改変であることを保証するためにボリュームをチェックすることを求められるとする。ボリュームの正常性を検証するコマンドは、好ましくは他の第三者例えば監査人の立会いの下で、信頼できる個人によって発行される。コマンドが発行され、結果はコンピュータスクリーン又は印刷形式で表示される。ハッシュ値の比較によって、保存データの正常性が検証される。
【００２４】
００３０    これまで述べてきたことは本発明の好適な実施例である。本発明を説明するために、多様な詳細実施例を述べたことを理解願いたい。しかしながら、本発明の範囲は追記される請求範囲によって明確にされる。
【図面の簡単な説明】
【００２５】
【図１】０００７    図１は、本発明のデータ正常性技術を実施するストレージシステムのブロック図である。
【図２】０００８    図２は、ハッシュ値テーブルを図示する。
【図３】０００９    図３は、データ正常性をもたらす方法のフローチャートである。
【図４】００１０    図４は、保存データの正常性を検証する手続きを示すフローチャートである。
【図５】００１１    図５は、ストレージシステムのもう一つの実施例のブロック図である。
【図６】００１２    図６は、一実施例に対する暗号化キーの保存を図示する。
【符号の説明】
【００２６】
１０１…ストレージシステム、１０２…ストレージコントローラ、１０７、５０２…ホスト、１０５…インタフェース、１０３、１０４…ボリューム、１０８、５０３…ホストバスアダプタ
【図１】
2006228203.tif 000003
【図２】
2006228203.tif 000004
【図３】
2006228203.tif 000005
【図４】
2006228203.tif 000006
【図５】
2006228203.tif 000007
【図６】
2006228203.tif 000008
【外国語明細書】
2006228203000001.pdf