(57)【特許請求の範囲】
【請求項１】
少なくとも１つのフラッシュメモリデバイスを備える複数の記憶装置と、
ストレージシステムと接続するコンピュータからコマンドを受信し、かつ前記複数の記憶装置を制御するストレージコントローラと
を備えるストレージシステムであって、
前記ストレージコントローラは、
前記記憶装置のデバイスモデルの識別子と、初期化機能を有するか否かを示す情報とを対応付けて管理するデバイスモデル情報を有し、
サニタイズのコマンドの受信に応じて、
前記デバイスモデル情報に基づいて前記コマンドのターゲットとなる前記記憶装置が初期化機能を有するか否かを判断し、
初期化機能を有する場合には前記コマンドのターゲットとなる前記記憶装置の前記初期化機能を呼び出し、
サニタイズで前記少なくとも１つのフラッシュメモリデバイスに、データパターンを少なくとも１回以上書き込み、
サニタイズで最後に書き込むデータパターンが前記初期化機能の初期化データパターンと等しいか否かを判断し、前記最後に書き込むデータパターンが前記初期化データパターンと等しくない場合は、前記少なくとも１つのフラッシュメモリデバイスに前記最後に書き込むデータパターンを書き込む
ストレージシステム。
【請求項２】
前記複数の記憶装置は、
複数のＲＡＩＤグループにグループ化され、
前記サニタイズのコマンドが前記ＲＡＩＤグループの少なくとも１つに対するものである場合、前記ストレージコントローラは、
前記コマンドのターゲットとなる前記ＲＡＩＤグループの各々について、前記コマンドのターゲットとなる前記記憶装置が初期化機能を有するか否かを判断する
請求項１に記載のストレージシステム。
【請求項３】
前記複数の記憶装置は、
ハードディスクドライブ及びフラッシュメモリデバイスを備え、
前記ストレージコントローラは、
前記サニタイズのコマンドの受信に応じて、前記記憶装置の各々について記憶媒体のタイプを識別し、
前記タイプがハードディスクドライブ（ＨＤＤ）と識別され、かつ前記ＨＤＤが初期化機能を有さない場合、前記ストレージコントローラは、
書き込みパターンを使用することによって前記ＨＤＤをサニタイズする
請求項１に記載のストレージシステム。
【請求項４】
前記コマンドのターゲットとなる前記記憶装置が、前記初期化機能を有し、かつ、データパターンの設定をサポートするハードディスクドライブ（ＨＤＤ）である場合、前記ストレージコントローラは、
前記初期化機能を呼び出す
請求項１に記載のストレージシステム。
【請求項５】
前記ストレージコントローラは、
複数の論理ボリュームとして前記コンピュータに前記複数の記憶装置を提供し、かつ前記サニタイズのコマンドのターゲットとなる前記ＲＡＩＤグループのうちの前記少なくとも１つのＲＡＩＤグループの各々に含まれるオンライン論理ボリュームが存在するか否かをチェックし、
前記オンライン論理ボリュームが存在する場合、前記ストレージコントローラは、
前記オンライン論理ボリュームのデータを移動する
請求項２に記載のストレージシステム。
【請求項６】
前記コマンドのターゲットとなる前記記憶装置が、前記初期化機能を有し、かつ、データパターンの設定をサポートするハードディスクドライブ（ＨＤＤ）である場合、前記ストレージコントローラは、データパターンを設定する
請求項１に記載のストレージシステム。
【請求項７】
前記ストレージコントローラは、
前記コマンドのターゲットとなる前記記憶装置に対し、予備容量を有する予備領域を含む領域のデータを前記初期化機能により消去する処理又は前記予備領域を含む領域にデータパターンを書き込む処理の少なくとも何れか一方を行う
請求項１に記載のストレージシステム。
【請求項８】
少なくとも１つのフラッシュメモリデバイスを備える複数の記憶装置を備えたストレージシステムのためのストレージコントローラであって、前記ストレージシステムと接続するコンピュータからコマンドを受信し、かつ前記複数の記憶装置を制御するストレージコントローラであり、
前記ストレージコントローラは、
前記記憶装置のデバイスモデルの識別子と、初期化機能を有するか否かを示す情報とを対応付けて管理するデバイスモデル情報を有し、
サニタイズのコマンドの受信に応じて、
前記デバイスモデル情報に基づいて前記コマンドのターゲットとなる前記記憶装置が初期化機能を有するか否かを判断することと、
初期化機能を有する場合には前記コマンドのターゲットとなる前記記憶装置の前記初期化機能を呼び出すことと、
サニタイズで前記少なくとも１つのフラッシュメモリデバイスに、データパターンを少なくとも１回以上書き込むことと、
サニタイズで最後に書き込むデータパターンが前記初期化機能の初期化データパターンと等しいか否かを判断することと、
前記最後に書き込むデータパターンが前記初期化データパターンと等しくない場合は、前記少なくとも１つのフラッシュメモリデバイスに前記最後に書き込むデータパターンを書き込むことと
を含むプロセスを実行する
ストレージコントローラ。
【請求項９】
前記複数の記憶装置は、
複数のＲＡＩＤグループにグループ化され、
前記サニタイズのコマンドが前記ＲＡＩＤグループの少なくとも１つに対するものである場合、前記ストレージコントローラは、
前記コマンドのターゲットとなる前記記憶装置が初期化機能を有するか否かを判断することは、前記コマンドのターゲットとなる前記ＲＡＩＤグループの各々について、前記コマンドのターゲットとなる前記記憶装置が前記初期化機能を有するか否かを判断することをさらに含む
請求項８に記載のストレージコントローラ。
【請求項１０】
前記プロセスは、
前記サニタイズのコマンドの受信に応じて、前記記憶装置の各々について記憶媒体のタイプを識別することと、
前記タイプがハードディスクドライブ（ＨＤＤ）と識別され、かつ前記ＨＤＤが初期化機能を有さない場合、書き込みパターンを使用することによって前記ＨＤＤをサニタイズすることとをさらに含み、
前記複数の記憶装置は、
ハードディスクドライブ及びフラッシュメモリデバイスを備える
請求項８に記載のストレージコントローラ。
【請求項１１】
前記プロセスは、
前記コマンドのターゲットとなる前記記憶装置が、前記初期化機能を有し、かつ、データパターンの設定をサポートするハードディスクドライブ（ＨＤＤ）である場合、前記初期化機能を呼び出すことをさらに含む
請求項８に記載のストレージコントローラ。
【請求項１２】
前記ストレージコントローラは、
複数の論理ボリュームとして前記コンピュータに前記複数の記憶装置を提供し、かつ前記サニタイズのコマンドのターゲットとなる前記ＲＡＩＤグループのうちの前記少なくとも１つのＲＡＩＤグループの各々に含まれるオンライン論理ボリュームが存在するか否かをチェックし、
前記オンライン論理ボリュームが存在する場合、前記ストレージコントローラは、
前記オンライン論理ボリュームのデータを移動する
請求項９に記載のストレージコントローラ。
【請求項１３】
前記コマンドのターゲットとなる前記記憶装置が、前記初期化機能を有し、かつ、データパターンの設定をサポートするハードディスクドライブ（ＨＤＤ）である場合、前記ストレージコントローラは、データパターンを設定する
請求項８に記載のストレージコントローラ。
【請求項１４】
前記ストレージコントローラは、
前記コマンドのターゲットとなる前記記憶装置に対し、予備容量を有する予備領域を含む領域のデータを前記初期化機能により消去する処理又は前記予備領域を含む領域にデータパターンを書き込む処理の少なくとも何れか一方を行う
請求項８に記載のストレージコントローラ。
【発明の詳細な説明】
【技術分野】
【０００１】
０１    本発明は概して、データストレージシステムに関し、特に、データのサニタイズを対象とするシステム及び方法に関する。
【背景技術】
【０００２】
０２    ハードディスクドライブ（ＨＤＤ）を使用するストレージシステムなどの従来のストレージシステムでは、記憶媒体がフォーマットされ、かつデータファイルが削除されたとしても、記憶媒体に格納されたデータを完全に消去することは困難である。例えば、記憶媒体がＨＤＤの場合は、フォーマットされたデータは、依然として残った磁気ドメインから回復可能かもしれない。また、ファイルシステムのフォーマット機能も、単にファイルのメタデータを除去するだけで、実際に記憶媒体のファイルデータを消去しないかもしれない。
【０００３】
０３    消去されたデータのデータ回復の可能性を減らすために、記憶媒体を上書きするためのサニタイジングプロセスが使用される。このようなサニタイジングプロセスの一例は、シュレッディングとして知られる。ＨＤＤのシュレッディングプロセスの間に、ＨＤＤは、異なるデータ（例えば「００」−「ＦＦ」−「００」で冗長上書き）数回上書きされる。
【０００４】
０４    ストレージシステムもまた、ＳＡＳ（シリアル接続）ＨＤＤ、ＳＡＴＡ（シリアルＡＴＡ）ＨＤＤ、及びフラッシュメモリデバイスを含むＳＳＤ（ソリッドステートディスク）などのいくつかのタイプの記憶媒体を含み得る。フラッシュメモリデバイスはブロックごとに消去することができるが、磁気ディスクを使用する記憶媒体は、適切なサニタイズを行うために数回上書きしなければならないかもしれない。
【０００５】
０５    しかし、記憶媒体を数回上書きすることにはいくつかの問題がある。例えば、ＮＡＮＤフラッシュメモリデバイスは、上書きプロセスによって消去することが困難な予備記憶領域を含むことが多い。ＮＡＮＤフラッシュメモリデバイスは、電子を除去することによってブロックの全ビットを「１」に設定する。１つのメモリページは、いくつかの冗長なメモリ領域とともに２ＫＢのユーザデータを含み得る。１つのブロックは、６４メモリページを含み得る。ＨＤＤデバイスの場合は、上書きを行う毎に長い時間がかかる。
【発明の概要】
【０００６】
０６    本発明は、ストレージシステムの従来の技術と関連付けられる上記及び他の問題の１つ以上を実質的に未然に防ぐ方法及びシステム、特に、ストレージシステムにおける適切なサニタイズ及び／又はフォーマッティングを対象とする。
【０００７】
０７    本発明の態様は、ストレージシステムと、複数の記憶装置と、ストレージシステムに結合されたホストコンピュータからコマンドを受信し、かつ複数の記憶装置を制御するストレージコントローラとを含み得る。サニタイズのコマンド（の受信に応じて、ストレージコントローラは、コマンドに従う複数の記憶装置のいずれかが初期化機能を含むか否かを判断し、かつ初期化機能を有する複数の記憶装置のうちのいずれか記憶装置の初期化機能を呼び出す。
【０００８】
０８    本発明の態様は、複数の記憶装置を備えるストレージシステムのためのストレージコントローラをさらに含み得るものであり、ストレージコントローラは、ストレージシステムに結合されたホストコンピュータからコマンドを受信し、かつ複数の記憶装置を制御するものであり、ストレージシステムは、サニタイズのコマンドの受信に応じて、コマンドに従う複数の記憶装置のいずれかが初期化機能を含むか否かを判断し、初期化機能を有する複数の記憶装置のいずれかの初期化機能を呼び出すプロセスを実行する。
【０００９】
０９    本発明の態様は、ストレージコントローラと、複数の記憶装置とを備えるストレージシステムをサニタイズする方法をさらに含み得る。サニタイズのコマンドの受信に応じて、上記方法は、コマンドに従う複数の記憶装置のいずれかが初期化機能を含むか否かを判断し、かつ初期化機能を備える複数の記憶装置のいずれかの初期化機能を呼び出すためのプロセスをストレージコントローラに実行させ得る。
【００１０】
１０    本発明に関連する追加の態様は、以下の説明に一部は記載されており、また一部は以下の説明から自明であるか、又は本発明の実施によって習得し得るものである。本発明の態様は、以下の詳細な説明及び添付の請求項において特に指摘されている要素及び様々な要素と態様の組み合わせによって実現かつ達成し得る。
【００１１】
１１    上記及び以下の説明は両方とも単に例示かつ説明としてのものであり、いかなる態様でも本発明又はその出願を制限することを意図するものではないことが理解される。
【図面の簡単な説明】
【００１２】
【図１】１３    図１は、本発明の実施形態に従った例示的な物理システム構成を示す。
【図２】１４    図２は、本発明の実施形態に従った例示的なフラッシュメモリデバイス構成を示す。
【図３】１５    図３は、本発明の実施形態に従った例示的なメモリ構造を示す。
【図４】１６    図４は、本発明の実施形態に従ったＲＡＩＤグループ情報テーブルの例示的な構造を示す。
【図５】１７    図５は、本発明の実施形態に従った例示的なディスク情報テーブルを示す。
【図６】１８    図６は、本発明の実施形態に従った例示的なディスクモデル情報テーブルを示す。
【図７】１９    図７は、本発明の実施形態に従った例示的な論理ボリューム情報テーブルを示す。
【図８】２０    図８は、本発明の実施形態に従った例示的なサニタイジングパターン情報テーブルを示す。
【図９】２１    図９は、本発明の実施形態に従ったサニタイジングプロセスの例示的なフローチャートを示す。
【図１０】２２    図１０は、本発明の実施形態に従ったフラッシュメモリ（ＦＭ）デバイスのためのサニタイジングプロセスの例示的なフローチャートを示す。
【図１１】２３    図１１は、本発明の実施形態に従ったハードディスクドライブ（ＨＤＤ）のためのサニタイジングプロセスの例示的なフローチャートを示す。
【図１２】２４    図１２は、本発明の実施形態に従ったフォーマッティングプロセスの例示的なフローチャートを示す。
【図１３】２５    図１３は、本発明の実施形態に従ったＦＭデバイスのためのフォーマッティングプロセスの例示的なフローチャートを示す。
【図１４】２６    図１４は、本発明の実施形態に従ったＨＤＤのためのフォーマッティングプロセスの例示的なフローチャートを示す。
【図１５】２７    図１５は、本発明の実施形態に従った例示的なＨＤＤ構成を示す。
【発明を実施するための形態】
【００１３】
１２    本明細書に組み込まれ、かつ本明細書の一部を成す添付の図面は、本発明の実施形態を例示するものであり、以下の説明とともに、発明技術の原則を説明し例証する役割を果たすものである。
【００１４】
２８    以下の詳細な説明では、添付の図面を参照しており、これらの添付の図面では、同一の機能要素には同様の番号が指定されている。上述の添付の図面は、限定ではなく例示として、本発明の原則に一致した特定の実施態様及び実施を示す。これらの実施については、当業者が本発明を実施することができるようにするために十分に詳細に記載されており、その他の実施も利用できること、及び本発明の範囲及び精神から逸することなく、構造上の変更及び／又は様々な要素の代替がなされる得ることが理解される。従って、以下の詳細な説明は、限定された意味では解釈されない。さらに、説明される通りの様々な本発明の実施形態が、汎用コンピュータ上で実行されるソフトウェアの形態で、専用ハードウェアの形態で、又はソフトウェアとハードウェアの組み合わせで実施され得る。
【００１５】
２９    フラッシュメモリ（ＦＭ）デバイスは、ＦＭデバイス内の全ブロックを消去する初期化機能を有し得る。ストレージシステムは、このようなフラッシュメモリデバイスとＨＤＤの混合を含み得る。よって、基本的な本発明の実施形態に従って、ストレージシステムがその媒体をシュレッドするように命令された場合に、ストレージシステムは、命令された媒体を判断する。命令された媒体がＨＤＤである場合は、ストレージシステムは、単にこれらを上書きしてもよい。しかし、これらがＦＭデバイスである場合は、ストレージシステムは、その初期化機能を呼び出すために、ＦＭデバイスに初期化コマンドを送信する。
【００１６】
３０    ＨＤＤはまた、同様の初期化機能を含み得る。本発明の他の基本的な実施形態に従って、ストレージシステムは、媒体タイプだけでなく初期化機能の存在をチェックし、デバイスのために最適化されたサニタイジングプロセスを選択かつ実行する。
【００１７】
３１    第１の実施形態  ＲＡＩＤ（Redundant Array of Inexpensive Disks）のサニタイズ
【００１８】
３２    ＲＡＩＤグループを備えるストレージシステムをサニタイズ又はシュレッドするために、ホストコンピュータからコマンドが発行される。このコマンドは、ストレージシステムに、又はストレージシステム内の特定のＲＡＩＤグループに向けられてもよい。ＲＡＩＤグループをサニタイズする命令を受信した際に、ストレージコントローラは、ＲＡＩＤグループの記憶媒体の各タイプをチェックし、また初期化機能が利用できる場合には、繰り返し上書きすることによってサニタイズする代わりに、ストレージコントローラは、サニタイズを行うために記憶媒体の初期化機能を使用することができる。ストレージコントローラは、サニタイズのコマンドを記憶媒体の初期化機能を呼び出すコマンドに変換し、かつ初期化コマンドを記憶媒体に送信することによって、サニタイズを達成することができる。
【００１９】
３３    基本的なシステム構成
【００２０】
３４    図１は、本発明の実施形態に従った例示的な物理システム構成を示す。物理システムの多様な可能な構成要素は、本発明の実施形態に従って、以下のように示される。システムは、データを格納し、またストレージコントローラ１２０及びディスクユニット１３０を含み得るストレージシステム１１０を含み得る。ストレージシステム１１０のストレージコントローラ１２０は、ストレージシステム１１０とホスト１４０又は管理コンピュータ１５０との間の相互作用を容易にし得る。ストレージエリアネットワークインタフェース１２１は、ストレージエリアネットワーク１６０を介してホストコンピュータ１４０及び管理コンピュータ１５０と接続する。さらに、ローカルエリアネットワーク１７０を介してホストコンピュータ１４０及び管理コンピュータ１５０と接続するために、ローカルエリアネットワークインタフェース１２４を設けてもよい。また、ストレージシステムは、ストレージシステム１１０のための操作（メモリ１２５からプログラム、テーブルを読み出すこと、又はテーブルをメモリ１２５に書き込み、メモリ１２５から読み出したプログラムを実行することを含む）を処理するＣＰＵ１２２も使用し得る。さらに、メモリは、ストレージシステム１１０のプログラム及びテーブルを格納するために操作可能とすることができる。また、ストレージシステム１１０のためのキャッシュデータを格納するために、キャッシュ１２６を設けることもできる。また、Ｉ／Ｏインタフェース１２３及び管理インタフェース１２７もあってもよい。Ｉ／Ｏインタフェース１２３は、ディスク１３１、１３２と接続し、ディスク１３１、１３２に／から読み出し／書き込みコマンド及びデータを転送する。管理インタフェース１２３は、ディスク１３１、１３２と接続し、ディスク１３１、１３２に初期化／大量書き込みコマンドを転送し、Ｉ／Ｏディスクインタフェース１２３と組み合わせてもよい。ストレージコントローラ１２０内の多様な構成要素を接続するために、必要に応じて内部ネットワーク１２８を設けることができる。ディスクユニット１３０は、複数のタイプの媒体（フラッシュメモリデバイス１３１及びＨＤＤ１３２など）を含むディスク／記憶媒体を格納する。ディスクユニットは、ＲＡＩＤレベルに応じて構成されるＲＡＩＤグループによってグループ化される。ＲＡＩＤグループは、同じタイプの記憶媒体を使用して形成される。多様な可能な記憶媒体は、システム内で可能である。ディスクユニットにデータを格納するための１つの可能な記憶媒体は、フラッシュメモリデバイス１３１である。ＭＲＡＭなどの不揮発性メモリである他の半導体メモリを使用してもよい。ディスクユニットにデータを格納する別の可能な記憶媒体は、ＨＤＤ１３２である。ＨＤＤは、初期化機能を含み得る。ＨＤＤ１３２内で、単一書き込み技術は、複数のトラックの幅を有するヘッドを使用することによって大量書き込みを許可することができる。このような技術は、初期化機能と統合することができる。
【００２１】
３５    ストレージシステムの他の可能な構成要素は、可用性又は性能を向上させるために複数のディスク１３１、１３２を含むＲＡＩＤグループを含む。ストレージエリアネットワーク（ＳＡＮ）１６０は、ストレージシステム１１０（ストレージエリアネットワークインタフェース１２１を介して）、ホストコンピュータ１４０、及び管理コンピュータ１５０の間を接続し、これらの相互作用を容易にすることができる。同様に、ローカルエリアネットワーク（ＬＡＮ）１７０は、ストレージシステム１１０（ローカルエリアネットワークインタフェース１２４を介して）、ホストコンピュータ１４０、及び管理コンピュータ１５０の間を接続し、これらの相互作用を容易にする。ホストコンピュータ１４０は、ＳＡＮ１６０を介してストレージシステムにＩ／Ｏコマンドを送信し、またＳＡＮ１６０を介してストレージシステム１１０からデータを送受信し得る。また、ホストは、ＬＡＮ１７０又はＳＡＮ１６０を介してストレージシステム１１０への命令を送信し得る。管理コンピュータ１５０は、ストレージシステム１１０についての情報を提供し、またＬＡＮ１７０又はＳＡＮ１６０を介してストレージシステム１１０への命令を送信し得る。
【００２２】
３６    図２は、本発明の実施形態に従った例示的なフラッシュメモリデバイス構成１３１を示す。フラッシュメモリデバイスは、ＨＤＤと同じコマンド（ファイバチャネル）を受信できるインタフェースを含み得る。フラッシュメモリデバイス１３１はサイズと機能を考慮してＨＤＤと互換性があるが、マザーボードにＦＭチップを備える集中型ＦＭコントローラがあるアプリケーションがあってもよい。フラッシュメモリデバイスの多様な可能な構成要素が、本発明の実施形態に従って、以下に示される。フラッシュメモリコントローラ２１０は、フラッシュメモリデバイスの機能性を扱うための多様な構成要素を含む。読み出し／書き込みインタフェース２１１及び管理インタフェース２１２は、ストレージコントローラ１０２と相互作用する。読み出し／書き込みインタフェース２１１は、読み出し／書き込みＩ／Ｏコマンドを容易にし、かつ／又は読み出し／書き込み操作を実行するための命令を受信する。管理インタフェース２１２は、初期化コマンドを容易にし、かつ／又は初期化操作を実行する命令を受信するために、ストレージコントローラ１２０と相互作用する。また、管理インタフェースは、読み出し／書き込みインタフェース２１１と組み合わせられてもよい。ＣＰＵ２１３は、ＦＭデバイス２１０のための操作を扱う。また、必要に応じてＦＭ２２０からのリードデータ及びライトデータを一時的に格納するために、バッファ２１４を設けてもよい。さらに、論理アドレス（ディスクＩ／Ｏ）とＦＭ２２０上の物理ページアドレスとの間のマップを示すために、マップ２１５を設けてもよく、書き込み／ウェアレベリングプロセスの間にマップ２１５を修正することができる。制御プログラム２１６は、読み出し／書き込み／消去／マッピングのコマンドに従って実行する。書き込みプロセスでは、データは別のページに書き込まれ、マップはそれに応じて変更される。また、制御プログラムは、周期的に消去／ウェアレベリングを実行する。消去／ウェアレベリングにおいて、ブロック中の効率的なページは新しいブロックに移動され、古いブロックは消去される。初期化プログラム２１７は、ＦＭ２２０上の全ブロックを消去し、初期化コマンドに従って実行する。しかし、フラッシュメモリデバイス１３１のタイプ／型式によっては、利用できる初期化機能又はプログラムがないかもしれない。フラッシュメモリチップ２２０は、複数のブロックを使用することによってデータを格納する。各ブロックは、複数のメモリページを含む。
【００２３】
３７    図３は、本発明の実施形態に従った例示的なメモリ構造１２５を示す。メモリの多様な可能な構成要素は、以下のように示される。メモリ構造は、ＲＡＩＤグループ情報テーブル３０１を含んでもよく、これはディスク１３１、１３２及びそれぞれのＲＡＩＤグループのための物理構造管理の情報を示す。ディスク情報テーブル３０２は、ディスク構成管理のための情報を含むために提供されてもよい。さらに、デバイスモデル情報テーブル３０３は、ストレージシステムの記憶媒体のためのデバイス情報のデータベースを提供する。他のテーブルも、論理ボリュームの参照管理情報を提供するための論理ボリューム情報テーブル３０４、及びサニタイジングプロセスの間に使用する可能な書き込みデータパターンを提供するためのサニタイジングパターン情報テーブル３０５を含み得る。
【００２４】
３８    また、いくつかのプログラムも、メモリ構造１２５に含まれ得る。このようなプログラムは、ストレージシステムのための読み出し／書き込みコマンドを実行かつ管理し、キャッシュ１２６とＳＡＮインタフェース１２１の間のデータ転送を容易にするボリュームＩ／Ｏ制御プログラム３０６を含み得る。ディスクＩ／Ｏ制御プログラム３０７は、キャッシュ１２６とディスクインタフェース１２３の間のデータ転送を容易にするために使用することができる。また、サニタイズコマンドに従ってサニタイズプロセスを実行するために、サニタイジングプログラム３０８を使用してもよい。ＦＭデバイス１３１については、ＦＭデバイス管理プログラム３０９は、初期化コマンドを送信するためにサニタイジングプロセスを実行する。これは、サニタイズのコマンドをＦＭデバイスの初期化機能を呼び出すためのコマンドに変換することによって実行してもよい。
【００２５】
３９    テーブル構造
【００２６】
４０    本発明の実施形態で使用される例示的なテーブル構造が以下で説明される。
【００２７】
４１    図４は、本発明の実施形態に従ったＲＡＩＤグループ情報テーブル３０１の例示的な構造を示す。ＲＡＩＤグループ情報テーブルの多様な可能な要素は、本発明の実施形態に従って、以下のように説明される。ＲＡＩＤグループ情報テーブル３０１は、ストレージシステムのＲＡＩＤグループ１３３のＩＤを示すためのＲＡＩＤグループ番号４０１のエントリを含み得る。ＲＡＩＤタイプ４０２のエントリは、特定のＲＡＩＤグループのＲＡＩＤレベル、データの比率、及びパリティを示す。追加のエントリは、ＲＡＩＤグループ１３３の一部であるディスク１３１、１３２のＩＤを示すディスク番号４０３と、ストライピングデータサイズを示すストライピングサイズ４０４とを含み得る。ステータスインジケータ４０５は、ＲＡＩＤグループ１３３のステータスを提供する。「通常」は、ＲＡＩＤグループが正常に機能していることを示す。「フォーマッティング」及び「サニタイジング」は、ＲＡＩＤグループがそれぞれフォーマッティング又はサニタイジングのプロセスを経ていることを示す。「遮断」は、ＲＡＩＤグループが移動又はエラー又は他の問題でアクセス不可であるかもしれないことを示す。
【００２８】
４２    図５は、本発明の実施形態に従った例示的なディスク情報テーブル３０２を示す。ディスク情報テーブルの多様な可能な要素は、本発明の実施形態に従って、以下のように説明される。例えば、ディスク番号５０１は、ディスク１３１、１３２のＩＤを示すために設けてもよい。同様に、型式も、ディスクモデルのＩＤを示すことができる。ＲＡＩＤグループ番号５０３は、ディスクが属するＲＡＩＤグループ１３３のＩＤを示す。ステータスは、ディスク１３１、１３２のステータスを示す。「通常」は、ディスクが通常アクセス可能であることを示す。「フォーマッティング」及び「サニタイジング」は、ディスクがそれぞれフォーマッティング又はサニタイジングのプロセスを経ていることを示す。「遮断」は、ディスクが移動又はエラー又は他の問題でアクセス不可であるかもしれないことを示す。
【００２９】
４３    図６は、本発明の実施形態に従った例示的なデバイスモデル情報テーブル３０６を示す。ディスクモデル情報テーブルの多様な可能な要素は、本発明の実施形態に従って、以下のように示される。型番号６０１は、記憶媒体のデバイスモデルのＩＤを示すために含めてもよい。また、タイプ６０２も、記憶媒体のタイプを示すための情報テーブルに含めてもよく、また、アクセスのためのアドレスを含む記憶媒体の使用可能容量を示すために、使用可能容量６０３を設けることもできる。予備容量６０４は、記憶媒体によって内部で使用される容量を示す。ディスク１３１、１３２は、書き込み及び消去／ウェアレベリングプロセスのための予備容量を含み得る。予備容量は、既知の場合は設定することができ、又はユーザが必要に応じて設定することができる。初期化機能サポート６０５のエントリは、記憶媒体が初期化機能２１７をサポートするか否かについてのインディケータを提供する。初期化機能は、ブロック消去ＥＸＴコマンド、上書きＥＸＴコマンド、及び暗号スクランブルコマンドを含み得るもので、これらは記憶媒体がサポートするＡＴＡ／ＡＴＡＰＩコマンドセット（ＡＴＡ８−ＡＣＳ）である。ブロック消去ＥＸＴコマンドは、全ユーザデータ上のブロック消去操作を引き起こす。上書きＥＸＴコマンドは、コマンドのＬＢＡフィールドでパスされる４バイトパターンでユーザデータ領域を満たす。このコマンドを受信した場合のパラメータは、複数の上書のカウント及び連続的な上書きパスの間の４バイトパターンを反転させるオプションを含む。暗号スクランブルコマンドは、ユーザデータのために使用される内部暗号キーを変更し、これは、解読される内部暗号鍵と一緒に格納されるデータを禁止する。初期データパターン６０６は、初期化機能が呼び出される時に使用されるデータパターンであり、これは固定又は任意のパターン、又は状況によってはユーザ定義でさえあり得る。ストレージコントローラは、さらに、デバイス識別コマンドなどの問い合わせコマンドを記憶媒体に送信することによって取得される情報に基づいた初期化機能サポート６０５の情報を格納してもよい。記憶媒体がストレージコントローラによって最初に認識された時、又は記憶媒体が管理又はホストコンピュータからのサニタイジングコマンドを初めて受けた時に、問い合わせコマンドが送信され得る。
【００３０】
４４    図７は、本発明の実施形態に従った例示的な論理ボリューム情報テーブル３０４を示す。ストレージコントローラ１２０は、ディスクユニットの記憶装置を論理ボリュームとしてホストに提供する。論理ボリューム情報テーブルの多様な可能な要素は、本発明の実施形態に従って、以下のように示される。例示的な論理ボリューム情報テーブルは、論理ボリュームのＩＤを示すためのボリューム番号７０１を含み得る。容量７０２エントリも、論理ボリュームの容量を示すために含まれる。ＲＡＩＤグループ番号７０３は、論理ボリュームデータが格納されるＲＡＩＤグループのＩＤを示す。オフセット７０４は、ＲＡＩＤグループ内の開始アドレスを示す。ステータスインジケータ７０５は、論理ボリュームのステータスを含み、これは上記のように通常／遮断／フォーマッティングを含み得る。このステータスは、サニタイズコマンドに従うＲＡＩＤグループがＩ／Ｏ操作又は移動の対象とならないかを判断するために必要である。サニタイズコマンドは、物理ベース（ＲＡＩＤグループ）で実行され得るが、Ｉ／Ｏ操作及びデータ処理は、論理ベース（論理ボリューム）で実行される可能性があり、よって照会が必要となるだろう。
【００３１】
４５    図８は、本発明の実施形態に従った例示的なサニタイジングパターン情報テーブル３０５を示す。サニタイジングパターン情報テーブル３０５は、いくつかの要素を含み得る。例えば、サニタイジングパターン情報テーブル３０５は、サニタイジングパターンのＩＤを示すためのパターン番号８０１を含み得る。ディスクをサニタイズするために必要な上書き回数８０２についてのインジケータも含み得る。なぜならば、サニタイズを実行することが必要な場合が１回以上あり得るからである。書き込みパターン８０３は、ディスクをサニタイズするために使用される上書きデータパターンを示す。ディスクが数回上書きされる場合は、オーダー書き込みパターンを使用してもよい。サニタイジングコマンドによって示される上書きデータパターンのサイズを示すために、示されたデータパターンサイズ８０４によって上書きデータパターンのサイズを示しても良い。サニタイジングプロセスを助けるためにサニタイジングパターン情報テーブルに他の要素を含んでもよい。
【００３２】
４６    例示的なフローチャート
【００３３】
４７    図９は、本発明の実施形態に従ったサニタイジングプロセスの例示的なフローチャートを示す。サニタイジングのプロセスは、ステップ９０１で始まる。ステップ９０１では、ストレージシステム１１０は、ＬＡＮ１７０を介して管理コンピュータ１５０からサニタイジングコマンドを受信する。このようなコマンドは、ホストコンピュータ１４０から作成され、ＳＡＮ１６０を介して受信されてもよい。サニタイジングコマンドは、ストレージシステム全体（ディスクユニット１３０内の全記憶装置）又は特定の１つの記憶装置をターゲットとしてもよいが、この例では、ＲＡＩＤグループに対して実行される。このようなコマンドは、ＲＡＩＤグループ番号４０１及びサニタイジングパターン番号８０１を含み得る。コマンドがストレージシステム全体をターゲットとする場合は、コマンドは、各ＲＡＩＤグループによって実行されることになる。コマンドをリストすることができる。サニタイジングパターンが示されたパターンを有する場合は、コマンドは、示されたデータパターンも含み得る。ストレージシステムは、示されたデータパターンをメモリに格納する。ステップ９０２では、ストレージシステム１１０は、論理ボリューム情報３０４上のステータス７０５を参照することによって、サニタイジングが許可されるか否かを判断するために、ＲＡＩＤグループ４０５、ディスク５０４、及び論理ボリューム７０５のステータスをチェックする。サニタイジングが許可される場合は、ストレージシステムは、ＲＡＩＤグループ４０５のステータスを「サニタイジング」に変更する。そのＲＡＩＤグループにサニタイジングを受諾できないいくつかの論理ボリューム（例えば、オンライン論理ボリューム）が存在する場合は、ストレージシステムは、論理ボリュームのデータを他のＲＡＩＤグループに移動した後でサニタイズしてもよい。あるいは、ストレージコントローラ１２０は、エラー指示を戻すだけでもよい。ステップ９０３では、ストレージシステムは、ＲＡＩＤグループ情報テーブル３０１を使用してＲＡＩＤグループ番号をディスク番号に変換する。ステップ９０４では、ストレージシステムは、ディスク情報テーブル３０３を使用することによって、ディスクタイプ６０２を決定する。ディスクタイプがＦＭデバイス１３１である場合は、ＦＭデバイスのためのサニタイジングプロセスを実行するためにステップ９０５に進む。ディスクタイプがＨＤＤ１３２である場合は、プロセスは、ＨＤＤのためのサニタイジングプロセスを実行するためにステップ９０６に進む。ステップ９０７では、ストレージシステムは、ＲＡＩＤグループのディスクユニットのすべてが処理されるか否かをチェックし、処理されない場合は、プロセスはステップ９０４に進む。各ディスクのプロセスは、並行に行われてもよい。ステップ９０８では、ストレージシステムは、ＲＡＩＤグループ４０５のステータスを「通常」に変更する。
【００３４】
４８    図１０は、本発明の実施形態に従ったフラッシュメモリ（ＦＭ）デバイスのためのサニタイジングプロセス９０５の例示的なフローチャートを示す。このプロセスは、ステップ１００１で開始し、ここでストレージシステム１１０は、ディスクモデル情報テーブル３０３を使用することによって、ＦＭデバイス１３１が初期化機能２１７をサポートするか否かを判断する。初期化機能サポート６０５のために格納された情報がない場合は、ストレージコントローラは、記憶媒体が初期化機能をサポートし、かつ情報をディスクモデル情報テーブル３０３に格納するか否かを判断するために、問い合わせコマンドをＦＭデバイスに送信し得る。サニタイジングコマンドがそれほど頻繁に発行されない場合は、例えば、記憶媒体がストレージシステムから除去される時にのみサニタイジングコマンドが発行される場合は、ストレージシステムは、初期化機能の情報を必ずしも維持しないかもしれず、むしろ、ストレージコントローラが管理又はホストコンピュータからサニタイジングコマンドを受信する度に、問い合わせをターゲット記憶媒体に送信し得る。ステップ１００２では、ＦＭデバイスが初期化機能２１７をサポートする場合、ストレージコントローラは、ＦＭデバイス１３１に初期化するように命令する。ステップ１００３では、ＦＭデバイス１３１は、初期化コマンドを受信した後で全ブロックを消去する。予備容量を含む全領域が、初期化機能によって消去される。初期化コマンドをＦＭデバイス１３１に送信した後で所定の時間が経過した場合、ストレージシステム１１０は、サニタイズステータスＥＸＴコマンドをＦＭデバイス１３１に対して送信し得る。サニタイズステータスＥＸＴコマンドによって、ストレージコントローラが、初期化コマンドが完了したか否かをチェックすることが可能になる。例えば、物理セクタのサニタイズが成功しなかった場合は、ＦＭデバイス１３１からエラー出力が送信されることになる。ステップ１００４では、ストレージシステムは、サニタイジングの最後のパターンが初期化データパターンと同じであるか否かを判断する。最後のパターンが同じである場合は、プロセスは終了する。しかし、最後のパターンが同じではない場合は、プロセスは、ステップ１００５に進み、ここでストレージコントローラが最後のデータパターンを設定する。ステップ１００６では、ストレージコントローラは、データパターンに従ってＦＭデバイスの全領域に書き込む。しかし、ステップ１００４〜１００６は、必要であれば、スキップしてもよい。例えば、単にユーザがサニタイズしたいだけで、最後のパターンを気にしない場合は、これらのステップをスキップしてもよい。ＦＭデバイスが初期化機能をサポートしない場合は、プロセスはステップ１００７に進み、ここでストレージコントローラが最初の書き込みパターンを設定する。ステップ１００８では、ストレージコントローラは、設定データをＦＭデバイス１３１の全領域（ヘッドからエンドアドレスまで）に書き込む。ステップ１００９では、ストレージコントローラは、ＦＭデバイス１３１のヘッドから予備容量まで（ヘッドから予備容量アドレスまで）書き込む。このプロセスは、データが予備領域に残ること��防ぐ。ステップ１０１０では、ストレージコントローラは、上書きパターンが終了したか否かを判断する。上書きパターンがまだ終了していない場合は、ストレージコントローラは、ステップ１００７に戻り、次の書き込みパターンを設定する。パターンが終了した場合は、プロセスは終了する。
【００３５】
４９    よって、シュレッディングパターンを含む管理コンピュータ又はホストコンピュータによるコマンドにかかわらず、ストレージコントローラ１２０は、シュレッディングコマンドを初期化コマンドに変換することになる。これによって、サニタイズ処理時間が、実際にパターンを書き込むよりも短くなることが可能になるであろう。
【００３６】
５０    図１１は、本発明の実施形態に従ったハードディスクドライブ（ＨＤＤ）のためのサニタイジングプロセス９０６の例示的なフローチャートを示す。このプロセスは、ステップ１１０１で開始し、ここでストレージシステム１１０は、ＨＤＤ１３２が初期化機能１５１７をサポートし、かつディスクモデル情報テーブル３０３を使用することによって、初期データパターン６０６を設定するか否かを判断する。初期化機能サポート６０５のために格納された情報がない場合は、ストレージコントローラは、ＨＤＤが初期化機能をサポートし、かつ情報をディスクモデル情報テーブル３０３に格納するか否かを判断するために、問い合わせコマンドをＨＤＤ１３２に送信し得る。サニタイズコマンドがそれほど頻繁に発行されない場合は（記憶媒体がストレージシステムから除去される場合のみなど）、ストレージシステムは、初期化機能の情報を維持しないかもしれず、むしろ、ストレージコントローラが管理又はホストコンピュータからサニタイジングコマンドを受信する度に、ターゲット記憶媒体に問い合わせを送出し得る。ＨＤＤが初期化機能１５１７をサポートし、初期データパターンの設定をサポートする場合は、プロセスはステップ１１０２に進み、ここでストレージコントローラは、最初のデータパターンを設定する。ステップ１１０３では、ストレージコントローラは、ＨＤＤ１３２に対して、コマンドによってその初期化機能を呼び出すことによって初期化するように命令する。ステップ１１０４では、ＨＤＤ１３２は、その書き込み機能を使用することによって、初期化する命令を受信した後で全ブロックを書き込む。ステップ１１０５では、ストレージコントローラは、上書きパターンが終了したか否かを判断する。パターンがまだ終了していない場合は、ストレージコントローラは、ステップ１１０２に戻り、次の書き込みパターンを設定する。パターンが終了した場合は、プロセスは終了する。ＨＤＤデバイスが初期化機能１５１７及び／又は初期データパターンの設定をサポートしない場合は、プロセスは、ステップ１１０６に進み、ここでストレージコントローラは、最初の書き込みパターンを設定する。ステップ１１０７では、ストレージコントローラは、設定データをＨＤＤ１３３の全領域（ヘッドからエンドアドレスまで）を書き込み、これは何度も上書きされてもよい。ステップ１１０８では、ストレージコントローラは、上書きパターンが終了したか否かを判断する。パターンがまだ終了していない場合は、ストレージコントローラは、ステップ１１０６に戻り、次の書き込みパターンを設定する。パターンが終了した場合は、プロセスは終了する。
【００３７】
５１    第２の実施形態  ＲＡＩＤグループのフォーマッティング
【００３８】
５２    この実施形態では、システム構成は、第１の実施形態と同じである。しかし、サニタイズプロセスとは異なり、フォーマッティングは、複数の上書きを必要とせず、記憶領域は１回だけ上書きされ得る。
【００３９】
５３    図１２は、本発明の実施形態に従ったフォーマッティングプロセスの例示的なフローチャートを示す。このプロセスは、ステップ１２０１で開始し、ここでストレージシステムは、ＬＡＮを介して管理コンピュータからフォーマッティングコマンドを受信する。このコマンドは、ＲＡＩＤグループ番号を含む。ステップ１２０２では、フォーマッティングが可能である場合、ストレージシステム１１０は、ＲＡＩＤグループ４０５、ディスク５０４、及び論理ボリューム７０５のステータスをチェックする。フォーマッティングが可能である場合は、ストレージシステムは、ＲＡＩＤグループ４０５のステータスを「フォーマッティング」に変更する。プロセスは、次に、同様に図９に進むが、ディスクがＦＭデバイスであると判断されると、プロセスはステップ１２０５に進み、ここでストレージシステムはＦＭデバイスのためのフォーマッティングプロセスを実行する。しかし、ディスクがＨＤＤであると判断されると、プロセスはステップ１２０６に進み、ここでストレージシステムはＨＤＤのためのフォーマッティングプロセスを実行する。ステップ１２０７では、ストレージシステムは、ＲＡＩＤグループの全ディスクが処理されるまでループする。全ディスクがフォーマットされた後で、プロセスはステップ１２０８に進み、ここでストレージシステムは、ＲＡＩＤグループ４０５のステータスを「通常」に変更する。
【００４０】
５４    図１３は、本発明の実施形態に従ったＦＭデバイス１２０５のためのフォーマッティングプロセスの例示的なフローチャートを示す。このプロセスは、ステップ１３０１で開始し、ここでストレージシステムは、ディスクモデル情報テーブル３０３を使用して、ＦＭデバイスが初期化機能をサポートするか否かを判断する。ストレージシステムはまた、初期化データパターンがフォーマットパターンと同じであるか否かを判断する。初期化機能サポート６０５のために格納された情報がない場合は、ストレージコントローラは、記憶媒体が初期化機能をサポートするか否かを判断し、かつディスクモデル情報テーブル３０３に情報を格納するために、ＦＭデバイス１３１に問い合わせコマンドを送信してもよい。サニタイズコマンドがそれほど頻繁に発行されない場合（記憶媒体がストレージシステムから除去される場合のみなど）、ストレージシステムは、初期化機能の情報を維持しないかもしれず、むしろストレージコントローラが管理又はホストコンピュータからサニタイジングコマンドを受信する度に、ターゲット記憶媒体に問い合せを送出し得る。ＦＭデバイスが初期化機能をサポートする場合は、プロセスはステップ１３０２に進み、ここでストレージコントローラは、初期化機能を呼び出すためにＦＭデバイスにコマンドを送信する。ステップ１３０３では、ＦＭデバイスは、初期化を受信した後で全ブロックを消去する。初期化コマンドをＦＭデバイスに送信した後で所定の時間が経過した場合、ストレージシステム１１０は、ＦＭデバイスに対してサニタイズステータスＥＸＴコマンドを送信し得る。サニタイズステータスＥＸＴコマンドによって、ストレージコントローラが、初期化コマンドが完了したか否かをチェックすることが可能になるだろう。例えば、物理セクタのサニタイズが成功しなかった場合は、ＦＭデバイスからエラー出力が送信されることになる。しかし、ＦＭデバイスが初期化機能をサポートしない場合は、プロセスはステップ１３０４に進み、ここでストレージコントローラがフォーマットデータパターンをＦＭデバイスの全容量領域（ヘッドからエンドアドレスまで）を書き込む。サニタイジングプロセスとは異なり、予備容量領域を上書きすることは必要ないかもしれない。
【００４１】
５５    図１４は、本発明の実施形態に従ったＨＤＤ１２０６のためのフォーマッティングプロセスの例示的なフローチャートを示す。このプロセスは、ステップ１４０１で開始し、ここでストレージシステムは、ディスクモデル情報テーブルを使用して、ＨＤＤが初期化機能及びパターン設定をサポートするか否かを判断する。初期化機能サポート６０５のために格納された情報が存在しない場合は、ストレージコントローラは、記憶媒体が初期化機能をサポートし、情報をディスクモデル情報テーブル３０３に格納するか否かを判断するために、問い合わせコマンドをＨＤＤに送信し得る。サニタイズコマンドがそれほど頻繁に発行されない場合（記憶媒体がストレージシステムから除去される場合のみなど）、ストレージシステムは、初期化機能の情報を維持しないかもしれず、むしろ、ストレージコントローラが管理又はホストコンピュータからサニタイジングコマンドを受信する度に、ターゲット記憶媒体に問い合わせを送出し得る。ＨＤＤが初期化機能及びデータパターンの設定をサポートする場合、プロセスはステップ１４０２に進み、ここでストレージコントローラは、フォーマットパターンを設定し、ＨＤＤに対してその初期化機能を呼び出すように命令する。ステップ１４０３では、ＨＤＤ１３２は、その書き込み機能を使用して、初期化コマンドを受信した後で全ブロックに書き込む。ＨＤＤが初期化機能をサポートしない場合は、プロセスはステップ１４０４に進み、ここでストレージコントローラは、ＨＤＤの全容量領域にフォーマットデータパターンを書き込む。
【００４２】
５６    図１５は、本発明の実施形態に従って例示的なＨＤＤ構成１３２を示す。ＨＤＤの多様な構成要素をここで説明する。ＨＤＤコントローラ１５１０は、ハードディスクデバイスの機能性を扱うための多様な構成要素を含む。読み出し／書き込みインタフェース１５１１及び管理インタフェース１５１２は、ストレージコントローラ１２０に接続される。読み出し／書き込みインタフェース１５１１は、読み出し／書き込みＩ／Ｏコマンドを容易にし、管理インタフェース１５１２は、初期化コマンドを容易にする。あるいは、管理インタフェース１５１２を読み出し／書き込みインタフェース１５１１と組み合わせてもよい。ＣＰＵ１５１３は、ＨＤＤ１３２のための機能性を扱う。また、磁気ディスク１５２０からのリードデータ及び磁気ディスク１５２０へのライトデータを一時的に格納するために、バッファ１５１４を設けてもよく、この磁気ディスク１５２０は、データのより恒久的な格納を扱う。マップ１５１５は、論理アドレス（ディスクＩ／Ｏ）と磁気ディスク１５２０上の対応する物理ページアドレスとの間のマップを示す。このマップは、上書きプロセスの間に修正されてもよい。しかし、ＨＤＤの型式によっては、マップはＨＤＤに存在しないかもしれない。読み出し／書き込み制御プログラム１５１６は、読み出し／書き込みコマンドを実行してもよい。大量書き込みのために、初期化機能プログラム１５１７は、磁気ディスク１５２０上の複数のブロック／トラックへの書き込みを可能にするために提供される。初期化機能プログラム１５１７は、書き込み／大量書き込みコマンドに従って実行する。しかし、ＨＤＤの型式によっては、初期化機能プログラム１５１７は存在しないかもしれない。
【００４３】
５７    さらに、本発明の他の実施は、本明細書に開示された本発明の仕様及び実施を考慮することにより当業者にとっては明らかなものとなるであろう。説明された実施態様の様々な態様及び／又は構成要素は、フォーマッティングによる又はサニタイズによるストレージシステム内のデータのシュレッディングにおいて単独で又はあらゆる組み合わせで使用され得る。本明細書及び実施例は単なる例示として考慮されることが意図されており、本発明の真の範囲及び精神は、以下の請求項によって示される。
【図１】
0005891027.tif 000002
【図２】
0005891027.tif 000003
【図３】
0005891027.tif 000004
【図４】
0005891027.tif 000005
【図５】
0005891027.tif 000006
【図６】
0005891027.tif 000007
【図７】
0005891027.tif 000008
【図８】
0005891027.tif 000009
【図９】
0005891027.tif 000010
【図１０】
0005891027.tif 000011
【図１１】
0005891027.tif 000012
【図１２】
0005891027.tif 000013
【図１３】
0005891027.tif 000014
【図１４】
0005891027.tif 000015
【図１５】
0005891027.tif 000016