[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

JP2007524932A - パリティデータを生成するための方法、システム、及びプログラム - Google Patents

パリティデータを生成するための方法、システム、及びプログラム Download PDF

Info

Publication number
JP2007524932A
JP2007524932A JP2006542900A JP2006542900A JP2007524932A JP 2007524932 A JP2007524932 A JP 2007524932A JP 2006542900 A JP2006542900 A JP 2006542900A JP 2006542900 A JP2006542900 A JP 2006542900A JP 2007524932 A JP2007524932 A JP 2007524932A
Authority
JP
Japan
Prior art keywords
data
logic engine
old
new
parity data
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
JP2006542900A
Other languages
English (en)
Inventor
シュミッサー、マーク
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.)
Intel Corp
Original Assignee
Intel 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 Intel Corp filed Critical Intel Corp
Publication of JP2007524932A publication Critical patent/JP2007524932A/ja
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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Detection And Correction Of Errors (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

パリティデータを使用する1つのデータ組織化形式で1つのストレージデバイスアレイ内に記憶された旧データを更新する場合の、パリティデータを生成するための1つの方法、システム、及びプログラムが提供される。一実施形態において、1つのロジックエンジンは、1つの読み込みオペレーションにおいて取得された新データが記憶される複数のレジスタ又は複数のストアキューを有する。排他的論理和ファンクションのような1つの論理ファンクションが、他の1つの読み込みオペレーションにおいて取得された旧データを用いて、複数のレジスタのそれぞれの新データに対して実行される。第1タイプの新パリティデータを生成すべく、排他的論理和ファンクションのような1つのロジックファンクションが、他の1つの読み込みオペレーションにおいて取得された第1タイプの旧パリティデータを用いて、複数のレジスタのうちの1つの中の中間データに対して実行される。第2タイプの新パリティデータを生成すべく、排他的論理和ファンクションのような1つのロジックファンクションが、他の1つの読み込みオペレーションにおいて取得された第2タイプの旧パリティデータを用いて、複数のレジスタのうちの他の1つの中の中間データに対して実行される。

Description

実施形態は、RAIDシステムのような、1つの組織化システムのためのパリティデータを生成するための方法、システム、及びプログラムに関する。
ディスクドライブのようなデータ記憶デバイスに記憶されるデー他の一例のタを組織化するために様々な技術が提案されている。そのようなデータ記憶構成の1つは、独立(又は廉価)ディスク冗長アレイすなわち(RAID)と呼ばれる。RAID構成においては、2以上のディスクドライブが、耐障害性又はパフォーマンス、或いはその両方を向上させるべく組み合わせて使用される。異なる複数のタイプのRAIDデータストレージ構成が存在しており、これらの異なる複数のタイプはしばしばRAIDレベル0、1、2、・・・と呼ばれる。
RAIDレベル0のデータ構成においては、例えば、1つのユーザファイルのデータは"ストライプ"すなわちユーザデータの複数のブロックが、パフォーマンスを向上させるべく複数のディスクにわたって分散される。しかしながら、RAIDレベル0のデータ構成においては、一般的には、もしドライブのうちの1つが機能しなくなった場合にデータのリカバリのために提供される冗長性は存在しない。RAIDレベル3のデータ構成はRAIDレベル0に似ているが、1つのディスクは典型的にはエラー訂正データを記憶するためにリザーブされ、エラー訂正データはしばしば"パリティデータと呼ばれる。このパリティデータは、ドライブのうちの1つが機能しなくなった場合に失われたデータ再構築するために使用され得る。RAIDレベル5のデータ構成においては、ディスクドライブアレイにわたるデータストライプのそれぞれについてパリティデータが提供され、パリティデータを記憶することに個別のディスクドライブは供されない。代わりに、パフォーマンスを向上させるべく、ユーザデータの複数のストライプのためのパリティデータの複数のブロックが、全てのディスクアレイにわたって分散される。
1つのRAID5構成において、ディスクドライブアレイにわたるデータストライプのそれぞれについてパリティデータの1つのブロックが存在する。そのような配置は、1つのドライブが機能しなくなった場合にデータの容易な復元を提供する。2以上のドライブが機能しなくなった場合に、いくつかのストレージアプリケーションは、よりロバストなデータ保護から利益を得ることができる。一般的にそれぞれのデータストライプについてパリティデータの2つのブロックを持つ追加のRAIDスキームが開発されている。1つの知られたパリティスキームは、"水平"パリティブロック及び"対角"パリティブロックを含む。RAID−5DP(デュアルパリティ)又はRAID6のような用語が、これら又は類似のデータ組織化構成のためにストレージ業界で使用される。
図1は、RAIDシステムにおけるストライプnのような1つのストライプ上の旧データを新データで更新する場合に、新パリティデータを生成すべく実行され得る論理オペレーションを示す。図1に示されるように、1つの排他的論理和ファンクションが、新データ30及びストライプnの旧データ32上で実行される。ストライプnについての新パリティデータ36を生成すべく、排他的論理和ファンクションの結果が、ストライプnの旧パリティデータ34と排他的論理和がとられる。新パリティデータ36は適切なRAIDストレージユニット上の旧パリティデータ34を上書きするために使用され、新データ30は適切なRAIDストレージユニット上の旧データ32を上書きするために使用される。
図2は、図1の論理機能に従って、新データを複数のRAIDストレージユニットに書き込む場合に新パリティデータを生成するRAIDストレージプロセッサのロジックエンジン50の従来技術の一例を示す。ロジックエンジン50は、矢印54によって表されるようなストアキュー52の内容及び矢印56によって表されるような入力に存在するデータについて排他的論理和の論理ファンクションを実行することができる1つのストアキュー52を有する。Intel80303集積回路チップは、アプリケーションアクセラレータユニット(AAU)と呼ばれる1つの類似のロジックエンジンを持つ。
新パリティデータの生成における図2のロジックエンジン50のオペレーションは図3に表される。ストアキュー52をリセット(ブロック60)すると、新データ30がローカルメモリ64(図2)読み込まれ(ブロック62)、ストアキュー52に記憶される。ストアキュー52が予めリセットされているので、ローカルメモリ64から読み込まれた新データ30及びストアキュー52のリセット内容を排他的論理和ファンクションを実行することによって、新データ30がストアキュー52に記憶される。読み込みオペレーションのサイズは、典型的にはストアキュー52の容量に依存する。したがって、例えばストアキュー52の容量が1Kバイトである場合、一般的に、読み込みオペレーションはストアキュー52が1Kバイトの新データ30で満たされるまで継続する。
新データ30によって置き換えられるべき旧データ32がローカルメモリ64から読み込まれ(ブロック64)、ストアキュー52に予め記憶された新データ30と排他的論理和がとられ(ブロック66)、ストアキュー52内に中間結果として記憶される。第3読み込みオペレーションにおいて、ローカルメモリ64から旧パリティデータ34が読み込まれ(ブロック68)、ストアキュー52に予め記憶されている中間結果と排他的論理和がとられる(ブロック70)。最後の排他的論理和オペレーションの結果が、続くローカルメモリ64及び複数のストレージデバイスのストライプnへの転送のためにストアキュー52に記憶される新パリティデータ36となる。
それにもかかわらず、データストレージ構成におけるプロセッサのパフォーマンスを向上させるために、継続的な技術的必要性が存在する。
全体にわたり同様の参照番号が対応する構成要素を表す図面を参照する。
RAIDパリティデータを生成する従来技術を示す。 RAIDパリティデータの生成のためのロジックエンジンの従来技術を示す。 図2のロジックエンジンの従来技術を用いてパリティデータを生成するオペレーションの従来技術を示す。 複数の態様が実装されたコンピューティング環境の一実施形態を示す。 RAIDパリティデータの生成のための複数の態様に従う、ストレージプロセッサの一実施形態を示す。 RAIDパリティデータの生成のための複数の態様に従う、図5のストレージプロセッサのためのロジックエンジンの一実施形態を示す。 パリティデータを生成するために実行される複数のオペレーションの一実施形態を示す。 パリティデータを生成するために実行される複数のオペレーションの一実施形態を示す。 パリティデータを生成する複数のオペレーションの一実施形態における、図6のロジックエンジンのストアキューの内容を示す。 パリティデータを生成する複数のオペレーションの一実施形態における、図6のロジックエンジンのストアキューの内容を示す。 記載された複数の実施形態で使用され得る一アーキテクチャを示す。
以下の説明において、この文書の一部を形成し、いくつかの実施形態を示す添付の図面に対して参照がなされる。他の実施形態が利用されてよく、構造的又は機能的変更がなされてよいことが理解される。
図4は、複数の態様が実装された1つのコンピューティング環境を示す。1つのコンピュータ102は、1以上の中央処理装置(CPU104(1つだけ図示される)、1つのメモリ106、不揮発性ストレージ108、1つのストレージプロセッサ109、1つのオペレーティングシステム110、及び1つのネットワークアダプタ112を備える。さらに、アプリケーションプログラム114は、メモリ内で実行され、ストレージ108からデータを読み込み、ストレージ108にデータを書き込むことができる。コンピュータ102は、メインフレーム、サーバ、パーソナルコンピュータ、ワークステーション、ラップトップ、ハンドヘルドコンピュータ、テレフォニーデバイス、ネットワークアプライアンス、仮想化デバイス、ストレージプロセッサ、ストレージコントローラ等のような、技術的に知られた任意のコンピューティングデバイスを備えてよい。技術的に知られた任意のCPU104及びオペレーティングシステム110が使用されてよい。メモリ管理オペレーションの一環として、メモリ106内の複数のプログラム及びデータはストレージ108にスワップされてよい。
デバイスドライバ120は、メモリ106内で実行され、ストレージプロセッサ109と通信し、オペレーティングシステム110とストレージデバイス109との間を仲介するためのストレージプロセッサ特有のコマンドを有する。例えば、ストレージ108は、ディスクドライブ150a、150b、・・・、150nを有してよく、データは、1つのRAID構成タイプにおける1以上のディスクドライブ150a、150b、・・・、150nに最初に記録される。このストレージプロセッサ109は、コンピュータ102の一部であってよく、或いは、例えば1つのストレージプロセッサ154及びディスクドライブ150a、150b、・・・、150nの他のセットを有する1つのストレージ156で示されるように、ネットワークアダプタ112を介してネットワーク152によりコンピュータ102に接続されてよい。そのようなネットワーク接続されたストレージプロセッサ154のために、デバイスドライバ120は、ネットワークストレージ156にデータを書き込むためにストレージプロセッサ154にデータを伝送すべくネットワークアダプタ112と通信するための、ネットワークアダプタ特有の複数のコマンドを有する。
いくつかの実施形態において、ストレージプロセッサ109は、ストレージ108からのデータの読み込み又はストレージ108へのデータの書き込みにおいてコンピュータ102をアシストするためのいくつかの機能を実行する。例えば、ストレージプロセッサ109は、データ更新及び他のデータオペレーションの間にパリティデータの生成を管理する1つのパリティデータマネージャ130を有してよい。このように、データパリティマネージャ130は、ディスクドライブ150a、・・・、150n上のユーザデータを更新する場合にパリティデータを更新するために使用され得る。ストレージプロセッサ109は、これら及び他の機能を実行するための、ソフトウェア、ファームウェア、又はハードウェア、或いはそれらの組合せを有してよい。
適切なストレージプロセッサ109の一例が図5に示される。ストレージプロセッサ109は、ホストコンピュータ102とストレージ108との間での大量のデータの高速移動を促進する。ストレージプロセッサ109は、ホストコンピュータ102の1つのプライマリバス162とストレージ108の1つのアタッチメントコントローラ166に結合された1つのセカンダリバス164との間の1つのブリッジ160を有する。ブリッジ160は、例えばシリアルアドバンスドテクノロジアタッチメント(SATA)コントローラであり得るアタッチメントコントローラ166が、プライマリバス162から物理的に分離されることを可能にする。
プライマリアドレス変換ユニット168は、プライマリバス162から1つのプロセッサ170及び1つのローカルメモリ172への1つのローカルバス174を介した1つの高スループットデータパスを提供する。複数のパリティブロックを生成するための排他的論理和演算を提供する1つのロジックエンジン176も、ローカルバス174に結合されている。セカンダリアドレス変換ユニット178は、プロセッサ170及びローカルメモリ172からセカンダリバス164への高スループットデータパスを提供する。図示された実施形態において、バス162、164はPCIバスであるが、他のタイプの周辺バスも使用され得る。
ローカルメモリ172は、1つのメモリコントローラ180を有する。図示された実施形態において、ローカルメモリ172は揮発性のRAMタイプのメモリであり、データをキャッシュするために使用される。他の複数のタイプのメモリも使用され得る。ダイレクトメモリアクセス(DMA)コントローラ182、184は、ホストコンピュータ102からローカルメモリ172及びローカルメモリ172からドライブ150a・・・150nへの複数のダイレクトメモリ転送を可能にする。
先に説明されたように、いくつかのRAIDスキームは、それぞれのデータストライプについて1つの水平パリティブロック及び1つの対角パリティブロックのようなパリティデータの2つのブロックを利用する。新データがストライプに書き込まれた場合、新たな水平パリティデータ及び新たな対角パリティデータも共に生成され得る。ロジックエンジン50及び上で説明されたパリティ生成オペレーションを利用するために、6つの読み込みオペレーション、すなわち、新パリティデータの生成について先に説明されたような水平パリティデータを生成するための3つの読み込みオペレーション及び対角パリティデータを生成するための3つの読み込みオペレーションが利用されると信じられている。
図示された実施形態の1態様に従って、ストレージプロセッサ109のロジックエンジン176のような1つのロジックエンジンが、いくつかの用途において、パリティデータの複数のブロックの効率的な生成を著しく促進する。例えば、1つの用途において、RAIDで構成されたデータを更新する場合に複数のパリティブロックを生成するための読み込みオペレーションの数が著しく低減される。
図6は、ここでそれぞれストアキュー1、ストアキュー2と呼ばれるストアキュー200a、200bのペアを含むロジックエンジン176の一例を概略形式で示す。ストアキュー1は、矢印202で表されるようなストアキュー1の内容及び矢印204によって表されるような入力に存在するデータに排他的論理和の論理ファンクションを実行することができる。同様に、ストアキュー2は、矢印206で表されるようなストアキュー2の内容及び矢印208によって表されるような入力に存在するデータに排他的論理和の論理ファンクションを実行することができる。図示された実施形態の一態様に従って、ローカルメモリ172のような1つのソースから1つの読み込みオペレーションで読み込まれたデータは、ストアキュー1、2のうちの1つ又は両方の内容と、追加の読み込みオペレーションなしで選択的に排他的論理和がとられる。以下により詳細に説明されるが、そのような一構成は、パリティデータ生成を促進することができる。
図示された実施形態において、ロジックエンジン176が複数のストアキューを含むことが示される。複数のレジスタ並びに他のタイプのメモリ及び複数の論理回路を含む他のタイプの複数の回路が使用され得る。
図7a、7b、及び8a、8bは、ストレージ108に記憶されたデータを新データで更新する場合に二重のパリティデータを生成するための、プロセッサ170及びロジックエンジン176を含むことができる1つのパリティデータマネージャ130のオペレーションの一例を示す。本例において、水平及び対角パリティブロックは、新データで更新されるべきそれぞれのストライプについて生成される。ここで説明される方法及び構造を利用して他のタイプの複数のパリティブロックが生成されてもよいことが理解される。
本例において、ディスクドライブ150a・・・150n上のストライプnの1つのブロック内の旧データを置き換えるべき新データは、ホストコンピュータ102によってローカルメモリ172内に予め記憶されていた。ホストコンピュータ102からのローカルメモリ172へのこのデータ転送は、いくつかの実施形態において、DMAコントローラ182を使用した1つのDMA転送であってよい。ローカルメモリ内に一度に記憶される新データの量は、ローカルメモリ172の容量に依存するだろう。本実施形態において、新データに加えて、新データによって置き換えられている旧データは、ストレージ108から転送され、ローカルメモリ172内に記憶される。同様に、以下に説明されるように生成される新たな水平パリティデータによって置き換えられる古い水平パリティデータも、ストレージ108から転送されて、ローカルメモリ172内に記憶される。さらに、以下に説明されるように生成される新たな対角パリティデータによって置き換えられる古い対角パリティデータも、ストレージ108から転送されて、ローカルメモリ172内に記憶される。
図8a、対向する図7aのブロック220に示されるように、ストアキュー1及びストアキュー2を共にリセット(ブロック220)するとストアキュー1及びストアキュー2の内容は共に空になる。図8a、図7aの対向するブロック222に示されるように、新データがストレージプロセッサ109のローカルメモリ172から読み込まれ(ブロック222)ストアキュー1及びストアキュー2の両方に記憶される。
ストアキュー1が予めリセットされたので、新データは、ローカルメモリ172から読み込まれた新データ及びストアキューのリセット内容と排他的論理和ファンクション(図6)を実行することによって、ストアキュー1内に記録され得る。ストアキュー1内の新データの記憶とともに、同じ新データが、ストアキュー2のリセット内容と排他的論理和ファンクション(図6)を実行することによってストアキュー2に記憶されて得る。同じ新データが、ローカルメモリ172からの1つの読み込みオペレーションを利用してストアキュー1、2の両方の中に記憶され得ることが理解される。ローカルメモリ172からの新データ読み込みオペレーションのサイズは、典型的にはストアキュー1、2の容量に依存するだろう。したがって、例えば、ストアキュー1、2のそれぞれの容量が1Kバイトである場合、ストアキュー1、2のそれぞれが、ブロックnのような、ディスクドライブ150a、150b・・・150nのストライプnの1つのブロックについての1Kバイトの新データで満たされるまで読み込みオペレーションが継続する。
新データによって置き換えられる旧データも、ローカルメモリ172から読み込まれる(ブロック224)。図8a、図7aの対向するブロック226に示されるように、旧データがストアキュー1内に予め記憶された新データと排他的論理和がとられ(ブロック226)ストアキュー1内に1つの中間結果として記憶される。図8a、図7aの対向するブロック226に示されるように、ストアキュー1の内容との旧データの排他的論理和ファンクションとともに、旧データはストアキュー2内に予め記憶された新データと排他的論理和もとられ(ブロック226)、ストアキュー2内に1つの中間結果として記憶される。同じ旧データが、ローカルメモリ172からの1つの読み込みオペレーションを利用してストアキュー1、2の両方の内容と排他的論理和がとられ得ることが理解される。
第3の読み込みオペレーションにおいて、古い水平パリティデータがローカルメモリ172から読み込まれ(図7bのブロック228)、ストアキュー1内に予め記憶された中間結果と排他的論理和がとられる。図8b、図7bの対向するブロック230に示されるように、ストアキュー1についてのこの最後の排他的論理和オペレーションの結果が、ストアキュー1内に記憶される新たな水平パリティデータになる。ストレージプロセッサ109によるストレージデバイス150a・・・50nのストライプnの水平パリティブロックへの続く転送のために、矢印231(図6)によって示されるように、新たな水平パリティデータがストアキュー1からローカルメモリ172に書き込まれる。
第4の読み込みオペレーションにおいて、古い対角パリティデータがローカルメモリ172から読み込まれ(ブロック232)ストアキュー2内に予め記憶された中間結果と排他的論理和がとられる(ブロック234)。図8b、図7bの対向するブロック234に示されるように、ストアキュー2についてのこの最後の排他的論理和オペレーションの結果が、ストアキュー1内に記憶される新たな対角パリティデータになる。ストレージプロセッサ109によるストレージデバイス150a・・・50nのストライプnの対角パリティブロックへの続く転送のために、矢印235(図6)によって示されるように、新たな対角パリティデータがストアキュー2からローカルメモリ172に書き込まれる。
ディスクドライブ150a、150b・・・150nのストライプnへの新たな水平パリティデータ及び新たな対角パリティデータの書き込みとともに、新データもまたストライプnの1つのブロックに書き込まれる。新データについて新たな水平及び対角パリティデータが生成され、新データ並びに新たな水平パリティ及び対角パリティデータが、ディスクドライブ150a、150b・・・150nのストライプnの、関連する複数のブロックに書き込まれるまで、図7a、7bの複数のオペレーションが反復される。
示された実施形態において、新データ、旧データ、及び古いパリティの読み込みオペレーションは、ローカルメモリ172からロジックエンジン176へのデータの複数の転送を持つ。他の実施形態において、本出願の代理人にアサインされ、2003年12月29日に出願され、代理人番号P17732、タイトル"データ構成を管理するための方法、システム、及びプログラム"の対応する出願に記載されるように、データは、ストレージ108のようなストレージからロジックエンジン176のような1つのロジックエンジンに直接転送され得る。
追加の実施形態の詳細
パリティデータ生成を管理するための説明された技術は、ソフトウェア、ファームウェア、ハードウェア、又はそれらの任意の組み合わせを作り出す広く使われているプログラムミング及び/又はエンジニアリング技術を用いて、1つの方法、装置、又は製品として実装され得る。ここで使用される"製品"という用語は、ハードウェアロジック(集積回路チップ、プログラママブルゲートアレイ(PGA)、特定用途向け集積回路(ASIC)等)、或いは磁気ストレージ媒体(例えば、複数のハードディスクドライブ、複数のフレキシブルディスク、テープ等)、光学ストレージ(複数のCD−ROM、複数の光ディスク等)、揮発性及び不揮発性メモリデバイス(例えば、複数のEEPROM、複数のROM、複数のPROM、複数のRAM、複数のDRAM、複数のSRAM、ファームウェア、プログラマブルロジック等)のような1つのコンピュータ可読メディアに実装されたコード又は論理を意味する。コンピュータ可読メディア内のコードは、1つのプロセッサによってアクセスされて実行される。好ましい実施形態が実装されたコードはさらに、1つの伝送メディアを通じて又は1つのネットワークをわたって1つのファイルサーバからアクセス可能であってよい。そのようなケースにおいて、コードが実装された製品は、1つのネットワーク伝送線、ワイヤレス伝送媒体、空間を伝搬する信号、無線波、赤外線信号等のような伝送メディアを備えてよい。したがって、"製品"は、コードが組み込まれたメディアを備えてよい。さらに、"製品"は、コードが組み込まれ、処理され、実行される、ハードウェア及びソフトウェアコンポーネントの1つの組み合わせを備えてよい。勿論、当業者は、多くの変形が本構成になされてよく、製品は、当業者に知られた情報を担う任意の媒体備えるということを理解するだろう。
いくつかの実施形態において、ストレージプロセッサ109は、データ更新及び他のデータオペレーションの間にパリティデータの生成を管理する1つのパリティデータマネージャ130を有してよい。ストレージプロセッサ109は、これら及び他の機能を実行するための、ソフトウェア、ファームウェア、又はハードウェア、或いはそれらの組合せを有してよい。例えば、一実施形態において、プロセッサ170及びロジックエンジン176は、ホストプロセッサから独立した1つのストレージプロセッサ109内のハードウェアに実装されてよい。他の実施形態において、パリティデータマネージャは、ド複数のライバ、1つのオペレーティングシステム又は1つのアプリケーション、或いはこれらの組み合わせを含むホストソフトウェアに実装されてよい。
いくつかの実施形態において、1つのコンピュータシステムは、1つのドライバ、及び、シリアルアドバンスドテクノロジアタッチメント(SATA)、シリアルアタッチドSCSI(SAS)、独立ディスク冗長アレイ(RAID)等、1つの磁気ディスクドライブ、テープ媒体、光ディスク等のような1つの不揮発ストレージデバイスへのアクセスを管理するコントローラのような、1つのストレージコントローラを備えてよい。他の実装において、ストレージコントローラの実施形態は、1つのドライバを含まない1つのシステム内に含まれてよい。デバイス及びエキスパンダのためのSASアーキテクチャについてのさらなる詳細は、参照番号ISO/IEC 14776−150:200xの技術仕様書" Information Technology - Serial Attached SCSI (SAS)"及びANSIによって発表されたANSI INCITS.***:200x PHYレイヤ(2003年7月9日)に記載されている。SATAアーキテクチャについての詳細は、技術仕様書"Serial ATA: High Speed Serialized AT Attachment"リビジョン1.0A(2003年1月)に記載されている。
いくつかの実施形態において、デバイスドライバ及びストレージプロセッサの実施形態は、デスクトップ、ワークステーション、サーバ、メインフレーム、ラップトップ、ハンドヘルドコンピュータ等のような、デバイスドライバ及びネットワークアダプタを含むコンピュータシステムに結合された1つのモニタ上に表示する情報をレンダリングする1つのビデオコントローラを含む1つのコンピュータシステム内に実装されてよい。他にも、ストレージプロセッサ及びデバイスドライバの実施形態は、ビデオコントローラを含まない1つのコンピューティングデバイスに実装されてよい。
いくつかの実施形態において、ロジックエンジンが、2つのストアキュー1、2、又はレジスタ200a、200bを持つとして示された。他にも、ロジックエンジンは、2つより多くのタイプのパリティデータが生成される場合には、追加の複数のストアキュー又は複数のレジスタを持つこともできる。
いくつかの実施形態において、ネットワークアダプタは、ネットワークアダプタ上の1つのポートに接続された1つのケーブルをわたってデータを伝送すべく構成されてよい。他にも、ネットワークアダプタの実施形態は、ワイヤレスLAN、ブルートゥース等のような1つのワイヤレスネットワーク又は接続にわたってデータを伝送すべく構成されてよい。
図7a−b、8a、8bの図示されたロジックは、ある順番で発生するいくつかのイベントを示す。他の実施形態において、いくつかのオペレーションは、異なる順番で、変更又は削除されて、実行されてよい。さらに、複数のオペレーションが前述のロジックに追加されてよく、依然として説明された実施形態に従う。さらに、ここに説明されたオペレーションはシーケンシャルに発生してよいし、いくつかのオペレーションはパラレルに処理されてよい。またさらに、オペレーションは1つのプロセッシングユニット又は分散された複数のプロセッシングユニットによって実行されてよい。
図9は、図4に示された複数のホスト及び複数のストレージデバイスのような、ネットワークコンポーネントの1つのコンピュータアーキテクチャ500の1つの実装を示す。アーキテクチャ500は、1つのプロセッサ502(例えば1つのマイクロプロセッサ)、1つのメモリ504(例えば1つの揮発性メモリデバイス)、及びストレージ506(例えば、複数の磁気ディスクドライブ、複数の光ディスクドライブ、1つのテープドライブ等のような1つの不揮発性ストレージ)を備える。ストレージ506は、1つの内部ストレージデバイス又は1つのアタッチされた又はネットワークアクセス可能なストレージを有する。ストレージ506内の複数のプログラムは、当業者に知られた方法で、メモリ504にロードされてプロセッサ502によって実行される。1つのストレージプロセッサ又はコントローラ507はストレージ506をコントロールすることができる。アーキテクチャはさらに、イーサネット(登録商標)、ファイバチャネルアービトレーテッドループ等のような1つのネットワークとの通信を可能にする1つのネットワークアダプタ508を備える。ファイバチャネルアーキテクチャの詳細は、ドキュメント番号ISO/IEC AWI 14165−25の技術仕様書" Fibre Channel Framing and Signaling Interface"に記載されている。
さらに、アーキテクチャは、いくつかの実施形態において、ディスプレイモニタ上に情報をレンダリングする1つのビデオコントローラ509を備えてよい。ビデオコントローラ509は1つのビデオカード上に実装されてよく、或いはマザーボード上に実装された集積回路部品に集積されてよい。議論されたように、ネットワークデバイスのいくつかは、複数のストレージカード又は複数のコントローラを有してよい。1つの入力デバイス510は、ユーザ入力をプロセッサ502に供給するために使用され、1つのキーボード、マウス、ペンスタイラス、マイクロホン、タッチディスプレイスクリーン、或いは当業者に知られた任意のアクチベーション又は入力メカニズムを有してよい。出力デバイス512は、ディスプレイモニタ、プリンタ、ストレージ等のような、プロセッサ502から伝送される情報をレンダリングすることができ、又は他のコンポーネントである。
ストレージコントローラ506及びネットワークアダプタ508は、1つのペリフェラルコンポーネントインターコネクト(PCI)カード又はいくつかの他のI/Oカードのようなカード上、或いはマザーボード上に実装された集積回路部品上に、それぞれ実装されてよい。PCIアーキテクチャについての詳細は、PCI−SIGによって発表された" PCI Local Bus, Rev. 2.3"に記載されている。
前述の様々な実施形態が、実例及び説明を目的として提示された。上の細目、例、及びデータは、ある実施形態の構成の製作及び使用の1つの包括的な説明を提供する。完全であること又は開示された厳密な形に限定することは意図されていない。多くの変更及び変形が上の教示を考慮に入れると可能である。

Claims (39)

  1. 旧データを変更する方法であって、
    第1伝送オペレーションにおいて新データを、第2伝送オペレーションにおいて旧データを、第3伝送オペレーションにおいて旧第1パリティデータを、第4伝送オペレーションにおいて旧第2パリティデータを、1つのロジックエンジンに伝送する段階と、
    前記第1伝送オペレーションにおいて前記ロジックエンジンに伝送された前記新データ、前記第2伝送オペレーションにおいて前記ロジックエンジンに伝送された前記旧データ、前記第3伝送オペレーションにおいて前記ロジックエンジンに伝送された旧第1パリティデータを用いて、前記ロジックエンジンにおいて1つの新第1パリティデータを生成する段階と、
    前記第1伝送オペレーションにおいて前記ロジックエンジンに伝送された前記新データ、前記第2伝送オペレーションにおいて前記ロジックエンジンに伝送された前記旧データ、前記第4伝送オペレーションにおいて前記ロジックエンジンに伝送された旧第2パリティデータを用いて、前記ロジックエンジンにおいて1つの新第2パリティデータを生成する段階と
    を備える方法。
  2. 前記旧データ、旧第1パリティデータ、及び旧第2パリティデータは、複数のストレージデバイスにわたって記憶されるデータの1つのストライプ内に記憶される
    請求項1に記載の方法。
  3. 前記複数のストレージデバイスは、独立ディスク冗長アレイ(RAID)構成で配置される
    請求項2に記載の方法。
  4. 前記新第1パリティデータは水平パリティデータである
    請求項3に記載の方法。
  5. 前記新第2パリティデータは対角パリティデータである
    請求項4に記載の方法。
  6. 前記ロジックエンジンにおいて1つの新第1パリティデータを生成する前記段階は、
    前記第1伝送オペレーションにおいて前記ロジックエンジンに伝送された前記新データを、前記ロジックエンジンの1つの第1ストアキューに適用し、前記第1ストアキューの内容及び前記適用された新データに対して1つの排他的論理和の論理ファンクションオペレーションを実行する段階
    を有し、
    前記ロジックエンジンにおいて新第2パリティデータを生成する前記段階は、
    前記第1伝送オペレーションにおいて前記ロジックエンジンに伝送された前記新データを、前記ロジックエンジンの1つの第2ストアキューに適用し、前記第2ストアキューの内容及び前記適用された新データに対して1つの排他的論理和の論理ファンクションオペレーションを実行する段階
    を有する
    請求項1に記載の方法。
  7. 前記ロジックエンジンにおいて1つの新第1パリティデータを生成する前記段階は、
    前記第2伝送オペレーションにおいて前記ロジックエンジンに伝送された前記旧データを、前記ロジックエンジンの前記第1ストアキューに適用し、前記第1ストアキューの内容及び前記適用された旧データに対して1つの排他的論理和の論理ファンクションオペレーションを実行する段階
    を有し、
    前記ロジックエンジンにおいて新第2パリティデータを生成する前記段階は、
    前記第2伝送オペレーションにおいて前記ロジックエンジンに伝送された前記旧データを、前記ロジックエンジンの前記第2ストアキューに適用し、前記第2ストアキューの内容及び前記旧データに対して1つの排他的論理和の論理ファンクションオペレーションを実行する段階
    を有する
    請求項6に記載の方法。
  8. 前記ロジックエンジンにおいて1つの新第1パリティデータを生成する前記段階は、
    前記第3伝送オペレーションにおいて前記ロジックエンジンに伝送された前記旧第1パリティデータを、前記ロジックエンジンの前記第1ストアキューに適用し、前記第1ストアキューの内容及び前記適用された旧第1パリティデータに対して1つの排他的論理和の論理ファンクションオペレーションを実行する段階
    を有し、
    前記ロジックエンジンにおいて新第2パリティデータを生成する前記段階は、
    前記第4伝送オペレーションにおいて前記ロジックエンジンに伝送された前記旧第2パリティデータを、前記ロジックエンジンの前記第2ストアキューに適用し、前記第2ストアキューの内容及び前記旧第2パリティデータに対して1つの排他的論理和の論理ファンクションオペレーションを実行する段階
    を有する
    請求項7に記載の方法。
  9. 旧データが1つの揮発性メモリから前記ロジックエンジンに伝送される
    請求項1に記載の方法。
  10. 前記ストライプ内の前記旧データを前記新データで上書きし、前記旧第1パリティデータを前記新第1パリティデータで上書きし、前記旧第2パリティデータを前記新第2パリティデータで上書きする段階
    をさらに備える請求項2に記載の方法。
  11. 1つのストレージメディアを備える製品であって、前記ストレージメディアは、
    第1伝送オペレーションにおいて新データを、第2伝送オペレーションにおいて旧データを、第3伝送オペレーションにおいて旧第1パリティデータを、第4伝送オペレーションにおいて旧第2パリティデータを、1つのロジックエンジンに伝送し、
    前記第1伝送オペレーションにおいて前記ロジックエンジンに伝送された前記新データ、前記第2伝送オペレーションにおいて前記ロジックエンジンに伝送された前記旧データ、前記第3伝送オペレーションにおいて前記ロジックエンジンに伝送された旧第1パリティデータを用いて、前記ロジックエンジンにおいて1つの新第1パリティデータを生成し、
    前記第1伝送オペレーションにおいて前記ロジックエンジンに伝送された前記新データ、前記第2伝送オペレーションにおいて前記ロジックエンジンに伝送された前記旧データ、前記第4伝送オペレーションにおいて前記ロジックエンジンに伝送された旧第2パリティデータを用いて、前記ロジックエンジンにおいて1つの新第2パリティデータを生成する
    ための記憶された複数の機械可読命令を有する製品。
  12. 前記旧データ、旧第1パリティデータ、及び旧第2パリティデータは、複数のストレージデバイスにわたって記憶されるデータの1つのストライプ内に記憶される
    請求項11に記載の製品。
  13. 前記複数のストレージデバイスは、独立ディスク冗長アレイ構成(RAID)で配置される
    請求項12に記載の製品。
  14. 前記新第1パリティデータは水平パリティデータである
    請求項13に記載の製品。
  15. 前記新第2パリティデータは対角パリティデータである
    請求項14に記載の製品。
  16. 前記ロジックエンジンにおいて1つの新第1パリティデータを生成するための前記複数の機械可読命令は、
    前記第1伝送オペレーションにおいて前記ロジックエンジンに伝送された前記新データを、前記ロジックエンジンの1つの第1ストアキューに適用し、前記第1ストアキューの内容及び前記適用された新データに対して1つの排他的論理和の論理ファンクションオペレーションを実行するための、前記ストレージメディアに記憶された複数の機械可読命令
    を有し、
    前記ロジックエンジンにおいて新第2パリティデータを生成するための前記複数の機械可読命令は、
    前記第1伝送オペレーションにおいて前記ロジックエンジンに伝送された前記新データを、前記ロジックエンジンの1つの第2ストアキューに適用し、前記第2ストアキューの内容及び前記適用された新データに対して1つの排他的論理和の論理ファンクションオペレーションを実行するための、前記ストレージメディアに記憶された複数の機械可読命令
    を有する
    請求項11に記載の製品。
  17. 前記ロジックエンジンにおいて1つの新第1パリティデータを生成するための前記複数の機械可読命令は、
    前記第2伝送オペレーションにおいて前記ロジックエンジンに伝送された前記旧データを、前記ロジックエンジンの前記第1ストアキューに適用し、前記第1ストアキューの内容及び前記適用された旧データに対して1つの排他的論理和の論理ファンクションオペレーションを実行するための、前記ストレージメディアに記憶された複数の機械可読命令
    を有し、
    前記ロジックエンジンにおいて新第2パリティデータを生成するための前記複数の機械可読命令は、
    前記第2伝送オペレーションにおいて前記ロジックエンジンに伝送された前記旧データを、前記ロジックエンジンの前記第2ストアキューに適用し、前記第2ストアキューの内容及び前記旧データに対して1つの排他的論理和の論理ファンクションオペレーションを実行するための、前記ストレージメディアに記憶された複数の機械可読命令
    を有する請求項16に記載の製品。
  18. 前記ロジックエンジンにおいて1つの新第1パリティデータを生成するための前記複数の機械可読命令は、
    前記第3伝送オペレーションにおいて前記ロジックエンジンに伝送された前記旧第1パリティデータを、前記ロジックエンジンの前記第1ストアキューに適用し、前記第1ストアキューの内容及び前記適用された旧第1パリティデータに対して1つの排他的論理和の論理ファンクションオペレーションを実行するための、前記ストレージメディアに記憶された複数の機械可読命令
    を有し、
    前記ロジックエンジンにおいて新第2パリティデータを生成するための前記複数の機械可読命令は、
    前記第4伝送オペレーションにおいて前記ロジックエンジンに伝送された前記旧第2パリティデータを、前記ロジックエンジンの前記第2ストアキューに適用し、前記第2ストアキューの内容及び前記旧第2パリティデータに対して1つの排他的論理和の論理ファンクションオペレーションを実行するための、前記ストレージメディアに記憶された複数の機械可読命令
    を有する
    請求項17に記載の製品。
  19. 旧データが1つの揮発性メモリから前記ロジックエンジンに伝送される
    請求項11に記載の製品。
  20. 前記ストレージメディアは、
    前記ストライプ内の前記旧データを前記新データで上書きし、前記旧第1パリティデータを前記新第1パリティデータで上書きし、前記旧第2パリティデータを前記新第2パリティデータで上書きするための、記憶された複数の機械可読命令
    をさらに有する請求項12に記載の製品。
  21. 1つのオペレーティングシステム及び1つのアプリケーションを有する少なくとも1つのメモリと、
    前記メモリに結合された1つのプロセッサと、
    複数のストレージデバイスを有するデータストレージと、
    前記データストレージに対する入出力(I/O)アクセスを管理すべく構成され、1つのロジックエンジンを有する1つのデータストレージプロセッサと、
    プロセッサによって実行可能な、前記メモリ内の1つのデバイスドライバと
    を備え、
    前記オペレーティングシステム、デバイスドライバ、及び前記ストレージプロセッサのうちの少なくとも1つは、
    第1伝送オペレーションにおいて新データを、第2伝送オペレーションにおいて旧データを、第3伝送オペレーションにおいて旧第1パリティデータを、第4伝送オペレーションにおいて旧第2パリティデータを、前記ロジックエンジンに伝送し、
    前記第1伝送オペレーションにおいて前記ロジックエンジンに伝送された前記新データ、前記第2伝送オペレーションにおいて前記ロジックエンジンに伝送された前記旧データ、前記第3伝送オペレーションにおいて前記ロジックエンジンに伝送された旧第1パリティデータを用いて、前記ロジックエンジンにおいて1つの新第1パリティデータを生成し、
    前記第1伝送オペレーションにおいて前記ロジックエンジンに伝送された前記新データ、前記第2伝送オペレーションにおいて前記ロジックエンジンに伝送された前記旧データ、前記第4伝送オペレーションにおいて前記ロジックエンジンに伝送された旧第2パリティデータを用いて、前記ロジックエンジンにおいて1つの新第2パリティデータを生成すべく構成された
    システム。
  22. 前記旧データ、旧第1パリティデータ、及び旧第2パリティデータは、複数のストレージデバイスにわたって記憶されるデータの1つのストライプ内に記憶される
    請求項21に記載のシステム。
  23. 前記複数のストレージデバイスは、独立ディスク冗長アレイ(RAID)構成で配置される
    請求項22に記載のシステム。
  24. 前記新第1パリティデータは水平パリティデータである
    請求項23に記載のシステム。
  25. 前記新第2パリティデータは対角パリティデータである
    請求項24に記載のシステム。
  26. 前記ロジックエンジンにおいて1つの新第1パリティデータを前記生成することは、
    前記第1伝送オペレーションにおいて前記ロジックエンジンに伝送された前記新データを、前記ロジックエンジンの1つの第1ストアキューに適用し、前記第1ストアキューの内容及び前記適用された新データに対して1つの排他的論理和の論理ファンクションオペレーションを実行し、
    前記ロジックエンジンにおいて新第2パリティデータを前記生成することは、
    前記第1伝送オペレーションにおいて前記ロジックエンジンに伝送された前記新データを、前記ロジックエンジンの1つの第2ストアキューに適用し、前記第2ストアキューの内容及び前記適用された新データに対して1つの排他的論理和の論理ファンクションオペレーションを実行する
    請求項21に記載のシステム。
  27. 前記ロジックエンジンにおいて1つの新第1パリティデータを前記生成することは、
    前記第2伝送オペレーションにおいて前記ロジックエンジンに伝送された前記旧データを、前記ロジックエンジンの前記第1ストアキューに適用し、前記第1ストアキューの内容及び前記適用された旧データに対して1つの排他的論理和の論理ファンクションオペレーションを実行し、
    前記ロジックエンジンにおいて新第2パリティデータを前記生成することは、
    前記第2伝送オペレーションにおいて前記ロジックエンジンに伝送された前記旧データを、前記ロジックエンジンの前記第2ストアキューに適用し、前記第2ストアキューの内容及び前記旧データに対して1つの排他的論理和の論理ファンクションオペレーションを実行する
    請求項26に記載のシステム。
  28. 前記ロジックエンジンにおいて1つの新第1パリティデータを前記生成することは、
    前記第3伝送オペレーションにおいて前記ロジックエンジンに伝送された前記旧第1パリティデータを、前記ロジックエンジンの前記第1ストアキューに適用し、前記第1ストアキューの内容及び前記適用された旧第1パリティデータに対して1つの排他的論理和の論理ファンクションオペレーションを実行し、
    前記ロジックエンジンにおいて新第2パリティデータを前記生成することは、
    前記第4伝送オペレーションにおいて前記ロジックエンジンに伝送された前記旧第2パリティデータを、前記ロジックエンジンの前記第2ストアキューに適用し、前記第2ストアキューの内容及び前記旧第2パリティデータに対して1つの排他的論理和の論理ファンクションオペレーションを実行する
    請求項27に記載のシステム。
  29. 前記プロセッサに結合された1つのビデオコントローラ
    をさらに備える請求項21に記載のシステム。
  30. 前記オペレーティングシステム、デバイスドライバ、及び前記ストレージプロセッサはのうちの前記少なくとも1つは、さらに、
    前記ストライプ内の前記旧データを前記新データで上書きし、前記旧第1パリティデータを前記新第1パリティデータで上書きし、前記旧第2パリティデータを前記新第2パリティデータで上書きすべく構成される
    請求項22に記載のシステム。
  31. 複数のデータストレージユニットを有する1つのデータストレージ用の1つのストレージプロセッサであって、
    1つのメモリと、
    1つのロジックエンジンと
    1つのプロセッシングユニットであって、
    第1伝送オペレーションにおいて新データを、第2伝送オペレーションにおいて旧データを、第3伝送オペレーションにおいて旧第1パリティデータを、第4伝送オペレーションにおいて旧第2パリティデータを、前記ロジックエンジンに伝送し、
    前記第1伝送オペレーションにおいて前記ロジックエンジンに伝送された前記新データ、前記第2伝送オペレーションにおいて前記ロジックエンジンに伝送された前記旧データ、前記第3伝送オペレーションにおいて前記ロジックエンジンに伝送された旧第1パリティデータを用いて、前記ロジックエンジンにおいて1つの新第1パリティデータを生成し、
    前記第1伝送オペレーションにおいて前記ロジックエンジンに伝送された前記新データ、前記第2伝送オペレーションにおいて前記ロジックエンジンに伝送された前記旧データ、前記第4伝送オペレーションにおいて前記ロジックエンジンに伝送された旧第2パリティデータを用いて、前記ロジックエンジンにおいて1つの新第2パリティデータを生成すべく構成される、1つのプロセッシングユニットと
    を備えるストレージプロセッサ。
  32. 前記旧データ、旧第1パリティデータ、及び旧第2パリティデータは、複数のストレージデバイスにわたって記憶されるデータの1つのストライプ内に記憶される
    請求項31に記載のストレージプロセッサ。
  33. 前記複数のストレージデバイスは、独立ディスク冗長アレイ(RAID)構成で配置される
    請求項32に記載のストレージプロセッサ。
  34. 前記新第1パリティデータは水平パリティデータである
    請求項33に記載のストレージプロセッサ。
  35. 前記新第2パリティデータは対角パリティデータである
    請求項34に記載のストレージプロセッサ。
  36. 前記ロジックエンジンにおいて1つの新第1パリティデータを前記生成することは、
    前記第1伝送オペレーションにおいて前記ロジックエンジンに伝送された前記新データを、前記ロジックエンジンの1つの第1ストアキューに適用し、前記第1ストアキューの内容及び前記適用された新データに対して1つの排他的論理和の論理ファンクションオペレーションを実行し、
    前記ロジックエンジンにおいて新第2パリティデータを前記生成することは、
    前記第1伝送オペレーションにおいて前記ロジックエンジンに伝送された前記新データを、前記ロジックエンジンの1つの第2ストアキューに適用し、前記第2ストアキューの内容及び前記適用された新データに対して1つの排他的論理和の論理ファンクションオペレーションを実行する
    請求項31に記載のストレージプロセッサ。
  37. 前記ロジックエンジンにおいて1つの新第1パリティデータを前記生成することは、
    前記第2伝送オペレーションにおいて前記ロジックエンジンに伝送された前記旧データを、前記ロジックエンジンの前記第1ストアキューに適用し、前記第1ストアキューの内容及び前記適用された旧データに対して1つの排他的論理和の論理ファンクションオペレーションを実行し、
    前記ロジックエンジンにおいて新第2パリティデータを前記生成することは、
    前記第2伝送オペレーションにおいて前記ロジックエンジンに伝送された前記旧データを、前記ロジックエンジンの前記第2ストアキューに適用し、前記第2ストアキューの内容及び前記旧データに対して1つの排他的論理和の論理ファンクションオペレーションを実行する
    請求項36に記載のストレージプロセッサ。
  38. 前記ロジックエンジンにおいて1つの新第1パリティデータを前記生成することは、
    前記第3伝送オペレーションにおいて前記ロジックエンジンに伝送された前記旧第1パリティデータを、前記ロジックエンジンの前記第1ストアキューに適用し、前記第1ストアキューの内容及び前記適用された旧第1パリティデータに対して1つの排他的論理和の論理ファンクションオペレーションを実行し、
    前記ロジックエンジンにおいて新第2パリティデータを前記生成することは、
    前記第4伝送オペレーションにおいて前記ロジックエンジンに伝送された前記旧第2パリティデータを、前記ロジックエンジンの前記第2ストアキューに適用し、前記第2ストアキューの内容及び前記旧第2パリティデータに対して1つの排他的論理和の論理ファンクションオペレーションを実行する
    請求項37に記載のストレージプロセッサ。
  39. 前記プロセッシングユニットは、さらに、
    前記ストライプ内の前記旧データを前記新データで上書きし、前記旧第1パリティデータを前記新第1パリティデータで上書きし、前記旧第2パリティデータを前記新第2パリティデータで上書きすべく構成される
    請求項32に記載のストレージプロセッサ。
JP2006542900A 2003-12-29 2004-12-20 パリティデータを生成するための方法、システム、及びプログラム Pending JP2007524932A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/747,938 US7188303B2 (en) 2003-12-29 2003-12-29 Method, system, and program for generating parity data
PCT/US2004/043040 WO2005066760A2 (en) 2003-12-29 2004-12-20 Method, system, and program for generating parity data

Publications (1)

Publication Number Publication Date
JP2007524932A true JP2007524932A (ja) 2007-08-30

Family

ID=34749263

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006542900A Pending JP2007524932A (ja) 2003-12-29 2004-12-20 パリティデータを生成するための方法、システム、及びプログラム

Country Status (6)

Country Link
US (1) US7188303B2 (ja)
EP (1) EP1700200A2 (ja)
JP (1) JP2007524932A (ja)
CN (1) CN101073066B (ja)
TW (1) TWI283345B (ja)
WO (1) WO2005066760A2 (ja)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7206899B2 (en) * 2003-12-29 2007-04-17 Intel Corporation Method, system, and program for managing data transfer and construction
US7246259B2 (en) * 2004-03-18 2007-07-17 Aristos Logic Coporation Method of calculating parity for surviving dual drive failures in a disk array
US7467281B2 (en) * 2004-06-10 2008-12-16 Intel Corporation Mapping data blocks to storage blocks to wrap around storage devices
US7318190B2 (en) * 2004-06-10 2008-01-08 Intel Corporation Storage device parity computation
US7321905B2 (en) * 2004-09-30 2008-01-22 International Business Machines Corporation System and method for efficient data recovery in a storage array utilizing multiple parity slopes
WO2008084488A2 (en) * 2007-01-11 2008-07-17 Red Bend Ltd. Method and system for in-place updating content stored in a storage device
US9311181B2 (en) * 2012-11-15 2016-04-12 Samsung Electronics Co., Ltd. Memory controller changing partial data in memory device and method for changing partial data thereof
US9672106B2 (en) 2014-12-30 2017-06-06 Nutanix, Inc. Architecture for implementing erasure coding
JP2016184372A (ja) * 2015-03-27 2016-10-20 富士通株式会社 ストレージシステム,情報処理装置,パリティ生成プログラム及びパリティ生成方法
US10339098B2 (en) 2015-12-22 2019-07-02 Spectra Logic, Corp. Container-level array storage
US10248617B2 (en) 2015-12-22 2019-04-02 Spectra Logic, Corp. File-level array storage
US10567009B2 (en) 2016-12-06 2020-02-18 Nutanix, Inc. Dynamic erasure coding

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0731582B2 (ja) * 1990-06-21 1995-04-10 インターナショナル・ビジネス・マシーンズ・コーポレイション パリティ保護データを回復するための方法および装置
US5579475A (en) * 1991-02-11 1996-11-26 International Business Machines Corporation Method and means for encoding and rebuilding the data contents of up to two unavailable DASDS in a DASD array using simple non-recursive diagonal and row parity
US5315602A (en) * 1992-08-12 1994-05-24 Digital Equipment Corporation Optimized stripe detection for redundant arrays of disk drives
US5761402A (en) * 1993-03-08 1998-06-02 Hitachi, Ltd. Array type disk system updating redundant data asynchronously with data access
US5537567A (en) * 1994-03-14 1996-07-16 International Business Machines Corporation Parity block configuration in an array of storage devices
US5636359A (en) * 1994-06-20 1997-06-03 International Business Machines Corporation Performance enhancement system and method for a hierarchical data cache using a RAID parity scheme
US6041423A (en) * 1996-11-08 2000-03-21 Oracle Corporation Method and apparatus for using undo/redo logging to perform asynchronous updates of parity and data pages in a redundant array data storage environment
US6151641A (en) * 1997-09-30 2000-11-21 Lsi Logic Corporation DMA controller of a RAID storage controller with integrated XOR parity computation capability adapted to compute parity in parallel with the transfer of data segments
US6353895B1 (en) * 1998-02-19 2002-03-05 Adaptec, Inc. RAID architecture with two-drive fault tolerance
US6247157B1 (en) * 1998-05-13 2001-06-12 Intel Corporation Method of encoding data signals for storage
AU1444601A (en) 1999-10-28 2001-05-08 Ramot University Authority For Applied Research And Industrial Development Ltd. Caching techniques for improving system performance in raid applications
JP3458804B2 (ja) * 1999-12-27 2003-10-20 日本電気株式会社 情報記録装置およびその制御方法
US7698625B2 (en) * 2003-08-26 2010-04-13 Adaptec, Inc. System for improving parity generation and rebuild performance

Also Published As

Publication number Publication date
US20050160307A1 (en) 2005-07-21
US7188303B2 (en) 2007-03-06
EP1700200A2 (en) 2006-09-13
TWI283345B (en) 2007-07-01
TW200532447A (en) 2005-10-01
WO2005066760A2 (en) 2005-07-21
WO2005066760A3 (en) 2007-05-18
CN101073066A (zh) 2007-11-14
CN101073066B (zh) 2011-09-14

Similar Documents

Publication Publication Date Title
US7206899B2 (en) Method, system, and program for managing data transfer and construction
JP5937697B2 (ja) ストレージシステム
US7975168B2 (en) Storage system executing parallel correction write
US8639898B2 (en) Storage apparatus and data copy method
US8583984B2 (en) Method and apparatus for increasing data reliability for raid operations
US7222135B2 (en) Method, system, and program for managing data migration
JP5635621B2 (ja) ストレージシステム及びストレージシステムのデータ転送方法
US20030233596A1 (en) Method and apparatus for fast initialization of redundant arrays of storage devices
EP1700199B1 (en) Method, system, and program for managing parity raid data updates
TWI791880B (zh) 電腦系統
US7188303B2 (en) Method, system, and program for generating parity data
US20080162826A1 (en) Storage system and data guarantee method
TWI607303B (zh) 具有虛擬區塊及磁碟陣列架構之資料儲存系統及其管理方法
US9645745B2 (en) I/O performance in resilient arrays of computer storage devices
JP6163588B2 (ja) ストレージシステム
CN106557268B (zh) 一种存储数据的方法
US20160357479A1 (en) Storage control apparatus
CN116401063A (zh) 一种raid的资源分配方法、装置、设备及介质
JP2004213684A (ja) 半導体ディスク装置
JP2004199711A (ja) 半導体ディスク装置

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080812

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20081111

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20081216