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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
- G06F3/0613—Improving I/O performance in relation to throughput
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1076—Parity data used in redundant arrays of independent storages, e.g. in RAID systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/0643—Management of files
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0689—Disk 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
憶装置、例えばRAIDアレイにおけるデータの格納を
制御するための方法を特徴とする。本方法は、データに
関する複数の書き込み要求を受信し、それらの書き込み
要求をバッファリングすることを含む。ファイルシステ
ムは、ディスク接続形態情報に応じて、記憶ブロックの
グループを定義する。このグループには、前記複数の記
憶装置の各々における複数の記憶ブロックが含まれる。
書き込みを行なうデータの各データブロックは、それら
の記憶ブロックのうちの各々1つに関連していて、その
関連が複数の記憶装置に送信される。
Description
装置に関し、詳しくは、ディスクドライブアレイにおけ
る高信頼性電子データ記憶装置に関する。
データやアプリケーションプログラムなど)を格納する
ための大量の二次記憶装置が必要であり、二次記憶装置
はディスクドライブ等によって提供されるのが一般的で
ある。コンピュータおよびそれに関連するプロセッサの
性能が向上するのにつれて、ディスクドライブの性能も
向上してきた。例えば、データ密度及びトラック密度が
向上し、磁気媒体が改良され、一台のディスクドライブ
あたりのヘッド数及びプラッタ数を大きくすることで、
より高いデータ転送速度が得られるようになった。
ので、さらに大きな容量や性能を得るためにドライブを
交換する場合、高いコストの追加が生じることになる。
また、単一ドライブシステムには、格納データの冗長性
に関して制限もある。システムの損害や置換は、ストレ
ージサービスに対するアクセスの一時的な損失や、デー
タの永久的損失を引き起こす可能性がある。
ことによって、単一ディスクドライブシステムの欠点を
緩和することができる。データファイルを複数の塊に分
断して、並列にした複数のドライブから同時にアクセス
できるようにする場合がある。ディスクドライブを並列
に接続するこうしたシステムの1つは、「RAID」
(Redundant Array of Inexpensive/independent disk
s)と呼ばれる。RAIDシステムは、低コスト、高信
頼性ながら、大型の単一ディスクドライブシステムより
も大きな記憶容量を提供することができ、かつ、アレイ
の並列性によって高データ転送速度になっている。
IDシステムに書き込まれ、1ストライプはシステムの
ディスクドライブアレイにおいて各ディスクドライブ上
に1つの記憶ブロックを有している。データブロックは
各ドライブから同時に読み出すことができ、大きなファ
イルについても高速なデータアクセスを提供する。ま
た、RAIDシステムは、ディスクドライブをアレイに
追加することで、記憶容量を徐々に増加させてゆくこと
ができる。RAIDシステムでは、ディスクが故障した
場合、システム全体をシャットダウンすることなくその
ディスクを交換することができる。故障したディスク上
のデータは誤り訂正技術を用いて復元することができ
る。
スクドライブの集まりを、ディスクドライブの1以上の
グループにおけるストライプの集まりとして見る。ドラ
イブのグループは、一般に「RAIDグループ」と呼ば
れる。ストライプは、グループ内に所定の幾何配置で実
現されるのが通常である。すなわち、ストライプ内の各
ブロックは、そのディスクに対する同じオフセット(デ
ィスクブロック番号)に配置される。
RAIDレベル5と呼ばれる基本構成に関して定義され
るのが通常である。各レベルには、利点もあれば欠点も
ある。例えば、RAIDレベル4のシステムは、複数の
ブロックからなるデータを、N台のデータディスク上に
N個の記憶ブロックからなる「ストライプ」として格納
する。RAIDレベル4は、システム内の各ストライプ
に関する誤り訂正情報を格納する1台の特別なパリティ
ディスクドライブを追加する。
にとってもディスクドライバにとっても混乱を招くもの
である。ファイルシステムは通常、1つのファイルから
取り出したような関連データの格納のために、単一ドラ
イブ上の空間を割り当てることを好む。これによって、
その後の要求を予測することによりファイルアクセス時
間を削減する「先読み」動作が可能になる。ディスクド
ライバは、回転速度や、読み出し/書き込みのヘッドア
クセス時間など、ディスクの物理特性の利点が得られる
ように最適化される傾向にある。この場合も、関連デー
タブロックを同一ディスクドライブに格納することが有
利である。
クをストライプの観点から参照し、書き込み要求をスト
ライプの観点から取り扱う傾向がある。典型的には、パ
リティ計算のオーバヘッドを低減するため、1つのスト
ライプ書き込みになるまで複数のデータブロックを蓄積
する。RAIDディスクアレイマネージャがストライプ
書き込みを処理する場合、関連ブロックデータは複数の
ドライブ上に分散される。
システムのアクセスタイム及び転送速度の効率を向上さ
せるための方法および装置に関する。一実施形態におい
て、本発明は、ストレージシステムを有するとともに複
数の記憶装置と通信するストレージシステムによるデー
タの格納を管理するための方法に関する。各記憶装置
は、データを格納するための複数のブロックを有する。
ジオペレーティングシステムのファイルシステム層によ
ってデータを記憶するための書き込み処理に複数のブロ
ックのうちのいずれの記憶ブロックを用いるかを識別す
ることによりブロックレイアウト情報を生成するステッ
プを含み、その識別されるブロックは、高度の局所性を
有するか、あるいは各々のディスク上で連続しているこ
とが好ましい。本方法は、前記ブロックレイアウト情報
をストレージオペレーティングシステムのファイルシス
テム層からRAID層へ転送するステップをさらに含
み、前記ブロックレイアウト情報に応じてRAID層が
書き込み処理の実行を制御することで、パリティ計算の
コストを実質的に最小限にする。パリティ計算のコスト
は、例えば、実施される読み出し処理の数を最小にする
ことや、パリティ計算のために読み出されるブロックの
チェーン長を実質的に最大にすることによって、実質的
に最小にすることができる。
パリティ計算コストを実質的に最小にするステップは、
書き込み処理を検査するステップと、読み出しブロック
数を実質的に最小にするかそれとも読み出しブロックの
チェーン長を実質的に最大にするかを選択するステップ
と、前記ブロックレイアウト情報に応じて前記選択を実
施するステップとを含む。前記選択が読み出しブロック
数を実質的に最小にする方であった場合、前記書き込み
制御ステップは、1ストライプごとに、減算方法に基づ
いてパリティを計算するかそれとも再計算方法に基づい
てパリティを計算するかを判定し、選択されたその方法
をサポートする何らかの適当な読み出し処理を実施し、
パリティを計算するステップを含む。この判定は、いず
れの計算方法が最小の読み出し処理で済むかを検査する
ことによって行なわれる。一方、前記選択が読み出しブ
ロックのチェーン長を実質的に最大にする方であった場
合、前記書き込み制御ステップは、前記減算方法または
前記再計算方法をサポートするために読み出される記憶
ブロックの数を最小にしつつチェーン長を実質的に最大
にするため、いずれの記憶ブロックを読み出すべきかを
判断し、それらのブロックに対して読み出し処理を実施
し、パリティを計算するステップをさらに含む。
続形態情報をファイルシステム層に公開する。ファイル
システム層は接続形態情報のデータベースを保持する。
ファイルシステム層は、ディスク記憶ブロック番号およ
び記憶ブロックの割り当てに関する情報を用いて、書き
込み処理のためのブロックレイアウト情報を作成する。
ブロックにおける記憶ブロックへのデータの格納を管理
するための方法に関する。この方法は、ブロックレイア
ウト情報を生成するステップと、前記ブロックレイアウ
ト情報に応じて、ストライプ集合における利用可能な記
憶ブロックすべてを実質的に用いることで誤り訂正パラ
メタの計算コストを実質的に最小限にしつつ、書き込み
処理に用いられる記憶ブロックのグループを識別するこ
とで複数の記憶装置のうちの一記憶装置内のチェーン長
を実質的に最大にするように、書き込み処理の実行を制
御するステップとを含む。一実施形態では、この誤り訂
正パラメタにはパリティの計算値が含まれる。
複数の記憶装置を有するストレージシステムであって該
記憶装置の各々が複数の記憶ブロックを有するストレー
ジシステムにおいてデータの格納を管理するための方法
に関する。この方法は、複数のストライプにまたがる所
定の記憶ブロック、及び、各記憶装置内の所定の記憶ブ
ロックを含む記憶ブロックのグループにデータを書き込
むステップを含む。この書き込みは、複数のストライプ
についての誤り訂正パラメタの計算コストを実質的に最
小にしつつ、各記憶装置内の記憶ブロックのチェーン長
を実質的に最大にするような方法で行なわれる。一実施
形態では、チェーン長は、データの書き込みに関して最
大にされるとともに、パリティ計算をサポートするため
の読み出しに関して最大にされる。
複数の記憶ブロックを有する複数の記憶装置、及び、前
記複数の記憶装置と通信するストレージマネージャを有
するストレージシステムに関する。このストレージマネ
ージャは、複数のストライプにまたがる所定の記憶ブロ
ック、及び、各記憶装置内の所定の記憶ブロックを含む
複数の記憶ブロックからなるグループにデータを書き込
み、誤り訂正パラメタの計算コストを実質的に最小にし
つつ、記憶装置内の記憶ブロックのチェーン長を実質的
に最大にするようにして、データの格納を処理するもの
である。
データの格納を管理するためのシステムに関する。この
システムは、複数の記憶ブロックを有する複数の記憶装
置と、前記複数の記憶ブロックと通信するストレージマ
ネージャと、前記ストレージマネージャおよび前記複数
の記憶ブロックと通信するブロックレイアウト情報生成
器と、前記複数の記憶ブロックおよび前記ストレージマ
ネージャと通信する誤り訂正パラメタ計算器とを含む。
前記ストレージマネージャは、前記ブロックレイアウト
情報生成器からのブロックレイアウト情報に応じて、書
き込み処理に用いられる記憶ブロックのグループを識別
することによりその書き込み処理の実行を制御し、誤り
訂正パラメタ計算器によるそれらのストライプについて
の誤り訂正パラメタの計算コストを最小にしつつ、記憶
装置内のチェーン長が最大になるようにするものであ
る。
記憶ブロックへのデータの格納を管理するための方法に
関する。この方法は、ブロックレイアウト情報を生成す
るステップと、誤り訂正計算の第1の数を動的に判定す
るステップと、チェーン長に対応する第2の数を判定す
るステップと、前記ブロックレイアウト情報に応じて、
書き込み処理に用いられる記憶ブロックのグループを識
別することによってその書き込み処理の実行を制御し、
1ストライプにわたる誤り訂正パラメタの計算を第1の
数だけ実施しつつ、記憶装置内が第2の数のチェーン長
になるようにするステップとを含む。
態の中には、書き込み要求をバッチ処理することによっ
てそれらの利点を実現しているものもあり、バッチ要求
のデータを記憶するために複数のストライプに空間を割
り当て、データをそれらのストライプのチェーン全体に
書き込むものがある。このように、本発明の特徴は、各
ディスクドライブに対して垂直に書き込みを行ないたい
という要求と、パリティ判定の際の効率を求めるために
ストライプ全体に書き込みを行ないたいという要求との
バランスをとることである。
様、特徴及び利点は、下記の説明および特許請求の範囲
の記載から、さらに明らかになるであろう。
「データファイル」という用語は、本明細書では、アナ
ログ手段またはデジタル手段を介して記憶及び/又は転
送可能なデータの任意のエンティティを指すものと考え
る。エンティティは、アナログ形態で生成される場合も
デジタル形態で生成される場合もあり、様々な時点でア
ナログ形態やデジタル形態で格納される。エンティティ
は、電気的手段、電気磁気的手段、電気光学的手段、光
学的手段、及び、その他の手段に記憶する能力をもち、
2つの異なる物理的位置間で、特に電気、無線、及び光
学ベースの通信を介して、転送する能力を持つ。
従って構成されたデータ記憶システムの一実施形態に
は、複数のデータ記憶装置すなわちディスク90A、9
0A'、90''(まとめて90と呼ぶ)、及び、パリテ
ィ記憶装置すなわちディスク92Aが含まれる。各記憶
装置には、複数の記憶ブロックすなわち記憶位置が含ま
れる。この図では装置が記憶ディスクとして図示されて
いるが、固体ディスクなど、任意のランダムアクセス持
続性記憶装置を用いることができる。そのようなディス
クのグループの一実施形態が、RAIDアレイである。
のデータディスクにわたって一連のストライプ94A、
94A'、94''(まとめて94と呼ぶ)として書き込
まれ、それらのストライプに関するパリティ値がパリテ
ィディスク92A上に書き込まれる。さらに、本発明で
は、チェーン96Aと呼ばれる同一ディスク90上の一
連のブロックに対して、データの書き込みが可能であ
る。同一ディスク90に複数のデータブロックを書き込
むことによって、そのデータに関するアクセスタイムが
短くなる。
パリティ計算オーバヘッドの最適化を可能にする。記憶
装置アクセスの最適化は、書き込み処理に関するチェー
ン長を最大にすることによって行なうことができる。パ
リティ計算オーバヘッドの最適化は、書き込み処理の際
にパリティディスク92Aを更新するために読み出す必
要がある記憶ブロックの数を最小にすること、または、
パリティ計算に必要な読み出しのチェーン長を最大にす
ることによって、行なうことができる。
において、「チェーニング」とは、ディスクドライブ上
の連続したデータ、即ち、DBNが連続しているブロッ
クに対する単一I/Oのための読み出し/書き込みデー
タである。他の実施形態では、チェーニングは、介在記
憶ブロックがすでに割り当てられていたり、I/Oに利
用できなかったりする場合もある連続ではないが可能な
限り互いに近接している(「局所性」と呼ばれる)ブロ
ックに対する単一I/Oにおける読み出し/書き込みデ
ータである。
るブロック数を意味する。「チェーン長の最大化」は、
ディスク上で可能な限り長いチェーンを得るための処理
であり、チェーン長はそのディスク上の記憶ブロック数
までに限られ、例えば、チェーンの組み立てやI/Oの
実行の際の過度の待ち時間を避けるため、あるいは、I
/Oを実施するために必要なリソースの利用可能性に対
する制約から、もっと小さい妥当な数に制限される場合
もある。チェーン長の最大化は、各ディスクについて個
別に実施することもできるし、アレイ全体のすべてのデ
ィスクの結合について実施することもできる。
し、最大数の完全ストライプが書き込まれるようにする
ため、データ書き込み要求はファイルシステム層によっ
て収集、すなわちバッファリングされる。同一ファイル
のファイルシステムレイアウトブロックは、順番に(即
ち、ファイル内の順番と同じ順番で)、現在の書き込み
処理の後に処理される読み出し処理の際の先読み性能を
最適化する。
理するRAID層から受信したディスク90接続形態情
報を用いて、収集したデータ書き込み要求に関する書き
込み処理について、ストライプ94の記憶ブロックを選
択する。この接続形態情報には、ディスクドライブのサ
イズ、アレイ内のディスクドライブ数、その他の情報を
含めることができる。ファイルシステム層は、ブロック
レイアウト情報を生成する際にこの接続形態情報を利用
して、バッファリングした書き込み要求のデータブロッ
クを選択されたストライプにおける空き記憶ブロックに
関連付け、次いでそのストライプが書き込み処理を割り
当てる。
いるべき記憶ブロックを選択し、チェーン96Aの最大
長を提供する。これは、データブロックの「関連」集合
(すなわち、単一書き込み処理のために収集され、デー
タバッファに保持されたデータブロック)は、ディスク
の近接した記憶ブロックに書き込まれることが多いとい
うことを意味している。パリティ計算を最小限にするた
め、ファイルシステム層は、バッファリングした書き込
み要求のデータブロックを、選択されたストライプ内の
可能な限り多くの空きブロックに関連づけ、好ましくは
選択されたストライプ内のすべての空き記憶ブロックに
関連付ける。
ータブロック(あるいは、そのデータブロックに対する
メモリ参照)、及び、ブロックレイアウト情報がRAI
D層に転送される。このようにして、RAID層には、
全書き込み処理を処理できることが通知される。さら
に、パリティ計算のコストを最小限にするため、RAI
D層は、ブロックレイアウト情報に応じてその書き込み
処理を実行し、I/O処理を効率的にすることができ
る。
法など、適当なパリティ計算方法を選択し、選択したス
トライプの各々について、いわゆる「最小コストのパリ
ティ計算方法」を用いることができる。この選択は、各
ストライプにおけるデータ書き込み先の記憶ブロックの
数および位置、並びに、接続形態情報に応じて行なわれ
る。「減算方法」とは、書き込みを行なうデータブロッ
ク(例えばW1、W2)の前の内容、及びそのストライ
プについてのパリティデータ(P)を読み出し、そのス
トライプに書き込む新たなデータブロック(例えばW
1'、W2')をデータバッファから取得するような、ス
トライプのパリティ計算方法を意味している。次いで、
そのストライプに関する新たなパリティデータ(P')
を、次の式に従って計算する: P' = W1 XOR W2 XOR P XOR
W1' XOR W2' ただしXORは排他的論理和演算とする。
ブロックのうち、書き込みを行なうデータブロック以外
のデータブロック(例えばW3、W4)の内容を読み出
し、そのストライプに新たに書き込むデータブロック
(例えばW1'、W2')をデータバッファから取得する
ような、ストライプのパリティ計算方法を意味してい
る。次いで、そのストライプについての新たなパリティ
データ(P')を次の式: P' = W1' XOR W2' XOR W3 XO
R W4 に従って計算する。
のであり、最小コストのパリティ計算方法を例示するた
めに用いられる。図1bは、RAIDレベル4に従う例
として、4台のデータ記憶ディスクと1台のパリティデ
ィスクとで構成されたRAIDアレイを図示したもので
ある。この図では、頭に1から4まで数字を付したデー
タディスクとPで示されるパリティディスクとを用い
て、ディスクが列として図示されている。アレイと交差
するストライプは行として表現され、左側に1から6ま
で数字が付けられている。このように、4×6の格子は
24個のデータ記憶ブロックを表わしていて、各ストラ
イプは、そのストライプに関するパリティブロックを有
し、パリティブロックは対応するストライプ内のデータ
ブロックの内容から計算されたパリティデータを格納し
ている。便宜上、各々の記憶ブロックは、それがデータ
用であってもパリティ用であっても、Xをアレイ内のブ
ロックの行の番号とし、Yをアレイ内のブロックの列の
番号としたとき、XYによって一意に識別できるものと
する。
データ格納に割り当てられた記憶ブロックも図示されて
いる。図面において、割り当てられた記憶ブロックは
「W」で示し、パリティを格納しているブロックは
「P」で示し、保留中の処理に割り当てられたブロック
は「−」(ハイフン)で示している。従って、次のブロ
ック:11、21、31、32、33、41、51およ
び61が書き込まれていて、パリティブロックの各々に
はパリティデータPが格納されている。
方法を実施する場合、パリティ計算をサポートするため
に必要なデータ及びパリティをアレイから取得するた
め、多数の読み出し処理が必要である。この読み出し処
理は、多数の代替方法のうちのいずれを用いて実施する
こともできる。実施形態は、それらの方法のうちの1つ
または他の方法を用いるように設計することもできる
し、書き込み処理実行中にいずれの方法を使用するかの
選択を動的に実施することもできる。
合は常に同一記憶装置からの複数の読み出しをまとめて
チェーニングしつつ、パリティ計算を効率的にするため
に必要な読み出し処理の最小数を1ストライプごとに判
定することを伴う。この場合、アレイを検査して、各ス
トライプにおける書き込みを行なうべき記憶ブロックの
数を確認する。各ストライプにおいて、書き込みを行な
うべきブロック数が記憶ブロックの総数の半分を超える
場合は再計算方法を選択して使用し、その数が半分を超
えない場合は減算方法を選択する。ちょうど半分であっ
た場合、複数のパリティ計算方法のうちの1つまたはそ
の他を実施形態に選択することができる。図示の例で
は、行1および2については減算方法が選択され、行3
については再計算方法が選択され、行4〜6については
減算方法が選択される。
計算方法を実施する。図示の例では、記憶ブロックから
データ及びパリティを次のように読み出すことにより、
最小回数の読み出し処理を実現することができる: Read 11、21 Read 34 Read 41、51、61 Read 1P、2P Read 4P、5P、6P このように、この例の場合、新たに書き込むパリティを
計算するため、5つのチェーンで構成された12回の読
み出し処理を用いて、アレイからデータ及びパリティを
効率よく取得することができる。このような読み出し処
理を実施することによって、プロセッサ及びメモリリソ
ースの消費が最小限で済む。
数を最小限にし、減算方法でも再計算方法でもすべての
読み出しストライプにおけるパリティを計算できるよう
にしつつ、チェーン長を実質的に最大にするように、読
み出しを行なうべき記憶ブロックを識別する。選択され
たパリティ計算方法(すなわち減算または再計算)は、
1ストライプ当たりの読み出し回数とは無関係に、必要
な読み出し処理がアレイ全体中の最大チェーン長になる
ようにして、実施される。図示の例では、それらの読み
出し処理についての最大チェーン長は、次の読み出し処
理によって得られる: Read 11、21、31、41、51、61 Read 32 Read 33 Read 1P、2P、3P、4P、5P、6P このように、この例の場合、新たに書き込むパリティを
計算するため、最大平均チェーン長を有する4つのチェ
ーンで構成された14回の読み出し処理を用いて、アレ
イからデータ及びパリティを効率よく取得することがで
きる。このような読み出し処理を実施することによっ
て、ディスクアクセスのための総合的なオーバヘッドが
最小になる。
算の最小コストが得られる方法を選択して読み出し処理
を実施するため、それら2つの代替方法のうちの一方ま
たは両方を使用する。例えば、システムがメモリに制限
をもつ場合は第1の方法を選択することによってメモリ
の使用量が最小することができ、システムがディスクバ
ンド幅に制限をもつ場合は第2の方法を選択することに
よってバンド幅使用量を低減させることができる。この
ように、本発明は、システム構成にとっていずれが適し
ていると判定されたとしても、最小回数読み出しの方法
または最大チェーン長の方法のいずれかに従って読み出
し処理を実行するように実施することができる。
がCPUやメモリには制限のないシステムの場合、RA
ID層は、ファイスシステム層によって作成されたブロ
ックレイアウト情報を評価することにより、パリティ計
算に必要な読み出しについてのチェーン長を最大にする
ことが好ましい。それを行なうため、一実施形態では、
RAID層が異なるディスク上にあるブロックチェーン
の様々な組み合わせを識別し、各組み合わせについて平
均チェーン長を計算し、最大平均チェーン長の組み合わ
せに属するブロックを読み出し処理の際に読み出すブロ
ックとして指定する場合がある。このようにして、アレ
イ全体の全ディスクの組み合わせについて、チェーン長
の最大化が実施される。
数のストライプに対する同時書き込みをサポートしたフ
ァイルシステムを特徴とする。このファイルシステム
は、書き込み要求及び接続形態情報を受信する。このフ
ァイルシステムは、ディスク接続形態情報および書き込
み要求に応じてブロックレイアウト情報を作成し、RA
ID層によって処理される単一I/O書き込みトランザ
クションを作成する。
イプを前記書き込みI/Oトランザクションによって書
き込まれるデータに関連付ける。この複数のストライプ
には、記憶ブロックのマトリクスすなわち2次元アレイ
として定義することができる一群の記憶ブロックが含ま
れる。一実施形態において、このファイルシステムは、
複数の書き込み要求を1つの書き込みI/Oトランザク
ションにまとめる。他の実施形態において、本発明は、
RAID層が、ファイルシステムと協働して記憶ブロッ
クのアレイに対する書き込み処理を可能にするように構
成されたストレージマネージャを有していることをさら
に特徴とする。例えば、RAID層は、書き込みを行な
うデータと2以上のストライプに分散された一群の記憶
ブロックとの関係を指定するブロックレイアウト情報に
応じて、単一書き込みトランザクションを処理すること
ができる。
イルシステムに接続形態情報を公開することによって、
ファイルシステムが書き込みトランザクションのために
ブロックレイアウト情報を作成できるようにする。さら
に、好ましい実施形態におけるファイルシステムは、割
り当てられた記憶ブロックおよび未割り当ての記憶ブロ
ックに関する情報を受信及び/又は維持する。ファイル
システムは、この情報を検査し、それを用いてRAID
グループに書き込むためのブロック位置を最適化する。
ち、ディスクドライブ21を含むディスクドライブアレ
イ20に対する書き込み要求および読み出し要求を管理
するストレージシステム10の実施形態を示すものであ
る。ストレージシステム10には、ファイルシステム1
1、記憶要求バッファ12、ディスクアレイマネージャ
13、ストレージディスク接続形態情報14、及び、デ
ータブロックを一群の記憶ブロックに関連付けるブロッ
クレイアウト情報15が含まれる。アレイ20には、デ
ィスクドライブ21のうちの少なくとも1台がパリティ
を格納しているRAIDアレイを用いることができる。
トレージシステム10に送信する。書き込み要求41
は、格納すべきデータを識別するものであったり、ある
いは、格納すべきデータを含むものである。
ム11は、書き込み要求41などのクライアントI/O
要求を評価および管理する。一実施形態における書き込
み要求41は、ディスクアレイ20に対する単一書き込
み処理を実施する前に、要求バッファ12に格納され
る。
ルシステム11とアレイ20の中間に示されているよう
に、ディスクアレイ20に対するアクセス要求を管理す
る。また、ディスクアレイマネージャ13は、ファイル
システム11に対するディスクアレイ接続形態すなわち
ディスクアレイ構成の更新も行なう。ディスク接続形態
情報14には例えば、ディスクドライブ21のIDやド
ライブ21の記憶空間に関する情報(例えばディスクサ
イズなど)、あるいは、アレイ内のディスクドライブの
IDや順番に関する情報などが含まれる。
ック番号などの記憶ブロック識別子を含めることが好ま
しい。実施形態の中には、接続形態情報14に記憶ブロ
ックの仮想ブロック番号(VBN)を含めて、ディスク
アレイマネージャ13がVBNからディスクブロック番
号(DBN)へのマッピングを管理するものがある。デ
ィスクドライブの各々は、複数の同時マッピングをサポ
ートできることが好ましいが、ディスクドライブの記憶
空間すべてをマッピングする必要はない。
ザクションによって記憶装置に書き込むのに十分なだけ
のデータブロックが収集されるまでバッファリングされ
る。好ましい実施形態では、書き込み要求41は、単一
書き込みトランザクションを行なうため、ファイルシス
テム11によって決められているような1以上の基準が
満たされるまでバッファリングされる。例えば、書き込
み要求41は、最適な書き込みトランザクションが実行
できるようになるまでバッファリングされたり、システ
ムタイマーがその書き込みトランザクションを実行すべ
きことを示すまでバッファリングされる場合がある。
は、単一書き込み処理を行なうため、ディスク接続形態
情報14を用いて、バッファリングされたデータブロッ
クをディスク記憶ブロックに関連付けるブロックレイア
ウト情報15を構成する。ブロックレイアウト情報15
は、バッファリングされた書き込み要求41の各データ
ブロックを、記憶ブロックグループにおける記憶ブロッ
クに関連付ける。グループには各ディスクドライブ21
の2以上の記憶ブロックを含めることができ、チェーン
を最大にするため、最適には、少なくとも複数のディス
クドライブ21の2以上の記憶ブロックが含められる。
ブロックレイアウト情報は、ディスクアレイマネージャ
13に転送される。ディスクアレイマネージャ13は、
ブロックレイアウト情報15を含む書き込みトランザク
ション要求を受信し、その単一書き込みトランザクショ
ンに関する1以上のストライプを識別する。これに対し
て従来のシステムは一般に、単一のストライプ書き込み
トランザクションをRAID層に送信している。このよ
うに、本発明の特徴は、完全な書き込みトランザクショ
ンをRAID層に転送することが可能であるということ
である。
11及びディスクアレイマネージャ13は、ソフトウェ
アでもファームウェアでも実施することができ、例えば
ソフトウェアアプリケーション、コンピュータオペレー
ティグシステムの一部、あるいは、入出力制御装置とし
ても実施することができる。これらは、ストレージシス
テム10の単一の構成要素内で実施することもできる
し、個別の構成要素内で実施することもできる。
ージシステム10Aの実施形態を示している。ストレー
ジシステム10Aには、ネットワークアダプタ310、
メモリ331を有するプロセッサ330、メモリ32
0、及び、ストレージアダプタ340が含まれる。プロ
セッサは、ファイルシステム11を実現するオペレーテ
ィングシステム及び/又はアプリケーションをサポート
することができる。
アプリケーションプログラム、及び、その他データを格
納することができる。プロセッサ330及びアダプタ3
10、340には、処理要素及び/又は論理回路が含ま
れる。例えば、このプロセッサは、コンピュータマイク
ロプロセッサ集積回路である場合がある。電子記憶技術
分野の当業者であれば、本発明の特徴を実現するための
他のハードウェア手段、ファームウェア手段、及び、ソ
フトウェア手段も考えつくであろう。
ークを介してストレージシステム10Aをクライアント
31に接続するための構成要素を有する。このネットワ
ークは、直接接続を提供するものである場合も、共有通
信路を提供するものである場合もある。クライアント3
1及びストレージシステム10Aは、クライアント/サ
ーバ通信モデルを実施することができる。パケットの交
換によって、クライアント31はストレージサービスを
要求することができ、ストレージシステムはクライアン
ト31に応答することができる。これらのパケットは、
例えばインターネットプロトコルやネットワークファイ
ルシステムプロトコルを用いてカプセル化することがで
きる。
ュータシステムが含まれ、例えば、パーソナルコンピュ
ータ、ワークステーション、サーバ、メインフレームコ
ンピュータ、あるいは、その他コンピュータ装置が含ま
れる。あるいは、クライアント331は、PDAや携帯
電話など、可搬式コンピュータ装置であってもよい。ま
た、クライアント31は、サーバベースのコンピューテ
ィングモデルに従って動作する任意の端末(windo
ws(R)ベースまたは非windows(R)ベースの)や
シン・クライアント装置であってもよい。
イブ21は、インターネットなどのワイドエリアネット
ワーク(WAN)を介してストレージシステム10と通
信することができる。ストレージシステム10は、ファ
イルサーバ(ファイラーとも呼ばれる)として実施さ
れ、クライアント31サイトに存在する場合もあるし、
ローカルエリアネットワーク(LAN)などのサイトネ
ットワークを介してクライアント31にネットワーク接
続される場合もある。また、サーバは、サイト外に存在
させ、クライアント31及び/又はディスク装置21か
ら取り除くこともできる。
レイ20に対するインタフェースを提供するものであ
る。あるいは、アダプタは、他の種類の記憶媒体を含む
記憶装置に対するインタフェースである場合もある。記
憶媒体には、例えば、光ディスク、磁気テープ、バブル
メモリ、及び、トランジスタベースのランダムアクセス
メモリなどが含まれる。
330上で実行されているストレージオペレーティング
システム及び/又はアプリケーションソフトウェアと協
働して、クライアント31からのデータ要求を処理す
る。ストレージアダプタ340は、例えば、高性能ファ
イバーチャネルシリアルリンク接続形態によって、アレ
イ220とのインタフェースをとる。ディスクドライブ
21に対するデータ書き込みやデータ読み出しは、プロ
セッサ330及び/又はアダプタ340によって処理さ
れる。その後、読み出されたデータは、ネットワークア
ダプタを介してクライアント31に転送される。
リュームとして実施することができ、ボリュームの各々
はディスク記憶空間の論理配置を定義する記憶ディスク
を含む。各ボリュームは、それ独自のファイルシステム
に関連付けられている。ボリューム内のディスクドライ
ブは通常、1以上のグループのRAIDディスクとして
編成される。ボリューム内のディスクドライブは、ディ
スクドライブの集まりである2以上のミラー、すなわち
「プレックス」に編成することができる。プレックス
は、ミラーデータを他のプレックス(単数の場合も複数
の場合もある)に格納することにより、データの信頼性
を向上させるものである。ミラー構成については、図1
1を参照してさらに説明する。
10のファイルシステム11によって実現されるような
記憶装置アレイに対するデータの格納を制御するための
方法の一実施形態を示すフロー図である。処理の後、例
えばバッファリングした要求を除去することにより、要
求バッファ12を初期化する(ステップ71)。クライ
アント31から書き込み要求41を受信し(ステップ7
2)、それを要求バッファ12にバッファリングする
(ステップ73)。例えばミラー再同期のため、ストレ
ージシステム内で他の書き込み要求を生成することもで
きる。書き込み要求41には、格納すべきデータ、及び
/又は、格納すべきデータに対する参照が含まれる。参
照には、例えば、ポインタや、複数レベルの間接参照が
含まれる。データには、ディスクドライブ21の記憶ブ
ロックに対応するサイズの複数のデータブロックが含ま
れる。このデータには、ブロックの一部だけしか埋めら
れていないデータも含まれる場合がある。
求バッファ12にバッファリングされ、バッファ参照に
よって参照される(ステップ74)。この十分な量のデ
ータというのは、1以上の基準に従って判定される。一
実施形態において、この基準は、書き込みトランザクシ
ョンに十分なサイズである場合がある。例えば、書き込
み要求41は、書き込みトランザクションがファイルシ
ステム11によって処理することができる最適な長さに
なるまでバッファリングされる場合がある。他の基準と
しては、利用可能な書き込みバッファの枯渇などがあ
る。
ァを論理的にグループ分けする。バッファのグループ分
けは、例えば、ファイルシステム層により所定の基準に
基づいて実施される。基準には、例えば、書き込みトラ
ンザクションのためにバッファリングしている(書き込
みすべき)データブロックの数やサイズが効率的なディ
スクアクセスを行なうために十分な程度の短い待ち時間
及び/又はチェーン長を維持するように選択された所定
のしきい値に達することや、利用可能な書き込みバッフ
ァの数が所定の低いしきい値に達することなどが含まれ
る。
ループに作用し、そのチェーン読み出し及びチェーン書
き込みをそれらのグループに基づいて行なう場合、実質
的に最適なチェーン長が保証される。このように、ファ
イルシステム層とRAID層は、従来技術の方法のよう
に各々のタスクを別々に実施するのではなく、書き込み
要求の最適な実行を促進するように協調動作する。
トライプ書き込みを個別にRAID層へ送信し、RAI
D層(この目的ではディスクドライバも含まれると考え
る)は複数のストライプ書き込みについて読み出し及び
書き込みのチェーン長がより長くなる関連付け方法を判
定する際に、独自の発見方法を使用していた。このよう
な方法では一般に、最適チェーン長が短くなってしま
い、得られる結果も確定的でなくなる。
ブアレイ20の一群の記憶ブロックにおいてデータブロ
ックを未割り当ての記憶ブロックに関連付けるためのブ
ロックレイアウト情報15を生成する(ステップ7
5)。このブロックレイアウト情報15は、例えば、一
群の記憶ブロックにおけるデータブロックと空き記憶ブ
ロックとの関係などにすることができる。
情報は、(a)データブロックの書き込み先にあたるデ
ィスクのDBN及びIDを用いてそれらの記憶ブロック
を指定するとともに、(b)その書き込みに必要な最小
オフセットストライプ及び最大オフセットストライプを
指定する。
実施形態は、次の重要な目的を実現するように試みるも
のでなければならない、即ち:(1)ディスク上の連続
した空きブロックを選択して1ファイル内の連続したブ
ロックにレイアウトすること(これは、後続の読み出し
I/Oトランザクションにおけるファイルの先読み能力
を向上させることを意図している)、(2)満杯のスト
ライプを書き出して、RAID層がパリティを効率よく
計算および更新できるようにすること、(3)書き込み
に関する長いチェーン長をRAID層に与えること、及
び、(4)すべての空きブロックを使いきり、ファイル
システム空間が完全に利用されるようにすることであ
る。
同一ディスク内の複数ブロックへの割り当てを意味して
いる一方、満杯のストライプの書き出しはRAIDグル
ープにまたがる割り当てを意味しているので、目的
(1)と目的(2)は、互いに対立するものであるとい
うことに注意すべきである。これら2つの要件のバラン
スをとるために、ファイルシステム層は、特定ディスク
に割り当てられるファイルのブロック数を所定数に制限
し、そのしきい値に達した場合、それ以上の書き込みに
ついては別のディスクを選択する場合がある。また、特
定空きブロックの割り当てによって最適チェーン長でな
くなる可能性があるので、目的(3)と目的(4)も対
立する場合がある。従って設計者は、それらの目的が対
立した場合、それらの実現を妥協してそれらの目的に優
先順位をつけた実施形態を作成することができる。
的実施形態について説明する。この実施形態では、ファ
イルシステム層における書き込み割り当てが一度に1フ
ァイルづつ実施され、各ファイルについて、そのファイ
ルに「属する」バッファがそのファイル内のブロック番
号(「FBN」)の順番で割り当てられる。ステップは
次のようになる: (1)書き込み割り当てに対して次のファイルを選択す
るステップ。 (2)特定ベースオフセットに対する最小の空きDBN
を有するディスクであって、その領域にもっと空き空間
を割り当てることが選択されているディスクを選択する
ステップ。そのような相対的空き具合の判定は、いくつ
かの代替手段によって行なうことも可能である。この実
施形態の場合、ファイルシステム層がディスクの各領域
について空きブロックのカウントを保持している。この
一連のカウントをサーチすることにより、比較的空いて
いる領域を見付けることができる。 (3)現在のファイルの次のバッファを、選択されたデ
ィスクの2番目に空きが少ないDBNに割り当てるステ
ップ。 (4)ブロックレイアウト「全体」が書き込み割り当て
されているか否かをチェックするステップ。ブロックレ
イアウト「全体」は、ストライプの所定範囲にある全て
の空きブロックの割り当てとして定義される。すでに割
り当てられている場合、ブロックレイアウト情報をRA
ID層に渡す。 (5)現在のファイルについてバッファがなくなるま
で、または、FBNが所定の境界に達するまで、ステッ
プ(3)及び(4)を繰り返し、そうでなければステッ
プ(6)へ進むステップ。 (6)現在のファイルがまだバッファを有している場合
はステップ(2)へ進み、そうでない場合、書き込み割
り当てすべきファイルがまだあればステップ(1)へ進
むステップ。それ以上ファイルが無い場合、アルゴリズ
ムは終了する。
大書き込みチェーン長を可能にしているだけでなく、利
用可能な空間を埋める処理に優先順位も設けている点に
も注意してほしい。代替実施形態は、これと逆のことを
行って、チェーン長を最大にするための選択を与える場
合もある。しかしながら、この実施形態でも良好なチェ
ーン長が得られる理由は、書き込み割り当て器がより空
き空間の多いRAIDグループの領域を優先的に選択す
るからである。従って、上記アルゴリズムに従って、あ
るブロックが大量の空き空間を有するディスク領域の書
き込み割り当てに選択された場合、後続の近隣ブロック
がそのファイルの後続ブロックに書き込み割り当てされ
るように選択される。
報15を生成した後、本方法は、レイアウト情報15に
従って例えば複数のストライプに対してチェーン書き込
みすることにより、バッファリングしたデータブロック
の記憶ブロックに対する書き込みを実行する(ステップ
76)。具体的には、この方法は、少なくともいくつか
のデータブロックを一台のディスクドライブに書き込む
一方で、他の関連データブロックを他のディスクドライ
ブに書き込み、好ましくは同じストライプ内に書き込
む。従って、同一ドライブ上の複数の記憶ブロックに書
き込むこと、及び、ストライプ内に複数の記憶ブロック
に書き込むことの利点を実現することができる。ブロッ
クレイアウト情報15に従ってデータブロックを一群の
記憶ブロックに格納するため、データブロックがディス
クドライブアレイ20に送信される(ステップ76)。
従って、RAID層は、書き込みについて最適チェーン
長を有する完全な書き込みトランザクションI/O要求
を受信する。
IDアレイ内の連続したストライプを含む記憶ブロック
の2次元グループに対するバッファリングしたデータの
書き込みを処理することができる。また、チェーン読み
出しを最適化することにより、パリティ計算オーバヘッ
ドを低減させることもできる。さらに、好ましい実施形
態では、RAID層は、ブロックレイアウト情報15を
用いてパリティ計算方法を選択することで、パリティ計
算に必要な読み出しに関するチェーン長を最大にするこ
とができる。
実施が図示されている。分かりやすくするため、パリテ
ィドライブは図示されていないか、あるいは、影で図示
されている。図5は、ディスクドライブのRAID4ア
レイ20Aの一実施形態を示すものである。当業者であ
れば、本発明の特徴が他のRAID構成を用いたストレ
ージシステムで実施することもできることは、明らかで
あろう。アレイ20Aには、データブロックを格納する
ための4台のディスクドライブ(1から4までラベルを
付加)、及び、パリティデータ用の5番目のドライブ
(影で図示)が含まれる。これらのディスクドライブ中
の記憶ブロックは、記憶ブロック番号で識別される。現
在割り当てられている記憶ブロックは、「×」で図示さ
れている。残りの空き記憶ブロックは、データブロック
の格納に利用することができる。
びブロック割り当て情報に応じて、バッファリングされ
た書き込み要求に対応する数のデータブロック数を格納
するため、アレイ20Aにおいて未割り当ての記憶ブロ
ックが選択される。好ましくは、これらの未割り当ての
ブロックは、アレイ20Aの最適数のストライプにおけ
る空きブロックを満たすように選択される。
き込まれる先のストライプには、一群の記憶ブロックが
含まれ、この例の場合、記憶ブロックの2次元アレイが
含まれる。1次元の場合、列次元がディスクドライブ番
号に対応する。他方の次元、すなわち行次元は、記憶ブ
ロック番号に対応する。
他の実施形態を示すものであり、この実施形態は、全1
6個の記憶ブロックの4つのストライプを含み、ファイ
ルシステム11についての単一書き込みトランザクショ
ンを処理する。グループ120は、14個の空き記憶ブ
ロックを有する。
ァリングされた書き込み要求41は、ブロックレイアウ
ト情報によってグループ120に関連付けられた14個
のデータブロックを提供する。これらのデータブロック
およびその関連は、ディスクアレイマネージャ13に送
信されて処理され、各データブロックがグループ120
内のそれに関連する記憶ブロックに格納されるようにな
っている。
み要求41に関連するデータブロックの格納に関する書
き込みトランザクションの特定の例について、図7及び
図8を参照して説明する。図7は、バッファリングされ
た4つの書き込み要求50を示している。書き込み要求
Aには、データブロックA1〜A6が含まれる。書き込
み要求Bには、データブロックB1〜B4が含まれる。
書き込み要求Cには、データブロックC1及びC2が含
まれる。書き込み要求Dには、データブロックD1〜D
7が含まれる。バッファリングされた4つの要求50
は、例えば、一群の記憶ブロックに格納するための19
個のデータブロックを提供する。
ものであり、この例では、図7のデータブロックとディ
スクドライブアレイ20における記憶ブロックグループ
との関係を示している。このグループの中には、アレイ
20の6つのストライプが含まれ、19個の空きブロッ
クとバッファリングされた要求41の19個のデータブ
ロックとの間に1対1の関係を提供している。次いで、
ストレージシステム10は1つの書き込みを複数のスト
ライプに誘導し、グループ内の空きブロックを埋めてゆ
く。関連付け15Aの代替実施形態では、一群の記憶ブ
ロックにおける空き記憶ブロックのすべてがバッファリ
ングされたデータブロックに関連付けられるのではない
場合もある。
クへの最終的なデータ転送は、ディスクアレイマネージ
ャ13、例えばRAID層によって実施される際に、各
ドライブ上の書き込みが行なわれる複数の記憶ブロック
を用いて、各ディスクドライブに対して同時書き込みで
進めることができる。従って、1つの書き込み処理に
は、複数ストライプへのデータの同時格納が含まれる場
合もある。
た書き込み要求を解釈して実行するように構成される。
これに対して、従来技術のRAIDシステムは一度に1
ストライプしか処理しないのが一般的であり、典型的な
従来技術のRAIDインタフェースはデータブロックを
アレイ内の記憶ブロックの行・列に関連付ける書き込み
コマンドを解釈することができない。
イマネージャ13は、書き込みに関するチェーン長を最
大にするように試みる。従来のシステムとは違い、RA
ID層は、ストライプの全集合に関するブロックレイア
ウト情報15を含む書き込みトランザクション要求を受
信する。ディスクアレイマネージャ13は、さらなる書
き込み要求を待つ必要なく、ディスク21に対する書き
込みを最適なチェーン長にする準備を試みる。
書き込みトランザクションを受信するのに応じて、その
書き込みトランザクションを検査することができる。R
AID層は、書き込みを行なうストライプについて、パ
リティ計算方法、例えば、減算ベースの方法や再計算ベ
ースの方法を選択する。この選択は、例えば、読み出し
処理についての連続した記憶ブロックの実現を最適化す
るように、読み出しや書き込みの高度の局所性を維持す
るように(即ち、ディスクのデータにアクセスする際の
ヘッドシークタイムを減らすように)、あるいは、プロ
セッサやメモリのリソース使用量を最小限にするように
行なわれる。上記のようにブロックレイアウト情報15
が作成されるので、クライアント31のアクセス要求に
対応するデータブロックの書き込みについて、チェーン
長を最適化することができる。さらに、RAID層は、
ブロックレイアウト情報を検査して読み出しについて1
以上の最大チェーン長を選択することにより、パリティ
関連目的で実施される読み出しを最適化することもでき
る。
判定のため、選択されたパリティ計算方法と、ファイル
システム11から受信したブロックレイアウト情報15
とを用いる。さらに、例えばI/Oリソースやバッファ
リソースなどを含むリソースの割り当てを最適化するこ
ともできる。
込みトランザクションに優先順位レベルを関連付けるこ
とができる。ディスクアレイマネージャ13は、書き込
みトランザクションの実行のスケジューリングの判断に
この優先順位レベルを利用することができる。例えば、
この優先順位は、クライアント31によって選択される
場合もあるし、内部システム管理プロセスに与えられる
場合もある。
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の数が異なる理由
は、未割り当ての記憶ブロックの数が異なるからであ
る。
B、120Cの各々は、現在空きブロック数が最も少な
いストライプ(即ち、ストライプ1、5及び9)で始ま
る。各記憶ブロックグループ内におけるすべての未割り
当ての記憶ブロックは書き込み処理に用いられ、その書
き込み処理のため、各記憶ブロックグループには各ディ
スクの連続した未割り当ての記憶ブロックのチェーンが
含まれる。従って、未割り当ての記憶ブロックはすべて
書き込み要求が処理されるときに埋められることにな
る。従って、記憶空間が効率的に使用され、関連データ
ブロックを一台または限られた数のディスクドライブに
対して書き込みまたは読み出しすることができ、パリテ
ィ計算オーバヘッドを最小にすることができる。
についての最小番号のストライプは、あらゆる空きブロ
ックのうちの、最も小さい値、すなわちブロック番号
(図5の実施形態ではブロック番号1、図9の実施形態
ではブロック番号1、5及び9)の空きブロックを有す
るストライプとして選択される。さらに、好ましい実施
形態では、記憶ブロックグループの各ストライプにおけ
るすべての未割り当ての記憶ブロックが格納に用いられ
る。上記のように、この最小ブロック番号は、最小空き
ブロックオフセット値に対応する場合がある。
であれば、本発明のその特徴がグループの原点を別な位
置に定義して実施することも可能であることは、明らか
であろう。例えば、書き込み処理を行なうための記憶ブ
ロックグループは、記憶ブロックに何も割り当てられて
いない一連の連続したストライプの中から選択すること
もできる。さらに、本発明の特徴は、記憶ブロックグル
ープ内のすべての未割り当ての記憶ブロックにデータブ
ロックを格納することなく、実施することも可能であ
る。また、記憶ブロックグループを完全に埋めるのに十
分なだけのデータブロックが利用できない状況、すなわ
ち部分的なデータブロックだけを格納しなければならな
い状況も起こり得る。
Dグループが含まれる場合もある。好ましい実施形態に
おいて、これらのRAIDグループは、個別すなわち別
々に機能する。各書き込み処理、すなわち、バッファリ
ングされた要求の記憶ブロックグループへの各書き込み
は、単一RAIDグループ内で実施される。従って、R
AIDグループを分離することにより、同時書き込み処
理を別のRAIDグループとして扱うことができる。
ロック、及び、現在の最小空きブロックを有することが
好ましい。各RAIDグループについての最小空きブロ
ックオフセットは、各RAIDグループについて、最小
空きブロックとベースブロックとの差分ブロック数とし
て定義することができる。RAIDグループ内の次の書
き込み位置は、この最小空きブロックによって判定さ
れ、あるいは、記憶空間の効率的使用を達成するように
判定される場合もある。
Dグループを選択するため、各RAIDグループについ
て、ベースブロックに対する最小空きブロックのオフセ
ットを判定することができる。次の書き込み処理につい
て、現在最小のオフセットを有しているRAIDグルー
プが選択される。各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が含まれる。
オブジェクト205をルートノードとした階層ツリーで
構成される。ファイルシステム11は、ディスクアレイ
マネージャ13を介してボリュームオブジェクト205
と対話する。「オブジェクト」という用語は、オブジェ
クト指向ソフトウェアのオブジェクトを指す場合もある
し、あるいはもっと一般的に、機能的振る舞いの定義を
容易にするため、物理装置(即ちディスク)の論理的組
み合わせを表す抽象エンティティを指す場合もある。
表している。RAIDグループオブジェクト220a、
220b、220c、220dは、データを2台のディ
スク(例えば225a及び225b)に分割し、第3の
パリティディスク(例えば225c)を有するRAID
レベル4の実施形態を表している。ミラーオブジェクト
210はRAIDレベル1の実施形態を表している。し
かしながら、本発明の技術は、この実施形態に限られる
のではなく、他のRAIDレベルや混成RAIDレベル
も同様に一連のオブジェクトで表すことができる。ま
た、プレックスオブジェクト215同士の対称性も必須
ではない。図示の実施形態は2つのプレックスを有して
いるが、当業者には明らかなように、本発明は、任意数
のプレックスを用いて実施することも可能である。
イ内のディスクドライブに配置された実際の記憶空間の
論理表現である。一実施形態において、ブロックサイズ
は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の集合である。
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範囲になる。
称であっても、VBN230a及び230bの各々にお
いて同一ブロック番号にしなければならない。例えば、
VBN範囲230aのVBN0〜10に書き込まれるデ
ータは、VBN範囲230bのVBN0〜10に書き込
まなければならない。他の実施形態では、一方のプレッ
クスが他方のプレックスよりも大きい場合がある。ミラ
ーオブジェクト210のVBN範囲の大きさは、そのミ
ラーリングされたVBN範囲にミラーリングされていな
いVBNを加えた大きさである。
との関連付けは、RAIDマップと呼ばれることがあ
る。ディスクアレイマネージャ13は、一連のオブジェ
クト200のRAIDマップを含むディスク構成情報を
ファイルシステム11に送信する。従って、ファイルシ
ステム11は、ディスクアレイ接続形態を知ることがで
き、データをそのVBNに割り当てることにより、ディ
スク書き込み及び/又はディスク読み出しを最適化する
ことができる。
態情報14を用いてブロックレイアウト情報15を作成
することができる。ファイルシステム11は、書き込み
トランザクションを、ブロックレイアウト情報15及び
格納用データを含むオブジェクトに成形し、そのオブジ
ェクトをボリューム205に渡す。
存在を知っている必要がない。ボリューム205のミラ
ーオブジェクト210またはミラーレイヤは、ファイル
システム11から受信したアクセス要求をどのように管
理するかを判定する。ミラー書き込みは、各プレックス
215a、215bの中で実施される。効率を高めるた
め、パリティ判定はプレックス215a、215bのう
ちの一方でしか実施されない場合があり、その結果が他
方のプレックス215a、215bと共用され、両プレ
ックスが同じRAIDグループレイアウトを有するよう
にし、パリティ計算も同様に行い、両プレックスのデー
タが同じになるようにする場合がある。あるいは、パリ
ティ判定は両方のプレックスの各々について実施される
場合もある。
ス要求、すなわちバッファリングしたデータブロックを
ボリューム205のVBN範囲26〜29に書き込むた
めの書き込みオブジェクトを成形することができる。次
に、ミラー210は、そのミラーの両側について1つ、
すなわち、各プレックス215a、215bについて1
つ、ミラー書き込みオブジェクトを作成することができ
る。プレックス215a、215bの一方でパリティ判
定をサポートするためにVBN範囲26〜29の記憶ブ
ロックの読み出しが実行され、他方のプレックス215
a、215bは、記憶ブロックに書き込みを行なうだけ
でよい。ミラー210は、一台のディスクドライブで実
施することもできるし、複数台のディスクドライブにわ
たって実施することもできる。
間にはマスター/スレーブの関係があり、マスターの方
がパリティ判定を担当する。このような実施形態によれ
ば、ミラーの両側にあるVBN範囲が好ましく一致す
る。
がファイルシステム11から受信した書き込みトランザ
クションを処理するための方法の他の実施形態を示すフ
ロー図であり、この実施形態ではディスクアレイマネー
ジャ13がRAID層に存在する。この方法は、図11
のストレージアレイと通信するRAID層によって実施
することができる。図11の目的のため、このストレー
ジアレイは非ミラー構成で説明する。この方法には、次
のようなステップが含まれる。
書き込みについて最大チェーン長を有することが好まし
いブロックレイアウト情報15を、ファイルシステム1
1によって生成する。
よびその書き込みオブジェクトに割り当てられたリソー
スに関する情報を保持するための書き込みオブジェクト
状態モニタのインスタンスを作成し、そのRAIDグル
ープがオンラインでありその書き込みトランザクション
のサービスに利用可能であることを確認する。書き込み
オブジェクトの一実施形態は、Srinivasan Viswanathan
他によって本件と同日に出願された「Method and Appar
atus for Decomposing I/O Tasks in a RAID System」
と題する同譲受人の同時係続特許出願に記載されている
ようなarray_writeI/Oタスクであり、その開示はこ
こで参照することによって本明細書に取り込まれる。
15に対応するストライプの範囲についてストライプロ
ックを得る。「ストライプロック」とは、例えばRAI
D層によって行なわれるロック要求に応じて、データ格
納の前にアクセスをその記憶ブロックグループに制限す
るため、リソースマネージャによってロックを与えるこ
とを指す。ロックが与えられる場合、そのロックは、強
制的なものである場合もあるし、勧告的なものである場
合もあり、他の書き込みトランザクションによるそれら
の記憶ブロックに対する同時アクセスができないように
するものである。ロックがすぐに与えられない場合(例
えば、同じ記憶ブロックのうちの少なくともいくつかに
対して別の書き込みトランザクションが進行中である場
合など)、その書き込みトランザクションはロックが与
えられるまで保留される。
イプについてパリティ計算方法を判定し、その計算をサ
ポートするために必要なブロックすべてを識別する。ス
トレージアレイがミラー構成である場合、本方法は、前
記ステップを実施する前に、パリティの計算を担当する
RAIDアレイのIDを判定するステップを実施し、そ
のアレイによってこのパリティ計算判定ステップを実施
する場合がある。ミラー構成におけるこの担当アレイ
は、下記のステップ504〜508も実施する。
するために必要な読み出しにバッファを割り当てる(書
き込みを行なうデータを保持するデータバッファは、フ
ァイルシステムによってすでに割り当てられている)。
計算をサポートする読み出しを実施する。
ライプパリティデータの計算を担当するスレッドまたは
他の処理エンティティに発行する。
報を含めてパリティデータの不揮発性記憶装置へのログ
記録を開始し、パリティデータが失われた場合やパリテ
ィデータの不一致が生じた場合に、復旧できるようにす
る。
発性記憶装置のミラーリングが行なわれている場合、ス
テップ507のログ記録が完了するたびに、前記パリテ
ィログデータの複製を不揮発性記憶装置のミラーに作成
する。
15およびそのパリティデータに対応するストライプの
範囲に対して、好ましくはチェーン書き込みによるディ
スク書き込みを開始する。ストレージアレイがミラー構
成であった場合、担当アレイは、ディスク書き込みを開
始するこのステップの前に、ミラーデータの複製の代わ
りにステップ509へ進むことができることをスレーブ
アレイに示す。次いでRAIDアレイの各々は、各RA
IDアレイのこのステップに関連するデータブロックに
ディスク書き込みを開始する。
完了したあと、ストライプに関するパリティログデータ
を除去する(このようなデータが使用される場合、不揮
発性記憶装置ミラーにある)。ストレージアレイがミラ
ー構成である場合、両アレイに対するデータ書き込み
は、このステップを実施する前に無事に完了していなけ
ればならない。
し、その書き込みトランザクションに割り当てられたす
べてのバッファおよびその他リソースを開放する。
システム11から受信した書き込みトランザクションを
処理するための方法の代替実施形態の中には、上記方法
に類似しているがステップの集合が異なるものや、ステ
ップの順序が異なるものも存在する。
ステムの中には、write-anywhereファイルシステムの修
正として実施されるものもある。本発明の特徴に応じて
修正を施すのに適したファイルシステムの1つは「WA
FL」ファイルシステムであり、同譲受人の米国特許第
6038570号に記載されているように、このファイ
ルシステムはストレージオペレーティングシステムの一
部になっている。
えばネットワーク取り付けされたストレージ環境、スト
レージエリアネットワーク、及び/又は、クライアント
またはホストコンピュータに直接取り付けられたディス
クアセンブリにおいて、サーバは記憶装置と対話する。
で有利に使用されるストレージオペレーティングシステ
ム800を示す略ブロック図である。ストレージオペレ
ーティングシステム800は、ネットワークドライバ
(例えば、イーサネット(R)ドライバ)のメディアアク
セス層810を含む、一連のソフトウェア層から構成さ
れる。オペレーティングシステム800は、インターネ
ットプロトコル(IP)層812などのネットワークプ
ロトコル層、並びに、それがサポートする搬送手段であ
るトランスポート・コントロール・プロトコル(TC
P)層814及びユーザ・データグラム・プロトコル
(UDP)層816をさらに含む。
0は、マルチプロトコルデータアクセスを可能にするフ
ァイルシステムプロトコル層を含み、共通インターネッ
トファイルシステム(CIFS)プロトコル818、ネ
ットワークファイルシステム(NFS)プロトコル82
0及びハイパーテキスト・トランスファー・プロトコル
(HTTP)822についてのサポート構成要素を含
む。またファイルシステムプロトコル層には、例えばダ
イレクトアクセスファイルシステム(DAFS)プロト
コルについてのサポートも含まれる場合がある。
0には、RAIDプロトコルなどのディスクストレージ
プロトコルを実施するディスクストレージ層824(即
ちRAID層)、及び、スモールコンピュータ・システ
ム・インタフェース(SCSI)プロトコルなどのディ
スクアクセスプロトコルを実施するディスクドライバ層
826がさらに含まれる。ディスクストレージ(RAI
D)層824は、例えば、何らかの実施形態のディスク
アレイマネージャ13によって実施することができる。
・ファイルシステムプロトコル層との橋渡しをするの
は、ファイルシステム11の何らかの実施形態によって
実施されるファイルシステム層880である。ファイル
システム11のディスク上の表現は、例えば4キロバイ
ト(kB)ブロックを用いて、ブロックベースになって
いる。実施形態の中には可変ブロックサイズのものも含
まれるが、一般的には固定ブロックサイズの方がストレ
ージシステムの柔軟性が高くなる。
読み出し要求は、コンピュータネットワークを介して例
えば従来のCIFSプロトコルまたはNFSプロトコル
のパケットとしてストレーシステム10に転送され、ネ
ットワークアダプタ310で受信される。メディアアク
セス層810のネットワークドライバは、そのパケット
を処理し、ファイルシステム層880へ転送する前に、
そのパケットをネットワークプロトコル層812、81
4、816並びにCIFS層818またはNFS層82
0に渡してさらに処理を行なう。
タがメモリ、例えばメモリ310になかった場合、その
データをディスク21からロード(取得)するための処
理を行なう。その情報がメモリになかった場合、ファイ
ルシステム層880はVBNを取得する。次いでファイ
ルシステム層880は、そのVBNをディスクストレー
ジ(RAID)層824に渡し、ディスクストレージ
(RAID)層824がその論理番号をディスクブロッ
ク番号にマッピングし、そのディスクブロック番号をデ
ィスクドライバ層826の適当なドライバ(例えばSC
SI)に送信する。ディスクドライバはディスク21の
そのディスクブロック番号にアクセスして、要求された
データブロック(単数または複数)をメモリ320、3
31に読み出し、ストレージシステム10によってそれ
を処理する。要求が完了すると、ストレージシステム1
0は、ネットワークを介してクライアント31に返答を
返す。
イアント要求についてデータストレージアクセスを実施
する必要がある上記ストレージオペレーティングシステ
ムを通るソフトウェア「パス」はハードウェアで実施す
ることも可能であることに注意して欲しい。従って、本
発明の代替実施形態では、ストレージアクセス要求デー
タパスは、例えば、フィールド・プログラマブル・ゲー
トアレイ(FPGA)や特定用途向け集積回路(ASI
C)の内部に実現された論理回路として実施することも
できる。この種のハードウェア実施形態は、クライアン
ト31によって発行されたファイルシステム要求パケッ
トに応答してストレージシステム10により提供される
ファイルサービスの能力を向上させる。
パケット処理及びストレージアクセス処理の各々につい
て、プロセッサからその負荷の一部またはすべてを低減
するようにアダプタ310、340の処理要素を構成す
ることによって、ストレージシステム10の性能を向上
させる場合がある。本明細書に記載される様々な処理、
アーキテクチャ及び手順は、ハードウェアでもファーム
ウェアでもソフトウェアでも実施できるものとして、広
い意味で考えることができる。
ジオペレーティングシステム」という用語は通常、スト
レージシステム上で動作し、データアクセスを管理する
とともに、ファイルサーバの場合ファイルシステムセマ
ンティックを実施する場合もあるコンピュータ実行可能
なコードを意味している。しかしながら、本発明はファ
イルサーバに限定されるものと考えてはならない。スト
レージオペレーティングシステムはマイクロカーネルと
して実施することができ、ファイルシステム11セマン
ティックを実施し、データアクセスを管理するためのフ
ァイルシステム層880を含む。また、ストレージオペ
レーティングシステムは、UNIX(R)やwindow
s(R)などの汎用オペレーティングシステム上で動作す
るアプリケーションプログラムとして実施することもで
きるし、本明細書に記載するようなストレージアプリケ
ーションについて構成された設定可能な機能を有する汎
用オペレーティングシステムとして実施することもでき
る。
された本発明の技術は、スタンドアロンのコンピュータ
やストレージシステムとして実現されたコンピュータの
一部を含めて、任意のタイプの専用コンピュータ(例え
ばサーバ)や汎用コンピュータに適用できることが分か
るであろう。ファイルシステム層およびRAID層(ま
たはその構成要素)は、同じコンピュータシステム上で
実施することもできるし、互いに通信する別のコンピュ
ータ上で実施することもできる。レイアウト情報生成器
及び、ストレージデバイスマネージャ(またはその構成
要素)にも同じことが言える。ストレージオペレーティ
ングシステムは、単一のコンピュータシステムまたは装
置上で実行することもできるし、複数のコンピュータシ
ステムまたは装置上に分散させることもできる。さらに
本発明の教示は、限定しないが、ネットワーク取り付け
されたストレージ環境、ストレージエリアネットワー
ク、及び、クライアントまたはホストコンピュータに直
接取り付けられたディスクアセンブリなどを含む様々な
ストレージシステムアーキテクチャに適用することがで
きる。そのため、「ストレージシステム」という用語
は、こうした構成を含むように広い意味で解釈しなけれ
ばならない。
た本発明の思想及び範囲から外れることなく、本明細書
に記載した実施形態の変形、修正及びその他の実施形態
を作成するであろう。従って、本発明は、例示した実施
形態によって規定されるのではなく、特許請求の範囲に
記載された発明の思想と範囲によって規定される。
システムの一実施形態を示すブロック図である。
アレイの一実施形態を示すブロック図である。
信するストレージシステムの一実施形態を示すブロック
図である。
の一実施形態を示すブロック図である。
ような記憶装置アレイへのデータの格納を制御するため
の方法の一実施形態を示すフロー図である。
態を示すブロック図である。
を含む記憶ブロックグループの一実施形態を示すブロッ
ク図である。
実施形態を示すブロック図である。
イにおける記憶ブロックグループとの関係の一実施形態
を示すブロック図である。
タブロックを含むディスクドライブアレイの一実施形態
を示すブロック図である。
形態の論理的グループ分けの一実施形態を示すブロック
図である。
き込みを処理するための方法の一実施形態を示すフロー
図である。
ージオペレーティングシステムの一実施形態を示すブロ
ック図である。
Claims (14)
- 【請求項1】複数の記憶装置におけるデータの格納を管
理するための方法であって、該記憶装置の各々が複数の
記憶ブロックからなり、前記データが複数の前記記憶装
置にわたってストライプ状に編成されているものにおい
て、 ブロックレイアウト情報を生成するステップと、 前記ブロックレイアウト情報に応じて、前記複数の記憶
ブロックのうちのI/O処理で使用するための記憶ブロ
ックを識別することによって、誤り訂正パラメタの計算
コストを実質的に最小にしつつ、誤り訂正パラメタを計
算するための読み出しのチェーン長及びストライプにわ
たるデータ書き込み処理の書き込みのチェーン長を最大
にするように前記I/O処理の実行を制御するステップ
と、 からなる方法。 - 【請求項2】前記誤り訂正パラメタの計算がパリティの
計算を含む、請求項1の方法。 - 【請求項3】前記パリティの計算は、減算方法およびパ
リティ再計算方法からなるグループの中から一方のパリ
ティ計算処理を選択することを含む、請求項2の方法。 - 【請求項4】前記I/O処理で使用する記憶ブロックを
識別することは、記憶装置上の連続した物理レイアウト
のブロック数を実質的に最大にすることによって、前記
チェーン長を実質的に最大にする、請求項1の方法。 - 【請求項5】前記I/O処理で使用するための記憶ブロ
ックに関連する連続VBNを有するブロック数を実質的
に最大にすることにより、前記チェーン長を実質的に最
大にするようにして、前記I/O処理で使用するための
記憶ブロックを識別するステップをさらに含む、請求項
1の方法。 - 【請求項6】記憶装置のブロックの局部性を実質的に最
大にすることにより、前記チェーン長を実質的に最大に
するようにして、I/O処理で使用するための記憶ブロ
ックを識別するステップをさらに含む、請求項1の方
法。 - 【請求項7】前記制御するステップは、 書き込み処理の前にデータ書き込み先のブロックを検査
するステップと、 読み出しブロック数の最大化を含む第1の方法とパリテ
ィ計算のために読み出されるブロックのチェーン長の最
大化を含む第2の方法とを含む複数のパリティ計算方法
のうちの1つを選択するステップと、 を含む、請求項1の方法。 - 【請求項8】前記記憶ブロックの識別は、少なくとも部
分的に利用可能なリソースに基づいて実施される、請求
項1の方法。 - 【請求項9】複数の記憶装置を有し該記憶装置の各々が
複数の記憶ブロックからなるストレージシステム用のコ
ンピュータ読み取り可能な媒体であって、 前記記憶ブロックに関するブロックレイアウト情報を取
得するステップと、 複数のストライプにわたって所定の記憶ブロックにデー
タを書き込むとともに、各記憶装置内の所定の記憶ブロ
ックにデータを書き込み、複数のストライプの各ストラ
イプにわたる誤り訂正パラメタの計算コストを実質的に
最小にしつつ、各記憶装置内の記憶ブロックのチェーン
長を実質的に最大にするステップと、 を実施するコンピュータ読み取り可能な媒体。 - 【請求項10】前記誤り訂正パラメタの計算がパリティ
の計算を含む、請求項9のコンピュータ読み取り可能な
媒体。 - 【請求項11】前記パリティの計算が減算方法およびパ
リティ再計算方法からなるグループの中からパリティ計
算処理を選択することを含む、請求項10のコンピュー
タ読み取り可能な媒体。 - 【請求項12】I/O処理に使用するための記憶ブロッ
クに関連する連続したVBNを有するブロック数を実質
的に最大にすることにより、前記チェーン長を実質的に
最大にするようにして、前記I/O処理に使用するため
の記憶ブロックを識別するステップをさらに含む、請求
項9のコンピュータ読み取り可能な媒体。 - 【請求項13】記憶装置のブロックの局所性を実質的に
最大にすることにより、前記チェーン長を最大にするよ
うにして、I/O処理で使用するための記憶ブロックを
識別するステップをさらに含む、請求項9のコンピュー
タ読み取り可能な媒体。 - 【請求項14】複数の記憶装置の各々が複数の記憶ブロ
ックを有する、複数の記憶装置と、 前記複数の記憶装置の各々と通信し、データを複数のス
トライプにわたって所定の記憶ブロックに書き込むとと
もに、データを各記憶装置内の所定の記憶ブロックに書
き込み、複数のストライプの各ストライプにわたる誤り
訂正パラメタの計算を実質的に最小にしつつ、記憶装置
内の記憶ブロックのチェーン長を最大にする、ストレー
ジマネージャと、 からなるストレージシステム。
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)
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)
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)
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)
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 |
-
2002
- 2002-03-21 US US10/105,034 patent/US7200715B2/en not_active Expired - Lifetime
-
2003
- 2003-03-21 EP EP03251802A patent/EP1347369B1/en not_active Expired - Lifetime
- 2003-03-24 JP JP2003080010A patent/JP2003296038A/ja active Pending
-
2004
- 2004-04-02 US US10/817,212 patent/US7979633B2/en active Active
-
2007
- 2007-02-22 US US11/709,697 patent/US7930475B1/en not_active Expired - Fee Related
-
2009
- 2009-12-24 JP JP2009292012A patent/JP5249188B2/ja not_active Expired - Lifetime
Patent Citations (10)
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)
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 |