JP4336859B2 - 冗長化ドライブ群並びにこれを用いた書込み方法及びデータ復元方法 - Google Patents

冗長化ドライブ群並びにこれを用いた書込み方法及びデータ復元方法 Download PDF

Info

Publication number
JP4336859B2
JP4336859B2 JP2004176988A JP2004176988A JP4336859B2 JP 4336859 B2 JP4336859 B2 JP 4336859B2 JP 2004176988 A JP2004176988 A JP 2004176988A JP 2004176988 A JP2004176988 A JP 2004176988A JP 4336859 B2 JP4336859 B2 JP 4336859B2
Authority
JP
Japan
Prior art keywords
parity
data
drive
written
nth
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2004176988A
Other languages
English (en)
Other versions
JP2006003971A (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 Corp
Original Assignee
NEC 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 NEC Corp filed Critical NEC Corp
Priority to JP2004176988A priority Critical patent/JP4336859B2/ja
Publication of JP2006003971A publication Critical patent/JP2006003971A/ja
Application granted granted Critical
Publication of JP4336859B2 publication Critical patent/JP4336859B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は、データドライブにパリティドライブを付加して構成される冗長化ドライブ群並びにこれを用いた書込み方法及びデータ復元方法に関する。
従来のRAID(Redundant Array of Inexpensive Disks)は、RAID1を除いて、複数のドライブが故障した場合にデータは失われてしまう。また、RAID1は、ミラーリングされる関係にある両方のドライブが故障した場合には、データは失われてしまう。
このようなRAIDの問題点を解消するものとして、複数のデータドライブを環状に並べ、データドライブと同一数のパリティドライブを用意し、各パリティドライブが相互に隣接する2つのデータドライブに対応するようにした冗長ドライブ群が発明されている(特許文献1参照)。
特開2000−207136号公報
しかし、特許文献1に記載されている発明では、全てのデータドライブが異常となった場合には、データを復元することができない(特許文献1第27段落参照)。
そこで、本発明は、一部のデータドライブが異常となった場合のみならず、全てのデータドライブ群が異常となった場合であってもデータを復元することを可能とする冗長化ドライブ群並びにこれを用いた書込み方法及びデータ復元方法を提供することを目的とする。
本発明によれば、第1から第N(Nは3以上の奇数)までのデータドライブと、第1から第Nまでのパリティドライブと、を備える冗長化ドライブ群であって、第n(nは1以上且つN−1以下の整数)のパリティドライブは、第nのデータドライブのデータと第n+1のデータドライブのデータとを基にして算出されたパリティを格納し、第Nのパリティドライブは、第1のデータドライブのデータ乃至第Nのデータドライブのデータを基にして算出されたパリティを格納することを特徴とする冗長化ドライブ群が提供される。
また、本発明によれば、上記の冗長化ドライブ群を用いた書込み方法において、第n 1 (n 1 は1以上且つN−1以下の整数)のデータドライブにこれまで書き込まれていたデータ、前記第n 1 のデータドライブにこれから書き込むべきデータ並びに第n 1 のパリティドライブにこれまで書き込まれていたパリティを基に、前記第n 1 のパリティドライブにこれから書き込むべきパリティを算出して、該算出されたパリティを前記第n 1 のパリティドライブに書き込み、第n 2 (n 2 は2以上且つN以下の整数)のデータドライブにこれまで書き込まれていたデータ、前記第n 2 のデータドライブにこれから書き込むべきデータ並びに前記第n 2 のパリティドライブにこれまで書き込まれていたパリティを基に、前記第n 2 のパリティドライブにこれから書き込むべきパリティを算出して、該算出されたパリティを前記第n 2 のパリティドライブに書き込むことを特徴とする書込み方法が提供される。
更に、本発明によれば、上記の冗長化ドライブ群を用いた書込み方法において、第n 3 (n 3 は1以上且つN以下の整数)のデータドライブにこれまで書き込まれていたデータ、前記第n 3 のデータドライブにこれから書き込むべきデータ並びに前記第Nのパリティドライブにこれまで書き込まれていたパリティを基に、前記第Nのパリティドライブにこれから書き込むべきパリティを算出して、該算出されたパリティを前記第Nのパリティドライブに書き込むことを特徴とする書込み方法が提供される。
更に、本発明によれば、上記の冗長化ドライブ群を用いたデータ復元方法において、第1のデータドライブにこれまで書き込まれていたデータを、第2のデータドライブに格納されているデータ及び第1のパリティドライブに格納されているパリティを基に復元し、
第n 4 (n 4 は2以上且つN−1以下の整数)のデータにこれまで書き込まれていたデータを、第n 4 −1のデータドライブに格納されているデータ及び第n 4 −1のパリティドライブの格納されているパリティ、又は、第n 4 +1のデータドライブに格納されているデータ及び第n 4 のパリティドライブに格納されているパリティを基に復元し、第Nのデータにこれまで書き込まれていたデータを、第N−1のデータドライブに格納されているデータ及び第N−1のパリティドライブに格納されているパリティを基に復元することを特徴とするデータ復元方法が提供される。
更に、本発明によれば、上記冗長化ドライブ群を用いたデータ復元方法において、第n 5 (n 5 は1以上且つN以下の整数)のデータドライブにこれまで書き込まれていたデータを、前記第n 5 のドライブ以外の全てのデータドライブに格納されているデータ及び前記第Nのパリティドライブに格納されているパリティを基に復元することを特徴とするデータ復元方法が提供される。
更に、本発明によれば、上記の冗長化ドライブ群を用いたデータ復元方法において、第n 6 (n 6 は1以上且つN以下の整数)のデータドライブにこれまで書き込まれていたデータを、前記第Nのパリティドライブに格納されているパリティ及び第1乃至第N−1のパリティドライブのうちの一部のパリティドライブに格納されているパリティを基に復元することを特徴とするデータ復元方法が提供される。
更に、本発明によれば、上記の書込み方法において、第1乃至第N−1のパリティドライブのうちの前記一部のパリティドライブとは、前記n 6 が偶数2m(mは自然数)である場合には、第1のパリティドライブ乃至第2m−1のパリティドライブ及び第2mのパリティドライブ乃至第N−1のパリティドライブであり、前記n 6 が奇数(2m+1)(mは自然数)である場合には、第1のパリティドライブ乃至第2m−1のパリティドライブ及び第2(m+1)のパリティドライブ乃至第N−1のパリティドライブであることを特徴とするデータ復元方法が提供される。
更に、本発明によれば、上記の冗長化ドライブ群を用いた書込み方法をコンピュータに実行させるためのプログラムにおいて、第n 1 (n 1 は1以上且つN−1以下の整数)のデータドライブにこれまで書き込まれていたデータ、前記第n 1 のデータドライブにこれから書き込むべきデータ並びに第n 1 のパリティドライブにこれまで書き込まれていたパリティを基に、前記第n 1 のパリティドライブにこれから書き込むべきパリティを算出して、該算出されたパリティを前記第n 1 のパリティドライブに書き込み、第n 2 (n 2 は2以上且つN以下の整数)のデータドライブにこれまで書き込まれていたデータ、前記第n 2 のデータドライブにこれから書き込むべきデータ並びに前記第n 2 のパリティドライブにこれまで書き込まれていたパリティを基に、前記第n 2 のパリティドライブにこれから書き込むべきパリティを算出して、該算出されたパリティを前記第n 2 のパリティドライブに書き込むことを特徴とする書込み方法をコンピュータに実行させるためのプログラムが提供される。
更に、本発明によれば、上記の冗長化ドライブ群を用いた書込み方法をコンピュータに実行させるためのプログラムにおいて、第n 3 (n 3 は1以上且つN以下の整数)のデータドライブにこれまで書き込まれていたデータ、前記第n 3 のデータドライブにこれから書き込むべきデータ並びに前記第Nのパリティドライブにこれまで書き込まれていたパリティを基に、前記第Nのパリティドライブにこれから書き込むべきパリティを算出して、該算出されたパリティを前記第Nのパリティドライブに書き込むことを特徴とする書込み方法をコンピュータに実行させるためのプログラムが提供される。
更に、本発明によれば、上記の冗長化ドライブ群を用いたデータ復元方法をコンピュータに実行させるためのプログラムにおいて、第1のデータドライブにこれまで書き込まれていたデータを、第2のデータドライブに格納されているデータ及び第1のパリティドライブに格納されているパリティを基に復元し、第n 4 (n 4 は2以上且つN−1以下の整数)のデータにこれまで書き込まれていたデータを、第n 4 −1のデータドライブに格納されているデータ及び第n 4 −1のパリティドライブの格納されているパリティ、又は、第n 4 +1のデータドライブに格納されているデータ及び第n 4 のパリティドライブに格納されているパリティを基に復元し、第Nのデータにこれまで書き込まれていたデータを、第N−1のデータドライブに格納されているデータ及び第N−1のパリティドライブに格納されているパリティを基に復元することを特徴とするデータ復元方法をコンピュータに実行させるためのプログラムが提供される。
更に、本発明によれば、上記の冗長化ドライブ群を用いたデータ復元方法をコンピュータに実行させるためのプログラムにおいて、
第n 5 (n 5 は1以上且つN以下の整数)のデータドライブにこれまで書き込まれていたデータを、前記第n 5 のドライブ以外の全てのデータドライブに格納されているデータ及び前記第Nのパリティドライブに格納されているパリティを基に復元することを特徴とするデータ復元方法をコンピュータに実行させるためのプログラムが提供される。
更に、本発明によれば、上記の冗長化ドライブ群を用いたデータ復元方法をコンピュータに実行させるためのプログラムにおいて、第n 6 (n 6 は1以上且つN以下の整数)のデータドライブにこれまで書き込まれていたデータを、前記第Nのパリティドライブに格納されているパリティ及び第1乃至第N−1のパリティドライブのうちの一部のパリティドライブに格納されているパリティを基に復元することを特徴とするデータ復元方法をコンピュータに実行させるためのプログラムが提供される。
更に、本発明によれば、上記の書込み方法をコンピュータに実行させるためのプログラムにおいて、第1乃至第N−1のパリティドライブのうちの前記一部のパリティドライブとは、前記n 6 が偶数2m(mは自然数)である場合には、第1のパリティドライブ乃至第2m−1のパリティドライブ及び第2mのパリティドライブ乃至第N−1のパリティドライブであり、前記n 6 が奇数(2m+1)(mは自然数)である場合には、第1のパリティドライブ乃至第2m−1のパリティドライブ及び第2(m+1)のパリティドライブ乃至第N−1のパリティドライブであることを特徴とするデータ復元方法をコンピュータに実行させるためのプログラムが提供される。
本発明によれば、一部のデータドライブが異常となった場合のみならず、全てのデータドライブが異常となった場合であってもデータを復元することが可能となる。
以下、図面を参照して本発明を実施するための最良の形態について詳細に説明する。
本発明は、記憶装置を持つコンピュータシステムにおいて、データドライブに加え、関連する全てのデータブロックのパリティブロックを持つパリティドライブと各対(ペア)のデータブロックに関連するパリティブロックを持つパリティドライブにて冗長化構成することを特徴とする。同時に任意の2台のドライブ故障が発生した場合にデータ復旧可能であり、かつ、データドライブが全て故障した場合でも全てのデータドライブのデータの復旧が可能となる。
[1 パリティ情報]
[1.1 データとパリティの関連性について]
図1はN個のデータドライブを使用する場合のデータブロックとパリティブロックの関連図である。ただし、データドライブの総数Nは3以上の奇数である。パリティドライブ内の各パリティブロックは実線で関連付けられたデータブロックに関連するパリティ情報を保持する。
各パリティドライブ内のパリティブロックには以下の関係式を満たすパリティ情報を保持する。データブロックが更新される時には関連性を保つためデータブロックの内容とともに関連するパリティブロックの更新も同時に行う必要がある。
パリティブロックn−1・n
=データブロックn−1 XOR データブロックn
<式1>
(ただし、n=2、3、…、N)
パリティブロック1〜N
=データブロック1 XOR
データブロック2 XOR

データブロックN−1 XOR
データブロックN
<式2>
但し、パリティブロックn−1・nは、データブロックn−1とデータブロックnに関連したパリティブロックであることを示し、パリティブロック1〜Nは、データブロック1乃至データブロックNの全てに関連したパリティブロックであることを示し、XORは排他的論理和(exclusive or)を示す。排他的論理の計算は、図2に示すような論理ゲートを用いて行われる。図2(a)は、2入力の場合の論理ゲートを示し、図2(b)は、3入力の場合の論理ゲートを示し、図2(c)及び図2(d)は、N入力の場合の論理ゲートを示す。また、CPUを用いる場合には、CPUの内部又は外部に設けられているALUにより図2に示すような論理ゲートを実現する。また、3入力以上の場合には、レジスタも併用し、図2(a)の出力yを一旦レジスタに格納し、その後、入力x1として論理ゲートに与え、該論理ゲートの他端に入力されるデータと排他的論理和を取るようにしてもよい。
[1.2 リード/ライトの動作概要]
リード/ライトの動作概要を図3及び4のフローチャートに示す。これらのフローチャートを参照して説明されている各ステップは、ハードウェアによって実現することもできるが、CPUを内蔵するコンピュータがプログラムを読み込んで実行することによっても実現することができる。
ハードウェアによって実現する場合には、例えば、図5に示すようなリード/ライト装置によりリード/ライトを行う。
図5を参照すると、リード/ライト装置は、データ読出部251、パリティ読出部252、リード/ライト判断部253、データドライブ利用可能判断部254、データ再生部255、パリティ生成部256、データ書込部257及びパリティ書込部258を備える。
リード又はライトの判断は、リード/ライト判断部253が、ライト命令又はリード命令を判別することにより行う。リード命令及びライト命令には、アクセス先のデータドライブを識別するための識別情報、アクセス先のアドレスを識別するためのアドレスが含まれ、ライト命令には書き込むべきデータが含まれる。
[2 リード処理]
[2.1 対象データブロックのデータドライブが利用可能である場合(202→208でYES)]
この場合には、データ読出部251により、対象のデータドライブから読み出す(209)。
[2.2 対象データブロックのあるドライブが利用可能でない場合(202→208でNO)〜その1〜]
対象データブロックに関連するパリティブロックの情報(パリティ読出部252により読み出されたもの)と、該パリティブロックが他方において関連付けられているデータブロックの情報(データ読出部251により読み出されたもの)を用いて、データ再生部255により、対象データブロック内の情報を復元する(215)。データブロックの復元は対象データブロックとアクセス可能なドライブにより以下のうちいずれか計算可能な式を用いる。
データブロック1
=データブロック2 XOR パリティブロック1
<式3−1−1>
データブロック1
=データブロック2 XOR
データブロック3 XOR

XOR
データブロックN XOR
パリティブロック1〜N
<式3−1−2>
<式3−1−1>によれば、隣接するデータブロック並びに対象データブロック1及び隣接するデータブロックに関連するパリティブロックを基に対象ブロック1のデータを復元することが可能となる。
<式3−1−2>によれば、対象データブロック1以外の全てのデータブロック及びパリティブロック1〜Nを基に対象データブロック1のデータを復元することが可能となる。
データブロックN
=データブロックN−1 XOR
パリティブロックN−1・N
<式3−2−1>
データブロックN
=データブロック1 XOR
データブロック2 XOR

XOR
データブロックN−1 XOR
パリティブロック1〜N
<式3−2−2>
<式3−2−1>によれば、隣接するデータブロック並びに対象データブロックN及び隣接するデータブロックに関連するパリティブロックを基に対象ブロックNのデータを復元することが可能となる。
<式3−2−2>によれば、対象データブロックN以外の全てのデータブロック及びパリティブロック1〜Nを基に対象データブロックNのデータを復元することが可能となる。
データブロックn
=データブロックn+1 XOR
パリティブロックn・n+1
(n=2、3、…、N−1)
<式3−3−1>
データブロックn
=データブロックn−1 XOR
パリティブロックn−1・n
(n=2、3、…、N−1)
<式3−3−2>
データブロックn
=データブロック1 XOR

XOR
データブロックn−1 XOR
データブロックn+1 XOR

XOR
データブロックN XOR
パリティブロック1〜N
(n=2、3、…、N−1)
<式3−3−3>
<式3−3−1>及び<式3−3−2>によれば、隣接するデータブロック並びに対象データブロックN及び隣接するデータブロックに関連するパリティブロックを基に対象ブロックNのデータを復元することが可能となる。
<式3−3−3>によれば、対象データブロックN以外の全てのデータブロック及びパリティブロック1〜Nを基に対象データブロックNのデータを復元することが可能となる。
[2.3 データドライブが全数故障した場合(202→208でNO)〜その2]
パリティドライブが全て利用可能であれば下記の式により全データドライブの情報が復元可能である(215)。
[2.3.1 偶数番号(2m)のデータブロックのリード]
データブロックa
=パリティブロック1〜N XOR
パリティブロック1・2 XOR

パリティブロック(2m−1)・2m XOR
パリティブロック2m・(2m+1) XOR

パリティブロック(N−1)・N
<式4−1>
[2.3.2 奇数番号(2m+1)のデータブロックのリード]
データブロックb
=パリティブロック1〜N XOR
パリティブロック1・2 XOR

パリティブロック(2m−1)・2m XOR
パリティブロック2(m+1)・(2(m+1)+1) XOR

パリティブロック(N−1)・N
<式4−2>
[3 ライト処理]
[3.1 対象データブロックnのデータドライブが利用可能な場合(202→203でYES)]
それに関連するパリティブロックの更新を下記の式に基づいてデータブロックnに関連するパリティ情報を消去した後に新しいデータブロックnを含めた再計算を行う(204)。
データ書込部257とパリティ書込部258により、<式5><式6>によって生成された新しいパリティ情報とライトデータをパリティブロックとデータブロックにライトする(205、206)。
新しいパリティブロック1〜N
=現在パリティブロック1〜N XOR
現在データブロックn XOR
新しいデータブロックn
(n=1、2、3、…、N)
<式5>
新しいパリティブロックn−1・n
=現在パリティブロックn−1・n XOR
現在データブロックn XOR
新しいデータブロックn
(n=2、3、…、N)
<式6>
新しいパリティブロックn・n+1
=現在パリティブロックn・n+1 XOR
現在データブロックn XOR
新しいデータブロックn
(n=1、2、3、…、N−1)
<式7>
現在のパリティは、パリティ読出部252により行う。現在のデータブロックの読出しは、データ読出部251により行う。<式5>乃至<式7>の計算は、パリティ生成部256により行う。
[3.2 対象データブロックのドライブが利用可能でない場合(202→203でNO)
まず、データ再生部255により、その対象データブロックの古い情報を再生する(211)。この再生のためには、ステップ215の方法を利用する。具体的には、上記[2.2]又は[2.3]で説明した方法を利用する。
次に、パリティ生成部256により、再生した情報と、関連するパリティブロックの現在の情報と、新たにライトする情報から、関連するパリティブロックの新しい情報を計算し、パリティ書込部258により、書き込む(213)。具体的には、上記[3.1]で説明した方法を利用して関連する3種類のパリティを計算し、これらをそれぞれに対応するパリティドライブに書き込む。
本発明の実施例はN=5の場合、図に示すようになる。
ここでは2つのドライブが故障した場合とデータドライブがすべて故障した場合の障害時のリードの実施例を示す。
[1. 2つのドライブが故障]
[1.1 故障が2つともパリティドライブであった場合]
データドライブはすべて利用可能であるためデータをリードすることができる。
[1.2 2つの故障がともにデータドライブであった場合]
[1.2.1 データドライブ1(301)とデータドライブ5(305)が故障した場合]
データドライブ1(301)内のデータブロック1(311)はパリティブロック1・2(316)とデータブロック2(312)より<式3−1−1>より再生可能である。
データドライブ5(305)内のデータブロック5(315)はパリティブロック4・5(319)とデータブロック4(314)より<式3−2−1>より再生可能である。
[1.2.2 データドライブ1(301)とデータドライブ2(302)が故障した場合]
データドライブ2(302)内のデータブロック2(312)はデータブロック3(313)とパリティブロック2・3(317)より<式3−3−1>より再生可能である。
データドライブ1(301)内のデータブロック1(311)は上記により再生されたデータブロック2(312)とパリティブロック1・2(316)から<式3−3−2>より再生可能である。
また、データドライブ1(301)内のデータブロック1(311)は、パリティ1〜5、パリティ、パリティからも再生可能である。
[1.2.3 (データドライブ2(302)とデータドライブ3(303)が故障した場合]
データブロック2(312)はパリティブロック1・2(316)とデータブロック1(311)から<式3−3−2、n=2>により再生可能である。
データブロック3(313)はパリティブロック3・4(318)とデータブロック4(314)から<式3−3−1、n=3>により再生可能である。
[1.3 2つの故障がパリティドライブとデータドライブに分散してあった場合]
[1.3.1 データドライブ1(301)とパリティドライブ1〜5(300)のドライブが故障した場合]
データブロック1(311)の復旧はパリティブロック1・2(316)とデータブロック2(312)から<式3−1−1>により再生可能である。
[1.3.2 データドライブ1(301)とパリティドライブ1・2(316)が故障した場合]
データブロック1(311)の復旧はデータブロック2(312)乃至データブロック5(315)とパリティブロック1〜5(310)より<式3−1−2>により再生可能である。
[1.3.3 データドライブ2(302)とパリティドライブ1〜5(300)のドライブが故障した場合]
データブロック2(312)の復旧はパリティブロック1・2(316)とデータブロック1(311)から<式3−3−2,n=2>より再生可能である。
[1.3.4 データドライブ2(302)とパリティドライブ1・2(306)が故障した場合]
データブロック2(312)の復旧はパリティブロック2・3(317)とデータブロック3(313)<式3−3−1,n=2>から再生可能である
[2.データドライブすべてが故障したとき]
以下のようにしてデータブロックが再生可能である。
データブロック1(311)はパリティブロック2・3(317)とパリティブロック4・5(319)とパリティブロック1〜5(310)から<式4−1>より再生可能である。
データブロック2(312)はパリティブロック1・2(316)とパリティブロック2・3(317)とパリティブロック4・5(319)とパリティブロック1〜5(310)から<式4−2>より再生可能である。
データブロック3(313)はパリティブロック1・2(316)とパリティブロック4・5(319)とパリティブロック1〜5(310)から<式4−1>より再生可能である。
データブロック4(314)はパリティブロック1・2(316)とパリティブロック3・4(318)とパリティブロック4・5(319)とパリティブロック1〜5(310)<式4−2>より再生可能である。
データブロック5(315)はパリティブロック1・2(316)とパリティブロック3・4(318)とパリティブロック1〜5(310)<式4−1>より再生可能である。
これらの関係の一覧表を図7に示す。また、Nが3の場合の同様な関係の一覧表を図8に示し、Nが7の場合の同様な関係の一覧表を図9に示し、Nが9の場合の同様な関係の一覧表を図10に示す。Nが1の場合には、パリティブロック1を用いて、データブロック1を再生することが可能であることは明らかである。
図11は、N=1の場合、N=3の場合、N=5の場合、N=7の場合及びN=9の場合の一覧表を1つにまとめたものである。N=1の場合には、符号301で示す逆L字型の枠で囲まれる領域内の○で示されるパリティブロックが利用され、N=3の場合には、符号303で示す逆L字型の枠で囲まれる領域内の○で示されるパリティブロックが利用され、N=5の場合には、符号305で示す逆L字型の枠で囲まれる領域内の○で示されるパリティブロックが利用され、N=7の場合には、符号307で示す逆L字型の枠で囲まれる領域内の○で示されるパリティブロックが利用され、N=9の場合には、符号309で示す逆L字型の枠で囲まれる領域内の○で示されるパリティブロックが利用される。
図11から明らかなように、Nの値を2m+1(m=0、1、2、・・・)から2(m+1)+1に増加させるためには、Nの値が2m+1である場合に利用するパリティブロックをそのまま利用し、拡張領域については、所定の規則(mの値に依存しない一定の規則)に従って、どのパリティブロックを利用するかを決定する。
すなわち、データブロックの数が2m+1から増加して2(m+1)+1となった場合、1乃至2(m+1)+1のデータブロックのうちの1乃至2m+1のデータブロックを再生するためには、Nの値が2m+1であった場合の利用パリティを全て利用し(但し、全データブロックに対するパリティは、データブロック1乃至2m+1に対するパリティブロックからデータブロック1乃至2(m+1)+1に対するパリティブロックに変更されている。)、更に、データブロック2(m+1)及びデータブロック2(m+1)+1に対するパリティブロックも追加して利用する。
データブロック2(m+1)を再生するためには、データブロック2m+1を再生するために利用するパリティブロックを全て利用し、更に、データブロック2m+1及びデータブロック2(m+1)に対するパリティブロック及びデータブロック2(m+1)及びデータブロック2(m+1)+1に対するパリティブロックを利用する。
データブロック2(m+1)+1を再生するためには、データブロック2m+1を再生するために利用するパリティブロックを全て利用し、更に、データブロック2m+1及びデータブロック2(m+1)に対するパリティブロック及びデータブロック2(m+1)を利用する。
図7乃至11より<式4−1>及び<式4−2>は明らかである。
なお、Nの値が偶数である場合には、パリティブロック1〜Nの値が、例えば、全データブロックの値が0である場合であっても、全データブロックの値が1である場合であっても、0となってしまい区別が付かないことより、Nの値が偶数である場合には、本発明を利用することができない。
本発明は、エラー耐性があり、信頼性のあるデータの書込み及び読出しに利用することができる。
本発明の実施形態による冗長化ドライブ群の構成を示す概念図である。 本発明の実施形態によるパリティ生成部の構成を示す回路図である。 本発明の実施形態による冗長化ドライブ群を用いた書込み方法及び読出し方法を示す第1のフローチャートである。 本発明の実施形態による冗長化ドライブ群を用いた書込み方法及び読出し方法を示す第2のフローチャートである。 本発明の実施形態による書込み/読出し装置の構成を示すブロック図である。 本発明の実施例1による冗長化ドライブ群の構成を示す概念図である。 データドライブの数が5である場合において、全てのデータブロックが異常となった場合に、データを再生するために利用するパリティを示す表である。 データドライブの数が3である場合において、全てのデータブロックが異常となった場合に、データを再生するために利用するパリティを示す表である。 データドライブの数が7である場合において、全てのデータブロックが異常となった場合に、データを再生するために利用するパリティを示す表である。 データドライブの数が9である場合において、全てのデータブロックが異常となった場合に、データを再生するために利用するパリティを示す表である。 データドライブの数が1、3、5、7又は9である場合において、全てのデータブロックが異常となった場合に、データを再生するために利用するパリティを示す表である。
符号の説明
251 データ読出部
252 パリティ読出部
253 リード/ライト判断部
254 データドライブ利用可能判断部
255 データ再生部
256 パリティ生成部
257 データ書込部
258 パリティ書込部

Claims (13)

  1. 第1から第N(Nは3以上の奇数)までのデータドライブと、
    第1から第Nまでのパリティドライブと、
    を備える冗長化ドライブ群であって、
    第n(nは1以上且つN−1以下の整数)のパリティドライブは、第nのデータドライブのデータと第n+1のデータドライブのデータとを基にして算出されたパリティを格納し、
    第Nのパリティドライブは、第1のデータドライブのデータ乃至第Nのデータドライブのデータを基にして算出されたパリティを格納することを特徴とする冗長化ドライブ群。
  2. 請求項に記載の冗長化ドライブ群を用いた書込み方法において、
    第n 1 (n 1 は1以上且つN−1以下の整数)のデータドライブにこれまで書き込まれていたデータ、前記第n 1 のデータドライブにこれから書き込むべきデータ並びに第n 1 パリティドライブにこれまで書き込まれていたパリティを基に、前記第n 1 パリティドライブにこれから書き込むべきパリティを算出して、該算出されたパリティを前記第n 1 パリティドライブに書き込み、
    第n 2 (n 2 は2以上且つN以下の整数)のデータドライブにこれまで書き込まれていたデータ、前記第n 2 のデータドライブにこれから書き込むべきデータ並びに前記第n 2 のパリティドライブにこれまで書き込まれていたパリティを基に、前記第n 2 のパリティドライブにこれから書き込むべきパリティを算出して、該算出されたパリティを前記第n 2 のパリティドライブに書き込むことを特徴とする書込み方法。
  3. 請求項1に記載の冗長化ドライブ群を用いた書込み方法において、
    第n 3 (n 3 は1以上且つN以下の整数)のデータドライブにこれまで書き込まれていたデータ、前記第n 3 データドライブにこれから書き込むべきデータ並びに前記第Nのパリティドライブにこれまで書き込まれていたパリティを基に、前記第Nのパリティドライブにこれから書き込むべきパリティを算出して、該算出されたパリティを前記第Nのパリティドライブに書き込むことを特徴とする書込み方法。
  4. 請求項に記載の冗長化ドライブ群を用いたデータ復元方法において、
    第1のデータドライブにこれまで書き込まれていたデータを、第2のデータドライブに格納されているデータ及び第1のパリティドライブに格納されているパリティを基に復元し、
    第n 4 (n 4 は2以上且つN−1以下の整数)のデータにこれまで書き込まれていたデータを、第n 4 −1のデータドライブに格納されているデータ及び第n 4 −1のパリティドライブの格納されているパリティ、又は、第n 4 +1のデータドライブに格納されているデータ及び第n 4 のパリティドライブに格納されているパリティを基に復元し、
    第Nのデータにこれまで書き込まれていたデータを、第N−1のデータドライブに格納されているデータ及び第N−1のパリティドライブに格納されているパリティを基に復元することを特徴とするデータ復元方法。
  5. 請求項に記載の冗長化ドライブ群を用いたデータ復元方法において、
    第n 5 (n 5 は1以上且つN以下の整数)のデータドライブにこれまで書き込まれていたデータを、前記第n 5 のドライブ以外の全てのデータドライブに格納されているデータ及び前記第Nのパリティドライブに格納されているパリティを基に復元することを特徴とするデータ復元方法。
  6. 請求項に記載の冗長化ドライブ群を用いたデータ復元方法において、
    第n 6 (n 6 は1以上且つN以下の整数)のデータドライブにこれまで書き込まれていたデータを、前記第Nのパリティドライブに格納されているパリティ及び第1乃至第N−1のパリティドライブのうちの一部のパリティドライブに格納されているパリティを基に復元することを特徴とするデータ復元方法。
  7. 請求項に記載の書込み方法において、
    第1乃至第N−1のパリティドライブのうちの前記一部のパリティドライブとは、
    前記 6 が偶数2m(mは自然数)である場合には、第1のパリティドライブ乃至第2m−1のパリティドライブ及び第2mのパリティドライブ乃至第N−1のパリティドライブであり、
    前記 6 が奇数(2m+1)(mは自然数)である場合には、第1のパリティドライブ乃至第2m−1のパリティドライブ及び第2(m+1)のパリティドライブ乃至第N−1のパリティドライブであることを特徴とするデータ復元方法。
  8. 請求項1に記載の冗長化ドライブ群を用いた書込み方法をコンピュータに実行させるためのプログラムにおいて、
    第n 1 (n 1 は1以上且つN−1以下の整数)のデータドライブにこれまで書き込まれていたデータ、前記第n 1 のデータドライブにこれから書き込むべきデータ並びに第n 1 のパリティドライブにこれまで書き込まれていたパリティを基に、前記第n 1 のパリティドライブにこれから書き込むべきパリティを算出して、該算出されたパリティを前記第n 1 のパリティドライブに書き込み、
    第n 2 (n 2 は2以上且つN以下の整数)のデータドライブにこれまで書き込まれていたデータ、前記第n 2 のデータドライブにこれから書き込むべきデータ並びに前記第n 2 のパリティドライブにこれまで書き込まれていたパリティを基に、前記第n 2 のパリティドライブにこれから書き込むべきパリティを算出して、該算出されたパリティを前記第n 2 のパリティドライブに書き込むことを特徴とする書込み方法をコンピュータに実行させるためのプログラム。
  9. 請求項1に記載の冗長化ドライブ群を用いた書込み方法をコンピュータに実行させるためのプログラムにおいて、
    第n 3 (n 3 は1以上且つN以下の整数)のデータドライブにこれまで書き込まれていたデータ、前記第n 3 のデータドライブにこれから書き込むべきデータ並びに前記第Nのパリティドライブにこれまで書き込まれていたパリティを基に、前記第Nのパリティドライブにこれから書き込むべきパリティを算出して、該算出されたパリティを前記第Nのパリティドライブに書き込むことを特徴とする書込み方法をコンピュータに実行させるためのプログラム。
  10. 請求項1に記載の冗長化ドライブ群を用いたデータ復元方法をコンピュータに実行させるためのプログラムにおいて、
    第1のデータドライブにこれまで書き込まれていたデータを、第2のデータドライブに格納されているデータ及び第1のパリティドライブに格納されているパリティを基に復元し、
    第n 4 (n 4 は2以上且つN−1以下の整数)のデータにこれまで書き込まれていたデータを、第n 4 −1のデータドライブに格納されているデータ及び第n 4 −1のパリティドライブの格納されているパリティ、又は、第n 4 +1のデータドライブに格納されているデータ及び第n 4 のパリティドライブに格納されているパリティを基に復元し、
    第Nのデータにこれまで書き込まれていたデータを、第N−1のデータドライブに格納されているデータ及び第N−1のパリティドライブに格納されているパリティを基に復元することを特徴とするデータ復元方法をコンピュータに実行させるためのプログラム。
  11. 請求項1に記載の冗長化ドライブ群を用いたデータ復元方法をコンピュータに実行させるためのプログラムにおいて、
    第n 5 (n 5 は1以上且つN以下の整数)のデータドライブにこれまで書き込まれていたデータを、前記第n 5 のドライブ以外の全てのデータドライブに格納されているデータ及び前記第Nのパリティドライブに格納されているパリティを基に復元することを特徴とするデータ復元方法をコンピュータに実行させるためのプログラム。
  12. 請求項1に記載の冗長化ドライブ群を用いたデータ復元方法をコンピュータに実行させるためのプログラムにおいて、
    第n 6 (n 6 は1以上且つN以下の整数)のデータドライブにこれまで書き込まれていたデータを、前記第Nのパリティドライブに格納されているパリティ及び第1乃至第N−1のパリティドライブのうちの一部のパリティドライブに格納されているパリティを基に復元することを特徴とするデータ復元方法をコンピュータに実行させるためのプログラム。
  13. 請求項12に記載のデータ復元方法をコンピュータに実行させるためのプログラムにおいて、
    第1乃至第N−1のパリティドライブのうちの前記一部のパリティドライブとは、
    前記n 6 が偶数2m(mは自然数)である場合には、第1のパリティドライブ乃至第2m−1のパリティドライブ及び第2mのパリティドライブ乃至第N−1のパリティドライブであり、
    前記n 6 が奇数(2m+1)(mは自然数)である場合には、第1のパリティドライブ乃至第2m−1のパリティドライブ及び第2(m+1)のパリティドライブ乃至第N−1のパリティドライブであることを特徴とするデータ復元方法をコンピュータに実行させるためのプログラム。
JP2004176988A 2004-06-15 2004-06-15 冗長化ドライブ群並びにこれを用いた書込み方法及びデータ復元方法 Expired - Fee Related JP4336859B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2004176988A JP4336859B2 (ja) 2004-06-15 2004-06-15 冗長化ドライブ群並びにこれを用いた書込み方法及びデータ復元方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004176988A JP4336859B2 (ja) 2004-06-15 2004-06-15 冗長化ドライブ群並びにこれを用いた書込み方法及びデータ復元方法

Publications (2)

Publication Number Publication Date
JP2006003971A JP2006003971A (ja) 2006-01-05
JP4336859B2 true JP4336859B2 (ja) 2009-09-30

Family

ID=35772347

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004176988A Expired - Fee Related JP4336859B2 (ja) 2004-06-15 2004-06-15 冗長化ドライブ群並びにこれを用いた書込み方法及びデータ復元方法

Country Status (1)

Country Link
JP (1) JP4336859B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8331731B2 (en) 2007-03-27 2012-12-11 Canon Kabushiki Kaisha Image processing method and image processing apparatus

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5397062B2 (ja) * 2009-07-21 2014-01-22 富士通株式会社 割符ファイル生成プログラム及び方法、並びにデータ復元プログラム及び方法
GB2492981B (en) 2011-07-18 2014-03-26 Qando Service Inc Data reconstruction
JP5440884B2 (ja) * 2011-09-29 2014-03-12 日本電気株式会社 ディスクアレイ装置およびディスクアレイ制御用プログラム
JP6369298B2 (ja) * 2014-11-13 2018-08-08 富士通株式会社 ストレージプログラム、ストレージシステム、ストレージ方法、及びストレージ装置
CN109298836B (zh) * 2018-09-04 2022-07-08 航天信息股份有限公司 处理数据的方法、装置和存储介质

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8331731B2 (en) 2007-03-27 2012-12-11 Canon Kabushiki Kaisha Image processing method and image processing apparatus

Also Published As

Publication number Publication date
JP2006003971A (ja) 2006-01-05

Similar Documents

Publication Publication Date Title
JP5923964B2 (ja) ディスクアレイ装置、制御装置、およびプログラム
JP4192154B2 (ja) エラー訂正のためのデータの分割
US7934120B2 (en) Storing data redundantly
JPS63197123A (ja) エラ−訂正及びチエツク装置
JP2009514056A (ja) データ・ストレージ・アレイ
JPH0786810B2 (ja) アレイディスク装置
CN102411518B (zh) 控制器、存储装置以及计算机程序产品
US10860423B2 (en) Method and apparatus for performing dynamic recovery management regarding redundant array of independent disks
JP2006236001A (ja) ディスクアレイ装置
JP2016105274A (ja) データを回復する方法、データを格納する方法、及びテープ記憶システム
JP4336859B2 (ja) 冗長化ドライブ群並びにこれを用いた書込み方法及びデータ復元方法
JP2021149769A (ja) メモリシステムおよびシフトレジスタ型メモリ
JP6260193B2 (ja) ストレージシステム、及びストレージプログラム
CN112119380B (zh) 带有旁路的奇偶校验记录
JP2008077782A (ja) 記憶データ処理装置、記憶装置、記憶データ処理プログラム
TWI620116B (zh) 硬碟陣列及其重建方法
JP2016095719A (ja) パリティレイアウト決定プログラム、パリティレイアウト決定方法、ストレージ装置およびストレージシステム
JP2011233186A (ja) ディスク記憶装置及びデータ復元方法
CN110310674B (zh) 盘装置以及数据管理方法
CN101122882A (zh) 消除廉价磁盘冗余阵列设备的同步过程的方法
JPH0728710A (ja) データ・コーディング再生方法
US8214589B2 (en) Data storage system redundancy scheme verification
WO2020214391A1 (en) Multilevel resiliency
JP7056874B2 (ja) 制御装置、ディスクアレイ装置、制御方法、及びプログラム
JP2856054B2 (ja) ディスクアレイ装置

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20080324

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080508

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20080508

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080703

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

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20090614

R150 Certificate of patent or registration of utility model

Ref document number: 4336859

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120710

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120710

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130710

Year of fee payment: 4

LAPS Cancellation because of no payment of annual fees