JP2019113899A - ストレージシステム、制御装置及び制御方法 - Google Patents

ストレージシステム、制御装置及び制御方法 Download PDF

Info

Publication number
JP2019113899A
JP2019113899A JP2017244539A JP2017244539A JP2019113899A JP 2019113899 A JP2019113899 A JP 2019113899A JP 2017244539 A JP2017244539 A JP 2017244539A JP 2017244539 A JP2017244539 A JP 2017244539A JP 2019113899 A JP2019113899 A JP 2019113899A
Authority
JP
Japan
Prior art keywords
data
physical volume
history information
volume
held
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.)
Granted
Application number
JP2017244539A
Other languages
English (en)
Other versions
JP6988445B2 (ja
Inventor
一宏 浦田
Kazuhiro Urata
一宏 浦田
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.)
Fujitsu Ltd
Original Assignee
Fujitsu 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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2017244539A priority Critical patent/JP6988445B2/ja
Priority to US16/216,244 priority patent/US10866759B2/en
Publication of JP2019113899A publication Critical patent/JP2019113899A/ja
Application granted granted Critical
Publication of JP6988445B2 publication Critical patent/JP6988445B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0652Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0608Saving storage space on storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0253Garbage collection, i.e. reclamation of unreferenced memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • G06F3/0641De-duplication techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0658Controller construction arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

【課題】同一データの再度の書き込み処理の回数を抑制することができるストレージシステム、制御装置及び制御方法を提供する。【解決手段】ストレージ装置の物理ボリュームに格納されているデータのうち、論理ボリューム上の何れのデータにも対応していないデータを選択し、選択されたデータについて、過去に同一のデータがストレージ装置から消去されたことを示す履歴情報が保持されているか否かを判定する。履歴情報が保持されている場合には、選択されたデータを物理ボリュームに保持し、履歴情報が保持されていない場合には、選択されたデータを物理ボリュームから消去する。【選択図】図5

Description

