(57)【要約】【課題】  ウェアレベリングを行うフラッシュストレージであっても、データの完全な消去を自動で可能にするフラッシュストレージを実現する。【解決手段】    フラッシュストレージは、少なくとも１台のＳＳＤと、外部機器に接続される少なくとも１台のフラッシュストレージ制御手段とを備え、前記ＳＳＤはフラッシュメモリと、前記フラッシュメモリの総容量を取得可能なＳＳＤ制御手段とを有し、前記フラッシュストレージ制御手段は、前記外部機器から前記フラッシュストレージの記憶するデータを消去する命令を含む信号を受けると、前記ＳＳＤ制御手段から前記フラッシュメモリの前記総容量の情報を取得し、前記ＳＳＤ制御手段に対して前記フラッシュメモリの前記総容量を超える疑似データの書き込みを指示する信号を送信する。【選択図】      図１
2020119361.tif 000002
【特許請求の範囲】
【請求項１】
フラッシュストレージは、
少なくとも１台のＳＳＤ（Solid State Drive）と、
外部機器に接続される少なくとも１台のフラッシュストレージ制御手段とを備え、
前記ＳＳＤはフラッシュメモリと、
前記フラッシュメモリの総容量を取得可能なＳＳＤ制御手段とを有し、
前記フラッシュストレージ制御手段は、前記外部機器から前記フラッシュストレージの記憶するデータを消去する命令を含む信号を受けると、前記ＳＳＤ制御手段から前記フラッシュメモリの前記総容量の情報を取得し、前記ＳＳＤ制御手段に対して前記フラッシュメモリの前記総容量を超える疑似データの書き込みを指示する信号を送信することを特徴とするフラッシュストレージ。
【請求項２】
請求項１に記載のフラッシュストレージを搭載したコンピュータ。
【請求項３】
外部機器からフラッシュストレージの記憶するデータを消去する命令を含む信号を受けると、前記フラッシュストレージが備えるＳＳＤが有するフラッシュメモリの総容量の情報を取得し、前記フラッシュメモリの前記総容量を超える疑似データの書き込みを実行する前記フラッシュストレージのデータ消去方法。
【請求項４】
外部機器からフラッシュストレージの記憶するデータを消去する命令を含む信号を受けると、前記フラッシュストレージが備えるＳＳＤが有するフラッシュメモリの総容量の情報を取得し、前記フラッシュメモリの前記総容量を超える疑似データを書き込むことをコンピュータに実行させる前記フラッシュストレージの制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、フラッシュストレージ、フラッシュストレージのデータ消去方法、およびフラッシュストレージの制御プログラムに関するものである。
【背景技術】
【０００２】
近年、データセキュリティの強化が求められており、データ保有機器の搬出や廃棄時にデータを完全に消去する必要性が高まっている。
【０００３】
ハードディスクドライブ（Hard Disk Drive; ＨＤＤ）のデータ消去技術としては、米国国防総省方式（DoD5220.22-M）の様に、ランダムなデータを複数回に渡って全面書き込みすることで、磁気データを消去する方法が知られている。
【０００４】
しかし、最近はＨＤＤに代わり、より高速なアクセスが可能なフラッシュメモリ（Flash Memory）で構成されるＳＳＤ（Solid State Drive）を用いたフラッシュストレージ（Flash Storage）が使われるようになってきた。
【０００５】
フラッシュメモリはＨＤＤと違って、データの書き込みや消去をする場合、ブロック単位でのアクセスしか行えず、かつ書き込み回数に制限があるという特徴がある。
【０００６】
そのため、ＳＳＤにおいては信頼性を向上するため、上位装置からアクセスできる範囲以上のフラッシュメモリを搭載し、データのブロック配置を動的に分散して書き込みを行うウェアレベリング（wear levelling）機能がある。
【０００７】
図７は、ウェアレベリングの例を示している。
【０００８】
コントローラからアクセス可能なメモリ領域（左の図）の内、データのブロックＢは、当初、ＳＳＤ内で管理する範囲（右の図）の内のブロック（旧・Ｂ）に書き込まれている。
【０００９】
そして、ウェアレベリングが動作すると、ブロックＢのデータは、右のブロック（新・Ｂ）に書き込まれて、左のブロックＢはブロック（新・Ｂ）に割り当てられる。
【００１０】
ここで、ブロック（旧・Ｂ）からブロック（新・Ｂ）への割り当ての変更が、性能低下を防止するためにバックグラウンドで行われる場合、ブロック（旧・Ｂ）のデータは直ちに消去されずに、暫くの間、残留する。
【００１１】
ブロックＢの割り当ては、ブロック（新・Ｂ）へ変更済みであり、通常の手段では、上位装置からブロック（旧・Ｂ）のデータを読み出すことはできない。
【００１２】
そこで、悪意を持ってＳＳＤを分解し、フラッシュメモリの内容を直接読み出すと、消去前のブロック（旧・Ｂ）のデータを読み出すことが可能である。
【００１３】
この様に、ウェアレベリングによって、ＳＳＤには一部のデータが残留する。
【００１４】
特許文献１には、ＳＳＤのデータ消去に関する技術が開示されている。
【先行技術文献】
【特許文献】
【００１５】
【特許文献１】特開２０１１−２０５２９５号公報
【発明の概要】
【発明が解決しようとする課題】
【００１６】
しかし、特許文献１の技術によると、ＳＳＤの上書き回数を作業者が指定する必要がある。
【００１７】
本発明の目的は、上述した課題を鑑み、データの完全消去を自動で行うフラッシュストレージを提供することにある。
【課題を解決するための手段】
【００１８】
上記の目的を達成するために、本発明のフラッシュストレージは、少なくとも１台のＳＳＤ（Solid State Drive）と、外部機器に接続される少なくとも１台のフラッシュストレージ制御手段とを備え、前記ＳＳＤはフラッシュメモリと、前記フラッシュメモリの総容量を取得可能なＳＳＤ制御手段とを有し、前記フラッシュストレージ制御手段は、前記外部機器から前記フラッシュストレージの記憶するデータを消去する命令を含む信号を受けると、前記ＳＳＤ制御手段から前記フラッシュメモリの前記総容量の情報を取得し、前記ＳＳＤ制御手段に対して前記フラッシュメモリの前記総容量を超える疑似データの書き込みを指示する信号を送信する。
【００１９】
上記の目的を達成するために、本発明のコンピュータは、少なくとも１台のＳＳＤと、外部機器に接続される少なくとも１台のフラッシュストレージ制御手段とを備えるフラッシュストレージを搭載し、前記ＳＳＤはフラッシュメモリと、前記フラッシュメモリの総容量を取得可能なＳＳＤ制御手段とを有し、前記フラッシュストレージ制御手段は、前記外部機器から前記フラッシュストレージの記憶するデータを消去する命令を含む信号を受けると、前記ＳＳＤ制御手段から前記フラッシュメモリの前記総容量の情報を取得し、前記ＳＳＤ制御手段に対して前記フラッシュメモリの前記総容量を超える疑似データの書き込みを指示する信号を送信する。
【００２０】
上記の目的を達成するために、本発明のフラッシュストレージのデータ消去方法は、外部機器からフラッシュストレージの記憶するデータを消去する命令を含む信号を受けると、前記フラッシュストレージが備えるＳＳＤが有するフラッシュメモリの総容量の情報を取得し、前記フラッシュメモリの前記総容量を超える疑似データの書き込みを実行する。
【００２１】
上記の目的を達成するために、本発明のフラッシュストレージの制御プログラムは、外部機器からフラッシュストレージの記憶するデータを消去する命令を含む信号を受けると、前記フラッシュストレージが備えるＳＳＤが有するフラッシュメモリの総容量の情報を取得し、前記フラッシュメモリの前記総容量を超える疑似データを書き込むことをコンピュータに実行させる。
【発明の効果】
【００２２】
本発明によれば、ウェアレベリングを行うフラッシュストレージであっても、データの完全な消去が自動で可能となる。
【図面の簡単な説明】
【００２３】
【図１】第１の実施形態の構成例を示す図である。
【図２】第２の実施形態の構成例を示す図である。
【図３】第２の実施形態の動作を説明する図である。
【図４】第２の実施形態の動作を説明する図である。
【図５】第２の実施形態の動作を説明する図である。
【図６】第２の実施形態の動作を説明する図である。
【図７】第２の実施形態の動作を説明する図である。
【図８】第２の実施形態の動作を説明する図である。
【図９】第２の実施形態の動作を説明する図である。
【図１０】第３の実施形態の構成例を示す図である。
【発明を実施するための形態】
【００２４】
［第１の実施形態］
次に、本発明の実施の形態について図１を参照して詳細に説明する。
【００２５】
図１は第１の実施形態の構成例である。
【００２６】
本発明のフラッシュストレージ１０は、少なくとも１台のＳＳＤ２０と、外部機器に接続される少なくとも１台のフラッシュストレージ制御手段３０とを備える。
【００２７】
前記ＳＳＤ２０はフラッシュメモリ２１と、前記フラッシュメモリ２１の総容量を取得可能なＳＳＤ制御手段２２とを有する。
【００２８】
そして、前記フラッシュストレージ制御手段３０は、前記外部機器から前記フラッシュストレージ１０の記憶するデータを消去する命令を含む信号を受けると、前記ＳＳＤ制御手段２２から前記フラッシュメモリ２１の前記総容量の情報を取得する。更に、前記フラッシュストレージ制御手段３０は、前記ＳＳＤ制御手段２２に対して前記フラッシュメモリ２１の前記総容量を超える疑似データの書き込みを指示する信号を送信する。
【００２９】
この様にすることで、本実施形態のフラッシュストレージ１０は、ウェアレベリングを行うフラッシュストレージであっても、フラッシュメモリ２１の全ブロックに対して疑似データを書き込む。その結果、フラッシュストレージ１０は、データの消し残しの無い完全な消去が可能となる。また、フラッシュストレージ１０がデータを消去する命令を含む信号を受けると自動で消去が行われるので、上書き回数を作業者が指定するなどの必要もない。
［第２の実施形態］
次に、第２の実施形態について図２乃至図９を参照して説明する。
［構成の説明］
図２に第２の実施形態の構成例を示す。
【００３０】
フラッシュストレージ１００は、コントローラ１３０と、ＳＳＤ１２０とで構成される。
【００３１】
図２に示す構成例では、２つのコントローラ１３０と、複数のＳＳＤ１２０を備えているが、１台のコントローラ１３０と、１台のＳＳＤ１２０との構成であってもよい。
【００３２】
尚、複数のコントローラ１３０と、複数のＳＳＤ１２０による構成によって、ＲＡＩＤ（Redundant Arrays of Inexpensive Disks）構成をとることも可能である。
【００３３】
コントローラ１３０は、フラッシュストレージ１００に対する外部機器であるサーバ２００と、ＳＳＤ１２０との間でデータをやりとりするためのものであり、第１の実施形態で示した、フラッシュストレージ制御手段３０に相当する。
【００３４】
コントローラ１３０は、ホストＩ／Ｆ（Ｉ／Ｆ；interface）制御チップ１３１、ディスクＩ／Ｆ制御チップ１３２、ＣＰＵ１３３、およびメモリ１３４を備える。
【００３５】
ホストＩ／Ｆ制御チップ１３１は、サーバ２００とデータを送受信するインターフェースである。また、ディスクＩ／Ｆ制御チップ１３２は、ＳＳＤ１２０とデータを送受信するインターフェースである。
【００３６】
ＣＰＵ１３３は、ＣＰＵ（Central Processing Unit；中央処理装置）であり、フラッシュストレージ１００のハードウェアを制御し、ソフトウェア処理を行う。
【００３７】
メモリ（memory）１３４は、記憶素子であり、ＣＰＵ１３３のためのＦＷ（firm ware；ファームウェア）１３５を格納する。
【００３８】
次に、図３を参照してＳＳＤ１２０の構成例を説明する。
【００３９】
ＳＳＤ１２０は、ディスクＩ／Ｆ制御チップ１２１、ＣＰＵ１２２、メモリ１２３、フラッシュコントローラ１２６、および複数のフラッシュメモリ１２７を備える。
【００４０】
ディスクＩ／Ｆ制御チップ１２１は、コントローラ１３０とデータを送受信するためのインターフェースである。
【００４１】
ＣＰＵ１２２は、ＳＳＤ１２０のハードウェアを制御し、ソフトウェア処理を行うＣＰＵである。
【００４２】
メモリ１２３は、記憶素子であり、ＣＰＵ１２２のためのＦＷ（ファームウェア）１２４を格納する。そして、メモリ１２３は、フラッシュメモリ１２７の総容量の値を、容量１２５として記憶可能な領域を備えている。
【００４３】
フラッシュメモリ１２７は、サーバ２００が用いるデータを格納する読み書き可能なフラッシュメモリである。
［動作の説明］
次に、本実施形態のフラッシュストレージ１００の動作について、図４乃至図９を参照して説明する。
【００４４】
図４は、フラッシュストレージ１００の動作を示す図である。
【００４５】
尚、図２の構成ではディスクＩ／Ｆ制御チップ１３２にはＳＳＤ１２０が接続されているが、図４の動作の説明では、ディスクＩ／Ｆ制御チップ１３２にＳＳＤ以外のハードディスクドライブなどの記憶媒体が接続される場合も想定している。
【００４６】
コントローラ１３０のホストＩ／Ｆ制御チップ１３１が、サーバ２００からデータ消去を指示する信号を受けると、フラッシュストレージ１００は、ＳＳＤ１２０のデータの消去を開始する。
【００４７】
はじめに、ＣＰＵ１３３はディスクＩ／Ｆ制御チップ１３２に接続されているディスクの種別を確認する（Ｓ１０１）。
【００４８】
ＣＰＵ１３３はディスクＩ／Ｆ制御チップ１３２に接続されているディスクが、ＳＳＤであるか否かを判断する（Ｓ１０２）。
【００４９】
ステップＳ１０２で、ＳＳＤであると判断されると（Ｓ１０２でＹ）、ステップＳ１０４にすすむ。
【００５０】
ステップＳ１０２で、ＳＳＤではないと判断されると（Ｓ１０２でＮ）、ステップＳ１０３にすすむ。
【００５１】
ステップＳ１０３で、ＣＰＵ１３３はディスクに対して、一般的に行われている全面書込みによるディスクデータの消去を行う信号を送り、ディスクを消去する（Ｓ１０３）。
【００５２】
ステップＳ１０４で、ＣＰＵ１３３は、ＳＳＤ１２０に対してＳＳＤ１２０の総容量を確認するコマンドを含む信号を送り、ＳＳＤ１２０はＳＳＤ１２０の総容量の値を含む信号をＣＰＵ１３３に返信する（Ｓ１０４）。
【００５３】
ここで、コントローラ１３０とＳＳＤ１２０のディスクＩ／Ｆとしては、ＳＡＳ（Serial Attached SCSI）が一般的に知られている。そして、ステップＳ１０４の説明における、ＳＳＤ１２０に対してＳＳＤ１２０の総容量を確認する信号とは、図６の左のコマンド例の様にＳＣＳＩコマンドのVendor SpecificのOperation CodeであるＣ０ｈを定義したものであっても良い。
【００５４】
また、ＳＳＤ１２０がコントローラに返信する信号は、図６の右のような応答データの例であっても良い。
【００５５】
ステップＳ１０５では、ＣＰＵ１３３はＳＳＤ１２０に対して、ステップＳ１０４で得た総容量の値以上の消去用疑似データの書込みを指示する。ＳＳＤ１２０は、ＳＳＤ１２０の総容量以上の消去用疑似データの書込みを実行する（Ｓ１０５）。
【００５６】
ここで、ステップＳ１０５における、消去用疑似データの書込みの様子を説明する。
【００５７】
まず、背景技術の説明で説明した図７の様に、バックグラウンドでウェアレベリングが動作して、ブロック（旧・Ｂ）のデータが消去されずに残留しているものとする。
【００５８】
次に、本実施形態のステップＳ１０５で、ＳＳＤ１２０の総容量以上の消去用疑似データの書込みを実行し、図８に示す様にデータが残留していたブロック（旧・Ｂ）にブロックＡが割り当てられるとする。ここで、ブロック（新・Ａ）は、ブロックＡの疑似データが書き込まれて、データは消去されたことになる。
【００５９】
尚、ブロック（旧・Ａ）は、バックグラウンドで消去することを意図して、暫くの間、データが残留していても、ＳＳＤ１２０の総容量以上の書込みを実行するので、ステップＳ１０５の実行中に、ブロック（旧・Ａ）に疑似データが書き込まれる。
【００６０】
この様にして、図９の様に、ＳＳＤ１２０の全てのブロックに対して、消去用疑似データが書き込まれて、ＳＳＤ１２０が備える全部のフラッシュメモリ１２７の消去が行われる。
【００６１】
次に、図５を参照して、ＳＳＤ１２０の動作を説明する。
【００６２】
ＳＳＤ１２０を起動すると、ＳＳＤ１２０の起動処理を行う（Ｓ２０１）。
【００６３】
次にフラッシュコントローラ１２６は、フラッシュメモリ１２７の総容量を取得して、メモリ１２３の容量１２５に格納する（Ｓ２０２）。
【００６４】
ステップＳ２０２の後は、コントローラ１３０からのコマンド（command）待ち状態となる（Ｓ２０３）。
【００６５】
ディスクＩ／Ｆ制御チップ１２１がコマンドを受信するとＣＰＵ１２２は、ＳＳＤの総容量を確認するコマンドかどうかを判断する（Ｓ２０４）。
【００６６】
ステップＳ２０４で、ＳＳＤの総容量を確認するコマンドであると判断されると（Ｓ２０４でＹ）、ステップＳ２０５にすすむ。
【００６７】
ステップＳ２０４で、ＳＳＤ消去用コマンドではないと判断されると（Ｓ２０４でＮ）、ステップＳ２０３に戻る。
【００６８】
ステップＳ２０５で、ＣＰＵ１２２は、メモリ１２３の容量１２５に格納されているフラッシュメモリ１２７の総容量の値を含む信号をコントローラ１３０に送信する（Ｓ２０５）。
【００６９】
ステップＳ２０５でＣＰＵ１２２が送信する信号は、前述した図６の右側に示す応答データの様であっても良い。
【００７０】
以上が、ＳＳＤ１２０の動作である。
【００７１】
図４のステップＳ１０５では、ＳＳＤ１２０が保有するフラッシュメモリの総容量以上の書込みを行うため、コントローラ１３０からアクセス可能な領域への書込みだけでなく、実際に保有する全てのフラッシュメモリに書込みを行う。このため、ＳＳＤ１２０の全てのフラッシュメモリが消去可能となる。
【００７２】
以上説明した様に、本実施形態のフラッシュストレージ１００は、ウェアレベリングを行うフラッシュストレージであっても、フラッシュメモリ１２７の全ブロックに対して疑似データを書き込む。その結果、フラッシュストレージ１００は、データの消し残しの無い完全な消去が可能となる。また、フラッシュストレージ１００がデータを消去する命令を含む信号を受けると自動で消去が行われるので、上書き回数を作業者が指定するなどの必要もない。
［第３の実施形態］
次に、第３の実施形態について図１０を参照して説明する。
【００７３】
図１０は、パーソナルコンピュータ３００の構成例である。
【００７４】
ここでは、パーソナルコンピュータとしたが、その他のコンピュータであっても良い。
【００７５】
パーソナルコンピュータ３００は、ＣＰＵ３１０、ディスクＩ／Ｆ制御チップ３２０、メモリ３３０、およびＳＳＤ１２０を備える。
【００７６】
ＣＰＵ３１０は、パーソナルコンピュータ３００のハードウェアを制御し、ソフトウェアを実行する。
【００７７】
メモリ３３０は、パーソナルコンピュータ３００のメモリであり、ＳＳＤ１２０の消去プログラム３３１を格納している。消去プログラム３３１は、第２の実施形態の動作の説明で述べた、ＳＳＤを消去する動作と同様のことをＣＰＵ３１０に対して実行させるプログラムである。
【００７８】
ＳＳＤ１２０は、第２の実施形態のＳＳＤ１２０と同じである。
【００７９】
この様な構成とすることで、ＳＳＤのデータの消し残しのない完全な消去が可能なパーソナルコンピュータ３００を実現することが可能となる。また、データの消去の際に、ＳＳＤへの上書き回数を作業者が指定するなどの必要もない。
【００８０】
以上、本発明の好適な実施形態を説明したが、本発明は、実施形態の機能を実現する情報処理プログラムが、システム或いは装置に直接或いは遠隔から供給される場合にも適用可能である。
【符号の説明】
【００８１】
１０  フラッシュストレージ
２１  フラッシュメモリ
２２  ＳＳＤ制御手段
３０  フラッシュストレージ制御手段
１００  フラッシュストレージ
１２１  ディスクＩ／Ｆ制御チップ
１２３  メモリ
１２５  容量
１２６  フラッシュコントローラ
１２７  フラッシュメモリ
１３０  コントローラ
１３１  ホストＩ／Ｆ制御チップ
１３２  ディスクＩ／Ｆ制御チップ
１３４  メモリ（ｍｅｍｏｒｙ）
１３５  メモリ
２００  サーバ
３００  パーソナルコンピュータ
３１０  ＣＰＵ
３２０  ディスクＩ／Ｆ制御チップ
３３０  メモリ
３３１  消去プログラム
【図１】
2020119361.tif 000003
【図２】
2020119361.tif 000004
【図３】
2020119361.tif 000005
【図４】
2020119361.tif 000006
【図５】
2020119361.tif 000007
【図６】
2020119361.tif 000008
【図７】
2020119361.tif 000009
【図８】
2020119361.tif 000010
【図９】
2020119361.tif 000011
【図１０】
2020119361.tif 000012