JP2007179297A - Raid5のパリティチェック強化方法、装置及びプログラム - Google Patents

Raid5のパリティチェック強化方法、装置及びプログラム Download PDF

Info

Publication number
JP2007179297A
JP2007179297A JP2005376838A JP2005376838A JP2007179297A JP 2007179297 A JP2007179297 A JP 2007179297A JP 2005376838 A JP2005376838 A JP 2005376838A JP 2005376838 A JP2005376838 A JP 2005376838A JP 2007179297 A JP2007179297 A JP 2007179297A
Authority
JP
Japan
Prior art keywords
data
disk
parity
strip
block
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
Application number
JP2005376838A
Other languages
English (en)
Inventor
Shinya Mochizuki
信哉 望月
Mikio Ito
実希夫 伊藤
Hidejiro Ookurotani
秀治郎 大黒谷
Kazuhiko Ikeuchi
和彦 池内
秀夫 ▲高▼橋
Hideo Takahashi
Yoshihito Konta
與志仁 紺田
Yasutake Sato
靖丈 佐藤
Hiroaki Ochi
弘昭 越智
Tsukasa Makino
司 牧野
Norihide Kubota
典秀 久保田
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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2005376838A priority Critical patent/JP2007179297A/ja
Priority to US11/528,697 priority patent/US7574561B2/en
Publication of JP2007179297A publication Critical patent/JP2007179297A/ja
Pending legal-status Critical Current

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
    • G06F2211/00Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
    • G06F2211/10Indexing scheme relating to G06F11/10
    • G06F2211/1002Indexing scheme relating to G06F11/1076
    • G06F2211/1069Phantom write, i.e. write were nothing is actually written on the disk of a RAID system

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

【課題】本発明はRAID5のパリティチェック強化方法、装置及びプログラムに関し、パリティチェックを強化することを目的としている。
【解決手段】RAID5(N+1)のデータ構成において、パリティを求めるための演算を行なう場合において、Nが偶数の場合には、仮想的なデータストリップを1個加え、更にこの仮想的なデータストリップのデータをデータ領域の所定の部分が特定の値になるように設定するように構成される。この結果、RAID5構成のデータ処理システムにおいて、パリティチェックを強化することができる。
【選択図】図5

Description

本発明はRAID5のパリティチェック強化方法、装置及びプログラムに関する。
ディスク(Disk)へのI/O単位であるブロック(Block)毎にチェックコードを設け、データ保証を行なうようになっている。図6は1ブロックのフォーマット例を示す図である。データ(Data)512バイト(Byte)についてブロックチェックコード(Block Check Code:BCC)8バイトを付加し、1ブロック520バイトとしている。BCCの内容としては、ブロックのデータ512バイトの値から演算により求まるブロックCRCと、ブロックのアドレスから生成されるブロックIDとがある。図7はBCCの構成例を示している。図より明らかなように、ブロックCRC部分と、ブロックID部分から構成されている。ブロックCRC部分が例えば6バイト、ブロックID部分が例えば2バイトから構成されている。
データを記憶するディスクの構成としては、例えばRAID1やRAID5が用いられる。RAID1は、図8に示すようにディスク0とディスク1が同一内容を記憶している。図9はRAID5の説明図である。データを記憶するディスク0,ディスク1,ディスク2と、パリティデータを記憶するディスク3とがある。ここで、データを記憶するディスクの数をNとして、パリティディスクと合わせて(N+1)という表現を用いる。図9に示す例では、RAID(N+1)という形式で表現する。図9に示す例は、N=3の場合である。
図10はディスクに格納されるアドレスとデータの関係を示す図である。アドレスは0から1ずつ更新されていくが、このアドレスに対応する領域に記憶されるデータは、例えば図に示すように、16進で0,4,8,1,…という具合に格納されていく。この16進を2進で示すとその下に示すような値となる。図11はストリップとストライプの関係を示す図である。図のアドレス00H〜ffH(Hは16進を示す。以下同じ)までが1ストリップのデータ領域であり、次のアドレス100H〜1ffHが次の1ストリップを示す。このような複数のストリップで1個のストライプを構成している。
RAID5のある1ストライプにおいて、データストリップでは、データのアドレスに対応したブロックIDが付けられ、ストリップ内で図11に示すようにシーケンシャルな値となる。例えば、アドレス00で示される領域に図6に示す1ブロックデータが記憶され、アドレス01で示される領域に1ブロックデータが記憶される。以下、同様である。
一方で、パリティストリップの場合には、そのBCCもデータストリップのBCCをXORすることにより、生成される。図12はパリティストリップの生成法の説明図である。ディスク0〜ディスク2までのそれぞれのブロックIDのXORをとり、その値をパリティディスクに格納する。図13はXOR演算の模式的な説明図である。例えば、Disk0が“00”、Disk1が“01”、Disk2が“10”であったものとすると、その演算は以下のようにして行われる。
先ず、Disk0の上位ビット“0”と、Disk1の上位ビット“0”とのXORがとられる。その結果は“0”である。次に、Disk0の下位ビット“0”とDisk1の下位ビット“1”とのXORがとられる。その結果は“1”である。次に、このXORの結果である“01”とDisk2のビット“10”とのXORが同様にしてとられる。この結果は、“11”となる。この“11”がパリティDiskに記憶される。
RAID(N+1)において、Nが奇数の場合には、パリティブロックIDはストリップ内でシーケンシャルな値となる。図14は、Nが奇数時のパリティブロックIDの算出方法の説明図である。ここでは、N=3の場合を示す。最初のDisk0のアドレス“000”とDisk1のアドレス“100”とのXORをとった結果は、“100”となる。この結果“100”とDisk2のアドレス“200”とのXORをとった結果は、“300”となる。
この演算について、説明する。先頭のデータは“1”と“2”である。“1”=0001,“2”=0010であるので、各ビット毎にXORをとると“0011”となるので、16進で表したXORの結果は、“3”となる。“00”と“00”のXORは“00”である。従って、パリティDisk3の最初の番地は“300”となる。次に、Disk0とDisk1との最後のアドレス“0ff”と“1ff”についてXORをとるものとする。図の“0”と“1”のXORは“1”、残りの“ff”と“ff”のXORは“00”となるので、“0ff”と“1ff”のXORの結果は、“100”となる。
この“100”と次のDisk2の“2ff”とのXORをとると、その結果は、同様な演算により“3ff”となる。以上より、Nが奇数の場合のパリティのブロックIDは、“300”から“3ff”までシーケンシャルな値となる。
一方、Nが偶数の場合には、パリティブロックIDはストリップ内で一定値となる。例えば、図13でDiskがDisk0とDisk1の2個であったものとする。Disk0の最初のアドレスは“000”、Disk1のアドレスは“100”であるので、そのXOR演算結果は“100”となる。Disk0の最後のアドレスは“0ff”、Disk1の最後のアドレスは“1ff”であるので、そのXOR演算結果は“100”となる。演算結果が最初のアドレスの場合と同じ“100”となり、一定値となっていることが分かる。
ブロックIDは、データの位置を示すものであるため、ストリップ内でシーケンシャルな値をとる必要がある。Nが奇数の場合には、前述したようにシーケンシャルな値をとっている。これに対して、Nが偶数の場合には、ブロックIDはアドレスの値に拘わらず一定値となる。
このため、Nが偶数の場合には、仮想的なデータストリップを用意してXORを奇数で行なうようにする。この仮想的なデータストリップをファントム(Phantom)ストリップという。図15はファントムDiskを付加した場合を示す図である。ファントムDiskのアドレスデータが000〜0ffであるものとする。このファントムDiskのアドレスの最初のアドレス“000”とDisk0の最初のアドレス“000”のXOR演算結果は“000”となる。この“000”とDisk1の最初のデータ“100”とのXOR演算結果は、“100”となる。
次に、ファントムDiskの最後のデータ“0ff”とDisk0の最後のデータ“0ff”のXOR演算結果は“000”となる。この“000”とDisk1の最後のデータ“1ff”との演算結果は、“1ff”となり、パリティDiskのブロックIDのアドレスはシーケンシャルなものとなる。このように、Nが偶数の場合でも、ファントムDiskを設けることにより、ブロックIDをNによらずストリップ内でシーケンシャルな値とすることができる。一方、このファントムストリップの各ブロックについてのデータ512バイトをオール0とすることで、この部分のXOR演算を不要とすることができる。この場合、パリティ生成にかかる計算コスト増は、BCC8バイト分のXORを1回加えた分に抑えられる。ブロックCRCについてはデータ512バイトをオール0に対応した値、ブロックIDについてはストライプ先頭データストリップの値等を用いる。
このように、RAID構成メンバディスク数によらず、パリティストリップについてもブロックIDをシーケンシャルな値とすることで、データストリップと同等なエラー検出を行える。
従来のこの種の技術としては、ディスクアレイ装置における磁気ディスク装置単位で行われるデータチェック(CRC、パリティ)で検出されず、論理障害を起こす原因となった磁気ディスク装置を特定する技術が知られている(例えば引用文献1参照)。また、エラー検出能力の低いディスク制御部で、誤って旧データが読まれている障害を検出するとともに、付加チェックコードによってデータのエラーをも検出できるようにした技術が知られている(例えば引用文献2参照)。
特開平10−171608号公報(段落0014〜0030、図1、図3) 特開2003−36146号公報(段落0018〜0035、図1、図2、図3)
ブロックCRCの方式で、データ512バイトオール0に対してブロックBCCもオール0となる算出方法がある。他の0以外となるデータ/CRCの組み合わせに比べて、データとCRCいずれもオール0となる組み合わせでは、一般的にメモリ等を0で初期化することを考慮すると、エラー検出精度が劣ると考えられる。
データストリップについては、初期化フォーマットによるデータ/CRCが0の組み合わせが想定される。また、初期化フォーマットが0以外であっても、オール1の場合やストリップサイズがフォーマットパターンと一致していた場合等、全ストリップで同じデータの値となることが想定される。この場合、RAID5構成メンバディスク数が奇数の場合、パリティ算出は偶数XORとなり、データ/CRCが0の組み合わせとなり、エラー検出精度が劣ると考えられる。
本発明はこのような課題に鑑みてなされたものであって、エラー検出精度を向上させることができるRAID5のパリティチェック強化方法及びプログラムを提供することを目的としている。
(1)請求項1記載の発明は、RAID5(N+1)のデータ構成において、パリティを求めるための演算を行なう場合において、Nが偶数の場合には、仮想的なデータストリップを1個加え、更にこの仮想的なデータストリップのデータをデータ領域の所定の部分が特定の値になるように設定することを特徴とする。
(2)請求項2記載の発明は、RAID5(N+1)のデータ構成において、パリティを求めるための演算を行なう場合において、Nが偶数の場合には、仮想的なデータストリップを1個加える工程と、更にこの仮想的なデータストリップのデータをデータ領域の所定の部分が特定の値になるように設定する工程とをコンピュータで実行することを特徴とする。
(3)請求項3記載の発明は、RAID5(N+1)のデータ構成を有する記憶装置において、パリティを求めるための演算を行なう場合において、Nが偶数の場合には、仮想的なデータストリップを1個加える手段と、更にこの仮想的なデータストリップのデータをデータ領域の所定の部分が特定の値になるように設定する手段と、を有することを特徴とする。
(1)請求項1記載の発明によれば、RAID5のパリティチェック強化方法を提供することができる。
(2)請求項2記載の発明によれば、RAID5のパリティチェック強化プログラムを提供することができる。
(3)請求項3記載の発明によれば、RAID5のパリティチェック強化装置を提供することができる。
以下、図面を参照して本発明の実施の形態例を詳細に説明する。
図1はファントムブロックのデータフォーマットを示す図である。ファントムブロックで、512バイトのデータ領域の特定の領域を特定のデータに設定している。図中0Xは16進を示している。図では、512バイトのデータ部分の特定の領域をfに設定している状態を示している。具体的には、値の小さい方の領域をffffffffに設定している。このように、ファントムブロックのデータ部分の特定の領域を特定のデータに設定することにより、CRC演算の結果がオール0でないようにすることができ、この結果RAID5のパリティチェック強化方法を提供することができる。
図2はファントムなしにおける0フォーマット時各ストリップのブロックを示す図である。ディスクが#0〜#3までの4個設けられており、ディスク#3がパリティディスクとなっている。いずれのディスクも、CRCとデータがオール0である。このようなデータの場合、データのCRCもデータも0になり、パリティチェック機能が強力ではない。そこで、図3に示すように、ファントムディスクを設け、そのCRC部分とデータ部分に特定領域が特定の値になるような設定を行なう。このようにすれば、データのCRC演算部の結果もオール0とはならず、またブロックID部分のXORはシーケンシャルな値をとることができ、RAID5のパリティチェックを強化することができる。
図4は本発明の演算方法の説明図である。図に示す例は、ファントム、データ0、データ1、パリティからなる場合を示す。ファントムデータ、データ0、データ1は、何れもデータとCRCとブロックIDから構成されている。ファントムのデータ部は、特定の領域が特定のデータとなっている。即ち、データ部はオール0でもオール1でもないデータとなる。CRCは、データ部分のCRC演算により求まった値である。ブロックIDは、図14に示される演算が実行され、パリティ部のC部に記憶される。
データ0とデータ1のデータ部分は、CRC演算が実行され、CRC部分にその結果が記憶される。また、各データのデータ部分は、XOR演算が実行される。即ち、ファントムデータのデータ部分とデータ0のデータ部分のXORが実行される。そして、このXORデータと、次のデータ1のデータ部分のXOR演算が実行される。そして、実行の結果求まったXOR値は、パリティデータのデータ部分Aに記憶される。同様に、ファントムデータとデータ0、データ1のCRC部分は、同様のXOR演算が実行され、パリティデータのCRC部分Bに記憶される。
このように、本発明によれば、RAID5の記憶構成において、仮想的なデータストリップを設けて、そのデータ部分にオール0でもオール1でもないデータを設けることにより、演算結果のパリティデータ部分が0とならないようにすることができ、パリティチェックを強化することができる。
図5は本発明を実施するシステム構成例を示す図である。図において、1はファントムデータが記憶されるファントムディスク、2はデータが記憶されるディスクで、図ではディスク0とディスク1の2個設けた場合を示している。3はパリティディスクである。10はコンピュータ、11は本発明を実行するプログラムである。15はコンピュータ10と各種のディスクを接続するバスである。
このように構成されたシステムにおいて、コンピュータ10はプログラム11に記憶されたシーケンスに従って前述したような演算を実行し、その結果をパリティディスク3に記憶する。先ず、コンピュータ10は、ファントムディスク1のデータ部分にオール0でもオール1でもないデータを書き込む。そして、ファントムディスク1とディスク0との間でXOR演算を実行する。このXOR演算結果と、ディスク1との間でXOR演算を実行し、その結果をパリティディスク3に記憶する。このようなXOR演算は、データ部分のみならず、ブロックCRCとブロックID部分についても実行される。この結果、パリティチェックを強化することができる。
ファントムブロックのデータフォーマットを示す図である。 ファントムなしにおける0フォーマット時各ストリップのブロックを示す図である。 ファントムありにおける0フォーマット時各ストリップのブロックを示す図である。 本発明の演算方法の説明図である。 本発明を実施するシステム構成例を示す図である。 1ブロックデータのフォーマット例を示す図である。 BCCの構成例を示す図である。 RAID1の説明図である。 RAID5の説明図である。 アドレスとデータの関係を示す図である。 ストリップとストライプの関係を示す図である。 パリティストリップの生成法の説明図である。 XOR演算の説明図である。 Nが奇数時のパリティブロックIDの算出方法の説明図である。 ファントムディスクを付加した場合を示す図である。
符号の説明
1 ファントムディスク
2 ディスク
3 パリティディスク
10 コンピュータ
11 プログラム
15 バス

Claims (3)

  1. RAID5(N+1)のデータ構成において、
    パリティを求めるための演算を行なう場合において、Nが偶数の場合には、仮想的なデータストリップを1個加え、
    更にこの仮想的なデータストリップのデータをデータ領域の所定の部分が特定の値になるように設定することを特徴とするRAID5のパリティチェック強化方法。
  2. RAID5(N+1)のデータ構成において、パリティを求めるための演算を行なう場合において、Nが偶数の場合には、仮想的なデータストリップを1個加える工程と、
    更にこの仮想的なデータストリップのデータをデータ領域の所定の部分が特定の値になるように設定する工程とをコンピュータで実行することを特徴とするRAID5のパリティチェック強化プログラム。
  3. RAID5(N+1)のデータ構成を有する記憶装置において、
    パリティを求めるための演算を行なう場合において、Nが偶数の場合には、仮想的なデータストリップを1個加える手段と、
    更にこの仮想的なデータストリップのデータをデータ領域の所定の部分が特定の値になるように設定する手段と、
    を有することを特徴とする記憶装置。
JP2005376838A 2005-12-28 2005-12-28 Raid5のパリティチェック強化方法、装置及びプログラム Pending JP2007179297A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2005376838A JP2007179297A (ja) 2005-12-28 2005-12-28 Raid5のパリティチェック強化方法、装置及びプログラム
US11/528,697 US7574561B2 (en) 2005-12-28 2006-09-28 Method and apparatus for storing a data to memory devices

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005376838A JP2007179297A (ja) 2005-12-28 2005-12-28 Raid5のパリティチェック強化方法、装置及びプログラム

