JP2005004733A - Arrangement and method of disposition for detecting write error in storage system - Google Patents

Arrangement and method of disposition for detecting write error in storage system Download PDF

Info

Publication number
JP2005004733A
JP2005004733A JP2004141188A JP2004141188A JP2005004733A JP 2005004733 A JP2005004733 A JP 2005004733A JP 2004141188 A JP2004141188 A JP 2004141188A JP 2004141188 A JP2004141188 A JP 2004141188A JP 2005004733 A JP2005004733 A JP 2005004733A
Authority
JP
Japan
Prior art keywords
combination
group
storage system
check block
arrangement
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
Application number
JP2004141188A
Other languages
Japanese (ja)
Inventor
Ian David Judd
イアン・デビッド・ジャッド
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of JP2005004733A publication Critical patent/JP2005004733A/en
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/18Error detection or correction; Testing, e.g. of drop-outs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2211/00Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
    • G06F2211/10Indexing scheme relating to G06F11/10
    • G06F2211/1002Indexing scheme relating to G06F11/1076
    • G06F2211/1007Addressing errors, i.e. silent errors in RAID, e.g. sector slipping and addressing errors

Abstract

<P>PROBLEM TO BE SOLVED: To provide a scheme for detecting a write error within a disk storage system by using a phase field. <P>SOLUTION: A user data block D is divided into groups 120 and a check block P is inserted after each of the groups. The check block includes a field that is updated each time a group is written. In the simplest case, the field is a single bit to be inverted. In order to more strengthen a protection, however, the field may also be a multiple bit counter to be made increment. The check block of the XOR combination of data blocks for each group or may also be XOR combination of LBA for each group. <P>COPYRIGHT: (C)2005,JPO&NCIPI

Description

本発明はストレージ・システムに関し、具体的には、電子データ・ストレージ用のディスク・ストレージ・システムに関する。   The present invention relates to storage systems, and in particular to disk storage systems for electronic data storage.

記録技術の進歩により、ハード・ドライブの容量は年々倍増している。2003年には、面密度は1平方インチあたり100GBに達すると予測され、3.5インチ・ドライブでは300GBを格納できるようになる。   Due to advances in recording technology, hard drive capacity has doubled year by year. In 2003, the areal density is expected to reach 100 GB per square inch, and a 3.5 inch drive will be able to store 300 GB.

ハード・ドライブの信頼性は、そのMTBFおよび回復不能エラー率に関して指定される。現在のサーバ・クラスのドライブに関する典型的な指定は、1,000,000時間および1015ビット読取りでの1回復不能エラーである。ただし、面密度が増加すると、浮上高の低下、媒体の欠陥などにより、信頼性の維持はさらに困難になる。 Hard drive reliability is specified in terms of its MTBF and unrecoverable error rate. A typical designation for current server class drives is one unrecoverable error at 1,000,000 hours and 10 15- bit reads. However, as the surface density increases, it becomes more difficult to maintain reliability due to a decrease in flying height and a defect in the medium.

ストレージ・システムの信頼性をさらに向上させるために、RAID(Redundant Array of Independent Disks)アレイ(たとえば、RAID−1またはRAID−5)が使用されることが多い。ただし、容量の大きなドライブを使用した場合、単一レベルの冗長度では、データ損失の確率を無視できるレベルまで下げるには、もはや十分とは言えない。   In order to further improve the reliability of the storage system, a RAID (Redundant Array of Independent Disks) array (for example, RAID-1 or RAID-5) is often used. However, when using large capacity drives, a single level of redundancy is no longer sufficient to reduce the probability of data loss to a negligible level.

以前の書込みコマンドが記録媒体上の正しい位置に書き込んでいないか、または媒体上への記録に失敗したことにより、ディスク・ドライブが読取りコマンドで古いデータを戻してしまう可能性もある。これは、間欠的なハードウェア障害または潜在的な設計上の欠陥による可能性がある。たとえばドライブは、ファームウェアのバグによって誤ったLBA(論理ブロック・アドレス)にデータを書き込む、オフ・トラックで書き込む、または、1滴の潤滑油(一般に「lube」と呼ばれる)がディスク表面からヘッドを離すことによって全く書き込まない、などの可能性がある。   It is possible that the previous write command did not write to the correct location on the recording medium, or that recording on the medium failed, causing the disk drive to return old data with the read command. This may be due to intermittent hardware failures or potential design defects. For example, the drive writes data to the wrong LBA (Logical Block Address) due to a firmware bug, writes off track, or a drop of lubricant (commonly called “lube”) moves the head off the disk surface There is a possibility of not writing at all.

Advanced Technology Attachment(ATA)ドライブなどの市販のドライブは、セント(cents)/MB単位で表すと、およそ3分の1と安価であることから、これらをサーバ・アプリケーションで使用することについても、関心が高まっている。ただしこれらのドライブは、元来、PC内で間欠的に使用することを目的としたものであるため、サーバ・クラスのドライブよりも信頼性が低い可能性がある。ATAドライブは512バイト・ブロックのみをサポートしているため、ブロック・レベルのLRC(水平冗長検査)を使用してデータの破損を検出することはできない。   Commercial drives such as Advanced Technology Attachment (ATA) drives are about a third cheaper when expressed in cents / MB, so it is also interesting to use them in server applications. Is growing. However, since these drives are originally intended to be used intermittently in a PC, they may be less reliable than server class drives. Since ATA drives support only 512 byte blocks, block level LRC (Horizontal Redundancy Check) cannot be used to detect data corruption.

単一のディスク・ドライブの場合、コントローラは、各ブロックに書き込んだ直後に再度読み出して、これを検証することができる。   In the case of a single disk drive, the controller can verify this by reading again immediately after writing to each block.

任意タイプの冗長RAID(Redundant Array of Independent Disks)アレイを、読取りデータをチェックできるような方法で実施することができる。たとえば、RAID−5アレイを使用した場合、コントローラは、読取りデータが他のデータ・ドライブおよびパリティ・ドライブと整合性があることをチェックできる。   Any type of redundant RAID of Redundant Array of Independent Disks can be implemented in such a way that the read data can be checked. For example, when using a RAID-5 array, the controller can check that the read data is consistent with other data drives and parity drives.

ただし、これらの手法には、第1の方法は特別な解像度を必要とし、第2の方法は読取りコマンドごとにいくつかのドライブにアクセスする必要があることから、どちらの方法も、1秒あたりのI/O(入力/出力)コマンドに関して、全体のスループットを劇的に低下させるという欠点がある。   However, for these approaches, both methods require a special resolution, and the second method requires access to several drives for each read command, so both methods are per second. The I / O (input / output) command has the disadvantage of dramatically reducing the overall throughput.

したがって、前述の欠点を軽減できる、ストレージ・システムにおける書込みエラーの検出が求められている。   Accordingly, there is a need for detection of write errors in storage systems that can alleviate the aforementioned drawbacks.

本発明の第1の態様によれば、ストレージ・システムにおいて書込みエラーを検出するための配置構成が提供され、この配置構成(arrangement)は、各グループが、複数のデータ・ブロックと、グループがストレージに書き込まれるたびに更新される1つのチェック・ブロックとを含む、グループ単位でデータ・ブロックを格納するための手段と、チェック・ブロックをチェックすることによって書込みエラーを検出するための手段とを含む。   In accordance with a first aspect of the present invention, an arrangement is provided for detecting write errors in a storage system, wherein the arrangement includes a plurality of data blocks and a group storage. Means for storing data blocks in groups, including one check block that is updated each time it is written to, and means for detecting a write error by checking the check block .

好ましくは、チェック・ブロックは、グループのデータ・ブロックの組合せである。   Preferably, the check block is a combination of groups of data blocks.

好ましくは、組合せは、論理排他的ORの組合せである。   Preferably, the combination is a logical exclusive OR combination.

好ましくは、チェック・ブロックは、グループに関連付けられた論理ブロック・アドレスの組合せである。   Preferably, the check block is a combination of logical block addresses associated with the group.

好ましくは、組合せは、論理排他的ORの組合せである。   Preferably, the combination is a logical exclusive OR combination.

好ましくは、チェック・ブロックは、グループが書き込まれるたびに更新される位相フィールドの組合せである。   Preferably, the check block is a combination of phase fields that are updated each time a group is written.

好ましくは、組合せは、論理排他的ORの組合せである。   Preferably, the combination is a logical exclusive OR combination.

好ましくは、位相フィールドは、グループが書き込まれるたびに反転される単一ビット値を含む。   Preferably, the phase field contains a single bit value that is inverted each time a group is written.

好ましくは、位相フィールドは、グループが書き込まれるたびに更新される複数ビット値を含む。   Preferably, the phase field contains a multi-bit value that is updated each time a group is written.

配置構成は、好ましくは、位相フィールド値に関する不揮発性テーブルをさらに含む。   The arrangement preferably further includes a non-volatile table for the phase field values.

好ましくは、不揮発性テーブルは、予約済みディスク・ドライブ領域と、システムのコントローラにキャッシュされるテーブルの作業コピーを含む。   Preferably, the non-volatile table includes a reserved disk drive area and a working copy of the table cached in the system controller.

配置構成は、好ましくは、書込みオペレーションの前にエントリを記録するように配列された不揮発性ログをさらに含み、エントリは、
A 無効化、および
B 書込みオペレーション完了時削除
のうちの1つに関して配列される。
The arrangement preferably further includes a non-volatile log arranged to record the entry prior to the write operation,
Arranged for one of A invalidation and B delete on completion of write operation.

好ましくは、ログは、まだ不揮発性テーブルに格納されていないコントローラ内のテーブルの作業コピーへの更新を、保持するように配列される。   Preferably, the log is arranged to keep updates to working copies of tables in the controller that are not yet stored in the non-volatile table.

好ましくは、ログは、システムのコントローラに関するコードも保持するために、メモリ内に格納される。   Preferably, the log is stored in memory to also hold code related to the system's controller.

好ましくは、ストレージ・システムはディスク・ストレージ・システムを含む。   Preferably, the storage system includes a disk storage system.

好ましくは、ディスク・ストレージ・システムはATAディスク・ドライブを含む。   Preferably, the disk storage system includes an ATA disk drive.

好ましくは、ディスク・ストレージ・システムはRAIDシステムを含む。   Preferably, the disk storage system includes a RAID system.

第2の態様では、本発明は、ストレージ・システムにおいて書込みエラーを検出するための方法を提供し、この方法は、各グループが複数のデータ・ブロックと1つのチェック・ブロックとを含むグループ単位でデータ・ブロックを格納すること、グループがストレージに書き込まれるたびにチェック・ブロックを更新すること、およびチェック・ブロックをチェックすることによって起こり得る書込みエラーを検出することを含む。   In a second aspect, the present invention provides a method for detecting a write error in a storage system, wherein the method comprises a group unit in which each group includes a plurality of data blocks and a check block. Including storing data blocks, updating check blocks each time a group is written to storage, and detecting possible write errors by checking the check blocks.

好ましくは、チェック・ブロックは、グループのデータ・ブロックの組合せである。   Preferably, the check block is a combination of groups of data blocks.

好ましくは、組合せは、論理排他的ORの組合せである。   Preferably, the combination is a logical exclusive OR combination.

好ましくは、チェック・ブロックは、グループに関連付けられた論理ブロック・アドレスの組合せである。   Preferably, the check block is a combination of logical block addresses associated with the group.

好ましくは、組合せは、論理排他的ORの組合せである。   Preferably, the combination is a logical exclusive OR combination.

