JP3739766B2 - Disk array device, disk array system, parity data distribution method, and computer program - Google Patents

Disk array device, disk array system, parity data distribution method, and computer program 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
Japanese (ja)
Other versions
JP2005044147A (en
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/en
Publication of JP2005044147A publication Critical patent/JP2005044147A/en
Application granted granted Critical
Publication of JP3739766B2 publication Critical patent/JP3739766B2/en
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Description

本発明は、ディスクアレイ装置、ディスクアレイシステム、パリティデータ分散方法及びコンピュータプログラムに関し、特に、負荷を分散することにより性能の向上を図ることができるディスクアレイ装置、ディスクアレイシステム、パリティデータ分散方法及びコンピュータプログラムに関する。   The present invention relates to a disk array device, a disk array system, a parity data distribution method, and a computer program, and in particular, a disk array device, a disk array system, a parity data distribution method, and a disk array device capable of improving performance by distributing loads. It relates to a computer program.

高速なデータ転送と、データディスク装置の故障により喪失したデータの復元と、を可能にするシステムとして、RAID(Redundant Arrays of Inexpensive Disks)等の冗長化ディスク構成を適用するディスクアレイを備えるディスクアレイシステムが開示されている(例えば特許文献1参照)。   A disk array system having a disk array to which a redundant disk configuration such as RAID (Redundant Arrays of Inexpensive Disks) is applied as a system that enables high-speed data transfer and restoration of data lost due to a failure of a data disk device Is disclosed (for example, see Patent Document 1).

特許文献1に開示されたディスクアレイシステムは、データを格納する複数のデータディスク装置と、該データの排他的論理和(EXCLUSIVE-OR)であるパリティデータを格納するパリティディスク装置と、を備えている。このようなパリティディスク装置を備えることにより、複数のデータディスク装置のうち1台のデータディスク装置に格納されているデータを喪失した場合であっても、ディスクアレイシステムは、他のデータディスク装置に格納されているデータと該パリティディスク装置に格納されているパリティデータとに基づいて、喪失したデータを復元することができる。
特許公開平5−324579号公報(第2−8頁、第4−5図)。
The disk array system disclosed in Patent Document 1 includes a plurality of data disk devices that store data, and a parity disk device that stores parity data that is an exclusive OR of the data. Yes. By providing such a parity disk device, even if data stored in one data disk device among a plurality of data disk devices is lost, the disk array system can be used by other data disk devices. The lost data can be restored based on the stored data and the parity data stored in the parity disk device.
Japanese Patent Publication No. 5-324579 (page 2-8, FIG. 4-5).

しかしながら、特許文献1に開示されたディスクアレイシステムでは、データが更新される毎にパリティディスク装置にアクセスする必要があるため、パリティディスク装置に負荷が集中していしまう。このため、ディスクアレイシステムの性能は、パリティディスク装置の性能に依存してしまうといった欠点があった。   However, in the disk array system disclosed in Patent Document 1, since it is necessary to access the parity disk device every time data is updated, the load is concentrated on the parity disk device. For this reason, the performance of the disk array system has a drawback that it depends on the performance of the parity disk device.

本発明は、上述した事情に鑑みてなされたものであって、負荷を分散することにより性能の向上を図ることができるディスクアレイ装置、ディスクアレイ装置、ディスクアレイシステム、パリティデータ分散方法及びコンピュータプログラムを提供することを目的とする。   The present invention has been made in view of the circumstances described above, and is a disk array device, a disk array device, a disk array system, a parity data distribution method, and a computer program capable of improving performance by distributing a load. The purpose is to provide.

上記目的を達成するために、本発明の第1の観点に係るディスクアレイ装置は、ディスクアレイを構成する複数のディスク装置を備え、所定ブロック単位に分割したデータと該データから生成されるパリティデータとを、それぞれ異なるディスク装置に書き込むディスクアレイ装置であって、データ更新の指示に応じて、更新が指示されたデータを記憶する第1のディスク装置と該更新が指示されたデータのパリティデータを記憶する第2のディスク装置とから、それぞれ更新前のデータと更新前のパリティデータとを読み出す読出手段と、更新後のデータと前記読出手段により読み出された更新前のデータ及び更新前のパリティデータとから更新後のパリティデータを生成するパリティデータ生成手段と、前記第1のディスク装置に記憶されたパリティデータのブロック数が所定数以下か否かを判別する判別手段と、前記判別手段により第1のディスク装置に記憶されたパリティデータのブロック数が所定数以下であると判別された場合、前記更新後のデータを第2のディスク装置に、前記パリティデータ生成手段により生成された更新後のパリティデータを第1のディスク装置に、それぞれ書き込む書込手段と、を備える、ことを特徴とする。   In order to achieve the above object, a disk array device according to a first aspect of the present invention includes a plurality of disk devices constituting a disk array, data divided into predetermined block units, and parity data generated from the data In accordance with the data update instruction, the first disk device storing the data instructed to update and the parity data of the data instructed to be updated. Read means for reading data before update and parity data before update from the second disk device to be stored, data after update, pre-update data read by the read means, and parity before update Parity data generating means for generating updated parity data from the data, and stored in the first disk device Determining means for determining whether or not the number of blocks of parity data is equal to or less than a predetermined number, and when the number of blocks of parity data stored in the first disk device is determined to be equal to or less than a predetermined number by the determining means; And writing means for writing the updated data to the second disk device and writing the updated parity data generated by the parity data generating means to the first disk device, respectively. .

上記目的を達成するために、本発明の第2の観点に係るディスクアレイ装置は、ディスクアレイを構成する複数のディスク装置を備え、所定ブロック単位に分割したデータと該データから生成されるパリティデータとを、それぞれ異なるディスク装置に書き込むディスクアレイ装置であって、データ更新の指示に応じて、更新が指示されたデータを記憶する第1のディスク装置と該更新が指示されたデータのパリティデータを記憶する第2のディスク装置とから、それぞれ更新前のデータと更新前のパリティデータとを読み出す読出手段と、更新後のデータと前記読出手段により読み出された更新前のデータ及び更新前のパリティデータとから更新後のパリティデータを生成するパリティデータ生成手段と、前記第1のディスク装置に記憶されたパリティデータのブロック数と、前記第2のディスク装置に記憶されたパリティデータのブロック数と、を比較するブロック数比較手段と、前記ブロック数比較手段により第1のディスク装置に記憶されたパリティデータのブロック数が第2のディスク装置に記憶されたパリティデータのブロック数以下であると判別された場合、前記更新後のデータを第2のディスク装置に、前記パリティデータ生成手段により生成された更新後のパリティデータを第1のディスク装置に、それぞれ書き込む書込手段と、を備える、ことを特徴とする。   In order to achieve the above object, a disk array device according to a second aspect of the present invention comprises a plurality of disk devices constituting a disk array, data divided into predetermined block units, and parity data generated from the data In accordance with the data update instruction, the first disk device storing the data instructed to update and the parity data of the data instructed to be updated. Read means for reading data before update and parity data before update from the second disk device to be stored, data after update, pre-update data read by the read means, and parity before update Parity data generating means for generating updated parity data from the data, and stored in the first disk device Block number comparing means for comparing the number of blocks of parity data and the number of blocks of parity data stored in the second disk device, and the parity stored in the first disk device by the block number comparing means When it is determined that the number of data blocks is less than or equal to the number of parity data blocks stored in the second disk device, the updated data is generated in the second disk device by the parity data generating means. And writing means for writing the updated parity data to the first disk device, respectively.

上記目的を達成するために、本発明の第3の観点に係るディスクアレイ装置は、ディスクアレイを構成する複数のディスク装置を備え、所定ブロック単位に分割したデータと該データから生成されるパリティデータとを、それぞれ異なるディスク装置に書き込むディスクアレイ装置であって、データ更新の指示に応じて、更新が指示されたデータを記憶する第1のディスク装置と該更新が指示されたデータのパリティデータを記憶する第2のディスク装置とから、それぞれ更新前のデータと更新前のパリティデータとを読み出す読出手段と、更新後のデータと前記読出手段により読み出された更新前のデータ及び更新前のパリティデータとから更新後のパリティデータを生成するパリティデータ生成手段と、前記第1のディスク装置の更新回数と前記第2のディスク装置の更新回数とを比較する更新回数比較手段と、前記更新回数比較手段により第1のディスク装置の更新回数が第2のディスク装置の更新回数以上であると判別された場合、前記更新後のデータを第2のディスク装置に、前記パリティデータ生成手段により生成された更新後のパリティデータを第1のディスク装置に、それぞれ書き込む書込手段と、を備える、ことを特徴とする。   In order to achieve the above object, a disk array device according to a third aspect of the present invention comprises a plurality of disk devices constituting a disk array, data divided into predetermined block units, and parity data generated from the data In accordance with the data update instruction, the first disk device storing the data instructed to update and the parity data of the data instructed to be updated. Read means for reading data before update and parity data before update from the second disk device to be stored, data after update, pre-update data read by the read means, and parity before update Parity data generation means for generating updated parity data from the data, and update times of the first disk device And the number of updates of the second disk device, and the number of updates of the first disk device is determined to be greater than or equal to the number of updates of the second disk device. A write unit for writing the updated data to the second disk device and writing the updated parity data generated by the parity data generation unit to the first disk device, respectively. And

上記ディスクアレイ装置において、前記書込手段により更新後のパリティデータ及び更新後のデータが、それぞれ第1及び第2のディスク装置に書き込まれる毎に、各ディスク装置に記憶されているパリティデータのブロック数を計数する計数手段と、前記計数手段により計数された各ディスク装置に記憶されているパリティデータのブロック数から、パリティデータが各ディスク装置に分散している度合を示す分散度を算出する分散度算出手段と、をさらに備え、前記書込手段は、前記分散度算出手段により算出された分散度が所定値以下になると、前記更新後のデータを第1のディスク装置に、前記更新後のパリティデータを第2のディスク装置に、それぞれ書き込んでもよい。   In the disk array device, the parity data block stored in each disk device each time the updated parity data and the updated data are written to the first and second disk devices by the writing means, respectively. A dispersion unit that calculates the degree of dispersion of the parity data in each disk device from the counting unit that counts the number and the number of blocks of parity data stored in each disk device counted by the counting unit A degree calculating unit, and the writing unit stores the updated data in the first disk device when the degree of dispersion calculated by the degree of dispersion calculating unit is a predetermined value or less. Parity data may be written to the second disk device, respectively.

上記目的を達成するために、本発明の第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の書込手段と、を備える、ことを特徴とする。   In order to achieve the above object, a disk array system according to a fourth aspect of the present invention includes a first disk device that stores data before update, and a first disk device that stores parity data generated from the data before update. A plurality of disk devices that comprise a disk array, a first computer that includes the first disk device, and a second computer that includes the second disk device via a network. A connected second computer and a server computer connected to the first and second computers via a network and transmitting updated data divided into predetermined block units to either the first or second computer And the second computer is transmitted by the server computer. Exclusive OR of first receiving means for receiving updated data, updated data received by the first receiving means, and parity data before update stored in the second disk device Is transmitted to the first computer, and first writing means for writing the updated data to the second disk device. The first computer is transmitted by the transmitting means. Parity data after updating from second receiving means for receiving exclusive OR, exclusive OR received by the second receiving means and pre-update data stored in the first disk device Parity data generating means for generating data, and second writing means for writing the updated parity data generated by the parity data generating means to the first disk device. It is characterized in.

上記ディスクアレイシステムにおいて、前記排他的論理和は、更新前のデータをAold、更新後のデータをAnew、更新前のパリティデータをPold、更新後のパリティデータをPnew、としたとき、以下の数1によって定義されてもよい。   In the above disk array system, when the exclusive OR is Aold, the data after update is Anew, the parity data before update is Pold, and the parity data after update is Pnew, the following number is obtained: 1 may be defined.

Figure 0003739766
Figure 0003739766

また、上記ディスクアレイシステムにおいて、前記パリティデータ生成手段は、排他的論理和をPsとしたとき、以下の数2によって定義される関係式を用いて更新後のパリティデータを生成してもよい。   Further, in the disk array system, the parity data generation means may generate updated parity data using a relational expression defined by the following equation 2 when the exclusive OR is Ps.

Figure 0003739766
Figure 0003739766

さらに、上記ディスクアレイシステムにおいて、前記サーバコンピュータは、前記第1のディスク装置に記憶されたパリティデータのブロック数が所定数以下か否かを判別する判別手段を備え、前記判別手段により第1のディスク装置に記憶されたパリティデータのブロック数が所定数以下であると判別された場合、更新後のデータを前記第2のコンピュータに送信してもよい。   Further, in the disk array system, the server computer includes a determining unit that determines whether or not the number of blocks of parity data stored in the first disk device is equal to or less than a predetermined number. When it is determined that the number of blocks of parity data stored in the disk device is equal to or less than a predetermined number, the updated data may be transmitted to the second computer.

また、上記ディスクアレイシステムにおいて、前記サーバコンピュータは、前記第1のディスク装置に記憶されたパリティデータのブロック数と、前記第2のディスク装置に記憶されたパリティデータのブロック数と、を比較するブロック数比較手段を備え、前記ブロック数比較手段により第1のディスク装置に記憶されたパリティデータのブロック数が第2のディスク装置に記憶されたパリティデータのブロック数以下であると判別された場合、更新後のデータを前記第2のコンピュータに送信してもよい。   In the disk array system, the server computer compares the number of blocks of parity data stored in the first disk device with the number of blocks of parity data stored in the second disk device. A block number comparing means, wherein the block number comparing means determines that the number of blocks of parity data stored in the first disk device is less than or equal to the number of blocks of parity data stored in the second disk device; The updated data may be transmitted to the second computer.

さらに、上記ディスクアレイシステムにおいて、前記サーバコンピュータは、前記第1のディスク装置の更新回数と前記第2のディスク装置の更新回数とを比較する更新回数比較手段を備え、前記更新回数比較手段により第1のディスク装置の更新回数が第2のディスク装置の更新回数以上であると判別された場合、更新後のデータを前記第2のコンピュータに送信してもよい。   Further, in the disk array system, the server computer includes update number comparison means for comparing the number of updates of the first disk device and the number of updates of the second disk device, and the update number comparison means performs the first operation. If it is determined that the number of updates of one disk device is greater than or equal to the number of updates of the second disk device, the updated data may be transmitted to the second computer.

また、上記ディスクアレイシステムにおいて、前記サーバコンピュータは、前記第1及び第2の書込手段により更新後のデータと更新後のパリティデータとが、それぞれ第2及び第1のディスク装置に書き込まれる毎に、各ディスク装置に記憶されているパリティデータのブロック数を計数する計数手段と、前記計数手段により計数された各ディスク装置に記憶されているパリティデータのブロック数から、パリティデータが各ディスク装置に分散している度合を示す分散度を算出する分散度算出手段と、をさらに備え、前記分散度算出手段により算出された分散度が所定値以下になると、更新後のデータを前記第1のコンピュータに送信してもよい。   In the disk array system, the server computer writes updated data and updated parity data to the second and first disk devices by the first and second writing units, respectively. In addition, the counting means for counting the number of blocks of parity data stored in each disk device, and the parity data is determined from the number of blocks of parity data stored in each disk device counted by the counting means. Dispersion degree calculation means for calculating a dispersion degree indicating the degree of dispersion in the distribution data, and when the dispersion degree calculated by the dispersion degree calculation means falls below a predetermined value, the updated data is stored in the first data It may be sent to a computer.

さらに、上記ディスクアレイ装置又はディスクアレイシステムにおいて、前記分散度は、前記ディスク装置の数をn、各ディスク装置に記憶されているパリティデータのブロック数をC、前記所定数をC0、としたとき、以下の数3によって定義されてもよい。   Furthermore, in the above disk array device or disk array system, when the degree of distribution is n, the number of disk devices is n, the number of blocks of parity data stored in each disk device is C, and the predetermined number is C0. , May be defined by Equation 3 below.

Figure 0003739766
Figure 0003739766

また、上記ディスクアレイ装置又はディスクアレイシステムにおいて、前記所定数は、前記ディスク装置の数をn、各ディスク装置に記憶されているパリティデータのブロック数をC、としたとき、以下の数4によって定義されてもよい。   In the above disk array device or disk array system, the predetermined number is expressed by the following equation 4 where n is the number of disk devices and C is the number of blocks of parity data stored in each disk device. May be defined.

Figure 0003739766
Figure 0003739766

上記目的を達成するために、本発明の第5の観点に係るパリティデータ分散方法は、ディスクアレイを構成する複数のディスク装置を備え、所定ブロック単位に分割したデータと該データから生成されるパリティデータとを、それぞれ異なるディスク装置に書き込むディスクアレイ装置におけるパリティデータ分散方法であって、データ更新の指示に応じて、更新が指示されたデータを記憶する第1のディスク装置と該更新が指示されたデータのパリティデータを記憶する第2のディスク装置とから、それぞれ更新前のデータと更新前のパリティデータとを読み出す読出工程と、更新後のデータと前記読出工程により読み出された更新前のデータ及び更新前のパリティデータとから更新後のパリティデータを生成するパリティデータ生成工程と、前記第1のディスク装置に記憶されたパリティデータのブロック数が所定数以下か否かを判別する判別工程と、前記判別工程により第1のディスク装置に記憶されたパリティデータのブロック数が所定数以下であると判別された場合、前記更新後のデータを第2のディスク装置に、前記パリティデータ生成工程により生成された更新後のパリティデータを第1のディスク装置に、それぞれ書き込む書込工程と、を備える、ことを特徴とする。   In order to achieve the above object, a parity data distribution method according to a fifth aspect of the present invention includes a plurality of disk devices constituting a disk array, and data divided into predetermined block units and parity generated from the data A parity data distribution method in a disk array device that writes data to different disk devices, and in response to a data update instruction, the first disk device that stores data instructed to be updated and the update are instructed A read process for reading the pre-update data and the pre-update parity data, and the post-update data and the pre-update Parity data generation step for generating updated parity data from data and parity data before update A determining step for determining whether or not the number of blocks of parity data stored in the first disk device is equal to or less than a predetermined number; and a number of blocks of parity data stored in the first disk device by the determining step is predetermined. A writing step of writing the updated data to the second disk device and the updated parity data generated by the parity data generation step to the first disk device, respectively, when it is determined that the number is less than or equal to And comprising.

上記目的を達成するために、本発明の第6の観点に係るパリティデータ分散方法は、ディスクアレイを構成する複数のディスク装置を備え、所定ブロック単位に分割したデータと該データから生成されるパリティデータとを、それぞれ異なるディスク装置に書き込むディスクアレイ装置におけるパリティデータ分散方法であって、データ更新の指示に応じて、更新が指示されたデータを記憶する第1のディスク装置と該更新が指示されたデータのパリティデータを記憶する第2のディスク装置とから、それぞれ更新前のデータと更新前のパリティデータとを読み出す読出工程と、更新後のデータと前記読出工程により読み出された更新前のデータ及び更新前のパリティデータとから更新後のパリティデータを生成するパリティデータ生成工程と、前記第1のディスク装置に記憶されたパリティデータのブロック数と、前記第2のディスク装置に記憶されたパリティデータのブロック数と、を比較するブロック数比較工程と、前記ブロック数比較工程により第1のディスク装置に記憶されたパリティデータのブロック数が第2のディスク装置に記憶されたパリティデータのブロック数以下であると判別された場合、前記更新後のデータを第2のディスク装置に、前記パリティデータ生成工程により生成された更新後のパリティデータを第1のディスク装置に、それぞれ書き込む書込工程と、を備える、ことを特徴とする。   In order to achieve the above object, a parity data distribution method according to a sixth aspect of the present invention includes a plurality of disk devices constituting a disk array, and data divided into predetermined blocks and parity generated from the data A parity data distribution method in a disk array device that writes data to different disk devices, and in response to a data update instruction, the first disk device that stores data instructed to be updated and the update are instructed A read process for reading the pre-update data and the pre-update parity data, and the post-update data and the pre-update Parity data generation step for generating updated parity data from data and parity data before update The block number comparison step for comparing the number of blocks of parity data stored in the first disk device and the number of blocks of parity data stored in the second disk device, and the block number comparison step When it is determined that the number of blocks of parity data stored in the first disk device is equal to or less than the number of blocks of parity data stored in the second disk device, the updated data is sent to the second disk device. And a writing step of writing the updated parity data generated by the parity data generation step to the first disk device, respectively.

上記目的を達成するために、本発明の第7の観点に係るパリティデータ分散方法は、ディスクアレイを構成する複数のディスク装置を備え、所定ブロック単位に分割したデータと該データから生成されるパリティデータとを、それぞれ異なるディスク装置に書き込むディスクアレイ装置におけるパリティデータ分散方法であって、データ更新の指示に応じて、更新が指示されたデータを記憶する第1のディスク装置と該更新が指示されたデータのパリティデータを記憶する第2のディスク装置とから、それぞれ更新前のデータと更新前のパリティデータとを読み出す読出工程と、更新後のデータと前記読出工程により読み出された更新前のデータ及び更新前のパリティデータとから更新後のパリティデータを生成するパリティデータ生成工程と、前記第1のディスク装置の更新回数と前記第2のディスク装置の更新回数とを比較する更新回数比較工程と、前記更新回数比較工程により第1のディスク装置の更新回数が第2のディスク装置の更新回数以上であると判別された場合、前記更新後のデータを第2のディスク装置に、前記パリティデータ生成工程により生成された更新後のパリティデータを第1のディスク装置に、それぞれ書き込む書込工程と、を備える、ことを特徴とする。   In order to achieve the above object, a parity data distribution method according to a seventh aspect of the present invention includes a plurality of disk devices constituting a disk array, and data divided into predetermined block units and parity generated from the data A parity data distribution method in a disk array device that writes data to different disk devices, and in response to a data update instruction, the first disk device that stores data instructed to be updated and the update are instructed A read process for reading the pre-update data and the pre-update parity data, and the post-update data and the pre-update Parity data generation step for generating updated parity data from data and parity data before update The update number comparison step of comparing the update number of the first disk device with the update number of the second disk device, and the update number of the first disk device is set to the second disk device by the update number comparison step. The updated data is written to the second disk device, and the updated parity data generated by the parity data generation step is written to the first disk device. And a step of inserting.

上記目的を達成するために、本発明の第8の観点に係るパリティデータ分散方法は、更新前のデータを記憶する第1のディスク装置と該更新前のデータから生成されたパリティデータを記憶する第2のディスク装置とを含みディスクアレイを構成する複数のディスク装置と、該第1のディスク装置を備える第1のコンピュータと、該第2のディスク装置を備え該第1のコンピュータにネットワークを介して接続された第2のコンピュータと、該第1及び第2のコンピュータにネットワークを介して接続され所定ブロック単位に分割した更新後のデータを第1及び第2のコンピュータのいずれかに送信するサーバコンピュータと、を備えるディスクアレイシステムにおけるパリティデータ分散方法であって、前記サーバコンピュータにより送信される更新後のデータを受信する第1の受信工程と、前記第1の受信工程により受信した更新後のデータと前記第2のディスク装置に記憶されている更新前のパリティデータとの排他的論理和を前記第1のコンピュータに送信する送信工程と、前記更新後のデータを第2のディスク装置に書き込む第1の書込工程と、前記送信工程により送信され排他的論理和を受信する第2の受信工程と、前記第2の受信工程により受信した排他的論理和と前記第1のディスク装置に記憶されている更新前のデータとから更新後のパリティデータを生成するパリティデータ生成工程と、前記パリティデータ生成工程により生成された更新後のパリティデータを前記第1のディスク装置に書き込む第2の書込工程と、を備える、ことを特徴とする。   In order to achieve the above object, a parity data distribution method according to an eighth aspect of the present invention stores a first disk device for storing data before update and parity data generated from the data before update. A plurality of disk devices comprising a second disk device and constituting a disk array; a first computer comprising the first disk device; and a second computer comprising the second disk device via a network And a second computer connected to the first and second computers via a network and transmitting updated data divided into predetermined block units to one of the first and second computers And a parity data distribution method in a disk array system comprising: 1st receiving step for receiving updated data, and exclusive logic of the updated data received by the first receiving step and the pre-update parity data stored in the second disk device A transmitting step for transmitting the sum to the first computer, a first writing step for writing the updated data to the second disk device, and a second for receiving the exclusive OR transmitted by the transmitting step. A parity data generation step of generating updated parity data from the exclusive OR received in the second reception step and the pre-update data stored in the first disk device; And a second writing step of writing the updated parity data generated by the parity data generation step into the first disk device.

上記目的を達成するために、本発明の第9の観点に係るコンピュータプログラムは、ディスクアレイを構成する複数のディスク装置を備えるコンピュータを、所定ブロック単位に分割したデータと該データから生成されるパリティデータとを、それぞれ異なるディスク装置に書き込む第1の書込手段、データ更新の指示に応じて、更新が指示されたデータを記憶する第1のディスク装置と該更新が指示されたデータのパリティデータを記憶する第2のディスク装置とから、それぞれ更新前のデータと更新前のパリティデータとを読み出す読出手段、更新後のデータと前記読出手段により読み出された更新前のデータ及び更新前のパリティデータとから更新後のパリティデータを生成するパリティデータ生成手段、前記第1のディスク装置に記憶されたパリティデータのブロック数が所定数以下か否かを判別する判別手段、前記判別手段により第1のディスク装置に記憶されたパリティデータのブロック数が所定数以下であると判別された場合、前記更新後のデータを第2のディスク装置に、前記パリティデータ生成手段により生成された更新後のパリティデータを第1のディスク装置に、それぞれ書き込む第2の書込手段、として機能させる。   In order to achieve the above object, a computer program according to a ninth aspect of the present invention provides data obtained by dividing a computer including a plurality of disk devices constituting a disk array into predetermined block units and parity generated from the data. First writing means for writing data to different disk devices, first disk device for storing data instructed to be updated in accordance with a data update instruction, and parity data of the data instructed to be updated Reading means for reading data before update and parity data before update from the second disk device storing data, data after update, data before update read by the read means and parity before update, respectively Parity data generating means for generating updated parity data from the data, recorded in the first disk device Determining means for determining whether or not the number of blocks of the parity data is less than or equal to a predetermined number, and when the number of blocks of parity data stored in the first disk device is determined to be less than or equal to the predetermined number by the determining means; The updated data is caused to function as a second writing device for writing the updated data to the second disk device, and the updated parity data generated by the parity data generating device to the first disk device.

上記目的を達成するために、本発明の第10の観点に係るコンピュータプログラムは、ディスクアレイを構成する複数のディスク装置を備えるコンピュータを、所定ブロック単位に分割したデータと該データから生成されるパリティデータとを、それぞれ異なるディスク装置に書き込む第1の書込手段、データ更新の指示に応じて、更新が指示されたデータを記憶する第1のディスク装置と該更新が指示されたデータのパリティデータを記憶する第2のディスク装置とから、それぞれ更新前のデータと更新前のパリティデータとを読み出す読出手段、更新後のデータと前記読出手段により読み出された更新前のデータ及び更新前のパリティデータとから更新後のパリティデータを生成するパリティデータ生成手段、前記第1のディスク装置に記憶されたパリティデータのブロック数と、前記第2のディスク装置に記憶されたパリティデータのブロック数と、を比較するブロック数比較手段、前記ブロック数比較手段により第1のディスク装置に記憶されたパリティデータのブロック数が第2のディスク装置に記憶されたパリティデータのブロック数以下であると判別された場合、前記更新後のデータを第2のディスク装置に、前記パリティデータ生成手段により生成された更新後のパリティデータを第1のディスク装置に、それぞれ書き込む第2の書込手段、として機能させる。   To achieve the above object, a computer program according to a tenth aspect of the present invention provides data obtained by dividing a computer comprising a plurality of disk devices constituting a disk array into predetermined block units and parity generated from the data. First writing means for writing data to different disk devices, first disk device for storing data instructed to be updated in accordance with a data update instruction, and parity data of the data instructed to be updated Reading means for reading data before update and parity data before update from the second disk device storing data, data after update, data before update read by the read means and parity before update, respectively Parity data generating means for generating updated parity data from the data and the first disk device Block number comparison means for comparing the number of stored parity data blocks with the number of blocks of parity data stored in the second disk device, and the number of blocks stored in the first disk device by the block number comparison means When it is determined that the number of blocks of parity data is equal to or less than the number of blocks of parity data stored in the second disk device, the updated data is generated in the second disk device by the parity data generation means. The updated parity data is caused to function as second writing means for writing the updated parity data to the first disk device.

上記目的を達成するために、本発明の第11の観点に係るコンピュータプログラムは、ディスクアレイを構成する複数のディスク装置を備えるコンピュータを、所定ブロック単位に分割したデータと該データから生成されるパリティデータとを、それぞれ異なるディスク装置に書き込む第1の書込手段、データ更新の指示に応じて、更新が指示されたデータを記憶する第1のディスク装置と該更新が指示されたデータのパリティデータを記憶する第2のディスク装置とから、それぞれ更新前のデータと更新前のパリティデータとを読み出す読出手段、更新後のデータと前記読出手段により読み出された更新前のデータ及び更新前のパリティデータとから更新後のパリティデータを生成するパリティデータ生成手段、前記第1のディスク装置の更新回数と前記第2のディスク装置の更新回数とを比較する更新回数比較手段、前記更新回数比較手段により第1のディスク装置の更新回数が第2のディスク装置の更新回数以上であると判別された場合、前記更新後のデータを第2のディスク装置に、前記パリティデータ生成手段により生成された更新後のパリティデータを第1のディスク装置に、それぞれ書き込む第2の書込手段、として機能させる。   In order to achieve the above object, a computer program according to an eleventh aspect of the present invention provides data obtained by dividing a computer including a plurality of disk devices constituting a disk array into predetermined block units and parity generated from the data. First writing means for writing data to different disk devices, first disk device for storing data instructed to be updated in accordance with a data update instruction, and parity data of the data instructed to be updated Reading means for reading data before update and parity data before update from the second disk device storing data, data after update, data before update read by the read means and parity before update, respectively Parity data generation means for generating updated parity data from the data, the first disk device An update count comparison means for comparing the new count with the update count of the second disk device, and the update count comparison means determines that the update count of the first disk device is greater than or equal to the update count of the second disk device. In this case, the updated data is made to function as a second writing device for writing the updated data to the second disk device and the updated parity data generated by the parity data generating device to the first disk device. .

本発明により、負荷を分散することにより性能の向上を図ることができるディスクアレイ装置、ディスクアレイシステム、パリティデータ分散方法及びコンピュータプログラムを提供することができる。   According to the present invention, it is possible to provide a disk array device, a disk array system, a parity data distribution method, and a computer program that can improve performance by distributing a load.

[第1の実施の形態] [First Embodiment]

本発明の第1の実施の形態に係るディスクアレイ装置について、以下図面を参照して説明する。   A disk array device according to a first embodiment of the present invention will be described below with reference to the drawings.

ディスクアレイ装置1は、図1に示すように、ディスクアレイ20と、ディスクアレイコントローラ30と、から概略構成されている。   As shown in FIG. 1, the disk array device 1 is roughly composed of a disk array 20 and a disk array controller 30.

ディスクアレイ20は、複数(少なくとも3台以上)のディスク装置、例えばハードディスクドライブ等から構成される4台のディスク装置D1〜D4を備え、ディスク装置D1〜D4は、冗長化ディスク構成を適用する。このような冗長化ディスク構成を適用することにより、ディスク装置D1〜D4のうちいずれか1つが故障した場合であっても、該故障したディスク装置Dのデータの復元が可能となる。   The disk array 20 includes four (at least three or more) disk devices, for example, four disk devices D1 to D4 configured by hard disk drives or the like, and the disk devices D1 to D4 apply a redundant disk configuration. By applying such a redundant disk configuration, even if any one of the disk devices D1 to D4 fails, the data of the failed disk device D can be restored.

また、ディスク装置D1〜D4は、初期状態においてRAID(Redundant Arrays of Inexpensive Disks)4の冗長化ディスク構成を適用し、ディスク装置D1〜D4のうち所定のディスク装置、本実施の形態においてはディスク装置D4がパリティデータを格納するパリティディスク装置として機能している。   In addition, the disk devices D1 to D4 apply a redundant disk configuration of RAID (Redundant Arrays of Inexpensive Disks) 4 in the initial state, and a predetermined disk device among the disk devices D1 to D4, in this embodiment, the disk device. D4 functions as a parity disk device for storing parity data.

ディスク装置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が、夫々設定されている。   In the disk devices D1 to D4, data is written and rewritten in units of preset blocks. 2, the disk device D1 has blocks B0, B4,..., B4k (k = 0, 1,..., 19),..., B76, and the disk device D2 has blocks B1, B5,. , B (4k + 1),..., B77 are blocks B2, B6,..., B (4k + 2),..., B78 are in disk device D3, and blocks B3, B7,. ,..., B79 are set.

図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に接続されている。   A disk array controller 30 shown in FIG. 1 includes a CPU (Central Processing Unit), a RAM (Random Access Memory), a ROM (Read Only Memory), and the like. The disk array controller 30 is connected to each of the disk devices D1 to D4 of the host computer 10 and the disk array 20 via an interface I / F, for example, a SCSI (Small Computer System Interface), a PCI bus (Peripheral Component Interconnect Bus), or the like. Has been.

このディスクアレイコントローラ30により、ホストコンピュータ10は、ディスクアレイ20を構成する4台のディスク装置D1〜D4を1つの論理的ディスク装置として認識することが可能となる。   The disk array controller 30 allows the host computer 10 to recognize the four disk devices D1 to D4 constituting the disk array 20 as one logical disk device.

ディスクアレイコントローラ30は、ホストコンピュータ10からデータの書込が指示されると、書き込むデータをブロック単位に分割し、数5を用いて、3ブロック分のデータ、例えばA3k、A(3k+1)及びA(3k+2)からパリティデータPkを生成する。このパリティデータP0は、データA0、A1及びA2の排他的論理和として定義される。   When the host computer 10 is instructed to write data, the disk array controller 30 divides the data to be written into blocks, and uses Equation 5, for example, three blocks of data, such as A3k, A (3k + 1), and A Parity data Pk is generated from (3k + 2). The parity data P0 is defined as an exclusive OR of data A0, A1, and A2.

Figure 0003739766
Figure 0003739766

ディスクアレイコントローラ30は、ディスク装置D1〜D4の物理的に同一の位置にある4つのブロックを1つのストライプとして、同一のタイミングでデータの書込を行う。   The disk array controller 30 writes data at the same timing with four blocks at the physically same positions of the disk devices D1 to D4 as one stripe.

図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に、夫々書き込む。   In the example shown in FIG. 2, the disk array controller 30 sets the blocks B0, B1, B2 and B3 to the stripe S0, the blocks B4, B5, B6 and B7 to the stripe S1,..., The blocks B4k, B (4k + 1), B (4k + 2) and B (4k + 3) are set as stripes Sk,..., And blocks B76, B77, B78 and B79 are set as stripes S19,. Then, for example, the disk array controller 30 converts the data A0, A1 and A2 for three blocks and the parity data P0 into the blocks B0, B1, B2, B3 and B4 constituting the stripe S0 at the same timing. Write each.

これにより、ディスク装置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が、夫々記憶される。   As a result, as shown in FIG. 3, the disk devices D1 to D4 have data A0, A1, A2 and parity data P0 in the stripe S0, data A3, A4, A5 and parity data P1 in the stripe S1,. Data A3k, A (3k + 1), A (3k + 2) and parity data Pk are stored in the stripe Sk, and data A57, A58, A59 and parity data P19 are stored in the stripe S19, respectively.

また、図1に示すディスクアレイコントローラ30は、ホストコンピュータ10からデータの更新が指示されると、更新前のデータAoldと、これに対応する更新前のパリティデータPoldと、をディスクアレイ20から読み出す。そして、ディスクアレイコントローラ30は、更新前のデータAoldと更新後のデータAnewと更新前のパリティデータPoldとを用いて、更新後のパリティデータPnewを生成する。   When the host computer 10 is instructed to update data, the disk array controller 30 shown in FIG. 1 reads out the data Aold before the update and the parity data Pold before the update corresponding to the data Aold from the disk array 20. . Then, the disk array controller 30 uses the pre-update data Aold, the post-update data Anew, and the pre-update parity data Pold to generate post-update parity data Pnew.

例えば、更新前のデータをA3kold、更新後のデータをA3knew、更新前のパリティデータをPkold、としたとき、ディスクアレイコントローラ30は、ディスク装置D1に記憶されているデータA3koldと、ディスク装置D4に記憶されているパリティデータPkoldと、を読み出す。そして、ディスクアレイコントローラ30は、数5の変形式数6を用いて、更新後のデータAknewと、更新前のデータA3kold及びパリティデータPkoldと、から更新後のパリティデータPknewを生成する。   For example, when the data before update is A3kold, the data after update is A3knew, and the parity data before update is Pkold, the disk array controller 30 stores the data A3kold stored in the disk device D1 and the disk device D4. The stored parity data Pkold is read out. Then, the disk array controller 30 generates the updated parity data Pknew from the updated data Aknew, the pre-updated data A3kold, and the parity data Pkold using the modified equation 6 of Formula 5.

Figure 0003739766
Figure 0003739766

なお、数6は、数5を以下の手順に従って変形することにより導き出せる。まず、更新前のA3koldとパリティデータPkoldとの関係及び更新後のA3knewとパリティデータPknewとの関係は、数5を用いると、次の数7及び数8に示すようになる。   Equation 6 can be derived by transforming Equation 5 according to the following procedure. First, the relationship between the A3kold before the update and the parity data Pkold and the relationship between the updated A3knew and the parity data Pknew are expressed by the following equations 7 and 8 when the equation 5 is used.

Figure 0003739766
Figure 0003739766

Figure 0003739766
Figure 0003739766

そして、数7を変形すると、数9に示すようになる。   Then, when Equation 7 is transformed, Equation 9 is obtained.

Figure 0003739766
Figure 0003739766

さらに、数9を数8に代入すると、数6に示す関係式が求まる。   Further, when Expression 9 is substituted into Expression 8, a relational expression shown in Expression 6 is obtained.

Figure 0003739766
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のカウント値を更新する。   Further, the disk array controller 30 includes counters C1 to C4 for counting the number of blocks of parity data P stored in the respective disk devices D1 to D4 in a RAM or the like. The number of blocks of parity data P in the devices D1 to D4 is shown. For example, in the case shown in FIG. 3, the count values of the counters C1 to C3 are “0”, and the count value of the counter C4 is “20”. The disk array controller 30 updates the count values of the counters C1 to C4 each time the number of blocks of the parity data P stored in the disk devices D1 to D4 changes.

さらに、ディスクアレイコントローラ30は、更新するデータを記憶するディスク装置Dが備えるカウンタCのカウント値と、該ディスク装置Dにおいてデータ及び/又はパリティデータPが記憶されているブロック数をディスクアレイ20を構成するディスク装置数で除算した値(以下、理想カウント値という)と、比較する。本実施の形態の場合では、理想カウント値は、「5(=20/4)」となる。   Further, the disk array controller 30 determines the count value of the counter C included in the disk device D that stores data to be updated and the number of blocks in which data and / or parity data P are stored in the disk device D in the disk array 20. A comparison is made with a value divided by the number of disk devices to be configured (hereinafter referred to as an ideal count value). In the case of the present embodiment, the ideal count value is “5 (= 20/4)”.

比較の結果、カウント値が理想カウント値よりも大きいと判別した場合、ディスクアレイコントローラ30は、図4Aに示すように、更新前のデータAoldが記憶されているディスク装置Dに更新後のデータAnewを、更新前のパリティデータPoldが記憶されているディスク装置Dに更新後のパリティデータPnewを、書き込む。   As a result of the comparison, when it is determined that the count value is larger than the ideal count value, the disk array controller 30 stores the updated data Anew in the disk device D in which the data Aold before the update is stored, as shown in FIG. Is written into the disk device D in which the parity data Pold before update is stored.

一方、カウント値が理想カウント値以下であると判別した場合、ディスクアレイコントローラ30は、図4Bに示すように、更新前のデータAoldが記憶されているディスク装置Dに更新後のパリティデータPnewを、更新前のパリティデータPoldが記憶されているディスク装置Dに更新後のデータAnewを、書き込む。   On the other hand, when it is determined that the count value is equal to or less than the ideal count value, the disk array controller 30 sends the updated parity data Pnew to the disk device D in which the data Aold before update is stored, as shown in FIG. 4B. The updated data Anew is written to the disk device D in which the parity data Pold before update is stored.

即ち、ディスクアレイコントローラ30は、カウント値が理想カウント値よりも大きい場合、パリティデータPを記憶するディスク装置Dを変更せず、一方、カウント値が理想カウント値以下の場合、パリティデータPを記憶するディスク装置Dを変更する。   That is, the disk array controller 30 does not change the disk device D that stores the parity data P when the count value is larger than the ideal count value, and stores the parity data P when the count value is equal to or less than the ideal count value. The disk device D to be changed is changed.

このようにして、ディスクアレイコントローラ30は、データAが更新される毎に、パリティデータPを各ディスク装置D1〜D4に分散し、各ディスク装置D1〜D4のパリティデータPを記憶するブロック数を均一化することができる。換言すれば、ディスク装置D1〜D4のディスク構成を、データAが更新される毎に、RAID4の冗長化ディスク構成からRAID5の冗長化ディスクアレイ構成へと移行させることができる。   In this way, each time the data A is updated, the disk array controller 30 distributes the parity data P to each of the disk devices D1 to D4, and sets the number of blocks for storing the parity data P of each of the disk devices D1 to D4. It can be made uniform. In other words, each time the data A is updated, the disk configuration of the disk devices D1 to D4 can be shifted from the RAID4 redundant disk configuration to the RAID5 redundant disk array configuration.

また、図1に示すディスクアレイコントローラ30は、カウント値が更新される毎に、数10によって定義される分散度を求める。例えば図3に示す場合では、分散度は、「300(=|0−5|^2+|0−5|^2+|0−5|^2+|20−5|^2)」となる。   The disk array controller 30 shown in FIG. 1 obtains the degree of dispersion defined by Equation 10 every time the count value is updated. For example, in the case shown in FIG. 3, the degree of dispersion is "300 (= | 0-5 | ^ 2 + | 0-5 | ^ 2 + | 0-5 | ^ 2 + | 20-5 | ^ 2)".

Figure 0003739766
Figure 0003739766

数10によって求めた分散度が所定値(例えば「5」)以下になると、ディスクアレイコントローラ30は、以降の動作において、ディスク装置Dが備えるカウンタCのカウント値と理想カウント値とを比較することなく、更新前のデータAoldを記憶するディスク装置Dに更新後のデータAnewを、また、更新前のパリティデータPoldを記憶するディスク装置Dに更新後のパリティデータPnewを、書き込む。即ち、ディスクアレイコントローラ30は、各ディスク装置DへのパリティデータPの分散動作を終了する。   When the degree of dispersion obtained by Equation 10 becomes a predetermined value (for example, “5”) or less, the disk array controller 30 compares the count value of the counter C included in the disk device D with the ideal count value in the subsequent operation. Instead, the updated data Anew is written into the disk device D storing the data Aold before the update, and the updated parity data Pnew is written into the disk device D storing the parity data Pold before the update. That is, the disk array controller 30 ends the operation of distributing the parity data P to each disk device D.

次に、上記構成を備えるディスクアレイ装置1のパリティデータ分散動作について図5に示すフローチャート図を参照して説明する。   Next, the parity data distribution operation of the disk array device 1 having the above configuration will be described with reference to the flowchart shown in FIG.

まず、ディスクアレイコントローラ30は、ホストコンピュータ10からデータの書込が指示されると、書き込むデータをブロック単位に分割し、3ブロック分のデータ、例えばA0、A1及びA2からパリティデータP0を生成する。そして、ディスクアレイシステム30は、データA0、A1及びA2とパリティデータP0とを同一タイミングでストライプS0を構成するブロックB0、B1、B2及びB3に夫々書き込む。   First, when data write is instructed from the host computer 10, the disk array controller 30 divides the data to be written into block units, and generates parity data P0 from data for three blocks, for example, A0, A1, and A2. . Then, the disk array system 30 writes the data A0, A1, and A2 and the parity data P0 to the blocks B0, B1, B2, and B3 constituting the stripe S0 at the same timing, respectively.

上記動作を繰り返すことにより、ディスク装置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」、となる。   By repeating the above operation, the disk devices D1 to D4 have data A0, A1, A2 and parity data P0 in the stripe S0 and data A3, A4, A5 and parity data P1 in the stripe S1, as shown in FIG. However, data A57, A58, A59 and parity data P19 are stored in the stripe S19, respectively. Note that the count values of the counters C1 to C4 in the case shown in FIG. 3 are “0”, the count value of the counter C4 is “20”, the ideal count value is “5”, and the degree of dispersion is “300”.

そして、ホストコンピュータ10からデータの更新が指示されると、ディスクアレイ装置1は、図5のフローチャート図に示すパリティデータ分散動作を開始する。パリティデータ分散動作が開始すると、まず、ディスクアレイコントローラ30は、更新前のデータAoldと更新前のパリティデータPoldとをディスクアレイ20から読み出す(ステップS101)。   When the host computer 10 gives an instruction to update data, the disk array device 1 starts a parity data distribution operation shown in the flowchart of FIG. When the parity data distribution operation starts, first, the disk array controller 30 reads data Aold before update and parity data Pold before update from the disk array 20 (step S101).

次に、ディスクアレイコントローラ30は、更新後のデータAnewと、更新前のデータAold及びパリティデータPoldと、から更新後のパリティデータPnewを生成する(ステップS102)。続いて、ディスクアレイコントローラ30は、更新するデータを記憶するディスク装置Dのカウント値と理想カウント値とを比較する(ステップS103)。   Next, the disk array controller 30 generates updated parity data Pnew from the updated data Anew, the updated data Aold, and the parity data Pold (step S102). Subsequently, the disk array controller 30 compares the count value of the disk device D storing the data to be updated with the ideal count value (step S103).

ステップS103における比較の結果、カウント値が理想カウント値よりも大きいと判別した場合(ステップS103にてYES)、ディスクアレイコントローラ30は、更新前のデータAoldが記憶されているディスク装置Dに更新後のデータAnewを、更新前のパリティデータPoldが記憶されているディスク装置Dに更新後のパリティデータPnewを、書き込み、ステップS109に進む(ステップS104)。   As a result of the comparison in step S103, when it is determined that the count value is larger than the ideal count value (YES in step S103), the disk array controller 30 updates the disk device D in which the data Aold before update is stored. The updated parity data Pnew is written in the disk device D in which the parity data Pold before update is stored, and the process proceeds to step S109 (step S104).

一方、カウント値が理想カウント値以下であると判別した場合(ステップS103にてNO)、ディスクアレイコントローラ30は、更新前のデータAoldが記憶されているディスク装置Dに更新後のパリティデータPnewを、更新前のパリティデータPoldが記憶されているディスク装置Dに更新後のデータAnewを、書き込む(ステップS105)。   On the other hand, if it is determined that the count value is equal to or less than the ideal count value (NO in step S103), the disk array controller 30 sends the updated parity data Pnew to the disk device D in which the data Aold before update is stored. The updated data Anew is written to the disk device D in which the parity data Pold before update is stored (step S105).

この場合、ディスクアレイコントローラ30は、更新後のパリティデータPnewを記憶したディスク装置DのカウンタCと、更新後のデータAnewを記憶したディスク装置DのカウンタCと、のカウント値を更新するとともに(ステップS106)、更新したカウント値から分散度を求める(ステップS107)。   In this case, the disk array controller 30 updates the count values of the counter C of the disk device D that stores the updated parity data Pnew and the counter C of the disk device D that stores the updated data Anew ( Step S106), the degree of dispersion is obtained from the updated count value (Step S107).

この求めた分散度が所定値(例えば「5」)よりも大きい場合(ステップS108にてNO)、ディスクアレイ装置1は、ホストコンピュータ10からデータの更新が指示される毎に(ステップS109にてYES)、上記ステップS101〜S108の動作を繰り返す。   When the obtained degree of dispersion is larger than a predetermined value (for example, “5”) (NO in step S108), the disk array device 1 is instructed every time data update is instructed from the host computer 10 (in step S109). YES), the operations in steps S101 to S108 are repeated.

