JP2009076075A - データ格納方法、データ・ストレージ・システムおよびプログラム(ストレージ・システムにおけるデータ完全性の検証)(著作権および商標登録表示本特許文書の開示の一部は、著作権保護を受ける内容を含む。本所有権者は、特許文書または特許開示書のいずれか一つによるファクシミリ複写物には、複写物が特許商標庁の特許ファイルまたは記録として世に出現している限り異論はないが、他の場合に全ての著作権は完全に留保する。)(本明細書で参照するある種のマークについては、出願人またはその譲受人と提携しまたは提携しない第三者の、慣習法上の、または登録された商標である可能性がある。これらのマークを使用するのは、例示によって実施可能な開示を提供するためであり、そのようなマークに関連するもののみに本発明の範囲を制限するように解釈されるべきではない。) - Google Patents

データ格納方法、データ・ストレージ・システムおよびプログラム(ストレージ・システムにおけるデータ完全性の検証)(著作権および商標登録表示本特許文書の開示の一部は、著作権保護を受ける内容を含む。本所有権者は、特許文書または特許開示書のいずれか一つによるファクシミリ複写物には、複写物が特許商標庁の特許ファイルまたは記録として世に出現している限り異論はないが、他の場合に全ての著作権は完全に留保する。)(本明細書で参照するある種のマークについては、出願人またはその譲受人と提携しまたは提携しない第三者の、慣習法上の、または登録された商標である可能性がある。これらのマークを使用するのは、例示によって実施可能な開示を提供するためであり、そのようなマークに関連するもののみに本発明の範囲を制限するように解釈されるべきではない。) Download PDF

Info

Publication number
JP2009076075A
JP2009076075A JP2008241616A JP2008241616A JP2009076075A JP 2009076075 A JP2009076075 A JP 2009076075A JP 2008241616 A JP2008241616 A JP 2008241616A JP 2008241616 A JP2008241616 A JP 2008241616A JP 2009076075 A JP2009076075 A JP 2009076075A
Authority
JP
Japan
Prior art keywords
data
metadata
validity
atomic
stored
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.)
Granted
Application number
JP2008241616A
Other languages
English (en)
Other versions
JP4916033B2 (ja
Inventor
Wendy Belluomini
ウエンディ・ベルオミニ
John Edward Bish
ジョン・エドワード・ビッシュ
Iii Kenneth Day
ケネス・デイ・サード
James Hafner
ジェームズ・ハフナー
Bret S Weber
ブレット・エス・ウエバー
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.)
LSI Corp
International Business Machines Corp
Original Assignee
LSI Corp
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 LSI Corp, International Business Machines Corp filed Critical LSI Corp
Publication of JP2009076075A publication Critical patent/JP2009076075A/ja
Application granted granted Critical
Publication of JP4916033B2 publication Critical patent/JP4916033B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

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
    • 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/104Metadata, i.e. metadata associated with RAID systems with parity
    • 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/109Sector level checksum or ECC, i.e. sector or stripe level checksum or ECC in addition to the RAID parity calculation

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)

Abstract

【課題】ディスク・ストレージ・システムにおけるデータの完全性の検証処理を支援するシステムおよび方法を提供する。
【解決手段】ストレージ・システムを構成するディスクドライブ上の1以上のセクタの論理表現を与えるデータチャンク中に、データとデータに関連して生成されたアトミック性メタデータ(AMD)および有効性メタデータ(VMD)を格納する。平行して低レイテンシ不揮発性ストレージ装置(LLNVS)中に有効性メタデータの1以上のコピーを格納し、アクセス時に比較照合することでデータの完全性を検証する。
【選択図】図2

Description

