Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
JP3739766B2 - ディスクアレイ装置、ディスクアレイシステム、パリティデータ分散方法及びコンピュータプログラム - Google Patents
[go: Go Back, main page]

JP3739766B2 - ディスクアレイ装置、ディスクアレイシステム、パリティデータ分散方法及びコンピュータプログラム - Google Patents

ディスクアレイ装置、ディスクアレイシステム、パリティデータ分散方法及びコンピュータプログラム Download PDF

Info

Publication number
JP3739766B2
JP3739766B2 JP2003277939A JP2003277939A JP3739766B2 JP 3739766 B2 JP3739766 B2 JP 3739766B2 JP 2003277939 A JP2003277939 A JP 2003277939A JP 2003277939 A JP2003277939 A JP 2003277939A JP 3739766 B2 JP3739766 B2 JP 3739766B2
Authority
JP
Japan
Prior art keywords
data
parity data
disk device
update
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.)
Expired - Lifetime
Application number
JP2003277939A
Other languages
English (en)
Other versions
JP2005044147A (ja
Inventor
高志 保理江
雄作 中島
公久 近藤
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.)
NTT Data Group Corp
Original Assignee
NTT Data 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 NTT Data Corp filed Critical NTT Data Corp
Priority to JP2003277939A priority Critical patent/JP3739766B2/ja
Publication of JP2005044147A publication Critical patent/JP2005044147A/ja
Application granted granted Critical
Publication of JP3739766B2 publication Critical patent/JP3739766B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Description

本発明は、ディスクアレイ装置、ディスクアレイシステム、パリティデータ分散方法及びコンピュータプログラムに関し、特に、負荷を分散することにより性能の向上を図ることができるディスクアレイ装置、ディスクアレイシステム、パリティデータ分散方法及びコンピュータプログラムに関する。
高速なデータ転送と、データディスク装置の故障により喪失したデータの復元と、を可能にするシステムとして、RAID(Redundant Arrays of Inexpensive Disks)等の冗長化ディスク構成を適用するディスクアレイを備えるディスクアレイシステムが開示されている(例えば特許文献1参照)。
特許文献1に開示されたディスクアレイシステムは、データを格納する複数のデータディスク装置と、該データの排他的論理和(EXCLUSIVE-OR)であるパリティデータを格納するパリティディスク装置と、を備えている。このようなパリティディスク装置を備えることにより、複数のデータディスク装置のうち1台のデータディスク装置に格納されているデータを喪失した場合であっても、ディスクアレイシステムは、他のデータディスク装置に格納されているデータと該パリティディスク装置に格納されているパリティデータとに基づいて、喪失したデータを復元することができる。
特許公開平5−324579号公報(第2−8頁、第4−5図)。
しかしながら、特許文献1に開示されたディスクアレイシステムでは、データが更新される毎にパリティディスク装置にアクセスする必要があるため、パリティディスク装置に負荷が集中していしまう。このため、ディスクアレイシステムの性能は、パリティディスク装置の性能に依存してしまうといった欠点があった。
本発明は、上述した事情に鑑みてなされたものであって、負荷を分散することにより性能の向上を図ることができるディスクアレイ装置、ディスクアレイ装置、ディスクアレイシステム、パリティデータ分散方法及びコンピュータプログラムを提供することを目的とする。
上記目的を達成するために、本発明の第1の観点に係るディスクアレイ装置は、ディスクアレイを構成する複数のディスク装置を備え、所定ブロック単位に分割したデータと該データから生成されるパリティデータとを、それぞれ異なるディスク装置に書き込むディスクアレイ装置であって、データ更新の指示に応じて、更新が指示されたデータを記憶する第1のディスク装置と該更新が指示されたデータのパリティデータを記憶する第2のディスク装置とから、それぞれ更新前のデータと更新前のパリティデータとを読み出す読出手段と、更新後のデータと前記読出手段により読み出された更新前のデータ及び更新前のパリティデータとから更新後のパリティデータを生成するパリティデータ生成手段と、前記第1のディスク装置に記憶されたパリティデータのブロック数が所定数以下か否かを判別する判別手段と、前記判別手段により第1のディスク装置に記憶されたパリティデータのブロック数が所定数以下であると判別された場合、前記更新後のデータを第2のディスク装置に、前記パリティデータ生成手段により生成された更新後のパリティデータを第1のディスク装置に、それぞれ書き込む書込手段と、を備える、ことを特徴とする。
上記目的を達成するために、本発明の第2の観点に係るディスクアレイ装置は、ディスクアレイを構成する複数のディスク装置を備え、所定ブロック単位に分割したデータと該データから生成されるパリティデータとを、それぞれ異なるディスク装置に書き込むディスクアレイ装置であって、データ更新の指示に応じて、更新が指示されたデータを記憶する第1のディスク装置と該更新が指示されたデータのパリティデータを記憶する第2のディスク装置とから、それぞれ更新前のデータと更新前のパリティデータとを読み出す読出手段と、更新後のデータと前記読出手段により読み出された更新前のデータ及び更新前のパリティデータとから更新後のパリティデータを生成するパリティデータ生成手段と、前記第1のディスク装置に記憶されたパリティデータのブロック数と、前記第2のディスク装置に記憶されたパリティデータのブロック数と、を比較するブロック数比較手段と、前記ブロック数比較手段により第1のディスク装置に記憶されたパリティデータのブロック数が第2のディスク装置に記憶されたパリティデータのブロック数以下であると判別された場合、前記更新後のデータを第2のディスク装置に、前記パリティデータ生成手段により生成された更新後のパリティデータを第1のディスク装置に、それぞれ書き込む書込手段と、を備える、ことを特徴とする。
上記目的を達成するために、本発明の第3の観点に係るディスクアレイ装置は、ディスクアレイを構成する複数のディスク装置を備え、所定ブロック単位に分割したデータと該データから生成されるパリティデータとを、それぞれ異なるディスク装置に書き込むディスクアレイ装置であって、データ更新の指示に応じて、更新が指示されたデータを記憶する第1のディスク装置と該更新が指示されたデータのパリティデータを記憶する第2のディスク装置とから、それぞれ更新前のデータと更新前のパリティデータとを読み出す読出手段と、更新後のデータと前記読出手段により読み出された更新前のデータ及び更新前のパリティデータとから更新後のパリティデータを生成するパリティデータ生成手段と、前記第1のディスク装置の更新回数と前記第2のディスク装置の更新回数とを比較する更新回数比較手段と、前記更新回数比較手段により第1のディスク装置の更新回数が第2のディスク装置の更新回数以上であると判別された場合、前記更新後のデータを第2のディスク装置に、前記パリティデータ生成手段により生成された更新後のパリティデータを第1のディスク装置に、それぞれ書き込む書込手段と、を備える、ことを特徴とする。
上記ディスクアレイ装置において、前記書込手段により更新後のパリティデータ及び更新後のデータが、それぞれ第1及び第2のディスク装置に書き込まれる毎に、各ディスク装置に記憶されているパリティデータのブロック数を計数する計数手段と、前記計数手段により計数された各ディスク装置に記憶されているパリティデータのブロック数から、パリティデータが各ディスク装置に分散している度合を示す分散度を算出する分散度算出手段と、をさらに備え、前記書込手段は、前記分散度算出手段により算出された分散度が所定値以下になると、前記更新後のデータを第1のディスク装置に、前記更新後のパリティデータを第2のディスク装置に、それぞれ書き込んでもよい。
上記目的を達成するために、本発明の第4の観点に係るディスクアレイシステムは、更新前のデータを記憶する第1のディスク装置と該更新前のデータから生成されたパリティデータを記憶する第2のディスク装置とを含みディスクアレイを構成する複数のディスク装置と、該第1のディスク装置を備える第1のコンピュータと、該第2のディスク装置を備え該第1のコンピュータにネットワークを介して接続された第2のコンピュータと、該第1及び第2のコンピュータにネットワークを介して接続され所定ブロック単位に分割した更新後のデータを第1及び第2のコンピュータのいずれかに送信するサーバコンピュータと、を備えるディスクアレイシステムであって、前記第2のコンピュータは、前記サーバコンピュータにより送信される更新後のデータを受信する第1の受信手段と、前記第1の受信手段により受信した更新後のデータと前記第2のディスク装置に記憶されている更新前のパリティデータとの排他的論理和を前記第1のコンピュータに送信する送信手段と、前記更新後のデータを第2のディスク装置に書き込む第1の書込手段と、を備え、前記第1のコンピュータは、前記送信手段により送信され排他的論理和を受信する第2の受信手段と、前記第2の受信手段により受信した排他的論理和と前記第1のディスク装置に記憶されている更新前のデータとから更新後のパリティデータを生成するパリティデータ生成手段と、前記パリティデータ生成手段により生成された更新後のパリティデータを前記第1のディスク装置に書き込む第2の書込手段と、を備える、ことを特徴とする。
上記ディスクアレイシステムにおいて、前記排他的論理和は、更新前のデータをAold、更新後のデータをAnew、更新前のパリティデータをPold、更新後のパリティデータをPnew、としたとき、以下の数1によって定義されてもよい。
Figure 0003739766
また、上記ディスクアレイシステムにおいて、前記パリティデータ生成手段は、排他的論理和をPsとしたとき、以下の数2によって定義される関係式を用いて更新後のパリティデータを生成してもよい。
Figure 0003739766
さらに、上記ディスクアレイシステムにおいて、前記サーバコンピュータは、前記第1のディスク装置に記憶されたパリティデータのブロック数が所定数以下か否かを判別する判別手段を備え、前記判別手段により第1のディスク装置に記憶されたパリティデータのブロック数が所定数以下であると判別された場合、更新後のデータを前記第2のコンピュータに送信してもよい。
また、上記ディスクアレイシステムにおいて、前記サーバコンピュータは、前記第1のディスク装置に記憶されたパリティデータのブロック数と、前記第2のディスク装置に記憶されたパリティデータのブロック数と、を比較するブロック数比較手段を備え、前記ブロック数比較手段により第1のディスク装置に記憶されたパリティデータのブロック数が第2のディスク装置に記憶されたパリティデータのブロック数以下であると判別された場合、更新後のデータを前記第2のコンピュータに送信してもよい。
さらに、上記ディスクアレイシステムにおいて、前記サーバコンピュータは、前記第1のディスク装置の更新回数と前記第2のディスク装置の更新回数とを比較する更新回数比較手段を備え、前記更新回数比較手段により第1のディスク装置の更新回数が第2のディスク装置の更新回数以上であると判別された場合、更新後のデータを前記第2のコンピュータに送信してもよい。
また、上記ディスクアレイシステムにおいて、前記サーバコンピュータは、前記第1及び第2の書込手段により更新後のデータと更新後のパリティデータとが、それぞれ第2及び第1のディスク装置に書き込まれる毎に、各ディスク装置に記憶されているパリティデータのブロック数を計数する計数手段と、前記計数手段により計数された各ディスク装置に記憶されているパリティデータのブロック数から、パリティデータが各ディスク装置に分散している度合を示す分散度を算出する分散度算出手段と、をさらに備え、前記分散度算出手段により算出された分散度が所定値以下になると、更新後のデータを前記第1のコンピュータに送信してもよい。
さらに、上記ディスクアレイ装置又はディスクアレイシステムにおいて、前記分散度は、前記ディスク装置の数をn、各ディスク装置に記憶されているパリティデータのブロック数をC、前記所定数をC0、としたとき、以下の数3によって定義されてもよい。
Figure 0003739766
また、上記ディスクアレイ装置又はディスクアレイシステムにおいて、前記所定数は、前記ディスク装置の数をn、各ディスク装置に記憶されているパリティデータのブロック数をC、としたとき、以下の数4によって定義されてもよい。
Figure 0003739766
上記目的を達成するために、本発明の第5の観点に係るパリティデータ分散方法は、ディスクアレイを構成する複数のディスク装置を備え、所定ブロック単位に分割したデータと該データから生成されるパリティデータとを、それぞれ異なるディスク装置に書き込むディスクアレイ装置におけるパリティデータ分散方法であって、データ更新の指示に応じて、更新が指示されたデータを記憶する第1のディスク装置と該更新が指示されたデータのパリティデータを記憶する第2のディスク装置とから、それぞれ更新前のデータと更新前のパリティデータとを読み出す読出工程と、更新後のデータと前記読出工程により読み出された更新前のデータ及び更新前のパリティデータとから更新後のパリティデータを生成するパリティデータ生成工程と、前記第1のディスク装置に記憶されたパリティデータのブロック数が所定数以下か否かを判別する判別工程と、前記判別工程により第1のディスク装置に記憶されたパリティデータのブロック数が所定数以下であると判別された場合、前記更新後のデータを第2のディスク装置に、前記パリティデータ生成工程により生成された更新後のパリティデータを第1のディスク装置に、それぞれ書き込む書込工程と、を備える、ことを特徴とする。
上記目的を達成するために、本発明の第6の観点に係るパリティデータ分散方法は、ディスクアレイを構成する複数のディスク装置を備え、所定ブロック単位に分割したデータと該データから生成されるパリティデータとを、それぞれ異なるディスク装置に書き込むディスクアレイ装置におけるパリティデータ分散方法であって、データ更新の指示に応じて、更新が指示されたデータを記憶する第1のディスク装置と該更新が指示されたデータのパリティデータを記憶する第2のディスク装置とから、それぞれ更新前のデータと更新前のパリティデータとを読み出す読出工程と、更新後のデータと前記読出工程により読み出された更新前のデータ及び更新前のパリティデータとから更新後のパリティデータを生成するパリティデータ生成工程と、前記第1のディスク装置に記憶されたパリティデータのブロック数と、前記第2のディスク装置に記憶されたパリティデータのブロック数と、を比較するブロック数比較工程と、前記ブロック数比較工程により第1のディスク装置に記憶されたパリティデータのブロック数が第2のディスク装置に記憶されたパリティデータのブロック数以下であると判別された場合、前記更新後のデータを第2のディスク装置に、前記パリティデータ生成工程により生成された更新後のパリティデータを第1のディスク装置に、それぞれ書き込む書込工程と、を備える、ことを特徴とする。
上記目的を達成するために、本発明の第7の観点に係るパリティデータ分散方法は、ディスクアレイを構成する複数のディスク装置を備え、所定ブロック単位に分割したデータと該データから生成されるパリティデータとを、それぞれ異なるディスク装置に書き込むディスクアレイ装置におけるパリティデータ分散方法であって、データ更新の指示に応じて、更新が指示されたデータを記憶する第1のディスク装置と該更新が指示されたデータのパリティデータを記憶する第2のディスク装置とから、それぞれ更新前のデータと更新前のパリティデータとを読み出す読出工程と、更新後のデータと前記読出工程により読み出された更新前のデータ及び更新前のパリティデータとから更新後のパリティデータを生成するパリティデータ生成工程と、前記第1のディスク装置の更新回数と前記第2のディスク装置の更新回数とを比較する更新回数比較工程と、前記更新回数比較工程により第1のディスク装置の更新回数が第2のディスク装置の更新回数以上であると判別された場合、前記更新後のデータを第2のディスク装置に、前記パリティデータ生成工程により生成された更新後のパリティデータを第1のディスク装置に、それぞれ書き込む書込工程と、を備える、ことを特徴とする。
上記目的を達成するために、本発明の第8の観点に係るパリティデータ分散方法は、更新前のデータを記憶する第1のディスク装置と該更新前のデータから生成されたパリティデータを記憶する第2のディスク装置とを含みディスクアレイを構成する複数のディスク装置と、該第1のディスク装置を備える第1のコンピュータと、該第2のディスク装置を備え該第1のコンピュータにネットワークを介して接続された第2のコンピュータと、該第1及び第2のコンピュータにネットワークを介して接続され所定ブロック単位に分割した更新後のデータを第1及び第2のコンピュータのいずれかに送信するサーバコンピュータと、を備えるディスクアレイシステムにおけるパリティデータ分散方法であって、前記サーバコンピュータにより送信される更新後のデータを受信する第1の受信工程と、前記第1の受信工程により受信した更新後のデータと前記第2のディスク装置に記憶されている更新前のパリティデータとの排他的論理和を前記第1のコンピュータに送信する送信工程と、前記更新後のデータを第2のディスク装置に書き込む第1の書込工程と、前記送信工程により送信され排他的論理和を受信する第2の受信工程と、前記第2の受信工程により受信した排他的論理和と前記第1のディスク装置に記憶されている更新前のデータとから更新後のパリティデータを生成するパリティデータ生成工程と、前記パリティデータ生成工程により生成された更新後のパリティデータを前記第1のディスク装置に書き込む第2の書込工程と、を備える、ことを特徴とする。
上記目的を達成するために、本発明の第9の観点に係るコンピュータプログラムは、ディスクアレイを構成する複数のディスク装置を備えるコンピュータを、所定ブロック単位に分割したデータと該データから生成されるパリティデータとを、それぞれ異なるディスク装置に書き込む第1の書込手段、データ更新の指示に応じて、更新が指示されたデータを記憶する第1のディスク装置と該更新が指示されたデータのパリティデータを記憶する第2のディスク装置とから、それぞれ更新前のデータと更新前のパリティデータとを読み出す読出手段、更新後のデータと前記読出手段により読み出された更新前のデータ及び更新前のパリティデータとから更新後のパリティデータを生成するパリティデータ生成手段、前記第1のディスク装置に記憶されたパリティデータのブロック数が所定数以下か否かを判別する判別手段、前記判別手段により第1のディスク装置に記憶されたパリティデータのブロック数が所定数以下であると判別された場合、前記更新後のデータを第2のディスク装置に、前記パリティデータ生成手段により生成された更新後のパリティデータを第1のディスク装置に、それぞれ書き込む第2の書込手段、として機能させる。
上記目的を達成するために、本発明の第10の観点に係るコンピュータプログラムは、ディスクアレイを構成する複数のディスク装置を備えるコンピュータを、所定ブロック単位に分割したデータと該データから生成されるパリティデータとを、それぞれ異なるディスク装置に書き込む第1の書込手段、データ更新の指示に応じて、更新が指示されたデータを記憶する第1のディスク装置と該更新が指示されたデータのパリティデータを記憶する第2のディスク装置とから、それぞれ更新前のデータと更新前のパリティデータとを読み出す読出手段、更新後のデータと前記読出手段により読み出された更新前のデータ及び更新前のパリティデータとから更新後のパリティデータを生成するパリティデータ生成手段、前記第1のディスク装置に記憶されたパリティデータのブロック数と、前記第2のディスク装置に記憶されたパリティデータのブロック数と、を比較するブロック数比較手段、前記ブロック数比較手段により第1のディスク装置に記憶されたパリティデータのブロック数が第2のディスク装置に記憶されたパリティデータのブロック数以下であると判別された場合、前記更新後のデータを第2のディスク装置に、前記パリティデータ生成手段により生成された更新後のパリティデータを第1のディスク装置に、それぞれ書き込む第2の書込手段、として機能させる。
上記目的を達成するために、本発明の第11の観点に係るコンピュータプログラムは、ディスクアレイを構成する複数のディスク装置を備えるコンピュータを、所定ブロック単位に分割したデータと該データから生成されるパリティデータとを、それぞれ異なるディスク装置に書き込む第1の書込手段、データ更新の指示に応じて、更新が指示されたデータを記憶する第1のディスク装置と該更新が指示されたデータのパリティデータを記憶する第2のディスク装置とから、それぞれ更新前のデータと更新前のパリティデータとを読み出す読出手段、更新後のデータと前記読出手段により読み出された更新前のデータ及び更新前のパリティデータとから更新後のパリティデータを生成するパリティデータ生成手段、前記第1のディスク装置の更新回数と前記第2のディスク装置の更新回数とを比較する更新回数比較手段、前記更新回数比較手段により第1のディスク装置の更新回数が第2のディスク装置の更新回数以上であると判別された場合、前記更新後のデータを第2のディスク装置に、前記パリティデータ生成手段により生成された更新後のパリティデータを第1のディスク装置に、それぞれ書き込む第2の書込手段、として機能させる。
本発明により、負荷を分散することにより性能の向上を図ることができるディスクアレイ装置、ディスクアレイシステム、パリティデータ分散方法及びコンピュータプログラムを提供することができる。
[第1の実施の形態]
本発明の第1の実施の形態に係るディスクアレイ装置について、以下図面を参照して説明する。
ディスクアレイ装置1は、図1に示すように、ディスクアレイ20と、ディスクアレイコントローラ30と、から概略構成されている。
ディスクアレイ20は、複数(少なくとも3台以上)のディスク装置、例えばハードディスクドライブ等から構成される4台のディスク装置D1〜D4を備え、ディスク装置D1〜D4は、冗長化ディスク構成を適用する。このような冗長化ディスク構成を適用することにより、ディスク装置D1〜D4のうちいずれか1つが故障した場合であっても、該故障したディスク装置Dのデータの復元が可能となる。
また、ディスク装置D1〜D4は、初期状態においてRAID(Redundant Arrays of Inexpensive Disks)4の冗長化ディスク構成を適用し、ディスク装置D1〜D4のうち所定のディスク装置、本実施の形態においてはディスク装置D4がパリティデータを格納するパリティディスク装置として機能している。
ディスク装置D1〜D4には、予め設定されているブロック単位でデータの書込、書換が行われる。図2に示すように、ディスク装置D1には、ブロックB0、B4、…、B4k(k=0、1、…、19)、…、B76が、ディスク装置D2には、ブロックB1、B5、…、B(4k+1)、…、B77が、ディスク装置D3には、ブロックB2、B6、…、B(4k+2)、…、B78が、ディスク装置D3には、ブロックB3、B7、…、B(4k+3)、…、B79が、夫々設定されている。
図1に示すディスクアレイコントローラ30は、CPU(Central Processing Unit)、RAM(Random Access Memory)、ROM(Read Only Memory)等から構成されている。また、ディスクアレイコントローラ30は、インターフェイスI/F、例えばSCSI(Small Computer System Interface)、PCIバス(Peripheral Component Interconnect Bus)等を介してホストコンピュータ10及びディスクアレイ20の各ディスク装置D1〜D4に接続されている。
このディスクアレイコントローラ30により、ホストコンピュータ10は、ディスクアレイ20を構成する4台のディスク装置D1〜D4を1つの論理的ディスク装置として認識することが可能となる。
ディスクアレイコントローラ30は、ホストコンピュータ10からデータの書込が指示されると、書き込むデータをブロック単位に分割し、数5を用いて、3ブロック分のデータ、例えばA3k、A(3k+1)及びA(3k+2)からパリティデータPkを生成する。このパリティデータP0は、データA0、A1及びA2の排他的論理和として定義される。
Figure 0003739766
ディスクアレイコントローラ30は、ディスク装置D1〜D4の物理的に同一の位置にある4つのブロックを1つのストライプとして、同一のタイミングでデータの書込を行う。
図2に示す例では、ディスクアレイコントローラ30は、ブロックB0、B1、B2及びB3、をストライプS0、ブロックB4、B5、B6及びB7、をストライプS1、…、ブロックB4k、B(4k+1)、B(4k+2)及びB(4k+3)、をストライプSk、…、ブロックB76、B77、B78及びB79、をストライプS19、…と夫々設定する。そして、ディスクアレイコントローラ30は、例えば、3ブロック分のデータA0、A1及びA2と、これらのパリティデータP0と、を同一タイミングで、ストライプS0を構成するブロックB0、B1、B2、B3及びB4に、夫々書き込む。
これにより、ディスク装置D1〜D4には、図3に示すように、ストライプS0にデータA0、A1、A2及びパリティデータP0が、ストライプS1にデータA3、A4、A5及びパリティデータP1が、…、ストライプSkにデータA3k、A(3k+1)、A(3k+2)及びパリティデータPkが、…、ストライプS19にデータA57、A58、A59及びパリティデータP19が、夫々記憶される。
また、図1に示すディスクアレイコントローラ30は、ホストコンピュータ10からデータの更新が指示されると、更新前のデータAoldと、これに対応する更新前のパリティデータPoldと、をディスクアレイ20から読み出す。そして、ディスクアレイコントローラ30は、更新前のデータAoldと更新後のデータAnewと更新前のパリティデータPoldとを用いて、更新後のパリティデータPnewを生成する。
例えば、更新前のデータをA3kold、更新後のデータをA3knew、更新前のパリティデータをPkold、としたとき、ディスクアレイコントローラ30は、ディスク装置D1に記憶されているデータA3koldと、ディスク装置D4に記憶されているパリティデータPkoldと、を読み出す。そして、ディスクアレイコントローラ30は、数5の変形式数6を用いて、更新後のデータAknewと、更新前のデータA3kold及びパリティデータPkoldと、から更新後のパリティデータPknewを生成する。
Figure 0003739766
なお、数6は、数5を以下の手順に従って変形することにより導き出せる。まず、更新前のA3koldとパリティデータPkoldとの関係及び更新後のA3knewとパリティデータPknewとの関係は、数5を用いると、次の数7及び数8に示すようになる。
Figure 0003739766
Figure 0003739766
そして、数7を変形すると、数9に示すようになる。
Figure 0003739766
さらに、数9を数8に代入すると、数6に示す関係式が求まる。
Figure 0003739766
また、ディスクアレイコントローラ30は、RAM等に、各ディスク装置D1〜D4が記憶するパリティデータPのブロック数を計数するためのカウンタC1〜C4を備え、カウンタC1〜C4のカウント値は、夫々ディスク装置D1〜D4におけるパリティデータPのブロック数を示す。例えば図3に示す場合では、カウンタC1〜C3のカウント値は「0」、カウンタC4のカウント値は「20」、となる。ディスクアレイコントローラ30は、各ディスク装置D1〜D4が記憶するパリティデータPのブロック数が変更する毎に、カウンタC1〜C4のカウント値を更新する。
さらに、ディスクアレイコントローラ30は、更新するデータを記憶するディスク装置Dが備えるカウンタCのカウント値と、該ディスク装置Dにおいてデータ及び/又はパリティデータPが記憶されているブロック数をディスクアレイ20を構成するディスク装置数で除算した値(以下、理想カウント値という)と、比較する。本実施の形態の場合では、理想カウント値は、「5(=20/4)」となる。
比較の結果、カウント値が理想カウント値よりも大きいと判別した場合、ディスクアレイコントローラ30は、図4Aに示すように、更新前のデータAoldが記憶されているディスク装置Dに更新後のデータAnewを、更新前のパリティデータPoldが記憶されているディスク装置Dに更新後のパリティデータPnewを、書き込む。
一方、カウント値が理想カウント値以下であると判別した場合、ディスクアレイコントローラ30は、図4Bに示すように、更新前のデータAoldが記憶されているディスク装置Dに更新後のパリティデータPnewを、更新前のパリティデータPoldが記憶されているディスク装置Dに更新後のデータAnewを、書き込む。
即ち、ディスクアレイコントローラ30は、カウント値が理想カウント値よりも大きい場合、パリティデータPを記憶するディスク装置Dを変更せず、一方、カウント値が理想カウント値以下の場合、パリティデータPを記憶するディスク装置Dを変更する。
このようにして、ディスクアレイコントローラ30は、データAが更新される毎に、パリティデータPを各ディスク装置D1〜D4に分散し、各ディスク装置D1〜D4のパリティデータPを記憶するブロック数を均一化することができる。換言すれば、ディスク装置D1〜D4のディスク構成を、データAが更新される毎に、RAID4の冗長化ディスク構成からRAID5の冗長化ディスクアレイ構成へと移行させることができる。
また、図1に示すディスクアレイコントローラ30は、カウント値が更新される毎に、数10によって定義される分散度を求める。例えば図3に示す場合では、分散度は、「300(=|0−5|^2+|0−5|^2+|0−5|^2+|20−5|^2)」となる。
Figure 0003739766
数10によって求めた分散度が所定値(例えば「5」)以下になると、ディスクアレイコントローラ30は、以降の動作において、ディスク装置Dが備えるカウンタCのカウント値と理想カウント値とを比較することなく、更新前のデータAoldを記憶するディスク装置Dに更新後のデータAnewを、また、更新前のパリティデータPoldを記憶するディスク装置Dに更新後のパリティデータPnewを、書き込む。即ち、ディスクアレイコントローラ30は、各ディスク装置DへのパリティデータPの分散動作を終了する。
次に、上記構成を備えるディスクアレイ装置1のパリティデータ分散動作について図5に示すフローチャート図を参照して説明する。
まず、ディスクアレイコントローラ30は、ホストコンピュータ10からデータの書込が指示されると、書き込むデータをブロック単位に分割し、3ブロック分のデータ、例えばA0、A1及びA2からパリティデータP0を生成する。そして、ディスクアレイシステム30は、データA0、A1及びA2とパリティデータP0とを同一タイミングでストライプS0を構成するブロックB0、B1、B2及びB3に夫々書き込む。
上記動作を繰り返すことにより、ディスク装置D1〜D4には、図3に示すように、ストライプS0にデータA0、A1、A2及びパリティデータP0が、ストライプS1にデータA3、A4、A5及びパリティデータP1が、…、ストライプS19にデータA57、A58、A59及びパリティデータP19が、夫々記憶される。なお、図3に示す場合におけるカウンタC1〜C4のカウント値は「0」、カウンタC4のカウント値は「20」、理想カウント値は「5」、分散度は「300」、となる。
そして、ホストコンピュータ10からデータの更新が指示されると、ディスクアレイ装置1は、図5のフローチャート図に示すパリティデータ分散動作を開始する。パリティデータ分散動作が開始すると、まず、ディスクアレイコントローラ30は、更新前のデータAoldと更新前のパリティデータPoldとをディスクアレイ20から読み出す(ステップS101)。
次に、ディスクアレイコントローラ30は、更新後のデータAnewと、更新前のデータAold及びパリティデータPoldと、から更新後のパリティデータPnewを生成する(ステップS102)。続いて、ディスクアレイコントローラ30は、更新するデータを記憶するディスク装置Dのカウント値と理想カウント値とを比較する(ステップS103)。
ステップS103における比較の結果、カウント値が理想カウント値よりも大きいと判別した場合(ステップS103にてYES)、ディスクアレイコントローラ30は、更新前のデータAoldが記憶されているディスク装置Dに更新後のデータAnewを、更新前のパリティデータPoldが記憶されているディスク装置Dに更新後のパリティデータPnewを、書き込み、ステップS109に進む(ステップS104)。
一方、カウント値が理想カウント値以下であると判別した場合(ステップS103にてNO)、ディスクアレイコントローラ30は、更新前のデータAoldが記憶されているディスク装置Dに更新後のパリティデータPnewを、更新前のパリティデータPoldが記憶されているディスク装置Dに更新後のデータAnewを、書き込む(ステップS105)。
この場合、ディスクアレイコントローラ30は、更新後のパリティデータPnewを記憶したディスク装置DのカウンタCと、更新後のデータAnewを記憶したディスク装置DのカウンタCと、のカウント値を更新するとともに(ステップS106)、更新したカウント値から分散度を求める(ステップS107)。
この求めた分散度が所定値(例えば「5」)よりも大きい場合(ステップS108にてNO)、ディスクアレイ装置1は、ホストコンピュータ10からデータの更新が指示される毎に(ステップS109にてYES)、上記ステップS101〜S108の動作を繰り返す。
一方、求めた分散度が所定値以下の場合(ステップS108にてYES)、ディスクアレイ装置1は、パリティデータ分散動作を終了する。
続いて、上記図5のフローチャート図に示すパリティデータ分散動作を図3、図6、図7、図8及び図9に示す説明図を参照し、より具体的に説明する。
図3に示す初期状態において、ディスク装置D1にはデータA0、A3、…、A57が、ディスク装置D2にはデータA1、A4、…、A58が、ディスク装置D3にはデータA2、A5、…、A59が、ディスク装置D4にはパリティデータP0、P1、…、P19が、夫々記憶されている。また、この場合のカウンタC1〜C3のカウント値は「0」、カウンタC4のカウント値は「20」、理想カウント値は「5」、分散度は「300」、となる。
ホストコンピュータ10からデータA24の更新が指示されると、ディスクアレイコントローラ30は、ディスク装置D1からデータA24oldを、また、ディスク装置D4からパリティデータP8oldを、読み出す(ステップS101)。
ディスクアレイコントローラ30は、更新後のデータA24newと、更新前のデータA24old及びパリティデータP8oldと、から更新後のパリティデータP8newを生成する(ステップS102)。
この場合、ディスク装置D1が備えるカウンタC1のカウント値「0」は、理想カウント値「5」よりも小さいので(ステップS103にてNO)、ディスクアレイコントローラ30は、ディスク装置D1に更新後のパリティデータP8newを、ディスク装置D4に更新後のデータA24newを、書き込む(ステップS105)。
これにより、図6に示すように、ディスク装置D1にはデータA0、…、A21、パリティデータP8、データA27、…、A57が、ディスク装置D2にはデータA1、…、A58が、ディスク装置D3にはデータA2、…、A59が、ディスク装置D4にはパリティデータP0、…、P7、データA24、パリティデータP9、…、P19が、夫々記憶される。
ディスクアレイコントローラ30は、カウンタC1のカウント値を「1」に、カウンタC4のカウント値を「19」に、更新する(ステップS106)。また、この場合の分散度は「262(=|1−5|^2+|0−5|^2+|0−5|^2+|19−5|^2」と求まる(ステップS107)。
続いて、ホストコンピュータ10からデータA25の更新が指示されると(ステップS109にてYES)、ディスクアレイコントローラ30は、ディスク装置D2からデータA25oldを、また、ディスク装置D1からパリティデータP8oldを、読み出す(ステップS101)。
ディスクアレイコントローラ30は、更新後のデータA25newと、更新前のデータA25old及びパリティデータP8oldと、から更新後のパリティデータP8newを生成する(ステップS102)。
この場合、ディスク装置D2が備えるカウンタC2のカウント値「0」は、理想カウント値「5」よりも小さいので(ステップS103にてNO)、ディスクアレイコントローラ30は、ディスク装置D2に更新後のパリティデータP8newを、ディスク装置D1に更新後のデータA25newを、書き込む(ステップS105)。
これにより、図7に示すように、ディスク装置D1にはデータA0、…、A21、A25、A27、…、A57が、ディスク装置D2にはデータA1、…、A22、パリティデータP8、データA28、…、A58が、ディスク装置D3にはデータA2、…、A59が、ディスク装置D4にはパリティデータP0、…、P7、データA24、パリティデータP9、…、P19が、夫々記憶される。
ディスクアレイコントローラ30は、カウンタC1のカウント値を「0」に、カウンタC2のカウント値を「1」に、更新する(ステップS106)。また、この場合の分散度は「262(=|0−5|^2+|1−5|^2+|0−5|^2+|19−5|^2)」と求まる(ステップS107)。
上記動作を繰り返すことにより、パリティデータPは徐々に各ディスク装置D1〜D4に分散される。
これにより、例えば図8に示すように、ディスク装置D1に4つのパリティデータP1、P14、P17及びP18が、ディスク装置D2に3つのパリティデータP4、P6及びP15が、ディスク装置D3に6つのパリティデータP2、P8、P9、P12、P16及びP19が、ディスク装置D4に7つのパリティデータP0、P3、P5、P7、P10、P11及びP13が、夫々記憶される。
この場合、カウンタC1のカウント値は「4」と、カウンタC2のカウント値は「3」と、カウンタC3のカウンタ値は「6」と、カウンタC4のカウント値は「7」と、なる。また、ディスクアレイ20の分散度は「10(=|4−5|^2+|3−5|^2+|6−5|^2+|7−5|^2)」となる。
ホストコンピュータ10からデータA(33+i)(i=0、1、2)の更新が指示されると(ステップS109にてYES)、ディスクアレイコントローラ30は、ディスク装置D4からデータA(33+i)oldを、また、ディスク装置D2からパリティデータP11oldを、読み出す(ステップS101)。
ディスクアレイコントローラ30は、更新後のデータA(33+i)newと、更新前のデータA(33+i)old及びパリティデータP11oldと、から更新後のパリティデータP11newを生成する(ステップS102)。
この場合、ディスク装置D2が備えるカウンタC2のカウント値「4」は、理想カウント値「5」より小さいので(ステップS103にてNO)、ディスクアレイコントローラ30は、ディスク装置D2に更新後のパリティデータP11newを、ディスク装置D1に更新後のデータA(33+i)newを、書き込む(ステップS105)。
これにより、図9に示すように、ディスク装置D1に4つのパリティデータP1、P14、P17及びP18が、ディスク装置D2に4つのパリティデータP4、P6、P11及びP15が、ディスク装置D3に6つのパリティデータP2、P8、P9、P12、P16及びP19が、ディスク装置D4に6つのパリティデータP0、P3、P5、P7、P10及びP13が、夫々記憶される。
この場合、カウンタC1のカウント値は「4」と、カウンタC2のカウント値は「4」と、カウンタC3のカウント値は「6」と、カウンタC4のカウント値は「6」と、なる。また、ディスクアレイ20の分散度は「4(=|4−5|^2+|4−5|^2+|6−5|^2+|6−5|^2)」と求まり、所定値「5」以下となるため(ステップS108にてYES)、ディスクアレイ装置1は、パリティデータ分散動作を終了する。
上記パリティデータ分散動作により、ディスクアレイ装置1は、データAが更新毎に、パリティデータPを各ディスク装置D1〜D4に分散し、各ディスク装置D1〜D4のパリティデータPを記憶するブロック数を均一化することができる。換言すれば、ディスク装置D1〜D4の構成を、データAが更新される毎に、RAID4の冗長化ディスク構成からRAID5の冗長化ディスクアレイ構成へと移行させることができる。
このようにディスク装置D1〜D4のディスク構成をRAID5の冗長化ディスクアレイ構成に移行することにより、特定のディスク装置Dにのみ負荷が集中することがなくなり、ディスクアレイ装置1は、その性能を該特定のディスク装置Dの性能にのみ依存するという弊害を防止できる。この結果、ディスクアレイ装置1は、装置全体としての性能を向上させることができる。
また、上記パリティデータ分散動作において、ディスクアレイ装置1は、データAの更新を機に、パリティデータPを各ディスク装置D1〜D4に分散するため、効率的であるといえ、また、通常行われるデータAの読取処理や更新処理には影響を与えることがない。さらに、ディスクアレイコントローラ30の判別ロジックを置き換えるだけで、ディスクアレイ装置1に最適なパリティデータの配置を実現することができる。
[第2の実施の形態]
本発明の第2の実施の形態に係るディスクアレイシステムについて、以下図面を参照して説明する。なお、上記第1の実施の形態と同様の構成については、その符号を同一とし、説明を適宜省略する。
ディスクアレイシステム2は、図10に示すように、コンピュータ40−1〜40−4と、通信ネットワーク50と、サーバコンピュータ60と、から概略構成されている。
コンピュータ40−1〜40−4(以下必要に応じて単にコンピュータ40という)は、例えばパーソナルコンピュータ等であって、通信ネットワーク50を介して相互に接続されるとともに、サーバコンピュータ60に接続されている。また、コンピュータ40−1〜40−4は、インターフェイスI/Fを介してディスク装置D1〜D4に夫々接続されている。また、第1の実施の形態と同様、コンピュータ40−1〜40−4に接続されているディスク装置D1〜D4は、初期状態においてRAID4の冗長化ディスク構成を適用し、このうちディスク装置D4がパリティディスク装置として機能している。
このコンピュータ40の構成をブロック図を参照して説明する。コンピュータ40は、図11Aに示すように、通信部41と、制御部42と、インターフェイスI/Fと、を備える。
通信部41は、通信ネットワーク50を介して、他のコンピュータ40の通信部41と相互に接続されるとともにサーバコンピュータ60に接続されている。通信部41は、サーバコンピュータ60から通信ネットワーク50を介して送信される更新後のデータAnewと、他のコンピュータ40から通信ネットワーク50を介して送信される、後述するデータ和As及びパリティデータ和Psと、を受信して制御部42に供給する。また、通信部41は、制御部42から供給されるデータ和Asとパリティデータ和Psとを通信ネットワーク50を介して、他のコンピュータ40に送信する。
制御部42は、CPU、RAM、ROM等から構成され、インターフェイスI/Fを介してディスク装置Dに接続されている。制御部42は、通信部41から更新後のデータAnewが供給されると、該更新後のデータAnewに対応する更新前のデータAold又はパリティデータPoldをディスク装置Dの中から検出する。
制御部42は、ディスク装置Dから更新前のデータAoldを検出した場合、数11を用いて、更新後のデータAnewと更新前のデータAoldとの排他的論理和(以下、データ和という)Asを生成する。そして、制御部42は、この生成したデータ和Asを、通信ネットワーク50を介して、更新前のパリティデータPoldが記憶されたディスク装置Dに接続されているコンピュータ40に送信する。また、制御部42は、インターフェイスI/Fを介して接続されているディスク装置Dに更新後のデータAnewを書き込む。
Figure 0003739766
一方、制御部42は、ディスク装置Dから更新前のパリティデータPoldを検出した場合、数12を用いて、更新後のデータAnewと更新前のパリティデータPoldとの排他的論理和(以下、パリティデータ和という)Psを生成する。そして、制御部42は、この生成したデータ和Psを、通信ネットワーク50を介して、更新前のデータAoldが記憶されたディスク装置Dに接続されているコンピュータ40に送信する。また、制御部42は、インターフェイスI/Fを介して接続されているディスク装置Dに更新後のデータAnewを書き込む。
Figure 0003739766
また、制御部42は、通信部41からデータ和Asが供給されると、ディスク装置Dに記憶されている更新前のパリティデータPoldを読み出す。制御部42は、数11の変形式数13を用いて、供給されたデータ和Asと読み出した更新前のパリティデータPoldとから更新後のパリティデータPnewを生成する。そして、制御部42は、この生成した更新後のパリティデータPnewを、インターフェイスI/Fを介して接続されているディスク装置Dに書き込む。
Figure 0003739766
一方、制御部42は、通信部41からパリティデータ和Psが供給されると、ディスク装置Dに記憶されている更新前のデータAoldを読み出す。制御部42は、数12の変形式数14を用いて、供給されたデータ和Psと読み出した更新前のデータAoldとから更新後のデータPnewを求める。そして、制御部42は、この生成した更新後のデータPnewを、インターフェイスI/Fを介して接続されているディスク装置Dに書き込む。
Figure 0003739766
通信ネットワーク50は、例えば専用線や公衆回線網等から構成され、コンピュータ40−1〜40−4(より詳細にはコンピュータ40−1〜40−4の各通信部41−1〜41−4)と、サーバコンピュータ60(より詳細にはサーバコンピュータ60の通信部61)と、を相互に接続する。
サーバコンピュータ60は、例えばパーソナルコンピュータ等であって、通信ネットワーク50を介してコンピュータ40−1〜40−4に接続されている。サーバコンピュータ60は、第1の実施の形態におけるディスクアレイコントローラ30と同様の機能を有しており、このサーバコンピュータ60により、ホストコンピュータ10は、4台のコンピュータ40−1〜40−4に接続されているディスク装置D1〜D4を1つの論理ディスク装置として認識することが可能となる。
このサーバコンピュータ60の構成をブロック図を参照して説明する。コンピュータ60は、図10Bに示すように、通信部61と、制御部62と、インターフェイスI/Fと、を備える。
通信部61は、通信ネットワーク50を介してコンピュータ40−1〜40−4に接続されている。通信部61は、制御部62から供給される更新後のデータAnewを通信ネットワーク50を介してコンピュータ40−1〜40−4に送信する。
制御部62は、CPU、RAM、ROM等から構成され、RAM等に各ディスク装置D1〜D4のデータA又はパリティデータPが更新された回数を計数するためのカウンタC1〜C4を備え、データA又はパリティデータPが更新される毎にカウンタC1〜C4のカウント値を更新する。
制御部62は、ホストコンピュータ10からデータの書込が指示されると、更新前のデータAoldを記憶するディスク装置DのカウンタCと、更新前のパリティデータPoldを記憶するディスク装置DのカウンタCと、のカウント値を比較する。
比較の結果、更新前のデータAoldを記憶するディスク装置DのカウンタCのカウント値が、更新前のパリティデータPoldを記憶するディスク装置DのカウンタCのカウント値よりも小さいと判別した場合、制御部62は、更新前のデータAoldが記憶されているディスク装置Dに接続されているコンピュータ40に更新後のデータAnewを送信する。
一方、更新前のデータAoldを記憶するディスク装置DのカウンタCのカウント値が、更新前のパリティデータPoldを記憶するディスク装置DのカウンタCのカウント値以上であると判別した場合、制御部62は、更新前のパリティデータPoldが記憶されているディスク装置Dに接続されているコンピュータ40に更新後のデータAnewを送信する。
これにより、サーバコンピュータ60は、更新前のデータAoldを記憶するディスク装置DのカウンタCのカウント値が、更新前のパリティデータPoldを記憶するディスク装置DのカウンタCのカウント値よりも小さいと判別した場合、パリティデータPを記憶するディスク装置Dを変更せず、一方、更新前のパリティデータPoldを記憶するディスク装置DのカウンタCのカウント値以上の場合、パリティデータPを記憶するディスク装置Dを変更することができる。
次に、上記構成を備えるディスクアレイシステム2のパリティデータ分散動作について図12、図13及び図14に示すフローチャート図を参照して説明する。なお、初期状態においては、図3に示すように、ディスク装置D1にはデータA0、A3、…、A57が、ディスク装置D2にはデータA1、A4、…、A58が、ディスク装置D3にはデータA2、A5、…、A59が、ディスク装置D4にはパリティデータP0、P1、…、P19が、夫々記憶されている。また、この場合のカウンタC1〜C4のカウント値は「0」となる。
ホストコンピュータ10からデータの更新が指示されると、ディスクアレイシステム2は、図12のフローチャート図に示すパリティデータ分散動作を開始する。パリティデータ分散動作が開始すると、サーバコンピュータ60は、更新前のデータAoldを記憶するディスク装置DのカウンタCと、更新前のパリティデータPoldを記憶するディスク装置DのカウンタCと、のカウント値を比較する(ステップS2010)。
比較の結果、更新前のデータAoldを記憶するディスク装置DのカウンタCのカウント値が、更新前のパリティデータPoldを記憶するディスク装置DのカウンタCのカウント値よりも小さいと判別した場合(ステップS2010にてYES)、サーバコンピュータ60は、更新前のデータAoldを記憶するディスク装置Dに接続されたコンピュータ40に、更新後のデータAnewを通信ネットワーク50を介して送信する。
更新前のデータAoldを記憶するディスク装置Dに接続されたコンピュータ40は、送信された更新後のデータAnewを受信するとともに、この受信した更新後のデータAnewと、ディスク装置Dに記憶されている更新前のデータAoldと、の排他的論理和であるデータ和Asを生成する(ステップS2011)。
このコンピュータ40は、生成したデータ和Asを、通信ネットワーク50を介して、更新前のパリティデータPoldが記憶されたディスク装置Dに接続されているコンピュータ40に送信するとともに、インターフェイスI/Fを介して接続されているディスク装置Dに更新後のデータAnewを書き込む(ステップS2012)。
更新前のパリティデータPoldを記憶するディスク装置Dに接続されたコンピュータ40は、送信されたデータ和Asを受信するとともに、この受信したデータ和Asと、ディスク装置Dに記憶されている更新前のパリティデータPoldと、から更新後のパリティデータPnewを生成する(ステップS2013)。このコンピュータ40は、生成した更新後のパリティデータPnewを、インターフェイスI/Fを介して接続されたディスク装置Dに書き込んで(ステップS2014)、パリティ分散動作を終了する。
一方、更新前のデータAoldを記憶するディスク装置DのカウンタCのカウント値が、更新前のパリティデータPoldを記憶するディスク装置DのカウンタCのカウント値以上であると判別した場合(ステップS2010にてNO)、サーバコンピュータ60は、更新前のパリティデータPoldを記憶するディスク装置Dに接続されたコンピュータ40に更新後のデータAnewを送信するとともに、更新後のパリティデータPnewを記憶したディスク装置DのカウンタCのと、更新後のデータAnewを記憶したディスク装置DのカウンタCと、のカウント値を更新する(ステップS2015)。
更新前のパリティデータPoldを記憶するディスク装置Dに接続されたコンピュータ40は、送信された更新後のデータAnewを受信するとともに、この受信した更新後のデータAnewと、ディスク装置Dに記憶されている更新前のパリティデータPoldと、の排他的論理和であるパリティデータ和Psを生成する(ステップS2016)。
このコンピュータ40は、生成したパリティデータ和Psを、通信ネットワーク50を介して、更新前のデータAoldが記憶されたディスク装置Dに接続されているコンピュータ40に送信するとともに、インターフェイスI/Fを介して接続されているディスク装置Dに更新後のデータAnewを書き込む(ステップS2017)。
更新前のデータAnewを記憶するディスク装置Dに接続されたコンピュータ40は、送信されたパリティデータ和Psを受信するとともに、この受信したパリティデータ和Psと、ディスク装置Dに記憶されている更新前のデータAoldと、から更新後のパリティデータPnewを生成する(ステップS2018)。このコンピュータ40は、この生成した更新後のパリティデータPnewを、インターフェイスI/Fを介して接続されたディスク装置Dに書き込んで(ステップS219)、パリティデータ分散動作を終了する。
上記パリティデータ分散動作を繰り返すことにより、ディスクアレイシステム2は、データAが更新される毎に、パリティデータPを各ディスク装置D1〜D4に分散し、各ディスク装置D1〜D4のパリティデータPを記憶するブロック数を均一化することができる。換言すれば、ディスク装置D1〜D4のディスク構成を、データAが更新される毎に、RAID4の冗長化ディスク構成からRAID5の冗長化ディスクアレイ構成へと移行させることができる。
このようにディスク装置D1〜D4のディスクアレイ構成をRAID5の冗長化ディスクアレイ構成に移行することにより、特定のディスク装置Dにのみ負荷が集中することがなくなり、ディスクアレイシステム2は、その性能を該特定のディスク装置Dの性能にのみ依存するという弊害を防止できる。この結果、ディスクアレイシステム2は、システム全体としての性能を向上させることができる。
上記パリティデータ分散動作において、サーバコンピュータ60が更新前のパリティデータPoldを記憶するディスク装置Dに接続されたコンピュータ40に更新後のデータAnewを送信し、また、該ディスク装置DがデータAoldを記憶するディスク装置Dに接続されたコンピュータ40にパリティデータ和Psを送信することによって、ディスクアレイシステム2は、パリティデータPを記憶するディスク装置Dを変更することができる。このように、ディスクアレイシステム2は、二回データを送信するだけでパリティデータPを記憶するディスク装置Dを変更することができるため、通信ネットワーク50にかかる負担の低減を図ることができる。
また、上記パリティデータ分散動作において、ディスクアレイシステム2は、データAの更新を機に、パリティデータPを各ディスク装置D1〜D4に分散するため、効率的であるといえ、また、通常行われるデータAの読取処理や更新処理には影響を与えることがない。さらに、サーバコンピュータ60の判別ロジックを置き換えるだけで、ディスクアレイシステム2に最適なパリティデータの配置を実現することができる。
なお、本発明は、上記の実施の形態に限られず、種々の変形、応用が可能である。以下、本発明に適用可能な上記の実施の形態の変形態様について説明する。
上記第1の実施の形態において、ディスクアレイコントローラ30は、更新前のデータAoldを記憶するディスク装置Dのカウント値と理想カウント値とを比較し、この比較の結果に基づいて生成した更新後のパリティデータPnewを更新前のデータAを記憶するディスク装置D又は更新前のパリティデータPを記憶するディスク装置Dに書き込んでいた。しかし、本発明はこれに限定されず、ディスクアレイコントローラ30は、更新前のデータAoldを記憶するディスク装置Dのカウント値と更新前のパリティデータPoldを記憶するディスク装置Dのカウント値とを比較し、この比較の結果に基づいて生成した更新後のパリティデータPnewを更新前のデータAを記憶するディスク装置D又は更新前のパリティデータPを記憶するディスク装置Dに書き込んでもよい。
上記第1の実施の形態の変形例におけるパリティデータ分散動作について図15に示すフローチャート図を参照して説明する。まず、ディスクアレイコントローラ30は、ホストコンピュータ10からデータの書込が指示されると、書き込むデータをブロック単位に分割し、3ブロック分のデータ、例えばA0、A1及びA2からパリティデータP0を生成する。そして、ディスクアレイコントローラ30は、データA0、A1及びA2とパリティデータP0とを同一タイミングでストライプS0を構成するブロックB0、B1、B2及びB3に夫々書き込む。上記動作を繰り返すことにより、ディスク装置D1〜D4には、図3に示すように、ストライプS0にデータA0、A1、A2及びパリティデータP0が、ストライプS1にデータA3、A4、A5及びパリティデータP1が、…、ストライプS19にデータA57、A58、A59及びパリティデータP19が、夫々記憶される。なお、図3に示す場合におけるカウンタC1〜C4のカウント値は「0」、カウンタC4のカウント値は「20」、理想カウント値は「5」、分散度は「300」、となる。そして、ホストコンピュータ10からデータの更新が指示されると、ディスクアレイ装置1は、図15のフローチャート図に示すパリティデータ分散動作を開始する。パリティデータ分散動作が開始すると、まず、ディスクアレイコントローラ30は、更新前のデータAoldと更新前のパリティデータPoldとをディスクアレイ20から読み出す(ステップS3020)。次に、ディスクアレイコントローラ30は、更新後のデータAnewと、更新前のデータAold及びパリティデータPoldと、から更新後のパリティデータPnewを生成する(ステップS3021)。続いて、ディスクアレイコントローラ30は、更新前のデータAoldを記憶するディスク装置Dのカウント値と更新前のパリティデータPoldを記憶するディスク装置Dのカウント値とを比較する(ステップS3022)。ステップS3022における比較の結果、更新前のデータAoldを記憶するディスク装置Dのカウント値が更新前のパリティデータPoldを記憶するディスク装置Dのカウント値以下であると判別した場合(ステップS3022にてYES)、ディスクアレイコントローラ30は、更新前のデータAoldが記憶されているディスク装置Dに更新後のデータAnewを、更新前のパリティデータPoldが記憶されているディスク装置Dに更新後のパリティデータPnewを、書き込み、ステップS3028に進む(ステップS3023)。一方、更新前のデータAoldを記憶するディスク装置Dのカウント値が更新前のパリティデータPoldを記憶するディスク装置Dのカウント値より大きいと判別した場合(ステップS3022にてNO)、ディスクアレイコントローラ30は、更新前のデータAoldが記憶されているディスク装置Dに更新後のパリティデータPnewを、更新前のパリティデータPoldが記憶されているディスク装置Dに更新後のデータAnewを、書き込む(ステップS3024)。この場合、ディスクアレイコントローラ30は、更新後のパリティデータPnewを記憶したディスク装置DのカウンタCと、更新後のデータAnewを記憶したディスク装置DのカウンタCと、のカウント値を更新するとともに(ステップS3025)、更新したカウント値から分散度を求める(ステップS3026)。この求めた分散度が所定値(例えば「5」)よりも大きい場合(ステップS3027にてNO)、ディスクアレイ装置1は、ホストコンピュータ10からデータの更新が指示される毎に(ステップS3028にてYES)、上記ステップS3020〜S3027の動作を繰り返す。一方、求めた分散度が所定値以下の場合(ステップS3027にてYES)、ディスクアレイ装置1は、パリティデータ分散動作を終了する。
上記パリティデータ分散動作を繰り返すことにより、上記第1の実施の形態と同様に、ディスクアレイ装置1は、データAが更新される毎に、パリティデータPを各ディスク装置D1〜D4に分散し、各ディスク装置D1〜D4のパリティデータPを記憶するブロック数を均一化することができる。換言すれば、ディスク装置D1〜D4のディスク構成を、データAが更新される毎に、RAID4の冗長化ディスク構成からRAID5の冗長化ディスクアレイ構成へと移行させることができる。このようにディスク装置D1〜D4のディスクアレイ構成をRAID5の冗長化ディスクアレイ構成に移行することにより、特定のディスク装置Dにのみ負荷が集中することがなくなり、ディスクアレイ装置1は、その性能を該特定のディスク装置Dの性能にのみ依存するという弊害を防止できる。この結果、ディスクアレイ装置1は、システム全体としての性能を向上させることができる。また、上記パリティデータ分散動作において、ディスクアレイ装置1は、データAの更新を機に、パリティデータPを各ディスク装置D1〜D4に分散するため、効率的であるといえ、また、通常行われるデータAの読取処理や更新処理には影響を与えることがない。さらに、ディスクアレイコントローラ30の判別ロジックを置き換えるだけで、ディスクアレイ装置1に最適なパリティデータPの配置を実現することができる。
また、上記第1の実施の形態において、カウント値はディスク装置Dに記憶されているパリティデータPのブロック数を示し、ディスクアレイコントローラ30は、更新前のデータAoldを記憶するディスク装置Dのカウント値と理想カウント値とを比較し、この比較の結果に基づいて生成した更新後のパリティデータPnewを更新前のデータAoldを記憶するディスク装置D又は更新前のパリティデータPoldを記憶するディスク装置Dに書き込んでいた。しかし、本発明はこれに限定されず、カウント値はディスク装置Dの更新回数を示し、ディスクアレイコントローラ30は、更新前のデータAoldを記憶するディスク装置Dのカウント値と更新前のパリティデータPoldを記憶するディスク装置Dのカウント値とを比較し、この比較の結果に基づいて、生成した更新後のパリティデータPnewを更新前のデータAoldを記憶するディスク装置D又は更新前のパリティデータPnewを記憶するディスク装置Dに書き込んでもよい。
さらに、上記第2の実施の形態において、カウント値はディスク装置Dの更新回数を示し、サーバコンピュータ60は、更新前のデータAoldを記憶するディスク装置Dのカウント値と更新前のパリティデータPoldを記憶するディスク装置Dのカウント値とを比較し、この比較の結果に基づいて生成した更新後のパリティデータPnewを更新前のデータAoldを記憶するディスク装置D接続されたコンピュータ40又は更新前のパリティデータPを記憶するディスク装置Dに接続されたコンピュータ40に送信していた。しかし、本発明はこれに限定されず、カウント値はディスク装置Dに記憶されているパリティデータPのブロック数を示し、サーバコンピュータ60は、更新前のデータAoldを記憶するディスク装置Dのカウント値と理想カウント値とを比較し、又は更新前のデータAoldを記憶するディスク装置Dのカウント値と更新前のパリティデータPoldを記憶するディスク装置Dのカウント値とを比較し、この比較の結果に基づいて、生成した更新後のパリティデータPnewを更新前のデータAoldを記憶するディスク装置Dに接続されたコンピュータ40又は更新前のパリティデータPoldを記憶するディスク装置Dに接続されたコンピュータ40に送信してもよい。
また、上記第2の実施の形態の変形例において、サーバコンピュータ60は、生成した更新後のパリティデータPnewを更新前のデータAoldを記憶するディスク装置D又は更新前のパリティデータPoldを記憶するディスク装置Dに接続されたコンピュータ40に送信される毎に、上記第1の実施の形態で説明した分散度を求めてもよい。そして、サーバコンピュータ60は、この分散度が所定値以下となると、以降の動作において、ディスク装置Dが備えるカウンタCのカウント値と理想カウント値とを比較することなく、更新前のデータAoldを記憶するディスク装置Dに接続されたコンピュータ40に更新後のデータAnewを、また、更新前のパリティデータPoldを記憶するディスク装置Dに接続されたコンピュータ40に更新後のパリティデータPnewを、送信してもよい。
さらに、上記第1の実施の形態におけるディスクアレイコントローラ30の機能は、パーソナルコンピュータ等、CPU、RAM、ROM等から構成される汎用コンピュータをプラットフォームとし、CPUがROMに格納されているコンピュータプログラムを実行することによっても実現可能である。
また、上記第1の及び第2の実施の形態において、ディスク装置Dの台数を4としたが、本発明はこれに限定されず、ディスク装置の台数は3以上であれば任意である。
さらに、上記第1の及び第2の実施の形態において、ディスク装置Dはハードディスクドライブから構成されているものとした。しかし、本発明はこれに限定されず、ディスク装置Dはフレキシブルディスク、MO(Magnetooptic Disc)、CD−R/RW(Compact Disc - Recordable / Rewritable)、DVD−RAM(Digital Versatile Disc - Random Access Memory)、DVD±R/RW(Digital Versatile Disc ± Recordable / Rewritable)等のドライブから構成されてもよい。また、Blue−Ray−Disc(R)やAOD(Advanced Optical Disc)等の青色レーザを用いる次世代光ディスク記憶媒体、赤色レーザを用いるHD−DVD9、青紫色レーザを用いるBlue−Laser−DVD等、今後開発される種々の大容量記憶媒体のドライブを用いることによっても、本発明の実施が可能であることは言うまでもない。
本発明の第1の実施の形態に係るディスクアレイ装置の構成を示すブロック図である。 図1に示すディスク装置の構成を示す図である。 図1に示すディスク装置の初期状態におけるデータ配列を示す図である。 図1に示すディスクアレイコントローラがパリティデータを記憶するディスク装置を変更する動作を説明する図である。 図1に示すディスクアレイ装置のパリティデータ分散動作のフローチャート図である。 図5に示すパリティデータ分散動作の説明図である。 図5に示すパリティデータ分散動作の説明図である。 図5に示すパリティデータ分散動作の説明図である。 図5に示すパリティデータ分散動作の説明図である。 本発明の第2の実施の形態に係るディスクアレイシステムの構成を示すブロック図である。 図10に示すコンピュータ及びサーバコンピュータの構成を示すブロック図である。 図10に示すディスクアレイシステムのパリティデータ分散動作のフローチャート図である。 図10に示すディスクアレイシステムのパリティデータ分散動作のフローチャート図である。 図10に示すディスクアレイシステムのパリティデータ分散動作のフローチャート図である。 パリティデータ分散動作の変形例のフローチャート図である。
符号の説明
1 ディスクアレイ装置
2 ディスクアレイシステム
10 ホストコンピュータ
20 ディスクアレイ
30 ディスクアレイコントローラ
40 コンピュータ
50 通信ネットワーク
60 サーバコンピュータ
A データ
C カウンタ
D ディスク装置
P パリティデータ

Claims (20)

  1. ディスクアレイを構成する複数のディスク装置を備え、所定ブロック単位に分割したデータと該データから生成されるパリティデータとを、それぞれ異なるディスク装置に書き込むディスクアレイ装置であって、
    データ更新の指示に応じて、更新が指示されたデータを記憶する第1のディスク装置と該更新が指示されたデータのパリティデータを記憶する第2のディスク装置とから、それぞれ更新前のデータと更新前のパリティデータとを読み出す読出手段と、
    更新後のデータと前記読出手段により読み出された更新前のデータ及び更新前のパリティデータとから更新後のパリティデータを生成するパリティデータ生成手段と、
    前記第1のディスク装置に記憶されたパリティデータのブロック数が所定数以下か否かを判別する判別手段と、
    前記判別手段により第1のディスク装置に記憶されたパリティデータのブロック数が所定数以下であると判別された場合、前記更新後のデータを第2のディスク装置に、前記パリティデータ生成手段により生成された更新後のパリティデータを第1のディスク装置に、それぞれ書き込む書込手段と、
    を備える、
    ことを特徴とするディスクアレイ装置。
  2. ディスクアレイを構成する複数のディスク装置を備え、所定ブロック単位に分割したデータと該データから生成されるパリティデータとを、それぞれ異なるディスク装置に書き込むディスクアレイ装置であって、
    データ更新の指示に応じて、更新が指示されたデータを記憶する第1のディスク装置と該更新が指示されたデータのパリティデータを記憶する第2のディスク装置とから、それぞれ更新前のデータと更新前のパリティデータとを読み出す読出手段と、
    更新後のデータと前記読出手段により読み出された更新前のデータ及び更新前のパリティデータとから更新後のパリティデータを生成するパリティデータ生成手段と、
    前記第1のディスク装置に記憶されたパリティデータのブロック数と、前記第2のディスク装置に記憶されたパリティデータのブロック数と、を比較するブロック数比較手段と、
    前記ブロック数比較手段により第1のディスク装置に記憶されたパリティデータのブロック数が第2のディスク装置に記憶されたパリティデータのブロック数以下であると判別された場合、前記更新後のデータを第2のディスク装置に、前記パリティデータ生成手段により生成された更新後のパリティデータを第1のディスク装置に、それぞれ書き込む書込手段と、
    を備える、
    ことを特徴とするディスクアレイ装置。
  3. ディスクアレイを構成する複数のディスク装置を備え、所定ブロック単位に分割したデータと該データから生成されるパリティデータとを、それぞれ異なるディスク装置に書き込むディスクアレイ装置であって、
    データ更新の指示に応じて、更新が指示されたデータを記憶する第1のディスク装置と該更新が指示されたデータのパリティデータを記憶する第2のディスク装置とから、それぞれ更新前のデータと更新前のパリティデータとを読み出す読出手段と、
    更新後のデータと前記読出手段により読み出された更新前のデータ及び更新前のパリティデータとから更新後のパリティデータを生成するパリティデータ生成手段と、
    前記第1のディスク装置の更新回数と前記第2のディスク装置の更新回数とを比較する更新回数比較手段と、
    前記更新回数比較手段により第1のディスク装置の更新回数が第2のディスク装置の更新回数以上であると判別された場合、前記更新後のデータを第2のディスク装置に、前記パリティデータ生成手段により生成された更新後のパリティデータを第1のディスク装置に、それぞれ書き込む書込手段と、
    を備える、
    ことを特徴とするディスクアレイ装置。
  4. 前記書込手段により更新後のパリティデータ及び更新後のデータが、それぞれ第1及び第2のディスク装置に書き込まれる毎に、各ディスク装置に記憶されているパリティデータのブロック数を計数する計数手段と、
    前記計数手段により計数された各ディスク装置に記憶されているパリティデータのブロック数から、パリティデータが各ディスク装置に分散している度合を示す分散度を算出する分散度算出手段と、
    をさらに備え、
    前記書込手段は、前記分散度算出手段により算出された分散度が所定値以下になると、前記更新後のデータを第1のディスク装置に、前記更新後のパリティデータを第2のディスク装置に、それぞれ書き込む、
    ことを特徴とする請求項1,2又は3に記載のディスクアレイ装置。
  5. 更新前のデータを記憶する第1のディスク装置と該更新前のデータから生成されたパリティデータを記憶する第2のディスク装置とを含みディスクアレイを構成する複数のディスク装置と、該第1のディスク装置を備える第1のコンピュータと、該第2のディスク装置を備え該第1のコンピュータにネットワークを介して接続された第2のコンピュータと、該第1及び第2のコンピュータにネットワークを介して接続され所定ブロック単位に分割した更新後のデータを第1及び第2のコンピュータのいずれかに送信するサーバコンピュータと、を備えるディスクアレイシステムであって、
    前記第2のコンピュータは、
    前記サーバコンピュータにより送信される更新後のデータを受信する第1の受信手段と、
    前記第1の受信手段により受信した更新後のデータと前記第2のディスク装置に記憶されている更新前のパリティデータとの排他的論理和を前記第1のコンピュータに送信する送信手段と、
    前記更新後のデータを第2のディスク装置に書き込む第1の書込手段と、
    を備え、
    前記第1のコンピュータは、
    前記送信手段により送信され排他的論理和を受信する第2の受信手段と、
    前記第2の受信手段により受信した排他的論理和と前記第1のディスク装置に記憶されている更新前のデータとから更新後のパリティデータを生成するパリティデータ生成手段と、
    前記パリティデータ生成手段により生成された更新後のパリティデータを前記第1のディスク装置に書き込む第2の書込手段と、
    を備える、
    ことを特徴とするディスクアレイシステム。
  6. 前記排他的論理和は、更新前のデータをAold、更新後のデータをAnew、更新前のパリティデータをPold、更新後のパリティデータをPnew、としたとき、以下の数1によって定義される、
    Figure 0003739766
    ことを特徴とする請求項5に記載のディスクアレイシステム。
  7. 前記パリティデータ生成手段は、排他的論理和をPsとしたとき、以下の数2によって定義される関係式を用いて更新後のパリティデータを生成する、
    Figure 0003739766
    ことを特徴とする請求項6に記載のディスクアレイシステム。
  8. 前記サーバコンピュータは、
    前記第1のディスク装置に記憶されたパリティデータのブロック数が所定数以下か否かを判別する判別手段を備え、
    前記判別手段により第1のディスク装置に記憶されたパリティデータのブロック数が所定数以下であると判別された場合、更新後のデータを前記第2のコンピュータに送信する、
    ことを特徴とする請求項5,6又は7に記載のディスクアレイシステム。
  9. 前記サーバコンピュータは、
    前記第1のディスク装置に記憶されたパリティデータのブロック数と、前記第2のディスク装置に記憶されたパリティデータのブロック数と、を比較するブロック数比較手段を備え、
    前記ブロック数比較手段により第1のディスク装置に記憶されたパリティデータのブロック数が第2のディスク装置に記憶されたパリティデータのブロック数以下であると判別された場合、更新後のデータを前記第2のコンピュータに送信する、
    ことを特徴とする請求項5,6又は7に記載のディスクアレイシステム。
  10. 前記サーバコンピュータは、
    前記第1のディスク装置の更新回数と前記第2のディスク装置の更新回数とを比較する更新回数比較手段を備え、
    前記更新回数比較手段により第1のディスク装置の更新回数が第2のディスク装置の更新回数以上であると判別された場合、更新後のデータを前記第2のコンピュータに送信する、
    ことを特徴とする請求項5,6又は7に記載のディスクアレイシステム。
  11. 前記サーバコンピュータは、
    前記第1及び第2の書込手段により更新後のデータと更新後のパリティデータとが、それぞれ第2及び第1のディスク装置に書き込まれる毎に、各ディスク装置に記憶されているパリティデータのブロック数を計数する計数手段と、
    前記計数手段により計数された各ディスク装置に記憶されているパリティデータのブロック数から、パリティデータが各ディスク装置に分散している度合を示す分散度を算出する分散度算出手段と、
    をさらに備え、
    前記分散度算出手段により算出された分散度が所定値以下になると、更新後のデータを前記第1のコンピュータに送信する、
    ことを特徴とする請求項5乃至10いずれか1項に記載のディスクアレイシステム。
  12. 前記分散度は、前記ディスク装置の数をn、各ディスク装置に記憶されているパリティデータのブロック数をC、前記所定数をC0、としたとき、以下の数3によって定義される、
    Figure 0003739766
    ことを特徴とする請求項4に記載のディスクアレイ装置又は請求項11に記載のディスクアレイシステム。
  13. 前記所定数は、前記ディスク装置の数をn、各ディスク装置に記憶されているパリティデータのブロック数をC、としたとき、以下の数4によって定義される、
    Figure 0003739766
    ことを特徴とする請求項1,4又は12に記載のディスクアレイ装置又は請求項8,11又は12に記載のディスクアレイシステム。
  14. ディスクアレイを構成する複数のディスク装置を備え、所定ブロック単位に分割したデータと該データから生成されるパリティデータとを、それぞれ異なるディスク装置に書き込むディスクアレイ装置におけるパリティデータ分散方法であって、
    データ更新の指示に応じて、更新が指示されたデータを記憶する第1のディスク装置と該更新が指示されたデータのパリティデータを記憶する第2のディスク装置とから、それぞれ更新前のデータと更新前のパリティデータとを読み出す読出工程と、
    更新後のデータと前記読出工程により読み出された更新前のデータ及び更新前のパリティデータとから更新後のパリティデータを生成するパリティデータ生成工程と、
    前記第1のディスク装置に記憶されたパリティデータのブロック数が所定数以下か否かを判別する判別工程と、
    前記判別工程により第1のディスク装置に記憶されたパリティデータのブロック数が所定数以下であると判別された場合、前記更新後のデータを第2のディスク装置に、前記パリティデータ生成工程により生成された更新後のパリティデータを第1のディスク装置に、それぞれ書き込む書込工程と、
    を備える、
    ことを特徴とするパリティデータ分散方法。
  15. ディスクアレイを構成する複数のディスク装置を備え、所定ブロック単位に分割したデータと該データから生成されるパリティデータとを、それぞれ異なるディスク装置に書き込むディスクアレイ装置におけるパリティデータ分散方法であって、
    データ更新の指示に応じて、更新が指示されたデータを記憶する第1のディスク装置と該更新が指示されたデータのパリティデータを記憶する第2のディスク装置とから、それぞれ更新前のデータと更新前のパリティデータとを読み出す読出工程と、
    更新後のデータと前記読出工程により読み出された更新前のデータ及び更新前のパリティデータとから更新後のパリティデータを生成するパリティデータ生成工程と、
    前記第1のディスク装置に記憶されたパリティデータのブロック数と、前記第2のディスク装置に記憶されたパリティデータのブロック数と、を比較するブロック数比較工程と、
    前記ブロック数比較工程により第1のディスク装置に記憶されたパリティデータのブロック数が第2のディスク装置に記憶されたパリティデータのブロック数以下であると判別された場合、前記更新後のデータを第2のディスク装置に、前記パリティデータ生成工程により生成された更新後のパリティデータを第1のディスク装置に、それぞれ書き込む書込工程と、
    を備える、
    ことを特徴とするパリティデータ分散方法。
  16. ディスクアレイを構成する複数のディスク装置を備え、所定ブロック単位に分割したデータと該データから生成されるパリティデータとを、それぞれ異なるディスク装置に書き込むディスクアレイ装置におけるパリティデータ分散方法であって、
    データ更新の指示に応じて、更新が指示されたデータを記憶する第1のディスク装置と該更新が指示されたデータのパリティデータを記憶する第2のディスク装置とから、それぞれ更新前のデータと更新前のパリティデータとを読み出す読出工程と、
    更新後のデータと前記読出工程により読み出された更新前のデータ及び更新前のパリティデータとから更新後のパリティデータを生成するパリティデータ生成工程と、
    前記第1のディスク装置の更新回数と前記第2のディスク装置の更新回数とを比較する更新回数比較工程と、
    前記更新回数比較工程により第1のディスク装置の更新回数が第2のディスク装置の更新回数以上であると判別された場合、前記更新後のデータを第2のディスク装置に、前記パリティデータ生成工程により生成された更新後のパリティデータを第1のディスク装置に、それぞれ書き込む書込工程と、
    を備える、
    ことを特徴とするパリティデータ分散方法。
  17. 更新前のデータを記憶する第1のディスク装置と該更新前のデータから生成されたパリティデータを記憶する第2のディスク装置とを含みディスクアレイを構成する複数のディスク装置と、該第1のディスク装置を備える第1のコンピュータと、該第2のディスク装置を備え該第1のコンピュータにネットワークを介して接続された第2のコンピュータと、該第1及び第2のコンピュータにネットワークを介して接続され所定ブロック単位に分割した更新後のデータを第1及び第2のコンピュータのいずれかに送信するサーバコンピュータと、を備えるディスクアレイシステムにおけるパリティデータ分散方法であって、
    前記サーバコンピュータにより送信される更新後のデータを受信する第1の受信工程と、
    前記第1の受信工程により受信した更新後のデータと前記第2のディスク装置に記憶されている更新前のパリティデータとの排他的論理和を前記第1のコンピュータに送信する送信工程と、
    前記更新後のデータを第2のディスク装置に書き込む第1の書込工程と、
    前記送信工程により送信され排他的論理和を受信する第2の受信工程と、
    前記第2の受信工程により受信した排他的論理和と前記第1のディスク装置に記憶されている更新前のデータとから更新後のパリティデータを生成するパリティデータ生成工程と、
    前記パリティデータ生成工程により生成された更新後のパリティデータを前記第1のディスク装置に書き込む第2の書込工程と、
    を備える、
    ことを特徴とするパリティデータ分散方法。
  18. ディスクアレイを構成する複数のディスク装置を備えるコンピュータを、
    所定ブロック単位に分割したデータと該データから生成されるパリティデータとを、それぞれ異なるディスク装置に書き込む第1の書込手段、
    データ更新の指示に応じて、更新が指示されたデータを記憶する第1のディスク装置と該更新が指示されたデータのパリティデータを記憶する第2のディスク装置とから、それぞれ更新前のデータと更新前のパリティデータとを読み出す読出手段、
    更新後のデータと前記読出手段により読み出された更新前のデータ及び更新前のパリティデータとから更新後のパリティデータを生成するパリティデータ生成手段、
    前記第1のディスク装置に記憶されたパリティデータのブロック数が所定数以下か否かを判別する判別手段、
    前記判別手段により第1のディスク装置に記憶されたパリティデータのブロック数が所定数以下であると判別された場合、前記更新後のデータを第2のディスク装置に、前記パリティデータ生成手段により生成された更新後のパリティデータを第1のディスク装置に、それぞれ書き込む第2の書込手段、
    として機能させるコンピュータプログラム。
  19. ディスクアレイを構成する複数のディスク装置を備えるコンピュータを、
    所定ブロック単位に分割したデータと該データから生成されるパリティデータとを、それぞれ異なるディスク装置に書き込む第1の書込手段、
    データ更新の指示に応じて、更新が指示されたデータを記憶する第1のディスク装置と該更新が指示されたデータのパリティデータを記憶する第2のディスク装置とから、それぞれ更新前のデータと更新前のパリティデータとを読み出す読出手段、
    更新後のデータと前記読出手段により読み出された更新前のデータ及び更新前のパリティデータとから更新後のパリティデータを生成するパリティデータ生成手段、
    前記第1のディスク装置に記憶されたパリティデータのブロック数と、前記第2のディスク装置に記憶されたパリティデータのブロック数と、を比較するブロック数比較手段、
    前記ブロック数比較手段により第1のディスク装置に記憶されたパリティデータのブロック数が第2のディスク装置に記憶されたパリティデータのブロック数以下であると判別された場合、前記更新後のデータを第2のディスク装置に、前記パリティデータ生成手段により生成された更新後のパリティデータを第1のディスク装置に、それぞれ書き込む第2の書込手段、
    として機能させるコンピュータプログラム。
  20. ディスクアレイを構成する複数のディスク装置を備えるコンピュータを、
    所定ブロック単位に分割したデータと該データから生成されるパリティデータとを、それぞれ異なるディスク装置に書き込む第1の書込手段、
    データ更新の指示に応じて、更新が指示されたデータを記憶する第1のディスク装置と該更新が指示されたデータのパリティデータを記憶する第2のディスク装置とから、それぞれ更新前のデータと更新前のパリティデータとを読み出す読出手段、
    更新後のデータと前記読出手段により読み出された更新前のデータ及び更新前のパリティデータとから更新後のパリティデータを生成するパリティデータ生成手段、
    前記第1のディスク装置の更新回数と前記第2のディスク装置の更新回数とを比較する更新回数比較手段、
    前記更新回数比較手段により第1のディスク装置の更新回数が第2のディスク装置の更新回数以上であると判別された場合、前記更新後のデータを第2のディスク装置に、前記パリティデータ生成手段により生成された更新後のパリティデータを第1のディスク装置に、それぞれ書き込む第2の書込手段、
    として機能させるコンピュータプログラム。
JP2003277939A 2003-07-22 2003-07-22 ディスクアレイ装置、ディスクアレイシステム、パリティデータ分散方法及びコンピュータプログラム Expired - Lifetime JP3739766B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2003277939A JP3739766B2 (ja) 2003-07-22 2003-07-22 ディスクアレイ装置、ディスクアレイシステム、パリティデータ分散方法及びコンピュータプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003277939A JP3739766B2 (ja) 2003-07-22 2003-07-22 ディスクアレイ装置、ディスクアレイシステム、パリティデータ分散方法及びコンピュータプログラム

Publications (2)

Publication Number Publication Date
JP2005044147A JP2005044147A (ja) 2005-02-17
JP3739766B2 true JP3739766B2 (ja) 2006-01-25

Family

ID=34264494

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003277939A Expired - Lifetime JP3739766B2 (ja) 2003-07-22 2003-07-22 ディスクアレイ装置、ディスクアレイシステム、パリティデータ分散方法及びコンピュータプログラム

Country Status (1)

Country Link
JP (1) JP3739766B2 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11083916B2 (en) 2008-12-18 2021-08-10 3M Innovative Properties Company Flat fold respirator having flanges disposed on the mask body
JP2011013908A (ja) * 2009-07-01 2011-01-20 Toshiba Corp ディスクコントローラ及び冗長データ管理方法
JP5593577B2 (ja) * 2010-12-27 2014-09-24 株式会社日立製作所 ストレージシステム及びその制御情報の管理方法
CN102426512A (zh) * 2011-11-09 2012-04-25 浪潮电子信息产业股份有限公司 一种基于虚拟化的存储双控磁盘阵列的实现方法
WO2016194095A1 (ja) * 2015-06-01 2016-12-08 株式会社日立製作所 情報処理システム、ストレージ装置及び記憶デバイス

Also Published As

Publication number Publication date
JP2005044147A (ja) 2005-02-17

Similar Documents

Publication Publication Date Title
JP4718340B2 (ja) ストレージシステム、制御方法及びプログラム
US7743275B1 (en) Fault tolerant distributed storage method and controller using (N,K) algorithms
US20210359709A1 (en) Selecting Optimal Responses To Errors In A Storage System
US20020035668A1 (en) Information storage system for redistributing information to information storage devices when a structure of the information storage devices is changed
CN110750382A (zh) 用于提高数据修复性能的最小存储再生码编码方法及系统
JP2007140829A (ja) バックアップシステム、方法及びプログラム
JP2014041664A (ja) Raid情報のメモリ効率検査
US7472250B2 (en) Storage control device, and control method for storage control device
US20060236149A1 (en) System and method for rebuilding a storage disk
JP2002278707A (ja) ディスクコントローラ
US7155634B1 (en) Process for generating and reconstructing variable number of parity for byte streams independent of host block size
JP3739766B2 (ja) ディスクアレイ装置、ディスクアレイシステム、パリティデータ分散方法及びコンピュータプログラム
US20050283652A1 (en) Fault tolerance system and method for one or two failed disks in a disk array
US8316258B2 (en) System and method for error detection in a data storage system
US20100138389A1 (en) Systems and methods for updating a data store using a transaction store
US7117387B2 (en) Method and apparatus for writing data and validating data in a recording medium
US6223321B1 (en) Recording/reproduction system
JP6206138B2 (ja) ストレージ制御装置およびストレージ制御装置の制御プログラム
US8510643B2 (en) Optimizing raid migration performance
JP2002328814A (ja) パリティ演算を実行する方法
US5901157A (en) Method and apparatus for reducing the access time for storage systems
US11726710B2 (en) Matrix super parity for data storage
US8006052B1 (en) Systems and methods for tracking portions of a logical volume that have never been written by a host
JP6495858B2 (ja) サーバ装置、誤り訂正システム、誤り訂正方法、プログラム
JPH10222387A5 (ja)

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20051027

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: 20051101

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20051102

R150 Certificate of patent or registration of utility model

Ref document number: 3739766

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20091111

Year of fee payment: 4

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20091111

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20101111

Year of fee payment: 5

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111111

Year of fee payment: 6

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121111

Year of fee payment: 7

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121111

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131111

Year of fee payment: 8

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

EXPY Cancellation because of completion of term