(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-03-11
(45)【発行日】2022-03-22
(54)【発明の名称】仮想環境におけるレイテンシを決定し緩和する技術
(51)【国際特許分類】
H04L 41/0897 20220101AFI20220314BHJP
G06F 9/455 20060101ALI20220314BHJP
【FI】
H04L41/0897
G06F9/455 150
(21)【出願番号】P 2019502673
(86)(22)【出願日】2017-08-29
(86)【国際出願番号】 US2017049112
(87)【国際公開番号】W WO2018063668
(87)【国際公開日】2018-04-05
【審査請求日】2020-08-24
(32)【優先日】2016-09-28
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】593096712
【氏名又は名称】インテル コーポレイション
(74)【代理人】
【識別番号】100107766
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100091214
【氏名又は名称】大貫 進介
(72)【発明者】
【氏名】グレイ,マーク
(72)【発明者】
【氏名】カニンガム,アンドリュー
(72)【発明者】
【氏名】マクナマラ,クリス
(72)【発明者】
【氏名】ブラウン,ジョン
(72)【発明者】
【氏名】ローラン,ピエール
(72)【発明者】
【氏名】レッキー,アレグザンダー
【審査官】佐々木 洋
(56)【参考文献】
【文献】特表2016-517202(JP,A)
【文献】特表2016-512416(JP,A)
【文献】米国特許出願公開第2016/0112182(US,A1)
【文献】VMotion、DRS、そしてVMware HA,VMware Infrastructure 3 徹底入門(3),ヴイエムウェア株式会社,2008年08月18日,https://www.atmarkit.co.jp/ait/articles/0808/18/news108.html
(58)【調査した分野】(Int.Cl.,DB名)
H04L 41/0897
G06F 9/455
(57)【特許請求の範囲】
【請求項1】
装置であって、
メモリと、
前記メモリに結合された処理回路と、
前記処理回路により少なくとも部分的に実現される論理と、を含み、
前記論理は、
仮想マシンモニタを通して1つ以上の
仮想ネットワークインターフェース
と1つ以上の物理ネットワークインターフェースとの間で1つ以上の
トレーサパケットの通信をさせ、
前記1つ以上のトレーサパケットは、アクティブセッションパケットの間に送信され、前記アクティブセッションパケットは、前記1つ以上の仮想ネットワークインターフェースを介して仮想マシンにより実行される仮想ネットワーク機能(VNF)アプリケーションにより送信又は受信され、
前記仮想マシンモニタを通して通信される前記1つ以上の
トレーサパケットに少なくとも部分的に基づいて前記仮想マシンモニタのレイテンシ又はジッタを決定し、
前記レイテンシ又は前記ジッタが前記仮想マシンモニタ上の仮想マシンの定義されたパラメータを満たさないとき、補正処置を実行
し、
前記1つ以上の仮想ネットワークインターフェースを介する、前記仮想マシンにより実行される前記VNFアプリケーションへの、前記1つ以上のトレーサパケットの引渡しの前に、前記1つ以上のトレーサパケットを除去する、装置。
【請求項2】
前記論理は、前記補正処置のために前記仮想マシンモニタ上の前記仮想マシンを異なる仮想マシンモニタに移動する、請求項1に記載の装置。
【請求項3】
前記論理は、前記補正処置のために異なる仮想マシンモニタ上で前記仮想マシンを開始する、請求項1又は2に記載の装置。
【請求項4】
前記定義されたパラメータは、前記仮想マシンのサービスレベル合意において指定されたレイテンシ要件及びジッタ要件のうち1つ以上を含む、請求項1乃至3のうちいずれか1項に記載の装置。
【請求項5】
前記論理は、複数の仮想マシンモニタの各々についてレイテンシ及びジッタを決定し、前記決定されたレイテンシ及びジッタに少なくとも部分的に基づいてレイテンシ及びジッタモデルを生成する、請求項1乃至4のうちいずれか1項に記載の装置。
【請求項6】
前記論理は、前記仮想マシンの前記レイテンシ及びジッタモデル並びにサービスレベル合意に基づいて前記複数の仮想マシンモニタのうち1つで前記仮想マシンを開始する、請求項5に記載の装置。
【請求項7】
前記論理は、各
仮想ネットワークインターフェースに、前記仮想マシンモニタを通して各
物理ネットワークインターフェースへ
トレーサパケットを通信させて、前記
1つ以上の仮想ネットワークインターフェース
と前記1つ以上の物理ネットワークインターフェースとの間の瞬間的レイテンシを決定する、請求項1乃至5のうちいずれか1項に記載の装置。
【請求項8】
前記論理は、
各
仮想ネットワークインターフェースに、周期的に前記仮想マシンモニタを通して各
物理ネットワークインターフェースへ
トレーサパケットを通信させ、
各通信の後、瞬間的レイテンシを決定し、
少なくとも前記瞬間的レイテンシを使用して、各周期の後、レイテンシ及びジッタモデルを更新する、請求項1乃至5又は7のうちいずれか1項に記載の装置。
【請求項9】
仮想マシンモニタを通して1つ以上の
仮想ネットワークインターフェース
と1つ以上の
物理ネットワークインターフェース
との間で1つ以上の
トレーサパケットの通信をさせるステップ
であり、前記1つ以上のトレーサパケットは、アクティブセッションパケットの間に送信され、前記アクティブセッションパケットは、前記1つ以上の仮想ネットワークインターフェースを介して仮想マシンにより実行される仮想ネットワーク機能(VNF)アプリケーションにより送信又は受信される、ステップと、
前記仮想マシンモニタを通して通信される前記1つ以上の
トレーサパケットの各々に少なくとも部分的に基づいて前記仮想マシンモニタのレイテンシ又はジッタを決定するステップと、
前記レイテンシ又は前記ジッタが前記仮想マシンモニタ上の仮想マシンの定義されたパラメータを満たさないとき、補正処置を実行するステップと、
前記1つ以上の仮想ネットワークインターフェースを介する、前記仮想マシンにより実行される前記VNFアプリケーションへの、前記1つ以上のトレーサパケットの引渡しの前に、前記1つ以上のトレーサパケットを除去するステップと、
を処理回路に実行させるコンピュータプログラム。
【請求項10】
前記補正処置のために前記仮想マシンモニタ上の前記仮想マシンを異なる仮想マシンモニタに移動するステップ、を処理回路にさらに実行させる請求項
9に記載のコンピュータプログラム。
【請求項11】
前記補正処置のために異なる仮想マシンモニタ上で前記仮想マシンを開始するステップ、を処理回路にさらに実行させる請求項
9又は1
0に記載のコンピュータプログラム。
【請求項12】
前記定義されたパラメータは、前記仮想マシンのサービスレベル合意において指定されたレイテンシ要件及びジッタ要件のうち少なくとも1つを含む、請求項
9乃至1
1のうちいずれか1項に記載のコンピュータプログラム。
【請求項13】
複数の仮想マシンモニタの各々についてレイテンシ及びジッタを決定するステップと、前記決定されたレイテンシ及びジッタに少なくとも部分的に基づいてレイテンシ及びジッタモデルを生成するステップと、を処理回路にさらに実行させる請求項
9乃至1
2のうちいずれか1項に記載のコンピュータプログラム。
【請求項14】
前記仮想マシンの前記レイテンシ及びジッタモデル並びにサービスレベル合意に基づいて前記複数の仮想マシンモニタのうち1つで前記仮想マシンを開始するステップ、を処理回路にさらに実行させる請求項1
3に記載のコンピュータプログラム。
【請求項15】
各
仮想ネットワークインターフェースに、前記仮想マシンモニタを通して各
物理ネットワークインターフェースへ
トレーサパケットを通信させて、前記
1つ以上の仮想ネットワークインターフェース
と前記1つ以上の物理ネットワークインターフェースとの間の瞬間的レイテンシを決定するステップ、を処理回路にさらに実行させる請求項
9乃至1
4のうちいずれか1項に記載のコンピュータプログラム。
【請求項16】
各
仮想ネットワークインターフェースに、周期的に前記仮想マシンモニタを通して各
物理ネットワークインターフェースへ
トレーサパケットを通信させるステップと、
各通信の後、瞬間的レイテンシを決定するステップと、
少なくとも前記瞬間的レイテンシを使用して、各周期の後、レイテンシ及びジッタモデルを更新するステップと、
を処理回路にさらに実行させる請求項
9乃至1
5のうちいずれか1項に記載のコンピュータプログラム。
【請求項17】
コンピュータにより実現される方法であって、
仮想マシンモニタを通して1つ以上の
仮想ネットワークインターフェース
と1つ以上の
物理ネットワークインターフェース
との間で1つ以上の
トレーサパケットの通信をさせるステップ
であり、前記1つ以上のトレーサパケットは、アクティブセッションパケットの間に送信され、前記アクティブセッションパケットは、前記1つ以上の仮想ネットワークインターフェースを介して仮想マシンにより実行される仮想ネットワーク機能(VNF)アプリケーションにより送信又は受信される、ステップと、
前記仮想マシンモニタを通して通信される前記1つ以上の
トレーサパケットの各々に少なくとも部分的に基づいて前記仮想マシンモニタのレイテンシ又はジッタを決定するステップと、
前記レイテンシ又は前記ジッタが前記仮想マシンモニタ上の仮想マシンの定義されたパラメータを満たさないとき、補正処置を実行するステップと、
前記1つ以上の仮想ネットワークインターフェースを介する、前記仮想マシンにより実行される前記VNFアプリケーションへの、前記1つ以上のトレーサパケットの引渡しの前に、前記1つ以上のトレーサパケットを除去するステップと、
を含む、コンピュータにより実現される方法。
【請求項18】
前記補正処置は、前記仮想マシンモニタ上の前記仮想マシンを異なる仮想マシンモニタに移動すること及び前記補正処置のために異なる仮想マシンモニタ上で前記仮想マシンを開始することのうち1つ以上を含む、請求項1
7に記載のコンピュータにより実現される方法。
【請求項19】
前記定義されたパラメータは、前記仮想マシンのサービスレベル合意において指定されたレイテンシ要件及びジッタ要件のうち少なくとも1つを含む、請求項1
7又は
18に記載のコンピュータにより実現される方法。
【請求項20】
複数の仮想マシンモニタの各々についてレイテンシ及びジッタを決定するステップと、
前記決定されたレイテンシ及びジッタに少なくとも部分的に基づいてレイテンシ及びジッタモデルを生成するステップと、
を含む請求項1
7乃至
19のうちいずれか1項に記載のコンピュータにより実現される方法。
【請求項21】
前記仮想マシンの前記レイテンシ及びジッタモデル並びにサービスレベル合意に基づいて前記複数の仮想マシンモニタのうち1つで前記仮想マシンを開始するステップ、を含む請求項2
0に記載のコンピュータにより実現される方法。
【請求項22】
各
仮想ネットワークインターフェースに、前記仮想マシンモニタを通して各
物理ネットワークインターフェースへ
トレーサパケットを通信させて、前記
1つ以上の仮想ネットワークインターフェース
と前記1つ以上の物理ネットワークインターフェースとの間の瞬間的レイテンシを決定するステップ、を含む請求項1
7乃至2
1のうちいずれか1項に記載のコンピュータにより実現される方法。
【請求項23】
各
仮想ネットワークインターフェースに、周期的に前記仮想マシンモニタを通して各
物理ネットワークインターフェースへ
トレーサパケットを通信させるステップと、
各通信の後、瞬間的レイテンシを決定するステップと、
少なくとも前記瞬間的レイテンシを使用して、各周期の後、レイテンシ及びジッタモデルを更新するステップと、
を含む請求項1
7乃至2
2のうちいずれか1項に記載のコンピュータにより実現される方法。
【請求項24】
請求項
9乃至1
6のうちいずれか1項に記載のコンピュータプログラムを記憶したコンピュータ読取可能記憶媒体。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願の相互参照
本出願は、2016年9月28日に出願された、前に出願された米国特許出願第15/279,380号に対する利益及び優先権を主張し、該出願の対象事項はその全体を本明細書において参照により援用される。
【0002】
技術分野
本明細書で説明される実施例は、仮想マシンモニタを通してパケットを通信してレイテンシ及びジッタを決定することに一般に関する。
【背景技術】
【0003】
サービス及び能力を提供するための仮想環境の利用は、今日のコンピューティング環境においてますます普及してきている。仮想環境は、高い可用性及びトラフィックレイテンシ要件を有するサービスを提供するために使用されている。例えば、電気通信会社は、これらの環境を使用してテレコムサービスをユーザに提供している。これらのサービスを提供するシステムは、サービスが提供されており、顧客により規定された厳しい要件を満たすことを確保するために、絶えず監視される。実施例は、これらの他の問題を解決することに向けられる。
【図面の簡単な説明】
【0004】
発明の実施例が、添付図面の図において限定としてでなく例として示され、図面において、同様の参照番号は同様の要素を示す。
【発明を実施するための形態】
【0005】
本明細書で論じられる様々な実施例は、ハイパーバイザ(hypervisor(登録商標))などの仮想マシンモニタによりもたらされるレイテンシ及びジッタ(jitter)を決定するための方法、装置、デバイス、及びシステムを含み得る。例えば、実施例は、1つ以上の「トレーサ(tracer)」パケットを仮想マシンモニタを通してネットワークインターフェース間で通信させることを含み得る。ネットワークインターフェースは、仮想ネットワークインターフェースを含み、仮想マシンモニタを介して動作する仮想マシンに関連づけられてもよい。いくつかの実施例において、仮想マシンは、ネットワーキングサービスを提供できる仮想ネットワーキング機能(virtual networking functions;VNF)などの1つ以上のサービスをサポートし、動作させてもよい。
【0006】
実施例は、通信されたパケットを使用して仮想マシンモニタのレイテンシ及びジッタを決定することをさらに含み得る。例えば、レイテンシは、パケットがネットワークインターフェースにより送信されたときと、それが別のネットワークインターフェースにより受信されたときとの間の差に基づいてもよい。測定は、仮想マシンモニタによりもたらされたレイテンシを示させる。ジッタ又はパケット遅延変動がさらに計算され、仮想マシンモニタのレイテンシ及び過去レイテンシ測定に基づいてもよい。ジッタは、異なるレイテンシ計算間のレイテンシの変動を示してもよい。
【0007】
いくつかの例において、実施例は、レイテンシ又はジッタが仮想マシンの指定された要件又は定義されたパラメータを満たさないことに基づいて補正処置を実行することをさらに含み得る。例えば、サービスレベル合意(service level agreement)が、仮想マシンのレイテンシ及びジッタ要件を含む1つ以上の定義されたパラメータを規定してもよい。実施例は、仮想マシンモニタによりこれらの要件が満たされていることを確保し、これらが満たされていないときに緩和又は補正処置を行うことを含み得る。例えば、仮想マシン及びアプリケーションが、異なる仮想マシンモニタにマイグレートされ(migrated)てもよい。別の例において、実施例は、異なる仮想マシンモニタ上で仮想マシン及びアプリケーションを開始することを含み得る。これら及び他の詳細が以下の説明で論じられる。
【0008】
次に、図面に対して参照が行われ、同様の参照番号は、全体を通して同様の要素を示すために使用される。以下の説明において、説明の目的で、複数の特定の詳細がその完全な理解を提供するために明記される。しかしながら、新規の実施例はこれらの特定の詳細なく実施できることが明らかであり得る。他の例において、周知の構造及びデバイスが、その説明を容易にするためにブロック図形式で示される。その意図は、請求される対象事項と一貫するすべての修正、均等物、及び代替をカバーすることである。
【0009】
図1Aは、仮想環境の一部であり得るシステム100の一般的概観を示す。実施例において、図のいくつかに表されるシステム100は様々な構成で提供されてもよい。いくつかの実施例において、システムは、システムの1つ以上のコンポーネントがクラウドコンピューティングシステムにおいて1つ以上のネットワークにわたり分散される分散システムとして構成されてもよい。さらに、システムは様々な環境を利用してもよい。ゆえに、システムの1つ以上のコンポーネントが、例えば、必ずしも特定のマシン又はデバイスに結び付けられなくてもよく、しかし、特定の性能要件を満たすために利用可能なリソースを有するマシン又はデバイスのプール又はグループにおいて動作してもよい。システム100は、1つ以上の仮想環境が1つ以上のサービスレベル定義パラメータを満たすことを可能にし得る。これら及び他の詳細が以下の説明でより明らかになる。
【0010】
システム100は、処理回路102、メモリ104、1つ以上のネットワークインターフェース106、及び記憶装置108を含み得る。いくつかの実施例において、処理回路102は、論理を含んでもよく、これらに限られないがマイクロプロセッサ、プロセッサ、中央処理ユニット、デジタル信号処理ユニット、デュアルコアプロセッサ、モバイルデバイスプロセッサ、デスクトッププロセッサ、シングルコアプロセッサ、システムオンチップ(SoC)デバイス、複合命令セットコンピューティング(CISC)マイクロプロセッサ、縮小命令セット(RISC)マイクロプロセッサ、超長命令語(VLIW)マイクロプロセッサ、フィールドプログラマブルゲートアレイ(FPGA)回路、又は単一チップ若しくは集積回路上の任意の他タイプのプロセッサ若しくは処理回路などの、任意タイプの計算要素のうち1つ以上でもよい。処理回路102は、1つ以上のバス、制御ライン、及びデータラインなどのインターコネクト(図示されていない)を介して、ピアシステム105の他の要素に接続され、該他の要素と通信してもよい。いくつかの実施例において、処理回路102は、実行中にアクセスされ及びアクセスできる命令を含む情報を記憶するために処理ユニットに利用可能なプロセッサレジスタ又は少量の記憶装置を含んでもよい。さらに、プロセッサレジスタは、メモリ階層の上位に通常あり、データにアクセスするための最速の方法を提供する。
【0011】
上述されたように、システム100は、情報を記憶するためのメモリ104を含み得る。さらに、メモリ104は、揮発及び不揮発メモリの双方を含む、データを記憶できるマシン読取可能又はコンピュータ読取可能媒体を使用して実現されてもよい。いくつかの実施例において、マシン読取可能又はコンピュータ読取可能媒体は非一時的媒体を含んでもよい。実施例はこの文脈で限定されない。
【0012】
メモリ104は、瞬間的、一時的、又は永続的にデータを記憶することができる。メモリ104は、システム100のための命令及びデータを記憶する。メモリ104は、処理回路102が命令を実行している間、一時変数又は他の中間情報をさらに記憶してもよい。いくつかの実施例において、情報及びデータが、命令の処理中、メモリ104からコンピューティングレジスタにロードされてもよい。次いで、操作されたデータは、しばしば、同じ命令によってか又は後の命令によってかのいずれかで、メモリ104に戻され記憶される。メモリ104は、上記で論じられたデータを記憶することに限定されず、メモリ104は、任意タイプのデータを記憶し得る。
【0013】
1つ以上のネットワークインターフェース106は、無線及び有線接続を通じての情報又は通信を処理する任意のデバイス及び回路を含む。例えば、1つ以上のネットワークインターフェース106は、受信機、送信機、1つ以上のアンテナ、及び1つ以上のイーサネット(登録商標)接続を含んでもよい。1つ以上のネットワークインターフェース106の具体的な設計及び実装は、システム100が動作するよう意図した通信ネットワークに依存してもよい。
【0014】
システム100は、これらに限られないが磁気ディスクドライブ、光学ディスクドライブ、テープドライブ、内部記憶装置、取り付け記憶装置、フラッシュメモリ、バッテリバックアップ付きSDRAM(同期DRAM)、及び/又はネットワークアクセス可能記憶装置などの、不揮発記憶装置として実現され得る記憶装置108を含み得る。実施例において、記憶装置108は、例えば、複数のハードドライブが含まれるときに高価なデジタル媒体の記憶性能強化保護を増大させる技術を含んでもよい。記憶装置108のさらなる例には、ハードディスク、フロッピーディスク、コンパクトディスク読取専用メモリ(CD‐ROM)、コンパクトディスクレコーダブル(CD‐R)、コンパクトディスクリライタブル(CD‐RW)、光ディスク、磁気媒体、磁気光媒体、取外し可能メモリカード若しくはディスク、様々なタイプのDVDデバイス、テープデバイス、カセットデバイスなどを含んでもよい。実施例はこの文脈で限定されない。
【0015】
さらに、記憶装置108は、情報を一時的にメモリ104に記憶させ、かつ処理回路102により処理させ得る命令を含んでもよい。より具体的に、記憶装置108は、1つ以上のオペレーティングシステム(OS)、1つ以上の仮想環境、及び1つ以上のアプリケーションを含んでもよい。
【0016】
いくつかの実施例において、1つ以上のオペレーティングシステムは、Android(登録商標)ベースのオペレーティングシステム、Apple(登録商標) iOS(登録商標)ベースのオペレーティングシステム、Symbian(登録商標)ベースのオペレーティングシステム、Blackberry(登録商標) OSベースのオペレーティングシステム、Windows(登録商標) OSベースのオペレーティングシステム、Palm OS(登録商標)ベースのオペレーティングシステム、Linux(登録商標)ベースのオペレーティングシステム、FreeBSD(登録商標)ベースのオペレーティングシステムなどの、任意タイプのオペレーティングシステムでもよい。オペレーティングシステムは、他の仮想環境及びアプリケーションが動作することを可能にし得る。
【0017】
いくつかの実施例において、システム100は、ハイパーバイザなどの仮想マシンモニタ110を介して動作する1つ以上の仮想マシンを含み得る1つ以上の仮想環境を含み得る。仮想マシンは、ハードウェア、メモリ、及びインターフェース、並びにオペレーティングシステムを含むソフトウェアなどの、コンピュータシステムの特定の部分をエミュレートし得る。例えば、以下でより詳細に論じられるように、システム100は、仮想処理回路122、仮想化メモリ124、1つ以上の仮想ネットワークインターフェース126、及び仮想記憶装置128を含んでもよい。
【0018】
いくつかの実施例において、仮想処理回路122は、仮想マシンに割り当てられる、処理回路102などの物理中央処理ユニット(CPU)でもよい。いくつかの例において、各仮想マシンは、仮想処理回路122を割り振られてもよい。しかしながら、いくつかの例において、システム100がその配設で複数のCPUコアを有する場合、コンピュータ処理ユニット(CPU)スケジューラが実行コンテキストを割り当てることができ、仮想処理回路122は論理プロセッサ上の一連の時間スロットを介して処理を可能にする。実施例はこの方式に限定されない。
【0019】
同様の方式で、システム100は、仮想マシンのために割り振られたメモリ104の一部を含み得る仮想化メモリ124を含み得る。仮想化メモリ124は、メモリ104が使用されるのと同じ方式で仮想マシンにより使用されてもよい。例えば、仮想化メモリ124は、処理のために仮想マシンに関連づけられた命令を記憶してもよい。いくつかの実施例において、仮想化メモリ124は、仮想メモリマネージャ(図示されていない)により制御されてもよく、これは、仮想マシンモニタ110の一部でもよい。
【0020】
システム100は、1つ以上の仮想ネットワークインターフェース126をさらに含み得る。仮想ネットワークインターフェース126は、ネットワークインターフェース106などのコンピュータネットワークインターフェースの抽象的仮想化表現である。仮想ネットワークインターフェース126は、仮想マシンにとって、その独自の媒体アクセス制御(MAC)アドレスを有する本格的なイーサネットコントローラとして見えてもよい。仮想ネットワークインターフェース126は、ネットワークインターフェース106にブリッジされ(bridged)てもよい。仮想マシンにより通信されるパケットは、例えば、宛先に対する通信のために、仮想ネットワークインターフェース126及びブリッジされた物理ネットワークインターフェース106を通して送信されてもよい。いくつかの実施例において、パケットは、仮想マシンモニタ110を通して通信されてもよい。
【0021】
システム100は、仮想記憶装置128をさらに含み得る。仮想記憶装置128は、例えば、仮想マシンに割り振られた物理記憶装置108の一部でもよい。仮想記憶装置128は、仮想マシンのための情報を記憶してもよい。いくつかの例において、仮想記憶装置128は、仮想マシンの作成の時に仮想マシンに割り振られてもよい。
【0022】
いくつかの例において、システム100は、例えば、ハードウェアネットワーキングインフラストラクチャ ‐ ルータ、スイッチ等の上位で、1つ以上の仮想マシン上で実行する特定のネットワーク機能を扱う責任を負う仮想ネットワーク機能(VNF)132‐nを含み、かつ/あるいは利用することができる。個々のVNFは、システム100のためのフルスケールのネットワーキング通信サービスを提供するための構築ブロックとして一緒に接続又は組み合わせできる。例えば、いくつかの実施例において、システム100は、ロングタームエボリューション(Long-Term Evolution;LTE(登録商標))及び後続5G標準システムにおけるセルラー及びパケットベースの通信を処理するためのテルコ(Telco)システムの一部でもよい。様々なVNF132‐nが、システム100の様々な通信能力を提供し得る。ゆえに、VNF132‐nは、トラフィッククラスに基づく、及びサービスレベル合意により定義される、厳しい性能要件を有するよう予期されることがある。より詳細に論じられるように、実施例は、仮想マシンモニタ110を通してパケット通信を監視して、仮想環境及び仮想マシンモニタ110により少なくとも部分的にもたらされるリアルタイムの、アベレージの、及び平均のレイテンシ及びジッタを決定することにより、これらの厳しい性能要件を維持することに向けられる。
【0023】
仮想マシンモニタ110又はハイパーバイザは、仮想マシンを作成して実行する1つのコンピュータソフトウェア、ファームウェアハードウェアでもよい。いくつかの例において、仮想マシンモニタ110は、仮想回路122、仮想化メモリ124、仮想ネットワークインターフェース126、及び仮想記憶装置128を使用のために仮想マシンに提示する。ゆえに、仮想マシンモニタ110は、仮想マシンがシステム100のハードウェア及びコンポーネントを利用することを可能にし得る。例えば、仮想マシンモニタ110は、仮想マシン環境内で実行するアプリケーションが仮想処理回路122を介して処理回路102を、仮想化メモリ124を介してメモリ104を、及び仮想記憶装置128を介して記憶装置108を利用することを可能にする。同様に、仮想マシンモニタ110は、パケットが仮想ネットワークインターフェース126及びネットワークインターフェース106を介して仮想マシンのアプリケーションと外部計算環境との間で通信されることを可能にし得る。これらのパケットは、有線又は無線接続を介して1つ以上の他のデバイスに通信されてもよい。いくつかの実施例において、仮想マシンモニタ110は、仮想オペレーティングプラットフォームを有するゲストオペレーティングシステムを仮想マシンに提示してもよく、ゲストオペレーティングシステムの実行を管理する。
【0024】
前述されたように、実施例は、仮想マシンモニタ110を通してパケットのレイテンシ及びジッタを監視することを含み得る。例えば、トレーサパケットなどの1つ以上のパケットが、ネットワークインターフェースの各々と仮想ネットワークインターフェース126の各々との間で通信されてもよい。パケットは、ネットワークインターフェース106及び仮想マシンモニタ110によりホストされる仮想ネットワークインターフェース126により生成され、周期的、又は半周期的(semi-periodic)に通信される。より具体的に、パケットは、レイテンシ及びジッタ検出の容易さを可能にするために、固定のフレーム間遅延(inter frame delay)(周期)でネットワークインターフェース106及び仮想ネットワークインターフェース126により投入されてもよい。さらに、様々な投入パス粒度が、仮想マシンレベル、仮想ポート/仮想ブリッジレベル、仮想接続レベル、及びサービスクラス(class of service)レベルにおいてを含みサポートされてもよい。サービスクラスレベルは、リアルタイムトラフィック及びベストエフォートトラフィックなどのトラフィッククラスでもよい。仮想マシンモニタ110は、パケットの通信に基づいて、ネットワークインターフェース106及び仮想ネットワークインターフェース126の間の瞬間的レイテンシ及びジッタを決定してもよい。さらに、仮想マシンモニタ110は、この情報、例えば瞬間的レイテンシ及びジッタ情報を、さらなる処理のために仮想マシンコントローラ140に通信してもよい。
【0025】
実施例において、システム100は、VMware(登録商標)Orchestrator(登録商標)又はOpenStack(登録商標)などの仮想マシンコントローラ140をさらに含み得る。仮想マシンコントローラ140は、ユーザが1つ以上の仮想マシンのための管理タスクを実行することを可能にし得る。さらに、仮想マシンコントローラ140は、1つ以上の仮想マシンモニタ110からレイテンシ及びジッタ情報を受信して、クラウド計算環境にわたるレイテンシ及びジッタ分布モデルを生成し、更新してもよい。ゆえに、仮想マシンコントローラ140は、クラウドレベルでレイテンシ及びジッタを監視し、様々なユーザ及びユーザアプリケーションについて特定のサービスレベル合意が満たされているかどうかに関してリアルタイムの判断を行うことができる。例えば、仮想マシンコントローラ140は、仮想マシンモニタ110及び関連づけられた仮想マシンがサービスレベル合意に基づくレイテンシ及びジッタ要件を含む定義されたパラメータを満たすことができるかどうかを決定することができる。そうでない場合、仮想マシンコントローラ140は、1つ以上の緩和又は補正処置を実行させてもよい。例えば、アプリケーションが、指定されたレイテンシ及びジッタ要件をサポートしていないシステム上で既に動作している場合、仮想マシンコントローラ140は、仮想マシンとVNF132‐nなどのアプリケーションとに、要件を満たすことができる異なる仮想マシンモニタ110にマイグレートさせてもよい。異なる例において、仮想マシンコントローラ140は、現在実行していない仮想マシン及びアプリケーションに、指定された要件を満たすことができる仮想マシンモニタ110上で開始させてもよい。別の例において、仮想マシンコントローラ140は、仮想マシンモニタ110内の1つ以上の構成変更をさせて、性能特性を向上させてもよい。実施例はこれらの例に限定されない。
【0026】
図1Bは、クラウドベースの計算環境のレイテンシ及びジッタを監視及び緩和するシステム150の例を示す。前述されたように、実施例は、互いの間でパケットを通信する各ネットワークインターフェース106‐p及び仮想ネットワークインターフェース126‐mを含んでよく、p及びmは任意の正整数でよい。ゆえに、パケットは、間欠的な間隔で、インターフェース(106及び126)のすべてに、及び該すべてから送信されることがある。これらのネットワークインターフェース106及び仮想ネットワークインターフェース126は、仮想マシンモニタ110によりサポートされる仮想マシンのためのネットワークサービスを提供してもよい。仮想マシンモニタ110は、ネットワークインターフェース106及び仮想ネットワークインターフェース126の間で通信されるパケットに基づいて瞬間的レイテンシ及びジッタを決定してもよい。
【0027】
パケットは、「アクティブセッション」の間、例えば、システム150がネットワーク機能仮想化(network function virtualization;NFV)を有効にするためにVNF132などのアプリケーションのための情報を処理しているとき、システム150に挿入されてもよい。ゆえに、パケットは、セッションパケットにより横断されるパスを正確に反映するために、処理回路102を通るリアルパスに挿入されてもよい。ゆえに、VNF132を含むNFV環境において、仮想マシンモニタ110は、パケット、例えばトレーサパケットを、リアルトラフィックとして扱ってもよい。しかしながら、パケットは、アプリケーションへの引渡し又はアプリケーションへの通過の前、仮想ネットワークインターフェース126の最終段階の前に除去されてもよい。いくつかの例において、パケットは、処理回路102を出る前に除去されてもよい。ゆえに、周期的パケット挿入がネットワークインターフェース106及び仮想ネットワークインターフェース126にわたりスケジュールでき、それにより、これらがスループットに影響しないことをパケットスケジューリングが確保するとき、トレーシングは、性能の観点で立ち入らない(non-intrusive)。例えば、パケットスケジューラは、それがセッションパケットが通信していないことを知っている周期又は間隔の間、トレーシングパケットの通信をさせる。実施例はこの方式に限定されない。
【0028】
仮想マシンモニタ110は、レイテンシ及びジッタ情報を決定し、それを仮想マシンコントローラ140に送信してもよい。仮想マシンモニタ110は、パケットドロップをさらに監視し、記録し、これは、仮想マシンコントローラ140にさらに送信され、補正処置を実行するために使用されてもよい。いくつかの実施例において、仮想マシンモニタ110は、トリガイベントに基づいて情報を仮想マシンコントローラ140に通信してもよい。例えば、情報は、瞬間的レイテンシがレイテンシ閾値を上回るとき、通信されてもよい。レイテンシ閾値は、例えば、サービスレベル合意において確立されたレイテンシ要件に基づいてもよい。別の例において、仮想マシンモニタ110は、サービスレベル合意におけるレイテンシ要件に同様に基づき得るレイテンシ閾値などの閾値をアベレージレイテンシが上回ると決定されたとき、情報を通信してもよい。実施例はこの方式で限定されず、いくつかの例において、仮想マシンコントローラ140が、周期的、半周期的、又は非周期的に情報をポーリングしてもよい。いくつかの例において、仮想マシンコントローラ140は、クラウドベースの計算環境において任意数の仮想マシンについて監視し、決定を行ってもよい。
【0029】
図1Cは、クラウドベースの計算環境においてレイテンシ及びジッタを監視及び緩和する例示的なシステム175を示す。システム175は、仮想マシンコントローラ140により監視できる複数の仮想マシンモニタ110‐qを含み、qは任意の正整数でよい。仮想マシンコントローラ140は、以下でより詳細に論じられるように、仮想マシンモニタ110‐qを監視することに限定されず、他の処置を実行してもよい。
【0030】
仮想マシンモニタ110‐qの各々は、仮想環境、又は仮想環境を提供するための仮想マシンに関連づけられてもよい。例えば、仮想マシンモニタ110は、ネットワーク機能仮想化を有効にし、かつVNF132アプリケーションを含む仮想マシンをサポートしてもよい。これらのVNF132アプリケーションは、厳しいレイテンシ及びジッタ要件を典型的に含む。仮想マシンモニタ110‐qの各々は、レイテンシ及びジッタ情報を仮想マシンコントローラ140に報告することができ、これは、VNF132などのアプリケーションのレイテンシ及びジッタ要件が満たされていることを確保する。仮想マシンコントローラ140は、例えば、要件が満たされていない場合、アプリケーション及び仮想マシンを異なる仮想マシンモニタ110に移動してもよい。仮想マシンモニタ110‐q及び仮想マシンコントローラ140の各々は、単一の計算デバイス若しくはサーバ、又は複数の計算デバイス若しくはサーバにわたり動作してもよいことに留意する。ゆえに、アプリケーション及び仮想マシンを移動することは、これらをあるデバイスから別のデバイスに移動することを含んでもよい。しかしながら、実施例はこの方式で限定されない。いくつかの例において、アプリケーション及び仮想マシンは、同じデバイス上の仮想マシンモニタ110間で移動されてもよい。
【0031】
いくつかの実施例において、仮想マシンコントローラ140は、仮想マシンモニタ110‐qの各々からレイテンシ及びジッタ情報を受信し、仮想マシンモニタ110‐qの各々について統計モデルを生成することができる。統計モデルは、ある期間にわたり仮想マシンモニタ110‐qの各々についてレイテンシ及びジッタ統計を記録してもよい。モデルは、仮想環境モニタの各々についてレイテンシ及びジッタに関して平均及び標準偏差を決定するために使用できるガウシアン分布を含んでもよい。これらのモデルは、特定の仮想マシンモニタ110‐qが仮想マシン及びアプリケーションの要件を満たすことができるかどうかを決定するために、仮想マシンコントローラ140により使用されてもよい。特定の仮想マシンモニタ110‐qが、モデルに基づいて仮想マシン及びアプリケーションをサポートすることができる場合、仮想マシンコントローラ140は、補正処置を行わなくてもよい。しかしながら、特定の仮想マシンモニタ110‐qが仮想マシン及びアプリケーションをサポートすることができない場合、仮想マシンコントローラ140は、異なる仮想マシンモニタ110‐q上に仮想マシン及びアプリケーションを移動し、あるいはインスタンス化してもよい。
【0032】
図2Aは、仮想環境における処理のための第1の論理フロー200の例を示す。論理フロー200は、本明細書で説明される1つ以上の実施例により実行される動作の一部又は全部の代表であり得る。例えば、論理フロー200は、
図1A~1Cに示される仮想マシンモニタ110により実行される動作を示し得る。様々な実施例はこの方式で限定されず、1つ以上の動作が、仮想マシンコントローラ140を含む他のコンポーネントにより実行されてもよい。
【0033】
ブロック202において、仮想マシンモニタが、1つ以上のネットワークインターフェース及び仮想ネットワークインターフェースに、互いの間でパケットを通信させてもよい。いくつかの実施例において、パケットは、システムの処理回路を通るリアルパスを表すアクティブセッションに挿入されるトレーサパケットでもよい。アクティブセッションは、1つ以上のアプリケーションにより処理されるべき又は処理されている情報が仮想マシンとクライアントデバイスとの間でさらに通信されるセッションでもよい。例えば、アクティブセッションの間、テレコム通信に関連する1つ以上のアクティブセッションパケットが、ネットワークインターフェース及び仮想ネットワークインターフェースの間でさらに通信されてもよい。これらのアクティブセッションパケットは、VNFなどのアプリケーションにより処理される情報を含んでもよい。
【0034】
実施例において、トレーサパケットは、アプリケーションにより処理される情報を有するアクティブセッションパケットと干渉しない。例えば、トレーサパケットは、アクティブセッションパケット通信の間で通信されてもよい。しかしながら、トレーサパケットは、処理回路を通るアクティブセッションパケットと同じパスをたどってもよく、しかし、処理回路を出る前に除去されてもよい。トレーサパケットは、さらに、通信パイプラインの異なるポイントで除去されてもよい。例えば、これらはさらに、アプリケーションへの引渡しの前、仮想ネットワークインターフェースの最終段階により取り除かれてもよい。
【0035】
トレーサパケットはさらに、これらがアクティブセッションパケットと干渉しないように周期的又は半周期的に通信されてもよい。例えば、トレーサパケットは、固定のフレーム間遅延(周期)で通信されてもよい。ゆえに、トレーサパケットは、アクティブセッションパケットのスループットに影響しない。
【0036】
実施例において、各ネットワークインターフェース及び各仮想ネットワークインターフェースは、トレーサパケットを、あらゆる他のネットワークインターフェース及び仮想ネットワークインターフェースに通信してもよい。さらに、ブロック204において、仮想マシンモニタは、トレーサパケットの通信に基づいて瞬間的レイテンシ及びジッタを決定してもよい。仮想マシンモニタは、ネットワークインターフェース及び仮想ネットワークインターフェースがトレーサパケットを毎回通信した後、瞬間的レイテンシ及びジッタを決定してもよい。レイテンシは、トレーサパケットがインターフェースにより通信されたときと、それがインターフェースにより受信されたときとの間の差に基づいて決定されてもよい。いくつかの実施例において、仮想マシンモニタは、インターフェースからこの情報を受信してもよい。さらに、仮想マシンモニタは、フレーム間周期中に通信される単一のトレーサパケット、複数のトレーサパケット、及びすべてのトレーサパケットの通信に基づいて、瞬間的レイテンシを決定してもよい。ジッタがさらに決定され、フレーム間周期中に通信されるこれらのトレーサパケットに基づいてもよい。
【0037】
ブロック206において、仮想マシンモニタは、瞬間的レイテンシ及びジッタを仮想マシンコントローラに通信してもよい。いくつかの実施例において、仮想マシンモニタは、レイテンシ及びジッタ要件が仮想マシンモニタにより満たされていないとき、レイテンシ及びジッタ情報を通信してもよい。前述されたように、これらの要件は、仮想マシンモニタによりサポートされる1つ以上のアプリケーションの性能要件を定義するサービスレベル合意に基づいてもよい。実施例はこの方式で限定されない。例えば、仮想マシンモニタは、各決定及び/又はフレーム間周期の後、レイテンシ及びジッタ情報を通信してもよい。
【0038】
図2Bは、仮想環境における処理のための第2の論理フロー220の例を示す。論理フロー220は、本明細書で説明される1つ以上の実施例により実行される動作の一部又は全部の代表であり得る。例えば、論理フロー220は、
図1A~1Cに示される仮想マシンコントローラにより実行される動作を示し得る。様々な実施例はこの方式で限定されない。様々な実施例は限定されず、1つ以上の動作が、仮想マシンモニタを含む他のコンポーネントにより実行されてもよい。
【0039】
ブロック222において、仮想マシンコントローラは、トレーサパケットなどの1つ以上のパケットを、1つ以上の仮想マシンモニタのためのネットワークインターフェース及び仮想ネットワークインターフェースにより通信させてもよい。例えば、仮想マシンコントローラは、トレーサパケットがアクティブセッションパケットと干渉しないように、1つ以上の仮想マシンモニタの各々がいつトレーサパケットを通信すべきかを決定するためのスケジューラ(図示されていない)を含んでもよい。
【0040】
ブロック224において、仮想マシンコントローラは、仮想マシンモニタからレイテンシ及びジッタ情報を受信してもよい。仮想マシンコントローラは、仮想マシンコントローラが制御している仮想環境内の仮想マシンモニタの各々からレイテンシ及びジッタ情報を受信することに留意する。しかしながら、情報は、仮想マシンモニタの各々についてのトレーサパケットの通信のスケジューリングに基づいて、異なる時間又は間隔で受信できる。レイテンシ及びジッタ情報は、単一又は複数のフレーム間周期中にトレーサパケットの通信に基づいて仮想マシンモニタにより決定される瞬間的レイテンシ及びジッタでもよい。
【0041】
ブロック226において、仮想マシンコントローラは、仮想マシンモニタの各々についてのある期間にわたるレイテンシ及びジッタ統計を含み得るレイテンシ及びジッタモデルを更新してもよい。例えば、レイテンシ及びジッタモデルは、仮想マシンモニタのある期間にわたるアベレージレイテンシ、仮想マシンモニタのピークレイテンシ、ピークレイテンシに関連づけられた時間などを示してもよい。この情報並びに瞬間的レイテンシ及びジッタは、ブロック228において、仮想マシン及び仮想マシンモニタによりホストされるアプリケーションの各々についてレイテンシ及びジッタ要件が満たされているかどうかを決定するために使用されてもよい。要件が満たされている場合、仮想マシンコントローラは、仮想マシンモニタのモデルを監視及び更新することを継続してもよい。
【0042】
ブロック230において、仮想マシンコントローラは、レイテンシ及びジッタ要件が1つ以上のアプリケーションについて満たされていることを確保するために補正処置を行ってもよい。例えば、仮想マシンコントローラは、仮想マシン及びアプリケーションを、要件を満たすのに失敗している仮想マシンモニタから、要件を満たす仮想マシンモニタにマイグレートしてもよい。いくつかの例において、仮想マシンコントローラは、レイテンシ及びジッタモデル、及び/又は瞬間的レイテンシ及びジッタ情報に基づいて、どの仮想マシンモニタが仮想マシン及びアプリケーションを移動すべきかを選択してもよい。いくつかの実施例において、仮想マシンコントローラにより実行される処置は、以下で
図2Cにより詳細に論じられるように、どこで仮想マシンをインスタンス化すべきかを決定することを含んでもよい。
【0043】
図2Cは、仮想環境における処理のための第3の論理フロー240の例を示す。論理フロー240は、本明細書で説明される1つ以上の実施例により実行される動作の一部又は全部の代表であり得る。例えば、論理フロー240は、
図1A~1Cに示される仮想マシンコントローラ140により実行される動作を示し得る。様々な実施例はこの方式で限定されない。様々な実施例は限定されず、1つ以上の動作が、仮想マシンモニタ110を含む他のコンポーネントにより実行されてもよい。
【0044】
ブロック242において、仮想マシンコントローラは、情報を処理するための1つ以上のアプリケーションを含む仮想マシンをインスタンス化するための要求を受信してもよい。いくつかの実施例において、要求はユーザにより生成され、ユーザ入力を有するユーザ対話に基づいてもよい。しかしながら、実施例はこの方式で限定されず、いくつかの例において、要求はコンピュータにより生成されてもよい。
【0045】
ブロック244において、仮想マシンコントローラは、仮想マシン及びアプリケーションの要件を、仮想マシンモニタのレイテンシ及びジッタモデルと比較してもよい。比較は、ブロック246において、どの仮想マシンモニタが仮想マシン及びアプリケーションをインスタンス化すべきかを決定するために使用されてもよい。例えば、仮想マシンコントローラは、仮想マシン及びアプリケーションのレイテンシ及びジッタ要件を満たすことができる利用可能な仮想マシンモニタを選択してもよい。いくつかの例において、モデルに基づき最も低いレイテンシを有する「最良」又は仮想のマシンモニタが選択されてもよい。ただし、実施例はこの方式で限定されない。さらに、ブロック248において、仮想マシンコントローラは、仮想マシン及びアプリケーションに、選択された仮想マシンモニタ上でインスタンス化させてもよい。
【0046】
図3は、レイテンシ及びジッタを監視することを含む仮想環境における処理のための第1の処理フロー300の例を示す。処理フロー300は、本明細書で説明される1つ以上の実施例により実行される動作の一部又は全部の代表であり得る。例えば、処理フロー300は、
図1A~1Cに示される仮想マシンコントローラ及び仮想マシンモニタにより実行される動作を示し得る。特定の動作が特定の順序で生じるものとして示されるが、実施例はこの方式で限定されない。1つ以上の動作が、他の動作の前、間、又は後に生じてもよい。
【0047】
ブロック302において、実施例は、仮想マシンコントローラ140が仮想マシンモニタ110に関連づけられたインターフェースにより通信されるトレーサパケットなどの1つ以上のパケットの通信をさせることを含む。例えば、仮想マシンコントローラ140は、インターフェースを介して通信されるトレーサパケットの通信をスケジュールしてもよい。ブロック304において、仮想マシンモニタ110は、1つ以上のトレーサパケットを通信し、あるいは該1つ以上のトレーサパケットの通信をさせてもよい。より具体的に、仮想マシンモニタ110は、ネットワークインターフェース及び仮想ネットワークインターフェースの各々に、互いに対してトレーサパケットを通信させてもよい。
【0048】
実施例において、仮想マシンモニタ110は、ブロック306においてトレーサパケットに基づいて瞬間的レイテンシ及びジッタを決定してもよい。さらに、ブロック308において、仮想マシンモニタは、レイテンシ及びジッタ情報の結果を仮想マシン協調(coordinate)140に通信してもよい。結果は、例えば、1つ以上の有線又は無線通信リンクを介して1つ以上のパケットとして通信されてもよい。
【0049】
ブロック310において、仮想マシンコントローラ140は、結果並びにレイテンシ及びジッタ情報に基づいてレイテンシ及びジッタモデルを更新してもよい。さらに、ブロック312において、仮想マシンコントローラ140は、仮想マシン及び1つ以上のアプリケーションを動作させる仮想マシンモニタ110が仮想マシン及びアプリケーションのレイテンシ及びジッタ要件を満たしている/超えているかどうかを決定する。仮想マシンモニタ110が要件を満たしている場合、仮想マシンコントローラ140は処置を行わなくてもよい。しかしながら、ブロック314において、仮想マシンモニタ110が仮想マシン及びアプリケーションの要件を提供又はサポートしていない場合、仮想マシンコントローラ140は処置を行ってもよい。例えば、仮想マシンコントローラ140は、仮想マシン及びアプリケーションに、要件をサポートすることができる異なる仮想マシンモニタ110にマイグレートさせてもよい。別の例において、仮想マシンコントローラ140は、結果に基づいて異なる仮想マシンモニタ110上で仮想マシン及びアプリケーションを開始してもよい。実施例はこの方式で限定されず、他の処置が実行されてもよい。例えば、ユーザ通知がユーザに通信されてもよく、これは警告メッセージの形式でもよい。
【0050】
図4は、第4の論理フロー
図400の実施例を示す。論理フロー400は、本明細書で説明される1つ以上の実施例により実行される動作の一部又は全部の代表であり得る。例えば、論理フロー400は、
図1A~1Cにおける1つ以上のシステム又はデバイスにより実行される動作を示し得る。様々な実施例はこの方式で限定されない。
【0051】
様々な実施例において、論理フロー400は、ブロック405において、仮想マシンモニタを通して1つ以上のネットワークインターフェースから1つ以上の他のネットワークインターフェースへ1つ以上のパケットの通信をさせることを含み得る。例えば、スケジューラが、仮想マシンモニタを介して動作する仮想マシンに関連づけられた各々のネットワークインターフェースと仮想ネットワークインターフェースとの間で1つ以上のトレーサパケットを通信させてもよい。いくつかの実施例において、仮想マシンは、VNFなどの1つ以上のアプリケーションをサポートし、動作させてもよい。
【0052】
ブロック410において、論理フロー400は、仮想マシンモニタを通して通信される1つ以上のパケットの各々に少なくとも部分的に基づいて、仮想マシンモニタのレイテンシ及びジッタのうち少なくとも1つを決定することを含み得る。例えば、仮想マシンコントローラが、仮想マシンモニタのレイテンシを決定するために、パケットの通信に基づいてレイテンシ及びジッタ情報を受信してもよい。
【0053】
ブロック415において、論理フローは、レイテンシ及びジッタのうち少なくとも1つが仮想マシンモニタ上の仮想マシンの定義されたパラメータを満たさないとき、補正処置を実行することを含む。例えば、サービスレベル合意が、仮想マシンのレイテンシ及びジッタ要件を含む1つ以上の定義されたパラメータを規定してもよい。実施例は、これらの要件が仮想マシンモニタより満たされていることを確保し、これらが満たされていないときに緩和又は補正処置を行うことを含んでもよい。例えば、仮想マシン及びアプリケーションが、異なる仮想マシンモニタにマイグレートされてもよい。別の例において、実施例は、異なる仮想マシンモニタ上で仮想マシン及びアプリケーションを開始することを含んでもよい。実施例はこれらの例に限定されない。
【0054】
図5は、システム500の一実施例を示す。様々な実施例において、システム500は、
図1A~1Cに示されるシステム及びデバイスなどの、本明細書で説明される1つ以上の実施例での使用に適したシステム又はアーキテクチャの代表であり得る。実施例はこの点で限定されない。
【0055】
図5に示されるように、システム500は複数の要素を含み得る。1つ以上の要素が、設計又は性能制約の所与のセットのため所望に応じて、1つ以上の回路、コンポーネント、レジスタ、プロセッサ、ソフトウェア、サブルーチン、モジュール、又はこれらの任意の組み合わせを使用して実現されてもよい。
図5は、例として特定のトポロジにおいて限られた数の要素を示すが、任意の適切なトポロジにおけるより多くの又はより少ない要素が、所与の実現のため所望に応じてシステム500で使用されてもよいことが十分理解できる。実施例はこの文脈で限定されない。
【0056】
様々な実施例において、システム500は、パーソナルコンピュータ、デスクトップコンピュータ、タブレットコンピュータ、ネットブックコンピュータ、ノートブックコンピュータ、ラップトップコンピュータ、サーバ、サーバファーム、ブレードサーバ、又は任意の他タイプのサーバなどを含む、任意タイプのコンピュータ又は処理デバイスであり得るコンピューティングデバイス505を含み得る。
【0057】
様々な実施例において、コンピューティングデバイス505はプロセッサ回路502を含み得る。プロセッサ回路502は、任意のプロセッサ又は論理デバイスを使用して実現されてもよい。処理回路502は、これらに限られないがマイクロプロセッサ、プロセッサ、中央処理ユニット、デジタル信号処理ユニット、デュアルコアプロセッサ、モバイルデバイスプロセッサ、デスクトッププロセッサ、シングルコアプロセッサ、システムオンチップ(SoC)デバイス、複合命令セットコンピューティング(CISC)マイクロプロセッサ、縮小命令セット(RISC)マイクロプロセッサ、超長命令語(VLIW)マイクロプロセッサ、又は単一チップ若しくは集積回路上の任意の他タイプのプロセッサ若しくは処理回路などの、任意タイプの計算要素のうち1つ以上でもよい。処理回路502は、1つ以上のバス、制御ライン、及びデータラインなどのインターコネクト543を介して、コンピューティングシステムの他の要素に接続され、該他の要素と通信してもよい。
【0058】
一実施例において、コンピューティングデバイス505は、プロセッサ回路502に結合するメモリユニット504を含み得る。メモリユニット504は、所与の実現のため所望に応じて、通信バス543を介して、又はプロセッサ回路502及びメモリユニット504の間の専用通信バスにより、プロセッサ回路502に結合されてもよい。メモリユニット504は、揮発及び不揮発メモリの双方を含む、データを記憶できる任意のマシン読取可能又はコンピュータ読取可能媒体を使用して実現されてもよい。いくつかの実施例において、マシン読取可能又はコンピュータ読取可能媒体は非一時的媒体を含んでもよい。実施例はこの文脈で限定されない。
【0059】
コンピューティングデバイス505は、様々な実施例において、グラフィックス処理ユニット(GPU)506を含み得る。GPU506は、グラフィックス関連動作並びにビデオデコーダエンジン及びフレーム相関エンジンを実行するように最適化された任意の処理ユニット、論理、又は回路を含んでもよい。GPU506は、ビデオゲーム、グラフィックス、コンピュータ支援設計(CAD)、シミュレーション及び視覚化ツール、イメージング等などの様々なアプリケーションの2次元(2D)及び/又は3次元(3D)イメージをレンダリングするために使用されてもよい。様々な実施例はこの方式で限定されない。GPU506は、ピクチャ、ビデオ、プログラム、アニメーション、3D、2D、オブジェクトイメージなどの任意タイプのグラフィックスを処理してもよい。
【0060】
いくつかの実施例において、コンピューティングデバイス505はディスプレイコントローラ508を含み得る。ディスプレイコントローラ508は、グラフィックス情報を処理しグラフィックス情報を表示するための任意タイプのプロセッサ、コントローラ、回路、論理などでもよい。ディスプレイコントローラ508は、1つ以上のバッファからグラフィックス情報を受信し、あるいは取り出してもよい。情報を処理した後、ディスプレイコントローラ508は、グラフィックス情報をディスプレイに送信してもよい。
【0061】
様々な実施例において、システム500は送受信機544を含み得る。送受信機544は、様々な適切な無線通信技術を使用して信号を送信及び受信することができる1つ以上の無線機を含んでもよい。こうした技術には、1つ以上の無線ネットワークにわたる通信を含んでもよい。例示的な無線ネットワークは、(これらに限られないが)無線ローカルエリアネットワーク(WLAN)、無線パーソナルエリアネットワーク(WPAN)、無線メトロポリタンエリアネットワーク(WMAN)、セルラーネットワーク、及び衛星ネットワークを含む。それは、(これらに限られないが)イーサネット、パケット光ネットワーク、(データセンター)ネットワークファブリック等を含み得る有線ネットワーキングのための送受信機をさらに含んでもよい。こうしたネットワークにわたり通信する際、送受信機544は、任意のバージョンの1つ以上の適用可能な標準に従って動作してもよい。実施例はこの文脈で限定されない。
【0062】
様々な実施例において、コンピューティングデバイス505はディスプレイ545を含み得る。ディスプレイ545は、プロセッサ回路502、グラフィックス処理ユニット506、及びディスプレイコントローラ508から受信された情報を表示することができる任意のディスプレイデバイスを構成してよい。
【0063】
様々な実施例において、コンピューティングデバイス505は記憶装置546を含み得る。記憶装置546は、これらに限られないが磁気ディスクドライブ、光学ディスクドライブ、テープドライブ、内部記憶装置、取り付け記憶装置、フラッシュメモリ、バッテリバックアップ付きSDRAM(同期DRAM)、及び/又はネットワークアクセス可能記憶装置などの、任意の不揮発記憶装置として実現されてよい。実施例において、記憶装置546は、例えば、複数のハードドライブが含まれるときに高価なデジタル媒体の記憶性能強化保護を増大させる技術を含んでもよい。記憶装置546のさらなる例には、ハードディスク、フロッピーディスク、コンパクトディスク読取専用メモリ(CD‐ROM)、コンパクトディスクレコーダブル(CD‐R)、コンパクトディスクリライタブル(CD‐RW)、光ディスク、磁気媒体、磁気光媒体、取外し可能メモリカード若しくはディスク、様々なタイプのDVDデバイス、テープデバイス、カセットデバイスなどを含んでもよい。実施例はこの文脈で限定されない。
【0064】
様々な実施例において、コンピューティングデバイス505は1つ以上のI/Oアダプタ547を含み得る。I/Oアダプタ547の例は、ユニバーサルシリアルバス(USB)ポート/アダプタ、IEEE1394 Firewireポート/アダプタなどを含んでもよい。実施例はこの文脈で限定されない。
【0065】
図6は、前に説明された様々な実施例を実現するのに適した例示的なコンピューティングアーキテクチャ600の実施例を示す。一実施例において、コンピューティングアーキテクチャ600は、前に論じられた1つ以上のシステム及びデバイスの一部を含み、あるいは該一部として実現されてもよい。
【0066】
本出願で用いられるとき、用語「システム」及び「コンポーネント」は、コンピュータ関連エンティティ、ハードウェア、ハードウェア及びソフトウェアの組み合わせ、ソフトウェア、又は実行中のソフトウェアのいずれかを参照するよう意図され、これらの例が、例示的なコンピューティングアーキテクチャ600により提供される。例えば、コンポーネントは、これらに限られないがプロセッサ上で実行するプロセス、プロセッサ、ハードディスクドライブ、(光及び/又は磁気記憶媒体の)複数の記憶装置ドライブ、オブジェクト、実行ファイル、実行スレッド、プログラム、及び/又はコンピュータであり得る。例として、サーバ上で実行するアプリケーションとサーバとの双方がコンポーネントであり得る。1つ以上のコンポーネントが、実行のプロセス及び/又はスレッド内に存在してもよく、コンポーネントは、1つのコンピュータ上に局所化でき、かつ/あるいは2つ以上のコンピュータ間で分散できる。さらに、コンポーネントは、動作を協調するために様々なタイプの通信媒体により互いに対して通信可能に結合されてもよい。協調は、情報の単方向又は双方向の交換を含んでもよい。例えば、コンポーネントは、通信媒体を通じて通信される信号の形式で情報を通信してもよい。情報は、様々な信号ラインに割り振られた信号として実現できる。こうした割り振りにおいて、各メッセージは信号である。しかしながら、さらなる実施例がデータメッセージを代替的に採用してもよい。こうしたデータメッセージは、様々な接続にわたり送信されてもよい。例示的な接続は、パラレルインターフェース、シリアルインターフェース、及びバスインターフェースを含む。
【0067】
コンピューティングアーキテクチャ600は、様々な一般的コンピューティング要素、例えば、1つ以上のプロセッサ、マルチコアプロセッサ、コプロセッサ、メモリユニット、チップセット、コントローラ、周辺装置、インターフェース、発振器、タイミングデバイス、ビデオカード、オーディオカード、マルチメディア入力/出力(I/O)コンポーネント、電源などを含む。しかしながら、実施例は、コンピューティングアーキテクチャ600による実装に限定されない。
【0068】
図6に示されるように、コンピューティングアーキテクチャ600は、処理ユニット604、システムメモリ606、及びシステムバス608を含む。処理ユニット604は、市販のプロセッサ、例えば、
図1Aに示される処理回路を参照して説明されたものなどでもよい。
【0069】
システムバス608は、これらに限られないが処理ユニット604対メモリ606を含むシステムコンポーネントのためのインターフェースを提供する。システムバス608は、様々な市販のバスアーキテクチャ構造のうち任意のものを使用してメモリバス(メモリコントローラを有し又は有さない)、周辺装置バス、及びローカルバスにさらに相互接続し得るいくつかのタイプのバス構造のうち任意のものでもよい。インターフェースアダプタが、スロットアーキテクチャを介してシステムバス608に接続してもよい。例示的なスロットアーキテクチャは、アクセラレーテッドグラフィックスポート(Accelerated Graphics Port;AGP)、カードバス、(拡張)インダストリスタンダードアーキテクチャ((Extended)Industry Standard Architecture;(E)ISA)、マイクロチャネルアーキテクチャ(Micro Channel Architecture;MCA)、ニューバス(NuBus)、ペリフェラルコンポーネントインターコネクト(拡張)(Peripheral Component Interconnect (Extended);PCI(X))、PCIエクスプレス、パーソナルコンピュータメモリカードインターナショナルアソシエーション(Personal Computer Memory Card International Association;PCMCIA)などを限定なく含んでもよい。
【0070】
コンピューティングアーキテクチャ600は、様々な製造品を含み、あるいは実装してもよい。製造品は、論理を記憶するためのコンピュータ読取可能記憶媒体を含んでもよい。コンピュータ読取可能記憶媒体の例は、揮発メモリ又は不揮発メモリ、取外し可能又は取外し不能メモリ、消去可能又は消去不能メモリ、書き込み可能又は再書き込み可能メモリなどを含む、電子データを記憶できる任意の有形媒体を含んでもよい。論理の例は、任意の適切なタイプのコード、例えば、ソースコード、コンパイルコード、解釈コード、実行可能コード、静的コード、動的コード、オブジェクト指向コード、ビジュアルコードなどを使用して実現される実行可能コンピュータプログラム命令を含んでもよい。実施例は、さらに、本明細書で説明される動作の実行を可能にするために1つ以上のプロセッサにより読み出し及び実行され得る、非一時的コンピュータ読取可能媒体内又は該媒体上に含まれる命令として少なくとも部分的に実現されてもよい。
【0071】
システムメモリ606は、読取専用メモリ(ROM)、ランダムアクセスメモリ(RAM)、動的ランダムアクセスメモリ(DRAM)、ダブルデータレートDRAM(DDRAM)、同期DRAM(SDRAM)、静的RAM(SRAM)、プログラマブルROM(PROM)、消去可能プログラマブルROM(EPROM)、電気的消去可能プログラマブルROM(EEPROM)、フラッシュメモリ、ポリマーメモリ、例えば強誘電体ポリマーメモリ、オボニックメモリ、相変化又は強誘電体メモリなど、SONOS(silicon-oxide-nitride-oxide-silicon)メモリ、磁気又は光カード、RAID(Redundant Array of Independent Disks)ドライブなどのデバイスのアレイ、ソリッドステートメモリデバイス(例えば、USBメモリ、ソリッドステートドライブ(SSD)、及び情報を記憶するのに適した任意の他タイプの記憶媒体などの、1つ以上のより高速のメモリユニットの形式の様々なタイプのコンピュータ読取可能記憶媒体を含んでもよい。
図6に示される例示の実施例において、システムメモリ606は不揮発メモリ610及び/又は揮発メモリ612を含むことができる。基本入力/出力システム(BIOS)が不揮発メモリ610に記憶されてもよい。
【0072】
コンピュータ602は、内部(又は外部)ハードディスクドライブ(HDD)614、取外し可能磁気ディスク618から読み出し又は取外し可能磁気ディスク618に書き込むための磁気フロッピーディスクドライブ(FDD)616、取外し可能光ディスク622(例えば、CD‐ROM又はDVD)から読み出し又は取外し可能光ディスク622に書き込むための光学ディスクドライブ620を含む、1つ以上のより低速のメモリユニットの形式の様々なタイプのコンピュータ読取可能記憶媒体を含んでもよい。HDD614、FDD616、及び光学ディスクドライブ620は、それぞれ、HDDインターフェース624、FDDインターフェース626、及び光学ドライブインターフェース628によりシステムバス608に接続できる。外部ドライブ実装のためのHDDインターフェース624は、ユニバーサルシリアルバス(USB)及びIEEE1394インターフェース技術のうち少なくとも1つ又は双方を含むことができる。
【0073】
ドライブ及び関連づけられたコンピュータ読取可能媒体は、データ、データ構造、コンピュータ実行可能命令などの揮発及び/又は不揮発記憶を提供する。例えば、オペレーティングシステム630、1つ以上のアプリケーションプログラム632、他のプログラムモジュール634、及びプログラムデータ636を含む複数のプログラムモジュールが、ドライブ及びメモリユニット610、612に記憶されてもよい。一実施例において、1つ以上のアプリケーションプログラム632、他のプログラム634、及びプログラムデータ636は、例えば、システム105の様々なアプリケーション及び/又はコンポーネントを含むことができる。
【0074】
ユーザは、1つ以上の有線/無線入力デバイス、例えば、キーボード638、及びマウス640などのポインティングデバイスを通して、コマンド及び情報をコンピュータ602に入力することができる。他の入力デバイスには、マイクロフォン、赤外線(IR)リモートコントロール、無線周波数(RF)リモートコントロール、ゲームパッド、スタイラスペン、カードリーダ、ドングル、指紋リーダ、グローブ、グラフィックスタブレット、ジョイスティック、キーボード、網膜リーダ、タッチスクリーン(例えば、容量性、抵抗性等)、トラックボール、トラックパッド、センサ、スタイラスなどを含んでもよい。これら及び他の入力デバイスは、システムバス608に結合された入力デバイスインターフェース642を通して処理ユニット604にしばしば接続されるが、パラレルポート、IEEE1394シリアルポート、ゲームポート、USBポート、IRインターフェースなどの他のインターフェースにより接続されてもよい。
【0075】
モニタ644又は他のタイプのディスプレイデバイスが、ビデオアダプタ646などのインターフェースを介してシステムバス608にさらに接続される。モニタ644は、コンピュータ602に対して内部又は外部であり得る。モニタ644に追加で、コンピュータは、スピーカ、プリンタなどの他の周辺装置出力デバイスを典型的に含む。
【0076】
コンピュータ602は、リモートコンピュータ648などの1つ以上のリモートコンピュータに対する有線及び/又は無線通信を介しての論理接続を使用してネットワーク化環境で動作してもよい。リモートコンピュータ648は、ワークステーション、サーバコンピュータ、ルータ、パーソナルコンピュータ、ポータブルコンピュータ、マイクロプロセッサベースの娯楽電化製品、ピアデバイス、又は他の一般的ネットワークノードでもよく、コンピュータ602に対して説明された要素の多く又はすべてを典型的に含むが、簡潔さのため、メモリ/記憶デバイス650のみが例示される。図示の論理接続は、ローカルエリアネットワーク(LAN)652及び/又はより大きいネットワーク、例えば、ワイドエリアネットワーク(WAN)654に対する有線/無線接続性を含む。こうしたLAN及びWANネットワーキング環境は、オフィス及び会社において普通であり、イントラネットなどの企業範囲のコンピュータネットワークを容易にし、これらのすべてが、グローバル通信ネットワーク、例えば、インターネットに接続してもよい。
【0077】
LANネットワーキング環境で使用されるとき、コンピュータ602は、有線及び/又は無線通信ネットワークインターフェース又はアダプタ656を通してLAN652に接続される。アダプタ656は、LAN652に対する有線及び/又は無線通信を容易にすることができ、LAN652は、アダプタ656の無線機能性と通信するためにそれに配設された無線アクセスポイントをさらに含んでもよい。
【0078】
WANネットワーキング環境で使用されるとき、コンピュータ602は、モデム658を含むことができ、あるいはWAN654上の通信サーバに接続され、あるいはインターネットを用いてなどのWAN654を通じての通信を確立する他の手段を有する。内部又は外部であり、有線及び/又は無線デバイスであり得るモデム658は、入力デバイスインターフェース642を介してシステムバス608に接続する。ネットワーク化環境において、コンピュータ602に対して図示されたプログラムモジュール又はその一部は、リモートメモリ/記憶デバイス650に記憶されてもよい。図示のネットワーク接続は例示的であり、コンピュータ間の通信リンクを確立する他の手段が使用されてもよいことが十分理解される。
【0079】
コンピュータ602は、無線通信(例えば、IEEE802.11無線変調技術)において動作可能に配設された無線デバイスなどの、IEEE802ファミリの標準を使用する有線及び無線デバイス又はエンティティと通信するよう動作可能である。これは、とりわけ、少なくともWiFi(又は、ワイヤレスフィデリティ(Wireless Fidelity))、WiMax(登録商標)、及びBluetooth(登録商標)無線技術、3G、4G、LTE無線技術を含む。ゆえに、通信は、従来のネットワークのように予め定義された構造でもよく、あるいは単に、少なくとも2つのデバイス間のアドホック通信でもよい。WiFiネットワークは、IEEE802.11x(a、b、g、n等)と呼ばれる無線技術を使用して、セキュアな、信頼性のある、高速の無線接続性を提供する。WiFiネットワークは、コンピュータを互いに、インターネットに、及び(IEEE802.3関連の媒体及び機能を使用する)有線ネットワークに接続するために使用できる。
【0080】
図1~5を参照して前に説明された様々な要素及びコンポーネントは、様々なハードウェア要素、ソフトウェア要素、又は双方の組み合わせを含んでもよい。ハードウェア要素の例は、デバイス、論理デバイス、コンポーネント、プロセッサ、マイクロプロセッサ、回路、プロセッサ、回路素子(例えば、トランジスタ、抵抗器、キャパシタ、インダクタなど)、集積回路、特定用途向け集積回路(ASIC)、プログラマブル論理デバイス(PLD)、デジタル信号プロセッサ(DSP)、フィールドプログラマブルゲートアレイ(FPGA)、メモリユニット、論理ゲート、レジスタ、セミコンダクタデバイス、チップ、マイクロチップ、チップセットなどを含んでもよい。ソフトウェア要素の例は、ソフトウェアコンポーネント、プログラム、アプリケーション、コンピュータプログラム、アプリケーションプログラム、システムプログラム、ソフトウェア開発プログラム、マシンプログラム、オペレーティングシステムソフトウェア、ミドルウェア、ファームウェア、ソフトウェアモジュール、ルーチン、サブルーチン、ファンクション、メソッド、プロシージャ、ソフトウェアインターフェース、アプリケーションプログラムインターフェース(API)、命令セット、コンピューティングコード、コンピュータコード、コードセグメント、コンピュータコードセグメント、ワード、値、シンボル、又はこれらの任意の組み合わせを含んでもよい。しかしながら、実施例がハードウェア要素を使用して実現されるか及び/又はソフトウェア要素を使用して実現されるかを決定することは、所与の実装のために所望されるとおり、所望の計算レート、電力レベル、熱耐性、処理サイクルバジェット、入力データレート、出力データレート、メモリリソース、データバス速度、及び他の設計又は性能制約などの任意数のファクタに従って変動してもよい。
【0081】
次に、詳細な開示は、さらなる実施例に属する例を提供することに移る。以下に提供される例1乃至32(1~32)は、例示であり非限定的であることが意図される。
【0082】
第1の例において、システム、デバイス、装置が、1つ以上のネットワーキングインターフェースメモリと、上記メモリに結合された処理回路と、上記処理回路により少なくとも部分的に実現される論理とを含み得る。上記論理は、仮想マシンモニタを通して1つ以上のネットワークインターフェースから1つ以上のパケットの通信をさせ、上記仮想マシンモニタを通して通信される上記1つ以上のパケットに少なくとも部分的に基づいて上記仮想マシンモニタのレイテンシ又はジッタを決定し、上記レイテンシ又は上記ジッタが上記仮想マシンモニタ上の仮想マシンの定義されたパラメータを満たさないとき、補正処置を実行する。
【0083】
第2の例において、及び第1の例の増進において、システム、デバイス、装置は、上記論理が上記補正処置のために上記仮想マシンモニタ上の上記仮想マシンを異なる仮想マシンモニタに移動することを含み得る。
【0084】
第3の例において、及び任意の前の例の増進において、システム、デバイス、装置は、上記論理が上記補正処置のために異なる仮想マシンモニタ上で上記仮想マシンを開始することを含み得る。
【0085】
第4の例において、及び任意の前の例の増進において、システム、デバイス、装置は、上記定義されたパラメータが上記仮想マシンのサービスレベル合意において指定されたレイテンシ要件及びジッタ要件のうち1つ以上を含むことを含み得る。
【0086】
第5の例において、及び任意の前の例の増進において、システム、デバイス、装置は、上記論理が複数の仮想マシンモニタの各々についてレイテンシ及びジッタを決定し、上記決定されたレイテンシ及びジッタに少なくとも部分的に基づいてレイテンシ及びジッタモデルを生成することを含み得る。
【0087】
第6の例において、及び任意の前の例の増進において、システム、デバイス、装置は、上記論理が上記仮想マシンの上記レイテンシ及びジッタモデル並びにサービスレベル合意に基づいて上記複数の仮想マシンモニタのうち1つで上記仮想マシンを開始することを含み得る。
【0088】
第7の例において、及び任意の前の例の増進において、システム、デバイス、装置は、上記論理が各ネットワークインターフェースに、上記仮想マシンモニタを通して各々の他のネットワークインターフェースへパケットを通信させて、上記ネットワークインターフェース間の瞬間的レイテンシを決定することを含み得る。
【0089】
第8の例において、及び任意の前の例の増進において、システム、デバイス、装置は、上記論理が各ネットワークインターフェースに、周期的に上記仮想マシンモニタを通して各々の他のネットワークインターフェースへパケットを通信させ、各通信の後、瞬間的レイテンシを決定し、少なくとも上記瞬間的レイテンシを使用して、各周期の後、レイテンシ及びジッタモデルを更新することを含み得る。
【0090】
第9の例において、及び任意の前の例の増進において、システム、デバイス、装置は、上記ネットワークインターフェースのうち少なくとも1つが、上記仮想マシンモニタによりサポートされる仮想マシンの仮想ネットワークインターフェースを含むことを含み得る。
【0091】
第10の例において、及び任意の前の例の増進において、コンピュータ読取可能記憶媒体が複数の命令を含み、上記複数の命令は、処理回路により実行されたときに処理回路が仮想マシンモニタを通して1つ以上のネットワークインターフェースから1つ以上の他のネットワークインターフェースへ1つ以上のパケットの通信をさせ、上記仮想マシンモニタを通して通信される上記1つ以上のパケットの各々に少なくとも部分的に基づいて上記仮想マシンモニタのレイテンシ又はジッタを決定し、上記レイテンシ又は上記ジッタが上記仮想マシンモニタ上の仮想マシンの定義されたパラメータを満たさないとき、補正処置を実行することを可能にする。
【0092】
第11の例において、及び任意の前の例の増進において、コンピュータ読取可能記憶媒体は、処理回路により実行されたときに処理回路が上記補正処置のために上記仮想マシンモニタ上の上記仮想マシンを異なる仮想マシンモニタに移動することを可能にする複数の命令を含む。
【0093】
第12の例において、及び任意の前の例の増進において、コンピュータ読取可能記憶媒体は、処理回路により実行されたときに処理回路が上記補正処置のために異なる仮想マシンモニタ上で上記仮想マシンを開始することを可能にする複数の命令を含む。
【0094】
第13の例において、及び任意の前の例の増進において、コンピュータ読取可能記憶媒体は、上記定義されたパラメータが上記仮想マシンのサービスレベル合意において指定されたレイテンシ要件及びジッタ要件のうち少なくとも1つを含むことを有する複数の命令を含む。
【0095】
第14の例において、及び任意の前の例の増進において、コンピュータ読取可能記憶媒体は、処理回路により実行されたときに処理回路が複数の仮想マシンモニタの各々についてレイテンシ及びジッタを決定し、上記決定されたレイテンシに少なくとも部分的に基づいてレイテンシ及びジッタモデルを生成することを可能にする複数の命令を含む。
【0096】
第15の例において、及び任意の前の例の増進において、コンピュータ読取可能記憶媒体は、処理回路により実行されたときに処理回路が上記仮想マシンの上記レイテンシ及びジッタモデル並びにサービスレベル合意に基づいて上記複数の仮想マシンモニタのうち1つで上記仮想マシンを開始することを可能にする複数の命令を含む。
【0097】
第16の例において、及び任意の前の例の増進において、コンピュータ読取可能記憶媒体は、処理回路により実行されたときに処理回路が各ネットワークインターフェースに、上記仮想マシンモニタを通して各々の他のネットワークインターフェースへパケットを通信させて、上記ネットワークインターフェース間の瞬間的レイテンシを決定することを可能にする複数の命令を含む。
【0098】
第17の例において、及び任意の前の例の増進において、コンピュータ読取可能記憶媒体は、処理回路により実行されたときに処理回路が各ネットワークインターフェースに、周期的に上記仮想マシンモニタを通して各々の他のネットワークインターフェースへパケットを通信させ、各通信の後、瞬間的レイテンシを決定し、少なくとも上記瞬間的レイテンシを使用して、各周期の後、レイテンシ及びジッタモデルを更新することを可能にする複数の命令を含む。
【0099】
第18の例において、及び任意の前の例の増進において、コンピュータ読取可能記憶媒体は、処理回路により実行されたときに処理回路が、上記ネットワークインターフェースのうち少なくとも1つが上記仮想マシンモニタによりサポートされる仮想マシンの仮想ネットワークインターフェースを含むことを可能にする複数の命令を含む。
【0100】
第19の例において、及び任意の前の例の増進において、コンピュータにより実現される方法が、仮想マシンモニタを通して1つ以上のネットワークインターフェースから1つ以上の他のネットワークインターフェースへ1つ以上のパケットの通信をさせるステップと、上記仮想マシンモニタを通して通信される上記1つ以上のパケットの各々に少なくとも部分的に基づいて上記仮想マシンモニタのレイテンシ又はジッタを決定するステップと、上記レイテンシ又は上記ジッタが上記仮想マシンモニタ上の仮想マシンの定義されたパラメータを満たさないとき、補正処置を実行するステップと、を含み得る。
【0101】
第20の例において、及び任意の前の例の増進において、コンピュータにより実現される方法は、上記補正処置が上記仮想マシンモニタ上の上記仮想マシンを異なる仮想マシンモニタに移動すること及び上記補正処置のために異なる仮想マシンモニタ上で上記仮想マシンを開始することのうち1つ以上を含むことを含み得る。
【0102】
第21の例において、及び任意の前の例の増進において、コンピュータにより実現される方法は、上記定義されたパラメータが上記仮想マシンのサービスレベル合意において指定されたレイテンシ要件及びジッタ要件のうち少なくとも1つを含むことを含み得る。
【0103】
第22の例において、及び任意の前の例の増進において、コンピュータにより実現される方法は、複数の仮想マシンモニタの各々についてレイテンシ及びジッタを決定するステップと、上記決定されたレイテンシ及びジッタに少なくとも部分的に基づいてレイテンシ及びジッタモデルを生成するステップと、を含み得る。
【0104】
第23の例において、及び任意の前の例の増進において、コンピュータにより実現される方法は、上記仮想マシンの上記レイテンシ及びジッタモデル並びにサービスレベル合意に基づいて上記複数の仮想マシンモニタのうち1つで上記仮想マシンを開始するステップを含み得る。
【0105】
第24の例において、及び任意の前の例の増進において、コンピュータにより実現される方法は、各ネットワークインターフェースに、上記仮想マシンモニタを通して各々の他のネットワークインターフェースへパケットを通信させて、上記ネットワークインターフェース間の瞬間的レイテンシを決定するステップを含み得る。
【0106】
第25の例において、及び任意の前の例の増進において、コンピュータにより実現される方法は、各ネットワークインターフェースに、周期的に上記仮想マシンモニタを通して各々の他のネットワークインターフェースへパケットを通信させるステップと、各通信の後、瞬間的レイテンシを決定するステップと、少なくとも上記瞬間的レイテンシを使用して、各周期の後、レイテンシ及びジッタモデルを更新するステップと、を含み得る。
【0107】
第26の例において、及び任意の前の例の増進において、システム及び装置が、仮想マシンモニタを通して1つ以上のネットワークインターフェースから1つ以上の他のネットワークインターフェースへ1つ以上のパケットの通信をさせる手段と、上記仮想マシンモニタを通して通信される上記1つ以上のパケットの各々に少なくとも部分的に基づいて上記仮想マシンモニタのレイテンシ又はジッタを決定する手段と、上記レイテンシ又は上記ジッタが上記仮想マシンモニタ上の仮想マシンの定義されたパラメータを満たさないとき、補正処置を実行する手段と、を含み得る。
【0108】
第27の例において、及び任意の前の例の増進において、システム及び装置は、上記仮想マシンモニタ上の上記仮想マシンを異なる仮想マシンモニタに移動する手段と、上記補正処置のために異なる仮想マシンモニタ上で上記仮想マシンを開始する手段と、を含む。
【0109】
第29の例において、及び任意の前の例の増進において、装置又はシステムは、複数の仮想マシンモニタの各々についてレイテンシ及びジッタを決定する手段と、上記決定されたレイテンシ及びジッタに少なくとも部分的に基づいてレイテンシ及びジッタモデルを生成する手段と、を含み得る。
【0110】
第30の例において、及び任意の前の例の増進において、システム又は装置は、上記仮想マシンの上記レイテンシ及びジッタモデル並びにサービスレベル合意に基づいて上記複数の仮想マシンモニタのうち1つで上記仮想マシンを開始する手段を含み得る。
【0111】
第31の例において、及び任意の前の例の増進において、システム又は装置は、各ネットワークインターフェースに、上記仮想マシンモニタを通して各々の他のネットワークインターフェースへパケットを通信させて、上記ネットワークインターフェース間の瞬間的レイテンシを決定する手段を含み得る。
【0112】
第32の例において、及び任意の前の例の増進において、システム又は装置は、各ネットワークインターフェースに、周期的に上記仮想マシンモニタを通して各々の他のネットワークインターフェースへパケットを通信させる手段と、各通信の後、瞬間的レイテンシを決定する手段と、少なくとも上記瞬間的レイテンシを使用して、各周期の後、レイテンシ及びジッタモデルを更新する手段と、を含む。
【0113】
いくつかの実施例が、表現「一実施例」又は「実施例」をその派生語と共に使用して説明され得る。これらの用語は、実施例と関連して説明された特定の特徴、構造、又は特性少なくとも1つの実施例に含まれることを意味する。本明細書の様々な箇所におけるフレーズ「一実施例において」の出現は、必ずしもすべて同じ実施例を参照していない。さらに、いくつかの実施例が、表現「結合される」及び「接続される」をその派生語と共に使用して説明され得る。これらの用語は、必ずしも互いの同意語として意図されない。例えば、いくつかの実施例は、2つ以上の要素が互いに直接物理的又は電気的に接触することを示すために、用語「結合される」及び/又は「接続される」を使用して説明され得る。しかしながら、用語「結合される」は、2つ以上の要素が互いに直接接触しないがなお依然として互いに協働又は相互作用することをさらに意味し得る。
【0114】
本開示の要約書は、読み手が技術開示の性質を迅速に確かめられるように提供されていることが強調される。それは、請求項の範囲又は意味を解釈又は限定することに使用されないという理解と共に提出されている。さらに、前述の詳細な説明において、様々な特徴が、開示を合理化する目的で単一の実施例に一緒にグループ化されていることがわかる。この開示方法は、請求される実施例が各請求項に明示的に列挙されているよりもより多くの特徴を要するという意図を反映するものと解釈されるべきでない。むしろ、以下の請求項が反映するように、発明対象事項は、単一の開示の実施例のすべての特徴より少ない特徴に存在する。ゆえに、以下の請求項は、各請求項が別個の実施例として自立し、詳細な説明にここで組み込まれる。別記の請求項において、用語「including」及び「in which」は、それぞれ、分かりやすい英語の均等物のそれぞれの用語「comprising」及び「wherein」として使用される。さらに、用語「第1」、「第2」、「第3」などは、単にラベルとして使用され、その対象に数的要件を課すことは意図されない。
【0115】
上記で説明されたことは、開示のアーキテクチャの例を含む。当然ながら、コンポーネント及び/又は方法論のあらゆる考えられる組み合わせを説明することは不可能であり、しかし当業者は、多くのさらなる組み合わせ及び配列が可能であることを認識し得る。したがって、新規のアーキテクチャは、別記の請求項の主旨及び範囲内に入るすべてのこうした変更、修正、及び変形を包含することが意図される。