JP2021140464A - ストレージ装置、ストレージシステム及び方法 - Google Patents
ストレージ装置、ストレージシステム及び方法 Download PDFInfo
- Publication number
- JP2021140464A JP2021140464A JP2020037710A JP2020037710A JP2021140464A JP 2021140464 A JP2021140464 A JP 2021140464A JP 2020037710 A JP2020037710 A JP 2020037710A JP 2020037710 A JP2020037710 A JP 2020037710A JP 2021140464 A JP2021140464 A JP 2021140464A
- Authority
- JP
- Japan
- Prior art keywords
- data
- management area
- management
- area
- storage device
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 172
- 230000006866 deterioration Effects 0.000 abstract description 12
- 238000007726 management method Methods 0.000 description 534
- 230000008569 process Effects 0.000 description 146
- 230000004044 response Effects 0.000 description 75
- 230000015654 memory Effects 0.000 description 40
- 238000012545 processing Methods 0.000 description 34
- 238000012217 deletion Methods 0.000 description 20
- 230000037430 deletion Effects 0.000 description 20
- 238000013523 data management Methods 0.000 description 17
- 230000006870 function Effects 0.000 description 12
- 238000010586 diagram Methods 0.000 description 10
- 230000008859 change Effects 0.000 description 8
- 238000013519 translation Methods 0.000 description 8
- 238000006243 chemical reaction Methods 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 239000000463 material Substances 0.000 description 2
- 238000003672 processing method Methods 0.000 description 2
- 230000000717 retained effect Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 239000012634 fragment Substances 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000001629 suppression Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0608—Saving storage space on storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/0644—Management of space entities, e.g. partitions, extents, pools
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0616—Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0652—Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
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)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Memory System (AREA)
Abstract
【課題】不揮発性記憶部の劣化を抑制することが可能なストレージ装置、ストレージシステム及び方法を提供することにある。【解決手段】実施形態に係るストレージ装置は、不揮発性記憶部と、前記不揮発性記憶部と電気的に接続され、当該不揮発性記憶部を制御する制御部とを具備する。前記制御部は、前記不揮発性記憶部の記憶領域を論理的に分割することによって得られる複数の管理領域を管理し、有効期間が設定されたデータを含む書き込み要求が受信された場合に、前記複数の管理領域の中から当該有効期間に基づいて1つの第1管理領域を決定し、前記書き込み要求に含まれるデータを前記決定された第1管理領域に書き込み、前記第1管理領域に書き込まれたデータを消去する場合、当該データを含む当該第1管理領域に書き込まれている全てのデータを一括消去する。【選択図】図1
Description
本発明の実施形態は、ストレージ装置、ストレージシステム及び方法に関する。
一般的に、例えばデータを一時的に保存することを目的として設計されたキャッシュサーバ等において用いられるストレージ装置には、NAND型フラッシュメモリのような不揮発性記憶部(ストレージ素子)が用いられる。
このような不揮発性記憶部はその使用によって性能が変化(つまり、劣化)するため、使用回数を抑制することが不揮発性記憶部の劣化抑制に有用である。
そこで、本発明が解決しようとする課題は、不揮発性記憶部の劣化を抑制することが可能なストレージ装置、ストレージシステム及び方法を提供することにある。
実施形態に係るストレージ装置は、不揮発性記憶部と、前記不揮発性記憶部と電気的に接続され、当該不揮発性記憶部を制御する制御部とを具備する。前記制御部は、前記不揮発性記憶部の記憶領域を論理的に分割することによって得られる複数の管理領域を管理し、有効期間が設定されたデータを含む書き込み要求が受信された場合に、前記複数の管理領域の中から当該有効期間に基づいて1つの第1管理領域を決定し、前記書き込み要求に含まれるデータを前記決定された第1管理領域に書き込み、前記第1管理領域に書き込まれたデータを消去する場合、当該データを含む当該第1管理領域に書き込まれている全てのデータを一括消去する。
以下、図面を参照して、各実施形態について説明する。
(第1実施形態)
図1は、第1実施形態に係るストレージ装置の構成を概略的に示すブロック図である。図1に示すように、ストレージ装置10は、制御部11、不揮発性記憶部(不揮発性メモリ)12、揮発性記憶部(揮発性メモリ)13及びインタフェース部14を備える。
(第1実施形態)
図1は、第1実施形態に係るストレージ装置の構成を概略的に示すブロック図である。図1に示すように、ストレージ装置10は、制御部11、不揮発性記憶部(不揮発性メモリ)12、揮発性記憶部(揮発性メモリ)13及びインタフェース部14を備える。
制御部11は、ストレージ装置10の動作を司る機能を有する。制御部11は、例えば各種処理を実行するためのハードウェア回路として実装したASIC(Application Specific Integrated Circuit)またはFPGA(Field Programmable Gate Array)によって実現されてもよいし、汎用的なプロセッサと当該プロセッサ上で実行されるソフトウェア(プログラム)とによって実現されてもよい。また、制御部11は、ハードウェアとソフトウェアとの組み合わせによって実現されてもよい。なお、詳細については後述するが、制御部11は、データが書き込まれる領域(つまり、書き込み先)を決定する処理を実行する領域決定部11aを含む。
不揮発性記憶部12は、各種データを保存することができるように構成されており、例えばNAND型フラッシュメモリ、PCM(Phase Change Memory)またはMRAM(Magnetoresistive Random Access Memory)等の不揮発性の半導体メモリによって実現される。なお、図1においては、ストレージ装置10が4つの不揮発性記憶部12を備えることが示されているが、ストレージ装置10に備えられる不揮発性記憶部12の数は4つ以外であってもよい。
揮発性記憶部13は、例えば制御部11において実行されるソフトウェアの一時的なバッファまたは不揮発性記憶部12に対する一時的なバッファとして機能する。揮発性記憶部13は、各種管理情報またはデータ等を一時的に保存するために用いられてもよい。揮発性記憶部13は、例えばDRAM(Dynamic Random Access Memory)またはSRAM(Static Random Access Memory)等の揮発性の半導体メモリによって実現される。
インタフェース部14は、例えばホスト等の外部とストレージ装置10とを接続する機能を有する。インタフェース部14としては、例えばPCI(Peripheral Component Interconnect) Express(登録商標)またはNVM(Non-Volatile Memory) Express(登録商標)等が用いられるが、これらに限定されない。
なお、制御部11において実行されるソフトウェアの構成によっては、揮発性記憶部13は制御部11の外部に接続されなくても構わない。この場合、図2に示すように、揮発性記憶部13は制御部11の内部に設けられればよい。
図3は、図1に示すストレージ装置10の具体的な構成例を示す。図3に示すように、ストレージ装置10は、コントローラ101、NAND型フラッシュメモリ102及びDRAM103を備える。図3に示すコントローラ101は、図1に示す制御部11に相当する。また、図3に示すNAND型フラッシュメモリ102は、図1に示す不揮発性記憶部12に相当する。また、図3に示すDRAM103は、図1に示す揮発性記憶部13に相当する。なお、図3においては、図1に示すインタフェース部14(に相当する構成)は省略されている。
コントローラ101は、ホストインタフェース(I/F)101a、CPU101b、NANDインタフェース(I/F)101c及びDRAMインタフェース(I/F)101d等を含む。なお、ホストインタフェース101a、CPU101b、NANDインタフェース101c及びDRAMインタフェース101dは、バス101eを介して互いに接続されている。
ホストインタフェース101aは、ストレージ装置10の外部に配置されるホストとの通信を実行するように構成されたホストインタフェース回路である。このホストインタフェース101aは、例えばPCI Expressコントローラ等であってもよい。ホストインタフェース101aは、ホストからの様々な要求(コマンド)を受信する。これら要求には、データの書き込みを要求する書き込み要求及びデータの読み込み(読み出し)を要求する読み込み要求等が含まれる。
CPU101bは、ホストインタフェース101a、NANDインタフェース101c及びDRAMインタフェース101dを制御するように構成されたプロセッサである。CPU101bは、ストレージ装置10の電源オンに応答してNAND型フラッシュメモリ102または図示しないROM(Read Only Memory)から制御プログラム(ファームウェア)をDRAM103にロードし、当該制御プログラムを実行することによって様々な処理を行う。このCPU101bは、ホストからの様々な要求に対する処理を実行することができる。CPU101bの動作は、CPU101bによって実行される制御プログラムによって制御される。なお、ホストからの要求に対する処理の一部または全部は、コントローラ101内の専用ハードウェアによって実行されてもよい。
なお、ここではコントローラ101にCPU101bが含まれるものとして説明したが、コントローラ101がCPU101bを含む構成は一例であり、当該コントローラ101は、各種処理を実行するためのハードウェアによって実現されてもよいし、ソフトウェアによって実現されてもよい。更に、コントローラ101は、ハードウェアとソフトウェアとの組み合わせによって実現されてもよい。
NANDインタフェース101cは、CPU101bの制御の下、NAND型フラッシュメモリ102を制御するように構成されたメモリ制御回路である。
なお、コントローラ101(制御部11)は、NANDインタフェース101cを介してNAND型フラッシュメモリ102(不揮発性記憶部12)に電気的に接続される。すなわち、コントローラ101は、NAND型フラッシュメモリ102を制御するように構成されたメモリコントローラ(制御回路)である。
DRAMインタフェース14は、CPU101bの制御の下、DRAM103を制御するように構成されたDRAM制御回路である。
NAND型フラッシュメモリ102は、マトリクス状に配置された複数のメモリセルを含むメモリセルアレイを含む。NAND型フラッシュメモリ102は、2次元構造のNAND型フラッシュメモリであってもよいし、3次元構造のNAND型フラッシュメモリであってもよい。
NAND型フラッシュメモリ102のメモリセルアレイは、複数のブロックBLK0〜BLKm−1を含む。ブロックBLK0〜BLKm−1の各々は多数のページ(ここでは、ページP0〜Pn−1)によって編成される。ブロックBLK0〜BLKm−1は、消去単位として機能する。ブロックは、「物理ブロック」、「消去ブロック」または「物理消去ブロック」と称されることがある。ページP0〜Pn−1の各々は、同一ワード線に接続された複数のメモリセルを含む。ページP0〜Pn−1は、データ書き込み動作及びデータ読み込み動作の単位である。
なお、上記したようにストレージ装置10が4つのNAND型フラッシュメモリ102(不揮発性記憶部12)を備える構成の場合、コントローラ101に含まれるNANDインタフェース101cには4つのチャンネルChが接続されており、当該チャンネルの各々にNAND型フラッシュメモリ102がそれぞれ接続される。
DRAM103には、例えば本実施形態に係るストレージ装置10においてNAND型フラッシュメモリ102に書き込まれるデータを管理するための管理情報が格納される。この管理情報の詳細については後述する。
ここで、本実施形態においては、ストレージ装置10がデータを一時的に保存することを目的として設計されたキャッシュサーバ等に用いられる場合を想定する。キャッシュサーバにおいては、各種データがストレージ装置10にキャッシュ(保存)されることになるが、当該データには当該データをキャッシュとして保持しておくべき期間(以下、有効期間と表記)が設定されている。なお、有効期間(valid term)は例えばライフタイムとも称される。
ところで、上記したストレージ装置10に備えられる不揮発性記憶部12(例えば、NAND型フラッシュメモリ102)は使用回数によって劣化することが知られており、当該使用回数を抑制することが不揮発性記憶部12の劣化を抑制するために有用である。
このため、本実施形態においては、データに設定されている有効期間を利用して当該データを管理することによって、当該不揮発性記憶部12の劣化抑制(つまり、長寿命化)を実現する。
以下、本実施形態に係るストレージ装置10において管理される不揮発性記憶部12の記憶領域(不揮発性記憶領域)の概要について説明する。
本実施形態においては、図4に示すように、不揮発性記憶部12の記憶領域を複数の領域(以下、管理領域と表記)に論理的に分割して管理する。図4に示す例では、不揮発性記憶部12の記憶領域は、8つの管理領域201〜208に分割されている。なお、上記したようにストレージ装置10がキャッシュサーバに用いられる場合、管理領域201〜208は、例えば図1に示す4つの不揮発性記憶部12全体の記憶領域のうちデータのキャッシュに使用可能な記憶領域に相当する。なお、管理領域は、少なくとも1つ以上の基本書き換え単位で構成されるものとする。不揮発性記憶部12がNAND型フラッシュメモリ102である場合、基本書き換え単位は上記したブロックである。
ここで、管理領域201〜207には、有効期間が割り当てられている。具体的には、管理領域201には、例えば基準時刻から24時間までの期間が有効期間として割り当てられている。なお、図4において、管理領域201に割り当てられている有効期間は「0H−24H」と表記されている。これによれば、例えばデータに設定されている有効期間の終了時刻(日時)が基準時刻から24時間までの間に該当する場合には、管理領域201が当該データの書き込み先となる。
一方、管理領域202には、基準時刻から24時間を超えて48時間までの期間が有効期間として割り当てられている。なお、図4において、管理領域202に割り当てられている有効期間は「24H−48H」と表記されている。これによれば、例えばデータに設定されている有効期間の終了時刻(日時)が基準時刻から24時間を超えて48時間までの間に該当する場合には、管理領域202が当該データの書き込み先となる。
ここでは、管理領域201及び202について説明したが、他の管理領域についても同様である。具体的には、管理領域203には基準時刻から48時間を超えて72時間までの期間(48H−72H)が有効期間として割り当てられており、管理領域204には基準時刻から72時間を超えて96時間までの期間(72H−96H)が有効期間として割り当てられており、管理領域205には基準時刻から96時間を超えて120時間までの期間(96H−120H)が有効期間として割り当てられており、管理領域206には基準時刻から120時間を超えて144時間までの期間(120H−144H)が有効期間として割り当てられており、管理領域207には基準時刻から144時間を超える期間(144H−)が有効期間として割り当てられている。
このような管理領域201〜207に割り当てられている有効期間によれば、データを不揮発性記憶部12に書き込む際の書き込み先を、当該データに設定されている有効期間に応じた管理領域とすることができる。
なお、上記した基準時刻は、現在時刻ではなく、ストレージ装置10において管理される管理領域(例えば、管理領域の数、サイズ及び当該管理領域に割り当てられる有効期間等)に応じて適宜設定される値である。基準時刻は、例えば午前0時0分0秒等の区切りとして使用される値としてもよいし、例えば午前4時32分10秒のような任意の値であってもよい。なお、基準時刻は定期的に更新される。
また、管理領域201〜207とは異なり、管理領域208には有効期間が割り当てられていない。このような管理領域208は、例えば「緩衝帯」と称され、他の管理領域201〜207に書き込むことができないデータを一時的に保存する、データを削除するタイミングを調整する、または上記した各管理領域201〜207のサイズを変更するような場合に使用する領域として設けられている。なお、管理領域208のような「緩衝帯」は必須ではないため、当該管理領域208は省略されていてもよい。また、管理領域208を「緩衝帯」として使用しない場合には、当該管理領域208にも有効期間が設定されてもよい。
ここで、図4に示す例では、データのキャッシュに利用可能な不揮発性記憶部12の記憶領域全体を、管理領域201〜208のサイズ(容量)がそれぞれ同じになるように分割しているが、当該管理領域201〜208の各々のサイズは異なっていてもよい。具体的には、管理領域201〜208においては、図5に示すようにサイズが大きな領域(つまり、書き込み可能なデータ量が多い領域)とサイズが小さな領域(つまり、書き込み可能なデータ量が少ない領域)とが混在していてもよい。これによれば、例えばデータに設定される有効期間に偏り(周期)が存在する場合に、当該設定される場合が多い有効期間が割り当てられる管理領域のサイズを大きくすることにより、当該管理領域にデータを書き込むことができなくなるような事態の発生を抑制することができる。
また、図4に示す管理領域201〜206に割り当てられる有効期間の長さはそれぞれ24時間であるが、図6に示すように、当該有効期間の長さは24時間以外であってもよいし、当該有効期間の長さが管理領域201〜206間で異なっていてもよい。図6に示す例では、管理領域201には「0H−6H」、管理領域202には「6H−12H」、管理領域203には「12H−36H」、管理領域204には「36H−42H」、管理領域205には「42H−48H」、管理領域206には「48H−72H」という有効期間が割り当てられている。換言すれば、図6に示す例では、6時間、6時間、24時間を基準とした間隔で有効期間が割り当てられている。
更に、不揮発性記憶部12の記憶領域を分割する数(つまり、管理領域の数)も8つである必要はない。例えば上記したように保存されるデータ量が周期的に変化することが判明している場合には、不揮発性記憶部12の記憶領域は、当該周期に応じた数に分割されてもよい。具体的には、24時間周期で1週間分のデータを保存するような場合には、不揮発性記憶部12の記憶領域を上記した緩衝帯を含めて8つの管理領域に分割すればよい。一方、12時間周期で1週間分のデータを保存するような場合には、緩衝帯を含めて15(周期の2倍の数+緩衝帯)の管理領域に不揮発性記憶部12の記憶領域を分割してもよい。なお、記憶領域を分割する数は、周期に応じた数の1/2の数等としてもよい。
なお、管理領域のサイズ及び数や当該管理領域に割り当てられる有効期間は、例えばストレージ装置10の起動時に静的に決定され、当該ストレージ装置10の運用中は固定されていればよいが、例えば当該ストレージ装置10の運用中に生じる事象が予め定められた条件を満たす場合に動的に変更されるような構成としてもよい。具体的には、例えば管理領域201〜208に書き込まれたデータ量を管理し、インタフェース部14を介して当該データ量を外部に出力するようにストレージ装置10が構成されている場合を想定する。この場合、ストレージ装置10からの出力結果を用いて当該ストレージ装置10の管理者が管理領域201〜208に書き込まれたデータ量の周期的な変化を検出することによって、管理領域のサイズ、数及び有効期間を調整するようにしてもよい。また、ストレージ装置10からの出力結果に基づいて管理領域のサイズ、数及び有効期間が自動的に調整されるような構成を実現することも可能である。
本実施形態においては、上記したように不揮発性記憶部12の記憶領域(管理領域)を管理するが、このような管理を実現するために、揮発性記憶部13(DRAM103)には、第1管理情報(領域−有効期間対応表)が保持されている。
ここで、図7は、第1管理情報のデータ構造の一例を示す。第1管理情報によれば、基準時刻における管理領域と当該管理領域に割り当てられている有効期間との対応関係が管理される。
図7に示すように、第1管理情報は、管理領域情報と有効期間情報とを対応づけて含む。管理領域情報は管理領域を示す情報であり、当該管理領域情報としては例えば管理領域を一意に識別するための識別子を用いることができる。有効期間情報は、対応づけられている管理領域情報によって示される管理領域に割り当てられている有効期間を示す。
なお、図7は、上記した図4において説明した管理領域201〜208を管理するための第1管理情報の一例を示している。具体的には、図7に示す例では、第1管理情報には、管理領域情報「N1」に対応づけて有効期間情報「144H−」が含まれている。これによれば、管理領域情報「N1」によって示される管理領域(ここでは、管理領域207)に割り当てられている有効期間が基準時刻から144時間を超える期間であることが示されている。
また、図7に示す例では、第1管理情報には、管理領域情報「N2」に対応づけて有効期間情報「−」が保持されている。これによれば、管理領域情報「N2」によって示される管理領域(ここでは、管理領域208)には有効期間が割り当てられていない(つまり、管理領域208は「緩衝帯」である)ことが示されている。
更に、図7に示す例では、第1管理情報には、管理領域情報「N3」に対応づけて有効期間情報「0H−24H」が保持されている。これによれば、管理領域情報「N3」によって示される管理領域(ここでは、管理領域201)に割り当てられている有効期間が基準時刻から24時間までの期間であることが示されている。
また、図7に示す例では、第1管理情報には、管理領域情報「N4」によって示される管理領域(ここでは、管理領域202)に割り当てられている有効期間が基準時刻から24時間を超えて48時間までの期間であることが示されている。
ここでは、管理領域情報「N1」〜「N4」によって示される管理領域207、208、201及び202について説明したが、他の管理領域203〜206を示す管理領域情報及び当該管理領域203〜206に割り当てられている有効期間を示す有効期間情報についても同様に第1管理情報において管理されている。
ここで、例えば上記したようにデータに設定されている有効期間の終了時刻が基準時刻から24時間を超えて48時間までの間に該当する場合には、当該データは管理領域202(管理領域情報「N4」によって示される管理領域)に書き込まれるが、当該データが書き込まれた後、1日(24時間)が経過した場合には、当該データの有効期間は24時間分短くなる。
このため、本実施形態においては、上記した基準時刻を更新することによって、第1管理情報において管理されている有効期間を変更(更新)するものとする。なお、基準時刻の更新タイミングは、例えば管理領域に割り当てられている有効期間に基づいて決定される。図7に示すように有効期間情報によって示される有効期間の長さがそれぞれ24時間である場合、基準時刻は24時間毎に更新されればよい。具体的には、例えば基準時刻が「2月1日0時0分0秒」である場合、当該基準時刻は2月2日の0時0分0秒を経過した時点で「2月2日0時0分0秒」に更新されればよい。
このように基準時刻が更新された(つまり、基準時刻tが基準時刻t+24Hに更新された)場合、図7に示す第1管理情報は、例えば図8に示す第1管理情報に更新される。図7に示す第1管理情報と図8に示す第1管理情報とを比較すると、第1管理情報において管理されている有効期間が24時間ずつシフトしている。すなわち、例えば管理領域情報「N3」に対応づけて第1管理情報に含まれていた有効期間情報「0H−24H」は、基準時刻の更新(つまり、24時間が経過したこと)によって有効期間を経過したものと判別され、有効期間情報「−」に更新される。有効期間情報が「−」に更新された場合、当該有効期間情報に対応づけて第1管理情報に含まれている管理領域情報によって示される管理領域に格納されているデータは一括消去され、当該管理領域は例えば緩衝帯として用いられる。
一方、例えば管理領域情報「4N」に対応づけて第1管理情報に含まれていた有効期間情報「24H−48H」は、基準時刻の更新に応じて有効期間が短縮され、有効期間情報「0H−24H」に更新される。換言すれば、管理領域情報「4N」によって示される管理領域に割り当てられている有効期間「24H−48H」は、管理領域情報「N3」に対応づけて第1管理情報に含まれている有効期間情報によって示される有効期間「0H−24H」の経過に基づいて、当該「0H−24H」に更新される。
なお、ここでは基準時刻の更新に応じて第1管理情報において管理されている有効期間(情報)が更新されるものとして説明したが、当該基準時刻の更新に応じて第1管理情報において管理されている管理領域(情報)を更新するようにしてもよい。
また、上記したように管理領域及び当該管理領域に割り当てられている有効期間の対応関係を管理することができるのであれば、第1管理情報のデータ構造は図7及び図8において説明した以外であっても構わない。
具体的には、第1管理情報は、図9に示すように、管理領域情報及び有効期間情報に対応づけて順序(順番)を更に含むようなデータ構造を有していてもよい。図9に示す第1管理情報によれば、順序「1」に対応づけられている管理領域情報「N3」によって示される管理領域には、基準時刻から24時間までの期間(つまり、最初の24Hの期間)が有効期間として割り当てられていることが示されている。同様に、順序「2」に対応づけられている管理領域情報「N4」によって示される管理領域は有効期間の観点で管理領域情報「N3」によって示される管理領域の次に配置される管理領域であり、当該管理領域には、基準時刻から24時間を超えて48時間までの期間(つまり、2番目の24Hの期間)が有効期間として割り当てられていることが示されている。このような第1管理情報によれば、基準時刻が更新される度に順序を1つずつ減少させることで、当該各有効期間が割り当てられている管理領域を適切に管理することができる。
図9に示す第1管理情報は表形式で示されているが、第1管理情報は、例えば図10に示す順序リストのような形式であっても構わない。なお、図9及び図10に示す第1管理情報は、上記した図7と概ね同一の内容を表している。
更に、本実施形態において、例えば1つの管理領域にデータが書き込まれる場合、当該データは、当該管理領域に既に書き込まれているデータの終端から追記するように当該管理領域に書き込まれる(すなわち、当該管理領域に対して追記書き込みを行う)。このため、ストレージ装置10においては、各管理領域に対する次の書き込みの開始点(以下、書き込み開始アドレスと表記)を管理しておくことが好ましい。この場合、書き込み開始アドレスは、図11に示すように第1管理情報に含まれていてもよい。図11に示す例のように管理領域情報「N1」に対応づけて第1管理情報に書き込み開始アドレス「A1」が含まれている場合には、管理領域情報「N1」によって示される管理領域に次に書き込まれるデータは、アドレス「A1」から書き込まれればよい。
なお、図示されていないが、第1管理情報においては、各管理領域のサイズ(の情報)等が更に管理されていてもよい。
以下、本実施形態に係るストレージ装置10の動作について説明する。まず、図12のフローチャートを参照して、不揮発性記憶部12にデータを書き込む際の処理(以下、書き込み処理と表記)の処理手順の一例について説明する。なお、以下の説明においては、不揮発性記憶部12に書き込まれるデータを対象データと称する。
ここで、本実施形態においては、ストレージ装置10において上記した第1管理情報が管理されている前提で、当該ストレージ装置10がキー・バリュー・ストア(KVS)型のストレージ装置として動作するものとして説明する。
まず、制御部11(コントローラ101)は、例えばホストから書き込み要求を受信する(ステップS1)。ステップS1において受信される書き込み要求には、対象データ(不揮発性記憶部12に書き込まれるべきデータ)と当該対象データを読み書きする際のインデックスに相当するキー(当該対象データに割り当てられたキー)とが含まれる。なお、本実施形態において、書き込み要求に含まれる対象データには、有効期間が設定されているものとする。
ステップS1の処理が実行されると、制御部11は、当該ステップS1において受信された書き込み要求の正当性を確認(チェック)する(ステップS2)。ステップS2においては、書き込み要求に対象データ及びキーが含まれているか否か、当該キーが所定のフォーマットに一致するものであるか否か、対象データに設定されている有効期間が正当なものであるか否か等が確認される。ステップS2の処理が実行されることによって、制御部11は、ステップS1において受信された書き込み要求に正当性があるか否かを判定する(ステップS3)。
書き込み要求に正当性があると判定された場合(ステップS3のYES)、制御部11に含まれる領域決定部11aは、ステップS1において受信された書き込み要求に含まれる対象データの書き込み先を決定するための処理(以下、書き込み先決定処理と表記)を実行する(ステップS4)。この書き込み先決定処理においては、上記したように不揮発性記憶部12の記憶領域を論理的に分割することによって得られる複数の管理領域の中から、対象データが書き込まれる管理領域が決定される。なお、書き込み先決定処理の詳細については後述する。
ステップS4の処理が実行されると、当該ステップS4において決定された管理領域(つまり、書き込み先)に対象データが書き込まれる(ステップS5)。
ここで、上記したKVS型のストレージ装置10の場合、対象データを読み込む際にはキーが指定される。すなわち、上位アプリケーション(ホスト)はストレージ装置10に対して対象データが書き込まれている「場所」に相当するアドレスを指定しないため、キーと当該キーが割り当てられている対象データが実際に書き込まれているアドレスとの対応関係をストレージ装置10の内部で管理する必要がある。
このため、ステップS5の処理が実行された場合、制御部11は、上記した揮発性記憶部13(DRAM103)に格納されている第2管理情報(情報管理表)を更新する(ステップS6)。なお、第2管理情報は、ストレージ装置10(不揮発性記憶部12)におけるデータの保存先(書き込み先)を管理するための情報である。このように第2管理情報を更新することによって、後の読み込み処理において対象データを正常に読み込むことが可能な状態となる。なお、第2管理情報の具体的なデータ構造については後述する。
ステップS6の処理が実行されると、ステップS1において受信された書き込み要求に対する応答として、当該書き込み要求に対する処理(つまり、対象データを不揮発性記憶部12に書き込む処理)が正常に実行されたことを示す応答(正常応答)がホストに対して返される(ステップS7)。
なお、図12には示されていないが、第1管理情報において書き込み開始アドレスが管理されている場合、対象データがステップS4において決定された管理領域に書き込まれることによって、当該管理領域(を示す管理領域情報)に対応づけて第1管理情報に含まれる書き込み開始アドレスが更新される。
一方、上記した書き込み要求に正当性がないと判定された場合(ステップS3のNO)、当該書き込み要求に対する応答として、当該書き込み要求に対する処理(つまり、対象データを不揮発性記憶部12に書き込む処理)が正常に実行されないことを示す応答(エラー応答)がホストに対して返される(ステップS8)。
次に、図13のフローチャートを参照して、上記した書き込み先決定処理(図12に示すステップS4の処理)の処理手順の一例について説明する。図13に示す書き込み先決定処理は、上記したように制御部11に含まれる領域決定部11aによって実行される。
まず、領域決定部11aは、図12に示すステップS1において受信された書き込み要求に含まれる対象データに設定されている有効期間を取得する(ステップS11)。
次に、領域決定部11aは、揮発性記憶部13(DRAM103)に格納されている第1管理情報を参照して、ステップS11において取得された有効期間の終了時刻を包含する有効期間を示す有効期間情報(以下、該当有効期間情報と表記)を検索する(ステップS12)。なお、ステップS11において取得された有効期間の終了時刻とは、例えば図12に示すステップS1において書き込み要求が受信された時刻(現在時刻)に有効期間を加算した時刻(日時)である。
領域決定部11aは、ステップS12の処理の結果に基づいて、第1管理情報に該当有効期間情報(ステップS11において取得された有効期間のエントリ)があるか否かを判定する(ステップS13)。
第1管理情報に該当有効期間情報があると判定された場合(ステップS13のYES)、領域決定部11aは、該当有効期間情報に対応づけて第1管理情報に含まれる管理領域情報によって示される管理領域(以下、対象管理領域と表記)の空き容量を取得する(ステップS14)。
なお、対象管理領域の空き容量は、当該対象管理領域のサイズ(容量)及び当該対象管理領域に既に書き込まれているデータのサイズ等に基づいて取得することができる。また、対象管理領域の空き容量は、例えば当該対象管理領域の書き込み開始アドレス等を利用して取得されても構わない。
次に、領域決定部11aは、ステップS14において取得された対象管理領域の空き領域に基づいて、当該対象管理領域に対象データを書き込むことが可能であるか否かを判定する(ステップS15)。ステップS15においては、対象データのサイズとステップS14において取得された対象管理領域の空き容量とを比較し、当該対象データのサイズが対象管理領域の空き容量よりも小さい場合に対象データを書き込むことが可能であると判定される。一方、対象データのサイズが対象管理領域の空き容量よりも大きい場合には、対象データを書き込むことが可能でないと判定される。
対象管理領域に対象データを書き込むことが可能であると判定された場合(ステップS15のYES)、領域決定部11aは、対象管理領域を対象データの書き込み先として決定する(ステップS16)。
一方、第1管理情報に該当有効期間情報がないと判定された場合(ステップS13のNO)または対象管理領域に対象データを書き込むことが可能でないと判定された場合(ステップS15のNO)、ホストからの書き込み要求に対する応答としてエラー応答が返される(ステップS17)。
上記した書き込み先決定処理によれば、対象データに設定されている有効期間が割り当てられた(当該有効期間に該当する)管理領域を当該対象データの書き込み先として決定することができる。
ここで、上記した図13に示す書き込み先決定処理においては、第1管理情報に該当有効期間情報がないと判定された場合及び対象管理領域に対象データを書き込むことが可能でないと判定された場合にエラー応答が返されるものとして説明したが、当該エラー応答を返す回数を減少させることが好ましい。
以下、図14のフローチャートを参照して、エラー応答を返す回数を減少させる書き込み先決定処理の処理手順の一例について説明する。
まず、上記したステップS11〜S16の処理に相当するステップS21〜S26の処理が実行される。
ここで、ステップS23において第1管理情報に該当有効期間情報がないと判定された場合(ステップS23のNO)または対象管理領域に対象データを書き込むことが可能でないと判定された場合(ステップS25のNO)、領域決定部11aは、第1管理情報に存在する全ての有効期間情報(つまり、有効な全ての管理領域の集合)をSとする(ステップS27)。
次に、領域決定部11aは、Sのうち、有効期間が最も長い管理領域(つまり、基準時刻から最も遠い有効期間を示す有効期間情報に対応づけて第1管理情報に含まれる管理領域情報によって示される管理領域)をAとする(ステップS28)。
ステップS28の処理が実行されると、領域決定部11aは、Aの空き容量を取得する(ステップS29)。なお、ステップS29の処理は、上記したステップS24の処理と同様の処理である。
領域決定部11aは、ステップS29において取得されたAの空き領域に基づいて、当該Aに対象データを書き込むことが可能であるか否かを判定する(ステップS30)。なお、ステップS30の処理は、上記したステップS25の処理と同様の処理である。
Aに対象データを書き込むことが可能であると判定された場合(ステップS30のYES)、領域決定部11aは、対象データの書き込み先としてAを決定する(ステップS31)。
一方、Aに対象データを書き込むことが可能でないと判定された場合(ステップS30のNO)、SからAを除いた管理領域(の集合)を新たなSにする(ステップS32)。
ステップS32の処理が実行された場合、領域決定部11aは、Sが存在するか否かを判定する(ステップS33)。
Sが存在すると判定された場合(ステップS33のNO)、ステップS28に戻って処理が繰り返される。
一方、Sが存在しないと判定された場合(ステップS33のYES)、ホストからの書き込み要求に対する応答としてエラー応答が返される(ステップS34)。
上記したように図14に示す書き込み先決定処理においては、該当有効期間情報(対象データに設定されている有効期間の終了時刻を包含する有効期間を示す有効期間情報)が第1管理情報に存在しない場合または対象管理領域(当該有効期間を示す有効期間情報に対応づけて第1管理情報に含まれる管理領域情報によって示される管理領域)に対象データを書き込むことができない場合であっても、選択可能な管理領域(第1管理情報に含まれる管理情報によって示される管理領域)に対象データを書き込むことが可能であるか否かを有効期間が長い順に判定し、当該対象データを書き込むことが可能であると判定された管理領域に対象データを書き込むことができる。
なお、図15は、図14に示す書き込み先決定処理の具体例を示している。図15に示す例では、管理領域201(0H−24Hの有効期間に割り当てられている管理領域)に対象データXを書き込むことができる空き容量が存在しない場合に、当該対象データXを管理領域207(144Hを超える有効期間が割り当てられている管理領域)を書き込み先として決定することを示している。これによれば、対象データに設定されている有効期間を保証しながら、エラー応答が返される回数を低減することが可能となる。
また、図14に示す書き込み先決定処理においては、例えば対象データに設定されている有効期間の偏りが大きい場合または有効期間が設定されていない対象データを含む書き込み要求が多い場合等には、特定の有効期間が割り当てられている管理領域が必要以上に使用されてしまう可能性がある。このため、図14に示すステップS27以降の処理によってデータが書き込まれる領域(以下、エラー対応領域と表記)は、管理領域の各々において制限されていてもよい。この場合、ステップS29及びS30の処理は、Aのうちのエラー対応領域を対象として実行されればよい。この各管理領域におけるエラー対応領域は、固定されていてもよいし、当該管理領域の使用状況に応じて動的に変化させてもよい。
また、上記したように有効期間が割り当てられていない管理領域(緩衝帯)が存在する場合、当該管理領域をエラー対応領域として用いてもよい。つまり、対象データは有効期間が割り当てられていない管理領域に書き込まれてもよい。
ここで、図14に示す書き込み先決定処理においては、有効期間が長い管理領域を優先的に対象データの書き込み先として決定するものとして説明したが、例えば空き領域が最も多い管理領域を書き込み先として決定してもよいし、対象データに設定されている有効期間に近い有効期間が割り当てられている管理領域を書き込み先として決定してもよい。更に、書き込み頻度及び読み込み頻度が少ない管理領域を対象データの書き込み先として決定してもよい。
すなわち、本実施形態において、対象データの書き込み先は、複数の管理領域の各々に割り当てられている有効期間、当該管理領域の空き容量、当該管理領域に対する書き込み頻度及び読み込み頻度の少なくとも1つに基づいて決定すればよい。なお、各管理領域における書き込み頻度及び読み込み頻度は、書き込み処理及び読み込み処理の実行に応じてストレージ装置10において管理されているものとする。
上記したように対象データに設定されている有効期間が割り当てられている管理領域(規定の管理領域)に書き込むことができずに他の管理領域に保存された対象データの数やサイズは、ストレージ装置10において把握することができるが、更に、当該ストレージ装置10の利用者や管理者、当該ストレージ装置10に種々の要求を発行するホスト(上で動作するソフトウェア)が適切に把握することができるようにしてもよい。これによれば、規定の管理領域に書き込むことができずに他の管理領域に保存された対象データ(つまり、有効期間が異なるデータ)が頻繁に書き込まれる管理領域のサイズを拡大する、または後述するようにデータを消去する際に未使用の領域(データが書き込まれていない領域)が多い管理領域のサイズを縮小する等の対応を行うことができる。
なお、書き込み要求に含まれる対象データを異なる複数の管理領域に書き込む処理は実行されないものとする。換言すれば、1つの書き込み要求で通知された対象データの一部だけを異なる管理領域に保存する処理は行わない。
しかしながら、例えば対象データのサイズが1つの管理領域よりも大きい場合には、当該対象データに設定されている有効期間が割り当てられている管理領域及び1つ以上の当該管理領域以外の管理領域に当該対象データを書き込む(保存する)ようにしてもよい。この場合における規定の管理領域以外の管理領域は、例えば図14に示すステップS27以降の処理等によって決定することができる。上記したように対象データの一部だけを別の領域に書き込む場合には、異なる管理領域に書き込まれた対象データ(各断片)の対応関係を維持するためのメタ情報を併せて管理(保存)しておく必要がある。このメタ情報は、例えば通常のデータの末尾に追記するまたは第2管理情報に特別なフィールドを追加する等によって管理するようにしてもよい。
なお、対象データの全てを書き込む必要がない場合には、当該対象データを分割し、当該対象データの一部のみを書き込むようにしてもよい。
上記した図14に示す書き込み先決定処理においては、既に書き込まれているデータには変更を加えることなく、未使用の領域(データが書き込まれていない領域)に対象データを書き込むものとして説明したが、例えば対象データに設定されている有効期間に割り当てられている管理領域内に当該対象データを書き込む領域を確保する(既に書き込まれているデータを当該対象データで上書きする)ようにしてもよい。これによれば、ストレージ装置10に確保された管理領域の範囲を超えて、有効期間が異なるデータが混ざり合うことがない。
ここで、図16を参照して、管理領域内に対象データを書き込む領域を確保する処理の概要について説明する。
ここでは、対象データXのサイズをLとし、当該対象データXに設定されている有効期間が3分間である場合を想定する。また、3分間の有効期間が設定されている対象データXは有効期間(0H−24H)に割り当てられている管理領域201に書き込まれるべきであるが、当該管理領域201の空き容量のサイズがL´(<L)であるものとする。この場合、対象データXは管理領域201の空き領域に書き込むことはできないため、当該対象データXのサイズLから空き領域のサイズL´を減算した値(つまり、現時点で管理領域201に書き込むことができない対象データのサイズL−L´)に相当する領域を当該管理領域201内に確保する。具体的には、管理領域201の先頭からサイズL−L´を超える消去単位サイズの領域に書き込まれているデータを消去する。これによれば、対象データXの前半部(対象データXの一部)を管理領域201の空き領域(サイズL´)に書き込むとともに、当該対象データXの後半部(対象データXの他部)を他のデータを消去することによって確保された領域(L−L´を超える消去単位サイズ)に書き込むことができる。なお、管理領域201の先頭から書き込まれているデータが複数の消去単位サイズにまたがって管理されているようなデータである場合には、当該消去単位サイズの整数倍のサイズに相当するデータを消去するようにしてもよい。
図16において説明したように管理領域201に書き込まれているデータを消去する場合には、当該データが書き込まれている場所(当該データの書き込み先)と当該データに割り当てられているキーとの対応関係(つまり、対応するエントリ)を第2管理情報から削除する処理を併せて実行する。このように第2管理情報から対応するエントリを削除することで、外部のアプリケーション(ホスト)が読み込みを要求したとしても、「値が保存されていない(既に、データが消去されている)」というエラー応答を返すことが可能となる。
なお、本実施形態においては、ストレージ装置10をキャッシュサーバ等に用いる場合を想定している。この場合、仮にストレージ装置10において保存されているデータ(キャッシュ)が消去されたとしても、当該データ自体は異なるサーバ装置等において管理されているため、当該データの消去による不具合は生じないと考えられる。
ここで、上記したように管理領域に既に書き込まれているデータを消去する場合には対応するエントリを第2管理情報から削除するものとして説明したが、当該対応するエントリの削除は、例えば管理領域のサイズを変更する場合または不揮発性記憶部12(ストレージ素子)の劣化によってデータの読み込みが困難となった場合のように、管理領域に既に書き込まれているデータ(保存済みのデータ)をストレージ装置10の都合により消去せざるを得ない場合についても同様に実行される。これによれば、ストレージ装置10を含むストレージシステムとして齟齬が生じない運用が可能となる。
なお、ストレージ装置10の都合でデータが消去される場合には、当該消去されるデータを事前にホスト(または当該ホスト上で動作するアプリケーション)に通知するような構成としてもよい。この場合、消去されるデータは、ホストに対して割り込みをかけて特定のメッセージ(コマンド)を用いて通知されてもよいし、または別の要求に対する応答の付加情報として通知されてもよい。これによれば、ホスト側でストレージ装置10の状態変化を迅速に把握することができるため、当該ホスト上で動作するアプリケーション上で管理している有効期間の情報を適切に更新することが可能となる。
次に、図17のフローチャートを参照して、不揮発性記憶部12からデータを読み込む際の処理(以下、読み込み処理と表記)の処理手順の一例について説明する。なお、以下の説明においては、不揮発性記憶部12から読み込まれるデータを対象データと称する。
まず、制御部11(コントローラ101)は、例えばホストから読み込み要求を受信する(ステップS41)。ステップS41において受信される読み込み要求には、対象データ(不揮発性記憶部12から読み込まれるべきデータ)に割り当てられているキーが含まれる。
ステップS41の処理が実行されると、制御部11は、当該ステップS41において受信された読み込み要求の正当性を確認(チェック)する(ステップS42)。ステップS42においては、読み込み要求に含まれているキーが所定のフォーマットに一致するものであるか否か等が確認される。ステップS42の処理が実行されることによって、制御部11は、ステップS41において受信された読み込み要求に正当性があるか否かを判定する(ステップS43)。
読み込み要求に正当性があると判定された場合(ステップS43のYES)、制御部11は、揮発性記憶部13に格納されている第2管理情報から、当該読み込み要求に含まれるキー(以下、対象キーと表記)を検索する(ステップS44)。
ここで、図18は、第2管理情報のデータ構造の一例を示す。図18に示すように、第2管理情報によれば、不揮発性記憶部12(管理領域)に書き込まれているデータ毎に、当該データに割り当てられているキー、当該データが書き込まれている場所に相当する物理アドレス及び当該データのサイズの対応関係が管理される。
図18に示す例では、第2管理情報は、例えばキー「K1」、物理アドレス「PA1」及びサイズ「L1」を対応づけて含む。これによれば、キー「K1」が割り当てられているデータが書き込まれている物理アドレスがPA1であり、当該データのサイズがL1であることが示されている。
また、第2管理情報は、例えばキー「K2」、物理アドレス「PA1+L1」及びサイズ「L2」を対応づけて含む。これによれば、キー「K1」が割り当てられているデータが書き込まれている物理アドレスがPA1+L1(つまり、物理アドレス「PA1」から書き込まれたサイズがL1であるデータの終端に相当する物理アドレス)であり、当該データのサイズがL2であることが示されている。
なお、第2管理情報においては、上記した以外にも、管理領域に書き込まれている全てのデータについてキー、物理アドレス及びサイズの対応関係が管理されている。
再び図17に戻ると、制御部11は、ステップS44の処理が実行された結果に基づいて、第2管理情報に対象キーがあるか否かを判定する(ステップS45)。
第2管理情報に対象キーがあると判定された場合(ステップS45のYES)、制御部11は、当該第2管理情報において対象キーに対応づけられている物理アドレスに基づいて、当該対象キーに対応づけられているサイズの対象データを不揮発性記憶部12から読み込む(ステップS46)。この場合、不揮発性記憶部12から読み込まれた対象データは、ステップS41において受信された読み込み要求に対する正常応答(成功応答)としてホストに返される。
一方、上記した読み込み要求に正当性がないと判定された場合(ステップS43のNO)または第2管理情報に対象キーがないと判定された場合(ステップS45のNO)、当該読み込み要求に対する処理(つまり、不揮発性記憶部12から対象データを読み込む処理)が正常に実行されないことを示す応答(エラー応答)がホストに対して返される(ステップS47)。すなわち、例えば読み込み要求(に含まれる対象キー)が正当である場合であっても、第2管理情報に当該対象キー(つまり、適切なエントリ)がない場合には、エラー応答が返される。このように読み込み処理時においては、ストレージ装置10は単純なデータベースのように振る舞い、応答を返すだけでよい。
なお、読み込み処理の際に対象データの有効期間を確認するような構成としてもよい。この場合、第2管理情報が有効期間を示す情報(有効期間情報)を更に含むようにすればよい。ただし、正確な有効期間の情報は上位アプリケーション(ホスト)側で管理されていることが一般的であるため、ストレージ装置10が有効期間を確認する構成を必ずしも有している必要はない。
ここで、上記した図18においては第2管理情報にキー、物理アドレス及びサイズが含まれる場合について説明したが、当該第2管理情報は、管理領域をまたがって物理アドレスが一意に設定されている(つまり、物理アドレスに基づいて管理領域及び当該管理領域内のデータが書き込まれている場所を一意に特定することが可能である)場合を想定している。
すなわち、例えば管理領域毎に物理アドレスが再割り当てされている(1つの管理領域内のデータが書き込まれている場所を特定することは可能であるが、当該物理アドレスのみでは管理領域を特定することができない)場合には、図19に示すようにキーが割り当てられているデータが書き込まれている管理領域の情報(管理領域情報)を更に含む第2管理情報を管理しておく必要がある。
また、上記したように第2管理情報が有効期間を示す情報(有効期間情報)を含む場合は、図20に示すような第2管理情報とすればよい。
次に、図21のフローチャートを参照して、不揮発性記憶部12からデータを消去する際の処理(以下、消去処理と表記)について説明する。なお、図21に示す消去処理は、例えば上記した第1管理情報(において管理されている有効期間情報)を更新するタイミングで実行されるが、異なるタイミングで実行されてもよい。
まず、制御部11は、第1管理情報が更新された結果、有効期間を経過したデータの管理領域(以下、消去領域と表記)を当該第1管理情報から検索する(ステップS51)。
制御部11は、ステップS51の処理の結果に基づいて、消去領域があるか否かを判定する(ステップS52)。
ここで、基準時刻から24時間が経過したことによって、上記した図7に示す第1管理情報が図8に示す第1管理情報に更新された場合を想定する。この場合、管理領域情報「N3」に対応づけられている有効期間「0H−24H」が「−」に更新されているため、当該管理領域情報「N3」によって示される管理領域が消去領域に相当し、ステップS52においては消去領域があると判定される。
上記したように消去領域があると判定された場合(ステップS52のYES)、制御部11は、消去領域に書き込まれている(保存されている)全てのデータを一括消去する(ステップS53)。
なお、第2管理情報において管理されている各キーのエントリは、当該キーが割り当てられているデータに設定されている有効期間が経過した時点で削除されるが、消去領域に書き込まれていたデータ(つまり、消去されたデータ)に割り当てられているキーが第2管理情報に存在している(残存している)場合には当該キーに対応するエントリを第2管理情報から削除する処理が実行される。
一方、消去領域がないと判定された場合(ステップS52のNO)、図21に示す処理は終了される。
なお、ステップS53の処理は、ステップS52において消去領域があると判定された時点で即座に実行されてもよいし、予め設定されたタイマーが作動するタイミングで実行してもよい。更に、ステップS53の処理は、データの書き込み処理及び読み込み処理が多く実行される時間帯を避けて実行されてもよいし、ストレージ装置10において他のデータが消去されるタイミングと重複しないタイミングで実行されてもよい。
データを消去する際は特定の管理領域(消去領域)に対して制御部11がデータを消去するための処理を実行するが、例えば不揮発性記憶部12がNAND型フラッシュメモリ102である場合にはブロック単位の消去となるため、当該管理領域を構成するブロックに対してデータを消去するための処理が実行される。
ここでは、第1管理情報(において管理されている有効期間情報)が更新されるタイミングで有効期間が経過した管理領域に書き込まれているデータが自動的に消去される場合について説明したが、例えばホスト(上位アプリケーション)からの要求に応じて特定のデータを削除する処理を実行することも可能である。
以下、図22に示すフローチャートを参照して、ホストからの要求に応じて特定のデータを削除する際の削除処理の処理手順の一例について説明する。なお、以下の説明において、不揮発性記憶部12から削除するデータを対象データと称する。
まず、制御部11(コントローラ101)は、例えばホストから削除要求を受信する(ステップS61)。ステップS61において受信される削除要求には、対象データ(不揮発性記憶部12から削除されるべきデータ)に割り当てられているキーが含まれる。
ステップS61の処理が実行されると、制御部11は、当該ステップS61において受信された削除要求の正当性を確認(チェック)する(ステップS62)。ステップS62においては、削除要求に含まれているキーが所定のフォーマットに一致するものであるか否か等が確認される。ステップS62の処理が実行されることによって、制御部11は、ステップS51において受信された削除要求に正当性があるか否かを判定する(ステップS63)。
削除要求に正当性があると判定された場合(ステップS63のYES)、制御部11は、揮発性記憶部13に格納されている第2管理情報から、当該削除要求に含まれるキー(以下、対象キーと表記)を検索する(ステップS64)。
制御部11は、ステップS54の処理が実行された結果に基づいて、第2管理情報に対象キーがあるか否かを判定する(ステップS65)。
第2管理情報に対象キーがあると判定された場合(ステップS65のYES)、制御部11は、対象キー、当該対象キーに対応づけられている物理アドレス及びサイズ(つまり、対象キーのエントリ)を第2管理情報から削除する(ステップS66)。ステップS66の処理が実行された場合、ステップS61において受信された削除要求に対する正常応答がホストに返される。
このように削除処理は、第2管理情報に対する処理(対象キーのエントリの削除処理)のみで完了する。すなわち、図22に示す削除処理では、実際に不揮発性記憶部12から対象データを消去する処理は実行されず、当該対象データの消去は上記した図21に示す消去処理によって実現される。上記したように本実施形態においては、不揮発性記憶部12から実際にデータを消去する処理を消去処理、データを読み込むことができない状態にするために第2管理情報から対象キーのエントリを削除する処理を削除処理として区別している。以下の他の実施形態においても同様である。
ここで、本実施形態においては不揮発性記憶部12に書き込まれるデータに有効期間が設定されているものとして説明したが、当該データに設定される有効期間の例について説明する。
まず、有効期間としては、例えばデータをネットワーク経由で受信する際に通信プロトコルで通知される有効期間(例えば、HTTPのChache−Controlフィールドに含まれる有効期間)を利用することができる。
また、ストレージ装置10の管理者が事前に設定する期間を有効期間として利用してもよい。この場合、有効期間は、データの種類毎に設定されてもよい。具体的には、例えばテキストデータ、画像データ、動画データ、その他等の種類に分類した上で、当該種類毎に有効期間を付与することができる。また、データのサイズ毎または区間毎(サイズS1〜S2、サイズS2〜S3、…)に有効期間を設定するようにしてもよい。
更に、有効期間は、データの生成元(オリジンサーバまたは一次保存元)またはドメイン名毎に管理者が事前に設定するようにしてもよい。
また、有効期間は、データを取得する際に要したコストに基づいて設定されてもよい。この場合、例えばデータをダウンロードする際に長い時間を要した場合には、長い有効期間を設定するようなことができる。
なお、ストレージ装置10は上記した有効期間を直接把握することはできないため、当該有効期間は、ホスト(上で動作するアプリケーション)側で適切に把握した上で、上記した書き込み要求等を介して当該ホストからストレージ装置10に通知されるものとする。
上記したように本実施形態においては、不揮発性記憶部12の記憶領域を論理的に分割することによって得られる複数の管理領域を管理し、有効期間が設定されたデータを含む書き込み要求が受信された場合に、当該複数の管理領域の中から当該有効期間に基づいて1つの管理領域(第1管理領域)を決定し、当該書き込み要求に含まれるデータを当該決定された管理領域に書き込む。また、本実施形態においては、管理領域に書き込まれたデータを消去する場合、当該データを含む当該管理領域に書き込まれている全てのデータを一括消去する。具体的には、本実施形態においては、特定の管理領域に割り当てられている有効期間の経過に応じて、当該管理領域に書き込まれている全てのデータが一括消去される。
なお、本実施形態においては、複数の管理領域に対してそれぞれ重複しない有効期間が割り当てられており、書き込み要求に含まれるデータに設定されている有効期間の終了時刻を包含する有効期間が割り当てられている管理領域が当該データの書き込み先として決定される。
更に、本実施形態において、複数の管理領域は第1有効期間(例えば、0H−24H)が割り当てられている第1管理領域及び当該第1有効期間よりも長い第2有効期間(例えば、24H−48H)が割り当てられている第2管理領域を含み、第1管理領域に割り当てられている第1有効期間が経過した場合、当該第2管理領域に割り当てられている第2有効期間は第1有効期間に基づいて更新(短縮)される。
本実施形態においては、上記したように複数の管理領域の各々に割り当てられている異なる有効期間を適切に管理し、当該有効期間が経過した管理領域のデータ全体を一括して消去する構成であるため、不揮発性記憶部12に書き込まれたデータ単位での消去を実行するような構成と比べて、データが消去された後の領域を有効に利用することができる。換言すれば、本実施形態においては、不揮発性記憶部12の内部でのガベージコレクション(不要な記憶領域を解放する処理)の発生を抑制し、当該不揮発性記憶部12における書き込み回数を必要最小限に抑えることができる。これによれば、ストレージ装置10において用いられる不揮発性記憶部12(ストレージ素子)の使用回数を抑制することにより、当該不揮発性記憶部12の劣化を抑制することが可能となる。
なお、本実施形態においては、書き込み要求に含まれるデータを管理領域に既に書き込まれているデータの終端から追記する(当該管理領域の使用済み部分の末尾に追記する)ものとする。これによれば、管理領域にデータを書き込む際に当該データを書き込むことができる領域を探索する処理負荷を低減することができる。
更に、本実施形態においては、データに設定されている有効期間が割り当てられている管理領域の空き領域が不足している場合には、当該データの一部を当該管理領域の空き領域に書き込むとともに、当該データの他部(残り)を書き込むことが可能なサイズの容量を確保するために当該管理領域の先頭に書き込まれている他のデータを消去することによって、当該データの他部を当該管理領域の先頭から書き込む。
なお、データに設定されている有効期間が割り当てられている管理領域の空き領域が不足している場合には、当該データを他の管理領域(例えば、当該有効期間よりも長い有効期間が割り当てられている管理領域)に書き込むようにしてもよい。このデータが書き込まれる他の管理領域は、複数の管理領域の各々に割り当てられている有効期間、当該管理領域の空き容量、当該管理領域の書き込み頻度及び読み込み頻度の少なくとも1つに基づいて決定される。また、データに設定されている有効期間が割り当てられている管理領域の空き領域が不足している場合、当該データは、有効期間が割り当てられていない管理領域(緩衝帯)に書き込まれてもよい。
このような構成によれば、書き込み処理におけるエラー応答の回数を減少させることができるため、円滑な書き込み処理を実現することができる。
(第2実施形態)
次に、第2実施形態について説明する。前述した第1実施形態においてはストレージ装置10がKVS型のストレージ装置として動作するものとして説明したが、本実施形態は、KVS(キーを用いたデータの管理)ではなくアドレスを用いたデータの管理を行う点が当該第1実施形態とは異なる。
次に、第2実施形態について説明する。前述した第1実施形態においてはストレージ装置10がKVS型のストレージ装置として動作するものとして説明したが、本実施形態は、KVS(キーを用いたデータの管理)ではなくアドレスを用いたデータの管理を行う点が当該第1実施形態とは異なる。
図23は、本実施形態に係るストレージ装置の構成を概略的に示すブロック図である。なお、図23においては、前述した図1と同様の部分には同一参照符号を付して、その詳しい説明を省略する。ここでは、図1と異なる部分について主に述べる。
図23に示すように、本実施形態に係るストレージ装置10における制御部11は、アドレス変換部11bを含む。アドレス変換部11bは、ストレージ装置10(不揮発性記憶部12)内でデータが書き込まれた場所を特定する内部アドレスと外部のホストに対して通知する外部アドレスとの変換を行うための機能部である。なお、本実施形態において、内部アドレスとはストレージ装置10において管理される論理アドレスであり、外部アドレスとはホストにおいて管理されている論理アドレスである。
本実施形態においては、内部アドレス及びホストに対して通知する外部アドレスとの対応関係を管理する第3管理情報(アドレス変換情報)が揮発性記憶部13に格納されているものとする。
なお、前述した第1実施形態と同様に、揮発性記憶部13は制御部11の外部に接続されなくても構わない。この場合、図24に示すように、揮発性記憶部13は制御部11の内部に設けられればよい。
次に、図25に示すフローチャートを参照して、本実施形態における書き込み処理の処理手順の一例について説明する。なお、以下の説明においては、不揮発性記憶部12に書き込まれるデータを対象データと称する。
まず、前述した図12に示すステップS1〜S5の処理に相当するステップS71〜S75の処理を実行する。
なお、前述した図12に示すステップS1において受信される書き込み要求には対象データに割り当てられているキー及び対象データが含まれるが、ステップS71において受信される書き込まれる書き込み要求には対象データのみが含まれる。
また、ステップS75においてはステップS74において決定された管理領域(つまり、書き込み先)に対象データが書き込まれるが、当該対象データが書き込まれたストレージ装置10において管理されている論理アドレス(内部アドレス)に対応する外部アドレス(ホストにおいて管理される論理アドレス)は、当該ホスト側の制御と整合するように制御部11によって生成される。
次に、アドレス変換部11bは、揮発性記憶部13に格納されている第3管理情報を更新する(ステップS76)。
ここで、図26は、第3管理情報のデータ構造の一例を示す。図26に示すように、第3管理情報には、内部アドレス及び外部アドレスが対応づけて含まれる。
図26に示す例では、第3管理情報には、内部アドレス「F−LA1」及び外部アドレス「S−LA1」が対応づけて含まれる。これによれば、ストレージ装置10において管理されている論理アドレス「F−LA1」に書き込まれたデータが、ホストにおいては論理アドレス「S−LA1」に書き込まれたとして管理されていることが示されている。
なお、第3管理情報には、不揮発性記憶部12(管理領域)に書き込まれているデータ毎に、内部アドレス及び外部アドレスの対応関係が含まれている。
このような第3管理情報により、アドレス変換部11bにおける内部アドレス及び外部アドレス間のアドレス変換を実現することができる。
なお、図26に示す第3管理情報は、ストレージ装置10の内部で一意に内部アドレスが定められている場合を想定している。内部アドレスが管理領域毎に定められている場合には、図27に示すように当該内部アドレスに対応する管理領域を示す管理領域情報が更に第3管理情報に含まれていればよい。
再び図25に戻ると、ステップS76においては、ステップS75において対象データが書き込まれた内部アドレス及び上記したように制御部11によって生成された外部アドレスを対応づけて第3管理情報に登録することによって当該第3管理情報が更新される。
ステップS76の処理が実行されると、ステップS71において受信された書き込み要求に対する応答として、当該書き込み要求に対する処理(つまり、対象データを不揮発性記憶部12に書き込む処理)が正常に実行されたことを示す応答(正常応答)がホストに対して返される(ステップS77)。なお、ステップS77においてホストに返される正常応答には、上記したステップS76において第3管理情報に登録された外部アドレスが含まれる。
一方、ステップS73において書き込み要求に正当性がないと判定された場合(ステップS73のNO)、前述した図12に示すステップS8の処理に相当するステップS78の処理が実行される。この場合、アドレスが無効であることを示す情報(例えば、NULL等)がエラー応答としてホストに返される。
なお、本実施形態においても前述した第1実施形態と同様に読み込み処理及び削除処理が実行されるが、本実施形態における読み込み処理及び削除処理は、対象データに割り当てられているキーに変えて、当該対象データが書き込まれた内部アドレス及び外部アドレスが用いられればよい。
具体的には、読み込み処理の場合は、対象データが書き込まれたとしてホストにおいて管理されている外部アドレスがホストからの読み込み要求に含まれており、第3管理情報を参照して当該外部アドレスから変換された内部アドレスに基づいて対象データが読み込まれる。削除処理の場合は、対象データが書き込まれたとしてホストにおいて管理されている外部アドレスがホストからの削除要求に含まれており、第3管理情報から当該外部アドレス及び内部アドレスの対応関係(つまり、対応するエントリ)を削除すればよい。なお、本実施形態における消去処理は、前述した第1実施形態と同様である。
上記したように本実施形態においては、ストレージ装置10がKVS型のストレージ装置として動作するのではなくアドレスを用いてデータを管理するように動作する場合であっても、前述した第1実施形態と同様に、不揮発性記憶部12の使用回数を抑制し、当該不揮発性記憶部12の劣化を抑制することが可能となる。
なお、本実施形態においては、書き込み処理においてホストからストレージ装置10に対して外部アドレス(論理アドレス)を通知せず、ストレージ装置10側で適切な外部アドレスを生成してホストに通知するものとして説明したが、データを不揮発性記憶部12に書き込む際にホスト側で決定された外部アドレスをストレージ装置10に通知する構成としてもよい。この場合には、ホストから通知された外部アドレス及びデータが書き込まれた内部アドレス(ストレージ装置10において管理される論理アドレス)の対応関係を第3管理情報において管理すればよい。
(第3実施形態)
次に、第3実施形態について説明する。前述した第1及び第2実施形態においてはホスト側で管理領域(不揮発性記憶部の記憶領域の分割状態や管理状況)を把握する必要がない構成について説明したが、本実施形態は、ホストが当該管理領域に書き込まれるデータの管理を行う点で、当該第1及び第2実施形態とは異なる。なお、本実施形態においては、ストレージ装置とホストとが一体として動作するストレージシステムとして説明する。
次に、第3実施形態について説明する。前述した第1及び第2実施形態においてはホスト側で管理領域(不揮発性記憶部の記憶領域の分割状態や管理状況)を把握する必要がない構成について説明したが、本実施形態は、ホストが当該管理領域に書き込まれるデータの管理を行う点で、当該第1及び第2実施形態とは異なる。なお、本実施形態においては、ストレージ装置とホストとが一体として動作するストレージシステムとして説明する。
図28は、本実施形態に係るストレージシステムの構成を概略的に示すブロック図である。
図28に示すように、ストレージシステム20は、ストレージ装置21、制御部22、揮発性記憶部23及びI/Oインタフェース部24を備える。
ストレージ装置21は、前述した第1及び第2実施形態における不揮発性記憶部12に相当する不揮発性記憶部211を備える。なお、ストレージ装置21の動作を制御するためのコントローラ等については、図28においては省略されている。
なお、本実施形態において、ストレージ装置21は、不揮発性記憶部211の記憶領域を複数の管理領域に分割するとともに、追記書き込みによりデータを当該複数の管理領域の各々に保存して管理することができるように構成されているものとする。
制御部22は、所定のアプリケーションプログラムを実行し、ストレージ装置21に対してデータの書き込み及び読み込み等を指示するI/O命令を発行する。
揮発性記憶部23は、制御部22で実行されるアプリケーションプログラムが一時的に使用する記憶部である。
I/Oインタフェース部24は、例えば制御部22がストレージシステム20の外部とデータを交換する際に利用するネットワークインタフェース等を含む。I/Oインタフェース部24は、ストレージシステム20とキーボードまたはマウス等との間に設けられるインタフェース等であってもよい。ストレージシステム20には複数のインタフェースが接続されている可能性が高いが、図28においては簡略化して示している。
ここで、制御部22は、アプリケーション実行部22a、領域決定部22b及びデータ管理部22cを含む。
アプリケーション実行部22aは、上記したアプリケーションプログラムを実行するための機能部である。
領域決定部22bは、データが書き込まれるストレージ装置21内の領域(管理領域)を決定するための機能部である。
データ管理部22cは、ストレージ装置21にデータが書き込まれた場合に、当該データの書き込み先(保存先)の情報を管理するための機能部である。
なお、上記したアプリケーション実行部22a、領域決定部22b及びデータ管理部22cは、制御部22に実装されるCPU等の汎用的なプロセッサ(演算部)によって実行されるソフトウェアによって実現されてもよい。
次に、本実施形態に係るストレージシステム20の動作例について説明する。ここでは、上記したようにストレージ装置21に対してデータの書き込み及び読み込み等を指示するI/O命令を発行するアプリケーションプログラムがアプリケーション実行部22aにおいて実行される場合に、当該アプリケーションプログラムがKVSプログラムを用いるものとして説明する。KVSプログラムは、データに割り当てられたキーを用いて当該データを管理するために動作するプログラムである。なお、上記した制御部22に含まれる領域決定部22b及びデータ管理部22cは、このKVSプログラムが実行されることによって実現される機能部である。
まず、図29に示すように、アプリケーション実行部22aにおいて実行されるアプリケーション(プログラム)1がストレージ装置21に対してデータの書き込み(Set)を実行する場合、当該データ及び当該データに割り当てられたキーに加えて、当該データに設定されている有効期間がアプリケーション1からKVSプログラムに通知される。
この場合、KVSプログラムは、アプリケーション1から通知された有効期間に基づいて適切な管理領域(書き込み先)を決定し、データをストレージ装置21に書き込む処理を実行する。データの書き込み先を決定する処理は領域決定部22bによって実行されるが、当該処理は前述した第1実施形態において説明した通りであるため、ここではその詳しい説明を省略する。
なお、本実施形態に係るストレージシステム20に備えられるストレージ装置21がアドレスを用いたインタフェースを提供しており、かつ、制御部22が追記書き込みを行うように制御する必要がある場合には、KVSプログラムは、書き込み先として決定された管理領域及びデータが書き込まれるべき外部アドレス(ホストにおいて管理されている論理アドレス)を指定して、当該データをストレージ装置21に書き込む(Write)。
ストレージ装置21からKVSプログラムに対してはデータの書き込み処理の成否が応答として返され、当該応答は、KVSプログラムからアプリケーション1に返される。
一方、アプリケーション実行部22aにおいて実行されるアプリケーション(プログラム)Nがストレージ装置21に対してデータの読み込み(Get)を実行する場合、当該データに割り当てられているキーがアプリケーションNからKVSプログラムに通知される。
この場合、KVSプログラムは、アプリケーションNから通知されたキー、当該キーが割り当てられているデータが書き込まれたとしてKVSプログラム(ホスト)において管理されている外部アドレス及び当該データのサイズを指定することによって、ストレージ装置21からデータを読み込む(Read)。このようにストレージ装置21から読み込まれたデータは、アプリケーションNに返される。
なお、上記したデータに割り当てられているキー、当該データの書き込み先となる管理領域、当該データが書き込まれた外部アドレス及び当該データのサイズ等の対応関係については、KVSプログラムにおいて管理されているものとする。
図29においては制御部22が追記書き込みを行うように制御する場合について説明したが、ストレージ装置21側が自律的に追記書き込みを行う構成であってもよい。この場合には、KVSプログラムは、図30に示すように管理領域(書き込み先)を指定してデータをストレージ装置21に書き込み、当該データが書き込まれたとしてKVSプログラムにおいて管理される外部アドレスを書き込み処理の結果としてストレージ装置21から受け取ればよい。
更に、ストレージ装置21がKVSのインタフェースを提供している場合には、KVSプログラムは、図31に示すように管理領域及びキーを指定してデータをストレージ装置21に書き込むようにすればよい。
上記したように制御部22(ホスト)がストレージ装置21の不揮発性記憶部211(の記憶領域)を管理する場合、当該ストレージ装置21の実装形態によって複数の処理方法が考えられる。この場合、ストレージ装置21の実装形態(処理方法)によって、データ管理部22cにおいて管理すべき情報も異なる。
上記した図29に示すようにストレージシステム20が動作する場合、データ管理部22cは、図32に示すようにキー、サイズ、有効期間(を示す有効期間情報)、管理領域(を示す管理領域情報)及び外部アドレスの対応関係を管理するための第4管理情報と、図33に示すような各管理領域に対する次の書き込み開始アドレスを管理するための第5管理情報とを管理する。なお、図32に示す第4管理情報において管理される有効期間情報は、対応するキーが割り当てられているデータに設定されている有効期間を示しており、当該データが書き込まれた管理領域に割り当てられている有効期間を示す情報ではない。また、外部アドレスが全ての領域にまたがって一意に設定されている場合には、第4管理情報において管理領域情報は省略されても構わない。
図30に示すようにストレージシステム20が動作する場合についても同様に図32及び図33に示すような第4及び第5管理の情報がデータ管理部22cによって管理される。なお、図30に示す動作例においては、書き込み処理が成功した場合に外部アドレスが決定される(ストレージ装置21から通知される)ため、第4管理情報において管理される外部アドレスについては、書き込み処理が成功した後に第4管理情報に追加(登録)される。
また、図31に示すようにストレージシステム20が動作する場合には、図32に示す第4管理情報から外部アドレスを除いた情報をデータ管理部22cが管理すればよい。すなわち、図31に示す動作例においては、ストレージ装置21がKVSのインタフェースを搭載しているため、アドレスに関する情報(外部アドレス及び書き込み開始アドレス)をデータ管理部22cが管理する必要はない。
ここで、本実施形態において、制御部22に含まれる領域決定部22bは、データに設定されている有効期間に基づいて当該データの書き込み先となる管理領域を決定する処理(書き込み先決定処理)を実行するが、当該管理領域を管理する機能(以下、領域管理機能と表記)を更に有するものとする。この領域管理機能には、管理領域の作成、削除及びサイズの変更等が含まれる。
例えばストレージ装置21が初期状態である場合には、管理領域を作成する必要がある。この場合、制御部22(に含まれるアプリケーション実行部22a)において実行される所定のプログラム(初期設定プログラム等)を通じて、領域決定部22b(の領域管理機能)は、管理領域の数やサイズ、有効期間の区切り(つまり、当該管理領域に割り当てられる有効期間)を決定する。領域決定部22bは、このように決定された内容に基づいて各管理領域を作成する要求(領域作成コマンド)をストレージ装置21に発行(送信)する。
領域決定部22bによって発行された領域作成コマンドに対応する処理をストレージ装置21が実行すると、領域決定部22bは、ストレージ装置21から当該領域作成コマンドに対する応答を受信する。ストレージ装置21から受信された応答が正常応答(つまり、正常に管理領域が作成されたことを示す応答)であれば、前述した第1管理情報に適切なエントリ(つまり、作成された管理領域と当該管理領域に割り当てられた有効期間との対応関係)を登録(追加)する。なお、ストレージ装置21から受信された応答がエラー応答(つまり、正常に管理領域が作成されないことを示す応答)であれば、制御部22において適切なエラー処理が行われる。
ところで、例えば本実施形態に係るストレージシステム20で取り扱うデータの特性が大きく変化した際には、ストレージ装置21の不揮発性記憶領域(管理領域)を再構築する必要がある。この場合、領域決定部22bは、管理領域を削除する要求(領域削除コマンド)をストレージ装置21に対して発行してもよい。
領域決定部22bによって発行された領域削除コマンドに対応する処理をストレージ装置21が実行すると、領域決定部22bは、ストレージ装置21から領域削除コマンドに対する応答を受信する。ストレージ装置21から受信された応答が正常応答(つまり、正常に管理領域が削除されたことを示す応答)であれば、第1管理情報から適切なエントリ(つまり、削除された管理領域と当該管理領域に割り当てられた有効期間との対応関係)を削除する。なお、ストレージ装置21から受信された応答がエラー応答(つまり、正常に管理領域が削除されないことを示す応答)であれば、制御部22において適切なエラー処理が行われる。なお、管理領域のサイズの変更を行う場合も同様に、管理領域のサイズを変更する要求(サイズ変更コマンド)が領域決定部22bからストレージ装置21に対して発行される。
また、管理領域の数や順番を維持したまま、サイズのみを変更する場合もあり得る。ストレージ装置21がこのようなサイズのみの変更に対応している場合には、適切な要求(コマンド)をストレージ装置21に発行して、当該サイズを変更してもよい。この場合、各管理領域に書き込まれている(保存されている)データの保持を考慮せずに当該管理領域のサイズを変更してもよいし、各管理領域に書き込まれているデータ(の量)を考慮して未使用領域のみを変化させてもよい。なお、例えば第1管理情報において各管理領域のサイズが管理されている場合には、ストレージ装置21からの正常応答(つまり、正常に管理領域のサイズが変更されたことを示す応答)に応じて、第1管理情報(の対応するエントリ)が更新される。
次に、図34のフローチャートを参照して、本実施形態に係るストレージシステム20における書き込み処理の処理手順の一例について説明する。ここでは、ストレージシステム20が図29に示すように動作する場合を想定している。なお、以下の説明においては、ストレージ装置21の不揮発性記憶部211に書き込まれるデータを対象データと称する。
まず、アプリケーション実行部22aにおいてアプリケーションプログラムが実行されることによって書き込み要求が発生した場合、制御部22は、当該書き込み要求を取得する(ステップS81)。ステップS81において取得される書き込み要求には、対象データと当該対象データに割り当てられたキーとが含まれる。また、対象データには、有効期間が設定されている。
ステップS81の処理が実行されると、制御部22は、前述した図12に示すステップS2〜S4の処理に相当するステップS82〜S84の処理を実行する。なお、上記した図29に示すようにストレージシステム20が動作する場合、ステップS84においては、書き込み先となる管理領域を決定するとともに、当該管理領域に対する次の書き込み開始アドレスを第5管理情報から取得(決定)する。
次に、制御部22は、ステップS84において決定された管理領域(を示す管理領域情報)、対象データが書き込まれるものとして管理されている外部アドレス(ホストにおいて管理されている論理アドレス)及び対象データを含む書き込み要求をストレージ装置21に対して発行する(ステップS85)。なお、書き込み要求に含まれる外部アドレスは、上記した書き込み開始アドレスと同一の値である。
ステップS85の処理が実行されると、当該ステップS85において発行された書き込み要求に基づく対象データの書き込みがストレージ装置21において行われ、当該書き込み要求に対する応答がストレージ装置21から制御部22に返される。
ここで、制御部22は、ストレージ装置21から返された応答が正常応答であるか否かを判定する(ステップS86)。
ストレージ装置21から返された応答が正常応答であると判定された場合(ステップS86のYES)、データ管理部22cは、ステップS85においてストレージ装置21に対して発行された書き込み要求に含まれる管理領域、外部アドレス(書き込み開始アドレス)及び対象データ等に基づいて、上記した第4及び第5管理情報を更新する(ステップS87)。
具体的には、ステップS87においては、対象データに割り当てられているキー、当該対象データのサイズ及び当該対象データに設定されている有効期間(を示す有効期間情報)と、書き込み要求に含まれる管理領域(を示す管理領域情報)及び外部アドレスとを対応づけて第4管理情報に登録する。
更に、ステップS87においては、書き込み要求に含まれる管理領域に対する次の書き込み開始アドレス(つまり、第5管理情報)が、対象データ(つまり、当該管理領域に書き込まれた対象データ)のサイズに基づいて更新される。
なお、上記したようにストレージ装置21から返された応答が正常応答である(つまり、対象データが正常にストレージ装置21に書き込まれた)場合、当該ストレージ装置21においては、上記した第3管理情報(アドレス変換情報)を更新する処理が実行される。
ステップS87の処理が実行された場合、ステップS81において取得された書き込み要求に対する応答として、正常応答がアプリケーション実行部22aにおいて実行されているアプリケーションプログラムに対して返される。
一方、ステップS83において書き込み要求に正当性がないと判定された場合(ステップS83のNO)またはステップS86においてストレージ装置21から返された応答が正常応答でない(つまり、エラー応答である)と判定された場合(ステップS86のNO)、ステップS81において取得された書き込み要求に対する応答として、エラー応答がアプリケーション実行部22aにおいて実行されているアプリケーションプログラムに対して返される(ステップS89)。
ここではストレージ装置21にデータを書き込む際の書き込み処理について説明したが、読み込み処理及び削除処理については前述した第1実施形態と同様に書き込み処理に準じて実行されればよいため、ここではその詳しい説明を省略する。
次に、図35に示すフローチャートを参照して、ストレージシステム20における消去処理の処理手順の一例について説明する。なお、図21に示す消去処理は、データ管理部22cにおいて管理されている第1管理情報(において保持されている有効期間情報)を更新するタイミングで実行されるが、異なるタイミングで実行されてもよい。
まず、制御部22は、前述した図21に示すステップS51及びS52の処理に相当するステップS91及びS92の処理を実行する。
ステップS92において消去領域があると判定された場合(ステップS92のYES)、制御部22は、当該消去領域(有効期間が経過した管理領域)を指定した消去要求をストレージ装置21に対して発行する(ステップS93)。
ステップS93の処理が実行されると、制御部22によって発行された消去要求に基づく消去処理(消去領域に書き込まれている全てのデータを一括消去する処理)がストレージ装置21において実行され、当該消去要求に対応する応答がストレージ装置21から制御部22に返される。
ここで、制御部22は、ストレージ装置21から返された応答が正常応答であるか否かを判定する(ステップS94)。
ストレージ装置21から返された応答が正常応答であると判定された場合(ステップS94のYES)、データが一括消去された消去領域がデータ管理部22cに通知される(ステップS95)。これにより、データ管理部22cは、消去領域に書き込まれていたデータに割り当てられているキーのエントリが第4管理情報に存在している場合には、当該エントリを削除する(つまり、当該第4管理情報を更新する)ことができる。
ここでは消去領域がデータ管理部22cに通知されるものとして説明したが、例えば第4管理情報に管理領域(を示す管理領域情報)が含まれていない場合には、ステップ95の処理は省略されても構わない。
なお、上記したようにストレージ装置21から返された応答が正常応答である(つまり、消去領域に書き込まれているデータが一括消去された)場合、当該ストレージ装置21においては、上記した第3管理情報(アドレス変換情報)を更新する処理が実行される。
一方、ストレージ装置21から返された応答が正常応答でない(つまり、エラー応答である)と判定された場合(ステップS94のNO)、例えばアプリケーション実行部22aにおいて実行されるアプリケーションプログラムにエラー応答が返されて処理が終了される。
図35においてはステップS93において発行された消去要求がストレージ装置21に対して確実にデータの消去を指示する要求(コマンド)であるものとして説明したが、当該消去要求は、消去領域に書き込まれているデータを参照することができない状態にする要求であってもよいし、当該消去領域自体を削除して管理領域を再作成する複数の要求(コマンド群)であってもよい。
上記したように本実施形態においては、ホスト側から制御可能なストレージ装置21の不揮発性記憶部211)の記憶領域を論理的に分割した上で、当該ホストの指示により有効期間に基づいて決定された複数の管理領域のうちの1つの適切な管理領域にデータを書き込む構成とすることで、前述した第1実施形態と同様に当該不揮発性記憶部211の劣化を抑制することが可能なストレージシステムを実現することができる。
(第4実施形態)
次に、第4実施形態について説明する。本実施形態においては、ストレージ装置が特性の異なる複数の不揮発性記憶部を備える構成を想定している。具体的には、前述した第1〜第3実施形態においては、不揮発性記憶部の記憶領域を分割することによって得られる複数の管理領域の中からデータの書き込み先となる管理領域を決定するための情報として当該データに設定されている有効期間を使用したが、本実施形態においては、当該データが書き込まれる不揮発性記憶部の選択にも当該有効期間を用いる。
次に、第4実施形態について説明する。本実施形態においては、ストレージ装置が特性の異なる複数の不揮発性記憶部を備える構成を想定している。具体的には、前述した第1〜第3実施形態においては、不揮発性記憶部の記憶領域を分割することによって得られる複数の管理領域の中からデータの書き込み先となる管理領域を決定するための情報として当該データに設定されている有効期間を使用したが、本実施形態においては、当該データが書き込まれる不揮発性記憶部の選択にも当該有効期間を用いる。
図36は、本実施形態に係るストレージ装置の構成を概略的に示すブロック図である。なお、図36においては、前述した図1と同様の部分には同一参照符号を付して、その詳しい説明を省略する。ここでは、図1と異なる部分について主に述べる。
図36に示すように、本実施形態に係るストレージ装置10における制御部11は、記憶部決定部11cを含む。記憶部決定部11cは、領域決定部11aにおいて定められている制約の下で、データに設定されている有効期間に基づいて複数の不揮発性記憶部12のうちのデータ書き込まれる1つの不揮発性記憶部12を決定する機能を有する。なお、不揮発性記憶部12が例えばNAND型フラッシュメモリ102である場合には、記憶部決定部11cは、不揮発性記憶部12の記憶領域を構成する1つ以上のブロック(物理ブロック)を決定する。なお、ブロックとは、上記したようにNAND型フラッシュメモリ102における基本書き換え単位である。
ここで、図37を参照して、本実施形態に係るストレージ装置において管理される複数の管理領域(不揮発性記憶部12の記憶領域が論理的に分割された複数の領域)と複数の不揮発性記憶部12との関係性について説明する。
以下の説明においては、複数の不揮発性記憶部12は、不揮発性記憶部A〜Dを含むものとして説明する。図37に示す例では、不揮発性記憶部AはQLC(Quadruple Level Cell)方式のNAND型フラッシュメモリ、不揮発性記憶部B及びCはTLC(Triple Level Cell)方式のNAND型フラッシュメモリ、不揮発性記憶部DはSLC(Single Level Cell)方式のNAND型フラッシュメモリである場合を想定している。このような不揮発性記憶部A〜Dはそれぞれ特性が異なる。具体的には、不揮発性記憶部A〜Dは、例えば不揮発性記憶部A、B(C)、Dの順に耐久性が高くなる一方で、不揮発性記憶部D、B(C)、Aの順にデータを書き込むことができる容量(記憶領域のサイズ)が大きくなる。
図37に示すように、不揮発性記憶部A〜Dの各々の記憶領域は、前述した図4と同様に管理領域201〜208に分割して管理されているものとする。この場合、例えば管理領域201は、不揮発性記憶部A(QLC)の記憶領域を構成する少なくとも1つのブロック、不揮発性記憶部B(TLC)の記憶領域を構成する少なくとも1つのブロック、不揮発性記憶部C(TLC)の記憶領域を構成する少なくとも1つのブロック、不揮発性記憶部D(SLC)の記憶領域を構成する少なくとも1つのブロックによって構成されている。ここでは、管理領域201について説明したが他の管理領域202〜208についても同様である。
なお、管理領域201〜208は、ストレージ装置10において固定的に定められた領域であってもよいし、例えば領域決定部11aの管理領域を管理する機能(領域管理機能)によって適切なタイミングで構成(作成)されてもよい。すなわち、本実施形態においては、複数の管理領域201〜208の各々が特性の異なる複数の不揮発性記憶部A〜Dの記憶領域にまたがって構成されていればよい。
以下、本実施形態に係るストレージ装置10の動作の一例について説明する。ここでは、図37に示す管理領域201〜208が構成されている状態で、当該管理領域201〜208の各々には図38に示すように有効期間が割り当てられているものとする。
例えば有効期間として1時間が設定されているデータ301を書き込む場合、領域決定部11aは、前述した第1実施形態において説明した書き込み先決定処理によって管理領域201を当該データ301の書き込み先として決定する。
このように決定された管理領域201は不揮発性記憶部A〜Dの各々の記憶領域(少なくとも1つのブロック)から構成されているところ、記憶部決定部11cは、当該不揮発性記憶部A〜Dの中から1つの不揮発性記憶部(以下、書き込み先記憶部と表記)を決定する。
ここで、本実施形態における記憶部決定部11cの処理の一例について説明する。本実施形態において、記憶部決定部11cは、データの保持時間に影響を与える不揮発性記憶部A〜Dの各々の特性に基づいて書き込み先記憶部(ブロック)を決定する。なお、書き込み先記憶部を決定するための判断材料である不揮発性記憶部A〜Dの特性には、例えば鮮度(書き込み回数または消去回数)、多値度(SLC/MLC/TLC/QLC等)、制御方法(データを書き込む際の電気的特性による保持時間の長短)等が含まれる。なお、本実施形態において、「鮮度がよい」とは、不揮発性記憶部における書き込み回数及び消去回数が少ないことをいう。また、本実施形態において、「多値度」とは、不揮発性記憶部に書き込むことが可能なデータの量(メモリセルのレベル)に相当し、不揮発性記憶部A(SLC)、B及びC(TLC)、D(QLC)の順に多値度が高くなる。また、書き込み先記憶部を決定するための判断材料として制御方法を用いる場合には、制御部11は決定された書き込み先記憶部(ブロック)に対して適切な方法でデータを書き込むような制御を行うことができるように構成されているものとする。
また、NAND型フラッシュメモリ、NOR型フラッシュメモリ、STT−RAM、ReRAMまたはPCM等の異なる種類の不揮発性記憶部が混在している不揮発性記憶部A〜Dを用いる場合には、記憶部決定部11cは、当該不揮発性記憶部A〜Dの各々におけるデータの保持方式に基づいて書き込み先記憶部を決定するようにしてもよい。
更に、記憶部決定部11cは、ストレージ装置10において書き込まれるデータに対して推定される読み込みの頻度に基づいて書き込み先記憶部を決定してもよい。なお、想定される読み込みの頻度は、例えばデータに設定されている有効期間から推定してもよいし、当該データの一部(例えば、データの先頭部分に保持されている当該データを特徴づけるメタ情報等)から推定してもよい。
記憶部決定部11cによる書き込み先記憶部を決定する処理はストレージ装置10の実装に依存するため、本実施形態においては限定しないが、その一例としては、例えばデータに設定されている有効期間の長短と鮮度とを対応させることが考えられる。具体的には、例えば長い有効期間が設定されているデータの場合は、鮮度がよい不揮発性記憶部(の記憶領域を構成するブロック)を書き込み先記憶部として決定する。これによれば、長期間保存する必要があるデータについては、劣化が進んでいないと推測される不揮発性記憶部に書き込むようにすることができる。
また、データに設定されている有効期間と多値度とを対応させてもよい。具体的には、例えば長い有効期間が設定されているデータの場合は、多値度が低い不揮発性記憶部(にの記憶領域を構成するブロック)を書き込み先記憶部として決定する。これによれば、長期間保存する必要があるデータについては、耐久性の高い不揮発性記憶部(例えば、SLC方式の不揮発性記憶部)に書き込むようにすることができる。
上記したようにここで説明した書き込み先記憶部を決定する処理は一例であり、書き込み先記憶部は他の処理が実行されることによって決定されても構わない。
ここで、図38に示すデータ301に設定されている有効期間は上記したように1時間であり比較的短い。このため、データ301は、管理領域201中の例えば多値度が高い不揮発性記憶部A(QLC)の記憶領域に書き込まれている。
詳しい説明については省略するが、有効期間として50時間が設定されているデータ302は、管理領域203中の不揮発性記憶部Bの記憶領域に書き込まれている。また、有効期間として200時間が設定されているデータ303は、管理領域207中の不揮発性記憶部Dの記憶領域に書き込まれている。
なお、前述した第1実施形態においては管理領域内で追記書き込みを行うものとして説明したが、本実施形態においては、図39に示すように管理領域を構成する不揮発性記憶部A〜Dの記憶領域内で追記書き込みを行うものとする。追記書き込みは、不揮発性記憶部A〜Dの記憶領域の各々に対して個別に行われてもよいし、当該不揮発性記憶部A〜Dのうちの少なくとも2つを含むグループに対して行われてもよい。なお、不揮発性記憶部のグループは、例えば当該不揮発性記憶部の特性等に基づいて作成される。
図39に示す例では、不揮発性記憶部A(QLC)、不揮発性記憶部B及びC(TLC)のグループ、不揮発性記憶部D(SLC)でそれぞれ追記書き込みを管理している様子を示している。図39において、矢印SA3は、管理領域201中の不揮発性記憶部Aの記憶領域内における次の書き込み位置(書き込み先)を指し示している。また、矢印SBC3は、管理領域201中の不揮発性記憶部B及びCのグループの記憶領域内における次の書き込み位置(書き込み先)を指し示している。なお、不揮発性記憶部B及びCのグループにおいては、管理領域201中の不揮発性記憶部Bの記憶領域には既にデータが書き込まれている場合を想定しており、矢印SBC3は不揮発性記憶部Cの記憶領域内を指し示している。同様に、矢印SD3は、管理領域201中の不揮発性記憶部Dの記憶領域内における次の書き込み位置(書き込み先)を指し示している。
本実施形態においては、図39に示すような管理を行うため、記憶部決定部11cは、図40に示すように各管理領域201〜208を構成する記憶領域を提供する不揮発性記憶部A、不揮発性記憶部B及びCのグループ、不揮発性記憶部D毎に書き込み開始アドレス(情報)を管理する。
具体的には、図40においては、管理領域201〜208を示す管理領域情報「N1」〜「N8」の各々と不揮発性記憶部Aを示す「記憶部A」とに対応づけて、管理領域201〜208の各々における当該不揮発性記憶部Aの記憶領域に対する書き込み先アドレス「SA1」〜「SA8」が管理されている。
また、管理領域情報「N1」〜「N8」の各々と不揮発性記憶部B及びCのグループを示す「記憶部B,C」とに対応づけて、管理領域201〜208の各々における当該不揮発性記憶部B及びCの記憶領域に対する書き込み先アドレス「SBC1」〜「SBC8」が管理されている。
更に、管理領域情報「N1」〜「N8」の各々と不揮発性記憶部Dを示す「記憶部D」とに対応づけて、管理領域201〜208の各々における当該不揮発性記憶部Dの記憶領域に対する書き込み先アドレス「SD1」〜「SD8」が管理されている。
ここでは、本実施形態に係るストレージ装置10(記憶部決定部11c)の基本的な動作について説明したが、上記した動作例においては、特定の不揮発性記憶部に対するデータの書き込みが集中する可能性がある。
このため、記憶部決定部11cは、データに設定されている有効期間以外の情報を用いて書き込み先記憶部(データが書き込まれる不揮発性記憶部)を決定してもよい。具体的には、記憶部決定部11cは、例えばデータのサイズを考慮して書き込み先記憶部を決定してもよい。この場合、例えば有効期間をデータのサイズで除算することによって算出される値(有効期間/サイズ)が大きければ多値度が低い不揮発性記憶部(例えば、不揮発性記憶部D)を書き込み先記憶部として決定し、当該値が小さければ多値度が高い不揮発性記憶部(例えば、不揮発性記憶部A)を書き込み先記憶部として決定することができる。
なお、記憶部決定部11cによって決定された不揮発性記憶部12(の記憶領域を構成するブロック)は、適切なアドレスでアクセスすることができる必要がある。例えば前述した第1実施形態を拡張して本実施形態に適用する場合には、記憶部決定部11cによって決定された不揮発性記憶部12の記憶領域を構成するブロックに対応する内部アドレスを、前述した図18〜図20に示す第2管理情報中の物理アドレスのフィールドに格納すればよい。
一方、前述した第2実施形態を拡張して本実施形態に適用する場合には、記憶部決定部11cによって決定された不揮発性記憶部12の記憶領域を構成するブロックに対応するアドレスを、前述した図26及び図27に示す第3管理情報中の内部アドレスのフィールドに格納することによって、当該内部アドレスと外部アドレスとの間で適切な変換を行うことができる。
更に、前述した第3実施形態を拡張して本実施形態に適用する場合には、ホスト側の制御部22はストレージ装置10が通知するアドレスをそのまま用いるため、前述した図32に示す第4管理情報を変更する必要はない。しかしながら、ストレージ装置10を構成する各不揮発性記憶部12に対する書き込み開始アドレスを管理する必要があるため、図33に示す第5管理情報(書き込み開始アドレスの管理情報)は上記した図40に示すように更新される。
なお、詳細な説明については省略するが、本実施形態に係るストレージ装置10の書き込み処理(動作シーケンス)においては、各実施形態において説明した書き込み処理における書き込み先決定処理(データが書き込まれる管理領域を決定する処理)の後に書き込み先記憶部を決定する処理が実行されればよい。
更に、本実施形態においては、複数の不揮発性記憶部12(不揮発性記憶部A〜D)の各々の記憶領域の全てにまたがるように管理領域が構成(確保)されているものとして説明したが、例えば図41に示すように管理領域201〜208の各々は不揮発性記憶部A〜Dの一部の記憶領域から構成されていてもよい。具体的には、例えば管理領域201は、不揮発性記憶部B〜Dの記憶領域から構成されている。また、例えば管理領域202は、不揮発性記憶部B及びCの記憶領域から構成されている。なお、管理領域203のように、管理領域は1つの不揮発性記憶部の記憶領域のみから構成されていてもよい。
なお、図41に示すように管理領域が不揮発性記憶部A〜Dの一部の記憶領域から構成される場合、当該管理領域を構成しない不揮発性記憶部の記憶領域(当該管理領域において未使用の不揮発性記憶部の記憶領域)については書き込み開始アドレスを管理する必要はない。
上記したように本実施形態においては、特性が異なる複数の不揮発性記憶部12(不揮発性記憶部A〜D)の各々の記憶領域から管理領域が構成されており、書き込み要求に含まれるデータに設定されている有効期間及び複数の不揮発性記憶部12の各々の特性に基づいて、データを書き込む不揮発性記憶部(書き込み先記憶部)を決定する。これによれば、ストレージ装置の劣化を抑制することができるとともに、不揮発性記憶部12の特性を考慮したより効率的な動作を実現することが可能となる。
(第5実施形態)
次に、第5実施形態について説明する。前述した第4実施形態においては、ストレージ装置10が特性の異なる複数の不揮発性記憶部を備える構成であるものとして説明したが、本実施形態においては、前述した第3実施形態を拡張し、特性が異なる複数のストレージ装置を備えるストレージシステムが構築される。
次に、第5実施形態について説明する。前述した第4実施形態においては、ストレージ装置10が特性の異なる複数の不揮発性記憶部を備える構成であるものとして説明したが、本実施形態においては、前述した第3実施形態を拡張し、特性が異なる複数のストレージ装置を備えるストレージシステムが構築される。
図42は、本実施形態に係るストレージシステムの構成を概略的に示すブロック図である。図42においては、前述した図28と同一の部分については同一参照符号を付してその詳しい説明を省略する。ここでは、図28と異なる部分について主に述べる。
図42に示すように、本実施形態に係るストレージシステム20は、ストレージ装置21a及び21bを備える。ストレージ装置21aは、複数の不揮発性記憶部211aを備える。ストレージ装置21bは、複数の不揮発性記憶部211bを備える。ストレージ装置21a及び21bは、それぞれ特性が異なるストレージ装置である。なお、図42においては、ストレージシステム20が2つのストレージ装置21a及び21bを備えている例が示されているが、当該ストレージシステム20が備えるストレージ装置の数は、3以上であっても構わない。
また、ストレージシステム20に備えられる制御部22は、ストレージ決定部22dを含む。
本実施形態においては、ストレージ装置21a(複数の不揮発性記憶部211a)及びストレージ装置21b(複数の不揮発性記憶部211b)の記憶領域が論理的に分割された複数の管理領域が管理され、当該管理領域にデータが書き込まれるが、当該複数の管理領域の各々は、ストレージ装置21aの記憶領域及びストレージ装置21bの記憶領域から構成されるものとする。
この場合、ストレージ決定部22dは、データに設定されている有効期間等に基づいて複数のストレージ装置21a及び21bのうちのデータが書き込まれるストレージ装置を決定する機能を有する
以下、本実施形態に係るストレージシステム20の動作の概要について説明するが、当該ストレージシステム20の動作は原則として前述した第4実施形態において説明した内容に準じる。すなわち、前述した第4実施形態においては1つの管理領域を構成する複数の不揮発性記憶部の中からデータが書き込まれる適切な不揮発性記憶部を決定するのに対し、本実施形態においては、1つの管理領域を構成する複数のストレージ装置21a及び21bのうちデータが書き込まれる適切なストレージ装置を決定するように動作する。
以下、本実施形態に係るストレージシステム20の動作の概要について説明するが、当該ストレージシステム20の動作は原則として前述した第4実施形態において説明した内容に準じる。すなわち、前述した第4実施形態においては1つの管理領域を構成する複数の不揮発性記憶部の中からデータが書き込まれる適切な不揮発性記憶部を決定するのに対し、本実施形態においては、1つの管理領域を構成する複数のストレージ装置21a及び21bのうちデータが書き込まれる適切なストレージ装置を決定するように動作する。
なお、管理領域に書き込まれたデータの管理や書き込み開始アドレスの管理に関しては、当該管理のための情報(図18〜図20に示す第2管理情報及び図33に示す第5管理情報等)に各ストレージ装置21a及び21bを識別するための情報(識別子)を格納するフィールドを追加することによって実現可能である。
また、前述した第4実施形態においてはデータに設定されている有効期間及び複数の不揮発性記憶部の特性等に基づいて1つの不揮発性記憶部が決定されるものとして説明したが、本実施形態においては、当該第4実施形態と同様に、データに設定されている有効期間及びストレージ装置21a及び21bの特性等に基づいて1つのストレージ装置(以下、書き込み先ストレージ装置と表記)が決定されればよい。更に、本実施形態においては、例えば各ストレージ装置21a及び21bとホスト側の制御部22とを接続するネットワーク(実装によってはバス)の状態を考慮して書き込み先ストレージ装置を決定してもよい。具体的には、同一の管理領域をストレージ装置21aの記憶領域及びストレージ装置21bの記憶領域が構成している場合において、領域決定部22bによって当該管理領域が書き込み先として決定された場合、ストレージ決定部22dは、当該ストレージ装置21a及び21bのうちネットワークが混雑していない(つまり、ネットワーク環境が良好な)ストレージ装置を優先的に書き込み先ストレージとして決定するようなアルゴリズムを適用してもよい。
上記したように本実施形態においては、複数のストレージ装置21a及び21bを備えるストレージシステムであっても、前述した各実施形態と同様に各ストレージ装置21a及び21bの劣化を抑制することができるとともに、ストレージ装置21a及び21bの特性を考慮したより効率的な動作を実現することが可能となる。
なお、本実施形態においては、複数のストレージ装置21a及び21bのうちの1つのストレージ装置を書き込み先ストレージ装置として決定してデータを書き込むものとして説明したが、当該決定された書き込み先ストレージ装置に対して前述した第4実施形態を更に適用しても構わない。具体的には、書き込み先として決定された管理領域が書き込み先ストレージ装置に備えられる複数の不揮発性記憶部の各々の記憶領域から構成されている場合、当該複数の不揮発性記憶部の中からデータが書き込まれる不揮発性記憶部を更に決定する構成としても構わない。
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
10…ストレージ装置、11…制御部、11a…領域決定部、11b…アドレス変換部、11c…記憶部決定部、12…不揮発性記憶部、13…揮発性記憶部、14…インタフェース部、20…ストレージシステム、21,21a,21b…ストレージ装置、22…制御部、22a…アプリケーション実行部、22b…領域決定部、22c…データ管理部、22d…ストレージ決定部、23…揮発性記憶部、24…I/Oインタフェース部、101…コントローラ、102…NAND型フラッシュメモリ、103…DRAM、211,211a,211b…不揮発性記憶部。
Claims (12)
- 不揮発性記憶部と、
前記不揮発性記憶部と電気的に接続され、当該不揮発性記憶部を制御する制御部と
を具備し、
前記制御部は、
前記不揮発性記憶部の記憶領域を論理的に分割することによって得られる複数の管理領域を管理し、
有効期間が設定されたデータを含む書き込み要求が受信された場合に、前記複数の管理領域の中から当該有効期間に基づいて1つの第1管理領域を決定し、
前記書き込み要求に含まれるデータを前記決定された第1管理領域に書き込み、
前記第1管理領域に書き込まれたデータを消去する場合、当該データを含む当該第1管理領域に書き込まれている全てのデータを一括消去する
ストレージ装置。 - 前記複数の管理領域には、それぞれ重複しない有効期間が割り当てられており、
前記制御部は、前記書き込み要求に含まれるデータに設定されている有効期間の終了時刻を包含する有効期間が割り当てられている第1管理領域を決定する
請求項1記載のストレージ装置。 - 前記複数の領域は、第1有効期間が割り当てられている第1管理領域及び第1有効期間よりも長い第2有効期間が割り当てられている第2管理領域を含み、
前記第1管理領域に割り当てられている第1有効期間が経過した場合、前記第2管理領域に割り当てられている第2有効期間は、前記第1有効期間に基づいて短縮される
請求項2記載のストレージ装置。 - 前記制御部は、前記データが書き込まれた第1管理領域に割り当てられている有効期間が経過した場合、当該第1管理領域に書き込まれている全てのデータを一括消去する請求項2または3記載のストレージ装置。
- 前記制御部は、前記書き込み要求に含まれるデータを、前記決定された第1管理領域に既に書き込まれているデータの終端から追記するように当該第1管理領域に書き込む請求項1記載のストレージ装置。
- 前記制御部は、
前記決定された第1管理領域の空き容量が不足している場合、前記データの一部を当該第1管理領域の空き容量に書き込み、
前記データの他部を書き込むことが可能なサイズの容量を確保するために前記第1管理領域の先頭に書き込まれている他のデータを消去し、
前記データの他部を、前記第1管理領域の先頭から書き込む
請求項5記載のストレージ装置。 - 前記制御部は、前記決定された第1管理領域の空き容量が不足している場合、前記データを、当該データに設定されている有効期間よりも長い有効期間が割り当てられている第2管理領域に書き込む請求項2記載のストレージ装置。
- 前記制御部は、前記データに設定されている有効期間よりも長い有効期間が割り当てられている第2管理領域のうち、当該第2管理領域に割り当てられている有効期間、当該第2管理領域の空き容量、当該第2管理領域に対する書き込み頻度及び読み込み頻度の少なくとも1つに基づいて前記データが書き込まれる第2管理領域を決定する請求項7記載のストレージ装置。
- 前記制御部は、前記決定された第1管理領域の空き容量が不足している場合、前記有効期間が割り当てられていない第2管理領域に前記データを書き込む請求項2記載のストレージ装置。
- 前記決定された第1管理領域は、特性が異なる複数の不揮発性記憶部の各々の記憶領域から構成されており、
前記制御部は、前記書き込み要求に含まれるデータに設定されている有効期間及び前記複数の不揮発性記憶部の各々の特性に基づいて、当該データを書き込む不揮発性記憶部を決定する
請求項1記載のストレージ装置。 - 不揮発性記憶部を備えるストレージ装置と、
前記ストレージ装置と電気的に接続され、前記不揮発性記憶部を制御する制御部と
を具備し、
前記制御部は、
前記ストレージ装置に備えられる不揮発性記憶部の記憶領域を論理的に分割することによって得られる複数の管理領域を管理し、
有効期間が設定されたデータを含む書き込み要求が受信された場合、前記複数の管理領域の中から当該有効期間に基づいて1つの第1管理領域を決定し、
前記書き込み要求に含まれるデータを前記決定された第1管理領域に書き込み、
前記第1管理領域に書き込まれたデータを消去する場合、当該データを含む当該第1管理領域に書き込まれている全てのデータを一括消去する
ストレージシステム。 - 不揮発性記憶部の記憶領域を論理的に分割することによって得られる複数の管理領域を管理することと、
有効期間が設定されたデータを含む書き込み要求が受信された場合に、前記複数の管理領域の中から当該有効期間に基づいて1つの第1管理領域を決定することと、
前記書き込み要求に含まれるデータを前記決定された第1管理領域に書き込むことと、
前記第1管理領域に書き込まれたデータを消去する場合、当該データを含む当該第1管理領域に書き込まれている全てのデータを一括消去することと
を具備する方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2020037710A JP2021140464A (ja) | 2020-03-05 | 2020-03-05 | ストレージ装置、ストレージシステム及び方法 |
US17/118,996 US11941247B2 (en) | 2020-03-05 | 2020-12-11 | Storage device, storage system, and method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2020037710A JP2021140464A (ja) | 2020-03-05 | 2020-03-05 | ストレージ装置、ストレージシステム及び方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2021140464A true JP2021140464A (ja) | 2021-09-16 |
Family
ID=77554823
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2020037710A Pending JP2021140464A (ja) | 2020-03-05 | 2020-03-05 | ストレージ装置、ストレージシステム及び方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US11941247B2 (ja) |
JP (1) | JP2021140464A (ja) |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8533161B2 (en) * | 2009-10-30 | 2013-09-10 | Hitachi Data Systems Corporation | Fixed content storage within a partitioned content platform, with disposition service |
US8799248B2 (en) * | 2011-04-26 | 2014-08-05 | Brian J. Bulkowski | Real-time transaction scheduling in a distributed database |
US8977803B2 (en) * | 2011-11-21 | 2015-03-10 | Western Digital Technologies, Inc. | Disk drive data caching using a multi-tiered memory |
KR101861545B1 (ko) | 2012-01-02 | 2018-05-29 | 삼성전자주식회사 | 저장 장치의 데이터 관리 방법 |
CN103927128B (zh) | 2013-07-11 | 2017-03-01 | 威盛电子股份有限公司 | 数据储存装置以及快闪存储器控制方法 |
JP2017123110A (ja) | 2016-01-08 | 2017-07-13 | 株式会社東芝 | データ記憶装置、データ記憶方法およびプログラム |
-
2020
- 2020-03-05 JP JP2020037710A patent/JP2021140464A/ja active Pending
- 2020-12-11 US US17/118,996 patent/US11941247B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
US11941247B2 (en) | 2024-03-26 |
US20210278972A1 (en) | 2021-09-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100849221B1 (ko) | 비휘발성 메모리의 관리 방법 및 비휘발성 메모리 기반의장치 | |
JP4844639B2 (ja) | メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法 | |
KR101038167B1 (ko) | 프로세서로부터 메모리로의 액세스를 관리하는 메모리 관리 장치를 포함하는 정보 처리 장치 및 메모리 관리 방법 | |
JP5351046B2 (ja) | フラッシュメモリシステムの高速起動を容易にする方法およびシステム | |
US7882300B2 (en) | Apparatus and method for managing nonvolatile memory | |
US20100125696A1 (en) | Memory Controller For Controlling The Wear In A Non-volatile Memory Device And A Method Of Operation Therefor | |
JP2005242897A (ja) | フラッシュディスク装置 | |
KR20090042035A (ko) | 불휘발성 메모리 장치를 이용한 데이터 저장장치, 메모리시스템, 그리고 컴퓨터 시스템 | |
JP2012203443A (ja) | メモリシステムおよびメモリシステムの制御方法 | |
KR20120030137A (ko) | 영구 가비지 컬렉션을 갖는 메모리 시스템 | |
JP2011145838A (ja) | 記憶装置管理装置および記憶装置の管理方法 | |
KR20020092487A (ko) | 플래시 메모리 관리방법 | |
JP4666081B2 (ja) | メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法 | |
JP5183662B2 (ja) | メモリ制御装置及びメモリ制御方法 | |
JP2008191930A (ja) | 不揮発性半導体記憶装置およびその管理方法 | |
JP2009205689A (ja) | フラッシュディスク装置 | |
JP2021033945A (ja) | メモリシステムおよび制御方法 | |
JP2020123039A (ja) | メモリシステムおよび制御方法 | |
KR101033465B1 (ko) | 플래쉬 메모리 장치 및 및 이를 위한 리드동작 제어 방법 | |
JP2008225576A (ja) | Nand型フラッシュメモリの制御装置 | |
KR101083683B1 (ko) | 플래쉬 메모리 장치 및 및 이를 위한 리드동작 제어 방법 | |
JP2021140464A (ja) | ストレージ装置、ストレージシステム及び方法 | |
KR20150139383A (ko) | 반도체 장치 | |
WO2012104974A1 (ja) | メモリコントローラ | |
JP5520880B2 (ja) | フラッシュメモリ装置 |