JP2018536220A - データ・ストレージ・システムにおける自律パリティ交換方法、プログラム、およびシステム - Google Patents

データ・ストレージ・システムにおける自律パリティ交換方法、プログラム、およびシステム Download PDF

Info

Publication number
JP2018536220A
JP2018536220A JP2018517413A JP2018517413A JP2018536220A JP 2018536220 A JP2018536220 A JP 2018536220A JP 2018517413 A JP2018517413 A JP 2018517413A JP 2018517413 A JP2018517413 A JP 2018517413A JP 2018536220 A JP2018536220 A JP 2018536220A
Authority
JP
Japan
Prior art keywords
storage element
array
storage elements
storage
recipient
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
JP2018517413A
Other languages
English (en)
Other versions
JP6655175B2 (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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of JP2018536220A publication Critical patent/JP2018536220A/ja
Application granted granted Critical
Publication of JP6655175B2 publication Critical patent/JP6655175B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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
    • 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/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/073Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a memory management context, e.g. virtual memory or cache management
    • 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/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0793Remedial or corrective actions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • G06F11/108Parity data distribution in semiconductor storages, e.g. in SSD
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • 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)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Detection And Correction Of Errors (AREA)

Abstract

【課題】ストレージ・システム中のストレージ素子のアレイの故障耐性を増強するための、コンピュータ実装の方法を提供する。
【解決手段】本コンピュータ実装の方法は、ストレージ素子のn>1の数のセット中に複数のストレージ素子を含むアレイを構成するステップを含む。また、本コンピュータ実装の方法は、アレイのストレージ素子の少なくとも1つの列が行パリティ情報を格納し、アレイのストレージ素子の少なくとも1つの行が列パリティ情報を格納するように、消失訂正符号を構成するステップを含む。さらにまだ、本コンピュータ実装の方法は、ストレージ素子の1つがデータの格納に失敗するのに続いて、アレイから受け手ストレージ素子を選択するステップ、および失敗のあるストレージ素子を包含するストレージ素子のセットの故障耐性を保つパリティ交換オペレーションを実行することによって、受け手ストレージ素子上にデータの少なくとも一部を再構築するステップを含む。
【選択図】図3

Description

本発明はデータ・ストレージ・システムに関し、さらに具体的には、本発明は、データ・ストレージ・システムがストレージ素子故障の増加に耐えるように該システムを構成することに関する。
クラウド・システムにおいて、取得コストおよび所有コストを最小にしながらデータ・アクセスを維持することは重要な要件である。データ・アクセスを確実にするために、クラウド・システムは、あらゆる列が共通の故障メカニズムを有するセットまたはJBOD(Just a Bunch of Disks(単純ディスク束))である、二次元アレイを用いたストレージを実装することが可能である。さらに、これらのセットは、RAID−5またはRAID−6などの独立ディスクの冗長アレイ(RAID:Redundant Array of Independent Disks)アーキテクチャを使って保護することができる。このアレイでは個別のディスクが故障すると、その故障したディスクをスペアで置き換えることが可能である。しかしながら、利用可能なスペアの数が少なくなると保守サービスの呼び出しが必要となり得る。
なお、自律的パリティ交換は、パリティ・ディスクをデータ・ディスクに転換することによって、ストレージ・システムにおける故障耐性を増強するという概念である。また一方、クラウド・クラスのシステムでは、JBOD全体など、ストレージ素子のセット全体の喪失(セット喪失)にいたる故障に対する保護も重要である。従来技術による一部のシステムは、個別のディスクまたはJBOD全体の故障、さらにこれらの組み合わせであっても修復できるが、セット喪失と素子喪失との組み合せに対するこれらのシステムの修復能力は低い。具体的には、アレイの各セットが故障の境界を形成し得て、単一のイベントによって、素子のセットが利用不可になったりまたは失われたりする可能性がある。例えば、ネットワーク接続もしくはセットの電源が故障する、またはセットが不注意に外されたり、誤設定されたりすることなどがある。かかるイベントが生じた場合、特定の物理構成においては、相当な数の素子が不作動、または失われることになる。また一方、パリティ交換が用いられれば、時間経過の中でアレイの論理的構成は、そのアレイの初期の物理的構成からはずれてくることになる。したがって、アレイの物理的故障境界は、そのアレイの論理的故障境界とは異なることになろう。
1つの一般的実施形態において、ストレージ・システム中のストレージ素子のアレイの故障耐性を増強するためのコンピュータ実装の方法が提供される。本コンピュータ実装の方法は、ストレージ素子のn>1の数のセット中に複数のストレージ素子を含むアレイを構成するステップを含む。また、本コンピュータ実装の方法は、アレイのストレージ素子の少なくとも1つの喪失およびアレイのストレージ素子のセットの1つの喪失に対し保護する消失訂正符号を構成するステップを含む。本消失訂正符号は、アレイのストレージ素子の少なくとも1つの列が行パリティ情報を格納し、アレイのストレージ素子の少なくとも1つの行が列パリティ情報を格納するように構成される。さらにまだ、本コンピュータ実装の方法は、ストレージ素子の1つがデータの格納に失敗するのに続いて、アレイから受け手ストレージ素子を選択するステップを含む。さらに、本コンピュータ実装の方法は、故障のあるストレージ素子を包含するストレージ素子のセットの故障耐性を保つパリティ交換オペレーションを実行することによって、受け手ストレージ素子上にデータの少なくとも一部を再構築するステップを含む。
別の一般的実施形態において、ストレージ・システム中のストレージ素子のアレイの故障耐性を増強するためのコンピュータプログラム製品が提供される。本コンピュータプログラム製品は、具現化されたプログラム命令を有するコンピュータ可読ストレージ媒体を含む。該プログラム命令は、プロセッサに、ストレージ素子のn>1の数のセット中に複数のストレージ素子を含むアレイを構成させるように、プロセッサによって実行可能である。さらに、該プログラム命令は、プロセッサに、アレイのストレージ素子の少なくとも1つの喪失およびアレイのストレージ素子のセットの1つの喪失に対し保護する消失訂正符号を構成させるように、プロセッサによって実行可能である。本消失訂正符号は、アレイのストレージ素子の少なくとも1つの列が行パリティ情報を格納し、アレイのストレージ素子の少なくとも1つの行が列パリティ情報を格納するように構成される。また、該プログラム命令は、プロセッサに、ストレージ素子の1つがデータの格納に失敗するのに続いて、アレイから受け手ストレージ素子を選択するように、プロセッサによって実行可能である。さらに、該プログラム命令は、プロセッサに、故障のあるストレージ素子を包含するストレージ素子のセットの故障耐性を保つパリティ交換オペレーションを実行することによって受け手ストレージ素子上にデータの少なくとも一部を再構築するように、プロセッサによって実行可能である。
別の一般的実施形態において、プロセッサと、該プロセッサに組み込まれもしくは該プロセッサによって実行可能な、またはその両方のロジックとを含む、システムが提供される。このロジックは、ストレージ素子のn>1の数のセット中に複数のストレージ素子を含むアレイを構成するように構成される。また、該ロジックは、アレイのストレージ素子の少なくとも1つの喪失およびアレイのストレージ素子のセットの1つの喪失に対し保護する消失訂正符号を構成するように構成される。本消失訂正符号は、アレイのストレージ素子の少なくとも1つの列が行パリティ情報を格納し、アレイのストレージ素子の少なくとも1つの行が列パリティ情報を格納するように構成される。さらに、該ロジックは、ストレージ素子の1つがデータの格納に失敗するのに続いて、アレイから受け手ストレージ素子を選択し、故障のあるストレージ素子を包含するストレージ素子のセットの故障耐性を保つパリティ交換オペレーションを実行することによって、受け手ストレージ素子上にデータの少なくとも一部を再構築するよう構成される。
本発明の他の諸態様および諸実施形態は、本発明の原理を例示するために示された図面と併せ、以下の詳細な説明を読み取ることによって明らかとなろう。
以降に、単なる例示として、添付の図面を参照しながら、本発明の諸実施形態を説明することとする。
一実施形態による、ストレージ・アレイの一般的物理レイアウトを示す。 一実施形態による、ストレージ・アレイの故障耐性を増強するための方法を示す。 一実施形態による、アレイの論理的配列を示す。 一実施形態による、図3のアレイのストレージ素子の故障および再構築を示す。 一実施形態による、図3のアレイのストレージ素子の故障および再構築を示す。 一実施形態による、図3のアレイのストレージ素子の故障および再構築を示す。 一実施形態による、図3のアレイのストレージ素子の故障および再構築を示す。 一実施形態による、図3のアレイのストレージ素子の故障および再構築を示す。 一実施形態による、図3のアレイのストレージ素子の故障および再構築を示す。 一実施形態による、図3のアレイのストレージ素子の故障および再構築を示す。 一実施形態による、図3のアレイのストレージ素子の故障および再構築を示す。 一実施形態による、使用するクラウド・システムに対するメンテナンスの予測時間のグラフである。
以下の説明は、本発明の一般的原理を例示する目的で行われており、本明細書で請求される発明的概念を限定することを意味するものではない。さらに、本明細書で説明される特定の特徴は、様々な可能な組み合せおよび順列のそれぞれにおいて他の記述の特徴と組み合わせて用いることが可能である。
本明細書中で別段に特に定義されている場合を除き、全ての用語には、本明細書により示唆される意味、および当業者に理解されている意味もしくは諸辞書、約定書などに定義されている意味またはその両方の意味を含めて、それらの可能最広義の解釈が与えられる。
また、本明細書および添付の特許請求の範囲での使用において、単数形「或る(a、an)」および「該(the)」は、別途に定められている場合を除き、複数に対象体をも含むことに留意しなければならない。さらに、当然のことながら、本明細書での使用において、用語「含む(comprise)」もしくは「含んでいる(comprising)」またはその両方は、記述された特徴、整数、ステップ、動作、要素、もしくはコンポーネント、またはこれらの組み合せの存在を特定するが、他の特徴、整数、ステップ、動作、要素、コンポーネント、もしくは前述のグループ、またはこれらの組み合せの存在または追加を除外するものではない。
以降の説明では、クラウド・システムにおける自律パリティ交換のためのシステム、方法、およびコンピュータプログラム製品のいくつかの好適な実施形態を開示する。
以下に説明する諸実施形態は、ストレージ素子の多くの異なる物理構成を備える諸システムに適用が可能な、アレイ構成および故障耐性の方法を提供する。これら諸実施形態のいずれにおいても、クラウド・システムなどのストレージ・システムは、高データ効率による高可用性、ならびに低廉な取得コストおよび長期間隔のメンテナンス能力を備えるように構成することが可能である。
1つの一般的実施形態において、ストレージ・システム中のストレージ素子のアレイの故障耐性を増強するためのコンピュータ実装の方法が提供される。本コンピュータ実装の方法は、ストレージ素子のn>1の数のセット中に複数のストレージ素子を含むアレイを構成するステップを含む。また、本コンピュータ実装の方法は、アレイのストレージ素子の少なくとも1つの喪失およびアレイのストレージ素子のセットの1つの喪失に対し保護する消失訂正符号を構成するステップも含む。本消失訂正符号は、アレイのストレージ素子の少なくとも1つの列が行パリティ情報を格納し、アレイのストレージ素子の少なくとも1つの行が列パリティ情報を格納するように構成される。さらにまだ、本コンピュータ実装の方法は、ストレージ素子の1つがデータの格納に失敗するのに続いて、アレイから受け手ストレージ素子を選択するステップを含む。さらに、本コンピュータ実装の方法は、故障のあるストレージ素子を包含するストレージ素子のセットの故障耐性を保つパリティ交換オペレーションを実行することによって、受け手ストレージ素子上にデータの少なくとも一部を再構築するステップを含む。
別の一般的実施形態において、ストレージ・システム中のストレージ素子のアレイの故障耐性を増強するためのコンピュータプログラム製品が提供される。本コンピュータプログラム製品は、具現化されたプログラム命令を有するコンピュータ可読ストレージ媒体を含む。該プログラム命令は、プロセッサに、ストレージ素子のn>1の数のセット中に複数のストレージ素子を含むアレイを構成させるように、プロセッサによって実行可能である。さらに、該プログラム命令は、プロセッサに、アレイのストレージ素子の少なくとも1つの喪失およびアレイのストレージ素子のセットの1つの喪失に対し保護する消失訂正符号を構成させるように、プロセッサによって実行可能である。本消失訂正符号は、アレイのストレージ素子の少なくとも1つの列が行パリティ情報を格納し、アレイのストレージ素子の少なくとも1つの行が列パリティ情報を格納するように構成される。また、該プログラム命令は、プロセッサに、ストレージ素子の1つがデータの格納に失敗するのに続いて、アレイから受け手ストレージ素子を選択するように、プロセッサによって実行可能である。さらに、該プログラム命令は、プロセッサに、故障のあるストレージ素子を包含するストレージ素子のセットの故障耐性を保つパリティ交換オペレーションを実行することによって受け手ストレージ素子上にデータの少なくとも一部を再構築するように、プロセッサによって実行可能である。
別の一般的実施形態において、プロセッサと、該プロセッサに組み込まれもしくは該プロセッサによって実行可能な、またはその両方のロジックを含む、システムが提供される。このロジックは、ストレージ素子のn>1の数のセット中に複数のストレージ素子を含むアレイを構成するように構成される。また、該ロジックは、アレイのストレージ素子の少なくとも1つの喪失およびアレイのストレージ素子のセットの1つの喪失に対し保護する消失訂正符号を構成するように構成される。本消失訂正符号は、アレイのストレージ素子の少なくとも1つの列が行パリティ情報を格納し、アレイのストレージ素子の少なくとも1つの行が列パリティ情報を格納するように構成される。さらに、該ロジックは、ストレージ素子の1つがデータの格納に失敗するのに続いて、アレイから受け手ストレージ素子を選択し、故障のあるストレージ素子を包含するストレージ素子のセットの故障耐性を保つパリティ交換オペレーションを実行することによって、受け手ストレージ素子上にデータの少なくとも一部を再構築するよう構成される。
図1は、ストレージ・アレイ100の一般的物理レイアウトを示す。様々な実施形態において、ストレージ・アレイ100は、インターネットなどのネットワーク上でクラウド・クラスのストレージを提供することができる。図1に示されるように、ストレージ・アレイ100は、複数のJBOD(単純ディスク束)104を含み、それらの各々がストレージのセットである。具体的に、図1は、4つのセット104(104a、104b、104c、および104d)を含むストレージ・アレイ100を示す。さらに、各セット104は、2つ以上のストレージ素子106(例えば、シリアルAT接続(SATA:serial AT attachment)ドライブなど)を1つ以上のイーサネット(R)ポートに接続することが可能である。さらに、各イーサネット(R)ポートをイーサネット(R)スイッチに接続することができ、各イーサネット(R)スイッチを1つ以上のコントローラ102に接続することができる。コントローラ102は、ソフトウェアもしくはハードウェアまたはその両方として具現化してよい。オプションとして、セット104は同一場所に配置されてよい。但し、一部の実施形態では、セット104は同一場所には配置されない。例えば、セット104a、104b、104c、および104dの各々は、別々のデータ・センタに配置されてもよい。
簡明化のため、図1のストレージ・アレイ100は、4つのセット104を含んで示されている。さらに、これら4つのセット104は、2つのスイッチに接続されて示され、次いでそのそれぞれはコントローラ102aおよびコントローラ102bに接続されている。但し、本明細書で開示される諸実施形態は、任意の適切な数のセット104を含むストレージ・アレイに実装可能なように考案されている。かかるストレージ・アレイは、任意の数のスイッチおよびコントローラに接続されてよい。
さらに、各セット104は、複数のストレージ素子106(D0、D1・・・Dn)を含んで示されている。具体的には、セット104aはストレージ素子106aを含んで示され、セット104bはストレージ素子106bを含んで示され、セット104cはストレージ素子106cを含んで示され、セット104dはストレージ素子106dを含んで示されている。各ストレージ素子は、ハード・ディスク・ドライブ(HDD:hard disk drive)、ソリッド・ステート・ドライブ(SSD:solid state drive)、揮発性ランダム・アクセス・メモリ(RAM:Random Access Memory)デバイス、不揮発性RAMデバイス、光ストレージ・デバイス(例えば、CD−ROM、DVD−ROMなど)、またはテープ・ストレージ・デバイスの少なくとも一部を含んでよい。セット104の各々中には、数十、数百、または数千のストレージ素子があってもよい。
データは、ディスクもしくはディスクの部分など、ストレージ素子106を喪失することによって、またはセット104に1つの全体を喪失することによって、失われ得る。セット104の各々は、単一のイベントによって、所与のセット104のストレージ素子106が利用できなくなるかまたは失われ得るように、故障境界を形成することができる。ほとんどの環境では、アクセスの喪失に起因してセット104全体が失われる。例えば、ネットワーク接続または電源の障害発生時、またはセット104が不注意に外されたり誤構成されたりした場合など、電源またはネットワーク接続性の中断に起因して、セット104が失われ得る。アクセスの喪失によりセット104が失われたときは、セット104のストレージ素子106上のデータは、通常、影響を受けない。修理が完了したならば、ストレージ素子106上のデータは再びアクセス可能になり得るが、おそらくわずかに時期遅れとなろう。
しかしながら、セット104の故障が、そのセット104内のストレージ素子106の1つ以上の喪失をもたらすことがあり得る。例えば、電力サージの結果として、セット104への損傷、またはJBOD104の不適切な除去などである。本明細書で開示される諸実施形態は、前述の状態の下で保護を提供することができる。
各コントローラ102(例えば、コントローラ102aもしくはコントローラ102bまたはその両方)は、マイクロプロセッサなど中央処理ユニットの何らかの組み合わせ、およびいくつかの相互接続された他のユニットを含むことができる。例えば、図1に示された各コントローラ102は、ランダム・アクセス・メモリ(RAM)、読み取り専用メモリ(ROM:Read Only Memory)、周辺デバイスを接続するためのI/Oアダプタ、ユーザ・インターフェース・アダプタ、通信アダプタなどを含んでよい。さらにまだ、このコントローラの或る実施形態は、オブジェクト指向プログラミング技術と共に、XML、C、もしくはC++言語またはこれらの組み合せ、あるいは他のプログラミング言語を用いて記述することが可能である。
さらに、以下でさらに詳しく説明するように、物理的に第一セットに配置されているストレージ素子の1つ以上を、他のストレージ素子を物理的に収容している第二の異なるセットに論理的に割り当てることが可能である。したがって、呈出側セットから受取り側セットへのストレージ素子の呈出には、コントローラ102が、第一セット中のストレージ素子を第二セットに、またはその逆向きに、論理的に割り当てができることが必要となり得る。呈出側セットと受取り側セットとが別々のコントローラ102に管理されている場合、それらコントローラ102は、ストレージ素子の論理的割り当てに関する情報を交換することが可能である。
ここで図2を参照すると、一実施形態による、方法200のフローチャートが示されている。方法200は、様々な実施形態において、とりわけ図1に示された環境の何れかにおいて、本発明に依って実行することができる。当然ながら、当業者なら本説明を読んで理解するであろうように、方法200には、図2に具体的に記載されたものより多いまたは少ないオペレーションを含めることが可能である。
方法200のステップの各々は、動作環境の任意の適切なコンポーネントによって実行されてよい。例えば、様々な実施形態において、方法200は、コントローラ、または内部に1つ以上のプロセッサを有する何らかの他のデバイスによって、部分的にまたは全体を実行することができる。任意のデバイス中の、例えば、ハードウェアもしくはソフトウェアまたはその両方に実装され、望ましくは少なくとも1つのハードウェア・コンポーネントを有する、処理回路(群)、チップ(群)もしくはモジュール(群)またはこれらの組み合せなどのプロセッサを用いて方法200の1つ以上のステップを実行することが可能である。例示的なプロセッサには、以下に限らないが、中央処理ユニット(CPU:central processing unit)、特定用途集積回路(ASIC:application specific integrated circuit)、フィールド・プログラム可能ゲート・アレイ(FPGA:field programmable gate array)など、これらの組み合せ、または当該技術で知られる任意の他の適切なコンピューティング・デバイスが含まれる。
図2に示されるように、方法200は、オペレーション202で開始され、アレイは、ストレージ素子のn>1の数のセットの複数のストレージ素子を含むように構成される。例えば、このアレイは、ストレージ素子の、3、5、8、12個などのセットを含むように構成されてよい。さらに、ストレージ素子の各セットは、故障境界を共有することが可能である。一実施形態において、ストレージ素子の各セットは、JBODを含んでよい。したがって、このアレイは、複数のJBODを含むように構成することができ、アレイの各JBODは2つ以上のストレージ素子を含む。
さらに、オペレーション204で、アレイに対する消失訂正符号が構成される。後記でさらに詳しく述べるように、本消失訂正符号は、アレイのストレージ素子のセットの1つの喪失に加え、アレイのストレージ素子の少なくとも1つの喪失に対して保護する。消失訂正符号は、アレイのストレージ素子の少なくとも1つの列が行パリティ情報を格納するように構成される。さらに、該消失訂正符号は、アレイのストレージ素子の少なくとも1つの行が列パリティ情報を格納するように構成される。いくつかの実施形態において、本消失訂正符号は、ストレージ素子の少なくとも1つがグローバルなパリティ情報を格納するように構成することができる。
例えば、図3は、アレイ300の論理的配列を示しており、アレイ300は、複数のストレージ素子を含んで表されている。具体的には、このアレイは、ストレージ素子の8つの列322〜336(すなわち、列322、324、326、328、330、332、334、および336)およびストレージ素子の10の行302〜320(すなわち、行302、304、306、308、310、312、314、316、318、および320)を含んで表されている。前に記載したオプションのように、ストレージ素子の各々は、ディスクの少なくとも一部分を含むことが可能であるが、データの保管および収容能力のある任意のユニットであってよい。図3に示されるように、ストレージ素子の各々中に表示されている値は、(セット・インデックス;セット中のディスク番号)として、ストレージ素子の論理的場所を表すことができる。さらに、図3の影のないセル(ストレージ素子)の各々は、ユーザ・データなどのデータを格納しているストレージ素子を表し、影があるセル(ストレージ素子)の各々は、後記でさらに詳しく説明するように、パリティ情報を格納しているストレージ素子を表している。
なお、図3によって示されているアレイ300の配列の初期状態においては、アレイ300の論理的マッピングは、アレイ300の物理的レイアウトと合致する。言い換えれば、全てのストレージ素子0;x(セット0)が列322中に所在する。加えて、図3に示されるように、アレイ300は、アレイ300がスペアのストレージ素子を含まないような仕方で構成されている。
さらに、消去訂正符号は、アレイ300に対し、ストレージ素子の少なくとも1つの列が行パリティ情報を格納するように構成される。例えば、列336のストレージ素子は、各ストレージ素子がそのそれぞれの行に対する行パリティを備えるように構成されている。具体的には、行0、列7のストレージ素子は、行302に対する行パリティを備え、行1、列7のストレージ素子は、行304に対する行パリティを備え、行2、列7のストレージ素子は、行306に対する行パリティを備えている、等々。
さらに、本消去訂正符号は、アレイ300に対し、ストレージ素子の少なくとも1つの行が列パリティ情報を格納するように構成される。例えば、行320のストレージ素子は、各ストレージ素子がそのそれぞれの列に対する列パリティを備えるように構成されている。具体的には、行9、列0のストレージ素子は、列322に対する列パリティを備え、行9、列1のストレージ素子は、列324に対する列パリティを備え、行9、列2のストレージ素子は、列326に対する列パリティを備えている、等々。加えて、行9、列7のストレージ素子は、列7(列336)中の行パリティ・ストレージ素子の列に対する列パリティ情報を格納している。
さらに、本消去訂正符号は、アレイ300に対し、少なくとも1つのストレージ素子がグローバル・パリティ情報を格納するように構成される。例えば、アレイ300は、それぞれがアレイ300に対するグローバル・パリティ情報を格納する、行8、列5のストレージ素子340、および行8、列6のストレージ素子342を含んで示されている。図3に示されるように、ストレージ素子340および342の両方におけるグローバル・パリティ情報の保存によって、アレイ300に対して構成された消失訂正符号は8のハミング距離を有し、しかして任意の7つの消失を是正することができる。さらに、これは、列に対し2のハミング距離を有し、しかして1つの列の喪失を是正することが可能である。単一のストレージ素子だけがグローバル・パリティ情報を格納するように構成された別の実施形態では、6のハミング距離を成就することが可能で、しかして任意の5つの消失を是正することができる。
一実施形態において、ストレージ素子の各セットは、単一のJBODまたは他の物理ストレージ・ユニット(例えばキャビネットなど)に収容されてよい。言い換えれば、セット・インデックス0の素子群は、ストレージ素子の第一セットまたは第一JBODを含むことができ、セット・インデックス1の素子群は、ストレージ素子の第二セットまたは第二JBODを含むことができ、セット・インデックス2の素子群は、ストレージ素子の第三セットまたは第三JBODを含むことができる、等々。このようにして、例えば、アレイ300は、各々が10のストレージ素子を含む(行302〜320の各々に1つのストレージ素子、)8つのJBODを含むクラウド・システムを構成することができる。上記に応じ、任意の所与のセットのストレージ素子は、共通の故障境界を共有することが可能である。かかるクラウド・システムにおいて、通常、ストレージ素子は、これらストレージ素子を収容しているセットの高い故障率から支障を受けることが予期され得る。
アレイ300に対する消失訂正符号を、ストレージ素子の少なくとも1つの列が行パリティ情報を格納し、ストレージ素子の少なくとも1つの行が列パリティ情報を格納し、少なくとも1つのストレージ素子がグローバル・パリティ情報を格納するように構成することによって、アレイ300は、相当な数のストレージ素子の故障に耐えることが可能で、これにより、アレイ300のディスク・メンテナンスの時間間隔が延長される。例えば、ストレージ素子の適度な故障を許容することによって、ディスク・メンテナンスの時間間隔を延長することが可能になる。オプションとして、使用中の所定数のストレージ素子が故障した後でだけ、メンテナンス・イベントをトリガするようにできる。
図2を再度参照すると、オペレーション206で、ストレージ素子の1つがデータの格納に失敗するのに続いて、アレイから受け手ストレージ素子が選択される。さらに、オペレーション208で、故障のあるストレージ素子を包含するストレージ素子のセットの故障耐性を保つパリティ交換オペレーションを実行することによって、データの少なくとも一部が受け手ストレージ素子の上に再構築される。データは、例えば、アレイのストレージ素子の1つ以上の中に格納されている行パリティ情報、列パリティ情報、またはグローバル・パリティ情報の利用など、任意の実行可能な方法で、受け手ストレージ素子上に再構築することが可能である。
一実施形態において、受け手ストレージ素子は、故障のあるストレージ素子と同じセットから選択される。さらにまだ、受け手ストレージ素子は、それが選択されたとき、列パリティ情報を格納している可能性がある。言い換えれば、受け手ストレージ素子の上にデータの少なくとも一部を再構築する前は、その受け手ストレージ素子は、列パリティ情報を格納しているストレージ素子の少なくとも1つの行のストレージ素子の1つである。
例えば、図4を参照すると、アレイ400は、物理ストレージ素子2;1が故障した後の、図3のアレイ300の配列を表している。同様に、図5のアレイ450は、列326内で、故障のあるストレージ素子上に前に格納されていたデータを受け手ストレージ素子に再構築することによって、ストレージ素子2;1の故障が軽減された後の、アレイ400の配列を表している。言い換えれば、単一の物理ストレージ・セットが、受け手ストレージ素子と故障のあるストレージ素子を収容することが可能である。一実施形態において、故障のあるストレージ素子のデータは、故障のあるストレージ素子のセット中の他のストレージ素子から専ら読み取ることによって、受け手ストレージ素子の上に再構築することができる。しかして、故障のあるストレージ素子のデータは、水平方向パリティ情報またはグローバル・パリティ情報を利用せずに再構築することが可能である。
具体的には、アレイ450によって示されるように、ストレージ素子2;1上に前に格納されていたデータは、前には列326に対する列パリティ情報を格納していたストレージ素子2;9に再構築されている。したがって、図5に示されるように、物理ストレージ素子2;1と2;9とは、故障のあるストレージ素子2;1上に以前に格納されていたデータを物理ストレージ素子2;9に再構築することによって、パリティ交換の遂行ができる。図6〜11に示されるように、このパリティ交換オペレーションは、ストレージ素子の第三セット(すなわち、セット・インデックス2のストレージ素子のセット、ストレージ素子2;x)の故障耐性を保つ。言い換えれば、図4および5の状況で示されたパリティ交換オペレーションを実施することによって、故障のあるストレージ素子を含むセットは、セット内のさらなるストレージ素子の故障にどのデータを失うこともなく堪えることができる。
故障のあるストレージ素子と同じセットから受け手ストレージ素子2;9を選択して、ネットワークへの影響を最小にすることが可能である。ストレージ素子2;1と2;9が同じセットまたはJBOD内に所在するので、物理ストレージ素子2;9上に論理ストレージ素子2;1を再構築することにより、JBODの外部のネットワークまたはデータ・チャネルでのデータの送信を不必要にできる。行1、列2の論理ストレージ素子は、列パリティを用いて再構築すればよい。また一方、オプションとして、行1、列2の論理ストレージ素子の物理ストレージ素子2;9上への再構築は、消失訂正符号中のいくつかのパスを介して実行が可能である。
なお、アレイ300に対して構成された消失訂正符号がいかなる7つのストレージ素子故障にも耐えられる一方、アレイ300が故障のあるストレージ素子を伴って機能し続ければ、読み取りパフォーマンスが支障を被り得る。したがって、パリティ交換を用いて、前にストレージ素子2;1に格納されていたデータを、列パリティ情報を格納しているストレージ素子の1つ(例えば、前述した物理ストレージ素子2;9など)の上に再構築することにより、システム・パフォーマンスを回復すればよい。これが行われれば、読み取りパフォーマンスを回復することができる。さらにまだ、パリティ情報を維持するために必要なシステム・リソースの低減に起因して書き込みパフォーマンスがやや向上する可能性もある。
オプションとして、図3の行320のストレージ素子(行9列0、行9列1、行9列2、・・・行9列7)など、列パリティ情報を格納しているストレージ素子が故障した場合には、再構築オペレーションは不必要にしてもよい。さらにまだ、図3の列336のストレージ素子(行0列7、行1列7、行2列7、・・・行8列7)など、行パリティ情報を格納しているストレージ素子が故障した場合は、故障のあるストレージ素子に前に格納されていた行パリティ情報は再構築が可能である。言い換えれば、行パリティ情報を格納しているストレージ素子は、データを格納しているストレージ素子と同様に、パリティ交換の対象にできる。具体的には、故障した行パリティのストレージ素子のデータ(行パリティ情報)は、前に列パリティ情報を格納するために使われていたストレージ素子上に再構築すればよい。
さらに、故障のあるストレージ素子がグローバル・パリティ情報を格納していた場合は、再構築オペレーションを実行するかどうかに関し選択をすることが可能である。オプションとして、前にグローバル・パリティ情報を格納していたストレージ素子の故障の後で、列パリティが無事に残った場合、その故障はそのままにしておいてもよい。このように、故障のあるストレージ素子は、あたかもそれがパリティ交換の呈出側であったかのように動作することができる。セット喪失と素子喪失との組み合わせに対する耐性の維持では、列中の呈出側パリティの数はその列の中の列パリティの数に限定される。
別のオプションとして、グローバル・パリティ情報を格納している各ストレージ素子を、ユーザ・データを格納しているストレージ素子として取り扱い、グローバル・パリティ情報を格納しているストレージ素子が故障した場合、列パリティ・ストレージ素子を使って交換することが可能である。パフォーマンスの観点からは、当該列中の故障が1つだけ場合、ローカルの列パリティを使ってグローバル・パリティ情報を構築できるので、これは、故障をそのままにしておくのが好ましいことがあり、これにより処理情報量が節減される。さらに、前にグローバル・パリティ情報を格納していたストレージ素子の故障の後で、そのグローバル・パリティ情報が再構築されず、アレイ内でさらなるストレージ素子の故障が生じた場合、その後のグローバル・パリティ情報の一切の再構築は、より計算量の大きい修復となり得る。
1つ以上のさらなるストレージ素子が故障に陥ることがある。例えば、図6を参照すると、アレイ500は、さらなるストレージ素子の故障後の、アレイ450の論理的配列を表している。前述したように、物理ストレージ素子2;9は、故障した物理ストレージ素子2;1に前に格納されていたデータを使い、物理ストレージ素子2:9が、行1、列2のストレージ素子に論理的にマップされることによって、前に再構築されている。図6に示されるように、ストレージ素子2;0が故障してしまった。
行0、列2のこのストレージ素子は、アレイから受け手ストレージ素子を選択し、ストレージ素子2;0上に前に格納されていたデータの少なくとも一部を受け手ストレージ素子上に再構築することによって、再建が可能である。一実施形態において、再構築オペレーションに先立って、受け手ストレージ素子は、列パリティ情報を格納しているストレージ素子の別の1つとすることができる。オプションとして、受け手ストレージ素子は、当該アレイの、故障したストレージ素子とは異なるセットまたはJBODから選択することも可能である。
アレイがストレージ素子のn>1の数のセットを含むよう構成されている一実施形態では、上限nの故障のあるストレージ素子まで前述の仕方で再構築が可能である。例えば、アレイ300がストレージ素子の8つのセット(すなわち8のJBOD)を含むように構成されている、図3〜7の状況では、上限8つまでの故障のあるストレージ素子を前述の仕方で再構築できる。具体的には、上限8つまでの故障のあるストレージ素子の各ストレージ素子を、アレイ300の行320中の、元来は列パリティ情報を格納している8つのストレージ素子の1つの上に再構築すればよい。様々な実施形態において、≦nの数のストレージ素子の故障時にまたは故障に応答してメンテナンス・イベントをトリガすることができる。例えば、図3〜7の状況において、ストレージ素子の8つの故障時に、ストレージ素子の6つの故障時に、ストレージ素子の4つの故障時、等々に、メンテナンス・イベントをトリガすればよい。
故障のあるストレージ素子2;0および2;1が同じセット中に所在するという事実は、単一のセット内で複数のストレージ素子が故障するという、ワースト・ケースのストレージ素子喪失シナリオを表し得る。セット2内には、列パリティ情報を格納しているストレージ素子がもうないので、パリティ情報を格納するストレージ素子は、アレイ500のセットの他の1つから選択すればよい。言い換えれば、セット2中では、セットローカルのパリティはもはや利用可能ではなく、したがって、ストレージ素子2;0のデータを再構築するための受け手ストレージ素子は、アレイ500の他のセットの1つの中の、パリティ情報を格納しているストレージ素子の1つから選択すればよい。
例えば、図7を参照すると、アレイ550は、ストレージ素子2;0上に前に格納されていたデータを別のセットの受け手ストレージ素子に再構築することによりストレージ素子2;0の故障が軽減された後の、アレイ500の配列を表している。しかして、セット2の物理ストレージ素子2;0上に前に格納されていたデータは、異なるセット(セット0)の物理ストレージ素子0;9に再構築されている。行0、列2の論理ストレージ素子のデータは、列2に対する列パリティ情報は前に上書きされてしまったので、行0に対する行パリティ情報を用いて再構築すればよい。
このように、物理ストレージ素子0;9は、行0、列2のストレージ素子に論理的にマップすることが可能である。これにより、パリティ交換が完了した後は、第一セットからのデータは今や物理的に異なるセットに所在する。具体的には、論理列326からのデータは、今やセット0中のストレージ素子上に所在する。列322と326とのストレージ素子の間でパリティ交換オペレーションを行った結果として、アレイ550の論理マップは、もはやセットまたはJBODの故障境界に合致しない。
セットまたはJBODの故障境界を超えての受け手ストレージ素子の選択を可能にすることによって、アレイ550内のさらなるストレージ素子の故障に応じ、さらなるパリティ交換オペレーションを行うことが可能になる。例えば、ここで図8を参照すると、アレイ600は、6つのさらなるストレージ素子の故障とそれに続くパリティ交換の後の、アレイ550の論理的配列を表している。
具体的には、図8に示されるように、ストレージ素子2;7を除き、セット2内の全てのストレージ素子が故障している。さらに、セット2のストレージ素子の各々に対するパリティ交換が実行されており、セット2の各ストレージ素子が行320の受け手ストレージ素子上に再構築されている。言い換えれば、以前に消失訂正符号によって列パリティ情報を格納するように構成された、行320のストレージ素子の各々が今やデータを格納している。具体的には、図8内において、物理ストレージ素子0:9は行0列2の論理ストレージ素子にマップされ、物理ストレージ素子1;9は行2列2の論理ストレージ素子にマップされ、行9列3の物理ストレージ素子は行5列2の論理ストレージ素子にマップされ、物理ストレージ素子4;9は行4列2の論理ストレージ素子にマップされている、等々。
結果として、元のアレイ300の全データは、直接アクセス可能のまま残るが、今や全ての列パリティ情報は失われている。さらに、当初セット2に格納されていたデータは、今は元のアレイ300のセット0;x、・・・7;x(すなわち、8つの異なるセット)の全てに所在している。結果として、アレイ600は、さらなる一セットの喪失に加え、さらなる1つだけのストレージ素子の故障に耐えることが可能であり得る。オプションとして、クラウド・システムのアレイがさらなるただ1つのストレージ素子およびセットの故障に耐えられるだけになったときに、システムはメンテナンスを要求することができる。メンテナンス・イベントは、例えば、故障したストレージ素子を代替するための、スペア用または代替用ストレージ素子の取り付けを含んでよい。
メンテナンス過程での故障のリスクを最小にするために、クラウド・システムは、メンテナンス期間中での1つのさらなるストレージ素子の故障に耐えるように構成するとよい。したがって、ストレージ素子に対し、2のハミング距離で一切のメンテナンスを行うようにするとよい。
上記のように、図8のアレイ600は、1つのさらなるストレージ素子およびセットの故障に耐えることができる。このシナリオは、図9のアレイ650によって示されている。具体的には、図9に示されるように、セット全体(すなわちセット0)がアレイ650から外されている。結果的に、列322を構成するストレージ素子の全てが故障しているかまたは失われている。その結果、物理ストレージ素子0;9のデータが失われている。この物理ストレージ素子は、行0、列2の論理ストレージ素子からのデータを包含する。なお、パリティ交換の後では、論理ストレージ素子のマップは、もはやセットの物理的故障境界に合致しない。しかして、セットの喪失は、論理的マップ中の複数の列に影響を与え得る。
また、物理ストレージ素子1;1も故障するかまたは失われている。アレイ650のこれらストレージ素子の故障およびセットの喪失によって、故障境界の配列の喪失の結果が明らかになっている。具体的には、列326は、2つのストレージ素子を失い、その1つは列322に論理的にマップされた。
結果的に、アレイ650の19個のストレージ素子が現在失われるかまたは利用不可能である。但し、前のパリティ交換オペレーションがこれら故障を特定のパターンに位置付けているので、アレイ650に対し前に構成された消失訂正符号がこれらの喪失を修復できる可能性がある。
一実施形態において、行パリティ情報を利用して、アレイ650のストレージ素子の故障を是正することが可能である。具体的には、列336のストレージ素子の行パリティ情報を利用してアレイ650のストレージ素子の故障を是正すればよい。
例えば、ここで図10を参照すると、アレイ700は、それぞれ行2、3、4、5、6、7、および8からの物理ストレージ素子中の対応する行パリティ情報および行パリティ算式を利用して、列322の物理ストレージ素子0;2、0;3、0;4、0;5、0;6、0;7、および0;8を再構築した後の、アレイ650の論理的配列を表している。この行パリティ算式は、単一の消失を有する任意の所与の行を修復するために用いることができる。結果として、12の故障が残っている。
アレイ700のストレージ素子の故障を是正するために、列パリティ情報を利用することができる。例えば、例750は、行320の、行9列3、行9列4、行9列5、行9列6、および行9列7の論理ストレージ素子を、列パリティ情報および列パリティ算式を用いて再構築した後の、アレイ700の論理的配列を表している。この列パリティ算式は、単一の消失がある任意の所与の列を修復するために用いることが可能である。結果として、7つの故障が残っている。
いくつかのシナリオにおいて、行パリティ情報および列パリティ情報は、アレイの失われたまたは故障したストレージ素子を再構築するために再帰的に使用してもよい。例えば、いくつかのシナリオにおいて、行パリティ算式および列パリティ算式を適用した後に、該行パリティ算式および列パリティ算式の引き続きの適用によって、1つ以上のストレージ素子の消失または故障を修復することが可能である。
さらにまだ、ストレージ素子340(5;8)および342(6;8)中に格納されているグローバル・パリティ情報を利用することにより、全データが完全に利用可能であり、残りの7つの故障を修復することができる。この7つの残った消失の再構築の間に、パフォーマンスへの影響があり得ると予想される。
一実施形態において、メンテナンス完了の後、交換されたストレージ素子に対しセットの故障境界を回復することが可能である。これは、異なるJBODとのデータ・パリティの交換を含み、これらのほとんどは単純なオペレーションである。例えば、図11を参照すると、ストレージ素子2;0は、ストレージ素子0;9からコピーされたデータを有するはずである。これはこれらの他のストレージ素子についても言える。パリティ交換が或るセットの内部だけで(すなわち、1つだけのセットのストレージ素子の間で)行われた場合は、故障境界は影響を受けない。したがって、かかるパリティ交換オペレーションは、その後の故障境界の復旧を必要としなくてよい。
セットの故障境界の復旧の後、各それぞれのセット中のストレージ素子だけを用いるローカルのパリティ算式を使って、各セット中のストレージ素子上に列パリティ情報を再構築すればよい。
図3〜11の状況において、本消失訂正符号は、積符号よりも大きな距離を備えることができる。前述の仕方でパリティ交換オペレーションを行うことによって、さらなるセットの喪失およびストレージ素子の喪失に対し、距離2が利用可能となり得る。2つのグローバル・パリティ(例えば、ストレージ素子340および342)を備える消失訂正符号を用いる場合、その繰り延べ限度はセット単位としてよく、パリティ交換の各々は、望ましくはセット(列)パリティを使って行えばよい。
このように、m個のストレージ素子のn個のセットを含むクラウド・システムにおいて、クラウド・システムは、メンテナンスの前にnのパリティ交換を行うことができ、セットの1つおよびストレージ素子の1つのさらなる故障の後でもデータ喪失を被らなくてもよい。
上記の説明では、システムが、単一のストレージ素子および一セットのさらなる故障にだけ耐えられる時点で、メンテナンスを要求することができるように記載したが、当然のことながら、この時点より早くにもまた遅くにもメンテナンスを要求することができる。オプションとして、システムは、メンテナンスをどの時点で要求するように構成してもよい。例えば、本消失訂正符号は何れか7つの故障を取り扱うことが可能であるが、システムは、7より少ないエラーのクラスタが発生した時点でメンテナンスを求めるように構成されてもよい。例えば、6故障のクラスタをメンテナンス要求の閾値として選択するのがよいかもしれない。かかる設定は、システムの完全性およびロバストネスを確保にするように選択すればよい。
さらにまだ、前述の諸実施形態は、ストレージ素子喪失およびセット喪失両方に対するクラウド・システムの喪失耐性を増強するための方法およびシステムを提供する。具体的には、前述した消失訂正符号は、8つの同一箇所故障によるストレージ素子の喪失に耐え、加えて、メンテナンスの間の一セット全体およびストレージ素子のさらなる喪失に対しロバストである。
前述の消失訂正符号は、19のパリティを備えるMDS符号と同じパフォーマンスを提供することができる。だが、かかるMDS符号は19のグローバル・パリティを必要とする。さらに、MDS符号は、単一のストレージ素子故障に対しては、緊急対応アプローチを持たない。
加えて、図3〜11の状況において、前述の消失訂正符号は高い効率を有する。具体的には、図3〜11の状況において説明したように、本消失訂正符号は、ストレージ素子の76.25%が初期にデータを格納しながら、スペアを必要としないように、アレイを構成することを可能にする。さらに、本消失訂正符号は、パリティ交換後にアレイの容量の23.75%の喪失に耐え、容量の10%が失われるまで、メンテナンスの繰り延べを可能にする。これらにより、上記で開示した諸実施形態は、クラウド・システムのストレージ・アレイの保守の期間を相当に延長することができる。
ここで図12を参照すると、図2〜11で説明した消失訂正符号を用いたクラウド・システムに対するメンテナンスの予測期間がプロットされている。図12に示されるように、失われたストレージ素子に対するクラウド・システムの耐性を増強することにより、該クラウド・システムのメンテナンス間隔を大きく増大することが可能である。
例えば、15のストレージ素子を保持する8つのセットを備えるシステムは、各々、合計120のストレージ素子を含む。前述の消失訂正符号を使って、このシステムは、上限8ストレージ素子まで延期することができる。図12は、ストレージ素子の年間故障率が6%であっても、6.5ヵ月より短期に8つのストレージ素子が失われる確率はたったの5%であることを示している。しかして、本消去訂正符号の使用は、従来技術のシステムに比べ、メンテナンス時間間隔を大幅に増大する能力を提供する。
前述の方法は、本消去訂正符号に対する1つだけの論理マップを使って示されてきた。本方法は、再構築の負荷を低減するため、パリティ・ローテーションまたはデクラスタリングに対応すべく容易に拡張することが可能である。かかる場合、ストレージ装置上のストレージ・スペースの相異なる部分に対し相異なるパリティ位置を使ったマップのセットができることになる。例えば、第一アレイでは行0、第二アレイでは行1、等々のパリティの行を備える、アレイ300の10の異なったバージョンが生じ得る。これは、列パリティのローテーションに影響する。各装置上のストレージ・スペースの一部分に対し、それぞれのマップが使われることになろう。例えば、最初の10%は第一ローテーションに、二番目の10%は第二ローテーションに、等々、使用することができよう。しかして、第一ストレージ装置が故障したとき、それは90%のデータと10%のパリティを包含していることになる。しかして、パリティ交換において、セット中の全ストレージ装置に亘って書き込み作業負荷が分散され、パリティ交換過程の時間が短縮される。
本明細書で開示した様々な実施形態は、mのストレージ素子のnのセット(例えばJBODなど)を含んで説明されてきたが、当然のことながら、各セットはmのストレージ素子を包含する必要はない。例えば、mは、セット中の素子の最大数に設定することが可能で、<mの数のストレージ素子を有するどのセットにも、仮想ストレージ素子を割り当てることができる。さらに、当然のことながら、本明細書で開示の方法は、行あたり1つのパリティ・ストレージ素子または列あたり1つのパリティ・ストレージ素子以外(例えば、一つ列中に2つの列パリティ・ストレージ素子など)を備えるストレージ・システムにも拡張することが可能である。
まださらに、前述のアレイ構成および故障耐性の方法は、ストレージ素子の多くの異なる物理構成を備えるシステムにも適用されてよい。例えば、前述のように、ストレージ素子はディスク上の場所であってよく、ストレージ素子の各セットがJBODを含んでもよい。別の例として、SSDを用いる諸実施形態において、各ストレージ素子はページを含んでよく、ストレージ素子の各セットは消去ブロックを含んでもよい。まだ別の例として、SSDを用いる諸実施形態において、各ストレージ素子はページを含んでよく、ストレージ素子の各セットはフラッシュ・ダイを含んでもよい。さらにまだ、ストレージ素子の各々が、ディスク・アレイまたはJBODを含んでよく、セットの各々が、ラックなどのアレイのより大きなグループを含んでもよい。さらに、ラックは、別個の物理的場所もしくはデータ・センタまたはその両方中へのラックの設置などによって停電に対して隔離することができる。
前述の実施形態のいずれにおいても、クラウド・システムなどのストレージ・システムは、高いデータ効率での高可用性、ならびに低取得コストおよび長期間隔メンテナンス能力を備えるように構成することが可能である。クラウド・システムの長期間隔メンテナンスは、その繰り延べによりシステム・パフォーマンスが劣化しなければ実際的なアプローチと見なしてよい。
本発明は、システム、方法、もしくはコンピュータプログラム製品またはこれらの組み合わせであり得る。本コンピュータプログラム製品は、プロセッサに本発明の諸態様を遂行させるための、コンピュータ可読プログラム命令を有するコンピュータ可読ストレージ媒体(または媒体群)を含み得る。
このコンピュータ可読ストレージ媒体は、命令実行デバイスによる使用のための命令を保持および格納できる有形のデバイスであってよい。本コンピュータ可読ストレージ媒体は、例えば、以下に限らないが、電子ストレージ・デバイス、磁気ストレージ・デバイス、光ストレージ・デバイス、電磁気ストレージ・デバイス、半導体ストレージ・デバイス、または前述の任意の適切な組み合せであってよい。コンピュータ可読ストレージ媒体のさらに具体的例の非包括的リストは、携帯型コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ(RAM)、読み取り専用メモリ(ROM)、消去およびプログラム可能読み取り専用メモリ(EPROM:erasable programmable read−only memoryまたはフラッシュ・メモリ)、スタティック・ランダム・アクセス・メモリ(SRAM:static random access memory)、携帯型コンパクト・ディスク読み取り専用メモリ(CD−ROM:compact disc read−only memory)、デジタル多用途ディスク(DVD:digital versatile disk)、メモリ・スティック、フレキシブル・ディスク、パンチカードまたは記録された命令を有する溝中の嵩上げ構造体などの機械的符号化デバイス、および前述の任意の適切な組み合わせを含み得る。本明細書中で用いられるコンピュータ可読ストレージ媒体は、無線波または他の自由伝播電磁波、ウェーブガイドもしくは他の送信媒体を通して伝播する電磁波(例えば、光ファイバ・ケーブルを通過する光パルス)、またはワイヤを通して送信される電気信号などの本来的に一時的な信号、として解釈されるべきものではない。
本明細書で説明したコンピュータ可読プログラム命令は、コンピュータ可読ストレージ媒体から、それぞれのコンピューティング/処理デバイスに、または、例えば、インターネット、ローカル・エリア・ネットワーク、広域ネットワーク、もしくはワイヤレス・ネットワーク、またはこれらの組み合せなどのネットワークを介して、外部のコンピュータまたは外部のストレージ・デバイスにダウンロードすることができる。このネットワークは、銅の送信ケーブル、光送信ファイバ、ワイヤレス送信、ルータ、ファイアウォール、スイッチ、ゲートウェイ・コンピュータ、もしくはエッジ・サーバ、またはこれらの組み合わせを含んでよい。各コンピューティング/処理デバイス中のネットワーク・アダプタ・カードまたはネットワーク・インターフェースは、ネットワークからコンピュータ可読プログラム命令を受信し、それぞれのコンピューティング/処理デバイス内のコンピュータ可読ストレージ媒体中に保管するため、そのコンピュータ可読プログラム命令を転送する。
本発明のオペレーションを遂行するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セットアーキテクチャ(ISA:instruction−set−architecture)命令、マシン命令、マシン依存命令、マイクロコード、ファームウェア命令、状態設定データ、または、Smalltalk(R)、C++などのオブジェクト指向プログラミング言語、および、“C”プログラミング言語または類似のプログラミング言語などの従来式手続き型プログラミング言語を含め、一つ以上のプログラミング言語の任意の組み合わせで記述されたソース・コードもしくはオブジェクト・コードであってよい。これらコンピュータ可読プログラム命令は、スタンドアロン・ソフトウェア・パッケージとしてユーザのコンピュータで専ら実行しても、ユーザのコンピュータで部分的に実行してもよく、一部をユーザのコンピュータで一部を遠隔コンピュータで実行してもよく、あるいは遠隔のコンピュータまたはサーバで専ら実行してもよい。後者の場合は、ローカル・エリア・ネットワーク(LAN:local area network)または広域ネットワーク(WAN:wide area network)を含む任意の種類のネットワークを介して、遠隔コンピュータをユーザのコンピュータに接続することができ、あるいは(例えばインターネット・サービス・プロバイダを使いインターネットを介し)外部のコンピュータへの接続を行うことも可能である。いくつかの実施形態において、例えば、プログラム可能論理回路、フィールド・プログラム可能ゲート・アレイ(FPGA)、またはプログラム可能論理アレイ(PLA:programmable logic array)などを含む電子回路は、本発明の諸態様を遂行すべく該電子回路を個別化するため、これらコンピュータ可読プログラム命令の状態情報を用いて、該コンピュータ可読プログラム命令を実行することが可能である。
本明細書では、本発明の実施形態による方法、装置(システム)、およびコンピュータプログラム製品のフローチャート図もしくはブロック図をまたはその両方を参照しながら、本発明の諸態様が説明されている。当然のことながら、フローチャート図もしくはブロック図またはその両方の各ブロック、およびフローチャート図もしくはブロック図またはその両方中のブロックの組み合わせは、コンピュータ可読プログラム命令によって実装することが可能である。
これらのコンピュータ可読プログラム命令を、汎用コンピュータ、特殊用途向けコンピュータ、またはマシンを形成する他のプログラム可能データ処理装置のプロセッサに提供し、そのコンピュータまたは他のプログラム可能データ処理装置のプロセッサを介して実行されるこれらの命令が、フローチャートもしくはブロック図またはその両方のブロックもしくはブロック群中に特定されている機能群/動作群を実装するための手段を生成するようにすることができる。また、コンピュータ、プログラム可能データ処理装置、もしくは他のデバイスまたはこれらの組み合せに対し特定の仕方で機能するよう命令することが可能なコンピュータ可読ストレージ媒体中に、これらのコンピュータ可読プログラム命令を格納し、格納された命令を有する該コンピュータ可読ストレージ媒体が、フローチャートもしくはブロック図またはその両方のブロックまたはブロック群中に特定されている機能/動作の態様を実装する命令群を包含する製造品、を構成するようにすることが可能である。
さらに、これらコンピュータ可読プログラム命令を、コンピュータ、他のプログラム可能データ処理装置、または他のデバイスにロードし、該コンピュータ上、他のプログラム可能装置上、または他のデバイス上で一連のオペレーション・ステップを実施させて、コンピュータ実装のプロセスを作り出し、コンピュータ上、他のプログラム可能装置上、または他のデバイス上で実行される命令が、フローチャートもしくはブロック図またはその両方のブロックもしくはブロック群中に特定されている機能群/動作群を実施するようにすることができる。
図面中のフローチャートおよびブロック図は、本発明の様々な実施形態によるシステム、方法、およびコンピュータ・プログラム製品の可能な実装のアーキテクチャ、機能性、およびオペレーションを表している。この点に関し、フローチャートまたはブロック図中の各ブロックは、特定された論理機能(群)を実装するための一つ以上の実行可能命令を含む、モジュール、セグメント、または命令の部分を表し得る。いくつかの別の実装では、ブロック中に記載された機能が、図面に記載された順序から外れて行われることがある。例えば、連続して示された2つのブロックが、関与する機能性の如何によっては、実際にはほぼ同時に実行されることがあり、時にはこれらのブロックが逆の順序で実行されることもあり得る。また、ブロック図もしくはフローチャート図またはその両方の各ブロック、およびブロック図もしくはフローチャート図またはその両方中のブロック群の組み合わせは、特定の機能もしくは動作を実施する、または特殊用途向けハードウェアとコンピュータ命令との組み合わせを遂行する、特殊用途向けハードウェア・ベースのシステムによって実装可能なことにも留意すべきである。
さらに、様々な実施形態によるシステムは、プロセッサと、プロセッサに組み込まれたもしくはプロセッサによって実行可能なまたはその両方のロジックとを含んでよく、このロジックは本明細書に記載のプロセス・ステップの1つ以上を実行するように構成される。組み込まれた、とは、プロセッサが、ロジックを、特定用途向け集積回路(ASIC)、FPGAなど、ハードウェア・ロジックとして内蔵していることを意味する。プロセッサによって実行可能、とは、当該ロジックが、プロセッサがアクセス可能であってプロセッサが実行するとプロセッサに何らかの機能を実施させるように構成された、ハードウェア・ロジック、ファームウェアなどのソフトウェア・ロジック、オペレーティング・システムの一部、アプリケーション・プログラムの一部など、または、ハードウェアとソフトウェア・ロジックとの何らかの組み合わせであることを意味する。ソフトウェア・ロジックは、当該技術で周知の任意のメモリ種類のローカルもしくは遠隔またはその両方のメモリに格納すればよい。ソフトウェア・プロセッサ・モジュール、もしくは、ASIC、FPGA、中央処理装置(CPU)、集積回路(IC)、グラフィックス処理ユニット(GPU:graphics processing unit)などのハードウェア・プロセッサ、またはその両方など、当該技術で周知の任意のプロセッサを用いることが可能である。
当然のことながら、前述のシステムもしくは方法またはその両方の様々な特徴は、上記で提示した説明から、任意の仕方で組み合わせて多くの組み合わせを生成することができる。
さらに当然のことながら、本発明の諸実施形態は、オンデマンドで顧客にサービスを販売するために展開されるサービスの形で提供されてもよい。
上記で様々な実施形態を説明してきたが、当然ながら、これらは例示目的のためだけに提示されたものであり限定ではない。しかして、好適な実施形態の幅および範囲は、前述の例示的な実施形態のいずれにも限定されるものでなく、添付の特許請求の範囲およびこれらの等価物によってのみ定義されるべきである。

Claims (21)

  1. ストレージ・システム中のストレージ素子のアレイの故障耐性を増強するための、コンピュータ実装の方法であって、前記方法は、
    ストレージ素子のn>1の数のセット中に複数のストレージ素子を含むアレイを構成するステップと、
    前記アレイの前記ストレージ素子の少なくとも1つの喪失および前記アレイの前記ストレージ素子のセットの1つの喪失に対し保護する、消失訂正符号を構成するステップであって、前記消失訂正符号は、
    前記アレイの前記ストレージ素子の少なくとも1つの列が行パリティ情報を格納し、
    前記アレイの前記ストレージ素子の少なくとも1つの行が列パリティ情報を格納し、
    前記ストレージ素子の1つがデータの格納に失敗するのに続いて、前記アレイから受け手ストレージ素子を選択し、
    故障のある前記ストレージ素子を包含するストレージ素子の前記セットの故障耐性を保つパリティ交換オペレーションを実行することによって、前記受け手ストレージ素子上に前記データの少なくとも一部を再構築する、
    ように構成される、前記構成するステップと、
    を含む、コンピュータ実装の方法。
  2. ストレージ素子の故障がnに達したのに応じ、前記故障のあるストレージ素子の代替を開始するステップを含む、請求項1に記載のコンピュータ実装の方法。
  3. 前記消失訂正符号は、前記ストレージ素子の少なくとも1つがグローバル・パリティ情報を格納するように構成され、前記消失訂正符号が素子の故障に対し6のハミング距離を有する、請求項1に記載のコンピュータ実装の方法。
  4. 前記消失訂正符号は、前記ストレージ素子の少なくとも2つがグローバル・パリティ情報を格納するように構成され、前記消失訂正符号が素子の故障に対し8のハミング距離を有する、請求項1に記載のコンピュータ実装の方法。
  5. 前記受け手ストレージ素子が列パリティ情報を格納している前記ストレージ素子の前記少なくとも1つの行から選択され、前記受け手ストレージ素子は、前記受け手ストレージ素子の上に前記データの前記少なくとも一部が再構築される以前は、列パリティ情報を前に格納していた、請求項1に記載のコンピュータ実装の方法。
  6. 前記受け手ストレージ素子は、前記アレイの前記故障のあるストレージ素子と同じセット中にあり、前記受け手ストレージ素子と前記故障のあるストレージ素子とは故障境界を共有する、請求項5に記載のコンピュータ実装の方法。
  7. 前記受け手ストレージ素子と前記故障のあるストレージ素子とが同じ単純ディスク束(JBOD)中に含まれている、請求項6に記載のコンピュータ実装の方法。
  8. ストレージ・システム中のストレージ素子のアレイの故障耐性を増大するためのコンピュータプログラム製品であって、前記コンピュータプログラム製品は、具現化されたプログラム命令を有するコンピュータ可読ストレージ媒体を含み、前記プログラム命令は、プロセッサによって実行可能であり、前記プロセッサに、
    前記プロセッサによって、ストレージ素子のn>1の数のセット中に複数のストレージ素子を含むアレイを構成させ、
    前記プロセッサによって、前記アレイの前記ストレージ素子の少なくとも1つの喪失および前記アレイのストレージ素子の前記セットの1つの喪失に対し保護する、消失訂正符号を構成させ、前記消失訂正符号は、
    前記アレイの前記ストレージ素子の少なくとも1つの列が行パリティ情報を格納し、
    前記アレイの前記ストレージ素子の少なくとも1つの行が列パリティ情報を格納し、
    前記ストレージ素子の1つがデータの格納に失敗するのに続いて、前記プロセッサによって、前記アレイから受け手ストレージ素子を選択し、
    前記プロセッサによって、故障のある前記ストレージ素子を包含するストレージ素子の前記セットの故障耐性を保つパリティ交換オペレーションを実行することによって、前記受け手ストレージ素子上にデータの少なくとも一部を再構築する、
    ように構成される、
    コンピュータプログラム製品。
  9. 前記プログラム命令は、ストレージ素子の故障がnに達したのに応じ、前記プロセッサに前記故障のあるストレージ素子の代替を開始させるように、前記プロセッサによって実行可能である、請求項8に記載のコンピュータプログラム製品。
  10. 前記消失訂正符号は、前記ストレージ素子の少なくとも1つがグローバル・パリティ情報を格納するように構成され、前記消失訂正符号が素子の故障に対し6のハミング距離を有する、請求項8に記載のコンピュータプログラム製品。
  11. 前記消失訂正符号は、前記ストレージ素子の少なくとも2つがグローバル・パリティ情報を格納するように構成され、前記消失訂正符号が素子の故障に対し8のハミング距離を有する、請求項8に記載のコンピュータプログラム製品。
  12. 前記受け手ストレージ素子が列パリティ情報を格納している前記ストレージ素子の前記少なくとも1つの行から選択され、前記受け手ストレージ素子は、前記受け手ストレージ素子の上に前記データの前記少なくとも一部が再構築される以前は、列パリティ情報を前に格納していた、請求項8に記載のコンピュータプログラム製品。
  13. 前記受け手ストレージ素子は、前記アレイの前記故障のあるストレージ素子と同じセット中にあり、前記受け手ストレージ素子と前記故障のあるストレージ素子とは故障境界を共有する、請求項12に記載のコンピュータプログラム製品。
  14. 前記受け手ストレージ素子と前記故障のあるストレージ素子とが、同じ単純ディスク束(JBOD)中に含まれている、請求項13に記載のコンピュータプログラム製品。
  15. プロセッサと、前記プロセッサに組み込まれもしくは該プロセッサによって実行可能なまたはその両方のロジックとを含むシステムであって、前記ロジックが、
    ストレージ素子のn>1の数のセット中の複数のストレージ素子を含むアレイを構成し、
    前記アレイの前記ストレージ素子の少なくとも1つの喪失および前記アレイのストレージ素子の前記セットの1つの喪失に対し保護する、消失訂正符号を構成し、
    前記消失訂正符号は、
    前記アレイの前記ストレージ素子の少なくとも1つの列が行パリティ情報を格納し、
    前記アレイの前記ストレージ素子の少なくとも1つの行が列パリティ情報を格納する、
    ように構成され、前記ロジックは、
    前記ストレージ素子の1つがデータの格納に失敗するのに続いて、前記アレイから受け手ストレージ素子を選択し、
    故障のある前記ストレージ素子を包含するストレージ素子の前記セットの故障耐性を保つパリティ交換オペレーションを実行することによって、前記受け手ストレージ素子上に前記データの少なくとも一部を再構築する、
    ように構成される、
    システム。
  16. 前記ロジックが、ストレージ素子の故障がnに達したのに応じ、前記故障のあるストレージ素子の代替を開始するように構成される、請求項15に記載のシステム。
  17. 前記消失訂正符号は、前記ストレージ素子の少なくとも1つがグローバル・パリティ情報を格納するように構成され、前記消失訂正符号が素子の故障に対し6のハミング距離を有する、請求項15に記載のシステム。
  18. 前記消失訂正符号は、前記ストレージ素子の少なくとも2つがグローバル・パリティ情報を格納するように構成され、前記消失訂正符号が素子の故障に対し8のハミング距離を有する、請求項15に記載のシステム。
  19. 前記受け手ストレージ素子が列パリティ情報を格納している前記ストレージ素子の前記少なくとも1つの行から選択され、前記受け手ストレージ素子は、前記受け手ストレージ素子の上に前記データの前記少なくとも一部が再構築される以前は、列パリティ情報を前に格納していた、請求項15に記載のシステム。
  20. 前記受け手ストレージ素子は、前記アレイの前記故障のあるストレージ素子と同じセット中にあり、前記受け手ストレージ素子と前記故障のあるストレージ素子とは故障境界を共有する、請求項19に記載のシステム。
  21. 前記受け手ストレージ素子と前記アレイの前記故障のあるストレージ素子とが同じ単純ディスク束(JBOD)中に含まれている、請求項20に記載のシステム。