本開示は、ストレージシステム、制御装置及び制御方法に関する。
ストレージシステムにおいて、ストレージ装置に格納されるデータ量を圧縮するために、重複排除技術が開発されている。重複排除においては、ストレージ装置に設定される論理ボリューム上に新たにデータが書き込まれる際、ストレージ装置に設定される物理ボリューム上のあるアドレス領域に当該データと同一のデータが既に格納されているか否かが判定される。そして同一のデータが既に格納されている場合には、物理ボリューム上の他のアドレス領域に当該データを新たに書き込むことなく、当該データを既に格納されているデータと対応付ける処理がなされる。これにより、物理ボリュームに格納されたデータを、論理ボリューム上の複数のデータに対応付けることができ、ストレージ装置に格納されるデータ量を圧縮することができる。
またストレージ装置の空き容量が減少した場合に、ストレージ装置に格納されているデータであって不要となったデータを消去して空き容量を増加させる、ガベージコレクションと呼ばれる処理が実行される。ストレージシステムに含まれる制御装置は、例えば定期的にストレージ装置の空き容量をモニタし、空き容量が所定値以下となった場合には、ストレージ装置に格納されているデータのうち消去可能なデータを選択する。そして選択されたデータはガベージコレクションによってストレージ装置から消去され、ストレージ装置の空き容量が確保される。
特表2013−522718号公報 特表2016−526717号公報
ストレージシステムに対してあるデータの書き込み要求がなされた場合、書き込み要求の対象となるデータと同一のデータが既にストレージ装置に格納されている場合は、重複排除技術を用いることにより、データの書き込み処理を省略することができる。一方、当該データの書き込み要求がなされる前に、ストレージ装置に格納されていた同一データがガベージコレクションによって消去されている場合には、当該データの再度の書き込み処理を実行する必要がある。
本発明は、ガベージコレクションによるデータの消去処理を改善することにより、同一データの再度の書き込み処理の回数を抑制することを目的とする。
第1データを、ストレージ装置に設定された論理ボリュームの第1論理アドレス領域に書き込むことを要求する第1要求信号を受信し、前記第1要求信号に応じて、前記第1データを、前記ストレージ装置に設定された物理ボリュームに格納し、前記第1要求信号の受信の後に、前記物理ボリュームに格納された前記第1データを消去することなく、前記論理ボリュームの前記第1論理アドレス領域の前記第1データを消去し、前記物理ボリュームに対する第1消去処理を実行する際、前記第1消去処理よりも前に前記第1データと同一の第2データが前記物理ボリュームから削除されたことを示す履歴情報が保持されている場合には、前記第1データを前記物理ボリュームに保持し、前記履歴情報が保持されていない場合には、前記第1データを前記物理ボリュームから消去することを特徴とする制御装置が開示される。
同一データの再度の書き込み処理の回数を抑制することができる。
ストレージシステムの構成を示す図である。 制御装置が実行する重複排除処理について説明するための図である。 参照数に基づくガベージコレクションについて説明するための図である。 ガベージコレクションによるデータの消去と、消去されたデータと同一のデータについての再書き込み処理が繰り返される場合の課題を説明するための図である。 管理テーブルとハッシュリンクを用いたガベージコレクションの制御方法を説明するための図である。 履歴情報保持部の一例であるハッシュリンクの制御方法を説明するための図である。 制御装置のハードウェア構成を示す図である。 制御装置のプロセッサの機能ブロックを示す図である。 制御装置のプロセッサによって実行される処理のフローチャートであり、主に情報処理装置から書き込みコマンドを受信した際に実行される処理について説明するための図である。 制御装置のプロセッサによって実行される処理のフローチャートであり、主にガベージコレクションに関する処理について説明するための図である。
本実施形態においては、重複排除技術が適用されるストレージシステムにおいて、ストレージ装置への同一データの書き込み処理の回数を抑制する方法が開示される。ストレージ装置を制御する制御装置は、ストレージ装置に設定された論理ボリュームの第1論理アドレス領域に第1データを書き込むことを要求する書き込み要求信号(以下、書き込みコマンド)を受信する。制御装置は、書き込みコマンドに応じて、ストレージ装置に設定された物理ボリュームに第1データを格納する。その後、物理ボリュームに格納された第1データを消去することなく、論理ボリュームの第1論理アドレス領域の第1データを消去する。この処理は、例えば論理ボリュームの第1論理アドレス領域に格納された第1データを、第1データとは異なるデータで上書きすることを要求する書き込みコマンドを制御装置が受信した場合に生じる。この場合、制御装置は、論理ボリューム上においては、第1論理アドレス領域の第1データを第2データに更新する処理を行い、一方物理ボリューム上においては、第1データを消去することなく、物理ボリューム上の他のアドレス領域に当該第2データを書き込む。このように、物理ボリューム上においてデータの上書きがなされず、元のデータが残されたまま新しいデータを追加して格納される処理は、例えば追記型の重複排除技術が適用されたストレージシステムにおいて実行される。そしてこの処理の結果、第1データが、物理ボリューム上には存在するが論理ボリューム上には存在しない状態が生じる。この状態において物理ボリュームに対するガベージコレクションが実行される場合、当該ガベージコレクションよりも前に第1データと同一のデータが物理ボリュームから削除されたことを示す履歴情報の有無が参照される。第1データと同一のデータが物理ボリュームから削除されたことを示す履歴情報がストレージシステムに保持されている場合には、第1データを物理ボリュームから消去せずに保持する。履歴情報がストレージシステムに保持されている場合は、第1データについての消去処理と書き込み処理が繰り返して生じ得ると考えられる。そのため、第1データを物理ボリュームから消去せずに保持することによって、その後に第1データと同一のデータの書き込みを要求する書き込みコマンドが受信された場合に、重複排除技術によって第1データの再度の書き込み処理を省略することが可能となる。一方、履歴情報が保持されていない場合には、第1データを物理ボリュームから消去することによって、ストレージ装置の空き容量を確保することができる。
図1はストレージシステムの構成を示す図である。図1においてストレージシステム200は、情報処理装置100に接続される。ストレージシステム200は、制御装置300及びストレージ装置400を含む。
情報処理装置100は例えばホストサーバであり、ストレージシステム200にデータの書き込みコマンドを送信することにより、データをストレージ装置400に格納させる。情報処理装置100が認識し得るストレージ装置400のデータ格納領域を論理ボリュームと呼び、ストレージ装置400のうち情報処理装置100に対して割り当てられた物理的なデータ格納領域を物理ボリュームと呼ぶ。情報処理装置100は、書き込みコマンドを送信する際、書き込みの対象となるデータと、当該データの論理ボリュームにおけるアドレス(論理アドレス)を示す情報とをストレージシステム200へ送信する。
制御装置300は例えばストレージ装置400を制御するためのControl Module(CM)である。制御装置300は、情報処理装置100から書き込みコマンドを受信し、受信された書き込みコマンドに基づいてデータをストレージ装置400(物理ボリューム)に格納する。また制御装置300は、物理ボリュームにおいてデータが格納された領域を示す物理アドレスと論理アドレスとの対応関係を示すアドレス対応情報を生成して保持する。尚、図1においては制御装置300及びストレージ装置400がそれぞれ一つずつ図示されているが、ストレージシステム200が、複数の制御装置300及び複数のストレージ装置400を含むRedundant Array of Disks(RAID)を構成してもよい。
図2は、制御装置300が実行する重複排除処理について説明するための図である。上述のように、ストレージシステム200においては、情報処理装置100によって認識される論理ボリュームと、ストレージ装置400内の実際にデータが書き込まれる物理的なデータ格納領域である物理ボリュームは分離されている。例えば図2の(A)に示されるように、第1の状態において情報処理装置100が、第1論理アドレスと、書き込みの対象となるデータAを特定する書き込みコマンドをストレージシステム200に送信したとする。この場合、制御装置300は書き込みコマンドに基づき、データAをストレージ装置400の物理ボリュームの例えば第1物理アドレス領域に格納する。そして制御装置300は、第1論理アドレスと第1物理アドレスの対応関係を示すアドレス対応情報を管理テーブルに登録する。尚、データAが第1物理アドレス領域に格納された後に、例えばガベージコレクションによって第1物理アドレス領域とは異なる他の物理アドレスにデータAの格納位置が変更される場合がある。そのため、図中においては物理ボリュームにおいてデータAが格納される物理アドレスは示さないものとする。データAの物理アドレスが変更された場合は、管理テーブルに登録されたアドレス対応情報は更新される。
更に制御装置300は、データAを特定するための識別子として、例えばデータAのハッシュ値(ここでは「a」とする)を算出する。ハッシュ値「a」はデータAと対応付けて管理テーブルに登録される。更に、物理ボリュームに格納されたデータAが、論理ボリューム上において第1論理アドレスのデータA(一つ)に対応していることを示す参照数「1」が、管理テーブルに登録される。参照数の技術的意義については、追って詳細を説明することとする。
図2の(A)において第1の状態の後に、第2の状態においてストレージシステム200が更に、第2論理アドレスと、書き込みの対象となるデータAを特定する書き込みコマンドを受信したとする。この場合、制御装置300は、書き込みコマンドの対象データであるデータAと同一のデータが、既に物理ボリュームに格納されているかを判定する。具体的には、制御装置300は、書き込みコマンドの対象データであるデータAについてハッシュ値を算出する。データAについてのハッシュ値は「a」である。次に制御装置300は、算出されたハッシュ値「a」と同一のハッシュ値が管理テーブルに登録されているかを判定する。図2の(A)においては、第1の状態においてハッシュ値「a」が管理テーブルに登録されている。よって制御装置300は、データAと同一のデータが、既に物理ボリュームに格納されていることを認識することができる。この場合、制御装置300は、重複排除の機能に基づき、他の物理アドレスに新たにデータAを書き込む処理は行わない。そして、第1論理アドレス及び第2論理アドレスの両方が、物理ボリュームに格納されたデータAに対応することを示すよう、管理テーブルに登録されたアドレス対応情報を更新する。また、管理テーブルに登録されている参照数を「1」から「2」に変更する。この参照数の「2」は、物理ボリュームに格納されているデータAが、第1論理アドレスと第2論理アドレスの2つの論理アドレスのデータに対応していることを意味する。
図2の(B)を用いて、追記型の重複排除処理について説明する。図2の(B)における第1の状態は、図2の(A)における第1の状態と同じ状態を示す。すなわち、情報処理装置100が第1論理アドレスとデータAを特定する書き込みコマンドをストレージシステム200に送信し、制御装置300は、データAをストレージ装置400の物理ボリュームに格納する。そして、論理ボリュームと物理ボリュームとのアドレス対応関係を示すアドレス対応情報、データAのハッシュ値「a」及び参照数「1」が、管理テーブルに登録される。次に図2の(B)において第1の状態の後、第2の状態においてストレージシステム200が、更に第1論理アドレスと書き込みの対象データであるデータBを特定する書き込みコマンドを受信したとする。つまり当該書き込みコマンドは、第1の状態において書き込まれたデータAをデータBによって上書きすることを要求するコマンドである。この場合制御装置300は、まずデータBのハッシュ値(ここでは「b」とする)を算出し、ハッシュ値「b」が管理テーブルに登録されているかを判定する。図2の(B)においてはハッシュ値「b」は管理テーブルに登録されていないため、制御装置300はデータBが物理ボリュームに格納されていないことを認識できる。よって制御装置300はデータBを物理ボリュームに新規に格納する。ここで、論理ボリューム上ではデータAはデータBによって上書きされて消去されることになるが、物理ボリューム上ではデータAが格納された物理アドレス領域とは異なる他の物理アドレス領域にデータBが新規に書き込まれ、データAは物理ボリューム上に保持される。そして、物理ボリューム上に保持されたデータAが、論理ボリューム上の何れのデータにも対応していないことを示すために、参照数が「0」に更新される。尚、第2の状態において、データBの参照数は「1」となる。
図3は、参照数に基づくガベージコレクションについて説明するための図である。ガベージコレクションは、物理ボリューム上の空き容量を増加させるために実行される処理である。つまり物理ボリュームに格納されてはいるが、実際には参照されなくなったデータがガベージコレクションによって消去される。より詳細には、物理ボリュームに格納されているデータのうち、参照数が「0」となっているデータ、すなわち、論理ボリューム上の何れのデータにも対応していないデータが、ガベージコレクションの対象として制御装置300により選択される。そして例えば物理ボリュームの空き容量が所定値以下となった場合に、或いは定期的に、ガベージコレクションの対象として選択されたデータが物理ボリューム上から消去される。
図3に示される第1の状態及び第2の状態は、図2の(B)に示された第1の状態及び第2の状態と同じ状態を示し、データAの参照数は「0」、データBの参照数は「1」の状態である。図3において第2の状態の後、第3の状態にてガベージコレクションが実行される。第3の状態において制御装置300は、参照数が「0」となっているデータがあるかを判定する。ここでは第2の状態においてデータAの参照数が「0」として登録されている。よって制御装置300は、物理ボリュームに保持されているデータAをガベージコレクションにおいて消去する。これによって物理ボリュームの空き容量が確保される。尚、データAが物理ボリュームから消去されることに伴い、データAのハッシュ値「a」も管理テーブルから削除される。
図4は、ガベージコレクションによるデータの消去と、消去されたデータと同一のデータについての再書き込み処理が繰り返される場合の課題を説明するための図である。図4に示される第1の状態乃至第3の状態は、図3に示された第1の状態乃至第3の状態にそれぞれ等しいものであり、第3の状態においてガベージコレクションが実行され、物理ボリューム上のデータAが消去される。
第3の状態の後、第4の状態において第2論理アドレスへのデータAの書き込みコマンドが、情報処理装置100からストレージシステム200に入力される。この場合、制御装置300はデータAのハッシュ値「a」を算出し、ハッシュ値「a」が管理テーブルに登録されているかを判定する。上述のように第3の状態においてデータAが物理ボリュームから消去され、ハッシュ値「a」も管理テーブルから削除されている。そのため制御装置300は、データAが物理ボリュームに格納されていないことを認識する。そして制御装置300は、データAを物理ボリュームに新規に格納し、管理テーブルにはデータAについてのアドレス対応情報、データAのハッシュ値「a」、及び参照数「1」が登録される。
第4の状態の後、第5の状態において第2論理アドレスへのデータCの書き込みコマンドが、情報処理装置100からストレージシステム200に入力される。すなわち論理ボリューム上においては、第2論理アドレスにおいてデータAがデータCによって上書きされ、物理ボリューム上においてはデータAが維持されたまま、データCが他の物理アドレス領域に新規に格納される。また、データCについてのアドレス対応情報、データCのハッシュ値(ここでは「c」とする)、及び参照数「1」が管理テーブルに登録される。そして、データAの参照数は「0」に更新される。
第5の状態の後、第6の状態においてガベージコレクションが実行される。制御装置300は、管理テーブルにおいて参照数が「0」となっているデータがあるかを判定する。ここでは第5の状態で論理ボリューム上から消去されたデータAの参照数が「0」となっている。そこで制御装置300は、ガベージコレクションにおいてデータAを物理ボリューム上から消去する。
第6の状態の後、第7の状態において、第3論理アドレスへのデータAの書き込みコマンドが、情報処理装置100からストレージシステム200に入力される。データAは第6の状態において物理ボリューム上から消去されているため、制御装置300は物理ボリューム上の他のアドレス領域にデータAを新たに格納する。
このように図4においては、第3の状態においてガベージコレクションによってデータAが物理ボリューム上から消去され、その後第4の状態においてデータAが物理ボリュームに格納される。更に第6の状態においてガベージコレクションによってデータAが物理ボリューム上から消去され、その後第7の状態においてデータAが物理ボリュームに格納されている。言い換えればデータAの物理ボリュームにおける消去と格納が繰り返し実行されたことになる。このような、同一データについての消去と格納が繰り返し実行されることは、制御装置300の処理負荷を増加させることになる。また物理ボリュームのデータ格納領域の書き換え回数が増加することになる。ストレージ装置400が例えばフラッシュメモリで構成されるSolid State Drive(SSD)の場合、書き換え回数の増加によりストレージ装置400の性能劣化を招くこととなる。
このような課題を解決するための方法を図5を用いて説明する。図5は、管理テーブルとハッシュリンクを用いたガベージコレクションの制御方法を説明するための図である。
図5に示される第1の状態及び第2の状態は、図4における第1の状態及び第2の状態とそれぞれ同じ内容である。第3の状態においてガベージコレクションが実行され、参照数が「0」であるデータAが物理ボリュームから消去される。この際、消去されたデータAのハッシュ値である「a」が、ハッシュリンク328に登録される。ハッシュリンク328とは、消去されたデータに対応するハッシュ値を順に保存しておくバッファである。消去されたデータに対応するハッシュ値がハッシュリンク328に保持されているということは、過去に当該データがガベージコレクションによって物理ボリュームから消去された履歴がある、ということを意味する。そのため、本明細書においてはハッシュリンク328を「履歴情報保持部」とも呼ぶ。また履歴情報保持部に保持されるハッシュ値を、当該データが物理ボリュームから消去された履歴を示す「履歴情報」とも呼ぶ。
図5に示されるように、第3の状態において、ハッシュ値「a」がハッシュリンク328の例えば先頭の位置に登録される。ハッシュリンク328は、直近に消去されたデータに対応するハッシュ値が先頭の位置に登録され、最も古く消去されたデータのハッシュ値が最後尾に登録されるように制御される。ハッシュリンク328に登録可能なハッシュ値の数には上限値が設けられる。ハッシュリンク328に登録されるハッシュ値の数が上限値を超える場合、つまり登録されるハッシュ値の数がハッシュリンク328の容量を超える場合には、ハッシュリンク328の最後尾のハッシュ値が削除される。
図5における第4の状態は、図4における第4の状態と同一であり、第2論理アドレスへのデータAの書き込みコマンドが、情報処理装置100からストレージシステム200に入力される。この時点ではデータAは物理ボリュームに格納されていないため、制御装置300は、データAを物理ボリュームに新規に格納し、管理テーブルには、データAのアドレス対応情報、データAのハッシュ値「a」、及び参照数「1」が登録される。
図5における第5の状態は、図4における第5の状態と同一であり、第2論理アドレスへのデータCの書き込みコマンドが、情報処理装置100からストレージシステム200に入力される。物理ボリューム上においてはデータAが保持されたまま、データCが他の物理アドレス領域に格納され、データAに対応する参照数は「0」に更新される。
次に第6の状態においてガベージコレクションが実行される。ここで制御装置300は、消去されるデータの候補を選定するために、管理テーブルにおいて参照数が「0」となっているデータを選択する。この例においては第5の状態において参照数が「0」となったデータAが選択される。更に制御装置300は、ハッシュリンク328を参照する。ハッシュリンク328には、第3の状態において登録されたハッシュ値「a」が保持されている。ハッシュ値がハッシュリンク328に登録されているということは、そのハッシュ値に対応するデータが過去に削除されたことがあることを意味する。つまりハッシュ値「a」に対応するデータAについては、この後も格納及び消去が繰り返される可能性があると考えられる。そこで制御装置300は、参照数が「0」のデータであっても、そのデータに対応するハッシュ値がハッシュリンク328に登録されている場合には、当該データをガベージコレクションによる消去の対象とはしない。これにより、第6の状態においてデータAは物理ボリュームから消去されず、データAが物理ボリュームに保持される。
第6の状態の後、第7の状態において、第3論理アドレスへのデータAの書き込みコマンドが、情報処理装置100からストレージシステム200に入力される。上述されたように、データAは第6の状態において物理ボリューム上から消去されていない。そのため制御装置300は、データAの物理ボリュームへの格納は行わず、管理テーブルへのデータAのアドレス対応情報の登録と、データAの参照数の「0」から「1」への変更を行う。
このように本実施形態においては、データが物理ボリュームから消去された場合に、当該データが消去されたことを示す履歴情報、例えばハッシュ値が、履歴情報保持部、例えばハッシュリンク328に保持される。そしてガベージコレクションにおいては、参照数が「0」となったデータであっても、履歴情報保持部に履歴情報が保持されているデータは、ガベージコレクションによる消去の対象とはならない。そのため、当該データはガベージコレクションによって消去されずに物理ボリューム上に保持される。そしてその後、同一のデータについての書き込みコマンドが受信された場合に、物理ボリュームへのデータ書き込み処理が省略され、制御装置300のデータ書き込みに要する処理負荷及びストレージ装置400のデータ書き換え回数を抑制することが可能となる。また履歴情報保持部に保持され得る履歴情報の数には上限値が設けられているため、ストレージ装置400の空き容量を適切に維持することが可能となる。
図6は、履歴情報保持部の一例であるハッシュリンク328の制御方法を説明するための図である。図6の(A)に示されるように、データAがガベージコレクションによって消去された場合にはハッシュ値「a」は、ハッシュリンク328の先頭位置に登録される。その後、図6の(B)に示されるように、他のハッシュ値「b」がハッシュリンク328に登録される場合、ハッシュ値「b」がハッシュリンク328の先頭位置に登録され、ハッシュ値「a」はハッシュリンク328において後方の領域に移動する。このように新たにハッシュ値がハッシュリンク328に登録されるに従って、古いハッシュ値は順に下位の領域に移動する。ハッシュ値がハッシュリンク328に保持されている間は、ハッシュ値に対応するデータは、ガベージコレクションによる消去の対象とはならない。そのため、データは物理ボリュームに維持され、同一データに関して繰り返し消去及び書き込みが繰り返されるということを防止することができる。
図6の(C)に示されるように、ハッシュ値「a」がハッシュリンク328の最後尾にある場合であって、更に新たなハッシュ値がハッシュリンク328に追加された場合は、ハッシュ値「a」はハッシュリンク328から削除される。このように、直近に削除されてからの期間が他のデータに比べて長いデータに関しては、ハッシュ値がハッシュリンク328から削除されることにより、当該データはガベージコレクションによる消去の対象となる。その結果、物理ボリュームの空き容量を適切に確保することが可能となる。
また図6の(D)に示されるように、あるデータの参照数が「0」であり、かつ当該データのハッシュ値がハッシュリンク328に存在することにより当該データが消去されなかった場合には、当該データのハッシュ値がハッシュリンク328の先頭位置に移動される。これにより、参照数が「0」であるデータがハッシュリンク328の上方に移動され、一方、参照数が「0」でないデータのハッシュ値がハッシュリンク328の下方に移動される。そのため、参照数が「0」でないデータのハッシュ値を優先的にハッシュリンク328から削除し、参照数が「0」であるデータのハッシュ値をハッシュリンク328に残存させることができる。尚、参照数が「0」でないデータは、ハッシュリンク328にハッシュ値が残っていなくてもガベージコレクションによる消去の対象とはならない。
図7は、制御装置300のハードウェア構成を示す図である。制御装置300は、Channel Adaptor(CA)310と、プロセッサ320と、不揮発性メモリ330と、揮発性メモリ340と、Input Output Controller(IOC)350と、Expander(EXP)360とを有する。
CA310は、情報処理装置100に対するインターフェース回路であり、情報処理装置100から書き込みコマンドやデータを受信する。また、ストレージ装置400から読み出されたデータは、CA310を介して情報処理装置100に送信される。
プロセッサ320は、不揮発性メモリ330に格納されたコンピュータプログラムを揮発性メモリ340にロードして実行する。例えばプロセッサ320は、書き込みコマンドの受信に応じて、データのストレージ装置400への書き込み処理を実行する。プロセッサ320はハードウェアプロセッサであり、Central Processing Unit(CPU)、Micro Control Unit(MCU)、Micro Processing Unit(MPU)、Digital Signal Processor(DSP)の他、Field Programmable Gate Array(FPGA)やApplication Specific Integrated Circuit(ASIC)も適用可能である。
不揮発性メモリ330は、コンピュータで読み取り可能な記録媒体である。不揮発性メモリ330には、プロセッサ320によって実行されるコンピュータプログラム等が格納される。不揮発性メモリ330は、例えばRead Only Memory(ROM)、Mask Read Only Memory(マスクROM)、Programable Read Only Memory(PROM)、フラッシュメモリ、Magnetoresistive Random Access Memory(MRAM)、Resistive Random Access Memory(ReRAM)、Ferroelectric Random Access Memory(FeRAM)等である。コンピュータプログラムは、不揮発性メモリ330以外の記憶媒体であって、コンピュータで読み取り可能な記録媒体(ただし、搬送波は除く)に記録されることもできる。また、コンピュータプログラムが記録されたDigital Versatile Disc(DVD)、Compact Disc Read Only Memory(CD−ROM)などの可搬型記録媒体を流通させることもできる。また、コンピュータプログラムは、ネットワークを介して送信され得る。
揮発性メモリ340は、コンピュータで読み取り可能な記録媒体である。揮発性メモリ340には、不揮発性メモリ330に格納されているコンピュータプログラムがロードされる。また揮発性メモリ340には、プロセッサ320による演算処理に使用されるデータや演算処理の結果であるデータ等が保持される。揮発性メモリ340は、例えばStatic Random Access Memory(SRAM)やDynamic Random Access Memory(DRAM)等である。
IOC350は制御装置300とストレージ装置400との間で行われるデータの送受信を制御する。EXP360は、制御装置300とストレージ装置400との間で行われるデータの送受信を中継する。
図8は、制御装置300のプロセッサ320の機能ブロックを示す図である。制御装置300のプロセッサ320は、例えば不揮発性メモリ330に格納されたコンピュータプログラムを実行することにより、コマンド受信部321、ハッシュ値算出部322、ストレージ装置制御部323、ガベージコレクション実行部324、管理テーブル制御部325、ハッシュリンク制御部326として機能する。更に制御装置300のプロセッサ320は管理テーブル327、ハッシュリンク328を保持する。尚、管理テーブル327及びハッシュリンク328は、プロセッサ320以外のデバイス、例えば揮発性メモリ340に保持されてもよい。
コマンド受信部321は、例えば情報処理装置100から書き込みコマンドを受信する。ハッシュ値算出部322は、コマンド受信部321が書き込みコマンドを受信した場合、書き込み要求の対象となるデータのハッシュ値を算出する。ストレージ装置制御部323は、ストレージ装置400へのデータの書き込みを実行する。尚、重複排除の処理もストレージ装置制御部323によって実行される。ガベージコレクション実行部324は、ストレージ装置400のガベージコレクションを実行する。ガベージコレクション実行部324は管理テーブル327に保持される参照数及びハッシュリンク328に保持されるハッシュ値に基づき、ガベージコレクションによって物理ボリュームから削除されるデータの選定や、ガベージコレクションの実行を制御する。管理テーブル制御部325は、管理テーブル327の内容を管理し、ハッシュ値の登録や参照数の更新等を行う。また管理テーブル制御部325は論理アドレスと物理アドレスのアドレス対応情報も管理テーブル327に登録する。ハッシュリンク制御部326は、ハッシュ値のハッシュリンク328への登録やハッシュリンク328からの削除、ハッシュリンク328内でのハッシュ値の位置変更等を制御する。
図9は、制御装置300のプロセッサ320によって実行される処理のフローチャートであり、主に情報処理装置100から書き込みコマンドを受信した際に実行される処理について説明するための図である。処理フローは処理S50により開始され、処理S51においてコマンド受信部321が、情報処理装置100から送信された書き込みコマンドを受信する。処理S52においてハッシュ値算出部322が、書き込みコマンドの対象データについてハッシュ値を算出する。処理S53においてストレージ装置制御部323が、算出されたハッシュ値と同一のハッシュ値が管理テーブル327に登録されているかを判定することにより、書き込みの対象データと同一のデータがストレージ装置400に格納されているかを判定する。同一のデータがストレージ装置400に格納されていると判定された場合(処理S53のYes)は、処理フローは処理S55へ進み、同一のデータがストレージ装置400に格納されていると判定されない場合(処理S53のNo)は、処理フローは処理S54へ進む。
処理S54においてストレージ装置制御部323は、データをストレージ装置400の物理ボリュームに格納する。処理S55において管理テーブル制御部325は、管理テーブル327を更新する。具体的には、処理フローが処理S53から処理S54に進んだ場合は、書き込みコマンドにて指定された論理アドレスとデータが書き込まれた物理アドレスとの対応関係を示すアドレス対応情報と、データのハッシュ値と、参照数「1」とが、新たに管理テーブル327に登録される。処理フローが処理S53から処理S55に進んだ場合は、書き込みコマンドにて指定された論理アドレスと、書き込みが要求されたデータと同一のデータが格納されている物理アドレスとの対応関係を示すアドレス対応情報を管理テーブル327に登録し、参照数を「1」増加させる。その後、処理フローは処理S56にて終了する。
図10は、制御装置300のプロセッサ320によって実行される処理のフローチャートであり、主にガベージコレクションに関する処理について説明するための図である。処理フローは処理S60により開始され、処理S61においてガベージコレクション実行部324が、物理ボリュームに格納されているデータのうち、未選択のデータを選択する。処理S62においてガベージコレクション実行部324が、管理テーブル327を参照することにより、選択されたデータの参照数が「0」であるかを判定する。参照数が「0」であると判定された場合(処理S62のYes)は、処理フローは処理S63へ進み、参照数が「0」であると判定されない場合(処理S62のNo)は、処理フローは処理S61へ戻り、他の未選択データが選択される。
処理S63においてガベージコレクション実行部324が、選択されたデータのハッシュ値と同一のハッシュ値がハッシュリンク328に保持されているかを判定する。同一のハッシュ値がハッシュリンク328に保持されていると判定された場合(処理S63のYes)は、処理フローは処理S64へ進み、同一のハッシュ値がハッシュリンク328に保持されていると判定されない場合(処理S63のNo)は、処理フローは処理S68へ進む。
処理フローが処理S68へ進んだ場合、処理S68においてハッシュリンク制御部326が、選択されたデータのハッシュ値を、ハッシュリンク328の先頭の位置に登録する。処理S69においてハッシュリンク制御部326が、ハッシュリンク328に保持されているハッシュ値の数が設定された上限値を超えたかを判定する。ハッシュ値の数が設定された上限値を超えたと判定された場合(処理S69のYes)は、処理フローは処理S70へ進み、ハッシュ値の数が設定された上限値を超えたと判定されない場合(処理S69のNo)は、処理フローは処理S71へ進む。処理S70においてハッシュリンク制御部326は、ハッシュリンク328の最後尾に登録されているハッシュ値を、ハッシュリンク328から削除する。処理S71においてガベージコレクション実行部324は、選択されたデータを、ガベージコレクションによって消去されるデータとして決定する。その後、処理フローは処理S66へ進む。
一方、処理フローが処理S63から処理S64へ進んだ場合、処理S64においてハッシュリンク制御部326が、選択されたデータのハッシュ値と同一のハッシュ値を、ハッシュリンク328の先頭の位置へ移動させる。処理S65においてガベージコレクション実行部324が、物理ボリュームの空き容量が閾値以下であるかを判定する。空き容量が閾値以下であると判定された場合(処理S65のYes)は、処理フローは処理S71へ進み、選択されたデータはガベージコレクションによって消去されるデータとして決定される。空き容量が閾値以下であると判定されない場合(処理S65のNo)は、処理フローは処理S66へ進む。処理S65を行うことにより、物理ボリュームの空き容量が特に少ない場合には、過去に削除されたことを示す履歴情報が履歴情報保持部に保持されていたとしても、参照数が「0」となっているデータを物理ボリュームから消去することができる。これにより、物理ボリュームの空き容量を確保することができる。
処理S66においてガベージコレクション実行部324が、物理ボリュームに格納されている全てのデータが選択されたか否かを判定する。全てのデータが選択されたと判定された場合(処理S66のYes)は、処理フローは処理S67へ進み、全てのデータが選択されたと判定されない場合(処理S66のNo)は、処理フローは処理S61へ戻る。
処理S67においてガベージコレクション実行部324は、ガベージコレクションを実行することにより、処理S71において消去されるデータとして決定されたデータを物理ボリュームから消去する。その後、処理フローは処理S72において終了する。
このように、本願の実施形態により開示された方法においては、ガベージコレクションによって消去されたデータのハッシュ値が、ハッシュリンク328に登録される。そして物理ボリュームに格納されたデータであって、論理ボリュームの何れのデータにも対応しないデータをガベージコレクションにより消去する際には、当該データのハッシュ値がハッシュリンク328に保持されているかが判定される。ハッシュ値がハッシュリンク328に保持されている場合には、当該データはガベージコレクションによっては消去されず、物理ボリュームに保持される。そのため、その後に同一データの書き込み要求が有った際には、重複排除処理によってデータの再書き込み処理が省略され、制御装置300の処理負荷が軽減される。
ここまで本願に実施形態について説明したが、本願によって開示される技術内容は、実施形態に開示された内容に限定されるものではない。例えば実施形態においては物理ボリュームのデータを消去する処理としてガベージコレクションを例に挙げて説明したが、データを消去する消去処理であればガベージコレクションには限定されない。また、データを特定するための識別子としてハッシュ値を例に挙げて説明したが、データを個別に識別するための方法であればハッシュ値には限定されない。また履歴情報保持部としてハッシュリンク328を例に挙げて説明したが、所定数の履歴情報を保持するものであればハッシュリンク328には限定されない。
開示の実施例に基づき、更に以下の付記を開示する。
(付記1)
第1データを、ストレージ装置に設定された論理ボリュームの第1論理アドレス領域に書き込むことを要求する第1要求信号を受信し、
前記第1要求信号に応じて、前記第1データを、前記ストレージ装置に設定された物理ボリュームに格納し、
前記第1要求信号の受信の後に、前記物理ボリュームに格納された前記第1データを消去することなく、前記論理ボリュームの前記第1論理アドレス領域の前記第1データを消去し、
前記物理ボリュームに対する第1消去処理を実行する際、前記第1消去処理よりも前に前記第1データと同一の第2データが前記物理ボリュームから削除されたことを示す履歴情報が保持されている場合には、前記第1データを前記物理ボリュームに保持し、前記履歴情報が保持されていない場合には、前記第1データを前記物理ボリュームから消去する
ことを特徴とする制御装置。
(付記2)
前記第1データを前記物理ボリュームから消去することなく前記論理ボリュームの前記第1論理アドレス領域から消去する処理は、前記第1要求信号の受信の後に、前記論理ボリュームの前記第1論理アドレス領域の前記第1データを、前記第1データとは異なる第3データに書き換えることを要求する第2要求信号に応じて、前記物理ボリュームに格納された前記第1データを消去することなく、前記第3データを前記物理ボリュームの前記第1論理アドレス領域に格納する処理である
ことを特徴とする付記1に記載の制御装置。
(付記3)
前記履歴情報に基づき前記第1データを前記物理ボリュームに保持させた後、前記第1データと同一の第4データを、前記論理ボリュームの第2論理アドレス領域に書き込むことを要求する第3要求信号を受信し、
前記第3要求信号に応じて、前記第1データが前記物理ボリュームに保持されている場合には、前記第4データを前記物理ボリュームに格納する処理を行わず、前記物理ボリュームに保持された前記第1データと前記第2論理アドレス領域との関係を示すアドレス対応情報を生成する
ことを特徴とする付記1又は2に記載の制御装置。
(付記4)
前記第1消去処理よりも前に、第2消去処理を実行し、
前記第2消去処理において、前記第2データが前記物理ボリュームに格納されかつ前記論理ボリュームに格納されていない場合に、前記第2データを前記物理ボリュームから消去し、
前記第2データが前記物理ボリュームから消去されたことに基づき、前記履歴情報を生成する
ことを特徴とする付記1乃至3何れか一つに記載の制御装置。
(付記5)
前記履歴情報を履歴情報保持部に保持させ、
前記履歴情報保持部の容量に基づいて前記履歴情報を保持するか削除するかを判定する
ことを特徴とする付記4に記載の制御装置。
(付記6)
前記第2消去処理において、前記履歴情報を前記履歴情報保持部の先頭位置に保持させ、
他のデータについての他の履歴情報を前記履歴情報保持部に保持させる際には、前記履歴情報保持部における前記履歴情報の保持位置を後方に移動させ、
前記履歴情報が前記履歴情報保持部の最後尾にある場合に、前記容量に基づいて前記履歴情報を前記履歴情報保持部から削除する
ことを特徴とする付記5に記載の制御装置。
(付記7)
前記第1消去処理において前記履歴情報が前記履歴情報保持部に保持されている場合は、前記履歴情報保持部における前記履歴情報の保持位置を前記先頭位置に移動させる
ことを特徴とする付記6に記載の制御装置。
(付記8)
前記履歴情報は、前記物理ボリュームから削除された前記第2データの第2ハッシュ値であり、
前記第1消去処理において、前記第1データの第1ハッシュ値と同一の前記第2ハッシュ値が前記履歴情報保持部に保持されている場合には、前記第1データの前記物理ボリュームからの消去を行わない
ことを特徴とする付記1乃至7何れか一つに記載の制御装置。
(付記9)
ストレージ装置と、
前記ストレージ装置を制御する制御装置と
を含むストレージシステムであって、前記制御装置は、
第1データを、前記ストレージ装置に設定された論理ボリュームの第1論理アドレス領域に書き込むことを要求する第1要求信号を受信し、
前記第1要求信号に応じて、前記第1データを、前記ストレージ装置に設定された物理ボリュームに格納し、
前記第1要求信号の受信の後に、前記物理ボリュームに格納された前記第1データを消去することなく、前記論理ボリュームの前記第1論理アドレス領域の前記第1データを消去し、
前記物理ボリュームに対する第1消去処理を実行する際、前記第1消去処理よりも前に前記第1データと同一の第2データが前記物理ボリュームから削除されたことを示す履歴情報が保持されている場合には、前記第1データを前記物理ボリュームに保持し、前記履歴情報が保持されていない場合には、前記第1データを前記物理ボリュームから消去する
ことを特徴とするストレージシステム。
(付記10)
前記第1データを前記物理ボリュームから消去することなく前記論理ボリュームの前記第1論理アドレス領域から消去する処理は、前記第1要求信号の受信の後に、前記論理ボリュームの前記第1論理アドレス領域の前記第1データを、前記第1データとは異なる第3データに書き換えることを要求する第2要求信号に応じて、前記物理ボリュームに格納された前記第1データを消去することなく、前記第3データを前記物理ボリュームの前記第1論理アドレス領域に格納する処理である
ことを特徴とする付記9に記載のストレージシステム。
(付記11)
前記制御装置は、
前記履歴情報に基づき前記第1データを前記物理ボリュームに保持させた後、前記第1データと同一の第4データを、前記論理ボリュームの第2論理アドレス領域に書き込むことを要求する第3要求信号を受信し、
前記第3要求信号に応じて、前記第1データが前記物理ボリュームに保持されている場合には、前記第4データを前記物理ボリュームに格納する処理を行わず、前記物理ボリュームに保持された前記第1データと前記第2論理アドレス領域との関係を示すアドレス対応情報を生成する
ことを特徴とする付記9又は10に記載のストレージシステム。
(付記12)
前記制御装置は、
前記第1消去処理よりも前に、第2消去処理を実行し、
前記第2消去処理において、前記第2データが前記物理ボリュームに格納されかつ前記論理ボリュームに格納されていない場合に、前記第2データを前記物理ボリュームから消去し、
前記第2データが前記物理ボリュームから消去されたことに基づき、前記履歴情報を生成する
ことを特徴とする付記9乃至11何れか一つに記載のストレージシステム。
(付記13)
前記制御装置は、
前記履歴情報を履歴情報保持部に保持させ、
前記履歴情報保持部の容量に基づいて前記履歴情報を保持するか削除するかを判定する
ことを特徴とする付記12に記載のストレージシステム。
(付記14)
前記制御装置は、
前記第2消去処理において、前記履歴情報を前記履歴情報保持部の先頭位置に保持させ、
他のデータについての他の履歴情報を前記履歴情報保持部に保持させる際には、前記履歴情報保持部における前記履歴情報の保持位置を後方に移動させ、
前記履歴情報が前記履歴情報保持部の最後尾にある場合に、前記容量に基づいて前記履歴情報を前記履歴情報保持部から削除する
ことを特徴とする付記13に記載のストレージシステム。
(付記15)
前記制御装置は、前記第1消去処理において前記履歴情報が前記履歴情報保持部に保持されている場合は、前記履歴情報保持部における前記履歴情報の保持位置を前記先頭位置に移動させる
ことを特徴とする付記14に記載のストレージシステム。
(付記16)
前記履歴情報は、前記物理ボリュームから削除された前記第2データの第2ハッシュ値であり、
前記制御装置は、前記第1消去処理において、前記第1データの第1ハッシュ値と同一の前記第2ハッシュ値が前記履歴情報保持部に保持されている場合には、前記第1データの前記物理ボリュームからの消去を行わない
ことを特徴とする付記9乃至15何れか一つに記載のストレージシステム。
(付記17)
ストレージ装置を制御する制御方法であって、
第1データを、前記ストレージ装置に設定された論理ボリュームの第1論理アドレス領域に書き込むことを要求する第1要求信号を受信し、
前記第1要求信号に応じて、前記第1データを、前記ストレージ装置に設定された物理ボリュームに格納し、
前記第1要求信号の受信の後に、前記物理ボリュームに格納された前記第1データを消去することなく、前記論理ボリュームの前記第1論理アドレス領域の前記第1データを消去し、
前記物理ボリュームに対する第1消去処理を実行する際、前記第1消去処理よりも前に前記第1データと同一の第2データが前記物理ボリュームから削除されたことを示す履歴情報が保持されている場合には、前記第1データを前記物理ボリュームに保持し、前記履歴情報が保持されていない場合には、前記第1データを前記物理ボリュームから消去する
ことを特徴とする制御方法。
(付記18)
前記第1データを前記物理ボリュームから消去することなく前記論理ボリュームの前記第1論理アドレス領域から消去する処理は、前記第1要求信号の受信の後に、前記論理ボリュームの前記第1論理アドレス領域の前記第1データを、前記第1データとは異なる第3データに書き換えることを要求する第2要求信号に応じて、前記物理ボリュームに格納された前記第1データを消去することなく、前記第3データを前記物理ボリュームの前記第1論理アドレス領域に格納する処理である
ことを特徴とする付記17に記載の制御方法。
(付記19)
前記履歴情報に基づき前記第1データを前記物理ボリュームに保持した後、前記第1データと同一の第4データを、前記論理ボリュームの第2論理アドレス領域に書き込むことを要求する第3要求信号を受信し、
前記第3要求信号に応じて、前記第1データが前記物理ボリュームに保持されている場合には、前記第4データを前記物理ボリュームに格納する処理を行わず、前記物理ボリュームに保持された前記第1データと前記第2論理アドレス領域との関係を示すアドレス対応情報を生成する
ことを特徴とする付記17又は18に記載の制御方法。
(付記20)
前記第1消去処理よりも前に、第2消去処理を実行し、
前記第2消去処理において、前記第2データが前記物理ボリュームに格納されかつ前記論理ボリュームに格納されていない場合に、前記第2データを前記物理ボリュームから消去し、
前記第2データが前記物理ボリュームから消去されたことに基づき、前記履歴情報を生成する
ことを特徴とする付記17乃至19何れか一つに記載の制御方法。
100 情報処理装置
200 ストレージシステム
300 制御装置
400 ストレージ装置
310 CA
320 プロセッサ
330 不揮発性メモリ
340 揮発性メモリ
350 IOC
360 EXP
321 コマンド受信部
322 ハッシュ値算出部
323 ストレージ装置制御部
324 ガベージコレクション実行部
325 管理テーブル制御部
326 ハッシュリンク制御部
327 管理テーブル
328 ハッシュリンク

