(57)【特許請求の範囲】
【請求項１】
複数の共有されたコンピュータリソースにおけるリソース毎に異なる品質に基づいて、物理的コンピュータ上の優先度が付与されたアプリケーションに提供されたサービスの品質を最適化するためのコンピュータ実施方法であって、
品質格付けを、周期アセスメントに基づいて、複数の共有されたコンピュータリソースのそれぞれ１つに動的に割り当てることであって、各共有されたコンピュータリソースが、物理的コンピュータ上で走っている多重アプリケーションによってアクセス可能である、品質格付けを割り当てることと、
前記物理的コンピュータ上で走っている特定のアプリケーションによって作成された、共有されたコンピュータリソースに対する要求を受信することであって、各特定のアプリケーションが優先度を有する、要求を受信することと、
各特定の受信した要求に対して、前記特定の要求しているアプリケーションの現在の優先度を同定することと、
各特定の受信した要求への応答において、前記特定の要求しているアプリケーションの現在の優先度と、特定の共有されたコンピュータリソースの現在の品質格付けとに基づいて、特定の共有されたコンピュータリソースを、前記特定の要求しているアプリケーションに割り当てて、それによって、それらの現在の優先度に相当する要求しているアプリケーションに、サービスの品質を提供することと、を含む方法。
【請求項２】
前記物理的コンピュータ上で走っている前記多重アプリケーションにさらに、単一ホスト上で走っている複数のバーチャル機械が含まれる、請求項１に記載の方法。
【請求項３】
前記物理的コンピュータ上で走っている前記多重アプリケーションのそれぞれにさらに、単一ホスト上で走っている特定のバーチャル機械上で走っているアプリケーションが含まれる、請求項１に記載の方法。
【請求項４】
前記複数の共有されたコンピュータリソースのそれぞれ１つにさらに、仮想化を促進することにおいて、前記物理的コンピュータ上で走っている多重アプリケーション間で共有されるリソースが含まれる、請求項１に記載の方法。
【請求項５】
さらに、
前記複数の共有されたコンピュータリソースのそれぞれ１つを定期的に評価することと、
特定の共有されたコンピュータリソースの現在の状態に基づいて、特定の評価された共有されたコンピュータリソースに対して、特定の現在の品質格付けを決定することと、
前記特定の共有されたコンピュータリソースに対して、前記現在の品質格付けを割り当てることと、を含む、請求項１に記載の方法。
【請求項６】
少なくとも１つの割り当てられた品質格付けが、特定の型の共有されたコンピュータリソースについての複数の定性因子を定量化する、請求項１に記載の方法。
【請求項７】
少なくとも１つの割り当てられた品質格付けが、特定の共有されたコンピュータリソースに関する、複数の定性因子を定量化する、請求項１に記載の方法。
【請求項８】
少なくとも１つの割当てられた品質格付けにさらに、特定の共有されたコンピュータリソースの総品質の、単一の定量化が含まれる、請求項１に記載の方法。
【請求項９】
特定のアプリケーションの優先度にさらに、前記物理的コンピュータ上で走っている他のアプリケーションに対して、特定のアプリケーションに現在提供されるべきサービスの品質の示唆が含まれる、請求項１に記載の方法。
【請求項１０】
特定の要求しているアプリケーションの優先度を同定することに、さらに、
共有されたコンピュータリソースに対して特定の受信された要求に対応付けられる、前記特定のアプリケーションを同定することと、
前記特定のアプリケーションの現在の優先度を取り込むことと、が含まれる、請求項１に記載の方法。
【請求項１１】
特定のアプリケーションによって作成された共有されたコンピュータリソースに対する要求を受信することにさらに、特定の記憶装置デバイスを標的としている入力／出力（ＩＯ）操作を開始するために、要求を受信することが含まれ、
複数の共有されたコンピュータリソースにさらに、前記特定の記憶装置デバイスをアクセスするための複数のキューが含まれ、前記複数の各キューが、互いに異なるレベルの品質格付けを伴って、特定の記憶装置デバイスをアクセスするために構成され、
特定の要求しているアプリケーションに対して、特定の共有されたコンピュータリソースを割り当てることにさらに、前記特定の要求しているアプリケーションに対して、キューの特定の１つを割り当てることが含まれる、請求項１に記載の方法。
【請求項１２】
前記物理的コンピュータ上で走っている特定のアプリケーションによって作成された共有されたコンピュータリソースに対する要求を受信することにさらに、
マルチパスされた記憶装置デバイスにアクセスするために、特定のアプリケーションに基づいて作成された要求を、マルチパス構成要素において受信すること、が含まれる、請求項１に記載の方法。
【請求項１３】
前記複数の共有されたコンピュータリソースがさらに、ｉ）物理的記憶装置への多重パスの特定の１つにアクセスするための複数のキューと、ｉｉ）物理的記憶装置への複数のパスと、を含み、
複数の共有されたコンピュータリソースのそれぞれ１つに、品質格付けを割り当てることにさらに、ｉ）複数のキューに対して特定のレベルの品質格付けを割り当てることが含まれ、又はｉｉ）各特定の品質格付けが、特定のパスの品質の定量化として、複数の特定のパスに割り当てられる、請求項１２に記載の方法。
【請求項１４】
複数の共有されたコンピュータリソースにおけるリソース毎に異なる品質に基づいて、物理的コンピュータ上の優先度が付与されたアプリケーションに提供された、サービスの品質を最適化するための、少なくとも１つの非一過性コンピュータ読み取り可能記憶装置媒体であって、コンピュータメモリ内にロードし、コンピュータデバイスの少なくとも１つのプロセッサによって実行した時に、前記コンピュータデバイスが、以下の段階、
品質格付けを、周期的アセスメントに基づいて、複数の共有されたコンピュータリソースのそれぞれ１つに動的に割り当てることであって、各共有されたコンピュータリソースが、物理的コンピュータ上で走っている多重アプリケーションによってアクセス可能である、品質格付けを割り当てることと、
前記物理的コンピュータ上で走っている特定のアプリケーションによって作成された、共有されたコンピュータリソースに対する要求を受信することであって、各特定のアプリケーションが優先度を有する、要求を受信することと、
各特定の受信された要求に対して、特定の要求しているアプリケーションの現在の優先度を同定することと、
各特定の受信された要求への応答において、前記特定の要求しているアプリケーションの現在の優先度と、特定の共有されたコンピュータリソースの現在の品質格付けとに基づいて、特定の共有されたコンピュータリソースを、前記特定の要求しているアプリケーションに割り当て、それによって、それらの現在の優先度に相当する要求しているアプリケーションに、サービスの品質を提供することと、を実施することを引き起こす、コンピュータ実行可能命令を記憶している、少なくとも１つの非一過性コンピュータ読み取り可能記憶装置媒体。
【請求項１５】
複数の共有されたコンピュータリソースにおけるリソース毎に異なる品質に基づいて、物理的コンピュータ上の優先度が付与されたアプリケーションに提供されたサービスの品質を最適化するためのコンピュータシステムであって、
システムメモリと、
前記システムメモリ内に存在している品質格付け割当モジュールであって、周期的アセスメントに基づいて、複数の共有されたコンピュータリソースのそれぞれ１つに対して、品質格付けを動的に割り当てるためにプログラムされ、各共有されたコンピュータリソースが、多重アプリケーションによってアクセス可能である、品質格付け割当モジュールと、
前記システムメモリ内に存在している要求受信モジュールであって、特定のアプリケーションによって作成された共有コンピュータリソースに対する要求を受信するためにプログラムされ、各特定のアプリケ−ションが優先度を有する、要求受信モジュールと、
前記システムメモリ内に存在している優先度同定モジュールであって、各特定の受信された要求に対して、前記特定の要求しているアプリケーションの現在の優先度を同定するようにプログラムされる、優先度同定モジュールと、
前記システムメモリ内に存在しているリソース割当モジュールであって、各特定の受信された要求への応答において、前記特定の要求しているアプリケーションの現在の優先度と、特定の共有されたコンピュータリソースの現在の品質格付けとに基づいて、特定の共有されたコンピュータリソースを、特定の要求しているアプリケーションに割り当て、それによって、それらの現在の優先度に相当する要求しているアプリケーションに、サービスの品質を提供するようにプログラムされる、リソース割当モジュールと、を含む、コンピュータシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、一般に、コンピュータデバイスバーチャル化、より詳細には優先度が付与されたバーチャル機械へ最適化されたサービス品質を提供すること、及び共有されたコンピュータリソースの様々な品質に基づくアプリケーションに関する。
【背景技術】
【０００２】
クラスタは、個々のシステム構成要素が失敗したときに、継続したサービスを提供するための、重複するコンピュータリソースの群を利用するコンピュータの群である。より詳細には、クラスタは、多重サービス、多重ネットワークコネクション、重複データ記憶装置などを提供することによって、失敗の単一点を除去する。クラスタリングシステムはしばしば、ジャーナルファイルシステム、論理的ボリュームマネージメント、マルチパス入力／出力（Ｉ／Ｏ）機能性などのような、更なる有用な特徴を提供する記憶装置マネージメント製品と組み合わせられる。例えば、バーチャルディスクデバイスが、Ｉ／Ｏのイニシエータに対して利用可能とされる、Ｖｅｒｉｔａｓ  Ｖｏｌｕｍｅ  Ｍａｎａｇｅｒや、Ｄｙｎａｍｉｃ  Ｍｕｌｔｉｐａｔｈｉｎｇのような、いくつかの記憶装置マネージメント製品が、マルチパス化記憶装置デバイスを支持し、そこで多重物理的パスが、バーチャルディスクと、内在物理的記憶装置との間に存在する。
【０００３】
高利用性クラスタリングシステムにおいて、サーバの（又は、ネットワークアダプタ、記憶装置デバイスなどのような、それによって使用される特定のコンピュータリソースの）失敗が検出され、失敗したサーバ上で走っていたアプリケーションが、自動的に他のコンピュータシステム上で再度開始される。この工程は、「障害迂回」と呼ばれる。高利用性クラスタリングシステムはまた、アプリケーション自身の失敗も検出可能であり、アプリケーションを他のノードに障害迂回する。実質的に、高利用性クラスタリングシステムは、アプリケーションが高い利用性を維持することを確かにするために、アプリケーション、アプリケーションが走っているサーバ、及びアプリケーションによって使用されたリソースをモニタする。クラスタは、種々のレベルの利用性を補償する、サービスレベル合意にしたがって、カスタマーに対してアプリケーションを提供するために使用可能である。
【０００４】
コンピュータデバイスのバーチャル化が、高利用性クラスタリングにおいて、及び他の文脈において利用可能である。１つ又はそれ以上のバーチャル機械（ＶＭｓ又はゲスト）が、各ＶＭがその固有のオペレーティングシステム実例を走らせるように、物理的コンピュータ（ホストコンピュータ又はホスト）上、ソフトウェアレベルで例示化可能である。データベースのようなサーバアプリケーションを含む、ちょうどソフトウェアアプリケーションのように、エンタープライズマネージメントソリューション及びｅ−コマースウェブサイトは、物理的コンピュータ上で走らせることが可能であり、そしてまたこれらのアプリケーションは、バーチャル機械上で走らせることが可能である。ＶＭｓの高利用性クラスタが構築可能であり、その中で、高利用性クラスタリングシステムによってモニタされているアプリケーションが、走り、物理的サーバとは反対に、ＶＭｓ間で障害迂回する。
【０００５】
いくつかのバーチャル化シナリオにおいて、しばしばハイパーバイザと呼ばれるソフトウェア構成要素が、ゲストの機能のいくつか、又は全てに対して、ゲストと、ホストオペレーティングシステムとの間のインタフェースとして働きうる。他のバーチャル化実行において、物理的、ホストコンピュータ上で走っている、内在ホストオペレーティングシステムは存在しない。これらの状況において、ハイパーバイザは、その最上でゲストが走る、ホストオペレーティングシステムとして機能する効果において、ゲストと、ホストコンピュータのハードウェア間のインタフェースとして働く。ホストオペレーティングシステムが存在する場合でさえも、ハイパーバイザは時々、特定のサービスに対して、ハードウェアと直接インタフェース接続する。いくつかのバーチャル化シナリオにおいて、ホストそれ自身は、もう一つのホスト上で走っているゲスト（すなわちバーチャルホスト）の形状である。
【０００６】
ハイパーバイザは、ＶＭｓからのリソースに対する要求を受信し、ＣＰＵ、メモリ、Ｉ／Ｏバンド幅、Ｉ／Ｏチャネル、記憶装置、性能ブーストキャッシュ、複製リンクなどのような共有されたリソースを割り付ける。記憶装置マネージメント環境において、マルチパスされた記憶装置もまた、ＶＭｓ又はホスト間で共有可能でもある。従来のハイパーバイザは、リソースの異なる共有を異なるＶＭｓに割り付けることが可能であるけれども、従来のハイパーバイザは、与えられた型の全ての利用可能なリソース（例えばＣＰＵ、メモリ及び／又はＩ／Ｏチャネル）を、同様に、そして、実質的に同一の方法で操作するように取り扱う。これは、種々のサービス品質を、それぞれの優先度、又はカスタマーとの内在サービスレベル合意に基づいて、異なるＶＭｓ及びアプリケーションに提供可能である程度を制限する。
【０００７】
この問題に対処することが望ましい。
【発明の概要】
【課題を解決するための手段】
【０００８】
サービス品質が、種々の品質の異なる共有されたコンピュータリソースに基づいて、コンピュータ上の優先度が付与されたＶＭｓ又は他のアプリケーションに提供される。それぞれのＶＭ又はアプリケーションは、優先度を有し、これは、他のＶＭｓ又はアプリケーションに対して提供されるべき、サービス品質を示唆可能である。共有されたコンピュータリソースは、多重ＶＭｓ又はアプリケーションによってアクセス可能である。共有されたコンピュータリソースは、例えばバーチャル化を促進するために、単一のコンピュータ上で走っている、多重ＶＭｓ又はアプリケーション間で共有可能である。品質格付けが、それぞれの共有されたコンピュータリソースに割り当てられる。いくつかの実施形態において、品質格付けには、特定の共有されたコンピュータリソースの総品質の単一定量化が含まれる。割り当てられた品質格付けはまた、特定の型の共有されたコンピュータリソース、又は共有されたコンピュータリソースの特定の例についての、複数の定性因子を定量化可能である。共有されたコンピュータリソースは、それらの現在の状況に基づいた現在の品質格付けを決定するために、定期的に評価可能である。現在の品質格付けをついで、共有されたコンピュータリソースに割り当てる。
【０００９】
特定のＶＭｓ又はアプリケーションによって作成された共有されたコンピュータリソースに対する要求が受信される。例えば、受信された要求は、例えばバーチャルディスクにアクセスするために、ハイパーバイザへの、特定のＶＭｓによって作成された共有されたコンピュータリソースに対する要求の形状でありうる。それぞれの特定の受信された要求に対して、要求しているアプリケーションの優先度を同定する。要求しているアプリケーションの優先度を同定することにはさらに、たとえは要求それ自身内のタグからの、共有されたコンピュータリソースに対する要求を作成した特定のアプリケーションを同定することが含まれうる。受信した要求が、ＩＯ操作の形状である場合、共有されたコンピュータリソースが、標的化ＬＵＮによって同定可能である。それぞれの受信された要求に対する応答において、特定の共有されたコンピュータリソースが、特定の要求しているアプリケーションに割り当てられる。この割当は、要求しているアプリケーションの優先度と、共有されたコンピュータリソースの品質格付けに基づいて作成され、それによって、その優先度に相当している要求しているアプリケーションへ、サービス品質を提供する。いくつかの実施形態において、時間にわたるアプリケーションによる共有されたコンピュータリソースの利用を文書化している情報が、将来の参照のためにログされる。
【００１０】
１つの実施形態において、共有されたコンピュータリソースに対する受信された要求には、特定の記憶装置デバイスを標的としているＩＯ操作を開始するために、特定のアプリケーションによって作成された要求が含まれる。この場合、共有されたコンピュータリソースは、特定の記憶装置デバイスにアクセスするための、複数のキューの形状である。それぞれのキューは、異なるレベルの優先度を有する、特定の記憶装置デバイスにアクセスするように設定される。本実施形態において、要求しているアプリケーションが、ＩＯ操作を処理するために、キューの特定の１つに割り当てられる。
【００１１】
他の実施形態において、共有されたコンピュータリソースに対する受信された要求は、マルチパスされた記憶装置デバイスにアクセスするために、マルチパス化構成要素に対する、特定のアプリケーションによって作成された要求の形状である。本実施形態において、共有されたコンピュータリソースには、物理的記憶装置への多重パスの特定の１つにアクセスするための、複数のキューが含まれ得、そこで品質格付けを割り当てることにはさらに、それぞれのキューに、特定のレベルの優先度を割り当てることが含まれる。共有されたコンピュータリソースは代わりにさらに、物理的記憶装置への複数のパスを含み得、この場合、品質格付けが、その品質の定量化として、特定のパスに割り当てられる。
【００１２】
この「発明の概要」及び後述の「発明を実施するための形態」に記述される特徴及び利点は、すべてを包含したものではなく、特に、本特許の図面、明細書、及び特許請求の範囲の見地から、関連分野の当業者には、数多くの付加的な特徴及び利点が明らかとなろう。さらに、本明細書に使用されている表現は、読みやすさと説明の目的のために主に選択されており、発明の主題を限定又は制限するために選択されたものではなく、そのような発明の主題を決定するには、特許請求の範囲に依ることが必要である。
【図面の簡単な説明】
【００１３】
【図１】いくつかの実施形態にしたがった、サービス品質マネージャが実行可能な例示ネットワークアーキテクチャのブロック図である。
【図２】いくつかの実施形態にしたがった、サービス品質マネージャを実行することに好適なコンピュータシステムのブロック図である。
【図３】いくつかの実施形態にしたがった、サービス品質マネージャの操作のブロック図である。
【図４】いくつかの実施形態にしたがった、サービス品質マネージャによって使用された、共有された記憶装置アーキテクチャのブロック図である。
【図５】いくつかの実施形態にしたがった、サービス品質マネージャのモジュールのブロック図である。
【図６】いくつかの実施形態にしたがった、サービス品質マネージャの操作の特定の使用の場合を例示しているブロック図である。
【００１４】
図には、単に例示目的のため、様々な実施形態が示されている。当業者には、本明細書に記述されている原理から逸脱することなく、本明細書に示されている構造及び方法の別の実施形態を採用し得ることが、下記の議論から容易に理解されよう。
【発明を実施するための形態】
【００１５】
図１は、例示ネットワークアーキテクチャ１００のブロック図であり、そこで、サービス品質マネージャ１０１が実行可能である。例示されたネットワークアーキテクチャ１００において、クライアントシステム１０３Ａ、１０３Ｂ及び１０３Ｎ、ならびにサーバ１０５Ａ及び１０５Ｎは、ネットワーク１０７に通信可能に連結される。サービス品質マネージャ１０１は、サーバ１０５Ａ及び１０５Ｎ上に存在するとして例示されるが、他の実施形態において、サービス品質マネージャ１０１は、望むような、より多くの、より少ない、又は異なるコンピュータ２１０上に存在することも可能である。図１において、サーバ１０５Ａはさらに、直接接続した、記憶装置デバイス１６０Ａ（１）〜（Ｎ）を有するとして描写され、サーバ１０５Ｎは、直接接続した、記憶装置デバイス１６０Ｂ（１）〜（Ｎ）を有して描写される。サーバ１０５Ａ及び１０５Ｎはまた、サーバ１０５Ａ及び１０５Ｎによって、そしてネットワーク１０７を介してクライアントシステム１０３Ａ〜Ｎによって、記憶装置デバイス１８０（１）〜（Ｎ）へのアクセスを支持するＳＡＮファブリック１７０に連結する。ＳＡＮファブリック１７０からアクセス可能な特定の記憶デバイスの具体例として、インテリジェント記憶アレイ１９０も示されている。他の実施形態において、共有された記憶装置は、ＳＡＮファブリック１７０の代わりに（又はと組み合わせて）、ＦＣ及びｉＳＣＳＩ（示していない）を用いて実施される。
【００１６】
多くの異なるネットワーキング技術もまた、クライアントコンピュータシステム１０３Ａ〜Ｎのそれぞれからネットワーク１０７へ、接続性を提供するために使用可能である。いくつかの例には、ＬＡＮ、ＷＡＮ及び種々のワイヤレス技術が含まれる。クライアントシステム１０３Ａ〜Ｎは、例えばウェブブラウザ又は他のクライアントソフトウェア（示していない）を用いて、サーバ１０５Ａ又は１０５Ｎ上のアプリケーション及び／又はデータにアクセス可能である。これは、クライアントシステム１０３Ａ〜Ｎが、アプリケーションサーバ１０５からアプリケーションを走らせる、及び／又は記憶装置サーバ１０５、又は記憶装置デバイス１６０Ａ（１）〜（Ｎ）、１６０Ｂ（１）〜（Ｎ）、１８０（１）〜（Ｎ）の１つ、又はインテリジェント記憶装置アレイ１９０によってホストされたデータにアクセスすることを可能にする。
【００１７】
図１は、３つのクライアント１０３Ａ〜Ｎと、２つのサーバ１０５Ａ〜Ｎを例として示すが、実際に、多くのさらなる（又はより少ない）コンピュータを配置可能である。一実施形態において、ネットワーク１０７はインターネットの形態である。他の実施形態において、他のネットワーク１０７又はネットワークベースの環境を使用することができる。
【００１８】
図２は、サービス品質マネージャ１０１を実行するために好適なコンピュータシステム２１０のブロック図である。図１で図示するクライアント１０３とサーバ１０５は、図２で図示するもののような、コンピュータ２１０の形状であり得る。図示のように、コンピュータシステム２１０の１つの構成要素がバス２１２である。バス２１２は、コンピュータシステム２１０の他の構成要素、少なくとも１つのプロセッサ２１４、システムメモリ２１７（例えばランダムアクセスメモリ（ＲＡＭ）、リードオンリーメモリ（ＲＯＭ）、フラッシュメモリ）、入出力（Ｉ／Ｏ）コントローラ２１８、スピーカシステム２２０などの外部音声装置に通信可能に連結された音声出力インタフェース２２２、ディスプレイ画面２２４などの外部ビデオ出力装置に通信可能に連結されたディスプレイアダプタ２２６、１つ以上のインタフェース（例えばシリアルポート２３０、ユニバーサルシリアルバス（ＵＳＢ）のレセプタクル２３０、パラレルポート（図示なし）など）、キーボード２３２に通信可能に連結されたキーボードコントローラ２３３、少なくとも１つのハードディスク２２４（又はその他の形態の磁気媒体）に通信可能に連結された記憶装置インタフェース２３４、ファイバーチャネル（ＦＣ）ネットワーク２９０と接続するよう構成されたホストバスアダプタ（ＨＢＡ）インタフェースカード２３５Ａ、ＳＣＳＩバス２３９に接続するよう構成されたＨＢＡインタフェースカード２３５Ｂ、光ディスク２４２を受容するよう構成された光ディスクドライブ２４０、バス２１２に（例えばＵＳＢレセプタクル２２８を介して）連結されたマウス２４６（又はその他のポインティングデバイス）、バス２１２に（例えばシリアルポート２３０を介して）連結されたモデム２４７、及び、例えばバス２１２に直接連結されたネットワークインタフェース２４８と、通信可能に連結される。
【００１９】
他の構成要素（図示なし）は、同様の方法で接続され得る（例えば文書スキャナ、デジタルカメラ、プリンタなど）。逆に、図２に示されているすべての構成要素は必ずしも存在する必要はない。構成要素は、図２に示されるものとは異なる手法で相互接続することができる。
【００２０】
バス２１２は、プロセッサ２１４と、上述のように、ＲＯＭ及び／又はフラッシュメモリ並びにＲＡＭを含み得るシステムメモリ２１７との間のデータ通信を可能にする。ＲＡＭは典型的に、オペレーティングシステム及びアプリケーションプログラムがロードされるメインメモリである。ＲＯＭ及び／又はフラッシュメモリは、他のコードと共に、特定の基本的なハードウェアオペレーションを制御するベーシックインプット・アウトプットシステム（ＢＩＯＳ）を含み得る。アプリケーションプログラムはローカルコンピュータ可読媒体（例えばハードディスク２４４、光ディスク２４２）に格納され、システムメモリ２１７にロードされ、そしてプロセッサ２１４により実行され得る。アプリケーションプログラムは、例えばネットワークインタフェース２４８又はモデム２４７を介して、離れた場所（すなわち、離れたところに配置されたコンピュータシステム２１０）からシステムメモリ２１７にロードすることもできる。図２において、サービス品質マネージャ１０１が、システムメモリ２１７中に存在するとして図示される。サービス品質マネージャ１０１の働きを、図３と共に、以下でより詳細に説明する。
【００２１】
記憶装置インタフェース２３４は、１つ以上のハードディスク２４４（及び／又はその他の標準記憶媒体）に連結されている。（複数の）ハードディスク２４４は、コンピュータシステム２１０の一部であってもよく、又は、物理的に別であってもよく、他のインタフェースシステムを介してアクセスされてもよい。
【００２２】
ネットワークインタフェース２４８及び／又はモデム２４７は、例えばインターネットなどのネットワーク１０７に、直接的又は間接的に、通信可能に連結され得る。そのような連結は、有線又は無線であり得る。
【００２３】
図３は、いくつかの実施形態にしたがった、サービス品質マネージャ１０１の操作を図示する。図３は、クラスタ３００の多重物理的コンピュータ２１０のそれぞれ１つ上の、ハイパーバイザ３０７にて走っている、サービス品質マネージャ１０１の例を図示しており、そこで、１つ又はそれ以上のＶＭｓ  ３０５が、以下でより詳細に議論されるように、各物理的コンピュータ２１０上で走る。異なる実施形態において、サービス品質マネージャ１０１の機能性は、サーバ１０５、クライアント１０３上で存在可能であり、又は、サービス品質マネージャ１０１の機能性が、ネットワーク１０７にわたるサービスとして提供される、クラウドに基づくコンピュータ環境内を含む、多重コンピュータシステム２１０間で分配されうることが理解されるべきである。サービス品質マネージャ１０１が、単一実体として図３で図示されているけれども、図示されたサービス品質マネージャ１０１が、機能性の集団を表し、望むように、単一又は多重モジュールとして例示化可能であることが理解されるべきである。サービス品質マネージャ１０１のモジュールが、コンピュータシステム２１０の少なくとも１つのプロセッサ２１４がモジュールを処理する時に、コンピュータシステム２１０が、関連した機能性を実行するように、任意のコンピュータシステム２１０のシステムメモリ２１７（例えばＲＡＭ、ＲＯＭ、フラッシュメモリ）内で（例えばオブジェクトコード又は実行可能イメージとして）例示化可能であることが理解されるべきである。本明細書において使用される用語「コンピュータシステム」、「コンピュータ」、「クライアント」、「クライアントコンピュータ」、「サーバ」、「サーバコンピュータ」及び「コンピューティングデバイス」は、記述される機能性を実行するよう構成及び／又はプログラムされた、１つ以上のコンピュータを意味する。さらに、サービス品質マネージャ１０１の品質の機能性を実行するためのプログラムコードを、プログラムコードがコンピュータメモリ２１７内にロードされ、コンピュータシステム２１０の少なくとも１つのプロセッサ２１４によって実行される時に、コンピュータシステム２１０が、関連した機能性を実行するように、コンピュータ読み取り可能記憶装置媒体上に保存可能である。磁気又は光学記憶装置媒体のような、任意の形態の非一過性コンピュータ読み取り可能媒体を、本文脈で使用可能である。本明細書において使用される、用語「コンピュータ読み取り可能媒体」は、電気シグナルが、内在物理的媒体から分離することを意味しない。
【００２４】
図３は、バーチャル化環境３１１と共に、クラスタリング及び記憶装置システム３０１の文脈で例示化可能なクラスタ３００を図示している。図示及び説明の効率のために、クラスタリング及び記憶装置システム３０１と、バーチャル化環境３１１両方が、集中型構成要素として図示される。実際、クラスタリング及び記憶装置システム３０１と、バーチャル化環境３１１両方は、クラスタ３００の至る所で分布される構成要素を含むことが理解されるべきである。図３は、それぞれ２つのＶＭｓ  ３０５（ゲスト）を走らせている、２つのホストコンピュータ２１０を含む、クラスタ３００を図示する。ＶＭｓ  ３０５は、バーチャル化環境３１１によって提供される。図３は、２つの物理的コンピュータ２１０のみを描写するが、異なる実施形態において、クラスタ３００は、望むように、より多い（又はより少ない）コンピュータシステム２１０を含むことができることが理解されるべきである。各ＶＭ  ３０５は、例えば図２で図示した型の、物理的ホストコンピュータ２１０上で走る。１つ又はそれ以上のＶＭｓ  ３０５は、各ホスト２１０上で走ることが出来る（１つのＶＭ  ３０５又は２つ以上のＶＭｓ  ３０５が、単一のホスト２１０上で走ることが出来るけれども、ホスト２１０あたり２つのＶＭｓ  ３０５が図３で図示される）。順に、１つ又はそれ以上のアプリケーション３１３が各ＶＭ  ３０５上で走ることが可能である。
【００２５】
図３にて図示したように、ハイパーバイザが、各物理的ホストコンピュータ２１０上で走る。１つの実施形態において、ハイパーバイザは、ハードウェアレベル、又は「地金」ハイパーバイザ３０７の形状であり、ＶＭ  ３０５及び任意の追加バーチャル化環境ソフトウェアに対する、機能オペレーティングシステムとして働く。本明細書において使用される、用語「ハードウェアレベルハイパーバイザ」は、少なくともいくつかのサービスに対して、少なくとも１つのＶＭ  ３０５と、（ホスト上で走っているオペレーティングシステムと反対の）ホストコンピュータ２１０のハードウェア間のインタフェースとして機能する構成要素を意味する。ハイパーバイザ３０７によって実行されるとして本明細書で記述されるサービスが、特定のバーチャル化シナリオのもと、「スーパーバイザバーチャル機械」、「バーチャル機械マネージャ（ＶＭＭ）」、「サービス分配」、又は「ドメイン０（ｄｏｍ０）」のような、異なる名前を有する構成要素によって実施されることを留意されたい。
【００２６】
１つの実施形態において、バーチャル化環境３１１は、ＶＭｗａｒｅ  Ｉｎｃ．によって提供されたソフトウェア形状である。この場合、ハイパーバイザ３０７は、ＶＭｗａｒｅハードウェアレベルハイパーバイザＶＭｗａｒｅ  ＥＳＸ  ３０７の形状である。ＶＭｗａｒｅのハードウェアレベルハイパーバイザ３０７の名前は、製品リリース間で変化可能であることが理解されるべきである（例えば、ＥＳＸ  Ｓｅｒｖｅｒと呼ばれていたが、将来違った名前で呼ばれうる）。ＶＭｗａｒｅに基づくバーチャル化環境３１１において、サポーティングソフトウェア一組は、ＶＭｗａｒｅ  ｖＳｐｈｅｒｅであり、これは、ＶＭｗａｒｅクラウド対応バーチャル化ソフトウェアパッケージである。ＶＭｗａｒｅ  ｖＳｐｈｅｒｅは、ＥＳＸの最上で走る。ＶＭｗａｒｅクラウド対応バーチャル化ソフトウェアパッケージの名前は、製品リリース間で変化可能であることが理解されるべきである。ＶＭｗａｒｅバーチャル化環境３１１が本明細書で議論されているけれども、他の実施形態が、同様の機能性と特徴を提供する、他のバーチャル化環境３１１の文脈にて実行可能であることがさらに理解されるべきである。例えば、他の実施形態において、ＭｉｃｒｏｓｏｆｔのＨｙｐｅｒ−Ｖのようなバーチャル化環境が使用される。
【００２７】
クラスタによって使用された共有された記憶装置３０９が、単一の記憶装置デバイス１６０であるように、図３と共に図示され、記述されるけれども、実際、内在物理的記憶装置デバイス１６０とともに典型的に実施され、共有された記憶装置３０９にアクセスしているコンピュータシステム２１０に対して、単一の記憶装置デバイス１６０として現れるように、クラスタリング及び記憶装置システム３０１によってマネージされる。１つの実施形態にしたがった１つのそのようなシナリオのアーキテクチャの例を図４に例示し、これは以下でより詳細に議論される。いくつかの実施形態において、共有された記憶装置３０９は、バーチャル機械ディスク（ＶＭＤＫ）フォーマット中の一組の１つ又はそれ以上のＶＭｗａｒｅディスク（複数可）のような、バーチャル化環境３１１によって提供されるバーチャル記憶装置の形状である。この型の実施形態を、以下より詳細に記述する。いくつかの実施形態において、クラスタ３００が、Ｖｅｒｉｔａｓ  Ｓｔｏｒａｇｅ  Ｆｏｕｎｄａｔｉｏｎ  Ｈｉｇｈ  Ａｖａｉｌａｂｉｌｉｔｙ（ＳＦＨＡ）又はＶｅｒｉｔａｓ  Ｓｔｏｒａｇｅ  Ｆｏｕｎｄａｔｉｏｎ  Ｃｌｕｓｔｅｒ  Ｆｉｌｅ  Ｓｙｓｔｅｍ  Ｈｉｇｈ  Ａｖａｉｌａｂｉｌｉｔｙ（ＳＦＣＦＳＨＡ）を用いて実行されるが、他の実施形態を、Ｍｉｃｒｏｓｏｆｔ  Ｃｌｕｓｔｅｒ  Ｓｅｒｖｅｒのような、他のクラスタリング及び記憶装置マネージメント環境の文脈にて実行可能である。
【００２８】
図５と共に、より詳細に以下で説明するように、サービス品質マネージャ１０１が、ＣＰＵ、メモリ、Ｉ／Ｏバンド幅、Ｉ／Ｏチャネル、記憶装置、性能ブーストキャッシュ、複製リンクなどのような、共有されたコンピュータリソース３１５の種々の品質を考慮することによって、優先度が付与されたＶＭｓ  ３０５及びアプリケーション３１３に対して、サービス品質を最適化する。用語が本明細書で使用されるように、「共有されたコンピュータリソース」は、バーチャル化を促進するために、コンピュータシステム２１０上の構成要素間で共有された、任意の物理的又は論理的リソースである。サービス品質マネージャ１０１は、共有されたリソース３１５を評価し、それらの優先度５０７に基づいたＶＭｓ  ３０５にサービス品質を提供するために、同一の型のリソース３１５間の、品質における区別を利用する。言い換えれば、単一ホスト２１０上で走っており、その上のハイパーバイザ３０７に、共有されたコンピュータリソース３１５に対する要求を作成させている、多重ＶＭｓ  ３０５（又はその上で走っているアプリケーション３１３）が、例えば、種々のレベルの利用性が補償されている異なるカスタマー又は内部クライアントと結んだサービスレベル合意に基づいて、異なる優先度５０７を持ちうる。従来のハイパーバイザ３０７は、同一の型の全てではない共有されたコンピュータリソース３１５が、全ての時間点で、同一の方向で振るまうことを認識することを失敗する。事実、同一の型（例えば多重Ｉ／Ｏチャンネル）の共有されたリソース３１５が、品質（例えば利用性、バンド幅、信頼度、速度）において大きく様々であり得る。サービス品質マネージャ１０１は、最適な利用可能なリソース３１５を、最も高い優先度５０７を有するＶＭｓ  ３０５及び／又はアプリケーション３１３に対して提供することによって、共有されたリソース３１５の最適な利用を作る。異なる実施形態において、この機能性が、任意の型の共有されたコンピュータリソース３１５の間の品質における区別を同定し、それらの優先度５０７に基づいた特定のＶＭｓ  ３０５（又はアプリケーション３１３）に対して、様々なサービス品質を提供するために使用可能である。
【００２９】
図３は、ハイパーバイザ３０７レベルにて走っており、ハイパーバイザ３０７によってＶＭｓ  ３０５に割り当てられた共有されたコンピュータリソース３１５の種々の品質を考慮する、サービス品質を提供しているサービス品質マネージャ１０１を示す。他の実施形態において、サービス品質マネージャ１０１が、ハイパーバイザ３０７以外の構成要素のレベルで走り、バーチャル化の他の形態を促進するために、ＶＭｓ  ３０５以外の構成要素に対して、共有されたコンピュータリソース３１５を割り当てることが理解されるべきである。例えば、図６とともに、以下詳細に記述するように、１つの実施形態において、サービス品質マネージャ１０１が、マルチパス構成要素６０１／ＨＢＡ  ２３５レベルにて走り、共有されたリソース３１５を、バーチャルマルチパスされたディスク６０３へのアクセスを試みているアプリケーション３１３へ割り当てる。この記述の目的のために、ＶＭ  ３０５が、アプリケーション３１３の特定化された型であることを想起し、この方法のＶＭｓ  ３０５を考えるために有用でありうる。
【００３０】
図４は、いくつかの実施形態にしたがった、共有された記憶装置３０９アーキテクチャの一例を図示する。インテリジェント記憶装置アレイ１９０が、多重物理的記憶装置デバイス１６０を、単一論理的ユニット（ＬＵＮｓ）４０１内にグループ化する。各ＬＵＮ  ４０１が、アクセスホスト２１０又はゲスト３０５に対する単一記憶装置デバイス１６０として現れる。クラスタリング及び記憶装置システム３０１の論理的ボリュームマネージャ４０３が、各ＬＵＮ  ４０１の最上に、多重論理的ボリューム４０５を作成するために、ソフトウェアレベル論理的ボリュームマネージメントを順に提供可能である。図４が、それぞれが３ボリューム４０５として論理的に処理される２つのＬＵＮｓ  ４０１を図示するけれども、クラスタ３００は、より多い、又はより少ないＬＵＮｓ  ４０１を含むことが可能であること、及びより多く、又はより少ない論理的ボリューム４０５が、該ＬＵＮ  ４０１の最上に構築されうることが理解されるべきである。
【００３１】
図５に移って、サービス品質マネージャ１０１のモジュールを、１つの実施形態に従って、より詳細に図示する。サービス品質マネージャ１０１の品質格付け割当モジュール５０１が、品質格付け５０３を、ホスト２１０上のＶＭ  ３０５によって使用されうる各共有されたリソース３１５へ割り当てる。そのようなコンピュータリソース３１５の集団が、共有されたコンピュータリソースプール５０５として考えることが可能である。コンピュータリソース３１５の品質に影響を与える因子は、静的（例えば、記憶装置デバイスの平均アクセススピード又は内在ハードウェアコンフィギュレーションによって決定されるようなネットワークコネクションの最大スループット）又は動的（例えば、記録装置デバイス上の利用可能な空間の現在の量又はコミュニケーションチャンネル上の現在の負荷）でありうる。異なる実施形態において、品質格付け割当モジュール５０１が、静的因子、動的因子、又は２つの組み合わせに基づいて、コンピュータリソース３１５に品質格付け５０３を割り当てることができる。コンピュータリソース３１５の品質が、動的に変化可能であるので、品質格付け割当モジュール５０１を、プール５０５中のリソース３１５を連続的、又は定期的に評価可能であり、（例えば、利用のレベル又は型の関数として変化する、コンピュータリソース３１５のモニタされたキャパシティへのリアルタイム変化に基づいて）それらの現在の状態に基づいて、現在の品質格付け５０３を決定可能である。新しいコンピュータリソース３１５を、例えば新しいネットワークアダプタをコンピュータデバイス２１０に加える場合に、プール５０５に加えることが出来る。これが起こる時に、品質格付け割当モジュール５０１が、新規コンピュータリソース３１５を検出し、それを、適切な品質格付け５０３に割り当てる。
【００３２】
共有されたコンピュータリソースの品質が、任意の内在ハードウェアの特徴の代わり、又は内在ハードウェアの特徴に加えて、そのプログラムコンフィギュレーションの関数であり得ることが理解されるべきである。例えば、図６と共に、より詳細に以下で記述される１つの実施形態において、多重優先度キュー６０７が、各ホストバスアダプタ（ＨＢＡ）２３５に対して維持される。より高い優先度キュー６０７中のＩ／Ｏが、より低い優先度キュー６０７でのものよりも高い振動数にてＨＢＡ  ２３５に送られ、従って、品質格付け割当モジュール５０１が、より高い優先度キュー６０７に対して、より高い品質格付け５０３を割り当てる。しかしながら、ＨＢＡ  ２３５又は他の内在構成要素の任意の既得特徴と反対に、各キュー６０７が処理される振動数は、どれくらいプログラム的にマネージされているのかの関数である。
【００３３】
本用語が本明細書で使用されるように、品質格付け５０３が、共有されたコンピュータリソース３１５の品質の定量である。異なる内部フォーマットを、異なる実施形態で、品質格付け５０３を提示するために使用可能である（例えば、スケール上の数字、英数記述、パーセンテージなど）。いくつかの実施形態において、品質格付け５０３は、異なる型のリソース３１５に対する、異なる定性的因子を定量する（例えば、記憶装置デバイス、Ｉ／Ｏチャンネルのバンド幅）。いくつかの実施形態において、多重定性因子が、単一定性格付け５０３によって個々のリソース３１５に対して定量化される（例えば、定量格付け対象中の別の領域によって表される、キャパシティ、バンド幅及び待ち時間）。他の実施形態において、品質格付け５０３は、リソースの総品質の単一定量の形状である。
【００３４】
異なるＶＭｓ  ３０５は、異なる割り当てられた優先度５０７を有し、これは、その上で走っているアプリケーション３１３の相当するサービスレベル合意に基づいて、又は同一のホスト２１０上で走っている他のＶＭｓ  ３０５のものに関して、ＶＭの優先度５０７を決定する他の因子に依存しうる。１つの実施形態において、優先度５０７が、ＶＭｓ  ３０５に割り当てられ、アプリケーション３１３が、特定のアプリケーション３１３に提供されるべきサービスレベルに相当している優先度５０７を有するＶＭｓ  ３０５上で走らされる。他の実施形態において、優先度５０７が、アプリケーション３１３それ自身に割り当てられ、各ＶＭ  ３０５が、その上で走るアプリケーション３１３のものから、その優先度５０７をとる。図６と共に、より詳細に以下で記述するように、他の実施形態において、優先度５０７を、ＶＭｓ  ３０５の考慮なしに、１つ又はそれ以上の物理的コンピュータ（複数可）２１０上で走る多重アプリケーション３１３のそれぞれ１つに割り当てることが可能である。優先度５０７を、サービス品質保証又は他の因子に基づいて、アドミニストレーター又は他のユーザー（例えば、ユーザーインタフェースを通して）によってＶＭｓ  ３０５及び／又はアプリケーション３１３に割当可能である。例えば、ビジネスで重大なアプリケーションを、高い優先度５０７を有する特定のＶＭ上で走らせることが可能である。用語が本明細書で使用されるように、優先度５０７は、同一のホスト又は同様に条件づけられた、他のＶＭｓ  ３０５又はアプリケーション３１３に関して、ＶＭ  ３０５又はアプリケーション３１３に提供されるべき、サービス品質の指標である。異なる内部フォーマットを、異なる実施形態における優先度５０７（例えば、低−中−高、スケール上の数字など）を提示するために使用可能である。優先度５０７が、サービス品質マネージャ１０１がそれらにアクセス可能なように、アクセス可能フォーマット（例えばグローバルデータ構造、データベースなど）中に、（例えばクラスタリング及び記憶装置システム３０１によって）保存される。
【００３５】
サービス品質マネージャ１０１の要求受信モジュール５０９は、コンピュータリソース３１５のためのハイパーバイザに対して作成された要求５１１を受信する。サービス品質マネージャ１０１が、ハイパーバイザ３０７レベルにて走ることを想起のこと。したがって、要求受信モジュール５０９は、ハイパーバイザ３０７に対して作成されたコールを傍受する、又はフィルタすること、及び共有されたコンピュータリソース３１５を要求するものを同定することによって、ハイパーバイザ３０７に対して作成された対象の要求５１１を受信可能である。
【００３６】
サービス品質マネージャ１０１の優先度同定モジュール５１３が、共有されたリソース３１５に対する要求５１１を作成したＶＭ  ３０５（又はアプリケーション３１３）の優先度５０７を同定する。１つの実施形態において、共有されたリソースに対する要求５１１が、オリジネーターの同定子（例えば、要求５１１を作成したＶＭ  ３０５のＩＤ）でタグ化される。この場合、優先度同定モジュール５１３が、タグからの要求５１１のオリジネーターを同定する、例えばグローバルデータ構造から、相当する優先度５０７を検索する。他の実施形態において、優先度同定モジュール５１３が、他の方法で、要求５１１のオリジネーターを同定し、（したがってその優先度５０７を調べ、検索することが可能である）。例えば、要求５１１が、共有された記憶装置媒体３０９にアクセスするための企画の形状である場合、優先度同定モジュール５１３が、その上で企画されたＩ／Ｏ操作が発生しているＬＵＮ  ４０１を決定することによって、要求５１１のオリジネーターを同定可能である。
【００３７】
共有されたコンピュータリソース３１５に対する要求５１１への応答において、サービス品質マネージャ１０１のリソース割当モジュール５１５が、リクエスタ（すなわち、ＶＭ  ３０５又はアプリケーション３１３）の優先度５０７、及びリソース３１５の品質格付け５０３に基づいて、プール５０５から要求された型の特定の共有されたリソース３１５を割り当てる。１つの実施形態において、この工程には、より高い優先度５０７を有する構成要素によって作成されたサービス要求５１１に対して、より高い品質格付け５０３を有するリソース３１５を割り当てることが含まれうる。他の実施形態において、より特定のレベルの品質が、割当を作成するために使用される。例えば、優先度は、信頼度、速度、バンド幅などのような重要性の特定の因子を示唆可能であり、これらの特定の因子についての種々の品質格付け５０３を有する、共有されたリソース３１５が、相当する因子特異的優先度５０７を有するＶＭｓ  ３０５に割当可能である。両方が一般的で、特定の因子についての、品質格付け５０３と優先度５０７両方に対して使用するための粒度の実際のレベルが、望むように実施形態間で様々であり得る。同様に、リソース３１５を、品質格付け５０３と優先度５０７間のマッピングに基づいた要求に対して割り当てるために使用するための実際のロジックが、実施形態間で様々であり得る。共有されたコンピュータリソース３１５を、品質格付け５０３と優先度５０７間の対応に基づいて、ＶＭｓ  ３０５及びアプリケーション３１３に割り当てることによって、サービス品質マネージャ１０１が、サービスレベル合意又はその他によって決定されるように、それらの関連した特定の優先度５０７と一致して、特定の構成要素に対して、サービス品質を提供可能である。これにより、共有されたリソース３１５の共通のプール５０５のより賢明な利用がなされる。
【００３８】
いくつかの実施形態において、サービス品質マネージャ１０１のロギングモジュール５１７は、時間にわたり、特定のＶＭｓ  ３０５（又はアプリケーション３１３）によって、共有されたコンピュータリソース３１５の利用をモニタし、将来の参照のために、ログ５１９に対して相当する情報を記述する。ロギングモジュール５１７が、望むように、異なる実施形態において、詳細な様々なレベルの情報をログ可能である。例えば、ログ５１９は、基礎オーディット／統計学的リソース利用情報、又は例えば、ファイル変更ログのレベルにて、該パスに送られたＩ／Ｏのオフセット、記憶装置デバイス、複製リンクなどのような、特定のリソース３１５にアクセスする場合に使用される実際の値を文書化可能である。ログされた情報を、例えば内部データアップデート（例えば、該パイプ上に送られた増分データ）をコンピュータ計算し、それを、増分バックアップシステムなどのような、オフ−ホスト処理サービス（図示していない）に提供するために使用可能である。
【００３９】
図３に注意を引き戻して、特定の利用の場合が、１つの実施形態に従った、サービス品質マネージャ１０１の操作を図示することを補助するためにここで記述される。以上で留意したように、１つの実施形態において、バーチャル化環境３１１は、ＶＭｗａｒｅ  ｖＳｐｈｅｒｅプラットフォームの形状であり、ハイパーバイザ３０７が、ＶＭｗａｒｅのハードウェアレベルハイパーバイザＥＳＸである。本実施形態において、複数のＶＭｓ  ３０５が、該ホストコンピュータ２１０上のＥＳＸ  ３０７の実例の最上で走り、ＶＭＤＫ  ３０９へ、又はＶＭＤＫ  ３０９からデータを読み書きするために、ＥＳＸ  ３０７に対して要求５１１を作成する。（ＶＭＤＫ  ３０９は、ＶＭｗａｒｅ特定フォーマット中のバーチャル機械ディスクである）。リソース割当モジュール５１５が、これらのＩ／Ｏ操作の特定の１つを、Ｉ／Ｏ操作を要求したＶＭ  ３０５の優先度５０７に基づいた、種々の優先度レベル（すなわち種々の品質格付け５０３）の（共有されたリソース３１５の一型である）Ｉ／Ｏキュー６０７に割り当てる。Ｉ／Ｏキュー６０７が、図３にて特に図示されてはいないが、図６が、異なるレベルの優先度を有するキュー６０７の形状で、共有されたコンピュータリソース３１５を図示していることを留意のこと。記述されている特定の利用の場合の例において、ホスト２１０上で走っている各ＶＭ  ３０５は、３つの優先度、高、中又は低の１つを有する。リソース割当モジュール５１５は、３つのＩ／Ｏキュー６０７の１つを、Ｉ／Ｏ要求５１１を、割り当てられたキュー６０７内に配置することによって、ＶＭｓ  ３０５からのサービスＩ／Ｏ要求５１１に割り当てる。３つのキュー６０７が、それぞれ、高、中及び低の品質格付け５０３を有する。高の優先度３０７を有するＶＭｓ  ３０５に発生しているＩ／Ｏ要求が、高格付けされたキュー６０７中に配置され、中格付けされたキュー６０７中に中優先度ＶＭｓ  ３０５から発生しているもの、低格付けされたキュー６０７中に低格付けされたＶＭｓ  ３０５からのものが配置される。キュー６０７が、高優先ＶＭｓ  ３０５からのＩ／Ｏ要求５１１が、最も高いサービス品質をもつ、などのように、それらの格付けにしたがってサービスされる。同様の利用の場合において、３つのより多いレベルの品質格付け５０３と優先度５０７が使用可能であることが理解されるべきである。
【００４０】
記述されている利用の場合において、優先度同定モジュール５１３が、内在ＬＵＮ  ４０１へ、又は内在ＬＵＮ  ４０１から、要求５１１が指向されるかを決定することによって、それより該Ｉ／Ｏ要求５１１が発生したＶＭ  ３０５（したがってその優先度５０７）を決定する。この利用の場合、共有された記憶装置３０９が、ＶＭＤＫバーチャルディスクの形状であることを想起のこと。したがって、標的ＬＵＮ  ４０１を決定するために、サービス品質マネージャ１０１が、Ｉ／Ｏ操作によって影響を受けるＶＭＤＫディスクブロックのマッピング３１７と、ＶＭＤＫ  ３０９を内在しているＬＵＮｓ  ４０１の組中の相当するオフセットを作成する。本マッピング３１７は、標的ＬＵＮ  ４０１を示唆し、したがって本来のＶＭ  ３０５とその優先度５０７を示唆する。
【００４１】
異なる方法論を使用して、本利用の場合の異なる実施において、ＬＵＮ  ４０１マッピング３１７に対するＶＭＤＫディスク３０９を決定可能である。例えば、１つの実施において、ＶＭｗａｒｅウェブサービスＡＰＩｓを、該ＶＭｗａｒｅデータストアの部分である、ＬＵＮｓ  ４０１の組を決定するために使用する。記憶装置マッピングを、特定のコマンドラインオプション（コマンド及びコーリングパラメータ（複数可）が、ＶＭｗａｒｅ製品の将来のバージョンにて変更可能であるけれども、現在は、「ｖｍｋｆｓｔｏｏｌｓ−ｔ０」）を有する該ＶＭｗａｒｅコマンドを用いて決定する。このコマンドは、一組の汎用一意識別子（ＵＵＩＤｓ）中のオフセットに対してＶＭＤＫブロックに関するマッピングを出力する。これらのＵＵＩＤｓは、実際の記憶装置ＬＵＮｓ  ４０１に直接は相関しないが、固定されたオフセット（現在、ＶＭｗａｒｅ  Ｖｉｒｔｕａｌ  Ｍａｃｈｉｎｅ  Ｆｉｌｅ  Ｓｙｓｔｅｍ  ４．１中、オフセット００１０００８０）にて開始している個々の記憶装置ＬＵＮｓ  ４０１中で保存される。（以上で記述したようなウェブ−サービスＡＰＩを介して決定されるような）該ＶＭｗａｒｅデータストアの部分であるデバイス上で、本オフセットにてデータを読むことによって、ＬＵＮｓ  ４０１がどの該ＵＵＩＤｓを有するのか決定される。サービス品質マネージャ１０１が、「ｖｍｋｆｓｔｏｏｌｓ−ｔ０」コマンドによって返されたような、ＵＵＩＤｓ中のオフセットに対して、ＶＭＤＫブロックに関するマッピングを有するので、そしてどのＬＵＮ  ４０１がどのＵＵＩＤを有したのかを決定したので、サービス品質マネージャ１０１がここで、ＬＵＮｓ  ４０１に対するＶＭＤＫブロックのマッピング３１７を構築可能である。他の実行において、このマッピング３１７が、例えば利用可能な場合に、特定のＶＭｗａｒｅ  ＡＰＩｓを用いることによって、他の方法で得られることを留意のこと。任意の場合において、マッピング３１７は、どのＶＭＤＫデータのブロックが、どの該ＬＵＮ  ４０１のオフセット中に残るかを示唆する。本マッピング３１７に基づいて、マルチパス化構成要素（例えば、ＶＭｗａｒｅ  ＥＳＸ環境中のＶｘＤＭＰ）が、どのＶＭ  ３０５該Ｉ／Ｏパケットが来て、向かうのか、したがってどのＶＭ  ３０５が要求５１１を作成したのか、を決定可能である。マルチパス化は、図６とともに以下でより詳細に議論する。一旦、要求５１１を作成したＶＭ  ３０５が同定されたならば、優先度同定モジュール５１３が、そのＶＭ  ３０５の優先度５０７を同定し、リソース割当モジュール５１５が、特定のＩ／Ｏ操作を、適合品質格付け５０３を有するＩ／Ｏキュー６０７へ割り当てる。
【００４２】
ここで図６に移り、サービス品質マネージャ１０１の他の利用の場合が記述される。図６で図示した利用の場合において、ハイパーバイザ３０７レベルで走るのではなく、サービス品質マネージャ１０１が、クラスタリング及び記憶装置システム３０１のマルチパス化構成要素６０１のレベルにて走り、いくつかのモジュールがＨＢＡ  ２３５レベルで走る。より詳細には、Ｖｅｒｉｔａｓ  Ｖｏｌｕｍｅ  Ｍａｎａｇｅ’ｓ  Ｄｙｎａｍｉｃ  Ｍｕｌｔｉｐａｔｈｉｎｇ構成要素のようないくつかの記憶装置マネージメント製品が、支持マルチパス化記憶装置デバイス６０３を支持する。マルチパス化記憶装置６０３は、Ｉ／Ｏのイニシエータに対して利用可能とされるバーチャルディスクであり、そこで多重物理的パス６０５が、バーチャルマルチパス化ディスク６０３と、内在物理的記憶装置１６０間に存在する。図６が、物理的記憶装置１６０に対する２つのパス６０５を図示し、実際より多い（又はより少ない）パス６０５が存在しうる。さらに、図６は、単一の構成要素として、物理的記憶媒体１６０を図示するけれども、典型的に、物理的記憶媒体１６０は、例えば図４にて図示するような、多重内在物理的記憶媒体デバイス１６０で実施される。
【００４３】
図６で図示するように、多重アプリケーション３１３は、コンピュータシステム２１０のシステムメモリ２１７中で走り、バーチャルマルチパス化ディスク６０３を標的としているＩ／Ｏ操作を開始する。応答において、マルチパス構成要素６０１が、どのパス６０５が、該Ｉ／Ｏ操作のために使用されるかを決定する。従来、マルチパス化構成要素６０１は、どのパス６０５が、各Ｉ／Ｏに送るのかを決定を下し、該パス６０５が失敗する場合、パス６０５間を動的に切り替えるために、従来のロードバランスポリシー（例えば、ラウンドロビン、ミニムンクなど）を利用する。Ｉ／Ｏを、該パス６０５を下って、物理的記憶装置１６０に送るために、マルチパス化構成要素６０１が、Ｉ／Ｏを、該パス６０５を介して、物理的記憶装置１６０に連結するように構成された、特定のホストアダプターバス（ＨＢＡ）に送る。
【００４４】
図６で図示する１つの利用の場合において、サービス品質マネージャ１０１が、各ＨＢＡ  ２３５に対する、多重優先度キュー６０７を維持する。マルチパス化構成要素６０１が、バーチャルマルチパス化ディスク６０３を標的としているＩ／Ｏｓを受信し、Ｉ／Ｏｓを特定のＨＢＡｓ  ２３５に割り当てるために、そのロードバランシングポリシーを使用する。ＨＢＡ  ２３５レベルにて、リソース割当モジュール５１５がついで、キュー６０７の品質格付け５０３と、Ｉ／Ｏ操作を開始したアプリケーション３１３の優先度５０７に依存して、該Ｉ／Ｏｓを、特定のＨＢＡ  ２３５に対する特定の優先度キュー６０７に割り当てる。より詳細には、図６は、ＨＢＡ  ２３５あたり、それぞれ、高優先度アプリケーション３１３、中優先度アプリケーション３１３及び低優先度アプリケーション３１３からのＩ／Ｏｓに対して、３つの優先度キュー６０７を図示している。他の実施形態において、さらなる、より少ない、又は異なって格付けされたキュー６０７が、望むように、ＨＢＡ  ２３５あたりで維持されうる。
【００４５】
優先度同定モジュール５１３は、それよりＩ／Ｏが発生（例えばＩ／Ｏ要求５１１又はその上でＩ／Ｏ操作が発生しているＬＵＮ  ４０１中のタグから）するアプリケーション３１３を同定し、したがってアプリケーションの優先度５０７を同定する、アプリケーション３１３を同定する。リソース割当モジュール５１５は、アプリケーション３１３の優先度５０７に基づいて、適切な優先度キュー６０７中に、Ｉ／Ｏを挿入する。例えば、図示した３つのキュー６０７実施形態において、高の優先度５０７を有するアプリケーション３１３より由来しているＩ／Ｏｓが、高優先度キュー６０７に挿入され、中優先度アプリケーション３１３からのものが、中優先度キュー６０７に挿入され、低優先度アプリケーション３１３からのものが、低優先度キュー６０７に挿入される。
【００４６】
サービス品質マネージャ１０１は、それらのそれぞれの優先度に基づいて、その優先度キュー６０７から、各ＨＢＡ  ２３５を下って、Ｉ／Ｏｓを送る。言い換えれば、サービス品質マネージャ１０１が、高優先度キュー６０７からほとんどのＩ／Ｏｓを選択し、中優先度キュー６０７からより少ないＩ／Ｏｓを選択し、低優先度キュー６０７から、もっとも少ない数のＩ／Ｏｓを選択する。各キュー６０７から選択するためのＩ／Ｏｓの特定の割合が、相対優先度に基づいて決定可能であり、又はアドミニストレーター又は他のユーザーによって設定可能である。使用するための実際の割合は、可変デザインパラメータであり、異なる割合が、望むように異なる実施形態で使用可能である。それらの発生しているアプリケーション３１３の優先度５０７への応答における、Ｉ／Ｏ操作のこのサービスが、より高い優先度アプリケーション３１３に対して、高いレベルのサービスを提供する。
【００４７】
図６に図示した利用の場合の他の実施形態において、品質格付け５０３が、パス６０５へのキュー６０７と反対に、又は加えて、特定のパス６０５それら自身に割り当てられる。慣例的に、ユーザーが、異なる重量を、マルチパスした記憶装置デバイス６０３の異なるパスに割当可能である。重量をついで、スケジューリングメカニズムとして使用し、各重量が、相当するパス６０５へ送られているＩ／Ｏｓの割合を決定する。重量はまた、パス６０５のバンド幅、物理的記憶装置デバイス１６０に対するホップの数、パス６０５の定性などのような因子に基づいてフライ上で決定しうる。本実施形態において、品質格付け割当モジュール５０１が、品質格付け５０３を、それらの重量に基づいてパス６０５に割り当てる（例えば、重量が大きければ大きいほど、割り当てられた品質格付け５０３が高い）。いくつかの実施形態において、それらの割り当てられた重量上のパス６０５の品質格付け５０３の土台を作るのではなく、品質格付け割当モジュール５０１が、その信頼度、速度、利用性などのような因子を活発に測定することによって、各パス６０５に対する品質格付け５０３を活発に決定する。そのような因子を測定するために、品質格付け割当モジュール５０１が、ホップの数、パス６０５の安定性、過去発生した失敗、記憶装置コントローラアップグレードなどのような因子を、統計学的又は動的にモニタする。いずれの場合において、優先度同定モジュール５１３がついで、Ｉ／Ｏｓをマルチパス化記憶装置デバイス６０３へ送るアプリケーション３１３の優先度５０７を同定し、リソース割当モジュール５１５が、相当する品質格付け５０１を有するパス６０５へ各Ｉ／Ｏを送り下す。例えば、高優先度アプリケーションから発生しているＩ／Ｏｓが、最も高い品質格付け５０３を有するパス６０５を送り下すなど。いくつかの実施形態において、品質格付け５０３のパス６０５への割当と、キュー６０７への品質格付けの割当を、それらの優先度５０７に基づいたアプリケーション３１３へ、サービス品質を提供するために、別に利用することが理解されるべきである。他の実施形態において、これらの特徴を組み合わせて使用する。これらの実施形態において、各Ｉ／Ｏが、発生アプリケーション３１３の優先度５０７に基づいて、特定の品質格付け５０３を有する特定のパス６０５に割り当てられ、ついで、さらに、再び、発生アプリケーションの優先度５０７（例えば異なるレベルの粒度にて）に基づいて、そのパス６０５に対する特定の優先度キュー６０７に割り当てられる。
【００４８】
図６の使用の場合を、ホストランニング多重ＶＭｓ  ３０５に適用するために、優先度５０７を、以上で記述したように、ＶＭｓ  ３０５に割り当てることが可能であり、特定のアプリケーション３１３を、適切な優先度５０７を有するＶＭ  ３０５上で走らせることが可能である。
【００４９】
当該技術分野を知る業者には理解されるように、本発明は、その趣旨又は本質的特徴から逸脱することなく、他の具体的な形態で実施することができる。同様に、部分、モジュール、エージェント、マネージャ、構成要素、機能、手順、処置、階層、特徴、属性、方法論、データ構造、及びその他の態様の具体的な名称及び区分は、必須のものでも重要なものでもなく、本発明又はその特徴を実施するメカニズムは、別の名称、区分、及び／又は形式を有し得る。説明目的のための上記の記述は、特定の実施形態を参照して記述されている。しかしながら、上記の例示的議論は網羅的であることを意図したものではなく、開示されている正確な形態に限定することを意図したものでもない。上述の教示を考慮して、多くの修正及び変更が可能である。実施形態は、関連する原理及びその実際的な適用を最適に説明するよう選択かつ記述されており、これにより、他の当業者が、想到される特定の使用に好適であり得るような様々な改変を行うか行わないかにかかわらず、様々な実施形態を最適に利用できる。
【図１】
0006321031.tif 000002
【図２】
0006321031.tif 000003
【図３】
0006321031.tif 000004
【図４】
0006321031.tif 000005
【図５】
0006321031.tif 000006
【図６】
0006321031.tif 000007