JP2018517413A 2015-10-30 2016-09-02 データ・ストレージ・システムにおける自律パリティ交換方法、プログラム、およびシステム Active JP6655175B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/929,219 2015-10-30
US14/929,219 US10055278B2 (en) 2015-10-30 2015-10-30 Autonomic parity exchange in data storage systems
PCT/IB2016/055273 WO2017072603A1 (en) 2015-10-30 2016-09-02 Autonomic parity exchange in data storage systems

Publications (2)

Publication Number Publication Date
JP2018536220A true JP2018536220A (ja) 2018-12-06
JP6655175B2 JP6655175B2 (ja) 2020-02-26

Family

ID=58631293

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018517413A Active JP6655175B2 (ja) 2015-10-30 2016-09-02 データ・ストレージ・システムにおける自律パリティ交換方法、プログラム、およびシステム

Country Status (6)

Country Link
US (1) US10055278B2 (ja)
JP (1) JP6655175B2 (ja)
CN (1) CN108780411B (ja)
DE (1) DE112016003465T5 (ja)
GB (1) GB2559505B (ja)
WO (1) WO2017072603A1 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9870284B2 (en) * 2015-05-27 2018-01-16 International Business Machines Corporation First responder parities for storage array
US10031803B2 (en) 2015-12-14 2018-07-24 International Business Machines Corporation Distributed coding for multiple dimensional parities
US11474920B2 (en) * 2020-03-31 2022-10-18 International Business Machines Corporation Dynamic mapping of logical to physical memory for increased performance

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000148409A (ja) * 1998-11-12 2000-05-30 Hitachi Ltd 冗長記憶装置
JP2010026812A (ja) * 2008-07-18 2010-02-04 Hitachi Computer Peripherals Co Ltd 磁気ディスク装置
JP2015082150A (ja) * 2013-10-21 2015-04-27 富士通株式会社 ストレージシステム、及びストレージプログラム

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6138125A (en) 1998-03-31 2000-10-24 Lsi Logic Corporation Block coding method and system for failure recovery in disk arrays
US7254754B2 (en) * 2003-07-14 2007-08-07 International Business Machines Corporation Raid 3+3
US7281177B2 (en) 2003-07-14 2007-10-09 International Business Machines Corporation Autonomic parity exchange
US7134066B2 (en) * 2003-10-20 2006-11-07 International Business Machines Corporation Generalized parity stripe data storage array
CN100570573C (zh) 2008-05-22 2009-12-16 清华大学 大规模磁盘阵列存储系统的磁盘容错方法
CN101923501B (zh) 2010-07-30 2012-01-25 华中科技大学 一种磁盘阵列多级容错方法
US20120198195A1 (en) * 2011-02-02 2012-08-02 Hewlett-Packard Development Company, L.P. Data storage system and method
US8433979B2 (en) 2011-02-28 2013-04-30 International Business Machines Corporation Nested multiple erasure correcting codes for storage arrays
US8825952B2 (en) * 2011-05-23 2014-09-02 International Business Machines Corporation Handling high priority requests in a sequential access storage device having a non-volatile storage cache
US8631190B2 (en) * 2011-07-22 2014-01-14 International Business Machines Corporation Prefetching data tracks and parity data to use for destaging updated tracks
CN102420016A (zh) 2011-11-03 2012-04-18 西安交通大学 一种应用于集成错误校验码的嵌入式存储器的内建修复分析方法
US9600365B2 (en) * 2013-04-16 2017-03-21 Microsoft Technology Licensing, Llc Local erasure codes for data storage
US9244761B2 (en) 2013-06-25 2016-01-26 Microsoft Technology Licensing, Llc Erasure coding across multiple zones and sub-zones
CN103678050A (zh) * 2013-12-10 2014-03-26 中国航空工业集团公司第六三一研究所 一种高速数据交叉传输通道实现方法
US9870284B2 (en) 2015-05-27 2018-01-16 International Business Machines Corporation First responder parities for storage array

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000148409A (ja) * 1998-11-12 2000-05-30 Hitachi Ltd 冗長記憶装置
JP2010026812A (ja) * 2008-07-18 2010-02-04 Hitachi Computer Peripherals Co Ltd 磁気ディスク装置
JP2015082150A (ja) * 2013-10-21 2015-04-27 富士通株式会社 ストレージシステム、及びストレージプログラム