Claims (10)

  1. 第1データを、ストレージ装置に設定された論理ボリュームの第1論理アドレス領域に書き込むことを要求する第1要求信号を受信し、
    前記第1要求信号に応じて、前記第1データを、前記ストレージ装置に設定された物理ボリュームに格納し、
    前記第1要求信号の受信の後に、前記物理ボリュームに格納された前記第1データを消去することなく、前記論理ボリュームの前記第1論理アドレス領域の前記第1データを消去し、
    前記物理ボリュームに対する第1消去処理を実行する際、前記第1消去処理よりも前に前記第1データと同一の第2データが前記物理ボリュームから削除されたことを示す履歴情報が保持されている場合には、前記第1データを前記物理ボリュームに保持し、前記履歴情報が保持されていない場合には、前記第1データを前記物理ボリュームから消去する
    ことを特徴とする制御装置。
  2. 前記第1データを前記物理ボリュームから消去することなく前記論理ボリュームの前記第1論理アドレス領域から消去する処理は、前記第1要求信号の受信の後に、前記論理ボリュームの前記第1論理アドレス領域の前記第1データを、前記第1データとは異なる第3データに書き換えることを要求する第2要求信号に応じて、前記物理ボリュームに格納された前記第1データを消去することなく、前記第3データを前記物理ボリュームの前記第1論理アドレス領域に格納する処理である
    ことを特徴とする請求項1に記載の制御装置。
  3. 前記履歴情報に基づき前記第1データを前記物理ボリュームに保持させた後、前記第1データと同一の第4データを、前記論理ボリュームの第2論理アドレス領域に書き込むことを要求する第3要求信号を受信し、
    前記第3要求信号に応じて、前記第1データが前記物理ボリュームに保持されている場合には、前記第4データを前記物理ボリュームに格納する処理を行わず、前記物理ボリュームに保持された前記第1データと前記第2論理アドレス領域との関係を示すアドレス対応情報を生成する
    ことを特徴とする請求項1又は2に記載の制御装置。
  4. 前記第1消去処理よりも前に、第2消去処理を実行し、
    前記第2消去処理において、前記第2データが前記物理ボリュームに格納されかつ前記論理ボリュームに格納されていない場合に、前記第2データを前記物理ボリュームから消去し、
    前記第2データが前記物理ボリュームから消去されたことに基づき、前記履歴情報を生成する
    ことを特徴とする請求項1乃至3何れか一項に記載の制御装置。
  5. 前記履歴情報を履歴情報保持部に保持させ、
    前記履歴情報保持部の容量に基づいて前記履歴情報を保持するか削除するかを判定する
    ことを特徴とする請求項4に記載の制御装置。
  6. 前記第2消去処理において、前記履歴情報を前記履歴情報保持部の先頭位置に保持させ、
    他のデータについての他の履歴情報を前記履歴情報保持部に保持させる際には、前記履歴情報保持部における前記履歴情報の保持位置を後方に移動させ、
    前記履歴情報が前記履歴情報保持部の最後尾にある場合に、前記容量に基づいて前記履歴情報を前記履歴情報保持部から削除する
    ことを特徴とする請求項5に記載の制御装置。
  7. 前記第1消去処理において前記履歴情報が前記履歴情報保持部に保持されている場合は、前記履歴情報保持部における前記履歴情報の保持位置を前記先頭位置に移動させる
    ことを特徴とする請求項6に記載の制御装置。
  8. 前記履歴情報は、前記物理ボリュームから削除された前記第2データの第2ハッシュ値であり、
    前記第1消去処理において、前記第1データの第1ハッシュ値と同一の前記第2ハッシュ値が前記履歴情報保持部に保持されている場合には、前記第1データの前記物理ボリュームからの消去を行わない
    ことを特徴とする請求項1乃至7何れか一項に記載の制御装置。
  9. ストレージ装置と、
    前記ストレージ装置を制御する制御装置と
    を含むストレージシステムであって、前記制御装置は、
    第1データを、前記ストレージ装置に設定された論理ボリュームの第1論理アドレス領域に書き込むことを要求する第1要求信号を受信し、
    前記第1要求信号に応じて、前記第1データを、前記ストレージ装置に設定された物理ボリュームに格納し、
    前記第1要求信号の受信の後に、前記物理ボリュームに格納された前記第1データを消去することなく、前記論理ボリュームの前記第1論理アドレス領域の前記第1データを消去し、
    前記物理ボリュームに対する第1消去処理を実行する際、前記第1消去処理よりも前に前記第1データと同一の第2データが前記物理ボリュームから削除されたことを示す履歴情報が保持されている場合には、前記第1データを前記物理ボリュームに保持し、前記履歴情報が保持されていない場合には、前記第1データを前記物理ボリュームから消去する
    ことを特徴とするストレージシステム。
  10. ストレージ装置を制御する制御方法であって、
    第1データを、前記ストレージ装置に設定された論理ボリュームの第1論理アドレス領域に書き込むことを要求する第1要求信号を受信し、
    前記第1要求信号に応じて、前記第1データを、前記ストレージ装置に設定された物理ボリュームに格納し、
    前記第1要求信号の受信の後に、前記物理ボリュームに格納された前記第1データを消去することなく、前記論理ボリュームの前記第1論理アドレス領域の前記第1データを消去し、
    前記物理ボリュームに対する第1消去処理を実行する際、前記第1消去処理よりも前に前記第1データと同一の第2データが前記物理ボリュームから削除されたことを示す履歴情報が保持されている場合には、前記第1データを前記物理ボリュームに保持し、前記履歴情報が保持されていない場合には、前記第1データを前記物理ボリュームから消去する
    ことを特徴とする制御方法。
