JP4856515B2 - ストライピング済みディスク・データのリバランシングを行う方法、システム、及び製品(ストライピング済みディスク・データのリバランシング) - Google Patents

ストライピング済みディスク・データのリバランシングを行う方法、システム、及び製品(ストライピング済みディスク・データのリバランシング) Download PDF

Info

Publication number
JP4856515B2
JP4856515B2 JP2006287230A JP2006287230A JP4856515B2 JP 4856515 B2 JP4856515 B2 JP 4856515B2 JP 2006287230 A JP2006287230 A JP 2006287230A JP 2006287230 A JP2006287230 A JP 2006287230A JP 4856515 B2 JP4856515 B2 JP 4856515B2
Authority
JP
Japan
Prior art keywords
storage units
extents
total number
coupled
group
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.)
Active
Application number
JP2006287230A
Other languages
English (en)
Other versions
JP2007149068A (ja
Inventor
ブルース・マクナット
ジョセフ・スミス・ハイド2世
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of JP2007149068A publication Critical patent/JP2007149068A/ja
Application granted granted Critical
Publication of JP4856515B2 publication Critical patent/JP4856515B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • G06F11/1096Parity calculation or recalculation after configuration or reconfiguration of the system
    • 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/0604Improving or facilitating administration, e.g. storage management
    • G06F3/0607Improving or facilitating administration, e.g. storage management by facilitating the process of upgrading existing storage systems, e.g. for improving compatibility between host and storage device
    • 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/0638Organizing or formatting or addressing of data
    • G06F3/0644Management of space entities, e.g. partitions, extents, pools
    • 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

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)

Description