本発明は、ディスク・ストレージ・システムにおけるデータの完全性(Integrity)の検証処理に関し、より詳細には、ディスク・ストレージ・システムに格納されたデータの完全性を損なわせる可能性のある、起こりうる未検出ディスクエラー(Undetected
Disk Error)を、判定ないし決定するシステムおよび方法に関する。
ディスク・ドライブは、データを格納し、また取り出せるように設計されている。容量が増大し密度が高くなると、ディスク・ドライブは、これらの機能を達成する際の信頼性が低くなってくる。
3つのディスクの振る舞いが、ディスク・ドライブに格納されているデータを破壊する一因となる。書き込み中、書き込みデータの新しい「ビット」を置くために、ディスク・アームおよびヘッドは、物理ブロックを含むトラック上で充分に高い精度で位置合わせされなければならない。書き込みの場合には、2つのトラッキングエラーが生じ得る。全く意図していないトラックにデータが書き込まれる程度にヘッドがひどく外れて位置合わせされている場合か、データが2つの隣接するトラック相互間のギャップに落ち込む程度にヘッドが外れて位置合わせされている場合かである。
前者の場合、「ファー・オフ・トラック書き込み(Far Off-track Write)」として参照され、2つの物理ブロックがエラー状態に置かれる。何故ならターゲット・ブロック(書き込み先ブロック)が上書きされない故に、古いデータを含み、そしてその上書きされたブロックがそこにあるべきデータを失ってしまうからである。後者の場合、「ニア・オフ・トラック書き込み(Near Off-track Write)」として参照され、そのターゲット・ブロックが上書きされない故に、1つのブロックがエラー状態に置かれる。
書き込み中に生じ得る第2のタイプのエラーは、ディスク上でビットが変更されない場合に生じる。例えば、プリアンプ(前置増幅)信号が、プラッタ(円盤状の記録媒体)上のビットの磁気的セッティングを変更するには弱すぎる場合に生じる。この場合、そのプラッタ上に残留するデータは、陳腐化する(すなわち、そのドライブに発行された書き込みコマンドにあわせて更新されていない)。これらのエラーは、ビットがプラッタ上に記録されないため、書き込み落ち(Dropped Write)と呼ばれる。
上述の両タイプの書き込みエラーは、「未検出書き込みエラー(Undetected Write error)」として参照される。この理由は、ディスクが書き込みデータを間違った箇所に落としてしまい、その問題をディスク自体で検出できないからである。文言上、「書き込み落ち(Dropped Write)」もしくは「ファントム書き込みPhantom Write」という用語は、しばしばこれらの状況の一部または全てを記述するために使用される。
第3のタイプのエラーは、データ読み出しの際のヘッド位置合わせミスである。この場合、ディスクは、全く意図しないトラックからデータ・ビットを読み出す可能性もある(すなわち、ファー・オフ・トラック読み出し;Far Off-track Read)し、2つのトラック相互間のギャップから読み出す可能性(すなわち、ニア・オフ・トラック読み出し;Near Off-track Read)もあり、これらのことによって不正確なデータをユーザまたはアプリケーションに返す可能性がある。これらのエラーは、いずれも概して一過性であり、その次に同一トラックに対する読み出しが発生したときに修正される。さらに、その読み出しトラックが正しくとも、ファー・オフ・トラック書き込みの意図しないターゲットである場合には、不正確なデータがユーザまたはアプリケーションに返されることになる。
上述した全てのシナリオでは、ドライブは、典型的には問題を検出せずに、ユーザ、ホストまたはアプリケーションに成功状況通知を返す。ユーザまたはアプリケーションが不正確なデータを得ているにも関わらずディスクが成功状況を返すという他のエラー・シナリオも生じ得る。このような書き込みエラーまたは読み出しエラーを、未検出ディスクエラー(UDE;Undetected Disk Error)として参照することができる。ディスク・ドライブが独立にUDEを検出できないため、そのようなエラーを検出する他の方法を提供する必要がある。ディスク・ドライブへのデータの読み書きの確かさを検証するための関連技術においては、2つの主要な解決策のクラスが利用可能である。
第1のクラスは、ファイル・システムまたはアプリケーション層である。例えば、いくつかのファイル・システムおよび多くのデータベース・システムは、データ・チャンク(データの塊;例えば、4KBのチャンク)に対するチェックサムを使用し、このチェックサムは、データ・チャンク自体とは分離して格納される。このチェックサムは、データ・チャンクとともに読み出され、新しいチェックサムが、その読み出されたデータ・チャンクから再計算され、そのデータ・チャンクとともに読み出されたチェックサムと比較される。もしその新しいチェックサムがその古いものと一致する場合、その読み出されたデータ・チャンクが正しいものとみなされる。
上述の方法は、2つの根本的な限界を有する。第1に、上記の方法では、RAID(Redundant Array of Independent Disk Drives)のような何らかの追加的なデータ冗長性に統合されなければ、検出されたエラーからは一般に復元することができない。第2に、上記の方法は、全てのディスク読み出しに対して常にそのソースとなるわけではなく、故にチェックも必要な頻度で発生しない可能性がある。
例えば、ディスク読み出しソースがファイル・システムまたはアプリケーション層ではない場合、RAIDアーキテクチャにおける下位の(そして論理的に分離された)層が(例えば、読み出し−変更−書き込みシナリオにおいて)アプリケーション書き込みのコンテキストで読み出しを行う可能性がある。そのアプリケーション層は、これらのタイプの読み出しを確認しない。このような場合、その読み出しは、ディスクから不正確なデータを抽出して、この不正確なデータをRAID冗長データの更新のために使用する可能性がある。このように、アプリケーションにより検出されないエラーは、下位のRAID層においてエラーを伝播する可能性があり、ドライブにより生じる問題を一層ひどくする。
RAIDは、パフォーマンスを向上させたり、耐故障性(フォールト・トレランス)を提供したり、または両方を与えるために使用されるディスク・サブシステムである。RAIDアーキテクチャは、複数個のディスク・ドライブおよびひとつのディスク・コントローラ(アレイ・コントローラとしても知られている)を含む。RAIDは、ディスク・ストライピングによってパフォーマンスを向上させる。このディスク・ストライピングでは、複数個のドライブにわたって、バイトまたはバイトのグループをインターリーブし、従って1より多いディスクが同時に読み出しおよび書き込みされる。またRAIDアーキテクチャにおいて耐故障性は、ミラーリングまたはパリティを実装することによっても達成される。
上述のようなシステムの例としては、”Efficient Mechanisms for Detecting Phantom Write Errors(ファントム書き込みエラーを検出するための効果的なメカニズム)”と題する米国特許第07020805号明細書(特許文献1)、”Detection and Recovery of Dropped Writes in Storage Devices(ストレージ装置における書き込み落ちの検出および復元)」と題する米国特許出願公開第2006/0200497号明細書(特許文献2)、および”Proceedings of the seventh ACM symposium on Operating systems principles(オペレーティング・システム原理に関する第7回ACMシンポジウムの予稿集)”1979年の18−23頁の”A Client-based Transaction System to Maintain Data Integrity(データの整合性を維持するためのクライアント・ベースのトランザクション・システム)”と題されるウイリアム・パクストン(William Paxton)著の刊行論文(非特許文献1)がある。
UDEを検出する方法の第2のクラスは、読み出しまたは書き込みがアプリケーション層により発生しようと、ストレージ・システム層それ自体により発生しようとも、そのシステムにおいて発生する全てのディスクの読み書きが監視されるように、ハードウエア層に近い層でストレージ・システム自体に実装される。しかし、このクラスは、ストレージ・システムよりも上位の(例えば、ネットワークもしくは内部ホスト・バスにおける)システム層において生じるエラーを検出することはできない。問題を検出するだけでなく、エラーが生じた位置を特定することができ、そしてもし可能ならエラーを訂正することも可能な方法を有することが望ましい。
UDEの可能性のある位置の検出および訂正のためのストレージ・システム中で使用され得る方法のサブクラスが多数存在する。第1としては、パリティ・スクラビングに基づくものがある。ディスク障害から保護するRAIDシステム(RAID1またはRAID5)は、「パリティ・スクラブ(Parity Scrub)」と呼ばれる方法を使用してこれらの種類のエラーを検出することができる。例えば、RAID5システムでは、プロセスは、データおよび対応する冗長データ(すなわち、パリティ・データ)を読み出し、そのパリティ値を再計算し、そしてその再計算されたパリティ値をディスクから読み出されたパリティ値と比較する。
もしその2つのパリティ値が一致しないなら、エラーが生じたのである。あいにく、RAID5は、上述のように検出されたエラーの位置を、特定または訂正する手段を提供しない。より重要なことに、これらのパリティ・スクラブ(parity scrubs)は、UDEの発生およびパリティ・スクラブ動作の間にデータに対して適用された他の動作によりマスク(隠蔽)されたエラーを検出しない可能性もある。
例えば、UDEは、4つのデータ・ディスクと1つのパリティ・ディスクとからなるRAID5アレイにおいて、第1のディスクへの書き込み中に生じるかもしれない。続いて、アレイに第2、第3および第4のディスクに対する書き込みが発行されるかもしれない。この場合に典型的には、アレイは、第1のディスクからデータを読み出し、パリティを計算し、第2、第3および第4のディスクならびにパリティ・ディスクに新しいデータを書き出すというように処理動作を進めて、完全な書き込みを行うであろう。この動作後、第1のディスク上のデータは、まだ不正確なものであり、そのパリティは、全てのデータと一致する(すなわちそのときパリティは、第1のディスク上の不良データを含んでいる。)。その結果として、その後のパリティ・スクラブでは、その不良データを検知しないであろう。
他の例のエラー伝播は、UDEに続き、同一位置に書き込みが成功裡に正しく発生する場合(例えば、読み出し−変更−書き込みの方法論を用いて)に生じる。このような動作は、不良データの影響による壊れたパリティを残すであろう。要するに、その不良データが、UDEを有するディスクからパリティ・ディスクへ移動する。このような移行(マイグレーション;migration)作用は、ストライプへの任意の書き込み動作を行うために不良データがディスクから読み出されるたびに生じ得る。
RAID6のようなもっと高い耐故障性のRAIDアルゴリズムの場合でさえ、同様な、そしてもっと複雑なシナリオが生じる。RAID6は、2個のストレージ装置の損害からも復元し得る耐故障性のデータ・ストレージ・アーキテクチャである。RAID6は、同一データのセットのために、2つの独立した冗長値を格納することによって、その耐故障性を達成する。これに対してRAID5は、1つの冗長値、つまりパリティを格納するのみである。
RAID6アレイ上のパリティ・スクラブは、UDEを移行させたり、または隠蔽したりする可能性のある如何なる動作もストライプ上に行われなかった場合のみではあるが、UDEを検出し、その位置を特定し、そして訂正することが可能である(どのディスクも実際には故障していないと仮定する)。パリティ・スクラブは、非常に高コストな動作であり、典型的には節約的に実施される。その結果として、スクラブの実施前に、UDEを移行または検出し損なうような動作が行われないという条件付の仮定は、実際には滅多に維持されない。
RAID6(もしくはより高い耐故障性)における位置特定アルゴリズムが「Lost
Writes Detection in a Redundancy Group Based on RAID with Multiple Parity(多重パリティを備えたRAIDに基づく冗長グループにおける書き込み損ないの検出)」と題する米国特許出願公開第2006/0248378号明細書(特許文献3)に開示されている。この位置特定アルゴリズムは、初期検出方法としてパリティ・スクラブと連結して使用されなければならない。RAIDパリティ・スクラブ方法は、アレイにおけるUDEの検出およびその位置の特定またはそれらの両方、および訂正を信頼性高く行うことができない。
ストレージ・システム中でUDEの問題に対処する第2のサブクラスの方法は、そのシステムにおける書き込みキャッシュに基づく。「Detection and Recovery of Dropped Writes in Storage Devices(ストレージ装置における書き込み落ちの検出および復元)」と題する米国特許出願公開第2006/0179381明細書(特許文献4)に記述された方法は、キャッシュをディスクに書き込まれるデータの保持場所として使用する。データがディスクから再読み出しされ検証された後のみ、キャッシュからのデータがクリアされる。これは多数の要因から高コストな方法である。
第1に、ここで議論されている方法は、システムの読み書きキャッシュのパフォーマンスを改良するために使用される高価なキャッシュ・スペースを用いる必要がある。第2に、上記方法は、そのディスク上のデータを検証するために、個別の読み出しコール(separate read call)(いくらかの不特定の時間に)を必要とする。データが書き込まれた直後にその読み出しが生じる場合、ヘッド・トラッキング・システムが移動していない可能性があるため、オフトラック書き込みエラーが検出されない可能性がある。
(例えば、他の動作のためのより多くのキャッシュ・スペースを得るために)システムがキャッシュをクリアする必要があるときに読み出しが生じる場合、仕掛中の動作は、その読み出しおよび比較動作が起こるまで遅延させられるであろう。あるいは、中間的な時間に読み出し動作を発生させることもできるが、それは余分の入出力(IO)に伴いシステムのパフォーマンスに影響を与えるであろう。
第3のサブクラスは、そのデータの確かさを取り扱うために、ある種の形式のメタデータを使用する。このメタデータは、メモリに格納され、そしておそらくはそのメタデータに対応するアレイから分離したディスクまたはアレイに格納される。例えば、「System and Method for Detecting Write Errors in a Storage Device(ストレージ装置における書き込みエラーを検出するためのシステムおよび方法)」と題する米国特許出願公開第2005/0005191A1号明細書(特許文献5)は、UDE検出のための方法を開示する。一組の連続するデータ・ブロックにおける各ブロック毎のチェックサムおよびシーケンス番号が、直後に付加される追加のデータ・ブロックに格納される。ディスク上のブロックの全体コレクションのために、第2のコピーがメモリに格納され、このコピーは、ディスク(これは必然的に異なるディスクである)に定期的にフラッシュされ、好適には耐故障性のために2つのディスク上に格納される。
関連する仕組みが、「Data Integrity Error Handling in a Redundant Storage Array(冗長ストレージ・アレイにおけるデータ完全性エラーハンドリング)」と題する米国特許第06934904号明細書(特許文献6)に見られ、そこではチェックサムが使用されるだけであり、主チェックサムのストレージのための特定のルールは定義されていない。「Method for using CRC as Metadata to Protect Against Drive Anomaly Errors in a Storage Array(ストレージ・アレイにおけるドライブ異常エラーに対抗して保護するためのメタデータとしてCRCを用いる方法)」と題する米国特許出願公開第2003/0145279号明細書(特許文献7)は、位置特定アルゴリズムとともに検出するための同様のチェックサム・アルゴリズムを開示する。
上記の仕組みには、チェックサム/シーケンス番号データを維持および管理するために必要となる追加のIOおよび高いディスク・オーバーヘッドの難点がある。「Method and System for Striping Data to Accommodate Integrity Metadata(完全性メタデータを収容するためにデータをストライピングするための方法およびシステム)」と題する米国特許第07051155号明細書(特許文献8)は、第3のサブクラスの他の例を開示する。
ストレージ・ベースのUDEディテクタの第4のサブクラスは、ディスクから読み出されるデータの確かさを検証するために何らかの形式のメタデータを使用するという点で、第3のサブクラスと類似している。しかし第4のサブクラスでは、メタデータがアレイ中に保持され、そのアレイ中のデータまたはパリティと一緒に配置される。例えば、「Method and System for Striping Data to Accommodate Integrity Metadata(完全性メタデータを収容するためのデータをストライピングするための方法およびシステム)」と題する米国特許第07051155号明細書(特許文献8)は、ストライプ・メタデータの1つのコピーがそのストライプ中に格納される実施形態を開示する。
上述の仕組みは、ストライプ中のデータを更新するためにシステムが読み出し―変更―書き込み動作を行う場合に、パフォーマンス上の大きな利点を提供する。「Method for Storing Integrity Metadata in Redundant Data Layouts (冗長データ・レイアウトにおいて完全性メタデータを格納する方法)」と題する米国特許出願公開第2004/0123032号明細書(特許文献9)に記載された方法は、パリティ・ストライプのセクタに隣接する追加のセクタを用い、そのストライプ中にデータ・チャンクのためのメタデータを格納する。この方法は、メタデータの内容を検証するために、NVRAMに格納されるメタデータ上の世代番号の使用を含む。
第4のサブクラスの他の例は、「Parity Spreading to Enhance Storage Access(ストレージ・アクセスを増強するためのパリティ・スプレッディング)」と題する米国特許第04761785号明細書(特許文献10)、「Apparatus and Method to Check Data Integrity When Handling Data(データを処理するときのデータ完全性を検証する装置および方法)」と題する米国特許出願公開第2006/0109792A1号明細書(特許文献11)、および「Method and System for Striping Data to Accommodate Integrity Metadata(完全性メタデータを収容するためにデータをストライピングする方法およびシステム)」と題する米国特許第07051155号(特許文献8)に記述された、RAID5アレイに適用可能な方法を含む。
いくつかのディスク・ストレージ・システムでは、メタデータが不揮発性読み出しアクセス・メモリ(NVRAM)または回転ディスクに格納される。前者は、格納し管理すべきメタデータの全ボリュームを収容するためにかなりのコストおよびボード・レイアウトの問題が発生し、また不揮発性の状態にメモリを維持する手段を要する。さらに、このようなメモリは、マザーボードに多くの占有面積を取り、このことが問題になり得る。
特に、少なくとも2つの調和されたコントローラを備えている耐故障性のストレージ・システムでは、NVRAMが、その2つのコントローラ間で信頼性高く共有されていなければならない。これは実装が難しいか、もしくはパフォーマンスに難があるか、その両方に難がある複雑な共有メモリ・プロトコルを導入する。他方、回転ディスクには、パフォーマンス上大きな難があり、信頼性の問題もある。すなわち、回転ディスクは、メモリに比較して非常に低速のレイテンシ(遅延時間)を有するので、メタデータへのアクセス(例えば、読んだり書いたりする)が、全体のシステムにパフォーマンス上の重大な影響を及ぼす可能性がある。
その上、回転ディスクは、メモリに比較してかなり低い信頼性の記録を有する。結果として、不可欠なメタデータは、少なくともそれに対応するデータと同程度に確実に格納される必要がある。たとえば、データが2つのディスク損害が許容され得るRAID6アレイに格納される場合、メタデータも、同様に2つのディスク損害でも生き残ることができる態様で格納される必要がある。
米国特許第07020805号明細書 米国特許出願公開第2006/0200497号明細書 米国特許出願公開第2006/0248378号明細書 米国特許出願公開第2006/0179381号明細書 米国特許出願公開第2005/0005191A1号明細書 米国特許第06934904号明細書 米国特許出願公開第2003/0145279号明細書 米国特許第07051155号明細書 米国特許出願公開第2004/0123032号明細書 米国特許第04761785号明細書 米国特許出願公開第2006/0109792A1号明細書 「Proceedings of the seventh ACM symposium on Operating systems principles(オペレーティング・システム原理に関する第7回ACMシンポジウムの予稿集)」1979年の18−23頁に掲載のウイリアム・パクストン(William Paxton)著の刊行論文「A Client-based Transaction System to Maintain Data Integrity(データの整合性を維持するためのクライアント・ベースのトランザクション・システム)」
あいにく、UDEを検出して訂正するための上記クラスおよびサブクラスは、多くの状況下において問題を発見し、訂正することを支援するために、読出しまたは書き込みのエラーを充分詳細に明らかにする上で、効率が悪いか、あるいは効果的でないため、上記の要件は、多大な追加コストおよびパフォーマンスへの影響を負わせる。このように、上記欠点を克服することが可能なデータ復元方法およびシステムが必要とされる。
本発明の開示は、ディスク・ストレージ・システムにおけるデータの完全性の検証を支援するシステムおよび方法に関する。
要約すると、本明細書において、本発明のある種の側面、利点および新規な特徴が記述される。本発明のいずれか1つの特定の実施形態に従って、そのような全ての利点が達成され得るというわけではないことを理解されたい。従って、本明細書において教示され、示唆されるような全ての利点を達成することなく、1つの利点または一群の利点を達成または最適化する態様で本発明を実施することができる。
一実施形態によれば、データ格納方法が提供される。このデータ格納方法は、ストレージ・システム中の少なくとも1つの第1のディスク・ドライブ上の1以上のセクタの論理表現を与える少なくとも1つの第1のデータ・チャンク中に、第1のデータを格納するステップと、ストレージ・システム中の少なくとも1つの第1のディスク・ドライブ上のセクタ領域の論理表現を与える少なくとも1つの第1の付録情報中に、第1のデータに関連する第1のアトミック性メタデータおよび第1の有効性メタデータを含む第1のメタデータを、第1のデータに関連付けて格納するステップと、1以上の低レイテンシ不揮発性ストレージ装置中に、第1のデータに対する第1の有効性メタデータの1以上のコピーを、第1のチャンク中の内容または第1の付録情報に関連するエラーが検出された場合に、第1の付録情報に格納された第1の有効性メタデータと比較するために、低レイテンシ不揮発性ストレージ装置に格納された第1の有効性メタデータのコピーが低レベルのレイテンシでもってアクセスさせるように格納するステップとを含む。
本発明の他の実施形態によれば、データ・ストレージ・システムが提供される。このデータ・ストレージ・システムは、ストレージ・システム中の少なくとも1つの第1のディスク・ドライブ上の1以上のセクタの論理表現を与える少なくとも1つの第1のデータ・チャンク中に第1のデータを格納するための少なくとも1つの当該第1のディスク・ドライブと、第1のデータに関連付けられ、第1のデータに関連する第1のアトミック性メタデータおよび第1の有効性メタデータを含む第1のメタデータを格納し、ストレージ・システム中の少なくとも1つの第1のディスク・ドライブ上のセクタ領域の論理表現を与える第1の付録情報と、第1のデータに対する第1の有効性メタデータのコピーを格納し、第1のチャンク中の内容または第1の付録情報に関連するエラーが検出された場合に、第1の付録情報に格納された第1の有効性メタデータと比較するために、格納する第1の有効性メタデータのコピーが低レベルのレイテンシでもってアクセスされる1以上の低レイテンシ不揮発性ストレージ装置と
を含むデータ・ストレージ・システム。
以下、1つまたは複数の上記に開示した実施形態ならびに代替の実施形態について、添付の図面を参照しながら、詳細に説明する。本発明は、しかしながら、開示するいずれか特定の実施形態に限定されるものではない。
1つまたは複数の実施形態に従って、異なる図面において同一符号により参照する本発明の特徴、要素および側面は、同一、等価または同様な特徴、要素または側面を示す。
以下では、本発明の種々の実施形態の完全な記述を提供するために、多数の具体的な細部について説明する。本発明のある種の実施形態は、これらの具体的な細部がなくとも実施できるか、または細部にいくらか変形を加えて実施することができる。いくつかの例では、本発明の他の側面を不明瞭にしないために、ある種の特徴についてあまり詳細には説明しない。各々の要素または特徴の詳細さの程度が、他の特徴部に対するひとつの特徴の新規性または重要度とみなすように解釈すべきではない。
1つまたは複数の実施形態によれば、UDEを検出し、その位置を特定し、訂正するためのシステムおよび方法が提供される。例として、RAIDアーキテクチャに適用できるものとして、ある種の実施形態を本明細書に開示する。しかしながら、このような例示の実施形態は、本発明の範囲をRAIDシステムに限定するように解釈すべきでないことに留意されたい。本明細書で開示する原理および利点は、他のデータ・ストレージ環境にも等しく適用可能であろう。
一実施形態によれば、1以上のディスク・ドライブにデータが読み出しまたは書き込まれる場合にUDEを検出するための方法が提供される。UDEの発生を迅速に判定することを可能とするために、例えば書き込み中であれば、パリティ情報、有効性メタデータ(VMD)およびアトミック性メタデータ(AMD)に連結されてデータがディスクに書き込まれる。VMDは、その書き込まれたデータが壊れたかを調べるために、ターゲット・データに関連するシーケンス番号のような情報を提供する。AMDは、更新フェーズ中にターゲット・データおよび対応するVMDが成功裡に書き込まれたかどうかについての情報を提供する。VMDは、好適にはAMDに比べてボリュームが小さい。
一実施形態では、各ディスクのためのVMD、および好適にはそのミラー・コピーが、1以上の低レイテンシ不揮発性ストレージ(LLNVS)装置(例えばフラッシュ・デバイス)に書き込まれる。以下に詳細に示されるように、小さなVMDのサイズ、およびLLNVS装置の迅速なアクセス性が相俟って、ストレージ・システムにおけるコントロール・ユニットがUDEを迅速に検出することが可能となる。一実施形態では、検出されたエラーの位置をさらに正確に示すことが可能となるように、RISKアーキテクチャが上記のストレージ・システムのコンテキストにおいて実装されてもよい。
図1を参照すると、1つまたは複数の実施形態による、例示のデータ・ストレージ環境が提示されている。このデータ・ストレージ環境は、ホスト(例えばコンピューティング・システム)100に接続されるストレージ・システム110を含んで構成される。ホスト100は、ストレージ・システム110と通信して、ディスク・ドライブ180とデータの読み出しまたは書き込みする。一実施形態では、ストレージ・システム110にアレイ・コントローラ(すなわちディスク・コントローラ)120が設けられて、ホスト100により送出される読み書きの要求を管理および供給し、またエラー検出およびデータ復元のサービスを提供している。
アレイ・コントローラ120は、RAIDマネジャ140、IOハンドラ150、メタデータ・マネジャ130およびエラー・ハンドラ160を含んで構成することができる。RAIDマネジャ140は、耐故障性環境においてディスク・ドライブ180上のデータの維持に関連するタスクおよび動作を管理するように構成される。IOハンドラ150は、RAIDマネジャ140によって与えられる命令に従って、アレイ・コントローラ120へのデータの入出力を制御する。
メタデータ・マネジャ130は、ジェネレータ132およびチェッカ134を含んで構成される。ジェネレータ132は、データ付録、パリティ付録などに格納されるべきメタデータを生成するように構成される。このようなメタデータは、1つまたは複数の実施形態では、ディスク・ドライブ180上に格納されるデータ・チャンクに関連するAMDおよびVMDを含んで構成される。チェッカ134は、IOリクエストに応答してディスク・ドライブ180上に格納されたメタデータの確かさを検証するように構成される。
上述したように、VMDおよびAMDは、1つまたは複数の実施形態において、1以上のディスク・ドライブ180に読み出されるかまたは書き込まれたデータの有効性を検出することを支援するために用いることができる。一実施形態では、データの複数のセクタが、データ・チャンクに編成されてもよい。メタデータ・セクタまたはその一部を、対応するデータ・チャンクと一緒に配置して、データのAMDおよびVMDの両方を格納することができる。
ある種の実施形態では、LLNVS装置190をVMDの1以上の追加のコピーを格納するために使用して、このタイプのメタデータにアクセスするためのパフォーマンスを向上することができる。さらに、コンパクト・サイズのVMDを使用して、この種のメタデータのための全体コストおよびストレージ・オーバーヘッドを低減する。例示の実施形態によれば、AMDは、1以上の巡回冗長検査(CRC)メタデータを含んで構成することができる。このタイプのメタデータは、転送中またはストレージ中に偶発的なデータ改変を検出するためのチェックサムと同じように使用することができる。
一実施形態では、CRCは、例えばSCSI(small computer system interface)データ完全性フィールドのコンテキストにおいて計算することができる。このSCSI規格は、コマンド、プロトコル、ならびにハードディスクおよびテープ・ドライブで最も共通に使用される電気的および光学的なインタフェースを定義づけている。好適には、例示の実施形態では、SCSI規格に合致するような特別のハードウエアが実装されて、CRCを計算する効率的な手段を提供している。
いくつかの実施形態では、AMDは、ソフトウエアもしくはハードウエアにより計算される1以上の水平方向冗長検査(LRC)を含んでもよい。このLRCは、格納または転送されるデータの確かさを検証および判定するためにパリティ・ビットを用いることができる。上述したように、ストレージ・システム110は、メタデータがデータ自体と同程度に信頼性高く(RAIDシステムにおいて)格納されるように、VMDの冗長性コピーを保持するための1以上のLLNVS装置190を使用して実装することができる。
一実施形態によれば、ディスク・ドライブ180のためのデバイス・ドライバは、下位のRAID層に新しいデータを書き込む目的など任意の目的でディスク・ドライブ180からデータを読み出し、またはディスク・ドライブ180に書き込む場合に、データの確かさを監視および検証するための論理コードを含んで構成される。その結果として、デバイス・ドライバは、例えばパリティ・スクラブが検出できないような壊れたデータの移行もしくは隠蔽を防止する助けとなる。
1つまたは複数の実施形態では、デバイス・ドライバは、RAID層とは独立に実装されてもよく、その結果、ストレージ・システム110における1以上のRAIDアルゴリズムまたはフィルタとして働く単一のデータ完全性実装(Data Integrity Implementation)層が展開される。このデバイス・ドライバは(例えば、VMDまたはAMDのいずれかが破壊されたと判定されるとき)潜在的なエラーを報告することによってRAID層と通信することができる。好適には、RAID層は、しかし限定されるものではないが、パリティ・スクラブのような方法を採用して、エラーがデータ中にあるのか、メタデータ中にあるかを判定することができる。このRAID層は、破壊されたデータを訂正することが可能であってもよく、メタデータを修復するためにその結果がデータ完全性層に必要に応じかつ可能な場合に通信されてもよい。
図2および図3に示されるように、いくつかの実施形態では、例えば、ディスク・ドライブ上のデータは、それぞれデータ・チャンクおよび付録情報から構成される複数のメタデータ・チャンクに分割することができる。一実施形態では、データ・チャンクは、Xが少なくとも2であるとして、X個のディスク・セクタにわたることができる。この付録情報は、ひとつのセクタか、または部分的なセクタ(例えば1/2セクタ)にわたることができるこの付録情報は、データ・チャンクのための種々のタイプのメタデータ(例えば、AMD、VMD等)のコピーを保持することができる。
例を挙げると、上述のデータ付録との組み合わせをX/X+1スキームとして参照する。ただし、Xはデータ・セクタの数を表し、「+1」は例えば付録セクタを表す。いくつかの実施形態では、実装次第ではあるが、「+1」が部分的なセクタを表してもよい。ある例示の実施形態では、Xの値を8または16などとすることができる。
Xに割り当てる値は、多くの要因に依存する可能性がある。実装によっては、Xの値が大きくなればなるほどストレージ・システム110のストレージ効率は良くなる。一実施形態では、読み出しまたは書き込み動作中にデータ・セクタおよびその付録情報がともにアクセスされる場合に、Xの値が大きくなるにつれ、データ転送およびバンド幅コストが大きくなるかもしれない。
上述したように、一実施形態によれば、この付録情報は、AMDおよびVMDの両方のタイプのメタデータのコピーを含むことができる。AMDは、データ・チャンク中のデータのある種類のチェックサムを含むことができる。チェックサムは、LRCまたはCRCもしくはハッシュ値とすることができる。AMDは、データ・チャンクに関係する論理または物理ブロック・アドレスを計算する際に、適宜、種付けまたは包含することができる。代わりに、そのようなブロック・アドレスが、チェックサムとは別にAMDに含まれてもよい。
AMD中のチェックサムは、ユニットとしてX個のデータ・セクタに対して計算されても良いし、あるいは各セクタ毎といったようなより小さいサブチャンクのチェックサムの連結であってもよい。いくつかの実施形態では、ディスク・ドライブ180は、DMAエンジンにおいて、またはホストまたはディスク・インタフェースにおいて、セクタがシステムを通過するときに1以上のデータ・セクタに対してSCSIデータ完全性フィールド(DIF)CRCを計算する能力を有していてもよい。このCRCは、例えば2バイトであって、各セクタ毎のデータから計算されてもよい。
一実施形態では、データ・チャンク中のそれぞれのX個のセクタに対するDIFが連結されて、チャンクのためのAMDのチェックサム部分を提供することができる。代わりに、ディスク・ドライブ180が、DMAエンジンにおいて、データがメモリ・システムを移動する際に(LBAによって種付けされたものを伴って、または伴わずに)LRCを計算する能力を有していてもよい。LRCは、例えば1以上のバイトとすることができる。例示の実施形態では、LRCを2バイトもしくは4バイトとすることができる。
一実施形態によれば、X個のデータ・セクタからのLRCの連結が、データ・チャンクにおいてそのチャンクに対するチェックサム部分として使用されてもよい。上述した実装は、本質的に例示であり、1つまたは複数の代替の実施形態において、上述の特徴の目的に適う任意の他の代替の実装が、同一の目的を達成するために使用されてもよいことは注目すべき点である。
一実施形態では、VMDは、ある種のタイム・スタンプまたはフェーズ・マーカ(Phase Marker)を含んで構成される。このような実装は、クロック・ベースであってもよいし、あるいはシーケンス番号に関連していてもよい。このタイム・スタンプまたはフェーズ・マーカは、ディスクに新しいデータが書き込まれるたびに変更されるであろう。例えば、シーケンス番号は、例えば古いデータの読み出し後、現在のシーケンス番号が既知であれば、増分することが可能である。
もしも現在の値が既知でなければ、特定の範囲内のランダムな値もしくは固定値を反復するといったような、他の直接的な割り当てアルゴリズムが適用され得る。VMDは、例えば物理または論理ブロック・アドレスの符号化されたコピーを適宜含んで構成することができる。以下、本発明は、VMDの実装にシーケンス番号を使用する例示の実施形態に適用できるものとして開示される。しかしながら、この適用例は、例示であり、本発明の範囲が開示される特定の実施形態に限定されるものと解釈すべきではない。
一実施形態によれば、VMDの値は小さく(例えば、1ないし2バイト)、またVMDの値は、AMDのサイズとは独立であることが好ましい。VMDのサイズは、多数の要因によって決定することができる。例えば、VMDのサイズは、二次的な格納位置(例えば、LLNVS装置190)にVMDの1つまたは複数個のコピーを記憶するために専有されるストレージ・オーバーヘッド量によって制限されてもよい。
例えば、もしこのシステムが各々300GBの256個の物理ディスク・ドライブを有し、そしてチャンクのサイズをX=16とした場合、94億の異なるVMDの値が可能である。したがって、VMDのユニット・サイズは、一実施形態では、利用可能なストレージと大きなコピー(および必要ならその冗長コピー)のボリュームとがコスト効率の良い態様で適合し得るように選択することができる。上述のシナリオを考慮すると、もし各VMDのサイズが例えば2バイト(すなわちVMDに対しては比較的大きい)であれば、全体のストレージ・システム110に対して、VMDを冗長的な態様で格納するために、2個の10GBのLLNVS装置190を使用することができる。
一実施形態では、LLNVS装置190は、高速のストレージおよびアクセスのために、関連するメタデータを格納するために使用される。このLLNVS装置190は、例えば固体ディスク(Solid State Disk;SSD)を含んで構成することができる。このSSDは、ディスク・ドライブ180と同一のフォーム・ファクタおよびインタフェースを有することが好ましく、またストレージ・システム110のコンポーネントの回路設計レイアウトを大きく変更することなく、アレイ・コントローラ120と容易にインタフェースすることができる。
さらに、上記インタフェースは、1以上のアレイ・コントローラ120を調和させることによる共有のプロトコル・アクセスのための持ち前のメカニズムを提供することができる。いくつかの実施形態によれば、1以上のLLNVS装置190を使用して、ストレージ・システム110に対し、あるレベルの耐故障性を提供することができる。例えば、各LLNVS装置190を使用して、VMDの単一のコピーを格納することができる。そのような例示の実装では、ストレージの要件は最小限であり、コスト効率もよい。
図2を参照すると、ディスク・ドライブ180の1以上のセクタが複数個の論理ユニット(以下、チャンク(例えば、チャンクC0ないしC7)と参照する。)として表された実施形態を示す。各チャンクは、ディスク・ドライブ180における1個のセクタまたは1個のセクタのうちの一部を表す他の論理ユニット(以下、付録情報と参照する。)と関連付けられてもよい。上述したように、各付録情報は、例えばVMDおよびAMDという2つのタイプのメタデータを含んで構成することができる。
図示のとおり、チャンクC0は、例えばVMD0おおよびAMD0を含んで構成される付録情報と関連付けられることができる。一実施形態では、VMD0は、C0と関連してディスク・ドライブ180に格納され、また少なくとも1個のLLNVS装置190にも格納される。ストレージ・システム110において、複数のLLNVS装置190を使用して追加の冗長性を提供してもよい。LLNVS装置190は、ディスク・ドライブ180とは独立の態様でストレージ・システム110に結合されることが好ましい。すなわち、メタデータ・マネジャ130およびエラー・ハンドラ160は、ディスク・ドライブ180がアクセス可能かどうかに関わらず、LLNVS装置190に格納された情報へアクセスすることができる。
上述の例では、AMD0は、チャンクC0に格納されたデータのためのアトミック性メタデータであり、VMD0は、チャンクC0に格納されたデータのための有効性メタデータである。AMD0は、チャンクC0およびVMD0間の関連付けを提供し、その結果、アトミック性メタデータAMD0に基づきエラー・ハンドラ160は、例えばチャンクC0および有効性メタデータVMD0が単一の書き込み動作で書き込まれたか否かを判定することができるようになっている。図示のとおり、チャンクC1ないしC7にそれぞれ関連付けられたVMD1ないしVMD7もまた、例えばLLNVS0およびLLNVS1にも格納されてもよい。
VMD0は、LLNVS装置190にコピーされる際に、データ・チャンクC0中のデータに関する情報を与える。例えば、C0が書き込まれるたびに(例えば、タイム・スタンプを押すかまたはそのデータに関係するバージョン番号を増分するようにして)VMD0が変化する。データ・チャンクC0中のデータが同じままである場合でさえ(例えば、そのデータがホスト100により2回書き込まれる場合)VMD0が変化してもよい。もしバージョン番号がサイズに関して制限がなければ、VMD0が書き込まれるごとにバージョン番号が増分されて、エラーがなかったとしたら、何回それが書き換えられたについての情報を与える。例えば、VMD0は、データ・チャンクがC0のバージョン27である(すなわちC0が27回書き換えられた)ことを示す情報を与えることができる。タイム・スタンプについては、VMD0は、例えば7/31/07の日付の12:07:12という時刻に書き込まれたバージョンであることを表すことができる。図2に示す例示の実施形態では、AMD0は、LLNSV0またはLLNSV1にコピーされないことが注目に値する。その代わりに、AMD0およびC0の両方におけるデータが単一の読み出し動作にて読み出されてもよいように、AMD0は、C0に関連付けてディスク・ドライブ180に格納される。これについては、以下、詳細に述べる。
図3を参照すると、例示の実施形態がRAIDシステム・アーキテクチャ(例えば、RAID4またはRAID5のストライプのコンテキストにおいて)に適用できるものとして説明されている。この例示の実施形態では、ストライプあたり2個のチャンクが描かれている。しかしながら、この実施形態は、本発明の範囲を開示された特定のストライプあたりのチャンク数に限定するものと解釈してはならない。実装次第では、ストライプあたりもっと少ないか、またはもっと多いチャンクにより構成することもできる。
図示のとおり、例えば、ひとつの行からのチャンクおよびメタデータが、RAIDストライプのサブストライプを構成する。ストライプあたり2個のチャンクを備えた例示の実施形態では、論理的なホスト・アドレシングは、C0、C4、C1、C5などと相関する。実装次第では、1つまたは複数の実施形態は、RAID1、RAID3および任意のタイプのRAID6など、いかなるRAIDアーキテクチャ、あるいはリード・ソロモン(Reed-Solomon)に基づく符号などを含む、より高い耐故障性コードに対して適用するよう構成されてもよい。
図4ないし図6を参照すると、1つまたは複数の実施形態によるデータ検証およびエラー処理のための方法が提供される。以下に説明する方法では、1以上のLLNVS装置190に格納されるVMDの複数のコピーをRAID層へのアプリケーションにおいて使用して、入出力(IO)動作のためのホスト・リクエストに関連した入出力(IO)エラーの位置を特定し、訂正することを支援している。
本発明のある側面および利点は、例示のホスト動作(例えば、読み出し動作)のコンテキストにおいて適用された例示的なアルゴリズムに適用できるものとして開示される。しかしながら、開示した原理および利点は、他の実施形態による他の動作に等しく適用されることに注目されたい。
図1および図4を参照すると、一実施形態によるホストの読み出し動作を実行するための方法が提示される。ホスト100は、例えば、ディスク・ドライブ180からデータ・チャンクおよび関連する付録情報を読み出し(S410)、またひとつのLLNVS装置190から、データ・チャンクに対応するVMDの少なくとも一つのコピーも読み出す(ステップS420)。
一実施形態では、チェッカ134は、AMDを検査して読み出しデータの完全性を検証する(ステップS430)。読み出しデータに対するAMDがそのデータと矛盾する場合、チェッカ134は、データまたはその付録情報が破壊されてしまっていると判定して、チェッカ134は、エラー・ハンドラ160(例えば、図5の例示のAMDエラー・ハンドラ・モジュールを参照のこと。)を呼び出し、そのエラーを処理させることができる(ステップS440)。
他方、読み出しデータに関連するAMDが、そのデータと一致する場合、チェッカ134は、その読み出しデータに対するVMDの完全性を検証することができる(ステップS450)。もしVMDがその完全性チェック(例えば、データの付録情報に含まれるVMDのコピーがLLNVS装置190に格納されるVMDのコピーと一致する場合)をパスした場合、チェッカ134は、データが有効であるとみなし、ホスト100がそのリクエストされたIO動作(例えば、読み出し動作)を成功裡に完遂させる(ステップS470)。
一実施形態では、その付録情報およびLLNVS装置190のそれぞれに格納されたVMDの2個のコピーが矛盾する場合、チェッカ134は、エラー・ハンドラ160を呼び出して、エラーを処理(図6の実施形態のVMDエラー処理方法を参照のこと。)させることができる(ステップS460)。図5および図6に示すように、VMDおよびAMDのための2つのエラー処理方法では、RAID層と統合されて、1以上のLLNVS装置190に格納されるVMDの複数のコピーを使用して、ディスク・ドライブ180上に格納される破壊されたデータを修復することができる。
図1および図5を参照すると、AMDエラーが検出される場合(例えば、VMDを検査せずに、チェッカ134が読み出しデータに対するAMDが破壊されたと判定した場合)、そのデータまたは付録情報のいずれか、またはその両方が破壊されている可能性がある。
上述のシナリオでは、VMDの2つのコピー(すなわち、一方は付録情報に格納され、他方はLLNVS装置190に格納される)に一致するか否かに関わらず、その読み出しデータは、独立に有効なことを確認しなければならない可能性がある。結果として、一実施形態では、チェッカ134は、そのデータを再構築するためにRAID層を呼び出すことができる(ステップS510)。
エラー・ハンドラ160は、RAID層がそのデータを成功裏に修復またはその有効性を確認できるか否かを判定する(ステップS520)。もしできない場合、ロガー165がエラーをログ記録し(ステップS591)、ホストIO動作をフェイルにすなわち機能しないようにする(ステップS590)。もしRAID層が成功裡に再構築すれば、そのデータの2つのコピーが利用可能となる。ひとつはディスク・ドライブ180から直接読み出され、他方はその再構築動作の結果として生成されたものである。
一実施形態では、チェッカ134は、その再構築されたデータに関連するAMDが付録情報中のデータに関連付けられるAMDと一致するか否かを判定する(ステップS530)。もし一致する場合には、その再構築データは正しく、ディスク・ドライブ180から読み出されたデータが破壊されたものであり、かくして、エラー・ハンドラ160によってディスク・ドライブ180上のデータが修復される(ステップS540)。
いくつかの実施形態では、エラー・ハンドラ160は、そのデータに関連するメタデータ(例えば、AMDもしくはVMD)を修復または再生成することができ、そしてそのロガー165は、エラー状況をログ記録することができる(ステップS550)。従って、一旦エラー状況が判定され、その破壊されたデータが再構築されると、その再構築データがホスト100に送出され、IO動作が成功裡に完遂される(ステップS560)。
ステップS530のブロックに戻って説明すると、チェッカ134がその再構築データに関連付けられるAMDが、付録情報からのものと矛盾すると判定した場合、チェッカ134は、付録情報中のVMDがLLNVS装置190に格納されたVMDと一致するかどうか判定する(ステップS570)。もし一致する場合には、付録情報中のVMDが正しいものの、その再構築データに対するAMDがマッチしないため、ロガー165は、エラーをログ記録し(ステップS591)、ホスト100によってリクエストされたIO動作を機能させないようにすることができる(ステップS590)。
もしチェッカ134が、その付録情報中のVMDが1つのLLNVS装置190上に格納されたVMDと矛盾すると判定した場合、チェッカ134は、他のLLNVS装置190からミラーされたVMDを適宜読み出そうと試みることができる(ステップS592)。このプロセスは、複数のLLNVS装置190に格納されたVMDの複数のコピーが存在する場合に、VMDの有効性に関する結論的な結果に達するまで続行される。
上述のシナリオでは、付録情報中のVMDが破壊され、ディスクから読み出されたデータがなおも有効であるかもしれないという推定を残している可能性がある。一実施形態では、そのデータが有効であるか検証するために、チェッカ134は、再構築データを調べて、それがディスク・ドライブ180から読み出されたデータと一致するかを判定する(ステップS580)。もしその2つが一致すれば、プロセスは、ステップS550およびステップS560のブロックで説明したように、メタデータの修復を続行することができ、そうでなければ、ステップS590およびステップS591のブロックを参照して説明したように、エラーをロガー165は、ログ記録することができる。
ディスク・ドライブ180中に格納されたデータに関連付けられるAMDが付録情報からのAMDにマッチするものの、その付録情報に格納されたVMDが1つのLLNVS装置190に格納されたVMDに一致する場合以外には、VMDエラーを検出することができる。
例示の実施形態では、ディスク・ドライブ180上のデータに関連付けられるシーケンス番号が、そのデータに対するVMDを実装するために使用される。そのような実施形態では、そのデータのより古いバージョンのVMDを検査して、2つの値のいずれかが正しいのかを判定することができる。
図1および図6を参照すると、一実施形態によるVMDエラー処理方法が提示される。図示のとおり、VMDエラーが例えばターゲット・データに関連付けられるシーケンス番号に基づいて検出されると、そのターゲット・データに対するVMDを解析して、その位置および番号におけるエラーを判定することができる(ステップS610)。例えば、VMDは、書き込み毎に増分されるシーケンス番号を記録することができる。もしそのデータが備えるVMDが、LLNVS装置190中に格納されたVMDよりも1つ以上少なければ、そのデータは陳腐化している可能性が高い(すなわち、そのVMDは、LLNVS装置190中のVMDが増分されたのと同じようにして増分されなかった)。小さい固定サイズのシーケンス番号(例えば1バイト)については、シーケンス番号が最大値に達するとき循環することにしてもよい。一実施形態では、冗長度を向上するために、VMDの追加のコピーが他のLLNVS装置190にあってもよい。このコンテキストにおいて、冗長コピーが一致するかを判定するために票決による手順(Voting Procedure)を採用してもよい。もしいくつかが矛盾せず、いくつかが矛盾していれば、矛盾するひとつを使用して、エラーの位置を決定することができる。
一実施形態において、エラー・ハンドラ160は、エラーの位置を特定するように構成されている(ステップS620)。もしエラーの位置が特定されていれば、エラー・ハンドラ160は、エラーがターゲット・データに関連付けられたものであるか否かを判定することができる(ステップS650)。もしターゲット・データに関連付けられたものであれば、エラー・ハンドラ160は、RAID層にターゲット・データを再構築するよう要求することができる(ステップS660)。もしそのターゲット・データの再構築プロセスが成功裡に行われる場合(ステップS670)、ターゲット・データの対応するメタデータ(例えば、AMD/VMD)もまた修復され、ロガー165は、エラーをログ記録することができる(ステップS692)。実装次第では、その再構築データがホスト100に送出されて、そのIOリクエストを完遂することができる(ステップS693)。
ステップS670のブロックに戻って説明すると、もしその再構築の試みが成功しなかった場合、ロガー165は、エラーをログ記録し(ステップS680)、そしてその送出されたIOリクエストに応答してIO失敗がホスト100に返される。
ステップS650のブロックに戻って説明すると、もしエラー・ハンドラ160が、その検出されたVMDエラーに基づいてターゲット・データ中のエラーの位置を特定しない場合、LLNVS装置190に格納されたVMDが破壊されていると判定して、エラーが宣言される(ステップS691)。そのようなシナリオでは、VMDが修復され、ロガー165がエラーをログ記録し(ステップS692)、ホストIOリクエストが成功裡に完了される(ステップS693)。その際、好適にはRAIDの復元は行われない。
ステップS620のブロックに戻って説明すると、もしエラー・ハンドラ160がエラーの位置を特定しない場合、1以上のLLNVS装置190におけるVMDが検査され(ステップS630)、VMDのミラー・コピーを格納しているかもしれないLLNVS装置190からVMDの1以上の追加のコピーを読み出そうとする(ステップS640)。もしVMDの追加のコピーが取り出される場合、エラー・ハンドラ160は、ステップS610のブロックに戻って、詳細を上述しまた図6に説明したように、エラーを解析することができる。
異なる実施形態においては、本発明は、全体をハードウエアの様態で、または全体をソフトウエアの様態で、あるいはハードウエア要素およびソフトウエア要素の両方を組み合わせて実装することが可能である。例えば、エラー・ハンドラは、本発明のシステムにより期待される結果を達成する方法を行うために実行されるソフトウエア・コードおよびハードウエア・コンポーネントによって多くが提供され得る、制御されたコンピューティング・システム環境を含んで構成することができる。
図7および図8を参照すると、例示の実施形態によるコンピューティング・システム環境は、ハードウエア環境700およびソフトウエア環境800から構成される。このハードウエア環境700は、ソフトウエアのための実行環境を提供する機械装置および機材を含んで構成され、そのソフトウエアは、以下に提示するように、そのハードウエアのための制御命令を提供する。
ここに提示するように、図に示すハードウエア要素上で実行されるソフトウエア要素は、特定の論理的/機能的な関係によって説明される。しかしながら、ソフトウエアにより実装されるそれぞれの方法は、例えば、ASICs(特定用途向け集積回路)、FPGA(フィールド・プログラマブル・ゲート・アレイ)およびDSPs(ディジタル信号プロセッサ)など、構成およびプログラムされたプロセッサとしてハードウエアにより実装されてもよいことに留意されたい。
ソフトウエア環境800は、システム・ソフトウエア802およびアプリケーション・ソフトウエア804を含む2つの主要なクラスに分割される。システム・ソフトウエア802は、情報をどのように機能させ処理するかをハードウエアに命令する情報管理システムおよびオペレーティング・システム(OS)など、制御プログラムを含んで構成される。
一実施形態では、上述のデータ検証およびエラー処理プロセスは、1以上のハードウエア環境で実行されるアプリケーション・ソフトウエア804として実装されて、ストレージ・システム110におけるエラー検出およびデータ復元を容易なものとすることができる。アプリケーション・ソフトウエア804は、次のものに限定されないが、プログラム・コード、データ構造、ファームウエア、常駐ソフトウエア、マイクロコード、またはマイクロコントローラにより読み出され、解析され、または実行され得るいかなる形式の情報またはルーチンを含んで構成することができる。
代替の実施形態では、本発明は、コンピュータまたは如何なる命令実行システムにより使用され、またはこれらに関連して、プログラム・コードを提供する、コンピュータにより利用可能なまたはコンピュータ可読な媒体からアクセス可能なコンピュータ・プログラム製品として実装することができる。説明の目的として、コンピュータにより利用可能なまたはコンピュータ可読な媒体は、命令実行システム、装置またはデバイスにより使用され、またはこれらに関連して、プログラムを包含し、格納し、通信し、伝播し、または移送することのできる如何なる装置とすることができる。
コンピュータ可読な媒体は、電子的な、磁気的な、光学的な、電磁気的な、赤外線または半導体システム(または装置、もしくはデバイス)または伝送媒体とすることができる。コンピュータ可読な媒体の例としては、半導体または固体メモリ、磁気テープ、リムーバブル・コンピュータ・ディスケット(フロッピー(登録商標)・ディスク)、ランダム・アクセス・メモリ(RAM)、読み出し専用メモリ(ROM)、ハード磁気ディスクおよび光ディスクを含む。現在における光ディスクの例としては、読み出し専用コンパクト・ディスク(CD−ROM)、読み書き可能なコンパクト・ディスク(CD−R/W)およびディジタル・ビデオ・ディスク(DVD)を含む。
図7を参照すると、アプリケーション・ソフトウエア804の実施形態は、システム・バス704により1以上のメモリ素子に結合されるプロセッサ702を含んで構成されるハードウエア環境700などのデータ処理システム上で実行されるコンピュータ可読なコードの形態で、コンピュータ・ソフトウエアとして実装することができる。メモリ素子は、例えば、ローカル・メモリ706、ストレージ媒体708およびキャッシュ・メモリ716を含んで構成することができる。プロセッサ702は、ストレージ媒体708からローカル・メモリ706に実行可能コードを読み込む。キャッシュ・メモリ716は、一時的なストレージを提供して、実行のためにストレージ媒体708からコードを読み込む回数を低減している。
ユーザ・インタフェース装置712(例えば、キーボード、ポインティング・デバイスなど)およびディスプレイ・スクリーン714が、直接に、または介在するI/Oコントローラ710などを介して、そのコンピューティング・システムに結合されてもよい。ネットワーク・アダプタなどの通信インタフェース・ユニット718もまた、そのコンピューティング・システムに結合されて、そのデータ処理装置を、介在する専用または公衆ネットワークを介して他のデータ処理装置、リモート・プリンタまたはストレージ装置と通信可能にすることができる。有線または無線モデムおよびイーサーネット(登録商標)カードは、ネットワーク・アダプタのいくつかの例示タイプである。
1つまたは複数の実施形態において、ハードウエア環境700は、上記のすべてのコンポーネントを含まなくてもよいし、あるいは追加の機能またはユーティリティのために他のコンポーネントを含んでもよい。例えば、ハードウエア環境700は、ラップトップ・コンピュータや、セット・トップ・ボックス、PDA(パーソナル・データ・アシスタント)、モバイル通信ユニット(例えば携帯電話)、または情報処理およびデータ・ストレージ、またはこれらのいずれか一方、および通信の能力を有する他の同様なハードウエア・プラットフォームなど、組み込みシステムに具体化された他のポータブル・コンピューティング装置とすることができる。
本システムの幾つかの実施形態では、通信インタフェース708が他のシステムと通信する。この通信は、プログラム・コードを含む種々のタイプの情報を表現するディジタル・データ・ストリームを搬送する電子的、電磁気的または光学的な信号を送受信することによって行われる。この通信は、リモート・ネットワーク(例えばインターネット)、または代替として搬送波上での伝送によって確立されてもよい。
図8を参照すると、アプリケーション・ソフトウエア804は、ストレージ媒体708からローカル・メモリ702中に読み込まれた後にシステム・ソフトウエア802の上で実行される1以上のコンピュータ・プログラムを含んで構成することができる。クライアント・サーバー・アーキテクチャでは、アプリケーション・ソフトウエア804は、クライアント・ソフトウエアおよびサーバー・ソフトウエアを含んで構成することができる。例えば、本発明の一実施形態では、クライアント・ソフトウエアがホスト100上で実行され、そしてサーバー・ソフトウエアがストレージ・システム110上で実行されてもよい。
またソフトウエア環境800は、ローカルもしくはリモートのコンピューティング・ネットワーク上で利用可能なデータにアクセスするためのブラウザ・ソフトウエア808を含んで構成することができる。さらに、ソフトウエア環境800は、ユーザ・コマンドおよびデータを受け取るためのユーザ・インタフェース806(例えば、グラフィカル・ユーザ・インタフェース(GUI))を含んで構成されてもよい。上述したハードウエアおよびソフトウエアのアーキテクチャおよび環境は、例示を目的とするものであり、本発明の1つまたは複数の実施形態は、如何なる種類のシステム・アーキテクチャまたは情報処理環境の上で実装できることに留意されたい。
ここでの論理コード、プログラム、モジュール、プロセス、方法および各方法の個々のステップが実行される順序は、純粋に例示しただけであることに留意されたい。実装次第では、これらのステップは、本特許開示において特段の示唆をしない限り、いかなる順序で、または並行して実行することができる。さらに、ここでの論理コードは、任意の特定のプログラミング言語に関連または限定されるものではなく、そして分散環境、非分散環境またはマルチプロセッシング環境にある1以上のプロセッサ上で実行する1以上のモジュールを含んで構成することができる。
したがって、本発明が、添付の特許請求の範囲の趣旨および範囲内で変形もしくは修正して実施され得ることに留意されたい。本説明は、余す所なく網羅したり、開示されたとおりの正確な様態に本発明を限定したりすることを意図するものではない。これら開示の実施形態、そしてこれらの種々の他の適用および組み合わせが、本発明の範囲内であり、かつ特許請求の範囲、およびその均等物の全ての範囲によってさらに定義されものである。
本発明の実施形態は、以下の添付図面を参照することによって理解されよう。
1つまたは複数の実施形態による、データ・ストレージ環境およびそのコンポーネントの例示的なブロック図。 1つまたは複数の実施形態による、チャンク(該チャンクに格納されるデータに対応するメタデータを含む付録情報にそれぞれ関連付けられる)として示されるディスク・ドライブの1以上のセクタにデータを書き込むストレージ・システムにおけるディスク・ドライブの論理ブロック図。 1つまたは複数の実施形態による、チャンク(該チャンクに格納されたデータに対応するメタデータを含む付録情報にそれぞれ関連付けられる)として示されるディスク・ドライブの1以上のセクタにデータを書き込むストレージ・システムにおけるディスク・ドライブの論理ブロック図。 1つまたは複数の実施形態による、データ検証方法のフローチャート。 1つまたは複数の実施形態による、データ検証方法のフローチャート。 1つまたは複数の実施形態による、データ検証方法のフローチャート。 1つまたは複数の実施形態による、本発明のシステムが動作し得るハードウエアおよびソフトウエアの環境のブロック図。 1つまたは複数の実施形態による、本発明のシステムが動作し得るハードウエアおよびソフトウエアの環境のブロック図。
符号の説明
100…ホスト(コンピューティング・システム)、110…ストレージ・システム、120…アレイ・コントローラ、130…メタデータ・マネジャ、132…ジェネレータ、134…チェッカ、140…RAIDマネジャ、150…IOハンドラ、160…エラー・ハンドラ、165…ロガー、180…ディスク・ドライブ、190…LLNVS装置(低レイテンシ不揮発性ストレージ装置)、700…ハードウエア環境、702…プロセッサ、704…システム・バス、706…ローカル・メモリ、708…ストレージ媒体、710…I/Oコントローラ、712…ユーザ・インタフェース装置、714…ディスプレイ・スクリーン、716…キャッシュ・メモリ、718…通信インタフェース、800…ソフトウエア環境、802…システム・ソフトウエア、804…アプリケーション・ソフトウエア、806…ユーザ・インタフェース、808…ブラウザ

Claims (20)

  1. データ格納方法であって、
    ストレージ・システム中の少なくとも1つの第1のディスク・ドライブ上の1以上のセクタの論理表現を与える少なくとも1つの第1のデータ・チャンク中に、第1のデータを格納するステップと、
    前記ストレージ・システム中の少なくとも1つの前記第1のディスク・ドライブ上のセクタ領域の論理表現を与える少なくとも1つの第1の付録情報中に、前記第1のデータに関連する第1のアトミック性メタデータおよび第1の有効性メタデータを含む第1のメタデータを、前記第1のデータに関連付けて格納するステップと、
    1以上の低レイテンシ不揮発性ストレージ装置中に、前記第1のデータに対する前記第1の有効性メタデータの1以上のコピーを、前記第1のチャンク中の内容または前記第1の付録情報に関連するエラーが検出された場合に、前記第1の付録情報に格納された前記第1の有効性メタデータと比較するために、前記低レイテンシ不揮発性ストレージ装置に格納された前記第1の有効性メタデータのコピーが低レベルのレイテンシでもってアクセスさせるように格納するステップと
    を含むデータ格納方法。
  2. 前記第1の有効性メタデータは、前記第1のデータが破壊されているかを判定するために使用される前記第1のデータについての情報を与える、請求項1に記載のデータ格納方法。
  3. 前記第1のアトミック性メタデータは、前記第1のデータおよび前記第1の付録情報中に格納された対応する前記第1の有効性メタデータがともに更新フェーズ中に成功裡に書き込まれたタイミング情報を与える、請求項1に記載のデータ格納方法。
  4. 前記第1の有効性メタデータに関連するエラーが判定されたことに応答して、前記付録情報中に格納された前記第1の有効性メタデータを解析して、前記第1のデータが破壊されているかを判定するステップをさらに含む、請求項1に記載のデータ格納方法。
  5. 前記第1のデータに対する動作を行うためのホスト・システムからのリクエストを受信したことに応答して、前記第1のアトミック性メタデータを検査して、前記第1の有効性メタデータの有効性を判定するステップをさらに含む、請求項1に記載のデータ格納方法。
  6. 前記付録情報中の前記第1の有効性メタデータを、前記低レイテンシ不揮発性ストレージ装置に格納された前記第1の有効性メタデータのコピーと比較して、前記付録情報中に格納された前記第1の有効性メタデータが破壊されているかを判定するステップをさらに含む、請求項4に記載のデータ格納方法。
  7. 前記付録情報中の前記第1の有効性メタデータが破壊されていないと判定されたことに応答して、前記第1のデータを再構築するステップをさらに含む、請求項6に記載のデータ格納方法。
  8. 前記付録情報中の前記第1の有効性メタデータが破壊されていると判定されたことに応答して、前記第1の有効性メタデータを再構築するステップをさらに含む、請求項6に記載のデータ格納方法。
  9. 前記第1のアトミック性メタデータが破壊されていると判定されたことに応答して、第前記第1のデータを再構築して第2のデータを生成するステップと、
    前記第2のデータに関連する第2のアトミック性メタデータを決定するステップと、
    前記第1のアトミック性メタデータを前記第2のアトミック性メタデータと比較して、前記第1のアトミック性メタデータおよび前記第2のアトミック性メタデータが一致するかを判定するステップと、
    前記第1のアトミック性メタデータが前記第2のアトミック性メタデータと一致すると判定されたことに応答して、前記第1のチャンク中に格納される前記第1のデータを前記第2のデータと置き換えるステップと
    を含む、請求項5に記載のデータ格納方法。
  10. 前記第1のアトミック性メタデータおよび前記第2のアトミック性メタデータが一致しないと判定されたことに応答して、前記第1のアトミック性メタデータまたは前記第1の有効性メタデータを修復するステップをさらに含む、請求項9に記載のデータ格納方法。
  11. ストレージ・システム中の少なくとも1つの第1のディスク・ドライブ上の1以上のセクタの論理表現を与える少なくとも1つの第1のデータ・チャンク中に第1のデータを格納するための少なくとも1つの当該第1のディスク・ドライブと、
    前記第1のデータに関連付けられ、前記第1のデータに関連する第1のアトミック性メタデータおよび第1の有効性メタデータを含む第1のメタデータを格納し、前記ストレージ・システム中の少なくとも1つの前記第1のディスク・ドライブ上のセクタ領域の論理表現を与える第1の付録情報と、
    前記第1のデータに対する前記第1の有効性メタデータのコピーを格納し、前記第1のチャンク中の内容または前記第1の付録情報に関連するエラーが検出された場合に、前記第1の付録情報に格納された前記第1の有効性メタデータと比較するために、格納する前記第1の有効性メタデータのコピーが低レベルのレイテンシでもってアクセスされる1以上の低レイテンシ不揮発性ストレージ装置と
    を含むデータ・ストレージ・システム。
  12. 前記第1の有効性メタデータは、前記第1のデータが破壊されるかを判定するために使用される前記第1のデータについての情報を与える、請求項11に記載のデータ・ストレージ・システム。
  13. 前記第1のアトミック性メタデータは、前記第1のデータおよび前記第1の付録情報中に格納された対応する前記第1の有効性メタデータがともに更新フェーズ中に成功裡に書き込まれたタイミング情報を与える、請求項11に記載のデータ・ストレージ・システム。
  14. 前記第1の有効性メタデータに関連するエラーが判定されたことに応答して、前記付録情報中に格納された前記第1の有効性メタデータを解析して、前記第1のデータが破壊されているかを判定する、請求項11に記載のデータ・ストレージ・システム。
  15. 前記第1のデータに対する動作を行うためのホスト・システムからのリクエストを受信したことに応答して、前記第1のアトミック性メタデータを検査して、前記第1の有効性メタデータの有効性を判定する、請求項11に記載のデータ・ストレージ・システム。
  16. 前記付録情報中の前記第1の有効性メタデータが、前記低レイテンシ不揮発性ストレージ装置中に格納された前記第1の有効性メタデータのコピーと比較して、前記付録情報中に格納された前記第1の有効性メタデータが破壊されているかを判定する、請求項14に記載のデータ・ストレージ・システム。
  17. 前記付録情報中の前記第1の有効性メタデータが破壊されていないと判定されたことに応答して、前記第1のデータを再構築する、請求項16に記載のデータ・ストレージ・システム。
  18. 前記付録情報中の前記第1の有効性メタデータが破壊されていると判定されたことに応答して、前記第1の有効性メタデータを再構築する、請求項16に記載のデータ・ストレージ・システム。
  19. 前記第1のアトミック性メタデータが破壊されていると判定されたことに応答して、前記第1のデータを再構築して、第2のデータを生成し、
    前記第2のデータに関連する第2のAMDを決定し、
    前記第1のアトミック性メタデータを前記第2のアトミック性メタデータと比較して、前記第1のアトミック性メタデータおよび前記第2のアトミック性メタデータが一致するかを判定し、
    前記第1のアトミック性メタデータが前記第2のアトミック性メタデータと一致すると判定されたことに応答して、前記第1のチャンク中に格納される前記第1のデータを前記第2のデータと置き換える、請求項15に記載のデータ・ストレージ・システム。
  20. コンピュータ可読なプログラムをコンピュータ利用可能に格納する記録媒体であって、前記コンピュータ可読なプログラムは、コンピュータ上で実行されてコンピュータに対し、
    ストレージ・システム中の少なくとも1つの第1のディスク・ドライブ上の1以上のセクタの論理表現を与える少なくとも1つの第1のデータ・チャンク中に、第1のデータを格納するステップと、
    前記ストレージ・システム中の少なくとも1つの前記第1のディスク・ドライブ上のセクタ領域の論理表現を与える少なくとも1つの第1の付録情報中に、前記第1のデータに関連する第1のアトミック性メタデータおよび第1の有効性メタデータを含む第1のメタデータを、前記第1のデータに関連付けて格納するステップと、
    1以上の低レイテンシ不揮発性ストレージ装置中に、前記第1のデータに対する前記第1の有効性メタデータの1以上のコピーを、前記第1のチャンク中の内容または前記第1の付録情報に関連するエラーが検出された場合に、前記第1の付録情報に格納された前記第1の有効性メタデータと比較するために、前記低レイテンシ不揮発性ストレージ装置に格納された前記第1の有効性メタデータのコピーが低レベルのレイテンシでもってアクセスさせるように格納するステップと
    を実行させ、前記第1のアトミック性メタデータは、1以上の巡回冗長検査メタデータおよび水平方向冗長検査を含む、記録媒体。
JP2008241616A 2007-09-24 2008-09-19 データ格納方法、データ・ストレージ・システムおよびプログラム(ストレージ・システムにおけるデータ完全性の検証)(著作権および商標登録表示本特許文書の開示の一部は、著作権保護を受ける内容を含む。本所有権者は、特許文書または特許開示書のいずれか一つによるファクシミリ複写物には、複写物が特許商標庁の特許ファイルまたは記録として世に出現している限り異論はないが、他の場合に全ての著作権は完全に留保する。)(本明細書で参照するある種のマークについては、出願人またはその譲受人と提携しまたは提携しない第三者の、慣習法上の、または登録された商標である可能性がある。これらのマークを使用するのは、例示によって実施可能な開示を提供するためであり、そのようなマークに関連するもののみに本発明の範囲を制限するように解釈されるべきではない。) Expired - Fee Related JP4916033B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/860,461 US7873878B2 (en) 2007-09-24 2007-09-24 Data integrity validation in storage systems
US11/860,461 2007-09-24

Publications (2)

Publication Number Publication Date
JP2009076075A true JP2009076075A (ja) 2009-04-09
JP4916033B2 JP4916033B2 (ja) 2012-04-11

Family

ID=40472959

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008241616A Expired - Fee Related JP4916033B2 (ja) 2007-09-24 2008-09-19 データ格納方法、データ・ストレージ・システムおよびプログラム(ストレージ・システムにおけるデータ完全性の検証)(著作権および商標登録表示本特許文書の開示の一部は、著作権保護を受ける内容を含む。本所有権者は、特許文書または特許開示書のいずれか一つによるファクシミリ複写物には、複写物が特許商標庁の特許ファイルまたは記録として世に出現している限り異論はないが、他の場合に全ての著作権は完全に留保する。)(本明細書で参照するある種のマークについては、出願人またはその譲受人と提携しまたは提携しない第三者の、慣習法上の、または登録された商標である可能性がある。これらのマークを使用するのは、例示によって実施可能な開示を提供するためであり、そのようなマークに関連するもののみに本発明の範囲を制限するように解釈されるべきではない。)

Country Status (2)

Country Link
US (1) US7873878B2 (ja)
JP (1) JP4916033B2 (ja)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010282628A (ja) * 2009-06-08 2010-12-16 Lsi Corp ダイレクトアタッチト・ストレージ(das)システムでキャッシングされたデータの保全性を保護する方法及び装置
US20140231396A1 (en) * 2013-02-18 2014-08-21 GM Global Technology Operations LLC Method for resistance welding with pre-chilling
WO2015107675A1 (ja) * 2014-01-17 2015-07-23 株式会社日立製作所 ストレージ装置および制御方法
JP2015201204A (ja) * 2014-04-03 2015-11-12 シーゲイト テクノロジー エルエルシー データ記憶装置におけるデータ保全性管理
JP2016526720A (ja) * 2013-06-19 2016-09-05 エグザブロックス・コーポレーション クラスタベースの記憶システムにおけるデータスクラビング
JP2016535896A (ja) * 2013-08-13 2016-11-17 ロンギチュード エンタープライズ フラッシュ エスエイアールエル 注釈付きアトミック書き込み操作を行う方法および装置
US9640264B2 (en) 2013-04-01 2017-05-02 Samsung Electronics Co., Ltd. Memory system responsive to flush command to store data in fast memory and method of operating memory system

Families Citing this family (126)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050066230A1 (en) * 2003-09-23 2005-03-24 Bean Robert George Data reliabilty bit storage qualifier and logical unit metadata
US7877626B2 (en) * 2007-12-31 2011-01-25 Datadirect Networks, Inc. Method and system for disk storage devices rebuild in a data storage system
US9477570B2 (en) * 2008-08-26 2016-10-25 Red Hat, Inc. Monitoring software provisioning
CA2745646C (en) * 2009-04-21 2017-09-19 International Business Machines Corporation Apparatus and method for controlling a solid state disk (ssd) device
US7945822B1 (en) * 2009-04-27 2011-05-17 Netapp, Inc. Storing data to multi-chip low-latency random read memory device using non-aligned striping
US8370720B2 (en) * 2009-08-19 2013-02-05 Ocz Technology Group, Inc. Mass storage device and method for offline background scrubbing of solid-state memory devices
US8566689B2 (en) * 2009-10-22 2013-10-22 Microsoft Corporation Data integrity units in nonvolatile memory
US9582345B2 (en) * 2009-12-14 2017-02-28 Appfolio, Inc. Systems and methods for importing data from data sources over a network while correcting and transforming the data
US9411682B2 (en) * 2010-01-14 2016-08-09 Hewlett Packard Enterprise Development Lp Scrubbing procedure for a data storage system
US8458513B2 (en) 2010-07-30 2013-06-04 Hewlett-Packard Development Company, L.P. Efficient failure recovery in a distributed data storage system
US9009569B2 (en) * 2010-10-18 2015-04-14 Xyratex Technology Limited Detection and correction of silent data corruption
US8601313B1 (en) 2010-12-13 2013-12-03 Western Digital Technologies, Inc. System and method for a data reliability scheme in a solid state memory
US8601311B2 (en) 2010-12-14 2013-12-03 Western Digital Technologies, Inc. System and method for using over-provisioned data capacity to maintain a data redundancy scheme in a solid state memory
US8615681B2 (en) 2010-12-14 2013-12-24 Western Digital Technologies, Inc. System and method for maintaining a data redundancy scheme in a solid state memory in the event of a power loss
US8595595B1 (en) * 2010-12-27 2013-11-26 Netapp, Inc. Identifying lost write errors in a raid array
US8700950B1 (en) 2011-02-11 2014-04-15 Western Digital Technologies, Inc. System and method for data error recovery in a solid state subsystem
US9342405B2 (en) * 2011-02-25 2016-05-17 Seagate Technology Llc Hierarchical data compression testing
US8700951B1 (en) * 2011-03-09 2014-04-15 Western Digital Technologies, Inc. System and method for improving a data redundancy scheme in a solid state subsystem with additional metadata
US20120254547A1 (en) 2011-03-31 2012-10-04 International Business Machines Corporation Managing metadata for data in a copy relationship
US8589761B2 (en) * 2011-05-31 2013-11-19 Micron Technology, Inc. Apparatus and methods for providing data integrity
US8589640B2 (en) 2011-10-14 2013-11-19 Pure Storage, Inc. Method for maintaining multiple fingerprint tables in a deduplicating storage system
US8892828B2 (en) 2011-11-18 2014-11-18 Micron Technology, Inc. Apparatuses and methods for storing validity masks and operating apparatuses
US20130198585A1 (en) * 2012-02-01 2013-08-01 Xyratex Technology Limited Method of, and apparatus for, improved data integrity
US9019643B2 (en) * 2013-03-15 2015-04-28 Massachusetts Institute Of Technology Method and apparatus to reduce access time in a data storage device using coded seeking
CN105359107B (zh) * 2013-05-16 2019-01-08 慧与发展有限责任合伙企业 报告针对分布式对象取回的数据的降级状态
WO2014185916A1 (en) 2013-05-16 2014-11-20 Hewlett-Packard Development Company, L.P. Selecting a store for deduplicated data
EP2997497B1 (en) 2013-05-16 2021-10-27 Hewlett Packard Enterprise Development LP Selecting a store for deduplicated data
US11068363B1 (en) 2014-06-04 2021-07-20 Pure Storage, Inc. Proactively rebuilding data in a storage cluster
US9218244B1 (en) 2014-06-04 2015-12-22 Pure Storage, Inc. Rebuilding data across storage nodes
US9836234B2 (en) 2014-06-04 2017-12-05 Pure Storage, Inc. Storage cluster
US10574754B1 (en) 2014-06-04 2020-02-25 Pure Storage, Inc. Multi-chassis array with multi-level load balancing
US9367243B1 (en) 2014-06-04 2016-06-14 Pure Storage, Inc. Scalable non-uniform storage sizes
US9003144B1 (en) 2014-06-04 2015-04-07 Pure Storage, Inc. Mechanism for persisting messages in a storage system
US11960371B2 (en) 2014-06-04 2024-04-16 Pure Storage, Inc. Message persistence in a zoned system
US11652884B2 (en) 2014-06-04 2023-05-16 Pure Storage, Inc. Customized hash algorithms
US9836245B2 (en) 2014-07-02 2017-12-05 Pure Storage, Inc. Non-volatile RAM and flash memory in a non-volatile solid-state storage
US8868825B1 (en) 2014-07-02 2014-10-21 Pure Storage, Inc. Nonrepeating identifiers in an address space of a non-volatile solid-state storage
US11604598B2 (en) 2014-07-02 2023-03-14 Pure Storage, Inc. Storage cluster with zoned drives
US9021297B1 (en) 2014-07-02 2015-04-28 Pure Storage, Inc. Redundant, fault-tolerant, distributed remote procedure call cache in a storage system
US11886308B2 (en) 2014-07-02 2024-01-30 Pure Storage, Inc. Dual class of service for unified file and object messaging
US9811677B2 (en) 2014-07-03 2017-11-07 Pure Storage, Inc. Secure data replication in a storage grid
US9747229B1 (en) 2014-07-03 2017-08-29 Pure Storage, Inc. Self-describing data format for DMA in a non-volatile solid-state storage
US10853311B1 (en) 2014-07-03 2020-12-01 Pure Storage, Inc. Administration through files in a storage system
US9483346B2 (en) 2014-08-07 2016-11-01 Pure Storage, Inc. Data rebuild on feedback from a queue in a non-volatile solid-state storage
US9495255B2 (en) 2014-08-07 2016-11-15 Pure Storage, Inc. Error recovery in a storage cluster
US9082512B1 (en) 2014-08-07 2015-07-14 Pure Storage, Inc. Die-level monitoring in a storage cluster
US10983859B2 (en) 2014-08-07 2021-04-20 Pure Storage, Inc. Adjustable error correction based on memory health in a storage unit
US10079711B1 (en) 2014-08-20 2018-09-18 Pure Storage, Inc. Virtual file server with preserved MAC address
US9710320B2 (en) 2015-03-23 2017-07-18 Microsoft Technology Licensing, Llc Data processing validation
US9940234B2 (en) 2015-03-26 2018-04-10 Pure Storage, Inc. Aggressive data deduplication using lazy garbage collection
US10678641B2 (en) * 2015-03-31 2020-06-09 EMC IP Holding Company LLC Techniques for optimizing metadata resiliency and performance
US10178169B2 (en) 2015-04-09 2019-01-08 Pure Storage, Inc. Point to point based backend communication layer for storage processing
US9672125B2 (en) 2015-04-10 2017-06-06 Pure Storage, Inc. Ability to partition an array into two or more logical arrays with independently running software
US10552403B2 (en) * 2015-05-21 2020-02-04 Vmware, Inc. Using checksums to reduce the write latency of logging
US10846275B2 (en) 2015-06-26 2020-11-24 Pure Storage, Inc. Key management in a storage device
US10983732B2 (en) 2015-07-13 2021-04-20 Pure Storage, Inc. Method and system for accessing a file
US10108355B2 (en) 2015-09-01 2018-10-23 Pure Storage, Inc. Erase block state detection
US11341136B2 (en) 2015-09-04 2022-05-24 Pure Storage, Inc. Dynamically resizable structures for approximate membership queries
US10489240B2 (en) 2015-09-25 2019-11-26 Microsoft Technology Licensing, Llc Efficient detection of corrupt data
US9768953B2 (en) 2015-09-30 2017-09-19 Pure Storage, Inc. Resharing of a split secret
US10853266B2 (en) 2015-09-30 2020-12-01 Pure Storage, Inc. Hardware assisted data lookup methods
US10762069B2 (en) 2015-09-30 2020-09-01 Pure Storage, Inc. Mechanism for a system where data and metadata are located closely together
US9843453B2 (en) 2015-10-23 2017-12-12 Pure Storage, Inc. Authorizing I/O commands with I/O tokens
US10007457B2 (en) 2015-12-22 2018-06-26 Pure Storage, Inc. Distributed transactions with token-associated execution
US10261690B1 (en) 2016-05-03 2019-04-16 Pure Storage, Inc. Systems and methods for operating a storage system
US11861188B2 (en) 2016-07-19 2024-01-02 Pure Storage, Inc. System having modular accelerators
US9672905B1 (en) 2016-07-22 2017-06-06 Pure Storage, Inc. Optimize data protection layouts based on distributed flash wear leveling
US10768819B2 (en) 2016-07-22 2020-09-08 Pure Storage, Inc. Hardware support for non-disruptive upgrades
US11604690B2 (en) 2016-07-24 2023-03-14 Pure Storage, Inc. Online failure span determination
US11886334B2 (en) 2016-07-26 2024-01-30 Pure Storage, Inc. Optimizing spool and memory space management
US10366004B2 (en) 2016-07-26 2019-07-30 Pure Storage, Inc. Storage system with elective garbage collection to reduce flash contention
US11734169B2 (en) 2016-07-26 2023-08-22 Pure Storage, Inc. Optimizing spool and memory space management
US11797212B2 (en) 2016-07-26 2023-10-24 Pure Storage, Inc. Data migration for zoned drives
US10203903B2 (en) 2016-07-26 2019-02-12 Pure Storage, Inc. Geometry based, space aware shelf/writegroup evacuation
US11422719B2 (en) 2016-09-15 2022-08-23 Pure Storage, Inc. Distributed file deletion and truncation
US9747039B1 (en) 2016-10-04 2017-08-29 Pure Storage, Inc. Reservations over multiple paths on NVMe over fabrics
US10481798B2 (en) 2016-10-28 2019-11-19 Pure Storage, Inc. Efficient flash management for multiple controllers
US11550481B2 (en) 2016-12-19 2023-01-10 Pure Storage, Inc. Efficiently writing data in a zoned drive storage system
US11307998B2 (en) 2017-01-09 2022-04-19 Pure Storage, Inc. Storage efficiency of encrypted host system data
US10547326B2 (en) * 2017-01-12 2020-01-28 Proton World International N.V. Error correction in a flash memory
US9747158B1 (en) 2017-01-13 2017-08-29 Pure Storage, Inc. Intelligent refresh of 3D NAND
US11955187B2 (en) 2017-01-13 2024-04-09 Pure Storage, Inc. Refresh of differing capacity NAND
US10528488B1 (en) 2017-03-30 2020-01-07 Pure Storage, Inc. Efficient name coding
US11016667B1 (en) 2017-04-05 2021-05-25 Pure Storage, Inc. Efficient mapping for LUNs in storage memory with holes in address space
US10141050B1 (en) 2017-04-27 2018-11-27 Pure Storage, Inc. Page writes for triple level cell flash memory
US10516645B1 (en) 2017-04-27 2019-12-24 Pure Storage, Inc. Address resolution broadcasting in a networked device
US11782625B2 (en) 2017-06-11 2023-10-10 Pure Storage, Inc. Heterogeneity supportive resiliency groups
US10425473B1 (en) 2017-07-03 2019-09-24 Pure Storage, Inc. Stateful connection reset in a storage cluster with a stateless load balancer
US10642796B2 (en) * 2017-07-18 2020-05-05 International Business Machines Corporation File metadata verification in a distributed file system
US10402266B1 (en) 2017-07-31 2019-09-03 Pure Storage, Inc. Redundant array of independent disks in a direct-mapped flash storage system
US10496330B1 (en) 2017-10-31 2019-12-03 Pure Storage, Inc. Using flash storage devices with different sized erase blocks
US10545687B1 (en) 2017-10-31 2020-01-28 Pure Storage, Inc. Data rebuild when changing erase block sizes during drive replacement
US10860475B1 (en) 2017-11-17 2020-12-08 Pure Storage, Inc. Hybrid flash translation layer
US10467527B1 (en) 2018-01-31 2019-11-05 Pure Storage, Inc. Method and apparatus for artificial intelligence acceleration
US10976948B1 (en) 2018-01-31 2021-04-13 Pure Storage, Inc. Cluster expansion mechanism
US11036596B1 (en) 2018-02-18 2021-06-15 Pure Storage, Inc. System for delaying acknowledgements on open NAND locations until durability has been confirmed
US10997066B2 (en) 2018-02-20 2021-05-04 Samsung Electronics Co., Ltd. Storage devices that support cached physical address verification and methods of operating same
US10642688B2 (en) 2018-04-12 2020-05-05 EMC IP Holding Company LLC System and method for recovery of unrecoverable data with enhanced erasure coding and replication
US10592338B2 (en) * 2018-04-27 2020-03-17 EMC IP Holding Company LLC Scale out data protection with erasure coding
US11385792B2 (en) 2018-04-27 2022-07-12 Pure Storage, Inc. High availability controller pair transitioning
US10878111B2 (en) 2018-08-03 2020-12-29 Western Digital Technologies, Inc. Peer storage devices supporting protection information
US11868309B2 (en) 2018-09-06 2024-01-09 Pure Storage, Inc. Queue management for data relocation
US11354058B2 (en) 2018-09-06 2022-06-07 Pure Storage, Inc. Local relocation of data stored at a storage device of a storage system
US11500570B2 (en) 2018-09-06 2022-11-15 Pure Storage, Inc. Efficient relocation of data utilizing different programming modes
US10976947B2 (en) 2018-10-26 2021-04-13 Pure Storage, Inc. Dynamically selecting segment heights in a heterogeneous RAID group
TWI740187B (zh) * 2019-02-20 2021-09-21 慧榮科技股份有限公司 存取方法
US11099986B2 (en) 2019-04-12 2021-08-24 Pure Storage, Inc. Efficient transfer of memory contents
US11281394B2 (en) 2019-06-24 2022-03-22 Pure Storage, Inc. Replication across partitioning schemes in a distributed storage system
US11893126B2 (en) 2019-10-14 2024-02-06 Pure Storage, Inc. Data deletion for a multi-tenant environment
US11704192B2 (en) 2019-12-12 2023-07-18 Pure Storage, Inc. Budgeting open blocks based on power loss protection
US11416144B2 (en) 2019-12-12 2022-08-16 Pure Storage, Inc. Dynamic use of segment or zone power loss protection in a flash device
US11847331B2 (en) 2019-12-12 2023-12-19 Pure Storage, Inc. Budgeting open blocks of a storage unit based on power loss prevention
US11188432B2 (en) 2020-02-28 2021-11-30 Pure Storage, Inc. Data resiliency by partially deallocating data blocks of a storage device
CN113467701A (zh) * 2020-03-31 2021-10-01 启碁科技股份有限公司 存储器设备和设备信息维护方法
US11474986B2 (en) 2020-04-24 2022-10-18 Pure Storage, Inc. Utilizing machine learning to streamline telemetry processing of storage media
US11429498B2 (en) 2020-05-08 2022-08-30 Vmware, Inc. System and methods of efficiently resyncing failed components without bitmap in an erasure-coded distributed object with log-structured disk layout
US11379318B2 (en) 2020-05-08 2022-07-05 Vmware, Inc. System and method of resyncing n-way mirrored metadata on distributed storage systems without requiring checksum in the underlying storage
US11403189B2 (en) 2020-05-08 2022-08-02 Vmware, Inc. System and method of resyncing data in erasure-coded objects on distributed storage systems without requiring checksum in the underlying storage
US11182250B1 (en) * 2020-07-02 2021-11-23 Vmware, Inc. Systems and methods of resyncing data in erasure-coded objects with multiple failures
US11494090B2 (en) 2020-09-25 2022-11-08 Vmware, Inc. Systems and methods of maintaining fault tolerance for new writes in degraded erasure coded distributed storage
US20220129437A1 (en) * 2020-10-27 2022-04-28 EMC IP Holding Company LLC Configuration metadata recovery
US11487455B2 (en) 2020-12-17 2022-11-01 Pure Storage, Inc. Dynamic block allocation to optimize storage system performance
US11614880B2 (en) 2020-12-31 2023-03-28 Pure Storage, Inc. Storage system with selectable write paths
US11847324B2 (en) 2020-12-31 2023-12-19 Pure Storage, Inc. Optimizing resiliency groups for data regions of a storage system
US11507597B2 (en) 2021-03-31 2022-11-22 Pure Storage, Inc. Data replication to meet a recovery point objective
US11775381B2 (en) * 2021-09-17 2023-10-03 Micron Technology, Inc. Redundancy metadata schemes for RAIN protection of large codewords

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003330629A (ja) * 2002-05-16 2003-11-21 Nec Corp ディスクアレイ制御装置及び方法並びにディスクアレイ制御プログラム
JP2005004733A (ja) * 2003-06-11 2005-01-06 Internatl Business Mach Corp <Ibm> ストレージ・システムにおいて書込みエラーを検出するための配置構成および方法
JP2006252530A (ja) * 2005-02-08 2006-09-21 Fujitsu Ltd ディスクライト抜け検出装置およびディスクライト抜け検出方法

Family Cites Families (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4761785B1 (en) * 1986-06-12 1996-03-12 Ibm Parity spreading to enhance storage access
US5233618A (en) * 1990-03-02 1993-08-03 Micro Technology, Inc. Data correcting applicable to redundant arrays of independent disks
JP2682811B2 (ja) * 1994-03-22 1997-11-26 インターナショナル・ビジネス・マシーンズ・コーポレイション データ記憶管理システム及び方法
US6209090B1 (en) * 1997-05-29 2001-03-27 Sol Aisenberg Method and apparatus for providing secure time stamps for documents and computer files
US6195761B1 (en) * 1997-12-31 2001-02-27 Emc Corporation Method and apparatus for identifying and repairing mismatched data
US6480970B1 (en) * 2000-05-17 2002-11-12 Lsi Logic Corporation Method of verifying data consistency between local and remote mirrored data storage systems
US6658592B1 (en) * 2000-07-20 2003-12-02 Emc Corporation Error detection in disk storage systems
US6952797B1 (en) * 2000-10-25 2005-10-04 Andy Kahn Block-appended checksums
JP4818812B2 (ja) * 2006-05-31 2011-11-16 株式会社日立製作所 フラッシュメモリストレージシステム
GB2376323B (en) * 2001-06-09 2006-03-15 Hewlett Packard Co Trusted and verifiable data storage system
US6804674B2 (en) * 2001-07-20 2004-10-12 International Business Machines Corporation Scalable Content management system and method of using the same
US20030023933A1 (en) * 2001-07-27 2003-01-30 Sun Microsystems, Inc. End-to-end disk data checksumming
KR100392382B1 (ko) * 2001-07-27 2003-07-23 한국전자통신연구원 동적 크기 변경 및 메타 데이터 양의 최소화를 위한 논리볼륨 관리 방법
JP3702231B2 (ja) * 2002-01-31 2005-10-05 株式会社東芝 ディスクアレイ装置及び同装置における動的記憶容量拡張方法
US7051155B2 (en) * 2002-08-05 2006-05-23 Sun Microsystems, Inc. Method and system for striping data to accommodate integrity metadata
US20040123032A1 (en) * 2002-12-24 2004-06-24 Talagala Nisha D. Method for storing integrity metadata in redundant data layouts
US7380198B2 (en) * 2003-06-11 2008-05-27 International Business Machines Corporation System and method for detecting write errors in a storage device
US7237141B2 (en) * 2003-06-19 2007-06-26 Lsi Corporation Method for recovering data from a redundant storage object
CN100350371C (zh) * 2003-10-07 2007-11-21 普安科技股份有限公司 磁盘阵列一致性初始化方法
US7360113B2 (en) * 2004-08-30 2008-04-15 Mendocino Software, Inc. Protocol for communicating data block copies in an error recovery environment
US7454686B2 (en) * 2004-11-23 2008-11-18 International Business Machines Corporation Apparatus and method to check data integrity when handling data
US7360112B2 (en) * 2005-02-07 2008-04-15 International Business Machines Corporation Detection and recovery of dropped writes in storage devices
US7188230B2 (en) * 2005-02-15 2007-03-06 Hitachi, Ltd. Method of assuring data integrity on storage volumes
US8452929B2 (en) * 2005-04-21 2013-05-28 Violin Memory Inc. Method and system for storage of data in non-volatile media
US7552357B2 (en) * 2005-04-29 2009-06-23 Network Appliance, Inc. Lost writes detection in a redundancy group based on RAID with multiple parity
JP2007122476A (ja) * 2005-10-28 2007-05-17 Fujitsu Ltd データストレージシステム、データストレージ制御装置及びそのディスクのライト抜け診断方法
CN101000610B (zh) * 2006-01-11 2010-09-29 鸿富锦精密工业(深圳)有限公司 文件分散式储存系统及方法
US7650367B2 (en) * 2006-01-13 2010-01-19 Tekelec Methods, systems, and computer program products for detecting and restoring missing or corrupted data in a distributed, scalable, redundant measurement platform database
US7752489B2 (en) * 2007-05-10 2010-07-06 International Business Machines Corporation Data integrity validation in storage systems

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003330629A (ja) * 2002-05-16 2003-11-21 Nec Corp ディスクアレイ制御装置及び方法並びにディスクアレイ制御プログラム
JP2005004733A (ja) * 2003-06-11 2005-01-06 Internatl Business Mach Corp <Ibm> ストレージ・システムにおいて書込みエラーを検出するための配置構成および方法
JP2006252530A (ja) * 2005-02-08 2006-09-21 Fujitsu Ltd ディスクライト抜け検出装置およびディスクライト抜け検出方法

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010282628A (ja) * 2009-06-08 2010-12-16 Lsi Corp ダイレクトアタッチト・ストレージ(das)システムでキャッシングされたデータの保全性を保護する方法及び装置
KR101345572B1 (ko) 2009-06-08 2014-01-06 엘에스아이 코포레이션 직접 연결 저장 장치(das)시스템에서 캐시 데이터의 무결성을 보호하기 위한 방법 및 장치
US20140231396A1 (en) * 2013-02-18 2014-08-21 GM Global Technology Operations LLC Method for resistance welding with pre-chilling
US9640264B2 (en) 2013-04-01 2017-05-02 Samsung Electronics Co., Ltd. Memory system responsive to flush command to store data in fast memory and method of operating memory system
JP2016526720A (ja) * 2013-06-19 2016-09-05 エグザブロックス・コーポレーション クラスタベースの記憶システムにおけるデータスクラビング
JP2016535896A (ja) * 2013-08-13 2016-11-17 ロンギチュード エンタープライズ フラッシュ エスエイアールエル 注釈付きアトミック書き込み操作を行う方法および装置
WO2015107675A1 (ja) * 2014-01-17 2015-07-23 株式会社日立製作所 ストレージ装置および制御方法
JP2015201204A (ja) * 2014-04-03 2015-11-12 シーゲイト テクノロジー エルエルシー データ記憶装置におけるデータ保全性管理

Also Published As

Publication number Publication date
US20090083504A1 (en) 2009-03-26
JP4916033B2 (ja) 2012-04-11
US7873878B2 (en) 2011-01-18

Similar Documents

Publication Publication Date Title
JP4916033B2 (ja) データ格納方法、データ・ストレージ・システムおよびプログラム(ストレージ・システムにおけるデータ完全性の検証)(著作権および商標登録表示本特許文書の開示の一部は、著作権保護を受ける内容を含む。本所有権者は、特許文書または特許開示書のいずれか一つによるファクシミリ複写物には、複写物が特許商標庁の特許ファイルまたは記録として世に出現している限り異論はないが、他の場合に全ての著作権は完全に留保する。)(本明細書で参照するある種のマークについては、出願人またはその譲受人と提携しまたは提携しない第三者の、慣習法上の、または登録された商標である可能性がある。これらのマークを使用するのは、例示によって実施可能な開示を提供するためであり、そのようなマークに関連するもののみに本発明の範囲を制限するように解釈されるべきではない。)
US8176405B2 (en) Data integrity validation in a computing environment
EP2156292B1 (en) Data integrity validation in storage systems
US7315976B2 (en) Method for using CRC as metadata to protect against drive anomaly errors in a storage array
US7661020B1 (en) System and method for reducing unrecoverable media errors
US7464322B2 (en) System and method for detecting write errors in a storage device
US9430329B2 (en) Data integrity management in a data storage device
US11531590B2 (en) Method and system for host-assisted data recovery assurance for data center storage device architectures
US7774643B2 (en) Method and apparatus for preventing permanent data loss due to single failure of a fault tolerant array
US8074113B2 (en) System and method for data protection against power failure during sector remapping
US20130198585A1 (en) Method of, and apparatus for, improved data integrity
Hafner et al. Undetected disk errors in RAID arrays
JP2006164319A (ja) 不正データを検出するための装置、方法、及びプログラム
US7730370B2 (en) Apparatus and method for disk read checking
US20040250028A1 (en) Method and apparatus for data version checking
US20100138603A1 (en) System and method for preventing data corruption after power failure
US7577804B2 (en) Detecting data integrity
JP4469822B2 (ja) ディスクアレイ装置およびディスクアレイ装置のデータ管理方法
JP2003036146A (ja) ディスクアレイ制御方式
US7210091B2 (en) Recovering track format information mismatch errors using data reconstruction
US10642816B2 (en) Protection sector and database used to validate version information of user data
JP2010049394A (ja) 磁気ディスクの書き込み障害の検出と回復を行うディスクアレイシステム、方法およびプログラム

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110322

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110615

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20120117

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120123

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150203

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees