(57)【特許請求の範囲】
【請求項１】
ＲＡＩＤシステムにおいて論理ドライブにおける複数のソース・データを第１構成から物理ドライブ数が第１構成よりも多い第２構成に、第１構成中のソース・データをオーバーレイしつつマイグレーションするための方法にして、
(a)ソース・データを現在の宛先ストライプにマイグレーションするステップと、
(b)後続の宛先ストライプに進むステップと、
(c)それまでに指定されたチェックポイントによってはマイグレーション中に故障が生じた場合に回復できないデータを後続の宛先ストライプが含む場合、前記ステップ(a)でマイグレーションを行った宛先ストライプをチェックポイント指定するステップと、
を含む方法。
【請求項２】
前記ソース・データがすべて前記宛先ストライプにマイグレーションされるまで、後続のソース・データに対して、前記マイグレーションするステップ、前記進むステップ、及び前記チェックポイント指定するステップを繰り返すステップを更に含む、請求項１に記載の方法。
【請求項３】
前記方法は論理ドライブ・マイグレーション時に生じる、請求項１に記載の方法。
【請求項４】
前記方法はドライブ再構成時に生じる、請求項１に記載の方法。
【請求項５】
ＲＡＩＤシステムにおいて論理ドライブにおける複数のソース・データを第１構成から物理ドライブ数が第１構成よりも多い第２構成に、第１構成中のソース・データをオーバーレイしつつマイグレーションするためのデータ処理システムにおけるシステムにして、
(a)ソース・データを現在の宛先ストライプにマイグレーションするための手段と、
(b)後続の宛先ストライプに進むための手段と、
(c)それまでに指定されたチェックポイントによってはマイグレーション中に故障が生じた場合に回復できないデータを後続の宛先ストライプが含む場合、前記手段(a)がマイグレーションを行った宛先ストライプをチェックポイント指定する手段と、
を含むシステム。
【請求項６】
前記ソース・データがすべて前記宛先ストライプにマイグレーションされるまで、後続のソース・データに対して、前記マイグレーションするための手段、前記進むための手段、及び前記チェックポイント指定するための手段の動作を繰り返すための手段を更に含む、請求項５に記載のシステム。
【請求項７】
前記システムは論理ドライブ・マイグレーション時に利用される、請求項５に記載のシステム。
【請求項８】
前記システムはドライブ再構成時に利用される、請求項５に記載のシステム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、概して云えば、データ記憶システムの改良に関し、詳しく云えば、第１のデータ記憶構成から第２のデータ記憶構成にデータを転送するための方法及びシステムの改良に関する。更に詳しく云えば、本発明は、論理ドライブ・マイグレーション時、再構成時、コピー時、又は他のバックグラウンド・プロセス時にマイグレーションされるデータをチェックポイント指定する（ｃｈｅｃｋｐｏｉｎｔｉｎｇ）ための方法及びシステムの改良に関する。
【０００２】
【従来の技術】
マイクロプロセッサのパフォーマンス及びメモリ・テクノロジが改良される時、それに匹敵するパフォーマンスの向上を伴う更に良好なデータ記憶システムを求める要求が存在する。更に、データ記憶システムのパフォーマンスを向上させる場合、データ記憶装置の信頼性の改良を求める要求が存在する。１９８８年に、「International Conference on Management Data」誌の１９８８年６月号の１０９−１１６ページにおける「新磁気ディスク制御機構に関する問題（A Case for Redundant Arrays of Inexpensive Disk (RAID)）」と題したPatterson、Gibson、及びKatz氏による論文が公表された。この論文は、同等のシングル・ディスク・アクセス以上にデータ転送速度及び入出力速度を改善するのみならず、低いコストでデータ記憶システムにおいてエラー訂正を行う新磁気ディスク制御機構の使用の基礎となった。
【０００３】
ＲＡＩＤテクノロジは、コンピュータにおけるいくつもの物理的ドライブを、１つ又は複数の論理ドライブとして定義され得るアレイの形にグループ化することを利用する。各論理ドライブは、オペレーティング・システムにとっては単一のドライブのように見える。このグループ化技法は、単一の物理ドライブにおける物理的制限を越えて論理ドライブ容量及びパフォーマンスを向上させる。複数の物理ドライブが１つの論理ドライブの形にグループ化される時、ＲＡＩＤコントローラは、そのアレイにおける複数のドライブから並列的にデータを転送することができる。この並列化された転送は、非アレイ・ドライブによるデータ転送速度よりも数倍も高いデータ転送速度を生じる。この速度の増加は、複数ユーザ・ネットワーク環境におけるスループット（所与の時間的量において処理されるデータの量）又は生産性の要求にシステムを適合せしめ、応答時間を減少させ得るようにする。複数のリクエストに対する並列的転送及び同時応答の結合は、ディスク・アレイがネットワーク環境において高レベルのパフォーマンスを提供することを可能にする。
【０００４】
ＲＡＩＤテクノロジによって、データは物理ドライブのアレイ全体を通してストライピングされる。このデータ配分方式は、オペレーティング・システムがデータをリクエストする方法を補足する。後続のデータがアレイにおける次のドライブに記憶される前に、データがアレイにおける１つのドライブに記憶される細分度はストライプ・ユニット・サイズと呼ばれる。ストライプ・ユニット・サイズは、システムＩ／Ｏリクエストのサイズに近い値にストライプ・ユニット・サイズをセットすることによってＲＡＩＤコントローラのパフォーマンスを最大にするように制御され得る。一般的には、このストライプ・ユニット・サイズは、８ＫＢ、１６ＫＢ、３２ＫＢ、又は６４ＫＢである。アレイにおける最初の物理ドライブから最後の物理ドライブまでのストライプ・ユニットの集合体がストライプと呼ばれる。
【０００５】
ＲＡＩＤレベルは、本質的には、それらがデータ記憶装置の冗長度を達成するかどうか及びそれを達成する方法によって定義される。ＲＡＩＤ０、１、２、３、４、又は５と呼ばれる６つの標準化されたＲＡＩＤレベルが存在する。最も一般的に使用されるＲＡＩＤレベルは、レベル０、１、及び５である。
【０００６】
ＲＡＩＤレベル０は、アレイにおけるすべてのドライブにおいてデータ冗長度のないデータをストライピングする。冗長データ又はデータ・パリティ記憶のための余地が取られないので、ＲＡＩＤレベル０は、提示されたＲＡＩＤレベルの最大記憶容量を与える。ＲＡＩＤレベル０の論理ドライブの簡単な例は、アレイを作成するために結合された２つの物理ドライブを使用する。そこで、そのアレイ内で論理ドライブが作成され、データがアレイ作成ブロックにおけるすべてのドライブにおいてストライピングされる。各々が特定のストライプ・ユニットに相関しているそれらのブロックはデータを保持する。なお、「ブロック」及び「ストライプ・ユニット」という用語が互換的に使用され得ることに留意してほしい。一般に、第１の物理ドライブは、オリジナル・ソースからのデータ・ブロックを１つおきに含み、第２の物理ドライブは、残りの１つおきのデータ・ブロックを論理ドライブに保持する。
【０００７】
ＲＡＩＤレベル１は１００％のデータ冗長度を与え、最小限２つの物理ドライブを必要とする。ＲＡＩＤレベル１では、ストライプにおける第１の半分はオリジナル・データであり、ストライプにおける第２の半分はそのデータのミラー（正確なコピー）であるが、ＲＡＩＤレベル１のアレイにおける他のドライブに書き込まれる。データはミラーリングされるので、ＲＡＩＤレベル１を割り当てられた時の論理ドライブの容量はアレイ容量の５０％である。代表的なＲＡＩＤレベル１の論理ドライブを設定するために、２つの物理ドライブが１つのアレイを作成し、そのアレイが単一の論理ドライブを作成する。データは、２つの物理ドライブの間のミラー・コピーであるブロックを作成するドライブ全体にわたってストライピングされる。正規のオペレーション時、ＲＡＩＤコントローラはアレイにおけるいずれの物理ドライブからもデータを読み取る。物理ドライブの１つが故障した場合、ＲＡＩＤコントローラは、読み取り及び書き込みリクエストをＲＡＩＤレベル１のアレイにおける残りの機能的ドライブのみに切り替える。故障した物理ドライブを即時に再構成するために、バックアップ・ホットスペア・ドライブが設けられ得る。
【０００８】
ＲＡＩＤレベル５は、最小限３つの物理ドライブを必要とする。このＲＡＩＤレベルは、アレイにおけるすべてのドライブにわたってデータ及びパリティをストライピングする。このパリティ／データ記憶装置は、１つのドライブずつアレイの容量を減少させる。アレイは、３つの物理ドライブを使用して作成され、第４のドライブをホット・スペア・ドライブとして残す。論理ドライブが３つのドライブ・アレイにおいて作成され、データがドライブ作成ブロック全体にわたってストライピングされる。各ストライプには、少なくとも１つのパリティ・ブロックがある。一般には、パリティ・ブロックは、ストライプにおける他の２つの物理ドライブにそのデータの排他的ＯＲ（ＸＯＲ）論理関数の結果を記憶する。データ・ストライプ・ユニットを保持するドライブが故障した場合、そのデータ・ストライプ・ユニット（ブロック）は、ＸＯＲ論理演算を残りのデータ・ストライプに適用することによって再構成され得る。例えば、更に機能的な物理ドライブにおけるデータビットが１であり、ＸＯＲパリティ・ビットが１である場合、故障したドライブにおける失われたデータ・ビットは０となるであろう。残りのデータ・ビットが１であり、ＸＯＲに対するパリティ・ビットが０である場合、失われたデータ・ビットは１でなければならない。単一のＸＯＲ又は他のパリティ・ビットが故障したいずれのドライブも再構成し得るので、パリティ・ビットのチェックはミラーリングよりも更に効率的である。ＲＡＩＤレベル５のアレイにおける物理ドライブが故障した場合、その故障したドライブにおいて失われたデータを含むようにホット・スペア・ドライブが再構成され、ＲＡＩＤコントローラは、その故障したドライブにあったデータに対する読み取り及び書き込み機能をそのホット・スペア・ドライブに切り替える。
【０００９】
論理ドライブ・マイグレーションは、データを論理ドライブの第１構成から同じ論理ドライブの第２構成に移す。このマイグレーションは、１つのＲＡＩＤレベルから他のＲＡＩＤレベルへのマイグレーションであるか、又は論理ドライブの第１構成からその論理ドライブの第２構成へのマイグレーションである。一般には、第２構成は、第１構成よりも大きい数の物理ドライブを有する。論理ドライブ・マイグレーション中にシステムが終了することは可能である。マイグレーションの進行をチェックポイント指定することなくこれが生じる場合、システムは、どのデータがマイグレーション中に上書きされたか、又はどこでその更新されたデータに対するストライプ・ユニットを見つけるべきかわからないであろう。
【００１０】
各ストライプがマイグレーションされる時、そのストライプがマイグレーション・プロセスを追跡するためにチェックポイントが記録され得る。システムがマイグレーション中に故障した場合、マイグレーションは、単に、最後のチェックポイント時にバック・アップを選び得るだけである。しかし、この高い頻度のチェックポイントは、すべてのチェックポイントが将来の検索のために記憶されなければならないので、非常に費用のかかるものとなる。このチェックポイントがディスク・ドライブに記憶される場合、チェックポイント保存機能は非常に低速である。チェックポイントが、マイグレーションされようとしている論理ドライブからドライブ・スペースの始め又は終わりにおける制御領域に記憶される場合、ディスク・ヘッドは、マイグレーションされるデータからチェックポイント領域まで前後に動かれなければならず、それは機械的にも、時間的にも禁止されている。たとえ、システムが不揮発性ランダム・アクセス・メモリ（ＮＶＲＡＭ）を有していても、ＮＶＲＡＭアクセスは一般に正規のメモリ・アクセスよりもずっと遅いので、チェックポイント指定は、依然として取るに足りないことではない。
【００１１】
【発明が解決しようとする課題】
従って、知的なチェックポイント指定を使用することによって論理ドライブ・マイグレーションのパフォーマンスを改良する方法を求める要求が存在することは明らかである。更に、そのような方法がコンピュータ・システムにおいて遂行される場合、コンピュータ・プログラム製品を創作することが望ましいであろう。更に、改良された論理ドライブ機能を有する複数ドライブ・システムを創作することも望ましいであろう。
【００１２】
【課題を解決するための手段】
本発明は、論理ドライブの第２構成における宛先ストライプがチェックポイント指定される前に、その宛先ストライプが論理ドライブの第１構成におけるデータをオーバレイするデータを、そのデータがマイグレーションされる時、含むかどうかを決定するための方法を組み込む。宛先ストライプにデータをマイグレーションする前に、オーバレイしたデータがマイグレーションした位置をシステムに知らせるためにそのデータがチェックポイント指定されなければならない。本発明を実施する装置は、ＲＡＩＤコントローラにおいて任意のＲＡＩＤレベルで具体化され得る。更に、上記の方法は、再構成及びコピーのような他のデータ記憶装置のバックグラウンド・プロセスにおいてデータ・マイグレーションをチェックポイント指定するために使用され得る。本発明は、上記の方法を実行するためのマシン可読命令を有するコンピュータ・プログラムにおいても具体化され得る。
【００１３】
【発明の実施の形態】
図面、特に、図１を参照すると、本発明を実施するために利用可能なＲＡＩＤデータ記憶システムのブロック図が示される。図示のように、ＲＡＩＤデータ記憶システム１０は、周辺コンポーネント相互接続（ＰＣＩ）バス・アダプタ２０を介してホスト・システム１２に結合される。データ記憶システム１０及びホスト・システム１２は、データ処理システム（図示されていない）のような単一のハードウェア・ユニットに組み込まれ得る。別の方法として、データ記憶システム１０は、１つのハードウェア・ユニットに組み込まれ得るし、ホスト・システム１２は、データ処理システムのような別のハードウェア・ユニットに組み込まれ得る。
【００１４】
ホスト・システム１２は、複数の異なるオペレーティング・システムの下にある種々のデータ処理システムにおいて実施され得る。データ処理システムは、例えば、パーソナル・コンピュータ、ミニ・コンピュータ、又はメインフレーム・コンピュータであってもよい。データ処理システムは、スタンドアロン・システムであってもよく、或いは、ローカル・エリア・ネットワーク（ＬＡＮ）又は広域ネットワーク（ＷＡＮ）のようなネットワークの一部であってもよい。
【００１５】
図示のように、ＲＡＩＤデータ記憶システムであることが望ましいデータ記憶システム１０を制御するために、プロセッサ１４が利用される。プロセッサ１４は、プロセッサ・バス１６に結合される拡張マイクロプロセッサであることが望ましい。図示のように、プロセッサ・バス１６は、プロセッサ１４によって利用されるコード及びデータを一時的に記憶するために利用されるコード／データ・ランダム・アクセス・メモリＲＡＭ１８にも結合される。プロセッサ１４は、ＲＡＭ１８に記憶されたホスト・プロセッサ１２からの読み取りコマンドを読み取って実行するようにＲＡＭ１８と相互作用する。一般には、読み取り専用メモリＲＯＭ２２及び不揮発性ランダム・アクセス・メモリ（ＮＶＲＡＭ）２４が８ビット・バスを利用することによってアクセスされ、従って、一般には３２ビット・バスを利用するプロセッサ・バス１６にそれらの装置をインターフェースするために、バス・インターフェース２６が利用される。
【００１６】
命令コードは、一般に、ＲＯＭ２２に記憶される。なお、ＲＯＭ２２は、当業者には明らかなように、いわゆる「フラッシュ」ＲＯＭを利用して提供されるのが一般的である。しかる後、本発明の機能を含む機能を実行するようプロセッサ１４の動作を指示するために、命令コードがその動作の開始時にプロセッサ１４によってＲＯＭ２２からフェッチされる。ＮＶＲＡＭ２４は、主電源が切られた時にＮＶＲＡＭ２４に記憶されていた情報が失われないように、バッテリによる「バックアップ」のためにパワーアップされる低電力の相補型金属酸化膜半導体（ＣＭＯＳ）メモリである。従って、ＮＶＲＡＭ２４は、ＲＯＭ２２に記憶されたものと同じ形態で構成データ又は命令コードを記憶するために利用され得る。ＲＯＭ２２は、一般に、初期電源投入時に更新され、操作中のシステム構成に対する如何なる変更もＮＶＲＡＭ２４に記憶され、しかる後、「装置変更リスト」に入れられる。その装置変更リストは、ＮＶＲＡＭ２４内に記憶され、システムにおける各ディスク・ドライブにも記憶される。
【００１７】
ダイナミック・ランダム・アクセス・メモリ／排他的ＯＲ（ＤＲＡＭ／ＸＯＲ）コントローラ３０に結合されるキャッシュ２８が設けられる。キャッシュ２８は、各一時的記憶位置が１ページのキャッシュ２８として参照され得る複数の一時的記憶位置の形に構成され得る。ＤＲＡＭ／ＸＯＲコントローラ３０は、ランダム・アクセス・メモリに対するアクセスを制御するために利用され、更新されたデータの変更に関するパリティを迅速に且つ効率的に計算するために利用され得るハードウェア実装の排他的ＯＲ（ＸＯＲ）回路を提供する。
【００１８】
ＤＲＡＭ／ＸＯＲコントローラ３０はローカル・バス３２に結合される。複数の小型コンピュータ・システム・インターフェース（ＳＣＳＩ）コントローラ・チップ３４、３６、及び３８もローカル・バス３２に結合される。各ＳＣＳＩコントローラ３４、３６、及び３８は、複数のディスクから成るディスク・ドライブ記憶システムをそれぞれサポートし得るチャネルを含むものとして定義される。データ記憶システムを実装するために別のインターフェース・バス・アーキテクチャが利用され得ることは、当業者には明らかであろう。そのような別のバス・アーキテクチャは、インテリジェント・ドライブ・エレクトロニクス（Intelligent Drive Electronics - IDE）、エンハンスト・インテリジェント・ドライブ・エレクトロニクス（Enhanced Intelligent Drive Electronics - EIDE）、ファイバ・チャネル（Fiber Channel）等を含む得る。しかし、本発明の図示の例は、ＳＣＳＩバス・アーキテクチャにおいて構成される複数のディスク・ドライブ・データ記憶システム４０、４２、及び４４を利用する。
【００１９】
図２を参照すると、本発明のＲＡＩＤレベル０のディスク・ドライブ・システムの概略図が示される。論理ドライブを定義するために任意の数の物理ドライブを使用して、本発明が任意のレベルのＲＡＩＤを使用し得ることは勿論である。明瞭にするために、図２に示されるように、本発明は、１−ドライブＲＡＩＤレベル０から２−ドライブＲＡＩＤレベル０にマイグレーションするものとして示される。図示の例では、第１論理ドライブ構成４６は、単一のスタンドアロンのパーティション付きドライブと機能的に同等である単一の第１物理ドライブ４８を有する１−ドライブＲＡＩＤレベル０の論理ドライブである。第１物理ドライブ４８は、ソース・ストライプ＃１乃至ソース・ストライプ＃"ｘ"として図２において標識付けされた複数のソース・ストライプ５０から成る。次の方法ステップでは、"ｘ"に対する参照符号は、ソース・ストライプ５０のソース・ストライプ番号の代用である。なお、"ｘ−１"データ・ストライプ・ユニット５２は"ｘ"データ・ストライプ・ユニット５２に先行し、"ｘ"データ・ストライプ・ユニット５２は"ｘ＋１"データ・ストライプ・ユニット５２に先行する。同様に、"ｎ"に対する参照符号は、第２論理ドライブ構成５４における宛先ストライプ５８のストライプ番号の代用である。
【００２０】
各ソース・ストライプ５０は、独特の且つ単一のストライプ・ユニット５２を有し、それのサイズはユーザによって任意に設定可能である。ストライプ・ユニット５２に対する代表的なストライプ・ユニット・サイズは、８ＫＢ、１６ＫＢ、３２ＫＢ、又は６４ＫＢである。図示の例では、各ソース・ストライプ５０は、ソース・ストライプ１乃至ソース・ストライプｘに対応するように、図２において、それぞれ"Ａ"乃至"Ｚ"として標識付けされたデータを含む。論理ドライブ・マイグレーション（ＬＤＭ）オペレーションは、第１論理ドライブ構成４６から第２論理ドライブ構成５４にデータをマイグレーションする。第２論理ドライブ構成５４は、第１論理ドライブ構成４６において見られる第１物理ドライブ４８と第２物理ドライブ５６とを含む。第２論理ドライブ構成５４は、図２においてストライプ"１"乃至"ｎ"と番号付けされた複数の宛先ストライプ５８を作成するためにストライプ・ユニット５２全体にわたってストライピングされる。
【００２１】
データＡ及びデータＢを含む第１ソース・ストライプ５０がマイグレーションされる時、第１論理ドライブ構成４６からのデータは、宛先ストライプ１として指定された宛先ストライプ５８の第１物理ドライブ４８におけるデータをオーバーレイする。第１論理ドライブ構成４６のソース・ストライプ２からのデータＢは、第２物理ドライブ５６の第１ストライプ・ユニット５２において新しいスペースをオーバーレイする。データＡは実際には動かされず、データＢが新しいスペースをオーバーレイするので、この時チェックポイント指定する必要はない。システムがクラッシュし、しかる後、回復される場合、第１論理ドライブ構成４６からのデータＡ及びＢが再読み取りされ、同じ結果を第２論理ドライブ構成５４にマイグレーションされる。
【００２２】
ストライプ２として指定された宛先ストライプ５８がオーバーレイされる場合、第１論理ドライブ構成４６からのデータＣ及びデータＤが宛先ストライプ５８のストライプ２に書き込まれる。このマイグレーションは、第１物理ドライブ４８の第２ストライプにおいてデータＢを有する古い構成からデータＢをオーバーレイするであろう。従って、第１物理ドライブ４８のストライプ２に最初に記憶されたデータＢはなくなってしまうので、宛先ストライプ５８のストライプ１は再マイグレーションされ得ない。従って、論理ドライブ・マイグレーションは、宛先ストライプ５８のストライプ１においてチェックポイント指定される。一般に、チェックポイントは、論理ドライブの１つのアレイにおいて１つ含むハード・ドライブに記憶されるか又はそのシステムにおける不揮発性ランダム・アクセス・メモリＮＶＲＡＭに記憶される。チェックポイントは、ＬＤＭの進行を論理的に記述する。次に、マイグレーションが実行され、その結果生じたデータは、宛先ストライプ５８のストライプ１においてデータＡ及びＢを有し、宛先ストライプ５８のストライプ２においてデータＣ及びＤを有する。
【００２３】
同様に、宛先ストライプ５８のストライプ３にマイグレーションする時、データＥ及びデータＦが第１論理ドライブ構成４６から読み取られ、宛先ストライプ５８のストライプ３に書き込まれる。これは、第１物理ドライブ４８のストライプ３においてデータＣをオーバーレイするであろう。それは、ストライプ３における第１論理ドライブ構成４６からのデータＣがなくなってしまうため、宛先ストライプ５８のストライプ２が再マイグレーションされ得ないことを意味する。従って、論理ドライブ・マイグレーションが宛先ストライプ５８のストライプ２においてチェックポイント指定されなければならない。データがマイグレーションされ、その結果生じた宛先ストライプ５８は、ストライプ１においてデータＡ及びデータＢを有し、ストライプ２においてデータＣ及びデータＤを有し、ストライプ３においてデータＥ及びデータＦを有する。
【００２４】
宛先ストライプ４がそれに継続すると、データＧ及びＨが宛先ストライプ５８のストライプ４に書き込まれる。これは、第１物理ドライブ４８におけるストライプ４においてデータＤをオーバーレイするであろう。それは、データＤがなくなってしまうために宛先ドライブ５８のストライプ２が再マイグレーションされ得ないことを意味する。しかし、宛先ストライプ５８のストライプ２は既にチェックポイント指定されているため、それは再びチェックポイント指定される必要がない。データ・マイグレーションが行われ、その結果生じたデータは、ストライプ１においてデータＡ及びデータＢを有し、ストライプ２においてデータＣ及びデータＤを有し、ストライプ３においてデータＥ及びデータＦを有し、ストライプ４においてデータＧ及びデータＨを有する。すべてのストライプが宛先ストライプ５８である。
【００２５】
ストライプ５がそれに継続すると、第１論理ドライブ構成４６からのデータＩ及びデータＪが読み取られ、宛先ストライプ５８のストライプ５に書き込まれる。これは、古い構成からのデータＥをオーバーレイする。それは、データＥがなくなってしまうのでストライプ３が再マイグレーションされ得ないことを意味する。従って、宛先ストライプ５８のストライプ３は、通常、チェックポイント指定される必要があるであろう。しかし、マイグレーションが宛先ストライプ５８のストライプ４を通して既に生じているので、その最後にマイグレーションされたストライプがチェックポイント指定される。即ち、宛先ポイント５８のストライプ４をチェックポイント指定することは、データＡ乃至データＨからのすべてのデータのマイグレーションを斟酌するので、宛先ストライプ５８のストライプ３のチェックポイント指定をスキップすることが可能にされる。ストライプ５までのデータ・マイグレーションが行われ、その結果生じたデータは次表のようになる。
【表１】
0003752203.tif 000002
【００２６】
それに続く宛先ストライプ５８が継続すると、データが第１論理ドライブ構成４６から読み取られ、第２論理ドライブ構成５４に書き込まれる。データ・マイグレーションは宛先ストライプ５８のストライプ９まで継続するので、第２論理ドライブ構成５４の第１物理ドライブ４８及び第２物理ドライブ５６、並びにソース論理ドライブ４６は、次表のような構成でデータを含むであろう。
【表２】
0003752203.tif 000003
【００２７】
この時点で、最初に第１論理ドライブ構成のソース・ストライプ８にあったデータＨ及びすべての先行のデータＡ乃至データＧが宛先ストライプ５８のストライプ４のチェックポイントしていによって斟酌されている。第１物理ドライブ４８にデータＩを含むストライプ９をオーバーレイする前に、宛先ストライプ５８のストライプ５は、データＩのロケーションに関してシステムを更新するためにチェックポイント指定されなければならない。しかし、マイグレーションが宛先ストライプ５８のストライプ８を通して既に生じているので、チェックポイントが宛先ストライプ５８のストライプ８に適用される。従って、宛先ストライプ５８のストライプ５、６、又は７をチェックポイント指定する必要がない。同じ傾向が続くと、第１物理ドライブ４８におけるソース・データがオーバーレイされるまで、チェックポイント指定が再び行われる必要がなく、ソース・データがそれ以前のマイグレーションを斟酌されなかったこと及びそれ以前のマイグレーションからチェックポイント指定されなかったことは明らかである。１−ドライブＲＡＩＤレベル０から２−ドライブＲＡＩＤレベル０までの論理ドライブ・マイグレーションに関する本願の説明では、チェックポイント指定は、ストライプ１、ストライプ２、ストライプ４、ストライプ８、ストライプ１６、ストライプ３２等において生じる必要があるであろう。
【００２８】
チェックポイント相互間の必要な間隔は漸進的に増加するので、マイグレーションに入る簡単な方法は、データ・オーバーレイによりチェックポイント指定するためのプロンプト無しに数百のストライプのマイグレーションを生じるであろう。或る所定数のソース・マイグレーション時に、宛先ストライプに対して閾値ストライプ・チェックポイントが記録されなければならない。
【００２９】
次に、図３を参照すると、本発明を図解する高レベルのフローチャートが示される。図３が所望の結果を導く一貫したステップ・シ−ケンスを表すことは当業者には明らかであろう。それらのステップは、物理的に高品質の物理的操作を必要とするものである。通常、これらの量は、記録され、転送され、結合され、比較され、或いは、操作されることが可能な電気的、光学的、又は磁気的信号の形式を取るが、必ずしもそれらの形式を取る必要はない。これらの信号をビット、数値、エレメント、記号、文字、用語、番号等として参照する方が都合よいということが当業者によりよく証明される。しかし、これらの用語及び同様の用語はすべて適切な物理的量と関連すべきものであって、それらの量に適用された単なる都合のよい標識であるということを留意すべきである。
【００３０】
更に、行われる操作は、操作者によって遂行される知的な操作と一般に関連する加算、比較のような用語として参照されることが多い。本発明の一部を形成する本願で開示された何れの操作においても、操作者のそのような能力は、ほとんどの場合、必要なことでもないし、望ましいことでもない。本発明の望ましい実施例の操作を遂行するための有用なマシンは、汎用ディジタル・コンピュータのようなデータ処理システム又は他の同様な装置を含む。すべてのケースにおいて、コンピュータを操作する方法と計算の方法自体との間の違いは留意すべきである。本発明は、所望の物理的信号を発生するために電気的信号又は他の物理的信号を処理する場合に、図１のプロセッサ１４のようなプロセッサを操作するための方法ステップに関する。
【００３１】
図示のように、図３において説明されるプロセスは、ブロック６０において始まり、しかる後、ブロック６２において記述されたステップに進む。ブロック６０は、宛先ストライプ５８のストライプ１を指定することを表す。第１論理ドライブ構成４６からのソース・データが、ブロック６２において示されるように、宛先ストライプ５８のストライプ１に先ずマイグレーションされる。プロセスは、ブロック６４において示されるように、次の宛先ストライプに進むことによって継続する。ブロック６６は、この時点では宛先ストライプ５８のストライプ２である現在の宛先ストライプがチェックポイント指定されてないデータを含むかどうかの決定を示す。チェックポイント指定されてないデータは、以前にマイグレーションされたデータの現ロケーションをシステムに知らるチェックポイントを宛先ストライプ・チェックポイント又は閾値ストライプ・チェックポイントの形式で受けなかった宛先ストライプにあるデータとして定義される。
【００３２】
宛先ストライプがチェックポイント指定されてないデータを含まない場合、ブロック６８において示されるように、チェックポイントされてないストライプの数が、宛先ストライプ・チェックポイントの最後のレコーディング以後に生じたソース・データ・マイグレーションの所定の閾値数を越えるかどうかの決定が行われる。それがこの所定数の閾値を越えてない場合、ブロック６２において示されるように、ソース・データが現在の宛先ストライプ５８にマイグレーションされる。
【００３３】
チェックポイント指定されてないストライプの数が所定の閾値を越える場合、現在の宛先ストライプ５８のすぐ前の先行する宛先ストライプ５８（ブロック７０において示されるように、宛先ストライプｎ−１）に対して、閾値ストライプ・チェックポイントが割り当てられるであろう。更に、ブロック６６において示されるように、宛先ストライプ５８が、最後のチェックポイント指定以後に前のマイグレーションの所定閾値数を越える時又は越えない時、チェックポインタ指定されてないデータを含む場合、再びブロック７０に示されるように、直前の宛先ストライプ５８に対する宛先ストライプ・チェックポイントが割り当てられる。
【００３４】
論理ドライブ・マイグレーション時に着信データ書き込みオペレーションを処理することができるということは本発明の重要な特徴である。図４に示された高レベルのフローチャートにおいて図解されるように、本発明は、第１論理ドライブ構成４６又は第２論理ドライブ構成５４への書き込みを、その書き込みがマイグレーションされているストライプ・ユニット５２のブロックに対するものであるかどうかに従って受け入れることができる。そこで、図４を参照すると、ブロック７２において示されるように、データ書き込み機能が既にマイグレーションされている宛先ストライプ５８に対するものであるかどうかに関して、決定が行われる。その書き込みが既にマイグレーションされている宛先ストライプ５８に対するものでない場合、即ち、それがデータをマイグレーションされてなかったソース・ドライブ５０に対するものである場合、ブロック７８において示されるように、その書き込みは第１論理ドライブ構成４６に対して実行される。データ書き込みオペレーションがマイグレーションされている宛先ストライプ５８に対するものである場合、ブロック７４において示されるように、宛先ストライプ５８がチェックポイント指定されているかどうかに関する決定が行われる。その宛先ストライプがチェックポイント指定されている場合、ブロック７８において示されるように、データ書き込みが実行される。ブロック７４において参照された宛先ストライプ５８がチェックポイント指定されてない場合、ブロック７６において示されるように、最後のマイグレーションされた宛先ストライプ５８にチェックポイントが割り当てられる。
【００３５】
ブロック７６において参照された最後のマイグレーションされた宛先ストライプ５８は、データ書き込みが実行されるべきストライプ・ユニット５２を含む宛先ストライプ５８に続く宛先ストライプ５８であってもよい。明らかに、チェックポイント指定されるべき最も早い宛先ストライプ５８は、データ書き込みオペレーションが生じようとしている宛先ストライプ５８のすぐ前にある宛先ストライプ５８であろう。例えば、図２に関して、チェックポイント指定されるべき最後の宛先ストライプ５８は宛先ストライプ４であり、データ書き込みはデータＫに関するものであると仮定する。最後のマイグレーションがストライプ５（データＩ及びＪを保持する）のような先行の宛先ストライプ５８に対するものである場合、書き込みは既にマイグレーションされている宛先ストライプに対するものではないので、チェックポイントは必要ない。最後のマイグレーションが現在の宛先ストライプ５８のストライプ６（データＫ及びＬを保持する）に対するものであった場合、宛先ストライプ５８のストライプ６は、最後のマイグレーションされたストライプであるであろうし、データＫに関する書き込みを受け付ける前にチェックポイント指定されるであろう。最後のマイグレーションがストライプ７（データＭ及びＮを保持する）のようなすぐ後の宛先ストライプ５８に関するものである場合、そのストライプ７は、最後のマイグレーションされたストライプであるであろうし、宛先ストライプ・チェックポイントによってチェックポイント指定されるであろう。
【００３６】
本発明の説明において見られるように、この方法及びシステムは、ＬＤＭにおいてマイグレーションされたデータをモニタし且つ追跡するための大きく改良された手法を提供する。チェックポイント指定は、それが論理的に必要である時だけ、即ち、データが（上述の宛先ストライプ・チェックポイントの使用によって）上書きされようとしている時に、従って、やり直すことが煩わしく、（上述の閾値ストライプ・チェックポイントの使用によって）費用のかかることになるほど多くのデータ・マイグレーションが生じた時に生じる。従って、チェックポイント指定する論理的且つ費用効果の高いシステムが達成される。更に、そのチェックポイント・システムは、特定のブロックに関する現在の論理ドライブ・ロケーションを追跡することによって、ＬＤＭ時のデータ書き込みを制御するために有利に使用され得る。
【００３７】
本発明の方法を指示する命令コードを実行するデータ記憶システムに関連して本発明の側面を説明したが、本発明が、別の方法として、データ処理システム又はコンピュータ・システムと共に使用するためのプログラム製品として実施され得ることは勿論である。本発明の機能を定義するプログラムは、非書き込み可能記憶媒体（例えば、ＣＤ−ＲＯＭ）、書き込み可能記憶媒体（例えば、フロッピ（Ｒ）ディスケット、ハード・ディスク・ドライブ、読み取り／書き込みＣＤ−ＲＯＭ、光学的メディア）及びイーサネット（Ｒ）を含むコンピュータ及び電話ネットワークのような通信メディアを含む種々の信号担持媒体を介してデータ記憶システム又はコンピュータ・システムに配送され得る。従って、そのような信号担持媒体が本発明の方法機能を指示するコンピュータ可読命令を担持し又はエンコードする時、それが本発明の別の実施例を表すことは勿論である。更に、本発明が本願において開示されたようにハードウェア、ソフトウェア、又はハードウェア及びソフトウェアの組み合わせの形式の手段、或いはそれらの均等物を有するシステムによって実施され得ることも勿論である。
【００３８】
本発明が望ましい実施例に関して詳細に示され、開示されたけれども、本発明の精神及び技術範囲から逸脱することなく、形態及び細部における種々の変更が行われ得ることは当業者には明らかであろう。特に、図解のために使用された主要な例はＲＡＩＤ−０構成におけるものであったけれども、他のＲＡＩＤレベルが本発明による方法及びシステムを使用することも可能である。
【００３９】
まとめとして、本発明の構成に関して以下の事項を開示する。
【図面の簡単な説明】
【図１】本発明の望ましい実施例に従って利用可能なデータ記憶システムのブロック図を示す。
【図２】１−ドライブＲＡＩＤレベル０から２−ドライブＲＡＩＤレベル０までデータを移動させるＲＡＩＤ論理ドライブ・マイグレーションの描画的イメージを示す。
【図３】論理ドライブマイグレーションにおける本発明のチェックポイント・システムの方法を表す高レベルの論理フロー・チャートを示す。
【図４】論理ドライブ・マイグレーション時の並行書き込みを示す高レベルの論理フロー・チャートを示す。
【図１】
0003752203.tif 000004
【図２】
0003752203.tif 000005
【図３】
0003752203.tif 000006
【図４】
0003752203.tif 000007