Nothing Special   »   [go: up one dir, main page]

JP2008204041A - ストレージ装置及びデータ配置制御方法 - Google Patents

ストレージ装置及びデータ配置制御方法 Download PDF

Info

Publication number
JP2008204041A
JP2008204041A JP2007037623A JP2007037623A JP2008204041A JP 2008204041 A JP2008204041 A JP 2008204041A JP 2007037623 A JP2007037623 A JP 2007037623A JP 2007037623 A JP2007037623 A JP 2007037623A JP 2008204041 A JP2008204041 A JP 2008204041A
Authority
JP
Japan
Prior art keywords
data
area
processor
memory drive
read
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2007037623A
Other languages
English (en)
Inventor
Akio Nakajima
昭夫 中嶋
Kentaro Shimada
健太郎 島田
Takahito Nakamura
崇仁 中村
Eiga Mizushima
永雅 水島
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 JP2007037623A priority Critical patent/JP2008204041A/ja
Priority to US12/007,329 priority patent/US7831764B2/en
Publication of JP2008204041A publication Critical patent/JP2008204041A/ja
Pending legal-status Critical Current

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
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0804Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
    • 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/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/21Employing a record carrier using a specific recording technology
    • G06F2212/214Solid state disk
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/26Using a specific storage system architecture
    • G06F2212/261Storage comprising a plurality of storage devices
    • G06F2212/262Storage comprising a plurality of storage devices configured as RAID
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/28Using a specific disk cache architecture
    • G06F2212/285Redundant cache memory
    • 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/7202Allocation control and policies
    • 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

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)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

【課題】フラッシュメモリに代表される不揮発性メモリによって構成された記憶装置の性能を向上させる。
【解決手段】不揮発性メモリによって構成されるメモリドライブを含む記憶装置を備えるストレージ装置であって、ホスト計算機に認識される記憶容量を提供するために必要なメモリドライブの台数よりも一台以上多いメモリドライブによってグループを構成し、各メモリドライブから分割された記憶領域を一つずつ含むセグメントごとに管理され、分割された記憶領域にはデータ領域又はテンポラリ領域が割り当てられ、ホスト計算機からデータの書き込み要求を受け付けたとき、データが書き込まれるデータ領域及びセグメントを特定し、更新されたデータを特定されたセグメントに含まれるテンポラリ領域に書き込んで、当該データが書き込まれたテンポラリ領域を新たにデータ領域とし、当該データ領域を消去して、新たにテンポラリ領域とする。
【選択図】図2

Description