本開示は、ストライピング済みディスク・データのリバランシング(再配置)を行う方法、システム、及び製品に関する。
複数のハード・ディスクに結合されたコンピュータにおいて、ディスク・ストライピングとも呼ばれるデータ・ストライピングは、ひとまとまりのデータを複数のストライプに分割して複数のハード・ディスクに分散させる処理である。
ある一定のシステムには、RAIDアレイとも呼ばれる複数の独立ディスク冗長配列(RAID)ランクに渡るデータ・ストライピングを実施できるものがある。RAIDは、複数のディスクを使用してデータの記憶及び分配を行う記憶システムである。データ・ストライピングを実施するために、ある論理ユニット(LUN)に属するデータを複数のエクステントに分割することができる。次に、あるボリュームの連続するエクステントを使用可能な前記複数のRAIDランクに渡って順繰りに分配することができる。このようなストライピングを用いると、入力/出力(I/O)負荷を分散することができる。
当該ディスク・セットの全域で既にデータ・ストライピングが実施されたディスク・セットに新しいランクを追加する場合は、複数のRAIDランクに渡るI/O負荷の前記分散化による均衡が失われる可能性がある。
制御装置に結合された第1の1組の記憶ユニットに複数のエクステントを記憶する方法、システム、及び製品を提供する。前記制御装置に第2の1組の記憶ユニットが結合されているか判定が行われ、また、前記複数のエクステントは、前記第1の1組の記憶ユニット内と前記第2の1組の記憶ユニット内とに含まれる全ての記憶ユニット間で分配される。
別の実施形態において、前記記憶ユニットは、独立ディスク冗長配列(RAID)アレイであり、前記複数のエクステントは、前記第1の1組のRAIDアレイ内と前記第2の1組のRAIDアレイ内とに含まれる全ての前記RAIDアレイの間で均等に分配され、前記複数のエクステントが全ての前記RAIDアレイの間で分配されている間に、エクステントが2回以上移動されることはなく、前記複数のエクステントは、最小の移動数で全ての前記RAIDアレイ間で分配され、前記複数のエクステントが1つのボリューム全体に割り当てられる。
また別の実施形態では、前記第1の1組の記憶ユニットは、いくつかの既存RAIDアレイを有し、前記第2の1組の記憶ユニットは、空の状態の新規追加RAIDアレイを有し、前記既存RAIDアレイと前記新規追加RAIDアレイとは、合わせて総数のRAIDアレイを有する。既存RAIDアレイの数にRAIDアレイの前記総数を掛けた結果が求められる。前記複数のエクステントの数を前記結果で割った商が求められる。各々に前記結果と等しい数のエクステントが割り当てられる、前記商と等しい数の群が生成される。1つの群は、前記1つの群に割り当てられた前記エクステントを前記総数のRAIDアレイの間で均等に再分配することによって処理される。
他の実施形態では、前記複数のエクステントは、第1の複数のエクステントであり、前記第1の1組の記憶ユニットと前記第2の1組の記憶ユニットとは、合わせて総数の記憶ユニットを有する。第2の複数のエクステントは、前記第2の1組の記憶ユニットに記憶され、前記第1の複数のエクステントと前記第2の複数のエクステントとは、総数のエクステントを有する。記憶ユニットの前記総数を2乗した結果が求められる。エクステントの前記総数を前記結果で割った商が求められる。各々に前記結果と等しい数のエクステントが割り当てられ、各々が前記第1の1組の記憶ユニットと第2の1組の記憶ユニットとから選択されたエクステントを含む、前記商と等しい数の群が生成される。1つの群は、前記1つの群に割り当てられた前記エクステントを前記総数の記憶ユニットの間で均等に再分配することによって処理される。
さらに別の実施形態では、前記第1の1組の記憶ユニットと前記第2の1組の記憶ユニットは、合わせて総数の記憶ユニットを有する。前記第1の1組の記憶ユニット内の記憶ユニットの数と、記憶ユニットの前記総数との最小公倍数が求められる。前記複数のエクステントから選択された前記最小公倍数のエクステントが各々に割り当てられる複数の記憶ユニット群が生成される。1つの群は、前記1つの群に割り当てられた前記エクステントを前記総数の記憶ユニットの間で均等に再分配することによって処理され、前記再分配は、前記第1の1組の記憶ユニットから前記第2の1組の記憶ユニットへの最小数のコピー処理を実施することに基づいて行われる。
また、添付の図面には、図面全体を通して、同様の部分には同様の参照符号を付している。
以下の説明では、本明細書の一部を形成しいくつかの実施形態を例示する添付図面を参照している。また、他の実施形態を利用することも、構造上及び動作上の変更を加えることも可能なものとする。例えば、ここに提案される諸実施形態は、前記記憶装置に記憶されているアプリケーション・データのタイプに関わらず適用することができる。
ある実施形態では、当該ディスク・セットの全域で既にデータ・ストライピングが実施されたディスク・セットに新しいランクが追加されたことに応じて、ストライピング済みディスク・データのリバランシングを行う。また、ある実施形態では、あるエクステント・プールに渡って(1つのエクステントの「ストライプ」サイズで)各論理ボリュームにストライピングが施される。また、ある実施形態では、前記プールに単数または複数の新しいランクを追加した後に前記ボリュームのストライピング・パターンのリバランシングを行える。さらにある実施形態では、可能な限り少ないデータを移動させながらも、前記データを一時ディスク記憶装置に移動させるいかなる必要も生じさせずに、各々のボリュームが前記プール内の全ての前記ランクに渡ってストライピングが行われる。
ある実施形態では、各々の既存ボリュームのエクステントが、サイズMの複数の組に編成される。ただし、この場合Mは新しいランク数と古いランク数との積である。次に、この群から選択された特定のエクステントが、新しいランク・セットの全域に渡るエクステントの前記分配のバランスを保持するように前記新しいランク内に移動される。
他の実施形態では、リバランシング処理が実施される前に、前記新しいランクに既に一定数の新しいボリュームが割り当てられていることもある。そのような場合には、前記新しいランク数の2乗と等しいサイズの、各々1つの古いボリュームと1つの新しいボリュームとからのエクステントを含む群が形成される。次に、選択されたエクステントが、各々のボリュームからの前記エクステントの前記分配が前記新しいランク・セットの全域にストライピングされるような形で互いに交換される。
図1は、ある実施形態に係る既存RAIDアレイ106a、106b...、106nと、新規追加RAIDアレイ108a、108b、...108mとを含む記憶装置104に結合された記憶装置制御ユニット102を含むコンピューティング環境100のブロック図を示している。前記新規追加RAIDアレイ108a...108mは、前記記憶装置制御ユニット102が、それ以前に結合されていた既存RAIDアレイ106a...106nにデータを記憶した後に、前記記憶装置制御ユニット102に結合される。
制御装置とも呼ばれる前記記憶装置制御ユニット102は、パーソナル・コンピュータ、ワークステーション、メインフレーム、ミッドレンジ・コンピュータ、ネットワーク機器、パームトップ・コンピュータ、テレフォニー・デバイス、ブレード・コンピュータ、ハンドヘルド・コンピュータ等のような当業界で現在周知の演算デバイスを含めた任意の適切な演算デバイスを有する。
図1は既存RAIDアレイ106a...106nと、新規追加RAIDアレイ108a...108mとを備える記憶装置104を示しているが、諸代替実施形態では、前記記憶装置104は、RAIDアレイとは異なるストレージ・デバイスを含むこともできる。例えば、前記記憶装置104は、前記RAIDアレイ106a...106n、108a...108mの代わりに又はそれに加えて、テープや光デバイス等を含むことができる。
エクステント110a、110b、...110p、112a、112b、...112q、114a、114b、...114rは、前記既存RAIDアレイ106a...106nの間で分配される。エクステントはデータを記憶する要素であり、各々のエクステントのサイズは同一である。エクステントの前記サイズは異なっていてもよく、例えば一実施形態では5Kバイトとし、別の実施形態では50Kバイトとし、また別の実施形態では1Mバイトとすることもできる。前記各々のエクステントの前記サイズは、各々のRAIDアレイの記憶容量と比較すると小さくなっている。前記記憶装置104に書き込まれることになる同一のボリュームに複数のエクステントが属していてもよい。前記新規追加RAIDアレイ108a...108mにはエクステントが全く示されていないが、前記新規追加RAIDアレイ108a...108mに、エクステントをコピーすることも書き込むこともできる。
前記記憶装置制御ユニット102は、前記RAIDアレイ106a...106n、108a...108mの間で前記エクステント110a...110p、112a...112q、114a...114rを再配置することができるエクステント再分配アプリケーション116を含んでいる。
ある実施形態において、前記エクステント再分配アプリケーション116は、エクステントの前記分配が前記既存RAIDアレイ106a...106nと前記新規追加RAIDアレイ108a...108mの全域で均衡化されるように、前記既存RAIDアレイ106a...106nと前記新規追加RAIDアレイ108a...108mの間でエクステントを編成する。
図2は、前記新規追加RAIDアレイ108a...108mが空の状態である場合に、一定の実施形態に従って図1の前記コンピューティング環境100内の全てのRAIDアレイに渡ってエクステントのリバランシングを行う流れ図を示している。図2に示される一定の処理は、前記エクステント再分配アプリケーション116において実施されてもよい。
以下に、実施形態についていくつか説明し、その態様を図2の前記流れ図において後述する。エクステント・プールは当初、ランク0及び1を含んでいるものとし、ランクはRAIDアレイとする。こうした場合、所定のボリュームVは、{0,1,0,1,..}の順に、前記ボリュームVのエクステントを2つの前記ランクに割り当ててもよい。その後、第3のランクを追加することもでき、前記第3のランクをランク2と呼ぶ。リバランシングを行うために、ある実施形態では、前記ボリュームVの前記エクステントを2×3=6の群に編成する。各々の6つのエクステント群(これを群gとする)は、ランク0内の3つのメンバーと、ランク1内の3つのメンバーとを含むことになる。
参照用に、ランク0内の前記3つのメンバーをg0,0、g0,1、及びg0,2と呼ぶものとする。同様に、ランク1内の前記3つのメンバーはg1,0、g1,1、及びg1,2と呼んでもよい。
ある実施形態においては、前記6つのエクステントから成る群を3つの前記新規ランクに次のように割り当てる。
ランク0:エクステントg0,0、エクステントg0,1
ランク1:エクステントg1,0、エクステントg1,1
ランク2:エクステントg0,2、エクステントg1,2
このような実施形態を用いると、ランク2へのコピーを除くいかなるデータ・コピーも回避される。
より具体的には第1の手法において、ある実施形態では、エクステント・プール内のランク数をNoldからNnewに拡張させる必要がある。また、実施形態によれば、次に、あるボリュームの既存エクステントをサイズM=Nold×Nnewの群に形成する。各々の群には、Nnewが出現する古いランクが含まれている。
所定の群は、各々の古いランクに属するエクステントを別々に識別して構成することもできる。このことは、ランク毎の最後に追加されたエクステントをポインタが指すように保ちながら、前記ボリュームのエクステントを相対バイト・アドレス(RBA)順に辿っていくことによって実行できる。最初のランクのポインタを用いその先を辿ることによって、1つのエクステントを前記最初のランクに追加し、その後、次のランクのポインタを用いその先を辿ることによって、1つのエクステントを次のランクに追加し、各々のランクに属するNnewエクステントが見つかるまで、以下同様に追加を行う。前記群を構成するこのような実施形態を用いると、エクステント割当ての既存パターンについての仮説立てが回避される。
均等に均衡化された群を可能な限り多く生成し、その後にエクステントが残っても、最後まで持ち越される。その後、残りのエクステントを複数の群に形成する2回目の試行が行われるが、今度は、所定の群に1つのボリュームだけを使用するという要件が緩和される。
この第2の1組の群が形成された後に残っているエクステントがある場合は、このエクステントは無視される。所定の群gの前記エクステントは、ランク0内に含まれ、g0,0、g0,1、.....、 g0,Nnew−1の番号が振られるものとし、ランク1、2、...、Nold−1の前記エクステンにも、対応する様式で番号を振ることができる。こうした場合、リバランシング処理は次のように実施することができる。
for i =Nold to Nnew -1 ; for j = 0 to Nold -1;
allocate the new extent fi,j;
for i =0 to Nold -1 ; for j = Nold to Nnew -1;
move gi,j to fj,i;
free extent gi,j;
コピーされるエクステントの数は、前記ボリュームからの等しい数のエクステントが各々のランク内に確実に含まれているために必要な最小数となる。
次に、図2の流れ図について説明すると、この図では、前記コンピューティング環境100に実装されているストライピング済みディスク・データのリバランシングを行う前記諸実施形態の態様が示されており、制御は、前記エクステント再分配アプリケーション116が既存RAIDアレイ106a...106nに1つ以上のRAIDアレイ108a...108mが新規に追加された旨の指示を受信するブロック200から開始している。
前記エクステント再分配アプリケーション116は、既存RAIDアレイ106a...106nの数と、前記新規RAIDアレイ108a...108mが追加された後の総数のRAIDアレイの数との積と等しくなるようにMをセットする(ブロック202)。
前記エクステント再分配アプリケーション116は、前記既存RAIDアレイ106a...106n内のエクステントの数をMで割ってその商と余りを求める(ブロック204)。エクステント群の数は前記商に割り当てられる(ブロック206)。
その後、各々のエクステント群について、前記エクステント再分配アプリケーション116は、各々のRAIDアレイ内のエクステントの数が等しくなるように、前記既存RAIDアレイ106a..106nから1つ以上の前記新規追加RAIDアレイ108a...108mにエクステントをコピーする(ブロック208)。
制御はブロック210に進み、そこで前記エクステント再分配アプリケーション116は余りがゼロであるかどうかを判定する。ゼロである場合には、制御はブロック214に進み、リバランシング処理は終了する。ゼロでない場合には、余りの数のエクステントが前記RAIDアレイ106a...106n、108a...108mの間で可能な限り均等に分配され(ブロック212)、制御がブロック214に進んでリバランシング処理が終了する。
したがって、図2では、前記既存RAIDアレイ106a...106n内及び前記新規追加RAIDアレイ108a...108m内の前記エクステントのリバランシングを行う処理以前には、前記新規追加RAIDアレイ108a...108mに割り付けられているエクステントが存在しない、実施形態が示されている。ある実施形態では、コピーされるエクステントの数が、前記エクステントを有するボリュームからの等しい数のエクステントが各々のRAIDランクに確実に含まれているために必要な最小数となることを保証している。
図3は、前記新規追加RAIDアレイが空の状態である場合に、ある実施形態に従って全てのRAIDアレイに渡ってエクステントのリバランシングを行う一例を示している。
図3では、記憶装置300は、3つの既存RAIDアレイと、2つの新規追加RAIDアレイとを含んでいる。図3のブロック302は、図2のブロック202及び204の前記論理に従ってM、商、及び余りがどのように計算されるかを示している。
Mは15であり商は4であると計算されたので、ブロック304では、各々15個のエクステントを有する4つの群が形成された状態が示されている。ブロック304には、前記4つの群に加えて4つの余りエクステント306も示されている。
ブロック308は、前記4つの群の前記エクステントが前記5つのRAIDアレイの間でどのように再分配され、前記4つの余りエクステント306が前記5つのRAIDアレイの間でどのように分配されるかを示している。図2のブロック206〜214に示されている前記論理を使用して前記エクステントを再分配することができる。
ブロック310は、リバランシング後の前記5つのRAIDアレイの各々のエクステントの数を示している。リバランシング後は、前記RAIDアレイの各々は可能な限り均等に分配されたエクステントを有する。
したがって、図3は、図2に示されている前記論理に従って複数のRAIDアレイに渡ってエクステントのリバランシングを行う一例を示している。
図4は、前記新規追加RAIDアレイ108a...108mに複数のエクステントが記憶されている場合に、ある実施形態に従って、全てのRAIDアレイに渡ってエクステントのリバランシングを行う流れ図を示している。図4に記載の処理は、前記記憶装置制御ユニット102内に実装された前記エクステント再分配アプリケーション116において実施することができる。
以下では第2の手法に係る実施形態を説明し、その態様を図4の前記流れ図の形で示す。実施形態で実施される例示的なステップ1、2、及び3(後述)によって、前記新規追加RAIDアレイ108a...108m内の割付けをリバランシングよりも前に行うことが可能になる。
ステップ1:各々のボリュームについて、前記Nnewの対象ランク各々が正確に1回出現する、可能な限り多くの群を形成する。このようにして識別されたエクステントはそのまま残しておく。
ステップ2:1つのボリューム上の(gi,jで標示される)各々の古いランクでNnewが出現し、別のボリューム上の(hi,jで標示される)各々の追加ランクでもNnewが出現する、可能な限り多くの群を形成する。そのような群は各々、最小限のコピーで所定の位置に再配置することができる。最小限のコピーを伴う前記再配置を達成するために、以下の1組のエクステント・スワップを実施することができる。
for i = 0 to Nold -1; for j = Nold to Nnew-1;
swap gi,j with hj,i;
ステップ3:各々のボリュームについて、前記第1の手法で先に説明した通りのタイプと可能な限り同じタイプの群を可能な限り多く形成し、前記第1の手法について先に説明したのと同様の手法で前記群を操作する。
前記第1の手法と同様に、拡張した後に残っているエクステントの前記操作も最後まで持ち越される。ステップ(1)にあるような可能な限り多くのエクステントが操作されるが、ここでは、ある群の全てのメンバーが同じボリュームに属するという要件が緩和される。この時点で残っているエクステントがあれば、それらは前記第1の手法で持ち越された前記エクステントと同様に操作される。
次に、図4の流れ図を参照すると、この図では、前記コンピューティング環境100に実装されているストライピング済みディスク・データのリバランシングを行う前記諸実施形態の態様が示されており、制御は、前記エクステント再分配アプリケーション116が前記既存RAIDアレイ106a...106nの均衡化を済ませたブロック400から開始している。
制御は、新規RAIDアレイ108a...108mが前記既存RAIDアレイ106a...106nに追加されるブロック402に進む。エクステントは引き続き、追加された前記エクステントのラウンド・ロビン分配方式に従って、前記既存RAIDアレイ106a...106nと前記新規RAIDアレイ108a...108mの両方に追加されていく(ブロック404)。
前記エクステント再分配アプリケーション116は、前記エクステントのリバランシングが必要であるかどうか判定する(ブロック406)。エクステントのリバランシングが必要でない場合には、制御がブロック404に戻り、一方、エクステントのリバランシングが必要である場合には、前記エクステント再分配アプリケーション116は前記複数のRAIDアレイに渡るエクステントのリバランシングを開始する(ブロック408)。
ある実施形態において、前記エクステント再分配アプリケーション116は、RAIDアレイの総数の2乗となるようにMをセットする(ブロック410)。次に、ブロック412では、各々のボリュームについて、前記エクステント再分配アプリケーション116は、前記既存RAIDアレイ106a...106n内及び前記新規追加RAIDアレイ108a...108m内のエクステントの数をMで割ってその商と余りを求める。制御はブロック414に進み、ここでは、エクステント群の数が前記商の値に割り当てられ、実施形態において各々の群に1つの古いボリュームと1つの新しいボリュームとからのエクステントが含まれる。
前記エクステント再分配アプリケーション116は、各々のエクステント群について、各々のRAIDアレイ内のエクステントの数が等しくなるように、また、実施形態において各々の群を最小限のコピーで再配置して、エクステントを全てのRAIDアレイの間で交換する(ブロック416)。
制御はブロック418に進み、そこで前記エクステント再分配アプリケーション116は前記余りがゼロであるかどうかを判定する。ゼロである場合には、制御はブロック424に進み、前記リバランシング処理は終了する。ゼロでない場合には、余りの数のエクステントが前記RAIDアレイ106a...106n、108a...108mの間で可能な限り均等に分配され(ブロック420)、制御がブロック424に進んで前記リバランシング処理が終了する。
したがって、図4は、前記新規追加RAIDアレイ108a...108mに一定数のエクステントが記憶された後に、前記エクステントがリバランシングされる実施形態を示している。
図1〜4は、エクステントのリバランシングを行う実施形態を示しており、一部の実施形態ではリバランシング処理が前記新しいランクの追加の直後に実施されるが、前記ランクは依然として空の状態である。他の実施形態では、前記リバランシング処理を実施する前にボリュームの割付けが行われることもある。
ある諸代替実施形態では、前記既存の1組の記憶ユニット内の記憶ユニット、例えばRAIDアレイ等の数と、記憶ユニットの総数との最小公倍数が求められる。各々に前記複数のエクステントから選択された前記最小公倍数のエクステントが割り当てられる複数の記憶ユニット群が生成される。1つの群は、前記1つの群に割り当てられた前記エクステントを前記総数の記憶ユニットの間で均等に再分配することによって処理され、前記再分配は、前記第1の1組の記憶ユニットから前記第2の1組の記憶ユニットへの最小数のコピー処理を実施することに基づいて行われる。
(追加的な実施形態の詳細)
記載の前記技法は、ソフトウェア、ファームウェア、マイクロコード、ハードウェア、又はそれらの任意の組合せ、あるいはそれら全てが関与する方法、装置、又は製品として実施することができる。本明細書で使用する「製品(article of manufacture)」という前記用語は、媒体に実装されるコード又はロジックを指し、そのような媒体は、ハードウェア・ロジック(例えば、集積回路チップ、プログラマブル・ゲート・アレイ(PGA)、特定用途向け集積回路(ASIC)等)、あるいは、磁気記憶媒体(例えば、ハード・ディスク・ドライブ、フレキシブル・ディスク、テープ等)、光記憶装置(CD−ROM、光ディスク等)、揮発性及び不揮発性メモリ・デバイス(例えば、電気的消去再書込可能読取り専用メモリ(EEPROM)、読取り専用メモリ(ROM)、再書込可能読取り専用メモリ(PROM)、ランダム・アクセス・メモリ(RAM)、ダイナミック・ランダム・アクセス・メモリ(DRAM)、静的ランダム・アクセス・メモリ(SRAM)、フラッシュ、ファームウェア、プログラマブル・ロジック等)のようなコンピュータ可読媒体を含んでいる。前記コンピュータ可読媒体内のコードは、コンピュータ・プログラムとして等、プロセッサによってアクセスされ実行される。前記コード又はロジックがその内部でコード化される前記媒体は、空間内又は光ファイバや銅線等のような伝送媒体内を伝搬する伝送信号も包含している。前記コード又はロジックがその内部でコード化される前記伝送信号は更に、無線信号、衛星伝送、電波、赤外線信号、Bluetooth(R)等を含んでいる。前記コード又はロジックがその内部でコード化される前記伝送信号は、送信局から送信し受信局で受信することができ、前記伝送信号内でコード化された前記コード又はロジックは、復号して前記受信局及び送信局すなわちデバイスのハードウェア内又はコンピュータ可読媒体内に、コンピュータ・プログラムとして等、記憶することができる。更に、前記「製品」は、前記コードがその内部で実装され処理され実行されるハードウェア構成要素とソフトウェア構成要素の組合せを含むものであってもよい。言うまでもなく、当業者なら諸実施形態の範囲から逸脱することなく多くの修正を施すことができ、前記製品が任意の情報保持媒体を具備することを理解するであろう。例えば、前記製品は、機械によって実行されたときに処理が実施されることとなる命令をその内部に記憶した記憶媒体を含むものである。
ある実施形態は、全体としてハードウェアの実施形態の形を取ることも、全体としてソフトウェアの実施形態の形を取ることもでき、ハードウェア要素とソフトウェア要素の両方を含む一実施形態とすることもできる。好ましい一実施形態では、本発明は、必ずしもそれだけに限定されるわけではないが、ファームウェア、常駐ソフトウェア、マイクロコード等を含むソフトウェアの形で実施される。
更に、ある実施形態は、コンピュータ又は任意の命令実行システムによって使用され又はそれらと共に使用されるプログラム・コードを備えるコンピュータ使用可能媒体又はコンピュータ可読媒体からアクセス可能なコンピュータ・プログラムの形を取ることもできる。本明細書では、コンピュータ使用可能媒体又はコンピュータ可読媒体は、前記命令実行システム、機器、又はデバイスによって使用され又はそれらと共に使用される前記プログラムを収容し、記憶し、通信し、伝搬し、又は移送することができる任意の機器であってもよい。前記媒体は、電子系、磁気系、光学系、電磁気系、赤外線系、又は半導体系(すなわち装置又はデバイス)であっても、伝搬媒体であってもよい。コンピュータ可読媒体の例としては、半導体又は固体メモリ、磁気テープ、取り外し可能コンピュータ・ディスケット、ランダム・アクセス・メモリ(RAM)、読取り専用メモリ(ROM)、固定磁気ディスク、及び光ディスクが挙げられる。光ディスクの現行例としては、コンパクト・ディスク−読取り専用メモリ(CD−ROM)、コンパクト・ディスク−読出し/書込み(CD−R/W)、及びDVDが挙げられる。
「ある実施形態(certain embodiments)」、「一実施形態(an embodiment)」、「実施形態(embodiment)」、「複数の実施形態(embodiments)」、「前記実施形態(the embodiment)」、「前記複数の実施形態(the embodiments)」、「1つ以上の実施形態(one or more embodiments)」、「一部の実施形態(some embodiments)」、及び「一実施形態(one embodiment)」等の前記用語は、特に明記しない限り、単数または複数(ただし、全部ではない)の実施形態を意味する。「含む(including)」、「有する、具備する、含む(comprising)」、「有する(having)」等の前記用語及びそれらの変化形は、特に明記しない限り、「〜を含むがこれに限定されるものではない(including but not limited to)」ことを意味する。列挙した前記項目リストは、特に明記しない限り、前記項目のいずれか又は全てが相互に排他的であることを意味するものではない。「a」、「an」、及び「the」等の前記用語は、特に明記しない限り、「単数または複数の(one or more)」を意味する。
互いに通信するデバイスは、特に明記しない限り、必ずしも連続的に互いに通信する必要はない。更に、互いに通信するデバイスは、直接通信することも、単数または複数の媒介物を介して間接的に通信することもできる。更に、構成要素が互いに通信する一実施形態の記載は、全てのそのような構成要素が必要とされることを意味するものではない。それどころか、多様な任意の構成要素を説明することにより、多岐に渡る可能な諸実施形態を説明するものである。
更に、処理ステップ、方法ステップ、アルゴリズム等が連続した順番で説明されているかもしれないが、そのような処理、方法、及びアルゴリズムは別の順番で機能するように構成されてもよい。言い換えれば、記載され得るステップのいかなる順序または順番も、前記ステップがその順番通りに実施されなければならないことを必ずしも示唆しているわけではない。本明細書に記載される処理の前記ステップは、実用的な任意の順番で実施することができる。更に、一部のステップは、同時に、並列的に、あるいは並行して実施することもできる。
本明細書に単一のデバイス又は物品が記載されている場合にも、単一のデバイス/物品の代わりに、(それらが協働するものであるか否かを問わず)2つ以上のデバイス/物品を使用できることが明らかである。同様に、(それらが協働するものであるか否かを問わず)本明細書に2つ以上のデバイス又は物品が記載されている場合にも、前記2つ以上のデバイス又は物品の代わりに、単一のデバイス/物品を使用できることが明らかである。代わりに、デバイスの前記機能又は前記特徴あるいはその両方は、そのような機能/特徴を有するものとして明示的に記載されてはいない単数または複数の他のデバイスによって実施することもできる。したがって、他の実施形態は、必ずしも前記デバイス自体を含んでいる必要はない。
図5は、ある実施形態ではそのコンピュータ・アーキテクチャに従って図1の前記コンピューティング環境100の前記記憶装置制御ユニット102を実装することができる、1つの例示的なコンピュータ・システム500を示している。前記コンピュータ・システム500は、システムと呼ばれることもあり、ある実施形態においてプロセッサ504を含んだ回路502を含むことができる。前記コンピュータ・システム500はまた、メモリ506(例えば、揮発性メモリ・デバイス等)と、記憶装置508とを含んでいてもよい。前記コンピュータ・システム500のある一定の要素の中には、前記記憶装置制御ユニット102内で見受けられるものもあればそうでないものもある。前記記憶装置508は、不揮発性メモリ・デバイス(例えば、EEPROM、ROM、PROM、RAM、DRAM、SRAM、フラッシュ、ファームウェア、プログラマブル・ロジック等)、磁気ディスク・ドライブ、光ディスク・ドライブ、テープ・ドライブ等を含むことができる。前記記憶装置508は、内部記憶装置、外付け記憶装置、又はネットワーク・アクセス可能な記憶装置あるいはそれら全てを具備していてもよい。前記コンピュータ・システム500は、前記メモリ506にロードして前記プロセッサ504又は回路502によって実行できるコード512を含んだプログラム・ロジック510を含むものであってもよい。ある実施形態において、コード512を含む前記プログラム・ロジック510は、コンピュータ・プログラムとして等、前記記憶装置508に記憶される。また、他の実施形態において、前記プログラム・ロジック510は、前記回路502内に実装される。したがって、図5は前記プログラム・ロジック510をその他の要素とは別個に示しているが、前記プログラム・ロジック510は、前記メモリ506内又は前記回路502内あるいはその両方に実装されてもよい。
ある実施形態は、人間又は自動処理によって演算命令を配備することによりコンピュータ可読コードをコンピューティング・システムに統合し、前記コードが前記コンピューティング・システムと連動して、記載の前記諸実施形態の前記処理を実施できるようにした方法を対象にしてもよい。
図2及び4に示される前記処理の内の少なくともいくつかは、並列的に処理することも逐次的に処理することもできる。諸代替実施形態では、前記処理の一部を別の順番で実施し、修正し、あるいは省略することもできる。
更に、前記ソフトウェア構成要素及びハードウェア構成要素は、例示のために別個のモジュールの形で説明されてきた。そのような構成要素は、より少ない数の構成要素に統合することも、より多くの数の構成要素に分割することもできる。更に、特定の構成要素によって実施されるものとして記載した一定の処理は、他の構成要素によって実施されてもよい。
図1〜5に示され又は言及される前記データ構造及び構成要素は、特定のタイプの情報を有するものとして説明されている。諸代替実施形態では、前記データ構造及び構成要素を異なる形で構造化してもよく、前記図面に示され又は言及されるフィールドよりも少ないフィールド又は多くのフィールドを有していてもよく、あるいは、それとは異なるフィールド又は機能を有していてもよい。したがって、前記諸実施形態の前述の記載は、例示及び説明のために提示されてきた。前記諸実施形態を余すところのないものとし、又は開示の厳密な形態に限定することは、本出願人の意図するところではない。上記の教示に照らせば多くの修正形態及び変更形態が可能である。
ある実施形態に係る既存RAIDアレイと、新規追加RAIDアレイとを備える記憶装置制御ユニットを含むコンピューティング環境のブロック図である。 前記新規追加RAIDアレイが空の状態である場合に、ある実施形態に従って全てのRAIDアレイに渡ってエクステントのリバランシングを行う流れ図である。 前記新規追加RAIDアレイが空の状態である場合に、ある実施形態に従って全てのRAIDアレイに渡ってエクステントのリバランシングを行う一例を示す図である。 複数のエクステントが前記新規追加RAIDアレイに記憶されている場合に、ある実施形態に従って全てのRAIDアレイに渡ってエクステントのリバランシングを行う流れ図である。 ある実施形態において、そのアーキテクチャに従って図1の前記コンピューティング環境の前記記憶装置制御ユニットを実装することができる、コンピューティング・システムのアーキテクチャを示す図である。
符号の説明
100 コンピューティング環境
102 記憶装置制御ユニット
104 記憶装置
106a、106b...、106n 既存RAIDアレイ
108a、108b、...108m 新規追加RAIDアレイ
110a、110b、...110p、112a、112b、...112q、114a、114b、...114r エクステント
116 エクステント再分配アプリケーション
500 コンピュータ・システム

Claims (12)

  1. 制御装置に結合された第1の1組の記憶ユニットに複数のエクステントを記憶するステップと、
    前記制御装置に第2の1組の記憶ユニットが結合されているか判定するステップと、
    前記第1の1組の記憶ユニット内と前記第2の1組の記憶ユニット内とに含まれる全ての記憶ユニットの間で前記複数のエクステントを分配するステップと、
    を有し、
    前記第1の1組の記憶ユニットは、いくつかの既存RAIDアレイを有し、前記第2の1組の記憶ユニットは、空の状態の新規追加RAIDアレイを有し、前記既存RAIDアレイと前記新規追加RAIDアレイとは、合わせて総数のRAIDアレイを有し、
    既存RAIDアレイの数にRAIDアレイの前記総数を掛けた結果を求めるステップと、
    前記複数のエクステントの数を前記結果で割った商を求めるステップと、
    各々に前記結果と等しい数のエクステントが割り当てられる、前記商と等しい数の群を生成するステップと、
    1つの群に割り当てられた前記エクステントを前記総数のRAIDアレイの間で均等に再分配することによって前記1つの群を処理するステップと、
    を更に有する、方法。
  2. 制御装置に結合された第1の1組の記憶ユニットに複数のエクステントを記憶するステップと、
    前記制御装置に第2の1組の記憶ユニットが結合されているか判定するステップと、
    前記第1の1組の記憶ユニット内と前記第2の1組の記憶ユニット内とに含まれる全ての記憶ユニットの間で前記複数のエクステントを分配するステップと、
    を有し、
    前記複数のエクステントは、第1の複数のエクステントであり、前記第1の1組の記憶ユニットと前記第2の1組の記憶ユニットとは、合わせて総数の記憶ユニットを有し、
    前記第2の1組の記憶ユニットに第2の複数のエクステントを記憶して、前記第1の複数のエクステントと前記第2の複数のエクステントとが総数のエクステントを有するようにするステップと、
    記憶ユニットの前記総数を2乗した結果を求めるステップと、
    エクステントの前記総数を前記結果で割った商を求めるステップと、
    各々に前記結果と等しい数のエクステントが割り当てられ、各々が前記第1の1組の記憶ユニットと前記第2の1組の記憶ユニットとから選択されたエクステントを含む、前記商と等しい数の群を生成するステップと、
    1つの群に割り当てられた前記エクステントを前記総数の記憶ユニットの間で均等に再分配することによって前記1つの群を処理するステップと、
    を更に有する、方法。
  3. 制御装置に結合された第1の1組の記憶ユニットに複数のエクステントを記憶するステップと、
    前記制御装置に第2の1組の記憶ユニットが結合されているか判定するステップと、
    前記第1の1組の記憶ユニット内と前記第2の1組の記憶ユニット内とに含まれる全ての記憶ユニットの間で前記複数のエクステントを分配するステップと、
    を有し、
    前記第1の1組の記憶ユニットと前記第2の1組の記憶ユニットとは、合わせて総数の記憶ユニットを有し、
    前記第1の1組の記憶ユニット内の記憶ユニットの数と、記憶ユニットの前記総数との最小公倍数を求めるステップと、
    各々に前記複数のエクステントから選択された前記最小公倍数のエクステントが割り当てられる、複数の記憶ユニット群を生成するステップと、
    1つの群に割り当てられた前記エクステントを前記総数の記憶ユニットの間で均等に再分配することによって前記1つの群を処理するステップと、を更に有し、
    前記再分配は、前記第1の1組の記憶ユニットから前記第2の1組の記憶ユニットへの最小数のコピー処理を実施することに基づいて行われる、
    方法。
  4. 第1の1組の記憶ユニットに結合され、第2の1組の記憶ユニットに結合可能なシステムであって、
    メモリと、
    前記メモリに結合され、
    (i)前記第1の1組の記憶ユニットに複数のエクステントを記憶し、
    (ii)前記システムに前記第2の1組の記憶ユニットが結合されているか判定し、
    (iii)前記第1の1組の記憶ユニット内と前記第2の1組の記憶ユニット内とに含まれる全ての記憶ユニットの間で前記複数のエクステントを分配する
    ように動作可能なプロセッサと、
    を有し、
    前記第1の1組の記憶ユニットは、いくつかの既存RAIDアレイを有し、前記第2の1組の記憶ユニットは、空の状態の新規追加RAIDアレイを有し、前記既存RAIDアレイと前記新規追加RAIDアレイとは、合わせて総数のRAIDアレイを有し、前記プロセッサは更に、
    既存RAIDアレイの数にRAIDアレイの前記総数を掛けた結果を求め、
    前記複数のエクステントの数を前記結果で割った商を求め、
    各々に前記結果と等しい数のエクステントが割り当てられる、前記商と等しい数の群を生成し、
    1つの群に割り当てられた前記エクステントを前記総数のRAIDアレイの間で均等に再分配することによって前記1つの群を処理する
    ように動作可能である、システム。
  5. 第1の1組の記憶ユニットに結合され、第2の1組の記憶ユニットに結合可能なシステムであって、
    メモリと、
    前記メモリに結合され、
    (i)前記第1の1組の記憶ユニットに複数のエクステントを記憶し、
    (ii)前記システムに前記第2の1組の記憶ユニットが結合されているか判定し、
    (iii)前記第1の1組の記憶ユニット内と前記第2の1組の記憶ユニット内とに含まれる全ての記憶ユニットの間で前記複数のエクステントを分配する
    ように動作可能なプロセッサと、
    を有し、
    前記複数のエクステントは、第1の複数のエクステントであり、前記第1の1組の記憶ユニットと前記第2の1組の記憶ユニットとは、合わせて総数の記憶ユニットを有し、前記プロセッサは更に、
    前記第2の1組の記憶ユニットに第2の複数のエクステントを記憶して、前記第1の複数のエクステントと前記第2の複数のエクステントとが総数のエクステントを有するようにし、
    記憶ユニットの前記総数を2乗した結果を求め、
    エクステントの前記総数を前記結果で割った商を求め、
    各々に前記結果と等しい数のエクステントが割り当てられ、各々が前記第1の1組の記憶ユニットと前記第2の1組の記憶ユニットとから選択されたエクステントを含む、前記商と等しい数の群を生成し、
    1つの群に割り当てられた前記エクステントを前記総数の記憶ユニットの間で均等に再分配することによって前記1つの群を処理する
    ように動作可能である、システム。
  6. 第1の1組の記憶ユニットに結合され、第2の1組の記憶ユニットに結合可能なシステムであって、
    メモリと、
    前記メモリに結合され、
    (i)前記第1の1組の記憶ユニットに複数のエクステントを記憶し、
    (ii)前記システムに前記第2の1組の記憶ユニットが結合されているか判定し、
    (iii)前記第1の1組の記憶ユニット内と前記第2の1組の記憶ユニット内とに含まれる全ての記憶ユニットの間で前記複数のエクステントを分配する
    ように動作可能なプロセッサと、
    を有し、
    前記第1の1組の記憶ユニットと前記第2の1組の記憶ユニットとは、合わせて総数の記憶ユニットを有し、前記プロセッサは更に、
    前記第1の1組の記憶ユニット内の記憶ユニットの数と、記憶ユニットの前記総数との最小公倍数を求め、
    各々に前記複数のエクステントから選択された前記最小公倍数のエクステントが割り当てられる、複数の記憶ユニット群を生成し、
    1つの群に割り当てられた前記エクステントを前記総数の記憶ユニットの間で均等に再分配することによって前記1つの群を処理するように動作可能であり、
    前記再分配は、前記第1の1組の記憶ユニットから前記第2の1組の記憶ユニットへの最小数のコピー処理を実施することに基づいて行われる、
    システム。
  7. 制御装置に結合された第1の1組の記憶ユニットと、前記制御装置に結合可能な第2の1組の記憶ユニットとを制御する製品であって、
    前記制御装置に結合された前記第1の1組の記憶ユニットに複数のエクステントを記憶するステップと、
    前記制御装置に第2の1組の記憶ユニットが結合されているか判定するステップと、
    前記第1の1組の記憶ユニット内と前記第2の1組の記憶ユニット内とに含まれる全ての記憶ユニットの間で前記複数のエクステントを分配するステップと、
    を有する処理を発生させ、
    前記第1の1組の記憶ユニットは、いくつかの既存RAIDアレイを有し、前記第2の1組の記憶ユニットは、空の状態の新規追加RAIDアレイを有し、前記既存RAIDアレイと前記新規追加RAIDアレイとは、合わせて総数のRAIDアレイを有し、前記処理は更に、
    既存RAIDアレイの数にRAIDアレイの前記総数を掛けた結果を求めるステップと、
    前記複数のエクステントの数を前記結果で割った商を求めるステップと、
    各々に前記結果と等しい数のエクステントが割り当てられる、前記商と等しい数の群を生成するステップと、
    1つの群に割り当てられた前記エクステントを前記総数のRAIDアレイの間で均等に再分配することによって前記1つの群を処理するステップと、
    を有する、製品。
  8. 制御装置に結合された第1の1組の記憶ユニットと、前記制御装置に結合可能な第2の1組の記憶ユニットとを制御する製品であって、
    前記制御装置に結合された前記第1の1組の記憶ユニットに複数のエクステントを記憶するステップと、
    前記制御装置に第2の1組の記憶ユニットが結合されているか判定するステップと、
    前記第1の1組の記憶ユニット内と前記第2の1組の記憶ユニット内とに含まれる全ての記憶ユニットの間で前記複数のエクステントを分配するステップと、
    を有する処理を発生させ、
    前記複数のエクステントは、第1の複数のエクステントであり、前記第1の1組の記憶ユニットと前記第2の1組の記憶ユニットとは、合わせて総数の記憶ユニットを有し、前記処理は更に、
    前記第2の1組の記憶ユニットに第2の複数のエクステントを記憶して、前記第1の複数のエクステントと前記第2の複数のエクステントとが総数のエクステントを有するようにするステップと、
    記憶ユニットの前記総数を2乗した結果を求めるステップと、
    エクステントの前記総数を前記結果で割った商を求めるステップと、
    各々に前記結果と等しい数のエクステントが割り当てられ、各々が前記第1の1組の記憶ユニットと前記第2の1組の記憶ユニットとから選択されたエクステントを含む、前記商と等しい数の群を生成するステップと、
    1つの群に割り当てられた前記エクステントを前記総数の記憶ユニットの間で均等に再分配することによって前記1つの群を処理するステップと、
    を有する、製品。
  9. 制御装置に結合された第1の1組の記憶ユニットと、前記制御装置に結合可能な第2の1組の記憶ユニットとを制御する製品であって、
    前記制御装置に結合された前記第1の1組の記憶ユニットに複数のエクステントを記憶するステップと、
    前記制御装置に第2の1組の記憶ユニットが結合されているか判定するステップと、
    前記第1の1組の記憶ユニット内と前記第2の1組の記憶ユニット内とに含まれる全ての記憶ユニットの間で前記複数のエクステントを分配するステップと、
    を有する処理を発生させ、
    前記第1の1組の記憶ユニットと前記第2の1組の記憶ユニットとは、合わせて総数の記憶ユニットを有し、前記処理は更に、
    前記第1の1組の記憶ユニット内の記憶ユニットの数と、記憶ユニットの前記総数との最小公倍数を求めるステップと、
    各々に前記複数のエクステントから選択された前記最小公倍数のエクステントが割り当てられる、複数の記憶ユニット群を生成するステップと、
    1つの群に割り当てられた前記エクステントを前記総数の記憶ユニットの間で均等に再分配することによって前記1つの群を処理するステップと、を有し、
    前記再分配は、前記第1の1組の記憶ユニットから前記第2の1組の記憶ユニットへの最小数のコピー処理を実施することに基づいて行われる、
    製品。
  10. コンピュータ可読コードをコンピューティング・システムに統合するステップを含む、コンピューティング・インフラストラクチャを配備する方法であって、前記コードは前記コンピューティング・システムと連動して、
    前記コンピューティング・システムに結合された第1の1組の記憶ユニットに複数のエクステントを記憶するステップと、
    前記コンピューティング・システムに第2の1組の記憶ユニットが結合されているか判定するステップと、
    前記第1の1組の記憶ユニット内と前記第2の1組の記憶ユニット内とに含まれる全ての記憶ユニットの間で前記複数のエクステントを分配するステップと、
    を実施することができ、
    前記第1の1組の記憶ユニットは、いくつかの既存RAIDアレイを有し、前記第2の1組の記憶ユニットは、空の状態の新規追加RAIDアレイを有し、前記既存RAIDアレイと前記新規追加RAIDアレイとは、合わせて総数のRAIDアレイを有し、
    既存RAIDアレイの数にRAIDアレイの前記総数を掛けた結果を求めるステップと、
    前記複数のエクステントの数を前記結果で割った商を求めるステップと、
    各々に前記結果と等しい数のエクステントが割り当てられる、前記商と等しい数の群を生成するステップと、
    1つの群に割り当てられた前記エクステントを前記総数のRAIDアレイの間で均等に再分配することによって前記1つの群を処理するステップと、
    を更に有する、コンピューティング・インフラストラクチャを配備する方法。
  11. コンピュータ可読コードをコンピューティング・システムに統合するステップを含む、コンピューティング・インフラストラクチャを配備する方法であって、前記コードは前記コンピューティング・システムと連動して、
    前記コンピューティング・システムに結合された第1の1組の記憶ユニットに複数のエクステントを記憶するステップと、
    前記コンピューティング・システムに第2の1組の記憶ユニットが結合されているか判定するステップと、
    前記第1の1組の記憶ユニット内と前記第2の1組の記憶ユニット内とに含まれる全ての記憶ユニットの間で前記複数のエクステントを分配するステップと、
    を実施することができ、
    前記複数のエクステントは、第1の複数のエクステントであり、前記第1の1組の記憶ユニットと前記第2の1組の記憶ユニットとは、合わせて総数の記憶ユニットを有し、
    前記第2の1組の記憶ユニットに第2の複数のエクステントを記憶して、前記第1の複数のエクステントと前記第2の複数のエクステントとが総数のエクステントを有するようにするステップと、
    記憶ユニットの前記総数を2乗した結果を求めるステップと、
    エクステントの前記総数を前記結果で割った商を求めるステップと、
    各々に前記結果と等しい数のエクステントが割り当てられ、各々が前記第1の1組の記憶ユニットと前記第2の1組の記憶ユニットとから選択されたエクステントを含む、前記商と等しい数の群を生成するステップと、
    1つの群に割り当てられた前記エクステントを前記総数の記憶ユニットの間で均等に再分配することによって前記1つの群を処理するステップと、
    を更に有する、コンピューティング・インフラストラクチャを配備する方法。
  12. コンピュータ可読コードをコンピューティング・システムに統合するステップを含む、コンピューティング・インフラストラクチャを配備する方法であって、前記コードは前記コンピューティング・システムと連動して、
    前記コンピューティング・システムに結合された第1の1組の記憶ユニットに複数のエクステントを記憶するステップと、
    前記コンピューティング・システムに第2の1組の記憶ユニットが結合されているか判定するステップと、
    前記第1の1組の記憶ユニット内と前記第2の1組の記憶ユニット内とに含まれる全ての記憶ユニットの間で前記複数のエクステントを分配するステップと、
    を実施することができ、
    前記第1の1組の記憶ユニットと前記第2の1組の記憶ユニットとは、合わせて総数の記憶ユニットを有し、
    前記第1の1組の記憶ユニット内の記憶ユニットの数と、記憶ユニットの前記総数との最小公倍数を求めるステップと、
    各々に前記複数のエクステントから選択された前記最小公倍数のエクステントが割り当てられる、複数の記憶ユニット群を生成するステップと、
    1つの群に割り当てられた前記エクステントを前記総数の記憶ユニットの間で均等に再分配することによって前記1つの群を処理するステップと、を更に有し、
    前記再分配は、前記第1の1組の記憶ユニットから前記第2の1組の記憶ユニットへの最小数のコピー処理を実施することに基づいて行われる、
    コンピューティング・インフラストラクチャを配備する方法。
JP2006287230A 2005-11-23 2006-10-23 ストライピング済みディスク・データのリバランシングを行う方法、システム、及び製品(ストライピング済みディスク・データのリバランシング) Active JP4856515B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/286,482 US7404036B2 (en) 2005-11-23 2005-11-23 Rebalancing of striped disk data
US11/286482 2005-11-23

Publications (2)

Publication Number Publication Date
JP2007149068A JP2007149068A (ja) 2007-06-14
JP4856515B2 true JP4856515B2 (ja) 2012-01-18

Family

ID=38054810

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006287230A Active JP4856515B2 (ja) 2005-11-23 2006-10-23 ストライピング済みディスク・データのリバランシングを行う方法、システム、及び製品(ストライピング済みディスク・データのリバランシング)

Country Status (4)

Country Link
US (3) US7404036B2 (ja)
JP (1) JP4856515B2 (ja)
CN (1) CN100561416C (ja)
TW (1) TWI408549B (ja)

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7841533B2 (en) 2003-11-13 2010-11-30 Metrologic Instruments, Inc. Method of capturing and processing digital images of an object within the field of view (FOV) of a hand-supportable digitial image capture and processing system
US7404036B2 (en) * 2005-11-23 2008-07-22 International Business Machines Corporation Rebalancing of striped disk data
JP5379956B2 (ja) * 2007-03-19 2013-12-25 株式会社日立製作所 ストレージ装置及び記憶領域配置方法
JP5332364B2 (ja) * 2007-10-16 2013-11-06 富士通株式会社 分散ストレージ管理プログラム、分散ストレージ管理装置、および分散ストレージ管理方法
EP2338155A4 (en) * 2008-10-23 2016-08-17 Hewlett Packard Development Co DIRECTLY INSTALLED STORAGE SYSTEM AND METHOD FOR IMPLEMENTING MULTIPLE SIMULTANEOUS MEMORY CHEMAS
WO2010122674A1 (ja) 2009-04-23 2010-10-28 株式会社日立製作所 計算機システム及びその制御方法
JP5801189B2 (ja) * 2009-04-23 2015-10-28 株式会社日立製作所 計算機システム及びその制御方法
US8230189B1 (en) * 2010-03-17 2012-07-24 Symantec Corporation Systems and methods for off-host backups of striped volumes
US8527677B1 (en) * 2010-06-25 2013-09-03 Altera Corporation Serial communications links with bonded first-in-first-out buffer circuitry
US8307014B2 (en) 2010-08-25 2012-11-06 International Business Machines Corporation Database rebalancing in hybrid storage environment
WO2012090239A1 (en) * 2010-12-27 2012-07-05 Hitachi, Ltd. Storage system and management method of control information therein
US8972676B2 (en) * 2011-01-28 2015-03-03 International Business Machines Corporation Assigning device adaptors and background tasks to use to copy source extents to target extents in a copy relationship
US9015411B2 (en) * 2011-12-02 2015-04-21 Compellent Technologies System and method for unbalanced raid management
WO2013093994A1 (ja) 2011-12-19 2013-06-27 富士通株式会社 ストレージシステム、データリバランシングプログラム及びデータリバランシング方法
KR101734160B1 (ko) * 2016-04-28 2017-05-11 주식회사 디에이아이오 작업부하 편중을 완화하는 저장 장치
JP6253752B1 (ja) * 2016-11-29 2017-12-27 株式会社東芝 階層化ストレージシステム
US10678643B1 (en) * 2017-04-26 2020-06-09 EMC IP Holding Company LLC 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
US10324662B2 (en) * 2017-08-28 2019-06-18 International Business Machines Corporation Rebalancing of the first extents of logical volumes among a plurality of ranks
CN109725830B (zh) * 2017-10-27 2022-02-08 伊姆西Ip控股有限责任公司 管理独立磁盘冗余阵列的方法、设备和存储介质
US10628061B2 (en) * 2018-04-27 2020-04-21 Veritas Technologies Llc Systems and methods for rebalancing striped information across multiple storage devices
CN110737402B (zh) * 2018-07-20 2023-12-08 伊姆西Ip控股有限责任公司 管理存储系统的方法、设备和计算机存储介质
US10496316B1 (en) * 2018-10-31 2019-12-03 EMC IP Holding Company LLC Forming storage containers from extents having different widths within a group of storage devices
CN111858188A (zh) * 2019-04-29 2020-10-30 伊姆西Ip控股有限责任公司 存储管理的方法、设备和计算机程序产品
US11023147B2 (en) * 2019-10-10 2021-06-01 EMC IP Holding Company LLC Mapping storage extents into resiliency groups
CN112748864B (zh) * 2019-10-31 2024-04-19 伊姆西Ip控股有限责任公司 分配存储盘的方法、电子设备和计算机程序产品
CN112748862A (zh) * 2019-10-31 2021-05-04 伊姆西Ip控股有限责任公司 用于管理盘的方法、电子设备和计算机程序产品
CN115220646A (zh) * 2021-04-21 2022-10-21 伊姆西Ip控股有限责任公司 用于管理存储系统的方法、设备和计算机程序产品

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5502836A (en) 1991-11-21 1996-03-26 Ast Research, Inc. Method for disk restriping during system operation
US5809224A (en) 1995-10-13 1998-09-15 Compaq Computer Corporation On-line disk array reconfiguration
US5758118A (en) 1995-12-08 1998-05-26 International Business Machines Corporation Methods and data storage devices for RAID expansion by on-line addition of new DASDs
JP3170455B2 (ja) 1996-05-27 2001-05-28 インターナショナル・ビジネス・マシーンズ・コーポレ−ション データ記憶システムにおけるデータの再配置方法、そのシステムに記憶されたデータのアクセス方法及びデータ記憶システム
JP3748631B2 (ja) * 1996-08-19 2006-02-22 株式会社エクシング ディスクアレイにおける論理記憶領域統合方法およびディスクアレイ装置
US6061761A (en) * 1997-10-06 2000-05-09 Emc Corporation Method for exchanging logical volumes in a disk array storage device in response to statistical analyses and preliminary testing
US5933834A (en) 1997-10-16 1999-08-03 International Business Machines Incorporated System and method for re-striping a set of objects onto an exploded array of storage units in a computer system
US6405284B1 (en) * 1998-10-23 2002-06-11 Oracle Corporation Distributing data across multiple data storage devices in a data storage system
JP2000242434A (ja) * 1998-12-22 2000-09-08 Hitachi Ltd 記憶装置システム
US6425052B1 (en) * 1999-10-28 2002-07-23 Sun Microsystems, Inc. Load balancing configuration for storage arrays employing mirroring and striping
US6629202B1 (en) * 1999-11-29 2003-09-30 Microsoft Corporation Volume stacking model
US6651154B1 (en) 2000-07-11 2003-11-18 International Business Machines Corporation Method, system, and program for expanding the storage space in an array of storage units
US20020156973A1 (en) * 2001-01-29 2002-10-24 Ulrich Thomas R. Enhanced disk array
US20020124137A1 (en) * 2001-01-29 2002-09-05 Ulrich Thomas R. Enhancing disk array performance via variable parity based load balancing
US6862692B2 (en) * 2001-01-29 2005-03-01 Adaptec, Inc. Dynamic redistribution of parity groups
US6871263B2 (en) * 2001-08-28 2005-03-22 Sedna Patent Services, Llc Method and apparatus for striping data onto a plurality of disk drives
JP2003216348A (ja) * 2001-11-14 2003-07-31 Hitachi Ltd 記憶装置の管理方法および管理装置
WO2003077111A1 (fr) * 2002-03-13 2003-09-18 Fujitsu Limited Controleur pour dispositif raid
US7159150B2 (en) * 2002-12-31 2007-01-02 International Business Machines Corporation Distributed storage system capable of restoring data in case of a storage failure
JP4215606B2 (ja) * 2003-09-24 2009-01-28 日本電気株式会社 ディスクアレイ装置および記憶容量拡張方法ならびにプログラム
US7366837B2 (en) * 2003-11-24 2008-04-29 Network Appliance, Inc. Data placement technique for striping data containers across volumes of a storage system cluster
TWI256612B (en) * 2003-12-25 2006-06-11 Yung-Chau Chr RAID system with fail over and load balance
US7617370B2 (en) * 2005-04-29 2009-11-10 Netapp, Inc. Data allocation within a storage system architecture
US7404036B2 (en) * 2005-11-23 2008-07-22 International Business Machines Corporation Rebalancing of striped disk data
US20070143541A1 (en) * 2005-12-19 2007-06-21 Lsi Logic Corporation Methods and structure for improved migration of raid logical volumes

Also Published As

Publication number Publication date
CN100561416C (zh) 2009-11-18
US20080235449A1 (en) 2008-09-25
US7818501B2 (en) 2010-10-19
US7404036B2 (en) 2008-07-22
CN1971499A (zh) 2007-05-30
US20080244178A1 (en) 2008-10-02
JP2007149068A (ja) 2007-06-14
US20070118689A1 (en) 2007-05-24
TWI408549B (zh) 2013-09-11
TW200805135A (en) 2008-01-16

Similar Documents

Publication Publication Date Title
JP4856515B2 (ja) ストライピング済みディスク・データのリバランシングを行う方法、システム、及び製品(ストライピング済みディスク・データのリバランシング)
US8140785B2 (en) Updating metadata in a logical volume associated with a storage controller for data units indicated in a data structure
US7953929B1 (en) Expanding the storage capacity of a virtualized data storage system
CN101506779B (zh) 生成存储系统命令
ES2720482T3 (es) Equilibrio de carga en sistemas de almacenamiento en grupos
US9158471B2 (en) Replicating tracks from a first storage site to a second and third storage sites
CN107807794A (zh) 一种数据存储方法和装置
US10353787B2 (en) Data stripping, allocation and reconstruction
CA2644997C (en) Providing an address format compatible with different addressing formats used for addressing different sized address spaces
US20070067670A1 (en) Method, apparatus and program storage device for providing drive load balancing and resynchronization of a mirrored storage system
US9323464B2 (en) Assigning device adaptors to use to copy source extents to target extents in a copy relationship
CN101470667A (zh) Linux系统平台上指定地址范围分配物理内存的方法
CN107729536A (zh) 一种数据存储方法和装置
US10248617B2 (en) File-level array storage
US20050154786A1 (en) Ordering updates in remote copying of data
CN111782135A (zh) 数据存储方法、系统、数据节点和计算机可读存储介质
JP2016162407A (ja) 制御装置、制御方法、および制御プログラム
US7676644B2 (en) Data processing system, storage apparatus and management console
CN106383826A (zh) 数据库查询方法和装置
CN104951243A (zh) 虚拟化存储系统中的存储扩展方法和装置
CN107015883B (zh) 一种动态数据备份方法及装置
US10592493B1 (en) Spot-instanced bulk data uploading
CN102043589A (zh) 磁盘阵列的扩容方法和系统
US10585793B2 (en) Allocating shared memory blocks to table entries to store in a memory device
CN110019229A (zh) 数据库配置系统

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090723

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110714

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110802

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110815

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20111018

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20111028

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

Free format text: PAYMENT UNTIL: 20141104

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4856515

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20141104

Year of fee payment: 3

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

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

Free format text: PAYMENT UNTIL: 20141104

Year of fee payment: 3

R371 Transfer withdrawn

Free format text: JAPANESE INTERMEDIATE CODE: R371

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

Free format text: PAYMENT UNTIL: 20141104

Year of fee payment: 3

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R360 Written notification for declining of transfer of rights

Free format text: JAPANESE INTERMEDIATE CODE: R360

R370 Written measure of declining of transfer procedure

Free format text: JAPANESE INTERMEDIATE CODE: R370

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R360 Written notification for declining of transfer of rights

Free format text: JAPANESE INTERMEDIATE CODE: R360

R370 Written measure of declining of transfer procedure

Free format text: JAPANESE INTERMEDIATE CODE: R370

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

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250