JP2004094547A - Raidコントローラ及びraidコントローラにおけるディスクアレイ制御方法 - Google Patents

Raidコントローラ及びraidコントローラにおけるディスクアレイ制御方法 Download PDF

Info

Publication number
JP2004094547A
JP2004094547A JP2002254133A JP2002254133A JP2004094547A JP 2004094547 A JP2004094547 A JP 2004094547A JP 2002254133 A JP2002254133 A JP 2002254133A JP 2002254133 A JP2002254133 A JP 2002254133A JP 2004094547 A JP2004094547 A JP 2004094547A
Authority
JP
Japan
Prior art keywords
data
error
parity
divided
raid controller
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
JP2002254133A
Other languages
English (en)
Inventor
Kazuyuki Tanaka
田中 和幸
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.)
Toshiba Corp
Original Assignee
Toshiba 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 Toshiba Corp filed Critical Toshiba Corp
Priority to JP2002254133A priority Critical patent/JP2004094547A/ja
Publication of JP2004094547A publication Critical patent/JP2004094547A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • 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/109Sector level checksum or ECC, i.e. sector or stripe level checksum or ECC in addition to the RAID parity calculation

Abstract

【課題】ディスクアレイに記録されたデータを有効に活用する。
【解決手段】本発明は、ライトデータをストライプサイズに分割する手段(22)と、分割された複数のストライプサイズのデータからパリティデータを生成する手段(24)と、分割された複数のストライプサイズのデータの誤りをそれぞれ検出するための複数の誤り検出用コードをそれぞれ生成する手段(23)と、分割された複数のストライプサイズのデータ及び誤り検出用コードの組を、対応するディスクアレイ装置に書き込む手段(25)とを具備するRAIDコントローラ、である。
【選択図】 図2

Description

【0001】
【発明の属する技術分野】
本発明は、ディスクアレイを制御するRAIDコントローラ及びRAIDコントローラにおけるディスクアレイ制御方法に関する。
【0002】
【従来の技術】
従来より、ディスクアレイを制御する方法としてRAIDによる手法が広く知られている。このRAIDにおいては、書き込みの対象となるデータをストライプサイズの複数のデータに分割し、この分割されたデータの排他的論理和の値をパリティデータとする。
【0003】
そして、これらストライプサイズの複数のデータ及びパリティデータを、それぞれディスクアレイにストライピングすることにより書き込む。そして、読み出し時には、ディスクアレイにそれぞれ書き込まれた複数のデータ及びパリティデータを読み出し、この読み出された複数のデータの排他的論理和の値が読み出されたパリティデータの値に一致するか否かを判断することにより、データに誤りがあるか否かを判断することができる。
【0004】
上述のRAID機能においては、例えば、ディスクアレイを構成するディスクのうち、1つのディスクが故障してアクセス不能になった場合に、残りのディスクアレイのデータ及びパリティデータからアクセス不能になったディスクのデータを復元することができるため、ディスクアレイを構成するディスクのうちの1台が縮退しても、正常にデータのリード/ライトを行なうことができるという冗長機能を有する。
【0005】
【発明が解決しようとする課題】
上述のように、従来のRAID機能においては、特定のディスク或いは特定のストライプ内における障害により一部のデータが正しく書きこめなかった場合、上述のパリティデータを使用した整合性チェックにより、データに誤りがあることは検出することができる。
【0006】
しかしながら、どのストライプのデータに誤りがあるのかを特定することができないため、他のディスクに書き込まれたデータを有効に活用することができないという問題があった。
【0007】
本発明は、上記実情に鑑みてなされたものであり、ディスクアレイに記録されたデータを有効に活用することができるRAIDコントローラ及びRAIDコントローラにおけるディスクアレイ制御方法を提供することを目的とする。
【0008】
【課題を解決するための手段】
したがって、上記目的を達成するために、本発明によれば、ライトデータをストライプサイズに分割する手段と、前記分割された複数のストライプサイズのデータからパリティデータを生成する手段と、前記分割された複数のストライプサイズのデータの誤りをそれぞれ検出するための複数の誤り検出用コードをそれぞれ生成する手段と、前記分割された複数のストライプサイズのデータ及び誤り検出用コードを、対応するディスクアレイ装置に書き込む手段とを具備することを特徴とするRAIDコントローラ、である。
【0009】
また、本発明は、ディスクアレイ装置からストライプサイズに分割された複数のデータ及びパリティデータ、これら複数のデータ及びパリティデータの誤りをそれぞれ検出するための複数の誤り検出用コードを読み出す手段と、前記読み出されたパリティデータを使用して、前記読み出された複数のデータに誤りがあるか否かを判断する手段と、誤りがあると判断された場合に、前記複数のデータ及びパリティデータのうち、いずれのデータに誤りがあるかを、前記複数のデータ及びパリティデータに対応する前記複数の誤り検出用コードを使用して、決定する手段と、前記複数のデータ及びパリティデータのち、前記誤りがあると決定されたデータ以外のデータを使用して、前記誤りがあると決定されたデータを復元する手段とを具備することを特徴とするRAIDコントローラ、である。
【0010】
【発明の実施の形態】
以下、図面を参照して、本発明の実施の形態に係るディスクアレイ制御装置におけるRAIDコントローラについて説明する。
【0011】
図1は、本発明の一実施の形態に係るRAIDコントローラを使用したディスクアレイ制御装置を示す図である。
【0012】
同図に示すように、ホストが接続されるシステムバス1には、ディスクアレイ9a〜9cを制御するためのRAIDコントローラ2が接続されている。
【0013】
RAIDコントローラ2は、I/Fコントローラ3、CPU4、ROM5、RAM6、HDDコントローラ8を具備し、これらはローカルバス7に接続されている。
【0014】
I/Fコントローラ3は、システムバス(PCIバス)1とローカルバス7との間を接続するためのブリッジである。
【0015】
.CPU4は、ディスクアレイ9a〜9bの制御全般を司るものであり、システムバス1及びSCSIバス10の制御などを行なう。
【0016】
ROM5は、CPU4の制御を行なうプログラムを格納する。
【0017】
RAM6は、CPU4が実行するプログラムのワークエリアと、システムバス1からのデータの格納及び処理、HDDコントローラ8のデータバッファとして使用するメモリである。
【0018】
HDDコントローラ8は、ディスクアレイ9a〜9cを制御するためのコントローラである。
【0019】
同図に示すように、本発明の実施の形態においては、ホストからのライトデータは、2つのデータ(DATAn−0,DATAn−1)に分割され、これら2つのデータ(DATAn−0,DATAn−1)及びこれら2つのデータ(DATAn−0,DATAn−1)に対応する2つのCRC(Cyclic Redundancy Check)コード(CRCn−0,CRCn−1)は、(DATAn−0, CRCn−0)を1つのストライプ単位としてディスク9aに書き込まれ、(DATAn−1,CRCn−1)を1つのストライプ単位としてディスク9bに書き込まれる。
【0020】
また、2つのデータ(DATAn−0,DATAn−1)の排他的論理和の値であるパリティデータ(DATAn−P)及びこのパリティデータ(DATAn−P)のCRCコード(CRCn−P)が1つのストライプ単位としてディスク9cに書き込まれる。
【0021】
図2は、本発明の実施の形態に係るRAIDコントローラの機能ブロック図を示す図である。
【0022】
同図に示すように、本発明の実施の形態に係るRAIDコントローラ2は、データ送受信部21、データ分割部22、CRCコード生成部23、パリティデータ生成部24、データリード/ライト部25、誤りデータ判断部26、誤りデータ決定部27及び誤りデータ復元部28を有する。
【0023】
データ送受信部21は、ホストからのライトデータを受信するとともに、誤りデータ復元部28において復元されたリードデータをホストに送信する。
【0024】
データ分割部22は、データ送受信部21において受信されたデータをディスクアレイ9a〜9cのストライプサイズの2つのデータに分割する。
【0025】
パリティデータ生成部24は、データ分割部22において分割された2つのデータについてのパリティデータを生成する。具体的には、2つのデータについて排他的論理和を算出し、この算出された値をパリティデータとする。
【0026】
CRCコード生成部23は、データ分割部22において分割された2つのデータ及びパリティデータ生成部24において生成されたパリティデータそれぞれについて、誤り検出用のCRCコードを生成する。
【0027】
データリード/ライト部25は、CRCコード生成部23によって生成された2つのCRCコード、パリティデータ生成部24によって生成されたパリティデータ及びデータ分割部22によって分割された2つのデータをストライピングすることにより書き込む。また、ディスクアレイ9a〜9cか2つのデータ、パリティデータ及びこれらに対応するCRCコードを読み出す。
【0028】
誤りデータ判断部26は、読み出されたパリティデータを使用して、読み出された2つのデータに誤りがあるか否かの判断を行なう。具体的には、2つのデータの排他的論理和の値が、パリティデータと一致しない場合には、誤りであると判断する。
【0029】
誤りデータ決定部27は、誤りデータ判断部26において、誤りがあると判断された場合に、2つのデータ及びパリティデータのうち、いずれのデータに誤りがあるかを、2つのデータ及びパリティデータに対応する2つのCRCコードを使用して、決定する
誤りデータ復元部28は、2つのデータ及びパリティデータのうち、誤りがあると決定されたデータ以外のデータを使用して、誤りがあると決定されたデータを復元する。
【0030】
次に、本発明の実施の形態に係るRAIDコントローラのデータの書き込み動作を図3のフロチャート、図4のライト時におけるデータの流れを説明するための図を参照して説明する。
【0031】
ホストからのライトデータ31を受信すると、この受信されたライトデータ31は、ディスクアレイ9a〜9cのストライプサイズの2つのデータ31−1,31−2に分割される(S1)。
【0032】
次に、この2つのデータ31−1、31−2からパリティデータを生成する(S2)。具体的には、2つのデータ31−1,31−2について排他的論理和を算出し、この算出された値をパリティデータ32とする。
【0033】
その後、2つのデータ31−1,31−2及びパリティデータ32のそれぞれについてCRC33−1、33−2、33−3を生成する(S3)。そして、分割されたデータ(31−1、31−2)及びパリティデータ32及びこれらに対応するCRCコード(33−1〜33−3)を1つのストライピングで書き込む(S4)。
【0034】
ストライピングの単位は、図4に示すように、(データ31−1、CRCコード33−1)、(データ31−1、CRCコード31−2)、(パリティデータ32、CRCコード33−3)の3組である。
【0035】
次に、本発明の実施の形態に係るRAIDコントローラのデータの読み出し動作を図5のフロチャート、図6のリード時におけるデータの流れを説明するための図を参照して説明する。
【0036】
ホストからの読み出し要求を受信すると、RAIDコントローラは、読み出し要求において要求されたデータ及びこれに対応するパリティデータCRCコードを読み出す(S21)。ここでは、データ31−1、31−2。パリティデータ32及びこれらに対応するCRCコード33−1〜33−3が読み出されるものとする。
【0037】
次に、読み出されたデータ31−1、31−2の排他的論理和の結果値がパリティデータ32の値に等しいか否かの判断が行なわれる(S22)。S22におえる判断の結果、一致していると判断された場合には読み出されたデータは正しいデータであると判断される(S23)。
【0038】
一方、S22において、一致していないと判断された場合には、次に、CRCコード33−1〜33−3を使用して、どのデータ31−1〜31−3に誤りがあるか否かを決定する(S24)。
【0039】
すなわち、データ31−1はCRCコード33−1、データ31−2はCRCコード33−2、データ33−3はCRCコード33−3を使用して、誤りがチェックされる。ここでは、データ31−2に誤りがあると決定されたものとする。
【0040】
次に、誤りあると決定されたデータ31−2以外のデータ31−1及びパリティデータ32を使用して、誤りがあると決定されたデータ31−2を復元する(S25)。
【0041】
したがって、本発明の実施の形態に係るRAIDコントローラによれば、一部のデータに誤りがあっても、誤りのあるデータを特定し、データを復元することができるので、ディスクアレイに記録されたデータを有効に利用することができるとともに、ディスクアレイの信頼性を高めることができる。
【0042】
なお。上述の実施の形態においては、3つのディスク9a〜9cを有するディスクアレイについて説明したが、これに限られるものではないことはいうまでもない。
【0043】
また、誤り検出用コードとして、CRCコードを例にとり説明したが、パリティデータ、ハミング符号などを用いてもよい。
【0044】
さらに、本願発明は、上記各実施形態に限定されるものでなく、実施段階ではその要旨を逸脱しない範囲で種々に変形することが可能である。また、上記実施形態には種々の段階の発明が含まれており、開示される複数の構成要件における適宜な組み合わせにより種々の発明が抽出され得る。例えば実施形態に示される全構成要件から幾つかの構成要件が省略されることで発明が抽出された場合には、その抽出された発明を実施する場合には省略部分が周知慣用技術で適宜補われるものである。
【0045】
【発明の効果】
以上詳記したように、本発明によれば、ディスクアレイに記録されたデータを有効に活用することができる。
【図面の簡単な説明】
【図1】本発明の一実施の形態に係るRAIDコントローラを使用したディスクアレイ制御装置を示す図である。
【図2】本発明の実施の形態に係るRAIDコントローラの機能ブロック図を示す図である。
【図3】本発明の実施の形態に係るRAIDコントローラのデータの書き込み動作を説明するためのフロチャートである。
【図4】ライト時におけるデータの流れを説明するための図である。
【図5】本発明の実施の形態に係るRAIDコントローラのデータの読み出し動作を説明するためのフロチャートである。
【図6】リード時におけるデータの流れを説明するための図である。
【符号の説明】
1…システムバス、
2…RAIDコントローラ、
3…I/Fコントローラ、
4…CPU、
5…ROM、
6…RAM、
7…ローカルバス、
8…HDDコントローラ、
9a〜9c…ディスク、
10…SCSIバス、
21…データ送受信部、
22…データ分割部、
23…CRCコード生成部、
24…パリティデータ生成部、
25…データリード/ライト部、
26…誤りデータ判断部、
27…誤りデータ決定部、
28…誤りデータ復元部。

Claims (8)

  1. ライトデータをストライプサイズに分割する手段と、
    前記分割された複数のストライプサイズのデータからパリティデータを生成する手段と、
    前記分割された複数のストライプサイズのデータの誤りをそれぞれ検出するための複数の誤り検出用コードをそれぞれ生成する手段と、
    前記分割された複数のストライプサイズのデータ及び誤り検出用コードの組を、対応するディスクアレイ装置に書き込む手段と
    を具備することを特徴とするRAIDコントローラ。
  2. ディスクアレイ装置からストライプサイズに分割された複数のデータ及びパリティデータ、これら複数のデータ及びパリティデータの誤りをそれぞれ検出するための複数の誤り検出用コードを読み出す手段と、
    前記読み出されたパリティデータを使用して、前記読み出された複数のデータに誤りがあるか否かを判断する手段と、
    誤りがあると判断された場合に、前記複数のデータ及びパリティデータのうち、いずれのデータに誤りがあるかを、前記複数のデータ及びパリティデータに対応する前記複数の誤り検出用コードを使用して、決定する手段と、
    前記複数のデータ及びパリティデータのち、前記誤りがあると決定されたデータ以外のデータを使用して、前記誤りがあると決定されたデータを復元する手段と
    を具備することを特徴とするRAIDコントローラ。
  3. 前記誤り検出用コードは、CRC(Cyclic Redundancy Check)コードであることを特徴とする請求項1又は請求項2記載のRAIDコントローラ。
  4. 前記分割されたストライプサイズのデータ及びこの分割されたストライプサイズのデータに対応する誤り検出用コードの組は、1つのストライピングデータであることを特徴とする請求項1又は請求項2記載のRAIDコントローラ。
  5. 前記パリティデータは、前記分割された複数のストライプサイズのデータの排他的論理和の値であることを特徴とする請求項1記載のRAIDコントローラ。
  6. 前記誤りがあるか否かの判断は、前記読み出された複数のデータの排他的論理和の値が前記読み出されたパリティデータに一致するか否かにより判断することを特徴とする請求項2記載のRAIDコントローラ。
  7. ライトデータをストライプサイズに分割し、
    前記分割された複数のストライプサイズのデータからパリティデータを生成し、
    前記分割された複数のストライプサイズのデータの誤りをそれぞれ検出するための複数の誤り検出用コードをそれぞれ生成し、
    前記分割された複数のストライプサイズのデータ及び誤り検出用コードを、対応するディスクアレイ装置に書き込むことを特徴とするRAIDコントローラにおけるディスクアレイ制御方法。
  8. ディスクアレイ装置からストライプサイズに分割された複数のデータ及びパリティデータ、これら複数のデータ及びパリティデータの誤りをそれぞれ検出するための複数の誤り検出用コードを読み出し、
    前記読み出されたパリティデータを使用して、前記読み出された複数のデータに誤りがあるか否かを判断し、
    誤りがあると判断された場合に、前記複数のデータ及びパリティデータのうち、いずれのデータに誤りがあるかを、前記複数のデータ及びパリティデータに対応する前記複数の誤り検出用コードを使用して、決定し、
    前記複数のデータ及びパリティデータのち、前記誤りがあると決定されたデータ以外のデータを使用して、前記誤りがあると決定されたデータを復元することを特徴とするRAIDコントローラにおけるディスクアレイ制御方法。
JP2002254133A 2002-08-30 2002-08-30 Raidコントローラ及びraidコントローラにおけるディスクアレイ制御方法 Pending JP2004094547A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2002254133A JP2004094547A (ja) 2002-08-30 2002-08-30 Raidコントローラ及びraidコントローラにおけるディスクアレイ制御方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2002254133A JP2004094547A (ja) 2002-08-30 2002-08-30 Raidコントローラ及びraidコントローラにおけるディスクアレイ制御方法

Publications (1)

Publication Number Publication Date
JP2004094547A true JP2004094547A (ja) 2004-03-25

Family

ID=32059953

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002254133A Pending JP2004094547A (ja) 2002-08-30 2002-08-30 Raidコントローラ及びraidコントローラにおけるディスクアレイ制御方法

Country Status (1)

Country Link
JP (1) JP2004094547A (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101976177A (zh) * 2010-08-19 2011-02-16 北京同有飞骥科技有限公司 一种垂直型分组并行集中校验的磁盘阵列的构建方法
CN101976175A (zh) * 2010-08-19 2011-02-16 北京同有飞骥科技有限公司 一种水平型分组并行集中校验的磁盘阵列的构建方法
CN102063270A (zh) * 2010-12-28 2011-05-18 成都市华为赛门铁克科技有限公司 一种写操作方法及装置
JP2013521555A (ja) * 2010-03-01 2013-06-10 エクスタス グローバル リミテッド 分散型の記憶および通信

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013521555A (ja) * 2010-03-01 2013-06-10 エクスタス グローバル リミテッド 分散型の記憶および通信
CN101976177A (zh) * 2010-08-19 2011-02-16 北京同有飞骥科技有限公司 一种垂直型分组并行集中校验的磁盘阵列的构建方法
CN101976175A (zh) * 2010-08-19 2011-02-16 北京同有飞骥科技有限公司 一种水平型分组并行集中校验的磁盘阵列的构建方法
CN102063270A (zh) * 2010-12-28 2011-05-18 成都市华为赛门铁克科技有限公司 一种写操作方法及装置

Similar Documents

Publication Publication Date Title
US6928578B2 (en) System, method, and computer program for selectable or programmable data consistency checking methodology
US10152249B2 (en) Data memory device and controller with interface error detection and handling logic
US6629273B1 (en) Detection of silent data corruption in a storage system
US8601348B2 (en) Error checking addressable blocks in storage
US7017107B2 (en) Storage array employing scrubbing operations at the disk-controller level
US7062704B2 (en) Storage array employing scrubbing operations using multiple levels of checksums
US8707122B1 (en) Nonvolatile memory controller with two-stage error correction technique for enhanced reliability
US7131050B2 (en) Optimized read performance method using metadata to protect against drive anomaly errors in a storage array
US7315976B2 (en) Method for using CRC as metadata to protect against drive anomaly errors in a storage array
US8171379B2 (en) Methods, systems and media for data recovery using global parity for multiple independent RAID levels
US20020124129A1 (en) Method for using RAM buffers with multiple accesses in flash-based storage systems
US20060136777A1 (en) Unit, method and program for detecting imprecise data
US7793168B2 (en) Detection and correction of dropped write errors in a data storage system
KR20140018393A (ko) 데이터 무결성을 제공하기 위한 방법 및 장치
KR20140013095A (ko) 데이터 무결성을 제공하기 위한 방법 및 장치
US7302603B2 (en) Host-initiated data reconstruction for improved RAID read operations
JP2008539474A (ja) パワーセーフディスクストレージ装置、システム及び方法
US20130198585A1 (en) Method of, and apparatus for, improved data integrity
JP2006139478A (ja) ディスクアレイシステム
JP2006172320A (ja) データ複製制御装置
US20070036055A1 (en) Device, method and program for recovering from media error in disk array device
US7308601B2 (en) Program, method and apparatus for disk array control
US8489976B2 (en) Storage controlling device and storage controlling method
JP4469822B2 (ja) ディスクアレイ装置およびディスクアレイ装置のデータ管理方法
JP2004094547A (ja) Raidコントローラ及びraidコントローラにおけるディスクアレイ制御方法

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20041216

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20050104

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20050510