本発明は、フラッシュメモリ等の半導体メモリを利用し、冗長構成を有するストレージ装置に関し、特に、処理性能及び信頼性を向上させる技術に関連する。
近年、フラッシュメモリに代表される不揮発性メモリが注目されている。フラッシュメモリは、磁気ディスクドライブと比較して、低消費電力であり、小形軽量化に適している。このため、フラッシュメモリは、磁気ディスクドライブから代替可能となる外部記憶装置である。
フラッシュメモリは、DRAM(Dynamic Random Access Memory)と比較して待機中の消費電力が低い特徴がある。DRAMは、記憶保持に必要な定期的なリフレッシュ動作が必要なためである。また、フラッシュメモリは、HDD(Hard Disk Drive)に代表される磁気記憶装置のような駆動部分を持たないため、低消費電力である。
フラッシュメモリは、一般的に計算機装置の主記憶として用いられているSRAM(Static Random Access Memory)と比較して低コストである。SRAMは、DRAMのリフレッシュ動作を必要としないが、DRAM又はフラッシュメモリと比較して、回路が複雑であるため、集積度を上げることが困難である。
フラッシュメモリは、磁気記憶装置と比較して小形であり、前述の通り、低消費電力の特徴を持つ。このため、フラッシュメモリは、ストレージ装置の主記憶として高密度実装できる利点を持つ。
したがって、大容量の主記憶としての磁気記憶装置から、フラッシュメモリを複数枚搭載したフラッシュメモリドライブが、大容量主記憶として置き換えることが期待されている。
しかし、フラッシュメモリは、SRAM、DRAM、及び磁気記憶装置にはない問題点が存在する。具体的には、フラッシュメモリは、データの上書き前に消去の操作を必要とする。フラッシュメモリは、消去操作にかかる時間が長いため、フラッシュメモリに記録されたデータを上書き更新するときのスループット性能は、読み出し時よりも劣ってしまう。
また、データの上書き前の消去の操作は、読み書きの最小単位であるブロックの単位で消去できない。フラッシュメモリは、前述のブロックを複数にまとめたページ単位で消去する。
さらに、フラッシュメモリの消去回数は、105〜106回程度の制限がある。このように、フラッシュメモリの書き換え回数に制限があるため、同一の領域に書き換えが集中しないように、ページの消去操作の回数を領域ごとに均一化することによって、長寿命化を図っている(特許文献1及び特許文献2参照)。
前述のとおり、フラッシュメモリは、消去単位であるページに、読み書きする単位であるブロックを複数格納しているため、データの消去又は読み書きする操作のアクセス単位が異なる。このため、フラッシュメモリは、同一のアドレスに上書きする場合、消去済みの異なる番地のブロックに書き込む必要がある。よって、読み書きする操作における論理アドレス(LBA:Logical Block Address)と、フラッシュメモリドライブの内部にて管理している物理アドレス(PBA:Physical Block Address)が同一の対応関係にはならない。
したがって、小サイズのランダムな上書き操作を繰り返すとフラグメントが発生する。そして、この操作を実施していると、消去待ちで上書きできないブロックと、読み出し可能なブロックが混在したページができる。この消去待ちブロックと読み出し可能なブロックを含むページを消去するには、読み出し可能なデータを別の領域に移動する必要がある。消去操作を行なわない場合は、次に書き換えるデータの領域が枯渇する。
そこで、フラッシュメモリは、書き込み領域を確保するために、消去待ちブロックと読み出し可能なブロックが混在したページから、使用中のブロックを別の書き込み可能なブロックに移動して、ページ消去を実行可能とする操作を行なう。この一連の操作を、一般的にリクラメーションと呼ぶ。
ところで、HDDに代表される磁気記憶装置の代替として、複数の不揮発性メモリを搭載した外部記憶装置(メモリドライブ)がある。特に、不揮発性メモリとしてフラッシュメモリを搭載した外部記憶装置外部記憶装置を、以降、フラッシュメモリドライブ(FMD)と呼ぶ。また、複数のフラッシュメモリドライブを用いたストレージ装置の制御についても、従来の複数の磁気記憶装置を搭載したストレージ装置の制御方法と同様に、以下に説明する技術を適用することによって、ストレージ装置としての信頼性を高める。
また、ストレージ装置は、安定性が要求され、構成要素を二重化することによって、構成要素に障害が発生した場合にも処理可能となっているものがある。さらに、データの信頼性と処理性能を高めるために、RAID技術によって、複数の記憶デバイスを一つのRAIDグループとして管理し、データを冗長化して格納する。RAIDグループは、一つ以上の論理的な記憶領域を形成する。当該記憶領域にデータを記録するとき、RAIDグループを構成する記憶デバイスに冗長データを記録する。冗長データによって、記憶デバイスの一つが故障した場合であっても、データを復元することができる。
RAID1は、ドライブに格納されたすべてのデータについて、別のドライブに複製を作成する。RAID1の容量効率は、全容量に対して1/2であり、効率がよくない。
そこで、複数のデータによって計算されるECC(Error Correct Code)をECCドライブに記録し、1台のドライブに障害が発生しても残りのデータとECCによって、障害ドライブに格納されたデータを復元可能なRAID4及びRAID5がある。
しかし、RAID4は、データを書き込む際に、ECCデータを毎回更新する必要があり、ECCデータのみを格納するドライブに対する書き込みが、RAIDグループ全体の書き込み性能のボトルネックとなってしまう。
一方、RAID5は、書き込み時のECCデータの更新による、読み出し編集書き込み(RMW:Read Modify Write)のアクセス負荷を、RAIDグループを構成する各ドライブに分散させることで、書き込み性能を改善している。容量効率は、データドライブ数とパリティドライブ数の比によって決定される。
RAIDを構成したストレージ装置は、所定の台数以上のドライブに障害が発生すると、データを復元することができなくなる。そこで、ストレージ装置では、一般的に、スペアドライブと呼ばれるデータを保存していない予備ドライブを用意する。
そして、ストレージ装置は、RAIDを構成しているドライブの1台に障害が発生した場合に、RAIDを構成している残りのドライブのデータを用いて、障害が発生したドライブのデータを復元してスペアドライブに格納する。このようにスペアドライブをあらかじめ用意することによって、早急に縮退状態から冗長状態に復旧できる。前述した障害の発生したドライブに格納されたデータを復元し、正常ドライブに格納する操作を、以降、コレクションコピーと呼ぶこととする。
特開平5−27924号公報 特許第3534585号明細書 David A. Patterson、他2名、 "A Case for Redundant Arrays of Inexpensive Disks(RAID)"、In Proc. of SIGMOD 1988、 pp. 109−116. ACM、 Jun 1988.
フラッシュメモリドライブにRAID構成を適用したストレージ装置は、前述した消去回数の制限などのフラッシュメモリドライブ特有の問題点によって、いくつかの課題が生じる。
まず、第1の課題として、ストレージ装置がページサイズよりも大きなサイズのデータを連続してフラッシュメモリドライブに書き込む場合、消去済みのページが枯渇する可能性がある。この場合には、消去時間のボトルネックによって、書き込みの性能が低下してしまう。
第2の課題として、複数のフラッシュメモリドライブにRAID構成を適用したストレージ装置において、磁気記憶装置に適用されていた従来技術のデータ信頼性技術であるRAID技術を適用すると、パリティの上書き更新が頻発する。このため、フラッシュメモリに対して連続して上書き操作を実行すると、フラッシュメモリドライブ内部にて、リクラメーション及び消去に伴う時間により、システム全体の性能が低下する。
第3の課題として、複数のフラッシュメモリドライブのグループにRAID5構成を適用したストレージ装置は、各フラッシュメモリドライブの書き込み回数を均一化させることが困難な点が挙げられる。フラッシュメモリドライブにRAID5構成が適用されたストレージ装置は、データの一部が書き換えられた場合であっても、逐次、パリティが更新される。したがって、パリティが格納された領域の書込み回数は、データが格納された領域よりも多くなる。
第4の課題として、RAID5構成のストレージ装置は、1台のドライブに障害が発生した場合、データの冗長性を保全するために、前述したコレクションコピーを実行する。コレクションコピー実行時には、障害ドライブを除いた複数のドライブに格納されたデータがすべて読み出され、排他的論理和(XOR:Exclusive OR)に代表されるデータ復元演算によって、障害ドライブに格納されていたデータを復元する。しかし、データ量の増大に伴って、データの転送トラフィックが増大し、データ復元操作に膨大な計算時間が必要となる。このため、コレクションコピー実行中には、通常のホスト計算機からの入出力性能に影響し、ストレージ装置全体の性能が劣化する。
本発明は、前述したフラッシュメモリのような性質を有する不揮発性メモリによって構成されたメモリドライブを含むストレージ装置について、以上の問題点を解決することを目的とする。
本発明の代表的な実施形態では、ネットワークを介してホスト計算機に接続され、前記ホスト計算機によって読み書きされるデータが格納されるストレージ装置であって、前記ネットワークに接続されるインタフェースと、前記インタフェースに接続されるプロセッサと、前記プロセッサに接続されるメモリと、前記読み書きされるデータが一時的に格納されるキャッシュメモリと、前記読み書きされるデータが格納される記憶装置と、を備え、前記記憶装置は、一つ以上の不揮発性メモリによって構成されたメモリドライブを搭載し、前記ホスト計算機に認識される記憶容量を提供するために必要なメモリドライブの台数よりも一台以上多いメモリドライブによってグループを構成し、前記グループを構成する各メモリドライブは、所定の容量ごとに記憶領域が分割され、前記分割された記憶領域は、前記グループを構成する各メモリドライブに含まれる分割された記憶領域が少なくとも一つ以上含まれるセグメントごとに管理され、前記プロセッサは、前記読み書きされるデータが格納されるデータ領域及び空き領域であるテンポラリ領域が前記セグメントにそれぞれ少なくとも一つ以上含まれるように、前記データ領域又は前記テンポラリ領域を前記分割された記憶領域にそれぞれ割り当て、前記インタフェースを介して、前記ホスト計算機からデータの書き込み要求を受け付けた場合に、前記書き込みデータが書き込まれるデータ領域を抽出し、前記抽出されたデータ領域が含まれるセグメントを特定し、前記書き込みデータの容量が、前記抽出されたデータ領域に格納されたデータの容量に基づいて決定される値よりも大きい場合には、前記抽出されたデータ領域に格納されたデータを読み出して、当該読み出されたデータを前記書き込み要求に従って更新して、当該更新されたデータを前記キャッシュメモリに格納し、前記特定されたセグメントに含まれるテンポラリ領域を選択し、前記キャッシュメモリに格納されたデータを前記選択されたテンポラリ領域に書き込んで、前記選択されたテンポラリ領域を新たにデータ領域とし、前記抽出されたデータ領域を消去して、新たにテンポラリ領域とする。
本発明の代表的な実施形態によれば、メモリドライブによって記憶装置が構成されたストレージ装置において、データが読み書きされるデータ領域を移動させながら、各メモリドライブの書き込み回数を均一化させることができる。したがって、本発明のストレージ装置では、各メモリドライブの寿命を均一化させることができる。また、性能上ボトルネックとなる消去時間を隠蔽することによって、ストレージ装置の性能が向上できる。
以下に、図面を参照しながら、本発明の実施形態を説明する。
(ストレージ装置の構成)
図1Aは、本発明の実施形態のストレージ装置120を中心とした計算機システムの構成図である。本計算機システムは、ホスト計算機100、管理端末105及びストレージ装置120を含む。
ホスト計算機100は、SAN(Storage Area Network)110を介して、ストレージ装置120に接続する。管理端末105は、ストレージ装置120と接続し、RAIDグループの作成などの制御を行なう。
ストレージ装置120は、ホストパッケージ(PK)133、MPU PK131、キャッシュPK135、バックエンドPK136及びフラッシュメモリドライブ(FMD)150を備える。ホストPK133、MPU PK131、キャッシュPK135及びバックエンドPK136は、それぞれスイッチPK134に接続する。
ストレージ装置120は、ホストPK133、MPU PK131、キャッシュPK135、バックエンドPK136及びスイッチPK134を、それぞれ二組ずつ有する冗長構成となっている。そのため、ストレージ装置120は、一方のパッケージが故障した場合であっても、他方のパッケージによって、業務を継続することが可能となっている。以下、各構成の概要を説明する。
ホストPK133は、ホストインタフェース(I/F)として、Fiber Channel又はiSCSIなどのI/Fコントローラを含む。ストレージ装置120は、ホストPK133を経由し、SAN110を介して、複数のホスト計算機100と接続する。
MPU PK131は、ストレージ装置120を制御する。MPU PK131の構成は、図1Bにて詳細を説明する。
キャッシュPK135は、キャッシュメモリ及びキャッシュコントローラを含む。キャッシュメモリは、ストレージ装置120に格納されるユーザーデータの一次記憶領域である。キャッシュコントローラは、キャッシュメモリとスイッチPK134を接続する
バックエンドPK136は、ストレージ装置内の複数の記憶装置を制御するI/Fコントローラを含む。I/Fコントローラは、バックエンドスイッチ138を介して、複数の記憶装置(例えば、HDD又はフラッシュメモリドライブ)と接続する。
次に、フラッシュメモリドライブ150について説明する。フラッシュメモリドライブ150は、二つのターゲットポートコントローラ151、フラッシュメモリコントローラ157、及び一以上のフラッシュメモリ(FM)155によって構成された記憶装置である。
ターゲットポートコントローラ151は、バックエンドスイッチ138と接続する。フラッシュメモリコントローラ157は、フラッシュメモリドライブ150を制御する。フラッシュメモリ(FM)155は、データを格納する。
フラッシュメモリドライブ150は、ターゲットポートコントローラ151が冗長化されているため、各パッケージ又はバックエンドスイッチに障害が発生した場合にも、冗長化されたターゲットポートを経由してFMDへのアクセスを可能となる。
ストレージ装置120は、データの冗長化を図るために、複数のフラッシュメモリドライブ150によって、RAIDグループ190を構成する。ただし、RAIDグループ190は、一般的なRAID5のようにパリティの配置が固定された構成とは異なる。パリティの配置については、図2にて詳細を説明する。
(MPUパッケージの詳細)
図1Bは、本発明の実施形態のストレージ装置120のMPUパッケージ131の構成図である。MPUパッケージ131は、MPU140、メモリ141を含む。
MPU140は、メモリ141に格納された制御プログラム205を実行することによって、ストレージ装置120を制御する。メモリ141は、さらに、ストレージ装置120に備えられるRAIDグループ190を管理するRAIDグループ管理情報200を記憶する。また、MPUパッケージ131は、MPU140などをスイッチPK134と接続するブリッジを含む。
RAIDグループ管理情報200は、RAIDグループリスト210、RAIDグループ構成情報220、RAIDグループ管理テーブル230、FMD番号リスト240及びFMDカウンタ260を含む。これらの構成情報については、図2にて詳細を説明する。
(RAIDグループの構成)
ここで、RAIDグループ190の構成について、図2及び図3を用いて詳細を説明する。
図2は、本発明の実施形態のRAIDグループ管理情報200を示す図である。RAIDグループ管理情報200は、前述のように、RAIDグループリスト210、RAIDグループ構成情報220、RAIDグループ管理テーブル230、FMD番号リスト240及びFMDカウンタ260を含む。以下、各情報について、詳細を説明する。
RAIDグループリスト210は、ストレージ装置120に定義されている複数のRAIDグループの総数211を格納する。また、RAIDグループリスト210は、各RAIDグループ190の構成情報220へのポインタ213を、RAIDグループ190の数だけ保持する。
以下、RAIDグループAについて、各構成情報を説明する。他のRAIDグループについても同様の構成である。
RAIDグループAの構成情報220は、RAIDグループ管理テーブル230へのポインタ221、容量223、セグメントサイズ225、セグメント数227、フラッシュメモリドライブの台数228、FMD番号リスト240へのポインタ229を含む。
RAIDグループ管理テーブル230へのポインタ221は、RAIDグループAのRAIDグループ管理テーブル230が格納されたアドレスが格納される。
RAIDグループAは、複数のフラッシュメモリドライブ150によって構成され、データが格納される記憶領域を提供する。容量223は、RAIDグループAによって提供される記憶領域の容量が格納される。
また、RAIDグループAを構成するフラッシュメモリドライブ150は、管理単位であるセグメントとして、所定の容量ごとに分割される。セグメントサイズ225は、分割されたセグメントごとの容量を格納する。本実施の形態では、例えば、128キロバイトである。セグメント数227は、RAIDグループAに含まれるセグメントの数を格納する。
また、フラッシュメモリドライブごとのセグメントの容量は、フラッシュメモリにアクセス単位であるブロックの容量よりも大きく、消去単位であるページの容量と同じ又は小さい容量となる。
なお、本実施形態では、例えば、ブロックの容量は、512バイトである。また、制御プログラムが演算する保証コードの8バイトをデータブロックに付加した520バイトをフラッシュメモリのブロックの容量としてもよい。また、ページとは、フラッシュメモリの消去単位であり、消去操作ができない場合には不良ページとなる単位である。本実施形態では、ページの容量は、例えば、128キロバイトである。本実施形態では、特に断らない限り、セグメントの容量とページの容量とを同じ値に設定している。
フラッシュメモリドライブ台数228は、RAIDグループAを構成する複数のフラッシュメモリドライブの台数が格納される。FMD番号リスト240へのポインタ229は、FMD番号リスト240のアドレスが格納される。
RAIDグループ管理テーブル230には、セグメントごとに、データ及びパリティを格納するフラッシュメモリドライブの番号を格納する。なお、RAIDグループ管理テーブル230は、ビットマップ情報にて圧縮、又はデータ/パリティの配置のパターンを制限することによって、情報量を削減することも可能である。また、RAIDグループ管理テーブル230の各エントリに、セグメントを識別するセグメント番号を、論理ブロックアドレス(LBA:Logical Block Address)順に割り当てる。
本実施形態では、RAIDグループAのRAID構成は、RAID5であって、2つのデータ領域から1つのパリティ(ECC)を生成する2データ+1パリティ構成(以下、「2D1P構成」と記載する)となっている。
FMD番号リスト240は、RAIDグループAを構成するフラッシュメモリドライブ150の一覧である。FMD番号リスト240は、RAIDグループAを構成するフラッシュメモリドライブの台数228のエントリを含む。各エントリには、RAIDグループAを構成するフラッシュメモリドライブの物理アドレス(WWN:World Wide Name等)241が格納される。このように、RAIDグループに所属する各ドライブが、ドライブの物理実装位置が連続しない配置であっても、フラッシュメモリドライブの固有の物理アドレスによって、RAIDグループを構成するドライブを認識できる。また、任意の物理実装位置に障害発生時に交換する新たなフラッシュメモリドライブを追加することができる。
本実施形態では、RAIDグループAは、6台のフラッシュメモリドライブで構成するため、台数228には「6」を格納している。RAIDグループAは、前述のように、2D1P構成であるため、3台のスペアドライブに相当する容量が含まれていることを表している。
FMD番号リスト240は、フラッシュメモリドライブの物理アドレスを格納し、FMD#A1からFMD#A6の物理アドレスを各エントリ241に格納する。
FMDカウンタ260は、それぞれのフラッシュメモリドライブに対応するカウンタ情報を格納する。FMDカウンタ260は、各ドライブのカウンタ情報として、不良ページ数の総数261、パリティ領域の総数263、テンポラリ領域の総数265、書き込み回数267、消去発生回数269、及び代替ページの残数271を格納する。
不良ページ数の総数261は、フラッシュメモリドライブ150に含まれる不良ページの数を格納する。パリティ領域の総数263は、当該フラッシュメモリドライブ150に含まれるパリティを格納したセグメントの数を格納する。
テンポラリ領域の総数265は、フラッシュメモリドライブ150に含まれるテンポラリ領域が割り当てられたセグメントの数が格納される。テンポラリ領域とは、データ又はパリティが格納されていない領域である。テンポラリ領域は、RAIDグループに含まれたスペアドライブのセグメントに対応する領域(スペア領域)である。なお、具体的なテンポラリ領域の利用方法については、後述する。
書き込み回数267は、ホスト計算機100からの要求に応じて、データが書き込まれた回数を格納する。消去発生回数269は、データが消去された回数を格納する。フラッシュメモリは、消去回数に制限があるため、消去回数を記録することによって、稼働期間を管理する。なお、書き込み回数267及び消去発生回数269は、実際の値ではなく、正規化された値を格納してもよい。
また、ストレージ装置120は、特定のセグメントに書き込みが集中しないように、セグメントごとに均一にデータが書き込まれるように制御する。セグメントごとに均一にデータが書き込まれるように制御することによって、セグメントごとに書込み回数及び消去発生回数を記録しなくても、フラッシュメモリドライブ150ごとのカウンタ情報で代用できる。
代替ページの残数271は、フラッシュメモリドライブに含まれる使用可能な代替ページの残数である。FMDのコントローラは、不良ページを検出した場合に、代替領域として代替ページを割り当てる。
(RAIDグループの作成手順)
図3は、本発明の実施形態のストレージ装置にRAIDグループ190を作成する手順を示すフローチャートである。
管理者は、ストレージ装置120にRAIDグループ190を構成するとき、管理端末105からストレージ装置120を操作する。管理者は、まず、複数のフラッシュメモリドライブ150を指定し、ストレージ装置120に対してRAIDグループ190の作成を指示する(S110)。このとき、フラッシュメモリドライブの指定の他に、フラッシュメモリドライブを分割するセグメントのセグメントサイズ又はセグメント数、その他必要な指示を送信する。なお、本実施形態では、6台のフラッシュメモリドライブによって構成する2D1P構成のRAIDグループの作成を指示している。
ストレージ装置120のMPU140は、管理者からのRAIDグループ作成指示を受信すると、制御プログラム205を実行することによって、RAIDグループリスト210のエントリを追加し、RAIDグループの総数211をカウントアップする。
さらに、ストレージ装置120のMPU140は、追加されるRAIDグループの構成情報220、RAIDグループ管理テーブル230、FMD番号リスト240、及びFMDカウンタ260をメモリ141に格納する(S120)。また、管理者が指示した情報のうち、この時点で設定可能な情報を各テーブルに格納する。
次に、ストレージ装置120のMPU140は、RAIDグループ作成時に指示されたセグメントサイズ又はセグメント数に基づいて、フラッシュメモリドライブの記憶領域を分割し(S130)、RAIDグループ管理テーブル230の構造を決定する。なお、セグメントサイズを指定した場合には、フラッシュメモリドライブの容量をセグメントサイズで除算することによって、セグメント数を算出できる。
ストレージ装置120のMPU140は、RAIDグループ190の初期状態として、セグメントごとに、2つのデータ、及びパリティをフラッシュメモリドライブに配置する(S140)。このとき、各フラッシュメモリドライブのセグメントに、データ及びパリティの総数が均一になるようにデータ領域とパリティ領域を各FMDに分散して配置する。また、データ及びパリティが割り当てられていない領域は、テンポラリ領域となる。本実施形態では、前述の通り、スペアドライブにもデータ領域及びパリティ領域を割り当てる。
ストレージ装置120のMPU140は、FMDカウンタ260のパリティ領域の総数263及びテンポラリ領域の総数265を設定する(S150)。
ストレージ装置120のMPU140は、すべてのセグメントに対して、S140及びS150の処理が完了したか否かを判定する(S160)。未処理のセグメントの残っている場合には(S160の結果が「No」)、未処理のセグメントに対して処理を続行する。すべてのセグメントに対して処理が完了した場合には(S160の結果が「Yes」)、本処理を終了する。
ストレージ装置120のMPU140は、以上の処理によってRAIDグループを構成し、当該RAIDグループをデータ格納領域としてホスト計算機100に提供する。さらに、ホスト計算機100がRAIDグループのデータ格納領域にアクセスするために、当該データ格納領域を論理ユニット(LU:Logical Unit)として定義し、LUをホストに割り当てることによってデータを読み書きすることができる。
(RAIDグループとの対応関係)
図4は、本発明の実施形態のRAIDグループ管理テーブルと当該RAIDグループのデータ配置との関係を示す図である。
図4上部は、RAIDグループ管理テーブル230の一例を示す。図4下部は、図4上部に示すようにRAIDグループが構成されている場合の各フラッシュメモリドライブ150のデータ配置300を示している。なお、データ配置300に示されている各値は、対応するセグメント及び領域を表している。具体的には、データ領域の場合は「D(n−1)」「D(n)」、パリティ領域の場合は「Parity(n−1,n)」、テンポラリ領域の場合には、「temp」と表す。
本実施形態のRAIDグループは、RAID5の2D1P構成であり、各セグメントには2つのデータ領域及び1つのパリティ領域を割り当てた構成である。RAIDグループ管理テーブル230の最終エントリ(セグメント#N)について説明すると、データAはFMD#0(231)、データBはFMD#4(233)、パリティはFMD#5(235)に配置されている。
また、制御プログラムは、データA(D(n−1))を、FMD#A1のセグメント#N(301)に、データB(D(n))を、FMD#A5のセグメント#N(307)に割り当てる。また、データA及びデータBのパリティ(Parity(n−1,n))を、FMD#A6のセグメント#N(309)に割り当てる。残りのFMD#A2、FMD#A3及びFMD#A4のセグメント#Nには、テンポラリ領域を割り当てる。
(データの書き込み手順)
次に、ホスト計算機100がRAIDグループに割り当てた論理ユニット(LU)にデータを読み書きする処理について図5及び図6を用いて説明する。
まず、LUに対する書き込み手順について説明する。本処理の概要としては、書き込まれるデータが所定のサイズよりも大きい場合には、書き込み対象となるセグメントのデータ領域にデータを書き込むのではなく、同じセグメントのテンポラリ領域にデータを書き込む。そして、データが書き込まれたテンポラリ領域をデータ領域に変更し、元のデータ領域を消去してテンポラリ領域に変更する。
図5は、本発明の実施形態のストレージ装置の書き込み処理の手順を示すフローチャートである。ストレージ装置120のMPU140は、ホスト計算機100からの書き込み要求を受信すると、制御プログラム205を実行することによって、本処理を開始する。
ストレージ装置120のMPU140は、ホスト計算機100から書き込み要求を受信すると、キャッシュPK135のキャッシュメモリに書き込みデータを格納し、ホスト計算機100に対して完了通知を送信する(S410)。
次に、ストレージ装置120のMPU140は、書き込み先の論理ブロックアドレスを計算する。そして、対応するRAIDグループ管理テーブル230の対応するセグメントを特定し、データ、パリティ及びテンポラリ領域の配置情報を取得し、データ領域とテンポラリ領域が割り当てられているFMDを特定する(S420)。
図6Aは、本発明の実施形態の書き込み処理を実行する前のデータ配置500を示す図である。データ配置500は、図5の書き込み処理を実行する前の状態である。また、図5のS420の処理で特定されたセグメントは、セグメント#Nとする。
データ領域501及び505は、それぞれFMD#A1及びFMD#A5が該当し、パリティ領域506は、FMD#A5が該当する。また、テンポラリ領域502、503及び504は、それぞれFMD#A2、FMD#A3及びFMD#A4が該当する。斜線部は、移動対象のデータ領域501及び505とパリティ領域506である。
ここで、図5のデータの書き込み処理の説明に戻る。
続いて、ストレージ装置120のMPU140は、書き込みデータの容量が所定の値よりも大きいか否かを判定する(S425)。所定の値とは、フラッシュメモリに直接上書きしたほうが、効率がよいことを予め測定した結果に基づいて決定した値である。具体的には、測定の結果、セグメント(例えば128KB、ブロックサイズが512Bの場合で256個)内のデータを上書きするブロック(512B)の個数が、例えば16個(8KB)を超えた場合には、テンポラリ領域に移動したほうがよく、超えなかった場合には、同一のフラッシュメモリドライブに上書きしたほうがよいとの評価結果が得られたとして、本実施形態では、所定の値を8KBとする。
ストレージ装置120のMPU140は、書き込みデータの容量が所定の値以下の場合には(S425の結果が「No」)、記憶領域の消去作業やリクラメーションの作業をフラッシュメモリドライブ内部のコントローラに任せる従来技術の上書き操作を適用するほうが書込み性能がよい。このため、従来技術と同様にデータ領域501及び505の同一論理ブロックアドレスにデータを書き込む(S426)。なお、フラッシュメモリドライブの内部では、必要に応じてブロックを消去し、書込み可能な領域を確保したら、実際にはフラッシュメモリドライブ外部の論理アドレスとは異なる物理アドレスの領域(前述の確保された書込み可能な領域)にデータを書き込み、当該物理ブロックアドレスと論理ブロックアドレスとの対応を更新する。
また、ホスト計算機100からの書き込み指示によってS426の書き込み処理を繰り返し実行する場合には、フラッシュメモリドライブのフラッシュメモリコントローラ157は、従来技術と同様にリクラメーションを実行する。S426の処理におけるデータ及びパリティの変更処理は、図6Aのデータ領域(501、505)及びパリティ領域506の一部の領域を変更し、データ領域及びパリティ領域を別のフラッシュメモリドライブに移動しない。
一方、ストレージ装置120のMPU140は、書き込みデータの容量が所定の値よりも大きい場合には(S425の結果が「Yes」)、書き込み済みの既存データを消去し、既存データと書込みデータを新たにフラッシュメモリドライブに書き込むように制御する。しかし、前述のように、フラッシュメモリドライブのデータを消去するために必要な時間は、データを読み書きするために必要な時間と比較して非常に大きくなる。そこで、本実施形態では、書き込みと消去を並列して実行することによって、処理性能を向上させる。以下、具体的な処理を記述する。
ストレージ装置120のMPU140は、まず、消去するセグメントに含まれるすべてのブロックを更新するか否かを判定する(S427)。消去するセグメントにデータに含まれるすべてのブロックを更新しない場合には(S427の結果が「NO」)、消去するセグメントに含まれるデータ領域に記憶されているデータを読み出す。このとき、ホスト計算機から送信されたデータによって上書きされないデータのみを選択して部分的に読み出すことで、データ転送量を削減することも好ましい。次に、フラッシュメモリドライブから読み出した既存データを書き込みデータに更新し、データ領域に格納するデータを生成する。このとき、更新後のデータに対応するパリティも生成する。最後に、生成されたデータ及びパリティをキャッシュメモリに配置する(S428)。消去するセグメントに含まれるすべてのブロックを更新する場合には(S427の結果が「YES」)、フラッシュメモリドライブに存在するデータはそのまま消去してもよいため、フラッシュメモリドライブからの読み出しを行わず、S430の処理に遷移する。
図6Bは、本発明の実施形態の書き込み処理によって更新されたデータを一時的に格納するキャッシュメモリの状態を示す図である。S428の処理によって、新たに生成されたデータD(n−1)、D(n)及びパリティがキャッシュPK135のキャッシュメモリに格納される。
ここで、図5のデータの書き込み処理の説明に戻る。
ストレージ装置120のMPU140は、フラッシュメモリドライブごとのデータ数及び書き込み回数267が均一になるように、S420の処理によって特定されたテンポラリ領域のフラッシュメモリドライブを選択する(S430)。なお、データ数は、FMDカウンタ260に値が直接格納されていないが、セグメント数227からパリティ領域の総数263及びテンポラリ領域の総数265を引いた値と一致する。
また、ストレージ装置120のMPU140は、フラッシュメモリドライブごとにパリティ領域の総数263が均一になるように、S420の処理によって特定されたテンポラリ領域のフラッシュメモリドライブを選択する(S430)。
ストレージ装置120のMPU140は、選択されたフラッシュメモリドライブのデータを書き込むブロックが属するバンクが消去中であるか否かを判定する(S450)。バンクとは、フラッシュメモリをある連想度にて分割した単位である。本実施の形態では、例えば、フラッシュメモリドライブ内に複数の1ギガバイトの容量のフラッシュメモリを含み、フラッシュメモリが128の連想度で分割されている場合、64ページが一つのバンクの組となり、消去中は同じバンクに属する他の63ページのアクセスができないとする。
ストレージ装置120のMPU140は、データを書き込むブロックが属するバンクの他のブロックが消去中である場合には(S450の結果が「Yes」)、消去処理が完了するまで当該ブロックに一時的にデータを書き込むことができないため、消去処理が完了するまで待機する(S460)。書込み可能となった場合には(S450の結果が「No」)、S470の処理を実行する。なお、この動作は、フラッシュメモリドライブ内部のコントローラが制御してもよい。
次に、ストレージ装置120のMPU140は、S430の処理によって選択されたフラッシュメモリドライブに対して、キャッシュメモリに保持されたデータ及びパリティを所定のセグメントに書き込むように指示する(S470)。
最後に、ストレージ装置120のMPU140は、S470の処理の終了後、元のデータ又はパリティが格納されたフラッシュメモリドライブのセグメントに対し、消去コマンドを発行する(S480)。ストレージ装置120のMPU140は、S480の処理で発行された消去コマンドに対する完了通知を受信すると、該当するフラッシュメモリドライブのFMDカウンタ260の消去発生回数269を更新し、本処理は終了する。
このように、ストレージ装置120のMPU140は、データを更新するためにデータを消去する場合に、テンポラリ領域に更新データを書き込んでデータ領域を移動し、並行して元のデータ領域を消去することによって、処理のボトルネックとなる消去時間を隠蔽できる。
また、ストレージ装置120のMPU140は、データ領域及びパリティ領域の移動先を消去回数に基づいて決定するため、RAIDグループを構成するフラッシュメモリドライブの消去回数などを均一化できる。
さらに、ストレージ装置120のMPU140は、データ領域及びパリティ領域の移動先をデータ領域の数及びパリティ領域の数に基づいて決定するため、RAIDグループを構成するフラッシュメモリドライブごとの構成を均一化できる。
以下、データ領域に書き込むデータの容量が所定値よりも大きい場合について(S425の結果が「Yes」)、図6Cを参照しながら説明する。
図6Cは、本発明の実施形態の書き込み処理が完了した後のデータ配置550を示す図である。データ配置550は、図6Aのデータ配置500の状態で、セグメント#Nのセグメントに対して所定値以上のサイズのデータを書き込んだ結果を示す。
ストレージ装置120のMPU140は、S430に処理によって、新たにデータ領域及びパリティ領域となるテンポラリ領域を選択する。ストレージ装置120のMPU140は、新たなデータ領域として、図6Aのテンポラリ領域502及び503を選択し、新データ領域552及び553となる。同様に、新たなパリティ領域としてテンポラリ領域504が選択され、新パリティ領域554となる。斜線部は、移動後の新データ領域552及び553と新パリティ領域554である。
その後、ストレージ装置120のMPU140は、S480の処理によって、図6Aの元のデータ領域501及び505とパリティ領域506に対する消去コマンドを発行する。消去処理が完了すると、当該領域は、テンポラリ領域551、555及び556として使用される。
(データの読み出し手順)
続いて、LUに格納されたデータを読み出す手順について説明する。本処理は、通常のフラッシュメモリドライブに格納されたデータの読み出し手順と原則的に同じであるが、読み出しデータが記録されたブロックに属するバンクと同じバンクにおいて消去処理が実行されている場合の手順が異なる。
図7は、本発明の実施形態のストレージ装置のデータの読み出し処理の手順を示すフローチャートである。ストレージ装置120のMPU140は、ホスト計算機100からのデータの読み出し要求を受信すると、制御プログラム205を実行することによって、本処理を開始する。
ストレージ装置120のMPU140は、まず、ホスト計算機100からデータの読み出し要求を受信する(S610)。
次に、ストレージ装置120のMPU140は、読み出し対象のデータが格納された論理ブロックアドレス(LBA)を算出する。そして、RAIDグループ管理テーブル230の対応するセグメントを特定し、データ/パリティ/テンポラリ領域の配置情報を取得し、読み出し対象のデータが格納されたデータ領域を割り当てたフラッシュメモリドライブを特定する(S620)。
続いて、ストレージ装置120のMPU140は、読み出し対象のデータを格納するブロックが属するバンクにおいて消去処理が実行されているか否かを判定する(S630)。消去処理が実行されているか否かは、図5のS480の処理の消去コマンド発行中であって、消去コマンド実行完了の通知を受信していないことで判定することができる。
ストレージ装置120のMPU140は、読み出し対象のデータが格納されたブロックが属するバンクにおいて消去処理が実行していない場合には(S630の結果が「No」)、通常の読み出し処理を実行する。具体的には、S620の処理によって特定された読み出し対象のデータを格納したフラッシュメモリドライブに対し、当該データの読み出しを要求する。そして、読み出されたデータをキャッシュメモリに格納する(S640)。S640の処理が実行される場合のデータ配置を図8Aに示す。
図8Aは、本発明の実施形態の読み出し対象のデータが格納されたブロックが属するバンクにおいて消去処理が実行されていない場合のデータ配置700を示す図である。図7のS620の処理で特定したセグメントは、セグメント#Nとし、データ領域には、FMD#A2(701)及びFMD#A3(703)が該当する。
ここで、図7のデータの読み出し処理の説明に戻る。
ストレージ装置120のMPU140は、読み出し対象のデータが格納されたブロックが属するバンクにおいて消去処理が実行されている場合には(S630の結果が「No」)、消去中と同一バンクに属するデータを一時的に読み出せない。そこで、本実施形態では、別のドライブの同一セグメントで消去中のバンクに属していないブロックに格納されたデータと、パリティから、一時的に読み出せないデータをXOR演算により復元する。前述のようにデータの消去には時間を要するため、消去の完了を待たずにデータを取得することができるため、データの読み出しに要する時間を短縮できる。
具体的には、ストレージ装置120のMPU140は、まず、パリティを格納したセグメントと、消去処理を実行していないデータを格納したセグメントとを含むフラッシュメモリドライブに読み出しを要求する(S650)。そして、読み出したデータ及びパリティをXOR演算することによって、読み出し対象のデータを復元し、キャッシュメモリに格納する(S655)。以上の処理について、図8Bを用いてさらに説明する。
図8Bは、本発明の実施形態の読み出し対象のデータを格納したブロックが属するバンクにおいて消去処理を実行している場合のデータ配置750を示す図である。図7のS620の処理で特定したセグメントは、図8Aの場合と同様に、セグメント#Nとする。データ領域は、FMD#A2(751)及びFMD#A3(753)に該当する。
データ配置750において、消去処理をFMD#A2のセグメント#2で実行している。ここで、セグメント#2と#Nが同じバンクに属するため、セグメント#Nに格納されたデータの読み出しができない。そこで、ストレージ装置120のMPU140は、データ753とパリティ755に基づいて、データ751を復元することによって、読み出しデータを取得する。
ここで、図7のデータの読み出し処理の説明に戻る。
ストレージ装置120のMPU140は、最後に、キャッシュメモリに格納された読み出しデータをホスト計算機100に送信する。そして、完了通知(又は異常通知)をホスト計算機100に送信し、本処理を終了する(S660)。
(予防保守及び障害復旧)
続いて、本発明の実施形態のフラッシュメモリドライブを含むストレージ装置について、障害の発生を未然に防ぐ予防保守について説明する。
フラッシュメモリドライブは、不良ページが発生した場合には、あらかじめ確保された代替ページを利用することによって、運用を継続できる。しかし、確保された代替ページをすべて使用すると、データを読み書きできない。
そこで、ストレージ装置は、各フラッシュメモリドライブの不良ページの総数及び代替ページの残数などの情報を保持し、例えば、不良ページの総数が所定の値を超えた場合には、管理者に対してFMDの交換を通知する。
本実施形態のストレージ装置は、FMDカウンタ260に各フラッシュメモリドライブの不良ページの総数261などを格納する。不良ページが発生した場合に、当該フラッシュメモリドライブの不良ページの総数261をインクリメントする。不良ページの発生は、例えば、規定時間内に消去操作が完了せず、新たなデータを書き込みできない場合などとする。なお、フラッシュメモリドライブ内部にて不良ページ数を管理しており、MPU140が定期的に不良ページ数をフラッシュメモリドライブに問い合わせる制御であってもよい。
また、フラッシュメモリドライブは、前述のように、消去回数に制限があるため、FMDカウンタ260に消去発生回数269を記録することによって、消去発生回数269が所定の閾値を超えたとき、管理者に対して通知できる。
このように、フラッシュメモリドライブを備えたストレージ装置は、フラッシュメモリドライブの障害が発生する前にフラッシュメモリドライブの交換を促して、障害の発生を予防することができる。
さらに、ストレージ装置は、フラッシュメモリドライブが冗長構成となっている場合には、障害が発生してもデータを復元することができる。例えば、RAID5構成の場合には、1台のフラッシュメモリドライブに障害が発生しても、残りのフラッシュメモリドライブに格納されたデータ及びパリティによって、データを復元することができる。したがって、1台のフラッシュメモリドライブに障害が発生した場合には、フラッシュメモリドライブを交換し、データを復元して交換されたフラッシュメモリドライブにコピーすることによって、早期に障害から復旧することができる。前述したように、復元されたデータを交換されたフラッシュメモリドライブにコピーすることをコレクションコピーという。
コレクションコピーは、障害発生時だけでなく、障害発生前に予防保守として、フラッシュメモリドライブを交換する場合に実行してもよい。しかし、稼働中の残りのフラッシュメモリドライブに格納されたデータ及びパリティからデータを復元することによって、データの読み出しは可能であるが、処理性能は劣化してしまう。したがって、できるだけ短時間でコレクションコピーを完了させることが望ましい。
本発明の実施形態では、データ及びパリティが格納されたセグメントを移動することが可能であることを利用して、コレクションコピーを短時間で完了させる方法について説明する。
図9は、本発明の実施形態において、フラッシュメモリドライブ150の不良ページが所定の閾値を達した場合に実行する処理の手順を示すフローチャートである。本処理は、周期的に実行される。
ストレージ装置120のMPU140は、各フラッシュメモリドライブの不良ページの総数261が所定の閾値を超過しているか否かを判定する(S810)。すべてのフラッシュメモリドライブについて、不良ページの総数261が所定の閾値を超過していない場合には(S810の結果が「No」)、本処理を終了する。
ストレージ装置120のMPU140は、不良ページの総数261が所定の閾値を超過しているフラッシュメモリドライブを検出すると(S810の結果が「Yes」)、当該フラッシュメモリドライブを読み出しのみ可能として閉塞する。
磁気ディスクドライブにおけるヘッドの障害又はメディアの障害では、データの読み出し及び書き込みがともに不能となる可能性が高い。一方、フラッシュメモリドライブの障害は、新たなデータの書き込みはできなくなるが、フラッシュメモリドライブ内の大多数のブロックに格納されたデータを読み出しできる。
そこで、ストレージ装置120のMPU140は、閉塞したフラッシュメモリドライブからデータを可能な限り読み出し、RAIDグループを構成する別のフラッシュメモリドライブの書き込み可能なテンポラリ領域に読み出したデータを書き込む(S840)。
図10Aは、本発明の実施形態のコレクションコピーを実行する前に不良ページの総数が閾値を超過した時点のデータ配置900を示す図である。データ配置900では、S810の処理によって、FMD#A4が不良ドライブと判定されている。なお、不良ドライブとは、不良ページの総数が所定の閾値を超過したフラッシュメモリドライブのことである。
図10Bは、本発明の実施形態の不良ドライブのデータを別のフラッシュメモリドライブの対応するセグメントにコピーした後のデータ配置950を示す図である。データ配置950では、FMD#A4のセグメント#N(951)に格納したパリティを、FMD#A5のセグメント#N(953)にコピーしている。
ここで、図9の説明に戻ると、ストレージ装置120のMPU140は、S840の処理で読み出すことができなかったデータについて、別のドライブに格納されているデータ及びパリティからXOR演算することによって、データ又はパリティを復元する(S850)。
ストレージ装置120のMPU140は、S840及びS850の処理によって、閉塞したドライブに格納しているデータを他の正常なフラッシュメモリドライブにコピーする。S840及びS850の処理が完了したら、閉塞ドライブの交換を管理端末105に表示し、管理者に閉塞したフラッシュメモリドライブの交換を促し、本処理を終了する(S860)。
以上の処理によって、ストレージ装置に新たに追加されたフラッシュメモリドライブは、閉塞されたフラッシュメモリドライブに格納されたデータをコピーすることなく、運用を継続することができる。
一方、新たに追加されたフラッシュメモリドライブは、最初はデータが格納されていないため、RAIDグループを構成するフラッシュメモリドライブ間で不均衡となる。しかし、データ数、書き込み回数267及びパリティの総数265が他のフラッシュメモリドライブと比較して著しく少なくなるため、図5にて説明した書込み手順によって優先的にデータ領域又はパリティ領域が作成される。したがって、時間が経過するにつれて、RAIDグループを構成するフラッシュメモリドライブ間でデータ領域の数及び書き込み回数267などが均一化される。
また、図9に示した手順では、不良ドライブが検出されると、正常なフラッシュメモリドライブにデータを退避させた後、即座に管理者に通知する。本実施形態では、6台のフラッシュメモリドライブで、2D1P構成となっており、3つのテンポラリ領域をセグメントごとに有している。そこで、1台の不良ドライブが発生しても、2つのテンポラリ領域が残るため、運用を継続することが可能である。そこで、RAIDグループの構成に応じて複数の不良ドライブが発生するまで、通常の運用を継続してもよい。
図11は、本発明の実施形態において、フラッシュメモリドライブ150の不良ページが閾値を達した場合に実行される処理の手順を示すフローチャートである。本処理は、図9に示された処理の手順の変形である。共通する処理については、説明を省略し、相違点について説明する。
図9のS810の処理と、S910の処理は、同一の処理である。また、ストレージ装置120のMPU140は、不良ページ数が閾値を超過した場合には(S910の結果が「Yes」)、当該フラッシュメモリドライブを読み出しのみ可能として閉塞し、管理者に通知する(S920)。そして、管理者に空きスロットに新たなフラッシュメモリドライブを追加するように促す。
ストレージ装置120のMPU140は、空きスロットに新たなフラッシュメモリドライブが追加されると、RAIDグループ管理情報200を更新し、追加されたフラッシュメモリドライブに図3に示した処理を実行し、初期化する(S930)。
さらに、ストレージ装置120のMPU140は、閉塞したドライブのデータを新たに追加されたフラッシュメモリドライブにコピーする(コレクションコピー)。これによって、閉塞したドライブから読み出し可能なデータを、新たに追加した正常なドライブにコピーすることによって復旧できる。このため、不良ページによる読み出しできないブロックを除き、RAIDグループを構成する他のフラッシュメモリドライブにコレクションコピーによる入出力要求を発行する必要がないため、稼働中の他のフラッシュメモリドライブへの性能影響を抑えられる。
ストレージ装置120のMPU140は、コレクションコピーが完了すると、閉塞したドライブの交換指示を管理端末105に表示し、管理者にドライブの交換を通知する(S960)。さらに、ストレージ装置120のMPU140は、RAIDグループ管理情報200を更新し、RAIDグループから閉塞したドライブを除外する(S970)。こうすることによって、ストレージ装置120のMPU140は、各フラッシュメモリドライブで均一化された状態で運用を開始できる。また、ホスト計算機100から不良ドライブにアクセスさせないようにすることもできる。その後、管理者は、必要に応じて閉塞したドライブを除去し、空きスロットとする(S980)。
なお、コレクションコピーの実行中であっても、閉塞されたフラッシュメモリドライブからデータの読み出しが可能であればそのまま処理し、読み出せない場合であっても、データとパリティをXOR演算することによって、データを復元して読み出しデータとすることで、運用を継続することができる。
(テンポラリ領域の数が少ない場合)
本実施形態のストレージ装置120は、データ領域及びパリティ領域の合計と同じ数のテンポラリ領域を有していたが、テンポラリ領域の数がデータ領域及びパリティ領域の合計よりも少ない場合であっても、本発明を適用することができる。
本実施形態のフラッシュメモリドライブは、記憶領域がセグメント単位に区切られている。そのため、各セグメントに記憶されたデータの容量がキャッシュメモリに一時的に保持できる容量に対して大きくなることはない。そこで、キャッシュメモリに書き込みデータを保持し、新たな書込み先の領域を確保されるまで待機すればよい。
ここで、本実施形態の2D1PのRAID5構成のストレージ装置において、フラッシュメモリドライブが5台搭載される場合について説明する。本構成は、2台のスペアドライブを有する構成であり、2つのテンポラリ領域を有する。
ストレージ装置120のMPU140がホスト計算機100からの書込み要求を受け付けたとき、移動対象の領域は、2つのデータ領域と1つのパリティ領域である。このとき、ストレージ装置120のMPU140は、まず、2つのデータ領域を2つのテンポラリ領域に移動させる。このとき、パリティ領域に書き込まれるパリティは、キャッシュメモリに保持され、移動したデータ領域の消去が完了するまで待機する。消去が完了すると、前述した手順に従って、パリティを書き込む。
ストレージ装置120のMPU140は、データを読み出す場合にはパリティを使用しないため、データ領域を先行して書き込むことによって、データを円滑に読み出すことができる。また、スペアドライブが1台の構成の場合であっても、各フラッシュメモリドライブへの書き込み負荷を均一化するため、フラッシュメモリドライブの長寿命化を図ることができる。
(RAID5以外の冗長構成)
本実施形態のストレージ装置120のRAIDグループは、RAID5構成であったが、他の構成であっても本発明を適用することができる。例えば、パリティを2つ有するRAID6構成であっても、同様に本発明を適用することができる。
また、RAID1構成(ミラーリング)、及び、RAID01(ストライピングとミラーリングの併用)の場合には、データ領域と当該データ領域の複製を格納するミラー領域、さらにテンポラリ領域を有する構成となる。具体的には、所定のサイズよりも大きいサイズのデータをデータ領域に書き込むとき、記憶済データとあわせた新たな書き込みデータを生成し、選択されたテンポラリ領域に書き込む。さらに、当該新たな書き込みデータを新たに選択されたミラー領域に書き込めばよい。
(本実施形態の効果)
本発明の実施形態によれば、データ領域及びパリティ領域を移動させることによって、上書き更新のために消去してからデータを書き込むのではなく、テンポラリ領域にデータを移動させることによって消去時間を隠蔽し、スループットを向上できる。また、データ及びパリティが書き込まれる領域を移動させるため、ホスト計算機100からの書き込み要求時に常に更新されるパリティの書き込みも含めて、各フラッシュメモリドライブの書き込み回数を均一化できる。
また、本発明の実施形態によれば、パリティを更新するときに、セグメントが同一であって、別のドライブのテンポラリ領域に、パリティを書き込むことによって、性能のボトルネックを解決することができる。
さらに、本発明の実施形態によれば、テンポラリ領域に予防保守などにより読み出し専用として閉塞されたドライブからデータをコピーすることによって、コレクションコピーに要する時間を大幅に短縮できる。また、RAIDグループを構成する複数のドライブのうち、閉塞ドライブと新たに追加したドライブを除いたドライブには、コレクションコピーによる入出力処理数を従来技術と比較して大幅に削減することができる。したがって、コレクションコピー実行中に処理性能が大幅に低下することを防ぐことができる。
本発明の実施形態のストレージ装置を中心とした計算機システムの構成図である。 本発明の実施形態のストレージ装置のMPUパッケージの構成図である。 本発明の実施形態のRAIDグループ管理情報を示す図である。 本発明の実施形態のストレージ装置にRAIDグループを作成する手順を示すフローチャートである。 本発明の実施形態のRAIDグループの管理テーブルと当該RAIDグループのデータ配置との関係を示す図である。 本発明の実施形態のストレージ装置の書き込み処理の手順を示すフローチャートである。 本発明の実施形態の書き込み処理実行前のデータ配置を示す図である。 本発明の実施形態の書き込み処理によって更新されたデータを一時的に格納するキャッシュメモリの状態を示す図である。 本発明の実施形態の書き込み処理完了後のデータ配置を示す図である。 本発明の実施形態のストレージ装置のデータの読み出し処理の手順を示すフローチャートである。 本発明の実施形態の読み出し対象のデータが格納されたブロックが属するバンクにおいて消去処理が実行されていない場合のデータ配置を示す図である。 本発明の実施形態の読み出し対象のデータが格納されたブロックが属するバンクにおいて消去処理が実行されている場合のデータ配置を示す図である。 本発明の実施形態の予防保守において、フラッシュメモリドライブの不良ページが閾値を達した場合に実行される処理の手順を示すフローチャートである。 本発明の実施形態のコレクションコピーを実行する前に不良ページの総数が閾値を超過した時点のデータ配置を示す図である。 本発明の実施形態の不良ドライブのデータを別のフラッシュメモリドライブの対応するセグメントにコピーした後のデータ配置を示す図である。 本発明の実施形態の予防保守において、フラッシュメモリドライブの不良ページが閾値を達した場合に実行される処理の手順を示すフローチャートである。
符号の説明
100 ホスト計算機
105 管理端末
110 SAN
120 ストレージ装置
131 MPUパッケージ
133 ホストパッケージ
134 スイッチPK
135 キャッシュPK
136 バックエンドPK
138 バックエンドスイッチ
140 MPU
150 フラッシュメモリドライブ
200 RAIDグループ管理情報
220 RAIDグループ構成情報
230 RAIDグループ管理テーブル
240 FMD番号リスト
260 FMDカウンタ

Claims (20)

  1. ネットワークを介してホスト計算機に接続され、当該ホスト計算機によって読み書きされるデータが格納されるストレージ装置であって、
    前記ネットワークに接続されるインタフェースと、前記インタフェースに接続されるプロセッサと、前記プロセッサに接続されるメモリと、前記読み書きされるデータが一時的に格納されるキャッシュメモリと、前記読み書きされるデータが格納される記憶装置と、を備え、
    前記記憶装置は、
    一つ以上の不揮発性メモリによって構成されたメモリドライブを搭載し、
    前記ホスト計算機に認識される記憶容量を提供するために必要なメモリドライブの台数よりも一台以上多いメモリドライブによってグループを構成し、
    前記グループを構成する各メモリドライブは、所定の容量ごとに記憶領域が分割され、
    前記分割された記憶領域は、前記グループを構成する各メモリドライブに含まれる分割された記憶領域が少なくとも一つ以上含まれるセグメントごとに管理され、
    前記プロセッサは、
    前記読み書きされるデータが格納されるデータ領域及び空き領域であるテンポラリ領域が前記セグメントにそれぞれ少なくとも一つ以上含まれるように、前記データ領域又は前記テンポラリ領域を前記分割された記憶領域にそれぞれ割り当て、
    前記インタフェースを介して、前記ホスト計算機からデータの書き込み要求を受け付けた場合に、
    前記書き込みデータが書き込まれるデータ領域を抽出し、
    前記抽出されたデータ領域が含まれるセグメントを特定し、
    前記書き込みデータの容量が、前記抽出されたデータ領域に格納されたデータの容量に基づいて決定される値よりも大きい場合には、
    前記抽出されたデータ領域に格納されたデータを読み出して、当該読み出されたデータを前記書き込み要求に従って更新して、当該更新されたデータを前記キャッシュメモリに格納し、
    前記特定されたセグメントに含まれるテンポラリ領域を選択し、
    前記キャッシュメモリに格納されたデータを前記選択されたテンポラリ領域に書き込んで、前記選択されたテンポラリ領域を新たにデータ領域とし、
    前記抽出されたデータ領域を消去して、新たにテンポラリ領域とすることを特徴とするストレージ装置。
  2. 前記プロセッサは、
    さらに、前記データ領域の冗長データが格納される冗長データ領域が前記セグメントに少なくとも一つ以上含まれるように、前記冗長データ領域を前記分割された記憶領域に割り当て、
    前記インタフェースを介して、前記ホスト計算機からデータの書き込みを受け付けた場合に、
    前記抽出されたデータ領域の冗長データが格納された冗長データ領域を抽出し、
    前記受け付けたデータの書き込み要求に基づいて、前記冗長データを更新して、前記キャッシュメモリに格納し、
    前記特定されたセグメントに含まれる他のテンポラリ領域をさらに選択し、
    前記キャッシュメモリに格納された冗長データを、前記選択された他のテンポラリ領域に書き込んで、当該冗長データが書き込まれたテンポラリ領域を新たに冗長データ領域とし、
    前記抽出された冗長データ領域を消去して、新たにテンポラリ領域とすることを特徴とする請求項1に記載のストレージ装置。
  3. 前記プロセッサは、
    前記分割された記憶領域に対して、データが書き込まれた回数及びデータが消去された回数の少なくとも一方を、前記メモリドライブごとにカウンタ情報として記録し、
    新たにデータ領域を生成するとき、前記カウンタ情報に基づいて、前記テンポラリ領域を新たにデータ領域として選択することを特徴とする請求項1に記載のストレージ装置。
  4. 前記セグメントに含まれる、前記データ領域及び前記冗長データ領域の合計数と、前記テンポラリ領域の数が等しいことを特徴とする請求項2に記載のストレージ装置。
  5. 前記冗長データ領域は、前記冗長データとして、当該冗長データ領域が属するセグメントに含まれるデータ領域の複製を格納することを特徴とする請求項2に記載のストレージ装置。
  6. 前記冗長データ領域は、前記冗長データとして、当該冗長データ領域が属するセグメントに含まれる複数のデータ領域に基づいて生成されるパリティ情報を格納することを特徴とする請求項2に記載のストレージ装置。
  7. 前記プロセッサは、新たに冗長データ領域を割り当てるとき、前記割り当てられた冗長データ領域の数が少ないメモリドライブに属するテンポラリ領域を選択することを特徴とする請求項6に記載のストレージ装置。
  8. 前記プロセッサは、
    前記グループを構成するメモリドライブに含まれる不良ページの数を記録し、
    前記不良ページの数が所定の閾値よりも大きくなった場合にはメモリドライブを閉塞して、前記閉塞されたメモリドライブへのデータの書き込みを禁止し、
    前記閉塞されたメモリドライブに格納されたデータを移動させるために、セグメントごとに移動先テンポラリ領域を選択し、
    前記閉塞されたメモリドライブから、読み出し可能なデータを読み出して、前記選択された移動先テンポラリ領域に当該読み出されたデータを書き込み、
    前記閉塞されたメモリドライブからデータを読み出せなかった場合には、前記読み出せなかったデータを復元し、前記選択された移動先テンポラリ領域に当該復元されたデータを書き込むことを特徴とする請求項2に記載のストレージ装置。
  9. 前記プロセッサは、
    前記グループを構成するメモリドライブに含まれる不良ページの数を記録し、
    前記不良ページの数が所定の閾値よりも大きくなった場合にはメモリドライブを閉塞して、前記閉塞されたメモリドライブへのデータの書き込みを禁止し、
    新たなメモリドライブの追加を要求し、
    前記新たなメモリドライブが追加されたとき、当該追加されたメモリドライブを前記グループに追加し、
    前記追加されたメモリドライブの記憶領域を、所定の容量ごとに分割して、テンポラリ領域として、既存のセグメントに追加し、
    前記閉塞されたメモリドライブから、読み出し可能なデータを読み出して、前記追加テンポラリ領域に当該読み出されたデータを書き込み、
    前記閉塞されたメモリドライブからデータを読み出せなかった場合には、前記読み出せなかったデータを復元し、前記追加テンポラリ領域に当該復元されたデータを書き込むことを特徴とする請求項2に記載のストレージ装置。
  10. 前記プロセッサは、前記ホスト計算機からデータの読み出し要求を受け付けた場合に、前記要求されたデータが格納されたデータ領域から前記要求されたデータを一時的に読み出すことができない場合には、前記要求されたデータが格納されたデータ領域が属するセグメントに含まれる他のデータ領域及び冗長データ領域に格納されたデータによって、前記要求されたデータを復元し、前記ホスト計算機に提供することを特徴とする請求項2に記載のストレージ装置。
  11. ネットワークを介してホスト計算機に接続され、当該ホスト計算機によって読み書きされるデータが格納されるストレージ装置におけるデータ配置制御方法であって、
    前記ネットワークに接続されるインタフェースと、前記インタフェースに接続されるプロセッサと、前記プロセッサに接続されるメモリと、前記読み書きされるデータが一時的に格納されるキャッシュメモリと、前記読み書きされるデータが格納される記憶装置と、を備え、
    前記記憶装置は、
    一つ以上の不揮発性メモリによって構成されたメモリドライブを搭載し、
    前記ホスト計算機に認識される記憶容量を提供するために必要なメモリドライブの台数よりも一台以上多いメモリドライブによってグループを構成し、
    前記グループを構成する各メモリドライブは、所定の容量ごとに記憶領域が分割され、
    前記分割された記憶領域は、前記グループを構成する各メモリドライブに含まれる分割された記憶領域が少なくとも一つ以上含まれるセグメントごとに管理され、
    前記データ配置制御方法は、
    前記プロセッサが、前記読み書きされるデータが格納されるデータ領域及び空き領域であるテンポラリ領域が前記セグメントにそれぞれ少なくとも一つ以上含まれるように、前記データ領域又は前記テンポラリ領域を前記分割された記憶領域にそれぞれ割り当て、
    前記プロセッサが、前記インタフェースを介して、前記ホスト計算機からデータの書き込み要求を受け付けた場合に、
    前記プロセッサが、前記書き込みデータが書き込まれるデータ領域を抽出し、
    前記プロセッサが、前記抽出されたデータ領域が含まれるセグメントを特定し、
    前記プロセッサが、前記書き込みデータの容量が、前記抽出されたデータ領域に格納されたデータの容量に基づいて決定される値よりも大きい場合には、
    前記プロセッサが、前記抽出されたデータ領域に格納されたデータを読み出して、当該読み出されたデータを前記書き込み要求に従って更新して、当該更新されたデータを前記キャッシュメモリに格納し、
    前記プロセッサが、前記特定されたセグメントに含まれるテンポラリ領域を選択し、
    前記プロセッサが、前記キャッシュメモリに格納されたデータを前記選択されたテンポラリ領域に書き込んで、前記選択されたテンポラリ領域を新たにデータ領域とし、
    前記プロセッサが、前記抽出されたデータ領域を消去して、新たにテンポラリ領域とすることを特徴とするデータ配置制御方法。
  12. 前記データ配置制御方法は、
    前記プロセッサが、さらに、前記データ領域の冗長データが格納される冗長データ領域が前記セグメントに少なくとも一つ以上含まれるように、前記冗長データ領域を前記分割された記憶領域に割り当て、
    前記プロセッサが、前記インタフェースを介して、前記ホスト計算機からデータの書き込みを受け付けた場合に、
    前記プロセッサが、前記抽出されたデータ領域の冗長データが格納された冗長データ領域を抽出し、
    前記プロセッサが、前記受け付けたデータの書き込み要求に基づいて、前記冗長データを更新して、前記キャッシュメモリに格納し、
    前記プロセッサが、前記特定されたセグメントに含まれる他のテンポラリ領域をさらに選択し、
    前記プロセッサが、前記キャッシュメモリに格納された冗長データを、前記選択された他のテンポラリ領域に書き込んで、当該冗長データが書き込まれたテンポラリ領域を新たに冗長データ領域とし、
    前記プロセッサが、前記抽出された冗長データ領域を消去して、新たにテンポラリ領域とすることを特徴とする請求項11に記載のデータ配置制御方法。
  13. 前記データ配置制御方法は、
    前記プロセッサが、前記分割された記憶領域に対して、データが書き込まれた回数及びデータが消去された回数の少なくとも一方を、前記メモリドライブごとにカウンタ情報として記録し、
    前記プロセッサが、新たにデータ領域を生成するとき、前記カウンタ情報に基づいて、前記テンポラリ領域を新たにデータ領域として選択することを特徴とする請求項11に記載のデータ配置制御方法。
  14. 前記セグメントに含まれる、前記データ領域及び前記冗長データ領域の合計数と、前記テンポラリ領域の数が等しいことを特徴とする請求項11に記載のデータ配置制御方法。
  15. 前記冗長データ領域は、前記冗長データとして、当該冗長データ領域が属するセグメントに含まれるデータ領域の複製を格納することを特徴とする請求項12に記載のデータ配置制御方法。
  16. 前記冗長データ領域は、前記冗長データとして、当該冗長データ領域が属するセグメントに含まれる複数のデータ領域に基づいて生成されるパリティ情報を格納することを特徴とする請求項12に記載のデータ配置制御方法。
  17. 前記データ配置制御方法は、前記プロセッサが、新たに冗長データ領域を割り当てるとき、前記割り当てられた冗長データ領域の数が少ないメモリドライブに属するテンポラリ領域を選択することを特徴とする請求項16に記載のデータ配置制御方法。
  18. 前記データ配置制御方法は、
    前記プロセッサが、前記グループを構成するメモリドライブに含まれる不良ページの数を記録し、
    前記プロセッサが、前記不良ページの数が所定の閾値よりも大きくなった場合にはメモリドライブを閉塞して、前記閉塞されたメモリドライブへのデータの書き込みを禁止し、
    前記プロセッサが、前記閉塞されたメモリドライブに格納されたデータを移動させるために、セグメントごとに移動先テンポラリ領域を選択し、
    前記プロセッサが、前記閉塞されたメモリドライブから、読み出し可能なデータを読み出して、前記選択された移動先テンポラリ領域に当該読み出されたデータを書き込み、
    前記プロセッサが、前記閉塞されたメモリドライブからデータを読み出せなかった場合には、前記読み出せなかったデータを復元し、前記選択された移動先テンポラリ領域に当該復元されたデータを書き込むことを特徴とする請求項12に記載のデータ配置制御方法。
  19. 前記データ配置制御方法は、
    前記プロセッサが、前記グループを構成するメモリドライブに含まれる不良ページの数を記録し、
    前記プロセッサが、前記不良ページの数が所定の閾値よりも大きくなった場合にはメモリドライブを閉塞して、前記閉塞されたメモリドライブへのデータの書き込みを禁止し、
    前記プロセッサが、新たなメモリドライブの追加を要求し、
    前記プロセッサが、前記新たなメモリドライブが追加されたとき、当該追加されたメモリドライブを前記グループに追加し、
    前記プロセッサが、前記追加されたメモリドライブの記憶領域を、所定の容量ごとに分割して、テンポラリ領域として、既存のセグメントに追加し、
    前記プロセッサが、前記閉塞されたメモリドライブから、読み出し可能なデータを読み出して、前記追加テンポラリ領域に当該読み出されたデータを書き込み、
    前記プロセッサが、前記閉塞されたメモリドライブからデータを読み出せなかった場合には、前記読み出せなかったデータを復元し、前記追加テンポラリ領域に当該復元されたデータを書き込むことを特徴とする請求項12に記載のデータ配置制御方法。
  20. 前記データ配置制御方法は、前記プロセッサが、前記ホスト計算機からデータの読み出し要求を受け付けた場合に、前記要求されたデータが格納されたデータ領域から前記要求されたデータを一時的に読み出すことができない場合には、前記要求されたデータが格納されたデータ領域が属するセグメントに含まれる他のデータ領域及び冗長データ領域に格納されたデータによって、前記要求されたデータを復元し、前記ホスト計算機に提供することを特徴とする請求項12に記載のデータ配置制御方法。
JP2007037623A 2007-02-19 2007-02-19 ストレージ装置及びデータ配置制御方法 Pending JP2008204041A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2007037623A JP2008204041A (ja) 2007-02-19 2007-02-19 ストレージ装置及びデータ配置制御方法
US12/007,329 US7831764B2 (en) 2007-02-19 2008-01-09 Storage system having plural flash memory drives and method for controlling data storage

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007037623A JP2008204041A (ja) 2007-02-19 2007-02-19 ストレージ装置及びデータ配置制御方法

Publications (1)

Publication Number Publication Date
JP2008204041A true JP2008204041A (ja) 2008-09-04

Family

ID=39707565

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007037623A Pending JP2008204041A (ja) 2007-02-19 2007-02-19 ストレージ装置及びデータ配置制御方法

Country Status (2)

Country Link
US (1) US7831764B2 (ja)
JP (1) JP2008204041A (ja)

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010102369A (ja) * 2008-10-21 2010-05-06 Hitachi Ltd ストレージシステム
WO2010084706A1 (ja) * 2009-01-23 2010-07-29 株式会社 東芝 半導体記憶装置を用いたraidシステム及びその制御方法
WO2011010348A1 (ja) * 2009-07-23 2011-01-27 株式会社日立製作所 フラッシュメモリ装置
JP2011081754A (ja) * 2009-10-09 2011-04-21 Chiba Univ 記録装置
JP2011165063A (ja) * 2010-02-12 2011-08-25 Toshiba Corp 半導体記憶装置
JP2011180831A (ja) * 2010-03-01 2011-09-15 Toshiba Corp 半導体記憶装置
JP2012507104A (ja) * 2008-10-28 2012-03-22 マイクロン テクノロジー, インク. 複数の半導体メモリユニットにおけるエラー訂正
JP2012519319A (ja) * 2009-05-25 2012-08-23 株式会社日立製作所 ストレージサブシステム
JP2012533099A (ja) * 2009-10-15 2012-12-20 株式会社日立製作所 ストレージシステム、ストレージ装置、ストレージシステムの記憶領域の最適化方法
JP2014029737A (ja) * 2013-11-13 2014-02-13 Chiba Univ 記録装置

Families Citing this family (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8843691B2 (en) * 2008-06-25 2014-09-23 Stec, Inc. Prioritized erasure of data blocks in a flash storage device
US20100017649A1 (en) * 2008-07-19 2010-01-21 Nanostar Corporation Data storage system with wear-leveling algorithm
US8407401B2 (en) * 2008-11-26 2013-03-26 Core Wireless Licensing S.A.R.L. Methods, apparatuses, and computer program products for enhancing memory erase functionality
US20100131726A1 (en) * 2008-11-26 2010-05-27 Nokia Corporation Methods, apparatuses, and computer program products for enhancing memory erase functionality
JP4439578B1 (ja) * 2008-12-24 2010-03-24 株式会社東芝 不揮発性半導体メモリドライブ装置および不揮発性半導体メモリドライブ装置のデータ管理方法
US20100174865A1 (en) * 2009-01-06 2010-07-08 International Business Machines Corporation Dynamic data security erasure
CN102209957B (zh) * 2009-02-26 2014-04-16 株式会社日立制作所 包括raid组的存储系统
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
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
TWI428917B (zh) * 2009-11-25 2014-03-01 Silicon Motion Inc 快閃記憶裝置、資料儲存系統、以及資料儲存系統之運作方法
TWI497293B (zh) 2009-12-17 2015-08-21 Ibm 固態儲存裝置內之資料管理
JP4877396B2 (ja) * 2010-01-20 2012-02-15 日本電気株式会社 メモリ障害処理システム、および、メモリ障害処理方法
US8484536B1 (en) * 2010-03-26 2013-07-09 Google Inc. Techniques for data storage, access, and maintenance
US8719675B1 (en) 2010-06-16 2014-05-06 Google Inc. Orthogonal coding for data storage, access, and maintenance
US8621317B1 (en) 2011-07-25 2013-12-31 Google Inc. Modified orthogonal coding techniques for storing data
US9424128B2 (en) * 2011-08-12 2016-08-23 Futurewei Technologies, Inc. Method and apparatus for flexible RAID in SSD
US8615698B1 (en) 2011-09-28 2013-12-24 Google Inc. Skewed orthogonal coding techniques
US9015411B2 (en) * 2011-12-02 2015-04-21 Compellent Technologies System and method for unbalanced raid management
US8856619B1 (en) 2012-03-09 2014-10-07 Google Inc. Storing data across groups of storage nodes
JP5937697B2 (ja) * 2012-04-27 2016-06-22 株式会社日立製作所 ストレージシステム
GB2503274A (en) * 2012-06-22 2013-12-25 Ibm Restoring redundancy in a RAID
JP6102800B2 (ja) * 2014-03-04 2017-03-29 ソニー株式会社 メモリコントローラ、記憶装置、情報処理システム、および、それらにおける制御方法。
US9519433B2 (en) 2015-05-13 2016-12-13 VSector Security Technologies, LLC Secure virtual sector erasure method and system
US11023313B2 (en) * 2019-09-27 2021-06-01 Dell Products L.P. Look-aside RAID controller storage-device-assisted data update system
US11416144B2 (en) 2019-12-12 2022-08-16 Pure Storage, Inc. Dynamic use of segment or zone power loss protection in a flash device
US11704192B2 (en) 2019-12-12 2023-07-18 Pure Storage, Inc. Budgeting open blocks based on power loss protection

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2582487B2 (ja) 1991-07-12 1997-02-19 インターナショナル・ビジネス・マシーンズ・コーポレイション 半導体メモリを用いた外部記憶システム及びその制御方法
JP3534585B2 (ja) 1997-10-21 2004-06-07 株式会社日立製作所 フラッシュメモリを複数使用した外部記憶装置のデータ記憶制御方法及び装置
JP2001051904A (ja) 1999-08-11 2001-02-23 Hitachi Ltd 不揮発性半導体メモリを用いた外部記憶装置
JP3942807B2 (ja) * 2000-06-06 2007-07-11 株式会社ルネサステクノロジ ブロックアラインメント機能付き半導体記憶装置
JP2003140837A (ja) * 2001-10-30 2003-05-16 Hitachi Ltd ディスクアレイ制御装置
US6957303B2 (en) * 2002-11-26 2005-10-18 Hitachi, Ltd. System and managing method for cluster-type storage
JP4338075B2 (ja) * 2003-07-22 2009-09-30 株式会社日立製作所 記憶装置システム
JP4405277B2 (ja) 2004-02-16 2010-01-27 株式会社日立製作所 ディスク制御装置
US7467238B2 (en) * 2004-02-10 2008-12-16 Hitachi, Ltd. Disk controller and storage system
JP4441286B2 (ja) * 2004-02-10 2010-03-31 株式会社日立製作所 ストレージシステム
JP4528551B2 (ja) * 2004-04-14 2010-08-18 株式会社日立製作所 ストレージシステム
JP2006072717A (ja) 2004-09-02 2006-03-16 Hitachi Ltd ディスクサブシステム
JP4713902B2 (ja) * 2005-03-01 2011-06-29 株式会社日立製作所 ストレージシステム
JP4842719B2 (ja) * 2006-06-28 2011-12-21 株式会社日立製作所 ストレージシステム及びそのデータ保護方法

Cited By (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010102369A (ja) * 2008-10-21 2010-05-06 Hitachi Ltd ストレージシステム
US10019310B2 (en) 2008-10-28 2018-07-10 Micron Technology, Inc. Error correction in multiple semiconductor memory units
JP2012507104A (ja) * 2008-10-28 2012-03-22 マイクロン テクノロジー, インク. 複数の半導体メモリユニットにおけるエラー訂正
US8799743B2 (en) 2008-10-28 2014-08-05 Micron Technology, Inc. Error correction in multiple semiconductor memory units
WO2010084706A1 (ja) * 2009-01-23 2010-07-29 株式会社 東芝 半導体記憶装置を用いたraidシステム及びその制御方法
US8549381B2 (en) 2009-05-25 2013-10-01 Hitachi, Ltd. Storage subsystem
JP2012519319A (ja) * 2009-05-25 2012-08-23 株式会社日立製作所 ストレージサブシステム
US8806300B2 (en) 2009-05-25 2014-08-12 Hitachi, Ltd. Storage subsystem
WO2011010348A1 (ja) * 2009-07-23 2011-01-27 株式会社日立製作所 フラッシュメモリ装置
JP2011081754A (ja) * 2009-10-09 2011-04-21 Chiba Univ 記録装置
JP2012533099A (ja) * 2009-10-15 2012-12-20 株式会社日立製作所 ストレージシステム、ストレージ装置、ストレージシステムの記憶領域の最適化方法
JP2011165063A (ja) * 2010-02-12 2011-08-25 Toshiba Corp 半導体記憶装置
US8788900B2 (en) 2010-02-12 2014-07-22 Kabushiki Kaisha Toshiba Semiconductor memory device
US8448034B2 (en) 2010-02-12 2013-05-21 Kabushiki Kaisha Toshiba Semiconductor memory device
KR101265410B1 (ko) * 2010-02-12 2013-05-16 가부시끼가이샤 도시바 반도체 메모리 장치
US9136020B2 (en) 2010-02-12 2015-09-15 Kabushiki Kaisha Toshiba Semiconductor memory device
US9165685B2 (en) 2010-02-12 2015-10-20 Kabushiki Kaisha Toshiba Semiconductor memory device
JP2011180831A (ja) * 2010-03-01 2011-09-15 Toshiba Corp 半導体記憶装置
JP2014029737A (ja) * 2013-11-13 2014-02-13 Chiba Univ 記録装置

Also Published As

Publication number Publication date
US20080201392A1 (en) 2008-08-21
US7831764B2 (en) 2010-11-09

Similar Documents

Publication Publication Date Title
JP2008204041A (ja) ストレージ装置及びデータ配置制御方法
US8904129B2 (en) Method and apparatus for backup and restore in a dynamic chunk allocation storage system
TWI497293B (zh) 固態儲存裝置內之資料管理
JP5242264B2 (ja) データ制御装置、ストレージシステムおよびプログラム
US7281089B2 (en) System and method for reorganizing data in a raid storage system
US7774643B2 (en) Method and apparatus for preventing permanent data loss due to single failure of a fault tolerant array
US8589724B2 (en) Rapid rebuild of a data set
JP5937697B2 (ja) ストレージシステム
US9946616B2 (en) Storage apparatus
JP5525605B2 (ja) フラッシュメモリモジュール
JP4821448B2 (ja) Raidコントローラおよびraid装置
WO2009130848A1 (ja) ストレージシステム及びストレージシステムの制御方法
JP2008015769A (ja) ストレージシステム及び書き込み分散方法
US20060156059A1 (en) Method and apparatus for reconstructing data in object-based storage arrays
JP4815825B2 (ja) ディスクアレイ装置及びその再構築方法
JP2016530637A (ja) Raidパリティストライプ再構成
US7721143B2 (en) Method for reducing rebuild time on a RAID device
US8938641B2 (en) Method and apparatus for synchronizing storage volumes
US8433949B2 (en) Disk array apparatus and physical disk restoration method
JP6817340B2 (ja) 計算機
JP2005107839A (ja) アレイコントローラ及びディスクアレイ再構築方法
JPH07306758A (ja) ディスクアレイ装置及びその制御方法
JP2023110180A (ja) ストレージ装置および制御方法
US12073089B2 (en) Storage device and data recovery method by storage device
JP6957845B2 (ja) ストレージ制御装置及びストレージ装置