JP2007087062A - Array type storage device - Google Patents
Array type storage device Download PDFInfo
- Publication number
- JP2007087062A JP2007087062A JP2005274413A JP2005274413A JP2007087062A JP 2007087062 A JP2007087062 A JP 2007087062A JP 2005274413 A JP2005274413 A JP 2005274413A JP 2005274413 A JP2005274413 A JP 2005274413A JP 2007087062 A JP2007087062 A JP 2007087062A
- Authority
- JP
- Japan
- Prior art keywords
- data
- storage
- array
- unit
- write
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1076—Parity data used in redundant arrays of independent storages, e.g. in RAID systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2211/00—Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
- G06F2211/10—Indexing scheme relating to G06F11/10
- G06F2211/1002—Indexing scheme relating to G06F11/1076
- G06F2211/1059—Parity-single bit-RAID5, i.e. RAID 5 implementations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2211/00—Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
- G06F2211/10—Indexing scheme relating to G06F11/10
- G06F2211/1002—Indexing scheme relating to G06F11/1076
- G06F2211/1061—Parity-single bit-RAID4, i.e. RAID 4 implementations
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
Abstract
Description
本発明は、複数の記憶装置がアレイ化されている記憶装置アレイを有し、外部装置から受領した命令に応じて記憶装置アレイへのアクセスを制御するアレイ型記憶装置に関する。 The present invention relates to an array type storage device that has a storage device array in which a plurality of storage devices are arrayed and controls access to the storage device array in accordance with an instruction received from an external device.
近年、情報機器の処理能力の向上、および通信ネットワークの広帯域化に伴い、動画、静止画などの大容量のマルチメディアデータが取り扱われるようになっている。このようなマルチメディアデータの蓄積に好適なストレージとして、高速、大容量で、かつ高い信頼性を有するストレージが要求されている。特に、広帯域ネットワークを介した高品位動画配信を扱う市場は、今後、急速な拡大が強く見込まれており、マルチメディアデータの蓄積に好適なストレージソリューションの提供は、急務である。 2. Description of the Related Art In recent years, large-capacity multimedia data such as moving images and still images have been handled with the improvement of processing capability of information devices and the widening of communication networks. As a storage suitable for storing such multimedia data, a storage having high speed, large capacity, and high reliability is required. In particular, the market dealing with high-definition video distribution via broadband networks is expected to rapidly expand in the future, and it is an urgent need to provide a storage solution suitable for storing multimedia data.
高速、大容量、高信頼性のストレージを実現する技術のひとつとして、D. Pattersonなどにより提案されたRAIDが広く知られている(例えば非特許文献1参照)。 As one of technologies for realizing high-speed, large-capacity, and high-reliability storage, RAID proposed by D. Patterson and the like is widely known (for example, see Non-Patent Document 1).
上記文献では、RAIDレベル4(以下、RAID4という)またはRAIDレベル5(以下、RAID5という)として、データを複数のブロックに分割し、上記複数のブロックに分割したデータからパリティデータを生成する。そして、上記複数のブロックに分割したデータと上記パリティデータを複数のディスク装置に分散して格納することにより、冗長性を確保しながら、容量的に効率よくデータを格納する方法が提案されている。 In the above-mentioned document, data is divided into a plurality of blocks at RAID level 4 (hereinafter referred to as RAID 4) or RAID level 5 (hereinafter referred to as RAID 5), and parity data is generated from the data divided into the plurality of blocks. A method of storing data efficiently in terms of capacity while ensuring redundancy is proposed by distributing and storing the data divided into the plurality of blocks and the parity data in a plurality of disk devices. .
RAID4またはRAID5にて構成されたディスクアレイに新しいデータを書き込むとき、リードモディファイライト動作を行う。すなわち、(1)新データの書き込み先ブロックに現在、記録されている旧データと、上記新データの書き込み先ブロックに対応するパリティブロックに現在記録されている旧パリティデータを読み出す。(2)上記新データと上記旧データと上記旧パリティデータの排他的論理和を取ることにより、新パリティデータを計算する。(3)新データと新パリティデータをそれぞれの書き込み先ブロックに書き込む、という動作が行われる。すなわち、新しいデータを書き込むために、2回の読み出し処理が必要である。
When new data is written to a disk array configured with
また、データ書き込み速度の向上を図るためのディスクアレイ装置が提案されている(特許文献1参照)。このディスクアレイ装置は、ディスクアレイを構成する各ブロックの使用状態を記憶する使用状態記憶部を有する。このディスクアレイ装置は、データを書き込むときに、上記使用状態記憶部を参照し、データの書き込み先ブロックが未使用である場合、上記データの書き込み先ブロックからの読み出し処理を省略してパリティデータを生成する。これにより、ライトペナルティが低減され、データ書き込み速度の向上が図られる。
しかしながら、上述した従来の技術においては、RAID4またはRAID5にて構成されたディスクアレイにデータを書き込むとき、リードモディファイライト動作のために、書き込み速度が著しく低下する、いわゆるライトペナルティが発生する。
However, in the above-described conventional technology, when data is written to a disk array configured with
また、上述したディスクアレイ装置においては、データの書き込み先ブロックが未使用である場合、上記データの書き込み先ブロックからの読み出し処理を省略してパリティデータを生成することにより、ライトペナルティが低減される。しかしながら、データ書き込み先ブロックに既にデータが格納されている場合、またはデータ書き込み先ブロックを含むストライプの少なくとも1つのブロックに既にデータが格納されている場合、依然、ライトペナルティが発生する。よって、このディスクアレイ装置は、あらゆる場合に対応して、データ書き込み速度の向上を図ることはできない。 In the disk array device described above, when the data write destination block is unused, the write penalty is reduced by generating the parity data by omitting the read process from the data write destination block. . However, when data is already stored in the data write destination block, or when data is already stored in at least one block of the stripe including the data write destination block, a write penalty still occurs. Therefore, this disk array device cannot improve the data writing speed in all cases.
本発明の目的は、RAID4またはRAID5により構成された記憶装置アレイへのデータ書き込みにおいて、データ書き込み速度を向上させることができるアレイ型記憶装置を提供することにある。 An object of the present invention is to provide an array type storage device capable of improving the data writing speed in data writing to a storage device array constituted by RAID4 or RAID5.
本発明は、上記目的を達成するため、複数の記憶装置がアレイ化されている記憶装置アレイを有し、外部装置から受領した命令に応じて前記記憶装置アレイへのアクセスを制御するアレイ型記憶装置であって、前記記憶装置アレイ上に構成される複数の記憶単位を含む冗長グループのそれぞれに対応付けて、記憶単位毎のデータ格納の有無を示すデータ格納状態情報を記憶するデータ格納状態情報記憶手段と、前記データ格納状態情報記憶手段を参照し、書き込みデータの記憶領域となる記憶単位の割り当てと、該書き込みデータに対応する冗長データの記憶領域となる記憶単位の割り当てとを行う記憶領域割り当て手段と、前記書き込みデータに対応する冗長データを生成する冗長データ生成手段と、前記書き込みデータと上記冗長データとをそれぞれ対応する前記記憶領域割り当て手段により割り当てられた記憶単位に書き込む手段とを備え、前記記憶領域割り当て手段は、書き込みデータの記憶領域として、全ての記憶単位にデータが格納されていない冗長グループに含まれる記憶単位を割り当て、前記冗長データを書き込む領域として、前記書き込みデータを書き込む領域として割り当てられた記憶単位を含む冗長グループの他の記憶単位を割り当てることを特徴とするアレイ型記憶装置を提供する。 In order to achieve the above object, the present invention has an array type storage that has a storage device array in which a plurality of storage devices are arrayed and controls access to the storage device array in accordance with an instruction received from an external device. Data storage status information for storing data storage status information indicating presence or absence of data storage for each storage unit in association with each of redundancy groups including a plurality of storage units configured on the storage device array A storage area that refers to the storage means and the data storage state information storage means, and performs storage unit allocation as a storage area for write data and storage unit allocation as a redundant data storage area corresponding to the write data Allocating means, redundant data generating means for generating redundant data corresponding to the write data, the write data and the redundant data For each of the storage units allocated by the corresponding storage area allocation unit, the storage area allocation unit as a storage area for the write data in a redundant group in which no data is stored in all the storage units. Provided is an array type storage device in which a storage unit is allocated and another storage unit including a storage unit assigned as an area for writing the write data is assigned as an area for writing the redundant data. .
本発明によれば、RAID4またはRAID5により構成された記憶装置アレイへのデータ書き込みにおいて、リードモディファイライト動作が発生せず、ライトペナルティの発生を解消することができ、データ書き込み速度を向上させることができる。
According to the present invention, a read-modify-write operation does not occur when data is written to a storage device array configured by
以下、本発明の実施の形態について図面を参照しながら説明する。 Hereinafter, embodiments of the present invention will be described with reference to the drawings.
(第1の実施の形態)
図1は本発明の第1の実施の形態に係るディスクアレイ装置の構成を示すブロック図である。
(First embodiment)
FIG. 1 is a block diagram showing the configuration of the disk array device according to the first embodiment of the present invention.
ディスクアレイ装置は、図1に示すように、ホスト装置100、アレイコントローラ200、およびディスクアレイ(記憶装置アレイ)300を備える。ホスト装置100は、CPU101、ROM102、RAM103、および記憶装置I/F(インタフェース)回路104を有する。アレイコントローラ200は、MPU201、ROM202、RAM203、パリティー演算回路204、ホスト装置I/F回路205、およびハードディスクドライブI/F回路(HDD I/F回路)206〜209を有する。ディスクアレイ300は、RAID4またはRAID5を実現可能なに構成された複数のハードディスクドライブ(以下、HDD)301〜304からなる。
As shown in FIG. 1, the disk array device includes a
なお、本実施の形態においては、ディスクアレイを構成する記憶装置をHDDとした形態を説明するが、ディスクアレイを構成する記憶装置は、HDDに限定されることはない。光ディスクドライブ、光磁気ディスクドライブ、さらには半導体記憶装置など、他の種類の記憶装置でもよい。 In the present embodiment, a description will be given of an embodiment in which the storage device constituting the disk array is an HDD, but the storage device constituting the disk array is not limited to the HDD. Other types of storage devices such as optical disk drives, magneto-optical disk drives, and semiconductor storage devices may be used.
ホスト装置100は、アレイコントローラ200にディスクアレイ300のコンフィグレーションに関する命令、ディスクアレイ300へ/からのデータの書き込み/読み出しに関する命令を発行する。また、アレイコントローラ200にディスクアレイ300への書き込みデータを転送する。
The
アレイコントローラ200は、ホスト装置100からの命令を受領すると、それを解釈して、ディスクアレイ300のコンフィグレーション、ディスクアレイ300へ/からのデータの書き込み/読み出しを行う。アレイコントローラ200は、ホスト装置100からディスクアレイ300へのデータ書き込み命令と書き込みデータを受領すると、上記受領した書き込みデータをディスクアレイ300の構成に基づいて再構成し、上記再構成されたデータに対してパリティデータを生成する。そして、アレイコントローラ200は、ディスクアレイ300を構成するHDD301〜304の一部または全部にデータ書き込み命令を発行して、上記再構成されたデータと上記パリティデータとを分散して書き込む。
When the
また、アレイコントローラ200は、ホスト装置100からディスクアレイ300からのデータ読み出し命令を受領すると、ディスクアレイ300を構成するHDD301〜304の一部または全部にデータ読み出し命令を発行して、データを読み出す。この読み出したデータは、ディスクアレイ300の構成に基づいて再構成され、ホスト装置100に転送される。
When the
各HDD301〜304は、アレイコントローラ200からデータ書き込み命令と書き込みデータを受領すると、この受領した書き込みデータを磁気ディスク記録媒体に記録する。また、各HDD301〜304は、アレイコントローラ200からデータ読み出し命令を受領すると、磁気ディスク記録媒体からデータを再生し、この再生されたデータをアレイコントローラ200に転送する。
Upon receiving a data write command and write data from the
次に、本実施の形態のディスクアレイ装置の特徴的な動作について図2を参照しながら説明する。図2は図1のディスクアレイ装置において、ディスクアレイ300へデータを書き込むときのアレイコントローラ200の動作手順を示すフローチャートである。この図2のフローチャートに示す手順は、アレイコントローラ200のMPU201により実行されるものである。
Next, a characteristic operation of the disk array device according to the present embodiment will be described with reference to FIG. FIG. 2 is a flowchart showing an operation procedure of the
アレイコントローラ200は、図2に示すように、ステップS201において、ホスト装置100からデータ書き込み命令と書き込みデータを受領すると、ステップS202で、上記受領した書き込みデータをディスクアレイ300の構成に基づいて再構成する。そして、後述の方法で、上記再構成したデータと上記再構成したデータから生成されるパリティデータに対してディスクアレイ300上のブロックを割り当て、上記再構成したデータからパリティデータを生成する。そして、アレイコントローラ200は、ステップS203において、上記割り当てたブロックに上記再構成したデータと上記パリティデータを書き込む。
As shown in FIG. 2, when the
次に、上記再構成したデータと上記パリティデータにディスクアレイ300上のブロックを割り当て、上記パリティデータを生成する方法について図3〜図8を参照しながら説明する。図3は図2のステップS202のブロック割り当て・パリティデータ生成処理の手順を示すフローチャート、図4はフォーマット時のディスクアレイ、データ格納状態テーブル、およびLBA−ディスクアレイ・ブロック変換テーブルのぞれぞれの状態を示す図、図5はホスト装置からLBA=L0〜L1に2ブロック分のサイズを有するデータD0〜D1の書き込み命令が発行されたきのディスクアレイ、データ格納状態テーブル、およびLBA−ディスクアレイ・ブロック変換テーブルのぞれぞれの状態を示す図、図6は図5の状態においてホスト装置からLBA=L2への1ブロック分のサイズを有するデータD2の書き込み命令が発行されたときのディスクアレイ、データ格納状態テーブル、およびLBA−ディスクアレイ・ブロック変換テーブルのぞれぞれの状態を示す図、図7は図6の状態においてホスト装置からLBA=L3〜L6への4ブロック分のサイズを有するデータD3〜D6の書き込み命令が発行されたときのディスクアレイ、データ格納状態テーブル、およびLBA−ディスクアレイ・ブロック変換テーブルのぞれぞれの状態を示す図、図8は図7の状態においてホスト装置からLBA=L2への1ブロック分のサイズを有するデータD7の書き込み命令が発行されたときのディスクアレイ、データ格納状態テーブル、およびLBA−ディスクアレイ・ブロック変換テーブルのぞれぞれの状態を示す図である。ここでは、ディスクアレイ300は、RAID5により構成されているものとして説明するが、RAID4により構成されていても本発明は適用可能である。また、HDDの台数は4台に限定されることはない。
Next, a method for allocating blocks on the
アレイコントローラ200は、電源投入時に、図4(a),(b)に示すようなデータ格納状態テーブル(以下、格納状態テーブル)203a、およびLBA−ディスクアレイ・ブロック変換テーブル(以下、変換テーブル)203bをHDD301〜304またはその他の不揮発性記憶媒体から読み出し、RAM203上に展開する。格納状態テーブル203aは、ブロックにデータが格納されているか否かの情報を保持するビットマップテーブルである。変換テーブル203bは、ホスト装置100が認識する論理アドレス(以下、LBA)と、ディスクアレイ300上のブロック位置との対応を示す情報を保持するテーブルである。
When the
アレイコントローラ200は、図3に示すように、まずステップS301において、格納状態テーブル203aを参照して、いずれのブロックにもデータが格納されていないストライプを探し出す。続くステップS302において、格納状態テーブル203aと変換テーブル203bを更新することによって、上記再構成したデータと上記パリティデータにディスクアレイ300上のブロックを割り当てる。ここで、RAM203上で更新された格納状態テーブル203aと変換テーブル203bは、例えば、電源遮断時など、任意のタイミングで、HDD301〜304またはその他の不揮発性記憶媒体に複写される。そして、アレイコントローラ200は、ステップS303において、パリティー演算回路204により上記再構成したデータから上記パリティデータを生成する。
As shown in FIG. 3, first, the
具体的には、ディスクアレイ300がフォーマットされると、図4(a)に示すような状態になる。この状態は、ディスクアレイ300にデータが格納されていない状態であるので、格納状態テーブル203aは、図4(b)に示すように、それぞれのブロックに対応する全てのビットに対して、データが格納されていないことを示す「0」が書き込まれている。また、変換テーブル203bには、図4(c)に示すように、有効な情報が書き込まれていない。
Specifically, when the
図4のフォーマットされた状態において、ホスト装置100から、LBA=L0〜L1への2ブロック分のサイズを有するデータD0〜D1の書き込み命令が発行されると、ディスクアレイは、図5(a)に示す状態になる。ここでは、本発明の理解を容易にするために、ホスト装置100が管理するデータクラスタサイズとディスクアレイ300のブロックサイズとが等しいものとして説明するが、もちろんこれらが異なる場合でもよい。また、格納状態テーブル203aと変換テーブル203bのそれぞれのフォーマットが図示するものに限定されることはない。さらには、テーブルの構成が図示するものに限定されることはない。
In the formatted state of FIG. 4, when a write command for data D0 to D1 having a size of two blocks to LBA = L0 to L1 is issued from the
アレイコントローラ200は、上記書き込み命令を受領すると、格納状態テーブル203aを参照して、2ブロック分のデータが格納可能な、いずれのブロックにもデータが格納されていないストライプとしてストライプS0を探し出す。そして、ストライプS0において、2ブロック分の領域としてHDD301〜302を選択する。ここで、ストライプS0に対するパリティデータP0に対しては、RAID5のフォーマットに従って自動的にHDD304が選択される。次いで、格納状態テーブル203a上の上記選択領域に対応するビット(ストライプ番号,HDD番号)=(S0,301)、(S0,302)が「1」に書き換えられる。また、変換テーブル203bに対して、ホスト装置100が認識するLBAとディスクアレイ300上のブロック位置との対応、すなわち(LBA,HDD番号,ストライプ番号)=(L0,301,S0)、(L1,302、S0)が書き加えられる。このようにして、ホスト装置100から受領したデータD0〜D1とパリティデータP0に対してディスクアレイ300のブロックが割り当てられる。
When the
次いで、パリティデータP0が
P0=D0 xor D1
に基づいて生成され、生成されたパリティデータP0は、データD0およびD1とともに、それぞれに割り当てられたブロックに書き込まれる。
Next, the parity data P0 is P0 = D0 xor D1
The generated parity data P0 is written together with the data D0 and D1 to the blocks assigned to them.
この図5(a)に示す状態において、ホスト装置100から、LBA=L2への1ブロック分のサイズを有するデータD2の書き込み命令が発行されると、ディスクアレイ300は、図6(a)に示す状態になる。
In the state shown in FIG. 5A, when a write command for data D2 having a size of one block to LBA = L2 is issued from the
アレイコントローラ200は、上記書き込み命令を受領すると、格納状態テーブル203aを参照して、1ブロック分のデータが格納可能な、いずれのブロックにもデータが格納されていないストライプとしてストライプS1を探し出す。ストライプS1において、1ブロック分の領域としてHDD301を選択する。このストライプS1に対するパリティデータP1に対しては、RAID5のフォーマットに従って自動的にHDD303が選択される。そして、図5(b)に示すように、格納状態テーブル203a上の上記選択領域に対応するビット(ストライプ番号,HDD番号)=(S1,301)が「1」に書き換えられる。また、図5(c)に示すように、変換テーブル203bに対して、ホスト装置100の認識するLBAとディスクアレイ300上のブロック位置との対応、すなわち(LBA,HDD番号,ストライプ番号)=(L2,301,S1)が書き加えられる。このようにして、ホスト装置100から受領したデータD2とパリティデータP1に対して、ディスクアレイ300のブロックが割り当てられる。
When the
次いで、パリティデータP1が、
P1=D2
に基づいて生成され、生成されたパリティデータP1は、データD2とともに、それぞれに割り当てられたブロックに書き込まれる。
Next, the parity data P1 is
P1 = D2
The generated parity data P1 is written to the blocks allocated to the data D2 together with the data D2.
図6の状態において、ホスト装置100からLBA=L3〜L6への4ブロック分のサイズを有するデータD3〜D6の書き込み命令が発行されると、ディスクアレイ300は、図7(a)に示す状態になる。
In the state of FIG. 6, when a write command for data D3 to D6 having a size of 4 blocks from the
アレイコントローラ200は、上記書き込み命令を受領すると、格納状態テーブル203aを参照して、4ブロック分のデータが格納可能な、いずれのブロックにもデータが格納されていないストライプとしてストライプS2とS3を探し出す。そして、アレイコントローラ200は、ストライプS2において、3ブロック分の領域としてHDD301とHDD303,304を選択し、ストライプS3において、1ブロック分の領域としてHDD302を選択する。ここで、ストライプS2に対するパリティデータP2に対しては、RAID5のフォーマットに従って自動的にHDD302が選択される。また、ストライプS3に対するパリティデータP3に対しては、RAID5のフォーマットに従って自動的にHDD301が選択される。
Upon receiving the write command, the
そして、図7(b)に示すように、格納状態テーブル203a上の上記選択領域に対応するビット(ストライプ番号,HDD番号)=(S2,301)、(S2,303)、(S2、304)および(S3、302)は、「1」に書き換えられる。また、図7(c)に示すように、変換テーブル203bに対して、ホスト装置100が認識するLBAとディスクアレイ300上のブロック位置との対応が追加される。すなわち(LBA,HDD番号,ストライプ番号)=(L3,301,S2)、(L4,303、S2)、(L5,304、S2)および(L6,302、S3)が書き加えられる。このようにして、ホスト装置100から受領したデータD3〜D6とパリティデータP2,P3に対して、ディスクアレイ300のブロックが割り当てられる。
Then, as shown in FIG. 7B, bits (stripes number, HDD number) corresponding to the selected area on the storage state table 203a = (S2, 301), (S2, 303), (S2, 304). And (S3, 302) are rewritten to “1”. Further, as shown in FIG. 7C, the correspondence between the LBA recognized by the
その後、パリティデータP2,P3が、それぞれ
P2=D3xorD4xorD5
P3=D6
に基づいて生成され、生成されたパリティデータP2,P3は、データD3〜D6とともに、それぞれに割り当てられたブロックに書き込まれる。
After that, the parity data P2 and P3 are respectively P2 = D3xorD4xorD5
P3 = D6
The generated parity data P2 and P3 are written in the blocks assigned to the data D3 to D6.
図7の状態において、ホスト装置100から、LBA=L2への1ブロック分のサイズを有するデータD7の書き込み命令、すなわちLBA=L2への上書き命令が発行されると、ディスクアレイ300は、図8(a)に示す状態になる。
In the state shown in FIG. 7, when the
この場合、アレイコントローラ200は、図4〜図7の場合と同様となる。すなわち、上記書き込み命令を受領すると、格納状態テーブル203aを参照して、1ブロック分のデータが格納可能な、いずれのブロックにもデータが格納されていないストライプとしてストライプS4を探し出す。そして、ストライプS4において、1ブロック分の領域としてHDD301を選択する。ここで、ストライプS4に対するパリティデータP4に対しては、RAID5のフォーマットに従って自動的にHDD304が選択される。そして、図8(b)に示すように、格納状態テーブル203a上の上記選択領域に対応するビット(ストライプ番号,HDD番号)=(S4,301)が「1」に書き換えられる。また、図8(c)に示すように、変換テーブル203b上のホスト装置100が認識するLBA=L2とディスクアレイ300上のブロック位置との対応が(LBA,HDD番号,ストライプ番号)=(L2,301,S4)に書き換えられる。このようにして、ホスト装置100から受領したデータD7とパリティデータP4に対して、ディスクアレイ300のブロックが割り当てられる。
In this case, the
次いで、パリティデータP4が
P4=D7
に基づいて生成され、生成されたパリティデータP4は、データD7とともに、それぞれに割り当てられたブロックに書き込まれる。
Next, the parity data P4 is P4 = D7
The generated parity data P4 is written together with the data D7 to the blocks assigned to each.
本実施の形態においては、アレイコントローラ200により、ホスト装置100が上書き命令を発行したときのLBAの管理を行うようにしている。これに代えて、ホスト装置100が、ディスクアレイ300へのデータ書き込み命令において、既にデータが格納されているLBAを指定しないように、例えばオペレーティングシステムまたはデバイスドライバにより、LBAを管理するような形態を採用してもよい。
In this embodiment, the
次に、上述した手順でデータが書き込まれたディスクアレイ300からデータを読み出すときのアレイコントローラ200の動作について図9を参照しながら説明する。図9はディスクアレイ300からデータを読み出すときのアレイコントローラ200の動作手順を示すフローチャートである。図9のフローチャートで示す手順は、MPU201により実行されるものである。
Next, the operation of the
アレイコントローラ200は、図9に示すように、ステップS901において、ホスト装置100からデータ読み出し命令を受領する。続いて、アレイコントローラ200は、ステップS902において、変換テーブル203bを参照して,ホスト装置100から指定されたLBAに対応するディスクアレイ300上のブロックを探し出す。次いで、アレイコントローラ200は、ステップS903において、上記LBAに対応するブロックを含むHDDにデータ読み出し命令を発行する。そして、アレイコントローラ200は、ステップS904において、指定されたデータの読み出しが失敗したか否かを判定する。ここで、指定されたデータの読み出しが成功すると、アレイコントローラ200は、ステップS906において、読み出されたデータをホスト装置100に転送する。
As shown in FIG. 9, the
これに対し、上記ステップS904において指定されたデータの読み出しが失敗したと判定された場合、アレイコントローラ200は、ステップS905に進む。このステップおいて、アレイコントローラ200は、上記読み出しが失敗したデータを、同一ストライプ上にある他のデータとパリティデータから後述の方法により復元する。そして、アレイコントローラ200は、ステップS906において、復元されたデータをホスト装置100に転送する。
On the other hand, when it is determined in step S904 that reading of the designated data has failed, the
ここで、読み出しに失敗したデータを同一ストライプ上にある他のデータとパリティデータから復元する方法について図10を参照しながら説明する。図10は図9のステップS905のデータ復元処理の手順を示すフローチャートである。 Here, a method for restoring data that has failed to be read from other data and parity data on the same stripe will be described with reference to FIG. FIG. 10 is a flowchart showing the procedure of the data restoration process in step S905 of FIG.
上記データ復元処理を行う場合、図10に示すように、アレイコントローラ200は、ステップS1001において、格納状態テーブル203aを参照して、読み出しが失敗したデータと同一ストライプ上において、データが格納されているブロックを探索する。そして、アレイコントローラ200は、ステップS1002において、データが格納されているブロックが発見されたか否かを判定する。ここで、データが格納されているブロックが発見された場合、ステップS1003に進む。アレイコントローラ200は、ステップS1003において、上記データが格納されているブロックを含むHDDと、上記読み出しが失敗したデータに対応するパリティデータが格納されているブロックを含むHDDにデータ読み出し命令を発行する。そして、上記読み出しが失敗したデータと同一ストライプ上のブロックに格納されているデータとパリティデータを読み出す。そして、アレイコントローラ200は、ステップS1004において、これら読み出した全てのデータの排他的論理和を取ることにより、読み出しが失敗したデータを復元する。
When performing the data restoration processing, as shown in FIG. 10, the
これに対し、上記ステップS1002において、データが格納されているブロックが発見されないと判定された場合、ステップS1005に進む。アレイコントローラ200は、ステップS1005において、上記読み出しが失敗したデータに対応するパリティデータが格納されているブロックを含むHDDのみにデータ読み出し命令を発行し、上記読み出しが失敗したデータに対応するパリティデータのみを読み出す。これは、上記読み出しが失敗したデータに対応するパリティデータが、上記読み出しが失敗したデータと同じ値を有するからである。そして、アレイコントローラ200は、上記読み出されたパリティデータを上記読み出しが失敗したデータとすることにより、読み出しに失敗したデータの復元を行う。
On the other hand, if it is determined in step S1002 that a block storing data is not found, the process proceeds to step S1005. In step S1005, the
例えば、図7の状態において、データD0の読み出しが失敗した場合、データD0と同一ストライプS0上にあるデータD1とパリティデータP0が読み出され、
D0=D1 xor P0
の演算が行われる。この演算により、読み出しが失敗したデータD0の復元が行われることになる。
For example, in the state of FIG. 7, when reading of data D0 fails, data D1 and parity data P0 on the same stripe S0 as data D0 are read,
D0 = D1 xor P0
Is calculated. By this calculation, the data D0 that has failed to be read is restored.
また、データD2の読み出しが失敗した場合、同一ストライプS1上に格納されているデータとしては、データD2のみであるので、パリティデータP1が読み出される。そして、
D2=P1
の演算により、データD2の復元が行われることになる。
Further, when the reading of the data D2 fails, since the data D2 is the only data stored on the same stripe S1, the parity data P1 is read. And
D2 = P1
Thus, the data D2 is restored.
図10を用いて説明したデータ復元処理に代わるデータ復元処理として、図11のフローチャートで示すデータ復元処理を採用することも可能である。この代替のデータ復元処理について図11を参照しながら説明する。図11は図10のデータ復元処理に代わる他のデータ復元処理の手順を示すフローチャートである。 As a data restoration process that replaces the data restoration process described with reference to FIG. 10, the data restoration process shown in the flowchart of FIG. 11 may be employed. This alternative data restoration process will be described with reference to FIG. FIG. 11 is a flowchart showing the procedure of another data restoration process instead of the data restoration process of FIG.
この代替データ復元処理が適用されるディスクアレイ300に対しては、フォーマット時に、RAID4またはRAID5として使用する全てのブロックに「0」が書き込まれている。この代替データ復元処理においては、図11に示すように、まず、アレイコントローラ200が、ステップS1101において、読み出しが失敗したデータを格納するブロックを含むHDDを除く、残り全てのHDDにデータ読み出し命令を発行する。これにより、上記読み出しが失敗したデータが格納されているブロックと同一のストライプ上にある他の全てのブロックに格納された値を読み出す。そして、アレイコントローラ200は、ステップS1102において、上記他の全てのブロックから読み出された値の排他的論理和を取ることにより、読み出しが失敗したデータを復元する。すなわち、このデータ復元処理は、図10に示すデータ復元処理のように、格納状態テーブル203aを参照して、読み出しが失敗したデータの格納されているブロックと同一ストライプ上において、有効なデータが格納されているブロックを探索する処理を行うことなく、読み出しが失敗したデータを復元することができる。
For the
例えば、図7の状態において、データD0の読み出しが失敗した場合、データD0が格納されているブロックと同一ストライプS0上にある他の全てのブロックに格納された値、すなわち、データD1、HDD303上の「0」とパリティデータP0が読み出され、
D0=D1 xor ‘0’ xor P0
の演算(この演算の結果はD1 xor P0と同値である)が行われる。この演算により、読み出しが失敗したデータD0の復元が行われる。
For example, in the state of FIG. 7, when reading of data D0 fails, the values stored in all other blocks on the same stripe S0 as the block storing data D0, that is, data D1, on
D0 = D1 xor '0' xor P0
(The result of this calculation is the same value as D1 xor P0). By this calculation, data D0 that has failed to be read is restored.
また、データD2の読み出しが失敗した場合も同様に、データD2が格納されているブロックと同一ストライプS1上にある他の全てのブロックに格納された値、すなわち、HDD302上の「0」、HDD303上の「0」とパリティデータP1が読み出され、
D2=‘0’ xor ‘0’ xor P1
の演算(この演算の結果はP1と同値である)が行われる。これにより、読み出しが失敗したデータD2の復元が行われる。
Similarly, when the reading of the data D2 fails, the values stored in all other blocks on the same stripe S1 as the block storing the data D2, that is, “0” on the
D2 = '0' xor '0' xor P1
(The result of this calculation is the same value as P1). As a result, the data D2 that has failed to be read is restored.
以上説明したように、本実施の形態によれば、RAID4またはRAID5にて構成されたディスクアレイ300へのデータの書き込みにおいて、リードモディファイライト動作が発生せず、ライトペナルティが解消される。これにより、データ書き込み速度を向上させることが可能となる。
As described above, according to the present embodiment, a read-modify-write operation does not occur in writing data to the
(第2の実施の形態)
次に、本発明の第2の実施の形態について図12および図13を参照しながら説明する。図12は本発明の第2の実施の形態に係るディスクアレイ装置におけるブロック割り当て・パリティデータ生成処理の手順を示すフローチャートである。図13は本発明の第2の実施の形態におけるデータ書き込み時のディスクアレイ、データ格納状態テーブル、およびLBA−ディスクアレイ・ブロック変換テーブルのぞれぞれの状態を示す図である。
(Second Embodiment)
Next, a second embodiment of the present invention will be described with reference to FIGS. FIG. 12 is a flowchart showing a procedure of block allocation / parity data generation processing in the disk array device according to the second embodiment of the present invention. FIG. 13 is a diagram showing the states of the disk array, the data storage state table, and the LBA-disk array / block conversion table at the time of data writing in the second embodiment of the present invention.
本実施の形態は、上記第1の実施の形態と異なるブロック割り当て・パリティデータ生成処理を行う。ここで、図12中、図3と同じ符号が付してあるステップは、図3の同符号のステップと同様の処理を行うことを意味する。 In the present embodiment, block allocation / parity data generation processing different from that of the first embodiment is performed. Here, in FIG. 12, the steps denoted by the same reference numerals as those in FIG. 3 mean that the same processing as the steps having the same reference numerals in FIG. 3 is performed.
アレイコントローラ200は、ブロック割り当て処理において、まずステップS1201において、ホスト装置100から受領したデータ書き込み命令を解析する。続くステップS1202において、上記データ書き込み命令がストリーミング命令であるか否かを判定する。ここで、上記データ書き込み命令がストリーミング命令である場合、上記第1の実施の形態と同じブロック割り当て・パリティデータ生成処理すなわちステップS301〜S303が実行される。
In the block allocation process, the
ここで、ストリーミング命令とは、標準的なデータ・インテグリティ・クリティカルな命令というよりも、むしろタイム・クリティカルなデータ転送に関する命令ということを意味している。例えば、ストリーミング命令は、HDDのAV(Audio Visual/Audio Video)タイプの応用におけるストリーム要求を保証するような命令である。さらに具体的には、ATA/ATAPI-7(AT Attachiment with Packet Interface-7) Working Draft Revision 3c において、Streaming feature set中にWRITE STREAM PIO、WRITE STREAM DMAとして規定される命令などである。 Here, the streaming instruction means an instruction relating to time critical data transfer rather than a standard data integrity critical instruction. For example, the streaming command is a command that guarantees a stream request in an AV (Audio Visual / Audio Video) type application of the HDD. More specifically, in ATA / ATAPI-7 (AT Attachiment with Packet Interface-7) Working Draft Revision 3c, there are instructions defined as WRITE STREAM PIO and WRITE STREAM DMA in the streaming feature set.
上記ステップS1202において上記データ書き込み命令がストリーミング命令でないと判定された場合、アレイコントローラ200は、RAID4またはRAID5にて構成されたディスクアレイにおいて従来から一般的に行われているように、ブロックを割り当て、パリティデータを生成する。すなわち、アレイコントローラ200は、ステップS1203〜S1204において、変換テーブル203bを参照して、ホスト装置100から指定されたLBAに対応するブロックを探し出す。
If it is determined in step S1202 that the data write command is not a streaming command, the
但し、ホスト装置100から指定されたLBAに対応するブロックが存在しない場合(ステップS1204)、アレイコントローラ200は、ステップS1205において、格納状態テーブル203aを参照してデータが格納されていないブロックを探し出す。そして、アレイコントローラ200は、ステップS302において、格納状態テーブル203aと変換テーブル203bを更新することによって、ディスクアレイ300の構成に基づいて再構成したデータにディスクアレイ300上のブロックを割り当てる。
However, if there is no block corresponding to the LBA designated by the host device 100 (step S1204), the
次いで、アレイコントローラ200は、必要であれば、ステップS1206において、従来技術と同様の方法で、HDD301〜304から書き込み先ブロックに格納された旧データと上記旧データに対応する旧パリティデータを読み出し、新しいパリティデータを生成する。
Next, if necessary, the
例えば図7の状態において、ホスト装置100から、LBA=L2への1ブロック分のサイズを有するデータD7の書き込み命令、すなわちLBA=L2への上書き命令が発行されると、ディスクアレイ300は、図13(a)に示す状態になる。
For example, in the state of FIG. 7, when the
アレイコントローラ200は、上記書き込み命令を受領すると、上記書き込み命令を解析し、上記書き込み命令がストリーミング命令であるか否かを判別する。ここで、上記書き込み命令がストリーミング命令である場合、アレイコントローラ200は、上記第1の実施の形態において図8を用いて説明したのと同様に動作する。
Upon receiving the write command, the
これに対し、上記書き込み命令がストリーミング命令でない場合、アレイコントローラ200は、変換テーブル203bを参照して、LBA=L2に対応するブロックとして、(HDD番号,ストライプ番号)=(301,S1)を探し出す。続いて、上記ブロックに格納されていたデータD0と、上記ブロックに対応するパリティデータP1がそれぞれHDD301、HDD303から読み出され、新たなパリティデータP1’が
P1’=D0 xor D7 xor P1
に基づいて生成される。そして、データD7がHDD301に、パリティデータP0’がHDD304にそれぞれ書き込まれる。
On the other hand, when the write command is not a streaming command, the
Is generated based on Then, the data D7 is written to the
本実施の形態においては、アレイコントローラ200が、ホスト装置100からデータ書き込み命令を受領する度に、上記データ書き込み命令の属性を判別し、ブロック割り当て・パリティー生成方法を選択するものとした。これに限らず、ホスト装置100がアレイコントローラ200のブロック割り当て・パリティー生成方法を選択する命令を用意し、データ書き込み命令をアレイコントローラ200に発行する前に、予め上記ブロック割り当て・パリティー生成方法選択命令を発行することにより、アレイコントローラ200のブロック割り当て・パリティー生成方法を選択する形態を採用することも可能である。
In the present embodiment, every time the
以上、本実施の形態によれば、RAID4またはRAID5にて構成されたディスクアレイ300へのデータの書き込みにおいて、ホスト装置100が発行したデータ書き込み命令の属性に基づいて、書き込み動作を変えることにより、データ書き込み速度を向上させることが可能となるとともに、ディスクアレイ300の容量を効率的に利用することが可能となる。
As described above, according to the present embodiment, when data is written to the
(第3の実施の形態)
次に、本発明の第3の実施の形態について図14を参照しながら説明する。図14は本発明の第3の実施の形態に係るディスクアレイ装置におけるブロック割り当て・パリティデータ生成処理の手順を示すフローチャートである。
(Third embodiment)
Next, a third embodiment of the present invention will be described with reference to FIG. FIG. 14 is a flowchart showing a procedure of block allocation / parity data generation processing in the disk array device according to the third embodiment of the present invention.
本実施の形態は、上記第2の実施の形態と異なるブロック割り当て・パリティー生成方法選択処理を行う。そこで、本実施の形態においては、上記第2の実施の形態と異なる部分を中心に説明する。ここで、図14中、図3および図12と同じステップには、同一の符号が付されている。 In the present embodiment, block allocation / parity generation method selection processing different from that of the second embodiment is performed. Therefore, in the present embodiment, a description will be given centering on differences from the second embodiment. Here, in FIG. 14, the same steps as those in FIGS. 3 and 12 are denoted by the same reference numerals.
ブロック割り当て処理においてアレイコントローラ200は、図14に示すように、まずステップS1401において、ホスト装置100から受領したデータ書き込み命令を解析する。続いて、アレイコントローラ200は、ステップS1402において、上記データ書き込み命令の指定するデータ書き込み先LBAが高速書き込み領域であるか否かを判定する。ここで、上記データ書き込み命令の指定するデータ書き込み先LBAが高速書き込み領域である場合、上記第1の実施の形態と同じブロック割り当て・パリティデータ生成処理すなわちステップS301〜S303が実行される。
In the block allocation process, the
但し、ここで、ホスト装置100は、ディスクアレイ300が高速データ書き込み領域と通常データ書き込み領域に分割され、LBAの指定により一方の領域を選択することができることを既知であるものとする。しかし、実際には、ディスクアレイ300が予め上記のように物理的に領域分割されている必要はない。
However, here, the
上記ステップS1402において、上記データ書き込み命令の指定するデータ書き込み先LBAが通常書き込み領域でないと判定された場合、第2の実施の形態で説明したステップS1203〜S1206が実行される。 If it is determined in step S1402 that the data write destination LBA specified by the data write instruction is not a normal write area, steps S1203 to S1206 described in the second embodiment are executed.
以上、本実施の形態によれば、RAID4またはRAID5にて構成されたディスクアレイ300へのデータの書き込みにおいて、ホスト装置100が発行したデータ書き込み命令の指定するデータ書き込み先LBAに基づいて、書き込み動作を変える。これにより、データ書き込み速度を向上させることが可能となるとともに、ディスクアレイ300の容量を効率的に使用することが可能となる。
As described above, according to the present embodiment, in the data write to the
(第4の実施の形態)
次に、本発明の第4の実施の形態について図15〜図17を参照しながら説明する。図15は本発明の第4の実施の形態に係るディスクアレイ装置におけるデータ消去処理の手順を示すフローチャートである。図16は本発明の第4の実施の形態におけるデータ消去処理実行前のディスクアレイ、データ格納状態テーブル、およびLBA−ディスクアレイ・ブロック変換テーブルのぞれぞれの状態を示す図である。図17は本発明の第4の実施の形態におけるデータ消去処理実行後のディスクアレイ、データ格納状態テーブル、およびLBA−ディスクアレイ・ブロック変換テーブルのぞれぞれの状態を示す図である。
(Fourth embodiment)
Next, a fourth embodiment of the present invention will be described with reference to FIGS. FIG. 15 is a flowchart showing a procedure of data erasure processing in the disk array device according to the fourth embodiment of the present invention. FIG. 16 is a diagram showing the states of the disk array, the data storage state table, and the LBA-disk array / block conversion table before execution of the data erasing process according to the fourth embodiment of the present invention. FIG. 17 is a diagram showing the states of the disk array, the data storage state table, and the LBA-disk array / block conversion table after execution of the data erasing process according to the fourth embodiment of the present invention.
本実施の形態は、上記第1〜第3の実施の形態のようにして、ディスクアレイ300に書き込まれたデータのうち、所定の保存時間を超過したデータを消去する処理を行う。
In the present embodiment, as in the first to third embodiments, processing for erasing data that has exceeded a predetermined storage time among data written to the
ディスクアレイ300に書き込まれたデータのうち、所定の保存時間を超過したデータを消去する際、図15に示すように、アレイコントローラ200は、ステップS1501において、格納状態テーブル203cを参照する。ここで、格納状態テーブル203cには、ストライプ毎に、そのストライプを構成するブロックに最新のデータが書き込まれた時間が記録されている。この最新データ書き込み時間は、アレイコントローラ200内のタイマ回路(図示せず)により計測され、上記ストライプを構成するブロックへのデータ書き込み時に更新される。
When erasing data that has exceeded a predetermined storage time from data written to the
次いで、アレイコントローラ200は、ステップS1502〜S1503、ステップS1507〜S1508において、データが格納されているストライプを探し出す。そして、データが格納されているストライプがあると、アレイコントローラ200は、ステップS1504〜S1505において、上記ストライプの最新データ書き込み時間を、所定のデータ保存時間と比較し、この比較結果に応じて、保存期限が超過しているか否かを判定する。ここで、上記最新データ書き込み時間が上記データ保存時間以前の時間を示すと、アレイコントローラ200は、保存期限が超過していると判定する。上記データ保存時間は、例えば、HDD301〜304またはその他の不揮発性記憶媒体に記憶されており、データ消去処理時に、RAM203上に呼び出される。
Next, the
保存期限が超過している場合、アレイコントローラ200は、ステップS1506において、格納状態テーブル203cと変換テーブル203bを更新することにより、格納状態テーブル203cと変換テーブル203b上から上記ストライプ上のデータの存在を消去する。また、例えば、上記ストライプを構成するすべてのブロックに「0」を書き込むなどして、上記ストライプを初期化するようにしてもよい。
If the storage time limit has been exceeded, the
次に、例えば図16に示すようにディスクアレイ300にデータが書き込まれているとし、書き込まれたデータのうち、所定の保存時間を超過したデータを消去する場合について説明する。ここで、データ保存時間は50日とする。
Next, for example, assuming that data is written in the
アレイコントローラ200は、格納状態テーブル203cを参照し、データが格納されているストライプとして、まずストライプS0を探し出す。このストライプS0に関しては、最新データ書き込み時間40日4時間18分(40:04:18と表記)がデータ保存時間50日以前の時間を示しているので、格納状態テーブル203cのストライプ番号S0の列が初期状態(図4を参照)に戻される(図17を参照)。また、変換テーブル203b上のストライプ番号S0が記録されている列、すなわち(LBA,HDD番号,ストライプ番号)=(L0,301,S0)、(L1、302S0)が削除される(図17を参照)。
The
次いで、データが格納されているストライプとして、ストライプS1が探し出される。このストライプS1に関しては、最新データ書き込み時間40日4時間20分が所定データ保存時間50日以前の時間を示しているので、格納状態テーブル302cのストライプS1に関する部分は初期状態に戻される(図17を参照)。但し、変換テーブル203bには、ストライプ番号S1が記録されている列はないので、変換テーブル203bの書き換えは行われない(図17を参照)。
Next, the stripe S1 is found as a stripe in which data is stored. Regarding the stripe S1, since the latest data writing time 40
次いで、データの格納されているストライプとして、ストライプS2が探し出される。このストライプS2に関しては、最新データ書き込み時間51日12時間8分が所定データ保存期限50日以降の時間を示しているので、格納状態テーブル302cおよび変換テーブル203bの書き換えは行われない(図17を参照)。以降、同様に、データが格納されているストライプが探し出され、同様の処理が行われる。 Next, the stripe S2 is found as a stripe in which data is stored. Regarding the stripe S2, since the latest data writing time 51 days 12 hours 8 minutes indicates the time after the predetermined data storage deadline 50 days, the storage state table 302c and the conversion table 203b are not rewritten (see FIG. 17). reference). Thereafter, similarly, a stripe in which data is stored is found and the same processing is performed.
上記データ消去処理は、アレイコントローラ200が所定のタイミング、例えば、ホスト装置100からアクセスがないとき、所定時間経過時、電源投入時などに行うようにしてもよい。また、ホスト装置100がアレイコントローラ200に上記データ消去処理を行わせる命令を用意し、アレイコントローラ200がホスト装置100から上記データ消去命令を受領したときに行うようにしてもよい。
The data erasing process may be performed at a predetermined timing when the
以上、本実施の形態によれば、RAID4またはRAID5にて構成されたディスクアレイ300において、上記第1〜第3の実施の形態のようにしてディスクアレイ300に書き込まれたデータのうち、所定の保存時間を超過したデータを消去する。これにより、ディスクアレイ300の容量を効率的に使用することが可能となる。
As described above, according to the present embodiment, in the
(第5の実施の形態)
次に、本発明の第5の実施の形態について図18および図19を参照しながら説明する。図18は本発明の第5の実施の形態に係るディスクアレイ装置におけるデータ消去処理の手順を示すフローチャートである。図19は本発明の第5の実施の形態におけるデータ消去処理実行後のディスクアレイ、データ格納状態テーブル、およびLBA−ディスクアレイ・ブロック変換テーブルのぞれぞれの状態を示す図である。
(Fifth embodiment)
Next, a fifth embodiment of the present invention will be described with reference to FIGS. FIG. 18 is a flowchart showing a procedure of data erasure processing in the disk array device according to the fifth embodiment of the present invention. FIG. 19 is a diagram showing a state of each of the disk array, the data storage state table, and the LBA-disk array / block conversion table after execution of the data erasing process according to the fifth embodiment of the present invention.
本実施の形態は、上記第4の形態に対して、第1〜第3の実施の形態のようにしてディスクアレイ300に書き込まれたデータのうち、未割り当てストライプに格納されているデータを消去する点で異なる。
In this embodiment, the data stored in the unallocated stripe is erased from the data written to the
アレイコントローラ200は、図18に示すように、ステップS1801において、変換テーブル203bを参照する。続いて、アレイコントローラ200は、ステップS1802において、未割り当てストライプ、すなわちホスト装置100が認識するLBAのいずれのブロックも割り当てられていないストライプを抽出する。
As shown in FIG. 18, the
次いで、アレイコントローラ200は、ステップS1803およびS1804において、抽出された未割り当てストライプについて、格納状態テーブル203cを参照し、データが格納されているか否かを判別する。そして、アレイコントローラ200は、ステップS1805において、上記ステップS1804の判別結果に基づいて未割り当てストライプにデータが格納されているか否かを判定する。ここで、未割り当てストライプにデータが格納されている場合、アレイコントローラ200は、ステップS1806において、格納状態テーブル203cを更新することにより、格納状態テーブル203a上から上記ストライプ上のデータの存在を消去する。また、このとき、例えば、上記ストライプを構成するすべてのブロックに「1」を書き込むなどして、上記ストライプを初期化するようにしてもよい。
Next, in steps S1803 and S1804, the
次いで、アレイコントローラ200は、ステップS1807において、全ての未割り当てストライプについて、上記S1803〜S1806の処理を実施したか否かを判別する。まだ全ての未割り当てストライプについて、上記処理が実施されていない場合、アレイコントローラ200は、ステップS1808において、まだ処理が実施されていない次の未割り当てストライプについての処理を開始する。
Next, in step S1807, the
上記ステップS1807において全ての未割り当てストライプについて処理を完了したと判別された場合、アレイコントローラ200は、データ消去処理を終了する。
If it is determined in step S1807 that the processing has been completed for all unallocated stripes, the
次に、例えば図8に示すような状態にあるディスクアレイ300に対して、未割り当てストライプに格納されているデータを消去する場合について説明する。
Next, for example, a case where data stored in an unallocated stripe is erased from the
アレイコントローラ200は、変換テーブル203bを参照し、未割り当てストライプとして、ストライプS0,S1,S5,…を抽出する。まず、ストライプS1について、格納状態テーブル203aを参照し、データが格納されているか否かの判別が行われる。ここでは、データが格納されているので、格納状態テーブル203aのストライプS1に関する部分が初期状態(図4を参照)に戻される(図19を参照)。続いて、ストライプS5について、格納状態テーブル203aを参照するが、データが格納されていないので、格納状態テーブル203aの書き換えは行われない(図19を参照)。以降、全ての未割り当てストライプについて同様の処理が行われる。
The
上記データ消去処理は、アレイコントローラ200が所定のタイミング、例えば、ホスト装置100からアクセスがないとき、所定時間経過時、電源投入時などに行われるようにしてもよい。または、ホスト装置100がアレイコントローラ200に上記データ消去処理を行わせる命令を用意し、アレイコントローラ200がホスト装置100から上記データ消去命令を受領したときに上記データ消去処理を行うようにしてもよい。
The data erasing process may be performed at a predetermined timing when the
以上、本実施の形態によれば、RAID4またはRAID5にて構成されたディスクアレイ300において、第1〜第3の実施の形態のようにしてディスクアレイ300に書き込まれたデータのうち、ホスト装置100が不要であると認識したデータを消去する。これにより、ディスクアレイ300の容量を効率的に使用することが可能となる。
As described above, according to the present embodiment, in the
100 ホスト装置
101 CPU
102 ROM
103 RAM
104 記憶装置I/F回路
200 アレイコントローラ
201 MPU
202 ROM
203 RAM
204 パリティー演算回路
205 ホスト装置I/F回路
206〜209 HDD I/F回路
300 ディスクアレイ
301〜304 HDD
100
102 ROM
103 RAM
104 Storage device I /
202 ROM
203 RAM
204 Parity
Claims (8)
前記記憶装置アレイ上に構成される複数の記憶単位を含む冗長グループのそれぞれに対応付けて、記憶単位毎のデータ格納の有無を示すデータ格納状態情報を記憶するデータ格納状態情報記憶手段と、
前記データ格納状態情報記憶手段を参照し、書き込みデータの記憶領域となる記憶単位の割り当てと、該書き込みデータに対応する冗長データの記憶領域となる記憶単位の割り当てとを行う記憶領域割り当て手段と、
前記書き込みデータに対応する冗長データを生成する冗長データ生成手段と、
前記書き込みデータと上記冗長データとをそれぞれ対応する前記記憶領域割り当て手段により割り当てられた記憶単位に書き込む手段とを備え、
前記記憶領域割り当て手段は、書き込みデータの記憶領域として、全ての記憶単位にデータが格納されていない冗長グループに含まれる記憶単位を割り当て、前記冗長データを書き込む領域として、前記書き込みデータを書き込む領域として割り当てられた記憶単位を含む冗長グループの他の記憶単位を割り当てることを特徴とするアレイ型記憶装置。 An array type storage device having a storage device array in which a plurality of storage devices are arrayed, and controlling access to the storage device array according to an instruction received from an external device,
Data storage state information storage means for storing data storage state information indicating the presence or absence of data storage for each storage unit in association with each of the redundancy groups including a plurality of storage units configured on the storage device array;
A storage area allocating unit that refers to the data storage state information storage unit and performs storage unit allocation as a storage area for write data and storage unit allocation as a redundant data storage area corresponding to the write data;
Redundant data generating means for generating redundant data corresponding to the write data;
Means for writing the write data and the redundant data to the storage units allocated by the corresponding storage area allocation means,
The storage area allocating means allocates a storage unit included in a redundancy group in which data is not stored in all storage units as a storage area for write data, and writes the write data as an area for writing the redundant data. An array type storage device characterized by assigning another storage unit of a redundancy group including the assigned storage unit.
前記有効命令を受領すると、前記記憶領域割り当て手段および前記冗長データ生成手段を有効化し、前記無効命令を受領すると、前記記憶領域割り当て手段および前記冗長データ生成手段を無効化する切換手段を備えることを特徴とする請求項1記載のアレイ型記憶装置。 The instruction received from the external device includes a valid instruction for validating the storage area allocation means and the redundant data generation means or an invalid instruction for invalidating the storage area allocation means and the redundant data generation means. ,
When the valid command is received, the storage area allocating unit and the redundant data generating unit are validated. When the invalid command is received, the storage area allocating unit and the redundant data generating unit are invalidated. The array type storage device according to claim 1, wherein:
前記データインテグリティクリティカルなデータ書き込み命令を受領すると、前記記憶領域割り当て手段および前記冗長データ生成手段を有効化し、前記タイムクリティカルなデータ書き込み命令を受領すると、前記記憶領域割り当て手段および前記冗長データ生成手段を無効化する切換手段を備えることを特徴とする請求項1記載のアレイ型記憶装置。 The command received from the external device includes a data integrity critical data write command or a time critical data write command,
When the data integrity critical data write command is received, the storage area allocation unit and the redundant data generation unit are enabled. When the time critical data write command is received, the storage area allocation unit and the redundant data generation unit are activated. 2. The array type storage device according to claim 1, further comprising switching means for invalidation.
前記記憶装置アレイ上に構成される複数の記憶単位を含む冗長グループのそれぞれに対応付けて、記憶単位毎にデータが格納された時間を記憶するデータ格納時間記憶手段と、
前記データ格納時間記憶手段を参照し、少なくとも1つの記憶単位にデータが格納されている冗長グループに対して、該データが格納されている記憶単位に対して記憶されている時間から現在までの経過時間と所定時間とを比較し、前記経過時間が前記所定時間を超過しているか否かを判別する所定時間超過判別手段と、
前記所定時間超過判別手段により前記経過時間が前記所定時間を超過していると判別されたデータが格納されている記憶単位に対応する前記データ格納状態情報記憶手段のデータ格納状態情報を、データが格納されていないことを示すデータ格納状態情報に書き換えるデータ格納状態情報書換え手段と
を備えることを特徴とする請求項1記載のアレイ型記憶装置。 A clock means for measuring time;
Data storage time storage means for storing the time at which data is stored for each storage unit in association with each of the redundant groups including a plurality of storage units configured on the storage device array;
Referring to the data storage time storage means, for a redundancy group in which data is stored in at least one storage unit, the time from the time stored for the storage unit storing the data to the present A predetermined time excess determining means for comparing a time with a predetermined time and determining whether or not the elapsed time exceeds the predetermined time;
The data storage state information of the data storage state information storage unit corresponding to the storage unit in which the data determined that the elapsed time exceeds the predetermined time by the predetermined time excess determination unit is stored in the data. 2. The array type storage device according to claim 1, further comprising data storage state information rewriting means for rewriting data storage state information indicating that the data is not stored.
前記アドレス対応情報記憶手段を参照し、前記データアクセス命令に含まれるデータアクセス先アドレスに対応する記憶単位が含まれていない冗長グループを探索するアドレス未対応冗長グループ探索手段と、
前記アドレス未対応冗長グループ探索手段により探し出された冗長グループの記憶単位のそれぞれに対応する前記データ格納情報記憶手段のデータ格納状態情報をデータが格納されていないことを示すデータ格納状態情報に書き換えるデータ格納状態情報書換え手段と
を備えることを特徴とする請求項1記載のアレイ型記憶装置。 Address correspondence information storage means for storing information associating a data access destination address included in a data access command received from the external device and a position of a storage unit on the storage device array;
An address non-corresponding redundant group search means for searching for a redundant group that does not include a storage unit corresponding to a data access destination address included in the data access instruction with reference to the address corresponding information storage means;
Rewrite the data storage status information of the data storage information storage means corresponding to each of the storage units of the redundant group found by the address uncorresponding redundant group search means to data storage status information indicating that no data is stored. 2. The array type storage device according to claim 1, further comprising data storage state information rewriting means.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005274413A JP2007087062A (en) | 2005-09-21 | 2005-09-21 | Array type storage device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005274413A JP2007087062A (en) | 2005-09-21 | 2005-09-21 | Array type storage device |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2007087062A true JP2007087062A (en) | 2007-04-05 |
Family
ID=37973989
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2005274413A Pending JP2007087062A (en) | 2005-09-21 | 2005-09-21 | Array type storage device |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2007087062A (en) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1976243A2 (en) | 2007-03-29 | 2008-10-01 | NTT DoCoMo, Inc. | Communication terminal and program |
JP2008293307A (en) * | 2007-05-25 | 2008-12-04 | Nippon Telegr & Teleph Corp <Ntt> | Distributed multimedia server system, multimedia information accumulation-delivery method |
JP2010282635A (en) * | 2010-07-09 | 2010-12-16 | Nippon Telegr & Teleph Corp <Ntt> | Distributed multimedia server system and multimedia information storage-distribution method therefor |
JP2011028314A (en) * | 2009-07-21 | 2011-02-10 | Fujitsu Ltd | Tally file generation program and method, and data restoration program and method |
JP2011076175A (en) * | 2009-09-29 | 2011-04-14 | Nec Corp | Storage device and data deletion method for the same |
JP2014137758A (en) * | 2013-01-17 | 2014-07-28 | Toshiba Corp | Storage device and store method |
-
2005
- 2005-09-21 JP JP2005274413A patent/JP2007087062A/en active Pending
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1976243A2 (en) | 2007-03-29 | 2008-10-01 | NTT DoCoMo, Inc. | Communication terminal and program |
JP2008293307A (en) * | 2007-05-25 | 2008-12-04 | Nippon Telegr & Teleph Corp <Ntt> | Distributed multimedia server system, multimedia information accumulation-delivery method |
JP4667419B2 (en) * | 2007-05-25 | 2011-04-13 | 日本電信電話株式会社 | Distributed multimedia server system and multimedia information storage and distribution method |
JP2011028314A (en) * | 2009-07-21 | 2011-02-10 | Fujitsu Ltd | Tally file generation program and method, and data restoration program and method |
JP2011076175A (en) * | 2009-09-29 | 2011-04-14 | Nec Corp | Storage device and data deletion method for the same |
JP2010282635A (en) * | 2010-07-09 | 2010-12-16 | Nippon Telegr & Teleph Corp <Ntt> | Distributed multimedia server system and multimedia information storage-distribution method therefor |
JP2014137758A (en) * | 2013-01-17 | 2014-07-28 | Toshiba Corp | Storage device and store method |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4744569B2 (en) | Recording method and reproducing method suitable for recording / reproducing AV data, recording drive and reproducing drive thereof, information recording system, information reproducing system, and information recording medium | |
JP4688584B2 (en) | Storage device | |
JP4859837B2 (en) | Information recording medium access device and data recording method | |
KR100644602B1 (en) | Method for driving remapping for flash memory and flash memory architecture thereto | |
JP4931810B2 (en) | FAT analysis for optimized sequential cluster management | |
JP4372134B2 (en) | Storage system with data comparison function | |
JP2008204041A (en) | Storage device and data arrangement control method | |
US7373477B2 (en) | Fragmentation executing method and storage device | |
JP2008015769A (en) | Storage system and writing distribution method | |
JP2007184015A (en) | Method for assigning track for disk device | |
JP2010020431A (en) | Storage system and method for changing storage capacity related to device designated by host device | |
JP2009087021A (en) | Storage device and data deduplication method | |
US7062605B2 (en) | Methods and structure for rapid background initialization of a RAID logical unit | |
US6272085B1 (en) | Data recording/reproducing method and device | |
JP2007193883A (en) | Data recording device and method, data reproducing device and method, and data recording and reproducing device and method | |
JP2007184021A (en) | Address assigning method, disk device, and data writing method | |
JP2007087062A (en) | Array type storage device | |
JP4012791B2 (en) | Sector rearrangement method of information recording medium and information storage device | |
JP4130808B2 (en) | Formatting method | |
JP2010237907A (en) | Storage device and recording method | |
JP5378604B2 (en) | Mainframe storage device to which Thin Provisioning is applied | |
US20110022774A1 (en) | Cache memory control method, and information storage device comprising cache memory | |
US7293193B2 (en) | Array controller for disk array, and method for rebuilding disk array | |
JP2010055247A (en) | Storage system and configuration management method | |
US11989457B2 (en) | System and method for performing data read-write operations in zoned storage devices |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
RD05 | Notification of revocation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7425 Effective date: 20070626 |