JP2003296038A - Raidシステムにおいてストライプの連続アレイに書き込む方法 - Google Patents

Raidシステムにおいてストライプの連続アレイに書き込む方法

Info

Publication number
JP2003296038A
JP2003296038A JP2003080010A JP2003080010A JP2003296038A JP 2003296038 A JP2003296038 A JP 2003296038A JP 2003080010 A JP2003080010 A JP 2003080010A JP 2003080010 A JP2003080010 A JP 2003080010A JP 2003296038 A JP2003296038 A JP 2003296038A
Authority
JP
Japan
Prior art keywords
storage
blocks
block
data
disk
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
JP2003080010A
Other languages
English (en)
Inventor
Steven R Kleiman
スティーブン・アール・クレイマン
Rajesh Sundaram
ラジェシュ・スンダラム
Douglas P Doucette
ダグラス・ピー・ドウセット
Stephen H Strange
ステファン・エイチ・ストレンジ
Srinivasan Viswanathan
スリニバサン・ビスワナザン
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.)
NetApp Inc
Original Assignee
Network Appliance Inc
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
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=27788399&utm_source=***_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=JP2003296038(A) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by Network Appliance Inc filed Critical Network Appliance Inc
Publication of JP2003296038A publication Critical patent/JP2003296038A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0613Improving I/O performance in relation to throughput
    • 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
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0643Management of files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0689Disk arrays, e.g. RAID, JBOD

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Quality & Reliability (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)

Abstract

(57)【要約】 本発明は、各々が複数の記憶ブロックを有する複数の記
憶装置、例えばRAIDアレイにおけるデータの格納を
制御するための方法を特徴とする。本方法は、データに
関する複数の書き込み要求を受信し、それらの書き込み
要求をバッファリングすることを含む。ファイルシステ
ムは、ディスク接続形態情報に応じて、記憶ブロックの
グループを定義する。このグループには、前記複数の記
憶装置の各々における複数の記憶ブロックが含まれる。
書き込みを行なうデータの各データブロックは、それら
の記憶ブロックのうちの各々1つに関連していて、その
関連が複数の記憶装置に送信される。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、概してデータ記憶
装置に関し、詳しくは、ディスクドライブアレイにおけ
る高信頼性電子データ記憶装置に関する。
【0002】
【従来の技術】コンピュータシステムには情報(例えば
データやアプリケーションプログラムなど)を格納する
ための大量の二次記憶装置が必要であり、二次記憶装置
はディスクドライブ等によって提供されるのが一般的で
ある。コンピュータおよびそれに関連するプロセッサの
性能が向上するのにつれて、ディスクドライブの性能も
向上してきた。例えば、データ密度及びトラック密度が
向上し、磁気媒体が改良され、一台のディスクドライブ
あたりのヘッド数及びプラッタ数を大きくすることで、
より高いデータ転送速度が得られるようになった。
【0003】大型ディスクドライブは極めて高価である
ので、さらに大きな容量や性能を得るためにドライブを
交換する場合、高いコストの追加が生じることになる。
また、単一ドライブシステムには、格納データの冗長性
に関して制限もある。システムの損害や置換は、ストレ
ージサービスに対するアクセスの一時的な損失や、デー
タの永久的損失を引き起こす可能性がある。
【0004】複数のドライブをまとめて並列に接続する
ことによって、単一ディスクドライブシステムの欠点を
緩和することができる。データファイルを複数の塊に分
断して、並列にした複数のドライブから同時にアクセス
できるようにする場合がある。ディスクドライブを並列
に接続するこうしたシステムの1つは、「RAID」
(Redundant Array of Inexpensive/independent disk
s)と呼ばれる。RAIDシステムは、低コスト、高信
頼性ながら、大型の単一ディスクドライブシステムより
も大きな記憶容量を提供することができ、かつ、アレイ
の並列性によって高データ転送速度になっている。
【0005】データブロックはストライプの形態でRA
IDシステムに書き込まれ、1ストライプはシステムの
ディスクドライブアレイにおいて各ディスクドライブ上
に1つの記憶ブロックを有している。データブロックは
各ドライブから同時に読み出すことができ、大きなファ
イルについても高速なデータアクセスを提供する。ま
た、RAIDシステムは、ディスクドライブをアレイに
追加することで、記憶容量を徐々に増加させてゆくこと
ができる。RAIDシステムでは、ディスクが故障した
場合、システム全体をシャットダウンすることなくその
ディスクを交換することができる。故障したディスク上
のデータは誤り訂正技術を用いて復元することができ
る。
【0006】RAIDシステムは、それに関連するディ
スクドライブの集まりを、ディスクドライブの1以上の
グループにおけるストライプの集まりとして見る。ドラ
イブのグループは、一般に「RAIDグループ」と呼ば
れる。ストライプは、グループ内に所定の幾何配置で実
現されるのが通常である。すなわち、ストライプ内の各
ブロックは、そのディスクに対する同じオフセット(デ
ィスクブロック番号)に配置される。
【0007】RAIDシステムは、RAIDレベル0〜
RAIDレベル5と呼ばれる基本構成に関して定義され
るのが通常である。各レベルには、利点もあれば欠点も
ある。例えば、RAIDレベル4のシステムは、複数の
ブロックからなるデータを、N台のデータディスク上に
N個の記憶ブロックからなる「ストライプ」として格納
する。RAIDレベル4は、システム内の各ストライプ
に関する誤り訂正情報を格納する1台の特別なパリティ
ディスクドライブを追加する。
【0008】ストライプ書き込みは、ファイルシステム
にとってもディスクドライバにとっても混乱を招くもの
である。ファイルシステムは通常、1つのファイルから
取り出したような関連データの格納のために、単一ドラ
イブ上の空間を割り当てることを好む。これによって、
その後の要求を予測することによりファイルアクセス時
間を削減する「先読み」動作が可能になる。ディスクド
ライバは、回転速度や、読み出し/書き込みのヘッドア
クセス時間など、ディスクの物理特性の利点が得られる
ように最適化される傾向にある。この場合も、関連デー
タブロックを同一ディスクドライブに格納することが有
利である。
【0009】RAIDシステムは、ディスク記憶ブロッ
クをストライプの観点から参照し、書き込み要求をスト
ライプの観点から取り扱う傾向がある。典型的には、パ
リティ計算のオーバヘッドを低減するため、1つのスト
ライプ書き込みになるまで複数のデータブロックを蓄積
する。RAIDディスクアレイマネージャがストライプ
書き込みを処理する場合、関連ブロックデータは複数の
ドライブ上に分散される。
【0010】発明の概要 本発明は、概して、複数の記憶装置を用いるストレージ
システムのアクセスタイム及び転送速度の効率を向上さ
せるための方法および装置に関する。一実施形態におい
て、本発明は、ストレージシステムを有するとともに複
数の記憶装置と通信するストレージシステムによるデー
タの格納を管理するための方法に関する。各記憶装置
は、データを格納するための複数のブロックを有する。
【0011】一実施形態において、本方法は、ストレー
ジオペレーティングシステムのファイルシステム層によ
ってデータを記憶するための書き込み処理に複数のブロ
ックのうちのいずれの記憶ブロックを用いるかを識別す
ることによりブロックレイアウト情報を生成するステッ
プを含み、その識別されるブロックは、高度の局所性を
有するか、あるいは各々のディスク上で連続しているこ
とが好ましい。本方法は、前記ブロックレイアウト情報
をストレージオペレーティングシステムのファイルシス
テム層からRAID層へ転送するステップをさらに含
み、前記ブロックレイアウト情報に応じてRAID層が
書き込み処理の実行を制御することで、パリティ計算の
コストを実質的に最小限にする。パリティ計算のコスト
は、例えば、実施される読み出し処理の数を最小にする
ことや、パリティ計算のために読み出されるブロックの
チェーン長を実質的に最大にすることによって、実質的
に最小にすることができる。
【0012】一実施形態では、書き込み処理を制御して
パリティ計算コストを実質的に最小にするステップは、
書き込み処理を検査するステップと、読み出しブロック
数を実質的に最小にするかそれとも読み出しブロックの
チェーン長を実質的に最大にするかを選択するステップ
と、前記ブロックレイアウト情報に応じて前記選択を実
施するステップとを含む。前記選択が読み出しブロック
数を実質的に最小にする方であった場合、前記書き込み
制御ステップは、1ストライプごとに、減算方法に基づ
いてパリティを計算するかそれとも再計算方法に基づい
てパリティを計算するかを判定し、選択されたその方法
をサポートする何らかの適当な読み出し処理を実施し、
パリティを計算するステップを含む。この判定は、いず
れの計算方法が最小の読み出し処理で済むかを検査する
ことによって行なわれる。一方、前記選択が読み出しブ
ロックのチェーン長を実質的に最大にする方であった場
合、前記書き込み制御ステップは、前記減算方法または
前記再計算方法をサポートするために読み出される記憶
ブロックの数を最小にしつつチェーン長を実質的に最大
にするため、いずれの記憶ブロックを読み出すべきかを
判断し、それらのブロックに対して読み出し処理を実施
し、パリティを計算するステップをさらに含む。
【0013】一実施形態では、RAID層はディスク接
続形態情報をファイルシステム層に公開する。ファイル
システム層は接続形態情報のデータベースを保持する。
ファイルシステム層は、ディスク記憶ブロック番号およ
び記憶ブロックの割り当てに関する情報を用いて、書き
込み処理のためのブロックレイアウト情報を作成する。
【0014】他の実施形態において、本発明は、複数の
ブロックにおける記憶ブロックへのデータの格納を管理
するための方法に関する。この方法は、ブロックレイア
ウト情報を生成するステップと、前記ブロックレイアウ
ト情報に応じて、ストライプ集合における利用可能な記
憶ブロックすべてを実質的に用いることで誤り訂正パラ
メタの計算コストを実質的に最小限にしつつ、書き込み
処理に用いられる記憶ブロックのグループを識別するこ
とで複数の記憶装置のうちの一記憶装置内のチェーン長
を実質的に最大にするように、書き込み処理の実行を制
御するステップとを含む。一実施形態では、この誤り訂
正パラメタにはパリティの計算値が含まれる。
【0015】さらに他の実施形態において、本発明は、
複数の記憶装置を有するストレージシステムであって該
記憶装置の各々が複数の記憶ブロックを有するストレー
ジシステムにおいてデータの格納を管理するための方法
に関する。この方法は、複数のストライプにまたがる所
定の記憶ブロック、及び、各記憶装置内の所定の記憶ブ
ロックを含む記憶ブロックのグループにデータを書き込
むステップを含む。この書き込みは、複数のストライプ
についての誤り訂正パラメタの計算コストを実質的に最
小にしつつ、各記憶装置内の記憶ブロックのチェーン長
を実質的に最大にするような方法で行なわれる。一実施
形態では、チェーン長は、データの書き込みに関して最
大にされるとともに、パリティ計算をサポートするため
の読み出しに関して最大にされる。
【0016】さらに他の実施形態において、本発明は、
複数の記憶ブロックを有する複数の記憶装置、及び、前
記複数の記憶装置と通信するストレージマネージャを有
するストレージシステムに関する。このストレージマネ
ージャは、複数のストライプにまたがる所定の記憶ブロ
ック、及び、各記憶装置内の所定の記憶ブロックを含む
複数の記憶ブロックからなるグループにデータを書き込
み、誤り訂正パラメタの計算コストを実質的に最小にし
つつ、記憶装置内の記憶ブロックのチェーン長を実質的
に最大にするようにして、データの格納を処理するもの
である。
【0017】さらに他の実施形態において、本発明は、
データの格納を管理するためのシステムに関する。この
システムは、複数の記憶ブロックを有する複数の記憶装
置と、前記複数の記憶ブロックと通信するストレージマ
ネージャと、前記ストレージマネージャおよび前記複数
の記憶ブロックと通信するブロックレイアウト情報生成
器と、前記複数の記憶ブロックおよび前記ストレージマ
ネージャと通信する誤り訂正パラメタ計算器とを含む。
前記ストレージマネージャは、前記ブロックレイアウト
情報生成器からのブロックレイアウト情報に応じて、書
き込み処理に用いられる記憶ブロックのグループを識別
することによりその書き込み処理の実行を制御し、誤り
訂正パラメタ計算器によるそれらのストライプについて
の誤り訂正パラメタの計算コストを最小にしつつ、記憶
装置内のチェーン長が最大になるようにするものであ
る。
【0018】さらに他の実施形態において、本発明は、
記憶ブロックへのデータの格納を管理するための方法に
関する。この方法は、ブロックレイアウト情報を生成す
るステップと、誤り訂正計算の第1の数を動的に判定す
るステップと、チェーン長に対応する第2の数を判定す
るステップと、前記ブロックレイアウト情報に応じて、
書き込み処理に用いられる記憶ブロックのグループを識
別することによってその書き込み処理の実行を制御し、
1ストライプにわたる誤り訂正パラメタの計算を第1の
数だけ実施しつつ、記憶装置内が第2の数のチェーン長
になるようにするステップとを含む。
【0019】RAIDのコンテクストにおいて、実施形
態の中には、書き込み要求をバッチ処理することによっ
てそれらの利点を実現しているものもあり、バッチ要求
のデータを記憶するために複数のストライプに空間を割
り当て、データをそれらのストライプのチェーン全体に
書き込むものがある。このように、本発明の特徴は、各
ディスクドライブに対して垂直に書き込みを行ないたい
という要求と、パリティ判定の際の効率を求めるために
ストライプ全体に書き込みを行ないたいという要求との
バランスをとることである。
【0020】本発明の上記のおよびその他の目的、態
様、特徴及び利点は、下記の説明および特許請求の範囲
の記載から、さらに明らかになるであろう。
【0021】
【発明の実施の形態】「ファイル」、「データ」及び
「データファイル」という用語は、本明細書では、アナ
ログ手段またはデジタル手段を介して記憶及び/又は転
送可能なデータの任意のエンティティを指すものと考え
る。エンティティは、アナログ形態で生成される場合も
デジタル形態で生成される場合もあり、様々な時点でア
ナログ形態やデジタル形態で格納される。エンティティ
は、電気的手段、電気磁気的手段、電気光学的手段、光
学的手段、及び、その他の手段に記憶する能力をもち、
2つの異なる物理的位置間で、特に電気、無線、及び光
学ベースの通信を介して、転送する能力を持つ。
【0022】概要として図1aを参照すると、本発明に
従って構成されたデータ記憶システムの一実施形態に
は、複数のデータ記憶装置すなわちディスク90A、9
0A'、90''(まとめて90と呼ぶ)、及び、パリテ
ィ記憶装置すなわちディスク92Aが含まれる。各記憶
装置には、複数の記憶ブロックすなわち記憶位置が含ま
れる。この図では装置が記憶ディスクとして図示されて
いるが、固体ディスクなど、任意のランダムアクセス持
続性記憶装置を用いることができる。そのようなディス
クのグループの一実施形態が、RAIDアレイである。
【0023】このアレイに書き込まれるデータは、複数
のデータディスクにわたって一連のストライプ94A、
94A'、94''(まとめて94と呼ぶ)として書き込
まれ、それらのストライプに関するパリティ値がパリテ
ィディスク92A上に書き込まれる。さらに、本発明で
は、チェーン96Aと呼ばれる同一ディスク90上の一
連のブロックに対して、データの書き込みが可能であ
る。同一ディスク90に複数のデータブロックを書き込
むことによって、そのデータに関するアクセスタイムが
短くなる。
【0024】本発明の特徴は、記憶装置アクセスおよび
パリティ計算オーバヘッドの最適化を可能にする。記憶
装置アクセスの最適化は、書き込み処理に関するチェー
ン長を最大にすることによって行なうことができる。パ
リティ計算オーバヘッドの最適化は、書き込み処理の際
にパリティディスク92Aを更新するために読み出す必
要がある記憶ブロックの数を最小にすること、または、
パリティ計算に必要な読み出しのチェーン長を最大にす
ることによって、行なうことができる。
【0025】本明細書で用いられるように、一実施形態
において、「チェーニング」とは、ディスクドライブ上
の連続したデータ、即ち、DBNが連続しているブロッ
クに対する単一I/Oのための読み出し/書き込みデー
タである。他の実施形態では、チェーニングは、介在記
憶ブロックがすでに割り当てられていたり、I/Oに利
用できなかったりする場合もある連続ではないが可能な
限り互いに近接している(「局所性」と呼ばれる)ブロ
ックに対する単一I/Oにおける読み出し/書き込みデ
ータである。
【0026】「チェーン長」は、1チェーン内に含まれ
るブロック数を意味する。「チェーン長の最大化」は、
ディスク上で可能な限り長いチェーンを得るための処理
であり、チェーン長はそのディスク上の記憶ブロック数
までに限られ、例えば、チェーンの組み立てやI/Oの
実行の際の過度の待ち時間を避けるため、あるいは、I
/Oを実施するために必要なリソースの利用可能性に対
する制約から、もっと小さい妥当な数に制限される場合
もある。チェーン長の最大化は、各ディスクについて個
別に実施することもできるし、アレイ全体のすべてのデ
ィスクの結合について実施することもできる。
【0027】最大チェーン長の書き込み処理を可能に
し、最大数の完全ストライプが書き込まれるようにする
ため、データ書き込み要求はファイルシステム層によっ
て収集、すなわちバッファリングされる。同一ファイル
のファイルシステムレイアウトブロックは、順番に(即
ち、ファイル内の順番と同じ順番で)、現在の書き込み
処理の後に処理される読み出し処理の際の先読み性能を
最適化する。
【0028】ファイルシステム層は、ディスク90を管
理するRAID層から受信したディスク90接続形態情
報を用いて、収集したデータ書き込み要求に関する書き
込み処理について、ストライプ94の記憶ブロックを選
択する。この接続形態情報には、ディスクドライブのサ
イズ、アレイ内のディスクドライブ数、その他の情報を
含めることができる。ファイルシステム層は、ブロック
レイアウト情報を生成する際にこの接続形態情報を利用
して、バッファリングした書き込み要求のデータブロッ
クを選択されたストライプにおける空き記憶ブロックに
関連付け、次いでそのストライプが書き込み処理を割り
当てる。
【0029】ファイルシステム層は、書き込み処理に用
いるべき記憶ブロックを選択し、チェーン96Aの最大
長を提供する。これは、データブロックの「関連」集合
(すなわち、単一書き込み処理のために収集され、デー
タバッファに保持されたデータブロック)は、ディスク
の近接した記憶ブロックに書き込まれることが多いとい
うことを意味している。パリティ計算を最小限にするた
め、ファイルシステム層は、バッファリングした書き込
み要求のデータブロックを、選択されたストライプ内の
可能な限り多くの空きブロックに関連づけ、好ましくは
選択されたストライプ内のすべての空き記憶ブロックに
関連付ける。
【0030】書き込み処理を完了するため、記憶するデ
ータブロック(あるいは、そのデータブロックに対する
メモリ参照)、及び、ブロックレイアウト情報がRAI
D層に転送される。このようにして、RAID層には、
全書き込み処理を処理できることが通知される。さら
に、パリティ計算のコストを最小限にするため、RAI
D層は、ブロックレイアウト情報に応じてその書き込み
処理を実行し、I/O処理を効率的にすることができ
る。
【0031】RAID層は、例えば減算方法や再計算方
法など、適当なパリティ計算方法を選択し、選択したス
トライプの各々について、いわゆる「最小コストのパリ
ティ計算方法」を用いることができる。この選択は、各
ストライプにおけるデータ書き込み先の記憶ブロックの
数および位置、並びに、接続形態情報に応じて行なわれ
る。「減算方法」とは、書き込みを行なうデータブロッ
ク(例えばW1、W2)の前の内容、及びそのストライ
プについてのパリティデータ(P)を読み出し、そのス
トライプに書き込む新たなデータブロック(例えばW
1'、W2')をデータバッファから取得するような、ス
トライプのパリティ計算方法を意味している。次いで、
そのストライプに関する新たなパリティデータ(P')
を、次の式に従って計算する: P' = W1 XOR W2 XOR P XOR
W1' XOR W2' ただしXORは排他的論理和演算とする。
【0032】「再計算方法」とは、ストライプのデータ
ブロックのうち、書き込みを行なうデータブロック以外
のデータブロック(例えばW3、W4)の内容を読み出
し、そのストライプに新たに書き込むデータブロック
(例えばW1'、W2')をデータバッファから取得する
ような、ストライプのパリティ計算方法を意味してい
る。次いで、そのストライプについての新たなパリティ
データ(P')を次の式: P' = W1' XOR W2' XOR W3 XO
R W4 に従って計算する。
【0033】図1bは、ディスクアレイの一例を示すも
のであり、最小コストのパリティ計算方法を例示するた
めに用いられる。図1bは、RAIDレベル4に従う例
として、4台のデータ記憶ディスクと1台のパリティデ
ィスクとで構成されたRAIDアレイを図示したもので
ある。この図では、頭に1から4まで数字を付したデー
タディスクとPで示されるパリティディスクとを用い
て、ディスクが列として図示されている。アレイと交差
するストライプは行として表現され、左側に1から6ま
で数字が付けられている。このように、4×6の格子は
24個のデータ記憶ブロックを表わしていて、各ストラ
イプは、そのストライプに関するパリティブロックを有
し、パリティブロックは対応するストライプ内のデータ
ブロックの内容から計算されたパリティデータを格納し
ている。便宜上、各々の記憶ブロックは、それがデータ
用であってもパリティ用であっても、Xをアレイ内のブ
ロックの行の番号とし、Yをアレイ内のブロックの列の
番号としたとき、XYによって一意に識別できるものと
する。
【0034】図1bには、書き込み処理の保留に関する
データ格納に割り当てられた記憶ブロックも図示されて
いる。図面において、割り当てられた記憶ブロックは
「W」で示し、パリティを格納しているブロックは
「P」で示し、保留中の処理に割り当てられたブロック
は「−」(ハイフン)で示している。従って、次のブロ
ック:11、21、31、32、33、41、51およ
び61が書き込まれていて、パリティブロックの各々に
はパリティデータPが格納されている。
【0035】この例において最小コストのパリティ計算
方法を実施する場合、パリティ計算をサポートするため
に必要なデータ及びパリティをアレイから取得するた
め、多数の読み出し処理が必要である。この読み出し処
理は、多数の代替方法のうちのいずれを用いて実施する
こともできる。実施形態は、それらの方法のうちの1つ
または他の方法を用いるように設計することもできる
し、書き込み処理実行中にいずれの方法を使用するかの
選択を動的に実施することもできる。
【0036】第1の方法は、1つの方法で可能である場
合は常に同一記憶装置からの複数の読み出しをまとめて
チェーニングしつつ、パリティ計算を効率的にするため
に必要な読み出し処理の最小数を1ストライプごとに判
定することを伴う。この場合、アレイを検査して、各ス
トライプにおける書き込みを行なうべき記憶ブロックの
数を確認する。各ストライプにおいて、書き込みを行な
うべきブロック数が記憶ブロックの総数の半分を超える
場合は再計算方法を選択して使用し、その数が半分を超
えない場合は減算方法を選択する。ちょうど半分であっ
た場合、複数のパリティ計算方法のうちの1つまたはそ
の他を実施形態に選択することができる。図示の例で
は、行1および2については減算方法が選択され、行3
については再計算方法が選択され、行4〜6については
減算方法が選択される。
【0037】その選択を行なった後、選択したパリティ
計算方法を実施する。図示の例では、記憶ブロックから
データ及びパリティを次のように読み出すことにより、
最小回数の読み出し処理を実現することができる: Read 11、21 Read 34 Read 41、51、61 Read 1P、2P Read 4P、5P、6P このように、この例の場合、新たに書き込むパリティを
計算するため、5つのチェーンで構成された12回の読
み出し処理を用いて、アレイからデータ及びパリティを
効率よく取得することができる。このような読み出し処
理を実施することによって、プロセッサ及びメモリリソ
ースの消費が最小限で済む。
【0038】第2の方法は、読み出しを行なうブロック
数を最小限にし、減算方法でも再計算方法でもすべての
読み出しストライプにおけるパリティを計算できるよう
にしつつ、チェーン長を実質的に最大にするように、読
み出しを行なうべき記憶ブロックを識別する。選択され
たパリティ計算方法(すなわち減算または再計算)は、
1ストライプ当たりの読み出し回数とは無関係に、必要
な読み出し処理がアレイ全体中の最大チェーン長になる
ようにして、実施される。図示の例では、それらの読み
出し処理についての最大チェーン長は、次の読み出し処
理によって得られる: Read 11、21、31、41、51、61 Read 32 Read 33 Read 1P、2P、3P、4P、5P、6P このように、この例の場合、新たに書き込むパリティを
計算するため、最大平均チェーン長を有する4つのチェ
ーンで構成された14回の読み出し処理を用いて、アレ
イからデータ及びパリティを効率よく取得することがで
きる。このような読み出し処理を実施することによっ
て、ディスクアクセスのための総合的なオーバヘッドが
最小になる。
【0039】本発明の好ましい実施形態は、パリティ計
算の最小コストが得られる方法を選択して読み出し処理
を実施するため、それら2つの代替方法のうちの一方ま
たは両方を使用する。例えば、システムがメモリに制限
をもつ場合は第1の方法を選択することによってメモリ
の使用量が最小することができ、システムがディスクバ
ンド幅に制限をもつ場合は第2の方法を選択することに
よってバンド幅使用量を低減させることができる。この
ように、本発明は、システム構成にとっていずれが適し
ていると判定されたとしても、最小回数読み出しの方法
または最大チェーン長の方法のいずれかに従って読み出
し処理を実行するように実施することができる。
【0040】従って、ディスクバンド幅には制限がある
がCPUやメモリには制限のないシステムの場合、RA
ID層は、ファイスシステム層によって作成されたブロ
ックレイアウト情報を評価することにより、パリティ計
算に必要な読み出しについてのチェーン長を最大にする
ことが好ましい。それを行なうため、一実施形態では、
RAID層が異なるディスク上にあるブロックチェーン
の様々な組み合わせを識別し、各組み合わせについて平
均チェーン長を計算し、最大平均チェーン長の組み合わ
せに属するブロックを読み出し処理の際に読み出すブロ
ックとして指定する場合がある。このようにして、アレ
イ全体の全ディスクの組み合わせについて、チェーン長
の最大化が実施される。
【0041】好ましい実施形態において、本発明は、複
数のストライプに対する同時書き込みをサポートしたフ
ァイルシステムを特徴とする。このファイルシステム
は、書き込み要求及び接続形態情報を受信する。このフ
ァイルシステムは、ディスク接続形態情報および書き込
み要求に応じてブロックレイアウト情報を作成し、RA
ID層によって処理される単一I/O書き込みトランザ
クションを作成する。
【0042】ブロックレイアウト情報は、複数のストラ
イプを前記書き込みI/Oトランザクションによって書
き込まれるデータに関連付ける。この複数のストライプ
には、記憶ブロックのマトリクスすなわち2次元アレイ
として定義することができる一群の記憶ブロックが含ま
れる。一実施形態において、このファイルシステムは、
複数の書き込み要求を1つの書き込みI/Oトランザク
ションにまとめる。他の実施形態において、本発明は、
RAID層が、ファイルシステムと協働して記憶ブロッ
クのアレイに対する書き込み処理を可能にするように構
成されたストレージマネージャを有していることをさら
に特徴とする。例えば、RAID層は、書き込みを行な
うデータと2以上のストライプに分散された一群の記憶
ブロックとの関係を指定するブロックレイアウト情報に
応じて、単一書き込みトランザクションを処理すること
ができる。
【0043】一実施形態において、RAID層は、ファ
イルシステムに接続形態情報を公開することによって、
ファイルシステムが書き込みトランザクションのために
ブロックレイアウト情報を作成できるようにする。さら
に、好ましい実施形態におけるファイルシステムは、割
り当てられた記憶ブロックおよび未割り当ての記憶ブロ
ックに関する情報を受信及び/又は維持する。ファイル
システムは、この情報を検査し、それを用いてRAID
グループに書き込むためのブロック位置を最適化する。
【0044】図2は、ストレージアクセス要求、すなわ
ち、ディスクドライブ21を含むディスクドライブアレ
イ20に対する書き込み要求および読み出し要求を管理
するストレージシステム10の実施形態を示すものであ
る。ストレージシステム10には、ファイルシステム1
1、記憶要求バッファ12、ディスクアレイマネージャ
13、ストレージディスク接続形態情報14、及び、デ
ータブロックを一群の記憶ブロックに関連付けるブロッ
クレイアウト情報15が含まれる。アレイ20には、デ
ィスクドライブ21のうちの少なくとも1台がパリティ
を格納しているRAIDアレイを用いることができる。
【0045】クライアント31は書き込み要求41をス
トレージシステム10に送信する。書き込み要求41
は、格納すべきデータを識別するものであったり、ある
いは、格納すべきデータを含むものである。
【0046】ストレージシステム10のファイルシステ
ム11は、書き込み要求41などのクライアントI/O
要求を評価および管理する。一実施形態における書き込
み要求41は、ディスクアレイ20に対する単一書き込
み処理を実施する前に、要求バッファ12に格納され
る。
【0047】ディスクアレイマネージャ13は、ファイ
ルシステム11とアレイ20の中間に示されているよう
に、ディスクアレイ20に対するアクセス要求を管理す
る。また、ディスクアレイマネージャ13は、ファイル
システム11に対するディスクアレイ接続形態すなわち
ディスクアレイ構成の更新も行なう。ディスク接続形態
情報14には例えば、ディスクドライブ21のIDやド
ライブ21の記憶空間に関する情報(例えばディスクサ
イズなど)、あるいは、アレイ内のディスクドライブの
IDや順番に関する情報などが含まれる。
【0048】ディスク接続形態情報14には、記憶ブロ
ック番号などの記憶ブロック識別子を含めることが好ま
しい。実施形態の中には、接続形態情報14に記憶ブロ
ックの仮想ブロック番号(VBN)を含めて、ディスク
アレイマネージャ13がVBNからディスクブロック番
号(DBN)へのマッピングを管理するものがある。デ
ィスクドライブの各々は、複数の同時マッピングをサポ
ートできることが好ましいが、ディスクドライブの記憶
空間すべてをマッピングする必要はない。
【0049】書き込み要求41は、単一書き込みトラン
ザクションによって記憶装置に書き込むのに十分なだけ
のデータブロックが収集されるまでバッファリングされ
る。好ましい実施形態では、書き込み要求41は、単一
書き込みトランザクションを行なうため、ファイルシス
テム11によって決められているような1以上の基準が
満たされるまでバッファリングされる。例えば、書き込
み要求41は、最適な書き込みトランザクションが実行
できるようになるまでバッファリングされたり、システ
ムタイマーがその書き込みトランザクションを実行すべ
きことを示すまでバッファリングされる場合がある。
【0050】次に、ファイルシステムマネージャ11
は、単一書き込み処理を行なうため、ディスク接続形態
情報14を用いて、バッファリングされたデータブロッ
クをディスク記憶ブロックに関連付けるブロックレイア
ウト情報15を構成する。ブロックレイアウト情報15
は、バッファリングされた書き込み要求41の各データ
ブロックを、記憶ブロックグループにおける記憶ブロッ
クに関連付ける。グループには各ディスクドライブ21
の2以上の記憶ブロックを含めることができ、チェーン
を最大にするため、最適には、少なくとも複数のディス
クドライブ21の2以上の記憶ブロックが含められる。
【0051】書き込みトランザクションの処理のため、
ブロックレイアウト情報は、ディスクアレイマネージャ
13に転送される。ディスクアレイマネージャ13は、
ブロックレイアウト情報15を含む書き込みトランザク
ション要求を受信し、その単一書き込みトランザクショ
ンに関する1以上のストライプを識別する。これに対し
て従来のシステムは一般に、単一のストライプ書き込み
トランザクションをRAID層に送信している。このよ
うに、本発明の特徴は、完全な書き込みトランザクショ
ンをRAID層に転送することが可能であるということ
である。
【0052】次に図3を参照すると、ファイルシステム
11及びディスクアレイマネージャ13は、ソフトウェ
アでもファームウェアでも実施することができ、例えば
ソフトウェアアプリケーション、コンピュータオペレー
ティグシステムの一部、あるいは、入出力制御装置とし
ても実施することができる。これらは、ストレージシス
テム10の単一の構成要素内で実施することもできる
し、個別の構成要素内で実施することもできる。
【0053】図3は、図1の実施形態に対応するストレ
ージシステム10Aの実施形態を示している。ストレー
ジシステム10Aには、ネットワークアダプタ310、
メモリ331を有するプロセッサ330、メモリ32
0、及び、ストレージアダプタ340が含まれる。プロ
セッサは、ファイルシステム11を実現するオペレーテ
ィングシステム及び/又はアプリケーションをサポート
することができる。
【0054】メモリには、オペレーティングシステム、
アプリケーションプログラム、及び、その他データを格
納することができる。プロセッサ330及びアダプタ3
10、340には、処理要素及び/又は論理回路が含ま
れる。例えば、このプロセッサは、コンピュータマイク
ロプロセッサ集積回路である場合がある。電子記憶技術
分野の当業者であれば、本発明の特徴を実現するための
他のハードウェア手段、ファームウェア手段、及び、ソ
フトウェア手段も考えつくであろう。
【0055】ネットワークアダプタ310は、ネットワ
ークを介してストレージシステム10Aをクライアント
31に接続するための構成要素を有する。このネットワ
ークは、直接接続を提供するものである場合も、共有通
信路を提供するものである場合もある。クライアント3
1及びストレージシステム10Aは、クライアント/サ
ーバ通信モデルを実施することができる。パケットの交
換によって、クライアント31はストレージサービスを
要求することができ、ストレージシステムはクライアン
ト31に応答することができる。これらのパケットは、
例えばインターネットプロトコルやネットワークファイ
ルシステムプロトコルを用いてカプセル化することがで
きる。
【0056】クライアント31には任意の種類のコンピ
ュータシステムが含まれ、例えば、パーソナルコンピュ
ータ、ワークステーション、サーバ、メインフレームコ
ンピュータ、あるいは、その他コンピュータ装置が含ま
れる。あるいは、クライアント331は、PDAや携帯
電話など、可搬式コンピュータ装置であってもよい。ま
た、クライアント31は、サーバベースのコンピューテ
ィングモデルに従って動作する任意の端末(windo
ws(R)ベースまたは非windows(R)ベースの)や
シン・クライアント装置であってもよい。
【0057】クライアント31及び/又はディスクドラ
イブ21は、インターネットなどのワイドエリアネット
ワーク(WAN)を介してストレージシステム10と通
信することができる。ストレージシステム10は、ファ
イルサーバ(ファイラーとも呼ばれる)として実施さ
れ、クライアント31サイトに存在する場合もあるし、
ローカルエリアネットワーク(LAN)などのサイトネ
ットワークを介してクライアント31にネットワーク接
続される場合もある。また、サーバは、サイト外に存在
させ、クライアント31及び/又はディスク装置21か
ら取り除くこともできる。
【0058】ストレージアダプタ340は、ディスクア
レイ20に対するインタフェースを提供するものであ
る。あるいは、アダプタは、他の種類の記憶媒体を含む
記憶装置に対するインタフェースである場合もある。記
憶媒体には、例えば、光ディスク、磁気テープ、バブル
メモリ、及び、トランジスタベースのランダムアクセス
メモリなどが含まれる。
【0059】ストレージアダプタ340は、プロセッサ
330上で実行されているストレージオペレーティング
システム及び/又はアプリケーションソフトウェアと協
働して、クライアント31からのデータ要求を処理す
る。ストレージアダプタ340は、例えば、高性能ファ
イバーチャネルシリアルリンク接続形態によって、アレ
イ220とのインタフェースをとる。ディスクドライブ
21に対するデータ書き込みやデータ読み出しは、プロ
セッサ330及び/又はアダプタ340によって処理さ
れる。その後、読み出されたデータは、ネットワークア
ダプタを介してクライアント31に転送される。
【0060】ディスクドライブアレイ20は1以上のボ
リュームとして実施することができ、ボリュームの各々
はディスク記憶空間の論理配置を定義する記憶ディスク
を含む。各ボリュームは、それ独自のファイルシステム
に関連付けられている。ボリューム内のディスクドライ
ブは通常、1以上のグループのRAIDディスクとして
編成される。ボリューム内のディスクドライブは、ディ
スクドライブの集まりである2以上のミラー、すなわち
「プレックス」に編成することができる。プレックス
は、ミラーデータを他のプレックス(単数の場合も複数
の場合もある)に格納することにより、データの信頼性
を向上させるものである。ミラー構成については、図1
1を参照してさらに説明する。
【0061】図4は、例えば図2のストレージシステム
10のファイルシステム11によって実現されるような
記憶装置アレイに対するデータの格納を制御するための
方法の一実施形態を示すフロー図である。処理の後、例
えばバッファリングした要求を除去することにより、要
求バッファ12を初期化する(ステップ71)。クライ
アント31から書き込み要求41を受信し(ステップ7
2)、それを要求バッファ12にバッファリングする
(ステップ73)。例えばミラー再同期のため、ストレ
ージシステム内で他の書き込み要求を生成することもで
きる。書き込み要求41には、格納すべきデータ、及び
/又は、格納すべきデータに対する参照が含まれる。参
照には、例えば、ポインタや、複数レベルの間接参照が
含まれる。データには、ディスクドライブ21の記憶ブ
ロックに対応するサイズの複数のデータブロックが含ま
れる。このデータには、ブロックの一部だけしか埋めら
れていないデータも含まれる場合がある。
【0062】最終的に、十分な量のデータブロックが要
求バッファ12にバッファリングされ、バッファ参照に
よって参照される(ステップ74)。この十分な量のデ
ータというのは、1以上の基準に従って判定される。一
実施形態において、この基準は、書き込みトランザクシ
ョンに十分なサイズである場合がある。例えば、書き込
み要求41は、書き込みトランザクションがファイルシ
ステム11によって処理することができる最適な長さに
なるまでバッファリングされる場合がある。他の基準と
しては、利用可能な書き込みバッファの枯渇などがあ
る。
【0063】本発明の一実施形態は、書き込み用バッフ
ァを論理的にグループ分けする。バッファのグループ分
けは、例えば、ファイルシステム層により所定の基準に
基づいて実施される。基準には、例えば、書き込みトラ
ンザクションのためにバッファリングしている(書き込
みすべき)データブロックの数やサイズが効率的なディ
スクアクセスを行なうために十分な程度の短い待ち時間
及び/又はチェーン長を維持するように選択された所定
のしきい値に達することや、利用可能な書き込みバッフ
ァの数が所定の低いしきい値に達することなどが含まれ
る。
【0064】RAID層が個別の装置としてそれらのグ
ループに作用し、そのチェーン読み出し及びチェーン書
き込みをそれらのグループに基づいて行なう場合、実質
的に最適なチェーン長が保証される。このように、ファ
イルシステム層とRAID層は、従来技術の方法のよう
に各々のタスクを別々に実施するのではなく、書き込み
要求の最適な実行を促進するように協調動作する。
【0065】従来の方法では、ファイルシステム層がス
トライプ書き込みを個別にRAID層へ送信し、RAI
D層(この目的ではディスクドライバも含まれると考え
る)は複数のストライプ書き込みについて読み出し及び
書き込みのチェーン長がより長くなる関連付け方法を判
定する際に、独自の発見方法を使用していた。このよう
な方法では一般に、最適チェーン長が短くなってしま
い、得られる結果も確定的でなくなる。
【0066】ファイルシステム11は、ディスクドライ
ブアレイ20の一群の記憶ブロックにおいてデータブロ
ックを未割り当ての記憶ブロックに関連付けるためのブ
ロックレイアウト情報15を生成する(ステップ7
5)。このブロックレイアウト情報15は、例えば、一
群の記憶ブロックにおけるデータブロックと空き記憶ブ
ロックとの関係などにすることができる。
【0067】一実施形態において、ブロックレイアウト
情報は、(a)データブロックの書き込み先にあたるデ
ィスクのDBN及びIDを用いてそれらの記憶ブロック
を指定するとともに、(b)その書き込みに必要な最小
オフセットストライプ及び最大オフセットストライプを
指定する。
【0068】ブロックレイアウト情報を生成するための
実施形態は、次の重要な目的を実現するように試みるも
のでなければならない、即ち:(1)ディスク上の連続
した空きブロックを選択して1ファイル内の連続したブ
ロックにレイアウトすること(これは、後続の読み出し
I/Oトランザクションにおけるファイルの先読み能力
を向上させることを意図している)、(2)満杯のスト
ライプを書き出して、RAID層がパリティを効率よく
計算および更新できるようにすること、(3)書き込み
に関する長いチェーン長をRAID層に与えること、及
び、(4)すべての空きブロックを使いきり、ファイル
システム空間が完全に利用されるようにすることであ
る。
【0069】連続したディスクブロックへの書き込みは
同一ディスク内の複数ブロックへの割り当てを意味して
いる一方、満杯のストライプの書き出しはRAIDグル
ープにまたがる割り当てを意味しているので、目的
(1)と目的(2)は、互いに対立するものであるとい
うことに注意すべきである。これら2つの要件のバラン
スをとるために、ファイルシステム層は、特定ディスク
に割り当てられるファイルのブロック数を所定数に制限
し、そのしきい値に達した場合、それ以上の書き込みに
ついては別のディスクを選択する場合がある。また、特
定空きブロックの割り当てによって最適チェーン長でな
くなる可能性があるので、目的(3)と目的(4)も対
立する場合がある。従って設計者は、それらの目的が対
立した場合、それらの実現を妥協してそれらの目的に優
先順位をつけた実施形態を作成することができる。
【0070】次にそれらの目的を達成するための一例示
的実施形態について説明する。この実施形態では、ファ
イルシステム層における書き込み割り当てが一度に1フ
ァイルづつ実施され、各ファイルについて、そのファイ
ルに「属する」バッファがそのファイル内のブロック番
号(「FBN」)の順番で割り当てられる。ステップは
次のようになる: (1)書き込み割り当てに対して次のファイルを選択す
るステップ。 (2)特定ベースオフセットに対する最小の空きDBN
を有するディスクであって、その領域にもっと空き空間
を割り当てることが選択されているディスクを選択する
ステップ。そのような相対的空き具合の判定は、いくつ
かの代替手段によって行なうことも可能である。この実
施形態の場合、ファイルシステム層がディスクの各領域
について空きブロックのカウントを保持している。この
一連のカウントをサーチすることにより、比較的空いて
いる領域を見付けることができる。 (3)現在のファイルの次のバッファを、選択されたデ
ィスクの2番目に空きが少ないDBNに割り当てるステ
ップ。 (4)ブロックレイアウト「全体」が書き込み割り当て
されているか否かをチェックするステップ。ブロックレ
イアウト「全体」は、ストライプの所定範囲にある全て
の空きブロックの割り当てとして定義される。すでに割
り当てられている場合、ブロックレイアウト情報をRA
ID層に渡す。 (5)現在のファイルについてバッファがなくなるま
で、または、FBNが所定の境界に達するまで、ステッ
プ(3)及び(4)を繰り返し、そうでなければステッ
プ(6)へ進むステップ。 (6)現在のファイルがまだバッファを有している場合
はステップ(2)へ進み、そうでない場合、書き込み割
り当てすべきファイルがまだあればステップ(1)へ進
むステップ。それ以上ファイルが無い場合、アルゴリズ
ムは終了する。
【0071】この実施形態は、あらゆる状況において最
大書き込みチェーン長を可能にしているだけでなく、利
用可能な空間を埋める処理に優先順位も設けている点に
も注意してほしい。代替実施形態は、これと逆のことを
行って、チェーン長を最大にするための選択を与える場
合もある。しかしながら、この実施形態でも良好なチェ
ーン長が得られる理由は、書き込み割り当て器がより空
き空間の多いRAIDグループの領域を優先的に選択す
るからである。従って、上記アルゴリズムに従って、あ
るブロックが大量の空き空間を有するディスク領域の書
き込み割り当てに選択された場合、後続の近隣ブロック
がそのファイルの後続ブロックに書き込み割り当てされ
るように選択される。
【0072】図4を参照すると、ブロックレイアウト情
報15を生成した後、本方法は、レイアウト情報15に
従って例えば複数のストライプに対してチェーン書き込
みすることにより、バッファリングしたデータブロック
の記憶ブロックに対する書き込みを実行する(ステップ
76)。具体的には、この方法は、少なくともいくつか
のデータブロックを一台のディスクドライブに書き込む
一方で、他の関連データブロックを他のディスクドライ
ブに書き込み、好ましくは同じストライプ内に書き込
む。従って、同一ドライブ上の複数の記憶ブロックに書
き込むこと、及び、ストライプ内に複数の記憶ブロック
に書き込むことの利点を実現することができる。ブロッ
クレイアウト情報15に従ってデータブロックを一群の
記憶ブロックに格納するため、データブロックがディス
クドライブアレイ20に送信される(ステップ76)。
従って、RAID層は、書き込みについて最適チェーン
長を有する完全な書き込みトランザクションI/O要求
を受信する。
【0073】従って、ストレージシステム10は、RA
IDアレイ内の連続したストライプを含む記憶ブロック
の2次元グループに対するバッファリングしたデータの
書き込みを処理することができる。また、チェーン読み
出しを最適化することにより、パリティ計算オーバヘッ
ドを低減させることもできる。さらに、好ましい実施形
態では、RAID層は、ブロックレイアウト情報15を
用いてパリティ計算方法を選択することで、パリティ計
算に必要な読み出しに関するチェーン長を最大にするこ
とができる。
【0074】次に図5〜9を参照すると、図4の方法の
実施が図示されている。分かりやすくするため、パリテ
ィドライブは図示されていないか、あるいは、影で図示
されている。図5は、ディスクドライブのRAID4ア
レイ20Aの一実施形態を示すものである。当業者であ
れば、本発明の特徴が他のRAID構成を用いたストレ
ージシステムで実施することもできることは、明らかで
あろう。アレイ20Aには、データブロックを格納する
ための4台のディスクドライブ(1から4までラベルを
付加)、及び、パリティデータ用の5番目のドライブ
(影で図示)が含まれる。これらのディスクドライブ中
の記憶ブロックは、記憶ブロック番号で識別される。現
在割り当てられている記憶ブロックは、「×」で図示さ
れている。残りの空き記憶ブロックは、データブロック
の格納に利用することができる。
【0075】RAID層から受信した接続形態情報およ
びブロック割り当て情報に応じて、バッファリングされ
た書き込み要求に対応する数のデータブロック数を格納
するため、アレイ20Aにおいて未割り当ての記憶ブロ
ックが選択される。好ましくは、これらの未割り当ての
ブロックは、アレイ20Aの最適数のストライプにおけ
る空きブロックを満たすように選択される。
【0076】従って、書き込み要求のあったデータが書
き込まれる先のストライプには、一群の記憶ブロックが
含まれ、この例の場合、記憶ブロックの2次元アレイが
含まれる。1次元の場合、列次元がディスクドライブ番
号に対応する。他方の次元、すなわち行次元は、記憶ブ
ロック番号に対応する。
【0077】図6は、記憶ブロックのグループ120の
他の実施形態を示すものであり、この実施形態は、全1
6個の記憶ブロックの4つのストライプを含み、ファイ
ルシステム11についての単一書き込みトランザクショ
ンを処理する。グループ120は、14個の空き記憶ブ
ロックを有する。
【0078】書き込みトランザクションについてバッフ
ァリングされた書き込み要求41は、ブロックレイアウ
ト情報によってグループ120に関連付けられた14個
のデータブロックを提供する。これらのデータブロック
およびその関連は、ディスクアレイマネージャ13に送
信されて処理され、各データブロックがグループ120
内のそれに関連する記憶ブロックに格納されるようにな
っている。
【0079】一群の記憶ブロックにおける4つの書き込
み要求41に関連するデータブロックの格納に関する書
き込みトランザクションの特定の例について、図7及び
図8を参照して説明する。図7は、バッファリングされ
た4つの書き込み要求50を示している。書き込み要求
Aには、データブロックA1〜A6が含まれる。書き込
み要求Bには、データブロックB1〜B4が含まれる。
書き込み要求Cには、データブロックC1及びC2が含
まれる。書き込み要求Dには、データブロックD1〜D
7が含まれる。バッファリングされた4つの要求50
は、例えば、一群の記憶ブロックに格納するための19
個のデータブロックを提供する。
【0080】図8はブロックレイアウト情報15を示す
ものであり、この例では、図7のデータブロックとディ
スクドライブアレイ20における記憶ブロックグループ
との関係を示している。このグループの中には、アレイ
20の6つのストライプが含まれ、19個の空きブロッ
クとバッファリングされた要求41の19個のデータブ
ロックとの間に1対1の関係を提供している。次いで、
ストレージシステム10は1つの書き込みを複数のスト
ライプに誘導し、グループ内の空きブロックを埋めてゆ
く。関連付け15Aの代替実施形態では、一群の記憶ブ
ロックにおける空き記憶ブロックのすべてがバッファリ
ングされたデータブロックに関連付けられるのではない
場合もある。
【0081】この記憶ブロックグループ内の空きブロッ
クへの最終的なデータ転送は、ディスクアレイマネージ
ャ13、例えばRAID層によって実施される際に、各
ドライブ上の書き込みが行なわれる複数の記憶ブロック
を用いて、各ディスクドライブに対して同時書き込みで
進めることができる。従って、1つの書き込み処理に
は、複数ストライプへのデータの同時格納が含まれる場
合もある。
【0082】ディスクアレイマネージャ13は、こうし
た書き込み要求を解釈して実行するように構成される。
これに対して、従来技術のRAIDシステムは一度に1
ストライプしか処理しないのが一般的であり、典型的な
従来技術のRAIDインタフェースはデータブロックを
アレイ内の記憶ブロックの行・列に関連付ける書き込み
コマンドを解釈することができない。
【0083】好ましい実施形態において、ディスクアレ
イマネージャ13は、書き込みに関するチェーン長を最
大にするように試みる。従来のシステムとは違い、RA
ID層は、ストライプの全集合に関するブロックレイア
ウト情報15を含む書き込みトランザクション要求を受
信する。ディスクアレイマネージャ13は、さらなる書
き込み要求を待つ必要なく、ディスク21に対する書き
込みを最適なチェーン長にする準備を試みる。
【0084】RAID層は、ファイルシステム11から
書き込みトランザクションを受信するのに応じて、その
書き込みトランザクションを検査することができる。R
AID層は、書き込みを行なうストライプについて、パ
リティ計算方法、例えば、減算ベースの方法や再計算ベ
ースの方法を選択する。この選択は、例えば、読み出し
処理についての連続した記憶ブロックの実現を最適化す
るように、読み出しや書き込みの高度の局所性を維持す
るように(即ち、ディスクのデータにアクセスする際の
ヘッドシークタイムを減らすように)、あるいは、プロ
セッサやメモリのリソース使用量を最小限にするように
行なわれる。上記のようにブロックレイアウト情報15
が作成されるので、クライアント31のアクセス要求に
対応するデータブロックの書き込みについて、チェーン
長を最適化することができる。さらに、RAID層は、
ブロックレイアウト情報を検査して読み出しについて1
以上の最大チェーン長を選択することにより、パリティ
関連目的で実施される読み出しを最適化することもでき
る。
【0085】このように、RAID層は、連続ブロック
判定のため、選択されたパリティ計算方法と、ファイル
システム11から受信したブロックレイアウト情報15
とを用いる。さらに、例えばI/Oリソースやバッファ
リソースなどを含むリソースの割り当てを最適化するこ
ともできる。
【0086】さらに、ファイルシステム11は、各書き
込みトランザクションに優先順位レベルを関連付けるこ
とができる。ディスクアレイマネージャ13は、書き込
みトランザクションの実行のスケジューリングの判断に
この優先順位レベルを利用することができる。例えば、
この優先順位は、クライアント31によって選択される
場合もあるし、内部システム管理プロセスに与えられる
場合もある。
【0087】図9は、3つの記憶ブロックグループ12
0A、120B、120Cに格納されたデータブロック
W1、W2、W3を有するディスクドライブアレイ20
Bの一実施形態を示すものである。3つの記憶ブロック
グループ120A、120B、120Cは、ファイルシ
ステム11によって作成された3つの書き込みトランザ
クションに対応する。この実施形態の場合、各記憶ブロ
ックグループ120A、120B、120Cには、4台
のディスクドライブ×4ブロックグループの記憶ブロッ
ク、即ち16個の記憶ブロックが含まれる。記憶ブロッ
クグループ120A、120B、120Cの各々につい
てデータブロックW1、W2、W3の数が異なる理由
は、未割り当ての記憶ブロックの数が異なるからであ
る。
【0088】記憶ブロックグループ120A、120
B、120Cの各々は、現在空きブロック数が最も少な
いストライプ(即ち、ストライプ1、5及び9)で始ま
る。各記憶ブロックグループ内におけるすべての未割り
当ての記憶ブロックは書き込み処理に用いられ、その書
き込み処理のため、各記憶ブロックグループには各ディ
スクの連続した未割り当ての記憶ブロックのチェーンが
含まれる。従って、未割り当ての記憶ブロックはすべて
書き込み要求が処理されるときに埋められることにな
る。従って、記憶空間が効率的に使用され、関連データ
ブロックを一台または限られた数のディスクドライブに
対して書き込みまたは読み出しすることができ、パリテ
ィ計算オーバヘッドを最小にすることができる。
【0089】好ましい実施形態において、あるグループ
についての最小番号のストライプは、あらゆる空きブロ
ックのうちの、最も小さい値、すなわちブロック番号
(図5の実施形態ではブロック番号1、図9の実施形態
ではブロック番号1、5及び9)の空きブロックを有す
るストライプとして選択される。さらに、好ましい実施
形態では、記憶ブロックグループの各ストライプにおけ
るすべての未割り当ての記憶ブロックが格納に用いられ
る。上記のように、この最小ブロック番号は、最小空き
ブロックオフセット値に対応する場合がある。
【0090】しかしながら、RAID記憶装置の当業者
であれば、本発明のその特徴がグループの原点を別な位
置に定義して実施することも可能であることは、明らか
であろう。例えば、書き込み処理を行なうための記憶ブ
ロックグループは、記憶ブロックに何も割り当てられて
いない一連の連続したストライプの中から選択すること
もできる。さらに、本発明の特徴は、記憶ブロックグル
ープ内のすべての未割り当ての記憶ブロックにデータブ
ロックを格納することなく、実施することも可能であ
る。また、記憶ブロックグループを完全に埋めるのに十
分なだけのデータブロックが利用できない状況、すなわ
ち部分的なデータブロックだけを格納しなければならな
い状況も起こり得る。
【0091】ディスクアレイ20には、2以上のRAI
Dグループが含まれる場合もある。好ましい実施形態に
おいて、これらのRAIDグループは、個別すなわち別
々に機能する。各書き込み処理、すなわち、バッファリ
ングされた要求の記憶ブロックグループへの各書き込み
は、単一RAIDグループ内で実施される。従って、R
AIDグループを分離することにより、同時書き込み処
理を別のRAIDグループとして扱うことができる。
【0092】各RAIDグループは、独立したベースブ
ロック、及び、現在の最小空きブロックを有することが
好ましい。各RAIDグループについての最小空きブロ
ックオフセットは、各RAIDグループについて、最小
空きブロックとベースブロックとの差分ブロック数とし
て定義することができる。RAIDグループ内の次の書
き込み位置は、この最小空きブロックによって判定さ
れ、あるいは、記憶空間の効率的使用を達成するように
判定される場合もある。
【0093】さらに、次の書き込み処理についてRAI
Dグループを選択するため、各RAIDグループについ
て、ベースブロックに対する最小空きブロックのオフセ
ットを判定することができる。次の書き込み処理につい
て、現在最小のオフセットを有しているRAIDグルー
プが選択される。各RAIDグループは、互いに独立に
処理することができる。
【0094】図10は、ミラーリングを含むRAIDア
レイの一実施形態の論理的グループ分けを示している。
この論理的グループ分けは、例えば、本発明の特徴のオ
ブジェクト指向ソフトウェア実施形態について適してい
る。この論理的グループ分けは、例えばディスクアレイ
マネージャ13によって実施することができる。RAI
Dアレイには、ディスクドライブの接続を階層構造で示
す一連の論理オブジェクト200が含まれる。一連のオ
ブジェクト200には、ボリュームオブジェクト20
5、ミラーオブジェクト210、及び、プレックスオブ
ジェクト215a、215bが含まれる。一連のオブジ
ェクト200には更に、RAIDグループオブジェクト
220a、220b、220c及び220d、並びに、
ディスクオブジェクト225a、225b、225c、
225d、225e、225f、225g、225h、
225i、225j、225k、225lが含まれる。
【0095】一連のオブジェクト200は、ボリューム
オブジェクト205をルートノードとした階層ツリーで
構成される。ファイルシステム11は、ディスクアレイ
マネージャ13を介してボリュームオブジェクト205
と対話する。「オブジェクト」という用語は、オブジェ
クト指向ソフトウェアのオブジェクトを指す場合もある
し、あるいはもっと一般的に、機能的振る舞いの定義を
容易にするため、物理装置(即ちディスク)の論理的組
み合わせを表す抽象エンティティを指す場合もある。
【0096】例示的実施形態は、混成RAIDレベルを
表している。RAIDグループオブジェクト220a、
220b、220c、220dは、データを2台のディ
スク(例えば225a及び225b)に分割し、第3の
パリティディスク(例えば225c)を有するRAID
レベル4の実施形態を表している。ミラーオブジェクト
210はRAIDレベル1の実施形態を表している。し
かしながら、本発明の技術は、この実施形態に限られる
のではなく、他のRAIDレベルや混成RAIDレベル
も同様に一連のオブジェクトで表すことができる。ま
た、プレックスオブジェクト215同士の対称性も必須
ではない。図示の実施形態は2つのプレックスを有して
いるが、当業者には明らかなように、本発明は、任意数
のプレックスを用いて実施することも可能である。
【0097】VBNの範囲230a、230bは、アレ
イ内のディスクドライブに配置された実際の記憶空間の
論理表現である。一実施形態において、ブロックサイズ
は4キロバイトである。VBNの範囲230a、230
bの判定は下から上に向かって行なわれ、一連のオブジ
ェクト200における各オブジェクトはそれに関連する
VBNの範囲を有する。RAIDグループオブジェクト
220a、220b、220c、220dは、そのディ
スクオブジェクト225a、225b、225c、22
5d、225e、225f、225g、225h、22
5i、225j、225k、225lの集合に関連付け
られる。例えば、RAIDグループ220aのVBN範
囲は、ディスクオブジェクト225a、225b及び2
25cの集合である。プレックスオブジェクト215
a、215bは、それらのRAIDグループオブジェク
ト220a、220b、220c、220dのVBNの
集合に関連付けられる。例えば、プレックスオブジェク
ト215aのVBN範囲は、RAIDグループオブジェ
クト220a及び220bの集合である。
【0098】この実施形態の場合、ミラーオブジェクト
210はプレックス215aをプレックス215bにミ
ラーリングし、あるいはその逆を行なうので、ミラーオ
ブジェクト215のVBN範囲は、そのプレックスオブ
ジェクト215a、215bの合計ではない。そうでは
なく、ミラーオブジェクト210のVBN範囲は、その
プレックスオブジェクト215のVBNの結合になる。
このように、各プレックスオブジェクト215a、21
5bに関連するディスクの実施形態が同じであり、か
つ、範囲のマッピングも同じである場合、VBN範囲2
30a、230bは一致し、ミラーオブジェクト210
のVBN範囲は230aと同じになる。ボリュームオブ
ジェクト205のVBN範囲がミラーオブジェクト21
0のVBN範囲になる。
【0099】ミラーリングされるデータは、たとえ非対
称であっても、VBN230a及び230bの各々にお
いて同一ブロック番号にしなければならない。例えば、
VBN範囲230aのVBN0〜10に書き込まれるデ
ータは、VBN範囲230bのVBN0〜10に書き込
まなければならない。他の実施形態では、一方のプレッ
クスが他方のプレックスよりも大きい場合がある。ミラ
ーオブジェクト210のVBN範囲の大きさは、そのミ
ラーリングされたVBN範囲にミラーリングされていな
いVBNを加えた大きさである。
【0100】各階層におけるVBN範囲とオブジェクト
との関連付けは、RAIDマップと呼ばれることがあ
る。ディスクアレイマネージャ13は、一連のオブジェ
クト200のRAIDマップを含むディスク構成情報を
ファイルシステム11に送信する。従って、ファイルシ
ステム11は、ディスクアレイ接続形態を知ることがで
き、データをそのVBNに割り当てることにより、ディ
スク書き込み及び/又はディスク読み出しを最適化する
ことができる。
【0101】ファイルシステム11は、ディスク接続形
態情報14を用いてブロックレイアウト情報15を作成
することができる。ファイルシステム11は、書き込み
トランザクションを、ブロックレイアウト情報15及び
格納用データを含むオブジェクトに成形し、そのオブジ
ェクトをボリューム205に渡す。
【0102】ファイルシステム11は、ミラー210の
存在を知っている必要がない。ボリューム205のミラ
ーオブジェクト210またはミラーレイヤは、ファイル
システム11から受信したアクセス要求をどのように管
理するかを判定する。ミラー書き込みは、各プレックス
215a、215bの中で実施される。効率を高めるた
め、パリティ判定はプレックス215a、215bのう
ちの一方でしか実施されない場合があり、その結果が他
方のプレックス215a、215bと共用され、両プレ
ックスが同じRAIDグループレイアウトを有するよう
にし、パリティ計算も同様に行い、両プレックスのデー
タが同じになるようにする場合がある。あるいは、パリ
ティ判定は両方のプレックスの各々について実施される
場合もある。
【0103】例えば、ファイルシステム11は、アクセ
ス要求、すなわちバッファリングしたデータブロックを
ボリューム205のVBN範囲26〜29に書き込むた
めの書き込みオブジェクトを成形することができる。次
に、ミラー210は、そのミラーの両側について1つ、
すなわち、各プレックス215a、215bについて1
つ、ミラー書き込みオブジェクトを作成することができ
る。プレックス215a、215bの一方でパリティ判
定をサポートするためにVBN範囲26〜29の記憶ブ
ロックの読み出しが実行され、他方のプレックス215
a、215bは、記憶ブロックに書き込みを行なうだけ
でよい。ミラー210は、一台のディスクドライブで実
施することもできるし、複数台のディスクドライブにわ
たって実施することもできる。
【0104】このように2つの書き込みオブジェクトの
間にはマスター/スレーブの関係があり、マスターの方
がパリティ判定を担当する。このような実施形態によれ
ば、ミラーの両側にあるVBN範囲が好ましく一致す
る。
【0105】図11は、ディスクアレイマネージャ13
がファイルシステム11から受信した書き込みトランザ
クションを処理するための方法の他の実施形態を示すフ
ロー図であり、この実施形態ではディスクアレイマネー
ジャ13がRAID層に存在する。この方法は、図11
のストレージアレイと通信するRAID層によって実施
することができる。図11の目的のため、このストレー
ジアレイは非ミラー構成で説明する。この方法には、次
のようなステップが含まれる。
【0106】ステップ500)ディスク21へのデータ
書き込みについて最大チェーン長を有することが好まし
いブロックレイアウト情報15を、ファイルシステム1
1によって生成する。
【0107】ステップ501)書き込みオブジェクトお
よびその書き込みオブジェクトに割り当てられたリソー
スに関する情報を保持するための書き込みオブジェクト
状態モニタのインスタンスを作成し、そのRAIDグル
ープがオンラインでありその書き込みトランザクション
のサービスに利用可能であることを確認する。書き込み
オブジェクトの一実施形態は、Srinivasan Viswanathan
他によって本件と同日に出願された「Method and Appar
atus for Decomposing I/O Tasks in a RAID System」
と題する同譲受人の同時係続特許出願に記載されている
ようなarray_writeI/Oタスクであり、その開示はこ
こで参照することによって本明細書に取り込まれる。
【0108】ステップ502)ブロックレイアウト情報
15に対応するストライプの範囲についてストライプロ
ックを得る。「ストライプロック」とは、例えばRAI
D層によって行なわれるロック要求に応じて、データ格
納の前にアクセスをその記憶ブロックグループに制限す
るため、リソースマネージャによってロックを与えるこ
とを指す。ロックが与えられる場合、そのロックは、強
制的なものである場合もあるし、勧告的なものである場
合もあり、他の書き込みトランザクションによるそれら
の記憶ブロックに対する同時アクセスができないように
するものである。ロックがすぐに与えられない場合(例
えば、同じ記憶ブロックのうちの少なくともいくつかに
対して別の書き込みトランザクションが進行中である場
合など)、その書き込みトランザクションはロックが与
えられるまで保留される。
【0109】ステップ503)上記のように、各ストラ
イプについてパリティ計算方法を判定し、その計算をサ
ポートするために必要なブロックすべてを識別する。ス
トレージアレイがミラー構成である場合、本方法は、前
記ステップを実施する前に、パリティの計算を担当する
RAIDアレイのIDを判定するステップを実施し、そ
のアレイによってこのパリティ計算判定ステップを実施
する場合がある。ミラー構成におけるこの担当アレイ
は、下記のステップ504〜508も実施する。
【0110】ステップ504)パリティ計算をサポート
するために必要な読み出しにバッファを割り当てる(書
き込みを行なうデータを保持するデータバッファは、フ
ァイルシステムによってすでに割り当てられている)。
【0111】ステップ505)上記のように、パリティ
計算をサポートする読み出しを実施する。
【0112】ステップ506)パリティ計算要求をスト
ライプパリティデータの計算を担当するスレッドまたは
他の処理エンティティに発行する。
【0113】ステップ507)タスク特有の中間状態情
報を含めてパリティデータの不揮発性記憶装置へのログ
記録を開始し、パリティデータが失われた場合やパリテ
ィデータの不一致が生じた場合に、復旧できるようにす
る。
【0114】ステップ508)システム構成として不揮
発性記憶装置のミラーリングが行なわれている場合、ス
テップ507のログ記録が完了するたびに、前記パリテ
ィログデータの複製を不揮発性記憶装置のミラーに作成
する。
【0115】ステップ509)ブロックレイアウト情報
15およびそのパリティデータに対応するストライプの
範囲に対して、好ましくはチェーン書き込みによるディ
スク書き込みを開始する。ストレージアレイがミラー構
成であった場合、担当アレイは、ディスク書き込みを開
始するこのステップの前に、ミラーデータの複製の代わ
りにステップ509へ進むことができることをスレーブ
アレイに示す。次いでRAIDアレイの各々は、各RA
IDアレイのこのステップに関連するデータブロックに
ディスク書き込みを開始する。
【0116】ステップ510)データ書き込みが無事に
完了したあと、ストライプに関するパリティログデータ
を除去する(このようなデータが使用される場合、不揮
発性記憶装置ミラーにある)。ストレージアレイがミラ
ー構成である場合、両アレイに対するデータ書き込み
は、このステップを実施する前に無事に完了していなけ
ればならない。
【0117】ステップ511)ストライプロックを解除
し、その書き込みトランザクションに割り当てられたす
べてのバッファおよびその他リソースを開放する。
【0118】ディスクアレイマネージャ13がファイル
システム11から受信した書き込みトランザクションを
処理するための方法の代替実施形態の中には、上記方法
に類似しているがステップの集合が異なるものや、ステ
ップの順序が異なるものも存在する。
【0119】図12を参照すると、本発明のファイルシ
ステムの中には、write-anywhereファイルシステムの修
正として実施されるものもある。本発明の特徴に応じて
修正を施すのに適したファイルシステムの1つは「WA
FL」ファイルシステムであり、同譲受人の米国特許第
6038570号に記載されているように、このファイ
ルシステムはストレージオペレーティングシステムの一
部になっている。
【0120】図12を参照すると、一実施形態では、例
えばネットワーク取り付けされたストレージ環境、スト
レージエリアネットワーク、及び/又は、クライアント
またはホストコンピュータに直接取り付けられたディス
クアセンブリにおいて、サーバは記憶装置と対話する。
【0121】図12は、ストレージシステム10の内部
で有利に使用されるストレージオペレーティングシステ
ム800を示す略ブロック図である。ストレージオペレ
ーティングシステム800は、ネットワークドライバ
(例えば、イーサネット(R)ドライバ)のメディアアク
セス層810を含む、一連のソフトウェア層から構成さ
れる。オペレーティングシステム800は、インターネ
ットプロトコル(IP)層812などのネットワークプ
ロトコル層、並びに、それがサポートする搬送手段であ
るトランスポート・コントロール・プロトコル(TC
P)層814及びユーザ・データグラム・プロトコル
(UDP)層816をさらに含む。
【0122】ストレージオペレーティングシステム80
0は、マルチプロトコルデータアクセスを可能にするフ
ァイルシステムプロトコル層を含み、共通インターネッ
トファイルシステム(CIFS)プロトコル818、ネ
ットワークファイルシステム(NFS)プロトコル82
0及びハイパーテキスト・トランスファー・プロトコル
(HTTP)822についてのサポート構成要素を含
む。またファイルシステムプロトコル層には、例えばダ
イレクトアクセスファイルシステム(DAFS)プロト
コルについてのサポートも含まれる場合がある。
【0123】ストレージオペレーティングシステム80
0には、RAIDプロトコルなどのディスクストレージ
プロトコルを実施するディスクストレージ層824(即
ちRAID層)、及び、スモールコンピュータ・システ
ム・インタフェース(SCSI)プロトコルなどのディ
スクアクセスプロトコルを実施するディスクドライバ層
826がさらに含まれる。ディスクストレージ(RAI
D)層824は、例えば、何らかの実施形態のディスク
アレイマネージャ13によって実施することができる。
【0124】ディスクソフトウェア層とネットワーク層
・ファイルシステムプロトコル層との橋渡しをするの
は、ファイルシステム11の何らかの実施形態によって
実施されるファイルシステム層880である。ファイル
システム11のディスク上の表現は、例えば4キロバイ
ト(kB)ブロックを用いて、ブロックベースになって
いる。実施形態の中には可変ブロックサイズのものも含
まれるが、一般的には固定ブロックサイズの方がストレ
ージシステムの柔軟性が高くなる。
【0125】一実施形態では、クライアント31からの
読み出し要求は、コンピュータネットワークを介して例
えば従来のCIFSプロトコルまたはNFSプロトコル
のパケットとしてストレーシステム10に転送され、ネ
ットワークアダプタ310で受信される。メディアアク
セス層810のネットワークドライバは、そのパケット
を処理し、ファイルシステム層880へ転送する前に、
そのパケットをネットワークプロトコル層812、81
4、816並びにCIFS層818またはNFS層82
0に渡してさらに処理を行なう。
【0126】ファイルシステム11は、要求されたデー
タがメモリ、例えばメモリ310になかった場合、その
データをディスク21からロード(取得)するための処
理を行なう。その情報がメモリになかった場合、ファイ
ルシステム層880はVBNを取得する。次いでファイ
ルシステム層880は、そのVBNをディスクストレー
ジ(RAID)層824に渡し、ディスクストレージ
(RAID)層824がその論理番号をディスクブロッ
ク番号にマッピングし、そのディスクブロック番号をデ
ィスクドライバ層826の適当なドライバ(例えばSC
SI)に送信する。ディスクドライバはディスク21の
そのディスクブロック番号にアクセスして、要求された
データブロック(単数または複数)をメモリ320、3
31に読み出し、ストレージシステム10によってそれ
を処理する。要求が完了すると、ストレージシステム1
0は、ネットワークを介してクライアント31に返答を
返す。
【0127】ストレージシステム10で受信されたクラ
イアント要求についてデータストレージアクセスを実施
する必要がある上記ストレージオペレーティングシステ
ムを通るソフトウェア「パス」はハードウェアで実施す
ることも可能であることに注意して欲しい。従って、本
発明の代替実施形態では、ストレージアクセス要求デー
タパスは、例えば、フィールド・プログラマブル・ゲー
トアレイ(FPGA)や特定用途向け集積回路(ASI
C)の内部に実現された論理回路として実施することも
できる。この種のハードウェア実施形態は、クライアン
ト31によって発行されたファイルシステム要求パケッ
トに応答してストレージシステム10により提供される
ファイルサービスの能力を向上させる。
【0128】さらに、本発明の他の代替実施形態では、
パケット処理及びストレージアクセス処理の各々につい
て、プロセッサからその負荷の一部またはすべてを低減
するようにアダプタ310、340の処理要素を構成す
ることによって、ストレージシステム10の性能を向上
させる場合がある。本明細書に記載される様々な処理、
アーキテクチャ及び手順は、ハードウェアでもファーム
ウェアでもソフトウェアでも実施できるものとして、広
い意味で考えることができる。
【0129】本明細書で用いられるように、「ストレー
ジオペレーティングシステム」という用語は通常、スト
レージシステム上で動作し、データアクセスを管理する
とともに、ファイルサーバの場合ファイルシステムセマ
ンティックを実施する場合もあるコンピュータ実行可能
なコードを意味している。しかしながら、本発明はファ
イルサーバに限定されるものと考えてはならない。スト
レージオペレーティングシステムはマイクロカーネルと
して実施することができ、ファイルシステム11セマン
ティックを実施し、データアクセスを管理するためのフ
ァイルシステム層880を含む。また、ストレージオペ
レーティングシステムは、UNIX(R)やwindow
s(R)などの汎用オペレーティングシステム上で動作す
るアプリケーションプログラムとして実施することもで
きるし、本明細書に記載するようなストレージアプリケ
ーションについて構成された設定可能な機能を有する汎
用オペレーティングシステムとして実施することもでき
る。
【0130】さらに、当業者であれば、本明細書に記載
された本発明の技術は、スタンドアロンのコンピュータ
やストレージシステムとして実現されたコンピュータの
一部を含めて、任意のタイプの専用コンピュータ(例え
ばサーバ)や汎用コンピュータに適用できることが分か
るであろう。ファイルシステム層およびRAID層(ま
たはその構成要素)は、同じコンピュータシステム上で
実施することもできるし、互いに通信する別のコンピュ
ータ上で実施することもできる。レイアウト情報生成器
及び、ストレージデバイスマネージャ(またはその構成
要素)にも同じことが言える。ストレージオペレーティ
ングシステムは、単一のコンピュータシステムまたは装
置上で実行することもできるし、複数のコンピュータシ
ステムまたは装置上に分散させることもできる。さらに
本発明の教示は、限定しないが、ネットワーク取り付け
されたストレージ環境、ストレージエリアネットワー
ク、及び、クライアントまたはホストコンピュータに直
接取り付けられたディスクアセンブリなどを含む様々な
ストレージシステムアーキテクチャに適用することがで
きる。そのため、「ストレージシステム」という用語
は、こうした構成を含むように広い意味で解釈しなけれ
ばならない。
【0131】当業者であれば、特許請求の範囲に記載し
た本発明の思想及び範囲から外れることなく、本明細書
に記載した実施形態の変形、修正及びその他の実施形態
を作成するであろう。従って、本発明は、例示した実施
形態によって規定されるのではなく、特許請求の範囲に
記載された発明の思想と範囲によって規定される。
【図面の簡単な説明】
【図1a】本発明に従って構成されたデータストレージ
システムの一実施形態を示すブロック図である。
【図1b】本発明に従って攻勢されたディスクドライブ
アレイの一実施形態を示すブロック図である。
【図2】クライアント及びディスクドライブアレイと通
信するストレージシステムの一実施形態を示すブロック
図である。
【図3】図1の実施形態に対応するストレージシステム
の一実施形態を示すブロック図である。
【図4】図1のストレージシステムによって実施される
ような記憶装置アレイへのデータの格納を制御するため
の方法の一実施形態を示すフロー図である。
【図5】RAID4ディスクドライブアレイの一実施形
態を示すブロック図である。
【図6】全16個の記憶ブロックからなり4ストライプ
を含む記憶ブロックグループの一実施形態を示すブロッ
ク図である。
【図7】バッファリングされた4つの書き込み要求の一
実施形態を示すブロック図である。
【図8】図6のデータブロックとディスクドライブアレ
イにおける記憶ブロックグループとの関係の一実施形態
を示すブロック図である。
【図9】3つの記憶ブロックグループに格納されたデー
タブロックを含むディスクドライブアレイの一実施形態
を示すブロック図である。
【図10】ミラーリングを含むRAIDアレイの一実施
形態の論理的グループ分けの一実施形態を示すブロック
図である。
【図11】図10のアレイに実施されるようなデータ書
き込みを処理するための方法の一実施形態を示すフロー
図である。
【図12】図1のストレージシステムに含まれるストレ
ージオペレーティングシステムの一実施形態を示すブロ
ック図である。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 ラジェシュ・スンダラム アメリカ合衆国カリフォルニア州94040, マウンテンビュー,ドバートン・スクエ ア・2703 (72)発明者 ダグラス・ピー・ドウセット アメリカ合衆国ワシントン州98249,フリ ーランド,セニック・アベニュー・1864 (72)発明者 ステファン・エイチ・ストレンジ アメリカ合衆国カリフォルニア州94040, マウンテンビュー,ローズ・アベニュー・ 1147 (72)発明者 スリニバサン・ビスワナザン アメリカ合衆国カリフォルニア州,フレモ ント,ファルチロ・プレイス・751 Fターム(参考) 5B065 BA01 CA13 CA30 CC04 CE06

Claims (14)

    【特許請求の範囲】
  1. 【請求項1】複数の記憶装置におけるデータの格納を管
    理するための方法であって、該記憶装置の各々が複数の
    記憶ブロックからなり、前記データが複数の前記記憶装
    置にわたってストライプ状に編成されているものにおい
    て、 ブロックレイアウト情報を生成するステップと、 前記ブロックレイアウト情報に応じて、前記複数の記憶
    ブロックのうちのI/O処理で使用するための記憶ブロ
    ックを識別することによって、誤り訂正パラメタの計算
    コストを実質的に最小にしつつ、誤り訂正パラメタを計
    算するための読み出しのチェーン長及びストライプにわ
    たるデータ書き込み処理の書き込みのチェーン長を最大
    にするように前記I/O処理の実行を制御するステップ
    と、 からなる方法。
  2. 【請求項2】前記誤り訂正パラメタの計算がパリティの
    計算を含む、請求項1の方法。
  3. 【請求項3】前記パリティの計算は、減算方法およびパ
    リティ再計算方法からなるグループの中から一方のパリ
    ティ計算処理を選択することを含む、請求項2の方法。
  4. 【請求項4】前記I/O処理で使用する記憶ブロックを
    識別することは、記憶装置上の連続した物理レイアウト
    のブロック数を実質的に最大にすることによって、前記
    チェーン長を実質的に最大にする、請求項1の方法。
  5. 【請求項5】前記I/O処理で使用するための記憶ブロ
    ックに関連する連続VBNを有するブロック数を実質的
    に最大にすることにより、前記チェーン長を実質的に最
    大にするようにして、前記I/O処理で使用するための
    記憶ブロックを識別するステップをさらに含む、請求項
    1の方法。
  6. 【請求項6】記憶装置のブロックの局部性を実質的に最
    大にすることにより、前記チェーン長を実質的に最大に
    するようにして、I/O処理で使用するための記憶ブロ
    ックを識別するステップをさらに含む、請求項1の方
    法。
  7. 【請求項7】前記制御するステップは、 書き込み処理の前にデータ書き込み先のブロックを検査
    するステップと、 読み出しブロック数の最大化を含む第1の方法とパリテ
    ィ計算のために読み出されるブロックのチェーン長の最
    大化を含む第2の方法とを含む複数のパリティ計算方法
    のうちの1つを選択するステップと、 を含む、請求項1の方法。
  8. 【請求項8】前記記憶ブロックの識別は、少なくとも部
    分的に利用可能なリソースに基づいて実施される、請求
    項1の方法。
  9. 【請求項9】複数の記憶装置を有し該記憶装置の各々が
    複数の記憶ブロックからなるストレージシステム用のコ
    ンピュータ読み取り可能な媒体であって、 前記記憶ブロックに関するブロックレイアウト情報を取
    得するステップと、 複数のストライプにわたって所定の記憶ブロックにデー
    タを書き込むとともに、各記憶装置内の所定の記憶ブロ
    ックにデータを書き込み、複数のストライプの各ストラ
    イプにわたる誤り訂正パラメタの計算コストを実質的に
    最小にしつつ、各記憶装置内の記憶ブロックのチェーン
    長を実質的に最大にするステップと、 を実施するコンピュータ読み取り可能な媒体。
  10. 【請求項10】前記誤り訂正パラメタの計算がパリティ
    の計算を含む、請求項9のコンピュータ読み取り可能な
    媒体。
  11. 【請求項11】前記パリティの計算が減算方法およびパ
    リティ再計算方法からなるグループの中からパリティ計
    算処理を選択することを含む、請求項10のコンピュー
    タ読み取り可能な媒体。
  12. 【請求項12】I/O処理に使用するための記憶ブロッ
    クに関連する連続したVBNを有するブロック数を実質
    的に最大にすることにより、前記チェーン長を実質的に
    最大にするようにして、前記I/O処理に使用するため
    の記憶ブロックを識別するステップをさらに含む、請求
    項9のコンピュータ読み取り可能な媒体。
  13. 【請求項13】記憶装置のブロックの局所性を実質的に
    最大にすることにより、前記チェーン長を最大にするよ
    うにして、I/O処理で使用するための記憶ブロックを
    識別するステップをさらに含む、請求項9のコンピュー
    タ読み取り可能な媒体。
  14. 【請求項14】複数の記憶装置の各々が複数の記憶ブロ
    ックを有する、複数の記憶装置と、 前記複数の記憶装置の各々と通信し、データを複数のス
    トライプにわたって所定の記憶ブロックに書き込むとと
    もに、データを各記憶装置内の所定の記憶ブロックに書
    き込み、複数のストライプの各ストライプにわたる誤り
    訂正パラメタの計算を実質的に最小にしつつ、記憶装置
    内の記憶ブロックのチェーン長を最大にする、ストレー
    ジマネージャと、 からなるストレージシステム。
JP2003080010A 2002-03-21 2003-03-24 Raidシステムにおいてストライプの連続アレイに書き込む方法 Pending JP2003296038A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/105034 2002-03-21
US10/105,034 US7200715B2 (en) 2002-03-21 2002-03-21 Method for writing contiguous arrays of stripes in a RAID storage system using mapped block writes

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2009292012A Division JP5249188B2 (ja) 2002-03-21 2009-12-24 Raidシステムにおいてストライプの連続アレイに書き込む方法及びシステム

Publications (1)

Publication Number Publication Date
JP2003296038A true JP2003296038A (ja) 2003-10-17

Family

ID=27788399

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2003080010A Pending JP2003296038A (ja) 2002-03-21 2003-03-24 Raidシステムにおいてストライプの連続アレイに書き込む方法
JP2009292012A Expired - Lifetime JP5249188B2 (ja) 2002-03-21 2009-12-24 Raidシステムにおいてストライプの連続アレイに書き込む方法及びシステム

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2009292012A Expired - Lifetime JP5249188B2 (ja) 2002-03-21 2009-12-24 Raidシステムにおいてストライプの連続アレイに書き込む方法及びシステム

Country Status (3)

Country Link
US (3) US7200715B2 (ja)
EP (1) EP1347369B1 (ja)
JP (2) JP2003296038A (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009524882A (ja) * 2006-01-26 2009-07-02 ネットアップ,インコーポレイテッド 内容参照ストレージアレイ要素
WO2020188444A1 (en) * 2019-03-15 2020-09-24 Kioxia Corporation Data storage resource management
CN113176858A (zh) * 2021-05-07 2021-07-27 锐捷网络股份有限公司 数据处理方法、存储***及存储设备
JP7490394B2 (ja) 2020-03-06 2024-05-27 株式会社日立製作所 情報共有支援方法、及び情報共有支援システム

Families Citing this family (145)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050015411A1 (en) * 1996-06-27 2005-01-20 Gerald Altman Systems, processes, and products for storage and retrieval of electronic files
US20040059742A1 (en) * 1996-06-27 2004-03-25 Gerald Altman Database systems and processes for storage and retrieval of electronic and related documents
US6953392B2 (en) * 2001-01-05 2005-10-11 Asm Nutool, Inc. Integrated system for processing semiconductor wafers
US7539991B2 (en) * 2002-03-21 2009-05-26 Netapp, Inc. Method and apparatus for decomposing I/O tasks in a raid system
JP2003316521A (ja) 2002-04-23 2003-11-07 Hitachi Ltd 記憶制御装置
US7155634B1 (en) * 2002-10-25 2006-12-26 Storage Technology Corporation Process for generating and reconstructing variable number of parity for byte streams independent of host block size
KR100957797B1 (ko) * 2002-11-13 2010-05-13 엘지전자 주식회사 대화형 광디스크 장치에서의 콘텐츠 정보 재생방법과,콘텐츠 제공서버에서의 콘텐츠 정보 제공방법
AU2004215108B2 (en) * 2003-02-26 2009-07-30 Tomtom Navigation B.V. Navigation device with touch screen
US7328364B1 (en) 2003-03-21 2008-02-05 Network Appliance, Inc. Technique for coherent suspension of I/O operations in a RAID subsystem
JP4060235B2 (ja) 2003-05-22 2008-03-12 株式会社日立製作所 ディスクアレイ装置及びディスクアレイ装置の制御方法
JP2004348464A (ja) 2003-05-22 2004-12-09 Hitachi Ltd ストレージ装置、及び通信信号の整形回路
JP2005070950A (ja) * 2003-08-21 2005-03-17 Sanyo Electric Co Ltd プログラム処理装置
JP4156499B2 (ja) 2003-11-28 2008-09-24 株式会社日立製作所 ディスクアレイ装置
US7734868B2 (en) 2003-12-02 2010-06-08 Nvidia Corporation Universal RAID class driver
JP4497918B2 (ja) * 2003-12-25 2010-07-07 株式会社日立製作所 ストレージシステム
JP4634049B2 (ja) 2004-02-04 2011-02-16 株式会社日立製作所 ディスクアレイ装置における異常通知制御
US7467238B2 (en) * 2004-02-10 2008-12-16 Hitachi, Ltd. Disk controller and storage system
JP4441286B2 (ja) * 2004-02-10 2010-03-31 株式会社日立製作所 ストレージシステム
JP4405277B2 (ja) 2004-02-16 2010-01-27 株式会社日立製作所 ディスク制御装置
US7406621B2 (en) * 2004-04-02 2008-07-29 Seagate Technology Llc Dual redundant data storage format and method
JP2007533012A (ja) * 2004-04-12 2007-11-15 アリゾナ ボード オブ リージェンツ データ格納のための情報処理と輸送アーキテクチャ
US7415653B1 (en) 2004-04-21 2008-08-19 Sun Microsystems, Inc. Method and apparatus for vectored block-level checksum for file system data integrity
US7424574B1 (en) 2004-04-21 2008-09-09 Sun Microsystems, Inc. Method and apparatus for dynamic striping
US7603568B1 (en) 2004-04-21 2009-10-13 Sun Microsystems, Inc. Method and apparatus for self-validating checksums in a file system
US7895286B1 (en) 2004-04-30 2011-02-22 Netapp, Inc. Network storage system with NVRAM and cluster interconnect adapter implemented in a single circuit module
US7962562B1 (en) 2004-04-30 2011-06-14 Netapp, Inc. Multicasting message in a network storage system to local NVRAM and remote cluster partner
US7539781B1 (en) * 2004-04-30 2009-05-26 Netapp. Inc. Use of queue pairs for local communication in a network storage system
US7769913B1 (en) 2004-04-30 2010-08-03 Netapp, Inc. Method and apparatus for assigning a local identifier to a cluster interconnect port in a network storage system
US7386663B2 (en) * 2004-05-13 2008-06-10 Cousins Robert E Transaction-based storage system and method that uses variable sized objects to store data
US7526622B1 (en) 2004-05-26 2009-04-28 Sun Microsystems, Inc. Method and system for detecting and correcting data errors using checksums and replication
US7412450B1 (en) 2004-05-26 2008-08-12 Sun Microsystems, Inc. Method and apparatus for identifying tampering of data in a file system
US7496586B1 (en) 2004-05-26 2009-02-24 Sun Microsystems, Inc. Method and apparatus for compressing data in a file system
US7437528B1 (en) 2004-08-17 2008-10-14 Sun Microsystems, Inc. Gang blocks
US7533225B1 (en) 2004-08-17 2009-05-12 Sun Microsystems, Inc. Method and apparatus for enabling adaptive endianness
US8335807B1 (en) * 2004-08-30 2012-12-18 Sprint Communications Company, L.P. File distribution system and method
US7353423B2 (en) * 2004-09-24 2008-04-01 International Business Machines Corporation System and method for improving the performance of operations requiring parity reads in a storage array system
US8131926B2 (en) 2004-10-20 2012-03-06 Seagate Technology, Llc Generic storage container for allocating multiple data formats
US7730277B1 (en) * 2004-10-25 2010-06-01 Netapp, Inc. System and method for using pvbn placeholders in a flexible volume of a storage system
US7516346B2 (en) * 2004-10-28 2009-04-07 Nec Laboratories America, Inc. System and method for dynamically changing the power mode of storage disks based on redundancy and system load
US20060129987A1 (en) * 2004-12-15 2006-06-15 Patten Benhase Linda V Apparatus, system, and method for accessing management data
US8332844B1 (en) 2004-12-30 2012-12-11 Emendable Assets Limited Liability Company Root image caching and indexing for block-level distributed application management
US7721282B1 (en) * 2004-12-30 2010-05-18 Panta Systems, Inc. Block-level I/O subsystem for distributed application environment management
US7904649B2 (en) * 2005-04-29 2011-03-08 Netapp, Inc. System and method for restriping data across a plurality of volumes
US7337262B2 (en) * 2005-05-02 2008-02-26 International Business Machines Corporation Adaptive read ahead method of data recorded on a sequential media readable via a variable data block size storage device
JP4410178B2 (ja) 2005-09-22 2010-02-03 富士通株式会社 Raid装置におけるライトバック方法
US7716445B2 (en) * 2005-11-04 2010-05-11 Oracle America, Inc. Method and system for storing a sparse file using fill counts
US7743225B2 (en) * 2005-11-04 2010-06-22 Oracle America, Inc. Ditto blocks
US7596739B2 (en) * 2005-11-04 2009-09-29 Sun Microsystems, Inc. Method and system for data replication
US7657671B2 (en) * 2005-11-04 2010-02-02 Sun Microsystems, Inc. Adaptive resilvering I/O scheduling
US7716519B2 (en) * 2005-11-04 2010-05-11 Oracle America, Inc. Method and system for repairing partially damaged blocks
US8938594B2 (en) * 2005-11-04 2015-01-20 Oracle America, Inc. Method and system for metadata-based resilvering
US7873799B2 (en) * 2005-11-04 2011-01-18 Oracle America, Inc. Method and system supporting per-file and per-block replication
US20070106868A1 (en) * 2005-11-04 2007-05-10 Sun Microsystems, Inc. Method and system for latency-directed block allocation
US7865673B2 (en) * 2005-11-04 2011-01-04 Oracle America, Inc. Multiple replication levels with pooled devices
US8495010B2 (en) * 2005-11-04 2013-07-23 Oracle America, Inc. Method and system for adaptive metadata replication
US7930495B2 (en) * 2005-11-04 2011-04-19 Oracle America, Inc. Method and system for dirty time log directed resilvering
US20070112895A1 (en) * 2005-11-04 2007-05-17 Sun Microsystems, Inc. Block-based incremental backup
US7689877B2 (en) * 2005-11-04 2010-03-30 Sun Microsystems, Inc. Method and system using checksums to repair data
US8635190B2 (en) * 2005-11-04 2014-01-21 Oracle America, Inc. Method and system for pruned resilvering using a dirty time log
US7925827B2 (en) * 2005-11-04 2011-04-12 Oracle America, Inc. Method and system for dirty time logging
US7877554B2 (en) * 2005-11-04 2011-01-25 Oracle America, Inc. Method and system for block reallocation
US8549051B2 (en) * 2005-11-04 2013-10-01 Oracle America, Inc. Unlimited file system snapshots and clones
US7899989B2 (en) * 2005-11-04 2011-03-01 Oracle America, Inc. Method and system for using a block allocation policy
US7480684B2 (en) * 2005-11-04 2009-01-20 Sun Microsystems, Inc. Method and system for object allocation using fill counts
KR100827677B1 (ko) * 2006-06-20 2008-05-07 한국과학기술원 행렬 스트라이프 캐쉬를 이용한 raid 시스템의 입출력성능 향상 방법
US7584229B2 (en) * 2006-10-31 2009-09-01 Sun Microsystems, Inc. Method and system for priority-based allocation in a storage pool
US7783847B2 (en) * 2006-10-31 2010-08-24 Oracle America Inc. Method and system for reallocating blocks in a storage pool
US7840657B2 (en) * 2006-10-31 2010-11-23 Oracle America, Inc. Method and apparatus for power-managing storage devices in a storage pool
US20080282245A1 (en) * 2007-05-08 2008-11-13 International Business Machines Corporation Media Operational Queue Management in Storage Systems
US7792882B2 (en) * 2007-09-27 2010-09-07 Oracle America, Inc. Method and system for block allocation for hybrid drives
US9507784B2 (en) * 2007-12-21 2016-11-29 Netapp, Inc. Selective extraction of information from a mirrored image file
US8549222B1 (en) 2008-02-12 2013-10-01 Netapp, Inc. Cache-based storage system architecture
WO2009102425A1 (en) * 2008-02-12 2009-08-20 Netapp, Inc. Hybrid media storage system architecture
US7906984B1 (en) 2008-02-26 2011-03-15 The United States Of America As Represented By The Secretary Of The Air Force Relocatable field programmable gate array bitstreams for fault tolerance
EP2595062B1 (en) * 2008-02-28 2016-12-28 Fujitsu Limited Storage device, storage control device, data transfer integrated circuit, and storage control method
US8095728B2 (en) * 2008-04-18 2012-01-10 Oracle America, Inc. Method and system for power aware I/O scheduling
US8200638B1 (en) 2008-04-30 2012-06-12 Netapp, Inc. Individual file restore from block-level incremental backups by using client-server backup protocol
US8037279B2 (en) * 2008-06-12 2011-10-11 Oracle America, Inc. Method and system for cross-domain data sharing
US8135907B2 (en) * 2008-06-30 2012-03-13 Oracle America, Inc. Method and system for managing wear-level aware file systems
US8099623B1 (en) 2008-10-08 2012-01-17 Netapp, Inc. Efficient distributed hot sparing scheme in a parity declustered RAID organization
US8495417B2 (en) * 2009-01-09 2013-07-23 Netapp, Inc. System and method for redundancy-protected aggregates
US8504529B1 (en) 2009-06-19 2013-08-06 Netapp, Inc. System and method for restoring data to a storage device based on a backup image
US8280858B2 (en) * 2009-06-29 2012-10-02 Oracle America, Inc. Storage pool scrubbing with concurrent snapshots
US9069687B2 (en) * 2010-01-29 2015-06-30 Avago Technologies General Ip (Singapore) Pte. Ltd. Memory read-channel with selective transmission of error correction data
US8832370B2 (en) * 2010-02-12 2014-09-09 Netapp, Inc. Redundant array of independent storage
US11429486B1 (en) 2010-02-27 2022-08-30 Pure Storage, Inc. Rebuilding data via locally decodable redundancy in a vast storage network
US9244769B2 (en) 2010-09-28 2016-01-26 Pure Storage, Inc. Offset protection data in a RAID array
US8463991B2 (en) 2010-09-28 2013-06-11 Pure Storage Inc. Intra-device data protection in a raid array
US8775868B2 (en) 2010-09-28 2014-07-08 Pure Storage, Inc. Adaptive RAID for an SSD environment
US9229808B2 (en) 2010-10-01 2016-01-05 Pure Storage, Inc. Reconstruct reads in a raid array with dynamic geometries
US9348696B2 (en) 2010-10-01 2016-05-24 Pure Storage, Inc. Distributed multi-level protection in a raid array based storage system
US9274977B2 (en) * 2010-11-01 2016-03-01 International Business Machines Corporation Storing data integrity information utilizing dispersed storage
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
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
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
US8700950B1 (en) 2011-02-11 2014-04-15 Western Digital Technologies, Inc. System and method for data error recovery in a solid state subsystem
JP5505329B2 (ja) * 2011-02-22 2014-05-28 日本電気株式会社 ディスクアレイ装置及びその制御方法
US8631272B2 (en) * 2011-03-04 2014-01-14 Microsoft Corporation Duplicate-aware disk arrays
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
US9396067B1 (en) 2011-04-18 2016-07-19 American Megatrends, Inc. I/O accelerator for striped disk arrays using parity
US9063854B1 (en) * 2011-04-18 2015-06-23 American Megatrends, Inc. Systems and methods for cluster raid data consistency
US8904106B2 (en) 2011-06-22 2014-12-02 International Business Machines Corporation Parallel block allocation for declustered logical disks
US9553817B1 (en) 2011-07-14 2017-01-24 Sprint Communications Company L.P. Diverse transmission of packet content
US8856440B2 (en) 2011-09-12 2014-10-07 Microsoft Corporation Volatile memory representation of nonvolatile storage device set
US8938583B1 (en) * 2011-11-16 2015-01-20 Western Digital Technologies, Inc. System and method for concurrently executing data access requests
US9081668B2 (en) 2012-03-16 2015-07-14 Marvell World Trade Ltd. Architecture to allow efficient storage of data on NAND flash memory
US9128823B1 (en) * 2012-09-12 2015-09-08 Emc Corporation Synthetic data generation for backups of block-based storage
EP2725491B1 (en) * 2012-10-26 2019-01-02 Western Digital Technologies, Inc. A distributed object storage system comprising performance optimizations
WO2014101108A1 (zh) * 2012-12-28 2014-07-03 华为技术有限公司 分布式存储***的缓存方法、节点和计算机可读介质
US9197758B2 (en) * 2013-03-22 2015-11-24 Jdsu Uk Limited Method and apparatus for managing call data
US9282197B2 (en) 2013-03-22 2016-03-08 Viavi Solutions Uk Limited Method and apparatus for managing call data
US9094537B2 (en) * 2013-03-22 2015-07-28 Jdsu Uk Limited Method and apparatus for managing call data
CN103718151B (zh) * 2013-08-09 2015-06-10 华为技术有限公司 一种文件处理方法及存储设备
CN103733175B (zh) * 2013-08-09 2015-05-27 华为技术有限公司 一种文件处理方法、装置及存储设备
US10067829B2 (en) 2013-12-13 2018-09-04 Intel Corporation Managing redundancy information in a non-volatile memory
US10061628B2 (en) * 2014-03-13 2018-08-28 Open Text Sa Ulc System and method for data access and replication in a distributed environment utilizing data derived from data access within the distributed environment
WO2016018383A1 (en) 2014-07-31 2016-02-04 Hewlett-Packard Development Company Live migration of data
US10540109B2 (en) 2014-09-02 2020-01-21 Hewlett Packard Enterprise Development Lp Serializing access to fault tolerant memory
WO2016064417A1 (en) 2014-10-24 2016-04-28 Hewlett Packard Enterprise Development Lp End-to-end negative acknowledgment
US9390761B2 (en) 2014-11-24 2016-07-12 Seagate Technology Llc Data storage device with wear level identification
US9218849B1 (en) 2014-11-24 2015-12-22 Seagate Technology Llc Data loss mitigation in a heat assisted magnetic recording data storage device
US9720596B1 (en) * 2014-12-19 2017-08-01 EMC IP Holding Company LLC Coalescing writes for improved storage utilization
WO2016122610A1 (en) * 2015-01-30 2016-08-04 Hewlett Packard Enterprise Development Lp Preventing data corruption and single point of failure in a fault-tolerant memory
US10409681B2 (en) 2015-01-30 2019-09-10 Hewlett Packard Enterprise Development Lp Non-idempotent primitives in fault-tolerant memory
WO2016122642A1 (en) 2015-01-30 2016-08-04 Hewlett Packard Enterprise Development Lp Determine failed components in fault-tolerant memory
US10402261B2 (en) 2015-03-31 2019-09-03 Hewlett Packard Enterprise Development Lp Preventing data corruption and single point of failure in fault-tolerant memory fabrics
WO2016190891A1 (en) * 2015-05-23 2016-12-01 Hewlett Packard Enterprise Development Lp Translate data operations based on data stripe size
US9811280B2 (en) * 2015-12-23 2017-11-07 Netapp, Inc. Efficient method of combining parity groups for uniform load distribution and maximizing parallelization in parity de-clustered and sliced disk raid architecture
US10001922B2 (en) 2016-02-19 2018-06-19 International Business Machines Corporation High performance optical storage system for protection against concurrent data loss
US11422719B2 (en) * 2016-09-15 2022-08-23 Pure Storage, Inc. Distributed file deletion and truncation
CN107992492B (zh) * 2016-10-26 2020-06-30 ***通信有限公司研究院 一种数据区块的存储方法、读取方法、其装置及区块链
US10365827B1 (en) * 2017-01-10 2019-07-30 Pavilion Data Systems, Inc. Spread space tracking
CN108733311B (zh) * 2017-04-17 2021-09-10 伊姆西Ip控股有限责任公司 用于管理存储***的方法和设备
US10389342B2 (en) 2017-06-28 2019-08-20 Hewlett Packard Enterprise Development Lp Comparator
WO2019016911A1 (ja) 2017-07-20 2019-01-24 株式会社日立製作所 分散ストレージシステム及び分散ストレージ制御方法
US10678535B2 (en) 2018-05-23 2020-06-09 Dell Products L.P. Method for updating firmware of unassigned drives
CN110737401B (zh) * 2018-07-20 2023-10-20 伊姆西Ip控股有限责任公司 用于管理独立冗余磁盘阵列的方法、设备和计算机程序产品
US11086565B2 (en) * 2018-10-01 2021-08-10 International Business Machines Corporation Reducing effects of read array operations of read apparent voltage
US11100092B2 (en) 2019-06-17 2021-08-24 Bank Of America Corporation Database tool
US11269861B2 (en) 2019-06-17 2022-03-08 Bank Of America Corporation Database tool
US10977181B2 (en) 2019-07-10 2021-04-13 International Business Machines Corporation Data placement in write cache architecture supporting read heat data separation
US11016849B2 (en) 2019-09-04 2021-05-25 Red Hat, Inc. Kernel software raid support for direct-access file systems
CN110543463A (zh) * 2019-09-16 2019-12-06 南方电网科学研究院有限责任公司 一种日志存储方法、装置、设备及可读存储介质
US11249674B2 (en) * 2020-06-03 2022-02-15 Innogrit Technologies Co., Ltd. Electrical mirroring by NAND flash controller
CN114564144B (zh) * 2020-11-27 2024-04-19 伊姆西Ip控股有限责任公司 在存储***中创建区块阵列的方法、设备和程序产品

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH065003A (ja) * 1992-01-24 1994-01-14 Internatl Business Mach Corp <Ibm> データ記憶方法及びデータ記憶装置
JPH06161672A (ja) * 1992-07-06 1994-06-10 Hewlett Packard Co <Hp> プログラム可能なディスクドライブアレイコントローラ
JPH06511098A (ja) * 1991-12-27 1994-12-08 コンパック・コンピュータ・コーポレイション ディスク配列サブシステムにおける部分的ストライプ書込性能を改善する方法
JPH08511368A (ja) * 1993-06-04 1996-11-26 ネットワーク・アプリアンス・コーポレーション 不揮発性メモリを用いてraidサブシステムにパリティを形成する方法
JPH08511369A (ja) * 1993-06-03 1996-11-26 ネットワーク・アプライアンス・コーポレイション レードディスクサブシステムを備えた、ファイルシステムのファイル割り当て方法
JPH09146850A (ja) * 1995-11-08 1997-06-06 Internatl Business Mach Corp <Ibm> 記憶装置障害保護方法、試験方法、パリティ等割り当て方法、および、保護システム
JPH09330185A (ja) * 1996-06-13 1997-12-22 Oki Electric Ind Co Ltd ディスクアレイ装置
JP2000010738A (ja) * 1998-06-17 2000-01-14 Toshiba Corp ディスクアレイシステム、同システムに適用される記憶容量拡張方法および記録媒体
JP2001154811A (ja) * 1999-11-30 2001-06-08 Toshiba Corp 計算機システム
JP2001188658A (ja) * 1999-12-28 2001-07-10 Toshiba Corp ディスク制御システムおよびデータ再配置方法

Family Cites Families (85)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3876978A (en) 1973-06-04 1975-04-08 Ibm Archival data protection
US4092732A (en) 1977-05-31 1978-05-30 International Business Machines Corporation System for recovering data stored in failed memory unit
US4201976A (en) 1977-12-23 1980-05-06 International Business Machines Corporation Plural channel error correcting methods and means using adaptive reallocation of redundant channels among groups of channels
US4205324A (en) 1977-12-23 1980-05-27 International Business Machines Corporation Methods and means for simultaneously correcting several channels in error in a parallel multi channel data system using continuously modifiable syndromes and selective generation of internal channel pointers
JPS5637883A (en) 1979-09-04 1981-04-11 Fanuc Ltd Information rewrite system
US4467421A (en) 1979-10-18 1984-08-21 Storage Technology Corporation Virtual storage system and method
DE3040004A1 (de) 1979-10-24 1981-05-07 Matsushita Electric Industrial Co., Ltd., Kadoma, Osaka Verfahren und vorrichtung zum codieren von pruefworten geringer redundanz aus ursprungsdaten
US4825403A (en) 1983-05-16 1989-04-25 Data General Corporation Apparatus guaranteeing that a controller in a disk drive system receives at least some data from an invalid track sector
JPS60142418A (ja) 1983-12-28 1985-07-27 Hitachi Ltd 入出力エラ−回復方式
FR2561428B1 (fr) 1984-03-16 1986-09-12 Bull Sa Procede d'enregistrement dans une memoire a disques et systeme de memoire a disques
US4667326A (en) 1984-12-20 1987-05-19 Advanced Micro Devices, Inc. Method and apparatus for error detection and correction in systems comprising floppy and/or hard disk drives
US5202979A (en) 1985-05-08 1993-04-13 Thinking Machines Corporation Storage system using multiple independently mechanically-driven storage units
US4722085A (en) 1986-02-03 1988-01-26 Unisys Corp. High capacity disk storage system having unusually high fault tolerance level and bandpass
JPH0675329B2 (ja) 1986-02-18 1994-09-21 ソニー株式会社 ディスクプレーヤ
US4805098A (en) * 1986-05-05 1989-02-14 Mips Computer Systems, Inc. Write buffer
US4761785B1 (en) 1986-06-12 1996-03-12 Ibm Parity spreading to enhance storage access
US4775978A (en) 1987-01-12 1988-10-04 Magnetic Peripherals Inc. Data error correction system
USRE34100E (en) 1987-01-12 1992-10-13 Seagate Technology, Inc. Data error correction system
US4796260A (en) 1987-03-30 1989-01-03 Scs Telecom, Inc. Schilling-Manela forward error correction and detection code method and apparatus
US5257367A (en) 1987-06-02 1993-10-26 Cab-Tek, Inc. Data storage system with asynchronous host operating system communication link
US4849976A (en) 1987-08-03 1989-07-18 Scs Telecom, Inc. PASM and TASM forward error correction and detection code method and apparatus
US4849974A (en) 1987-08-03 1989-07-18 Scs Telecom, Inc. PASM and TASM forward error correction and detection code method and apparatus
US4837680A (en) 1987-08-28 1989-06-06 International Business Machines Corporation Controlling asynchronously operating peripherals
US4870643A (en) 1987-11-06 1989-09-26 Micropolis Corporation Parallel drive array storage system
US4847842A (en) 1987-11-19 1989-07-11 Scs Telecom, Inc. SM codec method and apparatus
US4899342A (en) 1988-02-01 1990-02-06 Thinking Machines Corporation Method and apparatus for operating multi-unit array of memories
US5077736A (en) 1988-06-28 1991-12-31 Storage Technology Corporation Disk drive memory
US4989206A (en) 1988-06-28 1991-01-29 Storage Technology Corporation Disk drive memory
US4989205A (en) 1988-06-28 1991-01-29 Storage Technology Corporation Disk drive memory
US5128810A (en) 1988-08-02 1992-07-07 Cray Research, Inc. Single disk emulation interface for an array of synchronous spindle disk drives
US5218689A (en) 1988-08-16 1993-06-08 Cray Research, Inc. Single disk emulation interface for an array of asynchronously operating disk drives
US5148432A (en) 1988-11-14 1992-09-15 Array Technology Corporation Arrayed disk drive system and method
US5163131A (en) 1989-09-08 1992-11-10 Auspex Systems, Inc. Parallel i/o network file server architecture
US5101492A (en) 1989-11-03 1992-03-31 Compaq Computer Corporation Data redundancy and recovery protection
JPH03172946A (ja) * 1989-12-01 1991-07-26 Hitachi Ltd データ書き出し制御方式および装置
US5233618A (en) 1990-03-02 1993-08-03 Micro Technology, Inc. Data correcting applicable to redundant arrays of independent disks
US5088081A (en) 1990-03-28 1992-02-11 Prime Computer, Inc. Method and apparatus for improved disk access
US5210860A (en) 1990-07-20 1993-05-11 Compaq Computer Corporation Intelligent disk array controller
US5166936A (en) 1990-07-20 1992-11-24 Compaq Computer Corporation Automatic hard disk bad sector remapping
US5208813A (en) 1990-10-23 1993-05-04 Array Technology Corporation On-line reconstruction of a failed redundant array system
US5235601A (en) 1990-12-21 1993-08-10 Array Technology Corporation On-line restoration of redundancy information in a redundant array system
US5283880A (en) * 1991-01-02 1994-02-01 Compaq Computer Corp. Method of fast buffer copying by utilizing a cache memory to accept a page of source buffer contents and then supplying these contents to a target buffer without causing unnecessary wait states
US5274799A (en) 1991-01-04 1993-12-28 Array Technology Corporation Storage device array architecture with copyback cache
JP3409859B2 (ja) * 1991-01-31 2003-05-26 株式会社日立製作所 制御装置の制御方法
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
US5179704A (en) 1991-03-13 1993-01-12 Ncr Corporation Method and apparatus for generating disk array interrupt signals
EP0519669A3 (en) 1991-06-21 1994-07-06 Ibm Encoding and rebuilding data for a dasd array
US5237658A (en) 1991-10-01 1993-08-17 Tandem Computers Incorporated Linear and orthogonal expansion of array storage in multiprocessor computing systems
US5506977A (en) * 1991-12-17 1996-04-09 Dell Usa, L.P. Method and controller for minimizing reads during partial stripe write operations to a disk drive
US5305326A (en) 1992-03-06 1994-04-19 Data General Corporation High availability disk arrays
US5410667A (en) 1992-04-17 1995-04-25 Storage Technology Corporation Data record copy system for a disk drive array data storage subsystem
US5459842A (en) * 1992-06-26 1995-10-17 International Business Machines Corporation System for combining data from multiple CPU write requests via buffers and using read-modify-write operation to write the combined data to the memory
US6138126A (en) 1995-05-31 2000-10-24 Network Appliance, Inc. Method for allocating files in a file system integrated with a raid disk sub-system
US5963962A (en) 1995-05-31 1999-10-05 Network Appliance, Inc. Write anywhere file-system layout
DE69435146D1 (de) 1993-06-03 2008-11-13 Network Appliance Inc Verfahren und Vorrichtung zum Beschreiben beliebiger Bereiche eines Dateisystems
JPH0773090A (ja) * 1993-06-21 1995-03-17 Hitachi Ltd 計算機システムおよび二次記憶装置
US5537567A (en) 1994-03-14 1996-07-16 International Business Machines Corporation Parity block configuration in an array of storage devices
US5623595A (en) 1994-09-26 1997-04-22 Oracle Corporation Method and apparatus for transparent, real time reconstruction of corrupted data in a redundant array data storage system
US5812753A (en) 1995-10-13 1998-09-22 Eccs, Inc. Method for initializing or reconstructing data consistency within an array of storage elements
US5778426A (en) * 1995-10-23 1998-07-07 Symbios, Inc. Methods and structure to maintain a two level cache in a RAID controller and thereby selecting a preferred posting method
US5884098A (en) 1996-04-18 1999-03-16 Emc Corporation RAID controller system utilizing front end and back end caching systems including communication path connecting two caching systems and synchronizing allocation of blocks in caching systems
US5805788A (en) 1996-05-20 1998-09-08 Cray Research, Inc. Raid-5 parity generation and data reconstruction
US5860091A (en) 1996-06-28 1999-01-12 Symbios, Inc. Method and apparatus for efficient management of non-aligned I/O write request in high bandwidth raid applications
JP3133004B2 (ja) * 1996-11-21 2001-02-05 株式会社日立製作所 ディスクアレイ装置およびその制御方法
US5950225A (en) 1997-02-28 1999-09-07 Network Appliance, Inc. Fly-by XOR for generating parity for data gleaned from a bus
US5860003A (en) 1997-02-28 1999-01-12 Mti Technology, Inc. I/O controller software with each I/O command having a plurality of nets, each with a group of threads
KR100267366B1 (en) 1997-07-15 2000-10-16 Samsung Electronics Co Ltd Method for recoding parity and restoring data of failed disks in an external storage subsystem and apparatus therefor
US6148368A (en) * 1997-07-31 2000-11-14 Lsi Logic Corporation Method for accelerating disk array write operations using segmented cache memory and data logging
US6092215A (en) 1997-09-29 2000-07-18 International Business Machines Corporation System and method for reconstructing data in a storage array system
JP3616487B2 (ja) 1997-11-21 2005-02-02 アルプス電気株式会社 ディスクアレイ装置
JPH11194899A (ja) 1997-12-26 1999-07-21 Toshiba Corp ディスク記憶システム及び同システムに適用するデータ更新方法
US6138201A (en) 1998-04-15 2000-10-24 Sony Corporation Redundant array of inexpensive tape drives using data compression and data allocation ratios
JP3851723B2 (ja) * 1998-04-30 2006-11-29 株式会社東芝 ディスク記憶装置及び同装置におけるセグメントキャッシュ制御方法
US6101568A (en) * 1998-08-25 2000-08-08 Stmicroelectronics, Inc. Bus interface unit having dual purpose transaction buffer
US6298415B1 (en) 1999-02-19 2001-10-02 International Business Machines Corporation Method and system for minimizing writes and reducing parity updates in a raid system
US6195727B1 (en) 1999-03-31 2001-02-27 International Business Machines Corporation Coalescing raid commands accessing contiguous data in write-through mode
US6490664B1 (en) * 1999-06-14 2002-12-03 International Business Machines Corporation Method and system for handling destage requests during shut-down in a log-structured array
US6532548B1 (en) 1999-09-21 2003-03-11 Storage Technology Corporation System and method for handling temporary errors on a redundant array of independent tapes (RAIT)
US6581185B1 (en) 2000-01-24 2003-06-17 Storage Technology Corporation Apparatus and method for reconstructing data using cross-parity stripes on storage media
JP3592640B2 (ja) * 2001-01-09 2004-11-24 株式会社東芝 ディスク制御システムおよびディスク制御方法
US6993701B2 (en) * 2001-12-28 2006-01-31 Network Appliance, Inc. Row-diagonal parity technique for enabling efficient recovery from double failures in a storage array
US7539991B2 (en) 2002-03-21 2009-05-26 Netapp, Inc. Method and apparatus for decomposing I/O tasks in a raid system
US7437727B2 (en) 2002-03-21 2008-10-14 Network Appliance, Inc. Method and apparatus for runtime resource deadlock avoidance in a raid system
US7254813B2 (en) 2002-03-21 2007-08-07 Network Appliance, Inc. Method and apparatus for resource allocation in a raid system
US7809693B2 (en) * 2003-02-10 2010-10-05 Netapp, Inc. System and method for restoring data on demand for instant volume restoration

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06511098A (ja) * 1991-12-27 1994-12-08 コンパック・コンピュータ・コーポレイション ディスク配列サブシステムにおける部分的ストライプ書込性能を改善する方法
JPH065003A (ja) * 1992-01-24 1994-01-14 Internatl Business Mach Corp <Ibm> データ記憶方法及びデータ記憶装置
JPH06161672A (ja) * 1992-07-06 1994-06-10 Hewlett Packard Co <Hp> プログラム可能なディスクドライブアレイコントローラ
JPH08511369A (ja) * 1993-06-03 1996-11-26 ネットワーク・アプライアンス・コーポレイション レードディスクサブシステムを備えた、ファイルシステムのファイル割り当て方法
JPH08511368A (ja) * 1993-06-04 1996-11-26 ネットワーク・アプリアンス・コーポレーション 不揮発性メモリを用いてraidサブシステムにパリティを形成する方法
JPH09146850A (ja) * 1995-11-08 1997-06-06 Internatl Business Mach Corp <Ibm> 記憶装置障害保護方法、試験方法、パリティ等割り当て方法、および、保護システム
JPH09330185A (ja) * 1996-06-13 1997-12-22 Oki Electric Ind Co Ltd ディスクアレイ装置
JP2000010738A (ja) * 1998-06-17 2000-01-14 Toshiba Corp ディスクアレイシステム、同システムに適用される記憶容量拡張方法および記録媒体
JP2001154811A (ja) * 1999-11-30 2001-06-08 Toshiba Corp 計算機システム
JP2001188658A (ja) * 1999-12-28 2001-07-10 Toshiba Corp ディスク制御システムおよびデータ再配置方法

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009524882A (ja) * 2006-01-26 2009-07-02 ネットアップ,インコーポレイテッド 内容参照ストレージアレイ要素
WO2020188444A1 (en) * 2019-03-15 2020-09-24 Kioxia Corporation Data storage resource management
US11816503B2 (en) 2019-03-15 2023-11-14 Kioxia Corporation Data storage resource management
JP7490394B2 (ja) 2020-03-06 2024-05-27 株式会社日立製作所 情報共有支援方法、及び情報共有支援システム
CN113176858A (zh) * 2021-05-07 2021-07-27 锐捷网络股份有限公司 数据处理方法、存储***及存储设备

Also Published As

Publication number Publication date
US7979633B2 (en) 2011-07-12
EP1347369B1 (en) 2012-11-21
US7930475B1 (en) 2011-04-19
EP1347369A3 (en) 2006-08-02
JP2010079928A (ja) 2010-04-08
EP1347369A2 (en) 2003-09-24
US20040205387A1 (en) 2004-10-14
US20030182502A1 (en) 2003-09-25
JP5249188B2 (ja) 2013-07-31
US7200715B2 (en) 2007-04-03

Similar Documents

Publication Publication Date Title
JP5249188B2 (ja) Raidシステムにおいてストライプの連続アレイに書き込む方法及びシステム
JP7077359B2 (ja) 分散型ストレージシステム
US9477553B1 (en) Reliability based data allocation and recovery in a storage system
US8825963B1 (en) Dynamic balancing of performance with block sharing in a storage system
US9454332B2 (en) Assimilation of foreign LUNS into a network storage system
JP5068252B2 (ja) ストレージシステムクラスタの複数のボリュームにわたってデータコンテナをストライピングするためのデータ配置技術
US7441096B2 (en) Hierarchical storage management system
US7984259B1 (en) Reducing load imbalance in a storage system
US8261016B1 (en) Method and system for balancing reconstruction load in a storage array using a scalable parity declustered layout
US6526478B1 (en) Raid LUN creation using proportional disk mapping
US8131969B2 (en) Updating system configuration information
US8171064B2 (en) Methods and systems for concurrently reading direct and indirect data blocks
US10895995B2 (en) Capacity based load balancing in distributed storage systems with deduplication and compression functionalities
US9785682B1 (en) Fast dependency mining using access patterns in a storage system
US7533235B1 (en) Reserve stacking
US20240168816A1 (en) Dynamic migration of distributed object manager (dom) owner between dom servers

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060322

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20071225

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20080325

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20080402

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080625

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20081202

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20090302

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20090305

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20090825