JP4769853B2 - 記憶制御装置及び記憶装置のデータ消去方法 - Google Patents

記憶制御装置及び記憶装置のデータ消去方法 Download PDF

Info

Publication number
JP4769853B2
JP4769853B2 JP2008240316A JP2008240316A JP4769853B2 JP 4769853 B2 JP4769853 B2 JP 4769853B2 JP 2008240316 A JP2008240316 A JP 2008240316A JP 2008240316 A JP2008240316 A JP 2008240316A JP 4769853 B2 JP4769853 B2 JP 4769853B2
Authority
JP
Japan
Prior art keywords
data
erasure
size
storage
error
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2008240316A
Other languages
English (en)
Other versions
JP2010072979A (ja
Inventor
真生 大原
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2008240316A priority Critical patent/JP4769853B2/ja
Priority to US12/270,893 priority patent/US7873870B2/en
Publication of JP2010072979A publication Critical patent/JP2010072979A/ja
Priority to US12/987,808 priority patent/US8566642B2/en
Application granted granted Critical
Publication of JP4769853B2 publication Critical patent/JP4769853B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1435Saving, restoring, recovering or retrying at system level using file system or storage system metadata

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Library & Information Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Debugging And Monitoring (AREA)

Description

本発明は、記憶制御装置及び記憶装置のデータ消去方法に関する。
例えば、サーバコンピュータやメインフレームコンピュータ等のホストコンピュータ(以下、「ホスト」)は、記憶制御装置を用いてデータを管理する。記憶制御装置は、RAID(Redundant Array of Inexpensive Disks)システムとも呼ばれ、冗長化された記憶領域をホストに提供することができる。
管理すべきデータは年々増大するため、記憶装置の大容量化が望まれている。一方、記憶装置が大容量化するほど、記憶装置の廃棄時や交換時等におけるデータ消去時間が長くなり、使い勝手が低くなる。例えば、老朽化した記憶装置や、エラーの頻発する記憶装置等は、新品の記憶装置に交換されて廃棄される。あるいは、記憶容量の少ない記憶装置は、記憶容量の大きい記憶装置に置換されることもある。
セキュリティの観点から、廃棄若しくは交換される記憶装置に記憶されているデータは、他人が読み出せないように消去しておく必要がある。そこで、フォーマットコマンドを用いて記憶装置のデータを消去したり、ビット0のデータを全記憶領域に書き込む方法が提案されている(特許文献1)。
特開2003−345526号公報
ビット0のデータ列やビット1のデータ列若しくは乱数を、記憶装置に繰り返し書き込むことにより、記憶装置に記憶されているデータを読出し不能な程度まで消去させることができる。しかし、記憶装置の容量が増大するほど、データ消去に要する時間が増大し、ユーザの使い勝手が悪くなる。
また、従来技術では、データ消去の進捗状況を管理していないため、データ消去の途中で書込みエラーが発生した場合、データ消去を続行するのが難しい。従って、データ消去を最初からやり直すか、あるいは、データ消去が不完全なままで廃棄または再利用するか、あるいは、記憶装置を物理的に破壊することになる。
本発明は、上記の問題点に鑑みてなされたもので、その目的は、データ消去処理の進捗状況を管理し、エラーによりデータを消去できなかった未完の記憶領域について、データ消去処理を再実行できるようにした、記憶制御装置及び記憶装置のデータ消去方法を提供することにある。本発明の他の目的は、エラーが発生するまでは初期サイズでデータ消去処理を実行し、エラーが生じた後はより小さいサイズでデータ消去処理を再実行することにより、比較的短時間でデータ消去処理を実行することができ、かつ、データの消去される範囲を大きくすることができる。本発明の更なる目的は、後述する実施の形態の記載から明らかになるであろう。
上記課題を解決すべく、本発明に従う記憶制御装置は、記憶装置にデータを入出力させる記憶制御装置であって、記憶装置の記憶領域に記憶されているデータを消去するために使用される消去用データのサイズを設定するデータサイズ設定部と、サイズの設定された消去用データを記憶領域に書き込むことにより記憶領域に記憶されたデータを消去させる、データ消去処理を実行するデータ消去部と、データ消去処理の進捗状況を管理する進捗状況管理部と、データ消去処理に関するエラーを検出して管理するエラー検出部と、を備え、データ消去部は、進捗状況管理部により管理される進捗状況とエラー検出部により検出されるエラーとに基づいて、記憶領域のうちデータ消去処理が未完の記憶領域を検出し、その未完の記憶領域についてデータ消去処理を再実行する。
データサイズ設定部は、エラー検出部によってエラーが検出された場合に、消去用データのサイズを初期サイズよりも小さく設定し、データ消去部は、初期サイズよりも小さいサイズに設定された消去用データを用いて、未完の記憶領域についてのデータ消去処理を再実行することができる。
データサイズ設定部は、消去用データのサイズを、初期値から最小値までの3段階以上の値の中から設定することができる。
データ消去部は、データ消去処理を実行する前に、データサイズ設定部により設定されるサイズの消去用データを予め作成して、記憶部に記憶させることができる。
データ消去部は、初期サイズの消去用データを用いて、記憶領域の全体についてのデータ消去処理を実行した後で、初期値よりも小さいサイズの消去用データを用いて、未完の記憶領域についてのデータ消去処理を再実行することができる。
データ消去部は、初期サイズの消去用データを用いて、記憶領域の全体についてのデータ消去処理を実行した後で、未完の記憶領域についてのデータ消去処理が完了するまで、消去用データのサイズを初期値から最小値まで減少させながら繰り返し再実行することができる。
データ消去部は、エラーが検出された場合に、そのエラーの検出された領域についてデータ消去処理が完了するまで、消去用データのサイズを初期値から最小値まで減少させながら繰り返し再実行し、エラーの検出された領域についてデータ消去処理が完了した後で、初期サイズの消去用データを用いて、記憶領域のうち未完の記憶領域についてのデータ消去処理を実行することができる。
データ消去部は、エラーが検出された場合に、そのエラーの検出された領域についてデータ消去処理が完了するまで、消去用データのサイズを初期値から最小値までの範囲で段階的に減少させながら繰り返し再実行し、エラーの検出された領域についてデータ消去処理が完了した後で、最後に設定されたサイズの消去用データを用いて、記憶領域のうち未完の記憶領域についてのデータ消去処理を実行することができる。
データサイズ設定部は、指定された範囲で、消去用データのサイズを段階的に減少させることができる。
データサイズ設定部は、消去用データのサイズを初期値から1/4倍ずつ段階的に減少させることができる。
データ消去部は、指定された回数だけ、未完の記憶領域についてのデータ消去処理を再実行することができる。
データ消去部は、予め用意されている複数の方法のうち、指定された方法でデータ消去処理を実行することができる。
進捗状況管理部は、記憶領域を消去用データのサイズ毎に区切って、データ消去処理が完了したか否かを管理することができる。
本発明の各部または各ステップの少なくとも一部は、コンピュータプログラムとして構成される場合がある。このコンピュータプログラムは、記録媒体に固定して配布したり、ネットワークを介して配信することができる。
以下、図面に基づいて、本発明の実施の形態を説明する。まず最初に、本発明の概念を説明し、その次に、具体的な実施例について説明する。図1は、本発明の概念を模式的に示す説明図である。本実施形態では、以下に述べるように、シュレッディング処理の進捗状況を管理し、ブロックサイズを変化させてシュレッディング処理を行う。例えば、本実施形態では、できるだけ大きいブロックサイズでシュレッディング処理を実行し、エラーが生じた場合には、小さいブロックサイズに変更して、エラーの生じた箇所を再度シュレッディング処理する。
ストレージシステムは、「記憶制御装置」としてのコントローラ1と、「記憶装置」としてのディスクドライブ2とを備えるシステムである。コントローラ1は、データシュレッダ3と、エラー検出部4と、ブロックサイズ設定部5と、管理テーブル6と、複数のブロックサイズを記憶するテーブル7とを備える。
「データ消去部」としてのデータシュレッダ3は、予め設定されるアルゴリズムに基づいて、所定のシュレッダデータをディスクドライブ2に所定回数書き込むことにより、ディスクドライブ2に記憶されているデータを消去させる。以下、データ消去処理をシュレッディング処理と、消去用データをシュレッディングデータと呼ぶ。
エラー検出部4は、シュレッディング処理中に、シュレッディングデータの書込みエラーが発生した場合に、その書込みエラーを検出する。検出されたエラーは、管理テーブル6に記憶される。
「データサイズ設定部」としてのブロックサイズ設定部5は、シュレッディングデータのサイズを設定する。ブロックサイズとしては、テーブル7に示すように、BSZ1、BSZ2、BSZ3...のように複数段階用意されている。1段階変わる毎に、ブロックサイズは1/4倍となる。
管理テーブル6は、「進捗状況管理部」に該当する。管理テーブル6は、ディスクドライブ2内の記憶領域のうち、どこまでシュレッディング処理が完了しているか等の進捗状況を管理する。管理テーブル6は、例えば、ディスクドライブ2内の領域を示すアドレスと、シュレッディング処理の状態と、エラー状態とを対応付けて管理する。管理テーブル6内のアドレスは、使用されるブロックサイズに応じて設定される。なお、後述の実施例に示すように、シュレッディングデータ書込み時のエラーは、別のテーブルで管理する構成でもよい。
ディスクドライブ2は、例えば、ハードディスクドライブやフラッシュメモリデバイス等の、書き換え可能な不揮発性の記憶装置として構成される。図1中左側に示すディスクドライブ2(1)は、シュレッディング処理が初めて実施されている様子を示す。図1中右側に示すディスクドライブ2(2)は、エラーによってシュレッディングの失敗した箇所を再度シュレッディング処理する様子を示す。
本実施形態では、説明の便宜上、データシュレッダ3に、初期サイズとして最大のブロックサイズBSZ1が設定される。管理テーブル6は、ディスクドライブ2の記憶領域をブロックサイズBSZ1単位で管理する。データシュレッダ3は、最大サイズBSZ1のシュレッディングデータを記憶領域の先頭アドレスから順番に書き込んでいく。
ここで、1番目から6番目までの領域8(1)〜8(6)には、正常にシュレッディングデータが書き込まれたが、7番目の領域8(7)では、シュレッディングデータの書込みに失敗したとする。
データシュレッダ3には、次の段階のブロックサイズBSZ2が設定される。データシュレッダ3は、ブロックサイズBSZ2に応じたシュレッディングデータを用意し、エラーの発生した箇所8(7)に再度書き込む。エラーの生じた箇所にシュレッディングデータを再度書き込むことを、シュレッディング処理のリトライと呼ぶ。
ブロックサイズBSZ2は、ブロックサイズBSZ1の1/4であるため、書込みエラーの範囲を小さくできる。さらに、新たな書込みエラーが生じた場合、データシュレッダ3には、さらに次の段階のブロックサイズBSZ3が設定される。ブロックサイズBSZ3は、BSZ2の1/4である。データシュレッダ3は、ブロックサイズBSZ3に応じたシュレッディングデータを用意し、エラーの発生した箇所に書き込む。なお、データシュレッディングの方法は、上述の方法に限られない。後述の実施例に示すように、複数の方法を実行させることができる。
このように本実施形態では、比較的大きなブロックサイズBSZ1を用いてシュレッディング処理を行うことができるため、シュレッディングデータをディスクドライブ2に書き込む回数を少なくすることができ、シュレッディング処理に要する時間を短くすることができる。
本実施形態では、シュレッディングデータの進捗状況や書込みエラーの発生状況を管理する。従って、シュレッディングデータの書込みエラーが発生した場合でも、残りの領域についてシュレッディング処理を続行したり、エラーの発生した箇所にリトライすることができ、使い勝手が向上する。
本実施形態では、シュレッディングデータの書込み時にエラーが発生した場合、ブロックサイズを小さくして、エラー箇所のシュレッディング処理をリトライする。従って、シュレッディング実施範囲を増大させることができ、データシュレッディングの信頼性を高めることができる。以下、本実施形態を詳述する。
図2は、本実施例に係るストレージシステムの全体構成を示す説明図である。ストレージシステムは、例えば、基本筐体10と、増設筐体20と、ホスト30と、管理装置40とを備える。ホスト30と基本筐体10とは、例えば、FC_SAN(Fibre Channel_Storage Area Network)やIP_SAN(Internet Protocol_SAN)のような通信ネットワークCN1によって接続されている。管理装置40と基本筐体10とは、例えば、LAN(Local Area Network)のような通信ネットワークCN2によって接続されている。
図1との対応関係を先に述べると、コントローラ100は図1中のコントローラ1に、ディスクドライブ21は図1中のディスクドライブ2に、該当する。基本筐体10内のCPU18が所定プログラムを読み込んで実行することにより、図1で述べたデータシュレッダ3,エラー検出部4,ブロックサイズ設定部5等の機能が実現される。
基本筐体10以外の構成について説明し、次に基本筐体10の構成を説明する。ホスト30は、例えば、サーバコンピュータ、ワークステーション、メインフレームコンピュータ等のようなコンピュータである。ホスト30は、基本筐体10を介して、論理ボリューム(図中「LV」と略記)23を利用する。
管理装置40は、例えば、パーソナルコンピュータや携帯情報端末等のようなコンピュータとして構成される。管理装置40は、例えば、ストレージ管理部41と、ウェブブラウザ42とを備える(図3参照)。ストレージ管理部41は、基本筐体10に指示を与えて管理するためのものである。
増設筐体20は、複数のディスクドライブ21を備える。本実施例では、ディスクドライブと称するが、ディスク状の記録媒体に限らない。例えば、ハードディスクデバイス、半導体メモリデバイス、光ディスクデバイス、光磁気ディスクデバイス、磁気テープデバイス、フレキシブルディスクデバイス等のデータを読み書き可能な種々のデバイスを利用可能である。記憶デバイスとしてハードディスクデバイスを用いる場合、例えば、FC(Fibre Channel)ディスク、SCSI(Small Computer System Interface)ディスク、SATAディスク、ATA(AT Attachment)ディスク、SAS(Serial Attached SCSI)ディスク等を用いることができる。
記憶デバイスとして半導体メモリデバイスを用いる場合、例えば、フラッシュメモリ、FeRAM(Ferroelectric Random Access Memory)、MRAM(MagnetoresistiveRandom Access Memory)、相変化メモリ(Ovonic Unified Memory)、RRAM(Resistance RAM)」等の種々のメモリデバイスを利用可能である。
複数のディスクドライブ21をグループ化することにより、RAIDグループ22を生成することができる。RAIDグループ22が有する物理的記憶領域には、論理的な記憶領域である論理ボリューム23を設けることができる。増設筐体20は、スイッチ回路24を介して基本筐体10内のコントローラ100に接続される。
基本筐体10は、複数のコントローラ100(1),100(2)を備えており、これらコントローラ100(1),100(2)で冗長化構成が実現されている。以下、コントローラ100(1),100(2)を区別せずに、コントローラ100と呼ぶ。
コントローラ100は、例えば、ホストインターフェース(図中、インターフェースをI/Fと略記)11と、ドライブインターフェース12と、LANインターフェース13と、キャッシュメモリ14と、データ転送制御回路15(図中、D-CTL15)と、ブリッジ16と、ローカルメモリ17と、CPU18とを備えている。
ホストインターフェース11は、ホスト30と通信するための回路である。「記憶装置用通信インターフェース」としてのドライブインターフェース12は、ディスクドライブ21と通信するための回路である。「管理装置用通信インターフェース」としてのLANインターフェース13は、管理装置40と通信するための回路である。ホストインターフェース11は、例えば、上位装置(ホスト30)や外部装置(図28の外部記憶制御装置10E)と通信するための上位通信インターフェースと呼ぶこともできる。
キャッシュメモリ14には、ホスト30から受信したデータや、ディスクドライブ21から読み出したデータ、シュレッディングデータ等が記憶される。シュレッディングデータとは、「消去用データ」に該当し、シュレッディング処理に使用される。
データ転送制御回路15は、キャッシュメモリ14へのデータ入出力等を制御するための回路である。CPU18及びローカルメモリ17は、バスブリッジ16を介して、データ転送制御回路15に接続される。
ローカルメモリ17には、後述のデータシュレッディング処理等を実行するためのコンピュータプログラムや制御情報等が記憶される。CPU18は、ローカルメモリ17からコンピュータプログラムを読み込んで実行する。
図3は、コントローラ100等の構成を模式化して示す説明図である。ローカルメモリ17には、後述のシュレッディングパラメータT10、シュレッディング管理用ビットマップT20、エラー管理テーブルT30等が記憶される。キャッシュメモリ14には、シュレッディングデータが記憶される。
図4は、シュレッディング処理に使用されるブロックサイズの一部を簡単に示す説明図である。ブロックサイズBSZとして、例えば、1MB、256KB、64KB、16KB、4KB、1KBのように、1/4倍ずつ段階的に低下する値を使用する。なお、ブロックサイズBSZの最大値は、例えば1GBであり、最小値は例えば1KBである(図14参照)。
シュレッディング処理を行う場合、コントローラ100は、設定されたブロックサイズBSZでディスクドライブ21の記憶領域を管理する。コントローラ100は、ブロックサイズBSZのシュレッディングデータSDを、ディスクドライブ21の記憶領域の先頭アドレスから最終アドレスまで順番に、連続的に書き込んでいく。
シュレッディングデータを書き込んでいる最中にエラーが生じた場合、ブロックサイズBSZは1段階低い値に再設定される。コントローラ100は、より小さなブロックサイズBSZで、エラーの発生した箇所のシュレッディング処理を再び試みる。
図5は、シュレッディングパラメータT10等を示す説明図である。シュレッディングパラメータT10とは、シュレッディング処理に使用される各種パラメータを記憶するテーブルである。シュレッディングパラメータT10は、例えば、ユーザが管理装置40を用いて設定する。
シュレッディングパラメータT10は、例えば、シュレッディングアルゴリズムC10と、シュレッディング対象C11と、デフォルトのブロックサイズC12と、リトライ回数C13と、リトライ方法C14とを含む。
シュレッディングアルゴリズムC10には、シュレッディング処理に使用するアルゴリズムを選択するための情報が設定される。例えば、米国国防総省準拠方式(DoD5220.22-M)、NCSC準拠方式(NCSC-TG-025)、米空軍準拠方式(AFSSI5020,AFI33-202)、Gutmann推奨方式のような、複数のシュレッディングアルゴリズムの中から、いずれか1つのアルゴリズムが選択される。
シュレッディング対象C11には、シュレッディング処理を行う対象を特定するための情報が設定される。シュレッディング対象としては、例えば、ディスクドライブ単位、RAIDグループ単位、論理ボリューム単位を挙げることができる。さらに、互いに関連性のある複数の論理ボリュームを、シュレッディング対象として指定することもできる。
デフォルトのブロックサイズC12には、シュレッディング処理の最初に使用されるブロックサイズが設定される。リトライ回数C13には、シュレッディング処理のリトライ回数が設定される。リトライ方法C14には、予め用意されている複数のリトライ方法の中からいずれか1つを選択するための情報が設定される。複数のリトライ方法の詳細は、後述する。
構成管理テーブルT11は、ストレージシステム内の記憶資源に関する情報を管理するテーブルである。構成管理テーブルT11は、例えば、LV#と、RAIDグループ#と、HDDリストと、RAIDレベルと、その他の各項目を備える。
「LV#」は、論理ボリューム23を識別するための情報である。「RAIDグループ#」は、RAIDグループ22の記憶領域を論理ボリューム23に割り当てるために用いられる、中間的記憶装置を識別するための情報である。「HDDリスト」とは、RAIDグループ22に属する各ディスクドライブ21を識別するための情報である。「RAIDレベル」とは、RAIDグループのRAIDレベルやRAID構成を特定するための情報である。「その他」には、例えば、RAIDグループの合計容量や空き容量、論理ボリュームを使用するホストを特定するための情報等が設定される。
シュレッディングパラメータT10のシュレッディング対象C11は、構成管理テーブルT11を参照することにより、設定される。
図6は、シュレッディング処理に使用可能なブロックサイズが登録されているテーブルT12を示す。構成管理テーブルT11及びブロックサイズ管理テーブルT12は、ローカルメモリ17に記憶される。なお、ローカルメモリ17に代えて、例えば、システム情報等を記憶するために用意されたディスクドライブ21等に記憶させてもよい。
ブロックサイズ管理テーブルT12は、連番C15と、ブロックサイズC16とを備えている。ブロックサイズC16には、例えば、1GBから1KBまで、順番にサイズが1/4倍となるように、合計11段階のブロックサイズが設定される。
例えば、デフォルトのブロックサイズとして64MBを用いることができる。デフォルトのブロックサイズの値によって、リトライ可能な回数も制限される。デフォルトブロックサイズは、あるシュレッディング対象について実行される一連のシュレッディング処理において、最大サイズとなる。つまり、シュレッディング処理は、最大のブロックサイズで開始され、エラーが発生すると小さいブロックサイズに変更される。
図7は、シュレッディング管理ビットマップT20を示す説明図である。シュレッディング管理ビットマップT20は、CPU18と共に「進捗状況管理部」を構成する。フローチャートでは、シュレッディング管理ビットマップは、管理BMPと略記される。
管理ビットマップT20は、例えば、ブロックアドレスC20と、状態C21とを管理する。ブロックアドレスC20は、シュレッディング対象の記憶領域を、シュレッディング処理に使用されるブロックサイズ毎に管理するためのアドレスである。例えば、ブロックサイズとして64MBが設定される場合、ブロックアドレスC20には、シュレッディング対象の記憶領域の先頭アドレスから順番に64MB単位で増加する値が設定される。
状態C21とは、そのブロックアドレスに関するシュレッディング処理の状態を示す情報である。状態C21には、例えば、「完了」、「実行中」、「未完」、「エラー」のいずれか1つが設定される。「完了」は、そのブロックアドレスについてシュレッディング処理が正常に完了した状態を示す。「実行中」は、そのブロックアドレスについてシュレッディング処理を実行中であることを示す。「未完」は、そのブロックアドレスについてシュレッディング処理が未だ実行されていないことを示す。「エラー」は、そのブロックアドレスについてシュレッディング処理中に、シュレッディングデータの書込みエラーが発生した状態を示す。
例えば、シュレッディング対象が1つのディスクドライブ21の場合を説明する。ディスクドライブ21の記憶領域は、先頭アドレスから順番に、シュレッディング処理で使用されるブロックサイズ単位で、シュレッディング処理の進捗状況が管理される。
ブロックアドレスADR1からADR6までのシュレッディング処理が正常に完了し、ブロックアドレスADR7についてシュレッディング処理が実行される。そのとき、管理テーブルT20内のブロックアドレスADR7の欄には、「実行中」と設定される。ADR7へのシュレッディングデータ書込み中に、書込みエラーが発生すると、「実行中」から「エラー」に変化される。そのエラーの内容は、図8に示すエラー管理テーブルT30に記録される。なお、エラー管理テーブルT30と管理ビットマップT20とを統合化する構成でもよい。
さて、ADR7についてエラーが検出されると、そのエラーの発生した箇所(ADR7の領域)について、別の管理ビットマップT20(ADR7)が生成される。別の管理ビットマップT20(ADR7)は、エラー発生箇所をADR70〜ADR73の4つに分割して管理する。
エラーの発生した箇所は、最初のブロックサイズよりも1段階低いブロックサイズ(=エラー発生前のブロックサイズの1/4)で、シュレッディングデータが書き込まれる。エラーの発生した箇所は、新たなエラーが発生しない場合、1/4サイズのシュレッディングデータが4回書き込まれることにより、シュレッディング処理が完了する。
図9は、複数のリトライ方法を模式的に示す説明図である。本実施例では、第1方式から第4方式までの合計4つの方式のうち、いずれか1つの方式を選択する。なお、もしも時間に余裕があるのであれば、同一のシュレッディング対象について、複数の方式を重ねて実行させてもよい。
以下の説明では、図9中の左端から順番に、第1領域、第2領域、第3領域、第4領域と呼ぶ。右端の領域が第4領域である。最初のブロックサイズをBSZ1、それよりも1段階サイズの小さいブロックサイズをBSZ2、それよりも1段階サイズの小さいブロックサイズをBSZ3とする。
図9(1)は、第1方式の概略を示す。第1方式では、エラーが発生した場合でも、そのエラー発生箇所へのリトライを後回しにして、シュレッディング対象の全体を一通りシュレッディング処理する。次に、第1方式では、ブロックサイズを1段階低下させて、全てのエラー発生箇所のシュレッディング処理を一通りリトライする。
最初のシュレッディング処理で検出された全てのエラー発生箇所について、シュレッディング処理のリトライが完了した後、ブロックサイズをさらに1段階低下させ、1回目のリトライ中に発見された新たなエラー発生箇所について、シュレッディング処理をリトライする。以下同様に、最小単位のブロックサイズでシュレッディング処理のリトライが行われるか、あるいは、エラー発生箇所が無くなるまで、繰り返される。
ここで、最小単位とは、そのシュレッディング処理で使用可能なブロックサイズのうちの最小値を意味する。例えば、1GBから1KBまでの範囲で指定可能な場合でも、初期値が1GBで、かつ、リトライ回数が3に設定されている場合、使用可能なブロックサイズは、1GB、256MB、64MB、16MBの4つとなる。従って、この場合、ブロックサイズの最小単位は、16MBとなる。
以上は、一つのシュレッディングデータについてのサイクルを示す。例えば、ビット0のシュレッディングデータとビット1のシュレッディングデータとを2回書き込む場合、上記のサイクルが2回実行される。
図9(1)の例では、第1領域にBSZ1のシュレッディングデータが書き込まれた後(S1)、処理対象は第2領域へ移る。第2領域にシュレッディングデータを書き込んでいる途中で書込みエラーが発生した場合、処理対象は第3領域に移る。この時点では、第2領域へのリトライは行われない。第3領域には、BSZ1のシュレッディングデータが書き込まれる(S2)。処理対象は第4領域に移るが、第4領域でもシュレッディングデータの書込みエラーが発生したとする。
第1領域から第4領域までのシュレッディング処理が一通り終了した後、エラー発生箇所(第2領域と第4領域)についてシュレッディング処理のリトライが行われる。そのリトライ処理では、最初のブロックサイズBSZ1よりも1段階小さいブロックサイズBSZ2が使用される。エラー発生箇所についてシュレッディング処理を再度実行することを、リトライ処理と呼ぶことがある。
最初のエラー発生箇所である第2領域は、4つのサブ領域に分割されて管理される。各サブ領域には、ブロックサイズBSZ2のシュレッダデータがそれぞれ順番に書き込まれる(S3〜S6)。第2領域についてのリトライ処理が終了した後、次のエラー発生箇所である第4領域について、リトライ処理が行われる。第4領域も、BSZ2に応じたサイズのサブ領域に分割されて管理される。各サブ領域には、BSZ2のシュレッディングデータがそれぞれ順番に書き込まれる(S7〜S10)。
一回目のリトライ処理中に、新たなエラー(シュレッディングデータの書込みエラー)が生じた場合でも、一回目のリトライ処理が一通り終了するまで、その新たなエラーについてのリトライ処理は行われない。最初に検出された各エラー発生箇所について、一回目のリトライ処理が終了した後、新たなエラー発生箇所についての2回目のリトライ処理が実行される。
図9(2)は、第2方式の概略を示す。第2方式では、第1方式と同様に、最初のシュレッディング処理でエラーが検出された場合でも、シュレッディング対象領域全体について一通りシュレッディング処理が終了するまでは、リトライ処理を実行しない。第1方式と第2方式との相違は、第2方式では、最初のシュレッディング処理で検出された各エラー発生箇所について、それぞれ最小単位のブロックサイズとなるか、または、エラーが全て無くなるまで、リトライ処理を行う。
図9(2)の例では、第1領域についてBSZ1のシュレッディングデータが書き込まれた後(S1)、処理対象は第2領域に移る。しかし、第2領域でシュレッディングデータの書込みエラーが発生したとする。第2領域についてのリトライ処理は後回しにされ、処理対象は第3領域に移る。第3領域に、ブロックサイズBSZ1のシュレッディングデータが正常に書き込まれた後(S2)、処理対象は第4領域に移る。第4領域では、シュレッディングデータの書込みエラーが発生したとする。
シュレッディング対象範囲の全体(第1領域〜第4領域)について、最初のシュレッディング処理が終了した後、エラー発生箇所(第2領域、第4領域)についてのリトライ処理が開始される。
最初に発見された各エラー発生箇所のそれぞれについて、最小単位のブロックサイズとなるまでリトライ処理が行われる。なお、最小単位のブロックサイズを用いるリトライ処理が開始されるよりも前に、シュレッディングデータが正常に書き込まれてエラーが解消された場合、そのエラー発生箇所に関するリトライ処理は、その時点で終了する。
第2領域は、BSZ1よりも1段階小さいブロックサイズBSZ2に応じて分割され、管理される。各サブ領域に、BSZ2のシュレッディングデータが順番に書き込まれる(S3,S5〜S7)。第2領域内の第1サブ領域(左上)にBSZ2のシュレッディングデータが書き込まれている最中に、エラーが発生したとする(S3)。その第1サブ領域は、さらに4分割されて管理されて、BSZ2よりも1段階小さいブロックサイズBSZ3のシュレッディングデータが書き込まれる(S4)。
なお、図示は省略するが、もしも、S4の実行中にさらにエラーが生じた場合、そのエラー発生箇所はさらに4分割されて、BSZ2よりも1段階小さいサイズBSZ3を用いてリトライ処理が実行される。
第4サブ領域(第2領域内の左下)をリトライ処理中に(S7)、エラーが生じた場合、前記同様に、そのエラー発生箇所について、さらに小さいブロックサイズBSZ3を用いたリトライ処理が実行される(S8)。
このようにして最初のエラー発生箇所についてリトライ処理を行った後、処理対象は、次のエラー発生箇所である第4領域に移る。そして、上記同様に、可能な限りのリトライ処理が行われる(S9〜S13)。
このように、第2方式では、最も大きい初期サイズでのシュレッディング処理をシュレッディング対象範囲の全体について実施した後、各エラー発生箇所のリトライ処理を可能な限り実行する。リトライ処理に移行してからエラーが発見された場合、その発見されたエラーに関するリトライ処理は直ちに実行される。
図9(3)は、第3方式の概略を示す。第3方式では、最初のシュレッディング処理中にエラーが発生した場合、そのエラーの発生した箇所について直ちにリトライ処理が実行される。最小単位のブロックサイズを用いたリトライ処理が終了するか、または、エラーが解消するまで、そのエラー発生箇所についてのリトライ処理が行われる。そのエラー発生箇所についてリトライ処理が終了した後、ブロックサイズは初期サイズに戻されて、次の領域について、最初のシュレッディング処理が続行される。
図9(3)に示す例では、第1領域に、初期サイズBSZ1のシュレッディングデータが書き込まれた後(S1)、第2領域にシュレッディングデータが書き込まれる。しかし、第2領域に書込みエラーが発生したとする。そのエラー発生箇所(第2領域)へのリトライ処理は直ちに開始され、可能な限り実行される(S2〜S7)。即ち、第2領域について、最小単位のリトライ処理が実行されるか、エラーが全て解消されるまで、シュレッディングデータが書き込まれる。
第2領域へのリトライ処理が完了すると、処理対象は第3領域に移る。同時に、ブロックサイズは、初期サイズBSZ1に戻る。第3領域には、BSZ1のシュレッディングデータが正常に書き込まれる(S8)。
第4領域へのシュレッディングデータ書込み中にエラーが生じた場合、第2領域について述べたと同様に、第4領域についていのリトライ処理は直ちに開始され、可能な限り実行される(S9〜S13)。可能な限り実行するとは、最小単位のリトライ処理を終了するか、または、エラーが解消するまで、という意味である。
図9(4)は、第4方式の概略を示す。第4方式では、第3方式と同様に、最初のシュレッディング処理中にエラーが発生した場合、そのエラーの発生した箇所について直ちにリトライ処理が実行される。第3方式では、エラー発生箇所についてのリトライ処理が完了した後、シュレッディングデータのサイズを初期サイズBSZ1に戻すが、第4方式では、最後に使用したブロックサイズのままで、他の領域についてのシュレッディング処理を実行する。
図9(4)に示す例では、第1領域に、初期サイズBSZ1のシュレッディングデータが正常に書き込まれた後(S1)、処理対象は第2領域に移る。しかし、第2領域では、書込みエラーが発生したとする。ブロックサイズは、直ちに、初期サイズBSZ1よりも1段階小さいブロックサイズBSZ2に変更される。
そのブロックサイズBSZ2を用いて、第2領域についてのリトライ処理が可能な限り実行される(S2〜S5)。ここでは、ブロックサイズBSZ2のシュレッディングデータを第2領域を4分割してなる各サブ領域に全て正常に書き込めたとする。
処理対象は第3領域に移る。ブロックサイズは、第2領域へのリトライ処理で使用されたブロックサイズBSZ2がそのまま使用される。第3領域の各サブ領域には、BSZ2のシュレッディングデータがそれぞれ書き込まれる(S6〜S9)。第3領域内の左下に示す第3サブ領域で新たなエラーが発生した場合、ブロックサイズはBSZ2よりも1段階小さいBSZ3に変更される(S10)。
第3領域について、リトライ処理が可能な限り実行されると(S6〜S10)、処理対象は第4領域に移る。最後に設定されたブロックサイズBSZ3がそのまま使用される。第4領域は16分割されて管理され、各分割された区域にサイズBSZ3のシュレッディングデータがそれぞれ書き込まれる。
以上述べたように、本実施例では、第1方式〜第4方式のいずれか一つを選択して、シュレッディング処理を行う。図9(1)に示す第1方式では、大きな初期サイズBSZ1のシュレッディングデータを用いて、シュレッディング対象領域の全体を一通り処理した後、エラー発生箇所についてリトライ処理を行う。つまり、第1方式では、できるだけブロックサイズを低下させずに処理を実行するため、シュレッディングデータの書込み回数を少なくして、シュレッディング処理を早期に完了させることができる。
第1方式では、シュレッディング処理を開始してから比較的短時間で、シュレッディング対象に広範囲にシュレッディングデータを書き込むことができる。従って、シュレッディング処理の途中でディスクドライブ21が増設筐体20から抜き取られた場合でも、そのディスクドライブ21から読出し可能なデータ量を少なくすることができ、セキュリティ性が向上する。
図9(2)に示す第2方式も、初期サイズBSZ1をできるだけ長く使用して、書込み回数を低減し、処理時間を短縮できる。
図9(3)に示す第3方式では、エラー発生箇所について可能な限りリトライ処理を実行した後、ブロックサイズを初期サイズBSZ1に戻して、未処理の領域にシュレッディングデータを書き込む。従って、第3方式では、シュレッディング対象の先頭アドレスから順番に着実にデータを消去していくことができる。
図9(4)に示す第4方式では、いったん小さくしたブロックサイズを初期サイズに戻す必要が無いため、方法としては比較的簡単である。シュレッディング対象領域が比較的小さく、かつ、シュレッディング対象領域の後ろの方にエラー原因が隠れているような場合に、第4方式は有効に作用する。その場合、シュレッディング対象領域の大部分に、大きなブロックサイズでシュレッディングデータを書き込むことができるからである。反対に、シュレッディング対象領域が比較的広く、かつ、前の方にエラー原因が潜んでいる場合、第4方式では、シュレッディング処理が完了するまでの時間が長くなる。
第1方式〜第4方式のいずれを採用するかは、ユーザが決定可能である。あるいは、推奨方式として、例えば、第1方式や第2方式を初期値に設定することもできる。
図10は、ユーザが管理装置40を介して、シュレッディング処理のためのパラメータをコントローラ100に設定する処理を示す。本処理は、管理装置40がコントローラ100と適宜通信することにより、実行される。以下に示す各フローチャートは、それぞれの処理の概要を示しており、実際のコンピュータプログラムと相違する場合がある。いわゆる当業者であれば、図示されたステップの変更、入れ替え、追加または削除を行うことができるであろう。
図10の説明に際して、図12〜図18に示す画面例が適宜参照される。まず、管理装置40には、図12に示すようなメニュー画面G10が表示される(S10)。そこで、図12を参照する。メニュー画面G10には、項目選択部P10と、シュレッディング部P11とが表示されている。ユーザは、シュレッディング設定部P12内のシュレッディング設定ボタンB10を操作することにより、シュレッディングパラメータを設定するための画面G20,G21に移ることができる(図13,図14参照)。
図13に示すパラメータ設定画面G20は、設定部P20、リスト選択部P21と、アルゴリズム選択部P22を含む。設定部P20は、シュレッディング単位を設定するためのものである。例えば、ディスクドライブ単位、RAIDグループ単位、論理ボリューム単位のいずれかで、シュレッディング対象を選択できる。
リスト選択部P21は、設定されたシュレッディング単位のリストを表示して、シュレッディング対象を選択させるためのものである。ディスクドライブ単位の場合、シュレッディング処理対象として選択可能な全てのディスクドライブ21が、リスト形式で表示される。そのリストには、例えば、ドライブ番号、記憶容量、所属するRAIDグループ番号、RAIDレベル等が表示される。
アルゴリズム選択部P22は、予め用意されている複数のシュレッディングアルゴリズムの中からいずれか1つのアルゴリズムを選択させるものである。アルゴリズム選択部P22には、各アルゴリズムの概要(書込み回数や書き込まれるパターン等)を表示させることができる。
図14には、図13の画面G20に続く画面G21が示されている。この画面G21は、ブロックサイズ選択部P23と、リトライ回数設定部P24と、リトライ方法選択部P25と、OKボタンB20と、キャンセルボタンB21とを含む。
ブロックサイズ選択部P23は、シュレッディング処理に使用されるデフォルトのブロックサイズを選択するためのものである。例えば、1GB〜1KBまで1/4倍ずつ低下する範囲の中から、ユーザは、初期サイズBSZ1の値を選択する。
リトライ回数設定部P24は、リトライ回数の上限値を設定するものである。リトライ回数とは、リトライ処理を実行する回数である。リトライ方法選択部P25は、第1方式〜第4方式の中からいずれか1つのリトライ方法を選択させるためのものである。
ユーザは、画面G20,G21に示される各パラメータを設定して、OKボタンB20を操作する。設定内容を取り消す場合は、キャンセルボタンB21を操作する。
図10に戻る。ユーザがシュレッディングパラメータを設定すると(S11)、図15に示す実行指示画面G30が管理装置40に表示される。実行指示画面G30には、注意欄P30と、確認部P31と、実行ボタンB30と、キャンセルボタンB31とが含まれている。
注意欄P30には、シュレッディング実行時の注意事項が示されている。確認部P31は、ユーザの意思を最終確認するためのものである。いったんシュレッディングされたデータは回復させることができないためである。
但し、シュレッディング対象のディスクドライブがRAID1〜RAID6等で冗長化されたRAIDグループ22に属する場合、シュレッディング処理で消去されたデータを、同一RAIDグループ内の他のディスクドライブ21を用いて復元可能である。
ユーザは、シュレッディング処理を実行させる場合、実行ボタンB30を操作する(図10のS12)。シュレッディング処理の実行を取り消す場合、ユーザは、キャンセルボタンB31を操作すればよい。
シュレッディング処理が開始されると、図16に示すような実行中画面G40が表示される(S13)。実行中画面G40は、例えば、進行状況表示部P40と、経過時間表示部P41と、残り時間表示部P42と、エラー発生数表示部P43と、エラー発生箇所表示部P44とを含む。
進行状況表示部P40は、シュレッディング処理がどこまで完了したかを、例えば、0-100%のグラフ形式で表示する。経過時間表示部P41は、シュレッディング処理を開始してからの経過時間を表示する。残り時間P42は、シュレッディング処理が完了すると予測される時刻までの残り時間を表示する。エラー発生数表示部P43は、シュレッディング処理中に発生した、書込みエラーの総数を表示する。エラー発生箇所表示部P44は、書込みエラーの発生したアドレスやエラーの生じたブロックのサイズを表示する。
シュレッディング処理中にコントローラ100やディスクドライブ21等に異常が発生して、書き込むことができないエラーが発生すると(S14:YES)、図17に示すようなエラー表示画面G50が表示される。エラー表示画面G50は、シュレッディングデータの書込みエラーをユーザに通知するための画面である。この画面G50は、通知欄P50と、ボタンB50とを含む。
通知欄P50には、シュレッディングデータの書込み中にエラーが生じた旨等が表示される。ボタンB50は、画面G50を閉じさせるためのボタンである。
シュレッディングデータの書込みエラーが発生しない場合(S14:NO)、シュレッディング処理が完了したか否かが判定される(S16)。シュレッディング処理が完了した場合(S16:YES)、管理装置40は、図18に示すような処理完了画面G60を表示させる(S17)。シュレッディング処理が完了するまでの間(S16:NO)、管理装置40は、実行中画面G40を表示させる。
図18に示すように、処理完了画面G60は、実行中画面G40と同様に、P60、P61、P62、P63、P64を備える。P60〜P64は、図16に示すP40〜P44と同様なため、その説明を省略する。ボタンB60は、画面G60を閉じさせるためのボタンである。
図11は、シュレッディング処理を開始する前の準備処理を示す。本処理は、コントローラ100によって実行される。コントローラ100は、管理装置40から、シュレッディング処理のためのパラメータを受領すると(S20)、そのパラメータをコントローラ100内に設定させる(S21)。シュレッディングパラメータをコントローラ100の内部に設定させるとは、シュレッディングパラメータT10をローカルメモリ17に記憶させることを意味する。
コントローラ100は、シュレッディングパラメータT10をローカルメモリ17に記憶させる際に、エラーが生じたか否かを判定する(S22)。エラーが発生した場合(S22:YES)、コントローラ100は、管理装置40に通知する(S23)。
図19,図20に基づいて、第1方式のリトライ処理を含むシュレッディング処理を説明する。本処理は、コントローラ100によって実行される。コントローラ100は、リトライ回数を管理するための変数NRを初期化する(S30)。
コントローラ100は、初期サイズのシュレッディングデータを作成して、キャッシュメモリ14に記憶させる(S31)。コントローラ100は、初期サイズに対応する、管理ビットマップT20を作成し、ローカルメモリ17に記憶させる(S32)。さらに、コントローラ100は、シュレッディング処理中のエラーの詳細を記録するためのエラー管理テーブルT30を作成し、ローカルメモリ17に記憶させる(S33)。
コントローラ100は、管理ビットマップT20上のアドレスを指し示すためのポインタPbmpを初期化する(S34)。これにより、シュレッディングデータの最初の書込先アドレスは、シュレッディング対象の記憶領域の先頭アドレスに設定される。
コントローラ100は、キャッシュメモリ14から初期サイズのシュレッディングデータを読み出して、シュレッディング対象領域の先頭アドレスに書き込む(S35)。コントローラ100は、書込みエラーが発生したか否かを判定する(S36)。
書込みエラーが発生した場合(S36:YES)、コントローラ100は、そのエラーの発生した箇所をエラー管理テーブルT30に記録させる(S37)。なお、管理ビットマップT20の該当箇所の状態は、「実行中」から「エラー」に変更される。コントローラ100は、管理ビットマップT20のポインタを1つ先に進める(S38)。そして、コントローラ100は、シュレッディング対象範囲の全体について、初期サイズのシュレッディングデータの書込みを試みたか否かを判定する(S39)。
シュレッディング対象範囲の全体について、初期サイズのシュレッディングデータの書込みを試みたと判定されるまで(S39:NO)、S35〜S39が繰り返される。初期サイズのシュレッディングデータの書込みを、シュレッディング対象範囲の全体について一通り試した場合(S39:YES)、図20に示すS40に移る。
コントローラ100は、リトライ回数NRが上限値NRmaxに達したか否かを判定する(S40)。リトライ回数の上限値NRmaxは、図14に示すP24によって予め指定されている。
リトライ回数NRが上限値NRmaxに達していない場合(S40:NO)、コントローラ100は、エラー管理テーブルT30からエラー発生箇所(以下、エラー箇所とも呼ぶ)を呼び出す(S41)。コントローラ100は、初期サイズよりも1段階小さいサイズのシュレッディングデータを作成して、キャッシュメモリ14に記憶させる(S42)。新たに作成されるシュレッディングデータのサイズは、初期サイズの1/4である。
コントローラ100は、シュレッディングデータのサイズ変更に合わせて、新たな管理ビットマップT20を作成する(S43)。コントローラ100は、新たに作成された管理ビットマップT20のポインタを初期化し(S44)、エラー箇所に、小サイズのシュレッディングデータを書き込む(S45)。コントローラ100は、リトライ回数NRを1つ増加させ(S46)、図19のS36に戻る。
つまり、S36に戻ることにより、コントローラ100は、ブロックサイズを1段階だけ小さくしたシュレッディングデータを用いて、全てのエラー箇所へのリトライ処理を一通り実施する。その1段階だけ小さいブロックサイズを用いたリトライ処理が一通り終了すると(S39:YES)、コントローラ100は、リトライ回数NRが上限値NRmaxに達したか否かを再び判定する(S40)。NRがNRmaxに達していない場合(S40:NO)、コントローラ100は、ブロックサイズをさらに1段階小さくさせて、残っている各エラー箇所についてリトライ処理を一通り実施する。
やがて、リトライ回数NRが上限値NRmaxに到達すると(S40:YES)、コントローラ100は、シュレッディングアルゴリズムの書込みパターンが全て完了したか否かを判定する(S47)。通常のシュレッディングアルゴリズムは、複数のシュレッディングデータを同一場所に複数回書き込むことにより、そこに記憶されたデータを消去させる(図13のP22参照)。以下、シュレッディングアルゴリズムにより何回か書き込む方法を「書込みパターン」と呼ぶ。
例えば、1番目のシュレッディングデータの書込みパターンを記憶領域の全体に書き込んだ後、2番目のシュレッディングデータを記憶領域の全体に上書きし、さらに、3番目のシュレッディングデータを記憶領域に上書きするような場合である。そこで、S47では、予定された、シュレッディングデータの書込みが全て終了したか否かを判定する。
未だ書き込まれていない書込みパターンのシュレッディングデータが有る場合(S47:NO)、コントローラ100は、S31に戻って、次の書込みパターンのシュレッディングデータを作成し、キャッシュメモリ14に記憶させる。以下、前記同様に、次のシュレッディングデータを記憶領域に書き込む処理が実行される。
シュレッディングアルゴリズムの書込みパターンが全て終了した場合(S47:YES)、コントローラ100は、エラー管理テーブルT30を参照し(S48)、管理装置40に処理結果を出力する(S49)。これにより、管理装置40は、図18で述べたような処理完了画面を表示させる。
なお、最小単位のサイズでリトライ処理してもエラーが残る場合、例えば、そのエラー箇所について、最小単位サイズで所定回数だけリトライする。それでもエラーが解消しない場合、つまり、最小単位サイズのシュレッディングデータを正常に書き込むことができない場合、そのエラー箇所についてのシュレッディング処理をスキップし、次のステップ(S47)に進む。これにより、次のシュレッディングデータを書き込む処理に移行することができる。
図21,図22に基づいて第2方式のリトライ処理を含むシュレッディング処理を説明する。本処理も、第1方式と同様に、コントローラ100により実行される。コントローラ100は、リトライ回数を管理するための変数NRを初期化する(S60)。
コントローラ100は、初期サイズのシュレッディングデータを作成して、キャッシュメモリ14に記憶させる(S61)。コントローラ100は、初期サイズに対応する、管理ビットマップT20を作成し、ローカルメモリ17に記憶させる(S62)。さらに、コントローラ100は、エラー管理テーブルT30を作成し、ローカルメモリ17に記憶させる(S63)。
コントローラ100は、管理ビットマップT20上のアドレスを指し示すためのポインタPbmpを初期化し(S64)、初期サイズのシュレッディングデータをシュレッディング対象領域の先頭アドレスに書き込む(S65)。コントローラ100は、書込みエラーが発生したか否かを判定する(S66)。
書込みエラーが発生した場合(S66:YES)、コントローラ100は、そのエラーの発生した箇所をエラー管理テーブルT30に記録させる(S67)。コントローラ100は、管理ビットマップT20のポインタを1つ先に進る(S68)。コントローラ100は、シュレッディング対象範囲の全体について、初期サイズのシュレッディングデータの書込みを試みたか否かを判定する(S69)。
シュレッディング対象範囲の全体について、初期サイズのシュレッディングデータの書込みを試みたと判定されるまで(S69:NO)、S65〜S69が繰り返される。初期サイズのシュレッディングデータの書込みを、シュレッディング対象範囲の全体について一通り試した場合(S69:YES)、図22に示すS70に移る。
コントローラ100は、エラー管理テーブルT30からエラー箇所を呼び出し(S70)、そのエラー箇所について、可能な限りリトライ処理を実行する(S71)。つまり、最初のシュレッディング処理で検出されたエラー箇所について、リトライ回数NRが上限値NRmaxに達するまで、シュレッディングデータのサイズを小さくしながらリトライ処理を実行する(S71)。
コントローラ100は、最初のシュレッディング処理で検出された全てのエラー箇所について、可能な限りのリトライ処理を終えたか否かを判定する(S72)。未だリトライ処理の終了していないエラー箇所が有る場合(S72:NO)、S70に戻る。
全てのエラー箇所について可能な限りのリトライ処理を行った場合(S72:YES)、コントローラ100は、シュレッディングアルゴリズムで定められている全てのシュレッディングデータの書込みパターンの書込みが完了したか否かを判定する(S73)。
未書込みのシュレッディングデータの書込みパターンが有る場合(S73:NO)、S61に戻って、上述のステップS61〜S72を繰り返す。全てのシュレッディングデータの書込みパターンをシュレッディング対象領域に書き込んだ場合(S73:YES)、コントローラ100は、エラー管理テーブルT30を参照し(S74)、処理結果を管理装置40に出力する(S75)。
図23,図24を参照して、第3方式のリトライ処理を含むシュレッディング処理を説明する。本処理も、コントローラ100により実行される。まず最初に、コントローラ100は、リトライ回数を管理するための変数NRを初期化し(S80)、続いて、シュレッディング対象の全ディスクドライブ21に関する情報を構成管理テーブルT11から取得する(S81)。
本処理では、シュレッディング対象領域が、複数のディスクドライブ21に跨って設定されている場合も含めて説明する。上述の第1方式の場合及び第2方式の場合も、複数のディスクドライブ21に跨るシュレッディング対象領域に適用できる。
コントローラ100は、初期サイズのシュレッディングデータを作成して、キャッシュメモリ14に記憶させる(S82)。コントローラ100は、初期サイズに対応する、管理ビットマップT20を作成してローカルメモリ17に記憶させ(S83)、エラー管理テーブルT30を作成してローカルメモリ17に記憶させる(S84)。
コントローラ100は、管理ビットマップT20上のアドレスを指し示すためのポインタPbmpを初期化し(S85)、初期サイズのシュレッディングデータをシュレッディング対象領域の先頭アドレスに書き込む(S86)。コントローラ100は、書込みエラーが発生したか否かを判定する(S87)。
書込みエラーが発生した場合(S87:YES)、コントローラ100は、リトライ回数NRが上限値NRmaxに達したか否かを判定する(S88)。リトライ回数NRが上限値NRmaxに達していない場合(S88:NO)、コントローラ100は、より小さいブロックサイズを用いた、シュレッディング処理を実行する(S89)。S89の詳細については、図24で後述する。
書込みエラーが発生しない場合(S87:NO)及びリトライ回数NRが上限値NRmaxに達した場合(S88:YES)のいずれかの場合に、コントローラ100は、管理ビットマップT20のポインタを1つ先に進る(S90)。次に、コントローラ100は、現在使用中の管理ビットマップT20で管理される全領域について、シュレッディングデータを書き込んだか否かを判定する(S91)。
最初のシュレッディング処理で書込みエラーが生じなかった場合(S87:NO)、S91では、初期サイズのシュレッディングデータをシュレッディング対象領域の全部に書き込んだか否かが判定される。
最初のシュレッディング処理で書込みエラーが発生した場合(S87:YES)、S91では、S89で設定されるサイズのシュレッディングデータをシュレッディング対象領域の全部に書き込んだか否かが判定される。
未書込みの領域が残っている場合(S91:NO)、S86に戻る。使用中の管理ビットマップT20で管理される全領域について、シュレッディングデータが書き込まれた場合(S91:YES)、図25に示す処理に移行する。
図24のフローチャートに基づいて、S89の詳細を説明する。コントローラ100は、エラーの発生した箇所をエラー管理テーブルT30に登録する(S100)。続いて、コントローラ100は、そのエラーの発生前に使用されていたブロックサイズよりも1段階小さいブロックサイズの、シュレッディングデータを作成して、キャッシュメモリ14に記憶させる(S101)。
コントローラ100は、S101で作成したシュレッディングデータに応じて、管理ビットマップT20を作成し(S102)、ポインタを初期化する(S103)。コントローラ100は、小サイズのシュレッディングデータをエラー箇所に書込み(S104)、リトライ回数NRを1つ増加させて(S105)、図23のS87に戻る。
図25のフローチャートを説明する。コントローラ100は、リトライ回数NRを初期化し(S110)、デフォルトの管理ビットマップT20を呼び出す(S111)。デフォルトの管理ビットマップT20とは、最初のシュレッディング処理で使用される、初期サイズで区切られている管理ビットマップである。
コントローラ100は、シュレッディング対象領域の全部について、シュレッディングデータを書き込んだか否かを判定する(S112)。未書込みの領域がある場合(S112:NO)、コントローラ100は、初期サイズのシュレッディングデータを作成してキャッシュメモリ14に記憶させ、図23のS86に戻る。
シュレッディング対象領域の全体にシュレッディングデータを書き込んだ場合(S112:YES)、コントローラ100は、シュレッディングアルゴリズムで定められている全てのシュレッディングデータの書込みパターンの書込みが完了したか否かを判定する(S114)。
未書込みのシュレッディングデータの書込みパターンが有る場合(S114:NO)、コントローラ100は、図23のS82に戻る。全てのシュレッディングデータの書込みパターンをシュレッディング対象領域に書き込んだ場合(S114:YES)、コントローラ100は、エラー管理テーブルT30を参照し(S115)、処理結果を管理装置40に出力する(S116)。
なお、最初に実施される、初期サイズのシュレッディングデータの書込みが、エラーを生じることなく、シュレッディング対象領域の全体について正常に終了した場合(S87:NO、S90、S91:YES)、S112でYESと判定される。
図26,図27に基づいて、第4方式のリトライ処理を含むシュレッディング処理を説明する。本処理もコントローラ100により実行される。コントローラ100は、リトライ回数NRを初期化し(S120)、シュレッディング対象の全ディスクドライブ21に関する情報を構成管理テーブルT11から取得する(S121)。
コントローラ100は、初期サイズのシュレッディングデータを作成して、キャッシュメモリ14に記憶させる(S122)。コントローラ100は、初期サイズに対応する、管理ビットマップT20を作成してローカルメモリ17に記憶させ(S123)、エラー管理テーブルT30を作成してローカルメモリ17に記憶させる(S124)。
コントローラ100は、管理ビットマップT20上のアドレスを指し示すためのポインタPbmpを初期化し(S125)、初期サイズのシュレッディングデータをシュレッディング対象領域の先頭アドレスに書き込む(S126)。コントローラ100は、書込みエラーが発生したか否かを判定する(S127)。
書込みエラーが発生した場合(S127:YES)、コントローラ100は、リトライ回数NRが上限値NRmaxに達したか否かを判定する(S128)。リトライ回数NRが上限値NRmaxに達していない場合(S128:NO)、コントローラ100は、より小さいブロックサイズを用いた、シュレッディング処理を実行する(S129)。S129では、図24で述べた処理と同様の処理が行われる。
書込みエラーが発生しない場合(S127:NO)及びリトライ回数NRが上限値NRmaxに達した場合(S128:YES)のいずれかの場合に、コントローラ100は、管理ビットマップT20のポインタを1つ先に進る(S130)。次に、コントローラ100は、現在使用中の管理ビットマップT20で管理される全領域について、シュレッディングデータを書き込んだか否かを判定する(S131)。
未書込みの領域が残っている場合(S131:NO)、S126に戻る。使用中の管理ビットマップT20で管理される全領域について、シュレッディングデータが書き込まれた場合(S131:YES)、図27に示す処理に移行する。
図27のフローチャートを説明する。コントローラ100は、リトライ回数NRを初期化し(S140)、デフォルトの管理ビットマップT20を呼び出す(S141)。コントローラ100は、シュレッディング対象領域の全部について、シュレッディングデータを書き込んだか否かを判定する(S142)。未書込みの領域がある場合(S142:NO)、コントローラ100は、図26のS126に戻る。初期サイズのシュレッディングデータを作成せずにS126に戻る点で、第3方式の場合と異なる。
シュレッディング対象領域の全体にシュレッディングデータを書き込んだ場合(S142:YES)、コントローラ100は、シュレッディングアルゴリズムで定められている全てのシュレッディングデータの書込みパターンの書込みが完了したか否かを判定する(S143)。
未書込みのシュレッディングデータの書込みパターンが有る場合(S143:NO)、コントローラ100は、図26のS122に戻る。全てのシュレッディングデータの書込みパターンをシュレッディング対象領域に書き込んだ場合(S143:YES)、コントローラ100は、エラー管理テーブルT30を参照し(S144)、処理結果を管理装置40に出力する(S145)。
本実施例は、上述のように構成されるので、以下の効果を奏する。
本実施例では、最初のシュレッディング処理を、比較的大きなブロックサイズを用いて実行することができるため、シュレッディングデータの書込み回数を低減して、シュレッディング処理に要する時間を短くすることができる。
本実施例では、シュレッディングデータの進捗状況や書込みエラーの発生状況を管理するため、書込みエラーが発生した場合でも、シュレッディング処理やリトライ処理を行うことができる。
本実施例では、シュレッディングデータの書込み時にエラーが発生した場合、ブロックサイズを小さくして、エラー箇所のシュレッディング処理をリトライする。従って、シュレッディング範囲を増大させることができ、データシュレッディングの信頼性を高めることができる。
本実施例では、予め用意されている第1方式〜第4方式の中からいずれか1つのリトライ方法を選択して、シュレッディング処理を開始することができる。従って、ユーザは、シュレッディング対象領域のサイズ等に応じて、リトライ方法を選択でき、使い勝手が向上する。
図28,図29に基づいて、本発明の第2実施例を説明する。本実施例は、第1実施例の変形例に該当する。本実施例では、基本筐体10が、基本筐体10の外部に設けられている別の基本筐体10E内に記憶されているデータについて、シュレッディング処理するようになっている。
図28は、本実施例によるストレージシステムの全体構成を示す。このシステムには、複数の基本筐体10,10Eが含まれる。基本筐体10と別の基本筐体10Eとは、それぞれ別々の場所に設けられる。
基本筐体10のホストインターフェース11の備えるイニシエータポートは、通信ネットワークCN1を介して、別の基本筐体10Eのホストインターフェース11が備えるターゲットポートに接続される。
別の基本筐体10Eは、増設筐体20Eに接続されている。別の基本筐体10Eの有するコントローラ100Eは、論理ボリューム23Eへのデータ入出力等を制御する。基本筐体10は、別の基本筐体10Eの有する論理ボリューム23Eにアクセスするための情報を記憶するテーブルT50(図29参照)を所持している。基本筐体10は、別の基本筐体10Eの有する論理ボリューム23Eを、それがあたかも基本筐体10内の論理ボリューム23であるかのようにして、ホスト30に提供することができる。図28では、ホスト30の図示を省略する。
図29は、本実施例によるシュレッディング処理の概要を示す。一方の基本筐体10を接続元の基本筐体(接続元の記憶制御装置)と呼び、他方の基本筐体10Eを接続先の基本筐体(接続先の記憶制御装置)と呼ぶ。接続先の基本筐体10Eが管理する論理ボリューム23Eを、外部ボリューム23Eと呼ぶ。
管理装置40は、シュレッディングパラメータを接続元の基本筐体10内のコントローラ100に設定する(S200)。コントローラ100は、シュレッディングパラメータを設定することにより、外部ボリューム23Eに関するシュレッディング処理の実行を準備する(S201)。
そして、コントローラ100は、外部ボリューム23Eについてのシュレッディング処理を実行する(S202)。コントローラ100は、外部接続管理テーブルT50を参照することにより、シュレッディングデータを外部ボリューム23Eに書き込ませるためのライトコマンドを、接続先基本筐体10Eのコントローラ100Eに送信する。
外部接続管理テーブルT50には、コントローラ100が外部ボリューム23Eにアクセスするために必要な情報が記憶されている。その必要な情報としては、例えば、接続先のコントローラ100Eを特定する装置番号、外部ボリュームのボリューム番号、通信使用するポート番号等を挙げることができる。
接続先基本筐体10Eのコントローラ100Eは、コントローラ100からのライトコマンドを受信すると、コントローラ100から受信するシュレッディングデータを外部ボリューム23Eに書込み、その結果をコントローラ100に送信する(S203)。シュレッディング処理の詳細は、第1実施例で述べたので、説明は省略する。
このように構成される本実施例では、コントローラ100は、別のコントローラ100Eを介して、外部ボリューム23Eにシュレッディング処理を実施できる。
従って、接続先のコントローラ100Eが全くシュレッディング機能を備えていない場合や古いシュレッディングアルゴリズムのみに対応している場合でも、コントローラ100の備えるシュレッディング機能やシュレッディングアルゴリズムあるいは複数のリトライ方式を用いて、外部ボリューム23Eのデータを消去できる。
なお、本発明は、上述した実施形態に限定されない。当業者であれば、本発明の範囲内で、種々の追加や変更等を行うことができる。例えば、基本筐体にもディスクドライブを搭載することができる。
本発明の概念を簡略化して示す説明図である。 ストレージシステムの全体構成図である。 コントローラ等の詳細を示す説明図である。 複数のブロックサイズの関係を示す説明図である。 シュレッディングパラメータ等を示す説明図である。 ブロックサイズ管理テーブルを示す説明図である。 シュレッディング管理用のビットマップを示す説明図である。 エラー管理テーブルを示す説明図である。 シュレッディング処理のリトライ方法を示す説明図である。 シュレッディング処理の設定を行うためのフローチャートである。 シュレッディング処理の実行を準備するためのフローチャートである。 シュレッディングパラメータの設定を開始する場合の画面例である。 シュレッディングパラメータの設定を行う画面例である。 図13に続く画面例である。 シュレッディング処理の実行を指示するための画面例である。 シュレッディング処理の実行中に表示される画面例である。 エラーが生じた場合の画面例である。 シュレッディング処理が完了した場合の画面例である。 第1方式のリトライ処理を含むシュレッディング処理のフローチャートである。 図19に続くフローチャートである。 第2方式のリトライ処理を含むシュレッディング処理のフローチャートである。 図21に続くフローチャートである。 第3方式のリトライ処理を含むシュレッディング処理のフローチャートである。 図23内のS89の詳細を示すフローチャートである。 図23に続くフローチャートである。 第4方式のリトライ処理を含むシュレッディング処理のフローチャートである。 図26に続くフローチャートである。 第2実施例に係るストレージシステムの全体構成図である。 シュレッディング処理の概要を示すフローチャートである。
符号の説明
1:コントローラ、2:ディスクドライブ、4:エラー検出部、5:ブロックサイズ設定部、6:管理テーブル、7:ブロックサイズ管理テーブル、10,10E:基本筐体、11:ホストインターフェース、12:ドライブインターフェース、13:LANインターフェース、14:キャッシュメモリ、15:データ転送制御回路、16:バスブリッジ、17:ローカルメモリ、20,20E:増設筐体、21:ディスクドライブ、22:RAIDグループ、23,23E:論理ボリューム、24:スイッチ回路、30:ホスト、40:管理装置、41:ストレージ管理部、42:ウェブブラウザ、100,100E:コントローラ

Claims (15)

  1. 記憶装置にデータを入出力させる記憶制御装置であって、
    前記記憶装置の記憶領域に記憶されているデータを消去するために使用される消去用データのサイズを設定するデータサイズ設定部と、
    前記サイズの設定された前記消去用データを前記記憶領域に書き込むことにより前記記憶領域に記憶されたデータを消去させる、データ消去処理を実行するデータ消去部と、
    前記データ消去処理の進捗状況を管理する進捗状況管理部と、
    前記データ消去処理に関するエラーを検出して管理するエラー検出部と、
    を備え、
    前記データ消去部は、前記進捗状況管理部により管理される前記進捗状況と前記エラー検出部により検出される前記エラーとに基づいて、前記記憶領域のうち前記データ消去処理が未完の記憶領域を検出し、その未完の記憶領域について前記データ消去処理を再実行するようになっており
    前記データサイズ設定部は、前記エラー検出部によって前記エラーが検出された場合に、前記消去用データのサイズを初期サイズよりも小さく設定し、
    前記データ消去部は、前記初期サイズよりも小さいサイズに設定された前記消去用データを用いて、前記未完の記憶領域についての前記データ消去処理を再実行する、
    記憶制御装置。
  2. 前記データサイズ設定部は、前記消去用データのサイズを、初期値から最小値までの3段階以上の値の中から設定することができる、請求項1に記載の記憶制御装置。
  3. 前記データ消去部は、前記データ消去処理を実行する前に、前記データサイズ設定部により設定されるサイズの消去用データを予め作成して、記憶部に記憶させる、請求項1または請求項のいずれかに記載の記憶制御装置。
  4. 前記データ消去部は、前記初期サイズの前記消去用データを用いて、前記記憶領域の全体についての前記データ消去処理を実行した後で、前記初期値よりも小さいサイズの前記消去用データを用いて、前記未完の記憶領域についての前記データ消去処理を再実行する、請求項1〜請求項のいずれかに記載の記憶制御装置。
  5. 前記データ消去部は、前記初期サイズの前記消去用データを用いて、前記記憶領域の全体についての前記データ消去処理を実行した後で、前記未完の記憶領域についての前記データ消去処理が完了するまで、前記消去用データのサイズを前記初期値から前記最小値まで減少させながら繰り返し再実行する、請求項に記載の記憶制御装置。
  6. 前記データ消去部は、前記エラーが検出された場合に、そのエラーの検出された領域について前記データ消去処理が完了するまで、前記消去用データのサイズを前記初期値から前記最小値まで減少させながら繰り返し再実行し、前記エラーの検出された領域について前記データ消去処理が完了した後で、前記初期サイズの前記消去用データを用いて、前記記憶領域のうち未完の記憶領域についての前記データ消去処理を実行する、
    請求項に記載の記憶制御装置。
  7. 前記データ消去部は、前記エラーが検出された場合に、そのエラーの検出された領域について前記データ消去処理が完了するまで、前記消去用データのサイズを前記初期値から前記最小値までの範囲で段階的に減少させながら繰り返し再実行し、前記エラーの検出された領域について前記データ消去処理が完了した後で、最後に設定されたサイズの消去用データを用いて、前記記憶領域のうち未完の記憶領域についての前記データ消去処理を実行する、請求項に記載の記憶制御装置。
  8. 前記エラー検出部によって前記エラーが検出された場合に、前記データサイズ設定部は、指定された範囲で、前記消去用データのサイズを段階的に減少させる、請求項1に記載の記憶制御装置。
  9. 前記エラー検出部によって前記エラーが検出された場合に、前記データサイズ設定部は、前記消去用データのサイズを初期値から1/4倍ずつ段階的に減少させる、請求項1に記載の記憶制御装置。
  10. 前記データ消去部は、指定された回数だけ、前記未完の記憶領域についての前記データ消去処理を再実行する、請求項1に記載の記憶制御装置。
  11. 前記データ消去部は、予め用意されている複数の方法のうち、指定された方法で前記データ消去処理を実行する、請求項1に記載の記憶制御装置。
  12. 前記進捗状況管理部は、前記記憶領域を前記消去用データのサイズ毎に区切って、前記データ消去処理が完了したか否かを管理する、請求項1に記載の記憶制御装置。
  13. 記憶制御装置及び管理装置を含むストレージシステムであって、
    前記記憶制御装置は、記憶装置と通信するための記憶装置用通信インターフェースと、
    前記管理装置と通信するための管理装置用通信インターフェースと、
    前記管理装置から前記管理装置用通信インターフェースを介して入力される指示に基づいて、前記記憶装置に前記記憶装置用通信インターフェースを介して、データを消去させるための消去用データを書き込ませることにより、前記記憶装置の記憶領域に記憶されているデータを消去させる、制御部と、を備え、
    前記制御部は、
    前記記憶装置の記憶領域に記憶されているデータを消去するために使用される消去用データのサイズを、初期値から最小値まで段階的に設定するデータサイズ設定部と、
    前記サイズの設定された前記消去用データを前記記憶領域に書き込むことにより前記記憶領域に記憶されたデータを消去させる、データ消去処理を実行するデータ消去部と、
    前記データ消去処理の進捗状況を管理する進捗状況管理部と、
    前記データ消去処理に関するエラーを検出して管理するエラー検出部と、
    を備え、
    前記データ消去部は、前記進捗状況管理部により管理される前記進捗状況と前記エラー検出部により検出される前記エラーとに基づいて、前記記憶領域のうち前記データ消去処理が未完の記憶領域を検出し、その未完の記憶領域について前記データ消去処理を再実行するものであり、かつ、前記データ消去部は、
    (1)前記初期サイズの前記消去用データを用いて、前記記憶領域の全体についての前記データ消去処理を実行した後で、前記初期値よりも小さいサイズの前記消去用データを用いて、前記未完の記憶領域についての前記データ消去処理を再実行させるか、または、
    (2)前記初期サイズの前記消去用データを用いて、前記記憶領域の全体についての前記データ消去処理を実行した後で、前記未完の記憶領域についての前記データ消去処理が完了するまで、前記消去用データのサイズを前記初期値から前記最小値まで減少させながら繰り返し再実行させるか、または、
    (3)前記エラーが検出された場合に、そのエラーの検出された領域について前記データ消去処理が完了するまで、前記消去用データのサイズを前記初期値から前記最小値まで減少させながら繰り返し再実行し、前記エラーの検出された領域について前記データ消去処理が完了した後で、前記初期サイズの前記消去用データを用いて、前記記憶領域のうち未完の記憶領域についての前記データ消去処理を実行させるか、または、
    (4)前記エラーが検出された場合に、そのエラーの検出された領域について前記データ消去処理が完了するまで、前記消去用データのサイズを前記初期値から前記最小値まで減少させながら繰り返し再実行し、前記エラーの検出された領域について前記データ消去処理が完了した後で、最後に設定されたサイズの前記消去用データを用いて、前記記憶領域のうち未完の記憶領域についての前記データ消去処理を実行する、
    ようになっている、ストレージシステム。
  14. 前記記憶制御装置は、他の装置と通信するための装置間通信インターフェースを介して、他の記憶制御装置と接続されており、
    前記制御部は、前記他の記憶制御装置に前記消去用データを送信して、前記他の記憶制御装置内の記憶装置に書き込ませることにより、前記他の記憶制御装置内の前記記憶装置の記憶領域に記憶されているデータを消去させる、請求項13に記載のストレージシステム。
  15. 記憶装置に記憶されているデータを消去させる方法であって、
    前記記憶装置の記憶領域に記憶されているデータを消去するために使用される消去用データのサイズを設定し、
    前記サイズの設定された前記消去用データを前記記憶領域に書き込んで、前記記憶領域に記憶されたデータを消去させるデータ消去処理を実行し、
    前記データ消去処理の進捗状況を管理し、
    前記データ消去処理に関するエラーを検出し、
    前記進捗状況と前記エラーとに基づいて、前記記憶領域のうち前記データ消去処理が未完の記憶領域を検出し、
    前記消去用データのサイズを初期サイズよりも小さく設定し、
    前記初期サイズよりも小さいサイズに設定された前記消去用データを用いて、前記未完の記憶領域についての前記データ消去処理を再実行する、
    記憶装置のデータ消去方法。
JP2008240316A 2008-09-19 2008-09-19 記憶制御装置及び記憶装置のデータ消去方法 Expired - Fee Related JP4769853B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2008240316A JP4769853B2 (ja) 2008-09-19 2008-09-19 記憶制御装置及び記憶装置のデータ消去方法
US12/270,893 US7873870B2 (en) 2008-09-19 2008-11-14 Storage controller and data erasing method for storage device
US12/987,808 US8566642B2 (en) 2008-09-19 2011-01-10 Storage controller and data erasing method for storage device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008240316A JP4769853B2 (ja) 2008-09-19 2008-09-19 記憶制御装置及び記憶装置のデータ消去方法

Publications (2)

Publication Number Publication Date
JP2010072979A JP2010072979A (ja) 2010-04-02
JP4769853B2 true JP4769853B2 (ja) 2011-09-07

Family

ID=42038832

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008240316A Expired - Fee Related JP4769853B2 (ja) 2008-09-19 2008-09-19 記憶制御装置及び記憶装置のデータ消去方法

Country Status (2)

Country Link
US (2) US7873870B2 (ja)
JP (1) JP4769853B2 (ja)

Families Citing this family (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8024530B2 (en) * 2009-01-14 2011-09-20 Cms Products, Inc. Security erase of a delete file and of sectors not currently assigned to a file
US8311992B2 (en) * 2010-02-23 2012-11-13 Hitachi, Ltd. Information processing device and data shredding method
KR20120096212A (ko) * 2011-02-22 2012-08-30 삼성전자주식회사 비휘발성 메모리 장치, 메모리 컨트롤러, 및 이들의 동작 방법
US20130036256A1 (en) * 2011-08-05 2013-02-07 Hitachi, Ltd. Method and apparatus of sanitizing storage device
US9239781B2 (en) 2012-02-07 2016-01-19 SMART Storage Systems, Inc. Storage control system with erase block mechanism and method of operation thereof
US8730715B2 (en) 2012-03-26 2014-05-20 Honeywell International Inc. Tamper-resistant MRAM utilizing chemical alteration
US9042164B2 (en) 2012-03-26 2015-05-26 Honeywell International Inc. Anti-tampering devices and techniques for magnetoresistive random access memory
US9671962B2 (en) 2012-11-30 2017-06-06 Sandisk Technologies Llc Storage control system with data management mechanism of parity and method of operation thereof
US9214965B2 (en) 2013-02-20 2015-12-15 Sandisk Enterprise Ip Llc Method and system for improving data integrity in non-volatile storage
US9329928B2 (en) 2013-02-20 2016-05-03 Sandisk Enterprise IP LLC. Bandwidth optimization in a non-volatile memory system
US9183137B2 (en) 2013-02-27 2015-11-10 SMART Storage Systems, Inc. Storage control system with data management mechanism and method of operation thereof
US9170941B2 (en) 2013-04-05 2015-10-27 Sandisk Enterprises IP LLC Data hardening in a storage system
US10049037B2 (en) 2013-04-05 2018-08-14 Sandisk Enterprise Ip Llc Data management in a storage system
US9543025B2 (en) 2013-04-11 2017-01-10 Sandisk Technologies Llc Storage control system with power-off time estimation mechanism and method of operation thereof
US10546648B2 (en) 2013-04-12 2020-01-28 Sandisk Technologies Llc Storage control system with data management mechanism and method of operation thereof
CN103295638A (zh) * 2013-06-06 2013-09-11 国家电网公司 便携式电子存储介质数据擦除装置及基于该装置的数据擦除方法
US9367353B1 (en) 2013-06-25 2016-06-14 Sandisk Technologies Inc. Storage control system with power throttling mechanism and method of operation thereof
US9244519B1 (en) 2013-06-25 2016-01-26 Smart Storage Systems. Inc. Storage system with data transfer rate adjustment for power throttling
US9146850B2 (en) 2013-08-01 2015-09-29 SMART Storage Systems, Inc. Data storage system with dynamic read threshold mechanism and method of operation thereof
US20150040289A1 (en) 2013-08-06 2015-02-12 Wilson Sporting Goods Co. Sports glove
US9431113B2 (en) 2013-08-07 2016-08-30 Sandisk Technologies Llc Data storage system with dynamic erase block grouping mechanism and method of operation thereof
US9361222B2 (en) 2013-08-07 2016-06-07 SMART Storage Systems, Inc. Electronic system with storage drive life estimation mechanism and method of operation thereof
US9448946B2 (en) 2013-08-07 2016-09-20 Sandisk Technologies Llc Data storage system with stale data mechanism and method of operation thereof
US9747157B2 (en) 2013-11-08 2017-08-29 Sandisk Technologies Llc Method and system for improving error correction in data storage
US9152555B2 (en) * 2013-11-15 2015-10-06 Sandisk Enterprise IP LLC. Data management with modular erase in a data storage system
JP6525507B2 (ja) * 2014-05-14 2019-06-05 キヤノン株式会社 情報処理装置、情報処理方法及びプログラム

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3215237B2 (ja) * 1993-10-01 2001-10-02 富士通株式会社 記憶装置および記憶装置の書き込み/消去方法
JPH10207641A (ja) * 1997-01-28 1998-08-07 Matsushita Electric Ind Co Ltd パラメータ設定装置,及びブロックサイズ変更装置
US6507911B1 (en) * 1998-07-22 2003-01-14 Entrust Technologies Limited System and method for securely deleting plaintext data
US7636724B2 (en) * 2001-08-31 2009-12-22 Peerify Technologies LLC Data storage system and method by shredding and deshredding
JP4228590B2 (ja) 2002-05-29 2009-02-25 株式会社日立製作所 記憶装置
US7152144B2 (en) 2002-05-29 2006-12-19 Hitachi, Ltd. Centralized storage management method
US6906961B2 (en) * 2003-06-24 2005-06-14 Micron Technology, Inc. Erase block data splitting
TWI343531B (en) * 2003-12-19 2011-06-11 Oce Tech Bv Erasing a stored information pattern on a storage medium
JP2005250700A (ja) * 2004-03-02 2005-09-15 Matsushita Electric Ind Co Ltd データ記憶装置
US7216207B1 (en) * 2004-03-08 2007-05-08 International Business Machines Corporation System and method for fast, secure removal of objects from disk storage
JP2005266871A (ja) * 2004-03-16 2005-09-29 Ultra X:Kk ハードディスク装置の診断/消去機能を有するコンピュータ装置およびそのマザーボード
JP2005267821A (ja) * 2004-03-22 2005-09-29 Toshiba Corp 不揮発性半導体メモリ
JP2005313568A (ja) * 2004-04-30 2005-11-10 Kyocera Mita Corp 印刷装置、印刷装置におけるデータの消去方法およびプログラムならびに記録媒体
JP4392601B2 (ja) * 2004-05-07 2010-01-06 パナソニック株式会社 データアクセス装置および記録媒体
JP2006127106A (ja) * 2004-10-28 2006-05-18 Hitachi Ltd ストレージシステム及びその制御方法
US7376062B2 (en) * 2004-10-29 2008-05-20 International Business Machines Corporation System and method for logical shredding of data stored on worm media
US7739462B2 (en) * 2005-02-23 2010-06-15 International Business Machines Corporation Policy based data shredding for storage controller
JP2007004955A (ja) * 2005-05-27 2007-01-11 Sharp Corp 不揮発性半導体記憶装置
US20070047395A1 (en) * 2005-08-26 2007-03-01 Plasmon Lms, Inc. Optical disk shred operation with detection
US7791952B2 (en) * 2007-01-30 2010-09-07 Micron Technology, Inc. Memory device architectures and operation
US8069317B2 (en) * 2007-10-12 2011-11-29 International Business Machines Corporation Providing and utilizing high performance block storage metadata
US8250427B2 (en) * 2008-06-18 2012-08-21 Hewlett-Packard Development Company Selecting erasure codes for a fault tolerant system

Also Published As

Publication number Publication date
US7873870B2 (en) 2011-01-18
US20100077256A1 (en) 2010-03-25
US8566642B2 (en) 2013-10-22
JP2010072979A (ja) 2010-04-02
US20110107144A1 (en) 2011-05-05

Similar Documents

Publication Publication Date Title
JP4769853B2 (ja) 記憶制御装置及び記憶装置のデータ消去方法
JP4901316B2 (ja) ストレージシステム及び記憶制御装置
TWI636396B (zh) 固態硬碟機架構
JP4422652B2 (ja) 漸進的マージ方法及びそれを利用したメモリシステム
JP4884885B2 (ja) 記憶制御装置及び記憶制御装置の障害回復方法
JP4990322B2 (ja) データ移動管理装置及び情報処理システム
US11474899B2 (en) Operation method of open-channel storage device
JP5458568B2 (ja) 不揮発性記憶装置、情報記録システム、及び情報記録方法
JP4792490B2 (ja) 記憶制御装置及びraidグループの拡張方法
JP4693893B2 (ja) 記憶制御装置及び記憶制御装置の制御方法
JP6097845B2 (ja) 不揮発性キャッシュメモリにデータをバックアップするストレージシステム
TWI531963B (zh) Data storage systems and their specific instruction enforcement methods
JP4828816B2 (ja) メモリカード、半導体装置、及びメモリカードの制御方法
JP2008015769A (ja) ストレージシステム及び書き込み分散方法
WO2016135954A1 (ja) ストレージ装置および不揮発メモリデバイス
JP2009251725A (ja) 記憶制御装置及び記憶制御装置を用いた重複データ検出方法。
JP2009181206A (ja) ストレージシステム及びスナップショット構成の移行方法
JP5843010B2 (ja) ストレージ制御装置、ストレージ制御方法およびストレージ制御プログラム
US10346051B2 (en) Storage media performance management
JP4491330B2 (ja) ディスクアレイ装置とそのデータのリカバリ方法およびデータリカバリプログラム
JP4460967B2 (ja) メモリカード、不揮発性半導体メモリ、及び半導体メモリの制御方法
JP2008197864A (ja) 記憶制御装置及びストレージシステム
KR20200120113A (ko) 메모리 시스템 및 그것의 동작방법
US10884857B2 (en) Data storage device and method of operating
JP2016143166A (ja) 制御装置,ストレージシステム及び制御プログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100823

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110131

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110215

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110407

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20110525

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110620

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140624

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees