(57)【特許請求の範囲】
【請求項１】
内部メモリおよび外部メモリを備えるコンピュータ、
前記コンピュータに接続されるストレージシステムによって提供される前記外部メモリ、
前記内部メモリおよび前記外部メモリによって提供される仮想メモリ空間を管理するコントローラ、
から構成されるコンピュータシステムであって、
前記コントローラは、前記ストレージシステムによって提供される論理ユニットを、前記仮想メモリ空間に含まれる前記外部メモリに、前記仮想メモリ空間の使用量レベルが事前設定済みの第１の閾値よりも高いときに追加するよう動作し、
前記コントローラは、前記ストレージシステムによって提供される論理ユニットを、前記仮想メモリ空間に含まれる前記外部メモリから、前記仮想メモリ空間の前記使用量レベルが前記第１の閾値よりも低い事前設定済みの第２の閾値よりも低いときに解放するよう動作する、
コンピュータシステム。
【請求項２】
前記論理ユニットは、前記ストレージシステムによって適用されるシンプロビジョニング構成を有する、
請求項１に記載のコンピュータシステム。
【請求項３】
前記コントローラは、
前記ストレージシステムによって提供される前記論理ユニットを追加／解放するかどうかを判断するために、前記仮想メモリ空間の前記使用量レベルを監視し、かつ、前記監視された使用量レベルを前記事前設定済みの１つ以上の閾値と比較するよう動作する、
請求項１に記載のコンピュータシステム。
【請求項４】
前記コントローラは、
前記仮想メモリ空間に含まれる前記外部メモリに論理ユニットを提供するために前記論理ユニットをキャッシュメモリ上にロードすることを、前記仮想メモリ空間の前記使用量レベルに基づき前記ストレージシステムにリクエストするよう動作する、
請求項１に記載のコンピュータシステム。
【請求項５】
コンピュータが備える内部メモリおよび外部メモリによって提供される仮想メモリ空間を管理する方法であって、
前記外部メモリは、前記コンピュータに接続されるストレージシステムによって提供され、
前記方法は、
前記ストレージシステムによって提供される論理ユニットを、前記仮想メモリ空間に含まれる前記外部メモリに、前記仮想メモリ空間の使用量レベルが事前設定済みの第１の閾値よりも高いときにコントローラによって追加するステップと、
前記ストレージシステムによって提供される論理ユニットを、前記仮想メモリ空間に含まれる前記外部メモリから、前記仮想メモリ空間の前記使用量レベルが前記第１の閾値よりも低い事前設定済みの第２の閾値よりも低いときに前記コントローラによって解放するステップと、
を含む方法。
【請求項６】
前記ストレージシステムによって提供される前記論理ユニットを追加／解放するかどうかを判断するために、前記仮想メモリ空間の前記使用量レベルを監視し、かつ、前記監視された使用量レベルを前記事前設定済みの１つ以上の閾値と比較するステップをさらに含む、
請求項５に記載の方法。
【請求項７】
コンピュータが備える内部メモリおよび外部メモリによって提供される仮想メモリ空間を管理するデータプロセッサを制御するための複数の命令を記憶するコンピュータ可読ストレージ媒体であって、
前記外部メモリは、前記コンピュータに接続されるストレージシステムによって提供され、
前記複数の命令は、
前記ストレージシステムによって提供される論理ユニットを、前記仮想メモリ空間に含まれる前記外部メモリに、前記仮想メモリ空間の使用量レベルが事前設定済みの第１の閾値よりも高いときに追加することを、前記データプロセッサに実行させる命令と、
前記ストレージシステムによって提供される論理ユニットを、前記仮想メモリ空間に含まれる前記外部メモリから、前記仮想メモリ空間の前記使用量レベルが前記第１の閾値よりも低い事前設定済みの第２の閾値よりも低いときに解放することを、前記データプロセッサに実行させる命令と、
を含むコンピュータ可読ストレージ媒体。
【請求項８】
前記複数の命令は、
前記ストレージシステムによって提供される前記論理ユニットを追加／解放するかどうかを判断するために、前記仮想メモリ空間の前記使用量レベルを監視し、かつ、前記監視された使用量レベルを前記事前設定済みの１つ以上の閾値と比較する命令をさらに含む、
請求項７に記載のコンピュータ可読ストレージ媒体。
【請求項９】
前記複数の命令は、
前記仮想メモリ空間に含まれる前記外部メモリに論理ユニットを提供するために前記論理ユニットをキャッシュメモリ上にロードすることを、前記仮想メモリ空間の前記使用量レベルに基づき前記ストレージシステムにリクエストする命令をさらに含む、
請求項７に記載のコンピュータ可読ストレージ媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
０１    本発明は、ストレージシステムに関し、特に、ストレージシステムによるメモリ管理に関する。
【背景技術】
【０００２】
０２    エンタープライズＩＴプラットフォームは、サーバコンピュータおよびストレージシステムを備える。サーバコンピュータは、大量のデータを生成するビジネスアプリケーションを実行する。ストレージエリアネットワーク（ＳＡＮ：Ｓｔｏｒａｇｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）は、サーバによって生成されたデータを外部ストレージシステム上に記憶できるように、サーバコンピュータおよびストレージシステムを相互接続するネットワークである。サーバコンピュータ上で実行されているオペレーティングシステムは、計算プロセスを実行するために、データをそのメモリ空間上にロードする。メモリ空間は、一般的に、サーバコンピュータ上のメモリデバイスから構成される。一般的に、メモリデバイス（例えばＤＲＡＭ）は、小さいサイズに制限されるため、無駄なく効率的に使用されなければならない。しかし、ロードされるデータのサイズに対し、メモリデバイスのサイズが不十分である状態も存在する。この問題に対処するために、オペレーティングシステムは、メモリデバイスと、ハードディスクドライブ（ＨＤＤ：ｈａｒｄ  ｄｉｓｋ  ｄｒｉｖｅ）などの他のストレージデバイスとの組み合わせによりメモリ空間を構成する、仮想メモリ空間管理能力を有する。ＨＤＤ容量は、ＤＲＡＭメモリの容量が不十分な場合のみ使用される。仮想メモリ空間は、単一のメモリデバイスであるかのように機能し、その結果、その使用状況および稼働状況をアプリケーションプログラムが管理する必要はない。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
０３    今日では、単一のアプリケーションプログラムのみではなく、多数のアプリケーションが単一のサーバコンピュータ上で実行可能である。一例は、仮想マシンプラットフォームである。最近のハイパーバイザ技術は、複数の仮想マシンを単一のサーバ上に構成させることができる。各仮想マシンは、それ専用の仮想メモリ空間を有する。通常、仮想メモリサイズの合計は、その物理メモリサイズよりも大きく設定することが可能である。この構成が、いわゆる「オーバープロビジョニング」または「オーバーサブスクリプション」である。メモリの使用量が少ない間は、問題は生じないが、メモリが不足するレベルまでメモリ使用量が増大すると、仮想メモリ空間上にある物理ＨＤＤを消費するため、仮想マシンの性能が非常に悪くなる。
【０００４】
０４    従来のストレージシステムは、ＳＳＤまたはＨＤＤデバイスをストレージリソースとして供給する。このストレージシステムでは、サーバコンピュータで発生するメモリ不足の問題を解決することができなかった。
【課題を解決するための手段】
【０００５】
０５    本発明の例示的な実施形態は、外部コンピュータに対し、ストレージシステム内の高速ＤＲＡＭリソースなどの高速メモリデバイスを提供する。サーバコンピュータは、その仮想メモリ空間上に、ストレージシステムによって供給されるメモリを付加することができ、その結果、サーバコンピュータはそのメモリサイズを拡張することができる。高いメモリ使用効率を保つために、ストレージシステムは、実際のデータが生成されたときのみ物理メモリリソースが消費されるように、メモリデバイスに対しシンプロビジョニング機能を適用する。他方、ストレージシステム上に搭載されるＤＲＡＭリソースは、メモリ使用の本来の目的ではないこともあるため、効率よく使用されなければならない。ストレージ上に搭載されるＤＲＡＭの目的は、もともと、Ｉ／Ｏ（ｉｎｐｕｔ／ｏｕｔｐｕｔ：入出力）性能を向上させるキャッシュメモリである。これは、ストレージメモリの使用が、サーバメモリ使用量が高すぎる状況に限られなければならないことを意味する。本発明はさらに、メモリ使用量が十分に低くなった後に、サーバが使用しているストレージメモリを解放する方法を開示する。
【０００６】
０６    本発明のある観点によれば、コンピュータシステムは、内部メモリおよび外部メモリを備えるコンピュータと、コンピュータに接続されるストレージシステムによって提供される外部メモリ、内部メモリおよび外部メモリによって提供される仮想メモリ空間を管理するコントローラとを含む。コントローラは、ストレージシステムによって提供される論理ユニットを、仮想メモリ空間に含まれる外部メモリに、仮想メモリ空間の使用量レベルに基づき追加するよう動作する。コントローラは、ストレージシステムによって提供される論理ユニットを、仮想メモリ空間に含まれる外部メモリから、仮想メモリ空間の使用量レベルに基づき解放するように動作する。
【０００７】
０７    いくつかの実施形態では、論理ユニットは、ストレージシステムによって適用されるシンプロビジョニング構成を有する。コンピュータは、ストレージシステムによって提供される論理ユニットを、仮想メモリ空間の使用量レベルに基づき追加／解放するよう動作するコントローラを備える、サーバコンピュータである。さらに、コンピュータは、ストレージシステムに結合されるサーバコンピュータと、サーバコンピュータおよびストレージシステムに接続される管理コンピュータとを含む。管理コンピュータは、ストレージシステムによって提供される論理ユニットを、仮想メモリ空間の使用量レベルに基づき追加／解放するように動作可能なコントローラを備える。
【０００８】
０８    特定の実施形態では、コントローラは、仮想メモリ空間の使用量レベルが、予め設定された第１の閾値よりも高ければ、ストレージシステムによって提供される論理ユニットを仮想メモリ空間に追加するよう動作する。コントローラは、仮想メモリ空間の使用量レベルが、第１の閾値よりも低い事前設定済みの第２の閾値よりも低ければ、ストレージシステムによって提供される論理ユニットを仮想メモリ空間から解放するように動作する。コントローラは、予め設定された期間で、仮想メモリ空間の使用量レベルが、第１の閾値よりも低く予め設定された第３の閾値よりも低ければ、ストレージシステムによって提供される外部メモリを、外部メモリから１つ以上のストレージデバイスを削除することによって仮想メモリ空間から縮小させるように動作する。コントローラは、ストレージシステムによって提供される論理ユニットを追加／解放するかどうかを判断するために、仮想メモリ空間の使用量レベルを監視し、監視された使用量レベルと、予め設定された１つ以上の閾値とを比較するよう動作する。コントローラは、仮想メモリ空間の使用量レベルに基づき仮想メモリ空間に含まれる外部メモリへ論理ユニットを提供するため、論理ユニットをキャッシュメモリ上にロードするようにストレージシステムに要求する。
【０００９】
０９    本発明の別の観点では、コンピュータ内で内部メモリおよび、コンピュータに接続されるストレージシステムによって提供される外部メモリで構成される仮想メモリ空間の管理方法を提示する。この管理方法は、ストレージシステムによって提供される論理ユニットを、仮想メモリ空間に含まれる外部メモリに仮想メモリ空間の使用量レベルに基づきコントローラによって追加するステップと、ストレージシステムによって提供される論理ユニットを仮想メモリ空間に含まれる外部メモリから、仮想メモリ空間の使用量レベルに基づきコントローラによって解放するステップとを含む。
【００１０】
１０    いくつかの実施形態で、追加するステップでは、仮想メモリ空間の使用量レベルが、予め設定された第１の閾値よりも高ければ、ストレージシステムによって提供される論理ユニットを仮想メモリ空間に追加する。解放するステップでは、仮想メモリ空間の使用量レベルが、第１の閾値よりも低い予め設定された第２の閾値よりも低ければ、ストレージシステムによって提供される論理ユニットを仮想メモリ空間から解放する。
【００１１】
１１    本発明の別の観点では、コンピュータ内で内部メモリおよびコンピュータに接続されるストレージシステムによって提供される外部メモリによって提供される仮想メモリ空間を管理するデータプロセッサを制御するための複数の命令を記憶するコンピュータ可読ストレージ媒体を提示する。複数の命令は、ストレージシステムによって提供される論理ユニットを、仮想メモリ空間に含まれる外部メモリに、仮想メモリ空間の使用量レベルに基づき追加することを、データプロセッサに実行させる命令と、ストレージシステムによって提供される論理ユニットを、仮想メモリ空間に含まれる外部メモリから、仮想メモリ空間の使用量レベルに基づき解放することを、データプロセッサに実行させる命令とを含む。
【００１２】
１２    本発明のこれらの特徴および利点、ならびにその他の特徴および利点が、以下の、特定の実施形態の詳細な説明を考慮することで、当業者には明らかとなる。
【発明の効果】
【００１３】
本発明のメモリ管理によれば、外部コンピュータに対し、ストレージシステム内の高速ＤＲＡＭリソースなどの高速メモリデバイスが提供され、サーバコンピュータで発生するメモリ不足の問題が解決される。
【図面の簡単な説明】
【００１４】
【図１】１３    本発明の方法および装置が適用されるストレージシステムのハードウェア構成の例を示す。
【図２】１４    サーバコンピュータに提供されるストレージリソースを示す模式図である。
【図３】１５    サーバコンピュータの従来のハードウェア構成を示す。
【図４】１６    ネットワークスイッチの従来のハードウェア構成を示す。
【図５】１７    データストレージの従来のハードウェア構成を示す。
【図６】１８    管理コンピュータの従来のハードウェア構成を示す。
【図７】１９    サーバコンピュータのメモリ上に記憶されるソフトウェア構造を示す。
【図８】２０    データストレージのメモリ上に記憶されるソフトウェア構造を示す。
【図９】２１    管理コンピュータのメモリ上に記憶されるソフトウェア構造を示す。
【図１０】２２    サーバコンピュータ管理装置のソフトウェアコンポーネントのセットを示す。
【図１１】２３    ストレージ管理装置のソフトウェアコンポーネントのセットを示す。
【図１２】２４    サーバコンピュータ上に記憶されたデバイス管理情報の従来例である。
【図１３】２５    サーバコンピュータ上に記憶されたメモリ使用量情報の従来例である。
【図１４】２６    サーバコンピュータ上のボリューム構成情報の従来例である。
【図１５】２７    サーバコンピュータの仮想マシン構成情報の従来例である。
【図１６】２８    データストレージ上のＬＵ（ｌｏｇｉｃａｌ  ｕｎｉｔ：論理ユニット）構成情報の従来のデータ構造である。
【図１７】２９    データストレージ上のシンプロビジョニングステータス情報の従来のデータ構造である。
【図１８】３０    一実施形態による、サーバコンピュータ上に作成される仮想メモリデバイスのローカル構造である。
【図１９】３１    サーバコンピュータによるメモリ消費の動作例である。
【図２０】３２    シンプロビジョニングストレージ利用プロセスのフローチャートである。
【図２１】３３    データストレージ上に搭載されたメモリリソースをサーバコンピュータの仮想メモリへの割り当てと解放プロセスのフローチャートを示す。
【図２２】３３    データストレージ上に搭載されたメモリリソースをサーバコンピュータの仮想メモリへの割り当てと解放プロセスのフローチャートを示す。
【図２３】３３    データストレージ上に搭載されたメモリリソースをサーバコンピュータの仮想メモリへの割り当てと解放プロセスのフローチャートを示す。
【図２４】３４    仮想メモリ管理が管理コンピュータによって制御される別の実装による、データストレージ上に搭載されたメモリリソースをサーバコンピュータの仮想メモリへの割り当てと解放プロセスのフローチャートを示す。
【図２５】３４    仮想メモリ管理が管理コンピュータによって制御される別の実装による、データストレージ上に搭載されたメモリリソースをサーバコンピュータの仮想メモリへの割り当てと解放プロセスのフローチャートを示す。
【図２６】３４    仮想メモリ管理が管理コンピュータによって制御される別の実装による、データストレージ上に搭載されたメモリリソースをサーバコンピュータの仮想メモリへの割り当てと解放プロセスのフローチャートを示す。
【図２７】３５    仮想メモリ管理が管理コンピュータによって制御され、データストレージがシンプロビジョニング機能を搭載しない別の実装による、データストレージ上に搭載されたメモリリソースをサーバコンピュータの仮想メモリへの割り当てと解放プロセスのフローチャートを示す。
【図２８】３５    仮想メモリ管理が管理コンピュータによって制御可能であり、データストレージがシンプロビジョニング機能を搭載しない別の実装による、データストレージ上に搭載されたメモリリソースをサーバコンピュータの仮想メモリへの割り当てと解放プロセスのフローチャートを示す。
【図２９】３５    仮想メモリ管理が管理コンピュータによって制御可能であり、データストレージがシンプロビジョニング機能を搭載しない別の実装による、データストレージ上に搭載されたメモリリソースをサーバコンピュータの仮想メモリへの割り当てと解放プロセスのフローチャートを示す。
【図３０】３６    別の実施形態による、サーバコンピュータ上に作成される仮想メモリデバイスのローカル構造である。
【発明を実施するための形態】
【００１５】
３７    以下の本発明の詳細な説明では、開示の一部を構成する添付の図面を参照する。図面には、限定ではなく例示として、本発明が実施され得る例示的な実施形態が示されている。図面において、同じ数字は、実質的に類似したコンポーネントをいくつかの図面にわたって表す。さらに、詳細な説明は、下記に記載され図面に示されるように様々な例示的な実施形態を提供するが、本発明は、本願明細書に記載され示された実施形態に限定されず、当業者に周知であろう、または当業者に周知となるであろう他の実施形態にまで及ぶことができるということに留意されたい。本明細書における、「一実施形態」、「この実施形態」または「これらの実施形態」の言及は、その実施形態に関連して記載された特定の特徴、構造または特性が、本発明の少なくとも１つの実施形態に含まれることを意味し、これらの言葉の、本明細書の様々な場所での出現は、必ずしもすべて同じ実施形態を参照するとは限らない。さらに、以下の詳細な説明では、本発明の完全な理解をもたらすために特定の詳細事項が多数記載される。しかし、当業者には当然のことながら、これらの特定の詳細事項すべては、本発明を実践するために必要でないこともある。他の状況では、本発明を不必要に不明瞭にしないように、周知の構造、物質、回路、プロセスおよびインターフェイスは、詳細に記載されてはおらず、さらに／またはブロック図の形式で示されていることもある。
【００１６】
３８    さらに、以下に続く詳細な説明の一部は、コンピュータ内の動作のアルゴリズムおよび象徴的表現によって示されている。こうしたアルゴリズムの記述および象徴的表現は、データ処理技術の当業者により、その革新の本質を他の当業者に最も効果的に伝えるために使用される手段である。アルゴリズムは、所望の最終状態または結果につながる、一連の定義済みステップである。本発明では、実行されるステップは、具体的な結果を実現するための、具体的な量の物理的操作を必要とする。必ずではないが通常、この量は、記憶、転送、結合、比較および他の形で操作可能な電気もしくは磁気信号または命令という形をとる。主に一般的に使用されているという理由から、こうした信号を、ビット、値、要素、シンボル、文字、項、数、命令などと呼ぶと便利である場合があるということが分かっている。なお、こうした用語および同様の用語はすべて、適切な物理量に関連するものであり、こうした量に適用された便利な標示にすぎないことに留意されたい。当然のことながら、以下の説明から明らかなように、別途明記されていない限り、本記載全体にわたって、「処理」、「算出」、「計算」、「判断」、「表示」または同様のものなどの用語を利用する説明は、コンピュータシステムのレジスタおよびメモリ内の物理（電子）量として表現されたデータを、コンピュータシステムのメモリもしくはレジスタ、またはその他の情報記憶、伝送もしくは表示デバイス内の同じく物理量として表現される他のデータへと操作および変換する、コンピュータシステムまたはその他の情報処理デバイスのアクションおよびプロセスを含むことができる。
【００１７】
３９    本発明は、本願明細書の動作を実行する装置にも関する。この装置は、要求される目的のために特別に構築されてもよく、または１つ以上のコンピュータプログラムによって選択的に有効化または再構成される１つ以上の汎用コンピュータを含んでもよい。そのようなコンピュータプログラムは、次に限定はされないが、光ディスク、磁気ディスク、読み取り専用メモリ、ランダムアクセスメモリ、ソリッドステートデバイスおよびドライブ、または電子情報を記憶するのに適した任意の他のタイプの媒体などの、コンピュータ可読ストレージ媒体に記憶されるとよい。本願明細書で示されるアルゴリズムおよび表示は、いずれの特定のコンピュータにも、その他の装置にも本質的に関係しない。本願明細書の教示に従って、様々な汎用システムが、プログラムおよびモジュールとともに使用されてもよく、または所望の方法ステップを実行するにはより特化された装置を構築するほうが都合がよいということが分かるかもしれない。さらに、本発明は、いずれかの特定のプログラミング言語を基準として記載されてはいない。当然のことながら、本願明細書に記載される本発明の教示を実装するために、様々なプログラミング言語が使用されてよい。プログラミング言語（単数または複数）の命令は、例えば中央処理ユニット（ＣＰＵ：ｃｅｎｔｒａｌ  ｐｒｏｃｅｓｓｉｎｇ  ｕｎｉｔ）、プロセッサまたはコントローラなどの１つ以上の処理デバイスによって実行されてよい。
【００１８】
４０    下記でさらに詳しく記載されるように、本発明の例示的な実施形態は、ストレージシステムによるメモリ管理のための装置、方法およびコンピュータプログラムを提供する。
【００１９】
４１    図１は、本発明の方法および装置が適用されるストレージシステムのハードウェア構成の例を示す。サーバコンピュータ３００、データストレージまたはストレージサブシステム１００および管理コンピュータ４００が、スイッチ２００によって接続されている。一般に、イーサネット（登録商標）、ファイバーチャネル、またはＩｎｆｉｎｉｂａｎｄおよびその他何らかのタイプのスイッチが、ＳＡＮ（Ｓｔｏｒａｇｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ：ストレージエリアネットワーク）に使用される。管理コンピュータ４００は、ストレージシステム全体を管理する役割を果たす。
【００２０】
４２    図２は、サーバコンピュータ３００に提供されるストレージリソースを示す模式図である。データストレージ１００上に搭載されるストレージデバイスが、論理ユニット（ＬＵ）５２０を生成する。論理ユニットは、ＳＳＤおよびＨＤＤなどの物理ストレージデバイスの一部または組み合わせである。ＬＵは、外部コンピュータによる参照が可能なように、１つ以上のネットワークインターフェイス１１０を割り当てられる。サーバコンピュータ３００は、ＬＵ５２０を、ローカルストレージデバイス５１０としてバインドすることができる。
【００２１】
４３    図３は、サーバコンピュータ３００の従来のハードウェア構成を示す。ＣＰＵ３３０、メモリデバイス３４０、入力デバイス３６０（例えばキーボードおよびマウス）ならびに出力デバイス３７０（例えば、外部表示モニタに接続されたビデオグラフィックスカード）が、メモリコントローラ３５０を介して相互接続されている。Ｉ／Ｏコントローラ３２０によって処理されるＩ／Ｏはすべて、内部ストレージデバイス３８０に、またはネットワークインターフェイス３１０を介して外部ストレージデバイスに、またはメモリコントローラ３５０に転送される。この構成は、一般に普及している普通の多目的ＰＣ（ｐｅｒｓｏｎａｌ  ｃｏｍｐｕｔｅｒ：パーソナルコンピュータ）によって実装可能である。
【００２２】
４４    図４は、ネットワークスイッチ２００の従来のハードウェア構成を示す。ＣＰＵ２３０およびメモリデバイス２４０が、メモリコントローラ２５０に接続されており、メモリコントローラ２５０は、複数のネットワークインターフェイス２１０に接続されているＩ／Ｏコントローラ２２０に接続されている。
【００２３】
４５    図５は、データストレージ１００の従来のハードウェア構成を示す。ＣＰＵ１３０およびメモリデバイス１４０が、メモリコントローラ１５０に接続されており、メモリコントローラ１５０は、複数のネットワークインターフェイス１１０およびストレージデバイス１８０に接続されているＩ／Ｏコントローラ１２０に接続されている。
【００２４】
４６    図６は、管理コンピュータ４００の従来のハードウェア構成を示す。ＣＰＵ４３０、メモリデバイス４４０、入力デバイス４６０および出力デバイス４７０が、メモリコントローラ４５０に接続されており、メモリコントローラ４５０は、ネットワークインターフェイス４１０およびストレージデバイス４８０に接続されているＩ／Ｏコントローラ４２０に接続されている。
【００２５】
４７    図７は、サーバコンピュータ３００のメモリデバイス３４０上に記憶されるソフトウェア構造を示す。メモリデバイス３４０には、仮想マシン管理システム３４０１およびオペレーティングシステム３４０２が格納される。仮想マシン管理システム３４０１は、仮想マシンを実行するソフトウェアのセットを有する。このセットには、仮想マシンプラットフォームプログラム３４０８および仮想マシン構成情報３４０９が含まれる。仮想マシンプラットフォームの従来例として、ＶＭｗａｒｅ（登録商標）、Ｍｉｃｒｏｓｏｆｔ（登録商標）Ｈｙｐｅｒ−Ｖ、ＫＶＭおよび同様のものがある。オペレーティングシステム３４０２は、Ｌｉｎｕｘ（登録商標）、Ｗｉｎｄｏｗｓ（登録商標）、ＨＰ−ＵＸまたは同様のオペレーティングシステムを実行する。このオペレーティングシステムには、メモリ管理プログラム３４０３、メモリ使用量情報３４０４、デバイス管理プログラム３４０５、デバイス管理情報３４０６およびボリューム構成情報３４０７が含まれる。メモリ管理プログラム３４０３は、メモリの利用を制御し、さらに仮想メモリ空間の使用を制御する。メモリ使用量情報３４０４は、メモリ消費状態の記録である。デバイス管理プログラム３４０５は、外部メモリおよびストレージなどのデバイスの検出、割り当ておよび解放を管理する。デバイス管理情報３４０６は、デバイスの構成定義である。ボリューム構成情報３４０７は、ストレージボリューム構成の定義である。
【００２６】
４８    図８は、データストレージ１００のメモリデバイス１４０上に記憶されるソフトウェア構造を示す。Ｉ／Ｏ転送制御プログラム１４０１は、サーバコンピュータ３００から受信されるすべてのＩ／Ｏリクエストをまとめる。構成管理プログラム１４０２は、構成変更を管理する。ＬＵ構成情報１４０３は、ストレージＬＵ構成の定義である。シンプロビジョニング制御プログラム１４０４は、ストレージサービス上で動的なリソースの配置／開放を実行する。シンプロビジョニングステータス情報１４０５は、リソース配置状態の記録である。キャッシュロードプログラム１４０６は、キャッシュメモリ上の特定のボリューム上にデータを記憶された状態に保つためのプログラムである。ＬＵマイグレーションプログラム１４０７は、ＬＵを、元の物理空間から宛先デバイスへ移動する機能を提供する。
【００２７】
４９    図９は、管理コンピュータ４００のメモリデバイス４４０上に記憶されるソフトウェア構造を示す。管理コンピュータ４００は、サーバコンピュータ管理装置４４０１およびストレージ管理装置４４０２によって提供される２つの主要な機能を有する。
【００２８】
５０    図１０は、サーバコンピュータ管理装置４４０１のソフトウェアコンポーネントのセットを示す。サーバシステムステータス監視プログラム４４０１１は、メモリ使用量情報４４０１２などのサーバステータス情報を受け取り、更新された状態に保つ。メモリ使用量情報４４０１２は、サーバコンピュータ３００から受信される、メモリ使用量情報３４０４のコピーである。メモリデバイス構成情報４４０１３は、サーバコンピュータ３００にて利用可能なメモリデバイスの構成である。仮想マシン構成プログラム４４０１４は、構成変更リクエストメッセージを発信し、仮想マシン構成を制御する。仮想マシン構成情報４４０１５は、仮想マシン構成情報３４０９のコピーである。
【００２９】
５１    図１１は、ストレージ管理装置４４０２のソフトウェアコンポーネントのセットを示す。論理ユニット構成プログラム４４０２１は、構成変更リクエストメッセージを発信し、データストレージ１００上の論理ユニットの作成および削除を行う。ＬＵ構成情報４４０２２は、ＬＵ構成情報１４０３のコピーである。論理ユニット構成プログラム４４０２１は、ＬＵ構成情報１４０３を更新された状態に保つ。
【００３０】
５２    図１２は、サーバコンピュータ３００上に記憶されたデバイス管理情報３４０６の従来の例である。これには、デバイスＩＤ３４０６１、ターゲットポート３４０６２およびターゲット番号３４０６３の列が含まれる。デバイスＩＤ３４０６１は、ストレージデバイス５１０などのデバイスの識別子である。従来の手法では、デバイスＩＤ３４０６１は、サーバコンピュータ３００上で実行されているファイルシステムの「マウントポイント」を表現することができる。例えば、デバイスは、そのファイルシステム上で「／ｄｅｖ／ｓｄｃ１」「／ｄｅｖ／ｓｄｃ２」として処理されることが可能である。ターゲットポート３４０６２は、デバイスのインターフェイスを特定するポートである。ターゲット番号３４０６３は、ターゲットポート３４０６２上に構成されたデバイスを特定する番号である。この構成は、ターゲットポート３４０６２およびターゲット番号３４０６３の組み合わせとして、内部デバイスおよび外部デバイスの両方を表現できるようにする。例えば、データストレージ１００のポート「５０：００：３２：２２：１２：００：００：０２」上に定義されている論理ユニット「２」は、サーバコンピュータ３００上で、「／ｄｅｖ／ｓｄｃ２」として認識および配置されることが可能である。ポート「５０：００：３２：２２：１２：００：００：０２」は、データストレージ１００のネットワークインターフェイス１１０に対応し、ファイバーチャネルのワールドワイドネーム、ＩＰアドレス、イーサネットのＭＡＣアドレスなどとして表現されることが可能である。
【００３１】
５３    図１３は、サーバコンピュータ３００上に記憶されたメモリ使用量情報３４０４の従来の例である。これは、日付３４０４１、時間３４０４２および％で表した利用率３４０４３の列を有する。サーバコンピュータ３００は、メモリ使用量情報３４０４にメモリ消費率を記録する。
【００３２】
５４    図１４は、サーバコンピュータ３００上のボリューム構成情報３４０７の従来の例である。これは、マウントポイント３４０７１およびデバイスＩＤ３４０７２の列を有する。デバイスＩＤ３４０７２によって表現されているストレージデバイス５１０が、マウントポイント３４０７１に定義された位置に配置される。サーバコンピュータ３００上で実行されているソフトウェアは、ローカルに配置されたストレージデバイス５１０へのアクセスによって、外部ストレージデバイスからの読み取りおよびそれに対する書き込みを行うことができる。このデータ構造は、従来型のＵＮＩＸオペレーティングシステムの／ｅｔｃ／ｆｓｔａｂファイルと同じである。
【００３３】
５５    図１５は、サーバコンピュータ３００の仮想マシン構成情報３４０９の従来の例である。これは、ＶＭＩＤ（仮想マシンＩＤ：ｖｉｒｔｕａｌ  ｍａｃｈｉｎｅ  ＩＤ）３４０９１、単位をＭＢ（ｍｅｇａｂｙｔｅ：メガバイト）とする付与されたメモリサイズ３４０９２および単位をＭＢとする仮想メモリ３４０９３を有する。仮想マシンサーバの典型的なハイパーバイザプログラムは、仮想マシンに対するメモリリソースの「オーバープロビジョニング」を提供する。言い換えれば、単一のメモリデバイス３４０が、サーバコンピュータ３００上で実行されている複数の仮想マシンによって共有されることが可能である。例えば、ＶＭＩＤ「０」によって定義されている仮想マシンは、「１０２４ＭＢ」のメモリを割り当てられている。オーバープロビジョニング能力によって、付与されたメモリ３４０９２の合計は、仮想メモリ３４０９３を超えることが可能である。これは、総メモリ消費が物理メモリのサイズに達すると、サーバコンピュータがＨＤＤリソースの使用を開始してメモリ不足を補うためであるが、深刻な性能低下を引き起こす。
【００３４】
５６    図１６は、データストレージ１００上のＬＵ構成情報１４０３の従来のデータ構造である。これは、ネットワークインターフェイス１４０３１、ＬＵＮ（ｌｏｇｉｃａｌ  ｕｎｉｔ  ｎｕｍｂｅｒ：論理ユニット番号）１４０３２、リソース付与１４０３３、先頭アドレス１４０３４、最終アドレス１４０３５およびシンプロビジョニング１４０３６の列を有する。論理ユニットは、ネットワークインターフェイス１４０３１と、論理ユニット番号（ＬＵＮ）１４０３２との組み合わせで特定されることが可能である。論理ユニット番号１４０３２は、ネットワークインターフェイス１４０３１によって表現されるネットワークインターフェイス１１０上に構成される論理ユニットの識別子である。論理ユニットの物理ストレージリソースは、リソース付与１４０３３、先頭アドレス１４０３４および最終アドレス１４０３５の組み合わせとして定義される。リソース付与１４０３３は、ストレージの物理リソースである。例えば、ＨＤＤのセットおよびＤＲＡＭデバイスのセットが、論理ユニットに付与されることが可能である。これらのリソースのうち、先頭アドレス１４０３４および最終アドレス１４０３５として指定される一部が、論理ユニットに割り当てられる。さらに、論理ユニットは、シンプロビジョニングステータス情報１４０３６が「はい」または「オン」にセットされていれば、シンプロビジョニングボリュームに構成される。
【００３５】
５７    図１７は、データストレージ１００上のシンプロビジョニングステータス情報１４０５の従来のデータ構造である。これは、仮想アドレス１４０５１、リソースの割り当て元１４０５２および物理アドレス１４０５３の列を有する。論理ユニットがシンプロビジョニング構成として定義される場合、物理ストレージリソースは、初期段階では消費されない。物理ストレージリソースは、データ書き込みがリクエストされると動的に割り当てられる。例えば、仮想アドレス１４０５１によって表現されるストレージブロックは、「リソースの割り当て元」１４０５２および物理アドレス１４０５３の組み合わせによって表現される物理リソースから割り当てられる。
【００３６】
５８    図１８は、一実施形態による、サーバコンピュータ３００上に作成される仮想メモリデバイスのローカル構造である。仮想メモリ空間５３０は、メモリデバイス３４０および外部ストレージデバイス５１０の組み合わせによって作成されることが可能である。この外部ストレージデバイス５１０は、データストレージ１００の論理ユニット５２０に対応する。論理ユニット５２０は、メモリデバイス１４０またはストレージデバイス１８０のいずれかに対応する。よって、仮想メモリ空間５３０は、メモリデバイス３４０、およびデータストレージ１００によって提供される外部メモリデバイス１４０によって構成されることが可能である。
【００３７】
５９    図１９は、サーバコンピュータ３００によるメモリ消費の動作例である。サーバコンピュータ３００は、メモリデバイス３４０を消費し始め、リソースが使い尽くされると、外部ストレージデバイス５１０を消費し始める。
【００３８】
６０    図２０は、シンプロビジョニングストレージ利用プロセスのフローチャートである。サーバコンピュータ３００上で実行されているソフトウェアが、データを生成し、ローカルストレージデバイス５１０への書き込みプロセスを開始する（Ｓ１０１）。図２に関連して記載されたように、データはデータストレージ１００に送信される。データストレージ１００は、データを受信してキャッシュメモリに記憶する（Ｓ１０２）。キャッシュへの書き込み後、データストレージ１００は、サーバコンピュータ３００がそれ以上待機の必要がないように、データ書き込みが受領されたステータスをレポートするために承認メッセージをサーバコンピュータ３００に返すことができる。次に、データストレージ１００は、キャッシュしたデータを物理ストレージデバイス１８０に書き込む。書き込みデータのターゲットアドレスに対応する物理ストレージリソースが割り当てられていれば、データストレージ１００は、単にデータを物理ストレージターゲットに書き込む（Ｓ１０５）。そうでなければ、データストレージ１００は、実際のデータ書き込みプロセスの前に、物理ストレージブロックを割り当てなければならない（Ｓ１０４）。
【００３９】
６１    図２１、２２および２３は、データストレージ１００上に搭載されるメモリリソースを、サーバコンピュータ３００の仮想メモリへの割り当てと解放プロセスのフローチャートを示す。まず、サーバコンピュータ３００が、ＬＵを作成するためのリクエストメッセージを発信する（Ｓ２０１）。データストレージ１００は、新たな論理ユニットを作成する（Ｓ２０２）。ＬＵは、シンプロビジョニング構成によりメモリデバイス１４０上に作成され、その結果、プロセスのこの段階またはステージでは物理メモリリソースは消費されない。
【００４０】
６２    メモリ管理プログラム３４０３は、メモリ使用量を監視し、それをメモリ使用量情報３４０４に記録する（Ｓ２０３）。メモリ管理プログラム３４０３は、メモリ消費が高すぎると判定すると（Ｓ２０４）、外部メモリリソースを仮想メモリ空間５３０に追加し始める。デバイス管理プログラム３４０５が、Ｓ２０２にて作成された新たなＬＵを検出し、デバイス管理情報３４０６およびボリューム構成情報３４０７を更新する（Ｓ２０５）。メモリ管理プログラム３４０３は、ＬＵを仮想メモリ空間５３０に追加する（Ｓ２０６）。プロセスは、Ｓ２０６の後、Ｓ２０３に戻る。メモリ消費が高すぎでなければ（Ｓ２０４）、プロセスはＳ２０７に続く。
【００４１】
６３    データストレージ１００上に搭載されるメモリリソースは、その本来の用途がキャッシュメモリとしての使用であるため、効果的に使用される必要がある。したがって、メモリ管理プログラム３４０３は、割り当てられたストレージブロックを解放することが適切であれば、その実行を試みる。メモリ管理プログラム３４０３は、メモリ使用率を判定し、メモリ使用量が十分に低いかどうかを判断する（Ｓ２０７）。メモリ使用量が十分に低ければ、ＵＮＭＡＰコマンドをデータストレージ１００に発信する（Ｓ２０８）。データストレージ１００は、使用されていないストレージブロックをＬＵから解放する（Ｓ２０９）。プロセスは、Ｓ２０９の後、Ｓ２１０に続く。メモリ使用量が十分に低くなければ、プロセスはＳ２０３に戻る。
【００４２】
６４    メモリ管理プログラム３４０３は、消費されていないＬＵを開放することができる。メモリ管理プログラム３４０３は、メモリ使用量情報３４０４を参照して、仮想メモリ空間のサイズが、消費するには大きすぎるかどうかを判定する（Ｓ２１０）。例えば、仮想メモリの使用が１日、１週間または１ヶ月を超えて連続的に低い状態のままであるかどうかに基づき、判定することができる。Ｓ２１０において、仮想メモリが縮小可能であると判断されると、デバイス管理プログラム３４０５は、ストレージデバイス５１０を仮想メモリ空間５３０から除去する（Ｓ２１１）。プロセスは、Ｓ２１１の後に、または仮想メモリが縮小不可能であると判断された場合に、Ｓ２０３に戻る。
【００４３】
６５    図２４、２５および２６は、仮想メモリ管理が管理コンピュータ４００によって制御される別の実装として、データストレージ１００上に搭載されるメモリリソースをサーバコンピュータ３００の仮想メモリに対して割り当てと解放を実行するプロセスのフローチャートを示す。まず、管理コンピュータ４００が、ＬＵを作成するためのリクエストメッセージを発信する（Ｓ３０１）。データストレージ１００は、新たな論理ユニットを作成する（Ｓ３０２）。ＬＵは、シンプロビジョニング構成によりメモリデバイス１４０上に作成され、その結果、プロセスのこの段階またはステージでは物理メモリリソースは消費されない。
【００４４】
６６    管理コンピュータ４００は、サーバコンピュータから、メモリ使用量の監視の結果を取得し、それをメモリ使用量情報４４０１２に記録する（Ｓ３０３）。管理コンピュータ４００が、メモリ消費が高すぎると判定すると（Ｓ３０４）、サーバコンピュータ３００は、外部メモリリソースを仮想メモリ空間５３０に追加し始める。デバイス管理プログラム３４０５が、Ｓ３０２にて作成された新たなＬＵを検出し、デバイス管理情報３４０６およびボリューム構成情報３４０７を更新する（Ｓ３０５）。メモリ管理プログラム３４０３が、ＬＵを仮想メモリ空間５３０に追加する（Ｓ３０６）。プロセスはＳ３０７に続く。
【００４５】
６７    データストレージ１００上に搭載されるメモリリソースは、その本来の用途がキャッシュメモリであるため、効率的に消費される必要がある。したがって、管理コンピュータ４００は、割り当てられたストレージブロックを解放することが適切であれば、その実行を試みる。管理コンピュータ４００は、メモリ消費率の判定結果をサーバコンピュータから取得し、メモリ使用量が十分に低いかどうかを判断する（Ｓ３０７）。メモリ使用量が十分に低ければ、ＵＮＭＡＰコマンドをデータストレージ１００に発信する（Ｓ３０８）。データストレージ１００は、使用されていないストレージブロックをＬＵから解放する（Ｓ３０９）。プロセスは、Ｓ３０９の後、Ｓ３１０に続く。メモリ使用量が十分に低くなければ、プロセスはＳ３０３に戻る。
【００４６】
６８    管理コンピュータ４００は、消費されていないＬＵを開放することができる。管理コンピュータ４００は、メモリ使用量情報４４０１２を参照して、仮想メモリ空間のサイズが、使用するには大きすぎるかどうかを判定する（Ｓ３１０）。例えば、仮想メモリの使用が１日、１週間または１ヶ月を超えて連続的に低い状態のままであるかどうかに基づき、判定することができる。Ｓ３１０において、仮想メモリが縮小可能であると判断されると、管理コンピュータ４００は、ストレージデバイス５１０を削減するよう、サーバコンピュータ３００にリクエストを送信し（Ｓ３１１）、サーバコンピュータ３００内のデバイス管理プログラム３４０５が、ストレージデバイス５１０を仮想メモリ空間５３０から削除する（Ｓ３１２）。プロセスは、Ｓ３１２の後に、または仮想メモリが縮小不可能であると判断された場合に、Ｓ３０３に戻る。
【００４７】
６９    図２７、２８および２９は、仮想メモリ管理が管理コンピュータ４００によって制御され、データストレージ１００がシンプロビジョニング機能を搭載しない別の実装として、データストレージ１００上に搭載されるメモリリソースをサーバコンピュータ３００の仮想メモリに対して割り当てと解放を実行するプロセスのフローチャートを示す。
【００４８】
７０    Ｓ４０１は、Ｓ３０１と同じである。Ｓ４０２において、データストレージ１００は、新たなＬＵを作成するが、これはシンプロビジョニング構成によらない。Ｓ４０３において管理コンピュータ４００は、サーバコンピュータ３００に、仮想メモリ空間を拡大するためのリクエストをする。Ｓ４０４およびＳ４０５は、Ｓ３０５およびＳ３０６と同じ処理内容であるが、ここではデータストレージ１００は、初期段階で、ＨＤＤリソースによって新たなＬＵを提供する（Ｓ４０４）。Ｓ４０６において、管理コンピュータ４００は、サーバコンピュータ３００のメモリ使用量を監視する。仮想メモリ使用量が高ければ、管理コンピュータ４００は、ＬＵをキャッシュメモリ上にロードするようリクエストする（Ｓ４０８）。データストレージ１００内のキャッシュロードプログラム１４０６は、仮想メモリの一部を含むＬＵを、キャッシュメモリ上にロードする。仮想メモリ上のすべてのＩ／Ｏアクセスが、ローカルおよび外部メモリデバイス上で処理されるため、性能低下の問題が解決される。この実施例として、米国特許出願公開第２０１０／０１００６８０号があり、その内容全体を参照して本願明細書に引用する。仮想メモリ使用量が高くなければ（Ｓ４０７）、管理コンピュータは、使用量が低いかどうかを判断する（Ｓ４１０）。そうであれば、管理コンピュータは、キャッシュメモリからＬＵをアンロードするためのリクエストをする（Ｓ４１１）。データストレージ１００内のキャッシュロードプログラム１４０６は、ＬＵ内に記憶されているデータをキャッシュからアンロードする（Ｓ４１２）。プロセスはＳ４０６に戻る。
【００４９】
７１    別の実装では、図２７〜２９のキャッシュローディングを、ＨＤＤとメモリデバイスとの間のボリュームマイグレーションに置き換えることが可能である。この実施例として、米国特許第５，９５６，７５０号があり、その内容全体を参照して本願明細書に引用する。図３０は、別の実施形態による、サーバコンピュータ３００上に作成される仮想メモリデバイスのローカル構造である。図１８と比較すると、外部ストレージデバイス５１０は、ストレージデバイス１８０に対応する論理ユニット５２０ａまたはメモリデバイス１４０の一部である論理ユニット５２０ｂのいずれかに対応する（ＨＤＤとメモリデバイスとの間のマイグレーションを表現する）。
【００５０】
７２    別の実装では、メモリ使用量の判定を、図１５のオーバープロビジョニングステータスに置き換えることが可能である。例えば、仮想メモリサイズの合計（図１５において、単位をＭＢとする付与されたメモリサイズ３４０９２）が、物理メモリサイズ（図１５において、単位をＭＢとする仮想メモリ３４０９３）のサイズを超えると、メモリ管理プログラム３４０３は、仮想メモリ空間５３０を拡大して、プロビジョニングされたメモリサイズを物理メモリサイズ３４０９３より小さく保つ。
【００５１】
７３    ストレージの効率を改善するためには、ＳＳＤ、ＳＡＳおよびＳＡＴＡなど、複数のタイプの媒体を利用することが有効である。しかし、データファイル内に複数のサブファイルを含むデータファイルは、１つのストレージボリューム内に記憶されなければならず、その結果、複数のストレージ階層を利用することは不可能である。本発明の実施形態は、データファイルを複数のサブファイルに分解し、それらを最良のタイプのストレージに記憶する。
【００５２】
７４    当然、図１に示されたシステム構成は、本発明が適用可能な情報システムの単なる例示であり、本発明は、特定のハードウェア構成に限定されない。本発明を実装するコンピュータおよびストレージシステムは、さらに、上記発明を実装するために使用されるモジュール、プログラムおよびデータ構造を記憶および読み取りできる既知のＩ／Ｏデバイス（例えば、ＣＤおよびＤＶＤドライブ、フロッピーディスクドライブ、ハードドライブなど）を有することが可能である。これらのモジュール、プログラムおよびデータ構造は、そのようなコンピュータ可読媒体上にエンコードされることが可能である。例えば、本発明のデータ構造は、本発明で使用されるプログラムが存在する１つ以上のコンピュータ可読媒体とは独立してコンピュータ可読媒体上に記憶可能である。システムのコンポーネントは、例えば通信ネットワークなど、任意の形態または媒体のデジタルデータ通信により相互接続可能である。通信ネットワークの例は、ローカルエリアネットワーク、例えばインターネットなどの広域ネットワーク、無線ネットワーク、ストレージエリアネットワーク、および同様のものを含む。
【００５３】
７５    本記載では、本発明が完全に理解されるよう、説明のために多数の詳細事項が記載されている。しかし、当業者には当然のことながら、こうした特定の詳細事項のすべてが本発明を実施するために必要であるわけではない。なお、本発明は、フローチャート、フロー図、構造図またはブロック図として通常示される、プロセスとして記載されることもある。フローチャートは、各動作を逐次プロセスとして記載することもあるが、動作の多くは、並行して、すなわち同時に実行可能である。さらに、動作の順序を並べ替えられてもよい。
【００５４】
７６    当該技術分野では周知のように、上述の動作は、ハードウェア、ソフトウェア、またはソフトウェアおよびハードウェアの何らかの組み合わせによって実行可能である。本発明の実施形態の様々な側面は、回路および論理デバイス（ハードウェア）を使用して実装されてもよく、他の側面は、マシン可読媒体上に記憶された命令を使用して実装されてもよく（ソフトウェア）、命令は、プロセッサによって実行されると、本発明の実施形態を実施する方法をプロセッサに実行させることになる。さらに、本発明の一部の実施形態は、ハードウェアのみにおいて実行されてもよく、反対に他の実施形態は、ソフトウェアのみにおいて実行されてもよい。さらに、記載された様々な機能は、単一のユニットにおいて実行されることが可能であり、または様々な方法でいくつかのコンポーネントにわたって分散されてもよい。ソフトウェアによって実行される場合、方法は、汎用コンピュータなどのプロセッサによって、コンピュータ可読媒体上に記憶された命令に基づいて実行されるとよい。必要に応じて、命令は、圧縮および／または暗号化された形式で媒体上に記憶されることが可能である。
【００５５】
７７    前述の事項から、本発明が、ストレージシステムによるメモリ管理のための方法、装置およびコンピュータ可読媒体上に記憶されたプログラムを提供することは明らかである。さらに、本明細書には、特定の実施形態が示され記載されたが、当業者には当然のことながら、同じ目的を達成するために計算された任意の構成が、開示された特定の実施形態の代わりとされ得る。本開示は、本発明の任意のすべての適応または変形を対象とするものとし、当然のことながら、添付の特許請求の範囲で使用される用語は、本明細書で開示された特定の実施形態に本発明を限定するように解釈されてはならない。むしろ、本発明の範囲は、専ら、クレーム解釈の確立された原則に従って解釈される添付の特許請求の範囲によって、当該の特許請求の範囲に認められるあらゆる等価物とともに決定されるものである。
【符号の説明】
【００５６】
１００  データストレージ
１４０  メモリデバイス
１８０  ストレージデバイス
３００  サーバコンピュータ
３４０  メモリデバイス
４００  管理コンピュータ
５１０  ストレージデバイス
５２０  論理ユニット
５３０  仮想メモリ空間
【図１】
0005840594.tif 000002
【図２】
0005840594.tif 000003
【図３】
0005840594.tif 000004
【図４】
0005840594.tif 000005
【図５】
0005840594.tif 000006
【図６】
0005840594.tif 000007
【図７】
0005840594.tif 000008
【図８】
0005840594.tif 000009
【図９】
0005840594.tif 000010
【図１０】
0005840594.tif 000011
【図１１】
0005840594.tif 000012
【図１２】
0005840594.tif 000013
【図１３】
0005840594.tif 000014
【図１４】
0005840594.tif 000015
【図１５】
0005840594.tif 000016
【図１６】
0005840594.tif 000017
【図１７】
0005840594.tif 000018
【図１８】
0005840594.tif 000019
【図１９】
0005840594.tif 000020
【図２０】
0005840594.tif 000021
【図２１】
0005840594.tif 000022
【図２２】
0005840594.tif 000023
【図２３】
0005840594.tif 000024
【図２４】
0005840594.tif 000025
【図２５】
0005840594.tif 000026
【図２６】
0005840594.tif 000027
【図２７】
0005840594.tif 000028
【図２８】
0005840594.tif 000029
【図２９】
0005840594.tif 000030
【図３０】
0005840594.tif 000031