(57)【要約】  仮想マシンを実行するハイパーバイザによって実行される、仮想マシンとピアノードとの間のパフォーマンス測定を可能にするための方法と、ハイパーバイザを備える物理マシンによって実行される方法とが提供される。ハイパーバイザによって実行される方法は、仮想マシンから、または仮想マシン宛てに送信されたパケットであって、仮想マシンまたはピアノードへの宛先アドレスを含むパケット、を傍受し（１１０）、パケットにハイパーバイザタイムスタンプを挿入すべきか否かを決定することを含む。本方法は、パケットにハイパーバイザタイムスタンプを挿入すると決定されたときに、パケットにハイパーバイザタイムスタンプを挿入すること（１２０）と、宛先アドレスに従ってパケットをその宛先に転送すること（１３０）とをさらに含む。【選択図】図３ａ
2016517202.tif 000002
【特許請求の範囲】
【請求項１】
仮想マシンと関連付けられたハイパーバイザによって実行される、前記仮想マシンとピアノードとの間のパフォーマンス測定を可能にするための方法（１００）であって、
−  前記仮想マシンから、または前記仮想マシン宛てに送信されたパケットであって、前記仮想マシンまたは前記ピアノードへの宛先アドレスを含むパケット、を傍受し（１１０）、前記パケットにハイパーバイザタイムスタンプを挿入すべきか否かを決定することと、
−  前記パケットに前記ハイパーバイザタイムスタンプを挿入すると決定されたときに、前記パケットにハイパーバイザタイムスタンプを挿入すること（１２０）と、
−  前記宛先アドレスに従って前記パケットをその宛先に転送すること（１３０）と
を含む方法。
【請求項２】
前記パケットに前記ハイパーバイザタイムスタンプを挿入すべきか否かを決定することが、アドレスおよびポート番号などの前記パケットの特性に基づく、請求項１に記載の方法。
【請求項３】
前記パケットに前記ハイパーバイザタイムスタンプを挿入すべきか否かを決定することが、前記パケットが所定のプロトコルであることに基づく、請求項１に記載の方法。
【請求項４】
前記パケットがＴｗｏ−Ｗａｙ  Ａｃｔｉｖｅ  Ｍｅａｓｕｒｅｍｅｎｔ  Ｐｒｏｔｏｃｏｌ（ＴＷＡＭＰ）、またはＩｎｔｅｒｎｅｔ  Ｃｏｎｔｒｏｌ  Ｍｅｓｓａｇｅ  Ｐｒｏｔｏｃｏｌ（ＩＣＭＰ）であるときに、前記ハイパーバイザタイムスタンプが前記パケットに挿入される、請求項３に記載の方法。
【請求項５】
請求項１から４のいずれか一項に記載の、少なくとも１つの仮想マシンを実行する少なくとも１つのハイパーバイザを備える物理マシンによって実行される、前記仮想マシンが前記仮想マシンとピアノードとの間のパフォーマンス測定のイニシエータであるときに、前記仮想マシンと前記ピアノードとの間の前記測定を行うための方法（２００）であって、
−  前記仮想マシンにより、前記ピアノードへの送信対象の前記パケットを生成すること（２０２）と、
−  前記仮想マシンにより、前記パケットに第１の仮想マシンタイムスタンプを挿入することを含む、前記パケットを初期化すること（２０３）と、
−  前記仮想マシンにより前記ピアノードに向けて前記パケットを送信すること（２０４）と、
−  前記ハイパーバイザにより、前記仮想マシンから送信された前記パケットを傍受すること（２１０）と、
−  前記ハイパーバイザにより、前記パケットに第１のハイパーバイザタイムスタンプを挿入すること（２２０）と、
−  前記ハイパーバイザにより、前記ピアノードに向けて前記パケットを転送することと（２３０）と、
−  前記ハイパーバイザにより、前記パケットが前記ピアノードから前記仮想マシンへ返送されるときに前記パケットを傍受すること（２４０）と、
−  前記ハイパーバイザにより、前記パケットにさらなるハイパーバイザタイムスタンプを挿入すること（２５０）と、
−  前記ハイパーバイザにより、前記仮想マシンに前記パケットを転送すること（２６０）と、
−  前記仮想マシンにより、前記パケットの最後の仮想マシンタイムスタンプを生成すること（２７０）と
を含む方法。
【請求項６】
前記仮想マシンが動作している前記物理マシンのハイパーバイザの数および前記ピアノードのハイパーバイザの数を判定すること（２０１）と、前記パケットを生成するときにハイパーバイザ当たり２つのハイパーバイザタイムスタンプフィールドを定義することとをさらに含む、請求項５に記載の方法（２００）。
【請求項７】
前記仮想マシンにより、前記仮想マシンタイムスタンプ、前記パケット内に含まれる前記ハイパーバイザタイムスタンプ、および生成された前記最後の仮想マシンタイムスタンプに基づき、前記パケットを分析すること（２８０）をさらに含む、請求項５または６に記載の方法（２００）。
【請求項８】
前記仮想マシンにより、前記パケットを生成すること（２０２）が、前記仮想マシンにより実行されるアプリケーションにより、前記ピアノードへの送信対象の前記パケットを生成することを含む、請求項５から７のいずれか一項に記載の方法（２００）。
【請求項９】
請求項１から４のいずれか一項に記載の、少なくとも１つの仮想マシンを実行する少なくとも１つのハイパーバイザを備える物理マシンによって実行される、ピアノードが前記仮想マシンと前記ピアノードとの間のパフォーマンス測定のイニシエータであるときに、前記仮想マシンと前記ピアノードとの間の前記測定を行うための方法（２００）であって、
−  前記ハイパーバイザにより、前記仮想マシン宛ての前記パケットを傍受すること（２１１）と、
−  前記ハイパーバイザにより、前記パケットにハイパーバイザタイムスタンプを挿入すること（２２０）と、
−  前記ハイパーバイザにより、前記仮想マシンに前記パケットを転送すること（２３０）と、
−  前記仮想マシンにより、前記パケットに仮想マシンタイムスタンプを挿入すること（２３１）と、
−  前記仮想マシンにより、前記パケットにさらなる仮想マシンタイムスタンプを挿入すること（２３２）と、
−  前記仮想マシンにより、前記パケットをその送信元の前記ピアノードに向けて返送すること（２３３）と、
−  前記ハイパーバイザにより、前記ピアノード宛ての前記パケットを傍受すること（２３４）と、
−  前記ハイパーバイザにより、前記パケットにさらなるハイパーバイザタイムスタンプを挿入すること（２３５）と、
−  前記ハイパーバイザにより、前記ピアノードに向けて前記パケットを転送すること（２３６）と
を含む方法。
【請求項１０】
前記仮想マシンにより、前記パケットに前記仮想マシンタイムスタンプを挿入すること（２３１）が、前記仮想マシンにより実行されるアプリケーションにより、前記パケットに前記仮想マシンタイムスタンプを挿入することを含む、請求項９に記載の方法（２００）。
【請求項１１】
仮想マシン（４３０）と関連付けられ、前記仮想マシン（４３０）とピアノード（４６０）との間のパフォーマンス測定を可能にするように構成されたハイパーバイザ（４２０）であって、
−  前記仮想マシン（４３０）から、または前記仮想マシン宛てに送信されたパケットであって、前記仮想マシン（４３０）または前記ピアノード（４６０）への宛先アドレスを含むパケット、を傍受し、前記パケットにハイパーバイザタイムスタンプを挿入すべきか否かを決定するように構成された傍受部（４２１）と、
−  前記パケットに前記ハイパーバイザタイムスタンプを挿入すると決定されたときに、前記パケットにハイパーバイザタイムスタンプを挿入するように構成された挿入部（４２２）と、
−  前記宛先アドレスに従って前記パケットをその宛先に転送するように構成された転送部（４２３）と
を備えるハイパーバイザ。
【請求項１２】
前記挿入部（４２２）が、アドレスおよびポート番号などの前記パケットの特性に基づいて、前記パケットに前記ハイパーバイザタイムスタンプを挿入すべきか否かを決定するように構成されている、請求項１１に記載のハイパーバイザ（４２０）。
【請求項１３】
前記挿入部（４２２）が、前記パケットが所定のプロトコルであることに基づいて、前記パケットに前記ハイパーバイザタイムスタンプを挿入すべきか否かを決定するように構成されている、請求項１１に記載のハイパーバイザ（４２０）。
【請求項１４】
前記パケットがＴｗｏ−Ｗａｙ  Ａｃｔｉｖｅ  Ｍｅａｓｕｒｅｍｅｎｔ  Ｐｒｏｔｏｃｏｌ（ＴＷＡＭＰ）、またはＩｎｔｅｒｎｅｔ  Ｃｏｎｔｒｏｌ  Ｍｅｓｓａｇｅ  Ｐｒｏｔｏｃｏｌ（ＩＣＭＰ）であるときに、前記ハイパーバイザが前記パケットにハイパーバイザタイムスタンプを挿入するように構成されている、請求項１３に記載のハイパーバイザ（４２０）。
【請求項１５】
請求項１１から１４のいずれか一項に記載の、少なくとも１つの仮想マシンを実行する少なくとも１つのハイパーバイザ（４２０）を備え、前記仮想マシン（４３０）が前記仮想マシン（４３０）とピアノード（４６０）との間のパフォーマンス測定のイニシエータであるときに、前記仮想マシン（４３０）と前記ピアノード（４６０）との間の前記測定を行うように構成された物理マシン（４００）であって、
−  前記ピアノード（４６０）への送信対象の前記パケットを生成するように構成された生成部（４３１）を含む前記仮想マシン（４３０）であって、前記仮想マシン（４３０）が、前記パケットに第１の仮想マシンタイムスタンプを挿入することによって前記パケットを初期化するように構成された初期化部（４３２）と、前記ピアノード（４６０）に向けて前記パケットを送信するように構成された送信部（４３３）とをさらに含む、前記仮想マシンと、
−  前記仮想マシン（４３０）から送信された前記パケットを傍受するように構成された前記傍受部（４２１）と、前記パケットに第１のハイパーバイザタイムスタンプを挿入するように構成された前記挿入部（４２２）と、前記ピアノード（４６０）に向けて前記パケットを転送するように構成された前記転送部（４２３）とを含む前記ハイパーバイザ（４２０）であって、前記傍受部（４２１）がさらに、前記パケットが前記ピアノードから前記仮想マシン（４３０）へ返送されるときに前記パケットを傍受するように構成され、前記挿入部（４２２）がさらに、前記パケットにさらなるハイパーバイザタイムスタンプを挿入するように構成され、前記転送部（４２３）がさらに、前記仮想マシン（４３０）に前記パケットを転送するように構成されている、前記ハイパーバイザと
を備え、
前記仮想マシン（４３０）の前記初期化部（４３２）がさらに、最後の仮想マシンタイムスタンプを生成するように構成されている、物理マシン。
【請求項１６】
前記仮想マシン（４３０）の前記生成部（４３１）がさらに、前記仮想マシン（４３０）が動作している前記物理マシン（４００）のハイパーバイザの数および前記ピアノード（４６０）のハイパーバイザの数を判定し、前記パケットを生成するときにハイパーバイザ当たり２つのハイパーバイザタイムスタンプフィールドを定義するように構成されている、請求項１５に記載の物理マシン（４００）。
【請求項１７】
前記仮想マシンが、前記仮想マシンタイムスタンプ、前記パケットに含まれる前記ハイパーバイザタイムスタンプ、および生成された前記最後の仮想マシンタイムスタンプに基づき、前記パケットを分析するように構成された分析部（４３４）をさらに備える、請求項１５または１６に記載の物理マシン（４００）。
【請求項１８】
前記パケットを生成する前記仮想マシンが、前記仮想マシンにより前記ピアノードへの送信対象の前記パケットを生成することによって実行されるアプリケーションを含む、請求項１５から１７のいずれか一項に記載の物理マシン（４００）。
【請求項１９】
請求項１１から１４のいずれか一項に記載の、少なくとも１つの仮想マシン（４３０）を実行する少なくとも１つのハイパーバイザ（４２０）を備え、ピアノード（４６０）が前記仮想マシン（４３０）と前記ピアノード（４６０）との間のパフォーマンス測定のイニシエータであるときに、前記仮想マシン（４３０）と前記ピアノード（４６０）との間の前記測定を行うように構成された物理マシン（４００）であって、
−  前記仮想マシン（４３０）宛ての前記パケットを傍受するように構成された前記傍受部（４２１）、前記パケットに前記ハイパーバイザタイムスタンプを挿入するように構成された前記挿入部（４２２）、および、前記仮想マシン（４３０）に前記パケットを転送するように構成された前記転送部（４２３）を含む前記ハイパーバイザ（４２０）と、
−  前記パケットに仮想マシンタイムスタンプを挿入するように構成された前記初期化部（４３２）、前記パケットにさらなる仮想マシンタイムスタンプを挿入するように構成された前記初期化部（４３２）、および、前記パケットをその送信元である前記ピアノード（４６０）に向けて返送するように構成された前記送信部（４３３）を含む仮想マシンと
を備え、
前記ハイパーバイザ（４２０）の前記傍受部（４２１）が前記ピアノード宛ての前記パケットを傍受するように構成され、前記挿入部（４２２）が前記パケットにさらなるハイパーバイザタイムスタンプを挿入するように構成され、前記転送部（４２３）が前記ピアノード（４６０）に向けて前記パケットを転送するように構成されている、物理マシン。
【請求項２０】
前記パケットに前記仮想マシンタイムスタンプを挿入する（２３１）前記仮想マシンが、前記仮想マシンにより前記パケットに前記仮想マシンタイムスタンプを挿入することによって実行されるアプリケーションを含む、請求項１９に記載の物理マシン（４００）。
【請求項２１】
請求項１１から１４に記載のハイパーバイザ（４２０、５００）内の構成に含まれる処理部（５０６）内で実行されるときに、前記ハイパーバイザ（４２０、５００）に、請求項１から４に記載の対応する前記方法を実行させるコンピュータ可読コード手段を含む、コンピュータプログラム（５１０）。
【請求項２２】
請求項２１に記載のコンピュータプログラム（５１０）を含むコンピュータプログラム製品（５０８）。
【請求項２３】
請求項１５から２０に記載の物理マシン（４００、６００）内の構成に含まれる処理部（６０６）内で実行されるときに、前記物理マシン（４００、６００）に、請求項５から１０に記載の対応する前記方法を実行させるコンピュータ可読コード手段を含む、コンピュータプログラム（６１０）。
【請求項２４】
請求項２３に記載のコンピュータプログラム（６１０）を含むコンピュータプログラム製品（６０８）。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は２つのノード間のパフォーマンス測定に関し、特に、これらノードのうちの少なくとも１つが、仮想マシンを実行しているハイパーバイザを実行する際のパフォーマンス測定に関する。
【背景技術】
【０００２】
通信ネットワークにおいては、例えば、通信ネットワークの２つのノード間でラウンドトリップタイムすなわちＲＴＴ、および他のパフォーマンスパラメータを測定することにより、その通信ネットワークのパフォーマンスを測定することが望まれる場合が多い。このような測定により、通信ネットワークのパフォーマンスの目安を示唆することができる。
【０００３】
このような測定は、典型的には、両ノードのうちの１つによって開始され、開始側ノードの通信相手であるピアノードに向けて実行される。その結果は、例えば、通信ネットワークに高負荷がかかっているかどうか、または通信ネットワーク内で障害が発生しているかどうかを示唆する。
【０００４】
今日ではネットワークおよびコンピュータの仮想化が一般的になっている。ほぼ誰もが利用できるコンピュータ仮想化の一例がＡｍａｚｏｎ  Ｅｌａｓｔｉｃ  Ｃｏｍｐｕｔｅ  Ｃｌｏｕｄである。これは、カスタマに動的なコンピュータ能力を提供するサービスである。コンピュータ仮想化はまた、ハードウェア利用率を向上させるためにリソースの共有が行われているデータセンタにおいても普及している。
【０００５】
図４ａは、以下にさらに詳しく説明するが、仮想化されたコンピュータの例を示す。ハードウェアの最上位で１つのオペレーティングシステムを実行する代わりに、ハイパーバイザが仮想マシン／オペレーティングシステムとハードウェアとの間のミドルウェアとして動作している。ハイパーバイザは、（オペレーティングシステムが動作可能な）仮想マシン同士の間で共有されるリソースを管理する、ハードウェアコントローラとして機能する。ハイパーバイザの主要目的は、仮想マシンをインスタンス化し、リソースを供給し、それらのリソースが実行中のオペレーティングシステム間で公平に（またはサービスレベルアグリーメント（ＳＬＡ）に従って）共有されるようにすることである。
【０００６】
パケット交換網のパフォーマンスパラメータを判定する方法として一般に認められているのが、アクティブプロービングである。その基本的なコンセプトは、送信元から受信先にプローブパケットを送信するというものである。各プローブパケット列には送受信両側でタイムスタンプが付与される。
【０００７】
Ｉｎｔｅｒｎｅｔ  Ｅｎｇｉｎｅｅｒｉｎｇ  Ｔａｓｋ  Ｆｏｒｃｅ、すなわちＩＥＴＦのＩｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ  Ｐｅｒｆｏｒｍａｎｃｅ  Ｍｅｔｒｉｃｓ（ＩＰＰＭ）作業部会は、２つのＩＰアクティブ測定プロトコルとして、Ｏｎｅ−Ｗａｙ  Ａｃｔｉｖｅ  Ｍｅａｓｕｒｅｍｅｎｔ  Ｐｒｏｔｏｃｏｌ（ＯＷＡＭＰ）およびＴｗｏ−Ｗａｙ  Ａｃｔｉｖｅ  Ｍｅａｓｕｒｅｍｅｎｔ  Ｐｒｏｔｏｃｏｌ（ＴＷＡＭＰ）を規定している。ＯＷＡＭＰは、２つのホスト間またはノード間の一方向のパケット遅延および一方向のパケットロスを測定するように意図されている。ＴＷＡＭＰはＯＷＡＭＰを基にしている。ＴＷＡＭＰは、２つのホスト間またはノード間の一方向および双方向（往復）のパケット遅延およびパケットロスを測定するように意図されている。
【０００８】
標準的なＴＷＡＭＰプロトコルは、２つのプロトコル、すなわちＴＷＡＭＰ制御プロトコルとＴＷＡＭＰテストプロトコルから成る。ＴＷＡＭＰ制御プロトコルは、ＴＷＡＭＰテストセッションを初期化し、開始し、および終了するために用いられる。ＴＷＡＭＰテストプロトコルは、２つのＴＷＡＭＰホスト間またはエンドポイント間でＴＷＡＭＰテストパケットを交換するために用いられる。テストセッションはＴＷＡＭＰ制御プロトコルなしでも設定可能であり、これはＴＷＡＭＰ  ｌｉｇｈｔとして知られる。
【０００９】
標準的なＴＷＡＭＰ測定アーキテクチャは、通常、特定の役割を備える２つのホストのみから成る。この構成はツーホスト実装として知られる。一方のホストは、イニシエータもしくはコントローラおよびセッションセンダの役割を担い、他方のホストは、サーバおよびセッションリフレクタの役割を担う。この標準アーキテクチャでは、ホストがそれぞれ異なる役割を果たすことができる。
【００１０】
ＴＷＡＭＰ制御のＴｒａｎｓｐｏｒｔ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ（ＴＣＰ）接続を初期化するホストは、コントローラおよびセッションセンダの役割を果たす。ＴＷＡＭＰ制御のＴＣＰ接続の確認応答を行うホストは、サーバおよびセッションリフレクタの役割を担う。
【００１１】
ＴＷＡＭＰテストセッションにおいて、パケットは、タイムスタンプを付与され、シーケンス番号によりタグ付けされ、セッションセンダからセッションリフレクタへ送信される。セッションリフレクタは、着信パケットにタイムスタンプを付与し、新たなテストパケットを生成し（セッションリフレクタによって受信されるテストパケットごとに１つのパケットが生成される）、それらのパケットをできる限り速やかにセッションセンダに送信する。これらのタイプスタンプおよびシーケンス番号を用いて、セッションセンダは、順方向パスおよび逆方向パスの双方におけるセッションについて、一方向の遅延時間、ジッタ、ラウンドトリップタイム、およびパケットロスを算出することができる。
【００１２】
しかしながら、仮想化が２つのホスト間のパフォーマンスにどのように影響するかを判断するすべはない。仮想化の影響を無視できないのは明らかであり、きわめて大きい影響を及ぼす場合もある。ネットワーク診断の観点からは、例えばラウンドトリップタイム、すなわちＲＴＴが増加した原因または根拠を特定し、さらにその位置を突き止めることが重要であろう。
【発明の概要】
【００１３】
この目的は、上述の問題点の少なくとも一部を解消することである。特に、ハイパーバイザと、ハイパーバイザによって実行される、ハイパーバイザと関連付けられた仮想マシンとピアノードとの間のパフォーマンス測定を可能にするための方法とを提供することである。さらなる目的は、少なくとも１つの仮想マシンを実行する少なくとも１つのハイパーバイザを備える物理マシンと、物理マシンによって実行される、仮想マシンが仮想マシンとピアノードとの間のパフォーマンス測定のイニシエータであるときに、仮想マシンとピアノードとの間の測定を行うための方法とを提供することである。さらに、少なくとも１つの仮想マシンを実行する少なくとも１つのハイパーバイザを備える物理マシンと、物理マシンによって実行される、ピアノードが仮想マシンとピアノードとの間のパフォーマンス測定のイニシエータであるときに、仮想マシンとピアノードとの間の測定を行うための方法とを提供することが目的である。これらの目的およびその他は、以下に添付する独立請求項に従って、ハイパーバイザ、それぞれの物理マシン、ならびにハイパーバイザおよびそれぞれの物理マシンにおけるそれぞれの方法を提供することによって達成され得る。
【００１４】
一態様によれば、ハイパーバイザによって実行される、ハイパーバイザと関連付けられた仮想マシンとピアノードとの間のパフォーマンス測定を可能にするための方法が提供される。本方法は、仮想マシンから、または仮想マシン宛てに送信されたパケットを傍受することであって、パケットが仮想マシンまたはピアノードへの宛先アドレスを含む、傍受することと、パケットにハイパーバイザタイムスタンプを挿入すべきか否かを決定することとを含む。本方法は、パケットにハイパーバイザタイムスタンプを挿入すると決定されたときに、パケットにハイパーバイザタイムスタンプを挿入することと、宛先アドレスに従ってパケットをその宛先に転送することとをさらに含む。
【００１５】
一態様によれば、少なくとも１つの仮想マシンを実行する少なくとも１つのハイパーバイザを備える物理マシンによって実行される、仮想マシンが仮想マシンとピアノードとの間のパフォーマンス測定のイニシエータであるときに、仮想マシンとピアノードとの間の測定を行うための方法が提供される。本方法は、仮想マシンにより、ピアノードへの送信対象のパケットを生成することと、仮想マシンにより、パケットに第１の仮想マシンタイムスタンプを挿入することを含む、パケットを初期化することと、仮想マシンにより、ピアノードに向けてパケットを送信することとを含む。本方法は、ハイパーバイザにより、仮想マシンから送信されたパケットを傍受することと、ハイパーバイザにより、パケットに第１のハイパーバイザタイムスタンプを挿入することと、ハイパーバイザにより、ピアノードに向けてパケットを転送することとをさらに含む。さらに本方法は、ハイパーバイザにより、パケットがピアノードから仮想マシンへ返送されるときにパケットを傍受することと、ハイパーバイザにより、パケットにさらなるハイパーバイザタイムスタンプを挿入することと、ハイパーバイザにより、仮想マシンにパケットを転送することとを含む。本方法はまた、仮想マシンにより、パケットの最後の仮想マシンタイムスタンプを生成することを含む。
【００１６】
一態様によれば、少なくとも１つの仮想マシンを実行する少なくとも１つのハイパーバイザを備える物理マシンによって実行される、ピアノードが仮想マシンとピアノードとの間のパフォーマンス測定のイニシエータであるときに、仮想マシンとピアノードとの間の測定を行うための方法が提供される。本方法は、ハイパーバイザにより、仮想マシン宛てのパケットを傍受することと、ハイパーバイザにより、パケットにハイパーバイザタイムスタンプを挿入することと、ハイパーバイザにより、仮想マシンにパケットを転送することとを含む。本方法は、仮想マシンにより、パケットに仮想マシンタイムスタンプを挿入することと、仮想マシンにより、パケットにさらなる仮想マシンタイムスタンプを挿入することと、仮想マシンにより、パケットをその送信元のピアノードに向けて返送することとをさらに含む。本方法はまた、ハイパーバイザにより、ピアノード宛てのパケットを傍受することと、ハイパーバイザにより、パケットにさらなるハイパーバイザタイムスタンプを挿入することと、ハイパーバイザにより、ピアノードに向けてパケットを転送することとを含む。
【００１７】
一態様によれば、仮想マシンと関連付けられ、仮想マシンとピアノードとの間のパフォーマンス測定を可能にするように構成されたハイパーバイザが提供される。ハイパーバイザは、仮想マシンから、または仮想マシン宛てに送信されたパケットであって、仮想マシンまたはピアノードへの宛先アドレスを含むパケット、を傍受し、パケットにハイパーバイザタイムスタンプを挿入すべきか否かを決定するように構成された傍受部を備えている。ハイパーバイザはまた、パケットにハイパーバイザタイムスタンプを挿入すると決定されたときに、パケットにハイパーバイザタイムスタンプを挿入するように構成された挿入部と、宛先アドレスに従ってパケットをその宛先に転送するように構成された転送部とを備えている。
【００１８】
一態様によれば、少なくとも１つの仮想マシンを実行する少なくとも１つのハイパーバイザを備え、仮想マシンが仮想マシンとピアノードとの間のパフォーマンス測定のイニシエータであるときに、仮想マシンとピアノードとの間の測定を行うように構成された物理マシンが提供される。物理マシンは、ピアノードへの送信対象のパケットを生成するように構成された生成部を含む仮想マシンを備え、この仮想マシンはパケットに第１の仮想マシンタイムスタンプを挿入することによってパケットを初期化するように構成された初期化部と、ピアノードに向けてパケットを送信するように構成された送信部とをさらに含んでいる。物理マシンは、仮想マシンから送信されたパケットを傍受するように構成された傍受部と、パケットに第１のハイパーバイザタイムスタンプを挿入するように構成された挿入部と、ピアノードに向けてパケットを転送するように構成された転送部とを含むハイパーバイザをさらに備え、傍受部はさらに、パケットがピアノードから仮想マシンへ返送されるときにパケットを傍受するように構成され、挿入部はさらに、パケットにさらなるハイパーバイザタイムスタンプを挿入するように構成され、転送部はさらに、仮想マシンにパケットを転送するように構成されている。仮想マシンの初期化部はさらに、最後の仮想マシンタイムスタンプを生成するように構成されている。
【００１９】
一態様によれば、少なくとも１つの仮想マシンを実行する少なくとも１つのハイパーバイザを備え、ピアノードが仮想マシンとピアノードとの間のパフォーマンス測定のイニシエータであるときに、仮想マシンとピアノードとの間の測定を行うように構成された物理マシンが提供される。本物理マシンは、仮想マシン宛てのパケットを傍受するように構成された傍受部と、パケットにハイパーバイザタイムスタンプを挿入するように構成された挿入部と、仮想マシンにパケットを転送するように構成された転送部とを含むハイパーバイザを備えている。物理マシンはまた、パケットに仮想マシンタイムスタンプを挿入するように構成された初期化部と、パケットにさらなる仮想マシンタイムスタンプを挿入するように構成された初期化部と、パケットをその送信元であるピアノードに向けて返送するように構成された送信部とを含む、仮想マシンを備えている。ハイパーバイザの傍受部は、ピアノード宛てのパケットを傍受するように構成され、挿入部はパケットにさらなるハイパーバイザタイムスタンプを挿入するように構成され、転送部はピアノードに向けてパケットを転送するように構成されている。
【００２０】
上記のハイパーバイザ、仮想マシンが測定のイニシエータであるときに少なくとも１つのハイパーバイザを備える物理マシン、ピアノードが測定のイニシエータであるときに少なくとも１つのハイパーバイザを備える物理マシン、ならびにハイパーバイザおよびそれぞれの物理マシンによって実行されるそれぞれの方法には、いくつかの利点がある。１つの利点は、テストパケットがその経路をたどってくると、そのパケットからさらに多くの情報を抽出できることである。ハイパーバイザタイムスタンプは、想定されるパフォーマンス低下が仮想化に起因するにせよ、（仮想マシンが動作している）物理マシンとピアノードとを相互接続するネットワークに起因するにせよ、標準化されたプロトコルを用いたエンドツーエンドのアクティブ測定からパフォーマンス低下の位置を特定できるようにする。もう１つの利点は、本方法が、例えば、想定される問題点が物理マシンの特定のハードウェア上の仮想化に起因する場合またはネットワークに起因する場合に、システム診断機能を提供できることである。さらに別の利点は、仮想マシンには一切影響がなく、仮想マシンに対して透過的であるハイパーバイザにのみ影響があることである。さらに本方法により、クラウド（または仮想マシン）のユーザは、ハイパーバイザのパフォーマンスを調査し、サービスレベルアグリーメントすなわちＳＬＡを測定できるようになる。
【００２１】
ここで添付図面を参照しながら、実施形態についてさらに詳細に説明する。
【図面の簡単な説明】
【００２２】
【図１】ハイパーバイザによって実行される、仮想マシンとピアノードとの間のパフォーマンス測定を可能にするための方法を示すフローチャートである。
【図２ａ】少なくとも１つの仮想マシンを実行する少なくとも１つのハイパーバイザを備える物理マシンによって実行される、仮想マシンが仮想マシンとピアノードとの間のパフォーマンス測定のイニシエータであるときに、仮想マシンとピアノードとの間の測定を行うための方法を示すフローチャートである。
【図２ｂ】少なくとも１つの仮想マシンを実行する少なくとも１つのハイパーバイザを備える物理マシンによって実行される、ピアノードが仮想マシンとピアノードとの間のパフォーマンス測定のイニシエータであるときに、仮想マシンとピアノードとの間の測定を行うための方法を示すフローチャートである。
【図３ａ】第１の物理マシンと第２の物理マシンとの間のパフォーマンス測定を例示するシグナリング図である。
【図３ｂ】第１の物理マシンと第２の物理マシンとの間のパフォーマンス測定の前に発生する、第１の物理マシンと第２の物理マシンとの間のテストセッションを例示するシグナリング図である。
【図４ａ】物理マシン、ハイパーバイザ、および仮想マシンの例示的実施形態を示すブロック図である。
【図４ｂ】物理マシン、ハイパーバイザ、および仮想マシンの別の例示的実施形態を示すブロック図である。
【図４ｃ】１つの物理マシン、複数のハイパーバイザ、および複数の仮想マシンのさらに別の例示的実施形態を示すブロック図である。
【図４ｄ】２つの物理マシンにおける、ハイパーバイザの階層アーキテクチャに基づく様々なハイパーバイザタイムスタンプを示すブロック図である。
【図５】ハイパーバイザの例示的構成を示すブロック図である。
【図６】物理マシンの例示的構成を示すブロック図である。
【図７ａ】ＴＷＡＭＰに基づく例示的テストパケットフォーマットを示すブロック図である。
【図７ｂ】ＴＷＡＭＰに基づく別の例示的テストパケットフォーマットを示すブロック図である。
【図８ａ】ＩＣＭＰに基づく例示的テストパケットフォーマットを示すブロック図である。
【図８ｂ】ＩＣＭＰに基づく別の例示的テストパケットフォーマットを示すブロック図である。
【発明を実施するための形態】
【００２３】
簡単に述べると、ハイパーバイザによって実行される方法、および仮想マシンとピアノードとの間のパフォーマンス測定を可能にするように構成されたハイパーバイザの例示的実施形態が提供される。さらに、物理マシンによって実行される方法、およびハイパーバイザを備え、仮想マシンとピアノードとの間の測定を行うように構成された物理マシンが提供される。ハイパーバイザおよび物理マシンは、物理マシンのハイパーバイザ上で動作している仮想マシンとピアノードとの間のパフォーマンスを測定することができる。
【００２４】
次に、図１を参照しながら、ハイパーバイザによって実行される、仮想マシンとピアノードとの間のパフォーマンス測定を可能にするための方法の例示的実施形態について説明する。ハイパーバイザは仮想マシンと関連付けられている。
【００２５】
図１は、仮想マシンと関連付けられたハイパーバイザによって実行される、仮想マシンとピアノードとの間のパフォーマンス測定を可能にするための方法１００を示す。本方法は、仮想マシンから、または仮想マシン宛てに送信されたパケットであって、仮想マシンまたはピアノードへの宛先アドレスを含むパケット、を傍受し１１０、パケットにハイパーバイザタイムスタンプを挿入すべきか否かを決定することを含む。本方法は、パケットにハイパーバイザタイムスタンプを挿入すると決定されたときに、パケットにハイパーバイザタイムスタンプを挿入すること１２０と、宛先アドレスに従ってパケットをその宛先に転送すること１３０とをさらに含む。
【００２６】
ハイパーバイザは物理マシンのハードウェア上で動作し、さらにハイパーバイザは仮想マシンを実行する。仮想マシンはピアノードと通信を行うが、ピアノードは別の仮想マシンを実行しているハイパーバイザを備えている場合も、備えていない場合もある。以下にさらに詳しく説明するように、ピアノードと通信を行っているのは、仮想マシン上で動作しているプログラムであることに留意しなくてはならない。仮想マシンとの間で送受信されるすべてのパケットはハイパーバイザを透過的に通過するため、ハイパーバイザは、いわば仮想マシンからもピアノードからも見えない。仮想マシンとピアノードとが互いに通信を行うとき、すなわち、様々なパケットを相互に送信するときに、仮想マシンおよびピアノードは、各自の何らかのアドレスまたはポートを使用する。
【００２７】
仮想マシンとピアノードとは同じローカルネットワーク内に常駐していない、または位置していない可能性もあるが、１つまたは複数の相互接続ネットワーク、例えばインターネットを通じて相互に通信可能である。あるいは、仮想マシンとピアノードとが同じ物理マシン上に常駐していてもよい。仮想マシン（または仮想マシン上で動作しているプログラム）が物理マシン（または物理マシン上で動作しているプログラム）と通信を行っていてもよい。ピアノードもまた、物理マシン上で実行されている同じハイパーバイザまたは別のハイパーバイザの上で動作している仮想マシンであってもよい
【００２８】
例えば、仮想マシンまたはピアノードのユーザが、仮想マシンとピアノードとの間の通信のパフォーマンスを確認しようとする場合がある。しかし、仮想マシンまたはピアノードによって実行されるアプリケーションが、仮想マシンとピアノードとの間の通信のパフォーマンスを確認することを定期的または不定期に判定してもよい。パフォーマンス確認の一例として、仮想マシンとピアノードとの間でテストパケット、例えばｐｉｎｇメッセージ／パケットを送信する方法がある。テストパケットは、ユーザに対し、例えば、仮想マシンからピアノードへテストパケットを送信してから、パケットが返送され、仮想マシンで受信されるまでに要する遅延時間または時間に関する情報を提供する。言うまでもなく、ピアノードがイニシエータとなって、テストパケットがピアノードのユーザに対し、例えば、仮想マシンへテストパケットを送信してからテストパケットが返送されピアノードで受信されるまでに要する時間に関する情報を提供してもよい。
【００２９】
上述のように、仮想マシンとの間で送受信されるパケットは、ハイパーバイザを透過的に通過できる。テストパケットがハイパーバイザを単に通過するだけであれば、テストパケットの情報から推定できる結論は、例えばラウンドトリップタイムといった、仮想マシンとピアノードとの間のパケットの往路、復路、または往復路に要する時間のみに関するものとなろう。
【００３０】
本方法は、ハイパーバイザにより、仮想マシンから、または仮想マシン宛てに送信されたパケットを傍受すること１１０を含み、このパケットは仮想マシンまたはピアノードへの宛先アドレスを含んでいる。これはつまり、仮想マシンがテストパケットをピアノードに送信するか、またはパケットがピアノードから送信され、仮想マシンを宛先としているかのいずれかであることを意味する。ハイパーバイザは、パケットにハイパーバイザタイムスタンプを挿入すべきか否かを決定する。以下にさらに詳しく説明するが、要するに、ハイパーバイザは、パケットを参照して、すなわち調べて、１つまたは複数の基準が満たされていれば、パケットにハイパーバイザタイムスタンプを挿入しなければならないと判断する。その結果、パケットにハイパーバイザタイムスタンプを挿入すると決定されたときに、本方法は、ハイパーバイザにより、パケットにハイパーバイザタイムスタンプを挿入すること１２０を含む。次にハイパーバイザは、宛先アドレスに従ってパケットをその宛先に転送する１３０、すなわち、パケットを仮想マシンに転送するか、またはパケットをピアノードに向けて転送する。
【００３１】
ハイパーバイザによって実行される方法には、いくつかの利点があり得る。１つの利点は、テストパケットがその経路をたどってくると、そのパケットからさらに多くの情報を抽出できることである。ハイパーバイザタイムスタンプは、想定されるパフォーマンス低下が仮想化に起因するにせよ、（仮想マシンが動作している）物理マシンとピアノードとを相互接続するネットワークに起因するにせよ、標準化されたプロトコルを用いたエンドツーエンドのアクティブ測定からパフォーマンス低下の位置を特定できるようにする。もう１つの利点は、本方法が、例えば、想定される問題点が物理マシンの特定のハードウェア上の仮想化に起因する場合またはネットワークに起因する場合に、システム診断機能を提供できることである。さらに別の利点は、仮想マシンには一切影響がなく、仮想マシンに対して透過的であるハイパーバイザにのみ影響があることである。さらに本方法により、クラウド（または仮想マシン）のユーザは、ハイパーバイザのパフォーマンスを調査し、サービスレベルアグリーメントすなわちＳＬＡを測定できるようになる。
【００３２】
一実施形態によれば、パケットにハイパーバイザタイムスタンプを挿入すべきか否かを決定することは、パケットのアドレスおよびポート番号などの特性に基づいている。
【００３３】
パケットがテストパケットである場合、そのパケットは、ハイパーバイザがパケットにハイパーバイザタイムスタンプを挿入すべきであると決定できるようにする情報を含んでいてもよい。ハイパーバイザは、パケットを傍受したら、送信元インターネットプロトコルすなわちＩＰアドレス、受信先ＩＰアドレス、送信元ポート、受信先ポートなど、パケットに含まれるセッションパラメータを参照してもよい。パケットが、例えば、特定の送信元ポートまたは受信先ポートを含んでいる場合、ハイパーバイザは、そのパケットがテストパケットであり、ハイパーバイザがパケットにハイパーバイザタイムスタンプを挿入しなければならないと判断することができる。
【００３４】
さらなる実施形態によれば、パケットにハイパーバイザタイムスタンプを挿入すべきか否かを決定することは、パケットが所定のプロトコルであることに基づいている。
【００３５】
例えば、パケットがＴｗｏ−Ｗａｙ  Ａｃｔｉｖｅ  Ｍｅａｓｕｒｅｍｅｎｔ  Ｐｒｏｔｏｃｏｌ（ＴＷＡＭＰ）、またはＩｎｔｅｒｎｅｔ  Ｃｏｎｔｒｏｌ  Ｍｅｓｓａｇｅ  Ｐｒｏｔｏｃｏｌ（ＩＣＭＰ）である場合に、パケットにハイパーバイザタイムスタンプが挿入される。
【００３６】
典型的には、テストパケットは特定のプロトコルであり、つまり、ハイパーバイザ上で動作している仮想マシンは、仮想マシンとピアノードとの間の接続またはネットワークを管理、監視、またはテストするために特定のテストプロトコルを採用している。また、仮想マシンとピアノードとの間でデータが送受信されるとき、別の特定のプロトコル、例えばＩＰまたはＩＰと併用するＴｒａｎｓｐｏｒｔ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ（ＴＣＰ）、すなわちＴＣＰ／ＩＰを使用してもよい。仮想マシンとピアノードとが相互にデータを伝達するために使える通信プロトコルの例は、他にも数多くある。
【００３７】
上述のように、仮想マシンとピアノードとの間でテストまたは測定が行われる際は特定のテストプロトコルが用いられるが、テストプロトコルの２つの例としてＴＷＡＭＰとＩＣＭＰがある。
【００３８】
これらは例に過ぎず、他のテストプロトコルも使用できることに留意しなければならない。さらに、ＴＷＡＭＰまたはＩＣＭＰなどのパケットに１つまたは複数の基準によるハイパーバイザタイムスタンプが必ずしも挿入されることのないように、パケットにハイパーバイザタイムスタンプを挿入すべきか否かの決定については、上記の例のうち１つまたは複数に基づいてもよいし、他の基準を併用するようにしてもよい。
【００３９】
本明細書に記載する実施形態はまた、上述のように、少なくとも１つの仮想マシンを実行する少なくとも１つのハイパーバイザを備える物理マシンによって実行される、仮想マシンが仮想マシンとピアノードとの間のパフォーマンス測定のイニシエータであるときに、仮想マシンとピアノードとの間の測定を行うための方法に関する。
【００４０】
以下に、このような方法について図２ａを参照しながら説明する。
【００４１】
図２ａは、物理マシンによって実行される方法２００を示す。本方法は、仮想マシンにより、ピアノードへの送信対象のパケットを生成すること２０２と、仮想マシンにより、パケットに第１の仮想マシンタイムスタンプを挿入することを含む、パケットを初期化すること２０３と、仮想マシンにより、ピアノードに向けてパケットを送信すること２０４とを含む。本方法は、ハイパーバイザにより、仮想マシンから送信されたパケットを傍受すること２１０と、ハイパーバイザにより、パケットに第１のハイパーバイザタイムスタンプを挿入すること２２０と、ハイパーバイザにより、ピアノードに向けてパケットを転送すること２３０とをさらに含む。さらに本方法は、ハイパーバイザにより、パケットがピアノードから仮想マシンへ返送されるときにパケットを傍受すること２４０と、ハイパーバイザにより、パケットにさらなるハイパーバイザタイムスタンプを挿入すること２５０と、ハイパーバイザにより、仮想マシンにパケットを転送すること２６０とを含む。本方法はまた、仮想マシンにより、パケットの最後の仮想マシンタイムスタンプを生成すること２７０を含む。
【００４２】
物理マシンもまた、物理マシンに含まれるハードウェア上でハイパーバイザを実行し、ハイパーバイザ上では仮想マシンが動作している。物理マシンは通信ネットワークの手段によりピアノードに接続されている。このようにして、物理マシンのハイパーバイザ上で動作している仮想マシンはピアノードと通信を行えるようになる。
【００４３】
仮想マシンおよびピアノードによってパフォーマンス測定が行われる際は、仮想マシンまたはピアノードのいずれかがイニシエータになり得る。その場合、対向側をリフレクタまたは返送側と呼ぶことができる。この実施形態では、仮想マシンがイニシエータである。
【００４４】
パフォーマンス測定を制御するアプリケーションが仮想マシン上で動作していることもある。この場合については、後で図４ｂを参照しながらさらに詳細に説明する。
【００４５】
本方法は、仮想マシンにより、ピアノードへの送信対象のパケットを生成すること２０２を含む。このパケットは、ピアノードに送信され、さらに返送される、すなわち、ピアノードによって受信された後に仮想マシンへ返送されるテストパケットである。
【００４６】
仮想マシンは、パケットを生成すると、そのパケットを初期化し２０３、この初期化することは、パケットに第１の仮想マシンタイムスタンプを挿入することを含む。一例として、第１の仮想マシンスタンプは時間ゼロに発生する。次に仮想マシンはピアノードに向けてパケットを送信する２０４。仮想マシンはハイパーバイザを意識していないが、ハイパーバイザはパケットを傍受し２１０、ハイパーバイザタイムスタンプが挿入されるべきであると決定する。その結果、ハイパーバイザはパケットに第１のハイパーバイザタイムスタンプを挿入し２２０、そのパケットをピアノードに向けて転送する２３０。テストパケットの生成時点とテストパケットが物理マシンから送信される時点との間の経過時間を後から評価できるように、仮想マシンタイムスタンプおよび第１のハイパーバイザタイムスタンプによって、仮想マシンタイムスタンプとハイパーバイザタイムスタンプとの間の経過時間が「測定される」か、または記録されるようになる。しばらく時間が経過した後、パケットがピアノードから返送される。ピアノードもまた、パケットに複数のタイムスタンプを挿入しているが、この点については、以下にさらに詳しく説明する。
【００４７】
仮想マシンはパケットを受信し、ハイパーバイザは、そのパケットがピアノードから仮想マシンへ返送されるときにパケットを傍受する２４０。ハイパーバイザはパケットにさらなるハイパーバイザタイムスタンプを挿入し２５０、ハイパーバイザはそのパケットを仮想マシンに転送する２６０。ハイパーバイザがパケットにさらなるハイパーバイザタイムスタンプを挿入して２５０から、仮想マシンがパケットを受信するまでに、やはりしばらくの時間が経過する。仮想マシンがパケットを受信すると、仮想マシンはパケットの最後の仮想マシンタイムスタンプを生成する２７０が、このタイムスタンプはテストパケットに挿入される場合も挿入されない場合もある。
【００４８】
このようにして、パケットを分析し、分析結果から合計遅延時間、例えばＲＴＴのうち、ネットワークに起因する遅延時間と、仮想化、すなわち物理マシンにおける仮想マシンタイムスタンプとハイパーバイザタイムスタンプとの間の時間に起因する遅延時間とを推定することができる。
【００４９】
ピアノードもまた、ハイパーバイザを実行しているハードウェアを有する物理マシンを備え、このハイパーバイザが仮想マシンを実行している場合、パケットには、開始側（イニシエータ側）仮想マシン内の遅延時間、通信ネットワーク内の遅延時間、およびピアノード内の遅延時間に関連する情報が含まれていてもよい。したがって、比較的長い遅延時間が発生しているか、またはもたらされた可能性がある場所を場合によっては検出するために、テストパケットに対してさらに詳細な分析を加えてもよい。比較的長い遅延時間は、通信ネットワーク、ピアノード、または物理マシン（イニシエータ）に起因する可能性がある。ここでピアノードもまた単なる物理マシンであることを指摘しておかなくてはならない。想定される故障またはボトルネックの位置を特定できるようにすることで、全体的なパフォーマンスを向上させるため、または想定される故障をその発生場所で修復するために、効果的かつ特化した措置を講じることができる。
【００５０】
物理マシンによって実行される本方法は、ハイパーバイザによって実行される方法と同じ利点を備え得る。１つの利点は、テストパケットがその経路をたどってくると、そのパケットからさらに多くの情報を抽出できることである。ハイパーバイザタイムスタンプは、想定されるパフォーマンス低下が仮想化に起因するにせよ、（仮想マシンが動作している）物理マシンとピアノードとを相互接続するネットワークに起因するにせよ、標準化されたプロトコルを用いたエンドツーエンドのアクティブ測定からパフォーマンス低下の位置を特定できるようにする。もう１つの利点は、本方法が、例えば、想定される問題点が物理マシンの特定のハードウェア上の仮想化に起因する場合またはネットワークに起因する場合に、システム診断機能を提供できることである。さらに別の利点は、仮想マシンには一切影響がなく、仮想マシンに対して透過的であるハイパーバイザにのみ影響があることである。さらに本方法により、クラウド（または仮想マシン）のユーザは、ハイパーバイザのパフォーマンスを調査し、ＳＬＡを測定できるようになる。
【００５１】
一実施形態によれば、本方法は、仮想マシンが動作している物理マシンのハイパーバイザの数、およびピアノードのハイパーバイザの数を判定すること２０１と、パケットを生成するときにハイパーバイザ当たり２つのハイパーバイザタイムスタンプフィールドを定義することとをさらに含む。
【００５２】
上述のように、物理マシンは少なくとも１つのハイパーバイザを備えている。言い換えれば、物理マシンは、第１のハイパーバイザが動作しているハードウェアを備えている。ハイパーバイザは第１の仮想マシンを実行している。さらに第１の仮想マシンが仮想ハードウェア上で第２のハイパーバイザを実行してもよく、この第２のハイパーバイザが第２の仮想マシンを実行してもよい。このように、物理マシンは少なくとも１つのハイパーバイザを備えていると言える。同様の論法はピアノードにもあてはまる。
【００５３】
すべてのハイパーバイザがパケットにタイムスタンプを挿入できるようにするためには、パケットのサイズが、様々なタイムスタンプ、ハイパーバイザタイムスタンプ、および仮想マシンタイムスタンプをすべて収容できるほど十分に大きくなければならない。通信チェーン内のハイパーバイザはそれぞれ２つのハイパーバイザタイムスタンプを挿入するため、パケットはハイパーバイザ当たり２つのハイパーバイザタイムスタンプを収容できるサイズでなければならない。パケットにハイパーバイザタイムスタンプごとに１つのフィールドが含まれるようにし、その結果、物理マシンおよびピアノードのハイパーバイザ当たり２つのハイパーバイザタイムスタンプフィールドが含まれるように、パケットを初期化してもよい。
【００５４】
さらなる実施形態によれば、本方法は、仮想マシンにより、仮想マシンタイムスタンプ、パケットに含まれるハイパーバイザタイムスタンプ、および生成された最後の仮想マシンタイムスタンプに基づいてパケットを分析すること２８０をさらに含む。
【００５５】
仮想マシンがイニシエータである場合、仮想マシンは、ＴＷＡＭＰアプリケーションまたはＩＣＭＰアプリケーションなどのテストアプリケーションを実行する。仮想マシンのテストアプリケーションは、パケットを生成し、そのパケットを上述のように初期化する。テストアプリケーション／仮想マシンは、パケットを初期化し、パケットに第１の仮想マシンタイムスタンプＴ１を挿入し、そのパケットをピアノードに向けて送信した後、テストアプリケーション／仮想マシンは、ピアノードから返送されたパケットを受信し、アプリケーション／仮想マシンはパケットの最後の仮想マシンタイムスタンプＴ４を生成する。パケット内の様々なタイムスタンプ、すなわち仮想マシンのハイパーバイザタイムスタンプＨＴ１およびＨＴ４、場合によりピアノードのハイパーバイザタイムスタンプＨＴ２およびＨＴ３、ピアノードの仮想／物理マシンタイムスタンプ、ならびにパケットの、生成された最後の仮想マシンタイムスタンプを比較することにより、テストアプリケーション／仮想マシンは、物理マシン内、ピアノード内、および物理マシンとピアノードとの通信の手段である通信ネットワーク内の遅延時間を推定することができる。一例として、仮想マシンが物理マシンのハイパーバイザ上で動作しており、ピアノードが別の物理マシンのハードウェア上で動作している仮想マシンであると仮定する。この場合、パケットは、返送され開始側テストアプリケーションで受信されたときに、４つの仮想マシンタイムスタンプＴ１〜Ｔ４、および４つのハイパーバイザタイムスタンプＨＴ１〜ＨＴ４を含んでいる。開始側テストアプリケーション、すなわちＴＷＡＭＰイニシエータ／コントローラがピアノードから返送されたテストパケットを受信すると、ＴＷＡＭＰイニシエータ／コントローラは上述のような様々なメトリックを計算できるようになる。例えば、合計ラウンドトリップタイムはＴ４マイナスＴ１と推定され、順方向における一方向の遅延時間はＴ２マイナスＴ１で算出され、逆方向における一方向の遅延時間はＴ４マイナスＴ３で算出される。ＴＷＡＭＰイニシエータ／コントローラは、さらに以下のメトリックを計算できるようになる。順方向における仮想化によるマシン１内の遅延時間はＨＴ１マイナスＴ１で算出され、順方向における仮想化によるマシン２内の遅延時間はＴ２マイナスＨＴ２で算出され、逆方向における仮想化によるマシン２内の遅延時間はＨＴ３マイナスＴ３で算出され、逆方向における仮想化によるマシン１内の遅延時間はＴ４マイナスＨＴ４で算出される。さらに、例えば、コントローラ側のＶＭに対する影響全体は、ＨＴ４マイナスＨＴ１で算出できる。この場合、クロックを同期する必要はない。
【００５６】
一実施形態によれば、仮想マシンにより、パケットを生成すること２０２は、仮想マシンにより実行されるアプリケーションにより、ピアノードへの送信対象のテストパケットを生成することを含んでいる。
【００５７】
上述のように、仮想マシンが、ＴＷＡＭＰアプリケーションまたはＩＣＭＰアプリケーションなど、パフォーマンス測定を制御しているテストアプリケーションを実行してもよい。したがって、テストアプリケーションがピアノードへの送信対象のテストパケットを生成する。
【００５８】
本明細書に記載する実施形態はまた、図１を参照しながら説明したように、少なくとも１つの仮想マシンを実行する少なくとも１つのハイパーバイザを備える物理マシンによって実行される、ピアノードが仮想マシンとピアノードとの間のパフォーマンス測定におけるイニシエータであるときに、仮想マシンとピアノードとの間の測定を実行するための方法２００に関する。言い換えれば、仮想マシンがリフレクタまたは返送側である。この場合も同様に、ピアノードは物理マシンであってもよく、または物理マシンのハードウェア上で動作しているハイパーバイザによって実行される仮想マシンであってもよい。
【００５９】
次に、このような方法について図２ｂを参照しながら説明する。図２ｂは、ハイパーバイザにより、仮想マシン宛てのパケットを傍受すること２１１と、ハイパーバイザにより、パケットにハイパーバイザタイムスタンプを挿入すること２２０と、ハイパーバイザにより、仮想マシンにパケットを転送すること２３０とを含む方法を示す。本方法は、仮想マシンにより、パケットに仮想マシンタイムスタンプを挿入すること２３１と、仮想マシンにより、パケットにさらなる仮想マシンタイムスタンプを挿入すること２３２と、仮想マシンにより、パケットをその送信元のピアノードに向けて返送すること２３３とをさらに含む。本方法はまた、ハイパーバイザにより、ピアノード宛てのパケットを傍受すること２３４と、ハイパーバイザにより、パケットにさらなるハイパーバイザタイムスタンプを挿入すること２３５と、ハイパーバイザにより、ピアノードに向けてパケットを転送すること２３６とを含む。
【００６０】
この実施形態では、ピアノードがイニシエータであり、すなわち、物理マシンがパケットを受信し、パケットをピアノードへ返送する前にパケットにタイムスタンプを付与する。物理マシンがパケットを受信する際に、ハイパーバイザはパケットを傍受する２１１。パケットの宛先はハイパーバイザ上で動作しているか、またはハイパーバイザによって実行される仮想マシンである。ハイパーバイザはパケットにハイパーバイザタイムスタンプを挿入し２２０、そのパケットを仮想マシンに転送する２３０。ハイパーバイザタイムスタンプを挿入することにより、物理マシンがパケットを受信する時点、すなわちハイパーバイザがパケットにハイパーバイザタイムスタンプを挿入する時点から、パケットが仮想マシンによって受信されるまでの時間を測定することができる。仮想マシンはパケットを受信し、パケットに仮想マシンタイムスタンプを挿入し２３１、パケットをその送信先のピアノードに向けて返送する２３３前に、パケットにさらなる仮想マシンタイムスタンプを挿入する２３２。この場合も同様に、ハイパーバイザがピアノード宛てのパケットを傍受し２３４、パケットにさらなるハイパーバイザタイムスタンプを挿入し２３５、ピアノードに向けてパケットを転送する２３６。物理マシンによってパケットに挿入された相異なるタイムスタンプ、すなわち２つのハイパーバイザタイムスタンプおよび２つの仮想マシンタイムスタンプによって、パケットには結論を推定するための情報が含まれるようになる。物理マシンが最初にパケットを受信してから、パケットが仮想マシンに到達するまでに経過した時間、すなわち、第１のハイパーバイザタイムスタンプと第１の仮想マシンタイムスタンプとの時間差を推定することが可能である。仮想マシンがピアノードに向けてパケットを送信してから、物理マシンからパケットが実際に送信されるまでに経過した時間、すなわち、第２の／さらなる仮想マシンタイムスタンプと第２の／さらなるハイパーバイザタイムスタンプとの間の差分を推定することが可能である。また、物理マシンがパケットを受信してから、物理マシンがパケットをピアノードへ返送するまでに経過した時間、すなわち、第１のハイパーバイザタイムスタンプと第２の／さらなるハイパーバイザタイムスタンプとの時間差も推定することが可能である。
【００６１】
返送側である物理マシンによって実行される方法には、ハイパーバイザおよび開始側である物理マシンによって実行される方法と同じ利点がある。１つの利点は、テストパケットがその経路をたどってくると、そのパケットからさらに多くの情報を抽出できることである。ハイパーバイザタイムスタンプは、想定されるパフォーマンス低下が仮想化に起因するにせよ、（仮想マシンが動作している）物理マシンとピアノードとを相互接続するネットワークに起因するにせよ、標準化されたプロトコルを用いたエンドツーエンドのアクティブ測定からパフォーマンス低下の位置を特定できるようにする。もう１つの利点は、本方法が、例えば、想定される問題点が物理マシンの特定のハードウェア上の仮想化に起因する場合またはネットワークに起因する場合に、システム診断機能を提供できることである。さらに別の利点は、仮想マシンには一切影響がなく、仮想マシンに対して透過的であるハイパーバイザにのみ影響があることである。さらに本方法により、クラウド（または仮想マシン）のユーザは、ハイパーバイザのパフォーマンスを調査し、ＳＬＡを測定できるようになる。
【００６２】
一実施形態によれば、仮想マシンにより、パケットに仮想マシンタイムスタンプを挿入すること２３１は、仮想マシンにより実行されるアプリケーションにより、パケットに仮想マシンタイムスタンプを挿入することを含んでいる。
【００６３】
上述のように、仮想マシンが、ＴＷＡＭＰアプリケーションまたはＩＣＭＰアプリケーションなど、パフォーマンス測定を制御しているテストアプリケーションを実行してもよい。
【００６４】
図３ａは、第１の物理マシンと第２の物理マシンとの間のパフォーマンス測定を例示するシグナリング図である。この例において、両方の物理マシンはそれぞれのハイパーバイザを実行しているハードウェアを備え、ハイパーバイザはそれぞれの仮想マシンを実行している。第１の「物理マシン１」３１０はイニシエータまたは開始側であり、第２の「物理マシン２」３２０はリフレクタまたは返送側である。
【００６５】
第１の物理マシン３１０内では、ハイパーバイザ３１３が第１の物理マシン３１０のハードウェア上で動作している。ハイパーバイザ３１３は仮想マシン３１１を実行しており、さらに仮想マシン３１１がテストアプリケーション３１２を実行している。第２の物理マシン３２０は、ハイパーバイザ３２３を実行するハードウェアを備え、さらにハイパーバイザ３２３が仮想マシン３２１を実行し、さらに仮想マシン３２１がテストアプリケーション３２２を実行する。
【００６６】
第１の物理マシン３１０の仮想マシン３１１はテストパケットを生成し、初期化する。この初期化は、パケットにタイムスタンプＴ１を挿入すること３：１を含む。次に、第１の仮想マシン３１０は仮想マシン３２１に向けてテストパケットを送信する３：２。パケットは物理マシン１のハイパーバイザ３１３によって傍受され、ハイパーバイザ３１３はパケットにハイパーバイザタイムスタンプＨＴ１を挿入する３：３。ハイパーバイザはさらに、ＩＰおよびイーサネット層上のパケットチェックサムを再計算し、テストパケットに新たなチェックサムを配置してもよい。次に、ハイパーバイザ３１３は仮想マシン３２１に向けてパケットを転送する３：４。パケットが第２の物理マシン３２０に到達すると、ハイパーバイザ３２３によって傍受される。ハイパーバイザ３２３はパケットにハイパーバイザタイムスタンプＨＴ２を挿入し３：５、ＩＰおよびイーサネット層上のパケットチェックサムを再計算し、テストパケットに新たなチェックサムを配置した後、仮想マシン３２１にパケットを転送する３：６。
【００６７】
第２の仮想マシン３２１のテストアプリケーション３２２は、まずパケットに１つの仮想マシンタイムスタンプＴ２を挿入し３：７、次にさらなる仮想マシンタイムスタンプＴ３を挿入する３：８。次に、仮想マシン３２１は、パケットをその送信元である物理マシン１の仮想マシン３１１に向けて送り返す、すなわち返送する３：９。第２の物理マシン２  ３２０のハイパーバイザ３２３はパケットを傍受し、パケットにさらなるハイパーバイザタイムスタンプＨＴ３を挿入し３：１０、ＩＰおよびイーサネット層上のパケットチェックサムを再計算し、テストパケットに新たなチェックサムを配置した後、仮想マシン３１１にテストパケットを返送する３：１１。パケットがネットワークを通過し、第１の物理マシン３１０に到達すると、第１の物理マシン３１０のハイパーバイザ３１３がテストパケットを傍受し、パケットにさらなるハイパーバイザタイムスタンプＨＴ４を挿入する３：１２。ハイパーバイザはさらに、ＩＰおよびイーサネット層上のパケットチェックサムを再計算し、テストパケットに新たなチェックサムを配置する。その後、第１の物理マシン３１０のハイパーバイザ３１３は、仮想マシン３１１にテストパケットを転送し３：１３、テストアプリケーション３１２はテストパケットの仮想マシンタイムスタンプＴ４を生成する３：１４。ここで指摘しておくべきことは、パケットが返送される前に、ピアノードが新たなパケットを生成し、受信したパケットのタイムスタンプを新たに生成したパケットにコピーして、関連タイムスタンプをすべて含むパケットを物理マシンが受信するようにしてもよいという点である。あるいは、ピアノードが新しいヘッダを生成し、物理マシンにパケットを返送する前に、このヘッダをパケットに追加してもよい。パケットのヘッダは、少なくとも宛先のアドレス情報を含むことになるため、新しいパケットを生成するか、受信したパケットに新しいヘッダを追加するか、いずれかの処理が必要である。
【００６８】
このようにすることで、第１の物理マシンのテストアプリケーション３１２は、生成された最後の仮想マシンタイムスタンプＴ４と共にテストパケットを分析できるようになる。様々なタイムスタンプを比較することにより、パケットの生成および初期化から、パケットが第１の物理マシン３１０から第２の物理マシンに向けて送信されるまでに経過した時間である、Ｔ１とＨＴ１との間の経過時間を判定することができる。パケットが第１の物理マシン３１０から第２の物理マシン３２０へとネットワークを通過する間に経過した時間である、ＨＴ１とＨＴ２との間の経過時間を判定することができる。さらに、第２の物理マシン３２０内におけるパケットの経過時間と、第１の物理マシン３１０への復路における、ネットワーク内のパケットの経過時間も判定することができる。
【００６９】
図３ｂは、第１の物理マシンと第２の物理マシンとの間のパフォーマンス測定が行われる前に発生する、第１の物理マシンと第２の物理マシンとの間のテストセッションを例示するシグナリング図である。
【００７０】
パフォーマンス測定が行われる前に、第１の物理マシンと第２の物理マシンとの間で制御セッションが実行されてもよい。図３ｂの例示的テストセッションは、仮想マシン３１１のテストアプリケーション３１２により、制御セッションを確立すること３：０１を含んでいる。制御セッションは、予定されているテストトラフィックのアドレスおよびポート番号またはパフォーマンス測定に関する情報を提供する。このステップには、例えば、シグナリングパスまたはチェーン内にハイパーバイザが存在するか否かを把握するために用いられる制御パケットを生成することが含まれてもよい。次に、第１の物理マシンの仮想マシン３１１は、第２の物理マシン３２０の仮想マシン３２１に向けて制御パケットを送信する３：０２。このパケットはハイパーバイザ３１３を透過的に通過するように示されており、パケットがタイムスタンプを付与されるような特定のプロトコルであっても、基準に基づき、制御パケットにはハイパーバイザ３１３によってタイムスタンプが付与されない例を示す。パケットは第２の物理マシン３２０に到達し、ハイパーバイザ３２３を透過的に通過し、第２の物理マシン３２０に関連付けられた仮想マシン３２１に配信される。第２の物理マシン３２０に関連付けられた仮想マシン３２１は、テストセッションをセットアップし３：０３、第１の物理マシン３１０の仮想マシン３１１に向けて確認応答の制御パケットを送信する３：０４。この確認応答制御パケットは、第２の物理マシン３２０のハイパーバイザ３２３によって傍受され３：０５、ハイパーバイザ３２３はテストパケット用の傍受テーブルを設定する。ハイパーバイザ３２３はまた、第２の物理マシン３２１がハイパーバイザを備えているということが、第１の物理マシン３１０の仮想マシン３１１のテストアプリケーション３１２に通知されるように、確認応答制御パケットにマークを挿入する。次に、ハイパーバイザ３２３は、第１の物理マシン３１０の仮想マシン３１１に向けて確認応答制御パケットを転送する３：０６。確認応答制御パケットは第１の物理マシン３１０に到達し、第１の物理マシン３１０のハイパーバイザ３１３によって傍受される３：０７。第１の物理マシン３１０のハイパーバイザ３１３は、テストパケット用の傍受テーブルを設定し、第１の物理マシン３１０のハイパーバイザ３１３について、第１の物理マシン３１０の仮想マシン３１１のテストアプリケーション３１２に通知されるように、確認応答制御パケットにマークを挿入する。次に、ハイパーバイザ３１３は、仮想マシン３１１のテストアプリケーション３１２に確認応答制御パケットを転送し３：０８、テストアプリケーション３１２は、テストセッションすなわちパフォーマンス測定を開始できるようになる３：０９。
【００７１】
本明細書に記載する実施形態はまた、仮想マシンに関連付けられ、仮想マシンとピアノードとの間のパフォーマンス測定を可能にするように構成されたハイパーバイザに関する。このハイパーバイザは、ハイパーバイザによって実行される上述の方法と同じ技術的特徴、目的、および利点を備えている。不要な重複を避けるため、このハイパーバイザについては概要のみを説明する。
【００７２】
このようなハイパーバイザについて、図４ａを参照しながら簡単に説明する。ハイパーバイザ４２０は仮想マシン４３０と関連付けられており、仮想マシン４３０とピアノード４６０との間のパフォーマンス測定を可能にするように構成されている。図４ａはハイパーバイザを示す。このハイパーバイザは、仮想マシン４３０から、または仮想マシン４３０宛てに送信されたパケットであって、仮想マシン４３０またはピアノード４６０への宛先アドレスを含むパケット、を傍受し、パケットにハイパーバイザタイムスタンプを挿入すべきか否かを決定するように構成された傍受部４２１を備えている。ハイパーバイザはまた、パケットにハイパーバイザタイムスタンプを挿入すると決定されたときに、パケットにハイパーバイザタイムスタンプを挿入するように構成された挿入部４２２と、宛先アドレスに従ってパケットをその宛先に転送するように構成された転送部４２３とを備えている。
【００７３】
ハイパーバイザは、ハイパーバイザによって実行される方法と同じ利点を備えている。１つの利点は、テストパケットがその経路をたどってくると、そのパケットからさらに多くの情報を抽出できることである。ハイパーバイザタイムスタンプは、想定されるパフォーマンス低下が仮想化に起因するにせよ、（仮想マシンが動作している）物理マシンとピアノードとを相互接続するネットワークに起因するにせよ、標準化されたプロトコルを用いたエンドツーエンドのアクティブ測定からパフォーマンス低下の位置を特定できるようにする。もう１つの利点は、本方法が、例えば、想定される問題点が物理マシンの特定のハードウェア上の仮想化に起因する場合またはネットワークに起因する場合に、システム診断機能を提供できることである。さらに別の利点は、仮想マシンには一切影響がなく、仮想マシンに対して透過的であるハイパーバイザにのみ影響があることである。さらに本方法により、クラウド（または仮想マシン）のユーザは、ハイパーバイザのパフォーマンスを調査し、ＳＬＡを測定できるようになる。
【００７４】
一実施形態によれば、挿入部４２２は、アドレスおよびポート番号などのパケットの特性に基づき、パケットにハイパーバイザタイムスタンプを挿入すべきか否かを決定するように構成されている。
【００７５】
さらなる実施形態によれば、挿入部４２２は、パケットが所定のプロトコルであることに基づき、パケットにハイパーバイザタイムスタンプを挿入すべきか否かを決定するように構成されている。
【００７６】
さらなる実施形態によれば、パケットがＴＷＡＭＰまたはＩＣＭＰであるとき、ハイパーバイザはパケットにハイパーバイザタイムスタンプを挿入するように構成されている。
【００７７】
本明細書に記載する実施形態はまた、上述のように少なくとも１つの仮想マシンを実行する少なくとも１つのハイパーバイザを備える物理マシンであって、仮想マシンが仮想マシンとピアノードとの間のパフォーマンス測定におけるイニシエータであるときに、仮想マシンとピアノードとの間の測定を実行するように構成された物理マシンに関する。この物理マシンは、物理マシンによって実行される上述の方法と同じ技術的特徴、目的、および利点を備えている。不要な重複を避けるため、この物理マシンについては概要のみを説明する。
【００７８】
このような物理マシンについて、図４ａを参照しながら簡単に説明する。図４ａは物理マシン４００を示す。物理マシン４００は、ピアノード４６０への送信対象のパケットを生成するように構成された生成部４３１を含む仮想マシン４３０を備え、仮想マシン４３０は、パケットに第１の仮想マシンタイムスタンプを挿入することによってパケットを初期化するように構成された初期化部４３２と、ピアノード４６０に向けてパケットを送信するように構成された送信部４３３とをさらに含んでいる。物理マシンは、仮想マシン４３０から送信されたパケットを傍受するように構成された傍受部４２１と、パケットに第１のハイパーバイザタイムスタンプを挿入するように構成された挿入部４２２と、ピアノード４６０に向けてパケットを転送するように構成された転送部４２３とを含むハイパーバイザ４２０をさらに備え、傍受部４２１はさらに、パケットがピアノードから仮想マシン４３０へ返送されるときにパケットを傍受するように構成され、挿入部４２２はさらに、パケットにさらなるハイパーバイザタイムスタンプを挿入するように構成され、転送部４２３はさらに、仮想マシン４３０にパケットを転送するように構成されている。仮想マシン４３０の初期化部４３２はさらに、最後の仮想マシンタイムスタンプを生成するように構成されている。
【００７９】
物理マシンは、物理マシンによって実行される方法と同じ利点を備えている。１つの利点は、テストパケットがその経路をたどってくると、そのパケットからさらに多くの情報を抽出できることである。ハイパーバイザタイムスタンプは、想定されるパフォーマンス低下が仮想化に起因するにせよ、（仮想マシンが動作している）物理マシンとピアノードとを相互接続するネットワークに起因するにせよ、標準化されたプロトコルを用いたエンドツーエンドのアクティブ測定からパフォーマンス低下の位置を特定できるようにする。もう１つの利点は、本方法が、例えば、想定される問題点が物理マシンの特定のハードウェア上の仮想化に起因する場合またはネットワークに起因する場合に、システム診断機能を提供できることである。さらに別の利点は、仮想マシンには一切影響がなく、仮想マシンに対して透過的であるハイパーバイザにのみ影響があることである。さらに本方法により、クラウド（または仮想マシン）のユーザは、ハイパーバイザのパフォーマンスを調査し、ＳＬＡを測定できるようになる。
【００８０】
一実施形態によれば、仮想マシン４３０の生成部４３１はさらに、仮想マシン４３０が動作している物理マシン４００のハイパーバイザの数、およびピアノード４６０のハイパーバイザの数を判定し、パケットを生成するときにハイパーバイザ当たり２つのハイパーバイザタイムスタンプフィールドを定義するように構成されている。
【００８１】
さらなる実施形態によれば、仮想マシンは、仮想マシンタイムスタンプ、パケットに含まれるハイパーバイザタイムスタンプ、および生成された最後の仮想マシンタイムスタンプに基づいてパケットを分析するように構成された分析部４３４をさらに備えている。
【００８２】
さらなる実施形態によれば、パケットを生成する仮想マシンは、仮想マシンによりピアノードへの送信対象のパケットを生成することによって実行されるアプリケーションを含んでいる。
【００８３】
本明細書に記載する実施形態はまた、上述のように少なくとも１つの仮想マシンを実行する少なくとも１つのハイパーバイザを備える物理マシンであって、ピアノードが仮想マシンとピアノードとの間のパフォーマンス測定におけるイニシエータであるときに、仮想マシンとピアノードとの間の測定を実行するように構成された物理マシンに関する。この物理マシンは、物理マシンによって実行される上述の方法と同じ技術的特徴、目的、および利点を備えている。不要な重複を避けるため、この物理マシンについては概要のみを説明する。
【００８４】
このような物理マシンについて、図４ａを参照しながら簡単に説明する。図４ａは物理マシン４００を示す。物理マシン４００は、仮想マシン４３０宛てのパケットを傍受するように構成された傍受部４２１と、パケットにハイパーバイザタイムスタンプを挿入するように構成された挿入部４２２と、仮想マシン４３０にパケットを転送するように構成された転送部４２３とを含むハイパーバイザ４２０を備えている。物理マシン４００はまた、パケットに仮想マシンタイムスタンプを挿入するように構成された初期化部４３２と、パケットにさらなる仮想マシンタイムスタンプを挿入するように構成された初期化部４３２と、パケットをその送信元であるピアノード４６０に向けて返送するように構成された送信部４３３とを含む、仮想マシンを備えている。ハイパーバイザ４２０の傍受部４２１は、ピアノード宛てのパケットを傍受するように構成され、挿入部４２２はパケットにさらなるハイパーバイザタイムスタンプを挿入するように構成され、転送部４２３はピアノード４６０に向けてパケットを転送するように構成されている。
【００８５】
物理マシンは、物理マシンによって実行される方法と同じ利点を備えている。１つの利点は、テストパケットがその経路をたどってくると、そのパケットからさらに多くの情報を抽出できることである。ハイパーバイザタイムスタンプは、想定されるパフォーマンス低下が仮想化に起因するにせよ、（仮想マシンが動作している）物理マシンとピアノードとを相互接続するネットワークに起因するにせよ、標準化されたプロトコルを用いたエンドツーエンドのアクティブ測定からパフォーマンス低下の位置を特定できるようにする。もう１つの利点は、本方法が、例えば、想定される問題点が物理マシンの特定のハードウェア上の仮想化に起因する場合またはネットワークに起因する場合に、システム診断機能を提供できることである。さらに別の利点は、仮想マシンには一切影響がなく、仮想マシンに対して透過的であるハイパーバイザにのみ影響があることである。さらに本方法により、クラウド（または仮想マシン）のユーザは、ハイパーバイザのパフォーマンスを調査し、ＳＬＡを測定できるようになる。
【００８６】
一実施形態によれば、パケットに仮想マシンタイムスタンプを挿入する２３１仮想マシンは、仮想マシンによりパケットに仮想マシンタイムスタンプを挿入することによって実行されるアプリケーションを含んでいる。
【００８７】
図４ｂは、物理マシン、ハイパーバイザ、および仮想マシンの別の例示的実施形態を示すブロック図である。
【００８８】
図４ｂは、ハイパーバイザ４２０を実行している物理マシン４００を示しており、ハイパーバイザ４２０はこの物理マシンのハードウェア上で動作している。ハイパーバイザ４２０は、３つの仮想マシン、４３０ａ、４３０ｂ、および４３０ｃを実行する。これは単に一例に過ぎず、ハイパーバイザが実行する仮想マシンの数はこの例より少なくても多くてもよいことを指摘しておかなくてはならない。仮想マシンはそれぞれ、オペレーションシステムすなわちＯＳ、４５０ａ、４５０ｂ、および４５０ｃを実行する。各種のＯＳ、例えば、Ｌｉｎｕｘ、Ｗｉｎｄｏｗｓ、ＯＳ  Ｘ  Ｍｏｕｎｔａｉｎ  Ｌｉｏｎを使用することができる。ＯＳ４５０ａ、４５０ｂ、および４５０ｃ上では、各種のアプリケーションまたはプログラム４５１ａ、４５１ｂ、および４５１ｃを実行することが可能であり、図４ｂの例では、第１の仮想マシンが３種のアプリケーションまたはプログラムを実行しており、そのうちの１つがＴＷＡＭＰである。
【００８９】
図４ｃは、１つの物理マシン、複数のハイパーバイザ、および複数の仮想マシンのさらに別の例示的実施形態を示すブロック図である。
【００９０】
まず、４２０−１と表示されたハイパーバイザ１は、物理マシン４００上で動作している。第１のハイパーバイザ４２０−１は、第１の仮想マシン４３０ａ−１を実行する。さらに第１の仮想マシン４３０ａ−１が、ハイパーバイザ２という、４２０−２と表示されたハイパーバイザを実行する。このハイパーバイザ２上では、第２の仮想マシンが動作しているか、または実行されており、第２の仮想マシンは４３０ａ−２と表示されている。４３０ａ−２と表示された第２の仮想マシン上では、ＯＳ４５０が実行され、さらにＯＳ４５０がＴＷＡＭＰコントローラすなわちアプリケーション４５１ｄを実行する。このように、物理マシンはハイパーバイザの階層を備えていてもよい。ハイパーバイザ階層は、イニシエータノード、リフレクタノード、またはその両方に常駐することができる。
【００９１】
図４ｄは、２つの物理マシンにおける、ハイパーバイザの階層アーキテクチャに基づく様々なハイパーバイザタイムスタンプを示すブロック図である。
【００９２】
この例では、ハイパーバイザはタイムスタンプをスタック形式で追加するように設定されている。すなわち、測定パケットにおける次の空スロット（例えば、ＴＷＡＭＰの場合はパケットパディング）にタイムスタンプを追加する。空スロットは、テストパケット内の次の未使用すなわちゼロのフィールドとして決定される。すなわち、測定パケットは、３つの相異なるハイパーバイザにおいて追加されたタイムスタンプのスタックを備えている。テストアプリケーション（または他のエンティティ）がこの状況（すなわち、図４ｂに示す構成）を把握している場合、どのタイムスタンプがどのハイパーバイザに属しているかは容易に推測される。
【００９３】
第１の物理マシン４００ａは第１のハイパーバイザ４２０−１を実行し、第１のハイパーバイザ４２０−１が仮想マシン（図示せず）を実行し、さらに仮想マシンが第２のハイパーバイザ４２０−２を実行する。第２のハイパーバイザ４２０−２は第２の仮想マシン（図示せず）を実行し、さらに第２の仮想マシンがテストアプリケーション、例えば、イニシエータ／コントローラとして機能するＴＷＡＭＰアプリケーション４５１ｄを実行する。第１の物理マシン４００ａのＴＷＡＭＰアプリケーション４５１ｄは、パフォーマンス測定を初期化し、テストパケットを生成し、テストパケットは第２の物理マシン４００ｂに送信される。第２のハイパーバイザ４２０−２はテストパケットを傍受し、第１のハイパーバイザタイムスタンプを挿入し、第２の物理マシン４００ｂに向けてパケットを転送し、第２の物理マシン４００ｂはハイパーバイザ４２０ｂを実行し、さらにハイパーバイザ４２０ｂが、リフレクタとして機能するＴＷＡＭＰコントローラ／アプリケーション４５１ｄを実行する。第１のハイパーバイザ４２０−１はテストパケットを傍受し、パケットに第２のハイパーバイザタイムスタンプを挿入し、第２の物理マシン４００ｂに向けてパケットを転送する。
【００９４】
パケットが第２の物理マシン４００ｂで受信されると、物理マシンのハイパーバイザ４２０ｂがパケットを傍受し、リフレクタとして機能するＴＷＡＭＰアプリケーションにパケットを転送する前に、パケットに第３のハイパーバイザタイムスタンプを挿入する。リフレクタとして機能するＴＷＡＭＰアプリケーションが第１の物理マシンの第２の仮想マシンに向けてパケットを返送するとき、第２の物理マシン４００ｂのハイパーバイザ４２０ｂはパケットを傍受し、第１の物理マシンの第２の仮想マシンに向けてパケットを返送する前に、パケットに第４のハイパーバイザタイムスタンプを挿入する。パケットが第１の物理マシン４００ａで受信されると、第１のハイパーバイザ４２０−１がパケットを傍受し、パケットに第５のハイパーバイザタイムスタンプを挿入し、第２の仮想マシンに向けてパケットを転送する。第２のハイパーバイザ４２０−２がパケットを傍受し、パケットに第６のハイパーバイザタイムスタンプを挿入し、イニシエータ／コントローラとして機能するＴＷＡＭＰアプリケーションに向けてパケットを転送する。これはハイパーバイザタイムスタンプを示すのみの簡略化された例であるため、仮想マシンタイムスタンプが省略されていることに留意しなくてはならない。
【００９５】
図４ａでは、物理マシン４００がまた受信部４１１および送信部４１２を備えるものとして示されている。これら２つの装置を通じて、物理マシン４００は通信ネットワーク内の他のノードおよび／またはエンティティと通信するように構成されている。受信部４１１は複数の受信装置を含んでいてもよい。例えば、受信部がケーブルとアンテナの両方に接続されることによって、物理マシン４００が通信ネットワーク内の他のノードおよび／またはエンティティと通信可能となるようにしてもよい。同様に、送信部４１２は複数の送信装置を含んでいてもよく、これらの送信装置がケーブルとアンテナの両方に接続されることによって、物理マシン４００が通信ネットワーク内の他のノードおよび／またはエンティティと通信可能となる。物理マシン４００はデータを格納するメモリ４０１をさらに備えている。さらに物理マシン４００は、相異なる装置４２０および４３０に接続されている制御または処理部４４０を備えるものとして示されている。この構成は単なる例示に過ぎず、物理マシン４００は、図４ａに示す装置と同様に物理マシン４００の機能を実行する、より少ない、より多い、または他の装置またはモジュールを備えていてもよいことを指摘しておかなくてはならない。
【００９６】
図４ａは、物理マシン４００における様々な機能部を論理的に示しているに過ぎないことに留意すべきである。これらの機能は、実用上、適切な任意のソフトウェアおよびハードウェア手段／回路などを用いて実現されてもよい。このように、実施形態は概して、物理マシン４００および機能部の図示された構造に限定されない。したがって、これまで説明してきた例示的実施形態は多くの方法で実現することができる。例えば、一実施形態は、物理マシン４００において方法の各ステップを実行するために制御または処理部４４０によって実行され得る命令が格納された、コンピュータ可読媒体を含む。コンピューティングシステムによって実行することができる、コンピュータ可読媒体に格納された命令は、特許請求の範囲に記載された、物理マシン４００の方法の各ステップを実行する。
【００９７】
図４ａはさらに、物理マシンのハイパーバイザによって実行されている仮想マシンが、受信部４１１および送信部４１２によって、通信ネットワーク内の他のノードおよび／またはエンティティと通信可能となるようにされていることを模式的に示す。受信部４１１および送信部４１２を介した通信は、ハイパーバイザを経由しているように点線で示されている。これは単に論理的かつ簡略化された例示に過ぎないことを指摘しておかなくてはならない。
【００９８】
図５は、ハイパーバイザ５００の例示的構成の一実施形態を模式的に示す。ここでハイパーバイザ５００に含まれているのは、例えばＤＳＰ（デジタル信号プロセッサ）を有する処理部５０６である。処理部５０６は、本明細書で説明する手順の様々な動作を実行する単一の装置であっても複数の装置であってもよい。ハイパーバイザ５００はまた、他のエンティティから信号を受信する入力部５０２、および他のエンティティに信号を提供する出力部５０４を備えていてもよい。入力部および出力部は、一体化されたエンティティとして、または図４ａの例に示すように１つまたは複数のインターフェース４１１／４１２として配置されてもよい。
【００９９】
さらに、ハイパーバイザ５００は、不揮発性メモリ、例えばＥＥＰＲＯＭ（Ｅｌｅｃｔｒｉｃａｌｌｙ  Ｅｒａｓａｂｌｅ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｒｅａｄ−Ｏｎｌｙ  Ｍｅｍｏｒｙ）、フラッシュメモリ、およびハードドライブの形態による少なくとも１つのコンピュータプログラム製品５０８を備えている。コンピュータプログラム製品５０８は、ハイパーバイザ５００内の処理部５０６内で実行されたときに、例えば図１を参照しながら前述した手順の動作をハイパーバイザに実行させるようなコード手段を含む、コンピュータプログラム５１０を備えている。
【０１００】
コンピュータプログラム５１０は、コンピュータプログラムモジュール５１０ａ〜５１０ｅに構造化されるコンピュータプログラムコードとして設定されてもよい。したがって、例示的な一実施形態において、ハイパーバイザ５００のコンピュータプログラム内のコード手段は、仮想マシンから、または仮想マシン宛てに送信されたパケットであって、仮想マシンまたはピアノードへの宛先アドレスを含むパケット、を傍受し、パケットにハイパーバイザタイムスタンプを挿入すべきか否かを決定する傍受部またはモジュールを含んでいる。パケットにハイパーバイザタイムスタンプを挿入すると決定されると、傍受部またはモジュールはパケットにハイパーバイザタイムスタンプを挿入する。コンピュータプログラムは、宛先アドレスに従ってパケットをその宛先に転送する転送部またはモジュールをさらに備えている。
【０１０１】
コンピュータプログラムモジュールは、ハイパーバイザ５００をエミュレートするために、本質的に、図１に示されたフローの動作を実行することができる。言い換えれば、様々なコンピュータプログラムモジュールが処理部５０６内で実行されるとき、これらのプログラムモジュールが図４ａの装置４２１〜４２３に対応していてもよい。
【０１０２】
図６は、物理マシン６００の一実施形態を模式的に示す。ここで物理マシン６００に含まれているのは、例えばＤＳＰ（デジタル信号プロセッサ）を有する処理部６０６である。処理部６０６は、本明細書で説明する手順の様々な動作を実行する単一の装置であっても複数の装置であってもよい。物理マシン６００はまた、他のエンティティから信号を受信する入力部６０２、および他のエンティティに信号を提供する出力部６０４を備えていてもよい。入力部および出力部は、一体化されたエンティティとして、または図４ａの例に示すように１つまたは複数のインターフェース４１１／４１２として配置されてもよい。
【０１０３】
さらに、物理マシン６００は、不揮発性メモリ、例えばＥＥＰＲＯＭ（Ｅｌｅｃｔｒｉｃａｌｌｙ  Ｅｒａｓａｂｌｅ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｒｅａｄ−Ｏｎｌｙ  Ｍｅｍｏｒｙ）、フラッシュメモリ、およびハードドライブの形態による少なくとも１つのコンピュータプログラム製品６０８を備えている。コンピュータプログラム製品６０８は、物理マシン６００内の処理部６０６内で実行されたときに、例えば図２ａおよび２ｂを参照しながら前述した手順の動作を物理マシン６００に実行させるようなコード手段を含む、コンピュータプログラム６１０を備えている。
【０１０４】
コンピュータプログラム６１０は、コンピュータプログラムモジュール６１０ａ〜６１０ｅに構造化されるコンピュータプログラムコードとして設定されてもよい。したがって、例示的な一実施形態において、物理マシン６００のコンピュータプログラム内のコード手段は、ピアノードへの送信対象のパケットを生成する生成部またはモジュールを含む仮想マシンを備え、この仮想マシンは、パケットに第１の仮想マシンタイムスタンプを挿入することによってパケットを初期化する初期化部またはモジュールと、ピアノードに向けてパケットを送信する送信部またはモジュールとをさらに含んでいる。コンピュータプログラムは、仮想マシンから送信されたパケットを傍受する傍受部またはモジュールと、パケットに第１のハイパーバイザタイムスタンプを挿入する挿入部またはモジュールとを含むハイパーバイザをさらに備えている。ハイパーバイザはまた、ピアノードに向けてパケットを転送する転送部またはモジュールを含み、傍受部またはモジュールはさらに、パケットがピアノードから仮想マシンへ返送されるときにパケットを傍受する。挿入部は、パケットにさらなるハイパーバイザタイムスタンプを挿入し、転送部またはモジュールはさらに仮想マシンにパケットを転送する。仮想マシンの初期化部またはモジュールはさらに最後の仮想マシンタイムスタンプを生成する。
【０１０５】
例示的な一実施形態において、物理マシン６００のコンピュータプログラム内のコード手段は、仮想マシン宛てのパケットを傍受する傍受部またはモジュールと、パケットにハイパーバイザタイムスタンプを挿入する挿入部またはモジュールと、仮想マシンにパケットを転送する転送部またはモジュールとを含む、ハイパーバイザを備えている。物理マシン４００はまた、パケットに仮想マシンタイムスタンプを挿入する初期化部またはモジュールと、パケットにさらなる仮想マシンタイムスタンプを挿入する初期化部またはモジュールと、パケットをその送信元であるピアノードに向けて返送する送信部またはモジュールとを含む仮想マシンを備えている。ハイパーバイザ４２０の傍受部またはモジュールはさらにピアノード宛てのパケットを傍受し、挿入部またはモジュールはパケットにさらなるハイパーバイザタイムスタンプを挿入し、転送部はさらにピアノードに向けてパケットを転送する。
【０１０６】
コンピュータプログラムモジュールは、物理マシン６００をエミュレートするために、本質的に、図２ａおよび図２ｂに示されたフローの動作を実行することができる。言い換えれば、様々なコンピュータプログラムモジュールが処理部６０６内で実行されるとき、これらのプログラムモジュールが図４ａの装置４２１〜４２３および４３１〜４３３に対応していてもよい。
【０１０７】
図４ａを参照しながら上述のように開示したそれぞれの実施形態におけるコード手段は、それぞれの処理部内で実行されるとき、上述の図を参照しながら説明した上述の動作をハイパーバイザおよび物理マシンにそれぞれ実行させるコンピュータプログラムモジュールとして実現されるが、これらのコード手段のうち少なくとも１つは、代替実施形態において、少なくとも部分的にハードウェア回路として実現されてもよい。
【０１０８】
プロセッサは、単一ＣＰＵ（中央処理装置）であってもよいが、２つまたは２つ以上の処理装置を備えていてもよい。例えば、プロセッサは、汎用マイクロプロセッサ、命令セットプロセッサおよび／または関連するチップセットおよび／またはＡＳＩＣ（特定用途向け集積回路）などの特定目的マイクロプロセッサを備えていてもよい。プロセッサはまた、キャッシング目的のボードメモリを備えていてもよい。コンピュータプログラムは、プロセッサに接続されたコンピュータプログラム製品によって実行されてもよい。コンピュータプログラム製品は、コンピュータプログラムが格納されているコンピュータ可読媒体を含んでいてもよい。例えば、コンピュータプログラム製品は、フラッシュメモリ、ＲＡＭ（ランダムアクセスメモリ）、ＲＯＭ（読み出し専用メモリ）、またはＥＥＰＲＯＭであってもよく、上述のコンピュータプログラムモジュールは、代替実施形態において、ハイパーバイザおよび物理マシンそれぞれの内部にあるメモリの形態で、異なるコンピュータプログラム製品上に分散させることもできる。
【０１０９】
図７ａは、ＴＷＡＭＰに基づく例示的なテストパケットフォーマットを示すブロック図である。上述のように様々なテストプロトコルを用いることができるが、その一例がＴＷＡＭＰである。
【０１１０】
コントローラとも称されるイニシエータは、測定セッションをセットアップするために、リフレクタに制御パケットを送信する。パラメータの例としては、交換されるテストパケットの数、送信元および受信先ＩＰ、送信元および受信先ポート番号、ならびに開始時間がある。要求された測定セッションに対して、リフレクタによる確認応答が行われる。図３ａおよび図３ｂも参照されたい。
【０１１１】
測定セッションが確立されると、合意済みのパラメータを用いて、イニシエータ／コントローラからリフレクタへテストパケットが送信され、返送される。ＴＷＡＭＰアーキテクチャに従い、各パケットは、図３ａのステップ３：１、３：７、３：８、および３：１４に対応する４回にわたってタイムスタンプを付与される。このようにすることで、順方向および逆方向における一方向の遅延時間、ジッタに加え、ラウンドトリップタイムも計算することができる。
【０１１２】
またテストパケットがステップ３：３、３：５、３：１０、および３：１２に対応するハイパーバイザタイムスタンプを搬送できるようにするため、例えばパディングオクテット内に追加フィールドが定義されるようにＴＷＡＭＰプロトコルを拡張してもよい。図７ａにＴＷＡＭＰパケットの追加フィールドの例を示す。４つの追加フィールド７０６、７０７、７０８、および７０９、すなわちハイパーバイザタイムスタンプ１のＨＴ１、ハイパーバイザタイムスタンプ２のＨＴ２、ハイパーバイザタイムスタンプ３のＨＴ３、およびハイパーバイザタイムスタンプ４のＨＴ４である。
【０１１３】
ＴＷＡＭＰテストパケットの非認証モード（ｕｎａｕｔｈｅｎｔｉｃａｔｅｄ  ｍｏｄｅ）の例は、図７ｂに示すような逆方向におけるフォーマットをとり得る。
【０１１４】
この場合もまた、これらは単なる例に過ぎず、上述のＴＷＡＭＰと同様にアクティブ測定の他のプロトコルを拡張してもよいことに留意しなくてはならない。
【０１１５】
開始側であるＴＷＡＭＰコントローラ／イニシエータがパケットを初期化するときに、ＴＷＡＭＰコントローラ／イニシエータはすべてのタイムスタンプフィールドをゼロに設定する。したがって、ハイパーバイザが特定のフィールドにタイムスタンプを追加できない場合は、そのフィールドにゼロしか含まれていないため、容易に検出できる。
【０１１６】
ＴＷＡＭＰプロトコルは、テストパケット内に新しいタイムスタンプフィールドを定義して更新し、ハイパーバイザがテストパケットを傍受して、そのパケットにハイパーバイザタイムスタンプを挿入できるようにする必要がある。
【０１１７】
パフォーマンス測定の開始側は、例えば図３ｂに示されているのと同様に、最初にＴＷＡＭＰセッションを伝達または設定してもよい。制御パケットは、ＴＷＡＭＰイニシエータ／コントローラによって用いられるＴＷＡＭＰのバージョンを示す情報を含んでいてもよい。このようにすれば、ピアノードすなわちＴＷＡＭＰリフレクタは、パフォーマンス測定にＴＷＡＭＰのどのバージョンが用いられるのかを推定できるようになる。ピアノードがハイパーバイザを備えており、ＴＷＡＭＰの新しいバージョンが用いられている場合には、送受信両側のハイパーバイザがテストパケットにハイパーバイザタイムスタンプを挿入できる。ＴＷＡＭＰイニシエータ／コントローラが（上述のハイパーバイザおよび仮想マシンの手段によって）動作している物理マシンのみがハイパーバイザを備え、ピアノードがハイパーバイザを備えていない場合、物理マシンのハイパーバイザ用のハイパーバイザタイムスタンプフィールドを含むテストパケットが生成されるか、またはテストパケットにおいて、ピアノードのハイパーバイザ用のハイパーバイザタイムスタンプフィールドがイニシエータによってゼロに設定される。ピアノードがハイパーバイザを実行していない場合は、ピアノードにおいて想定されるハイパーバイザのためのハイパーバイザタイムスタンプフィールドはどれも、ピアノードがパケットを受信したときの状態のままになる。すなわち、ＴＷＡＭＰイニシエータ／コントローラが動作している物理マシンにテストパケットが返送されたとき、これらのフィールドには依然としてゼロが設定されている。
【０１１８】
同様に、ＴＷＡＭＰイニシエータ／コントローラが単に物理マシン上で動作しており、一方、ピアノードはハイパーバイザを実行し、さらにハイパーバイザが仮想マシンを実行し、仮想マシンがＴＷＡＭＰリフレクタを実行している場合、ＴＷＡＭＰイニシエータ／コントローラは更新された新しいＴＷＡＭＰをサポートできるが、ＴＷＡＭＰイニシエータ／コントローラが動作している物理マシンにおいて想定されるハイパーバイザのためのハイパーバイザタイムスタンプフィールドはどれも、ゼロが設定されたままになる。物理マシン上では、ＴＷＡＭＰコントローラ／イニシエータを実行する仮想マシンを実行するようなハイパーバイザが動作していないためである。しかし、ピアノードのどのハイパーバイザも、ピアノードのハイパーバイザのためのフィールドにハイパーバイザタイムスタンプを挿入してもよい。
【０１１９】
図３ｂで説明したテストセッションが、ＴＷＡＭＰイニシエータ／コントローラ３１２に対し、第１の物理マシン３１０および第２の物理マシン３２０の上で動作しているハイパーバイザについて通知してもよいし、あるいは単にＴＷＡＭＰイニシエータ／コントローラ３１２が、パフォーマンス測定を実行するための十分に大きいサイズのテストパケットを生成してもよい。すなわち、第１の物理マシン３１０および第２の物理マシン３２０の上で動作している任意の数のハイパーバイザのハイパーバイザタイムスタンプを収容するのに十分な数のハイパーバイザタイムスタンプフィールドを含む、テストパケットである。テストパケットがピアノードに送信され、ピアノードから返送された後、使われなかった余分なハイパーバイザタイムスタンプフィールドにはゼロのみが含まれている。これは、ＴＷＡＭＰイニシエータ／コントローラがテストパケットをピアノードに向けて送信する前に初期化する際、すべてのハイパーバイザタイムスタンプフィールドをゼロに設定する、すなわちゼロで満たすためである。
【０１２０】
図３ｂを参照しながら上述したように、ハイパーバイザがテストパケットを傍受し、場合によって測定用のテストパケット内の専用フィールドにハイパーバイザタイムスタンプを挿入できるようにするためには、まず、ハイパーバイザがＴＷＡＭＰイニシエータ／コントローラとＴＷＡＭＰリフレクタとの間でやり取りされている制御パケットを傍受する必要がある。制御パケットには、送信元ＩＰ、受信先ＩＰ、送信元ポート、および受信先ポートなどのセッションパラメータが含まれている。制御パケットはまた、ＴＷＡＭＰテストパケットのフォーマットまたはＴＷＡＭＰバージョン番号を指定するＴＷＡＭＰモードも伝達する。
【０１２１】
制御パケットの傍受は、ＴＷＡＭＰの新しいモードまたはバージョンのＴＷＡＭＰ制御パケットをリッスンすることによって可能である。制御パケットは、通常、周知のＩＰポート番号に向けて送信される。すなわち、これらのパケットを傍受することは容易であり、あまり処理能力を必要としない。
【０１２２】
一例を挙げれば、ＴＷＡＭＰセッションのセットアップフェーズが確認されると、ハイパーバイザはこのセッションをテストパケットの傍受用の内部データベースに追加する。傍受は、例えば４タプル＜送信元ＩＰ，受信先ＩＰ，送信元ポート，受信先ポート＞に基づいている。ハイパーバイザは、テストパケット内のどこにタイムスタンプを配置すべきか、すなわち、パケット内のハイパーバイザタイムスタンプフィールドの位置を何らかの方法で把握する必要がある。これは、一例では事前設定される。
【０１２３】
一例では、ＴＷＡＭＰテストセッションを確立するために制御パケットを傍受する代わりに、所定のポート番号で送受信されるテストパケットのみを傍受する。これは事前に設定して、テストパケット傍受データベースに登録しておく必要がある。この場合もやはり、傍受は４タプル＜送信元ＩＰ，受信先ＩＰ，送信元ポート，受信先ポート＞に基づいてよい。この解決方法は、ネットワーク上のすべてのＴＷＡＭＰ制御パケットに対する調査を必要としないため、より「軽量」である。さらに、この解決方法はＴＷＡＭＰライトモード（ＴＷＡＭＰ  ｌｉｇｈｔ  ｍｏｄｅ）に対応している。
【０１２４】
ハイパーバイザは、テストパケット傍受データベースを作成した後、ＴＷＡＭＰテストパケットを傍受する。この動作は図３ａに示し、上述したとおりである。図７ａおよび図７ｂに示すように、テストパケットのＴＷＡＭＰヘッダは順方向と逆方向で異なる可能性がある。
【０１２５】
ＴＷＡＭＰイニシエータ／コントローラがピアノードから返送されたテストパケットを受信すると、ＴＷＡＭＰイニシエータ／コントローラは上述のように様々なメトリックを計算できるようになる。例えば、合計ラウンドトリップタイムはＴ４マイナスＴ１と推定され、順方向における一方向の遅延時間はＴ２マイナスＴ１で算出され、逆方向における一方向の遅延時間はＴ４マイナスＴ３で算出される。ＴＷＡＭＰイニシエータ／コントローラは、さらに以下のメトリックを計算できるようになる。順方向における仮想化によるマシン１内の遅延時間はＨＴ１マイナスＴ１で算出され、順方向における仮想化によるマシン２内の遅延時間はＴ２マイナスＨＴ２で算出され、逆方向における仮想化によるマシン２内の遅延時間はＨＴ３マイナスＴ３で算出され、逆方向における仮想化によるマシン１内の遅延時間はＴ４マイナスＨＴ４で算出される。
【０１２６】
このようにして、仮想化による遅延時間およびネットワーキングの問題点による遅延時間を判定することができる。これは、パフォーマンスの問題点の位置を特定する上で重要である。言うまでもなく、追加のハイパーバイザタイムスタンプを用いて、他のメトリックをその固有の推定方法で算出してもよい。
【０１２７】
パフォーマンス測定には、ＴＷＡＭＰの代わりに、これまでに簡単に説明したＩＣＭＰを用いてもよい。ＩＣＭＰ制御メッセージには様々なものがある。例えば、ＩＣＭＰエコー要求はタイプ８、ＩＣＭＰエコー応答はタイプ０である。ＩＣＭＰタイプ１３はタイムスタンプメッセージ、タイプ１４はタイムスタンプ応答メッセージを指す。これは、従来、ノード間の時刻同期に用いられている。タイプ１３のメッセージ構造にハイパーバイザタイムスタンプを追加してＩＣＭＰを更新すると、図８ａおよび図８ｂに示すような順方向および逆方向のテストパケットになる。
【０１２８】
各タイムスタンプは、ＴＷＡＭＰの実施形態で説明したタイムスタンプ（すなわちＴ１〜Ｔ４およびＨＴ１〜ＨＴ４）に対応している。ＩＣＭＰタイムスタンプにおけるタイムスタンプが３２ビットであるのに対し、ＴＷＡＭＰタイムスタンプは６４ビットであることに注目いただきたい。コード０は本来のＩＣＭＰタイムスタンプ機能用に確保されている。新たなハイパーバイザタイムスタンプ付与機能に対しては、新しいコードを確保する必要がある。ハイパーバイザにおけるＩＣＭＰ傍受は、ＴＷＡＭＰ傍受と同様の方法で行われる。タイプ１３または１４と、ハイパーバイザタイムスタンプ付与のための新しいコードとをもつすべてのＩＣＭＰパケットに対して、スヌープが行われる。ＩＣＭＰタイムスタンププロトコルをセットアップするための制御プロトコルは存在しないため、ＩＣＭＰタイムスタンププロトコルはＴＷＡＭＰ  ｌｉｇｈｔと同様に機能する。ハイパーバイザは、テストパケット内のどこにタイムスタンプを配置すべきかについて、何らかの方法で把握する必要がある。これは事前設定が可能である。
【０１２９】
本開示において、相互作用する装置の選択ならびにこれらの装置の命名は例示のみを目的としており、提示された手順の動作を実行できるようにするために、上述の方法のうちのいずれかを実行するのに適したノードは複数の代替方法で設定し得ることを理解すべきである。
【０１３０】
本開示で説明した装置は、必ずしも個別の物理的エンティティではなく、論理的エンティティとみなされるべきである点にも留意すべきである。
【０１３１】
いくつかの実施形態によって実施形態を説明したが、その代替例、変形例、置換例、および同等例は、仕様を読み、図面を検討することにより明らかになるものと考えられる。したがって、以下に添付する特許請求の範囲は、実施形態の範囲内に入り、かつ係属する請求項に記載されるような代替例、変形例、置換例、および同等例を含むものとする。
【図１】
2016517202.tif 000003
【図２ａ】
2016517202.tif 000004
【図２ｂ】
2016517202.tif 000005
【図３ａ】
2016517202.tif 000006
【図３ｂ】
2016517202.tif 000007
【図４ａ】
2016517202.tif 000008
【図４ｂ】
2016517202.tif 000009
【図４ｃ】
2016517202.tif 000010
【図４ｄ】
2016517202.tif 000011
【図５】
2016517202.tif 000012
【図６】
2016517202.tif 000013
【図７ａ】
2016517202.tif 000014
【図７ｂ】
2016517202.tif 000015
【図８ａ】
2016517202.tif 000016
【図８ｂ】
2016517202.tif 000017
【国際調査報告】
2016517202.tif 000018
2016517202.tif 000019
2016517202.tif 000020
2016517202.tif 000021