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 PDFInfo
- 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
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台のデータディスク装置に格納されているデータを喪失した場合であっても、ディスクアレイシステムは、他のデータディスク装置に格納されているデータと該パリティディスク装置に格納されているパリティデータとに基づいて、喪失したデータを復元することができる。
しかしながら、特許文献1に開示されたディスクアレイシステムでは、データが更新される毎にパリティディスク装置にアクセスする必要があるため、パリティディスク装置に負荷が集中していしまう。このため、ディスクアレイシステムの性能は、パリティディスク装置の性能に依存してしまうといった欠点があった。
However, in the disk array system disclosed in
本発明は、上述した事情に鑑みてなされたものであって、負荷を分散することにより性能の向上を図ることができるディスクアレイ装置、ディスクアレイ装置、ディスクアレイシステム、パリティデータ分散方法及びコンピュータプログラムを提供することを目的とする。 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.
また、上記ディスクアレイシステムにおいて、前記パリティデータ生成手段は、排他的論理和を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
さらに、上記ディスクアレイシステムにおいて、前記サーバコンピュータは、前記第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
また、上記ディスクアレイ装置又はディスクアレイシステムにおいて、前記所定数は、前記ディスク装置の数を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.
上記目的を達成するために、本発明の第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
ディスクアレイ20は、複数(少なくとも3台以上)のディスク装置、例えばハードディスクドライブ等から構成される4台のディスク装置D1〜D4を備え、ディスク装置D1〜D4は、冗長化ディスク構成を適用する。このような冗長化ディスク構成を適用することにより、ディスク装置D1〜D4のうちいずれか1つが故障した場合であっても、該故障したディスク装置Dのデータの復元が可能となる。
The
また、ディスク装置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
このディスクアレイコントローラ30により、ホストコンピュータ10は、ディスクアレイ20を構成する4台のディスク装置D1〜D4を1つの論理的ディスク装置として認識することが可能となる。
The
ディスクアレイコントローラ30は、ホストコンピュータ10からデータの書込が指示されると、書き込むデータをブロック単位に分割し、数5を用いて、3ブロック分のデータ、例えばA3k、A(3k+1)及びA(3k+2)からパリティデータPkを生成する。このパリティデータP0は、データA0、A1及びA2の排他的論理和として定義される。
When the
ディスクアレイコントローラ30は、ディスク装置D1〜D4の物理的に同一の位置にある4つのブロックを1つのストライプとして、同一のタイミングでデータの書込を行う。
The
図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
これにより、ディスク装置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
例えば、更新前のデータを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
なお、数6は、数5を以下の手順に従って変形することにより導き出せる。まず、更新前のA3koldとパリティデータPkoldとの関係及び更新後のA3knewとパリティデータPknewとの関係は、数5を用いると、次の数7及び数8に示すようになる。
Equation 6 can be derived by transforming
そして、数7を変形すると、数9に示すようになる。
Then, when
さらに、数9を数8に代入すると、数6に示す関係式が求まる。
Further, when Expression 9 is substituted into
また、ディスクアレイコントローラ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
さらに、ディスクアレイコントローラ30は、更新するデータを記憶するディスク装置Dが備えるカウンタCのカウント値と、該ディスク装置Dにおいてデータ及び/又はパリティデータPが記憶されているブロック数をディスクアレイ20を構成するディスク装置数で除算した値(以下、理想カウント値という)と、比較する。本実施の形態の場合では、理想カウント値は、「5(=20/4)」となる。
Further, the
比較の結果、カウント値が理想カウント値よりも大きいと判別した場合、ディスクアレイコントローラ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
一方、カウント値が理想カウント値以下であると判別した場合、ディスクアレイコントローラ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
即ち、ディスクアレイコントローラ30は、カウント値が理想カウント値よりも大きい場合、パリティデータPを記憶するディスク装置Dを変更せず、一方、カウント値が理想カウント値以下の場合、パリティデータPを記憶するディスク装置Dを変更する。
That is, the
このようにして、ディスクアレイコントローラ30は、データAが更新される毎に、パリティデータPを各ディスク装置D1〜D4に分散し、各ディスク装置D1〜D4のパリティデータPを記憶するブロック数を均一化することができる。換言すれば、ディスク装置D1〜D4のディスク構成を、データAが更新される毎に、RAID4の冗長化ディスク構成からRAID5の冗長化ディスクアレイ構成へと移行させることができる。
In this way, each time the data A is updated, the
また、図1に示すディスクアレイコントローラ30は、カウント値が更新される毎に、数10によって定義される分散度を求める。例えば図3に示す場合では、分散度は、「300(=|0−5|^2+|0−5|^2+|0−5|^2+|20−5|^2)」となる。
The
数10によって求めた分散度が所定値(例えば「5」)以下になると、ディスクアレイコントローラ30は、以降の動作において、ディスク装置Dが備えるカウンタCのカウント値と理想カウント値とを比較することなく、更新前のデータAoldを記憶するディスク装置Dに更新後のデータAnewを、また、更新前のパリティデータPoldを記憶するディスク装置Dに更新後のパリティデータPnewを、書き込む。即ち、ディスクアレイコントローラ30は、各ディスク装置DへのパリティデータPの分散動作を終了する。
When the degree of dispersion obtained by
次に、上記構成を備えるディスクアレイ装置1のパリティデータ分散動作について図5に示すフローチャート図を参照して説明する。
Next, the parity data distribution operation of the
まず、ディスクアレイコントローラ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
上記動作を繰り返すことにより、ディスク装置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
次に、ディスクアレイコントローラ30は、更新後のデータAnewと、更新前のデータAold及びパリティデータPoldと、から更新後のパリティデータPnewを生成する(ステップS102)。続いて、ディスクアレイコントローラ30は、更新するデータを記憶するディスク装置Dのカウント値と理想カウント値とを比較する(ステップS103)。
Next, the
ステップ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
一方、カウント値が理想カウント値以下であると判別した場合(ステップ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
この場合、ディスクアレイコントローラ30は、更新後のパリティデータPnewを記憶したディスク装置DのカウンタCと、更新後のデータAnewを記憶したディスク装置DのカウンタCと、のカウント値を更新するとともに(ステップS106)、更新したカウント値から分散度を求める(ステップS107)。
In this case, the
この求めた分散度が所定値(例えば「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
一方、求めた分散度が所定値以下の場合(ステップ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
続いて、上記図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
ディスクアレイコントローラ30は、更新後のデータA24newと、更新前のデータA24old及びパリティデータP8oldと、から更新後のパリティデータP8newを生成する(ステップS102)。
The
この場合、ディスク装置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
これにより、図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
続いて、ホストコンピュータ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),
ディスクアレイコントローラ30は、更新後のデータA25newと、更新前のデータA25old及びパリティデータP8oldと、から更新後のパリティデータP8newを生成する(ステップS102)。
The
この場合、ディスク装置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
これにより、図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
上記動作を繰り返すことにより、パリティデータ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
ホストコンピュータ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),
ディスクアレイコントローラ30は、更新後のデータA(33+i)newと、更新前のデータA(33+i)old及びパリティデータP11oldと、から更新後のパリティデータP11newを生成する(ステップS102)。
The
この場合、ディスク装置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
これにより、図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
上記パリティデータ分散動作により、ディスクアレイ装置1は、データAが更新毎に、パリティデータPを各ディスク装置D1〜D4に分散し、各ディスク装置D1〜D4のパリティデータPを記憶するブロック数を均一化することができる。換言すれば、ディスク装置D1〜D4の構成を、データAが更新される毎に、RAID4の冗長化ディスク構成からRAID5の冗長化ディスクアレイ構成へと移行させることができる。
By the parity data distribution operation, the
このようにディスク装置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
また、上記パリティデータ分散動作において、ディスクアレイ装置1は、データAの更新を機に、パリティデータPを各ディスク装置D1〜D4に分散するため、効率的であるといえ、また、通常行われるデータAの読取処理や更新処理には影響を与えることがない。さらに、ディスクアレイコントローラ30の判別ロジックを置き換えるだけで、ディスクアレイ装置1に最適なパリティデータの配置を実現することができる。
In the parity data distribution operation, since the
[第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
コンピュータ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
このコンピュータ40の構成をブロック図を参照して説明する。コンピュータ40は、図11Aに示すように、通信部41と、制御部42と、インターフェイスI/Fと、を備える。
The configuration of the
通信部41は、通信ネットワーク50を介して、他のコンピュータ40の通信部41と相互に接続されるとともにサーバコンピュータ60に接続されている。通信部41は、サーバコンピュータ60から通信ネットワーク50を介して送信される更新後のデータAnewと、他のコンピュータ40から通信ネットワーク50を介して送信される、後述するデータ和As及びパリティデータ和Psと、を受信して制御部42に供給する。また、通信部41は、制御部42から供給されるデータ和Asとパリティデータ和Psとを通信ネットワーク50を介して、他のコンピュータ40に送信する。
The
制御部42は、CPU、RAM、ROM等から構成され、インターフェイスI/Fを介してディスク装置Dに接続されている。制御部42は、通信部41から更新後のデータAnewが供給されると、該更新後のデータAnewに対応する更新前のデータAold又はパリティデータPoldをディスク装置Dの中から検出する。
The
制御部42は、ディスク装置Dから更新前のデータAoldを検出した場合、数11を用いて、更新後のデータAnewと更新前のデータAoldとの排他的論理和(以下、データ和という)Asを生成する。そして、制御部42は、この生成したデータ和Asを、通信ネットワーク50を介して、更新前のパリティデータPoldが記憶されたディスク装置Dに接続されているコンピュータ40に送信する。また、制御部42は、インターフェイスI/Fを介して接続されているディスク装置Dに更新後のデータAnewを書き込む。
When the
一方、制御部42は、ディスク装置Dから更新前のパリティデータPoldを検出した場合、数12を用いて、更新後のデータAnewと更新前のパリティデータPoldとの排他的論理和(以下、パリティデータ和という)Psを生成する。そして、制御部42は、この生成したデータ和Psを、通信ネットワーク50を介して、更新前のデータAoldが記憶されたディスク装置Dに接続されているコンピュータ40に送信する。また、制御部42は、インターフェイスI/Fを介して接続されているディスク装置Dに更新後のデータAnewを書き込む。
On the other hand, when the
また、制御部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
一方、制御部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
通信ネットワーク50は、例えば専用線や公衆回線網等から構成され、コンピュータ40−1〜40−4(より詳細にはコンピュータ40−1〜40−4の各通信部41−1〜41−4)と、サーバコンピュータ60(より詳細にはサーバコンピュータ60の通信部61)と、を相互に接続する。
The
サーバコンピュータ60は、例えばパーソナルコンピュータ等であって、通信ネットワーク50を介してコンピュータ40−1〜40−4に接続されている。サーバコンピュータ60は、第1の実施の形態におけるディスクアレイコントローラ30と同様の機能を有しており、このサーバコンピュータ60により、ホストコンピュータ10は、4台のコンピュータ40−1〜40−4に接続されているディスク装置D1〜D4を1つの論理ディスク装置として認識することが可能となる。
The
このサーバコンピュータ60の構成をブロック図を参照して説明する。コンピュータ60は、図10Bに示すように、通信部61と、制御部62と、インターフェイスI/Fと、を備える。
The configuration of the
通信部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
制御部62は、CPU、RAM、ROM等から構成され、RAM等に各ディスク装置D1〜D4のデータA又はパリティデータPが更新された回数を計数するためのカウンタC1〜C4を備え、データA又はパリティデータPが更新される毎にカウンタC1〜C4のカウント値を更新する。
The
制御部62は、ホストコンピュータ10からデータの書込が指示されると、更新前のデータAoldを記憶するディスク装置DのカウンタCと、更新前のパリティデータPoldを記憶するディスク装置DのカウンタCと、のカウント値を比較する。
When the
比較の結果、更新前のデータ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
一方、更新前のデータ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
これにより、サーバコンピュータ60は、更新前のデータAoldを記憶するディスク装置DのカウンタCのカウント値が、更新前のパリティデータPoldを記憶するディスク装置DのカウンタCのカウント値よりも小さいと判別した場合、パリティデータPを記憶するディスク装置Dを変更せず、一方、更新前のパリティデータPoldを記憶するディスク装置DのカウンタCのカウント値以上の場合、パリティデータPを記憶するディスク装置Dを変更することができる。
Thus, the
次に、上記構成を備えるディスクアレイシステム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
ホストコンピュータ10からデータの更新が指示されると、ディスクアレイシステム2は、図12のフローチャート図に示すパリティデータ分散動作を開始する。パリティデータ分散動作が開始すると、サーバコンピュータ60は、更新前のデータAoldを記憶するディスク装置DのカウンタCと、更新前のパリティデータPoldを記憶するディスク装置DのカウンタCと、のカウント値を比較する(ステップS2010)。
When data update is instructed from the
比較の結果、更新前のデータ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
更新前のデータAoldを記憶するディスク装置Dに接続されたコンピュータ40は、送信された更新後のデータAnewを受信するとともに、この受信した更新後のデータAnewと、ディスク装置Dに記憶されている更新前のデータAoldと、の排他的論理和であるデータ和Asを生成する(ステップS2011)。
The
このコンピュータ40は、生成したデータ和Asを、通信ネットワーク50を介して、更新前のパリティデータPoldが記憶されたディスク装置Dに接続されているコンピュータ40に送信するとともに、インターフェイスI/Fを介して接続されているディスク装置Dに更新後のデータAnewを書き込む(ステップS2012)。
The
更新前のパリティデータPoldを記憶するディスク装置Dに接続されたコンピュータ40は、送信されたデータ和Asを受信するとともに、この受信したデータ和Asと、ディスク装置Dに記憶されている更新前のパリティデータPoldと、から更新後のパリティデータPnewを生成する(ステップS2013)。このコンピュータ40は、生成した更新後のパリティデータPnewを、インターフェイスI/Fを介して接続されたディスク装置Dに書き込んで(ステップS2014)、パリティ分散動作を終了する。
The
一方、更新前のデータ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
更新前のパリティデータPoldを記憶するディスク装置Dに接続されたコンピュータ40は、送信された更新後のデータAnewを受信するとともに、この受信した更新後のデータAnewと、ディスク装置Dに記憶されている更新前のパリティデータPoldと、の排他的論理和であるパリティデータ和Psを生成する(ステップS2016)。
The
このコンピュータ40は、生成したパリティデータ和Psを、通信ネットワーク50を介して、更新前のデータAoldが記憶されたディスク装置Dに接続されているコンピュータ40に送信するとともに、インターフェイスI/Fを介して接続されているディスク装置Dに更新後のデータAnewを書き込む(ステップS2017)。
The
更新前のデータAnewを記憶するディスク装置Dに接続されたコンピュータ40は、送信されたパリティデータ和Psを受信するとともに、この受信したパリティデータ和Psと、ディスク装置Dに記憶されている更新前のデータAoldと、から更新後のパリティデータPnewを生成する(ステップS2018)。このコンピュータ40は、この生成した更新後のパリティデータPnewを、インターフェイスI/Fを介して接続されたディスク装置Dに書き込んで(ステップS219)、パリティデータ分散動作を終了する。
The
上記パリティデータ分散動作を繰り返すことにより、ディスクアレイシステム2は、データAが更新される毎に、パリティデータPを各ディスク装置D1〜D4に分散し、各ディスク装置D1〜D4のパリティデータPを記憶するブロック数を均一化することができる。換言すれば、ディスク装置D1〜D4のディスク構成を、データAが更新される毎に、RAID4の冗長化ディスク構成からRAID5の冗長化ディスクアレイ構成へと移行させることができる。
By repeating the parity data distribution operation, the
このようにディスク装置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
上記パリティデータ分散動作において、サーバコンピュータ60が更新前のパリティデータPoldを記憶するディスク装置Dに接続されたコンピュータ40に更新後のデータAnewを送信し、また、該ディスク装置DがデータAoldを記憶するディスク装置Dに接続されたコンピュータ40にパリティデータ和Psを送信することによって、ディスクアレイシステム2は、パリティデータPを記憶するディスク装置Dを変更することができる。このように、ディスクアレイシステム2は、二回データを送信するだけでパリティデータPを記憶するディスク装置Dを変更することができるため、通信ネットワーク50にかかる負担の低減を図ることができる。
In the parity data distribution operation, the
また、上記パリティデータ分散動作において、ディスクアレイシステム2は、データAの更新を機に、パリティデータPを各ディスク装置D1〜D4に分散するため、効率的であるといえ、また、通常行われるデータAの読取処理や更新処理には影響を与えることがない。さらに、サーバコンピュータ60の判別ロジックを置き換えるだけで、ディスクアレイシステム2に最適なパリティデータの配置を実現することができる。
In the parity data distribution operation, the
なお、本発明は、上記の実施の形態に限られず、種々の変形、応用が可能である。以下、本発明に適用可能な上記の実施の形態の変形態様について説明する。 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
上記第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
上記パリティデータ分散動作を繰り返すことにより、上記第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
また、上記第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
さらに、上記第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
また、上記第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
さらに、上記第1の実施の形態におけるディスクアレイコントローラ30の機能は、パーソナルコンピュータ等、CPU、RAM、ROM等から構成される汎用コンピュータをプラットフォームとし、CPUがROMに格納されているコンピュータプログラムを実行することによっても実現可能である。
Furthermore, the function of the
また、上記第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 ディスクアレイ装置
2 ディスクアレイシステム
10 ホストコンピュータ
20 ディスクアレイ
30 ディスクアレイコントローラ
40 コンピュータ
50 通信ネットワーク
60 サーバコンピュータ
A データ
C カウンタ
D ディスク装置
P パリティデータ
1
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又は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.
前記第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.
前記第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.
データ更新の指示に応じて、更新が指示されたデータを記憶する第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の受信工程と、
前記第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.
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)
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 |
-
2003
- 2003-07-22 JP JP2003277939A patent/JP3739766B2/en not_active Expired - Lifetime
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 |