(57)【特許請求の範囲】
【請求項１】
物理記憶容量の異なる複数の記憶ディスクからなる異種階層ディスク・アレイを有するデータ記憶システムにおいて記憶容量を使用する方法であって、前記複数の記憶ディスクが全体の物理記憶空間を画定しているものにおいて、
(a)前記ディスク・アレイを、前記ディスク・アレイ内の他の記憶ディスクの物理記憶容量より大きい少なくとも２つの同一の物理記憶容量を有する記憶ディスクを含むように構成するステップと、
(b)前記ディスク・アレイ内の前記記憶ディスクを複数の領域にセグメント化するステップと、
(c)前記複数の記憶ディスク上の連続領域からＲＡＩＤ領域を形成するステップであって、該連続領域は、全て同じ物理アドレスを有する異なる記憶ディスク上の物理記憶空間を表す領域であるステップと、
(d)前記ＲＡＩＤ領域を、前記物理記憶空間のビューを単一記憶ボリュームとして提供する仮想記憶空間にマッピングするステップと、
(e)選択されたＲＡＩＤレベルに従ってデータを前記ＲＡＩＤ領域に記憶し、前記ＲＡＩＤ領域のそれぞれが何らかの冗長データを記憶するようにするステップと、
からなる方法。
【請求項２】
前記ＲＡＩＤ領域に記憶されるデータは、ＲＡＩＤレベル１およびＲＡＩＤレベル５からなるグループから選択されたＲＡＩＤレベルに従って記憶される、請求項１の方法。
【請求項３】
前記ディスク・アレイの記憶容量が最大使用率に近づいたとき、ＲＡＩＤレベル１に従ってＲＡＩＤ領域に記憶されたデータをＲＡＩＤレベル５に従って記憶されたデータに変換することにより、ＲＡＩＤレベル１に従って記憶されたデータに対するＲＡＩＤレベル５に従って記憶されたデータの割合を増大させ、これによって、前記物理記憶空間の使用効率を最適化する、請求項２の方法。
【請求項４】
物理記憶容量の異なる複数の記憶ディスクからなる異種階層ディスク・アレイを有するデータ記憶システムにおいて記憶容量を使用する方法であって、前記複数の記憶ディスクが全体の物理記憶空間を画定しているものにおいて、
(a)前記ディスク・アレイを、異なる物理記憶容量を有する複数の記憶ディスクを含むように構成するステップと、
(b)前記異なる物理記憶容量の記憶ディスクを複数の領域にセグメント化するステップと、
(c)個々の前記記憶ディスクの非連続領域を連結してＲＡＩＤ領域を形成するステップであって、該非連続領域は、異なる物理アドレスを有する異なる記憶ディスク上の記憶空間を表す領域であるステップと、
(d)前記ＲＡＩＤ領域を、前記物理記憶空間のビューを単一記憶ボリュームとして提供する仮想記憶空間にマッピングするステップと、
(e)選択されたＲＡＩＤレベルに従ってデータを前記ＲＡＩＤ領域に記憶し、前記ＲＡＩＤ領域のそれぞれが何らかの冗長データを記憶するようにするステップと、
からなり、
前記ステップ(e)においてデータを記憶するために選択されるＲＡＩＤレベルは、ＲＡＩＤレベル１およびＲＡＩＤレベル５からなるグループから選択され、
前記ディスク・アレイの記憶容量が最大使用率に近づいたとき、ＲＡＩＤレベル１に従って前記ＲＡＩＤ領域に記憶されたデータをＲＡＩＤレベル５に従って記憶されたデータに変換することにより、ＲＡＩＤレベル１に従って記憶されたデータに対するＲＡＩＤレベル５に従って記憶されたデータの割合を増大させ、これによって、前記物理空間の使用効率を最適化する方法。
【請求項５】
前記連結するステップ(c)は、ポインタ連鎖技法を用いて前記非連続領域を連結し、前記ＲＡＩＤ領域において個々の領域が次の領域を指すようにすることを含む、請求項４の方法。
【請求項６】
物理記憶容量の異なる複数の記憶ディスクからなる異種階層ディスク・アレイを有するデータ記憶システムにおいて記憶容量を使用する方法であって、
前記異種階層ディスク・アレイの物理記憶容量の異なる前記記憶ディスクを複数の領域にセグメント化するステップと、
前記記憶ディスクの前記領域から第１のＲＡＩＤ領域および第２のＲＡＩＤ領域を形成するステップと、
データを、ＲＡＩＤレベル１に従って前記第１のＲＡＩＤ領域に、および、ＲＡＩＤレベル５に従って前記第２のＲＡＩＤ領域に記憶するステップと、
前記ディスク・アレイの記憶容量が最大使用率に近づいたとき、ＲＡＩＤレベル１に従って前記第１のＲＡＩＤ領域に記憶されたデータを前記第２のＲＡＩＤ領域へ移行し、ＲＡＩＤレベル１に従って記憶されたデータに対するＲＡＩＤレベル５に従って記憶されたデータの割合を増大させ、これによって、前記物理空間の使用効率を最適化するステップと、
からなる方法。
【発明の詳細な説明】
【０００１】
【産業上の利用分野】
本発明は、階層ディスク・アレイ・データ記憶システム等のデータ記憶システム、及びこうしたシステムにおいて容量の異なる記憶ディスクを単一記憶ボリューム内で使用する方法に関する。
【０００２】
【従来の技術】
コンピュータ・システムは、速度、信頼性、及び処理能力の点で絶えず進歩している。その結果、コンピュータは、より複雑で高度なアプリケーションを処理できるようになった。しかし、コンピュータが進歩するにつれて、大容量記憶域、及び入出力(I/O)装置に対する性能面での要求が増加している。進化するコンピュータ・システムに性能面で追随する大容量記憶システムを設計する必要が引き続きある。
【０００３】
本発明は、特に、ディスク・アレイ・タイプの大容量記憶システムに関する。ディスク・アレイ・データ記憶システムは、単一大容量記憶システムを形成するように配置、調整された複数の記憶ディスク・ドライブ装置を有する。大容量記憶システムには、コスト、性能、及び可用性の３つの主要な設計基準がある。１メガバイト当りのコストが低く、入出力性能が高く、データ可用性が高い記憶装置を製造することが最も望ましい。「可用性」とは、障害、又は他の何らかの理由のためにデータのある部分がアクセス不能になった場合でも、記憶システム内に記憶されているデータを回復する能力と、そうした障害の場合に、動作を確実に続けられる能力である。通常、データ可用性は、データ、又はデータ間の関係が複数の位置に記憶される、冗長性を用いることによって与えられる。
【０００４】
【発明が解決しようとする課題】
冗長データを記憶する２つの一般的な方法がある。第１の方法、即ち「ミラー」技法によれば、データは記憶システムの２つの別々の領域にコピーされ記憶される。例えば、ディスク・アレイでは、ディスク・アレイ内の２つの別々のディスクに同一のデータが提供される。ミラー技法は、二重の記憶技法であるために、性能、及びデータ可用性が高いという利点を有する。しかし、ミラー技法はデータを記憶するコストを事実上２倍にするので、比較的高価でもある。
【０００５】
第２の方法、即ち「パリティ」技法では、記憶領域の一部分が冗長データを記憶するために使用されるが、この冗長データ記憶領域のサイズは、元のデータを記憶するために使用された現存する記憶空間より小さい。例えば、５つのディスクを有するディスク・アレイでは、４つのディスクが、データを記憶するために使用され、５つ目のディスクが、冗長データを記憶するためだけに使用される。パリティ技法は、ミラー技法よりコストが低いため有利ではあるが、ミラー技法と比べて性能、及び可用性が低い。
【０００６】
ディスク・アレイ・データ記憶システムを設計する際の１つの問題は、記憶ディスクによって提供される記憶容量を最大限使用し、冗長によって、データについて所望の可用性、及び信頼性を維持することに関する。この問題は、記憶容量の等しい複数の記憶ディスク・ドライブ装置を使用する「同種の」ディスク・アレイの場合はあまり問題にならない。一方、記憶容量の異なる複数の記憶ディスクを使用する「異種の」ディスク・アレイではこの問題が顕在化する。従来の複数異種ディスク・アレイは、その構成の中で最も小さい容量のディスクの容量を超える、各記憶ディスク上の部分が使用できないことが多い。このような使用率の低下は、記憶コストの増大を招き望ましくない。
【０００７】
従来技術における１つの解決策は、これらの容量の異なる不均一な記憶ディスクを複数の独立した記憶ボリュームとしてホスト・コンピュータ・システムに提供することである。この解決策は、容量計画、及びデータ管理の面で複雑さ、及び困難さを増すという欠点がある。
【０００８】
関連する他の問題は、既存のディスク・アレイ・データ記憶システムに、容量のより大きな記憶ディスク・ドライブ装置を追加することに関する。技術の進歩によって、ディスク・ドライブ装置の記憶容量が改良されてきており、従って、既存のディスク・アレイの記憶容量を増加させるために、後で購入された記憶ディスクは通常、現在ディスク・アレイにある古いディスクより大きな容量を有している。こうした新しい大容量のディスクを追加すると、以前は同種であったディスク・アレイはバランスが崩れ、すでに異種となったディスク・アレイは更に多様化する可能性がある。従来のディスク・アレイでは、新しいディスクの追加記憶容量は、構成内で最も小さい容量のディスクの容量を超えているので無駄になることが多い。
【０００９】
従って、複数の独立した記憶容量を定義することなく、ディスク・アレイ・データ記憶システム内の全ての記憶容量の使用率を向上させ、同時に、データ可用性を維持する必要がある。容量の異なる追加記憶ディスクに適応し、その容量全てを使用するディスク・アレイも必要である。
【００１０】
【課題を解決するための手段】
本発明は、容量の異なる不均一な記憶ディスクを異種階層ディスク・アレイにおいて使用する方法を提供する。本発明は、容量の異なる記憶ディスクを別々の記憶ボリュームとして提供せずに、これらの記憶ディスクを単一ボリュームとしてホスト・コンピュータ・システムに提供し、この最大限の使用を達成する。
【００１１】
記憶容量を使用する一方法によれば、異種階層ディスク・アレイは、最小限２つのサイズの等しい記憶ディスクを含むように構成され、その記憶ディスクはディスク・アレイ内の記憶ディスクのうちで容量が最大でもある。ここで、そのアレイ内の全ての記憶ディスクが、複数の領域にセグメント化される。RAID領域は、複数のディスクにわたる、連続した領域で形成される。この連続した領域は個々の記憶ディスク上の同じ物理アドレスにある物理記憶空間を表している。
【００１２】
RAID領域は、物理記憶空間のビューを単一記憶ボリュームとして提供する仮想記憶空間にマッピングされる。次に、各RAID領域が幾つかの冗長データを記憶する、選択されたRAIDレベル（RAIDレベル１、又はRAIDレベル５等）に従うRAID領域に、データが記憶される。従って、２つ以上の、容量が最大であるディスクを使用して、次に大きな容量のディスクの容量を超える部分から成る、連続した記憶領域に、ミラー冗長（容量が最大であるディスクが２つ以上の場合）、又はパリティ冗長（容量が最大であるディスクが３つ以上の場合）に従ってデータを記憶することができる。
【００１３】
記憶容量を使用する他の方法は、個々の記憶ディスクの非連続領域を結合してRAID領域を形成することである。連続領域とは異なり、このような非連続領域は、様々な複数の記憶ディスクにわたって散在する異なる物理アドレスにある物理記憶空間を表す。このRAID領域も、物理記憶空間のビューを単一記憶ボリュームとして提供する仮想記憶空間にマッピングされる。データは、各RAID領域が幾つかの冗長データを記憶する、選択されたRAIDレベルに従って、RAID領域に記憶される。
【００１４】
本発明の実施に関する最良の態様を具体化する例を示す添付図面に関して、以下に本発明の好適実施例を説明する。
【００１５】
【実施例】
本発明の開示は、米国特許法の法律上の目的「科学、及び有用な技術の進歩を推進するため（米国憲法第１章第８条）」を推進するために提出されたものである。
【００１６】
図１は、本発明によって構成されたデータ記憶システム10を示す。データ記憶システム10は、記憶容量の異なる複数の不均一な記憶ディスク12を有する異種階層ディスク・アレイ11を含むディスク・アレイ・データ記憶システムであることが好ましい。データ記憶システム10は、記憶ディスク12との間のデータ転送の調整を行うためにディスク・アレイ11に結合されたディスク・アレイ制御装置14、及びRAID管理システム16も含む。
【００１７】
本開示に関し、「ディスク」とは、それ自体の記憶障害を検出することができる、不揮発性、ランダム・アクセス可能、かつ再書込み可能な大容量記憶装置である。このディスクは、回転磁気ディスクと回転光ディスク、及び固体ディスクの両方、又は不揮発性電子記憶素子（PROM、EPROM、EEPROM等）を含む。「ディスク・アレイ」という用語は、ディスク、１つ以上のホスト・コンピュータにディスクを接続するために必要なハードウェア、及び物理ディスクの動作を制御して、この物理ディスクを１つ以上の仮想ディスクとしてホスト動作環境に提供するために使用される管理ソフトウェアの集合である。「仮想ディスク」とは、管理ソフトウェアによってディスク・アレイ内で実現される抽象的実体である。「単一ボリューム」又は「ボリューム・セット」という用語は、同体であり、単一装置として機能する、物理記憶ディスクのグループを意味する。
【００１８】
「RAID」（Redundant Array of Independent Disks(独立ディスクの冗長アレイ)）という用語は、物理記憶容量の一部を使用して、残りの記憶容量上に記憶されたユーザ・データに関する冗長情報を記憶するディスク・アレイを意味する。この冗長情報によって、アレイを構成するディスクの１つ、又はディスクへのアクセス経路に障害が発生した場合に、ユーザ・データを再生成することができる。RAIDシステムに関するより詳細な議論は、1993年６月９日、RAID Advisory Board,Lino Lakes, Minnesotaによって発行された「The RAIDBook: A Source Book for RAID Technology」と題する文献に記載されている。
【００１９】
ディスク・アレイ制御装置14は、小型コンピュータ・システム・インタフェース(SCSI)等のような１つ以上のインタフェース・バス13を介してディスク・アレイ11に結合されている。RAID管理システム16は、インタフェース・プロトコル15を介してディスク・アレイ制御装置14に動作可能に結合されている。データ記憶システム10も入出力インタフェース・バス17を介してホスト・コンピュータ（図示せず）に結合されている。RAID管理システム16は、個別の構成要素として実施することも、あるいはディスク・アレイ制御装置14内、又はホスト・コンピュータ内に構成することもできる。RAID管理システム16は、ディスクの記憶レベル、及び信頼性レベルを制御し、様々な信頼性記憶レベル間でデータを転送するデータ管理手段を提供する。これらの信頼性記憶レベルは、後述のようにミラー冗長レベル、又はパリティ冗長レベルであることが好ましいが、冗長性を持たない信頼性記憶レベルを含むこともできる。
【００２０】
ディスク・アレイ制御装置14は、ディスク・アレイ制御装置A(14a)とディスク・アレイ制御装置B(14b)から成る二重の制御装置として実施することが好ましい。この二重の制御装置14a、及び14bは、一方の制御装置が動作不能に陥った場合に、連続的バックアップ、及び冗長性を提供することによって、信頼性を拡張する。しかし、本発明の方法は単一の制御装置で実施することも、又、他の制御装置の構成で実施することもできる。
【００２１】
階層ディスク・アレイ11は、物理記憶空間、及び１つ以上の仮想記憶空間を含む、異なる記憶空間の集合として特徴付けることができる。このような記憶域の様々なビューは、マッピング技法によって関連付けられる。例えば、ディスク・アレイの物理記憶空間は、様々なデータ信頼性レベルに従う記憶域を表す仮想記憶空間にマッピングすることができる。仮想記憶空間内の幾つかの領域は、ミラー、即ちRAIDレベル１のような第１の信頼性記憶レベルに関して割り当てられることができ、他の領域は、パリティ、即ちRAIDレベル５のような第２の信頼性記憶レベルに関して割り当てられうる。RAIDレベルに関する様々なマッピング技法、及び仮想空間は、図４に関して以下で詳細に説明する。
【００２２】
データ記憶システム10は、異なる記憶空間を相互にマッピングするために使用される仮想マッピング情報の記憶を持続させるメモリ・マップ記憶21を含む。このメモリ・マップ記憶は、ディスク・アレイの外部にあり、ディスク・アレイ制御装置14内に常駐することが好ましい。メモリ・マッピング情報は、異なるビュー間の様々なマッピング構成が変化した時に、制御装置、又はRAID管理システムによって連続的に、又は周期的に更新されうる。
【００２３】
メモリ・マップ記憶21は、それぞれの制御装置14a、及び14b内に配置された２つの不揮発性RAM（ランダム・アクセス・メモリ）21a、及び21bとして実施されることが好ましい。不揮発性RAM(NVRAM)の一例は、バッテリ・バックアップ型RAMである。バッテリ・バックアップ型RAMは、独立したバッテリ源からのエネルギーを使用して、データ記憶システム10への電力供給がなされない場合、その期間、メモリ内のデータを維持する。１つの好適な構成は、自己リフレッシュ・バッテリ・バックアップ型DRAM（ダイナミックRAM）である。
【００２４】
二重のNVRAM21a、及び21bは、メモリ・マッピング情報の冗長記憶を可能にする。この仮想マッピング情報は、ミラー冗長技法に従って、NVRAM21aとNVRAM21bの両方にコピーされ記憶される。このように、元のマッピング情報を記憶することだけにNVRAM21aを使用し、冗長マッピング情報を記憶することだけにNVRAM21bを使用することができる。代替構成では、ミラーリングされたメモリ・マップ記憶は、二重にデータを記憶するのに十分な空間を有する単一の不揮発性RAMを使用して構成されうる。
【００２５】
図１に示したように、異種ディスク・アレイ11は、異なるサイズの容量を有する複数の不均一な記憶ディスク・ドライブ装置12を有する。これらの記憶ディスクのサイズの一例は、１ギガバイト、２ギガバイト、又は３ギガバイトであるが、他のサイズも適用可能である。容量が異なるにもかかわらず、記憶ディスク12は、複数のディスクが、結合した単一メモリ装置として同体で機能する、単一ボリューム・セットとして、ホスト・コンピュータに提供される。更に、データ記憶システム10は、ディスク・アレイが動作中に、容量が同じか、又は異なる追加ディスクを、ディスク・アレイ内の利用可能な機械ベイに「常時挿入(hot plug)」できるように設計されている。この記憶ディスクは、SCSIバス13とのインタフェースを提供する機械ベイに独立して接続、又は取り外しが可能である。ディスク・アレイ制御装置14は、記憶ディスク12がどのベイに挿入されるかにかかわらず、記憶ディスクを認識する。
【００２６】
ディスク・アレイ11内の記憶ディスク12は、説明のために、複数のディスク20から成るミラー・グループ18、及び複数のディスク24から成るパリティ・グループ22に配置されたものとして概念化されうる。ミラー・グループ18は、第１の、即ちミラー冗長レベルに従ってデータを記憶するディスク・アレイの第１のメモリ位置、即ち第１のRAID領域を表す。このミラー冗長レベルは、RAIDレベル１としてもみなされる。RAIDレベル１、即ちディスク・ミラーリングは、あらゆるデータのビットがデータ記憶システム内にコピーされ記憶される、１対１の保護を提供することによって、最高のデータ信頼性を与える。ミラー冗長は図１の３つのディスク対20によって概略的に示されている。元のデータは、第１セットのディスク26上に記憶されることができ、一方コピーされた冗長データは、対になった第２セットのディスク28上に記憶される。
【００２７】
図２は、RAIDレベル１に従ったデータの記憶をより詳細に示す。縦の列は、ディスク０、ディスク１、ディスク２、及びディスク３で示される個別のディスクを表す。この４つのディスクから成るディスク・アレイ内に含まれる物理記憶空間は、横の行で表されるように、複数のストライプとして構成することができる。「ストライプ」は、複数の記憶ディスクにわたって広がり、１つのセグメントが、アレイ内の各ディスクに関連付けられた、サイズの等しい多数の記憶空間のセグメントから成る。即ち、セグメントはストライプの一部であり、単一ディスク上に常駐する。各ストライプは、複数の記憶ディスクにわたって分配された所定量のデータを保持する。ストライプ内のいくつかのセグメントは、元のデータに関して使用され、他のセグメントは冗長データに使用される。
【００２８】
ミラー冗長（RAIDレベル１）のこの例では、ストライプ０のセグメント０内でディスク０上に記憶されているデータは、ストライプ０のセグメント０’内でディスク１上にコピーされ記憶される。同様に、ストライプ２のセグメント５内でディスク２上に記憶されているデータは、ストライプ２のセグメント５’内でディスク３上にミラーリングされる。このように、各データは、該ディスク上にコピーされ記憶される。図２の冗長のレイアウトは、説明のために提供されている。冗長データは、図に示されるように、同じストライプ内に整然と配置される必要はない。例えば、ストライプ１のセグメント２内でディスク０上に記憶されているデータをストライプＳのセグメントＴ’内のディスク３上にコピーして配置することができる。
【００２９】
再び図１を参照すると、ディスク24のパリティ・グループ22は、データがRAIDレベル５のような第２の冗長レベルに従って記憶される第２のメモリ位置、即ち第２のRAID領域を表す。６つのディスクから成るこの説明図では、元のデータは５つのディスク30上に記憶され、冗長の「パリティ」データは６つ目のディスク32上に記憶される。
【００３０】
図３は、パリティRAID領域のレイアウトをより詳細に示している。図２のミラーRAID領域のレイアウトと同様、ディスク０、１、２、３の物理記憶領域は、サイズの等しい複数のストライプとして構成することができる。この図の例では、データがRAIDレベル５に従って記憶され、セグメント内に記憶されている冗長データが、文字Ｐで示されている。冗長セグメントＰは、ストライプ内の他のセグメントのパリティを記憶する。例えば、ストライプ０では、ディスク３上の冗長セグメントＰは、ディスク０、１、及び２のパリティを記憶する。各ストライプに関するパリティは、排他OR関数のような何らかの関数によって計算される。最初の４つのストライプのパリティ（下付き数値は、対応するストライプを表す）は以下の通りである。
【００３１】
【数１】
0003792269.tif 000002
【００３２】
パリティ冗長によって、複数のディスクのうちの１つで使用できなくなったデータを再生成することができる。例えば、セグメント５内のデータが使用できなくなった場合、その内容は、セグメント３、４、及びセグメントＰ内のパリティ・データから確認することができる。パリティ記憶はミラー記憶より廉価であるが、信頼性、及び性能が低い。
【００３３】
図１のディスク配列は、概念を示すために提供されているにすぎない。実際、ディスク・アレイ11はミラー冗長、及びパリティ冗長に従ってデータを記憶できる複数のディスク12を単に有しているだけである。全てのディスク12によって提供される利用可能な記憶域のうちで、その記憶空間の一部がミラー冗長に関して割り当てられ、別の部分がパリティ冗長に関して割り当てられる。ディスク12は、サイズの等しい複数の記憶領域（図４では符号35として参照されている）を含み、その個々の領域が複数のセグメントを有するように構成することが好ましい。更に、RAID領域、及びデータ冗長記憶技法がユーザ、又はホストに対して透過的であるように、記憶空間全体の均一なビューがユーザ、又はホストに提示される。こうした特徴が図４に関して以下でより詳細に議論される。
【００３４】
データ記憶システム10は、ミラー記憶技法とパリティ記憶技法の間のデータの「移行」を管理する。両タイプの冗長管理は、RAID管理システム16（図１）によって調整される。RAID管理システム16は、ディスク・アレイ内の２つの異なるタイプのRAID領域を、パリティRAID領域用のキャッシュと同様に動作するミラーRAID領域を有する、メモリ階層として管理する。データがパリティRAID領域からミラーRAID領域に移されると、そのデータが以前にパリティRAID領域で占有していた空間が、他のデータを記憶するために使用可能となる。RAID管理システム16は、定義された性能プロトコルに従ってミラーRAID領域とパリティRAID領域の間でデータをシフトさせ、組織化し、及びその他の方法で管理する。ミラーRAID領域とパリティRAID領域の間でデータを移すプロセスを「移行」と呼ぶ。
【００３５】
データ記憶システム10は、より重要なデータをミラーRAID領域に配置し、このことによって最高の性能、及び信頼性が得られる。RAID管理システム16によって実施される性能プロトコルは、２つの好適移行方式のうちの１つを含む。「アクセス頻度方式」として知られる第１の移行方式によれば、階層ディスク・アレイ上で最も頻繁にアクセスされるデータが、ミラーRAID領域18に保持される。それほど頻繁にアクセスされないデータは、パリティRAID領域22に保持される。「アクセス最新度方式」として知られる第２の移行方針によれば、最も新しく検索されたデータはミラーRAID領域18に保持され、以前に検索されたデータはパリティRAID領域22に保持される。他の性能プロトコルを使用することもでき、理想的には、こうしたプロトコルは、特定のコンピュータ・アプリケーション、及びユーザのニーズに基づいて定義される。
【００３６】
このように、RAID管理システム16は、アプリケーション、又はユーザの要件に応じてデータ記憶システムの記憶資源を効果的に「調整」する。例えば、高い性能、及び信頼性を必要とするアプリケーションでは、RAID管理システムが、比較的大きなミラーRAID領域を定義、作成して、それによって、パリティRAID領域に比べてより大きい容量の物理記憶容量を、ミラー冗長専用として提供する。逆に、コストが重要であり、性能、又は信頼性がそれほど重要でないアプリケーションでは、RAID管理システムは、ミラーRAID領域と比べて比較的大きなパリティRAID領域を確立することができる。従って、本発明のデータ記憶システムは最大の柔軟性、及び適応性を提供する。
【００３７】
図４は、データ記憶システム10の利用可能な記憶空間のメモリ・マッピングを、マッピングされた複数の層をなす仮想記憶空間として示す。図における垂直方向に長い各長方形は、物理記憶空間のビューを表す。この図では、物理記憶空間34が、２つの仮想記憶ビュー40、及び50によって参照されている。物理記憶空間34は、符号０、１、２、及び３で参照した（図１のディスク12のような）４つのディスクで表されている。ディスクに対応する４つの長方形は、ディスク１、２、及び３がほぼ等しい記憶容量を有し、ディスク０がわずかに小さい記憶容量を有する、物理記憶空間のビューを表す。記憶空間34は、領域A0、A1、A2等に区画化される。個々の領域は、領域A0内のストライプ０ないしＱのような多数のストライプを含む。個々の領域は、多数の領域35も含む。領域35は、ディスク・アレイ全体にわたって領域のサイズが等しくなるように、あらゆる記憶ディスク上で、サイズが均一な、選択された数のセグメントから成ることが好ましい。
【００３８】
ディスクの記憶空間は、物理記憶空間34の第１仮想ビュー、即ち中間仮想ビュー40にマッピングされる。この第１仮想ビューは、概念的には、ユーザ、即ちホスト・アプリケーション・プログラムから見た時に、ディスク０、１、２、及び３上の記憶空間を示す１つのより大きな記憶空間を表す、１組のRAID領域である。従って、RAID領域内の長方形の高さは、ディスクの高さよりも高いものとして示されている。
【００３９】
RAID領域記憶空間40は、ミラー記憶空間、及びパリティ記憶空間を同一視する記憶域のビューである。例えば、RAID領域42はＭ個のブロック43のミラーRAID領域を表すことができ、RAID領域44はＮ個のブロック45のパリティRAID領域を表すことができる。これらのRAID領域は、物理記憶空間34上の対応する物理領域A0、A1、A2等に関連する。ミラーRAID領域、及びパリティRAID領域は、ディスク・アレイの記憶空間34全体を使い尽くすかも知れないし、使い尽くさないかも知れない。従って、あるアプリケーションの間、特定のRAID領域に対応しない未使用で未指定の記憶空間が存在する可能性がある。しかし、こうした記憶空間はミラーRAID領域、又はパリティRAID領域に変換することができる。
【００４０】
RAID領域で使用可能な記憶空間は、ユーザ、即ちホスト・アプリケーション・プログラムに提示される記憶域のビューである、第２の、即ちフロント・エンド仮想ビュー50にマッピングされる。ユーザ、即ちホスト・アプリケーション・プログラムから見た時、第２の仮想ビュー50は、記憶ディスク12上の使用可能な記憶空間を示す、単一の大きな記憶容量も表す。仮想記憶空間50は、個々に０，１，２，...，J-1，Ｊ，J+1，...，L-1，Ｌ，L+1，...等として参照された、サイズの等しい記憶ブロック52、及び53の線形集合のビューを表す。仮想ブロック記憶空間50は、RAID領域40によって表されるビュー内の記憶ブロックに対する参照、又はポインタ（矢印54で表される）のテーブルによって表される。ミラー記憶領域、及びパリティ記憶領域が共に使用可能なように仮想ブロック・テーブルから参照できる、少なくとも２つのRAID領域がある。RAID領域40の記憶容量は、記憶空間の仮想ブロック・ビューのサイズと同じサイズのブロックに分割されることが好ましい。
【００４１】
RAID管理システム16は、RAID領域の構成を動的に修正することができる。RAID領域は、特定の時間におけるデータ信頼性のニーズに従って拡大、又は縮小されうる。その結果、第１の仮想ビュー40内のRAID領域のディスク上へのマッピングと、フロント・エンド仮想ビュー50のRAIDビュー40へのマッピングは一般に、変更状態である。NVRAM21a、及び21b（図１）内のメモリ・マップ記憶は、RAID領域をディスク上にマッピングするためにRAID管理システム16によって使用される現在のマッピング情報と、２つの仮想ビューの間でマッピングを行うために使用される情報を維持する。RAID管理システムは、RAIDレベル・マッピングを動的に変更する時、メモリ・マップ記憶21内のマッピング情報も更新してその変更を反映する。
【００４２】
データ記憶システム10の移行動作は、1993年８月19日に出願され、本出願人に譲渡された、米国出願における同時係属特許出願第08/108,137号に、より詳細に記載されている。ここでこの特許出願を引用することによって、前記出願が本明細書に組み込まれる。
【００４３】
次に、異種階層ディスク・アレイ内の記憶容量の使用率を最大にする方法が図５ないし図８に関して説明される。
【００４４】
図５、及び図６は、異種ディスク・アレイ内の記憶容量を最大限に使用する第１の方法を示す。この方法は、少なくとも２つの、容量が最大である記憶ディスクがディスク・アレイ構成内に存在するという規則を使用する。従って、第１ステップ100は、アレイ内の残りのディスクの記憶容量を超え、同じ容量を持つ２つ以上の記憶ディスクを含むディスク・アレイを構成することである。ここで、不均一なディスク０ないし４からなる異種ディスク・アレイが、２つの同じ容量を有する大容量の記憶ディスク１、及び４を含んで構成される。この容量は、他のディスク０、２、及び３の記憶容量より大きい。
【００４５】
ステップ102で、記憶ディスク０ないし４は、広く符号35で参照した複数の領域にセグメント化される。領域35は、ディスク・アレイ全体にわたって同じサイズであり、サイズの等しい１つ以上のセグメントから成ることが好ましい（図４参照）。次いで、複数の記憶ディスク上の連続領域からRAID領域A0ないしA4等を形成する（ステップ104）。「連続領域」とは、全てが同じ物理アドレスを有する、別のディスク上の物理記憶空間を表す領域である。例えば、RAID領域A3、A4等はそれぞれ、各ディスク上の同じ物理アドレスにある、全部で５つの記憶ディスク０ないし４の領域を含む。RAID領域A2は、４つの記憶ディスク０、１、３、及び４の領域を含み、RAID領域A0、及びA1はそれぞれ、ディスク１、及び４の領域を含む。
【００４６】
ステップ106で、RAID領域A0ないしA4は、図４で上述したように、単一ボリュームの仮想ビューにマッピングされる。従って、本発明の方法は、アレイをホスト・コンピュータへの独立した複数ボリュームとして特徴付ける必要なしに、異種ディスク・アレイ内の全ての記憶空間を使用する。その代わり、異種アレイ全体が単一ボリュームとして提示されうる。次いで、RAIDレベル１、及び／又はRAIDレベル５のような選択されたRAIDレベルに従って（水平な直線矢印で表した）連続RAID領域内にデータが記憶される（ステップ108）。各RAID領域は幾つかの冗長データを記憶する。
【００４７】
この方法は、異種単一ボリューム・ディスク・アレイ内の全ての記憶ディスク上の記憶空間全体を使用できるようにするという点で有益である。この点を例示するため、RAID領域A3、A4等の組み合わせられた記憶空間を集合０として定義する。集合０内の記憶空間は、従来技術の異種ディスク・アレイで使用可能な記憶空間の量に等しい。しかし、従来技術のアレイでは、設計で、多数の記憶ボリュームを提供する、より複雑な設計を考慮しない限り、最小容量ディスク（即ち、ディスク２）を超える容量のディスクは使用されなかった。
【００４８】
しかし、本発明の技法によれば、ディスク０、１、３、及び４の追加容量が使用される。RAID領域A2は、記憶ディスク０、１、３、及び４の領域を含み、それによって、４つのディスクから成る集合１の追加記憶空間を画定する。RAID領域A0、及びA1はそれぞれ、ディスク１、及び４の領域を含み、そこでは、この空間の集合が追加記憶空間の集合２を画定する。従って、本発明の方法では、全てのディスク０ないし４内の全てのディスク空間を最大限に使用し、それによって、集合１、及び集合２内の空間だけ従来技術より多く記憶域を使用し、使用率の改良を図っている。
【００４９】
RAIDレベル１、又はRAIDレベル５に従って、集合０、及び集合１（RAID領域A2、A3、A4等）内に、データが記憶されることに留意されたい。これらのRAID領域は、３つ以上の記憶ディスクの連続領域を含み、それによって、パリティ記憶を可能にする。RAIDレベル１、即ちミラー冗長に従って、集合２（即ち、RAID領域A0ないしA1）にデータが記憶される。一方のディスクを使用して元のデータを記憶し、他方のディスクを使用して冗長データを記憶する。同時に、この２つのディスク集合内でRAIDレベル５を使用して、同様のミラーリング冗長を達成することができる。一方のディスクを使用して元のデータを記憶し、他方のディスクを使用してパリティ・データを記憶する。パリティ・データは、元のデータと同じであることが分かっており、従って、元のデータを効果的にミラーリングする。
【００５０】
図７、及び図８は、異種ディスク・アレイ内の記憶容量を最大限に使用する第２の方法を示す。この方法は、その構成にかかわらず、異種ディスク・アレイに適用可能である（そのため、同種ディスク・アレイにも適用可能である）という点で、第１の方法とは異なる。サイズが最大である少なくとも２つのディスクを維持するという構成要件はない。第１のステップ200は、図７で不均一のディスク０ないし４によって示された記憶ディスクのような、容量の異なる記憶ディスクを有する異種ディスク・アレイを単に構成することである。ディスク３は、最大容量を有し、その後が同じ容量を有するディスク１、及び４であり、次がディスク０、最後にディスク２と続く。
【００５１】
ステップ202で、記憶ディスク０ないし４が、好ましくはサイズの等しい、複数の領域（この場合も、広く符号35で参照されている）にセグメント化する。次のステップ204は、個々の記憶ディスク０ないし４の非連続領域を連結し、様々なRAID領域を形成する。「非連続領域」とは、異なる物理アドレスを有する、異なるディスク上の物理記憶空間を表す領域である。個々のRAID領域は、各記憶ディスクの全て、又は部分集合からの１つの領域から成る。
【００５２】
連結手順は、ディスク０ないし４のそれぞれの領域350ないし354を含む、波状の矢印によってグラフィカルに例示されている。連結手順は、ポインタ連鎖技法を使用して実施することが好ましい。連鎖ヘッド・ポインタを含む第１のテーブルを使用して、様々なRAID領域を見つける。１つの連鎖ヘッド・ポインタは関連する１つのRAID領域を識別する。次いで、二次連鎖ポインタを含む第２のテーブルを使用して、識別されたRAID領域内の特定の領域を参照する。２つのテーブルは共に、メモリ・マップ記憶21に記憶されている。メモリ・マップ記憶にポインタ・テーブルを維持することによって、１つ以上のディスクに障害が発生した場合に、RAID領域を容易に再構成することができる。
【００５３】
ポインタ・テーブルと同時に使用されることが望ましい二次連結手順は、各RAID領域の領域内の記憶ディスク上に、領域ポインタを埋め込むことである。領域ポインタは、ある領域から、連結されるべき次の領域を指す。例えば、図７では、領域352は、関連するRAID領域の一部として連結されるべき記憶域の次の位置として領域353を指す。ポインタは、次の領域のアドレスと、場合によっては、前の領域のアドレスを含む。一連のポインタは、記憶システムが記憶ディスクをシフトさせてRAID領域を再構成できるようにする参照連鎖を形成する。ディスク・アレイ制御装置14が誤動作した場合に、この二次連結手順を回復動作に使用することができる。
【００５４】
ステップ206で、ディスク０ないし４上の物理記憶空間を単一記憶ボリュームとしてユーザ、又はホストに提供する仮想記憶空間に、非連続領域で形成されたRAID領域がマッピングされる。次に、データが、各RAID領域が幾つかの冗長データを記憶する、RAIDレベル１、及びRAIDレベル５を含む、様々なRAIDレベルに従って記憶される（ステップ208）。
【００５５】
記憶容量が最大使用率に近づいた時は、データをRAIDレベル５領域に移行して記憶空間の使用を効率的に最適化することができる。それによって、RAIDレベル１に従って記憶されたデータに対する、RAIDレベル５に従って記憶されたデータの割合が増加する。RAIDレベル５では、冗長データに使用される空間がより少ない。全てのデータがRAIDレベル１に従って記憶された場合、記憶空間の半分を使用して冗長データを保持することになる。多数の記憶ディスクのディスク・アレイ内におけるRAIDレベル５の記憶に関しては、記憶空間の極小さな部分が冗長データ用に使用される。従って、RAIDレベル５では、所与のディスク・アレイに関して、より多くのユーザ・データを記憶することができるが、その代わり性能、及び可用性が低下する。最終的に、記憶容量が満たされた場合、全てのデータをRAIDレベル５領域に移行することができる。
【００５６】
本発明の２つの方法は共に、ほぼ同じ程度に、異種ディスク・アレイの記憶容量を最大限に使用する。非連続領域を連結する前述の第２の方法は、ディスク・アレイ全体にわたって、よりランダムにデータが拡散しているので、わずかに柔軟性、及び性能が優れている。このため、ディスク・アレイ全体にわたる領域に対して、より均一なアクセスが可能となる。
【００５７】
本発明の方法は、容量が大きな新しいディスクに対してさえ、柔軟性、及び適応性を促進するという付加的利益を有する。既存のディスク・アレイ構成の最大容量に達した時は、余分の新しい空間の使用率が低下するという心配なしに、容量のより大きな１つ以上の記憶ディスクを容易に組み込むことができる。本明細書で説明した技法によって、アレイ内の全ての記憶ディスク上の全空間を使用するようにディスク・アレイを再構成することができる。
【００５８】
本発明の方法は、異種階層ディスク・アレイ内で容量の異なる記憶ディスクを最大限使用できるようにするという点で有益である。本発明は、記憶ディスクを複数の記憶ボリュームとして提供するのではなく、記憶ディスクを単一ボリュームとしてホスト・コンピュータ・システムに提供して、これを達成する。
【００５９】
法令に従い、構造、及び方法上の特徴について、幾分特定の言葉により説明してきた。しかし、本明細書で開示した手段は、本発明を効果的に実施する好適態様を含むため、本発明が、図示し説明した特定の特徴に制限されないことを理解されたい。従って、本発明は、同等物の原理に従って適切に解釈される、適当な特許請求の範囲内のあらゆる態様、及び修正について請求される。
【００６０】
以下に本発明の実施態様を列挙する。
【００６１】
１．  記憶容量の異なる複数の記憶ディスクの異種階層ディスク・アレイを有するデータ記憶システムにおいて、記憶容量を使用する方法であって、前記記憶ディスクが全体の物理記憶空間を画定する前記方法が、
(a)ディスク・アレイ内の他の記憶ディスクの記憶容量より大きい、同一の記憶容量を持つ、少なくとも２つの記憶ディスクを含むようにディスク・アレイを構成するステップ、
(b)ディスク・アレイ内の記憶ディスクを複数の領域にセグメント化するステップ、
(c)複数の記憶ディスク上の連続領域でRAID領域を形成するステップであって、各RAID領域に関する前記連続領域が個々の記憶ディスク上の同じ物理アドレスにある物理記憶空間を表す前記ステップ、
(d)物理記憶空間のビューを単一記憶ボリュームとして提供する、仮想記憶空間にRAID領域をマッピングするステップ、及び
(e)選択されたRAIDレベルに従いRAID領域にデータを記憶するステップであって、各RAID領域が幾つかの冗長データを記憶する前記ステップを含むことを特徴とする前記方法。
【００６２】
２．  RAID領域に記憶されるデータが、RAIDレベル１、及びRAIDレベル５を含むグループから選択されたRAIDレベルに従って記憶されることを特徴とする、項番１に記載の方法。
【００６３】
３．  RAIDレベル１に従って記憶されたデータに対する、RAIDレベル５に従って記憶されたデータの割合が増加し、それによって、記憶空間の使用が効率的に最適化されるように、記憶容量が最大使用率に近づいた時に、データがRAIDレベル５に移行されることを特徴とする、項番１に記載の方法。
【００６４】
４．  記憶容量の異なる複数の記憶ディスクの異種階層ディスク・アレイを有するデータ記憶システムにおいて記憶容量を使用する方法であって、前記記憶ディスクが全体の物理記憶空間を画定する前記方法が、
(a)ディスク・アレイ内の記憶ディスクを複数の領域にセグメント化するステップ、
(b)個々の記憶ディスクの非連続領域を連結してRAID領域を形成するステップであって、前記非連続領域が複数の記憶ディスク上の異なる物理アドレスにある物理記憶空間を表す前記ステップ、
(c)物理記憶空間のビューを単一記憶ボリュームとして提供する仮想記憶空間に、RAID領域をマッピングするステップ、及び
(d)各RAID領域が幾つかの冗長データを記憶する、選択されたRAIDレベルに従ってRAID領域内にデータを記憶するステップを含むことを特徴とする方法。
【００６５】
５．  前記連結ステップ(b)が、個々の領域が、連結されたRAID領域内の次の領域を指すポインタ連鎖技法を使用して、非連続領域を接続することを含むことを特徴とする、項番４に記載の方法。
【００６６】
６．  前記ステップ(d)でデータの記憶に関して選択されたRAIDレベルが、RAIDレベル１、及びRAIDレベル５を含むグループから選択されることを特徴とする、項番４に記載の方法。
【００６７】
７．  RAIDレベル１に従って記憶されたデータに対する、RAIDレベル５に従って記憶されたデータの割合が増加し、それによって、記憶空間の使用が効率的に最適化されるように、記憶容量が最大使用率に近づいた時にデータがRAIDレベル５に移行されることを特徴とする、項番４に記載の方法。
【００６８】
【発明の効果】
本発明によって、容量の異なる不均一な記憶ディスクを異種階層ディスク・アレイで使用する方法が開示され、それによって、これらの記憶ディスクが単一ボリュームとして提供され、かつ最大限の使用が達成される。
【図面の簡単な説明】
【図１】本発明による記憶システムの概略ブロック図である。
【図２】複数の記憶ディスク上の記憶空間を概略的に例示し、RAIDレベル１によるデータ記憶を示す図である。
【図３】複数の記憶ディスク上の記憶空間を概略的に例示し、RAIDレベル５によるデータ記憶を示す図である。
【図４】２つの仮想記憶空間が物理記憶空間上にマッピングされる、本発明のメモリ・マッピング配置を概略的に例示する図である。
【図５】最大容量のディスクが２つ存在する場合の、容量の異なる複数のディスク上の記憶空間を概略的に例示し、冗長データ記憶用に、前記２つの最大容量のディスクを含む記憶ディスク上に、連続領域を形成する方法を示す図である。
【図６】図５に示した方法のステップを示すフロー図である。
【図７】１つのディスクの容量が残りのディスクの容量よりも大きい場合の、容量の異なる複数の記憶ディスク上の記憶空間を概略的に示し、複数のディスクにわたる非連続領域を形成し、そのディスク上の全空間を使用する方法を示す図である。
【図８】図７に示した方法のステップを示すフロー図である。
【符号の説明】
10  データ記憶システム
11  異種階層ディスク・アレイ
12  記憶ディスク
14  ディスク・アレイ制御装置
16  RAID管理システム
40、50  仮想記憶ビュー
42、44  RAID領域
【図１】
0003792269.tif 000003
【図２】
0003792269.tif 000004
【図３】
0003792269.tif 000005
【図４】
0003792269.tif 000006
【図５】
0003792269.tif 000007
【図６】
0003792269.tif 000008
【図７】
0003792269.tif 000009
【図８】
0003792269.tif 000010