JP6777330B2 - ディスクアレイ制御装置、ディスクアレイ装置、ディスクアレイ装置の制御方法及びプログラム - Google Patents

ディスクアレイ制御装置、ディスクアレイ装置、ディスクアレイ装置の制御方法及びプログラム Download PDF

Info

Publication number
JP6777330B2
JP6777330B2 JP2018236633A JP2018236633A JP6777330B2 JP 6777330 B2 JP6777330 B2 JP 6777330B2 JP 2018236633 A JP2018236633 A JP 2018236633A JP 2018236633 A JP2018236633 A JP 2018236633A JP 6777330 B2 JP6777330 B2 JP 6777330B2
Authority
JP
Japan
Prior art keywords
data
storage devices
storage device
disk array
raid
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
JP2018236633A
Other languages
English (en)
Other versions
JP2020098489A (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.)
NEC Platforms Ltd
Original Assignee
NEC Platforms 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 NEC Platforms Ltd filed Critical NEC Platforms Ltd
Priority to JP2018236633A priority Critical patent/JP6777330B2/ja
Priority to PCT/JP2019/049584 priority patent/WO2020130034A1/ja
Priority to US17/312,098 priority patent/US11880573B2/en
Publication of JP2020098489A publication Critical patent/JP2020098489A/ja
Application granted granted Critical
Publication of JP6777330B2 publication Critical patent/JP6777330B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • 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/1088Reconstruction on already foreseen single or plurality of spare disks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0653Monitoring storage devices or systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]

Description

本発明は、ディスクアレイ制御装置、ディスクアレイ装置、ディスクアレイ装置の制御方法及びプログラムに関する。
情報処理装置の外部記憶装置として、磁気記憶ディスクを複数台搭載したディスクアレイ装置が用いられる。また、より高速にアクセス可能なSSD(Solid State Disk)を用いた記憶装置も、磁気記憶ディスクの代替として用いられている。ディスクアレイ装置では、データ喪失防止のため、RAID(Redundant Arrays of Inexpensive DisksまたはRedundant Arrays of Independent Disks)と呼ばれる冗長化技術が用いられる。RAIDは、冗長性と符号化方式により、RAID0からRAID5までの6種類に分類される。さらに、非特許文献1に記載された符号化技術を用いるRAID6あるいはダブル・パリティと呼ばれる多冗長符号化方式も知られている。
関連する技術として、特許文献1には、磁気記憶ディスクの「書き込み未了障害」の検出を課題として、磁気記憶ディスク上にデータ更新を管理する記憶領域を付加して書き込み未了障害を検出する方法が開示されている。
特許文献2には、RAIDを構成するハードディスク(Hard Disk Drive)の他に予備のハードディスクを設け、書き込んだデータの整合性確認にて不一致が生じた場合、多数決論理で有効なデータを決定することが開示されている。さらに特許文献2には、有効なデータの決定後、少数派となったハードディスクに対してディスクチェックを行い、復旧不可能と判定すると、予備のハードディスクと切り替えることが記載されている。
特許第4848533号公報 特開2004−5162号公報
James S. Plank,"A Tutorial on Reed−Solomon Coding for Fault-Tolerance in RAID−like Systems",Software-Practice and Experience,Volume 27,Number 9,page 995-1012,September 1997.
一般に正常な書き込み完了が報告されているにもかかわらず、磁気記憶ディスクへの書き込みが行われていない「書き込み未了障害」が発生しても、書き込み障害が生じた磁気記憶ディスクを特定することは困難である。より具体的には、(1)RAID技術はデータの冗長化により、破損した磁気記憶ディスクのデータを他の磁気記憶ディスクのデータを用いて復元することは可能だが、磁気記憶ディスクの障害そのものの検出を行うことができない。つまり、RAID技術によって、冗長符号の整合性の確認は行えるが、何れの磁気記憶ディスクで障害が発生したかについては、冗長符号からは判定することができない。例えば、磁気記憶ディスクに書き込み処理を行った際、書き込みデータが磁気記憶ディスク上の記憶媒体に書き込まれる前に、何らかの原因で磁気記憶ディスクが書き込み完了を報告した場合、ディスクアレイ装置は、完了報告を受けてディスクキャッシュ上のデータを破棄する。その後、記憶媒体にデータが書き込まれる前に磁気記憶ディスクの電源が切断されると記憶媒体のデータが更新されず、書き込みデータが喪失する。つまり、上述した「書き込み未了障害」が発生する。また、書き込み途中の電源切断などで記憶媒体に不正なデータが書き込まれれば、データの不正が検出され、その磁気記憶ディスクは障害ディスクとして切り離される。この場合は、RAIDの冗長構成を利用したデータの復旧が可能である。しかし、「書き込み未了障害」の場合には、一世代前のデータが残っているため不正データにはならず、障害が検出できない。「書き込み未了障害」が発生すると、一般的なRAID技術および非特許文献1の多重冗長技術を用いても、データを復旧することはできない。
(2)また、「書き込み未了障害」が発生した場合、冗長構成の整合性確認に失敗するため、他の磁気記憶ディスクのデータについても正当性を保証できない。つまり、冗長符号によるRAIDの整合性確認(コヒーレンシ・チェック)の際に、どの磁気記憶ディスクのデータが不正であるかが検出できる場合は良いがが、「書き込み未了障害」の場合は、不正である磁気記憶ディスクの特定が困難であるため、正常な磁気記憶ディスクのデータの保証も困難である。
なお、特許文献1に記載の方法は、第1の課題に対する解決手段を提供するが、管理用の制御領域を特別に付加する必要があり、磁気記憶ディスクの使用可能領域が削減されることや、更新処理などで磁気記憶ディスクのアクセス頻度が増加する等の課題がある。
また特許文献2に記載の方法は、第2の課題に関連し、多数決論理で有効データとされたデータが書き込まれたディスクを正当とするという解決方法を提示するが、同方式は冗長度に応じた数のハードディスクに加え、予備ハードディスクを必要とするため容量効率が悪化するという課題がある。
そこでこの発明は、上述の課題を解決するディスクアレイ制御装置、ディスクアレイ装置、ディスクアレイ装置の制御方法及びプログラムを提供することを目的としている。
本発明の一態様によれば、RAIDで構成された複数の記憶装置に分散して書き込んだデータおよび冗長化符号について、前記記憶装置から異常の報告が無く不整合が検出された場合、複数の前記記憶装置および冗長化符号について、前記記憶装置から異常の報告が無く不整合が検出された場合、複数の前記記憶装置の中から2つを除外した残りの前記記憶装置に書き込まれた前記データまたは前記冗長化符号を用いて、除外した前記記憶装置のそれぞれについて、前記データまたは前記冗長化符号の書き込み障害が発生したと仮定した場合の復旧データの値を演算する処理を、複数の前記記憶装置の中から除外する2つの前記記憶装置を選択する組み合せの通りだけ実行し、それぞれの前記記憶装置について演算された前記復旧データの値について、その値が一致する数が最も多い前記記憶装置を、前記書き込み障害が発生した前記記憶装置として特定する記憶装置特定部、を備えるディスクアレイ制御装置である。
また、本発明の一態様によれば、RAIDで構成された複数の記憶装置と、上記のディスクアレイ制御装置と、を備えるディスクアレイ装置である。
また、本発明の他の一態様によれば、RAIDで構成された複数の記憶装置に分散して書き込んだデータおよび冗長化符号について、前記記憶装置から異常の報告が無く不整合が検出された場合、複数の前記記憶装置および冗長化符号について、前記記憶装置から異常の報告が無く不整合が検出された場合、複数の前記記憶装置の中から2つを除外した残りの前記記憶装置に書き込まれた前記データまたは前記冗長化符号を用いて、除外した前記記憶装置のそれぞれについて、前記データまたは前記冗長化符号の書き込み障害が発生したと仮定した場合の復旧データの値を演算する処理を、複数の前記記憶装置の中から除外する2つの前記記憶装置を選択する組み合せの通りだけ実行し、それぞれの前記記憶装置について演算された前記復旧データの値について、その値が一致する数が最も多い前記記憶装置を、前記書き込み障害が発生した前記記憶装置として特定する、ディスクアレイ装置の制御方法である。
また、本発明の他の一態様によれば、コンピュータを、RAIDで構成された複数の記憶装置に分散して書き込んだデータおよび冗長化符号について、前記記憶装置から異常の報告が無く不整合が検出された場合、複数の前記記憶装置および冗長化符号について、前記記憶装置から異常の報告が無く不整合が検出された場合、複数の前記記憶装置の中から2つを除外した残りの前記記憶装置に書き込まれた前記データまたは前記冗長化符号を用いて、除外した前記記憶装置のそれぞれについて、前記データまたは前記冗長化符号の書き込み障害が発生したと仮定した場合の復旧データの値を演算する処理を、複数の前記記憶装置の中から除外する2つの前記記憶装置を選択する組み合せの通りだけ実行し、それぞれの前記記憶装置について演算された前記復旧データの値について、その値が一致する数が最も多い前記記憶装置を、前記書き込み障害が発生した前記記憶装置として特定する手段、として機能させるためのプログラムである。
本発明によれば、ディスクアレイ装置において、書き込み未了障害が発生した場合に、どの記憶装置で書き込み未了障害が発生したかを特定できるという効果が得られる。
本発明の一実施形態に係るディスクアレイ装置の一例を示す図である。 本発明の一実施形態によるRAID演算器の一例を示す図である。 本発明の一実施形態のRAID演算器による演算例を示す第1の図である。 本発明の一実施形態のRAID演算器による演算例を示す第2の図である。 本発明の一実施形態のRAID演算器による演算例を示す第3の図である。 本発明の一実施形態のRAID演算器による不整合発生時の再構築演算結果の一例を示す図である。 本発明の一実施形態のRAID演算器による再構築演算結果の一例を示す第1の図である。 本発明の一実施形態のRAID演算器による再構築演算結果の一例を示す第2の図である。 本発明の一実施形態のRAID演算器による再構築演算結果の一例を示す第3の図である。 本発明の一実施形態のRAID演算器による書き込み未了障害が発生した記憶装置を特定する処理の一例を示す図である。 本発明の一実施形態の書き込み未了障害に関する処理の一例を示すフローチャートである。 本発明の一実施形態における制御装置の機能ブロック図である。 本発明の一実施形態における制御装置の最小構成を示す図である。
以下、本発明の一実施形態に係るディスクアレイ装置について図面を参照して説明する。図1は、本発明の一実施形態に係るディスクアレイシステムの一例を示す図である。
図示するようにディスクアレイ装置1は、ディスクアレイコントローラ11と、複数の磁気記憶ディスクからなるディスクアレイ15と、を備える。
ディスクアレイコントローラ11は、上位ホスト接続ポート12と、RAID演算器13と、ディスクキャッシュ14と、を備える。RAID演算器13およびディスクキャッシュ14はそれぞれ、内部インターフェース131、内部インターフェース141を介してディスクアレイコントローラ11の他の回路や内部インターフェース111と接続されている。ディスクキャッシュ14は、読み出し処理、書き込み処理の高速化に用いる。
ディスクアレイ15は、磁気記憶ディスク151〜156を備えている。ディスクアレイ装置1は、内部インターフェース111に接続された接続インターフェース1511を介して磁気記憶ディスク151と接続されている。同様に内部インターフェース111は、接続インターフェース1512〜1516と接続されている。つまり、ディスクアレイ装置1は、接続インターフェース1511〜1516を介して磁気記憶ディスク151〜156と接続されている。磁気記憶ディスク151〜156は、RAID6による冗長化構成とされている。
ディスクアレイ装置1は、上位ホスト接続ポート12を介して、上位接続インターフェース121で上位装置と接続されている。上位装置は、ディスクアレイ装置1にデータの書き込み命令、データの読み出し命令を発行する。上位装置からの読み書きの命令は、内部インターフェース111を経由して、RAID演算器13、ディスクキャッシュ14、各磁気記憶ディスク151〜156に送付される。ディスクアレイコントローラ11は、RAID演算器13、ディスクキャッシュ14を制御して、磁気記憶ディスク151〜156へのデータの書き込み、磁気記憶ディスク151〜156からのデータの読み出しを行う。
図2は、本発明の一実施形態によるRAID演算器の一例を示す図である。
RAID演算器13は、複数の乗算器13a0〜13fn、複数の加算器13A0〜13Fnを備えている。乗算器13a0〜13fnには、各々係数αa0〜αanが与えられている。乗算器13a0〜13fnは、RAID演算器13に入力されたデータと各係数αa0〜αanとのガロア体上またはガロア拡大体上での乗算を行う。図の×は、ガロア体またはガロア拡大体における積演算を示している。また、加算器13A0〜13Fnは、乗算結果をガロア体上またはガロア拡大体上での加減算を行う。図の+は、ガロア体またはガロア拡大体におけるXOR演算を示している。これにより、RAID演算器13は、データD〜Dを入力し、演算結果C〜Cを出力する。なお、ガロア体およびガロア拡大体については、非特許文献1に記載があるように、必要な冗長度によって要件が異なる。図2に例示するものは、一例であってこれに限定されない。また、本実施形態では、使用するガロア体およびガロア拡大体については特に限定しない。RAID演算器13は、図2の演算器を用いて、複数の冗長符号を演算したり、整合性確認を行ったり、再構築演算を行ったりする。例えば、ディスクアレイコントローラ11は、上位装置から書き込みを命令されたD〜Dとともに、RAID演算器13が演算した複数の冗長符号を磁気記憶ディスク151〜156に分散して書き込む。
図3、図4、図5は、それぞれ、本発明の一実施形態のRAID演算器による演算例を示す第1、第2、第3の図である。
図3〜図5を用いて、磁気記憶ディスクが6台の場合のRAID6を例に、RAID演算器13による演算例を説明する。なお、図3のガロア体あるいはガロア拡大体係数α〜αは、例えば、非特許文献1の方式によりガロア体の原子根より決定することができるが、冗長性が保証されるならば、他の方法で係数を決定してもよい。
図3の上の2行は、通常の冗長符号PおよびQを演算するRAID演算器13の構成例を示している。例えば、1行目は、書き込みデータD〜Dの各々について係数1を乗じ、それらを加算して冗長符号Pを演算することを示している。同様に2行目は、書き込みデータDにαを乗じた値と、Dにαを乗じた値と、Dにαを乗じた値と、Dにαを乗じた値とを加算して、冗長符号Qを演算することを示している。
図3の次の2行は整合性確認(Coherency Check)を行うための構成である。例えば、3行目は、書き込み後のD〜D、Pをディスクアレイ15から読み出して、読み出したD〜Dを用いて1行目で説明したようにしてPを演算し、演算したPとディスクアレイ15から読み出したPとの差を演算することを示している。同様に4行目は、書き込み後のD〜D、Qをディスクアレイ15から読み出して、読み出したD〜Dを用いて2行目で説明したようにQを演算し、演算したQとディスクアレイ15から読み出したQとの差を演算することを示している。3行目と4行目の値がともに0であれば、D〜Dが、正常にディスクアレイ15に書き込まれたことを示している。
整合性確認の処理は、所定の周期、または、データの読み出し時に行う。
図3の5行目以降は、ディスクアレイ15に異常が発生したときに異常が生じた磁気記憶ディスクに書き込まれたデータを復元する演算(再構成演算)を示している。例えば、図3の5行目は、D、Dを書き込む磁気記憶ディスクに障害があった場合に、D、D、冗長符号PおよびQと、それぞれに与えられた係数α012等を用いてDを演算することを示している。6行目は、同様な場合に、D、D、冗長符号PおよびQ、係数α102、α103、α10P、α10Qを用いてDを演算することを示している。図3の7行目以降、図4、図5についても同様である。なお、α012以降の係数は、係数α〜αおよびRAID構成により一意に決定される。
通常動作時は、RAID演算器13は、図3の上から4行の演算(冗長符号の付加および整合性の確認)を行う。磁気記憶ディスクの障害発生時、あるいは「書き込み未了障害」等で整合性の不一致が検出された場合は、RAID演算器13は、図3の5行目以降の再構築(Rebuild)演算を行う必要がある。磁気記憶ディスクの障害発生時は、図3の5行目以降に記載した再構築演算のパターンの中から、再構築に必要な行を選択する。以下に説明するように、整合性の不一致が検出されたにもかかわらず、磁気記憶ディスクの障害が報告されない場合、つまり、「書込み未了障害」が生じた場合、RAID演算器13は、再構築演算の全パターンを実行して「書込み未了障害」が生じた障害磁気記憶ディスクの特定を行う。
図6は、本発明の一実施形態のRAID演算器による不整合発生時の再構築演算結果の一例を示す図である。
図6にデータD1を書き込んだ磁気記憶ディスクに「書き込み未了障害」が発生した場合の再構築演算に及ぼす影響を示す。
まず、図6の1行目にてDの正しいデータ(書き込まれるべきだったデータ)と誤ったデータD’(一世代前のデータ)との差分をDxとおく。2行目以降は、D〜D、P,Qに対する再構築演算の結果を示している。図3〜図5に例示するようにD〜D、P,Qの再構築演算には複数の方法がある。例えば、Dについては、図3の上から6行目、図4の上から1,3,5,7行目の各々に再構築演算の方法が例示されている。図6に示すのは、これらのうちの何れかの方法でD〜D、P,Qの再構築演算を行った場合のDに関係する部分である。図6に示すように再構築演算結果は、各係数に差分Dxを掛けた分だけ変動する。ただし、係数が「0」の場合は、Dxの影響を受けないので正常な値が演算される。係数が「0」の場合とは、例えば、Dについて再構築演算する場合である。本実施形態では、この性質を利用して「書き込み未了障害」が発生した磁気記憶ディスクを特定する。
図7、図8、図9は、それぞれ、本発明の一実施形態のRAID演算器による再構築演算結果の一例を示す第1、第2、第3の図である。
図7〜図9は、図3〜図5に示した再構築演算について、再構築するデータ別に並べ替え整理したものである。また、図7〜図9においては、「書き込み未了障害」が生じた磁気記憶ディスクを特定するための構成「Count D」〜「Count D」等が追加されている。
再構築結果D00〜D04は、それぞれ異なる方法で再構築演算されたDの値を示している。「Count D」の値は、再構築結果D00〜D04のうち、同じ値を示すものが何個あるかを示している。例えば、D00〜D04の全てが同じであれば、「Count D」の値は、「5」である。同様に「Count D」の値は、Dについて再構築演算を行った結果であるD10〜D14のうち、同じ値を示すものの個数を示している。「Count D」、「Count D」についても同様である。また、「Count P」の値は、Pについて再構築演算を行った結果であるP〜Pのうち、同じ値を示すものの何個を示している。「Count Q」についても同様である。
次に図10を用いて、「Count D」の算出方法を示す。
図10は、本発明の一実施形態のRAID演算器による処理方法の一例を示す図である。
RAID演算器13は、図10に例示する演算器130を備えている。
まず、RAID演算器13は、冗長符号の整合性不一致が検出されたか否かをDx、Dyにより判定し、不一致と判定された場合は、再構築演算および「Count D」〜「Count Q」の算出を行う。図10に示す演算器130は、複数の比較器130a,130b等と複数の加算器を備えている。演算器130は、再構築結果D00〜D04を、互いに比較するマトリクス演算を行い、比較器の出力が「一致」を示す場合、当該行の比較結果を加算する。D00の行について具体的に説明すると、比較器130aは、D00とD01を比較する。両者が同じ値の場合は1を出力し、両者が異なる値の場合は0を出力する。比較器130bは、D00とD02を比較する。比較器130cは、D00とD03を比較する。比較器130dは、D00とD04を比較する。D00〜D03の値が全て同じ値の場合、比較器130a〜比較器130dの出力を加算すると4となる。また、比較元(1行目の場合、比較元はD00)同士の比較結果も一致数に含めるため、最後に1を加算する。このようにして、演算器130は、「Count D00」を演算する。同様にして演算器130は「Count D01」〜「Count D04」を演算する。演算器130は、「Count D00」〜「Count D04」を比較し、最も大きな値を「Count D」として決定する。
同様にして演算器130は、「Count D」〜「Count D」、「Count P」、「Count Q」を決定する。
例えば、Dについて「書き込み未了障害」が生じた場合、図7の3行目に示すようにD1に与えられた係数が「0」のため、D00は、Dについて生じた「書き込み未了障害」の影響を受けない。一方、D01〜D04は、図7の4〜7行目に示すように、Dに与えられた係数が「0」では無い為、Dの影響を受ける。従って、上記の互いに値を比較するマトリクス演算の結果は、「Count D00」の値が「1」、「Count D01」〜「Count D04」の値が「4」となる。すると、「Count D」は「4」である。同様に「Count D」、「Count D」、「Count P」、「Count Q」の値は「4」である。一方、Dについて全パターンでの再構築演算を行った結果であるD10〜D14は、図7の8〜12行目により、Dの影響を受けない。従って、「Count D10」〜「Count D14」の値は全て「5」となり、「Count D」は「5」である。
このように、Dについて「書き込み未了障害」が生じた場合、D00〜D04、D10〜D14、D20〜D24、D30〜D34、P〜P、Q〜QのうちDに関する係数が「0」のパターンでの再構築演算では正常な値が演算される。図7〜図9を参照すると、上記したようにDについて再構築演算を行う5つの演算方法では、係数が全て「0」となる。従って、D10〜D14の比較においては、全てが同じ値となる。他方、他のD、D、D、P,Qについて再構築演算を行う演算方法では、5つのうち4つの方法で、書き込み障害があったDの影響を受ける。従って、5つの再構築演算方法による演算結果の比較においては、全てが同じ値となることは無い。従って、図10の演算器130によれば、書き込み未了障害が生じたD1に係る「Count D」が選択される。つまり、本実施形態のRAID演算器13によれば、「書き込み未了障害」が生じた磁気記憶ディスク(Dを書き込んだ磁気記憶ディスク)を検出することができる。
また、「書き込み未了障害」が生じたDについては、上記の処理において再構築演算済みであるため、Dの正しい値は既に得られている。ディスクアレイコントローラ11が、再構築演算済みの値で、Dを更新することにより、磁気記憶ディスク上のデータが正常となり、ディスクアレイ15の冗長性が回復する。
次に図11を用いて、書き込み未了障害が生じた磁気記憶ディスクを特定する処理の流れについて説明する。
図11は、本発明の一実施形態の書き込み未了障害に関する処理の一例を示すフローチャートである。
6本の磁気記憶ディスク151〜156には、RAID6の方式で、データD〜D、冗長化符号P,Qが分散して書き込まれている。
まず、所定のタイミングで、ディスクアレイコントローラ11が、整合性確認処理を行う(ステップS11)。RAID演算器13は、磁気記憶ディスク151等から読み出したデータD〜Dを用いてP,Qを演算し、その演算結果を磁気記憶ディスク151等から読み出したP,Qと比較する。RAID演算器13は、P,Qが共に一致すれば整合性ありと判定し、P,Qの何れかが一致しない場合、整合性なしと判定する(ステップS12)。整合性ありと判定した場合(ステップS12;Yes)、書き込み未了障害は発生していないので、処理を終了する。
整合性がないと判定した場合(ステップS12;No)、RAID演算器13は、D〜D、P、Qのそれぞれについて、複数の方法で再構築演算を実行する(ステップS13)。例えば、RAID演算器13は、図7〜図9に列挙された全障害復旧パターンに対する再構築演算を実行する。
次にRAID演算器13は、再構築演算の結果に基づいて多数決で障害が生じた磁気記憶ディスクを特定する(ステップS14)。例えば、RAID演算器13は、図10で説明したように、1つの磁気記憶ディスクに書き込まれたデータについて実行された全障害復旧パターンに対する再構築演算結果のそれぞれを互いに比較し、値が一致するものの個数を算出する。RAID演算器13は、算出した個数の値が最も大きい磁気記憶ディスクを「書き込み未了障害」が生じた磁気記憶ディスクとして特定する(ステップS14)。
ディスクアレイコントローラ11は、RAID演算器13が特定した磁気記憶ディスクに対して、当該磁気記憶ディスクについて行った再構築演算結果を書き込んで、データを復旧する(ステップS15)。図10を用いて説明したように、「書き込み未了障害」が生じた磁気記憶ディスクに書き込まれたデータ(上記例では、D)の全障害復旧パターンについて、再構築演算を実行した演算結果は一致する。
RAID6などの多重冗長符号を用いてデータを冗長化するディスクアレイ装置では、複数の演算方式で、各磁気記憶ディスクのデータについての再構築演算を行うことが可能である。多重冗長符号によるRAIDが有するこの性質と一致が多いデータを正常データと判定する多数決論理を適用し、本実施形態では、書き込みデータの整合性確認を行って不整合を検出した場合、冗長構成された磁気記憶ディスクを対象に、あらゆる障害復旧パターンに対応する復旧データを演算する(再構築演算)。そして、値が一致する復旧データが最も多い復旧データを記憶する磁気記憶ディスクを、「書き込み未了障害」が発生した磁気記憶ディスクとして特定する。また、「書き込み未了障害」が発生した磁気記憶ディスク特定のために演算した復旧データを用いて、「書き込み未了障害」が発生した磁気記憶ディスクに書き込まれたデータを訂正する。このように、本実施形態によれば、「書き込み未了障害」が発生した磁気記憶ディスクの特定と、当該磁気記憶ディスクが記憶するデータの復旧が可能である。また、「書き込み未了障害」が発生した磁気記憶ディスクの特定により、他の磁気記憶ディスクのデータについて正当性を保証することができる。
また、本実施形態のディスクアレイ装置の制御方法であれば、「書き込み未了障害」が発生した磁気記憶ディスクを特定するための回路や処理の追加は必要であるが、磁気記憶ディスク上に追加の記憶領域を必要としないため、容量効率の低下が起きることが無い。また、データが正常に書き込まれている間は、特別な処理を追加で行う必要がなく、通常通りディスクアレイ装置を運用する事が可能である。
上記説明では、図1の構成を例に説明を行ったが、本実施形態のディスクアレイ装置の制御方法は、以下のような機能を有するディスクアレイ制御装置によって実現が可能である。
図12は、本発明の一実施形態におけるディスクアレイ制御装置の機能ブロック図である。
図示するようにディスクアレイ制御装置100は、制御部101と記憶装置特定部103と、訂正部104とを備える。
制御部101は、多重冗長符号を用いてデータの冗長化を行うディスクアレイ装置に対するデータの書き込み、読み込み処理、それに必要な各種処理を行う。制御部101は、例えば、一般的なRAID6対応のRAIDコントローラや、RAID6対応のソフトウェアRAIDのプログラムが備える機能である。制御部101は、整合性確認部102を備えている。整合性確認部102は、複数の磁気記憶ディスク装置に分散して書き込んだデータの不整合を、前記データから算出される複数の符号に基づいて検出する。整合性確認部102は、例えば、図11のフローチャートのステップS11の処理を行う。
記憶装置特定部103は、各磁気記憶ディスクから障害の報告が無く、整合性確認部102が整合性の不一致を検出した場合、複数の磁気記憶ディスクのそれぞれについて復旧データを演算し、多数決理論で正しいと判断された復旧データに係る磁気記憶ディスクを、データの書き込み障害が発生した磁気記憶ディスクとして特定する機能を備える。記憶装置特定部103は、例えば、図11のフローチャートのステップS12〜ステップS14の処理を行う。
訂正部104は、書き込み障害が発生したと特定された磁気記憶ディスクに対して、正しいと判断された復旧データを書き込んでデータを訂正する機能を備える。訂正部104は、例えば、図11のフローチャートのステップS15の処理を行う。
なお、ディスクアレイ制御装置100の各機能は、実施形態で例示したRAID演算器13のようにハードウェアとして実装してもよいし(ハードウェアRAID)、ソフトウェアとして実装してもよい(ソフトウェアRAID)。例えば、ハードウェアの場合、一般的なRAID6の演算を行う回路の他に、図10で例示した回路を備えたRAIDコントローラとして提供することができる。また、ソフトウェアの場合、制御部101、整合性確認部102、記憶装置特定部103、訂正部104による各処理の過程は、プログラムの形式でコンピュータ読み取り可能な記録媒体に記憶されており、このプログラムを、RAIDを制御するディスクコントローラが備えるプロセッサや上位装置が備えるプロセッサが読み出して実行することによって、上記処理が行われる。ここでコンピュータ読み取り可能な記録媒体とは、磁気ディスク、光磁気ディスク、CD−ROM、DVD−ROM、半導体メモリ等をいう。また、このコンピュータプログラムを通信回線によってコンピュータに配信し、この配信を受けたコンピュータが当該プログラムを実行するようにしてもよい。また、上記プログラムは、前述した機能の一部を実現するためのものであってもよい。さらに、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル(差分プログラム)であってもよい。
図13は、本発明の一実施形態における制御装置の最小構成を示す図である。
図13に示すようにディスクアレイ制御装置100は、少なくとも記憶装置特定部103を備える。一つの実施形態では、例えば、ディスクアレイ制御装置100は、一般的なRAIDコントローラやソフトウェアRAID用プログラムと独立した装置またはプログラムとして実装され、一般的なRAIDコントローラがデータ不整合を検出した場合に、記憶装置特定部103によって「書き込み未了障害」が発生した磁気記憶ディスクを特定する。また、ディスクアレイ制御装置100は、特定した磁気記憶ディスクの識別情報と、その磁気記憶ディスクについて演算した復旧データと、その書き込み指示を一般的なRAIDコントローラ等へ出力するように構成されていてもよい。
その他、本発明の趣旨を逸脱しない範囲で、上記した実施の形態における構成要素を周知の構成要素に置き換えることは適宜可能である。また、この発明の技術範囲は上記の実施形態に限られるものではなく、本発明の趣旨を逸脱しない範囲において種々の変更を加えることが可能である。
例えば、実施形態における磁気記憶ディスクは記憶装置の一例であるが、記憶装置はSSDであってもよい。
100・・・ディスクアレイ制御装置
101・・・制御部
102・・・整合性確認部
103・・・記憶装置特定部
104・・・訂正部
1・・・ディスクアレイ装置
11・・・ディスクアレイコントローラ
15・・・ディスクアレイ
12・・・上位ホスト接続ポート
13・・・RAID演算器
14・・・ディスクキャッシュ
111、131、141・・・内部インターフェース
151〜156・・・磁気記憶ディスク
1511〜1561・・・接続インターフェース

