(57)【要約】【課題】  信用度が高く、管理が容易で、実施費用が安い追記型（ＷＯＲＭ）アーカイブシステム、特にＷＯＲＭの保証あるいは証明の機能を可能にするシステムを提供する。【解決手段】  追記型（ＷＯＲＭ）機能を提供するストレージシステムを稼働させる方法には、ストレージサブシステムにおいてホストから第１のコマンドを受信することが含まれている。第１のコマンドの少なくとも一部は、ストレージサブシステムと結合したＷＯＲＭストレージデバイス上に記憶される。第２のコマンドは前記ストレージサブシステムで受信される。第２のコマンドは、特定の形式のコマンドを選別するコマンドフィルターを用いて検査される。第２のコマンドが予め定められた基準を満たすならば、第２のコマンドの少なくとも一部は記憶される。ＷＯＲＭストレージデバイスはストレージシステムのＷＯＲＭ機能を証明するために用いられる。【選択図】図１
2005301979.tif 000002
【特許請求の範囲】
【請求項１】
追記式（WORM）機能を提供するように構成されたストレージシステムを動作させる方法において、
ホストから第１のコマンドをストレージサブシステムで受信するステップと、
前記ストレージサブシステムと結合したＷＯＲＭストレージデバイス上に前記第１のコマンドの少なくとも一部を記憶するステップと、
を有し、
前記ＷＯＲＭストレージデバイスは前記ストレージシステムの前記ＷＯＲＭ機能を確認することに用いられることを特徴とする方法。
【請求項２】
前記ストレージサブシステムにおいて第２のコマンドを受信するステップと、
選択された形式のコマンドを選別するための予め定められた基準が与えられているコマンドフィルターを用いて、前記第２のコマンドを調べるステップと、
もし前記第２のコマンドが前記予め定められた基準を満たす場合は、前記第２のコマンドの少なくとも一部を記憶するステップと、
をさらに有することを特徴とする請求項１に記載の方法。
【請求項３】
前記コマンドフィルターは、前記ストレージサブシステムのストレージエリアに記憶されたデータに影響を与えるいかなるコマンドも選別するように構成され、前記第２のコマンドはＷＯＲＭストレージデバイスに記憶されないことを特徴とする請求項２に記載の方法。
【請求項４】
前記コマンドフィルターが、少なくともＥＲＡＳＥとＦＯＲＭＡＴとＷＲＩＴＥ動作に関するコマンドを選別するように構成されていることを特徴とする請求項３に記載の方法。
【請求項５】
前記コマンドがコマンドデスクリプタブロックであること特徴とする請求項３に記載の方法。
【請求項６】
前記ストレージサブシステムと前記ストレージシステムが同じであって、
サブシステム構成の設定が変更された場合は常に、前記ＷＯＲＭストレージデバイスにサブシステム構成ファイルを書き込むステップを、さらに有することを特徴とする請求項２に記載の方法。
【請求項７】
前記ストレージサブシステムが、ＷＯＲＭストレージエリアとして定義されたストレージエリアを有するディスクアレイユニットであり、前記サブシステム構成ファイルが定められたストレージデバイス上のデータが変更されていないことを確かめるため、あるいは監査中に論理ボリュームの物理アドレスを識別するために用いられることを特徴とする請求項２に記載の方法。
【請求項８】
前記コマンドフィルターが、前記ストレージサブシステムにおいて、予め定められたストレージエリアに向けられたコマンドを選別するために構成され、該予め定められたストレージエリアがＷＯＲＭストレージエリアとして定義されることを特徴とする請求項２に記載の方法。
【請求項９】
全てのコマンドの少なくとも一部が、前記ＷＯＲＭデバイスに記憶されることを特徴とする請求項１に記載の方法。
【請求項１０】
前記第１のコマンドに追い番を対応付けるステップと、
前記追い番を前記ＷＯＲＭストレージデバイスに記憶するステップと、
をさらに有することを特徴とする請求項１に記載の方法。
【請求項１１】
前記第１のコマンドにタイムスタンプを対応付けるステップと、
前記タイムスタンプを前記ＷＯＲＭストレージデバイスに記憶するステップと、
をさらに有することを特徴とする請求項１０に記載の方法。
【請求項１２】
前記ＷＯＲＭストレージデバイスは前記ストレージサブシステムが受信した複数のコマンドを表す複数のレコードを含んでおり、前記各コマンドは追い番が付けられ、前記追い番は前記ストレージサブシステムの監査を行う前に前記コマンドを指定された順序で分類するために用いることを特徴とする請求項１０に記載の方法。
【請求項１３】
データアーカイバル機能を提供する方法において、
ストレージサブシステムに向けられ、該ストレージサブシステムのストレージエリアに記憶されたデータの内容に影響を与える形式であるコマンドの少なくとも一部を追記式（ＷＯＲＭ）ストレージデバイスに記憶するステップと、
前記コマンドを決められた順序で分類するために有用である追い番を前記各コマンドに付けるステップと、
を有し、
前記ＷＯＲＭストレージデバイスは、前記コマンドの少なくとも一部と前記追い番を含んでいる複数のコマンドレコードを含んでおり、
前記コマンドレコードは、ストレージサブシステムがＷＯＲＭの保全性を維持しているか否かを確かめるために有用である、
ことを特徴とする方法。
【請求項１４】
前記ＷＯＲＭストレージデバイスはホストコンピュータに接続されており、
ストレージサブシステムのＷＯＲＭ保全性を証明するために監査を行うホストコンピュータからＷＯＲＭデバイスを切り離すステップをさらに有し、
前記複数のコマンドレコードは前記監査を行う前に前記追い番を用いて分類されることを特徴とする請求項１３に記載の方法。
【請求項１５】
前記ストレージサブシステムへ向けられたコマンドが、予め定められた基準により選別されることを特徴とする請求項１３に記載の方法。
【請求項１６】
前記コマンドに対応するオペレーションコード、あるいは前記コマンドに対応する論理ユニット番号を調べることにより、前記コマンドが選別されることを特徴とする請求項１５に記載の方法。
【請求項１７】
ストレージシステムを監査する方法において、
レコードに対応した追い番を用いて追記型（ＷＯＲＭ）ストレージデバイスに記憶されていて、ストレージサブシステムへ送られたコマンド上の情報を含んでいる複数のレコードを分類するステップと、
前記コマンドが向けられたストレージエリアのアドレスを検索するために前記レコードの一つについて前記コマンド上の情報を調べるステップと、
前記ストレージサブシステムの複数のストレージエリアのビットマップから前記ストレージエリアに関するエントリーを取得するステップと、
取得した前記エントリーを用いてＷＯＲＭ違反の表示があるか否かを判定するステップと、
からなることを特徴とする方法。
【請求項１８】
前記判定のステップの結果を監査者に報告するステップと、
前記ビットマップの前記エントリーを更新するステップと、をさらに有し、
前記コマンドに関わる前記情報が前記コマンドであることを特徴とする請求項１７に記載の方法。
【請求項１９】
前記ＷＯＲＭストレージデバイスはホストコンピュータあるいは前記ストレージサブシステムから受け取られることを特徴とする請求項１７に記載の方法。
【請求項２０】
ホストコンピュータからの、コマンドを含んでいるデータリクエストを処理するコントローラと、
予め定められた選別基準を満たすコマンドを選択するコマンドフィルターと、
前記コマンドフィルターにより選択された前記コマンドの少なくとも一部を記憶する追記式（ＷＯＲＭ）ストレージデバイスと、
データをアーカイブするＷＯＲＭストレージエリアとして定義される少なくとも一つのストレージエリアと、
を備えることを特徴とするアーカイバルシステム。
【請求項２１】
前記アーカイバルシステムがストレージサブシステムとホストを含むことを特徴とする請求項２０に記載のアーカイバルシステム。
【請求項２２】
前記ＷＯＲＭデバイスが前記ストレージサブシステムに結合されていることを特徴とする請求項２１に記載のアーカイバルシステム。
【請求項２３】
前記アーカイバルシステムがストレージサブシステムであることを特徴とする請求項２０に記載のアーカイバルシステム。
【請求項２４】
前記ＷＯＲＭデバイスに記憶された情報を読み出すＷＯＲＭデバイスリーダと、前記ＷＯＲＭデバイスから読み出された前記情報を調べるコマンドチェッカーとを含むターミナルシステムをさらに備えることを特徴とする請求項２０に記載のアーカイバルシステム。
【請求項２５】
ストレージサブシステムにおいてホストからの第１のコマンドを受信するためのプログラムコードと、
予め定められた基準を用いて前記第１のコマンドを調べるためのプログラムコードと、
前記第１のコマンドが前記予め定められた基準を満たしていることを判定して、前記ストレージサブシステムに結合したＷＯＲＭストレージデバイス上に前記第１のコマンドの少なくとも一部を記憶するためのプログラムコードと、
前記ストレージサブシステムにおいて前記ホストから第２のコマンドを受信するためのプログラムコードと、
前記予め定められた基準を用いて前記第２のコマンドを調べるためのプログラムコードと、
前記第２のコマンドが前記予め定められた基準を満たさないと判定された場合は、前記第２のコマンドのいかなる部分も記憶しないためのプログラムコードと、
を有することを特徴とするコンピュータプログラムを、アーカイバル機能を検査するために備えるコンピュータで読み出し可能な媒体。
【請求項２６】
ホストコンピュータからの、コマンドを含んでいるデータリクエストを処理する手段と、
選別されたコマンドを取得するために予め定められた選別基準を用いてコマンドを選別する手段と、
追記式（ＷＯＲＭ）ストレージデバイスに前記選別されたコマンドを記憶する手段と、
前記ＷＯＲＭストレージデバイスに記憶されている前記選別されたコマンドに追い番を結合させる手段と、
を備えることを特徴とするアーカイバルシステム。
【請求項２７】
ホストコンピュータからの、コマンドを含んでいるデータリクエストを処理するコントローラと
予め定められた選別基準を満たすコマンドを選択するコマンドフィルターと、
前記コマンドフィルターにより選択された前記コマンドの少なくとも一部を追記式（ＷＯＲＭ）ストレージデバイスに記憶することが出来るＷＯＲＭデバイスライターと、を備えることを特徴とするディスクストレージシステム。
【請求項２８】
前記コマンドが前記ＷＯＲＭストレージデバイスのＷＯＲＭ保全性を証明するために用いられることを特徴とする請求項２７に記載のシステム。
【請求項２９】
前記コマンドが論理ボリュームの物理アドレスを識別するために用いられることを特徴とする請求項２７に記載のシステム。
【請求項３０】
論理ボリュームに関する物理アドレスが構成テーブルを用いて識別されることを特徴とする請求項２７に記載のシステム。
【請求項３１】
前記ＷＯＲＭストレージデバイスに保存されたサブシステム構成コマンドがシステムのＷＯＲＭ保全性を確認するために調べられることを特徴とする請求項２７に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
0001  本発明はストレージシステムに係わり、さらに詳細には高信頼性のデータアーカイブ機能を持つように構成されたストレージシステムに係わる。
【背景技術】
【０００２】
0002  データアーカイブとは特定のバージョンのデータ（たとえばレコードを保存する目的など）を長期に亘り保存する行為である。データセットは、ユーザあるいはデータ処理管理者によるコマンドによって、アーカイブストレージに記憶される。アーカイブデータセットは法的な目的とかデータ処理企業にとっての他の重要性の理由でしばしば保存される。したがって、一旦データが書き込まれたあとは、アーカイブデータが変更されたり、改竄されたり、書き替えられたりしていないことを検証することが可能でなければならない。データの証明あるいは保証を行う方法の一つは追記型（Write Once Read Many-WORM）技術を用いることである。
【０００３】
0003  用語が意味するように、ＷＯＲＭ技術においてはデータは記憶媒体、たとえば光ストレージデバイスとかＷＯＲＭディスクに１回だけ書き込まれる。このようなＷＯＲＭディスクは、たとえば高出力のレーザビームを用いて媒体上に小さな孔を形成し、媒体の表面の反射を変えることによる書き込みで、媒体を物理的にかつ永久的に変調するので、一般に１回だけ書き込みが可能である。読み出しプロセスでは、その後は低出力ビームを媒体上に当てて低出力ビームの反射を検出することで、記憶された情報を繰り返し読み出すことが可能になる。
【０００４】
0004  ＷＯＲＭ技術は、政府の新しい規則により、企業がある種のビジネスの記録を、書き替え不能、消去不能なフォーマットで保存することが必要になったので、さらに重要になってきた。たとえば、米国証券取引委員会は、最近、証券取引法１９３４規則１７ａ−４に基づき証券業者が顧客との通信の記録を、書き替え不能、消去不能なフォーマットで保存することを要求した。全米証券業者協会（ＮＡＳＤ）は規則３０１０と３１１０において同様な規定を施行している。これらの通信は電子メールやインスタントメッセージやボイスメッセージを含み膨大な量のデータを構成している。
【発明の開示】
【発明が解決しようとする課題】
【０００５】
0005  ＷＯＲＭ記憶手順を提供する一つの手段は、ある特定のファイルを再書き込み不可として指定できるＵＮＩＸ（ＵＮＩＸは登録商標です）における「chmod」のようなファイルシステムの変更モード機能を用いることである。しかしながら、この方法は、それが一般に利用できるソフトウエアに基づいているので、監査人に十分には信頼されるものではない。
【０００６】
0006  この方法ではファイル毎にモードを変更するなどユーザに相当の管理的な負荷を掛けてしまう。
【０００７】
0007  代わって、たとえばＣＤ−ＲＯＭやＤＶＤ−ＲＯＭなどのＷＯＲＭストレージデバイスが使用されることになる。しかしながら、これらのＷＯＲＭデバイスは一般に高速書き込みが出来ない。もしこれらを顧客と会社間の通信に求められるアーカイブに使用されると、相当な性能的な遅れが発生してしまう。
【０００８】
0008  もう一つの方法は内部的にＷＯＲＭ機能を持たせたディスクアレイストレージユニットを用いることである。このようなストレージユニットはＷＯＲＭ機能を持つコントローラの内部にマイクロプログラムを備えている。この方法では、監査人により信頼されるよう、ユーザがアクセス出来ない特殊なソフトウエアプログラムを使用しているであろう。しかしながら、この方法では高い開発費が必要になる。
【０００９】
0009  したがって、信用度が高く、管理が容易で、性能的な影響が限定的で、実施費用が安いＷＯＲＭアーカイブシステム、特にＷＯＲＭの保証あるいは証明の機能を可能にするシステムを提供することが望ましい。
【課題を解決するための手段】
【００１０】
0010  本発明の一実施例においては、ストレージシステムは予め定められた基準によりＩ／Ｏリクエストから特定のコマンドを選別するコマンドフィルターを備えている。選別されたコマンドはＷＯＲＭデバイスに書き込まれる。選別されたコマンドに関連するデータは、もし存在しても、ストレージシステムの性能に対する影響を最小にするためにＷＯＲＭデバイスには記憶されない。ＷＯＲＭデバイスに記録された各コマンドは追い番とタイムスタンプが付いている。コマンドチェッカーはストレージシステムあるいはその特定の領域がＷＯＲＭの保全性を維持しているか否かを判定するチェックを行う。
【００１１】
0011  本発明の一実施例では、追記型（ＷＯＲＭ）機能を提供するように構成されたストレージシステムを稼働させる方法は、ホストから第１のコマンドをストレージサブシステムで受信することを含んでいる。 少なくとも、第１のコマンドの一部はストレージサブシステムと結合したＷＯＲＭストレージデバイス上に記憶される。ＷＯＲＭストレージデバイスはストレージシステムのＷＯＲＭ機能を検証するために用いられる。第２のコマンドはストレージサブシステムで受信される。第２のコマンドは、特定の形式のコマンドを選定するように予め定められた基準が与えられているフィルターであるコマンドフィルターを用いて検査される。 第２のコマンドが予め定められた基準に合致するならば、少なくとも第２のコマンドの一部は記憶される。
【００１２】
0012  本発明の一実施例では、データアーカイブ機能を提供する方法は、追記型（ＷＯＲＭ）ストレージデバイスにおけるストレージサブシステムへ向けられ、ストレージサブシステムのストレージエリアに記憶されたデータの内容に影響を与える形式のものである、コマンドの少なくとも一部を記憶することと、与えられた順序でコマンドを分類するのに役立つ追い番を各コマンドに付加することとを含んでおり、ＷＯＲＭストレージデバイスはコマンドの少なくとも一部と追い番を含んでいる複数のコマンドレコードを含んでおり、そのコマンドレコードはストレージサブシステムがＷＯＲＭの保全性を保持しているか否かを検証するのに役立つ。
【００１３】
0013  本発明の他の実施例では、ストレージシステムを検証する方法は、ストレージサブシステムへ送られたコマンド上の情報を各々が含んでいるレコードに関連した追い番を用いて追記型（ＷＯＲＭ）ストレージデバイスに記憶されている複数のレコードを分類することと、コマンドが向けられたストレージエリアのアドレスを検索するためにレコードの一つについてコマンド上の情報を調べることと、ストレージサブシステムの複数のストレージエリアのビットマップからストレージエリアに関するエントリーを取得することと、取得したエントリーを用いてＷＯＲＭ違反の表示があるか否かを判定することとを含んでいる。
【００１４】
0014  本発明の他の実施例では、アーカイバルシステムは、ホストコンピュータからのコマンドを含むデータリクエストを処理するコントローラと、予め定められた選別基準を満たすコマンドを選別するコマンドフィルターと、コマンドフィルターで選択されたコマンドの少なくとも一部を記憶する追記型（ＷＯＲＭ）ストレージデバイスと、デ―タをアーカブするＷＯＲＭストレージエリアとして定義された少なくとも１個のストレージエリアとを含んでいる。
【００１５】
0015  本発明のその他の実施例では、コンピュータで読み出し可能な媒体は、アーカイバル機能を検証するコンピュータプログラムを含んでいる。コンピュータプログラムは、ホストからの第１のコマンドをストレージサブシステムにおいて受信するためのプログラムコードと、予め定められた基準を用いて第１のコマンドを調べるプログラムコードと、第１のコマンドが予め定められた基準を満たしていることを判定してストレージサブシステムに結合したＷＯＲＭストレージデバイス上に第１のコマンドの少なくとも一部を記憶するプログラムコードと、ストレージサブシステムにおいてホストから第２のコマンドを受信するプログラムコードと、予め定められた基準を用いて第２のコマンドを調べ、第２のコマンドが予め定められた基準を満たさないと判定された場合は第２のコマンドの如何なる部分も記憶しないプログラムコードとを含んでいる。
【００１６】
0016  本発明のさらに他の実施例では、アーカイバルシステムは、コマンドを含んでいるホストコンピュータからのデータリクエストを処理する手段と、選別されたコマンドを取得するために予め定められた選別基準を用いてコマンドを選別する手段と、追記式（ＷＯＲＭ）ストレージデバイスに選別されたコマンドを記憶する手段と、ＷＯＲＭストレージデバイスに記憶されている選別されたコマンドに追い番を結合させる手段とを含む。
【発明の効果】
【００１７】
本発明の一実施例においては、ストレージシステムは予め定められた基準によりＩ／Ｏリクエストから特定のコマンドを選別するコマンドフィルターを備えている。選別されたコマンドはＷＯＲＭデバイスに書き込まれる。コマンドチェッカーはストレージシステムあるいはその特定の領域がＷＯＲＭの保全性を維持しているか否かを判定するチェックを行う。
【００１８】
本発明の一実施例では、追記型（ＷＯＲＭ）機能を提供するように構成されたストレージシステムを稼働させる方法は、ホストから第１のコマンドをストレージサブシステムで受信することを含んでいる。 少なくとも、第１のコマンドの一部はストレージサブシステムと結合したＷＯＲＭストレージデバイス上に記憶される。ＷＯＲＭストレージデバイスはストレージシステムのＷＯＲＭ機能を検証するために用いられる。第２のコマンドはストレージサブシステムで受信される。第２のコマンドは、特定の形式のコマンドを選定するように予め定められた基準が与えられているフィルターであるコマンドフィルターを用いて検査される。第２のコマンドが予め定められた基準に合致するならば、少なくとも第２のコマンドの一部は記憶される。
【００１９】
本発明の一実施例では、データアーカイブ機能を提供する方法は、追記型（ＷＯＲＭ）ストレージデバイスにおけるストレージサブシステムへ向けられ、ストレージサブシステムのストレージエリアに記憶されたデータの内容に影響を与える形式のものである、コマンドの少なくとも一部を記憶することと、与えられた順序でコマンドを分類するのに役立つ追い番を各コマンドに付加することとを含んでおり、ＷＯＲＭストレージデバイスはコマンドの少なくとも一部と追い番を含んでいる複数のコマンドレコードを含んでおり、そのコマンドレコードはストレージサブシステムがＷＯＲＭの保全性を保持しているか否かを検証するのに役立つ。
【００２０】
本発明の他の実施例では、ストレージシステムを検証する方法は、ストレージサブシステムへ送られたコマンド上の情報を各々が含んでいるレコードに関連した追い番を用いて追記型（ＷＯＲＭ）ストレージデバイスに記憶されている複数のレコードを分類することと、コマンドが向けられたストレージエリアのアドレスを検索するためにレコードの一つについてコマンド上の情報を調べることと、ストレージサブシステムの複数のストレージエリアのビットマップからストレージエリアに関するエントリーを取得することと、取得したエントリーを用いてＷＯＲＭ違反の表示があるか否かを判定することとを含んでいる。
【００２１】
本発明の他の実施例では、アーカイバルシステムは、ホストコンピュータからのコマンドを含むデータリクエストを処理するコントローラと、予め定められた選別基準を満たすコマンドを選別するコマンドフィルターと、コマンドフィルターで選択されたコマンドの少なくとも一部を記憶する追記型（ＷＯＲＭ）ストレージデバイスと、デ―タをアーカブするＷＯＲＭストレージエリアとして定義された少なくとも１個のストレージエリアとを含んでいる。
【００２２】
本発明のその他の実施例では、コンピュータで読み出し可能な媒体は、アーカイバル機能を検証するコンピュータプログラムを含んでいる。コンピュータプログラムは、ホストからの第１のコマンドをストレージサブシステムにおいて受信するためのプログラムコードと、予め定められた基準を用いて第１のコマンドを調べるプログラムコードと、第１のコマンドが予め定められた基準を満たしていることを判定してストレージサブシステムに結合したＷＯＲＭストレージデバイス上に第１のコマンドの少なくとも一部を記憶するプログラムコードと、ストレージサブシステムにおいてホストから第２のコマンドを受信するプログラムコードと、予め定められた基準を用いて第２のコマンドを調べ、第２のコマンドが予め定められた基準を満たさないと判定された場合は第２のコマンドの如何なる部分も記憶しないプログラムコードとを含んでいる。
【００２３】
本発明のさらに他の実施例では、アーカイバルシステムは、コマンドを含んでいるホストコンピュータからのデータリクエストを処理する手段と、選別されたコマンドを取得するために予め定められた選別基準を用いてコマンドを選別する手段と、追記式（ＷＯＲＭ）ストレージデバイスに選別されたコマンドを記憶する手段と、ＷＯＲＭストレージデバイスに記憶されている選別されたコマンドに追い番を結合させる手段とを含む。
【発明を実施するための最良の形態】
【００２４】
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 StorageＴＭ」である。したがって、実際のＷＯＲＭデバイス（たとえばＣＤ−ＲＯＭ）は不要である。
【００３９】
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 000003
【図２】
2005301979.tif 000004
【図３】
2005301979.tif 000005
【図４】
2005301979.tif 000006
【図５】
2005301979.tif 000007
【図６】
2005301979.tif 000008
【外国語明細書】
2005301979.tif 000009
2005301979.tif 000010
2005301979.tif 000011
2005301979.tif 000012
2005301979.tif 000013
2005301979.tif 000014
2005301979.tif 000015
2005301979.tif 000016
2005301979.tif 000017
2005301979.tif 000018
2005301979.tif 000019
2005301979.tif 000020
2005301979.tif 000021
2005301979.tif 000022
2005301979.tif 000023
2005301979.tif 000024
2005301979.tif 000025
2005301979.tif 000026
2005301979.tif 000027
2005301979.tif 000028
【図１】
2005301979.tif 000029
【図２】
2005301979.tif 000030
【図３】
2005301979.tif 000031
【図４】
2005301979.tif 000032
【図５】
2005301979.tif 000033
【図６】
2005301979.tif 000034