(57)【特許請求の範囲】
【請求項１】
第１データを、ストレージ装置に設定された論理ボリュームの第１論理アドレス領域に書き込むことを要求する第１要求信号を受信し、 
前記第１要求信号に応じて、前記第１データを、前記ストレージ装置に設定された物理ボリュームに格納し、 
前記第１要求信号の受信の後に、前記物理ボリュームに格納された前記第１データを消去することなく、前記論理ボリュームの前記第１論理アドレス領域の前記第１データを消去し、 
前記物理ボリュームに対する第１消去処理を実行する際、前記第１消去処理よりも前に前記第１データと同一の第２データが前記物理ボリュームから削除されたことを示す履歴情報が保持されている場合には、前記第１データを前記物理ボリュームに保持し、前記履歴情報が保持されていない場合には、前記第１データを前記物理ボリュームから消去する 
ことを特徴とする制御装置。 
【請求項２】
前記第１データを前記物理ボリュームから消去することなく前記論理ボリュームの前記第１論理アドレス領域から消去する処理は、前記第１要求信号の受信の後に、前記論理ボリュームの前記第１論理アドレス領域の前記第１データを、前記第１データとは異なる第３データに書き換えることを要求する第２要求信号に応じて、前記物理ボリュームに格納された前記第１データを消去することなく、前記第３データを前記物理ボリュームの前記第１論理アドレス領域に格納する処理である 
ことを特徴とする請求項１に記載の制御装置。 
【請求項３】
前記履歴情報に基づき前記第１データを前記物理ボリュームに保持させた後、前記第１データと同一の第４データを、前記論理ボリュームの第２論理アドレス領域に書き込むことを要求する第３要求信号を受信し、 
前記第３要求信号に応じて、前記第１データが前記物理ボリュームに保持されている場合には、前記第４データを前記物理ボリュームに格納する処理を行わず、前記物理ボリュームに保持された前記第１データと前記第２論理アドレス領域との関係を示すアドレス対応情報を生成する 
ことを特徴とする請求項１又は２に記載の制御装置。 
【請求項４】
前記第１消去処理よりも前に、第２消去処理を実行し、 
前記第２消去処理において、前記第２データが前記物理ボリュームに格納されかつ前記論理ボリュームに格納されていない場合に、前記第２データを前記物理ボリュームから消去し、 
前記第２データが前記物理ボリュームから消去されたことに基づき、前記履歴情報を生成する 
ことを特徴とする請求項１乃至３何れか一項に記載の制御装置。 
【請求項５】
前記履歴情報を履歴情報保持部に保持させ、 
前記履歴情報保持部の容量に基づいて前記履歴情報を保持するか削除するかを判定する 
ことを特徴とする請求項４に記載の制御装置。 
【請求項６】
前記第２消去処理において、前記履歴情報を前記履歴情報保持部の先頭位置に保持させ、 
他のデータについての他の履歴情報を前記履歴情報保持部に保持させる際には、前記履歴情報保持部における前記履歴情報の保持位置を後方に移動させ、 
前記履歴情報が前記履歴情報保持部の最後尾にある場合に、前記容量に基づいて前記履歴情報を前記履歴情報保持部から削除する 
ことを特徴とする請求項５に記載の制御装置。 
【請求項７】
前記第１消去処理において前記履歴情報が前記履歴情報保持部に保持されている場合は、前記履歴情報保持部における前記履歴情報の保持位置を前記先頭位置に移動させる 
ことを特徴とする請求項６に記載の制御装置。 
【請求項８】
前記履歴情報は、前記物理ボリュームから削除された前記第２データの第２ハッシュ値であり、 
前記第１消去処理において、前記第１データの第１ハッシュ値と同一の前記第２ハッシュ値が前記履歴情報保持部に保持されている場合には、前記第１データの前記物理ボリュームからの消去を行わない 
ことを特徴とする請求項５乃至７何れか一項に記載の制御装置。 
【請求項９】
ストレージ装置と、 
前記ストレージ装置を制御する制御装置と 
を含むストレージシステムであって、前記制御装置は、 
第１データを、前記ストレージ装置に設定された論理ボリュームの第１論理アドレス領域に書き込むことを要求する第１要求信号を受信し、 
前記第１要求信号に応じて、前記第１データを、前記ストレージ装置に設定された物理ボリュームに格納し、 
前記第１要求信号の受信の後に、前記物理ボリュームに格納された前記第１データを消去することなく、前記論理ボリュームの前記第１論理アドレス領域の前記第１データを消去し、 
前記物理ボリュームに対する第１消去処理を実行する際、前記第１消去処理よりも前に前記第１データと同一の第２データが前記物理ボリュームから削除されたことを示す履歴情報が保持されている場合には、前記第１データを前記物理ボリュームに保持し、前記履歴情報が保持されていない場合には、前記第１データを前記物理ボリュームから消去する 
ことを特徴とするストレージシステム。 
【請求項１０】
ストレージ装置を制御する制御方法であって、 
第１データを、前記ストレージ装置に設定された論理ボリュームの第１論理アドレス領域に書き込むことを要求する第１要求信号を受信し、 
前記第１要求信号に応じて、前記第１データを、前記ストレージ装置に設定された物理ボリュームに格納し、 
前記第１要求信号の受信の後に、前記物理ボリュームに格納された前記第１データを消去することなく、前記論理ボリュームの前記第１論理アドレス領域の前記第１データを消去し、 
前記物理ボリュームに対する第１消去処理を実行する際、前記第１消去処理よりも前に前記第１データと同一の第２データが前記物理ボリュームから削除されたことを示す履歴情報が保持されている場合には、前記第１データを前記物理ボリュームに保持し、前記履歴情報が保持されていない場合には、前記第１データを前記物理ボリュームから消去する 
ことを特徴とする制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、ストレージシステム、制御装置及び制御方法に関する。
【背景技術】
【０００２】
ストレージシステムにおいて、ストレージ装置に格納されるデータ量を圧縮するために、重複排除技術が開発されている。重複排除においては、ストレージ装置に設定される論理ボリューム上に新たにデータが書き込まれる際、ストレージ装置に設定される物理ボリューム上のあるアドレス領域に当該データと同一のデータが既に格納されているか否かが判定される。そして同一のデータが既に格納されている場合には、物理ボリューム上の他のアドレス領域に当該データを新たに書き込むことなく、当該データを既に格納されているデータと対応付ける処理がなされる。これにより、物理ボリュームに格納されたデータを、論理ボリューム上の複数のデータに対応付けることができ、ストレージ装置に格納されるデータ量を圧縮することができる。
【０００３】
またストレージ装置の空き容量が減少した場合に、ストレージ装置に格納されているデータであって不要となったデータを消去して空き容量を増加させる、ガベージコレクションと呼ばれる処理が実行される。ストレージシステムに含まれる制御装置は、例えば定期的にストレージ装置の空き容量をモニタし、空き容量が所定値以下となった場合には、ストレージ装置に格納されているデータのうち消去可能なデータを選択する。そして選択されたデータはガベージコレクションによってストレージ装置から消去され、ストレージ装置の空き容量が確保される。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特表２０１３−５２２７１８号公報
【特許文献２】特表２０１６−５２６７１７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ストレージシステムに対してあるデータの書き込み要求がなされた場合、書き込み要求の対象となるデータと同一のデータが既にストレージ装置に格納されている場合は、重複排除技術を用いることにより、データの書き込み処理を省略することができる。一方、当該データの書き込み要求がなされる前に、ストレージ装置に格納されていた同一データがガベージコレクションによって消去されている場合には、当該データの再度の書き込み処理を実行する必要がある。
【０００６】
本発明は、ガベージコレクションによるデータの消去処理を改善することにより、同一データの再度の書き込み処理の回数を抑制することを目的とする。
【課題を解決するための手段】
【０００７】
第１データを、ストレージ装置に設定された論理ボリュームの第１論理アドレス領域に書き込むことを要求する第１要求信号を受信し、前記第１要求信号に応じて、前記第１データを、前記ストレージ装置に設定された物理ボリュームに格納し、前記第１要求信号の受信の後に、前記物理ボリュームに格納された前記第１データを消去することなく、前記論理ボリュームの前記第１論理アドレス領域の前記第１データを消去し、前記物理ボリュームに対する第１消去処理を実行する際、前記第１消去処理よりも前に前記第１データと同一の第２データが前記物理ボリュームから削除されたことを示す履歴情報が保持されている場合には、前記第１データを前記物理ボリュームに保持し、前記履歴情報が保持されていない場合には、前記第１データを前記物理ボリュームから消去することを特徴とする制御装置が開示される。
【発明の効果】
【０００８】
同一データの再度の書き込み処理の回数を抑制することができる。
【図面の簡単な説明】
【０００９】
【図１】ストレージシステムの構成を示す図である。
【図２】制御装置が実行する重複排除処理について説明するための図である。
【図３】参照数に基づくガベージコレクションについて説明するための図である。
【図４】ガベージコレクションによるデータの消去と、消去されたデータと同一のデータについての再書き込み処理が繰り返される場合の課題を説明するための図である。
【図５】管理テーブルとハッシュリンクを用いたガベージコレクションの制御方法を説明するための図である。
【図６】履歴情報保持部の一例であるハッシュリンクの制御方法を説明するための図である。
【図７】制御装置のハードウェア構成を示す図である。
【図８】制御装置のプロセッサの機能ブロックを示す図である。
【図９】制御装置のプロセッサによって実行される処理のフローチャートであり、主に情報処理装置から書き込みコマンドを受信した際に実行される処理について説明するための図である。
【図１０】制御装置のプロセッサによって実行される処理のフローチャートであり、主にガベージコレクションに関する処理について説明するための図である。
【発明を実施するための形態】
【００１０】
本実施形態においては、重複排除技術が適用されるストレージシステムにおいて、ストレージ装置への同一データの書き込み処理の回数を抑制する方法が開示される。ストレージ装置を制御する制御装置は、ストレージ装置に設定された論理ボリュームの第１論理アドレス領域に第１データを書き込むことを要求する書き込み要求信号（以下、書き込みコマンド）を受信する。制御装置は、書き込みコマンドに応じて、ストレージ装置に設定された物理ボリュームに第１データを格納する。その後、物理ボリュームに格納された第１データを消去することなく、論理ボリュームの第１論理アドレス領域の第１データを消去する。この処理は、例えば論理ボリュームの第１論理アドレス領域に格納された第１データを、第１データとは異なるデータで上書きすることを要求する書き込みコマンドを制御装置が受信した場合に生じる。この場合、制御装置は、論理ボリューム上においては、第１論理アドレス領域の第１データを第２データに更新する処理を行い、一方物理ボリューム上においては、第１データを消去することなく、物理ボリューム上の他のアドレス領域に当該第２データを書き込む。このように、物理ボリューム上においてデータの上書きがなされず、元のデータが残されたまま新しいデータを追加して格納される処理は、例えば追記型の重複排除技術が適用されたストレージシステムにおいて実行される。そしてこの処理の結果、第１データが、物理ボリューム上には存在するが論理ボリューム上には存在しない状態が生じる。この状態において物理ボリュームに対するガベージコレクションが実行される場合、当該ガベージコレクションよりも前に第１データと同一のデータが物理ボリュームから削除されたことを示す履歴情報の有無が参照される。第１データと同一のデータが物理ボリュームから削除されたことを示す履歴情報がストレージシステムに保持されている場合には、第１データを物理ボリュームから消去せずに保持する。履歴情報がストレージシステムに保持されている場合は、第１データについての消去処理と書き込み処理が繰り返して生じ得ると考えられる。そのため、第１データを物理ボリュームから消去せずに保持することによって、その後に第１データと同一のデータの書き込みを要求する書き込みコマンドが受信された場合に、重複排除技術によって第１データの再度の書き込み処理を省略することが可能となる。一方、履歴情報が保持されていない場合には、第１データを物理ボリュームから消去することによって、ストレージ装置の空き容量を確保することができる。
【００１１】
図１はストレージシステムの構成を示す図である。図１においてストレージシステム２００は、情報処理装置１００に接続される。ストレージシステム２００は、制御装置３００及びストレージ装置４００を含む。
【００１２】
情報処理装置１００は例えばホストサーバであり、ストレージシステム２００にデータの書き込みコマンドを送信することにより、データをストレージ装置４００に格納させる。情報処理装置１００が認識し得るストレージ装置４００のデータ格納領域を論理ボリュームと呼び、ストレージ装置４００のうち情報処理装置１００に対して割り当てられた物理的なデータ格納領域を物理ボリュームと呼ぶ。情報処理装置１００は、書き込みコマンドを送信する際、書き込みの対象となるデータと、当該データの論理ボリュームにおけるアドレス（論理アドレス）を示す情報とをストレージシステム２００へ送信する。
【００１３】
制御装置３００は例えばストレージ装置４００を制御するためのＣｏｎｔｒｏｌ  Ｍｏｄｕｌｅ（ＣＭ）である。制御装置３００は、情報処理装置１００から書き込みコマンドを受信し、受信された書き込みコマンドに基づいてデータをストレージ装置４００（物理ボリューム）に格納する。また制御装置３００は、物理ボリュームにおいてデータが格納された領域を示す物理アドレスと論理アドレスとの対応関係を示すアドレス対応情報を生成して保持する。尚、図１においては制御装置３００及びストレージ装置４００がそれぞれ一つずつ図示されているが、ストレージシステム２００が、複数の制御装置３００及び複数のストレージ装置４００を含むＲｅｄｕｎｄａｎｔ  Ａｒｒａｙ  ｏｆ  Ｄｉｓｋｓ（ＲＡＩＤ）を構成してもよい。
【００１４】
図２は、制御装置３００が実行する重複排除処理について説明するための図である。上述のように、ストレージシステム２００においては、情報処理装置１００によって認識される論理ボリュームと、ストレージ装置４００内の実際にデータが書き込まれる物理的なデータ格納領域である物理ボリュームは分離されている。例えば図２の（Ａ）に示されるように、第１の状態において情報処理装置１００が、第１論理アドレスと、書き込みの対象となるデータＡを特定する書き込みコマンドをストレージシステム２００に送信したとする。この場合、制御装置３００は書き込みコマンドに基づき、データＡをストレージ装置４００の物理ボリュームの例えば第１物理アドレス領域に格納する。そして制御装置３００は、第１論理アドレスと第１物理アドレスの対応関係を示すアドレス対応情報を管理テーブルに登録する。尚、データＡが第１物理アドレス領域に格納された後に、例えばガベージコレクションによって第１物理アドレス領域とは異なる他の物理アドレスにデータＡの格納位置が変更される場合がある。そのため、図中においては物理ボリュームにおいてデータＡが格納される物理アドレスは示さないものとする。データＡの物理アドレスが変更された場合は、管理テーブルに登録されたアドレス対応情報は更新される。
【００１５】
更に制御装置３００は、データＡを特定するための識別子として、例えばデータＡのハッシュ値（ここでは「ａ」とする）を算出する。ハッシュ値「ａ」はデータＡと対応付けて管理テーブルに登録される。更に、物理ボリュームに格納されたデータＡが、論理ボリューム上において第１論理アドレスのデータＡ（一つ）に対応していることを示す参照数「１」が、管理テーブルに登録される。参照数の技術的意義については、追って詳細を説明することとする。
【００１６】
図２の（Ａ）において第１の状態の後に、第２の状態においてストレージシステム２００が更に、第２論理アドレスと、書き込みの対象となるデータＡを特定する書き込みコマンドを受信したとする。この場合、制御装置３００は、書き込みコマンドの対象データであるデータＡと同一のデータが、既に物理ボリュームに格納されているかを判定する。具体的には、制御装置３００は、書き込みコマンドの対象データであるデータＡについてハッシュ値を算出する。データＡについてのハッシュ値は「ａ」である。次に制御装置３００は、算出されたハッシュ値「ａ」と同一のハッシュ値が管理テーブルに登録されているかを判定する。図２の（Ａ）においては、第１の状態においてハッシュ値「ａ」が管理テーブルに登録されている。よって制御装置３００は、データＡと同一のデータが、既に物理ボリュームに格納されていることを認識することができる。この場合、制御装置３００は、重複排除の機能に基づき、他の物理アドレスに新たにデータＡを書き込む処理は行わない。そして、第１論理アドレス及び第２論理アドレスの両方が、物理ボリュームに格納されたデータＡに対応することを示すよう、管理テーブルに登録されたアドレス対応情報を更新する。また、管理テーブルに登録されている参照数を「１」から「２」に変更する。この参照数の「２」は、物理ボリュームに格納されているデータＡが、第１論理アドレスと第２論理アドレスの２つの論理アドレスのデータに対応していることを意味する。
【００１７】
図２の（Ｂ）を用いて、追記型の重複排除処理について説明する。図２の（Ｂ）における第１の状態は、図２の（Ａ）における第１の状態と同じ状態を示す。すなわち、情報処理装置１００が第１論理アドレスとデータＡを特定する書き込みコマンドをストレージシステム２００に送信し、制御装置３００は、データＡをストレージ装置４００の物理ボリュームに格納する。そして、論理ボリュームと物理ボリュームとのアドレス対応関係を示すアドレス対応情報、データＡのハッシュ値「ａ」及び参照数「１」が、管理テーブルに登録される。次に図２の（Ｂ）において第１の状態の後、第２の状態においてストレージシステム２００が、更に第１論理アドレスと書き込みの対象データであるデータＢを特定する書き込みコマンドを受信したとする。つまり当該書き込みコマンドは、第１の状態において書き込まれたデータＡをデータＢによって上書きすることを要求するコマンドである。この場合制御装置３００は、まずデータＢのハッシュ値（ここでは「ｂ」とする）を算出し、ハッシュ値「ｂ」が管理テーブルに登録されているかを判定する。図２の（Ｂ）においてはハッシュ値「ｂ」は管理テーブルに登録されていないため、制御装置３００はデータＢが物理ボリュームに格納されていないことを認識できる。よって制御装置３００はデータＢを物理ボリュームに新規に格納する。ここで、論理ボリューム上ではデータＡはデータＢによって上書きされて消去されることになるが、物理ボリューム上ではデータＡが格納された物理アドレス領域とは異なる他の物理アドレス領域にデータＢが新規に書き込まれ、データＡは物理ボリューム上に保持される。そして、物理ボリューム上に保持されたデータＡが、論理ボリューム上の何れのデータにも対応していないことを示すために、参照数が「０」に更新される。尚、第２の状態において、データＢの参照数は「１」となる。
【００１８】
図３は、参照数に基づくガベージコレクションについて説明するための図である。ガベージコレクションは、物理ボリューム上の空き容量を増加させるために実行される処理である。つまり物理ボリュームに格納されてはいるが、実際には参照されなくなったデータがガベージコレクションによって消去される。より詳細には、物理ボリュームに格納されているデータのうち、参照数が「０」となっているデータ、すなわち、論理ボリューム上の何れのデータにも対応していないデータが、ガベージコレクションの対象として制御装置３００により選択される。そして例えば物理ボリュームの空き容量が所定値以下となった場合に、或いは定期的に、ガベージコレクションの対象として選択されたデータが物理ボリューム上から消去される。
【００１９】
図３に示される第１の状態及び第２の状態は、図２の（Ｂ）に示された第１の状態及び第２の状態と同じ状態を示し、データＡの参照数は「０」、データＢの参照数は「１」の状態である。図３において第２の状態の後、第３の状態にてガベージコレクションが実行される。第３の状態において制御装置３００は、参照数が「０」となっているデータがあるかを判定する。ここでは第２の状態においてデータＡの参照数が「０」として登録されている。よって制御装置３００は、物理ボリュームに保持されているデータＡをガベージコレクションにおいて消去する。これによって物理ボリュームの空き容量が確保される。尚、データＡが物理ボリュームから消去されることに伴い、データＡのハッシュ値「ａ」も管理テーブルから削除される。
【００２０】
図４は、ガベージコレクションによるデータの消去と、消去されたデータと同一のデータについての再書き込み処理が繰り返される場合の課題を説明するための図である。図４に示される第１の状態乃至第３の状態は、図３に示された第１の状態乃至第３の状態にそれぞれ等しいものであり、第３の状態においてガベージコレクションが実行され、物理ボリューム上のデータＡが消去される。
【００２１】
第３の状態の後、第４の状態において第２論理アドレスへのデータＡの書き込みコマンドが、情報処理装置１００からストレージシステム２００に入力される。この場合、制御装置３００はデータＡのハッシュ値「ａ」を算出し、ハッシュ値「ａ」が管理テーブルに登録されているかを判定する。上述のように第３の状態においてデータＡが物理ボリュームから消去され、ハッシュ値「ａ」も管理テーブルから削除されている。そのため制御装置３００は、データＡが物理ボリュームに格納されていないことを認識する。そして制御装置３００は、データＡを物理ボリュームに新規に格納し、管理テーブルにはデータＡについてのアドレス対応情報、データＡのハッシュ値「ａ」、及び参照数「１」が登録される。
【００２２】
第４の状態の後、第５の状態において第２論理アドレスへのデータＣの書き込みコマンドが、情報処理装置１００からストレージシステム２００に入力される。すなわち論理ボリューム上においては、第２論理アドレスにおいてデータＡがデータＣによって上書きされ、物理ボリューム上においてはデータＡが維持されたまま、データＣが他の物理アドレス領域に新規に格納される。また、データＣについてのアドレス対応情報、データＣのハッシュ値（ここでは「ｃ」とする）、及び参照数「１」が管理テーブルに登録される。そして、データＡの参照数は「０」に更新される。
【００２３】
第５の状態の後、第６の状態においてガベージコレクションが実行される。制御装置３００は、管理テーブルにおいて参照数が「０」となっているデータがあるかを判定する。ここでは第５の状態で論理ボリューム上から消去されたデータＡの参照数が「０」となっている。そこで制御装置３００は、ガベージコレクションにおいてデータＡを物理ボリューム上から消去する。
【００２４】
第６の状態の後、第７の状態において、第３論理アドレスへのデータＡの書き込みコマンドが、情報処理装置１００からストレージシステム２００に入力される。データＡは第６の状態において物理ボリューム上から消去されているため、制御装置３００は物理ボリューム上の他のアドレス領域にデータＡを新たに格納する。
【００２５】
このように図４においては、第３の状態においてガベージコレクションによってデータＡが物理ボリューム上から消去され、その後第４の状態においてデータＡが物理ボリュームに格納される。更に第６の状態においてガベージコレクションによってデータＡが物理ボリューム上から消去され、その後第７の状態においてデータＡが物理ボリュームに格納されている。言い換えればデータＡの物理ボリュームにおける消去と格納が繰り返し実行されたことになる。このような、同一データについての消去と格納が繰り返し実行されることは、制御装置３００の処理負荷を増加させることになる。また物理ボリュームのデータ格納領域の書き換え回数が増加することになる。ストレージ装置４００が例えばフラッシュメモリで構成されるＳｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ（ＳＳＤ）の場合、書き換え回数の増加によりストレージ装置４００の性能劣化を招くこととなる。
【００２６】
このような課題を解決するための方法を図５を用いて説明する。図５は、管理テーブルとハッシュリンクを用いたガベージコレクションの制御方法を説明するための図である。
【００２７】
図５に示される第１の状態及び第２の状態は、図４における第１の状態及び第２の状態とそれぞれ同じ内容である。第３の状態においてガベージコレクションが実行され、参照数が「０」であるデータＡが物理ボリュームから消去される。この際、消去されたデータＡのハッシュ値である「ａ」が、ハッシュリンク３２８に登録される。ハッシュリンク３２８とは、消去されたデータに対応するハッシュ値を順に保存しておくバッファである。消去されたデータに対応するハッシュ値がハッシュリンク３２８に保持されているということは、過去に当該データがガベージコレクションによって物理ボリュームから消去された履歴がある、ということを意味する。そのため、本明細書においてはハッシュリンク３２８を「履歴情報保持部」とも呼ぶ。また履歴情報保持部に保持されるハッシュ値を、当該データが物理ボリュームから消去された履歴を示す「履歴情報」とも呼ぶ。
【００２８】
図５に示されるように、第３の状態において、ハッシュ値「ａ」がハッシュリンク３２８の例えば先頭の位置に登録される。ハッシュリンク３２８は、直近に消去されたデータに対応するハッシュ値が先頭の位置に登録され、最も古く消去されたデータのハッシュ値が最後尾に登録されるように制御される。ハッシュリンク３２８に登録可能なハッシュ値の数には上限値が設けられる。ハッシュリンク３２８に登録されるハッシュ値の数が上限値を超える場合、つまり登録されるハッシュ値の数がハッシュリンク３２８の容量を超える場合には、ハッシュリンク３２８の最後尾のハッシュ値が削除される。
【００２９】
図５における第４の状態は、図４における第４の状態と同一であり、第２論理アドレスへのデータＡの書き込みコマンドが、情報処理装置１００からストレージシステム２００に入力される。この時点ではデータＡは物理ボリュームに格納されていないため、制御装置３００は、データＡを物理ボリュームに新規に格納し、管理テーブルには、データＡのアドレス対応情報、データＡのハッシュ値「ａ」、及び参照数「１」が登録される。
【００３０】
図５における第５の状態は、図４における第５の状態と同一であり、第２論理アドレスへのデータＣの書き込みコマンドが、情報処理装置１００からストレージシステム２００に入力される。物理ボリューム上においてはデータＡが保持されたまま、データＣが他の物理アドレス領域に格納され、データＡに対応する参照数は「０」に更新される。
【００３１】
次に第６の状態においてガベージコレクションが実行される。ここで制御装置３００は、消去されるデータの候補を選定するために、管理テーブルにおいて参照数が「０」となっているデータを選択する。この例においては第５の状態において参照数が「０」となったデータＡが選択される。更に制御装置３００は、ハッシュリンク３２８を参照する。ハッシュリンク３２８には、第３の状態において登録されたハッシュ値「ａ」が保持されている。ハッシュ値がハッシュリンク３２８に登録されているということは、そのハッシュ値に対応するデータが過去に削除されたことがあることを意味する。つまりハッシュ値「ａ」に対応するデータＡについては、この後も格納及び消去が繰り返される可能性があると考えられる。そこで制御装置３００は、参照数が「０」のデータであっても、そのデータに対応するハッシュ値がハッシュリンク３２８に登録されている場合には、当該データをガベージコレクションによる消去の対象とはしない。これにより、第６の状態においてデータＡは物理ボリュームから消去されず、データＡが物理ボリュームに保持される。
【００３２】
第６の状態の後、第７の状態において、第３論理アドレスへのデータＡの書き込みコマンドが、情報処理装置１００からストレージシステム２００に入力される。上述されたように、データＡは第６の状態において物理ボリューム上から消去されていない。そのため制御装置３００は、データＡの物理ボリュームへの格納は行わず、管理テーブルへのデータＡのアドレス対応情報の登録と、データＡの参照数の「０」から「１」への変更を行う。
【００３３】
このように本実施形態においては、データが物理ボリュームから消去された場合に、当該データが消去されたことを示す履歴情報、例えばハッシュ値が、履歴情報保持部、例えばハッシュリンク３２８に保持される。そしてガベージコレクションにおいては、参照数が「０」となったデータであっても、履歴情報保持部に履歴情報が保持されているデータは、ガベージコレクションによる消去の対象とはならない。そのため、当該データはガベージコレクションによって消去されずに物理ボリューム上に保持される。そしてその後、同一のデータについての書き込みコマンドが受信された場合に、物理ボリュームへのデータ書き込み処理が省略され、制御装置３００のデータ書き込みに要する処理負荷及びストレージ装置４００のデータ書き換え回数を抑制することが可能となる。また履歴情報保持部に保持され得る履歴情報の数には上限値が設けられているため、ストレージ装置４００の空き容量を適切に維持することが可能となる。
【００３４】
図６は、履歴情報保持部の一例であるハッシュリンク３２８の制御方法を説明するための図である。図６の（Ａ）に示されるように、データＡがガベージコレクションによって消去された場合にはハッシュ値「ａ」は、ハッシュリンク３２８の先頭位置に登録される。その後、図６の（Ｂ）に示されるように、他のハッシュ値「ｂ」がハッシュリンク３２８に登録される場合、ハッシュ値「ｂ」がハッシュリンク３２８の先頭位置に登録され、ハッシュ値「ａ」はハッシュリンク３２８において後方の領域に移動する。このように新たにハッシュ値がハッシュリンク３２８に登録されるに従って、古いハッシュ値は順に下位の領域に移動する。ハッシュ値がハッシュリンク３２８に保持されている間は、ハッシュ値に対応するデータは、ガベージコレクションによる消去の対象とはならない。そのため、データは物理ボリュームに維持され、同一データに関して繰り返し消去及び書き込みが繰り返されるということを防止することができる。
【００３５】
図６の（Ｃ）に示されるように、ハッシュ値「ａ」がハッシュリンク３２８の最後尾にある場合であって、更に新たなハッシュ値がハッシュリンク３２８に追加された場合は、ハッシュ値「ａ」はハッシュリンク３２８から削除される。このように、直近に削除されてからの期間が他のデータに比べて長いデータに関しては、ハッシュ値がハッシュリンク３２８から削除されることにより、当該データはガベージコレクションによる消去の対象となる。その結果、物理ボリュームの空き容量を適切に確保することが可能となる。
【００３６】
また図６の（Ｄ）に示されるように、あるデータの参照数が「０」であり、かつ当該データのハッシュ値がハッシュリンク３２８に存在することにより当該データが消去されなかった場合には、当該データのハッシュ値がハッシュリンク３２８の先頭位置に移動される。これにより、参照数が「０」であるデータがハッシュリンク３２８の上方に移動され、一方、参照数が「０」でないデータのハッシュ値がハッシュリンク３２８の下方に移動される。そのため、参照数が「０」でないデータのハッシュ値を優先的にハッシュリンク３２８から削除し、参照数が「０」であるデータのハッシュ値をハッシュリンク３２８に残存させることができる。尚、参照数が「０」でないデータは、ハッシュリンク３２８にハッシュ値が残っていなくてもガベージコレクションによる消去の対象とはならない。
【００３７】
図７は、制御装置３００のハードウェア構成を示す図である。制御装置３００は、Ｃｈａｎｎｅｌ  Ａｄａｐｔｏｒ（ＣＡ）３１０と、プロセッサ３２０と、不揮発性メモリ３３０と、揮発性メモリ３４０と、Ｉｎｐｕｔ  Ｏｕｔｐｕｔ  Ｃｏｎｔｒｏｌｌｅｒ（ＩＯＣ）３５０と、Ｅｘｐａｎｄｅｒ（ＥＸＰ）３６０とを有する。
【００３８】
ＣＡ３１０は、情報処理装置１００に対するインターフェース回路であり、情報処理装置１００から書き込みコマンドやデータを受信する。また、ストレージ装置４００から読み出されたデータは、ＣＡ３１０を介して情報処理装置１００に送信される。
【００３９】
プロセッサ３２０は、不揮発性メモリ３３０に格納されたコンピュータプログラムを揮発性メモリ３４０にロードして実行する。例えばプロセッサ３２０は、書き込みコマンドの受信に応じて、データのストレージ装置４００への書き込み処理を実行する。プロセッサ３２０はハードウェアプロセッサであり、Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ（ＣＰＵ）、Ｍｉｃｒｏ  Ｃｏｎｔｒｏｌ  Ｕｎｉｔ（ＭＣＵ）、Ｍｉｃｒｏ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ（ＭＰＵ）、Ｄｉｇｉｔａｌ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｏｒ（ＤＳＰ）の他、Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ（ＦＰＧＡ）やＡｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ（ＡＳＩＣ）も適用可能である。
【００４０】
不揮発性メモリ３３０は、コンピュータで読み取り可能な記録媒体である。不揮発性メモリ３３０には、プロセッサ３２０によって実行されるコンピュータプログラム等が格納される。不揮発性メモリ３３０は、例えばＲｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ（ＲＯＭ）、Ｍａｓｋ  Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ（マスクＲＯＭ）、Ｐｒｏｇｒａｍａｂｌｅ  Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ（ＰＲＯＭ）、フラッシュメモリ、Ｍａｇｎｅｔｏｒｅｓｉｓｔｉｖｅ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ（ＭＲＡＭ）、Ｒｅｓｉｓｔｉｖｅ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ（ＲｅＲＡＭ）、Ｆｅｒｒｏｅｌｅｃｔｒｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ（ＦｅＲＡＭ）等である。コンピュータプログラムは、不揮発性メモリ３３０以外の記憶媒体であって、コンピュータで読み取り可能な記録媒体（ただし、搬送波は除く）に記録されることもできる。また、コンピュータプログラムが記録されたＤｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｃ（ＤＶＤ）、Ｃｏｍｐａｃｔ  Ｄｉｓｃ  Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ（ＣＤ−ＲＯＭ）などの可搬型記録媒体を流通させることもできる。また、コンピュータプログラムは、ネットワークを介して送信され得る。
【００４１】
揮発性メモリ３４０は、コンピュータで読み取り可能な記録媒体である。揮発性メモリ３４０には、不揮発性メモリ３３０に格納されているコンピュータプログラムがロードされる。また揮発性メモリ３４０には、プロセッサ３２０による演算処理に使用されるデータや演算処理の結果であるデータ等が保持される。揮発性メモリ３４０は、例えばＳｔａｔｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ（ＳＲＡＭ）やＤｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ（ＤＲＡＭ）等である。
【００４２】
ＩＯＣ３５０は制御装置３００とストレージ装置４００との間で行われるデータの送受信を制御する。ＥＸＰ３６０は、制御装置３００とストレージ装置４００との間で行われるデータの送受信を中継する。
【００４３】
図８は、制御装置３００のプロセッサ３２０の機能ブロックを示す図である。制御装置３００のプロセッサ３２０は、例えば不揮発性メモリ３３０に格納されたコンピュータプログラムを実行することにより、コマンド受信部３２１、ハッシュ値算出部３２２、ストレージ装置制御部３２３、ガベージコレクション実行部３２４、管理テーブル制御部３２５、ハッシュリンク制御部３２６として機能する。更に制御装置３００のプロセッサ３２０は管理テーブル３２７、ハッシュリンク３２８を保持する。尚、管理テーブル３２７及びハッシュリンク３２８は、プロセッサ３２０以外のデバイス、例えば揮発性メモリ３４０に保持されてもよい。
【００４４】
コマンド受信部３２１は、例えば情報処理装置１００から書き込みコマンドを受信する。ハッシュ値算出部３２２は、コマンド受信部３２１が書き込みコマンドを受信した場合、書き込み要求の対象となるデータのハッシュ値を算出する。ストレージ装置制御部３２３は、ストレージ装置４００へのデータの書き込みを実行する。尚、重複排除の処理もストレージ装置制御部３２３によって実行される。ガベージコレクション実行部３２４は、ストレージ装置４００のガベージコレクションを実行する。ガベージコレクション実行部３２４は管理テーブル３２７に保持される参照数及びハッシュリンク３２８に保持されるハッシュ値に基づき、ガベージコレクションによって物理ボリュームから削除されるデータの選定や、ガベージコレクションの実行を制御する。管理テーブル制御部３２５は、管理テーブル３２７の内容を管理し、ハッシュ値の登録や参照数の更新等を行う。また管理テーブル制御部３２５は論理アドレスと物理アドレスのアドレス対応情報も管理テーブル３２７に登録する。ハッシュリンク制御部３２６は、ハッシュ値のハッシュリンク３２８への登録やハッシュリンク３２８からの削除、ハッシュリンク３２８内でのハッシュ値の位置変更等を制御する。
【００４５】
図９は、制御装置３００のプロセッサ３２０によって実行される処理のフローチャートであり、主に情報処理装置１００から書き込みコマンドを受信した際に実行される処理について説明するための図である。処理フローは処理Ｓ５０により開始され、処理Ｓ５１においてコマンド受信部３２１が、情報処理装置１００から送信された書き込みコマンドを受信する。処理Ｓ５２においてハッシュ値算出部３２２が、書き込みコマンドの対象データについてハッシュ値を算出する。処理Ｓ５３においてストレージ装置制御部３２３が、算出されたハッシュ値と同一のハッシュ値が管理テーブル３２７に登録されているかを判定することにより、書き込みの対象データと同一のデータがストレージ装置４００に格納されているかを判定する。同一のデータがストレージ装置４００に格納されていると判定された場合（処理Ｓ５３のＹｅｓ）は、処理フローは処理Ｓ５５へ進み、同一のデータがストレージ装置４００に格納されていると判定されない場合（処理Ｓ５３のＮｏ）は、処理フローは処理Ｓ５４へ進む。
【００４６】
処理Ｓ５４においてストレージ装置制御部３２３は、データをストレージ装置４００の物理ボリュームに格納する。処理Ｓ５５において管理テーブル制御部３２５は、管理テーブル３２７を更新する。具体的には、処理フローが処理Ｓ５３から処理Ｓ５４に進んだ場合は、書き込みコマンドにて指定された論理アドレスとデータが書き込まれた物理アドレスとの対応関係を示すアドレス対応情報と、データのハッシュ値と、参照数「１」とが、新たに管理テーブル３２７に登録される。処理フローが処理Ｓ５３から処理Ｓ５５に進んだ場合は、書き込みコマンドにて指定された論理アドレスと、書き込みが要求されたデータと同一のデータが格納されている物理アドレスとの対応関係を示すアドレス対応情報を管理テーブル３２７に登録し、参照数を「１」増加させる。その後、処理フローは処理Ｓ５６にて終了する。
【００４７】
図１０は、制御装置３００のプロセッサ３２０によって実行される処理のフローチャートであり、主にガベージコレクションに関する処理について説明するための図である。処理フローは処理Ｓ６０により開始され、処理Ｓ６１においてガベージコレクション実行部３２４が、物理ボリュームに格納されているデータのうち、未選択のデータを選択する。処理Ｓ６２においてガベージコレクション実行部３２４が、管理テーブル３２７を参照することにより、選択されたデータの参照数が「０」であるかを判定する。参照数が「０」であると判定された場合（処理Ｓ６２のＹｅｓ）は、処理フローは処理Ｓ６３へ進み、参照数が「０」であると判定されない場合（処理Ｓ６２のＮｏ）は、処理フローは処理Ｓ６１へ戻り、他の未選択データが選択される。
【００４８】
処理Ｓ６３においてガベージコレクション実行部３２４が、選択されたデータのハッシュ値と同一のハッシュ値がハッシュリンク３２８に保持されているかを判定する。同一のハッシュ値がハッシュリンク３２８に保持されていると判定された場合（処理Ｓ６３のＹｅｓ）は、処理フローは処理Ｓ６４へ進み、同一のハッシュ値がハッシュリンク３２８に保持されていると判定されない場合（処理Ｓ６３のＮｏ）は、処理フローは処理Ｓ６８へ進む。
【００４９】
処理フローが処理Ｓ６８へ進んだ場合、処理Ｓ６８においてハッシュリンク制御部３２６が、選択されたデータのハッシュ値を、ハッシュリンク３２８の先頭の位置に登録する。処理Ｓ６９においてハッシュリンク制御部３２６が、ハッシュリンク３２８に保持されているハッシュ値の数が設定された上限値を超えたかを判定する。ハッシュ値の数が設定された上限値を超えたと判定された場合（処理Ｓ６９のＹｅｓ）は、処理フローは処理Ｓ７０へ進み、ハッシュ値の数が設定された上限値を超えたと判定されない場合（処理Ｓ６９のＮｏ）は、処理フローは処理Ｓ７１へ進む。処理Ｓ７０においてハッシュリンク制御部３２６は、ハッシュリンク３２８の最後尾に登録されているハッシュ値を、ハッシュリンク３２８から削除する。処理Ｓ７１においてガベージコレクション実行部３２４は、選択されたデータを、ガベージコレクションによって消去されるデータとして決定する。その後、処理フローは処理Ｓ６６へ進む。
【００５０】
一方、処理フローが処理Ｓ６３から処理Ｓ６４へ進んだ場合、処理Ｓ６４においてハッシュリンク制御部３２６が、選択されたデータのハッシュ値と同一のハッシュ値を、ハッシュリンク３２８の先頭の位置へ移動させる。処理Ｓ６５においてガベージコレクション実行部３２４が、物理ボリュームの空き容量が閾値以下であるかを判定する。空き容量が閾値以下であると判定された場合（処理Ｓ６５のＹｅｓ）は、処理フローは処理Ｓ７１へ進み、選択されたデータはガベージコレクションによって消去されるデータとして決定される。空き容量が閾値以下であると判定されない場合（処理Ｓ６５のＮｏ）は、処理フローは処理Ｓ６６へ進む。処理Ｓ６５を行うことにより、物理ボリュームの空き容量が特に少ない場合には、過去に削除されたことを示す履歴情報が履歴情報保持部に保持されていたとしても、参照数が「０」となっているデータを物理ボリュームから消去することができる。これにより、物理ボリュームの空き容量を確保することができる。
【００５１】
処理Ｓ６６においてガベージコレクション実行部３２４が、物理ボリュームに格納されている全てのデータが選択されたか否かを判定する。全てのデータが選択されたと判定された場合（処理Ｓ６６のＹｅｓ）は、処理フローは処理Ｓ６７へ進み、全てのデータが選択されたと判定されない場合（処理Ｓ６６のＮｏ）は、処理フローは処理Ｓ６１へ戻る。
【００５２】
処理Ｓ６７においてガベージコレクション実行部３２４は、ガベージコレクションを実行することにより、処理Ｓ７１において消去されるデータとして決定されたデータを物理ボリュームから消去する。その後、処理フローは処理Ｓ７２において終了する。
【００５３】
このように、本願の実施形態により開示された方法においては、ガベージコレクションによって消去されたデータのハッシュ値が、ハッシュリンク３２８に登録される。そして物理ボリュームに格納されたデータであって、論理ボリュームの何れのデータにも対応しないデータをガベージコレクションにより消去する際には、当該データのハッシュ値がハッシュリンク３２８に保持されているかが判定される。ハッシュ値がハッシュリンク３２８に保持されている場合には、当該データはガベージコレクションによっては消去されず、物理ボリュームに保持される。そのため、その後に同一データの書き込み要求が有った際には、重複排除処理によってデータの再書き込み処理が省略され、制御装置３００の処理負荷が軽減される。
【００５４】
ここまで本願に実施形態について説明したが、本願によって開示される技術内容は、実施形態に開示された内容に限定されるものではない。例えば実施形態においては物理ボリュームのデータを消去する処理としてガベージコレクションを例に挙げて説明したが、データを消去する消去処理であればガベージコレクションには限定されない。また、データを特定するための識別子としてハッシュ値を例に挙げて説明したが、データを個別に識別するための方法であればハッシュ値には限定されない。また履歴情報保持部としてハッシュリンク３２８を例に挙げて説明したが、所定数の履歴情報を保持するものであればハッシュリンク３２８には限定されない。
【００５５】
開示の実施例に基づき、更に以下の付記を開示する。
（付記１）
第１データを、ストレージ装置に設定された論理ボリュームの第１論理アドレス領域に書き込むことを要求する第１要求信号を受信し、
前記第１要求信号に応じて、前記第１データを、前記ストレージ装置に設定された物理ボリュームに格納し、
前記第１要求信号の受信の後に、前記物理ボリュームに格納された前記第１データを消去することなく、前記論理ボリュームの前記第１論理アドレス領域の前記第１データを消去し、
前記物理ボリュームに対する第１消去処理を実行する際、前記第１消去処理よりも前に前記第１データと同一の第２データが前記物理ボリュームから削除されたことを示す履歴情報が保持されている場合には、前記第１データを前記物理ボリュームに保持し、前記履歴情報が保持されていない場合には、前記第１データを前記物理ボリュームから消去する
ことを特徴とする制御装置。
（付記２）
前記第１データを前記物理ボリュームから消去することなく前記論理ボリュームの前記第１論理アドレス領域から消去する処理は、前記第１要求信号の受信の後に、前記論理ボリュームの前記第１論理アドレス領域の前記第１データを、前記第１データとは異なる第３データに書き換えることを要求する第２要求信号に応じて、前記物理ボリュームに格納された前記第１データを消去することなく、前記第３データを前記物理ボリュームの前記第１論理アドレス領域に格納する処理である
ことを特徴とする付記１に記載の制御装置。
（付記３）
前記履歴情報に基づき前記第１データを前記物理ボリュームに保持させた後、前記第１データと同一の第４データを、前記論理ボリュームの第２論理アドレス領域に書き込むことを要求する第３要求信号を受信し、
前記第３要求信号に応じて、前記第１データが前記物理ボリュームに保持されている場合には、前記第４データを前記物理ボリュームに格納する処理を行わず、前記物理ボリュームに保持された前記第１データと前記第２論理アドレス領域との関係を示すアドレス対応情報を生成する
ことを特徴とする付記１又は２に記載の制御装置。
（付記４）
前記第１消去処理よりも前に、第２消去処理を実行し、
前記第２消去処理において、前記第２データが前記物理ボリュームに格納されかつ前記論理ボリュームに格納されていない場合に、前記第２データを前記物理ボリュームから消去し、
前記第２データが前記物理ボリュームから消去されたことに基づき、前記履歴情報を生成する
ことを特徴とする付記１乃至３何れか一つに記載の制御装置。
（付記５）
前記履歴情報を履歴情報保持部に保持させ、
前記履歴情報保持部の容量に基づいて前記履歴情報を保持するか削除するかを判定する
ことを特徴とする付記４に記載の制御装置。
（付記６）
前記第２消去処理において、前記履歴情報を前記履歴情報保持部の先頭位置に保持させ、
他のデータについての他の履歴情報を前記履歴情報保持部に保持させる際には、前記履歴情報保持部における前記履歴情報の保持位置を後方に移動させ、
前記履歴情報が前記履歴情報保持部の最後尾にある場合に、前記容量に基づいて前記履歴情報を前記履歴情報保持部から削除する
ことを特徴とする付記５に記載の制御装置。
（付記７）
前記第１消去処理において前記履歴情報が前記履歴情報保持部に保持されている場合は、前記履歴情報保持部における前記履歴情報の保持位置を前記先頭位置に移動させる
ことを特徴とする付記６に記載の制御装置。
（付記８）
前記履歴情報は、前記物理ボリュームから削除された前記第２データの第２ハッシュ値であり、
前記第１消去処理において、前記第１データの第１ハッシュ値と同一の前記第２ハッシュ値が前記履歴情報保持部に保持されている場合には、前記第１データの前記物理ボリュームからの消去を行わない
ことを特徴とする付記５乃至７何れか一つに記載の制御装置。
（付記９）
ストレージ装置と、
前記ストレージ装置を制御する制御装置と
を含むストレージシステムであって、前記制御装置は、
第１データを、前記ストレージ装置に設定された論理ボリュームの第１論理アドレス領域に書き込むことを要求する第１要求信号を受信し、
前記第１要求信号に応じて、前記第１データを、前記ストレージ装置に設定された物理ボリュームに格納し、
前記第１要求信号の受信の後に、前記物理ボリュームに格納された前記第１データを消去することなく、前記論理ボリュームの前記第１論理アドレス領域の前記第１データを消去し、
前記物理ボリュームに対する第１消去処理を実行する際、前記第１消去処理よりも前に前記第１データと同一の第２データが前記物理ボリュームから削除されたことを示す履歴情報が保持されている場合には、前記第１データを前記物理ボリュームに保持し、前記履歴情報が保持されていない場合には、前記第１データを前記物理ボリュームから消去する
ことを特徴とするストレージシステム。
（付記１０）
前記第１データを前記物理ボリュームから消去することなく前記論理ボリュームの前記第１論理アドレス領域から消去する処理は、前記第１要求信号の受信の後に、前記論理ボリュームの前記第１論理アドレス領域の前記第１データを、前記第１データとは異なる第３データに書き換えることを要求する第２要求信号に応じて、前記物理ボリュームに格納された前記第１データを消去することなく、前記第３データを前記物理ボリュームの前記第１論理アドレス領域に格納する処理である
ことを特徴とする付記９に記載のストレージシステム。
（付記１１）
前記制御装置は、
前記履歴情報に基づき前記第１データを前記物理ボリュームに保持させた後、前記第１データと同一の第４データを、前記論理ボリュームの第２論理アドレス領域に書き込むことを要求する第３要求信号を受信し、
前記第３要求信号に応じて、前記第１データが前記物理ボリュームに保持されている場合には、前記第４データを前記物理ボリュームに格納する処理を行わず、前記物理ボリュームに保持された前記第１データと前記第２論理アドレス領域との関係を示すアドレス対応情報を生成する
ことを特徴とする付記９又は１０に記載のストレージシステム。
（付記１２）
前記制御装置は、
前記第１消去処理よりも前に、第２消去処理を実行し、
前記第２消去処理において、前記第２データが前記物理ボリュームに格納されかつ前記論理ボリュームに格納されていない場合に、前記第２データを前記物理ボリュームから消去し、
前記第２データが前記物理ボリュームから消去されたことに基づき、前記履歴情報を生成する
ことを特徴とする付記９乃至１１何れか一つに記載のストレージシステム。
（付記１３）
前記制御装置は、
前記履歴情報を履歴情報保持部に保持させ、
前記履歴情報保持部の容量に基づいて前記履歴情報を保持するか削除するかを判定する
ことを特徴とする付記１２に記載のストレージシステム。
（付記１４）
前記制御装置は、
前記第２消去処理において、前記履歴情報を前記履歴情報保持部の先頭位置に保持させ、
他のデータについての他の履歴情報を前記履歴情報保持部に保持させる際には、前記履歴情報保持部における前記履歴情報の保持位置を後方に移動させ、
前記履歴情報が前記履歴情報保持部の最後尾にある場合に、前記容量に基づいて前記履歴情報を前記履歴情報保持部から削除する
ことを特徴とする付記１３に記載のストレージシステム。
（付記１５）
前記制御装置は、前記第１消去処理において前記履歴情報が前記履歴情報保持部に保持されている場合は、前記履歴情報保持部における前記履歴情報の保持位置を前記先頭位置に移動させる
ことを特徴とする付記１４に記載のストレージシステム。
（付記１６）
前記履歴情報は、前記物理ボリュームから削除された前記第２データの第２ハッシュ値であり、
前記制御装置は、前記第１消去処理において、前記第１データの第１ハッシュ値と同一の前記第２ハッシュ値が前記履歴情報保持部に保持されている場合には、前記第１データの前記物理ボリュームからの消去を行わない
ことを特徴とする付記１３乃至１５何れか一つに記載のストレージシステム。
（付記１７）
ストレージ装置を制御する制御方法であって、
第１データを、前記ストレージ装置に設定された論理ボリュームの第１論理アドレス領域に書き込むことを要求する第１要求信号を受信し、
前記第１要求信号に応じて、前記第１データを、前記ストレージ装置に設定された物理ボリュームに格納し、
前記第１要求信号の受信の後に、前記物理ボリュームに格納された前記第１データを消去することなく、前記論理ボリュームの前記第１論理アドレス領域の前記第１データを消去し、  前記物理ボリュームに対する第１消去処理を実行する際、前記第１消去処理よりも前に前記第１データと同一の第２データが前記物理ボリュームから削除されたことを示す履歴情報が保持されている場合には、前記第１データを前記物理ボリュームに保持し、前記履歴情報が保持されていない場合には、前記第１データを前記物理ボリュームから消去する
ことを特徴とする制御方法。
（付記１８）
前記第１データを前記物理ボリュームから消去することなく前記論理ボリュームの前記第１論理アドレス領域から消去する処理は、前記第１要求信号の受信の後に、前記論理ボリュームの前記第１論理アドレス領域の前記第１データを、前記第１データとは異なる第３データに書き換えることを要求する第２要求信号に応じて、前記物理ボリュームに格納された前記第１データを消去することなく、前記第３データを前記物理ボリュームの前記第１論理アドレス領域に格納する処理である
ことを特徴とする付記１７に記載の制御方法。
（付記１９）
前記履歴情報に基づき前記第１データを前記物理ボリュームに保持した後、前記第１データと同一の第４データを、前記論理ボリュームの第２論理アドレス領域に書き込むことを要求する第３要求信号を受信し、
前記第３要求信号に応じて、前記第１データが前記物理ボリュームに保持されている場合には、前記第４データを前記物理ボリュームに格納する処理を行わず、前記物理ボリュームに保持された前記第１データと前記第２論理アドレス領域との関係を示すアドレス対応情報を生成する
ことを特徴とする付記１７又は１８に記載の制御方法。
（付記２０）
前記第１消去処理よりも前に、第２消去処理を実行し、
前記第２消去処理において、前記第２データが前記物理ボリュームに格納されかつ前記論理ボリュームに格納されていない場合に、前記第２データを前記物理ボリュームから消去し、
前記第２データが前記物理ボリュームから消去されたことに基づき、前記履歴情報を生成する
ことを特徴とする付記１７乃至１９何れか一つに記載の制御方法。
【符号の説明】
【００５６】
１００  情報処理装置
２００  ストレージシステム
３００  制御装置
４００  ストレージ装置
３１０  ＣＡ
３２０  プロセッサ
３３０  不揮発性メモリ
３４０  揮発性メモリ
３５０  ＩＯＣ
３６０  ＥＸＰ
３２１  コマンド受信部
３２２  ハッシュ値算出部
３２３  ストレージ装置制御部
３２４  ガベージコレクション実行部
３２５  管理テーブル制御部
３２６  ハッシュリンク制御部
３２７  管理テーブル
３２８  ハッシュリンク
【図１】
0006988445.tif 000002
【図２】
0006988445.tif 000003
【図３】
0006988445.tif 000004
【図４】
0006988445.tif 000005
【図５】
0006988445.tif 000006
【図６】
0006988445.tif 000007
【図７】
0006988445.tif 000008
【図８】
0006988445.tif 000009
【図９】
0006988445.tif 000010
【図１０】
0006988445.tif 000011