Claims (7)

  1. RAIDで構成された複数の記憶装置に分散して書き込んだデータおよび冗長化符号について、前記記憶装置から異常の報告が無く不整合が検出された場合、複数の前記記憶装置の中から2つを除外した残りの前記記憶装置に書き込まれた前記データまたは前記冗長化符号を用いて、除外した前記記憶装置のそれぞれについて、前記データまたは前記冗長化符号の書き込み障害が発生したと仮定した場合の復旧データの値を演算する処理を、複数の前記記憶装置の中から除外する2つの前記記憶装置を選択する組み合せの通りだけ実行し、それぞれの前記記憶装置について演算された前記復旧データの値について、その値が一致する数が最も多い前記記憶装置を、前記書き込み障害が発生した前記記憶装置として特定する記憶装置特定部、
    を備えるディスクアレイ制御装置。
  2. 前記記憶装置特定部は、前記復旧データの値が全て一致する前記記憶装置を、前記書き込み障害が発生した前記記憶装置として特定する、
    請求項1に記載のディスクアレイ制御装置。
  3. 前記記憶装置特定部は、複数の前記記憶装置のそれぞれについて、1つの前記記憶装置に障害が発生したときに実行される当該記憶装置に対する再構築演算の全パターンを実行し、全パターンの演算結果に基づいて、書き込み障害が発生した前記記憶装置を特定する、
    請求項1または請求項2に記載のディスクアレイ制御装置。
  4. 特定された前記記憶装置に対して、前記値が一致する数が最も多い前記復旧データを書き込んで書き込み障害が発生した前記記憶装置のデータを訂正する訂正部、
    をさらに備える請求項1から請求項3の何れか1項に記載のディスクアレイ制御装置。
  5. RAIDで構成された複数の記憶装置と、
    請求項1から請求項4の何れか1項に記載のディスクアレイ制御装置と、
    を備えるディスクアレイ装置。
  6. RAIDで構成された複数の記憶装置に分散して書き込んだデータおよび冗長化符号について、前記記憶装置から異常の報告が無く不整合が検出された場合、複数の前記記憶装置の中から2つを除外した残りの前記記憶装置に書き込まれた前記データまたは前記冗長化符号を用いて、除外した前記記憶装置のそれぞれについて、前記データまたは前記冗長化符号の書き込み障害が発生したと仮定した場合の復旧データの値を演算する処理を、複数の前記記憶装置の中から除外する2つの前記記憶装置を選択する組み合せの通りだけ実行し、それぞれの前記記憶装置について演算された前記復旧データの値について、その値が一致する数が最も多い前記記憶装置を、前記書き込み障害が発生した前記記憶装置として特定する、
    ディスクアレイ装置の制御方法。
  7. コンピュータを、
    RAIDで構成された複数の記憶装置に分散して書き込んだデータおよび冗長化符号について、前記記憶装置から異常の報告が無く不整合が検出された場合、複数の前記記憶装置の中から2つを除外した残りの前記記憶装置に書き込まれた前記データまたは前記冗長化符号を用いて、除外した前記記憶装置のそれぞれについて、前記データまたは前記冗長化符号の書き込み障害が発生したと仮定した場合の復旧データの値を演算する処理を、複数の前記記憶装置の中から除外する2つの前記記憶装置を選択する組み合せの通りだけ実行し、それぞれの前記記憶装置について演算された前記復旧データの値について、その値が一致する数が最も多い前記記憶装置を、前記書き込み障害が発生した前記記憶装置として特定する手段、
    として機能させるためのプログラム。
JP2018236633A 2018-12-18 2018-12-18 ディスクアレイ制御装置、ディスクアレイ装置、ディスクアレイ装置の制御方法及びプログラム Active JP6777330B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2018236633A JP6777330B2 (ja) 2018-12-18 2018-12-18 ディスクアレイ制御装置、ディスクアレイ装置、ディスクアレイ装置の制御方法及びプログラム
PCT/JP2019/049584 WO2020130034A1 (ja) 2018-12-18 2019-12-18 ディスクアレイ装置、ディスクアレイ制御装置およびディスクアレイ制御方法
US17/312,098 US11880573B2 (en) 2018-12-18 2019-12-18 Disk array device, disk array control device, and disk array control method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2018236633A JP6777330B2 (ja) 2018-12-18 2018-12-18 ディスクアレイ制御装置、ディスクアレイ装置、ディスクアレイ装置の制御方法及びプログラム

Publications (2)

Publication Number Publication Date
JP2020098489A JP2020098489A (ja) 2020-06-25
JP6777330B2 true JP6777330B2 (ja) 2020-10-28

Family

ID=71102872

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018236633A Active JP6777330B2 (ja) 2018-12-18 2018-12-18 ディスクアレイ制御装置、ディスクアレイ装置、ディスクアレイ装置の制御方法及びプログラム

Country Status (3)

Country Link
US (1) US11880573B2 (ja)
JP (1) JP6777330B2 (ja)
WO (1) WO2020130034A1 (ja)

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5533190A (en) * 1994-12-21 1996-07-02 At&T Global Information Solutions Company Method for maintaining parity-data consistency in a disk array
JP2004005162A (ja) 2002-05-31 2004-01-08 Toppan Printing Co Ltd 記憶装置、自動復旧方法
JP2004185256A (ja) 2002-12-03 2004-07-02 Hitachi Ltd Raidシステム
JP3676793B2 (ja) 2004-01-26 2005-07-27 富士通株式会社 ディスクアレイ装置
JP2005293263A (ja) 2004-03-31 2005-10-20 Nec Corp 記憶制御装置、情報処理装置、記憶制御方法及び記憶制御プログラム
JP4848533B2 (ja) 2007-03-29 2011-12-28 日本電気株式会社 ディスクアレイ装置、ディスクアレイ制御方法およびプログラム
JP5440884B2 (ja) 2011-09-29 2014-03-12 日本電気株式会社 ディスクアレイ装置およびディスクアレイ制御用プログラム
CN103092765B (zh) * 2012-12-31 2015-08-05 记忆科技(深圳)有限公司 固态存储系统、装置及数据写入方法

Also Published As

Publication number Publication date
US11880573B2 (en) 2024-01-23
US20220027060A1 (en) 2022-01-27
WO2020130034A1 (ja) 2020-06-25
JP2020098489A (ja) 2020-06-25

Similar Documents

Publication Publication Date Title
JP4668970B2 (ja) フォールトトレラントデータストレージシステムにおけるブロックレベルのデータ破損の検出および訂正
US7392428B2 (en) Method and system for recovering from abnormal interruption of a parity update operation in a disk array system
US7529970B2 (en) System and method for improving the performance of operations requiring parity reads in a storage array system
US8196018B2 (en) Enhanced error identification with disk array parity checking
US7853823B2 (en) System and method for reconstructing lost data in a storage system
US20140040702A1 (en) Managing a storage array
US20100037091A1 (en) Logical drive bad block management of redundant array of independent disks
US20120198195A1 (en) Data storage system and method
JP5785477B2 (ja) ミラー化データ・ストレージ・システムにおけるエラーを検出するための方法、コンピュータ・プログラム及びシステム
US10521304B1 (en) Multidimensional RAID
US7870464B2 (en) System and method for recovery of data for a lost sector in a storage system
CN108228382B (zh) 一种针对evenodd码单盘故障的数据恢复方法
TWI684857B (zh) 快閃記憶體裝置及快閃記憶體儲存管理方法
US7549112B2 (en) Unique response for puncture drive media error
CN104850504A (zh) 一种加速基于xor的raid-6编解码过程的方程并行计算方法
CN109358980B (zh) 一种对数据更新和单磁盘错误修复友好的raid6编码方法
US9489254B1 (en) Verification of erasure encoded fragments
JP4794439B2 (ja) アレイ・ストレージ・システムでの冗長性
Gottscho et al. Software-defined error-correcting codes
US20150178162A1 (en) Method for Recovering Recordings in a Storage Device and System for Implementing Same
JP6777330B2 (ja) ディスクアレイ制御装置、ディスクアレイ装置、ディスクアレイ装置の制御方法及びプログラム
JP5360666B2 (ja) 複数のディスクアレイのi/o動作を実行する方法及びシステム
JP3991947B2 (ja) 2種類のパリティと複数のデータ復旧方式とを有するディスクアレイ装置
US8499224B2 (en) Redundant code generation method and device, data restoration method and device, and raid storage device
Argyrides et al. Decimal Hamming: a software-implemented technique to cope with soft errors

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20181218

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20200114

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200306

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20201001

R150 Certificate of patent or registration of utility model

Ref document number: 6777330

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150