(57)【要約】【課題】関連するコンピュータアプリケーションにおいて使用するデータを記憶・提供する改良されたシステムおよび方法を提供する。【解決手段】本発明で提供するコンピュータシステムは、物理記憶空間と、仮想記憶空間と、仮想記憶空間非保証型スナップショットボリュームの作成に利用される非保証型利用可能容量と、を含む仮想記憶システムであって、非保証型利用可能容量を監視し、報告書を提示するように構成された仮想記憶システムと、仮想記憶システムに連結されたホストであって、非保証型スナップショットボリュームの生成を要求するアプリケーションを実行し、報告書にアクセスして仮想記憶システムの非保証型利用可能容量を決定し、報告書へのアクセスに応答して少なくとも１つの非保証型スナップショットボリュームを作成する要求を仮想記憶システムに発するように構成されたホストと、を備える。【選択図】図１
2004127300.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により２００２年１０月３日に出願された「Virtual Storage Systems, Virtual Storage Methods and Methods of Over Committing a Virtual RAID Storage System」と題する米国特許出願第１０／２６４，６５９号、発明者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」と題する米国特許出願第１０／２６４，６６１号。
【発明の開示】
【発明が解決しようとする課題】
【０００７】
　上に述べたように、本発明の各種態様は、関連するコンピュータアプリケーションにおいて使用するデータを記憶・提供する改良されたシステムおよび方法を提供する。
【課題を解決するための手段】
【０００８】
　本発明の一態様によれば、コンピュータシステムは、物理記憶空間と、仮想記憶空間と、仮想記憶空間の複数の仮想記憶ボリュームの複数の非保証型スナップショットボリュームの作成に利用される非保証型利用可能容量と、を含む仮想記憶システムであって、非保証型利用可能容量を監視し、監視に応答して非保証型利用可能容量に関する報告書を提示するように構成された仮想記憶システムと、仮想記憶システムに連結されたホストであって、少なくとも１つの仮想記憶ボリュームの中の非保証型スナップショットボリュームの生成が要望されるとき、アプリケーションを実行し、報告書にアクセスして仮想記憶システムの非保証型利用可能容量を決定し、報告書へのアクセスに応答して少なくとも１つの仮想記憶ボリュームの中の少なくとも１つの非保証型スナップショットボリュームを作成する要求を仮想記憶システムに発するように構成されたホストと、を備える。
【０００９】
　本発明の別の態様によれば、仮想記憶システムは、デジタルデータを記憶するように個々に構成された複数の物理記憶場所を含む物理記憶手段と、物理記憶手段に連結されホストとインタフェースするように適合されたコントローラ手段と、を備える。コントローラ手段は、物理記憶空間の表現を提供する複数の仮想記憶ボリュームを含む仮想記憶手段を提供するように構成される。仮想記憶システムは、少なくとも１つの仮想記憶ボリュームの中の非保証型スナップショットボリュームを作成するために使用可能な非保証型利用可能容量を有する。また、コントローラ手段は、仮想記憶システムの非保証型利用可能容量を監視し、非保証型利用可能容量の報告書を作成するようにさらに構成されている。
【００１０】
　本発明のさらに別の態様によれば、仮想記憶システム動作方法は、仮想記憶システムを設けるステップを含み、この仮想記憶システムは、デジタルデータを記憶するように構成された複数の物理記憶場所を含む物理記憶空間、および複数の仮想記憶ボリュームを含む仮想記憶空間を含む。方法はさらに、仮想記憶ボリュームから物理記憶場所への複数のポインタを含むマッピングシステムを設けるステップと、仮想記憶ボリュームの１つのポインタをコピーして、その１つの仮想記憶ボリュームと同じポインタを含む非保証型スナップショットボリュームを作成するステップとを含み、このコピーは仮想記憶システムの非保証型利用可能容量を消費し、仮想記憶システムを過大割り当てする（over commit）。方法はさらに、一定のフォーマットを有し、仮想記憶システムの非保証型利用可能容量を示す複数の報告書を作成するステップを含み、この報告書を作成するステップは、コピーの前後に報告書を作成するステップを含む。
【００１１】
　本発明のさらに別の態様によれば、仮想記憶システム動作方法は、仮想記憶システムを設けるステップを含み、この仮想記憶システムは、デジタルデータを記憶するように構成された複数の物理記憶場所を含む物理記憶空間、および複数の仮想記憶ボリュームを含む仮想記憶空間を含む。方法はさらに、仮想記憶空間の複数のアドレスを物理記憶空間の複数の物理記憶場所にマッピングするステップと、仮想記憶システムの複数の状態を監視するステップと、監視後に仮想記憶システムの非保証型利用可能容量を示す報告書を作成するステップと、を含む。
【発明を実施するための最良の形態】
【００１２】
　図１を参照して、コンピュータシステムの例示的な構成を参照番号５で示す。例示的なコンピュータシステム５は、データ記憶システム１０およびホスト２０を含む。本発明の態様によれば、記憶システム１０は仮想記憶システムとして具現される。一構成では、記憶システム１０は、さらに詳細に後述するように、仮想記憶空間と物理記憶空間との間に抽象的なアドレス指定またはマッピングを有する仮想アレイ（ＲＡＩＤ）記憶システムである。仮想記憶システム構成は、従来のディスクアレイ構造とは異なる。従来のディスクアレイ構造は、数学的関数を利用して、物理記憶空間のブロックに固定されるリテラルアドレッシング（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から入手することができる。
【００１４】
　引き続き図１を参照すると、例示的に述べられる構成での記憶システム１０は、コントローラ１２およびデータを記憶するように構成された記憶空間１４を含む。図示のアプリケーションにおける記憶システム１０は、ホスト２０とインタフェースするように構成されている。記憶システム１０は、ホスト２０から受け取ったデータを記憶するとともに、要求されたデータをホスト２０に提供するように構成されている。ホスト２０は、ワークステーション、パーソナルコンピュータ、サーバ、コンピュータ装置のネットワーク、または別個のデータ記憶システムを利用する他の適切なコンピュータ構造として実施することができる。
【００１５】
　考えられる一実施態様によれば、ホスト２０は特定のユーザが望む複数のアプリケーションを実行する。さらに以下に述べるように、ホスト２０や、たとえば記憶システム１０を含む他のエンティティ（entity、構成要素）は、ビジネスコピーとも呼ばれる、記憶システム１０内に記憶されているデータのスナップショットの作成を望む場合がある。ホスト２０は、システム１０からの状態情報を含む報告書にアクセスし、かつ／またはホスト２０がシステム１０を使用してスナップショットボリュームを作成したい場合に、スナップショットボリューム作成要求をシステム１０に発することができる。状態情報へのアクセスおよびスナップショットボリュームの作成についてのさらなる詳細は、以下の例示的な構成に関連付けて詳細に説明する。
【００１６】
　図示の構成では、コントローラ１２は、入出力（Ｉ／Ｏ）要求の取り扱いを含め、ホスト２０に関するインタフェース動作を実施するように構成されている。さらに、コントローラ１２は、記憶空間１４のアドレス指定および記憶空間１４でのデータの記憶の実施を含め、記憶空間１４の管理を行う。例示的な一構成において以下に述べるように、コントローラ１２は、物理記憶空間の仮想記憶空間表現およびマッピングシステムを作成し、また物理記憶空間と仮想記憶空間との間のアドレス指定を提供するように構成されている。
【００１７】
　図示の例示的な構成では、コントローラ１２は中央処理装置（ＣＰＵ）１６およびメモリ１８を備える。例示的な中央処理装置は、Motorola, Inc.から市販されているＰｏｗｅｒＰＣ（登録商標）４４０または８２４０である。
【００１８】
　記憶システム１０のコントローラ１２は、上に述べた米国特許第５，３９２，２４４号に記載のＡｕｔｏＲＡＩＤ動作を実施するように構成することができる。ＡｕｔｏＲＡＩＤ動作を実施するコントローラ１２は、システム１０内に記憶されているデータの使用を監視し、そのデータに最もよいＲＡＩＤレベルを決定することができる。たとえば、書き込みがあまり頻繁に行われないデータはＲＡＩＤ　５ＤＰに記憶されて、それによって記憶効率が提供され、書き込みが頻繁に行われるデータはＲＡＩＤ１＋０に記憶することができ、それによって最適なパフォーマンスが提供される。データは、データの有効期間、そのデータにアクセスする頻度、および他の要因に応じてＲＡＩＤレベル間で移動することができる。
【００１９】
　メモリ１８は、記憶空間１４をアドレス指定する際に使用する以下に述べるマップを記憶し、コントローラ１２によって使用可能な実行可能コードを記憶し、またデータを一時的に記憶するキャッシュを提供するために利用することができる。メモリ１８は、一実施形態では実行可能コード、マップ、およびキャッシュを記憶する複数の別個のメモリ領域を含むことができる。
【００２０】
　図２を参照して、システム１０の記憶空間１４の説明図を示す。記憶空間１４は、上記システム１０の例示的な仮想記憶アーキテクチャに従って仮想記憶空間２２および物理記憶空間２４を含む。仮想記憶空間２２は複数の仮想記憶ボリューム２６を含み、物理記憶空間２４は複数の物理記憶ボリューム２８を含む。図示しているボリューム２６、２８の数は例示的なものであり、図示する数よりも多くの、または少ないボリューム２６またはボリューム２８を所与のアプリケーションに利用することができる。
【００２１】
　仮想記憶ボリューム２６は、論理装置番号（ＬＵＮ）、論理ボリューム、または論理ドライブと呼ばれることもある。仮想記憶ボリューム２６を含む仮想記憶空間２２は、ホスト２０に都合のよい記憶容量表現を提供する。ホスト２０は、ＳＣＳＩコマンドセットを利用して、仮想記憶ボリューム２６を含む記憶空間１４のアドレス指定を実施することができる。ホスト２０は、ＨＰ−ＵＸ（登録商標）オペレーティングシステムに使用され、ヒューレット・パッカード社から市販されているＬＶＭソフトウェア等の論理ボリュームマネージャを実施して、記憶システム１０の集中管理を提供することができる。たとえば、論理ボリュームマネージャは、記憶システム１０をホストアプリケーションとインタフェースする際に使用される、ホスト２０内の記憶システム１０のデータ記憶の仮想化を提供することができる。システム１０の管理機構は、複数のソフトウェア管理インタフェース：ＳＣＳＩコマンドセット、仮想フロントパネル（ＶＦＰ）、グラフィカルユーザインタフェース（ＧＵＩ）、コマンドラインユーザインタフェース（ＣＬＵＩ）、アプリケーションプログラミングインタフェース（ＡＰＩ）等に見られ、各種ソリューション統合に使用することができる。
【００２２】
　物理記憶ボリューム２８は、実際の記憶デジタルデータを提供するように個々に構成されたディスクアレイを含むことができる（すなわち、上記の構成では仮想記憶空間を使用してデータは記憶されない）。一態様では、コントローラ１２は、ボリューム２８を使用してのデータの記憶を、所望のＲＡＩＤレベルに従って制御する。ボリューム２８の数は、システム１０の特定の実施態様に合わせて可変である。
【００２３】
　仮想記憶空間２２は、物理記憶空間２４の抽象表現をホスト２０に提供する。仮想記憶空間２２は、コントローラ１２またはホスト２０により所望のように変更することが可能である。たとえば、仮想記憶空間２２は、ホスト２０が都合よくアクセスすることができるフォーマットで物理記憶空間２４を表すように適合可能である。そして、ホスト２０の論理ボリュームマネージャは、ホストアプリケーションが都合よく利用することができるフォーマットで、仮想記憶空間２２（図示せず）のさらに別の仮想抽象を提供することができる。
【００２４】
　システム１０の仮想記憶空間２２は、複数のアドレスまたは記憶場所３０を含む。図示の例示的な物理記憶空間２４は、複数のアドレスまたは記憶場所３６を含む。仮想記憶空間２２のアドレス３０は、データが記憶されている物理記憶空間２４のアドレス３６のアドレス指定を提供するために利用される。
【００２５】
　たとえば、一実施形態では、コントローラ１２は、複数のポインタ３４を含むマッピングシステム３２を作成し実施するように動作する。マッピングシステム３２のポインタ３４は、メモリ１８内に記憶され、仮想記憶空間２２の複数のアドレス３０それぞれを物理記憶空間２４の各アドレス３６に関連付けることができる。
【００２６】
　ホスト２０は、要求を提出することによって、システム１０に対してデータの読み出しまたは書き込みを行うことができる。このような要求は、仮想記憶ボリューム２６の記憶場所３０をアドレス指定することができる。ホスト２０から受け取った、仮想記憶場所３０を特定する要求は関連するポインタ３４を有し、このポインタ３４は、仮想記憶場所３０を特定する要求に示されるように、ホスト２０が読み出すべき、またはホスト２０が書き込みを行うべき実際のデータを含む各物理記憶場所３６を特定する。
【００２７】
　個々の仮想記憶場所３０は、上記の実施態様の物理記憶場所３６において予め定義された共通のデータ量を表すことができる。たとえば、仮想記憶場所３０は、例示的な一構成では、５１２バイトのデータを個々に含む５１２個のブロックを含むクラスタを指すことができる。したがって、仮想記憶場所３０は、一実施形態では物理記憶アドレスまたは場所３６につき、５１２バイトのデータを個々に含む５１２個のブロックを含み、総計で２５６Ｋバイトのデータを提供する各物理記憶場所３６のデータのクラスタサイズを指す。
【００２８】
　仮想記憶アーキテクチャに従って構成された記憶システム１０は、従来のＲＡＩＤシステムでは不可能な動作を実施することができる。たとえば、コントローラ１２は、データ自体を複製するのではなく、コピー中の元のボリューム２６のポインタを複製することによって記憶ボリューム２６の仮想コピーを作成することができる。ポインタのこのような複製は、仮想記憶ボリューム２６のある時点でのコピーすなわちスナップショットを提供するものと呼ぶことができる。
【００２９】
　図３を参照して、例示的なある時点でのコピーすなわちスナップショット動作についてさらに詳細に述べる。複数の仮想記憶ボリューム２６および物理記憶ボリューム２８が図３に示されている。第１の仮想記憶ボリューム４０は親または元のボリュームと呼ぶことができ、第２の仮想記憶ボリューム４２はスナップショットボリューム４２と呼ぶことができる。スナップショット動作を行って、新しいスナップショットボリュームを作成するか、または既存のスナップショットボリュームをリフレッシュして元のボリュームのスナップショットを提供することができる。
【００３０】
　図示の例では、元のボリューム４０は、仮想記憶場所３０を物理記憶場所３６にマッピングする、所与の時点における複数のポインタ３４それぞれを含む。スナップショット動作中、コントローラ１２は、元のボリューム４０のもう一つの仮想記憶ボリューム４２を作成する。一実施形態では、コントローラ１２は、ボリューム４０の関連ポインタ３４をコピーし、ボリューム４０をスナップした時点に元のボリューム４０と同じ物理記憶場所３６を指す、またはアドレス指定する同じポインタ３４を含むボリューム４２を作成する。
【００３１】
　スナップショットボリューム４２は、最初に作成されたときには、関連する物理記憶空間２８すべてを元のボリューム４０と共用している。その後、スナップショットボリューム４２あるいは元のボリューム４０のデータが、ホスト２０からの動作またはコントローラ１２の内部動作に応答して更新される場合がある。更新が行われると、新しい／変更されたデータを保持するために、新しい物理記憶空間が割り当てられる。スナップショットボリューム４２あるいは元のボリューム４０（すなわち、新しい／変更されたデータを受け取ったボリューム）の新しい／変更されたデータに対応するポインタ３４が、新しいデータを記憶している新しい物理記憶アドレス３６を指すようにセットされる一方で、変更されていないデータに対応する各ポインタ３４は、同じまたは元のアドレス３６を指し、スナップされたデータを保存する。新しい／変更されたデータプロセスに新しいポインタを提供することは、分岐(divergence)と呼ばれている。分岐した空間は、スナップショットボリューム４２と元のボリューム４０との間でもはや共用されない。
【００３２】
　たとえば、図３に示すように、仮想記憶場所４４は最初、物理記憶場所４６をアドレス指定している。したがって、元のボリューム４０のスナップショット動作４７の後、スナップショットボリューム４２の各仮想記憶場所４８も、物理記憶場所４６をアドレス指定している。その後、第１の書き込み動作４８が仮想記憶場所４４に行われたものと仮定する。データが物理記憶場所４６から検索され、第１の書き込み動作によって変更され、分岐データとして新しい物理記憶場所５０に記憶される。仮想記憶場所４４に関連するポインタ３４は、第１の書き込み動作４８の後に物理記憶場所５０をアドレス指定する分岐ポインタになる。しかし、スナップショットボリューム４２の仮想記憶場所４８のポインタ３４は依然として物理記憶場所４６をアドレス指定し、スナップされた未変更の元データへのアクセスを提供する。
【００３３】
　スナップショットボリューム４２のデータの更新も、スナップショットボリューム４２の仮想記憶場所５４に対する例示的な第２の書き込み動作５２によって示すように行われ得る。それまでは仮想記憶場所５４および対応する物理記憶場所５５に関連していたポインタ３４は、ここで、第２の書き込み動作後の、物理記憶場所５５としてそれまでは記憶されていた変更済データを含む新しい物理記憶場所５６を参照するように調整される。元のボリューム４０の仮想記憶場所５８に関連するポインタ３４は、第２の書き込み動作後でも依然として物理記憶場所５５をアドレス指定している。
【００３４】
　スナップショットボリュームは、親ボリュームがスナップされた時点でさらに物理記憶空間を消費することはないため、記憶システム１０の利用可能な物理記憶空間が分岐発生時に枯渇するように、スナップショットボリュームを構成することが可能である。システム１０がデータ変更の結果生じるスナップショットボリュームの分岐への適合に十分な物理記憶空間を有していない場合であっても、システム１０ではスナップショット動作が可能である。記憶システム１０または物理記憶空間２４のこの状態は、過大割り当てと呼ぶことができる。システム１０の１つまたは複数のスナップショットボリュームが、それぞれの使用サイクルにおいて完全な分岐が行われない場合があるため、記憶システム１０が過大割り当て状態になることが可能であることが有利である。このような場合において、過大割り当て状態の場合、記憶システム１０は、利用可能な物理記憶空間よりも多くの記憶空間（仮想記憶空間で表される）を有しているように見える可能性がある。
【００３５】
　したがって、少なくとも１つの実施形態では、システム１０の利用可能な物理記憶空間は、スナップショットボリュームの構成に制約を課さない。しかし、他の理由によりスナップショットボリュームの作成に制約を課すことが望ましい場合があるか、または物理記憶利用可能容量が制約ではない場合でもスナップショットボリュームの作成を制限する他の制約が記憶システム１０の所与の設計内に存在する場合がある。本発明の態様によっては、システム１０に残っている容量を示す、記憶システム１０の非保証型利用可能容量を示し、非保証型スナップショットボリュームを作成する装置および方法を提供する。
【００３６】
　本発明の一態様では、スナップショットボリュームは、各スナップショットボリューム作成時に保証型スナップショットボリュームまたは非保証型スナップショットボリュームを含む特別なカテゴリに個々に関連付けることができる。保証型スナップショットボリュームは、ホスト２０のクリティカル（または、システム管理者または他のエンティティによってクリティカルであると示された）データを含むボリュームに相当し、非保証型スナップショットボリュームはホスト２０の非クリティカル（または、システム管理者または他のエンティティによって非クリティカルと示された）データに相当する。この例示的な態様によれば、クリティカルデータは、非クリティカルデータと比べて優先度または重要性の高いデータを指すことができる。
【００３７】
　記憶システム１０の一動作態様では、保証型スナップショットボリュームは、物理記憶空間に依存し、スナップまたはコピーしている親ボリュームのデータ全体を記憶するに足る物理記憶空間が存在する場合に作成される。非保証型スナップショットボリュームは、残っている物理記憶空間に関係なく作成することができ、このようなボリュームの作成は、物理記憶空間の過大割り当てにつながり得る。保証型および非保証型スナップショットボリュームの例示的な詳細については、発明者Michael JacobsonおよびLee Nelsonによって出願された「Virtual Storage Systems, Virtual Storage Methods And Methods Of Over Committing A Virtual RAID Storage System」と題する米国特許出願第１００１１０８４５−１号にさらに記載されている。この特許出願の態様は、データが利用できなくなる、またはデータが失われる事態を回避するために、物理空間が略枯渇した状態になると、スナップショットボリュームを自動的に消去することを提供する。
【００３８】
　本発明の態様は、非保証型利用可能容量を利用して、記憶システム１０の土台をなす実施態様から独立した、記憶システム１０を用いるスナップショットボリュームの作成に対する制約を表す。非保証型利用可能容量表現は、物理空間または記憶システム１０の他の機構の過大割り当てが制約源であってもなくても、提示することができる。上に述べたように、非保証型利用可能容量は、非保証型スナップショットボリュームを作成するために記憶システム１０に残っている容量を示す。したがって、非保証型利用可能容量は、新しい非保証型スナップショットボリュームが作成されるときに消費される。
【００３９】
　本発明の例示的な１つの動作規定によれば、非保証型利用可能容量に影響を及ぼす１つまたは複数の状態を監視し、これを利用して記憶システム１０の非保証型利用可能容量を表すことができる。コントローラ１２は、記憶システム１０の１つまたは複数の状態を監視して、本発明の今述べている態様による非保証型利用可能容量に関する情報を提供するように構成することができる。非保証型利用可能容量は物理記憶空間による制限を受けないため、コントローラ１２のＣＰＵ１６は、物理記憶空間から独立した１つまたは複数の状態を監視して、非保証型利用可能容量を求めることができる。
【００４０】
　たとえば、記憶システム１０のマッピングシステムに対応する状態を監視して、非保証型利用可能容量を表すことができる。上に述べたように、記憶システム１０は、仮想記憶空間と物理記憶空間との間のアドレス指定を実施する複数のポインタを備えたマッピングシステムを利用することができる。一実施形態では、マッピングシステムおよびポインタは、コントローラ１２のメモリ１８に記憶される。上記構成では、メモリ１８は有限サイズを有するため、有限サイズおよびそれぞれの数のポインタを有するマッピングシステムを記憶することができる。このような構成では、ポインタの記憶に割り当てられるメモリ１８のポインタは、物理記憶利用可能容量が制約ではない場合でも非保証型スナップショットボリューム作成に制約を課す可能性がある。ポインタを記憶する、メモリ１８の残りの利用可能容量は、非保証型利用可能容量の監視を行うために監視可能な例示的な１つの状態である。
【００４１】
　一実施形態では、ＣＰＵ１６はメモリ１８をポーリングして、マッピングシステムのポインタの記憶に利用可能なマッピング空間（残っているポインタ利用可能容量とも呼ばれる）を求める。ポインタは、所定量の非保証容量に個々に関連付けられるため、メモリ１８内に記憶できる利用可能なポインタ数は、非保証容量に変えることができる。
【００４２】
　記憶システム１０の代替または追加の状態を監視して、非保証型利用可能容量を求めることもできる。例示的な状態としては、製品の構造およびマーケティング目的の制限が挙げられる。たとえば、非保証型利用可能容量ライセンス（たとえば、１０ＴＢ、２０ＴＢ、３０ＴＢ等）を、記憶システム１０とともに購入することができる。ＣＰＵ１６は、システム１０の非保証型利用可能容量の各ライセンスに関して記憶システム１０の非保証容量の消費量を監視することができ、ライセンスは、非保証型利用可能容量に対する制限制約とすることができる。監視することができる、記憶システム１０の上記状態は例示的なものであり、本発明のさらなる態様により、他の状態（１つまたは複数）（たとえば、以下に述べるマッピング空間フラグメントの数およびサイズ）を監視してもよい。
【００４３】
　上に述べた監視動作に加えて、例示的な上記記憶システム１０は、本発明の他の態様によれば、１つまたは複数の時点における記憶システム１０の非保証型利用可能容量を示すことによって非保証型スナップショットボリュームを作成する、システム１０の能力を示すように構成することができる。例示的な１つの表示動作では、１つまたは複数の時点における記憶システム１０の非保証型利用可能容量を示す報告書を作成することができる。たとえば、記憶システム１０は、一態様では、ホスト２０からの要求に応答して報告書を作成して提供することができる。別の態様では、記憶システム１０は、予め定義された時点（たとえば、２秒間隔または他の所望の間隔）で報告書を更新して提供することができる。さらに、報告書は周期的に（たとえば、新しいスナップショットボリュームの作成前および作成後）、または他の所望の規定に従って作成して、記憶システム１０の現在の状態に関する情報を提供することができる。
【００４４】
　作成される例示的な報告書は、記憶システム１０の１つまたは複数の状態が変わった各時点で作成することができる非保証型スナップショットボリュームの数および／またはサイズを決定する際に利用可能な情報を含む。非保証型利用可能容量は、例示的な報告書において多くの方法で表すことができる。たとえば、考えられる一構成の報告書は、記憶システム１０の全体または合計の非保証型利用可能容量、非保証型利用可能容量フラグメント数、および／または各フラグメントのサイズを大きい方から小さい順に示す。このような例示的な報告書に表されるフラグメントは、非保証型スナップショットボリュームの作成に利用可能なマッピング空間のマッピングフラグメントを示す。
【００４５】
　非保証型利用可能容量におけるフラグメントの例示的な１つの原因は、利用可能なマッピング空間中の制約である（たとえば、ポインタに利用可能な、残りのメモリ）。非保証型利用可能容量のフラグメントの他の理由も存在し得る。あるいは、非保証型利用可能容量のフラグメントは、非保証型利用可能容量を単一の値として表すことができる他の構成または実施態様では存在しない場合がある。
【００４６】
　記憶システム１０の例示的な一実施形態では、所与の時点で作成可能な非保証型スナップショットボリュームのサイズは、特定の時点で利用可能な最大のマッピングフラグメントのサイズによって制限される。さらに、個々のフラグメントは、例示的な実施形態で作成し得る個々の非保証型スナップショットボリュームに対応する。さらなる例示的な詳細によれば、ＣＰＵ１６は、システム１０の非保証型利用可能容量を監視する時点で記憶システム１０内で現在使用可能なマッピングフラグメントの数およびサイズを含む状態を監視することができる。
【００４７】
　以下の表Ａを参照して例示的な報告を示し、本発明の態様による記憶システム１０の非保証型利用可能容量を示す可能な１つのフォーマットを提供する。他の報告書フォーマット構成も可能である。さらに、非保証型利用可能容量は、本発明の他の態様により追加の、または代替の方法で表すことが可能である。
【表Ａ】
2004127300.tif 000003
　表Ａの例示的な報告書によれば、記憶システム１０は、４つの非保証型スナップショットボリュームを作成することができ、報告書が作成された特定の時点での、上記動作規定により作成できる最大可能なスナップショットボリュームのサイズは２２ＧＢである。
【００４８】
　上に述べたように、複数の報告書を複数の時点に作成して、記憶システム１０の状態を示すことができる。一態様では、報告書は、表Ａに示す例示的なフォーマット等、一定のフォーマットを有する。例示的なフォーマットに示すように、報告書は、非保証型利用可能容量に制約または制限を課す特定の限度を示すことなく、非保証型利用可能容量を提供することができる。たとえば、マッピング空間の５つのフラグメントがある時点において利用可能であり、ライセンス取得した非保証型利用可能容量を越えており、５つすべてのフラグメントが、５つの対応する非保証型スナップショットボリュームの作成中に消費されていた場合、コントローラ１２は、利用可能なフラグメント数が５未満であることを示す報告書を作成して、制約状態を表すまたは示すことなく、非保証型利用可能容量が誤って表示されているわけではないことを保証することができる。
【００４９】
　アプリケーション実行中、または他の理由によりホスト２０は、記憶システム１０の非保証型利用可能容量にアクセスする、またはこれを測定することが望ましい場合がある（たとえば、ホスト２０が非保証型スナップショットボリュームを作成したい場合）。したがって、コントローラ１２は、一態様では、報告書を作成するために、ホスト２０にアクセス可能性を提供するように構成することができる。ホスト２０は、記憶システム１０に報告書を要求し、かつ／またはコントローラ１２が周期的に、非保証型利用可能容量を示す現在の状態についての報告書をホスト２０に連絡することができる。記憶システム１０内で非保証型スナップショットを作成することが望ましい場合、ホスト２０は報告書を解析し、スナップショット動作に見合うに足る非保証型利用可能容量があるかどうかを判定する。非保証型利用可能容量が存在する場合、ホスト２０は、所望データのスナップショット動作を開始する要求を記憶システム１０に発することができる。上記例示的な手順による動作は、ホスト２０による記憶システム１０の個々の状態の長々としたポーリングを最短化して、スナップショットボリュームを作成する容量が存在するか否かを判定する。
【００５０】
　図４を参照して、コントローラ１２により実行可能であり、上に述べた本発明の態様を実施する例示的な動作方法を示す。図示の方法は、ＣＰＵ１６によって実行される、メモリ１８内の実行可能コードとして組み込むことができる。この方法は、本発明の態様を実行する例示的なステップを示すために提示されるものである。より多くの、またはより少ないステップ、または代替のステップを含む他の方法も可能である。
【００５１】
　まず、ステップＳ１０において、コントローラは記憶システム１０の１つまたは複数の状態を監視するように構成され、こういった状態としては、たとえば、マッピングポインタの残りの利用可能容量、ライセンス購入され残っている非保証型利用可能容量、マッピング空間フラグメントの数およびサイズ、ならびに／または他の状態が挙げられる。ステップＳ１０は、ホスト２０からの要求に応答して、予め定義された時点に、または他の適切な刺激に応答して実行することができる。
【００５２】
　ステップＳ１２において、コントローラは、記憶システム１０の非保証型利用可能容量に関する報告書を作成し提示するように動作する。たとえば、コントローラは、ホスト２０または他のエンティティが報告書にアクセス可能であるようにすることができる。
【００５３】
　ステップＳ１４において、コントローラは、スナップショット動作要求の受け取りを監視する。
【００５４】
　ステップＳ１４の条件が否定される場合、コントローラは、ステップＳ１０およびＳ１２において、引き続き１つまたは複数の状態を監視して更新し、非保証型利用可能容量に関する報告書を更新することができる。
【００５５】
　ステップＳ１４の条件が肯定される場合、コントローラは、ステップＳ１６における要求されたスナップショットボリュームの作成に進むことができる。その後、コントローラは、ステップＳ１０およびＳ１２において、１つまたは複数の状態を監視し更新し、非保証型利用可能容量に関する報告書を更新することができる。
【００５６】
　本発明の態様は、記憶システム１０の設計の実施態様固有の属性を露出することなく、スナップショット動作の使用に対する制約を表す構造的態様および方法的態様を提供する。本発明の態様は、管理インタフェースに個々の固有の制約を提示することなく非保証型利用可能容量を連絡できるようにする。過大割り当てされた記憶システムを利用するユーザおよびソフトウェアアプリケーションは、本発明の態様による非保証型利用可能容量を判定するために、実施態様の土台をなす詳細（たとえば、どの機構が容量に関してポーリングするか）を知る必要はない。これにより、ユーザの経験およびソフトウェアアプリケーションを、過大割り当てをより管理しやすく有用な機能にするスナップショット動作および他の特徴の異なる実施態様に再使用することができる。
【００５７】
　求める保護は、例としてのみ与えられた開示の実施形態に限定されず、併記の特許請求の範囲によってのみ制限されるものである。
【図面の簡単な説明】
【００５８】
【図１】例示的なコンピュータシステムの機能ブロック図である。
【図２】仮想記憶システムとして実施されるコンピュータシステムの例示的な記憶システムの説明図である。
【図３】例示的な仮想記憶システムのスナップショット動作の説明図である。
【図４】記憶システムの非保証型利用可能容量の表示に関する例示的な動作の方法を示すフローチャートである。
【符号の説明】
【００５９】
１０　仮想記憶システム
２０　ホスト
２２　仮想記憶空間
２４　物理記憶空間
２６　仮想記憶ボリューム
３４　ポインタ
４２　非保証型スナップショットボリューム
【図１】
2004127300.tif 000004
【図２】
2004127300.tif 000005
【図３】
2004127300.tif 000006
【図４】
2004127300.tif 000007