(57)【特許請求の範囲】
【請求項１】
ストレージ属性を仮想マシンに提供する方法であって、
複数のストレージ属性を求めるリクエストを仮想マシンから仮想ストレージ・アクセス・モジュールに送信するステップであって、前記仮想ストレージ・アクセス・モジュールは、仮想アクセス・パス経由でのストレージへのアクセスを前記仮想マシンに提供するモジュールである、ステップと、
前記仮想ストレージ・アクセス・モジュールから前記複数のストレージ属性を前記仮想マシンにて受信するステップであって、前記複数のストレージ属性は、前記仮想マシンによって実行されるストレージ管理タスクに利用可能なストレージ属性であり、前記複数のストレージ属性の少なくとも一つは、物理ストレージを識別するストレージ識別情報を含んでいる、ステップと、
前記複数のストレージ属性を記憶するステップと、を含む方法。
【請求項２】
前記仮想マシンによって実行されるストレージ管理タスクは、故障領域の割り当ておよびエンクロージャの分離と、ストレージの動的な階層化と、装置の命名とを含む、請求項１に記載の方法。
【請求項３】
前記リクエストを送信する前記ステップに先立って、前記仮想ストレージ・アクセス・モジュールのバックエンド・エージェントと前記仮想マシンとの間に通信チャネルを確立するステップをさらに含む、請求項１または２に記載の方法。
【請求項４】
前記バックエンド・エージェントが仮想入出力構成要素の一部分である、請求項３に記載の方法。
【請求項５】
前記複数のストレージ属性を前記仮想マシンを介して、前記仮想マシンのユーザに対して提示するステップをさらに含む、請求項１〜４のいずれか一項に記載の方法。
【請求項６】
前記リクエストが、前記ストレージのストレージ問い合わせページに対応する複数のストレージ問い合わせページを含み、前記ストレージのストレージ問い合わせページが、前記複数のストレージ属性を含んでいる、請求項１〜５のいずれか一項に記載の方法。
【請求項７】
前記リクエストが、複数のホストを管理する一元管理エージェントに送信される、請求項１〜６のいずれか一項に記載の方法。
【請求項８】
前記複数のストレージ属性が論理ユニット番号（ＬＵＮ）の属性を備える、請求項１〜７のいずれか一項に記載の方法。
【請求項９】
コンピュータ・システムによって実行された場合に、ストレージ属性を仮想マシンに提供する方法を前記コンピュータ・システムに実行させるコンピュータ実行可能な命令を含むプログラムであって、前記方法は、
複数のストレージ属性を求めるリクエストを仮想マシンから仮想ストレージ・アクセス・モジュールに送信するステップであって、前記仮想ストレージ・アクセス・モジュールは、仮想アクセス・パス経由でのストレージへのアクセスを前記仮想マシンに提供するモジュールであり、前記仮想マシンが前記コンピュータ・システム上で実行されるステップと、
前記仮想ストレージ・アクセス・モジュールから前記複数のストレージ属性を前記仮想マシンにて受信するステップであって、前記複数のストレージ属性は、前記仮想マシンによって実行されるストレージ管理タスクに利用可能なストレージ属性であり、前記複数のストレージ属性の少なくとも一つは、物理ストレージを識別するストレージ識別情報を含んでいる、ステップと、
前記複数のストレージ属性を記憶するステップと、を含む、プログラム。
【請求項１０】
前記仮想マシンによって実行されるストレージ管理タスクは、故障領域の割り当ておよびエンクロージャの分離と、ストレージの動的な階層化と、装置の命名とを含む、請求項９に記載のプログラム。
【請求項１１】
前記方法が、前記リクエストを送信する前記ステップに先立って、前記仮想ストレージ・アクセス・モジュールのバックエンド・エージェントと前記仮想マシンとの間に通信チャネルを確立するステップをさらに含む、請求項９または１０に記載のプログラム。
【請求項１２】
前記バックエンド・エージェントが仮想入出力構成要素の一部分である、請求項１１に記載のプログラム。
【請求項１３】
前記方法が、前記複数のストレージ属性を前記仮想マシンを介して、前記仮想マシンのユーザに対して提示するステップをさらに含む、請求項９〜１２のいずれか一項に記載のプログラム。
【請求項１４】
前記リクエストが、前記ストレージのストレージ問い合わせページに対応する複数のストレージ問い合わせページを含み、前記ストレージのストレージ問い合わせページが、前記複数のストレージ属性を含んでいる、請求項９〜１３のいずれか一項に記載のプログラム。
【請求項１５】
前記リクエストが、複数のホストを管理する一元管理エージェントに送信される、請求項９〜１４のいずれか一項に記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願の相互参照
本出願は、２００８年６月３０日に出願された「ＭＥＴＨＯＤ  ＡＮＤ  ＡＰＰＡＲＡＴＵＳ  ＦＯＲ  ＰＲＯＶＩＤＩＮＧ  Ａ  ＨＯＳＴ−ＩＮＤＥＰＥＮＤＥＮＴ  ＮＡＭＥ  ＴＯ  ＩＤＥＮＴＩＦＹ  Ａ  ＭＥＴＡ−ＤＥＶＩＣＥ  ＴＨＡＴ  ＲＥＰＲＥＳＥＮＴＳ  Ａ  ＬＯＧＩＣＡＬ  ＵＮＩＴ  ＮＵＭＢＥＲ」と題する同時係属中の非仮特許出願第１２／１６５，３５１号（代理人整理番号ＳＹＭＴ−Ｓ０７−２０６２）に関し、同特許出願は、参照によりその全体が本明細書に援用されるものとする。
【０００２】
本発明の実施形態は概して、ストレージ・ユニットを有するデジタル・コンピュータ・システムに関する。
【背景技術】
【０００３】
技術が進歩するにつれて、データ・ストレージは重要性が増してきており、記憶されたデータの量が急増している。それに応じて、データ・ストレージ・アレイのサイズおよびストレージの需要も急増した。増え続ける量のデータは、入手性が高く、天災、停電といった様々な要因による破損や損傷から保護される必要がある。そのため、データの記憶および取得に対する需要を満たすために、ますます複雑なデータ・ストレージ・クラスタが使用される。
【０００４】
同様に、多数の小型物理サーバーを１台の大型物理サーバーで置き換えられるようなサーバー統合を実現するために、コンピュータおよび／またはオペレーティング・システムの仮想化が重要性を増してきた。その結果、中央処理装置（ＣＰＵ）などの高価なハードウェア・リソースの使用率と使用効率が高まり、それによって節電およびハードウェア・コストの節約が可能になってきている。
【０００５】
仮想環境は一般に、ストレージへのアクセスを必要とする仮想マシンと呼ばれる仮想化されたコンピュータおよび／またはオペレーティング・システムを含む。ストレージへのアクセスは一般に、物理アクセス・パス（直接取付式の専用アダプタ、ネットワーク・ポート識別名の仮想化（ＮＰＩＶ）、Ｉ／Ｏの仮想化（ＩＯＶ）など）および仮想アクセス・パスという２つの方法で提供される。物理アクセス・パスにより、仮想マシンは実際の物理アダプタに、その後ストレージにアクセスすることができ、仮想アクセス・パスにより、仮想入出力（Ｉ／Ｏ）サーバーがストレージにＩ／Ｏリクエストを転送する。仮想アクセス・パスが使用されると、仮想マシンまたはゲストは仮想経路を参照し、ストレージへの実際の物理経路または実際のストレージを参照しない。すなわち、ストレージ・バックエンドの詳細が仮想マシンから隠匿される。例えば、仮想マシンにエクスポートされたストレージが複数のストレージ・エンクロージャを含む場合には、仮想化のために仮想マシンがストレージを様々なエンクロージャと区別できないため、そのストレージを、１台の大型エンクロージャに由来するものとしてしか取り扱わない。具体的な記憶装置情報が利用できないため、このようなストレージの仮想化により、様々なストレージ管理アクティビティが妨げられる。
【０００６】
そのため、ストレージ管理を実行できるように、仮想アクセス・パス使用時に仮想環境でストレージ情報が利用できるようになることに対するニーズが存在する。
【発明の概要】
【発明が解決しようとする課題】
【０００７】
かかる事情から、本発明の実施形態は、仮想アクセス・パスを通じて仮想環境でストレージ属性を利用できるようにするためのシステムおよび方法を提供する。ストレージ属性が利用できることにより、ストレージ管理（ストレージ割り当てなど）を仮想環境内から（例えば仮想マシンを介して）実行できるようになる。実施形態により、仮想環境が物理環境と同じストレージ管理機能を持てるようになるものと理解される。
【課題を解決するための手段】
【０００８】
一実施形態では、本発明が、ストレージ情報を仮想環境で視認できるようにするための方法として実装される。本方法は、複数のストレージ属性（論理ユニット番号（ＬＵＮ）についての情報など）を求めるリクエストを、電子システム経由で仮想ストレージ・アクセス・モジュールに送信することを含む。仮想ストレージ・アクセス・モジュールは、仮想マシンが仮想アクセス・パス経由でストレージにアクセスすることを容易にし得る。一実施形態では、仮想ストレージ・アクセス・モジュールのバックエンド・エージェント（仮想入出力構成要素の一部分など）との通信チャネルが確立される。別の実施形態では、このリクエストが、複数の属性ストレージを備えるストレージのストレージ問い合わせページに対応する複数のストレージ問い合わせページを備える。ストレージ問い合わせページは、具体的なオペレーティング・システムまたはプラットフォームに基づき得る。さらに別の実施形態では、このリクエストが、複数の管理下ホストを管理するように稼働可能な一元管理エージェント（仮想マシンなど）に送信される。
【０００９】
本方法は、仮想ストレージ・アクセス・モジュールから（例えば前記仮想アクセス・パス経由で）複数のストレージ属性を受信することと、複数のストレージ属性を記憶することとをさらに含む。一実施形態では、このストレージ属性がストレージ管理タスクで使用できる。一実施形態では、本方法が、仮想ストレージ・アクセス・モジュールのストレージ管理をしやすくするための複数のストレージ属性を（例えばグラフィカル・ユーザー・インターフェイス（ＧＵＩ）を介して）提示することをさらに含む。
【００１０】
一実施形態では、本発明が、コンピュータ・システムによって実行された場合に複数のストレージ属性（論理ユニット番号（ＬＵＮ）についての情報など）を求めるリクエストを電子システム経由で仮想ストレージ・アクセス・モジュールに送信することを含む方法をコンピュータ・システムに実行させるコンピュータ実行可能な命令を記憶しているコンピュータ読み取り可能な記憶メディアとして実装される。仮想ストレージ・アクセス・モジュールは、仮想マシンが仮想アクセス・パス経由でストレージ・リソースにアクセスすることを容易にし得る。一実施形態では、仮想ストレージ・アクセス・モジュールのバックエンド・エージェント（仮想入出力構成要素の一部分など）との通信チャネルが確立される。別の実施形態では、このリクエストが、複数の属性ストレージを備えるストレージ・リソースのストレージ問い合わせページに対応する複数のストレージ問い合わせページを備える。ストレージ問い合わせページは、具体的なオペレーティング・システムまたはプラットフォームに基づき得る。さらに別の実施形態では、このリクエストが、複数の管理下ホストを管理するように稼働可能な一元管理エージェント（仮想マシンなど）に送信される。
【００１１】
コンピュータ読み取り可能なメディアの方法は、仮想ストレージ・アクセス・モジュールから（前記仮想アクセス・パスを介するなどして）複数のストレージ属性を受信することと、複数のストレージ属性を記憶することとをさらに含む。一実施形態では、これら複数のストレージ属性を、ストレージ管理タスクで使用できるように記憶することができる。一実施形態では、本方法が、仮想ストレージ・アクセス・モジュールのストレージ管理をしやすくするための複数のストレージ属性を（例えばグラフィカル・ユーザー・インターフェイス（ＧＵＩ）を介して）提示することをさらに含む。
【００１２】
さらに別の実施形態では、本発明が、コンピュータ読み取り可能な記憶メディアに連結された１つもしくは複数のプロセッサを有し、かつ、複数のストレージ属性（論理ユニット番号（ＬＵＮ）についての情報など）を求めるリクエストを電子システム経由で仮想ストレージ・アクセス・モジュールに送信することを含むプロセスをコンピュータ・システムに実施させるコンピュータ読み取り可能なコードを実行するコンピュータ・システムを備えるストレージ・クラスタ・システムとして実装される。仮想ストレージ・アクセス・モジュールは、仮想マシンが仮想アクセス・パス経由でストレージにアクセスすることを容易にし得る。一実施形態では、仮想ストレージ・アクセス・モジュールのバックエンド・エージェント（仮想入出力構成要素の一部分など）との通信チャネルが確立される。別の実施形態では、リクエストが、複数の属性ストレージを備えるストレージのストレージ・ページに対応する複数のストレージ・ページを備える。ストレージ・ページは、具体的なオペレーティング・システムまたはプラットフォームに基づき得る。さらに別の実施形態では、リクエストが、複数の管理下ホストを管理するように稼働可能な一元管理エージェント（仮想マシンなど）に送信される。
【００１３】
コンピュータ読み取り可能なコードのプロセスは、仮想ストレージ・アクセス・モジュールから（例えば前記仮想アクセス・パス経由で）複数のストレージ属性を受信することと、複数のストレージ属性を記憶することとをさらに含む。一実施形態では、これら複数のストレージ属性を、ストレージ管理タスクで使用できるように記憶することができる。一実施形態では、本方法が、仮想ストレージ・アクセス・モジュールのストレージ管理をしやすくするための複数のストレージ属性を（例えばグラフィカル・ユーザー・インターフェイス（ＧＵＩ）を介して）提示することをさらに含む。
【図面の簡単な説明】
【００１４】
【図１】本発明の一実施形態にかかる例示的なオペレーティング環境のブロック図を示す。
【図２】本発明の一実施形態にかかる別の例示的なオペレーティング環境のブロック図を示す。
【図３】本発明の一実施形態にかかる仮想Ｉ／Ｏモジュールにおける例示的な構成要素のブロック図を示す。
【図４】本発明の別の実施形態にかかる、プラットフォームに固有のクエリに基づいてストレージ情報が判断される例示的な仮想環境のブロック図を示す。
【図５】本発明の別の実施形態にかかる、バックエンド・エージェントとの通信に基づいてストレージ情報が判断される別の例示的な仮想環境のブロック図を示す。
【図６】本発明の一実施形態にかかる、管理下ホストと管理ホストとを含む例示的な仮想環境のブロック図を示す。
【図７】本発明の一実施形態にかかる、管理下ホストと、仮想Ｉ／Ｏモジュールとは別の管理ホストとを含む例示的な仮想環境のブロック図を示す。
【図８】本発明の実施形態にかかる、仮想環境でストレージ情報にアクセスするためのプロセスの例示的なフローチャートを示す。
【図９】本発明の別の実施形態にかかる、ストレージ情報を仮想環境でアクセス可能にするための別のプロセスの例示的なフローチャートを示す。
【図１０】本発明の一実施形態にかかる例示的なコンピュータ・システムのブロック図を示す。
【発明を実施するための形態】
【００１５】
本発明にかかる各種実施形態を詳しく参照する。本発明の実施例が添付の図面に示されている。本発明について各種実施形態と共に説明するが、これらの各種実施形態は本発明を制限することを意図としないものと理解される。本発明はむしろ、代替物、変形物、均等物を網羅することを意図するものであり、これらは添付の請求の範囲に従って解釈される本発明の範囲内に含まれ得る。さらに、以下に示す、本発明にかかる各種実施形態の詳細な説明では、本発明を十分に理解してもらうために数多くの具体的な詳細情報が記載されている。ただし、これらの具体的な詳細情報がなくても本発明を実践し得ることは、当業者にとって明らかであろう。他の事例では、本発明の態様を無用に分かりにくくするのを避けるために、周知の方法、手順、構成要素、および回路が詳しく記載されていない。
【００１６】
続く詳細な説明には、手順、論理ブロック、処理、およびコンピュータメモリ内のデータ・ビットに対する操作の象徴的表現という観点から提示されている部分もある。これらの説明および表現は、データ処理技術の当業者により、他の当業者に自らの仕事の本質を最も効果的に伝える目的で使用される手段である。本出願では、手順、論理ブロック、プロセッサなどが、首尾一貫した操作順序、あるいは所望の結果につながるステップまたは命令となるように考案されている。これらの操作またはステップは、物理量の物理的操作を用いるものである。必ずということではないが、通常であれば、これらの量は、コンピュータ・システムまたは計算装置で記憶、転送、結合、比較、あるいは操作可能な電気または磁気信号という形をとる。これらの信号を処理、ビット、値、要素、記号、文字、サンプル、ピクセル等と称することは、主に広く使用されているという理由で、時として便利であるということがわかっている。
【００１７】
ただし、これらの用語および同様の用語はすべて、適切な物理量と関連付ける必要があり、これらの量に適用された便利なラベルに過ぎないということを念頭に置くべきである。以下の説明から明らかであるとおり、別段の記載が具体的になされている場合を除き、本開示全体にわたり、「不活性化する」、「無効化する」、「凍結する」、「再活性化する」、「実現する」、「解凍する」、「送信する」、「判断する」、「書き換える」、「応答する」、「生成する」、「作る」、「ブロックする」、「アクセスする」、「スナップショットを撮る」、「関連付ける」、「可能にする」、「更新する」などの用語を使用した説明は、コンピュータ・システムまたは同様の電子計算装置、あるいはプロセッサのアクションおよびプロセスを言及するものと理解される。コンピュータ・システムまたは同様の電子計算装置は、コンピュータ・システム・メモリ、レジスタ、あるいはその他のかかる情報ストレージ、伝送または表示装置内の物理的な（電子的な）量で表されるデータを操作し、変形させる。
【００１８】
本システムおよび方法は各種アーキテクチャおよび構成で実装できるとものと理解される。例えば、本システムおよび方法は、分散コンピューティング環境、クラウド・コンピューティング環境、クライアント／サーバー環境、などの一部として実装することができる。本明細書に記載された実施形態は、プログラム・モジュールなど、１つもしくは複数のコンピュータ、計算装置、または他の装置によって実行される何らかの形態のコンピュータ読み取り可能な記憶メディアに存在するコンピュータ実行可能な命令という一般的文脈で説明され得る。非限定的な例として、コンピュータ読み取り可能な記憶メディアは、コンピュータ記憶メディアと通信メディアとを備え得る。一般に、プログラム・モジュールは、特定のタスクを実行するか、あるいは特定の抽象的なデータ型を実装するルーチン、プログラム、オブジェクト、構成要素、データ構造体などを含む。プログラム・モジュールの機能は、各種実施形態において所望どおりに結合あるいは分散され得る。
【００１９】
コンピュータ記憶メディアは、コンピュータ読み取り可能な命令、データ構造体、プログラム・モジュール、または他のデータなど、情報を記憶するための任意の方法または技術で実装された揮発性および不揮発性、ならびに着脱可能および着脱不可のメディアを含み得る。コンピュータ記憶メディアは、ランダム・アクセス・メモリ（ＲＡＭ）、読み取り専用メモリ（ＲＯＭ）、電気的消去可能ＲＯＭ（ＥＥＰＲＯＭ）、フラッシュ・メモリ、あるいは他のメモリ技術、コンパクト・ディスクＲＯＭ（ＣＤ−ＲＯＭ）、デジタル万能ディスク（ＤＶＤ）、あるいは他の光学ストレージ、磁気カセット、磁気テープ、磁気ディスク・ストレージ、あるいは他の磁気記憶装置）、または所望の情報を記憶する目的で使用でき、かつその情報にアクセスして取得できるその他の任意のメディアを含み得るが、これらに限定されない。
【００２０】
通信メディアは、コンピュータ実行可能な命令、データ構造体、プログラム・モジュール、または他のデータを、搬送波あるいは他の移送メカニズムなど変調させたデータ信号内にまとめることができ、任意の情報搬送メディアを含む。「変調させたデータ信号」という用語は、その文字セットのうちの１つもしくは複数を有するか、あるいは信号内の情報を符号化などの方法で変更した信号を意味する。非限定的な例として、通信メディアは、有線ネットワークまたは直接有線接続などの有線メディアと、音響、無線周波（ＲＦ）、赤外線および他のワイヤレス・メディアなどのワイヤレス・メディアとを含み得る。上記のいずれの組み合わせも、コンピュータ読み取り可能な記憶メディアの範囲内に含めることができる。
【００２１】
例示的なオペレーティング環境
図１は、本発明の一実施形態にかかる例示的なオペレーティング・システムのブロック図を示す。例示的なオペレーティング環境１００は、クライアント１０２ａ−ｃと、ネットワーク１０４と、サーバー１０６ａ−ｂと、ストレージ・エリア・ネットワーク（ＳＡＮ）・ファブリック１０８と、ストレージ・アレイ１１０ａ−ｂとを含む。例示的なオペレーティング環境１００の構成要素は例示的なものであり、各種構成においては構成要素が多い場合や少ない場合があり得るものと理解される。運用環境は分散コンピューティング環境、クラウド・コンピューティング環境、クライアント／サーバー環境などの一部であり得るものと理解される。
【００２２】
クライアント・システム１０２ａ−ｃは、例えば、ウェブ・ブラウザあるいは他の適切なクライアント通信ソフトウェア（図示せず）を使用してサーバー１０６ａ−ｂ経由でストレージ・アレイ１１０ａ−ｂにある情報にアクセスする。図１は、インターネットなど、データを交換するためのネットワーク１０４を使用している様子を表すが、本開示はインターネットまたはいかなる特定のネットワークベースの環境にも限定されない。
【００２３】
サーバー１０６ａ−ｂの各々は、そこに接続された複数のクライアント（クライアント１０２ａ−ｃなど）を有し得る。サーバー１０６ａ−ｂは、データベース・サーバー、ネットワーク・ファイル・システム（ＮＦＳ）サーバー、およびアプリケーション・サーバー（課金サーバーなど）を含むが、それらに限定されない各種サーバー・タイプであり得る。例えば、アプリケーションおよびサーバーには、数千もの人が異なる箇所からアクセスしてくるため、アプリケーションおよびサーバーは、非常に可用性が高く、クラスタが故障耐性に優れている必要がある。いくつかの実施形態では、サーバー１０６ａ−ｂがストレージ・アレイ１１０ａ−ｂの共有ストレージにアクセスし、サーバー１０６ａ−ｂの各々が、自らのクラスタ化されたそれぞれのファイル・システムと、自身の内蔵ロック・マネージャとを有し、それによってサーバー１０６ａ−ｂは共有ストレージにアクセスすることができる。サーバー１０６ａ−ｂの各々は、（冗長プライベート・ネットワーク）（図示せず）を経て互いに通信し得る。サーバー１０６ａ−ｂは、ファイバー・チャネルを含む様々な方法でストレージ・アレイ１１０ａ−ｂに連係され得る。
【００２４】
サーバー１０６ａ−ｂは、ストレージ・アレイ１１０ａ−ｂのストレージを管理するストレージ・マネージャ１１２ａ−ｂをそれぞれ実行する。一実施形態では、ストレージ・マネージャ１１２ａ−ｂがサーバー１０６ａ−ｂの仮想化層経由で稼働し、ストレージ・マネージャ１１２ａ−ｂがストレージに固有の情報（ストレージ・アレイ１１０ａ−ｂについての情報など）を収集してストレージ管理タスクを実行する。例えば、故障時にストレージの可用性を確保するために、ストレージに固有の情報を使用してストレージ・アレイ１１０ａ−ｂの部分を割り当て得る。
【００２５】
仮想環境におけるストレージ情報へのアクセス性
本発明の実施形態は、仮想環境にある仮想マシンがストレージ・リソースに関するストレージ属性を利用できるようにする。さらに具体的に言えば、実施形態は、本来であれば物理アクセス・パス経由でしか利用できない属性を仮想アクセス・パス経由で利用できるようにする。ストレージ属性が利用できることにより、ストレージ管理（ストレージ割り当てなど）を仮想環境内から（例えば仮想マシンを介して）実行できるようになる。実施形態はさらに、仮想マシンが物理アクセスから仮想アクセス・パスへの変更（移行など）を扱えるようにし、それによって物理アクセス・パス経由での稼働時の動作をシームレスに一致させる。実施形態により、仮想環境が物理環境と同じストレージ管理機能を持てるようになる。
【００２６】
図２は、本発明の一実施形態にかかる別の例示的なオペレーティング環境のブロック図を示す。例示的なオペレーティング環境２００は、仮想マシン２０２ａ−ｂと、仮想化層２０４と、物理アクセス・パス２１８と、ＳＡＮファブリック２１０とを含む。
【００２７】
仮想化層２０４は、仮想化層２０４の入出力を処理する仮想入出力（Ｉ／Ｏ）モジュール２０６を含む。仮想化層２０４は、仮想マシン２０２ａ−ｂに仮想化機能（仲介する仮想装置）を提供する。一実施形態では、仮想化層２０４により、各種ストレージ管理を一元的に行えるようになり、さらには１つのソフトウェアが、ストレージ・アレイのサポート、ハードウェアの再構成、およびＩ／Ｏ負荷（サービスの種類など）のバランス確保を、複数の仮想マシン（仮想マシン２０２ａ−ｂなど）またはオペレーティング・システム全体で管理できるようにもなる。ストレージ２１８は、仮想アクセス・パス２０８経由で仮想マシン２０２ａ−ｂにエクスポートされる。
【００２８】
仮想Ｉ／Ｏモジュール２０６は、仮想マシン２０２ａ−ｂからのＩ／Ｏリクエストを処理し、ＳＡＮファブリック２１０経由でのストレージ２１８へのアクセスを提供する。一実施形態では、仮想Ｉ／Ｏモジュール２０６が、仮想アクセス・パス２０８経由でのストレージ・リソースへのアクセスを仮想マシン２０２ａ−ｂに提供する。
【００２９】
仮想マシン２０２ａは、ストレージ・マネージャ２１２ａ−ｂをそれぞれ実行する。ストレージ・マネージャ２１２ａ−ｂは、ストレージ情報エージェント２１４ａ−ｂをそれぞれ含む。一般に、ストレージ情報エージェント２１４ａ−ｂは仮想環境内においてストレージ（エンクロージャなど）に固有の属性を発見する。ストレージ情報エージェント２１４ａ−ｂは、かかるストレージ属性が仮想Ｉ／Ｏモジュール２０６によって仮想化（例えば隠匿）されるために本来であれば利用できないストレージ属性を取得する。ストレージ情報エージェント２１４ａ−ｂは、ストレージ・マネージャ２１２ａ−ｂがストレージ属性をそれぞれ利用できるようにする。一実施形態では、ストレージ情報エージェント２１４ａ−ｂにより、仮想マシン２０２ａ−ｂのオペレーティング・システム（図示せず）がストレージ情報をそれぞれ利用できるようにする。ストレージ情報エージェント２１４ａ−ｂによって取得された情報により、仮想アクセス・パス２０８はストレージ２１８の装置にアクセスするための転送メカニズムとして機能できるようになる。
【００３０】
例えば、仮想アクセス・パス２０８経由でアクセスできるストレージのストレージ属性を提供することにより、仮想マシン（仮想マシン２０２ａ−ｂなど）は、仮想マシンからは記憶装置が同じように見えるため、ストレージとの接続を失うことなく、（サーバーを統合して電力消費量を減らすなどの目的で）ある物理システムから別の物理システムに移行することができる。すなわち、ストレージ属性により、移行中のＩ／Ｏのルーティングの変更を仮想マシンがシームレスに管理できるようになる。
【００３１】
ストレージ情報エージェント２１４ａ−ｂは、装置識別情報（ＩＤ）、エンクロージャ識別情報（ストレージ・アレイ名、キャビネット番号など）、ストレージのタイプ（ストレージ・アレイ・メーカーなど）、記憶メディアのタイプ（ソリッド・ステート・ドライブ（ＳＳＤ）、シン・ボリューム、仮想ボリュームなど）、信頼性（低価格ディスク冗長配列（ＲＡＩＤ）のタイプなど）、冗長性（ミラーリング、複製、ＲＡＩＤタイプ、プライマリ・ストレージ、またはスナップショット・ストレージなど）、接続状況、および位置を含む様々なストレージ属性を記憶し得る。ＳＣＳＩ構成では、ストレージ・アレイによってエクスポートされたストレージ・ボリュームのことを論理ユニットと呼び、論理ユニット番号で表す。一実施形態では、ストレージ属性が論理ユニット番号（ＬＵＮ）の属性に対応する。例えば、ＬＵＮは複製リンク（対称リモート・データ機能（ＳＲＤＦ）など）を持つことができ、これによってリモート側でアクセスできるようになる。一実施形態では、物理的なストレージ属性に加え、このストレージ属性も、ボリューム管理が仮想化層２０４経由で行われる実施形態向けのボリューム属性を含む。
【００３２】
好都合なことに、ストレージ情報エージェント２１４ａ−ｂによって利用できるようになったストレージ属性により、様々なストレージ管理機能がストレージ・マネージャ２１２ａ−ｂ経由で実行できるようになる。ストレージ属性が利用できるようになったことにより、そのストレージが使用されているアプリケーションの要件に基づいたストレージ管理ができるようになる。さらには、ストレージ属性により、ストレージをインテリジェントに割り当てられるようにもなる。仮想環境でサポートされるストレージ管理機能は、故障領域の割り当ておよびエンクロージャの分離と、ストレージの動的な階層化と、装置の命名とを含む。
【００３３】
一実施形態では、このストレージ属性により、エンクロージャの分離および故障領域またはグループの割り当てがしやすくなる。ストレージ・アレイまたはエンクロージャは故障する可能性がある（電力損失、接続損失など）ことから、ストレージ・アレイは、ストレージ・ミラーリングまたは他の冗長機能が別々になるような箇所に基づいて選択するのが望ましい。ストレージ属性は、ストレージのどの部分（キャンパス・クラスタ情報など）が各々のエンクロージャまたは箇所のものであるかを示すので、故障領域への割り当て用ストレージを選択するに当たり、ストレージ情報エージェント２１４ａ−ｂからのストレージ属性により、ストレージ・アレイの様々な部分（ＬＵＮなど）を異なる故障領域またはグループに割り当てられるようになる。例えば、ストレージ管理者は、ＬＵＮを２つの異なるエンクロージャから選択すればよく、それにより、他のエンクロージャで故障が発生した場合でも１つのエンクロージャにアクセスできるようになる。ストレージ属性は、故障グループ全体での構成データベースの分散とキャンパス・クラスタ環境におけるサイト検出とをサポートするための情報をさらに含み得る。
【００３４】
ストレージ属性は、異なる階層を構築し、信頼性および性能の違いに基づいて階層同士を区別する目的で使用され得ることから、ストレージを動的に階層化する目的でも使用され得る。ストレージ情報エージェント２１４ａ−ｂは、通常であれば仮想アクセス・パス２０８経由で実施できないストレージの動的な階層化をしやすくするものと理解される。
【００３５】
一実施形態では、ストレージ情報エージェント２１４ａ−ｂを介して視認可能なストレージ属性が、（エンクロージャベースの命名（ＥＢＮ）およびアレイ・ボリュームＩＤなどに基づいた）物理ストレージ名を含めることによってストレージの使いやすさを高める。本発明の実施形態によれば、このように物理ストレージ名の可視性により、仮想マシン２０２ａ−ｂによって視認可能なストレージ・ボリュームの名前（ＬＵＮなど）をストレージ２１８に連結された計算システムと整合させることができる。例えば、ストレージがストレージ管理者によって管理され得る一方で、サーバーは管理されたサーバーによって管理され、一貫したストレージ名を使用することにより、サーバー管理者とストレージ管理者との間での通信中に、（トラブルシューティング、ＬＵＮの割り当て、ストレージのプロビジョニングなどを目的とした）記憶装置の識別を容易に行うことができる。ストレージ名は、ＬＵＮのタイプなど様々な情報を含み得る。一実施形態では、ストレージ属性が、ホストに依存しない識別名を含む。
【００３６】
図３は、本発明の一実施形態にかかる仮想Ｉ／Ｏモジュールにおける例示的な構成要素のブロック図を示す。例示的な仮想環境３００は、仮想Ｉ／Ｏモジュール３０６を含む仮想化層３０４を含む。仮想Ｉ／Ｏモジュール３０６は、（例えば仮想マシン２０２ａ−ｂにストレージへのアクセスを提供する）仮想アクセス・パス３０８を含む。
【００３７】
仮想環境は、装置を仮想マシンにエクスポートする複数の方法を有し得る。一実施形態では、仮想アクセス・パス３０８がブロック・デバイス・インターフェイス３１０を含む。ブロック・デバイス３１０は、（例えばＳＡＮファブリック２１０を経由する）ストレージへのアクセスを提供する目的で、仮想アクセス・パス３０８経由で仮想Ｉ／Ｏモジュールによって使用される。ブロック・デバイス３１０は、ストレージを仮想化する仮想化されたインターフェイスを提供し、それによってストレージに固有の情報を隠匿する。別の実施形態では、仮想アクセス・パス３０８が仮想装置モジュール３１２を含む。仮想装置モジュール３１２は、仮想データでコマンド（小型コンピュータ・システム・インターフェイス（ＳＣＳＩ）コマンドなど）に応答し、このようにしてストレージに固有の情報を隠匿する。
【００３８】
図４は、本発明の一実施形態にかかる、プラットフォームに固有のクエリに基づいてストレージ情報が判断される例示的な仮想環境のブロック図を示す。例示的な仮想化されたシステム４００は、仮想マシン４０２と、仮想化層４０４と、ストレージ４１４とを含む。
【００３９】
仮想化層４０４は、ストレージ４１４へのアクセスを提供する仮想Ｉ／Ｏモジュール４１２を含む。仮想Ｉ／Ｏモジュール４１２は、仮想アクセス・パス４１０経由でのストレージ４１４へのアクセスを仮想マシン４０２に提供する。ストレージ４１４は、（例えばＳＣＳＩ構成における）ストレージ・ボリュームを表す論理ユニット番号（ＬＵＮ）４１６ａ−ｄを含む。本発明の実施形態は他のストレージ構成でも稼働し得るものと理解される。
【００４０】
仮想マシン４０２は、ストレージ情報エージェント４０６を実行する。一実施形態では、ストレージ情報エージェント４０６がプラットフォーム・クエリ・モジュール４０８を含む。プラットフォーム・クエリ・モジュール４０８は、仮想化層４０２のオペレーティング・システム／プラットフォームに基づいて、仮想アクセス・パス４１０経由で利用できるストレージの具体的な問い合わせページにクエリを出す。プラットフォーム・クエリ・モジュール４０８からのクエリは、仮想Ｉ／Ｏモジュール４１２が、ストレージ４１４の対応する問い合わせページに記憶された情報（ストレージ属性など）で以て応答する具体的な問い合わせページを含み得る。例えば、あるプラットフォームは、バックエンド装置（ストレージ４１４など）についての情報を提供する具体的なＳＣＳＩ問い合わせページを提供し得る。ストレージ情報エージェント４０６は、このようにプラットフォーム・クエリ・モジュール４０８を使用して、物理ストレージによってバックアップされるＬＵＮについての有用なストレージ情報を取得することができる。別の実施例として、Ｎｅｗ  ＹｏｒｋのＩｎｔｅｒｎａｔｉｏｎａｌ  Ｂｕｓｉｎｅｓｓ  Ｍａｃｈｉｎｅｓ  ｏｆ  Ａｒｍｏｎｋより市販されているＡｄｖａｎｃｅｄ  Ｉｎｔｅｒａｃｔｉｖｅ  ｅＸｅｃｕｔｉｖｅ（ＡＩＸ）環境では、ページ０ｘＦＦ、０ｘＦＥ、および０ｘＦＤのプラットフォーム・クエリ・モジュール４０８からのクエリが、ストレージ情報を含む仮想Ｉ／Ｏモジュール４１２からストレージ４１４のページ８３、８０、０のデータを返す。いくつかの実施形態では、ストレージ属性が仮想アクセス・パス４１０経由で受信されるものと理解される。
【００４１】
図５は、本発明の別の実施形態にかかる、バックエンド・エージェントとの通信に基づいてストレージ情報が判断される別の例示的な仮想環境のブロック図を示す。例示的な仮想化されたシステム５００は、仮想マシン５０２と、仮想化層５０４と、ストレージ５１４とを含む。
【００４２】
仮想化層５０４は、ストレージ５１２へのアクセスを提供する仮想Ｉ／Ｏモジュール５１４を含む。仮想Ｉ／Ｏモジュール５１２は、仮想アクセス・パス５１４経由でのストレージ５１０へのアクセスを仮想マシン５０２に提供する。ストレージ５１４は、（例えばＳＣＳＩ構成における）ストレージ・ボリュームを表す論理ユニット番号（ＬＵＮ）５１６ａ−ｄを含む。本発明の実施形態は他のストレージ構成でも稼働し得るものと理解される。
【００４３】
仮想マシン５０２は、ストレージ情報エージェント５０６を実行する。一実施形態では、ストレージ情報エージェント５０６が、仮想Ｉ／Ｏモジュール５１２のバックエンド・エージェント５１８と通信可能に連結されている。一実施形態では、ストレージ情報エージェント５０６が、バックエンド・エージェント５１８からストレージ属性を取得するために、バックエンド・エージェント５１８との通信チャネルを確立する。ストレージ情報エージェント５０６およびバックエンド・エージェント５１８は、クライアント／サーバー・モードをそれぞれ含む各種周知の方法で稼働し得るものと理解される。
【００４４】
一実施形態では、バックエンド・エージェント５１８が、ストレージ情報エージェント５０６からの具体的な命令（構成装置における入出力制御（ｉｏｃｔｌ）またはＩ／Ｏなど）に応答し、実際のストレージ（ＬＵＮ  ５１６ａ−ｄなど）についてのストレージ属性を提供する。バックエンド・エージェント５１８は、仮想化層５０４における仮想ボリュームによってバックアップされるＬＵＮにストレージ属性を提供することもできる。一実施形態では、仮想Ｉ／Ｏモジュール５１２がブロック・デバイス・インターフェイス（ブロック・デバイス・インターフェイス３１０など）を含む場合にバックエンド・エージェント５１８が使われる。バックエンド・エージェント５１８はさらに、（ストレージ５１４にクエリを出すなどして）ストレージ５１４からストレージ情報を取得し、ストレージ情報を、仮想アクセス・パス５１０経由でアクセス可能な仮想装置と相関させ、ストレージ属性をストレージ情報エージェント５０６ａ−ｃに提供することができる。
【００４５】
図６は、本発明の別の実施形態にかかる、管理下ホストと管理ホストとを含む別の例示的な仮想環境のブロック図を示す。例示的な仮想化されたシステム６００は、仮想マシン６０２ａ−ｃと、仮想化層６０４と、ストレージ６１４とを含む。
【００４６】
仮想化層６０４は、ストレージ６１４へのアクセスを提供する仮想Ｉ／Ｏモジュール６１２を含む。仮想Ｉ／Ｏモジュール６１２は、仮想アクセス・パス６１０経由でのストレージ６１４へのアクセスを仮想マシン６０２ａ−ｃに提供する。ストレージ６１４は、（例えばＳＣＳＩ構成における）ストレージ・ボリュームを表す論理ユニット番号（ＬＵＮ）６１６ａ−ｄを含む。本発明の実施形態は他のストレージ構成でも稼働し得るものと理解される。
【００４７】
仮想マシン６０２ａ−ｃは、ストレージ情報エージェント６０６ａ−ｃを実行する。一実施形態では、ストレージ情報エージェント６０６ａ−ｃが、仮想Ｉ／Ｏモジュール６１２の管理ホスト・エージェント６１８と通信可能に連結されている。一実施形態では、仮想マシン６０２ａ−ｃが、管理ホスト・エージェント６１８によって管理される管理下ホストである。管理ホスト・エージェント６１８は、仮想マシン６０２ａ−ｃ間でのレポートおよび制御アクティビティなど様々なアクティビティを管理し得る。仮想マシン６０２ａ−ｃは、１台の物理計算システムまたは複数の物理計算システム上で稼働し得るものと理解される。管理ホスト・エージェント６１８は、仮想マシン６０２ａ−ｃとは別の物理計算システムに存在し得るものとさらに理解される。
【００４８】
ストレージ情報エージェント６０６ａ−ｃは、管理ホスト・エージェント６１８にストレージ属性をリクエストし得る。管理ホスト・エージェント６１８は、（ストレージ６１４にクエリを出すなどして）ストレージ６１４からストレージ情報を取得し、ストレージ情報を、仮想アクセス・パス６１０経由でアクセス可能な仮想装置と相関させ、ストレージ属性をストレージ情報エージェント６０６ａ−ｃに提供することができる。管理ホスト・エージェント６１８は、物理ストレージ（ストレージ６１４など）のＬＵＮ、および仮想アクセス・パス６１０経由でアクセス可能なボリュームの相関を実行し得るものと理解される。
【００４９】
図７は、本発明の一実施形態にかかる、管理下ホストと、仮想Ｉ／Ｏモジュールとは別の管理ホストとを含む例示的な仮想環境のブロック図を示す。一実施形態では、例示的な仮想環境７００が例示的な仮想環境６００と同様である。例えば、仮想マシン７０２ａ−ｃ、仮想化層７０４、およびストレージ７１４は、仮想マシン６０２ａ−ｃ、仮想化層６０４、およびストレージ６１４と同様である。管理ホスト・エージェント７１８が仮想Ｉ／Ｏモジュール７１２とは別の管理ホスト７２０に含まれるという点を除き、が仮想Ｉ／Ｏモジュール７１２は管理ホスト・サポート・エージェント７２２を含む。
【００５０】
管理ホスト７２０は、仮想Ｉ／Ｏモジュール７１２の管理ホスト・サポート・エージェント７２２経由でストレージ情報を取得する管理ホスト・エージェント７１８を含む。管理ホスト７２０は、別の計算システム（例えばサーバー１０６ａ−ｂのうちの１つ）、あるいは仮想Ｉ／Ｏモジュール７１２とは別（例えば仮想化層７０４とは別）の仮想化層に存在し得る。管理ホスト・エージェント７１８は、管理ホスト・サポート・エージェント７２２にストレージ属性（ＬＵＮ属性および装置ＩＤなど）をリクエストし、管理ホスト・サポート・エージェント７２２はストレージ７１４にストレージ属性をリクエストし得る。一実施形態では、管理ホスト・エージェント７１８が、受信したストレージ属性を使用して、装置ＩＤに基づき相関を実行する。
【００５１】
図８および９を参照すると、例示的なフローチャート８００および９００は、本発明の各種実施形態によって使用されるプロセス例を表している。フローチャート８００および９００には具体的なブロックが開示されているが、かかるブロックは例示的なものである。すなわち、実施形態は、他の各種ブロック、あるいはフローチャート８００および９００に記載されたブロックの変形を実行するのに適している。フローチャート８００および９００のブロックは、提示された順序とは異なる順序で実行されてもよく、フローチャート８００および９００のブロックの全てが実行されなくてもよいものと理解される。フローチャート８００および９００は、各種実施形態で、コンピュータ読み取り可能かつコンピュータ実行可能な命令の制御下にあるプロセッサによって実行されるプロセスを含む。本発明の実施形態は、このように、ファームウェア・アップデート、ソフトウェア・アップデート・パッケージ、またはハードウェア（ＲＯＭなど）を含むがこれらに限定されないコンピュータ読み取り可能なメディアあるいはコンピュータ実行可能な命令として記憶され得る。
【００５２】
図８は、本発明の実施形態にかかる、仮想環境でストレージ情報にアクセスするためのプロセスの例示的なフローチャートを示す。
【００５３】
ブロック８０２で、ストレージ情報（ストレージ属性など）に対応する問い合わせページにおけるストレージに固有の箇所がリクエストされる。本明細書に記載のとおり、仮想マシンのストレージ情報エージェントは、ストレージ属性を含むそれらのページの情報で以て応答する仮想Ｉ／Ｏモジュールに（例えば具体的な問い合わせページを含む）リクエストを出し得る。次にブロック８１０が実行され得る。
【００５４】
ブロック８０４で、通信チャネルが確立される。本明細書に記載のとおり、この通信チャネルは、仮想マシン（ストレージ情報エージェントなど）と仮想Ｉ／Ｏモジュール（バックエンド・エージェントなど）との間で確立され得る。
【００５５】
ブロック８０６で、情報がリクエストされる。本明細書に記載のとおり、このリクエストは、ストレージ属性を取得するために仮想Ｉ／Ｏモジュール（仮想Ｉ／Ｏモジュール５１２など）の構成要素（バックエンド・エージェント５１８）に出され得る。次にブロック８１０が実行され得る。
【００５６】
ブロック８０８で、管理ホストにストレージ情報がリクエストされる。本明細書に記載のとおり、ストレージ情報エージェントは、管理ホスト・エージェント（管理ホスト・エージェント６１８など）にストレージ属性をリクエストし得る。
【００５７】
ブロック８１０で、ストレージ情報が受信される。本明細書に記載のとおり、このストレージ情報は、装置名、信頼性、物理エンクロージャの性質、および冗長性情報などのストレージ属性を含む。
【００５８】
ブロック８１２で、このストレージ情報が記憶される。本明細書に記載のとおり、このストレージ情報は、仮想環境内で（例えば仮想マシンから）ストレージ管理タスクを実行する際に使用できるように記憶される。
【００５９】
図９は、本発明の別の実施形態にかかる、ストレージ情報を仮想環境でアクセスあるいは視認できるようにするための別のプロセスの例示的なフローチャートを示す。
【００６０】
ブロック９０２で、ストレージ情報を求めるリクエストが仮想マシンから送信される。本明細書に記載のとおり、このリクエストは、仮想マシンのストレージ属性にアクセスできるようにするためにストレージ情報エージェントから送信され得る。
【００６１】
ブロック９０４で、ストレージ情報が受信される。本明細書に記載のとおり、このストレージ情報は、仮想Ｉ／Ｏモジュールから送信され得ると共に、仮想マシンからストレージを管理する際に使用する目的で稼働可能な各種ストレージ属性を含み得る。
【００６２】
ブロック９０６で、このストレージ情報が記憶される。本明細書に記載のとおり、このストレージ情報は、仮想マシンで稼働しているストレージ管理アプリケーション（ボリュームおよび割り当て管理、ストレージの動的な階層化、または故障グループ・アプリケーションなど）経由でアクセス可能なストレージであり得る。
【００６３】
ブロック９０９で、ストレージ管理タスクで使用するストレージ情報が提示される。一実施形態では、このストレージ情報が、ストレージ管理タスクを実行するためのグラフィカル・ユーザー・インターフェイスを介して提示される。
【００６４】
図１０は、本発明の一実施形態にかかる例示的なコンピュータ・システム・モジュール１０００のブロック図を示す。図１０を参照すると、実施形態を実装するための例示的なシステム・モジュールは、汎用計算システム環境（計算システム環境１０００など）を含む。計算システム環境１０００は、サーバー（サーバー１０６ａ−ｂなど）、デスクトップ・コンピュータ、ラップトップ、タブレットＰＣ、モバイル装置およびスマートフォンを含み得るが、これらに限定されない。その最も基本的な構成では、計算システム環境１０００が一般に、少なくとも１つの処理ユニット１００２とコンピュータ読み取り可能な記憶メディア１００４とを含む。計算システム環境の構成およびタイプによっては、コンピュータ読み取り可能な記憶メディア１００４は、揮発性（ＲＡＭなど）、不揮発性（ＲＯＭ、フラッシュ・メモリなど）、あるいはこの２つの何らかの組み合わせであってもよい。コンピュータ読み取り可能な記憶メディア１００４のある部分は、実行されると、フェールオーバーの対象（プロセス７００および８００など）の選択を実行する。
【００６５】
加えて、計算システム環境１０００は、他にも特徴／機能を有し得る。例えば、計算システム環境１０００は、磁気または光学ディスクまたはテープを含むがこれらに限定されない追加ストレージ（着脱可能および／または着脱不可）を含み得る。かかる追加ストレージが、着脱可能ストレージ１００８および着脱不可ストレージ１０１０によって図１０に示されている。コンピュータ記憶メディアは、コンピュータ読み取り可能な命令、データ構造体、プログラム・モジュール、または他のデータなど、情報を記憶するための任意の方法または技術で実装された揮発性および不揮発性、ならびに着脱可能および着脱不可のメディアを含む。コンピュータ読み取り可能なメディア１００４、着脱可能ストレージ１００８、および着脱不可ストレージ１０１０はすべて、コンピュータ記憶メディアの例である。コンピュータ記憶メディアは、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュ・メモリまたは他のメモリ技術、ＣＤ−ＲＯＭ、デジタル万能ディスク（ＤＶＤ）または他の光学ストレージ、磁気カセット、磁気テープ、磁気ディスク・ストレージまたは他の磁気記憶装置、あるいは所望の情報を記憶する目的で使用でき、かつ計算システム環境１０００によってアクセスできるその他任意のメディアを含むが、これらに限定されない。かかる任意のコンピュータ記憶メディアは、計算システム環境１０００の一部であってもよい。
【００６６】
計算システム環境１０００は、他の装置と通信できる通信接続１０１２も含み得る。通信接続１０１２は、通信メディアの一例である。通信メディアは、コンピュータ読み取り可能な命令、データ構造体、プログラム・モジュールあるいは他のデータを、搬送波または他の移送メカニズムなど変調させたデータ信号にまとめるのが一般的であり、任意の情報搬送メディアを含む。「変調させたデータ信号」という用語は、その文字セットのうちの１つもしくは複数を有するか、あるいは信号内の情報を符号化などの方法で変更した信号を意味する。非限定的な例として、通信メディアは、有線ネットワークまたは直接有線接続などの有線メディアと、音響、ＲＦ、赤外線および他のワイヤレス・メディアなどのワイヤレス・メディアとを含む。本明細書で使用されるコンピュータ読み取り可能なメディアという用語は、記憶メディアと通信メディアとを含む。
【００６７】
通信接続１０１２により、計算システム環境１０００は、ファイバー・チャネル、小型コンピュータ・システム・インターフェイス（ＳＣＳＩ）、Ｂｌｕｅｔｏｏｔｈ（登録商標）、イーサネット（登録商標）、Ｗｉ−ｆｉ、赤外線データ協会（ＩｒＤＡ）、ローカル・エリア・ネットワーク（ＬＡＮ）、ワイヤレス・ローカル・エリア・ネットワーク（ＷＬＡＮ）、インターネット、シリアル・バス、およびユニバーサル・シリアル・バス（ＵＳＢ）などのワイド・エリア・ネットワーク（ＷＡＮ）を含むがこれらに限定されない各種ネットワーク・タイプを経て通信することができる。通信接続１０１２が接続する各種ネットワーク・タイプは、伝送制御プロトコル（ＴＣＰ）、インターネット・プロトコル（ＩＰ）、リアルタイム・トランスポート・プロトコル（ＲＴＰ）、リアルタイム・トランスポート制御プロトコル（ＲＴＣＰ）、ファイル転送プロトコル（ＦＴＰ）、およびハイパーテキスト転送プロトコル（ＨＴＴＰ）を含むがこれらに限定されない複数のネットワーク・プロトコルを実行し得るものと理解される。
【００６８】
計算システム環境１０００は、入力装置１０１４（キーボード、マウス、ペン、音声入力装置、タッチ入力装置、リモート・コントロールなど）を有し得る。ディスプレイ、スピーカなどの出力装置１０１６も含まれ得る。これらの装置は当該技術においてすべて周知であり、詳しく説明されていない。
【００６９】
一実施形態では、コンピュータ読み取り可能な記憶メディア１００４が、仮想化層モジュール１００５と仮想マシン・モジュール１００６とを含む。仮想化層モジュール１００５は、ストレージ・アクセス・モジュール１０３０を含む。ストレージ・アクセス・モジュール１０３０は、（例えば仮想アクセス・パス経由での）ストレージへのアクセスを仮想マシン・モジュール１００６に提供する。
【００７０】
一実施形態では、仮想マシン１００６が仮想マシン・モジュールとして実行される。仮想マシン・モジュール１００６は、ストレージ・マネージャ・モジュール１０１８を含む。ストレージ・マネージャ・モジュール１０１８は、ストレージ管理タスク（ストレージの動的な階層化、ストレージ割り当てなど）を実行しやすくする。ストレージ・マネージャ・モジュール１０１８は、ストレージ・マネージャ・モジュール１０１８が仮想化環境で使用されるときにストレージ情報を提供することにより、ストレージ・マネージャ・モジュール１０１８がストレージ管理タスクを実行できるようにするストレージ情報エージェント・モジュール１０２０を含む。ストレージ情報エージェント・モジュール１０２０は独立していてもよく、あるいはストレージ管理モジュール１０１８とは別であってもよいものと理解される。
【００７１】
一実施形態では、ストレージ情報モジュール１０２０が、プラットフォーム問い合わせモジュール１０２２と、一元管理エージェント・インターフェイス・モジュール１０２４と、バックエンド・エージェント・インターフェイス・モジュール１０２６とを含む。本明細書に記載のとおり、プラットフォーム・クエリ・モジュール１０２２は、ストレージ・アクセス・モジュール１０３０（仮想Ｉ／Ｏモジュールなど）に対して、ストレージ属性を求めて、特定のクエリを出すことができる。一元管理エージェント・インターフェイス・モジュール１０２４は、一元管理エージェント（管理ホスト・エージェント６１８など）にリクエストすることによってストレージ属性を取得し得る。バックエンド・エージェント・インターフェイス・モジュール１０２６は、ストレージ・アクセス・モジュール１０３０（バックエンド・エージェント５１８など）のエージェントにストレージ属性をリクエストすることによってストレージ属性を取得し得る。
【００７２】
このように、本発明の実施形態は、仮想環境にある仮想マシンがストレージ属性（記憶装置に固有の情報など）を利用できるようにするための方法およびシステムを提供する。実施形態は、プラットフォームに固有のクエリと仮想ストレージ・アクセス・モジュールへのクエリとを含む様々な方法を利用して、仮想マシンにストレージ情報をもたらす。
【００７３】
以上の記載内容は、具体的な実施形態を参照しながら説明目的で記載したものである。ただし、上記の例示的な説明は、すべてを網羅したり、本発明を開示された正確な形態に制限したりすることを意図していない。上記教示を鑑みて多くの改変および変形が可能である。これらの実施形態は、本発明およびその実践的な応用例を最もよく説明し、それによって他の当業者が、意図された特定の用途に適し得る各種改変を用いて本発明および各種実施形態を最良に活用できるようにするために選択および記載されたものである。
【図１】
0005871397.tif 000002
【図２】
0005871397.tif 000003
【図３】
0005871397.tif 000004
【図４】
0005871397.tif 000005
【図５】
0005871397.tif 000006
【図６】
0005871397.tif 000007
【図７】
0005871397.tif 000008
【図８】
0005871397.tif 000009
【図９】
0005871397.tif 000010
【図１０】
0005871397.tif 000011