JP2017244539A 2017-12-20 2017-12-20 ストレージシステム、制御装置及び制御方法 Active JP6988445B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2017244539A JP6988445B2 (ja) 2017-12-20 2017-12-20 ストレージシステム、制御装置及び制御方法
US16/216,244 US10866759B2 (en) 2017-12-20 2018-12-11 Deduplication storage system having garbage collection control method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017244539A JP6988445B2 (ja) 2017-12-20 2017-12-20 ストレージシステム、制御装置及び制御方法

Publications (2)

Publication Number Publication Date
JP2019113899A true JP2019113899A (ja) 2019-07-11
JP6988445B2 JP6988445B2 (ja) 2022-01-05

Family

ID=66816066

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017244539A Active JP6988445B2 (ja) 2017-12-20 2017-12-20 ストレージシステム、制御装置及び制御方法

Country Status (2)

Country Link
US (1) US10866759B2 (ja)
JP (1) JP6988445B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020144601A (ja) * 2019-03-06 2020-09-10 株式会社日立製作所 ストレージ装置及びストレージ装置のデータ消去方法
JP7387679B2 (ja) * 2021-07-12 2023-11-28 株式会社日立製作所 バックアップシステム及び方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160283372A1 (en) * 2015-03-26 2016-09-29 Pure Storage, Inc. Aggressive data deduplication using lazy garbage collection
US20170017571A1 (en) * 2015-07-17 2017-01-19 Samsung Electronics Co., Ltd. Method and apparatus fori n-line deduplication in storage devices
US20170123678A1 (en) * 2015-11-04 2017-05-04 HGST Netherlands B.V. Garbage Collection for Reference Sets in Flash Storage Systems
JP2017219913A (ja) * 2016-06-03 2017-12-14 富士通株式会社 ストレージ制御装置、ストレージシステムおよびストレージ制御プログラム

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5088036A (en) * 1989-01-17 1992-02-11 Digital Equipment Corporation Real time, concurrent garbage collection system and method
US6964039B2 (en) * 2000-12-13 2005-11-08 Esmertec Ag Method to create optimized machine code through combined verification and translation of JAVA™ bytecode
DE102007011570A1 (de) * 2007-03-08 2008-09-11 Fleischmann, Wilhelm, Dr.med. Vorrichtung zum Dehnen der Haut
US8108447B2 (en) 2010-03-11 2012-01-31 Symantec Corporation Systems and methods for garbage collection in deduplicated data systems
US9110936B2 (en) * 2010-12-28 2015-08-18 Microsoft Technology Licensing, Llc Using index partitioning and reconciliation for data deduplication
JP2016526717A (ja) 2013-06-12 2016-09-05 エグザブロックス・コーポレーション ハイブリッドガベージコレクション
US20150006475A1 (en) * 2013-06-26 2015-01-01 Katherine H. Guo Data deduplication in a file system
US20180107404A1 (en) * 2015-11-02 2018-04-19 StorReduce Garbage collection system and process

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160283372A1 (en) * 2015-03-26 2016-09-29 Pure Storage, Inc. Aggressive data deduplication using lazy garbage collection
US20170017571A1 (en) * 2015-07-17 2017-01-19 Samsung Electronics Co., Ltd. Method and apparatus fori n-line deduplication in storage devices
US20170123678A1 (en) * 2015-11-04 2017-05-04 HGST Netherlands B.V. Garbage Collection for Reference Sets in Flash Storage Systems
JP2017219913A (ja) * 2016-06-03 2017-12-14 富士通株式会社 ストレージ制御装置、ストレージシステムおよびストレージ制御プログラム

