(57)【要約】【課題】本発明は、ホストコンピュータがオフラインであるとき、またはシャットダウンされたとき、記憶システムに常駐するデータを安全にする方法を提供する。【解決手段】特に、対応するホストコンピュータがオフラインである間における、論理ボリュームに記憶されたデータに対する保護機構が提供される。さらに、ホストコンピュータが始動されたとき、論理ボリュームに対する保全性検査機構が提供され、ホストコンピュータは、オフライン期間中におけるその割り当てられた論理ボリュームへの無許可のアクセスを検出し、セキュリティ検査を実行することができる。【選択図】図１
2008305377.tif 000002
【特許請求の範囲】
【請求項１】
記憶システムに記憶されるデータを保護する方法であって、
前記記憶システムの少なくとも１つの論理ボリュームをホストコンピュータに割り当てるステップと、
前記ホストコンピュータがオフラインに移行する手続きを開始するときはいつでも、前記割り当てられた論理ボリュームをロックするために、前記ホストコンピュータから前記記憶システムに命令を送るステップと、
前記ホストコンピュータがオフラインのままである間、
前記割り当てられたボリュームに対するいずれの書込み要求も拒否することにより、前記割り当てられた論理ボリュームをロックするステップ、および前記記憶システムに事前定義のアクセス情報を記憶するステップを実施するステップと、
前記ホストがオンラインでオペレーションを再開するとき、前記アクセス情報を前記ホストに送るステップと
を含む方法。
【請求項２】
前記割り当てられた論理ボリュームの選択されたデータに対するホストのハッシュ値を計算し、前記ホストのハッシュ値を前記ホストコンピュータ上にローカルに記憶するステップをさらに含む、請求項１に記載の方法。
【請求項３】
前記論理ボリュームが、システム情報データおよびユーザデータを含み、前記選択されたデータがユーザデータを含む、請求項２に記載の方法。
【請求項４】
オペレーションを前記ホストが再開するという指示を受け取ると、前記記憶システムが、記憶装置のハッシュ値を前記ホストに送り、前記ホストが、セキュリティ侵害を検出するために、前記記憶装置のハッシュ値を前記ホストのハッシュ値と比較する、請求項３に記載の方法。
【請求項５】
前記アクセス情報が、最後のアクセス時間および最後のアクセスホストＩＤを含む、請求項１に記載の方法。
【請求項６】
さらに、ホストの最後のアクセス時間およびホストの最後のアクセスホストＩＤを、前記ホスト中に記憶するステップを含む、請求項５に記載の方法。
【請求項７】
前記ホストによりオペレーションが再開されると、セキュリティ違反を検出するために、前記最後のアクセス時間を前記ホストの最後のアクセス時間と比較し、前記最後のアクセスホストＩＤを前記ホストの最後のアクセスホストＩＤと比較するステップをさらに含む、請求項６に記載の方法。
【請求項８】
セキュリティ違反を検出すると、前記ホストコンピュータがウィルス検査を実行する、請求項７に記載の方法。
【請求項９】
前記ホストコンピュータのＯＳが前記記憶システム中に常駐しており、さらに、
前記記憶されたＯＳの保全性を判定するステップと、
保全性検査が安全である場合、前記ホストコンピュータを前記記憶されたＯＳから起動するステップと
を含む、請求項１に記載の方法。
【請求項１０】
ホストコンピュータからターゲットボリュームに対する書込みコマンドを受け取ると、
前記ターゲットボリュームがガードされているかどうか判定し、ガードされている場合、エラーメッセージを返すステップを実施し、そうでない場合、
書込みコマンドを実行し、前記ターゲットボリュームがユーザデータ領域であるかどうか判定し、ユーザデータ領域である場合、前記ターゲットボリュームのハッシュ値を計算し、かつ前記事前定義のアクセス情報を更新するステップを実施する、請求項１に記載の方法。
【請求項１１】
論理ユニットがその中で定義され、論理ボリュームの少なくともいくつかが各ホストコンピュータに割り当てられている記憶システムであって、
記憶ネットワーク領域インターフェースと、
コントローラと、
メモリユニットと、
複数の物理的な記憶デバイスと、
セキュリティモジュールであって、
ホストコンピュータからの命令を受けると、ボリュームをロックするように動作可能なボリュームロックモジュールと、
前記メモリユニットに事前定義のアクセス情報を記憶するように動作可能なアクセス履歴処理モジュールと、
論理ユニット番号、ハッシュ値、アクセスホストＩＤ、およびアクセス時間に対するエントリフィールドを有するアクセス履歴テーブルとを備えるセキュリティモジュールと
を備える記憶システム。
【請求項１２】
前記ホストからアクセス履歴要求を受け取ると、前記コントローラが、前記アクセス履歴テーブルからアクセス履歴データを読み取り、かつ前記アクセス履歴データを前記ホストコンピュータに送るように動作可能である、請求項１１に記載の記憶システム。
【請求項１３】
前記ホストから、ターゲットボリュームへの書込み要求を受け取ると、前記コントローラが、
前記ターゲットボリュームがガードされているかどうか判定し、ガードされている場合、エラーメッセージを返し、そうでない場合、
前記書込みコマンドを実行し、前記ターゲットボリュームがユーザデータ領域であるかどうか判定し、ユーザデータ領域である場合、前記ターゲットボリュームのハッシュ値を計算し、かつ前記アクセス履歴テーブル中の前記ハッシュ値を更新するように動作可能である、請求項１１に記載の記憶システム。
【請求項１４】
前記コントローラが、前記アクセス履歴テーブル中の前記アクセスホストＩＤ、およびアクセス時間を更新するように動作可能である、請求項１３に記載の記憶システム。
【請求項１５】
記憶システムに記憶されたデータの保護を可能にするシステムにおいて、
前記記憶システムに結合されたホストコンピュータであって、
プロセッサと、
ホストメモリと、
ローカルボリュームと、
ホストのセキュリティモジュールであって、前記ホストコンピュータを前記記憶システムから切断する前に、記憶装置の割り当てられたボリュームをロックするためのボリュームロック命令を送信するように動作可能なボリューム保護モジュールを備えるセキュリティモジュールとを備えるホストコンピュータと、
論理ユニットがその中で定義され、論理ボリュームの少なくとも１つがＳＡＮの割り当てられたボリュームを備える記憶システムであって、
記憶ネットワーク領域インターフェースと、
コントローラと、
メモリユニットと、
複数の物理的な記憶デバイスと、
記憶装置のセキュリティモジュールであって、
前記ホストのセキュリティモジュールから前記ボリュームロック命令を受け取ると、前記記憶装置の割り当てられたボリュームをロックするように動作可能なボリュームロックモジュールと、
前記メモリユニットに事前定義のアクセス情報を記憶するように動作可能なアクセス履歴処理モジュールとを備えるセキュリティモジュールとを備える記憶システムと
を備えるシステム。
【請求項１６】
前記ホストコンピュータがさらに、ボリューム保全性情報テーブルを備え、また前記記憶システムがさらに、アクセス履歴情報テーブルを備える、請求項１５に記載のシステム。
【請求項１７】
前記ボリューム保全性情報テーブルが、
論理ユニット番号と、
ホストのための最後のアクセスホストＩＤと、
記憶装置のための最後のアクセスホストＩＤと、
ホストのための最後のアクセス時間と、
記憶装置のための最後のアクセス時間と、
ホストのための最後のハッシュ値と、
記憶装置のための最後のハッシュ値と
に対するエントリフィールドを備える、請求項１６に記載のシステム。
【請求項１８】
前記記憶装置から切断される前に、前記ホストコンピュータが、フィールド中に記憶された前記値、すなわち、ホストのための最後のアクセスホストＩＤ、ホストのための最後のアクセス時間、およびホストのための最後のハッシュ値をリフレッシュする、請求項１７に記載のシステム。
【請求項１９】
前記記憶システムへの接続が再開されると、前記ホストコンピュータが、前記フィールドに対する前記記憶システムからの値、すなわち、記憶装置のための最後のアクセスホストＩＤ、記憶装置のための最後のアクセス時間、および記憶装置のための最後のハッシュ値を取得する、請求項１７に記載のシステム。
【請求項２０】
前記記憶システムがさらに、
論理ユニット番号と、
ハッシュ値と、
アクセスホストＩＤと、
アクセス時間と
に対するエントリを備えるアクセス履歴情報テーブルを備える、請求項１７に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
[0001]  本発明は、記憶システムに記憶されるデータの保護に関する。
【背景技術】
【０００２】
[0002]  一般に、記憶されたデータを保護するためのセキュリティアプリケーションには多くの種類がある。このようなアプリケーションは、例えば、アンチウィルスソフトウェア、侵入検出ソフトウェアなどを含む。これらのアプリケーションは、概して、ホストベースであり、ホストコンピュータ上で動作する。ホストコンピュータの管理者は、ＳＡＮを介してホストコンピュータに接続される記憶システムの論理ボリューム中にある自分のデータを保護し、かつデータの保全性を検査するために、これらのセキュリティアプリケーションを使用することができる。しかし、このような解決策は、ホストコンピュータが動作している間に限って動作可能である。ＳＡＮ環境では、多くのホストコンピュータのデータプールは、記憶システムがいくつかのホストコンピュータに同時にサービスを行えるように、記憶システムにより統合されている。このような環境では、各ホストコンピュータは、それ自体の割り当てられたボリュームを保護するために、それ自体のセキュリティアプリケーションを動作させる。その結果、所与の任意のホストコンピュータがオフラインになったとき、記憶システム上のその割り当てられた論理ボリュームが脅威にさらされる。この主題に関するさらなる情報のために、全く異なるコンピュータプラットフォームにおけるコンピューティング環境のセキュリティを高める目的で設立された非営利の業界標準団体である、Ｔｒｕｓｔｅｄ  Ｃｏｍｐｕｔｉｎｇ  Ｇｒｏｕｐを読者に示す。ｈｔｔｐｓ：／／ｗｗｗ．ｔｒｕｓｔｅｄｃｏｍｐｕｔｉｎｇｇｒｏｕｐ．ｏｒｇ／ｓｐｅｃｓ／ＴＰＭでその標準の開発内容を見ることができる。
【０００３】
[0003]  この発明にとって重要な記憶システムの他の特徴は、ボリュームロックである。例えば、本譲受人は、日立データ改ざん防止機能（Ｈｉｔａｃｈｉ  Ｄａｔａ  Ｒｅｔｅｎｔｉｏｎ  Ｕｔｉｌｉｔｙ）として販売されている機能を提供し、ユーザが、保存したデータをロックしてそのデータを消去不能かつ再書込み不能にできるようにする。譲受人のシステムに関するさらなる情報は、
ｈｔｔｐ：／／ｗｗｗ．ｈｄｓ．ｃｏｍ／ｄｏｗｎｌｏａｄ．ｈｔｍｌ？ｕｒｌ＝／ｐｄｆ／ｌｄｅｖ＿ｇｕａｒｄ＿ｄａｔａｓｈｅｅｔ３．ｐｄｆ＆ｒｅｇｉｏｎ＝ｇｌｏｂａｌ＆ｉｄ＝５２６＆ｔｙｐｅ＝＆ｌａｎｇ＝Ｅｎｇｌｉｓｈ＆ｔｉｔｌｅ＝Ｄａｔａ％２０Ｒｅｔｅｎｔｉｏｎ％２０Ｕｔｉｌｉｔｙ
で見出すことができる。
【０００４】
[0004]  改変からデータを保護するための他の方法は、ＷＯＲＭ（書込み１回、多数回読取り）として一般に知られている。ＷＯＲＭ機能は、例えば、米国特許第４６８９７７８号、第４７６０５６６号、第４８３１６１１号、第５０２３８５４号、および第６１８５６６１号に開示されており、そのすべての開示を、参照により本明細書にその全体を組み込む。
【発明の開示】
【発明が解決しようとする課題】
【０００５】
[0005]  当技術分野で欠けているものは、ホストコンピュータがオフラインであるとき、またはシャットダウンされたとき、記憶システムに常駐するデータを安全にする方法を提供する技術である。
【課題を解決するための手段】
【０００６】
[0006]  本発明は、特に、対応するホストコンピュータがオフラインである間、論理ボリュームに記憶されたデータに対する保護機構を提供する。本発明はさらに、ホストコンピュータが始動されたとき、論理ボリュームに対する保全性検査機構を提供し、したがって、ホストコンピュータが、オフライン期間中におけるその割り当てられた論理ボリュームへの不許可のアクセスを検出し、かつセキュリティ検査を実行することができる。
【０００７】
[0007]  本発明の一態様によると、記憶システムの少なくとも１つの論理ボリュームをホストコンピュータに割り当てるステップと、ホストコンピュータがオフラインに移行する手続きを開始するときはいつでも、割り当てられた論理ボリュームをロックするために、ホストコンピュータから記憶システムに命令を送るステップと、ホストコンピュータがオフラインのままである間、割り当てられたボリュームに対するいずれの書込み要求も拒否することにより、割り当てられた論理ボリュームをロックするステップ、および記憶システムに事前定義のアクセス情報を記憶するステップを実施するステップと、ホストがオンラインでオペレーションを再開するとき、アクセス情報をホストに送るステップとを含む、記憶システム中に記憶されたデータを保護する方法が提供される。本方法はさらに、割り当てられた論理ボリュームの選択されたデータに対するホストのハッシュ値を計算し、ホストのハッシュ値をホストコンピュータ上にローカルに記憶するステップを含むことができる。論理ボリュームは、システム情報データおよびユーザデータを含むことができ、選択されたデータはユーザデータを含むことができる。オペレーションをホストが再開するという指示を受け取ると、記憶システムは、記憶装置のハッシュ値をホストに送ることができ、ホストは、セキュリティ侵害を検出するために、記憶装置のハッシュ値をホストのハッシュ値と比較するができる。アクセス情報は、最後のアクセス時間および最後のアクセスホストＩＤを含むことができる。本方法はさらに、ホストの最後のアクセス時間およびホストの最後のアクセスホストＩＤをホスト中に記憶するステップを含むことができる。本方法はさらに、ホストによってオペレーションが再開されると、セキュリティ違反を検出するために、最後のアクセス時間をホストの最後のアクセス時間と比較し、かつ最後のアクセスホストＩＤをホストの最後のアクセスホストＩＤと比較するステップを含むことができる。セキュリティ違反を検出すると、ホストコンピュータはウィルス検査を実行することができる。本方法では、ホストコンピュータのＯＳは記憶システム中に常駐することができ、本方法はさらに、記憶されたＯＳの保全性を判定するステップと、保全性検査が安全である場合、ホストコンピュータを記憶されたＯＳから起動するステップとを含むことができる。ホストコンピュータからターゲットボリュームに対する書込みコマンドを受け取ると、本方法は、ターゲットボリュームがガードされているかどうか判定し、ガードされている場合、エラーメッセージを返すステップを実施し、そうでない場合は、書込みコマンドを実行し、ターゲットボリュームがユーザデータ領域であるかどうか判定し、ユーザデータ領域である場合、ターゲットボリュームのハッシュ値を計算し、事前定義のアクセス情報を更新するステップを実施することにより進めることができる。
【０００８】
[0008]  本発明の他の諸態様によると、論理ユニットがその中で定義された記憶システムが提供され、論理ボリュームの少なくともいくつかが、各ホストコンピュータに割り当てられており、記憶システムが、記憶ネットワーク領域インターフェースと、コントローラと、メモリユニットと、複数の物理的な記憶デバイスと、セキュリティモジュールであって、ホストコンピュータからの命令を受けると、ボリュームをロックするように動作可能なボリュームロックモジュールと、メモリユニットに事前定義のアクセス情報を記憶するように動作可能なアクセス履歴処理モジュールと、論理ユニット番号、ハッシュ値、アクセスホストＩＤ、およびアクセス時間に対するエントリフィールドを有するアクセス履歴テーブルとを備えるセキュリティモジュールとを備える。
【０００９】
[0009]  記憶システムでは、ホストからアクセス履歴要求を受け取ると、コントローラは、アクセス履歴テーブルからアクセス履歴データを読み取り、かつそのアクセス履歴データをホストコンピュータに送るように動作可能にすることができる。ホストからターゲットボリュームへの書込み要求を受け取ると、前記コントローラは、ターゲットボリュームがガードされているかどうか判定し、ガードされている場合、エラーメッセージを返し、そうでない場合は、書込みコマンドを実行し、ターゲットボリュームがユーザデータ領域かどうか判定し、ユーザデータ領域である場合、ターゲットボリュームのハッシュ値を計算し、アクセス履歴テーブル中のハッシュ値を更新するように動作可能である。コントローラは、アクセス履歴テーブル中のアクセスホストＩＤ、およびアクセス時間を更新するように動作可能にすることができる。
【００１０】
[0010]  本発明の他の諸態様によると、記憶システムに記憶されたデータの保護を可能にするシステムが提供され、そのシステムは、記憶システムに結合されたホストコンピュータであって、プロセッサと、ホストメモリと、ローカルボリュームと、ホストのセキュリティモジュールであって、ホストコンピュータを記憶システムから切断する前に、記憶装置の割り当てられたボリュームをロックするためのボリュームロック命令を送信するように動作可能なボリューム保護モジュールを備えるセキュリティモジュールとを備えるホストコンピュータと、論理ユニットがその中で定義され、論理ボリュームの少なくとも１つがＳＡＮの割り当てられたボリュームを備える記憶システムであって、記憶ネットワーク領域インターフェースと、コントローラと、メモリユニットと、複数の物理的な記憶デバイスと、記憶装置のセキュリティモジュールであって、ホストのセキュリティモジュールからボリュームロック命令を受け取ると、記憶装置の割り当てられたボリュームをロックするように動作可能なボリュームロックモジュールと、メモリユニットに事前定義のアクセス情報を記憶するように動作可能なアクセス履歴処理モジュールとを備えるセキュリティモジュールとを備える記憶システムとを備える。
【００１１】
[0011]  システムにおいて、ホストコンピュータがさらに、ボリューム保全性情報テーブルを備え、または記憶システムがさらに、アクセス履歴情報テーブルを備える。ボリューム保全性情報テーブルは、論理ユニット番号と、ホストのための最後のアクセスホストＩＤと、記憶装置のための最後のアクセスホストＩＤと、ホストのための最後のアクセス時間と、記憶装置のための最後のアクセス時間と、ホストのための最後のハッシュ値と、
記憶装置のための最後のハッシュ値とに対するエントリフィールドを備える。
【００１２】
[0012]  記憶システムから切断される前に、ホストコンピュータは、フィールド中に記憶された値、すなわち、ホストのための最後のアクセスホストＩＤ、ホストのための最後のアクセス時間、およびホストのための最後のハッシュ値をリフレッシュすることができる。記憶システムへの接続が再開されると、ホストコンピュータは、フィールドに対する記憶システムからの値、すなわち、記憶装置のための最後のアクセスホストＩＤ、記憶装置のための最後のアクセス時間、および記憶装置のための最後のハッシュ値を取得する。
【００１３】
[0013]  記憶システムはさらに、論理ユニット番号、ハッシュ値、アクセスホストＩＤ、およびアクセス時間に対するエントリを備えるアクセス履歴情報テーブルを備える。
【００１４】
[0014]  本発明に関連するさらなる諸態様は、一部は以下の説明中で述べられ、一部はその説明から明らかとなろうが、本発明を実施することによっても理解することができる。本発明の諸態様は、以下の詳細な説明および添付の特許請求の範囲で特に示されたエレメントおよび様々なエレメントの組合せ、ならびに諸態様により実現され、かつ達成することができる。
【００１５】
[0015]  前述のまた以下の説明は、例示的かつ説明目的だけのものであり、特許請求される発明またはその出願を、どんな方法であっても限定することを意図していないことを理解されたい。
【００１６】
[0016]  この明細書中に組み込まれた、かつその一部を構成する添付の図面は、本発明の諸実施形態を例示し、かつその説明と共に発明性のある技法の原理を説明し、例示するように働く。
【発明を実施するための最良の形態】
【００１７】
[0045]  前述の添付図面は、例として示されており限定するものではないが、特定の諸実施形態および実装形態は、本発明の原理と整合性がある。これらの実装形態は、当業者に本発明の実施を可能にするように、十分詳細に述べられており、他の実装形態も使用できること、および構造的な変更および／または様々なエレメントの置換えは、本発明の範囲および趣旨を逸脱することなく行えることを理解されたい。したがって、以下の詳細な説明は、限定的な意味で解釈されるべきではない。さらに、前述のように本発明の様々な実施形態は、汎用コンピュータで動作するソフトウェアの形で、特殊化したハードウェアの形で、またはソフトウェアとハードウェアの組合せで実施することができる。
【００１８】
[0046]  本発明の特徴によると、本方法は、特に、対応するホストが、例えば、シャットダウンされるなど、オフラインである間、論理ボリューム中に記憶されたデータを安全にするために提供される。その特徴によると、ホストコンピュータがオフラインになった場合、まず、記憶システムと協動して、記憶システム上のその論理ボリュームをロックする。ホストコンピュータの管理者は、各論理ボリュームに対してロックする方法を選択することができる。記憶システムは、書込みアクセス履歴およびその論理ボリュームの保全性を記録し、必要とする場合に、情報を各ホストコンピュータに送る。ホストコンピュータが始動された場合、記憶システムと協動して、記憶システム上のその論理ボリュームのロックを解除し、論理ボリュームの保全性を検査する。ホストコンピュータは、何らかの違反を発見した場合、セキュリティ検査を実行する。論理ボリュームのロックを解除し、かつ論理ボリュームの保全性を検査するプロセスは、ホストコンピュータのＯＳが記憶システム上の論理ボリューム中に記憶されるＳＡＮ  Ｂｏｏｔ環境であっても実行可能である。論理ボリュームのロックを解除し、かつ論理ボリュームの保全性を検査するためのプロセスは、ＴＰＭ（信頼できるプラットフォームモジュール）などのセキュリティモジュールを有する信頼できる環境と協動して働く。
【００１９】
ハードウェアアーキテクチャ
[0047]  図１は、本発明の実施形態による物理的なハードウェアアーキテクチャの例を示す。全体のシステムは、記憶システム１および少なくとも１つのホストコンピュータ２からなる。各ホストコンピュータおよび記憶システムは、ＳＡＮ（記憶域ネットワーク）３０および管理ネットワーク３１を介して接続される。各ホストコンピュータはまた、オペレーションネットワーク３２にも接続される。ＳＡＮは、ＦＣ（ファイバチャネル）またはＩＰ（インターネットプロトコル）などの様々なタイプのネットワークとすることもできる。
【００２０】
[0048]  記憶システムは、少なくとも１つのＣＰＵ１０、少なくとも１つのメモリ１１、ＳＡＮ３０に接続するために使用される少なくとも１つのＳＡＮインターフェース１２、および管理ネットワーク３１に接続するために使用される少なくとも１つのイーサネット（登録商標）インターフェース１３から構成される。記憶システムはまた、１つまたは複数の論理ボリューム１４を有する。各論理ボリュームは、ハードディスク、フラッシュメモリ、光ディスク、テープ、以下同様のものなど、様々なタイプのデバイスとすることができる複数の物理的な記憶媒体から構成される。ホストコンピュータは、ＬＵＮ（論理ユニット番号）を用いて論理ボリュームを識別する。さらに、記憶システムは、セキュリティモジュール１５を含むこともできる。
【００２１】
[0049]  論理ボリュームは、少なくとも１つの制御ボリューム１４０を含む。ホストコンピュータは、記憶システムに様々な種類のオペレーションコマンドを発行するために、制御ボリュームを使用することができる。このような種類のオペレーションコマンドおよびそのコマンドの結果は、ＳＣＳＩ読取りおよびＳＣＳＩ書込みを用いてホストコンピュータと記憶システムの間で転送される。論理ボリュームは、システムボリューム１４１を含むことができる。それは、ホストコンピュータのＯＳを記憶するために使用される論理ボリュームの１つである。このような場合、ホストコンピュータが始動されると、ホストコンピュータは、システムボリューム上のＯＳを起動する。このような場合を、本明細書では「ＳＡＮ  Ｂｏｏｔ」と呼ぶ。論理ボリュームは、様々な種類のデータを記憶するために使用される少なくとも１つのデータボリューム１４２を含む。セキュリティモジュール１５は、安全に暗号オペレーションを実行し、安全に秘密情報を記憶し、またその他の目的のために使用される。概して、セキュリティモジュールは、ＴＰＭ（信頼できるプラットフォームモジュール）として知られている。
【００２２】
[0050]  ホストコンピュータ２は、少なくとも１つのＣＰＵ２０、少なくとも１つのメモリ２１、少なくとも１つのホストバスアダプタ２３、少なくとも１つのＳＡＮインターフェース２４、少なくとも２つのイーサネット（登録商標）インターフェース２５、２７、および少なくとも１つのローカルボリューム２６から構成される。さらに、ホストコンピュータは、セキュリティモジュール２２を含むこともできる。ホストコンピュータは、ＳＡＮ  Ｉ／Ｆ２４を介して記憶域ネットワーク３０に、またイーサネット（登録商標）Ｉ／Ｆ２５を介して管理ネットワーク３１に、またイーサネット（登録商標）Ｉ／Ｆ２７を介してオペレーションネットワーク３２に接続される。ホストコンピュータのＯＳは、ローカルボリューム２６中に記憶することができる。このような場合、ホストコンピュータが始動されると、ホストコンピュータは、ローカルボリューム上のＯＳを起動することができる。このような構成を、本明細書では「非ＳＡＮ  Ｂｏｏｔ」と呼ぶ。
【００２３】
論理アーキテクチャ
[0051]  図２は、本発明の実施形態による論理的なソフトウェアアーキテクチャの例である。以下のものは、図２の実施形態による記憶システムの論理的なアーキテクチャの説明である。
【００２４】
[0052]  入出力ディスパッチプログラム４０は、ホストコンピュータから様々なタイプの要求を受け取り、かつホストコンピュータに応答を送る。それは、その要求に従って他のプログラムまたはサブルーチンを呼び出す。ボリューム予約処理プログラム４１は、ホストコンピュータからのボリューム予約要求を処理するために、入出力ディスパッチプログラム４０により呼び出される。ホストコンピュータは、シャットダウンされるとき、それは、他のホストコンピュータがボリュームとの間でデータの読取り／書込みができないように、論理ボリュームをロックする必要がある。このような場合、ホストコンピュータは、ＳＣＳＩ予約コマンドを用いて、ボリューム予約要求を記憶システムに発行することができる。ボリューム予約処理プログラムは、データ読取りおよび書込みプログラム４７が、他のホストコンピュータからの論理ボリュームに対する読取り／書込み要求を許容しないように、論理ボリュームのＬＵＮおよびホストコンピュータの識別をボリューム予約情報テーブル４４に記録する。ボリューム予約情報テーブル４４は、ホストコンピュータにより予約すべく要求されたボリュームのＬＵＮと、記憶システムにボリューム予約要求を発行したホストコンピュータの識別とを保持する。このテーブルは、メモリ中に記憶することもできる。記憶システムがセキュリティモジュールを含む場合、このテーブルを、セキュリティモジュール中に記憶することもできる。
【００２５】
[0053]  ボリュームガード処理プログラム４２は、ホストコンピュータからのボリュームガード要求を処理するために、入出力ディスパッチプログラム４０により呼び出される。ホストコンピュータは、シャットダウンされるとき、それは、他のコンピュータが論理ボリュームにデータを書き込むことができないように、論理ボリュームをロックする必要がある。このような場合、ホストコンピュータは、制御ボリュームに対するオペレーションコマンドを用いて、記憶システムにボリュームガード要求を発行することができる。ホストコンピュータはまた、管理ネットワークを介してボリュームガード要求を発行することもできる。ボリュームガード処理プログラムは、データ読取りおよび書込みプログラム４７が、他のホストコンピュータからの論理ボリュームに対する書込み要求を許容しないように、論理ボリュームのＬＵＮ、およびホストコンピュータの識別をボリュームガード情報テーブル４５に記録する。ボリュームガード情報テーブル４５は、ホストコンピュータによりガードされる必要のあるボリュームのＬＵＮと、ボリュームガード要求を記憶システムに発行したホストコンピュータの識別とを保持する。このテーブルは、メモリに記憶することもできる。記憶システムがセキュリティモジュールを含む場合、このテーブルは、セキュリティモジュール中に記憶することもできる。
【００２６】
[0054]  アクセス履歴処理プログラム４３は、ホストコンピュータからのアクセス履歴要求を処理するために、入出力ディスパッチプログラム４０により呼び出される。ホストコンピュータは、始動されるとき、それは、ホストコンピュータがシャットダウンまたはオフラインである期間中に、論理ボリュームへの無許可のアクセスが生じたのかどうかを検査する必要がある。このような場合、ホストコンピュータは、オペレーションコマンドを用いて、記憶システムに対してアクセス履歴要求を発行することができる。ホストコンピュータはまた、管理ネットワークを介してアクセス履歴要求を発行することもできる。アクセス履歴処理プログラムは、アクセス履歴情報テーブルから論理ボリュームのアクセス履歴情報を検索し、それをホストコンピュータに送る。アクセス履歴情報テーブル４６は、論理ボリュームごとに、アクセス履歴情報（例えば、最後のアクセス時間、最後にアクセスしたホストコンピュータの識別など）を保持する。データ読取りおよび書込みプログラムは、ホストコンピュータから論理ボリュームに対する書込み要求を受け取ったとき、テーブルを更新し、論理ボリュームのユーザデータ領域４０２にデータを書き込む。アクセス履歴処理プログラムは、上記で述べたように、ホストコンピュータからアクセス履歴要求を受け取ったとき、そのテーブルを参照する。このテーブルは、メモリ中に記憶することもできる。記憶システムがセキュリティモジュールを含む場合、このテーブルは、セキュリティモジュール中に記憶することもできる。データ読取りおよび書込みプログラム４７は、ホストコンピュータからのＳＣＳＩ読取りおよびＳＣＳＩ書込み要求を処理するために、入出力ディスパッチプログラムにより呼び出される。ホストコンピュータは、論理ボリュームからデータを読み取るとき、それは、記憶システムにＳＣＳＩ読取りコマンドを発行する。ホストコンピュータは、データを論理ボリュームに書き込むとき、それは、記憶システムにＳＣＳＩ書込みコマンドを発行する。
【００２７】
[0055]  以下のものは、図２の実施形態によるホストコンピュータの論理的なアーキテクチャの説明である。
【００２８】
[0056]  システム保全性検査コード５６は、ホストコンピュータが始動されたとき実行されるコードである。システム保全性検査コード５６は、ＴＣＧ（Ｔｒｕｓｔｅｄ  Ｃｏｍｐｕｔｉｎｇ  Ｇｒｕｏｐ：信頼できるコンピューティンググループ）仕様に含まれるＣＲＴＭ（Ｃｏｒｅ  Ｒｏｏｔ  ｏｆ  Ｔｒｕｓｔ  Ｍｅａｓｕｒｅｍｅｎｔ：コアの信頼性測定のルート）とすることができ、またＢＩＯＳの起動ブロックとして実施され得る。それは、ＢＩＯＳプログラム５５のハッシュ値を計算し、ＢＩＯＳプログラム５５の保全性を検査するために、セキュリティモジュール２２を介して、システム保全性情報テーブル５７にそれを記憶する。ＢＩＯＳプログラム５５は、ホストコンピュータのファームウェアである。一般に、ＢＩＯＳプログラム５５は、周辺装置を制御するためのインターフェースをソフトウェアに提供し、オペレーティングシステムを起動する。この実施形態のように、ホストコンピュータがセキュリティモジュール２２を含む場合、それはまた、拡張されたＢＩＯＳプログラム５４またはＯＳローダプログラム５３のハッシュ値を計算し、それを、セキュリティモジュール２２を介してシステム保全性情報テーブル５７に記憶することができる。「ＳＡＮ  Ｂｏｏｔ」の場合、ＢＩＯＳプログラムは、拡張されたＢＩＯＳプログラムのハッシュ値を計算し、拡張されたＢＩＯＳプログラムを動作させる。「非ＳＡＮ  Ｂｏｏｔ」の場合、ＢＩＯＳプログラムは、ＯＳローダプログラムのハッシュ値を計算し、ＯＳローダプログラムを動作させる。
【００２９】
[0057]  拡張されたＢＩＯＳプログラム５４は、ホストバスアダプタ２３のファームウェアであり、また「ＳＡＮ  Ｂｏｏｔ」の場合に使用される。ＢＩＯＳプログラム５４は、記憶システムを制御するためのインターフェースを提供する。ホストコンピュータが始動すると、それは、ボリューム保護モジュールコンフィギュレーションテーブル５８内で定義されたボリュームロック方法に従ってシステムボリュームのロックを解除する。さらに、それは、記憶システムにアクセス履歴要求を発行し、システムボリュームに対するアクセス履歴情報を受け取り、それを、ボリューム保全性情報テーブル５９に記憶する。この実施形態のように、ホストコンピュータがセキュリティモジュール２２を含む場合、それはまた、ＯＳローダプログラム５３のハッシュ値を計算し、それをセキュリティモジュール２２を介して、システム保全性情報テーブル５７に記憶することができる。最後に、それは、ＯＳローダプログラム５３を動作させる。
【００３０】
[0058]  ＯＳローダプログラム５３は、ＯＳ５１を起動するために使用されるソフトウェアである。「ＳＡＮ  Ｂｏｏｔ」の場合、ＯＳローダプログラム５３は、記憶システム上のシステムボリューム中に記憶される。「非ＳＡＮ  Ｂｏｏｔ」の場合、ＯＳローダプログラム５３は、ホストコンピュータ上のローカルボリューム中に記憶される。この実施形態のように、ホストコンピュータがセキュリティモジュール２２を含む場合、それはまた、ＯＳ５１のハッシュ値を計算し、それをセキュリティモジュール２２を介してシステム保全性情報テーブル５７に記憶し、ＯＳ５１を起動することができる。ＯＳ５１は、アプリケーションソフトウェアに対するハードウェア制御のインターフェースを提供するために使用されるソフトウェアである。「ＳＡＮ  Ｂｏｏｔ」の場合、ＯＳ５１は、記憶システム上のシステムボリューム中に記憶される。「非ＳＡＮ  Ｂｏｏｔ」の場合、ＯＳ５１は、ホストコンピュータ上のローカルボリューム中に記憶される。ホストコンピュータが始動されたとき、ＯＳは、ボリューム保護モジュールコンフィギュレーションテーブル５８内で定義されるボリュームロック方法に従って、ボリューム保護モジュールプログラム５２を用いて、データボリュームのロックを解除する。さらに、それは、記憶システムにアクセス履歴要求を発行し、そのボリュームに対するアクセス履歴情報を受け取り、ボリューム保全性情報テーブル５９にそれを記憶する。この実施形態のように、ホストコンピュータがセキュリティモジュール２２を含む場合、それはまた、ＯＳ上のアプリケーションソフトウェアのハッシュ値を計算し、それを、セキュリティモジュール２２を介してシステム保全性情報テーブル５７に記憶することができる。
【００３１】
[0059]  ボリューム保護モジュールプログラム５２は、ＯＳのソフトウェアモジュール、またはＯＳ上のアプリケーションソフトウェアとすることもできる。ホストコンピュータの管理者は、ボリューム保護モジュールを用いて、任意のタイプのボリュームロック方法を選択することができる。この実施形態では、ボリューム予約モジュールプログラム５２０およびボリュームガードモジュールプログラム５２１が定義される。ボリューム予約モジュールプログラム５２０は、ボリューム保護モジュールプログラム５２の１つである。ホストコンピュータは、シャットダウンされる、またはオフラインになるとき、それは、ＳＣＳＩ予約コマンドを用いて、論理ボリュームをロックするための、ボリューム予約要求を記憶システムに発行する。ホストコンピュータは、始動されるとき、それは、ＳＣＳＩ解放コマンドを用いて、論理ボリュームのロックを解除するための、ボリューム解放要求を記憶システムに発行する。
【００３２】
[0060]  ボリュームガードモジュールプログラム５２１は、ボリューム保護モジュールプログラム５２の１つである。ホストコンピュータは、シャットダウンされるとき、それは、制御ボリュームに対するオペレーションコマンドを用いて、論理ボリュームをロックするための、ボリュームガード要求を記憶システムに発行する。それはまた、管理ネットワークを介して、ボリュームガード要求を記憶システムに発行することもできる。ホストコンピュータは、始動されるとき、それは、制御ボリュームに対するオペレーションコマンドを用いて、論理ボリュームのロックを解除するためのボリュームガード取消し要求を記憶システムに発行する。それはまた、管理ネットワークを介して、ボリュームガード取消し要求を記憶システムに発行することもできる。
【００３３】
[0061]  セキュリティ検査プログラム５０は、ＯＳのソフトウェアモジュールまたはＯＳ上のアプリケーションソフトウェアとすることができる。ホストコンピュータが、この実施形態のようなセキュリティモジュールを含む場合、それは、セキュリティモジュールを介してシステム保全性情報テーブル５７を参照し、ソフトウェアの無許可の変更を検出するためにハッシュ値を検査することができる。この実施形態では、それはまた、ボリューム保全性情報テーブル５９も参照して、ボリュームデータの無許可の変更を検出し、何らかの種類のセキュリティ検査（例えば、ウィルス検査）を実施する。システム保全性情報テーブル５７は、セキュリティモジュール中に記憶される。それは、ソフトウェア（例えば、ＢＩＯＳプログラム、拡張されたＢＩＯＳプログラム、ＯＳローダプログラム、ＯＳなど）のハッシュ値を保持する。ボリューム保護モジュールコンフィギュレーションテーブル５８は、セキュリティモジュール２２中に記憶することもできる。ホストコンピュータの管理者は、このテーブルを用いて、各論理ボリュームに対してボリュームロック方法を選択することができる。この実施形態では、ボリューム予約およびボリュームガードを選択することができる。ボリューム保全性情報テーブル５９は、セキュリティモジュール２２に記憶することもできる。それは、ホストコンピュータと記憶システムの両方の観点で、各論理ボリュームに対するアクセス履歴情報を保持する。アクセス履歴情報は、最後にボリュームにアクセスしたホストコンピュータの識別、最後のアクセス時間、および論理ボリュームのハッシュ値を含む。
【００３４】
データ構造
[0062]  以下のものは、本発明の実施形態によるＳＣＳＩコマンドユニットの説明である。ホストコンピュータおよび記憶システムは、ＳＡＮを介してＳＣＳＩプロトコルを用いて互いに通信する。ホストコンピュータは、ＳＣＳＩコマンドユニットを用いて要求を発行し、次いで、ホストコンピュータは、記憶システムにデータを送信し、または記憶システムからデータを受信することができる。図３Ａは、ＳＣＳＩコマンドユニットの例示的なデータ構造を示す。オペレーションコード２００は要求のタイプ（例えば、読取り、書込み、予約、解放など）を示す。ＬＵＮ２０１は、要求のターゲットボリュームＬＵＮを示す。ＬＢＡ２０２は、ターゲットボリューム内のアドレスを示す。データ長２０３は、ＳＣＳＩコマンドユニットの後、ホストコンピュータと記憶システムの間で転送されるデータ長を示す。
【００３５】
[0063]  ホストコンピュータが、記憶システム上の論理ボリュームにデータを書き込むとき、ホストコンピュータは、記憶システムにＳＣＳＩ書込みコマンドを発行し、次いで記憶システムに対してデータを送信する。この実施形態では、ホストコンピュータはまた、ＳＣＳＩ書込みデータを用いて、ＳＣＳＩプロトコルで定義されていない他のオペレーションコマンドを発行することもできる。図３Ｂは、オペレーションコマンドとして使用されるＳＣＳＩ書込みデータの例示的なデータ構造を示す。要求コード２１０は、コマンドの要求タイプ（例えば、ボリュームガード、ボリュームガード取消し、アクセス履歴など）を示す。パラメータ２１１は、要求のパラメータデータを保持する。ホストコンピュータがボリュームガード要求、ボリュームガード取消し要求、およびアクセス履歴要求を発行する場合、それは、論理ボリュームのＬＵＮを保持する。
【００３６】
[0064]  ホストコンピュータが、記憶システム上の論理ボリュームからデータを読み取る場合、ホストコンピュータは、記憶システムに対してＳＣＳＩ読取りコマンドを発行し、次いで、記憶システムからデータを受け取る。この実施形態では、ホストコンピュータはまた、ＳＣＳＩデータ読取りを用いて、ＳＣＳＩプロトコル中で定義されていないオペレーションコマンドの応答を受け取ることができる。図３Ｃは、アクセス履歴要求の応答に対して使用されるＳＣＳＩデータ読取りの例示的なデータ構造を示す。ＬＵＮ２２０は、論理ボリュームのＬＵＮを保持する。ボリュームハッシュ値２２１は、記憶システムにより計算された論理ボリュームのハッシュ値を保持する。最後のアクセスホスト２２２は、論理ボリュームに最後にアクセスしたホストコンピュータの識別を保持する。最後のアクセス時間２２３は、最後のアクセス時間を保持する。
【００３７】
[0065]  図４は、システム保全性情報テーブル５７の例示的なデータ構造を示す。システムコンポーネント３００は、ホストコンピュータ上のファームウェアまたはソフトウェアの名前を示す。最後のハッシュ値３０１は、ホストコンピュータの前の起動プロセスで計算されたシステムコンポーネントのハッシュ値を示す。現在のハッシュ値３０２は、ホストコンピュータの現在の起動プロセスで計算されたシステムコンポーネントのハッシュ値を示す。
【００３８】
[0066]  図５は、ボリューム保全性情報テーブル５９の例示的なデータ構造を示す。ＬＵＮ３１０は、論理ボリュームのＬＵＮを示す。ホストのための最後のアクセスホスト３１１は、ホストコンピュータの観点で、最後に論理ボリュームにアクセスしたホストコンピュータの識別を示す。ＷＷＮ（Ｗｏｒｌｄ  Ｗｉｄｅ  Ｎａｍｅ：ワールドワイドネーム）をホストコンピュータの識別として使用してもよい。記憶装置のための最後のアクセスホスト３１２は、記憶システムの観点で、最後に論理ボリュームにアクセスしたホストコンピュータの識別を示す。ＷＷＮ（Ｗｏｒｌｄ  Ｗｉｄｅ  Ｎａｍｅ）をホストコンピュータの識別として使用してもよい。ホストのための最後のアクセス時間３１３は、ホストコンピュータの観点で、ホストコンピュータが論理ボリュームにアクセスした最後のアクセス時間を示す。記憶装置のための最後のアクセス時間３１４は、記憶システムの観点で、ホストコンピュータが論理ボリュームにアクセスした最後のアクセス時間を示す。ホストのための最後のハッシュ３１５は、論理ボリュームへの最後のアクセスの後、ホストコンピュータにより計算された論理ボリュームのハッシュ値を示す。記憶装置のための最後のハッシュ３１６は、論理ボリュームへの最後のアクセスの後、記憶システムにより計算された論理ボリュームのハッシュ値を示す。
【００３９】
[0067]  図６は、ボリューム保護モジュールコンフィギュレーションテーブル５８の例示的なデータ構造を示す。ＬＵＮ３２０は、ロックされ得るまたはロックを解除され得る論理ボリュームのＬＵＮを示す。ボリューム保護モジュール３２１は、論理ボリュームをロックしまたはロックを解除するために使用されるボリューム保護モジュールの名前を示す。ボリューム予約およびボリュームガードを含む様々なタイプの方法があり得る。
【００４０】
[0068]  図７は、ボリューム予約情報テーブル４４の例示的なデータ構造を示す。ＬＵＮ３３０は、ホストコンピュータによりロックされた論理ボリュームのＬＵＮを示す。ソースホスト３３１は、ボリューム予約要求を用いて、論理ボリュームをロックしたホストコンピュータの識別を示す。図８は、ボリュームガード情報テーブル４５の例示的なデータ構造を示す。ＬＵＮ３４０は、ホストコンピュータによりロックされた論理ボリュームのＬＵＮを示す。ソースホスト３４１は、ボリュームガード要求を用いて論理ボリュームをロックしたホストコンピュータの識別を示す。
【００４１】
[0069]  図９は、アクセス履歴情報テーブル４６の例示的なデータ構造を示す。ＬＵＮ３５０は、論理ボリュームのＬＵＮを示す。ハッシュ値３５１は、論理ボリュームのユーザデータ領域４０２に対してＳＣＳＩ書込みが行われた後、データ読取りおよび書込みプログラムにより計算された論理ボリュームのハッシュ値を示す。アクセスホスト３５２は、論理ボリュームに最後にアクセスしたホストコンピュータの識別を示す。アクセス時間３５３は、ホストコンピュータが論理ボリュームにアクセスした最後のアクセス時間を示す。
【００４２】
[0070]  図１０は、論理ボリュームのアドレス空間の例示的なデータ構造を示す。システム情報領域４０１は、ホストコンピュータおよび記憶システムのファイルシステムによって主として使用される領域を示す。システム情報領域４０１は、保護されるべき重要なユーザデータは含んでいない。一方、ユーザデータ領域４０２は、保護されるべきユーザデータを記憶するために、ＯＳ上のアプリケーションソフトウェアによって主として使用される領域を示す。ホストコンピュータおよび記憶システムが、この実施形態の論理ボリュームのハッシュ値を計算するとき、それらは、ユーザデータ領域４０２のハッシュ値を計算する。理解されるように、システム情報領域のデータは、他のホストのアクセスにより変更することができる。しかし、ユーザデータ領域に記憶されたデータに変更がない場合、違反がないということができる。したがって、この実施形態では、ユーザデータ領域４０２に対するハッシュ値だけが計算される。
【００４３】
プロセスフロー
[0071]  以下のものは、本発明の諸実施形態に従って実行される様々なプロセスの説明である。図１１は、ホストコンピュータをシャットダウンするための例示的なプロセスを示す。ステップ１０００：ＯＳはボリューム保護モジュールコンフィギュレーションテーブル５８を読み取る。ステップ１００１：ＯＳは各論理ボリュームのハッシュ値を計算する。ステップ１００２：ＯＳはボリューム保全性情報テーブル５９にハッシュ値を記憶する。ステップ１００３：ＯＳは、ボリューム保護モジュールコンフィギュレーションテーブル５８内で定義されたボリューム保護モジュールプログラムを用いて、論理ボリュームをロックするためのプロセスを実行する。ステップ１００４：ホストコンピュータがシャットダウンされる。
【００４４】
[0072]  図１２Ａは、ボリューム予約モジュールプログラム５２０を用いて論理ボリュームをロックするための例示的なプロセスを示す。ステップ１１００：ＯＳはＳＣＳＩ予約コマンドを記憶システムに送り、記憶システム上の論理ボリュームに対するボリューム予約要求を発行する。図１２Ｂは、ボリュームガードモジュールプログラム５２１を用いて、論理ボリュームをロックするための例示的なプロセスを示す。ステップ１１０１：ＯＳはオペレーションコマンドを記憶システムに送り、記憶システム上の論理ボリュームに対するボリュームガード要求を発行する。ＯＳはまた、管理ネットワークを介して、記憶システムにボリュームガード要求を送ることもできる。
【００４５】
[0073]  図１３は、ホストコンピュータを始動させるための例示的なプロセスを示す。ステップ１２００：システム保全性検査コード５６は、ＢＩＯＳプログラム５５のハッシュ値を計算し、それをシステム保全性情報テーブル５７に記憶し、ＢＩＯＳプログラム５５を実行する。ステップ１２０１：ホストコンピュータが「ＳＡＮ  Ｂｏｏｔ」を用いて始動する場合、ステップ１２０２に進み、使用しない場合、ステップ１２０２に進む。ステップ１２０２：「ＳＡＮ  Ｂｏｏｔ」を用いてホストコンピュータを始動させるためのプロセスが実行される。ステップ１２０３：「非ＳＡＮ  Ｂｏｏｔ」を用いてホストコンピュータを始動させるためのプロセスが実行される。ステップ１２０４：ＯＳはボリューム保護モジュールコンフィギュレーションテーブル５８を読み取る。ステップ１２０５：ＯＳはボリューム保護モジュールプログラム５２のハッシュ値を計算し、それをシステム保全性情報テーブル５７に記憶する。ステップ１２０６：ＯＳは、ボリューム保護モジュールコンフィギュレーションテーブル５８内で定義されたボリューム保護モジュールプログラムを用いて、データボリュームに対する論理ボリュームのロックを解除するプロセスを実行する。ステップ１２０７：ＯＳはデータボリュームに対する論理ボリュームの保全性を検査するプロセスを実行する。ステップ１２０８：ＯＳは、セキュリティ検査プログラム５０のハッシュ値を計算し、それをシステム保全性情報テーブル５７に記憶し、セキュリティ検査プログラム５０を実行する。ステップ１２０９：セキュリティ検査プログラム５０はシステムのセキュリティを検査するためのプロセスを実行する。
【００４６】
[0074]  図１４は、「ＳＡＮ  Ｂｏｏｔ」を用いて、ホストコンピュータを起動するための例示的なプロセスを示す。ステップ１３００：ＢＩＯＳプログラム５５は、拡張されたＢＩＯＳプログラム５４のハッシュ値を計算し、それをシステム保全性情報テーブル５７に記憶し、拡張されたＢＩＯＳプログラム５４を実行する。ステップ１３０１：拡張されたＢＩＯＳプログラム５４は、ボリューム保護モジュールコンフィギュレーションテーブル５８を読み取る。ステップ１３０２：拡張されたＢＩＯＳプログラム５４は、ボリューム保護モジュールコンフィギュレーションテーブル５８内で定義されたボリューム保護モジュールプログラムを用いて、システムボリュームに対する論理ボリュームのロックを解除するためのプロセスを実行する。ステップ１３０３：拡張されたＢＩＯＳプログラム５４は、システムボリュームに対する論理ボリュームの保全性を検査するためのプロセスを実行する。ステップ１３０４：ＢＩＯＳプログラム５５は、システムボリューム上のＯＳローダプログラム５３のハッシュ値を計算し、それをシステム保全性情報テーブル５７に記憶し、ＯＳローダプログラム５３を実行する。ステップ１３０５：ＯＳローダプログラム５３は、システムボリューム上のＯＳ５１のハッシュ値を計算し、それをシステム保全性情報テーブル５７に記憶し、ＯＳ５１を起動する。
【００４７】
[0075]  図１５は、「非ＳＡＮ  Ｂｏｏｔ」を用いて、ホストコンピュータを起動するための例示的なプロセスを示す。ステップ１４００：ＢＩＯＳプログラム５５は、ローカルボリューム上のＯＳローダプログラム５３のハッシュ値を計算し、それをシステム保全性情報テーブル５７に記憶し、ＯＳローダプログラム５３を実行する。ステップ１４０１：ＯＳローダプログラム５３は、システムボリューム上のＯＳ５１のハッシュ値を計算し、それをシステム保全性情報テーブル５７に記憶し、ＯＳ５１を起動する。
【００４８】
[0076]  図１６Ａは、ボリューム予約方法を用いて、論理ボリュームのロックを解除するための例示的なプロセスを示す。ステップ１５００：拡張されたＢＩＯＳプログラム５４またはＯＳ５１は、ＳＣＳＩ解放コマンドを記憶システムに送り、記憶システム上の論理ボリュームに対するボリューム解放要求を発行する。図１６Ｂは、ボリュームガード方法を用いて論理ボリュームをロックするための例示的なプロセスを示す。ステップ１５０１：拡張されたＢＩＯＳプログラム５４またはＯＳ５１は、オペレーションコマンドを記憶システムに送り、記憶システム上の論理ボリュームに対するボリュームガード取消し要求を発行する。ＯＳ５１はまた、管理ネットワークを介して、ボリュームガード取消し要求を記憶システムに送ることもできる。
【００４９】
[0077]  図１７は、論理ボリュームの保全性を検査するための例示的なプロセスを示す。ステップ１６００：拡張されたＢＩＯＳプログラム５４またはＯＳ５１は、オペレーションコマンドを記憶システムに送り、記憶システム上の論理ボリュームに対するアクセス履歴情報要求を発行する。ＯＳ５１はまた、管理ネットワークを介して、記憶システムにアクセス履歴情報要求を送ることもできる。ステップ１６０１：拡張されたＢＩＯＳプログラム５４またはＯＳ５１は、記憶システムから論理ボリュームのアクセス履歴情報を受け取る。ステップ１６０２：拡張されたＢＩＯＳプログラム５４またはＯＳ５１は、アクセス履歴情報をボリューム保全性情報テーブル５９に記録する。
【００５０】
[0078]  図１８は、システムのセキュリティ状況を検査するための例示的なプロセスを示す。ステップ１７００：セキュリティ検査プログラム５０は、ボリューム保全性情報テーブル５９を読み取る。ステップ１７０１：セキュリティ検査プログラムは、論理ボリュームごとに、ホストのための最後のアクセスホスト３１１を記憶装置のための最後のアクセスホスト３１２と比較し、ホストのための最後のアクセス時間３１３を記憶装置のための最後のアクセス時間３１４と比較し、ホストのための最後のハッシュ３１５を記憶装置のための最後のハッシュ３１６を比較して、何らかの違反が存在するかどうか検査する。何らかの違反が存在する場合、ステップ１７０２に進み、違反がない場合、プロセスを終了する。ステップ１７０２：セキュリティ検査プログラムは違反に関する詳細をログに記録する。ステップ１７０３：セキュリティ検査プログラムは、その論理ボリュームに対して、ウィルス検査などのある種のセキュリティ検査を実行する。
【００５１】
[0079]  図１９は、入出力ディスパッチプログラム４０により実行される入出力をディスパッチするための例示的なプロセスを示す。ステップ１８００：入出力ディスパッチプログラムはＳＣＳＩコマンドユニットまたはオペレーションコマンドを受け取る。オペレーションコマンドは、制御ボリュームに対するＳＣＳＩ書込みまたはＳＣＳＩ読取りコマンドを用いて、ホストコンピュータから記憶システムに転送される。オペレーションコマンドはまた、管理ネットワークを介しても受け取られる。ステップ１８０１：入出力ディスパッチプログラムは、それがボリューム予約コマンドまたはボリューム解放コマンドであるかどうかを検査する。それがボリューム予約コマンドまたはボリューム解放コマンドである場合、ステップ１８０５に進み、そうでない場合はステップ１８０２に進む。ステップ１８０２：入出力ディスパッチプログラムは、それがボリュームガード要求またはボリュームガード取消し要求であるかどうかを検査する。それがボリュームガード要求またはボリュームガード取消し要求である場合、ステップ１８０６に進み、そうでない場合はステップ１８０３に進む。ステップ１８０３：入出力ディスパッチプログラムは、それがアクセス履歴情報要求であるかどうかを検査する。それがアクセス履歴要求である場合、ステップ１８０７に進み、そうでない場合はステップ１８０４に進む。ステップ１８０４：入出力ディスパッチプログラムは、データ読取りおよび書込みプログラム４７を呼び出し、データ読取りおよび書込みプログラム４７は、読取りおよび書込みコマンドを処理するためのプロセスを実行する。ステップ１８０５：入出力ディスパッチプログラムは、ボリューム予約処理プログラム４１を呼び出し、ボリューム予約処理プログラム４１は、ボリューム予約を処理するためのプロセスを実行する。ステップ１８０６：入出力ディスパッチプログラムは、ボリュームガード処理プログラム４２を呼び出し、ボリュームガード処理プログラム４２は、ボリュームガードを処理するためのプログラムを実行する。ステップ１８０７：入出力ディスパッチプログラムは、アクセス履歴処理プログラム４３を呼び出し、アクセス履歴処理プログラム４３は、アクセス履歴情報要求を処理するためのプログラムを実行する。
【００５２】
[0080]  図２０は、ボリューム予約コマンドまたはボリューム解放コマンドを処理するための例示的なプロセスを示す。ステップ１９００：ボリューム予約処理プログラム４１は、ボリューム予約情報テーブル４４を更新する。ボリューム予約処理プログラム４１は、ボリューム予約コマンドを受け取った場合、ボリューム予約情報テーブル４４にレコードを追加して、コマンドを発行したホストコンピュータのＬＵＮおよび識別を記憶する。ボリューム予約処理プログラム４１は、ボリューム解放コマンドを受け取った場合、ボリューム予約情報テーブル４４からレコードを見出して削除する。
【００５３】
[0081]  図２１は、ボリュームガード要求またはボリュームガード取消し要求を処理するための例示的なプロセスを示す。ステップ２０００：ボリュームガード処理プログラム４２が、ボリュームガード情報テーブル４５を更新する。ボリュームガード処理プログラム４２は、ボリュームガード要求を受け取った場合、ボリュームガード情報テーブル４５にレコードを追加して、要求を発行したホストコンピュータのＬＵＮおよび識別を記憶する。ボリュームガード処理プログラム４２は、ボリュームガード取消し要求を受け取った場合、ボリュームガード情報テーブル４５からレコードを見出して削除する。図２２は、アクセス履歴情報要求を処理するための例示的なプロセスを示す。ステップ２１００：アクセス履歴処理プログラム４３は、アクセス履歴情報テーブル４６を読み取る。ステップ２１０１：アクセス履歴処理プログラム４３は論理ボリュームに対するアクセス履歴情報をホストコンピュータに送る。
【００５４】
[0082]  図２３は、読取りおよび書込みコマンドを処理するための例示的なプロセスを示す。ステップ２２００：データ読取りおよび書込みプログラム４７は、ボリューム予約情報テーブル４４を用いて、予約されたボリュームに対して要求が発行されたかどうかを検査する。予約されたボリュームに対して要求が発行されている場合、ステップ２２０３に進み、そうでない場合は、ステップ２２０１に進む。ステップ２２０１：データ読取りおよび書込みプログラム４７は、それがＳＣＳＩ読取りコマンドであるかどうかを検査する。それがＳＣＳＩ読取りコマンドである場合、ステップ２２０４に進み、そうでない場合は、ステップ２２０２に進む。ステップ２２０２：データ読取りおよび書込みプログラム４７は、書込みコマンドを処理するためのプロセスを実行する。ステップ２２０３：データ読取りおよび書込みプログラム４７は、ホストコンピュータにエラーを送る。ステップ２２０４：データ読取りおよび書込みプログラム４７は、通常のＳＣＳＩ読取りオペレーションを実行する。
【００５５】
[0083]  図２４は、書込みコマンドを処理するための例示的なプロセスを示す。ステップ２３００：データ読取りおよび書込みプログラム４７は、ボリュームガード情報テーブル４５を用いて、ガードされたボリュームに対してコマンドが発行されたかどうかを検査する。ガードされたボリュームに対してコマンドが発行されている場合、ステップ２３０５に進み、そうでない場合は、ステップ２３０１に進む。ステップ２３０１：データ読取りおよび書込みプログラム４７は、通常のＳＣＳＩ書込みオペレーションを実行する。ステップ２３０２：データ読取りおよび書込みプログラム４７は、ユーザデータ領域に対してコマンドが発行されたかどうかを検査する。ユーザデータ領域に対してコマンドが発行されている場合、ステップ２３０３に進み、そうでない場合は、プロセスを終了する。ステップ２３０３：データ読取りおよび書込みプログラム４７は、データ領域のハッシュ値を計算し、ステップ２３０４に進む。ステップ２３０４：データ読取りおよび書込みプログラム４７は、アクセス履歴情報テーブル４６を更新する。ステップ２３０５：データ読取りおよび書込みプログラム４７は、ホストコンピュータにエラーを送る。
【００５６】
[0084]  ホストコンピュータ２は、オペレーションネットワーク３２上のクライアントコンピュータに（ウェブサービス、メールサービス、データベースなどの）様々な種類のサービスを提供することができる。図２５は特定の一例を示す。この例では、ホストコンピュータ２は、クライアントコンピュータ７に対して、ＮＦＳ、ＣＩＦＳなどのネットワークファイルシステムサービスを提供する。ネットワークファイルシステムサービスプログラム６０は、ネットワークファイルシステムサービスをクライアントコンピュータ７に提供する。例えば、ネットワークファイルシステムサービスプログラム６０は、それ自体のファイルシステムの一部をクライアントコンピュータ７にエクスポートする。クライアントコンピュータ７は、ネットワークファイルシステムクライアントプログラム８０を用いて、ネットワークファイルシステムサービスプログラム６０によりエクスポートされたファイルシステムを利用する。
【００５７】
[0085]  本発明の諸実施形態の上記の説明から理解できるように、この発明は、ＳＡＮのボリューム上に常駐するデータに対して、高められたセキュリティを提供する。概して、本発明の諸実施形態は、隔離されたボリュームに対してセキュリティを提供する隔離システムと考えることができる。概して、本発明の方法は、以下のように進む。ホストコンピュータは、シャットダウンされるとき、記憶システムと協動して、記憶システム上のその割り当てられた論理ボリュームをロックする。記憶システムは、論理ボリュームの書込みアクセス履歴および保全性を記録し、必要のある場合その情報をホストコンピュータに送る。ホストコンピュータが始動されたとき、ホストコンピュータは、記憶システムと協動して、記憶システム上のその割り当てられた論理ボリュームのロックを解除し、論理ボリュームの保全性を検査する。ホストコンピュータは、何らかの違反を発見したとき、セキュリティ検査を実行する。
【００５８】
[0086]  本発明の諸実施形態を実施することにより、ホストコンピュータのシャットダウン中またはオフライン期間中、この発明は、論理ボリュームに対する保護機構を提供することができる。この発明はまた、ホストコンピュータが始動されたとき、論理ボリュームに対する保全性検査機構を提供することができ、それにより、シャットダウンされている間、ホストコンピュータは、論理ボリュームへの無許可のアクセスを検出することができる。
【００５９】
[0087]  最後に、本明細書で述べたプロセスおよび技法は、本質的に、特定の任意の装置に関連しておらず、コンポーネントの適切な任意の組合せにより実施され得ることを理解されたい。さらに、本明細書で述べられた教示に従って、様々なタイプの汎用デバイスを使用することができる。本明細書で述べられた方法の諸ステップを実施するために特殊化した装置を構成することが有利であると示されることもあり得る。本発明について、あらゆる点で限定的ではなく例示的なものであることが意図されている特定の例に関連して述べられてきた。当業者であれば、ハードウェア、ソフトウェア、およびファームウェアの多くの異なる組合せが本発明を実施するのに適切であることが理解されよう。例えば、前述のソフトウェアは、アセンブラ、Ｃ／Ｃ＋＋、ｐｅｒｌ、ｓｈｅｌｌ、ＰＨＰ、Ｊａｖａ（登録商標）などの広範囲の様々なプログラミング言語またはスクリプト言語で実施することができる。
【００６０】
[0088]  さらに、本明細書に開示された本発明の明細および実施を検討すれば、本発明の他の実装形態も当業者には明らかとなろう。前述の諸実施形態の様々な態様および／またはコンポーネントは、データの複製機能を有するコンピュータ化された記憶システムにおいて、単独に、または任意の組合せで使用することができる。本明細および諸例は例示的なものとして見なされるだけであり、本発明の真の範囲および趣旨は、添付の特許請求の範囲により示されるものとする。
【図面の簡単な説明】
【００６１】
【図１】[0017]本発明の実施形態による物理的なハードウェアアーキテクチャの例を示す図である。
【図２】[0018]本発明の実施形態による論理的なソフトウェアアーキテクチャの例を示す図である。
【図３Ａ】[0019]ＳＣＳＩコマンドユニットの例示的なデータ構造を示す図である。
【図３Ｂ】[0020]オペレーションコマンドとして使用されるＳＣＳＩ書込みデータの例示的なデータ構造を示す図である。
【図３Ｃ】アクセス履歴要求の応答に対して使用されるＳＣＳＩデータ読取りの例示的なデータ構造を示す図である。
【図４】[0021]システム保全性情報テーブル５７の例示的なデータ構造を示す図である。
【図５】[0022]ボリューム保全性情報テーブル５９の例示的なデータ構造を示す図である。
【図６】[0023]ボリューム保護モジュールコンフィギュレーションテーブル５８の例示的なデータ構造を示す図である。
【図７】[0024]ボリューム予約情報テーブル４４の例示的なデータ構造を示す図である。
【図８】[0025]ボリュームガード情報テーブル４５の例示的なデータ構造を示す図である。
【図９】[0026]アクセス履歴情報テーブル４６の例示的なデータ構造を示す図である。
【図１０】[0027]論理ボリュームのアドレス空間の例示的なデータ構造を示す図である。
【図１１】[0028]ホストコンピュータをシャットダウンするための例示的なプロセスを示す図である。
【図１２Ａ】[0029]ボリューム予約モジュールプログラム５２０を用いて論理ボリュームをロックするための例示的なプロセスを示す図である。
【図１２Ｂ】[0030]ボリュームガードモジュールプログラム５２１を用いて論理ボリュームをロックするための例示的なプロセスを示す図である。
【図１３】[0031]ホストコンピュータを始動させるための例示的なプロセスを示す図である。
【図１４】[0032]「ＳＡＮ  Ｂｏｏｔ」を用いてホストコンピュータを起動するための例示的なプロセスを示す図である。
【図１５】[0033]「非ＳＡＮ  Ｂｏｏｔ」を用いてホストコンピュータを起動するための例示的なプロセスを示す図である。
【図１６Ａ】[0034]ボリューム予約方法を用いて論理ボリュームのロックを解除するための例示的なプロセスを示す図である。
【図１６Ｂ】[0035]ボリュームガード方法を用いて論理ボリュームをロックするための例示的なプロセスを示す図である。
【図１７】[0036]論理ボリュームの保全性を検査するための例示的なプロセスを示す図である。
【図１８】[0037]システムのセキュリティ状況を検査するための例示的なプロセスを示す図である。
【図１９】[0038]入出力ディスパッチプログラム４０により実行される入出力をディスパッチするための例示的なプロセスを示す図である。
【図２０】[0039]ボリューム予約コマンドまたはボリューム解放コマンドを処理するための例示的なプロセスを示す図である。
【図２１】[0040]ボリュームガード要求またはボリュームガード取消し要求を処理するための例示的なプロセスを示す図である。
【図２２】[0041]アクセス履歴情報要求を処理するための例示的なプロセスを示す図である。
【図２３】[0042]読取りおよび書込みコマンドを処理するための例示的なプロセスを示す図である。
【図２４】[0043]書込みコマンドを処理するための例示的なプロセスを示す図である。
【図２５】[0044]クライアントコンピュータにサービスを提供するホストについて特定の一例を示す図である。
【符号の説明】
【００６２】
１……記憶システム、２……ホストコンピュータ、１１、２１……メモリ、１３、２５、２７……イーサネット（登録商標）Ｉ／Ｆ、１４……論理ボリューム、１５、２２……セキュリティモジュール、２３……ホストバスアダプタ、２６……ローカルボリューム、３０……ＳＡＮ、３１……管理ネットワーク、３２……オペレーションネットワーク、１４０……制御ボリューム、１４１……システムボリューム、１４２……データボリューム
【図１】
2008305377.tif 000003
【図２】
2008305377.tif 000004
【図３Ａ】
2008305377.tif 000005
【図３Ｂ】
2008305377.tif 000006
【図３Ｃ】
2008305377.tif 000007
【図４】
2008305377.tif 000008
【図５】
2008305377.tif 000009
【図６】
2008305377.tif 000010
【図７】
2008305377.tif 000011
【図８】
2008305377.tif 000012
【図９】
2008305377.tif 000013
【図１０】
2008305377.tif 000014
【図１１】
2008305377.tif 000015
【図１２Ａ】
2008305377.tif 000016
【図１２Ｂ】
2008305377.tif 000017
【図１３】
2008305377.tif 000018
【図１４】
2008305377.tif 000019
【図１５】
2008305377.tif 000020
【図１６Ａ】
2008305377.tif 000021
【図１６Ｂ】
2008305377.tif 000022
【図１７】
2008305377.tif 000023
【図１８】
2008305377.tif 000024
【図１９】
2008305377.tif 000025
【図２０】
2008305377.tif 000026
【図２１】
2008305377.tif 000027
【図２２】
2008305377.tif 000028
【図２３】
2008305377.tif 000029
【図２４】
2008305377.tif 000030
【図２５】
2008305377.tif 000031
【外国語明細書】
2008305377000001.pdf