JP6516931B2 - 計算機システムおよびデータ格納方法 - Google Patents

計算機システムおよびデータ格納方法 Download PDF

Info

Publication number
JP6516931B2
JP6516931B2 JP2018530248A JP2018530248A JP6516931B2 JP 6516931 B2 JP6516931 B2 JP 6516931B2 JP 2018530248 A JP2018530248 A JP 2018530248A JP 2018530248 A JP2018530248 A JP 2018530248A JP 6516931 B2 JP6516931 B2 JP 6516931B2
Authority
JP
Japan
Prior art keywords
area
data
logical
address
identification information
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.)
Active
Application number
JP2018530248A
Other languages
English (en)
Other versions
JPWO2018020593A1 (ja
Inventor
真理 井上
真理 井上
竹内 久治
久治 竹内
俊哉 関
俊哉 関
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Publication of JPWO2018020593A1 publication Critical patent/JPWO2018020593A1/ja
Application granted granted Critical
Publication of JP6516931B2 publication Critical patent/JP6516931B2/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/0662Virtualisation aspects
    • G06F3/0665Virtualisation aspects at area level, e.g. provisioning of virtual or logical volumes
    • 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/061Improving I/O performance
    • G06F3/0613Improving I/O performance in relation to throughput
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • 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/0614Improving the reliability of storage systems
    • 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/0629Configuration or reconfiguration of storage systems
    • G06F3/0631Configuration or reconfiguration of storage systems by allocating resources to storage systems
    • 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/0638Organizing or formatting or addressing of data
    • G06F3/0644Management of space entities, e.g. partitions, extents, pools
    • 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/0647Migration mechanisms
    • 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/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • 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)

Description

本発明は、計算機システムに関する。
データの重複排除の方式として、ポストプロセス(PSP)とインラインプロセス(ILP)の二つが知られている。ポストプロセス方式は、データの重複排除をホストI/Oと非同期に実施するため、ライト性能への影響が小さい。しかし、ポストプロセス方式は、一度データをディスクに格納し、その後データ量削減を実施するので、一時領域のディスク容量が必要となる。一方でインラインプロセス方式は、ホストI/O契機でデータの重複排除を実施するため、ポストプロセス方式のようにデータを一時領域へ格納することが不要である。
国際公開第2014/069617号
インラインプロセス方式が、重複排除済みのデータに対して更新ライト要求を受領した場合、そのデータを重複排除の対象外にする処理が必要となる。この処理の負荷が大きいことから、インラインプロセス方式のスループット性能は、ポストプロセス方式のスループット性能よりも低くなる。
上記課題を解決するために、本発明の一態様である計算機システムは、メモリと、前記メモリに接続されるプロセッサと、を備える。前記プロセッサは、第1論理領域がデータ記憶領域内の物理領域に関連付けられておらず、且つ前記データ記憶領域に格納されていない第1データを前記第1論理領域へ書き込むことを要求する第1ライト要求を受信した場合、前記第1データに基づく第1識別情報を算出し、前記データ記憶領域内の第1物理領域へ前記第1データを書き込み、前記第1論理領域のアドレスと前記第1物理領域のアドレスと前記第1識別情報を示す第1現識別情報との関連付けを変換情報へ登録し、前記第1識別情報と前記第1論理領域のアドレスとの関連付けを重複情報へ登録し、前記プロセッサは、前記第1ライト要求の後、第2論理領域が前記データ記憶領域内の物理領域に関連付けられておらず、且つ前記第1データを前記第2論理領域へ書き込むことを要求する第2ライト要求を受信した場合、前記第1データに基づく第1識別情報を算出し、前記第2論理領域のアドレスと前記第1物理領域のアドレスと前記第1識別情報を示す第2現識別情報との関連付けを前記変換情報へ登録し、前記第1識別情報と前記第2論理領域のアドレスとの関連付けを前記重複情報へ登録し、前記プロセッサは、前記第1ライト要求の後、前記データ記憶領域に格納されていない第2データを前記第1論理領域へ書き込むことを要求する第3ライト要求を受信した場合、前記第2データに基づく第2識別情報を算出し、前記データ記憶領域内の第2物理領域へ前記第2データを書き込み、前記第1論理領域のアドレスと前記第2物理領域のアドレスと前記第2識別情報を示す第1現識別情報と前記第1識別情報を示す第1旧識別情報との関連付けを前記変換情報へ登録し、前記第2識別情報と前記第1論理領域のアドレスとの関連付けを前記重複情報へ登録し、前記プロセッサは、前記第1論理領域が、予め設定された離脱条件を満たす場合、前記重複情報から前記第1論理領域のアドレスを削除し、前記変換情報のうち前記第1論理領域のアドレスに関連付けられた情報から前記第1旧識別情報を削除する。
インラインプロセス方式のスループット性能を向上させる。
計算機システムの構成を示す。 計算機システムの論理構成を示す。 論物変換テーブル160を示す。 FPT VOL330を示す。 インラインプロセスを示す。 ガベージコレクションを示す。 FPTエントリ削除処理を示す。
以下、図面を参照して本発明の実施形態を説明する。
以下の説明では、「×××テーブル」の表現にて情報を説明することがあるが、情報は、どのようなデータ構造で表現されていてもよい。すなわち、情報がデータ構造に依存しないことを示すために、「×××テーブル」を「×××情報」と呼ぶことができる。また、以下の説明において、各テーブルの構成は一例であり、1つのテーブルは、2以上のテーブルに分割されてもよいし、2以上のテーブルの全部又は一部が1つのテーブルであってもよい。
また、以下の説明では、要素の識別情報として、IDが使用されるが、それに代えて又は加えて他種の識別情報が使用されてもよい。
また、以下の説明では、同種の要素を区別しないで説明する場合には、参照符号又は参照符号における共通番号を使用し、同種の要素を区別して説明する場合は、その要素の参照符号を使用又は参照符号に代えてその要素に割り振られたIDを使用することがある。
また、以下の説明では、I/O(Input/Output)要求は、ライト要求又はリード要求であり、アクセス要求と呼ばれてもよい。
また、以下の説明では、「プログラム」を主語として処理を説明する場合があるが、プログラムは、プロセッサ(例えばCPU(Central Processing Unit))によって実行されることで、定められた処理を、適宜に記憶資源(例えばメモリ)及び/又はインターフェースデバイス(例えば通信ポート)等を用いながら行うため、処理の主語がプロセッサとされてもよい。プログラムを主語として説明された処理は、プロセッサあるいはそのプロセッサを有する装置が行う処理又はシステムとしてもよい。また、プロセッサは、処理の一部または全部を行うハードウェア回路を含んでもよい。プログラムは、プログラムソースから計算機のような装置にインストールされてもよい。プログラムソースは、例えば、プログラム配布サーバまたは計算機が読み取り可能な記憶メディアであってもよい。プログラムソースがプログラム配布サーバの場合、プログラム配布サーバはプロセッサ(例えばCPU)と記憶資源を含み、記憶資源はさらに配布プログラムと配布対象であるプログラムとを記憶してよい。そして、プログラム配布サーバのプロセッサが配布プログラムを実行することで、プログラム配布サーバのプロセッサは配布対象のプログラムを他の計算機に配布してよい。また、以下の説明において、2以上のプログラムが1つのプログラムとして実現されてもよいし、1つのプログラムが2以上のプログラムとして実現されてもよい。
図1は、計算機システムの構成を示す。
計算機システムは、ホストコンピュータ30と、ストレージシステム40とを含む。ストレージシステム40は、ディスクコントローラ(DKC)10と、ディスクユニット(DKU)20とを含む。DKU20は、SAS(Serial Attached Small Computer System Interface)やSATA(Serial Advanced Technology Attachment)等のインタフェースを介して、ディスクコントローラ10に接続されている。ディスクコントローラ10は、SAN等のネットワーク50を介してホストコンピュータ30に接続されている。
ディスクコントローラ10は、2つのクラスタ100(CL1、CL2)を含む。2つのクラスタ100は、互いに通信を行い、一方のクラスタに障害が発生しても、他方のクラスタが動作することで、動作を継続することができる。クラスタ100は、チャネルアダプタ110と、キャッシュメモリ(CM)120と、ディスクアダプタ(DKA)130と、マイクロプロセッサ(MP)140とを含む。
チャネルアダプタ110は、ホストコンピュータ30に接続され、ホストコンピュータ30との通信を制御する。キャッシュメモリ120は、制御プログラム150等のプログラムと、論物変換テーブル160等のデータとを格納する。ディスクアダプタ130は、ディスクユニット20に接続され、ディスクユニット20との通信を制御する。マイクロプロセッサ140は、キャッシュメモリ120内のプログラムに従って処理を実行する。
ディスクユニット20は、複数の記憶デバイス200を含む。各記憶デバイス200は、例えばSSD(solid state drive)やHDD(hard disk drive)であり、複数のクラスタ100のディスクアダプタ130に接続されている。
図2は、計算機システムの論理構成を示す。
ディスクコントローラ10は、ディスクユニット20内の記憶デバイス200を用いて、THP(thin provisioning)プール310を作成する。ディスクコントローラ10は、ログ構造化(追記型)ファイルシステムを用いるボリュームであるログ構造化(log-structured:LS)ボリューム350を作成し、THPプール310内の記憶領域をログ構造化ボリューム350に割り当てる。ディスクコントローラ10は、THP VOL(volume)320を作成し、ログ構造化ボリューム350内の物理領域をTHP VOL320に割り当てる。ログ構造化ボリューム350内の物理領域は、THPプール310内の記憶領域に関連付けられたキャッシュメモリ120内の物理領域であってもよい。ディスクコントローラ10は、THP VOL320に対して重複排除の設定を行う。
THP VOL320は、複数の論理領域を含む。論理領域は、論理ブロックと呼ばれてもよい。THP VOL320内の論理領域は、論理アドレス(LA)により示される。ログ構造化ボリューム350内の物理領域は、物理アドレス(PA)により示される。ログ構造化ボリューム350は、複数のページを含む。ページは、複数の物理領域を含む。物理領域は、物理ブロックと呼ばれてもよい。論理領域及び物理領域のサイズは、例えば8kBである。或る論理領域に関連付けられた物理領域にデータが格納されており、且つ当該論理領域へ更新データを書き込むことを要求するライト要求を受信した場合、制御プログラム150は、当該物理領域と異なる新物理領域へ更新データを書き込み、当該論理領域に新物理領域を関連付ける。複数の論理領域のデータが重複している場合、制御プログラム150は、それらの論理領域に同一の物理領域を割り当てる。
更にディスクコントローラ10は、FPK(finger print key)を管理するFPT(finger print table) VOL330を作成する。FPKは、データのハッシュ値である。ホストコンピュータ30は、LUN340を作成し、THP VOL320をLUN340に割り当てる。
図3は、論物変換テーブル160を示す。
論物変換テーブル160は、論理領域毎の論物変換エントリを有する。一つの論理領域の論物変換エントリには、当該論理領域の論理アドレスが与えられる。一つの論理領域の論物変換エントリは、フィールドとして、データ長(DL)161と、状態フラグ162と、物理アドレス(PA)163と、現FPT番号(#)164と、旧FPT番号(#)165と、LRC(longitudinal redundancy check)166とを含む。論物変換エントリは、予め設定されたサイズを有する。論物変換エントリの各フィールドは、予め設定されたサイズを有する。
DL161は、THPプール310に格納されるデータの長さである。データが圧縮されて格納される場合、DL161は、圧縮されたデータの長さである。状態フラグ162は、当該論物変換エントリの状態を示すフラグである。物理アドレス163は、ログ構造化ボリューム350内で、当該論理領域に関連付けられた物理領域のアドレスである。現FPT番号164は、当該論理領域の最新データのFPKから得られるFPT番号である。FPT番号は、FPKのビット列内の所定位置の部分であり、FPT VOL330からFPKを検索するために用いられる。例えば、FPKの長さが8Byteであり、現FPT番号164はFPKの上位4Byteである。旧FPT番号165は、当該論理領域の最新データの更新前データから得られたFPT番号である。例えば、旧FPT番号165は、現FPT番号164と同様に、FPKの上位4Byteであってもよいし、FPKの上位3Byte等、現FPT番号164より短い長さを有していてもよい。LRC166は、当該論物変換エントリから算出されるチェックコードである。
旧FPT番号165の長さと現FPT番号164の長さとが1Byte程度異なっていても、旧FPT番号165の検索と現FPT番号164の検索との間に、大きな性能差は生じない。なお、現FPT番号164、旧FPT番号165は、FPKであってもよい。
この論物変換テーブルによれば、制御プログラム150は、論理アドレスから、対応する物理アドレスを特定することできる。
制御プログラム150は更に、物理アドレスから、対応する論理アドレスを特定するための、物論変換テーブルを作成し、キャッシュメモリ120へ格納してもよい。
図4は、FPT VOL330を示す。
FPT VOL330は、FPML410と、FPMD420と、FPTD(FPT directory)430とを格納する。
FPML410は、幾つかの重複リスト411を格納することができるブロック構造体である。重複リスト411は、一つのFPK412と、幾つかのFPTエントリ413とを含む。FPTエントリ413は、論理アドレス(LA)を含む。FPML410には、FPB番号が与えられる。
FPMD420は、FPML410を管理するディレクトリを示すブロック構造体である。FPMD420は、ディレクトリ内のFPML410を示すFPB番号421を格納する。FPMD420にも、FPB番号が与えられる。
FPTD430は、FPML410およびFPMD420を管理するディレクトリを示すブロック構造体である。FPTD410は、当該ディレクトリ内のFPML410またはFPMD420を示すFPB番号421を格納する。FPTD430には、当該ディレクトリに属するFPT番号のビット列の少なくとも一部が与えられる。
FPML410、FPMD420、FPTD430の夫々のサイズは、予め設定された上限サイズ以下である。上限サイズは例えば512kBである。FPML410のサイズが上限サイズを超える場合、新たなFPML410が作成され、それらのFPML410が、FPMD420のディレクトリで管理される。
制御プログラム150は、FPKに含まれるFPT番号を用いて、FPT VOL330から当該FPKを検索し、当該FPKに対応するLAを取得することができる。また、FPT VOL330によれば、制御プログラム150は、FPKをFPT VOL330へ容易に追加することができる。
FPT VOL330の容量が大きい場合、FPT VOL330の全てをキャッシュメモリ120に格納できないため、制御プログラム150は、FPT VOL330の一部をキャッシュメモリ120へ読み出してアクセスする。FPKは、ハッシュ値なので、FPT VOL330へのアクセスは、ほぼランダムアクセスである。これにより、FPT VOL330の検索は、記憶デバイス200へアクセスする場合が多くなり、処理時間が大きくなる。
論物変換エントリが旧FPT番号165を格納できず現FPT番号164だけを格納する場合、更新ライトの度に現FPT番号と論理アドレスの関連付けを解除するために、FPT VOL330から現FPT番号を検索する。これにより、ストレージシステム40の負荷が高くなり、ストレージシステム40のスループット性能が低下する。本実施例の論物変換テーブル160は、論物変換エントリが旧FPT番号165を格納することで、インラインプロセスは、更新ライトの度に現FPT番号と論理アドレスの関連付けを解除することを防ぐ。
以下、制御プログラム150の動作について説明する。
図5は、インラインプロセスを示す。
S110において制御プログラム150は、ホストコンピュータ30から、対象論理アドレスへのライト要求およびライトデータを受信すると、予め設定された長さ毎に、ライトデータのハッシュ演算を行うことで、ライトデータのFPKを対象FPKとして算出し、対象FPKのビット列の所定位置の部分を対象FPT番号として算出する。なお、制御プログラム150は、ライトデータをキャッシュメモリ120へ書き込むと、応答をホストコンピュータ30へ送信する。
S120において制御プログラム150は、論物変換テーブル160を参照する。
S130において制御プログラム150は、論物変換テーブル160が対象論理アドレスに対応する対象論物変換エントリを含むか否かを判定する。
S130の結果、論物変換テーブル160が対象論物変換エントリを含むと判定された場合(YES)、S140において制御プログラム150は、対象FPT番号が、対象論物変換エントリの現FPT番号164と一致するか否かを判定する。
S140の結果、対象FPT番号が現FPT番号と一致すると判定された場合(YES)、S150において制御プログラム150は、ライトデータと、対象論物変換エントリの物理アドレス163に格納されている格納データとを、比較し、S160において制御プログラム150は、比較の結果、ライトデータが格納データに一致するか否かを判定する。
S160の結果、ライトデータが格納データに一致すると判定された場合(YES)、制御プログラム150は、このフローを終了する。即ち、この場合、対象論理アドレスに格納されているデータを更新する必要がない。
S160の結果、ライトデータが格納データに一致しないと判定された場合(NO)、S210において制御プログラム150は、対象論物変換エントリが旧FPT番号165の値を含むか否かを判定する。
S210の結果、対象論物変換エントリが旧FPT番号165の値を含むと判定された場合(YES)、S220において制御プログラム150は、旧FPT番号と対象論理アドレスの関連付けを解除するFPTエントリ削除処理を行う。FPTエントリ削除処理については、後述する。
S220の後、または、S210の結果、対象論物変換エントリが旧FPT番号165の値を含まないと判定された場合(NO)、S230において制御プログラム150は、対象論物変換エントリにおいて、現FPT番号164の値を、旧FPT番号165へ移動させる。
S230の後、または、S130の結果、論物変換テーブル160が対象論物変換エントリを含まないと判定された場合(NO)、S240において制御プログラム150は、ライトデータが重複条件を満たすか否かを判定する。ここで、制御プログラム150は、FPT VOL330が対象FPT番号に対応する重複リストを含み、且つ、対象データが、当該重複リスト内の論理アドレスに対応する物理アドレスに格納されているデータに一致する場合、ライトデータが重複条件を満たすと判定する。
S240の結果、ライトデータが重複条件を満たさないと判定された場合(NO)、S250において制御プログラム150は、ライトデータを格納する。
S250の後、または、S240の結果、ライトデータが重複条件を満たすと判定された場合(YES)、S260において制御プログラム150は、対象FPT番号を、対象エントリの現FPT番号164へ登録する。S270において制御プログラム150は、ライトデータのライト先を、対象論物変換エントリの物理アドレス163へ登録し、このフローを終了する。
以上のインラインプロセスによれば、制御プログラム150は、対象論理アドレスの論理領域を更新するライト要求を受信し、対象論物変換エントリが旧FPT番号の値を含まない場合、更新前データのFPT番号を旧FPT番号へ移動することにより、すぐにFPTエントリ削除処理を行う必要がない。これにより、ストレージシステム40のスループット性能を向上させることができる。
旧FPT番号は、後述のガベージコレクションによって論物変換エントリから削除することができる。同一の論理アドレスへのライトの時間間隔が長い場合、旧FPT番号が削除され、S210の結果がNOとなる確率が高まる。これにより、FPTエントリ削除処理の実行回数を抑えることができる。なお、制御プログラム150は、対象論理アドレスの論理領域を更新するライト要求を受信し、対象論物変換エントリが旧FPT番号の値を含む場合、すぐにFPTエントリ削除処理を行う。
THP VOL320の更新の度に、ログ構造化ボリューム350の空き領域に有効データが書き込まれると、ログ構造化ボリューム350及びTHPプール310の空き領域が少なくなる。制御プログラム150は、ページ内の有効データを別のページへ移動させることで、空きページを作成する、ガベージコレクションを行う。これにより、制御プログラム150は、ログ構造化ボリューム350の空き領域を増加させることができる。
制御プログラム150は、ホストコンピュータ30からのライト要求とは非同期で、ストレージシステム40の空き領域が、予め設定された実行条件を満たす場合、ガベージコレクションを行う。例えば、制御プログラム150は、THPプール310の容量のうち、THP VOL320に割り当てられたサイズの割合である使用率が、予め設定された使用率閾値を超えた場合に、ストレージシステム40の空き領域が実行条件を満たすと判定する。また、例えば、制御プログラム150は、THPプール310からTHP VOL320に割り当てられたサイズのうち、無効データの割合を無効率として算出し、無効率が、予め設定された無効率閾値を超えた場合に、ストレージシステム40の空き領域が実行条件を満たすと判定する。
図6は、ガベージコレクションを示す。
S310において制御プログラム150は、複数のページの中から、移動条件を満たす対象ページを選択する。ここで制御プログラム150は、無効データ量が、予め設定された閾値を超えているページを対象ページとして選択してもよい。また、制御プログラム150は、ストレージシステム40の空き領域が実行条件を満たさなくなるまで、無効データ量が大きいページから順に、対象ページとして選択してもよい。無効データ量は、無効率や、無効データサイズである。無効率は、ページのサイズに対する無効データサイズの割合である。
S320において制御プログラム150は、対象ページから、物理アドレス順に一つの物理領域を対象物理領域として選択し、対象物理領域の物理アドレスを対象物理アドレスとして選択する。S330において制御プログラム150は、物論変換テーブルに基づいて、対象物理領域に関連付けられた論理領域を対象論理領域として選択し、対象論理領域の論理アドレスを対象論理アドレスとして選択する。
S420において制御プログラム150は、論物変換テーブル160を参照する。S430において制御プログラム150は、論物変換テーブル160において、対象論理アドレスに対応する対象論物変換エントリに旧FPT番号165の値が存在するか否かを判定する。
S430の結果、対象論物変換エントリに旧FPT番号の値が存在すると判定された場合(YES)、S440において制御プログラム150は、旧FPT番号と対象論理アドレスとの関連付けを解除するFPTエントリ削除処理を行う。S450において制御プログラム150は、旧FPT番号に対応する重複リストが少なくとも一つのFPTエントリを含むか否かを判定する。
S450の結果、当該重複リストが少なくとも一つのFPTエントリを含むと判定された場合(YES)、または、S430の結果、旧FPT番号の値が存在しないと判定された場合(NO)、即ち、対象物理領域が論理アドレスに関連付けられており有効データを格納しているため、S460において制御プログラム150は、移動先ページと、移動先ページ内の物理領域である移動先物理領域とを選択し、対象物理領域内のデータを、移動先物理領域へ移動させる。制御プログラム150は更に、論物変換テーブル160内の当該論理アドレスに対応する論理領域エントリ内の物理アドレス163に、移動先物理領域の物理アドレスを登録する。
S460の後、または、S450の結果、当該重複リストがFPTエントリを含まないと判定された場合(NO)、即ち、対象物理領域が有効データを格納していないため、S480において制御プログラム150は、対象ページ内の全物理領域が、対象物理領域として選択されたか否かを判定する。
S480の結果、対象ページ内に、対象物理領域として選択されていない物理領域がある場合(NO)、制御プログラム150は、処理をS320へ移行させ、次の対象物理領域を選択する。
S480の結果、対象ページ内の全物理領域が対象物理領域として選択された場合(YES)、S490において制御プログラム150は、対象ページを破棄し、このフローを終了する。その後のライト要求に応じて、制御プログラム150は、空きページとなった対象ページへデータを書き込む。
以上のガベージコレクションによれば、制御プログラム150は、制御プログラム150は、ガベージコレクションの対象の論理領域の論物変換エントリに、旧FPT番号が存在する場合、旧FPT番号で示されたデータとの関連付けを解除することができる。これにより、制御プログラム150は、当該論物変換エントリ内の旧FPT番号を削除し、当該論理領域の次の更新時にFPTエントリ削除処理を行う必要がなくなる。制御プログラム150がライト要求と非同期でガベージコレクションを行うことにより、ライト要求時の負荷を低減することができる。
制御プログラム150は、対象論理アドレスの論理領域が、予め設定された離脱条件を満たす場合、FPTエントリ削除処理を行う。離脱条件は、例えば前述のS220またはS440へ移行する条件である。
図7は、FPTエントリ削除処理を示す。
前述のS220およびS440において制御プログラム150は、旧FPT番号と対象論理アドレスを指定し、FPTエントリ削除処理を行う。
S520において制御プログラム150は、FPT VOL330から、旧FPT番号に対応する重複リストを検索し、検索された重複リストを対象重複リストとしてキャッシュメモリ120へ読み出す。S530において制御プログラム150は、対象重複リストが対象論理アドレスを含むか否かを判定する。
S530の結果、対象重複リストが対象論理アドレスを含まないと判定された場合(NO)、制御プログラム150は、このフローを終了する。
S530の結果、対象重複リストが対象論理アドレスを含むと判定された場合(YES)、S540において制御プログラム150は、対象重複リストから、対象論理アドレスを含むFPTエントリを削除し、対象重複リスト内のFPTエントリを前詰する。S550において制御プログラム150は、論物変換テーブル160のうち、対象論理アドレスの論物変換エントリから旧FPT番号165の値を削除する。S560において制御プログラム150は、更新された対象重複リストをFPT VOL330へ反映し、このフローを終了する。制御プログラム150は、FPT VOL330の更新を、非同期でキャッシュメモリ120からTHPプール310へ反映してもよい。
以上のFPTエントリ削除処理によれば、制御プログラム150は、旧FPT番号と対象論理アドレスの関連付けを解除することができる。
以下、本実施例の効果について説明する。
特定の論理領域へのライト要求がシーケンシャルライトである場合、当該論理領域へのライト要求がランダムライトである場合よりも、当該論理領域を更新する間隔が長くなる。当該論理領域を更新する間隔が長くなると、更新の間にガベージコレクションが実行され、ガベージコレクション中のFPTエントリ削除処理により旧FPT番号の値が削除される確率が高くなる。これにより、ライト中にFPTエントリ削除処理が実行されない確率が高くなる。即ち、当該論理領域の更新により旧FPT番号に値が登録されても、次の更新までに旧FPT番号の値が削除され、次の更新時にFPTエントリ削除処理が実行されない。これにより、ストレージシステム40のスループット性能を向上させることができる。
シーケンシャルライトと一例としてバックアップが挙げられる。ホストコンピュータ30が、ホストコンピュータ30に格納されているデータのバックアップを、所定のバックアップ周期で定期的にストレージシステム40へ書き込む場合、バックアップの間にガベージコレクションが実行され、旧FPT番号の値が削除される確率が高くなる。例えば、ホストコンピュータ30が、毎週月曜日にバックアップを第1のTHP VOLへ書き込み、毎週火曜日にバックアップを第2のTHP VOLへ書き込み、毎週水曜日にバックアップを第3のTHP VOLへ書き込み、毎週木曜日にバックアップを第4のTHP VOLへ書き込み、毎週金曜日にバックアップを第5のTHP VOLへ書き込むとする。この場合、各THP VOLは1週間に1回更新される。このように、バックアップが十分長い時間間隔で実行されることにより、バックアップの間にガベージコレクションが実行され、旧FPT番号の値が削除される確率が高くなる。
ディスクコントローラ10の代わりに、バックアップサーバ等の計算機が用いられてもよい。この場合、バックアップサーバは、ディスクユニット20と同様の外部記憶デバイスに接続される。このバックアップサーバは、FPT VOL330と同様の情報を格納する記憶デバイスを含み、制御プログラム150を実行する。これにより、バックアップサーバは、外部記憶デバイスの重複排除を行うことができる。
計算機システムは、ストレージシステム40、ディスクコントローラ10、バックアップサーバ等に対応する。メモリは、キャッシュメモリ120等に対応する。プロセッサは、MP140等に対応する。データ記憶領域は、ログ構造化ボリューム350、THPプール310等に対応する。重複情報は、FPT VOL330等に対応する。識別情報は、FPT番号等に対応する。変換情報は、論物変換テーブル160や物論変換テーブル等に対応する。現識別情報は、現FPT番号164の値等に対応する。旧識別情報は、旧FPT番号165の値等に対応する。現識別情報領域は、現FPT番号164のフィールド等に対応する。旧識別情報領域は、旧FPT番号165のフィールド等に対応する。フィンガープリントは、FPK等に対応する。
以上、本発明の実施形態を説明したが、これは本発明の説明のための例示であって、本発明の範囲を上記構成に限定する趣旨ではない。本発明は、他の種々の形態でも実施する事が可能である。
10…ディスクコントローラ、 20…ディスクユニット、 30…ホストコンピュータ、 40…ストレージシステム、 50…ネットワーク、 100…クラスタ、 110…チャネルアダプタ、 120…キャッシュメモリ、 130…ディスクアダプタ、 140…マイクロプロセッサ、 150…制御プログラム、 160…論物変換テーブル

Claims (11)

  1. メモリと、
    前記メモリに接続されるプロセッサと、
    を備え、
    前記プロセッサは、第1論理領域がデータ記憶領域内の物理領域に関連付けられておらず、且つ前記データ記憶領域に格納されていない第1データを前記第1論理領域へ書き込むことを要求する第1ライト要求を受信した場合、前記第1データに基づく第1識別情報を算出し、前記データ記憶領域内の第1物理領域へ前記第1データを書き込み、前記第1論理領域のアドレスと前記第1物理領域のアドレスと前記第1識別情報を示す第1現識別情報との関連付けを変換情報へ登録し、前記第1識別情報と前記第1論理領域のアドレスとの関連付けを重複情報へ登録し、
    前記プロセッサは、前記第1ライト要求の後、第2論理領域が前記データ記憶領域内の物理領域に関連付けられておらず、且つ前記第1データを前記第2論理領域へ書き込むことを要求する第2ライト要求を受信した場合、前記第1データに基づく第1識別情報を算出し、前記第2論理領域のアドレスと前記第1物理領域のアドレスと前記第1識別情報を示す第2現識別情報との関連付けを前記変換情報へ登録し、前記第1識別情報と前記第2論理領域のアドレスとの関連付けを前記重複情報へ登録し、
    前記プロセッサは、前記第1ライト要求の後、前記データ記憶領域に格納されていない第2データを前記第1論理領域へ書き込むことを要求する第3ライト要求を受信した場合、前記第2データに基づく第2識別情報を算出し、前記データ記憶領域内の第2物理領域へ前記第2データを書き込み、前記第1論理領域のアドレスと前記第2物理領域のアドレスと前記第2識別情報を示す第1現識別情報と前記第1識別情報を示す第1旧識別情報との関連付けを前記変換情報へ登録し、前記第2識別情報と前記第1論理領域のアドレスとの関連付けを前記重複情報へ登録し、
    前記プロセッサは、前記第1論理領域が、予め設定された離脱条件を満たす場合、前記重複情報から前記第1論理領域のアドレスを削除し、前記変換情報のうち前記第1論理領域のアドレスに関連付けられた情報から前記第1旧識別情報を削除する、
    計算機システム。
  2. 前記プロセッサは、前記第3ライト要求の後、前記第2物理領域が、予め設定された移動条件を満たし、且つ前記変換情報が前記第1論理領域のアドレスと前記第2物理領域のアドレスと前記第1旧識別情報との関連付けを含む場合、前記第1論理領域が前記離脱条件を満たすと判定し、前記重複情報が前記第1識別情報と他の論理領域との関連付けを含まない場合、前記データ記憶領域から移動先物理領域を選択し、前記第2物理領域に格納されているデータを前記移動先物理領域へ移動させ、前記第2物理領域の代わりに前記移動先物理領域を前記第1論理領域に関連付けることを前記変換情報へ登録する、
    請求項1に記載の計算機システム。
  3. 前記プロセッサは、前記変換情報が前記第1論理領域のアドレスと前記第1旧識別情報との関連付けを含み、且つ前記データ記憶領域に格納されていないデータを前記第1論理領域へ書き込むことを要求するライト要求を受信した場合、前記第1論理領域が前記離脱条件を満たすと判定する、
    請求項2に記載の計算機システム。
  4. 前記プロセッサは、特定データを特定論理領域へ書き込むことを要求する特定ライト要求を受信した場合、前記特定データのハッシュ値である特定フィンガープリントを算出し、前記特定フィンガープリントのビット列の中の所定位置の部分を前記特定データの識別情報として算出し、前記特定フィンガープリントと前記特定論理領域との関連付けを前記重複情報へ登録する、
    請求項3に記載の計算機システム。
  5. 前記プロセッサは、前記特定ライト要求を受信した場合、前記重複情報が前記特定フィンガープリントと論理領域の関連付けを含むか否かを判定し、前記重複情報が前記特定フィンガープリントと論理領域の関連付けを含むと判定された場合、前記重複情報に基づいて前記特定フィンガープリントに関連付けられた論理領域を特定し、前記変換情報に基づいて前記特定された論理領域に関連付けられた物理領域を特定し、前記特定データが前記特定された物理領域に格納されたデータと一致するか否かを判定する、
    請求項4に記載の計算機システム。
  6. 前記重複情報を格納する記憶デバイスを更に備える、
    請求項5に記載の計算機システム。
  7. 前記記憶デバイスは、前記データ記憶領域を含む、
    請求項6に記載の計算機システム。
  8. 前記プロセッサは、前記データ記憶領域を含む外部記憶デバイスに接続されるように構成されている、
    請求項6に記載の計算機システム。
  9. 前記データ記憶領域は、複数のページを含み、
    各ページは、所定数の物理領域を含み、
    前記プロセッサは、ログ構造化ファイルシステムを用いて前記データ記憶領域を管理し、前記データ記憶領域の空き領域が、予め設定された実行条件を満たすか否かを判定するように構成されており、
    前記プロセッサは、前記データ記憶領域の空き領域が前記実行条件を満たすと判定された場合、各ページ内の無効データ量に基づいて、前記移動条件を満たすページを選択する、
    請求項2に記載の計算機システム。
  10. 前記変換情報は、論理領域のアドレスに関連付けられた、所定サイズのエントリを含み、
    前記エントリは、前記論理領域に関連付けられた物理領域のアドレスを格納する物理アドレス領域と、前記論理領域の最新データに基づく識別情報を格納する現識別情報領域と、前記論理領域の最新データの更新前データに基づく識別情報を格納する旧識別情報領域とを含む、
    請求項1に記載の計算機システム。
  11. 第1論理領域がデータ記憶領域内の物理領域に関連付けられておらず、且つ前記データ記憶領域に格納されていない第1データを前記第1論理領域へ書き込むことを要求する第1ライト要求を受信した場合、前記第1データに基づく第1識別情報を算出し、前記データ記憶領域内の第1物理領域へ前記第1データを書き込み、前記第1論理領域のアドレスと前記第1物理領域のアドレスと前記第1識別情報を示す第1現識別情報との関連付けを変換情報へ登録し、前記第1識別情報と前記第1論理領域のアドレスとの関連付けを重複情報へ登録し、
    前記第1ライト要求の後、第2論理領域が前記データ記憶領域内の物理領域に関連付けられておらず、且つ前記第1データを前記第2論理領域へ書き込むことを要求する第2ライト要求を受信した場合、前記第1データに基づく第1識別情報を算出し、前記第2論理領域のアドレスと前記第1物理領域のアドレスと前記第1識別情報を示す第2現識別情報との関連付けを前記変換情報へ登録し、前記第1識別情報と前記第2論理領域のアドレスとの関連付けを前記重複情報へ登録し、
    前記第1ライト要求の後、前記データ記憶領域に格納されていない第2データを前記第1論理領域へ書き込むことを要求する第3ライト要求を受信した場合、前記第2データに基づく第2識別情報を算出し、前記データ記憶領域内の第2物理領域へ前記第2データを書き込み、前記第1論理領域のアドレスと前記第2物理領域のアドレスと前記第2識別情報を示す第1現識別情報と前記第1識別情報を示す第1旧識別情報との関連付けを前記変換情報へ登録し、前記第2識別情報と前記第1論理領域のアドレスとの関連付けを前記重複情報へ登録し、
    前記第1論理領域が、予め設定された離脱条件を満たす場合、前記重複情報から前記第1論理領域のアドレスを削除し、前記変換情報のうち前記第1論理領域のアドレスに関連付けられた情報から前記第1旧識別情報を削除する、
    ことを備えるデータ格納方法。
JP2018530248A 2016-07-27 2016-07-27 計算機システムおよびデータ格納方法 Active JP6516931B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2016/071962 WO2018020593A1 (ja) 2016-07-27 2016-07-27 計算機システムおよびデータ格納方法

Publications (2)

Publication Number Publication Date
JPWO2018020593A1 JPWO2018020593A1 (ja) 2018-12-06
JP6516931B2 true JP6516931B2 (ja) 2019-05-22

Family

ID=61015918

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018530248A Active JP6516931B2 (ja) 2016-07-27 2016-07-27 計算機システムおよびデータ格納方法

Country Status (4)

Country Link
US (1) US20200057586A1 (ja)
JP (1) JP6516931B2 (ja)
CN (1) CN109196483B (ja)
WO (1) WO2018020593A1 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11048430B2 (en) 2019-04-12 2021-06-29 Netapp, Inc. Object store mirroring where during resync of two storage bucket, objects are transmitted to each of the two storage bucket
US11487726B1 (en) * 2021-09-15 2022-11-01 Dell Products, L.P. Dynamic deduplication hash table management

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1185589A (ja) * 1997-09-12 1999-03-30 Toshiba Corp 情報記憶装置および同装置に適用される管理データ再構築方法
JP3918394B2 (ja) * 2000-03-03 2007-05-23 株式会社日立製作所 データ移行方法
JP5026213B2 (ja) * 2007-09-28 2012-09-12 株式会社日立製作所 ストレージ装置及びデータ重複排除方法
JP2012234482A (ja) * 2011-05-09 2012-11-29 Canon Inc 記憶制御装置及びその制御方法、並びにプログラム
US8527544B1 (en) * 2011-08-11 2013-09-03 Pure Storage Inc. Garbage collection in a storage system
JP5802804B2 (ja) * 2012-06-19 2015-11-04 株式会社東芝 制御プログラム、ホスト装置の制御方法、情報処理装置およびホスト装置
US9262430B2 (en) * 2012-11-22 2016-02-16 Kaminario Technologies Ltd. Deduplication in a storage system
WO2014136183A1 (ja) * 2013-03-04 2014-09-12 株式会社日立製作所 ストレージ装置及びデータ管理方法
JPWO2016038714A1 (ja) * 2014-09-11 2017-04-27 株式会社東芝 ファイルシステム、データ重複排除方法、及びファイルシステムのためのプログラム
US10747440B2 (en) * 2014-09-24 2020-08-18 Hitachi, Ltd. Storage system and storage system management method

Also Published As

Publication number Publication date
CN109196483A (zh) 2019-01-11
WO2018020593A1 (ja) 2018-02-01
JPWO2018020593A1 (ja) 2018-12-06
CN109196483B (zh) 2023-04-21
US20200057586A1 (en) 2020-02-20

Similar Documents

Publication Publication Date Title
US11650976B2 (en) Pattern matching using hash tables in storage system
US10042853B2 (en) Flash optimized, log-structured layer of a file system
US10133511B2 (en) Optimized segment cleaning technique
US9529546B2 (en) Global in-line extent-based deduplication
US8886882B2 (en) Method and apparatus of storage tier and cache management
CN107209714B (zh) 分布式存储***及分布式存储***的控制方法
US8930307B2 (en) Method for removing duplicate data from a storage array
CN108604165B (zh) 存储装置
WO2016046911A1 (ja) ストレージシステム及びストレージシステムの管理方法
US9785547B2 (en) Data management apparatus and method
WO2015068233A1 (ja) ストレージシステム
US9369527B2 (en) File server, file server control method, and storage system
US10884924B2 (en) Storage system and data writing control method
JP6516931B2 (ja) 計算機システムおよびデータ格納方法
US20160259571A1 (en) Storage subsystem
JP2017045177A (ja) ストレージシステム、ホスト計算機、ストレージコントローラ及びデータ重複検出方法
WO2018092288A1 (ja) ストレージ装置及びその制御方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180806

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: 20190402

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190416

R150 Certificate of patent or registration of utility model

Ref document number: 6516931

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150