(57)【要約】【課題】本発明の記憶制御装置は、ブロックサイズを変化させてシュレッディング処理を行うことができる。【解決手段】データシュレッダ３は、ブロックサイズ設定部５により設定される大きいサイズBSZ１を用いて、ディスクドライブ２の記憶領域にシュレッディングデータを書込み、そこに記憶されているデータを消去する。シュレッディングデータ書込み中に発生するエラーは、エラー検出部４で検出される。ブロックサイズ設定部５は、エラーが検出されると、１段階小さいブロックサイズをデータシュレッダ３に設定する。エラーが生じるたびに、シュレッディング処理に使用されるブロックサイズが小さくなる。これにより、シュレッディングデータの書込み回数をできるだけ少なくして処理速度を高めることができ、かつ、できるだけ広範囲のデータを消去できる。【選択図】図１
2010072979.tif 000002
【特許請求の範囲】
【請求項１】
記憶装置にデータを入出力させる記憶制御装置であって、
前記記憶装置の記憶領域に記憶されているデータを消去するために使用される消去用データのサイズを設定するデータサイズ設定部と、
前記サイズの設定された前記消去用データを前記記憶領域に書き込むことにより前記記憶領域に記憶されたデータを消去させる、データ消去処理を実行するデータ消去部と、
前記データ消去処理の進捗状況を管理する進捗状況管理部と、
前記データ消去処理に関するエラーを検出して管理するエラー検出部と、
を備え、
前記データ消去部は、前記進捗状況管理部により管理される前記進捗状況と前記エラー検出部により検出される前記エラーとに基づいて、前記記憶領域のうち前記データ消去処理が未完の記憶領域を検出し、その未完の記憶領域について前記データ消去処理を再実行する、記憶制御装置。
【請求項２】
前記データサイズ設定部は、前記エラー検出部によって前記エラーが検出された場合に、前記消去用データのサイズを初期サイズよりも小さく設定し、
前記データ消去部は、前記初期サイズよりも小さいサイズに設定された前記消去用データを用いて、前記未完の記憶領域についての前記データ消去処理を再実行する、請求項１に記載の記憶制御装置。
【請求項３】
前記データサイズ設定部は、前記消去用データのサイズを、初期値から最小値までの３段階以上の値の中から設定することができる、請求項１または請求項２に記載の記憶制御装置。
【請求項４】
前記データ消去部は、前記データ消去処理を実行する前に、前記データサイズ設定部により設定されるサイズの消去用データを予め作成して、記憶部に記憶させる、請求項１〜請求項３のいずれかに記載の記憶制御装置。
【請求項５】
前記データ消去部は、前記初期サイズの前記消去用データを用いて、前記記憶領域の全体についての前記データ消去処理を実行した後で、前記初期値よりも小さいサイズの前記消去用データを用いて、前記未完の記憶領域についての前記データ消去処理を再実行する、請求項１〜請求項４のいずれかに記載の記憶制御装置。
【請求項６】
前記データ消去部は、前記初期サイズの前記消去用データを用いて、前記記憶領域の全体についての前記データ消去処理を実行した後で、前記未完の記憶領域についての前記データ消去処理が完了するまで、前記消去用データのサイズを前記初期値から前記最小値まで減少させながら繰り返し再実行する、請求項３に記載の記憶制御装置。
【請求項７】
前記データ消去部は、前記エラーが検出された場合に、そのエラーの検出された領域について前記データ消去処理が完了するまで、前記消去用データのサイズを前記初期値から前記最小値まで減少させながら繰り返し再実行し、前記エラーの検出された領域について前記データ消去処理が完了した後で、前記初期サイズの前記消去用データを用いて、前記記憶領域のうち未完の記憶領域についての前記データ消去処理を実行する、請求項３に記載の記憶制御装置。
【請求項８】
前記データ消去部は、前記エラーが検出された場合に、そのエラーの検出された領域について前記データ消去処理が完了するまで、前記消去用データのサイズを前記初期値から前記最小値までの範囲で段階的に減少させながら繰り返し再実行し、前記エラーの検出された領域について前記データ消去処理が完了した後で、最後に設定されたサイズの消去用データを用いて、前記記憶領域のうち未完の記憶領域についての前記データ消去処理を実行する、請求項３に記載の記憶制御装置。
【請求項９】
前記データサイズ設定部は、指定された範囲で、前記消去用データのサイズを段階的に減少させる、請求項１に記載の記憶制御装置。
【請求項１０】
前記データサイズ設定部は、前記消去用データのサイズを初期値から１／４倍ずつ段階的に減少させる、請求項１に記載の記憶制御装置。
【請求項１１】
前記データ消去部は、指定された回数だけ、前記未完の記憶領域についての前記データ消去処理を再実行する、請求項１に記載の記憶制御装置。
【請求項１２】
前記データ消去部は、予め用意されている複数の方法のうち、指定された方法で前記データ消去処理を実行する、請求項１に記載の記憶制御装置。
【請求項１３】
前記進捗状況管理部は、前記記憶領域を前記消去用データのサイズ毎に区切って、前記データ消去処理が完了したか否かを管理する、請求項１に記載の記憶制御装置。
【請求項１４】
記憶制御装置及び管理装置を含むストレージシステムであって、
前記記憶制御装置は、
記憶装置と通信するための記憶装置用通信インターフェースと、
前記管理装置と通信するための管理装置用通信インターフェースと、
前記管理装置から前記管理装置用通信インターフェースを介して入力される指示に基づいて、前記記憶装置に前記記憶装置用通信インターフェースを介して、データを消去させるための消去用データを書き込ませることにより、前記記憶装置の記憶領域に記憶されているデータを消去させる、制御部と、を備え、
前記制御部は、
前記記憶装置の記憶領域に記憶されているデータを消去するために使用される消去用データのサイズを、初期値から最小値まで段階的に設定するデータサイズ設定部と、
前記サイズの設定された前記消去用データを前記記憶領域に書き込むことにより前記記憶領域に記憶されたデータを消去させる、データ消去処理を実行するデータ消去部と、
前記データ消去処理の進捗状況を管理する進捗状況管理部と、
前記データ消去処理に関するエラーを検出して管理するエラー検出部と、
を備え、
前記データ消去部は、前記進捗状況管理部により管理される前記進捗状況と前記エラー検出部により検出される前記エラーとに基づいて、前記記憶領域のうち前記データ消去処理が未完の記憶領域を検出し、その未完の記憶領域について前記データ消去処理を再実行するものであり、かつ、
前記データ消去部は、
（１）前記初期サイズの前記消去用データを用いて、前記記憶領域の全体についての前記データ消去処理を実行した後で、前記初期値よりも小さいサイズの前記消去用データを用いて、前記未完の記憶領域についての前記データ消去処理を再実行させるか、または、
（２）前記初期サイズの前記消去用データを用いて、前記記憶領域の全体についての前記データ消去処理を実行した後で、前記未完の記憶領域についての前記データ消去処理が完了するまで、前記消去用データのサイズを前記初期値から前記最小値まで減少させながら繰り返し再実行させるか、または、
（３）前記エラーが検出された場合に、そのエラーの検出された領域について前記データ消去処理が完了するまで、前記消去用データのサイズを前記初期値から前記最小値まで減少させながら繰り返し再実行し、前記エラーの検出された領域について前記データ消去処理が完了した後で、前記初期サイズの前記消去用データを用いて、前記記憶領域のうち未完の記憶領域についての前記データ消去処理を実行させるか、または、
（４）前記エラーが検出された場合に、そのエラーの検出された領域について前記データ消去処理が完了するまで、前記消去用データのサイズを前記初期値から前記最小値まで減少させながら繰り返し再実行し、前記エラーの検出された領域について前記データ消去処理が完了した後で、最後に設定されたサイズの前記消去用データを用いて、前記記憶領域のうち未完の記憶領域についての前記データ消去処理を実行する、
ようになっている、ストレージシステム。
【請求項１５】
前記記憶制御装置は、他の装置と通信するための装置間通信インターフェースを介して、他の記憶制御装置と接続されており、
前記制御部は、前記他の記憶制御装置に前記消去用データを送信して、前記他の記憶制御装置内の記憶装置に書き込ませることにより、前記他の記憶制御装置内の前記記憶装置の記憶領域に記憶されているデータを消去させる、ストレージシステム。
【請求項１６】
記憶装置に記憶されているデータを消去させる方法であって、
前記記憶装置の記憶領域に記憶されているデータを消去するために使用される消去用データのサイズを設定し、
前記サイズの設定された前記消去用データを前記記憶領域に書き込んで、前記記憶領域に記憶されたデータを消去させるデータ消去処理を実行し、
前記データ消去処理の進捗状況を管理し、
前記データ消去処理に関するエラーを検出し、
前記進捗状況と前記エラーとに基づいて、前記記憶領域のうち前記データ消去処理が未完の記憶領域を検出し、
その未完の記憶領域について前記データ消去処理を再実行する、
記憶装置のデータ消去方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、記憶制御装置及び記憶装置のデータ消去方法に関する。
【背景技術】
【０００２】
例えば、サーバコンピュータやメインフレームコンピュータ等のホストコンピュータ（以下、「ホスト」）は、記憶制御装置を用いてデータを管理する。記憶制御装置は、RAID（Redundant Array of Inexpensive Disks）システムとも呼ばれ、冗長化された記憶領域をホストに提供することができる。
【０００３】
管理すべきデータは年々増大するため、記憶装置の大容量化が望まれている。一方、記憶装置が大容量化するほど、記憶装置の廃棄時や交換時等におけるデータ消去時間が長くなり、使い勝手が低くなる。例えば、老朽化した記憶装置や、エラーの頻発する記憶装置等は、新品の記憶装置に交換されて廃棄される。あるいは、記憶容量の少ない記憶装置は、記憶容量の大きい記憶装置に置換されることもある。
【０００４】
セキュリティの観点から、廃棄若しくは交換される記憶装置に記憶されているデータは、他人が読み出せないように消去しておく必要がある。そこで、フォーマットコマンドを用いて記憶装置のデータを消去したり、ビット０のデータを全記憶領域に書き込む方法が提案されている（特許文献１）。
【特許文献１】特開２００３−３４５５２６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
ビット０のデータ列やビット１のデータ列若しくは乱数を、記憶装置に繰り返し書き込むことにより、記憶装置に記憶されているデータを読出し不能な程度まで消去させることができる。しかし、記憶装置の容量が増大するほど、データ消去に要する時間が増大し、ユーザの使い勝手が悪くなる。
【０００６】
また、従来技術では、データ消去の進捗状況を管理していないため、データ消去の途中で書込みエラーが発生した場合、データ消去を続行するのが難しい。従って、データ消去を最初からやり直すか、あるいは、データ消去が不完全なままで廃棄または再利用するか、あるいは、記憶装置を物理的に破壊することになる。
【０００７】
本発明は、上記の問題点に鑑みてなされたもので、その目的は、データ消去処理の進捗状況を管理し、エラーによりデータを消去できなかった未完の記憶領域について、データ消去処理を再実行できるようにした、記憶制御装置及び記憶装置のデータ消去方法を提供することにある。本発明の他の目的は、エラーが発生するまでは初期サイズでデータ消去処理を実行し、エラーが生じた後はより小さいサイズでデータ消去処理を再実行することにより、比較的短時間でデータ消去処理を実行することができ、かつ、データの消去される範囲を大きくすることができる。本発明の更なる目的は、後述する実施の形態の記載から明らかになるであろう。
【課題を解決するための手段】
【０００８】
上記課題を解決すべく、本発明に従う記憶制御装置は、記憶装置にデータを入出力させる記憶制御装置であって、記憶装置の記憶領域に記憶されているデータを消去するために使用される消去用データのサイズを設定するデータサイズ設定部と、サイズの設定された消去用データを記憶領域に書き込むことにより記憶領域に記憶されたデータを消去させる、データ消去処理を実行するデータ消去部と、データ消去処理の進捗状況を管理する進捗状況管理部と、データ消去処理に関するエラーを検出して管理するエラー検出部と、を備え、データ消去部は、進捗状況管理部により管理される進捗状況とエラー検出部により検出されるエラーとに基づいて、記憶領域のうちデータ消去処理が未完の記憶領域を検出し、その未完の記憶領域についてデータ消去処理を再実行する。
【０００９】
データサイズ設定部は、エラー検出部によってエラーが検出された場合に、消去用データのサイズを初期サイズよりも小さく設定し、データ消去部は、初期サイズよりも小さいサイズに設定された消去用データを用いて、未完の記憶領域についてのデータ消去処理を再実行することができる。
【００１０】
データサイズ設定部は、消去用データのサイズを、初期値から最小値までの３段階以上の値の中から設定することができる。
【００１１】
データ消去部は、データ消去処理を実行する前に、データサイズ設定部により設定されるサイズの消去用データを予め作成して、記憶部に記憶させることができる。
【００１２】
データ消去部は、初期サイズの消去用データを用いて、記憶領域の全体についてのデータ消去処理を実行した後で、初期値よりも小さいサイズの消去用データを用いて、未完の記憶領域についてのデータ消去処理を再実行することができる。
【００１３】
データ消去部は、初期サイズの消去用データを用いて、記憶領域の全体についてのデータ消去処理を実行した後で、未完の記憶領域についてのデータ消去処理が完了するまで、消去用データのサイズを初期値から最小値まで減少させながら繰り返し再実行することができる。
【００１４】
データ消去部は、エラーが検出された場合に、そのエラーの検出された領域についてデータ消去処理が完了するまで、消去用データのサイズを初期値から最小値まで減少させながら繰り返し再実行し、エラーの検出された領域についてデータ消去処理が完了した後で、初期サイズの消去用データを用いて、記憶領域のうち未完の記憶領域についてのデータ消去処理を実行することができる。
【００１５】
データ消去部は、エラーが検出された場合に、そのエラーの検出された領域についてデータ消去処理が完了するまで、消去用データのサイズを初期値から最小値までの範囲で段階的に減少させながら繰り返し再実行し、エラーの検出された領域についてデータ消去処理が完了した後で、最後に設定されたサイズの消去用データを用いて、記憶領域のうち未完の記憶領域についてのデータ消去処理を実行することができる。
【００１６】
データサイズ設定部は、指定された範囲で、消去用データのサイズを段階的に減少させることができる。
【００１７】
データサイズ設定部は、消去用データのサイズを初期値から１／４倍ずつ段階的に減少させることができる。
【００１８】
データ消去部は、指定された回数だけ、未完の記憶領域についてのデータ消去処理を再実行することができる。
【００１９】
データ消去部は、予め用意されている複数の方法のうち、指定された方法でデータ消去処理を実行することができる。
【００２０】
進捗状況管理部は、記憶領域を消去用データのサイズ毎に区切って、データ消去処理が完了したか否かを管理することができる。
【００２１】
本発明の各部または各ステップの少なくとも一部は、コンピュータプログラムとして構成される場合がある。このコンピュータプログラムは、記録媒体に固定して配布したり、ネットワークを介して配信することができる。
【発明を実施するための最良の形態】
【００２２】
以下、図面に基づいて、本発明の実施の形態を説明する。まず最初に、本発明の概念を説明し、その次に、具体的な実施例について説明する。図１は、本発明の概念を模式的に示す説明図である。本実施形態では、以下に述べるように、シュレッディング処理の進捗状況を管理し、ブロックサイズを変化させてシュレッディング処理を行う。例えば、本実施形態では、できるだけ大きいブロックサイズでシュレッディング処理を実行し、エラーが生じた場合には、小さいブロックサイズに変更して、エラーの生じた箇所を再度シュレッディング処理する。
【００２３】
ストレージシステムは、「記憶制御装置」としてのコントローラ１と、「記憶装置」としてのディスクドライブ２とを備えるシステムである。コントローラ１は、データシュレッダ３と、エラー検出部４と、ブロックサイズ設定部５と、管理テーブル６と、複数のブロックサイズを記憶するテーブル７とを備える。
【００２４】
「データ消去部」としてのデータシュレッダ３は、予め設定されるアルゴリズムに基づいて、所定のシュレッダデータをディスクドライブ２に所定回数書き込むことにより、ディスクドライブ２に記憶されているデータを消去させる。以下、データ消去処理をシュレッディング処理と、消去用データをシュレッディングデータと呼ぶ。
【００２５】
エラー検出部４は、シュレッディング処理中に、シュレッディングデータの書込みエラーが発生した場合に、その書込みエラーを検出する。検出されたエラーは、管理テーブル６に記憶される。
【００２６】
「データサイズ設定部」としてのブロックサイズ設定部５は、シュレッディングデータのサイズを設定する。ブロックサイズとしては、テーブル７に示すように、BSZ１、BSZ２、BSZ３...のように複数段階用意されている。１段階変わる毎に、ブロックサイズは１／４倍となる。
【００２７】
管理テーブル６は、「進捗状況管理部」に該当する。管理テーブル６は、ディスクドライブ２内の記憶領域のうち、どこまでシュレッディング処理が完了しているか等の進捗状況を管理する。管理テーブル６は、例えば、ディスクドライブ２内の領域を示すアドレスと、シュレッディング処理の状態と、エラー状態とを対応付けて管理する。管理テーブル６内のアドレスは、使用されるブロックサイズに応じて設定される。なお、後述の実施例に示すように、シュレッディングデータ書込み時のエラーは、別のテーブルで管理する構成でもよい。
【００２８】
ディスクドライブ２は、例えば、ハードディスクドライブやフラッシュメモリデバイス等の、書き換え可能な不揮発性の記憶装置として構成される。図１中左側に示すディスクドライブ２（１）は、シュレッディング処理が初めて実施されている様子を示す。図１中右側に示すディスクドライブ２（２）は、エラーによってシュレッディングの失敗した箇所を再度シュレッディング処理する様子を示す。
【００２９】
本実施形態では、説明の便宜上、データシュレッダ３に、初期サイズとして最大のブロックサイズBSZ１が設定される。管理テーブル６は、ディスクドライブ２の記憶領域をブロックサイズBSZ１単位で管理する。データシュレッダ３は、最大サイズBSZ１のシュレッディングデータを記憶領域の先頭アドレスから順番に書き込んでいく。
【００３０】
ここで、１番目から６番目までの領域８（１）〜８（６）には、正常にシュレッディングデータが書き込まれたが、７番目の領域８（７）では、シュレッディングデータの書込みに失敗したとする。
【００３１】
データシュレッダ３には、次の段階のブロックサイズBSZ２が設定される。データシュレッダ３は、ブロックサイズBSZ２に応じたシュレッディングデータを用意し、エラーの発生した箇所８（７）に再度書き込む。エラーの生じた箇所にシュレッディングデータを再度書き込むことを、シュレッディング処理のリトライと呼ぶ。
【００３２】
ブロックサイズBSZ２は、ブロックサイズBSZ１の１／４であるため、書込みエラーの範囲を小さくできる。さらに、新たな書込みエラーが生じた場合、データシュレッダ３には、さらに次の段階のブロックサイズBSZ３が設定される。ブロックサイズBSZ３は、BSZ２の１／４である。データシュレッダ３は、ブロックサイズBSZ３に応じたシュレッディングデータを用意し、エラーの発生した箇所に書き込む。なお、データシュレッディングの方法は、上述の方法に限られない。後述の実施例に示すように、複数の方法を実行させることができる。
【００３３】
このように本実施形態では、比較的大きなブロックサイズBSZ１を用いてシュレッディング処理を行うことができるため、シュレッディングデータをディスクドライブ２に書き込む回数を少なくすることができ、シュレッディング処理に要する時間を短くすることができる。
【００３４】
本実施形態では、シュレッディングデータの進捗状況や書込みエラーの発生状況を管理する。従って、シュレッディングデータの書込みエラーが発生した場合でも、残りの領域についてシュレッディング処理を続行したり、エラーの発生した箇所にリトライすることができ、使い勝手が向上する。
【００３５】
本実施形態では、シュレッディングデータの書込み時にエラーが発生した場合、ブロックサイズを小さくして、エラー箇所のシュレッディング処理をリトライする。従って、シュレッディング実施範囲を増大させることができ、データシュレッディングの信頼性を高めることができる。以下、本実施形態を詳述する。
【実施例１】
【００３６】
図２は、本実施例に係るストレージシステムの全体構成を示す説明図である。ストレージシステムは、例えば、基本筐体１０と、増設筐体２０と、ホスト３０と、管理装置４０とを備える。ホスト３０と基本筐体１０とは、例えば、FC_SAN（Fibre Channel_Storage Area Network）やIP_SAN（Internet Protocol_SAN）のような通信ネットワークCN１によって接続されている。管理装置４０と基本筐体１０とは、例えば、LAN（Local Area Network）のような通信ネットワークCN２によって接続されている。
【００３７】
図１との対応関係を先に述べると、コントローラ１００は図１中のコントローラ１に、ディスクドライブ２１は図１中のディスクドライブ２に、該当する。基本筐体１０内のCPU１８が所定プログラムを読み込んで実行することにより、図１で述べたデータシュレッダ３，エラー検出部４，ブロックサイズ設定部５等の機能が実現される。
【００３８】
基本筐体１０以外の構成について説明し、次に基本筐体１０の構成を説明する。ホスト３０は、例えば、サーバコンピュータ、ワークステーション、メインフレームコンピュータ等のようなコンピュータである。ホスト３０は、基本筐体１０を介して、論理ボリューム（図中「LV」と略記）２３を利用する。
【００３９】
管理装置４０は、例えば、パーソナルコンピュータや携帯情報端末等のようなコンピュータとして構成される。管理装置４０は、例えば、ストレージ管理部４１と、ウェブブラウザ４２とを備える（図３参照）。ストレージ管理部４１は、基本筐体１０に指示を与えて管理するためのものである。
【００４０】
増設筐体２０は、複数のディスクドライブ２１を備える。本実施例では、ディスクドライブと称するが、ディスク状の記録媒体に限らない。例えば、ハードディスクデバイス、半導体メモリデバイス、光ディスクデバイス、光磁気ディスクデバイス、磁気テープデバイス、フレキシブルディスクデバイス等のデータを読み書き可能な種々のデバイスを利用可能である。記憶デバイスとしてハードディスクデバイスを用いる場合、例えば、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）」等の種々のメモリデバイスを利用可能である。
【００４１】
複数のディスクドライブ２１をグループ化することにより、RAIDグループ２２を生成することができる。RAIDグループ２２が有する物理的記憶領域には、論理的な記憶領域である論理ボリューム２３を設けることができる。増設筐体２０は、スイッチ回路２４を介して基本筐体１０内のコントローラ１００に接続される。
【００４２】
基本筐体１０は、複数のコントローラ１００（１），１００（２）を備えており、これらコントローラ１００（１），１００（２）で冗長化構成が実現されている。以下、コントローラ１００（１），１００（２）を区別せずに、コントローラ１００と呼ぶ。
【００４３】
コントローラ１００は、例えば、ホストインターフェース（図中、インターフェースをＩ／Ｆと略記）１１と、ドライブインターフェース１２と、LANインターフェース１３と、キャッシュメモリ１４と、データ転送制御回路１５（図中、D-CTL１５）と、ブリッジ１６と、ローカルメモリ１７と、CPU１８とを備えている。
【００４４】
ホストインターフェース１１は、ホスト３０と通信するための回路である。「記憶装置用通信インターフェース」としてのドライブインターフェース１２は、ディスクドライブ２１と通信するための回路である。「管理装置用通信インターフェース」としてのＬＡＮインターフェース１３は、管理装置４０と通信するための回路である。ホストインターフェース１１は、例えば、上位装置（ホスト３０）や外部装置（図２８の外部記憶制御装置１０Ｅ）と通信するための上位通信インターフェースと呼ぶこともできる。
【００４５】
キャッシュメモリ１４には、ホスト３０から受信したデータや、ディスクドライブ２１から読み出したデータ、シュレッディングデータ等が記憶される。シュレッディングデータとは、「消去用データ」に該当し、シュレッディング処理に使用される。
【００４６】
データ転送制御回路１５は、キャッシュメモリ１４へのデータ入出力等を制御するための回路である。CPU１８及びローカルメモリ１７は、バスブリッジ１６を介して、データ転送制御回路１５に接続される。
【００４７】
ローカルメモリ１７には、後述のデータシュレッディング処理等を実行するためのコンピュータプログラムや制御情報等が記憶される。CPU１８は、ローカルメモリ１７からコンピュータプログラムを読み込んで実行する。
【００４８】
図３は、コントローラ１００等の構成を模式化して示す説明図である。ローカルメモリ１７には、後述のシュレッディングパラメータＴ１０、シュレッディング管理用ビットマップＴ２０、エラー管理テーブルＴ３０等が記憶される。キャッシュメモリ１４には、シュレッディングデータが記憶される。
【００４９】
図４は、シュレッディング処理に使用されるブロックサイズの一部を簡単に示す説明図である。ブロックサイズBSZとして、例えば、1MB、256KB、64KB、16KB、4KB、1KBのように、１／４倍ずつ段階的に低下する値を使用する。なお、ブロックサイズBSZの最大値は、例えば1GBであり、最小値は例えば1KBである（図１４参照）。
【００５０】
シュレッディング処理を行う場合、コントローラ１００は、設定されたブロックサイズBSZでディスクドライブ２１の記憶領域を管理する。コントローラ１００は、ブロックサイズBSZのシュレッディングデータＳＤを、ディスクドライブ２１の記憶領域の先頭アドレスから最終アドレスまで順番に、連続的に書き込んでいく。
【００５１】
シュレッディングデータを書き込んでいる最中にエラーが生じた場合、ブロックサイズBSZは１段階低い値に再設定される。コントローラ１００は、より小さなブロックサイズBSZで、エラーの発生した箇所のシュレッディング処理を再び試みる。
【００５２】
図５は、シュレッディングパラメータＴ１０等を示す説明図である。シュレッディングパラメータＴ１０とは、シュレッディング処理に使用される各種パラメータを記憶するテーブルである。シュレッディングパラメータＴ１０は、例えば、ユーザが管理装置４０を用いて設定する。
【００５３】
シュレッディングパラメータＴ１０は、例えば、シュレッディングアルゴリズムＣ１０と、シュレッディング対象Ｃ１１と、デフォルトのブロックサイズＣ１２と、リトライ回数Ｃ１３と、リトライ方法Ｃ１４とを含む。
【００５４】
シュレッディングアルゴリズムＣ１０には、シュレッディング処理に使用するアルゴリズムを選択するための情報が設定される。例えば、米国国防総省準拠方式（DoD5220.22-M）、NCSC準拠方式（NCSC-TG-025）、米空軍準拠方式（AFSSI5020,AFI33-202）、Gutmann推奨方式のような、複数のシュレッディングアルゴリズムの中から、いずれか１つのアルゴリズムが選択される。
【００５５】
シュレッディング対象Ｃ１１には、シュレッディング処理を行う対象を特定するための情報が設定される。シュレッディング対象としては、例えば、ディスクドライブ単位、RAIDグループ単位、論理ボリューム単位を挙げることができる。さらに、互いに関連性のある複数の論理ボリュームを、シュレッディング対象として指定することもできる。
【００５６】
デフォルトのブロックサイズＣ１２には、シュレッディング処理の最初に使用されるブロックサイズが設定される。リトライ回数Ｃ１３には、シュレッディング処理のリトライ回数が設定される。リトライ方法Ｃ１４には、予め用意されている複数のリトライ方法の中からいずれか１つを選択するための情報が設定される。複数のリトライ方法の詳細は、後述する。
【００５７】
構成管理テーブルＴ１１は、ストレージシステム内の記憶資源に関する情報を管理するテーブルである。構成管理テーブルＴ１１は、例えば、LV#と、RAIDグループ#と、HDDリストと、RAIDレベルと、その他の各項目を備える。
【００５８】
「LV#」は、論理ボリューム２３を識別するための情報である。「RAIDグループ#」は、RAIDグループ２２の記憶領域を論理ボリューム２３に割り当てるために用いられる、中間的記憶装置を識別するための情報である。「HDDリスト」とは、RAIDグループ２２に属する各ディスクドライブ２１を識別するための情報である。「RAIDレベル」とは、RAIDグループのRAIDレベルやRAID構成を特定するための情報である。「その他」には、例えば、RAIDグループの合計容量や空き容量、論理ボリュームを使用するホストを特定するための情報等が設定される。
【００５９】
シュレッディングパラメータＴ１０のシュレッディング対象Ｃ１１は、構成管理テーブルＴ１１を参照することにより、設定される。
【００６０】
図６は、シュレッディング処理に使用可能なブロックサイズが登録されているテーブルＴ１２を示す。構成管理テーブルＴ１１及びブロックサイズ管理テーブルＴ１２は、ローカルメモリ１７に記憶される。なお、ローカルメモリ１７に代えて、例えば、システム情報等を記憶するために用意されたディスクドライブ２１等に記憶させてもよい。
【００６１】
ブロックサイズ管理テーブルＴ１２は、連番Ｃ１５と、ブロックサイズＣ１６とを備えている。ブロックサイズＣ１６には、例えば、1GBから1KBまで、順番にサイズが１／４倍となるように、合計１１段階のブロックサイズが設定される。
【００６２】
例えば、デフォルトのブロックサイズとして64MBを用いることができる。デフォルトのブロックサイズの値によって、リトライ可能な回数も制限される。デフォルトブロックサイズは、あるシュレッディング対象について実行される一連のシュレッディング処理において、最大サイズとなる。つまり、シュレッディング処理は、最大のブロックサイズで開始され、エラーが発生すると小さいブロックサイズに変更される。
【００６３】
図７は、シュレッディング管理ビットマップＴ２０を示す説明図である。シュレッディング管理ビットマップＴ２０は、CPU１８と共に「進捗状況管理部」を構成する。フローチャートでは、シュレッディング管理ビットマップは、管理BMPと略記される。
【００６４】
管理ビットマップＴ２０は、例えば、ブロックアドレスＣ２０と、状態Ｃ２１とを管理する。ブロックアドレスＣ２０は、シュレッディング対象の記憶領域を、シュレッディング処理に使用されるブロックサイズ毎に管理するためのアドレスである。例えば、ブロックサイズとして64MBが設定される場合、ブロックアドレスＣ２０には、シュレッディング対象の記憶領域の先頭アドレスから順番に64MB単位で増加する値が設定される。
【００６５】
状態Ｃ２１とは、そのブロックアドレスに関するシュレッディング処理の状態を示す情報である。状態Ｃ２１には、例えば、「完了」、「実行中」、「未完」、「エラー」のいずれか１つが設定される。「完了」は、そのブロックアドレスについてシュレッディング処理が正常に完了した状態を示す。「実行中」は、そのブロックアドレスについてシュレッディング処理を実行中であることを示す。「未完」は、そのブロックアドレスについてシュレッディング処理が未だ実行されていないことを示す。「エラー」は、そのブロックアドレスについてシュレッディング処理中に、シュレッディングデータの書込みエラーが発生した状態を示す。
【００６６】
例えば、シュレッディング対象が１つのディスクドライブ２１の場合を説明する。ディスクドライブ２１の記憶領域は、先頭アドレスから順番に、シュレッディング処理で使用されるブロックサイズ単位で、シュレッディング処理の進捗状況が管理される。
【００６７】
ブロックアドレスADR１からADR６までのシュレッディング処理が正常に完了し、ブロックアドレスADR７についてシュレッディング処理が実行される。そのとき、管理テーブルＴ２０内のブロックアドレスADR７の欄には、「実行中」と設定される。ADR７へのシュレッディングデータ書込み中に、書込みエラーが発生すると、「実行中」から「エラー」に変化される。そのエラーの内容は、図８に示すエラー管理テーブルＴ３０に記録される。なお、エラー管理テーブルＴ３０と管理ビットマップＴ２０とを統合化する構成でもよい。
【００６８】
さて、ADR７についてエラーが検出されると、そのエラーの発生した箇所（ADR７の領域）について、別の管理ビットマップＴ２０（ADR７）が生成される。別の管理ビットマップＴ２０（ADR７）は、エラー発生箇所をADR７０〜ADR７３の４つに分割して管理する。
エラーの発生した箇所は、最初のブロックサイズよりも１段階低いブロックサイズ（＝エラー発生前のブロックサイズの１／４）で、シュレッディングデータが書き込まれる。エラーの発生した箇所は、新たなエラーが発生しない場合、１／４サイズのシュレッディングデータが４回書き込まれることにより、シュレッディング処理が完了する。
【００６９】
図９は、複数のリトライ方法を模式的に示す説明図である。本実施例では、第１方式から第４方式までの合計４つの方式のうち、いずれか１つの方式を選択する。なお、もしも時間に余裕があるのであれば、同一のシュレッディング対象について、複数の方式を重ねて実行させてもよい。
【００７０】
以下の説明では、図９中の左端から順番に、第１領域、第２領域、第３領域、第４領域と呼ぶ。右端の領域が第４領域である。最初のブロックサイズをBSZ１、それよりも１段階サイズの小さいブロックサイズをBSZ２、それよりも１段階サイズの小さいブロックサイズをBSZ３とする。
【００７１】
図９（１）は、第１方式の概略を示す。第１方式では、エラーが発生した場合でも、そのエラー発生箇所へのリトライを後回しにして、シュレッディング対象の全体を一通りシュレッディング処理する。次に、第１方式では、ブロックサイズを１段階低下させて、全てのエラー発生箇所のシュレッディング処理を一通りリトライする。
【００７２】
最初のシュレッディング処理で検出された全てのエラー発生箇所について、シュレッディング処理のリトライが完了した後、ブロックサイズをさらに１段階低下させ、１回目のリトライ中に発見された新たなエラー発生箇所について、シュレッディング処理をリトライする。以下同様に、最小単位のブロックサイズでシュレッディング処理のリトライが行われるか、あるいは、エラー発生箇所が無くなるまで、繰り返される。
【００７３】
ここで、最小単位とは、そのシュレッディング処理で使用可能なブロックサイズのうちの最小値を意味する。例えば、1GBから1KBまでの範囲で指定可能な場合でも、初期値が1GBで、かつ、リトライ回数が３に設定されている場合、使用可能なブロックサイズは、1GB、256MB、64MB、16MBの４つとなる。従って、この場合、ブロックサイズの最小単位は、16MBとなる。
【００７４】
以上は、一つのシュレッディングデータについてのサイクルを示す。例えば、ビット０のシュレッディングデータとビット１のシュレッディングデータとを２回書き込む場合、上記のサイクルが２回実行される。
【００７５】
図９（１）の例では、第１領域にBSZ１のシュレッディングデータが書き込まれた後（Ｓ１）、処理対象は第２領域へ移る。第２領域にシュレッディングデータを書き込んでいる途中で書込みエラーが発生した場合、処理対象は第３領域に移る。この時点では、第２領域へのリトライは行われない。第３領域には、BSZ１のシュレッディングデータが書き込まれる（Ｓ２）。処理対象は第４領域に移るが、第４領域でもシュレッディングデータの書込みエラーが発生したとする。
【００７６】
第１領域から第４領域までのシュレッディング処理が一通り終了した後、エラー発生箇所（第２領域と第４領域）についてシュレッディング処理のリトライが行われる。そのリトライ処理では、最初のブロックサイズBSZ１よりも１段階小さいブロックサイズBSZ２が使用される。エラー発生箇所についてシュレッディング処理を再度実行することを、リトライ処理と呼ぶことがある。
【００７７】
最初のエラー発生箇所である第２領域は、４つのサブ領域に分割されて管理される。各サブ領域には、ブロックサイズBSZ２のシュレッダデータがそれぞれ順番に書き込まれる（Ｓ３〜Ｓ６）。第２領域についてのリトライ処理が終了した後、次のエラー発生箇所である第４領域について、リトライ処理が行われる。第４領域も、BSZ２に応じたサイズのサブ領域に分割されて管理される。各サブ領域には、BSZ２のシュレッディングデータがそれぞれ順番に書き込まれる（Ｓ７〜Ｓ１０）。
【００７８】
一回目のリトライ処理中に、新たなエラー（シュレッディングデータの書込みエラー）が生じた場合でも、一回目のリトライ処理が一通り終了するまで、その新たなエラーについてのリトライ処理は行われない。最初に検出された各エラー発生箇所について、一回目のリトライ処理が終了した後、新たなエラー発生箇所についての２回目のリトライ処理が実行される。
【００７９】
図９（２）は、第２方式の概略を示す。第２方式では、第１方式と同様に、最初のシュレッディング処理でエラーが検出された場合でも、シュレッディング対象領域全体について一通りシュレッディング処理が終了するまでは、リトライ処理を実行しない。第１方式と第２方式との相違は、第２方式では、最初のシュレッディング処理で検出された各エラー発生箇所について、それぞれ最小単位のブロックサイズとなるか、または、エラーが全て無くなるまで、リトライ処理を行う。
【００８０】
図９（２）の例では、第１領域についてBSZ１のシュレッディングデータが書き込まれた後（Ｓ１）、処理対象は第２領域に移る。しかし、第２領域でシュレッディングデータの書込みエラーが発生したとする。第２領域についてのリトライ処理は後回しにされ、処理対象は第３領域に移る。第３領域に、ブロックサイズBSZ１のシュレッディングデータが正常に書き込まれた後（Ｓ２）、処理対象は第４領域に移る。第４領域では、シュレッディングデータの書込みエラーが発生したとする。
【００８１】
シュレッディング対象範囲の全体（第１領域〜第４領域）について、最初のシュレッディング処理が終了した後、エラー発生箇所（第２領域、第４領域）についてのリトライ処理が開始される。
【００８２】
最初に発見された各エラー発生箇所のそれぞれについて、最小単位のブロックサイズとなるまでリトライ処理が行われる。なお、最小単位のブロックサイズを用いるリトライ処理が開始されるよりも前に、シュレッディングデータが正常に書き込まれてエラーが解消された場合、そのエラー発生箇所に関するリトライ処理は、その時点で終了する。
【００８３】
第２領域は、BSZ１よりも１段階小さいブロックサイズBSZ２に応じて分割され、管理される。各サブ領域に、BSZ２のシュレッディングデータが順番に書き込まれる（Ｓ３，Ｓ５〜Ｓ７）。第２領域内の第１サブ領域（左上）にBSZ２のシュレッディングデータが書き込まれている最中に、エラーが発生したとする（Ｓ３）。その第１サブ領域は、さらに４分割されて管理されて、BSZ２よりも１段階小さいブロックサイズBSZ３のシュレッディングデータが書き込まれる（Ｓ４）。
【００８４】
なお、図示は省略するが、もしも、Ｓ４の実行中にさらにエラーが生じた場合、そのエラー発生箇所はさらに４分割されて、BSZ２よりも１段階小さいサイズBSZ３を用いてリトライ処理が実行される。
【００８５】
第４サブ領域（第２領域内の左下）をリトライ処理中に（Ｓ７）、エラーが生じた場合、前記同様に、そのエラー発生箇所について、さらに小さいブロックサイズBSZ３を用いたリトライ処理が実行される（Ｓ８）。
【００８６】
このようにして最初のエラー発生箇所についてリトライ処理を行った後、処理対象は、次のエラー発生箇所である第４領域に移る。そして、上記同様に、可能な限りのリトライ処理が行われる（Ｓ９〜Ｓ１３）。
【００８７】
このように、第２方式では、最も大きい初期サイズでのシュレッディング処理をシュレッディング対象範囲の全体について実施した後、各エラー発生箇所のリトライ処理を可能な限り実行する。リトライ処理に移行してからエラーが発見された場合、その発見されたエラーに関するリトライ処理は直ちに実行される。
【００８８】
図９（３）は、第３方式の概略を示す。第３方式では、最初のシュレッディング処理中にエラーが発生した場合、そのエラーの発生した箇所について直ちにリトライ処理が実行される。最小単位のブロックサイズを用いたリトライ処理が終了するか、または、エラーが解消するまで、そのエラー発生箇所についてのリトライ処理が行われる。そのエラー発生箇所についてリトライ処理が終了した後、ブロックサイズは初期サイズに戻されて、次の領域について、最初のシュレッディング処理が続行される。
【００８９】
図９（３）に示す例では、第１領域に、初期サイズBSZ１のシュレッディングデータが書き込まれた後（Ｓ１）、第２領域にシュレッディングデータが書き込まれる。しかし、第２領域に書込みエラーが発生したとする。そのエラー発生箇所（第２領域）へのリトライ処理は直ちに開始され、可能な限り実行される（Ｓ２〜Ｓ７）。即ち、第２領域について、最小単位のリトライ処理が実行されるか、エラーが全て解消されるまで、シュレッディングデータが書き込まれる。
【００９０】
第２領域へのリトライ処理が完了すると、処理対象は第３領域に移る。同時に、ブロックサイズは、初期サイズBSZ１に戻る。第３領域には、BSZ１のシュレッディングデータが正常に書き込まれる（Ｓ８）。
【００９１】
第４領域へのシュレッディングデータ書込み中にエラーが生じた場合、第２領域について述べたと同様に、第４領域についていのリトライ処理は直ちに開始され、可能な限り実行される（Ｓ９〜Ｓ１３）。可能な限り実行するとは、最小単位のリトライ処理を終了するか、または、エラーが解消するまで、という意味である。
【００９２】
図９（４）は、第４方式の概略を示す。第４方式では、第３方式と同様に、最初のシュレッディング処理中にエラーが発生した場合、そのエラーの発生した箇所について直ちにリトライ処理が実行される。第３方式では、エラー発生箇所についてのリトライ処理が完了した後、シュレッディングデータのサイズを初期サイズBSZ１に戻すが、第４方式では、最後に使用したブロックサイズのままで、他の領域についてのシュレッディング処理を実行する。
【００９３】
図９（４）に示す例では、第１領域に、初期サイズBSZ１のシュレッディングデータが正常に書き込まれた後（Ｓ１）、処理対象は第２領域に移る。しかし、第２領域では、書込みエラーが発生したとする。ブロックサイズは、直ちに、初期サイズBSZ１よりも１段階小さいブロックサイズBSZ２に変更される。
【００９４】
そのブロックサイズBSZ２を用いて、第２領域についてのリトライ処理が可能な限り実行される（Ｓ２〜Ｓ５）。ここでは、ブロックサイズBSZ２のシュレッディングデータを第２領域を４分割してなる各サブ領域に全て正常に書き込めたとする。
【００９５】
処理対象は第３領域に移る。ブロックサイズは、第２領域へのリトライ処理で使用されたブロックサイズBSZ２がそのまま使用される。第３領域の各サブ領域には、BSZ２のシュレッディングデータがそれぞれ書き込まれる（Ｓ６〜Ｓ９）。第３領域内の左下に示す第３サブ領域で新たなエラーが発生した場合、ブロックサイズはBSZ２よりも１段階小さいBSZ３に変更される（Ｓ１０）。
【００９６】
第３領域について、リトライ処理が可能な限り実行されると（Ｓ６〜Ｓ１０）、処理対象は第４領域に移る。最後に設定されたブロックサイズBSZ３がそのまま使用される。第４領域は１６分割されて管理され、各分割された区域にサイズBSZ３のシュレッディングデータがそれぞれ書き込まれる。
【００９７】
以上述べたように、本実施例では、第１方式〜第４方式のいずれか一つを選択して、シュレッディング処理を行う。図９（１）に示す第１方式では、大きな初期サイズBSZ１のシュレッディングデータを用いて、シュレッディング対象領域の全体を一通り処理した後、エラー発生箇所についてリトライ処理を行う。つまり、第１方式では、できるだけブロックサイズを低下させずに処理を実行するため、シュレッディングデータの書込み回数を少なくして、シュレッディング処理を早期に完了させることができる。
【００９８】
第１方式では、シュレッディング処理を開始してから比較的短時間で、シュレッディング対象に広範囲にシュレッディングデータを書き込むことができる。従って、シュレッディング処理の途中でディスクドライブ２１が増設筐体２０から抜き取られた場合でも、そのディスクドライブ２１から読出し可能なデータ量を少なくすることができ、セキュリティ性が向上する。
【００９９】
図９（２）に示す第２方式も、初期サイズBSZ１をできるだけ長く使用して、書込み回数を低減し、処理時間を短縮できる。
【０１００】
図９（３）に示す第３方式では、エラー発生箇所について可能な限りリトライ処理を実行した後、ブロックサイズを初期サイズBSZ１に戻して、未処理の領域にシュレッディングデータを書き込む。従って、第３方式では、シュレッディング対象の先頭アドレスから順番に着実にデータを消去していくことができる。
【０１０１】
図９（４）に示す第４方式では、いったん小さくしたブロックサイズを初期サイズに戻す必要が無いため、方法としては比較的簡単である。シュレッディング対象領域が比較的小さく、かつ、シュレッディング対象領域の後ろの方にエラー原因が隠れているような場合に、第４方式は有効に作用する。その場合、シュレッディング対象領域の大部分に、大きなブロックサイズでシュレッディングデータを書き込むことができるからである。反対に、シュレッディング対象領域が比較的広く、かつ、前の方にエラー原因が潜んでいる場合、第４方式では、シュレッディング処理が完了するまでの時間が長くなる。
【０１０２】
第１方式〜第４方式のいずれを採用するかは、ユーザが決定可能である。あるいは、推奨方式として、例えば、第１方式や第２方式を初期値に設定することもできる。
【０１０３】
図１０は、ユーザが管理装置４０を介して、シュレッディング処理のためのパラメータをコントローラ１００に設定する処理を示す。本処理は、管理装置４０がコントローラ１００と適宜通信することにより、実行される。以下に示す各フローチャートは、それぞれの処理の概要を示しており、実際のコンピュータプログラムと相違する場合がある。いわゆる当業者であれば、図示されたステップの変更、入れ替え、追加または削除を行うことができるであろう。
【０１０４】
図１０の説明に際して、図１２〜図１８に示す画面例が適宜参照される。まず、管理装置４０には、図１２に示すようなメニュー画面Ｇ１０が表示される（Ｓ１０）。そこで、図１２を参照する。メニュー画面Ｇ１０には、項目選択部Ｐ１０と、シュレッディング部Ｐ１１とが表示されている。ユーザは、シュレッディング設定部Ｐ１２内のシュレッディング設定ボタンＢ１０を操作することにより、シュレッディングパラメータを設定するための画面Ｇ２０，Ｇ２１に移ることができる（図１３，図１４参照）。
【０１０５】
図１３に示すパラメータ設定画面Ｇ２０は、設定部Ｐ２０、リスト選択部Ｐ２１と、アルゴリズム選択部Ｐ２２を含む。設定部Ｐ２０は、シュレッディング単位を設定するためのものである。例えば、ディスクドライブ単位、RAIDグループ単位、論理ボリューム単位のいずれかで、シュレッディング対象を選択できる。
【０１０６】
リスト選択部Ｐ２１は、設定されたシュレッディング単位のリストを表示して、シュレッディング対象を選択させるためのものである。ディスクドライブ単位の場合、シュレッディング処理対象として選択可能な全てのディスクドライブ２１が、リスト形式で表示される。そのリストには、例えば、ドライブ番号、記憶容量、所属するRAIDグループ番号、RAIDレベル等が表示される。
【０１０７】
アルゴリズム選択部Ｐ２２は、予め用意されている複数のシュレッディングアルゴリズムの中からいずれか１つのアルゴリズムを選択させるものである。アルゴリズム選択部Ｐ２２には、各アルゴリズムの概要（書込み回数や書き込まれるパターン等）を表示させることができる。
【０１０８】
図１４には、図１３の画面Ｇ２０に続く画面Ｇ２１が示されている。この画面Ｇ２１は、ブロックサイズ選択部Ｐ２３と、リトライ回数設定部Ｐ２４と、リトライ方法選択部Ｐ２５と、ＯＫボタンＢ２０と、キャンセルボタンＢ２１とを含む。
【０１０９】
ブロックサイズ選択部Ｐ２３は、シュレッディング処理に使用されるデフォルトのブロックサイズを選択するためのものである。例えば、1GB〜1KBまで１／４倍ずつ低下する範囲の中から、ユーザは、初期サイズBSZ１の値を選択する。
【０１１０】
リトライ回数設定部Ｐ２４は、リトライ回数の上限値を設定するものである。リトライ回数とは、リトライ処理を実行する回数である。リトライ方法選択部Ｐ２５は、第１方式〜第４方式の中からいずれか１つのリトライ方法を選択させるためのものである。
【０１１１】
ユーザは、画面Ｇ２０，Ｇ２１に示される各パラメータを設定して、ＯＫボタンＢ２０を操作する。設定内容を取り消す場合は、キャンセルボタンＢ２１を操作する。
【０１１２】
図１０に戻る。ユーザがシュレッディングパラメータを設定すると（Ｓ１１）、図１５に示す実行指示画面Ｇ３０が管理装置４０に表示される。実行指示画面Ｇ３０には、注意欄Ｐ３０と、確認部Ｐ３１と、実行ボタンＢ３０と、キャンセルボタンＢ３１とが含まれている。
【０１１３】
注意欄Ｐ３０には、シュレッディング実行時の注意事項が示されている。確認部Ｐ３１は、ユーザの意思を最終確認するためのものである。いったんシュレッディングされたデータは回復させることができないためである。
【０１１４】
但し、シュレッディング対象のディスクドライブがRAID１〜RAID６等で冗長化されたRAIDグループ２２に属する場合、シュレッディング処理で消去されたデータを、同一RAIDグループ内の他のディスクドライブ２１を用いて復元可能である。
【０１１５】
ユーザは、シュレッディング処理を実行させる場合、実行ボタンＢ３０を操作する（図１０のＳ１２）。シュレッディング処理の実行を取り消す場合、ユーザは、キャンセルボタンＢ３１を操作すればよい。
【０１１６】
シュレッディング処理が開始されると、図１６に示すような実行中画面Ｇ４０が表示される（Ｓ１３）。実行中画面Ｇ４０は、例えば、進行状況表示部Ｐ４０と、経過時間表示部Ｐ４１と、残り時間表示部Ｐ４２と、エラー発生数表示部Ｐ４３と、エラー発生箇所表示部Ｐ４４とを含む。
【０１１７】
進行状況表示部Ｐ４０は、シュレッディング処理がどこまで完了したかを、例えば、0-100％のグラフ形式で表示する。経過時間表示部Ｐ４１は、シュレッディング処理を開始してからの経過時間を表示する。残り時間Ｐ４２は、シュレッディング処理が完了すると予測される時刻までの残り時間を表示する。エラー発生数表示部Ｐ４３は、シュレッディング処理中に発生した、書込みエラーの総数を表示する。エラー発生箇所表示部Ｐ４４は、書込みエラーの発生したアドレスやエラーの生じたブロックのサイズを表示する。
【０１１８】
シュレッディング処理中にコントローラ１００やディスクドライブ２１等に異常が発生して、書き込むことができないエラーが発生すると（S14:YES）、図１７に示すようなエラー表示画面Ｇ５０が表示される。エラー表示画面Ｇ５０は、シュレッディングデータの書込みエラーをユーザに通知するための画面である。この画面Ｇ５０は、通知欄Ｐ５０と、ボタンＢ５０とを含む。
【０１１９】
通知欄Ｐ５０には、シュレッディングデータの書込み中にエラーが生じた旨等が表示される。ボタンＢ５０は、画面Ｇ５０を閉じさせるためのボタンである。
【０１２０】
シュレッディングデータの書込みエラーが発生しない場合（S14:NO）、シュレッディング処理が完了したか否かが判定される（Ｓ１６）。シュレッディング処理が完了した場合（S16:YES）、管理装置４０は、図１８に示すような処理完了画面Ｇ６０を表示させる（Ｓ１７）。シュレッディング処理が完了するまでの間（S16:NO）、管理装置４０は、実行中画面Ｇ４０を表示させる。
【０１２１】
図１８に示すように、処理完了画面Ｇ６０は、実行中画面Ｇ４０と同様に、Ｐ６０、Ｐ６１、Ｐ６２、Ｐ６３、Ｐ６４を備える。Ｐ６０〜Ｐ６４は、図１６に示すＰ４０〜Ｐ４４と同様なため、その説明を省略する。ボタンＢ６０は、画面Ｇ６０を閉じさせるためのボタンである。
【０１２２】
図１１は、シュレッディング処理を開始する前の準備処理を示す。本処理は、コントローラ１００によって実行される。コントローラ１００は、管理装置４０から、シュレッディング処理のためのパラメータを受領すると（Ｓ２０）、そのパラメータをコントローラ１００内に設定させる（Ｓ２１）。シュレッディングパラメータをコントローラ１００の内部に設定させるとは、シュレッディングパラメータＴ１０をローカルメモリ１７に記憶させることを意味する。
【０１２３】
コントローラ１００は、シュレッディングパラメータＴ１０をローカルメモリ１７に記憶させる際に、エラーが生じたか否かを判定する（Ｓ２２）。エラーが発生した場合（S22:YES）、コントローラ１００は、管理装置４０に通知する（Ｓ２３）。
【０１２４】
図１９，図２０に基づいて、第１方式のリトライ処理を含むシュレッディング処理を説明する。本処理は、コントローラ１００によって実行される。コントローラ１００は、リトライ回数を管理するための変数NRを初期化する（Ｓ３０）。
【０１２５】
コントローラ１００は、初期サイズのシュレッディングデータを作成して、キャッシュメモリ１４に記憶させる（Ｓ３１）。コントローラ１００は、初期サイズに対応する、管理ビットマップＴ２０を作成し、ローカルメモリ１７に記憶させる（Ｓ３２）。さらに、コントローラ１００は、シュレッディング処理中のエラーの詳細を記録するためのエラー管理テーブルＴ３０を作成し、ローカルメモリ１７に記憶させる（Ｓ３３）。
【０１２６】
コントローラ１００は、管理ビットマップＴ２０上のアドレスを指し示すためのポインタPbmpを初期化する（Ｓ３４）。これにより、シュレッディングデータの最初の書込先アドレスは、シュレッディング対象の記憶領域の先頭アドレスに設定される。
【０１２７】
コントローラ１００は、キャッシュメモリ１４から初期サイズのシュレッディングデータを読み出して、シュレッディング対象領域の先頭アドレスに書き込む（Ｓ３５）。コントローラ１００は、書込みエラーが発生したか否かを判定する（Ｓ３６）。
【０１２８】
書込みエラーが発生した場合（S36:YES）、コントローラ１００は、そのエラーの発生した箇所をエラー管理テーブルＴ３０に記録させる（Ｓ３７）。なお、管理ビットマップＴ２０の該当箇所の状態は、「実行中」から「エラー」に変更される。コントローラ１００は、管理ビットマップＴ２０のポインタを１つ先に進める（Ｓ３８）。そして、コントローラ１００は、シュレッディング対象範囲の全体について、初期サイズのシュレッディングデータの書込みを試みたか否かを判定する（Ｓ３９）。
【０１２９】
シュレッディング対象範囲の全体について、初期サイズのシュレッディングデータの書込みを試みたと判定されるまで（S39:NO）、Ｓ３５〜Ｓ３９が繰り返される。初期サイズのシュレッディングデータの書込みを、シュレッディング対象範囲の全体について一通り試した場合（S39:YES）、図２０に示すＳ４０に移る。
【０１３０】
コントローラ１００は、リトライ回数NRが上限値NRmaxに達したか否かを判定する（Ｓ４０）。リトライ回数の上限値NRmaxは、図１４に示すＰ２４によって予め指定されている。
【０１３１】
リトライ回数NRが上限値NRmaxに達していない場合（S40:NO）、コントローラ１００は、エラー管理テーブルＴ３０からエラー発生箇所（以下、エラー箇所とも呼ぶ）を呼び出す（Ｓ４１）。コントローラ１００は、初期サイズよりも１段階小さいサイズのシュレッディングデータを作成して、キャッシュメモリ１４に記憶させる（Ｓ４２）。新たに作成されるシュレッディングデータのサイズは、初期サイズの１／４である。
【０１３２】
コントローラ１００は、シュレッディングデータのサイズ変更に合わせて、新たな管理ビットマップＴ２０を作成する（Ｓ４３）。コントローラ１００は、新たに作成された管理ビットマップＴ２０のポインタを初期化し（Ｓ４４）、エラー箇所に、小サイズのシュレッディングデータを書き込む（Ｓ４５）。コントローラ１００は、リトライ回数NRを１つ増加させ（Ｓ４６）、図１９のＳ３６に戻る。
【０１３３】
つまり、Ｓ３６に戻ることにより、コントローラ１００は、ブロックサイズを１段階だけ小さくしたシュレッディングデータを用いて、全てのエラー箇所へのリトライ処理を一通り実施する。その１段階だけ小さいブロックサイズを用いたリトライ処理が一通り終了すると（S39:YES）、コントローラ１００は、リトライ回数NRが上限値NRmaxに達したか否かを再び判定する（Ｓ４０）。NRがNRmaxに達していない場合（S40:NO）、コントローラ１００は、ブロックサイズをさらに１段階小さくさせて、残っている各エラー箇所についてリトライ処理を一通り実施する。
【０１３４】
やがて、リトライ回数NRが上限値NRmaxに到達すると（S40:YES）、コントローラ１００は、シュレッディングアルゴリズムの書込みパターンが全て完了したか否かを判定する（Ｓ４７）。通常のシュレッディングアルゴリズムは、複数のシュレッディングデータを同一場所に複数回書き込むことにより、そこに記憶されたデータを消去させる（図１３のＰ２２参照）。以下、シュレッディングアルゴリズムにより何回か書き込む方法を「書込みパターン」と呼ぶ。
【０１３５】
例えば、１番目のシュレッディングデータの書込みパターンを記憶領域の全体に書き込んだ後、２番目のシュレッディングデータを記憶領域の全体に上書きし、さらに、３番目のシュレッディングデータを記憶領域に上書きするような場合である。そこで、Ｓ４７では、予定された、シュレッディングデータの書込みが全て終了したか否かを判定する。
【０１３６】
未だ書き込まれていない書込みパターンのシュレッディングデータが有る場合（S47:NO）、コントローラ１００は、Ｓ３１に戻って、次の書込みパターンのシュレッディングデータを作成し、キャッシュメモリ１４に記憶させる。以下、前記同様に、次のシュレッディングデータを記憶領域に書き込む処理が実行される。
【０１３７】
シュレッディングアルゴリズムの書込みパターンが全て終了した場合（S47:YES）、コントローラ１００は、エラー管理テーブルＴ３０を参照し（Ｓ４８）、管理装置４０に処理結果を出力する（Ｓ４９）。これにより、管理装置４０は、図１８で述べたような処理完了画面を表示させる。
【０１３８】
なお、最小単位のサイズでリトライ処理してもエラーが残る場合、例えば、そのエラー箇所について、最小単位サイズで所定回数だけリトライする。それでもエラーが解消しない場合、つまり、最小単位サイズのシュレッディングデータを正常に書き込むことができない場合、そのエラー箇所についてのシュレッディング処理をスキップし、次のステップ（Ｓ４７）に進む。これにより、次のシュレッディングデータを書き込む処理に移行することができる。
【０１３９】
図２１，図２２に基づいて第２方式のリトライ処理を含むシュレッディング処理を説明する。本処理も、第１方式と同様に、コントローラ１００により実行される。コントローラ１００は、リトライ回数を管理するための変数NRを初期化する（Ｓ６０）。
【０１４０】
コントローラ１００は、初期サイズのシュレッディングデータを作成して、キャッシュメモリ１４に記憶させる（Ｓ６１）。コントローラ１００は、初期サイズに対応する、管理ビットマップＴ２０を作成し、ローカルメモリ１７に記憶させる（Ｓ６２）。さらに、コントローラ１００は、エラー管理テーブルＴ３０を作成し、ローカルメモリ１７に記憶させる（Ｓ６３）。
【０１４１】
コントローラ１００は、管理ビットマップＴ２０上のアドレスを指し示すためのポインタPbmpを初期化し（Ｓ６４）、初期サイズのシュレッディングデータをシュレッディング対象領域の先頭アドレスに書き込む（Ｓ６５）。コントローラ１００は、書込みエラーが発生したか否かを判定する（Ｓ６６）。
【０１４２】
書込みエラーが発生した場合（S66:YES）、コントローラ１００は、そのエラーの発生した箇所をエラー管理テーブルＴ３０に記録させる（Ｓ６７）。コントローラ１００は、管理ビットマップＴ２０のポインタを１つ先に進る（Ｓ６８）。コントローラ１００は、シュレッディング対象範囲の全体について、初期サイズのシュレッディングデータの書込みを試みたか否かを判定する（Ｓ６９）。
【０１４３】
シュレッディング対象範囲の全体について、初期サイズのシュレッディングデータの書込みを試みたと判定されるまで（S69:NO）、Ｓ６５〜Ｓ６９が繰り返される。初期サイズのシュレッディングデータの書込みを、シュレッディング対象範囲の全体について一通り試した場合（S69:YES）、図２２に示すＳ７０に移る。
【０１４４】
コントローラ１００は、エラー管理テーブルＴ３０からエラー箇所を呼び出し（Ｓ７０）、そのエラー箇所について、可能な限りリトライ処理を実行する（Ｓ７１）。つまり、最初のシュレッディング処理で検出されたエラー箇所について、リトライ回数NRが上限値NRmaxに達するまで、シュレッディングデータのサイズを小さくしながらリトライ処理を実行する（Ｓ７１）。
【０１４５】
コントローラ１００は、最初のシュレッディング処理で検出された全てのエラー箇所について、可能な限りのリトライ処理を終えたか否かを判定する（Ｓ７２）。未だリトライ処理の終了していないエラー箇所が有る場合（S72:NO）、Ｓ７０に戻る。
【０１４６】
全てのエラー箇所について可能な限りのリトライ処理を行った場合（S72:YES）、コントローラ１００は、シュレッディングアルゴリズムで定められている全てのシュレッディングデータの書込みパターンの書込みが完了したか否かを判定する（Ｓ７３）。
【０１４７】
未書込みのシュレッディングデータの書込みパターンが有る場合（S73:NO）、Ｓ６１に戻って、上述のステップＳ６１〜Ｓ７２を繰り返す。全てのシュレッディングデータの書込みパターンをシュレッディング対象領域に書き込んだ場合（S73:YES）、コントローラ１００は、エラー管理テーブルＴ３０を参照し（Ｓ７４）、処理結果を管理装置４０に出力する（Ｓ７５）。
【０１４８】
図２３，図２４を参照して、第３方式のリトライ処理を含むシュレッディング処理を説明する。本処理も、コントローラ１００により実行される。まず最初に、コントローラ１００は、リトライ回数を管理するための変数NRを初期化し（Ｓ８０）、続いて、シュレッディング対象の全ディスクドライブ２１に関する情報を構成管理テーブルＴ１１から取得する（Ｓ８１）。
【０１４９】
本処理では、シュレッディング対象領域が、複数のディスクドライブ２１に跨って設定されている場合も含めて説明する。上述の第１方式の場合及び第２方式の場合も、複数のディスクドライブ２１に跨るシュレッディング対象領域に適用できる。
【０１５０】
コントローラ１００は、初期サイズのシュレッディングデータを作成して、キャッシュメモリ１４に記憶させる（Ｓ８２）。コントローラ１００は、初期サイズに対応する、管理ビットマップＴ２０を作成してローカルメモリ１７に記憶させ（Ｓ８３）、エラー管理テーブルＴ３０を作成してローカルメモリ１７に記憶させる（Ｓ８４）。
【０１５１】
コントローラ１００は、管理ビットマップＴ２０上のアドレスを指し示すためのポインタPbmpを初期化し（Ｓ８５）、初期サイズのシュレッディングデータをシュレッディング対象領域の先頭アドレスに書き込む（Ｓ８６）。コントローラ１００は、書込みエラーが発生したか否かを判定する（Ｓ８７）。
【０１５２】
書込みエラーが発生した場合（S87:YES）、コントローラ１００は、リトライ回数NRが上限値NRmaxに達したか否かを判定する（Ｓ８８）。リトライ回数NRが上限値NRmaxに達していない場合（S88:NO）、コントローラ１００は、より小さいブロックサイズを用いた、シュレッディング処理を実行する（Ｓ８９）。Ｓ８９の詳細については、図２４で後述する。
【０１５３】
書込みエラーが発生しない場合（S87:NO）及びリトライ回数NRが上限値NRmaxに達した場合（S88:YES）のいずれかの場合に、コントローラ１００は、管理ビットマップＴ２０のポインタを１つ先に進る（Ｓ９０）。次に、コントローラ１００は、現在使用中の管理ビットマップＴ２０で管理される全領域について、シュレッディングデータを書き込んだか否かを判定する（Ｓ９１）。
【０１５４】
最初のシュレッディング処理で書込みエラーが生じなかった場合（S87:NO）、Ｓ９１では、初期サイズのシュレッディングデータをシュレッディング対象領域の全部に書き込んだか否かが判定される。
【０１５５】
最初のシュレッディング処理で書込みエラーが発生した場合（S87:YES）、Ｓ９１では、Ｓ８９で設定されるサイズのシュレッディングデータをシュレッディング対象領域の全部に書き込んだか否かが判定される。
【０１５６】
未書込みの領域が残っている場合（S91:NO）、Ｓ８６に戻る。使用中の管理ビットマップＴ２０で管理される全領域について、シュレッディングデータが書き込まれた場合（S91:YES）、図２５に示す処理に移行する。
【０１５７】
図２４のフローチャートに基づいて、Ｓ８９の詳細を説明する。コントローラ１００は、エラーの発生した箇所をエラー管理テーブルＴ３０に登録する（Ｓ１００）。続いて、コントローラ１００は、そのエラーの発生前に使用されていたブロックサイズよりも１段階小さいブロックサイズの、シュレッディングデータを作成して、キャッシュメモリ１４に記憶させる（Ｓ１０１）。
【０１５８】
コントローラ１００は、Ｓ１０１で作成したシュレッディングデータに応じて、管理ビットマップＴ２０を作成し（Ｓ１０２）、ポインタを初期化する（Ｓ１０３）。コントローラ１００は、小サイズのシュレッディングデータをエラー箇所に書込み（Ｓ１０４）、リトライ回数NRを１つ増加させて（Ｓ１０５）、図２３のＳ８７に戻る。
【０１５９】
図２５のフローチャートを説明する。コントローラ１００は、リトライ回数NRを初期化し（Ｓ１１０）、デフォルトの管理ビットマップＴ２０を呼び出す（Ｓ１１１）。デフォルトの管理ビットマップＴ２０とは、最初のシュレッディング処理で使用される、初期サイズで区切られている管理ビットマップである。
【０１６０】
コントローラ１００は、シュレッディング対象領域の全部について、シュレッディングデータを書き込んだか否かを判定する（Ｓ１１２）。未書込みの領域がある場合（S112:NO）、コントローラ１００は、初期サイズのシュレッディングデータを作成してキャッシュメモリ１４に記憶させ、図２３のＳ８６に戻る。
【０１６１】
シュレッディング対象領域の全体にシュレッディングデータを書き込んだ場合（S112:YES）、コントローラ１００は、シュレッディングアルゴリズムで定められている全てのシュレッディングデータの書込みパターンの書込みが完了したか否かを判定する（Ｓ１１４）。
【０１６２】
未書込みのシュレッディングデータの書込みパターンが有る場合（S114:NO）、コントローラ１００は、図２３のＳ８２に戻る。全てのシュレッディングデータの書込みパターンをシュレッディング対象領域に書き込んだ場合（S114:YES）、コントローラ１００は、エラー管理テーブルＴ３０を参照し（Ｓ１１５）、処理結果を管理装置４０に出力する（Ｓ１１６）。
【０１６３】
なお、最初に実施される、初期サイズのシュレッディングデータの書込みが、エラーを生じることなく、シュレッディング対象領域の全体について正常に終了した場合（S87:NO、S90、S91:YES）、Ｓ１１２でYESと判定される。
【０１６４】
図２６，図２７に基づいて、第４方式のリトライ処理を含むシュレッディング処理を説明する。本処理もコントローラ１００により実行される。コントローラ１００は、リトライ回数NRを初期化し（Ｓ１２０）、シュレッディング対象の全ディスクドライブ２１に関する情報を構成管理テーブルＴ１１から取得する（Ｓ１２１）。
【０１６５】
コントローラ１００は、初期サイズのシュレッディングデータを作成して、キャッシュメモリ１４に記憶させる（Ｓ１２２）。コントローラ１００は、初期サイズに対応する、管理ビットマップＴ２０を作成してローカルメモリ１７に記憶させ（Ｓ１２３）、エラー管理テーブルＴ３０を作成してローカルメモリ１７に記憶させる（Ｓ１２４）。
【０１６６】
コントローラ１００は、管理ビットマップＴ２０上のアドレスを指し示すためのポインタPbmpを初期化し（Ｓ１２５）、初期サイズのシュレッディングデータをシュレッディング対象領域の先頭アドレスに書き込む（Ｓ１２６）。コントローラ１００は、書込みエラーが発生したか否かを判定する（Ｓ１２７）。
【０１６７】
書込みエラーが発生した場合（S127:YES）、コントローラ１００は、リトライ回数NRが上限値NRmaxに達したか否かを判定する（Ｓ１２８）。リトライ回数NRが上限値NRmaxに達していない場合（S128:NO）、コントローラ１００は、より小さいブロックサイズを用いた、シュレッディング処理を実行する（Ｓ１２９）。Ｓ１２９では、図２４で述べた処理と同様の処理が行われる。
【０１６８】
書込みエラーが発生しない場合（S127:NO）及びリトライ回数NRが上限値NRmaxに達した場合（S128:YES）のいずれかの場合に、コントローラ１００は、管理ビットマップＴ２０のポインタを１つ先に進る（Ｓ１３０）。次に、コントローラ１００は、現在使用中の管理ビットマップＴ２０で管理される全領域について、シュレッディングデータを書き込んだか否かを判定する（Ｓ１３１）。
【０１６９】
未書込みの領域が残っている場合（S131:NO）、Ｓ１２６に戻る。使用中の管理ビットマップＴ２０で管理される全領域について、シュレッディングデータが書き込まれた場合（S131:YES）、図２７に示す処理に移行する。
【０１７０】
図２７のフローチャートを説明する。コントローラ１００は、リトライ回数NRを初期化し（Ｓ１４０）、デフォルトの管理ビットマップＴ２０を呼び出す（Ｓ１４１）。コントローラ１００は、シュレッディング対象領域の全部について、シュレッディングデータを書き込んだか否かを判定する（Ｓ１４２）。未書込みの領域がある場合（S142:NO）、コントローラ１００は、図２６のＳ１２６に戻る。初期サイズのシュレッディングデータを作成せずにＳ１２６に戻る点で、第３方式の場合と異なる。
【０１７１】
シュレッディング対象領域の全体にシュレッディングデータを書き込んだ場合（S142:YES）、コントローラ１００は、シュレッディングアルゴリズムで定められている全てのシュレッディングデータの書込みパターンの書込みが完了したか否かを判定する（Ｓ１４３）。
【０１７２】
未書込みのシュレッディングデータの書込みパターンが有る場合（S143:NO）、コントローラ１００は、図２６のＳ１２２に戻る。全てのシュレッディングデータの書込みパターンをシュレッディング対象領域に書き込んだ場合（S143:YES）、コントローラ１００は、エラー管理テーブルＴ３０を参照し（Ｓ１４４）、処理結果を管理装置４０に出力する（Ｓ１４５）。
【０１７３】
本実施例は、上述のように構成されるので、以下の効果を奏する。
【０１７４】
本実施例では、最初のシュレッディング処理を、比較的大きなブロックサイズを用いて実行することができるため、シュレッディングデータの書込み回数を低減して、シュレッディング処理に要する時間を短くすることができる。
【０１７５】
本実施例では、シュレッディングデータの進捗状況や書込みエラーの発生状況を管理するため、書込みエラーが発生した場合でも、シュレッディング処理やリトライ処理を行うことができる。
【０１７６】
本実施例では、シュレッディングデータの書込み時にエラーが発生した場合、ブロックサイズを小さくして、エラー箇所のシュレッディング処理をリトライする。従って、シュレッディング範囲を増大させることができ、データシュレッディングの信頼性を高めることができる。
【０１７７】
本実施例では、予め用意されている第１方式〜第４方式の中からいずれか１つのリトライ方法を選択して、シュレッディング処理を開始することができる。従って、ユーザは、シュレッディング対象領域のサイズ等に応じて、リトライ方法を選択でき、使い勝手が向上する。
【実施例２】
【０１７８】
図２８，図２９に基づいて、本発明の第２実施例を説明する。本実施例は、第１実施例の変形例に該当する。本実施例では、基本筐体１０が、基本筐体１０の外部に設けられている別の基本筐体１０Ｅ内に記憶されているデータについて、シュレッディング処理するようになっている。
【０１７９】
図２８は、本実施例によるストレージシステムの全体構成を示す。このシステムには、複数の基本筐体１０，１０Ｅが含まれる。基本筐体１０と別の基本筐体１０Ｅとは、それぞれ別々の場所に設けられる。
【０１８０】
基本筐体１０のホストインターフェース１１の備えるイニシエータポートは、通信ネットワークCN１を介して、別の基本筐体１０Ｅのホストインターフェース１１が備えるターゲットポートに接続される。
【０１８１】
別の基本筐体１０Ｅは、増設筐体２０Ｅに接続されている。別の基本筐体１０Ｅの有するコントローラ１００Ｅは、論理ボリューム２３Ｅへのデータ入出力等を制御する。基本筐体１０は、別の基本筐体１０Ｅの有する論理ボリューム２３Ｅにアクセスするための情報を記憶するテーブルＴ５０（図２９参照）を所持している。基本筐体１０は、別の基本筐体１０Ｅの有する論理ボリューム２３Ｅを、それがあたかも基本筐体１０内の論理ボリューム２３であるかのようにして、ホスト３０に提供することができる。図２８では、ホスト３０の図示を省略する。
【０１８２】
図２９は、本実施例によるシュレッディング処理の概要を示す。一方の基本筐体１０を接続元の基本筐体（接続元の記憶制御装置）と呼び、他方の基本筐体１０Ｅを接続先の基本筐体（接続先の記憶制御装置）と呼ぶ。接続先の基本筐体１０Ｅが管理する論理ボリューム２３Ｅを、外部ボリューム２３Ｅと呼ぶ。
【０１８３】
管理装置４０は、シュレッディングパラメータを接続元の基本筐体１０内のコントローラ１００に設定する（Ｓ２００）。コントローラ１００は、シュレッディングパラメータを設定することにより、外部ボリューム２３Ｅに関するシュレッディング処理の実行を準備する（Ｓ２０１）。
【０１８４】
そして、コントローラ１００は、外部ボリューム２３Ｅについてのシュレッディング処理を実行する（Ｓ２０２）。コントローラ１００は、外部接続管理テーブルＴ５０を参照することにより、シュレッディングデータを外部ボリューム２３Ｅに書き込ませるためのライトコマンドを、接続先基本筐体１０Ｅのコントローラ１００Ｅに送信する。
【０１８５】
外部接続管理テーブルＴ５０には、コントローラ１００が外部ボリューム２３Ｅにアクセスするために必要な情報が記憶されている。その必要な情報としては、例えば、接続先のコントローラ１００Ｅを特定する装置番号、外部ボリュームのボリューム番号、通信使用するポート番号等を挙げることができる。
【０１８６】
接続先基本筐体１０Ｅのコントローラ１００Ｅは、コントローラ１００からのライトコマンドを受信すると、コントローラ１００から受信するシュレッディングデータを外部ボリューム２３Ｅに書込み、その結果をコントローラ１００に送信する（Ｓ２０３）。シュレッディング処理の詳細は、第１実施例で述べたので、説明は省略する。
【０１８７】
このように構成される本実施例では、コントローラ１００は、別のコントローラ１００Ｅを介して、外部ボリューム２３Ｅにシュレッディング処理を実施できる。
【０１８８】
従って、接続先のコントローラ１００Ｅが全くシュレッディング機能を備えていない場合や古いシュレッディングアルゴリズムのみに対応している場合でも、コントローラ１００の備えるシュレッディング機能やシュレッディングアルゴリズムあるいは複数のリトライ方式を用いて、外部ボリューム２３Ｅのデータを消去できる。
【０１８９】
なお、本発明は、上述した実施形態に限定されない。当業者であれば、本発明の範囲内で、種々の追加や変更等を行うことができる。例えば、基本筐体にもディスクドライブを搭載することができる。
【図面の簡単な説明】
【０１９０】
【図１】本発明の概念を簡略化して示す説明図である。
【図２】ストレージシステムの全体構成図である。
【図３】コントローラ等の詳細を示す説明図である。
【図４】複数のブロックサイズの関係を示す説明図である。
【図５】シュレッディングパラメータ等を示す説明図である。
【図６】ブロックサイズ管理テーブルを示す説明図である。
【図７】シュレッディング管理用のビットマップを示す説明図である。
【図８】エラー管理テーブルを示す説明図である。
【図９】シュレッディング処理のリトライ方法を示す説明図である。
【図１０】シュレッディング処理の設定を行うためのフローチャートである。
【図１１】シュレッディング処理の実行を準備するためのフローチャートである。
【図１２】シュレッディングパラメータの設定を開始する場合の画面例である。
【図１３】シュレッディングパラメータの設定を行う画面例である。
【図１４】図１３に続く画面例である。
【図１５】シュレッディング処理の実行を指示するための画面例である。
【図１６】シュレッディング処理の実行中に表示される画面例である。
【図１７】エラーが生じた場合の画面例である。
【図１８】シュレッディング処理が完了した場合の画面例である。
【図１９】第１方式のリトライ処理を含むシュレッディング処理のフローチャートである。
【図２０】図１９に続くフローチャートである。
【図２１】第２方式のリトライ処理を含むシュレッディング処理のフローチャートである。
【図２２】図２１に続くフローチャートである。
【図２３】第３方式のリトライ処理を含むシュレッディング処理のフローチャートである。
【図２４】図２３内のＳ８９の詳細を示すフローチャートである。
【図２５】図２３に続くフローチャートである。
【図２６】第４方式のリトライ処理を含むシュレッディング処理のフローチャートである。
【図２７】図２６に続くフローチャートである。
【図２８】第２実施例に係るストレージシステムの全体構成図である。
【図２９】シュレッディング処理の概要を示すフローチャートである。
【符号の説明】
【０１９１】
１：コントローラ、２：ディスクドライブ、４：エラー検出部、５：ブロックサイズ設定部、６：管理テーブル、７：ブロックサイズ管理テーブル、１０，１０Ｅ：基本筐体、１１：ホストインターフェース、１２：ドライブインターフェース、１３：ＬＡＮインターフェース、１４：キャッシュメモリ、１５：データ転送制御回路、１６：バスブリッジ、１７：ローカルメモリ、２０，２０Ｅ：増設筐体、２１：ディスクドライブ、２２：ＲＡＩＤグループ、２３，２３Ｅ：論理ボリューム、２４：スイッチ回路、３０：ホスト、４０：管理装置、４１：ストレージ管理部、４２：ウェブブラウザ、１００，１００Ｅ：コントローラ
【図１】
2010072979.tif 000003
【図２】
2010072979.tif 000004
【図３】
2010072979.tif 000005
【図４】
2010072979.tif 000006
【図５】
2010072979.tif 000007
【図６】
2010072979.tif 000008
【図７】
2010072979.tif 000009
【図８】
2010072979.tif 000010
【図９】
2010072979.tif 000011
【図１０】
2010072979.tif 000012
【図１１】
2010072979.tif 000013
【図１２】
2010072979.tif 000014
【図１３】
2010072979.tif 000015
【図１４】
2010072979.tif 000016
【図１５】
2010072979.tif 000017
【図１６】
2010072979.tif 000018
【図１７】
2010072979.tif 000019
【図１８】
2010072979.tif 000020
【図１９】
2010072979.tif 000021
【図２０】
2010072979.tif 000022
【図２１】
2010072979.tif 000023
【図２２】
2010072979.tif 000024
【図２３】
2010072979.tif 000025
【図２４】
2010072979.tif 000026
【図２５】
2010072979.tif 000027
【図２６】
2010072979.tif 000028
【図２７】
2010072979.tif 000029
【図２８】
2010072979.tif 000030
【図２９】
2010072979.tif 000031