好ましくは、チェック・ブロックは、グループが書き込まれるたびに更新される位相フィールドの組合せである。   Preferably, the check block is a combination of phase fields that are updated each time a group is written.

好ましくは、組合せは、論理排他的ORの組合せである。   Preferably, the combination is a logical exclusive OR combination.

好ましくは、位相フィールドは、グループが書き込まれるたびに反転される単一ビット値を含む。   Preferably, the phase field contains a single bit value that is inverted each time a group is written.

好ましくは、位相フィールドは、グループが書き込まれるたびに更新される複数ビット値を含む。   Preferably, the phase field contains a multi-bit value that is updated each time a group is written.

好ましくは、位相フィールド値は、不揮発性テーブルに格納される。   Preferably, the phase field value is stored in a non-volatile table.

好ましくは、不揮発性テーブルは、予約済みディスク・ドライブ領域と、システムのコントローラにキャッシュされるテーブルの作業コピーを含む。   Preferably, the non-volatile table includes a reserved disk drive area and a working copy of the table cached in the system controller.

方法は、好ましくは、書込みオペレーションの前にエントリを不揮発性ログに記録すること、ならびに、
A エントリの無効化、および
B 書込みオペレーション完了時のエントリの削除
のうちの1つのオペレーションを実行することを、さらに含む。
The method preferably records the entry in a non-volatile log prior to the write operation, and
Further comprising performing one operation of A invalidating the entry and B deleting the entry upon completion of the write operation.

方法は、好ましくは、まだ不揮発性テーブルに格納されていないコントローラ内のテーブルの作業コピーへの更新を、ログ内に保持することをさらに含む。   The method preferably further comprises keeping in the log updates to a working copy of a table in the controller that has not yet been stored in the non-volatile table.

好ましくは、ログは、システムのコントローラに関するコードも保持するために、メモリ内に格納される。   Preferably, the log is stored in memory to also hold code related to the system's controller.

好ましくは、ストレージ・システムはディスク・ストレージ・システムを含む。   Preferably, the storage system includes a disk storage system.

好ましくは、ディスク・ストレージ・システムはATAディスク・ドライブを含む。   Preferably, the disk storage system includes an ATA disk drive.

好ましくは、ディスク・ストレージ・システムはRAIDシステムを含む。   Preferably, the disk storage system includes a RAID system.

第3の態様では、本発明は、第2の態様の方法を実質的に実行するためのコンピュータ・プログラム手段を含む、コンピュータ・プログラム要素を提供する。   In a third aspect, the present invention provides a computer program element comprising computer program means for substantially performing the method of the second aspect.

次に、本発明を組み込んだ、位相フィールドの使用によってストレージ・システム内の書込みエラーを検出するための一配置構成および方法について、添付の図面を参照しながら、例示的なものとして説明する。   An arrangement and method for detecting write errors in a storage system through the use of a phase field, incorporating the present invention, will now be described by way of example with reference to the accompanying drawings.

簡略的に述べると、本発明は、その好ましい実施形態において、位相フィールド(たとえば、単一ビット・フラグ)を含むインタリーブド・パリティ・ブロックを使用して、ディスク・ドライブによるデータ破損のほぼすべてのインスタンスを検出する。パリティ・ブロックは、追加レベルのエラー修正も提供する。ATAドライブはサーバ・ドライブよりも修正不能エラー率が高い傾向にあるため、これらの機能は、ATAドライブにとって特に有用である。(ATAドライブは、通常、1014ビット中1というハード・エラー率を指定するため、ハード読取りエラーを備えたブロックを含む100GBドライブの確率は0.8%である。これらのドライブが、10+P RAID−5アレイの構築に使用された場合、ドライブ交換後の再構築失敗の確率は8%である。) Briefly stated, the present invention, in its preferred embodiment, uses an interleaved parity block that includes a phase field (e.g., a single bit flag) to provide almost all data corruption by a disk drive. Detect instances. The parity block also provides an additional level of error correction. These features are particularly useful for ATA drives because ATA drives tend to have higher uncorrectable error rates than server drives. (ATA drives typically specify a hard error rate of 1 in 10 14 bits, so the probability of a 100 GB drive containing blocks with hard read errors is 0.8%. These drives are 10 + P RAID. (When used to build a -5 array, the probability of rebuild failure after drive replacement is 8%.)

次に図1を参照すると、磁気ディスク・ストレージ・システム100はディスク110を含み、ここでは情報が、通常は512バイトのブロックDおよびPに格納される。ディスクにデータを格納する場合、1つのパリティ・ブロックPがNごとに、たとえば図に示されるように、8個の512バイト・ブロックまたは4KBごとに、挿入される。これらのN+1ブロックがグループ120とみなされる。したがって、ドライブの有効データ容量は、N/(N+1)ずつ減少する。   Referring now to FIG. 1, the magnetic disk storage system 100 includes a disk 110 where information is stored in blocks D and P, typically 512 bytes. When storing data on the disk, one parity block P is inserted every N, for example every 8 512-byte blocks or 4 KB as shown in the figure. These N + 1 blocks are considered as group 120. Therefore, the effective data capacity of the drive decreases by N / (N + 1).

図2に示されるように、パリティ・ブロックPには、以下のように計算されるグループ・パリティが含まれる。   As shown in FIG. 2, the parity block P includes group parity calculated as follows.

ステップ210−そのグループ内のそれぞれのデータ・ブロックから、対応するバイトをXORする。   Step 210—XOR the corresponding bytes from each data block in the group.

ステップ220−グループ内の第1のブロックの物理LBAを、ステップ210の結果のうちの最初の数バイトにXORする。このLBAシードは、ほぼすべての読取りおよび一部の書込みに関するアドレス指定エラーの検出を可能にする。   Step 220—XOR the physical LBA of the first block in the group to the first few bytes of the result of Step 210. This LBA seed allows detection of addressing errors for almost all reads and some writes.

ステップ230−位相フィールドFを、ステップ220の結果のうちの最後の数ビットにXORする。位相フィールドFは、グループが書き込まれるたびに反転される単一ビット値であってよい。あるいは、グループが書き込まれるたびに更新(たとえば増分)される、複数ビット・カウンタであってよい。位相フィールドは、書込みに関する残りのアドレス指定エラーのほとんどを検出する。   Step 230-XOR the phase field F to the last few bits of the result of step 220. The phase field F may be a single bit value that is inverted each time a group is written. Alternatively, it may be a multi-bit counter that is updated (eg, incremented) each time a group is written. The phase field detects most of the remaining addressing errors for writing.

ドライブがハード読取りエラーに遭遇した場合を除き、ディスク・コントローラ(図示せず)は、完全なグループでドライブの読取りおよび書込みを行う。上記の計算は、各グループについて実行する。書込みの場合、結果はパリティ・ブロックに書き込まれる。読取りの場合、結果は読取りパリティ・ブロックのコンテンツと共にXORされ、結果が非ゼロの場合は、そのグループにエラーがある。   Unless the drive encounters a hard read error, the disk controller (not shown) reads and writes the drive in complete groups. The above calculation is performed for each group. In the case of writing, the result is written to the parity block. For reads, the result is XORed with the contents of the read parity block, and if the result is non-zero, there is an error in the group.

パリティ・ブロックPは、コントローラが以下のドライブ・エラーを処理できるようにするものである。   Parity block P allows the controller to handle the following drive errors.

ドライブが、グループの1つのデータ・ブロック内で回復不能な媒体エラーに遭遇した場合、コントローラは、次のブロックで読取りを再開する。その後、LBAおよび位相は正しいと想定し、グループ・パリティを使用することによって、失われたブロックを再構築する。最終的に不良LBAを再度割り当てて、ブロックを書き直す。   If the drive encounters an unrecoverable media error in one data block of the group, the controller resumes reading at the next block. It then assumes that the LBA and phase are correct and reconstructs the lost block by using group parity. Finally, the bad LBA is reassigned and the block is rewritten.

ドライブが誤ったLBAを読み取ると、LBAシードが原因でグループ・パリティ・チェックは非ゼロになる。その後、コントローラは読取りをもう一度再試行し、パリティが再度失敗した場合は、媒体エラーを戻す。   If the drive reads the wrong LBA, the group parity check will be non-zero due to the LBA seed. The controller will then retry the read again and return a media error if parity fails again.

ドライブが以前に誤ったLBAを書き込んだ場合、または媒体が全く書き込まれておらず、ホストが正しいLBAを読み取るように要求を出した場合、位相フィールドFが原因で、グループ・パリティ・チェックは非ゼロになる。その後、コントローラは読取りをもう一度再試行し、パリティが再度失敗した場合は、媒体エラーを戻す。   If the drive has previously written the wrong LBA, or if the media has not been written at all and the host has requested to read the correct LBA, the phase field F will cause the group parity check to be disabled. It becomes zero. The controller will then retry the read again and return a media error if parity fails again.

ドライブが以前に誤ったLBAを書き込み、その後ホストが誤ったLBAを読み取るように要求を出した場合、LBAシードが原因で、グループ・パリティ・チェックは誤りとなる。コントローラは読取りをもう一度再試行し、媒体エラーを戻す。   If the drive previously wrote the wrong LBA and then the host requested to read the wrong LBA, the group parity check would be wrong due to the LBA seed. The controller will retry the read again and return a media error.

コントローラが媒体エラーを戻した場合、ドライブが冗長アレイ(図示せず)の構成要素であれば、データは依然として回復可能である。   If the controller returns a media error, the data can still be recovered if the drive is a component of a redundant array (not shown).

コントローラは、ディスク上で常に完全なグループの読取りおよび書込みを行うため、短いかまたは位置合わせされていない書込みは、読取り (read) −修正 (modify) −書込み (write) が必要である。ただし、RAID−5には同様の犠牲があるため、この場合には追加のオーバヘッドはない。   Since the controller always reads and writes complete groups on the disk, short or unaligned writes need to be read-modify-write. However, there is no additional overhead in this case because RAID-5 has the same sacrifice.

ディスク・コントローラは、各グループの現在の位相を不揮発性記憶域130に格納しなければならない。たとえば、単一ビット位相フラグを使用する場合、結果として生じるビット・マップは、4KBグループで、100GBドライブに対しておよそ2.6MBを占有する。コントローラは、ドライブがフォーマット化されるときに、すべての位相フラグをゼロに初期設定する。位相フラグ・ビット・マップ130は、様々な方法で実施可能である。フラッシュ・メモリは、同じグループが繰り返し書き込まれると急速に磨耗することから、直接的には好適でない。バッテリ・バックアップSRAM(スタティック・ランダム・アクセス・メモリ)は大きくて扱いにくく、高価である。好ましい解決方法は、ビット・マップをディスク・ドライブの予約済み領域に格納し、作業コピーを、コントローラのSDRAM(スタティック・ダイナミック・ランダム・アクセス・メモリ)にキャッシュすることである。ただし、あらゆる書込みコマンドについて予約済み領域を更新するのを避けるために、変更は何らかの方法で一括され、電力障害およびドライブのリセットから保護されなければならない。   The disk controller must store the current phase of each group in non-volatile storage 130. For example, when using a single bit phase flag, the resulting bit map occupies approximately 2.6 MB for a 100 GB drive in a 4 KB group. The controller initializes all phase flags to zero when the drive is formatted. The phase flag bit map 130 can be implemented in various ways. Flash memory is not directly suitable because it quickly wears out when the same group is written repeatedly. Battery backup SRAM (Static Random Access Memory) is large, cumbersome and expensive. The preferred solution is to store the bit map in a reserved area of the disk drive and cache the working copy in the controller's SDRAM (Static Dynamic Random Access Memory). However, to avoid updating the reserved area for every write command, the changes must be packaged in some way to protect against power failures and drive resets.

さらに、ディスク書込みが電力障害またはリセットによって中断された場合、ディスク上の位相フラグの状態は不明である。ドライブには何も不良はないため、これにより、後続の読取りに媒体エラーによる失敗を発生させてはならない(ただし、コントローラはまだホストへの書込みを完了していないため、古いデータ、新しいデータ、またはそれらの混合を戻すことは許容できる)。   In addition, if the disk write is interrupted by a power failure or reset, the state of the phase flag on the disk is unknown. Since the drive has nothing wrong, this should not cause a subsequent read failure due to a media error (however, the controller has not yet completed the write to the host, so the old data, new data, Or it is permissible to bring back a mixture thereof).

これら2つの問題は、ディスク書込みを発行する直前に不揮発性ログ内にエントリを作成すること、および書込みが完了したときにそれを削除(または無効化)することによって解決することができる。同じログを使用して、まだディスクにフラッシュされていないSDRAM内のビット・マップへの更新を保持することもできる。典型的なログ・エントリには、以下のように8バイトが必要である。
バイト数 説明
0:3 書き込まれる第1グループのアドレス
4:5 書き込まれる連続するグループの数(非ゼロは有効なログ・エントリを示す)
6 FFhに初期設定される(「h」は16進法を示す接尾辞)。ディスク書込みが完了した後、00hに設定する。
7 FFhに初期設定される。ディスク上のビット・マップが更新された後、00hに設定する。
These two problems can be solved by creating an entry in the non-volatile log just before issuing a disk write and deleting (or invalidating) it when the write is complete. The same log can also be used to keep updates to bitmaps in SDRAM that have not yet been flushed to disk. A typical log entry requires 8 bytes as follows:
Number of bytes Description 0: 3 Address of first group to be written 4: 5 Number of consecutive groups to be written (non-zero indicates a valid log entry)
Initially set to 6 FFh ("h" is a suffix indicating hexadecimal). Set to 00h after disk writing is complete.
7 Initially set to FFh. After the bit map on the disk is updated, it is set to 00h.

ログは、小さなバッテリ・バックアップSRAM、すなわち、NVRAM(不揮発性RAM)に格納することができる。   The log can be stored in a small battery backup SRAM, ie NVRAM (non-volatile RAM).

一部の実施では、ログを、コントローラ・コードを含むフラッシュ・メモリの追加セクタに格納すると便利な場合がある。ログ・セクタが完全に使用されると、すべてFFhに消去される。フラッシュに単語を書き込むには、通常、約500μsを要し、各ディスク書込みには3フラッシュ書込みが必要である。これにより、1秒あたりほぼ700のディスク書込みが可能である。ログには順番に書き込まれるため、フラッシュ・メモリの磨耗は自動的に均一になる。さらにログ・エントリは、1回のディスク書込みにつき、各バイトが1回だけ書き込まれるように、フォーマット化される。たとえば、10サイクルの耐久性を持つ1MBのフラッシュは、毎秒100ディスク書込みで4年以上持つことになる。 In some implementations, it may be convenient to store the log in an additional sector of flash memory that contains the controller code. When the log sectors are fully used, they are all erased to FFh. Writing a word to flash typically takes about 500 μs, and each disk write requires 3 flash writes. This allows approximately 700 disk writes per second. Because the logs are written sequentially, the wear on the flash memory is automatically uniform. In addition, log entries are formatted so that each byte is written only once per disk write. For example, the flash 1MB with 10 5 cycles durability, will have more than 4 years per 100 disk writes.

高い可用性(availability) を保証するために、ストレージ・システムは、二重(dual) (アクティブ・アクティブ)コントローラを使用することが多い。この環境では、各コントローラで、不揮発性ログのミラー・コピーを維持することが望ましい。これによって、コントローラが障害を起こした場合でも、位相フィールドによって提供される保護が失われないことが保証される。2つのログは、コントローラ間でのメッセージの交換により、同期が維持されなければならない。各コントローラは、ディスクにグループを書き込む前、および書込みが完了したときにもう一度、そのログの更新を他方のコントローラに通知しなければならない。ただし実際には、RAID−5などの高位レベル機能はいずれにせよ同様のメッセージを交換するので、通常、それほどのオーバヘッドにはならない。   In order to ensure high availability, storage systems often use dual (active / active) controllers. In this environment, it is desirable to maintain a mirror copy of the non-volatile log at each controller. This ensures that even if the controller fails, the protection provided by the phase field is not lost. The two logs must be kept synchronized by exchanging messages between the controllers. Each controller must notify the other controller of its log update before writing the group to disk and once again when the write is complete. In practice, however, high-level functions such as RAID-5 exchange similar messages anyway, so there is usually not much overhead.

たとえば、障害後にコントローラのうちの1つを交換する場合など、2つのコントローラを再同期化するための手段も提供しなければならない。これは、他方のコントローラ内のログから未処理の更新をディスクにフラッシュすること、および交換コントローラ内のログをクリアすることによって、最も簡単に達成される。   A means for resynchronizing the two controllers must also be provided, for example, when one of the controllers is replaced after a failure. This is most easily accomplished by flushing outstanding updates from the log in the other controller to disk and clearing the log in the replacement controller.

上記で説明した、位相フラグを使用してストレージ・システム内で書込みエラーを検出するためのスキームは、以下の利点を提供することが理解されよう。   It will be appreciated that the scheme described above for detecting write errors in a storage system using phase flags provides the following advantages:

データの保全性 (integrity) の向上。このスキームは、低コストのデスクトップ・ドライブを使用している場合に特に有用である。これらは通常、512バイト・ブロックに制限されているため、各ブロックにチェック・フィールドを格納する余地がない。ただし、サーバ・クラス・ドライブにも適用可能である。   Improved data integrity. This scheme is particularly useful when using low cost desktop drives. Since these are typically limited to 512 byte blocks, there is no room for storing a check field in each block. However, it can also be applied to server class drives.

特に、RAID−5と共に使用する場合に、性能への影響が少ない(読取りデータをチェックする際に、追加のディスク・アクセスを必要としない)。   In particular, when used with RAID-5, there is less performance impact (no additional disk access is required when checking read data).

最も単純なケースでは、位相フィールドは、書込みのたびに反転される単一ビットである。ただし、より保護を強化するためには、正の値によって更新、たとえば増分されるか、または負の値によって更新される(すなわち減分)、複数ビット・カウンタであってもよい。   In the simplest case, the phase field is a single bit that is inverted with each write. However, for greater protection, it may be a multi-bit counter that is updated with a positive value, eg, incremented, or updated with a negative value (ie, decremented).

ストレージ・システムにおいて書込みエラーを検出するための上記の方法は、典型的には、システム内のプロセッサ(図示せず)上で実行中のソフトウェアで実施されること、および、ソフトウェアは、磁気または光コンピュータ・ディスクなどの任意の好適なデータ・キャリア(これも図示せず)上で搬送される、コンピュータ・プログラム要素 (element) として提供可能であることを理解されよう。   The above method for detecting write errors in a storage system is typically implemented in software running on a processor (not shown) in the system, and the software can be magnetic or optical It will be appreciated that it can be provided as a computer program element carried on any suitable data carrier (also not shown) such as a computer disk.

以上、本発明について、磁気ディスク・ストレージ・システムのコンテキストで説明してきたが、本発明は、別法として、光ディスクまたは磁気テープに基づくものなどの、他のストレージ・システムにも適用可能であることも理解されよう。   While the present invention has been described in the context of magnetic disk storage systems, the present invention is alternatively applicable to other storage systems such as those based on optical disks or magnetic tapes. Will also be understood.

添付の図面を参照しながら説明するのとほぼ同様に、ストレージ・システムにおいて書込みエラーを検出するための配置構成、さらにはストレージ・システムにおいて書込みエラーを検出するための方法も適用可能である。 Almost as described with reference to the accompanying drawings, an arrangement for detecting write errors in a storage system and a method for detecting write errors in a storage system are also applicable.

本発明を組み込んだディスク・ドライブ・ストレージ・システムを示す、概略的なブロック図である。1 is a schematic block diagram illustrating a disk drive storage system incorporating the present invention. 図1のシステムを使用してパリティ・ブロックを計算するための方法を示す、概略的なブロック図である。FIG. 2 is a schematic block diagram illustrating a method for calculating a parity block using the system of FIG.

符号の説明Explanation of symbols

100 ディスク・ストレージ・システム
110 ディスク
120 グループ
130 位相フラグ・ビット・マップ

100 disk storage system 110 disk 120 group 130 phase flag bit map

Claims (35)

ストレージ・システムにおいて書込みエラーを検出するための配置構成であって、
各グループが複数のデータ・ブロックおよび1つのチェック・ブロックを含む、グループ単位でデータ・ブロックを格納するための手段を含み、
前記チェック・ブロックは、前記グループがストレージに書き込まれるたびに更新されるものであって、
さらに前記配置構成は、前記チェック・ブロックをチェックすることによって書込みエラーを検出するための手段を含む、配置構成。
An arrangement for detecting a write error in a storage system,
Means for storing data blocks in groups, each group comprising a plurality of data blocks and one check block;
The check block is updated each time the group is written to storage,
The arrangement further comprises means for detecting a write error by checking the check block.
前記チェック・ブロックは、前記グループのデータ・ブロックの組合せである、請求項1に記載の配置構成。   The arrangement according to claim 1, wherein the check block is a combination of data blocks of the group. 前記組合せは論理排他的ORの組合せである、請求項2に記載の配置構成。   The arrangement according to claim 2, wherein the combination is a combination of logical exclusive ORs. 前記チェック・ブロックは、前記グループに関連付けられた論理ブロック・アドレスの組合せである、請求項1から3のいずれか一項に記載の配置構成。   The arrangement according to any one of claims 1 to 3, wherein the check block is a combination of logical block addresses associated with the group. 前記組合せは論理排他的ORの組合せである、請求項4に記載の配置構成。   The arrangement according to claim 4, wherein the combination is a combination of logical exclusive ORs. 前記チェック・ブロックは、前記グループが書き込まれるたびに更新される位相フィールドの組合せである、請求項1から5のいずれか一項に記載の配置構成。   6. Arrangement according to any one of the preceding claims, wherein the check block is a combination of phase fields that are updated each time the group is written. 前記組合せは論理排他的ORの組合せである、請求項6に記載の配置構成。   The arrangement according to claim 6, wherein the combination is a combination of logical exclusive ORs. 前記位相フィールドは、前記グループが書き込まれるたびに反転される単一ビット値を含む、請求項6または7に記載の配置構成。   8. Arrangement according to claim 6 or 7, wherein the phase field comprises a single bit value that is inverted each time the group is written. 前記位相フィールドは、前記グループが書き込まれるたびに更新される複数ビット値を含む、請求項6または7に記載の配置構成。   8. Arrangement according to claim 6 or 7, wherein the phase field comprises a multi-bit value that is updated each time the group is written. 前記配置構成は、位相フィールド値に関する不揮発性テーブルをさらに含む、請求項6から9のいずれか一項に記載の配置構成。   The arrangement according to any one of claims 6 to 9, wherein the arrangement further includes a non-volatile table relating to phase field values. 前記不揮発性テーブルは、予約済みディスク・ドライブ領域と、前記システムのコントローラにキャッシュされる前記テーブルの作業コピーを含む、請求項10に記載の配置構成。   11. The arrangement of claim 10, wherein the non-volatile table includes a reserved disk drive area and a working copy of the table that is cached in the system controller. 前記配置構成は、書込みオペレーションの前にエントリを記録するように配列された不揮発性ログをさらに含み、前記エントリは、
無効化、および
前記書込みオペレーション完了時削除
のうちの1つに関して配列される、請求項1から11のいずれか一項に記載の配置構成。
The arrangement further includes a non-volatile log arranged to record entries prior to a write operation, the entries comprising:
12. Arrangement according to any one of the preceding claims, arranged for one of invalidation and deletion upon completion of the write operation.
請求項11に従属する場合であって、前記ログは、まだ前記不揮発性テーブルに格納されていない前記コントローラ内の前記テーブルの前記作業コピーへの更新を、保持するように配列される、請求項12に記載の配置構成。   12. When dependent on claim 11, wherein the log is arranged to hold updates to the working copy of the table in the controller that are not yet stored in the non-volatile table. 12. The arrangement configuration according to 12. 前記ログは、前記システムのコントローラに関するコードも保持するために、メモリ内に格納される、請求項12または13に記載の配置構成。   14. Arrangement according to claim 12 or 13, wherein the log is stored in memory to also hold code relating to the controller of the system. 前記ストレージ・システムはディスク・ストレージ・システムを含む、請求項1から14のいずれか一項に記載の配置構成。   The arrangement according to any one of the preceding claims, wherein the storage system comprises a disk storage system. 前記ディスク・ストレージ・システムはATAディスク・ドライブを含む、請求項15に記載の配置構成。   16. The arrangement of claim 15, wherein the disk storage system includes an ATA disk drive. 前記ディスク・ストレージ・システムはRAIDシステムを含む、請求項15または16に記載の配置構成。   The arrangement according to claim 15 or 16, wherein the disk storage system includes a RAID system. ストレージ・システムにおいて書込みエラーを検出するための方法であって、前記方法は、
各グループが複数のデータ・ブロックおよび1つのチェック・ブロックを含む、グループ単位でデータ・ブロックを格納すること、
前記グループが書き込まれるたびに前記チェック・ブロックを更新すること、および
前記チェック・ブロックをチェックすることによって起こり得る書込みエラーを検出することを含む方法。
A method for detecting a write error in a storage system, the method comprising:
Storing data blocks in groups, each group including multiple data blocks and one check block;
Updating the check block each time the group is written and detecting write errors that may occur by checking the check block.
前記チェック・ブロックは、前記グループのデータ・ブロックの組合せである、請求項18に記載の方法。   The method of claim 18, wherein the check block is a combination of data blocks of the group. 前記組合せは論理排他的ORの組合せである、請求項19に記載の方法。   20. The method of claim 19, wherein the combination is a logical exclusive OR combination. 前記チェック・ブロックは、前記グループに関連付けられた論理ブロック・アドレスの組合せである、請求項18から20のいずれか一項に記載の方法。   21. A method as claimed in any one of claims 18 to 20, wherein the check block is a combination of logical block addresses associated with the group. 前記組合せは論理排他的ORの組合せである、請求項21に記載の方法。   The method of claim 21, wherein the combination is a logical exclusive OR combination. 前記チェック・ブロックは、前記グループが書き込まれるたびに更新される位相フィールドの組合せである、請求項18から22のいずれか一項に記載の方法。   23. A method as claimed in any one of claims 18 to 22, wherein the check block is a combination of phase fields that are updated each time the group is written. 前記組合せは論理排他的ORの組合せである、請求項23に記載の方法。   24. The method of claim 23, wherein the combination is a logical exclusive OR combination. 前記位相フィールドは、前記グループが書き込まれるたびに反転される単一ビット値を含む、請求項23または24に記載の方法。   25. A method according to claim 23 or 24, wherein the phase field comprises a single bit value that is inverted each time the group is written. 前記位相フィールドは、前記グループが書き込まれるたびに更新される複数ビット値を含む、請求項23または24に記載の方法。   25. A method according to claim 23 or 24, wherein the phase field comprises a multi-bit value that is updated each time the group is written. 位相フィールド値は不揮発性テーブルに格納される、請求項23から26のいずれか一項に記載の方法。   27. A method according to any one of claims 23 to 26, wherein the phase field value is stored in a non-volatile table. 前記不揮発性テーブルは、予約済みディスク・ドライブ領域と、前記システムのコントローラにキャッシュされる前記テーブルの作業コピーを含む、請求項27に記載の方法。   28. The method of claim 27, wherein the non-volatile table includes a reserved disk drive area and a working copy of the table that is cached on a controller of the system. 書込みオペレーションの前にエントリを不揮発性ログに記録すること、ならびに
エントリの無効化、および
書込みオペレーション完了時のエントリの削除
のうちの1つのオペレーションを実行することをさらに含む、請求項18から28のいずれか一項に記載の方法。
29. The method of claims 18-28, further comprising performing one operation of logging the entry prior to the write operation and invalidating the entry and deleting the entry upon completion of the write operation: The method according to any one of the above.
請求項28に依存する場合に、まだ前記不揮発性テーブルに格納されていない前記コントローラ内の前記テーブルの前記作業コピーへの更新を、前記ログ内に保持することをさらに含む、請求項28に記載の方法。   29. When dependent on claim 28, further comprising maintaining in the log updates to the working copy of the table in the controller that are not yet stored in the non-volatile table. the method of. 前記ログは、前記システムのコントローラに関するコードも保持するために、メモリ内に格納される、請求項29または30に記載の方法。   31. A method according to claim 29 or 30, wherein the log is stored in memory to also hold code relating to a controller of the system. 前記ストレージ・システムはディスク・ストレージ・システムを含む、請求項18から31のいずれか一項に記載の方法。   32. A method as claimed in any one of claims 18 to 31 wherein the storage system comprises a disk storage system. 前記ディスク・ストレージ・システムはATAディスク・ドライブを含む、請求項15に記載の方法。   The method of claim 15, wherein the disk storage system comprises an ATA disk drive. 前記ディスク・ストレージ・システムはRAIDシステムを含む、請求項32または33に記載の方法。   34. A method according to claim 32 or 33, wherein the disk storage system comprises a RAID system. 請求項18から34のいずれか一項に記載の方法を実質的に実行するためのコンピュータ・プログラム手段を含む、コンピュータ・プログラム要素。   35. A computer program element comprising computer program means for substantially performing the method of any one of claims 18 to 34.
JP2004141188A 2003-06-11 2004-05-11 Arrangement and method of disposition for detecting write error in storage system Pending JP2005004733A (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
GB0313419A GB2402803B (en) 2003-06-11 2003-06-11 Arrangement and method for detection of write errors in a storage system

Publications (1)

Publication Number Publication Date
JP2005004733A true JP2005004733A (en) 2005-01-06

Family

ID=27589831

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004141188A Pending JP2005004733A (en) 2003-06-11 2004-05-11 Arrangement and method of disposition for detecting write error in storage system

Country Status (3)

Country Link
JP (1) JP2005004733A (en)
CN (1) CN1324474C (en)
GB (1) GB2402803B (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009076075A (en) * 2007-09-24 2009-04-09 Internatl Business Mach Corp <Ibm> Data storage method, data storage system and program (verification of data integrity in storage system)
CN113391941A (en) * 2021-06-18 2021-09-14 苏州浪潮智能科技有限公司 RAID read-write timeout processing method, device, equipment and medium

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102034516B (en) * 2010-12-10 2013-07-24 创新科存储技术有限公司 Method for detecting read-write error of storage medium
CN102043685A (en) * 2010-12-31 2011-05-04 成都市华为赛门铁克科技有限公司 RAID (redundant array of independent disk) system and data recovery method thereof
TWI522804B (en) * 2014-04-23 2016-02-21 威盛電子股份有限公司 Flash memory controller and data storage device and flash memory control method

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5335235A (en) * 1992-07-07 1994-08-02 Digital Equipment Corporation FIFO based parity generator
US5602857A (en) * 1993-09-21 1997-02-11 Cirrus Logic, Inc. Error correction method and apparatus
CA2134016A1 (en) * 1994-01-07 1995-07-08 Peter B. Bandy Data storage device and method of operation
US5623595A (en) * 1994-09-26 1997-04-22 Oracle Corporation Method and apparatus for transparent, real time reconstruction of corrupted data in a redundant array data storage system
US5533190A (en) * 1994-12-21 1996-07-02 At&T Global Information Solutions Company Method for maintaining parity-data consistency in a disk array
US5805799A (en) * 1995-12-01 1998-09-08 Quantum Corporation Data integrity and cross-check code with logical block address
US5856989A (en) * 1996-08-13 1999-01-05 Hewlett-Packard Company Method and apparatus for parity block generation
JPH11194899A (en) * 1997-12-26 1999-07-21 Toshiba Corp Disk storage system and data updating method applied to the system

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009076075A (en) * 2007-09-24 2009-04-09 Internatl Business Mach Corp <Ibm> Data storage method, data storage system and program (verification of data integrity in storage system)
CN113391941A (en) * 2021-06-18 2021-09-14 苏州浪潮智能科技有限公司 RAID read-write timeout processing method, device, equipment and medium

Also Published As

Publication number Publication date
GB0313419D0 (en) 2003-07-16
CN1324474C (en) 2007-07-04
GB2402803B (en) 2006-06-28
CN1573703A (en) 2005-02-02
GB2402803A (en) 2004-12-15

Similar Documents

Publication Publication Date Title
US7464322B2 (en) System and method for detecting write errors in a storage device
US11941257B2 (en) Method and apparatus for flexible RAID in SSD
US7206991B2 (en) Method, apparatus and program for migrating between striped storage and parity striped storage
US6021463A (en) Method and means for efficiently managing update writes and fault tolerance in redundancy groups of addressable ECC-coded sectors in a DASD storage subsystem
JP3164499B2 (en) A method for maintaining consistency of parity data in a disk array.
US7386758B2 (en) Method and apparatus for reconstructing data in object-based storage arrays
JP3129732B2 (en) Storage array with copy-back cache
US7984328B1 (en) System and method for reducing unrecoverable media errors
US7908512B2 (en) Method and system for cache-based dropped write protection in data storage systems
US10140180B1 (en) Segment-based outer code recovery
US11531590B2 (en) Method and system for host-assisted data recovery assurance for data center storage device architectures
JP2008204041A (en) Storage device and data arrangement control method
US7234024B1 (en) Application-assisted recovery from data corruption in parity RAID storage using successive re-reads
JP2004118837A (en) Method for storing data in fault tolerance storage sub-system, the storage sub-system and data formation management program for the system
US10067833B2 (en) Storage system
CN110874194A (en) Persistent storage device management
US7386754B2 (en) Method and apparatus to improve magnetic disc drive reliability using excess un-utilized capacity
US10574270B1 (en) Sector management in drives having multiple modulation coding
US20040128582A1 (en) Method and apparatus for dynamic bad disk sector recovery
JP4469822B2 (en) Disk array device and data management method for disk array device
JP2010026812A (en) Magnetic disk device
JP2005004733A (en) Arrangement and method of disposition for detecting write error in storage system
JP2005107839A (en) Array controller and disk array rebuilding method
US10922025B2 (en) Nonvolatile memory bad row management
US10642816B2 (en) Protection sector and database used to validate version information of user data

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060620

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20060912

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20060915

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20061213

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070220

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20070327

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20070403

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070817

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20070925

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20071225

A911 Transfer of reconsideration by examiner before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20080129

A912 Removal of reconsideration by examiner before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20080411