JP2008097053A - ネットワークを介して接続された複数のデータ記憶装置を含むシステム及びそれに使用されるデータ記憶装置 - Google Patents
ネットワークを介して接続された複数のデータ記憶装置を含むシステム及びそれに使用されるデータ記憶装置 Download PDFInfo
- Publication number
- JP2008097053A JP2008097053A JP2006274307A JP2006274307A JP2008097053A JP 2008097053 A JP2008097053 A JP 2008097053A JP 2006274307 A JP2006274307 A JP 2006274307A JP 2006274307 A JP2006274307 A JP 2006274307A JP 2008097053 A JP2008097053 A JP 2008097053A
- Authority
- JP
- Japan
- Prior art keywords
- data
- parity
- command
- storage device
- data storage
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1076—Parity data used in redundant arrays of independent storages, e.g. in RAID systems
- G06F11/1088—Reconstruction on already foreseen single or plurality of spare disks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2211/00—Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
- G06F2211/10—Indexing scheme relating to G06F11/10
- G06F2211/1002—Indexing scheme relating to G06F11/1076
- G06F2211/1057—Parity-multiple bits-RAID6, i.e. RAID 6 implementations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2211/00—Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
- G06F2211/10—Indexing scheme relating to G06F11/10
- G06F2211/1002—Indexing scheme relating to G06F11/1076
- G06F2211/1059—Parity-single bit-RAID5, i.e. RAID 5 implementations
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Signal Processing For Digital Recording And Reproducing (AREA)
Abstract
【課題】ライト処理に伴うパリティ更新の処理を改善する。
【解決手段】本発明の一態様において、ホスト・コントローラ2が、HDD−B1bにライト・コマンド及び新データを送信する。HDD−B1bは、新データを書き込むべき領域(0,B)の旧データを読み出す。HDD−B1bは、さらに、新データと旧データとのXOR演算を行い、仮パリティを生成する。HDD−B1bは、仮パリティを、横パリティ・ディスク・ドライブHDD−A1a及び斜めパリティ・ディスク・ドライブHDD−F1fの双方を宛先とするデータ・フレームに入れて送信する。HDD−A1a及びHDD−F1fは、仮パリティを使用してパリティの更新を行う。
【選択図】図3
【解決手段】本発明の一態様において、ホスト・コントローラ2が、HDD−B1bにライト・コマンド及び新データを送信する。HDD−B1bは、新データを書き込むべき領域(0,B)の旧データを読み出す。HDD−B1bは、さらに、新データと旧データとのXOR演算を行い、仮パリティを生成する。HDD−B1bは、仮パリティを、横パリティ・ディスク・ドライブHDD−A1a及び斜めパリティ・ディスク・ドライブHDD−F1fの双方を宛先とするデータ・フレームに入れて送信する。HDD−A1a及びHDD−F1fは、仮パリティを使用してパリティの更新を行う。
【選択図】図3
Description
本発明は、ネットワークを介して接続された複数のデータ記憶装置を含むシステム及びそれに使用されるデータ記憶装置に関し、特に、システムにおけるパリティの更新手法に関する。
現在、複数のハードディスク・ドライブ(HDD)を組み合わせてデータに冗長性を持たせ、信頼性の向上を図ると共に性能の向上を図るシステムとして、RAID(Redundant Arrays of Inexpensive Disks)システムが知られている。RAIDシステムの中でも、RAID−5は、信頼性と性能とのバランスから広く普及している(例えば特許文献1を参照)。
RAID−5システムでは、複数台のディスク・アレイからなるRAIDグループを、ストライプに切り、ストライプ毎に、RAIDグループのドライブのデータのXOR(排他的論理和)を計算し、パリティとして、RAIDグループ内の1台のドライブに記録する。RAIDグループ内の1台のドライブの当該LBAが後発バッドで読み出し不可となっても、残りのドライブのデータとパリティとをXORを計算することにより、当該データを再現(Regenerate)することができる。また、1台がダウンしても残りのドライブのデータをXORすることにより、データ・ロストとはならず、XOR結果を予備のスタンバイ・ディスクに書き込むこと(Rebuild)により、RAIDが回復できる。
RAID−5は、上記の通り1台ダウンしても回復できるので、高信頼性の高価な専用ディスク装置でなく、OEM向けSCSI(Small Computer System Interface)/FC−AL(Fibre Channel Arbitrated Loop)ディスク装置でシステム構成できることが特徴の一つであった。しかしながら、近年、さらに安価なSATA(Serial ATA)のHDDを使用したエントリーサーバでは、エラー・レートがエンタープライズ向けディスク装置よりも1桁高い。従って、1台ダウンして残りのディスク装置で回復中に残りのうちの1台で回復不能リードエラーセクタが発生すると、回復不可能となりシステムダウンに繋がる。このような問題に対応するため、近年、パリティを二重化したRAID−6が用いられている。
RAID−6に関しては、図8に示す様なP+Q方式(例えば特許文献2を参照)と、図9に示すような2D−XOR方式がある。図8に示すように、P+Q方式では、RAID−5で用いられていたXORのPパリティに加えて、リードソロモンのガロア体を付加したQパリティを作成する。
例えば、Pパリティの一つであるP−0は、
P-0=(0,A) xor (0,B) xor (0,C) xor (0,D)
によって計算される。また、Qパリティの一つであるQ−0は、
Q-0 =a(0)*(0,A) xor a(1)*(0,B)xor a(2)*(0,C) xor a(3)*(0,D)
によって計算される。一つのエラーについては、Pパリティを使用して修正することができる。2つのエラーが存在する場合は、P、Qから連立1次方程式を立てて2変数を解く。
P-0=(0,A) xor (0,B) xor (0,C) xor (0,D)
によって計算される。また、Qパリティの一つであるQ−0は、
Q-0 =a(0)*(0,A) xor a(1)*(0,B)xor a(2)*(0,C) xor a(3)*(0,D)
によって計算される。一つのエラーについては、Pパリティを使用して修正することができる。2つのエラーが存在する場合は、P、Qから連立1次方程式を立てて2変数を解く。
これに対して、図9に示すように、2D−XOR方式では、RAID−5の従来の横XORパリティに加えて、斜めXORパリティを生成する。具体的には、図9における横パリティPの各値は以下のようになる。
Ph-0 = (0,B) xor (0,C) xor (0,D) xor (0,E)
Ph-1 = (1,A) xor (1,C) xor (1,D) xor (1,E)
Ph-2 = (2,0) xor (2,1) xor (2,3) xor (2,4)
Ph-3 = (3,A) xor (3,B) xor (3,C) xor (3,D)
Ph-4 = (4,A) xor (4,B) xor (4,C) xor (4,D)
Ph-0 = (0,B) xor (0,C) xor (0,D) xor (0,E)
Ph-1 = (1,A) xor (1,C) xor (1,D) xor (1,E)
Ph-2 = (2,0) xor (2,1) xor (2,3) xor (2,4)
Ph-3 = (3,A) xor (3,B) xor (3,C) xor (3,D)
Ph-4 = (4,A) xor (4,B) xor (4,C) xor (4,D)
また、斜めパリティPdの各値は以下のようになる。
Pd-0 = (1,A) xor (2,B) xor (3,C) xor (4,D) xor (0,E)
Pd-1 = (2,A) xor (3,B) xor (4,C) xor (0,D) xor (1,E)
Pd-2 = (3,A) xor (4,B) xor (0,C) xor (1,D) xor (2,E)
Pd-3 = (3,A) xor (4,B) xor (0,C) xor (1,D) xor (2,E)
Pd-4 = Ph-0 xor Ph-1 xor Ph-2 xor Ph-3 xor Ph-4
特開平8−76941号公報
特開平10−241128号公報
Pd-0 = (1,A) xor (2,B) xor (3,C) xor (4,D) xor (0,E)
Pd-1 = (2,A) xor (3,B) xor (4,C) xor (0,D) xor (1,E)
Pd-2 = (3,A) xor (4,B) xor (0,C) xor (1,D) xor (2,E)
Pd-3 = (3,A) xor (4,B) xor (0,C) xor (1,D) xor (2,E)
Pd-4 = Ph-0 xor Ph-1 xor Ph-2 xor Ph-3 xor Ph-4
P+Q方式は、Qパリティの計算が複雑であり、例えば、バグなどでパリティ・エラー誤検出や、メモリ不良でパリティ・エラーを検出しても、不良位置を計算するには人手では不可能となった。これに対して、2D−XOR方式は回路的には簡単であり、データの整合性を確認する際にもXOR計算でできるので人手でも可能である。しかしながら、2個のパリティの位置が別ドライブなので、データ・ライトにおけるパリティ更新のためのドライブへのアクセスが、RAID−5あるいは、P+Q方式の4回に比べて6回に増える。
具体的には、RAID−5におけるライト時の新パリティは、旧データ、新データ、旧パリティそれぞれのXOR演算を行うことによって算出することができる。この演算をホスト・コントローラが実行する場合、ライト対象ドライブからの旧データ読み出し及び新データの書きこみ、パリティ・ディスク・ドライブからの旧パリティ読み出し及び新パリティ書き込み、の合計4回のアクセスが発生する。
RAID−6の場合は、さらに、斜めパリティ・ディスク・ドライブからの、旧パリティ読み出し及び新パリティ書き込みのさらに2回が加わり、合計6回のアクセスが発生する。具体的な例を、図10、図11を用いて説明する。図10に示すように、RAID−6システムは、ホスト・コントローラ2、ディスク・アレイを構成するHDD−A1a、HDD−B1b、HDD−C1c、HDD−D1d、HDD−E1e、HDD−F1f、それらを接続するファイバーチャネル・アービトレイテッド・ループ・ネットワーク(FC−ALネットワーク)3を有する。
図10は、2D−XOR方式において、HDD−B1bが、RAIDグループ0のブロック(0,B)においてライトを実行するケースを示す。図11は、図10の場合において処理に参加するホスト・コントローラ2及びHDD−A1a、HDD−B1b、HDD−F1fの処理を示すシーケンス図である。
まずホスト・コントローラ2が、HDD−B1bに対して、ライトすべきブロック(0,B)の旧データの読み出し命令を送信する(S201)。また、HDD−A1aに対して、更新すべき横パリティ(Ph−0)の読み出し命令を送信する(S202)。HDD−B1bは、S201の読み出し命令に従って、旧データを読み出し(S203)、ホスト・コントローラ2に対して旧データを送信する(S204)。また、HDD−A1aは、S202の読み出し命令に従って、旧横パリティを読み出し(S205)、ホスト・コントローラ2に対して旧横パリティを送信する(S206)。
ホスト・コントローラ2は、新データ、旧データ及び旧横パリティから新横パリティを生成する(S207)。そして、HDD−B1bに対しては新データ及びその書き込み命令を送信し(S208)、HDD−A1aに対しては新横パリティ及びその書き込み命令を送信する(S209)。HDD−B1b、HDD−A1aでは、上記命令に従って、それぞれ新データ、新横パリティを書き込む(S210、S211)。
更に、ホスト・コントローラ2は、HDD−F1fに対して、更新すべき斜めパリティ(Pd−3)の読み出し命令を送信する(S212)。HDD−F1fは、S212の読み出し命令に従って、旧斜めパリティを読み出し(S213)、ホスト・コントローラ2に対して旧斜めパリティを送信する(S214)。ホスト・コントローラ2は、新データ、旧データ及び旧斜めパリティから新斜めパリティを生成する(S215)。そして、HDD−F1fに対して新斜めパリティの書き込み命令を送信する(S216)。HDD−F1fは、上記命令に従って、新斜めパリティを書き込む(S217)。
上述のように、パリティが増加するに従ってパリティ更新のための各ドライブへのアクセスによるオーバーヘッドが増加する。従って、処理時間を短縮しパフォーマンスを向上するため、データ・ライトに伴うパリティ更新のためのアクセス回数を低減することが望ましい。例えば、特許文献1は、RAID−5において、その手法の一つを提案している。特許文献1において、新データを書き込むドライブが新データと旧データのXOR演算によってパリティ更新のためのデータ(仮パリティと呼ぶ)を生成する。パリティ・ディスク・ドライブは、上記の仮パリティを受信し、その仮パリティと旧パリティとのXOR演算によって新パリティを生成する。これによって、パリティ更新のためのドライブへのアクセス回数を低減している。
しかし、特許文献1の技術は、RAID−5のように一つのパリティを使用するアレイ・システムを対象としており、RAID−6のように二つのパリティを使用するシステムについて十分な考慮がなされていない。あるいは、特許文献1において、新データを書き込むドライブがコマンドと仮パリティを生成し、自ら特定した、あるいはホスト・コントローラがライト・コマンド内で指示したパリティ・ディスク・ドライブに対して、そのコマンドと仮パリティとを送信する。しかし、システムの信頼性を向上するためには、各ドライブの処理は単純化されていることが好ましい。あるいは汎用性を維持するためには、ホスト・コントローラは、通常のライト・コマンドに新たなデータを付加することなく、新データを書き込むドライブに指示を行えることが好ましい。
本発明の一態様は、ネットワークを介して接続された第1のデータ記憶装置と第2のデータ記憶装置とを含むシステムである。前記第1のデータ記憶装置は、指定するアドレスのデータの書き換えを指示する第1のコマンドと、その第1のコマンドに対応するデータ・フレームとを受信する。前記データ・フレームは、前記第1のコマンドが指示するデータ書き換えに使用する第1のデータと、第2のコマンド及びその第2のコマンドの送信先とを含む。前記第1のデータ記憶装置は、前記第1のコマンドに従って前記第1のデータを使用して前記指定されたアドレスのデータを書き換え、さらに、前記第2のコマンドと、前記アドレスのデータと関連付けられているパリティの書き換えに使用する第2のデータと、を前記送信先である前記第2のデータ記憶装置に送信する。前記第2のデータ記憶装置は、前記第1のデータ記憶装置から受信した前記第2のコマンドに従って、前記第2のデータを使用して前記アドレスのデータと関連付けられているパリティの書き換えを行う。データ・フレームに第1のデータの他に、第2のコマンド及びその第2のコマンドの送信先を含むことで、第2のコマンドのコマンドを生成する装置を限定し、システムの信頼性と汎用性を高めることができる。なお、第1のデータは、第1のデータ記憶装置がそのまま記憶するライト・データあるいはパリティ更新に使用するデータであってもよい。
前記システムが、前記ネットワークを介して接続された第3のデータ記憶装置をさらに含む場合、前記データ・フレームは、第3のコマンド及びその第3のコマンドの送信先をさらに含むことが好ましい。前記第3のデータ記憶装置は、前記第1のデータ記憶装置から送信された前記第3のコマンドと前記第2のデータを取得し、前記第3のコマンドに従って前記第2のデータを使用して前記アドレスの記録データと関連付けられているパリティの書き換えを行う。前記データ・フレームが第2のコマンドと第3のコマンドを含むので、コマンドを生成する装置を限定し、システムの信頼性と汎用性を高めることができる。なお、前記第3のコマンドは、コマンドとして前記第1のデータ記憶装置から前記第3のデータ記憶装置に送信される、あるいは、データ・フレームに含まれて他のデータ記憶装置に送信され、その他のデータ記憶装置が前記前記第3のデータ記憶装置に送信するようにしてもよい。
例えば、前記第1のデータ記憶装置は、前記データ・フレームから取得した前記第3のコマンドと前記第2のデータとを、前記第3のデータ記憶装置に送信し、前記第3のデータ記憶装置は、前記第1のデータ記憶装置から送信された前記第3のコマンドと前記第2のデータとを取得して前記パリティの書き換えを行う。
あるいは、前記第1のデータ記憶装置は、前記第3のコマンドと前記第3のコマンドの送信先と前記第2のデータとを含むデータ・フレームを、前記第2の装置に送信し、前記第2のデータ記憶装置は、受信した前記データ・フレーム内の前記第3のコマンドと前記第2のデータとを、前記第3のデータ記憶装置に送信し、前記第3のデータ記憶装置は、前記第2のデータ記憶装置から送信された前記第3のコマンドと前記第2のデータとを取得して前記パリティの書き換えを行う。
好ましくは、前記第1のデータ記憶装置は、前記第2のデータを、前記指定されたアドレスに書き込む前記第1のデータと、そのアドレス記憶されていた旧データとの排他的論理和によって生成し、前記第2のデータ記憶装置は、前記第2のデータと予め記憶していた旧パリティとの排他的論理和によって新パリティを生成する。前記第2のデータによって、パリティ更新の処理を効率化することができる。
本発明の他の態様は、ネットワークを介して接続された複数のデータ記憶装置を有するシステムに使用されるデータ記憶装置である。このデータ記憶装置は、指定するアドレスのデータの書き換えを指示する第1のコマンドと、その第1のコマンドに対応し、前記第1のコマンドが指示するデータ書き換えに使用する第1のデータと、第2のコマンド及びその第2のコマンドの送信先とを含むデータ・フレームと、を受信する受信部と、前記第1のコマンドに従って前記第1のデータを使用して前記指定されたアドレスのデータを書き換える制御部と、前記第2のコマンドと、前記アドレスのデータと関連付けられているパリティの書き換えに使用する第2のデータと、を前記送信先に送信する送信部を有する。データ・フレームに第1のデータの他に、第2のコマンド及びその第2のコマンドの送信先を含むことで、第2のコマンドのコマンドを生成する装置を限定し、システムの信頼性と汎用性を高めることができる。
好ましくは、前記コントローラは、前記第2のデータを、前記指定されたアドレスに書き込む前記第1のデータと、そのアドレス記憶されていた旧データとの排他的論理和によって生成する。これによって、パリティ更新の処理を効率化することができる。
本発明の他の態様は、ネットワークを介して接続された複数のデータ記憶装置を含み、各データ記憶装置の単位データ・ブロックを異なる2方向においてそれぞれ排他的論理和演算することによって二重のパリティを生成し保存するシステムである。このシステムは、第1のデータ記憶装置と第2のデータ記憶装置と第3のデータ記憶装置とを有する。前記第1のデータ記憶装置は、ライト・コマンドと新データとを取得し、旧データを前記新データで書き換え、前記新データと前記旧データとの排他的論理和演算を行って仮パリティを生成し、前記仮パリティを含む一つのデータ・フレームを前記旧データが対応するパリティを記憶する二つのデータ記憶装置に向けて送信する。前記第2のデータ記憶装置は、前記データ・フレームを受信し、そのデータ・フレームに含まれる前記仮パリティを取得し、前記旧データに対応する第1の旧パリティと前記仮パリティとの排他的論理和演算を行って第1の新パリティを生成し、前記第1の新パリティを保存する。前記第3のデータ記憶装置は、前記データ・フレームを受信し、そのデータ・フレームに含まれる前記仮パリティを取得し、前記旧データに対応する第2の旧パリティと前記仮パリティとの排他的論理和演算を行って第2の新パリティを生成し、その第2の新パリティを保存する。前記仮パリティを含む一つのデータ・フレームを前記旧データが対応するパリティを記憶する二つのデータ記憶装置に向けて送信することで、処理を効率化することができる。
好ましくは、前記第1のデータ記憶装置は前記新データと第2のコマンドとその第2のコマンドの送信先とを含むデータ・フレームを受信する。そして、前記第2のデータ記憶装置は、第2のコマンドの送信先であり、前記第1のデータ記憶装置から転送された前記第2のコマンドに従って、前記新パリティの生成及び保存を実行する。データ・フレームに第2のコマンドとその第2のコマンドの送信先とを含めることで、システムの信頼性と汎用性を高めることができる。
好ましくは、前記第1のデータ記憶装置が受信する前記データ・フレームは、第3のコマンドとその第3のコマンドの送信先とをさらに含む。そして、前記第3のデータ記憶装置は、第3のコマンドの送信先であり、前記第1のデータ記憶装置から転送された前記第3のコマンドに従って、前記新パリティの生成及び保存を実行する。
本発明の他の態様は、ネットワークを介して接続された複数のデータ記憶装置を含み、各データ記憶装置の単位データ・ブロックを異なる2方向においてそれぞれ排他的論理和演算することによって二重のパリティを生成し保存するシステムに使用されるデータ記憶装置である。このデータ記憶装置は、ライト・コマンドと新データとを受信する受信部と、旧データを前記新データで書き換え、前記新データと前記旧データとの排他的論理和演算を行って仮パリティを生成する制御部と、前記仮パリティを含む一つのデータ・フレームを前記旧データが対応するパリティを記憶する二つのデータ記憶装置に向けて送信する送信部とを有する。前記仮パリティを含む一つのデータ・フレームを前記旧データが対応するパリティを記憶する二つのデータ記憶装置に向けて送信することで、処理を効率化することができる。
好ましくは、前記受信部は、前記新データと第2のコマンドとその第2のコマンドの送信先とを含むデータ・フレームを受信し、前記送信部は前記第2のコマンドを前記送信先に送信して、前記仮パリティによるパリティ更新を指示する。データ・フレームに第2のコマンドとその第2のコマンドの送信先とを含めることで、システムの信頼性と汎用性を高めることができる。
本発明によれば、複数のデータ記憶装置を有するアレイ・システムにおいて、データ・ライトに伴うパリティの更新処理を改善することができる。
以下に、本発明を適用可能な実施の形態が説明される。説明の明確化のため、以下の記載及び図面は、適宜、省略及び簡略化がなされている。又、各図面において、同一要素には同一の符号が付されており、説明の明確化のため、必要に応じて重複説明は省略されている。以下においては、データ記憶装置の一例であるハードディスク・ドライブ(HDD)を例として、本発明の実施形態を説明する。
本形態の特徴点は、複数のデータ記憶装置を有するアレイ・システムにおけるパリティの更新手法にある。以下においては、アレイ・システムの好ましい一例として、HDDを使用したRAID(Redundant Arrays of Inexpensive Disks)システムの例について説明する。最初に、HDDの構成を説明する。図1は、HDD1の全体構成を模式的に示すブロック図である。図1に示すように、HDD1は、エンクロージャ10内に、データを記憶するディスクの一例である磁気ディスク11、ヘッド素子部12、アーム電子回路(アームエレクトロニクス:AE)13、スピンドル・モータ(SPM)14、ボイス・コイル・モータ(VCM)15、そしてアクチュエータ16を備えている。
HDD1は、エンクロージャ10の外側に固定された回路基板20を備えている。回路基板20上には、リード・ライト・チャネル(RWチャネル)21、モータ・ドライバ・ユニット22、ハードディスク・コントローラ(HDC)とMPUの集積回路(以下、HDC/MPU)23、RAM24及びEEPROM25などの各回路を備えている。SPM14は、そこに固定されている磁気ディスク11を、所定の角速度で回転する。HDC/MPU23からの制御データに従って、モータ・ドライバ・ユニット22がSPM14を駆動する。
本例の磁気ディスク11は、データを記録する記録面を両面に備え、各記録面に対応するヘッド素子部12が設けられている。各ヘッド素子部12はスライダ(不図示)に固定されている。また、スライダは、ヘッド移動機構の一例であるアクチュエータ16に固定されている。データのリード及びライト時において、スライダは回転する磁気ディスク11上を浮上する。アクチュエータ16はVCM15に連結され、回動軸を中心に回動することによって、ヘッド素子部12を磁気ディスク11上において半径方向に移動する。
モータ・ドライバ・ユニット22は、HDC/MPU23からの制御データに従ってVCM15を駆動する。ヘッド素子部12には、典型的には、ライト・データに応じて電気信号を磁界に変換するライト素子及び磁気ディスク11からの磁界を電気信号に変換するリード素子を備えている。なお、磁気ディスク11は1枚以上あればよく、記録面は磁気ディスク11の片面あるいは両面に形成することができる。
AE13は、複数のヘッド素子部12の中からデータ・アクセスが行われる1つのヘッド素子部12を選択し、選択されたヘッド素子部12により再生される再生信号を一定のゲインで増幅し、RWチャネル21に送る。また、RWチャネル21からの記録信号を選択されたヘッド素子部12に送る。RWチャネル21は、ライト処理において、HDC/MPU23から供給されたライト・データをコード変調し、更にコード変調されたライト・データをライト信号に変換してAE13に供給する。リード処理において、RWチャネル21は取得したリード信号からデータを抽出し、デコード処理を行う。読み出されるデータは、ユーザ・データとサーボ・データを含む。デコード処理されたリード・データは、HDC/MPU23に供給される。
HDC/MPU23において、MPUはRAM24にロードされたマイクロ・コードに従って動作する。HDD1の起動に伴い、RAM24には、MPU上で動作するマイクロ・コードの他、制御及びデータ処理に必要とされるデータが磁気ディスク11あるいはHDC/MPU23内のROMなどからロードされる。また、必要な各パラメータが、EEPROM25からRAM24にロードされる。
HDCはロジック回路として構成され、MPUと一体的に様々な処理を実行する。例えば、HDC/MPU23は、コマンド実行順序の管理、ヘッド素子部12のポジショニング制御、インターフェース制御、ディフェクト管理などのデータ処理に関する必要な処理を行う。従って、HDC/MPU23はデータの送信部及び受信部として機能すると共に、制御部として機能する。本形態のHDC/MPU23は、特に、HDD1が参加するRAIDシステムにおけるインターフェース処理及び内部処理を実行する。RAM24は、外部からのデータ及び磁気ディスク11から読み出したデータを一時的に保存するバッファ(キャッシュ)として機能する。
次に、本発明のアレイ・システムの例として、RAID−6システムを利用したシステムを説明する。図2に示すように、本実施形態に係るアレイ・システムは、ホスト・コントローラ2、RAIDグループを構成するHDD−A1a、HDD−B1b、HDD−C1c、HDD−D1d、HDD−E1e、HDD−F1f、それらを接続するファイバーチャネル・アービトレイテッド・ループ・ネットワーク(FC−ALネットワーク)3を有する。
図2は、RAID−6システムのパリティ構成を示しており、本形態に係るRAID−6システムは、図2に示すように、2D−XOR方式のパリティ構成を有する。ここで、Phが横パリティ(Horizontal Parity)、Pdが斜めパリティ(Diagonal Parity)を示す。各HDD−A1a〜HDD−E1eは、図2に模式的に示すようにストライプに切られており、各HDD−A1a〜HDD−E1eのデータ記憶領域は、単位ブロックに分割されている。
図2において、行方向のブロックのグループがストライプである。HDD−F1fは斜めパリティを格納する斜めパリティ・ディスク・ドライブであり、このRAIDグループにおけるユーザ・データを格納してはいない。HDD−F1fのデータ記憶領域も同様に単位ブロックに分割されている。データの書き込み/読み出し及びパリティ計算はブロック単位で実行される。
ユーザ・データのブロックは、ストライプ番号とHDDのIDによって示されている。例えば、HDD−B1bにおけるストライプ0のブロックは、(0,B)と示されている。横パリティPhは、Phの符号とストライプ番号によって示されている。例えば、ストライプ0の横パリティPhはPh−0である。また、斜めパリティPdも、Pdの符号と対応するストライプ番号によって示されている。例えば、ストライプ0に対応する斜めパリティPdはPd−0である。横パリティは、同一ストライプ内のデータを使用して生成されるが、斜めパリティは異なる各ストライプのデータから生成される。また、各ストライプの横パリティPhは、それぞれ異なるHDDが保持している。
具体的には、各横パリティPhの値は以下のようになる。
Ph-0 = (0,B) xor (0,C) xor (0,D) xor (0,E)
Ph-1 = (1,A) xor (1,C) xor (1,D) xor (1,E)
Ph-2 = (2,0) xor (2,1) xor (2,3) xor (2,4)
Ph-3 = (3,A) xor (3,B) xor (3,C) xor (3,D)
Ph-4 = (4,A) xor (4,B) xor (4,C) xor (4,D)
Ph-0 = (0,B) xor (0,C) xor (0,D) xor (0,E)
Ph-1 = (1,A) xor (1,C) xor (1,D) xor (1,E)
Ph-2 = (2,0) xor (2,1) xor (2,3) xor (2,4)
Ph-3 = (3,A) xor (3,B) xor (3,C) xor (3,D)
Ph-4 = (4,A) xor (4,B) xor (4,C) xor (4,D)
また、斜めパリティPdの各値は以下のようになる。
Pd-0 = (1,A) xor (2,B) xor (3,C) xor (4,D) xor (0,E)
Pd-1 = (2,A) xor (3,B) xor (4,C) xor (0,D) xor (1,E)
Pd-2 = (3,A) xor (4,B) xor (0,C) xor (1,D) xor (2,E)
Pd-3 = (3,A) xor (4,B) xor (0,C) xor (1,D) xor (2,E)
Pd-4 = Ph-0 xor Ph-1 xor Ph-2 xor Ph-3 xor Ph-4
Pd-0 = (1,A) xor (2,B) xor (3,C) xor (4,D) xor (0,E)
Pd-1 = (2,A) xor (3,B) xor (4,C) xor (0,D) xor (1,E)
Pd-2 = (3,A) xor (4,B) xor (0,C) xor (1,D) xor (2,E)
Pd-3 = (3,A) xor (4,B) xor (0,C) xor (1,D) xor (2,E)
Pd-4 = Ph-0 xor Ph-1 xor Ph-2 xor Ph-3 xor Ph-4
次に、図3、図4を用いて本形態のアレイ・システムにおけるデータ・ライト及びパリティ更新処理の好ましい一例ついて説明する。図3は、HDD−B1bのデータ(0,B)を書き換える処理を示している。図4は、図3の場合において処理に参加するホスト・コントローラ2及びHDD−A1a、HDD−B1b、HDD−F1fの処理を示す処理シーケンス図である。
図4において、hdは、ホスト・コントローラ2からHDDへのアクセスを示している。hpは、ホスト・コントローラ2の内部処理を示している。dpは、データ・ディスク・ドライブ(本例においてHDD−B1b)から、横パリティ・ディスク・ドライブ(本例においてHDD−A1a)及び斜めパリティ・ディスク・ドライブ(本例においてHDD−F1f)へのアクセスを示している。ddは、データ・ディスク・ドライブHDD−B1bの内部処理を示している。phは、横パリティ・ディスク・ドライブHDD−A1aの内部処理を示している。pdは、斜めパリティ・ディスク・ドライブHDD−F1fの内部処理を示している。
図3、図4に示すように、まずホスト・コントローラ2が、HDD−B1bにライト・コマンドおよび書き換えを行うための新データを送信する(S101:hp)。ライト・コマンドは、ドライブのID(本例においてHDD−B1b)のほか、書き込み位置を指定するLBAとデータ・レングスを含む。HDD−B1bはライト・コマンド及び新データを受信すると(S102:dp)、当該新データを書き込むべき領域(0,B)の旧データを読み出す(S103:dp)。HDD−B1bは、さらに、受信した新データと読み出した旧データとのXOR演算を行う。この新データと旧データとのXOR演算の結果を、仮パリティと呼ぶ(S104:dp)。
次に、HDD−B1bは、S104にて生成した仮パリティを、パリティ更新を指示するコマンドと共に、横パリティ・ディスク・ドライブであるHDD−A1a及び斜めパリティ・ディスク・ドライブであるHDD−F1fに送信する(S105:dd)。コマンドは、ドライブIDのほか、更新すべきパリティのアドレスLBAを含む。その後、HDD−B1bは、新データを磁気ディスク11に書き込み、(0,B)のデータを書き換える(S112:dp)。
横パリティ・ディスク・ドライブHDD−A1aは、仮パリティを受信すると(S106:ph)、コマンドに従ってパリティを更新すべき旧横パリティPh−0を読み出し(S108:ph)、受信した仮パリティと旧横パリティとのXOR演算によって新横パリティを生成する(S110:ph)。その後、HDD−A1aは、新横パリティを自身の磁気ディスク11に書き込み、Ph−0のデータを書き換える(S113:ph)。このように、仮パリティを使用して横パリティの更新ができることは、XOR演算による横パリティの定義から明らかだろう。
また、斜めパリティ・ディスク・ドライブHDD−F1fは、仮パリティを受信すると(S107:pd)、コマンドに従って更新すべき旧斜めパリティPd−3を読み出し(S109:pd)、受信した仮パリティと旧斜めパリティとのXOR演算によって新斜めパリティを生成する(S111:pd)。その後、HDD−F1fは、新斜めパリティを自身の磁気ディスク11に書き込み、Pd−3のデータを書き換える(S114:pd)。このように、仮パリティを使用して斜めパリティの更新ができることは、XOR演算による斜めパリティの定義から明らかだろう。
以上のように、データ・ディスク・ドライブが仮パリティを生成して各パリティ・ディスク・ドライブに送信し、各パリティ・ディスク・ドライブがその仮パリティを使用してパリティ更新を行うことで、ホスト・コントローラ2はS101のデータ・ディスクへのライト・コマンド実行のみと負荷が軽減され、RAID−6を意識しないアクセスとなる。
これによって、データ・ディスク・ドライブブHDD−B1b、横パリティ・ディスク・ドライブHDD−A1a及び斜めパリティ・ディスク・ドライブHDD−F1fへの付加的な負荷は発生する。しかし、データ・ディスク・ドライブHDD−B1bの内部処理と横パリティ・ディスク・ドライブHDD−A1aの内部処理、そして斜めパリティ・ディスク・ドライブHDD−F1fの内部処理は、それぞれ図4に示すとおり同時並行しての実行が可能であので、ホスト・コントローラ2がシーケンシャルにパリティ計算を実行するのに比べ、システム性能が向上する。
また、各HDDへのアクセス回数が、ホスト・コントローラ2がパリティ計算を実行するのに比べて、低減される。つまり、ホスト・コントローラ2が、データ・ディスク・ドライブブHDD−B1b、横パリティ・ディスク・ドライブHDD−A1a及び斜めパリティ・ディスク・ドライブHDD−F1fからデータの読み出しを行う必要がないため、アクセス回数が低減される。
ここで重要なことは、横パリティ・ディスク・ドライブHDD−A1a及び斜めパリティ・ディスク・ドライブHDD−F1fに送信される仮パリティが、同一のデータであるという点である。このため、データ・ディスク・ドライブブHDD−B1bは、横パリティ・ディスク・ドライブHDD−A1aと斜めパリティ・ディスク・ドライブHDD−F1fとに、仮パリティを同時に送信することができる。
データ・ディスク・ドライブHDD−B1bは、横パリティ・ディスク・ドライブHDD−A1aと斜めパリティ・ディスク・ドライブHDD−F1fとを宛先に含む一つのフレームを生成し、そのフレームをネットワーク上に送信する。各パリティ・ディスク・ドライブHDD−A1a、HDD−F1fは、それぞれフレームを受信して処理を行う。
本例のアレイ・システムはFC−ALネットワーク3を使用している。例えば、データ・ディスク・ドライブHDD−B1bは、処理を行うドライブとして横パリティ・ディスク・ドライブHDD−A1aと斜めパリティ・ディスク・ドライブHDD−F1fとを上位のレイヤで指定して、ブロード・キャストによって、更新すべき二つパリティの各アドレスを含むコマンドと、仮パリティを含むデータ・フレームとを、FC−ALネットワーク3に送信する。なお、このように一つのブロード・キャスト・コマンドで各ドライブにコマンドを送ることが好ましいが、それぞれ別にコマンドを送信するようにしてもよい。
FC−ALネットワーク3は一方向のループ状ネットワークであり、図4の例においては、HDD−B1bから送信されたコマンド及びデータ・フレームは、HDD−C1c〜HDD−E1eを介して、HDD−F1fに到達する。HDD−C1c〜HDD−E1eは、受信したコマンド及びデータ・フレームを転送し、内部処理としてはそれらを破棄する。HDD−F1fは受信したコマンドが指定したアドレスのパリティについて、受信した仮パリティを使用した書き換え処理を行う。さらに、HDD−F1fから転送されたコマンド及びデータ・フレームは、ホスト・コントローラ2を介してHDD−A1aに到達する。HDD−A1aは受信したコマンドが指定したアドレスのパリティについて、受信した仮パリティを使用した書き換え処理を行う。
以上のように、FC−ALネットワーク3によって各ドライブを接続した場合に、S104で仮パリティを生成した後、その仮パリティをループ上を1周させれば、横パリティ・ディスク・ドライブと斜めパリティ・ディスク・ドライブとに仮パリティを送信することができ、後の処理はそれぞれのドライブに任せることができる。
ここで、それぞれのステップにおける具体的な処理について説明する。S101において、ホスト・コントローラ2は、ライト・コマンド及びライトすべき新データに加えて、横パリティ及び斜めパリティを更新すべきディスク・ドライブのアドレス及び各ドライブにおけるアドレスを送信する。即ち、上記の場合においては、更新すべき横パリティのアドレスとして(Ph−0)が、更新すべき斜めパリティのアドレスとして(Pd−3)が、それぞれ通知される。本実施形態においては、FC−ALネットワーク3を介して各ドライブが接続されているため、ディスク・アレイ上のドライブのアドレスはAL_PA(Arbitrated Loop Physical Address)として通知される。
ここで、新データのライト位置(0,B)に対応する横パリティ及び斜めパリティが格納されたディスク・ドライブのAL_PA及びアドレスは、パリティの構成情報としてホスト・コントローラ2内に格納されている。ホスト・コントローラ2では、新データを書き込むドライブ及びアドレスと、パリティの構成情報とに基づいて、横パリティ及び斜めパリティのAL_PA及びアドレスを決定する。
S103において、HDD−B1bの内部では、HDC/MPU23が、S102において受信したライト命令に従って、新データの書き込み対象となる(0,B)の旧データを磁気ディスク11から読み出し、RAM24にキャッシュする。そして、S104において、HDC/MPU23は、S102において受信し、RAM24にキャッシュした新データとS103においてRAM24にキャッシュした旧データとのXOR演算を実行し、仮パリティを生成する。
更に、S105において、HDC/MPU23は、S102において受信した横パリティ及び斜めパリティを更新すべきディスク・ドライブのAL_PAに従って、パリティ更新のコマンド及びS104において生成した仮パリティを送信する。この時、横パリティ・ディスク・ドライブ及び斜めパリティ・ディスク・ドライブにおいて、パリティを更新すべきアドレス、即ち(Ph−0)、(Pd−3)も同時に通知される。また、S112において、HDC/MPU23は、磁気ディスク11の(0,B)に新データを書き込む。
S108、S109において、横パリティ・ディスク・ドライブHDD−A1a及び斜めパリティ・ディスク・ドライブHDD−F1fの各内部では、HDC/MPU23が、それぞれS106、S107において受信したパリティ更新命令に従って、パリティの更新対象となる(Ph−0)、(Pd−3)の旧パリティを読み出し、RAM24に保持する。
そして、S110、S111において、各パリティ・ディスク・ドライブのHDC/MPU23は、それぞれS106、S107において受信してRAM24に保持した仮パリティとそれぞれS108、S109においてRAM24に保持した旧パリティとのXOR演算を実行し、新横パリティ及び新斜めパリティを生成する。さらに、S113、S114において、HDC/MPU23は、新パリティを、(Ph−0)、(Pd−3)の位置に書き込む。
なお、上記の説明においては、仮パリティを送信する横パリティ・ディスク及び斜めパリティ・ディスクのAL_PA並びにパリティを更新すべきLBAを、ホスト・コントローラ2がライト命令を与えるドライブに指定する例を説明した。しかしながら、それぞれのドライブ(上記実施形態においてはHDD−B1b)がパリティの構成情報を有しており、受信したライト命令に係るライト位置とパリティの構成情報とに基づいて、横パリティ及び斜めパリティを送信すべき宛先を決定しても良い。
上述の態様は、データの書き換えを行うデータ・ディスク・ドライブHDD−B1bが、パリティ更新のコマンドを生成して、パリティの書き換えを行うドライブHDD−A1a、HDD−F1fのそれぞれに送信する。以下の態様は、ホスト・コントローラ2がパリティ更新のコマンドを生成し、それをライト・データともに一つのデータ・フレーム内に収めてデータ・ディスク・ドライブHDD−B1bに送信する。データ・ディスク・ドライブHDD−B1bは、受信したデータ・フレームを展開してパリティ更新のコマンドを取得し、そのパリティ更新のコマンドを仮パリティと共にパリティの書き換えを行うドライブHDD−A1a、HDD−F1fに送信する。
図5は、ホスト・コントローラ2が、ユーザ・データの書き換えを行うデータ・ディスク・ドライブHDD−B1bに送信するライト・コマンド51及びそのライト・コマンドに対応するデータ・フレーム52の構成を模式的に示している。ライト・コマンド51は、コマンド種別を示すコマンドID(COMMAND ID)、コマンドの送信先のアドレス(NETWROK ADDRESS)、ライト・データを書き込む領域を示すLBAとデータ長(LENGTH)を含んでいる。本例においては、コマンド種別はライト・コマンドであり、コマンドの送信先のアドレスは、データ・ディスク・ドライブHDD−B1bのアドレスとなる。
データ・フレーム52は、データ・ディスク・ドライブHDD−B1bが新たに書き込む新データ(DATA)521に加えて、パリティの更新を指示するコマンド522、523を含んでいる。パリティの更新を指示するコマンド522、523は、それぞれ、コマンド種別を示すコマンドID(COMMAND ID)、コマンドの送信先のアドレス(NETWROK ADDRESS)、更新するパリティのアドレスを示すLBAとデータ長(LENGTH)を含んでいる。
コマンド522、523のコマンド種別は、パリティ更新である。パリティ更新コマンド522の送信先(NETWROK ADDRESS)は、横パリティ・ディスク・ドライブHDD−A1aであり、パリティ更新コマンド523の送信先(NETWROK ADDRESS)は、斜めパリティ・ディスク・ドライブHDD−F1fである。横パリティと斜めパリティとが記憶されているアドレスはそれぞれ異なるので、コマンド522のLBAとデータ長はPh−0のアドレスを示し、コマンド523のLBAとデータ長は、Pd−3のアドレスを示す。
データ・ディスク・ドライブHDD−B1bは、ホスト・コントローラ2からデータ・フレーム52を受信すると、それを展開して、パリティ更新コマンド522とパリティ更新コマンド523とを取得する。データ・ディスク・ドライブHDD−B1bは、パリティ更新コマンド522と仮パリティとを横パリティ・ディスク・ドライブHDD−A1aに向けて送信し、パリティ更新コマンド523と仮パリティとを斜めパリティ・ディスク・ドライブHDD−F1fに送信する。
図6は、データ・ディスク・ドライブHDD−B1bがパリティ・ディスク・ドライブHDD−A1a、HDD−F1fに送信するデータを示している。図6(a)及び(b)は、図5に対応しており、データ・ディスク・ドライブHDD−B1bが、HDD−A1a、HDD−F1fのそれぞれに、パリティ更新コマンド522、523と仮パリティ(PSEUDO PARITY)611、612を送信するケースを示している。上述のように、仮パリティ611、612は同一内容のデータである。
横パリティ・ディスク・ドライブHDD−A1aは、パリティ更新コマンド522と仮パリティ611をデータ・ディスク・ドライブHDD−B1bから取得すると、それに従ってPh−0の横パリティを書き換える。また、斜めパリティ・ディスク・ドライブHDD−F1fは、パリティ更新コマンド523と仮パリティ611をデータ・ディスク・ドライブHDD−B1bから取得すると、それに従ってPh−0の横パリティを書き換える。
データ・ディスク・ドライブHDD−B1bは、図6(c)に示すように、HDD−A1a、HDD−F1fの双方を宛先に含む一つのパリティ更新コマンド525を、HDD−A1a、HDD−F1fに同時に送信してもよい。この場合、データ・ディスク・ドライブHDD−B1bによるパリティ更新コマンドとそれに対応する仮パリティ613の送信は一回となる。
上記の態様は、データ・ディスク・ドライブHDD−B1bが、パリティ・ディスク・ドライブHDD−A1a、HDD−F1fの双方にコマンドを送信するが、データ・ディスク・ドライブHDD−B1bが送信するデータ・フレームにパリティ更新コマンドを含めることができる。図7(a)は、データ・ディスク・ドライブHDD−B1bが斜めパリティ・ディスク・ドライブHDD−F1fに対して送信するデータ(この言葉はコマンドを含む)を示している。データ・ディスク・ドライブHDD−B1bを始点として、斜めパリティ・ディスク・ドライブHDD−F1fは、横パリティ・ディスク・ドライブHDD−A1aよりも上流側に位置する。
図7(a)に示すように、データ・ディスク・ドライブHDD−B1bは、HDD−F1fを宛先とするパリティ更新コマンド71と対応するデータ・フレーム72を送信する。データ・フレーム72は、仮パリティ721に加えて、HDD−A1aを宛先とするパリティ更新コマンド722を含む。斜めパリティ・ディスク・ドライブHDD−F1fは、データ・フレーム72を展開してパリティ更新コマンド722を取得し、図7(b)に示すように、そのパリティ更新コマンド722と仮パリティ721とを、横パリティ・ディスク・ドライブHDD−A1aに転送する。パリティ・ディスク・ドライブHDD−F1f、HDD−A1aは、それぞれ、仮パリティ721を使用したパリティ更新を行う。
以上のように、データ・フレームがパリティ更新コマンドを含むことによって、コマンド生成を行う装置を限定し、システムの汎用性と信頼性を向上することができる。なお、データ・フレームにパリティ更新コマンドを含める手法は、RAID−6のように多重化されたパリティを有するシステムに特に有効であるが、RAID−5のように単一のパリティを使用するシステムに適用することもできる。また、コマンドはホスト・コントローラ2が生成することが好ましいが、設計によっては、データ・ディスク・ドライブHDD−B1bが二つのコマンドを生成することも考えられる。データ・フレームにパリティ更新コマンドを含める手法は、仮パリティと共に使用することが好ましいが、これらをそれぞれ別に利用することもできる。
以上、本発明を好ましい実施形態を例として説明したが、本発明が上記の実施形態に限定されるものではない。当業者であれば、上記の実施形態の各要素を、本発明の範囲において容易に変更、追加、変換することが可能である。例えば、本発明は、FC_ALのようなループ状ネットワーク以外の他のネットワークを使用するシステムに適用することができる。上述の説明においては、RAID−6システムという、二重化されたパリティ情報を有するディスク・アレイ・システムを例として説明したが、三重以上の多重化されたパリティを有するディスク・アレイ・システムにおいて適用することができる。また、上述のように、仮パリティを送信することによって、送信するデータ量を低減することが好ましい。しかし、設計によっては、仮パリティ生成の基になるデータ、即ちライト命令に係る新データと旧データとをセットにしてそのまま送信する方法考えられる。なお、本発明を他のパリティ方式に適用することができる。
1、1a、1b、1c、1d HDD、2 ホスト・コントローラ
3 FC−ALネットワーク、10 エンクロージャ、11 磁気ディスク
12 ヘッド素子部、13 アーム・エレクトロニクス、14 スピンドル・モータ
15 ボイス・コイル・モータ、16 アクチュエータ、20 回路基板
21 リード・ライト・チャネル、22 モータ・ドライバ・ユニット
23 ハードディスク・コントローラ/MPU24 RAM、25 EEPROM
3 FC−ALネットワーク、10 エンクロージャ、11 磁気ディスク
12 ヘッド素子部、13 アーム・エレクトロニクス、14 スピンドル・モータ
15 ボイス・コイル・モータ、16 アクチュエータ、20 回路基板
21 リード・ライト・チャネル、22 モータ・ドライバ・ユニット
23 ハードディスク・コントローラ/MPU24 RAM、25 EEPROM
Claims (12)
- ネットワークを介して接続された第1のデータ記憶装置と第2のデータ記憶装置とを含むシステムであって、
前記第1のデータ記憶装置は、指定するアドレスのデータの書き換えを指示する第1のコマンドと、その第1のコマンドに対応するデータ・フレームとを受信し、
前記データ・フレームは、前記第1のコマンドが指示するデータ書き換えに使用する第1のデータと、第2のコマンド及びその第2のコマンドの送信先と、を含み、
前記第1のデータ記憶装置は、前記第1のコマンドに従って前記第1のデータを使用して前記指定されたアドレスのデータを書き換え、さらに、前記第2のコマンドと、前記アドレスのデータと関連付けられているパリティの書き換えに使用する第2のデータと、を前記送信先である前記第2のデータ記憶装置に送信し、
前記第2のデータ記憶装置は、前記第1のデータ記憶装置から受信した前記第2のコマンドに従って、前記第2のデータを使用して前記アドレスのデータと関連付けられているパリティの書き換えを行う、システム。 - 前記ネットワークを介して接続された第3のデータ記憶装置をさらに含み、
前記データ・フレームは、第3のコマンド及びその第3のコマンドの送信先をさらに含み、
前記第3のデータ記憶装置は、前記第1のデータ記憶装置から送信された前記第3のコマンドと前記第2のデータを取得し、前記第3のコマンドに従って前記第2のデータを使用して前記アドレスの記録データと関連付けられているパリティの書き換えを行う、
請求項1に記載のシステム。 - 前記第1のデータ記憶装置は、前記データ・フレームから取得した前記第3のコマンドと前記第2のデータとを、前記第3のデータ記憶装置に送信し、
前記第3のデータ記憶装置は、前記第1のデータ記憶装置から送信された前記第3のコマンドと前記第2のデータとを取得して前記パリティの書き換えを行う、
請求項2に記載のシステム。 - 前記第1のデータ記憶装置は、前記第3のコマンドと前記第3のコマンドの送信先と前記第2のデータとを含むデータ・フレームを、前記第2の装置に送信し、
前記第2のデータ記憶装置は、受信した前記データ・フレーム内の前記第3のコマンドと前記第2のデータとを、前記第3のデータ記憶装置に送信し、
前記第3のデータ記憶装置は、前記第2のデータ記憶装置から送信された前記第3のコマンドと前記第2のデータとを取得して前記パリティの書き換えを行う、
請求項2に記載のシステム。 - 前記第1のデータ記憶装置は、前記第2のデータを、前記指定されたアドレスに書き込む前記第1のデータと、そのアドレス記憶されていた旧データとの排他的論理和によって生成し、
前記第2のデータ記憶装置は、前記第2のデータと予め記憶していた旧パリティとの排他的論理和によって新パリティを生成する、
請求項1に記載のシステム。 - ネットワークを介して接続された複数のデータ記憶装置を有するシステムに使用されるデータ記憶装置であって、
指定するアドレスのデータの書き換えを指示する第1のコマンドと、その第1のコマンドに対応し、前記第1のコマンドが指示するデータ書き換えに使用する第1のデータと、第2のコマンド及びその第2のコマンドの送信先とを含むデータ・フレームと、を受信する受信部と、
前記第1のコマンドに従って前記第1のデータを使用して前記指定されたアドレスのデータを書き換える制御部と、
前記第2のコマンドと、前記アドレスのデータと関連付けられているパリティの書き換えに使用する第2のデータと、を前記送信先に送信する送信部と、
を有するデータ記憶装置。 - 前記コントローラは、前記第2のデータを、前記指定されたアドレスに書き込む前記第1のデータと、そのアドレス記憶されていた旧データとの排他的論理和によって生成する、
請求項6に記載のデータ記憶装置。 - ネットワークを介して接続された複数のデータ記憶装置を含み、各データ記憶装置の単位データ・ブロックを異なる2方向においてそれぞれ排他的論理和演算することによって二重のパリティを生成し保存するシステムであって、
ライト・コマンドと新データとを取得し、旧データを前記新データで書き換え、前記新データと前記旧データとの排他的論理和演算を行って仮パリティを生成し、前記仮パリティを含む一つのデータ・フレームを前記旧データが対応するパリティを記憶する二つのデータ記憶装置に向けて送信する、第1のデータ記憶装置と、
前記データ・フレームを受信し、そのデータ・フレームに含まれる前記仮パリティを取得し、前記旧データに対応する第1の旧パリティと前記仮パリティとの排他的論理和演算を行って第1の新パリティを生成し、前記第1の新パリティを保存する第2のデータ記憶装置と、
前記データ・フレームを受信し、そのデータ・フレームに含まれる前記仮パリティを取得し、前記旧データに対応する第2の旧パリティと前記仮パリティとの排他的論理和演算を行って第2の新パリティを生成し、その第2の新パリティを保存する第3のデータ記憶装置と、
を有するシステム。 - 前記第1のデータ記憶装置は、前記新データと第2のコマンドとその第2のコマンドの送信先とを含むデータ・フレームを受信し、
前記第2のデータ記憶装置は、第2のコマンドの送信先であり、前記第1のデータ記憶装置から転送された前記第2のコマンドに従って、前記新パリティの生成及び保存を実行する、
請求項8に記載のシステム。 - 前記第1のデータ記憶装置が受信する前記データ・フレームは、第3のコマンドとその第3のコマンドの送信先とをさらに含み、
前記第3のデータ記憶装置は、第3のコマンドの送信先であり、前記第1のデータ記憶装置から転送された前記第3のコマンドに従って、前記新パリティの生成及び保存を実行する、
請求項9に記載のシステム。 - ネットワークを介して接続された複数のデータ記憶装置を含み、各データ記憶装置の単位データ・ブロックを異なる2方向においてそれぞれ排他的論理和演算することによって二重のパリティを生成し保存するシステムに使用されるデータ記憶装置であって、
ライト・コマンドと新データとを受信する受信部と、
旧データを前記新データで書き換え、前記新データと前記旧データとの排他的論理和演算を行って仮パリティを生成する制御部と、
前記仮パリティを含む一つのデータ・フレームを前記旧データが対応するパリティを記憶する二つのデータ記憶装置に向けて送信する送信部と、
を有するデータ記憶装置。 - 前記受信部は、前記新データと第2のコマンドとその第2のコマンドの送信先とを含むデータ・フレームを受信し、
前記送信部は前記第2のコマンドを前記送信先に送信して、前記仮パリティによるパリティ更新を指示する、
請求項11に記載のデータ記憶装置。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006274307A JP2008097053A (ja) | 2006-10-05 | 2006-10-05 | ネットワークを介して接続された複数のデータ記憶装置を含むシステム及びそれに使用されるデータ記憶装置 |
US11/906,612 US8078921B2 (en) | 2006-10-05 | 2007-10-02 | System including a plurality of data storage devices connected via network and data storage device used therefor |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006274307A JP2008097053A (ja) | 2006-10-05 | 2006-10-05 | ネットワークを介して接続された複数のデータ記憶装置を含むシステム及びそれに使用されるデータ記憶装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2008097053A true JP2008097053A (ja) | 2008-04-24 |
Family
ID=39331832
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2006274307A Pending JP2008097053A (ja) | 2006-10-05 | 2006-10-05 | ネットワークを介して接続された複数のデータ記憶装置を含むシステム及びそれに使用されるデータ記憶装置 |
Country Status (2)
Country | Link |
---|---|
US (1) | US8078921B2 (ja) |
JP (1) | JP2008097053A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011134307A (ja) * | 2009-11-25 | 2011-07-07 | Panasonic Corp | 半導体記録装置及び半導体記録装置の制御方法 |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8639877B2 (en) * | 2009-06-30 | 2014-01-28 | International Business Machines Corporation | Wear leveling of solid state disks distributed in a plurality of redundant array of independent disk ranks |
US8234520B2 (en) * | 2009-09-16 | 2012-07-31 | International Business Machines Corporation | Wear leveling of solid state disks based on usage information of data and parity received from a raid controller |
US10564856B2 (en) * | 2017-07-06 | 2020-02-18 | Alibaba Group Holding Limited | Method and system for mitigating write amplification in a phase change memory-based storage device |
CN115277286B (zh) * | 2022-06-10 | 2023-12-12 | 智己汽车科技有限公司 | 一种can总线通信方法 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3661205B2 (ja) | 1994-09-09 | 2005-06-15 | 株式会社日立製作所 | ディスクアレイシステムおよびディスクアレイシステムのパリティデータの生成方法 |
JPH10241128A (ja) * | 1997-02-27 | 1998-09-11 | Toshiba Corp | 磁気ディスク装置及びヘッド故障検出方法 |
JP2001043031A (ja) * | 1999-07-30 | 2001-02-16 | Toshiba Corp | 分散パリティ生成機能を備えたディスクアレイ制御装置 |
JP2001159958A (ja) | 1999-12-03 | 2001-06-12 | Hitachi Ltd | ディスクアレイ装置におけるパリティデータ書き込み方式 |
US8402346B2 (en) * | 2001-12-28 | 2013-03-19 | Netapp, Inc. | N-way parity technique for enabling recovery from up to N storage device failures |
US7188212B2 (en) * | 2004-05-06 | 2007-03-06 | International Business Machines Corporation | Method and system for storing data in an array of storage devices with additional and autonomic protection |
US7093157B2 (en) * | 2004-06-17 | 2006-08-15 | International Business Machines Corporation | Method and system for autonomic protection against data strip loss |
US8286029B2 (en) * | 2006-12-21 | 2012-10-09 | Emc Corporation | Systems and methods for managing unavailable storage devices |
-
2006
- 2006-10-05 JP JP2006274307A patent/JP2008097053A/ja active Pending
-
2007
- 2007-10-02 US US11/906,612 patent/US8078921B2/en not_active Expired - Fee Related
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011134307A (ja) * | 2009-11-25 | 2011-07-07 | Panasonic Corp | 半導体記録装置及び半導体記録装置の制御方法 |
Also Published As
Publication number | Publication date |
---|---|
US20080104444A1 (en) | 2008-05-01 |
US8078921B2 (en) | 2011-12-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20130151771A1 (en) | Disk array device, control device and data write method | |
JP4815825B2 (ja) | ディスクアレイ装置及びその再構築方法 | |
US7702954B2 (en) | Data storage apparatus having error recovery capability | |
US10140180B1 (en) | Segment-based outer code recovery | |
US8122322B2 (en) | System and method of storing reliability data | |
JP2008204041A (ja) | ストレージ装置及びデータ配置制御方法 | |
JP2008084270A (ja) | データ比較機能を有するストレージシステム | |
JP2006134064A (ja) | 記憶メディアへの書込みエラーを検出する記憶制御装置及び方法 | |
WO2002091111A2 (en) | Parity mirroring between controllers in an active-active controller pair | |
JP2006079380A (ja) | ディスクアレイ装置 | |
JP4114877B2 (ja) | 不正データを検出するための装置、方法、及びプログラム | |
US6928515B2 (en) | Integrated sector format-error correction code system and method for efficient writing in a disk array system | |
JP2006195851A (ja) | ストレージシステム | |
JP2008097053A (ja) | ネットワークを介して接続された複数のデータ記憶装置を含むシステム及びそれに使用されるデータ記憶装置 | |
US20050086567A1 (en) | Method and apparatus to improve magnetic disc drive reliability using excess un-utilized capacity | |
CN111344788B (zh) | 基于设备群体数据完整性共享的系统级纠错编码分配 | |
JP2005107838A (ja) | ディスクアレイコントローラ及びログ情報記録方法 | |
CN105808386A (zh) | 硬盘数据恢复校验方法 | |
US20080091971A1 (en) | Stored data processing apparatus, storage apparatus, and stored data processing program | |
US9946599B1 (en) | Systems and methods for enhanced data access to a hard disk drive with caching | |
US20100064198A1 (en) | Stored data processing apparatus, storage apparatus, medium storing stored data processing program, and stored data processing method | |
JP2007052509A (ja) | ディスクアレイ装置における媒体エラーリカバリ装置、方法、及びプログラム | |
CN1472629A (zh) | 用于重写在磁盘驱动器中执行的程序的方法和装置 | |
JP2011233186A (ja) | ディスク記憶装置及びデータ復元方法 | |
JP2006269027A (ja) | データ記憶装置 |