Also Published As

Publication number Publication date
US20190187925A1 (en) 2019-06-20
JP6988445B2 (ja) 2022-01-05
US10866759B2 (en) 2020-12-15

Similar Documents

Publication Publication Date Title
US10649898B2 (en) Memory system, memory controller for memory system, operation method of memory controller, and operation method of user device including memory device
US8521949B2 (en) Data deleting method and apparatus
KR102170539B1 (ko) 저장 장치에 의해 데이터를 저장하기 위한 방법 및 저장 장치
US9666244B2 (en) Dividing a storage procedure
US7971022B2 (en) Apparatus and method of processing data of non-volatile memory using transaction block
US20160342476A1 (en) Solid state drive operations
JP6034183B2 (ja) 半導体記憶装置
US8151068B2 (en) Data copy management for faster reads
US20140219041A1 (en) Storage device and data processing method thereof
US20140325168A1 (en) Management of stored data based on corresponding attribute data
JP6988445B2 (ja) ストレージシステム、制御装置及び制御方法
US11397530B2 (en) Techniques for prolonging lifespan of storage drives
KR101026634B1 (ko) 하이브리드 플래시 메모리의 데이터 저장 방법
JP2009116465A (ja) 記憶装置及びメモリ制御方法
US20170269868A1 (en) Information processing apparatus, storage system, computer-readable recording medium, and information processing method
KR101676175B1 (ko) 전원 손실 이후 데이터 손실을 방지하기 위한 메모리 저장 장치 및 방법
US20150212949A1 (en) Storage control device and storage control method
JP2011227802A (ja) データ記録装置
KR101643278B1 (ko) 데이터베이스 시스템에서 스토리지 서버 관리 방법, 장치 및 컴퓨터 판독가능 매체에 저장된 컴퓨터-프로그램
CN108509295B (zh) 存储器系统的操作方法
JP2017228172A (ja) 情報処理システム
JP2010003150A (ja) メモリコントローラおよびフラッシュメモリのデータ管理方法
KR101834082B1 (ko) 다중 ssd 시스템 관리 장치 및 방법
KR20210039185A (ko) 메모리 시스템에서 멀티 스트림 동작을 제공하는 방법 및 장치
WO2014203316A1 (ja) 情報処理装置、制御回路、制御プログラム、及び制御方法

Legal Events

Date Code Title Description
RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20180528

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200911

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210713

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20210714

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210823

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20211102

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20211115

R150 Certificate of patent or registration of utility model

Ref document number: 6988445

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150