(57)【特許請求の範囲】
【請求項１】
複数の不揮発性ストレージデバイスにそれぞれ同一のデータを保存するデータストレージユニットのデータの保存方法であって、
前記データストレージユニットは、
前記データストレージユニットに対する許可のないアクセスを検出するセンサと、
前記複数の不揮発性ストレージデバイスおよび前記センサを制御する処理ユニットと、
電源に障害が発生した場合に、前記複数の不揮発性ストレージデバイスと、前記センサと、前記処理ユニットとに対して電力を供給可能なバックアップ電源と、を備え、
前記処理ユニットは、前記電源に障害が発生した場合に、
前記バックアップ電源から前記データストレージユニットへの電力の供給を開始する工程と、
前記複数の不揮発性ストレージデバイスへの前記データの書き込みおよび前記複数の不揮発性ストレージデバイスからの前記データの読み出しを禁止する工程と、
前記センサにより前記データストレージユニットに対するアクセスを検出する工程と、
前記データストレージユニットに対するアクセスが検出された場合に、所定の値を前記複数の不揮発性ストレージデバイスに保存されている前記データに上書きすることによって前記複数の不揮発性ストレージデバイスに保存されている前記データを消去する工程と、
を含むことを特徴とするデータの保存方法。
【請求項２】
前記所定の値を前記複数の不揮発性ストレージデバイスに保存されている前記データに上書きする工程は、前記所定の値として００Ｈを前記複数の揮発性ストレージデバイスに保存されている前記データに上書きすることを特徴とする請求項１に記載のデータの保存方法。
【請求項３】
前記不揮発性ストレージデバイスは、さらに、前記データに関連するファイルディレクトリエントリを保存し、
前記処理ユニットが、さらに、消去された前記データに関連する前記ファイルディレクトリエントリを前記不揮発性ストレージデバイスから消去する工程を含むことを特徴とする請求項１または２に記載のデータの保存方法。
【請求項４】
前記処理ユニットが、さらに、前記電源の障害が回復した後、前記複数の不揮発性ストレージデバイスへの前記データの書き込みおよび前記複数の不揮発性ストレージデバイスからの前記データの読み出しを許可する工程を含むことを特徴とする請求項１から３のいずれか一に記載のデータの保存方法。
【請求項５】
複数の不揮発性ストレージデバイスにそれぞれ同一のデータを保存するデータストレージユニットであって、
前記データストレージユニットに対する許可のないアクセスを検出するセンサと、
前記複数の不揮発性ストレージデバイスおよび前記センサを制御する処理ユニットと、
電源に障害が発生した場合に、前記複数の不揮発性ストレージデバイスと、前記センサと、前記処理ユニットとに対して電力を供給可能なバックアップ電源と、を備え、
前記処理ユニットは、前記電源に障害が発生した場合に、
前記バックアップ電源から前記データストレージユニットへの電力の供給を開始し、
前記複数の不揮発性ストレージデバイスに対する前記データの書き込みおよび前記複数の不揮発性ストレージデバイスからの前記データの読み出しを禁止し、
前記センサにより前記データストレージユニットに対するアクセスを検出し、
前記データストレージユニットに対するアクセスが検出された場合に、所定の値を前記複数の不揮発性ストレージデバイスに保存されている前記データに上書きすることによって前記複数の不揮発性ストレージデバイスに保存されている前記データを消去することを特徴とするデータストレージユニット。
【請求項６】
前記処理ユニットは、前記所定の値として００Ｈを前記複数の不揮発性ストレージデバイスに保存されている前記データに上書きすることを特徴とする請求項５に記載のデータストレージユニット。
【請求項７】
前記不揮発性ストレージデバイスは、さらに、前記データに関連するファイルディレクトリエントリを保存し、
前記処理ユニットは、さらに、前記データに関連する前記ファイルディレクトリエントリを前記不揮発性ストレージデバイスから消去することを特徴とする請求項５または６に記載のデータストレージユニット。
【請求項８】
前記処理ユニットは、さらに、前記電源の障害が回復した後、前記複数の不揮発性ストレージデバイスに対する前記データの書き込みおよび前記複数の不揮発性ストレージデバイスからの前記データの読み出しを許可することを特徴とする請求項５から７のいずれか一に記載のデータストレージユニット。
【請求項９】
複数の不揮発性ストレージデバイスにそれぞれ同一のデータを保存するデータストレージユニットに前記データを保存するための一以上の命令の一以上のシーケンスを有するコンピュータ読み取り可能な記録媒体であって、
前記データストレージユニットは、
前記データストレージユニットに対する許可のないアクセスを検出するセンサと、
前記複数の不揮発性ストレージデバイスおよび前記センサを制御する処理ユニットと、
電源に障害が発生した場合に、前記複数の不揮発性ストレージデバイスと、前記センサと、前記処理ユニットとに対して電力を供給可能なバックアップ電源と、を備え、
前記一以上の命令の一以上のシーケンスは、一以上のプロセッサで実行される場合に、前記一以上のプロセッサに対し、
前記処理ユニットが、前記電源に障害が発生した場合に、
前記バックアップ電源から前記データストレージユニットへの電力の供給を開始する手順と、
前記複数の不揮発性ストレージデバイスに対する前記データの書き込みおよび前記複数の不揮発性ストレージデバイスからの前記データの読み出しを禁止する手順と、
前記センサにより前記データストレージユニットに対するアクセスを検出する手順と、
前記データストレージユニットに対するアクセスが検出された場合に、所定の値を前記複数の不揮発性ストレージデバイスに保存されている前記データに上書きすることによって前記複数の不揮発性ストレージデバイスに保存されている前記データを消去する手順と、
を実行させる命令を含むことを特徴とするコンピュータ読み取り可能な記録媒体。
【請求項１０】
前記処理ユニットが、前記所定の値を前記複数の不揮発性ストレージデバイスに保存されている前記データに上書きする手順は、前記所定の値として００Ｈを前記複数の不揮発性ストレージデバイスに保存されている前記データに上書きする手順を実行させる命令を含むことを特徴とする請求項９に記載のコンピュータ読み取り可能な記録媒体。
【請求項１１】
前記不揮発性ストレージデバイスは、さらに、前記データに関連するファイルディレクトリエントリを保存し、
前記処理ユニットが、さらに、前記データに関連する前記ファイルディレクトリエントリを前記不揮発性ストレージデバイスから消去する手順を実行させる命令を含むことを特徴とする請求項９または１０に記載のコンピュータ読み取り可能な記録媒体。
【請求項１２】
前記処理ユニットが、さらに、前記電源の障害が回復した後、前記複数の不揮発性ストレージデバイスに対する前記データの書き込みおよび前記複数の不揮発性ストレージデバイスからの前記データの読み出しを許可する手順を実行させる命令を含むことを特徴とする請求項９から１１のいずれか一に記載のコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明はデータストレージシステムに関し、より詳細には、ファイルの保全性および安全性を保障する、データの保存方法、データストレージユニット、およびコンピュータ読み取り可能な記録媒体に関する。
【０００２】
【従来の技術および発明が解決しようとする課題】
大部分のコンピュータシステムは、データを保存・保持するために任意の種類の不揮発性ストレージ（non-volatile storage）を含んでいる。不揮発性ストレージは、電源がオフにされた場合であっても、その保存内容を保持することが可能な記憶媒体を提供するものである。なお、不揮発性ストレージの一般的な例には、フロッピー・ディスク，ハードディスクおよびテープ等が含まれる。
【０００３】
大部分の種類の不揮発性ストレージは、特に冗長ストレージ（redundant storage ）が使用される場合に比較的高い信頼性を提供する。また、不揮発性ストレージの性能は、不揮発性ストレージの種類に応じて大きく変化する。たとえばハードディスクは、従来より、アクセススピードの点においてフロッピー・ディスクやテープより高い性能を示す。また、不揮発性ストレージにデータを保存する際に使用されるプロセスは一般的に非破壊的なもの（たとえば記憶媒体を破壊して情報を保存するものではない）であるため、大部分の種類の不揮発性ストレージについては再利用することが可能である（たとえば、データを何度も書き込むことが可能）。
【０００４】
ところで、データファイル形式のデータを不揮発性ストレージから削除しようとする場合、不揮発性ストレージにおいてはデータファイルに関連するディレクトリ情報が単に更新されるだけであり、データファイルそのものは変更されていないことが通常である。たとえば、多くのコンピュータシステム上におけるデータファイルの削除処理は、ファイルディレクトリまたはファイルアロケーションテーブルからファイル名を削除することによって実行される。これにより、他のデータを保存するために利用されるデータファイルで占有可能な記憶位置が作成される。
【０００５】
しかしながら、そのデータファイルは不揮発性ストレージ上に未だ存在しており、他のデータをそのデータファイルに上書してしまわない限り、そのデータファイルは回復可能な状態にある。したがって、このアプローチは、特定のデータのコピーがオリジナルコピー（原本）であるか否かを知ることを困難にすると共に、第三者によるデータの取得行為に対してデータを無抵抗なものにしてしまう。
【０００６】
さらに、別の種類の不揮発性ストレージとして、データの書き込みは１回だけであるが、必要な回数読み出しできるようにしたものがある。この種類の不揮発性ストレージは、通常、ＷＯＲＭ（write once, read many ）記憶媒体と呼ばれている。このＷＯＲＭ不揮発性ストレージデバイスの一般的な例としては、光ディスクがある。この種類の記憶媒体は、たとえば医学的な記録やビジネスの記録のように一度だけ書き込まれ、複数回読み出されることがあるようなデータをアーカイブするために有効である。したがって、ＷＯＲＭ不揮発性ストレージデバイスにおいては、データの更新または上書きが不可能であることから、特定のデータのコピーがオリジナルコピー（原本）であるということが保証される。
【０００７】
しかしながら、ＷＯＲＭシステムおよび従来のリード／ライト（読み出し／書き込み）ストレージシステムには、データの変更に対して無防備であるという不都合な点がある。あるデータのユーザにとっては、そのデータを使用する際に、そのデータがオリジナル（原本）であるか、未知のソースによって変更されたものであるかについては知る由もない。たとえば、ディスクストレージサブシステムにおいては、権限のない者であってもディスクドライブを取り去り、また、ディスクドライブに保存されている情報を変更し、横取りし、またはコピーすることが可能である。
【０００８】
加えて、ストレージシステムに保存されている情報は、長時間経過すると保存しておくには好ましくないものとなってしまうことがある。したがって、ある状況において、古い情報を期限切れにし（たとえばストレージシステムから削除し）、利用できないようにするための方法を準備しておくことが好ましい。このような情報の例としては会社の記録がある。この会社の記録は、会社の方針に従ってたとえば５年後に廃棄される。
【０００９】
このように、データを安全に保存・保持する必要性と従来のアプローチの限界に基づけば、特定のデータのコピーが原本であるという比較的高い保証を与えることが可能なデータの保存方法の実現が非常に望まれる。
【００１０】
【課題を解決するための手段】
前述した必要性および目的や、以下の説明によって明らかにされる他の必要性および目的は、その一面としてデータ保存方法を含む本発明において満たされ、かつ実現される。このデータ保存方法は、データのセットを第１の不揮発性ストレージデバイスに保存する工程と、そのデータのセットのコピーを第２の不揮発性ストレージデバイスに保存する工程と、第１の不揮発性ストレージデバイスに障害が発生した場合に、所定の値を第１の不揮発性ストレージデバイスに保存されているデータに上書きすることによって第１の不揮発性ストレージデバイスからデータを消去する工程と、を含むものである。
【００１１】
本発明の他の面によれば、データを保存するデータストレージユニットが提供される。データストレージユニットは、第１の不揮発性ストレージデバイスと、第１の不揮発性ストレージユニットに通信できるように接続された処理ユニットとを備え、処理ユニットが、データを第１の不揮発性ストレージデバイスに保存し、そのデータのコピーを第２の不揮発性ストレージデバイスに保存し、そして、第１の不揮発性ストレージデバイスに障害が発生したか否かを判定し、障害が発生したと判定した場合に、所定の値をそのデータに上書きすることによってそのデータを削除するように構成されたものである。
【００１２】
すなわち、請求項１のデータの保存方法は、複数の不揮発性ストレージデバイスにそれぞれ同一のデータを保存するデータストレージユニットのデータの保存方法であって、前記データストレージユニットは、前記データストレージユニットに対する許可のないアクセスを検出するセンサと、前記複数の不揮発性ストレージデバイスおよび前記センサを制御する処理ユニットと、電源に障害が発生した場合に、前記複数の不揮発性ストレージデバイスと、前記センサと、前記処理ユニットとに対して電力を供給可能なバックアップ電源と、を備え、前記処理ユニットは、前記電源に障害が発生した場合に、前記バックアップ電源から前記データストレージユニットへの電力の供給を開始する工程と、前記複数の不揮発性ストレージデバイスへの前記データの書き込みおよび前記複数の不揮発性ストレージデバイスからの前記データの読み出しを禁止する工程と、前記センサにより前記データストレージユニットに対するアクセスを検出する工程と、前記データストレージユニットに対するアクセスが検出された場合に、所定の値を前記複数の不揮発性ストレージデバイスに保存されている前記データに上書きすることによって前記複数の不揮発性ストレージデバイスから前記データを消去する工程と、を含むものである。
【００１３】
また、請求項２のデータの保存方法は、請求項１に記載のデータの保存方法において、前記所定の値を前記複数の不揮発性ストレージデバイスに保存されている前記データに上書きする工程は、前記所定の値として００Ｈを前記複数の不揮発性ストレージデバイスに保存されている前記データに上書きするものである。
【００１４】
また、請求項３のデータの保存方法は、請求項１または２に記載のデータの保存方法において、前記不揮発性ストレージデバイスは、さらに、前記データに関連するファイルディレクトリエントリを保存し、前記処理ユニットが、さらに、消去された前記データに関連する前記ファイルディレクトリエントリを前記不揮発性ストレージデバイスから消去する工程を含むものである。
【００１５】
また、請求項４のデータの保存方法は、請求項１から３のいずれか一に記載のデータの保存方法において、前記処理ユニットが、さらに、前記電源の障害が回復した後、前記複数の不揮発性ストレージデバイスへの前記データの書き込みおよび前記複数の不揮発性ストレージデバイスからの前記データの読み出しを許可する工程を含むものである。
【００１６】
また、請求項５のデータストレージユニットは、複数の不揮発性ストレージデバイスにそれぞれ同一のデータを保存するデータストレージユニットであって、前記データストレージユニットに対する許可のないアクセスを検出するセンサと、前記複数の不揮発性ストレージデバイスおよび前記センサを制御する処理ユニットと、電源に障害が発生した場合に、前記複数の不揮発性ストレージデバイスと、前記センサと、前記処理ユニットとに対して電力を供給可能なバックアップ電源と、を備え、前記処理ユニットは、前記電源に障害が発生した場合に、前記バックアップ電源から前記データストレージユニットへの電力の供給を開始し、前記複数の不揮発性ストレージデバイスに対する前記データの書き込みおよび前記複数の不揮発性ストレージデバイスからの前記データの読み出しを禁止し、前記センサにより前記データストレージユニットに対するアクセスを検出し、前記データストレージユニットに対するアクセスが検出された場合に、所定の値を前記複数の不揮発性ストレージデバイスに保存されている前記データに上書きすることによって前記複数の不揮発性ストレージデバイスに保存されている前記データを消去するように構成されているものである。
【００１７】
また、請求項６のデータストレージユニットは、請求項５に記載のデータストレージユニットにおいて、前記処理ユニットは、前記所定の値として００Ｈを前記複数の不揮発性ストレージデバイスに保存されている前記データに上書きするように構成されているものである。
【００１８】
また、請求項７のデータストレージユニットは、請求項５または６に記載のデータストレージユニットにおいて、前記不揮発性ストレージデバイスは、さらに、前記データに関連するファイルディレクトリエントリを保存し、前記処理ユニットは、さらに、前記データに関連する前記ファイルディレクトリエントリを前記不揮発性ストレージデバイスから消去するように構成されているものである。
【００１９】
また、請求項８のデータストレージユニットは、請求項５から７のいずれか一に記載のデータストレージユニットにおいて、前記処理ユニットは、さらに、前記電源の障害が回復した後、前記複数の不揮発性ストレージデバイスに対する前記データの書き込みおよび前記複数の不揮発性ストレージデバイスからの前記データの読み出しを許可するように構成されているものである。
【００２０】
また、請求項９のコンピュータ読み取り可能な記録媒体は、複数の不揮発性ストレージデバイスにそれぞれ同一のデータを保存するデータストレージユニットに前記データを保存するための一以上の命令の一以上のシーケンスを有するコンピュータ読み取り可能な記録媒体であって、前記データストレージユニットは、前記データストレージユニットに対する許可のないアクセスを検出するセンサと、前記複数の不揮発性ストレージデバイスおよび前記センサを制御する処理ユニットと、電源に障害が発生した場合に、前記複数の不揮発性ストレージデバイスと、前記センサと、前記処理ユニットとに対して電力を供給可能なバックアップ電源と、を備え、前記一以上の命令の一以上のシーケンスは、一以上のプロセッサで実行される場合に、前記一以上のプロセッサに対し、前記処理ユニットが、前記電源に障害が発生した場合に、前記バックアップ電源から前記データストレージユニットへの電力の供給を開始する手順と、前記複数の不揮発性ストレージデバイスに対する前記データの書き込みおよび前記複数の不揮発性ストレージデバイスからの前記データの読み出しを禁止する手順と、前記センサにより前記データストレージユニットに対するアクセスを検出する手順と、前記データストレージユニットに対するアクセスが検出された場合に、所定の値を前記複数の不揮発性ストレージデバイスに保存されている前記データに上書きすることによって前記複数の不揮発性ストレージデバイスに保存されている前記データを消去する手順と、を実行させる命令を含むものである。
【００２１】
また、請求項１０のコンピュータ読み取り可能な記録媒体は、請求項９に記載のコンピュータ読み取り可能な記録媒体において、前記処理ユニットが、前記所定の値を前記複数の不揮発性ストレージデバイスに保存されている前記データに上書きする手順は、前記所定の値として００Ｈを前記複数の不揮発性ストレージデバイスに保存されている前記データに上書きする手順を実行させる命令を含むものである。
【００２２】
また、請求項１１のコンピュータ読み取り可能な記録媒体は、請求項９または１０に記載のコンピュータ読み取り可能な記録媒体において、前記不揮発性ストレージデバイスは、さらに、前記データに関連するファイルディレクトリエントリを保存し、前記処理ユニットが、さらに、前記データに関連する前記ファイルディレクトリエントリを前記不揮発性ストレージデバイスから消去する手順を実行させる命令を含むものである。
【００２３】
また、請求項１２のコンピュータ読み取り可能な記録媒体は、請求項９から１１のいずれか一に記載のコンピュータ読み取り可能な記録媒体において、前記処理ユニットが、さらに、前記電源の障害が回復した後、前記複数の不揮発性ストレージデバイスに対する前記データの書き込みおよび前記複数の不揮発性ストレージデバイスからの前記データの読み出しを許可する手順を実行させる命令を含むものである。
【００３０】
【発明の実施の形態】
以下においては、あくまでも本発明の説明を目的として特定の具体例を明らかにすることにより、本発明を完全に理解できるようにする。しかし、このような特定の具体例がなくても、本発明が実施可能であることは明らかとなるであろう。なお、いくつかの場合においては、公知の構成および装置をブロック図の形式で示すことにし、発明を不必要に不明瞭にすることを避けることにしている。
【００３１】
〔概  要〕
ここでは、データを保存して保持すると共に、そのデータにアクセスするためのアプローチについて説明する。一面において、データはストレージユニットに保存され、所定の時間が経過すると消去される。他の面において、ストレージユニットに対して何らかの不正行為が行われた場合にデータが消去される。さらに他の面において、ストレージユニット内の不揮発性ストレージに何らかの障害が発生した場合にデータが消去される。他のアプローチは、データを永久に保存し、認証することが可能なハードウエアのストレージユニットを含むものである。
【００３２】
すなわち、このアプローチは、安全なハードウエアインターフェースおよびソフトウエアインターフェースを有し、それ自身のオペレーティングシステムを備えたデバイスを構築することである。このインターフェースは、データの変更が認められないということを保証する。このように、本発明はデータが本物（原本）であることが重要事項とされる装置において使用することが可能である。以下に、前述した各面について詳細に説明することにする。
【００３３】
〔システムの概要〕
図１は、データを保存するためのシステム１００を示す図である。図１において、一以上のステーション（station ）１０２は、ネットワーク１０４を介して互いに接続されている。各ステーション１０２は、コンピュータ，ワークステーションまたは他の類似の処理機構で構成される。たとえば、各ステーション１０２は、一実施の形態として図１３に示すような種類の汎用コンピュータシステムで構成可能なものである。なお、ステーション１０２については後に説明する。また、各ステーション１０２について、クライアント／サーバ環境におけるクライアントに相当すると考えることができる。ネットワーク１０４を使用することにより、あるステーション１０２は他の全てのステーション１０２と通信することが可能となる。
【００３４】
また、一以上のストレージユニット１０６が用意され、データを保存・保持することができるようになっている。このストレージユニット１０６をリンク１０８を介してネットワーク１０４に接続し、ネットワーク１０４に接続されているステーション１０２のような他のデバイスと共に動作するようにしても良い。リンク１０８としては、ストレージユニット１０６と他のデバイスとの間でデータのやりとりを行うことができるものであればいかなる種類の通信媒体を用いても良い。リンク１０８の例には、ネットワーク接続，イーサネット・ＬＡＮもしくはＷＡＮ接続，またはあらゆる種類の無線伝送媒体が含まれる。
【００３５】
また、リンク１０８を介してストレージユニット１０６をネットワーク１０４に接続することに代え、ストレージユニット１０６をローカルなリンク１１２を用いて特定のステーション１０２に直接接続することにしても良い。また、ストレージユニット１０６を他の構成で用いることも可能であり、たとえば、ストレージユニット１０６を特定の数のステーション１０２に直接接続し、特定のステーション１０２にローカル・ストレージを提供するようにしても良い。さらに、たとえばＳＣＳＩインターフェースのような、ステーションからストレージデバイスへのインターフェースでリンク１１２を構成することにしても良い。
【００３６】
この構成において、各ステーション１０２は、ネットワーク１０４を介して適切なメッセージをやり取りすることにより、リンク１０８を介してストレージユニット１０６に情報を保存し、またはストレージユニット１０６から情報を検索して読み出すことが可能となる。
【００３７】
また、システム１００は、登録オーソリティ（registration authority）１１０を含んでいる。この登録オーソリティ１１０は、通信できるようにネットワーク１０４に接続されていると共に、後に詳細に説明するようにストレージユニット１０６の登録処理を実行する。
【００３８】
〔ストレージユニット〕
図２は、ストレージユニット１０６を示すブロック図である。図２に示すように、ストレージユニット１０６は、一以上の不揮発性ストレージデバイス２００および２０２を含んでいる。ここでは一実施の形態として二つの不揮発性ストレージデバイス２００および２０２を用意し、データの冗長ストレージを提供することにしている。ただし、本発明は特定の数の不揮発性ストレージデバイス２００，２０２に限定されるものではない（換言すれば、不揮発性ストレージデバイスは、参照符号２００および２０２で示されるように二つに限定されるものではない）。
【００３９】
ここでは、図３に示すように、データは不揮発性ストレージデバイス２００および２０２の両方に書き込まれる。そのため、図４に示すように、不揮発性ストレージデバイス２００および２０２の一方がたとえば障害の発生によって利用不可能となった場合、データは他方の不揮発性ストレージデバイス２００または２０２に書き込まれる。なお、不揮発性ストレージデバイス２００および２０２としてはいかなる種類のものを用いることにしても良く、その例としては一以上の磁気もしくは光ディスク，テープ，または電源がオフにされた場合であっても保存しているデータを保持可能な他の種類の不揮発性ストレージ等がある。
【００４０】
また、ストレージユニット１０６は、図２にＳ１〜Ｓ４として示す一以上のセンサを含み、ストレージユニット１０６に対する許可のないアクセスを検知することを可能にしている。これらのセンサＳ１〜Ｓ４は、たとえばストレージユニット１０６内への侵入行為，権限なくストレージユニット１０６にアクセスする行為，または権限なくストレージユニット１０６をいじったり、使用不能にする行為等を検知するデバイスである。
【００４１】
具体的に、センサＳ１〜Ｓ４は、機械的，電気・機械的または電気的デバイスであり、検知したイベントに応じて信号（本発明のタンパ信号に該当する）を生成するものである。たとえば、一実施の形態として、各センサＳ１〜Ｓ４を、ストレージユニット１０６のカバーが開けられた際に開きまたは閉じるマイクロスイッチで構成することにしても良い。なお、各センサＳ１〜Ｓ４は、リンク２０８を介して処理ユニット２０４に接続される。
【００４２】
また、ストレージユニット１０６は処理ユニット２０４を含み、処理ユニット２０４はリンク１０８を介してストレージユニット１０６に対するデータの流れと、ストレージユニット１０６からのデータの流れとを制御すると共に、他の処理機能を実行するものである。また、処理ユニット２０４は、不揮発性ストレージデバイス２００および２０２のオペレーションを制御する。制御するオペレーションには、リンク２０６を介し、不揮発性ストレージデバイス２００および２０２にデータを書き込むオペレーションや、不揮発性ストレージデバイス２００および２０２からデータを読み出すオペレーションが含まれる。
【００４３】
また、処理ユニット２０４は、センサＳ１〜Ｓ４に対し、リンク２０８を介して通信できるように接続されている。なお、リンク２０６および２０８は、リンク１０８と同様のもので実現可能なものであり、処理ユニット２０４と不揮発性ストレージデバイス２００および２０２との間でデータのやり取りを可能にすると共に、処理ユニット２０４とセンサＳ１〜Ｓ４との間でデータのやり取りを行うことを可能にしている。
【００４４】
さらに、ストレージユニット１０６は、オプションとしてバックアップ電源２１０および２１２を含み、ストレージユニット１０６ならびにその構成要素、すなわち不揮発性ストレージデバイス２００・２０２，処理ユニット２０４およびセンサＳ１〜Ｓ４等に電力を供給できるようにしている。理論的には、バックアップ電源２１０および２１２が実装されることによって、電力不足の場合にバックアップ電源２１０および２１２のいずれか一方がストレージユニット１０６の動作に十分な電力を供給することができる。
【００４５】
たとえば、バックアップ電源２１０および２１２をバッテリまたは無停電電源（uninterruptible power supply; UPS ）を使用することによって実現することにしても良い。なお、バックアップ電源２１０および２１２の一方を、処理ユニット２０４に対してバックアップ電力を供給するオンボード・バッテリ（onboard battery ）とすることが好ましい。
【００４６】
〔処理ユニット〕
図５は、処理ユニット２０４を示すブロック図である。処理ユニット２０４は、通信インターフェース３００を含んでいる。この通信インターフェース３００は、リンク１０８を介して処理ユニット２０４とストレージユニット１０６外部の他のデバイスとの間の通信を制御し、バッファリングし、かつ規制する。なお、この通信インターフェース３００としては、たとえば、ＳＣＳＩ，ＩＥＥＥ１３９４またはイーサネットコントローラのようなＩ／Ｏコントローラを用いることができる。
【００４７】
また、処理ユニット２０４はセンサコントローラ３０２を含んでいる。このセンサコントローラ３０２は、リンク２０８を介し、センサＳ１〜Ｓ４と処理ユニット２０４との間のインターフェースとなり、センサＳ１〜Ｓ４と処理ユニット２０４との間で通信を行えるようにする。なお、センサコントローラ３０２としては、たとえばアナログＩ／Ｏインターフェースを用いることができる。
【００４８】
また、処理ユニット２０４は、リンク２０６を介して不揮発性ストレージデバイス２００および２０２を制御する不揮発性ストレージコントローラ３０４を含んでいる。この不揮発性ストレージコントローラ３０４は、たとえばディスクコントローラである。また、処理ユニット２０４は、処理ユニット２０４およびここで説明されるその構成要素の動作を制御するプロセッサ３０６を含んでいる。このプロセッサ３０６は、たとえばマイクロプロセッサである。
【００４９】
さらに、処理ユニット２０４は、ＲＡＭのような揮発性メモリ３０８を含んでおり、揮発性メモリ３０８はデータやプロセッサ３０６の命令を記憶するものである。また、処理ユニット２０４は、たとえばＲＯＭ，ＰＲＯＭ，ＥＰＲＯＭ，フラッシュメモリまたは他の種類のメモリ等のような不揮発性メモリ３１０を含んでいる。
【００５０】
通信インターフェース３００，センサコントローラ３０２，不揮発性ストレージコントローラ３０４，プロセッサ３０６，揮発性メモリ３０８および不揮発性メモリ３１０は、それぞれリンク３１２を介して通信できるように接続されており、これによってこれらの構成要素間で通信を行えるように構成されている。リンク３１２の例としては、通信バス，またはアドレスバスおよびデータバスの組み合わせが挙げられる。
【００５１】
なお、処理ユニット２０４は、ＵＮＩＸのようなリアルタイムオペレーティングシステム（ＯＳ）の制御の下で動作するものであることが好ましい。記憶されている一以上のプログラムはＯＳの下で動作し、ここでさらに説明するストレージユニット１０６のオペレーションおよびプロセスを管理する。
【００５２】
〔不揮発性ストレージ〕
図６は、不揮発性ストレージデバイス２００および２０２の内容を示す図である。各不揮発性ストレージデバイス２００および２０２は、ストレージＩＤ情報４００を含みまたは保存している。このストレージＩＤ情報４００は、不揮発性ストレージデバイス２００および２０２をユニークに（一意に）識別するためのものである。たとえば、ストレージＩＤ情報４００は、不揮発性ストレージデバイス２００および２０２のユニークなシリアルナンバーを含むものであっても良い。
【００５３】
また、ストレージＩＤ情報４００は、ストレージユニット１０６の登録処理の間に得られた情報、すなわちストレージユニット１０６を認証するために使用される情報を指定する。なお、ストレージユニット１０６を登録する処理については後に詳細に説明することにする。
【００５４】
また、不揮発性ストレージデバイス２００および２０２はディレクトリ情報４０２を含んでいる。このディレクトリ情報４０２は、不揮発性ストレージデバイス２００および２０２上に保存されているデータ４０４に関する情報を指定するものである。一実施の形態によれば、データ４０４は複数のデータファイルを含んでおり、また、ディレクトリ情報４０２はデータ４０４のデータファイルに関する情報に対応し、かつその情報を指定する複数のディレクトリエントリ５００を含んでいる。ファイル指向のストレージシステムは不要である。データ４０４はあらゆる種類の保存された情報であって良く、また、ディレクトリ情報４０２はデータ４０４について記述するものであればどのようなメタデータであっても良い。
【００５５】
図９は、一実施の形態におけるディレクトリエントリ５００の内容を示す図である。ディレクトリエントリ５００は、対応するデータファイルの名称（ファイル名（File Name ）５０２），対応するデータファイルの作成日付（作成日付（Creation Date ）５０４），対応するデータファイルの有効期限が満了する日付（有効期限（Expiration Date ）５０６）および特定のアプリケーションに応じて変更可能な他のファイル管理情報５０８を示すものである。なお、他のファイル管理情報は、たとえば、アプリケーション等に関連するファイルの種類である。
【００５６】
また、ディレクトリエントリ５００は複製情報（replication information ）５１０の記述を含んでいる。複製情報５１０は、一以上のディレクトリエントリ５１２（Ｒ１，Ｒ２，・・・，ＲＮ）を示すことにより、ファイル名５０２のファイルに関連するデータファイルのソースを示している。各ディレクトリエントリ５１２は、ストレージＩＤ情報，複製日付，およびストレージＩＤのディレクトリパスによる親データの完全な履歴を含んでいる。なお、データのファイル名５０２はオリジナル（原本）から変更されることはなく、また、有効期限５０６のデータもコピーされる。
【００５７】
なお、「有効期限」は、ここで使用されているように、関連するデータが無効または使用不可能とされる時間，日または日付を意味する。不揮発性ストレージデバイス２００，２０２中の情報はＯＳによって管理される。
【００５８】
〔有効期限満了後の消去〕
一実施の形態において、不揮発性ストレージデバイス２００および２０２に保存されているデータは、特定の期間が経過すると消去される。このプロセスは、特定のデータを対象として実行されるものであり、このことは異なるデータは異なる期間にわたって不揮発性ストレージデバイス２００および２０２上に存在していても良いということを意味している。また、異なるデータ毎に異なる有効期限を適用することにしても良い。さらに、一部のデータについては消去されないようにしても良く、すなわち無期限に不揮発性ストレージデバイス２００および２０２上に存在するようにしても良い。
【００５９】
図６，図９および図１０において、ディレクトリ情報４０２に含まれているディレクトリエントリ５００は、有効期限５０６が満了するに至ったか否かを判定するために調査される。この処理は、特定のディレクトリエントリ５００の有効期限５０６と現在の日付とを比較することによって実行される。また、各ディレクトリエントリ５００に有効期限５０６を保持させておくことに代え、各ディレクトリエントリ５００に「保持期間（“time to keep" ）」を保持させるようにし、作成日付５０４および「保持期間」の両方に基づいて有効期限を決定することにしても良い。
【００６０】
また、代替的なアプローチは、全てのディレクトリの全てのエントリを巡回し、エントリの有効期限とシステムの時間および日付とをチェックするエージェントを持つことである。有効期限が経過している場合、エージェントは該当するエントリを削除する。
【００６１】
図１０は、データを消去するための好適な方法を示すフローチャートである。ステップＳ５２０において、現在の日付／時間値が取得される。たとえば、処理ユニット２０４は、処理ユニット２０４のオペレーションを制御する、オペレーティングシステムの機能をコールすることによって日付／時間値を要求し、それを取得する。
【００６２】
これに代えて、プロセッサ３０６が直接問い合わせることが可能なクロックを処理ユニット２０４に含めることにしても良い。なお、現在の日付／時間値は、図１０に示す方法を実行する現在の日，日付または時間を示すものである。また、現在の日付／時間値をＣＰＵレジスタ，作業用記憶領域（scratchpad memory area）またはメインメモリのような一時的な記憶場所に記憶し、後で使用できるようにすることが好ましい。
【００６３】
続いて、ステップＳ５２２において、一つのディレクトリエントリ５００が選択され、処理される。一実施の形態において、ステップＳ５２２は不揮発性ストレージデバイス２００，２０２中の全てのディレクトリエントリ５００をシリアルにポーリングする処理（serial polling）を含む。また、ステップＳ５２２が、たとえばＬＲＵ法（least-recently-used ）アルゴリズム，確率または統計のようなヒューリスティック・プロセス（heuristic process ）に基づいてディレクトリエントリ５００を選択する処理を含むようにしても良い。
【００６４】
そして、ステップＳ５２４において、カレントのディレクトリエントリ（current directory entry ）５００によって表されるデータを消去するか否かが決定される。一実施の形態において、ステップＳ５２４は、ステップＳ５２０で取得した現在の日付／時間値がカレントのディレクトリエントリ５００中に保存されている有効期限５０６の値以上であるか否かをテストする処理を含む。現在の日付／時間値が有効期限５０６の値以上である場合、そのカレントのディレクトリエントリ５００は消去されることになる。
【００６５】
特定のデータを消去すると判定されると、ステップＳ５２６に示すように、データ４０４からカレントのディレクトリエントリ５００に関連するデータが消去される。そして、制御はステップＳ５３４に進む。その特定のデータが消去されると、ステップＳ５３４に示すように、ディレクトリエントリ５００も消去される。なお、消去された特定のデータのコピーは同一の有効期限を含んでおり、かつその有効期限がチェックされることから、その特定のデータの全てのコピーもデータ４０４から消去されることになる。
【００６６】
なお、一実施の形態によれば、ステップＳ５２６およびＳ５３４において、データ４０４からデータを消去すると共に、対応するディレクトリエントリ５００をディレクトリ情報４０２から消去する処理は、所定の値をそのデータおよびディレクトリエントリ５００に上書きすることによって実行される。適当と認められる所定の値の例は００Ｈであるが、所定の値として他の値を使用することにしても良い。ある従来のアプローチは、データそのものを消去することなく単にディレクトリエントリを消去するだけであったことから、消去したデータを回復させることが可能であった。
【００６７】
これに対し、データが上書きされるとその回復はより困難なものとなるため、所定の値をデータに上書きすることによってより確実にそのデータを消去したものと考えられる。所定の値を上書きすることによって、データがデータ４０４から消去されると共に、対応するディレクトリエントリ５００がディレクトリ情報４０２から消去されると、上書きされた領域は他のデータを保存するために使用されることになる。
【００６８】
代替的な実施の形態においては、異なるデータ毎に異なる所定の値を用いて上書きが行われる。たとえば、不揮発性ストレージデバイス２００上に存在している特定のデータファイルの有効期限５０６が、その特定のデータファイルが削除されるものであることを示しているものとする。また、その特定のデータファイルのコピーが、不揮発性ストレージデバイス２０２上に保持されているものとする。
【００６９】
この場合において、不揮発性ストレージデバイス２００上の特定のデータファイルには第１の所定の値が上書きされ、一方、不揮発性ストレージデバイス２０２上のその特定のデータファイルのコピーには第１の所定の値と異なる第２の所定の値が上書きされる。また、対応するディレクトリエントリ５００に上書きするために、異なる所定の値を用いることにしても良い。
【００７０】
一実施の形態において、図１０のプロセスは処理ユニット２０４によって実行される。特に、プロセッサ３０６が、揮発性メモリ３０８および不揮発性メモリ３１０に保持されている一以上の命令を実行することによってこのプロセスを実行することにしても良い。これに対し、ストレージユニット１０６の外部の別のプロセスまたはネットワーク１０４に接続されているステーション１０２等により、ディレクトリ情報４０２中の各ディレクトリエントリ５００を調査するプロセスを実行することにしても良い。このような場合において、他のプロセスまたはステーション１０２は、リンク１０８を通してストレージユニット１０６に問合せし、ディレクトリ情報４０２を取得することにしても良い。
【００７１】
以上では、ストレージＩＤ情報４００，ディレクトリ情報４０２およびデータ４０４が、不揮発性ストレージデバイス２００および２０２上で一緒に保持されるものとして説明・図示することにしたが、これらの情報の一部を他とは別に他の記憶位置に保持させることにしても良い。たとえばディレクトリ情報４０２の一部または全てを処理ユニット２０４の揮発性メモリ３０８に保持しておくことにしても良く、これによりデータ４０４から削除する必要があるデータファイルを判定するために必要な時間を短縮することが可能となる。
【００７２】
〔不揮発性ストレージデバイスに障害が発生した後の消去〕
別の実施の形態によれば、不揮発性ストレージデバイス２００および２０２の一方に何らかの障害が発生した場合、データ４０４に含まれる全てのデータおよびディレクトリ情報４０２に含まれる全てのディレクトリエントリ５００が前述したように消去される。そして、他方の不揮発性ストレージデバイス２００または２０２が第１のストレージデバイス（primary storage device）として指定され、継続して使用される。
【００７３】
障害が発生するような状況の一例は、両方の不揮発性ストレージデバイス２００および２０２のアップデートが行われている際に、メディアの破損が不揮発性ストレージデバイス２００および２０２の一方のアップデートを妨げるような場合である。不揮発性ストレージデバイス２００および２０２が冗長ストレージを提供することから、障害が発生した不揮発性ストレージデバイス２００または２０２からデータを削除することにより、不揮発性ストレージデバイス２００および２０２が異なる（およびおそらく有効な）データを含まないようにする。
【００７４】
図１１は、不揮発性ストレージデバイスに何らかの障害が発生した場合に、その不揮発性ストレージデバイスのデータを消去するための好適な方法を示すフローチャートである。ステップＳ５４０において、不揮発性ストレージデバイスに何らかの障害が発生していることが検知される。たとえば、ステップＳ５４０が、パワーアップ・ルーチン（power-up routine）またはブートストラップ・ローダ・ルーチン（bootstrap loader routine）において電源異常または他の障害が生じていることを検知するステップを含むようにしても良い。
【００７５】
一実施の形態において、各不揮発性ストレージデバイス２００，２０２は、マーカ値（marker value）を保存する専用の記憶場所を持つ。このマーカ値は、不揮発性ストレージデバイス２００，２０２が問題なくシャットダウンされたことを示す予め定められた値である。不揮発性ストレージデバイス２００，２０２が問題なくシャットダウンされる場合に、予め定められたマーカ値が専用の記憶場所に保存される。
【００７６】
一方、不揮発性ストレージデバイス２００，２０２が起動される場合に、予め定められたマーカ値がチェックされ、そして異なる値が上書きされる。したがって、予想外の障害（たとえば異常終了）が起こると、専用の記憶場所にはマーカ値が含まれていないことになり、それによって不揮発性ストレージデバイス２００，２０２に障害が発生したことが検知される。
【００７７】
ある障害の発生が検知された場合、ステップＳ５４２において複数のディレクトリエントリ５００の中から次のディレクトリエントリ５００が選択される。一実施の形態において、ステップＳ５４２は、不揮発性ストレージデバイス２００，２０２中の全てのディレクトリエントリ５００をシリアルにポーリングするステップを含んでいる。また、ステップＳ５４２は、ＬＲＵ法（least-recently-used ）アルゴリズム，確率または統計のようなヒューリスティック・プロセス（heuristic process ）に基づいてディレクトリエントリ５００を選択するステップを含むようにしても良い。
【００７８】
そして、ステップＳ５４４において、カレントのディレクトリエントリ５００と関連付けられるデータの全てが、たとえば所定の値をそれらのデータに上書きすることによって消去される。そして、ステップＳ５５２において、カレントのディレクトリエントリ５００は、たとえばそれに所定の値を上書きすることによって消去される。必要な場合、ディレクトリそのものも消去される。
【００７９】
続いて、ステップＳ５５４において、さらなるディレクトリエントリ５００が不揮発性ストレージデバイス２００，２０２のディレクトリ情報４０２中に存在するか否かが判定される。存在すると判定された場合、ステップＳ５４２〜Ｓ５５２が、さらなるディレクトリエントリ５００それぞれ対して繰返し実行される。
【００８０】
任意のステップＳ５５６において、他の不揮発性ストレージデバイス２００または２０２がストレージユニット１０６の第１の（primary ）ストレージデバイスとして指定される。このような指定は、ストレージユニット１０６が障害のない不揮発性ストレージデバイス２００または２０２を対象として読み出し／書き込みオペレーションを継続するということを意味する。このように、ストレージユニット１０６は使用可能なままであるが、ストレージユニット１０６内の障害が発生した不揮発性ストレージデバイス２００または２０２は使用不可能とされる。
【００８１】
障害が発生した不揮発性ストレージデバイス２００または２０２のデータが消去されると、障害が発生した不揮発性ストレージデバイス２００または２０２を再初期化するようにしても良い。障害が発生した不揮発性ストレージデバイス２００または２０２がうまく再初期化されると、障害が発生しなかった不揮発性ストレージデバイス２００または２０２に保存されているデータを回復した不揮発性ストレージデバイス２００または２０２にコピーすることができる。障害が発生した不揮発性ストレージデバイス２００または２０２をうまく再初期化することができなかった場合、障害が発生しなかった不揮発性ストレージデバイス２００または２０２のデータを別のストレージユニット１０６の不揮発性ストレージデバイスにコピーすることにしても良い。
【００８２】
不揮発性ストレージデバイス２００および２０２に同時に障害が発生する可能性は非常に低いため、冗長不揮発性ストレージデバイス２００，２０２を使用することにより、非常に高いデータの信頼性を提供することができる。さらなるデータの信頼性を提供するため、冗長不揮発性ストレージデバイス２００および２０２をそれぞれ含む他の複数のストレージユニット１０６を使用して、さらなる冗長性を提供することもできる。
【００８３】
〔不正の防止（tamper protection ）〕
一実施の形態によれば、ストレージユニット１０６は不正行為から保護される。センサＳ１〜Ｓ４は、リンク２０８を通して処理ユニット２０４によって監視されており、ストレージユニット１０６に対する不正行為を検知する。センサＳ１〜Ｓ４の選択および配置については特定のアプリケーションの要件によって決定されるものではあるが、一般に、シールを破壊すること、密封された仕切りを開くこと、その他、ストレージユニット１０６に力ずくで侵入すること等を通じてストレージユニット１０６に対する許可のないアクセスを検知するように設計される。
【００８４】
センサＳ１〜Ｓ４がストレージユニット１０６に対する許可のないアクセスを検知した場合、センサＳ１〜Ｓ４はタンパ信号（tamper signal ；すなわち、ストレージユニット１０６に対する不正を検知したことを示す信号）を処理ユニット２０４に入力する。処理ユニット２０４は、タンパ信号に応じて、前述した方法で不揮発性ストレージデバイス２００および２０２からストレージＩＤ情報４００，ディレクトリ情報４０２およびデータ４０４を消去する。これにより、ストレージユニット１０６に保存されているデータが許可なく使用されることが防止される。
【００８５】
図１２は、ストレージユニット１０６に不正行為が行われた場合に、不揮発性ストレージデバイス２００および２０２の記憶内容を消去する好適な方法を示すフローチャートである。ステップＳ５６０において、たとえばストレージユニット１０６に不正を働くこと，ストレージユニット１０６に侵入すること，ストレージユニット１０６を空けること等のようなストレージユニット１０６に対する外乱が検知される。たとえば、ステップＳ５６０が、一以上のセンサＳ１〜Ｓ４が作動され、または検知信号を生成していることを検知するステップを含むことにしても良い。
【００８６】
不正行為が検出された場合、ステップＳ５６２において、複数のディレクトリエントリ５００の中からつぎのディレクトリエントリ５００が選択される。一実施の形態において、ステップＳ５６２は不揮発性ストレージデバイス２００，２０２の全てのディレクトリエントリ５００に対してシリアルにポーリングするステップを含む。また、ステップＳ５６２は、たとえばＬＲＵ法（least-recently-used ）アルゴリズム，確率または統計のようなヒューリスティック・プロセスに基づいてディレクトリエントリを選択するステップを含むものであっても良い。
【００８７】
続いて、ステップＳ５６４において、カレントのディレクトリエントリ５００に関連する全てのデータは、たとえば所定の値をそれらのデータに上書きすることによって消去される。また、ステップＳ５７２において、カレントのディレクトリエントリ５００は、たとえば所定の値をそれに上書きすることによって消去される。また、必要な場合には、ディレクトリそのものも消去される。
【００８８】
そして、ステップＳ５７４において、さらなるディレクトリエントリ５００が不揮発性ストレージデバイス２００，２０２のディレクトリ情報４０２に存在するか否かが判定される。さらなるディレクトリエントリ５００が存在すると判定された場合、各ディレクトリエントリ５００についてステップＳ５６２〜Ｓ５７２までの処理が繰り返し実行される。
【００８９】
一実施の形態において、ステップＳ５６２または他のステップが、権限を有する者に対する警告を生成して、不正行為が発生し、消去のオペレーションが実行されたことを知らせるステップを含むようにしても良い。たとえば、ステップＳ５６２において、処理ユニット２０４は所定のステーション１０２に対するメッセージを生成し、不正行為が検出され、消去オペレーションが進行中であることをそのステーション１０２に通知することにしても良い。
【００９０】
別の実施の形態によれば、電源異常（たとえば停電）の場合に、バックアップ電源２１０および２１２は、センサＳ１〜Ｓ４を含むストレージユニット１０６に電力を供給する。ところが、不揮発性ストレージデバイス２００および２０２は、パワーセーブモードで動作する。パワーセーブモードで動作する場合、不揮発性ストレージデバイス２００および２０２に対する通常の書き込みおよび読み出しオペレーションは電力を節約するために禁止される。電源が回復すると、不揮発性ストレージデバイス２００および２０２に対する書き込みおよび読み出しオペレーションが続けられることになる。
【００９１】
ただし、ストレージユニット１０６がパワーセーブモードで動作している間であろうとも、センサＳ１〜Ｓ４がストレージユニット１０６に対する許可のないアクセスを検出した場合にあっては、利用可能な全ての電力を利用して前述したように不揮発性ストレージデバイス２００および２０２からストレージＩＤ情報４００，ディレクトリ情報４０２およびデータ４０４が消去される。このように、単にストレージユニット１０６の電源を切ることによるのみでは、消去プロセスの実行を回避することは不可能である。
【００９２】
〔ストレージユニットの登録〕
一実施の形態によれば、ストレージユニット１０６は、ストレージユニット１０６の認証を行うために登録オーソリティ１１０に登録される。このアプローチによると、各ストレージユニット１０６は、登録オーソリティ１１０にユニークなストレージユニット識別子値を与えることによって登録オーソリティ１１０に登録される。これに応じて、登録識別子値が登録オーソリティ１１０によって与えられ、不揮発性ストレージデバイス２００および２０２のストレージＩＤ情報４００中に保存される。
【００９３】
このようにしてストレージユニット１０６が登録されると、ステーション１０２は、特定のストレージユニット１０６の登録識別子値をリクエストし、そして登録オーソリティ１１０で登録識別子値が有効であることを確認することにより、特定のストレージユニット１０６が登録オーソリティ１１０に登録されていることを確認することができる。これにより、特定のストレージユニット１０６に保存されているデータがオリジナル（原作）で真性であることが保証される。
【００９４】
図７は、ヘッダ・セグメント４２２、デバイス・メーカー・セグメント４２４およびシリアル・ナンバー・セグメント４２６を有する登録識別子値４２０の好適な例を示す図である。
【００９５】
ヘッダ・セグメント４２２は、登録オーソリティ１１０を特定するものである。たとえば、ヘッダ・セグメント４２２は、ストレージユニット１０６またはＯＳのコンテクスト内において、登録オーソリティ１１０と一意的に関連付けられる所定の値を含む。デバイス・メーカー・セグメント４２４は、一意的にストレージユニット１０６のメーカまたはブランド名を特定するものである。このデバイス・メーカー・セグメント４２４は、特定のメーカを一意に特定するメーカ名またはコード番号であっても良い。また、シリアル・ナンバー・セグメント４２６は、ストレージユニット１０６のシリアル・ナンバーを含むものである。
【００９６】
図８は、データベース１１１の説明図である。データベース１１１は、一以上の行４６２を有する少なくとも一つのテーブル４６０を備えている。各行４６２は一つのストレージユニット１０６に対応する。テーブル４６０は、メーカーまたはブランド名の値、シリアルナンバー値および割当て日付の値を格納する列４６４〜４６８を有している。各割当て日付の値は、あるストレージユニット１０６に相当する行がテーブル４６０に加えられた日付けを特定するものである。
【００９７】
〔データのオリジナリティ〕
ある状況においては、あるデータを変更しないようにし、または削除しないようにすることによって、ストレージユニット１０６に保存されているそのあるデータのオリジナリティおよびユニークさを保つようにすることが好ましい場合がある。このようにすることにより、ストレージユニット１０６は、あるデータが最初に書き込まれた時から変更されていないことを外部のプロセスまたはデバイスに「保証する（guarantee ）」ことができる。
【００９８】
一実施の形態においては、あるデバイスから別のデバイスにデータをコピーする場合に、追跡記録（audit trail ）が生成される。図９に示すように、各複製エントリ（Ｒ１，Ｒ２，…，ＲＮ）は、複製日付５１４ならびにストレージＩＤ情報５１６およびディレクトリエントリ５１２を含むソース情報を記述するものである。ソース（source）・デバイスからディスティネーション（destination ）・デバイスへデータを複写するために、ファイル情報やソース・デバイスのスペックと共に、複製コマンドがディスティネーション・デバイスに対して発行される。そして、ディスティネーション・デバイスはソース・デバイスに対して特別な読出コマンドを発行し、ソース・デバイスからディスティネーション・デバイスに転送される際にデータが変更されてしまうことを避けることができるように、そのデータが暗号化される。
【００９９】
したがって、一実施の形態によれば、ストレージユニット１０６に保存されているあるデータは一度だけ書き込まれ、決して変更されていないことを保証するためのアプローチが提供されることになるが、そのあるデータが読み出し専用（read-only ）として無制限の回数読み出しできるものであっても良い。このアプローチは特定のデータを対象とするものであって、保存されている全てのデータを読み出し専用データとして保持することを要求するものではない。
【０１００】
一実施の形態においては、読み出し専用データが不揮発性ストレージデバイス２００および２０２に保存された後、読み出し専用データに関連するディレクトリエントリ５００がアップデートされ、関連するデータが読み出し専用データであり、かつ、決して上書きまたは変更されることがないものであることが示される。このアップデートは、保存されているデータがユニーク（固有）かつ、不変なものであることを他のデバイスやプロセスに宣言するというように作用する。
【０１０１】
たとえば、読み出し専用データが不揮発性ストレージデバイス２００および２０２に書き込まれた後、読み出し専用データと関連付けられるディレクトリエントリ５００の他のファイル管理情報５０８は、関連付けられたデータが読み出し専用であって変更されることがないということを表すように更新される。
【０１０２】
その後、不揮発性ストレージデバイス２００および２０２のデータが変更されることになる場合、そのデータと関連付けられているディレクトリエントリ５００が調査され、その特定のデータが読み出し専用であるか否かが判定される。読み出し専用ではない場合、関連付けられているデータはここで説明されるように変更される。一方、読み出し専用である場合、関連付けられているデータおよびディレクトリエントリ５００は変更されることはない。
【０１０３】
オリジナリティを保証する別の方法としては、特定の不揮発性ストレージデバイス上で実行可能な書込みコマンドを制限するというものがある。たとえば、不揮発性ストレージデバイスに保存されているファイルがオリジナリティを保証するために認証されたファイルであるとして保持されている状況に関連して、その不揮発性ストレージデバイスが書き込みのための特別なステータスを要求することにしても良い。特別な書き込みステータスがないと、同一ファイル名が不揮発性ストレージデバイスに存在する場合に書き込みコマンドは失敗に終わることになる。
【０１０４】
このアプローチは、有効期限に基づく消去処理，不正行為に基づく消去処理および障害の発生に基づく消去処理を含む、ここで説明されるあらゆるアプローチに適用することができるものである。このアプローチは、保存されているデータの有効性を保証する方法を提供し、その結果、保存されているデータの信頼性の向上、たとえば法的な証拠としてのデータの信頼性の向上が図られる。また、データの内容およびユニークさも保証される。
【０１０５】
〔コンピュータシステムの概要〕
図１３は、本発明の各面を実現するために使用可能なコンピュータシステムを示すブロック図であり、たとえば、処理ユニット２０４の代替的な実施の形態を示すものである。処理ユニット２０４は情報通信のためにバス６０２または他の通信機構を含み、プロセッサ６０４は情報を処理するためにバス６０２と接続されている。
【０１０６】
また、処理ユニット２０４は、たとえばランダムアクセスメモリ（ＲＡＭ）または他の動的ストレージデバイスのようなメインメモリ６０６を含み、メインメモリ６０６は、情報やプロセッサ６０４によって実行される命令を保存するためにバス６０２に接続されている。また、メインメモリ６０６を使用して、プロセッサ６０４によって実行される命令の実行中に一時変数または他の中間情報を格納することにしても良い。
【０１０７】
さらに、処理ユニット２０４は、静的な情報やプロセッサ６０４に対する命令を記憶するためにバス６０２に接続されたリードオンリーメモリ（ＲＯＭ）６０８または他の静的なストレージデバイスを含んでいる。また、ストレージデバイス６１０は、たとえば磁気ディスクや光ディスクであり、バス６０２に接続されて情報および命令を記憶できるようになっている。
【０１０８】
また、処理ユニット２０４を、たとえばＣＲＴのようなコンピュータのユーザに情報を表示するためのディスプレイ６１２にバス６０２を通して接続するようにしても良い。英数字および他のキーを含む入力デバイス６１４は、バス６０２に接続されてプロセッサ６０４に情報およびコマンド選択を送信できるようになっている。別の種類のユーザ入力装置は、マウス，トラックボールまたはカーソル方向キーのようなカーソルコントロール６１６であり、これは方向の情報やコマンド選択をプロセッサ６０４に送信すると共に、ディスプレイ６１２上のカーソルの動きを制御する。このような入力装置は、一般に、第１の軸（たとえばｘ）および第２の軸( たとえばｙ) という二つの軸において２つの自由度を持つことにより、平面における位置を指定することを可能にしたものである。
【０１０９】
本発明はストレージユニット１０６を使用してデータを保存する技術に関連するものである。一実施の形態においては、メインメモリ６０６に保存されている一以上の命令の一以上のシーケンスをプロセッサ６０４が実行することに応じて、処理ユニット２０４によってデータを保存し、保持する処理が実行される。このような命令は、ストレージデバイス６１０のような別のコンピュータ読み取り可能な媒体からメインメモリ６０６に読み込まれるものであっても良い。
【０１１０】
メインメモリ６０６に含まれる命令のシーケンスを実行することにより、プロセッサ６０４はここで説明したプロセスの各ステップを実行する。また、マルチプロセッシング構成における一以上のプロセッサを使用して、メインメモリ６０６に含まれる命令のシーケンスを実行することにしても良い。
【０１１１】
代替的な実施の形態として、ハードワイヤード回路をソフトウエア命令の代わりに、またはソフトウエア命令と組み合わせて使用することにより、本発明を実現することも可能である。したがって、本発明の各実施の形態はハードウエアおよびソフトウエアの特定の組み合わせに限定されるものではない。また、命令は、ソフトウエアエージェント，プロセス，サブルーチンまたはプログラムとして構成可能である。
【０１１２】
ここで使用される「コンピュータ読み取り可能な媒体」という用語は、プロセッサ６０４に命令を与えて実行させることに関与するあらゆる媒体を指す。このような媒体は、不揮発性媒体，揮発性媒体および伝送媒体を含む多くの形態を取ることが可能なものである。ただし、このような形態に限定されるものではない。たとえば、不揮発性媒体は、ストレージデバイス６１０のような光または磁気ディスクを含むものである。
【０１１３】
また、揮発性媒体は、メインメモリ６０６のようなダイナミックメモリを含むものである。さらに、伝送媒体は、同軸ケーブル，銅線および光ファイバを含むものであり、バス６０２を構成するワイヤを含むものである。なお、伝送媒体は、電波および赤外線通信時に生成されるような音波または光波のような形態をとることができる。
【０１１４】
また、コンピュータ読み取り可能な媒体の一般的な形態には、たとえば、フロッピーディスク，フレキシブルディスク，ハードディスク，磁気テープもしくは他の磁気媒体，ＣＤ−ＲＯＭや他のあらゆる光学媒体，パンチカード，紙テープもしくは穴によるパターンを有する他のあらゆる物理的な媒体，ＲＡＭ，ＰＲＯＭおよびＥＰＲＯＭ，ＦＬＡＳＨ−ＥＰＲＯＭ，他のあらゆるメモリチップもしくはカートリッジ，後述する搬送波，またはコンピュータが読み出し処理を行うことが可能な他のあらゆる媒体が含まれる。
【０１１５】
様々な形式のコンピュータ読み取り可能な媒体が、プロセッサ６０４で実行するための一以上の命令の一以上のシーケンスを保持するために必要とされる。たとえば、リモートコンピュータの磁気ディスク上に最初に命令が保持されることにしても良い。リモートコンピュータは、命令をそのダイナミックメモリにロードし、モデムを使用することにより電話回線を介して命令を送信することができる。
【０１１６】
処理ユニット２０４内部のモデムは電話回線を介してデータを受信し、赤外線送信機を使用してデータを赤外線信号に変換することができる。バス６０２に接続されている赤外線検出器は、赤外線信号で運ばれているデータを受信し、バス６０２に送出することができる。バス６０２はデータをメインメモリ６０６に運び、プロセッサ６０４はそこから命令を読み出して実行する。メインメモリ６０６で受信された命令を、プロセッサ６０４による実行の前か後にストレージデバイス６１０にオプションとして保存するようにしても良い。
【０１１７】
また、処理ユニット２０４は、バス６０２に接続された通信インターフェース６１８を含んでいる。通信インターフェース６１８は、ローカルネットワーク６２２に接続されているネットワークリンク６２０に対し、双方向データ通信カップリングを提供する。たとえば、通信インターフェース６１８をＩＳＤＮ（Integrated Services Digital Network ）カードまたはモデムで構成することにし、対応する種類の電話回線に対してデータ通信接続を提供するようにしても良い。
【０１１８】
別の例として、通信インターフェース６１８をローカルエリアネットワーク（ＬＡＮ）カードで構成することにし、互換ＬＡＮにデータ通信接続を提供するようにしても良い。また、無線リンクを実装することにしても良い。どのようなインプリメンテーションにおいても、通信インターフェース６１８は、様々な種類の情報を表すディジタルデータのストリームを伝送する電気的，電気磁気的または光学的信号を送信し、かつ受信する。
【０１１９】
ネットワークリンク６２０は、概して、データ通信を一以上のネットワークを介して他のデータデバイスに提供するものである。たとえば、ネットワークリンク６２０は、ローカルネットワーク６２２を介してホストコンピュータ６２４またはインターネットサービスプロバイダ（ＩＳＰ）６２６によって管理されているデータ機器に対する接続を提供する。ＩＳＰ６２６は、現在一般に「インターネット」６２８と呼ばれる世界的なパケットデータ通信網を介してデータ通信サービスを提供するものである。
【０１２０】
ローカルネットワーク６２２およびインターネット６２８の両方とも、電気信号，電気磁気信号または光信号を使用してディジタルデータのストリームを搬送するものである。様々なネットワークを経る信号，ならびにネットワークリンク６２０上および通信インターフェース６１８を経る信号は、処理ユニット２０４にディジタルデータを搬送し、または処理ユニット２０４からディジタルデータを搬送するものであり、情報を搬送する搬送波に関する例示的な形態である。
【０１２１】
処理ユニット２０４は、一以上のネットワーク，ネットワークリンク６２０および通信インタフェース６１８を通して、プログラムコードを含むメッセージを送信し、かつプログラムコードを含むデータを受信することができる。インターネットの例において、サーバ６３０は、インターネット６２８，ＩＳＰ６２６，ローカルネットワーク６２２および通信インタフェース６１８を通して、リクエストされたアプリケーションプログラムのコードを伝送することも可能である。このようにダウンロードされたアプリケーションは、ここで説明したようにデータを保存し、保持する処理を実行する。
【０１２２】
データが受信された場合および／または後に実行するためにストレージデバイス６１０もしくは他の不揮発性ストレージに保存された場合に、受信されたコードがプロセッサ６０４によって実行されるようにしても良い。このように、処理ユニット２０４は、搬送波の形態でアプリケーションコードを取得するものであっても良い。
【０１２３】
ここで記述される手法は、データを保存して保持することに関し、従来のアプローチを越えるいくつかの利点を与えるものである。特に、所定の値をデータに上書きすることでストレージユニット１０６からそのデータを消去するアプローチを採用することにより、そのデータの回復をより困難なものとする。不正行為を監視することにより、許可されていないアクセスからストレージユニット１０６を保護する。
【０１２４】
登録オーソリティ１１０を使用してストレージユニット１０６を登録することにより、ストレージユニット１０６に保存されているデータを認証する。さらに、データのオリジナリティを保つためのアプローチは、あるデータがストレージユニット１０６から読み出される場合にそのあるデータが一度だけ書き込まれたものであり、かつ変更が加えられたものではないことを保証する。同様に、データがストレージユニット１０６から消去される際に、読み出し専用データとして指定されているデータはストレージユニット１０６から消去されることはない。
【０１２５】
〔変形例〕
以上のように、ある特定の実施の形態に基づいて本発明を説明した。しかし、本発明のより広い精神および範囲から逸脱することなく、本発明に対して様々な設計変更を行うことが可能なことは明らかである。したがって、明細書および図面は、あくまでも例示としてみなされるものであって、本発明を限定することを意図するものではない。
【０１２６】
【発明の効果】
以上説明したように、本発明のデータの保存方法，データストレージユニットおよびコンピュータ読み取り可能な記録媒体によれば、少なくとも、データを保存するためのストレージに何らかの障害が発生した場合の効果的な対処方法を提供することができる。
【図面の簡単な説明】
【図１】データを保存・保持するシステムを示すブロック図である。
【図２】図１のシステムに含まれるストレージユニットを示すブロック図である。
【図３】図２のストレージユニットの一部を示すブロック図である。
【図４】図２のストレージユニットの一部を示すブロック図である。
【図５】図２〜図４のストレージユニットに含まれる処理ユニットを示すブロック図である。
【図６】図２〜図４のストレージユニットに含まれる不揮発性ストレージデバイスの内容を示すブロック図である。
【図７】登録識別子値を示す説明図である。
【図８】登録オーソリティのデータベースのテーブルを示す説明図である。
【図９】図６の不揮発性ストレージデバイスに含まれるディレクトリエントリの内容を示す説明図である。
【図１０】有効期限に基づく消去プロセスを示すフローチャートである。
【図１１】障害の発生に基づく消去プロセスを示すフローチャートである。
【図１２】不正行為に基づく消去プロセスを示すフローチャートである。
【図１３】本発明の実施の形態を実現可能なコンピュータシステムのブロック図である。
【符号の説明】
１００  システム
１０２  ステーション
１０４  ネットワーク
１０６  ストレージユニット
１０８，１１２，２０６，２０８，３１２  リンク
１１０  登録オーソリティ
１１１  データベース
２００，２０２  不揮発性ストレージデバイス
２０４  処理ユニット
２１０，２１２  バックアップ電源
３００  通信インターフェース
３０２  センサコントローラ
３０４  不揮発性ストレージコントローラ
３０６  プロセッサ
３０８  揮発性メモリ
３１０  不揮発性メモリ
４００，５１６  ストレージＩＤ情報
４０２  ディレクトリ情報
４０４  データ
４２０  登録識別子値
４２２  ヘッダ・セグメント
４２４  デバイス・メーカー・セグメント
４２６  シリアル・ナンバー・セグメント
４６０  テーブル
４６２  行
４６４〜４６８  列
５００，５１２  ディレクトリエントリ
５０２  ファイル名
５０４  作成日付
５０６  有効期限
５０８  他のファイル管理情報
５１０  複製情報
５１２  ディレクトリエントリ
５１４  複製日付
６０２  バス
６０４  プロセッサ
６０６  メインメモリ
６０８  ＲＯＭ
６１０  ストレージデバイス
６１２  ディスプレイ
６１４  入力デバイス
６１６  カーソルコントロール
６１８  通信インターフェース
６２０  ネットワークリンク
６２２  ローカルネットワーク
６２４  ホストコンピュータ
６２６  ＩＳＰ
６２８  インターネット
６３０  サーバ
Ｓ１〜Ｓ４  センサ
【図１】
0004141070.tif 000002
【図２】
0004141070.tif 000003
【図３】
0004141070.tif 000004
【図４】
0004141070.tif 000005
【図５】
0004141070.tif 000006
【図６】
0004141070.tif 000007
【図７】
0004141070.tif 000008
【図８】
0004141070.tif 000009
【図９】
0004141070.tif 000010
【図１０】
0004141070.tif 000011
【図１１】
0004141070.tif 000012
【図１２】
0004141070.tif 000013
【図１３】
0004141070.tif 000014