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

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

Info

Publication number
JP2015191594A
JP2015191594A JP2014070146A JP2014070146A JP2015191594A JP 2015191594 A JP2015191594 A JP 2015191594A JP 2014070146 A JP2014070146 A JP 2014070146A JP 2014070146 A JP2014070146 A JP 2014070146A JP 2015191594 A JP2015191594 A JP 2015191594A
Authority
JP
Japan
Prior art keywords
storage device
stripe
disk
data
configuration data
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.)
Granted
Application number
JP2014070146A
Other languages
English (en)
Other versions
JP6273970B2 (ja
Inventor
岳志 渡辺
Takashi Watanabe
岳志 渡辺
和彦 池内
Kazuhiko Ikeuchi
和彦 池内
親志 前田
Chikashi Maeda
親志 前田
一宏 浦田
Kazuhiro Urata
一宏 浦田
由嘉莉 土山
Yukari Tsuchiyama
由嘉莉 土山
广宇 周
Guangyu Zhou
广宇 周
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 JP2014070146A priority Critical patent/JP6273970B2/ja
Priority to EP15158996.7A priority patent/EP2924577A1/en
Priority to US14/660,983 priority patent/US9524213B2/en
Publication of JP2015191594A publication Critical patent/JP2015191594A/ja
Application granted granted Critical
Publication of JP6273970B2 publication Critical patent/JP6273970B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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/1092Rebuilding, e.g. when physically replacing a failing disk

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

【課題】格納装置群にデータが分散配置されたストレージシステムにて、データの再構築処理を複数実行する場合での再構築処理の高速化を図る技術を提供する。
【解決手段】ストレージ制御装置は、冗長化データを構成する各構成データが並列して格納装置群の各格納装置に格納される単位であるストライプ単位で構成データが分散して格納される格納装置群のうち、いずれかの格納装置を除く対象格納装置群から取得した複数のストライプのそれぞれについて、構成データの復元を行なう再構築処理を複数起動させ、再構築処理毎に、対象格納装置群の各格納装置へのアクセス負荷に応じて、次に再構築処理を行うストライプを決定し、再構築処理毎に、対象格納装置群から、決定したストライプに対応する構成データを取得し、再構築処理を実行して、取得した構成データから、除かれた格納装置に格納された構成データを復元することにより、上記課題の解決を図る。
【選択図】図1

Description

本発明は、ストレージ制御装置に関する。
ストレージ装置では、データを複数のハードディスク(磁気ディスク装置)に分散することで、性能と耐障害性を確保するRAID(Redundant Array of Inexpensive Disks)技術が用いられている。ストレージ装置は、RAIDコントローラにより、ディスクへのデータ配置や、データの冗長化(多重化)等のRAID技術を実現する。
RAIDグループに属するディスクが故障した場合、冗長化されたデータの冗長性を利用して故障したディスク上のデータを復元するリビルド(rebuild)という復旧技術がある。このようなリビルド技術には、例えば、以下の技術がある。
第1の技術として、次の技術がある(例えば、特許文献1)。負荷計測手段が、各ディスク装置のそれぞれのビジー率を計測する。負荷制御手段が、このビジー率に基づいて復旧処理の開始および中止を指令する。復旧処理手段は、復旧元または復旧先のホスト装置による使用頻度が高いときには復旧処理を中止し、また、ホスト装置からのアクセスが一定頻度を下回ったときに復旧処理を再開する。その結果、ホストの入出力(I/O)の速度を低下させずに復旧処理を行うことができる。
第2の技術として、次の技術がある(例えば、特許文献2)。2種類のパリティデータと複数のデータ復旧方式と有するディスクアレイ装置で、単一磁気ディスク障害の場合、縮退した磁気ディスクと最大負荷の磁気ディスクとをデータ復旧処理への使用から外しえるデータ復旧方式を選択する。これにより、ディスクアレイ装置上の磁気ディスクに障害が発生した場合、他の磁気ディスクに対するアクセス負荷によるデータ復旧処理の遅延を少なくすることができる。
第3の技術として、2パリティ構成を有するディスクアレイ装置において、1HDD障害時のコレクションリード時に復元元の使用パリティ及びデータをローテーションする技術がある(例えば、特許文献3)。
特開2000−276305号公報 特開2005−38271号公報 特開2006−260446号公報
ストレージシステムは、RAIDを形成するディスクを集合であるRAIDグループを含む。RAIDグループの各ディスクに、ある単位の長さごとにデータを振り分けて読み書きすることをストライピングという、また、ストライピングによって、各ディスクに振り分けられたデータブロックは、一度に読み書きする対象となり、そのようなRAIDグループの各ディスクから並列して読み書きされるデータブロックの集合をストライプという。
近年、ディスク装置(以下、「ディスク」と称する)の大容量化が進んでおり、リビルドにより1ディスクのデータの復元が完了するまでの時間が著しく増加している。そのため、リビルドの高速化に対する要求が高まっている。
リビルドの高速化の1つとして、ストライプ毎に、冗長化されたデータ及びホットスペア(HS)領域を分散させることが考えられる。
RAIDグループのいずれかのディスクが故障した場合、リビルドを実行すると、他のディスクのデータを読み出して、その故障したディスクが保有していたデータを復元し、復元したデータをHS領域に書き込む。したがって、リビルドの際には、各ディスクに、READアクセスまたはWRITEアクセスのアクセス負荷がかかることになる。
ところが、ストライプ毎に冗長化されたデータ及びHS領域を分散させても、複数のストライプについて同時にリビルド処理を行うと、いずれかのディスクへアクセス負荷が偏ってしまう場合がある。その結果、そのアクセス負荷が高いディスクがネックとなってリビルドのスループットが低下するおそれがある。
本発明は、一側面として、格納装置群にデータが分散配置されたストレージシステムにて、データの再構築処理を複数実行する場合での再構築処理の高速化を図る技術を提供する。
ストレージ制御装置は、起動部、決定部、実行部を含む。起動部は、ストライプ単位で該構成データが分散して格納される格納装置群のうち、いずれかの格納装置を除く対象格納装置群から取得した複数のストライプのそれぞれについて、構成データの復元を行なう再構築処理を複数起動させる。ストライプは、冗長化されたデータを構成する各構成データが並列して格納装置群の各格納装置に格納される単位である。決定部は、再構築処理毎に、対象格納装置群の各格納装置へのアクセス負荷に応じて、次に再構築処理を行うストライプを決定する。実行部は、再構築処理毎に、対象格納装置群から、決定したストライプに対応する構成データを取得し、再構築処理を実行して、取得した構成データから、除かれた格納装置に格納された構成データを復元する。
本発明の一側面によれば、格納装置群にデータが分散配置されたストレージシステムにて、データの再構築処理を複数実行する場合での再構築処理の高速化を図ることができる。
本実施形態におけるストレージシステムのブロック図の一例である。 リビルド技術の一例を示す。 高速リビルド技術の一例である。 RAIDグループに対して、冗長セット#0,#1をそれぞれ、ディスク#0〜ディスク#2またはディスク#3〜ディスク#5に偏重させて格納する場合のデータ配置例を示す。 RAIDグループに対して、ストライプ単位で、冗長セット及びHS領域を分散配置させる場合のデータ配置例を示す。 本実施形態における変換テーブルの一例を示す。 複数のストライプを同時にリビルドする場合における各ディスクのアクセスセグメント数の偏りを説明するための図である。 本実施形態におけるストレージシステムの一例を示す。 本実施形態における冗長セットの構成、及び冗長セットとHS領域の配置の一例を示す。 本実施形態における変換テーブルによりREADするディスクを決定することを説明するための図である。 本実施形態における変換テーブルによりWRITEするディスクを決定することを説明するための図である。 本実施形態におけるリビルド起動処理フローを示す。 本実施形態におけるリビルド個別処理(S3)のフローを示す。 本実施形態における、復元のためのREADの場合に変換テーブルによりREADするディスクを決定することを説明するための図である。 本実施形態における対象ストライプ決定処理(S11)のフローを示す。 本実施形態における作業用ストライプのディスク負荷判定を説明するための図である。 本実施形態におけるガロア体による分散配置を説明するための図(その1)である。 本実施形態におけるガロア体による分散配置を説明するための図(その2)である。 本実施形態におけるガロア体による分散配置を説明するための図(その3)である。 本実施形態におけるガロア体による分散配置を説明するための図(その4)である。 本実施形態におけるガロア拡大体による分散配置を説明するための図(その1)である。 本実施形態におけるガロア拡大体による分散配置を説明するための図(その2)である。
図1は、本実施形態におけるストレージシステムのブロック図の一例である。ストレージシステム1は、ストレージ制御装置2、格納装置群6を含む。ストレージ制御装置2は、起動部3、決定部4、実行部5を含む。ストレージ制御装置2の一例として、CM12が挙げられる。
起動部3は、ストライプ単位で該構成データが分散して格納される格納装置群6のうち、いずれかの格納装置6bを除く対象格納装置群6cから取得した複数のストライプのそれぞれについて、構成データの復元を行なう再構築処理を複数起動させる。ストライプは、冗長化されたデータを構成する各構成データが並列して格納装置群6の各格納装置6a,6bに格納される単位である。起動部3の一例として、リビルド制御部16として機能するCPU14が挙げられる。
決定部4は、再構築処理毎に、対象格納装置群6cの各格納装置6aへのアクセス負荷に応じて、次に再構築処理を行うストライプを決定する。決定部4の一例として、リビルド制御部16として機能するCPU14が挙げられる。
実行部5は、再構築処理毎に、対象格納装置群6cから、決定したストライプに対応する構成データを取得し、再構築処理を実行して、取得した構成データから、除かれた格納装置6bに格納された構成データを復元する。
このように構成することにより、格納装置群にデータが分散配置されたストレージシステムにて、データの再構築処理を複数実行する場合での再構築処理の高速化を図ることができる。すなわち、ストレージシステムでのリビルドの際の各ディスクへのアクセス負荷を平準化して、リビルドの高速化を図ることができる。
決定部4は、再構築処理毎に、対象格納装置群6cの各格納装置6aへのアクセス数に基づいて算出した該各格納装置6aへのアクセス負荷に応じて、次に該再構築処理を行うストライプを決定する。例えば、決定部4は、再構築処理毎に、対象格納装置群6cに含まれる各格納装置6aに対するアクセス数に基づいて、対象格納装置群6cに対するアクセス数の分散値または標準偏差を算出する。決定部4は、再構築処理毎に、算出した分散値または標準偏差に応じて次に再構築処理を行うストライプを決定する。
このように構成することにより、各リビルド処理においてディスクへのアクセス負荷が均等となるように動的に次回のリビルド処理の対象となるストライプを決定することができる。
また、各格納装置6a,6bは、ストライプに対応する構成データを格納する第1領域、または、ストライプに対応する、冗長化データの復元の際に用いる第2領域を含む。第1領域と第2領域は、格納先特定情報に基づいて、ストライプ毎に分散されて、格納装置群6の各格納装置6a,6bに保持されている。格納先特定情報は、ストライプと格納装置6a,6bとの論理的な組み合わせから、実際に格納する格納装置6a,6bを特定する情報である。例えば、格納先特定情報は、ガロア理論またはガロア拡大理論に基づいて作成されている。格納先特定情報の一例としては、変換テーブル10が挙げられる。
このように構成することにより、RAIDグループを構成する各ディスクにデータを効率的に分散して配置することができる。
以下では、より具体的な例を用いて、本実施形態について説明する。
リビルド技術の一例として、図2に示すリビルド技術がある。図2(A)は、RAID1において、ミラーリングされた2つのディスクの1つが故障した場合のリビルドを説明するための図である。図2(B)は、RAID5において、いずれかのディスクが故障した場合のリビルドを説明するための図である。
しかしながら、図2のリビルド技術では、原理上、1ディスク装置のスループット以上の性能は見込めない。例えば、図2(A)に示すように、RAID1のリビルドの場合はディスクに対するREAD及びWRITEが共にボトルネックとなる。1ディスクからデータをREADして1ディスクにそのデータをWRITEするので、READ及びWRITE共に1ディスクのスループット以上の性能向上は見込めない。
また、図2(B)に示すように、RAID5の場合は、データをWRITEするディスクが1ディスクのため、WRITEがボトルネックとなる。また、図2(B)において、READするディスクは3台のディスクから並列にREADできるように見えるが、100MB(MegaByte)のデータを復元するために3台のディスクから100MBずつ、計300MBのデータをREADする必要がある。そのため、100MB/sでWRITEするためには、各ディスク単位で見ると100MB/sでREADする必要がある。
前述のようにディスクのスループットが劇的に向上することはないという前提において、上記のリビルドの制御の延長では、1ディスクのスループットの壁を超えることができないため、そのスループット以上の性能向上は見込めない。
図2のリビルドと比べて数倍のリビルド時間の短縮を計るためには、リビルドの制御におけるREAD/WRITEを複数のディスクから並列に行う必要がある。そこで、図3に示すように、リビルドを高速化する手法が考えられる。データが分散配置されていない場合の各ディスクのREAD性能及びWRITE性能は100MB/sであるとする。
図3は、高速リビルド技術の一例である。図3のリビルド技術は、多数のディスクに、複数のRAIDグループ上のデータ及びホットスペア(HS)領域を所定の単位サイズで分散させる技術である。所定の単位サイズのデータを、以下では、「データセグメント」または「セグメント」と称する。
HS領域は、故障したディスクに格納されたデータセグメントを復元した場合に、その復元したデータセグメントを格納する領域である。このようにデータセグメント及びHS領域の分散を行うことにより、1ディスク故障時にリビルドのREAD/WRITEに関与するディスクを増やすことができる。
図3では、RAID5(2+1)を7ディスクに分散させる例が示されている。ここで、RAID5(2+1)という表記は、RAID5において、分散させた2つのデータセグメントに対して、1つのパリティが存在するデータ構成(以下、冗長データセットまたは冗長セットと称する)を示す。なお、データが分散配置されていない場合の各ディスクのREAD性能及びWRITE性能は100MB/sであるとする。
RAID5(2+1)の冗長セットを均等に、RAIDグループを形成する複数のディスクに分散させた場合、各ディスクについて、「データ領域:HS領域=2:1」となる。この場合、2つのデータセグメントを読み出して欠損したデータを復元(リビルド)し、その復元データを1つのHS領域に書き込むから、「READ性能:WRITE性能=2:1」となる。したがって、各ディスクのREAD性能は、100×(2/3)≒66MB/s、WRITE性能は100×(1/3)≒33MB/sとなる。よって、7台のディスクのうちの1台が故障し、リビルドを実行する場合、READ及びWRITEのうち、WRITEがボトルネックとなるので、各ディスクのREAD及びWRITE性能は33MB/sとみなすことができる。この場合、RAID5グループ全体のリビルド性能は、33MB/s×6(ディスク数)≒200MB/sとなる。
このように、RAIDを構成するディスク数が増えると、リビルドの高速化が可能になる。例えば、19ディスクでは、リビルド性能は600MB/sとなる。したがって、リビルド性能の向上にあたり、RAIDを構成するディスクへのデータ配置は重要な要素と考えられる。そこで、図4及び図5を例に、RAIDグループに対するデータ配置について検討する。
図4は、RAIDグループに対して、冗長セット#0,#1をそれぞれ、ディスク#0〜ディスク#2またはディスク#3〜ディスク#5に偏重させて格納する場合のデータ配置例を示す。
図4において、ディスク#0〜ディスク#2(冗長セット#0)、ディスク#3〜ディスク#5(冗長セット#1)はそれぞれRAID5(2+1)を構成している。ディスク#6は、冗長セット#0及び冗長セット#1のためのホットスペアディスクである。
図4において、各セグメントに記載された数字がデータの振分順を表す。Px(x:整数)は、同一ストライプにおけるPxの直近の2つデータの整合性を保証するためのパリティである。また、図4の各セグメントは128LBA(Logical Block Addressing)のサイズで構成されている。
図5は、RAIDグループに対して、ストライプ単位で、冗長セット及びHS領域を分散配置させる場合のデータ配置例を示す。図5では、図4に示すデータ配置を、ストライプ単位で分散配置させている。これにより、高速リビルドのためのデータ配置を構成することができる。
また、図4のデータ配置から図5のデータ分散配置への変換は、図6に示す変換テーブルに従って行う。なお、図5では、ストライプ毎の冗長セットを構成するセグメントは隣接するディスク間で連続して配置されているが、これに限定されない。すなわち、ストライプ毎の冗長セットを構成するセグメントは隣接するディスク間で連続して配置されていなくてもよい。すなわち、ストライプ毎の冗長セットを構成するセグメントはそれぞれ、ストライプ内において、変換テーブルに従って、または任意で分散されていてもよい。
図6は、本実施形態における変換テーブルの一例を示す。図4のRAID配置におけるディスクNo.が、変換テーブル10の列(ディスク#)に対応し、ストライプNo.が変換テーブル10の行(ストライプ#)に対応する。その列と行が交差するセルに格納された値が図5の同一ストライプにおけるディスクNo.に対応する。したがって、図4のディスク#1、ストライプ#0は、変換テーブル10により、図5に示すように、同一のストライプ#0におけるディスク#5に変換される。
変換テーブル10は、後述するように、ガロア拡大体の理論によって事前に作成されるテーブルである。変換テーブル10は、ガロア拡大体の理論によって、どのディスクが故障してもリビルドのための各ディスクの負荷は規定のストライプ数の範囲内において同一となるように作成されている。規定のストライプ数はRAIDグループを構成するディスク数によって決まる。例えば、RAID5(2+1)×2とHS×1を7ディスクに分散させる場合には、42ストライプとなる。
リビルド高速化のためのデータ分散配置においては、規定のストライプ(例えば、7ディスクの構成では42ストライプ)の範囲では、ディスク故障によるリビルド実施時の各ディスクのREAD/WRITE負荷が均等となるようなデータ配置をしている。
リビルドの実動作においては42ストライプを同時に復元するわけではなく、ディスクへの負荷を考慮して、実際には数ストライプずつ処理していくことなる。例えば、リビルドの動作として、先頭のストライプから数ストライプずつ、順番に処理することが考えられる。
しかしながら、リビルドの実動作において、処理中のストライプの組み合わせによってはディスク負荷が偏ってしまっている。これについて、図7を用いて説明する。
図7は、複数のストライプを同時にリビルドする場合における各ディスクのアクセスセグメント数の偏りを説明するための図である。例えば、図7において、故障ディスクがディスク#0の場合に、5ストライプ(ストライプ#0〜#4)を現在リビルド処理中とすると、各READ/WRITEアクセスされるセグメントは図7の太枠の部分になる。
リビルド時の各ストライプでは、復元対象のセグメントが属する冗長セットのデータ及びパリティはREADされ、復元されたデータは、格納先のHS領域へWRITEされる。その為、復元対象のセグメントと同一の冗長セットのデータ、パリティのセグメントはREAD対象となる。HSのセグメントはWRITE対象となる。これに従って各ディスクのアクセスセグメント数を計算すると、各ディスクのアクセスセグメント数は、ディスク#1は5回、ディスク#2は3回、ディスク#3は2回、ディスク#4は1回、ディスク#5は2回、ディスク#6は3回となる。このように、ディスク#1〜#6において、1セグメントアクセス〜5セグメントアクセスと、ディスクアクセス回数に偏りがある。
したがって、リビルド高速化の為のデータ分散配置において、リビルドの実動作を想定して数ストライプずつ先頭からデータ復元を実施した場合、各数ストライプの処理におけるディスクアクセス負荷は偏ってしまう。その結果、アクセス負荷が高いディスクがネックとなってリビルドのスループットが低下する。
そこで、本実施形態では、冗長セットとHS領域がRAIDグループを構成する各ディスクに分散配置されたRAID構成にて、複数ストライプのリビルド処理を同時に行う場合、各リビルド処理において、次の処理が実行される。すなわち、あるストライプのリビルド処理にて、他のストライプのリビルド処理を考慮して、現時点での各ディスクの負荷量が計算され、各ディスクの負荷がバランスするような未処理のストライプが次の処理対象のストライプとして選択され、リビルドが実行される。
これにより、リビルドの処理において動的に各ディスクの負荷を分散させる。ディスクの負荷が分散することによって、効率よく各ディスクのスループットを活かすことができ、リビルドの処理速度が向上する。
本実施形態について、さらに、より詳細に説明する。
図8は、本実施形態におけるストレージシステムの一例を示す。ストレージシステム11は、複数のディスク22を搭載したディスク記憶システムである。ホストコンピュータ(以下、ホストと称する)24からディスク22へのアクセスに関して、冗長化のために、各ディスク22に対して、2本のアクセスパスが存在している。またデータ自体についても、RAID技術を用いて複数台のディスクにデータが分散されて、冗長化した状態で保存されている。
ストレージシステム11は、ホストコンピュータ(以下、ホストと称する)24、2つのコントローラモジュール(CM)12、ドライブエンクロージャ(DE)21を含む。ストレージシステム11は、DE21と、ホスト24とが、CM12を介して接続されている。
ホスト24は、CM12と通信をして、DE21が有するディスク22からデータを読み出したり、ディスク22にデータを書き込んだりする。なお、図8では、1つのホスト24を図示しているが、複数のホスト24が、各CM12に接続されていてもよい。
各CM12は、ディスク22の動作制御を行う。各CM12は、ストレージ制御装置として機能する。ストレージシステム11は、CM12を2以上有することで、ストレージ制御装置の冗長性を確保する。
CM12は、アクセス指示情報として入出力(I/O)コマンドをDE21に送信し、ディスク22の記憶領域に対するデータの入出力指令を行う。また、入出力指令からアクセス監視時間が経過しても応答が得られないときは、CM12は、このI/O処理を中断するアボート指示コマンドをDE21に送信する。
CM12は、チャネルアダプタ(CA)13、中央演算装置(CPU:Central Processing Unit)14、記憶部18、デバイスアダプタ(DA)19を含む。CA13、CPU14、記憶部18、DA19は、内部バスを介して接続されている。
CA13は、ホスト24とのインターフェース(I/F)である各SCSI(Small Computer System Interface)ポートを制御するコンポーネントである。CPU14は、CM12全体を制御する。
記憶部18は、例えば、キャッシュメモリ、ROM(Read Only Memory)、RAM(Random Access Memory)等の情報を記録するデバイスである。記憶部18には、CM12を動作させるために用いるデータ、及び本実施形態に係るプログラム、変換テーブル10及び本実施形態で用いるデータ等が格納される。
変換テーブル10は、図6で説明したガロア拡大体を利用した変換テーブルであるが、これに限定されない。すなわち、変換テーブルは、ストライプ毎に、データセグメント及びHS領域をRAIDグループの各ディスクに分散させるために、論理的なセグメント配置と物理的なセグメント配置とが対応付けられたテーブルであればよい。例えば、変換テーブル10は、論理的なストライプ#とディスク#とから、実際にセグメントを配置する先となるストライプ#とディスク#が一意に決定できる仕組みを有するものであればよい。
DA19は、DE21と接続するためのインターフェースであり、二重化されてDE21と接続されている。CPU14は、DA19を介してDE21との間でデータの送受信を行う。
ルート(RT)20は、CM12間通信の経路である。
DE21は、複数のディスク22を格納するコンポーネントであり、冗長性を考慮したRAID構成を有する。なお、ディスク22は、ハードディスクドライブ(HDD)に限らず、例えばSSD(Solid State Drive)や、光磁気ディスク等であってもよい。また、本実施形態では、記憶装置の一例として、ディスク22を用いたが、これに限定されず、ランダムアクセス及びシーケンシャルアクセスのいずれのアクセス方法も可能な記憶装置であればよい。
RAIDグループ23は、高速なリビルドを実現する為のデータ配置を行うディスク22の集合である。高速リビルドのためのデータ配置として、RAIDグループをまたがってストライピングした冗長データ(RAID5であれば、RAID5+0)と、1台のホットスペアに対応するHS領域を、RAIDグループを構成する各ディスク22に分散して配置する。
CPU14は、データ復元部15、リビルド制御部16、コマンド発行制御部17として機能する。データ復元部15は、リビルドの各処理において複数のディスク22からREADされたデータの排他的論理和(XOR)を算出することにより、データ復元を行う。リビルド制御部16は、リビルドの開始、終了、またはリビルドの次の処理の処理範囲を決定する。コマンド発行制御部17は、各ディスク22へのコマンドの発行を制御する。また、コマンド発行制御部17は、各ディスク22へ発行したREADコマンドの回数及びWRITEコマンドの回数(READ/WRITEアクセス回数)を計測し、その計測数を記憶部18に格納する。
次に、CM12の具体的な動作について説明する。
ユーザの指示に基づいて、RAID作成、ボリューム作成の順に操作がなされると、高速リビルドが可能なデータ配置が作成され、ホストI/Oが受付可能となる。その後、RAIDを構成しているディスクのうちの1つが故障すると、リビルド動作が開始される。
(1)RAID作成
高速リビルドが可能なデータ分散配置を行うRAIDは、新規RAID種として定義する。新規RAID種をRAID5−FR(FR:Fast Rebuild)と呼称する。ユーザが、RAID種としてRAID5−FRを指定し、RAIDグループを構成するディスクを選択して作成指示することで、高速リビルドが可能なRAIDグループが作成される。
RAIDグループ作成の時点では、CM12は、新規RAID種とRAIDグループを構成するディスクとを結びつけ、記憶部18上にRAIDについての構成データのテーブルを作成する。なお、この時点では、ディスク22上に図5のデータ配置はまだされていない。
(2)ボリューム作成
ユーザが、上記(1)で作成したRAIDグループに対して、ボリュームサイズを指定した上でボリューム作成指示を出すと、CM12において、指定したボリュームサイズに基づいて、ボリュームフォーマットが実行される。
ボリュームフォーマットの動作としては、各LBAにチェックコードが付加され、図5のデータ配置に基づいて、各データ用セグメントに0データが書かれる。ここでチェックコードはLBAのデータの正当性を保証するための情報である。
パリティ用セグメントは、そのパリティ用セグメントが属するストライプで、かつそのパリティ用セグメントが属する冗長セット上のデータ用セグメントを排他的論理和(XOR)することにより生成される。ここで、図9を用いて、冗長セットの構成を説明する。
図9は、本実施形態における冗長セットの構成、及び冗長セットとHS領域の配置の一例を示す。例えば、図9のストライプ#0について、パリティ用セグメントP0は、そのパリティ用セグメントが属するストライプでかつそのパリティ用セグメントが属する冗長セット上のデータ用セグメント0,1を排他的論理和(XOR)することで生成される。同様に、パリティ用セグメントP1は、そのパリティ用セグメントが属するストライプでかつそのパリティ用セグメントが属する冗長セット上のデータ用セグメント2,3を排他的論理和(XOR)することで生成される。
HS用セグメントについては、ボリュームフォーマットの時点では何も書かれない。図9の場合、HS0,HS1にはこの時点では何も書かれない。
(3)ホスト I/O
ボリューム作成により、高速リビルドの為のデータ分散配置が行われると、CM12は、ディスク22に対する、ホスト24からの入力出(I/O)アクセスを受け付けることができる。
ホスト24からのREAD/WRITEアクセスに関しては、CM12は、次を行う。CM12は、まずホスト24からの入力出アクセスのアクセス先の論理LBAから、アクセス先のストライプ範囲を計算し、各ストライプの論理的なデータ配置におけるREAD/WRITEするセグメントを決定する。ここで、論理的なデータ配置とは、変換テーブル10に基づいて物理的にRAIDに配置する前の、論理的なデータ配置であり、例えば、図4に示すような、冗長セットを偏重させて並列させたデータ配置を論理的に形成したものに相当する。
CM12は、各ストライプの論理的なデータ配置上でREAD/WRITEするセグメントに基づいて、変換テーブル10に従って実際にREAD/WRITEするディスク22を決定し、その決定したディスク22にデータセグメントをREAD/WRITEする。
図10は、本実施形態における変換テーブルによりREADするディスクを決定することを説明するための図である。図10(A)は、変換テーブル10により変換する前のストライプ単位の論理的なデータ配置例を示す。図10(B)は、変換テーブル10による変換後のストライプ単位の物理的なデータ配置例を示す。この例では、ホスト24からのREADアクセスの範囲は0〜512LBA、READされるセグメントは、セグメント0,1,2,3とする。
CM12は、まずホスト24からの入力出の論理LBA(0〜512LBA)からストライプ範囲を計算し、図10(A)に示すように、各ストライプの論理的なデータ配置上にてREADするセグメントを決定する。
次に、CM12は、各ストライプの論理的なデータ配置上でREADするセグメント0,1,2,3に基づいて、図6の変換テーブル10に従って実際にREADするディスクを決定する。図10(A)において、セグメント0は、(ストライプ#0,ディスク#0)で示されるので、CM12は、変換テーブル10の(ストライプ#0,ディスク#0)を参照すると、(ストライプ#0,ディスク#0)=ディスク#0である。この場合、CM12は、ストライプ#0にあるセグメント0へアクセスするためにREADするディスクを、図10(B)に示すように、同じストライプ#0のディスク#0に決定する。
また、図10(A)において、セグメント1は、(ストライプ#0,ディスク#1)で示されるので、CM12は、図6の変換テーブル10の(ストライプ#0,ディスク#1)を参照すると、(ストライプ#0,ディスク#1)=ディスク#6である。この場合、CM12は、ストライプ#0にあるセグメント1へアクセスするためにREADするディスクを、図10(B)に示すように、同じストライプ#0のディスク#6に決定する。セグメント2,3についても、同様にして、READするディスクを決定する。
図11は、本実施形態における変換テーブルによりWRITEするディスクを決定することを説明するための図である。図11(A)は、変換テーブル10により変換する前のストライプ単位の論理的なデータ配置例を示す。図11(B)は、変換テーブル10による変換後のストライプ単位の物理的なデータ配置例を示す。ホスト24からのREADアクセスの範囲は0〜512LBA、WRITEされるセグメントは、セグメント0,1,P0,2,3,P1とする。
CM12は、まずホスト24からの入力出の論理LBA(0〜512LBA)からストライプ範囲を計算し、図11(A)に示すように、各ストライプの論理的なデータ配置上にてWRITEするセグメントを決定する。
次に、CM12は、各ストライプの論理的なデータ配置上でWRITEするセグメント0,1,P0,2,3,P1に基づいて、図6の変換テーブル10に従って実際にWRITEするディスクを決定する。なお、WRITEの場合はパリティもWRITE対象になる。
図11(A)において、セグメント0は、(ストライプ#0,ディスク#0)で示されるので、CM12は、図6の変換テーブル10の(ストライプ#0,ディスク#0)を参照すると、(ストライプ#0,ディスク#0)=ディスク#0である。この場合、CM12は、セグメント0についてのREADするディスクを、図11(B)に示すように、同じストライプ#0のディスク#0に決定する。
また、図11(A)において、セグメント1は、(ストライプ#0,ディスク#1)で示されるので、CM12は、変換テーブル10の(ストライプ#0,ディスク#1)を参照すると、(ストライプ#0,ディスク#1)=ディスク#6である。この場合、CM12は、セグメント1についてのREADするディスクを、図11(B)に示すように、同じストライプ#0のディスク#6に決定する。
また、図11(A)において、セグメントP0は、(ストライプ#0,ディスク#2)で示されるので、CM12は、変換テーブル10の(ストライプ#0,ディスク#2)を参照すると、(ストライプ#0,ディスク#2)=ディスク#5である。この場合、CM12は、セグメントP0についてのREADするディスクを、図11(B)に示すように、同じストライプ#0のディスク#5に決定する。
次に、CM12による本実施形態に係る処理について説明する。
図12は、本実施形態におけるリビルド起動処理フローを示す。RAID5−FRを形成するディスクのうち、1つのディスクの故障が発生し、リビルド制御部16がその故障によるエラー情報を検出すると、リビルド制御部16はリビルドを開始する。リビルドの起動処理としては、図12のフローで各ストライプにおける故障ディスク上のデータの復元を行うリビルド個別処理が並列で起動させる。
まず、リビルド制御部16は、CM12の記憶部18から、パラメータである同時処理ストライプ数Tを読み出す(S1)。ここで、同時処理ストライプ数Tは、1度に並列で処理するストライプ数であり、CM12の記憶部18に予め設定されている。
リビルド制御部16は、同時処理ストライプ数Tの数分、リビルド個別処理を呼び出し(S2)、ビルド個別処理のそれぞれを起動させる(S3)。S3の処理については、図13〜図15で詳述する。
このように、リビルド制御部16により、T個のリビルド個別処理はそれぞれ独立して、ストライプ単位でリビルドを順次行う。例えば、リビルド対象のストライプ数の42で、T=4の場合には、4つのリビルド個別処理により、42ストライプの全てが処理されるまで、並列で4ストライプずつリビルド個別処理が行われる。
図13は、本実施形態におけるリビルド個別処理(S3)のフローを示す。リビルド個別処理(S3)では、以下のフローでデータ復元が行われる。
リビルド制御部16は、リビルド対象のストライプに関して、現時点での各ディスク22の負荷量を計算し、各ディスクの負荷がバランスする1つのストライプを実際にリビルド対象のストライプ(対象ストライプ)として決定する(S11)。S11の処理については、図15で詳述する。
コマンド発行制御部17は、その対象ストライプについて、欠損したデータセグメントを復元するために、欠損したデータセグメントが属する冗長セットに含まれる他のデータセグメントが格納されたディスクにREADコマンドを発行する。ここで、欠損したデータセグメントとは、故障したディスクに格納されていたデータセグメントを表す。その結果、コマンド発行制御部17は、その対象ストライプについて、欠損したデータセグメントが属する冗長セットに含まれる他のデータセグメントを読み出す(S12)。
データ復元部15は、読み出されたデータセグメント同士の排他的論理和(XOR)を計算して、対象ストライプに関する、復元対象となるデータを生成する(欠損したデータを復元する)(S13)。
コマンド発行制御部17は、対象ストライプにおける復元したデータの書き込み先のセグメント(HS領域)を有するディスクにWRITEコマンドを発行し、復元したデータをそのHS領域にWRITEする(S14)。
リビルド制御部16は、復元が完了したLBAを更新する(S15)。
ディスクグループ23の末尾まで復元が完了するまで、S11〜S15の処理が繰り返される(S16)。
S12〜S14において、復元のためのREAD/WRITE処理については、リビルド制御部16は、フォーマットやI/Oと同じように変換テーブル10に従ってREAD/WRITE先のセグメントを決定する。このREAD/WRITE先のセグメントの決定について、図14を用いて説明する。
図14は、本実施形態における、復元のためのREADの場合に変換テーブルによりREADするディスクを決定することを説明するための図である。図14(A)は、変換テーブル10により変換する前のストライプ単位の論理的なデータ配置例を示す。図14(B)は、変換テーブル10により変換する前のストライプ単位の論理的なデータ配置例を示す。
図14(B)において、ディスク#0が故障した場合、その故障ディスク#0に保持されていたデータを復元する必要がある。図14(B)において、ディスク#0にはセグメント0,5が保持されていたので、セグメント0,5のデータを復元することが必要である。
対象ストライプがストライプ#0の場合、セグメント0、セグメント1、セグメントP0は同一の冗長セットに含まれるから、セグメント0のデータは、セグメント1のデータとセグメントP0のデータの排他的論理和(XOR)により生成される。そこで、CM12は、ストライプ#0の論理的なデータ配置上でREADするセグメント1,P0に対して、図6の変換テーブル10に従って実際にREADするディスクを決定する。
図14(A)において、(ストライプ#0,ディスク#1)で示されるセグメント1は、図6の変換テーブル10に従えば、(ストライプ#0,ディスク#1)=ディスク#6である。また、(ストライプ#0,ディスク#2)で示さるセグメントP0は、変換テーブル10に従えば、(ストライプ#0,ディスク#2)=ディスク#5である。この場合、CM12は、ストライプ#0に関して、セグメント1,P0についてのREADするディスクを、図14(B)に示すように、同じストライプ#0のディスク#6及びディスク#5に決定する。
CM12は、ストライプ#0に関して、実際のディスク#5,#6からセグメント1、P0を読み出し、セグメント1のデータとセグメントP0のデータの排他的論理和(XOR)を計算することによりセグメント0のデータを復元する。
次に、CM12は、復元したセグメント0のデータをHS領域に書き込む。図14(A)において、(ストライプ#0,ディスク#6)で示さるHS領域(HS0)は、変換テーブルq0に従えば、(ストライプ#0,ディスク#6)=ディスク#1である。この場合、CM12は、復元したデータを書き込むディスクを、図14(B)に示すように、同じストライプであるストライプ#0のディスク#1に決定する。
図15は、本実施形態における対象ストライプ決定処理(S11)のフローを示す。CM12は、対象ストライプを、以下のように決定する。CM12は、未処理ストライプの先頭から、処理対象とするストライプを順次検索する。CM12は、その検索したストライプに関してアクセスする場合の各ディスクの負荷と、現在処理中の他のリビルド処理における各ディスクの負荷を総合して、ディスクの負荷の分散度合いに関する評価値を算出する。CM12は、末尾のストライプまで検索して最も評価値が低いストライプをリビルド対象のストライプ(対象ストライプ)とする。なお、本実施形態では、評価値は、後述するように、小さいほど優れているものとする。図15について詳述する。
まず、リビルド制御部16は、未処理の先頭ストライプを、作業用ストライプとして定義する(S21)。
リビルド制御部16は、作業用ストライプについて評価値を算出する(S22)。S22の処理の詳細については、図16で説明する。
S22で算出した作業用ストライプの評価値が、それより前に計算したストライプの評価値よりも低い場合(S23)、リビルド制御部16は、作業用ストライプを候補ストライプとし(S24)、S25の処理へ進む。S22で算出した作業用ストライプの評価値が、それより前に計算したストライプの評価値以上である場合(S23で「No」)、S25の処理へ進む。
末尾のストラップまで処理が完了していない場合(S25で「No」)、リビルド制御部16は、現在の作業用ストライプの次のストライプを、作業用ストライプとし(S26)、S22の処理を行う。末尾のストラップまで処理が完了するまで、リビルド制御部16は、S22〜S25を繰り返す。
末尾のストラップまで処理が完了すると、リビルド制御部16は、候補ストライプを、リビルド対象ストラップに決定する(S27)。
図16は、本実施形態における作業用ストライプのディスク負荷判定を説明するための図である。各ディスクの負荷の分散度合いを表す評価値は、以下のようにして計算される。ストライプ毎のセグメントは、図16のように分散配置されているとする。なお、図16において、セグメントNo.とディスクNo.で特定されるセルがセグメントを表し、そのセル内の番号はセグメントを特定する番号である。セグメント0〜2、セグメント3〜5、セグメント164,167,P82、セグメント165,166,P83はそれぞれ冗長セットを示す。セグメント6,HS41はHS領域を示す。
リビルド制御部16は、他のリビルド個別処理にて処理されたストライプ(太枠)、評価対象のストライプ(破線枠)について、故障ディスク#0を除いて、ディスク#1〜#6の各ディスクに対するREAD/WRITEアクセス回数をカウントする。上述したように、各ディスクに対するREAD/WRITEアクセス回数は、コマンド発行制御部17によって計測され、記憶部18に格納されている。
次に、リビルド制御部16は、以下の式を用いて、故障ディスクを除く全ディスクで、カウントしたアクセス回数の平均を算出する。
リビルド制御部16は、算出した平均に基づいて、以下の式を用いて、故障ディスクを除く全ディスクに対するREAD/WRITEアクセス回数の分散を算出し、その算出した分散値を評価値とする。
分散値は、その値が小さいほど、よりアクセス負荷のバランスが取れているといえる。
なお、ここでは、分散値を評価値としたが、これに限定されず、標準偏差等の他の統計的方法を用いて算出した値を評価値としてもよい。
HS領域のセグメントにリビルドしたデータの書き込み完了後、故障したディスクが交換される。すると、リビルド制御部16は、交換されたディスクに対して、HS領域のセグメントから交換されたディスクの所定のセグメントにデータを書き戻す処理(Copy back)を行う。
上述の通り、リビルド制御部16は、複数のリビルド処理を並列で行う際、リビルド処理毎に、各格納装置へのアクセス負荷に応じて次にリビルド処理を行うストライプを決める。これにより、各格納装置へのアクセス負荷が均等化され、リビルドを高速化することができる。
<ガロア拡大体による分散配置>
次に、ガロア拡大体の理論によって事前に作成される変換テーブル10について説明する。例えば、k(k:整数)本のディスクの集合(ディスクプール)にl(l:整数)本のメンバディスクで構成されるRAIDグループをm(m:整数)個と、HSをn(n:整数)本分散させることを考える。
kを素数のべき乗に限定することにより、ディスクプールを構成するディスク数は限られてしまう。しかしながら、「ガロア拡大体」の理論に基いてデータ配置することで、(l−1)×(l×m+n)ストライプという少ないパターン数でRAIDグループのディスクへのデータ分散配置を実現する。
(i)ガロア体(kが素数の場合)
RAIDグループのディスク数が素数の場合は、ガロア体に基づいてデータ配置方法を決定することで、少ないストライプのパターン数で分散配置が可能である。整数を素数(例えば5)で除算した余りの集合φ∈{0,1,2,3,4}は、要素が有限で四則演算が閉じた集合(ガロア体)となっている。
例えば、
4+4= 8 mod 5=3∈ φ
4×3=12 mod 5=2∈ φ
図17(A)にmod(5)加算の表、図17(B)にmod(5)積算の表を示す。ここで、図17(A)のmod(5)加算の表に注目する。シフト#nと表記した列が各ストライプのデータ配置に相当し、行が物理ディスクに相当する。各物理ディスクに着目して見ると、どの行についても各ストライプのデータ配置mod(5)はかぶらないことがわかる。つまり、どのシフト(ストライプ)間でも、データ配置がかぶることはない。
次に、図17(B)のmod(5)積算の表に着目する。図17(B)の表の各値は、シフト#nに相当している。パターン#mは4ストライプ分のシフト#nの組み合わせを表している。各行はパターン#m内のストライプに相当している。“0”の行を除いて各行の値を見てみると、どの行も値が重複していないことがわかる。つまりパターン#nと表記した各列は、”0”の行を除外すると、どのパターン同士の組み合わせにおいても、同一ストライプでは別のシフトとなっている。
別のシフト同士ではデータ配置がかぶることはないので、どのパターン同士の組み合わせにおいても、パターン中のどのストライプのデータ配置も、他のパターンとかぶることはない。
mod(5)の加算の表の各ストライプのデータ配置を、mod(5)の乗算の表に基づいて組み合わせることによって、ストライプ毎にデータ配置が互いにかぶらない排他なパターンが5個できることがわかる。
このパターンの中からRAIDグループのメンバディスク数と、HSのディスク数だけ異なるパターンを取り出してRAIDグループのデータ配置とすることで、どのディスクが死んでもリビルドによるデータ構築においてREAD/WRITEアクセスが分散される。
例えば、mod(5)の加算・積算の表に基づいて、RAID5(3+1)と、HSディスク1本とを分散させたRAIDグループの場合には、図18の表となる。図18において、同一の数字が表すのはRAID5の同一ストライプのデータ、あるいはストライプ上のデータが故障した場合にWRITEするHS領域を表している。
ディスク#0が故障した場合に、どのRAID5のストライプ、故障データのWRITE先も同一ディスクに偏らず分散している事がわかる。
図19は、図18の表をデータ順に表記した表である。例として、データ#0〜#3 が冗長をとる単位であり、故障によりデータセグメント#0〜#3のいずれかが破損した場合の復元のための領域(HS領域)は、ストライプ#16のディスク#1となる。ディスク#0が故障した想定だと、HS領域に復元されるデータは#0となる。
このままでもデータ分散としては問題ないが、冗長を取る単位のデータが同じストライプ上に並んでいない為、ストライプ単位でデータ復元を行うリビルドの制御上、都合が悪い。そのため、データを縦方向に並び替え、冗長を取る単位のデータを同じストライプ上に持って来る。なお、縦方向にデータを並び替えても各ディスクへの各データの分散の状況は変わらない。
図20は、データを縦方向に並べ替えた結果の表である。
以上、5本のディスクに対してデータ配置の表を作成する手順を説明した。また、整数を任意の素数(k)で除算した余りの集合φ∈{0,1,2,3,k−1}についても同じように加算、乗算の表を作成し、ストライプのパターンとシフトを組み合わせてディスクの分散配置のテーブルを作成することができる。
(ii)ガロア拡大体
上記ではガロア体を用いたデータ分散について記述したが、この方式は素数のディスク数のディスクプールにしか適用できない。その欠点を補うため、「ガロア拡大体」によるデータ配置を行うことで、素数のべき乗のディスク数のディスクプールにおいてもデータ分散を実現する。
ディスクプールにおいて、αという元(要素)を加えた集合{0,1,α,α2,・・・,αm-2}(∈ GF(qm) q:素数 m:自然数)に基づいて、加算・積算の表を作成し、この表に基づいてデータ分散を決定する。
原始多項式f(α)=0が成立すると、各元(要素)の値は周期mで巡回する値をとり、加算・積算についてガロア体と同じ性質を持っている。例として、4(=22)台のディスクのディスクプールにおいて、αという元を加えた集合{0,1,α,α2(=α+1)}を使用し、図21(A)に示すように加算及び図21(B)に示すように積算を行う。
原始多項式:f(α)=α2 +α +1
上記に基づいて、データ配置を求めると、図22(A)に示すように加算の表及び図22(B)に示すように積算の表が得られる。
素数のべき乗についても加算・乗算の表を用いてストライプのパターン及びシフトの組み合わせによってデータの分散配置のテーブルを作成し、更に冗長を取るデータを同一ストライプに並べ替える。これにより、素数の場合と同様にRAIDグループにおけるデータの分散配置のテーブルを作成することが可能になる。
上記の例では4(=22)台のディスクのケースを取り上げたが、素数のべき乗であれば、適当な原始多項式に対して加算・乗算のテーブル、ディスクの分散配置のテーブルを作成することができる。
本実施形態によれば、ストライプ毎に、1以上の冗長セット(RAID)と、HS領域をRAIDグループに対して分散させる。これにより、1ディスクのスループットを超えたリビルドのスループットを実現することで、リビルド時間が短縮する。
また、冗長セット、HS領域の分散の際にリビルドによるデータ復元時の各ディスクのアクセス負荷が均等となるようなデータ分散配置とすることができる。これにより、各ディスクのスループットを効率的に利用することが可能になり、リビルド時間が短縮する。
また、上記データ分散配置において、各リビルド処理において、ディスクアクセス負荷が均等となるように動的に次回リビルド処理を行うストライプを決定することができる。これにより、ディスクのスループットを向上させて各ディスクを効率的に利用することができるので、リビルド時間が短縮する。
なお、本実施形態は、以上に述べた実施の形態に限定されるものではなく、本実施形態の要旨を逸脱しない範囲内で種々の構成または実施形態を取ることができる。
1 ストレージシステム
2 ストレージ制御装置
3 起動部
4 決定部
5 実行部
6 格納装置群
6a,6b 格納装置
6c 対象格納装置群
10 変換テーブル
11 ストレージシステム
12 CM
13 CA
14 CPU
15 データ復元部
16 リビルド制御部
17 コマンド発行制御部
18 記憶部
19 DA
20 RT
21 DE
22 ディスク
23 RAIDグループ
24 ホスト

Claims (7)

  1. 冗長化されたデータを構成する構成データが並列して格納装置群の各格納装置に格納される単位であるストライプ単位で該構成データを分散して格納する該格納装置群のうち、いずれかの格納装置を除く対象格納装置群から取得した複数のストライプのそれぞれについて、該構成データの復元を行なう再構築処理を複数起動させる起動部と、
    再構築処理毎に、前記対象格納装置群の各格納装置へのアクセス負荷に応じて、次に該再構築処理を行うストライプを決定する決定部と、
    前記再構築処理毎に、前記対象格納装置群から、決定した該ストライプに対応する構成データを取得し、前記再構築処理を実行して、取得した該構成データから、除かれた前記格納装置に格納された構成データを復元する実行部と、
    を備えることを特徴とするストレージ制御装置。
  2. 前記決定部は、前記再構築処理毎に、前記対象格納装置群の各格納装置へのアクセス数に基づいて算出した該各格納装置へのアクセス負荷に応じて、次に該再構築処理を行うストライプを決定する
    ことを特徴とする請求項1に記載のストレージ制御装置。
  3. 前記決定部は、再構築処理毎に、前記対象格納装置群に含まれる各格納装置に対するアクセス数に基づいて、前記対象格納装置群に対するアクセス数の分散値または標準偏差を算出し、該分散値または該標準偏差に応じて次に該再構築処理を行うストライプを決定する
    ことを特徴とする請求項2に記載のストレージ制御装置。
  4. 前記各格納装置は、前記ストライプに対応する前記構成データを格納する第1領域、または、前記ストライプに対応する、該冗長化データの復元の際に用いる第2領域を含み、
    前記第1領域と前記第2領域は、前記ストライプと前記格納装置との論理的な組み合わせから、実際に格納する格納装置を特定する格納先特定情報に基づいて、ストライプ毎に分散されて、前記格納装置群の各格納装置に保持されている
    ことを特徴とする請求項1〜3のうちいずれか1項に記載のストレージ制御装置。
  5. 前記格納先特定情報は、ガロア理論またはガロア拡大理論に基づいて作成されている
    ことを特徴とする請求項4に記載のストレージ制御装置。
  6. コンピュータに、
    冗長化されたデータを構成する各構成データが並列して格納装置群の各格納装置に格納される単位であるストライプ単位で該構成データを分散して格納する該格納装置群のうち、いずれかの格納装置を除く対象格納装置群から取得した複数のストライプのそれぞれについて、該構成データの復元を行なう再構築処理を複数起動し、
    再構築処理毎に、前記対象格納装置群の各格納装置へのアクセス負荷に応じて、次に該再構築処理を行うストライプを決定し、
    前記再構築処理毎に、前記対象格納装置群から、決定した該ストライプに対応する構成データを取得し、前記再構築処理を実行して、取得した該構成データから、除かれた前記格納装置に格納された構成データを復元する
    処理を実行させることを特徴とするストレージ制御プログラム。
  7. コンピュータが、
    冗長化されたデータを構成する各構成データが並列して格納装置群の各格納装置に格納される単位であるストライプ単位で該構成データを分散して格納する該格納装置群のうち、いずれかの格納装置を除く対象格納装置群から取得した複数のストライプのそれぞれについて、該構成データの復元を行なう再構築処理を複数起動し、
    再構築処理毎に、前記対象格納装置群の各格納装置へのアクセス負荷に応じて、次に該再構築処理を行うストライプを決定し、
    前記再構築処理毎に、前記対象格納装置群から、決定した該ストライプに対応する構成データを取得し、前記再構築処理を実行して、取得した該構成データから、除かれた前記格納装置に格納された構成データを復元する
    ことを特徴とするストレージ制御方法。
JP2014070146A 2014-03-28 2014-03-28 ストレージ制御装置、ストレージ制御プログラム、及びストレージ制御方法 Active JP6273970B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2014070146A JP6273970B2 (ja) 2014-03-28 2014-03-28 ストレージ制御装置、ストレージ制御プログラム、及びストレージ制御方法
EP15158996.7A EP2924577A1 (en) 2014-03-28 2015-03-13 Storage control apparatus, storage control program, and storage control method
US14/660,983 US9524213B2 (en) 2014-03-28 2015-03-18 Storage control apparatus, recording medium having stored therein storage control program and storage control method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014070146A JP6273970B2 (ja) 2014-03-28 2014-03-28 ストレージ制御装置、ストレージ制御プログラム、及びストレージ制御方法

Publications (2)

Publication Number Publication Date
JP2015191594A true JP2015191594A (ja) 2015-11-02
JP6273970B2 JP6273970B2 (ja) 2018-02-07

Family

ID=52692466

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014070146A Active JP6273970B2 (ja) 2014-03-28 2014-03-28 ストレージ制御装置、ストレージ制御プログラム、及びストレージ制御方法

Country Status (3)

Country Link
US (1) US9524213B2 (ja)
EP (1) EP2924577A1 (ja)
JP (1) JP6273970B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018185757A (ja) * 2017-04-27 2018-11-22 富士通株式会社 ストレージ制御装置、ストレージ制御方法、およびストレージ制御プログラム

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110058960B (zh) * 2018-01-18 2023-05-16 伊姆西Ip控股有限责任公司 用于管理存储系统的方法、设备和计算机程序产品
CN109918225B (zh) * 2019-02-18 2023-05-09 麒麟软件有限公司 基于飞腾平台的raid6数据恢复优化方法
US11592988B2 (en) * 2021-01-12 2023-02-28 EMC IP Holding Company LLC Utilizing a hybrid tier which mixes solid state device storage and hard disk drive storage

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100115198A1 (en) * 2008-10-31 2010-05-06 Martin Jess System and method for loose coupling between raid volumes and drive groups
US8099623B1 (en) * 2008-10-08 2012-01-17 Netapp, Inc. Efficient distributed hot sparing scheme in a parity declustered RAID organization
US20140025990A1 (en) * 2012-07-23 2014-01-23 Hitachi, Ltd. Storage system and data management method

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000276305A (ja) 1999-03-23 2000-10-06 Nec Corp ディスクアレイ装置
JP3991947B2 (ja) 2003-07-17 2007-10-17 日本電気株式会社 2種類のパリティと複数のデータ復旧方式とを有するディスクアレイ装置
US20060123312A1 (en) * 2004-11-19 2006-06-08 International Business Machines Corporation Method and system for increasing parallelism of disk accesses when restoring data in a disk array system
JP2006260446A (ja) 2005-03-18 2006-09-28 Hitachi Ltd ディスクアレイ装置
US8726070B2 (en) * 2010-09-27 2014-05-13 Dell Products L.P. System and method for information handling system redundant storage rebuild
US9292389B2 (en) * 2014-01-31 2016-03-22 Google Inc. Prioritizing data reconstruction in distributed storage systems

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8099623B1 (en) * 2008-10-08 2012-01-17 Netapp, Inc. Efficient distributed hot sparing scheme in a parity declustered RAID organization
US20100115198A1 (en) * 2008-10-31 2010-05-06 Martin Jess System and method for loose coupling between raid volumes and drive groups
WO2010051002A1 (en) * 2008-10-31 2010-05-06 Lsi Corporation A loose coupling between raid volumes and drive groups for improved performance
JP2012507786A (ja) * 2008-10-31 2012-03-29 エルエスアイ コーポレーション 性能改善のためのraidボリュームとドライブ・グループとの間の疎結合
US20140025990A1 (en) * 2012-07-23 2014-01-23 Hitachi, Ltd. Storage system and data management method

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018185757A (ja) * 2017-04-27 2018-11-22 富士通株式会社 ストレージ制御装置、ストレージ制御方法、およびストレージ制御プログラム

Also Published As

Publication number Publication date
US20150278020A1 (en) 2015-10-01
EP2924577A1 (en) 2015-09-30
JP6273970B2 (ja) 2018-02-07
US9524213B2 (en) 2016-12-20

Similar Documents

Publication Publication Date Title
US10210045B1 (en) Reducing concurrency bottlenecks while rebuilding a failed drive in a data storage system
CN107817952B (zh) 存储系统
US9552258B2 (en) Method and system for storing data in raid memory devices
US8839028B1 (en) Managing data availability in storage systems
US9063910B1 (en) Data recovery after triple disk failure
JP5256149B2 (ja) Hdd障害からの高速データ回復
KR101307953B1 (ko) Raid 그룹의 여러 스트라이핑을 갖는 메모리 및 그 수행방법
JP6039699B2 (ja) ストレージシステム及びデータ管理方法
US20190129614A1 (en) Load Balancing of I/O by Moving Logical Unit (LUN) Slices Between Non-Volatile Storage Represented by Different Rotation Groups of RAID (Redundant Array of Independent Disks) Extent Entries in a RAID Extent Table of a Mapped RAID Data Storage System
WO2016090541A1 (zh) 数据存储系统和数据存储方法
US10564865B2 (en) Lockless parity management in a distributed data storage system
US10678470B2 (en) Computer system,control method for physical storage device,and recording medium
WO2016142998A1 (ja) 計算機システム
JP2018508073A (ja) データ除去、割り当て、及び再構築
JP6273970B2 (ja) ストレージ制御装置、ストレージ制御プログラム、及びストレージ制御方法
JP6515458B2 (ja) ストレージ制御装置、ストレージ制御プログラム、及びストレージ制御方法
US20200034235A1 (en) Managing mapped raid extents in data storage systems
US20150154075A1 (en) Storage system and method for controlling storage system
US20220027070A1 (en) Storage system and storage management method
US10977130B2 (en) Method, apparatus and computer program product for managing raid storage in data storage systems
JP6807457B2 (ja) ストレージシステム及びストレージシステムの制御方法
US11880278B2 (en) Storage system and storage administration method
US11467904B2 (en) Storage system and control method of the same
US20220283938A1 (en) Storage system and storage management method

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20161206

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170928

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20171010

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20171130

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20171225

R150 Certificate of patent or registration of utility model

Ref document number: 6273970

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150