JP5242264B2 - データ制御装置、ストレージシステムおよびプログラム - Google Patents

データ制御装置、ストレージシステムおよびプログラム Download PDF

Info

Publication number
JP5242264B2
JP5242264B2 JP2008177410A JP2008177410A JP5242264B2 JP 5242264 B2 JP5242264 B2 JP 5242264B2 JP 2008177410 A JP2008177410 A JP 2008177410A JP 2008177410 A JP2008177410 A JP 2008177410A JP 5242264 B2 JP5242264 B2 JP 5242264B2
Authority
JP
Japan
Prior art keywords
data
semiconductor memory
memory device
difference
information
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2008177410A
Other languages
English (en)
Other versions
JP2010015516A (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.)
Toshiba Corp
Original Assignee
Toshiba Corp
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 Toshiba Corp filed Critical Toshiba Corp
Priority to JP2008177410A priority Critical patent/JP5242264B2/ja
Priority to US12/393,654 priority patent/US8069301B2/en
Publication of JP2010015516A publication Critical patent/JP2010015516A/ja
Application granted granted Critical
Publication of JP5242264B2 publication Critical patent/JP5242264B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • G06F11/108Parity data distribution in semiconductor storages, e.g. in SSD
    • 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/7208Multiple device management, e.g. distributing data over multiple flash devices
    • 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/7211Wear leveling

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Memory System (AREA)

Description

本発明は、データ制御装置、ストレージシステムおよびプログラムに関する。
近年、記憶媒体の1つとして、NAND型フラッシュメモリが広く普及しつつある。NAND型フラッシュメモリは、電源供給を停止しても情報が保持可能である不揮発性メモリである。
このようなNAND型フラッシュメモリにおいては、大容量化および高集積化に伴って、書き込んだデータの経年変化や読み出し処理に伴うデータ破損であるリードディスターブの影響が顕著化しており、保存したデータが劣化することにより、記憶したデータを正しく再生できなくなる可能性が高まる、という問題が存在する。経年変化は、時間経過と共に、電荷を蓄積したフローティングゲートから次第に電荷が抜けることでデータに誤りが生じる現象である。また、リードディスターブは、データを読み出したメモリセルに隣接したメモリセルのフローティングゲートに微妙な電荷が蓄えられることによって、記憶したデータに誤りが生じる現象である。
そこで、NAND型フラッシュメモリにおいては、上述のような経年変化とリードディスターブの問題を解決すべく、発生したデータの誤りを訂正する誤り訂正符号(Error Correcting Code)を用いることで正しいデータを復元することが可能になっている。
加えて、NAND型フラッシュメモリにおいては、誤り訂正を行った後で、再びNAND型フラッシュメモリへ書き直すリフレッシュ処理を行うことで、NAND型フラッシュメモリ上へ記憶したデータが完全に破壊されることを防ぎ、データ保持期間を増加させることが可能になっている。
また、NAND型フラッシュメモリにおいては、特定のブロックのみにデータの書き込み/消去が集中するとそのブロックだけ早く寿命を迎えてしまうことから、外部からのアドレス信号をチップ内部的に異なるアドレスに変換して、各ブロックの書き込み/消去回数を平均化するウェアレベリングが行われている。
近年、ハードディスクドライブ(HDD)と同じ接続インタフェース規格(ATA規格)を持つNAND型フラッシュメモリが開発されており、SSD(Solid State Drive)と呼ばれている。このようなSSDは、HDDに比べてデータの読み込み性能に優れるとともに、低消費電力・耐衝撃性を有している。
一方、サーバ環境で使用されるディスクアレイなどのストレージシステムでは、信頼性を向上させるために、非特許文献1に示すような複数の記憶装置を接続したRAID(Redundant Arrays of Independent/Inexpensive Disks)を構成することが多い。例えばRAID5は、パリティと呼ばれる誤り訂正符号の記憶用に割り当てる記憶装置と、データの記憶用に割り当てる記憶装置とを、ストライプ毎に順次変更することにより、ある特定の記憶装置が故障してデータの読み込みができなくなった場合でも、故障した記憶装置に保存していたデータを、その他の記憶装置に保存していたデータから復元することができる。このようなRAID機能を実装するディスクアレイ装置では、耐障害性の向上、大容量化、リード処理の高速化が実現できる。また、読み書き要求を、各記憶装置に対してストライプブロックと呼ばれる単位で要求を分散することにより、各記憶装置の負荷分散を図ることもできる。このような負荷分散を行うことにより、各記憶装置へのアクセスが均一化されると期待される。
そして、上述のようにHDDに代えてSSDで二次記憶装置を構成する場合にも、RAIDを構成することは可能である。
D. Patterson, G. Gibsonand R. Katz. "A Case for Redundant Arrays of Inexpensive Disks (RAID)",Proceedings of the 1988 ACM SIGMOD, pp.109-116, June 1988.
しかしながら、HDDに代えてSSDで二次記憶装置を構成し、かつ、RAIDを構成する場合、SSDにおけるウェアレベリングによる書き込み/消去回数の平滑化が行われるとともに、RAID機能による負荷分散によって、各SSDへの書き込み回数が均一化される可能性が高くなり、複数のSSDが同時期に故障する可能性が高くなってしまうという問題がある。このようにRAIDを構成するSSDが同時期に故障してしまうと、交換保守作業が難しくなるため、データ損失の危険性が生じる。
本発明は、上記に鑑みてなされたものであって、データ損失の危険性を低減させることができるデータ制御装置、ストレージシステムおよびプログラムを提供することを目的とする。
上述した課題を解決し、目的を達成するために、本発明のデータ制御装置は、データと共に、当該データとは別に付加される冗長なデータである誤り訂正符号データを、複数の不揮発性の半導体記憶装置に対してストライプブロック単位で分散させて記録するデータ破損の復元機能に関するものであって、前記データおよび前記誤り訂正符号データの配置情報を記録したマッピング表を管理するマッピング表管理部と、前記各半導体記憶装置に対するデータの書き込み頻度に差をつける必要があるか否かを判断する判断部と、前記判断部により前記各半導体記憶装置に対するデータの書き込み頻度に差をつける必要があると判断した場合、前記各半導体記憶装置に対するデータの書き込み頻度に差をつけるべく、前記マッピング表で管理されている同一の前記ストライプブロック内のデータを入れ替えて前記配置情報を変更する変更処理部と、を備えることを特徴とする。
また、本発明のストレージシステムは、複数の不揮発性の半導体記憶装置と、請求項1ないし8のいずれか一記載のデータ制御装置と、を備えることを特徴とする。
また、本発明のプログラムは、コンピュータを、データと共に、当該データとは別に付加される冗長なデータである誤り訂正符号データを、複数の不揮発性の半導体記憶装置に対してストライプブロック単位で分散させて記録するデータ破損の復元機能に関するものであって、前記データおよび前記誤り訂正符号データの配置情報を記録したマッピング表を管理するマッピング表管理部と、前記各半導体記憶装置に対するデータの書き込み頻度に差をつける必要があるか否かを判断する判断部と、前記判断部により前記各半導体記憶装置に対するデータの書き込み頻度に差をつける必要があると判断した場合、前記各半導体記憶装置に対するデータの書き込み頻度に差をつけるべく、前記マッピング表で管理されている同一の前記ストライプブロック内のデータを入れ替えて前記配置情報を変更する変更処理部と、として機能させることを特徴とする。
本発明によれば、複数の不揮発性の半導体記憶装置に対するデータの書き込み頻度に差をつける必要があると判断した場合、各半導体記憶装置に対するデータの書き込み頻度に差をつけるべく、各半導体記憶装置に対してデータと共に誤り訂正符号データをストライプブロック単位で分散させて記録するデータ破損の復元機能にかかるデータおよび誤り訂正符号データの配置情報を記録したマッピング表で管理されているストライプブロックのデータを入れ替えて配置情報を変更することにより、例えば同一ストライプグループ内では、誤り訂正符号データを書き込むストライプブロック(パリティブロック)の書き込み回数が一番多くなるため、パリティブロックを所望の半導体記憶装置に多く割り当てるようにすれば、各半導体記憶装置に対するデータの書き込み頻度に差がつき、複数の半導体記憶装置が同時期に故障してしまうことを回避させることができるので、データ損失の危険性を低減させることができる、という効果を奏する。
以下に添付図面を参照して、この発明にかかるデータ制御装置、ストレージシステムおよびプログラムの最良な実施の形態を詳細に説明する。なお、本発明は以下の記述に限定されるものではなく、本発明の要旨を逸脱しない範囲において適宜変更可能である。
本発明の実施の一形態を図1ないし図20に基づいて説明する。図1は、本発明の実施の一形態にかかるストレージシステム100の概略構成を示すブロック図である。図1に示すように、ストレージシステム100は、PC(Personal Computer)等のホスト装置10と、データ制御装置であるRAID(Redundant Arrays of Independent/Inexpensive Disks)コントローラ30と、ストレージ装置40とで構成されている。ストレージ装置40は、記憶素子へのアクセス制御を行なうコントローラ20と、不揮発性半導体記憶装置31とを複数組有している。なお、図1においては、コントローラ20と不揮発性半導体記憶装置31とを別体で設けたが、コントローラ20は、不揮発性半導体記憶装置31内にそれぞれ組み込まれるものであっても良い。
ホスト装置10は、RAIDコントローラ30を介してコントローラ20に対してデータの書き込みや読み込みを要求する指示情報を出力する。以下、データの書き込みを要求する指示情報を「書き込み要求」と呼び、データの読み込みを要求する指示情報を「読み込み要求」と呼ぶ。なお、RAIDコントローラ30を介してホスト装置10からコントローラ20に出力される書き込み要求には、少なくとも書き込み対象のデータが含まれているものとし、また、読み込み要求には、読み込み先となる複数の不揮発性半導体記憶装置31のアドレス情報(例えば、LBA:Logical Block Addressing)が含まれているものとする。
不揮発性半導体記憶装置31は、不揮発性半導体素子を利用した記憶媒体であり、例えば、ハードディスクドライブ(HDD)と同じ接続インタフェース規格(ATA規格)を持つNAND型フラッシュメモリ(不揮発性半導体素子)であるSSD(Solid State Drive)などがある。本実施の形態では、SSDを例とするが特に限定されるものではない。
RAIDコントローラ30は、PC等に内蔵される耐障害性・冗長性を持つRAID構成のストレージシステムにおけるデータ復元装置である。RAIDコントローラ30は、複数の不揮発性半導体記憶装置31を、データの破損を回避するRAID技術を用いて管理し、これら複数の不揮発性半導体記憶装置31により論理的に構成される記憶領域に対し、データの書き込みや読み出しをホスト装置10からの要求に応じて実行する。
具体的に、RAIDコントローラ30は、複数の不揮発性半導体記憶装置31をRAID5、6の何れか又はこれらの組み合わせとした構成とすることで、複数の不揮発性半導体記憶装置31の耐障害性・冗長性を実現している。以下、本実施の形態では複数の不揮発性半導体記憶装置31をRAID5の構成とした態様について説明する。
RAID5は、パリティと呼ばれる誤り訂正符号の記憶用に割り当てる記憶装置と、データの記憶用に割り当てる記憶装置とを、ストライプ毎に順次変更するものである。RAID5を実装するディスクアレイ装置では、耐障害性の向上、大容量化、リード処理の高速化が実現できる。
図2は、RAID5で構成された複数の不揮発性半導体記憶装置31の記憶領域を示す模式図である。なお、図2は4台の不揮発性半導体記憶装置31(不揮発性半導体記憶装置311〜314)により構成した例であり、当該複数の不揮発性半導体記憶装置31の記憶領域に記憶された12個のデータA〜Lの状態を示している。
RAID5を構成する不揮発性半導体記憶装置31の記憶領域は、コントローラ20により、データの書き込みまたは読み込みの単位となる複数の論理ブロックに分割される。図2に示した例では、データA〜Lの夫々やパリティP1〜P4の夫々が格納された領域が、1つの論理ブロックを示している。
ここで、パリティP1〜P4は、同一のストライプ領域(0〜3)に属する複数のデータから算出された復元情報であって、この復元情報に基づいて同一のストライプ領域に属するデータを復元することが可能となっている。例えば、パリティP1はストライプ番号0に属するデータA、B、Cから生成されており、このパリティP1を用いることで、データA、B、Cのうち何れか一のデータにエラーが発生した場合、残りのデータとパリティP1とからエラーの発生したデータを復元することができる。なお、データが格納される論理ブロック及びパリティが格納される論理ブロック(以下、パリティ領域という)は、所定のルールに基づき定められているものとするが、その配置位置は図2の例に限定されないものとする。
複数の不揮発性半導体記憶装置31は、RAIDコントローラ30によるRAID管理の下、データを記憶する。なお、不揮発性半導体記憶装置31の個数は、RAIDコントローラ30が使用するRAIDの規約に応じた個数(例えば、RAID5ならば3個以上)であれば特に問わないものとする。
<ストレージ装置40の説明>
次に、図3を参照して、ストレージ装置40の構成および処理について詳細に説明する。図3は、ストレージ装置40の詳細構成を示すブロック図である。ストレージ装置40のコントローラ20は、ASICやCPU等の処理装置、コントローラ20の動作を制御する所定のプログラムが格納されたROMや当該処理装置のワーク領域となるRAM等の記憶装置を備えており(何れも図示せず)、当該処理装置と記憶装置に格納されたプログラムとの協働により、図3に示すように、ホストインタフェース部21、パディング処理部22、コマンド処理部23、ストレージインタフェース部25の各機能部を実現するものとする。
ホストインタフェース部21は、ホスト装置10(RAIDコントローラ30)と接続するためのインタフェース装置であって、ホスト装置10(RAIDコントローラ30)とコントローラ20(コマンド処理部23)との間で行われるコマンドの授受を制御する。
ストレージインタフェース部25は、不揮発性半導体記憶装置31と接続するためのインタフェース装置であって、不揮発性半導体記憶装置31とコントローラ20(コマンド処理部23)との間で行われるデータの授受を制御する。
コマンド処理部23は、ホストインタフェース部21を介して入力されるホスト装置10からの要求に応じた不揮発性半導体記憶装置31に対するデータの書き込みや読み込みを、ストレージインタフェース部25を介して行う。特に、コマンド処理部23は、不揮発性半導体記憶装置31に対するデータの書き込みについては、パディング処理部22のパディング処理後に行う。
パディング処理部22は、SSDである不揮発性半導体記憶装置31を用いる場合に、HDDと同じ接続インタフェース規格(ATA規格)を持つために生じるホスト装置10からのSSDのブロックサイズやページサイズより小さい書き込み要求(セクタサイズ)を(図4参照)、SSDのブロックサイズやページサイズに適合させて、SSDに書き込む処理であるパディング処理を実行する。
図5は、パディング処理を含むデータ書き込み処理の概要を示す模式図である。図5に示すように、ホスト装置10から、SSDである不揮発性半導体記憶装置31に対して、SSDのブロックサイズやページサイズより小さいデータサイズ(セクタサイズ)の書き込み要求が送られると、SSDである不揮発性半導体記憶装置31の内部の作業領域33に書き込み要求のデータを保存するとともに、SSDである不揮発性半導体記憶装置31の書き込み先領域32内の書き込み要求に応じた更新部分を除く未変更部分のデータをパディング用データとして読み込んで作業領域33に書き込み要求のデータとともに保存してパディング処理を完了する(図5の(1))。そして、書き込み先領域32の削除処理を行った後、作業領域33のデータ(書き込み要求のデータおよびパディング用データ)を書き込み先領域32に書き込む(図5の(2))。これにより、ホスト装置10からのSSDのブロックサイズやページサイズより小さい書き込み要求(セクタサイズ)を、SSDのブロックサイズやページサイズに適合させることができる。
SSDを構成する不揮発性半導体素子がNAND型フラッシュメモリの場合、書き込んだデータの経年変化や読み出し処理に伴うデータ破損であるリードディスターブ等の理由により、記憶セル上のデータが破損する可能性がある。一般に、NAND型フラッシュメモリを記録媒体とする記憶装置においては、誤り訂正符号(Error Correcting Code)を用いることで破損したデータから正しいデータを復元することが可能になっている。
<RAIDコントローラ30の説明>
次に、図6を参照して、RAIDコントローラ30の構成および処理について詳細に説明する。図6は、RAIDコントローラ30の詳細構成を示すブロック図である。図6に示すRAIDコントローラ30は、上述したような複数の不揮発性半導体記憶装置31を接続し、ある特定の不揮発性半導体記憶装置31が故障してデータの読み込みができなくなった場合でも、その不揮発性半導体記憶装置31に保存していたデータを、その他の不揮発性半導体記憶装置31に保存していたデータから復元できるような、耐障害性・冗長性を持つRAID構成のストレージシステムにおけるRAIDコントローラを想定している。
RAIDコントローラ30は、ASICやCPU等の処理装置、RAIDコントローラ30の動作を制御する所定のプログラムが格納されたROMや当該処理装置のワーク領域となるRAM等の記憶装置を備えており(何れも図示せず)、当該処理装置と記憶装置に格納されたプログラムとの協働により、図6に示すように、ホストインタフェース部11、コマンド処理部12、マッピング表管理部13、書込頻度管理部14、寿命情報管理部15、マッピング変更処理部16、インタフェース部17の各機能部を実現するものとする。
ホストインタフェース部11は、ホスト装置10からのコマンドを受け付け、また、コマンドに対する応答をホスト装置10に対して返却する。
コマンド処理部12は、ホスト装置10から受け付けたコマンドを処理する。コマンド処理部12は、ホスト装置10から受け付けたコマンドを処理するにあたり、マッピング表管理部13のマッピング情報に基づき、必要なコマンドをそれぞれのストレージ装置40の各不揮発性半導体記憶装置31に発行する。また、コマンド処理部12は、書き込みの実行情報を書込頻度管理部14と、寿命情報管理部15に伝える。
マッピング表管理部13は、ストライプマッピング表を管理する。図7は、ストライプマッピング表の一例を示す模式図である。図7に示すストライプマッピング表の例は、図2のストライプブロックと対応関係を有しているものである。このようなストライプマッピング表は、複数の不揮発性半導体記憶装置31に対してデータと共に誤り訂正符号データをストライプブロック単位で分散させて記録するデータ破損の復元機能にかかるデータおよび誤り訂正符号データの配置情報を記録する。
なお、ストライプマッピング表は、RAIDコントローラ30上の不揮発性記憶領域に保存してもよいし、不揮発性半導体記憶装置31の定められた領域に保存するようにしておいて、ストレージシステム100の起動時にRAIDコントローラ30が読み込むようにしてもよい。
書込頻度管理部14は、それぞれのストライプブロックの書き込み頻度の情報を管理する。例えば、書き込み頻度を算出する指標の一例として、各ストライプブロックに対する書き込み回数が挙げられる。図8は、ストライプブロック単位の書き込み回数計測表の一例を示す模式図である。図8に示すストライプブロック単位の書き込み回数計測表は、書き込み頻度を算出する情報として書き込み回数を採用した場合の書き込み情報表である。図8に示すストライプブロック単位の書き込み回数計測表においては、例えばストライプブロック6の書き込みが、800回発生したことを示している。
このようなストライプブロック単位の書き込み回数計測表は、後述するマッピング変更処理部16におけるストライプブロックの入れ替えの判断材料として利用することができる。計測時点までのアクセスパターンが分かることから、書き込み回数計測表を用いることにより、どのストライプブロックを入れ替えたらどのくらい書き込み頻度が変化するかが分かるようになる。また、書き込み回数が支配的なストライプブロックが分かることから、書き込み回数計測表を用いることにより、どのストライプブロックを入れ替えたらより効率的に書き込み頻度を変化させることができるかが分かるようになる。
ストライプブロック単位の書き込み回数計測表は、上述したストライプマッピング表と同様に、RAIDコントローラ30上の不揮発性記憶領域に保存してもよいし、不揮発性半導体記憶装置31の定められた領域に保存するようにしておいて、ストレージシステム100の起動時にRAIDコントローラ30が読み込むようにしてもよい。
寿命情報管理部15は、各不揮発性半導体記憶装置31の残り寿命の情報を管理する。例えば、残り寿命を算出する指標の一例として、各不揮発性半導体記憶装置31(ドライブ)に対する書き込み回数が挙げられる。図9は、ドライブ毎の書き込み回数計測表の一例を示す模式図である。図9に示す不揮発性半導体記憶装置31(ドライブ)毎の書き込み回数計測表は、残り寿命を算出する情報として書き込み回数を採用した場合の情報表である。図9に示す不揮発性半導体記憶装置31(ドライブ)毎の書き込み回数計測表においては、どの不揮発性半導体記憶装置31(ドライブ)にどのぐらい書き込み回数があるのかを記憶しておくことにより、書き込み頻度の割り当ての判断材料とすることができ、例えば書き込み回数が多いドライブにより多い書き込み頻度を割り当てることができる。
ドライブ毎の書き込み回数計測表は、上述したストライプマッピング表と同様に、RAIDコントローラ30上の不揮発性記憶領域に保存してもよいし、不揮発性半導体記憶装置31の定められた領域に保存するようにしておいて、ストレージシステム100の起動時にRAIDコントローラ30が読み込むようにしてもよい。また、残り寿命を算出するために必要な情報(書き込み回数等)が、各不揮発性半導体記憶装置31のSMART情報等から直接取得できる場合は、RAIDコントローラ30上の不揮発性記憶領域に保存しておく必要はない。
マッピング変更処理部16は、マッピング(配置情報)を変更する処理を行う。マッピング変更処理部16は入れ替え処理部18を有している。入れ替え処理部18は、マッピングを変更する際に、ストライプブロックのデータを入れ替える処理を行う。また、マッピング変更処理部16は判断部19を有している。判断部19は、各不揮発性半導体記憶装置31(ドライブ)に対するデータの書き込み頻度に差をつける必要があるか否かを判断する。
インタフェース部17は、ストレージ装置40のコントローラ20と接続するためのインタフェース装置であって、コントローラ20とRAIDコントローラ30との間で行われるコマンドの授受を制御する。
<RAIDコントローラ30のマッピング変更処理>
次に、RAIDコントローラ30のマッピング変更処理の流れについて説明する。図10は、マッピング変更処理の流れを概略的に示すフローチャートである。図10に示すように、自動または手動による任意のタイミング、定期的に実行されるようなスケジューリング等により、処理が開始されると、マッピング変更処理部16の判断部19は、現在の状態から、
・それぞれの不揮発性半導体記憶装置31の書き込み頻度に差をつける必要があるか
・それぞれの不揮発性半導体記憶装置31の書き込み頻度を平滑化する必要があるか
・そのままの状態でよいか
を判断する(ステップS1)。
なお、現在の状態を判断する指標としては、図9に示すドライブ毎の書き込み回数計測表から判断できる各不揮発性半導体記憶装置31の残り寿命と、図8に示すストライプブロック単位の書き込み回数計測表から算出できる各ストライプブロックの書き込み頻度と、各不揮発性半導体記憶装置31に対する現在の書き込み頻度と、が挙げられる。各不揮発性半導体記憶装置31に対する現在の書き込み頻度は、図7に示すストライプマッピング表と各ストライプブロックの書き込み頻度とから算出できる。
ここで、各不揮発性半導体記憶装置31の書き込み頻度に差をつける必要があると判断する場合は、例えば書き込み限界の手前である閾値内に、複数の不揮発性半導体記憶装置31が存在するような場合である。
マッピング変更処理部16は、各不揮発性半導体記憶装置31の書き込み頻度に差をつける必要があると判断した場合は(ステップS1のA)、ステップS2に進み、各不揮発性半導体記憶装置31の書き込み頻度に差をつける処理を行う。ステップS2の処理の詳細は後述する。
マッピング変更処理部16は、各不揮発性半導体記憶装置31の書き込み頻度を平滑化する必要があると判断した場合は(ステップS1のC)、ステップS3に進み、各不揮発性半導体記憶装置31の書き込み頻度を平滑化する処理を行う。ステップS3の処理の詳細は後述する。
マッピング変更処理部16は、そのままの状態でよいと判断した場合は(ステップS1のB)、特に処理を行わない。
なお、必要に応じて上記処理を繰り返してもよい。
次に、ステップS2の各不揮発性半導体記憶装置31の書き込み頻度に差をつける処理について詳述する。ここで、書き込み頻度に差をつける方法として2つの方法を例示するが、例示する方法だけに限られない。
(第1の書き込み頻度に差をつける方法)
第1の書き込み頻度に差をつける方法としては、書き込み頻度を段階的に差をつける方法がある。図11に示すように、初回設置後(1)、しばらくの間はストライプブロックごとのアクセス回数を計測し(2)、調査結果に基づき、書き込み頻度を段階的に差をつけて(書き込み頻度を傾かせて)、書き込み回数をばらつかせる(3)。その後、書き込み頻度を平滑化し、(必要であれば)平滑状態を維持するように随時調整する(4)。これにより、各不揮発性半導体記憶装置31は、順番に寿命を迎えることになる。
なお、書き込み回数をばらつかせた後、書き込み頻度を平滑化するようにしたのは、不揮発性半導体記憶装置31を交換した後も書き込み回数をばらつかせた状態であると、図12に示すように、将来の交換時期に同程度の寿命のドライブが発生してしまうからである。
また、書き込み頻度を段階的に差をつけるようにしたのは(書き込み頻度を傾かせるようにしたのは)、図13に示すように一極集中で書き込み頻度に差をつけた場合、交換後に同程度の寿命のドライブが顕在化するためである。
(第2の書き込み頻度に差をつける方法)
第2の書き込み頻度に差をつける方法としては、図14に示すように、余命が短い上位2つのドライブの余命差が所定の閾値を下回った場合に(1)、余命が短い上位2つのドライブへの書き込み頻度に差をつける(2)。この場合、余命が短い方により多くの書き込み頻度を割り当てた方が効果的である。
ここで、図15はステップS2の各不揮発性半導体記憶装置31の書き込み頻度に差をつける処理の流れを示すフローチャートである。図15に示すように、マッピング変更処理部16は、書き込み頻度に差をつけるにあたって、どのように差をつけるか、各不揮発性半導体記憶装置31の順位付けを行う(ステップS11)。なお、順位付けの実施方法は、書き込み頻度に差をつける方法により異なる。
次に、マッピング変更処理部16は、書き込み頻度に差をつける方法に応じ、書き込み頻度の目標値に近づけるために、どのストライプブロックを入れ替えればよいかを判定する(ステップS12)。この場合、入れ替え判定結果として、複数のストライプブロックの入れ替えが判定される場合がある。
ところで、ストライプブロック入れ替え判定については、以下に示す制約事項があるため、最適な値になるとは限らない。
RAIDに代表されるストレージシステムでは、ある特定の記憶装置が故障し、データの読み込みができなくなった場合でも、その記憶装置に保存していたデータを、その他の記憶装置に保存していたデータから復元できるように、耐障害性・冗長性を持っている。そのため、ストライプブロックを入れ替えたあとでも、前記冗長性を保っておく必要がある。
図2を例に挙げて説明する。図2に示すように、パリティブロックP1のパリティデータは、A,B,Cのブロックから生成されるため、A,B,C,P1のグループが冗長性を持っている(以降、冗長性を持っているグループをストライプグループと呼ぶ)。また、耐障害性を持つために、それぞれのブロックは独立した半導体記憶装置31(ドライブ)に記録されている。例えば、A,B,C,P1のストライプグループ内で、パリティブロックP1を含む任意の2つのストライプブロックを入れ替えても、それぞれのブロックが独立した半導体記憶装置31(ドライブ)に記録されているため、耐障害性は保持される。したがって、ストライプグループ内でのストライプブロック入れ替えは可能である。
一方、ストライプブロックCとFを入れ替えると、A,B,C,P1のストライプグループと、D,E,F,P2のストライプグループにおいて、それぞれのストライプグループを構成するブロックが独立した半導体記憶装置31(ドライブ)に記録されない状態となるため、耐障害性がなくなってしまうため、データ損失の危険性がある。したがって、ストライプグループをまたがったストライプブロックの入れ替えは不可能である。
つまり、ストライプブロック入れ替え判定についての制約事項としては、耐障害性構成を保持しておくために、同一ストライプグループ内での入れ替えのみを許可している。なお、同一ドライブ上のストライプブロックは入れ替えても良い。
同一ストライプグループ内では、パリティブロックの書き込み回数が一番多くなる。したがって、結果的には、パリティブロックをある不揮発性半導体記憶装置31に多く割り当てることになる。
続いて、マッピング変更処理部16は、ステップS12の判定結果に基づき、入れ替え処理部18にてストライプブロックの入れ替え処理を行う(ステップS13)。入れ替え処理は、図7に示すストライプマッピング表の情報を更新する処理と、ストライプブロックのデータを入れ替える処理の2つがある。入れ替え処理部18における入れ替え処理は、判定結果の数だけ繰り返す。
なお、フローチャートには図示していないが、上記2つのストライプブロック入れ替え処理を行う際には、排他制御を行い、たとえば同時刻にコマンド処理部12による処理が開始された場合の整合性を取る必要がある。
ここで、ストライプブロックのデータの入れ替え処理の具体例を説明する。なお、ストライプブロックのデータ入れ替え方法は例示する方法だけに限らない。また、入れ替え対象は、ストライプグループ内のストライプブロックなので、ストライプブロック内のパリティデータを更新する必要はない。
(第1のストライプブロックのデータの入れ替え処理)
第1のストライプブロックのデータの入れ替え処理としては、スワップ領域を用いる方法がある。図16はスワップ領域を用いる入れ替え処理の流れを示すフローチャート、図17はその模式図である。図16に示すように、入れ替え処理部18は、まず、入れ替える2つのストライプブロックの領域のうち、どちらか一方を領域1、他方を領域2とする(ステップS21)。
次いで、入れ替え処理部18は、図17の(1)に示すように、領域1のデータをスワップ領域にコピーした後(ステップS22)、図17の(2)に示すように、領域2のデータを領域1にコピーする(ステップS23)。
最後に、入れ替え処理部18は、図17の(3)に示すように、スワップ領域にコピーしたデータを領域2にコピーする(ステップS24)。
(第2のストライプブロックのデータの入れ替え処理)
第2のストライプブロックのデータの入れ替え処理としては、RAIDの復元機能を用いる方法がある。図18はRAIDの復元機能を用いる入れ替え処理の流れを示すフローチャート、図19はその模式図である。図18に示すように、入れ替え処理部18は、まず、入れ替える2つのストライプブロックの領域のうち、どちらか一方を領域1、他方を領域2とする(ステップS31)。
次いで、入れ替え処理部18は、図19の(1)に示すように、領域1のデータを領域2にコピーした後(ステップS32)、図19の(2)に示すように、領域1を無効領域とみなし(ステップS33)、図19の(3)に示すように、RAIDコントローラ30が有しているRAIDの復元機能を用いて領域1のデータを復元する(ステップS34)。復元されたデータは、もともと領域2にあったデータと同一になる。
最後に、入れ替え処理部18は、図19の(4)に示すように、復元されたデータを領域1にコピーする(ステップS35)。
次に、ステップS3の各不揮発性半導体記憶装置31の書き込み頻度を平滑化する処理について詳述する。
ここで、図20はステップS3の各不揮発性半導体記憶装置31の書き込み頻度を平滑化する処理の流れを示すフローチャートである。図20に示すように、マッピング変更処理部16は、全ての不揮発性半導体記憶装置31の書き込み頻度が同程度になるためには、どのストライプブロックを入れ替えればよいかを判定する(ステップS41)。この場合、入れ替え判定結果として、複数のストライプブロックの入れ替えが判定される場合がある。なお、ストライプブロック入れ替え判定については、前述したような制約事項があるため、最適な値になるとは限らない。
続いて、マッピング変更処理部16は、ステップS41の判定結果に基づき、入れ替え処理部18にてストライプブロックの入れ替え処理を行う(ステップS42)。前述した書き込み頻度に差をつける処理のときと同様に、入れ替え処理は、図7に示すストライプマッピング表の情報を更新する処理と、ストライプブロックのデータを入れ替える処理の2つがある。入れ替え処理部18における入れ替え処理は、判定結果の数だけ繰り返す。ストライプブロックのデータの入れ替え処理については、前述したので、ここでの説明は、省略する。
このように本実施の形態によれば、複数の不揮発性の半導体記憶装置31に対するデータの書き込み頻度に差をつける必要があると判断した場合、各半導体記憶装置31に対するデータの書き込み頻度に差をつけるべく、各半導体記憶装置31に対してデータと共に誤り訂正符号データをストライプブロック単位で分散させて記録するデータ破損の復元機能にかかるデータおよび誤り訂正符号データの配置情報を記録したマッピング表で管理されているストライプブロックのデータを入れ替えて配置情報を変更することにより、例えば同一ストライプグループ内では、誤り訂正符号データを書き込むストライプブロック(パリティブロック)の書き込み回数が一番多くなるため、パリティブロックを所望の半導体記憶装置31に多く割り当てるようにすれば、各半導体記憶装置31に対するデータの書き込み頻度に差がつき、複数の半導体記憶装置31が同時期に故障してしまうことを回避させることができるので、データ損失の危険性を低減させることができる。
なお、本実施の形態においては、書込頻度管理部14で管理する書き込み頻度を算出する情報として、図8に示すストライプブロック単位の書き込み回数を一例としてあげた。ストレージシステムコントローラ(RAIDコントローラ30)にはキャッシュメモリが搭載されていることが多く、キャッシュメモリにはアクセス頻度が高いストライプブロックの内容がキャッシュされていると考えることができる。したがって、図8に示したように書き込み回数を実際に計測するよりも精度が落ちる可能性があるものの、キャッシュの情報を参照することにより、ストライプブロック単位の書き込み頻度を算出することができる。また、当該情報はキャッシュメモリ上にあるため、書込頻度管理部14が、図8に示すようなストライプブロック単位の書き込み回数計測表を持っていなくてもよい。
また、本実施の形態においては、寿命情報管理部15で管理する寿命情報を算出する情報として、図9に示す不揮発性半導体記憶装置31(ドライブ)の書き込み回数を一例としてあげた。このほかにも、不揮発性半導体記憶装置31(ドライブ)から書き込み可能残り回数の情報が取得できる場合は、その情報を利用してもよい。前述したように、残り寿命を算出するために必要な情報が、不揮発性半導体記憶装置31(ドライブ)から直接取得できる場合は、寿命情報表を持っていなくてもよい。
また、不揮発性半導体記憶装置31(ドライブ)毎の書き込み可能上限回数の情報が取得できる場合は、不揮発性半導体記憶装置31(ドライブ)ごとの書き込み回数を計測することで、書き換え可能な残り回数を算出することができるため、これが寿命情報となる。この場合、不揮発性半導体記憶装置31(ドライブ)ごとの書き込み可能上限回数は、手動で入力してもよいし、自動的に情報を取得して入力できるようにしてもよい。
なお、本実施の形態においては、データ制御装置としてRAID構成のストレージシステムにおけるRAIDコントローラ30を想定しているが、専用のストレージシステムではなく、そのような機能を持ったコンピュータシステムでもよい。
本発明の実施の一形態にかかるストレージシステムの概略構成を示すブロック図である。 RAID5で構成された複数の不揮発性半導体記憶装置の記憶領域を示す模式図である。 ストレージ装置の詳細構成を示すブロック図である。 書き込み要求のサイズを示す模式図である。 パディング処理を含むデータ書き込み処理の概要を示す模式図である。 RAIDコントローラの詳細構成を示すブロック図である。 ストライプマッピング表の一例を示す模式図である。 ストライプブロック単位の書き込み回数計測表の一例を示す模式図である。 ドライブ毎の書き込み回数計測表の一例を示す模式図である。 マッピング変更処理の流れを概略的に示すフローチャートである。 第1の書き込み頻度に差をつける方法を示す模式図である。 半導体記憶装置毎の書き込み頻度を段階的に差をつける理由を示す模式図である。 半導体記憶装置毎の書き込み頻度を段階的に差をつける理由を示す模式図である。 第2の書き込み頻度に差をつける方法を示す模式図である。 半導体記憶装置の書き込み頻度に差をつける処理の流れを示すフローチャートである。 スワップ領域を用いる入れ替え処理の流れを示すフローチャートである。 その模式図である。 RAIDの復元機能を用いる入れ替え処理の流れを示すフローチャートである。 その模式図である。 半導体記憶装置の書き込み頻度を平滑化する処理の流れを示すフローチャートである。
符号の説明
13 マッピング表管理部
14 書込頻度管理部
15 寿命情報管理部
16 変更処理部
19 判断部
30 データ制御装置
31 半導体記憶装置
100 ストレージシステム

Claims (10)

  1. データと共に、当該データとは別に付加される冗長なデータである誤り訂正符号データを、複数の不揮発性の半導体記憶装置に対してストライプブロック単位で分散させて記録するデータ破損の復元機能に関するものであって、前記データおよび前記誤り訂正符号データの配置情報を記録したマッピング表を管理するマッピング表管理部と、
    前記各半導体記憶装置に対するデータの書き込み頻度に差をつける必要があるか否かを判断する判断部と、
    前記判断部により前記各半導体記憶装置に対するデータの書き込み頻度に差をつける必要があると判断した場合、前記各半導体記憶装置に対するデータの書き込み頻度に差をつけるべく、前記マッピング表で管理されている同一の前記ストライプブロック内のデータを入れ替えて前記配置情報を変更する変更処理部と、
    を備えることを特徴とするデータ制御装置。
  2. 前記ストライプブロック毎の書き込み頻度の情報を管理する書込頻度管理部と、
    前記各半導体記憶装置の残り寿命の情報を管理する寿命情報管理部と、
    を備え、
    前記判断部は、前記ストライプブロック毎の前記書き込み頻度の情報と、前記各半導体記憶装置の前記残り寿命の情報と、前記マッピング表および前記ストライプブロック毎の前記書き込み頻度の情報から算出できる前記各半導体記憶装置に対する書き込み頻度の情報とに応じて、前記各半導体記憶装置に対するデータの書き込み頻度に差をつける必要があるか否かを判断する、
    ことを特徴とする請求項1記載のデータ制御装置。
  3. 前記変更処理部は、前記各半導体記憶装置に対するデータの書き込み頻度について段階的に差がつくように、前記マッピング表で管理されている同一の前記ストライプブロック内のデータを入れ替えて前記配置情報を変更するとともに、同一の前記ストライプブロック内のデータを入れ替える、
    ことを特徴とする請求項1記載のデータ制御装置。
  4. 前記変更処理部は、前記各半導体記憶装置に対するデータの書き込み頻度に差をつけた後、一定期間が経過した場合に、前記各半導体記憶装置に対するデータの書き込み頻度が平滑化するように、前記マッピング表で管理されている同一の前記ストライプブロック内のデータを入れ替えて前記配置情報を変更する、
    ことを特徴とする請求項3記載のデータ制御装置。
  5. 前記変更処理部は、余命が短い上位2つの前記半導体記憶装置の余命差が所定の閾値を下回った場合に、余命が短い上位2つの前記半導体記憶装置への書き込み頻度に差がつくように、前記マッピング表で管理されている同一の前記ストライプブロック内のデータを入れ替えて前記配置情報を変更する、
    ことを特徴とする請求項1記載のデータ制御装置。
  6. 前記変更処理部は、余命が短い前記半導体記憶装置により多くの書き込み頻度を割り当てる、
    ことを特徴とする請求項5記載のデータ制御装置。
  7. 前記変更処理部は、同一の前記ストライプブロック内のデータの入れ替えに、スワップ領域を用いる、
    ことを特徴とする請求項1記載のデータ制御装置。
  8. 前記変更処理部は、同一の前記ストライプブロック内のデータの入れ替えに、RAID(Redundant Arrays of Independent/Inexpensive Disks)の復元機能を用いる、
    ことを特徴とする請求項1記載のデータ制御装置。
  9. 複数の不揮発性の半導体記憶装置と、
    請求項1ないし8のいずれか一記載のデータ制御装置と、
    を備えることを特徴とするストレージシステム。
  10. コンピュータを、
    データと共に、当該データとは別に付加される冗長なデータである誤り訂正符号データを、複数の不揮発性の半導体記憶装置に対してストライプブロック単位で分散させて記録するデータ破損の復元機能に関するものであって、前記データおよび前記誤り訂正符号データの配置情報を記録したマッピング表を管理するマッピング表管理部と、
    前記各半導体記憶装置に対するデータの書き込み頻度に差をつける必要があるか否かを判断する判断部と、
    前記判断部により前記各半導体記憶装置に対するデータの書き込み頻度に差をつける必要があると判断した場合、前記各半導体記憶装置に対するデータの書き込み頻度に差をつけるべく、前記マッピング表で管理されている同一の前記ストライプブロック内のデータを入れ替えて前記配置情報を変更する変更処理部と、
    として機能させることを特徴とするプログラム。
JP2008177410A 2008-07-07 2008-07-07 データ制御装置、ストレージシステムおよびプログラム Expired - Fee Related JP5242264B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2008177410A JP5242264B2 (ja) 2008-07-07 2008-07-07 データ制御装置、ストレージシステムおよびプログラム
US12/393,654 US8069301B2 (en) 2008-07-07 2009-02-26 Apparatus, storage system, and computer program product for prevention of data loss

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008177410A JP5242264B2 (ja) 2008-07-07 2008-07-07 データ制御装置、ストレージシステムおよびプログラム

Publications (2)

Publication Number Publication Date
JP2010015516A JP2010015516A (ja) 2010-01-21
JP5242264B2 true JP5242264B2 (ja) 2013-07-24

Family

ID=41465221

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008177410A Expired - Fee Related JP5242264B2 (ja) 2008-07-07 2008-07-07 データ制御装置、ストレージシステムおよびプログラム

Country Status (2)

Country Link
US (1) US8069301B2 (ja)
JP (1) JP5242264B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9208863B1 (en) 2014-05-19 2015-12-08 Kabushiki Kaisha Toshiba Memory system and method of controlling memory system

Families Citing this family (92)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8935302B2 (en) 2006-12-06 2015-01-13 Intelligent Intellectual Property Holdings 2 Llc Apparatus, system, and method for data block usage information synchronization for a non-volatile storage volume
US8489817B2 (en) 2007-12-06 2013-07-16 Fusion-Io, Inc. Apparatus, system, and method for caching data
KR101490327B1 (ko) 2006-12-06 2015-02-05 퓨전-아이오, 인크. 뱅크 인터리브를 이용한 솔리드-스테이트 스토리지의 명령 관리 장치, 시스템 및 방법
JP4564520B2 (ja) 2007-08-31 2010-10-20 株式会社東芝 半導体記憶装置およびその制御方法
US7836226B2 (en) 2007-12-06 2010-11-16 Fusion-Io, Inc. Apparatus, system, and method for coordinating storage requests in a multi-processor/multi-thread environment
US9519540B2 (en) 2007-12-06 2016-12-13 Sandisk Technologies Llc Apparatus, system, and method for destaging cached data
KR101038167B1 (ko) 2008-09-09 2011-05-31 가부시끼가이샤 도시바 프로세서로부터 메모리로의 액세스를 관리하는 메모리 관리 장치를 포함하는 정보 처리 장치 및 메모리 관리 방법
JP5268710B2 (ja) * 2009-02-27 2013-08-21 株式会社東芝 半導体記憶装置
JP2012505441A (ja) * 2009-03-24 2012-03-01 株式会社日立製作所 ストレージ装置およびそのデータ制御方法
US8166232B2 (en) * 2009-04-02 2012-04-24 Hitachi, Ltd. Metrics and management for flash memory storage life
US8639877B2 (en) * 2009-06-30 2014-01-28 International Business Machines Corporation Wear leveling of solid state disks distributed in a plurality of redundant array of independent disk ranks
JP2011186553A (ja) * 2010-03-04 2011-09-22 Toshiba Corp メモリ管理装置
US7941696B2 (en) * 2009-08-11 2011-05-10 Texas Memory Systems, Inc. Flash-based memory system with static or variable length page stripes including data protection information and auxiliary protection stripes
US8930622B2 (en) 2009-08-11 2015-01-06 International Business Machines Corporation Multi-level data protection for flash memory system
US8176284B2 (en) * 2009-08-11 2012-05-08 Texas Memory Systems, Inc. FLASH-based memory system with variable length page stripes including data protection information
US7818525B1 (en) * 2009-08-12 2010-10-19 Texas Memory Systems, Inc. Efficient reduction of read disturb errors in NAND FLASH memory
US8189379B2 (en) 2009-08-12 2012-05-29 Texas Memory Systems, Inc. Reduction of read disturb errors in NAND FLASH memory
JP5999645B2 (ja) 2009-09-08 2016-10-05 ロンギチュード エンタープライズ フラッシュ エスエイアールエル ソリッドステート記憶デバイス上にデータをキャッシングするための装置、システム、および方法
US9223514B2 (en) 2009-09-09 2015-12-29 SanDisk Technologies, Inc. Erase suspend/resume for memory
EP2476039B1 (en) 2009-09-09 2016-10-26 SanDisk Technologies LLC Apparatus, system, and method for power reduction management in a storage device
US8601222B2 (en) 2010-05-13 2013-12-03 Fusion-Io, Inc. Apparatus, system, and method for conditional and atomic storage operations
US9122579B2 (en) 2010-01-06 2015-09-01 Intelligent Intellectual Property Holdings 2 Llc Apparatus, system, and method for a storage layer
EP2476079A4 (en) * 2009-09-09 2013-07-03 Fusion Io Inc APPARATUS, SYSTEM, AND METHOD FOR STORAGE ALLOCATION
US8234520B2 (en) 2009-09-16 2012-07-31 International Business Machines Corporation Wear leveling of solid state disks based on usage information of data and parity received from a raid controller
JP5066209B2 (ja) 2010-03-18 2012-11-07 株式会社東芝 コントローラ、データ記憶装置、及びプログラム
US8725934B2 (en) 2011-12-22 2014-05-13 Fusion-Io, Inc. Methods and appratuses for atomic storage operations
US10013354B2 (en) 2010-07-28 2018-07-03 Sandisk Technologies Llc Apparatus, system, and method for atomic storage operations
US8984216B2 (en) 2010-09-09 2015-03-17 Fusion-Io, Llc Apparatus, system, and method for managing lifetime of a storage device
JP2012079100A (ja) * 2010-10-01 2012-04-19 Canon Inc ディスク制御装置及びディスク制御方法、並びにプログラム
US9003153B2 (en) * 2010-11-08 2015-04-07 Greenliant Llc Method of storing blocks of data in a plurality of memory devices in a redundant manner, a memory controller and a memory system
CN103262054B (zh) 2010-12-13 2015-11-25 桑迪士克科技股份有限公司 用于自动提交存储器的装置、系统和方法
US9047178B2 (en) 2010-12-13 2015-06-02 SanDisk Technologies, Inc. Auto-commit memory synchronization
US9218278B2 (en) 2010-12-13 2015-12-22 SanDisk Technologies, Inc. Auto-commit memory
US9208071B2 (en) 2010-12-13 2015-12-08 SanDisk Technologies, Inc. Apparatus, system, and method for accessing memory
US10817502B2 (en) 2010-12-13 2020-10-27 Sandisk Technologies Llc Persistent memory management
US10817421B2 (en) 2010-12-13 2020-10-27 Sandisk Technologies Llc Persistent data structures
WO2012083308A2 (en) 2010-12-17 2012-06-21 Fusion-Io, Inc. Apparatus, system, and method for persistent data management on a non-volatile storage media
US9213594B2 (en) 2011-01-19 2015-12-15 Intelligent Intellectual Property Holdings 2 Llc Apparatus, system, and method for managing out-of-service conditions
US9003104B2 (en) 2011-02-15 2015-04-07 Intelligent Intellectual Property Holdings 2 Llc Systems and methods for a file-level cache
US9201677B2 (en) 2011-05-23 2015-12-01 Intelligent Intellectual Property Holdings 2 Llc Managing data input/output operations
US8874823B2 (en) 2011-02-15 2014-10-28 Intellectual Property Holdings 2 Llc Systems and methods for managing data input/output operations
WO2012116369A2 (en) 2011-02-25 2012-08-30 Fusion-Io, Inc. Apparatus, system, and method for managing contents of a cache
US9563555B2 (en) 2011-03-18 2017-02-07 Sandisk Technologies Llc Systems and methods for storage allocation
WO2012129191A2 (en) 2011-03-18 2012-09-27 Fusion-Io, Inc. Logical interfaces for contextual storage
WO2012132408A1 (ja) * 2011-03-31 2012-10-04 パナソニック株式会社 アレイ管理装置、アレイ管理方法、コンピュータプログラム、集積回路
JP5215434B2 (ja) * 2011-05-18 2013-06-19 株式会社東芝 複数の不揮発性メモリを備えたストレージ装置、ストレージコントローラ及び論理ディスク生成方法
JP5524279B2 (ja) 2011-09-13 2014-06-18 株式会社東芝 情報処理装置および情報処理方法
JP2013077209A (ja) * 2011-09-30 2013-04-25 Nintendo Co Ltd プログラム、情報処理システム、情報処理装置、および情報処理方法
US9274937B2 (en) 2011-12-22 2016-03-01 Longitude Enterprise Flash S.A.R.L. Systems, methods, and interfaces for vector input/output operations
US9251086B2 (en) 2012-01-24 2016-02-02 SanDisk Technologies, Inc. Apparatus, system, and method for managing a cache
US10359972B2 (en) 2012-08-31 2019-07-23 Sandisk Technologies Llc Systems, methods, and interfaces for adaptive persistence
US9116812B2 (en) 2012-01-27 2015-08-25 Intelligent Intellectual Property Holdings 2 Llc Systems and methods for a de-duplication cache
CN104115109A (zh) * 2012-02-08 2014-10-22 株式会社日立制作所 具有多个非易失性半导体存储单元的存储装置及其用于在具有较高残留寿命长度的存储单元中放置热数据而在具有较低残留寿命长度的存储单元中放置冷数据的控制方法
JP5601480B2 (ja) * 2012-03-28 2014-10-08 日本電気株式会社 ストレージ装置及びストレージ装置のデータ保存装置交換方法
JPWO2013175540A1 (ja) * 2012-05-25 2016-01-12 株式会社日立製作所 情報処理システム
US9612966B2 (en) 2012-07-03 2017-04-04 Sandisk Technologies Llc Systems, methods and apparatus for a virtual machine cache
US10339056B2 (en) 2012-07-03 2019-07-02 Sandisk Technologies Llc Systems, methods and apparatus for cache transfers
WO2014041638A1 (ja) * 2012-09-12 2014-03-20 株式会社 東芝 アレイにおける誤り訂正符号ブロック配置位置を管理するストレージ装置、ストレージコントローラ及び方法
US10509776B2 (en) 2012-09-24 2019-12-17 Sandisk Technologies Llc Time sequence data management
US10318495B2 (en) 2012-09-24 2019-06-11 Sandisk Technologies Llc Snapshots for a non-volatile device
JP5550741B1 (ja) * 2012-09-25 2014-07-16 株式会社東芝 ソリッドステートドライブにデータを再配置するストレージ装置、ストレージコントローラ及び方法
US9842053B2 (en) 2013-03-15 2017-12-12 Sandisk Technologies Llc Systems and methods for persistent cache logging
US10558561B2 (en) 2013-04-16 2020-02-11 Sandisk Technologies Llc Systems and methods for storage metadata management
US10102144B2 (en) 2013-04-16 2018-10-16 Sandisk Technologies Llc Systems, methods and interfaces for data virtualization
GB2514354A (en) 2013-05-20 2014-11-26 Ibm Managing storage devices having a lifetime of a finite number of operations
EP3905052A1 (en) 2013-06-29 2021-11-03 Huawei Technologies Co., Ltd. Method, apparatus, and controller for managing storage array
US9842128B2 (en) 2013-08-01 2017-12-12 Sandisk Technologies Llc Systems and methods for atomic storage operations
US8990523B1 (en) 2013-09-02 2015-03-24 Hitachi, Ltd. Storage apparatus and its data processing method
CN104662518B (zh) * 2013-09-24 2016-05-25 华为技术有限公司 数据迁移方法、数据迁移装置和存储设备
JP6225603B2 (ja) * 2013-09-25 2017-11-08 日本電気株式会社 ストレージシステムおよびストレージシステムの制御方法
JP6209926B2 (ja) * 2013-10-09 2017-10-11 富士通株式会社 ストレージ制御装置、およびストレージ装置の制御プログラム
US10019320B2 (en) 2013-10-18 2018-07-10 Sandisk Technologies Llc Systems and methods for distributed atomic storage operations
EP2953025B1 (en) * 2013-10-18 2017-01-25 Hitachi Ltd. Target-driven independent data integrity and redundancy recovery in a shared-nothing distributed storage system
US10073630B2 (en) 2013-11-08 2018-09-11 Sandisk Technologies Llc Systems and methods for log coordination
JP6399755B2 (ja) * 2014-01-06 2018-10-03 キヤノン株式会社 ミラーリング装置及びその制御方法
CN104866428B (zh) * 2014-02-21 2018-08-31 联想(北京)有限公司 数据存取方法和数据存取装置
JP5855150B2 (ja) * 2014-03-06 2016-02-09 ウィンボンド エレクトロニクス コーポレーション 半導体記憶装置
JP6331773B2 (ja) * 2014-06-30 2018-05-30 富士通株式会社 ストレージ制御装置、およびストレージ制御プログラム
JP6476959B2 (ja) * 2015-02-13 2019-03-06 富士通株式会社 ストレージ制御装置、ストレージシステム、および制御プログラム
US9946607B2 (en) 2015-03-04 2018-04-17 Sandisk Technologies Llc Systems and methods for storage error management
US9766837B2 (en) 2015-06-10 2017-09-19 Micron Technology, Inc. Stripe mapping in memory
US10235057B2 (en) 2015-09-04 2019-03-19 Western Digital Technologies, Inc. Operating parameters for flash memory devices
JP6565560B2 (ja) * 2015-10-01 2019-08-28 富士通株式会社 ストレージ制御装置、及び制御プログラム
US10579540B2 (en) * 2016-01-29 2020-03-03 Netapp, Inc. Raid data migration through stripe swapping
KR102527992B1 (ko) 2016-03-14 2023-05-03 삼성전자주식회사 데이터 저장 장치와 이를 포함하는 데이터 처리 시스템
JP6707939B2 (ja) 2016-03-25 2020-06-10 日本電気株式会社 制御装置、ストレージ装置、制御方法及びプログラム
JP6163588B2 (ja) * 2016-05-11 2017-07-12 株式会社日立製作所 ストレージシステム
CN107025066A (zh) 2016-09-14 2017-08-08 阿里巴巴集团控股有限公司 在基于闪存的存储介质中写入存储数据的方法和装置
KR102139826B1 (ko) * 2018-12-27 2020-07-31 한양대학교 산학협력단 플래시 메모리 저장장치 저장 장치 및 그 구동 방법
JP7003169B2 (ja) * 2020-03-24 2022-01-20 株式会社日立製作所 ストレージシステム及びストレージシステムのssdの交換方法
CN113934360B (zh) * 2020-06-29 2024-04-12 戴尔产品有限公司 多存储设备生命周期管理系统
KR20220068831A (ko) * 2020-11-19 2022-05-26 에스케이하이닉스 주식회사 컨트롤러 및 그 동작 방법

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3907723B2 (ja) * 1995-08-30 2007-04-18 東芝電池株式会社 電池パック
JPH10269032A (ja) * 1997-03-28 1998-10-09 Xing:Kk 記憶装置アレイシステム及び記憶装置アレイ
JP3951547B2 (ja) * 2000-03-24 2007-08-01 株式会社日立製作所 レプリケーションによるホスト間データ共有方式
JP2002182860A (ja) * 2000-12-18 2002-06-28 Pfu Ltd ディスクアレイ装置
JP4413840B2 (ja) 2005-09-20 2010-02-10 株式会社東芝 記憶媒体再生装置、記憶媒体再生方法および記憶媒体再生プログラム
JP4660353B2 (ja) 2005-11-01 2011-03-30 株式会社東芝 記憶媒体再生装置
JP4575288B2 (ja) 2005-12-05 2010-11-04 株式会社東芝 記憶媒体、記憶媒体再生装置、記憶媒体再生方法および記憶媒体再生プログラム
JP2007180610A (ja) * 2005-12-26 2007-07-12 Konica Minolta Business Technologies Inc 画像形成装置および画像形成装置における記憶装置の制御方法
JP2006185454A (ja) * 2006-01-19 2006-07-13 Hitachi Ltd レプリケーションによるホスト間データ共有方式
JP4863749B2 (ja) * 2006-03-29 2012-01-25 株式会社日立製作所 フラッシュメモリを用いた記憶装置、その消去回数平準化方法、及び消去回数平準化プログラム
JP4804218B2 (ja) * 2006-05-11 2011-11-02 株式会社日立製作所 記憶媒体への書き込み回数を管理する計算機システム及びその制御方法
JP4863814B2 (ja) * 2006-08-04 2012-01-25 株式会社日立製作所 記憶媒体グループの故障を抑えるストレージシステム
JP2008217857A (ja) 2007-02-28 2008-09-18 Toshiba Corp メモリコントローラ及び半導体装置
US7865761B1 (en) * 2007-06-28 2011-01-04 Emc Corporation Accessing multiple non-volatile semiconductor memory modules in an uneven manner

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9208863B1 (en) 2014-05-19 2015-12-08 Kabushiki Kaisha Toshiba Memory system and method of controlling memory system

Also Published As

Publication number Publication date
US20100005228A1 (en) 2010-01-07
US8069301B2 (en) 2011-11-29
JP2010015516A (ja) 2010-01-21

Similar Documents

Publication Publication Date Title
JP5242264B2 (ja) データ制御装置、ストレージシステムおよびプログラム
US8489806B2 (en) Storage apparatus and method of managing data storage area
US7831764B2 (en) Storage system having plural flash memory drives and method for controlling data storage
TWI497293B (zh) 固態儲存裝置內之資料管理
US7984325B2 (en) Storage control device, data recovery device, and storage system
US9448919B1 (en) Data storage device accessing garbage collected memory segments
JP6279620B2 (ja) ストレージ装置
JP5525605B2 (ja) フラッシュメモリモジュール
US8578115B2 (en) Temporary mirroring, logical segregation, and redundant programming or addressing for solid state drive operation
WO2009130848A1 (ja) ストレージシステム及びストレージシステムの制御方法
US9268657B1 (en) Varying data redundancy in storage systems
US9891989B2 (en) Storage apparatus, storage system, and storage apparatus control method for updating stored data stored in nonvolatile memory
JP2010015195A (ja) 記憶制御装置及び記憶制御方法
US20180275894A1 (en) Storage system
JP5592478B2 (ja) 不揮発性記憶装置及びメモリコントローラ
JP5594647B2 (ja) ストレージ装置及びその制御方法
JP5678628B2 (ja) 半導体ディスク装置
KR20100106109A (ko) 플래시 메모리장치

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110324

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120614

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120626

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120822

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130403

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20160412

Year of fee payment: 3

R151 Written notification of patent or utility model registration

Ref document number: 5242264

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20160412

Year of fee payment: 3

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees