トップ :: G 物理学 :: G06 計算;計数




【発明の名称】 RAIDデ―タ記憶システム用デ―タマイグレ―ション方法
【発明者】 【氏名】ジェラルド エドワード スミス

【氏名】アダム ウェイン ウェイナー

【要約】 【課題】RAIDシステム用マイグレーション方法を提供する。

【解決手段】アレイコントローラ106が実施するマイグレーション方法はマイグレーション方向の選択で開始され、記憶容量の減少を招くあらゆるマイグレーションに対して降下順マイグレーションが使用され、他の全てのケースでは上昇順マイグレーションが使用される。マイグレーション方法ではソース構成からデスティネーションへ繰り返しストライプが転送される。各転送の一部として、アレイコントローラ106は読み出されるストリップと書き込まれるストリップとの間に重複部分があるかどうかを確認し、重複部分が検出される場合には最初に重複するストリップを確保したエリアへ転送する。マイグレーション方法中に、アレイコントローラ106は非揮発性メモリ112内に情報を維持し、この情報により意図的もしくは非意図的システム運転停止後にマイグレーション方法を再開することができる。
【特許請求の範囲】
【請求項1】 ディスクアレイを再構成する方法であって、該方法は、再構成前の構成の記述と再構成後の構成の記述を与えるステップと、再構成の結果ディスクアレイの容量が減少するかどうかを確認するステップと、再構成の結果容量が減少する場合には、再構成後の構成の容量を越えるアクセスを拒絶するようにディスクアレイを構成するステップと、再構成前の構成から再構成後の構成へ繰り返しデータブロックを移動させるステップと、を含む方法。
【請求項2】 請求項12記載の方法であって、さらに、ディスクアレイへのアクセス要求を受信するステップと、要求されたデータブロックが移動されているかどうかを確認するステップと、要求されたデータブロックがまだ移動されていない場合には、再構成前の構成の記述を使用して要求されたデータブロックへアクセスするステップと、要求されたデータブロックがすでに移動されている場合には、再構成後の構成の記述を使用して要求されたデータブロックへアクセスするステップと、を含む方法。
【請求項3】 請求項1記載の方法であって、さらに、再構成の結果ディスクアレイの容量が増大するかどうかを確認するステップと、再構成の結果容量が増大する場合には、再構成後の構成の容量までアクセスを受け入れるようにディスクアレイを構成するステップと、を含む方法。
【請求項4】 請求項1記載の方法であって、さらに、再構成前の構成の記述を再構成後の構成の記述と置換するステップを含む方法。
【請求項5】 請求項1記載の方法であって、さらに、転送サイズを決定するステップを含み、転送サイズは再構成前の構成内のMストライプおよび再構成後の構成内のNストライプに対応し、再構成前の構成のMストライプが再構成後の構成のNストライプと同数のバイトを有するように選択される方法。
【請求項6】 請求項1記載の方法であって、さらに、再構成の結果ディスクアレイの容量が減少する場合には下降順マイグレーションを選択するステップと、再構成の結果ディスクアレイの容量が増大する場合には上昇順マイグレーションを選択するステップと、を含む方法。
【請求項7】 請求項1記載の方法であって、さらに、マイグレーションの反復に再構成前の構成と再構成後の構成内の重複するデータブロックが伴うかどうかを検出するステップと、重複するデータブロックをディスクアレイの確保されたエリア内に格納するステップと、重複するデータブロックを再構成後の構成内に格納するステップと、を含む方法。
【請求項8】 コンピュータが読取り可能なコードを内蔵するコンピュータが使用可能な媒体を含むコンピュータプログラムプロダクトであって、コンピュータが読取り可能なプログラムコード装置がディスクアレイを再構成する方法を実施するように構成されており、該方法は、再構成前の構成の記述と再構成後の構成の記述を与えるステップと、再構成の結果ディスクアレイの容量が減少するかどうかを確認するステップと、再構成の結果容量が減少する場合には、再構成後の構成の容量を越えるアクセスを拒絶するようにディスクアレイを構成するステップと、再構成前の構成から再構成後の構成へ繰り返しデータブロックを移動させるステップと、を含むコンピュータプログラムプロダクト。
【請求項9】 請求項8記載のコンピュータプログラムプロダクトであって、前記方法は、さらに、ディスクアレイへのアクセス要求を受信するステップと、要求されたデータブロックが移動されているかどうかを確認するステップと、要求されたデータブロックがまだ移動されていない場合には、再構成前の構成の記述を使用して要求されたデータブロックへアクセスするステップと、要求されたデータブロックがすでに移動されている場合には、再構成後の構成の記述を使用して要求されたデータブロックへアクセスするステップと、を含むコンピュータプログラムプロダクト。
【請求項10】 請求項8記載のコンピュータプログラムプロダクトであって、前記方法は、さらに、再構成の結果ディスクアレイの容量が増大するかどうかを確認するステップと、再構成の結果容量が増大する場合には、再構成後の構成の容量までアクセスを受け入れるようにディスクアレイを構成するステップと、を含むコンピュータプログラムプロダクト。
【請求項11】 請求項8記載のコンピュータプログラムプロダクトであって、前記方法は、さらに、再構成前の構成の記述を再構成後の構成の記述と置換するステップを含むコンピュータプログラムプロダクト。
【請求項12】 請求項8記載のコンピュータプログラムであって、前記方法は、さらに、転送サイズを決定するステップを含み、転送サイズは再構成前の構成内のMストライプおよび再構成後の構成内のNストライプに対応し、再構成前の構成のMストライプが再構成後の構成のNストライプと同数のバイトを有するように選択されるコンピュータプログラムプロダクト。
【請求項13】 請求項8記載のコンピュータプログラムプロダクトであって、前記方法は、さらに、再構成の結果ディスクアレイの容量が減少する場合には下降順マイグレーションを選択するステップと、再構成の結果ディスクアレイの容量が増大する場合には上昇順マイグレーションを選択するステップと、を含むコンピュータプログラムプロダクト。
【請求項14】 請求項8記載のコンピュータプログラムプロダクトであって、前記方法は、さらに、マイグレーションの反復に再構成前の構成と再構成後の構成内の重複するデータブロックが伴うかどうかを検出するステップと、重複するデータブロックをディスクアレイの確保されたエリア内に格納するステップと、重複するデータブロックを再構成後の構成内に格納するステップと、を含むコンピュータプログラムプロダクト。
【請求項15】 ディスクアレイを再構成するシステムであって、該システムは、プロセッサに再構成前の構成の記述と再構成後の構成の記述を与えさせるように構成された手段と、プロセッサに再構成の結果ディスクアレイの容量が減少するかどうかを確認させるように構成された手段と、再構成の結果容量が減少する場合には、プロセッサに再構成後の構成の容量を越えるアクセスを拒絶するようにディスクアレイを構成させるように構成された手段と、プロセッサに再構成前の構成から再構成後の構成へ繰り返しデータブロックを移動させるように構成された手段と、を含むシステム。
【請求項16】 請求項15記載のシステムであって、さらに、プロセッサにディスクアレイへのアクセス要求を受信させるように構成された手段と、プロセッサに要求されたデータブロックが移動されているかどうかを確認させるように構成された手段と、要求されたデータブロックがまだ移動されていない場合には、プロセッサに再構成前の構成の記述を使用して要求されたデータブロックへアクセスさせるように構成された手段と、要求されたデータブロックがすでに移動されている場合には、プロセッサに再構成後の構成の記述を使用して要求されたデータブロックへアクセスさせるように構成された手段と、を含むシステム。
【請求項17】 請求項15記載のシステムであって、さらに、プロセッサに再構成の結果ディスクアレイの容量が増大するかどうかを確認させる手段と、再構成の結果容量が増大する場合には、プロセッサに再構成後の構成の容量までアクセスを受け入れるようにディスクアレイを構成させるように構成された手段と、を含むシステム。
【請求項18】 請求項15記載のシステムであって、さらに、プロセッサに再構成前の構成の記述を再構成後の構成の記述と置換させるように構成された手段を含むシステム。
【請求項19】 請求項15記載のシステムであって、さらに、プロセッサに転送サイズを決定させる手段を含み、転送サイズは再構成前の構成内のMストライプおよび再構成後の構成内のNストライプに対応し、再構成前の構成のMストライプが再構成後の構成のNストライプと同数のバイトを有するように選択されるシステム。
【請求項20】 請求項15記載のシステムであって、さらに、再構成の結果ディスクアレイの容量が減少する場合にはプロセッサに下降順マイグレーションを選択させるように構成された手段と、再構成の結果ディスクアレイの容量が減少する場合にはプロセッサに上昇順マイグレーションを選択させるように構成された手段と、を含むシステム。
【請求項21】 請求項15記載のシステムであって、さらに、マイグレーションの反復に再構成前の構成と再構成後の構成内の重複するデータブロックが伴うかどうかをプロセッサに検出させるように構成された手段と、プロセッサに重複するデータブロックをディスクアレイの確保されたエリア内に格納させるように構成された手段と、プロセッサに重複するデータブロックを再構成後の構成内に格納させるように構成された手段と、を含むシステム。
【発明の詳細な説明】【0001】
【発明の属する技術分野】本発明は一般的に大容量記憶装置に関する。特に、本発明はディスクアレイ再構成中のデータマイグレーション方法を含んでいる。
【0002】
【従来の技術】ディスクアレイは2つ以上の独立ディスクを1つの論理記憶装置へ結合するデータ記憶装置である。一般に従来の装置に較べて、ディスクアレイにより性能、容量、フォールトトレランスが向上される。ディスクアレイは、RAIDコンセプトが利用され、RAIDは元々1987年にカリフォルニア州、バークレイのカルフォルニア大学で出版されたパターソン、ギブソン、およびカズの論文“低廉なディスクの冗長アレイ、すなわちRAID、のケース”に記載された造語である。この論文で、著者はRAIDレベル1−5として知られるディスクアレイ型の分類法について記載している。その後、RAID分類法はRAIDレベル0等を含むように拡張されている。
【0003】RAIDレベル0に対しては、データは“ストリップ”(小さなデータの1単位)として知られるブロックへ分割されてシステムのディスク上へ“ストライプ”(1以上のストリップの集合)として広められる。例えば、1kバイトストリップサイズを有する4ディスクより成るRAIDレベル0のシステムでは、データの各4kバイトストライプが4つの1kバイトストリップとして、4つのディスクの各々に1つづつ、書き込まれる。データが3kバイトの場合は、4つのドライブの中の3つのドライブの間で分割される3つの1kバイトストリップとして書き込まれる。RAIDレベル0により性能および容量は向上されるが、フォールトトレランスは全く提供されない。
【0004】RAIDレベル1のシステムでは、各ディスクは第2のディスクと対とされる。ディスク対の動作は各ドライブがその対のミラーイメージとなるように調整され、いずれかのディスクが故障すると、残りのディスクによりデータは消失しないことが保証される。このようにして、RAIDレベル1により独立ディスクにはないある程度のフォールトトレランスが提供される。
【0005】RAIDレベル0のシステムと同様に、RAIDレベル3のシステムは2つ以上のディスクにわたってデータをビットあるいはバイト単位でストライプする。RAIDレベル3のシステムは独立したパリティディスクを有している。パリティディスク上に格納される各ビットは残りのデータドライブ上の同じ位置に格納されるビットのパリティである。したがって、パリティドライブに格納される第n番ビットは残りの各ドライブ上に格納される第n番ビットのパリティビットである。一般的に、パリティビットは排他的OR演算を実施して形成される。したがって、パリティディスク上に格納される第n番ビットは残りのディスク上に格納される第n番ビットの排他的ORとして形成される。パリティドライブを使用することによりある程度のフォールトトレランスがRAIDレベル3に提供される。これらのシステムでは、任意の1つのドライブ(パリティドライブを含む)が故障した場合、残りのドライブを使用して故障したドライブ内に格納されたデータを再構成すなわち補間することができる。
【0006】RAIDレベル5のシステムはRAIDレベル0のストリップ−バイ−ストリップベースを使用してデータをストライプする。RAIDレベル5システムはまたパリティビットを格納してフォールトトレランスを高める。しかしながら、RAIDレベル3とは異なり、RAIDレベル5システムは独立したパリティディスクを有していない。替わりに、RAIDレベル5ではパリティビットはシステム内に含まれる全てのディスクにわたって回転して格納される。例えば、3ディスクから成るRAIDレベル5のシステムでは、データの第1ストライプに対するパリティビットは第1のドライブ上に格納することができる。次に、データの次のストライプに対するパリティビットが第2のドライブ上に格納される。次に、データの第3のストライプに対するパリティビットが第3のドライブ上に格納され、以下同様とされる。RAIDレベル5のシステムによりRAIDレベル3のシステムと同程度のフォールトトレランスが提供される。しかしながら、使用上RAIDレベル5のシステムにより高性能が提供される場合が多い。
【0007】RAIDレベル10のシステムはRAIDレベル0とRAIDレベル1のシステムから移行した技術の組み合わせである。これらののシステムはRAIDレベル0のシステムと同様に一連のデータにわたってデータをストライプする。これらのディスクは1次ディスクとして知られている。さらに、RAID10のシステムは各1次ディスクに対するミラーディスクを有する。RAIDレベル10システムはRAIDレベル0のシステムの高速アクセスおよびRAIDレベル1のシステムのフォールトトレランスを提供する。
【0008】再構成はRAIDシステムの動作においてよく生じる。例えば、RAIDシステムはディスクを加減することにより記憶容量を増減するように再構成することができる。また、RAIDシステムはRAIDレベルを変えることによりフォールトトレランス、性能および記憶容量を変えるように再構成することもできる。また、RAIDシステムはストリッピングを実施するのに使用するストリップサイズ等の他のパラメータを変えることにより性能を調整するように再構成することができる。
【0009】一般的に、RAIDシステムを再構成するには旧いシステムから新しいシステムへデータを移す必要がある。多くの場合、このデータの移動はテープドライブもしくは他のバックアップドライブを使用してデータのバックアップコピーを作ることにより実施される。次に、ドライブを加減するかあるいは他のパラメータを変えることによりRAIDシステムが再構成される。次に、テープドライブもしくは他のバックアップデバイスを使用してデータが回復される。
【0010】データを移すためのバックアップおよびリストア方法にはいくつかの欠点がある。その中で主な欠点は操作が完了するまで関連するRAIDシステムを利用できないという事である。多くの場合、関連するRAIDを所要期間中遊ばせておくことは実用的でなく不可能である。また、バックアップおよび回復操作ではオペレータがいくつかの手動ステップを実施する必要がある。これらの各ステップはエラーを生じ易く重要なデータが破壊される確率が高くなる。
【0011】データマイグレーション(再構成)すなわちRAIDシステムの構成方法の変更におけるデータ移転はデータ移動のバックアップおよび回復方法に替わるものである。基本的に、データマイグレーションでは各データをその再構成前位置からその再構成後位置へコピーし、データマイグレーション中に、RAIDシステムへのアクセスを維持することができる。このようにして、データ移動のバックアップおよび回復方法の重大な制約条件が回避される。残念ながら、データマイグレーションには非常に多数の個別のディスク操作が必要であり、したがって、非常に時間を消費する場合が多い。この時間中に、RAIDシステムへのアクセスは劇的に遅くなってしまうことがあり、したがって、データマイグレーションでさえも不便で非実用的となってしまうことがある。その結果、RAIDシステムの再構成を早めるシステムが必要とされている。
【0012】
【発明が解決しようとする課題】データマイグレーションの本質は、データマイグレーション中に、RAIDシステムの混合した構成により特徴づけられることを意味する。混合した構成では、マイグレートしたデータはその再構成後位置に配置される。しかしながら、これからマイグレートされるデータはまだその再構成前位置に配置されている。この時間中に、RAIDシステムは運転停止できないことがある。さらに悪いことに、停電その他の予期せぬ原因により運転停止が生じると、RAIDシステムは不確実な一部マイグレート状態のままとされてしまうことがある。その結果重要なデータが消失されることがある。したがって、意図的および非意図的なシステム運転停止期間中にデータを保護するマイグレーション方法が必要性とされている。
【0013】
【課題を解決するための手段】本発明の実施例にはディスクアレイを再構成するためのデータマイグレーション方法が含まれる。本発明の好ましい環境は再構成可能なRAIDシステムであり、RAIDシステムでは複数のデータディスクを有し、場合によりミラーディスクや、パリティディスクを有する。ディスクアレイはアレイコントローラの制御下で作動する。アレイコントローラはRAIDシステムとそれが接続される任意のホストコンピュータ間のインターフェイスとして機能する。アレイコントローラはプロセッサおよびメモリシステムを有する。メモリシステムは意図的および非意図的な運転停止中に有効なままとされる非揮発性RAM(NVRAM)のエリアを含んでいる。
【0014】RAIDシステム内のデータ記憶装置はディスクアレイ内に含まれるデータおよびパリティディスク数、RAIDレベル、ストリップサイズおよびストライプサイズを含む再構成可能なパラメータにより特徴づけられる。本発明の方法によりRAIDシステムはマイグレーションを行なう前の(ソース)構成からデスティネーション構成へ移行することができる。ソース構成からマイグレーションを行なった後の(デスティネーション)構成への移行はRAIDレベル、ディスクアレイ内に含まれるデータおよびパリティディスク数の変化やストリップサイズおよびストライプサイズ等のパラメータの変化を含むことができる。また、1つ以上のディスクから1つ以上の置換ディスクへデータを移すように再構成を実施することもできる。好ましくは、本方法はアレイコントローラのメモリシステム内に格納されたプログラムとして実現してアレイコントローラプロセッサにより実行される。
【0015】本発明の方法に対して、アレイコントローラは再構成によりRAIDシステムの容量が減少するかどうかを最初に確認する。容量減少を伴う再構成に対して、マイグレーションはRAIDシステム内に含まれる最高論理ブロックアドレス(LBA)で開始して下向きに作用するように構成される(下降順マイグレーション)。他の全ての再構成に対して、マイグレーションはRAIDシステム内に含まれる最低論理ブロックアドレスで開始して上向きに作用するように構成される(上昇順マイグレーション)。
【0016】マイグレーションの順序が選択されると、アレイコントローラはマイグレーションを実施するのに使用される転送サイズを計算する。転送サイズはソース構成内のストライプ数とデスティネーション構成内のストライプ数を2つの数により表されるデータ量が等しくなるように選択して計算される。例として、4kバイトストリップサイズでRAIDレベル3の3ディスクシステムが4kバイトストリップサイズでRAIDレベル3の4ディスクシステムとして再構成されるケースについて考える。この場合、ソース構成内の3つのストライプはデスティネーション構成内の2つのストライプと同じデータ量を表す。したがって、24kバイトの転送サイズは適切な転送サイズである。必要ではないが、好ましくは転送サイズはソースストライプ数およびデスティネーションストライプ数が最小公分母関係となるように計算される。
【0017】転送サイズの計算後、アレイコントローラはソース構成からデスティネーション構成へ繰り返しストライプを転送する。各転送では、計算された転送サイズに等しいいくつかのストライプを含んでいる。各転送の一部として、アレイコントローラはソース構成から読み出されるストライプとデスティネーション構成へ書き込まれるストライプとの間に重複部分があるかかどうかを確認する。特に、アレイコントローラは転送される任意のストライプが読み出されかつ書き込まれるかどうかを確認する。重複部分がなければ、アレイコントローラは各ストライプをソース構成内のその位置からデスティネーション構成内のその対応する位置へ転送する。
【0018】別の場合(すなわち、重複部分がある場合)、アレイコントローラは最初に重複する各ストリップをディスクアレイ内の確保したエリアへコピーする。このバックアップ操作を実施した後で、アレイコントローラは各ストリップをデスティネーション構成内のその対応する位置へコピーする。マイグレーション操作が中断されると、重複するストリップを確保したエリアから安全に回復することができる。次に、アレイコントローラはソース構成内に含まれる全てのストライプがデスティネーション構成へ転送されるまでステップのシーケンスを繰り返す。
【0019】アレイコントローラはマイグレーション方法の各ステップ中にNVRAMを更新する。特に、アレイコントローラはNVRAM内のマイグレーションポインターを維持する。マイグレーションポインターはソース構成からデスティネーション構成へマイグレートされている最終論理ブロックアドレスを示す。また、NVRAMは確保したエリアへ転送されている重複しているストリップのアイデンティティおよび位置を記述するデータも含んでいる。NVRAM内にアレイコントローラにより維持される情報により、意図的もしくは非意図的なシステムの運転停止時にマイグレーション方法を再開することができる。
【0020】
【発明の実施の形態】次に、本発明の好ましい実施例を詳細に参照し、その例を添付図に示す。図面全体を通して同じ参照番号は同じもしくは類似の部品を示す。
【0021】環境図1に示すように、本発明の典型的な環境には再構成可能なRAIDシステム100が含まれている。RAIDシステム100は1個以上のディスクにより構成されるディスクアレイ102を有し、その中のディスク104aから104eが図示されている。図1の典型的な環境では、ディスク104aから104dはデータディスクとして示され104eはパリティディスクとして示されている。ディスク104はミラーディスクとして構成することもできる。実際上、データ、ミラーおよびパリティディスクが混じり合ったものはRAIDシステム100のさまざまな実施例間で異なり、RAIDシステム100の特定のRAID構成によって決まる。ディスク104はSCSI、IDEその他のディスクドライブタイプを含む広範な市販タイプもしくは適当なタイプを表す。
【0022】ディスクアレイ102はアレイコントローラ106の制御下で作動する。アレイコントローラ106はRAIDシステム100とそれが接続される任意のホストシステム間のインターフェイスとして機能する。アレイコントローラ106はプロセッサ108、メモリ110および非揮発性RAM(NVRAM)112を有している。プロセッサ108はメモリ110内に含まれるプログラムを実行してディスクアレイ102の動作を制御する。プロセッサ108はNVRAM112を永続性のあるデータ記憶エリアとして使用する。プロセッサ108によりNVRAM112内に格納されるデータはRAIDシステム100の意図的および非意図的な運転停止中に有効なままとされる。
【0023】アレイコントローラ106はRAIDシステム100内の1つ以上の確保した記憶エリア114を維持する。図1の場合、記憶エリア114は各ディスク104(ディスク104aに対して確保した記憶エリア114a、ディスク104bに対して確保した記憶エリア114b、等)上に確保される。RAIDシステム100内により多くのもしくはより少ない記憶エリア114を確保することが実際的である場合もある。確保したエリア114は永続性のあるデータ記憶エリアとして機能する。したがって、確保したエリア114内にプロセッサ108により格納されるデータはRAIDシステム100の意図的および非意図的な運転停止中に有効なままとされる。
【0024】フォールトトレランスでの再構成本発明の実施例にはRAIDシステム100のフォールトトレランスにおける再構成方法および装置が含まれる。この方法および装置によりRAIDシステム100はディスクの数およびタイプ、RAIDレベル、ストリップサイズおよびストライプサイズを変えるように再構成することができる。RAIDシステム100は再構成中にオンライン状態に維持され、RAIDシステム100の意図的および非意図的な運転停止中に続いて再構成を再開することができる。
【0025】フォールトトレランス再構成を提供するために、アレイコントローラ106はRAIDシステム100内のいくつかのデータ構造を維持する。図2に示すように、これらのデータ構造は1次記述200、2次記述202およびマイグレーションポインター204を含んでいる。これらの各データ構造はフォールトトレランスの作業中に維持される。マイグレーションポインター204の場合には、フォールトトレランスはNVRAM112内にマイグレーションポインター204を記録して達成されるのが好適である。1次記述200および2次記述202の場合には、フォールトトレランスは確保した記憶エリア114内に1次記述200および2次記述202を格納して達成されるのが好適である。マイグレーションポインター204、1次記述200および2次記述202をNVRAM112および確保した記憶エリア114内に格納するのは典型的な例である。他の実施例では、これらの要素を他のフォールトトレランス方式で格納するように選択することができる。
【0026】1次記述200はRAIDシステム100の動作パラメータを記述する。正規動作中に、アレイコントローラ106は1次記述200に含まれるデータを使用してRAIDシステム100により受信される命令をディスクアレイ102へ向けた対応する操作へ変換する。特に、アレイコントローラ106はディスクアレイ102内に含まれるデータを読み出しおよび書き込む要求を受信する。これらの要求は1つ以上の論理ブロックアドレス(LBA)へ向けられる。アレイコントローラ106は受信した各要求をディスクアレイ102内に含まれるディスク104へ向けた1つ以上の要求へ変換する。これらの各要求は1つ以上のドライブ論理ブロックアドレス(DLBA)へ向けられる。アレイコントローラ106は1次記述200内に含まれる情報を使用してLBAから対応するDLBAへの変換を行う。
【0027】1次記述200と同様に、2次記述202はRAIDシステム100の記述として機能する。しかしながら、1次記述200とは異なり、2次記述はRAIDシステム100の再構成中しか使用されない。本明細書内で、マイグレーション前のRAIDシステム100の構成はソース構成といわれる。同様に、マイグレーション後のRAIDシステム100の構成はデスティネーション構成といわれる。マイグレーション中に、1次記述200内に含まれるデータはソース構成を記述する。一方、2次記述202内に含まれるデータはデスティネーション構成を記述する。
【0028】再構成中に、アレイプロセッサ106はマイグレーションポインター204を使用してソース構成内に含まれるLBAとデスティネーション構成内に含まれるLBAとを区別する。特に、再構成プロセスの一部として、アレイコントローラ106はマイグレーション操作を実施して各LBAに関連するデータをソース構成内のその位置からデスティネーション構成内のその位置へ繰り返し配置し直す。このプロセスは小さなプロセスではないため、RAIDシステム100が混合構成により特徴づけられる期間がある。混合構成では、いくつかのLBAがデスティネーション構成内のDLBAへ適切にマップされる。他のLBAはソース構成内に含まれるDLBAへ適切にマップされる。アレイコントローラ106はマ0イグレートされる次のLBAの値をマイグレーションポインター204内に維持する。このようにして、アレイコントローラ106はソース構成内に含まれるLBAとデスティネーション構成内に含まれるLBAとを区別することができる。
【0029】RAIDシステム100のフォールトトレランスの再構成方法を図3にフローチャートで方法300として示す。方法300は象徴的に開始プレースホルダー302で始まる。開始プレースホルダー302において、1次記述200はソース構成を記述する情報を含んでいる。開始プレースホルダー302にはステップ304が続く。ステップ304において、アレイコントローラ106は再構成の結果RAIDシステム100の全体容量が減少するかどうかを確認する。ディスク104がRAIDシステム100から省かれる場合に容量の減少が生じる。ディスク104数を対応して増加することなくRAIDシステム100をRAIDレベル間で再構成する(RAIDレベル0から任意他のRAIDレベルへの変化、もしくは任意のRAIDレベルからRAIDレベル1への変化)場合にも容量減少が生じる。アレイコントローラ106は下記のタイプのテーブルの論理的な同値を参照して容量減少が生じるかどうかを確認する。
【0030】
【表1】

【0031】前表において、水平軸はオリジナル構成を表す。垂直軸はデスティネーション構成を表す。ラベルはRAIDレベルおよびドライブカウントを表し、“0−6”はRAID0−6ドライブを意味し、“3/5−4”はRAID3もしくはRAID5−4レベルを表す‘=’は容量変化なしを示し、‘+’は容量増大を示し、‘−’は容量減少を示す。
【0032】再構成によりRAIDシステム100の容量減少が生じることをアレイコントローラ106が確認する場合には、ステップ306において方法300の実行が継続される。ステップ306においてアレイコントローラはソース構成500からデスティネーション構成600へのマイグレーションに必要な容量減少を反映するようにRAIDシステム100を再構成する。RAIDシステム100の容量を減少することにより、アレイコントローラ106はデスティネーション構成600の容量を越える量のデータをRAIDシステム100内に格納する要求を処理するのを防止される。方法300はRAIDシステム100が作動する時に使用できるものとされるため、この予防措置が必要である。
【0033】ステップ308においてアレイコントローラ106は2次記述202を初期化してデスティネーション構成を記述する。ステップ310においてアレイコントローラ106はマイグレーションポインター204をマイグレーションされる前の値へ初期化する。ステップ310で使用されるマイグレーションされる前の値は使用するマイグレーションのタイプによって決まる。特に、マイグレーションを実施するために、アレイコントローラ106はRAIDシステム100内に含まれる各LBAを反復シーケンスする。各LBAにおいてアレイコントローラ106はLBAによりアドレスされる全データをソース構成内のその位置からデスティネーション構成内のその対応する位置へ移す。マイグレーションは任意所定の順序で生じることができる。特に、マイグレーションはRAIDシステム100内に含まれる最初のLBAで開始して最後のLBAで完了することができる(上昇順マイグレーション)。また、マイグレーションはRAIDシステム100内に含まれる最後のLBAで開始して最初のLBAで完了することもできる(下降順マイグレーション)。ステップ310においてマイグレーションポインター204はマイグレートされる最初のLBAを指すように初期化される。上昇順マイグレーションの場合には、マイグレーションポインター204はソース構成内に含まれる最初のLBAを指すように初期化される。下降順マイグレーションの場合には、マイグレーションポインター204はデスティネーション構成内に含まれる最後のLBAを指すように初期化される。
【0034】ステップ312においてRAIDシステム100内に含まれるデータはソース構成に必要なレイアウトからデスティネーション構成に必要なレイアウトへマイグレートされる。前記したように、アレイコントローラ106はRAIDシステム100内に含まれる各LBAをシーケンスする。各LBAにおいて、アレイコントローラ106はLBAによりアドレスされる全データをソース構成内のその位置からデスティネーション構成内のその対応する位置へ移す。アレイコントローラ106はマイグレーション操作の各反復中にマイグレーションポインター204を増分(上昇順マイグレーションに対して)、もしくは減分する(下降順マイグレーションに対して)。したがって、マイグレーションポインター204は常にマイグレートされる次のLBAを指す。
【0035】アレイコントローラ106がステップ312のマイグレーション操作を完了する時に、方法300はステップ314に達する。ステップ314においてアレイコントローラ106マイグレーションが完了していることを反映するように1次記述200を更新する。この更新を実施するために、アレイコントローラ106は2次記述202内に含まれる情報を1次記述200へコピーする。このようにして、1次記述200はRAIDシステム100の再構成後の動作パラメータを反映するように更新される。
【0036】ステップ316においてアレイコントローラ106はRAIDシステム100の全体容量が再構成の結果増大するかどうかを確認する。ディスク104がRAIDシステム100に付加されている場合には、容量増大が生じる。RAIDシステム100がRAIDレベル間で再構成される場合(例えば、任意のRAIDレベルからRAIDレベル0への変化、もしくはRAIDレベル1から任意のRAIDレベルへの変化)にも容量増大が生じる。一般的に、アレイコントローラ106はメモリ110もしくはNVRAM112内に格納された適切なテーブルを参照してこの確認を行うことができる。
【0037】再構成によりRAIDシステム100の容量増大が生じることをアレイコントローラ106が確認する場合には、ステップ318において方法300の実行が継続される。ステップ318においてアレイコントローラは再構成により生成される容量増大を反映するようにRAIDシステム100を再構成する。アレイコントローラ106は再構成が完了するまで任意の付加容量へのアクセスを制限するのが効果的である。このようにして、アレイコントローラ106はデスティネーション構成により収容されるがRAIDシステム100の部分再構成容量を越えるデータを格納する要求の処理を回避する。方法300はRAIDシステム100の動作時に使用できるようにされているため、この予防措置が必要となる。方法300の実行は停止プレースホルダー320で終わる。また、アレイコントローラ106は再構成により付加されるLBAへ向けられる要求をダイナミックに向けなおすように構成することができる。
【0038】RAIDシステム100は方法300の実行中にアクセス可能な状態に維持される。その結果、アレイコントローラは方法300の実行中にRAIDシステム100内に格納されたデータへのアクセス要求を受信することができる。受信した各要求に対して、アレイコントローラは要求に含まれる各LBAをマイグレーションポインター204と比較する。比較によりLBAはまだマイグレートされていないことが示されると、アレイコントローラ106は1次記述200内に含まれる情報を使用してLBAをその対応するDLBAへマップする。また、比較によりLBAは既にマイグレートされていることが示されると、アレイコントローラ106は2次記述202内に含まれる情報を使用してLBAをその対応するDLBAへマップする。このようにして、RAIDシステム100は方法300の実行中にアクセス可能な、オンライン状態に維持される。
【0039】永続性記憶手段内にマイグレーションポインター204、1次記述200および2次記述を持続することは方法300がフォールトトレラントであることを意味する。したがって、方法300は停電その他のシステム運転停止後に再始動することができる。
最適化マイグレーション図4に、最適化されたマイグレーション方法のフローチャートで方法400として示す。方法400はRAIDシステム100の再構成中に使用されるものである。特に、方法400は方法300のステップ316のマイグレーションを実施するのに使用することができる。方法400は、象徴的に、開始プレースホルダー402で始まる。開始プレースホルダー402においてマイグレーションは図5のソース構成500から図6のデスティネーション構成600へ実施されるものと仮定することができる。
【0040】ソース構成500はRAIDシステム100の2ディスク、RAID0構成に対応するものである。したがって、ソース構成500には2カラム502a,502bが含まれる。カラム502aは第1のディスク104上に格納されるストリップを表す。カラム502bは第2のディスク104上に格納されるストリップを表す。デスティネーション構成600はRAIDシステム100の3ディスク、RAID0構成に対応するものである。したがって、デスティネーション構成600には3カラム602aから602cが含まれる。カラム602aは第1のディスク104上に格納されるストリップを表す。カラム602bは第2のディスク104上に格納されるストリップを表す。カラム602cは第3のディスク104上に格納されるストリップを表す。
【0041】開始プレースホルダー402にはステップ404が続く。ステップ404においてアレイコントローラ106は転送サイズNを計算する。転送サイズNはソース構成500内のストライプ数とデスティネーション構成600内のストライプ数を2つの数で表されるデータの量が等しくなるように選択して計算される。例として、ソース構成500およびデスティネーション構成600内に含まれる各ストリップが2kバイトのデータを含むケースについて考える。この場合、ソース構成500内の3つのストライプはデスティネーション構成600内の2つのストライプと同量のデータを表す。したがって、12kバイトの転送サイズは転送サイズNに対する適切な値である。必要ではないが、好ましくは、転送サイズNはソースストライプの全数およびデスティネーションストライプの全数に対応するように計算される。ここでは、12kバイトの値はアレイコントローラ106によりNに対する値として選択されているものと仮定する。
【0042】次に、アレイコントローラ106はステップ406から416を含むループへ入る。このループを通る各トリップ中に、アレイコントローラ106はソース構成500からデスティネーション構成600へサイズNバイトを転送する。ステップ406においてアレイコントローラ106はソース範囲を選択する。上昇順マイグレーションに対しては、ソース範囲はマイグレーションポインター204内に含まれる値で始まる。ソース範囲はマイグレーションポインター204内に含まれる値プラス転送サイズNの幅に等しいオフセットで終わる。降下順マイグレーションに対しては、ソース範囲はマイグレーションポインター204内に含まれる値で終わる。ソース範囲はマイグレーションポインター204内に含まれる値マイナス転送サイズNの幅に等しいオフセットで始まる。図5は、ステップ414の最初の反復中に構成されるソース範囲は1から6の値を付したストリップに対応する。アレイコントローラ106はソース範囲内に含まれるLBAへ向けられる着信要求を阻止する。これらの要求は待ち行列とされソース範囲に含まれるストリップがデスティネーション構成600へ転送されるまで待機させられる。
【0043】ステップ408においてアレイコントローラ106はステップ406で選択されたソース範囲を対応するデスティネーション範囲内へマップする。デスティネーション範囲はソース範囲内に含まれるストリップのデスティネーション構成600内の対応する位置への1対1のマッピングである。このマッピングは1次記述200および2次記述202内に含まれる情報を使用してアレイコントローラ106により実施される。図6においてステップ408の最初の反復中に構成されるデスティネーション範囲は1から6の値を付したストリップに対応する。
【0044】ステップ410においてアレイコントローラ106はソース範囲とデスティネーション範囲との間に重複部分があるかどうかを確認する。特に、アレイコントローラ106はソース範囲内に含まれるいずれかのストリップがデスティネーション範囲内に完全あるいは部分的に含まれるかどうかを確認する。この評価はさまざまな方法を使用して実施することができる。このような1つの方法はソースおよびデスティネーション範囲に対する開始および終了DLBAオフセットを定義することである。ソース範囲の開始DLBAオフセットはソース範囲内の最初のストリップのDLBAである。ソース範囲の終了DLBAオフセットはソース範囲内の最後のストリップのDLBAである。同様に、デスティネーション範囲の開始および終了DLBAオフセットは、それぞれ、デスティネーション範囲内の最初および最後のストリップのDLBAである。この方法を使用して、次にアレイコントローラ106はソース範囲の開始DLBAオフセットおよび終了DLBAオフセットをデスティネーション範囲の開始および終了DLBAオフセットと比較する。図7に、ソース構成500のストリップ1から5を略示してこれらのストリップはソース範囲およびデスティネーション範囲間で重複していることを示す。
【0045】ソースおよびデスティネーション範囲間に重複部分があることをアレイコントローラ106が確認すると、ステップ412において方法400の実行が継続される。ステップ412においてアレイコントローラ106はソース範囲内に含まれる全ての重複ストリップをRAIDシステム100内に含まれる確保された記憶エリア114へコピーする。図8に、RAIDシステム100内の確保されたエリアへ転送された後のソース構成500のストリップ1から4を示す。アレイコントローラ106は重複するストリップを確保されたエリアへコピーした後で、NVRAMを更新して重複するストリップが確保されたエリア114へコピーされていることを示す。
【0046】ステップ414においてアレイコントローラ106はソース範囲内に含まれるストリップをデスティネーション範囲内の対応する位置へコピーする。図9はソース範囲内に含まれるストリップがデスティネーション範囲へ転送された後のソース構成500を示す。ステップ414中に、アレイコントローラ106はマイグレーションポインター204も更新する。上昇順マイグレーションに対しては、マイグレーションポインター204は転送サイズNの幅だけ増分される。降下順マイグレーションに対しては、マイグレーションポインター204は転送サイズNの幅だけ減分される。
【0047】ステップ416においてアレイコントローラ106は転送すべきストリップがまだ残っているかどうかを確認する。上昇順マイグレーションに対しては、アレイコントローラ106はマイグレーションポインター204をソース構成500内に含まれる最高LBAとデスティネーション構成600内に含まれる最高LBAの中の小さい方と比較してこの確認を行う。降下順マイグレーションに対しては、アレイコントローラ106はマイグレーションポインター204をゼロと比較してこの確認を行う。肯定的ケースでは(すなわち、デスティネーション構成600へのマイグレーションがまだ完了していない)、ステップ406から416のループをもう1度反復して方法400の実行が継続される。
【0048】否定的ケースでは(すなわち、デスティネーション構成600へのマイグレーションが完了している)、方法400の実行は停止マーカ418で終了する。方法400の実行中に、RAIDシステムはアクセス可能な状態に維持される。データは必要な時(すなわち、重複マイグレーション操作が検出される時)に確保したエリアへ移されるだけなので、方法400を実行するのに要する時間は最小限に抑えられる。方法400もフォールトトレランスである。特に、中断に続いて、アレイコントローラは確保したエリア114に格納されたコピーを使用して重複するストリップの任意の未完の転送を完了させる。それにより重複するストリップがそのオリジナル位置からコピーされる場合に生じることがある潜在的な改変が防止される。そのため停電その他のシステム運転停止後に、方法400を再開することができる。
【0049】重複操作の低減図10に、RAIDシステム100の再構成中に重複するマイグレーション操作の発生を低減する方法をフローチャートを用いて方法1000としてで示す。方法1000は図4のマイグレーション方法400および図3の再構成方法と組み合わせて使用できるようにされている。象徴的に、方法1000は開始プレースホルダー1002で始まる。
【0050】開始プレースホルダー1002にはステップ1004が続く。ステップ1004においてアレイコントローラ106は再構成の結果RAIDシステム100の全体容量が減少するかどうかを確認する。前記したように、この確認は適切なテーブルを参照して行うことができる。肯定的ケースでは(すなわち、RAIDシステム100の再構成により容量が減少する)、ステップ1006において方法1000の実行が継続される。ステップ1006においてアレイコントローラ106は降下順マイグレーションをできるようにする。
【0051】否定的ケースでは(すなわち、RAIDシステム100の再構成により容量減少が生じない)、ステップ1008において方法1000の実行が継続される。ステップ1008においてアレイコントローラ106は上昇順マイグレーションをできるようにする。いずれのケースでも、方法1000の実行は停止プレースホルダー1010で終止する。
【0052】方法1000では、アレイコントローラ106はソースおよびデスティネーション構成の記憶容量に基づいてマイグレーション順序を選択するのが効果的である。ソース構成からデスティネーション構成への再構成により記憶容量が減少するケースでは、アレイコントローラ106は降下順マイグレーションを選択する。他の全てのケースでは、アレイコントローラ106は降下順マイグレーションを選択する。このようにマイグレーション順序を選択することにより、アレイコントローラ106は重複するマイグレーション操作を最小限に抑える。このようにして、マイグレーション速度が高められる。
【0053】本願発明の効果は、引き続く記述中に、ある程度開示され、その記述から当業者によってある程度理解される。本願発明の効果は、特に付属するクレーム及びその等価なもので指摘される構成要素及び組み合わせによって、実現及び達成される。
【出願人】 【識別番号】000000491
【氏名又は名称】アイワ株式会社
【出願日】 平成11年(1999)2月26日
【代理人】 【弁理士】
【氏名又は名称】浅村 皓 (外3名)
【公開番号】 特開平11−327794
【公開日】 平成11年(1999)11月30日
【出願番号】 特願平11−51763