(57)【要約】【課題】関連するコンピュータアプリケーションにおいて使用するデータを記憶・提供する改良されたシステムおよび方法を提供する。【解決手段】本発明で提供する仮想記憶システムは、仮想記憶空間と、物理記憶空間と、仮想記憶空間の複数のアドレスを物理記憶空間の各アドレスに関連付けるように構成されたマッピングシステムと、順序に従ってマッピングシステムの除去部分を指定する優先順位付け規定に従って、マッピングシステムの一部を自動的に除去するように構成されたコントローラと、を備える。【選択図】図１
2004127301.tif 000002
【特許請求の範囲】
【請求項１】
　仮想記憶システムであって、
　仮想記憶空間と、
　物理記憶空間と、
　前記仮想記憶空間の複数のアドレスを前記物理記憶空間の各アドレスに関連付けるように構成されたマッピングシステムと、
　順序に従って前記マッピングシステムの除去部分を指定する優先順位付け規定に従って、前記マッピングシステムの一部を自動的に除去するように構成されたコントローラと、
を有する仮想記憶システム。
【請求項２】
　前記コントローラは、前記物理記憶空間が所定のデータ記憶状態に達したことに応答して、前記自動除去を実行するように構成された、請求項１記載のシステム。
【請求項３】
　前記コントローラが、非保証型仮想記憶空間に対応する複数のポインタを含む前記マッピングシステムの部分を自動的に除去するように構成された、請求項１または２記載のシステム。
【請求項４】
前記優先順位付け規定が、共通の除去優先度が割り当てられた、少なくとも１つの仮想記憶ボリュームを個々に有する複数のグループを含む、請求項１、２または３記載のシステム。
【請求項５】
　前記優先順位付け規定が、作成の時系列順序に従って前記マッピングシステムの複数の除去部分を指定するように構成されたデフォルト優先度規定を含む、請求項１、２、３または４記載のシステム。
【請求項６】
　仮想記憶方法であって、
　複数の仮想記憶ボリュームを含む仮想記憶空間を設けるステップと、
　物理記憶空間を設けるステップと、
　少なくともいくつかの前記仮想記憶ボリュームの中の複数のスナップショットボリュームを作成するステップと、
　前記スナップショットボリュームに優先度をそれぞれ割り当てるステップと、
　前記優先度に従って前記スナップショットボリュームの少なくとも１つを除去するステップと、
を有する方法。
【請求項７】
　前記物理記憶空間が所定の状態になったことを検出するステップをさらに有し、前記除去するステップが前記検出するステップに応答して除去するステップを有する、請求項６記載の方法。
【請求項８】
　前記作成するステップが、保証型および非保証型スナップショットボリュームを作成するステップを有し、前記除去するステップが前記非保証型スナップショットボリュームの少なくとも１つを除去するステップを有する、請求項６または７記載の方法。
【請求項９】
　前記作成するステップが、前記スナップショットボリュームの少なくとも１つに個々に対応する複数のグループを作成するステップを有し、前記割り当てるステップが、前記グループに前記優先度を割り当てるステップを有する、請求項６、７または８記載の方法。
【請求項１０】
　前記除去するステップが、警告を発することなく除去するステップを有する、請求項６、７、８または９記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
　本発明は、仮想記憶システム、仮想記憶方法、および仮想ＲＡＩＤ記憶システムを過大割り当てする方法に関する。
【背景技術】
【０００２】
　近年、ハードウェア、ソフトウェア、ファームウェア等を含むコンピュータシステムは、爆発的に成長・高度化し続けてきた。コンピュータシステムとインタフェースするように構成された周辺機器および他のコンポーネントもまた爆発的に成長し、向上してきた。
【０００３】
　さらに、コンピュータシステムは一般に、特に、遠方にあるコンピュータ間での通信を可能にするネットワーキングソリューションの発展に伴い、ますます多くのアプリケーションに使用されるようになっている。たとえば、コンピュータシステムは、クライアントアプリケーション、サーバアプリケーション、ならびにスタンドアロンパーソナルコンピューティングアプリケーションに利用される場合がある。
【０００４】
　コンピュータシステムの処理速度の向上および新しく多種多様なアプリケーションでのコンピュータシステムの使用が増えるに伴い、コンピュータシステムにより処理・使用されるデータの記憶および高速アクセスを援助する装置が望まれている。コンピュータシステムが利用する大量のデジタルデータを取り扱うために、大容量記憶装置が開発された。コンピュータシステムのコンポーネントまたは周辺機器に故障または他の障害がある間、継続して正常に動作するために、冗長記憶システムが開発された。より具体的には、大容量記憶装置を開発する際には、コスト（データ記憶装置ユニットあたりのコストが低いこと）、高入出力性能、および可用性（いくつかのコンポーネントが故障した場合でもデータが復元され、継続した動作を保証する能力）を含む３つの主な設計基準が通常考慮される。比較的大量のデータを冗長的に記憶するには、独立ディスク冗長アレイ（Redundant Array of Independent Disk、ＲＡＩＤ）システムが利用されている。
【０００５】
　以下の同じ譲受人に譲渡された出願に注目する。
【０００６】
　発明者David Umberger、Guillermo NavarroおよびRodger Danielsにより２００２年１０月３日に出願された「A system for Managing a Data Storage Array, a Method of Managing a Data Storage System, and a RAID Controller」と題する米国特許出願第１０／２６４，９１５号、発明者David UmbergerおよびGuillermo Navarroにより２００２年１０月３日に出願された「Method of Managing a Data Storage Array, and a Computer System Including a RAID Controller」と題する米国特許出願第１０／２６４，５７３号、発明者Michael B. JacobsonおよびLee L. Nelsonにより２００２年１０月３日に出願された「Computer Systems, Virtual Storage Systems and Virtual Storage System Operational Methods」と題する米国特許出願第１０／２６４，９５７号、発明者Rodger DanielsおよびLee L. Nelsonにより２００２年１０月３日に出願された「Virtual Storage Systems and Virtual Storage System Operational Methods」と題する米国特許出願第１０／２６４，５２５号、ならびに発明者Lee L. NelsonおよびRodger Danielsにより２００２年１０月３日に出願された「Virtual Storage Systems and Virtual Storage System Operational Methods」と題する米国特許出願第１０／２６４，６６１号。
【発明の開示】
【発明が解決しようとする課題】
【０００７】
　以下に述べるように、本発明の各種態様は、関連するコンピュータアプリケーションにおいて使用するデータを記憶・提供する改良されたシステムおよび方法を提供する。
【課題を解決するための手段】
【０００８】
　本発明の一態様によれば、仮想記憶システムは、仮想記憶空間と、物理記憶空間と、仮想記憶空間の複数のアドレスを物理記憶空間の各アドレスに関連付けるように構成されたマッピングシステムと、順序に従ってマッピングシステムの除去部分を指定する優先順位付け規定に従って、マッピングシステムの一部を自動的に除去するように構成されたコントローラと、を備える。
【０００９】
　本発明の別の態様によれば、仮想記憶システムは、データを記憶する物理記憶手段と、物理記憶手段の表現をホストに提供する仮想記憶手段と、仮想記憶手段の複数のアドレスから物理記憶手段の複数の各アドレスへの複数のポインタを提供するマッピング手段と、物理記憶手段が所定の状態になったことを検出し、この検出に応答して前記ポインタの少なくともいくつかを自動的に除去する制御手段と、を備える。
【００１０】
　本発明のさらなる態様によれば、仮想記憶方法は、複数の仮想記憶ボリュームを含む仮想記憶空間を設けるステップと、物理記憶空間を設けるステップと、仮想記憶ボリュームの少なくともいくつかの複数のスナップショットボリュームを作成するステップと、スナップショットボリュームに優先度をそれぞれ割り当てるステップと、優先度に従ってスナップショットボリュームの少なくとも１つを除去するステップと、を含む。
【００１１】
　本発明のさらに別の態様によれば、仮想ＲＡＩＤ記憶システムを過大割り当てする方法は、物理記憶空間の複数の物理記憶場所を仮想記憶空間の複数の仮想記憶場所に関連付ける複数のポインタを設けるステップと、前記仮想記憶システムを過大割り当てするステップであって、それによって、ポインタの少なくともいくつかをコピーして複数のスナップショットボリュームを提供することを含む、過大割り当てするステップと、スナップショットボリュームのそれぞれに複数の優先度を割り当てるステップと、コピー後にポインタの少なくともいくつかを分岐(diverge)するステップであって、それによって、分岐したポインタに複数の新しい物理記憶場所をそれぞれ割り当て、物理記憶空間をさらに消費して、分岐したポインタそれぞれに関連付けられた分岐データを記憶する、分岐するステップと、物理記憶空間の残りの記憶容量を検出するステップであって、それによって、分岐後の所定状態を得る、検出するステップと、優先度を用いてスナップショットボリュームの少なくとも１つを選択するステップと、検出に応答して、選択されたスナップショットボリュームの少なくとも１つを除去するステップと、を含む。
【発明を実施するための最良の形態】
【００１２】
　図１を参照して、データ記憶システムの例示的な構成を参照番号１０で示す。本発明の態様によれば、記憶システム１０は仮想記憶システムとして具現される。一構成では、記憶システム１０は、さらに詳細に後述するように、仮想記憶空間と物理記憶空間との間に抽象的なアドレス指定またはマッピングを有する仮想アレイ（ＲＡＩＤ）記憶システムである。仮想記憶システム構成は、従来のディスクアレイ構造とは異なる。従来のディスクアレイ構造は、数学的関数を利用して、物理記憶空間のブロックに固定されるリテラルアドレッシング（literal addressing）を提供するものであり、物理記憶空間では所与のアドレスが既知の物理ブロックに対応する。仮想記憶システムは、適応型の動的で任意のアドレス指定を実施し、従来の構成と比較して柔軟性を高めることができる。たとえば、仮想記憶空間の複数の仮想記憶アドレスを利用して、物理記憶空間の単一の物理記憶場所をアドレス指定することができる。このような仮想記憶システム構成では、データのスナップショットボリュームとも呼ばれる、データのある時点でのコピー（point in time copies）を作成することができ、データの分岐（divergence）が生じると、仮想記憶システムの過大割り当て（over commitment）を行うことができる。仮想記憶システム構成では、従来の構造と比較して見掛けの容量および柔軟性が増大する。
【００１３】
　仮想記憶として構成された記憶システム１０は、例示的な一構成では、ＳＣＳＩ（Small Computer System Interface）コマンドセットに従うリニアアドレス指定空間を利用する。ホスト２０への記憶システム１０の提示は、時点が違っても一貫していることが可能であるが、仮想記憶システム構成のマッピングシステムは、記憶システムの要求または要件に適合するように変更可能である。仮想記憶システムについての例示的な詳細は、Jacobson他への米国特許第５，３９２，２４４号に記載されている。仮想アレイ技術のさらなる詳細および態様については、HP Virtual Array Technology, 2001およびExecutive Summary: Virtualization、Simplification and Storage, November 2001に述べられており、これらは両方ともwww. hp. comから入手することができる。
【００１４】
　引き続き図１を参照すると、例示的に述べられる構成での記憶システム１０は、コントローラ１２およびデータを記憶するように構成された記憶空間１４を含む。図示のアプリケーションにおける記憶システム１０は、ホスト２０とインタフェースするように構成されている。記憶システム１０は、ホスト２０から受け取ったデータを記憶するとともに、要求されたデータをホスト２０に提供するように構成されている。ホスト２０は、ワークステーション、パーソナルコンピュータ、サーバ、コンピュータ装置のネットワーク、または別個のデータ記憶システムを利用する他の適切なコンピュータ構造として実施することができる。
【００１５】
　図示の構成では、コントローラ１２は、入出力（Ｉ／Ｏ）要求の取り扱いを含め、ホスト２０に関するインタフェース動作を実施するように構成されている。さらに、コントローラ１２は、記憶空間１４のアドレス指定および記憶空間１４でのデータの記憶の実施を含め、記憶空間１４の管理を行う。例示的な一構成において以下に述べるように、コントローラ１２は、物理記憶空間の仮想記憶空間表現およびマッピングシステムを作成し、また物理記憶空間と仮想記憶空間との間のアドレス指定を提供するように構成されている。
【００１６】
　図示の例示的な構成では、コントローラ１２は中央処理装置（ＣＰＵ）１６およびメモリ１８を備える。例示的な中央処理装置は、Motorola, Inc.から市販されているＰｏｗｅｒＰＣ（登録商標）４４０または８２４０である。
【００１７】
　記憶システム１０のコントローラ１２は、上に述べた米国特許出願第５，３９２，２４４号に記載のＡｕｔｏＲＡＩＤ動作を実施するように構成することができる。ＡｕｔｏＲＡＩＤ動作を実施するコントローラ１２は、システム１０内に記憶されているデータの使用を監視し、そのデータに最もよいＲＡＩＤレベルを決定することができる。たとえば、書き込みがあまり頻繁に行われないデータはＲＡＩＤ　５ＤＰに記憶されて、それによって記憶効率が提供され、書き込みが頻繁に行われるデータはＲＡＩＤ１＋０に記憶することができ、それによって最適なパフォーマンスが提供される。データは、データの有効期間、そのデータにアクセスする頻度、および他の要因に応じてＲＡＩＤレベル間で移動することができる。
【００１８】
　メモリ１８は、記憶空間１４をアドレス指定する際に使用する以下に述べるマップを記憶し、コントローラ１２によって使用可能な実行可能コードを記憶し、またデータを一時的に記憶するキャッシュを提供するために利用することができる。メモリ１８は、一実施形態では実行可能コード、マップ、およびキャッシュを記憶する複数の別個のメモリ領域を含むことができる。
【００１９】
　図２を参照して、システム１０の記憶空間１４の説明図を示す。記憶空間１４は、上記システム１０の例示的な仮想記憶アーキテクチャに従って仮想記憶空間２２および物理記憶空間２４を含む。仮想記憶空間２２は複数の仮想記憶ボリューム２６を含み、物理記憶空間２４は複数の物理記憶ボリューム２８を含む。図示しているボリューム２６、２８の数は例示的なものであり、図示する数よりも多くの、または少ないボリューム２６またはボリューム２８を所与のアプリケーションに利用することができる。
【００２０】
　仮想記憶ボリューム２６は、論理装置番号（ＬＵＮ）、論理ボリューム、または論理ドライブと呼ばれることもある。仮想記憶ボリューム２６を含む仮想記憶空間２２は、ホスト２０に都合のよい記憶容量表現を提供する。ホスト２０は、ＳＣＳＩコマンドセットを利用して、仮想記憶ボリューム２６を含む記憶空間１４のアドレス指定を実施することができる。ホスト２０は、ＨＰ−ＵＸ（登録商標）オペレーティングシステムに使用され、ヒューレット・パッカード社から市販されているＬＶＭソフトウェア等の論理ボリュームマネージャを実施して、記憶システム１０の集中管理を提供することができる。たとえば、論理ボリュームマネージャは、記憶システム１０をホストアプリケーションとインタフェースする際に使用される、ホスト２０内の記憶システム１０のデータ記憶の仮想化を提供することができる。システム１０の管理機構は、複数のソフトウェア管理インタフェース：ＳＣＳＩコマンドセット、仮想フロントパネル（ＶＦＰ）、グラフィカルユーザインタフェース（ＧＵＩ）、コマンドラインユーザインタフェース（ＣＬＵＩ）、アプリケーションプログラミングインタフェース（ＡＰＩ）等に見られ、各種ソリューション統合に使用することができる。
【００２１】
　物理記憶ボリューム２８は、実際の記憶デジタルデータを提供するように個々に構成されたディスクアレイを含むことができる（すなわち、上記の構成では仮想記憶空間を使用してデータは記憶されない）。一態様では、コントローラ１２は、ボリューム２８を使用してのデータの記憶を、所望のＲＡＩＤレベルに従って制御する。ボリューム２８の数は、システム１０の特定の実施態様に合わせて可変である。
【００２２】
　仮想記憶空間２２は、物理記憶空間２４の抽象表現をホスト２０に提供する。仮想記憶空間２２は、コントローラ１２またはホスト２０により所望のように変更することが可能である。たとえば、仮想記憶空間２２は、ホスト２０が都合よくアクセスすることができるフォーマットで物理記憶空間２４を表すように適合可能である。そして、ホスト２０の論理ボリュームマネージャは、ホストアプリケーションが都合よく利用することができるフォーマットで、仮想記憶空間２２（図示せず）のさらに別の仮想抽象を提供することができる。
【００２３】
　システム１０の仮想記憶空間２２は、複数のアドレスまたは記憶場所３０を含む。図示の例示的な物理記憶空間２４は、複数のアドレスまたは記憶場所３６を含む。仮想記憶空間２２のアドレス３０は、データが記憶されている物理記憶空間２４のアドレス３６のアドレス指定を提供するために利用される。
【００２４】
　たとえば、一実施形態では、コントローラ１２は、複数のポインタ３４を含むマッピングシステム３２を作成し実施するように動作する。マッピングシステム３２のポインタ３４は、メモリ１８内に記憶され、仮想記憶空間２２の複数のアドレス３０それぞれを物理記憶空間２４の各アドレス３６に関連付けることができる。
【００２５】
　ホスト２０は、要求を提出することによって、システム１０に対してデータの読み出しまたは書き込みを行うことができる。このような要求は、仮想記憶ボリューム２６の記憶場所３０をアドレス指定することができる。ホスト２０から受け取った、仮想記憶場所３０を特定する要求は関連するポインタ３４を有し、このポインタ３４は、仮想記憶場所３０を特定する要求に示されるように、ホスト２０が読み出すべき、またはホスト２０が書き込みを行うべき実際のデータを含む各物理記憶場所３６を特定する。
【００２６】
　個々の仮想記憶場所３０は、上記の実施態様の物理記憶場所３６において予め定義された共通のデータ量を表すことができる。たとえば、仮想記憶場所３０は、例示的な一構成では、５１２バイトのデータを個々に含む５１２個のブロックを含むクラスタを指すことができる。したがって、仮想記憶場所３０は、一実施形態では物理記憶アドレスまたは場所３６につき、５１２バイトのデータを個々に含む５１２個のブロックを含み、総計で２５６Ｋバイトのデータを提供する各物理記憶場所３６のデータのクラスタサイズを指す。
【００２７】
　仮想記憶アーキテクチャに従って構成された記憶システム１０は、従来のＲＡＩＤシステムでは不可能な動作を実施することができる。たとえば、コントローラ１２は、データ自体を複製するのではなく、コピー中の元のボリューム２６のポインタを複製することによって記憶ボリューム２６の仮想コピーを作成することができる。ポインタのこのような複製は、仮想記憶ボリューム２６のある時点でのコピーすなわちスナップショットを提供するものと呼ぶことができる。
【００２８】
　図３を参照して、例示的なある時点でのコピーすなわちスナップショット動作についてさらに詳細に述べる。複数の仮想記憶ボリューム２６および物理記憶ボリューム２８が図３に示されている。第１の仮想記憶ボリューム４０は親または元のボリュームと呼ぶことができ、第２の仮想記憶ボリューム４２はスナップショットボリューム４２と呼ぶことができる。スナップショット動作を行って、新しいスナップショットボリュームを作成するか、または既存のスナップショットボリュームをリフレッシュして元のボリュームのスナップショットを提供することができる。
【００２９】
　図示の例では、元のボリューム４０は、仮想記憶場所３０を物理記憶場所３６にマッピングする、所与の時点における複数のポインタ３４それぞれを含む。スナップショット動作中、コントローラ１２は、元のボリューム４０のもう一つの仮想記憶ボリューム４２を作成する。一実施形態では、コントローラ１２は、ボリューム４０の関連ポインタ３４をコピーし、ボリューム４０をスナップした時点に元のボリューム４０と同じ物理記憶場所３６を指す、またはアドレス指定する同じポインタ３４を含むボリューム４２を作成する。
【００３０】
　スナップショットボリューム４２は、最初に作成されたときには、関連する物理記憶空間２８すべてを元のボリューム４０と共用している。その後、スナップショットボリューム４２あるいは元のボリューム４０のデータが、ホスト２０からの動作またはコントローラ１２の内部動作に応答して更新される場合がある。更新が行われると、新しい／変更されたデータを保持するために、新しい物理記憶空間が割り当てられる。スナップショットボリューム４２あるいは元のボリューム４０（すなわち、新しい／変更されたデータを受け取ったボリューム）の新しい／変更されたデータに対応するポインタ３４が、新しいデータを記憶している新しい物理記憶アドレス３６を指すようにセットされる一方で、変更されていないデータに対応する各ポインタ３４は、同じまたは元のアドレス３６を指し、スナップされたデータを保存する。新しい／変更されたデータプロセスに新しいポインタを提供することは、分岐(divergence)と呼ばれている。分岐した空間は、スナップショットボリューム４２と元のボリューム４０との間でもはや共用されない。
【００３１】
　たとえば、図３に示すように、仮想記憶場所４４は最初、物理記憶場所４６をアドレス指定している。したがって、元のボリューム４０のスナップショット動作４７の後、スナップショットボリューム４２の各仮想記憶場所４８も、物理記憶場所４６をアドレス指定している。その後、第１の書き込み動作４８が仮想記憶場所４４に行われたものと仮定する。データが物理記憶場所４６から検索され、第１の書き込み動作によって変更され、分岐データとして新しい物理記憶場所５０に記憶される。仮想記憶場所４４に関連するポインタ３４は、第１の書き込み動作４８の後に物理記憶場所５０をアドレス指定する分岐ポインタになる。しかし、スナップショットボリューム４２の仮想記憶場所４８のポインタ３４は依然として物理記憶場所４６をアドレス指定し、スナップされた未変更の元データへのアクセスを提供する。
【００３２】
　スナップショットボリューム４２のデータの更新も、スナップショットボリューム４２の仮想記憶場所５４に対する例示的な第２の書き込み動作５２によって示すように行われ得る。それまでは仮想記憶場所５４および対応する物理記憶場所５５に関連していたポインタ３４は、ここで、第２の書き込み動作後の、物理記憶場所５５としてそれまでは記憶されていた変更済データを含む新しい物理記憶場所５６を参照するように調整される。元のボリューム４０の仮想記憶場所５８に関連するポインタ３４は、第２の書き込み動作後でも依然として物理記憶場所５５をアドレス指定している。
【００３３】
　スナップショットボリュームは、親ボリュームがスナップされた時点でさらに物理記憶空間を消費することはないため、記憶システム１０の利用可能な物理記憶空間が、分岐発生時に枯渇するようにスナップショットボリュームが構成される可能性がある。システム１０がデータ変更の結果生じるスナップショットボリュームの分岐への適合に十分な物理記憶空間を有していない場合であっても、システム１０ではスナップショット動作が可能である。記憶システム１０のこの状態は、過大割り当てと呼ぶことができる。システム１０の１つまたは複数のスナップショットボリュームが、それぞれの使用サイクルにおいて完全な分岐が行われない場合があるため、記憶システム１０が過大割り当て状態になることが可能であることが有利である。このような場合において、過大割り当て状態の場合、記憶システム１０は、利用可能な物理記憶空間よりも多くの記憶空間（仮想記憶空間で表される）を有しているように見える可能性がある。非保証型利用可能容量を示す詳細は、発明者Michael JacobsonおよびLee Nelsonによって出願された「Computer Systems, Virtual Storage Systems, Virtual Storage System Operational Methods」と題する米国特許出願第１００１１０８３９−１号において論考されている。
【００３４】
　しかし、記憶システム１０の過大割り当てを許すと、物理記憶空間が枯渇した場合にどのように応対するかについて問題が生じる。本発明の態様は、データ可用性の損失につながる可能性がある空間切れ（out-of-space）という事態を回避するように物理記憶空間の過大割り当てを管理する。本発明の態様は、所定のスナップショットボリュームをシステム１０によって自動的に除去可能にして空間のコミットメントを満たすことにより、空間切れという事態を回避する。したがって、１つまたは複数のスナップショットボリューム（およびマッピングシステムの関連するポインタ）の自動的な除去が本発明の態様に従って提供され、データ可用性の損失が回避される。
【００３５】
　一態様では、スナップショットボリュームが作成されると、スナップショットボリュームに保証型スナップショットボリュームおよび非保証型スナップショットボリュームを含む特定のカテゴリが関連付けられる。保証型スナップショットボリュームは、ホスト２０のクリティカルデータ、またはシステム管理者もしくは他のエンティティによりクリティカルと示されたデータを含むボリュームに相当し、非保証型スナップショットボリュームは、ホスト２０の非クリティカルデータ、またはシステム管理者もしくは他のエンティティにより非クリティカルと示されたデータに相当することができる。例示的な１つの動作規定によれば、親仮想記憶ボリュームおよび保証型スナップショットボリュームは自動的に削除することができないが、非保証型スナップショットボリュームは、物理記憶空間の枯渇を回避するために、システム１０によって自動的に削除することができる。一構成では、システム１０は、システム１０の利用可能な物理記憶空間を越えての親仮想記憶ボリュームおよび保証型スナップショットボリュームの空間コミットメント（space commitment)を許可しないであろう。別の態様によれば、すべてのタイプのスナップショットボリュームを除去することができる。
【００３６】
　したがって、本発明の態様によっては、非保証型スナップショットボリュームを過大割り当てし、システム１０から自動的に除去することが可能である。ホスト２０、システム１０の管理者、または他のエンティティは、クリティカルデータが非保証型スナップショットボリューム内に記憶されることを回避するようにシステム１０を構成すべきである。本発明のさらなる態様では、非保証型スナップショットボリュームの優先順位付けおよび優先順位付け規定に従って１つまたは複数の非保証型スナップショットボリュームを自動的に除去することが可能である。
【００３７】
　図４を参照して、本発明の態様による複数の非保証型スナップショットボリューム４２の例示的な優先順位付けを示す。各スナップショットボリューム４２の作成中に、複数の関連グループ６０、６２、６４が設けられる。各グループ６０、６２、６４は、例示的な態様では、物理記憶空間２４の枯渇を回避するために、グループによるスナップショットボリューム４２の除去順序を指定する優先順位付けリストの各優先度に対応する。
【００３８】
　個々のグループ６０、６２、６４は、１つまたは複数のスナップショットボリューム４２を含むことができる。共通グループのスナップショットボリューム４２には、管理者、ホスト２０、システム１０または他のエンティティにより共通の優先度が割り当てられる。考えられる１つの除去優先順位付け規定によれば、グループ中の１つのスナップショットボリューム４２が除去される場合、同じグループ中のその他のスナップショットボリューム４２（１つまたは複数）もまた、物理記憶空間２４をさらに解放するために除去することができる。たとえば、ホスト２０の関連するアプリケーションプログラムに対応する各グループに、スナップショットボリューム４２を設けることができる。ホスト２０の所与のアプリケーションは、所与のグループのスナップショットボリューム４２を使用することができ、そのグループ中の１つのスナップショットボリューム４２が除去される場合、同じグループ中の他のスナップショットボリューム４２も、アプリケーションにとって有用でなくなれば除去することができる。
【００３９】
　一実施態様では、スナップショットボリュームの個々のグループは、グループ中のメンバであるスナップショットボリュームを指定するグループ識別子と、グループに従って各スナップショットボリュームの除去優先度を指定するグループ優先度属性をそれぞれ有することができる。スナップショットボリュームのグループ化およびグループの優先順位付けにより、特定グループのすべてのスナップショットボリュームが自動的に除去されてから、別グループのスナップショットボリュームの除去が行われるようにすることができる。
【００４０】
　一実施形態によれば、ホストアプリケーション、管理者、または他のエンティティは、適切な自動除去が確保されるように、グループ識別子およびグループ優先度属性のスナップショットボリュームへの割り当てにおいて一貫性を保つ。自動除去が行われる場合、その選定にはまずグループ優先度が用いられ、次いでグループ識別子が用いられる。グループ識別子およびグループ優先度属性が決定的ではない場合には、自動除去には、残っている候補の中から任意に選定することができる。
【００４１】
　管理者、ホストアプリケーション、または他のエンティティが所与のスナップショットボリュームにグループ優先度を定めない場合、システム１０のコントローラ１２は、デフォルト優先度規定を利用して所与のスナップショットボリュームの除去を指定することができる。考えられる１つのデフォルト優先度規定は、スナップショットボリュームの少なくともいくつかを、作成の時系列順序に従って除去するように指定することができる。したがって、例示的な一規定において他のスナップショットボリュームまたはグループにより低い優先度が割り当てられていない場合には、最初に最も古いスナップショットボリュームが自動的に除去されるであろう。
【００４２】
　本発明の態様は、スナップショットボリュームの優先度を定める複数の方法を提供する。作成されたスナップショットボリュームのグループ優先度は、明示的に規定することができる。別の態様では、１つまたは複数のスナップショットボリュームのグループ識別子は、既存のグループのグループ優先度が、デフォルトでそのグループのスナップショットボリュームになる既存のグループに対応して明示的に規定することができる。グループ優先度は、示されたグループ識別子がスナップショットボリュームに割り当てられているが、既存のグループに整合しない場合にデフォルトとすることができる。説明している優先順位付けは例示的なものであり、他の優先順位付け手順も利用することが可能である。
【００４３】
　システム１０の例示的な一動作態様によれば、コントローラ１２は、システム１０の動作中に複数の時点で物理記憶空間２４に残っている利用可能な記憶容量を監視するように構成される。物理記憶空間２４の残りのデータ記憶容量が所定の状態に達したことが検出されると、コントローラ１２は、除去動作を実施して記憶されているデータの可用性を確保するように構成される。コントローラ１２は、ホスト２０、管理者、他のエンティティ、または上に述べたようなデフォルトにより割り当てられたものとして除去優先度を指定する優先順位付けリストに従って除去動作を実施するように構成される。１つまたは複数のスナップショットボリュームのグループを除去した後、グループをさらに除去する必要がある場合がある。一動作態様では、データ可用性の損失を回避するために必要な場合には、非保証型スナップショットボリュームがすべて除去されることもあり得る。
【００４４】
　スナップショットボリュームが作成されると、各スナップショットボリュームを自動的に除去することが適切な場合にコントローラ１２によってとられるアクションを決定する除去アクション属性を各ボリュームに割り当てることができる。一態様では、考えられる除去動作としては、削除または脱離が挙げられる。スナップショットボリュームが削除される場合、各ポインタがメモリから除去され、スナップショットボリュームエンティティも除去される。スナップショットボリュームを脱離する場合、各ポインタは除去されるが、スナップショットボリュームは存在したままであり、後の時点で添付しアドレス指定することができる。再添付は、スナップショットボリュームのリフレッシュにつながる。ポインタを除去すると、各スナップショットボリュームのマッピングシステムの部分が除去され、除去されたポインタの物理記憶空間が解放される。
【００４５】
　本発明のさらなる態様では、後の時点で所与のスナップショットボリュームを非保証状態と保証状態との間で変更することが可能である。しかし、例示的な一動作態様では、スナップショットボリュームの非保証から保証への変換変更が要求される場合、このような変更は、この変更に伴ってさらに物理記憶空間が利用可能になる場合にのみ可能である。保証型スナップショットボリュームを非保証型スナップショットボリュームに変換することも可能である。保証型スナップショットボリュームが後の時点で非保証型に変換される場合には、作成後に非保証型スナップショット属性を保証型スナップショットボリュームに割り当てることができる。
【００４６】
　本発明のさらなる態様では、システム１０が、物理記憶空間の１つまたは複数の利用可能容量状態に対応して１つまたは複数の警告を作成することが可能である。１つまたは複数の警告を利用して、システム１０が空間切れ状態に近づいているときに管理者または他のエンティティに警告することができる。警告（１つまたは複数）に続いて、管理者または他のエンティティは、非保証型スナップショットボリュームを削除する前に、空間管理動作を実施することができる。たとえば、ディスクをさらに物理記憶空間に追加するか、または使用されていない仮想記憶ボリュームを除去することができる。一態様では、残っている容量が２％などのしきい値になったときにスナップショットボリュームを自動的に除去するのに先立って、３つの別のしきい値（残っている物理記憶空間容量が２５％、１０％、および５％）および関連する警告を提供することが可能である。他のしきい値および警告動作を利用してもよい。
【００４７】
　本発明の他の態様によれば、システム１０は、スナップショットボリュームの除去前に警告を提供しなくてもよく、ホストアプリケーションまたはユーザの支援なしで除去が実行されることができる。
【００４８】
　さらなる態様では、１つまたは複数のスナップショットボリュームを除去した後にアラームが発せられる。ホスト、管理者、または他のエンティティは、新しい自動除去アラームが前のアラームの承認中に発せられることがないように、アラームがシステム１０によって発せられた後にそのアラームを作動停止することができる。
【００４９】
　本発明のさらなる態様では、物理記憶空間の消費が続くにつれて自動除去の対象となるボリュームおよび除去順序を含むスナップショットボリュームのリストがコントローラ１２によって作成される。
【００５０】
　本発明の態様によっては、非保証型スナップショットボリュームの作成に対して制限を課すことができる。たとえば、制限によっては、例示的な態様によれば、物理記憶空間の現在の状態に基づくものもある。たとえば、非保証型スナップショットボリュームを新たに作成すると、作成後に物理記憶空間がさらに消費されるために既存の１つまたは複数の非保証型スナップショットボリュームが削除されると判断された場合、非保証型スナップショットボリュームを新たに作成することを避けることができる。あるいは、他の態様によれば、このような非保証型スナップショットボリュームの新たな作成を許可することができ、他の非保証型スナップショットボリュームの作成および考えられる削除に対応することは、ホスト２０、管理者、または他のエンティティの責任である。
【００５１】
　図５を参照して、コントローラ１２により実行可能であり、本発明の態様を実施する例示的な動作方法を示す。図示の方法は、コントローラ１２によって実行される、メモリ１８内の実行可能コードとして組み込むことができる。この方法は、本発明の態様を実行する例示的なステップを示すために提示されるものである。より多くの、またはより少ないステップ、または代替のステップを含む他の方法も可能である。
【００５２】
　ステップＳ１０を参照して、コントローラは、１つまたは複数の非保証型スナップショットボリュームを作成するように動作する。
【００５３】
　ステップＳ１２において、コントローラは、たとえばホストからの１つまたは複数の書き込みコマンドを処理する。
【００５４】
　ステップＳ１４において、コントローラは、変更されたデータが存在する新しい物理記憶空間（１つまたは複数）を指す１つまたは複数の分岐(divergence)ポインタを作成する。
【００５５】
　ステップＳ１６において、コントローラは、物理記憶空間の残りの利用可能容量を１つまたは複数のしきい値と比較する。
【００５６】
　一実施形態では、ステップＳ１６において物理容量が連続して監視され、除去が妥当か否かが判断される。将来の時点でスナップショットボリュームがさらに追加される可能性もあり、物理容量状態の監視は本明細書に述べるように実施される。
【００５７】
　ステップＳ１６の条件が肯定され、物理記憶空間の枯渇が示される場合、コントローラは、ステップＳ１８において、非保証型スナップショットボリュームグループの優先度を含む優先順位付けリストにアクセスすることができる。
【００５８】
　ステップＳ２０において、コントローラは、優先度が最も低いグループに関連する非保証型スナップショットボリュームを除去するように動作する。
【００５９】
　本発明の態様は、過大割り当てに対応する技法に多くの改良を提供する。たとえば、いくつかのソリューションは、システムの監視および物理記憶空間が枯渇に近づいた場合のシステム管理者への警告を含む予測能力を提供した。追加の物理記憶空間（たとえば、ディスク）をシステムに付加する、または使用されていないボリュームをシステムから手動で削除するという点において、システム管理者が修正アクションを行うことができた。これには、システム管理者からの応答が必要であり、またそういった人物が不在の場合があることから、多くの欠点が存在する。応答がない場合、物理空間は枯渇し、データ可用性の損失またはデータ損失につながることが多い。
【００６０】
　本発明の態様は、物理空間の枯渇を回避するように、システム管理者の応答を必要としないという関連利点を含むスナップショットボリューム（１つまたは複数）の自動的な除去を提供する。記憶システム、ホスト、管理者、または他のエンティティは、本発明の態様に従って自動削除ポリシーを構成して、物理記憶空間が枯渇に近づいたときに、人間の介入なしで適切なアクションを行うことができる。本発明の態様は、管理者の応答がないためにデータ可用性の損失またはデータの損失が発生する可能性をなくし、過大割り当てされたスナップショット動作を記憶システムのユーザにとってより実現しやすく、管理しやすく、有用かつ容認できるものにする。
【００６１】
　求める保護は、例としてのみ与えられた開示の実施形態に限定されず、併記の特許請求の範囲によってのみ制限されるものである。
【図面の簡単な説明】
【００６２】
【図１】例示的な記憶システムの機能ブロック図である。
【図２】例示的な仮想記憶システムとして実施された図１の記憶システムの説明図である。
【図３】例示的な仮想記憶システムのスナップショット動作の説明図である。
【図４】仮想記憶システムの仮想記憶空間の例示的な優先順位付け規定の説明図である。
【図５】仮想記憶システムのデータを管理する例示的な方法を示すフローチャートである。
【符号の説明】
【００６３】
１０　仮想記憶システム
１２　コントローラ
２２　仮想記憶空間
２４　物理記憶空間
２６　仮想記憶ボリューム
３２　マッピングシステム
３４　ポインタ
【図１】
2004127301.tif 000003
【図２】
2004127301.tif 000004
【図３】
2004127301.tif 000005
【図４】
2004127301.tif 000006
【図５】
2004127301.tif 000007