【手続補正書】
【提出日】平成19年11月2日(2007.11.2)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
ＷＯＲＭ機能を提供するように構成されたストレージシステムを動作させる方法において、
ホストから第１のコマンドをストレージサブシステムで受信するステップと、
前記ストレージサブシステムと接続され、前記ストレージシステムの前記ＷＯＲＭ機能を確認することに用いられるＷＯＲＭストレージデバイス上に、前記第１のコマンドの少なくとも一部を記憶するステップと、
第２のコマンドを前記ストレージサブシステムで受信するステップと、
選択された形式のコマンドを選別するための予め定められた基準が与えられているコマンドフィルターを用いて、前記第２のコマンドを検証するステップと、
前記第２のコマンドが前記予め定められた基準を満たす場合には、前記第２のコマンドの少なくとも一部を記憶するステップと、
を有することを特徴とする方法。
【請求項２】
前記コマンドフィルターは、少なくともＥＲＡＳＥとＦＯＲＭＡＴとＷＲＩＴＥ動作に関するコマンドを選別するように構成されている
ことを特徴とする請求項１に記載の方法。
【請求項３】
前記コマンドがＣＤＢ(Command Descriptor Block)である
こと特徴とする請求項２に記載の方法。
【請求項４】
前記ストレージサブシステムは、ＷＯＲＭストレージエリアとして定義されたストレージエリアを有するディスクアレイユニットであり、
サブシステム構成ファイルは、定められた前記ストレージデバイス上のデータが変更されていないことを確かめるため、又は、監査中に論理ボリュームの物理アドレスを識別するために用いられる
ことを特徴とする請求項１に記載の方法。
【請求項５】
前記コマンドフィルターは、前記ストレージサブシステムにおいて、予め定められたストレージエリアに向けられたコマンドを選別するために構成され、該予め定められたストレージエリアがＷＯＲＭストレージエリアとして定義される
ことを特徴とする請求項１に記載の方法。
【請求項６】
全てのコマンドの少なくとも一部は、前記ＷＯＲＭデバイスに記憶される
ことを特徴とする請求項１に記載の方法。
【請求項７】
ＷＯＲＭ機能を提供するように構成されたストレージシステムを動作させる方法において、
ホストから第１のコマンドをストレージサブシステムで受信するステップと、
前記ストレージサブシステムと接続され、前記ストレージシステムの前記ＷＯＲＭ機能を確認することに用いられるＷＯＲＭストレージデバイス上に、前記第１のコマンドの少なくとも一部を記憶するステップと、
前記第１のコマンドにシーケンス番号を対応付けるステップと、
前記シーケンス番号を前記ＷＯＲＭストレージデバイスに記憶するステップと、
を有することを特徴とする方法。
【請求項８】
前記第１のコマンドにタイムスタンプを対応付けるステップと、
前記タイムスタンプを前記ＷＯＲＭストレージデバイスに記憶するステップと、
をさらに有する
ことを特徴とする請求項７に記載の方法。
【請求項９】
前記ＷＯＲＭストレージデバイスは前記ストレージサブシステムが受信した複数のコマンドを表す複数のレコードを含んでおり、
前記各コマンドはシーケンス番号が付けられ、
前記シーケンス番号は前記ストレージサブシステムの監査を行う前に前記コマンドを指定された順序で分類するために用いる
ことを特徴とする請求項７に記載の方法。
【請求項１０】
データアーカイブ機能を提供する方法において、
ストレージサブシステムに向けられ、該ストレージサブシステムのストレージエリアに記憶されたデータの内容に影響を与える形式であるコマンドの少なくとも一部をＷＯＲＭストレージデバイスに記憶するステップと、
前記コマンドを決められた順序で分類するために有用であるシーケンス番号を前記各コマンドに付けるステップと、
を有し、
前記ＷＯＲＭストレージデバイスは、前記コマンドの少なくとも一部と前記シーケンス番号を含んでいる複数のコマンドレコードを含んでおり、
前記コマンドレコードは、前記ストレージサブシステムがＷＯＲＭの保全性を維持しているか否かを確かめるために有用である、
ことを特徴とする方法。
【請求項１１】
前記ストレージサブシステムへ向けられたコマンドが、予め定められた基準により選別される
ことを特徴とする請求項１０に記載の方法。
【請求項１２】
前記コマンドに対応付けられたオペレーションコード、又は、前記コマンドに対応付けられた論理ユニット番号を検証することにより、前記コマンドが選別される
ことを特徴とする請求項１１に記載の方法。
【請求項１３】
ＷＯＲＭ（Write Once Read Many）機能を有するストレージシステムであって、
ホストから第１のコマンドを受信するストレージ装置と、
前記ストレージ装置に接続され、該ストレージシステムのＷＯＲＭ機能を保証するＷＯＲＭストレージ装置と、を有し、
前記ＷＯＲＭストレージ装置は、前記第１のコマンドの少なくとも一部を記憶し、
前記ストレージ装置は、該ストレージ装置が受信する第２のコマンドを、所定の基準が設定されているコマンドフィルターを用いて検証し、
前記ＷＯＲＭストレージ装置は、前記第２のコマンドが前記所定の基準を満たす場合には、当該第２のコマンドのうちの少なくとも一部を記憶する
ことを特徴とするストレージシステム。
【請求項１４】
前記コマンドフィルターは、少なくともＥＲＡＳＥとＦＯＲＭＡＴとＷＲＩＴＥ動作に関するコマンドを選別するように構成されている
ことを特徴とする請求項１３に記載のストレージシステム。
【請求項１５】
前記コマンドがＣＤＢ(Command Descriptor Block)である
こと特徴とする請求項１４に記載のストレージシステム。
【請求項１６】
前記ストレージ装置は、ＷＯＲＭストレージエリアとして定義されたストレージエリアを有するディスクアレイユニットであり、
サブシステム構成ファイルは、定められた前記ストレージ装置上のデータが変更されていないことを確かめるため、又は、監査中に論理ボリュームの物理アドレスを識別するために用いられる
ことを特徴とする請求項１３に記載のストレージシステム。
【請求項１７】
前記コマンドフィルターは、前記ストレージ装置において、予め定められたストレージエリアに向けられたコマンドを選別するために構成され、該予め定められたストレージエリアがＷＯＲＭストレージエリアとして定義される
ことを特徴とする請求項１３に記載のストレージシステム。
【請求項１８】
全てのコマンドの少なくとも一部は、前記ＷＯＲＭストレージ装置に記憶される
ことを特徴とする請求項１３に記載のストレージシステム。
【請求項１９】
ＷＯＲＭ（Write Once Read Many）機能を有するストレージシステムであって、
ホストから第１のコマンドを受信するストレージ装置と、
前記ストレージ装置に接続され、該ストレージシステムのＷＯＲＭ機能を保証するＷＯＲＭストレージ装置と、を有し、
前記ＷＯＲＭストレージ装置は、前記第１のコマンドの少なくとも一部を記憶し、
前記第１のコマンドにシーケンス番号を対応付け、
前記シーケンス番号を前記ＷＯＲＭストレージ装置に記憶する、
ことを特徴とするストレージシステム。
【請求項２０】
前記第１のコマンドにタイムスタンプを対応付け、
前記タイムスタンプを前記ＷＯＲＭストレージ装置に記憶する、
ことをさらに有することを特徴とする請求項１９に記載のストレージシステム。
【請求項２１】
前記ＷＯＲＭストレージ装置は前記ストレージ装置が受信した複数のコマンドを表す複数のレコードを含んでおり、
前記各コマンドはシーケンス番号が付けられ、
前記シーケンス番号は前記ストレージ装置の監査を行う前に前記コマンドを指定された順序で分類するために用いる
ことを特徴とする請求項１０に記載のストレージシステム。
【請求項２２】
データアーカイブ機能を有するストレージシステムにおいて、
ストレージ装置に向けられ、該ストレージ装置のストレージエリアに記憶されたデータの内容に影響を与える形式であるコマンドの少なくとも一部をＷＯＲＭストレージ装置に記憶し、
前記コマンドを決められた順序で分類するために有用であるシーケンス番号を前記各コマンドに付けられており、
前記ＷＯＲＭストレージ装置は、前記コマンドの少なくとも一部と前記シーケンス番号を含んでいる複数のコマンドレコードを含んでおり、
前記コマンドレコードは、前記ストレージ装置がＷＯＲＭの保全性を維持しているか否かを確かめるために有用である、
ことを特徴とするストレージシステム。
【請求項２３】
前記ストレージ装置へ向けられたコマンドが、予め定められた基準により選別される
ことを特徴とする請求項２２に記載のストレージシステム。
【請求項２４】
前記コマンドに対応付けられたオペレーションコード、又は、前記コマンドに対応付けられた論理ユニット番号を検証することにより、前記コマンドが選別される
ことを特徴とする請求項２３に記載のストレージシステム。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【発明の詳細な説明】
【発明の名称】WORM検証式ストレージシステム
【技術分野】
【０００１】
[0001]  本発明はストレージシステムに係わり、さらに詳細には高信頼性のデータアーカイブ機能を持つように構成されたストレージシステムに係わる。
【背景技術】
【０００２】
[0002]  データアーカイブとは特定のバージョンのデータ（たとえばレコードを保存する目的など）を長期に亘り保存する行為である。データセットは、ユーザあるいはデータ処理管理者によるコマンドによって、アーカイブストレージに記憶される。アーカイブデータセットは法的な目的とかデータ処理企業にとっての他の重要性の理由でしばしば保存される。したがって、一旦データが書き込まれたあとは、アーカイブデータが変更されたり、改竄されたり、書き替えられたりしていないことを検証することが可能でなければならない。データの証明あるいは保証を行う方法の一つは追記型（Write Once Read Many-WORM）技術を用いることである。
【０００３】
[0003]  用語が意味するように、ＷＯＲＭ技術においてはデータは記憶媒体、たとえば光ストレージデバイスとかＷＯＲＭディスクに１回だけ書き込まれる。このようなＷＯＲＭディスクは、たとえば高出力のレーザビームを用いて媒体上に小さな孔を形成し、媒体の表面の反射を変えることによる書き込みで、媒体を物理的にかつ永久的に変調するので、一般に１回だけ書き込みが可能である。読み出しプロセスでは、その後は低出力ビームを媒体上に当てて低出力ビームの反射を検出することで、記憶された情報を繰り返し読み出すことが可能になる。
【０００４】
[0004]  ＷＯＲＭ技術は、政府の新しい規則により、企業がある種のビジネスの記録を、書き替え不能、消去不能なフォーマットで保存することが必要になったので、さらに重要になってきた。たとえば、米国証券取引委員会は、最近、証券取引法１９３４規則１７ａ−４に基づき証券業者が顧客との通信の記録を、書き替え不能、消去不能なフォーマットで保存することを要求した。全米証券業者協会（ＮＡＳＤ）は規則３０１０と３１１０において同様な規定を施行している。これらの通信は電子メールやインスタントメッセージやボイスメッセージを含み膨大な量のデータを構成している。
【発明の開示】
【発明が解決しようとする課題】
【０００５】
[0005]  ＷＯＲＭ記憶手順を提供する一つの手段は、ある特定のファイルを再書き込み不可として指定できるＵＮＩＸ（ＵＮＩＸは登録商標です）における「chmod」のようなファイルシステムの変更モード機能を用いることである。しかしながら、この方法は、それが一般に利用できるソフトウエアに基づいているので、監査人に十分には信頼されるものではない。
【０００６】
[0006]  この方法ではファイル毎にモードを変更するなどユーザに相当の管理的な負荷を掛けてしまう。
【０００７】
[0007]  代わって、たとえばＣＤ−ＲＯＭやＤＶＤ−ＲＯＭなどのＷＯＲＭストレージデバイスが使用されることになる。しかしながら、これらのＷＯＲＭデバイスは一般に高速書き込みが出来ない。もしこれらを顧客と会社間の通信に求められるアーカイブに使用されると、相当な性能的な遅れが発生してしまう。
【０００８】
[0008]  もう一つの方法は内部的にＷＯＲＭ機能を持たせたディスクアレイストレージユニットを用いることである。このようなストレージユニットはＷＯＲＭ機能を持つコントローラの内部にマイクロプログラムを備えている。この方法では、監査人により信頼されるよう、ユーザがアクセス出来ない特殊なソフトウエアプログラムを使用しているであろう。しかしながら、この方法では高い開発費が必要になる。
【０００９】
[0009]  したがって、信用度が高く、管理が容易で、性能的な影響が限定的で、実施費用が安いＷＯＲＭアーカイブシステム、特にＷＯＲＭの保証あるいは証明の機能を可能にするシステムを提供することが望ましい。
【課題を解決するための手段】
【００１０】
[0011]  本発明の一実施例では、ＷＯＲＭ機能を提供するように構成されたストレージシステムを稼働させる方法は、ホストから第１のコマンドをストレージサブシステムで受信することを含んでいる。少なくとも、第１のコマンドの一部はストレージサブシステムと接続されたＷＯＲＭストレージデバイス上に記憶される。ＷＯＲＭストレージデバイスはストレージシステムのＷＯＲＭ機能を検証するために用いられる。第２のコマンドはストレージサブシステムで受信される。第２のコマンドは、特定の形式のコマンドを選定するように予め定められた基準が与えられているフィルターであるコマンドフィルターを用いて検査される。第２のコマンドが予め定められた基準に合致するならば、少なくとも第２のコマンドの一部は記憶される。
【００１１】
本発明の一実施例では、ＷＯＲＭ機能を提供するように構成されたストレージシステムを稼働させる方法は、ホストから第１のコマンドをストレージサブシステムで受信することを含んでいる。少なくとも、第１のコマンドの一部はストレージサブシステムと接続されたＷＯＲＭストレージデバイス上に記憶される。ＷＯＲＭストレージデバイスはストレージシステムのＷＯＲＭ機能を検証するために用いられる。第１のコマンドはシーケンス番号を対応付けられ、シーケンス番号はＷＯＲＭストレージデバイス上に記憶させる。
【００１２】
[0012]  本発明の一実施例では、データアーカイブ機能を提供する方法は、ＷＯＲＭストレージデバイスにおけるストレージサブシステムへ向けられ、ストレージサブシステムのストレージエリアに記憶されたデータの内容に影響を与える形式のものである、コマンドの少なくとも一部を記憶することと、与えられた順序でコマンドを分類するのに役立つシーケンス番号を各コマンドに付加することとを含んでおり、ＷＯＲＭストレージデバイスはコマンドの少なくとも一部とシーケンス番号を含んでいる複数のコマンドレコードを含んでおり、そのコマンドレコードはストレージサブシステムがＷＯＲＭの保全性を保持しているか否かを検証するのに役立つ。
【００１３】
本発明の一実施例では、ＷＯＲＭ機能を提供するように構成されたストレージシステムは、ホストから第１のコマンドをストレージサブシステムで受信することを含んでいる。少なくとも、第１のコマンドの一部はストレージサブシステムと接続されたＷＯＲＭストレージデバイス上に記憶される。ＷＯＲＭストレージデバイスはストレージシステムのＷＯＲＭ機能を検証するために用いられる。ストレージサブシステムは第２のコマンドを受信する。第２のコマンドは、特定の形式のコマンドを選定するように予め定められた基準が与えられているフィルターであるコマンドフィルターを用いて検査する。第２のコマンドが予め定められた基準に合致するならば、少なくとも第２のコマンドの一部は記憶される。
【００１４】
本発明の一実施例では、ＷＯＲＭ機能を提供するように構成されたストレージシステムは、ホストから第１のコマンドをストレージサブシステムで受信することを含んでいる。少なくとも、第１のコマンドの一部はストレージサブシステムと接続されたＷＯＲＭストレージデバイス上に記憶される。ＷＯＲＭストレージデバイスはストレージシステムのＷＯＲＭ機能を検証するために用いられる。第１のコマンドはシーケンス番号を対応付けられ、シーケンス番号はＷＯＲＭストレージデバイス上に記憶させる。
【００１５】
本発明の一実施例では、データアーカイブ機能を提供するストレージシステムは、ＷＯＲＭストレージデバイスにおけるストレージサブシステムへ向けられ、ストレージサブシステムのストレージエリアに記憶されたデータの内容に影響を与える形式のものである、コマンドの少なくとも一部を記憶することと、与えられた順序でコマンドを分類するのに役立つシーケンス番号を各コマンドに付加することとを含んでおり、ＷＯＲＭストレージデバイスはコマンドの少なくとも一部とシーケンス番号を含んでいる複数のコマンドレコードを含んでおり、そのコマンドレコードはストレージサブシステムがＷＯＲＭの保全性を保持しているか否かを検証するのに役立つ。
【発明の効果】
【００１６】
本発明の一実施例においては、ストレージシステムは予め定められた基準によりＩ／Ｏリクエストから特定のコマンドを選別するコマンドフィルターを備えている。選別されたコマンドはＷＯＲＭデバイスに書き込まれる。コマンドチェッカーはストレージシステムあるいはその特定の領域がＷＯＲＭの保全性を維持しているか否かを判定するチェックを行う。
【００１７】
本発明の一実施例では、追記型（ＷＯＲＭ）機能を提供するように構成されたストレージシステムを稼働させる方法は、ホストから第１のコマンドをストレージサブシステムで受信することを含んでいる。 少なくとも、第１のコマンドの一部はストレージサブシステムと接続されたＷＯＲＭストレージデバイス上に記憶される。ＷＯＲＭストレージデバイスはストレージシステムのＷＯＲＭ機能を検証するために用いられる。第２のコマンドはストレージサブシステムで受信される。第２のコマンドは、特定の形式のコマンドを選定するように予め定められた基準が与えられているフィルターであるコマンドフィルターを用いて検査される。第２のコマンドが予め定められた基準に合致するならば、少なくとも第２のコマンドの一部は記憶される。
【００１８】
本発明の一実施例では、データアーカイブ機能を提供する方法は、追記型（ＷＯＲＭ）ストレージデバイスにおけるストレージサブシステムへ向けられ、ストレージサブシステムのストレージエリアに記憶されたデータの内容に影響を与える形式のものである、コマンドの少なくとも一部を記憶することと、与えられた順序でコマンドを分類するのに役立つシーケンス番号を各コマンドに付加することとを含んでおり、ＷＯＲＭストレージデバイスはコマンドの少なくとも一部とシーケンス番号を含んでいる複数のコマンドレコードを含んでおり、そのコマンドレコードはストレージサブシステムがＷＯＲＭの保全性を保持しているか否かを検証するのに役立つ。
【００１９】
本発明の他の実施例では、ストレージシステムを検証する方法は、ストレージサブシステムへ送られたコマンド上の情報を各々が含んでいるレコードに関連したシーケンス番号を用いて追記型（ＷＯＲＭ）ストレージデバイスに記憶されている複数のレコードを分類することと、コマンドが向けられたストレージエリアのアドレスを検索するためにレコードの一つについてコマンド上の情報を調べることと、ストレージサブシステムの複数のストレージエリアのビットマップからストレージエリアに関するエントリーを取得することと、取得したエントリーを用いてＷＯＲＭ違反の表示があるか否かを判定することを含んでいる。
【００２０】
本発明の他の実施例では、アーカイバルシステムは、ホストコンピュータからのコマンドを含むデータリクエストを処理するコントローラと、予め定められた選別基準を満たすコマンドを選別するコマンドフィルターと、コマンドフィルターで選択されたコマンドの少なくとも一部を記憶する追記型（ＷＯＲＭ）ストレージデバイスと、デ―タをアーカブするＷＯＲＭストレージエリアとして定義された少なくとも１個のストレージエリアとを含んでいる。
【００２１】
本発明のその他の実施例では、コンピュータで読み出し可能な媒体は、アーカイバル機能を検証するコンピュータプログラムを含んでいる。コンピュータプログラムは、ホストからの第１のコマンドをストレージサブシステムにおいて受信するためのプログラムコードと、予め定められた基準を用いて第１のコマンドを調べるプログラムコードと、第１のコマンドが予め定められた基準を満たしていることを判定してストレージサブシステムに接続されたＷＯＲＭストレージデバイス上に第１のコマンドの少なくとも一部を記憶するプログラムコードと、ストレージサブシステムにおいてホストから第２のコマンドを受信するプログラムコードと、予め定められた基準を用いて第２のコマンドを調べ、第２のコマンドが予め定められた基準を満たさないと判定された場合は第２のコマンドの如何なる部分も記憶しないプログラムコードとを含んでいる。
【００２２】
本発明のさらに他の実施例では、アーカイバルシステムは、コマンドを含んでいるホストコンピュータからのデータリクエストを処理する手段と、選別されたコマンドを取得するために予め定められた選別基準を用いてコマンドを選別する手段と、追記式（ＷＯＲＭ）ストレージデバイスに選別されたコマンドを記憶する手段と、ＷＯＲＭストレージデバイスに記憶されている選別されたコマンドにシーケンス番号を結合させる手段とを含む。
【発明を実施するための最良の形態】
【００２３】
[0023]  図１は本発明の一実施例によるアーカイバルシステム３０のブロックダイアグラムを示す。アーカイバルシステム３０はホストコンピュータ１とストレージシステム１０とＷＯＲＭデバイス４００と監査者１００とターミナルシステム１１０とを含む。ストレージシステム１０とＷＯＲＭデバイス４００とターミナルシステム１１０は、総合して下記に述べるようにＷＯＲＭ検証機能を提供する。図では、各コンポーネントについて１個のエントリーのみしか示していないが、数は１個のみに限定されるものではない。たとえば、システム３０は複数のストレージシステムや複数のホストや複数のＷＯＲＭデバイスを含んでもよい。
【００２４】
[0024]  一般にホストコンピュータ１はアプリケーションプログラムとオペレーティングシステムとデバイスドライバーを含んでいる。アプリケーションプログラムは、オペレーティングシステムとデバイスドライバーと協調しながら読み出し／書き込みリクエスト（あるいはＩ／Ｏリクエスト）を生成する。デバイスドライバーは、ホストコンピュータ１に関してストレージシステム１０に対するインターフェイスとして動作する。デバイスドライバーはＩ／Ｏリクエストに従い、ＳＣＳＩコマンドのようなコントロールコマンドをストレージシステム１０に対し発行する。
【００２５】
[0025]  ホスト１とストレージシステム１０はストレージネットワーク２により接続されている。例はファイバーチャネル、イーサーネットなどである。また、接続のアーキテクチャは、ストレージネットワークのプロトコルに依存するものであるが、ＤＡＳ（Direct Attached Storage）、ＳＡＮ（Storage Area Network）、ＮＡＳ（Network Attached Storage）やＯＳＤ（Object Storage Device）などである。Ｉ／ＯリクエストあるいはＩ／Ｏは、一般にコマンド２００を含んでいる。もしリクエストが書き込みリクエストであれば、リクエストはストレージエリアに書き込まれるデータを含んでいることもある。
【００２６】
[0026]  ストレージシステム１０はコントローラ２０とキャッシュ３０と複数のストレージエリア４０ａ〜４０ｎを含む。本発明の実施例では、ストレージシステムはディスクアレイユニットであって、ストレージエリアとして複数のストレージディスクを含んでいる。ストレージシステム１０のより詳細な説明は、参考資料として添付されており、日本特許出願番号２００２−１６３７０５で優先権が主張されている、２００３年３月２１日に受理された「Data Storage Subsystem」という題名の米国特許出願番号 に開示されている。ストレージシステム１０はストレージサブシステムとも呼ばれ、アーカイバルシステム３０はストレージシステムと呼ばれることがある。
【００２７】
[0027]  ストレージシステム１０においては、コントローラはホスト１からＩ／Ｏリクエストを受信し処理する。たとえば、コントローラが、ある量のデータを伴い、適当なストレージアドレスを指定した「書き込み」コマンドを受信すると、コントローラは指定されたアドレスにデータを書き込み、適切な応答を返送する。同様に、もしコントローラが適当なストレージアドレスを指定した「読み出し」コマンドを受信すると、コントローラは指定されたアドレスからデータを読み出し、読み出したデータをホスト１に送信する。もしストレージシステム１０がインターフェイスとしてホスト１に論理アドレスを伝えている場合は、コントローラ２０は物理と論理のマッピングを実行する。また、もしストレージシステム１０がＲＡＩＤアーキテクチャを用いる場合は、コントローラ２０は、ミラーリングやストライピングやパリティー処理などの、ＲＡＩＤシステムで要求されるデータコントロールプログラムを処理する。
【００２８】
[0028]  キャッシュ３０は総合的なシステム性能を向上するためにデータメモリーあるいはワークメモリーとして動作する。一般に、キャッシュは高アクセス速度の揮発性メモリーである。ディスク４０ａ〜４０ｎはホスト１の要求によりデータを記憶する。
【００２９】
[0029]  データパスあるいはデータライン３１、４１、５１は、データと制御の通信の内部ネットワークである。内部ネットワークの例は、ＰＣＩやファイバーチャネルなどである。また、市場には、ストレージシステムに適用されるバスやスイッチやマトリックスなどの幾つかのアーキテクチャがある。
【００３０】
[0030]  本発明の一実施例では、ストレージシステムは、ＷＯＲＭ監査機能を実行するために、コマンドフィルターモジュール３００とＷＯＲＭデバイスライター５０を備えている。モジュール３００は、コントローラ内かあるいはたとえばストレージシステムのストレージエリアの一つとか非揮発性半導体メモリーデバイスなどに外部的に設けられている。コントローラ２０はコマンドフィルターモジュール３００を実行する。
【００３１】
[0031]  コマンドフィルター３００は、予め定められた基準に基づき適切なコマンドを選別する。たとえば、コマンドフィルター３００は特定の形式のコマンドあるいは特定の論理あるいは物理アドレスに対して動作するコマンドを選別する。コマンドフィルター３００は、各選別されたコマンドの記録を、通し番号とコマンドの発行時刻を付けて書き込むことを、ＷＯＲＭデバイスライター１０に要求する。これらの規則は、ユーザによりユーザの順守方針に基づき、ユーザインターフェイス（図示せず）を通して定義され、あるいは変更される。
【００３２】
[0032]  本発明の一実施例では、ＷＯＲＭストレージデバイス４００はストレージシステム１０と接続している。ＷＯＲＭデバイス４００はポータブルあるいは取り外し可能なデバイスであって、容易にストレージシステム１０から取り外しが出来る。ストレージデバイス４００の具体例には、ＣＤ−ＲＯＭとＤＶＤ−ＲＯＭが含まれている。ＷＯＲＭデバイスライター５０は、ＷＯＲＭストレージデバイス４００にあるＷＯＲＭレコードファイル４０５に選別したコマンドのレコードを書き込む。
【００３３】
[0033]  本発明の他の実施例では、ＷＯＲＭデバイスライター５０は、サブシステムの構成が変更される毎にＷＯＲＭストレージデバイス４００にサブシステム構成ファイルを書き込む。サブシステム構成の具体例はデバイスの大きさを変更しデバイスを再割り当てするものである。一般に、これらの構成の変更により、構成されたデバイスからデータの削除を発生させることがある。したがって、前記ファイルは指定のデバイス上のデータが最初の書き込みの後で削除されたり変更されたりしていないことを確認するために用いられる。
【００３４】
[0034]  本発明の他の実施例では、前記ファイルは、論理アドレスから物理アドレスへのマッピングがサブシステムで実行されるか否かを監査する時に、物理アドレスを識別するために用いられる。ＬＵＮ（後述）のような論理アドレスは、もし物理アドレスの容量が論理アドレスの容量より大きい場合は、時には再利用される。したがって、この特定の実用例では、ＷＯＲＭであると証明される必要がある実アドレスを識別する必要がある。
【００３５】
[0035]  データパスあるいはライン５２は、レコードがレコードファイル４０５に書き込まれるように、ＷＯＲＭデバイス４００とストレージシステム１０の間が接続されていることを示す。データパスあるいはライン１１は、レコードが監査されるように、ＷＯＲＭデバイス４００がターミナルシステム１１０へ接続されていることを示す。ＷＯＲＭデバイス４００は、監査人に対して単なるソフトウエアによる解決よりもさらに快適なレベルを提供するＷＯＲＭ機能の物理的な証拠を提供するものである。
【００３６】
[0036]  本発明の一実施例では、１個ないしはそれ以上のバッファー（図示せず）がＷＯＲＭデバイスへの書き込み特性を向上するためにストレージシステム１０に設けられる。代わりに、あるいは関連して、ストレージシステムは並列に複数のＷＯＲＭデバイスに書き込む。たとえば、ストレージシステム１０はＷＯＲＭデバイス４００において複数のレコードファイル４０５に書き込む能力を備えており、そのレコードファイル４０５はアドレスなどの異なった資源にも対応が出来る。
【００３７】
[0037]  本発明の他の実施例では、ＷＯＲＭデバイスライター５０は内部にＷＯＲＭデバイス４００を含み、選別されたコマンドのレコードをネットワークを通してターミナルシステム１１０へ送信する。ネットワークは物理的データパスあるいは無線接続である。本実施例では、一般のユーザはＷＯＲＭデバイスとして指定されたストレージエリアのデータを消去あるいは再書き込みすることが禁じられている。ストレージシステム内のマイクロコードにより、ユーザが前記エリアのデータを消去するあるいは再書き込みすることは禁じられている。この機能の具体例は「LDEV Guard on Hitachi Freedom StorageTM」である。したがって、実際のＷＯＲＭデバイス（たとえばＣＤ−ＲＯＭ）は不要である。
【００３８】
[0038]  ターミナルシステム１１０は、コントローラ１２０とＷＯＲＭデバイスリーダ１５０と内部ネットワーク１５１を含んでいる。コントローラ１２０とリーダ１５０は内部ネットワーク１５１を経由して互いに交信する。ネットワーク１５１の例はＳＣＳＩである。本発明の実施例によると、ターミナルシステム１１０は通常のパーソナルコンピュータ上で実行することも出来る。本発明の実施例では、コントローラ１２０はＣＰＵであり、ＷＯＲＭデバイスリーダ１５０はＣＤ−ＲＯＭあるいはＤＶＤ−ＲＯＭドライブである。
【００３９】
[0039]  ＷＯＲＭデバイスリーダ１５０は、ＷＯＲＭデバイスがリーダ１５０に挿入されるかあるいはデータリンク１１がそれと違って形成された場合には、ＷＯＲＭデバイス４００の内容を読み出す。読み出された内容はコントローラ１２０へ送信される。
【００４０】
[0040]  コントローラ１２０は、ターミナルシステムにあるコマンドチェッカーモジュール５００を実行する。モジュール５００は、コントローラ内部にあるかあるいはその外部の位置にある。コマンドチェッカー５００は、ＷＯＲＭデバイス４００のコマンドレコードファイル４０５を監査して、ストレージシステム１０あるいはその特定のエリアがＷＯＲＭストレージエリアとして機能したかを確認する。
【００４１】
[0041]  モジュール５００は、ストレージシステム１０の指定されたストレージエリアあるいはＷＯＲＭエリアが１回だけ書き込まれ、そのあと変更あるいは消去されていないかを確かめる。たとえば、一般にＷＯＲＭエリアは、ERASE/FORMATコマンドの後は、１回のＥＲＡＳＥあるいはＦＯＲＭＡＴコマンドと１回のＷＲＩＴＥコマンドだけが実行されるべきである。もしＷＯＲＭエリアで最初のＷＲＩＴＥコマンドの後にＥＲＡＳＥあるいはＦＯＲＭＡＴコマンドが実行されるならば、このような動作は最初のデータが消去されるかあるいは変更されることを示す。ＷＯＲＭエリアに最初のＷＲＩＴＥコマンドの後に他のＷＲＩＴＥコマンドが実行される場合は、元のデータが書き直されるか変更されることを示す。上記の状況の双方では、ストレージシステム１０においてＷＯＲＭの保全性が保持されていないことを示している。
【００４２】
[0042]  ターミナルシステムに接続した監査者１００はモジュール５００の確認の結果を受信する。監査者１００は、コマンドチェッカー５００経由でコマンドレコードファイル４０５を監査するコンピュータシステムあるいは人間である。
【００４３】
[0043]  もし監査者１００がコンピュータシステムである場合は、ターミナルシステム１１０は確認の結果を監査者１００に送信するインターフェイス１０１を提供する。次に監査者はＷＯＲＭの侵害について疑いのある原因を含め、結果を分析する。たとえば、監査者は違反の時刻やエリアを判定し、前記情報をアプリケーションプログラムとオペレーティングシステムのログファイルに関連して比較する。もし監査者が人である場合は、ターミナルシステム１１０は監査者１００とのユーザインターフェイス１０１を提供する。次いで監査者１００は結果を分析する。代わりに、ターミナルシステムは印刷したレポートを提供してもよい。
【００４４】
[0044]  したがって、ＷＯＲＭデバイス４００、コマンドレコードファイル４０５、コマンドチェッカー５００およびその他は、ストレージシステム１０がＷＯＲＭの保全性を維持しているかを確認する効果的な方法を提供する。全体のデータよりはむしろコマンドのみがＷＯＲＭデバイス４００に記録されるので、ストレージシステム１０はストレージシステムに与える性能上の影響を最小にしてＷＯＲＭ機能を検証することが出来る。本発明の一実施例では、ＷＯＲＭデバイスには選択されたコマンドのみが記録されるので、ストレージシステムが受ける影響はさらに少なくなる。
【００４５】
[0045]  本発明の一実施例では、ホスト１はコマンドフィルター３００とＷＯＲＭデバイスライター５０を含んでいる。たとえば、ホストのデバイスドライバーはコマンドフィルター３００の機能を行い、ストレージシステムよりはむしろホストに接続されているＷＯＲＭデバイスに適切なコマンドを実行するようにＷＯＲＭデバイスライターに要求する。
【００４６】
[0046]  図２は本発明の一実施例によるコマンド２００の具体例を示す。本発明の実施例におけるコマンド２００は、長さ１０バイトのＳＣＳＩコマンドである。コマンド２００はまたコマンドデスクリプタブロック（Command Descriptor Block：CDB）とも呼ばれる。列２１０はブロックにおけるバイトの順序を示す。行２２０は各バイトにおけるビットの順序を示す。オペレーションコード２２１は実行される特定のコマンドを示す。論理ユニット番号（ＬＵＮ）２２２はコマンドが向けられているストレージシステム内の論理ボリューム（デバイス）を示す。論理ブロックアドレス（ＬＢＡ）２２３はコマンドがアクセスしようとする論理ボリューム内のブロックアドレスを示す。一般には、論理ブロックアドレスはアクセスしようとするＬＵＮ内のストレージエリアの開始アドレスを示す。データ長２２４はコマンドに関連したデータ長を示し、それによりＬＵＮ内でアクセスしようとするストレージエリアの終了アドレスを示す。
【００４７】
[0047]  本発明の一実施例では、コマンドフィルター３００は、予め定められた基準により選択されたコマンドのみを選別するように構成されている。たとえば、コマンドフィルターは、指定されたＷＯＲＭストレージエリア上に書き込まれたデータに影響するコマンド、たとえばERASE、FORMAT、WRITEなどのコマンド、のみを選別するように構成されている。このフィルター動作はコマンド２００のオペレーションコード２２１を確認することにより行われる。コマンドフィルターは、ＷＯＲＭ違反の原因となる全てのコマンドが実際に選別されコマンドレコードファイル４０５に記録されることを保証するために含まれるべきである。
【００４８】
[0048]  本発明の他の実施例では、コマンドフィルター３００は、ＷＯＲＭエリアとして指定され、選択されたストレージエリア、あるいは論理エリアに向けられた全てのコマンドを選別するように構成されている。ＷＯＲＭエリアはユーザによりユーザインターフェイスを経由して定義される。ユーザは論理アドレスを指定し、システムはそれを物理アドレスに変換する。このフィルター動作はコマンド２００のＬＵＮ２２２を確認することで行われる。もちろん、ＷＯＲＭエリアの細分性は必ずしも指定のＬＵＮに限定されるものではない。たとえば、ＷＯＲＭエリアはＳＣＳＩのターゲットＩＤあるいはポートＩＤを用いて指定することができる。また、「実」ＬＵＮに対してマップされたバーチャルＬ
ＵＮを用いて、ＳＣＳＩのＬＵＮブロック内の１ないしはそれ以上の論理ブロックを指定することも可能である。さらに詳細なバーチャルＬＵＮの説明は参考文献として添付されている米国特許６，６８４，２０９に述べられている。
【００４９】
[0049]  本発明の他の実施例では、全てのコマンドあるいはＣＤＢは、選別すること無くコマンドレコードファイル４０５に記録されている。しかしながら、コマンドチェッカー５００は選別されたコマンドのみチェックするように構成されている。本実施例により、ストレージシステムを監査することを通してより多くのことを提供するが、システムリソースを大量に消費してしまう。上記の方法の組み合わせを含む他の監査／選別手順が、ユーザのニーズに従い用いられるものである。
【００５０】
[0050]  本発明の他の実施例においては、サブシステム構成コマンドが検出され、コマンドレコードファイル４０５に記録される。コマンドは図２で説明されたものとは異なった構成を持っている。コマンドはまたストレージネットワーク２（インバンド）の他のコントロールネットワーク（アウトオブバンド）を通して発行される。構成コマンドの一例はＬＵＮサイズの拡張であって、これによりＬＵＮ上のデータが削除されることもある。したがって、コマンドは、指定のＬＵＮ上のデータが最初の書き込みの後で削除されたり変更されたりしていないことを確認するために用いられる。
【００５１】
[0051]  本発明の他の実施例では、前記コマンドは、論理アドレスから物理アドレスへのマッピングがサブシステムで実行されたか否かを監査する時に、物理アドレスを識別するために用いられる。前記ＬＵＮは、物理アドレスの容量が論理アドレスの容量より大きい場合には、何度も再利用される。したがって、この特定の実用例では、ＷＯＲＭであると証明される必要がある実アドレスを識別する必要がある。
【００５２】
[0052]  図３は本発明の一実施例による、コマンドフィルターモジュール３００により実行されるプロセス３０１を示す。本発明の実施例では、モジュール３００はＬＵＮ２２２を照合することでＣＤＢを選別する。あるいは、コマンド２００の論理ブロックアドレス（Logical Block Address）が選別のために用いられる。
【００５３】
[0053]  プロセス３０１に戻ってみると、ステップ３０５でモジュール３００はＣＤＢあるいはコマンド２００を抜き出している。一般にコントローラ２０は全てのＣＤＢあるいはコマンドを受け取るので、この機能はコントローラで実行される。モジュール３００はコマンド２００のＬＵＮ２２２を抜き出し調べる（ステップ３１０）。もしコマンド２００のＬＵＮが予め定められたＬＵＮに合致するならば、モジュールはステップ３２０に進む（ステップ３１５）。異なった場合は、モジュールはプロセス３０１を終了させ、他のＣＤＢを抜き出す。
【００５４】
[0054]  もしステップ３１５の結果がＹＥＳであるならば、つぎにモジュールはＷＯＲＭデバイス４００のコマンドレコードファイル４０５にＣＤＢの書き込みを開始する。書き込みは実際にはＷＯＲＭデバイスライター５０により実行される。ＣＤＢに加え、たとえばシーケンス番号とかコマンド実行時刻などのＣＤＢに関連した情報がレコードファイル４０５に書き込まれる。
【００５５】
[0055]  本発明の一実施例では、シーケンス番号はコマンドの連続番号である。コマンド実行時刻は、コマンドに付けられたタイムスタンプ、あるいはストレージシステム１０におけるコマンドの実行時刻、あるいはホスト１へのコマンドの確認の時刻を意味する。監査に役立つ他の情報もまた記録される。本発明の他の実施例では、監査のために必要な情報はＣＤＢから抜き出され、コマンドレコードファイル４０５に記憶される。情報の具体例はＣＤＢによって定義された論理あるいは物理アドレスとＣＤＢにより実行されたコマンドである。
【００５６】
[0056]  図４は本発明の一実施例による、ＷＯＲＭデバイス４００のコマンドレコードファイル４０５に記憶されているレコードの具体例を示す。列４１０は各ＣＤＢあるいはコマンドのシーケンス番号を示す。シーケンス番号はコマンドの順番についての情報を提供する。列４２０はコマンド実行時刻あるいはコマンドに係わる時刻を示す。列４３０は１６進法で記憶されたＣＤＢを含む。
【００５７】
[0057]  この実施例では、ＣＤＢは、ＣＤＢの一部を抜き出すこと、そして／あるいはＣＤＢを再フォーマットすることの結果としての性能コストを削減するために、ホストから送信されたままの状態で、アーカイブされる。もう一つの方法としては、ＣＤＢの一部が抜き出され再フォーマットされるか、あるいはＣＤＢ全体が再フォーマットされる。行４４０と４５０と４６０は、ＷＯＲＭデバイス４００上のコマンドレコードファイル４０５におけるアーカイブされたレコードの具体例である。
【００５８】
[0058]  図６は予め定められた論理ボリュームがＷＯＲＭエリアとして保持されているか否かを判定するために、コマンドチェッカーモジュール５００が用いるビットマップテーブル６０２を示す。行６０５はＬＵＮを示す。列６１０は論理ボリュームの論理ブロックアドレスを示す。列６２０、６３０、６４０、６５０と６６０は指定された論理ボリュームの論理ブロックアドレスである。行６８０、６９０と７００はＬＵＮの実例である。特定の列と行により識別された各位置６０４はストレージシステムにおける指定のストレージエリア又はアドレスを意味する。各位置には前記位置のステータス情報を表すｎビットのエントリーが付いている。
【００５９】
[0059]  本発明の第２の実施例では、２ビットの情報が用いられている。上位のビットは書き込みコマンドが前記アドレスに対して実行されたか否かを示す。下位のビットはERASE／FORMATコマンドが前記アドレスに対して実行されたか否かを示す。したがって、２ビットの情報は本発明の実施例では以下のことを表している。
【００６０】
[0060]  “００”：アドレスはフォーマットも書き込みもされていない。
【００６１】
[0061]  “０１”：アドレスはフォーマットされているが書き込みがされていない。
【００６２】
[0062]  “１１”：アドレスはフォーマットされ書き込みがされている。
【００６３】
[0063]  “１０”：アドレスはフォーマットされていないが書き込みがされている。
【００６４】
[0064]  本発明の実施例では、“１０”は意味のある情報は提供していない。しかしながら、たとえばＬＵＮがフォーマットされた後コマンドフィルター機能が活性化されるような状況下である、他の実施例では、上記は意味のある情報を提供する。
【００６５】
[0065]  図５は、本発明の一実施例による、ストレージサブシステムのＷＯＲＭの保全性を判定するコマンドチェッカーモジュール５００により実行されるプロセス５０２を示す。ステップ５１０では、モジュールはＷＯＲＭデバイス４００からコマンドレコードファイル４０５を読み出す。モジュールは、各レコードに関するシーケンス番号４１０に従ってコマンドレコードファイル４０５にあるレコードを分類する（ステップ５１５）。分類により、コマンドが正しい順序で検査されたことを確実にして、事象の順番付けに関して監査者がより良い考えを持てるようにする。本発明の一実施例では、シーケンス番号４１０はコマンドをストレージシステムへ送信する前にホストにより付けられたコマンドの順序番号である。本発明の他の実施例では、シーケンス番号４１０はコマンドの受信順序を示すためにストレージシステムによりコマンドに付けられたコマンドの順序番号である。本発明のさらに別の実施例では、シーケンス番号４１０は関連したコマンドの順序を示すためにＷＯＲＭデバイス４００上で選別され／記録されたコマンドのみに付けられる番号である。
【００６６】
[0066]  モジュールは、テーブルの全てのエントリーが“００”に設定されるように、図６のビットマップテーブル６０２を準備しリセットする（ステップ５２０）。モジュールはコマンドレコードファイル４０５からレコードを読み出す（ステップ５２５）。モジュールはコマンドの関連した部分を抜き出す（ステップ５３０）。本発明の実施例では、ＣＤＢのオペレーションコード２２１が引き出される。もしコマンドがＦＯＲＭＡＴやＥＲＡＳＥに関わる場合は、プロセス５０２はステップ５３５に進む。もしコマンドがＷＲＩＴＥに関わる場合は、プロセスはステップ５３６に進む。その他の場合は、プロセスはステップ５５０に進む。本発明の実施例では、ＦＯＲＭＡＴやＥＲＡＳＥやＷＲＩＴＥを含むコマンドはフィルター候補として予め決められる。しかしながら、追加コマンド形式が選別のために追加されてもよい。
【００６７】
[0067]  ステップ５３５では、コマンドが指向するストレージエリアあるいは位置が決定されるように、モジュールはアドレス情報をコマンドから抜き出す。抜き出されたアドレス情報はコマンドからのＬＵＮ２２２と論理ブロックアドレス２２３である。一旦この情報が抜き出されると、モジュールはビットマップテーブル６０２の指定された位置のエントリーを確認する。もしエントリーが「１１」であれば、つぎにプロセスはステップ５４０に進む。その他の場合は（エントリーが「００」か「０１」）、プロセスはステップ５５０に進む。「１１」のエントリーは、データを記憶した位置をフォーマットあるいは消去することで、問題のコマンドがＷＯＲＭ違反をしていることを示している。「００」あるいは「０１」のエントリーは、コマンドがＷＯＲＭ違反をしていないことを示している。すなわち、前記位置がフォーマットや消去される時には、前記位置には記憶済みのデータがないのである。
【００６８】
[0068]  ステップ５３６では、ステップ５３５のように、コマンドが指向するストレージエリアあるいは位置が決定されるように、モジュールはアドレス情報をコマンドから抜き出す。抜き出されたアドレス情報は、コマンドからのＬＵＮ２２２と論理ブロックアドレス２２３である。モジュールは識別された位置についてエントリーを照合する。もしエントリーが「１１」であれば、つぎにプロセス５０２はステップ５４２へ進む。その他の場合（エントリーが「００」あるいは「０１」）は、プロセスはステップ５５０へ進む。
「１１」のエントリーは、データを記憶した位置に書き込みを行うことで、言い換えれば前記位置にREWRITEを行なうことで、コマンドがＷＯＲＭ違反を犯していることを示す。「００」と「０１」のエントリーは、ＷＯＲＭ違反が犯されていないことを示している。すなわち、前記位置がいかなるデータも記憶しないうちに、前記位置にＷＲＩＴＥコマンドが実行される。
【００６９】
[0069]  本発明の他の実施例では、同じＷＯＲＭデバイスに記憶されている、構成テーブルを用いるか、あるいは構成コマンドを解析することで、物理アドレスは識別される。現在の具体例で、物理アドレスの容量が論理アドレスの容量より大きく、かつＬＵＮが再利用されている場合は、ＷＯＲＭであると検証されなければならない実アドレスを識別することが必要である。
【００７０】
[0070]  ステップ５４０と５４２においては、モジュールはＷＯＲＭ違反を監査者１００に報告し、ＷＯＲＭ違反に関わるレコードをさらに調査するために送信する。報告の方法は実施の仕方によって異なる。たとえば、レポートはユーザインターフェイスやファイルやアプリケーションプログラムインターフェイスやその他のフォーマットで提供される。本発明の一実施例では、モジュールは単にストレージシステム１０についてＷＯＲＭ機能が確認できなかったと、たとえば「ＷＯＲＭは確認されなかった」のようなメッセージを監査者１００へ送ることで報告する。
【００７１】
[0071]  ステップ５５０では、モジュールはビットマップテーブル６０２を更新する。もしコマンドがＦＯＲＭＡＴあるいはＥＲＡＳＥであるならば、モジュールは識別された位置のエントリーの最初のビットをＴＲＵＥ（１）に設定する。もしコマンドがＷＲＩＴＥであるならば、モジュールはエントリーの第２のビットをＴＲＵＥ（１）に設定する。
【００７２】
[0072]  ステップ５５５では、もし現在のレコードが最後のレコードであるならば、つぎにプロセスはステップ５６０に進む。それ以外の場合は、プロセスは、コマンドレコードファイル４０５から次のレコードを検索するためにステップ５２５へ戻る。
【００７３】
[0073]  ステップ５６０では、モジュールは、ステップ５４０あるいは５４２でＷＯＲＭ違反のレポートが発行されたかを調べる。もし発行されている場合は、モジュールは、ストレージシステム１０はＷＯＲＭ機能に違反して不適切なＦＯＲＭＡＴやＥＲＡＳＥあるいはＷＲＩＴＥコマンドを実行していないことを意味する、「ＷＯＲＭは有効である」というメッセージを監査者に送信する（ステップ５６５）。もしそうでないなら、モジュールは、ストレージシステム１０は少なくとも１回の不適切なＦＯＲＭＡＴやＥＲＡＳＥあるいはＷＲＩＴＥコマンドを実行したことを意味する「ＷＯＲＭは有効でない」というメッセージを監査者に送信する（ステップ５７０）。
【００７４】
[0074]  本発明の他の実施例では、ＷＯＲＭデバイスに保存されているであろうサブシステム構成コマンドも検査される。もしモジュールが、ＬＵＮに記憶されているデータの削除を起こす可能性のあるＬＵＮサイズ拡張のような、ＷＯＲＭ違反コマンドを検出すると、モジュールはＬＵＮは「ＷＯＲＭは有効でない」状態であると報告する。
【００７５】
[0075]  本発明は特定の実施例により説明されてきた。上述の特定の実施例の説明は説明することを目的として提供されている。本発明の適用範囲から逸脱すること無しに、上記の実施例の部分的な修正や、変形や、変更を行うことが可能である。したがって、特許請求の範囲が、本発明の適用範囲を解釈するために用いられるものである。
【図面の簡単な説明】
【００７６】
【図１】[0017]  図１は本発明の一実施例によるアーカイバルシステムのブロックダイアグラムを示す。
【図２】[0018]  図２は本発明の一実施例によるコマンドの具体例を示す。
【図３】[0019]  図３は本発明の一実施例による、コマンドフィルターモジュールにより実行されるプロセスを示す。
【図４】[0020]  図４は本発明の一実施例による、ＷＯＲＭデバイスのコマンドレコードファイルに記憶されているレコードの具体例を示す。
【図５】[0021]  図５は本発明の一実施例による、ストレージサブシステムのＷＯＲＭの保全性を判定するためにコマンドチェッカーモジュールにより実行されるプロセスを示す。
【図６】[0022]  図６は予め定められた論理ボリュームがＷＯＲＭエリアとして保持されているか否かを判定するためにコマンドチェッカーモジュールが用いるビットマップテーブルを示す。
【符号の説明】
【００７７】
１…ホスト、１０…ストレージシステム、２０…コントローラ、３０…キャッシュ、４０…ディスク、５０…ＷＯＲＭデバイスライター、１００…監査者、１１０…ターミナルシステム、１２０…コントローラ、１５０…ＷＯＲＭデバイスリーダ、３００…コマンドフィルター、４００…ＷＯＲＭデバイス、４０５…コマンドレコード、５００…コマンドチェッカー。
【手続補正３】
【補正対象書類名】図面
【補正対象項目名】図４
【補正方法】変更
【補正の内容】
【図４】
2005301979.tif 000001
【手続補正４】
【補正対象書類名】図面
【補正対象項目名】図５
【補正方法】変更
【補正の内容】
【図５】
2005301979.tif 000002