Also Published As

Publication number Publication date
US20170123888A1 (en) 2017-05-04
WO2017072603A1 (en) 2017-05-04
DE112016003465T5 (de) 2018-04-12
CN108780411B (zh) 2021-12-14
US10055278B2 (en) 2018-08-21
GB2559505A (en) 2018-08-08
JP6655175B2 (ja) 2020-02-26
GB2559505B (en) 2020-08-19
CN108780411A (zh) 2018-11-09
GB201806566D0 (en) 2018-06-06

Similar Documents

Publication Publication Date Title
US9582363B2 (en) Failure domain based storage system data stripe layout
US10572345B2 (en) First responder parities for storage array
US9552258B2 (en) Method and system for storing data in raid memory devices
US8839028B1 (en) Managing data availability in storage systems
US10884889B2 (en) Allocating part of a raid stripe to repair a second raid stripe
JP6153541B2 (ja) 消失エラー訂正符号を用いてストレージ・アレイにデータを格納する方法、システム及びプログラム
US20150370670A1 (en) Method of channel content rebuild via raid in ultra high capacity ssd
US8386891B2 (en) Anamorphic codes
US7093069B2 (en) Integration of a RAID controller with a disk drive module
US9058291B2 (en) Multiple erasure correcting codes for storage arrays
CN110413208B (zh) 用于管理存储系统的方法、设备和计算机程序产品
CN102667738A (zh) 具有多个raid组分条的内存系统及其方法
US8484506B2 (en) Redundant array of independent disks level 5 (RAID 5) with a mirroring functionality
US9436394B2 (en) RAID random distribution scheme
JP6655175B2 (ja) データ・ストレージ・システムにおける自律パリティ交換方法、プログラム、およびシステム
US20180357141A1 (en) Data storage system comprising an array of drives
JP7249719B2 (ja) 共通の高ランダム・ビット・エラーおよび低ランダム・ビット・エラー修正ロジック
US9153347B2 (en) Method and system for reliable big capacity storage system protected by triple protection
US9229811B2 (en) Folded codes for correction of latent media errors
US10210063B2 (en) Disk array storage controller
Pâris et al. Three-dimensional RAID Arrays with Fast Repairs
Pâris Bundling together RAID disk arrays for greater protection and easier repairs
CN112732167B (zh) 用于管理存储系统的方法、设备
Pâris et al. Self-Repairing Disk Arrays

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180604

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190225

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20190927

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20191008

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20191218

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20200131

R150 Certificate of patent or registration of utility model

Ref document number: 6655175

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150