(57)【要約】  【課題】  ハード・ディスク・ドライブにおいて保護されたパーティションを実施する装置、システム、および方法を提供する。  【解決手段】  ストレージ媒体に保護されたパーティションを実施するための装置、システム、および方法を開示する。この装置は、ホスト・デバイスと通信を行うように、更に、ストレージ・デバイスのための読み取りコマンドおよび書き込みコマンドを受信するように構成された制御モジュールと、この制御モジュール内で動作し、パーティションのための複数の保護状態および保護状態間の複数の許容可能な遷移を維持するように構成された保護モジュールと、を含む。このシステムは、この装置と、ホスト・デバイスと、このホストに結合され、ストレージ媒体および制御モジュールを有するエンクロージャを含むストレージ・デバイスと、を含む。この方法は、ホスト・デバイスと通信を行い、少なくとも１つのパーティションを有するストレージ・デバイスのための読み取りコマンドおよび書き込みコマンドを受信するステップと、ストレージ・デバイス内に配置された制御モジュール上に、パーティションのための複数の保護状態および保護状態間の複数の許容可能な遷移を維持するステップと、を含む。【選択図】  図１
2009512925.tif 000002
【特許請求の範囲】
【請求項１】
ストレージ媒体に保護されたパーティションを実施するための装置であって、
ホスト・デバイスと通信を行うように、更に、少なくとも１つのパーティションを有するストレージ・デバイスのための読み取りコマンドおよび書き込みコマンドを受信するように構成され、前記ストレージ・デバイスを収容するエンクロージャ内に配置された制御モジュールと、
前記制御モジュール内で動作し、前記パーティションのための複数の保護状態および前記保護状態間の複数の許容可能な遷移を維持するように構成された保護モジュールと、
を含む、装置。
【請求項２】
前記パーティションの保護ステータスおよび前記ストレージ・デバイスの論理ブロック・アドレスを検証するように構成されたチェック・モジュールを更に含む、請求項１に記載の装置。
【請求項３】
前記読み取りコマンドおよび書き込みコマンドから前記論理ブロック・アドレスおよび保護ステータスを抽出するように構成されたパース・モジュールを更に含む、請求項１または２に記載の装置。
【請求項４】
前記ストレージ・デバイスにデータを書き込むように、更に、前記パーティションの保護ステータス遷移を実行するように構成された書き込みモジュールを更に含む、請求項１、２、または３に記載の装置。
【請求項５】
前記複数の保護状態が、
不定数の読み取り／書き込み動作の実行を可能とするように構成された保護なし状態と、
書き込み、消去、およびフォーマット・コマンドのいかなる試みからも前記パーティションを保護するように構成されたＷＯＲＭ（Write Once Read Many：追記型）保護状態と、
１度のみの書き込み動作を許容し、その後は読み取り専用自動保護状態に変わるように構成された自動保護状態と、
いったんデータが前記パーティションに書き込まれると、書き込み、消去、およびフォーマット・コマンドを阻止するように構成された前記読み取り専用自動保護状態と、
を含む、前出の請求項のいずれかに記載の装置。
【請求項６】
前記複数の許容可能な遷移が、
前記保護なし状態から、通常の読み取り／書き込み動作のための前記保護なし状態、前記自動保護状態、および前記ＷＯＲＭ保護状態の１つへの遷移と、
前記自動保護状態から、前記保護なし状態または前記読み取り専用自動保護状態の１つへの遷移と、
前記読み取り専用自動保護状態から前記ＷＯＲＭ保護状態への遷移と、
を含む、前出の請求項のいずれかに記載の装置。
【請求項７】
前記ストレージ・デバイスが、ハード・ディスク・ドライブ、ＤＶＤ−Ｒ、ＤＶＤ−ＲＷ、ＤＶＤ−ＲＡＭ、ＨＤ−ＤＶＤ、ブルー・レイ、ＵＤＯ、ＣＤ−Ｒ，ＣＤ−ＲＷ、光磁気、相変化、ホログラフィック、テープ・カートリジック・ドライブ、テープ・カセット・ドライブ、および固体媒体を含む群から選択される、前出の請求項のいずれかに記載の装置。
【請求項８】
前記パーティションが固定サイズのストレージの少なくとも１つのユニットを更に含む、前出の請求項のいずれかに記載の装置。
【請求項９】
前記ストレージのユニットが論理ブロック・アドレス（ＬＢＡ）である、請求項８に記載の装置。
【請求項１０】
前記パーティションが可変サイズのストレージの少なくとも１つのユニットを含む、請求項１から７のいずれかに記載の装置。
【請求項１１】
ストレージ媒体に保護されたパーティションを実施するためのシステムであって、
ホスト・デバイスと、
前記ホストに結合され、ストレージ媒体および制御モジュールを有するエンクロージャを含むストレージ・デバイスと、
前記ホスト・デバイスと通信を行うように、更に、少なくとも１つのパーティションを有するストレージ・デバイスのための読み取りコマンドおよび書き込みコマンドを受信するように構成され、前記エンクロージャ内に配置された前記制御モジュールと、
前記制御モジュール内で動作し、前記パーティションのための複数の保護状態および前記保護状態間の複数の許容可能な遷移を維持するように構成された保護モジュールと、
を含む、システム。
【請求項１２】
前記パーティションの保護ステータスおよび前記ストレージ・デバイスの論理ブロック・アドレスを検証するように構成されたチェック・モジュールを更に含む、請求項１１に記載のシステム。
【請求項１３】
前記読み取りコマンドおよび書き込みコマンドから前記論理ブロック・アドレスおよび保護ステータスを抽出するように構成されたパース・モジュールを更に含む、請求項１１または１２に記載のシステム。
【請求項１４】
前記ストレージ・デバイスにデータを書き込むように、更に、前記パーティションの保護ステータス遷移を実行するように構成された書き込みモジュールを更に含む、請求項１１、１２、または１３に記載のシステム。
【請求項１５】
前記複数の保護状態が、
不定数の読み取り／書き込み動作の実行を可能とするように構成された保護なし状態と、
書き込み、消去、およびフォーマット・コマンドのいかなる試みからも前記パーティションを保護するように構成されたＷＯＲＭ（Write Once Read Many：追記型）保護状態と、
１度のみの書き込み動作を許容し、その後は読み取り専用自動保護状態に変わるように構成された自動保護状態と、
いったんデータが前記パーティションの書き込まれると、書き込み、消去、およびフォーマット・コマンドを阻止するように構成された前記読み取り専用自動保護状態と、
を含む、請求項１１から１４のいずれかに記載のシステム。
【請求項１６】
前記複数の許容可能な遷移が、
前記保護なし状態から、通常の読み取り／書き込み動作のための前記保護なし状態、前記自動保護状態、および前記ＷＯＲＭ保護状態の１つへの遷移と、
前記自動保護状態から、前記保護なし状態または前記読み取り専用自動保護状態の１つへの遷移と、
前記読み取り専用自動保護状態から前記ＷＯＲＭ保護状態への遷移と、
を含む、請求項１１から１５のいずれかに記載のシステム。
【請求項１７】
前記ストレージ・デバイスが、ハード・ディスク・ドライブ、ＤＶＤ−Ｒ、ＤＶＤ−ＲＷ、ＤＶＤ−ＲＡＭ、ＨＤ−ＤＶＤ、ブルー・レイ、ＵＤＯ、ＣＤ−Ｒ，ＣＤ−ＲＷ、光磁気、相変化、ホログラフィック、テープ・カートリジック・ドライブ、テープ・カセット・ドライブ、および固体媒体を含む群から選択される、請求項１１から１６のいずれかに記載のシステム。
【請求項１８】
前記パーティションが固定サイズのストレージの少なくとも１つのユニットを更に含む、請求項１１から１７のいずれかに記載のシステム。
【請求項１９】
前記ストレージのユニットが論理ブロック・アドレス（ＬＢＡ）である、請求項１８に記載のシステム。
【請求項２０】
前記パーティションが可変サイズのストレージの少なくとも１つのユニットを含む、請求項１１から１７のいずれかに記載のシステム。
【請求項２１】
ストレージ媒体に保護されたパーティションを実施する動作を行うためにデジタル処理装置によって実行可能な機械読み取り可能命令のプログラムを具現化する信号記録媒体であって、前記動作が、
ホスト・デバイスと通信を行い、少なくとも１つのパーティションを有するストレージ・デバイスのための読み取りコマンドおよび書き込みコマンドを受信することと、
前記ストレージ・デバイス内に配置された制御モジュール上に、前記パーティションのための複数の保護状態および前記保護状態間の複数の許容可能な遷移を維持することと、
を含む、信号記録媒体。
【請求項２２】
前記命令が、前記パーティションの保護ステータスおよび前記ストレージ・デバイスの論理ブロック・アドレスを検証する動作を更に含む、請求項２１に記載の信号記録媒体。
【請求項２３】
前記命令が、前記読み取りコマンドおよび書き込みコマンドから前記論理ブロック・アドレスおよび保護ステータスを抽出する動作を更に含む、請求項２１または２２に記載の信号記録媒体。
【請求項２４】
前記命令が、前記ストレージ・デバイスにデータを書き込み、前記パーティションの保護ステータス遷移を実行する動作を更に含む、請求項２１、２２、または２３に記載の信号記録媒体。
【請求項２５】
前記命令が、
保護なし状態から、通常の読み取り／書き込み動作のための前記保護なし状態、自動保護状態、およびＷＯＲＭ保護状態の１つへ、
前記自動保護状態から、前記保護なし状態または読み取り専用自動保護状態の１つへ、
前記読み取り専用自動保護状態から前記ＷＯＲＭ保護状態へ、
の遷移を許容する動作を更に含む、請求項２１から２４のいずれかに記載のシステム。
【請求項２６】
ストレージ媒体に保護されたパーティションを実施するための方法であって、
ホスト・デバイスと通信を行い、少なくとも１つのパーティションを有するストレージ・デバイスのための読み取りコマンドおよび書き込みコマンドを受信するステップと、
前記ストレージ・デバイス内に配置された制御モジュール上に、前記パーティションのための複数の保護状態および前記保護状態間の複数の許容可能な遷移を維持するステップと、
を含む、方法。
【請求項２７】
前記方法が、前記パーティションの保護ステータスおよび前記ストレージ・デバイスの論理ブロック・アドレスを検証するステップを更に含む、請求項２６に記載の方法。
【請求項２８】
前記方法が、前記読み取りコマンドおよび書き込みコマンドから前記論理ブロック・アドレスおよび保護ステータスを抽出するステップを更に含む、請求項２６または２７に記載の方法。
【請求項２９】
前記方法が、前記ストレージ・デバイスにデータを書き込み、前記パーティションの保護ステータス遷移を実行するステップを更に含む、請求項２６、２７、または２８に記載の方法。
【請求項３０】
前記方法が、
保護なし状態から、通常の読み取り／書き込み動作のための前記保護なし状態、自動保護状態、およびＷＯＲＭ保護状態の１つへ、
前記自動保護状態から、前記保護なし状態または読み取り専用自動保護状態の１つへ、
前記読み取り専用自動保護状態から前記ＷＯＲＭ保護状態へ、
の遷移を許容するステップを更に含む、請求項２６から２９のいずれかに記載の方法。
【請求項３１】
ストレージ媒体に保護されたパーティションを実施するための装置であって、
ホスト・デバイスと通信を行い、少なくとも１つのパーティションを有するストレージ・デバイスのための読み取りコマンドおよび書き込みコマンドを受信するための手段と、
前記ストレージ・デバイス内に配置された制御モジュール上に、前記パーティションのための複数の保護状態および前記保護状態間の複数の許容可能な遷移を維持するための手段と、
を含む、装置。
【請求項３２】
コンピュータ・プログラムであって、前記プログラムがコンピュータ上で実行されると、請求項２６から３０のいずれかの方法を実行するように適合されたプログラム・コード手段を含む、コンピュータ・プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はストレージ媒体に関し、更に具体的には、ストレージ媒体において保護されたパーティションを実施することに関する。
【背景技術】
【０００２】
電子ビジネスによって生成されるデータの爆発的な増加のため、あらゆる規模の企業にとって、ストレージ（記憶）は戦略的な投資の優先事項になっている。ストレージの優先順位が上がるにつれて、大きな問題が生じている。すなわち、書き換え不可能かつ消去不可能な方法でデータをアーカイブする必要性である。この必要性は、部分的に、証券取引委員会（Securities and Exchange Commission）およびＨＩＰＰＡが要求するもの等の金融データの管理、ならびに、法廷記録、カスタマ記録、およびその他の永続的な情報の管理の法的要件を満足させる必要性に基づいている。従来、書き込み不可能かつ消去不可能な形態でデータをストアするために、光媒体が用いられている。また、書き込み不可能かつ消去不可能なデータのことを、参照データ、固定コンテンツ・データ、または追記型（Write Once Read Many：ＷＯＲＭ）データとも称することがある。
【０００３】
情報技術提供業者は、ＷＯＲＭデータをしだいにディスク・ベースのストレージ・サブシステムへと切り換えている。これは、ストレージ・サブシステムにおけるディスクの価格が下がり続け、ストレージ容量が増大しているからである。ディスク・ベースのストレージ・サブシステムは、ストレージ・エリア・ネットワーク（ＳＡＮ）の一部とすることができる。Storage Network Industry Association（ＳＮＩＡ）は、ＳＡＮを、コンピュータ・システムとストレージ要素との間のデータ転送が主な目的であるネットワークと定義している。ＳＡＮは、物理的な接続を提供する通信インフラストラクチャと管理層とを含むことができ、この管理層が、接続、ストレージ要素、およびコンピュータ・システムを組織化して、データ転送を完全かつ強固なものとする。また、ＳＡＮは、ストレージ要素、ストレージ・デバイス、コンピュータ・システム、あるいは専用機器またはそれら全て、および制御ソフトウェアを含み、ネットワーク上で通信を行うストレージ・システムを含む場合もある。
【０００４】
通常、ストレージ・エリア・ネットワークは、ストレージまたはディスク・コントローラによって接続された、テープ・ドライブまたはハード・ディスク・ドライブ等の複数のストレージ・デバイスを含む。ディスク・コントローラは、一般に、ホスト機械またはクライアント機械からの読み取り／書き込み要求を処理するように構成されたサーバである。ホストは、Windows（Ｒ）、Linux（Ｒ）、ＵＮＩＸ（Ｒ）、ＡＩＸ（Ｒ）、ｚ／ＯＳ（Ｒ）等の様々なオペレーティング・システムを走らせることができる。大規模なコンピューティング環境においては、ストレージ・エリア・ネットワークは、大量のストレージおよびスケーラブルなサーバまたはストレージ・コントローラの性能を提供するための理想的なソリューションである。（ＡＩＸおよびｚ／ＯＳは、米国、他の国々、またはそれら両方におけるInternational Business Machines Corporationの商標である。Windowsは、米国、他の国々、またはそれら両方におけるMicrosoft Corporationの商標である。Linuxは、米国、他の国々、またはそれら両方におけるLinus Torvaldsの登録商標である。UNIXは、米国、他の国々、またはそれら両方におけるThe Open Groupの登録商標である。）
【０００５】
通常、ストレージ・エリア・ネットワーク環境において、ホストはディスク・コントローラからデータを要求する。次いで、ディスク・コントローラは、多くの場合ホーム位置と呼ばれる要求されたデータを含む特定のストレージ・デバイスから、データを検索して取得する。次いで、ディスク・コントローラは、このデータをホストに送信する。ホストがデータを変更すると、データはディスク・コントローラに返信され、ディスク・コントローラは変更されたデータをホーム位置に戻す。通常、ホストは、読み取りまたは書き込みの動作が完了したことを示すディスク・コントローラからの応答を待つ。多くの場合、ホーム位置は、ディスク・ドライブ上の１つのパーティションという形態を取る。更に、１つのパーティションは、固定サイズのストレージの少なくとも１つのユニット、または可変サイズのストレージの少なくとも１つのユニットを含む。一実施形態において、固定サイズのストレージのユニットは論理ブロック・アドレス（ＬＢＡ）である。
【０００６】
また、ディスク・コントローラは、異種のサーバによるアクセス、データ・キャッシング、様々なＲＡＩＤ実施およびクラスタリング等のデータ可用性機構、スケーラビリティ、デバイスの仮想化、複製サービス、および書き換え不可能かつ消去不可能ストレージ（ＷＯＲＭ）を与える能力等の機能を提供することができる。ＷＯＲＭ機能は通常、ディスク・コントローラ内部等、ストレージ・デバイスまたはディスク・ドライブの外側にあるマイクロコードによって提供されて、ディスク・ドライブにストアされたデータに対する変更、削除、および追加を防止する。ディスク・ドライブは一般に、サブシステムに組み込まれ封入されており、取り外すことはできない。また、ＷＯＲＭ機能を提供するストレージ・サブシステムのことを、ＷＯＲＭストレージ・サブシステムとも称する。
【発明の開示】
【発明が解決しようとする課題】
【０００７】
ＷＯＲＭストレージ・サブシステムは、参照データをアーカイブするための法的な手段としてますます受け入れられるようになっているが、セキュリティの問題は依然として残っている。すなわち、ディスク・ドライブ上のデータは本質的に書き換え可能かつ消去可能である。アーカイブされたデータの変更または削除を防止する唯一の保護策は、変更または削除を許さないコントローラ・マイクロコードによって与えられるが、これは、ロック可能なラックまたはキャビネットに封入されたディスク・ドライブの物理的な保護を与えない。ディスク・ドライブがストレージ・サブシステムから取り外されると、そのディスク・ドライブ上のデータはもはや安全でなく、上書き、削除、または他の方法で操作される恐れがある。これを防ぐために、データを特別な方法でフォーマットして、データの変更をいっそう難しくすることができる。しかしながら、フォーマットを復号してデータを操作することはなお可能である。このため、媒体の物理的な性質によってデータの変更に対する自然発生的な防壁を与える場合、アーカイブされたデータの統合性は、過去におけるよりも更に危険にさらされる。更に、現在のＷＯＲＭシステムは通常、ホスト・コンピュータまたはディスク・コントローラに対する独自のインタフェースに依存しており、これが既存の情報技術インフラストラクチャによる問題を招く恐れがある。
【課題を解決するための手段】
【０００８】
ハード・ディスク・ドライブにおいて保護されたパーティションを実施する装置、システム、および方法を提供することが好ましい。有利なことに、かかる装置、システム、および方法は、好ましくは標準化されたインタフェースを利用し、独自のハードウェアもインタフェースも必要としない。
【０００９】
保護されたパーティションを実施するための装置には、好ましくは、パーティションを保護するために必要なステップを機能的に実施するように構成された複数のモジュールを含む論理ユニットが備えられている。
【００１０】
第１の態様によれば、提供される制御モジュールは、ホスト・デバイスと通信を行うように、更に、少なくとも１つのパーティションを有するストレージ・デバイスのための読み取りコマンドおよび書き込みコマンドを受信するように構成されている。制御モジュールは、ストレージ・デバイスを収容するエンクロージャ内に配置されている。また、この装置は、制御モジュール内で動作する保護モジュールも含み、これは、パーティションのための複数の保護状態、および保護状態間の許容可能な複数の遷移を維持するように構成されている。
【００１１】
一実施形態において、この装置は、パーティションの保護ステータスおよび関連するストレージ・デバイスの論理ブロック・アドレスを検証するように構成されたチェック・モジュールを含む。
【００１２】
一実施形態において、この装置は、読み取りコマンドおよび書き込みコマンドから論理ブロック・アドレスおよび保護ステータスを抽出するように構成されたパース・モジュールを含む。更に別の実施形態において、この装置は、ストレージ・デバイスにデータを書き込むように、更に、パーティションの保護ステータス遷移を実行するように構成された書き込みモジュールを含む。
【００１３】
一実施形態において、複数の保護状態は、パーティションに対する不定数の読み取り／書き込み動作の実行を可能とするように構成された保護なし状態と、書き込み、消去、およびフォーマット・コマンドのいかなる試みからもパーティションを保護するように構成されたＷＯＲＭ（Write Once Read Many：追記型）保護状態と、を含む。更に、複数の保護状態は、１度のみの成功した書き込み動作を許容し、その後は読み取り専用自動保護状態に変わるように構成された自動保護状態と、いったんデータがパーティションの書き込まれると、書き込み、消去、およびフォーマット・コマンドを阻止するように構成された読み取り専用自動保護状態と、を含むことができる。
【００１４】
一実施形態において、複数の許容可能な遷移は、保護なし状態から、通常の反復的な読み取り／書き込み動作のための保護なし状態、パーティションに属する全ストレージ・ユニットが書き込まれた場合にパーティションを自動的に保護する自動保護状態、およびＷＯＲＭ保護パーティションに属するストレージ・ユニットに対する書き込みが不可能であるＷＯＲＭ保護状態の１つへの遷移を含むことができる。更に別の実施形態において、複数の許容可能な遷移は、自動保護状態から保護なし状態または読み取り専用自動保護状態の１つへの遷移と、読み取り専用自動保護状態からＷＯＲＭ保護状態への遷移と、を含む。
【００１５】
一実施形態において、ストレージ・デバイスは、ハード・ディスク・ドライブ、ＤＶＤ−Ｒ、ＤＶＤ−ＲＷ、ＤＶＤ−ＲＡＭ、ＨＤ−ＤＶＤ、ブルー・レイ、ＵＤＯ、ＣＤ−Ｒ，ＣＤ−ＲＷ、光磁気、相変化、ホログラフィック、テープ・カートリジック・ドライブ、テープ・カセット・ドライブ、および固体媒体を含む群から選択することができる。一実施形態において、パーティションは、固定サイズのストレージの少なくとも１つのユニット、または、可変サイズのストレージの少なくとも１つのユニットを含む。一実施形態において、固定サイズのストレージのユニットは論理ブロック・アドレス（ＬＢＡ）である。
【００１６】
第２の態様によれば、ストレージ媒体に保護されたパーティションを実施するためのシステムが提供される。このシステムは、ホスト・デバイスと、このホストに結合され、ストレージ媒体および制御モジュールを有するエンクロージャを含むストレージ・デバイスと、ホスト・デバイスと通信を行うように、更に、少なくとも１つのパーティションを有するストレージ・デバイスのための読み取りコマンドおよび書き込みコマンドを受信するように構成され、エンクロージャ内に配置された制御モジュールと、制御モジュール内で動作し、パーティションのための複数の保護状態および保護状態間の複数の許容可能な遷移を維持するように構成された保護モジュールと、を含む。
【００１７】
第３の態様によれば、ストレージ媒体に保護されたパーティションを実施するための方法が提供される。この方法は、ホスト・デバイスと通信を行い、少なくとも１つのパーティションを有するストレージ・デバイスのための読み取りコマンドおよび書き込みコマンドを受信するステップと、ストレージ・デバイス内に配置された制御モジュール上に、パーティションのための複数の保護状態および保護状態間の複数の許容可能な遷移を維持するステップと、を含む。
【００１８】
一実施形態において、この方法は、パーティションの保護ステータスおよびストレージ・デバイスの論理ブロック・アドレスを検証するステップも含む。
【００１９】
一実施形態において、この方法は、読み取りコマンドおよび書き込みコマンドから論理ブロック・アドレスおよび保護ステータスを抽出するステップも含む。更に別の実施形態において、この方法は、ストレージ・デバイスにデータを書き込み、パーティションの保護ステータス遷移を実行するステップも含む。
【００２０】
また、この方法は、保護なし状態から、通常の読み取り／書き込み動作のための保護なし状態、自動保護状態、およびＷＯＲＭ保護状態への遷移を許容するステップも含む。更に、この方法は、自動保護状態から保護なし状態または読み取り専用自動保護状態の１つへ、および読み取り専用自動保護状態からＷＯＲＭ保護状態への遷移を許容するステップも含む。
【００２１】
第４の態様によれば、本発明は、ストレージ媒体に保護されたパーティションを実施する動作を行うためにデジタル処理装置によって実行可能な機械読み取り可能命令のプログラムを具現化する信号記録媒体を提供する。この動作は、ホスト・デバイスと通信を行い、少なくとも１つのパーティションを有するストレージ・デバイスのための読み取りコマンドおよび書き込みコマンドを受信することと、ストレージ・デバイス内に配置された制御モジュール上に、パーティションのための複数の保護状態および保護状態間の複数の許容可能な遷移を維持することと、を含む。
【００２２】
第５の態様によれば、本発明は、ストレージ媒体に保護されたパーティションを実施するための装置を提供する。この装置は、ホスト・デバイスと通信を行い、少なくとも１つのパーティションを有するストレージ・デバイスのための読み取りコマンドおよび書き込みコマンドを受信するための手段と、ストレージ・デバイス内に配置された制御モジュール上に、パーティションのための複数の保護状態および保護状態間の複数の許容可能な遷移を維持するための手段と、を含む。
【００２３】
本明細書を通じて、機能、利点、または同様の言葉を用いる場合、本発明によって実現可能な機能および利点の全てが本発明のいずれか１つの実施形態に存在するわけではないことを示す。特徴および利点という言葉は、むしろ、ある実施形態に関連付けて記載する特定の機能、利点、または特徴が、本発明の少なくとも１つの実施形態に含まれることを意味するように理解される。従って、本明細書を通じて、機能および利点および同様の言葉の記述は、同一の実施形態を指す場合もあるが、必ずしもそうとは限らない。
【００２４】
更に、本発明の記載される機能、利点、および特徴は、１つ以上の実施形態においていずれかの適切な方法で組み合わせることも可能である。特定の実施形態の具体的な機能または利点の１つ以上を用いることなく本発明を実施可能であることは、当業者には認められよう。他の例において、いくつかの実施形態では、本発明の全ての実施形態に存在するわけではない追加の機能および利点が認められる場合がある。
【００２５】
これより、例示としてのみ、添付図面を参照して、本発明の実施形態について説明する。
【発明を実施するための最良の形態】
【００２６】
本明細書中に記載する機能ユニットの多くをモジュールと表記して、実施の独立性を特に強調している。例えば、１つのモジュールは、カスタムＶＬＳＩ回路またはゲート・アレイ、論理チップ等の既製の半導体、トランジスタ、または他のディスクリート部品を含むハードウェア回路として実施することができる。また、１つのモジュールは、フィールド・プログラマブル・ゲート・アレイ、プログラマブル・アレイ・ロジック、プログラマブル・ロジック・デバイス等のプログラマブル・ハードウェア・デバイスとして実施することも可能である。
【００２７】
また、モジュールは、様々なタイプのプロセッサによって実行されるソフトウェアにおいて実施することができる。識別されている実行可能コードのモジュールは、例えば、コンピュータ命令の１つ以上の物理的または論理的なブロックを含み、これは例えば、オブジェクト、手順、または機能として組織化されている場合がある。しかしながら、識別されたモジュールの実行ファイルは、物理的に一箇所に配置する必要はなく、異なる位置にストアされた異種の命令を含むことができる。これらは、論理的に結合されるとモジュールを構成し、モジュールのための規定された目的を達成する。
【００２８】
実際、実行可能コードのモジュールは、単一の命令とすることができ、または複数の命令とすることができ、更に、いくつかの異なるコード・セグメント、異なるプログラム、およびいくつかのメモリ・デバイス間に分散させることも可能である。同様に、動作データは、本発明においてはモジュール内で識別し例示することができ、いずれかの適切な形態で具現化し、いずれかの適切なタイプのデータ構造内で組織化することができる。動作データは、単一のデータ・セットとして集約することができ、または異なるストレージ・デバイスを含む異なる位置に分散させることができ、更に、少なくとも部分的に、システムまたはネットワーク上の電子信号としてのみ存在することも可能である。
【００２９】
本明細書を通じて、「一実施形態」「実施形態」または同様の言葉を用いる際には、その実施形態に関連付けて記載する特定の機構、構造、または特徴が、本発明の少なくとも１つの実施形態に含まれることを意味する。従って、本明細書を通じて、「一実施形態において」、「実施形態において」、および同様の言葉を用いる場合は、全て同一の実施形態を指すことがあるが、必ずしもそうでない場合もある。
【００３０】
信号記録媒体の言及は、信号を発生するか、信号を発生させるか、またはデジタル処理装置上で機械読み取り可能命令のプログラムを実行させることができるいずれかの形態を取ることができる。信号記録媒体は、伝送線、コンパクト・ディスク、デジタル・バーサタイル・ディスク（digital-versatile disk）、磁気テープ、ベルヌーイ・ドライブ（Bernoulli drive）、磁気ディスク、パンチ・カード、フラッシュ・メモリ、集積回路、またはその他のデジタル処理装置のメモリ・デバイスによって具現化することができる。
【００３１】
更に、本発明に記載される機構、構造、または特徴は、１つ以上の実施形態においていずれかの適切な方法で組み合わせることができる。以下の説明において、プログラミング、ソフトウェア・モジュール、ユーザ選択、ネットワーク・トランザクション、データベース・クエリ、データベース構造、ハードウェア・モジュール、ハードウェア回路、ハードウェア・チップ等の例等、多数の具体的な詳細事項について述べて、本発明の実施形態の完全な理解に役立てる。しかしながら、こういった具体的な詳細事項の１つ以上を用いずに、または他の方法、構成要素、材料等を用いても本発明を実施可能であることは、当業者には認められよう。他の例において、本発明の態様を不明瞭にするのを避けるために、周知の構造、材料、または動作については、詳細には図示も説明も行わないこととする。
【００３２】
図１は、本発明の一実施形態に従ったストレージ・デバイス１００を示す概略ブロック図である。ストレージ・デバイス１００は、エンクロージャ１０２、ストレージ媒体１０４、制御モジュール１０６、および通信インタフェース１０８を含むことができる。ストレージ媒体１０４は、磁気、光、および固体ストレージ媒体を含むことができるが、これらには限定されない。磁気ストレージ媒体１０４の例は、ハード・ディスク・ドライブおよびテープ・ドライブを含むが、これらには限定されない。通信インタフェース１０８は、ＨＶＤまたはＬＶＤ  ＳＣＳＩ、ファイバ・チャネル、ＥＳＣＯＮ、ＦＩＣＯＮ、およびＲＳ−２３２を含むことができるが、これらには限定されない。
【００３３】
光媒体の例は、ＤＶＤ−Ｒ（ディタル・バーサタイル・ディスク・追記型）、ＤＶＤ−ＲＷ（ＤＶＤ・書き換え可能）、ＤＶＤ−ＲＡＭ（ＤＶＤランダム・アクセス・メモリ）、ＨＤ−ＤＶＤ（高精細ＤＶＤ）、ブルー・レイ、ＵＤＯ（Ultra Density Optical）、ＣＤ−Ｒ（コンパクト・ディスク・追記型）、ＣＤ−ＲＷ（ＣＤ・書き換え可能）、光磁気（ＭＯ）、相変化（phase change：ＰＣ）、ホログラフィック等を含む。固体ストレージ媒体の例は、ＳＤＲＡＭ等の揮発性メモリおよびフラッシュ・メモリ等の不揮発性メモリを含む。
【００３４】
制御モジュール１０６は、ホストから通信インタフェース１０８を介して入力要求および出力要求（以降、「Ｉ／Ｏ要求またはコマンド」と称する）を受信して、その後このＩ／Ｏ要求を実行するように構成されている。制御モジュール１０６は、エンクロージャ１０２内のストレージ媒体１０４と動作的に結合することができる。あるいは、制御モジュール１０６は、ネットワークを介して複数のストレージ媒体１０４を制御するように構成することも可能である。このような実施の一例は、ストレージ・エリア・ネットワーク（図示せず）を含む。
【００３５】
制御モジュール１０６は、Ｉ／Ｏ要求または読み取り／書き込みコマンドを実行するように構成されており、これによってストレージ媒体１０４のストレージの最小ユニットにアクセスする。一実施形態において、最小ストレージ・ユニットは、論理ブロック・アドレス（ＬＢＡ）である。論理ブロック・アドレッシングにより、ストレージ媒体の物理的な位置を、ホストが使用可能であるアドレスに変換する。例えば、論理ブロック・アドレッシングによって、ハード・ディスク・ドライブのシリンダ、ヘッド、およびセクタ仕様を、オペレーティング・システムまたはＢＩＯＳ（basic input/output system）が使用可能であるアドレスに変換する。
【００３６】
更に別の実施形態において、制御モジュール１０６は、通信リンクを介してホストに接続し、同様にストレージ媒体１０４に接続することができる。上述したように、ストレージ媒体１０４は、代替的な通信リンクを介したディスク・ドライブ、テープ・ドライブ、あるいは光ドライブまたはそれら全てを含むことができる。通信インタフェース１０８は更に、Ｉ／Ｏ要求を受信し、このＩ／Ｏ要求を制御モジュールに渡すように構成されている。制御モジュール１０６は、ＥＳＣＯＮからＳＣＳＩまたはＦＩＣＯＮからＳＣＳＩへのプロトコル変換を実行するように構成することができる。更に、これは、取り付けられたストレージ媒体１０４をグループ化して論理デバイスまたはボリュームとするように構成することができる。また、制御モジュール１０６は、Remote Volume Mirroring、ＰＰＲＣ（Peer-to-Peer Remote Copy）、ＸＲＣ（Extended Remote Copy）、SnapShot、Flashcopy等の最新の機能を提供することも可能である。
【００３７】
図２は、従来技術に従った論理ブロック・アドレッシング（ＬＢＡ）２００を示す概略ブロック図である。論理ブロック・アドレッシング２００は、ハード・ディスク・ドライブ、光ディスク・ドライブ、および着脱可能ストレージ・ドライブ等の固定ブロック・アーキテクチャ（ＦＢＡ）・システムにおいて使用可能である。ＦＢＡ周辺装置において、ＬＢＡにアクセスする読み取り／書き込みコマンドを実行することによって、Ｉ／Ｏが行われる。ＬＢＡは固定量のデータを参照する。
【００３８】
ストレージ媒体１０４は、ストレージ媒体の容量に応じて、何百万ものＬＢＡを含む場合がある。図２は複数のＬＢＡを示し、各ＬＢＡは単一のボックス２０２として表している。当業者には周知のように、ＬＢＡはいずれかの順序で書き込むことができ、第１のＬＢＡ２０２ａから最後のＬＢＡ２０２ｂまで順番に書き込む必要はない。
【００３９】
また、最後のＬＢＡ２０２ｂは、最大ＬＢＡと呼ぶこともできる。ストレージ媒体１０４のディスク・ドライブの容量は、媒体上のＬＢＡの数およびＬＢＡ２０２の固定サイズによって決まる。例えば、典型的なＬＢＡのサイズである５１２バイトを想定すると、１０００万のＬＢＡを有するハード・ディスク・ドライブは、５１．２億バイトの容量に相当する。
【００４０】
パーティション２０４は、別個のストレージ媒体１０４として動作することができるストレージ媒体１０４の分離された部分である。パーティション２０４は、少なくとも１つのＬＢＡ２０２を含む。例えば、パーティション２０４ａは３つのＬＢＡ２０２を含み、パーティション２０４ｂは１つのＬＢＡ２０２を含み、パーティション２０４ｃは２つのＬＢＡ２０２を含む。あるいは、パーティション２０４は何百万もの２０２を含む場合がある。ストレージ媒体１０４が多数のパーティションを含み、各パーティション２０４が異なる保護状態を有することができる。更に別の実施形態においては、パーティション２０４は重複しない。これは、いずれかの２つのパーティションが同一のＬＢＡ２０２を含まないことを意味する。
【００４１】
図３は、本発明の一実施形態に従った制御モジュール１０６を示す概略ブロック図である。制御モジュール１０６は、一実施形態において、通信モジュール３０２、書き込みモジュール３０４、パース・モジュール３０６、保護モジュール３０８、およびチェック・モジュール３１０を含む。通信モジュール３０２は、通信インタフェース１０８を介してホストと通信を行うように構成されており、読み取り／書き込みコマンドを受信し、その後、書き込みコマンドを書き込みモジュール３０４に渡すか、または読み取りコマンドの結果としてデータをホストに戻す。
【００４２】
更に別の実施形態では、パース・モジュール３０６は、読み取り／書き込みコマンドから、論理ブロック・アドレスおよび保護ステータスを抽出するように構成されている。チェック・モジュール３１０は、ストレージ媒体１０４のパーティション２０４およびＬＢＡ２０２の保護ステータスを検証するように構成されている。保護モジュール３０８は、複数の保護状態および保護状態間の許容可能な遷移によって構成されている。保護モジュール３０８については、以下で図４を参照して更に詳細に説明する。書き込みモジュール３０４は、ストレージ媒体１０４にデータを書き込み、保護ステータス遷移を実行するように構成されている。
【００４３】
図４は、本発明の一実施形態に従った複数の保護状態を示す概略ブロック図である。一実施形態において、保護状態は、保護モジュール３０８内で実施することができる。保護モジュール３０８は、保護なし状態４０２、ＷＯＲＭ（Write Once Read Many）保護状態４０４、自動保護状態４０６、および読み取り専用自動保護状態（以降、「読み取り専用状態」と称する）４０８を含むことができる。保護なし状態４０２は、ストレージ媒体１０４全体についてのデフォルトの工場設定とすることができ、あらゆるＬＢＡ２０２に対して不定数の反復的な読み取り／書き込み動作の実行を可能とする。
【００４４】
この保護なし状態４０２は、明示的にＷＯＲＭ状態４０４または自動保護状態４０６によって設定されていないストレージ媒体１０４上の領域に対してセットされたままである。ＷＯＲＭ状態４０４は、「ＷＯＲＭ」保護に関連付けられたあらゆるパーティション２０４を、いかなる書き込み、消去、またはフォーマット動作の試みからも保護するように構成されている。自動保護状態４０６は、「自動保護」パーティション２０４におけるあらゆるＬＢＡ２０２を、１度のみ書き込み可能とする。この書き込み動作が良好に完了した後、そのＬＢＡ２０２は自動的に「読み取り専用自動保護」状態４０８に遷移する。書き込まれていないパーティション内の残りのＬＢＡ２０２は、自動保護状態４０６のままである。読み取り専用自動保護状態４０８は、いったんＬＢＡ２０２が書き込まれたら、いかなる書き込み、消去、およびフォーマット動作も阻止するように構成されている。
【００４５】
矢印４１２は、パーティション２０４に対する保護状態の許容可能な状態遷移を示すルールを表す。例えば、保護モジュール３０８は、保護なし状態４０２を有するパーティション２０４が、矢印４１２ａで示すように、データの書き換えを可能とすることを許容するように構成されている。保護なし状態４０２は、適切な状態遷移コマンドを発行することによって、ＷＯＲＭ保護状態４０４に遷移することができる（４１２ｂ）。このコマンドについては以下で説明する。あるいは、保護なし状態は、状態遷移コマンドの結果として自動保護状態４０６に変化することも可能である（４１２ｃ）。図示したように、ＷＯＲＭ保護状態４０４は、いかなる状態遷移も許容しないように構成することができる。
【００４６】
自動保護状態４０６は、１つのみの成功した書き込みコマンドをパーティション２０４に発行可能とするように構成することができる。書き込みコマンドが良好に処理されると、自動保護されたパーティション４０６の保護状態は、読み取り専用自動保護状態４０８に遷移する（４１２ｄ）。書き込みが行われていないＬＢＡ２０２がある場合は、書き込みが行われたＬＢＡ２０２は読み取り専用自動保護４０８として表示され、書き込みが行われていないＬＢＡ２０２は自動保護状態４０６のままである。いったん自動保護パーティションの全てのＬＢＡ２０２で書き込みが行われると、パーティション内の全てのＬＢＡ２０２はＷＯＲＭ保護４０４となる（４１２ｅ）。
【００４７】
更に別の実施形態においては、自動保護状態４０６のパーティションは、適切な状態遷移コマンド４１２ｆを送信することによって保護なし状態４０２に変化する場合もある。これは、例えばパーティションの状態が間違って保護なしから自動保護にセットされた場合に、望ましくない状態変化を修正することができる。
【００４８】
いったんパーティションがＷＯＲＭ保護状態４０４または読み取り専用自動保護状態４０８になると、データは、上書き、削除、または他の方法で操作することができなくなる。更に、ＷＯＲＭ保護状態４０４および読み取り専用自動保護状態４０８は、いったん付与されるとリセットすることができない。これは、ＷＯＲＭ保護状態４０４または読み取り専用自動保護状態に属するあらゆるＬＢＳをアドレッシングする書き込み、消去、またはフォーマット動作のいかなるＩ／Ｏ要求も、制御モジュール１０６によって拒否されることを意味する。更に別の実施形態では、自動保護４０６パーティション内のＬＢＡ２０２は、書き込みが行われるまで自動保護のままである。自動保護４０６パーティション内の少なくとも１つのＬＢＡ２０２が書き込まれると、このパーティションは読み取り専用自動保護４０８に変化する。自動保護パーティション４０６内の最後のＬＢＡ２０２に書き込みが行われると、読み取り専用自動保護４０８のパーティションは、ＷＯＲＭ４０４保護パーティションに遷移する。
【００４９】
一実施形態において、保護状態４０２、４０４、４０６、４０８は、照会コマンドにおいて、接尾文字ｂで表す二進数として、または十進数（かっこで示す）として表現することができる。例えば、保護なし状態４０２は００ｂ（十進数の０）と表すことができ、ＷＯＲＭ状態４０４は０１ｂ（十進数の１）と表すことができ、自動保護状態４０６は１０ｂ（十進数の２）と表すことができ、読み取り専用自動保護状態４０８は１１ｂ（十進数の３）と表すことができる。
【００５０】
更に別の実施形態では、保護モジュール３０８は、実質的に削除された保護状態（図示せず）を含む。この実質的に削除された状態は、ＷＯＲＭまたは自動保護データが「実質的に削除された」ことを示すように構成することができる。実質的に削除されたデータは、履歴の目的のためにホストが読み出してアクセス可能であるが、データが古いまたはもはや適切でないと考えられる等、理由のいかんを問わず、「実質的に削除された」と表示される。
【００５１】
図５は、ＳＣＳＩ−３インタフェース規格に従ったモード選択コマンド５００の一実施形態を示す概略ブロック図である。図示するモード選択コマンド５００は、コマンド・コード１５ｈ  ５０２を用いるＳＣＳＩ（Small Computer System Interface）コマンドである。モード選択コマンド５００は、本発明において、状態遷移コマンドの一例として与えられる。例えば、モード選択コマンド５００を用いて、保護なし状態４０２からＷＯＲＭ保護状態４０４への遷移（４１２ｂ）、または保護なし状態４０２から自動保護状態４０６への遷移（４１２ｃ）、または自動保護状態４０６から保護なし状態４０２への遷移（４１２ｆ）を開始することができる。モード選択コマンド５００は、ホスト・システム（以降はイニシエータとも呼ぶ）によって開始し、ストレージ・デバイス１００の通信インタフェース１０８を介して制御モジュール１０６によって受信することができる。コマンド・コード１５ｈ  ５０２を用いるモード選択コマンド５００は、ホストがターゲット・ストレージ・デバイスのパラメータ・リスト長５０４および論理ユニット５０６を指定するための手段を提供する。パラメータ・リスト長５０４は、転送されるモード・ページのサイズをバイト単位で指定する。モード選択コマンド５００の後には常に、ホスト・システムからストレージ・デバイス１００に送信されるモード・ページが続く。
【００５２】
図６は、本発明の一実施形態に従ったモード検知コマンド６００を示す概略ブロック図である。モード検知コマンド６００によって、ホストは、ストレージ・デバイス１００からのモード・ページから等のモード・ページ情報を検索または照会することができる。モード検知コマンド６００は、ホスト・システム（以降はイニシエータとも呼ぶ）によって開始し、ストレージ・デバイス１００の通信インタフェース１０８を介して制御モジュール１０６によって受信することができる。ＳＣＳＩモード検知コマンドのコマンド・コード６０２は、１Ａｈである。モード検知コマンド６００によって、ホストは、ページ・コード６０４および割り当て長６０６を指定することができ、この割り当て長６０６は戻される最大のデータ・サイズを指定する。ページ・コード６０４は、検索されるモード・ページのページ・コード、およびターゲット・ストレージ・デバイスの論理ユニット６０８を指定する。割り当て長は、モード・ページの長さを指定する。モード検知コマンド６００の結果、これを受信するストレージ・デバイスは、適切なモード・ページを戻す。
【００５３】
図７は、本発明の一実施形態に従ったモード・ページ７００を示す概略ブロック図である。図６の割り当て長６０６は、モード検知コマンド６００の結果としてストレージ媒体１０４からホストに転送されるバイト数を指定し、これはモード・ページ７００のサイズである。一実施形態では、モード検知コマンド６００によって、ホストは、パーティションまたは個々のＬＢＡの保護状態を取得することができる。
【００５４】
モード・ページ７００は、モード検知コマンド６００に対する応答としてストレージ・デバイスが送信するものであり、これによって、ホスト・システムは、パーティションまたはＬＢＡの状態について照会することができる。モード・ページ７００内の全てのフィールドがモード検知コマンドにより用いられるわけではない。例えば、モード検知コマンド６００のフィールド６０４が、モード・ページ・コード０Ｄｈを指定する０Ｄｈにセットされている場合、ストレージ・デバイスは、以下の文字を有するモード・ページ７００を戻すことができる。すなわち、フィールド７０２は０Ｄｈにセットされ、フィールド７０４は１７ｈにセットされ、ストレージ・デバイスがＷＯＲＭパーティションをサポートすることができる場合フィールド７０５は１にセットされ、少なくとも１つの保護パーティションが活性化されている場合フィールド７０６は１にセットされ、フィールド７０８はストレージ・デバイス内に存在する保護パーティションの数を戻し、フィールド７１０は以降のフィールド７１１、７１２、および７１３が該当するパーティションの数を戻し、フィールド７１１はパーティションの開始アドレス（またはＬＢＡ）を指定し、フィールド７１２はパーティションの終了アドレスを示し、フィールド７１３は、保護なし００ｂ、ＷＯＲＭ保護０１ｂ、自動保護１０ｂ、または読み取り専用自動保護１１ｂのうち１つであるそのパーティション状態の保護ステータスを戻す。このシーケンスにおいて、ストレージ・デバイスは、構成された各パーティションについて、モード・ページ７００を何回も戻す。
【００５５】
モード選択およびモード検知コマンドを組み合わせて用いて、特定のパーティションの開始および終了アドレス（ＬＢＡ）ならびに保護状態等、保護パラメータの照会を行うことができる。このシーケンスを開始するには、まず、フィールド５０２に１５ｈを指定すると共にフィールド５０４に１７ｈを指定し、更にフィールド５０６にストレージ・デバイスの論理ユニット・アドレスを指定するモード選択コマンド５００を送信する。この後、モード・ページ７００を送信する、そのフィールド７１０は、情報を要求するパーティションの番号にセットし、モード・ページ７００の他のフィールドは、全て００ｈにセットして、これが状態遷移でないことを示す。これらの２つのコマンドは、ホスト（イニシエータ）からストレージ・デバイスへと送信される。
【００５６】
一実施形態において、ホストは次いでモード検知コマンド６００を送信する。そのフィールド６０２は１Ａｈにセットされ、フィールド６０４は０Ｄｈｎに、フィールド６０６は１７ｈにセットされて、予想されるモード・ページ長を示す。フィールド６０８は、ストレージ・デバイスのアドレスにセットされる。このコマンド・シーケンスに対する応答として、ストレージ・デバイスはモード・ページ７００を戻す。そのフィールド７０２は０Ｄｈにセットされ、フィールド７０４は１７ｈにセットされ、ストレージ・デバイスがＷＯＲＭパーティションをサポートすることができる場合フィールド７０５は１にセットされ、少なくとも１つの保護パーティションが活性化されている場合フィールド７０６は１にセットされ、フィールド７０８はストレージ・デバイス内に存在する保護パーティションの数を戻し、フィールド７１０は情報が要求されたパーティションの番号を戻す。一実施形態では、この番号は以前に送信したものと同じ番号とすることができる。フィールド７１１はパーティションの開始アドレス（またはＬＢＡ）を指定し、フィールド７１２はパーティションの終了アドレスを示し、フィールド７１３は、保護なし００ｂ、ＷＯＲＭ保護０１ｂ、自動保護１０ｂ、または読み取り専用自動保護１１ｂのうち１つであるそのパーティション状態の保護ステータスを戻す。
【００５７】
ＳＣＳＩ規格に従って、ストレージ・デバイスとホスト・システムとの間で双方向的にモード・ページを用いる。本発明において、ホスト・システムは、モード選択コマンドに関連付けてモード・ページ７００を用いて、状態遷移を開始する。また、ホスト・システムは、モード検知信号に関連付けてこのモード・ページ７００を用いて、パーティションまたはＬＢＡのステータスについて照会する。ストレージ・デバイスは、モード・ページから、パーティション（複数のパーティション）の保護状態を導出する。従って、モード・ページはストレージ・デバイスにストアされる。通常、多数のモード・ページがあり、各モード・ページは一意のページ・コードを有する。保護パーティション・モード・ページのためのページ・コードは、例示的に０Ｄｈにセットされている。
【００５８】
ページ・コード７０２は、保護パーティションがセットされることを示す。これは一意のページ・コードであり、ホスト・システムによって用いられて、状態遷移を開始するかまたは状態遷移について照会する。保護パーティション・モード・ページのページ・コードは、例示的に０Ｄｈにセットされている。フィールド７０４またはモード・ページ７００は、このモード・ページの長さをバイト単位で規定し、この例ではこれは２５バイトにセットされている。フィールドＷＯＲＭ７０５は、ＷＯＲＭ保護機構がこの製品によってサポートされているか否かを示し、保護状態の照会のためだけに用いられる。フィールドＡｃｔ７０６は、少なくとも１つの保護パーティションが活性化されていることを示す。また、このフィールドは照会コマンド動作によって用いられる。このフィールドが「０」にセットされている場合、保護パーティションはセットされていない。その他の場合、このディスク・ドライブ上にはセットされた保護パーティションがある。
【００５９】
パーティション最大数フィールド７０８はパーティションの最大数を示し、これは、例えばＬＢＡアドレスのような開始および終了アドレスによって設定することができる。このフィールドは照会動作によって用いられる。これは製品固有の値であり、通常はストレージ・デバイスの製造中に与えられる。この値はＦＦＦＥｈを超えてはならない。フィールド保護パーティション７１０によって、既存のパーティションを指定することができる。このフィールドを「０」の値にセットすると、全てのパーティションが指定される。ＦＦＦＦｈという値は、フィールド７１０に指定された特定のＬＢＡの情報が戻されることを示す。
【００６０】
開始境界７１１は、このパーティションの状態遷移が行われるかまたは照会動作が開始するＬＢＡを示す。終了境界７１２は、このパーティションの状態遷移が行われるかまたは照会動作が終了するＬＢＳを指定する。フィールド７１１および７１２は、０よりも大きくなければならず、終了境界７１２は開始境界７１１の値以上でなければならない。保護ステータス７１３は、このパーティション状態のための保護ステータスを指定する。これは、保護なし００ｂ、ＷＯＲＭ保護０１ｂ、自動保護１０ｂ、または読み取り専用自動保護１１ｂのうち１つである。
【００６１】
先に略述したように、保護ステータスは、図４の許容可能な遷移に基づいて、単一のＬＢＡまたはＬＢＡの範囲について設定することができる。００ｂ、０１ｂ、１０ｂ、または１１ｂのいずれかの保護ステータスに関連付けられる一連のＬＢＡは全て、保護パーティションである。従って、保護パーティションは、１つのＬＢＡから媒体上の最大数のＬＢＡまで、いかなる数のＬＢＡからも構成することができる。
【００６２】
一実施形態において、ＷＯＲＭ保護状態４０４または自動保護状態４０６を有するパーティションを作成するために、または、保護なし状態４０２、ＷＯＲＭ保護状態４０４、自動保護状態４０６、もしくは読み取り専用自動保護状態４０８である可能性があるパーティション状態を検索するために、制御モジュール１０６は、モード選択５００およびモード検知６００等の既存のＳＣＳＩコマンドを受信するように構成されている。モード・ページ７００は、パーティションに関する情報７１０、７１１、７１２、７１３を含み、ＬＢＡの範囲およびセットされる保護ステータス等の保護パラメータを含む。保護モジュール３０８は、パーティションの作成および操作に従って、許容可能な状態４０２、４０４、４０６、４０８を利用するように構成されている。
【００６３】
図７は、本発明を実施するための一実施形態として、モード・ページ７００のコード０Ｄｈ７０２を一例として与える。あるいは、ＳＣＳＩ規格に従った、未使用の予備モード・ページの異なるページ・コードも使用可能であることは、ＳＣＳＩコマンドの当業者には認められよう。モード・ページ７００は、ストレージ・デバイス１００とホストとの間で双方向的に用いられる。ホストは、モード選択５００コマンドに関連付けてモード・ページ７００を利用して、パーティションを作成する、すなわち「モードを選択する」ことができる。ホストは、モード検知６００コマンドに関連付けてこのモード・ページ７００を用いて、保護状態４０２、４０４、４０６、４０８の検索対象のパーティションを指定する。また、制御モジュール１０６は、モード・ページ７００を用いて、パーティション内に存在するデータおよび対応する保護状態４０２、４０４、４０６、４０８を取得し、要求された場合にはこれをホストに戻すことができる。
【００６４】
以下の概略的なフロー・チャート図は、全体的に論理フロー・チャート図として説明する。このため、図示する順序および表記するステップは、提示する方法の一実施形態を示すものである。他のステップおよび方法も、例示する方法の１つ以上のステップまたはその部分に対する、機能、論理、または効果の点で均等であると考えることができる。更に、ここで用いる形式および記号は、この方法の論理ステップを説明するために与えられ、この方法の範囲を限定しないと理解される。フロー・チャート図において、様々な矢印の種類および線の種類を用いる場合があるが、それらは対応する方法の範囲を限定しないものと理解される。実際、いくつかの矢印または他の接続記号は、この方法の論理的な流れを示すためだけに用いることができる。例えば、ある矢印は、図示する方法の列挙したステップ間における不特定の時間の待機期間または監視期間を示すことができる。更に、ある特定の方法を行う順序は、図示する対応ステップの順序に正確に従う場合もあるし、そうでない場合もある。
【００６５】
図８は、本発明の一実施形態に従って許容可能な保護状態遷移を実施するための方法８００を示す概略フロー・チャート図である。方法８００は８０２において開始する。制御モジュール１０６の通信モジュール３０２は、インタフェース１０８を介して、モード選択コマンド５００およびモード・ページ７００を受信する（８０４）。次いで、パース・モジュール３０６は、モード・ページ７００から、ＬＢＡおよび新しい保護状態を抽出する（８０６）。ＬＢＡおよび新しい保護状態の抽出（８０６）は、ＬＢＡおよび新しい保護状態のリストを発生させることを含む場合がある。次いで、チェック・モジュール３１０は、取得しているＬＢＡの実際の保護状態を検証する。一実施形態において、実際の状態は、要求された各ＬＢＡに対してストレージ媒体１０４が関連付けた保護状態である。次いで、チェック・モジュール３１０は、コマンドから抽出されたＬＢＡリストについて実際の保護状態を取得する（８０８）。
【００６６】
次いで、保護モジュール３０８は、新しい保護状態を実際の保護状態と比較して、ステータス遷移が許容可能であるか否かを判定する（８１０）。一実施形態において、許容可能な遷移は、図４を参照して上述したように予め決まっていて規定されている。モード・ページから抽出された（８０４）各ＬＢＡについて、新しい保護状態への遷移が可能である場合（８１０）、書き込みモジュール３０４は新しい保護状態をストアし（８１２）、通信モジュール３０２がホストに成功応答を戻して、方法８００は終了する（８１４）。しかしながら、ＬＢＡのいずれにも遷移が許容されていない場合（８１０）、保護モジュール３０８は遷移を阻止し、通信モジュール３０２はＳＣＳＩチェック条件ステータス等のエラーをホストに戻す（８１３）。一実施形態では、エラーは、「タスクの異常終了」または異常終了エラー・メッセージとすることができる。次いで方法８００は終了する（８１４）。
【００６７】
一実施形態においては、ストレージ媒体１０４は、チェック・モジュール３１０の一部とすることができる内部メモリに、モード選択コマンド５００が与える情報をストアするように構成することができる。例えば、手ごろな価格の１ＭＢメモリ・チップを用いて、約４万の保護パーティションの情報をストアすることができる。この内部メモリによって、書き込みコマンドの処理等のその後行う動作のために、このデータに対する高速アクセスを可能とする。更に別の実施形態では、保護パーティション情報は、典型的にはアイドル時間中に、ストレージ媒体１０４上の予備領域に定期的に書き込むことができる。
【００６８】
図９は、書き込みコマンドを処理するための方法９００の一実施形態を示す概略フロー・チャート図である。方法９００は９０２において開始する。通信モジュール３０２は、通信インタフェース１０８を介して書き込みコマンドを受信する（９０４）。次いでパース・モジュール３０６は、書き込みコマンド１０００等の書き込みコマンドから、全てのコマンド・アドレス（ＬＢＡ）を取得する（９０６）。コマンド・アドレスは、データを書き込む開始ＬＢＡを含み、更に、書き込みを行うその後のＬＢＡの数を示す転送長を含む。次いで、チェック・モジュール３１０が、コマンド・アドレス（ＬＢＡ）について実際の保護状態を取得する（９０８）。書き込みコマンド１０００から取得された（９０６）ＬＢＡを、「ＣＭＤ＿ＬＢＡ」と称することがある。次いで保護モジュール３０８は、コマンドからのアドレスを、ストレージ媒体１０４上の対応する保護状態と比較する。保護モジュール３０８によって、ＣＭＤ＿ＬＢＡがＷＯＲＭ保護領域または読み取り専用（ＲＯ）自動保護領域に対応することがわかると、保護モジュール３０８は書き込みコマンドを阻止し、通信モジュール３０２はエラー・メッセージを戻す（９１１）。そして方法９００は終了する（９１２）。一実施形態において、エラー・メッセージは、上述した異常終了エラー・メッセージを含むことができる。
【００６９】
あるいは、チェック・モジュール３１０によって、全てのＣＭＤ＿ＬＢＡが書き込み可能パーティションに割り当てられていることがわかった場合、書き込みモジュール３０４はストレージ媒体１０４にデータを書き込む（９１４）。書き込みが成功しないと（９１６）、制御モジュール１０６はエラー回復プロセスを開始する（９１８）。書き込み成功の判定は、一実施形態において、書き込み検証または新たに書き込んだデータの読み取りを行うことによって実行することができる。書き込みが成功した場合（９１６）、保護モジュール３０８は、新たに書き込んだデータが自動保護パーティション４０６に書き込まれたか否かを判定する（９２０）。そうでない場合、方法９００は終了する（９１２）。あるいは、そうである場合、書き込みモジュール３０４は、パーティションが一杯であるか否かを判定する（９２２）ように構成されている。そのパーティションに属する全てのＬＢＡが読み取り専用自動保護４０８の状態である場合、そのパーティションは一杯である。この情報はチェック・モジュール３１０から得られる。
【００７０】
パーティションが一杯である場合、書き込みモジュール３０４は、パーティションの保護状態をＷＯＲＭ保護４０４に変更する（９２４）。パーティションが一杯でない場合、書き込みモジュール３０４は、書き込んだばかりのＬＢＡおよびパーティション自体の保護ステータスを読み取り専用自動保護４０８に変更する（９２６）。次いで方法９００は終了する（９１２）。
【００７１】
図１０は、本発明の一実施形態に従った論理ユニット番号（ＬＵＮ）１００２を有する書き込みコマンド１０００を示す概略ブロック図である。また、書き込みコマンド１０００は、バイト２〜５の開始ＬＢＡ１００４およびバイト７〜８の転送長１００６を含むことができる。一実施形態において、ＣＭＤ＿ＬＢＡは開始ＬＢＡ１００４から取得され、転送長１００６をＬＢＡサイズで除算して１を加えた数がその書き込みコマンド１０００の終了ＬＢＡに等しい。一実施形態において、全てのＳＣＳＩインタフェースに固有の論理ユニット番号１００２を用いて、ＷＯＲＭデータから書き換え可能データをソートすることができる。例えば、書き換え可能データＩ／Ｏ４０２は、ストレージ・デバイス１００の通信インタフェース１０８の第１の論理ユニット番号（ＬＵＮ−０）を介して送信することができる。自動保護４０６データＩ／Ｏは、同じストレージ・デバイス１００の同じ通信インタフェース１０８のＬＵＮ−２を介して送信することができる。ＷＯＲＭ保護４０４Ｉ／Ｏは、同じストレージ・デバイス１００の同じ通信インタフェース１０８のＬＵＮ−３を介して送信することができる。ＬＵＮ−０を介して送信されたデータは、ＬＵＮ−２およびＬＵＮ−３のデータのものとは異なるパーティション上にセーブすることができる。
【００７２】
保護状態４０２、４０４、４０６、４０８のデータ保護属性を維持するために、いくつかのコマンドを禁止する。例えば、フォーマット・ユニット・コマンドおよび消去コマンドは、ＷＯＲＭ保護４０４、自動保護４０６、および読み取り専用自動保護４０８の保護状態にあるストレージ媒体１０４のパーティション上ではサポートされない。一般に、ＷＯＲＭ保護または読み取り専用自動保護パーティションにストアされたデータの変更または削除を許容するコマンドは全て、チェック条件を介してストレージ・コントローラによって禁止および阻止される。
【００７３】
図１１は、本発明の一実施形態に従った媒体パーティション・モード・ページ１１００を示す概略ブロック図である。モード・ページ１１００は、ページ・コード１１ｈ  １１０１によって指定される。制御モジュール１０６は、単一リール・テープ・カートリッジおよび二重リール・テープ・カセットを制御するように容易に適合させることができる。テープ・カートリッジまたはカセットは多数のパーティションを有することができ、これらのパーティションはモード・セット・コマンドによってホストから管理可能である。このため、テープ・カートリッジまたはカセット上の特定のパーティションについて、保護状態は、（ａ）保護なし、（ｂ）ＷＯＲＭ保護、および（ｃ）自動保護にセットすることができる。
【００７４】
このモード・ページを用いて、ホストからテープ・ドライブに、保護状態に関する情報を転送することができる。図１１は、ＩＮＣＩＴＳ  Ｔ１０／１４３４−Ｄに従った媒体パーティション・モード・ページ１１００を示す。先に述べた予備フィールド１１０２の２ビット１１０４、００ｂ〜１１ｂを用いて、パーティションの保護状態を示すことができる。一実施形態においては、特にストレージ媒体としてテープを用いている場合、媒体フォーマット認識フィールド１１０６を用いて保護状態を示すことができる。ここで、バイトおよびビット単位で符号化した特定のパーティションの保護状態を示すあるスキームを組み込むことができる。あるいは、例えば、ＳＣＳＩモード検知およびモード選択コマンドをＡＴＡまたはＩＤＥコマンドに変換するデバイス・ドライバを作成して、本発明を非ＳＣＳＩデバイスに拡張することも可能である。
【００７５】
独立型のテープ・ドライブでは、テープ・ドライブは、各着脱可能テープ・カートリッジまたはカセットの各パーティションごとに、パーティションについておよびそのパーティションにおける各ロジカル・ブロックについての保護状態を、初期化領域にストアすることができる。一実施形態では、各パーティションの保護状態は、テープ・カートリッジまたはカセットの初期化領域およびカートリッジまたはエンクロージャのメモリの双方にストアすることができる。
【００７６】
図１２は、ストレージ・デバイス１００の意図的な破損から制御モジュール１０６を保護するための方法１２００の一実施形態を示す概略ブロック図である。ストレージ・デバイス１００の意図的な破損の一例は、誰かが意図的にＷＯＲＭ保護エンティティに属するディスクを取り出し、その内部に含まれるデータを変更することである。一実施形態において、方法１２００は１２０２において開始する。制御モジュール１０６は、ストレージ媒体１０４が破壊されたことを検出する（１２０４）。
【００７７】
ストレージ媒体１０４の破損を検出すると（１２０４）、制御モジュール１０６は、適切なエラー回復を開始し、エラー・メッセージを通知する（１２０６）ように構成されている。破損が検出されない場合（１２０４）、方法１２００は続けてディスク破損をチェックする。ＲＡＩＤシステムにおける適切なエラー回復の一例は、例えばＲＡＩＤを再構築することである。ディスク・ドライブが置換されると（１２０８）、制御モジュール１０６は、同一のディスクが再び挿入されたか否かをチェックする（１２１０）。これは、誰かがディスクを取り出し、これを操作して再挿入するという意図的な操作を示す場合があるからである。一実施形態において、同じディスクのチェック（１２１０）は、ストレージ・デバイス１００の一意のシリアル番号および製造業者ＩＤを比較することを含む。ディスクが以前に取り出されたディスクと同一でない場合、制御モジュール１０６はこれを新しいディスクと見なし、ディスクを統合する（１２１６）。
【００７８】
ディスクが以前と同じディスクである場合（１２１０）、制御モジュールはパスワードを取得して（１２１２）保護を無効にする。パスワードは、ディスクを挿入したユーザによって入力されなければならない。パスワードが正しくない場合（１２１４）、制御モジュール１０６はカウンタを増分する（１２２０）。カウンタは、誤ったパスワードの試みの数を維持するように構成されている。カウンタが所定の最大値を超えると（１２２２）、制御モジュール１０６はストレージ媒体１０４を切り離してエラー状態を戻す（１２２４）。エラーは、データを操作しようとする不正な試みが検出されて排除された状態を示すことができる。カウンタが最大値を超えない場合（１２２２）、制御モジュール１０６は再びユーザからパスワードを取得しようとする（１２１２）。
【００７９】
パスワードが有効であると確認された場合（１２１４）、制御モジュール１０６はディスクを統合する（１２１６）。例えばＲＡＩＤアレイの場合には、再構築が開始する。ディスクが以前と同じである場合、制御モジュール１０６はディスクを用いて診断機能を実行を試み、考えられる不具合を探すために媒体を走査する。不具合が見つからない場合、ディスクのデータは有効と見なされるので、統合には再構築が必要でない場合がある。しかしながら、ディスクが以前と同一でない場合（１２１０）、制御モジュール１０６はディスクを統合し（１２１６）、これを新しい空のディスクと見なす。これは再構築を必要とする。次いで、方法１２００は終了する（１２２６）。
【００８０】
本発明は、その精神または本質的な特徴から逸脱することなく、他の特定の形態において具現化することができる。例えば、本発明において記載したＳＣＳＩコマンドは、ファイバ・チャネル（「ＦＣ」）物理層上で実施することができる。あるいは、ＦＩＣＯＮ、イーサネット、ギガビット・イーサネット、Infiniband、ＴＣＰ／ＩＰ、ｉＳＣＳＩ、ＡＴＡ、ＳＡＴＡ等の他のプロトコルを制限なく用いることも可能である。記載した実施形態は、あらゆる点において、限定としてでなく例示としてのみ見なされるものである。従って、本発明の範囲は、前述の記載によってではなく特許請求の範囲によって示される。特許請求の範囲の均等物の意味および範囲内に該当する全ての変更は、それらの範囲内に包含されるものとする。
【図面の簡単な説明】
【００８１】
【図１】本発明の一実施形態によるストレージ・デバイスを示す概略ブロック図である。
【図２】従来技術による論理ブロック・アドレッシングを示す概略ブロック図である。
【図３】本発明の一実施形態による制御モジュールを示す概略ブロック図である。
【図４】本発明の一実施形態による複数の保護状態を示す概略ブロック図である。
【図５】本発明の一実施形態によるモード選択コマンドを示す概略ブロック図である。
【図６】本発明の一実施形態によるモード検知コマンドを示す概略ブロック図である。
【図７】本発明の一実施形態によるモード・ページを示す概略ブロック図である。
【図８】本発明の一実施形態による許容可能な保護状態遷移を実施するための方法を示す概略フロー・チャート図である。
【図９】書き込みコマンドを処理するための方法の一実施形態を示す概略フロー・チャート図である。
【図１０】本発明の一実施形態による書き込みコマンドを示す概略ブロック図である。
【図１１】本発明の一実施形態による媒体パーティション・モード・ページを示す概略ブロック図である。
【図１２】本発明の一実施形態による、ストレージ・デバイスの意図的な破損から制御モジュール１０６を保護するための方法を示す概略ブロック図である。
【図１】
2009512925.tif 000003
【図２】
2009512925.tif 000004
【図３】
2009512925.tif 000005
【図４】
2009512925.tif 000006
【図５】
2009512925.tif 000007
【図６】
2009512925.tif 000008
【図７】
2009512925.tif 000009
【図８】
2009512925.tif 000010
【図９】
2009512925.tif 000011
【図１０】
2009512925.tif 000012
【図１１】
2009512925.tif 000013
【図１２】
2009512925.tif 000014
【国際調査報告】
2009512925.tif 000015
2009512925.tif 000016
2009512925.tif 000017