Publications (1)

Publication Number Publication Date
JP2007179297A true JP2007179297A (ja) 2007-07-12

Family

ID=38195266

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005376838A Pending JP2007179297A (ja) 2005-12-28 2005-12-28 Raid5のパリティチェック強化方法、装置及びプログラム

Country Status (2)

Country Link
US (1) US7574561B2 (ja)
JP (1) JP2007179297A (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10585749B2 (en) * 2017-08-10 2020-03-10 Samsung Electronics Co., Ltd. System and method for distributed erasure coding

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10171608A (ja) 1996-12-11 1998-06-26 Nec Corp 磁気ディスクアレイ装置及び磁気ディスクアレイ装置に於けるデータチェック方法
EP1036483B1 (en) * 1997-12-11 2006-08-30 Telefonaktiebolaget LM Ericsson (publ) Redundancy termination for dynamic fault isolation
JP2003036146A (ja) 2001-07-23 2003-02-07 Hitachi Ltd ディスクアレイ制御方式
JP2004213064A (ja) * 2002-12-26 2004-07-29 Fujitsu Ltd Raid装置及びその論理デバイス拡張方法
JP2006079418A (ja) * 2004-09-10 2006-03-23 Fujitsu Ltd 記憶制御装置、制御方法及びプログラム
JP2006171957A (ja) * 2004-12-14 2006-06-29 Fujitsu Ltd ストレージ制御装置および方法
JP4435705B2 (ja) * 2005-03-14 2010-03-24 富士通株式会社 記憶装置、その制御方法及びプログラム

Also Published As

Publication number Publication date
US20070150652A1 (en) 2007-06-28
US7574561B2 (en) 2009-08-11

Similar Documents

Publication Publication Date Title
US7529970B2 (en) System and method for improving the performance of operations requiring parity reads in a storage array system
US8171379B2 (en) Methods, systems and media for data recovery using global parity for multiple independent RAID levels
US8583984B2 (en) Method and apparatus for increasing data reliability for raid operations
US20140068208A1 (en) Separately stored redundancy
US9158675B2 (en) Architecture for storage of data on NAND flash memory
US20180157428A1 (en) Data protection of flash storage devices during power loss
US20100037091A1 (en) Logical drive bad block management of redundant array of independent disks
JP2011165063A (ja) 半導体記憶装置
US7823011B2 (en) Intra-disk coding scheme for data-storage systems
US20170168896A1 (en) Raid-6 for storage system employing a hot spare drive
JP4114877B2 (ja) 不正データを検出するための装置、方法、及びプログラム
US7549112B2 (en) Unique response for puncture drive media error
US20090094479A1 (en) Method of implementing xor based raid algorithms
US20100293418A1 (en) Memory device, data transfer control device, data transfer method, and computer program product
JP2000259359A (ja) Raid装置および記録媒体
US10942826B2 (en) Method and device for managing storage system
JP4358869B2 (ja) ストレージ制御装置、ストレージ制御方法
JP2006252165A (ja) ディスクアレイ装置、及びコンピュータシステム
JP2008071297A (ja) ディスクアレイ装置およびディスクアレイ装置のデータ管理方法
JP2007179297A (ja) Raid5のパリティチェック強化方法、装置及びプログラム
US7895393B2 (en) RAID system and the operating method for the same
JP6556980B2 (ja) ストレージ制御装置、ストレージ制御方法及びストレージ制御プログラム
US8214589B2 (en) Data storage system redundancy scheme verification
JP5278115B2 (ja) 冗長符号生成方法及び装置、データ復元方法及び装置、並びにraid記憶装置
JP2007257628A (ja) 記憶された情報データの読み取りのための誤り訂正と誤り検出の方法およびそのための記憶制御ユニット

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20091209

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20091215

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100215

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20101026