[go: up one dir, main page]

JP2018041245A - ストレージ装置、及びストレージ制御装置 - Google Patents

ストレージ装置、及びストレージ制御装置 Download PDF

Info

Publication number
JP2018041245A
JP2018041245A JP2016174473A JP2016174473A JP2018041245A JP 2018041245 A JP2018041245 A JP 2018041245A JP 2016174473 A JP2016174473 A JP 2016174473A JP 2016174473 A JP2016174473 A JP 2016174473A JP 2018041245 A JP2018041245 A JP 2018041245A
Authority
JP
Japan
Prior art keywords
storage
data block
data
processing unit
ssd
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
JP2016174473A
Other languages
English (en)
Other versions
JP6870246B2 (ja
Inventor
山本 和彦
Kazuhiko Yamamoto
山本  和彦
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 JP2016174473A priority Critical patent/JP6870246B2/ja
Priority to US15/679,404 priority patent/US10521131B2/en
Publication of JP2018041245A publication Critical patent/JP2018041245A/ja
Application granted granted Critical
Publication of JP6870246B2 publication Critical patent/JP6870246B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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
    • G06F3/0616Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/0635Configuration or reconfiguration of storage systems by changing the path, e.g. traffic rerouting, path reconfiguration
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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 OR CALCULATING; 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 OR CALCULATING; 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/0683Plurality of storage devices
    • G06F3/0688Non-volatile semiconductor memory arrays

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Memory System (AREA)

Abstract

【課題】記憶部の寿命を延ばせるようにする。【解決手段】寿命の異なる複数の記憶部21,22と、前記複数の記憶部21,22に格納されるデータブロックを管理する管理部10と、を備える。管理部10は、前記データブロックに対するアクセス特性の判定または推定を行なう判定処理部114と、前記寿命の異なる複数の記憶部21,22のうち、判定処理部114によって判定または推定されたアクセス特性に応じた記憶部に、前記データブロックを格納する格納処理部115と、を有する。【選択図】図2

Description

本発明は、ストレージ装置、及びストレージ制御装置に関する。
SSD(Solid State Drive)は、フラッシュメモリを利用した記憶媒体である。フラッシュメモリには「書込み・消去動作による素子の劣化」という特性があることから、フラッシュメモリを素材としたSSDには書込み量の上限が存在する。書込み量の上限によるSSD寿命の指標は、例えば、DWPDによって表現される。DWPDは、Drive Write Per Dayの略記であり、一日あたりにドライブ容量全体を何回書き換えることができるかを示す値である。
書込み量の上限を持つSSDの寿命を延ばすため、SSDを採用したストレージ装置では、SSDへ書き込むデータの量を小さくする「データ圧縮技術」や、データの書込みそのものを減らす「データ重複排除技術」が採用されている。
特開2005−108304号公報 特開2015−201050号公報 特開2015−204118号公報
今後、フラッシュメモリの技術として、高信頼・長寿命であるSLCやMLCよりも、書込み量の上限は下がるものの、より大容量かつより低価格を実現できるTLCといった技術が主流になると想定される。ドライブを大容量化することで、ドライブ全体の寿命指標であるDWPDの値が小さくても、一日あたりの書込み可能な容量そのものが大きくなるためである。SLCはSingle Level Cellの略記であり、MLCはMultiple Level Cellの略記であり、TLCはTriple Level Cellの略記である。
しかし、業務のワークロードに依って、ストレージ装置に対するデータアクセス量やRead/Write比率は大きく異なる。したがって、複数の業務でストレージ装置を共用するミックスワークロード環境でSSDを安心して使うためには、SSDが大容量化しても長寿命化技術は依然として重要である。
そのため、DWPDの小さいSSDを長寿命化させる手段として、書込み量を削減し、一度書き込んだデータについては基本的に読み出しで使うことを可能にするアクセス方法の開発が望まれる。しかしながら、データの圧縮処理や重複排除処理を行なうだけでは、そのデータが読出し重視(Read Intensive)となるかどうかは分からない。このため、書込み重視(Write Intensive)のデータを、DWPDの小さなSSD、つまり寿命の短いSSDに格納すると、SSDの寿命を縮めてしまう。
一つの側面で、本件明細書に開示の発明は、記憶部の寿命を延ばすことを目的とする。
本件のストレージ装置は、寿命の異なる複数の記憶部と、前記複数の記憶部に格納されるデータブロックを管理する管理部と、を備える。前記管理部は、判定処理部及び格納処理部を有する。前記判定処理部は、前記データブロックに対するアクセス特性の判定または推定を行なう。前記格納処理部は、前記寿命の異なる複数の記憶部のうち、前記判定処理部によって判定または推定された前記アクセス特性に応じた記憶部に、前記データブロックを格納する。
記憶部の寿命を延ばすことができる。
本発明の第1実施形態としてのストレージ制御装置を含むストレージ装置のハードウェア構成の一例を示すブロック図である。 図1に示すストレージ制御装置の機能構成の一例を示すブロック図である。 図2に示すストレージ制御装置を含むストレージ装置でのデータ書込み処理を説明するフローチャートである。 第1実施形態における論理ボリュームのデータ配置を説明する図である。 第1実施形態における論理ボリュームと不揮発性デバイスとを対応付けるマッピングテーブルの構造の一例を示す図である。 図5に示すマッピングテーブルによるマッピングの具体例を示す図である。 第1実施形態におけるSCMフリーリストの構造の一例を示す図である。 第1実施形態におけるSCMアロケーションリストの構造の一例を示す図である。 第1実施形態のストレージ制御装置による初期化処理を説明するフローチャートである。 第1実施形態のストレージ制御装置による時間調整処理を説明するフローチャートである。 第1実施形態のストレージ制御装置による移動データ抽出処理を説明するフローチャートである。 第1実施形態のストレージ制御装置による移動データ抽出処理を説明するフローチャートである。 第1実施形態のストレージ制御装置による移動データ抽出処理を説明するフローチャートである。 本発明の第2実施形態としてのストレージ制御装置を含むストレージ装置のハードウェア構成の一例を示すブロック図である。 図14に示すストレージ制御装置の機能構成の一例を示すブロック図である。 図15に示すストレージ制御装置を含むストレージ装置でのデータ書込み処理を説明するフローチャートである。 第2実施形態における論理ボリュームと不揮発性デバイスとを対応付けるマッピングテーブルの構造の一例を示す図である。 図17に示すマッピングテーブルによるマッピングの具体例を示す図である。 第2実施形態のストレージ制御装置による移動データ抽出処理を説明するフローチャートである。 第2実施形態のストレージ制御装置による移動データ抽出処理を説明するフローチャートである。
以下に、図面を参照し、本願の開示するストレージ装置、及びストレージ制御装置の実施形態について、詳細に説明する。ただし、以下に示す実施形態は、あくまでも例示に過ぎず、実施形態で明示しない種々の変形例や技術の適用を排除する意図はない。すなわち、本実施形態を、その趣旨を逸脱しない範囲で種々変形して実施することができる。また、各図は、図中に示す構成要素のみを備えるという趣旨ではなく、他の機能を含むことができる。そして、各実施形態は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。
〔1〕本実施形態の概要
本実施形態(第1及び第2実施形態)では、ホストサーバからストレージ装置に対して対象データの保存要求を行なう際、対象データのアクセス特性が判断される。ここで、アクセス特性として、対象データが読出し重視であるか否かが判断される。対象データのアクセス特性が読出し重視でないと判断された場合、対象データのアクセス特性は、書込み重視であると推定してもよい。
なお、読出し重視(Read Intensive)のデータブロックは、書込みアクセスよりも読出しアクセスの対象になる可能性の高いデータブロックである。逆に、書込み重視(Write Intensive)のデータブロックは、読出しアクセスよりも書込みアクセスの対象になる可能性の高いデータブロックである。以下において、読出し重視はリード重視と称し、書込み重視はライト重視と称する場合がある。
そして、ストレージ装置内のDWPD(寿命指標)の異なるSSD(記憶部)の中から、アクセス特性の判断結果に応じた最適なSSDが選択される。対象データブロックは、選択されたSSDに書き込まれ格納保存される。例えば、読出し重視であると判定された対象データブロックは、DWPDの小さい(寿命の短い)SSDに格納されてよい。一方、読出し重視でないと判定された対象データブロック、つまり書込み重視であると推定された対象データブロックは、DWPDの大きい(寿命の長い)SSDに格納されてよい。また、DWPDの大きいSSDに格納された、書込み重視であると推定されたデータブロックのアクセス特性が、その推定後に読出し重視であると判定された場合、当該データブロックは、DWPDの大きいSSDからDWPDの小さいSSDへ移動されてもよい。
このように、本実施形態(第1及び第2実施形態)によれば、アクセス特性が読出し重視であると判定されるデータブロックは、他のSSDよりもDWPDの小さいSSDに書き込まれる。また、アクセス特性が読出し重視でないデータブロック、つまりアクセス特性が書込み重視であると推定されるデータブロックは、他のSSDよりもDWPDの大きいSSDに書き込まれる。したがって、データブロックのアクセス特性に応じた、寿命指標の異なるSSDのうちの最適なSSDに、データブロックを格納することができ、特に、DWPDの小さいSSDの寿命を延ばすことができる。
例えば、本実施形態(第1及び第2実施形態)のストレージ装置には、以下のように構成されていてもよい。
本実施形態(第1及び第2実施形態)のストレージ装置は、寿命(DWPD)の異なる複数のSSD(記憶部)と、当該複数のSSDに格納されるデータブロックを管理する管理部(ストレージ制御装置)と、を備える。前記管理部は、判定処理部と格納処理部とを有する。前記判定処理部は、データブロックに対するアクセス特性の判定または推定を行なう。前記格納処理部は、寿命の異なる複数のSSDのうち、前記判定処理部によって判定または推定された前記アクセス特性に応じたSSDに、データブロックを格納する。
このとき、前記管理部は、データブロックの重複を排除する重複排除機能を有し、前記判定処理部は、前記重複排除機能によって管理される、データブロックの参照数(重複回数)に基づいて、前記アクセス特性の判定または推定を行なってもよい。また、前記判定処理部は、前記参照数が2以上のデータブロックの前記アクセス特性は読出し重視であると判定し、前記格納処理部は、前記参照数が2以上のデータブロックを、他のSSDよりも寿命の短い(DWPDの小さい)SSDに格納してもよい。さらに、前記判定処理部は、前記アクセス特性が読出し重視でないデータブロックの前記アクセス特性は書込み重視であると推定し、前記格納処理部は、前記アクセス特性が読出し重視でないデータブロックを、他のSSDよりも寿命の長いSSDに格納してもよい。
特に、図1〜図13を参照しながら後述する第1実施形態のストレージ装置は、ホストサーバからの、寿命の異なる複数のSSDに対する書込み対象データブロックを、前記データブロックとして一時的に格納する一時記憶部を有してもよい。一時記憶部は、例えばSCM(Storage Class Memory)であってもよい。このとき、前記判定処理部は、SCMに格納されたデータブロックに対するアクセス特性の判定または推定を行なう。そして、前記格納処理部は、前記判定処理部によって前記アクセス特性が読出し重視であると判定されたデータブロックを、SCMから、他のSSDよりも寿命の短いSSDに格納する。一方、前記判定処理部は、前記参照数が1で書込み後所定時間経過したデータブロックの前記アクセス特性は書込み重視であると推定する。前記格納処理部は、前記判定処理部によって前記アクセス特性が書込み重視であると推定されたデータブロックを、SCMから、他のSSDよりも寿命の長いSSDに格納する。
また、図14〜図20を参照しながら後述する第2実施形態のストレージ装置では、他のSSDよりも寿命の長いSSDは、ホストサーバからの、寿命の異なる複数のSSDに対する書込み対象データブロックを、前記データブロックとして格納する。このとき、前記判定処理部は、他のSSDよりも寿命の長いSSDに格納されたデータブロックに対するアクセス特性の判定または推定を行なう。そして、前記格納処理部は、前記判定処理部によって前記アクセス特性が読出し重視であると判定されたデータブロックを、他のSSDよりも寿命の長いSSDから、他のSSDよりも寿命の短いSSDに格納する。
〔2〕第1実施形態
〔2−1〕ハードウェア構成
図1を参照しながら、本発明の第1実施形態としてのストレージ制御装置10を含むストレージ装置1のハードウェア構成の一例について説明する。図1は、そのハードウェア構成の一例を示すブロック図である。
図1に示すように、第1実施形態のストレージ装置1は、ストレージ制御装置10とSSD部20とを有する。ストレージ制御装置10は、ホストサーバ30からの入出力要求に応じて、SSD部20に格納されるデータブロックを管理する。SSD部20には、ストレージ制御装置10によって制御される、DWPDの異なる(つまり寿命の異なる)複数のSSD21,22が混在する。SSD21は、例えば、寿命の長いつまりDWDPの大きいSSDであり、SSD22は、例えば、SSD21に対し、寿命の短いつまりDWDPの小さいSSDである。
第1実施形態のストレージ制御装置10は、CPU11、DRAM12、SCM13、SSDコントローラ14、及びホストインタフェース15を含む。ここで、CPUはCentral Processing Unitの略記であり、DRAMはDynamic Random Access Memoryの略記である。
CPU11は、種々の制御や演算を行なうプロセッサ(処理部)の一例である。CPU11は、DRAM12、SCM13、SSDコントローラ14、及びホストインタフェース15と相互に通信可能に接続される。なお、プロセッサとしては、CPU11等の演算処理装置に代えて、電子回路、例えばMPU(Micro Processing Unit)、ASIC(Application Specific Integrated Circuit)、FPGA(Field Programmable Gate Array)等の集積回路(IC)が用いられてもよい。
また、CPU11は、DRAM12やSCM13などの記憶部に格納されたOS(Operating System)やプログラムを実行することにより、種々の機能を果たす。特に、図2を参照しながら後述するごとく、第1実施形態のCPU11は、データキャッシング処理部111、データ圧縮・重複排除処理部112、SCMライトバッファ管理部113、データアクセス特性判定処理部114、データ移動制御部115、SSDプール管理部116、及びSSDドライバ117としての機能を果たしてもよい。
DRAM12は、種々のデータやプログラムを一時的に格納する記憶装置であり、キャッシュ領域やメモリ領域を備える。キャッシュ領域は、ホストサーバ30から受信した書込み対象のデータや、ホストサーバ30に対して送信する読出し対象のデータを、一時的に格納する。メモリ領域は、CPU11がアプリケーションプログラムを実行する際に、データやプログラムを一時的に格納してもよい。アプリケーションプログラムは、例えば、本実施形態のストレージ制御機能を実現すべくCPU11が実行するプログラムであってもよい。
SCM13は、ライトバッファ用として備えられ、DRAM12とSSD21,22との中間のアクセス性能を有する。つまり、SCM13は、SSD21,22よりも高速のアクセス性能を有し、DRAM12は、SCM13よりも高速のアクセス性能を有する。SCM13は、ホストサーバ30からの、寿命の異なる複数のSSD21,22に対する書込み対象データブロックを、一時的に格納する一時記憶部の一例である。
SSDコントローラ14は、CPU11からの指示に従ってSSD部20における各SSD21,22を制御する。SSDコントローラ14は、図2を参照しながら後述する、SSDプール管理部116、及びSSDドライバ117としての機能を果たしてもよい。
ホストインタフェース(Host I/F)15は、FC、SAS、Ethernet(登録商標)などのハードウェアを用いて、ホストサーバ30と通信可能に接続される。このようなハードウェアを通信路として、本実施形態のストレージ装置1は、ホストサーバ30との間でデータの送受信を行なう。なお、FCはFibre Channelの略記であり、SASはSerial Attached SCSIの略記であり、SCSIはSmall Computer System Interfaceの略記である。
ホストサーバ30からストレージ装置1(ストレージ制御装置10)に対しデータ書込み要求が行なわれた場合、ホストサーバ30からの書込み対象のデータは、ホストインタフェース15を経由してDRAM12に一時的に格納される。このとき、ライトスルー(Write Through)処理を採用した場合、DRAM12に格納されたデータが、装置電源オフ時でもデータ保持可能な不揮発性メディアであるSCM13またはSSD21,22に書き込まれるまで、ホストサーバ30へ書込み完了応答が返信されない。一方、ライトバック(Write Back)処理を採用した場合、書込み対象のデータがDRAM12に格納された時点で、ホストサーバ30へ書込み完了応答が返され、その後、非同期に不揮発性メディアにデータ(データブロック)が移動される。
ライトバック処理の採用時には、ハードウェア故障などによりDRAM12上のデータが消失する場合を考慮し、ストレージ制御装置10をクラスタ構成とし、他のストレージ制御装置10とデータミラーリングすることが行なわれる場合がある。本実施形態において、ライトスルー処理とライトバック処理との違いはホストサーバ30への書込み完了応答を行なうタイミングの違いのみである。また、DRAM12上のデータのクラスタ間ミラーリング処理は本願技術の趣旨と関係ない。したがって、本実施形態では、ストレージ制御装置10が、クラスタ構成を採らないシングルノード構成であり、且つライトバック処理を採用する場合について説明する。なお、本実施形態において、読出し処理は、論理ボリュームのアドレスから読出し対象データの物理格納場所を特定し、読出し対象データをホストサーバ30に転送する処理であるので、本実施形態の説明では省略する。
〔2−2〕機能構成
ついで、図2を参照しながら、第1実施形態のストレージ制御装置(管理部)10の機能構成について説明する。なお、図2は、図1に示すストレージ制御装置10の機能構成の一例を示すブロック図である。
第1実施形態のストレージ制御装置10は、DWPDの異なる(つまり寿命の異なる)複数のSSD21,22が混在するストレージ装置1において、複数のSSD21,22に格納されるデータブロックを管理する。ストレージ制御装置10において、CPU11は、プログラムを実行することで、図2に示すように、データキャッシング処理部111、データ圧縮・重複排除処理部112、SCMライトバッファ管理部113、データアクセス特性判定処理部114、データ移動制御部115、SSDプール管理部116、及びSSDドライバ117として機能してもよい。前述したように、SSDコントローラ14が、SSDプール管理部116、及びSSDドライバ117としての機能を果たしてもよい。
なお、プログラムは、コンピュータ読取可能な記録媒体であって可搬型の非一時的な記録媒体に記録された形態で提供される。当該記録媒体としては、磁気ディスク,光ディスク,光磁気ディスクなどが挙げられる。また、光ディスクとしては、CD(Compact Disk),DVD(Digital Versatile Disk),ブルーレイディスクなどが挙げられる。CDは、CD−ROM(Read Only Memory),CD−R(Recordable)/RW(ReWritable)などを含む。DVDは、DVD−RAM,DVD−ROM,DVD−R,DVD+R,DVD−RW,DVD+RW,HD(High Definition) DVDなどを含む。
このとき、CPU11は、上述のごとき記録媒体からプログラムを読み取って内部記憶装置または外付けの記憶装置に格納して用いる。CPU11は、プログラムを、ネットワークを介して受信し内部記憶装置または外付けの記憶装置に格納して用いてもよい。
ホストインタフェース15は、前述した通りホストサーバ30と通信可能に接続され、ホストサーバ30との間でデータの送受信を行なう。
データキャッシング処理部111は、ホストサーバ30との間でデータの転送を高速に行なうためのデータキャッシュ機能を果たす。データキャッシング処理部111は、ホストサーバ30から転送された書込み対象データを、DRAM12上で保持し、実格納場所であるSSD21,22へ書き込む前にホストサーバ30に対して書込み完了応答を行なう。これにより、データキャッシング処理部111は、書込み処理性能を高速化させるバッファ処理を行なう。また、データキャッシング処理部111は、ホストサーバ30から読出し要求を受けたデータを、ホストサーバ30への転送後もDRAM12で保持し、再度同じデータに対する読出し要求を受けた場合に高速応答を可能にするキャッシュ処理を行なう。さらに、データキャッシング処理部111は、DRAM12にキャッシュされているデータブロックの有無を判定するキャッシュヒット判定処理と、長期間アクセスされないデータブロックをDRAM12から破棄するLRU(Least Recently Used)制御機能とも有する。なお、書込み要求に対して完了応答を返すタイミングは、DRAM12へのキャッシング時点(ライトバック方式)と、SCM13またはSSD21,22等の不揮発性メディアにデータブロックを格納した時点(ライトスルー方式)とのいずれか一方を選択可能である。
データ圧縮・重複排除処理部112は、ホストサーバ30等から受信するデータ量を削減する。データ圧縮・重複排除処理部112は、ホストサーバ30から転送される書込み対象データをブロック長単位(通常4Kbyteあるいは8Kbyte)のデータブロックに分割し、分割後のデータブロックに対し、以下のような重複排除処理や圧縮処理を実行する。なお、書込み対象データのデータ長がブロック長単位に満たない場合、当該書込み対象データに対し、0データをパディングすることで、ブロック長単位のデータブロックが作成される。
重複排除処理では、ストレージ装置1内に同じデータブロックが格納されているか否かが判定され、既に同じデータブロックが存在すれば、データブロックの格納は行なわれずにメタ情報が更新される。ここで、メタ情報には、論理ボリュームのLBA(Logical Block Address)情報と物理SSDまたはSCMの実格納場所とをマッピングするマッピング情報が含まれるほか、後述する参照数が含まれる。圧縮処理では、データブロックが可逆形式で縮小・圧縮される。
また、データ圧縮・重複排除処理部112は、ホストサーバ30からの読出し要求時、重複排除されたデータブロックを復元する機能や、圧縮されているデータブロックを伸長する機能も有する。そして、データ圧縮・重複排除処理部112は、重複排除処理時に、後述するSSDプール管理部116と連携し、ホストサーバ30からLUN(Logical Unit Number)によって参照される論理ボリュームと物理SSD21,22またはSCM13との対応関係を記録するメタ情報や、後述する参照数を管理する。
データ圧縮・伸長論理や重複排除論理に関しては、一般に使用されており、本実施形態ではその説明は省略する。また、本実施形態において、重複排除処理と圧縮処理との実行順序、及び圧縮処理自体の有効・無効は関係ない。しかし、本実施形態では、重複排除処理で管理されるデータブロックの参照数は、データブロックのアクセス特性の判定・推定に利用されるため、データ圧縮・重複排除処理部112における重複排除機能は有効にする。参照数は、リファレンスカウンタ(Reference Counter)値と表記されてもよいし、重複排除参照数あるいは重複回数と表記されてもよい。
SCMライトバッファ管理部113は、DRAM12よりもアクセス性能は劣るがDRAM12よりも安価かつ大容量で不揮発性を有し、かつSSD21,22よりも高価ではあるがSSD21,22よりも高速であるSCM13を利用する。つまり、SCMライトバッファ管理部113は、DRAM12とSSD21,22との中間のアクセス性能を有するSCM13で、ホストサーバ30からの書込み対象データ(データブロック)をSSD21,22に格納する前にバッファリングする。これにより、ストレージ性能の向上が図られる。
また、第1実施形態では、実際にSSD21,22に格納する前に、SCM13上でデータブロックのアクセス特性の判定を行なうことで、SSDプール(SSD群)間のデータブロックの移動量を削減することが可能になる。SSD部20には、DWPDの大きいSSD21が属するSSDプールと、DWPDの小さいSSD22が属するSSDプールとが含まれる(図4参照)。
なお、SCM13を具備しないストレージ装置10Aについて、第2実施形態において図14〜図20を参照しながら説明する。つまり、第1実施形態では、SCM13を利用したデータ最適配置手法について説明し、第2実施形態では、SCM13を利用しないデータ最適配置手法について説明する。そのため、第2実施形態では、第1実施形態におけるSCMライトバッファ管理部113が存在しない(図15参照)。
データアクセス特性判定処理部114は、定期的にデータブロックの移動判定を行なうために、データブロックに対するアクセス特性の判定または推定を行なう判定処理部に相当する。データアクセス特性判定処理部114は、判定処理部114と略記する場合がある。特に、データアクセス特性判定処理部114は、ホストサーバ30から書き込まれるデータ(分割後のデータブロック)のアクセス特性が読出し重視(Read Intensive)であるか否かを判断する。本実施形態では、読出し重視のデータブロックをDWPDの小さい(寿命の短い)SSD22に配置することで、寿命の短いSSD22の寿命を延ばすことを目的としている。このため、データアクセス特性判定処理部114によって、読出し重視のデータブロックが見い出される。ある一時点において、読出し重視ではないデータブロックは、全て書込み重視(Write Intensive)として扱われる。その後の時間経過に伴い、先の判定タイミングにおいて書込み重視と判断されたデータブロックが、のちの判定タイミングで読出し重視であると判断されることは起き得る。
なお、第1実施形態において、判定処理部114は、前述した重複排除処理(重複排除機能)によって管理される、データブロックの参照数(重複回数)に基づいて、アクセス特性の判定または推定を行なってもよい。判定処理部114は、例えば、データブロックの参照数が2以上のデータブロックのアクセス特性は読出し重視であると判定する。また、判定処理部114は、アクセス特性が読出し重視でない(参照数が2以上でない)データブロックのアクセス特性は書込み重視であると推定してもよい。このとき、判定処理部114は、参照数が1で書込み後所定時間経過したデータブロックのアクセス特性は書込み重視であると推定してもよい。
データ移動制御部115は、データブロックの移動を実行するもので、寿命の異なる複数のSSDのうち、判定処理部114によって判定または推定されたアクセス特性に応じたSSD21または22に、データブロックを格納する格納制御部の一例である。特に、データ移動制御部115は、判定処理部114によるアクセス特性判定で読出し重視と判断されたデータブロックを、SCM13から、DWPDの小さいSSD22へ移動させる処理を担う。SCMライトバッファ管理部113の有無により、データ移動処理の動作が異なるが、その差異については後述する。
なお、第1実施形態において、データ移動制御部115は、寿命の異なる複数のSSD21,22のうち、判定処理部114によって判定または推定されたアクセス特性に応じたSSD21または22に、データブロックを格納する。このとき、データ移動制御部115は、参照数が2以上のデータブロックを、他のSSD21よりも寿命の短い(DWPDの小さい)SSD22に格納してもよい。また、データ移動制御部115は、アクセス特性が読出し重視でないデータブロックを、他のSSD22よりも寿命の長いSSD21に格納してもよい。さらに、データ移動制御部115は、判定処理部114によってアクセス特性が読出し重視であると判定されたデータブロックを、SCM13から、他のSSD21よりも寿命の短いSSD22に格納する。一方、データ移動制御部115は、判定処理部114によってアクセス特性が書込み重視であると推定されたデータブロックを、SCM13から、他のSSD22よりも寿命の長いSSD21に格納する。
SSDプール管理部116は、ホストサーバ30からLUNで参照される論理ボリュームと、物理SSD21,22またはSCM13との対応関係を、データ圧縮・重複排除処理部112と連携して管理する。当該管理の手法は、物理的なSSD21,22からチャンクと呼ばれるブロックを確保し、当該チャンクを論理ボリュームと対応付けるシンプロビジョニング(Thin Provisioning)機能において一般に使用される手法であり、本実施形態でもその手法が利用される。また、SSDプール管理部116は、寿命指標であるDWPDが同一または近いSSDをSSDプールにまとめる機能を有していてもよい。本実施形態では、SSD部20において、例えば、DWPDの大きいSSD21が属するSSDプールと、DWPDの小さいSSD22が属するSSDプールとにまとめられる(図4参照)。
SSDドライバ117は、SSD21,22との間でデータ(データブロック)の送受信を行なう。
〔2−3〕動作
次に、図3に示すフローチャート(ステップS1〜S5)に従って、図2に示すストレージ制御装置10を含むストレージ装置1でのデータ書込み処理について説明する。
まず、ホストインタフェース15によってホストサーバ30から書込み要求とともに書込み対象のデータが受信されると、データキャッシング処理部111によって、書込み対象のデータは、DRAM12上でバッファリングされる(ステップS1)。そして、バッファリング時点で、データキャッシング処理部111からホストインタフェース15経由で、ホストサーバ30へ書込み完了応答が返される。
ホストサーバ30に対し書込み完了応答を行なった後、DRAM12上のデータは、所定のブロック長単位のデータブロックに分割される。そして、データ圧縮・重複排除処理部112によって、データブロック毎に、圧縮処理や重複排除処理といったデータ量削減処理が実行される(ステップS2)。本実施形態では、データブロックの参照数に基づきデータブロックのアクセス特性の判定を行なう。このため、圧縮処理の有効/無効や、圧縮処理と重複排除処理との処理順序は、本実施形態と関係ない。したがって、本実施形態では、重複排除処理に着目して説明を行なう。
重複排除処理では、DRAM12上の書込み対象のデータブロックが重複していると判断された場合、不揮発性デバイス(SCM13またはSSD21,22)に格納済の重複データと同じであることが分かるよう2種類のメタ情報が更新される。2種類のメタ情報は、上述したマッピング情報及びリファレンスカウンタ値である。ただし、データブロックそのものの不揮発性デバイスへのライトバック(Write Back)処理は行なわれず、メタ情報更新後、DRAM12上のデータは破棄される。データブロックが重複していないと判断された場合、ライトバック処理が行なわれる。そして、DRAM12上のデータブロックはSCM13へコピーされた後、当該データブロックについての2種類のメタ情報が更新されてから、DRAM12上のデータブロックは削除される。
ここで、図4は、第1実施形態における論理ボリュームのデータ配置を説明する図であり、論理ボリュームとその実データが配置される不揮発性デバイスとの関係を示したものである。第1実施形態において、論理ボリュームの実データは、SCM13あるいはSSD21,22のどちらかに格納されている。DRAM12上の書込み対象データブロックがライトバックされた直後、当該書込み対象データは、SCMライトバッファ管理部113によって、一旦、SCM13に保持される(ステップS3)。その後、当該書込み対象データは、判定処理部114によって、SCM13上のデータブロックのアクセス特性が判定される(ステップS4)。そして、当該書込み対象データブロックは、データ移動制御部115によって、アクセス特性の判定結果に応じて、SSDプールのSSD21または22に移動される(ステップS5)。
2種類のメタ情報である、マッピング情報、及びリファレンスカウンタ値は、論理ボリュームのマッピングテーブル120(図5参照)とSCMアロケーションリスト122(図8参照)とを用いて、例えばDRAM12上で管理される。マッピング情報は、「論理ボリューム番号と論理ブロックアドレスとの組合せ」と、「不揮発性デバイスの番号とブロック位置との組合せ」とをマッピングする情報である。また、リファレンスカウンタ値は、一つの物理データブロックが複数の論理データブロックと対応している際の「論理データブロックの参照数」に相当する。なお、リファレンスカウンタ値は、シンプロビジョニングと呼ばれる「論理-物理アドレス変換処理」を行なうSSDプール管理部116においても保持される。シンプロビジョニング処理は、一般的な処理であるため、ここでは、リファレンスカウンタ値についての詳細な説明は省略する。
ここで、図5は、第1実施形態における論理ボリュームと不揮発性デバイスとを対応付けるマッピングテーブル120の構造の一例を示す図である。マッピングテーブル120の各エントリには、対応するデータブロックについて、次の情報が、図5に示すようなテーブル形式で、例えばDRAM12上において展開保持される。
・論理アドレス(ボリューム# LBA): ホストサーバ30からアクセスされるLUNに対応する論理ボリュームの番号と、その論理ボリューム内でのデータブロックの位置を示すLBAとの組合せ情報。
・フラグ(Flag): 論理アドレスで示されるデータブロックが格納されている不揮発性デバイスがSCM13であるかSSD21,22であるかを示す情報。第1実施形態では、SCM13にデータブロックが格納されている時にフラグは1に設定される一方、SSD21または22にデータブロックが格納されている時にフラグは0に設定される。
・不揮発性デバイスアドレス(SCM#-Page#またはSSD-Pool#-block#-Offset): フラグの状態が1の時、SCM13上におけるデータブロックの位置の情報である一方、フラグの状態が0の時、データブロックのSSDプール内の論理位置の情報。
なお、図6は、図5に示すマッピングテーブル120によるマッピングの具体例を示す図であり、図5に示すマッピングテーブル120によるマッピングを概念化したものである。
図3のステップS3におけるSCMライトバッファ管理では、SCM13に確保されるライトバッファ領域の、SCMフリーリスト121(図7参照)とSCMアロケーションリスト122(図8参照)とが管理される。ライトバッファ領域は、ホストサーバ30からの書込み対象データを、最終格納先であるSSD21,22へ移動させるまで、一時的に格納する領域である。各々のリスト121,122は、リンクリストとしてキュー管理される。DRAM12上からの書込み対象データブロックをライトバックする際、SCMフリーリスト121で参照される空き領域(フリー領域)が、ライトバック先の領域として選択されSCMフリーリスト121からデキューされ、SCMアロケーションリスト122にエンキューされる。なお、図7は、第1実施形態におけるSCMフリーリスト121の構造の一例を示す図である。図8は、第1実施形態におけるSCMアロケーションリスト122の構造の一例を示す図である。
SCMフリーリスト121とSCMアロケーションリストとの構造は基本的に同じで、SCMフリーリスト121は、SCM13における空き領域のリンクリストであり、SCMアロケーションリスト122は、SCM13において、論理ボリュームのデータが格納されている領域についてのリンクリストである。SCMフリーリスト121及びSCMアロケーションリスト122における各エントリには、次の情報が、それぞれ図7及び図8に示すようなテーブル形式で、例えばDRAM12上に展開保持される。
・ヘッダ(Header): エントリの識別情報とキュー操作時の排他処理用ロックフラグとを含む。図8に示す例では、SCM13のページ番号を利用したシーケンシャル番号が、エントリの識別情報として用いられている。
・前エントリポインタ(Previous Entry): リンクリストの直前のエントリをポイントする。エントリが先頭エントリの場合、アンカ(Free Top AnchorまたはAllocated Top Anchor)をポイントする。例えば、図7において先頭のPrevious EntryはFree Top Anchorをポイントし、図8において先頭のPrevious EntryとしてのTop AnchorはAllocated Top Anchorをポイントする。
・次エントリポインタ(Next Entry): リンクリストの直後のエントリをポイントする。エントリが最後尾エントリの場合、アンカ(Free Bottom AnchorまたはAllocated Bottom Anchor)をポイントする。例えば、図7において最後尾のNext EntryはFree Bottom Anchorをポイントし、図8において最後尾のNext EntryとしてのBottom AnchorはAllocated Bottom Anchorをポイントする。
・SCMアドレス: 複数のSCM13が搭載された場合のSCM番号と、各SCM13内でページ単位に分割された領域のシーケンシャル番号との組合せであり、物理領域を特定している。なお、SCMフリーリスト121におけるSCMアドレスは、空き領域の位置を特定する上記組合せの情報である。
・リファレンスカウンタ: エントリに対応するデータブロックが複数の論理アドレスから参照されている場合に、その参照数(重複回数)を示す値。この値は、データ圧縮・重複排除処理部112の重複排除機能によって管理される。当該データブロックが重複排除されていないデータブロックつまり重複していないデータブロックである場合、リファレンスカウンタの値は1になる。図8に示す例では、シーケンシャル番号#20のエントリの参照数は3であり、シーケンシャル番号#80のエントリの参照数は2であり、シーケンシャル番号#15のエントリの参照数は1である。
・TOD(Time Of Day): エントリがSCMアロケーションリスト122にエンキューされた時刻。
・データ長: SCM13に格納されている、エントリに対応するデータブロックのサイズ(所定のブロック長)。データの圧縮処理を行なわない場合、データブロックのサイズは、固定長で、SCM13を分割しているページサイズと同じサイズである。図8に示す例では、各エントリのデータ長には8192が設定されている。
図3のステップS2における重複排除処理では、ホストサーバ30から書き込まれたDRAM12上のデータブロックが、既に書込み済みの他のデータブロックと重複すると判断され、且つ当該データブロックがSCM13上に存在している場合、以下の処理が行なわれる。つまり、当該データブロックに対応するマッピングテーブル120のフラグに1が設定されている場合、SCMアロケーションリスト122のリファレンスカウンタ値が1増加される。そして、DRAM12上のデータブロックのライトバック処理は行なわれることなく、DRAM12上のデータブロックは削除される。
なお、データ移動制御部115が後で実行するSSD21,22へのデータ移動処理によって、SCM13上のデータブロックのSSD21,22への移動を完了した時点で、SCMライトバッファ管理部113は、当該データブロックに対応するSCMアロケーションリスト122のエントリをSCMフリーリスト121に戻す。
次に、図3のステップS4におけるデータアクセス特性判定処理は、インターバル時間調整処理と移動データ抽出処理とを含む。インターバル時間調整処理は、データアクセス特性判定処理部114が動作する時間間隔を調整する処理である。移動データ抽出処理は、データアクセス特性判定処理部114によって実行され、SCM13からDWPDの大きいSSD21へ移動すべきデータブロックと、DWPDの小さいSSD22へ移動すべきデータブロックとを抽出する処理である。
インターバル時間調整処理においては、例えば図9に示す初期化処理と、例えば図10に示す時間調整処理とが含まれる。ここで、初期化処理は、装置稼働開始時及び動作モード設定変更時に実行される処理であり、時間調整処理は、インターバル時間毎に実行される処理である。また、移動データ抽出処理においては、例えば図11〜図13に示す処理が実行される。
ここで、図9に示すフローチャート(ステップS11〜S15)に従って、第1実施形態のストレージ制御装置10による初期化処理について説明する。
初期化処理では、インターバル時間として固定時間が指定されている場合、つまり自動調整が選択されていない場合(ステップS11のNOルート)、指定される固定時間が設定され(ステップS12)、当該固定時間でインターバルタイマが起動され(ステップS15)、図10に示す処理が実行される。
一方、インターバル時間の自動調整が選択されている場合(ステップS11のYESルート)、インターバル時間のデフォルト値が設定される(ステップS13)。また、次回起動時に行なわれる自動調整で使用されるデータ移動数のデフォルト値が設定記憶される(ステップS14)。そして、インターバル時間のデフォルト値でインターバルタイマが起動され(ステップS15)、図10に示す処理が実行される。
ついで、図10に示すフローチャート(ステップS21〜S28)に従って、第1実施形態のストレージ制御装置10による時間調整処理について説明する。
時間調整処理では、まず、図11〜図13を参照しながら後述する移動データ抽出処理が実行される(ステップS21)。そして、インターバル時間として固定時間が指定されている場合、つまり自動調整が選択されていない場合(ステップS22のNOルート)、当該固定時間でインターバルタイマが再起動され(ステップS28)、図10に示す処理が再実行される。これにより、固定時間間隔で移動データ抽出処理(ステップS21)が実行される。
一方、インターバル時間の自動調整が選択されている場合(ステップS22のYESルート)、移動データ抽出処理(ステップS21)で抽出される、小DWPDのSSD22へ移動させるデータブロック数に関して、前回の数と今回の数とが比較される(ステップS23)。つまり、今回の移動データ抽出処理で抽出された、小DWPDのSSD22へ移動させるデータブロック数と、前回の移動データ抽出処理で抽出された小DWPDのSSD22へ移動させるデータブロック数とが比較される。なお、DWPDの小さいSSD22は、小DWPDのSSD22と表記し、DWPDの大きいSSD21は、大DWPDのSSD21と表記する場合がある。
比較の結果、前回のデータブロック数が今回のデータブロック数よりも大きい場合(ステップS24のYESルート)、次回のインターバル時間は縮小される(ステップS25)。例えば、今回のインターバル時間とインターバル時間の下限値との和を所定係数2で除算した値が、次回のインターバル時間として算出される。これにより、インターバル時間は、下限値を下回ることなく縮小される。
一方、前回のデータブロック数が今回のデータブロック数以下である場合(ステップS24のNOルート)、次回のインターバル時間は拡大される(ステップS26)。例えば、今回のインターバル時間とインターバル時間の上限値との和を所定係数2で除算した値が、次回のインターバル時間として算出される。これにより、インターバル時間は、上限値を上回ることなく拡大される。
次回のインターバル時間の算出後、今回の移動データ抽出処理(ステップS21)で抽出された、小DWPDのSSD22へ移動させるデータブロック数は、次回の比較の際における前回のデータブロック数として記憶される(ステップS27)。この後、ステップS25またはS26において算出された次回のインターバル時間でインターバルタイマが再起動され(ステップS28)、図10に示す処理が再実行される。これにより、インターバル時間間隔で移動データ抽出処理(ステップS21)が実行される。
このように、第1実施形態においては、図10のステップS23〜S26の処理によってインターバル時間が自動調整される。これにより、SCM13に一時的に保存される書込み対象データ(データブロック)をSCM13から溢れさせることなく、SCM13の領域を効率的に利用することができる。
次に、図11〜図13に示すフローチャートに従って、第1実施形態のストレージ制御装置10による移動データ抽出処理について説明する。
まず、図11に示すフローチャート(ステップS31〜S33)に従って、第1実施形態のストレージ制御装置10による移動データ抽出処理の全体的な流れについて説明する。データブロックの移動先のSSDプール(SSD群;図4参照)は、DWPDの値に応じてまとめられる複数のSSD21または22を含む。このとき、当該SSDプールへのアクセスは、チャンクと呼ばれるブロック単位で行なわれる。第1実施形態の移動データ抽出処理は、後述するように、SCM13上に格納されている移動すべきデータブロックを、チャンク単位毎にまとめる処理である。
第1実施形態の移動データ抽出処理は、図11に示す3つの処理(ステップS31〜S33)を含む。最初の処理(ステップS31)では、SCMアロケーションリスト122のエントリが、リファレンスカウンタ値をキーとして昇順にソーティングされる。そして、リファレンスカウンタ値が1であるエントリは、TODの古いものから順にソーティングされる。
ステップS31でのソート処理後、リファレンスカウンタ値が2以上のデータブロックをDWPDの小さいSSDプール(SDD22)に移動させるための抽出処理が行なわれる(ステップS32)。ここで、リファレンスカウンタ値が2以上であるということは、複数の論理データブロックから参照されている重複データブロックであることを意味する。重複排除の仕組みから、その参照元の論理データが更新された場合でもリファレンスカウンタ値が減るだけで物理データブロックは変更されない。つまり、リファレンスカウンタ値が2以上のデータブロックは、その値が1になるまでは物理データブロックはリードオンリのデータであることが保障される。このリファレンスカウンタ値が2以上のデータをまとめたチャンクは、読出し重視(Read Intensive)のブロックであり、DWPDの小さいSSDプールに格納すべきデータである。図11のステップS32で実行される処理については、図12を参照しながら後述する。
DWPDの小さいSSDプール(SSD22)へ移動するデータブロックの抽出完了後、DWPDの大きいSSDプール(SSD21)へ移動するデータを抽出する処理として、リファレンスカウンタ値が1のエントリを調べる処理が実行される(ステップS33)。図11のステップS33で実行される処理については、図13を参照しながら後述する。
図12に示すフローチャート(ステップS41〜S50)に従って、図11のステップS32で実行される、リファレンスカウンタ値が2以上のデータブロックの抽出処理について説明する。
ここで、SCMアロケーションリスト122のエントリが前処理(ステップS31の処理)によってリファレンスカウンタ値をキーとして昇順にソートされている。そこで、図12に示す処理では、各エントリのデータ長に基づきチャック残サイズを算出しながら、ある移動チャンク(ブロック)に入るだけ、エントリに対応するデータブロックが登録される。そして、当該移動チャンクがフルの状態になった場合、次の移動チャンクにデータブロックが登録される。この処理を、リファレンスカウンタ値が2以上のデータブロックが存在する限り、繰り返すことによって、DWPDの小さいSSDプールへ移動させるデータが抽出される。
具体的には、図12に示すように、まず、ソート後のSCMアロケーションリスト122が参照され、リファレンスカウンタ値が2以上のエントリがあるか否かが判定される(ステップS41)。リファレンスカウンタ値が2以上のエントリがない場合(ステップS41のNOルート)、リファレンスカウンタ値が2以上のデータブロックの抽出処理は終了する。
一方、リファレンスカウンタ値が2以上のエントリがある場合(ステップS41のYESルート)、リファレンスカウンタ値が2以上のデータブロックを登録する空の移動チャンクが設定される(ステップS42)。また、チャンク残サイズとして、当該移動チャンクのチャンクサイズが設定される(ステップS43)。
この後、SCMアロケーションリスト122から、リファレンスカウンタ値が2以上のデータブロックが一つ選択され(ステップS44)、選択したエントリのデータ長がチャンク残サイズよりも小さいか否かが判定される(ステップS45)。選択したエントリのデータ長がチャンク残サイズよりも小さい場合(ステップS45のYESルート)、選択したエントリに対応するデータブロックは、移動チャンクに登録される(ステップS46)。この後、チャンク残サイズとして、チャンクサイズから選択したエントリのデータ長を減算した値が設定される(ステップS47)。
そして、リファレンスカウンタ値が2以上のエントリがあるか否かが判定される(ステップS48)。リファレンスカウンタ値が2以上のエントリがない場合(ステップS48のNOルート)、リファレンスカウンタ値が2以上のデータブロックの抽出処理は終了する。リファレンスカウンタ値が2以上のエントリがある場合(ステップS48のYESルート)、特性判定処理部114はステップS44の処理に戻る。
また、選択したエントリのデータ長がチャンク残サイズ以上である場合(ステップS45のNOルート)、新たに空の移動チャンクが設定される(ステップS49)。また、チャンク残サイズとして、当該移動チャンクのチャンクサイズが設定されてから(ステップS50)、特性判定処理部114はステップS45の処理に戻る。
図13に示すフローチャート(ステップS51〜S60)に従って、図11のステップS33で実行される、リファレンスカウンタ値が1のデータブロックの抽出処理について説明する。
ここで、リファレンスカウンタ値が1であるということは、参照元のデータブロックが更新された場合、ポイントされている物理データブロックも更新されるということである。あるいは、別領域に更新データブロックが格納され、その物理データブロックが論理データブロックから新たにポイントされると同時に、ポイントされていた古い物理データブロックが無効化される場合もある。一方、時間の経過に伴い、重複データブロックが増え、リファレンスカウンタ値が1からもっと大きな値数に変わることもある。したがって、リファレンスカウンタ値が1のデータブロックは将来リードオンリのデータブロックになる可能性もある。このため、ある程度の長期間に亘ってリファレンスカウンタ値を監視することが望ましい。しかし、SCM13の容量も有限であるため、第1実施形態では、ある規定時間が経過した、リファレンスカウンタ値が1のデータブロックは、DWPDの大きいSSDプールへ移動させる。
リファレンスカウンタ値が1のデータブロック(エントリ)は、前処理(ステップS31)によってSCM13への登録時刻であるTODをキーとして古い順にソートされている。このソート結果が参照され、SCM13への登録後、規定時間以上経過しているデータブロック(エントリ)が抽出される。図13に示す処理でも、各エントリのデータ長に基づきチャック残サイズを算出しながら、ある移動チャンク(ブロック)に入るだけ、エントリに対応するデータブロックが登録される。そして、当該移動チャンクがフルの状態になった場合、次の移動チャンクにデータブロックが登録される。この処理を、規定時間以上の時間が経過しているデータブロックが存在する限り、繰り返すことによって、DWPDの大きいSSDプールへ移動させるデータが抽出される。
具体的には、図13に示すように、まず、ソート後のSCMアロケーションリスト122が参照され、リファレンスカウンタ値が1のエントリのうち登録後規定時間以上の時間が経過しているエントリがあるか否かが判定される(ステップS51)。該当するエントリがない場合(ステップS51のNOルート)、リファレンスカウンタ値が1のデータブロックの抽出処理は終了する。
一方、該当するエントリがある場合(ステップS51のYESルート)、当該エントリに対応するデータブロックを登録する空の移動チャンクが設定される(ステップS52)。また、チャンク残サイズとして、当該移動チャンクのチャンクサイズが設定される(ステップS53)。
この後、SCMアロケーションリスト122から、リファレンスカウンタ値が1で登録後規定時間以上の時間が経過しているデータブロックが一つ選択され(ステップS54)、選択したエントリのデータ長がチャンク残サイズよりも小さいか否かが判定される(ステップS55)。選択したエントリのデータ長がチャンク残サイズよりも小さい場合(ステップS55のYESルート)、選択したエントリに対応するデータブロックは、移動チャンクに登録される(ステップS56)。この後、チャンク残サイズとして、チャンクサイズから選択したエントリのデータ長を減算した値が設定される(ステップS57)。
そして、リファレンスカウンタ値が1のエントリのうち登録後規定時間以上の時間が経過しているエントリがあるか否かが判定される(ステップS58)。該当するエントリがない場合(ステップS58のNOルート)、リファレンスカウンタ値が1のデータブロックの抽出処理は終了する。該当するエントリがある場合(ステップS58のYESルート)、特性判定処理部114はステップS54の処理に戻る。
また、選択したエントリのデータ長がチャンク残サイズ以上である場合(ステップS55のNOルート)、新たに空の移動チャンクが設定される(ステップS59)。また、チャンク残サイズとして、当該移動チャンクのチャンクサイズが設定されてから(ステップS60)、特性判定処理部114はステップS55の処理に戻る。
最後に、図3のステップS5におけるSSD21,22へのデータ移動処理では、図3のステップS4におけるデータアクセス特性判定処理によって抽出された、SSD21または22へ移動すべきデータブロック(移動チャンク)を、SSD21または22へ移動させる処理が実行される。SCM13からSSDプールへのチャンク単位でのデータ移動は、シンプロビジョニングと呼ばれる一般的なデータ管理手法であるので、ここでは、データ移動処理そのものについては言及しない。
SCM13上のデータブロックのSSD21,22への移動が完了すると、図3のステップS5におけるSSD21,22へのデータ移動処理では、メタデータが更新されるため、SCMライトバッファ管理部113へ次の二つの処理が依頼される。一つ目の処理は、移動させたデータブロックを管理していたSCMアロケーションリスト122のエントリを、SCMフリーリスト121へ戻す処理である。二つ目の処理は、移動させたデータブロックをポイントしているマッピングテーブル120の不揮発性デバイスアドレスの内容を、SCM13の位置情報からSSD21,22の位置情報に置き換え、フラグの値を、SSDを示す値0に変更する処理である。
以上のように、第1実施形態によれば、重複排除処理で管理されるリファレンスカウンタの値に着目してデータブロックを格納するSSD21,22が振り分けられる。これにより、データブロックのアクセス特性(読出し重視か書込み重視か)に応じて寿命指標(DWPD)の異なるSSD21,22へ最適なデータ格納が実現され、特に、DWPDの小さいSSD22の寿命を延ばすことが可能になる。
〔3〕第2実施形態
〔3−1〕ハードウェア構成
前述したように、第1実施形態では、SCM13を利用したデータ最適配置手法について説明した。これに対し、第2実施形態では、SCM13を利用しないデータ最適配置手法について説明する。このため、図14に示すように、第2実施形態のストレージ装置1Aにおけるストレージ制御装置10Aのハードウェア構成は、SCMが省略されている点で第1実施形態のストレージ制御装置10と異なっている。図14は、本発明の第2実施形態としてのストレージ制御装置10Aを含むストレージ装置1Aのハードウェア構成の一例を示すブロック図である。なお、図14中、既述の符号と同一の符号は、同一もしくはほぼ同一の部分を示しているので、その説明は省略する。
上述のように、第2実施形態のストレージ制御装置10Aでは、不揮発性デバイスとしてSSDのみを備えるハードウェア構成が採用される。第1実施形態で用いられるSCMは、SSDよりも高速なアクセスが可能であるが、SSDよりも高価であると考えられる。したがって、第2実施形態によれば、SCMを用いないため、第1実施形態と比べ、より安価な構成で第1実施形態と同様の作用効果を得ることができる。
なお、第2実施形態のストレージ制御装置10Aも、第1実施形態と同様、クラスタ構成を採らないシングルノード構成であり、且つライトバック処理を採用する場合について説明する。
〔3−2〕機能構成
ついで、図15を参照しながら、第2実施形態のストレージ制御装置(管理部)10Aの機能構成について説明する。なお、図15は、図14に示すストレージ制御装置10Aの機能構成の一例を示すブロック図である。図15中、既述の符号と同一の符号は、同一もしくはほぼ同一の部分を示しているので、その説明は省略する場合がある。
第2実施形態のストレージ制御装置10Aも、第1実施形態と同様、DWPDの異なる複数のSSD21,22が混在するストレージ装置1Aにおいて、複数のSSD21,22に格納されるデータブロックを管理する。ストレージ制御装置10Aにおいて、CPU11は、プログラムを実行することで、図15に示すように、データキャッシング処理部111、データ圧縮・重複排除処理部112、データアクセス特性判定処理部114、データ移動制御部115、SSDプール管理部116、及びSSDドライバ117として機能してもよい。前述したように、SSDコントローラ14が、SSDプール管理部116、及びSSDドライバ117としての機能を果たしてもよい。なお、第2実施形態においても、プログラムは、第1実施形態と同様にして提供される。
特に、第2実施形態では、DRAM12上のデータブロックのライトバック先は、DWPDの大きいSSDプール(寿命の長いSSD21)である。つまり、アクセス特性が不明なデータブロックは、DWPDの大きいSSDプールに格納しておく。そして、第2実施形態のデータアクセス特性判定処理部114は、SSD21上のデータブロックについて定期的に移動データ抽出処理を行なう。移動データ抽出処理によって抽出されたデータブロックは、第2実施形態のデータ移動制御部115によって、DWPDの大きいSSDプールからDWPDの小さいSSDプールへチャンク単位で移動される。
なお、第2実施形態で行なわれる、DWPDの大きいSSD21からDWPDの小さいSSD22へのデータブロックの移動処理は、第1実施形態のごとくSCMを具備する装置にも適用可能である。これにより、第1実施形態において、当初DWPDの大きいSSD21に格納され、書込み重視であると推定されたデータブロックが、推定後、読出し重視であると判定された場合に最適なデータ配置を行なうことができる。
第2実施形態のデータキャッシング処理部111及びデータ圧縮・重複排除処理部112は、それぞれ、第1実施形態のデータキャッシング処理部111及びデータ圧縮・重複排除処理部112と同様の機能を果たす。
第2実施形態のデータアクセス特性判定処理部114も、第1実施形態と同様、定期的にデータブロックの移動判定を行なうために、データブロックに対するアクセス特性の判定または推定を行なう判定処理部の一例である。特に、第2実施形態の判定処理部114は、DWPDの大きいSSD21に格納されたデータブロックに対するアクセス特性の判定または推定を行なう。
そして、第2実施形態のデータ移動制御部(格納処理部)115は、判定処理部114によってアクセス特性が読出し重視であると判定されたデータブロックを、DWPDの大きいSSD21から、DWPDの小さいSSD22に格納する。
なお、第2実施形態において、第1実施形態と同様、重複排除処理(重複排除機能)によって管理される、データブロックの参照数(重複回数)に基づいて、アクセス特性の判定または推定を行なってもよい。判定処理部114は、例えば、データブロックの参照数が2以上のデータブロックのアクセス特性は読出し重視であると判定する。また、判定処理部114は、アクセス特性が読出し重視でないデータブロックのアクセス特性は書込み重視であると推定してもよい。
また、第2実施形態のSSDプール管理部116及びSSDドライバ117は、それぞれ、第1実施形態のSSDプール管理部116及びSSDドライバ117と同様の機能を果たす。
〔3−3〕動作
次に、図16に示すフローチャート(ステップS71〜S74)に従って、図15に示すストレージ制御装置10Aを含むストレージ装置1Aでのデータ書込み処理について説明する。
第1実施形態と同様、まず、ホストインタフェース15によってホストサーバ30から書込み要求とともに書込み対象のデータが受信されると、データキャッシング処理部111によって、書込み対象のデータは、DRAM12上でバッファリングされる(ステップS71)。そして、バッファリング時点で、データキャッシング処理部111からホストインタフェース15経由で、ホストサーバ30へ書込み完了応答が返される。
ホストサーバ30に対し書込み完了応答を行なった後、DRAM12上のデータは、所定のブロック長単位のデータブロックに分割される。そして、データ圧縮・重複排除処理部112によって、データブロック毎に、圧縮処理や重複排除処理といったデータ量削減処理が実行される(ステップS72)。第2実施形態でも、データブロックの参照数に基づきデータブロックのアクセス特性の判定を行なうため、重複排除処理に着目して説明を行なう。
重複排除処理では、DRAM12上の書込み対象のデータブロックが重複していると判断された場合、不揮発性デバイス(SSD21,22)に格納済の重複データと同じであることが分かるよう2種類のメタ情報が更新される。2種類のメタ情報は、上述したマッピング情報及びリファレンスカウンタ値である。ただし、データブロックそのものの不揮発性デバイスへのライトバック処理は行なわれず、メタ情報更新後、DRAM12上のデータは破棄される。データブロックが重複していないと判断された場合、ライトバック処理が行なわれる。そして、DRAM12上のデータブロックはDWPDの大きいSSD21へコピーされた後、当該データブロックについての2種類のメタ情報が更新されてから、DRAM12上のデータブロックは削除される。
第2実施形態において、論理ボリュームの実データは、DWPDの異なる複数のSSDプール(ここでは2種類のSSD21,22)のどこかに格納されている。DRAM12上の書込み対象データブロックがライトバックされた直後、当該書込み対象データは、DWPDの大きいSSDプールに保持される。その後、当該書込み対象データは、判定処理部114によって、DWPDの大きいSSDプールにおけるデータブロックのアクセス特性が判定される(ステップS73)。そして、アクセス特性が読出し重視であると判定されたチャンク(データブロック)は、データ移動制御部115によって、DWPDの大きいSSDプールからDWPDの小さいSSDプールに移動される(ステップS74)。一方、アクセス特性が読出し重視でないデータブロックは、DWPDの大きいSSDプールで保持される。
また、第2実施形態において、2種類のメタ情報である、マッピング情報、及びリファレンスカウンタ値は、論理ボリュームのマッピングテーブル120A(図17参照)を用いて、例えばDRAM12上で管理される。マッピング情報は、「論理ボリューム番号と論理ブロックアドレスとの組合せ」と、「不揮発性デバイスの番号とブロック位置との組合せ」とをマッピングする情報である。また、リファレンスカウンタ値は、一つの物理データブロックが複数の論理データブロックと対応している際の「論理データブロックの参照数」に相当する。なお、第1実施形態でも前述したように、リファレンスカウンタ値は、SSDプール管理部116においても保持されるが、ここでは言及しない。
ここで、図17は、第2実施形態における論理ボリュームと不揮発性デバイスとを対応付けるマッピングテーブル120Aの構造の一例を示す図である。マッピングテーブル120Aの各エントリには、対応するデータブロックについて、次の情報が、図17に示すようなテーブル形式で、例えばDRAM12上において展開保持される。
・論理アドレス(ボリューム# LBA): ホストサーバ30からアクセスされるLUNに対応する論理ボリュームの番号と、その論理ボリューム内でのデータブロックの位置を示すLBAとの組合せ情報。
・フラグ(Flag): 論理アドレスで示されるデータブロックが格納されているSSDプールがDWPDの大きいSSDプール(寿命の長いSSD21)であるかそれ以外であるかを示す情報。第2実施形態では、DWPDの大きいSSDプールにデータブロックが格納されている時にフラグは1に設定される。一方、それ以外のSSDプール(第2実施形態ではDWPDの小さいSSDプール/SSD22)にデータブロックが格納されている時にフラグは0に設定される。
・不揮発性デバイスアドレス(SSD-Pool#-block#-Offset): 対応するデータブロックのSSDプール内の論理位置の情報。
・リファレンスカウンタ(重複排除参照数): エントリに対応するデータブロックが複数の論理アドレスから参照されている場合に、その参照数(重複回数)を示す値。この値は、データ圧縮・重複排除処理部112の重複排除機能によって管理される。当該データブロックが重複排除されていないデータブロックつまり重複していないデータブロックである場合、リファレンスカウンタの値は1になる。図17に示す例では、不揮発性デバイスアドレスがSSD-Pool1-block15-Offset5のデータブロックの参照数は3である。また、不揮発性デバイスアドレスがSSD-Pool1-block10-Offset7のデータブロックの参照数は2であり、不揮発性デバイスアドレスがSSD-Pool2-block10-Offset3のデータブロックの参照数は2である。また、不揮発性デバイスアドレスがSSD-Pool1-block10-Offset1のデータブロックの参照数は1である。
なお、図18は、図17に示すマッピングテーブル120Aによるマッピングの具体例を示す図であり、図17に示すマッピングテーブル120Aによるマッピングを概念化したものである。
次に、図16のステップS73におけるデータアクセス特性判定処理は、第1実施形態と同様、インターバル時間調整処理と移動データ抽出処理とを含む。第2実施形態のインターバル時間調整処理は、第1実施形態と同様、データアクセス特性判定処理部114が動作する時間間隔を調整する処理である。第2実施形態のインターバル時間調整処理においても、図9及び図10を参照しながら前述した処理と同様の処理が実行されるので、その説明は省略する。
ただし、第2実施形態では、図10の移動データ抽出処理として、第1実施形態の図11〜図13に示す処理の代わりに、図19及び図20に示す処理が実行される。つまり、第2実施形態の移動データ抽出処理では、データアクセス特性判定処理部114によって、DWPDの大きいSSDプールからDWPDの小さいSSDプールへ移動すべきデータブロックを抽出する処理が実行される。
次に、図19及び図20に示すフローチャートに従って、第2実施形態のストレージ制御装置10Aによる移動データ抽出処理について説明する。
まず、図19に示すフローチャート(ステップS81,S82)に従って、第2実施形態のストレージ制御装置10Aによる移動データ抽出処理の全体的な流れについて説明する。第2実施形態において、データブロックの移動は、寿命の長いSSD21と寿命の短いSSD22との間での移動(図16のステップS74参照)になるので、チャンク単位で移動対象のデータブロックを抽出する。
第2実施形態の移動データ抽出処理は、図19に示す2つの処理(ステップS81,S82)を含む。最初の処理(ステップS81)では、マッピングテーブル120Aにおいてフラグが1のエントリ、つまり寿命の長いSSD21に格納されるデータブロックが、不揮発性デバイスアドレスをキーとしてソーティングされ、チャンク順に並べられる。
ステップS81でのソート処理後、判定処理部114は、各エントリのリファレンスカウンタ値を調査する。そして、判定処理部114は、リファレンスカウンタ値が2以上のエントリに対応するデータブロックの占める割合が設定値以上であるチャンクを、移動対象のチャンクとして抽出する(ステップS82)。例えば設定値が100%であれば、ステップS82で抽出される移動対象のチャンクに属する全てのデータブロックは、重複している、つまり重複排除の対象になっている。
図20に示すフローチャート(ステップS91〜S95)に従って、図19のステップS82で実行される、リファレンスカウンタ値が2以上のデータブロックの占める割合が設定値以上のチャンクの抽出処理について説明する。
まず、ステップS81でのソート結果が参照され、調査対象の最初のチャンクが選択される(ステップS91)。そして、選択されたチャンク内のデータブロックのうち、リファレンスカウンタ値が2以上のデータブロックの占める割合が、設定値以上であるか否かが判定される(ステップS92)。
リファレンスカウンタ値が2以上のデータブロックの占める割合が設定値未満である場合(ステップS92のNOルート)、全てのチャンクの調査が完了したか否かが判定される(ステップS94)。全てのチャンクの調査が完了した場合(ステップS94のYESルート)、抽出処理は終了する。一方、全てのチャンクの調査が完了していない場合(ステップS94のNOルート)、未調査の次のチャンクが選択され(ステップS95)、特性判定処理部114はステップS92の処理に戻る。
リファレンスカウンタ値が2以上のデータブロックの占める割合が設定値以上である場合(ステップS92のYESルート)、特性判定処理部114は、現在選択しているチャンクを、移動チャンク(移動対象のチャンク)として登録し(ステップS93)、ステップS94の処理に移行する。
最後に、図16のステップS74におけるSSD21,22間のデータ移動処理では、図16のステップS73におけるデータアクセス特性判定処理(図20の処理参照)によって抽出登録された移動チャンクを、DWPDの大きいSSD21からDWPDの小さいSSD22へ移動させる処理が実行される。
チャンクを移動させる処理では、次の三つの処理が、SSDプール管理部116へ依頼される。一つ目の処理は、移動元チャンクのデータブロックを移動先チャンクへコピーする処理である。二つ目の処理は、移動元チャンク領域の無効化処理である。三つ目は、先の二つの処理が完了した後、マッピングテーブル120Aの不揮発性デバイスアドレスの内容を、移動先の新しいアドレスに置き換える処理である。
上述のように、第2実施形態のストレージ制御装置10Aでは、重複排除処理で管理されるリファレンスカウンタの値に基づき、DWPDの大きいSSDプールからDWPDの小さいSSDプールへ、チャンク単位で読出し重視のデータブロックの移動が行われる。これにより、データブロックのアクセス特性(読出し重視か書込み重視か)に応じて寿命指標(DWPD)の異なるSSD21,22へ最適なデータ格納が実現され、特に、DWPDの小さいSSD22の寿命を延ばすことが可能になる。
また、第2実施形態によれば、第1実施形態で備えられるSCMを用いないため、第1実施形態と比べ、より安価な構成で第1実施形態と同様の作用効果を得ることができる。
〔4〕その他
以上、本発明の好ましい実施形態について詳述したが、本発明は、係る特定の実施形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲内において、種々の変形、変更して実施することができる。
例えば、上述した実施形態では、寿命の異なるSSD、つまり寿命指標であるDWPDのSSDが大小(長短)の二種類である場合について説明したが、本発明は、これに限定されるものでなく、三種類以上で有る場合にも同様に適用され、上述した実施形態と同様の作用効果を得ることができる。
〔5〕付記
以上の各実施形態を含む実施形態に関し、さらに以下の付記を開示する。
(付記1)
寿命の異なる複数の記憶部と、
前記複数の記憶部に格納されるデータブロックを管理する管理部と、を備え、
前記管理部は、
前記データブロックに対するアクセス特性の判定または推定を行なう判定処理部と、
前記寿命の異なる複数の記憶部のうち、前記判定処理部によって判定または推定された前記アクセス特性に応じた記憶部に、前記データブロックを格納する格納処理部と、を有する、ストレージ装置。
(付記2)
前記管理部は、前記データブロックの重複を排除する重複排除機能を有し、
前記判定処理部は、前記重複排除機能によって管理される、前記データブロックの参照数に基づいて、前記アクセス特性の判定または推定を行なう、付記1に記載のストレージ装置。
(付記3)
前記判定処理部は、前記参照数が2以上のデータブロックの前記アクセス特性は読出し重視であると判定し、
前記格納処理部は、前記参照数が2以上のデータブロックを、前記寿命の異なる複数の記憶部のうち、他の記憶部よりも寿命の短い記憶部に格納する、付記2に記載のストレージ装置。
(付記4)
前記判定処理部は、前記アクセス特性が読出し重視でないデータブロックの前記アクセス特性は書込み重視であると推定し、
前記格納処理部は、前記アクセス特性が読出し重視でないデータブロックを、前記寿命の異なる複数の記憶部のうち、他の記憶部よりも寿命の長い記憶部に格納する、付記3に記載のストレージ装置。
(付記5)
ホストからの、前記寿命の異なる複数の記憶部に対する書込み対象データブロックを、前記データブロックとして一時的に格納する一時記憶部を有し、
前記判定処理部は、前記一時記憶部に格納された前記データブロックに対するアクセス特性の判定または推定を行ない、
前記格納処理部は、前記判定処理部によって前記アクセス特性が読出し重視であると判定されたデータブロックを、前記一時記憶部から、前記他の記憶部よりも寿命の短い記憶部に格納する、付記4に記載のストレージ装置。
(付記6)
前記判定処理部は、前記参照数が1で書込み後所定時間経過したデータブロックの前記アクセス特性は書込み重視であると推定し、
前記格納処理部は、前記判定処理部によって前記アクセス特性が書込み重視であると推定されたデータブロックを、前記一時記憶部から、前記他の記憶部よりも寿命の長い記憶部に格納する、付記5に記載のストレージ装置。
(付記7)
前記寿命の異なる複数の記憶部のうち、他の記憶部よりも寿命の長い記憶部は、ホストからの、前記寿命の異なる複数の記憶部に対する書込み対象データブロックを、前記データブロックとして格納し、
前記判定処理部は、前記他の記憶部よりも寿命の長い記憶部に格納された前記データブロックに対するアクセス特性の判定または推定を行ない、
前記格納処理部は、前記判定処理部によって前記アクセス特性が読出し重視であると判定されたデータブロックを、前記他の記憶部よりも寿命の長い記憶部から、前記他の記憶部よりも寿命の短い記憶部に格納する、付記2〜付記4のいずれか一項に記載のストレージ装置。
(付記8)
寿命の異なる複数の記憶部に格納されるデータブロックを管理する管理部を備え、
前記管理部は、
前記データブロックに対するアクセス特性を判定する判定処理部と、
前記寿命の異なる複数の記憶部のうち、前記判定処理部によって判定された前記アクセス特性に応じた記憶部に、前記データブロックを格納する格納処理部と、を有する、ストレージ制御装置。
(付記9)
前記管理部は、前記データブロックの重複を排除する重複排除機能を有し、
前記判定処理部は、前記重複排除機能によって管理される、前記データブロックの参照数に基づいて、前記アクセス特性の判定または推定を行なう、付記8に記載のストレージ制御装置。
(付記10)
前記判定処理部は、前記参照数が2以上のデータブロックの前記アクセス特性は読出し重視であると判定し、
前記格納処理部は、前記参照数が2以上のデータブロックを、前記寿命の異なる複数の記憶部のうち、他の記憶部よりも寿命の短い記憶部に格納する、付記9に記載のストレージ制御装置。
(付記11)
前記判定処理部は、前記アクセス特性が読出し重視でないデータブロックの前記アクセス特性は書込み重視であると推定し、
前記格納処理部は、前記アクセス特性が読出し重視でないデータブロックを、前記寿命の異なる複数の記憶部のうち、他の記憶部よりも寿命の長い記憶部に格納する、付記10に記載のストレージ制御装置。
(付記12)
ホストからの、前記寿命の異なる複数の記憶部に対する書込み対象データブロックを、前記データブロックとして一時的に格納する一時記憶部を有し、
前記判定処理部は、前記一時記憶部に格納された前記データブロックに対するアクセス特性の判定または推定を行ない、
前記格納処理部は、前記判定処理部によって前記アクセス特性が読出し重視であると判定されたデータブロックを、前記一時記憶部から、前記他の記憶部よりも寿命の短い記憶部に格納する、付記11に記載のストレージ制御装置。
(付記13)
前記判定処理部は、前記参照数が1で書込み後所定時間経過したデータブロックの前記アクセス特性は書込み重視であると推定し、
前記格納処理部は、前記判定処理部によって前記アクセス特性が書込み重視であると推定されたデータブロックを、前記一時記憶部から、前記他の記憶部よりも寿命の長い記憶部に格納する、付記12に記載のストレージ制御装置。
(付記14)
前記寿命の異なる複数の記憶部のうち、他の記憶部よりも寿命の長い記憶部は、ホストからの、前記寿命の異なる複数の記憶部に対する書込み対象データブロックを、前記データブロックとして格納し、
前記判定処理部は、前記他の記憶部よりも寿命の長い記憶部に格納された前記データブロックに対するアクセス特性の判定または推定を行ない、
前記格納処理部は、前記判定処理部によって前記アクセス特性が読出し重視であると判定されたデータブロックを、前記他の記憶部よりも寿命の長い記憶部から、前記他の記憶部よりも寿命の短い記憶部に格納する、付記9〜付記11のいずれか一項に記載のストレージ制御装置。
1,1A ストレージ装置
10,10A ストレージ制御装置(管理部)
11 CPU(処理部)
111 データキャッシング処理部
112 データ圧縮・重複排除処理部
113 SCMライトバッファ管理部
114 データアクセス特性判定処理部(判定処理部)
115 データ移動制御部(格納制御部)
116 SSDプール管理部
117 SSDドライバ
120,120A マッピングテーブル
121 SCMフリーリスト
122 SCMアロケーションリスト
12 DRAM
13 SCM(一時記憶部)
14 SSDコントローラ
15 ホストインタフェース(Host I/F)
20 SSD部
21 寿命の長いSSD(DWPDの大きいSSD)
22 寿命の短いSSD(DWPDの小さいSSD)
30 ホストサーバ(サーバ)

Claims (8)

  1. 寿命の異なる複数の記憶部と、
    前記複数の記憶部に格納されるデータブロックを管理する管理部と、を備え、
    前記管理部は、
    前記データブロックに対するアクセス特性を判定する判定処理部と、
    前記寿命の異なる複数の記憶部のうち、前記判定処理部によって判定された前記アクセス特性に応じた記憶部に、前記データブロックを格納する格納処理部と、を有する、ストレージ装置。
  2. 前記管理部は、前記データブロックの重複を排除する重複排除機能を有し、
    前記判定処理部は、前記重複排除機能によって管理される、前記データブロックの参照数に基づいて、前記アクセス特性の判定または推定を行なう、請求項1に記載のストレージ装置。
  3. 前記判定処理部は、前記参照数が2以上のデータブロックの前記アクセス特性は読出し重視であると判定し、
    前記格納処理部は、前記参照数が2以上のデータブロックを、前記寿命の異なる複数の記憶部のうち、他の記憶部よりも寿命の短い記憶部に格納する、請求項2に記載のストレージ装置。
  4. 前記判定処理部は、前記アクセス特性が読出し重視でないデータブロックの前記アクセス特性は書込み重視であると推定し、
    前記格納処理部は、前記アクセス特性が読出し重視でないデータブロックを、前記寿命の異なる複数の記憶部のうち、他の記憶部よりも寿命の長い記憶部に格納する、請求項3に記載のストレージ装置。
  5. ホストからの、前記寿命の異なる複数の記憶部に対する書込み対象データブロックを、前記データブロックとして一時的に格納する一時記憶部を有し、
    前記判定処理部は、前記一時記憶部に格納された前記データブロックに対するアクセス特性の判定または推定を行ない、
    前記格納処理部は、前記判定処理部によって前記アクセス特性が読出し重視であると判定されたデータブロックを、前記一時記憶部から、前記他の記憶部よりも寿命の短い記憶部に格納する、請求項4に記載のストレージ装置。
  6. 前記判定処理部は、前記参照数が1で書込み後所定時間経過したデータブロックの前記アクセス特性は書込み重視であると推定し、
    前記格納処理部は、前記判定処理部によって前記アクセス特性が書込み重視であると推定されたデータブロックを、前記一時記憶部から、前記他の記憶部よりも寿命の長い記憶部に格納する、請求項5に記載のストレージ装置。
  7. 前記寿命の異なる複数の記憶部のうち、他の記憶部よりも寿命の長い記憶部は、ホストからの、前記寿命の異なる複数の記憶部に対する書込み対象データブロックを、前記データブロックとして格納し、
    前記判定処理部は、前記他の記憶部よりも寿命の長い記憶部に格納された前記データブロックに対するアクセス特性の判定または推定を行ない、
    前記格納処理部は、前記判定処理部によって前記アクセス特性が読出し重視であると判定されたデータブロックを、前記他の記憶部よりも寿命の長い記憶部から、前記他の記憶部よりも寿命の短い記憶部に格納する、請求項2〜請求項4のいずれか一項に記載のストレージ装置。
  8. 寿命の異なる複数の記憶部に格納されるデータブロックを管理する管理部を備え、
    前記管理部は、
    前記データブロックに対するアクセス特性を判定する判定処理部と、
    前記寿命の異なる複数の記憶部のうち、前記判定処理部によって判定された前記アクセス特性に応じた記憶部に、前記データブロックを格納する格納処理部と、を有する、ストレージ制御装置。
JP2016174473A 2016-09-07 2016-09-07 ストレージ装置、及びストレージ制御装置 Expired - Fee Related JP6870246B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2016174473A JP6870246B2 (ja) 2016-09-07 2016-09-07 ストレージ装置、及びストレージ制御装置
US15/679,404 US10521131B2 (en) 2016-09-07 2017-08-17 Storage apparatus and storage control apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2016174473A JP6870246B2 (ja) 2016-09-07 2016-09-07 ストレージ装置、及びストレージ制御装置

Publications (2)

Publication Number Publication Date
JP2018041245A true JP2018041245A (ja) 2018-03-15
JP6870246B2 JP6870246B2 (ja) 2021-05-12

Family

ID=61281759

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016174473A Expired - Fee Related JP6870246B2 (ja) 2016-09-07 2016-09-07 ストレージ装置、及びストレージ制御装置

Country Status (2)

Country Link
US (1) US10521131B2 (ja)
JP (1) JP6870246B2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019172370A1 (ja) 2018-03-07 2019-09-12 株式会社Ihi ラジアルフォイル軸受
JP2021043642A (ja) * 2019-09-10 2021-03-18 富士通株式会社 情報処理装置および情報処理プログラム

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11461027B2 (en) * 2017-07-18 2022-10-04 Vmware, Inc. Deduplication-aware load balancing in distributed storage systems
US10636455B2 (en) * 2018-07-12 2020-04-28 International Business Machines Corporation Enhanced NVDIMM architecture
KR20200043814A (ko) * 2018-10-18 2020-04-28 에스케이하이닉스 주식회사 메모리 시스템 및 그것의 동작 방법
US11221778B1 (en) * 2019-04-02 2022-01-11 Pure Storage, Inc. Preparing data for deduplication
US11163482B2 (en) 2019-06-26 2021-11-02 International Business Machines Corporation Dynamic performance-class adjustment for storage drives
US11049570B2 (en) 2019-06-26 2021-06-29 International Business Machines Corporation Dynamic writes-per-day adjustment for storage drives
US11137915B2 (en) 2019-06-27 2021-10-05 International Business Machines Corporation Dynamic logical storage capacity adjustment for storage drives
US11221954B2 (en) 2019-11-18 2022-01-11 International Business Machines Corporation Storing metadata in heterogeneous cache to improve I/O performance
US11169933B2 (en) 2020-02-13 2021-11-09 International Business Machines Corporation Integration of application indicated maximum time to cache for a two-tiered cache management mechanism
US11210237B2 (en) 2020-02-13 2021-12-28 International Business Machines Corporation Integration of application indicated minimum and maximum time to cache for a two-tiered cache management mechanism
US11176057B2 (en) * 2020-02-13 2021-11-16 International Business Machines Corporation Integration of application indicated minimum time to cache for a two-tiered cache management mechanism
CN114510195A (zh) * 2020-11-17 2022-05-17 华为技术有限公司 数据存储的方法和装置
US11586360B2 (en) * 2021-05-14 2023-02-21 International Business Machines Corporation Hybrid memory mirroring using storage class memory
US11893273B2 (en) * 2022-01-20 2024-02-06 Vmware, Inc. Crash-safe tiered memory system
CN116521052A (zh) * 2022-01-21 2023-08-01 戴尔产品有限公司 用于扩展存储系统的方法、电子设备和计算机程序产品
US12481460B2 (en) 2024-02-20 2025-11-25 SanDisk Technologies, Inc. Thin provisioning L2P resource sharing
US20250291709A1 (en) * 2024-03-12 2025-09-18 Sandisk Technologies Llc Method for supporting increased logical capacity using thin provisioning without increasing dram size

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150199268A1 (en) * 2014-01-16 2015-07-16 Pure Storage Data placement based on data retention in a tiered storage device system
JP2015204118A (ja) * 2014-04-15 2015-11-16 三星電子株式会社Samsung Electronics Co.,Ltd. ストレージコントローラ及びストレージ装置
US20160179386A1 (en) * 2014-12-17 2016-06-23 Violin Memory, Inc. Adaptive garbage collection

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005108304A (ja) 2003-09-29 2005-04-21 Toshiba Corp 半導体記憶装置及びその制御方法
US8572312B2 (en) * 2011-12-07 2013-10-29 Jeffrey Tofano Data de-duplication and solid state memory device
US9298386B2 (en) * 2013-08-23 2016-03-29 Globalfoundries Inc. System and method for improved placement of blocks in a deduplication-erasure code environment
US8874835B1 (en) * 2014-01-16 2014-10-28 Pure Storage, Inc. Data placement based on data properties in a tiered storage device system
JP6229577B2 (ja) 2014-04-08 2017-11-15 富士通株式会社 キャッシュ保存プログラム、情報処理装置およびキャッシュ保存方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150199268A1 (en) * 2014-01-16 2015-07-16 Pure Storage Data placement based on data retention in a tiered storage device system
JP2015204118A (ja) * 2014-04-15 2015-11-16 三星電子株式会社Samsung Electronics Co.,Ltd. ストレージコントローラ及びストレージ装置
US20160179386A1 (en) * 2014-12-17 2016-06-23 Violin Memory, Inc. Adaptive garbage collection

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019172370A1 (ja) 2018-03-07 2019-09-12 株式会社Ihi ラジアルフォイル軸受
JP2021043642A (ja) * 2019-09-10 2021-03-18 富士通株式会社 情報処理装置および情報処理プログラム
JP7295422B2 (ja) 2019-09-10 2023-06-21 富士通株式会社 情報処理装置および情報処理プログラム

Also Published As

Publication number Publication date
JP6870246B2 (ja) 2021-05-12
US10521131B2 (en) 2019-12-31
US20180067660A1 (en) 2018-03-08

Similar Documents

Publication Publication Date Title
JP6870246B2 (ja) ストレージ装置、及びストレージ制御装置
US12461655B1 (en) Management of discrete namespaces by nonvolatile memory controller
US10795586B2 (en) System and method for optimization of global data placement to mitigate wear-out of write cache and NAND flash
KR101717644B1 (ko) 고체-상태 저장 디바이스 상에서 데이터를 캐싱하는 장치, 시스템, 및 방법
US9489297B2 (en) Pregroomer for storage array
US9146877B2 (en) Storage system capable of managing a plurality of snapshot families and method of snapshot family based read
CN104969170B (zh) 层次化存储系统、存储控制器以及代替层次间的数据移动的方法
US20160026579A1 (en) Storage Controller and Method for Managing Metadata Operations in a Cache
CN107391774B (zh) 基于重复数据删除的日志文件系统的垃圾回收方法
US20150067001A1 (en) Cache management in a computerized system
EP4372540B1 (en) Techniques for zoned namespace (zns) storage using multiple zones
KR20170010729A (ko) 비휘발성 메모리의 메타 데이터 관리 방법 및 스토리지 시스템
KR20150083264A (ko) 플래시 메모리 장치를 위한 주소변환 시스템 및 그 방법
US20200349074A1 (en) Caching techniques for migrating and replicating data
US20160062651A1 (en) Cache management for sequential write storage
KR20130075018A (ko) 플래시 메모리 파일 시스템에 적용 가능한 데이터 업데이트 장치 및 방법
KR20100115090A (ko) 버퍼를 고려한 가비지 컬렉션 기법
JP2019028954A (ja) ストレージ制御装置、プログラム、及び重複排除方法
JP6867578B2 (ja) ストレージ制御装置、ストレージシステム、ストレージ制御方法およびストレージ制御プログラム
US20240111429A1 (en) Techniques for collecting and utilizing activity metrics
EP4369206B1 (en) Techniques for instance storage using segment-based storage
US12204457B1 (en) Log-structured architecture for metadata
JP6805501B2 (ja) ストレージ装置
KR101791855B1 (ko) 스토리지 장치 및 이의 공간 재수거 방법
US12307105B1 (en) Storage space accounting techniques allowing storage object identifier reuse and reassignment

Legal Events

Date Code Title Description
RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20190607

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190611

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20200727

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20200825

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20201015

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210329

R150 Certificate of patent or registration of utility model

Ref document number: 6870246

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees