JP5864667B2 - ストレージシステムおよびそのデータ制御方法 - Google Patents

ストレージシステムおよびそのデータ制御方法 Download PDF

Info

Publication number
JP5864667B2
JP5864667B2 JP2014095926A JP2014095926A JP5864667B2 JP 5864667 B2 JP5864667 B2 JP 5864667B2 JP 2014095926 A JP2014095926 A JP 2014095926A JP 2014095926 A JP2014095926 A JP 2014095926A JP 5864667 B2 JP5864667 B2 JP 5864667B2
Authority
JP
Japan
Prior art keywords
physical
storage area
controller
block
package
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.)
Expired - Fee Related
Application number
JP2014095926A
Other languages
English (en)
Other versions
JP2014206982A (ja
Inventor
誉史行 登川
誉史行 登川
繁雄 本間
繁雄 本間
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2014095926A priority Critical patent/JP5864667B2/ja
Publication of JP2014206982A publication Critical patent/JP2014206982A/ja
Application granted granted Critical
Publication of JP5864667B2 publication Critical patent/JP5864667B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Techniques For Improving Reliability Of Storages (AREA)
  • Memory System (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本発明は、電気的に書き換え可能な不揮発メモリであるフラッシュメモリを記憶媒体として使用したストレージシステムにおけるデータ制御技術に関する。
フラッシュメモリは、HDD(Hard Disk Drive)等他の記憶媒体と比較し、書き込み回数が増えるに従って著しく劣化するという特性を有する。フラッシュメモリを用いた記憶装置では、一般に、書き込み回数への制限、書き込みデータサイズへの制限、定期的なデータ削除などを行うことにより、フラッシュメモリを使用した場合でも、記憶装置の寿命を可能な限り長くできるよう制御している。例えば、ある種の記憶装置では、物理記憶領域へのデータの上書きを禁止して、更新データの書き込み要求を受けた場合に、要求先の論理記憶領域に新たな物理記憶領域を割り当てて更新データを格納し、更新前の旧データが格納されている物理記憶領域を無効な領域として外部からアクセスできないように制御している。
一方、ストレージシステムには、バックアップ機能の1つとして、過去のある時点のデータを保存し、過去のデータイメージを提供するスナップショット機能がある。
フラッシュメモリを記憶媒体として用いるストレージシステムにおいて、更新データ格納後もシステム内に更新前の旧データが格納されているという上述の制御を利用し、旧データが格納された物理記憶領域を論理記憶領域との対応付けを維持したままスナップショット用のデータとして管理し、当該データと更新データの書き込み要求の発生していない他の論理記憶領域に格納されているデータとを用いて、過去のデータイメージを提供する方法が提案されている(特許文献1)。
特開2008−159013号公報
特許文献1では、ストレージシステムの有する一部の論理記憶領域についてのみスナップショットを取得したい場合でも、スナップショットの取得をストレージシステムの論理記憶領域全体に対して行われてしまうため、実際には管理が不要な記憶領域についてまでスナップショットとして管理しなければならないこと、不要な旧データまで保持し続けなければなれないこと、などの問題があった。また、特許文献1に記載の従来のストレージシステムでは、ストレージシステムの有する全ての記憶領域について、論理記憶領域と物理記憶領域の対応付けの管理、アドレス変換、RAID制御、およびスナップショット管理を含む制御が、1つのコントローラに集中してしまい、コントローラの負荷が膨大になってしまうという、問題がある。
そこで、本発明は、フラッシュメモリを記憶媒体として使用したストレージシステムのスナップショット機能において、ユーザのニーズに応じた柔軟なスナップショットの取得、提供を可能にすることを目的とする。
また、本発明の他の目的は、フラッシュメモリを記憶媒体として使用したストレージシステムにおいて、特定のコントローラに負荷が集中してしまうことを防ぐことを目的とする。
ホスト装置と接続されるストレージシステムは下記の要素、
複数のフラッシュメモリチップと、当該複数のフラッシュメモリチップの記憶領域を制御するパッケージコントローラと、を各々に有する複数のフラッシュパッケージと、前記複数のフラッシュパッケージの有する記憶領域を用いて、前記ホスト装置に第一のLU(Logical Unit)と第二のLUを提供するストレージコントローラとを備える。
前記パッケージコントローラは、前記第一のLUをバックアップ対象、前記第二のLUを非バックアップ対象、として管理しているときに、
前記第一のLUと対応する第一の論理記憶領域に対して更新データの書き込み要求を受信すると、更新前のデータを維持した状態で前記第一の論理記憶領域に割り当てられていた第一の物理記憶領域をバックアップ用記憶領域として管理し、前記第一の論理記憶領域に新たに第二の物理記憶領域を割り当て、当該第二の物理記憶領域に当該更新データを書き込み、
前記第二のLUと対応する第二の論理記憶領域に対して更新データの書き込み要求を受信すると、前記第二の論理記憶領域に割り当てられていた第三の物理記憶領域を無効記憶領域として管理し、前記第二の論理記憶領域に新たに割り当てられた第四の物理記憶領域に当該更新データを書き込み、
バックアップ用記憶領域として管理される前記第一の物理記憶領域を用いて、前記第一のLUのバックアップデータを提供し、
無効記憶領域として管理される前記第三の物理記憶領域に格納された更新前のデータを消去するよう制御する。
本発明によれば、フラッシュメモリを記憶媒体として使用したストレージシステムのスナップショット機能において、ユーザのニーズに応じた柔軟なスナップショットの取得、提供を可能にすることができる。また、フラッシュメモリを記憶媒体として使用したストレージシステムにおいて、特定のコントローラに負荷が集中してしまうことを防ぐことを目的とする。
図1は、本発明の一実施形態におけるスナップショット機能を説明する図である。 図2は、本発明の一実施形態におけるリクラメーション処理の概要を説明する図である。 図3は、本発明の一実施形態におけるリフレッシュ処理の概要を説明する図である。 図4は、本発明の一実施形態に係る情報処理システムの構成を示す図である。 図5は、FMパッケージ120内のFMチップ413を詳細に示した図である。 図6は、不揮発メモリ404が記憶する複数のテーブルを示す図である。 図7は、RAIDグループ構成テーブル610の構成を示す図である。 図8は、LU構成テーブル620の構成を示す図である。 図9は、スナップショット構成テーブル630の構成を示す図である。 図10は、不揮発メモリ414が記憶する複数のテーブルを示す図である。 図11は、スナップショット管理テーブル2410の構成を示す図である。 図12は、論理物理変換テーブル1020の構成を示す図である。 図13は、世代管理エントリ群1030の構成を示す図である。 図14は、論理物理変換テーブル1020と世代管理エントリとの対応関係を示す説明図である。 図15は、物理ページ状態管理テーブル1040の構成を示す図である。 図16は、物理ブロック状態管理テーブル1050の構成を示す図である。 図17は、ストレージコントローラ110でのスナップショット処理を示すフローチャートである。 図18は、FMパッケージ120でのスナップショット処理を示すフローチャートである。 図19は、ストレージコントローラ110でのライト処理を示すフローチャートである。 図20は、FMパッケージ120でのライト処理を示すフローチャートである。 図21は、ストレージコントローラ110でのリード処理を示すフローチャートである。 図22は、FMパッケージ120でのリード処理を示すフローチャートである。 図23は、リクラメーション処理を示すフローチャートである。 図24は、リフレッシュ処理を示すフローチャートである。
以下、本発明の一実施形態を説明する。
なお、以下の説明では、「xxxテーブル」の表現にて各種情報を説明することがあるが、各種情報は、テーブル以外のデータ構造で表現されていてもよい。データ構造に依存しないことを示すために「xxxテーブル」を「xxx情報」と呼ぶことができる。
また、以下の説明では、種々の対象(例えば、論理ユニット、ブロック、ページ)の識別情報の種類として、番号が採用されるが、他種の識別情報が採用されても良い。
また、以下の説明において、後述するストレージコントローラ及びFMコントローラが行う処理の少なくとも一部が、プロセッサ(例えばCPU(Central Processing Unit))がコンピュータプログラムを実行することによって行われる。プロセッサは、CPUそれ自体であっても良いし、プロセッサが行う処理の一部又は全部を行うハードウェア回路を含んでも良い。プログラムは、プログラムソースから各コントローラにインストールされても良い。プログラムソースは、例えば、プログラム配布サーバ又は記憶メディアであっても良い。
図1−3を参照して、本実施形態の概要を以下に説明する。
図1にあるように、ストレージシステム100は、複数のフラッシュメモリパッケージ(以下、FMパッケージという)120と、複数のFMパッケージ120に接続されたストレージコントローラ110とを有する。
FMパッケージ120は、複数のフラッシュメモリチップ(以下、FMチップという)を有する。本実施形態では、FMチップは、NAND型のFMチップであるが、他の型式のFMチップであってもよい。FMチップは、複数の物理ブロックで構成されている。各物理ブロックは、複数の物理ページで構成されている。
複数のFMパッケージ120のうち各二以上のFMパッケージ120により、RAIDグループ140が構成される(RAIDは、Redundant Array of Independent (or Inexpensive) Disksの略である)。RAIDグループ140は、パリティグループと呼ばれることもある。なお、本実施形態では、二以上のFMパッケージ120でRAIDグループ140が構成されているが、必ずしもRAIDグループが構成されなくてもよい。例えば、ストレージシステムが有するFMパッケージの数は、1つでもよい。
ストレージコントローラ110は、RAIDグループ140が提供する記憶空間200を論理的に区切ることで、複数(又は一つ)の論理ユニット(以下、LUという)130を形成する。記憶空間200を構成する複数のLU130のうちの少なくとも一つが、ストレージシステム100の上位装置としてのホスト装置2に提供される。図1では、LU130の例としてLU#1が示されている。以下の説明では、LU番号がn(nは整数)のLU130を「LU#n」と表すことがある。
ストレージコントローラ110は、ホスト装置2からI/Oコマンド(ライトコマンド或いはリードコマンド)を受信する。I/Oコマンドは、I/O先を表す情報として、例えば、LU130の識別情報と、そのLU130における領域を表す論理アドレスを表す情報とを有する。LU130の識別情報は、例えば、LUN(Logical Unit Number)である。論理アドレスは、例えば、LBA(Logical Block Address)である。
ストレージコントローラ110は、LU#1を指定したI/Oコマンドをホスト装置2から受けて、そのI/Oコマンドに応答して、そのI/Oコマンド(ライトコマンド)で指定されているLU#1にライト対象のデータを書き込む、或いは、そのI/Oコマンド(リードコマンド)で指定されているLU#1からリード対象のデータを読み出す。LU#1にライト対象のデータが書き込まれるということは、その書き込み先を表す論理アドレスに対応した一又は複数の物理ページにライト対象のデータが書き込まれるということである。また、LU#1からリード対象のデータが読み出されるということは、その読み出し元を表す論理アドレスに対応した一又は複数の物理ページから、リード対象のデータが読み出されるということである。
また、このストレージシステム100は、バックアップ機能の1つとして、スナップショット機能を有する。スナップショット機能とは、ホスト装置2から認識可能なLU#1のある時点でのフルバックアップイメージを取得する機能である。例えば、スナップショット機能を用いることで、ホスト装置2からの要求された所定の時点でのLU#1のフルバックアップイメージの復元が可能となる。図1に示す例によれば、スナップショット1,2及び3という、LU#1の異なる3つの時点でのフルバックアップイメージが管理されている。ストレージコントローラ110は、LU#1を指定したスナップショットコマンド(以下、SSコマンドという)をホスト装置2から受けて、そのSSコマンドに応答して、そのSSコマンドで指定されている時点(或いは、そのSSコマンドを受けた時点)でのLU#1のスナップショットを取得する。スナップショットの取得とは、その取得時点のLUを構成する各領域(各論理アドレスが表す領域)に格納されているデータを、後に読み出しできるようにすることである。詳細に説明すると、スナップショットの取得時点以降に更新が行われた各領域の更新前のデータは、差分データとして消去されることなく管理されている。そして、その差分データは、FMパッケージ120内に格納されており、どの時点の差分データであるかという付加情報も別途(若しくは一緒に)世代情報として管理されている。このため、どの差分データがどのスナップショット(フルバックアップイメージ)に含まれているデータかがわかり、スナップショット取得時点のスナップショットを復元することができる。
さて、本実施形態では、FMパッケージ120の構成要素として、前述したように、NAND型のFMチップが採用されている。NAND型のFMチップは、下記の特徴を有する。
(1)NAND型FMチップは、読み書きの単位がページであり、消去単位がブロックである。ライトコマンドがあった場合、ライト対象のデータは、1又は複数の物理ページに書き込まれる。また、リードコマンドがあった場合、1又は複数の物理ページに書き込まれたリード対象データが読み出される。なお、この場合、ライト(又はリード)対象のデータは、1(又は複数)の物理ページのすべてに書き込まれるに限られない。ライト(又はリード)対象のデータは、1(又は複数)の物理ページの一部分に書き込まれる場合もある。また、データの消去は、複数のページで構成されたブロック毎に行われる。
(2)NAND型FMチップは、追記型の記憶媒体である。NAND型FMチップのページは、上書きできない。データが更新される際には、ライト対象のデータは空きページに書き込まれ、更新前のデータが格納されたページは、無効なページとなる。このため、データ領域を有効活用するために、リクラメーション処理が必要となる。
(3)NAND型FMチップは、ブロックの消去回数に制限がある。
(4)NAND型FMチップは、データリテンションによりリードエラーが発生しやすい。なお、ここでは、データリテンションとは、FMチップに格納されているデータは一定期間しか保持できないフラッシュメモリの特性のことをいう。
このため、ストレージシステム100においては、リクラメーション処理、リフレッシュ処理などのFM特有の処理、及び、ウェアレベリング処理を行うことが望ましい。各処理及びウェアレベリング処理を以下に説明する。以下の説明では、LUに格納されているデータを有効データといい、LUに格納されていないデータを無効データ(有効データが更新され、無効となったデータ)という場合がある。また、スナップショット取得時点における差分データをスナップショットデータ(以下、SSデータという)という場合がある。さらに、FMチップ内において、有効データが格納されているページを有効ページ、無効データが格納されているページを無効ページ、SSデータが格納されているページをスナップショットページ(以下、SSページという)という場合がある。
リクラメーション処理は、空きページのみで構成されたブロック(以下、空きブロックという)を作り出す処理である。具体的には、複数の有効ページが複数(又は一つ)の物理ブロックに分散して存在する場合に、複数の有効ページ内の有効データを1個の物理ブロックに集約し、無効ページのみで構成されたブロック(以下、無効ブロックという)を作り、無効ブロックを消去する処理である。リクラメーション処理の対象となるブロック(以下、RC対象ブロック)は、例えば、ブロックに割り当てられているページのうち、無効ページ数が閾値以上になったブロックである。
リフレッシュ処理は、データリテンションによるリードエラーを防止するため、所定時間以上経過したブロックのデータを別の物理ブロックに移動する処理である。本実施形態では、リフレッシュ処理の対象となるブロック(以下、RF対象ブロック)は、例えば、最終のライト時刻からの経過時間が閾値以上になったブロックである。しかし、リフレッシュ処理の対象となるブロックは、最終ライト時刻からの経過時間が閾値以上となるブロックに限られず、例えば、最初のライト時刻からの経過時間が閾値以上となるブロックである等、所定の動作からの経過時間が閾値以上となるブロックであればよいものとする。
ウェアレベリング処理は、FMチップ内のブロック毎の消去回数(又は書込み回数、以下同様)を均一化させるための処理である。具体的には、ウェアレベリング処理では、ブロック毎の消去回数を均一化すべく、フラッシュメモリ内のあるページにライトする場合に、例えば、消去回数が閾値未満のブロックのページを割り当てる。
本実施形態にあっては、上述した処理(リクラメーション処理、リフレッシュ処理及びウェアレベリング処理)は、FMパッケージ毎に、後述する各FMパッケージ内のコントローラ(以下、FMコントローラという)によって行われる。また、以下に説明するSSデータの退避処理についても、同様に、各FMコントローラによって行われる。以下に、概要を説明する。
図2は、本実施形態におけるリクラメーション処理実行中のSSデータの退避処理の概要を説明する図である。なお、以下の説明において、「ブロックを消去する」とは、具体的には、ブロックに対して消去処理を行うことで空きブロックを生成することを意味する。
FMコントローラが行う処理を以下に示す。
FMコントローラは、リクラメーション処理を行う。リクラメーション処理を行う前処理として、RC対象ブロック511RC内にSSページがある場合には、FMコントローラはSSデータの退避処理を行う。具体的には、FMコントローラは、FMパッケージ内のブロック群511Gの中から、RC対象ブロック511RCとして、無効ページ数が閾値以上のブロックを抽出する。FMコントローラは、抽出したRC対象ブロック511RC内にSSページが存在するか否かを判定する。SSページが存在する場合には、FMコントローラは、以下のSSデータ退避処理を行う。
(A)FMコントローラは、FMパッケージ内のブロック群511Gの中から、消去回数が閾値以上のブロック(以下、この説明では第1コピー対象ブロックという)511Caを抽出する。
(B)FMコントローラは、RC対象ブロック511RCにおける1以上のSSページの各々について、下記の処理(b1)及び(b2)を行う。
(b1)FMコントローラは、SSページ内のSSデータを第1コピー対象ブロック内の空きページにコピーする。
(b2)FMコントローラは、コピー元のSSページを無効ページとし、コピー先の空きページを、SSページとする。
SSデータ退避処理で、第1コピー対象ブロックにSSページを生成することによって、消去回数が閾値以上のブロック(第1コピー対象ブロック)については、SSページには更新ライトが実施されないことが自明なので、消去回数を維持することが可能となる。
FMコントローラは、SSページの無いRC対象ブロック(具体的には、SSデータ退避処理が行われることによりSSページが無くなったRC対象ブロック及び/又は、SSデータ退避処理を行わなくてもSSページが存在していないRC対象ブロック)について、リクラメーション処理を行う。リクラメーション処理を以下に説明する。
(F)FMコントローラは、FMパッケージ内のブロック群511Gの中から、消去回数が閾値未満のブロック(以下、この説明では第2コピー対象ブロックという)511Cbを抽出する。
(G)FMコントローラは、RC対象ブロック511RCに1以上の有効ページが存在するか否かを判定する。
(H)上記(G)の判定の結果が肯定的の場合、FMコントローラは、各有効ページについて、下記の(h1)及び(h2)を行う。
(h1)FMコントローラは、有効ページの有効データを第2コピー対象ブロックの空きページにコピーする。
(h2)FMコントローラは、コピー元の有効ページを無効ページとし、コピー先の空きページを有効ページとする。
(I)FMコントローラは、すべてのページが無効ページとなったRC対象ブロックを消去することで、空きブロックが生成される。
リクラメーション処理で第2コピー対象ブロックに有効ページを増やすことによって、消去回数が閾値未満のブロックを消去する確率を高めることができる。
図3は、本実施形態におけるリフレッシュ処理実行中のSSデータの退避処理の概要を説明する図である。なお、以下の説明において、「ブロックを消去する」とは、具体的には、ブロックに対して消去処理を行うことで空きブロックを生成することを意味する。
FMコントローラが行う処理を以下に示す。
FMコントローラは、リフレッシュ処理を行う。リフレッシュ処理を行う前処理として、RF対象ブロック511RF内にSSページがある場合には、FMコントローラはSSデータの退避処理を行う。具体的には、FMコントローラは、FMパッケージ内のブロック群511Gの中から、RF対象ブロック511RFとして、最終ライト時刻からの経過時間(最終ライト時刻から現在時刻までの差分時間)が閾値以上のブロックを抽出する。FMコントローラは、抽出したRF対象ブロック511RF内にSSページが存在するか否かを判定する。SSページが存在する場合には、FMコントローラは、以下のSSデータ退避処理を行う。
(J)FMコントローラは、FMパッケージ内のブロック群511Gの中から、消去回数が閾値以上のブロック(以下、この説明では、第3コピー対象ブロックという)511Cdを抽出する。
(K)FMコントローラは、RF対象ブロック511RFにおける1以上のSSページの各々について、下記の処理(b1)及び(b2)を行う。
(k1)FMコントローラは、SSページ内のSSデータを第3コピー対象ブロック511Cd内の空きページにコピーする。
(k2)FMコントローラは、コピー元のSSページを無効ページとし、コピー先の空きページを、SSページとする。
SSデータ退避処理で、第3コピー対象ブロック511CdにSSページを生成することによって、消去回数が閾値以上のブロック(第3コピー対象ブロック)については、SSページには更新ライトが実施されないことが自明なので、消去回数を維持することが可能となる。
FMコントローラは、SSページの無いRF対象ブロック(具体的には、SSデータ退避処理が行われることによりSSページが無くなったRF対象ブロック及び/又は、SSデータ退避処理を行わなくてもSSページが存在していないRF対象ブロック)について、リフレッシュ処理を行う。リフレッシュ処理を以下に説明する。
(L)FMコントローラは、FMパッケージ内のブロック群511Gの中から、消去回数が閾値未満のブロック(以下、第4コピー対象ブロックという)511Ceを抽出する。
(M)FMコントローラは、RF対象ブロック511RFに1以上の有効ページが存在するか否かを判定する。
(N)上記(M)の判定の結果が肯定的の場合、FMコントローラは、各有効ページについて、下記の(n1)及び(n2)を行う。
(n1)FMコントローラは、有効ページの有効データを第4コピー対象ブロックの空きページにコピーする。
(n2)FMコントローラは、コピー元の有効ページを無効ページとし、コピー先の空きページを有効ページとする。
(O)FMコントローラは、すべてのページが無効ページとなったRF対象ブロックを消去することで、空きブロックが生成される。
リフレッシュ処理で第4コピー対象ブロックに有効ページを増やすことによって、消去回数が閾値未満のブロックを消去する確率を高めることができる。
以下、図面を参照して、本実施形態を詳細に説明する。
まず、図4及び図5を参照して、本実施形態に係るストレージシステムの構成を説明する。図4は、ストレージシステム100の構成図である。図5は、FMパッケージ120内のFMチップ413を詳細に示した図である。
ストレージシステム100は、複数のFMパッケージ120と、ホスト装置2及び複数のFMパッケージ120に接続されたストレージコントローラ110とを有する。ストレージコントローラ110は、ホスト装置2からのI/Oコマンドに従い複数のFMパッケージ120のうちの1以上のFMパッケージ120に対してデータのI/Oを行う。
ストレージコントローラ110は、ホストインターフェース(以下、ホストI/F))401と、RAIDコントローラ402と、不揮発メモリ404と、ディスクインターフェース(以下、ディスクI/Fという)403とを有する。ホストI/F401が、ホスト装置2に接続される。ディスクI/F403が、各FMパッケージ120に接続される。RAIDコントローラ402が、ホストI/F401、ディスクI/F403及び不揮発メモリ404に接続される。
不揮発メモリ404は、データ及びプログラムを記憶する。不揮発メモリ404に記憶されるデータについては後述する。
RAIDコントローラ402は、不揮発メモリ404内のプログラムを実行するためのマイクロプロセッサ(図示なし)を有する。RAIDコントローラ402が、ホスト装置2からホストI/F401を通じてI/Oコマンドを受信し、そのI/Oコマンドに従い、ディスクI/F403を介して、一以上のFMパッケージ120に対して、データのI/Oコマンドを発行する。
各FMパッケージ120は、フラッシュメモリコントローラ(以下、FMコントローラという)412と、これに接続された複数のNAND型FMチップ413と、不揮発メモリ414と、ディスクI/F411とを有する。
不揮発メモリ414は、データ及びプログラムを記憶する。不揮発メモリ414に記憶されるデータについては後述する。
FMコントローラ412は、ストレージコントローラ110からのI/Oコマンドに従い、複数のFMチップ413のうちの1以上のFMチップ413に対してデータのI/Oを行う。FMコントローラ412は、そのFMコントローラ412が含まれるFMパッケージ120の不揮発メモリ414内部のプログラムを実行するためのマイクロプロセッサ(図示なし)を有する。
FMパッケージ120内の各FMチップ413は、そのFMパッケージ120内のFMコントローラ412に接続されている。各FMチップ413は、複数の物理ブロック511で構成されている。各物理ブロック511は、複数個の物理ページ512で構成されている(図5参照)。
前述したように、ストレージシステム100内の二以上のFMパッケージ120によりRAIDグループが構成される。1つのRAIDグループに基づき、論理的に区切られた複数(又は1つ)のLUが形成される。図5では、RAIDグループ#1に基づいて、LU#1及びLU#2が形成される。LUを構成する各領域には、論理アドレスが割り当てられる。
以下の説明において、LUを構成する領域毎に、ホスト装置2側から見た第1論理アドレスと、ストレージコントローラ110及びFMパッケージ120側から見た第2論理アドレスとがある。
図6は、ストレージコントローラ110が有する不揮発メモリ404が記憶する複数のテーブルを示す図である。
不揮発メモリ404は、複数のテーブルとして、例えば、不揮発メモリ404は、RAIDグループ構成テーブル610、LU構成テーブル620、及びスナップショット構成テーブル630を記憶する。これらのテーブルのうちの少なくとも1つは、ストレージシステム100の稼働後に作成されて良い。不揮発メモリ404内のテーブルを以下に説明する。
図7は、RAIDグループ構成テーブル610の構成を示す。
RAIDグループ構成テーブル610は、各RAIDグループ140を構成するFMパッケージ120を示したテーブルである。具体的には、テーブル610は、例えば、RAIDグループ毎に、以下の情報、
(*)RAIDグループの番号であるRAIDグループ番号701、
(*)RAIDグループに所属するFMパッケージの番号であるFMパッケージ番号702、
を有する。同図の例によれば、RAIDグループ#1にはFMパッケージ#0、1、2、3、4の5つのFMパッケージ120が所属していることがわかる。
図8は、LU構成テーブル620の構成を示す。
LU構成テーブル620は、各LUの構成を示したテーブルである。具体的には、テーブル620は、例えば、LU部分毎に、下記の情報、
(*)LU部分を含んだLUの番号であるLU番号801、
(*)LU部分の基になっているRAIDグループの番号であるRAIDグループ番号802、
(*)LU部分に割り当てられている第2論理アドレスの範囲である論理アドレス範囲803、
(*)LU部分の基になっているFMパッケージの番号であるFMパッケージ番号804、
を有する。同図の例によれば、LU#0の第1部分(LU#0の先頭を含んだ部分)は、RAIDグループ#0内のFMパッケージ#0が基になっており、この第1部分に第2論理アドレスの範囲として0X0000〜0X00FFが割り当てられていることがわかる。また、LU#0の第2部分(LU#0の第1部分の次の部分)は、RAIDグループ#0内のFMパッケージ#1が基になっており、この第2部分に第2論理アドレスの範囲として0X0100〜0X01FFが割り当てられていることがわかる。従って、同図の例によれば、LU#0の第1部分がI/O先である場合には、RAIDグループ#0におけるFMパッケージ#0に対してのみI/Oが行われ、LU#0の第2部分がI/O先である場合には、RAIDグループ#0におけるFMパッケージ#1に対してのみI/Oが行われる。つまり、本実施形態において、RAIDグループ#0では、データが、RAIDグループ#0を構成する5個のFMパッケージ#0〜#4に分散して書かれるわけではない。
図9は、スナップショット構成テーブル630の構成を示す。
スナップショット構成テーブル630は、各LUのスナップショットに関する情報を示したテーブルである。具体的には、テーブル630は、例えば、LU毎に、下記の情報、
(*)LUの番号であるLU番号901、
(*)LUのスナップショットを取得する(ON)か否か(OFF)を表すスナップショットフラグ902、
(*)LUについて取得されたスナップショットの数を表すスナップショット取得値903、
を有する。同図の例によれば、LU#0については、スナップショットフラグ902が“ON”のためスナップショットが取得されるようになっており、且つ、3つのスナップショットが取得済みであることがわかる。また、LU#1については、スナップショットフラグ902が“OFF”のためスナップショットが取得されないようになっており、且つ、取得済みのスナップショットの数がゼロであることがわかる。
図10は、各FMパッケージ120が有する不揮発メモリ414が記憶する複数のテーブルを示す図である。
不揮発メモリ414は、複数のテーブルとして、例えば、スナップショット管理テーブル1010、論理物理変換テーブル1020、世代管理エントリ群1030、物理ページ状態管理テーブル1040、及び物理ブロック状態管理テーブル1050を記憶する。これらのテーブルのうちの少なくとも1つは、ストレージシステム1の稼働後に作成されて良い。不揮発メモリ414内のテーブルを以下に説明する。
図11は、スナップショット管理テーブル1010の構成を示す。
スナップショット管理テーブル1010は、FMパッケージ120に提供されるスナップショットに関する情報を示したテーブルである。具体的には、テーブル1010は、例えば、LU毎に、下記の情報、
(*)LUの番号であるLU番号1101、
(*)LUの第2論理アドレスの範囲を表す論理アドレス1102、
(*)LUのスナップショットを取得する(ON)か否か(OFF)を表すスナップショットフラグ1103、
(*)LUについて取得されたスナップショットの数を表すスナップショット取得値1104、
を有する。同図の例によれば、LU#1については、第2論理アドレスが“0X0000〜0X04FF”の範囲であって、スナップショットフラグが“ON” のためスナップショットが取得されるようになっており、且つ、3つのスナップショットが取得済みであることがわかる。
図12は、論理物理変換テーブル1020の構成を示す。
論理物理変換テーブル1020は、論理ページと物理ページの対応関係を示したテーブルである。具体的には、テーブル1020は、例えば、論理ページ毎に、下記の情報、
(*)論理ページの番号である論理ページ番号1201、
(*)論理ページに対応づけられている物理ページの番号である物理ページ番号1202、
を有する。同図の例によれば、論理ページ#0には、物理ページ#500が対応づけられていることがわかる。なお、図示はしないが、論理ページは第2論理アドレスに対応づけられている。
図13は、世代管理エントリ群1030の構成を示す。
世代管理エントリ群1030は、スナップショットの世代を示した1以上のエントリ(以下、世代管理エントリ)の集合である。各世代管理エントリ群は、例えば、スナップショットの世代を表す番号である世代番号1301と、その世代のスナップショットを構成するSSデータを格納している物理ページの番号である物理ページ番号1302とを有する。
図14に示すように、世代管理エントリは、論理物理変換テーブル1020を構成するエントリ(以下、論理物理エントリ)にキュー形式で関連付けられる。論理ページに格納されるSSデータの世代が増える都度に、その論理ページに対応する論理物理エントリに関連付けられる世代管理エントリの数は増える。例えば、図14において、論理ページ#0に対応した論理物理エントリに、世代#1に対応した世代管理エントリが関連付けられているとする。この場合に、論理ページ#0に格納された、世代#2のSSデータが、物理ページ#340に格納されたとする。この場合、論理ページ#0に対応した論理物理エントリに、世代#2に対応した世代管理エントリ(世代番号1301「世代2」及び物理ページ番号1302「340」を含んだエントリ)が関連付けられ、その世代管理エントリに、既存の世代管理エントリ(世代番号1301「世代1」及び物理ページ番号1302「0」を含んだエントリ)が関連付けられる。
図15は、物理ページ状態管理テーブル1040の構成を示す。
物理ページ状態管理テーブル1040は、物理ページの状態を示したテーブルである。具体的には、テーブル1040は、例えば、物理ページ毎に、下記の情報、
(*)物理ページの番号を表す物理ページ番号1501、
(*)物理ページの状態を表す物理ページ状態1502、
を有する。同図の例によれば、物理ページ#1は有効ページであり、物理ページ#2はSSページであり、物理ページ#3は空きページであり、物理ページ#4は無効ページであることがわかる。なお、空きページとは、データが格納されていない物理ページである。
図16は、物理ブロック状態管理テーブル1050の構成を示す。
物理ブロック状態管理テーブル1050は、物理ブロックの状態を示したテーブルである。具体的には、テーブル1050は、例えば、物理ブロック毎に、下記の情報
(*)物理ブロックの番号である物理ブロック番号1601、
(*)物理ブロックを消去した回数を表す消去回数1602、
(*)物理ブロック内の物理ページに最後にデータが格納された時刻を表す最終ライト時刻1603、
(*)物理ブロックが有する無効ページの数を表す無効ページ数1604、
(*)物理ブロックが有する先頭の物理ページの番号から末端の物理ページの番号までの物理ページ番号の一覧を表す物理ページリスト1605、
を有する。同図の例によれば、物理ブロック#0は、現在まで1000回消去されており、その物理ブロック内のページに最後にデータが格納された時刻は「2010/10/10/15:34:26」であり、無効ページが998個あることがわかる。また、物理ブロック#0は、0〜1000番の物理ページで構成されていることがわかる。
次に、本実施形態に係るストレージシステム100で行われる各種処理を説明する。
図17は、ストレージコントローラ110でのスナップショット処理を示す。以下の説明では、スナップショットを「SS」と省略することがある。
ストレージコントローラ110は、ホスト装置2からSSコマンドを受信する(S1701)。
SSコマンドとして、複数種類のSSコマンドがある。複数の種類のSSコマンドは、例えば、SS取得コマンド(SSの取得のコマンド)と、SS削除コマンド(SSの削除のコマンド)と、SS読出しコマンド(SSからのデータの読み出しのコマンド)とがある。複数種類のSSコマンドは、SS書込みコマンド(SSへのデータの書き込みのコマンド)を含んでも良い。
SSコマンドでは、少なくとも、LUが指定されている。具体的には、例えば、SS取得コマンド、SS削除コマンド及びSS読出しコマンドは、いずれも、SSの元となるLUの番号を含む。SS読出しコマンドは、更に、SSの世代の番号と、読出し対象のデータが格納されている領域に対応した第1論理アドレスとを含む。図17の説明では、SSコマンドで指定されているLUを「対象LU」と言う。
ストレージコントローラ110は、SSコマンドを基に、PKG−SSコマンドの送信先とするFMパッケージ(PKG)を特定する(S1702)。具体的には、例えば、ストレージコントローラ110は、LU構成テーブル620から、対象LUに対応するFMパッケージを特定する。もし、SSコマンドが、第1論理アドレスを有している場合、ストレージコントローラ110は、対象LUの番号を基に、第1論理アドレスに対応する第2論理アドレスを特定し、そのLU番号とその第2論理アドレスに対応するFMパッケージを、LU構成テーブル620から特定する。特定されたFMパッケージが、PKG−SSコマンドの送信先である。PKG−SSコマンドは、FMパッケージに送信されるSSコマンドである。
ストレージコントローラ110は、SSコマンドの種別を判定する(S1703)。SSコマンドの種別がSS削除であった場合には、ストレージコントローラ110は、S1704及びS1705の処理を行う。SSコマンドの種別がSS取得であった場合には、ストレージコントローラ110は、S1707及びS1708の処理を行う。SSコマンドの種別がSS読出しであった場合には、ストレージコントローラ110は、S1709の処理を行う。
SSコマンドの種別がSS削除の場合を以下に説明する。
S1703において、SSコマンドの種別がSS削除であると判定された場合、ストレージコントローラ110は、対象LUについて、スナップショット取得の解除を行う(S1704)。具体的には、ストレージコントローラ110は、SSコマンドが有するLU番号に対応した、スナップショット構成テーブル630におけるスナップショットフラグ902を、“OFF”に変更する。
次に、ストレージコントローラ110は、対象LUについての全てのスナップショットを破棄する(S1705)。具体的には、ストレージコントローラ110は、SSコマンドが有するLU番号に対応する、スナップショット構成テーブル630におけるスナップショット取得値902を“0”に変更する。続いて、S1706を行う。
SSコマンドの種別がSS取得の場合を以下に説明する。
S1703において、SSコマンドの種別がSS取得であると判定された場合、ストレージコントローラ110は、対象LUについてスナップショット取得を更新する(S1707)。具体的には、ストレージコントローラ110は、対象LUに対応する、スナップショット構成テーブル630のスナップショットフラグ902を“ON”にする。
次に、ストレージコントローラ110は、対象LUに対応する、スナップショット構成テーブル630におけるスナップショット取得値902を1増やす(S1708)。つまり、SS取得コマンドを受信する都度に、対象LUのスナップショットの数が1増える。続いてS1706を行う。
SSコマンドの種別がSS読出しの場合を以下に説明する。
S1703において、SSコマンドの種別がSS読出しであると判定された場合、ストレージコントローラ110は、SSコマンドに設定されている世代番号を取得する(S1708)。続いて、S1706を行う。
S1706の処理を説明する。ストレージコントローラ110は、SSコマンドに基づくPKG−SSコマンドを生成し、そのPKG−SSコマンドを、S1502で特定されたFMパッケージ120に送信する。PKG−SSコマンドの種別として、例えば、SSコマンドと同様に、SS削除、SS取得及びSS読出しがある。
発行するPKG−SSコマンドに含まれる情報は、S1703で判定されたSSコマンド種別によって異なる。SSコマンド種別がSS削除及びSS取得の場合は、PKG−SSコマンドには、LU番号が含まれる。SSコマンド種別がSS読出しの場合は、PKG−SSコマンドには、更に、第2論理アドレス及び世代番号が含まれる。
図18は、FMパッケージ120でのスナップショット処理を示す。
FMパッケージ120は、ストレージコントローラ110からPKG−SSコマンドを受信する(S1801)。図18の説明では、PKG−SSコマンドで指定されているLUを「対象LU」と言う。図18での対象LUは、図17での対象LUと同じである。
FMコントローラ412は、受信したPKG−SSコマンドの種別を判定する(S1802)。具体的には、FMコントローラ412は、PKG−SSコマンドの種別が、SS削除、SS取得、SS読出しのいずれかであるか判定する。
判定の結果、SSコマンドの種別がSS削除であった場合には、FMコントローラ412は、S1803〜S1806の処理を行う。SSコマンドの種別がSS取得であった場合には、FMコントローラ412は、S1807〜S1809又はS1807及びS1809の処理を行う。SSコマンドの種別がSS読出しであった場合には、FMコントローラ412は、S1811〜S1814の処理、又はS1811〜S1813、S1815の処理を行う。
PKG−SSコマンドの種別がSS削除の場合を以下に説明する。
S1802において、SSコマンドの種別がSS削除であると判定された場合、FMコントローラ412は、対象LUについて、スナップショット取得の解除を行う(S1803)。具体的には、FMコントローラ412は、対象LUに対応する、スナップショット管理テーブル1010のスナップショットフラグ1103を、“OFF”に変更する。
次に、FMコントローラ412は、対象LUについての全てのスナップショットを破棄する(S1804)。具体的には、FMコントローラ412は、PKG−SSコマンドが有するLU番号に対応する、スナップショット管理テーブル1010におけるスナップショット取得値1104を“0”に変更する。
さらに、FMコントローラ412は、対象LUに関連付けられている全てのSSデータを破棄する(S1805)。具体的には、FMコントローラ412は、論理物理変換テーブル1020における、対象LUに対応する全ての論理物理エントリを特定し、特定した複数の論理物理エントリから、全ての世代管理エントリの関連付けを破棄する。また、FMコントローラ412は、破棄された世代管理エントリ毎に、その世代管理エントリに登録されている物理ページ番号を特定し、且つ、特定した物理ページ番号を有するエントリ(物理ページ状態管理テーブル1040におけるエントリ)内の物理ページ状態1502を「SS」から「無効」に変更する(S1806)。
PKG−SSコマンドの種別がSS取得の場合を以下に説明する。
S1802において、SSコマンドの種別がSS取得であると判定された場合、FMコントローラ412は、スナップショットフラグがONであるか否かの判定をさらに行う(S1807)。
判定の結果、スナップショットフラグがONであった場合には、FMコントローラ412は、スナップショットフラグを立てる処理を行う(S1808)。具体的には、FMコントローラ412は、対象LUに対応する、スナップショット管理テーブル1010におけるスナップショットフラグ902を“ON”に変更する。
次に、FMコントローラ412は、対象LUに対応する、スナップショット管理テーブル1010におけるスナップショット取得値1104を1インクリメントする(S1809)。つまり、PKG−SS取得コマンドを受信する都度に、対象LUのスナップショットの数が1増える。
PKG−SSコマンドの種別がSS読出しの場合を以下に説明する。
S1802において、PKG−SSコマンドの種別がSS読出しであると判定された場合、FMコントローラ412は、PKG−SSコマンドから世代番号を取得する(S1811)
FMコントローラ412は、PKG−SSコマンドから第2論理アドレスを取得し、その第2論理アドレスに基づいて論理ページ番号を算出し、その論理ページ番号に対応する物理ページを、論理物理変換テーブル1020から特定する(S1812)。
FMコントローラ412は、S1812で特定した物理ページに対応する論理物理エントリに、S1811で特定した世代番号を含んだ世代管理エントリがあるか否かを判定する(S1813)。
S1813において、世代管理エントリが無い場合には、FMコントローラ412は、S1812で特定した物理ページからデータを読み出す(S1814)。
S1813において、世代管理エントリが有る場合には、FMコントローラ412は、その世代管理エントリが有する物理ページ番号に対応した物理ページからデータを読み出す(S1815)。
FMコントローラ412は、S1814又はS1815で読み出されたデータを、ストレージコントローラ110に送信する。ストレージコントローラ110は、そのデータを、ホスト装置2に送信する。これにより、ホスト装置2は、SSコマンドで指定した世代のスナップショットにおける、そのSSコマンドで指定した第1論理アドレスに対応するデータを、取得することができる。
図19は、ストレージコントローラ110でのライト処理を示す。
ストレージコントローラ110は、ホスト装置2からライトコマンド及びライト対象データを受信する(S1901)。受信したライトコマンドには、ライト先を表す情報、例えば、LU番号及び第1論理アドレスを含んだ情報が含まれている。
ストレージコントローラ110は、ライトコマンドから、ライト先のFMパッケージを特定する(S1902)。具体的には、ストレージコントローラ110は、ライトコマンドが有するLU番号及び第1論理アドレスから第2論理アドレスを算出し、LU番号及びその第2論理アドレスに対応するFMパッケージをLU構成テーブル620から特定する。そのFMパッケージがライト先FMパッケージである。
S1902で特定したライト先FMパッケージに対し、ストレージコントローラ110は、ライトコマンド及びライト対象データを発行する(以下、このライトコマンドをPKG−WRコマンドという)(S1903)。PKG−WRコマンドには、例えば、LU番号及び第2論理アドレスが含まれる。LU番号は、ライトコマンドが有するLU番号と同じで良い。
図20は、FMパッケージ120でのライト処理を示す。
FMパッケージ120は、ストレージコントローラ110からPKG−WRコマンドを受信する(S2001)。
FMコントローラ412は、受信したPKG−WRコマンドから、ライト先の物理ページを特定する(S2002)。具体的には、FMコントローラ412は、PKG−WRコマンドに含まれる、LU番号及び第2論理アドレスから論理ページ番号を算出する。そして、FMコントローラ412は、その論理ページ番号に対応する物理ページ番号を論理物理変換テーブル1020から特定する。対象論理ページ番号に物理ページが対応していない場合は、物理ページ番号に代えてその旨を示す情報を取得しておいてもよい。
FMコントローラ412は、消去回数の少ない物理ブロックを選択する(S2003)。例えば、FMコントローラ412は、物理ブロック状態管理テーブル150に基づき、消去回数が最も少ない物理ブロックを選択する。また、例えば、FMコントローラ412は、消去回数が所定の値以下の物理ブロックを任意に選択してもよい。選択された物理ブロックを、以下、選択ブロックという。
FMコントローラ412は、選択ブロック内の複数の物理ページから、空きの物理ページを選択する(S2004)。具体的には、FMコントローラ412は、まず、物理ブロック状態管理テーブル150に基づき、選択ブロック内に存在する物理ページの物理ページ番号を取得する。そして、FMコントローラ412は、物理ページ状態管理テーブル140に基づき、それらの物理ページ番号のうち、物理ページ状態1502が「空き」の物理ページ番号を選択する。選択された物理ページを、以下、選択ページという。
FMコントローラ412は、選択ページにライト対象データを書き込む(S2005)。
FMコントローラ412は、最終WR時刻を更新する(S2006)。具体的には、FMコントローラ412は、内蔵タイマー(図示なし)に基づき、S2005において選択ページにライト対象データが書き込まれた時刻を取得する。そして、FMコントローラ412は、取得した時間を物理ブロック状態管理テーブル1050の、選択ブロック(物理ブロック1601)に対する最終WR時刻の欄1603に書き込む。
FMコントローラ412は、選択ページに対応する、物理ページ状態管理テーブル1040における物理ページ状態1502を「有効」に変更する(S2007)。
FMコントローラ412は、論理物理変換テーブル1020の物理ページ番号を更新する(S2008)。具体的には、FMコントローラ412は、S2002で算出された論理ページ番号に対応する、論理物理変換テーブル1020における物理ページ番号1202を、選択ページの物理ページ番号に変更する。以下、図20の説明において、選択ページの物理ページ番号に変更される前の物理ページ番号を「旧物理ページ番号」と言う。
FMコントローラ412は、ライト先LUに対応する、スナップショット管理テーブル1010におけるスナップショットフラグ1103が“ON”であるか否かの判定を行う(S2009)。スナップショットフラグ1103が“OFF”であった場合は、S2010に進む。一方、スナップショットフラグ1103が“ON”であった場合は、S2012に進む。
スナップショットフラグ1103が“OFF”であった場合を説明する。FMコントローラ412は、スナップショット管理テーブル1010において、対象LU番号1101に対応するスナップショットフラグ1103が“OFF”であった場合には、旧物理ページ番号に対応する、物理ページ状態管理テーブル1040における物理ページ状態1502を「無効」に変更する(S2010)。
次に、FMコントローラ412は、選択ブロックに対応する、物理ブロック状態管理テーブル1050における無効ページ数1604をインクリメントする(S2011)。無効ページ数1604は、S2010において、「無効」を設定したページ数分インクリメントされる。。
スナップショットフラグ1103が“ON”であった場合を説明する。FMコントローラ412は、ライト先LUに対応する、スナップショット管理テーブル1010におけるスナップショットフラグ1103が“ON”であった場合には、ライト先LUについて最新世代のSSデータが存在しているか否かを判定する(S2012)。最新世代のSSデータが存在しない場合とは、S2002で算出された論理ページ番号を含んだ論理物理エントリに、最新世代の番号を含んだ世代管理エントリが関連付けられていない場合である。一方、最新世代のSSデータが存在する場合とは、S2002で算出された論理ページ番号を含んだ論理物理エントリに、最新世代の番号を含んだ世代管理エントリが関連付けられている場合である。最新世代のSSデータが存在しない場合は、S2013に進む。最新世代のSSデータが存在している場合は、FMコントローラ412は、前述したS2010〜S2011の処理を行い、処理を終了する。
S2013の処理を説明する。FMコントローラ412は、旧物理ページ番号と最新世代の番号とを含んだ世代管理エントリ1030を、S2002で算出された論理ページ番号を含んだ論理物理エントリに新たに関連付ける(S2013)。
FMコントローラ412は、旧物理ページ番号に対応する、物理ページ状態管理テーブル1040における物理ページ状態1502を「無効」に変更する(S2014)。
図21は、ストレージコントローラ110でのリード処理を示す。
ストレージコントローラ110は、ホスト装置2からリードコマンドを受信する(S2101)。受信したリードコマンドには、リード元を表す情報として、例えば、LU番号及び第1論理アドレスを含んだ情報が含まれている。
ストレージコントローラ110は、リードコマンドから、リード元のFMパッケージを特定する(S2102)。具体的には、ストレージコントローラ110は、リードコマンドが有するLU番号及び第1論理アドレスから第2論理アドレスを算出し、LU番号及びその第2論理アドレスに対応するFMパッケージをLU構成テーブル620から特定する。そのFMパッケージがリード元FMパッケージである。
S2102で特定したリード元FMパッケージに対し、ストレージコントローラ110は、リードコマンドを発行する(以下、このリードコマンドをPKG−RDコマンドという)(S2103)。PKG−RDコマンドには、例えば、LU番号及び第2論理アドレスが含まれる。LU番号は、リードコマンドが有するLU番号と同じで良い。
図22は、FMパッケージ120でのリード処理を示す。
FMパッケージ120は、ストレージコントローラ110からPKG−RDコマンドを受信する(S2201)。
FMコントローラ412は、受信したPKG−RDコマンドから、リード元の物理ページを特定する(S2202)。具体的には、FMコントローラ412は、PKG−RDコマンドに含まれる、LU番号及び第2論理アドレスから論理ページ番号を算出する。そして、FMコントローラ412は、論理物理変換テーブル1020から、算出された論理ページ番号に対応する物理ページ番号を特定する。
FMコントローラ412は、特定された物理ページからデータを読み出す(S2203)。
FMコントローラ412は、読み出されたデータを、ストレージコントローラ110に送信する。ストレージコントローラ110は、そのデータを、ホスト装置2に送信する。これにより、ホスト装置2は、リードコマンドで指定したLUにおける、そのリードコマンドで指定した第1論理アドレスに対応するデータを、取得することができる。
次に、図23を参照して、リクラメーション処理について説明する。リクラメーション処理は、FMパッケージ412が行う処理である。
FMコントローラ412は、FMパッケージ120内の各物理ブロック511について、無効ページが閾値以上の物理ブロックがあるか否かを判定する(S2301)。具体的には、FMコントローラ412は、物理ブロック状態管理テーブル1050に基づき、無効ページ数1604が閾値以上の物理ブロック(この説明においては、無効ページが閾値以上の物理ブロックを無効ブロックという)の物理ブロック番号1401を抽出する。判定の結果、無効ブロックがない場合、FMコントローラ412は、リクラメーション処理を終了する(END)。
一方、S2301の判定の結果、FMパッケージ120内に無効ブロックがあると判定された場合、FMコントローラ412は、S2302以下の処理を行う。以下の説明では、1つの無効ブロックについて、S2302以下の処理を説明する。しかし、無効ブロックが複数存在する場合においては、FMコントローラ412は、物理ブロック状態管理テーブル1050から最初に発見された無効ブロックについてS2302以下の処理を行うようにしてもよいし、物理ブロック番号の小さいものからS2302以下の処理を行う等、所定のルールに基づいて行われるようにしてもよい。
FMコントローラ412は、無効ブロック内にSSページが存在するか否かの判定を行う(S2302)。具体的には、FMコントローラ412は、物理ブロック状態管理テーブル1050に基づき、無効ブロックの物理ブロック番号1601に対応する物理ページリスト1605を抽出する。そして、FMコントローラ412は、物理ページ状態管理テーブル1040に基づき、抽出された物理ページについて物理ページ状態1502が「SS」のものがあるか否かの判定を行う。物理ページ状態1502が「SS」の物理ページがある場合には、S2303に進む。一方、物理ページ状態1502が「SS」の物理ページがない場合には、S2307に進む。
S2303を説明する。FMコントローラ412は、消去回数が閾値以上で、かつ、空きページを有する物理ブロックを選択する(S2303)。この処理の説明においては、S2303で選択された物理ブロックを第1選択ブロックという。具体的には、まず、FMコントローラ412は、物理ブロック状態管理テーブル1050に基づき、消去回数1602が閾値以上の物理ブロック番号1601を抽出し、抽出した物理ブロック番号1601に対応する、物理ページリスト1605を取得する。そして、FMコントローラ412は、物理ページ状態管理テーブル1040に基づき、取得した物理ページ番号1501の物理ページ状態1502が「空き」であるか否かを検索する。検索の結果、物理ページ状態1502が「空き」である物理ページを含んだ無効ブロックを、第1選択ブロックとして選択する。なお、第1選択ブロックの候補となる物理ブロックが複数ある場合、例えば、空ページの最も多い物理ブロックを第1選択ブロックとしてもよいし、消去回数が所定範囲である物理ブロックを第1選択ブロックとしてもよい。
FMコントローラ412は、無効ブロック内のSSページのデータ(SSデータ)を、第1選択ブロックの空きページにコピーする(S2304)。以下、無効ブロック内のコピー元のSSページのことをコピー元ページ、第1選択ブロック内のデータのコピー先の空きページのことをコピー先ページという。
FMコントローラ412は、コピー元ページに対応する、論理物理変換テーブル1020における物理ページ番号1202を、コピー先ページの物理ページ番号に変更する(S2305)。
FMコントローラ412は、物理ページ状態管理テーブル1040について、コピー元ページの物理ページ番号1501に対応する物理ページ状態1502を、「無効」にし、コピー先ページの物理ページ番号1501に対応する物理ページ状態1502を、「SS」にする(S2306)。
FMコントローラ412は、無効ブロックの無効ページ数及び選択ブロックの最終ライト時刻を更新する(S2312)。具体的には、まず、FMコントローラ412は、物理状態管理テーブル1050において、無効ブロックの物理ブロック番号1601に対応する無効ページ数1604をインクリメントする。無効ページ数1604のインクリメントは、無効ページ数分行われる。次に、FMコントローラ412は、物理状態管理テーブル1050において、選択ブロックの物理ブロック番号1601に対応する最終ライト時刻1603を、S2304でコピーされた時刻に更新する。
S2312の処理の後、S2302の判定の結果、物理ページ状態管理テーブル1040において、物理ページ状態1502が「SS」の物理ページがない場合、以下に説明するS2307が行われる。
FMコントローラ412は、無効ブロック内に有効ページがあるか否かを判定する(S2307)。具体的には、FMコントローラ412は、まず、物理ブロック状態管理テーブル1050に基づき、無効ブロックの物理ブロック番号1601について、物理ページリスト1605を取得する。次に、FMコントローラ412は、物理ページ状態管理テーブル1040に基づき、取得した物理ページ状態1502が「有効」である物理ページ番号1501があるか否かを判定する。無効ブロック内に有効ページが存在している場合は、S2308に進む。無効ブロック内に有効ページが存在していない場合は、S2313に進む。
S2308の処理を説明する。FMコントローラ412は、消去回数が閾値未満で、かつ、空きページを有する物理ブロックを選択する(S2308)。この処理の説明においては、S2308で選択された物理ブロックを第2選択ブロックという。具体的には、まず、FMコントローラ412は、物理ブロック状態管理テーブル1050に基づき、消去回数1602が閾値未満の物理ブロック番号1601を抽出し、抽出した物理ブロック番号1601に対応する、物理ページリスト1605を取得する。そして、FMコントローラ412は、物理ページ状態管理テーブル1040に基づき、取得した物理ページ番号1501の物理ページ状態1502が「空き」であるか否かを判定する。その判定の結果が肯定的であれば、FMコントローラ412は、物理ページ状態1502が「空き」である物理ページを含んだ無効ブロックを、第2選択ブロックとして選択する。なお、第2選択ブロックの候補となる物理ブロックが複数ある場合、例えば、空ページの最も多い物理ブロックを第2選択ブロックとしてもよいし、消去回数が最も少ない物理ブロックを第2選択ブロックとしてもよい。
FMコントローラ412は、無効ブロック内の有効ページのデータ(有効データ)を、第2選択ブロックの空きページにコピーする(S2309)。以下、無効ブロック内のコピー元の有効ページのことをコピー元ページ、第2選択ブロック内のデータのコピー先の空きページのことをコピー先ページという。
FMコントローラ412は、コピー元ページに対応する、論理物理変換テーブル1020の物理ページ番号1202を、コピー先ページの物理ページ番号に変更する(S2310)。
FMコントローラ412は、物理ページ状態管理テーブル1040について、コピー元ページに対応する物理ページ状態1502を、「無効」にし、コピー先ページに対応する物理ページ状態1502を、「有効」にする(S2311)。
FMコントローラ412は、前述したS2312の処理を行う。すなわち、FMコントローラ412は、無効ブロックの無効ページ数及び選択ブロックの最終ライト時刻を更新する(S2312)。S2312の処理の後、前述したS2302以下の処理が行われる。
次に、S2313以下の処理を説明する。
S2307における判定の結果、無効ブロック内に有効ページが存在していない場合、FMコントローラ412は、FMパッケージ120内の無効ブロックのうち、無効ページ数が所定の値以上である無効ブロックがあるか否かを判定する(S2313)。具体的には、FMコントローラ412は、物理ブロック状態管理テーブル1050に、所定の値以上の無効ページ数1604があるか否かを判定する。判定の結果、無効ページ数が所定の値以上である無効ブロックが存在していない場合は、処理が終了する(END)。
一方、判定の結果、無効ページ数が所定の値以上である無効ブロックが存在している場合は、FMコントローラ412は、その無効ブロックの物理ブロック番号1601を取得する。無効ページ数が所定の値以上である無効ブロックが複数存在している場合は、それらの無効ブロックのうち、無効ページ数が最大である無効ブロックの物理ブロック番号1601を取得する。以下、S2314で取得された物理ブロック番号1601を有する無効ブロックを対象無効ブロックという。
FMコントローラ412は、対象無効ブロックを消去する(S2314)。無効ブロックの消去とは、無効ブロック内のすべての物理ページを空きの物理ページとすることである。
FMコントローラ412は、対象無効ブロックの消去回数を1インクリメントし、かつ、最終ライト時刻を初期化する(S2315)。具体的には、FMコントローラ412は、物理ブロック状態管理テーブル1050において、対象無効ブロックの物理番号1601に対応する消去回数を1インクリメントし、最終ライト時刻を初期化する(例えば「−」を入力する)。
次に、図24を参照して、リフレッシュ処理について説明する。リフレッシュ処理は、FMパッケージ412が行う処理である。
FMコントローラ412は、FMパッケージ120内の各物理ブロック511について、最終ライト時刻からの経過時間が閾値以上の物理ブロックがあるか否かを判定する(S2401)。具体的には、FMコントローラ412は、物理ブロック状態管理テーブル1050に基づき、現在時刻と最終ライト時刻との差分が閾値以上となる物理ブロック(この説明においては、現在時刻と最終ライト時刻との差分が閾値以上の物理ブロックを時間超ブロックという)の物理ブロック番号1401を抽出する。判定の結果、時間超ブロックがない場合、FMコントローラ412は、リフレッシュ処理を終了する(END)。
一方、S2401の判定の結果、FMパッケージ120内に時間超ブロックがある場合、FMコントローラ412は、S2402以下の処理を行う。以下の説明では、1つの時間超ブロックについて、S2402以下の処理を説明する。しかし、時間超ブロックが複数存在する場合においては、FMコントローラ412は、物理ブロック状態管理テーブル1050から最初に発見された時間超ブロックについてS2402以下の処理を行うようにしてもよいし、物理ブロック番号の小さいものからS2402以下の処理を行う等、所定のルールに基づいて行われるようにしてもよい。
FMコントローラ412は、時間超ブロック内にSSページが存在するか否かの判定を行う(S2402)。具体的には、FMコントローラ412は、物理ブロック状態管理テーブル1050に基づき、時間超ブロックの物理ブロック番号1601に対応する物理ページリスト1605を抽出する。そして、FMコントローラ412は、物理ページ状態管理テーブル1040に基づき、抽出された物理ページについて物理ページ状態1502が「SS」のものがあるか否かの判定を行う。物理ページ状態1502が「SS」の物理ページがある場合には、S2403に進む。一方、物理ページ状態1502が「SS」の物理ページがない場合には、S2407に進む。
S2403を説明する。FMコントローラ412は、消去回数が閾値以上で、かつ、空きページを有する物理ブロックを選択する(S2403)。この処理の説明においては、S2403で選択された物理ブロックを第3選択ブロックという。具体的には、まず、FMコントローラ412は、物理ブロック状態管理テーブル1050に基づき、消去回数1602が閾値以上の物理ブロック番号1601を抽出し、抽出した物理ブロック番号1601に対応する、物理ページリスト1605を取得する。そして、FMコントローラ412は、物理ページ状態管理テーブル1040に基づき、取得した物理ページ番号1501の物理ページ状態1502が「空き」であるか否かを検索する。検索の結果、物理ページ状態1502が「空き」である物理ページを含んだ時間超ブロックを、第3選択ブロックとして選択する。なお、第3選択ブロックの候補となる物理ブロックが複数ある場合、例えば、空ページの最も多い物理ブロックを第3選択ブロックとしてもよいし、消去回数が所定範囲である物理ブロックを第3選択ブロックとしてもよい。
FMコントローラ412は、時間超ブロック内のSSページのデータ(SSデータ)を、第3選択ブロックの空きページにコピーする(S2404)。以下、第3選択ブロック内のコピー元のSSページのことをコピー元ページ、第3選択ブロック内のデータのコピー先の空きページのことをコピー先ページという。
FMコントローラ412は、コピー元ページに対応する、論理物理変換テーブル1020の物理ページ番号1202を、コピー先ページの物理ページ番号に変更する(S2405)。
FMコントローラ412は、物理ページ状態管理テーブル1040について、コピー元ページに対応する物理ページ状態1502を、「無効」に変更し、コピー先ページに対応する物理ページ状態1502を、「SS」に変更する(S2406)。
FMコントローラ412は、第3選択ブロックの無効ページ数と第3選択ブロックの最終ライト時刻とを更新する(S2412)。具体的には、まず、FMコントローラ412は、物理状態管理テーブル1050において、第3選択ブロックに対応する無効ページ数1604をインクリメントする。無効ページ数1604のインクリメントは、無効ページ数分行われる。次に、FMコントローラ412は、物理状態管理テーブル1050において、第3選択ブロックに対応する最終ライト時刻1603を、S2404でコピーされた時刻に更新する。
S2412の処理の後、S2402の判定の結果、物理ページ状態管理テーブル1040において、物理ページ状態1502が「SS」の物理ページがない場合、以下に説明するS2407が行われる。
FMコントローラ412は、時間超ブロック内に有効ページがあるか否かを判定する(S2407)。具体的には、FMコントローラ412は、まず、物理ブロック状態管理テーブル1050に基づき、時間超ブロックの物理ブロック番号1601について、物理ページリスト1605を取得する。次に、FMコントローラ412は、物理ページ状態管理テーブル1040に基づき、取得した物理ページ状態1502が「有効」である物理ページ番号1501があるか否かを判定する。時間超ブロックに有効ページが存在している場合は、S2408に進む。時間超ブロック内に有効ページが存在していない場合は、S2413に進む。
S2408の処理を説明する。FMコントローラ412は、消去回数が閾値未満で、かつ、空きページを有する物理ブロックを選択する(S2408)。この処理の説明においては、S2408で選択された物理ブロックを第4選択ブロックという。具体的には、まず、FMコントローラ412は、物理ブロック状態管理テーブル1050に基づき、消去回数1602が閾値未満の物理ブロック番号1601を抽出し、抽出した物理ブロック番号1601に対応する、物理ページリスト1605を取得する。そして、FMコントローラ412は、物理ページ状態管理テーブル1040に基づき、取得した物理ページ番号1501の物理ページ状態1502が「空き」であるか否かを判定する。その判定の結果が肯定的の場合に、FMコントローラ412は、物理ページ状態1502が「空き」である物理ページを含んだ時間超ブロックを、第4選択ブロックとして選択する。なお、第4選択ブロックの候補となる物理ブロックが複数ある場合、例えば、空ページの最も多い物理ブロックを第4選択ブロックとしてもよいし、消去回数が最も少ない物理ブロックを第4選択ブロックとしてもよい。
FMコントローラ412は、時間超ブロック内の有効ページのデータ(有効データ)を、第4選択ブロックの空きページにコピーする(S2409)。以下、第4選択ブロック内のコピー元の有効ページのことをコピー元ページ、第4選択ブロック内のデータのコピー先の空きページのことをコピー先ページという。
FMコントローラ412は、コピー元ページに対応する、論理物理変換テーブル1020の物理ページ番号1202を、コピー先ページの物理ページ番号に変更する(S2410)。
FMコントローラ412は、物理ページ状態管理テーブル1040について、コピー元ページに対応する物理ページ状態1502を、「無効」に変更し、コピー先ページに対応する物理ページ状態1502を、「有効」にする(S2411)。
FMコントローラ412は、前述したS2412の処理を行う。すなわち、FMコントローラ412は、第4選択ブロックの無効ページ数と第4選択ブロックの最終ライト時刻とを更新する(S2412)。S2412の処理の後、前述したS2402以下の処理が行われる。
次に、S2413以下の処理を説明する。
S2407における判定の結果、無効ブロック内に有効ページが存在していない場合、FMコントローラ412は、FMパッケージ120内の時間超ブロックのうち、無効ページ数が所定の値以上である時間超ブロックがあるか否かを判定する(S2413)。具体的には、FMコントローラ412は、物理ブロック状態管理テーブル1050に基づき、所定の値以上の無効ページ数1604があるか否かを判定する。判定の結果、無効ページ数が所定の値以上である時間超ブロックが存在していない場合は、処理が終了する(END)。
一方、判定の結果、無効ページ数が所定の値以上である時間超ブロックが存在している場合は、FMパッケージ412は、その時間超ブロックの物理ブロック番号1601を取得する。無効ページ数が所定の値以上である時間超ブロックが複数存在している場合は、それらの時間超ブロックのうち、無効ページ数が最大である時間超ブロックの物理ブロック番号1601が取得される。以下、S2414で取得された物理ブロック番号1601を有する時間超ブロックを対象時間超ブロックという。
FMコントローラ412は、対象時間超ブロックを消去する(S2414)。時間超ブロックの消去とは、時間超ブロック内のすべての物理ページを空きの物理ページにすることである。
FMコントローラ412は、対象時間超ブロックの消去回数を1インクリメントし、かつ、最終ライト時刻を初期化する(S2415)。具体的には、FMコントローラ412は、物理ブロック状態管理テーブル1050において、対象時間超ブロックの物理番号1601に対応する消去回数を1インクリメントし、最終ライト時刻を初期化する(例えば「−」を入力する)。そして、処理は終了する(END)。
以上、本発明の一実施形態を説明したが、これは本発明の説明のための例示であって、本発明の範囲をこの実施形態にのみ限定する趣旨ではない。本発明は、他の種々の形態でも実施することが可能である。
100…ストレージシステム 110…ストレージコントローラ 120…FMパッケージ

Claims (15)

  1. ホスト装置と接続されるストレージコントローラを有するストレージシステムに搭載されるフラッシュパッケージであって、
    複数のフラッシュメモリチップと、
    前記複数のフラッシュメモリチップを制御するパッケージコントローラと
    を有し、
    前記ストレージコントローラにより、前記パッケージコントローラが提供する論理記憶領域と前記ストレージシステム内の他の1以上のフラッシュパッケージが提供する論理記憶領域とを用いて前記ホスト装置に第一のLU(Logical Unit)と第二のLUが提供され、
    前記パッケージコントローラは、前記第一のLUをバックアップ対象、前記第二のLUを非バックアップ対象、として管理しているときに、
    前記第一のLUと対応する第一の論理記憶領域に対して更新データの書き込み要求を受信すると、更新前のデータを維持した状態で前記第一の論理記憶領域に割り当てられていた第一の物理記憶領域をバックアップ用記憶領域として管理し、前記第一の論理記憶領域に新たに第二の物理記憶領域を割り当て、当該第二の物理記憶領域に当該更新データを書き込み、
    前記第二のLUと対応する第二の論理記憶領域に対して更新データの書き込み要求を受信すると、前記第二の論理記憶領域に割り当てられていた第三の物理記憶領域を無効記憶領域として管理し、前記第二の論理記憶領域に新たに割り当てられた第四の物理記憶領域に当該更新データを書き込み、
    前記パッケージコントローラは、バックアップ用記憶領域として管理される前記第一の物理記憶領域を用いて、前記第一のLUのバックアップデータを提供し、
    前記パッケージコントローラは、無効記憶領域として管理される前記第三の物理記憶領域に格納された更新前のデータを消去するよう制御する
    ことを特徴とするフラッシュパッケージ。
  2. 前記パッケージコントローラは、前記ホスト装置から前記第二のLUについてバックアップ取得要求を受信した前記ストレージコントローラから、前記バックアップ取得要求を受信し、
    前記パッケージコントローラは、前記第二のLUについてバックアップ取得要求を受信すると、前記第二のLUをバックアップ対象として管理する
    ことを特徴とする請求項1に記載のフラッシュパッケージ。
  3. 前記パッケージコントローラは、前記ホスト装置から前記第一のLUについてバックアップ削除要求を受信した前記ストレージコントローラから、前記バックアップ削除要求を送信し、
    前記パッケージコントローラは、前記第一のLUについてバックアップ削除要求を受信すると、前記第一のLUを非バックアップ対象として、前記第一の物理記憶領域を無効記憶領域として、管理する
    ことを特徴とする請求項1又は2に記載のフラッシュパッケージ。
  4. 前記パッケージコントローラは、第一の物理ブロックについてコピー処理を実施し、
    前記コピー処理が、
    前記第一の物理ブロックに含まれる複数の物理記憶領域のうち、前記第一のLUまたは前記第二のLUと対応する論理記憶領域に割り当てられている少なくとも1つの物理記憶領域に格納されているデータを、第二の物理ブロックに含まれる複数の物理記憶領域にコピーすることである第一のコピー、
    前記第一の物理ブロックに含まれる複数の物理記憶領域のうち、バックアップ用記憶領域として管理されている少なくとも1つの物理記憶領域に格納されているデータを、第三の物理ブロックに含まれる複数の物理記憶領域にコピーすることである第二のコピー、及び、
    前記第一及び第二のコピーの完了後に、前記第一の物理ブロックに含まれる複数の物理記憶領域に格納されたデータを消去するよう制御すること、
    を含む
    ことを特徴とする請求項1乃至3のうちのいずれか1項に記載のフラッシュパッケージ。
  5. 前記パッケージコントローラは、
    前記複数のフラッシュメモリチップが有する複数の物理ブロックの各々について、データを消去する制御が実施された回数である消去回数を管理し、
    前記複数の物理ブロックのうちから、消去回数が閾値未満の物理ブロックを前記第二物理ブロックとして選択し、消去回数が閾値以上の物理ブロックを前記第三の物理ブロックとして選択する、
    ことを特徴とする請求項4に記載のフラッシュパッケージ。
  6. 前記コピー処理は、前記第一の物理ブロックに含まれる複数の物理記憶領域のうち無効記憶領域として管理される物理記憶領域の割合が閾値以上になった場合に、実施される
    ことを特徴とする請求項4又は5に記載のフラッシュパッケージ。
  7. 前記コピー処理は、前記第一の物理ブロックに含まれる複数の物理記憶領域のいずれかに最後にデータが書き込まれてから所定時間経過した場合に、実施される
    ことを特徴とする請求項4乃至6のうちのいずれか1項に記載のフラッシュパッケージ。
  8. 上位装置と接続されるフラッシュパッケージであって、
    複数の物理記憶領域を有するフラッシュメモリと、
    前記フラッシュメモリに接続され、バックアップ対象領域及び非バックアップ対象領域を含む論理記憶領域を前記上位装置に提供するパッケージコントローラと
    を有し、
    前記パッケージコントローラは、前記論理記憶領域のうちの前記バックアップ対象領域に含まれる第一の論理記憶領域を指定する更新データの書き込み要求を前記上位装置から受信した場合、前記第一の論理記憶領域に割り当てられ、第一の更新前データを格納している第一の物理記憶領域をバックアップ用記憶領域として前記第一の論理記憶領域への割り当てを維持し、前記第一の論理記憶領域に第二の物理記憶領域を割り当て、当該第二の物理記憶領域に当該更新データを書き込み、
    前記パッケージコントローラは、前記論理記憶領域のうちの前記非バックアップ対象領域に含まれる第二の論理記憶領域を指定する更新データの書き込み要求を前記上位装置から受信した場合、前記第二の論理記憶領域に割り当てられ、第二の更新前データを格納している第三の物理記憶領域を無効記憶領域として管理し、前記第二の論理記憶領域に第四の物理記憶領域を割り当て、当該第四の物理記憶領域に当該更新データを書き込み、
    前記パッケージコントローラは、前記バックアップ用記憶領域として管理されている前記第一の物理記憶領域内の前記第一の更新前データをバックアップデータとして前記上位装置に提供し、
    前記パッケージコントローラは、前記無効記憶領域として管理されている前記第三の物理記憶領域内の前記第二の更新前データを消去する
    ことを特徴とするフラッシュパッケージ。
  9. 前記パッケージコントローラは、前記第二の論理記憶領域についてバックアップを取得することの要求であるバックアップ取得要求を前記上位装置から受信した場合、前記第二の論理記憶領域をバックアップ対象領域として管理する
    ことを特徴とする請求項8に記載のフラッシュパッケージ。
  10. 前記パッケージコントローラは、前記第一の論理記憶領域についてバックアップを削除することの要求であるバックアップ削除要求を受信した場合、前記第一の論理記憶領域を非バックアップ対象領域として管理し、且つ、前記第一の物理記憶領域を無効記憶領域として管理する
    ことを特徴とする請求項8又は9に記載のフラッシュパッケージ。
  11. 前記フラッシュメモリは、それぞれが複数の物理記憶領域を含む複数の物理ブロックを有し、
    前記パッケージコントローラは、第一の物理ブロックについてコピー処理を実施し、
    前記コピー処理は、
    前記第一の物理ブロックにおける、前記バックアップ用記憶領域として管理されている物理記憶領域以外の物理記憶領域のうち、全ての有効記憶領域に格納されているデータを、第二の物理ブロックにコピーし、当該全ての有効記憶領域をそれぞれ無効記憶領域として管理することである第一のコピー、
    前記第一の物理ブロックに含まれる複数の物理記憶領域のうちの全てのバックアップ用記憶領域に格納されているデータを、第三の物理ブロックにコピーし、当該全てのバックアップ用記憶領域をそれぞれ無効記憶領域として管理することである第二のコピー、及び、
    前記第一及び第二のコピーの完了後に前記第一の物理ブロックからデータを消去すること、
    を含む
    ことを特徴とする請求項8乃至10のうちのいずれか1項に記載のフラッシュパッケージ。
  12. 前記パッケージコントローラは、前記複数の物理ブロックの各々について、物理ブロックからデータを消去するブロック消去処理が実施された回数である消去回数を管理し、
    前記パッケージコントローラは、前記複数の物理ブロックのうちから、消去回数が閾値未満の物理ブロックを前記第二物理ブロックとして選択し、消去回数が閾値以上の物理ブロックを前記第三の物理ブロックとして選択する、
    ことを特徴とする請求項11に記載のフラッシュパッケージ。
  13. 前記コピー処理は、前記第一の物理ブロックに含まれる複数の物理記憶領域のうち無効記憶領域として管理される物理記憶領域の割合が閾値以上になった場合に、実施される
    ことを特徴とする請求項11又は12に記載のフラッシュパッケージ。
  14. 前記コピー処理は、前記第一の物理ブロックに最後にデータが書き込まれてから所定時間経過した場合に、実施される
    ことを特徴とする請求項11乃至13のうちのいずれか1項に記載のフラッシュパッケージ。
  15. 前記上位装置は、バックアップ対象である第一のLU(Logical Unit)と非バックアップ対象である第二のLUとを一以上のホスト装置に提供するストレージコントローラであり、
    前記第一の論理記憶領域は、前記第一のLUに対応付けられ、
    前記第二の論理記憶領域は、前記第二のLUに対応付けられる、
    ことを特徴とする請求項8乃至14のうちのいずれか1項に記載のフラッシュパッケージ。
JP2014095926A 2014-05-07 2014-05-07 ストレージシステムおよびそのデータ制御方法 Expired - Fee Related JP5864667B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2014095926A JP5864667B2 (ja) 2014-05-07 2014-05-07 ストレージシステムおよびそのデータ制御方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014095926A JP5864667B2 (ja) 2014-05-07 2014-05-07 ストレージシステムおよびそのデータ制御方法

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2013518028A Division JP5543026B2 (ja) 2011-02-02 2011-02-02 ストレージシステムおよびそのデータ制御方法

Publications (2)

Publication Number Publication Date
JP2014206982A JP2014206982A (ja) 2014-10-30
JP5864667B2 true JP5864667B2 (ja) 2016-02-17

Family

ID=52120441

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014095926A Expired - Fee Related JP5864667B2 (ja) 2014-05-07 2014-05-07 ストレージシステムおよびそのデータ制御方法

Country Status (1)

Country Link
JP (1) JP5864667B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112639746A (zh) * 2018-09-07 2021-04-09 株式会社东芝 数据库装置、程序以及数据处理方法

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5137413B2 (ja) * 2006-11-28 2013-02-06 株式会社日立製作所 半導体記憶装置
JP5026213B2 (ja) * 2007-09-28 2012-09-12 株式会社日立製作所 ストレージ装置及びデータ重複排除方法
US8200922B2 (en) * 2008-12-17 2012-06-12 Netapp, Inc. Storage system snapshot assisted by SSD technology

Also Published As

Publication number Publication date
JP2014206982A (ja) 2014-10-30

Similar Documents

Publication Publication Date Title
JP5543026B2 (ja) ストレージシステムおよびそのデータ制御方法
JP5221756B2 (ja) データ要素を圧縮して格納するストレージシステム及び記憶制御方法
US11461015B2 (en) Available storage space in a system with varying data redundancy schemes
JP5918906B2 (ja) ストレージ装置及びストレージ制御方法
KR101916206B1 (ko) 고체 상태 드라이브에서 자유 공간 어카운트와 함께 재구축되는 2 스테이지 파워 온 맵을 위한 방법들, 디바이스들, 및 시스템들
JP6385556B2 (ja) 不揮発性メモリデバイスおよび不揮発性メモリデバイスのデータ記憶方法
US9026764B2 (en) Memory system performing wear leveling based on deletion request
JP6388345B2 (ja) メモリシステム
US10956071B2 (en) Container key value store for data storage devices
JP6298932B2 (ja) ストレージ装置
CN110895513A (zh) 一种系统垃圾回收方法和固态硬盘中的垃圾回收方法
KR102545067B1 (ko) 로그 구조 파일 시스템의 메타 데이터 저장 방법, 시스템 및 컴퓨터 판독 가능한 기록 매체
US20170017405A1 (en) Systems and methods for improving flash-oriented file system garbage collection
WO2014057515A1 (en) Storage apparatus comprising snapshot function, and storage control method
WO2017022082A1 (ja) フラッシュメモリパッケージ、及び、フラッシュメモリパッケージを含むストレージシステム
US20170351608A1 (en) Host device
JP5864667B2 (ja) ストレージシステムおよびそのデータ制御方法
KR101247388B1 (ko) 하이브리드-매핑 ftl에서 trim 명령어를 처리하기 위한 방법 및 장치
US20110264848A1 (en) Data recording device
WO2018142622A1 (ja) 計算機
JP6895551B2 (ja) 情報処理システム
WO2020052216A1 (zh) 一种系统垃圾回收方法和固态硬盘中的垃圾回收方法
JP2021149292A (ja) 情報処理装置、情報処理方法及びプログラム

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20150226

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150317

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150513

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20151224

R150 Certificate of patent or registration of utility model

Ref document number: 5864667

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees