JP2018163450A - Data storage control device, data storage system, data storage method and program - Google Patents
Data storage control device, data storage system, data storage method and program Download PDFInfo
- Publication number
- JP2018163450A JP2018163450A JP2017059294A JP2017059294A JP2018163450A JP 2018163450 A JP2018163450 A JP 2018163450A JP 2017059294 A JP2017059294 A JP 2017059294A JP 2017059294 A JP2017059294 A JP 2017059294A JP 2018163450 A JP2018163450 A JP 2018163450A
- Authority
- JP
- Japan
- Prior art keywords
- data
- code
- written
- storage media
- divided
- 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
Landscapes
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
【課題】リテンションに伴うエラーについて、データ復旧を容易に行う。【解決手段】複数の記憶媒体それぞれの記憶領域を所定の領域に分割した分割領域それぞれに書き込まれたデータ対して、複数の記憶媒体間で第1の誤り検出符号を生成する水平符号生成部110と、分割領域それぞれに互いに異なるタイミングで書き込まれたデータ対して、複数の記憶媒体ごとに第2の誤り検出符号を生成する垂直符号生成部120と、水平符号生成部110が生成した第1の誤り検出符号と、垂直符号生成部120が生成した第2の誤り符号とのそれぞれを、分割領域のうちのデータが書き込まれていない分割領域に書き込む符号書き込み部130とを有する。【選択図】図1PROBLEM TO BE SOLVED: To easily recover data for an error caused by retention. SOLUTION: A horizontal code generation unit 110 that generates a first error detection code between a plurality of storage media for data written in each of the divided areas in which the storage areas of the plurality of storage media are divided into predetermined areas. The vertical code generation unit 120 that generates a second error detection code for each of the plurality of storage media and the first horizontal code generation unit 110 that generate the second error detection code for the data written in the divided regions at different timings. It has a code writing unit 130 that writes each of the error detection code and the second error code generated by the vertical code generating unit 120 into the divided area in which the data is not written. [Selection diagram] Fig. 1
Description
本発明は、データ記憶制御装置、データ記憶システム、データ記憶方法およびプログラムに関する。 The present invention relates to a data storage control device, a data storage system, a data storage method, and a program.
近年、SSD(Solid State Drive:Silicon Disc(シリコンディスク)、フラッシュメモリなどの不揮発性媒体を使用)は、記憶容量の増大に従って、HDD(Hard Disk Drive:磁気ディスク装置)を上回る物が市場に出てきている。今後のHDDの容量向上も想定されるが、SSDのビット単価がHDDのビット単価を下回ると予測されており、これまではビット単価が高価で、データ保存用途に用いられなかったSSDを、データ保存用のアーカイブに用いることが予想される。これらのアーカイブの用途では、アクセス特性が、追記(データを書き換えずに、書き込みデータは既存のデータに追加する形で書いていく)を行うことが特徴であり、書き換えの頻度が低い。また、アーカイブの用途には、書き込みを行った直後は読み込みが頻繁に行われるが、時間を経るに従い、読み込みの頻度が急激に低下し、古くに記憶されたデータほど読み込みが行われなくなるという特性も持つ。 In recent years, SSD (Solid State Drive: using non-volatile media such as a silicon disk, flash memory, etc.) has become more popular than HDDs (Hard Disk Drive: magnetic disk devices) as the storage capacity increases. It is coming. Although HDD capacity is expected to increase in the future, it is predicted that the SSD unit price will be lower than the HDD unit price. It is expected to be used for archive for preservation. The use of these archives is characterized in that access characteristics are additionally written (write data is written in the form of being added to existing data without rewriting data), and the frequency of rewriting is low. In addition, for the purpose of archiving, reading is frequently performed immediately after writing, but as the time passes, the frequency of reading decreases rapidly, and the older the data stored, the less the reading is performed. Also have.
また、SSDに使われているフラッシュメモリは、大容量化が著しい。しかしながら、フラッシュメモリは、小さなコンデンサに電荷を蓄積するとういう原理上、高密度化するに従い、電荷の蓄積量が少なくなり、長期間放置すると電荷が放電し、データが失われ易いという特性も持つ。この電荷の保持期間はリテンション時間と呼ばれ、数年から数十年の間の値を持つ。電荷の再蓄積を行うには、フラッシュメモリに対して、そのセル(電荷の蓄積の単位)に対して同じデータを上書きすることでリテンション時間はリセットされる。 Further, the flash memory used for the SSD has a large capacity. However, the principle of storing charge in a small capacitor is that flash memory has a characteristic that the amount of stored charge decreases as the density increases, and the charge is discharged when left for a long period of time, and data is easily lost. . This charge retention period is called retention time and has a value between several years and several decades. In order to re-accumulate the charge, the retention time is reset by overwriting the flash memory with the same data for the cell (unit of charge accumulation).
また、通常のSSDの利用方法(書き換えが発生する)では、WearLevelingと呼ばれる、媒体の書き込み量を媒体全体に平準化することで、フラッシュメモリのもう1つの欠点である、セルの書き込み寿命(書き込み回数が限られる)を延ばす方法がある。このWearLevelingが発生する条件では、セルへの書き込みの平準化を行うために、書き込まれて時間の経過したセルを優先的に書き直す。そのため、リテンションに関する問題(データの消失)は非常に発生しにくい。しかし、アーカイブの用途のように、追記がほとんどの場合では書き込み回数は既に平準化(1回)された状態であるため、WearLevelingのアルゴリズムは動作せず、古くに記憶されたデータが書き込まれたセルの更新は行われず、セルのデータの消失が発生するおそれがある。 Further, in a normal SSD usage method (where rewriting occurs), the level of cell writing, which is another drawback of flash memory, is called Leveling, which is another level of flash memory. There is a method of extending the number of times). Under the condition in which WearLeveling occurs, a cell that has been written and has elapsed time is preferentially rewritten in order to level the writing to the cell. Therefore, problems related to retention (data loss) are very unlikely to occur. However, as in the case of archiving, in most cases, the number of writes is already leveled (one time), so the WearLeveling algorithm does not work and the data stored in the old days is written. The cell is not updated, and there is a possibility that data in the cell may be lost.
これまでのRAIDやそれに類する冗長化手法は、ほぼ同時期にそれぞれのSSDやフラッシュメモリの記憶素子単位同士のデータで冗長化が行われる。そのため、ほぼ同時期にデータの消失が発生する可能性が高い。これは、既存のRAIDの手法だと、冗長化が行われたSSDやフラッシュメモリで同時にデータが消失する可能性があることを意味している。これにより、RAID等で設定された冗長度を超えて、データの再現が出来ない可能性が高い。これは、フラッシュメモリを使ったSSDのようなリテンションに伴うデータ消失に対して、既存のRAIDでは、データの保護が行えないことを意味している。これは、アーカイブデータのように、一度書き込まれると、アクセスが殆ど発生しないような用途に対してはデータ保護の手段としては意味をなさない。 In conventional RAID and similar redundancy techniques, redundancy is performed with data between storage element units of each SSD or flash memory at substantially the same time. Therefore, there is a high possibility that data loss will occur almost at the same time. This means that with the existing RAID method, there is a possibility that data may be lost simultaneously in a redundant SSD or flash memory. Thereby, there is a high possibility that the data cannot be reproduced beyond the redundancy set by RAID or the like. This means that existing RAID cannot protect data against data loss due to retention such as SSD using flash memory. This does not make sense as a means of data protection for an application where access is hardly generated once written, such as archive data.
ストレージ装置によっては、SSDやフラッシュメモリ(以下、記憶媒体と称する)を2次元に配列し、記憶媒体へのデータの配置を記憶媒体のエラー状況や、書き込み/Eraseの状況に基づいて配置の工夫を行い、記憶媒体の寿命などによるエラーに対するデータロストを防ぐ手段を講じる手法が考えられている(例えば、特許文献1〜3参照)。また、さらに記憶媒体の配置を3次元に構成し、parity等を用いてRAID構成を3重に行う方法が考えられている(例えば、非特許文献1参照。)。
Depending on the storage device, SSDs and flash memories (hereinafter referred to as storage media) are two-dimensionally arranged, and the arrangement of data on the storage media is determined based on the error status of the storage media and the write / erase status. And a method for taking measures to prevent data loss due to an error due to the life of the storage medium has been considered (for example, see
また、複数行複数列のデータにおいて、同一行についての水平パリティビットと、同一列についての垂直パリティビットとを用いるエラー検出方式が考えられている(例えば、特許文献4参照。)。 An error detection method using horizontal parity bits for the same row and vertical parity bits for the same column in data of a plurality of rows and columns is conceivable (see, for example, Patent Document 4).
しかしながら、特許文献1〜3および非特許文献1に記載された技術においては、parityを用いて保護されるデータの書き込みがほぼ同じ時期に行われ、リテンションによるエラーの発生に対してデータを保護しているとは言い難い。さらに、parityが2重、3重に行うことでデータロストの確率は減るが、リテンションによるエラーの対策がなされるとは言い難い。
However, in the techniques described in
また、特許文献4に記載された技術においては、水平パリティビットと垂直パリティビットとが揃わないと、そのデータを送信することができないという問題点がある。 Further, the technique described in Patent Document 4 has a problem that data cannot be transmitted unless the horizontal parity bits and the vertical parity bits are aligned.
このように、上述した技術においては、リテンションに伴うエラーについて、データ復旧を容易に行うことができないという問題点がある。 As described above, the above-described technique has a problem that data recovery cannot be easily performed for an error caused by retention.
本発明の目的は、上記課題を解決するデータ記憶制御装置、データ記憶システム、データ記憶方法およびプログラムを提供することにある。 An object of the present invention is to provide a data storage control device, a data storage system, a data storage method, and a program that solve the above-described problems.
本発明のデータ記憶制御装置は、
複数の記憶媒体それぞれの記憶領域を所定の領域に分割した分割領域それぞれに書き込まれたデータ対して、前記複数の記憶媒体間で第1の誤り検出符号を生成する水平符号生成部と、
前記分割領域それぞれに互いに異なるタイミングで書き込まれたデータ対して、前記複数の記憶媒体ごとに第2の誤り検出符号を生成する垂直符号生成部と、
前記水平符号生成部が生成した前記第1の誤り検出符号と、前記垂直符号生成部が生成した前記第2の誤り符号とのそれぞれを、前記分割領域のうちの前記データが書き込まれていない分割領域に書き込む符号書き込み部とを有する。
The data storage control device of the present invention
A horizontal code generator for generating a first error detection code between the plurality of storage media for data written in each of the divided areas obtained by dividing the storage area of each of the plurality of storage media into a predetermined area;
A vertical code generation unit that generates a second error detection code for each of the plurality of storage media for data written at different timings to each of the divided regions;
Each of the first error detection code generated by the horizontal code generation unit and the second error code generated by the vertical code generation unit is divided into portions in which the data is not written. A code writing unit for writing in the area.
また、本発明のデータ記憶システムは、
複数の記憶媒体と、
前記複数の記憶媒体それぞれの記憶領域を所定の領域に分割した分割領域それぞれに書き込まれたデータ対して、前記複数の記憶媒体間で第1の誤り検出符号を生成する水平符号生成部と、
前記分割領域それぞれに互いに異なるタイミングで書き込まれたデータ対して、前記複数の記憶媒体ごとに第2の誤り検出符号を生成する垂直符号生成部と、
前記水平符号生成部が生成した前記第1の誤り検出符号と、前記垂直符号生成部が生成した前記第2の誤り符号とのそれぞれを、前記分割領域のうちの前記データが書き込まれていない分割領域に書き込む符号書き込み部とを有する。
The data storage system of the present invention is
A plurality of storage media;
A horizontal code generator for generating a first error detection code between the plurality of storage media for data written in each of the divided areas obtained by dividing the storage area of each of the plurality of storage media into a predetermined area;
A vertical code generation unit that generates a second error detection code for each of the plurality of storage media for data written at different timings to each of the divided regions;
Each of the first error detection code generated by the horizontal code generation unit and the second error code generated by the vertical code generation unit is divided into portions in which the data is not written. A code writing unit for writing in the area.
また、本発明のデータ記憶方法は、
複数の記憶媒体それぞれの記憶領域を所定の領域に分割した分割領域それぞれに書き込まれたデータ対して、前記複数の記憶媒体間で第1の誤り検出符号を生成する処理と、
前記第1の誤り検出符号を、前記分割領域のうちの前記データが書き込まれていない分割領域に書き込む処理と、
前記分割領域それぞれに互いに異なるタイミングで書き込まれたデータ対して、前記複数の記憶媒体ごとに第2の誤り検出符号を生成する処理と、
前記第2の誤り符号を、前記分割領域のうちの前記データが書き込まれていない分割領域に書き込む処理とを行う。
Further, the data storage method of the present invention includes:
A process of generating a first error detection code between the plurality of storage media for data written in each of the divided areas obtained by dividing the storage area of each of the plurality of storage media into a predetermined area;
A process of writing the first error detection code in a divided area of the divided area where the data is not written;
A process of generating a second error detection code for each of the plurality of storage media for data written at different timings to each of the divided areas;
A process of writing the second error code in a divided area of the divided area where the data is not written is performed.
また、本発明のプログラムは、
コンピュータに実行させるためのプログラムであって、
複数の記憶媒体それぞれの記憶領域を所定の領域に分割した分割領域それぞれに書き込まれたデータ対して、前記複数の記憶媒体間で第1の誤り検出符号を生成する手順と、
前記第1の誤り検出符号を、前記分割領域のうちの前記データが書き込まれていない分割領域に書き込む手順と、
前記分割領域それぞれに互いに異なるタイミングで書き込まれたデータ対して、前記複数の記憶媒体ごとに第2の誤り検出符号を生成する手順と、
前記第2の誤り符号を、前記分割領域のうちの前記データが書き込まれていない分割領域に書き込む手順とを実行させる。
The program of the present invention is
A program for causing a computer to execute,
A procedure for generating a first error detection code between the plurality of storage media for data written in each of the divided areas obtained by dividing the storage area of each of the plurality of storage media into a predetermined area;
Writing the first error detection code in a divided area of the divided area where the data is not written;
A procedure for generating a second error detection code for each of the plurality of storage media for data written at different timings to each of the divided regions;
And a step of writing the second error code in a divided area of the divided area where the data is not written.
以上説明したように、本発明においては、リテンションに伴うエラーについて、データ復旧を容易に行うことができる。 As described above, in the present invention, data recovery can be easily performed for an error caused by retention.
以下に本発明の実施の形態について図面を参照して説明する。
(第1の実施の形態)
図1は、本発明のデータ記憶制御装置の第1の実施の形態を示す図である。本形態におけるデータ記憶制御装置100は図1に示すように、水平符号生成部110と、垂直符号生成部120と、符号書き込み部130とを有する。なお、図1には、本形態におけるデータ記憶制御装置100が具備する構成要素のうち、本実施の形態に関わる主要な構成要素の一例を示す。
Embodiments of the present invention will be described below with reference to the drawings.
(First embodiment)
FIG. 1 is a diagram showing a first embodiment of a data storage control device of the present invention. As shown in FIG. 1, the data storage control device 100 in this embodiment includes a horizontal
水平符号生成部110は、複数の記憶媒体それぞれの記憶領域を所定の領域に分割した分割領域それぞれに書き込まれたデータ対して、複数の記憶媒体間で第1の誤り検出符号を生成する。
The horizontal
垂直符号生成部120は、分割領域それぞれに互いに異なるタイミングで書き込まれたデータ対して、複数の記憶媒体ごとに第2の誤り検出符号を生成する。
The vertical
符号書き込み部130は、水平符号生成部110が生成した第1の誤り検出符号を、分割領域のうちのデータが書き込まれていない分割領域に書き込む。また、符号書き込み部130は、垂直符号生成部120が生成した第2の誤り符号を、分割領域のうちのデータが書き込まれていない分割領域に書き込む。
The
以下に、図1に示したデータ記憶制御装置100におけるデータ記憶方法について説明する。図2は、図1に示したデータ記憶制御装置100におけるデータ記憶方法を説明するためのフローチャートである。 Hereinafter, a data storage method in the data storage control device 100 shown in FIG. 1 will be described. FIG. 2 is a flowchart for explaining a data storage method in data storage control device 100 shown in FIG.
まず、水平符号生成部110は、複数の記憶媒体それぞれの記憶領域を所定の領域に分割した分割領域それぞれに書き込まれたデータ対して、複数の記憶媒体間で第1の誤り検出符号を生成する(ステップS1)。すると、符号書き込み部130は、水平符号生成部110が生成した第1の誤り検出符号を、分割領域のうちのデータが書き込まれていない分割領域に書き込む(ステップS2)。
First, the horizontal
また、垂直符号生成部120は、分割領域それぞれに互いに異なるタイミングで書き込まれたデータ対して、複数の記憶媒体ごとに第2の誤り検出符号を生成する(ステップS3)。すると、符号書き込み部130は、垂直符号生成部120が生成した第2の誤り符号を、分割領域のうちのデータが書き込まれていない分割領域に書き込む(ステップS4)。
In addition, the vertical
このように、データ記憶制御装置100は、複数の記憶媒体の水平方向および垂直方向について誤り検出符号を生成し、生成した誤り符号それぞれをデータが書き込まれていない分割領域に書き込む。そのため、リテンションに伴うエラーについて、データ復旧を容易に行うことができる。
(第2の実施の形態)
図3は、本発明のデータ記憶制御装置の第2の実施の形態を示す図である。図3には、本形態におけるデータ記憶制御装置が設けられたデータ記憶システムの一例を示す。図3に示したデータ記憶システムは、ホスト要求処理手段201と、配置マップ検索手段202と、配置決定手段203と、複数の記憶媒体204−1〜204−4とを有する。なお、図3には、記憶媒体が4つである形態を示しているが、その数は限定しない。
As described above, the data storage control device 100 generates error detection codes in the horizontal direction and the vertical direction of a plurality of storage media, and writes each generated error code in a divided area where data is not written. Therefore, data recovery can be easily performed for errors associated with retention.
(Second Embodiment)
FIG. 3 is a diagram showing a second embodiment of the data storage control device of the present invention. FIG. 3 shows an example of a data storage system provided with the data storage control device in this embodiment. The data storage system shown in FIG. 3 includes host request processing means 201, arrangement map search means 202, arrangement determination means 203, and a plurality of storage media 204-1 to 204-4. FIG. 3 shows an embodiment in which there are four storage media, but the number is not limited.
ホスト要求処理手段201は、上位装置であるホストコンピュータからの、読み込み、若しくは書き込みを行うためにコマンドを発行する。
The host
配置マップ検索手段202は、ホスト要求処理手段201から出力されてきたコマンドを用いて示されるアドレス(ホストアドレス)に該当するデータ領域の情報を検索する。
The arrangement
配置決定手段203は、配置マップ検索手段202が決定した、図4に示す管理テーブル上の情報を用いて、記憶媒体204−1〜204−4の記憶領域のどのデータ領域にデータを書き込むべきか判定を行う。また、配置決定手段203は、判定したデータ領域にデータを書き込む。
The
記憶媒体204−1〜204−4は、情報を記憶するシリコンディスクから構成された記憶媒体である。 The storage media 204-1 to 204-4 are storage media configured from silicon disks that store information.
図4は、本データ記憶システムが記憶媒体204−1〜204−4の記憶領域を管理するための管理テーブルのフォーマットの一例を示す図である。図4に示すように、管理テーブル300には、先頭ホストアドレス301と、消去済みフラグ302とが対応付けられて記憶されている。図4に示した管理テーブル300は、配置マップ検索手段202が検索を行うテーブルである。
FIG. 4 is a diagram showing an example of the format of a management table for the data storage system to manage the storage areas of the storage media 204-1 to 204-4. As shown in FIG. 4, in the management table 300, a
先頭ホストアドレス301は、ホストコンピュータからの読み書きのコマンドが送られる際に指定される、ホストアドレスの先頭アドレスを示すものである。消去済みフラグ302は、先頭ホストアドレス301から始まるデータ領域が消去済みであるかどうかを示すフラグである。先頭ホストアドレス301を開始アドレスとする記憶媒体204−1〜204−4上のデータ格納領域は、記憶媒体204−1〜204−4それぞれの記憶領域を所定の領域に分割した複数の分割領域から構成され、その分割領域毎に消去済みのフラグ302を持つものであっても良い。消去済みフラグ302の表現方法は、ビットマップで表現する方法など各種の表現方式を持つことが考えられる。
The
さらに、管理テーブル300中の先頭ホストアドレス301は昇順に配置されており、ある先頭ホストアドレス301から固定値(例えば、128kバイトなど)の領域を持つ。
Furthermore, the top host addresses 301 in the management table 300 are arranged in ascending order, and have a fixed value (for example, 128 kbytes) area from a certain
また、管理テーブル300で管理される、消去済みのデータ領域は、装置の初期化時後ホストからデータが転送され、実際にデータが、書き込まれるまで時間を要する場合がある。そのため、上述したように、リテンションによりデータの内容が変わる可能性がある。このため、初期化時に消去済みのデータ領域に記憶されている実データ(記憶媒体204−1〜204−4に書き込まれたデータ)を使ってパリティデータを生成すると、その後、第2のパリティによりデータの復旧を行う際に、初期化時のデータとは異なるデータを使ってデータの復旧が行われる為、正常なデータが復旧されない。そのため、初期化時のパリティの計算において、消去済みのデータ領域の実データを使うことはできない。そこで、本発明においては、消去済みのデータ領域については、固定データ列を仮想的に生成し、パリティデータの生成を行う。この固定データ列は、データ領域毎に一意に決められ、データ領域毎に異なっても良いし、装置毎に1つのものに決められていても良い。 In addition, the erased data area managed by the management table 300 may take time until data is transferred from the host after the device is initialized and the data is actually written. Therefore, as described above, there is a possibility that the contents of data may change due to retention. For this reason, when parity data is generated using actual data (data written to the storage media 204-1 to 204-4) stored in the data area that has been erased at the time of initialization, the second parity is used thereafter. When performing data recovery, data recovery is performed using data different from the data at the time of initialization, so normal data cannot be recovered. Therefore, the actual data in the erased data area cannot be used in the calculation of parity at initialization. Therefore, in the present invention, a fixed data string is virtually generated for the erased data area, and parity data is generated. This fixed data string is uniquely determined for each data area, may be different for each data area, or may be determined for each apparatus.
図5は、図3に示したデータ記憶システムに用いられるデータ記憶制御装置の一形態を示す図である。図3に示したデータ記憶システムに用いられるデータ記憶制御装置101は図5に示すように、水平符号生成部111と、垂直符号生成部121と、符号書き込み部131と、データ書き込み部141とを有する。なお、図5には、本形態におけるデータ記憶制御装置101が具備する構成要素のうち、本実施の形態に関わる主要な構成要素の一例を示す。
FIG. 5 is a diagram showing an embodiment of a data storage control device used in the data storage system shown in FIG. The data storage control device 101 used in the data storage system shown in FIG. 3 includes a horizontal
水平符号生成部111は、複数の記憶媒体204−1〜204−4それぞれの記憶領域を所定の領域に分割した分割領域それぞれに書き込まれたデータ対して、複数の記憶媒体204−1〜204−4間で第1の誤り検出符号(パリティ符号)を生成する。水平符号生成部111は、複数の記憶媒体204−1〜204−4のアドレスが互いに同じ分割領域に書き込まれたデータに対して、第1の誤り検出符号を生成する。この詳細については、後述する。
The horizontal
垂直符号生成部121は、分割領域それぞれに互いに異なるタイミングで書き込まれたデータ対して、複数の記憶媒体ごとに第2の誤り検出符号(パリティ符号)を生成する。垂直符号生成部121は、複数の記憶媒体204−1〜204−4ごとの分割領域のうちの所定の分割領域に書き込まれたデータについて、第2の誤り検出符号を生成する。この詳細については、後述する。
The vertical
符号書き込み部131は、水平符号生成部111が生成した第1の誤り検出符号を、分割領域のうちのデータが書き込まれていない分割領域に書き込む。また、符号書き込み部131は、垂直符号生成部121が生成した第2の誤り符号を、分割領域のうちのデータが書き込まれていない分割領域に書き込む。符号書き込み部131は、水平符号生成部111が生成した第1の誤り検出符号を、アドレスが、第1の誤り検出符号の生成の対象であるデータが書き込まれていた分割領域のアドレスと同じアドレスの分割領域に書き込む。
The
データ書き込み部141は、複数の記憶媒体204−1〜204−4に所定の順序でデータを書き込む。
The
図5に示したデータ記憶制御装置101は、図3に示した配置決定手段203が担う機能である。なお、図5に示したデータ記憶制御装置101の機能は、図3に示した、ホスト要求処理手段201、配置マップ検索手段202および配置決定手段203に分担して割り当てるものであっても良い。 The data storage control device 101 shown in FIG. 5 is a function that the arrangement determining means 203 shown in FIG. 3 plays. The function of the data storage control device 101 shown in FIG. 5 may be assigned to the host request processing means 201, the arrangement map search means 202, and the arrangement determination means 203 shown in FIG.
以下に、本形態における全体の動作について説明する。図6は、本形態における全体の動作について説明するための図である。
[初期化]
まず、初期に記憶媒体への読み書き可能とするための処理について説明する。
Below, the whole operation | movement in this form is demonstrated. FIG. 6 is a diagram for explaining the overall operation in the present embodiment.
[Initialize]
First, a process for enabling read / write to a storage medium in the initial stage will be described.
初期化の時において、記憶媒体204−1〜204−4間のデータ冗長化処理を行う。これについては、図6に示した、A1の領域、A2の領域、A3の領域に記憶されているデータに対して、水平符号生成部111は、第1のパリティデータ(誤り検出符号)であるA parity部分を生成する。初期化時点では、全てのデータ領域(分割領域)のデータが消去済みであるため、パリティの計算は、上述したような固定データ列を対象に行われる。この場合は、水平符号生成部111は、A1の固定データ列、A2の固定データ列およびA3の固定データ列のXOR(排他論理)を算出し、その結果をA parityデータとする。そして、符号書き込み部131が、そのパリティデータを記憶媒体上のA parityの分割領域に書き込む。このとき、通常のデータを格納する分割領域(図6に示した例では、A1〜A3の分割領域)について書き込みは行わず、SSDあるいはフラッシュメモリが消去された状態を保つ。以下同様に、水平符号生成部111は、B1〜B3に対するパリティの生成を行い、符号書き込み部131が、B parityの分割領域にパリティデータの書き込みを行い、第1のRAID(Redundant Arrays of Inexpensive Disks)の処理を行う。
At the time of initialization, data redundancy processing between the storage media 204-1 to 204-4 is performed. For this, the horizontal
続いて、垂直符号生成部121は、第2のパリティデータ(誤り検出符号)(時間軸方向にずらしたパリティを格納する分割領域)の生成を行う。図6に示すように、A1とE1のように記憶媒体204−1の飛び飛びの分割領域に対してパリティデータの生成を行う。第1のパリティデータの生成と同様に、初期化時点では、全てのデータ領域(分割領域)のデータが消去済みであるため、パリティの計算は、上述したような固定データ列を対象に行われる。この場合は、垂直符号生成部121は、A1の固定データ列、E1の固定データ列等のXOR(排他論理)を算出し、パリティデータを生成し、「A1+E1+・・・のParity」のデータとする。このとき、第1のパリティデータの箇所があれば、垂直符号生成部121は、そのパリティデータを読み込み、XORの対象のデータとする。そして、符号書き込み部131は、図6に示す「A1+E1+・・・のParity」で示される領域にパリティデータを書き込む。
Subsequently, the vertical
水平符号生成部111は、記憶媒体204−1〜204−4の他の領域(図6に示した例ではB1、C1等)に対してもパリティデータの生成を順次行い、符号書き込み部131は、記憶媒体204−1〜204−4の領域に、生成したパリティデータを書き込む。第1のパリティ生成と同様に、このときも通常のデータを書き込む領域(分割領域)に対しては書き込みを行わず、SSDあるいはフラッシュメモリが消去された状態を保つ。
The horizontal
また、垂直符号生成部121は、記憶媒体204−2に対しても、同様にA2、E2についての第2のパリティデータの生成を行い、装置を構成する記憶媒体すべてに対して第2のパリティデータの生成を行う。符号書き込み部131は、生成したパリティデータの書き込みを行う。ここで、第2のパリティデータの生成対象には、第1のパリティデータも含まれる。
Similarly, the vertical
パリティ符号を用いた冗長化方式について記載を行ったが、ECC(Error Correction Code)などを用いた方式についても同様に適用可能である。 Although the redundancy system using the parity code has been described, the present invention can be similarly applied to a system using ECC (Error Correction Code) or the like.
また、図4に示した管理テーブル300の初期化が行われる。初期化時点においては、ホストから参照可能なすべてのデータ格納領域が、パリティ生成段階ではEraseされた状態であるため、消去済みフラグ302には全て消去済みのフラグを立てる。例えば、これについては、上述した構成で示したように、ビットマップなどを用いた表現方式をとることもできる。また、先頭ホストアドレス301については、それぞれ図6に示したA1およびA2に格納するデータのホスト側から指定されたアドレスの先頭アドレスを格納する。さらに、図6に示したA1等で示されるデータ格納領域について、固定長のデータ、配置も規則的に決定することが可能である場合については、先頭ホストアドレス301については省略可能である。この際には、第1のパリティデータの配置場所、第2のパリティデータの配置場所、ホストアドレスで示されるデータがどの記憶媒体のどの位置に格納されるか、テーブルなど用いずに一意的に決定できる手段を持てば良い。
[書き込み]
上位装置から書き込みのコマンドが発行され、ホスト要求処理手段201がコマンドを受け取ると、そのコマンドが示すホストアドレスについて、配置マップ検索手段202が管理テーブル300の先頭ホストアドレス301を検索する。配置マップ検索手段202が、書き込みコマンドが示すホストアドレスに該当する管理テーブル300を検索し、配置決定手段203が、消去済みフラグ302を消去済みのフラグを立てると同時に記憶媒体204−1〜204−4の該当箇所へのデータの書き込みを行う。実際の記憶媒体204−1〜204−4への書き込み手順を、図6を用いてさらに詳細に説明する。
Also, the management table 300 shown in FIG. 4 is initialized. At the time of initialization, all the data storage areas that can be referred to from the host are in an erased state in the parity generation stage, so that all erased flags are set in the erased
[writing]
When a write command is issued from the host device and the host
A1に対する書き込みがホストから行われると、配置マップ検索手段202が管理テーブル300の先頭ホストアドレス301を検索する。該当するアドレスが見つかると、配置決定手段203が管理テーブル300の消去済みフラグ302を落とし、書き込み済みに設定する。
When writing to A1 is performed from the host, the arrangement map search means 202 searches the
続いて、データ書き込み部141は、記憶媒体204−1のA1の箇所にデータを書き込む。また、水平符号生成部111は、A Parityのデータを読み出し、データとA1のデータとから新規のパリティデータの生成を行う。符号書き込み部131は、水平符号生成部111が生成したパリティデータをA Parityの領域に書き込む。このように、配置決定手段203は第1のパリティデータの生成と書き込みとを行う。
Subsequently, the
さらに、第2のパリティデータの生成を行うため、垂直符号生成部121は、記憶媒体204−1のE1と「A1+E1+・・・のparity」とを読み出し、ホストからデータを受信したA1のデータとXORを算出し、第2のパリティデータを生成する。符号書き込み部131は、垂直符号生成部121が生成したパリティデータを「A1+E1+・・・のparity」へ書き込む。こうして、配置決定手段203は第2のパリティの生成と書き込みとを完了する。
Further, in order to generate the second parity data, the vertical
このようなパリティデータの生成は、通常のRAID5やRAID6などと同じであり、ここでは詳細な説明は省略する。本形態では、ホストからのアドレスは順次、図6に示したA1→A2→A3→B1の順序にデータ格納の順序が決定される、そのため、アーカイブ用途のような追記を行う場合は、A1の書き込みが一番古く、A2、A3、B1の順序で随時新しいデータが格納される。そのため、第2のパリティデータで保護の対象となるデータは時間軸がずれたデータに対してのパリティ生成が可能となる。図6に示した例では、A1の書き込みのタイミングが一番古く、E1の書き込みのタイミングがその次という具合に時間軸のずれたデータに対して第2のパリティデータが生成される。 Generation of such parity data is the same as in normal RAID 5 and RAID 6, and detailed description thereof is omitted here. In this embodiment, the address from the host is sequentially determined in the order of data storage in the order of A1, A2, A3, and B1 shown in FIG. 6. Therefore, when additional writing such as archiving is performed, A1 Writing is the oldest, and new data is stored as needed in the order of A2, A3, and B1. For this reason, the data to be protected by the second parity data can generate parity for data whose time axis is shifted. In the example shown in FIG. 6, the second parity data is generated for data whose time axis is shifted such that the writing timing of A1 is the oldest and the writing timing of E1 is next.
さらに、上述した処理のシーケンスの中で、消去済みのデータ領域への書き込みを行う際には、配置決定手段203は、そのデータ領域のデータが消去できているかどうかを確認するために、データを一度読み出す。配置決定手段203は、そのデータ領域のデータが消去されていれば書き込みを行い、消去されていなければ消去を行った上で書き込みを行っても良い。また、別の方法として、配置決定手段203は、一度読み出すことなくそのデータ領域を消去した上で書き込んでも良い。
Furthermore, when writing to the erased data area in the above-described processing sequence, the
なお、A1〜A3およびA Parityを書き込む分割領域のアドレス(物理アドレス、論理アドレス)は、記憶媒体204−1〜204−4間で互いに同じものであっても良い。B1〜B3およびB Parityを書き込む分割領域のアドレス、C1〜C3およびC Parityを書き込む分割領域のアドレス、D1〜D3およびD Parityを書き込む分割領域のアドレス、E1〜E3およびE Parityを書き込む分割領域のアドレスについても同様である。
[読み出し]
上位装置から読み出しのコマンドが発行され、ホスト要求処理手段201がコマンドを受け取ると、そのコマンドが示すホストアドレスについて、記憶媒体204−1〜204−4上に該当するデータ読み出しを行い、ホストにデータを転送する。その際に、リテンションによるデータ消失が無いか判定を行う処理を設けても良い。配置決定手段203は、A1のデータの読み出しと同時にE1等の第2のパリティデータを生成するためのデータと「A1+E1+・・・のparity」の読み出しを行う。配置決定手段203は、A1、E1等のデータから生成したパリティと、「A1+E1+・・・のparity」とを比較する。配置決定手段203は、比較の結果、両者が一致していればホストにそのデータの転送を行い、一致していなければ、次に示されるデータ復旧を試みる。
Note that the addresses (physical addresses and logical addresses) of the divided areas in which A1 to A3 and A Parity are written may be the same among the storage media 204-1 to 204-4. The address of the divided area where B1 to B3 and B Parity are written, the address of the divided area where C1 to C3 and C Parity are written, the address of the divided area where D1 to D3 and D Parity are written, and the address of the divided area where E1 to E3 and E Parity are written The same applies to the address.
[reading]
When a read command is issued from the host device and the host request processing means 201 receives the command, the host address indicated by the command is read out on the storage media 204-1 to 204-4, and data is sent to the host. Forward. At that time, a process for determining whether there is data loss due to retention may be provided. The
以下に、図5に示したデータ記憶制御装置101におけるデータ記憶方法について説明する。図7は、図5に示したデータ記憶制御装置101におけるデータ記憶方法を説明するためのフローチャートである。 The data storage method in the data storage control device 101 shown in FIG. 5 will be described below. FIG. 7 is a flowchart for explaining a data storage method in the data storage control apparatus 101 shown in FIG.
データ書き込み部141が、記憶媒体204−1〜204−4の分割領域に所定の順序でデータを書き込む(ステップS11)。すると、水平符号生成部111は、記憶媒体204−1〜204−4それぞれの記憶領域を所定の領域に分割した分割領域それぞれに書き込まれたデータ対して、記憶媒体204−1〜204−4間で第1の誤り検出符号(パリティデータ)を生成する(ステップS12)。すると、符号書き込み部131は、水平符号生成部111が生成した第1の誤り検出符号を、分割領域のうちのデータが書き込まれていない分割領域に書き込む(ステップS13)。
The
また、垂直符号生成部121は、分割領域それぞれに互いに異なるタイミングで書き込まれたデータ対して、記憶媒体204−1〜204−4ごとに第2の誤り検出符号を生成する(ステップS14)。すると、符号書き込み部131は、垂直符号生成部121が生成した第2の誤り符号を、分割領域のうちのデータが書き込まれていない分割領域に書き込む(ステップS15)。
In addition, the vertical
以下に、本形態におけるデータ復旧の動作について説明する。
[データ復旧]
図8は、データの読み出しや書き込み時にエラーが発生した際の処理手順の一例を説明するための図である。
The data recovery operation in this embodiment will be described below.
[Data recovery]
FIG. 8 is a diagram for explaining an example of a processing procedure when an error occurs during reading or writing of data.
上位装置からのデータの読み出しにおいて、上述した第2のパリティデータを用いたパリティ照合、あるいは、読み出し時のSSDからのエラー、あるいはフラッシュメモリのエラー対策で設けられたECCなどの冗長化符号でのエラー、また、書き込み時のエラーが発生した際の処理手順について説明する。ここでは、図8に示したA1の分割領域にアクセスする際に、データの読み出し、または書き込みのエラーが発生したと仮定し、データ復旧の手順について説明する。 In reading data from the host device, the parity check using the second parity data described above, or an error from the SSD at the time of reading, or a redundant code such as ECC provided as a countermeasure against an error in the flash memory A processing procedure when an error or an error during writing occurs will be described. Here, it is assumed that a data read or write error has occurred when accessing the divided area A1 shown in FIG.
1つめの手順として、第1のパリティデータを用いてデータの復旧を行う手順について説明する。本手順は、単発での読み出しや書き込みにおいて、エラーが発生した場合に好適である。図8に示すように、A1での読み出し時またはアクセスでエラーが発生したとする。一般的なRAIDにおいては、エラーが発生した場合は、該当する記憶媒体が全て欠陥と見なし、記憶媒体全体に対してparityからのデータ生成を行う。一方、本発明のデータ記憶システムは、フラッシュメモリを用いたSSDやフラッシュメモリ自体のエラーを想定し、部分的なエラーの発生が多いとの前提でデータの復旧を試みる。すなわち、本発明のデータ記憶システムは、A1で上述したようなエラーが発生した場合に、A1のデータを復旧する際にA2,A3およびA Parityの読み出しを行い、A1のデータの再現を行い、A1への書き込みを行う。その際に、A1以外にA2,A3およびA Parityでエラーが発生した場合は、データ記憶システムは、第2のパリティを使用した手順を試みる。この際、データ記憶システムは、記憶媒体204−1のB1以降のデータ復旧動作は行わない。 As a first procedure, a procedure for recovering data using the first parity data will be described. This procedure is suitable when an error occurs during single reading or writing. As shown in FIG. 8, it is assumed that an error occurs during reading or access in A1. In a general RAID, when an error occurs, all corresponding storage media are regarded as defective, and data generation from parity is performed on the entire storage media. On the other hand, the data storage system of the present invention assumes an error in the SSD using the flash memory or the flash memory itself, and tries to recover the data on the assumption that many errors occur. That is, the data storage system of the present invention reads A2, A3, and A Parity when the A1 data is restored when the above-described error occurs in A1, and reproduces the A1 data. Write to A1. At this time, if an error occurs in A2, A3, and A Parity other than A1, the data storage system tries the procedure using the second parity. At this time, the data storage system does not perform the data recovery operation after B1 of the storage medium 204-1.
2つめの手順として、第2のパリティデータを用いてデータの復旧を試みる手順について説明する。本手順は、読み出しをアドレス順にシーケンシャルに行っている場合や読み出し時に第2のパリティデータの照合でエラーが発生した時などに好適である。処理としては、シーケンシャルの先読み動作で、記憶媒体204−1と記憶媒体204−2とに対して同時にデータの読み出しを行う場合等、複数の記憶媒体から同時にデータを読み出す場合を想定している。例えば、記憶媒体204−1のA1で読み出しエラーが検出され、記憶媒体204−2のA2で読み出しエラーが検出された場合に本手順が用いられる。エラーが検出されない場合は、上述した1つ目の手順を用いてデータの復旧を試みると良い。 As a second procedure, a procedure for attempting data recovery using the second parity data will be described. This procedure is suitable when reading is performed sequentially in the order of addresses or when an error occurs in collation of the second parity data during reading. As processing, it is assumed that data is simultaneously read from a plurality of storage media, such as when data is simultaneously read from the storage media 204-1 and 204-2 in a sequential read-ahead operation. For example, this procedure is used when a read error is detected at A1 of the storage medium 204-1 and a read error is detected at A2 of the storage medium 204-2. If no error is detected, it is preferable to attempt data recovery using the first procedure described above.
記憶媒体204−1のA1と、記憶媒体204−2のA2とでのエラー発生を検出するとリテンションによるエラー発生の可能性が高い。このとき、データ記憶システムは、E1等の「A1+E1+・・・のparity」を構成するA1以外のデータの読み込みと、「A1+E1+・・・のparity」のパリティの読み込みとを行い、これらのデータからA1のデータを再生成し、A1の領域に再び書き込む。この際、第2のパリティデータからデータを再生成する手順でエラーが発生した場合は、データ記憶システムは、2つ目の手順の第1のパリティデータを使用したデータの再生成を試みる。この再生成に成功すれば、データ記憶システムは、そのデータを該当する記憶媒体204−1の分割領域に書き込み、再度第2のパリティデータを用いたデータ再生成を試み、A1のデータの再現と書き戻しとを実行する。 When an error occurrence is detected in A1 of the storage medium 204-1 and A2 of the storage medium 204-2, there is a high possibility of an error due to retention. At this time, the data storage system performs reading of data other than A1 constituting “parity of A1 + E1 +...” Such as E1 and parity of “A1 + E1 +. The data of A1 is regenerated and written again in the area of A1. At this time, if an error occurs in the procedure for regenerating data from the second parity data, the data storage system attempts to regenerate data using the first parity data in the second procedure. If the regeneration is successful, the data storage system writes the data to the divided area of the corresponding storage medium 204-1, tries to regenerate the data using the second parity data again, and reproduces the data of A1. Perform a writeback.
このような復旧動作中に、管理テーブル300で示された、消去済みのデータ領域を読み込む際には、そのデータ領域で決められた固定データ列のデータを用いて復旧させる。
これらの復旧手順は並行して動作する他のアクセスでのエラー発生状況に基づいて選択を行い、適宜適切な処理方法を選択することで、リテンションによるエラーのデータ復旧が可能である。
During such a recovery operation, when an erased data area indicated by the management table 300 is read, the data is recovered using data of a fixed data string determined in the data area.
These recovery procedures can be selected based on the error occurrence status in other accesses that operate in parallel, and an appropriate data processing method can be selected to recover error data by retention.
このように、フラッシュメモリを利用したSSDあるいはフラッシュメモリのような記憶媒体間で、記憶媒体の故障に備えるRAID、あるいはRAIDに準ずる冗長化手段(Erasure Codingなど)に加え、異なる時間に記録されたデータ間でRAID、あるいはRAIDに準ずる冗長化手段を講ずる。これにより、リテンションに対するエラーに対してもデータの復旧が可能となる。 As described above, the data is recorded at different times between the storage media such as the SSD using the flash memory or the flash memory, in addition to the RAID prepared for the failure of the storage medium, or the redundancy means (such as Erasure Coding) according to the RAID. RAID or a redundancy means equivalent to RAID is taken between data. As a result, it is possible to recover the data even with respect to the retention error.
また、図6に示した構成をストレージ装置に適用した構成とすると、上述した第1のパリティデータを用いた冗長化処理をストレージ装置側で行い、第2のパリティデータを用いた冗長化処理を図6に示した記憶媒体204−1〜204−4の内部(SSDの内部処理)で行うことも考えられる。 Further, when the configuration shown in FIG. 6 is applied to the storage device, the redundancy processing using the first parity data described above is performed on the storage device side, and the redundancy processing using the second parity data is performed. It is also conceivable to perform it inside the storage media 204-1 to 204-4 shown in FIG. 6 (SSD internal processing).
本発明は、ストレージ装置に関し、特にフラッシュメモリなどを用いたSSD(シリコンディスク)、あるいはSSDを用いたストレージ装置、さらには、フラッシュメモリが内蔵された、コンピュータやサーバなどの、データ蓄積を行う装置への適用などが考えられる。 The present invention relates to a storage device, and more particularly, an SSD (silicon disk) using a flash memory or the like, or a storage device using an SSD, and a device for storing data, such as a computer or server, incorporating a flash memory. It is possible to apply to
以上、各構成要素に各機能(処理)それぞれを分担させて説明したが、この割り当ては上述したものに限定しない。また、構成要素の構成についても、上述した形態はあくまでも例であって、これに限定しない。 As described above, each function (process) is assigned to each component, but this assignment is not limited to the above. In addition, the configuration described above is merely an example, and the present invention is not limited to this.
上述したデータ記憶制御装置100,101それぞれに設けられた各構成要素が行う処理は、目的に応じてそれぞれ作製された論理回路で行うようにしても良い。また、処理内容を手順として記述したコンピュータプログラム(以下、プログラムと称する)をデータ記憶制御装置100,101それぞれにて読取可能な記録媒体に記録し、この記録媒体に記録されたプログラムをデータ記憶制御装置100,101それぞれに読み込ませ、実行するものであっても良い。データ記憶制御装置100,101それぞれにて読取可能な記録媒体とは、フロッピー(登録商標)ディスク、光磁気ディスク、DVD(Digital Versatile Disc)、CD(Compact Disc)、Blu−ray(登録商標) Discなどの移設可能な記録媒体の他、データ記憶制御装置100,101それぞれに内蔵されたROM(Read Only Memory)、RAM(Random Access Memory)等のメモリやHDD(Hard Disc Drive)等を指す。この記録媒体に記録されたプログラムは、データ記憶制御装置100,101それぞれに設けられたCPUにて読み込まれ、CPUの制御によって、上述したものと同様の処理が行われる。ここで、CPUは、プログラムが記録された記録媒体から読み込まれたプログラムを実行するコンピュータとして動作するものである。 The processing performed by each component provided in each of the data storage control devices 100 and 101 described above may be performed by a logic circuit that is produced according to the purpose. Further, a computer program (hereinafter referred to as a program) in which processing contents are described as a procedure is recorded on a recording medium readable by each of the data storage control devices 100 and 101, and the program recorded on the recording medium is subjected to data storage control. The devices 100 and 101 may be read and executed. The recording media readable by each of the data storage control devices 100 and 101 are a floppy (registered trademark) disk, a magneto-optical disk, a DVD (Digital Versatile Disc), a CD (Compact Disc), and a Blu-ray (registered trademark) Disc. In addition to a transferable recording medium such as, a ROM (Read Only Memory), a RAM (Random Access Memory), a HDD (Hard Disc Drive), or the like built in each of the data storage control devices 100 and 101. The program recorded on this recording medium is read by the CPU provided in each of the data storage control devices 100 and 101, and the same processing as described above is performed under the control of the CPU. Here, the CPU operates as a computer that executes a program read from a recording medium on which the program is recorded.
100,101 データ記憶制御装置
110,111 水平符号生成部
120,121 垂直符号生成部
130 符号書き込み部
141 データ書き込み部
201 ホスト要求処理手段
202 配置マップ検索手段
203 配置決定手段
204−1〜204−4 記憶媒体
300 管理テーブル
301 先頭ホストアドレス
302 消去済みフラグ
100, 101 Data
Claims (8)
前記分割領域それぞれに互いに異なるタイミングで書き込まれたデータ対して、前記複数の記憶媒体ごとに第2の誤り検出符号を生成する垂直符号生成部と、
前記水平符号生成部が生成した前記第1の誤り検出符号と、前記垂直符号生成部が生成した前記第2の誤り符号とのそれぞれを、前記分割領域のうちの前記データが書き込まれていない分割領域に書き込む符号書き込み部とを有するデータ記憶制御装置。 A horizontal code generator for generating a first error detection code between the plurality of storage media for data written in each of the divided areas obtained by dividing the storage area of each of the plurality of storage media into a predetermined area;
A vertical code generation unit that generates a second error detection code for each of the plurality of storage media for data written at different timings to each of the divided regions;
Each of the first error detection code generated by the horizontal code generation unit and the second error code generated by the vertical code generation unit is divided into portions in which the data is not written. A data storage control device comprising a code writing unit for writing in an area.
前記水平符号生成部は、前記複数の記憶媒体のアドレスが互いに同じ分割領域に書き込まれたデータに対して、前記第1の誤り検出符号を生成し、
前記符号書き込み部は、前記水平符号生成部が生成した前記第1の誤り検出符号を、前記アドレスが、前記第1の誤り検出符号の生成の対象であるデータが書き込まれていた前記分割領域のアドレスと同じアドレスの前記分割領域に書き込むデータ記憶制御装置。 The data storage control device according to claim 1,
The horizontal code generation unit generates the first error detection code for data in which addresses of the plurality of storage media are written in the same divided area,
The code writing unit includes the first error detection code generated by the horizontal code generation unit, the address of the divided region in which the data for which the first error detection code is generated is written. A data storage control device for writing in the divided area having the same address as the address.
前記垂直符号生成部は、前記複数の記憶媒体ごとの前記分割領域のうちの所定の分割領域に書き込まれたデータについて、前記第2の誤り検出符号を生成するデータ記憶制御装置。 The data storage control device according to claim 1 or 2,
The vertical code generation unit is a data storage control device that generates the second error detection code for data written in a predetermined divided area of the divided areas for each of the plurality of storage media.
前記複数の記憶媒体に所定の順序で前記データを書き込むデータ書き込み部を有するデータ記憶制御装置。 The data storage control device according to any one of claims 1 to 3,
A data storage control device comprising a data writing unit for writing the data in a predetermined order to the plurality of storage media.
前記複数の記憶媒体は、シリコンディスクであるデータ記憶制御装置。 In the data storage control device according to any one of claims 1 to 4,
The data storage control device, wherein the plurality of storage media are silicon disks.
前記複数の記憶媒体それぞれの記憶領域を所定の領域に分割した分割領域それぞれに書き込まれたデータ対して、前記複数の記憶媒体間で第1の誤り検出符号を生成する水平符号生成部と、
前記分割領域それぞれに互いに異なるタイミングで書き込まれたデータ対して、前記複数の記憶媒体ごとに第2の誤り検出符号を生成する垂直符号生成部と、
前記水平符号生成部が生成した前記第1の誤り検出符号と、前記垂直符号生成部が生成した前記第2の誤り符号とのそれぞれを、前記分割領域のうちの前記データが書き込まれていない分割領域に書き込む符号書き込み部とを有するデータ記憶システム。 A plurality of storage media;
A horizontal code generator for generating a first error detection code between the plurality of storage media for data written in each of the divided areas obtained by dividing the storage area of each of the plurality of storage media into a predetermined area;
A vertical code generation unit that generates a second error detection code for each of the plurality of storage media for data written at different timings to each of the divided regions;
Each of the first error detection code generated by the horizontal code generation unit and the second error code generated by the vertical code generation unit is divided into portions in which the data is not written. A data storage system having a code writing unit for writing in an area.
前記第1の誤り検出符号を、前記分割領域のうちの前記データが書き込まれていない分割領域に書き込む処理と、
前記分割領域それぞれに互いに異なるタイミングで書き込まれたデータ対して、前記複数の記憶媒体ごとに第2の誤り検出符号を生成する処理と、
前記第2の誤り符号を、前記分割領域のうちの前記データが書き込まれていない分割領域に書き込む処理とを行うデータ記憶方法。 A process of generating a first error detection code between the plurality of storage media for data written in each of the divided areas obtained by dividing the storage area of each of the plurality of storage media into a predetermined area;
A process of writing the first error detection code in a divided area of the divided area where the data is not written;
A process of generating a second error detection code for each of the plurality of storage media for data written at different timings to each of the divided areas;
A data storage method for performing a process of writing the second error code in a divided area of the divided area where the data is not written.
複数の記憶媒体それぞれの記憶領域を所定の領域に分割した分割領域それぞれに書き込まれたデータ対して、前記複数の記憶媒体間で第1の誤り検出符号を生成する手順と、
前記第1の誤り検出符号を、前記分割領域のうちの前記データが書き込まれていない分割領域に書き込む手順と、
前記分割領域それぞれに互いに異なるタイミングで書き込まれたデータ対して、前記複数の記憶媒体ごとに第2の誤り検出符号を生成する手順と、
前記第2の誤り符号を、前記分割領域のうちの前記データが書き込まれていない分割領域に書き込む手順とを実行させるためのプログラム。 On the computer,
A procedure for generating a first error detection code between the plurality of storage media for data written in each of the divided areas obtained by dividing the storage area of each of the plurality of storage media into a predetermined area;
Writing the first error detection code in a divided area of the divided area where the data is not written;
A procedure for generating a second error detection code for each of the plurality of storage media for data written at different timings to each of the divided regions;
A program for causing the second error code to be written in a divided area of the divided area where the data is not written.
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2017059294A JP2018163450A (en) | 2017-03-24 | 2017-03-24 | Data storage control device, data storage system, data storage method and program |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2017059294A JP2018163450A (en) | 2017-03-24 | 2017-03-24 | Data storage control device, data storage system, data storage method and program |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JP2018163450A true JP2018163450A (en) | 2018-10-18 |
Family
ID=63860242
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2017059294A Pending JP2018163450A (en) | 2017-03-24 | 2017-03-24 | Data storage control device, data storage system, data storage method and program |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP2018163450A (en) |
Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2000149384A (en) * | 1998-11-13 | 2000-05-30 | Nec Eng Ltd | Disk array device |
| JP2009187139A (en) * | 2008-02-04 | 2009-08-20 | Hitachi Ltd | Storage system |
| JP2011165063A (en) * | 2010-02-12 | 2011-08-25 | Toshiba Corp | Semiconductor storage device |
| JP2016105320A (en) * | 2010-09-28 | 2016-06-09 | ピュア・ストレージ・インコーポレイテッド | Adaptive RAID for SSD environment |
| WO2016135872A1 (en) * | 2015-02-25 | 2016-09-01 | 株式会社日立製作所 | Storage unit and storage device |
-
2017
- 2017-03-24 JP JP2017059294A patent/JP2018163450A/en active Pending
Patent Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2000149384A (en) * | 1998-11-13 | 2000-05-30 | Nec Eng Ltd | Disk array device |
| JP2009187139A (en) * | 2008-02-04 | 2009-08-20 | Hitachi Ltd | Storage system |
| JP2011165063A (en) * | 2010-02-12 | 2011-08-25 | Toshiba Corp | Semiconductor storage device |
| JP2016105320A (en) * | 2010-09-28 | 2016-06-09 | ピュア・ストレージ・インコーポレイテッド | Adaptive RAID for SSD environment |
| WO2016135872A1 (en) * | 2015-02-25 | 2016-09-01 | 株式会社日立製作所 | Storage unit and storage device |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US11531590B2 (en) | Method and system for host-assisted data recovery assurance for data center storage device architectures | |
| US7464322B2 (en) | System and method for detecting write errors in a storage device | |
| CN103718162B (en) | Method and apparatus for flexible RAID in SSD | |
| US8555027B2 (en) | Semiconductor memory controlling device | |
| US10127166B2 (en) | Data storage controller with multiple pipelines | |
| US9575844B2 (en) | Mass storage device and method of operating the same to back up data stored in volatile memory | |
| CN104484251B (en) | A kind of processing method and processing device of hard disk failure | |
| KR101870521B1 (en) | Methods and systems for improving storage journaling | |
| KR101678868B1 (en) | Apparatus for flash address translation apparatus and method thereof | |
| US9558128B2 (en) | Selective management of security data | |
| JP2008204041A (en) | Storage apparatus and data arrangement control method | |
| CN104978281A (en) | Data Integrity Management In A Data Storage Device | |
| JP2008009635A (en) | Storage system and data protection method thereof | |
| US10140180B1 (en) | Segment-based outer code recovery | |
| US10884857B2 (en) | Data storage device and method of operating | |
| US10867633B1 (en) | Reduced adjacent track erasure from write retry | |
| CN107402890B (en) | A data processing method and system based on solid state disk array and cache | |
| US7464289B2 (en) | Storage system and method for handling bad storage device data therefor | |
| CN107885620A (en) | A kind of method and system for improving Solid-state disc array Performance And Reliability | |
| JP4905510B2 (en) | Storage control device and data recovery method for storage device | |
| US10574270B1 (en) | Sector management in drives having multiple modulation coding | |
| JP2010026812A (en) | Magnetic disk device | |
| JP2005107839A (en) | Array controller and disk array reconstruction method | |
| US10379972B1 (en) | Minimizing reads for reallocated sectors | |
| JP2018163450A (en) | Data storage control device, data storage system, data storage method and program |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20200205 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20201124 |
|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20210115 |
|
| A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20210309 |