JP5170010B2 - ディスクアレイ装置、ディスクアレイ装置制御方法、及びディスクアレイ装置用プログラム - Google Patents
ディスクアレイ装置、ディスクアレイ装置制御方法、及びディスクアレイ装置用プログラム Download PDFInfo
- Publication number
- JP5170010B2 JP5170010B2 JP2009150110A JP2009150110A JP5170010B2 JP 5170010 B2 JP5170010 B2 JP 5170010B2 JP 2009150110 A JP2009150110 A JP 2009150110A JP 2009150110 A JP2009150110 A JP 2009150110A JP 5170010 B2 JP5170010 B2 JP 5170010B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- redundant
- host
- code
- magnetic disk
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims description 29
- 125000004122 cyclic group Chemical group 0.000 claims description 13
- 238000011084 recovery Methods 0.000 claims description 12
- 238000004364 calculation method Methods 0.000 description 12
- 239000011159 matrix material Substances 0.000 description 8
- 206010009944 Colon cancer Diseases 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 230000000694 effects Effects 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/09—Error detection only, e.g. using cyclic redundancy check [CRC] codes or single parity bit
- H03M13/091—Parallel or block-wise CRC computation
-
- 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
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/13—Linear codes
- H03M13/134—Non-binary linear block codes not provided for otherwise
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/61—Aspects and characteristics of methods and arrangements for error correction or error detection, not provided for otherwise
- H03M13/615—Use of computational or mathematical techniques
- H03M13/616—Matrix operations, especially for generator matrices or check matrices, e.g. column or row permutations
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/65—Purpose and implementation aspects
- H03M13/6502—Reduction of hardware complexity or efficient processing
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Probability & Statistics with Applications (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Analysis (AREA)
- Computing Systems (AREA)
- Computational Mathematics (AREA)
- Mathematical Optimization (AREA)
- Mathematical Physics (AREA)
- Pure & Applied Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Quality & Reliability (AREA)
- Algebra (AREA)
- Signal Processing For Digital Recording And Reproducing (AREA)
Description
本発明の目的は、上記課題である、冗長データについての冗長符号(CRC)の計算に時間を要するという問題を解決したディスクアレイ装置、ディスクアレイ装置制御方法、及びディスクアレイ装置用プログラムを提供することにある。
次に、本発明の第一の実施の形態について図面を参照して詳細に説明する。
次に、本発明の第二の実施の形態について図面を参照して詳細に説明する。
セクタ121a1から読み出したA0について計算したCRCとセクタ121bMから読み出したCa0とが不一致の場合、RAIDコントローラ130は、磁気ディスク120a、120bを磁気ディスク120c、120dから復旧する。
110 ホストインタフェース
120 磁気ディスク
121 セクタ
130 RAIDコントローラ
Claims (15)
- 複数の磁気ディスクと、
上位装置から受信したホストデータについて冗長データを生成し、前記ホストデータと前記冗長データについて巡回符号による冗長符号を生成し、前記ホストデータと前記冗長データとを前記磁気ディスクに書き込むRAIDコントローラを備え、
前記RAIDコントローラは、
前記冗長データを生成するためのガロア拡大体の原始多項式と、前記冗長符号の生成多項式に同一の多項式を用いる
ことを特徴とするディスクアレイ装置。 - 前記RAIDコントローラは、
前記ホストデータまたは前記冗長データと当該ホストデータまたは当該冗長データについて生成された前記冗長符号とを異なる2つの前記磁気ディスクに渡り、かつ、当該冗長符号が当該2つの磁気ディスクのいずれかに収まるように書き込む
ことを特徴とする請求項1記載のディスクアレイ装置。 - 前記RAIDコントローラは、
前記磁気ディスクの書き込み単位毎に、前記ホストデータまたは前記冗長データについて前記冗長符号を生成し、
前記磁気ディスクの書き込み単位毎に、前記ホストデータまたは前記冗長データと当該ホストデータまたは当該冗長データについて生成された前記冗長符号とを異なる前記磁気ディスクに書き込む
ことを特徴とする請求項2記載のディスクアレイ装置。 - 前記RAIDコントローラは、
複数のホストデータについて複数の冗長データを生成し、当該複数のホストデータのそれぞれと当該複数の冗長データのうちの対応するものとを異なる前記磁気ディスクに書き込み、
前記磁気ディスクから読み出した前記ホストデータまたは前記冗長データについて計算した前記冗長符号と前記磁気ディスクから読み出した当該ホストデータまたは当該冗長データの前記冗長符号とが不一致の場合、
当該冗長符号が不一致となったホストデータまたは冗長データが書き込まれていた前記磁気ディスク、及び、当該冗長符号が不一致となったホストデータまたは冗長データの前記冗長符号が書き込まれた前記磁気ディスク上の前記ホストデータ及び前記冗長データを他の前記磁気ディスク上の前記ホストデータ及び前記冗長データを基に復旧する
ことを特徴とする請求項2または3に記載のディスクアレイ装置。 - 前記RAIDコントローラは、
前記冗長符号が不一致となったホストデータまたは冗長データが書き込まれていた前記磁気ディスク、及び、当該冗長符号が不一致となったホストデータまたは冗長データの前記冗長符号が書き込まれた前記磁気ディスク上の前記冗長符号を再生成する
ことを特徴とする請求項4に記載のディスクアレイ装置。 - 上位装置から受信したホストデータについて冗長データを生成する冗長データ生成ステップと、
前記ホストデータと前記冗長データについて巡回符号による冗長符号を生成する冗長符号生成ステップと、
前記ホストデータと前記冗長データとを複数の磁気ディスクに書き込む書き込みステップと
を含み、
前記冗長データ生成ステップにおける前記冗長データを生成するためのガロア拡大体の原始多項式と、前記冗長符号生成ステップにおける前記冗長符号の生成多項式に同一の多項式を用いる
ことを特徴とするディスクアレイ制御方法。 - 前記書き込みステップは、前記ホストデータまたは前記冗長データと当該ホストデータまたは当該冗長データについて生成された前記冗長符号とを異なる2つの前記磁気ディスクに渡り、かつ、当該冗長符号が当該2つの磁気ディスクのいずれかに収まるように書き込む
ことを特徴とする請求項6記載のディスクアレイ方法。 - 前記冗長データ生成ステップは、前記磁気ディスクの書き込み単位毎に、前記ホストデータまたは前記冗長データについて前記冗長符号を生成し、
前記書き込みステップは、前記磁気ディスクの書き込み単位毎に、前記ホストデータまたは前記冗長データと当該ホストデータまたは当該冗長データについて生成された前記冗長符号とを異なる前記磁気ディスクに書き込む
ことを特徴とする請求項7記載のディスクアレイ制御方法。 - 前記冗長データ生成ステップは、複数のホストデータについて複数の冗長データを生成し、
前記書き込みステップは、当該複数のホストデータのそれぞれと当該複数の冗長データのうちの対応するものとを異なる前記磁気ディスクに書き込み、
さらに、前記磁気ディスクから読み出した前記ホストデータまたは前記冗長データについて計算した前記冗長符号と前記磁気ディスクから読み出した当該ホストデータまたは当該冗長データの前記冗長符号とが不一致の場合、当該冗長符号が不一致となったホストデータまたは冗長データが書き込まれていた前記磁気ディスク、及び、当該冗長符号が不一致となったホストデータまたは冗長データの前記冗長符号が書き込まれた前記磁気ディスク上の前記ホストデータ及び前記冗長データを他の前記磁気ディスク上の前記ホストデータ及び前記冗長データを基に復旧する復旧ステップを含む
ことを特徴とする請求項7または8に記載のディスクアレイ制御方法。 - 前記復旧ステップは、さらに、前記冗長符号が不一致となったホストデータまたは冗長データが書き込まれていた前記磁気ディスク、及び、当該冗長符号が不一致となったホストデータまたは冗長データの前記冗長符号が書き込まれた前記磁気ディスク上の前記冗長符号を再生成する
ことを特徴とする請求項9に記載のディスクアレイ制御方法。 - コンピュータを、
上位装置から受信したホストデータについて冗長データを生成し、前記ホストデータと前記冗長データについて巡回符号による冗長符号を生成し、前記ホストデータと前記冗長データとを複数の磁気ディスクに書き込むRAIDコントローラとして動作させ、
前記RAIDコントローラは、
前記冗長データを生成するためのガロア拡大体の原始多項式と、前記冗長符号の生成多項式に同一の多項式を用いる
ことを特徴とするディスクアレイ装置用プログラム。 - 前記RAIDコントローラは、
前記ホストデータまたは前記冗長データと当該ホストデータまたは当該冗長データについて生成された前記冗長符号とを異なる2つの前記磁気ディスクに渡り、かつ、当該冗長符号が当該2つの磁気ディスクのいずれかに収まるように書き込む
ことを特徴とする請求項11記載のディスクアレイ装置用プログラム。 - 前記RAIDコントローラは、
前記磁気ディスクの書き込み単位毎に、前記ホストデータまたは前記冗長データについて前記冗長符号を生成し、
前記磁気ディスクの書き込み単位毎に、前記ホストデータまたは前記冗長データと当該ホストデータまたは当該冗長データについて生成された前記冗長符号とを異なる前記磁気ディスクに書き込む
ことを特徴とする請求項12記載のディスクアレイ装置用プログラム。 - 前記RAIDコントローラは、
複数のホストデータについて複数の冗長データを生成し、当該複数のホストデータのそれぞれと当該複数の冗長データのうちの対応するものとを異なる前記磁気ディスクに書き込み、
前記磁気ディスクから読み出した前記ホストデータまたは前記冗長データについて計算した前記冗長符号と前記磁気ディスクから読み出した当該ホストデータまたは当該冗長データの前記冗長符号とが不一致の場合、
当該冗長符号が不一致となったホストデータまたは冗長データが書き込まれていた前記磁気ディスク、及び、当該冗長符号が不一致となったホストデータまたは冗長データの前記冗長符号が書き込まれた前記磁気ディスク上の前記ホストデータ及び前記冗長データを他の前記磁気ディスク上の前記ホストデータ及び前記冗長データを基に復旧する
ことを特徴とする請求項12または13に記載のディスクアレイ装置用プログラム。 - 前記RAIDコントローラは、
前記冗長符号が不一致となったホストデータまたは冗長データが書き込まれていた前記磁気ディスク、及び、当該冗長符号が不一致となったホストデータまたは冗長データの前記冗長符号が書き込まれた前記磁気ディスク上の前記冗長符号を再生成する
ことを特徴とする請求項14に記載のディスクアレイ装置用プログラム。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009150110A JP5170010B2 (ja) | 2009-06-24 | 2009-06-24 | ディスクアレイ装置、ディスクアレイ装置制御方法、及びディスクアレイ装置用プログラム |
US12/816,444 US8443264B2 (en) | 2009-06-24 | 2010-06-16 | Disk array apparatus, a disk array apparatus control method and a program for a disk array apparatus |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009150110A JP5170010B2 (ja) | 2009-06-24 | 2009-06-24 | ディスクアレイ装置、ディスクアレイ装置制御方法、及びディスクアレイ装置用プログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2011008426A JP2011008426A (ja) | 2011-01-13 |
JP5170010B2 true JP5170010B2 (ja) | 2013-03-27 |
Family
ID=43382130
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2009150110A Active JP5170010B2 (ja) | 2009-06-24 | 2009-06-24 | ディスクアレイ装置、ディスクアレイ装置制御方法、及びディスクアレイ装置用プログラム |
Country Status (2)
Country | Link |
---|---|
US (1) | US8443264B2 (ja) |
JP (1) | JP5170010B2 (ja) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5440884B2 (ja) | 2011-09-29 | 2014-03-12 | 日本電気株式会社 | ディスクアレイ装置およびディスクアレイ制御用プログラム |
US9053809B2 (en) * | 2011-11-09 | 2015-06-09 | Apple Inc. | Data protection from write failures in nonvolatile memory |
US10481803B2 (en) | 2017-06-16 | 2019-11-19 | Western Digital Technologies, Inc. | Low write overhead consensus protocol for distributed storage |
US10289489B2 (en) * | 2017-07-11 | 2019-05-14 | Western Digital Technologies, Inc. | Update efficient consensus protocols for erasure coded data stores |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5499253A (en) * | 1994-01-05 | 1996-03-12 | Digital Equipment Corporation | System and method for calculating RAID 6 check codes |
US5996105A (en) * | 1997-11-14 | 1999-11-30 | Cirrus Logic, Inc. | ECC system employing a data buffer for storing codeword data and a syndrome buffer for storing error syndromes |
US6732317B1 (en) * | 2000-10-23 | 2004-05-04 | Sun Microsystems, Inc. | Apparatus and method for applying multiple CRC generators to CRC calculation |
US6934904B2 (en) * | 2001-04-30 | 2005-08-23 | Sun Microsystems, Inc. | Data integrity error handling in a redundant storage array |
US6748488B2 (en) * | 2001-09-28 | 2004-06-08 | Sun Microsystems, Inc. | Storage array having multiple erasure correction and sub-stripe writing |
JP2006107311A (ja) | 2004-10-08 | 2006-04-20 | Hitachi Ltd | ディスクアレイ装置およびその制御方法 |
JP4634157B2 (ja) * | 2005-01-17 | 2011-02-16 | 株式会社日立製作所 | ストレージシステム |
US7539924B1 (en) * | 2005-11-15 | 2009-05-26 | Western Digital Technologies, Inc. | Disk drive implementing data path protection by encoding large host blocks into sub blocks |
US7647544B1 (en) * | 2005-11-22 | 2010-01-12 | Western Digital Technologies, Inc. | Disk drive implementing data path protection without writing the error detection code data to the disk |
US7661058B1 (en) * | 2006-04-17 | 2010-02-09 | Marvell International Ltd. | Efficient raid ECC controller for raid systems |
JP2007317271A (ja) | 2006-05-24 | 2007-12-06 | Hitachi Global Storage Technologies Netherlands Bv | データ記憶装置及びそのリード処理におけるエラー処理方法 |
JP4469822B2 (ja) * | 2006-09-15 | 2010-06-02 | 株式会社東芝 | ディスクアレイ装置およびディスクアレイ装置のデータ管理方法 |
-
2009
- 2009-06-24 JP JP2009150110A patent/JP5170010B2/ja active Active
-
2010
- 2010-06-16 US US12/816,444 patent/US8443264B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
US20100332948A1 (en) | 2010-12-30 |
US8443264B2 (en) | 2013-05-14 |
JP2011008426A (ja) | 2011-01-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9417963B2 (en) | Enabling efficient recovery from multiple failures together with one latent error in a storage array | |
JP4668970B2 (ja) | フォールトトレラントデータストレージシステムにおけるブロックレベルのデータ破損の検出および訂正 | |
US7529970B2 (en) | System and method for improving the performance of operations requiring parity reads in a storage array system | |
JP4940322B2 (ja) | 半導体メモリ映像蓄積再生装置及びデータ書込み/読出し方法 | |
US9075745B1 (en) | System and method for adding a drive to a storage system having multiple drives | |
JP4905161B2 (ja) | Raid装置及びガロア体を用いたデータ復元装置 | |
US7836379B1 (en) | Method for computing buffer ECC | |
US7823011B2 (en) | Intra-disk coding scheme for data-storage systems | |
US8234445B2 (en) | RAID data protection architecture using data protection information | |
US7549112B2 (en) | Unique response for puncture drive media error | |
CN105808170B (zh) | 一种能够修复单磁盘错误的raid6编码方法 | |
CN109358980B (zh) | 一种对数据更新和单磁盘错误修复友好的raid6编码方法 | |
JP5170010B2 (ja) | ディスクアレイ装置、ディスクアレイ装置制御方法、及びディスクアレイ装置用プログラム | |
US8489976B2 (en) | Storage controlling device and storage controlling method | |
JP4469822B2 (ja) | ディスクアレイ装置およびディスクアレイ装置のデータ管理方法 | |
US10108495B2 (en) | Method and device for improving the reliability of data storage in a hard disk comprising a plurality of platters | |
US20060047993A1 (en) | Apparatus, system, and method for error checking and recovery of transmitted data in a SCSI enviroment | |
US8214589B2 (en) | Data storage system redundancy scheme verification | |
JP5278115B2 (ja) | 冗長符号生成方法及び装置、データ復元方法及び装置、並びにraid記憶装置 | |
JP5440884B2 (ja) | ディスクアレイ装置およびディスクアレイ制御用プログラム | |
JP3345997B2 (ja) | 誤り訂正符号化復号装置および誤り訂正符号化復号装置を備えたディスクアレイシステムコントローラ | |
JP2013205853A (ja) | フラッシュメモリディスク装置、フラッシュメモリディスク装置におけるデータ記憶制御方法およびプログラム | |
US20220027060A1 (en) | Disk array device, disk array control device, and disk array control method | |
JP2010049394A (ja) | 磁気ディスクの書き込み障害の検出と回復を行うディスクアレイシステム、方法およびプログラム | |
JPH05224967A (ja) | 誤り訂正装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
RD01 | Notification of change of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7421 Effective date: 20110706 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20120518 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20121113 |
|
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: 20121204 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20121217 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5170010 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313113 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313113 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313113 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |