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

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

Info

Publication number
JP6515458B2
JP6515458B2 JP2014162259A JP2014162259A JP6515458B2 JP 6515458 B2 JP6515458 B2 JP 6515458B2 JP 2014162259 A JP2014162259 A JP 2014162259A JP 2014162259 A JP2014162259 A JP 2014162259A JP 6515458 B2 JP6515458 B2 JP 6515458B2
Authority
JP
Japan
Prior art keywords
information
disk
storage device
restored
written
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2014162259A
Other languages
English (en)
Other versions
JP2016038767A (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 JP2014162259A priority Critical patent/JP6515458B2/ja
Priority to US14/793,002 priority patent/US9519542B2/en
Publication of JP2016038767A publication Critical patent/JP2016038767A/ja
Application granted granted Critical
Publication of JP6515458B2 publication Critical patent/JP6515458B2/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
    • 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/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2053Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2094Redundant storage or storage space

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

本発明は、ストレージ制御装置、ストレージ制御プログラム、及びストレージ制御方法に関する。
ストレージ装置の一例として、Redundant Array of Inexpensive Disks(RAID)技術を利用したディスクアレイ装置が知られている。ディスクアレイ装置は、冗長化されたデータを複数のハードディスクドライブ(HDD)に分散させて記憶することで、高速化と耐障害性を確保することができる。
ディスクアレイ装置は、例えば、複数のHDDを含み、ディスクアレイ装置において冗長化されたデータを表す情報は、例えば、データ及びパリティを含む。以下の説明では、ディスクアレイ装置の各HDDを、単にディスクと記載することがある。
ディスクアレイ装置においていずれかのディスクが故障した場合、データの冗長性を利用して故障したディスク内の情報を復元するリビルド処理が行われる。リビルド処理に関する技術としては、例えば、以下のような技術が挙げられる。
ディスクシステムの空き領域を利用して障害ドライブのデータを回復する障害回復方法が知られている(例えば、特許文献1を参照)。この障害回復方法では、複数台のディスク装置を備えたディスクアレイ装置において、書込むべき一群のデータからそれらのデータのエラー訂正用のデータが生成され、一群の書込みデータとエラー訂正用データとが異なるディスク装置に分散して格納される。そして、障害を起こしたディスク装置のデータが、正常なディスク装置に保持された一群の書込みデータのうちの他のデータ及びエラー訂正用データから回復され、回復されたデータが正常なディスク装置の空き領域に分散して格納される。
磁気ディスクに障害が発生した場合、他の磁気ディスクに対するアクセス負荷によるデータ復旧処理の遅延を少なくするディスクアレイ装置も知られている(例えば、特許文献2を参照)。このディスクアレイ装置は、2種類のパリティデータと複数のデータ復旧方式と有し、単一磁気ディスク障害の場合、縮退した磁気ディスクと最大負荷の磁気ディスクとをデータ復旧処理への使用から外しえるデータ復旧方式を選択する。
2パリティ構成を有し、1HDD障害時のコレクションリード時に復元元の使用パリティ及びデータをローテーションするディスクアレイ装置も知られている(例えば、特許文献3を参照)。
特開平6−230903号公報 特開2005−38271号公報 特開2006−260446号公報
従来のディスクアレイ装置には、以下のような問題がある。
近年、ディスクの大容量化が進んでおり、リビルド処理により1台のディスクの情報を復元するまでの時間が著しく増加している。このため、リビルド処理の高速化が望まれている。
しかしながら、情報を格納する情報領域と予備領域とが配置された複数のディスクのうち、予備領域の数よりも多くのディスクが故障した場合に、リビルド処理を適切に行うことは容易ではない。
なお、かかる問題は、記憶装置としてHDDを用いるディスクアレイ装置に限らず、他の記憶装置を用いるストレージ装置においても生ずるものである。
1つの側面において、本発明は、情報領域と予備領域とが配置された複数の記憶装置のうち、予備領域の数よりも多くの記憶装置が故障した場合に、情報を復元する際の記憶装置に対するアクセスを効率化することを目的とする。
1つの案では、ストレージ制御装置は制御部を含む。制御部は、冗長化されたデータを表す情報を格納する複数の情報領域と1つ以上の予備領域とが分散して配置された複数の記憶装置のうち、予備領域の数よりも多くの記憶装置が故障した場合、復元処理における書き込み先記憶装置を決定する。
復元処理は、複数の情報領域と1つ以上の予備領域との複数の組み合わせに含まれる、故障した第1の記憶装置の複数の情報領域に対する復元処理である。また、書き込み先記憶装置は、複数の組み合わせのうち1つの組み合わせに含まれる、第1の記憶装置の1つの情報領域に対応する復元された情報を書き込む書き込み先記憶装置である。
制御部は、復元処理において故障していない第2の記憶装置から情報が読み出される回数に基づいて、書き込み先記憶装置を決定する。
実施形態によれば、情報領域と予備領域とが配置された複数の記憶装置のうち、予備領域の数よりも多くの記憶装置が故障した場合に、情報を復元する際の記憶装置に対するアクセスを効率化することができる。
リビルド処理を示す図である。 データを分散させて格納するディスクアレイ装置を示す図である。 RAID5(2+1)の2つの冗長セットとHS領域の配置パターンを示す図である。 RAID5(2+1)の2つの冗長セットとHS領域とを分散させる配置パターンを示す図である。 変換テーブルを示す図である。 1台のディスクが故障した場合の復元対象を示す図(その1)である。 1台のディスクが故障した場合の復元対象を示す図(その2)である。 ストレージ制御装置の構成図である。 ストレージ制御処理のフローチャートである。 ストレージシステムの構成図である。 2台のディスクが故障した場合の復元対象を示す図(その1)である。 2台のディスクが故障した場合の復元対象を示す図(その2)である。 書き込み先決定処理のフローチャートである。 書き込み可能回数を求める処理を示す図(その1)である。 書き込み可能回数を求める処理を示す図(その2)である。 書き込み回数を示す図である。 書き込み可能回数に対する書き込み回数の比率を示す図である。 Disk#2に割り当てられた復元対象を示す図である。 再計算された比率を示す図である。 Disk#4に割り当てられた復元対象を示す図である。 41個の復元対象の書き込み先ディスクを示す図である。 42個の復元対象の書き込み先ディスクを示す図である。 RAID6(3+2)の2つの冗長セットとHS領域とを分散させる配置パターンを示す図である。 mod(5)加算及びmod(5)乗算の表を示す図である。 RAID5(3+1)の情報領域とHS領域とを分散させる配置パターンを示す図である。 4つの同じ整数を異なる整数に置き換えた配置パターンを示す図である。 列内の整数を並べ替えた配置パターンを示す図である。 GF(2)加算及びGF(2)乗算の表を示す図である。 元を整数に置き換えたGF(2)加算及びGF(2)乗算の表を示す図である。 情報処理装置の構成図である。
以下、図面を参照しながら、実施形態を詳細に説明する。
図1(A)は、RAID1のディスクアレイ装置において、ミラーリングされたディスク101−1及びディスク101−2のうちディスク101−1が故障した場合のリビルド処理の例を示している。この場合、故障していないディスク101−2から情報を読み出すリード処理と、予備のディスク102(ホットスペア:HS)に情報を書き込むライト処理とが共にボトルネックとなる。
1つのディスクから情報を読み出して1つのディスクにその情報を書き込む場合、リード処理及びライト処理のいずれの性能も、1ディスクのスループットを超えることはない。例えば、1ディスクのリード処理及びライト処理のスループットが共に100Mバイト/sである場合、リビルド処理のスループットも最大で100Mバイト/sである。
図1(B)は、RAID5のディスクアレイ装置において、ディスク111−1〜ディスク111−4のうちディスク111−1が故障した場合のリビルド処理の例を示している。この場合、情報を読み出すディスクが3台であるのに対して、情報を書き込むディスクが1台であるため、ライト処理がボトルネックとなる。故障していないディスク111−2〜ディスク111−4からは並列に情報を読み出すことができるが、所定量の情報を復元するために、その3倍の量の情報が並列に読み出される。
例えば、100Mバイトの情報を復元するためには、3台のディスクから100Mバイトずつ、計300Mバイトの情報が読み出される。1ディスクのリード処理及びライト処理のスループットが共に100Mバイト/sである場合、100Mバイト/sでディスク112に情報を書き込むために、ディスク111−2〜ディスク111−4の各々から100Mバイト/sで情報が読み出される。このように、図1(B)のディスクアレイ装置においても、リビルド処理の性能は1ディスクのスループットを超えることはない。
図2は、図1のリビルド処理よりも高速に情報を復元できるディスクアレイ装置の例を示している。図2のディスクアレイ装置では、RAID5(2+1)の冗長化されたデータがディスク201−1〜ディスク201−7に分散させて格納される。RAID5(n+1)は、分散させたn個のデータに対して1つのパリティが存在するRAID5のデータ構成(冗長セット)を示す。
SEC1〜SEC3は、データ及びパリティの3つの組に対応する情報領域を表し、HS領域は、復元された情報が書き込まれる予備領域を表す。情報領域及びHS領域は、所定サイズの領域である。図2の例では、各組の冗長化されたデータに対応する3つの情報領域に1つのHS領域を加えた4つの領域が、ディスク201−1〜ディスク201−7に分散して配置される。実際には、より多数の組の4つの領域が7つのディスクに均等に分散して配置される。
ここで、ディスク201−7が故障した場合、ディスク201−1〜ディスク201−6に格納された情報を用いてリビルド処理が行われ、復元された情報がディスク201−1〜ディスク201−6のいずれかのHS領域に書き込まれる。この場合、各ディスクについて、読み出される情報領域の数と書き込まれるHS領域の数の比は2:1となり、リード処理のスループットとライト処理のスループットの比も2:1となる。
1ディスクのリード処理及びライト処理のスループットが共に100Mバイト/sである場合、図2の各ディスクのリード処理のスループットは、100×(2/3)=約66Mバイト/sとなる。また、各ディスクのライト処理のスループットは、100×(1/3)=約33Mバイト/sとなる。したがって、ライト処理がボトルネックとなり、各ディスクのリビルド処理のスループットは、33Mバイト/sとみなすことができる。ディスク201−1〜ディスク201−6は並列にアクセスできるため、ディスクアレイ装置全体のリビルド処理のスループットは、33×6=約200Mバイト/sとなる。
このように、ディスクアレイ装置に含まれるディスクを増やし、情報領域及びHS領域を均等に分散させることで、ディスクの故障時にリビルド処理に関与するディスクを増やすことができ、リビルド処理が高速化される。例えば、19台のディスクを設けた場合、リビルド処理のスループットを約600Mバイト/sにすることも可能である。
図3は、RAID5(2+1)の2つの冗長セットに対応する情報領域と1つのHS領域とを7台のディスク(Disk)に配置する配置パターンの例を示している。Disk#0、Disk#1、及びDisk#2は、冗長セット#0の情報を担当するRAIDグループのディスクであり、Disk#3、Disk#4、及びDisk#5は、冗長セット#1の情報を担当するRAIDグループのディスクである。Disk#6は、冗長セット#0及び冗長セット#1のためのHS領域を有する予備ディスクである。
42個のストライプ(stripe#0〜stripe#41)の各々は、冗長セット#0の3つの情報領域と冗長セット#1の3つの情報領域と1つのHS領域とを含み、情報領域とHS領域との組み合わせを表している。情報領域内に記載された整数0〜167は、データの順序を表し、Pi(i=0〜83)は、各ストライプ内の対応する冗長セットの2つデータの整合性を保証するためのパリティを表す。例えば、stripe#0のパリティP0は、冗長セット#0のデータ0及びデータ1から生成され、パリティP1は、冗長セット#1のデータ2及びデータ3から生成される。
HSj(jは0以上の整数)は、stripe#jに含まれるHS領域を表す。この例では、すべてのストライプのHS領域がDisk#6に配置されているため、リビルド処理においてライト処理がDisk#6に集中してしまう。
図4は、図3の情報領域及びHS領域をストライプ毎にシフトしながら、7台のディスクに均等に分散させる配置パターンの例を示している。例えば、stripe#0では、冗長セット#0の情報がDisk#5、Disk#6、及びDisk#0に配置され、冗長セット#1の情報がDisk#2、Disk#3、及びDisk#4に配置され、HS領域HS0がDisk#1に配置される。そして、ストライプ毎に、HS領域が右側のディスクへシフトしていく。このように、情報領域及びHS領域を分散させることで、図2の場合と同様に、リビルド処理を高速化することができる。
図5は、図3の配置パターンを図4の配置パターンへ変換する変換テーブルの例を示している。図5の変換テーブルの各行は、図3の各ストライプに対応し、各列は、図3の各ディスクに対応する。また、図5の変換テーブルの各セルは、図3の対応する領域を有する図4のディスクを表す。例えば、図3のstripe#0及びDisk#1に対応するデータ1の情報領域は、変換テーブルに従ってDisk#6に配置される。
変換テーブルは、例えば、図21から図26までを参照しながら後述する、ガロア拡大体の理論に基づいて生成することができる。ガロア拡大体の理論に基づく変換テーブルは、どのディスクが故障しても、リビルド処理における各ディスクの負荷が規定のストライプ数の範囲内において均等になるように生成される。ディスクの負荷は、リビルド処理におけるリード処理及びライト処理の回数に応じて変化する。規定のストライプ数は、RAIDグループに含まれるディスクの数とHS領域の数とに基づいて決定される。例えば、図4の例では、規定のストライプ数は42である。
図6A及び図6Bは、図4の配置パターンを採用したディスクアレイ装置において1台のディスクが故障した場合の復元対象を示している。42個のストライプ(stripe#0〜stripe#41)の各々は、情報領域とHS領域との組み合わせを表している。
ただし、図6A及び図6Bでは、図4とは異なる表記法を用いて情報領域及びHS領域を表している。42個のストライプに共通の整数0〜6のうち、0、1、及び2は、冗長セット#0の情報を表し、3、4、及び5は、冗長セット#1の情報を表し、6は、HS領域を表す。異なるストライプの同じ整数0〜5は、異なる情報に対応し、異なるストライプの同じ整数6は、異なるHS領域に対応する。
このような分散配置において、Disk#0が故障した場合、ストライプ毎に復元対象の情報が異なり、ストライプによっては復元対象が存在しない場合もある。
例えば、stripe#0では、故障したDisk#0に情報0の情報領域が配置されているため、復元対象は情報0となる。情報0は冗長セット#0に含まれるため、復元のために読み出される情報は情報1及び情報2であり、それぞれDisk#6及びDisk#5に格納されている。したがって、情報1及び情報2を読み出すために、Disk#6及びDisk#5が1回ずつアクセスされる。一方、復元された情報0を書き込むHS領域6はDisk#1に配置されているため、Disk#1が1回アクセスされる。
stripe#4では、故障したDisk#0に情報4の情報領域が配置されているため、復元対象は情報4となる。情報4は冗長セット#1に含まれるため、復元のために読み出される情報は情報3及び情報5であり、それぞれDisk#1及びDisk#6に格納されている。したがって、情報3及び情報5を読み出すために、Disk#1及びDisk#6が1回ずつアクセスされる。一方、復元された情報4を書き込むHS領域6はDisk#5に配置されているため、Disk#5が1回アクセスされる。
stripe#6、stripe#12、stripe#18、stripe#24、stripe#30、及びstripe#36では、故障したDisk#0にHS領域6が配置されているため、復元対象は存在しない。したがって、いずれのディスクに対するアクセスも発生しない。
42個のストライプにおいて、リビルド処理によりディスクにアクセスする回数をディスク毎にカウントすると、Disk#1〜Disk#6のすべてのディスクにおいてアクセス回数が18回となる。したがって、リビルド処理における各ディスクの負荷が42個のストライプの範囲内において均等になっていることがわかる。
復元対象が存在するストライプの数は36個であるため、情報領域及びHS領域が分散配置されていない場合、36個のストライプのリビルド処理において、読み出し元のディスク及び書き込み先のディスクに対して36回のアクセスが発生すると考えられる。この場合、リビルド処理に関与する各ディスクのアクセス回数は36回となる。
これに対して、図6A及び図6Bの配置パターンを採用した場合、各ディスクのアクセス回数は18回となるため、リビルド処理のスループットが2倍に向上する。
しかしながら、Disk#0〜Disk#6に分散配置されたHS領域の総容量は、ディスク1台分の容量であるため、故障したDisk#0の情報を復元した後はHS領域が使用済みになってしまう。このため、リビルド処理によりデータの冗長性が回復した後にさらに別のディスクが故障した場合、HS領域の代わりに別の空き領域を使用してリビルド処理を行う方法が考えられる。
このとき、どのディスクの空き領域をリビルド処理に使用するかによって、各ディスクのアクセス回数が増減する可能性がある。そこで、リビルド処理に使用する適切なディスクを選択して、各ディスクに対するアクセスを効率化することが望ましい。
図7は、実施形態のストレージ制御装置の構成例を示している。図7のストレージ制御装置701は、制御部711を含む。
図8は、図7の制御部711が行うストレージ制御処理の例を示すフローチャートである。制御部711は、冗長化されたデータを表す情報を格納する複数の情報領域と1つ以上の予備領域とが分散して配置された複数の記憶装置のうち、予備領域の数よりも多くの記憶装置が故障した場合(ステップ801)、ステップ802の処理を行う。ステップ802において、制御部711は、復元処理における書き込み先記憶装置を決定する(ステップ802)。
復元処理は、複数の情報領域と1つ以上の予備領域との複数の組み合わせに含まれる、故障した第1の記憶装置の複数の情報領域に対する復元処理である。また、書き込み先記憶装置は、複数の組み合わせのうち1つの組み合わせに含まれる、第1の記憶装置の1つの情報領域に対応する復元された情報を書き込む書き込み先記憶装置である。
制御部711は、復元処理において故障していない第2の記憶装置から情報が読み出される回数に基づいて、書き込み先記憶装置を決定する。
このようなストレージ制御装置によれば、予備領域の数よりも多くの記憶装置が故障した場合に、情報を復元する際の記憶装置に対するアクセスを効率化することができる。
図9は、図7のストレージ制御装置701を含むストレージシステムの構成例を示している。図9のストレージシステムは、ホスト装置901及びストレージ装置902を含む。ストレージ装置902は、ストレージ制御装置911、ストレージ制御装置912、及びディスクエンクロージャ(DE)913を含む。
ホスト装置901は、通信回線を介してストレージ制御装置911及びストレージ制御装置912と接続されており、ストレージ制御装置911及びストレージ制御装置912は、通信回線を介してDE913と接続されている。
ストレージ制御装置911は、インタフェース(IF)921、制御部922、及びIF923を含む。制御部922は、復元部924、リビルド制御部925、コマンド発行制御部926、及び記憶部927を含む。
ストレージ制御装置912は、IF931、制御部932、及びIF933を含む。制御部932は、復元部934、リビルド制御部935、コマンド発行制御部936、及び記憶部937を含む。
ストレージ制御装置911及びストレージ制御装置912は、図7のストレージ制御装置701に対応し、制御部922及び制御部932は、図7の制御部711に対応する。DE913は、ディスク941−1〜ディスク941−k(kは4以上の整数)を含む。
ホスト装置901は、ストレージ制御装置911又はストレージ制御装置912を介して、ディスク941−1〜ディスク941−kからデータを読み出したり、ディスク941−1〜ディスク941−kにデータを書き込んだりすることができる。
図9のストレージシステムでは、ホスト装置901からDE913へのアクセスパスが2重化されているが、アクセスパスを2重化しない場合は、ストレージ制御装置911又はストレージ制御装置912を省略することができる。ストレージ制御装置911及びストレージ制御装置912に対して、複数のホスト装置が接続されていてもよい。
ストレージ制御装置911のIF921は、ホスト装置901と通信するための通信インタフェースであり、IF923は、DE913と通信するための通信インタフェースである。
制御部922は、ホスト装置901から受信するリード要求に基づいて、DE913へリードコマンドを発行することで、DE913からデータを読み出してホスト装置901へ送信することができる。また、制御部922は、ホスト装置901から受信するライト要求に基づいて、DE913へライトコマンドを発行することで、ライト要求に含まれるデータをDE913に書き込むことができる。
記憶部927は、配置情報、読み出し回数、書き込み回数、及び書き込み可能回数を記憶することができる。配置情報は、情報領域及び予備領域をディスク941−1〜ディスク941−kに分散して配置する配置パターンを表す。配置情報としては、例えば、図5のような変換テーブルを用いてもよい。
読み出し回数は、リビルド処理(復元処理)において故障していないディスク941から情報が読み出される回数を表し、書き込み回数は、リビルド処理において故障していないディスク941に復元された情報が書き込まれる回数を表す。また、書き込み可能回数は、故障していないディスク941に復元された情報を書き込むことが可能な回数を表す。
復元部924は、リビルド制御部925からの指示に基づき、故障していないディスク941から読み出された情報を用いて、故障したディスク941の情報を復元する。リビルド制御部925は、リビルド処理の開始及び終了を制御すると共に、故障していないディスク941の中から、復元された情報を書き込む書き込み先のディスク941を選択する。このとき、リビルド制御部925は、配置情報、読み出し回数、書き込み回数、及び書き込み可能回数に基づいて、書き込み先のディスク941を決定する。
コマンド発行制御部926は、ホスト装置901から受信するリード要求又はライト要求に基づき、DE913へリードコマンド又はライトコマンドを発行する。リードコマンド又はライトコマンドによるアクセス対象のディスク941は、配置情報に基づいて決定される。
また、コマンド発行制御部926は、リビルド制御部925からの指示に基づき、DE913へリードコマンド又はライトコマンドを発行する。リードコマンド又はライトコマンドによるアクセス対象のディスク941は、リビルド制御部925により指定される。このうち、ライトコマンドによるアクセス対象は、リビルド制御部925により選択された書き込み先のディスク941である。
ストレージ制御装置912の動作についても、ストレージ制御装置911の動作と同様である。ストレージ制御装置911とストレージ制御装置912は、通信回線を介して接続されており、互いに通信することもできる。
以下では、一例として、ストレージ制御装置911がリビルド処理を行う場合の動作について説明する。例えば、配置情報が図4の配置パターンを表す場合はk=7であり、DE913内のディスク941−1〜ディスク941−7は、それぞれ、Disk#0〜Disk#6に対応する。情報領域及びHS領域は、ディスク941−1〜ディスク941−7の一部の記憶領域に分散して配置され、他の記憶領域は未使用の領域(空き領域)に対応する。
ここで、Disk#0が故障した場合、制御部922は、図6A及び図6Bに示したように、各ストライプに含まれるDisk#0の情報を、そのストライプ内の対応する冗長セットの情報を用いて復元するリビルド処理を行う。そして、制御部922は、そのストライプ内のHS領域に、復元された情報を書き込む。
例えば、stripe#0に含まれるDisk#0の情報0を復元する場合、制御部922は、Disk#6及びDisk#5の情報1及び情報2を用いて情報0を復元し、Disk#1のHS領域6に書き込む。
また、stripe#4に含まれるDisk#0の情報4を復元する場合、制御部922は、Disk#1及びDisk#6の情報3及び情報5を用いて情報4を復元し、Disk#5のHS領域6に書き込む。
しかし、stripe#6、stripe#12、stripe#18、stripe#24、stripe#30、及びstripe#36では、Disk#0にHS領域6が配置されているため、情報の復元は行われない。
このようなリビルド処理を行った結果、すべてのHS領域6に復元された情報が書き込まれ、すべてのHS領域6が使用済みとなる。
Disk#0の情報が復元された後、続いてDisk#1が故障した場合、復元対象は、図10A及び図10Bに示すようになる。この場合、制御部922は、各ストライプに含まれるDisk#1の情報を、そのストライプ内の対応する冗長セットの情報を用いて復元するリビルド処理を行う。そして、制御部922は、Disk#2〜Disk#6のうちいずれかのディスクの空き領域に、復元された情報を書き込む。
例えば、stripe#0では、故障したDisk#1に情報0の情報領域が配置されているため、復元対象は情報0となる。情報0は冗長セット#0に含まれるため、復元のために読み出される情報は情報1及び情報2であり、それぞれDisk#6及びDisk#5に格納されている。そこで、制御部922は、Disk#6及びDisk#5の情報1及び情報2を用いて情報0を復元し、いずれかのディスクの空き領域に書き込む。
また、stripe#4では、故障したDisk#1に情報3の情報領域が配置されているため、復元対象は情報3となる。情報3は冗長セット#1に含まれるため、復元のために読み出される情報は情報4及び情報5であり、それぞれDisk#5及びDisk#6に格納されている。そこで、制御部922は、Disk#5及びDisk#6の情報4及び情報5を用いて情報3を復元し、いずれかのディスクの空き領域に書き込む。
このように、各ストライプに含まれるHS領域の数よりも多くのディスクが故障した場合、書き込み先としてHS領域以外の空き領域を使用することで、データの冗長性を回復することができる。
図11は、Disk#1の情報を復元するリビルド処理において、リビルド制御部925が各復元対象の書き込み先ディスクを決定する書き込み先決定処理の例を示すフローチャートである。
まず、リビルド制御部925は、リビルド処理における総読み出し回数と総書き込み回数とに基づいて、処理カウントの初期値を設定する(ステップ1101)。総読み出し回数は、規定のストライプ数の復元対象を復元するために故障していないディスクから情報が読み出される回数を表し、総書き込み回数は、それらの復元対象を復元するために故障していないディスクに情報が書き込まれる回数を表す。処理カウントの初期値は、例えば、次式により求めることができる。
平均アクセス回数=(総読み出し回数+総書き込み回数)/ディスク数 (1)
初期値=平均アクセス回数*ディスク数−総読み出し回数 (2)
図10A及び図10Bの例では、規定のストライプ数は42であり、1つの復元対象を復元するために2回の読み出しと1回の書き込みが行われるため、総読み出し回数は84となり、総書き込み回数は42となる。
また、式(1)及び式(2)の右辺のディスク数は、故障していないディスクの数を表す。式(1)の右辺の値が整数でない場合は、その値の小数点以下が切り捨てられる。式(1)及び式(2)を用いることで、故障していないディスクのアクセス回数が過不足なく平均化される書き込み回数を、処理カウントの初期値として設定することができる。
図10A及び図10Bの例では、ディスク数は5である。この場合、処理カウントの初期値は、次式により与えられる。
平均アクセス回数=(84+42)/5=25 (3)
初期値=25*5−84=41 (4)
次に、リビルド制御部925は、リビルド処理における各ディスクの書き込み可能回数を求める(ステップ1102)。ディスクの書き込み可能回数は、規定のストライプ数の復元対象を復元する際に、復元された情報をそのディスクに書き込むことが可能な回数を表す。
図12A及び図12Bは、図10A及び図10Bの各ディスクの書き込み可能回数を求める処理の例を示している。復元対象d(stripe#p)は、stripe#pにおける情報dを表す(d=0〜5,p=0〜41)。例えば、復元対象0(stripe#1)は、stripe#1における情報0を表す。
ところで、図10A及び図10Bの42個のストライプのうち、下記の6個のストライプにおける復元対象は、最初に故障したDisk#0に格納されていた情報に対応し、Disk#0が故障したときに復元された情報である。
stripe#0
stripe#13
stripe#19
stripe#25
stripe#31
stripe#37
そして、それ以外の36個のストライプにおける復元対象は、Disk#0が故障する前からDisk#1に格納されていた情報に対応する。
この例では、元々Disk#1に格納されていた情報の書き込み先を優先して決定するため、図12A及び図12Bの復元対象の順序は、図10A及び図10Bの復元対象の順序とは異なっている。図12A及び図12Bの1番目から36番目までの復元対象は、元々Disk#1に格納されていた情報に対応し、37番目から42番目までの復元対象は、元々Disk#0に格納されていた情報に対応する。
リードディスクIDは、各ストライプの復元対象を復元するために用いられる情報を格納するディスクの識別情報(ディスク番号)を表す。また、ライトディスクIDは、各ストライプの復元対象を書き込むことが可能なディスク(書き込み可能ディスク)の識別情報を表す。
Disk#2〜Disk#6の網がけされたセルは、各ストライプにおける書き込み可能ディスクであることを示している。書き込み可能ディスクとしては、故障していないディスクのうち、リードディスクIDが示すディスク以外のディスクを選択することができる。
例えば、復元対象0(stripe#1)に対応するリードディスクは、Disk#2及びDisk#6であり、書き込み可能ディスクは、Disk#3〜Disk#5である。また、復元対象3(stripe#4)に対応するリードディスクは、Disk#5及びDisk#6であり、書き込み可能ディスクは、Disk#2〜Disk#4である。
リビルド制御部925は、ディスク毎に網がけされたセルの数をカウントすることで、各ディスクの書き込み可能回数を求めることができる。Disk#2〜Disk#6の書き込み可能回数は、以下のようになる。
Disk#2 28
Disk#3 22
Disk#4 28
Disk#5 22
Disk#6 26
リビルド制御部925は、総書き込み回数“42”からリビルド処理における各ディスクの読み出し回数を減算することで、各ディスクの書き込み可能回数を求めてもよい。ディスクの読み出し回数は、規定のストライプ数の復元対象を復元する際に、そのディスクから情報が読み出される回数を表す。Disk#2〜Disk#6の読み出し回数は、以下のようになる。
Disk#2 14
Disk#3 20
Disk#4 14
Disk#5 20
Disk#6 16
次に、リビルド制御部925は、各ディスクの書き込み回数を求める(ステップ1103)。ディスクの書き込み回数は、規定のストライプ数の復元対象を復元する際に、復元された情報がそのディスクに書き込まれる回数を表す。リビルド制御部925は、例えば、各ディスクのアクセス回数から各ディスクの読み出し回数を減算することで、各ディスクの書き込み回数を求めることができる。各ディスクのアクセス回数としては、例えば、平均アクセス回数を用いることができる。
図13は、各ディスクのアクセス回数として平均アクセス回数“25”を用いた場合の各ディスクの書き込み回数の例を示している。
こうして求められた書き込み回数は、リビルド処理における複数のディスクに対するアクセスを均等化する上で好ましい書き込み回数を表している。しかし、各復元対象の書き込み先ディスクを書き込み可能ディスクの中から無作為に選択すると、あるディスクにおいて書き込み回数を超える書き込みが行われ、別のあるディスクにおいて書き込み回数未満の書き込みが行われる可能性がある。そこで、各ディスクの書き込み回数が遵守されるように、各復元対象の書き込み先ディスクを選択することが望ましい。
次に、リビルド制御部925は、各ディスクの書き込み可能回数と書き込み回数とに基づいて、1つのディスクを書き込み先ディスクとして選択する(ステップ1104)。このとき、リビルド制御部925は、各ディスクの書き込み可能回数と書き込み回数とに基づいて各ディスクの優先度を求め、優先度が比較的高いディスクを書き込み先ディスクとして選択することができる。
優先度としては、例えば、書き込み可能回数に対する書き込み回数の比率を用いることができる。この比率が大きいディスクほど、書き込み回数と同じ数の復元対象を割り当てることが困難になるため、他のディスクよりも先に復元対象を割り当てることが望ましい。
図14は、図12A及び図12Bに基づく書き込み可能回数に対する図13の書き込み回数の比率を示している。この場合、Disk#2〜Disk#6の比率のうち、Disk#2及びDisk#4の比率が最大であるため、Disk#2又はDisk#4のいずれかが書き込み先ディスクとして選択される。例えば、ディスク番号の小さい方を選択する場合、Disk#2が選択される。
次に、リビルド制御部925は、1つの復元対象を選択し、選択したディスクに割り当てる(ステップ1105)。このとき、リビルド制御部925は、図12A及び図12Bにおいて、選択したディスクの網がけされたセルに対応する復元対象のうち、最も順位の高い復元対象を選択することができる。例えば、Disk#2が選択された場合、図15に示すように、4番目の復元対象3(stripe#4)がDisk#2に割り当てられる。
次に、リビルド制御部925は、処理カウントを1だけデクリメントし(ステップ1106)、処理カウントを0と比較する(ステップ1107)。処理カウントが0より大きい場合(ステップ1107,NO)、リビルド制御部925は、ステップ1102以降の処理を繰り返す。このとき、リビルド制御部925は、ステップ1104で選択したディスクの書き込み回数を1だけデクリメントするとともに、ステップ1105で選択した復元対象に対応する各書き込み可能ディスクの書き込み可能回数を1だけデクリメントする。
図16は、復元対象3(stripe#4)がDisk#2に割り当てられた後に再計算された比率を示している。Disk#2の書き込み回数は1だけ減少しており、復元対象3(stripe#4)に対応するDisk#2〜Disk#4の書き込み可能回数はそれぞれ1ずつ減少している。この場合、Disk#4の比率が最大であるため、Disk#4が書き込み先ディスクとして選択され、図17に示すように、1番目の復元対象0(stripe#1)がDisk#4に割り当てられる。
処理カウントが0になった場合(ステップ1107,YES)、リビルド制御部925は、処理カウントの初期値を復元対象の数と比較する(ステップ1108)。処理カウントの初期値が復元対象の数と同じである場合(ステップ1108,YES)、リビルド制御部925は、処理を終了する。
一方、処理カウントの初期値が復元対象の数より小さい場合(ステップ1108,NO)、リビルド制御部925は、残りの復元対象のうち1つの復元対象を選択し、いずれかのディスクに割り当てる(ステップ1109)。このとき、リビルド制御部925は、残りの復元対象のうち最も順位の高い復元対象を選択して、最も小さいディスク番号のディスクに割り当ててもよい。
次に、リビルド制御部925は、すべての復元対象を選択したか否かをチェックする(ステップ1110)。未選択の復元対象が存在する場合(ステップ1110,NO)、リビルド制御部925は、ステップ1109の処理を繰り返す。このとき、リビルド制御部925は、残りの復元対象を未だ割り当てていないディスクに対して、復元対象を割り当てる。そして、すべての復元対象の割り当てが完了すると(ステップ1110,YES)、リビルド制御部925は、処理を終了する。
図18は、図12A及び図12Bの1番目から41番目までの41個の復元対象の書き込み先ディスクを示している。これらの復元対象の書き込み先ディスクは、ステップ1104及びステップ1105の処理により決定される。
41番目の復元対象2(stripe#31)の書き込み先ディスクが決定された時点で処理カウントは0になるが、処理カウントの初期値“41”は復元対象の数“42”より小さい。そこで、リビルド制御部925は、図19に示すように、ステップ1109の処理を行って、42番目の復元対象5(stripe#37)の書き込み先ディスクを、Disk#2に決定する。これにより、Disk#2の書き込み回数は“12”になり、アクセス回数は“26”になる。
図11の書き込み先決定処理によれば、各ストライプに含まれるHS領域の数よりも多くのディスクが故障した場合に、故障していないディスクの読み出し回数に基づいて書き込み先ディスクを選択することで、ディスクに対するアクセスが効率化される。
このとき、複数のディスクの総読み出し回数及び総書き込み回数と、各ディスクの読み出し回数とに基づいて、各ディスクの書き込み回数が求められ、各ディスクの書き込み回数に基づいて書き込み先ディスクが選択される。これにより、複数のディスクに対するアクセスが均等化されるため、ディスクアクセスの並列性を活用して、1ディスクのスループットを超える高速なリビルド処理を実現することができる。
また、図11の書き込み先決定処理によれば、総書き込み回数と各ディスクの読み出し回数とに基づいて、各ディスクの書き込み可能回数が求められ、各ディスクの書き込み回数と書き込み可能回数とに基づいて書き込み先ディスクが選択される。これにより、書き込み回数と同じ数の復元対象を割り当てることが比較的困難なディスクを特定して、優先的に復元対象を割り当てることが可能になり、複数の復元対象の書き込み先ディスクを効率良く決定できる。
なお、図6A及び図6Bの配置パターンでは、各ストライプに1つのHS領域が含まれているが、各ストライプに複数のHS領域が含まれていてもよい。この場合も、各ストライプに含まれるHS領域の数よりも多くのディスクが故障したとき、図11の書き込み先決定処理により復元対象の書き込み先ディスクを決定することができる。
また、図6A及び図6Bの配置パターンでは、各ストライプにRAID5(2+1)の2つの冗長セットに対応する情報領域が含まれているが、各ストライプに3つ以上の冗長セットに対応する情報領域が含まれていてもよい。各冗長セットは、RAID6等の他のデータ構成であってもよい。
図20は、RAID6(3+2)の2つの冗長セットに対応する情報領域と1つのHS領域とを11台のディスクに分散させる配置パターンの例を示している。網掛け2001は、冗長セット#0の情報領域を表し、網掛け2002は、冗長セット#1の情報領域を表し、網掛け2003は、HS領域を表す。
各ストライプは、冗長セット#0の5つの情報領域と冗長セット#1の5つの情報領域と1つのHS領域とを含み、情報領域とHS領域との組み合わせを表している。この場合も、各ストライプに含まれるHS領域の数よりも多くのディスクが故障したとき、図11の書き込み先決定処理により復元対象の書き込み先ディスクを決定することができる。
図20の配置パターンにおいてHS領域の数よりも多くのディスクが故障したときにリビルド処理を行わない場合、最大で3台のディスクの故障が許容されるため、ストレージ装置902の冗長度は3となる。これに対して、HS領域の数よりも多くのディスクが故障したときに空き領域を利用してリビルド処理を行う場合、最大で5台のディスクの故障が許容されるため、ストレージ装置902の冗長度は5となる。このように、ディスクの空き領域を利用してリビルド処理を行うことで、データの冗長性が向上する。
次に、図21から図26までを参照しながら、ガロア体又はガロア拡大体の理論に基づく変換テーブルの生成方法について説明する。ここでは、m個の冗長セットとn個のHS領域とをk台のディスクの集合(ディスクプール)に分散させるものとする(mは1以上の整数、nは1以上の整数、kは4以上の整数)。各冗長セットは、l個の情報領域を含む(lは2以上の整数)。この場合、k=l*m+nである。
まず、kが素数の場合、ガロア体に基づいて配置パターンを決定することで、分散配置のための規定のストライプ数を小さくすることが可能である。例えば、k=5の場合、整数を5で除算した余りの集合φ={0,1,2,3,4}は、要素数が有限で四則演算が閉じた集合(ガロア体)となっている。
図21(A)は、集合φにおけるmod(5)加算の表を示しており、図21(B)は、集合φにおけるmod(5)乗算の表を示している。mod(5)加算の表において、各セルの整数は、対応する行の整数と対応する列の整数とを加算した結果を表し、mod(5)乗算の表において、各セルの整数は、対応する行の整数と対応する列の整数とを乗算した結果を表す。例えば、4+4及び4×3の演算結果は、次式のようになる。
4+4=8 mod 5=3∈φ (5)
4×3=12 mod 5=2∈φ (6)
図21(A)において、シフト#0〜シフト#4の各行がストライプに対応し、各列がディスクに対応する。各列内ではすべての行の整数が異なっているため、どの2つの行の間においても同じ列の整数が重複することはない。したがって、シフト#0〜シフト#4は、領域の配置順序が異なる5つのストライプを表している。
図21(B)において、各セルの整数は、図21(A)のシフト#0〜シフト#4のいずれかを指すシフトID(シフト番号)に対応する。左端の“0”の列を除いて整数を比較すると、どの2つの行の間においても同じ列の整数が重複することはない。したがって、パターン#0〜パターン#4のうちどの2つのパターン同士の組み合わせにおいても、“0”の列を除くと、同じ列の2つのシフトIDは互いに異なるシフトを指している。
このように、パターン#0〜パターン#4の各行は、4つのストライプに対応する4つのシフトIDの組み合わせを表し、各シフトIDは、1つのストライプ内の領域の配置を表す。どの2つのパターン同士の組み合わせにおいても、一方のパターンの各列に対応するストライプ内の領域の配置は、他方のパターンの同じ列に対応するストライプ内の領域の配置とは異なっている。
mod(5)加算の表の各シフトが表すストライプ内の領域の配置を、mod(5)乗算の表に基づいて組み合わせることで、ストライプ間で領域の配置が互いに重複しない5つの排他的なパターンを生成することができる。各パターンは、4つのストライプに対応するため、5つのパターンは、20個のストライプに対応する。これらの20個のストライプが表す領域の配置を採用することで、どのディスクが故障しても、リビルド処理における各ディスクの負荷を均等にすることができる。したがって、規定のストライプ数は20となる。
規定のストライプ数は、例えば、次式により求めることができる。

規定のストライプ数=k*(k−1)
=(l*m+n)*(l*m+n−1) (7)
図22は、mod(5)加算及びmod(5)乗算の表に基づいて、RAID5(3+1)の情報領域と1つのHS領域とをDisk#0〜Disk#4に分散させる配置パターンを示している。この場合、k=5、l=4、m=1、n=1である。
ただし、図22の配置パターンは、最終的な配置パターンではなく、暫定的な配置パターンである。図22の各セルの整数0〜4、10〜14、20〜24、及び30〜34は、情報領域又はHS領域を表す。
パターン#0〜パターン#4の各々は、4つのストライプを含む。基本パターンであるパターン#0の4つのストライプでは、すべてシフト#0に従って領域が配置され、パターン#1〜パターン#4の4つのストライプでは、それぞれ異なるシフトに従って領域が配置される。例えば、パターン#1のストライプ#4では、シフト#1に従って領域が配置され、ストライプ#5では、シフト#2に従って領域が配置される。ストライプ#6では、シフト#3に従って領域が配置され、ストライプ#7では、シフト#4に従って領域が配置される。
5つのパターンに含まれる5つの同じ整数は、最終的な配置パターンにおいて同じストライプに含まれる5つの領域(情報領域又はHS領域)を表す。例えば、パターン#0〜パターン#3を4つの情報領域の配置に適用し、パターン#4をHS領域の配置に適用することができる。この配置パターンによれば、各ディスクに配置された20個の整数がすべて異なるため、情報領域及びHS領域が均等に分散していることが分かる。したがって、例えば、Disk#0が故障した場合のリビルド処理において、Disk#1〜Disk#4に対するアクセスを均等化することができる。他のディスクが故障した場合も同様である。
図22のパターン#0〜パターン#3に含まれる4つの同じ整数を、異なる情報を表す異なる整数に置き換えると、図23のようになる。図22のパターン#4に含まれる整数は、Disk#0に配置された同じ整数に対応する、図23の整数に置き換えられている。ただし、図23のストライプ#16〜ストライプ#19については、Disk#0のセルは空欄である。
例えば、情報0〜情報3は1つの冗長セットを形成し、この冗長セットのためのHS領域0は、Disk#1のストライプ#16に配置されている。Disk#0が故障した場合、情報1〜情報3を用いてストライプ#0の情報0が復元され、ストライプ#16のHS領域0に書き込まれる。
このままでも配置パターンとして使用できるが、図23では、1つの冗長セットを形成する4つの情報と対応するHS領域とが同じストライプに含まれていないため、ストライプ単位でリビルド処理を行う場合には都合が悪い。そこで、対応する情報領域及びHS領域が同じストライプに含まれるように、各列内の整数を縦方向に並べ替えると、図24のような配置パターンが生成される。縦方向に領域を並べ替えても、複数のディスクに対する領域の分散状況は変わらない。
図24の最終的な配置パターンに従って、RAID5(3+1)の情報領域と1つのHS領域とを5台のディスクに分散配置した場合の変換テーブルを生成することができる。
kが5以外の素数である場合も、整数をkで除算した余りの集合φ={0,1,2,3,...,k−1}について、同様の加算及び乗算の表を生成することが可能である。そして、加算の表の各シフトが表すストライプ内の領域の配置を乗算の表に基づいて組み合わせることで、配置パターン及び変換テーブルを生成することができる。
次に、kが素数のべき乗である場合の変換テーブルの生成方法について説明する。この場合、ガロア拡大体に基づいて配置パターンを決定することで、kが素数の場合と同様に、規定のストライプ数を小さくすることが可能である。ここでは、ガロア拡大体として、αという元(要素)を加えた集合GF(q)を用いる(qは素数、rは自然数)。
GF(q)に基づいて加算及び乗算の表を生成し、それらの表に基づいて、q台のディスクを有するディスクプールにおける配置パターンを生成することができる。原始多項式f(α)=0が成立する場合、GF(qr)の各元は、周期rで巡回する値をとり、加算及び乗算についてガロア体と同じ性質を持っている。例えば、q=r=2、f(α)=α+α+1の場合、集合GF(2)={0,1,α,α(=α+1)}が用いられる。f(α)=0が成立することから、α=α+1となる。
図25(A)は、GF(2)における加算の表を示しており、図25(B)は、GF(2)における乗算の表を示している。加算及び乗算の表において、00、01、10、及び11は、それぞれ、0、1、α、及びα+1を表す。00、01、10、及び11をそれぞれ整数0、1、2、及び3に置き換えることで、図25(A)及び図25(B)の表は、図26(A)及び図26(B)のように書き換えられる。
そして、図26(A)が示す加算の表の各シフトが表すストライプ内の領域の配置を、図26(B)が示す乗算の表に基づいて組み合わせることで、ストライプ間で領域の配置が互いに重複しない4つの排他的なパターンを生成することができる。さらに、対応する情報領域及びHS領域が同じストライプに含まれるように、各列内の整数を縦方向に並べ替えることで、4(=2)台のディスクを有するディスクプールにおける配置パターン及び変換テーブルを生成することができる。
qが2以外の素数であり、rが2以外の自然数である場合も、適当な原始多項式を用いて加算及び乗算の表を生成することが可能である。そして、加算の表の各シフトが表すストライプ内の領域の配置を乗算の表に基づいて組み合わせることで、配置パターン及び変換テーブルを生成することができる。規定のストライプ数は、k=qを用いて式(7)により求められる。
図7のストレージ制御装置701と図9のストレージシステムの構成は一例に過ぎず、ストレージシステムの用途や条件に応じて、一部の構成要素を省略又は変更してもよい。例えば、図9のストレージシステムにおいて、ストレージ制御装置911がDE913に対するアクセスを制御する場合は、ストレージ制御装置912を省略することができる。また、ディスク941−1〜941−kの代わりに、光ディスク装置、光磁気ディスク装置、半導体記憶装置等の他の記憶装置を用いてもよい。
図8及び図11のフローチャートは一例に過ぎず、ストレージシステムの構成や条件に応じて一部の処理を省略又は変更してもよい。例えば、ディスクのアクセス回数が過不足なく平均化される書き込み回数の代わりに、別の値を処理カウントの初期値に設定する場合は、図11のステップ1101の処理を省略することができる。
また、各ディスクの書き込み可能回数を求めることなく、各ディスクの書き込み回数に基づいて書き込み先ディスクを選択する場合は、ステップ1102の処理を省略することができる。各ディスクの書き込み可能回数と書き込み回数とを求めることなく、各ディスクの読み出し回数に基づいて、直接、書き込み先ディスクを選択する場合は、ステップ1102及びステップ1103の処理を省略することができる。ステップ1102とステップ1103の順序を入れ替えても構わない。
図2、図4、図6A、図6B、図10A、図10B、及び図20に示した配置パターンは一例に過ぎず、ストレージシステムの構成や条件に応じて他の配置パターンを用いてもよい。例えば、各ストライプに複数のHS領域が含まれていてもよく、各ストライプに3つ以上の冗長セットに対応する情報領域が含まれていてもよく、各冗長セットに6つ以上の情報領域が含まれていてもよい。
図12A及び図12Bに示した復元対象の順序は一例に過ぎず、42個の復元対象を別の順序で処理してもよい。
図7のストレージ制御装置701と図9のストレージ制御装置911及びストレージ制御装置912は、例えば、図27に示すような情報処理装置(コンピュータ)を用いて実現可能である。
図27の情報処理装置は、Central Processing Unit(CPU)2701、メモリ2702、入力装置2703、出力装置2704、補助記憶装置2705、媒体駆動装置2706、IF2707、及びIF2708を備える。これらの構成要素はバス2709により互いに接続されている。
メモリ2702は、例えば、Read Only Memory(ROM)、Random Access Memory(RAM)、フラッシュメモリ等の半導体メモリであり、ストレージ制御プログラム及びデータを格納する。メモリ2702は、図9の記憶部927又は記憶部937として用いることができる。
図27の情報処理装置がストレージ制御装置911である場合、CPU2701は、例えば、メモリ2702を利用してストレージ制御プログラムを実行することにより、復元部924、リビルド制御部925、及びコマンド発行制御部926として動作する。図27の情報処理装置がストレージ制御装置912である場合、CPU2701は、例えば、メモリ2702を利用してストレージ制御プログラムを実行することにより、復元部934、リビルド制御部935、及びコマンド発行制御部936として動作する。
入力装置2703は、例えば、キーボード、ポインティングデバイス等であり、ユーザ又はオペレータからの指示や情報の入力に用いられる。出力装置2704は、例えば、表示装置、プリンタ、スピーカ等であり、ユーザ又はオペレータへの問い合わせや処理結果の出力に用いられる。
補助記憶装置2705は、例えば、磁気ディスク装置、光ディスク装置、光磁気ディスク装置、テープ装置等である。補助記憶装置2705は、ハードディスクドライブ又はフラッシュメモリであってもよい。情報処理装置は、補助記憶装置2705にストレージ制御プログラム及びデータを格納しておき、それらをメモリ2702にロードして使用することができる。補助記憶装置2705は、図9の記憶部927又は記憶部937として用いることができる。
媒体駆動装置2706は、可搬型記録媒体2710を駆動し、その記録内容にアクセスする。可搬型記録媒体2710は、メモリデバイス、フレキシブルディスク、光ディスク、光磁気ディスク等である。可搬型記録媒体2710は、Compact Disk Read Only Memory(CD−ROM)、Digital Versatile Disk(DVD)、Universal Serial Bus(USB)メモリ等であってもよい。ユーザ又はオペレータは、この可搬型記録媒体2710にストレージ制御プログラム及びデータを格納しておき、それらをメモリ2702にロードして使用することができる。
このように、ストレージ制御プログラム及びデータを格納するコンピュータ読み取り可能な記録媒体には、メモリ2702、補助記憶装置2705、及び可搬型記録媒体2710のような、物理的な(非一時的な)記録媒体が含まれる。
IF2707は、Local Area Network(LAN)、インターネット等の通信ネットワークに接続され、通信に伴うデータ変換を行う通信インタフェースである。IF2707は、図9のIF921又はIF931として用いることができる。
IF2708は、DE913と通信するための通信インタフェースである。IF2708は、図9のIF923又はIF933として用いることができる。
なお、情報処理装置が図27のすべての構成要素を含む必要はなく、用途や条件に応じて一部の構成要素を省略することも可能である。例えば、IF2707を介してユーザ又はオペレータからの指示や情報を入力する場合は、入力装置2703を省略してもよい。IF2707を介してユーザ又はオペレータへの問い合わせや処理結果を出力する場合は、出力装置2704を省略してもよい。また、可搬型記録媒体2710を利用しない場合は、媒体駆動装置2706を省略してもよい。
開示の実施形態とその利点について詳しく説明したが、当業者は、特許請求の範囲に明確に記載した本発明の範囲から逸脱することなく、様々な変更、追加、省略をすることができるであろう。
図1乃至図27を参照しながら説明した実施形態に関し、さらに以下の付記を開示する。
(付記1)
冗長化されたデータを表す情報を格納する複数の情報領域と1つ以上の予備領域とが分散して配置された複数の記憶装置のうち、前記予備領域の数よりも多くの記憶装置が故障した場合、前記複数の情報領域と前記1つ以上の予備領域との複数の組み合わせに含まれる故障した第1の記憶装置の複数の情報領域に対する復元処理において故障していない第2の記憶装置から情報が読み出される回数に基づいて、前記複数の組み合わせのうち1つの組み合わせに含まれる前記第1の記憶装置の1つの情報領域に対応する復元された情報を書き込む書き込み先記憶装置を決定する制御部、
を備えることを特徴とするストレージ制御装置。
(付記2)
前記制御部は、前記復元処理において前記第2の記憶装置を含む故障していない特定の複数の記憶装置から情報が読み出される回数と、前記復元処理において前記特定の複数の記憶装置に復元された情報が書き込まれる回数と、前記第2の記憶装置から情報が読み出される回数とに基づいて、前記第2の記憶装置に復元された情報が書き込まれる回数を求め、前記第2の記憶装置に復元された情報が書き込まれる回数に基づいて、前記書き込み先記憶装置として前記第2の記憶装置を用いるか否かを決定することを特徴とする付記1記載のストレージ制御装置。
(付記3)
前記制御部は、前記特定の複数の記憶装置に復元された情報が書き込まれる回数と、前記第2の記憶装置から情報が読み出される回数とに基づいて、前記第2の記憶装置に復元された情報を書き込むことが可能な回数を求め、前記第2の記憶装置に復元された情報が書き込まれる回数と前記第2の記憶装置に復元された情報を書き込むことが可能な回数とに基づいて、前記書き込み先記憶装置として前記第2の記憶装置を用いるか否かを決定することを特徴とする付記2記載のストレージ制御装置。
(付記4)
前記制御部は、前記第2の記憶装置に復元された情報を書き込むことが可能な回数に対する、前記第2の記憶装置に復元された情報が書き込まれる回数の比率に基づいて、前記書き込み先記憶装置として前記第2の記憶装置を用いるか否かを決定することを特徴とする付記3記載のストレージ制御装置。
(付記5)
冗長化されたデータを表す情報を格納する複数の情報領域と1つ以上の予備領域とが分散して配置された複数の記憶装置のうち、前記予備領域の数よりも多くの記憶装置が故障した場合、前記複数の情報領域と前記1つ以上の予備領域との複数の組み合わせに含まれる故障した第1の記憶装置の複数の情報領域に対する復元処理において故障していない第2の記憶装置から情報が読み出される回数に基づいて、前記複数の組み合わせのうち1つの組み合わせに含まれる前記第1の記憶装置の1つの情報領域に対応する復元された情報を書き込む書き込み先記憶装置を決定する、
処理をコンピュータに実行させるストレージ制御プログラム。
(付記6)
前記書き込み先記憶装置を決定する処理は、前記復元処理において前記第2の記憶装置を含む故障していない特定の複数の記憶装置から情報が読み出される回数と、前記復元処理において前記特定の複数の記憶装置に復元された情報が書き込まれる回数と、前記第2の記憶装置から情報が読み出される回数とに基づいて、前記第2の記憶装置に復元された情報が書き込まれる回数を求め、前記第2の記憶装置に復元された情報が書き込まれる回数に基づいて、前記書き込み先記憶装置として前記第2の記憶装置を用いるか否かを決定することを特徴とする付記5記載のストレージ制御プログラム。
(付記7)
前記書き込み先記憶装置を決定する処理は、前記特定の複数の記憶装置に復元された情報が書き込まれる回数と、前記第2の記憶装置から情報が読み出される回数とに基づいて、前記第2の記憶装置に復元された情報を書き込むことが可能な回数を求め、前記第2の記憶装置に復元された情報が書き込まれる回数と前記第2の記憶装置に復元された情報を書き込むことが可能な回数とに基づいて、前記書き込み先記憶装置として前記第2の記憶装置を用いるか否かを決定することを特徴とする付記6記載のストレージ制御プログラム。
(付記8)
前記書き込み先記憶装置を決定する処理は、前記第2の記憶装置に復元された情報を書き込むことが可能な回数に対する、前記第2の記憶装置に復元された情報が書き込まれる回数の比率に基づいて、前記書き込み先記憶装置として前記第2の記憶装置を用いるか否かを決定することを特徴とする付記7記載のストレージ制御プログラム。
(付記9)
コンピュータが、
冗長化されたデータを表す情報を格納する複数の情報領域と1つ以上の予備領域とが分散して配置された複数の記憶装置のうち、前記予備領域の数よりも多くの記憶装置が故障した場合、前記複数の情報領域と前記1つ以上の予備領域との複数の組み合わせに含まれる故障した第1の記憶装置の複数の情報領域に対する復元処理において故障していない第2の記憶装置から情報が読み出される回数に基づいて、前記複数の組み合わせのうち1つの組み合わせに含まれる前記第1の記憶装置の1つの情報領域に対応する復元された情報を書き込む書き込み先記憶装置を決定する、
ことを特徴とするストレージ制御方法。
(付記10)
前記コンピュータは、前記復元処理において前記第2の記憶装置を含む故障していない特定の複数の記憶装置から情報が読み出される回数と、前記復元処理において前記特定の複数の記憶装置に復元された情報が書き込まれる回数と、前記第2の記憶装置から情報が読み出される回数とに基づいて、前記第2の記憶装置に復元された情報が書き込まれる回数を求め、前記第2の記憶装置に復元された情報が書き込まれる回数に基づいて、前記書き込み先記憶装置として前記第2の記憶装置を用いるか否かを決定することを特徴とする付記9記載のストレージ制御方法。
(付記11)
前記コンピュータは、前記特定の複数の記憶装置に復元された情報が書き込まれる回数と、前記第2の記憶装置から情報が読み出される回数とに基づいて、前記第2の記憶装置に復元された情報を書き込むことが可能な回数を求め、前記第2の記憶装置に復元された情報が書き込まれる回数と前記第2の記憶装置に復元された情報を書き込むことが可能な回数とに基づいて、前記書き込み先記憶装置として前記第2の記憶装置を用いるか否かを決定することを特徴とする付記10記載のストレージ制御方法。
(付記12)
前記コンピュータは、前記第2の記憶装置に復元された情報を書き込むことが可能な回数に対する、前記第2の記憶装置に復元された情報が書き込まれる回数の比率に基づいて、前記書き込み先記憶装置として前記第2の記憶装置を用いるか否かを決定することを特徴とする付記11記載のストレージ制御方法。
101−1、101−2、102、111−1〜111−4、112、201−1〜201−7、941−1〜941−k ディスク
701、911、912 ストレージ制御装置
711、922、932 制御部
901 ホスト装置
902 ストレージ装置
913 DE
921、923、931、933、2707、2708 IF
924、934 復元部
925、935 リビルド制御部
926、936 コマンド発行制御部
927、937 記憶部
2001〜2003 網掛け
2701 CPU
2702 メモリ
2703 入力装置
2704 出力装置
2705 補助記憶装置
2706 媒体駆動装置
2709 バス
2710 可搬型記録媒体

Claims (4)

  1. 冗長化されたデータを表す情報を格納する複数の情報領域と1つ以上の予備領域とが分散して配置された複数の記憶装置のうち、前記予備領域の数よりも多くの記憶装置が故障した場合、前記複数の情報領域と前記1つ以上の予備領域との複数の組み合わせに含まれる故障した第1の記憶装置の複数の情報領域に対する復元処理において故障していない特定の複数の記憶装置から情報が読み出される回数と、前記復元処理において前記特定の複数の記憶装置に復元された情報が書き込まれる回数とに基づいて、各記憶装置の平均アクセス回数を求め、前記平均アクセス回数から、前記特定の複数の記憶装置のうち第2の記憶装置から情報が読み出される回数を減算することで、前記第2の記憶装置に復元された情報が書き込まれる回数を求め、前記特定の複数の記憶装置に復元された情報が書き込まれる回数から、前記第2の記憶装置から情報が読み出される回数を減算することで、前記第2の記憶装置に復元された情報を書き込むことが可能な回数を求め、前記第2の記憶装置に復元された情報が書き込まれる回数と前記第2の記憶装置に復元された情報を書き込むことが可能な回数とに基づいて、前記複数の組み合わせのうち1つの組み合わせに含まれる、前記第1の記憶装置の1つの情報領域に対応する復元された情報を書き込む書き込み先として、書き込み先記憶装置を決定する制御部、
    を備えることを特徴とするストレージ制御装置。
  2. 前記制御部は、前記第2の記憶装置に復元された情報を書き込むことが可能な回数に対する、前記第2の記憶装置に復元された情報が書き込まれる回数の比率に基づいて、前記書き込み先記憶装置を決定することを特徴とする請求項記載のストレージ制御装置。
  3. 冗長化されたデータを表す情報を格納する複数の情報領域と1つ以上の予備領域とが分散して配置された複数の記憶装置のうち、前記予備領域の数よりも多くの記憶装置が故障した場合、前記複数の情報領域と前記1つ以上の予備領域との複数の組み合わせに含まれる故障した第1の記憶装置の複数の情報領域に対する復元処理において故障していない特定の複数の記憶装置から情報が読み出される回数と、前記復元処理において前記特定の複数の記憶装置に復元された情報が書き込まれる回数とに基づいて、各記憶装置の平均アクセス回数を求め、
    前記平均アクセス回数から、前記特定の複数の記憶装置のうち第2の記憶装置から情報が読み出される回数を減算することで、前記第2の記憶装置に復元された情報が書き込まれる回数を求め、
    前記特定の複数の記憶装置に復元された情報が書き込まれる回数から、前記第2の記憶装置から情報が読み出される回数を減算することで、前記第2の記憶装置に復元された情報を書き込むことが可能な回数を求め、
    前記第2の記憶装置に復元された情報が書き込まれる回数と前記第2の記憶装置に復元された情報を書き込むことが可能な回数とに基づいて、前記複数の組み合わせのうち1つの組み合わせに含まれる、前記第1の記憶装置の1つの情報領域に対応する復元された情報を書き込む書き込み先として、書き込み先記憶装置を決定する、
    処理をコンピュータに実行させるストレージ制御プログラム。
  4. コンピュータが、
    冗長化されたデータを表す情報を格納する複数の情報領域と1つ以上の予備領域とが分散して配置された複数の記憶装置のうち、前記予備領域の数よりも多くの記憶装置が故障した場合、前記複数の情報領域と前記1つ以上の予備領域との複数の組み合わせに含まれる故障した第1の記憶装置の複数の情報領域に対する復元処理において故障していない特定の複数の記憶装置から情報が読み出される回数と、前記復元処理において前記特定の複数の記憶装置に復元された情報が書き込まれる回数とに基づいて、各記憶装置の平均アクセス回数を求め、
    前記平均アクセス回数から、前記特定の複数の記憶装置のうち第2の記憶装置から情報が読み出される回数を減算することで、前記第2の記憶装置に復元された情報が書き込まれる回数を求め、
    前記特定の複数の記憶装置に復元された情報が書き込まれる回数から、前記第2の記憶装置から情報が読み出される回数を減算することで、前記第2の記憶装置に復元された情報を書き込むことが可能な回数を求め、
    前記第2の記憶装置に復元された情報が書き込まれる回数と前記第2の記憶装置に復元された情報を書き込むことが可能な回数とに基づいて、前記複数の組み合わせのうち1つの組み合わせに含まれる、前記第1の記憶装置の1つの情報領域に対応する復元された情報を書き込む書き込み先として、書き込み先記憶装置を決定する、
    ことを特徴とするストレージ制御方法。
JP2014162259A 2014-08-08 2014-08-08 ストレージ制御装置、ストレージ制御プログラム、及びストレージ制御方法 Active JP6515458B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2014162259A JP6515458B2 (ja) 2014-08-08 2014-08-08 ストレージ制御装置、ストレージ制御プログラム、及びストレージ制御方法
US14/793,002 US9519542B2 (en) 2014-08-08 2015-07-07 Storage control device and storage control method

Applications Claiming Priority (1)

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

Publications (2)

Publication Number Publication Date
JP2016038767A JP2016038767A (ja) 2016-03-22
JP6515458B2 true JP6515458B2 (ja) 2019-05-22

Family

ID=55267489

Family Applications (1)

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

Country Status (2)

Country Link
US (1) US9519542B2 (ja)
JP (1) JP6515458B2 (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10290119B2 (en) * 2016-09-15 2019-05-14 Sportsmedia Technology Corporation Multi view camera registration
JP6607206B2 (ja) 2017-01-25 2019-11-20 日本電気株式会社 管理装置、管理方法、及び、プログラム
WO2018154697A1 (ja) * 2017-02-24 2018-08-30 株式会社日立製作所 ストレージシステム及び復旧制御方法
US11169726B2 (en) * 2018-09-13 2021-11-09 Toshiba Memory Corporation Pool-level storage management
JP7167078B2 (ja) * 2020-03-27 2022-11-08 株式会社日立製作所 分散ストレージシステム及び記憶制御方法
KR20230022060A (ko) 2021-08-06 2023-02-14 삼성전자주식회사 설정 데이터를 저장하는 메모리 장치 및 그 동작방법

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5258984A (en) * 1991-06-13 1993-11-02 International Business Machines Corporation Method and means for distributed sparing in DASD arrays
JPH06230903A (ja) * 1993-01-31 1994-08-19 Hitachi Ltd ディスクアレイ装置の障害回復方法、およびディスクアレイ装置
JP2000200157A (ja) * 1999-01-08 2000-07-18 Nec Corp ディスクアレイ装置およびディスクアレイ装置におけるデ―タ復旧方法
US6976187B2 (en) * 2001-11-08 2005-12-13 Broadcom Corporation Rebuilding redundant disk arrays using distributed hot spare space
US7143305B2 (en) * 2003-06-25 2006-11-28 International Business Machines Corporation Using redundant spares to reduce storage device array rebuild time
JP3991947B2 (ja) * 2003-07-17 2007-10-17 日本電気株式会社 2種類のパリティと複数のデータ復旧方式とを有するディスクアレイ装置
JP2006260446A (ja) 2005-03-18 2006-09-28 Hitachi Ltd ディスクアレイ装置
US7404104B2 (en) * 2005-11-16 2008-07-22 International Business Machines Corporation Apparatus and method to assign network addresses in a storage array
GB2503274A (en) * 2012-06-22 2013-12-25 Ibm Restoring redundancy in a RAID
US9542272B2 (en) * 2014-03-24 2017-01-10 Avago Technologies General Ip (Singapore) Pte. Ltd. Write redirection in redundant array of independent disks systems

Also Published As

Publication number Publication date
US20160041877A1 (en) 2016-02-11
JP2016038767A (ja) 2016-03-22
US9519542B2 (en) 2016-12-13

Similar Documents

Publication Publication Date Title
JP6515458B2 (ja) ストレージ制御装置、ストレージ制御プログラム、及びストレージ制御方法
US11941255B2 (en) Storage system and data management method
US10140041B1 (en) Mapped RAID (redundant array of independent disks) in a data storage system with RAID extent sub-groups that are used to perform drive extent allocation and data striping for sequential data accesses to a storage object
US10146447B1 (en) Mapped RAID (redundant array of independent disks) in a data storage system with drive extents allocated to individual RAID extents from individual sub-groups of storage made up of ranges of logical block addresses defined across a group of hard disk drives
US10210045B1 (en) Reducing concurrency bottlenecks while rebuilding a failed drive in a data storage system
KR101148697B1 (ko) 디스크 어레이 전체에서의 패리티 분배 방법 및 저장시스템의 디스크들 전체에서의 패리티 분배 시스템
US7934120B2 (en) Storing data redundantly
JP6346565B2 (ja) ディスク記憶に消去符号化データを割り当てるための方法および装置
CN102880428B (zh) 分布式独立磁盘冗余阵列的创建方法及装置
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
US6918007B2 (en) Memory controller interface with XOR operations on memory read to accelerate RAID operations
US9606866B2 (en) Method of, and apparatus for, improved data recovery in a storage system
US20050229023A1 (en) Dual redundant data storage format and method
US10229022B1 (en) Providing Raid-10 with a configurable Raid width using a mapped raid group
US10552078B2 (en) Determining an effective capacity of a drive extent pool generated from one or more drive groups in an array of storage drives of a data storage system that uses mapped RAID (redundant array of independent disks) technology
JP6663482B2 (ja) 計算機システム、物理記憶デバイスの制御方法、および記録媒体
US20160342360A1 (en) Raid random distribution scheme
JP2004227560A (ja) 外部格納サブシステムにおけるパリティー格納方法及びエラーブロック復旧方法
CN110096218B (zh) 用于为存储对象提供raid数据保护的方法、系统和介质
US20150100819A1 (en) Method of Recovering Data in a Storage Device
CN109213428B (zh) 用于管理存储系统的方法和设备
US9524213B2 (en) Storage control apparatus, recording medium having stored therein storage control program and storage control method
JP6260193B2 (ja) ストレージシステム、及びストレージプログラム
US10977130B2 (en) Method, apparatus and computer program product for managing raid storage in data storage systems
JP6807457B2 (ja) ストレージシステム及びストレージシステムの制御方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170511

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20180214

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180227

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180420

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180821

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20181018

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190401

R150 Certificate of patent or registration of utility model

Ref document number: 6515458

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150