(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0015】
本発明にかかる各種実施形態を詳しく参照する。本発明の実施例が添付の図面に示されている。本発明について各種実施形態と共に説明するが、これらの各種実施形態は本発明を制限することを意図としないものと理解される。本発明はむしろ、代替物、変形物、均等物を網羅することを意図するものであり、これらは添付の請求の範囲に従って解釈される本発明の範囲内に含まれ得る。さらに、以下に示す、本発明にかかる各種実施形態の詳細な説明では、本発明を十分に理解してもらうために数多くの具体的な詳細情報が記載されている。ただし、これらの具体的な詳細情報がなくても本発明を実践し得ることは、当業者にとって明らかであろう。他の事例では、本発明の態様を無用に分かりにくくするのを避けるために、周知の方法、手順、構成要素、および回路が詳しく記載されていない。
【0016】
続く詳細な説明には、手順、論理ブロック、処理、およびコンピュータメモリ内のデータ・ビットに対する操作の象徴的表現という観点から提示されている部分もある。これらの説明および表現は、データ処理技術の当業者により、他の当業者に自らの仕事の本質を最も効果的に伝える目的で使用される手段である。本出願では、手順、論理ブロック、プロセッサなどが、首尾一貫した操作順序、あるいは所望の結果につながるステップまたは命令となるように考案されている。これらの操作またはステップは、物理量の物理的操作を用いるものである。必ずということではないが、通常であれば、これらの量は、コンピュータ・システムまたは計算装置で記憶、転送、結合、比較、あるいは操作可能な電気または磁気信号という形をとる。これらの信号を処理、ビット、値、要素、記号、文字、サンプル、ピクセル等と称することは、主に広く使用されているという理由で、時として便利であるということがわかっている。
【0017】
ただし、これらの用語および同様の用語はすべて、適切な物理量と関連付ける必要があり、これらの量に適用された便利なラベルに過ぎないということを念頭に置くべきである。以下の説明から明らかであるとおり、別段の記載が具体的になされている場合を除き、本開示全体にわたり、「不活性化する」、「無効化する」、「凍結する」、「再活性化する」、「実現する」、「解凍する」、「送信する」、「判断する」、「書き換える」、「応答する」、「生成する」、「作る」、「ブロックする」、「アクセスする」、「スナップショットを撮る」、「関連付ける」、「可能にする」、「更新する」などの用語を使用した説明は、コンピュータ・システムまたは同様の電子計算装置、あるいはプロセッサのアクションおよびプロセスを言及するものと理解される。コンピュータ・システムまたは同様の電子計算装置は、コンピュータ・システム・メモリ、レジスタ、あるいはその他のかかる情報ストレージ、伝送または表示装置内の物理的な(電子的な)量で表されるデータを操作し、変形させる。
【0018】
本システムおよび方法は各種アーキテクチャおよび構成で実装できるとものと理解される。例えば、本システムおよび方法は、分散コンピューティング環境、クラウド・コンピューティング環境、クライアント/サーバー環境、などの一部として実装することができる。本明細書に記載された実施形態は、プログラム・モジュールなど、1つもしくは複数のコンピュータ、計算装置、または他の装置によって実行される何らかの形態のコンピュータ読み取り可能な記憶メディアに存在するコンピュータ実行可能な命令という一般的文脈で説明され得る。非限定的な例として、コンピュータ読み取り可能な記憶メディアは、コンピュータ記憶メディアと通信メディアとを備え得る。一般に、プログラム・モジュールは、特定のタスクを実行するか、あるいは特定の抽象的なデータ型を実装するルーチン、プログラム、オブジェクト、構成要素、データ構造体などを含む。プログラム・モジュールの機能は、各種実施形態において所望どおりに結合あるいは分散され得る。
【0019】
コンピュータ記憶メディアは、コンピュータ読み取り可能な命令、データ構造体、プログラム・モジュール、または他のデータなど、情報を記憶するための任意の方法または技術で実装された揮発性および不揮発性、ならびに着脱可能および着脱不可のメディアを含み得る。コンピュータ記憶メディアは、ランダム・アクセス・メモリ(RAM)、読み取り専用メモリ(ROM)、電気的消去可能ROM(EEPROM)、フラッシュ・メモリ、あるいは他のメモリ技術、コンパクト・ディスクROM(CD−ROM)、デジタル万能ディスク(DVD)、あるいは他の光学ストレージ、磁気カセット、磁気テープ、磁気ディスク・ストレージ、あるいは他の磁気記憶装置)、または所望の情報を記憶する目的で使用でき、かつその情報にアクセスして取得できるその他の任意のメディアを含み得るが、これらに限定されない。
【0020】
通信メディアは、コンピュータ実行可能な命令、データ構造体、プログラム・モジュール、または他のデータを、搬送波あるいは他の移送メカニズムなど変調させたデータ信号内にまとめることができ、任意の情報搬送メディアを含む。「変調させたデータ信号」という用語は、その文字セットのうちの1つもしくは複数を有するか、あるいは信号内の情報を符号化などの方法で変更した信号を意味する。非限定的な例として、通信メディアは、有線ネットワークまたは直接有線接続などの有線メディアと、音響、無線周波(RF)、赤外線および他のワイヤレス・メディアなどのワイヤレス・メディアとを含み得る。上記のいずれの組み合わせも、コンピュータ読み取り可能な記憶メディアの範囲内に含めることができる。
【0021】
例示的なオペレーティング環境
図1は、本発明の一実施形態にかかる例示的なオペレーティング・システムのブロック図を示す。例示的なオペレーティング環境100は、クライアント102a−cと、ネットワーク104と、サーバー106a−bと、ストレージ・エリア・ネットワーク(SAN)・ファブリック108と、ストレージ・アレイ110a−bとを含む。例示的なオペレーティング環境100の構成要素は例示的なものであり、各種構成においては構成要素が多い場合や少ない場合があり得るものと理解される。運用環境は分散コンピューティング環境、クラウド・コンピューティング環境、クライアント/サーバー環境などの一部であり得るものと理解される。
【0022】
クライアント・システム102a−cは、例えば、ウェブ・ブラウザあるいは他の適切なクライアント通信ソフトウェア(図示せず)を使用してサーバー106a−b経由でストレージ・アレイ110a−bにある情報にアクセスする。
図1は、インターネットなど、データを交換するためのネットワーク104を使用している様子を表すが、本開示はインターネットまたはいかなる特定のネットワークベースの環境にも限定されない。
【0023】
サーバー106a−bの各々は、そこに接続された複数のクライアント(クライアント102a−cなど)を有し得る。サーバー106a−bは、データベース・サーバー、ネットワーク・ファイル・システム(NFS)サーバー、およびアプリケーション・サーバー(課金サーバーなど)を含むが、それらに限定されない各種サーバー・タイプであり得る。例えば、アプリケーションおよびサーバーには、数千もの人が異なる箇所からアクセスしてくるため、アプリケーションおよびサーバーは、非常に可用性が高く、クラスタが故障耐性に優れている必要がある。いくつかの実施形態では、サーバー106a−bがストレージ・アレイ110a−bの共有ストレージにアクセスし、サーバー106a−bの各々が、自らのクラスタ化されたそれぞれのファイル・システムと、自身の内蔵ロック・マネージャとを有し、それによってサーバー106a−bは共有ストレージにアクセスすることができる。サーバー106a−bの各々は、(冗長プライベート・ネットワーク)(図示せず)を経て互いに通信し得る。サーバー106a−bは、ファイバー・チャネルを含む様々な方法でストレージ・アレイ110a−bに連係され得る。
【0024】
サーバー106a−bは、ストレージ・アレイ110a−bのストレージを管理するストレージ・マネージャ112a−bをそれぞれ実行する。一実施形態では、ストレージ・マネージャ112a−bがサーバー106a−bの仮想化層経由で稼働し、ストレージ・マネージャ112a−bがストレージに固有の情報(ストレージ・アレイ110a−bについての情報など)を収集してストレージ管理タスクを実行する。例えば、故障時にストレージの可用性を確保するために、ストレージに固有の情報を使用してストレージ・アレイ110a−bの部分を割り当て得る。
【0025】
仮想環境におけるストレージ情報へのアクセス性
本発明の実施形態は、仮想環境にある仮想マシンがストレージ・リソースに関するストレージ属性を利用できるようにする。さらに具体的に言えば、実施形態は、
本来であれば物理アクセス・パス経由でしか利用できない属性を仮想アクセス・パス経由で利用できるようにする。ストレージ属性が利用できることにより、ストレージ管理(ストレージ割り当てなど)を仮想環境内から(例えば仮想マシンを介して)実行できるようになる。実施形態はさらに、仮想マシンが物理アクセスから仮想アクセス・パスへの変更(移行など)を扱えるようにし、それによって物理アクセス・パス経由での稼働時の動作をシームレスに一致させる。実施形態により、仮想環境が物理環境と同じストレージ管理機能を持てるようになる。
【0026】
図2は、本発明の一実施形態にかかる別の例示的なオペレーティング環境のブロック図を示す。例示的なオペレーティング環境200は、仮想マシン202a−bと、仮想化層204と、物理アクセス・パス218と、SANファブリック210とを含む。
【0027】
仮想化層204は、仮想化層204の入出力を処理する仮想入出力(I/O)モジュール206を含む。仮想化層204は、仮想マシン202a−bに仮想化機能(仲介する仮想装置)を提供する。一実施形態では、仮想化層204により、各種ストレージ管理を一元的に行えるようになり、さらには1つのソフトウェアが、ストレージ・アレイのサポート、ハードウェアの再構成、およびI/O負荷(サービスの種類など)のバランス確保を、複数の仮想マシン(仮想マシン202a−bなど)またはオペレーティング・システム全体で管理できるようにもなる。ストレージ218は、仮想アクセス・パス208経由で仮想マシン202a−bにエクスポートされる。
【0028】
仮想I/Oモジュール206は、仮想マシン202a−bからのI/Oリクエストを処理し、SANファブリック210経由でのストレージ218へのアクセスを提供する。一実施形態では、仮想I/Oモジュール206が、仮想アクセス・パス208経由でのストレージ・リソースへのアクセスを仮想マシン202a−bに提供する。
【0029】
仮想マシン202aは、ストレージ・マネージャ212a−bをそれぞれ実行する。ストレージ・マネージャ212a−bは、ストレージ情報エージェント214a−bをそれぞれ含む。一般に、ストレージ情報エージェント214a−bは仮想環境内においてストレージ(エンクロージャなど)に固有の属性を発見する。ストレージ情報エージェント214a−bは、かかるストレージ属性が仮想I/Oモジュール206によって仮想化(例えば隠匿)されるために
本来であれば利用できないストレージ属性を取得する。ストレージ情報エージェント214a−bは、ストレージ・マネージャ212a−bがストレージ属性をそれぞれ利用できるようにする。一実施形態では、ストレージ情報エージェント214a−bにより、仮想マシン202a−bのオペレーティング・システム(図示せず)がストレージ情報をそれぞれ利用できるようにする。ストレージ情報エージェント214a−bによって取得された情報により、仮想アクセス・パス208はストレージ218の装置にアクセスするための転送メカニズムとして機能できるようになる。
【0030】
例えば、仮想アクセス・パス208経由でアクセスできるストレージのストレージ属性を提供することにより、仮想マシン(仮想マシン202a−bなど)は、仮想マシンからは記憶装置が同じように見えるため、ストレージとの接続を失うことなく、(サーバーを統合して電力消費量を減らすなどの目的で)ある物理システムから別の物理システムに移行することができる。すなわち、ストレージ属性により、移行中のI/Oのルーティングの変更を仮想マシンがシームレスに管理できるようになる。
【0031】
ストレージ情報エージェント214a−bは、装置識別情報(ID)、エンクロージャ識別情報(ストレージ・アレイ名、キャビネット番号など)、ストレージのタイプ(ストレージ・アレイ・メーカーなど)、記憶メディアのタイプ(ソリッド・ステート・ドライブ(SSD)、シン・ボリューム、仮想ボリュームなど)、信頼性(低価格ディスク冗長配列(RAID)のタイプなど)、冗長性(ミラーリング、複製、RAIDタイプ、プライマリ・ストレージ、またはスナップショット・ストレージなど)、接続状況、および位置を含む様々なストレージ属性を記憶し得る。SCSI構成では、ストレージ・アレイによってエクスポートされたストレージ・ボリュームのことを論理ユニットと呼び、論理ユニット番号で表す。一実施形態では、ストレージ属性が論理ユニット番号(LUN)の属性に対応する。例えば、LUNは複製リンク(対称リモート・データ機能(SRDF)など)を持つことができ、これによってリモート側でアクセスできるようになる。一実施形態では、物理的なストレージ属性に加え、このストレージ属性も、ボリューム管理が仮想化層204経由で行われる実施形態向けのボリューム属性を含む。
【0032】
好都合なことに、ストレージ情報エージェント214a−bによって利用できるようになったストレージ属性により、様々なストレージ管理機能がストレージ・マネージャ212a−b経由で実行できるようになる。ストレージ属性が利用できるようになったことにより、そのストレージが使用されているアプリケーションの要件に基づいたストレージ管理ができるようになる。さらには、ストレージ属性により、ストレージをインテリジェントに割り当てられるようにもなる。仮想環境でサポートされるストレージ管理機能は、故障領域の割り当ておよびエンクロージャの分離と、ストレージの動的な階層化と、装置の命名とを含む。
【0033】
一実施形態では、このストレージ属性により、エンクロージャの分離および故障領域またはグループの割り当てがしやすくなる。ストレージ・アレイまたはエンクロージャは故障する可能性がある(電力損失、接続損失など)ことから、ストレージ・アレイは、ストレージ・ミラーリングまたは他の冗長機能が別々になるような箇所に基づいて選択するのが望ましい。ストレージ属性は、ストレージのどの部分(キャンパス・クラスタ情報など)が各々のエンクロージャまたは箇所のものであるかを示すので、故障領域への割り当て用ストレージを選択するに当たり、ストレージ情報エージェント214a−bからのストレージ属性により、ストレージ・アレイの様々な部分(LUNなど)を異なる故障領域またはグループに割り当てられるようになる。例えば、ストレージ管理者は、LUNを2つの異なるエンクロージャから選択すればよく、それにより、他のエンクロージャで故障が発生した場合でも1つのエンクロージャにアクセスできるようになる。ストレージ属性は、故障グループ全体での構成データベースの分散とキャンパス・クラスタ環境におけるサイト検出とをサポートするための情報をさらに含み得る。
【0034】
ストレージ属性は、異なる階層を構築し、信頼性および性能の違いに基づいて階層同士を区別する目的で使用され得ることから、ストレージを動的に階層化する目的でも使用され得る。ストレージ情報エージェント214a−bは、通常であれば仮想アクセス・パス208経由で実施できないストレージの動的な階層化をしやすくするものと理解される。
【0035】
一実施形態では、ストレージ情報エージェント214a−bを介して視認可能なストレージ属性が、(エンクロージャベースの命名(EBN)およびアレイ・ボリュームIDなどに基づいた)物理ストレージ名を含めることによってストレージの使いやすさを高める。本発明の実施形態によれば、このように物理ストレージ名の可視性により、仮想マシン202a−bによって視認可能なストレージ・ボリュームの名前(LUNなど)をストレージ218に連結された計算システムと整合させることができる。例えば、ストレージがストレージ管理者によって管理され得る一方で、サーバーは管理されたサーバーによって管理され、一貫したストレージ名を使用することにより、サーバー管理者とストレージ管理者との間での通信中に、(トラブルシューティング、LUNの割り当て、ストレージのプロビジョニングなどを目的とした)記憶装置の識別を容易に行うことができる。ストレージ名は、LUNのタイプなど様々な情報を含み得る。一実施形態では、ストレージ属性が、ホストに依存しない識別名を含む。
【0036】
図3は、本発明の一実施形態にかかる仮想I/Oモジュールにおける例示的な構成要素のブロック図を示す。例示的な仮想環境300は、仮想I/Oモジュール306を含む仮想化層304を含む。仮想I/Oモジュール306は、(例えば仮想マシン202a−bにストレージへのアクセスを提供する)仮想アクセス・パス308を含む。
【0037】
仮想環境は、装置を仮想マシンにエクスポートする複数の方法を有し得る。一実施形態では、仮想アクセス・パス308がブロック・デバイス・インターフェイス310を含む。ブロック・デバイス310は、(例えばSANファブリック210を経由する)ストレージへのアクセスを提供する目的で、仮想アクセス・パス308経由で仮想I/Oモジュールによって使用される。ブロック・デバイス310は、ストレージを仮想化する仮想化されたインターフェイスを提供し、それによってストレージに固有の情報を隠匿する。別の実施形態では、仮想アクセス・パス308が仮想装置モジュール312を含む。仮想装置モジュール312は、仮想データでコマンド(小型コンピュータ・システム・インターフェイス(SCSI)コマンドなど)に応答し、このようにしてストレージに固有の情報を隠匿する。
【0038】
図4は、本発明の一実施形態にかかる、プラットフォームに固有のクエリに基づいてストレージ情報が判断される例示的な仮想環境のブロック図を示す。例示的な仮想化されたシステム400は、仮想マシン402と、仮想化層404と、ストレージ414とを含む。
【0039】
仮想化層404は、ストレージ414へのアクセスを提供する仮想I/Oモジュール412を含む。仮想I/Oモジュール412は、仮想アクセス・パス410経由でのストレージ414へのアクセスを仮想マシン402に提供する。ストレージ414は、(例えばSCSI構成における)ストレージ・ボリュームを表す論理ユニット番号(LUN)416a−dを含む。本発明の実施形態は他のストレージ構成でも稼働し得るものと理解される。
【0040】
仮想マシン402は、ストレージ情報エージェント406を実行する。一実施形態では、ストレージ情報エージェント406がプラットフォーム・クエリ・モジュール408を含む。プラットフォーム・クエリ・モジュール408は、仮想化層402のオペレーティング・システム/プラットフォームに基づいて、仮想アクセス・パス410経由で利用できるストレージの具体的な問い合わせページにクエリを出す。プラットフォーム・クエリ・モジュール408からのクエリは、仮想I/Oモジュール412が、ストレージ414の対応する問い合わせページに記憶された情報(ストレージ属性など)で以て応答する具体的な問い合わせページを含み得る。例えば、あるプラットフォームは、バックエンド装置(ストレージ414など)についての情報を提供する具体的なSCSI問い合わせページを提供し得る。ストレージ情報エージェント406は、このようにプラットフォーム・クエリ・モジュール408を使用して、物理ストレージによってバックアップされるLUNについての有用なストレージ情報を取得することができる。別の実施例として、New YorkのInternational Business Machines of Armonkより市販されているAdvanced Interactive eXecutive(AIX)環境では、ページ0xFF、0xFE、および0xFDのプラットフォーム・クエリ・モジュール408からのクエリが、ストレージ情報を含む仮想I/Oモジュール412からストレージ414のページ83、80、0のデータを返す。いくつかの実施形態では、ストレージ属性が仮想アクセス・パス410経由で受信されるものと理解される。
【0041】
図5は、本発明の別の実施形態にかかる、バックエンド・エージェントとの通信に基づいてストレージ情報が判断される別の例示的な仮想環境のブロック図を示す。例示的な仮想化されたシステム500は、仮想マシン502と、仮想化層504と、ストレージ514とを含む。
【0042】
仮想化層504は、ストレージ512へのアクセスを提供する仮想I/Oモジュール514を含む。仮想I/Oモジュール512は、仮想アクセス・パス514経由でのストレージ510へのアクセスを仮想マシン502に提供する。ストレージ514は、(例えばSCSI構成における)ストレージ・ボリュームを表す論理ユニット番号(LUN)516a−dを含む。本発明の実施形態は他のストレージ構成でも稼働し得るものと理解される。
【0043】
仮想マシン502は、ストレージ情報エージェント506を実行する。一実施形態では、ストレージ情報エージェント506が、仮想I/Oモジュール512のバックエンド・エージェント518と通信可能に連結されている。一実施形態では、ストレージ情報エージェント506が、バックエンド・エージェント518からストレージ属性を取得するために、バックエンド・エージェント518との通信チャネルを確立する。ストレージ情報エージェント506およびバックエンド・エージェント518は、クライアント/サーバー・モードをそれぞれ含む各種周知の方法で稼働し得るものと理解される。
【0044】
一実施形態では、バックエンド・エージェント518が、ストレージ情報エージェント506からの具体的な命令(構成装置における入出力制御(ioctl)またはI/Oなど)に応答し、実際のストレージ(LUN 516a−dなど)についてのストレージ属性を提供する。バックエンド・エージェント518は、仮想化層504における仮想ボリュームによってバックアップされるLUNにストレージ属性を提供することもできる。一実施形態では、仮想I/Oモジュール512がブロック・デバイス・インターフェイス(ブロック・デバイス・インターフェイス310など)を含む場合にバックエンド・エージェント518が使われる。バックエンド・エージェント518はさらに、(ストレージ514にクエリを出すなどして)ストレージ514からストレージ情報を取得し、ストレージ情報を、仮想アクセス・パス510経由でアクセス可能な仮想装置と相関させ、ストレージ属性をストレージ情報エージェント506a−cに提供することができる。
【0045】
図6は、本発明の別の実施形態にかかる、管理下ホストと管理ホストとを含む別の例示的な仮想環境のブロック図を示す。例示的な仮想化されたシステム600は、仮想マシン602a−cと、仮想化層604と、ストレージ614とを含む。
【0046】
仮想化層604は、ストレージ614へのアクセスを提供する仮想I/Oモジュール612を含む。仮想I/Oモジュール612は、仮想アクセス・パス610経由でのストレージ614へのアクセスを仮想マシン602a−cに提供する。ストレージ614は、(例えばSCSI構成における)ストレージ・ボリュームを表す論理ユニット番号(LUN)616a−dを含む。本発明の実施形態は他のストレージ構成でも稼働し得るものと理解される。
【0047】
仮想マシン602a−cは、ストレージ情報エージェント606a−cを実行する。一実施形態では、ストレージ情報エージェント606a−cが、仮想I/Oモジュール612の管理ホスト・エージェント618と通信可能に連結されている。一実施形態では、仮想マシン602a−cが、管理ホスト・エージェント618によって管理される管理下ホストである。管理ホスト・エージェント618は、仮想マシン602a−c間でのレポートおよび制御アクティビティなど様々なアクティビティを管理し得る。仮想マシン602a−cは、1台の物理計算システムまたは複数の物理計算システム上で稼働し得るものと理解される。管理ホスト・エージェント618は、仮想マシン602a−cとは別の物理計算システムに存在し得るものとさらに理解される。
【0048】
ストレージ情報エージェント606a−cは、管理ホスト・エージェント618にストレージ属性をリクエストし得る。管理ホスト・エージェント618は、(ストレージ614にクエリを出すなどして)ストレージ614からストレージ情報を取得し、ストレージ情報を、仮想アクセス・パス610経由でアクセス可能な仮想装置と相関させ、ストレージ属性をストレージ情報エージェント606a−cに提供することができる。管理ホスト・エージェント618は、物理ストレージ(ストレージ614など)のLUN、および仮想アクセス・パス610経由でアクセス可能なボリュームの相関を実行し得るものと理解される。
【0049】
図7は、本発明の一実施形態にかかる、管理下ホストと、仮想I/Oモジュールとは別の管理ホストとを含む例示的な仮想環境のブロック図を示す。一実施形態では、例示的な仮想環境700が例示的な仮想環境600と同様である。例えば、仮想マシン702a−c、仮想化層704、およびストレージ714は、仮想マシン602a−c、仮想化層604、およびストレージ614と同様である。管理ホスト・エージェント718が仮想I/Oモジュール712とは別の管理ホスト720に含まれるという点を除き、が仮想I/Oモジュール712は管理ホスト・サポート・エージェント722を含む。
【0050】
管理ホスト720は、仮想I/Oモジュール712の管理ホスト・サポート・エージェント722経由でストレージ情報を取得する管理ホスト・エージェント718を含む。管理ホスト720は、別の計算システム(例えばサーバー106a−bのうちの1つ)、あるいは仮想I/Oモジュール712とは別(例えば仮想化層704とは別)の仮想化層に存在し得る。管理ホスト・エージェント718は、管理ホスト・サポート・エージェント722にストレージ属性(LUN属性および装置IDなど)をリクエストし、管理ホスト・サポート・エージェント722はストレージ714にストレージ属性をリクエストし得る。一実施形態では、管理ホスト・エージェント718が、受信したストレージ属性を使用して、装置IDに基づき相関を実行する。
【0051】
図8および9を参照すると、例示的なフローチャート800および900は、本発明の各種実施形態によって使用されるプロセス例を表している。フローチャート800および900には具体的なブロックが開示されているが、かかるブロックは例示的なものである。すなわち、実施形態は、他の各種ブロック、あるいはフローチャート800および900に記載されたブロックの変形を実行するのに適している。フローチャート800および900のブロックは、提示された順序とは異なる順序で実行されてもよく、フローチャート800および900のブロックの全てが実行されなくてもよいものと理解される。フローチャート800および900は、各種実施形態で、コンピュータ読み取り可能かつコンピュータ実行可能な命令の制御下にあるプロセッサによって実行されるプロセスを含む。本発明の実施形態は、このように、ファームウェア・アップデート、ソフトウェア・アップデート・パッケージ、またはハードウェア(ROMなど)を含むがこれらに限定されないコンピュータ読み取り可能なメディアあるいはコンピュータ実行可能な命令として記憶され得る。
【0052】
図8は、本発明の実施形態にかかる、仮想環境でストレージ情報にアクセスするためのプロセスの例示的なフローチャートを示す。
【0053】
ブロック802で、ストレージ情報(ストレージ属性など)に対応する問い合わせページにおけるストレージに固有の箇所がリクエストされる。本明細書に記載のとおり、仮想マシンのストレージ情報エージェントは、ストレージ属性を含むそれらのページの情報で以て応答する仮想I/Oモジュールに(例えば具体的な問い合わせページを含む)リクエストを出し得る。次にブロック810が実行され得る。
【0054】
ブロック804で、通信チャネルが確立される。本明細書に記載のとおり、この通信チャネルは、仮想マシン(ストレージ情報エージェントなど)と仮想I/Oモジュール(バックエンド・エージェントなど)との間で確立され得る。
【0055】
ブロック806で、情報がリクエストされる。本明細書に記載のとおり、このリクエストは、ストレージ属性を取得するために仮想I/Oモジュール(仮想I/Oモジュール512など)の構成要素(バックエンド・エージェント518)に出され得る。次にブロック810が実行され得る。
【0056】
ブロック808で、管理ホストにストレージ情報がリクエストされる。本明細書に記載のとおり、ストレージ情報エージェントは、管理ホスト・エージェント(管理ホスト・エージェント618など)にストレージ属性をリクエストし得る。
【0057】
ブロック810で、ストレージ情報が受信される。本明細書に記載のとおり、このストレージ情報は、装置名、信頼性、物理エンクロージャの性質、および冗長性情報などのストレージ属性を含む。
【0058】
ブロック812で、このストレージ情報が記憶される。本明細書に記載のとおり、このストレージ情報は、仮想環境内で(例えば仮想マシンから)ストレージ管理タスクを実行する際に使用できるように記憶される。
【0059】
図9は、本発明の別の実施形態にかかる、ストレージ情報を仮想環境でアクセスあるいは視認できるようにするための別のプロセスの例示的なフローチャートを示す。
【0060】
ブロック902で、ストレージ情報を求めるリクエストが仮想マシンから送信される。本明細書に記載のとおり、このリクエストは、仮想マシンのストレージ属性にアクセスできるようにするためにストレージ情報エージェントから送信され得る。
【0061】
ブロック904で、ストレージ情報が受信される。本明細書に記載のとおり、このストレージ情報は、仮想I/Oモジュールから送信され得ると共に、仮想マシンからストレージを管理する際に使用する目的で稼働可能な各種ストレージ属性を含み得る。
【0062】
ブロック906で、このストレージ情報が記憶される。本明細書に記載のとおり、このストレージ情報は、仮想マシンで稼働しているストレージ管理アプリケーション(ボリュームおよび割り当て管理、ストレージの動的な階層化、または故障グループ・アプリケーションなど)経由でアクセス可能なストレージであり得る。
【0063】
ブロック909で、ストレージ管理タスクで使用するストレージ情報が提示される。一実施形態では、このストレージ情報が、ストレージ管理タスクを実行するためのグラフィカル・ユーザー・インターフェイスを介して提示される。
【0064】
図10は、本発明の一実施形態にかかる例示的なコンピュータ・システム・モジュール1000のブロック図を示す。
図10を参照すると、実施形態を実装するための例示的なシステム・モジュールは、汎用計算システム環境(計算システム環境1000など)を含む。計算システム環境1000は、サーバー(サーバー106a−bなど)、デスクトップ・コンピュータ、ラップトップ、タブレットPC、モバイル装置およびスマートフォンを含み得るが、これらに限定されない。その最も基本的な構成では、計算システム環境1000が一般に、少なくとも1つの処理ユニット1002とコンピュータ読み取り可能な記憶メディア1004とを含む。計算システム環境の構成およびタイプによっては、コンピュータ読み取り可能な記憶メディア1004は、揮発性(RAMなど)、不揮発性(ROM、フラッシュ・メモリなど)、あるいはこの2つの何らかの組み合わせであってもよい。コンピュータ読み取り可能な記憶メディア1004のある部分は、実行されると、フェールオーバーの対象(プロセス700および800など)の選択を実行する。
【0065】
加えて、計算システム環境1000は、他にも特徴/機能を有し得る。例えば、計算システム環境1000は、磁気または光学ディスクまたはテープを含むがこれらに限定されない追加ストレージ(着脱可能および/または着脱不可)を含み得る。かかる追加ストレージが、着脱可能ストレージ1008および着脱不可ストレージ1010によって
図10に示されている。コンピュータ記憶メディアは、コンピュータ読み取り可能な命令、データ構造体、プログラム・モジュール、または他のデータなど、情報を記憶するための任意の方法または技術で実装された揮発性および不揮発性、ならびに着脱可能および着脱不可のメディアを含む。コンピュータ読み取り可能なメディア1004、着脱可能ストレージ1008、および着脱不可ストレージ1010はすべて、コンピュータ記憶メディアの例である。コンピュータ記憶メディアは、RAM、ROM、EEPROM、フラッシュ・メモリまたは他のメモリ技術、CD−ROM、デジタル万能ディスク(DVD)または他の光学ストレージ、磁気カセット、磁気テープ、磁気ディスク・ストレージまたは他の磁気記憶装置、あるいは所望の情報を記憶する目的で使用でき、かつ計算システム環境1000によってアクセスできるその他任意のメディアを含むが、これらに限定されない。かかる任意のコンピュータ記憶メディアは、計算システム環境1000の一部であってもよい。
【0066】
計算システム環境1000は、他の装置と通信できる通信接続1012も含み得る。通信接続1012は、通信メディアの一例である。通信メディアは、コンピュータ読み取り可能な命令、データ構造体、プログラム・モジュールあるいは他のデータを、搬送波または他の移送メカニズムなど変調させたデータ信号にまとめるのが一般的であり、任意の情報搬送メディアを含む。「変調させたデータ信号」という用語は、その文字セットのうちの1つもしくは複数を有するか、あるいは信号内の情報を符号化などの方法で変更した信号を意味する。非限定的な例として、通信メディアは、有線ネットワークまたは直接有線接続などの有線メディアと、音響、RF、赤外線および他のワイヤレス・メディアなどのワイヤレス・メディアとを含む。本明細書で使用されるコンピュータ読み取り可能なメディアという用語は、記憶メディアと通信メディアとを含む。
【0067】
通信接続1012により、計算システム環境1000は、ファイバー・チャネル、小型コンピュータ・システム・インターフェイス(SCSI)、Bluetooth(登録商標)、イーサネット(登録商標)、Wi−fi、赤外線データ協会(IrDA)、ローカル・エリア・ネットワーク(LAN)、ワイヤレス・ローカル・エリア・ネットワーク(WLAN)、インターネット、シリアル・バス、およびユニバーサル・シリアル・バス(USB)などのワイド・エリア・ネットワーク(WAN)を含むがこれらに限定されない各種ネットワーク・タイプを経て通信することができる。通信接続1012が接続する各種ネットワーク・タイプは、伝送制御プロトコル(TCP)、インターネット・プロトコル(IP)、リアルタイム・トランスポート・プロトコル(RTP)、リアルタイム・トランスポート制御プロトコル(RTCP)、ファイル転送プロトコル(FTP)、およびハイパーテキスト転送プロトコル(HTTP)を含むがこれらに限定されない複数のネットワーク・プロトコルを実行し得るものと理解される。
【0068】
計算システム環境1000は、入力装置1014(キーボード、マウス、ペン、音声入力装置、タッチ入力装置、リモート・コントロールなど)を有し得る。ディスプレイ、スピーカなどの出力装置1016も含まれ得る。これらの装置は当該技術においてすべて周知であり、詳しく説明されていない。
【0069】
一実施形態では、コンピュータ読み取り可能な記憶メディア1004が、仮想化層モジュール1005と仮想マシン・モジュール1006とを含む。仮想化層モジュール1005は、ストレージ・アクセス・モジュール1030を含む。ストレージ・アクセス・モジュール1030は、(例えば仮想アクセス・パス経由での)
ストレージへのアクセスを仮想マシン・モジュール100
6に提供する。
【0070】
一実施形態では、仮想マシン1006が仮想マシン・モジュールとして実行される。仮想マシン・モジュール1006は、ストレージ・マネージャ・モジュール1018を含む。ストレージ・マネージャ・モジュール1018は、ストレージ管理タスク(ストレージの動的な階層化、ストレージ割り当てなど)を実行しやすくする。ストレージ・マネージャ・モジュール1018は、ストレージ・マネージャ・モジュール1018が仮想化環境で使用されるときにストレージ情報を提供することにより、ストレージ・マネージャ・モジュール1018がストレージ管理タスクを実行できるようにするストレージ情報エージェント・モジュール1020を含む。ストレージ情報エージェント・モジュール1020は独立していてもよく、あるいはストレージ管理モジュール1018とは別であってもよいものと理解される。
【0071】
一実施形態では、ストレージ情報モジュール1020が、プラットフォーム問い合わせモジュール1022と、一元管理エージェント・インターフェイス・モジュール1024と、バックエンド・エージェント・インターフェイス・モジュール1026とを含む。本明細書に記載のとおり、プラットフォーム・クエリ・モジュール1022は
、ストレージ・アクセス・モジュール1030(仮想I/Oモジュールなど)に
対して、ストレージ属性を求めて、特定のクエリを出
すことができる。一元管理エージェント・インターフェイス・モジュール1024は、一元管理エージェント(管理ホスト・エージェント618など)にリクエストすることによってストレージ属性を取得し得る。バックエンド・エージェント・インターフェイス・モジュール1026は、ストレージ・アクセス・モジュール1030(バックエンド・エージェント518など)のエージェントにストレージ属性をリクエストすることによってストレージ属性を取得し得る。
【0072】
このように、本発明の実施形態は、仮想環境にある仮想マシンがストレージ属性(記憶装置に固有の情報など)を利用できるようにするための方法およびシステムを提供する。実施形態は、プラットフォームに固有のクエリと仮想ストレージ・アクセス・モジュールへのクエリとを含む様々な方法を利用して、仮想マシンにストレージ情報をもたらす。
【0073】
以上の記載内容は、具体的な実施形態を参照しながら説明目的で記載したものである。ただし、上記の例示的な説明は、すべてを網羅したり、本発明を開示された正確な形態に制限したりすることを意図していない。上記教示を鑑みて多くの改変および変形が可能である。これらの実施形態は、本発明およびその実践的な応用例を最もよく説明し、それによって他の当業者が、意図された特定の用途に適し得る各種改変を用いて本発明および各種実施形態を最良に活用できるようにするために選択および記載されたものである。