JP4843695B2 - ディスクアレイ制御装置及びディスクアレイ装置 - Google Patents
ディスクアレイ制御装置及びディスクアレイ装置 Download PDFInfo
- Publication number
- JP4843695B2 JP4843695B2 JP2009152311A JP2009152311A JP4843695B2 JP 4843695 B2 JP4843695 B2 JP 4843695B2 JP 2009152311 A JP2009152311 A JP 2009152311A JP 2009152311 A JP2009152311 A JP 2009152311A JP 4843695 B2 JP4843695 B2 JP 4843695B2
- Authority
- JP
- Japan
- Prior art keywords
- parity
- storage device
- data
- stripe
- parity data
- 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
Links
Images
Description
本発明は、ディスクアレイ制御装置及びディスクアレイ装置に関する。
一般的に、コンピュータ等に付随する記憶装置の対故障の信頼性を向上させる方法として、RAID(Redundant Arrays of Inexpensive Disks)が普及している。このRAIDは、幾つかのレベルが規格化されており、それぞれRAID0〜RAID6の名称がつけられている。
これらのうち、信頼性向上のためによく用いられてきたのがRAID1及びRAID5である。
RAID1は、2台のHDD(Hard Disk Drive)を1組として用いてデータを完全に2重化する方法であり、ミラーリングと呼ばれる。RAID1は、信頼性が高く、RAID5等において用いられるパリティ(データ)の計算等を要しない単純さのため、高速な処理が可能である。その一方で、RAID1は、利用できる実効容量が物理容量の半分になる。
RAID5は、n(nは、3以上の整数)台のHDDを1組として、当該n台のHDDのうち、(n−1)台にデータ(データブロック)を格納(保存)し、残りの1台に当該データブロックのパリティを格納する方法である。このパリティは、当該パリティが格納されるHDD以外のHDDに格納されているデータから計算される。このパリティを用いることによって、例えばn台のHDDのうちの1台が故障した場合であっても当該HDDに格納されていたデータブロックを復元(再計算)することが可能となる。
RAID5では、利用できる実効容量は物理容量に対して(n−1)/nであるため、上記したRAID1と比較してより多くの領域を利用できる。その一方で、RAID5は、データを書き込む際に全てのHDDからデータブロックを読み出し、パリティを計算する必要があるため、ライト処理(書き込み)が低速になる場合がある。実質的には、パリティの計算自体は単純なXOR演算(排他的論理和)であるため影響は小さいが、当該パリティを計算するために全てのHDDからデータブロックを読み出さなければならないことがライト処理の低速化の主な原因となる場合が多い。
更に、近年では、上記した1つのパリティを用いるRAID5(シングルパリティ)とは異なり、2つのパリティを用いるRAID6(ダブルパリティ)も徐々に普及している。
このRAID6は、m(mは、4以上の整数)台のHDDを1組として、m個のHDDのうち(m−2)個にデータ(データブロック)を格納し、残りの2台のHDDのうちの一方にはRAID5と同様のパリティ(XORパリティ)、他方には当該XORパリティとは独立するパリティを格納する方法である。この方法によれば、m台のHDDのうち、任意の2台のHDDが故障した場合であってもデータを完全に復元することができる。
以下、RAID6において用いられる2つのパリティのうち、RAID5と同様のXORパリティをPパリティ、RAID6に固有のパリティ(つまり、XORパリティとは独立するパリティ)をQパリティと称する。ここでは、2つのXORパリティを用いる2D−XOR方式のRAID6については想定していない。
ところで、上記したQパリティは、Pパリティとは数学的に独立な意味を持つ必要がある。すなわち、(m−2)台のHDDに格納されているデータブロック及び2つのパリティからなる2元連立方程式が必ず解を持つ必要がある。
また、現実的な要求として、計算されたパリティ(P及びQ)の値の範囲は、各データブロックの値の範囲と同じである必要がある。すなわち、(m−2)台のHDDに格納されている例えば1バイトのデータブロックからは、1バイトのパリティが生成(計算)される必要がある。
このような事情から、Qパリティは、通常の算術四則演算では実現(計算)することができない。
したがって、現実のRAID6では、ガロア体と呼ばれる演算空間を定義することによって、このような要求を全て満たすQパリティの計算を実現している。ガロア体での四則演算は一般的なプロセッサが有している算術四則演算回路では計算することができない。このため、四則演算テーブルをメモリ等に保持しておき、当該四則演算テーブルを参照することでQパリティを計算するのが一般的である。
上記したように、Qパリティの計算は複雑であるため、Pパリティの計算と比較して多くの処理時間を要する。しかしながら、通常の書き込み処理(動作)時においては、HDDへの書き込み時間がQパリティの計算時間と比較して十分に長いため、例えばメモリキャッシュがある場合にその応答が多少遅くなる程度であって、大きな問題となることはない。
上記したRAID6に関する技術として、RAID6を構成する複数のディスク装置の中の1台のディスク装置が故障状態にあっても、整合性確認で不整合が検出された場合には、データ不正箇所を特定することが可能な技術(以下、先行技術と表記)が開示されている(例えば、特許文献1を参照)。この先行技術によれば、データライト抜けによるデータ不正がセクタ冗長領域に記録されたタイムスタンプ及びビットマップデータを使って検出される。
ところで、RAIDを構成するHDDが故障した場合、当該故障したHDD(以下、故障HDDと表記)を新たなHDD(以下、新HDDと表記)に交換することにより、再びRAIDを構成できるように運用される。この場合、故障HDDに格納されていたデータまたはパリティを新HDDに復旧する作業(以下、再構成と表記)が必要となる。
この再構成は、残存するHDD(故障したHDD以外のHDD)に格納されているデータブロック及びパリティから新HDDに書き込むデータまたはパリティを再計算する動作である。このため、再構成には非常に長時間を要し、多くの計算機資源(例えば、CPUパワー及びメモリ領域等)を使用することになる。
特に、上記したRAID6における再構成では、故障HDDにQパリティが格納されていた場合、当該Qパリティを再計算する必要がある。上述したようにQパリティの計算には多くの処理時間を要するため、上記したRAID1及び5における再構成と比較して更に多くの計算機資源を必要とすることになり、I/O性能に更に悪影響を及ぼすことになる。つまり、RAID6における再構成は、RAID1及び5と比較して、I/O性能の低下が大きい。
したがって、例えばデータのリアルタイム配信用のサーバのような、利用者に対して一定以上の性能を提供することを要するシステムにおいては、RAID6における再構成時のI/O性能の低下を軽減することが必要となる。
そこで、本発明の目的は、RAID6における再構成時のI/O性能の低下を軽減することを可能とするディスクアレイ制御装置及びディスクアレイ装置を提供することにある。
本発明の1つの態様によれば、データを格納する2台以上の第1の記憶装置と、前記第1の記憶装置に格納されているデータを復元するために用いられる第1のパリティデータであって、当該第1の記憶装置に格納されているデータから第1の計算方法によって計算される第1のパリティデータを格納する第2の記憶装置と、前記第1の記憶装置に格納されているデータを復元するために用いられる前記第1のパリティデータとは異なる第2のパリティデータであって、当該第1の記憶装置に格納されているデータから前記第1の計算方法より複雑な第2の計算方法によって計算される第2のパリティデータを格納する第3の記憶装置と接続されるディスクアレイ制御装置が提供される。このディスクアレイ制御装置は、前記第3の記憶装置が故障した場合に、当該第3の記憶装置の故障を検出する検出手段と、前記第3の記憶装置の故障が検出された場合、前記第1の記憶装置に格納されているデータから前記第2の計算方法によって第2のパリティデータを計算する第1の計算手段と、前記第1の計算手段によって計算された第2のパリティデータを、前記第2の記憶装置に格納されている第1のパリティデータに上書きする上書き手段と、前記故障が検出された第3の記憶装置が第4の記憶装置に交換された場合、前記第1の記憶装置に格納されているデータ及び前記第2の記憶装置に上書きされた第2のパリティデータを読み出す読み出し手段と、前記第2の記憶装置から読み出された第2のパリティデータを前記第4の記憶装置に書き込む第1の書き込み手段と、前記第1の記憶装置から読み出されたデータから前記第1の計算方法によって第1のパリティデータを計算する第2の計算手段と、前記第2の計算手段によって計算された第1のパリティデータを前記第2の記憶装置に書き込む第2の書き込み手段とを具備する。
本発明は、RAID6における再構成時のI/O性能の低下を軽減することを可能とする。
以下、図面を参照して、本発明の実施形態について説明する。
図1は、本実施形態に係るディスクアレイ装置の構成を示すブロック図である。図1に示すように、ディスクアレイ装置10は、RAIDコントローラ(ディスクアレイ制御装置)20及び4台以上のハードディスクドライブ(HDD:Hard Disk Drive)30-1、30-2、…、30-k(kは、4以上の整数)を有する。以下の説明では、ディスクアレイ装置10は、6台のHDD(つまり、HDD30-1、30-2、…、30-6)を有しているものとして説明する。
RAIDコントローラ20は、外部から送信されるI/O要求(ライト要求またはリード要求)を取得し、当該I/O要求に応じてHDD30-1、30-2、…、30-6に対するデータのライト/リード処理を実行する。
本実施形態においては、RAIDコントローラ20は、ハードウェアとして存在するものとする。具体的には、PCI-Express上のRAIDカードのような形式である。RAIDコントローラ20は、独立したRAIDコントローラプロセッサ21及びRAIDコントローラメモリ22を有する。RAIDコントローラメモリ22には、RAIDコントローラプロセッサ21によって実行されるプログラム(RAIDプログラム)が格納されている。RAIDコントローラプロセッサ21は、RAIDコントローラメモリ22に格納されているRAIDプログラムを実行することによってRAID機能を実現する。
なお、RAIDコントローラメモリ22には、応答性を向上するためにデータキャッシュが実装されていても構わない。
ディスクアレイ装置10が有するHDD30-1、30-2、…、30-6は、例えばRAID(Redundant Arrays of Inexpensive Disks)6を構成する。
このRAID6においては、HDD30-1、30-2、…、30-6のうちの4台のHDD(第1の物理記憶装置)にデータ(データブロック)が格納され、残りの2台のうちの一方のHDD(第2の物理記憶装置)には当該データブロックからXOR演算(第1の計算方法)によって計算される第1のパリティデータ(以下、Pパリティと表記)、他方のHDD(第3の物理記憶装置)には当該Pパリティとは独立する第2のパリティデータ(以下、Qパリティと表記)が格納される。Qパリティは、Pパリティとは数学的に独立な意味を持ち、ガロア演算(第2の計算方法)によって計算される。ガロア演算は、ガロア体と呼ばれる演算空間を定義することによって実現され、例えば予め用意された四則演算テーブルを参照することによって計算される。なお、ガロア演算は、上記したXOR演算より複雑な計算方法であり、当該XOR演算と比較してより多くの処理時間(処理量)を要する。
ここでは、ディスクアレイ装置10が6台のHDDを有するため、そのうちの4台のHDDにデータ(Pパリティ及びQパリティ以外のデータ)が格納されるが、RAID6においては、2台以上のHDDに当該データが格納されている必要がある。
また、HDD30-1、30-2、…、30-6のうちの4台のHDDに格納されているデータブロック、当該データブロックから計算されるPパリティ及びQパリティ(の組)はストライプと呼ばれる。HDD30-1、30-2、…、30-6は、複数のストライプを有する。
なお、本実施形態においては、2つのXORパリティを用いる2D−XOR方式のRAID6については想定していない。
図2は、図1に示すRAIDコントローラ20の主として機能構成を示すブロック図である。図2に示すように、RAIDコントローラ20は、RAID機能部211、パリティ置換機能部212及び再構成機能部212を含む。本実施形態において、これらの各部211〜213は、図1に示すRAIDコントローラプロセッサ21がRAIDコントローラメモリ22に格納されているRAIDプログラムを実行することにより実現されるものとする。このRAIDプログラムは、コンピュータ読み取り可能な記憶媒体に予め格納して頒布可能である。また、このRAIDプログラムが、例えばネットワークを介してコンピュータ10にダウンロードされても構わない。
また、RAIDコントローラ20は、置換完了情報格納部221を含む。本実施形態において、置換完了情報格納部221は、RAIDコントローラメモリ22に格納される。
RAID機能部211は、RAID6を構成するHDD30-1、30-2、…、30-6のうちの1台が故障した場合に、当該故障を検出する。HDD30-1、30-2、…、30-6のうちの1台の故障が検出されると、RAID機能部211は、RAIDコントローラ21と接続されているモニタまたはブザーのようなI/O装置(図示せず)を介して当該故障をユーザに通知する。これにより、ユーザは、HDD30-1、30-2、…、30-6のうちの1台が故障したことを認識し、適当な時期に当該故障したHDDを交換できる。
また、RAID機能部211は、後述するような通常のRAIDコントローラの機能を有する。
パリティ置換機能部212は、RAID機能部211によって故障が検出された場合、RAID6を構成するHDD30-1、30-2、…、30-6が有するストライプ(HDD30-1、30-2、…、30-6のストライプ)毎にパリティ置換処理を実行する。パリティ置換処理においては、故障が検出されたHDDにQパリティが格納されていたストライプ(つまり、Qパリティが欠損したストライプ)に対して、当該ストライプの各データブロックからガロア演算によりQパリティが再計算される。このQパリティは、Qパリティが欠損したストライプにおいてPが格納されている位置に上書きされる。なお、各ストライプに対してパリティ置換処理が実行されると、当該ストライプについてパリティ置換処理が完了した旨(つまり、パリティ置換処理が完了したストライプ)を示す情報(置換完了情報)が置換完了情報格納部221に格納される。
再構成機能部213は、RAID機能部211によって故障が検出されたHDD(HDD30-1、30-2、…、30-6のうちの1台)がユーザによって交換され、RAID6の再構成が指示された場合、ストライプ毎に再構成処理(ストライプ再構成処理)を実行する。
再構成機能部213は、パリティ置換処理が実行されたストライプに対しては、交換されたHDD(新HDD)以外のHDDからデータブロック及びQパリティを読み出す。再構成機能部213は、読み出されたQパリティを交換された新HDDに書き込む。
また、再構成機能部213は、読み出されたデータブロックからXOR演算によりPパリティを計算し、当該計算されたPパリティを本来のPパリティが格納される位置(つまり、Qパリティが上書きされていた位置)に書き込む。
置換完了情報格納部221には、上記したように各ストライプについてパリティ置換処理が完了した旨を示す情報(置換完了情報)が格納される。置換完了情報格納部221には、HDD30-1、30-2、…、30-6のストライプ毎に例えば1ビットの判定フラグが置換完了情報として格納される。これにより、パリティ置換処理が完了したストライプを認識できる。
なお、パリティ置換処理を順次に行う場合、当該パリティ置換処理が完了したストライプのアドレス(置き換え完了アドレス)のみを格納する構成であっても構わない。これによれば、置き換え完了アドレスに該当するストライプまでパリティ置換処理が完了している旨が示される。
また、ディスクアレイ装置10を含むシステムが一旦シャットダウンされるような場合があるため、RAIDコントローラメモリ22上の置換完了情報格納部221以外にも置換完了情報を格納できる領域を用意しておくことが好ましい。具体的には、図3に示すように、例えばHDD30-1、30-2、…、30-6上に、置換完了情報を格納できる領域301を用意しておく構成であってもよい。
図3に示す例では、置換完了情報を格納できる領域301は、HDD30-1、30-2、…、30-6のうちのHDD30-1、30-2及び30-3に設けられている。すなわち、置換完了情報は、HDD30-1、30-2、…、30-6のうちの例えば2台までの故障に耐えられるように3つのHDD(ここでは、HDD30-1、30-2及び30-3)に格納されている。また、置換完了情報自体に対してRAID6を適用して、HDD30-1、30-2、…、30-6のうちの2台までの故障に耐えられるようにしても構わない。
なお、図3に示す置換完了情報を格納できる領域301は、上記したHDD30-1、30-2、…、30-6が有する複数のストライプ(つまり、データブロック、Pパリティ及びQパリティ)の領域とは異なる領域である。
ここで、図4を参照して、図1に示すディスクアレイ装置10が有するHDD30-1、30-2、…、30-6のデータ構造の一例を示す。HDD30-1、30-2、…、30-6には、データブロック、Pパリティ及びQパリティが格納される。また、HDD30-1、30-2、…、30-6は、複数のストライプ(4つのデータブロック、Pパリティ及びQパリティの組)を有する。以下の説明においては、HDD30-1、30-2、…、30-6における1番目のストライプをストライプ番号1のストライプと称する。2番目以降のストライプについても同様である。
図4において、Dijは、ストライプ番号iのストライプにおけるj個目のデータブロックを示す。Piは、ストライプ番号iのストライプにおけるPパリティを示す。Qiは、ストライプ番号iのストライプにおけるQパリティを示す。
図4に示す例では、ストライプ番号1のストライプにおいては、HDD30-1にD11、HDD30-2にD12、HDD30-3にD13、HDD30-4にD14、HDD30-5にP1、HDD30-6にQ1が格納されている。
また、ストライプ番号2のストライプにおいては、HDD30-1にQ2、HDD30-2にD21、HDD30-3にD22、HDD30-4にD23、HDD30-5にD24、HDD30-6にP1が格納されている。
また、ストライプ番号3のストライプにおいては、HDD30-1にP3、HDD30-2にQ3、HDD30-3にD31、HDD30-4にD32、HDD30-5にD33、HDD30-6にD34が格納されている。
ここでは、ストライプ番号1〜3について説明したが、ストライプ番号4以降のストライプについても同様である。
図4に示す例では、Pパリティ及びQパリティを格納するHDDがストライプ毎に1つずつずれるように配置されている。本実施形態においては、Pパリティ及びQパリティをどのように配置するかは本質的ではなく、ストライプ番号からPパリティ及びQパリティの位置(HDD番号)を一意に決定できれば図4に示す配置でなくても構わない。
なお、図4には図示されていないが、HDD30-1、30-2、…、30-6には、上記した置換完了情報が格納される領域(図3に示す領域301)が確保されている。
次に、図5のフローチャートを参照して、RAID6を構成するHDD30-1、30-2、…、30-6のうちの1台の故障がRAID機能部211によって検出された場合のRAIDコントローラ20の処理手順について説明する。ここでは、RAID機能部211によってHDD30-1、30-2、…、30-6のうちのHDD30-2の故障が検出されたものとして説明する。
なお、RAID機能部211によってHDD30-2の故障が検出された場合、その旨がI/O装置を介してユーザに通知される。
RAID機能部211によってHDD30-2の故障が検出された場合、RAIDコントローラ20に含まれるパリティ置換機能部212は、置換完了情報格納部221に格納されている置換完了情報をリセットする(ステップS1)。この置換完了情報は、後述するパリティ置換処理が実行されたストライプを示す情報である。
次に、パリティ置換機能部212は、外部からのI/O要求があるか、つまり、外部から送信されたI/O要求がRAIDコントローラ20において取得されたか否かを判定する(ステップS2)。
この外部からのI/O要求には、RAID6を構成するHDD30-1、30-2、…、30-6からデータを読み出すための要求であるリード要求及び当該HDD30-1、30-2、…、30-6に対してデータを書き込むための要求であるライト要求が含まれる。また、I/O要求には、アクセス(リードまたはライト)の対象となるデータブロックのアドレスが含まれる。
I/O要求がないと判定された場合(ステップS2のNO)、パリティ置換機能部212は、置換完了情報格納部221に格納されている置換完了情報に基づいて、HDD30-1、30-2、…、30-6におけるストライプの全てについてパリティ置換処理が実行されたか否かを判定する(ステップS3)。換言すれば、パリティ置換機能部212は、HDD30-1、30-2、…、30-6における最終ストライプまでパリティ置換処理が実行されたか否かを判定する。
HDD30-1、30-2、…、30-6におけるストライプの全てについてパリティ置換処理が実行されていないと判定された場合(ステップS3のNO)、パリティ置換機能部212は、当該パリティ置換処理が実行されていないストライプの1つについて以下のステップS4及びステップS5の処理を実行する。以下、この処理の対象となるストライプを置換対象ストライプとする。
パリティ置換機能部212は、置換対象ストライプに対してパリティ置換処理を実行する(ステップS4)。パリティ置換処理においては、RAID機能部211によって検出されたHDD30-2の故障によって欠損したQパリティの再計算が実行される。なお、再計算されたQパリティは、置換対象ストライプにおけるPパリティの位置に上書きされる。パリティ置換処理の詳細については後述する。
次に、パリティ置換機能部212は、置換対象ストライプについてパリティ置換処理が完了した旨を示す置換完了情報を置換完了情報格納部221に格納する。つまり、パリティ置換機能部212は、置換完了情報格納部221に格納されている置換完了情報を更新する(ステップS5)。
一方、I/O要求があると判定された場合(ステップS2のYES)、RAID機能部211及びパリティ置換機能部212は、当該I/O要求に基づいて1台故障時I/O処理を実行する(ステップS6)。この1台故障時I/O処理においては、I/O要求においてアクセスの対象となるストライプ(当該I/O要求に含まれるアドレスに該当するストライプ)に対して実行される。1台故障時I/O処理の詳細については後述する。
上記したステップS5またはステップS6の処理が実行されると、再構成要求が検出されたか否かが判定される(ステップS7)。この再構成要求は、RAID機能部211によって検出されたHDD30-2の故障がユーザに対して通知されたことにより当該ユーザによってHDD30-2(第3の物理記憶装置)が新たなHDD(第4の物理記憶装置)に交換され、当該ユーザによってRAID6の再構成が指示された場合に検出される。
再構成要求が検出されたと判定された場合(ステップS7のYES)、再構成機能部213は、RAID機能部211によって故障が検出されたHDD30-2以外のHDD(つまり、HDD30-1、30-3、…、30-6)及びHDD30-2と交換された新たなHDD(新HDD)においてRAID6を再構成する処理(以下、再構成処理と表記)を実行する(ステップS8)。再構成処理の詳細については後述する。
次に、図6のフローチャートを参照して、前述したパリティ置換処理(図5に示すステップS4の処理)の処理手順について説明する。
まず、パリティ置換機能部212は、RAID機能部211によって検出された例えばHDD30-2の故障により、パリティ置換処理の対象となるストライプ(図5において説明した置換対象ストライプ)においてQパリティが欠損しているか否かを判定する(ステップS11)。つまり、パリティ置換機能部212は、置換対象ストライプにおける複数のデータブロック(ここでは、4つのデータブロック)、Pパリティ及びQパリティのうち、故障が検出されたHDD30-2にQパリティが格納されていたか否かを判定する。
上記した図4に示すようなHDD30-1、30-2、…、30-6のデータ構造により、置換対象ストライプのストライプ番号からPパリティ及びQパリティの位置(HDD番号)を一意に決定できる。したがって、置換対象ストライプのストライプ番号から決定できるQパリティの位置(HDD番号)がRAID機能部211によって故障が検出されたHDD30-2であれば、Qパリティが欠損していると判定される。
具体的には、上記した図4に示すHDD30-1、30-3、…、30-6において置換対象ストライプが例えばストライプ番号3のストライプである場合には、HDD30-2の故障によりQパリティが欠損したと判定される。
Qパリティが欠損していると判定された場合(ステップS11のYES)、パリティ置換機能部212は、HDD30-1、30-3、…、30-6のうち、置換対象ストライプにおけるデータブロックが格納されているHDD(第1の物理記憶装置)から当該データブロック(つまり、4つのデータブロック)を読み出す。
パリティ置換機能部212は、読み出されたデータブロックからガロア演算によりQパリティを再計算する(ステップS12)。
次に、パリティ置換機能部212は、置換対象ストライプにおいてPパリティが格納されている位置(HDD番号)を算出(特定)する(ステップS13)。
パリティ置換機能部212は、置換対象ストライプにおいてPパリティが格納されている位置に、再計算されたQパリティを上書きする(ステップS14)。
なお、上記したステップS11においてQパリティが欠損していないと判定された場合、Qパリティを再計算する必要がないためパリティ置換処理は終了される。
次に、図7のフローチャートを参照して、前述した1台故障時I/O処理(図5に示すステップS6の処理)の処理手順について説明する。この1台故障時I/O処理は、RAID機能部211によってHDD30-1、30-2、…、30-6のうちの1台(例えば、HDD30-2)の故障が検出された後であって再構成要求が検出される前に、外部から送信されたI/O要求が取得された際に実行される。
上記したように1台故障時I/O処理時においては、RAID機能部211によってHDD30-1、30-2、…、30-6のうちの1台の故障が検出されている。したがって、HDD30-1、30-2、…、30-6の各ストライプの各々においては、データブロック、Pパリティ及びQパリティのいずれかが欠損している状態となる。
パリティ置換機能部212は、外部からのI/O要求がリード要求であるか否かを判定する(ステップS21)。
外部からのI/O要求がリード要求でない、つまり、ライト要求であると判定された場合(ステップS21のNO)、パリティ置換機能部212は、当該I/O要求によるアクセスの対象となるストライプ(以下、アクセス対象ストライプと表記)においてQパリティが欠損しているか否かを判定する(ステップS22)。換言すれば、パリティ置換機能部212は、HDD30-1、30-2、…、30-6のアクセス対象ストライプにおける複数のデータブロック(ここでは、4つのデータブロック)、Pパリティ及びQパリティのうち、故障が検出されたHDD30-2にQパリティが格納されていたか否かを判定する。
なお、I/O要求からアクセス対象ストライプを特定することができる。また、特定されたアクセス対象ストライプ(のストライプ番号)から当該アクセス対象ストライプにおけるパリティ(Pパリティ及びQパリティ)の位置(HDD番号)を決定(算出)することができる。これにより、パリティ置換機能部212は、アクセス対象ストライプがQパリティが欠損したストライプであるか否かを判定することができる。
アクセス対象ストライプにおいてQパリティが欠損していると判定された場合(ステップS22のYES)、パリティ置換機能部212は、置換完了情報格納部221に格納されている置換完了情報に基づいて、当該アクセス対象ストライプについてパリティ置換処理が実行されているか否かを判定する(ステップS23)。
アクセス対象ストライプについてパリティ置換処理が実行されていると判定された場合(ステップS23のYES)、当該アクセス対象ストライプにおいては、本来Pパリティが格納されるべき位置にQパリティが格納(上書き)されている状態である。
この場合、パリティ置換機能部212は、I/O要求(ここでは、ライト要求)に応じてデータブロック(ライトデータ)をHDD30-1、30-2、…、30-6に書き込む(ステップS24)。
次に、パリティ置換機能部212は、アクセス対象ストライプにおける複数のデータブロックからガロア演算によりQパリティを再計算し、当該再計算されたQパリティを上書きする(ステップS25)。つまり、再計算されたQパリティは、アクセス対象ストライプにおいて本来Pパリティが格納されるべき位置に上書きされる。
一方、ステップS21においてI/O要求がリード要求であると判定された場合、ステップS22においてアクセス対象ストライプにおいてQパリティが欠損していないと判定された場合、またはステップS23においてアクセス対象ストライプについてパリティ置換処理が実行されていないと判定された場合には、RAID機能部211は、通常のRAID6と同様のI/O処理(動作)を実行する。
具体的に、ステップS21においてI/O要求がリード要求であると判定された場合について説明する。このとき、RAID機能部211は、当該RAID機能部211によって検出された例えばHDD30-2の故障によりデータブロックが欠損している場合には、アクセス対象ストライプにおけるPパリティから当該欠損しているデータブロックを復元し、当該データブロックをI/O要求に対する応答として返す。なお、HDD30-2の故障によりPパリティまたはQパリティが欠損している場合には、アクセス対象ストライプにおけるデータブロックを返す。
また、ステップS22においてアクセス対象ストライプにおいてQパリティが欠損していないと判定された場合について説明する。このとき、アクセス対象ストライプにおいてPパリティが欠損している場合には、RAID機能部211は、ステップS24と同様にI/O要求(ここでは、ライト要求)に応じてデータブロックを書き込み、アクセス対象ストライプにおけるQパリティを再計算して、当該再計算されたQパリティを上書き(再計算されたQパリティに更新)する。一方、アクセス対象ストライプにおいてデータブロックが欠損している場合には、RAID機能部211は、アクセス対象ストライプにおけるデータブロック(I/O要求に応じて書き込まれるデータブロック)からPパリティ及びQパリティを再計算し、当該再計算されたPパリティ及びQパリティを上書き(再計算されたPパリティ及びQパリティに更新)する。
また、ステップS23においてアクセス対象ストライプについてパリティ置換処理が実行されていないと判定された場合、RAID機能部211は、ステップS24と同様にI/O要求(ここでは、ライト要求)に応じてデータブロックを書き込み、アクセス対象ストライプにおけるPパリティを再計算して、当該再計算されたPパリティを上書き(再計算されたPパリティに更新)する。
次に、図8のフローチャートを参照して、前述した再構成処理(図5に示すステップS8の処理)の処理手順について説明する。この再構成処理は、RAID機能部211によって故障が検出されたHDDが新たなHDDに交換された場合に実行される。ここでは、HDD30-1、30-2、…、30-6のうちのHDD30-2について故障が検出され、当該HDD30-2が新たなHDD(新HDD)に交換されたものとして説明する。
まず、再構成機能部213は、再構成処理が完了した位置(ストライプ)を示す再構成完了位置をリセットする(ステップS31)。この再構成完了位置としては、HDD30-1、30-2、…、30-6における例えばストライプ番号が用いられる。
次に、再構成機能部213は、外部からのI/O要求があるか、つまり、外部から送信されたI/O要求がRAIDコントローラ20において取得されたか否かを判定する(ステップS32)。このI/O要求には、リード要求またはライト要求が含まれる。
I/O要求があると判定された場合(ステップS32のYES)、再構成機能部213は、当該I/O要求に基づいて再構成時I/O処理を実行する(ステップS33)。
ここで、再構成時I/O処理について簡単に説明する。この再構成時I/O処理においては、再構成機能部213は、再構成完了位置に基づいてI/O要求によるアクセスの対象となるストライプ(アクセス対象ストライプ)が再構成処理済みであるか否かを判定する。
アクセス対象ストライプが再構成処理済みであると判定された場合、再構成機能部213は、通常のRAID6と同様の処理を実行する。具体的には、I/O要求がリード要求の場合には、アクセス対象ストライプにおけるデータブロックを当該要求に対する応答として返す。I/O要求がライト要求の場合には、当該要求に応じてデータブロックを書き込み、アクセス対象ストライプにおけるPパリティ及びQパリティを更新する。
一方、アクセス対象ストライプが再構成処理済みでないと判定された場合、前述した図7に示す1台故障時I/O処理と同様の処理が実行される。
再構成機能部213によって再構成時I/O処理が実行されると、上記したステップS32に戻って処理が繰り返される。
上記したステップS32においてI/O要求がないと判定された場合、再構成機能部213は、再構成完了位置に基づいて再構成処理が実行されていないストライプの1つについて以下のステップS34〜ステップS36の処理を実行する。この場合、再構成機能部213は、再構成処理が実行されていないストライプのうちストライプ番号が最も小さいストライプについて処理を実行する。以下、この処理の対象となるストライプを再構成対象ストライプとする。
再構成機能部213は、置換完了情報格納部221に格納されている置換完了情報に基づいて、再構成対象ストライプについてパリティ置換処理が完了しているか否かを判定する(ステップS34)。なお、パリティ置換処理において説明したように、当該パリティ置換処理が完了しているストライプは、必ずQパリティが存在する状態である。
再構成対象ストライプについてパリティ置換処理が完了していると判定された場合(ステップS34のYES)、再構成機能部213は、当該再構成対象ストライプについて再構成処理(以下、ストライプ再構成処理と表記)が実行される(ステップS35)。このストライプ再構成処理の詳細については後述する。
一方、再構成対象ストライプについてパリティ置換処理が実行されていないと判定された場合(ステップS34のNO)、再構成対象ストライプについて通常のRAID6と同様の再構成処理がRAID機能部211によって実行される(ステップS36)。この場合の再構成対象ストライプは、データブロック、Pパリティ及びQパリティのいずれかが欠損している状態である。
具体的には、再構成対象ストライプにおいてデータブロックが欠損している場合、RAID機能部211は、当該再構成対象ストライプにおけるデータブロック(欠損しているデータブロック以外のデータブロック)及びPパリティから当該欠損しているデータブロックを復元し、当該復元されたデータブロックを新HDD(の当該再構成ストライプに該当する箇所)に書き込む。なお、この場合、PパリティでなくQパリティを用いてデータブロックを復元することも可能であるが、計算処理量の軽減を図るためPパリティを用いる方が好ましい。
また、再構成対象ストライプにおいてPパリティが欠損している場合、RAID機能部211は、当該再構成対象ストライプにおけるデータブロックからXOR演算によりPパリティを再計算し、当該再計算されたPパリティを新HDDに書き込む。
また、再構成対象ストライプにおいてQパリティが欠損している場合、RAID機能部211は、当該再構成対象ストライプにおけるデータブロックからガロア演算によりQパリティを再計算し、当該再計算されたQパリティを新HDDに書き込む。
再構成対象ストライプについてパリティ置換処理が完了していない場合は、上記したような通常のRAID6と同様の再構成処理が実行される。
上記したステップS35またはステップS36の処理が実行されると、再構成機能部213は、再構成完了位置に基づいて、再構成処理が最終ストライプ(ストライプ番号が最後のストライプ)まで実行されたか否かを判定する(ステップS37)。
再構成処理が最終ストライプまで実行されていないと判定された場合(ステップS37のNO)、再構成機能部213は、再構成完了位置を更新する(ステップS38)。つまり、再構成機能部213は、再構成完了位置を上記したステップS34〜ステップS36の処理が実行された再構成対象ストライプのストライプ番号に更新する。
ステップS38の処理が実行されると、上記したステップS32に戻って処理が繰り返される。このようにステップS32に戻って処理が繰り返される場合のステップS34〜ステップS36の処理は、再構成完了位置(のストライプ)の次のストライプを再構成対象ストライプとして実行される。
一方、再構成処理が最終ストライプまで実行されたと判定された場合(ステップS37のYES)、再構成処理は終了される。再構成処理が終了されると、ディスクアレイ装置10は正常時の処理に戻る。
次に、図9のフローチャートを参照して、前述したストライプ再構成処理(図8に示すステップS35の処理)の処理手順について説明する。このストライプ再構成処理は、上記したようにパリティ置換処理が完了しているストライプ(再構成対象ストライプ)に対して実行される。なお、再構成対象ストライプには、上記したパリティ置換処理により必ずQパリティが存在する。
再構成機能部213は、RAID機能部211によって検出された例えばHDD30-2の故障により、再構成対象ストライプにおいてQパリティが欠損したか否かを判定する(ステップS41)。この場合、再構成機能部213は、再構成対象ストライプのストライプ番号からパリティ(Pパリティ及びQパリティ)の位置(HDD番号)を算出(決定)する。これにより、再構成対象ストライプにおいて、RAID機能部211によって故障が検出されたHDD30-2にQパリティが格納されていた(つまり、当該故障によりQパリティが欠損した)か否かが判定される。
再構成対象ストライプにおいてQパリティが欠損したと判定された場合を想定する(ステップS41YES)。この場合、再構成対象ストライプにおいては、Qパリティが欠損したストライプに対してパリティ置換処理が実行されているため、本来Pパリティが格納されているべき位置に再計算されたQパリティが上書きされている状態となっている。
したがって、再構成機能部213は、上記したパリティ置換処理により、当該再構成対象ストライプにおいて本来Pパリティが格納されている位置に上書きされたQパリティを読み出し、当該Qパリティを新HDDに書き込む(ステップS42)。
次に、再構成機能部213は、再構成対象ストライプにおける全てのデータブロック(ここでは、4つのデータブロック)を読み出す。再構成機能部213は、読み出されたデータブロックからXOR演算によりPパリティを再計算する(ステップS43)。
再構成機能部213は、再構成対象ストライプにおける本来Pパリティが格納されるべき位置(つまり、Qパリティが格納されていた位置)に、再計算されたPパリティを書き込む(ステップS44)。
一方、再構成対象ストライプにおいてQパリティが欠損していないと判定された場合(ステップS41のNO)、再構成機能部213は、RAID機能部211によって検出されたHDDの故障により、再構成対象ストライプにおいてPパリティが欠損したか否かを判定する(ステップS45)。この場合、再構成機能部213は、上記したQパリティが欠損したか否かの判定処理と同様に、Pパリティが欠損したか否かを判定することができる。
再構成対象ストライプにおいてPパリティが欠損したと判定された場合を想定する(ステップS45のYES)。この場合、再構成対象ストライプにおいては、Pパリティが欠損した状態となっている。
この場合、再構成機能部213は、再構成対象ストライプにおける全てのデータブロックを読み出す。再構成機能部213は、読み出されたデータブロックからXOR演算によるPパリティを再計算する(ステップS46)。
次に、再構成機能部213は、再計算されたPパリティを新HDDに書き込む(ステップS47)。
一方、再構成対象ストライプにおいてPパリティが欠損していないと判定された場合(ステップS45のNO)、つまり、再構成対象ストライプにおいてデータブロックのうちの1つが欠損したと判定された場合、再構成機能部213は、再構成対象ストライプにおけるデータブロック(欠損したデータブロック以外のデータブロック)及びPパリティから当該欠損したデータブロックを再計算する(ステップS48)。なお、欠損したデータブロックの再計算には、Pパリティの代わりに再構成対象ストライプにおけるQパリティを用いても構わない。
次に、再構成機能部213は、再計算されたデータブロックを新HDDに書き込む(ステップS49)。
上記したように、再構成対象ストライプに対してストライプ再構成処理を実行することによって、Qパリティが欠損した再構成対象ストライプにおいては前述したパリティ置換処理において既にQパリティが再計算されているため、Pパリティの計算処理と比較して処理量(処理時間)の多いQパリティの計算処理を省略することができる。
ここで、図10を参照して、HDD30-1、30-2、…、30-6のうちの1台の故障がRAID機能部211によって検出された場合のRAIDコントローラ20の動作(主として、パケット置換処理及びストライプ再構成処理)について具体的に説明する。
ここでは、前述した図4に示すディスクアレイ装置10が有するHDD30-1、30-2、…、30-6のうちのHDD30-2の故障がRAID機能部211によって検出されたものとして説明する。
図10に示す例では、ストライプ番号1、2、4、5及び6のストライプ(上から1、2、4、5及び6番目のストライプ)では、HDD30-2の故障によりデータブロックまたはPパリティが欠損している。一方、ストライプ番号3のストライプ(上から3番目のストライプ)では、HDD30-2の故障によりQパリティが欠損している。
なお、図10に示すHDDの台数及びデータの配列規則によれば、例えばストライプ番号6以降のストライプについても同様にHDD30-2の故障によりQパリティが欠損したストライプを算出できる。図10に示す例では、6ストライプ毎、つまり、ストライプ番号6N+3(N=0、1、2、…)のストライプにおいて、HDD30-2の故障によりQパリティが欠損していることが算出できる。同様に、ストライプ番号6N+4のストライプにおいて、HDD30-2の故障によりPパリティが欠損していることが算出できる。
ここで、故障したHDD30-2が新HDDに交換される前に、ストライプ番号3のストライプを置換対象ストライプとしてパリティ置換処理が実行された場合を想定する(ステップS51)。この場合、図10に示すように、ストライプ番号3のストライプにおけるデータブロック(ここでは、HDD30-3、30-4、30-5及び30-6に格納されているD31、D32、D33及びD34)からガロア演算によりQパリティ(Q3)が再計算される。この再計算されたQ3は、このストライプ番号3のストライプにおいてPパリティ(P3)が格納されるべき位置(ここでは、HDD30-1)に上書きされる。
なお、ストライプ番号3のストライプ以外のストライプを置換対象ストライプとするパリティ置換処理においては、当該置換対象ストライプにおいてはQパリティが欠損していないためQパリティの再計算及び上書き等の処理は実行されない。
ここで、故障したHDD30-2が新たなHDD100に交換され、再構成処理が実行される場合を想定する(ステップS52)。この場合、図10に示すデータブロック(D12)が欠損したストライプ番号1のストライプにおいては、当該ストライプにおけるデータブロック(ここでは、HDD30-1、30-3及び30-4に格納されているD11、D13及びD14)及びPパリティ(ここでは、HDD30-5に格納されているP1)からD12が復元(再計算)され、当該復元されたD12が新HDD100に書き込まれる。なお、ストライプ番号2、5及び6のストライプについても同様であるためその詳しい説明を省略する。
また、Qパリティ(Q3)が欠損したストライプ番号3のストライプにおいては、当該ストライプにおける本来Pパリティが格納されるべき位置(ここでは、HDD30-1)のQパリティ(ここでは、Q3)が新HDD100に書き込まれる。また、ストライプ番号3のストライプにおけるデータブロック(ここでは、HDD30-3、30-4、30-5及び30-6に格納されているD31、D32、D33及びD34)からXOR演算によりPパリティ(ここでは、P3)が再計算され、Q3が上書きされていたHDD30-1(本来P3が格納されるべき位置)に当該P3が書き込まれる。つまり、HDD30-2の故障によりQ3が欠損した場合であっても、再構成処理時に当該Q3の再計算をすることなくストライプを再構成できる。
また、Pパリティ(P4)が欠損したストライプ番号4のストライプにおいては、当該ストライプにおけるデータブロック(ここでは、HDD30-1、30-4、30-5及び30-6に格納されているD44、D41、D42及びD43)からXOR演算によりPパリティ(ここでは、P4)が再計算され、当該再計算されたP4が新HDD100に書き込まれる。
上記したように本実施形態においては、RAID6を構成する複数のHDD(HDD30-1、30-2、…、30-6)のうちの1台の故障によりQパリティが欠損したストライプにおいて、当該ストライプにおける全てのデータブロックからガロア演算により当該欠損したQパリティが再計算され、当該再計算されたQパリティが当該ストライプにおけるPパリティ(の位置)に上書きされる。本実施形態においては、故障が検出されたHDDを新たなHDDと交換することによりRIAD6を再構成する場合に、当該故障によりQパリティが欠損したストライプにおいてPパリティの位置に上書きされたQパリティを当該新たなHDDに書き込み、当該ストライプにおける全てのデータブロックからXOR演算によりPパリティが再計算され、本来Pパリティが格納される位置(Qパリティが上書きされていた位置)に当該再計算されたPパリティが書き込まれる。
例えばRAID5のように冗長性がHDD1台である構成(つまり、HDD1台までの故障に耐えられる構成)の場合では、1台故障後に更に他のHDDの故障が発生するような状況には耐えられる余裕がないため、当該RAIDの再構成作業の優先度は相当に高く、I/O性能の低下を認容せざるを得ない場合が多い。
しかしながら、RAID6においては冗長性がHDD2台であるため、1台故障時においては更に1台の故障には耐え得る余裕があるため、上記したRAID5等と比較すると、この場合におけるRAIDの再構成作業の緊急性は必ずしも高いものではない。したがって、故障が検出された物理的なHDDの交換自体が先延ばしにされる場合が多い。
また、RAI6においては、HDD1台故障後にHDDを交換することによりRAIDの再構成が行われる場合、上記したように更に1台のHDDの故障には耐え得るため、通常のI/O処理を優先的に実行し、再構成動作は当該I/O処理がない(または少ない)ときに実行される、という運用が効率的である。しかしながら、このような運用においては再構成の完了まで多くの時間を要するため、この間に別のHDDが故障した場合には緊急の再構成が必要となる場合がある。
このような運用において、上記した本実施形態によれば、多くの処理時間を要するQパリティの再計算を再構成前の段階でしておくため、再構成時にはQパリティを計算することがなくなり、代わりにPパリティの計算が実行されることになる。
このPパリティの計算は、Qパリティの計算に比べて高速かつ少ないリソースで実行できる。このため、本実施形態においては、再構成時のI/O性能の低下を軽減し、また、再構成に要する時間を短縮することが可能となる。
すなわち、本実施形態においては、故障が検出されたHDDの交換後に再構成作業の全てを実行するのではなく、当該作業の一部(多くの処理時間を要するQパリティの再計算処理)をHDD交換前(つまり、再構成作業前)に実行するため、I/O性能に与える悪影響を軽減することが可能となる。
なお、本実施形態においては、HDD交換前にパリティ置換処理でQパリティの再計算が実行されるが、当該処理はいつでも停止または中断しても構わないため、通常のI/O処理に影響を与えない範囲で実行されるように配分することができる。
また、本実施形態においては、ディスクアレイ装置10が有するRAIDコントローラ20はI/Oバス上にハードウェアとして存在する、例えばPCI-Express上のRAIDカードのような形式であるものとして説明したが、当該RAIDコントローラ20は、これとは異なる形式であっても構わない。具体的には、RAIDコントローラ20は、例えば、RAIDコントローラ20がCPU内の回路として実装される形式、RAIDコントローラ20がチップセットに内蔵されており、内部バスに接続されている形式、または、RAIDコントローラ20のハードウェアが存在せず、コンピュータの主プロセッサと主メモリによって実行されるソフトウェアである形式のいずれであっても本願発明を適用することは可能である。
また、本実施形態においては、ディスクアレイ装置10が物理記憶装置としてHDDを有するものとして説明したが、例えば半導体記憶装置のような他の物理記憶装置を用いてRAID6を構成する場合についても容易に適用可能である。
また、本願発明は、上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組合せにより種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。
10…ディスクアレイ装置、20…RAIDコントローラ(ディスクアレイ制御装置)、21…RAIDコントローラプロセッサ、22…RAIDコントローラメモリ、30-1、30-2、…、30-n…HDD(物理記憶装置)、211…RAID機能部、212…パリティ置換機能部、213…再構成機能部、221…置換完了位置格納部。
Claims (4)
- データを格納する2台以上の第1の記憶装置と、前記第1の記憶装置に格納されているデータを復元するために用いられる第1のパリティデータであって、当該第1の記憶装置に格納されているデータから第1の計算方法によって計算される第1のパリティデータを格納する第2の記憶装置と、前記第1の記憶装置に格納されているデータを復元するために用いられる前記第1のパリティデータとは異なる第2のパリティデータであって、当該第1の記憶装置に格納されているデータから前記第1の計算方法より複雑な第2の計算方法によって計算される第2のパリティデータを格納する第3の記憶装置と接続されるディスクアレイ制御装置において、
前記第3の記憶装置が故障した場合に、当該第3の記憶装置の故障を検出する検出手段と、
前記第3の記憶装置の故障が検出された場合、前記第1の記憶装置に格納されているデータから前記第2の計算方法によって第2のパリティデータを計算する第1の計算手段と、
前記第1の計算手段によって計算された第2のパリティデータを、前記第2の記憶装置に格納されている第1のパリティデータに上書きする上書き手段と、
前記故障が検出された第3の記憶装置が第4の記憶装置に交換された場合、前記第1の記憶装置に格納されているデータ及び前記第2の記憶装置に上書きされた第2のパリティデータを読み出す読み出し手段と、
前記第2の記憶装置から読み出された第2のパリティデータを前記第4の記憶装置に書き込む第1の書き込み手段と、
前記第1の記憶装置から読み出されたデータから前記第1の計算方法によって第1のパリティデータを計算する第2の計算手段と、
前記第2の計算手段によって計算された第1のパリティデータを前記第2の記憶装置に書き込む第2の書き込み手段と
を具備することを特徴とするディスクアレイ制御装置。 - 前記第1の記憶装置に対してデータを書き込むことを要求する書き込み要求を取得する取得手段と、
前記取得された書き込み要求に応じてデータを前記第1の記憶装置に書き込む第3の書き込み手段と、
前記第2のパリティデータが前記第2の記憶装置に格納されている第1のパリティデータに上書きされているかを判定する判定手段と
を更に具備し、
前記第1の計算手段は、前記第2のパリティデータが上書きされていると判定された場合、前記第3の書き込み手段によって書き込まれたデータから前記第2の計算方法によって第2のパリティデータを計算し、
前記上書き手段は、前記第3の書き込み手段によって書き込まれたデータから前記第2の計算方法によって計算された第2のパリティデータを、前記第2の記憶装置に上書きする
ことを特徴とする請求項1記載のディスクアレイ制御装置。 - 置換完了情報格納処理手段と置換完了情報格納手段とを更に具備し、
前記第1、第2及び第3の記憶装置は、当該第1の記憶装置に格納されているデータ、当該第2の記憶装置に格納されている第1のパリティデータ及び当該第3の記憶装置に格納されている第2のパリティデータから構成される複数のストライプを有し、
前記第1の計算手段は、前記第3の記憶装置の故障が検出された場合、前記第1、第2及び第3の記憶装置が有するストライプ毎に、前記第1の記憶装置に格納されているデータから前記第2の計算方法によって第2のパリティデータを計算し、
前記上書き手段は、前記ストライプ毎に計算された第2のパリティデータを、当該ストライプを構成する第1のパリティデータに上書きし、
前記置換完了情報格納処理手段は、前記上書き手段によって前記ストライプ毎に計算された第2のパリティデータが当該ストライプを構成する第1のパリティデータに上書きされた旨を示す置換完了情報を、前記置換完了情報格納手段に格納し、
前記判定手段は、前記置換完了情報格納手段に格納された置換完了情報に基づいて、前記第3の書き込み手段によって書き込まれたデータによって構成されるストライプ毎に計算された第2のパリティデータが当該ストライプを構成する第1のパリティデータに上書きされているかを判定する
ことを特徴とする請求項2記載のディスクアレイ制御装置。 - データを格納する2台以上の第1の記憶装置と、前記第1の記憶装置に格納されているデータを復元するために用いられる第1のパリティデータであって、当該第1の記憶装置に格納されているデータから第1の計算方法によって計算される第1のパリティデータを格納する第2の記憶装置と、前記第1の記憶装置に格納されているデータを復元するために用いられる前記第1のパリティデータとは異なる第2のパリティデータであって、当該第1の記憶装置に格納されているデータから前記第1の計算方法より複雑な第2の計算方法によって計算される第2のパリティデータを格納する第3の記憶装置と、前記第1の記憶装置、第2の記憶装置及び第3の記憶装置と接続されるディスクアレイ制御装置とを備えるディスクアレイ装置において、
前記ディスクアレイ制御装置は、
前記第3の記憶装置が故障した場合に、当該第3の記憶装置の故障を検出する検出手段と、
前記第3の記憶装置の故障が検出された場合、前記第1の記憶装置に格納されているデータから前記第2の計算方法によって第2のパリティデータを計算する第1の計算手段と、
前記第1の計算手段によって計算された第2のパリティデータを、前記第2の記憶装置に格納されている第1のパリティデータに上書きする上書き手段と、
前記故障が検出された第3の記憶装置が第4の記憶装置に交換された場合、前記第1の記憶装置に格納されているデータ及び前記第2の記憶装置に上書きされた第2のパリティデータを読み出す読み出し手段と、
前記第2の記憶装置から読み出された第2のパリティデータを前記第4の記憶装置に書き込む第1の書き込み手段と、
前記第1の記憶装置から読み出されたデータから前記第1の計算方法によって第1のパリティデータを計算する第2の計算手段と、
前記第2の計算手段によって計算された第1のパリティデータを前記第2の記憶装置に書き込む第2の書き込み手段と
を含む
ことを特徴とするディスクアレイ装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009152311A JP4843695B2 (ja) | 2009-06-26 | 2009-06-26 | ディスクアレイ制御装置及びディスクアレイ装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009152311A JP4843695B2 (ja) | 2009-06-26 | 2009-06-26 | ディスクアレイ制御装置及びディスクアレイ装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2011008583A JP2011008583A (ja) | 2011-01-13 |
JP4843695B2 true JP4843695B2 (ja) | 2011-12-21 |
Family
ID=43565150
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2009152311A Expired - Fee Related JP4843695B2 (ja) | 2009-06-26 | 2009-06-26 | ディスクアレイ制御装置及びディスクアレイ装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4843695B2 (ja) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2012099937A2 (en) * | 2011-01-18 | 2012-07-26 | Lsi Corporation | Higher-level redundancy information computation |
CN115167787B (zh) * | 2022-09-06 | 2023-01-24 | 苏州浪潮智能科技有限公司 | 一种数据转存方法、系统、设备及计算机可读存储介质 |
CN117041256B (zh) * | 2023-10-08 | 2024-02-02 | 深圳市连用科技有限公司 | 一种网络数据传输存储方法及系统 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006171957A (ja) * | 2004-12-14 | 2006-06-29 | Fujitsu Ltd | ストレージ制御装置および方法 |
JP2008017662A (ja) * | 2006-07-07 | 2008-01-24 | Yonezawa Densen Kk | 無接点充電器 |
JP4469822B2 (ja) * | 2006-09-15 | 2010-06-02 | 株式会社東芝 | ディスクアレイ装置およびディスクアレイ装置のデータ管理方法 |
JP4905161B2 (ja) * | 2007-01-31 | 2012-03-28 | 富士通株式会社 | Raid装置及びガロア体を用いたデータ復元装置 |
JP2009037304A (ja) * | 2007-07-31 | 2009-02-19 | Hitachi Ltd | Raidレベルを変更する機能を有したストレージシステム |
-
2009
- 2009-06-26 JP JP2009152311A patent/JP4843695B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2011008583A (ja) | 2011-01-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109388515B (zh) | 用于存储数据的系统及方法 | |
JP5923964B2 (ja) | ディスクアレイ装置、制御装置、およびプログラム | |
EP2703991B1 (en) | Scalable storage protection | |
JP4901968B2 (ja) | 半導体記憶装置 | |
US8694865B2 (en) | Data storage device configured to reduce buffer traffic and related method of operation | |
JP5066199B2 (ja) | 半導体記憶装置 | |
US7386758B2 (en) | Method and apparatus for reconstructing data in object-based storage arrays | |
JP5968562B2 (ja) | ミラーリングされた多次元raidのための方法およびシステム | |
JP2016530637A (ja) | Raidパリティストライプ再構成 | |
KR20120086695A (ko) | Raid 그룹의 여러 스트라이핑을 갖는 메모리 및 그 수행방법 | |
TWI451257B (zh) | 保護在直接附加儲存(das)系統中快取資料的完整性之裝置及方法 | |
JP2010015195A (ja) | 記憶制御装置及び記憶制御方法 | |
JP2018508073A (ja) | データ除去、割り当て、及び再構築 | |
US20170277450A1 (en) | Lockless parity management in a distributed data storage system | |
US11687251B2 (en) | Dynamic repartition of memory physical address mapping | |
CN111124262A (zh) | 独立盘冗余阵列(raid)的管理方法、设备和计算机可读介质 | |
JP5331018B2 (ja) | ソリッド・ステート・ドライブ装置およびミラー構成再構成方法 | |
JP2000259359A (ja) | Raid装置および記録媒体 | |
US9323617B2 (en) | Remap raid to maintain raid level | |
JP4843695B2 (ja) | ディスクアレイ制御装置及びディスクアレイ装置 | |
US9106260B2 (en) | Parity data management for a memory architecture | |
JP6052288B2 (ja) | ディスクアレイ制御装置、ディスクアレイ制御方法及びディスクアレイ制御プログラム | |
JP2006178926A (ja) | 複数のオブジェクトベースのストレージ装置を使用したストレージ装置、システム、および方法 | |
CN114625563B (zh) | Ssd的数据保护方法、装置、可读存储介质及电子设备 | |
JP5598124B2 (ja) | データ記録再生装置、データ記録方法、及び、データ記録プログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
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: 20110913 |
|
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: 20111007 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20141014 Year of fee payment: 3 |
|
LAPS | Cancellation because of no payment of annual fees |