一方、求めた分散度が所定値以下の場合(ステップS108にてYES)、ディスクアレイ装置1は、パリティデータ分散動作を終了する。   On the other hand, if the obtained degree of dispersion is equal to or smaller than the predetermined value (YES in step S108), the disk array device 1 ends the parity data distribution operation.

続いて、上記図5のフローチャート図に示すパリティデータ分散動作を図3、図6、図7、図8及び図9に示す説明図を参照し、より具体的に説明する。   Next, the parity data distribution operation shown in the flowchart of FIG. 5 will be described more specifically with reference to the explanatory diagrams shown in FIGS. 3, 6, 7, 8, and 9. FIG.

図3に示す初期状態において、ディスク装置D1にはデータA0、A3、…、A57が、ディスク装置D2にはデータA1、A4、…、A58が、ディスク装置D3にはデータA2、A5、…、A59が、ディスク装置D4にはパリティデータP0、P1、…、P19が、夫々記憶されている。また、この場合のカウンタC1〜C3のカウント値は「0」、カウンタC4のカウント値は「20」、理想カウント値は「5」、分散度は「300」、となる。   3, the disk device D1 has data A0, A3,..., A57, the disk device D2 has data A1, A4,..., A58, and the disk device D3 has data A2, A5,. A59 and parity data P0, P1,..., P19 are stored in the disk device D4. In this case, the count values of the counters C1 to C3 are “0”, the count value of the counter C4 is “20”, the ideal count value is “5”, and the degree of dispersion is “300”.

ホストコンピュータ10からデータA24の更新が指示されると、ディスクアレイコントローラ30は、ディスク装置D1からデータA24oldを、また、ディスク装置D4からパリティデータP8oldを、読み出す(ステップS101)。   When the host computer 10 instructs to update the data A24, the disk array controller 30 reads the data A24old from the disk device D1 and the parity data P8old from the disk device D4 (step S101).

ディスクアレイコントローラ30は、更新後のデータA24newと、更新前のデータA24old及びパリティデータP8oldと、から更新後のパリティデータP8newを生成する(ステップS102)。   The disk array controller 30 generates updated parity data P8new from the updated data A24new, the updated data A24old, and the parity data P8old (step S102).

この場合、ディスク装置D1が備えるカウンタC1のカウント値「0」は、理想カウント値「5」よりも小さいので(ステップS103にてNO)、ディスクアレイコントローラ30は、ディスク装置D1に更新後のパリティデータP8newを、ディスク装置D4に更新後のデータA24newを、書き込む(ステップS105)。   In this case, since the count value “0” of the counter C1 included in the disk device D1 is smaller than the ideal count value “5” (NO in step S103), the disk array controller 30 updates the parity to the disk device D1 after the update. The updated data A24new is written to the disk device D4 as data P8new (step S105).

これにより、図6に示すように、ディスク装置D1にはデータA0、…、A21、パリティデータP8、データA27、…、A57が、ディスク装置D2にはデータA1、…、A58が、ディスク装置D3にはデータA2、…、A59が、ディスク装置D4にはパリティデータP0、…、P7、データA24、パリティデータP9、…、P19が、夫々記憶される。   Thus, as shown in FIG. 6, data A0,..., A21, parity data P8, data A27,..., A57 are stored in the disk device D1, and data A1,. , A59, and the disk device D4 stores parity data P0,..., P7, data A24, parity data P9,.

ディスクアレイコントローラ30は、カウンタC1のカウント値を「1」に、カウンタC4のカウント値を「19」に、更新する(ステップS106)。また、この場合の分散度は「262(=|1−5|^2+|0−5|^2+|0−5|^2+|19−5|^2」と求まる(ステップS107)。   The disk array controller 30 updates the count value of the counter C1 to “1” and the count value of the counter C4 to “19” (step S106). Further, the degree of dispersion in this case is obtained as “262 (= | 1-5 | ^ 2 + | 0-5 | ^ 2 + | 0-5 | ^ 2 + | 19-5 | ^ 2” (step S107).

続いて、ホストコンピュータ10からデータA25の更新が指示されると(ステップS109にてYES)、ディスクアレイコントローラ30は、ディスク装置D2からデータA25oldを、また、ディスク装置D1からパリティデータP8oldを、読み出す(ステップS101)。   Subsequently, when update of data A25 is instructed from host computer 10 (YES in step S109), disk array controller 30 reads data A25old from disk device D2 and parity data P8old from disk device D1. (Step S101).

ディスクアレイコントローラ30は、更新後のデータA25newと、更新前のデータA25old及びパリティデータP8oldと、から更新後のパリティデータP8newを生成する(ステップS102)。   The disk array controller 30 generates updated parity data P8new from the updated data A25new, the pre-updated data A25old, and the parity data P8old (step S102).

この場合、ディスク装置D2が備えるカウンタC2のカウント値「0」は、理想カウント値「5」よりも小さいので(ステップS103にてNO)、ディスクアレイコントローラ30は、ディスク装置D2に更新後のパリティデータP8newを、ディスク装置D1に更新後のデータA25newを、書き込む(ステップS105)。   In this case, since the count value “0” of the counter C2 included in the disk device D2 is smaller than the ideal count value “5” (NO in step S103), the disk array controller 30 updates the parity to the disk device D2 after the update. The updated data A25new is written to the disk device D1 as data P8new (step S105).

これにより、図7に示すように、ディスク装置D1にはデータA0、…、A21、A25、A27、…、A57が、ディスク装置D2にはデータA1、…、A22、パリティデータP8、データA28、…、A58が、ディスク装置D3にはデータA2、…、A59が、ディスク装置D4にはパリティデータP0、…、P7、データA24、パリティデータP9、…、P19が、夫々記憶される。   7, the data A0,..., A21, A25, A27,..., A57 are stored in the disk device D1, and the data A1,..., A22, parity data P8, data A28, are stored in the disk device D2. ..., A58, data A2, ..., A59 are stored in the disk device D3, and parity data P0, ..., P7, data A24, parity data P9, ..., P19 are stored in the disk device D4, respectively.

ディスクアレイコントローラ30は、カウンタC1のカウント値を「0」に、カウンタC2のカウント値を「1」に、更新する(ステップS106)。また、この場合の分散度は「262(=|0−5|^2+|1−5|^2+|0−5|^2+|19−5|^2)」と求まる(ステップS107)。   The disk array controller 30 updates the count value of the counter C1 to “0” and the count value of the counter C2 to “1” (step S106). Further, the degree of dispersion in this case is obtained as “262 (= | 0-5 | ^ 2 + | 1-5 | ^ 2 + | 0-5 | ^ 2 + | 19-5 | ^ 2)” (step S107).

上記動作を繰り返すことにより、パリティデータPは徐々に各ディスク装置D1〜D4に分散される。   By repeating the above operation, the parity data P is gradually distributed to the respective disk devices D1 to 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が、夫々記憶される。   Thus, for example, as shown in FIG. 8, four parity data P1, P14, P17 and P18 are stored in the disk device D1, three parity data P4, P6 and P15 are stored in the disk device D2, and six parity data are stored in the disk device D3. Data P2, P8, P9, P12, P16 and P19 are stored in the disk device D4 and seven parity data P0, P3, P5, P7, P10, P11 and P13 are stored, respectively.

この場合、カウンタC1のカウント値は「4」と、カウンタC2のカウント値は「3」と、カウンタC3のカウンタ値は「6」と、カウンタC4のカウント値は「7」と、なる。また、ディスクアレイ20の分散度は「10(=|4−5|^2+|3−5|^2+|6−5|^2+|7−5|^2)」となる。   In this case, the count value of the counter C1 is “4”, the count value of the counter C2 is “3”, the counter value of the counter C3 is “6”, and the count value of the counter C4 is “7”. Further, the degree of dispersion of the disk array 20 is “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)。   When update of data A (33 + i) (i = 0, 1, 2) is instructed from host computer 10 (YES in step S109), disk array controller 30 receives data A (33 + i) old from disk device D4. Further, the parity data P11old is read from the disk device D2 (step S101).

ディスクアレイコントローラ30は、更新後のデータA(33+i)newと、更新前のデータA(33+i)old及びパリティデータP11oldと、から更新後のパリティデータP11newを生成する(ステップS102)。   The disk array controller 30 generates updated parity data P11new from the updated data A (33 + i) new, the pre-updated data A (33 + i) old, and the parity data P11old (step S102).

この場合、ディスク装置D2が備えるカウンタC2のカウント値「4」は、理想カウント値「5」より小さいので(ステップS103にてNO)、ディスクアレイコントローラ30は、ディスク装置D2に更新後のパリティデータP11newを、ディスク装置D1に更新後のデータA(33+i)newを、書き込む(ステップS105)。   In this case, since the count value “4” of the counter C2 included in the disk device D2 is smaller than the ideal count value “5” (NO in step S103), the disk array controller 30 updates the parity data after updating to the disk device D2. P11new is written in the disk device D1 with updated data A (33 + i) new (step 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が、夫々記憶される。   As a result, as shown in FIG. 9, four parity data P1, P14, P17 and P18 are stored in the disk device D1, four parity data P4, P6, P11 and P15 are stored in the disk device D2, and six disk devices D3 are stored in the disk device D3. Parity data P2, P8, P9, P12, P16, and P19 are stored in the disk device D4, and six parity data P0, P3, P5, P7, P10, and P13 are stored, respectively.

この場合、カウンタ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は、パリティデータ分散動作を終了する。   In this case, the count value of the counter C1 is “4”, the count value of the counter C2 is “4”, the count value of the counter C3 is “6”, and the count value of the counter C4 is “6”. Further, the degree of dispersion of the disk array 20 is obtained as “4 (= | 4-5 | ^ 2 + | 4-5 | ^ 2 + | 6-5 | ^ 2 + | 6-5 | ^ 2)”, and the predetermined value “5” is obtained. Therefore, the disk array device 1 ends the parity data distribution operation.

上記パリティデータ分散動作により、ディスクアレイ装置1は、データAが更新毎に、パリティデータPを各ディスク装置D1〜D4に分散し、各ディスク装置D1〜D4のパリティデータPを記憶するブロック数を均一化することができる。換言すれば、ディスク装置D1〜D4の構成を、データAが更新される毎に、RAID4の冗長化ディスク構成からRAID5の冗長化ディスクアレイ構成へと移行させることができる。   By the parity data distribution operation, the disk array device 1 distributes the parity data P to the disk devices D1 to D4 and updates the number of blocks for storing the parity data P of the disk devices D1 to D4 every time the data A is updated. It can be made uniform. In other words, the configuration of the disk devices D1 to D4 can be shifted from the RAID4 redundant disk configuration to the RAID5 redundant disk array configuration every time the data A is updated.

このようにディスク装置D1〜D4のディスク構成をRAID5の冗長化ディスクアレイ構成に移行することにより、特定のディスク装置Dにのみ負荷が集中することがなくなり、ディスクアレイ装置1は、その性能を該特定のディスク装置Dの性能にのみ依存するという弊害を防止できる。この結果、ディスクアレイ装置1は、装置全体としての性能を向上させることができる。   Thus, by shifting the disk configuration of the disk devices D1 to D4 to the redundant disk array configuration of RAID5, the load is not concentrated only on the specific disk device D, and the disk array device 1 achieves its performance. The adverse effect of depending only on the performance of a specific disk device D can be prevented. As a result, the disk array device 1 can improve the performance of the entire device.

また、上記パリティデータ分散動作において、ディスクアレイ装置1は、データAの更新を機に、パリティデータPを各ディスク装置D1〜D4に分散するため、効率的であるといえ、また、通常行われるデータAの読取処理や更新処理には影響を与えることがない。さらに、ディスクアレイコントローラ30の判別ロジックを置き換えるだけで、ディスクアレイ装置1に最適なパリティデータの配置を実現することができる。   In the parity data distribution operation, since the disk array device 1 distributes the parity data P to each of the disk devices D1 to D4 when the data A is updated, it can be said that it is efficient and is normally performed. There is no influence on the reading process and update process of data A. Furthermore, the arrangement of parity data optimal for the disk array device 1 can be realized simply by replacing the discrimination logic of the disk array controller 30.

[第2の実施の形態] [Second Embodiment]

本発明の第2の実施の形態に係るディスクアレイシステムについて、以下図面を参照して説明する。なお、上記第1の実施の形態と同様の構成については、その符号を同一とし、説明を適宜省略する。   A disk array system according to a second embodiment of the present invention will be described below with reference to the drawings. In addition, about the structure similar to the said 1st Embodiment, the code | symbol is made the same and description is abbreviate | omitted suitably.

ディスクアレイシステム2は、図10に示すように、コンピュータ40−1〜40−4と、通信ネットワーク50と、サーバコンピュータ60と、から概略構成されている。   As shown in FIG. 10, the disk array system 2 is roughly composed of computers 40-1 to 40-4, a communication network 50, and a server computer 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がパリティディスク装置として機能している。   The computers 40-1 to 40-4 (hereinafter simply referred to as the computer 40 as necessary) are, for example, personal computers, and are connected to each other via the communication network 50 and to the server computer 60. . The computers 40-1 to 40-4 are respectively connected to the disk devices D1 to D4 via the interface I / F. Similarly to the first embodiment, the disk devices D1 to D4 connected to the computers 40-1 to 40-4 apply the RAID4 redundant disk configuration in the initial state, and of these, the disk device D4 is the disk device D4. It functions as a parity disk device.

このコンピュータ40の構成をブロック図を参照して説明する。コンピュータ40は、図11Aに示すように、通信部41と、制御部42と、インターフェイスI/Fと、を備える。   The configuration of the computer 40 will be described with reference to a block diagram. As illustrated in FIG. 11A, the computer 40 includes a communication unit 41, a control unit 42, and an interface I / F.

通信部41は、通信ネットワーク50を介して、他のコンピュータ40の通信部41と相互に接続されるとともにサーバコンピュータ60に接続されている。通信部41は、サーバコンピュータ60から通信ネットワーク50を介して送信される更新後のデータAnewと、他のコンピュータ40から通信ネットワーク50を介して送信される、後述するデータ和As及びパリティデータ和Psと、を受信して制御部42に供給する。また、通信部41は、制御部42から供給されるデータ和Asとパリティデータ和Psとを通信ネットワーク50を介して、他のコンピュータ40に送信する。   The communication unit 41 is connected to the communication unit 41 of another computer 40 via the communication network 50 and to the server computer 60. The communication unit 41 includes updated data Anew transmitted from the server computer 60 via the communication network 50, and a data sum As and a parity data sum Ps described later transmitted from the other computer 40 via the communication network 50. Are supplied to the control unit 42. Further, the communication unit 41 transmits the data sum As and the parity data sum Ps supplied from the control unit 42 to another computer 40 via the communication network 50.

制御部42は、CPU、RAM、ROM等から構成され、インターフェイスI/Fを介してディスク装置Dに接続されている。制御部42は、通信部41から更新後のデータAnewが供給されると、該更新後のデータAnewに対応する更新前のデータAold又はパリティデータPoldをディスク装置Dの中から検出する。   The control unit 42 includes a CPU, a RAM, a ROM, and the like, and is connected to the disk device D via an interface I / F. When the updated data Anew is supplied from the communication unit 41, the control unit 42 detects the pre-update data Aold or the parity data Pold corresponding to the updated data Anew from the disk device D.

制御部42は、ディスク装置Dから更新前のデータAoldを検出した場合、数11を用いて、更新後のデータAnewと更新前のデータAoldとの排他的論理和(以下、データ和という)Asを生成する。そして、制御部42は、この生成したデータ和Asを、通信ネットワーク50を介して、更新前のパリティデータPoldが記憶されたディスク装置Dに接続されているコンピュータ40に送信する。また、制御部42は、インターフェイスI/Fを介して接続されているディスク装置Dに更新後のデータAnewを書き込む。   When the control unit 42 detects the data Aold before the update from the disk device D, the control unit 42 uses the equation 11 to perform exclusive OR (hereinafter referred to as data sum) As of the data Anew after the update and the data Aold before the update. Is generated. Then, the control unit 42 transmits the generated data sum As to the computer 40 connected to the disk device D in which the parity data Pold before update is stored, via the communication network 50. In addition, the control unit 42 writes the updated data Anew to the disk device D connected via the interface I / F.

Figure 0003739766
Figure 0003739766

一方、制御部42は、ディスク装置Dから更新前のパリティデータPoldを検出した場合、数12を用いて、更新後のデータAnewと更新前のパリティデータPoldとの排他的論理和(以下、パリティデータ和という)Psを生成する。そして、制御部42は、この生成したデータ和Psを、通信ネットワーク50を介して、更新前のデータAoldが記憶されたディスク装置Dに接続されているコンピュータ40に送信する。また、制御部42は、インターフェイスI/Fを介して接続されているディスク装置Dに更新後のデータAnewを書き込む。   On the other hand, when the control unit 42 detects the parity data Pold before update from the disk device D, the control unit 42 uses the equation 12 to perform exclusive OR (hereinafter referred to as parity) between the updated data Anew and the parity data Pold before update. Ps) is generated. Then, the control unit 42 transmits the generated data sum Ps to the computer 40 connected to the disk device D in which the data Aold before update is stored via the communication network 50. In addition, the control unit 42 writes the updated data Anew to the disk device D connected via the interface I / F.

Figure 0003739766
Figure 0003739766

また、制御部42は、通信部41からデータ和Asが供給されると、ディスク装置Dに記憶されている更新前のパリティデータPoldを読み出す。制御部42は、数11の変形式数13を用いて、供給されたデータ和Asと読み出した更新前のパリティデータPoldとから更新後のパリティデータPnewを生成する。そして、制御部42は、この生成した更新後のパリティデータPnewを、インターフェイスI/Fを介して接続されているディスク装置Dに書き込む。   Further, when the data sum As is supplied from the communication unit 41, the control unit 42 reads out the parity data Pold before update stored in the disk device D. The control unit 42 generates the updated parity data Pnew from the supplied data sum As and the read pre-update parity data Pold using the modified equation 13 of Formula 11. Then, the control unit 42 writes the generated updated parity data Pnew to the disk device D connected via the interface I / F.

Figure 0003739766
Figure 0003739766

一方、制御部42は、通信部41からパリティデータ和Psが供給されると、ディスク装置Dに記憶されている更新前のデータAoldを読み出す。制御部42は、数12の変形式数14を用いて、供給されたデータ和Psと読み出した更新前のデータAoldとから更新後のデータPnewを求める。そして、制御部42は、この生成した更新後のデータPnewを、インターフェイスI/Fを介して接続されているディスク装置Dに書き込む。   On the other hand, when the parity data sum Ps is supplied from the communication unit 41, the control unit 42 reads the pre-update data Aold stored in the disk device D. The control unit 42 obtains the updated data Pnew from the supplied data sum Ps and the read pre-update data Aold using the modified expression 14 in Expression 12. Then, the control unit 42 writes the generated updated data Pnew to the disk device D connected via the interface I / F.

Figure 0003739766
Figure 0003739766

通信ネットワーク50は、例えば専用線や公衆回線網等から構成され、コンピュータ40−1〜40−4(より詳細にはコンピュータ40−1〜40−4の各通信部41−1〜41−4)と、サーバコンピュータ60(より詳細にはサーバコンピュータ60の通信部61)と、を相互に接続する。   The communication network 50 includes, for example, a dedicated line, a public line network, and the like, and computers 40-1 to 40-4 (more specifically, the communication units 41-1 to 41-4 of the computers 40-1 to 40-4) And the server computer 60 (more specifically, the communication unit 61 of the server computer 60) are connected to each other.

サーバコンピュータ60は、例えばパーソナルコンピュータ等であって、通信ネットワーク50を介してコンピュータ40−1〜40−4に接続されている。サーバコンピュータ60は、第1の実施の形態におけるディスクアレイコントローラ30と同様の機能を有しており、このサーバコンピュータ60により、ホストコンピュータ10は、4台のコンピュータ40−1〜40−4に接続されているディスク装置D1〜D4を1つの論理ディスク装置として認識することが可能となる。   The server computer 60 is a personal computer or the like, for example, and is connected to the computers 40-1 to 40-4 via the communication network 50. The server computer 60 has the same function as the disk array controller 30 in the first embodiment, and the host computer 10 is connected to the four computers 40-1 to 40-4 by the server computer 60. Thus, it is possible to recognize the disk devices D1 to D4 that have been used as one logical disk device.

このサーバコンピュータ60の構成をブロック図を参照して説明する。コンピュータ60は、図10Bに示すように、通信部61と、制御部62と、インターフェイスI/Fと、を備える。   The configuration of the server computer 60 will be described with reference to a block diagram. As shown in FIG. 10B, the computer 60 includes a communication unit 61, a control unit 62, and an interface I / F.

通信部61は、通信ネットワーク50を介してコンピュータ40−1〜40−4に接続されている。通信部61は、制御部62から供給される更新後のデータAnewを通信ネットワーク50を介してコンピュータ40−1〜40−4に送信する。   The communication unit 61 is connected to the computers 40-1 to 40-4 via the communication network 50. The communication unit 61 transmits the updated data Anew supplied from the control unit 62 to the computers 40-1 to 40-4 via the communication network 50.

制御部62は、CPU、RAM、ROM等から構成され、RAM等に各ディスク装置D1〜D4のデータA又はパリティデータPが更新された回数を計数するためのカウンタC1〜C4を備え、データA又はパリティデータPが更新される毎にカウンタC1〜C4のカウント値を更新する。   The control unit 62 includes a CPU, a RAM, a ROM, and the like, and includes counters C1 to C4 for counting the number of times the data A or parity data P of each disk device D1 to D4 has been updated in the RAM or the like. Alternatively, the count values of the counters C1 to C4 are updated every time the parity data P is updated.

制御部62は、ホストコンピュータ10からデータの書込が指示されると、更新前のデータAoldを記憶するディスク装置DのカウンタCと、更新前のパリティデータPoldを記憶するディスク装置DのカウンタCと、のカウント値を比較する。   When the host computer 10 is instructed to write data, the control unit 62 counters the disk device D that stores the data Aold before the update and the counter C of the disk device D that stores the parity data Pold before the update. Compare the count value.

比較の結果、更新前のデータAoldを記憶するディスク装置DのカウンタCのカウント値が、更新前のパリティデータPoldを記憶するディスク装置DのカウンタCのカウント値よりも小さいと判別した場合、制御部62は、更新前のデータAoldが記憶されているディスク装置Dに接続されているコンピュータ40に更新後のデータAnewを送信する。   As a result of the comparison, if it is determined that the count value of the counter C of the disk device D that stores the data Aold before the update is smaller than the count value of the counter C of the disk device D that stores the parity data Pold before the update, The unit 62 transmits the updated data Anew to the computer 40 connected to the disk device D in which the data Aold before update is stored.

一方、更新前のデータAoldを記憶するディスク装置DのカウンタCのカウント値が、更新前のパリティデータPoldを記憶するディスク装置DのカウンタCのカウント値以上であると判別した場合、制御部62は、更新前のパリティデータPoldが記憶されているディスク装置Dに接続されているコンピュータ40に更新後のデータAnewを送信する。   On the other hand, when it is determined that the count value of the counter C of the disk device D that stores the data Aold before the update is equal to or greater than the count value of the counter C of the disk device D that stores the parity data Pold before the update, the control unit 62 Transmits the updated data Anew to the computer 40 connected to the disk device D in which the parity data Pold before update is stored.

これにより、サーバコンピュータ60は、更新前のデータAoldを記憶するディスク装置DのカウンタCのカウント値が、更新前のパリティデータPoldを記憶するディスク装置DのカウンタCのカウント値よりも小さいと判別した場合、パリティデータPを記憶するディスク装置Dを変更せず、一方、更新前のパリティデータPoldを記憶するディスク装置DのカウンタCのカウント値以上の場合、パリティデータPを記憶するディスク装置Dを変更することができる。   Thus, the server computer 60 determines that the count value of the counter C of the disk device D that stores the data Aold before the update is smaller than the count value of the counter C of the disk device D that stores the parity data Pold before the update. In this case, the disk device D that stores the parity data P is not changed. On the other hand, if the count value of the counter C of the disk device D that stores the parity data Pold before update is equal to or larger than the count value, the disk device D that stores the parity data P. Can be changed.

次に、上記構成を備えるディスクアレイシステム2のパリティデータ分散動作について図12、図13及び図14に示すフローチャート図を参照して説明する。なお、初期状態においては、図3に示すように、ディスク装置D1にはデータA0、A3、…、A57が、ディスク装置D2にはデータA1、A4、…、A58が、ディスク装置D3にはデータA2、A5、…、A59が、ディスク装置D4にはパリティデータP0、P1、…、P19が、夫々記憶されている。また、この場合のカウンタC1〜C4のカウント値は「0」となる。   Next, the parity data distribution operation of the disk array system 2 having the above configuration will be described with reference to the flowcharts shown in FIGS. In the initial state, as shown in FIG. 3, the disk device D1 has data A0, A3,..., A57, the disk device D2 has data A1, A4,. A59 are stored in the disk device D4, and parity data P0, P1,..., P19 are stored in the disk device D4, respectively. In this case, the count values of the counters C1 to C4 are “0”.

ホストコンピュータ10からデータの更新が指示されると、ディスクアレイシステム2は、図12のフローチャート図に示すパリティデータ分散動作を開始する。パリティデータ分散動作が開始すると、サーバコンピュータ60は、更新前のデータAoldを記憶するディスク装置DのカウンタCと、更新前のパリティデータPoldを記憶するディスク装置DのカウンタCと、のカウント値を比較する(ステップS2010)。   When data update is instructed from the host computer 10, the disk array system 2 starts the parity data distribution operation shown in the flowchart of FIG. When the parity data distribution operation starts, the server computer 60 calculates the count values of the counter C of the disk device D that stores the data Aold before the update and the counter C of the disk device D that stores the parity data Pold before the update. Compare (step S2010).

比較の結果、更新前のデータAoldを記憶するディスク装置DのカウンタCのカウント値が、更新前のパリティデータPoldを記憶するディスク装置DのカウンタCのカウント値よりも小さいと判別した場合(ステップS2010にてYES)、サーバコンピュータ60は、更新前のデータAoldを記憶するディスク装置Dに接続されたコンピュータ40に、更新後のデータAnewを通信ネットワーク50を介して送信する。   When it is determined as a result of the comparison that the count value of the counter C of the disk device D storing the data Aold before the update is smaller than the count value of the counter C of the disk device D storing the parity data Pold before the update (step In S2010, the server computer 60 transmits the updated data Anew via the communication network 50 to the computer 40 connected to the disk device D that stores the data Aold before the update.

更新前のデータAoldを記憶するディスク装置Dに接続されたコンピュータ40は、送信された更新後のデータAnewを受信するとともに、この受信した更新後のデータAnewと、ディスク装置Dに記憶されている更新前のデータAoldと、の排他的論理和であるデータ和Asを生成する(ステップS2011)。   The computer 40 connected to the disk device D that stores the data Aold before the update receives the updated data Anew that has been transmitted, and is stored in the disk device D and the received updated data Anew. A data sum As that is an exclusive OR of the data Aold before the update is generated (step S2011).

このコンピュータ40は、生成したデータ和Asを、通信ネットワーク50を介して、更新前のパリティデータPoldが記憶されたディスク装置Dに接続されているコンピュータ40に送信するとともに、インターフェイスI/Fを介して接続されているディスク装置Dに更新後のデータAnewを書き込む(ステップS2012)。   The computer 40 transmits the generated data sum As to the computer 40 connected to the disk device D in which the parity data Pold before update is stored via the communication network 50, and via the interface I / F. The updated data Anew is written to the connected disk device D (step S2012).

更新前のパリティデータPoldを記憶するディスク装置Dに接続されたコンピュータ40は、送信されたデータ和Asを受信するとともに、この受信したデータ和Asと、ディスク装置Dに記憶されている更新前のパリティデータPoldと、から更新後のパリティデータPnewを生成する(ステップS2013)。このコンピュータ40は、生成した更新後のパリティデータPnewを、インターフェイスI/Fを介して接続されたディスク装置Dに書き込んで(ステップS2014)、パリティ分散動作を終了する。   The computer 40 connected to the disk device D that stores the parity data Pold before the update receives the transmitted data sum As, and the received data sum As and the pre-update stored in the disk device D. The parity data Pnew is generated from the parity data Pold (step S2013). The computer 40 writes the generated updated parity data Pnew to the disk device D connected via the interface I / F (step S2014), and ends the parity distribution operation.

一方、更新前のデータAoldを記憶するディスク装置DのカウンタCのカウント値が、更新前のパリティデータPoldを記憶するディスク装置DのカウンタCのカウント値以上であると判別した場合(ステップS2010にてNO)、サーバコンピュータ60は、更新前のパリティデータPoldを記憶するディスク装置Dに接続されたコンピュータ40に更新後のデータAnewを送信するとともに、更新後のパリティデータPnewを記憶したディスク装置DのカウンタCのと、更新後のデータAnewを記憶したディスク装置DのカウンタCと、のカウント値を更新する(ステップS2015)。   On the other hand, when it is determined that the count value of the counter C of the disk device D storing the pre-update data Aold is equal to or greater than the count value of the counter C of the disk device D storing the pre-update parity data Pold (in step S2010). NO), the server computer 60 transmits the updated data Anew to the computer 40 connected to the disk device D that stores the parity data Pold before the update, and the disk device D that stores the updated parity data Pnew. The counter values of the counter C and the counter C of the disk device D that stores the updated data Anew are updated (step S2015).

更新前のパリティデータPoldを記憶するディスク装置Dに接続されたコンピュータ40は、送信された更新後のデータAnewを受信するとともに、この受信した更新後のデータAnewと、ディスク装置Dに記憶されている更新前のパリティデータPoldと、の排他的論理和であるパリティデータ和Psを生成する(ステップS2016)。   The computer 40 connected to the disk device D that stores the pre-update parity data Pold receives the updated data Anew that has been transmitted, and stores the received updated data Anew and the disk device D. A parity data sum Ps that is an exclusive logical sum of the pre-update parity data Pold is generated (step S2016).

このコンピュータ40は、生成したパリティデータ和Psを、通信ネットワーク50を介して、更新前のデータAoldが記憶されたディスク装置Dに接続されているコンピュータ40に送信するとともに、インターフェイスI/Fを介して接続されているディスク装置Dに更新後のデータAnewを書き込む(ステップS2017)。   The computer 40 transmits the generated parity data sum Ps to the computer 40 connected to the disk device D in which the data Aold before update is stored via the communication network 50, and also via the interface I / F. The updated data Anew is written to the connected disk device D (step S2017).

更新前のデータAnewを記憶するディスク装置Dに接続されたコンピュータ40は、送信されたパリティデータ和Psを受信するとともに、この受信したパリティデータ和Psと、ディスク装置Dに記憶されている更新前のデータAoldと、から更新後のパリティデータPnewを生成する(ステップS2018)。このコンピュータ40は、この生成した更新後のパリティデータPnewを、インターフェイスI/Fを介して接続されたディスク装置Dに書き込んで(ステップS219)、パリティデータ分散動作を終了する。   The computer 40 connected to the disk device D that stores the pre-update data Anew receives the transmitted parity data sum Ps and the received parity data sum Ps and the pre-update stored in the disk device D. Data Aold and updated parity data Pnew are generated (step S2018). The computer 40 writes the generated updated parity data Pnew to the disk device D connected via the interface I / F (step S219), and ends the parity data distribution operation.

上記パリティデータ分散動作を繰り返すことにより、ディスクアレイシステム2は、データAが更新される毎に、パリティデータPを各ディスク装置D1〜D4に分散し、各ディスク装置D1〜D4のパリティデータPを記憶するブロック数を均一化することができる。換言すれば、ディスク装置D1〜D4のディスク構成を、データAが更新される毎に、RAID4の冗長化ディスク構成からRAID5の冗長化ディスクアレイ構成へと移行させることができる。   By repeating the parity data distribution operation, the disk array system 2 distributes the parity data P to the disk devices D1 to D4 each time the data A is updated, and the parity data P of the disk devices D1 to D4 is distributed. The number of blocks to be stored can be made uniform. In other words, each time the data A is updated, the disk configuration of the disk devices D1 to D4 can be shifted from the RAID4 redundant disk configuration to the RAID5 redundant disk array configuration.

このようにディスク装置D1〜D4のディスクアレイ構成をRAID5の冗長化ディスクアレイ構成に移行することにより、特定のディスク装置Dにのみ負荷が集中することがなくなり、ディスクアレイシステム2は、その性能を該特定のディスク装置Dの性能にのみ依存するという弊害を防止できる。この結果、ディスクアレイシステム2は、システム全体としての性能を向上させることができる。   Thus, by shifting the disk array configuration of the disk devices D1 to D4 to the redundant disk array configuration of RAID5, the load is not concentrated only on the specific disk device D, and the disk array system 2 can improve its performance. The adverse effect of depending only on the performance of the specific disk device D can be prevented. As a result, the disk array system 2 can improve the performance of the entire system.

上記パリティデータ分散動作において、サーバコンピュータ60が更新前のパリティデータPoldを記憶するディスク装置Dに接続されたコンピュータ40に更新後のデータAnewを送信し、また、該ディスク装置DがデータAoldを記憶するディスク装置Dに接続されたコンピュータ40にパリティデータ和Psを送信することによって、ディスクアレイシステム2は、パリティデータPを記憶するディスク装置Dを変更することができる。このように、ディスクアレイシステム2は、二回データを送信するだけでパリティデータPを記憶するディスク装置Dを変更することができるため、通信ネットワーク50にかかる負担の低減を図ることができる。   In the parity data distribution operation, the server computer 60 transmits the updated data Anew to the computer 40 connected to the disk device D that stores the parity data Pold before the update, and the disk device D stores the data Aold. By transmitting the parity data sum Ps to the computer 40 connected to the disk device D, the disk array system 2 can change the disk device D that stores the parity data P. As described above, the disk array system 2 can change the disk device D that stores the parity data P only by transmitting data twice, so that the burden on the communication network 50 can be reduced.

また、上記パリティデータ分散動作において、ディスクアレイシステム2は、データAの更新を機に、パリティデータPを各ディスク装置D1〜D4に分散するため、効率的であるといえ、また、通常行われるデータAの読取処理や更新処理には影響を与えることがない。さらに、サーバコンピュータ60の判別ロジックを置き換えるだけで、ディスクアレイシステム2に最適なパリティデータの配置を実現することができる。   In the parity data distribution operation, the disk array system 2 distributes the parity data P to the disk devices D1 to D4 when the data A is updated. There is no influence on the reading process and update process of data A. Furthermore, the arrangement of parity data optimal for the disk array system 2 can be realized simply by replacing the discrimination logic of the server computer 60.

なお、本発明は、上記の実施の形態に限られず、種々の変形、応用が可能である。以下、本発明に適用可能な上記の実施の形態の変形態様について説明する。   In addition, this invention is not restricted to said embodiment, A various deformation | transformation and application are possible. Hereinafter, modifications of the above-described embodiment applicable to the present invention will be described.

上記第1の実施の形態において、ディスクアレイコントローラ30は、更新前のデータAoldを記憶するディスク装置Dのカウント値と理想カウント値とを比較し、この比較の結果に基づいて生成した更新後のパリティデータPnewを更新前のデータAを記憶するディスク装置D又は更新前のパリティデータPを記憶するディスク装置Dに書き込んでいた。しかし、本発明はこれに限定されず、ディスクアレイコントローラ30は、更新前のデータAoldを記憶するディスク装置Dのカウント値と更新前のパリティデータPoldを記憶するディスク装置Dのカウント値とを比較し、この比較の結果に基づいて生成した更新後のパリティデータPnewを更新前のデータAを記憶するディスク装置D又は更新前のパリティデータPを記憶するディスク装置Dに書き込んでもよい。   In the first embodiment, the disk array controller 30 compares the count value of the disk device D that stores the data Aold before the update with the ideal count value, and the updated value generated based on the result of this comparison. The parity data Pnew is written to the disk device D that stores the data A before update or the disk device D that stores the parity data P before update. However, the present invention is not limited to this, and the disk array controller 30 compares the count value of the disk device D storing the data Aold before the update with the count value of the disk device D storing the parity data Pold before the update. Then, the updated parity data Pnew generated based on the comparison result may be written into the disk device D that stores the data A before the update or the disk device D that stores the parity data P before the update.

上記第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は、パリティデータ分散動作を終了する。   The parity data distribution operation in the modification of the first embodiment will be described with reference to the flowchart shown in FIG. First, when data write is instructed from the host computer 10, the disk array controller 30 divides the data to be written into block units, and generates parity data P0 from data for three blocks, for example, A0, A1, and A2. . Then, the disk array controller 30 writes the data A0, A1, and A2 and the parity data P0 to the blocks B0, B1, B2, and B3 constituting the stripe S0 at the same timing, respectively. By repeating the above operation, the disk devices D1 to D4 have data A0, A1, A2 and parity data P0 in the stripe S0 and data A3, A4, A5 and parity data P1 in the stripe S1, as shown in FIG. However, data A57, A58, A59 and parity data P19 are stored in the stripe S19, respectively. Note that the count values of the counters C1 to C4 in the case shown in FIG. 3 are “0”, the count value of the counter C4 is “20”, the ideal count value is “5”, and the degree of dispersion is “300”. When the host computer 10 gives an instruction to update data, the disk array device 1 starts the parity data distribution operation shown in the flowchart of FIG. When the parity data distribution operation starts, first, the disk array controller 30 reads data Aold before update and parity data Pold before update from the disk array 20 (step S3020). Next, the disk array controller 30 generates updated parity data Pnew from the updated data Anew, the updated data Aold, and the parity data Pold (step S3021). Subsequently, the disk array controller 30 compares the count value of the disk device D that stores the data Aold before the update with the count value of the disk device D that stores the parity data Pold before the update (step S3022). As a result of the comparison in step S3022, when it is determined that the count value of the disk device D storing the pre-update data Aold is equal to or less than the count value of the disk device D storing the pre-update parity data Pold (YES in step S3022) The disk array controller 30 updates the updated data Anew in the disk device D in which the pre-update data Aold is stored, and the updated parity data Pnew in the disk device D in which the pre-update parity data Pold is stored. Is written, and the process proceeds to step S3028 (step S3023). On the other hand, when it is determined that the count value of the disk device D storing the pre-update data Aold is larger than the count value of the disk device D storing the pre-update parity data Pold (NO in step S3022), the disk array controller 30 Writes the updated parity data Pnew to the disk device D storing the pre-update data Aold, and writes the updated data Anew to the disk device D storing the pre-update parity data Pold (step S3024). ). In this case, the disk array controller 30 updates the count values of the counter C of the disk device D that stores the updated parity data Pnew and the counter C of the disk device D that stores the updated data Anew ( In step S3025), the degree of dispersion is obtained from the updated count value (step S3026). When the obtained degree of dispersion is larger than a predetermined value (for example, “5”) (NO in step S3027), the disk array device 1 is instructed every time data update is instructed from the host computer 10 (in step S3028). YES), the operations in steps S3020 to S3027 are repeated. On the other hand, when the obtained degree of dispersion is equal to or less than the predetermined value (YES in step S3027), the disk array device 1 ends the parity data distribution operation.

上記パリティデータ分散動作を繰り返すことにより、上記第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の配置を実現することができる。   By repeating the parity data distribution operation, the disk array device 1 distributes the parity data P to the disk devices D1 to D4 each time the data A is updated, as in the first embodiment. The number of blocks for storing the parity data P of each of the disk devices D1 to D4 can be made uniform. In other words, each time the data A is updated, the disk configuration of the disk devices D1 to D4 can be shifted from the RAID4 redundant disk configuration to the RAID5 redundant disk array configuration. Thus, by shifting the disk array configuration of the disk devices D1 to D4 to the redundant disk array configuration of RAID5, the load is not concentrated only on the specific disk device D, and the disk array device 1 has its performance improved. The adverse effect of depending only on the performance of the specific disk device D can be prevented. As a result, the disk array device 1 can improve the performance of the entire system. In the parity data distribution operation, since the disk array device 1 distributes the parity data P to each of the disk devices D1 to D4 when the data A is updated, it can be said that it is efficient and is normally performed. There is no influence on the reading process and update process of data A. Furthermore, the arrangement of the parity data P most suitable for the disk array device 1 can be realized simply by replacing the discrimination logic of the disk array controller 30.

また、上記第1の実施の形態において、カウント値はディスク装置Dに記憶されているパリティデータPのブロック数を示し、ディスクアレイコントローラ30は、更新前のデータAoldを記憶するディスク装置Dのカウント値と理想カウント値とを比較し、この比較の結果に基づいて生成した更新後のパリティデータPnewを更新前のデータAoldを記憶するディスク装置D又は更新前のパリティデータPoldを記憶するディスク装置Dに書き込んでいた。しかし、本発明はこれに限定されず、カウント値はディスク装置Dの更新回数を示し、ディスクアレイコントローラ30は、更新前のデータAoldを記憶するディスク装置Dのカウント値と更新前のパリティデータPoldを記憶するディスク装置Dのカウント値とを比較し、この比較の結果に基づいて、生成した更新後のパリティデータPnewを更新前のデータAoldを記憶するディスク装置D又は更新前のパリティデータPnewを記憶するディスク装置Dに書き込んでもよい。   In the first embodiment, the count value indicates the number of blocks of the parity data P stored in the disk device D, and the disk array controller 30 counts the disk device D that stores the data Aold before the update. The disk device D that stores the pre-update parity data Pold or the disk device D that stores the pre-update parity data Pold for the updated parity data Pnew generated based on the comparison result and the ideal count value I was writing. However, the present invention is not limited to this, and the count value indicates the number of updates of the disk device D, and the disk array controller 30 stores the count value of the disk device D that stores the data Aold before the update and the parity data Pold before the update. Is compared with the count value of the disk device D that stores the data, and based on the comparison result, the generated parity data Pnew is updated to the disk device D that stores the data Aold before the update or the parity data Pnew before the update. You may write in the disk apparatus D to memorize | store.

さらに、上記第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に送信してもよい。   Further, in the second embodiment, the count value indicates the number of updates of the disk device D, and the server computer 60 obtains the count value of the disk device D that stores the data Aold before update and the parity data Pold before update. The count value of the disk device D to be stored is compared, and the updated parity data Pnew generated based on the comparison result is stored in the computer 40 connected to the disk device D that stores the data Aold before update or the parity before update. The data P is transmitted to the computer 40 connected to the disk device D that stores the data P. However, the present invention is not limited to this. The count value indicates the number of blocks of the parity data P stored in the disk device D, and the server computer 60 counts the count value of the disk device D that stores the data Aold before the update. And the ideal count value, or the count value of the disk device D that stores the data Aold before the update and the count value of the disk device D that stores the parity data Pold before the update are compared. Based on this, the generated updated parity data Pnew is transmitted to the computer 40 connected to the disk device D storing the pre-update data Aold or to the computer 40 connected to the disk device D storing the pre-update parity data Pold. May be.

また、上記第2の実施の形態の変形例において、サーバコンピュータ60は、生成した更新後のパリティデータPnewを更新前のデータAoldを記憶するディスク装置D又は更新前のパリティデータPoldを記憶するディスク装置Dに接続されたコンピュータ40に送信される毎に、上記第1の実施の形態で説明した分散度を求めてもよい。そして、サーバコンピュータ60は、この分散度が所定値以下となると、以降の動作において、ディスク装置Dが備えるカウンタCのカウント値と理想カウント値とを比較することなく、更新前のデータAoldを記憶するディスク装置Dに接続されたコンピュータ40に更新後のデータAnewを、また、更新前のパリティデータPoldを記憶するディスク装置Dに接続されたコンピュータ40に更新後のパリティデータPnewを、送信してもよい。   In the modification of the second embodiment, the server computer 60 generates the updated parity data Pnew, the disk device D that stores the data Aold before the update, or the disk that stores the parity data Pold before the update. Each time the data is transmitted to the computer 40 connected to the device D, the degree of dispersion described in the first embodiment may be obtained. Then, when the degree of dispersion becomes equal to or less than the predetermined value, the server computer 60 stores the data Aold before the update without comparing the count value of the counter C included in the disk device D with the ideal count value in the subsequent operations. The updated data Anew is transmitted to the computer 40 connected to the disk device D to be updated, and the updated parity data Pnew is transmitted to the computer 40 connected to the disk device D storing the parity data Pold before the update. Also good.

さらに、上記第1の実施の形態におけるディスクアレイコントローラ30の機能は、パーソナルコンピュータ等、CPU、RAM、ROM等から構成される汎用コンピュータをプラットフォームとし、CPUがROMに格納されているコンピュータプログラムを実行することによっても実現可能である。   Furthermore, the function of the disk array controller 30 in the first embodiment is that a personal computer or the like, a general-purpose computer including a CPU, RAM, ROM, etc. is used as a platform, and the CPU executes a computer program stored in the ROM. This can also be realized.

また、上記第1の及び第2の実施の形態において、ディスク装置Dの台数を4としたが、本発明はこれに限定されず、ディスク装置の台数は3以上であれば任意である。   In the first and second embodiments, the number of disk devices D is four. However, the present invention is not limited to this, and the number of disk devices is arbitrary as long as the number is three or more.

さらに、上記第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等、今後開発される種々の大容量記憶媒体のドライブを用いることによっても、本発明の実施が可能であることは言うまでもない。   Further, in the first and second embodiments, the disk device D is composed of a hard disk drive. However, the present invention is not limited to this, and the disk device D is a flexible disk, MO (Magnetooptic Disc), CD-R / RW (Compact Disc-Recordable / Rewritable), DVD-RAM (Digital Versatile Disc-Random Access Memory). Further, it may be composed of a drive such as a DVD ± R / RW (Digital Versatile Disc ± Recordable / Rewritable). In the future, next-generation optical disk storage media using blue lasers such as Blue-Ray-Disc (R) and Advanced Optical Disc (AOD), HD-DVD9 using red laser, Blu-Laser-DVD using blue-violet laser, etc. It goes without saying that the present invention can also be implemented by using various large-capacity storage medium drives to be developed.

本発明の第1の実施の形態に係るディスクアレイ装置の構成を示すブロック図である。1 is a block diagram showing a configuration of a disk array device according to a first exemplary embodiment of the present invention. 図1に示すディスク装置の構成を示す図である。It is a figure which shows the structure of the disk apparatus shown in FIG. 図1に示すディスク装置の初期状態におけるデータ配列を示す図である。It is a figure which shows the data arrangement in the initial state of the disc apparatus shown in FIG. 図1に示すディスクアレイコントローラがパリティデータを記憶するディスク装置を変更する動作を説明する図である。FIG. 3 is a diagram for explaining an operation of changing a disk device for storing parity data by the disk array controller shown in FIG. 1. 図1に示すディスクアレイ装置のパリティデータ分散動作のフローチャート図である。FIG. 2 is a flowchart of parity data distribution operation of the disk array device shown in FIG. 1. 図5に示すパリティデータ分散動作の説明図である。It is explanatory drawing of the parity data distribution operation | movement shown in FIG. 図5に示すパリティデータ分散動作の説明図である。It is explanatory drawing of the parity data distribution operation | movement shown in FIG. 図5に示すパリティデータ分散動作の説明図である。It is explanatory drawing of the parity data distribution operation | movement shown in FIG. 図5に示すパリティデータ分散動作の説明図である。It is explanatory drawing of the parity data distribution operation | movement shown in FIG. 本発明の第2の実施の形態に係るディスクアレイシステムの構成を示すブロック図である。It is a block diagram which shows the structure of the disk array system which concerns on the 2nd Embodiment of this invention. 図10に示すコンピュータ及びサーバコンピュータの構成を示すブロック図である。It is a block diagram which shows the structure of the computer shown in FIG. 10, and a server computer. 図10に示すディスクアレイシステムのパリティデータ分散動作のフローチャート図である。FIG. 11 is a flowchart of parity data distribution operation of the disk array system shown in FIG. 10. 図10に示すディスクアレイシステムのパリティデータ分散動作のフローチャート図である。FIG. 11 is a flowchart of parity data distribution operation of the disk array system shown in FIG. 10. 図10に示すディスクアレイシステムのパリティデータ分散動作のフローチャート図である。FIG. 11 is a flowchart of parity data distribution operation of the disk array system shown in FIG. 10. パリティデータ分散動作の変形例のフローチャート図である。It is a flowchart figure of the modification of parity data dispersion | distribution operation | movement.

符号の説明Explanation of symbols

1 ディスクアレイ装置
2 ディスクアレイシステム
10 ホストコンピュータ
20 ディスクアレイ
30 ディスクアレイコントローラ
40 コンピュータ
50 通信ネットワーク
60 サーバコンピュータ
A データ
C カウンタ
D ディスク装置
P パリティデータ
1 disk array device 2 disk array system 10 host computer 20 disk array 30 disk array controller 40 computer 50 communication network 60 server computer A data C counter D disk device P parity data

Claims (20)

ディスクアレイを構成する複数のディスク装置を備え、所定ブロック単位に分割したデータと該データから生成されるパリティデータとを、それぞれ異なるディスク装置に書き込むディスクアレイ装置であって、
データ更新の指示に応じて、更新が指示されたデータを記憶する第1のディスク装置と該更新が指示されたデータのパリティデータを記憶する第2のディスク装置とから、それぞれ更新前のデータと更新前のパリティデータとを読み出す読出手段と、
更新後のデータと前記読出手段により読み出された更新前のデータ及び更新前のパリティデータとから更新後のパリティデータを生成するパリティデータ生成手段と、
前記第1のディスク装置に記憶されたパリティデータのブロック数が所定数以下か否かを判別する判別手段と、
前記判別手段により第1のディスク装置に記憶されたパリティデータのブロック数が所定数以下であると判別された場合、前記更新後のデータを第2のディスク装置に、前記パリティデータ生成手段により生成された更新後のパリティデータを第1のディスク装置に、それぞれ書き込む書込手段と、
を備える、
ことを特徴とするディスクアレイ装置。
A disk array device comprising a plurality of disk devices constituting a disk array and writing data divided into predetermined block units and parity data generated from the data to different disk devices,
In response to the data update instruction, the first disk device that stores the data instructed to update and the second disk device that stores the parity data of the data instructed to update, respectively, Reading means for reading out the parity data before update;
Parity data generation means for generating updated parity data from the updated data and the data before update read by the reading means and the parity data before update;
Determining means for determining whether the number of blocks of parity data stored in the first disk device is equal to or less than a predetermined number;
When the discriminating unit determines that the number of blocks of parity data stored in the first disk device is equal to or less than a predetermined number, the updated data is generated in the second disk device by the parity data generating unit. Writing means for writing the updated parity data to the first disk device, respectively
Comprising
A disk array device characterized by that.
ディスクアレイを構成する複数のディスク装置を備え、所定ブロック単位に分割したデータと該データから生成されるパリティデータとを、それぞれ異なるディスク装置に書き込むディスクアレイ装置であって、
データ更新の指示に応じて、更新が指示されたデータを記憶する第1のディスク装置と該更新が指示されたデータのパリティデータを記憶する第2のディスク装置とから、それぞれ更新前のデータと更新前のパリティデータとを読み出す読出手段と、
更新後のデータと前記読出手段により読み出された更新前のデータ及び更新前のパリティデータとから更新後のパリティデータを生成するパリティデータ生成手段と、
前記第1のディスク装置に記憶されたパリティデータのブロック数と、前記第2のディスク装置に記憶されたパリティデータのブロック数と、を比較するブロック数比較手段と、
前記ブロック数比較手段により第1のディスク装置に記憶されたパリティデータのブロック数が第2のディスク装置に記憶されたパリティデータのブロック数以下であると判別された場合、前記更新後のデータを第2のディスク装置に、前記パリティデータ生成手段により生成された更新後のパリティデータを第1のディスク装置に、それぞれ書き込む書込手段と、
を備える、
ことを特徴とするディスクアレイ装置。
A disk array device comprising a plurality of disk devices constituting a disk array and writing data divided into predetermined block units and parity data generated from the data to different disk devices,
In response to the data update instruction, the first disk device that stores the data instructed to update and the second disk device that stores the parity data of the data instructed to update, respectively, Reading means for reading out the parity data before update;
Parity data generation means for generating updated parity data from the updated data and the data before update read by the reading means and the parity data before update;
Block number comparison means for comparing the number of blocks of parity data stored in the first disk device and the number of blocks of parity data stored in the second disk device;
If the block number comparing means determines that the number of blocks of parity data stored in the first disk device is less than or equal to the number of blocks of parity data stored in the second disk device, the updated data is Writing means for writing the updated parity data generated by the parity data generating means to the second disk device, respectively, to the first disk device;
Comprising
A disk array device characterized by that.
ディスクアレイを構成する複数のディスク装置を備え、所定ブロック単位に分割したデータと該データから生成されるパリティデータとを、それぞれ異なるディスク装置に書き込むディスクアレイ装置であって、
データ更新の指示に応じて、更新が指示されたデータを記憶する第1のディスク装置と該更新が指示されたデータのパリティデータを記憶する第2のディスク装置とから、それぞれ更新前のデータと更新前のパリティデータとを読み出す読出手段と、
更新後のデータと前記読出手段により読み出された更新前のデータ及び更新前のパリティデータとから更新後のパリティデータを生成するパリティデータ生成手段と、
前記第1のディスク装置の更新回数と前記第2のディスク装置の更新回数とを比較する更新回数比較手段と、
前記更新回数比較手段により第1のディスク装置の更新回数が第2のディスク装置の更新回数以上であると判別された場合、前記更新後のデータを第2のディスク装置に、前記パリティデータ生成手段により生成された更新後のパリティデータを第1のディスク装置に、それぞれ書き込む書込手段と、
を備える、
ことを特徴とするディスクアレイ装置。
A disk array device comprising a plurality of disk devices constituting a disk array and writing data divided into predetermined block units and parity data generated from the data to different disk devices,
In response to the data update instruction, the first disk device that stores the data instructed to update and the second disk device that stores the parity data of the data instructed to update, respectively, Reading means for reading out the parity data before update;
Parity data generation means for generating updated parity data from the updated data and the data before update read by the reading means and the parity data before update;
Update number comparison means for comparing the number of updates of the first disk device and the number of updates of the second disk device;
When the update number comparing means determines that the update number of the first disk device is equal to or greater than the update number of the second disk device, the updated data is sent to the second disk device and the parity data generating means. Writing means for writing the updated parity data generated by the first disk device, respectively,
Comprising
A disk array device characterized by that.
前記書込手段により更新後のパリティデータ及び更新後のデータが、それぞれ第1及び第2のディスク装置に書き込まれる毎に、各ディスク装置に記憶されているパリティデータのブロック数を計数する計数手段と、
前記計数手段により計数された各ディスク装置に記憶されているパリティデータのブロック数から、パリティデータが各ディスク装置に分散している度合を示す分散度を算出する分散度算出手段と、
をさらに備え、
前記書込手段は、前記分散度算出手段により算出された分散度が所定値以下になると、前記更新後のデータを第1のディスク装置に、前記更新後のパリティデータを第2のディスク装置に、それぞれ書き込む、
ことを特徴とする請求項1,2又は3に記載のディスクアレイ装置。
Count means for counting the number of blocks of parity data stored in each disk device each time the updated parity data and updated data are written to the first and second disk devices by the writing means, respectively. When,
A degree-of-dispersion calculating means for calculating a degree of dispersion indicating the degree to which the parity data is distributed to each disk device from the number of blocks of parity data stored in each disk device counted by the counting means;
Further comprising
When the degree of distribution calculated by the degree-of-dispersion calculating unit is equal to or less than a predetermined value, the writing unit stores the updated data in the first disk device and the updated parity data in the second disk device. Write each,
The disk array device according to claim 1, 2 or 3.
更新前のデータを記憶する第1のディスク装置と該更新前のデータから生成されたパリティデータを記憶する第2のディスク装置とを含みディスクアレイを構成する複数のディスク装置と、該第1のディスク装置を備える第1のコンピュータと、該第2のディスク装置を備え該第1のコンピュータにネットワークを介して接続された第2のコンピュータと、該第1及び第2のコンピュータにネットワークを介して接続され所定ブロック単位に分割した更新後のデータを第1及び第2のコンピュータのいずれかに送信するサーバコンピュータと、を備えるディスクアレイシステムであって、
前記第2のコンピュータは、
前記サーバコンピュータにより送信される更新後のデータを受信する第1の受信手段と、
前記第1の受信手段により受信した更新後のデータと前記第2のディスク装置に記憶されている更新前のパリティデータとの排他的論理和を前記第1のコンピュータに送信する送信手段と、
前記更新後のデータを第2のディスク装置に書き込む第1の書込手段と、
を備え、
前記第1のコンピュータは、
前記送信手段により送信され排他的論理和を受信する第2の受信手段と、
前記第2の受信手段により受信した排他的論理和と前記第1のディスク装置に記憶されている更新前のデータとから更新後のパリティデータを生成するパリティデータ生成手段と、
前記パリティデータ生成手段により生成された更新後のパリティデータを前記第1のディスク装置に書き込む第2の書込手段と、
を備える、
ことを特徴とするディスクアレイシステム。
A plurality of disk devices comprising a first disk device for storing data before update and a second disk device for storing parity data generated from the data before update; A first computer having a disk device, a second computer having the second disk device and connected to the first computer via a network, and a network connected to the first and second computers A server computer that is connected and transmits updated data divided into predetermined block units to either the first or second computer, and a disk array system comprising:
The second computer is
First receiving means for receiving updated data transmitted by the server computer;
Transmitting means for transmitting an exclusive OR of the updated data received by the first receiving means and the parity data before updating stored in the second disk device to the first computer;
First writing means for writing the updated data to a second disk device;
With
The first computer is
Second receiving means for receiving an exclusive OR transmitted by the transmitting means;
Parity data generating means for generating updated parity data from the exclusive OR received by the second receiving means and the pre-update data stored in the first disk device;
Second writing means for writing the updated parity data generated by the parity data generating means to the first disk device;
Comprising
A disk array system characterized by that.
前記排他的論理和は、更新前のデータをAold、更新後のデータをAnew、更新前のパリティデータをPold、更新後のパリティデータをPnew、としたとき、以下の数1によって定義される、
Figure 0003739766
ことを特徴とする請求項5に記載のディスクアレイシステム。
The exclusive OR is defined by the following formula 1, where Aold is data before update, Anew is data after update, Pold is parity data before update, and Pnew is parity data after update.
Figure 0003739766
The disk array system according to claim 5.
前記パリティデータ生成手段は、排他的論理和をPsとしたとき、以下の数2によって定義される関係式を用いて更新後のパリティデータを生成する、
Figure 0003739766
ことを特徴とする請求項6に記載のディスクアレイシステム。
The parity data generation means generates updated parity data using the relational expression defined by the following equation 2 when the exclusive OR is Ps.
Figure 0003739766
The disk array system according to claim 6.
前記サーバコンピュータは、
前記第1のディスク装置に記憶されたパリティデータのブロック数が所定数以下か否かを判別する判別手段を備え、
前記判別手段により第1のディスク装置に記憶されたパリティデータのブロック数が所定数以下であると判別された場合、更新後のデータを前記第2のコンピュータに送信する、
ことを特徴とする請求項5,6又は7に記載のディスクアレイシステム。
The server computer
Determining means for determining whether the number of blocks of parity data stored in the first disk device is equal to or less than a predetermined number;
If the determining means determines that the number of blocks of parity data stored in the first disk device is less than or equal to a predetermined number, the updated data is transmitted to the second computer;
The disk array system according to claim 5, 6 or 7.
前記サーバコンピュータは、
前記第1のディスク装置に記憶されたパリティデータのブロック数と、前記第2のディスク装置に記憶されたパリティデータのブロック数と、を比較するブロック数比較手段を備え、
前記ブロック数比較手段により第1のディスク装置に記憶されたパリティデータのブロック数が第2のディスク装置に記憶されたパリティデータのブロック数以下であると判別された場合、更新後のデータを前記第2のコンピュータに送信する、
ことを特徴とする請求項5,6又は7に記載のディスクアレイシステム。
The server computer
Block number comparing means for comparing the number of blocks of parity data stored in the first disk device and the number of blocks of parity data stored in the second disk device;
If it is determined by the block number comparison means that the number of blocks of parity data stored in the first disk device is equal to or less than the number of blocks of parity data stored in the second disk device, the updated data is Send to a second computer,
The disk array system according to claim 5, 6 or 7.
前記サーバコンピュータは、
前記第1のディスク装置の更新回数と前記第2のディスク装置の更新回数とを比較する更新回数比較手段を備え、
前記更新回数比較手段により第1のディスク装置の更新回数が第2のディスク装置の更新回数以上であると判別された場合、更新後のデータを前記第2のコンピュータに送信する、
ことを特徴とする請求項5,6又は7に記載のディスクアレイシステム。
The server computer
Update number comparison means for comparing the number of updates of the first disk device and the number of updates of the second disk device;
If the update number comparing means determines that the update number of the first disk device is equal to or greater than the update number of the second disk device, the updated data is transmitted to the second computer;
The disk array system according to claim 5, 6 or 7.
前記サーバコンピュータは、
前記第1及び第2の書込手段により更新後のデータと更新後のパリティデータとが、それぞれ第2及び第1のディスク装置に書き込まれる毎に、各ディスク装置に記憶されているパリティデータのブロック数を計数する計数手段と、
前記計数手段により計数された各ディスク装置に記憶されているパリティデータのブロック数から、パリティデータが各ディスク装置に分散している度合を示す分散度を算出する分散度算出手段と、
をさらに備え、
前記分散度算出手段により算出された分散度が所定値以下になると、更新後のデータを前記第1のコンピュータに送信する、
ことを特徴とする請求項5乃至10いずれか1項に記載のディスクアレイシステム。
The server computer
Each time the updated data and updated parity data are written to the second and first disk devices by the first and second writing means, respectively, the parity data stored in each disk device is updated. Counting means for counting the number of blocks;
A degree-of-dispersion calculating means for calculating a degree of dispersion indicating the degree to which the parity data is distributed to each disk device from the number of blocks of parity data stored in each disk device counted by the counting means;
Further comprising
When the degree of dispersion calculated by the degree-of-dispersion calculating unit becomes a predetermined value or less, the updated data is transmitted to the first computer.
The disk array system according to claim 5, wherein the disk array system is a disk array system.
前記分散度は、前記ディスク装置の数をn、各ディスク装置に記憶されているパリティデータのブロック数をC、前記所定数をC0、としたとき、以下の数3によって定義される、
Figure 0003739766
ことを特徴とする請求項4に記載のディスクアレイ装置又は請求項11に記載のディスクアレイシステム。
The degree of dispersion is defined by the following equation 3, where n is the number of disk devices, C is the number of blocks of parity data stored in each disk device, and C0 is the predetermined number.
Figure 0003739766
12. The disk array device according to claim 4, or the disk array system according to claim 11.
前記所定数は、前記ディスク装置の数をn、各ディスク装置に記憶されているパリティデータのブロック数をC、としたとき、以下の数4によって定義される、
Figure 0003739766
ことを特徴とする請求項1,4又は12に記載のディスクアレイ装置又は請求項8,11又は12に記載のディスクアレイシステム。
The predetermined number is defined by the following equation 4 where n is the number of the disk devices and C is the number of blocks of parity data stored in each disk device.
Figure 0003739766
13. The disk array device according to claim 1, 4 or 12, or the disk array system according to claim 8, 11 or 12.
ディスクアレイを構成する複数のディスク装置を備え、所定ブロック単位に分割したデータと該データから生成されるパリティデータとを、それぞれ異なるディスク装置に書き込むディスクアレイ装置におけるパリティデータ分散方法であって、
データ更新の指示に応じて、更新が指示されたデータを記憶する第1のディスク装置と該更新が指示されたデータのパリティデータを記憶する第2のディスク装置とから、それぞれ更新前のデータと更新前のパリティデータとを読み出す読出工程と、
更新後のデータと前記読出工程により読み出された更新前のデータ及び更新前のパリティデータとから更新後のパリティデータを生成するパリティデータ生成工程と、
前記第1のディスク装置に記憶されたパリティデータのブロック数が所定数以下か否かを判別する判別工程と、
前記判別工程により第1のディスク装置に記憶されたパリティデータのブロック数が所定数以下であると判別された場合、前記更新後のデータを第2のディスク装置に、前記パリティデータ生成工程により生成された更新後のパリティデータを第1のディスク装置に、それぞれ書き込む書込工程と、
を備える、
ことを特徴とするパリティデータ分散方法。
A parity data distribution method in a disk array device comprising a plurality of disk devices constituting a disk array and writing data divided into predetermined block units and parity data generated from the data to different disk devices,
In response to the data update instruction, the first disk device that stores the data instructed to update and the second disk device that stores the parity data of the data instructed to update, respectively, A reading step of reading out the parity data before update;
A parity data generation step of generating updated parity data from the updated data and the pre-update data and the pre-update parity data read in the read step;
A determination step of determining whether or not the number of blocks of parity data stored in the first disk device is equal to or less than a predetermined number;
If it is determined in the determination step that the number of blocks of parity data stored in the first disk device is equal to or less than a predetermined number, the updated data is generated in the second disk device by the parity data generation step. A writing step of writing the updated parity data to the first disk device,
Comprising
A parity data distribution method.
ディスクアレイを構成する複数のディスク装置を備え、所定ブロック単位に分割したデータと該データから生成されるパリティデータとを、それぞれ異なるディスク装置に書き込むディスクアレイ装置におけるパリティデータ分散方法であって、
データ更新の指示に応じて、更新が指示されたデータを記憶する第1のディスク装置と該更新が指示されたデータのパリティデータを記憶する第2のディスク装置とから、それぞれ更新前のデータと更新前のパリティデータとを読み出す読出工程と、
更新後のデータと前記読出工程により読み出された更新前のデータ及び更新前のパリティデータとから更新後のパリティデータを生成するパリティデータ生成工程と、
前記第1のディスク装置に記憶されたパリティデータのブロック数と、前記第2のディスク装置に記憶されたパリティデータのブロック数と、を比較するブロック数比較工程と、
前記ブロック数比較工程により第1のディスク装置に記憶されたパリティデータのブロック数が第2のディスク装置に記憶されたパリティデータのブロック数以下であると判別された場合、前記更新後のデータを第2のディスク装置に、前記パリティデータ生成工程により生成された更新後のパリティデータを第1のディスク装置に、それぞれ書き込む書込工程と、
を備える、
ことを特徴とするパリティデータ分散方法。
A parity data distribution method in a disk array device comprising a plurality of disk devices constituting a disk array and writing data divided into predetermined block units and parity data generated from the data to different disk devices,
In response to the data update instruction, the first disk device that stores the data instructed to update and the second disk device that stores the parity data of the data instructed to update, respectively, A reading step of reading out the parity data before update;
A parity data generation step of generating updated parity data from the updated data and the pre-update data and the pre-update parity data read in the read step;
A block number comparison step for comparing the number of blocks of parity data stored in the first disk device and the number of blocks of parity data stored in the second disk device;
If it is determined in the block number comparison step that the number of blocks of parity data stored in the first disk device is less than or equal to the number of blocks of parity data stored in the second disk device, the updated data is A writing step of writing the updated parity data generated by the parity data generation step into the second disk device, respectively, into the first disk device;
Comprising
A parity data distribution method.
ディスクアレイを構成する複数のディスク装置を備え、所定ブロック単位に分割したデータと該データから生成されるパリティデータとを、それぞれ異なるディスク装置に書き込むディスクアレイ装置におけるパリティデータ分散方法であって、
データ更新の指示に応じて、更新が指示されたデータを記憶する第1のディスク装置と該更新が指示されたデータのパリティデータを記憶する第2のディスク装置とから、それぞれ更新前のデータと更新前のパリティデータとを読み出す読出工程と、
更新後のデータと前記読出工程により読み出された更新前のデータ及び更新前のパリティデータとから更新後のパリティデータを生成するパリティデータ生成工程と、
前記第1のディスク装置の更新回数と前記第2のディスク装置の更新回数とを比較する更新回数比較工程と、
前記更新回数比較工程により第1のディスク装置の更新回数が第2のディスク装置の更新回数以上であると判別された場合、前記更新後のデータを第2のディスク装置に、前記パリティデータ生成工程により生成された更新後のパリティデータを第1のディスク装置に、それぞれ書き込む書込工程と、
を備える、
ことを特徴とするパリティデータ分散方法。
A parity data distribution method in a disk array device comprising a plurality of disk devices constituting a disk array and writing data divided into predetermined block units and parity data generated from the data to different disk devices,
In response to the data update instruction, the first disk device that stores the data instructed to update and the second disk device that stores the parity data of the data instructed to update, respectively, A reading step of reading out the parity data before update;
A parity data generation step of generating updated parity data from the updated data and the pre-update data and the pre-update parity data read in the read step;
An update count comparison step of comparing the update count of the first disk device with the update count of the second disk device;
If it is determined in the update number comparison step that the update number of the first disk device is equal to or greater than the update number of the second disk device, the updated data is transferred to the second disk device and the parity data generation step. A writing step of writing the updated parity data generated by the above-described operations to the first disk device,
Comprising
A parity data distribution method.
更新前のデータを記憶する第1のディスク装置と該更新前のデータから生成されたパリティデータを記憶する第2のディスク装置とを含みディスクアレイを構成する複数のディスク装置と、該第1のディスク装置を備える第1のコンピュータと、該第2のディスク装置を備え該第1のコンピュータにネットワークを介して接続された第2のコンピュータと、該第1及び第2のコンピュータにネットワークを介して接続され所定ブロック単位に分割した更新後のデータを第1及び第2のコンピュータのいずれかに送信するサーバコンピュータと、を備えるディスクアレイシステムにおけるパリティデータ分散方法であって、
前記サーバコンピュータにより送信される更新後のデータを受信する第1の受信工程と、
前記第1の受信工程により受信した更新後のデータと前記第2のディスク装置に記憶されている更新前のパリティデータとの排他的論理和を前記第1のコンピュータに送信する送信工程と、
前記更新後のデータを第2のディスク装置に書き込む第1の書込工程と、
前記送信工程により送信され排他的論理和を受信する第2の受信工程と、
前記第2の受信工程により受信した排他的論理和と前記第1のディスク装置に記憶されている更新前のデータとから更新後のパリティデータを生成するパリティデータ生成工程と、
前記パリティデータ生成工程により生成された更新後のパリティデータを前記第1のディスク装置に書き込む第2の書込工程と、
を備える、
ことを特徴とするパリティデータ分散方法。
A plurality of disk devices comprising a first disk device for storing data before update and a second disk device for storing parity data generated from the data before update; A first computer having a disk device, a second computer having the second disk device and connected to the first computer via a network, and a network connected to the first and second computers A parity data distribution method in a disk array system comprising: a server computer connected to and transmitted to the first computer or the second computer after updated data divided into predetermined block units,
A first receiving step of receiving updated data transmitted by the server computer;
A transmission step of transmitting an exclusive OR of the updated data received in the first reception step and the pre-update parity data stored in the second disk device to the first computer;
A first writing step of writing the updated data to a second disk device;
A second receiving step for receiving an exclusive OR transmitted by the transmitting step;
A parity data generation step of generating updated parity data from the exclusive OR received in the second reception step and the pre-update data stored in the first disk device;
A second writing step of writing the updated parity data generated by the parity data generation step into the first disk device;
Comprising
A parity data distribution method.
ディスクアレイを構成する複数のディスク装置を備えるコンピュータを、
所定ブロック単位に分割したデータと該データから生成されるパリティデータとを、それぞれ異なるディスク装置に書き込む第1の書込手段、
データ更新の指示に応じて、更新が指示されたデータを記憶する第1のディスク装置と該更新が指示されたデータのパリティデータを記憶する第2のディスク装置とから、それぞれ更新前のデータと更新前のパリティデータとを読み出す読出手段、
更新後のデータと前記読出手段により読み出された更新前のデータ及び更新前のパリティデータとから更新後のパリティデータを生成するパリティデータ生成手段、
前記第1のディスク装置に記憶されたパリティデータのブロック数が所定数以下か否かを判別する判別手段、
前記判別手段により第1のディスク装置に記憶されたパリティデータのブロック数が所定数以下であると判別された場合、前記更新後のデータを第2のディスク装置に、前記パリティデータ生成手段により生成された更新後のパリティデータを第1のディスク装置に、それぞれ書き込む第2の書込手段、
として機能させるコンピュータプログラム。
A computer having a plurality of disk devices constituting a disk array,
First writing means for writing data divided into predetermined block units and parity data generated from the data to different disk devices,
In response to the data update instruction, the first disk device that stores the data instructed to update and the second disk device that stores the parity data of the data instructed to update, respectively, Reading means for reading out parity data before update,
Parity data generation means for generating updated parity data from the updated data and the pre-update data and the pre-update parity data read by the reading means;
Determining means for determining whether the number of blocks of parity data stored in the first disk device is equal to or less than a predetermined number;
When the discriminating unit determines that the number of blocks of parity data stored in the first disk device is equal to or less than a predetermined number, the updated data is generated in the second disk device by the parity data generating unit. Second writing means for writing the updated parity data to the first disk device,
A computer program that functions as a computer program.
ディスクアレイを構成する複数のディスク装置を備えるコンピュータを、
所定ブロック単位に分割したデータと該データから生成されるパリティデータとを、それぞれ異なるディスク装置に書き込む第1の書込手段、
データ更新の指示に応じて、更新が指示されたデータを記憶する第1のディスク装置と該更新が指示されたデータのパリティデータを記憶する第2のディスク装置とから、それぞれ更新前のデータと更新前のパリティデータとを読み出す読出手段、
更新後のデータと前記読出手段により読み出された更新前のデータ及び更新前のパリティデータとから更新後のパリティデータを生成するパリティデータ生成手段、
前記第1のディスク装置に記憶されたパリティデータのブロック数と、前記第2のディスク装置に記憶されたパリティデータのブロック数と、を比較するブロック数比較手段、
前記ブロック数比較手段により第1のディスク装置に記憶されたパリティデータのブロック数が第2のディスク装置に記憶されたパリティデータのブロック数以下であると判別された場合、前記更新後のデータを第2のディスク装置に、前記パリティデータ生成手段により生成された更新後のパリティデータを第1のディスク装置に、それぞれ書き込む第2の書込手段、
として機能させるコンピュータプログラム。
A computer having a plurality of disk devices constituting a disk array,
First writing means for writing data divided into predetermined block units and parity data generated from the data to different disk devices,
In response to the data update instruction, the first disk device that stores the data instructed to update and the second disk device that stores the parity data of the data instructed to update, respectively, Reading means for reading out parity data before update,
Parity data generation means for generating updated parity data from the updated data and the pre-update data and the pre-update parity data read by the reading means;
Block number comparison means for comparing the number of blocks of parity data stored in the first disk device and the number of blocks of parity data stored in the second disk device;
If the block number comparing means determines that the number of blocks of parity data stored in the first disk device is less than or equal to the number of blocks of parity data stored in the second disk device, the updated data is Second writing means for writing the updated parity data generated by the parity data generating means to the second disk device, respectively, to the first disk device;
A computer program that functions as a computer program.
ディスクアレイを構成する複数のディスク装置を備えるコンピュータを、
所定ブロック単位に分割したデータと該データから生成されるパリティデータとを、それぞれ異なるディスク装置に書き込む第1の書込手段、
データ更新の指示に応じて、更新が指示されたデータを記憶する第1のディスク装置と該更新が指示されたデータのパリティデータを記憶する第2のディスク装置とから、それぞれ更新前のデータと更新前のパリティデータとを読み出す読出手段、
更新後のデータと前記読出手段により読み出された更新前のデータ及び更新前のパリティデータとから更新後のパリティデータを生成するパリティデータ生成手段、
前記第1のディスク装置の更新回数と前記第2のディスク装置の更新回数とを比較する更新回数比較手段、
前記更新回数比較手段により第1のディスク装置の更新回数が第2のディスク装置の更新回数以上であると判別された場合、前記更新後のデータを第2のディスク装置に、前記パリティデータ生成手段により生成された更新後のパリティデータを第1のディスク装置に、それぞれ書き込む第2の書込手段、
として機能させるコンピュータプログラム。
A computer having a plurality of disk devices constituting a disk array,
First writing means for writing data divided into predetermined block units and parity data generated from the data to different disk devices,
In response to the data update instruction, the first disk device that stores the data instructed to update and the second disk device that stores the parity data of the data instructed to update, respectively, Reading means for reading out parity data before update,
Parity data generation means for generating updated parity data from the updated data and the pre-update data and the pre-update parity data read by the reading means;
Update number comparison means for comparing the number of updates of the first disk device and the number of updates of the second disk device;
When the update number comparing means determines that the update number of the first disk device is equal to or greater than the update number of the second disk device, the updated data is sent to the second disk device and the parity data generating means. A second writing means for writing the updated parity data generated by the method to the first disk device,
A computer program that functions as a computer program.
JP2003277939A 2003-07-22 2003-07-22 Disk array device, disk array system, parity data distribution method, and computer program Expired - Lifetime JP3739766B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2003277939A JP3739766B2 (en) 2003-07-22 2003-07-22 Disk array device, disk array system, parity data distribution method, and computer program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003277939A JP3739766B2 (en) 2003-07-22 2003-07-22 Disk array device, disk array system, parity data distribution method, and computer program

Publications (2)

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

Family

ID=34264494

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003277939A Expired - Lifetime JP3739766B2 (en) 2003-07-22 2003-07-22 Disk array device, disk array system, parity data distribution method, and computer program

Country Status (1)

Country Link
JP (1) JP3739766B2 (en)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011013908A (en) * 2009-07-01 2011-01-20 Toshiba Corp Disk controller and redundant data management method
US8539150B2 (en) * 2010-12-27 2013-09-17 Hitachi, Ltd. Storage system and management method of control information using a cache memory with multiple cache partitions
CN102426512A (en) * 2011-11-09 2012-04-25 浪潮电子信息产业股份有限公司 Realizing method for storing double-control disk array based on virtualization
US10102070B2 (en) * 2015-06-01 2018-10-16 Hitachi, Ltd. Information processing system, storage apparatus and storage device

Also Published As

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

Similar Documents

Publication Publication Date Title
JP4718340B2 (en) Storage system, control method and program
US6581135B2 (en) Information storage system for redistributing information to information storage devices when a structure of the information storage devices is changed
US6928578B2 (en) System, method, and computer program for selectable or programmable data consistency checking methodology
US7743275B1 (en) Fault tolerant distributed storage method and controller using (N,K) algorithms
CN110750382B (en) Minimum storage regeneration code coding method and system for improving data repair performance
US7472250B2 (en) Storage control device, and control method for storage control device
US20020091897A1 (en) Method and apparatus for supporting parity protected raid in a clustered environment
CN108351819A (en) Dynamic adjusts the error correction function grade of storage device
JP2014041664A (en) Memory efficient check of raid information
US20120239970A1 (en) Methods for redundant array of independent disk (raid) storage recovery
US6766480B2 (en) Using task description blocks to maintain information regarding operations
US6343343B1 (en) Disk arrays using non-standard sector sizes
CN109358980B (en) RAID6 encoding method friendly to data updating and single-disk error recovery
JP2016184372A (en) Storage system, information processing device, parity generation program, and parity generation method
JP3739766B2 (en) Disk array device, disk array system, parity data distribution method, and computer program
CN108073471A (en) The storage system of link and host computer system error-correcting code
US20100138389A1 (en) Systems and methods for updating a data store using a transaction store
US7356757B2 (en) Fault tolerance system and method for one or two failed disks in a disk array
US20040210712A1 (en) Disk array unit and its method for writing data
CN109947587B (en) Grouping repair code construction method for non-uniform fault protection and fault repair method
US11295777B1 (en) System and method for managing off-track read retry
JP4430092B2 (en) RAID device, RAID device controller, and RAID device write-back control method
JP6206138B2 (en) Storage control device and storage control device control program
JP6495858B2 (en) Server device, error correction system, error correction method, program
JP6838299B2 (en) Storage device, storage control device, and storage control program

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