JP2012507786A - 性能改善のためのraidボリュームとドライブ・グループとの間の疎結合 - Google Patents

性能改善のためのraidボリュームとドライブ・グループとの間の疎結合 Download PDF

Info

Publication number
JP2012507786A
JP2012507786A JP2011534483A JP2011534483A JP2012507786A JP 2012507786 A JP2012507786 A JP 2012507786A JP 2011534483 A JP2011534483 A JP 2011534483A JP 2011534483 A JP2011534483 A JP 2011534483A JP 2012507786 A JP2012507786 A JP 2012507786A
Authority
JP
Japan
Prior art keywords
volume
drive
drives
pieces
piece
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2011534483A
Other languages
English (en)
Other versions
JP5722225B2 (ja
Inventor
ジェス,マーチン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
LSI Corp
Original Assignee
LSI Logic Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by LSI Logic Corp filed Critical LSI Logic Corp
Publication of JP2012507786A publication Critical patent/JP2012507786A/ja
Application granted granted Critical
Publication of JP5722225B2 publication Critical patent/JP5722225B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • 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/0662Virtualisation aspects
    • G06F3/0664Virtualisation aspects at device level, e.g. emulation of a storage device or system
    • 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
    • G06F11/1092Rebuilding, e.g. when physically replacing a failing disk
    • 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/0611Improving I/O performance in relation to response time
    • 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/0629Configuration or reconfiguration of storage systems
    • G06F3/0631Configuration or reconfiguration of storage systems by allocating resources to storage 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/0629Configuration or reconfiguration of storage systems
    • G06F3/0632Configuration or reconfiguration of storage systems by initialisation or re-initialisation of storage 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/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2206/00Indexing scheme related to dedicated interfaces for computers
    • G06F2206/10Indexing scheme related to storage interfaces for computers, indexing schema related to group G06F3/06
    • G06F2206/1012Load balancing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2211/00Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
    • G06F2211/10Indexing scheme relating to G06F11/10
    • G06F2211/1002Indexing scheme relating to G06F11/1076
    • G06F2211/1057Parity-multiple bits-RAID6, i.e. RAID 6 implementations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2211/00Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
    • G06F2211/10Indexing scheme relating to G06F11/10
    • G06F2211/1002Indexing scheme relating to G06F11/1076
    • G06F2211/1059Parity-single bit-RAID5, i.e. RAID 5 implementations

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)
  • Debugging And Monitoring (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)

Abstract

本開示は、RAID(redundant array of inexpensive discs)にまたがってボリューム・ピースを割り振るシステムおよび方法を説明する。RAID(redundant array of inexpensive discs)にまたがってボリューム・ピースを割り振る方法およびシステムは、(a)第1論理ボリュームの1つまたは複数のボリューム・ピースをドライブ・グループ内のドライブの第1セットに関連付けることと、(b)第2論理ボリュームの1つまたは複数のボリューム・ピースをドライブ・グループ内のドライブの第2セットに関連付けることとを含むことができ、ドライブ・グループ内のドライブの第1セットは、ドライブ・グループ内のドライブの第2セットのメンバではない少なくとも1つのドライブを含む。

Description

本発明は、RAIDおよびRAIDにまたがってボリューム・ピースを割り振る方法に関する。
ドライブ・グループは、ボリューム・データを格納するのに使用される関連するドライブの集まりとすることができる。ドライブ・グループに、RAIDレベルを割り当てることができ、RAIDレベルは、データ編成および冗長性モデルを定義する。RAIDボリュームは、データI/Oのターゲットにされる、ホストがアクセス可能な論理ユニットとすることができる。1つのドライブ・グループが、複数のボリュームを含むことができる。ドライブ・グループ内のすべてのボリュームは、物理ドライブの同一のセットを使用し、同一のRAIDレベルで機能する。
ドライブ・グループのドライブが、異なる容量を含む場合がある。ボリューム・グループの使用可能容量は、ストレージ・アレイ構成データに予約された領域を除く、グループ内の最小のドライブに基づくRAIDファクタ容量(RAID factor capacity)とすることができる。ドライブ・グループの空き容量は、使用可能容量からすべての定義されたボリュームの容量を引いたものとすることができる。空きドライブ・グループ容量は、追加ボリュームの作成または既存ボリュームの容量の拡大に使用することができる。
RAIDボリュームは、ドライブ・グループ内の各ドライブ上で1つの領域を占めることができる。RAIDボリュームの領域は、すべてが、ドライブの先頭からの論理ブロック・アドレス(LBA)単位の同一のオフセットおよびLBA単位の同一の長さを有することができる。所与のボリュームの一部とすることができる各そのような領域を、ピース(piece)と呼ぶ場合がある。あるボリュームのピースの集まりを、ボリューム・エクステントと呼ぶ場合がある。ドライブ・グループは、それぞれが同一のオフセットおよび長さを有するドライブ上の未使用容量の領域からなる1つまたは複数の空きエクステントを有することもできる。
ドライブ・グループ内の物理ドライブの個数を、ドライブ・グループ幅と呼ぶ場合がある。幅は、ドライブ・グループ内のRAIDボリュームの性能とアクセシビリティとの両方に影響する。ドライブ・グループの幅が広ければ広いほど、より多くの物理スピンドルを並列に使用できるようになり、これは、ある種のホストI/Oプロファイルに関する性能を高める。しかし、ドライブ・グループの幅が広ければ広いほど、その物理ドライブのうちの1つが故障する危険性が高くなる可能性がある。
セグメント・サイズは、ドライブ・グループの次のドライブにデータを書き込む前にコントローラが単一のドライブに書き込むデータの量とすることができる。ストライプは、ドライブ・グループの各ドライブ上に1つの、すべてがそのドライブの先頭からの同一オフセットを有する、セグメントの集まりとすることができる。その結果、1つのボリュームを、ストライプの集まりとみなすこともできる。
図1および2に、n+1個のドライブからなるドライブ・グループを示す。ボリュームBは、n+1個のピース、B−0、B−1…B−nからなるものとすることができる。各ピースは、複数のセグメントを含む。たとえば、ピースB−0は、Seg−B0、Seg−B0…Seg−B0を含むことができる。ストライプは、ドライブにまたがり、たとえば、セグメントSeg−B0、Seg−B1…SegBnが、ストライプBを形成する。ボリュームBは、k+1個のストライプからなるものとすることができる。
そのようなRAIDレイアウトは、ドライブ・グループ内のどのドライブ上のどの物理ドライブLBAが特定のRAIDボリューム仮想LBAに対応するのかを判定することが単純な計算になり得るという意味で、アルゴリズム的とすることができる。RAIDボリュームは、ドライブ・グループの幅がRAIDボリュームの幅を定義するので、ドライブ・グループに密に結合されると言うこともできる。
ドライブ・グループ内の物理ドライブが、完全に故障し、したがって、そのドライブ上のデータがもはやアクセス可能ではなくなる場合がある。ドライブ・グループが、冗長性を有するRAIDレベルを含む(すなわち非RAID 0ドライブ・グループ)場合には、ホストがまだそのデータにアクセスできるのに十分なデータが、残りのドライブに残されている可能性がある。しかし、RAID 6および一部の固有のRAID 1/10の事例を除いて、ドライブ・グループは、故障したドライブが交換され、データが再構築されるまでは、もはや冗長性を含まない可能性がある。
RAID 1/10について、再構築は、すべてのデータをミラー・ドライブから交換ドライブにコピーすることからなるものとすることができる。RAID 5について、この再構築は、ドライブ・グループ内の生き残っているドライブから各ストライプを読み取ること(すなわち、ドライブ・グループ幅−1個のセグメント)、パリティを使用して欠けているセグメントを計算すること、および回復されたセグメントを交換ドライブに書き込むことからなるものとすることができる。
二重冗長性情報に起因して、欠けているセグメントをドライブ・グループ幅−2個のセグメントから計算できることを除いて、RAID 6 P+Qドライブ・グループでの単一ドライブ故障について、同一の手法に従うことができる。
故障したドライブが交換され、再構築が完了するまでは、第2のドライブ故障は、ドライブ・グループが複数のドライブ故障を許容するように構成(たとえば、RAID 6)されない限り、ドライブ・グループ内のデータの完全な消失をもたらす。
ストレージ・アレイは、ストレージ・アレイ内の未使用物理ドライブのプールをホット・スペアとして取り分けることができる。物理ドライブが、冗長RAIDレベル(すなわち、非RAID 0)を有するドライブ・グループ内で故障する時には、ストレージ・アレイは、ホット・スペア・ドライブのプールから交換ドライブを自動的に割り振り、ホット・スペア・ドライブ上で失われたデータの再構築を実行することができる。
故障したドライブが交換された後に、ホット・スペア・ドライブの内容を、単純に交換ドライブにコピーすることができ、これは、コピーバックと呼ばれるプロセスである。コピーバックが完了した時に、ホット・スペアをホット・スペア・プールに戻すことができる。
再構築を受けつつあるドライブに向けられたすべての書込は、そのプロセスの性能ボトルネックを生じる。その結果、影響を受けるドライブ・グループ内のすべてのRAIDボリュームに関するドライブ再構築中に、顕著な性能劣化がある可能性がある。
さらに、物理ドライブ・サイズが増加し続けるので、単一のドライブの再構築時間は、劇的に増える。SATAドライブは、現在、1TBを超える容量を有する場合があり、そのデータのすべてが、再構築され、単一のホット・スペア/交換ドライブに書き込まれなければならない。これは、ホストが、影響を受けるドライブ・グループ内のRAIDボリュームについて経験する性能劣化を長くし、ドライブ・グループが冗長性を有しない可能性がある時間(たとえば、RAID 5ドライブ・グループについて)をも長くする。
本開示は、RAID(redundant array of inexpensive discs)にまたがってボリューム・ピースを割り振るシステムおよび方法を説明する。
RAID(redundant array of inexpensive discs)にまたがってボリューム・ピースを割り振る方法は、(a)第1論理ボリュームの1つまたは複数のボリューム・ピースをドライブ・グループ内のドライブの第1セットに関連付けることと、(b)第2論理ボリュームの1つまたは複数のボリューム・ピースをドライブ・グループ内のドライブの第2セットに関連付けることとを含むことができ、ドライブ・グループ内のドライブの第1セットは、ドライブ・グループ内のドライブの第2セットのメンバではない少なくとも1つのドライブを含む。
RAID(redundant array of inexpensive discs)にまたがってボリューム・ピースを割り振るシステムは、(a)第1論理ボリュームの1つまたは複数のボリューム・ピースをドライブ・グループ内のドライブの第1セットに関連付ける手段と、(b)第2論理ボリュームの1つまたは複数のボリューム・ピースをドライブ・グループ内のドライブの第2セットに関連付ける手段とを含むことができ、ドライブ・グループ内のドライブの第1セットは、ドライブ・グループ内のドライブの第2セットのメンバではない少なくとも1つのドライブを含む。
前述の全般的な説明と後続の詳細な説明との両方が、例示的かつ説明的であるのみであって、必ずしも特許請求の範囲について制限的ではない可能性があることを理解されたい。本明細書に組み込まれ、その一部を構成することができる添付図面は、例を示し、この全般的な説明と一緒に、本開示の原理を説明するように働く。
本開示の多数の利益は、添付図面を参照することによって当業者によってよりよく理解され得る。
RAIDを示す高水準システム図である。 RAIDを示す高水準システム図である。 RAIDへのボリューム・ピースの割振りを示す高水準システム図である。 RAIDを示す高水準システム図である。 RAIDを示す高水準システム図である。 RAIDを示す高水準システム図である。 高水準動作流れ図である。 高水準動作流れ図である。 高水準動作流れ図である。 高水準動作流れ図である。 高水準動作流れ図である。 高水準動作流れ図である。 高水準動作流れ図である。 高水準動作流れ図である。 高水準動作流れ図である。
次の詳細な説明では、その一部を形成する添付図面を参照する場合がある。図面では、文脈がそうではないと規定しない限り、同様の記号が、通常は同様のコンポーネントを識別する。詳細な説明、図面、および特許請求の範囲で説明される例示的実施形態は、限定的であることを意図されていない場合がある。本明細書で提示される主題の趣旨または範囲から逸脱せずに、他の実施形態を利用することができ、他の変更を行うことができる。
図3を参照すると、コンピューティング・デバイス301、RAIDコントローラ302、およびRAID 303を含むマス・ストレージ・システム300の例示的表現が示されている。RAIDコントローラ302は、ボリューム管理回路網/ソフトウェアを含むことができ、これによって、RAIDコントローラ302は、RAID 303上で構成されたさまざまな論理ボリュームにアクセスするコンピューティング・デバイス301の読取要求/書込要求を処理することができる。RAID 303は、n個のドライブを有するドライブ・グループを含むことができる。
RAID 303のRAIDボリューム・ピースを、前に説明した1:1結合ではなく、ドライブ・グループに疎結合することができる。これを、下の例で例示することができる。
図4を参照すると、3つのRAIDボリューム(たとえば、ボリュームA、B、およびC)を、6つのドライブのドライブ・グループ上に配置することができる。各RAIDボリュームは、3つのボリューム・ピース(たとえば、それぞれボリューム・ピースA−0、A−1、およびA−2、ボリューム・ピースB−0、B−1、およびB−2、ならびにボリューム・ピースC−0、C−1、およびC−2)を含むことができる。
各RAIDボリュームは、関連するRAIDボリューム幅を有することができる。RAIDボリューム幅は、ドライブ・グループ内のドライブの個数に関わりなく、RAIDボリューム内のピースの個数として定義することができる。
幅(RAIDボリューム)≦幅(ドライブ・グループ)
である場合がある。
たとえば、図3に示されているように、RAID 303は、6のドライブ・グループ幅(たとえば、ドライブ0から6まで)および3のボリューム幅を有することができる。
RAID 303は、アルゴリズム的レイアウトとすることができる。伝統的なドライブ・グループ関連付けのほかに、RAIDボリュームを、そのRAIDボリュームがその上でピースを含むことのできる各物理ドライブに関連付けることができる。たとえば、図3に示されているように、RAIDボリュームAを、ドライブ0、ドライブ1、およびドライブ2に関連付けることができ、ボリュームBを、ドライブ2、ドライブ3、およびドライブ4に関連付けることができる。
各ピースを、そのそれぞれの物理ドライブの先頭からのそれ自体のオフセットに関連付けることもできる。RAIDボリューム内のさまざまな異なるピースは、RAIDボリューム・サイズの増分で、それに関連する物理ドライブの先頭からの異なるオフセットを有することができる。たとえば、図3に示されているように、1Mbなどの所与のボリューム・ピース・サイズを有するボリューム・ピースB−0、ボリューム・ピースB−1、およびボリューム・ピースB−2は、それぞれドライブ3、4、および2内で0、0、および1Mbのオフセットを有することができる。
さらに、同一ドライブ・グループ内のさまざまなボリュームは、異なるピース・サイズを有することができる。たとえば、ボリュームAは、サイズが1Mbのボリューム・ピースを含むことができ、ボリュームBは、サイズが2Mbのボリューム・ピースを含むことができる。したがって、ボリューム・ピースC−1は、1Mbのオフセットを有することができ、ボリューム・ピースC−2は、2Mbのオフセットを有することができる。
このオフセット情報から、特定のRAIDボリューム仮想LBAに対応する特定の物理ドライブ上の物理LBAを計算することができる。
そのようなピース分配は、ユーザが、ドライブ・グループ幅以下の可変幅のRAIDボリュームをサポートできる所与のRAIDレベルを有するより幅広いドライブ・グループを定義することを可能にすることができる。RAIDボリューム幅とドライブ・グループ幅との間の差が大きければ大きいほど、ドライブ・グループにわたるRAIDボリューム・ピースの分配をよりよいものにすることができる。
RAIDボリュームが作成される時に、各物理ドライブがドライブ・グループ内の任意の他のドライブとは異なるピースの組合せを含むことができるように、ピースを分配することができる。より形式的には、あるドライブ上の各ピースを、そのRAIDボリューム内の残りのピースを含むドライブのセットとすることができるその再構築セット(RS)に関連付けることができる。ドライブ内のピースのすべての再構築セットが互いに素である場合には、対象のドライブ内の各ピースを、そのドライブ上の他のピースとは独立に再構築することができる(すなわち、ドライブ再構築を並列に行うことができる)。
ドライブ・グループ内の各ドライブ上のすべてのピースが、互いに素の再構築セットを有する場合には、そのドライブ・グループは再構築に関して完全に互いに素であると言うことができる。これは、どのドライブが故障するかに関わりなく、そのピースのすべてを、ドライブの互いに素のセットから再構築できることを意味する。
もう一度図4を参照すると、ピースの理想的な分配が提示されている。そのような分配では、物理ドライブは、ドライブ・グループ内のすべての他のドライブと同一のピースの組合せを含まないものとすることができる。そのような構成でドライブが故障する場合には、ピースを再構築するために読み取られるドライブの個数は、RAIDボリューム幅よりはるかに多い。たとえば、ドライブ2が故障する場合に、ドライブ0およびドライブ1は、ピースA−2を再構築するためのピース(すなわち、ピースA−0およびA−1)を含むことができ、ドライブ3およびドライブ4は、ピースB−2を再構築するためのピース(すなわち、ピースB−0およびB−1)を含むことができる。したがって、ストレージ・アレイは、再構築を実行している間に2つではなく4つのドライブから読み取ることができる。
そのような構成は、ドライブ2上で維持されるピースA−2およびB−2のそれぞれの再構築セット(RS)によって定義することができる。
RS(A−2)={ドライブ0,ドライブ1}
RS(B−2)={ドライブ3,ドライブ4}
さらなる実施形態では、前に提示した専用のホット・スペア手法の使用を変更することができる。たとえば、あるドライブ・グループ内のドライブが故障する時に、そのピースを、単一の専用ホット・スペアではなくそのドライブ・グループ内の残りのドライブにまたがって再分配することができる。これは、複数のボリュームからのピースが同一のホット・スペア上で再構築される必要がある専用のホット・スペアに関連するボトルネックを回避するように働くことができる。本発明を用いると、可能なときに、ピースを別々のドライブ上で再構築することができる。さらに、そのような再分配は、同一のRAIDボリュームからの2つのピースが同一の物理ドライブ上に行き着かないことを保証する。
ドライブ・グループは、そのドライブ・グループ内の任意のドライブが故障し、それでも、そのドライブ・グループ内のいずれかのドライブに故障したドライブのピースを保持するのに十分な空きエクステントがあるものとすることができるのに十分な空き容量がそのドライブ・グループにあるものとすることができるときに、1のホット・スペア・カバレージを有すると言うことができる。言い換えると、最大の使用済み容量を有するドライブが故障する場合に、システムは、それでもドライブ・グループ内の残りのドライブ上でそのピースを再構築することができる(すなわち、そのドライブ上のすべてのピースを保持するのに十分な空きエクステントが、ドライブ・グループ内のドライブにある)。さらに、ドライブ・グループ内の最大のピースを保持するのに十分に大きい空きエクステント(そのピースがある可能性があるドライブには関わりなく)が、維持されなければならない。
ドライブ・グループは、そのドライブ・グループ内のn個のドライブが故障し、それでも、故障したドライブ内のすべてのピースをそのドライブ・グループ内の空きエクステント内で再構築できるのに十分な容量がそのドライブ・グループにあるときに、nのホット・スペア・カバレージを有すると言うことができる。これが、必ずしも、データ消失なしでn個のドライブが同時に故障し得ることを意味しないことに留意されたい。たとえば、RAID 5ドライブ・グループが、2のホット・スペア・カバレージを含むが、2つの最も負荷の重いドライブが、同一RAIDボリュームからのピースを含み、両方のドライブが故障する場合には、そのRAIDボリュームは、そのドライブ・グループがどれほどの空き容量を有するかに関わりなく、もはやアクセス可能ではなくなる可能性がある。
ユーザは、ドライブ・グループの所望のホット・スペア・カバレージ、すなわち1、2…nを定義することができる。あるボリュームを作成できるときに、ストレージ・アレイは、構成されたホット・スペア・カバレージを維持できるという制約を伴ってではあるが、分配ができる限り理想に近くなることができるように、ピースを分配することができる。RAIDボリュームの作成が、ホット・スペア・カバレージを減らす場合には、ユーザに警告し、RAIDボリューム作成を進めることに付随する結果を明示的に確認するように要求することができる。
さらに、再構築がRAIDボリュームに課す性能劣化は、再構築を実行することからの負荷を伝統的な手法よりも多数のドライブにまたがって分散させることができ、その結果、再構築を並列の形で実行できるようになるので、かなり減らされる。
ドライブ再構築は、そのすべてのピースの再構築がドライブ・グループ内の別々のドライブで発生し得る場合に、並列であると言うことができる。ドライブ再構築は、それを並列にすることができ、ピースがその上で再構築されるドライブのどれもがそのドライブのピースの再構築セットに含まれるドライブとオーバーラップしない場合に、完全に並列と言うことができる。これは、ドライブが故障する場合に、各ピースを、読取と書込との両方に関してドライブ上の他のすべてのピースと独立に再構築できることを意味する。
たとえば、図5を参照すると、完全に並列の分配の例が提示されている。ドライブ2の故障の場合には、ピースA−2を、すべての他の進行中のピース再構築に参加しないドライブ5上でピースA−0およびA−2(それぞれドライブ0およびドライブ1に常駐する)から再構築することができる。同様に、ピースB−2を、ドライブ6上でピースB−0およびB−1(それぞれドライブ3および4に常駐する)から再構築することができる。そのような構成では、所与のドライブは、読取動作または書込動作のいずれかだけの対象になる。
図6を参照すると、部分的に並列の分配の例が提示されている。ドライブ2の故障の場合には、ピースA−2を、すべての他の進行中のピース再構築に参加しないドライブ5上で、ピースA−0およびA−1(それぞれドライブ0およびドライブ1に常駐する)から再構築することができる。同様に、ピースB−2を、ドライブ1上でピースB−0およびB−1(それぞれドライブ3およびドライブ4に常駐する)から再構築することができる。しかし、ドライブ1は、ピースA−2を再構築するために読み取られつつもあり、したがって、この分配での再構築は、部分的に並列であるに過ぎない。
RAIDボリューム幅とドライブ・グループ幅との間の差が大きければ大きいほど、完全に並列のドライブ再構築を可能にする構成がある可能性がより高くなる。余分のドライブをドライブ・グループに追加して、容量および幅を増やすことができ、したがって、再構築をできる限り速く発生させることができる。
あるドライブがドライブ・グループに追加される時には、必ず、ストレージ・アレイは、ユーザ定義のホット・スぺア・カバレージを維持しながら完全に並列の特性を示すピースの理想的分配により近くなるために、既存ドライブからピースを選択し、それらを新しいドライブに移動することができる。
そのレイアウトがオリジナルの密結合されたRAIDレイアウトに戻って劣化するようにRAIDボリュームを定義することが可能である場合があることに留意されたい。たとえば、RAID 5ドライブ・グループが、3つの未使用の1TBドライブを含むことができ、ユーザが、幅3および容量=3×1TB−3×構成データ用に予約される容量のRAIDボリュームを定義する場合である。この場合には、ストレージ・アレイは、1つのボリューム・ピースを各1TBドライブに割り振ることができ、すべての再構築は、伝統的なレイアウトと正確に同様に発生する。その結果、発明的特徴を十分に利用するために、ユーザは、各ピースが他のボリュームからの他のピースとドライブを共有するのに十分に小さくなることができるようになる幅を有するボリュームを定義しなければならない。
図7に、RAIDにまたがってボリューム・ピースを割り振ることに関連する例の動作を表す動作フロー700を示す。図7および動作フローのさまざまな例を含む後続の図では、議論および説明が、図3〜6の上で説明した例に関しておよび/または他の例および文脈に関して提供される場合がある。しかし、動作フローを、複数の他の環境および文脈で、ならびに/または図3〜6の変更された版で実行できることを理解されたい。また、さまざまな動作フローが、図示のシーケンス(1つまたは複数)で提示されるが、さまざまな動作を、図示された順序とは異なる順序で実行することができ、あるいは、同時に実行できることを理解されたい。
開始動作の後に、動作710は、第1論理ボリュームの1つまたは複数のボリューム・ピースをドライブ・グループ内のドライブの第1セットに関連付けることを示す。たとえば、図3〜6に示されているように、RAIDコントローラ302は、RAID 303に、1つまたは複数のボリューム・ピース(たとえば、ボリューム・ピースA−0、A−1、およびA−2)をドライブの第1セット(たとえば、それぞれドライブ0、ドライブ1、およびドライブ2)に関連付けさせることができる。
動作720は、第2論理ボリュームの1つまたは複数のボリューム・ピースをドライブ・グループ内のドライブの第2セットに関連付けることを示す。たとえば、図3〜6に示されているように、RAIDコントローラ302は、RAID 303に、1つまたは複数のボリューム・ピース(たとえば、ボリューム・ピースB−0、B−1、およびB−2)をドライブの第2セット(たとえば、それぞれドライブ3、ドライブ4、およびドライブ2)に関連付けさせることができる。
ドライブの第1セット(たとえば、ボリュームBに関連するドライブ0、ドライブ1、およびドライブ2)は、ドライブ・グループ内のドライブの第2セット(たとえば、ボリュームBに関連するドライブ3、ドライブ4、およびドライブ2)のメンバではない少なくとも1つのドライブ(たとえば、ドライブ0)を含むことができる。
図8に、図7の例の動作フロー700の代替実施形態を示す。図8は、関連付ける動作710が少なくとも1つの追加の動作を含むことができる例の実施形態を示す。追加の動作は、動作802、動作804、および/または動作806を含むことができる。
動作802は、ドライブの第1セット上のストレージ・スペースを第1論理ボリュームに割り振ることを示す。たとえば、図3〜6に示されているように、RAIDコントローラ302は、RAID 303に、ドライブの第1セット(たとえば、ドライブ0、ドライブ1、およびドライブ2)上のストレージ・スペースを、所与の論理ボリューム(たとえば、ボリュームA)に関連するデータを格納するために割り振らせることができる。RAIDコントローラ302は、さまざまなメモリ・アドレスを所与のボリュームのメンバ・アドレスとして割り当てることができる。
動作804は、第1論理ボリュームの1つまたは複数のボリューム・ピースにボリューム・ピース・サイズを割り当てることを示す。たとえば、図3〜6に示されているように、RAIDコントローラ302は、RAID 303に、ボリューム・ピース(たとえば、ボリューム・ピースB−2)にメモリ・サイズ(たとえば、1Mb)を割り当てさせることができる。特定のボリューム内の1つまたは複数のボリューム・ピースのボリューム・ピース・サイズは、共通のサイズ(たとえば、1Mb)を有することができる。すべてのボリューム(たとえば、ボリュームA、ボリュームB、およびボリュームC)のボリューム・ピース・サイズは、すべてが共通のサイズ(たとえば、1Mb)を有することができる。
その代わりに、同一ドライブ・グループ内の異なるボリュームが、異なるサイズを与えられたピースを有することができる(たとえば、ボリュームAが1Mbのサイズのボリューム・ピースを有することができ、ボリュームBが2Mbのサイズのボリューム・ピースを有することができる)。RAIDコントローラ302は、ボリュームのそれぞれのピースを追跡するボリュームごとのメタデータと、各ピースのサイズおよびドライブの先頭からのオフセット(セクタ/論理ブロック単位)とを維持することができる。
動作806は、第1論理ボリュームの1つまたは複数のボリューム・ピースに物理ドライブ・オフセットを割り当てることを示す。たとえば、図3〜6に示されているように、RAIDコントローラ302は、RAID 303に、ボリューム・ピースに物理ドライブ・オフセットを割り当てさせることができる。オフセットは、ドライブの物理的先頭からのボリューム・ピースの最初のアドレスのオフセットを定義することができる。オフセットは、ボリューム・ピースの最初のアドレスが物理ドライブの先頭からそれだけオフセットされる、複数のボリューム・ピースのサイズの増分を含むことができる。たとえば、図3に示されているように、ボリューム・ピースB−2は、ドライブ2の先頭に関して1Mbのオフセットを有することができる。
所与の論理ボリュームの第1ボリューム・ピースの物理ドライブ・オフセット(たとえば、ボリューム・ピースB−0は、0の物理ドライブ・オフセットを有することができる)は、その論理ボリュームの第2ボリューム・ピースの物理ドライブ・オフセットと異なるものとすることができる(たとえば、ボリューム・ピースB−2は、1の物理ドライブ・オフセットを有することができる)。
図9に、図7の例の動作フロー700の代替実施形態を示す。図9は、動作フロー700が少なくとも1つの追加の動作を含むことができる例の実施形態を示す。追加の動作は、動作910を含むことができる。
動作910は、ドライブ・グループ内のドライブの第2セットの1つまたは複数のドライブに第1論理ボリュームの1つまたは複数のボリューム・ピースを再構築することを示す。たとえば、図3〜6に示されているように、1つまたは複数のボリューム(たとえば、ボリュームB)のボリューム・ピースを含むドライブ(たとえば、ドライブ2)故障時に、RAIDコントローラ302は、RAID 303に、1つまたは複数のボリューム・ピース(たとえば、ボリューム・ピースB−2)を対象ボリュームの別のピースを含まないドライブ(たとえば、ボリュームAのピースだけを含むドライブ1)に再構築させることができる。
図10に、図7の例の動作フロー700の代替実施形態を示す。図10は、動作フロー700が少なくとも1つの追加の動作を含むことができる例の実施形態を示す。追加の動作は、動作1010を含むことができる。
動作1010は、第1論理ボリュームの1つまたは複数のボリューム・ピースをドライブの第1セットまたはドライブの第2セットに含まれない1つまたは複数のドライブに再構築することを示す。たとえば、図3〜6に示されているように、1つまたは複数のボリューム(たとえば、ボリュームAおよびボリュームB)のボリューム・ピースを含むドライブ(たとえば、ドライブ2)故障時に、RAIDコントローラ302は、RAID 303に、故障したドライブの1つまたは複数のボリューム・ピース(たとえば、ボリューム・ピースA−2およびボリューム・ピースB−2)を、故障したドライブのボリュームの別のピースを含まないドライブに再構築させることができる(たとえば、1つまたは複数のボリューム・ピースA−2およびボリューム・ピースB−2を、ボリュームCのピースだけを含むドライブ5に再構築することができる)。
図11に、図7の例の動作フロー700の代替実施形態を示す。図11は、動作フロー700が少なくとも1つの追加の動作を含むことができる例の実施形態を示す。追加の動作は、動作1110を含むことができる。
動作1110は、ホット・スペア・カバレージ値を定義することを示す。たとえば、図3〜6に示されているように、RAIDコントローラ302は、コンピューティング・デバイス301から入力(たとえば、ユーザ入力)を受け取ることができ、あるいは、ホット・スペア・カバレージ値を自動的に定義する内部回路網を含むことができる。ドライブ・グループは、そのドライブ・グループ内のn個のドライブが故障し、それでも、故障したドライブのすべてのピースをそのドライブ・グループ内の空きエクステント内で再構築できるのに十分な容量がそのドライブ・グループにあるときに、nのホット・スペア・カバレージを有すると言うことができる。たとえば、図3〜6に示されているように、RAID 303は、最大の使用済み容量を有するドライブ(たとえば、ドライブ0、ドライブ2、およびドライブ3)が残りのドライブに再構築されるのに十分なドライブ・スペースが存在する時に、1のホット・スペア・カバレージ値を有することができる(たとえば、ドライブ1、ドライブ4、またはドライブ5は、ドライブ0、ドライブ2、またはドライブ3の再構築に対処するのに十分なストレージ・スペースを有しなければならない)。さらに、ドライブ・グループ内で最大のピースを保持するのに十分に大きい空きエクステントを維持することができる(たとえば、ボリューム・ピースA−0がボリューム・ピースC−1より大きい場合に、少なくともボリューム・ピースAと同程度に大きい空きエクステントが必要である可能性がある)。ドライブ・グループは、そのドライブ・グループ内のn個のドライブが故障し、それでも、故障したドライブのすべてのピースをそのドライブ・グループ内の空きエクステント内で再構築できるのに十分な容量がそのドライブ・グループにあるときに、nのホット・スペア・カバレージを有すると言うことができる。
図12に、RAIDにまたがってボリューム・ピースを割り振ることに関連する例の動作を表す動作流れ図1200を示す。図12および動作フローのさまざまな例を含む後続の図では、議論および説明が、図3〜6の上で説明した例に関してならびに/または他の例および文脈に関して提供される場合がある。しかし、動作フローを、複数の他の環境および文脈で、ならびに/または図3〜6の変更された版で実行できることを理解されたい。また、さまざまな動作フローが、図示のシーケンス(1つまたは複数)で提示されるが、さまざまな動作を、図示された順序とは異なる順序で実行することができ、あるいは、同時に実行できることを理解されたい。
開始動作の後に、動作1210は、第1論理ボリュームの第1ボリューム・ピースについて再構築セットを定義することを示す。たとえば、図3〜6に示されているように、RAIDコントローラ302は、RAID 303に、第1論理ボリュームの第1ボリューム・ピースについて再構築セットを定義させることができる。再構築セットは、そのRAIDボリューム内の残りのピースを含むドライブのセットを含むことができる。たとえば、ボリューム・ピースA−2の再構築セットを、ドライブ0およびドライブ1とすることができる。
動作1220は、第1論理ボリュームのボリューム・ピースに関する再構築セットに従って、第2論理ボリュームのボリューム・ピースをドライブ・グループ内のドライブに割り当てることを示す。たとえば、図3〜6に示されているように、RAIDコントローラ302は、RAID 303に、第1論理ボリュームの1つまたは複数のボリューム・ピース(たとえば、ボリューム・ピースA−0、ボリューム・ピースA−1、およびボリューム・ピースA−2)を1つまたは複数のドライブ(たとえば、それぞれドライブ0、ドライブ1、およびドライブ2)に割り当てさせることができる。RAIDコントローラ302は、RAID 303に、第1論理ボリュームのボリューム・ピースと第2論理ボリュームのボリューム・ピースとのオーバーラップが最小化されるように、第2論理ボリュームの1つまたは複数のボリューム・ピース(たとえば、ボリューム・ピースB−0、ボリューム・ピースB−1、および/またはボリューム・ピースB−2)を1つまたは複数のドライブに割り当てさせることができる。
図13に、図12の例の動作フロー1200の代替実施形態を示す。図13は、定義する動作1210が少なくとも1つの追加の動作を含むことができる例の実施形態を示す。追加の動作は、動作1302を含むことができる。
動作1302は、第1論理ボリュームの第1ボリューム・ピースとは別個の第1論理ボリュームの1つまたは複数のボリューム・ピースを含むドライブ・グループ内のドライブのセットを定義することを示す。たとえば、図3〜6に示されているように、RAIDコントローラ302は、RAID 303に、第1論理ボリュームの第1ボリューム・ピースに関する再構築セットを定義させることができる。再構築セットは、そのRAIDボリューム内の残りのピースを含むドライブのセットを含むことができる。たとえば、ボリューム・ピースA−2の再構築セットを、ドライブ0およびドライブ1とすることができる。
さらに、あるドライブ・グループ内の複数のボリュームのボリューム・ピースに関する再構築セットを、互いに素とすることができる(たとえば、そのドライブ・グループ内のすべてのドライブが、特定のボリュームからの多くとも1つのボリューム・ピースを含む)。
図14は、図12の例の動作フロー1200の代替実施形態を示す。図14は、動作フロー1200が少なくとも1つの追加の動作を含むことができる例の実施形態を示す。追加の動作は、動作1410、動作1412、および/または動作1414を含むことができる。
動作1410は、第1論理ボリュームのボリューム・ピースの再構築セットに従って第1論理ボリュームのボリューム・ピースを再構築することを示す。たとえば、図3〜6に示されているように、1つまたは複数のボリューム(たとえば、ボリュームB)のボリューム・ピースを含むドライブ(たとえば、ドライブ2)故障時に、RAIDコントローラ302は、RAID 303に、1つまたは複数のボリューム・ピース(たとえば、ボリューム・ピースB−2)を対象ボリュームの別のピースを含まないドライブ(たとえば、その再構築セットに含まれないドライブ)に再構築させることができる。
動作1412は、第1論理ボリュームの1つまたは複数のボリューム・ピースをドライブ・グループ内のドライブの第2セットの1つまたは複数のドライブに再構築することを示す。たとえば、図3〜6に示されているように、1つまたは複数のボリューム(たとえば、ボリュームB)のボリューム・ピースを含むドライブ(たとえば、ドライブ2)故障時に、RAIDコントローラ302は、RAID 303に、1つまたは複数のボリューム・ピース(たとえば、ボリューム・ピースB−2)を対象ボリュームの別のピースを含まないドライブ(たとえば、ボリュームAのピースだけを含むドライブ1)に再構築させることができる。
動作1414は、第1論理ボリュームの1つまたは複数のボリューム・ピースをドライブの第1セットまたはドライブの第2セットに含まれない1つまたは複数のドライブに再構築することを示す。たとえば、図3〜6に示されているように、1つまたは複数のボリューム(たとえば、ボリュームAおよびボリュームB)のボリューム・ピースを含むドライブ(たとえば、ドライブ2)故障時に、RAIDコントローラ302は、RAID 303に、故障したドライブの1つまたは複数のボリューム・ピース(たとえば、ボリューム・ピースA−2およびボリューム・ピースB−2)を、故障したドライブのボリュームの別のピースを含まないドライブに再構築させることができる(たとえば、1つまたは複数のボリューム・ピースA−2およびボリューム・ピースB−2を、ボリュームCのピースだけを含むドライブ5に再構築することができる)。
図15は、図12の例の動作フロー1200の代替実施形態を示す。図15は、動作フロー1200が少なくとも1つの追加の動作を含むことができる例の実施形態を示す。追加の動作は、動作1510を含むことができる。
動作1510は、ホット・スペア・カバレージ値を定義することを示す。たとえば、図3〜6に示されているように、RAIDコントローラ302は、コンピューティング・デバイス301から入力(たとえば、ユーザ入力)を受け取ることができ、あるいは、ホット・スペア・カバレージ値を自動的に定義する内部回路網を含むことができる。ドライブ・グループは、そのドライブ・グループ内のn個のドライブが故障し、それでも、故障したドライブのすべてのピースをそのドライブ・グループ内の空きエクステント内で再構築できるのに十分な容量がそのドライブ・グループにあるときに、nのホット・スペア・カバレージを有すると言うことができる。たとえば、図3〜6に示されているように、RAID 303は、最大の使用済み容量を有するドライブ(たとえば、ドライブ0、ドライブ2、およびドライブ3)が残りのドライブに再構築されるのに十分なドライブ・スペースが存在する時に、1のホット・スペア・カバレージ値を有することができる(たとえば、ドライブ1、ドライブ4、またはドライブ5は、ドライブ0、ドライブ2、またはドライブ3の再構築に対処するのに十分なストレージ・スペースを有しなければならない)。さらに、ドライブ・グループ内で最大のピースを保持するのに十分に大きい空きエクステントを維持することができる(たとえば、ボリューム・ピースA−0がボリューム・ピースC−1より大きい場合に、少なくともボリューム・ピースAと同程度に大きい空きエクステントが必要である可能性がある)。ドライブ・グループは、そのドライブ・グループ内のn個のドライブが故障し、それでも、故障したドライブのすべてのピースをそのドライブ・グループ内の空きエクステント内で再構築できるのに十分な容量がそのドライブ・グループにあるときに、nのホット・スペア・カバレージを有すると言うことができる。
本発明およびそれに付随する利益の多くが、前述の説明によって理解されると思われる。また、本発明の趣旨および範囲から逸脱せずに、あるいはその本質的利益のすべてを犠牲にすることなく、さまざまな変更を、本発明のコンポーネントの形態、構成、および配置において行えることが明白であると思われる。本明細書で前に説明された形態は、単にその例示的実施形態である。そのような変更を包含し、含むことを、後続の特許請求の範囲の意図とすることができる。
前述の詳細な説明は、ブロック図、流れ図、および/または例の使用を介するデバイスおよび/またはプロセスのさまざまな実施形態を含む場合がある。そのようなブロック図、流れ図、および/または例が、1つまたは複数の機能および/または動作を含む限り、当業者は、そのようなブロック図、流れ図、または例の中の各機能および/または動作を、個別におよび/または集合的に、さまざまなハードウェア、ソフトウェア、ファームウェア、または事実上すべてのその組合せによって実施できることを理解するであろう。一実施形態では、本明細書で説明される主題の複数の部分を、特定用途向け集積回路(ASIC)、フィールド・プログラマブル・ゲート・アレイ(FPGA)、ディジタル信号プロセッサ(DSP)、または他の集積フォーマットを介して実施することができる。しかし、当業者は、本明細書で開示される実施形態のいくつかの態様を、全体的にまたは部分的に、集積回路内で、1つまたは複数のコンピュータ上で動作する1つまたは複数のコンピュータ・プログラムとして(たとえば、1つまたは複数のコンピュータ・システム上で動作する1つまたは複数のプログラムとして)、1つまたは複数のプロセッサ上で動作する1つまたは複数のプログラムとして(たとえば、1つまたは複数のマイクロプロセッサ上で動作する1つまたは複数のプログラムとして)、ファームウェアとして、あるいは事実上すべてのその組合せとして、同等に実施できることと、回路を設計することならびに/あるいはソフトウェアおよび/またはファームウェアのコードを記述することが、本開示に照らして、十分に当業者の技量に含まれることとを認めるであろう。
さらに、当業者は、本明細書で説明される主題の機構を、さまざまな形のプログラム製品として配布され得るものとすることができることと、本明細書で説明される主題の例示的実施形態が、配布を実際に実行するのに使用される信号担持媒体の特定のタイプに関わりなく適用されることとを了解するであろう。信号担持媒体の例は、フロッピ・ディスク、ハード・ディスク・ドライブ、コンパクト・ディスク(CD)、ディジタル・ビデオ・ディスク(DVD)、ディジタル・テープ、コンピュータ・メモリ、その他などの記録可能型媒体と、ディジタル通信媒体および/またはアナログ通信媒体(たとえば、光ファイバ・ケーブル、導波管、有線通信リンク、無線通信リンク(たとえば、送信器、受信器、送信論理、受信論理、その他)、その他)などの伝送型媒体とを含むが、これらに限定はされない可能性がある。
当業者は、技術的現状が、システムの諸態様のハードウェア実施態様、ソフトウェア実施態様、および/またはファームウェア実施態様の間に差がほとんど残されていない可能性がある点まで進歩した可能性があり、ハードウェア、ソフトウェア、および/またはファームウェアの使用を、一般に(しかし、ある種の文脈でハードウェアとソフトウェアとの間の選択が重要になる場合があるという点で必ずではない)、費用対効率のトレードオフを表す設計選択とすることができることを認めるであろう。当業者は、本明細書で説明されたプロセスおよび/またはシステムおよび/または他のテクノロジを実現できるさまざまな手段(たとえば、ハードウェア、ソフトウェア、および/またはファームウェア)がある可能性があることと、好ましい手段が、そのプロセスおよび/またはシステムおよび/または他のテクノロジを展開できる文脈に伴って変化することとを了解するであろう。たとえば、ある実装者が、速度および正確さが主要である可能性があると判定する場合に、その実装者は、主にハードウェアおよび/またはファームウェアの手段を選ぶことができ、その代わりに、柔軟性が主要である可能性がある場合には、実装者は、主にソフトウェアの実施態様を選ぶことができ、あるいは、その代わりに、実装者は、ハードウェア、ソフトウェア、および/またはファームウェアのある組合せを選ぶことができる。したがって、本明細書で説明されたプロセスおよび/またはデバイスおよび/または他のテクノロジをそれによって実現できる複数の可能な手段がある場合があり、それらの手段のどれもが、利用される任意の手段をその手段が展開される文脈および実装者の特定の懸念(たとえば、速度、柔軟性、または予測可能性)(このいずれもが変化し得る)に依存する選択とすることができるという点で、他の手段より本質的に優れるものではない可能性がある。当業者は、実施態様の光学的態様が、通常は光学指向のハードウェア、ソフトウェア、および/またはファームウェアを使用することを認めるであろう。

Claims (16)

  1. 第1論理ボリュームの1つまたは複数のボリューム・ピースをドライブ・グループ内のドライブの第1セットに関連付けることと、
    第2論理ボリュームの1つまたは複数のボリューム・ピースを前記ドライブ・グループ内のドライブの第2セットに関連付けることと
    を含み、前記ドライブ・グループ内のドライブの前記第1セットは、前記ドライブ・グループ内のドライブの前記第2セットのメンバではない少なくとも1つのドライブを含む、RAID(redundant array of inexpensive discs)にまたがってボリューム・ピースを割り振る方法。
  2. 第1論理ボリュームの1つまたは複数のボリューム・ピースをドライブ・グループ内のドライブの第1セットに関連付けることは、
    ドライブの前記第1セット上のストレージ・スペースを前記第1論理ボリュームに割り振ること
    をさらに含む、請求項1に記載の方法。
  3. ドライブの前記第1セット上のストレージ・スペースを前記第1論理ボリュームに割り振ることは、
    ボリューム・ピース・サイズを前記第1論理ボリュームの前記1つまたは複数のボリューム・ピースに割り当てることと、
    物理ドライブ・オフセットを前記第1論理ボリュームの前記1つまたは複数のボリューム・ピースに割り当てることと
    をさらに含む、請求項2に記載の方法。
  4. 前記第1論理ボリュームの前記1つまたは複数のボリューム・ピースの第1ボリューム・ピースの物理ドライブ・オフセットは、前記第1論理ボリュームの前記1つまたは複数のボリューム・ピースの第2ボリューム・ピースの物理ドライブ・オフセットとは異なる、請求項3に記載の方法。
  5. 前記第1論理ボリュームの1つまたは複数のボリューム・ピースを前記ドライブ・グループ内のドライブの前記第2セットの1つまたは複数のドライブに再構築すること
    をさらに含む、請求項1に記載の方法。
  6. 前記第1論理ボリュームの1つまたは複数のボリューム・ピースをドライブの前記第1セットまたはドライブの前記第2セットに含まれない1つまたは複数のドライブに再構築すること
    をさらに含む、請求項1に記載の方法。
  7. ホット・スペア・カバレージ値を定義すること
    をさらに含む、請求項1に記載の方法。
  8. 第1論理ボリュームの1つまたは複数のボリューム・ピースをドライブ・グループ内のドライブの第1セットに関連付ける手段と、
    第2論理ボリュームの1つまたは複数のボリューム・ピースを前記ドライブ・グループ内のドライブの第2セットに関連付ける手段と
    を含み、前記ドライブ・グループ内のドライブの前記第1セットは、前記ドライブ・グループ内のドライブの前記第2セットのメンバではない少なくとも1つのドライブを含む、RAID(redundant array of inexpensive discs)にまたがってボリューム・ピースを割り振るシステム。
  9. 第1論理ボリュームの第1ボリューム・ピースに関する再構築セットを定義することと、
    第2論理ボリュームのボリューム・ピースを、前記第1論理ボリュームの前記ボリューム・ピースに関する前記再構築セットに従ってドライブ・グループ内のドライブに割り当てることと
    を含む、RAID(redundant array of inexpensive discs)にまたがってボリューム・ピースを割り振る方法。
  10. 第1論理ボリュームの第1ボリューム・ピースに関する再構築セットを定義することは、
    前記第1論理ボリュームの前記第1ボリューム・ピースとは別個の前記第1論理ボリュームの1つまたは複数のボリューム・ピースを含む前記ドライブ・グループ内のドライブのセットを定義すること
    を含む、請求項9に記載の方法。
  11. 前記第1論理ボリュームの前記第1ボリューム・ピースに関する前記再構築セットおよび前記第2論理ボリュームの前記1つまたは複数のボリューム・ピースに関する再構築セットは、互いに素である、請求項9に記載の方法。
  12. 前記第1論理ボリュームのボリューム・ピースを前記第1論理ボリュームの前記ボリューム・ピースの前記再構築セットに従って再構築すること
    をさらに含む、請求項9に記載の方法。
  13. 前記第1論理ボリュームのボリューム・ピースを前記第1論理ボリュームの前記ボリューム・ピースの前記再構築セットに従って再構築することは
    前記第1論理ボリュームの1つまたは複数のボリューム・ピースを前記ドライブ・グループ内のドライブの前記第2セットの1つまたは複数のドライブに再構築すること
    をさらに含む、請求項12に記載の方法。
  14. 前記第1論理ボリュームのボリューム・ピースを前記第1論理ボリュームの前記ボリューム・ピースの前記再構築セットに従って再構築することは
    前記第1論理ボリュームの1つまたは複数のボリューム・ピースをドライブの前記第1セットまたはドライブの前記第2セットに含まれない1つまたは複数のドライブに再構築すること
    をさらに含む、請求項12に記載の方法。
  15. ホット・スペア・カバレージ値を定義すること
    をさらに含む、請求項9に記載の方法。
  16. ドライブ・グループ内のドライブの第1セットにまたがって分配された第1論理ボリュームの1つまたは複数のボリューム・ピースと、
    前記ドライブ・グループ内のドライブの第2セットにまたがって分配された第2論理ボリュームの1つまたは複数のボリューム・ピースと
    を含み、ドライブの前記第1セットは、ドライブの前記第2セットに含まれない1つまたは複数のディスクを含む、RAID(redundant array of inexpensive discs)。
JP2011534483A 2008-10-31 2009-03-31 性能改善のためのraidボリュームとドライブ・グループとの間の疎結合 Expired - Fee Related JP5722225B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/290,590 2008-10-31
US12/290,590 US8341349B2 (en) 2008-10-31 2008-10-31 System and method for loose coupling between raid volumes and drive groups
PCT/US2009/001997 WO2010051002A1 (en) 2008-10-31 2009-03-31 A loose coupling between raid volumes and drive groups for improved performance

Publications (2)

Publication Number Publication Date
JP2012507786A true JP2012507786A (ja) 2012-03-29
JP5722225B2 JP5722225B2 (ja) 2015-05-20

Family

ID=42129149

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011534483A Expired - Fee Related JP5722225B2 (ja) 2008-10-31 2009-03-31 性能改善のためのraidボリュームとドライブ・グループとの間の疎結合

Country Status (7)

Country Link
US (1) US8341349B2 (ja)
EP (1) EP2344954A4 (ja)
JP (1) JP5722225B2 (ja)
KR (1) KR20110087272A (ja)
CN (1) CN102150137A (ja)
TW (1) TWI501080B (ja)
WO (1) WO2010051002A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015191594A (ja) * 2014-03-28 2015-11-02 富士通株式会社 ストレージ制御装置、ストレージ制御プログラム、及びストレージ制御方法

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8788751B2 (en) * 2009-05-01 2014-07-22 Ca, Inc. Restoring spanned volumes of data
US8904106B2 (en) 2011-06-22 2014-12-02 International Business Machines Corporation Parallel block allocation for declustered logical disks
JP5807458B2 (ja) 2011-08-31 2015-11-10 富士通株式会社 ストレージシステム、ストレージ制御装置およびストレージ制御方法
US10929040B1 (en) * 2011-09-28 2021-02-23 EMC IP Holding Company LLC RAID 1—half compressed data storage
US8775735B2 (en) * 2012-03-22 2014-07-08 Synology Incorporated Storage system and operation method of a storage system
TWI468931B (zh) * 2012-11-07 2015-01-11 Inventec Corp 磁碟配置方法及伺服器機架系統
US9323617B2 (en) * 2013-05-31 2016-04-26 Hewlett Packard Enterprise Development Lp Remap raid to maintain raid level
US10013359B2 (en) * 2014-12-24 2018-07-03 University Of New Hampshire Redundant disk array storage system and method using heterogeneous disks and a lookup table
CN107491263B (zh) * 2016-06-12 2022-07-22 北京忆恒创源科技股份有限公司 一种基于存储对象的数据重构方法
US10229022B1 (en) * 2017-04-27 2019-03-12 EMC IP Holding Company LLC Providing Raid-10 with a configurable Raid width using a mapped raid group
US10908997B1 (en) * 2019-07-30 2021-02-02 EMC IP Holding Company LLC Simple and efficient technique to support disk extents of different sizes for mapped RAID

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07261945A (ja) * 1994-03-17 1995-10-13 Hitachi Ltd ディスクアレイ装置およびディスクアレイの区分け方法
JPH10133826A (ja) * 1996-11-01 1998-05-22 Fujitsu Ltd Raid装置
US20030088803A1 (en) * 2001-11-08 2003-05-08 Raidcore, Inc. Rebuilding redundant disk arrays using distributed hot spare space
US20050182898A1 (en) * 2004-02-12 2005-08-18 International Business Machines Corporation Method and apparatus for providing high density storage
US20060271734A1 (en) * 2003-03-21 2006-11-30 Strange Stephen H Location-independent RAID group virtual block management

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0485110B1 (en) * 1990-11-09 1999-08-25 Emc Corporation Logical partitioning of a redundant array storage system
JP3197715B2 (ja) * 1993-11-15 2001-08-13 富士写真フイルム株式会社 感光材料処理装置
US6098119A (en) * 1998-01-21 2000-08-01 Mylex Corporation Apparatus and method that automatically scans for and configures previously non-configured disk drives in accordance with a particular raid level based on the needed raid level
US6311251B1 (en) * 1998-11-23 2001-10-30 Storage Technology Corporation System for optimizing data storage in a RAID system
US6952794B2 (en) * 2002-10-10 2005-10-04 Ching-Hung Lu Method, system and apparatus for scanning newly added disk drives and automatically updating RAID configuration and rebuilding RAID data
US7093157B2 (en) * 2004-06-17 2006-08-15 International Business Machines Corporation Method and system for autonomic protection against data strip loss
CN101095115A (zh) * 2004-11-05 2007-12-26 数据机器人技术公司 存储系统条件指示器和方法
TWI251740B (en) * 2004-12-29 2006-03-21 Inventec Corp Automatic rebuilding method of redundant arrays of inexpensive disks (RAID) equipment
US20070143541A1 (en) * 2005-12-19 2007-06-21 Lsi Logic Corporation Methods and structure for improved migration of raid logical volumes

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07261945A (ja) * 1994-03-17 1995-10-13 Hitachi Ltd ディスクアレイ装置およびディスクアレイの区分け方法
JPH10133826A (ja) * 1996-11-01 1998-05-22 Fujitsu Ltd Raid装置
US20030088803A1 (en) * 2001-11-08 2003-05-08 Raidcore, Inc. Rebuilding redundant disk arrays using distributed hot spare space
US20060271734A1 (en) * 2003-03-21 2006-11-30 Strange Stephen H Location-independent RAID group virtual block management
US20050182898A1 (en) * 2004-02-12 2005-08-18 International Business Machines Corporation Method and apparatus for providing high density storage

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015191594A (ja) * 2014-03-28 2015-11-02 富士通株式会社 ストレージ制御装置、ストレージ制御プログラム、及びストレージ制御方法

Also Published As

Publication number Publication date
WO2010051002A1 (en) 2010-05-06
EP2344954A4 (en) 2012-08-08
EP2344954A1 (en) 2011-07-20
TW201017404A (en) 2010-05-01
US20100115198A1 (en) 2010-05-06
TWI501080B (zh) 2015-09-21
JP5722225B2 (ja) 2015-05-20
US8341349B2 (en) 2012-12-25
KR20110087272A (ko) 2011-08-02
CN102150137A (zh) 2011-08-10

Similar Documents

Publication Publication Date Title
JP5722225B2 (ja) 性能改善のためのraidボリュームとドライブ・グループとの間の疎結合
US10140041B1 (en) Mapped RAID (redundant array of independent disks) in a data storage system with RAID extent sub-groups that are used to perform drive extent allocation and data striping for sequential data accesses to a storage object
US10146447B1 (en) Mapped RAID (redundant array of independent disks) in a data storage system with drive extents allocated to individual RAID extents from individual sub-groups of storage made up of ranges of logical block addresses defined across a group of hard disk drives
US8839028B1 (en) Managing data availability in storage systems
US9378093B2 (en) Controlling data storage in an array of storage devices
US6898668B2 (en) System and method for reorganizing data in a raid storage system
US6845465B2 (en) Method and system for leveraging spares in a data storage system including a plurality of disk drives
JP3753259B2 (ja) 記憶空間を提供する方法およびデータ記憶システム
CN110096217B (zh) 用于重新定位数据的方法、数据存储系统和介质
US8812902B2 (en) Methods and systems for two device failure tolerance in a RAID 5 storage system
WO2014115320A1 (ja) ストレージシステム及びデータ管理方法
US20060085674A1 (en) Method and system for storing data
KR20090073099A (ko) 전역 핫 스패어 디스크를 이용한 고장난 드라이브의 재구성및 카피백 방법
JP2000099282A (ja) ファイル管理システム
US10678643B1 (en) Splitting a group of physical data storage drives into partnership groups to limit the risk of data loss during drive rebuilds in a mapped RAID (redundant array of independent disks) data storage system
JP6663482B2 (ja) 計算機システム、物理記憶デバイスの制御方法、および記録媒体
US10409682B1 (en) Distributed RAID system
US11327668B1 (en) Predictable member assignment for expanding flexible raid system
CN103699457A (zh) 基于条带化的磁盘阵列修复方法及装置
US11256447B1 (en) Multi-BCRC raid protection for CKD
US11474901B2 (en) Reliable RAID system with embedded spare capacity and flexible growth
CN111124251B (zh) 用于i/o控制的方法、装置以及计算机可读介质
JP2010267037A (ja) ディスクアレイ装置
US9848042B1 (en) System and method for data migration between high performance computing architectures and de-clustered RAID data storage system with automatic data redistribution
CN107491263B (zh) 一种基于存储对象的数据重构方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120228

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20120713

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20121114

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20121115

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20130215

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20130222

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130515

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20130827

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20131227

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20140124

A912 Re-examination (zenchi) completed and case transferred to appeal board

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20140221

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20140804

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20140812

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150128

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150325

R150 Certificate of patent or registration of utility model

Ref document number: 5722225

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees