JP6206160B2 - ストレージ制御装置、ストレージ制御プログラム及びストレージ制御方法 - Google Patents

ストレージ制御装置、ストレージ制御プログラム及びストレージ制御方法 Download PDF

Info

Publication number
JP6206160B2
JP6206160B2 JP2013261803A JP2013261803A JP6206160B2 JP 6206160 B2 JP6206160 B2 JP 6206160B2 JP 2013261803 A JP2013261803 A JP 2013261803A JP 2013261803 A JP2013261803 A JP 2013261803A JP 6206160 B2 JP6206160 B2 JP 6206160B2
Authority
JP
Japan
Prior art keywords
block
data
control unit
memory
memory cell
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
JP2013261803A
Other languages
English (en)
Other versions
JP2015118561A (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.)
Fujitsu Ltd
Original Assignee
Fujitsu 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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2013261803A priority Critical patent/JP6206160B2/ja
Priority to US14/551,130 priority patent/US9378092B2/en
Publication of JP2015118561A publication Critical patent/JP2015118561A/ja
Application granted granted Critical
Publication of JP6206160B2 publication Critical patent/JP6206160B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • G—PHYSICS
    • G06—COMPUTING OR CALCULATING; COUNTING
    • G06F—ELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00—Error detection; Error correction; Monitoring
    • G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076—Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • G06F11/1088—Reconstruction on already foreseen single or plurality of spare disks
    • G—PHYSICS
    • G06—COMPUTING OR CALCULATING; COUNTING
    • G06F—ELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00—Error detection; Error correction; Monitoring
    • G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076—Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • G06F11/108—Parity data distribution in semiconductor storages, e.g. in SSD
    • G—PHYSICS
    • G06—COMPUTING OR CALCULATING; COUNTING
    • G06F—ELECTRIC DIGITAL DATA PROCESSING
    • G06F2211/00—Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
    • G06F2211/10—Indexing scheme relating to G06F11/10
    • G06F2211/1002—Indexing scheme relating to G06F11/1076
    • G06F2211/1059—Parity-single bit-RAID5, i.e. RAID 5 implementations

Landscapes

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

Description

この発明は、メモリからのデータの読み出し方法に関する。
サーバ装置は、SSD(Solid−State Drive)やHDD(Hard Disc Drive)を記憶装置として搭載する。HDDは、磁性体を塗布した円盤ディスクを高速回転し、磁気ヘッドを移動することで、ディスクに格納された情報を読み出す記憶装置である。SSDは、NAND型フラッシュメモリを記憶媒体として用いる記憶装置である。サーバ装置は、SSDやHDDなどの各メモリを読込むことで、媒体の正常性診断を行うパトロールリード機能を有する。
SSDは、複数のメモリブロック(ブロック)を有する。各メモリブロックは、複数のページを有する。更に、各ページは、複数のメモリセルを有する。正常性診断の処理を制御する制御部は、メモリセル単位で、正常性の診断をする。制御部は、診断対象のメモリセルの先頭のアドレスを指定する。SSDは、指定されたアドレスを含むメモリセルからデータを読込み、制御部にデータを返信する。制御部は、SSDから指定したアドレスを含むメモリセルのデータを受信すると、そのメモリセルは正常であると判定する。制御部は、正常性診断がまだ行われていないメモリセルの先頭のアドレスを順番に指定し、残りのメモリセルに対しても正常性診断を行う。なお、SSDは、指定されたアドレスを含むメモリセルからデータを読込めない場合、メモリセルが故障していることを制御部に通知する。
SSDなどNAND型フラッシュメモリを用いた記憶装置は、経年劣化などにより、ブロック単位の故障が発生する。劣化による故障は、予め想定されている。そのため、SSDなどの媒体は、予備のブロックを有する。制御部は、故障が発生したブロックを故障ブロックとみなし、予備のブロックを故障ブロックと代替する。SSDは、故障ブロックの容量を予備のブロックで代替することで、媒体の初期容量を保つ。
予備のブロックを故障ブロックと代替するため、制御部は、故障ブロックに格納されていたデータを復旧し、その後、復旧したデータを予備ブロックに配置する。データの復旧方法は、ECC(Error−Correcting Code)やRAID(Redundant Array of Inexpensive Disc)などである。このような、復旧可能なエラーは、リトライアブルエラーと呼ばれる。
SSDにおけるデータ修復のための技術として、NANDメモリブロックを1組のグループとし、n−1個のデータを書き込む毎に、パリティデータを生成してn個目のデータとして、書き込みをする技術が知られている。(例えば、特許文献1参照)
パトロールリードに関連する技術として、外部からの要求に基づいて、アクセス対象のアドレスを診断し、シーケンシャルリードを実行させる技術が知られている。(例えば、特許文献2参照)
特開2010−152551号公報 特開2012−247817号公報
上述した背景技術では以下のような問題がある。
一例として、3つのメモリセルA、メモリセルB、メモリセルCを有するブロックが故障した場合を想定する。なお、ブロックの故障は、リトライアブルエラーである。制御部が正常性診断を実施し、メモリセルAの先頭アドレスを指定すると、SSDは、メモリセルAに格納されたデータを読込めず、故障を検出する。SSDは、ブロックが故障していることを、制御部に通知する。SSDは、故障ブロックのデータを復旧し、予備ブロックに復旧したデータを配置する処理を行う。一方、制御部は、正常性診断の処理を中断せずに、次のメモリセルBの正常性診断を開始する。故障ブロックのデータ復旧及び予備ブロックへの復旧データの配置が完了していない場合、SSDは、メモリセルBに格納されたデータを読込めず、ブロックが故障していることを検出し、制御部に通知する。その後、制御部は、正常性診断を引き続きメモリセルCに対して行う。すると、SSDは、メモリセルCに格納されたデータを読込めず、ブロックが故障していることを検出し、制御部に通知する。
制御部は、故障ブロックに対して正常性診断が行われる場合、1つ目のメモリセルを診断後、故障ブロックのデータ復旧及び予備ブロックへの復旧データの配置が完了するまで、複数回のエラーを通知される。制御部は、所定の回数のエラーを検出した場合に、SSDを問題のある記憶装置であると判断し、以降、該SSDを使用しないようにする。しかし、1つのブロックが故障した場合も、リトライアブルエラーである場合は、データが修復され、予備領域が代替で使用されるため、データの修復後、SSDの機能に何ら影響はない。上記のように、SSDの機能として、許容するはずのリトライアブルエラーであっても、制御部が、SSDを問題のある記憶装置と判断することがある。
1つの側面において、本発明の目的は、正常性診断を効率的に行うことである。
ストレージ制御装置は、インターフェースと、制御部とを備える。インターフェースは、複数のRAIDのグループを形成する複数のメモリブロックを備え、更に、複数のメモリブロックの予備として使用する予備ブロックを備える記憶装置との間でデータの入出力を行う。制御部は、記憶装置中の各メモリブロックが備える複数のメモリセルを読み出し対象とすると、故障したメモリブロックに含まれるメモリセルを読み出し対象に選択することがある。すると、制御部は、故障したメモリブロックのデータの修復及び予備ブロックへの修復したデータのコピーが完了するまで、故障したメモリブロックを有するRAIDのグループに属するメモリセルを、読み出し対象から外す。且つ、制御部は、故障したメモリブロックを有するRAIDのグループ以外のメモリセルを読み出し対象として選択する。制御部は、故障したメモリブロックのデータの修復及び予備ブロックへの修復したデータのコピーが完了すると、故障したメモリブロックを有するRAIDのグループに属するメモリセル及び予備ブロック中のメモリセルを、読み出し対象として選択する。
パトロールリードを効率的に行う。
第1の実施形態に係る正常性診断の処理の例を説明する図である。 本実施形態におけるストレージシステムの一例を示す。 第1の実施形態に係る正常性診断の処理の例を説明するシーケンス図である。 第2の実施形態に係る正常性診断の処理の例を説明するシーケンス図である。 第2の実施形態に係る正常性診断の処理の例を説明するシーケンス図である。 中断した正常性診断を再開する処理の例を説明するシーケンス図である。 正常性診断に用いる情報テーブルの例を説明する図である。 正常性診断に用いる情報テーブルの例を説明する図である。 グループ毎の先頭ブロックを正常性診断する処理の例を説明する図である。 SSD及びHDDを備えるストレージ装置の例を説明する図である。 SSDに用いる正常性診断処理の例を説明するフローチャートである。 SSDに用いる正常性診断処理の例を説明するフローチャートである。 予備ブロックへの修復データの配置が完了するまで実行される正常性診断の処理の例を説明するフローチャートである。 予備ブロックへの修復データの配置が完了するまで実行される正常性診断の処理の例を説明するフローチャートである。 正常性診断をスキップしたグループの正常性診断を行う処理の例を説明するフローチャートである。
以下、本実施形態について、図面を参照しながら詳細に説明する。
図1は、第1の実施形態に係る正常性診断の処理の例を説明する図である。図1のストレージ装置100は、制御部101とSSD110を有する。制御部101は、SSDの正常性診断の処理を制御する。SSD110は、NANDフラッシュメモリ117を記憶媒体として用いる記憶装置であり、複数のブロック111(111a〜111f)及び予備ブロック111gを有する。ブロック111は、メモリ管理単位である複数のメモリセルを含む。SSD110は、管理部115を有する。管理部115は、SSD110内の各ブロックに格納するデータを管理する。
一例として、図1のSSD110のブロック111a、ブロック111b、ブロック111cは、1つのグループである。グループは、例えば、RAID5によるデータの保持が可能である。そのため、管理部115は、AAという元データがある場合、AAのデータをA1、A2の2つに分割し、更に、AAのデータに対するパリティを生成する。管理部115は、A1、A2、AAのデータに対するパリティのデータをブロック111a、ブロック111b、ブロック111cに格納する。同様に、管理部115は、BBのデータをB1、B2の2つに分割し、更に、BBのデータに対するパリティを生成する。管理部115は、B1、B2、BBのデータに対するパリティのデータをブロック111a、ブロック111b、ブロック111cに格納する。なお、AA及びBBのデータは、異なるデータである。
A1、B1、パリティなどのデータは、各ブロック内のメモリセルに保持される。ブロック111aのメモリセル201aは、A1のデータを保持し、メモリセル201bは、B1のデータを保持している。ブロック111bのメモリセル202aは、A2のデータを保持し、メモリセル202bは、B2のデータを保持している。ブロック111cのメモリセル203aは、AAのデータに対するパリティ、メモリセル203bは、BBに対するパリティを保持している。次に、ブロック111d、ブロック111e、ブロック111fは、1つのグループである。ブロック111d〜ブロック111fは、MMを分割したM1、M2と、MMのデータに対するパリティを保持している。また、ブロック111d〜ブロック111fは、NNを分割したN1、N2と、NNのデータに対するパリティを保持している。そのため、ブロック111a〜ブロック111cのグループと、ブロック111d〜ブロック111fのグループとは、別のデータを記憶している。
以下に、ブロック111bに故障がある場合の、第1の実施形態に係る正常性診断の処理の例を順に説明する。なお、正常性診断は、メモリセル単位で、順番に処理を行う。
(A1)制御部101は、SSD110の正常性診断を開始する。
(A2)制御部101は、ブロック111aのメモリセル201aの先頭のアドレスを指定し、指定したアドレスを含むメモリセルが保持するデータの読み出し要求を管理部115に通知する。
(A3)管理部115は、メモリセル201aのデータをキャッシュ領域116に読み出す。管理部115は、更に、RAIDの整合性を保つため、A1の元データAAから分割されたA2及びパリティのデータをSSD110のキャッシュ領域116に読み出す。しかし、SSD110は、ブロック111bが故障しているため、ブロック111bからA2のデータを読み出せない。
(A4)管理部115は、ブロック111bからデータを読み出せないことを検出する。
(A5)管理部115は、検出した故障がリトライアブルエラーかを判定する。検出した故障がリトライアブルエラーかどうかの判定は、A2のデータを含むブロック111bに記憶されているデータが、ECC又はRAIDのパリティを用いて修復できるかで判定される。管理部115は、リトライアブルエラーが発生したことを制御部101に通知する。
(A6)検出したエラーがリトライアブルエラーである場合、管理部115は、ブロック111bのデータを修復し、予備ブロック111gにデータを配置する。なお、予備ブロック111gに配置されるデータは、ブロック111bと同じアドレスを指定してデータを格納する。
(A7)制御部101は、故障ブロック111bを含むグループの正常性診断をスキップする。制御部101は、故障ブロック111bを含まないグループについて、正常性診断を継続する。例えば、制御部101は、ブロック111dのメモリセル204a、メモリセル204bなどの順番で、順次メモリセルの先頭アドレスを指定して、指定したアドレスを含むメモリセルが保持するデータの読み出し要求を通知する。管理部115は、指定されたアドレスを含むメモリセルのデータを、制御部101に送信する。制御部101は、指定したアドレスを含むメモリセルは正常であると判定する。
(A8)制御部101は、スキップ処理をしたグループ以外の全ブロックの正常性診断が完了したかを判定する。制御部101は、スキップ処理をしたグループ以外の全ブロックの正常性診断が完了していると判定し、尚且つ、予備ブロック111gへのデータの配置が完了している場合、スキップ処理をしたグループ(ブロック111a〜ブロック111c)の正常性診断を行う。なお、管理部115は、ブロック111bが保持していたデータを読み出す際には、代替として予備ブロック111gからデータを読み出す。
(A9)全てのブロック111の正常性診断が完了すると、制御部101は、正常性診断の処理を終了する。
なお、(A5)の結果、リトライアブルエラーでない場合、制御部101は、(A6)(A8)の処理を実行しない。また、制御部101は、(A7)の正常性診断で、故障ブロックを検出した場合、(A5)から処理を繰り返す。図1のSSDは、ブロックの数やメモリセルの数を限定するものではない。また、A1〜B2などのデータも、一例であり、何らデータを限定するものではない。第1の実施形態では、ブロック111a、ブロック111b、ブロック111cのように、3つのブロックを1つのグループとしているものの、更に複数のブロックを1つのグループとしてもよい。
故障を検出したブロックを含むグループに対する正常性診断の処理をスキップすることにより、ある故障ブロックを含むグループに対する正常性診断から検出されるエラーは、1回である。これにより、故障のあるブロックを診断する場合であっても、正常性診断は、故障しているブロックに対して複数回の診断をしないため、1つのブロックについて複数回のエラー検出をしない。
図2は、本実施形態におけるストレージシステムの一例を示す。ストレージシステム11は、複数のディスク装置19を搭載したディスク記憶システムである。ホストコンピュータ(以下、ホストと称する)21からディスク装置19へのアクセスに関して、冗長化のために、各ディスク装置19に対して、2本のアクセスパスが存在している。またデータ自体についても、RAIDを用いて複数台のディスクにデータが分散されて、冗長化した状態で保存されている。
ストレージシステム11は、ホストコンピュータ(以下、ホストと称する)21、ファイバチャネル(FC)スイッチ22、コントローラエンクロージャ(CE)12、ドライブエンクロージャ(DE)18を含む。ストレージシステム11は、ドライブエンクロージャ(DE)18と、ホスト21とが、FCスイッチ22、コントローラモジュール(CM)13を介して接続されている。
ホスト21は、FCスイッチ22を介してコントローラエンクロージャ(CE)12と通信をして、ドライブエンクロージャ(DE)18が有するディスク装置19からデータを読み出したり、ディスク装置19にデータを書き込んだりする。なお、図2では、1つのホスト21を図示しているが、複数のホスト21が、コントローラエンクロージャ(CE)12に接続されていてもよい。
コントローラエンクロージャ(CE)12は、複数のコントローラモジュール(CM)13を含む。コントローラモジュール13は、ディスク装置19の動作制御を行う。各コントローラモジュール13は、ストレージ制御装置として機能する。ストレージシステム11は、運用に使用するコントローラモジュール(CM)13を2以上有することで、冗長性を確保する。
コントローラモジュール(CM)13は、アクセス指示情報として入出力(I/O)コマンドをドライブエンクロージャ(DE)18に送信し、ディスク装置19の記憶領域に対するデータの入出力指令を行う。また、入出力指令からアクセス監視時間が経過しても応答が得られないときは、コントローラモジュール(CM)13は、このI/O処理を中断するアボート指示コマンドをドライブエンクロージャ(DE)13に送信する。
コントローラモジュール13は、チャネルアダプタ(CA)14、中央演算装置(CPU:Central Processing Unit)15、記憶部16、デバイスアダプタ(DA)17を含む。チャネルアダプタ(CA)14、CPU15、記憶部16、デバイスアダプタ(DA)17は、内部バスを介して接続されている。なお、CPU15は、制御部101として動作する。
チャネルアダプタ(CA)14は、FCスイッチ22を介して、ホスト21と接続されている。CPU15は、コントローラモジュール13全体を制御する。
記憶部16は、例えば、キャッシュメモリ、ROM(Read Only Memory)、RAM(Random Access Memory)等の情報を記録するデバイスである。記憶部16には、コントローラモジュール13を動作させるために用いるデータ、及び本実施形態に係るプログラム及び本実施形態で用いるデータ等が格納される。
デバイスアダプタ(DA)17は、ドライブエンクロージャ(DE)18に接続される。CPU15は、デバイスアダプタ17を介してドライブエンクロージャ(DE)18との間でデータの送受信を行う。
ドライブエンクロージャ(DE)18は、1以上のドライブエンクロージャ(DE)より形成される。ドライブエンクロージャ(DE)18は、複数のディスク装置19を含み、冗長性を考慮したRAID構成を有する。なお、ディスク装置19は、ハードディスクドライブ(HDD)に限らず、例えばSSD(Solid State Drive)や、光磁気ディスク等であってもよい。また、本実施形態では、記憶装置の一例として、ディスク装置19を用いたが、これに限定されず、ランダムアクセス及びシーケンシャルアクセスのいずれのアクセス方法も可能な記憶装置であればよい。
図3は、第1の実施形態に係る正常性診断の処理の例を説明するシーケンス図である。なお、図3のシーケンス図の説明に、図1と同じストレージ装置を用いる。制御部101は、ブロック111aのメモリセル201aの先頭のアドレスを指定し、指定したアドレスを含むメモリセルが保持するデータの読み出し要求を管理部115に通知する(ステップS101)。管理部115は、メモリセル201aのデータをキャッシュ領域116に読み出す。併せて、管理部115は、RAIDの整合性を保つため、A1の元データAAから分割されたA2をキャッシュ領域116に読み出すそうとするが、ブロック111bが故障しているため、ブロック111bからA2のデータを読み出せない。管理部115は、リトライアブルエラーが発生したことを制御部101に通知する(ステップS102)。管理部115は、故障ブロックのデータ修復を行う(ステップS103)。管理部115は、予備ブロック111gに、修復したデータを配置する(ステップS104)。制御部101は、リトライアブルエラーが発生したことを、カウントする(ステップS105)。ここで、S103〜S104と、S105は並列して行われる。
制御部101は、故障ブロック111bを含むグループの正常性診断をスキップし、スキップをしたグループ以外のメモリセルを正常性診断の対象とする。制御部101は、正常性診断を継続するため、ブロック111dのメモリセル204aの先頭のアドレスを指定し、指定したアドレスを含むメモリセルが保持するデータの読み出し要求を管理部115に通知する(ステップS106)。管理部115は、指定されたアドレスを含むメモリセルからデータを読み出し、制御部101に送信する(ステップS107)。制御部101は、ブロック111dのメモリセル204bの先頭のアドレスを指定し、指定したアドレスを含むメモリセルが保持するデータの読み出し要求を管理部115に通知する(ステップS108)。管理部115は、指定されたアドレスを含むメモリセルからデータを読み出し、制御部101に送信する(ステップS109)。
S104の処理であるデータの修復、及び、予備ブロック111gへの修復されたデータの配置が、完了する(ステップS110)。制御部101は、スキップ処理をしたグループ以外の全ブロックの正常性診断を完了する(ステップS111)。ここで、S110とS111は逆であってもよい。次のS112の処理は、S110及びS111の完了後に実行される。
制御部101は、スキップ処理をしたグループの正常性診断を行う。制御部101は、ブロック111aのメモリセル201aの先頭のアドレスを指定し、指定したアドレスを含むメモリセルが保持するデータの読み出し要求を管理部115に通知する(ステップS112)。管理部115は、指定されたアドレスを含むメモリセルからデータを読み出し、制御部101に送信する(ステップS113)。制御部101は、ステップS112及びS113を繰り返し、全てのブロック111の正常性診断が完了すると、正常性診断の処理を終了する。
<正常性診断の変形例>
第2の実施形態に係る正常性診断の処理は、リトライアブルエラーにより修復したデータを予備ブロックに配置完了後に、継続していた正常性確認の処理を一旦中断し、正常性診断をスキップしたグループの正常性診断を行う。
以下に、ブロック111bに故障がある場合の、第2の実施形態に係る正常性診断の処理の例を順に説明する。第2の実施形態に係る正常性診断は、第1の実施形態に係る正常性診断の処理(A1)〜(A6)の後に実行される処理である。第2の実施形態に係る正常性診断の処理の説明に、図1と同じストレージ装置を用いる。
(B1)制御部101は、故障ブロック111bを含むグループの正常性診断をスキップする。制御部101は、故障ブロック111bを含まないグループのブロック111dから、正常性診断を継続する。例えば、制御部101は、ブロック111dのメモリセル204a、メモリセル204bなどの順番で、順次メモリセルの先頭アドレスを指定して、指定したアドレスを含むメモリセルが保持するデータの読み出し要求を通知する。管理部115は、指定されたアドレスを含むメモリセルのデータを、制御部101に送信する。制御部101は、指定したアドレスを含むメモリセルは正常であると判定する。更に、制御部101は、管理部115からデータを受信する毎に、予備ブロック111gへの修復データの配置が完了したかを確認する要求を管理部115に通知する。
(B2)制御部101は、予備ブロック111gへの修復データの配置が完了している場合、実行中の正常性診断処理を中断し、正常性処理をスキップしたグループの正常性診断を行う。
(B3)正常性診断をスキップしたグループを対象とした正常性診断が完了する。制御部101は、中断していた正常性診断を再開する。
(B4)制御部101は、全てのブロック111の正常性診断が完了したかを判定する。全てのブロック111の正常性診断が完了すると、制御部101は、正常性診断の処理を終了する。
図4は、第2の実施形態に係る正常性診断の処理の例を説明するシーケンス図である。図4のシーケンス図の説明に、図1と同じストレージ装置を用いる。図4Aは、SSDに対して正常性診断を開始した場合の例である。制御部101は、ブロック111aのメモリセル201aの先頭のアドレスを指定し、指定したアドレスを含むメモリセルが保持するデータの読み出し要求を管理部115に通知する(ステップS201)。管理部115は、メモリセル201aのデータをキャッシュ領域116に読み出す。併せて、管理部115は、RAIDの整合性を保つため、A1の元データAAから分割されたA2をキャッシュ領域116に読み出すそうとするが、ブロック111bが故障しているため、ブロック111bからA2のデータを読み出せない。管理部115は、リトライアブルエラーが発生したことを制御部101に通知する(ステップS202)。管理部115は、故障ブロックのデータ修復を行う(ステップS203)。管理部115は、予備ブロック111gに、修復したデータを配置する(ステップS204)。制御部101は、リトライアブルエラーが発生したことを、カウントする(ステップS205)。ここで、S203〜S204と、S205は並列して行われる。
制御部101は、故障ブロックを含むグループの正常性診断をスキップする。制御部101は、スキップをしたグループ以外で、次の正常性診断の対象となるメモリセルのアドレスである着目アドレスに、ブロック111dのメモリセル204aの先頭のアドレスを設定する。更に、制御部101は、S204の予備ブロック111gへのデータの配置が完了したかの確認要求を、管理部115へ送信する(ステップS206)。管理部115は、制御部101からの確認要求への応答として、予備ブロック111gへのデータの配置が完了していないことを制御部101へ通知する(ステップS207)。制御部101は、wait_patrolのカウントに1加算する(ステップS208)。
制御部101は、故障ブロック111bを含むグループの正常性診断をスキップし、スキップをしたグループ以外のメモリセルに対して正常性診断を行う。制御部101は、正常性診断を継続するため、ブロック111dのメモリセル204aの先頭のアドレスを指定し、指定したアドレスを含むメモリセルが保持するデータの読み出し要求を管理部115に通知する(ステップS209)。管理部115は、指定されたアドレスを含むメモリセルからデータを読み出し、制御部101に送信する(ステップS210)。制御部101は、S204の予備ブロック111gへのデータの配置が完了したかの確認要求を、管理部115へ送信する(ステップS211)。管理部115は、制御部101からの確認要求への応答として、予備ブロック111gへのデータの配置が完了していないことを制御部101へ通知する(ステップS212)。制御部101は、wait_patrolのカウントに1加算する(ステップS213)。制御部101は、ブロック111dのメモリセル204bの先頭のアドレスを指定し、指定したアドレスを含むメモリセルが保持するデータの読み出し要求を管理部115に通知する(ステップS214)。管理部115は、指定されたアドレスを含むメモリセルからデータを読み出し、制御部101に送信する(ステップS215)。制御部101は、S204の予備ブロック111gへのデータの配置が完了したかの確認要求を、管理部115へ送信する(ステップS216)。管理部115は、制御部101からの確認要求への応答として、予備ブロック111gへのデータの配置が完了していないことを制御部101へ通知する(ステップS217)。制御部101は、wait_patrolのカウントに1加算する(ステップS218)。
S218後も、S204の予備ブロック111gへのデータの配置処理が完了するまで、制御部101及び管理部115は、S209〜S210やS214〜S215など正常性診断を継続していく。更に、管理部115から指定したアドレスを含むメモリセルのデータを受信する毎に、制御部101及び管理部115は、S211〜S213やS216〜S218などの、予備ブロック111gへのデータの配置が完了しているかの確認の通信をする。
図4Bは、予備ブロックへのデータ配置完了後の正常性診断処理の例を説明するシーケンス図である。制御部101は、メモリセルXXの先頭のアドレスを指定し、指定したアドレスを含むメモリセルが保持するデータの読み出し要求を管理部115に通知する(ステップS301)。メモリセルXXは、予備ブロック111gへのデータの配置が完了したときに、S218後に継続されている正常性診断が診断しているメモリセルである。管理部115は、指定されたアドレスを含むメモリセルからデータを読み出し、制御部101に送信する(ステップS302)。制御部101は、S204の予備ブロック111gへのデータの配置が完了したかの確認要求を、管理部115へ送信する(ステップS303)。管理部115は、制御部101からの確認要求への応答として、予備ブロック111gへのデータの配置が完了していることを制御部101へ通知する(ステップS304)。制御部101は、wait_patrolのカウントに1加算する(ステップS305)。
制御部101は、S209から行われてきた正常性診断を一旦中断する。制御部101は、スキップ処理をしたグループの正常性診断を行う。制御部101は、ブロック111aのメモリセル201aの先頭のアドレスを指定し、指定したアドレスを含むメモリセルが保持するデータの読み出し要求を管理部115に通知する(ステップS306)。管理部115は、指定されたアドレスを含むメモリセルからデータを読み出し、制御部101に送信する(ステップS307)。制御部101は、ブロック111aのメモリセル201bの先頭のアドレスを指定し、指定したアドレスを含むメモリセルが保持するデータの読み出し要求を管理部115に通知する(ステップS308)。管理部115は、指定されたアドレスを含むメモリセルからデータを読み出し、制御部101に送信する(ステップS309)。
S309の後も、制御部101及び管理部115は、着目アドレスに設定したアドレスに達するまで、S306〜S308までのような正常性診断を継続する。
図5は、中断した正常性診断を再開する処理の例を説明するシーケンス図である。図5のシーケンス図は、図4Bの後に、正常性診断をスキップされたグループの正常性診断が全て完了した後に実行される処理を説明している。図5のシーケンス図の説明に、図1と同じストレージ装置を用いる。制御部101は、正常性診断をスキップしたグループの最後のメモリセルの先頭のアドレスを指定し、指定したアドレスを含むメモリセルが保持するデータの読み出し要求を管理部115に通知する(ステップS401)。管理部115は、指定されたアドレスを含むメモリセルからデータを読み出し、制御部101に送信する(ステップS402)。制御部101は、正常性診断をスキップしたグループの最後のメモリセルからwait_patrolのカウント個数分後のメモリセルを、次の診断対象とする(ステップS403)。制御部101は、wait_patrolのカウントの値をクリアする(ステップS404)。ここで、正常性診断をスキップしたグループの最後のメモリセルからwait_patrolのカウント個数分後のメモリセルは、メモリセルXXの次のメモリセルである。
制御部101は、メモリセルXXの次のメモリセルの先頭アドレスを指定し、指定したアドレスを含むメモリセルが保持するデータの読み出し要求を管理部115に通知する(ステップS405)。管理部115は、指定されたアドレスを含むメモリセルからデータを読み出し、制御部101に送信する(ステップS406)。制御部101は、メモリセルXXから2個後のメモリセルの先頭アドレスを指定し、指定したアドレスを含むメモリセルが保持するデータの読み出し要求を管理部115に通知する(ステップS407)。管理部115は、指定されたアドレスを含むメモリセルからデータを読み出し、制御部101に送信する(ステップS408)。全てのブロック111の正常性診断が完了すると、制御部101は、正常性診断の処理を終了する。
図6は、正常性診断に用いる情報テーブルの例を説明する図である。図6Aは、リトライアブルエラーが発生した際に用いる情報テーブルである。リトライアブルエラーが発生した際に用いる情報テーブルは、リトライアブルエラーが検出されたメモリセルの先頭アドレスの情報と、別のリトライアブルエラーが発生した際に用いる情報テーブルのアドレスとを対応づけて保持する。
制御部101は、1回目のリトライアブルエラーの通知を受けた場合、エラーテーブル(ERR_TBL)301aを生成する。エラーテーブル301aは、リトライアブルエラーが検出されたメモリセルの先頭アドレスを保持する。制御部101は、2回目のリトライアブルエラーの通知を受けた場合、エラーテーブル301bを生成する。2回目のリトライアブルエラーを検出する場合は、1回目のリトライアブルエラーとは別のブロックに故障が発生している時である。制御部101は、エラーテーブル301aに、エラーテーブル301bのアドレス情報を記憶させ、更に、エラーテーブル301bに2回目のリトライアブルエラーが検出されたメモリセルの先頭アドレスを保持させる。制御部101は、3回目のリトライアブルエラーの通知を受けた場合、エラーテーブル301cを生成する。3回目のリトライアブルエラーを検出する場合は、1回目及び2回目のリトライアブルエラーとは別のブロックに故障が発生している時である。制御部101は、エラーテーブル301bに、エラーテーブル301cのアドレス情報を記憶させ、更に、エラーテーブル301cに3回目のリトライアブルエラーが検出されたメモリセルの先頭アドレスを保持させる。更に複数回のリトライアブルエラーが検出された場合、制御部101は、リトライアブルエラーの回数分のエラーテーブル301を生成する。なお、制御部101は、エラーテーブル301に保持されているアドレスに該当するメモリセルを含むブロックの正常性診断が完了すると、エラーテーブル301を削除する。
図6Bは、予備ブロックへのデータの配置が完了したかの確認に用いる情報テーブルである。予備ブロックへのデータの配置が完了したかの確認に用いる情報テーブルは、着目アドレスと、確認要求の回数とを対応付けて保持する。更に、予備ブロックへのデータの配置が完了したかの確認に用いる情報テーブルは、別の予備ブロックへのデータの配置が完了したかの確認に用いる情報テーブルのアドレス情報を保持する。
制御部101は、1回目のリトライアブルエラー後の1回目の確認要求時に、wait_seqrdテーブル302aを生成する。wait_seqrdテーブル302aは、S206で着目アドレスに設定されたメモリセルの先頭アドレスを保持する。制御部101は、1回目のリトライアブルエラー後、確認要求毎に、制御部101は、確認要求の回数を加算し、wait_seqrdテーブル302aに保持させる。
次に、制御部101は、2回目のリトライアブルエラーに基づいた予備ブロックへのデータ移動に対する1回目の確認要求時に、wait_seqrdテーブル302bを生成する。制御部101は、wait_seqrdテーブル302aに、wait_seqrdテーブル302bのアドレス情報を記憶させる。wait_seqrdテーブル302bは、2回目のリトライアブルエラーにより設定された着目アドレスの先頭アドレスを保持する。更に、制御部101は、2回目のリトライアブルエラーに基づいた予備ブロックへのデータ移動に対する確認要求毎に、制御部101は、確認要求の回数をwait_seqrdテーブル302bに保持させる。
次に、制御部101は、3回目のリトライアブルエラーに基づいた予備ブロックへのデータ移動に対する1回目の確認要求時に、wait_seqrdテーブル302cを生成する。制御部101は、wait_seqrdテーブル302bに、wait_seqrdテーブル302cのアドレス情報を記憶させる。wait_seqrdテーブル302cは、3回目のリトライアブルエラーにより設定された着目アドレスの先頭アドレスを保持する。更に、制御部101は、3回目のリトライアブルエラーに基づいた予備ブロックへのデータ移動に対する確認要求毎に、制御部101は、確認要求の回数を加算し、をwait_seqrdテーブル302cに保持させる。更に複数回のリトライアブルエラーが検出された場合、制御部101は、リトライアブルエラーの回数分のwait_seqrdテーブル302を生成する。なお、制御部101は、S405のように、パトロールリードの再開でwait_seqrdテーブル302が使用されると、使用されたテーブルを削除する。
<SSDに用いる正常性診断処理例>
図7は、グループ毎の先頭ブロックを正常性診断する処理の例を説明する図である。図7で説明する正常性診断処理は、複数のブロックを有するグループ毎に、先頭のブロックを診断し、残りのブロックに対する診断を行わない。また、リトライアブルエラーを検出した場合、図7で説明する正常性診断処理は、第1及び第2の実施形態に示した正常性診断の例を導入する。
図7のSSD110は、複数のブロック111と、キャッシュ領域116を有する。SSD110は、ブロック111a1〜ブロック111a32を有するRAID5(31+1)のグループを備える。同様に、ブロック111b1〜ブロック111b32、ブロック111c1〜ブロック111c32、が、RAID5(31+1)のグループである。RAID5(31+1)では、1つのデータが31等分されて、例えば、ブロック111a1〜ブロック111a31に保持されている。図7のSSD110では、1つのデータは、メモリセル0〜メモリセル31に分割して保持されている。また、RAID5(31+1)のグループは、パリティを保持する。
SSD110のように、複数のRAID5(31+1)のグループを有する記憶媒体に対して正常性診断を行う場合、制御部101は、RAIDグループ毎に、少なくとも1つのブロックを診断すればよい。一例として、ブロック111a1のメモリセル0のデータが読み出された場合、管理部115は、RAIDの整合性を確認するため、メモリセル0に格納されているデータの元データから分割されたデータを読み出す。管理部115は、メモリセル1〜メモリセル31及びパリティのデータをSSD110のキャッシュ領域116に読み出す。
ブロック111a1に対する正常性診断が終了し、次に、ブロック111b1の正常性診断を行う場合、制御部101は、メモリセル1の診断を行う。制御部101が、メモリセル1の先頭アドレスを指定した場合、メモリセル1のデータは、既にキャッシュ領域116に読み出されている。そのため、管理部115は、メモリセル1のデータの読み出し要求を受信しても、メモリセル1からデータの読み出しを行わず、キャッシュ領域116からデータを読み出す。以降、メモリセル2〜メモリセル31に対する制御部101からのアドレス指定がなされた場合、管理部115は、キャッシュ領域116から各データを読み出す。そのため、メモリセル1〜メモリセル31及びパリティを指定する制御部101からの読み出し要求は、記憶媒体であるブロックの正常性診断をしていない。
制御部101からメモリセル0の読み出し要求を受信した場合、管理部115は、メモリセル0をキャッシュ領域116に読み出し、更に、メモリセル1〜メモリセル31及びパリティのデータをキャッシュ領域116に読み出す。そのため、制御部101が、1つのメモリセルに対して読み出し要求を出したことにより、メモリセル0〜メモリセル31及びパリティデータを保持するブロック111に対して正常性診断が行われたこととなる。よって、複数のRAID5のグループを有する記憶媒体に対して正常性診断を行う場合、制御部101は、RAID5のグループ毎に、少なくとも1つのブロックを診断すればよい。
なお、第1の形態及び第2の実施形態、及びグループ毎に少なくとも1つのブロックを診断する処理の例は、正常性診断に限られない。第1の形態及び第2の実施形態、及びグループ毎に少なくとも1つのブロックを診断する処理の例は、SSD内の全ページやブロックをメモリセル毎に読込む動作が伴うものに対して適用できる。例えば、リビルド処理やコピーバックといった処理である。リビルド処理は、メモリセル毎に読込む動作を、RAID1、RAID1+0などで故障SSDのミラーからデータを読み出す際に行う。コピーバック処理は、メモリセル毎に読込む動作を、RAID内の故障SSDを交換した場合に、他の記憶媒体からデータをコピーする際に行う。
図8は、SSD及びHDDを備えるストレージ装置の例を説明する図である。ストレージ装置100は、制御部101a及び制御部101b、SSD110(110a〜110d)、HDD220(220a〜220h)を備える。
制御部101aは、HDD220a〜HDD220dとSSD110a〜SSD110bを対象とする処理を制御する。制御部101bは、HDD220e〜HDD220hとSSD110c〜SSD110dを対象とする処理を制御する。制御部101は、例えば、RAIDコントローラである。制御部101は、外部装置との通信により、正常性診断、リビルド、コピーバックなどの処理を制御する。制御部101は、正常性診断、リビルド、コピーバックなどの処理をする場合、処理の対象がHDD220かSSD110かを判定する。HDD220かSSD110かを判断するのは、例えば、SCSIコマンドを使用することで、媒体のタイプを特定すればよい。制御部101は、処理の対象がHDD220の場合、正常性診断、リビルド、コピーバックなどの処理を実行する。制御部101は、処理の対象がSSD110の場合、複数のブロックを有するグループ毎に、先頭のブロックをメモリセル毎に読込む処理をする。制御部101は、処理の対象がSSD110であり、故障を検出した場合は、第1及び第2の実施形態の処理を行う。
図9は、SSDに用いる正常性診断処理の例を説明するフローチャートである。図9のフローチャートの説明に、図1と同じストレージ装置を用いる。制御部101は、グループ毎の先頭ブロックを対象に、メモリセル毎の正常性診断を実行する(ステップS501)。制御部101は、管理部115からの正常性診断の応答が、リトライアブルエラーの通知であるかを判定する(ステップS502)。制御部101は、故障ブロックを含むグループの正常性診断をスキップし、予備ブロックへの修復データの配置が完了するまで、故障ブロックを含まないグループの正常性診断を継続する(ステップS503、ステップS502でYES)。制御部101は、予備ブロックへの修復データの配置が完了すると、実行中の正常性診断処理を中断し、正常性処理をスキップしたグループの正常性診断を行う(ステップS504)。制御部101は、S504において、リトライアブルエラーを検出した場合、処理をS503に戻す。
制御部101は、着目アドレスに故障したメモリセルの先頭アドレス情報が設定されているかを判定する(ステップS505、ステップS502でNO)。制御部101は、S504で中断した正常性診断を再開する(ステップS506、ステップS505でYES)。制御部101は、グループ毎の先頭ブロックを対象とした正常性診断が全部完了したかを判定する(ステップS507、ステップS505でNO)。制御部101は、着目アドレスで指定されたアドレスを有するメモリセルの正常性診断をする(ステップS508、ステップS507でNO)。制御部101は、管理部115からの正常性診断の応答が、リトライアブルエラーの通知であるかを判定する(ステップS509)。制御部101は、故障ブロックを含むグループの正常性診断をスキップし、予備ブロックへの修復データの配置が完了するまで、故障ブロックを含まないグループの正常性診断を継続する(ステップS510、ステップS509でYES)。制御部101は、予備ブロックへの修復データの配置が完了すると、実行中の正常性診断処理を中断し、正常性処理をスキップしたグループの正常性診断を行う(ステップS511)。S511が終了すると、制御部101は、処理をS505に戻す。制御部101は、着目アドレスに、次のメモリセルの先頭アドレスを設定する(ステップS512、ステップS509でNO)。制御部101は、次のメモリセルの先頭アドレスを、例えば、Line_shiftなどのコマンドにより求める。S512が終了すると制御部101は、処理をS505に戻す。制御部101は、正常性診断の処理を終了する(ステップS513、ステップS507でYES)。
図10は、予備ブロックへの修復データの配置が完了するまで実行される正常性診断の処理の例を説明するフローチャートである。図10のフローチャートは、図9のS503の処理を詳細に説明したフローチャートである。制御部101は、管理部115からのリトライアブルエラーの通知回数をカウントする(ステップS601)。制御部101は、リトライアブルエラーの通知回数が、所定の閾値に達したかを判定する(ステップS602)。制御部101は、SSDが故障していると判定し、故障しているSSDの使用を中止する(ステップS603、ステップS602でYES)。
制御部101は、リトライアブルエラーを検出したメモリセルの先頭アドレスの情報をERR_TBLに格納する(ステップS604、ステップS602でNO)。制御部101は、予備ブロックへの修復データの配置が完了しているかを判定する(ステップS605)。予備ブロックへの修復データの配置が完了は、例えば、SSDのログなどを参照する。制御部101は、次のグループの先頭ブロックの先頭アドレスを着目アドレスに設定する(ステップS606)。制御部101は、着目アドレスで指定されたアドレスを有するメモリセルの正常性診断をする(ステップS607)。制御部101は、管理部115からの正常性診断の応答が、リトライアブルエラーの通知であるかを判定する(ステップS608)。制御部101は、処理をS602から繰り返す(ステップS608でYES)。制御部101は、予備ブロックへのデータの配置が完了したかの確認要求の回数に、1を加算する(ステップS609、ステップS608でNO)。制御部101は、着目アドレスに、次のメモリセルの先頭アドレスを設定する(ステップS610)。制御部101は、着目アドレスで指定されたアドレスを有するメモリセルの正常性診断をする(ステップS611)。制御部101は、管理部115からの正常性診断の応答が、リトライアブルエラーの通知であるかを判定する(ステップS612)。制御部101は、S602から処理を繰り返す(ステップS612でYES)。制御部101は、予備ブロックへの修復データの配置が完了しているかを判定する(ステップS613、ステップS612でNO)。制御部101は、S609から処理を繰り返す(ステップS613でNO)。制御部101は、着目アドレスに設定されている値をクリアする(ステップS614、ステップS613でYES)。制御部101は、予備ブロックへの修復データの配置が完了するまで実行される正常性診断の処理を終了する。
図11は、正常性診断をスキップしたグループの正常性診断を行う処理の例を説明するフローチャートである。制御部101は、ERR_TBLを用いて、リトライアブルエラーを検出したメモリセルから正常性診断を行う(ステップS701)。制御部101は、管理部115からの正常性診断の応答が、リトライアブルエラーの通知であるかを判定する(ステップS702)。制御部101は、故障ブロックを含むグループの正常性診断をスキップし、予備ブロックへの修復データの配置が完了するまで、故障ブロックを含まないグループの正常性診断を継続する(ステップS703、ステップS702でYES)。制御部101は、次のメモリセルの先頭アドレスを含むメモリセルを次の診断対象とする(ステップS704、ステップS702でNO)。制御部101は、正常性診断をスキップしたグループの診断が全て完了したかを判定する(ステップS705)。制御部101は、処理をS701から繰り返す(ステップS705でNO)。制御部101は、S701で使用したERR_TBLが、別のERR_TBLのアドレスを保持していないことを判定する(ステップS706)。制御部101は、別のERR_TBLを選択し、次の正常性診断対象とする(ステップS707)。制御部101は、S707が終了すると、処理をS701から繰り返す。制御部101は、ERR_TBLを初期化する(ステップS708、ステップS706でYES)。制御部101は、S708の処理が終了すると、処理をS505から実行する。
以上、説明したように、実施形態にかかる方法では、故障を検出したブロックを含むグループに対する正常性診断の処理をスキップすることにより、ある故障ブロックを含むグループに対する正常性診断から検出されるエラーは、1回である。これにより、故障のあるブロックを診断する場合であっても、正常性診断は、故障しているブロックに対して複数回の診断をしないため、1つのブロックについて複数回のエラー検出をしない。
100 ストレージ装置
101 制御部
110 SSD
111(111a〜111f) ブロック
111g 予備ブロック
115 管理部
116 キャッシュ領域
220 HDD
301 エラーテーブル
302 wait_seqrdテーブル

Claims (5)

  1. 複数のRAIDのグループを形成する複数のメモリブロックを備え、更に、前記複数のメモリブロックの予備として使用する予備ブロックを備える記憶装置との間でデータの入出力を行うインターフェースと、
    前記記憶装置中の各メモリブロックが備える複数のメモリセルから、故障したメモリブロックに含まれるメモリセルを読み出し対象に選択すると、前記故障したメモリブロックのデータの修復及び前記予備ブロックへの修復したデータのコピーが完了するまで、前記故障したメモリブロックを有するRAIDのグループに属するメモリセルを、前記読み出し対象から外し、且つ、
    前記故障したメモリブロックを有するRAIDのグループ以外のメモリセルを前記読み出し対象として選択し、
    前記故障したメモリブロックのデータの修復及び前記予備ブロックへの修復したデータのコピーが完了すると、データの修復が完了したメモリブロックを有するRAIDのグループに属するメモリセル及び前記予備ブロック中のメモリセルを、前記読み出し対象として選択する制御を、前記インターフェースを介して行う制御部と、を備える
    ことを特徴とするストレージ制御装置。
  2. 前記制御部は、
    前記記憶装置中の全メモリセルが読み出し対象に指定されると、
    前記全メモリセルのうち、前記故障したメモリブロックを有するRAIDのグループ以外に含まれるメモリセルの読み出し処理が完了し、且つ、修復したデータの予備のブロックへのコピーを完了すると、前記故障したメモリブロックを有するRAIDのグループに属するメモリセル及び前記予備ブロック中のメモリセルを、前記読み出し対象として選択する
    ことを特徴とする請求項1に記載のストレージ制御装置。
  3. 前記制御部は、
    前記記憶装置中の全メモリセルが読み出し対象に指定されると、
    前記RAIDのグループ毎に、1つのメモリブロックに含まれるメモリセルを前記読み出し対象の候補とする
    ことを特徴とする請求項1に記載のストレージ制御装置。
  4. 複数のRAIDのグループを形成する複数のメモリブロックを備え、更に、前記複数のメモリブロックの予備として使用する予備ブロックを備える記憶装置を読み出し対象とするストレージ制御装置が、
    前記記憶装置中の各メモリブロックが備える複数のメモリセルから、故障したメモリブロックに含まれるメモリセルを前記読み出し対象に選択すると、前記故障したメモリブロックのデータの修復及び前記予備ブロックへの修復したデータのコピーが完了するまで、前記故障したメモリブロックを有するRAIDのグループに属するメモリセルを、前記読み出し対象から外し、且つ、
    前記故障したメモリブロックを有するRAIDのグループ以外のメモリセルを前記読み出し対象として選択し、
    前記故障したメモリブロックのデータの修復及び前記予備ブロックへの修復したデータのコピーが完了すると、データの修復が完了したメモリブロックを有するRAIDのグループに属するメモリセル及び前記予備ブロック中のメモリセルを、前記読み出し対象として選択する
    ことを特徴とするストレージ制御方法。
  5. 複数のRAIDのグループを形成する複数のメモリブロックを備え、更に、前記複数のメモリブロックの予備として使用する予備ブロックを備える記憶装置を読み出し対象とするストレージ制御装置に、
    前記記憶装置中の各メモリブロックが備える複数のメモリセルから、故障したメモリブロックに含まれるメモリセルが前記読み出し対象に選択されると、前記故障したメモリブロックのデータの修復及び前記予備ブロックへの修復したデータのコピーが完了するまで、前記故障したメモリブロックを有するRAIDのグループに属するメモリセルを、前記読み出し対象から外し、且つ、
    前記故障したメモリブロックを有するRAIDのグループ以外のメモリセルを前記読み出し対象として選択し、
    前記故障したメモリブロックのデータの修復及び前記予備ブロックへの修復したデータのコピーが完了すると、データの修復が完了したメモリブロックを有するRAIDのグループに属するメモリセル及び前記予備ブロック中のメモリセルを、前記読み出し対象として選択する制御をする
    処理を実行させることを特徴とするストレージ制御プログラム。
JP2013261803A 2013-12-18 2013-12-18 ストレージ制御装置、ストレージ制御プログラム及びストレージ制御方法 Expired - Fee Related JP6206160B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2013261803A JP6206160B2 (ja) 2013-12-18 2013-12-18 ストレージ制御装置、ストレージ制御プログラム及びストレージ制御方法
US14/551,130 US9378092B2 (en) 2013-12-18 2014-11-24 Storage control apparatus and storage control method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013261803A JP6206160B2 (ja) 2013-12-18 2013-12-18 ストレージ制御装置、ストレージ制御プログラム及びストレージ制御方法

Publications (2)

Publication Number Publication Date
JP2015118561A JP2015118561A (ja) 2015-06-25
JP6206160B2 true JP6206160B2 (ja) 2017-10-04

Family

ID=53368573

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013261803A Expired - Fee Related JP6206160B2 (ja) 2013-12-18 2013-12-18 ストレージ制御装置、ストレージ制御プログラム及びストレージ制御方法

Country Status (2)

Country Link
US (1) US9378092B2 (ja)
JP (1) JP6206160B2 (ja)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180145866A1 (en) * 2015-04-22 2018-05-24 Hewlett Packard Enterprise Development Lp Storage system enclosures
US10013171B2 (en) * 2015-06-29 2018-07-03 International Business Machines Corporation Reducing stress on RAIDS under rebuild
KR102405054B1 (ko) * 2015-11-27 2022-06-08 에스케이하이닉스 주식회사 메모리 장치 및 메모리 장치의 동작 방법
US10120769B2 (en) * 2016-04-13 2018-11-06 Dell Products L.P. Raid rebuild algorithm with low I/O impact
US11294594B2 (en) * 2017-08-07 2022-04-05 Kioxia Corporation SSD architecture supporting low latency operation
US11086740B2 (en) 2018-10-10 2021-08-10 International Business Machines Corporation Maintaining storage array online
CN116072195B (zh) * 2023-04-06 2023-08-18 长鑫存储技术有限公司 存储器

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6223252B1 (en) * 1998-05-04 2001-04-24 International Business Machines Corporation Hot spare light weight mirror for raid system
US7613984B2 (en) * 2001-12-28 2009-11-03 Netapp, Inc. System and method for symmetric triple parity for failing storage devices
JP2003303057A (ja) * 2003-03-26 2003-10-24 Toshiba Corp ディスクアレイ装置におけるデータ修復方法及びディスクアレイコントローラ
US7237062B2 (en) * 2004-04-02 2007-06-26 Seagate Technology Llc Storage media data structure system and method
US7721146B2 (en) * 2006-05-04 2010-05-18 Dell Products L.P. Method and system for bad block management in RAID arrays
JP5105351B2 (ja) * 2007-04-10 2012-12-26 株式会社メガチップス 不揮発性半導体記憶装置
US8484506B2 (en) * 2008-11-29 2013-07-09 Lsi Corporation Redundant array of independent disks level 5 (RAID 5) with a mirroring functionality
JP4439578B1 (ja) 2008-12-24 2010-03-24 株式会社東芝 不揮発性半導体メモリドライブ装置および不揮発性半導体メモリドライブ装置のデータ管理方法
US20100251013A1 (en) * 2009-03-26 2010-09-30 Inventec Corporation Method for processing bad block in redundant array of independent disks
US8560922B2 (en) * 2011-03-04 2013-10-15 International Business Machines Corporation Bad block management for flash memory
JP2012247817A (ja) 2011-05-25 2012-12-13 Fujitsu Ltd ストレージ制御装置、ストレージ装置及びパトロール診断方法

Also Published As

Publication number Publication date
US20150169409A1 (en) 2015-06-18
JP2015118561A (ja) 2015-06-25
US9378092B2 (en) 2016-06-28

Similar Documents

Publication Publication Date Title
US8392752B2 (en) Selective recovery and aggregation technique for two storage apparatuses of a raid
US8943358B2 (en) Storage system, apparatus, and method for failure recovery during unsuccessful rebuild process
US11630731B2 (en) System and device for data recovery for ephemeral storage
US7529965B2 (en) Program, storage control method, and storage system
JP2015118561A (ja) ストレージ制御装置、ストレージ制御プログラム及びストレージ制御方法
JP4842334B2 (ja) ディスクアレイ制御装置
JP4821448B2 (ja) Raidコントローラおよびraid装置
US8868864B2 (en) Storage apparatus and storage apparatus control method
JP2005122338A (ja) スペアディスクドライブをもつディスクアレイ装置及びデータスペアリング方法
WO2009107213A1 (ja) ストレージ装置、ストレージ制御装置、データ転送集積回路、および、ストレージ制御方法
JP2013041443A (ja) ストレージシステム、ストレージ制御装置およびストレージ制御方法
US20170300393A1 (en) Raid rebuild algorithm with low i/o impact
CN107515731B (zh) 一种基于固态盘的进化存储系统及其工作方法
WO2015058542A1 (zh) 独立冗余磁盘阵列的重构方法及装置
JP2006139478A (ja) ディスクアレイシステム
CN111240903A (zh) 数据恢复方法及相关设备
KR20210137922A (ko) 복구 공간으로 패리티 공간을 사용한 데이터 복구 시스템, 방법 및 장치
WO2013080299A1 (ja) データ管理装置、データコピー方法、およびプログラム
US20110022889A1 (en) Disk array apparatus and physical disk restoration method
JP6052288B2 (ja) ディスクアレイ制御装置、ディスクアレイ制御方法及びディスクアレイ制御プログラム
CN106610788A (zh) 硬盘阵列控制方法及装置
CN114610235B (zh) 分布式存储集群、存储引擎、两副本存储方法及设备
JP6556980B2 (ja) ストレージ制御装置、ストレージ制御方法及びストレージ制御プログラム
JP2015060346A (ja) ディスクアレイ装置、ディスクアレイ装置の冗長化方法およびプログラム
JP4831093B2 (ja) ディスクアレイシステム、ディスクアレイ制御方法およびディスクアレイ制御プログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160905

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170531

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170627

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170728

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170821

R150 Certificate of patent or registration of utility model

Ref document number: 6206160

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees