JP5808854B2 - ストレージシステム及びストレージ方法 - Google Patents

ストレージシステム及びストレージ方法 Download PDF

Info

Publication number
JP5808854B2
JP5808854B2 JP2014514226A JP2014514226A JP5808854B2 JP 5808854 B2 JP5808854 B2 JP 5808854B2 JP 2014514226 A JP2014514226 A JP 2014514226A JP 2014514226 A JP2014514226 A JP 2014514226A JP 5808854 B2 JP5808854 B2 JP 5808854B2
Authority
JP
Japan
Prior art keywords
journal
data
storage
memory
base image
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2014514226A
Other languages
English (en)
Other versions
JP2014517412A (ja
Inventor
篤志 河村
篤志 河村
純司 小川
純司 小川
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Publication of JP2014517412A publication Critical patent/JP2014517412A/ja
Application granted granted Critical
Publication of JP5808854B2 publication Critical patent/JP5808854B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/065Replication mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0688Non-volatile semiconductor memory arrays
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0689Disk arrays, e.g. RAID, JBOD
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1028Power efficiency
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1032Reliability improvement, data loss prevention, degraded operation etc
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7207Details relating to flash memory management management of metadata or control data
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Description

本発明は、データストレージ技術に関する。
近年、半導体技術の進歩によって、不揮発性半導体メモリが開発されている。不揮発性半導体メモリの一つにフラッシュメモリがある。近年、フラッシュメモリを記憶媒体とするデータストレージシステム(以下「ストレージシステム」という)が開発されている。
次に、フラッシュメモリ(特に、例えば、NAND型のフラッシュメモリ)の特性について説明する。フラッシュメモリは、複数の物理ブロックから構成されている。そして、物理ブロックは、複数の物理ページから構成されている。フラッシュメモリは、物理ページ単位でデータを書き換えることができない。したがって、ある物理ページのデータを書き換える場合、以下の処理が必要となる。
1)書き換え対象の物理ページを含む物理ブロックに保持されているデータを、いったん他の物理ページに退避させる。
2)書き換え対象の物理ページを含む物理ブロックのデータを全て消去する。
3)データを消去した書き換え対象の物理ページにデータを書き込む。
すなわち、フラッシュメモリにおいてデータを書き換える場合、いったんデータを消去しなければならない。しかし、フラッシュメモリの1つの物理ブロックのデータを消去するのに要する時間は、1つの物理ページにデータを書き込むのに要する時間と比較して、長い(例えば約一桁長い)。そこで、書き換えデータを、未使用の物理ページに書き込む方法が知られている。
しかしこの場合、データの書き換えが発生するたびに、フラッシュメモリ内の未使用の物理ページが消費されていく。そのため、未使用の物理ページが少なくなった場合、以下に述べるように、フラッシュメモリから不要なデータを消去して、未使用の物理ページを確保する必要がある。この処理を「リクラメーション」という。
1)消去対象の物理ブロックを特定する。
2)消去対象の物理ブロックが保持する有効なデータを、別の未使用の物理ページにコピーする。これにより、消去対象の物理ブロックにおける全ての物理ページに格納されているデータが無効なデータとなる。
3)消去対象の物理ブロックの全てのデータを消去する。
ところで、フラッシュメモリは、データ消去の回数に制限がある。1つの物理ブロックあたりのデータ消去回数の上限は、フラッシュメモリが有するメモリセルの種類によって異なるが、例えば、およそ10万回であり、これ以上はデータの消去ができなくなる(或いは、データ消去回数が上限を超えた物理ブロックにデータを格納したとしてもそのデータを一定期間保持することができない)恐れがある。そのため、フラッシュメモリには、特定の物理ブロックが集中的に消去されないように各物理ブロックの消去を平準化する「平準化機能」が組み込まれている。
また、フラッシュメモリに保持されたデータは、時間が経過すると共に、読み出しエラーの発生確率が増加する。このような現象を「リテンションエラー」という。これを回避するために、フラッシュメモリには、一定時間が経過すると、物理ページのデータを別の物理ページに移動する、「リフレッシュ機能」が組み込まれている。
これら「リクラメーション」、「平準化機能」、及び「リフレッシュ機能」等を総称して「ウェアレベリング」という。
上述のフラッシュメモリに組み込まれている各種機能を実現するために、フラッシュメモリは、論理アドレスと物理アドレスの対応関係を示す論物変換テーブルを有する。そして、上位のインタフェースには論理アドレスを提示し、フラッシュメモリの物理アドレスを隠蔽する。そして、上位のインタフェースから指定された論理アドレスは、論物変換テーブルが参照され、対応する物理アドレスに変換される。例えば、上位のインタフェースから、ある論理アドレス「1」に対するデータ「A」の書き込みが指示された場合、以下の処理が実行される。
1)フラッシュメモリの未使用の物理ページ「101」を特定する。
2)未使用の物理ページ「101」に、データ「A」を書き込む。
3)論物変換テーブルにおいて、論理アドレス「1」の参照先を、データを書き込んだ物理ページ「101」の物理アドレスに変更する。
論物変換テーブルは、データの書き込みが発生するたびに更新される。すなわち、論物変換テーブルは、頻繁に更新されるので、一般的に、アクセス性能の高い(データの読み出し及び書き込み速度の速い)メインメモリに展開されて使用される。しかし、メインメモリに保持されたデータは、ストレージシステムの電源がオフされたときに消去される。よって、ストレージシステムの電源をオフにする際は、メインメモリに保持された論物変換テーブルを、フラッシュメモリに退避する必要がある。
特許文献1には、メインメモリに保持されているデータを高速にフラッシュメモリに退避する方法として、フラッシュメモリが多値メモリ(MLC(Multi Level Cell))である場合は、最下位ビットのみに書き込む高速モードを用いる方法が記載されている。
特許文献2には、論物変換テーブルをユーザデータと同じようにフラッシュメモリに格納し、フラッシュメモリに格納されたデータから論物変換テーブルを復元する方法が記載されている。
特開2009-289014号公報 特開平08−077074号公報
データの入出力に使用される情報である管理情報(例えば、論物変換テーブル等)のデータサイズは、フラッシュメモリの容量の増加に比例して増大する。したがって、容量の大きいフラッシュメモリを備えるストレージステムでは、メインメモリに保持される管理情報を、フラッシュメモリに退避する処理に時間がかかる。
また、ストレージステムには、不意の電源オフに備えて、電源保持回路としてキャパシタやバッテリといった二次電源が備えられている。そして、不意の電源オフが発生したとき、ストレージステムは、二次電源からの電力を用いて、メインメモリに保持される管理情報を、フラッシュメモリに退避する。したがって、管理情報のデータサイズの増大に伴い、二次電源の容量(例えばキャパシタの静電容量)も大きくしなければならない。
上記の問題は、フラッシュメモリ以外のストレージを有し、ストレージ制御装置のメモリからストレージにデータを退避するようになっている種々のストレージシステムについても有りえる。
そこで、本発明の目的は、ストレージ制御装置のメモリに保持されるデータをストレージ制御装置からストレージに退避する処理にかかる時間を、短縮することである。
また、本発明の別の目的は、二次電源の容量の増大を抑制することである。
本発明の一実施形態に従うストレージシステムは、不揮発性記憶媒体を備えるストレージと、ストレージに対してデータの入出力を行うストレージ制御装置とを有する。ストレージ制御装置は、ストレージに対するデータの入出力に使用される情報である管理情報を記憶するメモリと、ストレージへのアクセスを制御する制御部とを有する。制御部は、メモリに記憶されている管理情報を、ベースイメージとしてストレージに蓄積し、ベースイメージが前記ストレージに蓄積された以降において管理情報が更新されたとき、その更新に関する情報を含むジャーナルを生成し、ジャーナルを複数のジャーナルから構成されるジャーナル群として前記ストレージに蓄積する。ジャーナルは、管理情報における更新箇所についての更新後の情報を含んでも良いし、管理情報における更新箇所についての更新前の情報を含んでも良い。
好適な実施形態では、ストレージシステムは、ストレージシステムの電源である一次電源からの電力の供給が停止したときにメモリ及び制御部に電力を供給する二次電源をさらに備えて良い。管理情報が、データ論物変換テーブルを含んで良い。データ論物変換テーブルは、前記ストレージの領域に対応付けられている物理アドレスと、その物理アドレスに対応付けられている論理アドレスとの対応関係を有するテーブルで良い。不揮発性記憶媒体が、フラッシュメモリチップであって良い。ストレージが、1又は複数のフラッシュメモリチップを有するフラッシュメモリで良い。制御部は、一次電源からの電力の供給が停止したとき、メモリに生成したジャーナルが存在する場合、二次電源を用いて、(1)当該ジャーナルをジャーナル群としてストレージに蓄積し、(2)ストレージに保持されているベースイメージをメモリに復元し、その後、(3)ストレージに保持されている前記ジャーナル群をベースイメージに反映し、それにより、メモリに管理情報を復元してもよい。
本発明の実施例1に係るストレージシステムの構成を示す。 フラッシュメモリチップの内部構成を示す。 データ論物変換(LPT)テーブルの更新の概要を示す。 データLPTテーブルを復元するときの一例を示す。 各LPTテーブルとフラッシュメモリとの関係を示す。 メインメモリ上の論理アドレスとフラッシュメモリ上の物理アドレスの関係の具体例を示す。 メインメモリのデータをフラッシュメモリに退避する場合の動作概要を示す。 フラッシュメモリに退避したデータをメインメモリに復元する場合の動作概要を示す。 データLPTテーブルの更新情報を記録する処理のフローチャートの一例を示す。 ベースイメージ更新処理のフローチャートの一例を示す。 電源オフ時にメインメモリに保持されているデータをフラッシュメモリに退避する処理のフローチャートの一例を示す。 フラッシュメモリに退避したデータを電源オン時にメインメモリに復元する処理のフローチャートの一例を示す。 データLPTテーブルを復元するときの変形例を示す。 ジャーナルリストのリスト最大数を設定変更するときの動作概要を示す。 データLPTテーブルを分割して管理する例を示す。 第1〜第3のデータLPTテーブルの退避及び復元の一例を示す。 第1〜第3のジャーナルリストLPTテーブルを復元する処理のフローチャートの一例を示す。 データの復元中にホスト計算機からアクセスを受けた場合の処理概要の一例を示す。
以下、本発明の幾つかの実施例を説明する。
なお、以下の各実施例において、ストレージはフラッシュメモリであるが、本発明はこれに限定されず、例えば、ストレージ(不揮発性の物理的な記憶媒体)は他の不揮発性記憶媒体で構成されてもよい。
また、以下の説明では、「xxxテーブル」の表現にて各種情報を説明することがあるが、各種情報は、テーブル以外のデータ構造で表現されていてもよい。データ構造に依存しないことを示すために「xxxテーブル」を「xxx情報」と呼ぶことができる。
図1は、本発明の実施例1に係るストレージシステムの構成を示す。
ストレージシステムは、例えば、ストレージ制御装置10と、フラッシュメモリ20とを有する。ストレージ制御装置10に、ホスト計算機30が通信可能に接続されている。ホスト計算機30に代えて又は加えて、他のストレージシステムのような他種の上位装置が接続されていても良い。
ホスト計算機30は、例えば、ストレージ制御装置10に対して書き込み及び読み出し(以下「I/O」という場合もある)コマンドを送信することにより、フラッシュメモリ20にデータを書き込んだり、フラッシュメモリ20からデータを読み出したりする。
フラッシュメモリ20は、例えば、1又は複数のフラッシュメモリチップ(以下「FMチップ」という)21から構成される。FMチップ21は、いわゆる不揮発性半導体メモリであり、電力が供給されなくてもデータを保持できる。FMチップが有する各メモリセルは、例えば、MLC(Multi Level Cell)であるが、他種のメモリセルでも良い。
ストレージ制御装置10は、例えば、ホストインタフェース(以下「H−IF」という)14、制御部19、メインメモリ13、電源検出回路16、キャパシタ17、及びフラッシュメモリインタフェース(以下「FM−IF」という)15を備え、それぞれがバス18で接続されている。制御部19は、CPU(Central Processing Unit)12と、コントローラ11とを含んでいる。
CPU12は、ストレージ制御装置10の全体を制御するプロセッサであり、メインメモリ13に格納されたコンピュータプログラム(以下「プログラム」という)を実行する。これにより、後述する各種機能が実現される。
コントローラ11は、H−IF14を介して、ホスト計算機30等からI/Oコマンドを受け取る。コントローラ11は、受け取ったI/Oコマンドに基づき、FM−IF15を介して、そのI/Oコマンドに従ってデータを書き込む又は読み出すためのI/Oコマンドを、データの書込み先又は読出し元のFMチップ21に送信する。つまり、コントローラ11は、FMチップ21に対してデータのI/Oを行う。コントローラ11は、CPU12に制御されて動作する。なお、図1では、コントローラ11とCPU12は別々の構成となっているが、例えば、コントローラ11とCPU12が1つのLSI(Large−scale Integrated Circuit)で構成されてもよい。また、コントローラ11の機能が1以上のCPU12で実現されても良い。
メインメモリ13は、CPU12で実行されるプログラム及びデータを一時的に保持する。メインメモリ13は、例えば、揮発性メモリであるDRAM(Dynamic Random Access Memory)で構成される。したがって、メインメモリ13に保持されたデータは、メインメモリ13に電力が供給されなくなると、消えてしまう。なお、
H−IF14は、ホスト計算機30に接続され、ホスト計算機30とI/Oコマンド等のデータを送受信する。H−IF14は、例えば、SATA(Serial Advanced Technology Attachment)、SAS(Serial Attached SCSI)等のインタフェースである。
キャパシタ17は、ストレージ制御装置10の電源がオンのとき、ストレージ制御装置10の電源(例えば商用電源)からの電力を蓄えておき、ストレージ制御装置10の電源がオフになったとき、蓄えていた電力を放出する。放出された電力は、メインメモリ13上のデータをフラッシュメモリ20に退避させることに使用される。このため、放出された電力は、メインメモリ13やメインメモリ13からデータを退避するデバイス(例えばCPU12)に供給される。
電源検出回路16は、ストレージ制御装置10の電源状態を監視する。そして、電源検出回路16は、ストレージ制御装置10の電源が不意にオフになったとき、キャパシタ17に蓄えられている電力を放出させると共に、コントローラ11に対してストレージ制御装置10の電源が不意にオフになった旨を通知する。
図2は、フラッシュメモリチップの内部構成を示す。
1つのFMチップ21は、1又は2以上のページバッファ41と複数の物理ブロック32から構成される。
ページバッファ41は、ストレージ制御装置10から受けたI/Oコマンドの対象データ(ページ単位で書き込まれる又は読み出されるデータ)を一時的に保持する。そして、ページバッファ41に保持されたデータは、書き込み対象のデータであれば、物理ページ43に書き込まれ、読み出し対象のデータであれば、ストレージ制御装置10に転送される。
物理ブロック42は、複数の物理ページ43によって構成される。FMチップ21は、物理ページ43の単位でデータを書き込み又は読み出し、物理ブロック42の単位でデータを消去する。また、FMチップ21は、物理ページ43に保持されているデータを、別のデータに書き換えることができない。したがって、物理ページ43に保持されているデータを別のデータに書き換えるときは、まず、物理ページ43を含む物理ブロック42全体のデータを消去してから、物理ページ43にデータを書き込む必要がある。FMチップ21の種類によるが、一般的に、物理ページ43のサイズは、2KByte、4KByte、又は8KByte程度であり、物理ブロック42を構成する物理ページ43のページ数は、128個又は256個程度である。
ストレージ制御装置10は、フラッシュメモリ20へのデータの入出力に使用される情報である管理情報を有する。管理情報は、例えば、メインメモリ13の論理アドレスとフラッシュメモリ20の物理アドレスの対応関係を示すテーブルであるデータ論物変換(以下「LPT(Logical Address−Physical Address Translation)」という)テーブルである。そのデータLPTテーブルは、例えば、図3に示す通りに更新される。管理情報は、LPTテーブルに限らない。例えば、管理情報は、論理ボリュームとRAIDグループとの対応関係(どの論理ボリュームがどのRAIDグループに基づいているか)を表す情報、又は、RAIDグループとFMモジュールとの対応関係(どのRAIDグループがどの複数のFMモジュールで構成されているか)を表す情報であってもよい。
図3は、データ論物変換(LPT)テーブルの更新の概要を示す。
データLPTテーブル51は、例えば、ユーザデータ50の論理アドレス52と物理アドレス53の対応関係を保持する。ユーザデータ50は、ホスト計算機30からのI/Oコマンドに従って、フラッシュメモリ20に書き込まれたり、フラッシュメモリ20から読み出されたりするデータである。本実施例は、データLPTテーブル51における更新後部分(論理アドレスとその論理アドレスに対応する更新後の物理アドレスとのセット)をジャーナル75の対象とする。しかし、本発明はこれに限られない。例えば、他のLPTテーブルの更新後部分がジャーナル75の対象とされてもよいし、LPTテーブルではなく一般的なデータ格納先アドレスとデータ値とのセットデータがジャーナル75の対象とされてもよい。
更新情報76は、データLPTテーブル51の更新に関する情報を有し、データLPTテーブル51の更新後部分に相当する。更新情報76は、例えば、論理アドレス52と更新後の物理アドレス53とのセットを有する。更新情報76は、例えば、データLPTテーブル51のトランザクションログである。更新情報76は、データLPTテーブル51が更新されるたびに生成される。なお、更新情報76は、さらに、データLPTテーブル51が更新されたときの時刻である更新時刻を保持してもよい。
ジャーナル75は、1又は複数の更新情報76から構成される。更新情報76が生成されると、ジャーナル75の末尾に追記される。したがって、ジャーナル75は、更新情報76を、古いものから新しいものの順番で保持する。更新情報76は頻繁に生成されるので、ジャーナル75は、アクセス速度の速いメインメモリ13に保持されることが好ましい。
以下、図3を用いて、更新情報76がジャーナル75に追記されるときの具体例を述べる。まず、制御部19が、データLPTテーブル51の論理アドレス52「3」に対応する物理アドレス53を「103」から「003」に更新したとする。このとき、制御部19は、論理アドレス52「3」に対応する物理アドレス53が「003」に変更されたことを示す「3→003」を有する更新情報76aを生成する。そして、制御部19は、生成された更新情報76aを、ジャーナル75の末尾に追記する。
これにより、ジャーナル75には、データLPTテーブル51の更新履歴が保持される。なお、上記のデータLPTテーブル51の更新、更新情報76の生成、及び、更新情報76のジャーナル75への追記は、ストレージ制御装置10の制御部19によって行われる。
図4は、データLPTテーブルを復元するときの一例を示す。
データ論物変換テーブル51とジャーナル75はメインメモリ13に保持される。ベースイメージ60と、ジャーナルリスト70はフラッシュメモリ20に保持される。
メインメモリ13に保持されるジャーナル75は、あるタイミングで、フラッシュメモリ20に保持されるジャーナルリスト70にデステージされる(102)。このとき、ジャーナル75は、ジャーナルリスト70の末尾に追記される。あるタイミングとは、例えば、ジャーナル75が所定のデータ量になったとき、及び/又は、電源オフの処理が開始されたとき等である。なお、デステージとは、メインメモリ13に保持されているデータをフラッシュメモリ20に格納することをいう。
ジャーナルリスト70は、ジャーナル75を更新時刻の順番にリストとして保持する(必ずしも更新時刻の順番で無くても良い)。すなわち、ジャーナルリスト70には、更新情報76が、古いものから新しいものの順番に保持される。ジャーナルリスト70は、フラッシュメモリ20に保持されるので、ストレージシステムの電源がオフされても消去されない。
ベースイメージ60は、ある時刻(これを「第1の時刻」とする)におけるデータLPTテーブル51全体を、フラッシュメモリ20にデステージしたデータである(101)。したがって、第1の時刻におけるデータLPTテーブル51は、ベースイメージ60から復元できる。しかし、時刻毎にデータLPTテーブル51全体をベースイメージ60としてデステージするには、それなりの時間を要する。よって、データLPTテーブル51をベースイメージ60としてデステージしている途中に、ストレージシステムの電源がオフされる可能性がある。この場合、ベースイメージ60のみからはデータLPTテーブル51を復元できない。
そこで、本実施例では、制御部19は、時刻毎にデータLPTテーブル51全体をベースイメージ60としてフラッシュメモリ20にデステージするのではなく、第1の時刻でのデータLPTテーブル51全体をベースイメージ60としてデステージした後は、第1の時刻でのデータLPTテーブル51との差分に相当するジャーナル75をジャーナルリスト70にデステージする。制御部19は、第1の時刻より後に更新されたデータLPTテーブル51を、第1の時刻でのデータLPTテーブル51全体に相当するベースイメージ60と、ジャーナルリスト70内の更新情報76とを用いて復元する。
具体的には、ジャーナルリスト70には、データLPTテーブル51の更新情報76が時系列に保持される。したがって、第1の時刻より後に更新されたデータLPTテーブル51であって或る時刻(以下、復元時刻)でのデータLPTテーブル51を復元したい場合は、制御部19は、第1の時刻でのデータLPTテーブル51全体に相当するベースイメージ60に、各論理アドレスについて、ジャーナルリスト70のうちの、復元時刻より前の時刻であって復元時刻に最も近い時刻に生成された(又は復元時刻に生成された)更新情報76を反映させる。これにより、復元時刻(例えば電源オフ時)におけるデータLPTテーブル51を復元することができる(103)。
図5は、各LPTテーブルとフラッシュメモリとの関係を示す。
ストレージ制御装置10は、データLPTテーブル51の他に、LPTテーブルとして、ジャーナルリストLPTテーブル71と、ベースイメージLPTテーブル61を有する。
データLPTテーブル51は、前述のとおり、フラッシュメモリ20に保持されるユーザデータ50の論理アドレス52と物理アドレス53の対応関係を保持する。例えば、論理アドレス110aが指定されたとき、制御部19は、データLPTテーブル51を参照して、論理アドレス110aに対応する物理アドレス43aを特定し、その物理アドレス43aに保持されているユーザデータ50にアクセスする(111a)。
ジャーナルリストLPTテーブル71は、フラッシュメモリ20に保持されるジャーナルリスト70の論理アドレスと物理アドレスとの対応関係を保持する。例えば、論理アドレス110bが指定されたとき、制御部19は、ジャーナルリストLPTテーブル71を参照して、論理アドレス110bに対応する物理アドレス43bを特定し、その物理アドレス43bに保持されている更新情報76にアクセスする(111b)。
ベースイメージLPTテーブル61は、フラッシュメモリ20に保持されるベースイメージ60の論理アドレスと物理アドレスとの対応関係を保持する。例えば、論理アドレス110cが指定されたとき、制御部19は、ベースイメージLPTテーブル61を参照して、論理アドレス110cに対応する物理アドレス43cを特定し、その物理アドレス43cに保持されているペースイメージ60にアクセスする(111c)。
なお、論理アドレスは、図5に示すように、LPTテーブル51、61、71ごとに独立したアドレス体系であってもよいし、LPTテーブル51、61、71で一連のアドレス体系であってもよい。
図6は、メインメモリ上の論理アドレスとフラッシュメモリ上の物理アドレスの関係の具体例を示す。
例えば、論理アドレス「0」が属する領域に値「A」を書き込む書き込みコマンド(110d)を受けると(121a)、制御部19は、データLPTテーブル51を参照し、論理アドレス「0」に対応する物理アドレス「001」を特定する。そして、制御部19は、フラッシュメモリ20の物理アドレス「001」の物理領域(物理ページ)(43d)に値「A」を書き込む。
また、例えば、論理アドレス「2」が属する領域から値を読み出す読み出しコマンドを受けると、制御部19は、データLPTテーブル51を参照し、論理アドレス「2」に対応する物理アドレス「202」を特定する。そして、制御部19は、フラッシュメモリ20の物理アドレス「202」の物理領域(43e)から値「C」を読み出して(122b)、指示元に返す(122a)。
図7は、メインメモリのデータをフラッシュメモリに退避する場合の動作概要を示す。
メインメモリ13は、データLPTテーブル51と、ベースイメージLPTテーブル61と、ジャーナルリストLPTテーブル71と、各種テーブル81とを保持する。さらに、メインメモリ13は、バッファ中のユーザデータ82とジャーナル75を保持する。
フラッシュメモリ20には、管理領域22とデータ領域23が予め確保される。管理領域22は、例えば、各物理ページ43の冗長領域の集合で良い。データ領域23は、例えば、各物理ページ43のユーザ領域の集合で良い。各物理ページ43は、ユーザデータ50、ジャーナルリスト70、及びベースイメージ60等のデータが格納されるユーザ領域と、その種のデータ以外の情報が格納される冗長領域とで構成されていて良い。それに限らず、例えば、複数の或る物理ブロック42で管理領域22が構成され、複数の別の物理ブロック42でデータ領域23が構成されても良い。
管理領域22には、データ領域23に保持されるデータを管理するための情報が保持される。例えば、管理領域22には、ジャーナルリストLPTテーブル71、及びベースイメージLPTテーブル61、及び各種情報テーブル81等が保持される。情報テーブル81としては、例えば、1以上のFMチップ21と論理ボリューム(例えばホスト計算機30に提供される論理ボリューム)との対応関係を表すテーブルがある。
データ領域23には、各種データが保持される。例えば、データ領域23には、ユーザデータ50、ジャーナルリスト70、及びベースイメージ60等が保持される。データLPTテーブル51のイメージデータであるベースイメージ61を、管理領域22ではなくデータ領域23に保持する理由は、データLPTテーブル51のデータサイズが大きいためである。
以下、図7を用いて、メインメモリ13のデータをフラッシュメモリ20に退避するときの処理の概要を述べる。
ストレージシステム1の電源がオフされると、メインメモリ13に保持されているデータを、フラッシュメモリ20に待避する処理が開始される。
例えば、制御部19は、メインメモリ13に保持されているジャーナルリストLPTテーブル71と、ベースイメージLPTテーブル61と、各情報テーブル81を、フラッシュメモリ20の管理領域22にデステージ(131)する。
制御部19は、メインメモリ13にバッファリングされているユーザデータ82を、データLPTテーブル51を参照して、データ領域23にデステージ(133)される。データ領域23内のユーザデータを「ユーザデータ50」と示している。このとき、制御部19は、データLPTテーブル51を更新した場合は、その更新に関する更新情報76を生成し、その更新情報76をジャーナル75に追記する。
制御部19は、メインメモリ13に保持されているジャーナル75を、データ領域23のジャーナルリスト70にデステージ(134)する。
制御部19は、データLPTテーブル51を、ストレージシステムが電源オンの間、時々に(例えば定期的に)ベースイメージ60としてデータ領域23にデステージ(132)する。このため、制御部19は、データLPTテーブル51を、この電源オフのときにデステージしない。
以上の処理により、ストレージ制御装置10の電源がオフされたとき、メインメモリ13上のデータはフラッシュメモリ20上に退避される。
図8は、フラッシュメモリに退避したデータをメインメモリに復元する場合の動作概要を示す。
ストレージシステムの電源がオフのとき、管理領域22には、ジャーナルリストLPTテーブル71と、ベースイメージLPTテーブル61と、各種情報テーブル81が保持されている。データ領域23には、ベースイメージ60と、ユーザデータ50と、ジャーナルリスト70が保持されている。
ストレージシステム1の電源がオンされたとき、各LPTテーブルは、以下のようにして復元される。
まず、制御部19は、管理領域22から、ジャーナルリストLPTテーブル71と、ベースイメージLPTテーブル61と、各種情報テーブル81を、メインメモリ13上に読み出す(140)。これにより、メインメモリ13上に、ジャーナルリストLPTテーブル71と、ベースイメージLPTテーブル61と、各種情報テーブル81が復元される。
そして、制御部19は、ベースイメージLPTテーブル61を参照することで(138)、データ領域23におけるベースイメージ60の位置を特定し、特定した位置からベースイメージ60をメインメモリ13上に読み出す(135)。これにより、メインメモリ13上にデータLPTテーブル51が復元される。
そして、制御部19は、ジャーナルリストLPTテーブル71を参照することにより(139)、ジャーナルリスト70において更新時刻の古い順に並んだジャーナル75の位置を特定する。制御部19は、特定した位置からジャーナル75を更新時刻の古い順にメインメモリ13上に読み出し、そのジャーナル75に保持される更新情報76を、順次データLPTテーブル51に反映する(137)。
これにより、ベースイメージ60を基に、電源オフ時のデータLPTテーブル51が復元される。
図9は、データLPTテーブルの更新情報を記録する処理のフローチャートの一例を示す。
制御部19は、データLPTテーブル51を更新する(S101)。
制御部19は、その更新後の情報(論理アドレスと、その論理アドレスに対応する更新後の物理アドレスとのセット9を有する更新情報76)を生成し、更新情報76をジャーナル75の末尾に追記する(S102)。
制御部19は、ジャーナル75のデステージが必要か否かを判定する(S103)。例えば、制御部19は、ジャーナル75に保持されている更新情報76の数が、所定の数以上になった場合にデステージすると判断してもよい。または、制御部19は、ジャーナル75をデステージした最近の時刻(或いは、ジャーナル75に更新情報76を追記した最近の時刻)からの時間が所定の時間が経過した場合に、デステージするようにしてもよい。
ジャーナル75のデステージは不要と判断した場合(S103:NO)、制御部19は、当該処理を終了する。
ジャーナル75のデステージが必要と判断した場合(S103:YES)、制御部19は、ジャーナル75を、フラッシュメモリ20内のジャーナルリスト70にデステージする(S104)。
制御部19は、ジャーナルリストLPTテーブル71における、デステージされたジャーナル75に関する情報を、更新する(S105)。
制御部19は、ジャーナルリスト70が更新情報76で満杯か否かを判定する(S106)。例えば、制御部19は、ジャーナルリスト70に保持される更新情報76の数が、所定の数(以下「リスト上限数」という)以上であれば、ジャーナルリスト70が更新情報76で満杯と判定してよい。また、制御部19は、ジャーナルリスト70にジャーナル75をデステージした最近の時刻からの時間が所定の時間を経過していれば、ジャーナルリスト70が更新情報76で満杯と判定してもよい。また、制御部19は、フラッシュメモリ20に対する現在のI/O負荷が所定値より高ければ、ジャーナルリスト70が更新情報76で満杯と判定してよい。
ジャーナルリスト70が満杯でない場合(S106:NO)、制御部19は、当該処理を終了する。
ジャーナルリスト70が満杯の場合(S106:YES)、制御部19は、後述するベースイメージ60更新処理を実行する(S107)。
なお、当該処理(図9に示した一連の処理)は、ストレージシステム1の電源がオンされている間、定期的に(或いは不定期的に)繰り返し実行される。
また、制御部19は、メインメモリ13内のジャーナル75をフラッシュメモリ20内のジャーナルリスト70にデステージすることが完了した場合、ジャーナル75内の全ての更新情報76を消去して良い。これにより、デステージ済みの更新情報76と同じ更新情報76がフラッシュメモリ20にデステージされて、フラッシュメモリ20に重複した更新情報76が記憶されてしまうことを防ぐことができる。もし、ジャーナル75のデステージの際に、ジャーナル75内に、デステージ済みの更新情報76と同じ更新情報76が残っている場合には、その更新情報76についてのみデステージがスキップされても良いし、デステージ済みの更新情報76が格納されている領域の論理アドレスと同じ論理アドレスが指定されてその同じ更新情報76がデステージされても良い。
図10は、ベースイメージ更新処理のフローチャートの一例を示す。本処理は、図9のステップS107に該当する。
制御部19は、データLPTテーブル51を物理ページ43のデータサイズに分割する(S201)。
制御部19は、分割した各データ(以下、図10の説明で「分割データ」と言う)に対してステップS202s〜S202eの間の処理を繰り返し実行する(S202s)。
制御部19は、分割データをフラッシュメモリ20にデステージする(S203)。
制御部19は、ベースイメージLPTテーブル61において、デステージされた分割データに関する情報を更新する(S204)。
制御部19は、全ての分割データに対してステップS203からS204の処理を実行した後(S202e)、当該処理を終了する。
図11は、電源オフ時にメインメモリに保持されているデータをフラッシュメモリに退避する処理のフローチャートの一例を示す。
本処理は、ホスト計算機30から電源オフのコマンドを受けた場合、又は、不意な電源オフ(例えば停電)が発生した場合等に実行される。なお、不意な電源オフが発生した場合は、電源検出回路16に電源オフが検出され、電力がキャパシタ17から制御部19及びメインメモリ13等に一時的に供給される。そして、電源検出回路16から制御部19に電源オフが発生した旨が通知されることで、本処理が実行される。
制御部19は、メインメモリ13に保持されているジャーナル75を、データ領域23にデステージ(退避)する(S301)。
制御部19は、ジャーナルリストLPTテーブル71において、デステージされたジャーナル75に関する情報を更新する(S302)。
制御部19は、ジャーナルリストLPTテーブル71を、管理領域22にデステージ(退避)する(S303)。
制御部19は、ベースイメージLPTテーブル61を、管理領域22にデステージ(退避)する(S304)。
制御部19は、各種情報テーブル81を、管理領域22にデステージ(退避)し(S305)、当該処理を終了する。
図12は、フラッシュメモリに退避したデータを電源オン時にメインメモリに復元する処理のフローチャートの一例を示す。
制御部19は、管理領域22から、ジャーナルリストLPTテーブル71と、ベースイメージLPTテーブル61を、メインメモリ13に復元する(読み出す)(S401)。
制御部19は、ベースイメージLPTテーブル61を参照して、データ領域23からベースイメージ60を読み出して、メインメモリ13上にデータLPTテーブル51を復元する(S402)。
制御部19は、ジャーナルリスト70に含まれるジャーナルの数だけ、ステップS403s〜S403eの間の処理を繰り返す(S403s)。
制御部19は、ジャーナルリストLPTテーブル71を参照して、データ領域23のジャーナルリスト70から、順次、ジャーナル75を読み出して、メインメモリ13に展開する(S404)。
制御部19は、ジャーナル75に含まれる更新情報76の数だけ、ステップS405s〜S405eの間の処理を繰り返す(S405s)。
制御部19は、ジャーナル75から、更新時刻の古い順に更新情報76を抽出し、その更新情報76をベースイメージ60に反映する(S406)。具体的には、その更新情報76が有する物理アドレスが、ベースイメージ60における、その更新情報76が有する論理アドレスと同じ論理アドレスに対応する物理アドレスに、上書きされる。
制御部19は、全ての更新情報76をベースイメージ60に反映した後(S405e、S403e)、当該処理を終了する。
本実施例によれば、ストレージシステム1の電源がオフされた時、データLPTテーブル51を、フラッシュメモリ20にデステージする必要がない。これにより、電源がオフされた時のデステージに要する時間を短縮できる。
すなわち、データLPTテーブル51のデータサイズは、フラッシュメモリ20の容量が大きくなるに従って大きくなる。よって、容量の大きいフラッシュメモリ20において、データLPTテーブル51を全てデステージする場合、長い時間を要する。これと比較して、容量の大きいフラッシュメモリ20において、ジャーナルリストLPTテーブル71と、ベースイメージLPTテーブル61と、バッファリングされているジャーナル75とユーザデータ50とを合計したデータサイズは、データLPTテーブル51のデータサイズよりも小さい。したがって、本実施例によれば、データLPTテーブル51をデステージする場合と比較して、電源がオフされた時のデステージに要する時間を短縮できる。
さらに、本実施例に拠れば、電源がオフされた時のデステージに要する時間を短縮することにより、キャパシタ17の静電容量を小さくできる。
すなわち、不意な電源オフが発生した場合、制御部19は、キャパシタ17から電力の供給を受けてメインメモリ13のデータをフラッシュメモリ20にデステージする必要がある。したがって、キャパシタ17には、少なくともデステージに要する時間を確保可能な静電容量が求められる。本実施例によれば、電源がオフされた時のデステージに要する時間を短縮できるので、その分、キャパシタ17の静電容量も小さくすることができる。
また、本実施例によれば、データLPTテーブル51をフラッシュメモリ20のデータ領域23に保持することができる。これにより、データLPTテーブル51を管理領域22に保持する場合と比較して、フラッシュメモリ20の領域を効率的に利用できる。すなわち、従来のように、データLPTテーブル51を管理領域22に保持する場合、ストレージシステムは、フラッシュメモリ20において、データLPTテーブル51が取り得る最大サイズ以上の管理領域22を予め確保しておく必要がある。そのため、データLPTテーブル51のサイズが小さいときは、フラッシュメモリ20全体の利用効率が低くなってしまう。しかし、本実施例によれば、前述したように、データLPTテーブル51をフラッシュメモリ20のデータ領域23に保持するので、フラッシュメモリ20の領域を効率的に利用できる。
さらに、本実施例によれば、後からフラッシュメモリ20のデータ領域23の容量が拡張され、データLPTテーブル51のサイズが大きくなった場合にも、容易に対応できる。すなわち、従来のように、データLPTテーブル51を管理領域22に保持する場合、ストレージシステムは、予め確保された管理領域22のサイズ以上のデータLPTテーブル51を保持することができず、フラッシュメモリ20のデータ領域23の容量が拡張する場合、それに合わせて管理領域22のサイズを再設定しなければならない。しかし、本実施例によれば、前述したように、データLPTテーブル51をフラッシュメモリ20のデータ領域23に保持するので、データLPTテーブル51のサイズが大きくなっても、管理領域22のサイズを再設定は不要である。
また、本実施例によれば、ジャーナルリスト70、ベースイメージ60、ユーザデータ50、及びデータLPTテーブル51を同じデータ領域23で管理する。これにより、データ領域23全体でウェアレベリングを行うことができるので、フラッシュメモリ20全体の書き換え寿命を長くすることができる。すなわち、サイズの小さい管理領域22における物理ブロック当たりの書き換え頻度は、例えウェアレベリングを行ったとしても、サイズの大きいデータ領域23における物理ブロック当たりの書き換え頻度よりも多くなってしまう。そのため、従来のようにデータLPTテーブル51をサイズの小さい管理領域22に保持する場合、管理領域22の書き換え寿命が、データ領域23の書き換え寿命よりも早く尽きてしまう。すなわち、フラッシュメモリ20全体の書き換え寿命が短くなってしまう。本実施例によれば、前述したように、ジャーナルリスト70、ベースイメージ60、ユーザデータ50、及びデータLPTテーブル51を同じデータ領域23で管理し、故に、データ領域23全体でウェアレベリングを行うことができるので、フラッシュメモリ20全体の書き換え寿命を長くすることができる。
実施例1において、ジャーナルリスト70に保持可能な更新情報76の数(又はデータサイズ)には限りがある。よって、データLPTテーブル51が、ベースイメージ60として完全にデステージされた場合(つまり、データLPTテーブル51のデステージが完了した場合)、そのジャーナルリスト70は、不要となる。なぜなら、データLPTテーブル51とベースイメージ60との間に差分が生じていないからである。このため、そのジャーナルリスト70は、データLPTテーブル51がベースイメージ60として完全にデステージされた場合、削除される。このデステージは、ジャーナルリスト70が満杯になったときに開始される。しかし、実施例1に示すように、ジャーナルリスト70が1つしかない場合、このデステージが行われている間、ジャーナル75をデステージできない。
そこで、本実施例では、フラッシュメモリ20にジャーナルリストを2つ保持する(ジャーナルリストは3以上保持されても良い)。以下、本実施例について説明する。その際、実施例1との相違点を主に説明し、実施例1との共通点については説明を省略或いは簡略する(これは、後の実施例についても同様である)。
図13は、データLPTテーブルを復元するときの変形例を示す。
実施例2に係るストレージシステムは、フラッシュメモリ20に、ベースイメージ60と、第1のジャーナルリスト270aと、第2のジャーナルリスト270bを保持し、メインメモリ13に、データLPTテーブル51を保持する。
まず、データLPTテーブル51のデステージについて説明する。
第1のジャーナルリスト270aが満杯になると、制御部19は、データLPTテーブル51を、ベースイメージ60としてデステージする(142)ことを開始する。そして、制御部19は、それ以降のジャーナル75を、第2のジャーナルリスト270bにデステージ(143)する。つまり、第1のジャーナルリスト270aには、データLPTテーブル51のデステージの開始前までの更新情報76が含まれ、第2のジャーナルリスト270bには、データLPTテーブル51のデステージの開始後からの更新情報76が含まれることになる。
これにより、データLPTテーブル51のデステージ(142)が行われている間も、ジャーナル75をデステージ(143)できる。
次に、データLPTテーブル51の復元について説明する。
ここでは、ベースイメージ60は、薄い網掛け部分144までしかデステージされなかったと仮定する。なお、ベースイメージ60は、どの段階までデステージが完了されたかを示す情報を保持しているとする。
この場合、まず、制御部19は、ベースイメージ60の白色の部分145(データLPTテーブル51のデステージされていない部分に相当する部分)に、第1のジャーナルリスト270aの更新情報76(すなわち、データLPTテーブル51のデステージの開始前までに生成された更新情報76)を反映する。さらに、制御部19は、ベースイメージ60の全体に対して、第2のジャーナルリスト270bの更新情報76(すなわち、データLPTテーブル51のデステージの開始後に生成された更新情報76)を反映させる(141)。これにより、電源がオフされた時のデータLPTテーブル51を復元できる。
本実施例によれば、データLPTテーブル51のデステージが行われている間も、ジャーナル75をジャーナルリストにデステージできる。
以下、実施例3を説明する。なお、実施例3は、実施例1及び実施例2の少なくとも1つに適用できる。
本実施例では、ジャーナルリスト70が保持できる更新情報76の最大数(以下「リスト最大数」という)が設定可能である。実施例1で述べたように、ジャーナルリスト70が満杯になると、データLPTテーブル51は、フラッシュメモリ20にベースイメージ60としてデステージされる。すなわち、リスト最大数を変更すると、データLPTテーブル51がデステージされるタイミングも変更される。リスト最大数は、例えば、ホスト計算機30(或いは、ストレージシステムの管理計算機(図示せず))から設定される。
図14は、ジャーナルリストのリスト最大数を設定変更するときの動作概要を示す。
リスト最大数がMAX152に設定されている場合(リスト最大数が大きい場合)と、リスト最大数がMAX151に設定されている場合(リスト最大値が小さい場合)について比較する。
リスト最大数が大きい場合は、データLPTテーブル51がデステージされる頻度が低くなる。すなわち、フラッシュメモリ20のI/Oに対する負荷が小さい。しかし、ジャーナルリスト70に保持される更新情報76が多いので、復元に要する時間が長くなる。また、ジャーナルリスト70のデータサイズが大きいので、フラッシュメモリ20において使用される領域が大きくなる。
逆に、リスト最大数が小さい場合は、データLPTテーブル51がデステージされる頻度が高くなる。すなわち、フラッシュメモリ20のI/Oに対する負荷が大きい。しかし、ジャーナルリスト70に保持される更新情報76が少ないので、復元に要する時間が短くなる。また、ジャーナルリスト70のデータサイズが小さいので、フラッシュメモリ20において使用される領域が小さくなる。
実施例3は、前述したように、実施例1及び実施例2の少なくとも1つに適用可能である。故に、例えば、第1及び第2のジャーナルリスト270a及び270bのうちの少なくとも1つについて、リスト最大数が変更可能で良い。
以下、実施例4を説明する。なお、実施例4は、実施例1乃至実施例3の少なくとも1つに適用できる。
本実施例では、データLPTテーブル51が複数のテーブルに分割されて管理される。
図15は、データLPTテーブルを分割して管理する例を示す。
制御部19は、データLPTテーブル51を、第1〜第3のデータLPTテーブル51a、51b、51cに分割する。データLPTテーブル51の分割に伴い、ベースイメージ60及びジャーナルリスト70も分割される。すなわち、第1のデータLPTテーブル51aは、第1のベースイメージ60aと、第1のジャーナルリスト70aと対応関係を有する。第2及び第3のデータLPTテーブル51b、51cも、それぞれ同様の対応関係を有する。
これにより、例えば、第1のデータLPTテーブル51aは、第1のベースイメージ60aに第1のジャーナルリスト70aが反映されて復元される。
図16は、第1〜第3のデータLPTテーブルの退避及び復元の一例を示す。
第1〜第3のデータLPTテーブル51a、51b、51cは、それぞれ独立して各第1〜第3のベースイメージ60a、60b、60cに退避される。また、第1〜第3のデータLPTテーブル51a、51b、51cの更新情報76も、それぞれ独立して、第1〜第3のジャーナルリスト70a、70b、70cに追記される。そして、第1〜第3のデータLPTテーブル51a、51b、51cは、それぞれ独立して、第1〜第3のベースイメージ60a、60b、60c及び各ジャーナルリスト70a、70b、70cから復元される。
以下、図16を用いて具体例を示す。第1及び第2のデータLPTテーブル51a、51bは、それぞれ第1及び第2のベースイメージ60a、60bへのデステージ(161a、161b)が完了している。デステージが完了した時点で、第1及び第2のジャーナルリスト70a、70bの更新情報76は、不要となるので消去される。第3のデータLPTテーブル51cは、第3のベースイメージ60cへのデステージ(161c)の途中である。したがって、第3のジャーナルリスト70cには、デステージ開始時刻から現在の時刻までに第3のデータLPTテーブル51cに発生した更新情報76が保持される。
この状態でストレージ制御装置10の電源がオフされ、その後電源がオンされた場合、以下に述べるようにデータを復元できる。
制御部19は、第1及び第2のデータLPTテーブル51a、51bを、それぞれ第1及び第2のベースイメージ60a、60bへのデステージが完了しているので、第1及び第2のベースイメージ60a、60bから復元できる。制御部19は、第3のデータLPTテーブル51cに対応する第3のベースイメージ60cを、デステージの途中であったので、第3のベースイメージ60cのみからは復元できない。制御部19は第3のデータLPTテーブル51cを、第3のベースイメージ60cに、第3のジャーナルリスト70cを反映させることで復元できる。
図17は、第1〜第3のジャーナルリストLPTテーブルを復元する処理のフローチャートの一例を示す。
制御部19は、フラッシュメモリ20の管理領域22から、各ベースイメージLPTテーブル61と、各ジャーナルリストLPTテーブル71を読み出し、メインメモリ13に展開する(S501)。
制御部19は、各ベースイメージ60についてステップS502sからステップS502eの処理を繰り返す(S502s)。例えば、ベースイメージ60a、60b、60cが存在する場合、ベースイメージ60aから順番にステップS502sからS502eを繰り返す。
制御部19は、ベースイメージLPTテーブル61を参照して、ベースイメージ60をメインメモリ13に読み出す(S503)。
制御部19は、ベースイメージ60に付与されているデステージ進捗情報を参照し、ベースイメージ60が完全にデステージされているか否かを判定する(S504)。デステージ進捗情報とは、デステージされる際にベースイメージ60に付与される情報であり、どこまでデステージされたかを示す情報である。
ベースイメージ60が完全にデステージされている場合(S504:YES)、制御部19は、ベースイメージ60のみからデータLPTテーブル51を復元し(S505)、ステップS502eに進む。
ベースイメージ60が完全にはデステージされていない場合(S504:NO)、制御部19は、ベースイメージ60とそれに対応するジャーナルリスト70とからデータLPTテーブル51を復元し(S506)、ステップS502eに進む。
全てのベースイメージ60についてステップS502sからステップS502eの処理が完了したら、当該処理を終了する(S502e)。
図18は、データの復元中にホスト計算機からアクセスを受けた場合の処理概要の一例を示す。
例えば、第1のデータLPTテーブル51aを復元中に(171a)、ホスト計算機30から第3のデータLPTテーブル51cにアクセスされたと仮定する。このとき、制御部19は、ホスト計算機30からアクセスされた第3のデータLPTテーブル51cを優先的に復元する(171c)。さらに、制御部19は、ホスト計算機30からアクセスされた論理アドレスを優先的に復元する。さらに、制御部19は、ホスト計算機30からアクセスされた論理アドレスに関連する更新情報が存在する場合は、それらの更新情報を優先して反映させる。
本実施例によれば、データLPTテーブル51の復元中であっても、ホスト計算機30からのアクセスに応答することができる。また、データLPTテーブル51の復元中であっても、ホスト計算機30からのアクセスにより早く応答を返すことができる。なお、ホスト計算機30のアクセス応答にタイムアウトが設定されている場合は、そのタイムアウトに間に合う時間で復元できるデータサイズに、各ベースイメージ60a、60b、60cを分割することが望ましい。
実施例4は、前述したように、実施例1乃至実施例3の少なくとも1つに適用可能である。このため、例えば、分割により得られたデータLPTテーブル毎に、1つのジャーナルリストに代えて、実施例2で述べたような第1及び第2のジャーナルリストが用意されて良い。そして、それらのジャーナルリストの少なくとも1つについて、リスト最大数が変更可能で良い。
上述した本発明の幾つかの実施例は、本発明の説明のための例示であり、本発明の範囲をそれらの実施例にのみ限定する趣旨ではない。当業者は、本発明の要旨を逸脱することなしに、他の様々な態様で本発明を実施することができる。例えば、ジャーナルは、論理アドレスに対応する更新後の物理アドレスを含むが、それに代えて又は加えて、論理アドレスに対応する更新前の物理アドレスを含んでも良い。
1…ストレージシステム 10…ストレージ制御装置 19…制御部 20…フラッシュメモリ

Claims (8)

  1. 不揮発性記憶媒体を備えるストレージと、
    前記ストレージに対してデータの入出力を行うストレージ制御装置と
    を有し、
    前記ストレージ制御装置は、
    前記ストレージに対するデータの入出力に使用される情報である管理情報を記憶するメモリと、
    前記ストレージへのアクセスを制御する制御部と、
    を有し、
    前記制御部は、
    (A)前記メモリに記憶されている前記管理情報を、ベースイメージとして前記ストレージに蓄積し、
    (B)前記ベースイメージが前記ストレージに蓄積されたとき以降において前記管理情報が更新されたとき、その更新に関する情報を含むジャーナルを生成し、生成した前記ジャーナルを前記メモリに蓄積し、
    (C)前記メモリ内に蓄積した複数の前記ジャーナルから構成されるジャーナル群が所定量を超えた場合、当該ジャーナル群を前記ストレージ内の第1のジャーナルリストにデステージし
    (D)前記第1のジャーナルリストを前記ベースイメージに反映し、
    (E)前記第1のジャーナルリストを前記ベースイメージに反映している間、前記メモリに蓄積した複数の前記ジャーナルから構成されるジャーナル群が所定量を超えた場合、当該ジャーナル群を前記ストレージ内の第2のジャーナルリストにデステージする
    ストレージシステム。
  2. 前記不揮発性記憶媒体は、フラッシュメモリチップであって、
    前記ストレージは、1又は複数の前記フラッシュメモリチップを有するフラッシュメモリであり、
    前記管理情報は、データ論物変換テーブルであって、
    前記データ論物変換テーブルは、前記フラッシュメモリ内の分割された領域に対応付けられている物理アドレスと、前記物理アドレスに対応付けられている論理アドレスとの対応関係を有するテーブルであり、
    前記ジャーナルは、或る領域の論理アドレスと、当該論理アドレスに対応付けられる更新後の物理アドレスとを含む情報である
    ことを特徴とする請求項1記載のストレージシステム。
  3. 前記ストレージシステムは、一次電源と、前記一次電源からの電力の供給が停止したときに前記メモリ及び前記制御部に電力を供給する二次電源をさらに備え、
    前記制御部は、前記一次電源からの電力の供給が停止したとき、前記メモリに前記生成したジャーナルが存在する場合、前記二次電源を用いて、当該ジャーナルを前記ストレージ内の前記第1のジャーナルリストにデステージし、
    前記制御部は、
    (F)前記ストレージに保持されている前記ベースイメージを前記メモリに読み出し、
    (G)前記ストレージ内の前記第1のジャーナルリストに格納されているジャーナルを前記メモリに読み出し、前記メモリ上で前記ベースイメージに反映することにより、前記メモリに前記管理情報を復元する
    ことを特徴とする請求項1記載のストレージシステム。
  4. 前記ストレージシステムは、
    前記第1のジャーナルリストを反映したベースイメージに対して、更に、前記第2のジャーナルリストを反映する
    ことを特徴とする請求項記載のストレージシステム。
  5. 前記()の処理は、前記第1のジャーナルリストに含まれる前記ジャーナルの数が最大数に達したときに実行され、
    前記第1及び第2のジャーナルリストの少なくとも1つについて、前記最大数を変更可能である
    ことを特徴とする請求項記載のストレージシステム。
  6. 前記データ論物変換テーブルは複数のサブテーブルに分割されており、
    前記分割されたサブテーブルごとに、前記ジャーナル群及び前記ベースイメージが対応付けられて前記ストレージに保持されており、
    前記制御部は、
    前記分割された複数のサブテーブルを前記メモリに復元中、前記複数のサブテーブルのいずれか1のサブテーブルに対する使用要求を受けた場合、前記使用要求を受けた1のサブテーブルを優先して復元する
    ことを特徴とする請求項記載のストレージシステム。
  7. 前記ストレージは、データを保持可能なデータ領域と、前記データ領域に保持されるデータを管理する情報を保持可能であり前記データ領域よりも小さい領域である管理領域を備え、
    前記制御部は、
    前記データ領域に、前記ベースイメージと、前記ジャーナル群とを蓄積し、
    前記管理領域に、前記ベースイメージの入出力に使用される情報と前記ジャーナル群の入出力に使用される情報とを蓄積する
    ことを特徴とする請求項記載のストレージシステム。
  8. 不揮発性記憶媒体を備えるストレージに対してデータの入出力を行うストレージ方法であって、
    前記ストレージへのアクセスを制御するストレージ制御装置
    前記ストレージに対するデータの入出力に使用される情報である管理情報を記憶するメモリを有しており
    (A)前記メモリに記憶されている前記管理情報を、ベースイメージとして前記ストレージに蓄積し、
    (B)前記ベースイメージが前記ストレージに蓄積されたとき以降において前記管理情報が更新されたとき、その更新に関する情報を含むジャーナルを生成し、生成した前記ジャーナルを前記メモリに蓄積し、
    (C)前記メモリ内に蓄積した複数の前記ジャーナルから構成されるジャーナル群が所定量を超えた場合、当該ジャーナル群を前記ストレージ内の第1のジャーナルリストにデステージし、
    (D)前記第1のジャーナルリストを前記ベースイメージに反映し、
    (E)前記第1のジャーナルリストを前記ベースイメージに反映している間、前記メモリに蓄積した複数の前記ジャーナルから構成されるジャーナル群が所定量を超えた場合、当該ジャーナル群を前記ストレージ内の第2のジャーナルリストにデステージする
    ストレージ方法。
JP2014514226A 2011-10-05 2011-10-05 ストレージシステム及びストレージ方法 Active JP5808854B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2011/005621 WO2013051062A1 (en) 2011-10-05 2011-10-05 Storage system and storage method

Publications (2)

Publication Number Publication Date
JP2014517412A JP2014517412A (ja) 2014-07-17
JP5808854B2 true JP5808854B2 (ja) 2015-11-10

Family

ID=48042868

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014514226A Active JP5808854B2 (ja) 2011-10-05 2011-10-05 ストレージシステム及びストレージ方法

Country Status (3)

Country Link
US (2) US8972651B2 (ja)
JP (1) JP5808854B2 (ja)
WO (1) WO2013051062A1 (ja)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9081663B2 (en) * 2011-11-18 2015-07-14 Stec, Inc. Optimized garbage collection algorithm to improve solid state drive reliability
US10915256B2 (en) * 2015-02-25 2021-02-09 SK Hynix Inc. Efficient mapping scheme with deterministic power transition times for flash storage devices
JP6739185B2 (ja) 2015-02-26 2020-08-12 株式会社半導体エネルギー研究所 ストレージシステム、およびストレージ制御回路
US9817588B2 (en) * 2015-04-10 2017-11-14 Macronix International Co., Ltd. Memory device and operating method of same
US9904607B2 (en) * 2015-11-13 2018-02-27 International Business Machines Corporation Logical to physical table restoration from stored journal entries
WO2018055686A1 (ja) * 2016-09-21 2018-03-29 株式会社日立製作所 情報処理システム
JP2019008730A (ja) 2017-06-28 2019-01-17 東芝メモリ株式会社 メモリシステム
US11119996B2 (en) * 2019-01-16 2021-09-14 Sqream Technologies Ltd. System and method of bloom filter for big data
TWI695322B (zh) * 2019-01-18 2020-06-01 旺宏電子股份有限公司 記憶體及記憶體操作方法
CN111475345B (zh) * 2019-01-24 2023-03-31 旺宏电子股份有限公司 存储器及存储器操作方法
KR20210000414A (ko) * 2019-06-25 2021-01-05 에스케이하이닉스 주식회사 메모리 시스템
US10990526B1 (en) 2020-04-30 2021-04-27 Micron Technology, Inc. Handling asynchronous power loss in a memory sub-system that programs sequentially
JP7446963B2 (ja) * 2020-09-23 2024-03-11 キオクシア株式会社 メモリシステム及びメモリシステムの制御方法

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2101848A1 (en) * 1991-02-06 1992-08-07 Robert Walsh Disk drive array memory system using nonuniform disk drives
JPH0877074A (ja) 1994-09-09 1996-03-22 Hitachi Ltd フラッシュメモリを用いた記憶装置システム
US5950212A (en) * 1997-04-11 1999-09-07 Oracle Corporation Method and system for workload based group committing for improved performance
JP3845239B2 (ja) 1999-12-21 2006-11-15 日本電気株式会社 ディスクアレイ装置及びディスクアレイ装置における障害復旧方法
US7984316B2 (en) 2004-02-24 2011-07-19 Paul Kaler Solid state disk with hot-swappable components
US8244958B2 (en) * 2005-05-09 2012-08-14 Sandisk Il Ltd. Method and system for facilitating fast wake-up of a flash memory system
US20060294339A1 (en) 2005-06-27 2006-12-28 Trika Sanjeev N Abstracted dynamic addressing
JP4756992B2 (ja) * 2005-10-25 2011-08-24 株式会社日立製作所 ストレージシステム及び記憶制御方法
KR20090042039A (ko) 2007-10-25 2009-04-29 삼성전자주식회사 불휘발성 메모리 장치의 데이터 관리 방법
JP2009157584A (ja) * 2007-12-26 2009-07-16 Hitachi Ltd 計算機システム、ストレージシステム、及びリモートコピー方法
EP2592553B1 (en) * 2008-03-11 2015-11-18 Agere Systems, Inc. Methods and apparatus for storing data in a multi-level cell flash memory device with cross-page sectors, multi-page coding and per-page coding
JP5259257B2 (ja) 2008-05-29 2013-08-07 株式会社日立超エル・エス・アイ・システムズ 記憶装置
JP2010086009A (ja) 2008-09-29 2010-04-15 Hitachi Ltd 記憶装置およびメモリ制御方法
JP2010098403A (ja) 2008-10-15 2010-04-30 Ricoh Co Ltd データ管理装置と画像処理装置
JP5198245B2 (ja) 2008-12-27 2013-05-15 株式会社東芝 メモリシステム
JP5317690B2 (ja) * 2008-12-27 2013-10-16 株式会社東芝 メモリシステム
CN101799783A (zh) 2009-01-19 2010-08-11 中国人民大学 一种数据存储处理方法、查找方法及其装置
JP2009205689A (ja) 2009-05-08 2009-09-10 Oki Electric Ind Co Ltd フラッシュディスク装置
EP2264602A1 (en) 2009-06-17 2010-12-22 Gemalto SA Memory device for managing the recovery of a non volatile memory

Also Published As

Publication number Publication date
US20130091320A1 (en) 2013-04-11
WO2013051062A1 (en) 2013-04-11
US9529537B2 (en) 2016-12-27
US20150127896A1 (en) 2015-05-07
JP2014517412A (ja) 2014-07-17
US8972651B2 (en) 2015-03-03

Similar Documents

Publication Publication Date Title
JP5808854B2 (ja) ストレージシステム及びストレージ方法
JP5489434B2 (ja) フラッシュメモリ搭載ストレージ装置
JP4536785B2 (ja) 情報処理装置、該情報処理装置で行われるデータ記憶を制御する制御部およびデータ記憶の制御方法
JP5525605B2 (ja) フラッシュメモリモジュール
US8230161B2 (en) Data backup method for a flash memory and controller and storage system using the same
JP6017065B2 (ja) ストレージシステム及びキャッシュコントロール方法
KR101269366B1 (ko) 메모리 시스템 및 메모리 시스템의 제어 방법
US9158700B2 (en) Storing cached data in over-provisioned memory in response to power loss
CN101425041B (zh) 在nand flash存储器上建立fat文件系统的优化方法
JP4930555B2 (ja) 制御装置、制御方法およびストレージシステム
US9830257B1 (en) Fast saving of data during power interruption in data storage systems
US10838629B2 (en) Solid state device with fast boot after ungraceful shutdown
TWI406127B (zh) 更新使用者資料的方法
JP2013061799A (ja) 記憶装置、記憶装置の制御方法およびコントローラ
JP2012203443A (ja) メモリシステムおよびメモリシステムの制御方法
TWI473100B (zh) Flash memory system and its operation method
JP2005301591A (ja) 不揮発性メモリを備えた装置及びメモリコントロ−ラ
JP6697410B2 (ja) メモリシステムおよび制御方法
JP2010211734A (ja) 不揮発性メモリを用いた記憶装置
JP4930556B2 (ja) 退避処理装置、退避処理方法およびストレージシステム
JP2011070365A (ja) メモリシステム
JP2019086974A (ja) ストレージシステム及びその制御方法
JP5259257B2 (ja) 記憶装置
JP2022114726A (ja) メモリシステムおよび制御方法
JP2006099802A (ja) 記憶制御装置およびキャッシュメモリの制御方法

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20141110

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20141224

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150219

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150909

R150 Certificate of patent or registration of utility model

Ref document number: 5808854

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150