本願は、中国特許庁に2013年12月30日に出願され、発明の名称を「パケットフロー制御方法、関連装置、及びコンピューティングノード」とする中国特許出願第201310746701.5号に対する優先権を主張し、その全体は、参照により本明細書に組み込まれる。
本発明は、コンピュータ技術分野に関し、詳細には、パケットフロー制御方法、関連装置、及びコンピューティングノードに関する。
仮想化技術は、最下層のハードウェアデバイスをより上位層のオペレーティングシステム及びアプリケーションプログラムから分離するデカップリング技術である。図1に示されるように、仮想マシンモニタ(virtual machine monitor、VMM)層は、最下層のハードウェアリソースを直接管理するために導入され、最下層のハードウェアとは別個の仮想マシン(virtual machine、VM)は、より上位層のオペレーティングシステム及びアプリケーションプログラムによる使用のために形成される。
現在普及しているクラウドコンピューティング(cloud computing)プラットフォームをサポートする重要な最下層技術の1つとして、仮想化技術は、物理デバイスのリソース使用効率を大幅に向上させることができる。従来の物理サーバと比較して、仮想マシンは、より良い分離及びカプセル化性能を有する。
いくつかの既存の仮想化状況において、ホスト(Host)は、仮想マシンのアウトバウンドフローに対する他のポリシに基づいて、帯域幅制限又はアクセス制御を実行する。例えば、VMがパケットを送信した後で、ホストは最初に、VMのアドレス空間からホストのアドレス空間にパケットをコピーする。ホストは、パケットが送信制限を超過したか否かを決定し、送信制限を超過したパケットを概して直接破棄又は最初にキャッシュし、キャッシュ制限を超過したパケットを概して直接破棄する。
研究及び実施の過程で、発明者は以下のことを見出した。すなわち、ホストがフロー制御を実行する既存のメカニズムは、場合によっては(例えば、VMの数が大きいいくつかの状況、又はVMによって送信されるパケットの数が大きい状況においては)深刻な処理遅延を引き起こすことがあり、ホストの大量のアドレス空間が占有されるという事態を引き起こす。
本発明の複数の実施形態は、仮想マシンのアウトバウンドパケットフロー処理のために占有されるホストのアドレス空間を縮小することを目的とするフロー制御方法、関連装置、及びコンピューティングノードを提供する。
前述の技術的問題を解決すべく、本発明の複数の実施形態は、以下の技術的解決手段を提供する。
本発明の複数の実施形態の第1の態様は、パケットフロー制御方法を提供し、その方法は、
仮想マシンとホストHostとの間で、仮想マシンのフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉する段階と、
フロー制御ポリシの交渉された実行者が仮想マシンであると決定された場合には、仮想マシンによって、フロー制御ポリシに基づいて、転送処理されるべきパケットに対する転送処理を実行する段階と、フロー制御ポリシの交渉された実行者がホストであると決定された場合には、転送処理されるべきパケットを、仮想マシンによってホストに送信し、これにより、ホストは、フロー制御ポリシに基づいて、受信されたパケットに対する転送処理を実行する段階と、
を含んでよい。
第1の態様を参照すると、第1の可能な実装態様において、仮想マシンとホストHostとの間で、仮想マシンのフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉する段階は、
仮想マシンによって、仮想マシンのフロー制御機能についての記述情報を含む実行者交渉要求をホストに送信する段階と、
仮想マシンがホストによって送信された交渉確認インジケーションを受信した場合には、ホストがフロー制御機能についての記述情報に従って、仮想マシンがフロー制御ポリシの実行をサポートすると決定した後で、仮想マシンによって、フロー制御ポリシの交渉された実行者が仮想マシンであると決定する段階と、ホストがフロー制御機能についての記述情報に従って、仮想マシンがフロー制御ポリシの実行をサポートしないと決定した後で、仮想マシンがホストによって送信された交渉不確認インジケーションを受信した場合には、仮想マシンによって、フロー制御ポリシの交渉された実行者がホストであると決定する段階と、を含む、
又は、
仮想マシンとホストHostとの間で、仮想マシンのフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉する段階は、
仮想マシンによって、仮想マシンのフロー制御機能についての記述情報を含む実行者交渉要求をホストに送信する段階であって、フロー制御機能についての記述情報は、その実行が仮想マシンによってサポートされるフロー制御ポリシのバージョンを記述するために用いられる、段階と、
ホストがフロー制御機能についての記述情報に従って、仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートすると決定した後で、仮想マシンがホストによって送信された交渉確認インジケーションを受信した場合には、仮想マシンによって、フロー制御ポリシの交渉された実行者が仮想マシンであると決定する段階と、
ホストがフロー制御機能についての記述情報に従って、仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートしないと決定した後で、仮想マシンがホストによって送信された交渉不確認インジケーションを受信した場合には、仮想マシンによって、フロー制御ポリシの交渉された実行者がホストであると決定する段階と、を含む、
又は、
仮想マシンとホストHostとの間で、仮想マシンのフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉する段階は、
仮想マシンによって、仮想マシンのフロー制御機能についての記述情報を含む実行者交渉要求をホストに送信する段階と、
仮想マシンがホストによって送信された交渉確認インジケーションを受信した場合には、ホストがフロー制御機能についての記述情報に従って、仮想マシンがフロー制御ポリシの実行をサポートすると決定した後で、仮想マシンによって、フロー制御ポリシの交渉された実行者が仮想マシンであると決定する段階と、仮想マシンが、実行者交渉要求に応答してホストによって送信された交渉確認インジケーションを、第1の設定期間内に受信しなかった場合には、仮想マシンによって、フロー制御ポリシの交渉された実行者がホストであると決定する段階と、を含む、
又は、
仮想マシンとホストHostとの間で、仮想マシンのフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉する段階は、
仮想マシンによって、仮想マシンのフロー制御機能についての記述情報を含む実行者交渉要求をホストに送信する段階であって、フロー制御機能についての記述情報は、その実行が仮想マシンによってサポートされるフロー制御ポリシのバージョンを記述するために用いられる、段階と、
ホストがフロー制御機能についての記述情報に従って、仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートすると決定した後で、仮想マシンがホストによって送信された交渉確認インジケーションを受信した場合には、仮想マシンによって、フロー制御ポリシの交渉された実行者が仮想マシンであると決定する段階と、
仮想マシンが、実行者交渉要求に応答してホストによって送信された交渉確認インジケーションを、第1の設定期間内に受信しなかった場合には、仮想マシンによって、フロー制御ポリシの交渉された実行者がホストであると決定する段階と、を含む、
又は、
仮想マシンとホストHostとの間で、仮想マシンのフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉する段階は、
仮想マシンによって、仮想マシンのフロー制御機能についての記述情報を含む実行者交渉要求をホストに送信する段階と、
ホストがフロー制御機能についての記述情報に従って、仮想マシンがフロー制御ポリシの実行をサポートしないと決定した後で、仮想マシンがホストによって送信された交渉不確認インジケーションを受信した場合には、仮想マシンによって、フロー制御ポリシの交渉された実行者がホストであると決定する段階と、仮想マシンが、実行者交渉要求に応答してホストによって送信された交渉不確認インジケーションを、第2の設定期間内に受信しなかった場合には、仮想マシンによって、フロー制御ポリシの交渉された実行者が仮想マシンであると決定する段階と、を含む、
又は、
仮想マシンとホストHostとの間で、仮想マシンのフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉する段階は、
仮想マシンによって、仮想マシンのフロー制御機能についての記述情報を含む実行者交渉要求をホストに送信する段階であって、フロー制御機能についての記述情報は、その実行が仮想マシンによってサポートされるフロー制御ポリシのバージョンを記述するために用いられる、段階と、ホストがフロー制御機能についての記述情報に従って、仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートすると決定した後で、仮想マシンがホストによって送信された交渉不確認インジケーションを受信した場合には、仮想マシンによって、フロー制御ポリシの交渉された実行者がホストであると決定する段階と、仮想マシンが、実行者交渉要求に応答してホストによって送信された交渉不確認インジケーションを、第2の設定期間内に受信しなかった場合には、仮想マシンによって、フロー制御ポリシの交渉された実行者が仮想マシンであると決定する段階と、を含む。
第1の態様の第1の可能な実装態様を参照すると、第2の可能な実装態様において、交渉確認インジケーションは、フロー制御ポリシを含み、
仮想マシンによって、フロー制御ポリシに基づいて、転送処理されるべきパケットに対する転送処理を実行する段階は、
仮想マシンによって、交渉確認インジケーションに含まれるフロー制御ポリシに基づいて、転送処理されるべきパケットに対する転送処理を実行する段階を含む。
第1の態様の第1の可能な実装態様又は第1の態様の第2の可能な実装態様を参照すると、第3の可能な実装態様において、仮想マシンによって、仮想マシンのフロー制御機能についての記述情報を含む実行者交渉要求をホストに送信する段階は、
仮想マシンによって、ユーザモードプロセスによって開始された交渉開始要求を受信した後で、仮想マシンのフロー制御機能についての記述情報を含む実行者交渉要求をホストに送信する段階、又は、仮想マシンによって、ホストから交渉開始要求を受信した後で、仮想マシンのフロー制御機能についての記述情報を含む実行者交渉要求をホストに送信する段階を含む。
第1の態様を参照すると、第1の態様の第1の可能な実装態様、第1の態様の第2の可能な実装態様、又は第1の態様の第3の可能な実装態様は、第4の可能な実装態様において、仮想マシンとホストHostとの間で、仮想マシンのフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉する段階は、仮想マシンに配置されたプレロードクライアントとホストに配置されたプレロードサーバとの間の接続が確立された後で、仮想マシンとホストとの間で、確立された接続に基づいてプレロードクライアントとプレロードサーバとによって、仮想マシンのフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉する段階を含む。
第1の態様の第4の可能な実装態様を参照すると、第5の可能な実装態様において、その方法は、フロー制御ポリシの交渉された実行者が仮想マシンであると決定された後で、プレロードクライアントによって、接続に基づいてプレロードサーバにハートビートメッセージを定期的に送信する段階をさらに含む。
第1の態様を参照すると、第1の態様の第1の可能な実装態様、第1の態様の第2の可能な実装態様、第1の態様の第3の可能な実装態様、第1の態様の第4の可能な実装態様、又は第1の態様の第5の可能な実装態様は、第6の可能な実装態様において、フロー制御ポリシは、サービス品質に基づくフロー制御ポリシ及び/又はアクセス制御リストに基づくフロー制御ポリシである。
本発明の複数の実施形態の第2の態様は、パケットフロー制御方法を提供し、その方法は、
仮想マシンとホストHostとの間で、仮想マシンのフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉する段階と、
フロー制御ポリシの交渉された実行者がホストであると決定された場合には、ホストによって、仮想マシンからパケットを受信した後で、フロー制御ポリシに基づいて、受信されたパケットに対する転送処理を実行する段階と、
を含んでよい。
第2の態様を参照すると、第1の可能な実装態様において、ホストHost及び仮想マシンは、仮想マシンとホストとの間で、仮想マシンのフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉し、
仮想マシンとホストHostとの間で、仮想マシンのフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉する段階は、
仮想マシンによって送信され、かつ、仮想マシンのフロー制御機能についての記述情報を含む実行者交渉要求を、ホストによって受信する段階と、
ホストがフロー制御機能についての記述情報に従って、仮想マシンがフロー制御ポリシの実行をサポートすると決定した場合には、交渉確認インジケーションを仮想マシンに送信する段階であって、交渉確認インジケーションは、フロー制御ポリシの交渉された実行者が仮想マシンであることを示す、段階と、
ホストがフロー制御機能についての記述情報に従って、仮想マシンがフロー制御ポリシの実行をサポートしないと決定した場合には、交渉不確認インジケーションを仮想マシンに送信する段階であって、交渉不確認インジケーションは、フロー制御ポリシの交渉された実行者がホストであることを示す、段階と、を含む、
又は、
仮想マシンとホストHostとの間で、仮想マシンのフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉する段階は、
仮想マシンによって送信され、かつ、仮想マシンのフロー制御機能についての記述情報を含む実行者交渉要求を、ホストによって受信する段階であって、フロー制御機能についての記述情報は、その実行が仮想マシンによってサポートされるフロー制御ポリシのバージョンを記述するために用いられる、段階と、
ホストがフロー制御機能についての記述情報に従って、仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートすると決定した場合には、交渉確認インジケーションを仮想マシンに送信する段階であって、交渉確認インジケーションは、フロー制御ポリシの交渉された実行者が仮想マシンであることを示す、段階と、
ホストがフロー制御機能についての記述情報に従って、仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートしないと決定した場合には、交渉不確認インジケーションを仮想マシンに送信する段階であって、交渉不確認インジケーションは、フロー制御ポリシの交渉された実行者がホストであることを示す、段階と、を含む。
第2の態様又は第2の態様の第1の可能な実装態様を参照すると、第2の可能な実装態様において、仮想マシンとホストHostとの間で、仮想マシンのフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉する段階は、ホストのプレロードサーバと仮想マシンのプレロードクライアントとの間で接続が確立された後で、接続を用いることによってプレロードサーバとプレロードクライアントとにより、仮想マシンとホストHostとの間で、仮想マシンのフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉する段階を含む。
第2の態様、第2の態様の第1の可能な実装態様、又は第2の態様の第2の可能な実装態様を参照すると、第3の可能な実装態様において、方法は、
フロー制御ポリシの交渉された実行者が仮想マシンであると決定された後で、ハートビートメッセージが設定期間内に仮想マシンから受信されなかった場合には、フロー制御ポリシの実行者がホストにスイッチされたことを示すインジケーションメッセージホストによって仮想マシンに送信する段階
をさらに含む。
第2の態様、第2の態様の第1の可能な実装態様、第2の態様の第2の可能な実装態様、又は第2の態様の第3の可能な実装態様を参照すると、第4の可能な実装態様において、フロー制御ポリシは、サービス品質に基づくフロー制御ポリシ及び/又はアクセス制御リストに基づくフロー制御ポリシである。
本発明の第3の態様は、パケットフロー制御方法を提供し、その方法は、
プロセッサによって、ホストHostと仮想マシンとの間で、仮想マシンのフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉する段階と、
フロー制御ポリシの交渉された実行者が仮想マシンである場合には、プロセッサによって、フロー制御ポリシに基づいて、仮想マシンの転送処理されるべきパケットに対する転送処理を実行する段階と、フロー制御ポリシの交渉された実行者がホストである場合には、プロセッサによって、仮想マシンの転送処理されるべきパケットを仮想マシンからホストに送信し、フロー制御ポリシに基づいてプロセッサによって、ホストによって受信された転送処理されるべきパケットに対する転送処理を実行する段階と、を含んでよい。
第3の態様を参照すると、第1の可能な実装態様において、
プロセッサによってホストHostと仮想マシンとの間で、仮想マシンのフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉する段階は、仮想マシンによってホストに送信されるべき実行者交渉要求を、プロセッサによってホストに送信する段階であって、実行者交渉要求は、仮想マシンのフロー制御機能についての記述情報を含む、段階と、
ホストが実行者交渉要求を受信した後で、プロセッサがフロー制御機能についての記述情報に従って、仮想マシンがフロー制御ポリシの実行をサポートすると決定した場合には、ホストによって仮想マシンに送信されるべき交渉確認インジケーションを、プロセッサによって仮想マシンに送信する段階であって、交渉確認インジケーションは、フロー制御ポリシの交渉された実行者が仮想マシンであることを示す、段階、及び/又は、プロセッサがフロー制御機能についての記述情報に従って、仮想マシンがフロー制御ポリシの実行をサポートしないと決定した場合には、ホストによって仮想マシンに送信されるべき交渉不確認インジケーションを、プロセッサによって仮想マシンに送信する段階であって、交渉不確認インジケーションは、フロー制御ポリシの交渉された実行者がホストであることを示す、段階と、を含む、
又は、
プロセッサによってホストHostと仮想マシンとの間で、仮想マシンのフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉する段階は、仮想マシンによってホストに送信されるべき実行者交渉要求を、プロセッサによってホストに送信する段階であって、実行者交渉要求は、仮想マシンのフロー制御機能についての記述情報を含み、フロー制御機能についての記述情報は、その実行が仮想マシンによってサポートされるフロー制御ポリシのバージョンを記述するために用いられる、段階と、
ホストが実行者交渉要求を受信した後で、プロセッサがフロー制御機能についての記述情報に従って、仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートすると決定した場合には、ホストによって仮想マシンに送信されるべき交渉確認インジケーションを、プロセッサによって仮想マシンに送信する段階であって、交渉確認インジケーションは、フロー制御ポリシの交渉された実行者が仮想マシンであることを示す、段階、及び/又は、プロセッサがフロー制御機能についての記述情報に従って、仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートしないと決定した場合には、ホストによって仮想マシンに送信されるべき交渉不確認インジケーションを、プロセッサによって仮想マシンに送信する段階であって、交渉不確認インジケーションは、フロー制御ポリシの交渉された実行者がホストであることを示す、段階と、
を含む。
第3の態様又は第3の態様の第1の可能な実装態様を参照すると、第2の可能な実装態様において、交渉確認インジケーションは、フロー制御ポリシを含み、
フロー制御ポリシに基づいて、仮想マシンの転送処理されるべきパケットに対する転送処理を実行する段階は、交渉確認インジケーションに含まれるフロー制御ポリシに基づいて、仮想マシンの転送処理されるべきパケットに対する転送処理を実行する段階を含む。
第3の態様、第3の態様の第1の可能な実装態様、又は第3の態様の第2の可能な実装態様を参照すると、第3の可能な実装態様において、フロー制御ポリシの交渉された実行者が仮想マシンである後で、ホストが設定期間内に仮想マシンからハートビートメッセージを受信しなかった場合には、ホストによって仮想マシンに送信され、かつ、フロー制御ポリシの実行者がホストにスイッチされたことを示すために用いられるべきインジケーションメッセージを、プロセッサによって仮想マシンに送信する。
第3の態様、第3の態様の第1の可能な実装態様、第3の態様の第2の可能な実装態様、又は第3の態様の第3の可能な実装態様を参照すると、第4の可能な実装態様において、
フロー制御ポリシは、サービス品質に基づくフロー制御ポリシ及び/又はアクセス制御リストに基づくフロー制御ポリシである。
第3の態様、第3の態様の第1の可能な実装態様、第3の態様の第2の可能な実装態様、第3の態様の第3の可能な実装態様、又は第3の態様の第4の可能な実装態様を参照すると、第5の可能な実装態様において、仮想マシンによってホストに送信されるべき実行者交渉要求を、ホストに送信する段階は、
仮想マシンが、ユーザモードプロセスによって開始された交渉開始要求を受信した後で、仮想マシンによってホストに送信されるべき実行者交渉要求をホストに送信する段階、又は、仮想マシンが交渉開始要求をホストから受信した後で、仮想マシンによってホストに送信されるべき実行者交渉要求を、ホストに送信する段階を含む。
第3の態様、第3の態様の第1の可能な実装態様、第3の態様の第2の可能な実装態様、第3の態様の第3の可能な実装態様、第3の態様の第4の可能な実装態様、又は第3の態様の第5の可能な実装態様を参照すると、第6の可能な実装態様において、ホストHostと仮想マシンとの間で、仮想マシンのフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉する段階は、仮想マシンに配置されたプレロードクライアントとホストに配置されたプレロードサーバとの間の接続が確立された後で、確立された接続を用いることによって、仮想マシンとホストとの間で、仮想マシンのフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉する段階を含む。
本発明の第4の態様は、パケットフロー制御方法を提供し、その方法は、
プロセッサによってホストHostと仮想マシンとの間で、仮想マシンのフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉する段階と、
フロー制御ポリシの交渉された実行者が仮想マシンである場合には、プロセッサによって、フロー制御ポリシに基づいて、仮想マシンの転送処理されるべきパケットに対する転送処理を実行する段階と、
フロー制御ポリシの交渉された実行者がホストである場合には、仮想マシンの転送処理されるべきパケットを、プロセッサによってホストに送信し、プロセッサによってフロー制御ポリシに基づいて、ホストによって受信された転送処理されるべきパケットに対する転送処理を実行する段階と、
を含んでよい。
第4の態様を参照すると、第1の可能な実装態様において、
プロセッサによってホストHostと仮想マシンとの間で、仮想マシンのフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉する段階は、仮想マシンによってホストに送信されるべき実行者交渉要求を、プロセッサによってホストに送信する段階であって、実行者交渉要求は、仮想マシンのフロー制御機能についての記述情報を含む、段階と、
ホストが実行者交渉要求を受信した後で、プロセッサがフロー制御機能についての記述情報に従って、仮想マシンがフロー制御ポリシの実行をサポートすると決定した場合には、ホストによって仮想マシンに送信されるべき交渉確認インジケーションを、プロセッサによって仮想マシンに送信する段階であって、交渉確認インジケーションは、フロー制御ポリシの交渉された実行者が仮想マシンであることを示す、段階、及び/又は、プロセッサがフロー制御機能についての記述情報に従って、仮想マシンがフロー制御ポリシの実行をサポートしないと決定した場合には、ホストによって仮想マシンに送信されるべき交渉不確認インジケーションを、プロセッサによって仮想マシンに送信する段階であって、交渉不確認インジケーションは、フロー制御ポリシの交渉された実行者がホストであることを示す、段階とを含む、
又は、
プロセッサによってホストHostと仮想マシンとの間で、仮想マシンのフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉する段階は、仮想マシンによってホストに送信されるべき実行者交渉要求を、プロセッサによってホストに送信する段階であって、実行者交渉要求は、仮想マシンのフロー制御機能についての記述情報を含み、フロー制御機能についての記述情報は、その実行が仮想マシンによってサポートされるフロー制御ポリシのバージョンを記述するために用いられる、段階と、
ホストが実行者交渉要求を受信した後で、プロセッサがフロー制御機能についての記述情報に従って、仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートすると決定した場合には、ホストによって仮想マシンに送信されるべき交渉確認インジケーションを、プロセッサによって仮想マシンに送信する段階であって、交渉確認インジケーションは、フロー制御ポリシの交渉された実行者が仮想マシンであることを示す、段階、及び/又は、プロセッサがフロー制御機能についての記述情報に従って、仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートしないと決定した場合には、ホストによって仮想マシンに送信されるべき交渉不確認インジケーションを、プロセッサによって仮想マシンに送信する段階であって、交渉不確認インジケーションは、フロー制御ポリシの交渉された実行者がホストであることを示す、段階と、を含む。
第4の態様又は第4の態様の第1の可能な実装態様を参照すると、第2の可能な実装態様において、交渉確認インジケーションは、フロー制御ポリシを含み、
プロセッサによって、フロー制御ポリシに基づいて、仮想マシンの転送処理されるべきパケットに対する転送処理を実行する段階は、プロセッサによって、交渉確認インジケーションに含まれるフロー制御ポリシに基づいて、仮想マシンの転送処理されるべきパケットに対する転送処理を実行する段階を含む。
第4の態様、第4の態様の第1の可能な実装態様、又は第4の態様の第2の可能な実装態様を参照すると、第3の可能な実装態様において、方法は、フロー制御ポリシの交渉された実行者が仮想マシンである後で、ホストが設定期間内に仮想マシンからハートビートメッセージを受信しなかった場合には、ホストによって仮想マシンに送信され、かつ、フロー制御ポリシの実行者がホストにスイッチされたことを示すために用いられるインジケーションメッセージを、プロセッサによって仮想マシンに送信する段階をさらに含む。
第4の態様、第4の態様の第1の可能な実装態様、第4の態様の第2の可能な実装態様、又は第4の態様の第3の可能な実装態様を参照すると、第4の可能な実装態様において、
フロー制御ポリシは、サービス品質に基づくフロー制御ポリシ及び/又はアクセス制御リストに基づくフロー制御ポリシである。
第4の態様、第4の態様の第1の可能な実装態様、第4の態様の第2の可能な実装態様、第4の態様の第3の可能な実装態様、又は第4の態様の第4の可能な実装態様を参照すると、第5の可能な実装態様において、仮想マシンによってホストに送信されるべき実行者交渉要求を、プロセッサによってホストに送信する段階は、
仮想マシンが、ユーザモードプロセスによって開始された交渉開始要求を受信した後で、仮想マシンによってホストに送信されるべき実行者交渉要求を、プロセッサによってホストに送信する段階、又は、仮想マシンが交渉開始要求をホストから受信した後で、仮想マシンによってホストに送信されるべき実行者交渉要求を、プロセッサによってホストに送信する段階を含む。
第4の態様、第4の態様の第1の可能な実装態様、第4の態様の第2の可能な実装態様、第4の態様の第3の可能な実装態様、第4の態様の第4の可能な実装態様、又は第4の態様の第5の可能な実装態様を参照すると、第6の可能な実装態様において、ホストHostと仮想マシンとの間で、仮想マシンのフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉する段階は、仮想マシンに配置されたプレロードクライアントとホストに配置されたプレロードサーバとの間の接続が確立された後で、プロセッサによって確立された接続を用いることによって、仮想マシンとホストとの間で、仮想マシンのフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉する段階を含む。
本発明の第5の態様は、仮想マシンを提供し、仮想マシンは、
仮想マシンとホストHostとの間で、仮想マシンのフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉するように構成される第1の交渉ユニットと、
フロー制御ポリシの交渉された実行者が仮想マシンであると決定された場合には、フロー制御ポリシに基づいて、転送処理されるべきパケットに対する転送処理を実行し、フロー制御ポリシの交渉された実行者がホストであると決定された場合には、転送処理されるべきパケットをホストに送信し、これにより、ホストが、フロー制御ポリシに基づいて、受信されたパケットに対する転送処理を実行するように構成されるパケット処理ユニットと、
を含んでよい。
第5の態様を参照すると、第1の可能な実装態様において、
第1の交渉ユニットは、仮想マシンのフロー制御機能についての記述情報を含む実行者交渉要求をホストに送信し、交渉確認インジケーションが受信された場合には、フロー制御ポリシの交渉された実行者が仮想マシンであると決定し、交渉不確認インジケーションが受信された場合には、フロー制御ポリシの交渉された実行者がホストであると決定するように具体的に構成され、交渉確認インジケーションは、ホストがフロー制御機能についての記述情報に従って、仮想マシンがフロー制御ポリシの実行をサポートすると決定した後で、ホストによって送信され、交渉不確認インジケーションは、ホストがフロー制御機能についての記述情報に従って、仮想マシンがフロー制御ポリシの実行をサポートしないと決定した後で、ホストによって送信される、
又は、
第1の交渉ユニットは、仮想マシンのフロー制御機能についての記述情報を含む実行者交渉要求をホストに送信し、ホストがフロー制御機能についての記述情報に従って、仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートすると決定した後で、ホストによって送信された交渉確認インジケーションが受信された場合には、フロー制御ポリシの交渉された実行者が仮想マシンであると決定し、ホストがフロー制御機能についての記述情報に従って、仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートしないと決定した後で、ホストによって送信された交渉不確認インジケーションが受信された場合には、フロー制御ポリシの交渉された実行者がホストであると決定するように具体的に構成され、フロー制御機能についての記述情報は、その実行が仮想マシンによってサポートされるフロー制御ポリシのバージョンを記述するために用いられる、
又は、
第1の交渉ユニットは、仮想マシンのフロー制御機能についての記述情報を含む実行者交渉要求をホストに送信し、交渉確認インジケーションが受信された場合には、フロー制御ポリシの交渉された実行者が仮想マシンであると決定し、実行者交渉要求に応答してホストによって送信された交渉確認インジケーションが第1の設定期間内に受信されなかった場合には、フロー制御ポリシの交渉された実行者がホストであると決定するように具体的に構成され、交渉確認インジケーションは、ホストがフロー制御機能についての記述情報に従って、仮想マシンがフロー制御ポリシの実行をサポートすると決定した後で、ホストによって送信される、
又は、
第1の交渉ユニットは、仮想マシンのフロー制御機能についての記述情報を含む実行者交渉要求をホストに送信し、ホストがフロー制御機能についての記述情報に従って、仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートすると決定した後で、ホストによって送信された交渉確認インジケーションが受信された場合には、フロー制御ポリシの交渉された実行者が仮想マシンであると決定し、実行者交渉要求に応答してホストによって送信された交渉確認インジケーションが第1の設定期間内に受信されなかった場合には、フロー制御ポリシの交渉された実行者がホストであると決定するように具体的に構成され、フロー制御機能についての記述情報は、その実行が仮想マシンによってサポートされるフロー制御ポリシのバージョンを記述するために用いられる、
又は、
第1の交渉ユニットは、仮想マシンのフロー制御機能についての記述情報を含む実行者交渉要求をホストに送信し、交渉不確認インジケーションが受信された場合には、フロー制御ポリシの交渉された実行者がホストであると決定し、実行者交渉要求に応答してホストによって送信された交渉不確認インジケーションが第2の設定期間内に受信されなかった場合には、フロー制御ポリシの交渉された実行者が仮想マシンであると決定するように具体的に構成され、交渉不確認インジケーションは、ホストがフロー制御機能についての記述情報に従って、仮想マシンがフロー制御ポリシの実行をサポートしないと決定した後で、ホストによって送信される、
又は、
第1の交渉ユニットは、仮想マシンのフロー制御機能についての記述情報を含む実行者交渉要求をホストに送信し、ホストがフロー制御機能についての記述情報に従って、仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートすると決定した後で、ホストによって送信された交渉不確認インジケーションが受信された場合には、フロー制御ポリシの交渉された実行者がホストであると決定し、実行者交渉要求に応答してホストによって送信された交渉不確認インジケーションが第2の設定期間内に受信されなかった場合には、フロー制御ポリシの交渉された実行者が仮想マシンであると決定するように具体的に構成され、フロー制御機能についての記述情報は、その実行が仮想マシンによってサポートされるフロー制御ポリシのバージョンを記述するために用いられる。
第5の態様又は第5の態様の第1の可能な実装態様を参照すると、第2の可能な実装態様において、仮想マシンは、
フロー制御ポリシの交渉された実行者が仮想マシンであると決定された後で、ハートビートメッセージをホストに定期的に送信するように構成される送信ユニット
をさらに含む。
第5の態様、第5の態様の第1の可能な実装態様、又は第5の態様の第2の可能な実装態様を参照すると、第3の可能な実装態様において、
フロー制御ポリシは、サービス品質に基づくフロー制御ポリシ及び/又はアクセス制御リストに基づくフロー制御ポリシである。
第5の態様の第1の可能な実装態様、第5の態様の第2の可能な実装態様、又は第5の態様の第3の可能な実装態様を参照すると、第4の可能な実装態様において、仮想マシンのフロー制御機能についての記述情報を含む実行者交渉要求をホストに送信するために、交渉ユニットは、ユーザモードプロセスによって開始された交渉開始要求が受信された後で、仮想マシンのフロー制御機能についての記述情報を含む実行者交渉要求をホストに送信し、又は、交渉開始要求がホストから受信された後で、仮想マシンのフロー制御機能についての記述情報を含む実行者交渉要求をホストに送信するように具体的に構成される。
本発明の第6の態様は、ホストを提供し、ホストは、
仮想マシンとホストとの間で、仮想マシンのフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉するように構成される第2の交渉ユニットと、
フロー制御ポリシの交渉された実行者がホストであると決定された場合には、フロー制御ポリシに基づいて、受信されたパケットに対する転送処理を、パケットを仮想マシンから受信した後で実行するように構成されるパケット処理ユニットと、
を含む。
第6の態様を参照すると、第1の可能な実装態様において、
第2の交渉ユニットは、仮想マシンによって送信され、かつ、仮想マシンのフロー制御機能についての記述情報を含む実行者交渉要求を受信し、フロー制御機能についての記述情報に従って、仮想マシンがフロー制御ポリシの実行をサポートすると決定された場合には、交渉確認インジケーションを仮想マシンに送信し、フロー制御機能についての記述情報に従って、仮想マシンがフロー制御ポリシの実行をサポートしないと決定された場合には、交渉不確認インジケーションを仮想マシンに送信するように具体的に構成され、交渉確認インジケーションは、フロー制御ポリシの交渉された実行者が仮想マシンであることを示し、交渉不確認インジケーションは、フロー制御ポリシの交渉された実行者がホストであることを示す、
又は、
第2の交渉ユニットは、仮想マシンによって送信され、かつ、仮想マシンのフロー制御機能についての記述情報を含む実行者交渉要求を受信し、フロー制御機能についての記述情報に従って、仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートすると決定された場合には、交渉確認インジケーションを仮想マシンに送信し、フロー制御機能についての記述情報に従って、仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートしないと決定された場合には、交渉不確認インジケーションを仮想マシンに送信するように具体的に構成され、フロー制御機能についての記述情報は、その実行が仮想マシンによってサポートされるフロー制御ポリシのバージョンを記述するために用いられ、交渉確認インジケーションは、フロー制御ポリシの交渉された実行者が仮想マシンであることを示し、交渉不確認インジケーションは、フロー制御ポリシの交渉された実行者がホストであることを示す。
第6の態様又は第6の態様の第1の可能な実装態様を参照すると、第2の可能な実装態様において、パケット処理ユニットは、フロー制御ポリシの交渉された実行者が仮想マシンであると決定された後で、ハートビートメッセージが設定期間内に仮想マシンから受信されなかった場合には、フロー制御ポリシの実行者がホストにスイッチされたことを示すために用いられるインジケーションメッセージを仮想マシンに送信するようにさらに構成される。
第6の態様、第6の態様の第1の可能な実装態様、又は第6の態様の第2の可能な実装態様を参照すると、第3の可能な実装態様において、
フロー制御ポリシは、サービス品質に基づくフロー制御ポリシ及び/又はアクセス制御リストに基づくフロー制御ポリシである。
本発明の第7の態様は、コンピューティングノードを提供し、コンピューティングノードは、ハードウェア層と、ハードウェア層において動作するホストHostと、ホスト上で動作する少なくとも1つの仮想マシンと、を含んでよく、
仮想マシンは、仮想マシンとホストとの間で、仮想マシンのフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉し、フロー制御ポリシの交渉された実行者が仮想マシンであると決定された場合には、フロー制御ポリシに基づいて、転送処理されるべきパケットに対する転送処理を実行し、フロー制御ポリシの交渉された実行者がホストであると決定された場合には、転送処理されるべきパケットをホストに送信するように構成され、
ホストは、フロー制御ポリシの交渉された実行者がホストであると決定された場合には、フロー制御ポリシに基づいて、受信されたパケットに対する転送処理を、パケットを仮想マシンから受信した後で実行するように構成される。
第7の態様を参照すると、第1の可能な実装態様において、
仮想マシンとホストとの間で、仮想マシンのフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉するために、仮想マシンは、仮想マシンのフロー制御機能についての記述情報を含む実行者交渉要求をホストに送信し、交渉確認インジケーションが受信された場合には、フロー制御ポリシの交渉された実行者が仮想マシンであると決定し、交渉不確認インジケーションが受信された場合には、フロー制御ポリシの交渉された実行者がホストであると決定するように具体的に構成され、交渉確認インジケーションは、ホストがフロー制御機能についての記述情報に従って、仮想マシンがフロー制御ポリシの実行をサポートすると決定した後で、ホストによって送信され、交渉不確認インジケーションは、ホストがフロー制御機能についての記述情報に従って、仮想マシンがフロー制御ポリシの実行をサポートしないと決定した後で、ホストによって送信される、
又は、
仮想マシンとホストとの間で、仮想マシンのフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉するために、仮想マシンは、仮想マシンのフロー制御機能についての記述情報を含む実行者交渉要求をホストに送信し、ホストがフロー制御機能についての記述情報に従って、仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートすると決定した後で、ホストによって送信された交渉確認インジケーションが受信された場合には、フロー制御ポリシの交渉された実行者が仮想マシンであると決定し、ホストがフロー制御機能についての記述情報に従って、仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートしないと決定した後で、ホストによって送信された交渉不確認インジケーションが受信された場合には、フロー制御ポリシの交渉された実行者がホストであると決定するように具体的に構成され、フロー制御機能についての記述情報は、その実行が仮想マシンによってサポートされるフロー制御ポリシのバージョンを記述するために用いられる、
又は、
仮想マシンとホストとの間で、仮想マシンのフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉するために、仮想マシンは、仮想マシンのフロー制御機能についての記述情報を含む実行者交渉要求をホストに送信し、交渉確認インジケーションが受信された場合には、フロー制御ポリシの交渉された実行者が仮想マシンであると決定し、実行者交渉要求に応答してホストによって送信された交渉確認インジケーションが第1の設定期間内に受信されなかった場合には、フロー制御ポリシの交渉された実行者がホストであると決定するように具体的に構成され、交渉確認インジケーションは、ホストがフロー制御機能についての記述情報に従って、仮想マシンがフロー制御ポリシの実行をサポートすると決定した後で、ホストによって送信される、
又は、
仮想マシンとホストとの間で、仮想マシンのフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉するために、仮想マシンは、仮想マシンのフロー制御機能についての記述情報を含む実行者交渉要求をホストに送信し、ホストによって送信された交渉確認インジケーションが、ホストがフロー制御機能についての記述情報に従って、仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートすると決定した後で受信された場合には、フロー制御ポリシの交渉された実行者が仮想マシンであると決定し、実行者交渉要求に応答してホストによって送信された交渉確認インジケーションが第1の設定期間内に受信されなかった場合には、フロー制御ポリシの交渉された実行者がホストであると決定するように具体的に構成され、フロー制御機能についての記述情報は、その実行が仮想マシンによってサポートされるフロー制御ポリシのバージョンを記述するために用いられる、
又は、
仮想マシンとホストとの間で、仮想マシンのフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉するために、仮想マシンは、仮想マシンのフロー制御機能についての記述情報を含む実行者交渉要求をホストに送信し、交渉不確認インジケーションが受信された場合には、フロー制御ポリシの交渉された実行者がホストであると決定し、実行者交渉要求に応答してホストによって送信された交渉不確認インジケーションが第2の設定期間内に受信されなかった場合には、フロー制御ポリシの交渉された実行者が仮想マシンであると決定するように具体的に構成され、交渉不確認インジケーションは、ホストがフロー制御機能についての記述情報に従って、仮想マシンがフロー制御ポリシの実行をサポートしないと決定した後で、ホストによって送信される、
又は、
仮想マシンとホストとの間で、仮想マシンのフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉するために、仮想マシンは、仮想マシンのフロー制御機能についての記述情報を含む実行者交渉要求をホストに送信し、ホストによって送信された交渉不確認インジケーションが、ホストがフロー制御機能についての記述情報に従って、仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートすると決定した後で受信された場合には、フロー制御ポリシの交渉された実行者がホストであると決定し、実行者交渉要求に応答してホストによって送信された交渉不確認インジケーションが第2の設定期間内に受信されなかった場合には、フロー制御ポリシの交渉された実行者が仮想マシンであると決定するように具体的に構成され、フロー制御機能についての記述情報は、その実行が仮想マシンによってサポートされるフロー制御ポリシのバージョンを記述するために用いられる。
第7の態様又は第7の態様の第1の可能な実装態様を参照すると、第2の可能な実装態様において、
ホストは、フロー制御ポリシの交渉された実行者が仮想マシンであると決定された後で、ハートビートメッセージが設定期間内に仮想マシンから受信されなかった場合には、フロー制御ポリシの実行者がホストにスイッチされたことを示すために用いられるインジケーションメッセージを、仮想マシンに送信するようにさらに構成される。
本発明の第8の態様は、コンピューティングノードを提供し、これは、
ストレージと、ストレージに接続されるプロセッサと、
を含み、
プロセッサは、ホストHostと仮想マシンとの間で、仮想マシンのフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉し、フロー制御ポリシの交渉された実行者が仮想マシンである場合には、フロー制御ポリシに基づいて、仮想マシンの転送処理されるべきパケットに対する転送処理を実行し、フロー制御ポリシの交渉された実行者がホストである場合には、仮想マシンの転送処理されるべきパケットを、仮想マシンからホストに送信し、フロー制御ポリシに基づいて、ホストによって受信された転送処理されるべきパケットに対する転送処理を実行するように構成される。
第8の態様を参照すると、第8の態様の第1の可能な実装態様において、
プロセッサは、仮想マシンによってホストに送信されるべき実行者交渉要求をホストに送信し、ホストが実行者交渉要求を受信した後で、フロー制御機能についての記述情報に従って、仮想マシンがフロー制御ポリシの実行をサポートすると決定された場合には、ホストによって仮想マシンに送信されるべき交渉確認インジケーションを仮想マシンに送信する、及び/又は、フロー制御機能についての記述情報に従って、仮想マシンがフロー制御ポリシの実行をサポートしないと決定された場合には、ホストによって仮想マシンに送信されるべき交渉不確認インジケーションを仮想マシンに送信するように構成され、実行者交渉要求は、仮想マシンのフロー制御機能についての記述情報を含み、交渉確認インジケーションは、フロー制御ポリシの交渉された実行者が仮想マシンであることを示し、交渉不確認インジケーションは、フロー制御ポリシの交渉された実行者がホストであることを示す、
又は、
プロセッサは、仮想マシンによってホストに送信されるべき実行者交渉要求をホストに送信し、ホストが実行者交渉要求を受信した後で、フロー制御機能についての記述情報に従って、仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートすると決定された場合には、ホストによって仮想マシンに送信されるべき交渉確認インジケーションを仮想マシンに送信する、及び/又は、フロー制御機能についての記述情報に従って、仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートしないと決定された場合には、ホストによって仮想マシンに送信されるべき交渉不確認インジケーションを仮想マシンに送信するように構成され、実行者交渉要求は、仮想マシンのフロー制御機能についての記述情報を含み、フロー制御機能についての記述情報は、その実行が仮想マシンによってサポートされるフロー制御ポリシのバージョンを記述するために用いられ、交渉確認インジケーションは、フロー制御ポリシの交渉された実行者が仮想マシンであることを示し、交渉不確認インジケーションは、フロー制御ポリシの交渉された実行者がホストであることを示す。
第8の態様の第1の可能な実装態様を参照すると、第8の態様の第2の可能な実装態様において、交渉確認インジケーションは、フロー制御ポリシを含み、
プロセッサは、交渉確認インジケーションに含まれるフロー制御ポリシに基づいて、仮想マシンの転送処理されるべきパケットに対する転送処理を実行するように構成される。
第8の態様、第8の態様の第1の可能な実装態様、第8の態様の第2の可能な実装態様、第8の態様の第3の可能な実装態様を参照すると、プロセッサは、フロー制御ポリシの交渉された実行者が仮想マシンである後で、ホストが設定期間内に仮想マシンからハートビートメッセージを受信しなかった場合には、ホストによって仮想マシンに送信され、かつ、フロー制御ポリシの実行者がホストにスイッチされたことを示すために用いられるべきインジケーションメッセージを、仮想マシンに送信するようにさらに構成される。
本発明の複数の実施形態に係るいくつかの技術的解決手段において、フロー制御ポリシの実行者は、仮想マシンのフロー制御機能に基づいて、仮想マシンとホストとの間で交渉され、フロー制御ポリシの交渉された実行者が仮想マシンであると決定された場合には、仮想マシンは、フロー制御ポリシに基づいて、転送処理されるべきパケットに対する転送処理を実行し、フロー制御ポリシの交渉された実行者がホストであると決定された場合には、仮想マシンは、転送処理されるべきパケットをホストに送信し、これにより、ホストは、フロー制御ポリシに基づいて、受信されたパケットに対する転送処理を実行することが理解されよう。仮想マシン及びホストがフロー制御ポリシの実行者を交渉するメカニズムが導入され、これにより、仮想マシン及びホストの両方が、フロー制御ポリシの実行者となる機会を有する。これにより、仮想マシンはフロー制御ポリシを実行可能となり、可能な限り早くパケットに対するフロー制御の実行に寄与し、さらに、効果的ではない処理の削減及び無効なパケットフローによって占有される帯域幅及びホストのアドレス空間の縮小に寄与する。当該解決手段は、仮想マシンのアウトバウンドパケットフローを処理するために占有されるホストのアドレス空間の縮小に寄与することが理解されよう。さらに、フロー制御ポリシの実行者は、交渉によって決定されるので、フロー制御ポリシの実行者の実行機能は一定程度確保され、フロー制御ポリシ実行における信頼性の向上に寄与する。
本発明の複数の実施形態の技術的解決手段をより明確に説明すべく、以下、複数の実施形態又は従来技術の説明に必要とされる複数の添付図面を簡潔に紹介する。明らかに、以下の説明における複数の添付図面は、本発明のいくつかの実施形態を示しているに過ぎず、当業者であれば、創造的な努力を必要とせずに、これらの添付図面から他の図面をさらに導き出すことがある。
本発明の実施形態に係る仮想化アーキテクチャの模式図である。
本発明の実施形態に係る他の仮想化アーキテクチャの模式図である。
本発明の実施形態に係るパケットフロー制御方法の模式的フローチャートである。
本発明の実施形態に係る他のパケット転送及び制御方法の模式的フローチャートである。
本発明の実施形態に係る他のパケット転送及び制御方法の模式的フローチャートである。
本発明の実施形態に係る他のパケット転送及び制御方法の模式的フローチャートである。
本発明の実施形態に係るコンピューティングノードの模式的構造図である。
本発明の実施形態に係るパケットフロー制御の効果の模式図である。
本発明の実施形態に係る他のパケット転送及び制御方法の模式的フローチャートである。
本発明の実施形態に係る他のパケットフロー制御の効果の模式図である。
本発明の実施形態に係る他のパケット転送及び制御方法の模式的フローチャートである。
本発明の実施形態に係る他のパケット転送及び制御方法の模式的フローチャートである。
本発明の実施形態に係る仮想マシンの模式的構造図である。
本発明の実施形態に係るホストの模式的構造図である。
本発明の実施形態に係るコンピューティングノードの模式的構造図である。
本発明の実施形態に係る他のコンピューティングノードの模式的構造図である。
本発明の実施形態に係る他のコンピューティングノードの模式的構造図である。
本発明の複数の実施形態は、仮想マシンのアウトバウンドパケットフローを処理するために占有されるホストのアドレス空間を縮小することを目的とするフロー制御方法、関連装置、及びコンピューティングノードを提供する。
当業者に本発明の技術的解決手段をより理解せしめるべく、以下、本発明の複数の実施形態の添付図面を参照して、本発明の複数の実施形態の技術的解決手段を明確にかつ完全に説明する。明らかに、説明される複数の実施形態は、本発明の複数の実施形態の全てではなく、その一部に過ぎない。本発明の複数の実施形態に基づいて、当業者によって創造的な努力を必要とせずに得られる全ての他の実施形態は、本発明の保護範囲に含まれるものである。
本発明の複数の実施形態の理解を容易にすべく、本発明の複数の実施形態の説明に導入されるべきいくつかの要素が、最初に本明細書において説明される。
仮想マシンVM:1つ又は複数の仮想コンピュータが、仮想マシンソフトウェアを用いることによって、1つの物理的なコンピュータ上でシミュレーション可能である。これらの仮想マシンは、実際のコンピュータと同様に機能し、オペレーティングシステム及びアプリケーションプログラムは、仮想マシン上にインストール可能であり、仮想マシンは、ネットワークリソースにさらにアクセス可能である。仮想マシンにおいて動作するアプリケーションプログラムに対して、アプリケーションプログラムは、実際のコンピュータにおいて機能しているかのごとく、仮想マシンにおいて機能する。
ハードウェア層:ハードウェア層は、仮想化環境が動作するハードウェアプラットフォームである。ハードウェア層は、様々なハードウェアを含んでよい。例えば、コンピューティングノードのハードウェア層は、CPU及びメモリを含んでよく、ネットワークインタフェースカードのような高速/低速の入/出力(input/output、I/O)デバイス及びストレージデバイス、ならびに入/出力メモリ管理ユニット(Input/Output Memory Management Unit、IOMMU)のような複数の特定の処理機能を有する他のデバイスをさらに含んでよい。IOMMUは、仮想マシンの物理アドレスとホストの物理アドレスとの間で変換を実行するために用いられてよい。
ホスト(Host):ホストは、管理層として、複数のハードウェアリソースの管理及び割り当てを実装し、仮想ハードウェアプラットフォームを仮想マシンに与え、仮想マシンのスケジューリング及び分離を実装するために用いられる。ホストは、仮想マシンモニタ(VMM)であってよい。さらに、場合によっては、VMMは、1つの特権的仮想マシンと協同し、VMM及び仮想マシンが組み合わせられてホストを形成する。仮想ハードウェアプラットフォームは、仮想ハードウェアプラットフォーム上で動作する各仮想マシンに対して様々なハードウェアリソースを提供し、例えば、仮想中央演算処理装置(Central Processing Unit、CPU)、メモリ、仮想ディスク、仮想ネットワークインタフェースカード等を提供する。仮想ディスクは、ホストのファイル又は論理ブロックデバイスに対応してよい。仮想マシンは、ホストによって当該仮想マシンのために準備された仮想ハードウェアプラットフォーム上で動作し、1つ又は複数の仮想マシンは、ホスト上で動作する。
図2を参照すると、図2は、本発明の実施形態に係るコンピューティングノードの仮想化アーキテクチャの模式図であり、アーキテクチャは、主に、ハードウェア層、ホスト、及び仮想マシン(VM)の3つの層を含む。ハードウェア層は、ネットワークインタフェースカードを含む。ネットワークインタフェースカードに対応するバックエンド(Back−End、BE)インスタンスは、ホストに配置され、VMは、ネットワークインタフェースカードに対応するフロントエンド(Front−End、FE)インスタンスを有し、VMのBEは、ネットワークインタフェースカードのフロントエンドドライバとみなされてよく、ホストのFEは、ネットワークインタフェースカードのバックエンドドライバとみなされてよい。
本発明に係るフロー制御方法の実施形態において、パケットフロー制御方法は、仮想マシンとホストとの間で、仮想マシンのフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉する段階と、フロー制御ポリシの交渉された実行者が仮想マシンであると決定された場合には、仮想マシンによって、フロー制御ポリシに基づいて、転送処理されるべきパケットに対する転送処理を実行する段階と、フロー制御ポリシの交渉された実行者がホストであると決定された場合には、仮想マシンによって、転送処理されるべきパケットをホストに送信し、これにより、ホストは、フロー制御ポリシに基づいて、受信されたパケットに対する転送処理を実行する段階と、を含む。
図3を参照すると、図3は、本発明の実施形態に係るパケットフロー制御方法の模式的フローチャートである。図3に示されるように、本発明の本実施形態に係るパケットフロー制御方法は、以下の内容を含んでよい。
301において、仮想マシンとホストとの間で、仮想マシンのフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉する。
本発明のいくつかの実施形態において、仮想マシン及びホストHostは、複数の態様で、仮想マシンとホストとの間で、仮想マシンのフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉してよい。
例えば、仮想マシンとホストとの間で、仮想マシンのフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉する段階は、仮想マシンによって、仮想マシンのフロー制御機能についての記述情報を含む実行者交渉要求をホストに送信する段階と、ホストがフロー制御機能についての記述情報に従って、仮想マシンがフロー制御ポリシの実行をサポートすると決定した後で、仮想マシンがホストによって送信された交渉確認インジケーションを受信した場合には、仮想マシンによって、フロー制御ポリシの交渉された実行者が仮想マシンであると決定する段階と、ホストがフロー制御機能についての記述情報に従って、仮想マシンがフロー制御ポリシの実行をサポートしないと決定した後で、仮想マシンがホストによって送信された交渉不確認インジケーションを受信した場合には、仮想マシンによって、フロー制御ポリシの交渉された実行者がホストであると決定する段階とを含む。
他の例では、仮想マシンとホストとの間で、仮想マシンのフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉する段階は、仮想マシンによって、仮想マシンのフロー制御機能についての記述情報を含む実行者交渉要求をホストに送信する段階であって、フロー制御機能についての記述情報は、その実行が仮想マシンによってサポートされるフロー制御ポリシのバージョンを記述するために用いられる、段階と、ホストがフロー制御機能についての記述情報に従って、仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートすると決定した後で、仮想マシンがホストによって送信された交渉確認インジケーションを受信した場合には、仮想マシンによって、フロー制御ポリシの交渉された実行者が仮想マシンであると決定する段階と、ホストがフロー制御機能についての記述情報に従って、仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートしないと決定した後で、仮想マシンがホストによって送信された交渉不確認インジケーションを受信した場合には、仮想マシンによって、フロー制御ポリシの交渉された実行者がホストであると決定する段階と、を含む。
他の例では、仮想マシンとホストとの間で、仮想マシンのフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉する段階は、仮想マシンによって、仮想マシンのフロー制御機能についての記述情報を含む実行者交渉要求をホストに送信する段階と、ホストがフロー制御機能についての記述情報に従って、仮想マシンがフロー制御ポリシの実行をサポートすると決定した後で、仮想マシンがホストによって送信された交渉確認インジケーションを受信した場合には、仮想マシンによって、フロー制御ポリシの交渉された実行者が仮想マシンであると決定する段階と、仮想マシンが、実行者交渉要求に応答してホストによって送信された交渉確認インジケーションを、第1の設定期間内に受信しなかった場合には、仮想マシンによって、フロー制御ポリシの交渉された実行者がホストであると決定する段階と、を含む。
他の例では、仮想マシンとホストとの間で、仮想マシンのフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉する段階は、仮想マシンによって、仮想マシンのフロー制御機能についての記述情報を含む実行者交渉要求をホストに送信する段階であって、フロー制御機能についての記述情報は、その実行が仮想マシンによってサポートされるフロー制御ポリシのバージョンを記述するために用いられる、段階と、ホストがフロー制御機能についての記述情報に従って、仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートすると決定した後で、仮想マシンがホストによって送信された交渉確認インジケーションを受信した場合には、仮想マシンによって、フロー制御ポリシの交渉された実行者が仮想マシンであると決定する段階と、仮想マシンが、実行者交渉要求に応答してホストによって送信された交渉確認インジケーションを、第1の設定期間内に受信しなかった場合には、仮想マシンによって、フロー制御ポリシの交渉された実行者がホストであると決定する段階と、を含む。
他の例では、仮想マシンとホストとの間で、仮想マシンのフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉する段階は、仮想マシンによって、仮想マシンのフロー制御機能についての記述情報を含む実行者交渉要求をホストに送信する段階と、ホストがフロー制御機能についての記述情報に従って、仮想マシンがフロー制御ポリシの実行をサポートしないと決定した後で、仮想マシンがホストによって送信された交渉不確認インジケーションを受信した場合には、仮想マシンによって、フロー制御ポリシの交渉された実行者がホストであると決定する段階と、仮想マシンが、実行者交渉要求に応答してホストによって送信された交渉不確認インジケーションを、第2の設定期間内に受信しなかった場合には、仮想マシンによって、フロー制御ポリシの交渉された実行者が仮想マシンであると決定する段階と、を含む。
他の例では、仮想マシンとホストとの間で、仮想マシンのフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉する段階は、仮想マシンによって、仮想マシンのフロー制御機能についての記述情報を含む実行者交渉要求をホストに送信する段階であって、フロー制御機能についての記述情報は、その実行が仮想マシンによってサポートされるフロー制御ポリシのバージョンを記述するために用いられる、段階と、ホストがフロー制御機能についての記述情報に従って、仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートすると決定した後で、仮想マシンがホストによって送信された交渉不確認インジケーションを受信した場合には、仮想マシンによって、フロー制御ポリシの交渉された実行者がホストであると決定する段階と、仮想マシンが、実行者交渉要求に応答してホストによって送信された交渉不確認インジケーションを、第2の設定期間内に受信しなかった場合には、仮想マシンによって、フロー制御ポリシの交渉された実行者が仮想マシンであると決定する段階と、を含む。
本発明のいくつかの実施形態において、フロー制御機能についての記述情報は、その実行が仮想マシンによってサポートされるフロー制御ポリシのバージョンを記述するために用いられ、従って、ホストが、フロー制御機能についての記述情報に従って、仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートするか否かを決定することは、具体的には、その実行が仮想マシンによってサポートされるフロー制御ポリシの、フロー制御機能についての記述情報によって記述されるバージョンが、フロー制御ポリシの現在の最新バージョン又は事前設定されたバージョンと同じか否かを比較によって決定することと、これらが同じ場合には、仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートすると決定することと、これらが異なる場合には、仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートしないと決定することと、を含んでよい。他の例では、ホストがフロー制御機能についての記述情報に従って、仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートするか否かを決定することは、具体的には、その実行が仮想マシンによってサポートされる複数のフロー制御ポリシの、フロー制御機能についての記述情報によって記述されるk個(kは正の整数)のバージョンの各バージョンがフロー制御ポリシの現在の最新バージョン又は事前設定されたバージョンと同じか否かを比較によって決定することと、k個のバージョンのうち1つのバージョンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシであることが比較によって得られた場合には、仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートすると決定することと、k個のバージョンのうちいずれか1つのバージョンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシと異なることが比較によって得られた場合には、仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートしないと決定することと、を含んでよい。
仮想マシン及びホストHostが、仮想マシンとホストとの間で、仮想マシンのフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉する複数の特定の態様は、複数の前述の例に限定されるものではないことが理解されよう。
302において、フロー制御ポリシの交渉された実行者が仮想マシンであると決定された場合には、仮想マシンは、フロー制御ポリシに基づいて、転送処理されるべきパケットに対する転送処理を実行してよい。
303において、フロー制御ポリシの交渉された実行者がホストであると決定された場合には、仮想マシンは、転送処理されるべきパケットをホストに送信し、これにより、ホストは、フロー制御ポリシに基づいて、受信されたパケットに対する転送処理を実行する。
本実施形態において説明されるフロー制御ポリシは、例えば、サービス品質に基づくフロー制御ポリシ及び/又はアクセス制御リストに基づくフロー制御ポリシであってよく、勿論、フロー制御ポリシは、複数の他の要素を参照するフロー制御ポリシであってもよい。
サービス品質に基づくフロー制御ポリシにおいて、パケットに対する転送処理を実行する特定の態様(特定の転送処理態様は、パケットを遅延させて送信、パケットを遅延なく送信、又はパケットを破棄してよい等)は、主に、転送処理されるべきパケットに対応するサービス優先度に基づいて決定される。例えば、複数の転送処理されるべきパケットが現在キャッシュに存在するとして、より高いサービス優先度に対応するパケットは、より短い遅延で、又はさらに遅延なく送信されてよく、より低いサービス優先度に対応するパケットは、より長い遅延で送信されてよく、設定された優先度閾値より低いサービス優先度に対応する転送処理されるべきパケットは、さらに破棄されてよい。これは、優先度の高いサービスのサービス品質を可能な限り確保することに寄与する。すなわち、サービス品質に基づいて、フロー制御ポリシに従って転送処理されるべきパケットに対する転送処理を実行する段階は、具体的には、転送処理されるべきパケットのサービス優先度に対応する転送処理態様に従って転送処理されるべきパケットに対する転送処理を実行する段階を含んでよい。
アクセス制御リストに基づくフロー制御ポリシにおいて、パケットに対する転送処理を実行する特定の態様は、主に、転送処理されるべきパケットに含まれる情報がアクセス制御リストに含まれる記録に一致するか否かに基づいて決定される。例えば、アクセス制御リストは、(ブラックリストと同様の)制限されたアクセス制御リストである。制限されたアクセス制御リストが転送処理されるべきパケットのソース/デスティネーションアドレス、アプリケーション層プロトコルタイプ、もしくはトランスポート層プロトコルタイプ、及び/又はパケットヘッダに含まれる特定のキーワードのような情報に一致する記録を有する場合には、転送処理されるべきパケットに対する転送処理を実行する態様は、パケットを直接破棄してよい。反対に、制限されたアクセス制御リストが転送処理されるべきパケットのソース/デスティネーションアドレス、アプリケーション層プロトコルタイプ、もしくはトランスポート層プロトコルタイプ、及び/又はパケットヘッダに含まれる特定のキーワードのような情報に一致する記録を有さない場合には、転送処理されるべきパケットに対する転送処理を実行する態様は、パケットを転送してよい。他の例では、アクセス制御リストは、(ホワイトリストと同様の)許可されたアクセス制御リストである。許可されたアクセス制御リストが転送処理されるべきパケットのソース/デスティネーションアドレス、アプリケーション層プロトコルタイプ、もしくはトランスポート層プロトコルタイプ、及び/又はパケットヘッダに含まれる特定のキーワードのような情報に一致する記録を有さない場合には、転送処理されるべきパケットに対する転送処理を実行する態様は、パケットを直接破棄してよい。許可されたアクセス制御リストが転送処理されるべきパケットのソース/デスティネーションアドレス、アプリケーション層プロトコルタイプ、もしくはトランスポート層プロトコルタイプ、及び/又はパケットヘッダに含まれる特定のキーワードのような情報に一致する記録を有する場合には、転送処理されるべきパケットに対する転送処理を実行する態様は、パケットを転送してよい。複数の他の場合は、類推によって処理されてよい。
本発明のいくつかの実施形態において、交渉確認インジケーションは、フロー制御ポリシを含み、仮想マシンによって、フロー制御ポリシに基づいて、転送処理されるべきパケットに対する転送処理を実行する段階は、仮想マシンによって、交渉確認インジケーションに含まれるフロー制御ポリシに基づいて、転送処理されるべきパケットに対する転送処理を実行する段階を含む。
勿論、ホストは、複数の他の態様において、フロー制御ポリシを仮想マシンに転送し、これにより、仮想マシンは、フロー制御ポリシの交渉された実行者が仮想マシンであると決定された後で、ホストによって転送されたフロー制御ポリシに基づいて、転送処理されるべきパケットに対する転送処理を実行してもよい。勿論、フロー制御ポリシは、仮想マシンにおいて予め設定されてもよい。仮想マシンが、フロー制御ポリシの交渉された実行者が仮想マシンであると決定する場合には、仮想マシンは、予め設定されたフロー制御ポリシに基づいて、転送処理されるべきパケットに対する転送処理を実行する。
本発明のいくつかの実施形態において、仮想マシンが、仮想マシンのフロー制御機能についての記述情報を含む実行者交渉要求をホストに送信することは、仮想マシンによって、ユーザモードプロセスによって開始された交渉開始要求を受信した後で(すなわち、ユーザモードアプリケーション又はユーザ命令によってトリガされてよい)、仮想マシンのフロー制御機能についての記述情報を含む実行者交渉要求をホストに送信すること、又は、仮想マシンによって、ホストから交渉開始要求を受信した後で、仮想マシンのフロー制御機能についての記述情報を含む実行者交渉要求をホストに送信することを含む。勿論、仮想マシンは、別個に又は他の条件にトリガされて、仮想マシンのフロー制御機能についての記述情報を含む実行者交渉要求をホストに送信してもよい。
本発明のいくつかの実施形態において、プレロードクライアントは、仮想マシンに配置されてよく、プレロードサーバは、ホストに配置されてよく、プレロードクライアント及びプレロードサーバは、仮想マシンとホストとの間で、仮想マシンのフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉してよい。例えば、仮想マシンとホストとの間で、仮想マシンのフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉する段階は、仮想マシンに配置されたプレロードクライアントとホストに配置されたプレロードサーバとの間の接続が確立された後で、仮想マシンとホストとの間で、確立された接続に基づいてプレロードクライアントとプレロードサーバとによって、仮想マシンのフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉する段階を含んでよい。
本発明のいくつかの実施形態において、さらに、フロー制御ポリシの交渉された実行者が仮想マシンであると決定された後で、プレロードクライアントは、接続に基づいて、ハートビートメッセージをプレロードサーバに定期的に送信する。ハートビートメッセージを送信する目的の1つは、仮想マシンが適切に機能する状況をホストに通知することである。ホストが設定期間内に仮想マシンからハートビートメッセージを受信しなかった場合には、ホストは、仮想マシンに障害が発生したとデフォルトで決定してよい。例えば、フロー制御ポリシの交渉された実行者が仮想マシンであると決定された後で、ホストが設定期間内に仮想マシンからハートビートメッセージを受信しなかった場合には、ホストは、フロー制御ポリシの実行者をホストにスイッチしてよく(すなわち、仮想マシンがフロー制御ポリシに基づいて、転送処理されるべきパケットに対する転送処理を実行するか否かに関わらず、ホストは、フロー制御ポリシに基づいて、仮想マシンからのパケットに対する転送処理をさらに実行する。なぜなら、ホスト及び仮想マシンにおいて、同じパケットフローに対して実行されるフロー制御ポリシは同じであり、ホスト又は仮想マシン又はその両方がフロー制御ポリシを実行する場合には、最終的なパケット出力条件は基本的に同じだからである)、フロー制御ポリシの実行者がホストにスイッチされたことを示すために用いられるインジケーションメッセージを、仮想マシンに送信してよく、又はしなくてもよい。
本発明のいくつかの実施形態において、フロー制御ポリシの交渉された実行者が仮想マシンであると決定された後で、プレロードクライアントは、仮想マシンがフロー制御ポリシを実行したときに障害が発生した場合には、仮想マシンがフロー制御ポリシを実行したときに障害が発生したことを示すインジケーションメッセージをプレロードサーバに送信してもよい。フロー制御ポリシの交渉された実行者が仮想マシンであると決定された後で、ホストが、仮想マシンがフロー制御ポリシを実行したときに障害が発生したことを示すインジケーションメッセージを仮想マシンから受信した場合には、ホストは、フロー制御ポリシの実行者をホストにスイッチしてよい。
本発明のいくつかの実施形態において、フロー制御ポリシの交渉された実行者が仮想マシンであると決定された後で、プレロードサーバは、仮想マシンがフロー制御ポリシを適切に実行しているか否かを問う状況質問メッセージをプレロードクライアントに定期的に又は不定期的に送信してもよい。状況質問メッセージに応答する状況インジケーションメッセージが設定期間内に仮想マシンから受信されなかった場合、又は、仮想マシンからインジケーションメッセージが受信され、そのインジケーションメッセージが、仮想マシンがフロー制御ポリシを実行したときに障害が発生したことを示す場合には、仮想マシンがフロー制御ポリシを実行したときに障害が発生したと決定されてよい。勿論、プレロードサーバは、複数の他の態様で、仮想マシンがフロー制御ポリシを実行したときに障害が発生したか否かを監視してもよい。仮想マシンがフロー制御ポリシを実行したときに障害が発生したと決定された場合には、ホストは、フロー制御ポリシの実行者をホストにスイッチしてよい。
本実施形態に係る解決手段において、フロー制御ポリシの実行者は、仮想マシンのフロー制御機能に基づいて、仮想マシンとホストとの間で交渉され、フロー制御ポリシの交渉された実行者が仮想マシンであると決定された場合には、仮想マシンは、フロー制御ポリシに基づいて、転送処理されるべきパケットに対する転送処理を実行し、フロー制御ポリシの交渉された実行者がホストであると決定された場合には、仮想マシンは、転送処理されるべきパケットをホストに送信し、これにより、ホストは、フロー制御ポリシに基づいて、受信されたパケットに対する転送処理を実行することが理解されよう。仮想マシン及びホストがフロー制御ポリシの実行者を交渉するメカニズムが導入され、これにより、仮想マシン及びホストの両方が、フロー制御ポリシの実行者となる機会を有する。これにより、仮想マシンはフロー制御ポリシを実行可能となり、可能な限り早くパケットに対するフロー制御を実行することに寄与し、効果的ではない処理の削減及び無効なパケットフローによって占有される帯域幅及びホストのアドレス空間の縮小にさらに寄与する。この解決手段は、仮想マシンのアウトバウンドパケットフローに対する転送処理を実行するために占有されるホストのアドレス空間を縮小することに寄与することが理解されよう。さらに、フロー制御ポリシの実行者は、交渉によってに決定され、フロー制御ポリシ実行の信頼性向上に寄与する。
さらに、仮想マシン及びホストの両方がフロー制御ポリシの実行をサポートする場合には、仮想マシンは、フロー制御ポリシの実行において優先される。これは、可能な限り早くパケットに対するフロー制御を実行することにさらに寄与し、効果的ではない処理及び無効なパケットフローによって占有される帯域幅の縮小にさらに寄与する。
本発明に係るフロー制御方法の他の実施形態において、他のパケットフロー制御方法は、仮想マシンとホストとの間で、仮想マシンのフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉する段階と、ホストが、フロー制御ポリシの交渉された実行者がホストであると決定した場合には、ホストによって、仮想マシンからパケットを受信した後で、フロー制御ポリシに基づいて、受信されたパケットに対する転送処理を実行する段階と、を含む。
図4−aを参照すると、図4−aは、本発明の他の実施形態に係る他のパケットフロー制御方法の模式的フローチャートである。図4−aに示されるように、本発明の他の実施形態に係る他のパケットフロー制御方法は、以下の内容を含んでよい。
401において、仮想マシンとホストとの間で、仮想マシンのフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉する。
本発明のいくつかの実施形態において、ホスト及び仮想マシンは、複数の態様で、仮想マシンとホストとの間で、仮想マシンのフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉してよい。
例えば、ホストHost及び仮想マシンが、仮想マシンとホストとの間で、仮想マシンのフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉することは、仮想マシンによって送信され、かつ、仮想マシンのフロー制御機能についての記述情報を含む実行者交渉要求を、ホストによって受信することと、ホストがフロー制御機能についての記述情報に従って、仮想マシンがフロー制御ポリシの実行をサポートすると決定した場合には、交渉確認インジケーションを仮想マシンに送信することと、及び/又は、ホストがフロー制御機能についての記述情報に従って、仮想マシンがフロー制御ポリシの実行をサポートしないと決定した場合には、交渉不確認インジケーションを仮想マシンに送信することと、を含んでよく、交渉確認インジケーションは、フロー制御ポリシの交渉された実行者が仮想マシンであることを示し、交渉不確認インジケーションは、フロー制御ポリシの交渉された実行者がホストであることを示す。
他の例では、ホストHost及び仮想マシンが、仮想マシンとホストとの間で、仮想マシンのフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉することは、仮想マシンによって送信され、かつ、仮想マシンのフロー制御機能についての記述情報を含む実行者交渉要求を、ホストによって受信することと、ホストがフロー制御機能についての記述情報に従って、仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートすると決定した場合には、交渉確認インジケーションを仮想マシンに送信することと、及び/又は、ホストがフロー制御機能についての記述情報に従って、仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートしないと決定した場合には、交渉不確認インジケーションを仮想マシンに送信することと、を含んでよく、フロー制御機能についての記述情報は、その実行が仮想マシンによってサポートされるフロー制御ポリシのバージョンを記述するために用いられ、交渉確認インジケーションは、フロー制御ポリシの交渉された実行者が仮想マシンであることを示し、交渉不確認インジケーションは、フロー制御ポリシの交渉された実行者がホストであることを示す。
仮想マシン及びホストHostが、仮想マシンとホストとの間で、仮想マシンのフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉する特定の態様は、前述の例に限定されるものではないことが理解されよう。
402において、フロー制御ポリシの交渉された実行者がホストであると決定された場合には、ホストは、パケットを仮想マシンから受信した後で、フロー制御ポリシに基づいて、受信されたパケットに対する転送処理を実行する。
上述の「両者」は、フロー制御ポリシの実行者の交渉に参加する両方の対象を指し、本実施形態において、両方の対象は、仮想マシン及びホストであることが理解されよう。
さらに、フロー制御ポリシの交渉された実行者が仮想マシンである場合には、仮想マシンは、フロー制御ポリシに基づいて、転送処理されるべきパケットに対する転送処理を実行してよい。
本実施形態において説明されるフロー制御ポリシは、例えば、サービス品質に基づくフロー制御ポリシ及び/又はアクセス制御リストに基づくフロー制御ポリシであってよく、勿論、フロー制御ポリシは、複数の他の要素を参照するフロー制御ポリシであってもよい。
サービス品質に基づくフロー制御ポリシにおいて、パケットに対する転送処理を実行する特定の態様(特定の転送処理態様は、パケットを遅延させて送信、パケットを遅延なく送信、又はパケットを破棄してよい等)は、主に、転送処理されるべきパケットに対応するサービス優先度に基づいて決定される。例えば、複数の転送処理されるべきパケットが現在キャッシュに存在するとして、より高いサービス優先度に対応するパケットは、より短い遅延で、又はさらに遅延なく送信されてよく、より低いサービス優先度に対応するパケットは、より長い遅延で送信されてよく、設定された優先度閾値より低いサービス優先度に対応する転送処理されるべきパケットは、さらに破棄されてよい。これは、優先度の高いサービスのサービス品質を可能な限り確保することに寄与する。すなわち、サービス品質に基づいて、フロー制御ポリシに従って転送処理されるべきパケットに対する転送処理を実行する段階は、具体的には、転送処理されるべきパケットのサービス優先度に対応する転送処理態様に従って転送処理されるべきパケットに対する転送処理を実行する段階を含んでよい。
アクセス制御リストに基づくフロー制御ポリシにおいて、パケットに対する転送処理を実行する特定の態様は、主に、転送処理されるべきパケットに含まれる情報がアクセス制御リストに含まれる記録に一致するか否かに基づいて決定される。例えば、アクセス制御リストは、(ブラックリストと同様の)制限されたアクセス制御リストである。制限されたアクセス制御リストが転送処理されるべきパケットのソース/デスティネーションアドレス、アプリケーション層プロトコルタイプ、もしくはトランスポート層プロトコルタイプ、及び/又はパケットヘッダに含まれる特定のキーワードのような情報に一致する記録を有する場合には、転送処理されるべきパケットに対する転送処理を実行する態様は、パケットを直接破棄してよい。反対に、制限されたアクセス制御リストが転送処理されるべきパケットのソース/デスティネーションアドレス、アプリケーション層プロトコルタイプ、もしくはトランスポート層プロトコルタイプ、及び/又はパケットヘッダに含まれる特定のキーワードのような情報に一致する記録を有さない場合には、転送処理されるべきパケットに対する転送処理を実行する態様は、パケットを転送してよい。他の例では、アクセス制御リストは、(ホワイトリストと同様の)許可されたアクセス制御リストである。許可されたアクセス制御リストが転送処理されるべきパケットのソース/デスティネーションアドレス、アプリケーション層プロトコルタイプ、もしくはトランスポート層プロトコルタイプ、及び/又はパケットヘッダに含まれる特定のキーワードのような情報に一致する記録を有さない場合には、転送処理されるべきパケットに対する転送処理を実行する態様は、パケットを直接破棄してよい。許可されたアクセス制御リストが転送処理されるべきパケットのソース/デスティネーションアドレス、アプリケーション層プロトコルタイプ、もしくはトランスポート層プロトコルタイプ、及び/又はパケットヘッダに含まれる特定のキーワードのような情報に一致する記録を有する場合には、転送処理されるべきパケットに対する転送処理を実行する態様は、パケットを転送してよい。複数の他の場合は、類推によって処理されてよい。
本発明のいくつかの実施形態において、交渉確認インジケーションは、フロー制御ポリシを含み、仮想マシンによって、フロー制御ポリシに基づいて、転送処理されるべきパケットに対する転送処理を実行する段階は、仮想マシンによって、交渉確認インジケーションに含まれるフロー制御ポリシに基づいて、転送処理されるべきパケットに対する転送処理を実行する段階を含む。
勿論、ホストは、複数の他の態様において、フロー制御ポリシを仮想マシンに転送し、これにより、仮想マシンは、フロー制御ポリシの交渉された実行者が仮想マシンであると決定された後で、ホストによって転送されたフロー制御ポリシに基づいて、転送処理されるべきパケットに対する転送処理を実行してもよい。勿論、フロー制御ポリシは、仮想マシンにおいて予め設定されてもよい。仮想マシンが、フロー制御ポリシの交渉された実行者が仮想マシンであると決定する場合には、仮想マシンは、予め設定されたフロー制御ポリシに基づいて、転送処理されるべきパケットに対する転送処理を実行する。
本発明のいくつかの実施形態において、プレロードクライアントは、仮想マシンに配置されてよく、プレロードサーバは、ホストに配置されてよく、プレロードクライアント及びプレロードサーバは、仮想マシンとホストとの間で、仮想マシンのフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉してよい。例えば、仮想マシン及びホストHostが、仮想マシンとホストとの間で、仮想マシンのフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉することは、ホストに配置されたプレロードサーバと仮想マシンに配置されたプレロードクライアントとの間の接続が確立された後で、確立された接続に基づいてプレロードサーバとプレロードクライアントとによって、仮想マシンとホストとの間で、仮想マシンのフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉することを含んでよい。
本発明のいくつかの実施形態において、さらに、フロー制御ポリシの交渉された実行者が仮想マシンであると決定された後で、プレロードクライアントは、接続に基づいて、ハートビートメッセージをプレロードサーバに定期的に送信してよい。ハートビートメッセージを送信する目的の1つは、仮想マシンが適切に機能している状況をホストに通知することである。ホストが設定期間内に仮想マシンからハートビートメッセージを受信しなかった場合には、ホストは、仮想マシンに障害が発生したとデフォルトで決定してよい。例えば、フロー制御ポリシの交渉された実行者が仮想マシンであると決定された後で、ホストが設定期間内に仮想マシンからハートビートメッセージを受信しなかった場合には、ホストは、フロー制御ポリシの実行者をホストにスイッチしてよく(すなわち、仮想マシンがフロー制御ポリシに基づいて、転送処理されるべきパケットに対する転送処理を実行するか否かに関わらず、ホストは、フロー制御ポリシに基づいて、仮想マシンからのパケットに対する転送処理をさらに実行する。なぜなら、ホスト及び仮想マシンにおいて、同じパケットフローに対して実行されるフロー制御ポリシは同じであり、ホスト又は仮想マシン又はその両方がフロー制御ポリシを実行する場合には、最終的なパケット出力条件は基本的に同じだからである)、フロー制御ポリシの実行者がホストにスイッチされたことを示すために用いられるインジケーションメッセージを、仮想マシンに送信してよく、又はしなくてもよい。
本実施形態に係る解決手段において、ホスト及び仮想マシンは、仮想マシンとホストとの間で、仮想マシンのフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉し、ホストが、フロー制御ポリシの交渉された実行者がホストであると決定した場合には、ホストは、パケットを仮想マシンから受信した後で、フロー制御ポリシに基づいて、受信されたパケットに対する転送処理を実行することが理解されよう。仮想マシン及びホストがフロー制御ポリシの実行者を交渉するメカニズムが導入され、これにより、仮想マシン及びホストの両方が、フロー制御ポリシの実行者となる機会を有する。これにより、仮想マシンはフロー制御ポリシを実行可能となり、可能な限り早くパケットに対するフロー制御の実行に寄与し、さらに、効果的ではない処理の削減及び無効なパケットフローによって占有される帯域幅及びホストのアドレス空間の縮小に寄与する。この解決手段は、仮想マシンのアウトバウンドパケットフローに対する転送処理を実行するために占有されるホストのアドレス空間を縮小することに寄与することが理解されよう。さらに、フロー制御ポリシの実行者は、交渉によってに決定され、フロー制御ポリシ実行の信頼性向上に寄与する。
さらに、仮想マシン及びホストの両方がフロー制御ポリシの実行をサポートする場合には、仮想マシンは、フロー制御ポリシの実行において優先される。これは、可能な限り早くパケットに対するフロー制御を実行することにさらに寄与し、効果的ではない処理及び無効なパケットフローによって占有される帯域幅の縮小にさらに寄与する。
本発明の本実施形態は、パケットフロー制御方法をさらに提供し、その方法は、ホストHostと仮想マシンとの間で、仮想マシンのフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉する段階と、フロー制御ポリシの交渉された実行者が仮想マシンである場合には、フロー制御ポリシに基づいて、仮想マシンの転送処理されるべきパケットに対する転送処理を実行する段階と、フロー制御ポリシの交渉された実行者がホストである場合には、仮想マシンの転送処理されるべきパケットをホストに送信する段階と、フロー制御ポリシに基づいて、ホストによって受信された転送処理されるべきパケットに対する転送処理を実行する段階と、を含んでよい。
本発明のいくつかの実施形態において、ホストHostと仮想マシンとの間で、仮想マシンのフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉する段階は、
仮想マシンによってホストに送信されるべき実行者交渉要求をホストに送信する段階であって、実行者交渉要求は、仮想マシンのフロー制御機能についての記述情報を含む、段階と、
ホストが実行者交渉要求を受信した後で、フロー制御機能についての記述情報に従って、仮想マシンがフロー制御ポリシの実行をサポートすると決定された場合には、ホストによって仮想マシンに送信されるべき交渉確認インジケーションを、仮想マシンによって送信する段階であって、交渉確認インジケーションは、フロー制御ポリシの交渉された実行者が仮想マシンであることを示す、段階、及び/又は、フロー制御機能についての記述情報に従って、仮想マシンがフロー制御ポリシの実行をサポートしないと決定された場合には、ホストによって仮想マシンに送信されるべき交渉不確認インジケーションを仮想マシンに送信する段階であって、交渉不確認インジケーションは、フロー制御ポリシの交渉された実行者がホストであることを示す、段階と、
を含む、
又は、
ホストHostと仮想マシンとの間で、仮想マシンのフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉する段階は、
仮想マシンによってホストに送信されるべき実行者交渉要求をホストに送信する段階であって、実行者交渉要求は、仮想マシンのフロー制御機能についての記述情報を含み、フロー制御機能についての記述情報は、その実行が仮想マシンによってサポートされるフロー制御ポリシのバージョンを記述するために用いられる、段階と、
ホストが実行者交渉要求を受信した後で、フロー制御機能についての記述情報に従って、仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートすると決定された場合には、ホストによって仮想マシンに送信されるべき交渉確認インジケーションを仮想マシンに送信する段階であって、交渉確認インジケーションは、フロー制御ポリシの交渉された実行者が仮想マシンであることを示す、段階、及び/又は、フロー制御機能についての記述情報に従って、仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートしないと決定された場合には、ホストによって仮想マシンに送信されるべき交渉不確認インジケーションを仮想マシンに送信する段階であって、交渉不確認インジケーションは、フロー制御ポリシの交渉された実行者がホストであることを示す、段階と、
を含む。
本発明のいくつかの実施形態において、交渉確認インジケーションは、フロー制御ポリシを含む。
フロー制御ポリシに基づいて、仮想マシンの転送処理されるべきパケットに対する転送処理を実行する段階は、交渉確認インジケーションに含まれるフロー制御ポリシに基づいて、仮想マシンの転送処理されるべきパケットに対する転送処理を実行する段階を含む。
本発明のいくつかの実施形態において、フロー制御ポリシの交渉された実行者が仮想マシンである後で、ホストが設定期間内に仮想マシンからハートビートメッセージを受信しなかった場合には、ホストは、ホストによって仮想マシンに送信され、かつ、フロー制御ポリシの実行者がホストにスイッチされたことを示すために用いられるべきインジケーションメッセージを、仮想マシンに送信する。
本実施形態において説明され、プロセッサが転送処理されるべきパケットを処理するベースとなるフロー制御ポリシは、例えば、サービス品質に基づくフロー制御ポリシ及び/又はアクセス制御リストに基づくフロー制御ポリシであってよく、勿論、フロー制御ポリシは、複数の他の要素を参照するフロー制御ポリシであってもよい。
サービス品質に基づくフロー制御ポリシにおいて、パケットに対する転送処理を実行する特定の態様(特定の転送処理態様は、パケットを遅延させて送信、パケットを遅延なく送信、又はパケットを破棄してよい等)は、主に、転送処理されるべきパケットに対応するサービス優先度に基づいて決定される。例えば、複数の転送処理されるべきパケットが現在キャッシュに存在するとして、より高いサービス優先度に対応するパケットは、より短い遅延で、又はさらに遅延なく送信されてよく、より低いサービス優先度に対応するパケットは、より長い遅延で送信されてよく、設定された優先度閾値より低いサービス優先度に対応する転送処理されるべきパケットは、さらに破棄されてよい。これは、優先度の高いサービスのサービス品質を可能な限り確保することに寄与する。すなわち、サービス品質に基づいて、フロー制御ポリシに従って転送処理されるべきパケットに対する転送処理を実行する段階は、具体的には、転送処理されるべきパケットのサービス優先度に対応する転送処理態様に従って転送処理されるべきパケットに対する転送処理を実行する段階を含んでよい。
アクセス制御リストに基づくフロー制御ポリシにおいて、パケットに対する転送処理を実行する特定の態様は、主に、転送処理されるべきパケットに含まれる情報がアクセス制御リストに含まれる記録に一致するか否かに基づいて決定される。例えば、アクセス制御リストは、(ブラックリストと同様の)制限されたアクセス制御リストである。制限されたアクセス制御リストが転送処理されるべきパケットのソース/デスティネーションアドレス、アプリケーション層プロトコルタイプ、もしくはトランスポート層プロトコルタイプ、及び/又はパケットヘッダに含まれる特定のキーワードのような情報に一致する記録を有する場合には、転送処理されるべきパケットに対する転送処理を実行する態様は、パケットを直接破棄してよい。反対に、制限されたアクセス制御リストが転送処理されるべきパケットのソース/デスティネーションアドレス、アプリケーション層プロトコルタイプ、もしくはトランスポート層プロトコルタイプ、及び/又はパケットヘッダに含まれる特定のキーワードのような情報に一致する記録を有さない場合には、転送処理されるべきパケットに対する転送処理を実行する態様は、パケットを転送してよい。他の例では、アクセス制御リストは、(ホワイトリストと同様の)許可されたアクセス制御リストである。許可されたアクセス制御リストが転送処理されるべきパケットのソース/デスティネーションアドレス、アプリケーション層プロトコルタイプ、もしくはトランスポート層プロトコルタイプ、及び/又はパケットヘッダに含まれる特定のキーワードのような情報に一致する記録を有さない場合には、転送処理されるべきパケットに対する転送処理を実行する態様は、パケットを直接破棄してよい。許可されたアクセス制御リストが転送処理されるべきパケットのソース/デスティネーションアドレス、アプリケーション層プロトコルタイプ、もしくはトランスポート層プロトコルタイプ、及び/又はパケットヘッダに含まれる特定のキーワードのような情報に一致する記録を有する場合には、転送処理されるべきパケットに対する転送処理を実行する態様は、パケットを転送してよい。複数の他の場合は、類推によって処理されてよい。
本発明のいくつかの実施形態において、仮想マシンによってホストに送信されるべき実行者交渉要求をホストに送信する段階は、仮想マシンが、ユーザモードプロセスによって開始された交渉開始要求を受信した後で、仮想マシンによってホストに送信されるべき実行者交渉要求をホストに送信する段階、又は、仮想マシンが交渉開始要求をホストから受信した後で、仮想マシンによってホストに送信されるべき実行者交渉要求をホストに送信する段階を含む。
本発明のいくつかの実施形態において、ホストHostと仮想マシンとの間で、仮想マシンのフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉する段階は、仮想マシンに配置されたプレロードクライアントとホストに配置されたプレロードサーバとの間の接続が確立された後で、確立された接続を用いることによって、仮想マシンとホストとの間で、仮想マシンのフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉する段階を含む。
本実施形態の前述された複数の段階は、プロセッサ又は他のハードウェアによって実行されてよい。
図4−bを参照すると、図4−bは、本発明の他の実施形態に係る他のパケットフロー制御方法の模式的フローチャートである。図4−bに示されるように、本発明の他の実施形態に係る他のパケットフロー制御方法は、以下の内容を含んでよい。
s401
プロセッサは、ホストHostと仮想マシンとの間で、仮想マシンのフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉する。
s402
フロー制御ポリシの交渉された実行者が仮想マシンである場合には、プロセッサは、フロー制御ポリシに基づいて、仮想マシンの転送処理されるべきパケットに対する転送処理を実行する。
s403
フロー制御ポリシの交渉された実行者がホストである場合には、プロセッサは、仮想マシンの転送処理されるべきパケットをホストに送信し、プロセッサは、フロー制御ポリシに基づいて、ホストによって受信された転送処理されるべきパケットに対する転送処理を実行する。
本発明のいくつかの実施形態において、プロセッサが、ホストHostと仮想マシンとの間で仮想マシンのフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉することは、以下を含んでよい。
プロセッサが、ホストHostと仮想マシンとの間で、仮想マシンのフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉することは、仮想マシンによってホストに送信されるべき実行者交渉要求を、プロセッサによってホストに送信することであって、実行者交渉要求は、仮想マシンのフロー制御機能についての記述情報を含むことと、
ホストが実行者交渉要求を受信した後で、プロセッサがフロー制御機能についての記述情報に従って、仮想マシンがフロー制御ポリシの実行をサポートすると決定した場合には、ホストによって仮想マシンに送信されるべき交渉確認インジケーションを、プロセッサによって仮想マシンに送信することであって、交渉確認インジケーションは、フロー制御ポリシの交渉された実行者が仮想マシンであることを示すこと、及び/又は、プロセッサがフロー制御機能についての記述情報に従って、仮想マシンがフロー制御ポリシの実行をサポートしないと決定した場合には、ホストによって仮想マシンに送信されるべき交渉不確認インジケーションを、プロセッサによって仮想マシンに送信することであって、交渉不確認インジケーションは、フロー制御ポリシの交渉された実行者がホストであることを示すこと、
を含む、
又は、
プロセッサが、ホストHostと仮想マシンとの間で、仮想マシンのフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉することは、仮想マシンによってホストに送信されるべき実行者交渉要求を、プロセッサによってホストに送信することであって、実行者交渉要求は、仮想マシンのフロー制御機能についての記述情報を含み、フロー制御機能についての記述情報は、その実行が仮想マシンによってサポートされるフロー制御ポリシのバージョンを記述するために用いられることと、
ホストが実行者交渉要求を受信した後で、プロセッサが、フロー制御機能についての記述情報に従って、仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートすると決定した場合には、ホストによって仮想マシンに送信されるべき交渉確認インジケーションをプロセッサによって仮想マシンに送信することであって、交渉確認インジケーションは、フロー制御ポリシの交渉された実行者が仮想マシンであることを示すこと、及び/又は、プロセッサがフロー制御機能についての記述情報に従って、仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートしないと決定した場合には、ホストによって仮想マシンに送信されるべき交渉不確認インジケーションを、プロセッサによって仮想マシンに送信することであって、交渉不確認インジケーションは、フロー制御ポリシの交渉された実行者がホストであることを示すことと、
を含む。
本発明のいくつかの実施形態において、交渉確認インジケーションは、フロー制御ポリシを含む。
プロセッサが、フロー制御ポリシに基づいて、仮想マシンの転送処理されるべきパケットに対する転送処理を実行することは、プロセッサによって、交渉確認インジケーションに含まれるフロー制御ポリシに基づいて、仮想マシンの転送処理されるべきパケットに対する転送処理を実行することを含む。
勿論、ホストは、複数の他の態様で、フロー制御ポリシを仮想マシンに転送してもよく、これにより、プロセッサは、フロー制御ポリシの交渉された実行者が仮想マシンであると決定された後で、ホストによって転送されたフロー制御ポリシに基づいて、仮想マシンの転送処理されるべきパケットに対する転送処理を実行する。勿論、フロー制御ポリシは、仮想マシンにおいて予め設定されてもよい。フロー制御ポリシの交渉された実行者が仮想マシンであると決定される場合には、プロセッサは、予め設定されたフロー制御ポリシに基づいて、仮想マシンの転送処理されるべきパケットに対する転送処理を実行する。
本発明のいくつかの実施形態において、フロー制御ポリシの交渉された実行者が仮想マシンである後で、ホストが設定期間内に仮想マシンからハートビートメッセージを受信しなかった場合には、プロセッサは、ホストによって仮想マシンに送信され、かつ、フロー制御ポリシの実行者がホストにスイッチされたことを示すために用いられるべきインジケーションメッセージを、仮想マシンに送信する。
本発明のいくつかの実施形態において、フロー制御ポリシは、サービス品質に基づくフロー制御ポリシ及び/又はアクセス制御リストに基づくフロー制御ポリシである。
本発明のいくつかの実施形態において、仮想マシンによってホストに送信されるべき実行者交渉要求を、プロセッサによってホストに送信する段階は、
仮想マシンが、ユーザモードプロセスによって開始された交渉開始要求を受信した後で、仮想マシンによってホストに送信されるべき実行者交渉要求を、プロセッサによってホストに送信する段階、又は、仮想マシンが交渉開始要求をホストから受信した後で、仮想マシンによってホストに送信されるべき実行者交渉要求を、プロセッサによってホストに送信する段階
を含んでよい。
本実施形態において説明される、プロセッサが転送処理されるべきパケットを処理するベースとなるフロー制御ポリシは、例えば、サービス品質に基づくフロー制御ポリシ及び/又はアクセス制御リストに基づくフロー制御ポリシであってよく、勿論、フロー制御ポリシは、複数の他の要素を参照するフロー制御ポリシであってもよい。
サービス品質に基づくフロー制御ポリシにおいて、パケットに対する転送処理を実行する特定の態様(特定の転送処理態様は、パケットを遅延させて送信、パケットを遅延なく送信、又はパケットを破棄してよい等)は、主に、転送処理されるべきパケットに対応するサービス優先度に基づいて決定される。例えば、複数の転送処理されるべきパケットが現在キャッシュに存在するとして、より高いサービス優先度に対応するパケットは、より短い遅延で、又はさらに遅延なく送信されてよく、より低いサービス優先度に対応するパケットは、より長い遅延で送信されてよく、設定された優先度閾値より低いサービス優先度に対応する転送処理されるべきパケットは、さらに破棄されてよい。これは、優先度の高いサービスのサービス品質を可能な限り確保することに寄与する。すなわち、サービス品質に基づいて、フロー制御ポリシに従って転送処理されるべきパケットに対する転送処理を実行する段階は、具体的には、転送処理されるべきパケットのサービス優先度に対応する転送処理態様に従って転送処理されるべきパケットに対する転送処理を実行する段階を含んでよい。
アクセス制御リストに基づくフロー制御ポリシにおいて、パケットに対する転送処理を実行する特定の態様は、主に、転送処理されるべきパケットに含まれる情報がアクセス制御リストに含まれる記録に一致するか否かに基づいて決定される。例えば、アクセス制御リストは、(ブラックリストと同様の)制限されたアクセス制御リストである。制限されたアクセス制御リストが転送処理されるべきパケットのソース/デスティネーションアドレス、アプリケーション層プロトコルタイプ、もしくはトランスポート層プロトコルタイプ、及び/又はパケットヘッダに含まれる特定のキーワードのような情報に一致する記録を有する場合には、転送処理されるべきパケットに対する転送処理を実行する態様は、パケットを直接破棄してよい。反対に、制限されたアクセス制御リストが転送処理されるべきパケットのソース/デスティネーションアドレス、アプリケーション層プロトコルタイプ、もしくはトランスポート層プロトコルタイプ、及び/又はパケットヘッダに含まれる特定のキーワードのような情報に一致する記録を有さない場合には、転送処理されるべきパケットに対する転送処理を実行する態様は、パケットを転送してよい。他の例では、アクセス制御リストは、(ホワイトリストと同様の)許可されたアクセス制御リストである。許可されたアクセス制御リストが転送処理されるべきパケットのソース/デスティネーションアドレス、アプリケーション層プロトコルタイプ、もしくはトランスポート層プロトコルタイプ、及び/又はパケットヘッダに含まれる特定のキーワードのような情報に一致する記録を有さない場合には、転送処理されるべきパケットに対する転送処理を実行する態様は、パケットを直接破棄してよい。許可されたアクセス制御リストが転送処理されるべきパケットのソース/デスティネーションアドレス、アプリケーション層プロトコルタイプ、もしくはトランスポート層プロトコルタイプ、及び/又はパケットヘッダに含まれる特定のキーワードのような情報に一致する記録を有する場合には、転送処理されるべきパケットに対する転送処理を実行する態様は、パケットを転送してよい。複数の他の場合は、類推によって処理されてよい。
本発明のいくつかの実施形態において、ホストHostと仮想マシンとの間で、仮想マシンのフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉する段階は、仮想マシンに配置されたプレロードクライアントとホストに配置されたプレロードサーバとの間の接続が確立された後で、プロセッサによって確立された接続を用いることによって、仮想マシンとホストとの間で、仮想マシンのフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉する段階を含んでよい。
本実施形態に係る解決手段において、プロセッサの助けによって、仮想マシン及びホストHostは、仮想マシンとホストとの間で、仮想マシンのフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉し、仮想マシンが、フロー制御ポリシの交渉された実行者が仮想マシンであると決定した場合には、仮想マシンは、フロー制御ポリシに基づいて、転送処理されるべきパケットに対する転送処理を実行し、仮想マシンが、フロー制御ポリシの交渉された実行者がホストであると決定した場合には、仮想マシンは、転送処理されるべきパケットをホストに送信し、これにより、ホストは、フロー制御ポリシに基づいて、受信されたパケットに対する転送処理を実行することが理解されよう。仮想マシン及びホストがフロー制御ポリシの実行者を交渉するメカニズムが導入され、これにより、仮想マシン及びホストの両方が、フロー制御ポリシの実行者となる機会を有する。これにより、仮想マシンはフロー制御ポリシを実行可能となり、可能な限り早くパケットに対するフロー制御の実行に寄与し、さらに、効果的ではない処理の削減及び無効なパケットフローによって占有される帯域幅及びホストのアドレス空間の縮小に寄与する。この解決手段は、仮想マシンのアウトバウンドパケットフローに対する転送処理を実行するために占有されるホストのアドレス空間を縮小することに寄与することが理解されよう。さらに、フロー制御ポリシの実行者は、交渉によってに決定され、フロー制御ポリシ実行の信頼性向上に寄与する。
さらに、仮想マシン及びホストの両方がフロー制御ポリシの実行をサポートする場合には、仮想マシンは、フロー制御ポリシの実行において優先される。これは、可能な限り早くパケットに対するフロー制御を実行することにさらに寄与し、効果的ではない処理及び無効なパケットフローによって占有される帯域幅の縮小にさらに寄与する。
本発明の複数の実施形態に係る複数の解決手段のより十分な理解及び実装を容易にすべく、以下の例示的な説明は、いくつかの具体例を用いることによって提供される。
図5−a及び図5−bを参照すると、図5−aは、本発明の他の実施形態に係る他のパケットフロー制御方法の模式的フローチャートであり、図5−bは、本発明の本実施形態に係るコンピューティングノードであって、図5−aに示されるフロー制御方法を実装するために利用可能なコンピューティングノードの模式的構造図である。図5−bは、例として、コンピューティングノードに配置されたホスト及び仮想マシンの具体的な内部論理アーキテクチャを示す。勿論、ホスト及び仮想マシンは、図5−bに示される例と異なる他の内部論理アーキテクチャを有してもよい。本実施形態は、主に、フロー制御方法が図5−bに示されるアーキテクチャで実装される例を用いることによって説明される。
図5−aに示されるように、本発明の他の実施形態に係る他のパケットフロー制御方法は、以下の内容を含んでよい。
501において、仮想マシンVM−mに配置されたプレロードクライアント(preload client)及びホストに配置されたプレロードサーバ(preload server)は、接続を確立する。その接続は、送信制御プロトコルの接続又は他のタイプの通信接続である。
固有の通信接続が、仮想マシンVM−mに配置されたプレロードクライアントとホストに配置されたプレロードサーバとの間に存在し、又は、プレロードクライアント及びプレロードサーバは、互いに直接通信可能である場合には、段階501は省略されてもよい。
502において、仮想マシンVM−mに配置されたプレロードクライアントは、ホストに配置されたプレロードサーバによって送信された交渉開始要求を受信する。
503において、仮想マシンVM−mに配置されたプレロードクライアントは、仮想マシンVM−mのフロー制御機能についての記述情報を含む実行者交渉要求を、ホストに配置されたプレロードサーバに送信する。
段階502において、ホストに配置されたプレロードサーバは、仮想マシンVM−mに配置されたプレロードクライアントに交渉開始要求を送信し、主に、フロー制御ポリシの実行者の交渉を開始するよう仮想マシンVM−mに配置されたプレロードクライアントをトリガする。勿論、仮想マシンVM−mに配置されたプレロードクライアントは、他の条件(例えば、ユーザモードプロセスによって開始された交渉開始要求(すなわち、ユーザモードアプリケーション又はユーザ命令によってトリガされてよい)が受信されたこと)によってトリガされ、フロー制御ポリシの実行者の交渉を開始してもよいことが理解されよう。仮想マシンVM−mに配置されたプレロードクライアントがフロー制御ポリシの実行者の交渉を別個に開始した場合には、段階502は省略されてよい。
504において、ホストに配置されたプレロードサーバは、仮想マシンVM−mのフロー制御機能についての記述情報を含む実行者交渉要求を受信し、実行者交渉要求に含まれるフロー制御機能についての記述情報は、仮想マシンVM−mがフロー制御ポリシの実行をサポートするか否かを示し、これにより、ホストに配置されたプレロードサーバは、フロー制御機能についての記述情報に従って、仮想マシンVM−mがフロー制御ポリシの実行をサポートするか否かを決定してよい。
本実施形態において、ホストに配置されたプレロードサーバが、仮想マシンVM−mがフロー制御ポリシの実行をサポートすると決定することは、以下において例として用いられる。従って、ホストに配置されたプレロードサーバは、交渉確認インジケーションを仮想マシンVM−mに配置されたプレロードクライアントに送信してよく、交渉確認インジケーションは、フロー制御ポリシの交渉された実行者が仮想マシンVM−mであることを示し、交渉確認インジケーションは、フロー制御ポリシを含んでよい。ホストに配置されたプレロードサーバは、ホストに配置されたプレロードカーネル(preload kernel)に、フロー制御ポリシを実行しないようさらに命令する。
505において、ホストに配置されたプレロードサーバによって送信された交渉確認インジケーションを受信した後で、仮想マシンVM−mに配置されたプレロードクライアントは、フロー制御ポリシの交渉された実行者が仮想マシンVM−mであると決定し、従って、仮想マシンVM−mに配置されたプレロードクライアントは、交渉確認インジケーションに含まれるフロー制御ポリシを、仮想マシンVM−mに配置されたネットワークインタフェースカードに対応するFEに送信し、これにより、仮想マシンVM−mに配置されたネットワークインタフェースカードに対応するFEに、フロー制御ポリシを実行するよう命令する。
段階503から505を実行することによって、仮想マシンVM−mに配置されたプレロードクライアント及びホストに配置されたプレロードサーバは、交渉によって、フロー制御ポリシの実行者を決定する。
506において、フロー制御ポリシを受信した後で、仮想マシンVM−mに配置されたネットワークインタフェースカードに対応するFEは、受信されたフロー制御ポリシに基づいて、仮想マシンVM−mに配置されたユーザモードアプリケーションから転送処理されるべきパケットに対する転送処理を実行する。
本実施形態において、サービス品質に基づくフロー制御ポリシ又はアクセス制御リストに基づくフロー制御ポリシは、フロー制御ポリシの例として用いられる。
サービス品質に基づくフロー制御ポリシにおいて、パケットに対する転送処理を実行する特定の態様(特定の転送処理態様は、パケットを遅延させて送信、パケットを遅延なく送信、又はパケットを破棄してよい等)は、主に、転送処理されるべきパケットに対応するサービス優先度に基づいて決定される。例えば、複数の転送処理されるべきパケットが現在キャッシュに存在するとして、より高いサービス優先度に対応するパケットは、より短い遅延で、又はさらに遅延なく送信されてよく、より低いサービス優先度に対応するパケットは、より長い遅延で送信されてよく、設定された優先度閾値より低いサービス優先度に対応する転送処理されるべきパケットは、さらに破棄されてよい。これは、優先度の高いサービスのサービス品質を可能な限り確保することに寄与する。
アクセス制御リストに基づくフロー制御ポリシにおいて、パケットに対する転送処理を実行する特定の態様は、主に、転送処理されるべきパケットに含まれる情報がアクセス制御リストに含まれる記録に一致するか否かに基づいて決定される。例えば、アクセス制御リストは、(ブラックリストと同様の)制限されたアクセス制御リストである。制限されたアクセス制御リストが転送処理されるべきパケットのソース/デスティネーションアドレス、アプリケーション層プロトコルタイプ、もしくはトランスポート層プロトコルタイプ、及び/又はパケットヘッダに含まれる特定のキーワードのような情報に一致する記録を有する場合には、転送処理されるべきパケットに対する転送処理を実行する態様は、パケットを直接破棄してよい。反対に、制限されたアクセス制御リストが転送処理されるべきパケットのソース/デスティネーションアドレス、アプリケーション層プロトコルタイプ、もしくはトランスポート層プロトコルタイプ、及び/又はパケットヘッダに含まれる特定のキーワードのような情報に一致する記録を有さない場合には、転送処理されるべきパケットに対する転送処理を実行する態様は、パケットを転送してよい。他の例では、アクセス制御リストは、(ホワイトリストと同様の)許可されたアクセス制御リストである。許可されたアクセス制御リストが転送処理されるべきパケットのソース/デスティネーションアドレス、アプリケーション層プロトコルタイプ、もしくはトランスポート層プロトコルタイプ、及び/又はパケットヘッダに含まれる特定のキーワードのような情報に一致する記録を有さない場合には、転送処理されるべきパケットに対する転送処理を実行する態様は、パケットを直接破棄してよい。許可されたアクセス制御リストが転送処理されるべきパケットのソース/デスティネーションアドレス、アプリケーション層プロトコルタイプ、もしくはトランスポート層プロトコルタイプ、及び/又はパケットヘッダに含まれる特定のキーワードのような情報に一致する記録を有する場合には、転送処理されるべきパケットに対する転送処理を実行する態様は、パケットを転送してよい。複数の他の場合は、類推によって処理されてよい。
従って、仮想マシンVM−mに配置されたネットワークインタフェースカードに対応するFEが、受信されたフロー制御ポリシに基づいて、仮想マシンVM−mに配置されたユーザモードアプリケーションから転送処理されるべきパケットに対する転送処理を実行することは、仮想マシンVM−mに配置されたネットワークインタフェースカードに対応するFEが、仮想マシンVM−mに配置されたユーザモードアプリケーションから転送処理されるべきパケットを破棄すること、又は、仮想マシンVM−mに配置されたネットワークインタフェースカードに対応するFEが、仮想マシンVM−mに配置されたユーザモードアプリケーションから転送処理されるべきパケットを、遅延させて(遅延の程度は、転送処理されるべきパケットのサービス優先度及び転送処理されるべきパケットの現在の数に関連してよい)送信すること、又は、仮想マシンVM−mに配置されたネットワークインタフェースカードに対応するFEが、仮想マシンVM−mに配置されたユーザモードアプリケーションから転送処理されるべきパケットを、遅延なく送信することを含んでよい。複数の他の態様は、本明細書において再度列挙されない。
ホストに配置されたネットワークインタフェースカードに対応するBEが、仮想マシンVM−mに配置されたネットワークインタフェースカードに対応するFEのパケットを受信する場合には、ホストに配置されたネットワークインタフェースカードに対応するBEは、受信されたパケットに対するホストに配置されたプレロードカーネルへの転送処理を実行する。
ホストに配置されたプレロードカーネルは、フロー制御ポリシを実行することが必要ではないので、ホストに配置されたプレロードカーネルは、ネットワークインタフェースカードドライバを用いることによって、受信されたパケットをネットワークインタフェースカードに直接転送してよく、ネットワークインタフェースカードは、これに応じて、受信されたパケットに対する転送処理を実行してよい。
本発明のいくつかの実施形態において、フロー制御ポリシの交渉された実行者が仮想マシンVM−mであると決定された後で、プレロードクライアントは、接続に基づいて、ハートビートメッセージをプレロードサーバに定期的に送信してよい。ハートビートメッセージを送信する目的の1つは、仮想マシンVM−mが適切に機能している状況をプレロードサーバに通知することである。プレロードサーバが設定期間内にプレロードクライアントからハートビートメッセージを受信しなかった場合には、プレロードサーバは、VM−mにおいて障害が発生したとデフォルトで決定してよい。例えば、フロー制御ポリシの交渉された実行者が仮想マシンVM−mであると決定された後で、プレロードサーバが、設定期間内にプレロードクライアントからハートビートメッセージを受信しなかった場合には、プレロードサーバは、フロー制御ポリシの実行者をホストにスイッチしてよく(すなわち、プレロードカーネルは、仮想マシンVM−mに配置されたネットワークインタフェースカードに対応するFEがフロー制御ポリシに基づいて、転送処理されるべきパケットに対する転送処理を実行するか否かに関わらず、フロー制御ポリシに基づいて、仮想マシンVM−mからのパケットに対する転送処理をさらに実行する。ホスト及び仮想マシンVM−mにおいて同じパケットフローに対して実行されるフロー制御ポリシは同じであるので、プレロードカーネルもしくは仮想マシンVM−mに配置されたネットワークインタフェースカードに対応するFE又はその両方は、同じフロー制御ポリシを実行し、プレロードカーネルの最終的なパケット出力条件は、基本的に同じである)、フロー制御ポリシの実行者がホストにスイッチされたことを示すインジケーションメッセージを、プレロードクライアントに送信してよい。
本発明のいくつかの実施形態において、フロー制御ポリシの交渉された実行者が仮想マシンVM−mであると決定された後で、プレロードクライアントは、仮想マシンVM−mに配置されたネットワークインタフェースカードに対応するFEがフロー制御ポリシを実行したときに障害が発生した場合には、仮想マシンVM−mがフロー制御ポリシを実行したときに障害が発生したことを示すインジケーションメッセージをプレロードサーバに送信してもよい。フロー制御ポリシの交渉された実行者が仮想マシンであると決定された後で、プレロードサーバが、仮想マシンVM−mがフロー制御ポリシを実行したときに障害が発生したことを示すインジケーションメッセージをプレロードクライアントから受信した場合には、プレロードサーバは、フロー制御ポリシの実行者をホストにスイッチしてよく、プレロードサーバは、プレロードカーネルに、フロー制御ポリシを実行するよう命令してよい。
本発明のいくつかの実施形態において、フロー制御ポリシの交渉された実行者が仮想マシンVM−mであると決定された後で、プレロードサーバは、仮想マシンVM−mがフロー制御ポリシを適切に実行しているか否かを問う状況質問メッセージをプレロードクライアントに定期的に又は不定期的に送信してもよい。状況質問メッセージに応答する状況インジケーションメッセージが設定期間内にプレロードクライアントから受信されなかった場合、又は、プレロードクライアントからインジケーションメッセージが受信され、そのインジケーションメッセージが、仮想マシンVM−mがフロー制御ポリシを実行したときに障害が発生したことを示す場合には、仮想マシンVM−mがフロー制御ポリシを実行したときに障害が発生したと決定されてよい。勿論、プレロードサーバは、複数の他の態様で、仮想マシンVM−mがフロー制御ポリシを実行したときに障害が発生したか否かを監視してもよい。仮想マシンVM−mがフロー制御ポリシを実行したときに障害が発生したと決定された場合には、プレロードサーバは、フロー制御ポリシの実行者をホストにスイッチしてよく、プレロードサーバは、プレロードカーネルに、フロー制御ポリシを実行するよう命令してよい。
フロー制御ポリシを実行するよう命令された後で、プレロードカーネルは、フロー制御ポリシに基づいて、仮想マシンVM−mから転送処理されるべきパケットに対する転送処理を実行する。
図5−cを参照すると、図5−cは、本発明の本実施形態に係るフロー制御の効果の模式図である。図5−cに示されるように、ネットワークインタフェースカードに対応するFEが、仮想マシンVM−mのユーザモードアプリケーションからの高帯域幅パケットフローに対してフロー制御ポリシを実行した後で、パケットフローの帯域幅が減少する。フロー制御を早い段階で実行することは、リソース消費の低減に寄与することが理解されよう。
本実施形態に係る解決手段において、仮想マシン及びホストがフロー制御ポリシの実行者を交渉するメカニズムが導入され、これにより、仮想マシン及びホストの両方は、フロー制御ポリシの実行者となる機会を有する。これにより、仮想マシンは、フロー制御ポリシを実行可能となり、可能な限り早くパケットに対するフロー制御を実行することに寄与し、効果的ではない処理の削減ならびに無効なパケットフローによって占有される帯域幅及びホストのアドレス空間の縮小にさらに寄与することが理解されよう。この解決手段は、仮想マシンのアウトバウンドパケットフローに対する転送処理を実行するために占有されるホストのアドレス空間を縮小することに寄与することが理解されよう。さらに、フロー制御ポリシの実行者は、交渉によってに決定され、フロー制御ポリシ実行の信頼性向上に寄与する。
さらに、仮想マシン及びホストの両方がフロー制御ポリシの実行をサポートする場合には、仮想マシンは、フロー制御ポリシの実行において優先される。これは、可能な限り早くパケットに対するフロー制御を実行することにさらに寄与し、効果的ではない処理及び無効なパケットフローによって占有される帯域幅の縮小にさらに寄与する。
さらに、仮想マシン及びホストは、複雑なアプリケーション環境に対する製品の適合性向上、及び環境移行のアップグレードコスト削減に寄与するモジュラーアーキテクチャを用いることによって設計される。
図6−aを参照すると、図6−aは、本発明の他の実施形態に係る他のパケットフロー制御方法の模式的フローチャートである。図5−bは、本発明の本実施形態によって提供されるコンピューティングノードの模式的構造図であり、図6に示されるフロー制御方法を実装するために利用可能である。図5−bは、例として、コンピューティングノードに配置されたホスト及び仮想マシンの具体的な内部論理アーキテクチャを示す。勿論、ホスト及び仮想マシンは、図5−bに示される例と異なる他の内部論理アーキテクチャを有してもよい。本実施形態は、主に、フロー制御方法が図5−bに示されるアーキテクチャで実装される例を用いることによって説明される。
図6−aに示されるように、本発明の他の実施形態に係る他のパケットフロー制御方法は、以下の内容を含んでよい。
601において、仮想マシンVM−mに配置されたプレロードクライアント及びホストに配置されたプレロードサーバは、接続を確立する。その接続は、送信制御プロトコルの接続又は他のタイプの通信接続である。
固有の通信接続が、仮想マシンVM−mに配置されたプレロードクライアントとホストに配置されたプレロードサーバとの間に存在し、又は、プレロードクライアント及びプレロードサーバは、互いに直接通信可能である場合には、段階601は省略されてもよい。
602において、仮想マシンVM−mに配置されたプレロードクライアントは、ホストに配置されたプレロードサーバによって送信された交渉開始要求を受信する。
603において、仮想マシンVM−mに配置されたプレロードクライアントは、仮想マシンVM−mのフロー制御機能についての記述情報を含む実行者交渉要求を、ホストに配置されたプレロードサーバに送信する。
段階601において、ホストに配置されたプレロードサーバは、仮想マシンVM−mに配置されたプレロードクライアントに交渉開始要求を送信し、主に、フロー制御ポリシの実行者の交渉を開始するよう仮想マシンVM−mに配置されたプレロードクライアントをトリガする。勿論、仮想マシンVM−mに配置されたプレロードクライアントは、他の条件(例えば、ユーザモードプロセスによって開始された交渉開始要求(すなわち、ユーザモードアプリケーション又はユーザ命令によってトリガされてよい)が受信されたこと)によってトリガされ、フロー制御ポリシの実行者の交渉を開始してもよいことが理解されよう。仮想マシンVM−mに配置されたプレロードクライアントがフロー制御ポリシの実行者の交渉を別個に開始した場合には、段階602は省略されてよい。
604において、ホストに配置されたプレロードサーバは、仮想マシンVM−mのフロー制御機能についての記述情報を含む実行者交渉要求を受信し、実行者交渉要求に含まれるフロー制御機能についての記述情報は、仮想マシンVM−mがフロー制御ポリシの実行をサポートするか否かを示し、これにより、ホストに配置されたプレロードサーバは、フロー制御機能についての記述情報に従って、仮想マシンVM−mがフロー制御ポリシの実行をサポートするか否かを決定してよい。
本実施形態において、ホストに配置されたプレロードサーバが、仮想マシンVM−mがフロー制御ポリシの実行をサポートしないと決定することは、以下において、例として用いられる。従って、ホストに配置されたプレロードサーバは、仮想マシンVM−mに配置されたプレロードクライアントに交渉不確認インジケーションを送信してよく、交渉不確認インジケーションは、フロー制御ポリシの交渉された実行者がホストであることを示す。ホストに配置されたプレロードサーバは、ホストに配置されたプレロードカーネル(preload kernel)に、フロー制御ポリシを実行するようさらに命令する。
605において、ホストに配置されたプレロードサーバによって送信された交渉不確認インジケーションを受信した後で、仮想マシンVM−mに配置されたプレロードクライアントは、フロー制御ポリシの交渉された実行者がホストであると決定し、従って、仮想マシンVM−mに配置されたプレロードクライアントは、仮想マシンVM−mに配置されたネットワークインタフェースカードに対応するFEに、フロー制御ポリシを実行しないよう命令する。
段階603から605を実行することによって、仮想マシンVM−mに配置されたプレロードクライアント及びホストに配置されたプレロードサーバは、交渉によって、フロー制御ポリシの実行者を決定する。
仮想マシンVM−mに配置されたネットワークインタフェースカードに対応するFEは、仮想マシンVM−mに配置されたユーザモードアプリケーションから転送処理されるべきパケットに対する転送処理を実行する。本明細書において、仮想マシンVM−mに配置されたネットワークインタフェースカードに対応するFEは、転送処理されるべきパケットに対するフロー制御を実行しない。
606において、ホストに配置されたネットワークインタフェースカードに対応するBEが仮想マシンVM−mに配置されたネットワークインタフェースカードに対応するFEのパケットを受信した場合には、ホストに配置されたネットワークインタフェースカードに対応するBEは、受信されたパケットをホストに配置されたプレロードカーネルに転送する。
プレロードカーネルは、フロー制御ポリシに基づいて、受信されたパケットに対する転送処理を実行する。
本実施形態において、サービス品質に基づくフロー制御ポリシ又はアクセス制御リストに基づくフロー制御ポリシは、フロー制御ポリシの例として用いられる。
サービス品質に基づくフロー制御ポリシにおいて、パケットに対する転送処理を実行する特定の態様(特定の転送処理態様は、パケットを遅延させて送信、パケットを遅延なく送信、又はパケットを破棄してよい等)は、主に、転送処理されるべきパケットに対応するサービス優先度に基づいて決定される。例えば、複数の転送処理されるべきパケットが現在キャッシュに存在するとして、より高いサービス優先度に対応するパケットは、より短い遅延で、又はさらに遅延なく送信されてよく、より低いサービス優先度に対応するパケットは、より長い遅延で送信されてよく、設定された優先度閾値より低いサービス優先度に対応する転送処理されるべきパケットは、さらに破棄されてよい。これは、優先度の高いサービスのサービス品質を可能な限り確保することに寄与する。
アクセス制御リストに基づくフロー制御ポリシにおいて、パケットに対する転送処理を実行する特定の態様は、主に、転送処理されるべきパケットに含まれる情報がアクセス制御リストに含まれる記録に一致するか否かに基づいて決定される。例えば、アクセス制御リストは、(ブラックリストと同様の)制限されたアクセス制御リストである。制限されたアクセス制御リストが転送処理されるべきパケットのソース/デスティネーションアドレス、アプリケーション層プロトコルタイプ、もしくはトランスポート層プロトコルタイプ、及び/又はパケットヘッダに含まれる特定のキーワードのような情報に一致する記録を有する場合には、転送処理されるべきパケットに対する転送処理を実行する態様は、パケットを直接破棄してよい。反対に、制限されたアクセス制御リストが転送処理されるべきパケットのソース/デスティネーションアドレス、アプリケーション層プロトコルタイプ、もしくはトランスポート層プロトコルタイプ、及び/又はパケットヘッダに含まれる特定のキーワードのような情報に一致する記録を有さない場合には、転送処理されるべきパケットに対する転送処理を実行する態様は、パケットを転送してよい。他の例では、アクセス制御リストは、(ホワイトリストと同様の)許可されたアクセス制御リストである。許可されたアクセス制御リストが転送処理されるべきパケットのソース/デスティネーションアドレス、アプリケーション層プロトコルタイプ、もしくはトランスポート層プロトコルタイプ、及び/又はパケットヘッダに含まれる特定のキーワードのような情報に一致する記録を有さない場合には、転送処理されるべきパケットに対する転送処理を実行する態様は、パケットを直接破棄してよい。許可されたアクセス制御リストが転送処理されるべきパケットのソース/デスティネーションアドレス、アプリケーション層プロトコルタイプ、もしくはトランスポート層プロトコルタイプ、及び/又はパケットヘッダに含まれる特定のキーワードのような情報に一致する記録を有する場合には、転送処理されるべきパケットに対する転送処理を実行する態様は、パケットを転送してよい。複数の他の場合は、類推によって処理されてよい。
従って、プレロードカーネルがフロー制御ポリシに基づいて、仮想マシンVM−mから転送処理されるべきパケットに対する転送処理を実行することは、プレロードカーネルが、仮想マシンVM−mから転送処理されるべきパケットを破棄すること、又は、プレロードカーネルが、仮想マシンVM−mから転送処理されるべきパケットを、遅延させて(遅延の程度は、転送処理されるべきパケットのサービス優先度及び転送処理されるべきパケットの現在の数に関連してよい)送信すること、又は、プレロードカーネルが、仮想マシンVM−mから転送処理されるべきパケットを、遅延なく送信することを含んでよい。複数の他の態様は、本明細書において再度列挙されない。
ネットワークインタフェースカードが、ネットワークインタフェースカードドライバを用いることによって、プレロードカーネルによって送信されたパケットを受信した場合には、ネットワークインタフェースカードは、これに応じて、受信されたパケットに対する転送処理を実行する。
図6−bを参照すると、図6−bは、本発明の本実施形態に係る他のフロー制御の効果の模式図である。図6−bに示されるように、ネットワークインタフェースカードに対応するFEが仮想マシンVM−mのユーザモードアプリケーションからの高帯域幅パケットフローに対してフロー制御ポリシを実行しなかった後で、パケットフローの帯域幅は、ホストのプレロードカーネルがフロー制御ポリシを実行した後で減少する。
本実施形態に係る解決手段において、仮想マシン及びホストがフロー制御ポリシの実行者を交渉するメカニズムが導入され、これにより、仮想マシン及びホストの両方は、フロー制御ポリシの実行者となる機会を有する。これにより、仮想マシンは、フロー制御ポリシを実行可能となり、可能な限り早くパケットに対するフロー制御を実行することに寄与し、効果的ではない処理の削減ならびに無効なパケットフローによって占有される帯域幅及びホストのアドレス空間の縮小にさらに寄与することが理解されよう。この解決手段は、仮想マシンのアウトバウンドパケットフローに対する転送処理を実行するために占有されるホストのアドレス空間を縮小することに寄与することが理解されよう。さらに、フロー制御ポリシの実行者は、交渉によってに決定され、フロー制御ポリシ実行の信頼性向上に寄与する。
さらに、仮想マシン及びホストの両方がフロー制御ポリシの実行をサポートする場合には、仮想マシンは、フロー制御ポリシの実行において優先される。これは、可能な限り早くパケットに対するフロー制御を実行することにさらに寄与し、効果的ではない処理及び無効なパケットフローによって占有される帯域幅の縮小にさらに寄与する。
さらに、仮想マシン及びホストは、複雑なアプリケーション環境に対する製品の適合性向上、及び環境移行のアップグレードコスト削減に寄与するモジュラーアーキテクチャを用いることによって設計される。
図7を参照すると、図7は、本発明の他の実施形態に係る他のパケットフロー制御方法の模式的フローチャートである。図5−bは、本発明の本実施形態によって提供されるコンピューティングノードの模式的構造図であり、図7に示されるフロー制御方法を実装するために利用可能である。図7は、例として、コンピューティングノードに配置されたホスト及び仮想マシンの具体的な内部論理アーキテクチャを示す。勿論、ホスト及び仮想マシンは、図5−bに示される例と異なる他の内部論理アーキテクチャを有してもよい。本実施形態は、主に、フロー制御方法が図5−bに示されるアーキテクチャで実装される例を用いることによって説明される。
図7に示されるように、本発明の他の実施形態に係る他のパケットフロー制御方法は、以下の内容を含んでよい。
701において、仮想マシンVM−mに配置されたプレロードクライアント及びホストに配置されたプレロードサーバは、接続を確立する。その接続は、送信制御プロトコルの接続又は他のタイプの通信接続である。
固有の通信接続が、仮想マシンVM−mに配置されたプレロードクライアントとホストに配置されたプレロードサーバとの間に存在し、又は、プレロードクライアント及びプレロードサーバは、互いに直接通信可能である場合には、段階501は省略されてもよい。
702において、仮想マシンVM−mに配置されたプレロードクライアントは、ホストに配置されたプレロードサーバによって送信された交渉開始要求を受信する。
703において、仮想マシンVM−mに配置されたプレロードクライアントは、仮想マシンVM−mのフロー制御機能についての記述情報を含む実行者交渉要求を、ホストに配置されたプレロードサーバに送信する。
段階702において、ホストに配置されたプレロードサーバは、仮想マシンVM−mに配置されたプレロードクライアントに交渉開始要求を送信し、主に、フロー制御ポリシの実行者の交渉を開始するよう仮想マシンVM−mに配置されたプレロードクライアントをトリガする。勿論、仮想マシンVM−mに配置されたプレロードクライアントは、他の条件(例えば、ユーザモードプロセスによって開始された交渉開始要求(すなわち、ユーザモードアプリケーション又はユーザ命令によってトリガされてよい)が受信されたこと)によってトリガされ、フロー制御ポリシの実行者の交渉を開始してもよいことが理解されよう。仮想マシンVM−mに配置されたプレロードクライアントがフロー制御ポリシの実行者の交渉を別個に開始した場合には、段階702は省略されてよい。
704において、ホストに配置されたプレロードサーバは、仮想マシンVM−mのフロー制御機能についての記述情報を含む実行者交渉要求を受信し、実行者交渉要求に含まれるフロー制御機能についての記述情報は、その実行が仮想マシンVM−mによってサポートされるフロー制御ポリシのバージョンを示し、これにより、ホストに配置されたプレロードサーバは、フロー制御機能についての記述情報に従って、仮想マシンVM−mが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートするか否かを決定してよい。
本発明のいくつかの実施形態において、フロー制御機能についての記述情報は、その実行が仮想マシンによってサポートされるフロー制御ポリシのバージョンを記述するために用いられる。従って、プレロードサーバが、フロー制御機能についての記述情報に従って、仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートするか否かを決定することは、具体的には、その実行が仮想マシンによってサポートされるフロー制御機能についての記述情報によって記述されるフロー制御ポリシのバージョンが、フロー制御ポリシの現在の最新バージョン又は事前設定されたバージョンと同じか否かを、比較によって決定することと、これらが同じ場合には、仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートすると決定することと、これらが異なる場合には、仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートしないと決定することと、を含んでよい。他の例では、プレロードサーバが、フロー制御機能についての記述情報に従って、仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートするか否かを決定することは、具体的には、その実行が仮想マシンによってサポートされるフロー制御ポリシのフロー制御機能についての記述情報によって記述されるk個(kは正の整数)のバージョンの各バージョンがフロー制御ポリシの現在の最新バージョン又は事前設定されたバージョンと同じか否かを比較によって決定することと、k個のバージョンのうち1つのバージョンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシであることが比較によって得られた場合には、仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートすると決定することと、k個のバージョンのうちいずれか1つのバージョンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシと異なることが比較によって得られた場合には、仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートしないと決定することと、を含んでよい。
本実施形態において、ホストに配置されたプレロードサーバが、仮想マシンVM−mが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートすると決定することは、以下において例として用いられる。従って、ホストに配置されたプレロードサーバは、交渉確認インジケーションを仮想マシンVM−mに配置されたプレロードクライアントに送信してよく、交渉確認インジケーションは、フロー制御ポリシの交渉された実行者が仮想マシンVM−mであることを示し、交渉確認インジケーションは、現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシを含んでよい。ホストに配置されたプレロードサーバは、ホストに配置されたプレロードカーネルに、フロー制御ポリシを実行しないようさらに命令する。
705において、ホストに配置されたプレロードサーバによって送信された交渉確認インジケーションを受信した後で、仮想マシンVM−mに配置されたプレロードクライアントは、フロー制御ポリシの交渉された実行者が仮想マシンVM−mであると決定し、従って、仮想マシンVM−mに配置されたプレロードクライアントは、交渉確認インジケーションに含まれるフロー制御ポリシを、仮想マシンVM−mに配置されたネットワークインタフェースカードに対応するFEに送信する。
段階703から705を実行することによって、仮想マシンVM−mに配置されたプレロードクライアント及びホストに配置されたプレロードサーバは、交渉によって、フロー制御ポリシの実行者を決定する。
706において、フロー制御ポリシを受信した後で、仮想マシンVM−mに配置されたネットワークインタフェースカードに対応するFEは、受信されたフロー制御ポリシに基づいて、仮想マシンVM−mに配置されたユーザモードアプリケーションから送信される、転送処理されるべきパケットに対する転送処理を実行する。
本実施形態において、サービス品質に基づくフロー制御ポリシ又はアクセス制御リストに基づくフロー制御ポリシは、フロー制御ポリシの例として用いられる。
サービス品質に基づくフロー制御ポリシにおいて、パケットに対する転送処理を実行する特定の態様(特定の転送処理態様は、パケットを遅延させて送信、パケットを遅延なく送信、又はパケットを破棄してよい等)は、主に、転送処理されるべきパケットに対応するサービス優先度に基づいて決定される。例えば、複数の転送処理されるべきパケットが現在キャッシュに存在するとして、より高いサービス優先度に対応するパケットは、より短い遅延で、又はさらに遅延なく送信されてよく、より低いサービス優先度に対応するパケットは、より長い遅延で送信されてよく、設定された優先度閾値より低いサービス優先度に対応する転送処理されるべきパケットは、さらに破棄されてよい。これは、優先度の高いサービスのサービス品質を可能な限り確保することに寄与する。
アクセス制御リストに基づくフロー制御ポリシにおいて、パケットに対する転送処理を実行する特定の態様は、主に、転送処理されるべきパケットに含まれる情報がアクセス制御リストに含まれる記録に一致するか否かに基づいて決定される。例えば、アクセス制御リストは、(ブラックリストと同様の)制限されたアクセス制御リストである。制限されたアクセス制御リストが転送処理されるべきパケットのソース/デスティネーションアドレス、アプリケーション層プロトコルタイプ、もしくはトランスポート層プロトコルタイプ、及び/又はパケットヘッダに含まれる特定のキーワードのような情報に一致する記録を有する場合には、転送処理されるべきパケットに対する転送処理を実行する態様は、パケットを直接破棄してよい。反対に、制限されたアクセス制御リストが転送処理されるべきパケットのソース/デスティネーションアドレス、アプリケーション層プロトコルタイプ、もしくはトランスポート層プロトコルタイプ、及び/又はパケットヘッダに含まれる特定のキーワードのような情報に一致する記録を有さない場合には、転送処理されるべきパケットに対する転送処理を実行する態様は、パケットを転送してよい。他の例では、アクセス制御リストは、(ホワイトリストと同様の)許可されたアクセス制御リストである。許可されたアクセス制御リストが転送処理されるべきパケットのソース/デスティネーションアドレス、アプリケーション層プロトコルタイプ、もしくはトランスポート層プロトコルタイプ、及び/又はパケットヘッダに含まれる特定のキーワードのような情報に一致する記録を有さない場合には、転送処理されるべきパケットに対する転送処理を実行する態様は、パケットを直接破棄してよい。許可されたアクセス制御リストが転送処理されるべきパケットのソース/デスティネーションアドレス、アプリケーション層プロトコルタイプ、もしくはトランスポート層プロトコルタイプ、及び/又はパケットヘッダに含まれる特定のキーワードのような情報に一致する記録を有する場合には、転送処理されるべきパケットに対する転送処理を実行する態様は、パケットを転送してよい。複数の他の場合は、類推によって処理されてよい。
従って、仮想マシンVM−mに配置されたネットワークインタフェースカードに対応するFEが、受信されたフロー制御ポリシに基づいて、仮想マシンVM−mに配置されたユーザモードアプリケーションから転送処理されるべきパケットに対する転送処理を実行することは、仮想マシンVM−mに配置されたネットワークインタフェースカードに対応するFEが、仮想マシンVM−mに配置されたユーザモードアプリケーションから転送処理されるべきパケットを破棄すること、又は、仮想マシンVM−mに配置されたネットワークインタフェースカードに対応するFEが、仮想マシンVM−mに配置されたユーザモードアプリケーションから転送処理されるべきパケットを、遅延させて(遅延の程度は、転送処理されるべきパケットのサービス優先度及び転送処理されるべきパケットの現在の数に関連してよい)送信すること、又は、仮想マシンVM−mに配置されたネットワークインタフェースカードに対応するFEが、仮想マシンVM−mに配置されたユーザモードアプリケーションから転送処理されるべきパケットを、遅延なく送信することを含んでよい。複数の他の態様は、本明細書において再度列挙されない。
ホストに配置されたネットワークインタフェースカードに対応するBEが、仮想マシンVM−mに配置されたネットワークインタフェースカードに対応するFEのパケットを受信する場合には、ホストに配置されたネットワークインタフェースカードに対応するBEは、受信されたパケットに対するホストに配置されたプレロードカーネルへの転送処理を実行する。
ホストに配置されたプレロードカーネルは、フロー制御ポリシを実行することが必要ではないので、ホストに配置されたプレロードカーネルは、ネットワークインタフェースカードドライバを用いることによって、受信されたパケットをネットワークインタフェースカードに直接転送してよく、ネットワークインタフェースカードは、これに応じて、受信されたパケットに対する転送処理を実行してよい。
本発明のいくつかの実施形態において、フロー制御ポリシの交渉された実行者が仮想マシンVM−mであると決定された後で、プレロードクライアントは、接続に基づいて、ハートビートメッセージをプレロードサーバに定期的に送信してよい。ハートビートメッセージを送信する目的の1つは、仮想マシンVM−mが適切に機能している状況をプレロードサーバに通知することである。プレロードサーバが設定期間内にプレロードクライアントからハートビートメッセージを受信しなかった場合には、プレロードサーバは、VM−mにおいて障害が発生したとデフォルトで決定してよい。例えば、フロー制御ポリシの交渉された実行者が仮想マシンVM−mであると決定された後で、プレロードサーバが、設定期間内にプレロードクライアントからハートビートメッセージを受信しなかった場合には、プレロードサーバは、フロー制御ポリシの実行者をホストにスイッチしてよく(すなわち、プレロードカーネルは、仮想マシンVM−mに配置されたネットワークインタフェースカードに対応するFEがフロー制御ポリシに基づいて、転送処理されるべきパケットに対する転送処理を実行するか否かに関わらず、フロー制御ポリシに基づいて、仮想マシンVM−mからのパケットに対する転送処理をさらに実行する。ホスト及び仮想マシンVM−mにおいて同じパケットフローに対して実行されるフロー制御ポリシは同じであるので、プレロードカーネルもしくは仮想マシンVM−mに配置されたネットワークインタフェースカードに対応するFE又はその両方は、同じフロー制御ポリシを実行し、プレロードカーネルの最終的なパケット出力条件は、基本的に同じである)、フロー制御ポリシの実行者がホストにスイッチされたことを示すインジケーションメッセージを、プレロードクライアントに送信してよい。
本発明のいくつかの実施形態において、フロー制御ポリシの交渉された実行者が仮想マシンVM−mであると決定された後で、プレロードクライアントは、仮想マシンVM−mに配置されたネットワークインタフェースカードに対応するFEがフロー制御ポリシを実行したときに障害が発生した場合には、仮想マシンVM−mがフロー制御ポリシを実行したときに障害が発生したことを示すインジケーションメッセージをプレロードサーバに送信してもよい。フロー制御ポリシの交渉された実行者が仮想マシンであると決定された後で、プレロードサーバが、仮想マシンVM−mがフロー制御ポリシを実行したときに障害が発生したことを示すインジケーションメッセージをプレロードクライアントから受信した場合には、プレロードサーバは、フロー制御ポリシの実行者をホストにスイッチしてよく、プレロードサーバは、プレロードカーネルに、フロー制御ポリシを実行するよう命令してよい。
本発明のいくつかの実施形態において、フロー制御ポリシの交渉された実行者が仮想マシンVM−mであると決定された後で、プレロードサーバは、仮想マシンVM−mがフロー制御ポリシを適切に実行しているか否かを問う状況質問メッセージをプレロードクライアントに定期的に又は不定期的に送信してもよい。状況質問メッセージに応答する状況インジケーションメッセージが設定期間内にプレロードクライアントから受信されなかった場合、又は、プレロードクライアントからインジケーションメッセージが受信され、そのインジケーションメッセージが、仮想マシンVM−mがフロー制御ポリシを実行したときに障害が発生したことを示す場合には、仮想マシンVM−mがフロー制御ポリシを実行したときに障害が発生したと決定されてよい。勿論、プレロードサーバは、複数の他の態様で、仮想マシンVM−mがフロー制御ポリシを実行したときに障害が発生したか否かを監視してもよい。仮想マシンVM−mがフロー制御ポリシを実行したときに障害が発生したと決定された場合には、プレロードサーバは、フロー制御ポリシの実行者をホストにスイッチしてよく、プレロードサーバは、プレロードカーネルに、フロー制御ポリシを実行するよう命令してよい。
フロー制御ポリシを実行するよう命令された後で、プレロードカーネルは、フロー制御ポリシに基づいて、仮想マシンVM−mから転送処理されるべきパケットに対する転送処理を実行する。
本実施形態に係る解決手段において、仮想マシン及びホストがフロー制御ポリシの実行者を交渉するメカニズムが導入され、これにより、仮想マシン及びホストの両方は、フロー制御ポリシの実行者となる機会を有する。これにより、仮想マシンは、フロー制御ポリシを実行可能となり、可能な限り早くパケットに対するフロー制御を実行することに寄与し、効果的ではない処理の削減ならびに無効なパケットフローによって占有される帯域幅及びホストのアドレス空間の縮小にさらに寄与することが理解されよう。この解決手段は、仮想マシンのアウトバウンドパケットフローに対する転送処理を実行するために占有されるホストのアドレス空間を縮小することに寄与することが理解されよう。さらに、フロー制御ポリシの実行者は、交渉によってに決定され、フロー制御ポリシ実行の信頼性向上に寄与する。
さらに、仮想マシン及びホストの両方がフロー制御ポリシの実行をサポートする場合には、仮想マシンは、フロー制御ポリシの実行において優先される。これは、可能な限り早くパケットに対するフロー制御を実行することにさらに寄与し、効果的ではない処理及び無効なパケットフローによって占有される帯域幅の縮小にさらに寄与する。
さらに、仮想マシン及びホストは、複雑なアプリケーション環境に対する製品の適合性向上、及び環境移行のアップグレードコスト削減に寄与するモジュラーアーキテクチャを用いることによって設計される。
図8を参照すると、図8は、本発明の他の実施形態に係る他のパケットフロー制御方法の模式的フローチャートである。図5−bは、本発明の本実施形態によって提供されるコンピューティングノードの模式的構造図であり、図8に示されるフロー制御方法を実装するために利用可能である。図5−bは、例として、コンピューティングノードに配置されたホスト及び仮想マシンの具体的な内部論理アーキテクチャを示す。勿論、ホスト及び仮想マシンは、図5−bに示される例と異なる他の内部論理アーキテクチャを有してもよい。本実施形態は、主に、フロー制御方法が図5−bに示されるアーキテクチャで実装される例を用いることによって説明される。
図8に示されるように、本発明の他の実施形態に係る他のパケットフロー制御方法は、以下の内容を含んでよい。
801において、仮想マシンVM−mに配置されたプレロードクライアント及びホストに配置されたプレロードサーバは、接続を確立する。その接続は、送信制御プロトコルの接続又は他のタイプの通信接続である。
固有の通信接続が、仮想マシンVM−mに配置されたプレロードクライアントとホストに配置されたプレロードサーバとの間に存在し、又は、プレロードクライアント及びプレロードサーバは、互いに直接通信可能である場合には、段階601は省略されてもよい。
802において、仮想マシンVM−mに配置されたプレロードクライアントは、ホストに配置されたプレロードサーバによって送信された交渉開始要求を受信する。
803において、仮想マシンVM−mに配置されたプレロードクライアントは、仮想マシンVM−mのフロー制御機能についての記述情報を含む実行者交渉要求を、ホストに配置されたプレロードサーバに送信する。
段階802において、ホストに配置されたプレロードサーバは、仮想マシンVM−mに配置されたプレロードクライアントに交渉開始要求を送信し、主に、フロー制御ポリシの実行者の交渉を開始するよう仮想マシンVM−mに配置されたプレロードクライアントをトリガする。勿論、仮想マシンVM−mに配置されたプレロードクライアントは、他の条件(例えば、ユーザモードプロセスによって開始された交渉開始要求(すなわち、ユーザモードアプリケーション又はユーザ命令によってトリガされてよい)が受信されたこと)によってトリガされ、フロー制御ポリシの実行者の交渉を開始してもよいことが理解されよう。仮想マシンVM−mに配置されたプレロードクライアントがフロー制御ポリシの実行者の交渉を別個に開始した場合には、段階802は省略されてよい。
804において、ホストに配置されたプレロードサーバは、仮想マシンVM−mのフロー制御機能についての記述情報を含む実行者交渉要求を受信し、実行者交渉要求に含まれるフロー制御機能についての記述情報は、その実行が仮想マシンVM−mによってサポートされるフロー制御ポリシのバージョンを示し、従って、ホストに配置されたプレロードサーバは、フロー制御機能についての記述情報に従って、仮想マシンVM−mが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートするか否かを決定してよい。
本発明のいくつかの実施形態において、フロー制御機能についての記述情報は、その実行が仮想マシンによってサポートされるフロー制御ポリシのバージョンを記述するために用いられる。従って、プレロードサーバが、フロー制御機能についての記述情報に従って、仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートするか否かを決定することは、具体的には、その実行が仮想マシンによってサポートされるフロー制御機能についての記述情報によって記述されるフロー制御ポリシのバージョンが、フロー制御ポリシの現在の最新バージョン又は事前設定されたバージョンと同じか否かを、比較によって決定することと、これらが同じ場合には、仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートすると決定することと、これらが異なる場合には、仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートしないと決定することと、を含んでよい。他の例では、プレロードサーバが、フロー制御機能についての記述情報に従って、仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートするか否かを決定することは、具体的には、その実行が仮想マシンによってサポートされるフロー制御ポリシのフロー制御機能についての記述情報によって記述されるk個(kは正の整数)のバージョンの各バージョンがフロー制御ポリシの現在の最新バージョン又は事前設定されたバージョンと同じか否かを比較によって決定することと、k個のバージョンのうち1つのバージョンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシであることが比較によって得られた場合には、仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートすると決定することと、k個のバージョンのうちいずれか1つのバージョンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシと異なることが比較によって得られた場合には、仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートしないと決定することと、を含んでよい。
本実施形態において、ホストに配置されたプレロードサーバが、仮想マシンVM−mが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートしないと決定することは、以下において例として用いられる。従って、ホストに配置されたプレロードサーバは、仮想マシンVM−mに配置されたプレロードクライアントに交渉不確認インジケーションを送信してよく、交渉不確認インジケーションは、フロー制御ポリシの交渉された実行者がホストであることを示す。ホストに配置されたプレロードサーバは、ホストに配置されたプレロードカーネル(preload kernel)に、フロー制御ポリシを実行するようさらに命令する。
805において、ホストに配置されたプレロードサーバによって送信された交渉不確認インジケーションを受信した後で、仮想マシンVM−mに配置されたプレロードクライアントは、フロー制御ポリシの交渉された実行者がホストであると決定し、従って、仮想マシンVM−mに配置されたプレロードクライアントは、仮想マシンVM−mに配置されたネットワークインタフェースカードに対応するFEに、フロー制御ポリシを実行しないよう命令する。
段階803から805を実行することによって、仮想マシンVM−mに配置されたプレロードクライアント及びホストに配置されたプレロードサーバは、交渉によって、フロー制御ポリシの実行者を決定する。
仮想マシンVM−mに配置されたネットワークインタフェースカードに対応するFEは、仮想マシンVM−mに配置されたユーザモードアプリケーションから転送処理されるべきパケットに対する転送処理を実行する。本明細書において、仮想マシンVM−mに配置されたネットワークインタフェースカードに対応するFEは、転送処理されるべきパケットに対するフロー制御を実行しない。
806において、ホストに配置されたネットワークインタフェースカードに対応するBEが、仮想マシンVM−mに配置されたネットワークインタフェースカードに対応するFEのパケットを受信する場合には、ホストに配置されたネットワークインタフェースカードに対応するBEは、受信されたパケットに対するホストに配置されたプレロードカーネルへの転送処理を実行する。
プレロードカーネルは、フロー制御ポリシに基づいて、受信されたパケットに対する転送処理を実行する。
本実施形態において、サービス品質に基づくフロー制御ポリシ又はアクセス制御リストに基づくフロー制御ポリシは、フロー制御ポリシの例として用いられる。
サービス品質に基づくフロー制御ポリシにおいて、パケットに対する転送処理を実行する特定の態様(特定の転送処理態様は、パケットを遅延させて送信、パケットを遅延なく送信、又はパケットを破棄してよい等)は、主に、転送処理されるべきパケットに対応するサービス優先度に基づいて決定される。例えば、複数の転送処理されるべきパケットが現在キャッシュに存在するとして、より高いサービス優先度に対応するパケットは、より短い遅延で、又はさらに遅延なく送信されてよく、より低いサービス優先度に対応するパケットは、より長い遅延で送信されてよく、設定された優先度閾値より低いサービス優先度に対応する転送処理されるべきパケットは、さらに破棄されてよい。これは、優先度の高いサービスのサービス品質を可能な限り確保することに寄与する。
アクセス制御リストに基づくフロー制御ポリシにおいて、パケットに対する転送処理を実行する特定の態様は、主に、転送処理されるべきパケットに含まれる情報がアクセス制御リストに含まれる記録に一致するか否かに基づいて決定される。例えば、アクセス制御リストは、(ブラックリストと同様の)制限されたアクセス制御リストである。制限されたアクセス制御リストが転送処理されるべきパケットのソース/デスティネーションアドレス、アプリケーション層プロトコルタイプ、もしくはトランスポート層プロトコルタイプ、及び/又はパケットヘッダに含まれる特定のキーワードのような情報に一致する記録を有する場合には、転送処理されるべきパケットに対する転送処理を実行する態様は、パケットを直接破棄してよい。反対に、制限されたアクセス制御リストが転送処理されるべきパケットのソース/デスティネーションアドレス、アプリケーション層プロトコルタイプ、もしくはトランスポート層プロトコルタイプ、及び/又はパケットヘッダに含まれる特定のキーワードのような情報に一致する記録を有さない場合には、転送処理されるべきパケットに対する転送処理を実行する態様は、パケットを転送してよい。他の例では、アクセス制御リストは、(ホワイトリストと同様の)許可されたアクセス制御リストである。許可されたアクセス制御リストが転送処理されるべきパケットのソース/デスティネーションアドレス、アプリケーション層プロトコルタイプ、もしくはトランスポート層プロトコルタイプ、及び/又はパケットヘッダに含まれる特定のキーワードのような情報に一致する記録を有さない場合には、転送処理されるべきパケットに対する転送処理を実行する態様は、パケットを直接破棄してよい。許可されたアクセス制御リストが転送処理されるべきパケットのソース/デスティネーションアドレス、アプリケーション層プロトコルタイプ、もしくはトランスポート層プロトコルタイプ、及び/又はパケットヘッダに含まれる特定のキーワードのような情報に一致する記録を有する場合には、転送処理されるべきパケットに対する転送処理を実行する態様は、パケットを転送してよい。複数の他の場合は、類推によって処理されてよい。
従って、プレロードカーネルが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシに基づいて、仮想マシンVM−mから転送処理されるべきパケットに対する転送処理を実行することは、プレロードカーネルが、仮想マシンVM−mから転送処理されるべきパケットを破棄すること、又は、プレロードカーネルが、仮想マシンVM−mから転送処理されるべきパケットを、遅延させて(遅延の程度は、転送処理されるべきパケットのサービス優先度及び転送処理されるべきパケットの現在の数に関連してよい)送信すること、又は、プレロードカーネルが、仮想マシンVM−mから転送処理されるべきパケットを、遅延なく送信することを含んでよい。複数の他の態様は、本明細書において再度列挙されない。
ネットワークインタフェースカードが、ネットワークインタフェースカードドライバを用いることによって、プレロードカーネルによって送信されたパケットを受信した場合には、ネットワークインタフェースカードは、これに応じて、受信されたパケットに対する転送処理を実行する。
本実施形態に係る解決手段において、仮想マシン及びホストがフロー制御ポリシの実行者を交渉するメカニズムが導入され、これにより、仮想マシン及びホストの両方は、フロー制御ポリシの実行者となる機会を有する。これにより、仮想マシンは、フロー制御ポリシを実行可能となり、可能な限り早くパケットに対するフロー制御を実行することに寄与し、効果的ではない処理の削減ならびに無効なパケットフローによって占有される帯域幅及びホストのアドレス空間の縮小にさらに寄与することが理解されよう。この解決手段は、仮想マシンのアウトバウンドパケットフローに対する転送処理を実行するために占有されるホストのアドレス空間を縮小することに寄与することが理解されよう。さらに、フロー制御ポリシの実行者は、交渉によってに決定され、フロー制御ポリシ実行の信頼性向上に寄与する。
さらに、仮想マシン及びホストの両方がフロー制御ポリシの実行をサポートする場合には、仮想マシンは、フロー制御ポリシの実行において優先される。これは、可能な限り早くパケットに対するフロー制御を実行することにさらに寄与し、効果的ではない処理及び無効なパケットフローによって占有される帯域幅の縮小にさらに寄与する。
さらに、仮想マシン及びホストは、複雑なアプリケーション環境に対する製品の適合性向上、及び環境移行のアップグレードコスト削減に寄与するモジュラーアーキテクチャを用いることによって設計される。
本発明の複数の実施形態に係る複数の解決手段をより良く実装すべく、その解決手段を実装するための関連装置が、以下の通りさらに提供される。
図を参照すると、本発明の実施形態に係る仮想マシン900は、第1の交渉ユニット910と、パケット処理ユニット920と、を含んでよい。
第1の交渉ユニット910は、仮想マシン900とホストとの間で、仮想マシンのフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉するように構成される。
パケット処理ユニット920は、フロー制御ポリシの交渉された実行者が仮想マシンであると決定された場合には、フロー制御ポリシに基づいて、転送処理されるべきパケットに対する転送処理を実行し、フロー制御ポリシの交渉された実行者がホストであると決定された場合には、転送処理されるべきパケットをホストに送信するように構成され、これにより、ホストは、フロー制御ポリシに基づいて、受信されたパケットに対する転送処理を実行する。
本発明のいくつかの実施形態において、第1の交渉ユニット910は、仮想マシンのフロー制御機能についての記述情報を含む実行者交渉要求をホストに送信し、交渉確認インジケーションが受信された場合には、フロー制御ポリシの交渉された実行者が仮想マシンであると決定し、交渉不確認インジケーションが受信された場合には、フロー制御ポリシの交渉された実行者がホストであると決定するように具体的に構成されてよく、交渉確認インジケーションは、ホストがフロー制御機能についての記述情報に従って、仮想マシンがフロー制御ポリシの実行をサポートすると決定した後で、ホストによって送信され、交渉不確認インジケーションは、ホストがフロー制御機能についての記述情報に従って、仮想マシンがフロー制御ポリシの実行をサポートしないと決定した後で、ホストによって送信される、
又は、
第1の交渉ユニット910は、仮想マシンのフロー制御機能についての記述情報を含む実行者交渉要求をホストに送信し、ホストがフロー制御機能についての記述情報に従って、仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートすると決定した後で、ホストによって送信された交渉確認インジケーションが受信された場合には、フロー制御ポリシの交渉された実行者が仮想マシンであると決定し、ホストがフロー制御機能についての記述情報に従って、仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートしないと決定した後で、ホストによって送信された交渉不確認インジケーションが受信された場合には、フロー制御ポリシの交渉された実行者がホストであると決定するように具体的に構成されてよく、フロー制御機能についての記述情報は、その実行が仮想マシンによってサポートされるフロー制御ポリシのバージョンを記述するために用いられる、
又は、
第1の交渉ユニット910は、仮想マシンのフロー制御機能についての記述情報を含む実行者交渉要求をホストに送信し、交渉確認インジケーションが受信された場合には、フロー制御ポリシの交渉された実行者が仮想マシンであると決定し、実行者交渉要求に応答してホストによって送信された交渉確認インジケーションが第1の設定期間内に受信されなかった場合には、フロー制御ポリシの交渉された実行者がホストであると決定するように具体的に構成されてよく、交渉確認インジケーションは、ホストがフロー制御機能についての記述情報に従って、仮想マシンがフロー制御ポリシの実行をサポートすると決定した後で、ホストによって送信される、
又は、
第1の交渉ユニット910は、仮想マシンのフロー制御機能についての記述情報を含む実行者交渉要求をホストに送信し、ホストがフロー制御機能についての記述情報に従って、仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートすると決定した後で、ホストによって送信された交渉確認インジケーションが受信された場合には、フロー制御ポリシの交渉された実行者が仮想マシンであると決定し、実行者交渉要求に応答してホストによって送信された交渉確認インジケーションが第1の設定期間内に受信されなかった場合には、フロー制御ポリシの交渉された実行者がホストであると決定するように具体的に構成されてよく、フロー制御機能についての記述情報は、その実行が仮想マシンによってサポートされるフロー制御ポリシのバージョンを記述するために用いられる、
又は、
第1の交渉ユニット910は、仮想マシンのフロー制御機能についての記述情報を含む実行者交渉要求をホストに送信し、交渉不確認インジケーションが受信された場合には、フロー制御ポリシの交渉された実行者がホストであると決定し、実行者交渉要求に応答してホストによって送信された交渉不確認インジケーションが第2の設定期間内に受信されなかった場合には、フロー制御ポリシの交渉された実行者が仮想マシンであると決定するように具体的に構成されてよく、交渉不確認インジケーションは、ホストがフロー制御機能についての記述情報に従って、仮想マシンがフロー制御ポリシの実行をサポートしないと決定した後で、ホストによって送信される、
又は、
第1の交渉ユニット910は、仮想マシンのフロー制御機能についての記述情報を含む実行者交渉要求をホストに送信し、ホストがフロー制御機能についての記述情報に従って、仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートすると決定した後で、ホストによって送信された交渉不確認インジケーションが受信された場合には、フロー制御ポリシの交渉された実行者がホストであると決定し、実行者交渉要求に応答してホストによって送信された交渉不確認インジケーションが第2の設定期間内に受信されなかった場合には、フロー制御ポリシの交渉された実行者が仮想マシンであると決定するように具体的に構成されてよく、フロー制御機能についての記述情報は、その実行が仮想マシンによってサポートされるフロー制御ポリシのバージョンを記述するために用いられる。
本発明のいくつかの実施形態において、フロー制御機能についての記述情報が、その実行が仮想マシン900によってサポートされるフロー制御ポリシのバージョンを記述するために用いられる場合には、ホストが、フロー制御機能についての記述情報に従って、仮想マシン900が現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートするか否かを決定してよいことは、具体的には、フロー制御機能についての記述情報によって記述され、かつ、その実行が仮想マシン900によってサポートされるフロー制御ポリシのバージョンが、フロー制御ポリシの現在の最新バージョン又は事前設定されたバージョンと同じか否かを比較によって決定することと、これらが同じ場合には、仮想マシン900が現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートすると決定することと、これらが異なる場合には、仮想マシン900が現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートしないと決定することと、を含んでよい。他の例では、ホストが、フロー制御機能についての記述情報に従って、仮想マシン900が現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートするか否かを決定してよいことは、具体的には、その実行が仮想マシン900によってサポートされるフロー制御ポリシのフロー制御機能についての記述情報によって記述されるk個(kは正の整数)のバージョンの各バージョンがフロー制御ポリシの現在の最新バージョン又は事前設定されたバージョンと同じか否かを比較によって決定することと、k個のバージョンのうち1つのバージョンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシであることが比較によって得られた場合には、仮想マシン900が現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートすると決定することと、k個のバージョンのうちいずれか1つのバージョンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシと異なることが比較によって得られた場合には、仮想マシン900が現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートしないと決定することと、を含んでよい。
本発明のいくつかの実施形態において、仮想マシン900は、
フロー制御ポリシの交渉された実行者が仮想マシンであると決定された後で、ハートビートメッセージをホストに定期的に送信するように構成される送信ユニット(図9に示されない)
をさらに含んでよい。
本実施形態において説明されるフロー制御ポリシは、例えば、サービス品質に基づくフロー制御ポリシ及び/又はアクセス制御リストに基づくフロー制御ポリシであってよく、勿論、フロー制御ポリシは、複数の他の要素を参照するフロー制御ポリシであってもよい。
サービス品質に基づくフロー制御ポリシにおいて、パケットに対する転送処理を実行する特定の態様(特定の転送処理態様は、パケットを遅延させて送信、パケットを遅延なく送信、又はパケットを破棄してよい等)は、主に、転送処理されるべきパケットに対応するサービス優先度に基づいて決定される。例えば、複数の転送処理されるべきパケットが現在キャッシュに存在するとして、より高いサービス優先度に対応するパケットは、より短い遅延で、又はさらに遅延なく送信されてよく、より低いサービス優先度に対応するパケットは、より長い遅延で送信されてよく、設定された優先度閾値より低いサービス優先度に対応する転送処理されるべきパケットは、さらに破棄されてよい。これは、優先度の高いサービスのサービス品質を可能な限り確保することに寄与する。すなわち、サービス品質に基づいて、フロー制御ポリシに従って転送処理されるべきパケットに対する転送処理を実行する段階は、具体的には、転送処理されるべきパケットのサービス優先度に対応する転送処理態様に従って転送処理されるべきパケットに対する転送処理を実行する段階を含んでよい。
アクセス制御リストに基づくフロー制御ポリシにおいて、パケットに対する転送処理を実行する特定の態様は、主に、転送処理されるべきパケットに含まれる情報がアクセス制御リストに含まれる記録に一致するか否かに基づいて決定される。例えば、アクセス制御リストは、(ブラックリストと同様の)制限されたアクセス制御リストである。制限されたアクセス制御リストが転送処理されるべきパケットのソース/デスティネーションアドレス、アプリケーション層プロトコルタイプ、もしくはトランスポート層プロトコルタイプ、及び/又はパケットヘッダに含まれる特定のキーワードのような情報に一致する記録を有する場合には、転送処理されるべきパケットに対する転送処理を実行する態様は、パケットを直接破棄してよい。反対に、制限されたアクセス制御リストが転送処理されるべきパケットのソース/デスティネーションアドレス、アプリケーション層プロトコルタイプ、もしくはトランスポート層プロトコルタイプ、及び/又はパケットヘッダに含まれる特定のキーワードのような情報に一致する記録を有さない場合には、転送処理されるべきパケットに対する転送処理を実行する態様は、パケットを転送してよい。他の例では、アクセス制御リストは、(ホワイトリストと同様の)許可されたアクセス制御リストである。許可されたアクセス制御リストが転送処理されるべきパケットのソース/デスティネーションアドレス、アプリケーション層プロトコルタイプ、もしくはトランスポート層プロトコルタイプ、及び/又はパケットヘッダに含まれる特定のキーワードのような情報に一致する記録を有さない場合には、転送処理されるべきパケットに対する転送処理を実行する態様は、パケットを直接破棄してよい。許可されたアクセス制御リストが転送処理されるべきパケットのソース/デスティネーションアドレス、アプリケーション層プロトコルタイプ、もしくはトランスポート層プロトコルタイプ、及び/又はパケットヘッダに含まれる特定のキーワードのような情報に一致する記録を有する場合には、転送処理されるべきパケットに対する転送処理を実行する態様は、パケットを転送してよい。複数の他の場合は、類推によって処理されてよい。
本実施形態において、仮想マシン900の各モジュールの複数の機能が、複数の前述された方法の実施形態において説明された方法に従って具体的に実装されてよいことが理解されよう。その具体的な実装プロセスについては、複数の前述された実施形態において関連する説明を参照し、詳細は本明細書において再度説明されない。
本実施形態に係る解決手段において、仮想マシン及びホストがフロー制御ポリシの実行者を交渉するメカニズムが導入され、これにより、仮想マシン及びホストの両方は、フロー制御ポリシの実行者となる機会を有する。これにより、仮想マシンは、フロー制御ポリシを実行可能となり、可能な限り早くパケットに対するフロー制御を実行することに寄与し、効果的ではない処理の削減ならびに無効なパケットフローによって占有される帯域幅及びホストのアドレス空間の縮小にさらに寄与することが理解されよう。この解決手段は、仮想マシンのアウトバウンドパケットフローに対する転送処理を実行するために占有されるホストのアドレス空間を縮小することに寄与することが理解されよう。さらに、フロー制御ポリシの実行者は、交渉によってに決定され、フロー制御ポリシ実行の信頼性向上に寄与する。
さらに、仮想マシン及びホストの両方がフロー制御ポリシの実行をサポートする場合には、仮想マシンは、フロー制御ポリシの実行において優先される。これは、可能な限り早くパケットに対するフロー制御を実行することにさらに寄与し、効果的ではない処理及び無効なパケットフローによって占有される帯域幅の縮小にさらに寄与する。
さらに、仮想マシン及びホストは、複雑なアプリケーション環境に対する製品の適合性向上、及び環境移行のアップグレードコスト削減に寄与するモジュラーアーキテクチャを用いることによって設計される。
図10を参照すると、本発明の実施形態は、ホスト1000をさらに提供し、これは、第2の交渉ユニット1010と、パケット処理ユニット1020と、を含んでよい。
第2の交渉ユニット1010は、仮想マシンとホスト1000との間で、仮想マシンのフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉するように構成される。
パケット処理ユニット1020は、フロー制御ポリシの交渉された実行者がホストであると決定された場合には、フロー制御ポリシに基づいて、受信されたパケットに対する転送処理を、パケットを仮想マシンから受信した後で実行するように構成される。
本発明のいくつかの実施形態において、第2の交渉ユニット1010は、仮想マシンによって送信され、かつ、仮想マシンのフロー制御機能についての記述情報を含む実行者交渉要求を受信し、フロー制御機能についての記述情報に従って、仮想マシンがフロー制御ポリシの実行をサポートすると決定された場合には、交渉確認インジケーションを仮想マシンに送信する、及び/又は、フロー制御機能についての記述情報に従って、仮想マシンがフロー制御ポリシの実行をサポートしないと決定された場合には、交渉不確認インジケーションを仮想マシンに送信するように具体的に構成されてよく、交渉確認インジケーションは、フロー制御ポリシの交渉された実行者が仮想マシンであることを示し、交渉不確認インジケーションは、フロー制御ポリシの交渉された実行者がホストであることを示す。
本発明のいくつかの他の実施形態において、第2の交渉ユニット1010は、仮想マシンによって送信され、かつ、仮想マシンのフロー制御機能についての記述情報を含む実行者交渉要求を受信し、フロー制御機能についての記述情報に従って、仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートすると決定された場合には、交渉確認インジケーションを仮想マシンに送信する、及び/又は、フロー制御機能についての記述情報に従って、仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートしないと決定された場合には、交渉不確認インジケーションを仮想マシンに送信するように具体的に構成されてよく、フロー制御機能についての記述情報は、その実行が仮想マシンによってサポートされるフロー制御ポリシのバージョンを記述するために用いられ、交渉確認インジケーションは、フロー制御ポリシの交渉された実行者が仮想マシンであることを示し、交渉不確認インジケーションは、フロー制御ポリシの交渉された実行者がホストであることを示す。
本発明のいくつかの実施形態において、フロー制御機能についての記述情報が、その実行が仮想マシンによってサポートされるフロー制御ポリシのバージョンを記述するために用いられる場合には、第2の交渉ユニット1010が、フロー制御機能についての記述情報に従って、仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートするか否かを決定してよいことは、具体的には、フロー制御機能についての記述情報によって記述され、かつ、その実行が仮想マシンによってサポートされるフロー制御ポリシのバージョンが、フロー制御ポリシの現在の最新バージョン又は事前設定されたバージョンと同じか否かを比較によって決定することと、これらが同じ場合には、仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートすると決定することと、これらが異なる場合には、仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートしないと決定することと、を含んでよい。他の例では、第2の交渉ユニット1010が、フロー制御機能についての記述情報に従って、仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートするか否かを決定してよいことは、具体的には、その実行が仮想マシンによってサポートされるフロー制御ポリシのフロー制御機能についての記述情報によって記述されるk個(kは正の整数)のバージョンの各バージョンがフロー制御ポリシの現在の最新バージョン又は事前設定されたバージョンと同じか否かを比較によって決定することと、k個のバージョンのうち1つのバージョンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシであることが比較によって得られた場合には、仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートすると決定することと、k個のバージョンのうちいずれか1つのバージョンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシと異なることが比較によって得られた場合には、仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートしないと決定することと、を含んでよい。
本発明のいくつかの実施形態において、パケット処理ユニット1020は、フロー制御ポリシの交渉された実行者が仮想マシンであると決定された後で、ハートビートメッセージが設定期間内に仮想マシンから受信されなかった場合には、フロー制御ポリシの実行者がホストにスイッチされたことを示すために用いられるインジケーションメッセージを仮想マシンに送信するようにさらに構成される。
本実施形態において、パケット処理ユニット1020が転送処理されるべきパケットを処理するベースとなるフロー制御ポリシは、例えば、サービス品質に基づくフロー制御ポリシ及び/又はアクセス制御リストに基づくフロー制御ポリシであってよい。勿論、フロー制御ポリシは、複数の他の要素を参照するフロー制御ポリシであってもよい。
サービス品質に基づくフロー制御ポリシにおいて、パケットに対する転送処理を実行する特定の態様(特定の転送処理態様は、パケットを遅延させて送信、パケットを遅延なく送信、又はパケットを破棄してよい等)は、主に、転送処理されるべきパケットに対応するサービス優先度に基づいて決定される。例えば、複数の転送処理されるべきパケットが現在キャッシュに存在するとして、より高いサービス優先度に対応するパケットは、より短い遅延で、又はさらに遅延なく送信されてよく、より低いサービス優先度に対応するパケットは、より長い遅延で送信されてよく、設定された優先度閾値より低いサービス優先度に対応する転送処理されるべきパケットは、さらに破棄されてよい。これは、優先度の高いサービスのサービス品質を可能な限り確保することに寄与する。すなわち、サービス品質に基づいて、フロー制御ポリシに従って転送処理されるべきパケットに対する転送処理を実行する段階は、具体的には、転送処理されるべきパケットのサービス優先度に対応する転送処理態様に従って転送処理されるべきパケットに対する転送処理を実行する段階を含んでよい。
アクセス制御リストに基づくフロー制御ポリシにおいて、パケットに対する転送処理を実行する特定の態様は、主に、転送処理されるべきパケットに含まれる情報がアクセス制御リストに含まれる記録に一致するか否かに基づいて決定される。例えば、アクセス制御リストは、(ブラックリストと同様の)制限されたアクセス制御リストである。制限されたアクセス制御リストが転送処理されるべきパケットのソース/デスティネーションアドレス、アプリケーション層プロトコルタイプ、もしくはトランスポート層プロトコルタイプ、及び/又はパケットヘッダに含まれる特定のキーワードのような情報に一致する記録を有する場合には、転送処理されるべきパケットに対する転送処理を実行する態様は、パケットを直接破棄してよい。反対に、制限されたアクセス制御リストが転送処理されるべきパケットのソース/デスティネーションアドレス、アプリケーション層プロトコルタイプ、もしくはトランスポート層プロトコルタイプ、及び/又はパケットヘッダに含まれる特定のキーワードのような情報に一致する記録を有さない場合には、転送処理されるべきパケットに対する転送処理を実行する態様は、パケットを転送してよい。他の例では、アクセス制御リストは、(ホワイトリストと同様の)許可されたアクセス制御リストである。許可されたアクセス制御リストが転送処理されるべきパケットのソース/デスティネーションアドレス、アプリケーション層プロトコルタイプ、もしくはトランスポート層プロトコルタイプ、及び/又はパケットヘッダに含まれる特定のキーワードのような情報に一致する記録を有さない場合には、転送処理されるべきパケットに対する転送処理を実行する態様は、パケットを直接破棄してよい。許可されたアクセス制御リストが転送処理されるべきパケットのソース/デスティネーションアドレス、アプリケーション層プロトコルタイプ、もしくはトランスポート層プロトコルタイプ、及び/又はパケットヘッダに含まれる特定のキーワードのような情報に一致する記録を有する場合には、転送処理されるべきパケットに対する転送処理を実行する態様は、パケットを転送してよい。複数の他の場合は、類推によって処理されてよい。
本実施形態において、ホスト1000の各モジュールの複数の機能が、複数の前述された方法の実施形態において説明された方法に従って具体的に実装されてよいことが理解されよう。その具体的な実装プロセスについては、複数の前述された実施形態において関連する説明を参照し、詳細は本明細書において再度説明されない。
本実施形態に係る解決手段において、仮想マシン及びホストがフロー制御ポリシの実行者を交渉するメカニズムが導入され、これにより、仮想マシン及びホストの両方は、フロー制御ポリシの実行者となる機会を有する。これにより、仮想マシンは、フロー制御ポリシを実行可能となり、可能な限り早くパケットに対するフロー制御を実行することに寄与し、効果的ではない処理の削減ならびに無効なパケットフローによって占有される帯域幅及びホストのアドレス空間の縮小にさらに寄与することが理解されよう。この解決手段は、仮想マシンのアウトバウンドパケットフローに対する転送処理を実行するために占有されるホストのアドレス空間を縮小することに寄与することが理解されよう。さらに、フロー制御ポリシの実行者は、交渉によってに決定され、フロー制御ポリシ実行の信頼性向上に寄与する。
さらに、仮想マシン及びホストの両方がフロー制御ポリシの実行をサポートする場合には、仮想マシンは、フロー制御ポリシの実行において優先される。これは、可能な限り早くパケットに対するフロー制御を実行することにさらに寄与し、効果的ではない処理及び無効なパケットフローによって占有される帯域幅の縮小にさらに寄与する。
さらに、仮想マシン及びホストは、複雑なアプリケーション環境に対する製品の適合性向上、環境移行のアップグレードコスト削減、及び環境移行のアップグレードコスト削減に寄与するモジュラーアーキテクチャを用いることによって設計される。
図11を参照すると、本発明の実施形態は、コンピューティングノード1100をさらに提供し、これは、ハードウェア層1110と、ハードウェア層において動作するホスト1102と、ホスト1102上で動作する少なくとも1つの仮想マシン1103と、を含んでよい。
仮想マシン1103は、仮想マシン1103とホスト1102との間で、仮想マシン1103のフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉し、フロー制御ポリシの交渉された実行者が仮想マシンであると決定された場合には、フロー制御ポリシに基づいて、転送処理されるべきパケットに対する転送処理を実行し、フロー制御ポリシの交渉された実行者がホスト1102であると決定された場合には、転送処理されるべきパケットをホスト1102に送信するように構成される。
ホスト1102は、フロー制御ポリシの交渉された実行者がホスト1102であると決定された場合には、フロー制御ポリシに基づいて、受信されたパケットに対する転送処理を、パケットを仮想マシンから受信した後で実行するように構成される。
本発明のいくつかの実施形態において、仮想マシン1103とホスト1102との間で、仮想マシン1103のフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉するために、仮想マシンは、仮想マシンのフロー制御機能についての記述情報を含む実行者交渉要求をホスト1102に送信し、交渉確認インジケーションが受信された場合には、フロー制御ポリシの交渉された実行者が仮想マシンであると決定し、交渉不確認インジケーションが受信された場合には、フロー制御ポリシの交渉された実行者がホスト1102であると決定するように具体的に構成され、交渉確認インジケーションは、ホスト1102がフロー制御機能についての記述情報に従って、仮想マシンがフロー制御ポリシの実行をサポートすると決定した後で、ホスト1102によって送信され、交渉不確認インジケーションは、ホスト1102がフロー制御機能についての記述情報に従って、仮想マシンがフロー制御ポリシの実行をサポートしないと決定した後で、ホスト1102によって送信される。
代わりに、仮想マシン1103とホスト1102との間で、仮想マシン1103のフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉するために、仮想マシンは、仮想マシンのフロー制御機能についての記述情報を含む実行者交渉要求をホスト1102に送信し、ホスト1102がフロー制御機能についての記述情報に従って、仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートすると決定した後で、ホスト1102によって送信された交渉確認インジケーションが受信された場合には、フロー制御ポリシの交渉された実行者が仮想マシンであると決定し、ホスト1102がフロー制御機能についての記述情報に従って、仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートしないと決定した後で、ホスト1102によって送信された交渉不確認インジケーションが受信された場合には、フロー制御ポリシの交渉された実行者がホスト1102であると決定するように具体的に構成され、フロー制御機能についての記述情報は、その実行が仮想マシンによってサポートされるフロー制御ポリシのバージョンを記述するために用いられる。
代わりに、仮想マシン1103とホスト1102との間で、仮想マシン1103のフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉するために、仮想マシンは、仮想マシンのフロー制御機能についての記述情報を含む実行者交渉要求をホスト1102に送信し、交渉確認インジケーションが受信された場合には、フロー制御ポリシの交渉された実行者が仮想マシンであると決定し、実行者交渉要求に応答してホスト1102によって送信された交渉確認インジケーションが第1の設定期間内に受信されなかった場合には、フロー制御ポリシの交渉された実行者がホスト1102であると決定するように具体的に構成され、交渉確認インジケーションは、ホスト1102がフロー制御機能についての記述情報に従って、仮想マシンがフロー制御ポリシの実行をサポートすると決定した後で、ホスト1102によって送信される。
代わりに、仮想マシン1103とホスト1102との間で、仮想マシン1103のフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉するために、仮想マシンは、仮想マシンのフロー制御機能についての記述情報を含む実行者交渉要求をホスト1102に送信し、ホスト1102によって送信された交渉確認インジケーションが、ホスト1102がフロー制御機能についての記述情報に従って、仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートすると決定した後で受信された場合には、フロー制御ポリシの交渉された実行者が仮想マシンであると決定し、実行者交渉要求に応答してホスト1102によって送信された交渉確認インジケーションが第1の設定期間内に受信されなかった場合には、フロー制御ポリシの交渉された実行者がホスト1102であると決定するように具体的に構成され、フロー制御機能についての記述情報は、その実行が仮想マシンによってサポートされるフロー制御ポリシのバージョンを記述するために用いられる。
代わりに、仮想マシン1103とホスト1102との間で、仮想マシン1103のフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉するために、仮想マシンは、仮想マシンのフロー制御機能についての記述情報を含む実行者交渉要求をホスト1102に送信し、交渉不確認インジケーションが受信された場合には、フロー制御ポリシの交渉された実行者がホスト1102であると決定し、実行者交渉要求に応答してホスト1102によって送信された交渉不確認インジケーションが第2の設定期間内に受信されなかった場合には、フロー制御ポリシの交渉された実行者が仮想マシンであると決定するように具体的に構成され、交渉不確認インジケーションは、ホスト1102がフロー制御機能についての記述情報に従って、仮想マシンがフロー制御ポリシの実行をサポートしないと決定した後で、ホスト1102によって送信される。
代わりに、仮想マシン1103とホスト1102との間で、仮想マシン1103のフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉するために、仮想マシン1103は、仮想マシンのフロー制御機能についての記述情報を含む実行者交渉要求をホスト1102に送信し、ホスト1102によって送信された交渉不確認インジケーションが、ホスト1102がフロー制御機能についての記述情報に従って、仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートすると決定した後で受信された場合には、フロー制御ポリシの交渉された実行者がホスト1102であると決定し、実行者交渉要求に応答してホスト1102によって送信された交渉不確認インジケーションが第2の設定期間内に受信されなかった場合には、フロー制御ポリシの交渉された実行者が仮想マシンであると決定するように具体的に構成され、フロー制御機能についての記述情報は、その実行が仮想マシンによってサポートされるフロー制御ポリシのバージョンを記述するために用いられる。
本発明のいくつかの実施形態において、ホスト1102は、仮想マシンによって送信され、かつ、仮想マシンのフロー制御機能についての記述情報を含む実行者交渉要求を受信し、フロー制御機能についての記述情報に従って、仮想マシンがフロー制御ポリシの実行をサポートすると決定された場合には、交渉確認インジケーションを仮想マシンに送信する、及び/又は、フロー制御機能についての記述情報に従って、仮想マシンがフロー制御ポリシの実行をサポートしないと決定された場合には、交渉不確認インジケーションを仮想マシンに送信してよく、交渉確認インジケーションは、フロー制御ポリシの交渉された実行者が仮想マシンであることを示し、交渉不確認インジケーションは、フロー制御ポリシの交渉された実行者がホストであることを示す。
本発明のいくつかの他の実施形態において、ホスト1102は、仮想マシンによって送信され、かつ、仮想マシンのフロー制御機能についての記述情報を含む実行者交渉要求を受信し、フロー制御機能についての記述情報に従って、仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートすると決定された場合には、交渉確認インジケーションを仮想マシンに送信する、及び/又は、フロー制御機能についての記述情報に従って、仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートしないと決定された場合には、交渉不確認インジケーションを仮想マシンに送信してよく、フロー制御機能についての記述情報は、その実行が仮想マシンによってサポートされるフロー制御ポリシのバージョンを記述するために用いられ、交渉確認インジケーションは、フロー制御ポリシの交渉された実行者が仮想マシンであることを示し、交渉不確認インジケーションは、フロー制御ポリシの交渉された実行者がホストであることを示す。
本発明のいくつかの実施形態において、フロー制御機能についての記述情報が、その実行が仮想マシンによってサポートされるフロー制御ポリシのバージョンを記述するために用いられる場合には、ホスト1102が、フロー制御機能についての記述情報に従って、仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートするか否かを決定してよいことは、具体的には、フロー制御機能についての記述情報によって記述され、かつ、その実行が仮想マシンによってサポートされるフロー制御ポリシのバージョンが、フロー制御ポリシの現在の最新バージョン又は事前設定されたバージョンと同じか否かを比較によって決定することと、これらが同じ場合には、仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートすると決定することと、これらが異なる場合には、仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートしないと決定することと、を含んでよい。他の例では、ホスト1102が、フロー制御機能についての記述情報に従って、仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートするか否かを決定してよいことは、具体的には、その実行が仮想マシンによってサポートされるフロー制御ポリシのフロー制御機能についての記述情報によって記述されるk個(kは正の整数)のバージョンの各バージョンがフロー制御ポリシの現在の最新バージョン又は事前設定されたバージョンと同じか否かを比較によって決定することと、k個のバージョンのうち1つのバージョンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシであることが比較によって得られた場合には、仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートすると決定することと、k個のバージョンのうちいずれか1つのバージョンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシと異なることが比較によって得られた場合には、仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートしないと決定することと、を含んでよい。
本発明のいくつかの実施形態において、ホスト1102は、フロー制御ポリシの交渉された実行者が仮想マシンであると決定された後で、ハートビートメッセージが設定期間内に仮想マシンから受信されなかった場合には、フロー制御ポリシの実行者がホスト1102にスイッチされたことを示すために用いられるインジケーションメッセージを仮想マシンに送信するようにさらに構成される。
本発明のいくつかの実施形態において、交渉確認インジケーションは、フロー制御ポリシを含んでよく、仮想マシンによって、フロー制御ポリシに基づいて、転送処理されるべきパケットに対する転送処理を実行するために、仮想マシンは、交渉確認インジケーションに含まれるフロー制御ポリシに基づいて、転送処理されるべきパケットに対する転送処理を実行するように具体的に構成される。
勿論、ホスト1102は、複数の他の態様において、フロー制御ポリシを仮想マシンに転送し、これにより、仮想マシン1103は、フロー制御ポリシの交渉された実行者が仮想マシンであると決定された後で、ホスト1102によって転送されたフロー制御ポリシに基づいて、転送処理されるべきパケットに対する転送処理を実行してもよい。勿論、フロー制御ポリシは、仮想マシン1103において予め設定されてもよい。仮想マシン1103が、フロー制御ポリシの交渉された実行者が仮想マシン1103であると決定する場合には、仮想マシン1103は、予め設定されたフロー制御ポリシに基づいて、転送処理されるべきパケットに対する転送処理を実行する。
本発明のいくつかの実施形態において、仮想マシン1102が仮想マシン1102のフロー制御機能についての記述情報を含む実行者交渉要求をホスト1102に送信するという理由で、仮想マシン1102は、ユーザモードプロセスによって開始された交渉開始要求が受信された後で、仮想マシン1102のフロー制御機能についての記述情報を含む実行者交渉要求をホスト1102に送信し、又は、ホスト1102から交渉開始要求が受信された後で、仮想マシン1102のフロー制御機能についての記述情報を含む実行者交渉要求をホスト1102に送信するように具体的に構成される。
本実施形態において、ホスト1102又は仮想マシン1102が転送処理されるべきパケットを処理するベースとなるフロー制御ポリシは、例えば、サービス品質に基づくフロー制御ポリシ及び/又はアクセス制御リストに基づくフロー制御ポリシであってよい。勿論、フロー制御ポリシは、複数の他の要素を参照するフロー制御ポリシであってもよい。
サービス品質に基づくフロー制御ポリシにおいて、パケットに対する転送処理を実行する特定の態様(特定の転送処理態様は、パケットを遅延させて送信、パケットを遅延なく送信、又はパケットを破棄してよい等)は、主に、転送処理されるべきパケットに対応するサービス優先度に基づいて決定される。例えば、複数の転送処理されるべきパケットが現在キャッシュに存在するとして、より高いサービス優先度に対応するパケットは、より短い遅延で、又はさらに遅延なく送信されてよく、より低いサービス優先度に対応するパケットは、より長い遅延で送信されてよく、設定された優先度閾値より低いサービス優先度に対応する転送処理されるべきパケットは、さらに破棄されてよい。これは、優先度の高いサービスのサービス品質を可能な限り確保することに寄与する。すなわち、サービス品質に基づいて、フロー制御ポリシに従って転送処理されるべきパケットに対する転送処理を実行する段階は、具体的には、転送処理されるべきパケットのサービス優先度に対応する転送処理態様に従って転送処理されるべきパケットに対する転送処理を実行する段階を含んでよい。
アクセス制御リストに基づくフロー制御ポリシにおいて、パケットに対する転送処理を実行する特定の態様は、主に、転送処理されるべきパケットに含まれる情報がアクセス制御リストに含まれる記録に一致するか否かに基づいて決定される。例えば、アクセス制御リストは、(ブラックリストと同様の)制限されたアクセス制御リストである。制限されたアクセス制御リストが転送処理されるべきパケットのソース/デスティネーションアドレス、アプリケーション層プロトコルタイプ、もしくはトランスポート層プロトコルタイプ、及び/又はパケットヘッダに含まれる特定のキーワードのような情報に一致する記録を有する場合には、転送処理されるべきパケットに対する転送処理を実行する態様は、パケットを直接破棄してよい。反対に、制限されたアクセス制御リストが転送処理されるべきパケットのソース/デスティネーションアドレス、アプリケーション層プロトコルタイプ、もしくはトランスポート層プロトコルタイプ、及び/又はパケットヘッダに含まれる特定のキーワードのような情報に一致する記録を有さない場合には、転送処理されるべきパケットに対する転送処理を実行する態様は、パケットを転送してよい。他の例では、アクセス制御リストは、(ホワイトリストと同様の)許可されたアクセス制御リストである。許可されたアクセス制御リストが転送処理されるべきパケットのソース/デスティネーションアドレス、アプリケーション層プロトコルタイプ、もしくはトランスポート層プロトコルタイプ、及び/又はパケットヘッダに含まれる特定のキーワードのような情報に一致する記録を有さない場合には、転送処理されるべきパケットに対する転送処理を実行する態様は、パケットを直接破棄してよい。許可されたアクセス制御リストが転送処理されるべきパケットのソース/デスティネーションアドレス、アプリケーション層プロトコルタイプ、もしくはトランスポート層プロトコルタイプ、及び/又はパケットヘッダに含まれる特定のキーワードのような情報に一致する記録を有する場合には、転送処理されるべきパケットに対する転送処理を実行する態様は、パケットを転送してよい。複数の他の場合は、類推によって処理されてよい。
本実施形態において、コンピューティングノード1100の各ユニットの複数の機能は、複数の前述された方法の実施形態において説明された方法に従って具体的に実装されてよいことが理解されよう。その具体的な実装プロセスについては、複数の前述された実施形態において関連する説明を参照し、詳細は本明細書において再度説明されない。
本実施形態に係る解決手段において、仮想マシン及びホストがフロー制御ポリシの実行者を交渉するメカニズムがコンピューティングノード1100に導入され、これにより、仮想マシン及びホストの両方は、フロー制御ポリシの実行者となる機会を有する。これにより、仮想マシンは、フロー制御ポリシを実行可能となり、可能な限り早くパケットに対するフロー制御を実行することに寄与し、効果的ではない処理の削減ならびに無効なパケットフローによって占有される帯域幅及びホストのアドレス空間の縮小にさらに寄与することが理解されよう。この解決手段は、仮想マシンのアウトバウンドパケットフローに対する転送処理を実行するために占有されるホストのアドレス空間を縮小することに寄与することが理解されよう。さらに、フロー制御ポリシの実行者は、交渉によってに決定され、フロー制御ポリシ実行の信頼性向上に寄与する。
さらに、仮想マシン及びホストの両方がフロー制御ポリシの実行をサポートする場合には、仮想マシンは、フロー制御ポリシの実行において優先される。これは、可能な限り早くパケットに対するフロー制御を実行することにさらに寄与し、効果的ではない処理及び無効なパケットフローによって占有される帯域幅の縮小にさらに寄与する。
さらに、仮想マシン及びホストは、複雑なアプリケーション環境に対する製品の適合性向上、及び環境移行のアップグレードコスト削減に寄与するモジュラーアーキテクチャを用いることによって設計される。
図12は、本発明の実施形態に係るコンピューティングノード1200の構造を示す。コンピューティングノード1200は、少なくとも1つのプロセッサ1201、例えばCPUと、少なくとも1つのネットワークインタフェース1204又は他のユーザインタフェース1203と、ストレージ1205と、少なくとも1つの通信バス1202と、を含む。通信バス1202は、これらのコンポーネントの間における接続及び通信を実装するように構成される。任意に、コンピューティングノード1200は、ユーザインタフェース1203を含み、これは、ディスプレイ、キーボード、又は(マウス、トラックボール(trackball)、タッチパッド、もしくはタッチスクリーンのような)クリックデバイスを含む。ストレージ1205は、高速RAMメモリを含んでよく、少なくとも1つのディスクメモリのような不揮発性メモリ(non−volatile memory)をさらに含んでよい。ストレージ1205は、プロセッサ1201から離れた少なくとも1つの記憶装置を任意に含んでよい。ネットワークインタフェース1204は、物理ネットワークインタフェースカード等を含む。
いくつかの実装態様において、ストレージ1205は、以下の要素、実行可能なモジュールもしくはデータ構造、又はこれらのサブセット、又はこれらの拡張されたセット、ホスト12051及び少なくとも1つの仮想マシン12052を格納する。ホスト12051は、プロセッサ1201起動の下で、複数の前述された実施形態において説明されたホストの機能の一部又は全部を有してよく、仮想マシン12052は、プロセッサ1201起動の下で、複数の前述された実施形態において説明された仮想マシンの機能の一部又は全部を有してよい。
本発明の本実施形態において、仮想マシン12052は、プロセッサ1201起動の下で、仮想マシン12052とホスト12051との間で、仮想マシンのフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉し、フロー制御ポリシの交渉された実行者が仮想マシンであると決定された場合には、フロー制御ポリシに基づいて、転送処理されるべきパケットに対する転送処理を実行し、フロー制御ポリシの交渉された実行者がホスト12051であると決定された場合には、転送処理されるべきパケットをホスト12051に送信するように構成されてよい。
ホスト12051は、プロセッサ1201起動の下で、フロー制御ポリシの交渉された実行者がホスト12051であると決定された場合には、フロー制御ポリシに基づいて、受信されたパケットに対する転送処理を、パケットを仮想マシン12052から受信した後で実行するように構成されてよい。
本発明のいくつかの実施形態において、仮想マシン12052とホスト12051との間で、仮想マシンのフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉するために、仮想マシン12052は、プロセッサ1201起動の下で、仮想マシンのフロー制御機能についての記述情報を含む実行者交渉要求をホスト12051に送信し、交渉確認インジケーションが受信された場合には、フロー制御ポリシの交渉された実行者が仮想マシンであると決定し、交渉不確認インジケーションが受信された場合には、フロー制御ポリシの交渉された実行者がホスト12051であると決定するように具体的に構成され、交渉確認インジケーションは、ホスト12051がフロー制御機能についての記述情報に従って、仮想マシンがフロー制御ポリシの実行をサポートすると決定した後で、ホスト12051によって送信され、交渉不確認インジケーションは、ホスト12051がフロー制御機能についての記述情報に従って、仮想マシンがフロー制御ポリシの実行をサポートしないと決定した後で、ホスト12051によって送信される。
代わりに、仮想マシン12052とホスト12051との間で、仮想マシンのフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉するために、仮想マシン12052は、プロセッサ1201起動の下で、仮想マシンのフロー制御機能についての記述情報を含む実行者交渉要求をホスト12051に送信し、ホスト12051がフロー制御機能についての記述情報に従って、仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートすると決定した後で、ホスト12051によって送信された交渉確認インジケーションが受信された場合には、フロー制御ポリシの交渉された実行者が仮想マシンであると決定し、ホスト12051がフロー制御機能についての記述情報に従って、仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートしないと決定した後で、ホスト12051によって送信された交渉不確認インジケーションが受信された場合には、フロー制御ポリシの交渉された実行者がホスト12051であると決定するように具体的に構成され、フロー制御機能についての記述情報は、その実行が仮想マシンによってサポートされるフロー制御ポリシのバージョンを記述するために用いられる。
代わりに、仮想マシン12052とホスト12051との間で、仮想マシンのフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉するために、仮想マシン12052は、プロセッサ1201起動の下で、仮想マシンのフロー制御機能についての記述情報を含む実行者交渉要求をホスト12051に送信し、交渉確認インジケーションが受信された場合には、フロー制御ポリシの交渉された実行者が仮想マシンであると決定し、実行者交渉要求に応答してホスト12051によって送信された交渉確認インジケーションが第1の設定期間内に受信されなかった場合には、フロー制御ポリシの交渉された実行者がホスト12051であると決定するように具体的に構成され、交渉確認インジケーションは、ホスト12051がフロー制御機能についての記述情報に従って、仮想マシンがフロー制御ポリシの実行をサポートすると決定した後で、ホスト12051によって送信される。
代わりに、仮想マシン12052とホスト12051との間で、仮想マシンのフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉するために、仮想マシン12052は、プロセッサ1201起動の下で、仮想マシンのフロー制御機能についての記述情報を含む実行者交渉要求をホスト12051に送信し、ホスト12051によって送信された交渉確認インジケーションが、ホスト12051がフロー制御機能についての記述情報に従って、仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートすると決定した後で受信された場合には、フロー制御ポリシの交渉された実行者が仮想マシンであると決定し、実行者交渉要求に応答してホスト12051によって送信された交渉確認インジケーションが第1の設定期間内に受信されなかった場合には、フロー制御ポリシの交渉された実行者がホスト12051であると決定するように具体的に構成され、フロー制御機能についての記述情報は、その実行が仮想マシンによってサポートされるフロー制御ポリシのバージョンを記述するために用いられる。
代わりに、仮想マシン12052とホスト12051との間で、仮想マシンのフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉するために、仮想マシン12052は、プロセッサ1201起動の下で、仮想マシンのフロー制御機能についての記述情報を含む実行者交渉要求をホスト12051に送信し、交渉不確認インジケーションが受信された場合には、フロー制御ポリシの交渉された実行者がホスト12051であると決定し、実行者交渉要求に応答してホスト12051によって送信された交渉不確認インジケーションが第2の設定期間内に受信されなかった場合には、フロー制御ポリシの交渉された実行者が仮想マシンであると決定するように具体的に構成され、交渉不確認インジケーションは、ホスト12051がフロー制御機能についての記述情報に従って、仮想マシンがフロー制御ポリシの実行をサポートしないと決定した後で、ホスト12051によって送信される。
代わりに、仮想マシン12052とホスト12051との間で、仮想マシンのフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉するために、仮想マシン12052は、プロセッサ1201起動の下で、仮想マシンのフロー制御機能についての記述情報を含む実行者交渉要求をホスト12051に送信し、ホスト12051によって送信された交渉不確認インジケーションが、ホスト12051がフロー制御機能についての記述情報に従って、仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートすると決定した後で受信された場合には、フロー制御ポリシの交渉された実行者がホスト12051であると決定し、実行者交渉要求に応答してホスト12051によって送信された交渉不確認インジケーションが第2の設定期間内に受信されなかった場合には、フロー制御ポリシの交渉された実行者が仮想マシンであると決定するように具体的に構成され、フロー制御機能についての記述情報は、その実行が仮想マシンによってサポートされるフロー制御ポリシのバージョンを記述するために用いられる。
本発明のいくつかの実施形態において、フロー制御機能についての記述情報が、その実行が仮想マシンによってサポートされるフロー制御ポリシのバージョンを記述するために用いられる場合には、ホスト12051が、プロセッサ1201起動の下で、フロー制御機能についての記述情報に従って、仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートするか否かを決定してよいことは、具体的には、フロー制御機能についての記述情報によって記述され、かつ、その実行が仮想マシンによってサポートされるフロー制御ポリシのバージョンが、フロー制御ポリシの現在の最新バージョン又は事前設定されたバージョンと同じか否かを比較によって決定することと、これらが同じ場合には、仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートすると決定することと、これらが異なる場合には、仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートしないと決定することと、を含んでよい。他の例では、ホスト12051が、プロセッサ1201起動の下で、フロー制御機能についての記述情報に従って、仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートするか否かを決定してよいことは、具体的には、その実行が仮想マシンによってサポートされるフロー制御ポリシのフロー制御機能についての記述情報によって記述されるk個(kは正の整数)のバージョンの各バージョンがフロー制御ポリシの現在の最新バージョン又は事前設定されたバージョンと同じか否かを比較によって決定することと、k個のバージョンのうち1つのバージョンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシであることが比較によって得られた場合には、仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートすると決定することと、k個のバージョンのうちいずれか1つのバージョンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシと異なることが比較によって得られた場合には、仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートしないと決定することと、を含んでよい。
本発明のいくつかの実施形態において、ホスト12051は、プロセッサ1201起動の下で、フロー制御ポリシの交渉された実行者が仮想マシンであると決定された後で、ハートビートメッセージが設定期間内に仮想マシンから受信されなかった場合には、フロー制御ポリシの実行者がホスト12051にスイッチされたことを示すために用いられるインジケーションメッセージを仮想マシンに送信するようにさらに構成される。
本発明のいくつかの実施形態において、交渉確認インジケーションは、フロー制御ポリシを含んでよく、仮想マシンによって、フロー制御ポリシに基づいて、転送処理されるべきパケットに対する転送処理を実行するために、仮想マシン12052は、交渉確認インジケーションに含まれるフロー制御ポリシに基づいて、転送処理されるべきパケットに対する転送処理を実行するように具体的に構成される。
勿論、ホスト12051は、複数の他の態様において、フロー制御ポリシを仮想マシンに転送し、これにより、仮想マシン12052は、フロー制御ポリシの交渉された実行者が仮想マシンであると決定された後で、ホスト12051によって転送されたフロー制御ポリシに基づいて、転送処理されるべきパケットに対する転送処理を実行してもよい。勿論、フロー制御ポリシは、仮想マシン12052において予め設定されてもよい。仮想マシン12052が、フロー制御ポリシの交渉された実行者が仮想マシン12052であると決定する場合には、仮想マシン12052は、予め設定されたフロー制御ポリシに基づいて、転送処理されるべきパケットに対する転送処理を実行する。
本発明のいくつかの実施形態において、仮想マシン12051が仮想マシン12051のフロー制御機能についての記述情報を含む実行者交渉要求をホスト12051に送信するという理由で、仮想マシン12051は、プロセッサ1201起動の下で、ユーザモードプロセスによって開始された交渉開始要求が受信された後で、仮想マシン12051のフロー制御機能についての記述情報を含む実行者交渉要求をホスト12051に送信し、又は、ホスト12051から交渉開始要求が受信された後で、仮想マシン12051のフロー制御機能についての記述情報を含む実行者交渉要求をホスト12051に送信するように具体的に構成される。
本実施形態において、ホスト12051又は仮想マシン12052が転送処理されるべきパケットを処理するベースとなるフロー制御ポリシは、例えば、サービス品質に基づくフロー制御ポリシ及び/又はアクセス制御リストに基づくフロー制御ポリシであってよい。勿論、フロー制御ポリシは、複数の他の要素を参照するフロー制御ポリシであってもよい。
サービス品質に基づくフロー制御ポリシにおいて、パケットに対する転送処理を実行する特定の態様(特定の転送処理態様は、パケットを遅延させて送信、パケットを遅延なく送信、又はパケットを破棄してよい等)は、主に、転送処理されるべきパケットに対応するサービス優先度に基づいて決定される。例えば、複数の転送処理されるべきパケットが現在キャッシュに存在するとして、より高いサービス優先度に対応するパケットは、より短い遅延で、又はさらに遅延なく送信されてよく、より低いサービス優先度に対応するパケットは、より長い遅延で送信されてよく、設定された優先度閾値より低いサービス優先度に対応する転送処理されるべきパケットは、さらに破棄されてよい。これは、優先度の高いサービスのサービス品質を可能な限り確保することに寄与する。すなわち、サービス品質に基づいて、フロー制御ポリシに従って転送処理されるべきパケットに対する転送処理を実行する段階は、具体的には、転送処理されるべきパケットのサービス優先度に対応する転送処理態様に従って転送処理されるべきパケットに対する転送処理を実行する段階を含んでよい。
アクセス制御リストに基づくフロー制御ポリシにおいて、パケットに対する転送処理を実行する特定の態様は、主に、転送処理されるべきパケットに含まれる情報がアクセス制御リストに含まれる記録に一致するか否かに基づいて決定される。例えば、アクセス制御リストは、(ブラックリストと同様の)制限されたアクセス制御リストである。制限されたアクセス制御リストが転送処理されるべきパケットのソース/デスティネーションアドレス、アプリケーション層プロトコルタイプ、もしくはトランスポート層プロトコルタイプ、及び/又はパケットヘッダに含まれる特定のキーワードのような情報に一致する記録を有する場合には、転送処理されるべきパケットに対する転送処理を実行する態様は、パケットを直接破棄してよい。反対に、制限されたアクセス制御リストが転送処理されるべきパケットのソース/デスティネーションアドレス、アプリケーション層プロトコルタイプ、もしくはトランスポート層プロトコルタイプ、及び/又はパケットヘッダに含まれる特定のキーワードのような情報に一致する記録を有さない場合には、転送処理されるべきパケットに対する転送処理を実行する態様は、パケットを転送してよい。他の例では、アクセス制御リストは、(ホワイトリストと同様の)許可されたアクセス制御リストである。許可されたアクセス制御リストが転送処理されるべきパケットのソース/デスティネーションアドレス、アプリケーション層プロトコルタイプ、もしくはトランスポート層プロトコルタイプ、及び/又はパケットヘッダに含まれる特定のキーワードのような情報に一致する記録を有さない場合には、転送処理されるべきパケットに対する転送処理を実行する態様は、パケットを直接破棄してよい。許可されたアクセス制御リストが転送処理されるべきパケットのソース/デスティネーションアドレス、アプリケーション層プロトコルタイプ、もしくはトランスポート層プロトコルタイプ、及び/又はパケットヘッダに含まれる特定のキーワードのような情報に一致する記録を有する場合には、転送処理されるべきパケットに対する転送処理を実行する態様は、パケットを転送してよい。複数の他の場合は、類推によって処理されてよい。
本実施形態において、コンピューティングノード1200の各ユニットの複数の機能は、複数の前述された方法の実施形態において説明された方法に従って具体的に実装されてよいことが理解されよう。その具体的な実装プロセスについては、複数の前述された実施形態において関連する説明を参照し、詳細は本明細書において再度説明されない。
本実施形態に係る解決手段において、仮想マシン及びホストがフロー制御ポリシの実行者を交渉するメカニズムがコンピューティングノード1200に導入され、これにより、仮想マシン及びホストの両方は、フロー制御ポリシの実行者となる機会を有する。これにより、仮想マシンは、フロー制御ポリシを実行可能となり、可能な限り早くパケットに対するフロー制御を実行することに寄与し、効果的ではない処理の削減ならびに無効なパケットフローによって占有される帯域幅及びホストのアドレス空間の縮小にさらに寄与することが理解されよう。この解決手段は、仮想マシンのアウトバウンドパケットフローに対する転送処理を実行するために占有されるホストのアドレス空間を縮小することに寄与することが理解されよう。さらに、フロー制御ポリシの実行者は、交渉によってに決定され、フロー制御ポリシ実行の信頼性向上に寄与する。
さらに、仮想マシン及びホストの両方がフロー制御ポリシの実行をサポートする場合には、仮想マシンは、フロー制御ポリシの実行において優先される。これは、可能な限り早くパケットに対するフロー制御を実行することにさらに寄与し、効果的ではない処理及び無効なパケットフローによって占有される帯域幅の縮小にさらに寄与する。
図13は、本発明の実施形態に係るコンピューティングノード1300の構造を示す。コンピューティングノード1300は、少なくとも1つのプロセッサ1301、例えばCPUと、少なくとも1つのネットワークインタフェース1304と、ストレージ1305と、少なくとも1つの通信バス1302と、を含む。通信バス1302は、これらのコンポーネントの間における接続及び通信を実装するように構成される。任意に、コンピューティングノード1300は、ユーザインタフェース1303を含み、これは、ディスプレイ、キーボード、又は(マウス、トラックボール(trackball)、タッチパッド、もしくはタッチスクリーンのような)クリックデバイスを含む。ストレージ1305は、高速RAMメモリを含んでよく、少なくとも1つのディスクメモリのような不揮発性メモリ(non−volatile memory)をさらに含んでよい。ストレージ1305は、プロセッサ1301から離れた少なくとも1つの記憶装置を任意に含んでよい。ネットワークインタフェース1304は、物理ネットワークインタフェースカード等を含む。
いくつかの実装態様において、ストレージ1305は、以下の要素、実行可能なモジュールもしくはデータ構造、又はこれらのサブセット、又はこれらの拡張されたセット、ホスト13051及び少なくとも1つの仮想マシン13052を格納する。ホスト13051は、プロセッサ1301起動の下で、複数の前述された実施形態において説明されたホストの機能の一部又は全部を有してよく、仮想マシン13052は、プロセッサ1301起動の下で、複数の前述された実施形態において説明された仮想マシンの機能の一部又は全部を有してよい。
本発明の本実施形態において、プロセッサ1301は、ストレージ1305に格納されたプログラム又は複数の命令を呼び出すことによって、ホスト13051と仮想マシン13052との間で、仮想マシン13052のフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉し、フロー制御ポリシの交渉された実行者が仮想マシン13052である場合には、フロー制御ポリシに基づいて、仮想マシン13052の転送処理されるべきパケットに対する転送処理を実行し、フロー制御ポリシの交渉された実行者がホスト13051である場合には、仮想マシン13052の転送処理されるべきパケットをホスト13051に送信し、フロー制御ポリシに基づいて、ホスト13051によって受信された転送処理されるべきパケットに対する転送処理を実行するように構成されてよい。
本発明のいくつかの実施形態において、プロセッサ1301が、ホスト13051と仮想マシン13052との間で、仮想マシン13052のフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉することは、仮想マシン13052によってホスト13051に送信されるべき実行者交渉要求を、プロセッサ1301によってホスト13051に送信することであって、実行者交渉要求は、仮想マシン13052のフロー制御機能についての記述情報を含むことと、
ホスト13051が実行者交渉要求を受信した後で、プロセッサ1301がフロー制御機能についての記述情報に従って、仮想マシン13052がフロー制御ポリシの実行をサポートすると決定した場合には、ホスト13051によって仮想マシン13052に送信されるべき交渉確認インジケーションを、プロセッサ1301によって仮想マシン13052に送信することであって、交渉確認インジケーションは、フロー制御ポリシの交渉された実行者が仮想マシン13052であることを示すこと、及び/又は、プロセッサ1301がフロー制御機能についての記述情報に従って、仮想マシン13052がフロー制御ポリシの実行をサポートしないと決定した場合には、ホスト13051によって仮想マシン13052に送信されるべき交渉不確認インジケーションを、プロセッサ1301によって仮想マシン13052に送信することであって、交渉不確認インジケーションは、フロー制御ポリシの交渉された実行者がホスト13051であることを示すことと、
を含んでよい。
代わりに、プロセッサ1301が、ホスト13051と仮想マシン13052との間で、仮想マシン13052のフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉することは、仮想マシン13052によってホスト13051に送信されるべき実行者交渉要求を、プロセッサ1301によってホスト13051に送信することであって、実行者交渉要求は、仮想マシン13052のフロー制御機能についての記述情報を含み、フロー制御機能についての記述情報は、その実行が仮想マシン13052によってサポートされるフロー制御ポリシのバージョンを記述するために用いられることと、
ホスト13051が実行者交渉要求を受信した後で、プロセッサ1301が、フロー制御機能についての記述情報に従って、仮想マシン13052が現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートすると決定した場合には、ホスト13051によって仮想マシン13052に送信されるべき交渉確認インジケーションをプロセッサ1301によって仮想マシン13052に送信することであって、交渉確認インジケーションは、フロー制御ポリシの交渉された実行者が仮想マシン13052であることを示すこと、及び/又は、プロセッサ1301がフロー制御機能についての記述情報に従って、仮想マシン13052が現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートしないと決定した場合には、ホスト13051によって仮想マシン13052に送信されるべき交渉不確認インジケーションを、プロセッサ1301によって仮想マシン13052に送信することであって、交渉不確認インジケーションは、フロー制御ポリシの交渉された実行者がホスト13051であることを示すことと、
を含む。
本発明のいくつかの他の実施形態において、プロセッサ13051が、ホスト13051と仮想マシン13052との間で、仮想マシン13052のフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉することは、仮想マシン13052によってホスト13051に送信されるべき実行者交渉要求を、プロセッサ13051によってホスト13051に送信することであって、実行者交渉要求は、仮想マシン13052のフロー制御機能についての記述情報を含むことと、実行者交渉要求に応答してホスト13051によって送信された交渉確認インジケーションが仮想マシン13052によって受信された場合には、プロセッサ13051によって、フロー制御ポリシの交渉された実行者が仮想マシンであると決定することと、実行者交渉要求に応答してホスト13051によって送信された交渉不確認インジケーションが仮想マシン13052によって受信された場合には、プロセッサ13051によって、フロー制御ポリシの交渉された実行者がホスト13051であると決定することと、を含んでよい。
代わりに、プロセッサ1301が、ホスト13051と仮想マシン13052との間で、仮想マシン13052のフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉することは、仮想マシン13052によってホスト13051に送信されるべき実行者交渉要求を、プロセッサ13051によってホスト13051に送信することであって、実行者交渉要求は、仮想マシン13052のフロー制御機能についての記述情報を含み、フロー制御機能についての記述情報は、その実行が仮想マシン13052によってサポートされるフロー制御ポリシのバージョンを記述するために用いられることと、実行者交渉要求に応答してホスト13051によって送信された交渉確認インジケーションが仮想マシン13052によって受信された場合には、プロセッサ13051によって、フロー制御ポリシの交渉された実行者が仮想マシン13052であると決定することと、実行者交渉要求に応答してホスト13051によって送信された交渉不確認インジケーションが仮想マシン13052によって受信された場合には、フロー制御ポリシの交渉された実行者がホスト13051であると決定することと、を含んでよい。
代わりに、プロセッサ1301が、ホスト13051と仮想マシン13052との間で、仮想マシン13052のフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉することは、仮想マシン13052によってホスト13051に送信されるべき実行者交渉要求を、プロセッサ1301によってホスト13051に送信することであって、実行者交渉要求は、仮想マシン13052のフロー制御機能についての記述情報を含むことと、実行者交渉要求に応答してホスト13051によって送信された交渉確認インジケーションが、仮想マシン13052によって受信された場合には、プロセッサ1301によって、フロー制御ポリシの交渉された実行者が仮想マシンであると決定することと、実行者交渉要求に応答してホスト13051によって送信された交渉確認インジケーションが仮想マシン13052によって第1の設定期間内に受信されなかった場合には、プロセッサ1301によって、フロー制御ポリシの交渉された実行者がホスト13051であると決定することと、を含んでよい。
代わりに、プロセッサ1301が、ホスト13051と仮想マシン13052との間で、仮想マシン13052のフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉することは、仮想マシン13052によってホスト13051に送信されるべき実行者交渉要求を、プロセッサ1301によってホスト13051に送信することであって、実行者交渉要求は、仮想マシン13052のフロー制御機能についての記述情報を含み、フロー制御機能についての記述情報は、その実行が仮想マシンによってサポートされるフロー制御ポリシのバージョンを記述するために用いられることと、実行者交渉要求に応答してホスト13051によって送信された交渉確認インジケーションが仮想マシン13052によって受信された場合には、プロセッサ1301によって、フロー制御ポリシの交渉された実行者が仮想マシンであると決定することと、実行者交渉要求に応答してホスト13051によって送信された交渉確認インジケーションが仮想マシン13052によって第1の設定期間内に受信されなかった場合には、プロセッサ1301によって、フロー制御ポリシの交渉された実行者がホスト13051であると決定することと、を含んでよい。
代わりに、プロセッサ1301が、ホスト13051と仮想マシン13052との間で、仮想マシン13052のフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉することは、仮想マシン13052によってホスト13051に送信されるべき実行者交渉要求を、プロセッサ1301によってホスト13051に送信することであって、実行者交渉要求は、仮想マシン13052のフロー制御機能についての記述情報を含むことと、実行者交渉要求に応答してホスト13051によって送信された交渉不確認インジケーションが、仮想マシン13052によって受信された場合には、プロセッサ1301によって、フロー制御ポリシの交渉された実行者がホスト13051であると決定することと、実行者交渉要求に応答してホスト13051によって送信された交渉不確認インジケーションが、仮想マシン13052によって第2の設定期間内に受信されなかった場合には、プロセッサ1301によって、フロー制御ポリシの交渉された実行者が仮想マシンであると決定することと、を含んでよい。
代わりに、プロセッサ1301が、ホスト13051と仮想マシン13052との間で、仮想マシン13052のフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉することは、仮想マシン13052によってホスト13051に送信されるべき実行者交渉要求を、プロセッサ1301によってホスト13051に送信することであって、実行者交渉要求は、仮想マシン13052のフロー制御機能についての記述情報を含み、フロー制御機能についての記述情報は、その実行が仮想マシンによってサポートされるフロー制御ポリシのバージョンを記述するために用いられることと、実行者交渉要求に応答してホスト13051によって送信された交渉不確認インジケーションが、仮想マシン13052によって受信された場合には、プロセッサ1301によって、フロー制御ポリシの交渉された実行者がホスト13051であると決定することと、実行者交渉要求に応答してホスト13051によって送信された交渉不確認インジケーションが、仮想マシン13052によって第2の設定期間内に受信されなかった場合には、プロセッサ1301によって、フロー制御ポリシの交渉された実行者が仮想マシンであると決定することと、を含んでよい。
本発明のいくつかの実施形態において、交渉確認インジケーションは、フロー制御ポリシを含む。
プロセッサ1301が、フロー制御ポリシに基づいて、仮想マシン13052の転送処理されるべきパケットに対する転送処理を実行することは、プロセッサ1301によって、交渉確認インジケーションに含まれるフロー制御ポリシに基づいて、仮想マシン13052の転送処理されるべきパケットに対する転送処理を実行することを含んでよい。
勿論、ホスト13051は、複数の他の態様で、フロー制御ポリシを仮想マシン13052に転送してもよく、これにより、プロセッサ1301は、フロー制御ポリシの交渉された実行者が仮想マシン13052であると決定された後で、ホスト13051によって転送されたフロー制御ポリシに基づいて、仮想マシン13052の転送処理されるべきパケットに対する転送処理を実行する。勿論、フロー制御ポリシは、仮想マシン13052において予め設定されてもよい。フロー制御ポリシの交渉された実行者が仮想マシン13052であると決定される場合には、プロセッサ1301は、予め設定されたフロー制御ポリシに基づいて、仮想マシン13052の転送処理されるべきパケットに対する転送処理を実行する。
本発明のいくつかの実施形態において、ホスト13051が実行者交渉要求を受信した後で、フロー制御機能についての記述情報が、その実行が仮想マシンによってサポートされるフロー制御ポリシのバージョンを記述するために用いられる場合には、プロセッサ1301が、フロー制御機能についての記述情報に従って、仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートするか否かを決定してよいことは、具体的には、フロー制御機能についての記述情報によって記述され、かつ、その実行が仮想マシンによってサポートされるフロー制御ポリシのバージョンが、フロー制御ポリシの現在の最新バージョン又は事前設定されたバージョンと同じか否かを比較によって決定することと、これらが同じ場合には、仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートすると決定することと、これらが異なる場合には、仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートしないと決定することと、を含んでよい。他の例では、プロセッサ1301が、フロー制御機能についての記述情報に従って、仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートするか否かを決定することは、具体的には、その実行が仮想マシンによってサポートされるフロー制御ポリシのフロー制御機能についての記述情報によって記述されるk個(kは正の整数)のバージョンの各バージョンがフロー制御ポリシの現在の最新バージョン又は事前設定されたバージョンと同じか否かを比較によって決定することと、k個のバージョンのうち1つのバージョンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシであることが比較によって得られた場合には、仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートすると決定することと、k個のバージョンのうちいずれか1つのバージョンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシと異なることが比較によって得られた場合には、仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートしないと決定することと、を含んでよい。
本発明のいくつかの実施形態において、フロー制御ポリシの交渉された実行者が仮想マシン13052であると決定された後で、ホスト13051が設定期間内に仮想マシン13052からハートビートメッセージを受信しなかった場合には、プロセッサ1301は、ホスト13051によって仮想マシン13052に送信され、かつ、フロー制御ポリシの実行者がホスト13051にスイッチされたことを示すために用いられるべきインジケーションメッセージを、仮想マシン13052に送信するようにさらに構成される。
本実施形態において、プロセッサ1301がホスト13052又は仮想マシン13051の転送処理されるべきパケットを処理するベースとなるフロー制御ポリシは、例えば、サービス品質に基づくフロー制御ポリシ及び/又はアクセス制御リストに基づくフロー制御ポリシであってよい。勿論、フロー制御ポリシは、複数の他の要素を参照するフロー制御ポリシであってもよい。
サービス品質に基づくフロー制御ポリシにおいて、パケットに対する転送処理を実行する特定の態様(特定の転送処理態様は、パケットを遅延させて送信、パケットを遅延なく送信、又はパケットを破棄してよい等)は、主に、転送処理されるべきパケットに対応するサービス優先度に基づいて決定される。例えば、複数の転送処理されるべきパケットが現在キャッシュに存在するとして、より高いサービス優先度に対応するパケットは、より短い遅延で、又はさらに遅延なく送信されてよく、より低いサービス優先度に対応するパケットは、より長い遅延で送信されてよく、設定された優先度閾値より低いサービス優先度に対応する転送処理されるべきパケットは、さらに破棄されてよい。これは、優先度の高いサービスのサービス品質を可能な限り確保することに寄与する。すなわち、サービス品質に基づいて、フロー制御ポリシに従って転送処理されるべきパケットに対する転送処理を実行する段階は、具体的には、転送処理されるべきパケットのサービス優先度に対応する転送処理態様に従って転送処理されるべきパケットに対する転送処理を実行する段階を含んでよい。
アクセス制御リストに基づくフロー制御ポリシにおいて、パケットに対する転送処理を実行する特定の態様は、主に、転送処理されるべきパケットに含まれる情報がアクセス制御リストに含まれる記録に一致するか否かに基づいて決定される。例えば、アクセス制御リストは、(ブラックリストと同様の)制限されたアクセス制御リストである。制限されたアクセス制御リストが転送処理されるべきパケットのソース/デスティネーションアドレス、アプリケーション層プロトコルタイプ、もしくはトランスポート層プロトコルタイプ、及び/又はパケットヘッダに含まれる特定のキーワードのような情報に一致する記録を有する場合には、転送処理されるべきパケットに対する転送処理を実行する態様は、パケットを直接破棄してよい。反対に、制限されたアクセス制御リストが転送処理されるべきパケットのソース/デスティネーションアドレス、アプリケーション層プロトコルタイプ、もしくはトランスポート層プロトコルタイプ、及び/又はパケットヘッダに含まれる特定のキーワードのような情報に一致する記録を有さない場合には、転送処理されるべきパケットに対する転送処理を実行する態様は、パケットを転送してよい。他の例では、アクセス制御リストは、(ホワイトリストと同様の)許可されたアクセス制御リストである。許可されたアクセス制御リストが転送処理されるべきパケットのソース/デスティネーションアドレス、アプリケーション層プロトコルタイプ、もしくはトランスポート層プロトコルタイプ、及び/又はパケットヘッダに含まれる特定のキーワードのような情報に一致する記録を有さない場合には、転送処理されるべきパケットに対する転送処理を実行する態様は、パケットを直接破棄してよい。許可されたアクセス制御リストが転送処理されるべきパケットのソース/デスティネーションアドレス、アプリケーション層プロトコルタイプ、もしくはトランスポート層プロトコルタイプ、及び/又はパケットヘッダに含まれる特定のキーワードのような情報に一致する記録を有する場合には、転送処理されるべきパケットに対する転送処理を実行する態様は、パケットを転送してよい。複数の他の場合は、類推によって処理されてよい。
本発明のいくつかの実施形態において、仮想マシン13052によってホスト13051に送信されるべき実行者交渉要求を、プロセッサ1301がホスト13051に送信することは、
仮想マシン13052が、ユーザモードプロセスによって開始された交渉開始要求を受信した後で、仮想マシン13052によってホスト13051に送信されるべき実行者交渉要求を、プロセッサ1301によってホスト13051に送信する段階、又は、仮想マシン13052が交渉開始要求をホスト13051から受信した後で、仮想マシン13052によってホスト13051に送信されるべき実行者交渉要求を、プロセッサ1301によってホスト13051に送信する段階
を含んでよい。
本発明のいくつかの実施形態において、ホスト13051と仮想マシン13052との間で、仮想マシン13052のフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉する段階は、仮想マシン13052に配置されたプレロードクライアントとホストに配置されたプレロードサーバ13051との間で接続が確立された後で、プロセッサ1301によって確立された接続を用いることによって、ホスト13051と仮想マシン13052との間で、仮想マシン13052のフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉する段階を含んでよい。
本実施形態において、コンピューティングノード1300の各ユニットの複数の機能は、複数の前述された方法の実施形態において説明された方法に従って具体的に実装されてよいことが理解されよう。その具体的な実装プロセスについては、複数の前述された実施形態において関連する説明を参照し、詳細は本明細書において再度説明されない。
前述の解決手段が用いられた後で、仮想マシン13052及びホスト13051がフロー制御ポリシの実行者を交渉するメカニズムがコンピューティングノード1300に導入され、これにより、プロセッサ1301の助けによって、仮想マシン13052及びホスト13051の両方は、フロー制御ポリシの実行者となる機会を有する。これにより、仮想マシン13052が、フロー制御ポリシを実行可能となり、可能な限り早くパケットに対するフロー制御を実行することに寄与し、効果的ではない処理の削減ならびに効果的ではないパケットフローによる帯域幅及びホスト13051のアドレス空間の占有の縮小に、さらに寄与することが理解されよう。この解決手段は、仮想マシン13052のアウトバウンドパケットフローに対する転送処理を実行するための、ホスト13051のアドレス空間の占有を縮小することに寄与することが理解されよう。さらに、フロー制御ポリシの実行者は、交渉によってに決定され、フロー制御ポリシ実行の信頼性向上に寄与する。
さらに、仮想マシン13052及びホスト13051の両方がフロー制御ポリシの実行をサポートする場合には、仮想マシン13052は、フロー制御ポリシの実行において優先される。これは、可能な限り早くパケットに対するフロー制御を実行することにさらに寄与し、効果的ではない処理及び無効なパケットフローによって占有される帯域幅の縮小にさらに寄与する。
本発明の実施形態は、コンピュータ記憶媒体をさらに提供し、コンピュータ記憶媒体は、プログラムを格納してよく、プログラムが実行された場合には、複数の方法の実施形態において説明されるパケットフロー制御方法の一部又は全部の段階が含まれる。
説明を容易にすべく、前述された方法の実施形態の各々は、一連の動作の組み合わせとして説明されているが、しかしながら、いくつかの段階は、本発明に従って、他のシーケンスで、又は同時にに実行可能であるので、当業者であれば、本発明は説明された動作シーケンスに限定されるものではないと認識するはずであることに留意されたい。さらに、当業者であれば、本明細書において説明された複数の実施形態は例示的な実施形態であり、これらに伴う動作及びモジュールは、本発明において必ずしも必要とされるものではないことを認識するはずである。
複数の前述された実施形態において、各実施形態の説明は、異なる部分を強調する。ある実施形態において詳細に説明されない部分については、複数の他の実施形態において関連する説明を参照されたい。
本願において提供されるいくつかの実施形態において、開示された装置は、他の態様で実装されてよいことを理解されたい。例えば、説明された装置の実施形態は、例示的なものに過ぎない。例えば、前述されたユニットの分割は、論理的な機能の分割に過ぎず、実際の実装においては、他の分割であってよい。例えば、複数のユニット又はコンポーネントは、他のシステムに組み合わせられ、又はこれに統合されてよく、あるいは、いくつかの機能は、無視され又は実行されなくてよい。さらに、図示もしくは説明された相互の連結又は直接的な連結又は通信接続は、いくつかのインタフェースを介して実装されてよい。複数の装置又はユニットの間における間接的な連結又は通信接続は、電子又は他の形式で実装されてよい。
複数の別個の部分として説明されたユニットは、物理的に別個であってよく、又はそうでなくてもよい。複数のユニットとして図示された部分は、物理的なユニットであってよく、又はそうでなくてもよく、1つの位置に配置されてよく、あるいは複数のネットワークユニット上で分散されてよい。複数のユニットの一部又は全部は、複数の実施形態の解決手段の目的を実現するための実際の必要性に従って選択されてよい。
さらに、本発明の複数の実施形態における複数の機能ユニットは、1つの処理ユニットに統合されてよく、あるいは、各ユニットは物理的に単独で存在してよく、あるいは、2つ又はそれより多くのユニットが1つのユニットに統合される。統合されたユニットは、ハードウェアの形式で実装されてよく、又はソフトウェア機能ユニットの形式で実装されてよい。
統合されたユニットがソフトウェア機能ユニットの形式で実装され、別個の製品として販売又は使用される場合には、統合されたユニットは、コンピュータ可読記憶媒体に格納されてよい。そのような理解に基づいて、本発明の複数の技術的解決手段は、本質的に又は部分的に、従来技術に寄与し、あるいは、複数の技術的解決手段の全部又は一部は、ソフトウェア製品の形式で実装されてよい。ソフトウェア製品は、記憶媒体に格納され、本発明の複数の実施形態において説明される複数の方法の複数の段階の全部又は一部を実行するように、コンピュータデバイス(メモリに接続されるパーソナルコンピュータ、サーバ、ネットワークデバイス、又はプロセッサであってよい)に命令するためのいくつかの命令を含む。前述の記憶媒体は、USBフラッシュドライブ、リードオンリメモリ(Read−Only Memory、ROM)、ランダムアクセスメモリ(Random Access Memory、RAM)、リムーバブルハードディスク、磁気ディスク、又は光ディスクのような、プログラムコードを格納可能な任意の媒体を含む。
複数の前述された実施形態は、本発明の複数の技術的解決手段を説明することを意図するものに過ぎず、本発明を限定することを意図するものではない。本発明は、複数の前述された実施形態を参照して詳細に説明されるが、当業者であれば、彼らが本発明の複数の実施形態の技術的解決手段の範囲から逸脱することなく、複数の前述された実施形態において説明された技術的解決手段にさらに変更を加えること、又はこれらのいくつかの技術的特徴に均等な置換をなすことが可能であることを理解するはずである。
本願は、中国特許庁に2013年12月30日に出願され、発明の名称を「パケットフロー制御方法、関連装置、及びコンピューティングノード」とする中国特許出願第201310746701.5号に対する優先権を主張し、その全体は、参照により本明細書に組み込まれる。
本発明は、コンピュータ技術分野に関し、詳細には、パケットフロー制御方法、関連装置、及びコンピューティングノードに関する。
仮想化技術は、最下層のハードウェアデバイスをより上位層のオペレーティングシステム及びアプリケーションプログラムから分離するデカップリング技術である。図1に示されるように、仮想マシンモニタ(VMM)層は、最下層のハードウェアリソースを直接管理するために導入され、最下層のハードウェアとは別個の仮想マシン(virtual machine、VM)は、より上位層のオペレーティングシステム及びアプリケーションプログラムによる使用のために形成される。
現在普及しているクラウドコンピューティング(cloud computing)プラットフォームをサポートする重要な最下層技術の1つとして、仮想化技術は、物理デバイスのリソース使用効率を大幅に向上させることができる。従来の物理サーバと比較して、仮想マシンは、より良い分離及びカプセル化性能を有する。
いくつかの既存の仮想化状況において、ホスト(Host)は、仮想マシンのアウトバウンドフローに対する他のポリシに基づいて、帯域幅制限又はアクセス制御を実行する。例えば、VMがパケットを送信した後で、ホストは最初に、VMのアドレス空間からホストのアドレス空間にパケットをコピーする。ホストは、パケットが送信制限を超過したか否かを決定し、送信制限を超過したパケットを概して直接破棄又は最初にキャッシュし、キャッシュ制限を超過したパケットを概して直接破棄する。
従来技術は、以下の欠点を有する。すなわち、ホストがフロー制御を実行する既存のメカニズムは、場合によっては(例えば、VMの数が大きいいくつかの状況、又はVMによって送信されるパケットの数が大きい状況においては)深刻な処理遅延を引き起こすことがあり、ホストの大量のアドレス空間が占有されるという事態を引き起こす。
本発明の複数の実施形態は、仮想マシンのアウトバウンドパケットフロー処理のために占有されるホストのアドレス空間を縮小することを目的とするフロー制御方法、関連装置、及びコンピューティングノードを提供する。
前述の技術的問題を解決すべく、本発明の複数の実施形態は、以下の技術的解決手段を提供する。
本発明の複数の実施形態の第1の態様は、パケットフロー制御方法を提供し、その方法は、
仮想マシンとホストとの間で、仮想マシンのフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉する段階と、
フロー制御ポリシの交渉された実行者が仮想マシンであると決定された場合には、仮想マシンによって、フロー制御ポリシに基づいて、転送処理されるべきパケットに対する転送処理を実行する段階と、フロー制御ポリシの交渉された実行者がホストであると決定された場合には、転送処理されるべきパケットを、仮想マシンによってホストに送信し、これにより、ホストは、フロー制御ポリシに基づいて、受信されたパケットに対する転送処理を実行する段階と、
を含んでよい。
第1の態様を参照すると、第1の可能な実装態様において、仮想マシンとホストとの間で、仮想マシンのフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉する段階は、
仮想マシンによって、仮想マシンのフロー制御機能についての記述情報を含む実行者交渉要求をホストに送信する段階と、
仮想マシンがホストによって送信された交渉確認インジケーションを受信した場合には、ホストがフロー制御機能についての記述情報に従って、仮想マシンがフロー制御ポリシの実行をサポートすると決定した後で、仮想マシンによって、フロー制御ポリシの交渉された実行者が仮想マシンであると決定する段階と、ホストがフロー制御機能についての記述情報に従って、仮想マシンがフロー制御ポリシの実行をサポートしないと決定した後で、仮想マシンがホストによって送信された交渉不確認インジケーションを受信した場合には、仮想マシンによって、フロー制御ポリシの交渉された実行者がホストであると決定する段階と、を含む、
又は、
仮想マシンとホストとの間で、仮想マシンのフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉する段階は、
仮想マシンによって、仮想マシンのフロー制御機能についての記述情報を含む実行者交渉要求をホストに送信する段階であって、フロー制御機能についての記述情報は、その実行が仮想マシンによってサポートされるフロー制御ポリシのバージョンを記述するために用いられる、段階と、
ホストがフロー制御機能についての記述情報に従って、仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートすると決定した後で、仮想マシンがホストによって送信された交渉確認インジケーションを受信した場合には、仮想マシンによって、フロー制御ポリシの交渉された実行者が仮想マシンであると決定する段階と、
ホストがフロー制御機能についての記述情報に従って、仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートしないと決定した後で、仮想マシンがホストによって送信された交渉不確認インジケーションを受信した場合には、仮想マシンによって、フロー制御ポリシの交渉された実行者がホストであると決定する段階と、を含む、
又は、
仮想マシンとホストとの間で、仮想マシンのフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉する段階は、
仮想マシンによって、仮想マシンのフロー制御機能についての記述情報を含む実行者交渉要求をホストに送信する段階と、
仮想マシンがホストによって送信された交渉確認インジケーションを受信した場合には、ホストがフロー制御機能についての記述情報に従って、仮想マシンがフロー制御ポリシの実行をサポートすると決定した後で、仮想マシンによって、フロー制御ポリシの交渉された実行者が仮想マシンであると決定する段階と、仮想マシンが、実行者交渉要求に応答してホストによって送信された交渉確認インジケーションを、第1の設定期間内に受信しなかった場合には、仮想マシンによって、フロー制御ポリシの交渉された実行者がホストであると決定する段階と、を含む、
又は、
仮想マシンとホストとの間で、仮想マシンのフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉する段階は、
仮想マシンによって、仮想マシンのフロー制御機能についての記述情報を含む実行者交渉要求をホストに送信する段階であって、フロー制御機能についての記述情報は、その実行が仮想マシンによってサポートされるフロー制御ポリシのバージョンを記述するために用いられる、段階と、
ホストがフロー制御機能についての記述情報に従って、仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートすると決定した後で、仮想マシンがホストによって送信された交渉確認インジケーションを受信した場合には、仮想マシンによって、フロー制御ポリシの交渉された実行者が仮想マシンであると決定する段階と、
仮想マシンが、実行者交渉要求に応答してホストによって送信された交渉確認インジケーションを、第1の設定期間内に受信しなかった場合には、仮想マシンによって、フロー制御ポリシの交渉された実行者がホストであると決定する段階と、を含む、
又は、
仮想マシンとホストとの間で、仮想マシンのフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉する段階は、
仮想マシンによって、仮想マシンのフロー制御機能についての記述情報を含む実行者交渉要求をホストに送信する段階と、
ホストがフロー制御機能についての記述情報に従って、仮想マシンがフロー制御ポリシの実行をサポートしないと決定した後で、仮想マシンがホストによって送信された交渉不確認インジケーションを受信した場合には、仮想マシンによって、フロー制御ポリシの交渉された実行者がホストであると決定する段階と、仮想マシンが、実行者交渉要求に応答してホストによって送信された交渉不確認インジケーションを、第2の設定期間内に受信しなかった場合には、仮想マシンによって、フロー制御ポリシの交渉された実行者が仮想マシンであると決定する段階と、を含む、
又は、
仮想マシンとホストとの間で、仮想マシンのフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉する段階は、
仮想マシンによって、仮想マシンのフロー制御機能についての記述情報を含む実行者交渉要求をホストに送信する段階であって、フロー制御機能についての記述情報は、その実行が仮想マシンによってサポートされるフロー制御ポリシのバージョンを記述するために用いられる、段階と、ホストがフロー制御機能についての記述情報に従って、仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートしないと決定した後で、仮想マシンがホストによって送信された交渉不確認インジケーションを受信した場合には、仮想マシンによって、フロー制御ポリシの交渉された実行者がホストであると決定する段階と、仮想マシンが、実行者交渉要求に応答してホストによって送信された交渉不確認インジケーションを、第2の設定期間内に受信しなかった場合には、仮想マシンによって、フロー制御ポリシの交渉された実行者が仮想マシンであると決定する段階と、を含む。
第1の態様の第1の可能な実装態様を参照すると、第2の可能な実装態様において、交渉確認インジケーションは、フロー制御ポリシを含み、
仮想マシンによって、フロー制御ポリシに基づいて、転送処理されるべきパケットに対する転送処理を実行する段階は、
仮想マシンによって、交渉確認インジケーションに含まれるフロー制御ポリシに基づいて、転送処理されるべきパケットに対する転送処理を実行する段階を含む。
第1の態様の第1の可能な実装態様又は第1の態様の第2の可能な実装態様を参照すると、第3の可能な実装態様において、仮想マシンによって、仮想マシンのフロー制御機能についての記述情報を含む実行者交渉要求をホストに送信する段階は、
仮想マシンによって、ユーザモードプロセスによって開始された交渉開始要求を受信した後で、仮想マシンのフロー制御機能についての記述情報を含む実行者交渉要求をホストに送信する段階、又は、仮想マシンによって、ホストから交渉開始要求を受信した後で、仮想マシンのフロー制御機能についての記述情報を含む実行者交渉要求をホストに送信する段階を含む。
第1の態様を参照すると、第1の態様の第1の可能な実装態様、第1の態様の第2の可能な実装態様、又は第1の態様の第3の可能な実装態様は、第4の可能な実装態様において、仮想マシンとホストとの間で、仮想マシンのフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉する段階は、仮想マシンに配置されたプレロードクライアントとホストに配置されたプレロードサーバとの間の接続が確立された後で、仮想マシンとホストとの間で、確立された接続に基づいてプレロードクライアントとプレロードサーバとによって、仮想マシンのフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉する段階を含む。
第1の態様の第4の可能な実装態様を参照すると、第5の可能な実装態様において、その方法は、フロー制御ポリシの交渉された実行者が仮想マシンであると決定された後で、プレロードクライアントによって、接続を介してプレロードサーバにハートビートメッセージを定期的に送信する段階をさらに含む。
第1の態様を参照すると、第1の態様の第1の可能な実装態様、第1の態様の第2の可能な実装態様、第1の態様の第3の可能な実装態様、第1の態様の第4の可能な実装態様、又は第1の態様の第5の可能な実装態様は、第6の可能な実装態様において、フロー制御ポリシは、サービス品質に基づくフロー制御ポリシ及び/又はアクセス制御リストに基づくフロー制御ポリシである。
本発明の複数の実施形態の第2の態様は、パケットフロー制御方法を提供し、その方法は、
仮想マシンとホストとの間で、仮想マシンのフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉する段階と、
フロー制御ポリシの交渉された実行者がホストであると決定された場合には、ホストによって、仮想マシンからパケットを受信した後で、フロー制御ポリシに基づいて、受信されたパケットに対する転送処理を実行する段階と、
を含んでよい。
第2の態様を参照すると、第1の可能な実装態様において、
仮想マシンとホストとの間で、仮想マシンのフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉する段階は、
仮想マシンによって送信され、かつ、仮想マシンのフロー制御機能についての記述情報を含む実行者交渉要求を、ホストによって受信する段階と、
ホストがフロー制御機能についての記述情報に従って、仮想マシンがフロー制御ポリシの実行をサポートすると決定した場合には、交渉確認インジケーションを仮想マシンに送信する段階であって、交渉確認インジケーションは、フロー制御ポリシの交渉された実行者が仮想マシンであることを示す、段階と、
ホストがフロー制御機能についての記述情報に従って、仮想マシンがフロー制御ポリシの実行をサポートしないと決定した場合には、交渉不確認インジケーションを仮想マシンに送信する段階であって、交渉不確認インジケーションは、フロー制御ポリシの交渉された実行者がホストであることを示す、段階と、を含む、
又は、
仮想マシンとホストとの間で、仮想マシンのフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉する段階は、
仮想マシンによって送信され、かつ、仮想マシンのフロー制御機能についての記述情報を含む実行者交渉要求を、ホストによって受信する段階であって、フロー制御機能についての記述情報は、その実行が仮想マシンによってサポートされるフロー制御ポリシのバージョンを記述するために用いられる、段階と、
ホストがフロー制御機能についての記述情報に従って、仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートすると決定した場合には、交渉確認インジケーションを仮想マシンに送信する段階であって、交渉確認インジケーションは、フロー制御ポリシの交渉された実行者が仮想マシンであることを示す、段階と、
ホストがフロー制御機能についての記述情報に従って、仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートしないと決定した場合には、交渉不確認インジケーションを仮想マシンに送信する段階であって、交渉不確認インジケーションは、フロー制御ポリシの交渉された実行者がホストであることを示す、段階と、を含む。
第2の態様又は第2の態様の第1の可能な実装態様を参照すると、第2の可能な実装態様において、仮想マシンとホストとの間で、仮想マシンのフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉する段階は、ホストのプレロードサーバと仮想マシンのプレロードクライアントとの間で接続が確立された後で、接続を用いることによってプレロードサーバとプレロードクライアントとにより、仮想マシンとホストとの間で、仮想マシンのフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉する段階を含む。
第2の態様、第2の態様の第1の可能な実装態様、又は第2の態様の第2の可能な実装態様を参照すると、第3の可能な実装態様において、方法は、
フロー制御ポリシの交渉された実行者が仮想マシンであると決定された後で、ハートビートメッセージが設定期間内に仮想マシンから受信されなかった場合には、フロー制御ポリシの実行者がホストにスイッチされたことを示すインジケーションメッセージホストによって仮想マシンに送信する段階
をさらに含む。
第2の態様、第2の態様の第1の可能な実装態様、第2の態様の第2の可能な実装態様、又は第2の態様の第3の可能な実装態様を参照すると、第4の可能な実装態様において、フロー制御ポリシは、サービス品質に基づくフロー制御ポリシ及び/又はアクセス制御リストに基づくフロー制御ポリシである。
本発明の複数の実施形態の第3の態様は、パケットフロー制御方法を提供し、その方法は、
プロセッサによって、ホストと仮想マシンとの間で、仮想マシンのフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉する段階と、
フロー制御ポリシの交渉された実行者が仮想マシンである場合には、プロセッサによって、フロー制御ポリシに基づいて、仮想マシンの転送処理されるべきパケットに対する転送処理を実行する段階と、フロー制御ポリシの交渉された実行者がホストである場合には、プロセッサによって、仮想マシンの転送処理されるべきパケットを仮想マシンからホストに送信し、フロー制御ポリシに基づいてプロセッサによって、ホストによって受信された転送処理されるべきパケットに対する転送処理を実行する段階と、を含んでよい。
第3の態様を参照すると、第1の可能な実装態様において、
プロセッサによってホストと仮想マシンとの間で、仮想マシンのフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉する段階は、仮想マシンによってホストに送信されるべき実行者交渉要求を、プロセッサによってホストに送信する段階であって、実行者交渉要求は、仮想マシンのフロー制御機能についての記述情報を含む、段階と、
ホストが実行者交渉要求を受信した後で、プロセッサがフロー制御機能についての記述情報に従って、仮想マシンがフロー制御ポリシの実行をサポートすると決定した場合には、ホストによって仮想マシンに送信されるべき交渉確認インジケーションを、プロセッサによって仮想マシンに送信する段階であって、交渉確認インジケーションは、フロー制御ポリシの交渉された実行者が仮想マシンであることを示す、段階、及び/又は、プロセッサがフロー制御機能についての記述情報に従って、仮想マシンがフロー制御ポリシの実行をサポートしないと決定した場合には、ホストによって仮想マシンに送信されるべき交渉不確認インジケーションを、プロセッサによって仮想マシンに送信する段階であって、交渉不確認インジケーションは、フロー制御ポリシの交渉された実行者がホストであることを示す、段階と、を含む、
又は、
プロセッサによってホストと仮想マシンとの間で、仮想マシンのフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉する段階は、仮想マシンによってホストに送信されるべき実行者交渉要求を、プロセッサによってホストに送信する段階であって、実行者交渉要求は、仮想マシンのフロー制御機能についての記述情報を含み、フロー制御機能についての記述情報は、その実行が仮想マシンによってサポートされるフロー制御ポリシのバージョンを記述するために用いられる、段階と、
ホストが実行者交渉要求を受信した後で、プロセッサがフロー制御機能についての記述情報に従って、仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートすると決定した場合には、ホストによって仮想マシンに送信されるべき交渉確認インジケーションを、プロセッサによって仮想マシンに送信する段階であって、交渉確認インジケーションは、フロー制御ポリシの交渉された実行者が仮想マシンであることを示す、段階、及び/又は、プロセッサがフロー制御機能についての記述情報に従って、仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートしないと決定した場合には、ホストによって仮想マシンに送信されるべき交渉不確認インジケーションを、プロセッサによって仮想マシンに送信する段階であって、交渉不確認インジケーションは、フロー制御ポリシの交渉された実行者がホストであることを示す、段階と、
を含む。
第3の態様又は第3の態様の第1の可能な実装態様を参照すると、第2の可能な実装態様において、交渉確認インジケーションは、フロー制御ポリシを含み、
フロー制御ポリシに基づいて、仮想マシンの転送処理されるべきパケットに対する転送処理を実行する段階は、交渉確認インジケーションに含まれるフロー制御ポリシに基づいて、仮想マシンの転送処理されるべきパケットに対する転送処理を実行する段階を含む。
第3の態様、第3の態様の第1の可能な実装態様、又は第3の態様の第2の可能な実装態様を参照すると、第3の可能な実装態様において、フロー制御ポリシの交渉された実行者が仮想マシンであると決定された後で、ホストが設定期間内に仮想マシンからハートビートメッセージを受信しなかった場合には、ホストによって仮想マシンに送信され、かつ、フロー制御ポリシの実行者がホストにスイッチされたことを示すために用いられるべきインジケーションメッセージを、プロセッサによって仮想マシンに送信する。
第3の態様、第3の態様の第1の可能な実装態様、第3の態様の第2の可能な実装態様、又は第3の態様の第3の可能な実装態様を参照すると、第4の可能な実装態様において、
フロー制御ポリシは、サービス品質に基づくフロー制御ポリシ及び/又はアクセス制御リストに基づくフロー制御ポリシである。
第3の態様、第3の態様の第1の可能な実装態様、第3の態様の第2の可能な実装態様、第3の態様の第3の可能な実装態様、又は第3の態様の第4の可能な実装態様を参照すると、第5の可能な実装態様において、仮想マシンによってホストに送信されるべき実行者交渉要求を、ホストに送信する段階は、
仮想マシンが、ユーザモードプロセスによって開始された交渉開始要求を受信した後で、仮想マシンによってホストに送信されるべき実行者交渉要求をホストに送信する段階、又は、仮想マシンが交渉開始要求をホストから受信した後で、仮想マシンによってホストに送信されるべき実行者交渉要求を、ホストに送信する段階を含む。
第3の態様、第3の態様の第1の可能な実装態様、第3の態様の第2の可能な実装態様、第3の態様の第3の可能な実装態様、第3の態様の第4の可能な実装態様、又は第3の態様の第5の可能な実装態様を参照すると、第6の可能な実装態様において、ホストと仮想マシンとの間で、仮想マシンのフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉する段階は、仮想マシンに配置されたプレロードクライアントとホストに配置されたプレロードサーバとの間の接続が確立された後で、確立された接続を用いることによって、仮想マシンとホストとの間で、仮想マシンのフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉する段階を含む。
本発明の複数の実施形態の第5の態様は、仮想マシンを提供し、仮想マシンは、
仮想マシンとホストとの間で、仮想マシンのフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉するように構成される第1の交渉ユニットと、
フロー制御ポリシの交渉された実行者が仮想マシンであると決定された場合には、フロー制御ポリシに基づいて、転送処理されるべきパケットに対する転送処理を実行し、フロー制御ポリシの交渉された実行者がホストであると決定された場合には、転送処理されるべきパケットをホストに送信し、これにより、ホストが、フロー制御ポリシに基づいて、受信されたパケットに対する転送処理を実行するように構成されるパケット処理ユニットと、
を含んでよい。
第5の態様を参照すると、第1の可能な実装態様において、
第1の交渉ユニットは、仮想マシンのフロー制御機能についての記述情報を含む実行者交渉要求をホストに送信し、交渉確認インジケーションが受信された場合には、フロー制御ポリシの交渉された実行者が仮想マシンであると決定し、交渉不確認インジケーションが受信された場合には、フロー制御ポリシの交渉された実行者がホストであると決定するように具体的に構成され、交渉確認インジケーションは、ホストがフロー制御機能についての記述情報に従って、仮想マシンがフロー制御ポリシの実行をサポートすると決定した後で、ホストによって送信され、交渉不確認インジケーションは、ホストがフロー制御機能についての記述情報に従って、仮想マシンがフロー制御ポリシの実行をサポートしないと決定した後で、ホストによって送信される、
又は、
第1の交渉ユニットは、仮想マシンのフロー制御機能についての記述情報を含む実行者交渉要求をホストに送信し、ホストがフロー制御機能についての記述情報に従って、仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートすると決定した後で、ホストによって送信された交渉確認インジケーションが受信された場合には、フロー制御ポリシの交渉された実行者が仮想マシンであると決定し、ホストがフロー制御機能についての記述情報に従って、仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートしないと決定した後で、ホストによって送信された交渉不確認インジケーションが受信された場合には、フロー制御ポリシの交渉された実行者がホストであると決定するように具体的に構成され、フロー制御機能についての記述情報は、その実行が仮想マシンによってサポートされるフロー制御ポリシのバージョンを記述するために用いられる、
又は、
第1の交渉ユニットは、仮想マシンのフロー制御機能についての記述情報を含む実行者交渉要求をホストに送信し、交渉確認インジケーションが受信された場合には、フロー制御ポリシの交渉された実行者が仮想マシンであると決定し、実行者交渉要求に応答してホストによって送信された交渉確認インジケーションが第1の設定期間内に受信されなかった場合には、フロー制御ポリシの交渉された実行者がホストであると決定するように具体的に構成され、交渉確認インジケーションは、ホストがフロー制御機能についての記述情報に従って、仮想マシンがフロー制御ポリシの実行をサポートすると決定した後で、ホストによって送信される、
又は、
第1の交渉ユニットは、仮想マシンのフロー制御機能についての記述情報を含む実行者交渉要求をホストに送信し、ホストがフロー制御機能についての記述情報に従って、仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートすると決定した後で、ホストによって送信された交渉確認インジケーションが受信された場合には、フロー制御ポリシの交渉された実行者が仮想マシンであると決定し、実行者交渉要求に応答してホストによって送信された交渉確認インジケーションが第1の設定期間内に受信されなかった場合には、フロー制御ポリシの交渉された実行者がホストであると決定するように具体的に構成され、フロー制御機能についての記述情報は、その実行が仮想マシンによってサポートされるフロー制御ポリシのバージョンを記述するために用いられる、
又は、
第1の交渉ユニットは、仮想マシンのフロー制御機能についての記述情報を含む実行者交渉要求をホストに送信し、交渉不確認インジケーションが受信された場合には、フロー制御ポリシの交渉された実行者がホストであると決定し、実行者交渉要求に応答してホストによって送信された交渉不確認インジケーションが第2の設定期間内に受信されなかった場合には、フロー制御ポリシの交渉された実行者が仮想マシンであると決定するように具体的に構成され、交渉不確認インジケーションは、ホストがフロー制御機能についての記述情報に従って、仮想マシンがフロー制御ポリシの実行をサポートしないと決定した後で、ホストによって送信される、
又は、
第1の交渉ユニットは、仮想マシンのフロー制御機能についての記述情報を含む実行者交渉要求をホストに送信し、ホストがフロー制御機能についての記述情報に従って、仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートしないと決定した後で、ホストによって送信された交渉不確認インジケーションが受信された場合には、フロー制御ポリシの交渉された実行者がホストであると決定し、実行者交渉要求に応答してホストによって送信された交渉不確認インジケーションが第2の設定期間内に受信されなかった場合には、フロー制御ポリシの交渉された実行者が仮想マシンであると決定するように具体的に構成され、フロー制御機能についての記述情報は、その実行が仮想マシンによってサポートされるフロー制御ポリシのバージョンを記述するために用いられる。
第5の態様又は第5の態様の第1の可能な実装態様を参照すると、第2の可能な実装態様において、仮想マシンは、
フロー制御ポリシの交渉された実行者が仮想マシンであると決定された後で、ハートビートメッセージをホストに定期的に送信するように構成される送信ユニット
をさらに含む。
第5の態様、第5の態様の第1の可能な実装態様、又は第5の態様の第2の可能な実装態様を参照すると、第3の可能な実装態様において、
フロー制御ポリシは、サービス品質に基づくフロー制御ポリシ及び/又はアクセス制御リストに基づくフロー制御ポリシである。
第5の態様の第1の可能な実装態様、第5の態様の第2の可能な実装態様、又は第5の態様の第3の可能な実装態様を参照すると、第4の可能な実装態様において、仮想マシンのフロー制御機能についての記述情報を含む実行者交渉要求をホストに送信するために、第1の交渉ユニットは、ユーザモードプロセスによって開始された交渉開始要求が受信された後で、仮想マシンのフロー制御機能についての記述情報を含む実行者交渉要求をホストに送信し、又は、交渉開始要求がホストから受信された後で、仮想マシンのフロー制御機能についての記述情報を含む実行者交渉要求をホストに送信するように具体的に構成される。
本発明の複数の実施形態の第6の態様は、ホストを提供し、ホストは、
仮想マシンとホストとの間で、仮想マシンのフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉するように構成される第2の交渉ユニットと、
フロー制御ポリシの交渉された実行者がホストであると決定された場合には、フロー制御ポリシに基づいて、受信されたパケットに対する転送処理を、パケットを仮想マシンから受信した後で実行するように構成されるパケット処理ユニットと、
を含む。
第6の態様を参照すると、第1の可能な実装態様において、
第2の交渉ユニットは、仮想マシンによって送信され、かつ、仮想マシンのフロー制御機能についての記述情報を含む実行者交渉要求を受信し、フロー制御機能についての記述情報に従って、仮想マシンがフロー制御ポリシの実行をサポートすると決定された場合には、交渉確認インジケーションを仮想マシンに送信し、フロー制御機能についての記述情報に従って、仮想マシンがフロー制御ポリシの実行をサポートしないと決定された場合には、交渉不確認インジケーションを仮想マシンに送信するように具体的に構成され、交渉確認インジケーションは、フロー制御ポリシの交渉された実行者が仮想マシンであることを示し、交渉不確認インジケーションは、フロー制御ポリシの交渉された実行者がホストであることを示す、
又は、
第2の交渉ユニットは、仮想マシンによって送信され、かつ、仮想マシンのフロー制御機能についての記述情報を含む実行者交渉要求を受信し、フロー制御機能についての記述情報に従って、仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートすると決定された場合には、交渉確認インジケーションを仮想マシンに送信し、フロー制御機能についての記述情報に従って、仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートしないと決定された場合には、交渉不確認インジケーションを仮想マシンに送信するように具体的に構成され、フロー制御機能についての記述情報は、その実行が仮想マシンによってサポートされるフロー制御ポリシのバージョンを記述するために用いられ、交渉確認インジケーションは、フロー制御ポリシの交渉された実行者が仮想マシンであることを示し、交渉不確認インジケーションは、フロー制御ポリシの交渉された実行者がホストであることを示す。
第6の態様又は第6の態様の第1の可能な実装態様を参照すると、第2の可能な実装態様において、パケット処理ユニットは、フロー制御ポリシの交渉された実行者が仮想マシンであると決定された後で、ハートビートメッセージが設定期間内に仮想マシンから受信されなかった場合には、フロー制御ポリシの実行者がホストにスイッチされたことを示すために用いられるインジケーションメッセージを仮想マシンに送信するようにさらに構成される。
第6の態様、第6の態様の第1の可能な実装態様、又は第6の態様の第2の可能な実装態様を参照すると、第3の可能な実装態様において、
フロー制御ポリシは、サービス品質に基づくフロー制御ポリシ及び/又はアクセス制御リストに基づくフロー制御ポリシである。
本発明の複数の実施形態の第7の態様は、コンピューティングノードを提供し、コンピューティングノードは、ハードウェア層と、ハードウェア層において動作するホストと、ホスト上で動作する少なくとも1つの仮想マシンと、を含んでよく、
仮想マシンは、仮想マシンとホストとの間で、仮想マシンのフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉し、フロー制御ポリシの交渉された実行者が仮想マシンであると決定された場合には、フロー制御ポリシに基づいて、転送処理されるべきパケットに対する転送処理を実行し、フロー制御ポリシの交渉された実行者がホストであると決定された場合には、転送処理されるべきパケットをホストに送信するように構成され、
ホストは、フロー制御ポリシの交渉された実行者がホストであると決定された場合には、フロー制御ポリシに基づいて、受信されたパケットに対する転送処理を、パケットを仮想マシンから受信した後で実行するように構成される。
第7の態様を参照すると、第1の可能な実装態様において、
仮想マシンとホストとの間で、仮想マシンのフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉するために、仮想マシンは、仮想マシンのフロー制御機能についての記述情報を含む実行者交渉要求をホストに送信し、交渉確認インジケーションが受信された場合には、フロー制御ポリシの交渉された実行者が仮想マシンであると決定し、交渉不確認インジケーションが受信された場合には、フロー制御ポリシの交渉された実行者がホストであると決定するように具体的に構成され、交渉確認インジケーションは、ホストがフロー制御機能についての記述情報に従って、仮想マシンがフロー制御ポリシの実行をサポートすると決定した後で、ホストによって送信され、交渉不確認インジケーションは、ホストがフロー制御機能についての記述情報に従って、仮想マシンがフロー制御ポリシの実行をサポートしないと決定した後で、ホストによって送信される、
又は、
仮想マシンとホストとの間で、仮想マシンのフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉するために、仮想マシンは、仮想マシンのフロー制御機能についての記述情報を含む実行者交渉要求をホストに送信し、ホストがフロー制御機能についての記述情報に従って、仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートすると決定した後で、ホストによって送信された交渉確認インジケーションが受信された場合には、フロー制御ポリシの交渉された実行者が仮想マシンであると決定し、ホストがフロー制御機能についての記述情報に従って、仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートしないと決定した後で、ホストによって送信された交渉不確認インジケーションが受信された場合には、フロー制御ポリシの交渉された実行者がホストであると決定するように具体的に構成され、フロー制御機能についての記述情報は、その実行が仮想マシンによってサポートされるフロー制御ポリシのバージョンを記述するために用いられる、
又は、
仮想マシンとホストとの間で、仮想マシンのフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉するために、仮想マシンは、仮想マシンのフロー制御機能についての記述情報を含む実行者交渉要求をホストに送信し、交渉確認インジケーションが受信された場合には、フロー制御ポリシの交渉された実行者が仮想マシンであると決定し、実行者交渉要求に応答してホストによって送信された交渉確認インジケーションが第1の設定期間内に受信されなかった場合には、フロー制御ポリシの交渉された実行者がホストであると決定するように具体的に構成され、交渉確認インジケーションは、ホストがフロー制御機能についての記述情報に従って、仮想マシンがフロー制御ポリシの実行をサポートすると決定した後で、ホストによって送信される、
又は、
仮想マシンとホストとの間で、仮想マシンのフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉するために、仮想マシンは、仮想マシンのフロー制御機能についての記述情報を含む実行者交渉要求をホストに送信し、ホストによって送信された交渉確認インジケーションが、ホストがフロー制御機能についての記述情報に従って、仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートすると決定した後で受信された場合には、フロー制御ポリシの交渉された実行者が仮想マシンであると決定し、実行者交渉要求に応答してホストによって送信された交渉確認インジケーションが第1の設定期間内に受信されなかった場合には、フロー制御ポリシの交渉された実行者がホストであると決定するように具体的に構成され、フロー制御機能についての記述情報は、その実行が仮想マシンによってサポートされるフロー制御ポリシのバージョンを記述するために用いられる、
又は、
仮想マシンとホストとの間で、仮想マシンのフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉するために、仮想マシンは、仮想マシンのフロー制御機能についての記述情報を含む実行者交渉要求をホストに送信し、交渉不確認インジケーションが受信された場合には、フロー制御ポリシの交渉された実行者がホストであると決定し、実行者交渉要求に応答してホストによって送信された交渉不確認インジケーションが第2の設定期間内に受信されなかった場合には、フロー制御ポリシの交渉された実行者が仮想マシンであると決定するように具体的に構成され、交渉不確認インジケーションは、ホストがフロー制御機能についての記述情報に従って、仮想マシンがフロー制御ポリシの実行をサポートしないと決定した後で、ホストによって送信される、
又は、
仮想マシンとホストとの間で、仮想マシンのフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉するために、仮想マシンは、仮想マシンのフロー制御機能についての記述情報を含む実行者交渉要求をホストに送信し、ホストによって送信された交渉不確認インジケーションが、ホストがフロー制御機能についての記述情報に従って、仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートしないと決定した後で受信された場合には、フロー制御ポリシの交渉された実行者がホストであると決定し、実行者交渉要求に応答してホストによって送信された交渉不確認インジケーションが第2の設定期間内に受信されなかった場合には、フロー制御ポリシの交渉された実行者が仮想マシンであると決定するように具体的に構成され、フロー制御機能についての記述情報は、その実行が仮想マシンによってサポートされるフロー制御ポリシのバージョンを記述するために用いられる。
第7の態様又は第7の態様の第1の可能な実装態様を参照すると、第2の可能な実装態様において、
ホストは、フロー制御ポリシの交渉された実行者が仮想マシンであると決定された後で、ハートビートメッセージが設定期間内に仮想マシンから受信されなかった場合には、フロー制御ポリシの実行者がホストにスイッチされたことを示すために用いられるインジケーションメッセージを、仮想マシンに送信するようにさらに構成される。
本発明の複数の実施形態の第8の態様は、コンピューティングノードを提供し、これは、
ストレージと、ストレージに接続されるプロセッサと、
を含み、
プロセッサは、ホストと仮想マシンとの間で、仮想マシンのフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉し、フロー制御ポリシの交渉された実行者が仮想マシンである場合には、フロー制御ポリシに基づいて、仮想マシンの転送処理されるべきパケットに対する転送処理を実行し、フロー制御ポリシの交渉された実行者がホストである場合には、仮想マシンの転送処理されるべきパケットを、仮想マシンからホストに送信し、フロー制御ポリシに基づいて、ホストによって受信された転送処理されるべきパケットに対する転送処理を実行するように構成される。
第8の態様を参照すると、第8の態様の第1の可能な実装態様において、
プロセッサは、仮想マシンによってホストに送信されるべき実行者交渉要求をホストに送信し、ホストが実行者交渉要求を受信した後で、フロー制御機能についての記述情報に従って、仮想マシンがフロー制御ポリシの実行をサポートすると決定された場合には、ホストによって仮想マシンに送信されるべき交渉確認インジケーションを仮想マシンに送信する、及び/又は、フロー制御機能についての記述情報に従って、仮想マシンがフロー制御ポリシの実行をサポートしないと決定された場合には、ホストによって仮想マシンに送信されるべき交渉不確認インジケーションを仮想マシンに送信するように構成され、実行者交渉要求は、仮想マシンのフロー制御機能についての記述情報を含み、交渉確認インジケーションは、フロー制御ポリシの交渉された実行者が仮想マシンであることを示し、交渉不確認インジケーションは、フロー制御ポリシの交渉された実行者がホストであることを示す、
又は、
プロセッサは、仮想マシンによってホストに送信されるべき実行者交渉要求をホストに送信し、ホストが実行者交渉要求を受信した後で、フロー制御機能についての記述情報に従って、仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートすると決定された場合には、ホストによって仮想マシンに送信されるべき交渉確認インジケーションを仮想マシンに送信する、及び/又は、フロー制御機能についての記述情報に従って、仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートしないと決定された場合には、ホストによって仮想マシンに送信されるべき交渉不確認インジケーションを仮想マシンに送信するように構成され、実行者交渉要求は、仮想マシンのフロー制御機能についての記述情報を含み、フロー制御機能についての記述情報は、その実行が仮想マシンによってサポートされるフロー制御ポリシのバージョンを記述するために用いられ、交渉確認インジケーションは、フロー制御ポリシの交渉された実行者が仮想マシンであることを示し、交渉不確認インジケーションは、フロー制御ポリシの交渉された実行者がホストであることを示す。
第8の態様の第1の可能な実装態様を参照すると、第8の態様の第2の可能な実装態様において、交渉確認インジケーションは、フロー制御ポリシを含み、
プロセッサは、交渉確認インジケーションに含まれるフロー制御ポリシに基づいて、仮想マシンの転送処理されるべきパケットに対する転送処理を実行するように構成される。
第8の態様、第8の態様の第1の可能な実装態様、第8の態様の第2の可能な実装態様、第8の態様の第3の可能な実装態様を参照すると、プロセッサは、フロー制御ポリシの交渉された実行者が仮想マシンであると決定された後で、ホストが設定期間内に仮想マシンからハートビートメッセージを受信しなかった場合には、ホストによって仮想マシンに送信され、かつ、フロー制御ポリシの実行者がホストにスイッチされたことを示すために用いられるべきインジケーションメッセージを、仮想マシンに送信するようにさらに構成される。
本発明の複数の実施形態に係るいくつかの技術的解決手段において、フロー制御ポリシの実行者は、仮想マシンのフロー制御機能に基づいて、仮想マシンとホストとの間で交渉され、フロー制御ポリシの交渉された実行者が仮想マシンであると決定された場合には、仮想マシンは、フロー制御ポリシに基づいて、転送処理されるべきパケットに対する転送処理を実行し、フロー制御ポリシの交渉された実行者がホストであると決定された場合には、仮想マシンは、転送処理されるべきパケットをホストに送信し、これにより、ホストは、フロー制御ポリシに基づいて、受信されたパケットに対する転送処理を実行することが理解されよう。仮想マシン及びホストがフロー制御ポリシの実行者を交渉するメカニズムが導入され、これにより、仮想マシン及びホストの両方が、フロー制御ポリシの実行者となる機会を有する。これにより、仮想マシンはフロー制御ポリシを実行可能となり、可能な限り早くパケットに対するフロー制御の実行に寄与し、さらに、効果的ではない処理の削減及び無効なパケットフローによって占有される帯域幅及びホストのアドレス空間の縮小に寄与する。当該解決手段は、仮想マシンのアウトバウンドパケットフローを処理するために占有されるホストのアドレス空間の縮小に寄与することが理解されよう。さらに、フロー制御ポリシの実行者は、交渉によって決定されるので、フロー制御ポリシの実行者の実行機能は一定程度確保され、フロー制御ポリシ実行における信頼性の向上に寄与する。
本発明の複数の実施形態の技術的解決手段をより明確に説明すべく、以下、複数の実施形態の説明に必要とされる複数の添付図面を簡潔に紹介する。明らかに、以下の説明における複数の添付図面は、本発明のいくつかの実施形態を示しているに過ぎず、当業者であれば、創造的な努力を必要とせずに、これらの添付図面から他の図面をさらに導き出すことがある。
本発明の実施形態に係る仮想化アーキテクチャの模式図である。
本発明の実施形態に係る他の仮想化アーキテクチャの模式図である。
本発明の実施形態に係るパケットフロー制御方法の模式的フローチャートである。
本発明の実施形態に係る他のパケットフロー制御方法の模式的フローチャートである。
本発明の実施形態に係る他のパケットフロー制御方法の模式的フローチャートである。
本発明の実施形態に係る他のパケットフロー制御方法の模式的フローチャートである。
本発明の実施形態に係るコンピューティングノードの模式的構造図である。
本発明の実施形態に係るパケットフロー制御の効果の模式図である。
本発明の実施形態に係る他のパケットフロー制御方法の模式的フローチャートである。
本発明の実施形態に係る他のパケットフロー制御の効果の模式図である。
本発明の実施形態に係る他のパケットフロー制御方法の模式的フローチャートである。
本発明の実施形態に係る他のパケットフロー制御方法の模式的フローチャートである。
本発明の実施形態に係る仮想マシンの模式的構造図である。
本発明の実施形態に係るホストの模式的構造図である。
本発明の実施形態に係るコンピューティングノードの模式的構造図である。
本発明の実施形態に係る他のコンピューティングノードの模式的構造図である。
本発明の実施形態に係る他のコンピューティングノードの模式的構造図である。
本発明の複数の実施形態は、仮想マシンのアウトバウンドパケットフローを処理するために占有されるホストのアドレス空間を縮小することを目的とするフロー制御方法、関連装置、及びコンピューティングノードを提供する。
当業者に本発明の技術的解決手段をより理解せしめるべく、以下、本発明の複数の実施形態の添付図面を参照して、本発明の複数の実施形態の技術的解決手段を明確にかつ完全に説明する。明らかに、説明される複数の実施形態は、本発明の複数の実施形態の全てではなく、その一部に過ぎない。本発明の複数の実施形態に基づいて、当業者によって創造的な努力を必要とせずに得られる全ての他の実施形態は、本発明の保護範囲に含まれるものである。
本発明の複数の実施形態の理解を容易にすべく、本発明の複数の実施形態の説明に導入されるべきいくつかの要素が、最初に本明細書において説明される。
仮想マシンVM:1つ又は複数の仮想コンピュータが、仮想マシンソフトウェアを用いることによって、1つの物理的なコンピュータ上でシミュレーション可能である。これらの仮想マシンは、実際のコンピュータと同様に機能し、オペレーティングシステム及びアプリケーションプログラムは、仮想マシン上にインストール可能であり、仮想マシンは、ネットワークリソースにさらにアクセス可能である。仮想マシンにおいて動作するアプリケーションプログラムに対して、アプリケーションプログラムは、実際のコンピュータにおいて機能しているかのごとく、仮想マシンにおいて機能する。
ハードウェア層:ハードウェア層は、仮想化環境が動作するハードウェアプラットフォームである。ハードウェア層は、様々なハードウェアを含んでよい。例えば、コンピューティングノードのハードウェア層は、CPU及びメモリを含んでよく、ネットワークインタフェースカードのような高速/低速の入/出力(input/output、I/O)デバイス及びストレージデバイス、ならびに入/出力メモリ管理ユニット(Input/Output Memory Management Unit、IOMMU)のような複数の特定の処理機能を有する他のデバイスをさらに含んでよい。IOMMUは、仮想マシンの物理アドレスとホストの物理アドレスとの間で変換を実行するために用いられてよい。
ホスト(Host):ホストは、管理層として、複数のハードウェアリソースの管理及び割り当てを実装し、仮想ハードウェアプラットフォームを仮想マシンに与え、仮想マシンのスケジューリング及び分離を実装するために用いられる。ホストは、仮想マシンモニタ(VMM)であってよい。さらに、場合によっては、VMMは、1つの特権的仮想マシンと協同し、VMM及び仮想マシンが組み合わせられてホストを形成する。仮想ハードウェアプラットフォームは、仮想ハードウェアプラットフォーム上で動作する各仮想マシンに対して様々なハードウェアリソースを提供し、例えば、仮想中央演算処理装置(Central Processing Unit、CPU)、メモリ、仮想ディスク、仮想ネットワークインタフェースカード等を提供する。仮想ディスクは、ホストのファイル又は論理ブロックデバイスに対応してよい。仮想マシンは、ホストによって当該仮想マシンのために準備された仮想ハードウェアプラットフォーム上で動作し、1つ又は複数の仮想マシンは、ホスト上で動作する。
図2を参照すると、図2は、本発明の実施形態に係るコンピューティングノードの仮想化アーキテクチャの模式図であり、アーキテクチャは、主に、ハードウェア層、ホスト、及び仮想マシン(VM)の3つの層を含む。ハードウェア層は、ネットワークインタフェースカードを含む。ネットワークインタフェースカードに対応するバックエンド(Back−End、BE)インスタンスは、ホストに配置され、VMは、ネットワークインタフェースカードに対応するフロントエンド(Front−End、FE)インスタンスを有し、VMのBEは、ネットワークインタフェースカードのフロントエンドドライバとみなされてよく、ホストのFEは、ネットワークインタフェースカードのバックエンドドライバとみなされてよい。
本発明に係るパケットフロー制御方法の実施形態において、パケットフロー制御方法は、仮想マシンとホストとの間で、仮想マシンのフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉する段階と、フロー制御ポリシの交渉された実行者が仮想マシンであると決定された場合には、仮想マシンによって、フロー制御ポリシに基づいて、転送処理されるべきパケットに対する転送処理を実行する段階と、フロー制御ポリシの交渉された実行者がホストであると決定された場合には、仮想マシンによって、転送処理されるべきパケットをホストに送信し、これにより、ホストは、フロー制御ポリシに基づいて、受信されたパケットに対する転送処理を実行する段階と、を含む。
図3を参照すると、図3は、本発明の実施形態に係るパケットフロー制御方法の模式的フローチャートである。図3に示されるように、本発明の本実施形態に係るパケットフロー制御方法は、以下の内容を含んでよい。
301において、仮想マシンとホストとの間で、仮想マシンのフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉する。
本発明のいくつかの実施形態において、仮想マシン及びホストは、複数の態様で、仮想マシンとホストとの間で、仮想マシンのフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉してよい。
例えば、仮想マシンとホストとの間で、仮想マシンのフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉する段階は、仮想マシンによって、仮想マシンのフロー制御機能についての記述情報を含む実行者交渉要求をホストに送信する段階と、ホストがフロー制御機能についての記述情報に従って、仮想マシンがフロー制御ポリシの実行をサポートすると決定した後で、仮想マシンがホストによって送信された交渉確認インジケーションを受信した場合には、仮想マシンによって、フロー制御ポリシの交渉された実行者が仮想マシンであると決定する段階と、ホストがフロー制御機能についての記述情報に従って、仮想マシンがフロー制御ポリシの実行をサポートしないと決定した後で、仮想マシンがホストによって送信された交渉不確認インジケーションを受信した場合には、仮想マシンによって、フロー制御ポリシの交渉された実行者がホストであると決定する段階とを含む。
他の例では、仮想マシンとホストとの間で、仮想マシンのフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉する段階は、仮想マシンによって、仮想マシンのフロー制御機能についての記述情報を含む実行者交渉要求をホストに送信する段階であって、フロー制御機能についての記述情報は、その実行が仮想マシンによってサポートされるフロー制御ポリシのバージョンを記述するために用いられる、段階と、ホストがフロー制御機能についての記述情報に従って、仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートすると決定した後で、仮想マシンがホストによって送信された交渉確認インジケーションを受信した場合には、仮想マシンによって、フロー制御ポリシの交渉された実行者が仮想マシンであると決定する段階と、ホストがフロー制御機能についての記述情報に従って、仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートしないと決定した後で、仮想マシンがホストによって送信された交渉不確認インジケーションを受信した場合には、仮想マシンによって、フロー制御ポリシの交渉された実行者がホストであると決定する段階と、を含む。
他の例では、仮想マシンとホストとの間で、仮想マシンのフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉する段階は、仮想マシンによって、仮想マシンのフロー制御機能についての記述情報を含む実行者交渉要求をホストに送信する段階と、ホストがフロー制御機能についての記述情報に従って、仮想マシンがフロー制御ポリシの実行をサポートすると決定した後で、仮想マシンがホストによって送信された交渉確認インジケーションを受信した場合には、仮想マシンによって、フロー制御ポリシの交渉された実行者が仮想マシンであると決定する段階と、仮想マシンが、実行者交渉要求に応答してホストによって送信された交渉確認インジケーションを、第1の設定期間内に受信しなかった場合には、仮想マシンによって、フロー制御ポリシの交渉された実行者がホストであると決定する段階と、を含む。
他の例では、仮想マシンとホストとの間で、仮想マシンのフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉する段階は、仮想マシンによって、仮想マシンのフロー制御機能についての記述情報を含む実行者交渉要求をホストに送信する段階であって、フロー制御機能についての記述情報は、その実行が仮想マシンによってサポートされるフロー制御ポリシのバージョンを記述するために用いられる、段階と、ホストがフロー制御機能についての記述情報に従って、仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートすると決定した後で、仮想マシンがホストによって送信された交渉確認インジケーションを受信した場合には、仮想マシンによって、フロー制御ポリシの交渉された実行者が仮想マシンであると決定する段階と、仮想マシンが、実行者交渉要求に応答してホストによって送信された交渉確認インジケーションを、第1の設定期間内に受信しなかった場合には、仮想マシンによって、フロー制御ポリシの交渉された実行者がホストであると決定する段階と、を含む。
他の例では、仮想マシンとホストとの間で、仮想マシンのフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉する段階は、仮想マシンによって、仮想マシンのフロー制御機能についての記述情報を含む実行者交渉要求をホストに送信する段階と、ホストがフロー制御機能についての記述情報に従って、仮想マシンがフロー制御ポリシの実行をサポートしないと決定した後で、仮想マシンがホストによって送信された交渉不確認インジケーションを受信した場合には、仮想マシンによって、フロー制御ポリシの交渉された実行者がホストであると決定する段階と、仮想マシンが、実行者交渉要求に応答してホストによって送信された交渉不確認インジケーションを、第2の設定期間内に受信しなかった場合には、仮想マシンによって、フロー制御ポリシの交渉された実行者が仮想マシンであると決定する段階と、を含む。
他の例では、仮想マシンとホストとの間で、仮想マシンのフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉する段階は、仮想マシンによって、仮想マシンのフロー制御機能についての記述情報を含む実行者交渉要求をホストに送信する段階であって、フロー制御機能についての記述情報は、その実行が仮想マシンによってサポートされるフロー制御ポリシのバージョンを記述するために用いられる、段階と、ホストがフロー制御機能についての記述情報に従って、仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートしないと決定した後で、仮想マシンがホストによって送信された交渉不確認インジケーションを受信した場合には、仮想マシンによって、フロー制御ポリシの交渉された実行者がホストであると決定する段階と、仮想マシンが、実行者交渉要求に応答してホストによって送信された交渉不確認インジケーションを、第2の設定期間内に受信しなかった場合には、仮想マシンによって、フロー制御ポリシの交渉された実行者が仮想マシンであると決定する段階と、を含む。
本発明のいくつかの実施形態において、フロー制御機能についての記述情報は、その実行が仮想マシンによってサポートされるフロー制御ポリシのバージョンを記述するために用いられ、従って、ホストが、フロー制御機能についての記述情報に従って、仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートするか否かを決定することは、具体的には、その実行が仮想マシンによってサポートされるフロー制御ポリシの、フロー制御機能についての記述情報によって記述されるバージョンが、フロー制御ポリシの現在の最新バージョン又は事前設定されたバージョンと同じか否かを比較によって決定することと、これらが同じ場合には、仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートすると決定することと、これらが異なる場合には、仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートしないと決定することと、を含んでよい。他の例では、ホストがフロー制御機能についての記述情報に従って、仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートするか否かを決定することは、具体的には、その実行が仮想マシンによってサポートされる複数のフロー制御ポリシの、フロー制御機能についての記述情報によって記述されるk個(kは正の整数)のバージョンの各バージョンがフロー制御ポリシの現在の最新バージョン又は事前設定されたバージョンと同じか否かを比較によって決定することと、k個のバージョンのうち1つのバージョンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシであることが比較によって得られた場合には、仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートすると決定することと、k個のバージョンのうちいずれか1つのバージョンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシと異なることが比較によって得られた場合には、仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートしないと決定することと、を含んでよい。
仮想マシン及びホストが、仮想マシンとホストとの間で、仮想マシンのフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉する複数の特定の態様は、複数の前述の例に限定されるものではないことが理解されよう。
302において、フロー制御ポリシの交渉された実行者が仮想マシンであると決定された場合には、仮想マシンは、フロー制御ポリシに基づいて、転送処理されるべきパケットに対する転送処理を実行してよい。
303において、フロー制御ポリシの交渉された実行者がホストであると決定された場合には、仮想マシンは、転送処理されるべきパケットをホストに送信し、これにより、ホストは、フロー制御ポリシに基づいて、受信されたパケットに対する転送処理を実行する。
本実施形態において説明されるフロー制御ポリシは、例えば、サービス品質に基づくフロー制御ポリシ及び/又はアクセス制御リストに基づくフロー制御ポリシであってよく、勿論、フロー制御ポリシは、複数の他の要素を参照するフロー制御ポリシであってもよい。
サービス品質に基づくフロー制御ポリシにおいて、パケットに対する転送処理を実行する特定の態様(特定の転送処理態様は、パケットを遅延させて送信、パケットを遅延なく送信、又はパケットを破棄してよい等)は、主に、転送処理されるべきパケットに対応するサービス優先度に基づいて決定される。例えば、複数の転送処理されるべきパケットが現在キャッシュに存在するとして、より高いサービス優先度に対応するパケットは、より短い遅延で、又はさらに遅延なく送信されてよく、より低いサービス優先度に対応するパケットは、より長い遅延で送信されてよく、設定された優先度閾値より低いサービス優先度に対応する転送処理されるべきパケットは、さらに破棄されてよい。これは、優先度の高いサービスのサービス品質を可能な限り確保することに寄与する。すなわち、サービス品質に基づいて、フロー制御ポリシに従って転送処理されるべきパケットに対する転送処理を実行する段階は、具体的には、転送処理されるべきパケットのサービス優先度に対応する転送処理態様に従って転送処理されるべきパケットに対する転送処理を実行する段階を含んでよい。
アクセス制御リストに基づくフロー制御ポリシにおいて、パケットに対する転送処理を実行する特定の態様は、主に、転送処理されるべきパケットに含まれる情報がアクセス制御リストに含まれる記録に一致するか否かに基づいて決定される。例えば、アクセス制御リストは、(ブラックリストと同様の)制限されたアクセス制御リストである。制限されたアクセス制御リストが転送処理されるべきパケットのソース/デスティネーションアドレス、アプリケーション層プロトコルタイプ、もしくはトランスポート層プロトコルタイプ、及び/又はパケットヘッダに含まれる特定のキーワードのような情報に一致する記録を有する場合には、転送処理されるべきパケットに対する転送処理を実行する態様は、パケットを直接破棄してよい。反対に、制限されたアクセス制御リストが転送処理されるべきパケットのソース/デスティネーションアドレス、アプリケーション層プロトコルタイプ、もしくはトランスポート層プロトコルタイプ、及び/又はパケットヘッダに含まれる特定のキーワードのような情報に一致する記録を有さない場合には、転送処理されるべきパケットに対する転送処理を実行する態様は、パケットを転送してよい。他の例では、アクセス制御リストは、(ホワイトリストと同様の)許可されたアクセス制御リストである。許可されたアクセス制御リストが転送処理されるべきパケットのソース/デスティネーションアドレス、アプリケーション層プロトコルタイプ、もしくはトランスポート層プロトコルタイプ、及び/又はパケットヘッダに含まれる特定のキーワードのような情報に一致する記録を有さない場合には、転送処理されるべきパケットに対する転送処理を実行する態様は、パケットを直接破棄してよい。許可されたアクセス制御リストが転送処理されるべきパケットのソース/デスティネーションアドレス、アプリケーション層プロトコルタイプ、もしくはトランスポート層プロトコルタイプ、及び/又はパケットヘッダに含まれる特定のキーワードのような情報に一致する記録を有する場合には、転送処理されるべきパケットに対する転送処理を実行する態様は、パケットを転送してよい。複数の他の場合は、類推によって処理されてよい。
本発明のいくつかの実施形態において、交渉確認インジケーションは、フロー制御ポリシを含み、仮想マシンによって、フロー制御ポリシに基づいて、転送処理されるべきパケットに対する転送処理を実行する段階は、仮想マシンによって、交渉確認インジケーションに含まれるフロー制御ポリシに基づいて、転送処理されるべきパケットに対する転送処理を実行する段階を含む。
勿論、ホストは、複数の他の態様において、フロー制御ポリシを仮想マシンに転送し、これにより、仮想マシンは、フロー制御ポリシの交渉された実行者が仮想マシンであると決定された後で、ホストによって転送されたフロー制御ポリシに基づいて、転送処理されるべきパケットに対する転送処理を実行してもよい。勿論、フロー制御ポリシは、仮想マシンにおいて予め設定されてもよい。仮想マシンが、フロー制御ポリシの交渉された実行者が仮想マシンであると決定する場合には、仮想マシンは、予め設定されたフロー制御ポリシに基づいて、転送処理されるべきパケットに対する転送処理を実行する。
本発明のいくつかの実施形態において、仮想マシンが、仮想マシンのフロー制御機能についての記述情報を含む実行者交渉要求をホストに送信することは、仮想マシンによって、ユーザモードプロセスによって開始された交渉開始要求を受信した後で(すなわち、ユーザモードアプリケーション又はユーザ命令によってトリガされてよい)、仮想マシンのフロー制御機能についての記述情報を含む実行者交渉要求をホストに送信すること、又は、仮想マシンによって、ホストから交渉開始要求を受信した後で、仮想マシンのフロー制御機能についての記述情報を含む実行者交渉要求をホストに送信することを含む。勿論、仮想マシンは、別個に又は他の条件にトリガされて、仮想マシンのフロー制御機能についての記述情報を含む実行者交渉要求をホストに送信してもよい。
本発明のいくつかの実施形態において、プレロードクライアントは、仮想マシンに配置されてよく、プレロードサーバは、ホストに配置されてよく、プレロードクライアント及びプレロードサーバは、仮想マシンとホストとの間で、仮想マシンのフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉してよい。例えば、仮想マシンとホストとの間で、仮想マシンのフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉する段階は、仮想マシンに配置されたプレロードクライアントとホストに配置されたプレロードサーバとの間の接続が確立された後で、仮想マシンとホストとの間で、確立された接続に基づいてプレロードクライアントとプレロードサーバとによって、仮想マシンのフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉する段階を含んでよい。
本発明のいくつかの実施形態において、さらに、フロー制御ポリシの交渉された実行者が仮想マシンであると決定された後で、プレロードクライアントは、接続を介して、ハートビートメッセージをプレロードサーバに定期的に送信する。ハートビートメッセージを送信する目的の1つは、仮想マシンが適切に機能する状況をホストに通知することである。ホストが設定期間内に仮想マシンからハートビートメッセージを受信しなかった場合には、ホストは、仮想マシンに障害が発生したとデフォルトで決定してよい。例えば、フロー制御ポリシの交渉された実行者が仮想マシンであると決定された後で、ホストが設定期間内に仮想マシンからハートビートメッセージを受信しなかった場合には、ホストは、フロー制御ポリシの実行者をホストにスイッチしてよく(すなわち、仮想マシンがフロー制御ポリシに基づいて、転送処理されるべきパケットに対する転送処理を実行するか否かに関わらず、ホストは、フロー制御ポリシに基づいて、仮想マシンからのパケットに対する転送処理をさらに実行する。なぜなら、ホスト及び仮想マシンにおいて、同じパケットフローに対して実行されるフロー制御ポリシは同じであり、ホスト又は仮想マシン又はその両方がフロー制御ポリシを実行する場合には、最終的なパケット出力条件は基本的に同じだからである)、フロー制御ポリシの実行者がホストにスイッチされたことを示すために用いられるインジケーションメッセージを、仮想マシンに送信してよく、又はしなくてもよい。
本発明のいくつかの実施形態において、フロー制御ポリシの交渉された実行者が仮想マシンであると決定された後で、プレロードクライアントは、仮想マシンがフロー制御ポリシを実行したときに障害が発生した場合には、仮想マシンがフロー制御ポリシを実行したときに障害が発生したことを示すインジケーションメッセージをプレロードサーバに送信してもよい。フロー制御ポリシの交渉された実行者が仮想マシンであると決定された後で、ホストが、仮想マシンがフロー制御ポリシを実行したときに障害が発生したことを示すインジケーションメッセージを仮想マシンから受信した場合には、ホストは、フロー制御ポリシの実行者をホストにスイッチしてよい。
本発明のいくつかの実施形態において、フロー制御ポリシの交渉された実行者が仮想マシンであると決定された後で、プレロードサーバは、仮想マシンがフロー制御ポリシを適切に実行しているか否かを問う状況質問メッセージをプレロードクライアントに定期的に又は不定期的に送信してもよい。状況質問メッセージに応答する状況インジケーションメッセージが設定期間内に仮想マシンから受信されなかった場合、又は、仮想マシンからインジケーションメッセージが受信され、そのインジケーションメッセージが、仮想マシンがフロー制御ポリシを実行したときに障害が発生したことを示す場合には、仮想マシンがフロー制御ポリシを実行したときに障害が発生したと決定されてよい。勿論、プレロードサーバは、複数の他の態様で、仮想マシンがフロー制御ポリシを実行したときに障害が発生したか否かを監視してもよい。仮想マシンがフロー制御ポリシを実行したときに障害が発生したと決定された場合には、ホストは、フロー制御ポリシの実行者をホストにスイッチしてよい。
本実施形態に係る解決手段において、フロー制御ポリシの実行者は、仮想マシンのフロー制御機能に基づいて、仮想マシンとホストとの間で交渉され、フロー制御ポリシの交渉された実行者が仮想マシンであると決定された場合には、仮想マシンは、フロー制御ポリシに基づいて、転送処理されるべきパケットに対する転送処理を実行し、フロー制御ポリシの交渉された実行者がホストであると決定された場合には、仮想マシンは、転送処理されるべきパケットをホストに送信し、これにより、ホストは、フロー制御ポリシに基づいて、受信されたパケットに対する転送処理を実行することが理解されよう。仮想マシン及びホストがフロー制御ポリシの実行者を交渉するメカニズムが導入され、これにより、仮想マシン及びホストの両方が、フロー制御ポリシの実行者となる機会を有する。これにより、仮想マシンはフロー制御ポリシを実行可能となり、可能な限り早くパケットに対するフロー制御を実行することに寄与し、効果的ではない処理の削減及び無効なパケットフローによって占有される帯域幅及びホストのアドレス空間の縮小にさらに寄与する。この解決手段は、仮想マシンのアウトバウンドパケットフローに対する転送処理を実行するために占有されるホストのアドレス空間を縮小することに寄与することが理解されよう。さらに、フロー制御ポリシの実行者は、交渉によってに決定され、フロー制御ポリシ実行の信頼性向上に寄与する。
さらに、仮想マシン及びホストの両方がフロー制御ポリシの実行をサポートする場合には、仮想マシンは、フロー制御ポリシの実行において優先される。これは、可能な限り早くパケットに対するフロー制御を実行することにさらに寄与し、効果的ではない処理及び無効なパケットフローによって占有される帯域幅の縮小にさらに寄与する。
本発明に係るフロー制御方法の他の実施形態において、他のパケットフロー制御方法は、仮想マシンとホストとの間で、仮想マシンのフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉する段階と、ホストが、フロー制御ポリシの交渉された実行者がホストであると決定した場合には、ホストによって、仮想マシンからパケットを受信した後で、フロー制御ポリシに基づいて、受信されたパケットに対する転送処理を実行する段階と、を含む。
図4−aを参照すると、図4−aは、本発明の他の実施形態に係る他のパケットフロー制御方法の模式的フローチャートである。図4−aに示されるように、本発明の他の実施形態に係る他のパケットフロー制御方法は、以下の内容を含んでよい。
401において、仮想マシンとホストとの間で、仮想マシンのフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉する。
本発明のいくつかの実施形態において、ホスト及び仮想マシンは、複数の態様で、仮想マシンとホストとの間で、仮想マシンのフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉してよい。
例えば、ホスト及び仮想マシンが、仮想マシンとホストとの間で、仮想マシンのフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉することは、仮想マシンによって送信され、かつ、仮想マシンのフロー制御機能についての記述情報を含む実行者交渉要求を、ホストによって受信することと、ホストがフロー制御機能についての記述情報に従って、仮想マシンがフロー制御ポリシの実行をサポートすると決定した場合には、交渉確認インジケーションを仮想マシンに送信することと、ホストがフロー制御機能についての記述情報に従って、仮想マシンがフロー制御ポリシの実行をサポートしないと決定した場合には、交渉不確認インジケーションを仮想マシンに送信することと、を含んでよく、交渉確認インジケーションは、フロー制御ポリシの交渉された実行者が仮想マシンであることを示し、交渉不確認インジケーションは、フロー制御ポリシの交渉された実行者がホストであることを示す。
他の例では、ホスト及び仮想マシンが、仮想マシンとホストとの間で、仮想マシンのフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉することは、仮想マシンによって送信され、かつ、仮想マシンのフロー制御機能についての記述情報を含む実行者交渉要求を、ホストによって受信することと、ホストがフロー制御機能についての記述情報に従って、仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートすると決定した場合には、交渉確認インジケーションを仮想マシンに送信することと、ホストがフロー制御機能についての記述情報に従って、仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートしないと決定した場合には、交渉不確認インジケーションを仮想マシンに送信することと、を含んでよく、フロー制御機能についての記述情報は、その実行が仮想マシンによってサポートされるフロー制御ポリシのバージョンを記述するために用いられ、交渉確認インジケーションは、フロー制御ポリシの交渉された実行者が仮想マシンであることを示し、交渉不確認インジケーションは、フロー制御ポリシの交渉された実行者がホストであることを示す。
仮想マシン及びホストが、仮想マシンとホストとの間で、仮想マシンのフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉する特定の態様は、前述の例に限定されるものではないことが理解されよう。
402において、フロー制御ポリシの交渉された実行者がホストであると決定された場合には、ホストは、パケットを仮想マシンから受信した後で、フロー制御ポリシに基づいて、受信されたパケットに対する転送処理を実行する。
上述の「両者」は、フロー制御ポリシの実行者の交渉に参加する両方の対象を指し、本実施形態において、両方の対象は、仮想マシン及びホストであることが理解されよう。
さらに、フロー制御ポリシの交渉された実行者が仮想マシンである場合には、仮想マシンは、フロー制御ポリシに基づいて、転送処理されるべきパケットに対する転送処理を実行してよい。
本実施形態において説明されるフロー制御ポリシは、例えば、サービス品質に基づくフロー制御ポリシ及び/又はアクセス制御リストに基づくフロー制御ポリシであってよく、勿論、フロー制御ポリシは、複数の他の要素を参照するフロー制御ポリシであってもよい。
サービス品質に基づくフロー制御ポリシにおいて、パケットに対する転送処理を実行する特定の態様(特定の転送処理態様は、パケットを遅延させて送信、パケットを遅延なく送信、又はパケットを破棄してよい等)は、主に、転送処理されるべきパケットに対応するサービス優先度に基づいて決定される。例えば、複数の転送処理されるべきパケットが現在キャッシュに存在するとして、より高いサービス優先度に対応するパケットは、より短い遅延で、又はさらに遅延なく送信されてよく、より低いサービス優先度に対応するパケットは、より長い遅延で送信されてよく、設定された優先度閾値より低いサービス優先度に対応する転送処理されるべきパケットは、さらに破棄されてよい。これは、優先度の高いサービスのサービス品質を可能な限り確保することに寄与する。すなわち、サービス品質に基づいて、フロー制御ポリシに従って転送処理されるべきパケットに対する転送処理を実行する段階は、具体的には、転送処理されるべきパケットのサービス優先度に対応する転送処理態様に従って転送処理されるべきパケットに対する転送処理を実行する段階を含んでよい。
アクセス制御リストに基づくフロー制御ポリシにおいて、パケットに対する転送処理を実行する特定の態様は、主に、転送処理されるべきパケットに含まれる情報がアクセス制御リストに含まれる記録に一致するか否かに基づいて決定される。例えば、アクセス制御リストは、(ブラックリストと同様の)制限されたアクセス制御リストである。制限されたアクセス制御リストが転送処理されるべきパケットのソース/デスティネーションアドレス、アプリケーション層プロトコルタイプ、もしくはトランスポート層プロトコルタイプ、及び/又はパケットヘッダに含まれる特定のキーワードのような情報に一致する記録を有する場合には、転送処理されるべきパケットに対する転送処理を実行する態様は、パケットを直接破棄してよい。反対に、制限されたアクセス制御リストが転送処理されるべきパケットのソース/デスティネーションアドレス、アプリケーション層プロトコルタイプ、もしくはトランスポート層プロトコルタイプ、及び/又はパケットヘッダに含まれる特定のキーワードのような情報に一致する記録を有さない場合には、転送処理されるべきパケットに対する転送処理を実行する態様は、パケットを転送してよい。他の例では、アクセス制御リストは、(ホワイトリストと同様の)許可されたアクセス制御リストである。許可されたアクセス制御リストが転送処理されるべきパケットのソース/デスティネーションアドレス、アプリケーション層プロトコルタイプ、もしくはトランスポート層プロトコルタイプ、及び/又はパケットヘッダに含まれる特定のキーワードのような情報に一致する記録を有さない場合には、転送処理されるべきパケットに対する転送処理を実行する態様は、パケットを直接破棄してよい。許可されたアクセス制御リストが転送処理されるべきパケットのソース/デスティネーションアドレス、アプリケーション層プロトコルタイプ、もしくはトランスポート層プロトコルタイプ、及び/又はパケットヘッダに含まれる特定のキーワードのような情報に一致する記録を有する場合には、転送処理されるべきパケットに対する転送処理を実行する態様は、パケットを転送してよい。複数の他の場合は、類推によって処理されてよい。
本発明のいくつかの実施形態において、交渉確認インジケーションは、フロー制御ポリシを含み、仮想マシンによって、フロー制御ポリシに基づいて、転送処理されるべきパケットに対する転送処理を実行する段階は、仮想マシンによって、交渉確認インジケーションに含まれるフロー制御ポリシに基づいて、転送処理されるべきパケットに対する転送処理を実行する段階を含む。
勿論、ホストは、複数の他の態様において、フロー制御ポリシを仮想マシンに転送し、これにより、仮想マシンは、フロー制御ポリシの交渉された実行者が仮想マシンであると決定された後で、ホストによって転送されたフロー制御ポリシに基づいて、転送処理されるべきパケットに対する転送処理を実行してもよい。勿論、フロー制御ポリシは、仮想マシンにおいて予め設定されてもよい。仮想マシンが、フロー制御ポリシの交渉された実行者が仮想マシンであると決定する場合には、仮想マシンは、予め設定されたフロー制御ポリシに基づいて、転送処理されるべきパケットに対する転送処理を実行する。
本発明のいくつかの実施形態において、プレロードクライアントは、仮想マシンに配置されてよく、プレロードサーバは、ホストに配置されてよく、プレロードクライアント及びプレロードサーバは、仮想マシンとホストとの間で、仮想マシンのフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉してよい。例えば、仮想マシン及びホストが、仮想マシンとホストとの間で、仮想マシンのフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉することは、ホストに配置されたプレロードサーバと仮想マシンに配置されたプレロードクライアントとの間の接続が確立された後で、確立された接続に基づいてプレロードサーバとプレロードクライアントとによって、仮想マシンとホストとの間で、仮想マシンのフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉することを含んでよい。
本発明のいくつかの実施形態において、さらに、フロー制御ポリシの交渉された実行者が仮想マシンであると決定された後で、プレロードクライアントは、接続を介して、ハートビートメッセージをプレロードサーバに定期的に送信してよい。ハートビートメッセージを送信する目的の1つは、仮想マシンが適切に機能している状況をホストに通知することである。ホストが設定期間内に仮想マシンからハートビートメッセージを受信しなかった場合には、ホストは、仮想マシンに障害が発生したとデフォルトで決定してよい。例えば、フロー制御ポリシの交渉された実行者が仮想マシンであると決定された後で、ホストが設定期間内に仮想マシンからハートビートメッセージを受信しなかった場合には、ホストは、フロー制御ポリシの実行者をホストにスイッチしてよく(すなわち、仮想マシンがフロー制御ポリシに基づいて、転送処理されるべきパケットに対する転送処理を実行するか否かに関わらず、ホストは、フロー制御ポリシに基づいて、仮想マシンからのパケットに対する転送処理をさらに実行する。なぜなら、ホスト及び仮想マシンにおいて、同じパケットフローに対して実行されるフロー制御ポリシは同じであり、ホスト又は仮想マシン又はその両方がフロー制御ポリシを実行する場合には、最終的なパケット出力条件は基本的に同じだからである)、フロー制御ポリシの実行者がホストにスイッチされたことを示すために用いられるインジケーションメッセージを、仮想マシンに送信してよく、又はしなくてもよい。
本実施形態に係る解決手段において、ホスト及び仮想マシンは、仮想マシンとホストとの間で、仮想マシンのフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉し、ホストが、フロー制御ポリシの交渉された実行者がホストであると決定した場合には、ホストは、パケットを仮想マシンから受信した後で、フロー制御ポリシに基づいて、受信されたパケットに対する転送処理を実行することが理解されよう。仮想マシン及びホストがフロー制御ポリシの実行者を交渉するメカニズムが導入され、これにより、仮想マシン及びホストの両方が、フロー制御ポリシの実行者となる機会を有する。これにより、仮想マシンはフロー制御ポリシを実行可能となり、可能な限り早くパケットに対するフロー制御の実行に寄与し、さらに、効果的ではない処理の削減及び無効なパケットフローによって占有される帯域幅及びホストのアドレス空間の縮小に寄与する。この解決手段は、仮想マシンのアウトバウンドパケットフローに対する転送処理を実行するために占有されるホストのアドレス空間を縮小することに寄与することが理解されよう。さらに、フロー制御ポリシの実行者は、交渉によってに決定され、フロー制御ポリシ実行の信頼性向上に寄与する。
さらに、仮想マシン及びホストの両方がフロー制御ポリシの実行をサポートする場合には、仮想マシンは、フロー制御ポリシの実行において優先される。これは、可能な限り早くパケットに対するフロー制御を実行することにさらに寄与し、効果的ではない処理及び無効なパケットフローによって占有される帯域幅の縮小にさらに寄与する。
本発明の本実施形態は、パケットフロー制御方法をさらに提供し、その方法は、ホストと仮想マシンとの間で、仮想マシンのフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉する段階と、フロー制御ポリシの交渉された実行者が仮想マシンである場合には、フロー制御ポリシに基づいて、仮想マシンの転送処理されるべきパケットに対する転送処理を実行する段階と、フロー制御ポリシの交渉された実行者がホストである場合には、仮想マシンの転送処理されるべきパケットをホストに送信する段階と、フロー制御ポリシに基づいて、ホストによって受信された転送処理されるべきパケットに対する転送処理を実行する段階と、を含んでよい。
本発明のいくつかの実施形態において、ホストと仮想マシンとの間で、仮想マシンのフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉する段階は、
仮想マシンによってホストに送信されるべき実行者交渉要求をホストに送信する段階であって、実行者交渉要求は、仮想マシンのフロー制御機能についての記述情報を含む、段階と、
ホストが実行者交渉要求を受信した後で、フロー制御機能についての記述情報に従って、仮想マシンがフロー制御ポリシの実行をサポートすると決定された場合には、ホストによって仮想マシンに送信されるべき交渉確認インジケーションを、仮想マシンによって送信する段階であって、交渉確認インジケーションは、フロー制御ポリシの交渉された実行者が仮想マシンであることを示す、段階、及び/又は、フロー制御機能についての記述情報に従って、仮想マシンがフロー制御ポリシの実行をサポートしないと決定された場合には、ホストによって仮想マシンに送信されるべき交渉不確認インジケーションを仮想マシンに送信する段階であって、交渉不確認インジケーションは、フロー制御ポリシの交渉された実行者がホストであることを示す、段階と、
を含む、
又は、
ホストと仮想マシンとの間で、仮想マシンのフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉する段階は、
仮想マシンによってホストに送信されるべき実行者交渉要求をホストに送信する段階であって、実行者交渉要求は、仮想マシンのフロー制御機能についての記述情報を含み、フロー制御機能についての記述情報は、その実行が仮想マシンによってサポートされるフロー制御ポリシのバージョンを記述するために用いられる、段階と、
ホストが実行者交渉要求を受信した後で、フロー制御機能についての記述情報に従って、仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートすると決定された場合には、ホストによって仮想マシンに送信されるべき交渉確認インジケーションを仮想マシンに送信する段階であって、交渉確認インジケーションは、フロー制御ポリシの交渉された実行者が仮想マシンであることを示す、段階、及び/又は、フロー制御機能についての記述情報に従って、仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートしないと決定された場合には、ホストによって仮想マシンに送信されるべき交渉不確認インジケーションを仮想マシンに送信する段階であって、交渉不確認インジケーションは、フロー制御ポリシの交渉された実行者がホストであることを示す、段階と、
を含む。
本発明のいくつかの実施形態において、交渉確認インジケーションは、フロー制御ポリシを含む。
フロー制御ポリシに基づいて、仮想マシンの転送処理されるべきパケットに対する転送処理を実行する段階は、交渉確認インジケーションに含まれるフロー制御ポリシに基づいて、仮想マシンの転送処理されるべきパケットに対する転送処理を実行する段階を含む。
本発明のいくつかの実施形態において、フロー制御ポリシの交渉された実行者が仮想マシンであると決定された後で、ホストが設定期間内に仮想マシンからハートビートメッセージを受信しなかった場合には、ホストは、ホストによって仮想マシンに送信され、かつ、フロー制御ポリシの実行者がホストにスイッチされたことを示すために用いられるべきインジケーションメッセージを、仮想マシンに送信する。
本実施形態において説明されるフロー制御ポリシは、例えば、サービス品質に基づくフロー制御ポリシ及び/又はアクセス制御リストに基づくフロー制御ポリシであってよく、勿論、フロー制御ポリシは、複数の他の要素を参照するフロー制御ポリシであってもよい。
サービス品質に基づくフロー制御ポリシにおいて、パケットに対する転送処理を実行する特定の態様(特定の転送処理態様は、パケットを遅延させて送信、パケットを遅延なく送信、又はパケットを破棄してよい等)は、主に、転送処理されるべきパケットに対応するサービス優先度に基づいて決定される。例えば、複数の転送処理されるべきパケットが現在キャッシュに存在するとして、より高いサービス優先度に対応するパケットは、より短い遅延で、又はさらに遅延なく送信されてよく、より低いサービス優先度に対応するパケットは、より長い遅延で送信されてよく、設定された優先度閾値より低いサービス優先度に対応する転送処理されるべきパケットは、さらに破棄されてよい。これは、優先度の高いサービスのサービス品質を可能な限り確保することに寄与する。すなわち、サービス品質に基づいて、フロー制御ポリシに従って転送処理されるべきパケットに対する転送処理を実行する段階は、具体的には、転送処理されるべきパケットのサービス優先度に対応する転送処理態様に従って転送処理されるべきパケットに対する転送処理を実行する段階を含んでよい。
アクセス制御リストに基づくフロー制御ポリシにおいて、パケットに対する転送処理を実行する特定の態様は、主に、転送処理されるべきパケットに含まれる情報がアクセス制御リストに含まれる記録に一致するか否かに基づいて決定される。例えば、アクセス制御リストは、(ブラックリストと同様の)制限されたアクセス制御リストである。制限されたアクセス制御リストが転送処理されるべきパケットのソース/デスティネーションアドレス、アプリケーション層プロトコルタイプ、もしくはトランスポート層プロトコルタイプ、及び/又はパケットヘッダに含まれる特定のキーワードのような情報に一致する記録を有する場合には、転送処理されるべきパケットに対する転送処理を実行する態様は、パケットを直接破棄してよい。反対に、制限されたアクセス制御リストが転送処理されるべきパケットのソース/デスティネーションアドレス、アプリケーション層プロトコルタイプ、もしくはトランスポート層プロトコルタイプ、及び/又はパケットヘッダに含まれる特定のキーワードのような情報に一致する記録を有さない場合には、転送処理されるべきパケットに対する転送処理を実行する態様は、パケットを転送してよい。他の例では、アクセス制御リストは、(ホワイトリストと同様の)許可されたアクセス制御リストである。許可されたアクセス制御リストが転送処理されるべきパケットのソース/デスティネーションアドレス、アプリケーション層プロトコルタイプ、もしくはトランスポート層プロトコルタイプ、及び/又はパケットヘッダに含まれる特定のキーワードのような情報に一致する記録を有さない場合には、転送処理されるべきパケットに対する転送処理を実行する態様は、パケットを直接破棄してよい。許可されたアクセス制御リストが転送処理されるべきパケットのソース/デスティネーションアドレス、アプリケーション層プロトコルタイプ、もしくはトランスポート層プロトコルタイプ、及び/又はパケットヘッダに含まれる特定のキーワードのような情報に一致する記録を有する場合には、転送処理されるべきパケットに対する転送処理を実行する態様は、パケットを転送してよい。複数の他の場合は、類推によって処理されてよい。
本発明のいくつかの実施形態において、仮想マシンによってホストに送信されるべき実行者交渉要求をホストに送信する段階は、仮想マシンが、ユーザモードプロセスによって開始された交渉開始要求を受信した後で、仮想マシンによってホストに送信されるべき実行者交渉要求をホストに送信する段階、又は、仮想マシンが交渉開始要求をホストから受信した後で、仮想マシンによってホストに送信されるべき実行者交渉要求をホストに送信する段階を含む。
本発明のいくつかの実施形態において、ホストと仮想マシンとの間で、仮想マシンのフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉する段階は、仮想マシンに配置されたプレロードクライアントとホストに配置されたプレロードサーバとの間の接続が確立された後で、確立された接続を用いることによって、仮想マシンとホストとの間で、仮想マシンのフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉する段階を含む。
本実施形態の前述された複数の段階は、プロセッサ又は他のハードウェアによって実行されてよい。
図4−bを参照すると、図4−bは、本発明の他の実施形態に係る他のパケットフロー制御方法の模式的フローチャートである。図4−bに示されるように、本発明の他の実施形態に係る他のパケットフロー制御方法は、以下の内容を含んでよい。
s401
プロセッサは、ホストと仮想マシンとの間で、仮想マシンのフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉する。
s402
フロー制御ポリシの交渉された実行者が仮想マシンである場合には、プロセッサは、フロー制御ポリシに基づいて、仮想マシンの転送処理されるべきパケットに対する転送処理を実行する。
s403
フロー制御ポリシの交渉された実行者がホストである場合には、プロセッサは、仮想マシンの転送処理されるべきパケットをホストに送信し、プロセッサは、フロー制御ポリシに基づいて、ホストによって受信された転送処理されるべきパケットに対する転送処理を実行する。
本発明のいくつかの実施形態において、プロセッサが、ホストと仮想マシンとの間で仮想マシンのフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉することは、以下を含んでよい。
プロセッサが、ホストと仮想マシンとの間で、仮想マシンのフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉することは、仮想マシンによってホストに送信されるべき実行者交渉要求を、プロセッサによってホストに送信することであって、実行者交渉要求は、仮想マシンのフロー制御機能についての記述情報を含むことと、
ホストが実行者交渉要求を受信した後で、プロセッサがフロー制御機能についての記述情報に従って、仮想マシンがフロー制御ポリシの実行をサポートすると決定した場合には、ホストによって仮想マシンに送信されるべき交渉確認インジケーションを、プロセッサによって仮想マシンに送信することであって、交渉確認インジケーションは、フロー制御ポリシの交渉された実行者が仮想マシンであることを示すこと、及び/又は、プロセッサがフロー制御機能についての記述情報に従って、仮想マシンがフロー制御ポリシの実行をサポートしないと決定した場合には、ホストによって仮想マシンに送信されるべき交渉不確認インジケーションを、プロセッサによって仮想マシンに送信することであって、交渉不確認インジケーションは、フロー制御ポリシの交渉された実行者がホストであることを示すこと、
を含む、
又は、
プロセッサが、ホストと仮想マシンとの間で、仮想マシンのフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉することは、仮想マシンによってホストに送信されるべき実行者交渉要求を、プロセッサによってホストに送信することであって、実行者交渉要求は、仮想マシンのフロー制御機能についての記述情報を含み、フロー制御機能についての記述情報は、その実行が仮想マシンによってサポートされるフロー制御ポリシのバージョンを記述するために用いられることと、
ホストが実行者交渉要求を受信した後で、プロセッサが、フロー制御機能についての記述情報に従って、仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートすると決定した場合には、ホストによって仮想マシンに送信されるべき交渉確認インジケーションをプロセッサによって仮想マシンに送信することであって、交渉確認インジケーションは、フロー制御ポリシの交渉された実行者が仮想マシンであることを示すこと、及び/又は、プロセッサがフロー制御機能についての記述情報に従って、仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートしないと決定した場合には、ホストによって仮想マシンに送信されるべき交渉不確認インジケーションを、プロセッサによって仮想マシンに送信することであって、交渉不確認インジケーションは、フロー制御ポリシの交渉された実行者がホストであることを示すことと、
を含む。
本発明のいくつかの実施形態において、交渉確認インジケーションは、フロー制御ポリシを含む。
プロセッサが、フロー制御ポリシに基づいて、仮想マシンの転送処理されるべきパケットに対する転送処理を実行することは、プロセッサによって、交渉確認インジケーションに含まれるフロー制御ポリシに基づいて、仮想マシンの転送処理されるべきパケットに対する転送処理を実行することを含む。
勿論、ホストは、複数の他の態様で、フロー制御ポリシを仮想マシンに転送してもよく、これにより、プロセッサは、フロー制御ポリシの交渉された実行者が仮想マシンであると決定された後で、ホストによって転送されたフロー制御ポリシに基づいて、仮想マシンの転送処理されるべきパケットに対する転送処理を実行する。勿論、フロー制御ポリシは、仮想マシンにおいて予め設定されてもよい。フロー制御ポリシの交渉された実行者が仮想マシンであると決定される場合には、プロセッサは、予め設定されたフロー制御ポリシに基づいて、仮想マシンの転送処理されるべきパケットに対する転送処理を実行する。
本発明のいくつかの実施形態において、フロー制御ポリシの交渉された実行者が仮想マシンであると決定された後で、ホストが設定期間内に仮想マシンからハートビートメッセージを受信しなかった場合には、プロセッサは、ホストによって仮想マシンに送信され、かつ、フロー制御ポリシの実行者がホストにスイッチされたことを示すために用いられるべきインジケーションメッセージを、仮想マシンに送信する。
本発明のいくつかの実施形態において、フロー制御ポリシは、サービス品質に基づくフロー制御ポリシ及び/又はアクセス制御リストに基づくフロー制御ポリシである。
本発明のいくつかの実施形態において、仮想マシンによってホストに送信されるべき実行者交渉要求を、プロセッサによってホストに送信する段階は、
仮想マシンが、ユーザモードプロセスによって開始された交渉開始要求を受信した後で、仮想マシンによってホストに送信されるべき実行者交渉要求を、プロセッサによってホストに送信する段階、又は、仮想マシンが交渉開始要求をホストから受信した後で、仮想マシンによってホストに送信されるべき実行者交渉要求を、プロセッサによってホストに送信する段階
を含んでよい。
本実施形態において説明される、プロセッサが転送処理されるべきパケットを処理するベースとなるフロー制御ポリシは、例えば、サービス品質に基づくフロー制御ポリシ及び/又はアクセス制御リストに基づくフロー制御ポリシであってよく、勿論、フロー制御ポリシは、複数の他の要素を参照するフロー制御ポリシであってもよい。
サービス品質に基づくフロー制御ポリシにおいて、パケットに対する転送処理を実行する特定の態様(特定の転送処理態様は、パケットを遅延させて送信、パケットを遅延なく送信、又はパケットを破棄してよい等)は、主に、転送処理されるべきパケットに対応するサービス優先度に基づいて決定される。例えば、複数の転送処理されるべきパケットが現在キャッシュに存在するとして、より高いサービス優先度に対応するパケットは、より短い遅延で、又はさらに遅延なく送信されてよく、より低いサービス優先度に対応するパケットは、より長い遅延で送信されてよく、設定された優先度閾値より低いサービス優先度に対応する転送処理されるべきパケットは、さらに破棄されてよい。これは、優先度の高いサービスのサービス品質を可能な限り確保することに寄与する。すなわち、サービス品質に基づいて、フロー制御ポリシに従って転送処理されるべきパケットに対する転送処理を実行する段階は、具体的には、転送処理されるべきパケットのサービス優先度に対応する転送処理態様に従って転送処理されるべきパケットに対する転送処理を実行する段階を含んでよい。
アクセス制御リストに基づくフロー制御ポリシにおいて、パケットに対する転送処理を実行する特定の態様は、主に、転送処理されるべきパケットに含まれる情報がアクセス制御リストに含まれる記録に一致するか否かに基づいて決定される。例えば、アクセス制御リストは、(ブラックリストと同様の)制限されたアクセス制御リストである。制限されたアクセス制御リストが転送処理されるべきパケットのソース/デスティネーションアドレス、アプリケーション層プロトコルタイプ、もしくはトランスポート層プロトコルタイプ、及び/又はパケットヘッダに含まれる特定のキーワードのような情報に一致する記録を有する場合には、転送処理されるべきパケットに対する転送処理を実行する態様は、パケットを直接破棄してよい。反対に、制限されたアクセス制御リストが転送処理されるべきパケットのソース/デスティネーションアドレス、アプリケーション層プロトコルタイプ、もしくはトランスポート層プロトコルタイプ、及び/又はパケットヘッダに含まれる特定のキーワードのような情報に一致する記録を有さない場合には、転送処理されるべきパケットに対する転送処理を実行する態様は、パケットを転送してよい。他の例では、アクセス制御リストは、(ホワイトリストと同様の)許可されたアクセス制御リストである。許可されたアクセス制御リストが転送処理されるべきパケットのソース/デスティネーションアドレス、アプリケーション層プロトコルタイプ、もしくはトランスポート層プロトコルタイプ、及び/又はパケットヘッダに含まれる特定のキーワードのような情報に一致する記録を有さない場合には、転送処理されるべきパケットに対する転送処理を実行する態様は、パケットを直接破棄してよい。許可されたアクセス制御リストが転送処理されるべきパケットのソース/デスティネーションアドレス、アプリケーション層プロトコルタイプ、もしくはトランスポート層プロトコルタイプ、及び/又はパケットヘッダに含まれる特定のキーワードのような情報に一致する記録を有する場合には、転送処理されるべきパケットに対する転送処理を実行する態様は、パケットを転送してよい。複数の他の場合は、類推によって処理されてよい。
本発明のいくつかの実施形態において、ホストと仮想マシンとの間で、仮想マシンのフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉する段階は、仮想マシンに配置されたプレロードクライアントとホストに配置されたプレロードサーバとの間の接続が確立された後で、プロセッサによって確立された接続を用いることによって、仮想マシンとホストとの間で、仮想マシンのフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉する段階を含んでよい。
本実施形態に係る解決手段において、プロセッサの助けによって、仮想マシン及びホストは、仮想マシンとホストとの間で、仮想マシンのフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉し、仮想マシンが、フロー制御ポリシの交渉された実行者が仮想マシンであると決定した場合には、仮想マシンは、フロー制御ポリシに基づいて、転送処理されるべきパケットに対する転送処理を実行し、仮想マシンが、フロー制御ポリシの交渉された実行者がホストであると決定した場合には、仮想マシンは、転送処理されるべきパケットをホストに送信し、これにより、ホストは、フロー制御ポリシに基づいて、受信されたパケットに対する転送処理を実行することが理解されよう。仮想マシン及びホストがフロー制御ポリシの実行者を交渉するメカニズムが導入され、これにより、仮想マシン及びホストの両方が、フロー制御ポリシの実行者となる機会を有する。これにより、仮想マシンはフロー制御ポリシを実行可能となり、可能な限り早くパケットに対するフロー制御の実行に寄与し、さらに、効果的ではない処理の削減及び無効なパケットフローによって占有される帯域幅及びホストのアドレス空間の縮小に寄与する。この解決手段は、仮想マシンのアウトバウンドパケットフローに対する転送処理を実行するために占有されるホストのアドレス空間を縮小することに寄与することが理解されよう。さらに、フロー制御ポリシの実行者は、交渉によってに決定され、フロー制御ポリシ実行の信頼性向上に寄与する。
さらに、仮想マシン及びホストの両方がフロー制御ポリシの実行をサポートする場合には、仮想マシンは、フロー制御ポリシの実行において優先される。これは、可能な限り早くパケットに対するフロー制御を実行することにさらに寄与し、効果的ではない処理及び無効なパケットフローによって占有される帯域幅の縮小にさらに寄与する。
本発明の複数の実施形態に係る複数の解決手段のより十分な理解及び実装を容易にすべく、以下の例示的な説明は、いくつかの具体例を用いることによって提供される。
図5−a及び図5−bを参照すると、図5−aは、本発明の他の実施形態に係る他のパケットフロー制御方法の模式的フローチャートであり、図5−bは、本発明の本実施形態に係るコンピューティングノードであって、図5−aに示されるフロー制御方法を実装するために利用可能なコンピューティングノードの模式的構造図である。図5−bは、例として、コンピューティングノードに配置されたホスト及び仮想マシンの具体的な内部論理アーキテクチャを示す。勿論、ホスト及び仮想マシンは、図5−bに示される例と異なる他の内部論理アーキテクチャを有してもよい。本実施形態は、主に、フロー制御方法が図5−bに示されるアーキテクチャで実装される例を用いることによって説明される。
図5−aに示されるように、本発明の他の実施形態に係る他のパケットフロー制御方法は、以下の内容を含んでよい。
501において、仮想マシンVM−mに配置されたプレロードクライアント(preload client)及びホストに配置されたプレロードサーバ(preload server)は、接続を確立する。その接続は、送信制御プロトコルの接続又は他のタイプの通信接続である。
固有の通信接続が、仮想マシンVM−mに配置されたプレロードクライアントとホストに配置されたプレロードサーバとの間に存在し、又は、プレロードクライアント及びプレロードサーバは、互いに直接通信可能である場合には、段階501は省略されてもよい。
502において、仮想マシンVM−mに配置されたプレロードクライアントは、ホストに配置されたプレロードサーバによって送信された交渉開始要求を受信する。
503において、仮想マシンVM−mに配置されたプレロードクライアントは、仮想マシンVM−mのフロー制御機能についての記述情報を含む実行者交渉要求を、ホストに配置されたプレロードサーバに送信する。
段階502において、ホストに配置されたプレロードサーバは、仮想マシンVM−mに配置されたプレロードクライアントに交渉開始要求を送信し、主に、フロー制御ポリシの実行者の交渉を開始するよう仮想マシンVM−mに配置されたプレロードクライアントをトリガする。勿論、仮想マシンVM−mに配置されたプレロードクライアントは、他の条件(例えば、ユーザモードプロセスによって開始された交渉開始要求(すなわち、ユーザモードアプリケーション又はユーザ命令によってトリガされてよい)が受信されたこと)によってトリガされ、フロー制御ポリシの実行者の交渉を開始してもよいことが理解されよう。仮想マシンVM−mに配置されたプレロードクライアントがフロー制御ポリシの実行者の交渉を別個に開始した場合には、段階502は省略されてよい。
504において、ホストに配置されたプレロードサーバは、仮想マシンVM−mのフロー制御機能についての記述情報を含む実行者交渉要求を受信し、実行者交渉要求に含まれるフロー制御機能についての記述情報は、仮想マシンVM−mがフロー制御ポリシの実行をサポートするか否かを示し、これにより、ホストに配置されたプレロードサーバは、フロー制御機能についての記述情報に従って、仮想マシンVM−mがフロー制御ポリシの実行をサポートするか否かを決定してよい。
本実施形態において、ホストに配置されたプレロードサーバが、仮想マシンVM−mがフロー制御ポリシの実行をサポートすると決定することは、以下において例として用いられる。従って、ホストに配置されたプレロードサーバは、交渉確認インジケーションを仮想マシンVM−mに配置されたプレロードクライアントに送信してよく、交渉確認インジケーションは、フロー制御ポリシの交渉された実行者が仮想マシンVM−mであることを示し、交渉確認インジケーションは、フロー制御ポリシを含んでよい。ホストに配置されたプレロードサーバは、ホストに配置されたプレロードカーネル(preload kernel)に、フロー制御ポリシを実行しないようさらに命令する。
505において、ホストに配置されたプレロードサーバによって送信された交渉確認インジケーションを受信した後で、仮想マシンVM−mに配置されたプレロードクライアントは、フロー制御ポリシの交渉された実行者が仮想マシンVM−mであると決定し、従って、仮想マシンVM−mに配置されたプレロードクライアントは、交渉確認インジケーションに含まれるフロー制御ポリシを、仮想マシンVM−mに配置されたネットワークインタフェースカードに対応するFEに送信し、これにより、仮想マシンVM−mに配置されたネットワークインタフェースカードに対応するFEに、フロー制御ポリシを実行するよう命令する。
段階503から505を実行することによって、仮想マシンVM−mに配置されたプレロードクライアント及びホストに配置されたプレロードサーバは、交渉によって、フロー制御ポリシの実行者を決定する。
506において、フロー制御ポリシを受信した後で、仮想マシンVM−mに配置されたネットワークインタフェースカードに対応するFEは、受信されたフロー制御ポリシに基づいて、仮想マシンVM−mに配置されたユーザモードアプリケーションから転送処理されるべきパケットに対する転送処理を実行する。
本実施形態において、サービス品質に基づくフロー制御ポリシ又はアクセス制御リストに基づくフロー制御ポリシは、フロー制御ポリシの例として用いられる。
サービス品質に基づくフロー制御ポリシにおいて、パケットに対する転送処理を実行する特定の態様(特定の転送処理態様は、パケットを遅延させて送信、パケットを遅延なく送信、又はパケットを破棄してよい等)は、主に、転送処理されるべきパケットに対応するサービス優先度に基づいて決定される。例えば、複数の転送処理されるべきパケットが現在キャッシュに存在するとして、より高いサービス優先度に対応するパケットは、より短い遅延で、又はさらに遅延なく送信されてよく、より低いサービス優先度に対応するパケットは、より長い遅延で送信されてよく、設定された優先度閾値より低いサービス優先度に対応する転送処理されるべきパケットは、さらに破棄されてよい。これは、優先度の高いサービスのサービス品質を可能な限り確保することに寄与する。
アクセス制御リストに基づくフロー制御ポリシにおいて、パケットに対する転送処理を実行する特定の態様は、主に、転送処理されるべきパケットに含まれる情報がアクセス制御リストに含まれる記録に一致するか否かに基づいて決定される。例えば、アクセス制御リストは、(ブラックリストと同様の)制限されたアクセス制御リストである。制限されたアクセス制御リストが転送処理されるべきパケットのソース/デスティネーションアドレス、アプリケーション層プロトコルタイプ、もしくはトランスポート層プロトコルタイプ、及び/又はパケットヘッダに含まれる特定のキーワードのような情報に一致する記録を有する場合には、転送処理されるべきパケットに対する転送処理を実行する態様は、パケットを直接破棄してよい。反対に、制限されたアクセス制御リストが転送処理されるべきパケットのソース/デスティネーションアドレス、アプリケーション層プロトコルタイプ、もしくはトランスポート層プロトコルタイプ、及び/又はパケットヘッダに含まれる特定のキーワードのような情報に一致する記録を有さない場合には、転送処理されるべきパケットに対する転送処理を実行する態様は、パケットを転送してよい。他の例では、アクセス制御リストは、(ホワイトリストと同様の)許可されたアクセス制御リストである。許可されたアクセス制御リストが転送処理されるべきパケットのソース/デスティネーションアドレス、アプリケーション層プロトコルタイプ、もしくはトランスポート層プロトコルタイプ、及び/又はパケットヘッダに含まれる特定のキーワードのような情報に一致する記録を有さない場合には、転送処理されるべきパケットに対する転送処理を実行する態様は、パケットを直接破棄してよい。許可されたアクセス制御リストが転送処理されるべきパケットのソース/デスティネーションアドレス、アプリケーション層プロトコルタイプ、もしくはトランスポート層プロトコルタイプ、及び/又はパケットヘッダに含まれる特定のキーワードのような情報に一致する記録を有する場合には、転送処理されるべきパケットに対する転送処理を実行する態様は、パケットを転送してよい。複数の他の場合は、類推によって処理されてよい。
従って、仮想マシンVM−mに配置されたネットワークインタフェースカードに対応するFEが、受信されたフロー制御ポリシに基づいて、仮想マシンVM−mに配置されたユーザモードアプリケーションから転送処理されるべきパケットに対する転送処理を実行することは、仮想マシンVM−mに配置されたネットワークインタフェースカードに対応するFEが、仮想マシンVM−mに配置されたユーザモードアプリケーションから転送処理されるべきパケットを破棄すること、又は、仮想マシンVM−mに配置されたネットワークインタフェースカードに対応するFEが、仮想マシンVM−mに配置されたユーザモードアプリケーションから転送処理されるべきパケットを、遅延させて(遅延の程度は、転送処理されるべきパケットのサービス優先度及び転送処理されるべきパケットの現在の数に関連してよい)送信すること、又は、仮想マシンVM−mに配置されたネットワークインタフェースカードに対応するFEが、仮想マシンVM−mに配置されたユーザモードアプリケーションから転送処理されるべきパケットを、遅延なく送信することを含んでよい。複数の他の態様は、本明細書において再度列挙されない。
ホストに配置されたネットワークインタフェースカードに対応するBEが、仮想マシンVM−mに配置されたネットワークインタフェースカードに対応するFEのパケットを受信する場合には、ホストに配置されたネットワークインタフェースカードに対応するBEは、受信されたパケットに対するホストに配置されたプレロードカーネルへの転送処理を実行する。
ホストに配置されたプレロードカーネルは、フロー制御ポリシを実行することが必要ではないので、ホストに配置されたプレロードカーネルは、ネットワークインタフェースカードドライバを用いることによって、受信されたパケットをネットワークインタフェースカードに直接転送してよく、ネットワークインタフェースカードは、これに応じて、受信されたパケットに対する転送処理を実行してよい。
本発明のいくつかの実施形態において、フロー制御ポリシの交渉された実行者が仮想マシンVM−mであると決定された後で、プレロードクライアントは、接続を介して、ハートビートメッセージをプレロードサーバに定期的に送信してよい。ハートビートメッセージを送信する目的の1つは、仮想マシンVM−mが適切に機能している状況をプレロードサーバに通知することである。プレロードサーバが設定期間内にプレロードクライアントからハートビートメッセージを受信しなかった場合には、プレロードサーバは、VM−mにおいて障害が発生したとデフォルトで決定してよい。例えば、フロー制御ポリシの交渉された実行者が仮想マシンVM−mであると決定された後で、プレロードサーバが、設定期間内にプレロードクライアントからハートビートメッセージを受信しなかった場合には、プレロードサーバは、フロー制御ポリシの実行者をホストにスイッチしてよく(すなわち、プレロードカーネルは、仮想マシンVM−mに配置されたネットワークインタフェースカードに対応するFEがフロー制御ポリシに基づいて、転送処理されるべきパケットに対する転送処理を実行するか否かに関わらず、フロー制御ポリシに基づいて、仮想マシンVM−mからのパケットに対する転送処理をさらに実行する。ホスト及び仮想マシンVM−mにおいて同じパケットフローに対して実行されるフロー制御ポリシは同じであるので、プレロードカーネルもしくは仮想マシンVM−mに配置されたネットワークインタフェースカードに対応するFE又はその両方は、同じフロー制御ポリシを実行し、プレロードカーネルの最終的なパケット出力条件は、基本的に同じである)、フロー制御ポリシの実行者がホストにスイッチされたことを示すインジケーションメッセージを、プレロードクライアントに送信してよい。
本発明のいくつかの実施形態において、フロー制御ポリシの交渉された実行者が仮想マシンVM−mであると決定された後で、プレロードクライアントは、仮想マシンVM−mに配置されたネットワークインタフェースカードに対応するFEがフロー制御ポリシを実行したときに障害が発生した場合には、仮想マシンVM−mがフロー制御ポリシを実行したときに障害が発生したことを示すインジケーションメッセージをプレロードサーバに送信してもよい。フロー制御ポリシの交渉された実行者が仮想マシンであると決定された後で、プレロードサーバが、仮想マシンVM−mがフロー制御ポリシを実行したときに障害が発生したことを示すインジケーションメッセージをプレロードクライアントから受信した場合には、プレロードサーバは、フロー制御ポリシの実行者をホストにスイッチしてよく、プレロードサーバは、プレロードカーネルに、フロー制御ポリシを実行するよう命令してよい。
本発明のいくつかの実施形態において、フロー制御ポリシの交渉された実行者が仮想マシンVM−mであると決定された後で、プレロードサーバは、仮想マシンVM−mがフロー制御ポリシを適切に実行しているか否かを問う状況質問メッセージをプレロードクライアントに定期的に又は不定期的に送信してもよい。状況質問メッセージに応答する状況インジケーションメッセージが設定期間内にプレロードクライアントから受信されなかった場合、又は、プレロードクライアントからインジケーションメッセージが受信され、そのインジケーションメッセージが、仮想マシンVM−mがフロー制御ポリシを実行したときに障害が発生したことを示す場合には、仮想マシンVM−mがフロー制御ポリシを実行したときに障害が発生したと決定されてよい。勿論、プレロードサーバは、複数の他の態様で、仮想マシンVM−mがフロー制御ポリシを実行したときに障害が発生したか否かを監視してもよい。仮想マシンVM−mがフロー制御ポリシを実行したときに障害が発生したと決定された場合には、プレロードサーバは、フロー制御ポリシの実行者をホストにスイッチしてよく、プレロードサーバは、プレロードカーネルに、フロー制御ポリシを実行するよう命令してよい。
フロー制御ポリシを実行するよう命令された後で、プレロードカーネルは、フロー制御ポリシに基づいて、仮想マシンVM−mから転送処理されるべきパケットに対する転送処理を実行する。
図5−cを参照すると、図5−cは、本発明の本実施形態に係るフロー制御の効果の模式図である。図5−cに示されるように、ネットワークインタフェースカードに対応するFEが、仮想マシンVM−mのユーザモードアプリケーションからの高帯域幅パケットフローに対してフロー制御ポリシを実行した後で、パケットフローの帯域幅が減少する。フロー制御を早い段階で実行することは、リソース消費の低減に寄与することが理解されよう。
本実施形態に係る解決手段において、仮想マシン及びホストがフロー制御ポリシの実行者を交渉するメカニズムが導入され、これにより、仮想マシン及びホストの両方は、フロー制御ポリシの実行者となる機会を有する。これにより、仮想マシンは、フロー制御ポリシを実行可能となり、可能な限り早くパケットに対するフロー制御を実行することに寄与し、効果的ではない処理の削減ならびに無効なパケットフローによって占有される帯域幅及びホストのアドレス空間の縮小にさらに寄与することが理解されよう。この解決手段は、仮想マシンのアウトバウンドパケットフローに対する転送処理を実行するために占有されるホストのアドレス空間を縮小することに寄与することが理解されよう。さらに、フロー制御ポリシの実行者は、交渉によってに決定され、フロー制御ポリシ実行の信頼性向上に寄与する。
さらに、仮想マシン及びホストの両方がフロー制御ポリシの実行をサポートする場合には、仮想マシンは、フロー制御ポリシの実行において優先される。これは、可能な限り早くパケットに対するフロー制御を実行することにさらに寄与し、効果的ではない処理及び無効なパケットフローによって占有される帯域幅の縮小にさらに寄与する。
さらに、仮想マシン及びホストは、複雑なアプリケーション環境に対する製品の適合性向上、及び環境移行のアップグレードコスト削減に寄与するモジュラーアーキテクチャを用いることによって設計される。
図6−aを参照すると、図6−aは、本発明の他の実施形態に係る他のパケットフロー制御方法の模式的フローチャートである。図5−bは、本発明の本実施形態によって提供されるコンピューティングノードの模式的構造図であり、図6−aに示されるフロー制御方法を実装するために利用可能である。図5−bは、例として、コンピューティングノードに配置されたホスト及び仮想マシンの具体的な内部論理アーキテクチャを示す。勿論、ホスト及び仮想マシンは、図5−bに示される例と異なる他の内部論理アーキテクチャを有してもよい。本実施形態は、主に、フロー制御方法が図5−bに示されるアーキテクチャで実装される例を用いることによって説明される。
図6−aに示されるように、本発明の他の実施形態に係る他のパケットフロー制御方法は、以下の内容を含んでよい。
601において、仮想マシンVM−mに配置されたプレロードクライアント及びホストに配置されたプレロードサーバは、接続を確立する。その接続は、送信制御プロトコルの接続又は他のタイプの通信接続である。
固有の通信接続が、仮想マシンVM−mに配置されたプレロードクライアントとホストに配置されたプレロードサーバとの間に存在し、又は、プレロードクライアント及びプレロードサーバは、互いに直接通信可能である場合には、段階601は省略されてもよい。
602において、仮想マシンVM−mに配置されたプレロードクライアントは、ホストに配置されたプレロードサーバによって送信された交渉開始要求を受信する。
603において、仮想マシンVM−mに配置されたプレロードクライアントは、仮想マシンVM−mのフロー制御機能についての記述情報を含む実行者交渉要求を、ホストに配置されたプレロードサーバに送信する。
段階601において、ホストに配置されたプレロードサーバは、仮想マシンVM−mに配置されたプレロードクライアントに交渉開始要求を送信し、主に、フロー制御ポリシの実行者の交渉を開始するよう仮想マシンVM−mに配置されたプレロードクライアントをトリガする。勿論、仮想マシンVM−mに配置されたプレロードクライアントは、他の条件(例えば、ユーザモードプロセスによって開始された交渉開始要求(すなわち、ユーザモードアプリケーション又はユーザ命令によってトリガされてよい)が受信されたこと)によってトリガされ、フロー制御ポリシの実行者の交渉を開始してもよいことが理解されよう。仮想マシンVM−mに配置されたプレロードクライアントがフロー制御ポリシの実行者の交渉を別個に開始した場合には、段階602は省略されてよい。
604において、ホストに配置されたプレロードサーバは、仮想マシンVM−mのフロー制御機能についての記述情報を含む実行者交渉要求を受信し、実行者交渉要求に含まれるフロー制御機能についての記述情報は、仮想マシンVM−mがフロー制御ポリシの実行をサポートするか否かを示し、これにより、ホストに配置されたプレロードサーバは、フロー制御機能についての記述情報に従って、仮想マシンVM−mがフロー制御ポリシの実行をサポートするか否かを決定してよい。
本実施形態において、ホストに配置されたプレロードサーバが、仮想マシンVM−mがフロー制御ポリシの実行をサポートしないと決定することは、以下において、例として用いられる。従って、ホストに配置されたプレロードサーバは、仮想マシンVM−mに配置されたプレロードクライアントに交渉不確認インジケーションを送信してよく、交渉不確認インジケーションは、フロー制御ポリシの交渉された実行者がホストであることを示す。ホストに配置されたプレロードサーバは、ホストに配置されたプレロードカーネル(preload kernel)に、フロー制御ポリシを実行するようさらに命令する。
605において、ホストに配置されたプレロードサーバによって送信された交渉不確認インジケーションを受信した後で、仮想マシンVM−mに配置されたプレロードクライアントは、フロー制御ポリシの交渉された実行者がホストであると決定し、従って、仮想マシンVM−mに配置されたプレロードクライアントは、仮想マシンVM−mに配置されたネットワークインタフェースカードに対応するFEに、フロー制御ポリシを実行しないよう命令する。
段階603から605を実行することによって、仮想マシンVM−mに配置されたプレロードクライアント及びホストに配置されたプレロードサーバは、交渉によって、フロー制御ポリシの実行者を決定する。
仮想マシンVM−mに配置されたネットワークインタフェースカードに対応するFEは、仮想マシンVM−mに配置されたユーザモードアプリケーションから転送処理されるべきパケットに対する転送処理を実行する。本明細書において、仮想マシンVM−mに配置されたネットワークインタフェースカードに対応するFEは、転送処理されるべきパケットに対するフロー制御を実行しない。
606において、ホストに配置されたネットワークインタフェースカードに対応するBEが仮想マシンVM−mに配置されたネットワークインタフェースカードに対応するFEのパケットを受信した場合には、ホストに配置されたネットワークインタフェースカードに対応するBEは、受信されたパケットをホストに配置されたプレロードカーネルに転送する。
プレロードカーネルは、フロー制御ポリシに基づいて、受信されたパケットに対する転送処理を実行する。
本実施形態において、サービス品質に基づくフロー制御ポリシ又はアクセス制御リストに基づくフロー制御ポリシは、フロー制御ポリシの例として用いられる。
サービス品質に基づくフロー制御ポリシにおいて、パケットに対する転送処理を実行する特定の態様(特定の転送処理態様は、パケットを遅延させて送信、パケットを遅延なく送信、又はパケットを破棄してよい等)は、主に、転送処理されるべきパケットに対応するサービス優先度に基づいて決定される。例えば、複数の転送処理されるべきパケットが現在キャッシュに存在するとして、より高いサービス優先度に対応するパケットは、より短い遅延で、又はさらに遅延なく送信されてよく、より低いサービス優先度に対応するパケットは、より長い遅延で送信されてよく、設定された優先度閾値より低いサービス優先度に対応する転送処理されるべきパケットは、さらに破棄されてよい。これは、優先度の高いサービスのサービス品質を可能な限り確保することに寄与する。
アクセス制御リストに基づくフロー制御ポリシにおいて、パケットに対する転送処理を実行する特定の態様は、主に、転送処理されるべきパケットに含まれる情報がアクセス制御リストに含まれる記録に一致するか否かに基づいて決定される。例えば、アクセス制御リストは、(ブラックリストと同様の)制限されたアクセス制御リストである。制限されたアクセス制御リストが転送処理されるべきパケットのソース/デスティネーションアドレス、アプリケーション層プロトコルタイプ、もしくはトランスポート層プロトコルタイプ、及び/又はパケットヘッダに含まれる特定のキーワードのような情報に一致する記録を有する場合には、転送処理されるべきパケットに対する転送処理を実行する態様は、パケットを直接破棄してよい。反対に、制限されたアクセス制御リストが転送処理されるべきパケットのソース/デスティネーションアドレス、アプリケーション層プロトコルタイプ、もしくはトランスポート層プロトコルタイプ、及び/又はパケットヘッダに含まれる特定のキーワードのような情報に一致する記録を有さない場合には、転送処理されるべきパケットに対する転送処理を実行する態様は、パケットを転送してよい。他の例では、アクセス制御リストは、(ホワイトリストと同様の)許可されたアクセス制御リストである。許可されたアクセス制御リストが転送処理されるべきパケットのソース/デスティネーションアドレス、アプリケーション層プロトコルタイプ、もしくはトランスポート層プロトコルタイプ、及び/又はパケットヘッダに含まれる特定のキーワードのような情報に一致する記録を有さない場合には、転送処理されるべきパケットに対する転送処理を実行する態様は、パケットを直接破棄してよい。許可されたアクセス制御リストが転送処理されるべきパケットのソース/デスティネーションアドレス、アプリケーション層プロトコルタイプ、もしくはトランスポート層プロトコルタイプ、及び/又はパケットヘッダに含まれる特定のキーワードのような情報に一致する記録を有する場合には、転送処理されるべきパケットに対する転送処理を実行する態様は、パケットを転送してよい。複数の他の場合は、類推によって処理されてよい。
従って、プレロードカーネルがフロー制御ポリシに基づいて、仮想マシンVM−mから転送処理されるべきパケットに対する転送処理を実行することは、プレロードカーネルが、仮想マシンVM−mから転送処理されるべきパケットを破棄すること、又は、プレロードカーネルが、仮想マシンVM−mから転送処理されるべきパケットを、遅延させて(遅延の程度は、転送処理されるべきパケットのサービス優先度及び転送処理されるべきパケットの現在の数に関連してよい)送信すること、又は、プレロードカーネルが、仮想マシンVM−mから転送処理されるべきパケットを、遅延なく送信することを含んでよい。複数の他の態様は、本明細書において再度列挙されない。
ネットワークインタフェースカードが、ネットワークインタフェースカードドライバを用いることによって、プレロードカーネルによって送信されたパケットを受信した場合には、ネットワークインタフェースカードは、これに応じて、受信されたパケットに対する転送処理を実行する。
図6−bを参照すると、図6−bは、本発明の本実施形態に係る他のフロー制御の効果の模式図である。図6−bに示されるように、ネットワークインタフェースカードに対応するFEが仮想マシンVM−mのユーザモードアプリケーションからの高帯域幅パケットフローに対してフロー制御ポリシを実行しなかった後で、パケットフローの帯域幅は、ホストのプレロードカーネルがフロー制御ポリシを実行した後で減少する。
本実施形態に係る解決手段において、仮想マシン及びホストがフロー制御ポリシの実行者を交渉するメカニズムが導入され、これにより、仮想マシン及びホストの両方は、フロー制御ポリシの実行者となる機会を有する。これにより、仮想マシンは、フロー制御ポリシを実行可能となり、可能な限り早くパケットに対するフロー制御を実行することに寄与し、効果的ではない処理の削減ならびに無効なパケットフローによって占有される帯域幅及びホストのアドレス空間の縮小にさらに寄与することが理解されよう。この解決手段は、仮想マシンのアウトバウンドパケットフローに対する転送処理を実行するために占有されるホストのアドレス空間を縮小することに寄与することが理解されよう。さらに、フロー制御ポリシの実行者は、交渉によってに決定され、フロー制御ポリシ実行の信頼性向上に寄与する。
さらに、仮想マシン及びホストの両方がフロー制御ポリシの実行をサポートする場合には、仮想マシンは、フロー制御ポリシの実行において優先される。これは、可能な限り早くパケットに対するフロー制御を実行することにさらに寄与し、効果的ではない処理及び無効なパケットフローによって占有される帯域幅の縮小にさらに寄与する。
さらに、仮想マシン及びホストは、複雑なアプリケーション環境に対する製品の適合性向上、及び環境移行のアップグレードコスト削減に寄与するモジュラーアーキテクチャを用いることによって設計される。
図7を参照すると、図7は、本発明の他の実施形態に係る他のパケットフロー制御方法の模式的フローチャートである。図5−bは、本発明の本実施形態によって提供されるコンピューティングノードの模式的構造図であり、図7に示されるフロー制御方法を実装するために利用可能である。図5−bは、例として、コンピューティングノードに配置されたホスト及び仮想マシンの具体的な内部論理アーキテクチャを示す。勿論、ホスト及び仮想マシンは、図5−bに示される例と異なる他の内部論理アーキテクチャを有してもよい。本実施形態は、主に、フロー制御方法が図5−bに示されるアーキテクチャで実装される例を用いることによって説明される。
図7に示されるように、本発明の他の実施形態に係る他のパケットフロー制御方法は、以下の内容を含んでよい。
701において、仮想マシンVM−mに配置されたプレロードクライアント及びホストに配置されたプレロードサーバは、接続を確立する。その接続は、送信制御プロトコルの接続又は他のタイプの通信接続である。
固有の通信接続が、仮想マシンVM−mに配置されたプレロードクライアントとホストに配置されたプレロードサーバとの間に存在し、又は、プレロードクライアント及びプレロードサーバは、互いに直接通信可能である場合には、段階701は省略されてもよい。
702において、仮想マシンVM−mに配置されたプレロードクライアントは、ホストに配置されたプレロードサーバによって送信された交渉開始要求を受信する。
703において、仮想マシンVM−mに配置されたプレロードクライアントは、仮想マシンVM−mのフロー制御機能についての記述情報を含む実行者交渉要求を、ホストに配置されたプレロードサーバに送信する。
段階702において、ホストに配置されたプレロードサーバは、仮想マシンVM−mに配置されたプレロードクライアントに交渉開始要求を送信し、主に、フロー制御ポリシの実行者の交渉を開始するよう仮想マシンVM−mに配置されたプレロードクライアントをトリガする。勿論、仮想マシンVM−mに配置されたプレロードクライアントは、他の条件(例えば、ユーザモードプロセスによって開始された交渉開始要求(すなわち、ユーザモードアプリケーション又はユーザ命令によってトリガされてよい)が受信されたこと)によってトリガされ、フロー制御ポリシの実行者の交渉を開始してもよいことが理解されよう。仮想マシンVM−mに配置されたプレロードクライアントがフロー制御ポリシの実行者の交渉を別個に開始した場合には、段階702は省略されてよい。
704において、ホストに配置されたプレロードサーバは、仮想マシンVM−mのフロー制御機能についての記述情報を含む実行者交渉要求を受信し、実行者交渉要求に含まれるフロー制御機能についての記述情報は、その実行が仮想マシンVM−mによってサポートされるフロー制御ポリシのバージョンを示し、これにより、ホストに配置されたプレロードサーバは、フロー制御機能についての記述情報に従って、仮想マシンVM−mが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートするか否かを決定してよい。
本発明のいくつかの実施形態において、フロー制御機能についての記述情報は、その実行が仮想マシンによってサポートされるフロー制御ポリシのバージョンを記述するために用いられる。従って、プレロードサーバが、フロー制御機能についての記述情報に従って、仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートするか否かを決定することは、具体的には、その実行が仮想マシンによってサポートされるフロー制御機能についての記述情報によって記述されるフロー制御ポリシのバージョンが、フロー制御ポリシの現在の最新バージョン又は事前設定されたバージョンと同じか否かを、比較によって決定することと、これらが同じ場合には、仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートすると決定することと、これらが異なる場合には、仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートしないと決定することと、を含んでよい。他の例では、プレロードサーバが、フロー制御機能についての記述情報に従って、仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートするか否かを決定することは、具体的には、その実行が仮想マシンによってサポートされるフロー制御ポリシのフロー制御機能についての記述情報によって記述されるk個(kは正の整数)のバージョンの各バージョンがフロー制御ポリシの現在の最新バージョン又は事前設定されたバージョンと同じか否かを比較によって決定することと、k個のバージョンのうち1つのバージョンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシであることが比較によって得られた場合には、仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートすると決定することと、k個のバージョンのうちいずれか1つのバージョンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシと異なることが比較によって得られた場合には、仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートしないと決定することと、を含んでよい。
本実施形態において、ホストに配置されたプレロードサーバが、仮想マシンVM−mが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートすると決定することは、以下において例として用いられる。従って、ホストに配置されたプレロードサーバは、交渉確認インジケーションを仮想マシンVM−mに配置されたプレロードクライアントに送信してよく、交渉確認インジケーションは、フロー制御ポリシの交渉された実行者が仮想マシンVM−mであることを示し、交渉確認インジケーションは、現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシを含んでよい。ホストに配置されたプレロードサーバは、ホストに配置されたプレロードカーネルに、フロー制御ポリシを実行しないようさらに命令する。
705において、ホストに配置されたプレロードサーバによって送信された交渉確認インジケーションを受信した後で、仮想マシンVM−mに配置されたプレロードクライアントは、フロー制御ポリシの交渉された実行者が仮想マシンVM−mであると決定し、従って、仮想マシンVM−mに配置されたプレロードクライアントは、交渉確認インジケーションに含まれるフロー制御ポリシを、仮想マシンVM−mに配置されたネットワークインタフェースカードに対応するFEに送信する。
段階703から705を実行することによって、仮想マシンVM−mに配置されたプレロードクライアント及びホストに配置されたプレロードサーバは、交渉によって、フロー制御ポリシの実行者を決定する。
706において、フロー制御ポリシを受信した後で、仮想マシンVM−mに配置されたネットワークインタフェースカードに対応するFEは、受信されたフロー制御ポリシに基づいて、仮想マシンVM−mに配置されたユーザモードアプリケーションから送信される、転送処理されるべきパケットに対する転送処理を実行する。
本実施形態において、サービス品質に基づくフロー制御ポリシ又はアクセス制御リストに基づくフロー制御ポリシは、フロー制御ポリシの例として用いられる。
サービス品質に基づくフロー制御ポリシにおいて、パケットに対する転送処理を実行する特定の態様(特定の転送処理態様は、パケットを遅延させて送信、パケットを遅延なく送信、又はパケットを破棄してよい等)は、主に、転送処理されるべきパケットに対応するサービス優先度に基づいて決定される。例えば、複数の転送処理されるべきパケットが現在キャッシュに存在するとして、より高いサービス優先度に対応するパケットは、より短い遅延で、又はさらに遅延なく送信されてよく、より低いサービス優先度に対応するパケットは、より長い遅延で送信されてよく、設定された優先度閾値より低いサービス優先度に対応する転送処理されるべきパケットは、さらに破棄されてよい。これは、優先度の高いサービスのサービス品質を可能な限り確保することに寄与する。
アクセス制御リストに基づくフロー制御ポリシにおいて、パケットに対する転送処理を実行する特定の態様は、主に、転送処理されるべきパケットに含まれる情報がアクセス制御リストに含まれる記録に一致するか否かに基づいて決定される。例えば、アクセス制御リストは、(ブラックリストと同様の)制限されたアクセス制御リストである。制限されたアクセス制御リストが転送処理されるべきパケットのソース/デスティネーションアドレス、アプリケーション層プロトコルタイプ、もしくはトランスポート層プロトコルタイプ、及び/又はパケットヘッダに含まれる特定のキーワードのような情報に一致する記録を有する場合には、転送処理されるべきパケットに対する転送処理を実行する態様は、パケットを直接破棄してよい。反対に、制限されたアクセス制御リストが転送処理されるべきパケットのソース/デスティネーションアドレス、アプリケーション層プロトコルタイプ、もしくはトランスポート層プロトコルタイプ、及び/又はパケットヘッダに含まれる特定のキーワードのような情報に一致する記録を有さない場合には、転送処理されるべきパケットに対する転送処理を実行する態様は、パケットを転送してよい。他の例では、アクセス制御リストは、(ホワイトリストと同様の)許可されたアクセス制御リストである。許可されたアクセス制御リストが転送処理されるべきパケットのソース/デスティネーションアドレス、アプリケーション層プロトコルタイプ、もしくはトランスポート層プロトコルタイプ、及び/又はパケットヘッダに含まれる特定のキーワードのような情報に一致する記録を有さない場合には、転送処理されるべきパケットに対する転送処理を実行する態様は、パケットを直接破棄してよい。許可されたアクセス制御リストが転送処理されるべきパケットのソース/デスティネーションアドレス、アプリケーション層プロトコルタイプ、もしくはトランスポート層プロトコルタイプ、及び/又はパケットヘッダに含まれる特定のキーワードのような情報に一致する記録を有する場合には、転送処理されるべきパケットに対する転送処理を実行する態様は、パケットを転送してよい。複数の他の場合は、類推によって処理されてよい。
従って、仮想マシンVM−mに配置されたネットワークインタフェースカードに対応するFEが、受信されたフロー制御ポリシに基づいて、仮想マシンVM−mに配置されたユーザモードアプリケーションから転送処理されるべきパケットに対する転送処理を実行することは、仮想マシンVM−mに配置されたネットワークインタフェースカードに対応するFEが、仮想マシンVM−mに配置されたユーザモードアプリケーションから転送処理されるべきパケットを破棄すること、又は、仮想マシンVM−mに配置されたネットワークインタフェースカードに対応するFEが、仮想マシンVM−mに配置されたユーザモードアプリケーションから転送処理されるべきパケットを、遅延させて(遅延の程度は、転送処理されるべきパケットのサービス優先度及び転送処理されるべきパケットの現在の数に関連してよい)送信すること、又は、仮想マシンVM−mに配置されたネットワークインタフェースカードに対応するFEが、仮想マシンVM−mに配置されたユーザモードアプリケーションから転送処理されるべきパケットを、遅延なく送信することを含んでよい。複数の他の態様は、本明細書において再度列挙されない。
ホストに配置されたネットワークインタフェースカードに対応するBEが、仮想マシンVM−mに配置されたネットワークインタフェースカードに対応するFEのパケットを受信する場合には、ホストに配置されたネットワークインタフェースカードに対応するBEは、受信されたパケットに対するホストに配置されたプレロードカーネルへの転送処理を実行する。
ホストに配置されたプレロードカーネルは、フロー制御ポリシを実行することが必要ではないので、ホストに配置されたプレロードカーネルは、ネットワークインタフェースカードドライバを用いることによって、受信されたパケットをネットワークインタフェースカードに直接転送してよく、ネットワークインタフェースカードは、これに応じて、受信されたパケットに対する転送処理を実行してよい。
本発明のいくつかの実施形態において、フロー制御ポリシの交渉された実行者が仮想マシンVM−mであると決定された後で、プレロードクライアントは、接続を介して、ハートビートメッセージをプレロードサーバに定期的に送信してよい。ハートビートメッセージを送信する目的の1つは、仮想マシンVM−mが適切に機能している状況をプレロードサーバに通知することである。プレロードサーバが設定期間内にプレロードクライアントからハートビートメッセージを受信しなかった場合には、プレロードサーバは、VM−mにおいて障害が発生したとデフォルトで決定してよい。例えば、フロー制御ポリシの交渉された実行者が仮想マシンVM−mであると決定された後で、プレロードサーバが、設定期間内にプレロードクライアントからハートビートメッセージを受信しなかった場合には、プレロードサーバは、フロー制御ポリシの実行者をホストにスイッチしてよく(すなわち、プレロードカーネルは、仮想マシンVM−mに配置されたネットワークインタフェースカードに対応するFEがフロー制御ポリシに基づいて、転送処理されるべきパケットに対する転送処理を実行するか否かに関わらず、フロー制御ポリシに基づいて、仮想マシンVM−mからのパケットに対する転送処理をさらに実行する。ホスト及び仮想マシンVM−mにおいて同じパケットフローに対して実行されるフロー制御ポリシは同じであるので、プレロードカーネルもしくは仮想マシンVM−mに配置されたネットワークインタフェースカードに対応するFE又はその両方は、同じフロー制御ポリシを実行し、プレロードカーネルの最終的なパケット出力条件は、基本的に同じである)、フロー制御ポリシの実行者がホストにスイッチされたことを示すインジケーションメッセージを、プレロードクライアントに送信してよい。
本発明のいくつかの実施形態において、フロー制御ポリシの交渉された実行者が仮想マシンVM−mであると決定された後で、プレロードクライアントは、仮想マシンVM−mに配置されたネットワークインタフェースカードに対応するFEがフロー制御ポリシを実行したときに障害が発生した場合には、仮想マシンVM−mがフロー制御ポリシを実行したときに障害が発生したことを示すインジケーションメッセージをプレロードサーバに送信してもよい。フロー制御ポリシの交渉された実行者が仮想マシンであると決定された後で、プレロードサーバが、仮想マシンVM−mがフロー制御ポリシを実行したときに障害が発生したことを示すインジケーションメッセージをプレロードクライアントから受信した場合には、プレロードサーバは、フロー制御ポリシの実行者をホストにスイッチしてよく、プレロードサーバは、プレロードカーネルに、フロー制御ポリシを実行するよう命令してよい。
本発明のいくつかの実施形態において、フロー制御ポリシの交渉された実行者が仮想マシンVM−mであると決定された後で、プレロードサーバは、仮想マシンVM−mがフロー制御ポリシを適切に実行しているか否かを問う状況質問メッセージをプレロードクライアントに定期的に又は不定期的に送信してもよい。状況質問メッセージに応答する状況インジケーションメッセージが設定期間内にプレロードクライアントから受信されなかった場合、又は、プレロードクライアントからインジケーションメッセージが受信され、そのインジケーションメッセージが、仮想マシンVM−mがフロー制御ポリシを実行したときに障害が発生したことを示す場合には、仮想マシンVM−mがフロー制御ポリシを実行したときに障害が発生したと決定されてよい。勿論、プレロードサーバは、複数の他の態様で、仮想マシンVM−mがフロー制御ポリシを実行したときに障害が発生したか否かを監視してもよい。仮想マシンVM−mがフロー制御ポリシを実行したときに障害が発生したと決定された場合には、プレロードサーバは、フロー制御ポリシの実行者をホストにスイッチしてよく、プレロードサーバは、プレロードカーネルに、フロー制御ポリシを実行するよう命令してよい。
フロー制御ポリシを実行するよう命令された後で、プレロードカーネルは、フロー制御ポリシに基づいて、仮想マシンVM−mから転送処理されるべきパケットに対する転送処理を実行する。
本実施形態に係る解決手段において、仮想マシン及びホストがフロー制御ポリシの実行者を交渉するメカニズムが導入され、これにより、仮想マシン及びホストの両方は、フロー制御ポリシの実行者となる機会を有する。これにより、仮想マシンは、フロー制御ポリシを実行可能となり、可能な限り早くパケットに対するフロー制御を実行することに寄与し、効果的ではない処理の削減ならびに無効なパケットフローによって占有される帯域幅及びホストのアドレス空間の縮小にさらに寄与することが理解されよう。この解決手段は、仮想マシンのアウトバウンドパケットフローに対する転送処理を実行するために占有されるホストのアドレス空間を縮小することに寄与することが理解されよう。さらに、フロー制御ポリシの実行者は、交渉によってに決定され、フロー制御ポリシ実行の信頼性向上に寄与する。
さらに、仮想マシン及びホストの両方がフロー制御ポリシの実行をサポートする場合には、仮想マシンは、フロー制御ポリシの実行において優先される。これは、可能な限り早くパケットに対するフロー制御を実行することにさらに寄与し、効果的ではない処理及び無効なパケットフローによって占有される帯域幅の縮小にさらに寄与する。
さらに、仮想マシン及びホストは、複雑なアプリケーション環境に対する製品の適合性向上、及び環境移行のアップグレードコスト削減に寄与するモジュラーアーキテクチャを用いることによって設計される。
図8を参照すると、図8は、本発明の他の実施形態に係る他のパケットフロー制御方法の模式的フローチャートである。図5−bは、本発明の本実施形態によって提供されるコンピューティングノードの模式的構造図であり、図8に示されるフロー制御方法を実装するために利用可能である。図5−bは、例として、コンピューティングノードに配置されたホスト及び仮想マシンの具体的な内部論理アーキテクチャを示す。勿論、ホスト及び仮想マシンは、図5−bに示される例と異なる他の内部論理アーキテクチャを有してもよい。本実施形態は、主に、フロー制御方法が図5−bに示されるアーキテクチャで実装される例を用いることによって説明される。
図8に示されるように、本発明の他の実施形態に係る他のパケットフロー制御方法は、以下の内容を含んでよい。
801において、仮想マシンVM−mに配置されたプレロードクライアント及びホストに配置されたプレロードサーバは、接続を確立する。その接続は、送信制御プロトコルの接続又は他のタイプの通信接続である。
固有の通信接続が、仮想マシンVM−mに配置されたプレロードクライアントとホストに配置されたプレロードサーバとの間に存在し、又は、プレロードクライアント及びプレロードサーバは、互いに直接通信可能である場合には、段階801は省略されてもよい。
802において、仮想マシンVM−mに配置されたプレロードクライアントは、ホストに配置されたプレロードサーバによって送信された交渉開始要求を受信する。
803において、仮想マシンVM−mに配置されたプレロードクライアントは、仮想マシンVM−mのフロー制御機能についての記述情報を含む実行者交渉要求を、ホストに配置されたプレロードサーバに送信する。
段階802において、ホストに配置されたプレロードサーバは、仮想マシンVM−mに配置されたプレロードクライアントに交渉開始要求を送信し、主に、フロー制御ポリシの実行者の交渉を開始するよう仮想マシンVM−mに配置されたプレロードクライアントをトリガする。勿論、仮想マシンVM−mに配置されたプレロードクライアントは、他の条件(例えば、ユーザモードプロセスによって開始された交渉開始要求(すなわち、ユーザモードアプリケーション又はユーザ命令によってトリガされてよい)が受信されたこと)によってトリガされ、フロー制御ポリシの実行者の交渉を開始してもよいことが理解されよう。仮想マシンVM−mに配置されたプレロードクライアントがフロー制御ポリシの実行者の交渉を別個に開始した場合には、段階802は省略されてよい。
804において、ホストに配置されたプレロードサーバは、仮想マシンVM−mのフロー制御機能についての記述情報を含む実行者交渉要求を受信し、実行者交渉要求に含まれるフロー制御機能についての記述情報は、その実行が仮想マシンVM−mによってサポートされるフロー制御ポリシのバージョンを示し、従って、ホストに配置されたプレロードサーバは、フロー制御機能についての記述情報に従って、仮想マシンVM−mが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートするか否かを決定してよい。
本発明のいくつかの実施形態において、フロー制御機能についての記述情報は、その実行が仮想マシンによってサポートされるフロー制御ポリシのバージョンを記述するために用いられる。従って、プレロードサーバが、フロー制御機能についての記述情報に従って、仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートするか否かを決定することは、具体的には、その実行が仮想マシンによってサポートされるフロー制御機能についての記述情報によって記述されるフロー制御ポリシのバージョンが、フロー制御ポリシの現在の最新バージョン又は事前設定されたバージョンと同じか否かを、比較によって決定することと、これらが同じ場合には、仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートすると決定することと、これらが異なる場合には、仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートしないと決定することと、を含んでよい。他の例では、プレロードサーバが、フロー制御機能についての記述情報に従って、仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートするか否かを決定することは、具体的には、その実行が仮想マシンによってサポートされるフロー制御ポリシのフロー制御機能についての記述情報によって記述されるk個(kは正の整数)のバージョンの各バージョンがフロー制御ポリシの現在の最新バージョン又は事前設定されたバージョンと同じか否かを比較によって決定することと、k個のバージョンのうち1つのバージョンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシであることが比較によって得られた場合には、仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートすると決定することと、k個のバージョンのうちいずれか1つのバージョンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシと異なることが比較によって得られた場合には、仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートしないと決定することと、を含んでよい。
本実施形態において、ホストに配置されたプレロードサーバが、仮想マシンVM−mが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートしないと決定することは、以下において例として用いられる。従って、ホストに配置されたプレロードサーバは、仮想マシンVM−mに配置されたプレロードクライアントに交渉不確認インジケーションを送信してよく、交渉不確認インジケーションは、フロー制御ポリシの交渉された実行者がホストであることを示す。ホストに配置されたプレロードサーバは、ホストに配置されたプレロードカーネル(preload kernel)に、フロー制御ポリシを実行するようさらに命令する。
805において、ホストに配置されたプレロードサーバによって送信された交渉不確認インジケーションを受信した後で、仮想マシンVM−mに配置されたプレロードクライアントは、フロー制御ポリシの交渉された実行者がホストであると決定し、従って、仮想マシンVM−mに配置されたプレロードクライアントは、仮想マシンVM−mに配置されたネットワークインタフェースカードに対応するFEに、フロー制御ポリシを実行しないよう命令する。
段階803から805を実行することによって、仮想マシンVM−mに配置されたプレロードクライアント及びホストに配置されたプレロードサーバは、交渉によって、フロー制御ポリシの実行者を決定する。
仮想マシンVM−mに配置されたネットワークインタフェースカードに対応するFEは、仮想マシンVM−mに配置されたユーザモードアプリケーションから転送処理されるべきパケットに対する転送処理を実行する。本明細書において、仮想マシンVM−mに配置されたネットワークインタフェースカードに対応するFEは、転送処理されるべきパケットに対するフロー制御を実行しない。
806において、ホストに配置されたネットワークインタフェースカードに対応するBEが、仮想マシンVM−mに配置されたネットワークインタフェースカードに対応するFEのパケットを受信する場合には、ホストに配置されたネットワークインタフェースカードに対応するBEは、受信されたパケットに対するホストに配置されたプレロードカーネルへの転送処理を実行する。
プレロードカーネルは、フロー制御ポリシに基づいて、受信されたパケットに対する転送処理を実行する。
本実施形態において、サービス品質に基づくフロー制御ポリシ又はアクセス制御リストに基づくフロー制御ポリシは、フロー制御ポリシの例として用いられる。
サービス品質に基づくフロー制御ポリシにおいて、パケットに対する転送処理を実行する特定の態様(特定の転送処理態様は、パケットを遅延させて送信、パケットを遅延なく送信、又はパケットを破棄してよい等)は、主に、転送処理されるべきパケットに対応するサービス優先度に基づいて決定される。例えば、複数の転送処理されるべきパケットが現在キャッシュに存在するとして、より高いサービス優先度に対応するパケットは、より短い遅延で、又はさらに遅延なく送信されてよく、より低いサービス優先度に対応するパケットは、より長い遅延で送信されてよく、設定された優先度閾値より低いサービス優先度に対応する転送処理されるべきパケットは、さらに破棄されてよい。これは、優先度の高いサービスのサービス品質を可能な限り確保することに寄与する。
アクセス制御リストに基づくフロー制御ポリシにおいて、パケットに対する転送処理を実行する特定の態様は、主に、転送処理されるべきパケットに含まれる情報がアクセス制御リストに含まれる記録に一致するか否かに基づいて決定される。例えば、アクセス制御リストは、(ブラックリストと同様の)制限されたアクセス制御リストである。制限されたアクセス制御リストが転送処理されるべきパケットのソース/デスティネーションアドレス、アプリケーション層プロトコルタイプ、もしくはトランスポート層プロトコルタイプ、及び/又はパケットヘッダに含まれる特定のキーワードのような情報に一致する記録を有する場合には、転送処理されるべきパケットに対する転送処理を実行する態様は、パケットを直接破棄してよい。反対に、制限されたアクセス制御リストが転送処理されるべきパケットのソース/デスティネーションアドレス、アプリケーション層プロトコルタイプ、もしくはトランスポート層プロトコルタイプ、及び/又はパケットヘッダに含まれる特定のキーワードのような情報に一致する記録を有さない場合には、転送処理されるべきパケットに対する転送処理を実行する態様は、パケットを転送してよい。他の例では、アクセス制御リストは、(ホワイトリストと同様の)許可されたアクセス制御リストである。許可されたアクセス制御リストが転送処理されるべきパケットのソース/デスティネーションアドレス、アプリケーション層プロトコルタイプ、もしくはトランスポート層プロトコルタイプ、及び/又はパケットヘッダに含まれる特定のキーワードのような情報に一致する記録を有さない場合には、転送処理されるべきパケットに対する転送処理を実行する態様は、パケットを直接破棄してよい。許可されたアクセス制御リストが転送処理されるべきパケットのソース/デスティネーションアドレス、アプリケーション層プロトコルタイプ、もしくはトランスポート層プロトコルタイプ、及び/又はパケットヘッダに含まれる特定のキーワードのような情報に一致する記録を有する場合には、転送処理されるべきパケットに対する転送処理を実行する態様は、パケットを転送してよい。複数の他の場合は、類推によって処理されてよい。
従って、プレロードカーネルが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシに基づいて、仮想マシンVM−mから転送処理されるべきパケットに対する転送処理を実行することは、プレロードカーネルが、仮想マシンVM−mから転送処理されるべきパケットを破棄すること、又は、プレロードカーネルが、仮想マシンVM−mから転送処理されるべきパケットを、遅延させて(遅延の程度は、転送処理されるべきパケットのサービス優先度及び転送処理されるべきパケットの現在の数に関連してよい)送信すること、又は、プレロードカーネルが、仮想マシンVM−mから転送処理されるべきパケットを、遅延なく送信することを含んでよい。複数の他の態様は、本明細書において再度列挙されない。
ネットワークインタフェースカードが、ネットワークインタフェースカードドライバを用いることによって、プレロードカーネルによって送信されたパケットを受信した場合には、ネットワークインタフェースカードは、これに応じて、受信されたパケットに対する転送処理を実行する。
本実施形態に係る解決手段において、仮想マシン及びホストがフロー制御ポリシの実行者を交渉するメカニズムが導入され、これにより、仮想マシン及びホストの両方は、フロー制御ポリシの実行者となる機会を有する。これにより、仮想マシンは、フロー制御ポリシを実行可能となり、可能な限り早くパケットに対するフロー制御を実行することに寄与し、効果的ではない処理の削減ならびに無効なパケットフローによって占有される帯域幅及びホストのアドレス空間の縮小にさらに寄与することが理解されよう。この解決手段は、仮想マシンのアウトバウンドパケットフローに対する転送処理を実行するために占有されるホストのアドレス空間を縮小することに寄与することが理解されよう。さらに、フロー制御ポリシの実行者は、交渉によってに決定され、フロー制御ポリシ実行の信頼性向上に寄与する。
さらに、仮想マシン及びホストの両方がフロー制御ポリシの実行をサポートする場合には、仮想マシンは、フロー制御ポリシの実行において優先される。これは、可能な限り早くパケットに対するフロー制御を実行することにさらに寄与し、効果的ではない処理及び無効なパケットフローによって占有される帯域幅の縮小にさらに寄与する。
さらに、仮想マシン及びホストは、複雑なアプリケーション環境に対する製品の適合性向上、及び環境移行のアップグレードコスト削減に寄与するモジュラーアーキテクチャを用いることによって設計される。
本発明の複数の実施形態に係る複数の解決手段をより良く実装すべく、その解決手段を実装するための関連装置が、以下の通りさらに提供される。
図9を参照すると、本発明の実施形態に係る仮想マシン900は、第1の交渉ユニット910と、パケット処理ユニット920と、を含んでよい。
第1の交渉ユニット910は、仮想マシン900とホストとの間で、仮想マシンのフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉するように構成される。
パケット処理ユニット920は、フロー制御ポリシの交渉された実行者が仮想マシンであると決定された場合には、フロー制御ポリシに基づいて、転送処理されるべきパケットに対する転送処理を実行し、フロー制御ポリシの交渉された実行者がホストであると決定された場合には、転送処理されるべきパケットをホストに送信するように構成され、これにより、ホストは、フロー制御ポリシに基づいて、受信されたパケットに対する転送処理を実行する。
本発明のいくつかの実施形態において、第1の交渉ユニット910は、仮想マシンのフロー制御機能についての記述情報を含む実行者交渉要求をホストに送信し、交渉確認インジケーションが受信された場合には、フロー制御ポリシの交渉された実行者が仮想マシンであると決定し、交渉不確認インジケーションが受信された場合には、フロー制御ポリシの交渉された実行者がホストであると決定するように具体的に構成されてよく、交渉確認インジケーションは、ホストがフロー制御機能についての記述情報に従って、仮想マシンがフロー制御ポリシの実行をサポートすると決定した後で、ホストによって送信され、交渉不確認インジケーションは、ホストがフロー制御機能についての記述情報に従って、仮想マシンがフロー制御ポリシの実行をサポートしないと決定した後で、ホストによって送信される、
又は、
第1の交渉ユニット910は、仮想マシンのフロー制御機能についての記述情報を含む実行者交渉要求をホストに送信し、ホストがフロー制御機能についての記述情報に従って、仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートすると決定した後で、ホストによって送信された交渉確認インジケーションが受信された場合には、フロー制御ポリシの交渉された実行者が仮想マシンであると決定し、ホストがフロー制御機能についての記述情報に従って、仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートしないと決定した後で、ホストによって送信された交渉不確認インジケーションが受信された場合には、フロー制御ポリシの交渉された実行者がホストであると決定するように具体的に構成されてよく、フロー制御機能についての記述情報は、その実行が仮想マシンによってサポートされるフロー制御ポリシのバージョンを記述するために用いられる、
又は、
第1の交渉ユニット910は、仮想マシンのフロー制御機能についての記述情報を含む実行者交渉要求をホストに送信し、交渉確認インジケーションが受信された場合には、フロー制御ポリシの交渉された実行者が仮想マシンであると決定し、実行者交渉要求に応答してホストによって送信された交渉確認インジケーションが第1の設定期間内に受信されなかった場合には、フロー制御ポリシの交渉された実行者がホストであると決定するように具体的に構成されてよく、交渉確認インジケーションは、ホストがフロー制御機能についての記述情報に従って、仮想マシンがフロー制御ポリシの実行をサポートすると決定した後で、ホストによって送信される、
又は、
第1の交渉ユニット910は、仮想マシンのフロー制御機能についての記述情報を含む実行者交渉要求をホストに送信し、ホストがフロー制御機能についての記述情報に従って、仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートすると決定した後で、ホストによって送信された交渉確認インジケーションが受信された場合には、フロー制御ポリシの交渉された実行者が仮想マシンであると決定し、実行者交渉要求に応答してホストによって送信された交渉確認インジケーションが第1の設定期間内に受信されなかった場合には、フロー制御ポリシの交渉された実行者がホストであると決定するように具体的に構成されてよく、フロー制御機能についての記述情報は、その実行が仮想マシンによってサポートされるフロー制御ポリシのバージョンを記述するために用いられる、
又は、
第1の交渉ユニット910は、仮想マシンのフロー制御機能についての記述情報を含む実行者交渉要求をホストに送信し、交渉不確認インジケーションが受信された場合には、フロー制御ポリシの交渉された実行者がホストであると決定し、実行者交渉要求に応答してホストによって送信された交渉不確認インジケーションが第2の設定期間内に受信されなかった場合には、フロー制御ポリシの交渉された実行者が仮想マシンであると決定するように具体的に構成されてよく、交渉不確認インジケーションは、ホストがフロー制御機能についての記述情報に従って、仮想マシンがフロー制御ポリシの実行をサポートしないと決定した後で、ホストによって送信される、
又は、
第1の交渉ユニット910は、仮想マシンのフロー制御機能についての記述情報を含む実行者交渉要求をホストに送信し、ホストがフロー制御機能についての記述情報に従って、仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートしないと決定した後で、ホストによって送信された交渉不確認インジケーションが受信された場合には、フロー制御ポリシの交渉された実行者がホストであると決定し、実行者交渉要求に応答してホストによって送信された交渉不確認インジケーションが第2の設定期間内に受信されなかった場合には、フロー制御ポリシの交渉された実行者が仮想マシンであると決定するように具体的に構成されてよく、フロー制御機能についての記述情報は、その実行が仮想マシンによってサポートされるフロー制御ポリシのバージョンを記述するために用いられる。
本発明のいくつかの実施形態において、フロー制御機能についての記述情報が、その実行が仮想マシン900によってサポートされるフロー制御ポリシのバージョンを記述するために用いられる場合には、ホストが、フロー制御機能についての記述情報に従って、仮想マシン900が現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートするか否かを決定してよいことは、具体的には、フロー制御機能についての記述情報によって記述され、かつ、その実行が仮想マシン900によってサポートされるフロー制御ポリシのバージョンが、フロー制御ポリシの現在の最新バージョン又は事前設定されたバージョンと同じか否かを比較によって決定することと、これらが同じ場合には、仮想マシン900が現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートすると決定することと、これらが異なる場合には、仮想マシン900が現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートしないと決定することと、を含んでよい。他の例では、ホストが、フロー制御機能についての記述情報に従って、仮想マシン900が現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートするか否かを決定してよいことは、具体的には、その実行が仮想マシン900によってサポートされるフロー制御ポリシのフロー制御機能についての記述情報によって記述されるk個(kは正の整数)のバージョンの各バージョンがフロー制御ポリシの現在の最新バージョン又は事前設定されたバージョンと同じか否かを比較によって決定することと、k個のバージョンのうち1つのバージョンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシであることが比較によって得られた場合には、仮想マシン900が現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートすると決定することと、k個のバージョンのうちいずれか1つのバージョンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシと異なることが比較によって得られた場合には、仮想マシン900が現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートしないと決定することと、を含んでよい。
本発明のいくつかの実施形態において、仮想マシン900は、
フロー制御ポリシの交渉された実行者が仮想マシンであると決定された後で、ハートビートメッセージをホストに定期的に送信するように構成される送信ユニット(図9に示されない)
をさらに含んでよい。
本実施形態において説明されるフロー制御ポリシは、例えば、サービス品質に基づくフロー制御ポリシ及び/又はアクセス制御リストに基づくフロー制御ポリシであってよく、勿論、フロー制御ポリシは、複数の他の要素を参照するフロー制御ポリシであってもよい。
サービス品質に基づくフロー制御ポリシにおいて、パケットに対する転送処理を実行する特定の態様(特定の転送処理態様は、パケットを遅延させて送信、パケットを遅延なく送信、又はパケットを破棄してよい等)は、主に、転送処理されるべきパケットに対応するサービス優先度に基づいて決定される。例えば、複数の転送処理されるべきパケットが現在キャッシュに存在するとして、より高いサービス優先度に対応するパケットは、より短い遅延で、又はさらに遅延なく送信されてよく、より低いサービス優先度に対応するパケットは、より長い遅延で送信されてよく、設定された優先度閾値より低いサービス優先度に対応する転送処理されるべきパケットは、さらに破棄されてよい。これは、優先度の高いサービスのサービス品質を可能な限り確保することに寄与する。すなわち、サービス品質に基づいて、フロー制御ポリシに従って転送処理されるべきパケットに対する転送処理を実行する段階は、具体的には、転送処理されるべきパケットのサービス優先度に対応する転送処理態様に従って転送処理されるべきパケットに対する転送処理を実行する段階を含んでよい。
アクセス制御リストに基づくフロー制御ポリシにおいて、パケットに対する転送処理を実行する特定の態様は、主に、転送処理されるべきパケットに含まれる情報がアクセス制御リストに含まれる記録に一致するか否かに基づいて決定される。例えば、アクセス制御リストは、(ブラックリストと同様の)制限されたアクセス制御リストである。制限されたアクセス制御リストが転送処理されるべきパケットのソース/デスティネーションアドレス、アプリケーション層プロトコルタイプ、もしくはトランスポート層プロトコルタイプ、及び/又はパケットヘッダに含まれる特定のキーワードのような情報に一致する記録を有する場合には、転送処理されるべきパケットに対する転送処理を実行する態様は、パケットを直接破棄してよい。反対に、制限されたアクセス制御リストが転送処理されるべきパケットのソース/デスティネーションアドレス、アプリケーション層プロトコルタイプ、もしくはトランスポート層プロトコルタイプ、及び/又はパケットヘッダに含まれる特定のキーワードのような情報に一致する記録を有さない場合には、転送処理されるべきパケットに対する転送処理を実行する態様は、パケットを転送してよい。他の例では、アクセス制御リストは、(ホワイトリストと同様の)許可されたアクセス制御リストである。許可されたアクセス制御リストが転送処理されるべきパケットのソース/デスティネーションアドレス、アプリケーション層プロトコルタイプ、もしくはトランスポート層プロトコルタイプ、及び/又はパケットヘッダに含まれる特定のキーワードのような情報に一致する記録を有さない場合には、転送処理されるべきパケットに対する転送処理を実行する態様は、パケットを直接破棄してよい。許可されたアクセス制御リストが転送処理されるべきパケットのソース/デスティネーションアドレス、アプリケーション層プロトコルタイプ、もしくはトランスポート層プロトコルタイプ、及び/又はパケットヘッダに含まれる特定のキーワードのような情報に一致する記録を有する場合には、転送処理されるべきパケットに対する転送処理を実行する態様は、パケットを転送してよい。複数の他の場合は、類推によって処理されてよい。
本実施形態において、仮想マシン900の各モジュールの複数の機能が、複数の前述された方法の実施形態において説明された方法に従って具体的に実装されてよいことが理解されよう。その具体的な実装プロセスについては、複数の前述された実施形態において関連する説明を参照し、詳細は本明細書において再度説明されない。
本実施形態に係る解決手段において、仮想マシン及びホストがフロー制御ポリシの実行者を交渉するメカニズムが導入され、これにより、仮想マシン及びホストの両方は、フロー制御ポリシの実行者となる機会を有する。これにより、仮想マシンは、フロー制御ポリシを実行可能となり、可能な限り早くパケットに対するフロー制御を実行することに寄与し、効果的ではない処理の削減ならびに無効なパケットフローによって占有される帯域幅及びホストのアドレス空間の縮小にさらに寄与することが理解されよう。この解決手段は、仮想マシンのアウトバウンドパケットフローに対する転送処理を実行するために占有されるホストのアドレス空間を縮小することに寄与することが理解されよう。さらに、フロー制御ポリシの実行者は、交渉によってに決定され、フロー制御ポリシ実行の信頼性向上に寄与する。
さらに、仮想マシン及びホストの両方がフロー制御ポリシの実行をサポートする場合には、仮想マシンは、フロー制御ポリシの実行において優先される。これは、可能な限り早くパケットに対するフロー制御を実行することにさらに寄与し、効果的ではない処理及び無効なパケットフローによって占有される帯域幅の縮小にさらに寄与する。
さらに、仮想マシン及びホストは、複雑なアプリケーション環境に対する製品の適合性向上、及び環境移行のアップグレードコスト削減に寄与するモジュラーアーキテクチャを用いることによって設計される。
図10を参照すると、本発明の実施形態は、ホスト1000をさらに提供し、これは、第2の交渉ユニット1010と、パケット処理ユニット1020と、を含んでよい。
第2の交渉ユニット1010は、仮想マシンとホスト1000との間で、仮想マシンのフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉するように構成される。
パケット処理ユニット1020は、フロー制御ポリシの交渉された実行者がホストであると決定された場合には、フロー制御ポリシに基づいて、受信されたパケットに対する転送処理を、パケットを仮想マシンから受信した後で実行するように構成される。
本発明のいくつかの実施形態において、第2の交渉ユニット1010は、仮想マシンによって送信され、かつ、仮想マシンのフロー制御機能についての記述情報を含む実行者交渉要求を受信し、フロー制御機能についての記述情報に従って、仮想マシンがフロー制御ポリシの実行をサポートすると決定された場合には、交渉確認インジケーションを仮想マシンに送信する、及び/又は、フロー制御機能についての記述情報に従って、仮想マシンがフロー制御ポリシの実行をサポートしないと決定された場合には、交渉不確認インジケーションを仮想マシンに送信するように具体的に構成されてよく、交渉確認インジケーションは、フロー制御ポリシの交渉された実行者が仮想マシンであることを示し、交渉不確認インジケーションは、フロー制御ポリシの交渉された実行者がホストであることを示す。
本発明のいくつかの他の実施形態において、第2の交渉ユニット1010は、仮想マシンによって送信され、かつ、仮想マシンのフロー制御機能についての記述情報を含む実行者交渉要求を受信し、フロー制御機能についての記述情報に従って、仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートすると決定された場合には、交渉確認インジケーションを仮想マシンに送信する、及び/又は、フロー制御機能についての記述情報に従って、仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートしないと決定された場合には、交渉不確認インジケーションを仮想マシンに送信するように具体的に構成されてよく、フロー制御機能についての記述情報は、その実行が仮想マシンによってサポートされるフロー制御ポリシのバージョンを記述するために用いられ、交渉確認インジケーションは、フロー制御ポリシの交渉された実行者が仮想マシンであることを示し、交渉不確認インジケーションは、フロー制御ポリシの交渉された実行者がホストであることを示す。
本発明のいくつかの実施形態において、フロー制御機能についての記述情報が、その実行が仮想マシンによってサポートされるフロー制御ポリシのバージョンを記述するために用いられる場合には、第2の交渉ユニット1010が、フロー制御機能についての記述情報に従って、仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートするか否かを決定してよいことは、具体的には、フロー制御機能についての記述情報によって記述され、かつ、その実行が仮想マシンによってサポートされるフロー制御ポリシのバージョンが、フロー制御ポリシの現在の最新バージョン又は事前設定されたバージョンと同じか否かを比較によって決定することと、これらが同じ場合には、仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートすると決定することと、これらが異なる場合には、仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートしないと決定することと、を含んでよい。他の例では、第2の交渉ユニット1010が、フロー制御機能についての記述情報に従って、仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートするか否かを決定してよいことは、具体的には、その実行が仮想マシンによってサポートされるフロー制御ポリシのフロー制御機能についての記述情報によって記述されるk個(kは正の整数)のバージョンの各バージョンがフロー制御ポリシの現在の最新バージョン又は事前設定されたバージョンと同じか否かを比較によって決定することと、k個のバージョンのうち1つのバージョンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシであることが比較によって得られた場合には、仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートすると決定することと、k個のバージョンのうちいずれか1つのバージョンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシと異なることが比較によって得られた場合には、仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートしないと決定することと、を含んでよい。
本発明のいくつかの実施形態において、パケット処理ユニット1020は、フロー制御ポリシの交渉された実行者が仮想マシンであると決定された後で、ハートビートメッセージが設定期間内に仮想マシンから受信されなかった場合には、フロー制御ポリシの実行者がホストにスイッチされたことを示すために用いられるインジケーションメッセージを仮想マシンに送信するようにさらに構成される。
本実施形態において、パケット処理ユニット1020が転送処理されるべきパケットを処理するベースとなるフロー制御ポリシは、例えば、サービス品質に基づくフロー制御ポリシ及び/又はアクセス制御リストに基づくフロー制御ポリシであってよい。勿論、フロー制御ポリシは、複数の他の要素を参照するフロー制御ポリシであってもよい。
サービス品質に基づくフロー制御ポリシにおいて、パケットに対する転送処理を実行する特定の態様(特定の転送処理態様は、パケットを遅延させて送信、パケットを遅延なく送信、又はパケットを破棄してよい等)は、主に、転送処理されるべきパケットに対応するサービス優先度に基づいて決定される。例えば、複数の転送処理されるべきパケットが現在キャッシュに存在するとして、より高いサービス優先度に対応するパケットは、より短い遅延で、又はさらに遅延なく送信されてよく、より低いサービス優先度に対応するパケットは、より長い遅延で送信されてよく、設定された優先度閾値より低いサービス優先度に対応する転送処理されるべきパケットは、さらに破棄されてよい。これは、優先度の高いサービスのサービス品質を可能な限り確保することに寄与する。すなわち、サービス品質に基づいて、フロー制御ポリシに従って転送処理されるべきパケットに対する転送処理を実行する段階は、具体的には、転送処理されるべきパケットのサービス優先度に対応する転送処理態様に従って転送処理されるべきパケットに対する転送処理を実行する段階を含んでよい。
アクセス制御リストに基づくフロー制御ポリシにおいて、パケットに対する転送処理を実行する特定の態様は、主に、転送処理されるべきパケットに含まれる情報がアクセス制御リストに含まれる記録に一致するか否かに基づいて決定される。例えば、アクセス制御リストは、(ブラックリストと同様の)制限されたアクセス制御リストである。制限されたアクセス制御リストが転送処理されるべきパケットのソース/デスティネーションアドレス、アプリケーション層プロトコルタイプ、もしくはトランスポート層プロトコルタイプ、及び/又はパケットヘッダに含まれる特定のキーワードのような情報に一致する記録を有する場合には、転送処理されるべきパケットに対する転送処理を実行する態様は、パケットを直接破棄してよい。反対に、制限されたアクセス制御リストが転送処理されるべきパケットのソース/デスティネーションアドレス、アプリケーション層プロトコルタイプ、もしくはトランスポート層プロトコルタイプ、及び/又はパケットヘッダに含まれる特定のキーワードのような情報に一致する記録を有さない場合には、転送処理されるべきパケットに対する転送処理を実行する態様は、パケットを転送してよい。他の例では、アクセス制御リストは、(ホワイトリストと同様の)許可されたアクセス制御リストである。許可されたアクセス制御リストが転送処理されるべきパケットのソース/デスティネーションアドレス、アプリケーション層プロトコルタイプ、もしくはトランスポート層プロトコルタイプ、及び/又はパケットヘッダに含まれる特定のキーワードのような情報に一致する記録を有さない場合には、転送処理されるべきパケットに対する転送処理を実行する態様は、パケットを直接破棄してよい。許可されたアクセス制御リストが転送処理されるべきパケットのソース/デスティネーションアドレス、アプリケーション層プロトコルタイプ、もしくはトランスポート層プロトコルタイプ、及び/又はパケットヘッダに含まれる特定のキーワードのような情報に一致する記録を有する場合には、転送処理されるべきパケットに対する転送処理を実行する態様は、パケットを転送してよい。複数の他の場合は、類推によって処理されてよい。
本実施形態において、ホスト1000の各モジュールの複数の機能が、複数の前述された方法の実施形態において説明された方法に従って具体的に実装されてよいことが理解されよう。その具体的な実装プロセスについては、複数の前述された実施形態において関連する説明を参照し、詳細は本明細書において再度説明されない。
本実施形態に係る解決手段において、仮想マシン及びホストがフロー制御ポリシの実行者を交渉するメカニズムが導入され、これにより、仮想マシン及びホストの両方は、フロー制御ポリシの実行者となる機会を有する。これにより、仮想マシンは、フロー制御ポリシを実行可能となり、可能な限り早くパケットに対するフロー制御を実行することに寄与し、効果的ではない処理の削減ならびに無効なパケットフローによって占有される帯域幅及びホストのアドレス空間の縮小にさらに寄与することが理解されよう。この解決手段は、仮想マシンのアウトバウンドパケットフローに対する転送処理を実行するために占有されるホストのアドレス空間を縮小することに寄与することが理解されよう。さらに、フロー制御ポリシの実行者は、交渉によってに決定され、フロー制御ポリシ実行の信頼性向上に寄与する。
さらに、仮想マシン及びホストの両方がフロー制御ポリシの実行をサポートする場合には、仮想マシンは、フロー制御ポリシの実行において優先される。これは、可能な限り早くパケットに対するフロー制御を実行することにさらに寄与し、効果的ではない処理及び無効なパケットフローによって占有される帯域幅の縮小にさらに寄与する。
さらに、仮想マシン及びホストは、複雑なアプリケーション環境に対する製品の適合性向上、環境移行のアップグレードコスト削減に寄与するモジュラーアーキテクチャを用いることによって設計される。
図11を参照すると、本発明の実施形態は、コンピューティングノード1100をさらに提供し、これは、ハードウェア層1110と、ハードウェア層において動作するホスト1102と、ホスト1102上で動作する少なくとも1つの仮想マシン1103と、を含んでよい。
仮想マシン1103は、仮想マシン1103とホスト1102との間で、仮想マシン1103のフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉し、フロー制御ポリシの交渉された実行者が仮想マシンであると決定された場合には、フロー制御ポリシに基づいて、転送処理されるべきパケットに対する転送処理を実行し、フロー制御ポリシの交渉された実行者がホスト1102であると決定された場合には、転送処理されるべきパケットをホスト1102に送信するように構成される。
ホスト1102は、フロー制御ポリシの交渉された実行者がホスト1102であると決定された場合には、フロー制御ポリシに基づいて、受信されたパケットに対する転送処理を、パケットを仮想マシンから受信した後で実行するように構成される。
本発明のいくつかの実施形態において、仮想マシン1103とホスト1102との間で、仮想マシン1103のフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉するために、仮想マシンは、仮想マシンのフロー制御機能についての記述情報を含む実行者交渉要求をホスト1102に送信し、交渉確認インジケーションが受信された場合には、フロー制御ポリシの交渉された実行者が仮想マシンであると決定し、交渉不確認インジケーションが受信された場合には、フロー制御ポリシの交渉された実行者がホスト1102であると決定するように具体的に構成され、交渉確認インジケーションは、ホスト1102がフロー制御機能についての記述情報に従って、仮想マシンがフロー制御ポリシの実行をサポートすると決定した後で、ホスト1102によって送信され、交渉不確認インジケーションは、ホスト1102がフロー制御機能についての記述情報に従って、仮想マシンがフロー制御ポリシの実行をサポートしないと決定した後で、ホスト1102によって送信される。
代わりに、仮想マシン1103とホスト1102との間で、仮想マシン1103のフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉するために、仮想マシンは、仮想マシンのフロー制御機能についての記述情報を含む実行者交渉要求をホスト1102に送信し、ホスト1102がフロー制御機能についての記述情報に従って、仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートすると決定した後で、ホスト1102によって送信された交渉確認インジケーションが受信された場合には、フロー制御ポリシの交渉された実行者が仮想マシンであると決定し、ホスト1102がフロー制御機能についての記述情報に従って、仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートしないと決定した後で、ホスト1102によって送信された交渉不確認インジケーションが受信された場合には、フロー制御ポリシの交渉された実行者がホスト1102であると決定するように具体的に構成され、フロー制御機能についての記述情報は、その実行が仮想マシンによってサポートされるフロー制御ポリシのバージョンを記述するために用いられる。
代わりに、仮想マシン1103とホスト1102との間で、仮想マシン1103のフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉するために、仮想マシンは、仮想マシンのフロー制御機能についての記述情報を含む実行者交渉要求をホスト1102に送信し、交渉確認インジケーションが受信された場合には、フロー制御ポリシの交渉された実行者が仮想マシンであると決定し、実行者交渉要求に応答してホスト1102によって送信された交渉確認インジケーションが第1の設定期間内に受信されなかった場合には、フロー制御ポリシの交渉された実行者がホスト1102であると決定するように具体的に構成され、交渉確認インジケーションは、ホスト1102がフロー制御機能についての記述情報に従って、仮想マシンがフロー制御ポリシの実行をサポートすると決定した後で、ホスト1102によって送信される。
代わりに、仮想マシン1103とホスト1102との間で、仮想マシン1103のフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉するために、仮想マシンは、仮想マシンのフロー制御機能についての記述情報を含む実行者交渉要求をホスト1102に送信し、ホスト1102によって送信された交渉確認インジケーションが、ホスト1102がフロー制御機能についての記述情報に従って、仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートすると決定した後で受信された場合には、フロー制御ポリシの交渉された実行者が仮想マシンであると決定し、実行者交渉要求に応答してホスト1102によって送信された交渉確認インジケーションが第1の設定期間内に受信されなかった場合には、フロー制御ポリシの交渉された実行者がホスト1102であると決定するように具体的に構成され、フロー制御機能についての記述情報は、その実行が仮想マシンによってサポートされるフロー制御ポリシのバージョンを記述するために用いられる。
代わりに、仮想マシン1103とホスト1102との間で、仮想マシン1103のフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉するために、仮想マシンは、仮想マシンのフロー制御機能についての記述情報を含む実行者交渉要求をホスト1102に送信し、交渉不確認インジケーションが受信された場合には、フロー制御ポリシの交渉された実行者がホスト1102であると決定し、実行者交渉要求に応答してホスト1102によって送信された交渉不確認インジケーションが第2の設定期間内に受信されなかった場合には、フロー制御ポリシの交渉された実行者が仮想マシンであると決定するように具体的に構成され、交渉不確認インジケーションは、ホスト1102がフロー制御機能についての記述情報に従って、仮想マシンがフロー制御ポリシの実行をサポートしないと決定した後で、ホスト1102によって送信される。
代わりに、仮想マシン1103とホスト1102との間で、仮想マシン1103のフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉するために、仮想マシン1103は、仮想マシンのフロー制御機能についての記述情報を含む実行者交渉要求をホスト1102に送信し、ホスト1102によって送信された交渉不確認インジケーションが、ホスト1102がフロー制御機能についての記述情報に従って、仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートしないと決定した後で受信された場合には、フロー制御ポリシの交渉された実行者がホスト1102であると決定し、実行者交渉要求に応答してホスト1102によって送信された交渉不確認インジケーションが第2の設定期間内に受信されなかった場合には、フロー制御ポリシの交渉された実行者が仮想マシンであると決定するように具体的に構成され、フロー制御機能についての記述情報は、その実行が仮想マシンによってサポートされるフロー制御ポリシのバージョンを記述するために用いられる。
本発明のいくつかの実施形態において、ホスト1102は、仮想マシンによって送信され、かつ、仮想マシンのフロー制御機能についての記述情報を含む実行者交渉要求を受信し、フロー制御機能についての記述情報に従って、仮想マシンがフロー制御ポリシの実行をサポートすると決定された場合には、交渉確認インジケーションを仮想マシンに送信し、及び/又は、フロー制御機能についての記述情報に従って、仮想マシンがフロー制御ポリシの実行をサポートしないと決定された場合には、交渉不確認インジケーションを仮想マシンに送信してよく、交渉確認インジケーションは、フロー制御ポリシの交渉された実行者が仮想マシンであることを示し、交渉不確認インジケーションは、フロー制御ポリシの交渉された実行者がホストであることを示す。
本発明のいくつかの他の実施形態において、ホスト1102は、仮想マシンによって送信され、かつ、仮想マシンのフロー制御機能についての記述情報を含む実行者交渉要求を受信し、フロー制御機能についての記述情報に従って、仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートすると決定された場合には、交渉確認インジケーションを仮想マシンに送信し、及び/又は、フロー制御機能についての記述情報に従って、仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートしないと決定された場合には、交渉不確認インジケーションを仮想マシンに送信してよく、フロー制御機能についての記述情報は、その実行が仮想マシンによってサポートされるフロー制御ポリシのバージョンを記述するために用いられ、交渉確認インジケーションは、フロー制御ポリシの交渉された実行者が仮想マシンであることを示し、交渉不確認インジケーションは、フロー制御ポリシの交渉された実行者がホストであることを示す。
本発明のいくつかの実施形態において、フロー制御機能についての記述情報が、その実行が仮想マシンによってサポートされるフロー制御ポリシのバージョンを記述するために用いられる場合には、ホスト1102が、フロー制御機能についての記述情報に従って、仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートするか否かを決定してよいことは、具体的には、フロー制御機能についての記述情報によって記述され、かつ、その実行が仮想マシンによってサポートされるフロー制御ポリシのバージョンが、フロー制御ポリシの現在の最新バージョン又は事前設定されたバージョンと同じか否かを比較によって決定することと、これらが同じ場合には、仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートすると決定することと、これらが異なる場合には、仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートしないと決定することと、を含んでよい。他の例では、ホスト1102が、フロー制御機能についての記述情報に従って、仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートするか否かを決定してよいことは、具体的には、その実行が仮想マシンによってサポートされるフロー制御ポリシのフロー制御機能についての記述情報によって記述されるk個(kは正の整数)のバージョンの各バージョンがフロー制御ポリシの現在の最新バージョン又は事前設定されたバージョンと同じか否かを比較によって決定することと、k個のバージョンのうち1つのバージョンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシであることが比較によって得られた場合には、仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートすると決定することと、k個のバージョンのうちいずれか1つのバージョンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシと異なることが比較によって得られた場合には、仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートしないと決定することと、を含んでよい。
本発明のいくつかの実施形態において、ホスト1102は、フロー制御ポリシの交渉された実行者が仮想マシンであると決定された後で、ハートビートメッセージが設定期間内に仮想マシンから受信されなかった場合には、フロー制御ポリシの実行者がホスト1102にスイッチされたことを示すために用いられるインジケーションメッセージを仮想マシンに送信するようにさらに構成される。
本発明のいくつかの実施形態において、交渉確認インジケーションは、フロー制御ポリシを含んでよく、仮想マシンによって、フロー制御ポリシに基づいて、転送処理されるべきパケットに対する転送処理を実行するために、仮想マシンは、交渉確認インジケーションに含まれるフロー制御ポリシに基づいて、転送処理されるべきパケットに対する転送処理を実行するように具体的に構成される。
勿論、ホスト1102は、複数の他の態様において、フロー制御ポリシを仮想マシンに転送し、これにより、仮想マシン1103は、フロー制御ポリシの交渉された実行者が仮想マシンであると決定された後で、ホスト1102によって転送されたフロー制御ポリシに基づいて、転送処理されるべきパケットに対する転送処理を実行してもよい。勿論、フロー制御ポリシは、仮想マシン1103において予め設定されてもよい。仮想マシン1103が、フロー制御ポリシの交渉された実行者が仮想マシン1103であると決定する場合には、仮想マシン1103は、予め設定されたフロー制御ポリシに基づいて、転送処理されるべきパケットに対する転送処理を実行する。
本発明のいくつかの実施形態において、仮想マシン1103が仮想マシン1103のフロー制御機能についての記述情報を含む実行者交渉要求をホスト1102に送信するという理由で、仮想マシン1103は、ユーザモードプロセスによって開始された交渉開始要求が受信された後で、仮想マシン1103のフロー制御機能についての記述情報を含む実行者交渉要求をホスト1102に送信し、又は、ホスト1102から交渉開始要求が受信された後で、仮想マシン1103のフロー制御機能についての記述情報を含む実行者交渉要求をホスト1102に送信するように具体的に構成される。
本実施形態において、ホスト1102又は仮想マシン1103が転送処理されるべきパケットを処理するベースとなるフロー制御ポリシは、例えば、サービス品質に基づくフロー制御ポリシ及び/又はアクセス制御リストに基づくフロー制御ポリシであってよい。勿論、フロー制御ポリシは、複数の他の要素を参照するフロー制御ポリシであってもよい。
サービス品質に基づくフロー制御ポリシにおいて、パケットに対する転送処理を実行する特定の態様(特定の転送処理態様は、パケットを遅延させて送信、パケットを遅延なく送信、又はパケットを破棄してよい等)は、主に、転送処理されるべきパケットに対応するサービス優先度に基づいて決定される。例えば、複数の転送処理されるべきパケットが現在キャッシュに存在するとして、より高いサービス優先度に対応するパケットは、より短い遅延で、又はさらに遅延なく送信されてよく、より低いサービス優先度に対応するパケットは、より長い遅延で送信されてよく、設定された優先度閾値より低いサービス優先度に対応する転送処理されるべきパケットは、さらに破棄されてよい。これは、優先度の高いサービスのサービス品質を可能な限り確保することに寄与する。すなわち、サービス品質に基づいて、フロー制御ポリシに従って転送処理されるべきパケットに対する転送処理を実行する段階は、具体的には、転送処理されるべきパケットのサービス優先度に対応する転送処理態様に従って転送処理されるべきパケットに対する転送処理を実行する段階を含んでよい。
アクセス制御リストに基づくフロー制御ポリシにおいて、パケットに対する転送処理を実行する特定の態様は、主に、転送処理されるべきパケットに含まれる情報がアクセス制御リストに含まれる記録に一致するか否かに基づいて決定される。例えば、アクセス制御リストは、(ブラックリストと同様の)制限されたアクセス制御リストである。制限されたアクセス制御リストが転送処理されるべきパケットのソース/デスティネーションアドレス、アプリケーション層プロトコルタイプ、もしくはトランスポート層プロトコルタイプ、及び/又はパケットヘッダに含まれる特定のキーワードのような情報に一致する記録を有する場合には、転送処理されるべきパケットに対する転送処理を実行する態様は、パケットを直接破棄してよい。反対に、制限されたアクセス制御リストが転送処理されるべきパケットのソース/デスティネーションアドレス、アプリケーション層プロトコルタイプ、もしくはトランスポート層プロトコルタイプ、及び/又はパケットヘッダに含まれる特定のキーワードのような情報に一致する記録を有さない場合には、転送処理されるべきパケットに対する転送処理を実行する態様は、パケットを転送してよい。他の例では、アクセス制御リストは、(ホワイトリストと同様の)許可されたアクセス制御リストである。許可されたアクセス制御リストが転送処理されるべきパケットのソース/デスティネーションアドレス、アプリケーション層プロトコルタイプ、もしくはトランスポート層プロトコルタイプ、及び/又はパケットヘッダに含まれる特定のキーワードのような情報に一致する記録を有さない場合には、転送処理されるべきパケットに対する転送処理を実行する態様は、パケットを直接破棄してよい。許可されたアクセス制御リストが転送処理されるべきパケットのソース/デスティネーションアドレス、アプリケーション層プロトコルタイプ、もしくはトランスポート層プロトコルタイプ、及び/又はパケットヘッダに含まれる特定のキーワードのような情報に一致する記録を有する場合には、転送処理されるべきパケットに対する転送処理を実行する態様は、パケットを転送してよい。複数の他の場合は、類推によって処理されてよい。
本実施形態において、コンピューティングノード1100の各ユニットの複数の機能は、複数の前述された方法の実施形態において説明された方法に従って具体的に実装されてよいことが理解されよう。その具体的な実装プロセスについては、複数の前述された実施形態において関連する説明を参照し、詳細は本明細書において再度説明されない。
本実施形態に係る解決手段において、仮想マシン及びホストがフロー制御ポリシの実行者を交渉するメカニズムがコンピューティングノード1100に導入され、これにより、仮想マシン及びホストの両方は、フロー制御ポリシの実行者となる機会を有する。これにより、仮想マシンは、フロー制御ポリシを実行可能となり、可能な限り早くパケットに対するフロー制御を実行することに寄与し、効果的ではない処理の削減ならびに無効なパケットフローによって占有される帯域幅及びホストのアドレス空間の縮小にさらに寄与することが理解されよう。この解決手段は、仮想マシンのアウトバウンドパケットフローに対する転送処理を実行するために占有されるホストのアドレス空間を縮小することに寄与することが理解されよう。さらに、フロー制御ポリシの実行者は、交渉によってに決定され、フロー制御ポリシ実行の信頼性向上に寄与する。
さらに、仮想マシン及びホストの両方がフロー制御ポリシの実行をサポートする場合には、仮想マシンは、フロー制御ポリシの実行において優先される。これは、可能な限り早くパケットに対するフロー制御を実行することにさらに寄与し、効果的ではない処理及び無効なパケットフローによって占有される帯域幅の縮小にさらに寄与する。
さらに、仮想マシン及びホストは、複雑なアプリケーション環境に対する製品の適合性向上、及び環境移行のアップグレードコスト削減に寄与するモジュラーアーキテクチャを用いることによって設計される。
図12は、本発明の実施形態に係るコンピューティングノード1200の構造を示す。コンピューティングノード1200は、少なくとも1つのプロセッサ1201、例えばCPUと、少なくとも1つのネットワークインタフェース1204又は他のユーザインタフェース1203と、ストレージ1205と、少なくとも1つの通信バス1202と、を含む。通信バス1202は、これらのコンポーネントの間における接続及び通信を実装するように構成される。任意に、コンピューティングノード1200は、ユーザインタフェース1203を含み、これは、ディスプレイ、キーボード、又は(マウス、トラックボール(trackball)、タッチパッド、もしくはタッチスクリーンのような)クリックデバイスを含む。ストレージ1205は、高速RAMメモリを含んでよく、少なくとも1つのディスクメモリのような不揮発性メモリ(non−volatile memory)をさらに含んでよい。ストレージ1205は、プロセッサ1201から離れた少なくとも1つの記憶装置を任意に含んでよい。ネットワークインタフェース1204は、物理ネットワークインタフェースカード等を含む。
いくつかの実装態様において、ストレージ1205は、以下の要素、実行可能なモジュールもしくはデータ構造、又はこれらのサブセット、又はこれらの拡張されたセット、ホスト12051及び少なくとも1つの仮想マシン12052を格納する。ホスト12051は、プロセッサ1201起動の下で、複数の前述された実施形態において説明されたホストの機能の一部又は全部を有してよく、仮想マシン12052は、プロセッサ1201起動の下で、複数の前述された実施形態において説明された仮想マシンの機能の一部又は全部を有してよい。
本発明の本実施形態において、仮想マシン12052は、プロセッサ1201起動の下で、仮想マシン12052とホスト12051との間で、仮想マシンのフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉し、フロー制御ポリシの交渉された実行者が仮想マシンであると決定された場合には、フロー制御ポリシに基づいて、転送処理されるべきパケットに対する転送処理を実行し、フロー制御ポリシの交渉された実行者がホスト12051であると決定された場合には、転送処理されるべきパケットをホスト12051に送信するように構成されてよい。
ホスト12051は、プロセッサ1201起動の下で、フロー制御ポリシの交渉された実行者がホスト12051であると決定された場合には、フロー制御ポリシに基づいて、受信されたパケットに対する転送処理を、パケットを仮想マシン12052から受信した後で実行するように構成されてよい。
本発明のいくつかの実施形態において、仮想マシン12052とホスト12051との間で、仮想マシンのフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉するために、仮想マシン12052は、プロセッサ1201起動の下で、仮想マシンのフロー制御機能についての記述情報を含む実行者交渉要求をホスト12051に送信し、交渉確認インジケーションが受信された場合には、フロー制御ポリシの交渉された実行者が仮想マシンであると決定し、交渉不確認インジケーションが受信された場合には、フロー制御ポリシの交渉された実行者がホスト12051であると決定するように具体的に構成され、交渉確認インジケーションは、ホスト12051がフロー制御機能についての記述情報に従って、仮想マシンがフロー制御ポリシの実行をサポートすると決定した後で、ホスト12051によって送信され、交渉不確認インジケーションは、ホスト12051がフロー制御機能についての記述情報に従って、仮想マシンがフロー制御ポリシの実行をサポートしないと決定した後で、ホスト12051によって送信される。
代わりに、仮想マシン12052とホスト12051との間で、仮想マシンのフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉するために、仮想マシン12052は、プロセッサ1201起動の下で、仮想マシンのフロー制御機能についての記述情報を含む実行者交渉要求をホスト12051に送信し、ホスト12051がフロー制御機能についての記述情報に従って、仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートすると決定した後で、ホスト12051によって送信された交渉確認インジケーションが受信された場合には、フロー制御ポリシの交渉された実行者が仮想マシンであると決定し、ホスト12051がフロー制御機能についての記述情報に従って、仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートしないと決定した後で、ホスト12051によって送信された交渉不確認インジケーションが受信された場合には、フロー制御ポリシの交渉された実行者がホスト12051であると決定するように具体的に構成され、フロー制御機能についての記述情報は、その実行が仮想マシンによってサポートされるフロー制御ポリシのバージョンを記述するために用いられる。
代わりに、仮想マシン12052とホスト12051との間で、仮想マシンのフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉するために、仮想マシン12052は、プロセッサ1201起動の下で、仮想マシンのフロー制御機能についての記述情報を含む実行者交渉要求をホスト12051に送信し、交渉確認インジケーションが受信された場合には、フロー制御ポリシの交渉された実行者が仮想マシンであると決定し、実行者交渉要求に応答してホスト12051によって送信された交渉確認インジケーションが第1の設定期間内に受信されなかった場合には、フロー制御ポリシの交渉された実行者がホスト12051であると決定するように具体的に構成され、交渉確認インジケーションは、ホスト12051がフロー制御機能についての記述情報に従って、仮想マシンがフロー制御ポリシの実行をサポートすると決定した後で、ホスト12051によって送信される。
代わりに、仮想マシン12052とホスト12051との間で、仮想マシンのフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉するために、仮想マシン12052は、プロセッサ1201起動の下で、仮想マシンのフロー制御機能についての記述情報を含む実行者交渉要求をホスト12051に送信し、ホスト12051によって送信された交渉確認インジケーションが、ホスト12051がフロー制御機能についての記述情報に従って、仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートすると決定した後で受信された場合には、フロー制御ポリシの交渉された実行者が仮想マシンであると決定し、実行者交渉要求に応答してホスト12051によって送信された交渉確認インジケーションが第1の設定期間内に受信されなかった場合には、フロー制御ポリシの交渉された実行者がホスト12051であると決定するように具体的に構成され、フロー制御機能についての記述情報は、その実行が仮想マシンによってサポートされるフロー制御ポリシのバージョンを記述するために用いられる。
代わりに、仮想マシン12052とホスト12051との間で、仮想マシンのフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉するために、仮想マシン12052は、プロセッサ1201起動の下で、仮想マシンのフロー制御機能についての記述情報を含む実行者交渉要求をホスト12051に送信し、交渉不確認インジケーションが受信された場合には、フロー制御ポリシの交渉された実行者がホスト12051であると決定し、実行者交渉要求に応答してホスト12051によって送信された交渉不確認インジケーションが第2の設定期間内に受信されなかった場合には、フロー制御ポリシの交渉された実行者が仮想マシンであると決定するように具体的に構成され、交渉不確認インジケーションは、ホスト12051がフロー制御機能についての記述情報に従って、仮想マシンがフロー制御ポリシの実行をサポートしないと決定した後で、ホスト12051によって送信される。
代わりに、仮想マシン12052とホスト12051との間で、仮想マシンのフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉するために、仮想マシン12052は、プロセッサ1201起動の下で、仮想マシンのフロー制御機能についての記述情報を含む実行者交渉要求をホスト12051に送信し、ホスト12051によって送信された交渉不確認インジケーションが、ホスト12051がフロー制御機能についての記述情報に従って、仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートしないと決定した後で受信された場合には、フロー制御ポリシの交渉された実行者がホスト12051であると決定し、実行者交渉要求に応答してホスト12051によって送信された交渉不確認インジケーションが第2の設定期間内に受信されなかった場合には、フロー制御ポリシの交渉された実行者が仮想マシンであると決定するように具体的に構成され、フロー制御機能についての記述情報は、その実行が仮想マシンによってサポートされるフロー制御ポリシのバージョンを記述するために用いられる。
本発明のいくつかの実施形態において、フロー制御機能についての記述情報が、その実行が仮想マシンによってサポートされるフロー制御ポリシのバージョンを記述するために用いられる場合には、ホスト12051が、プロセッサ1201起動の下で、フロー制御機能についての記述情報に従って、仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートするか否かを決定してよいことは、具体的には、フロー制御機能についての記述情報によって記述され、かつ、その実行が仮想マシンによってサポートされるフロー制御ポリシのバージョンが、フロー制御ポリシの現在の最新バージョン又は事前設定されたバージョンと同じか否かを比較によって決定することと、これらが同じ場合には、仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートすると決定することと、これらが異なる場合には、仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートしないと決定することと、を含んでよい。他の例では、ホスト12051が、プロセッサ1201起動の下で、フロー制御機能についての記述情報に従って、仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートするか否かを決定してよいことは、具体的には、その実行が仮想マシンによってサポートされるフロー制御ポリシのフロー制御機能についての記述情報によって記述されるk個(kは正の整数)のバージョンの各バージョンがフロー制御ポリシの現在の最新バージョン又は事前設定されたバージョンと同じか否かを比較によって決定することと、k個のバージョンのうち1つのバージョンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシであることが比較によって得られた場合には、仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートすると決定することと、k個のバージョンのうちいずれか1つのバージョンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシと異なることが比較によって得られた場合には、仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートしないと決定することと、を含んでよい。
本発明のいくつかの実施形態において、ホスト12051は、プロセッサ1201起動の下で、フロー制御ポリシの交渉された実行者が仮想マシンであると決定された後で、ハートビートメッセージが設定期間内に仮想マシンから受信されなかった場合には、フロー制御ポリシの実行者がホスト12051にスイッチされたことを示すために用いられるインジケーションメッセージを仮想マシンに送信するようにさらに構成される。
本発明のいくつかの実施形態において、交渉確認インジケーションは、フロー制御ポリシを含んでよく、仮想マシンによって、フロー制御ポリシに基づいて、転送処理されるべきパケットに対する転送処理を実行するために、仮想マシン12052は、交渉確認インジケーションに含まれるフロー制御ポリシに基づいて、転送処理されるべきパケットに対する転送処理を実行するように具体的に構成される。
勿論、ホスト12051は、複数の他の態様において、フロー制御ポリシを仮想マシンに転送し、これにより、仮想マシン12052は、フロー制御ポリシの交渉された実行者が仮想マシンであると決定された後で、ホスト12051によって転送されたフロー制御ポリシに基づいて、転送処理されるべきパケットに対する転送処理を実行してもよい。勿論、フロー制御ポリシは、仮想マシン12052において予め設定されてもよい。仮想マシン12052が、フロー制御ポリシの交渉された実行者が仮想マシン12052であると決定する場合には、仮想マシン12052は、予め設定されたフロー制御ポリシに基づいて、転送処理されるべきパケットに対する転送処理を実行する。
本発明のいくつかの実施形態において、仮想マシン12052が仮想マシン12052のフロー制御機能についての記述情報を含む実行者交渉要求をホスト12051に送信するという理由で、仮想マシン12052は、プロセッサ1201起動の下で、ユーザモードプロセスによって開始された交渉開始要求が受信された後で、仮想マシン12052のフロー制御機能についての記述情報を含む実行者交渉要求をホスト12051に送信し、又は、ホスト12051から交渉開始要求が受信された後で、仮想マシン12052のフロー制御機能についての記述情報を含む実行者交渉要求をホスト12051に送信するように具体的に構成される。
本実施形態において、ホスト12051又は仮想マシン12052が転送処理されるべきパケットを処理するベースとなるフロー制御ポリシは、例えば、サービス品質に基づくフロー制御ポリシ及び/又はアクセス制御リストに基づくフロー制御ポリシであってよい。勿論、フロー制御ポリシは、複数の他の要素を参照するフロー制御ポリシであってもよい。
サービス品質に基づくフロー制御ポリシにおいて、パケットに対する転送処理を実行する特定の態様(特定の転送処理態様は、パケットを遅延させて送信、パケットを遅延なく送信、又はパケットを破棄してよい等)は、主に、転送処理されるべきパケットに対応するサービス優先度に基づいて決定される。例えば、複数の転送処理されるべきパケットが現在キャッシュに存在するとして、より高いサービス優先度に対応するパケットは、より短い遅延で、又はさらに遅延なく送信されてよく、より低いサービス優先度に対応するパケットは、より長い遅延で送信されてよく、設定された優先度閾値より低いサービス優先度に対応する転送処理されるべきパケットは、さらに破棄されてよい。これは、優先度の高いサービスのサービス品質を可能な限り確保することに寄与する。すなわち、サービス品質に基づいて、フロー制御ポリシに従って転送処理されるべきパケットに対する転送処理を実行する段階は、具体的には、転送処理されるべきパケットのサービス優先度に対応する転送処理態様に従って転送処理されるべきパケットに対する転送処理を実行する段階を含んでよい。
アクセス制御リストに基づくフロー制御ポリシにおいて、パケットに対する転送処理を実行する特定の態様は、主に、転送処理されるべきパケットに含まれる情報がアクセス制御リストに含まれる記録に一致するか否かに基づいて決定される。例えば、アクセス制御リストは、(ブラックリストと同様の)制限されたアクセス制御リストである。制限されたアクセス制御リストが転送処理されるべきパケットのソース/デスティネーションアドレス、アプリケーション層プロトコルタイプ、もしくはトランスポート層プロトコルタイプ、及び/又はパケットヘッダに含まれる特定のキーワードのような情報に一致する記録を有する場合には、転送処理されるべきパケットに対する転送処理を実行する態様は、パケットを直接破棄してよい。反対に、制限されたアクセス制御リストが転送処理されるべきパケットのソース/デスティネーションアドレス、アプリケーション層プロトコルタイプ、もしくはトランスポート層プロトコルタイプ、及び/又はパケットヘッダに含まれる特定のキーワードのような情報に一致する記録を有さない場合には、転送処理されるべきパケットに対する転送処理を実行する態様は、パケットを転送してよい。他の例では、アクセス制御リストは、(ホワイトリストと同様の)許可されたアクセス制御リストである。許可されたアクセス制御リストが転送処理されるべきパケットのソース/デスティネーションアドレス、アプリケーション層プロトコルタイプ、もしくはトランスポート層プロトコルタイプ、及び/又はパケットヘッダに含まれる特定のキーワードのような情報に一致する記録を有さない場合には、転送処理されるべきパケットに対する転送処理を実行する態様は、パケットを直接破棄してよい。許可されたアクセス制御リストが転送処理されるべきパケットのソース/デスティネーションアドレス、アプリケーション層プロトコルタイプ、もしくはトランスポート層プロトコルタイプ、及び/又はパケットヘッダに含まれる特定のキーワードのような情報に一致する記録を有する場合には、転送処理されるべきパケットに対する転送処理を実行する態様は、パケットを転送してよい。複数の他の場合は、類推によって処理されてよい。
本実施形態において、コンピューティングノード1200の各ユニットの複数の機能は、複数の前述された方法の実施形態において説明された方法に従って具体的に実装されてよいことが理解されよう。その具体的な実装プロセスについては、複数の前述された実施形態において関連する説明を参照し、詳細は本明細書において再度説明されない。
本実施形態に係る解決手段において、仮想マシン及びホストがフロー制御ポリシの実行者を交渉するメカニズムがコンピューティングノード1200に導入され、これにより、仮想マシン及びホストの両方は、フロー制御ポリシの実行者となる機会を有する。これにより、仮想マシンは、フロー制御ポリシを実行可能となり、可能な限り早くパケットに対するフロー制御を実行することに寄与し、効果的ではない処理の削減ならびに無効なパケットフローによって占有される帯域幅及びホストのアドレス空間の縮小にさらに寄与することが理解されよう。この解決手段は、仮想マシンのアウトバウンドパケットフローに対する転送処理を実行するために占有されるホストのアドレス空間を縮小することに寄与することが理解されよう。さらに、フロー制御ポリシの実行者は、交渉によってに決定され、フロー制御ポリシ実行の信頼性向上に寄与する。
さらに、仮想マシン及びホストの両方がフロー制御ポリシの実行をサポートする場合には、仮想マシンは、フロー制御ポリシの実行において優先される。これは、可能な限り早くパケットに対するフロー制御を実行することにさらに寄与し、効果的ではない処理及び無効なパケットフローによって占有される帯域幅の縮小にさらに寄与する。
図13は、本発明の実施形態に係るコンピューティングノード1300の構造を示す。コンピューティングノード1300は、少なくとも1つのプロセッサ1301、例えばCPUと、少なくとも1つのネットワークインタフェース1304と、ストレージ1305と、少なくとも1つの通信バス1302と、を含む。通信バス1302は、これらのコンポーネントの間における接続及び通信を実装するように構成される。任意に、コンピューティングノード1300は、ユーザインタフェース1303を含み、これは、ディスプレイ、キーボード、又は(マウス、トラックボール(trackball)、タッチパッド、もしくはタッチスクリーンのような)クリックデバイスを含む。ストレージ1305は、高速RAMメモリを含んでよく、少なくとも1つのディスクメモリのような不揮発性メモリ(non−volatile memory)をさらに含んでよい。ストレージ1305は、プロセッサ1301から離れた少なくとも1つの記憶装置を任意に含んでよい。ネットワークインタフェース1304は、物理ネットワークインタフェースカード等を含む。
いくつかの実装態様において、ストレージ1305は、以下の要素、実行可能なモジュールもしくはデータ構造、又はこれらのサブセット、又はこれらの拡張されたセット、ホスト13051及び少なくとも1つの仮想マシン13052を格納する。ホスト13051は、プロセッサ1301起動の下で、複数の前述された実施形態において説明されたホストの機能の一部又は全部を有してよく、仮想マシン13052は、プロセッサ1301起動の下で、複数の前述された実施形態において説明された仮想マシンの機能の一部又は全部を有してよい。
本発明の本実施形態において、プロセッサ1301は、ストレージ1305に格納されたプログラム又は複数の命令を呼び出すことによって、ホスト13051と仮想マシン13052との間で、仮想マシン13052のフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉し、フロー制御ポリシの交渉された実行者が仮想マシン13052である場合には、フロー制御ポリシに基づいて、仮想マシン13052の転送処理されるべきパケットに対する転送処理を実行し、フロー制御ポリシの交渉された実行者がホスト13051である場合には、仮想マシン13052の転送処理されるべきパケットをホスト13051に送信し、フロー制御ポリシに基づいて、ホスト13051によって受信された転送処理されるべきパケットに対する転送処理を実行するように構成されてよい。
本発明のいくつかの実施形態において、プロセッサ1301が、ホスト13051と仮想マシン13052との間で、仮想マシン13052のフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉することは、仮想マシン13052によってホスト13051に送信されるべき実行者交渉要求を、プロセッサ1301によってホスト13051に送信することであって、実行者交渉要求は、仮想マシン13052のフロー制御機能についての記述情報を含むことと、
ホスト13051が実行者交渉要求を受信した後で、プロセッサ1301がフロー制御機能についての記述情報に従って、仮想マシン13052がフロー制御ポリシの実行をサポートすると決定した場合には、ホスト13051によって仮想マシン13052に送信されるべき交渉確認インジケーションを、プロセッサ1301によって仮想マシン13052に送信することであって、交渉確認インジケーションは、フロー制御ポリシの交渉された実行者が仮想マシン13052であることを示すこと、及び/又は、プロセッサ1301がフロー制御機能についての記述情報に従って、仮想マシン13052がフロー制御ポリシの実行をサポートしないと決定した場合には、ホスト13051によって仮想マシン13052に送信されるべき交渉不確認インジケーションを、プロセッサ1301によって仮想マシン13052に送信することであって、交渉不確認インジケーションは、フロー制御ポリシの交渉された実行者がホスト13051であることを示すことと、
を含んでよい。
代わりに、プロセッサ1301が、ホスト13051と仮想マシン13052との間で、仮想マシン13052のフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉することは、仮想マシン13052によってホスト13051に送信されるべき実行者交渉要求を、プロセッサ1301によってホスト13051に送信することであって、実行者交渉要求は、仮想マシン13052のフロー制御機能についての記述情報を含み、フロー制御機能についての記述情報は、その実行が仮想マシン13052によってサポートされるフロー制御ポリシのバージョンを記述するために用いられることと、
ホスト13051が実行者交渉要求を受信した後で、プロセッサ1301が、フロー制御機能についての記述情報に従って、仮想マシン13052が現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートすると決定した場合には、ホスト13051によって仮想マシン13052に送信されるべき交渉確認インジケーションをプロセッサ1301によって仮想マシン13052に送信することであって、交渉確認インジケーションは、フロー制御ポリシの交渉された実行者が仮想マシン13052であることを示すこと、及び/又は、プロセッサ1301がフロー制御機能についての記述情報に従って、仮想マシン13052が現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートしないと決定した場合には、ホスト13051によって仮想マシン13052に送信されるべき交渉不確認インジケーションを、プロセッサ1301によって仮想マシン13052に送信することであって、交渉不確認インジケーションは、フロー制御ポリシの交渉された実行者がホスト13051であることを示すことと、
を含む。
本発明のいくつかの他の実施形態において、プロセッサ1301が、ホスト13051と仮想マシン13052との間で、仮想マシン13052のフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉することは、仮想マシン13052によってホスト13051に送信されるべき実行者交渉要求を、プロセッサ1301によってホスト13051に送信することであって、実行者交渉要求は、仮想マシン13052のフロー制御機能についての記述情報を含むことと、実行者交渉要求に応答してホスト13051によって送信された交渉確認インジケーションが仮想マシン13052によって受信された場合には、プロセッサ1301によって、フロー制御ポリシの交渉された実行者が仮想マシンであると決定することと、実行者交渉要求に応答してホスト13051によって送信された交渉不確認インジケーションが仮想マシン13052によって受信された場合には、プロセッサ1301によって、フロー制御ポリシの交渉された実行者がホスト13051であると決定することと、を含んでよい。
代わりに、プロセッサ1301が、ホスト13051と仮想マシン13052との間で、仮想マシン13052のフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉することは、仮想マシン13052によってホスト13051に送信されるべき実行者交渉要求を、プロセッサ1301によってホスト13051に送信することであって、実行者交渉要求は、仮想マシン13052のフロー制御機能についての記述情報を含み、フロー制御機能についての記述情報は、その実行が仮想マシン13052によってサポートされるフロー制御ポリシのバージョンを記述するために用いられることと、実行者交渉要求に応答してホスト13051によって送信された交渉確認インジケーションが仮想マシン13052によって受信された場合には、プロセッサ1301によって、フロー制御ポリシの交渉された実行者が仮想マシン13052であると決定することと、実行者交渉要求に応答してホスト13051によって送信された交渉不確認インジケーションが仮想マシン13052によって受信された場合には、フロー制御ポリシの交渉された実行者がホスト13051であると決定することと、を含んでよい。
代わりに、プロセッサ1301が、ホスト13051と仮想マシン13052との間で、仮想マシン13052のフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉することは、仮想マシン13052によってホスト13051に送信されるべき実行者交渉要求を、プロセッサ1301によってホスト13051に送信することであって、実行者交渉要求は、仮想マシン13052のフロー制御機能についての記述情報を含むことと、実行者交渉要求に応答してホスト13051によって送信された交渉確認インジケーションが、仮想マシン13052によって受信された場合には、プロセッサ1301によって、フロー制御ポリシの交渉された実行者が仮想マシンであると決定することと、実行者交渉要求に応答してホスト13051によって送信された交渉確認インジケーションが仮想マシン13052によって第1の設定期間内に受信されなかった場合には、プロセッサ1301によって、フロー制御ポリシの交渉された実行者がホスト13051であると決定することと、を含んでよい。
代わりに、プロセッサ1301が、ホスト13051と仮想マシン13052との間で、仮想マシン13052のフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉することは、仮想マシン13052によってホスト13051に送信されるべき実行者交渉要求を、プロセッサ1301によってホスト13051に送信することであって、実行者交渉要求は、仮想マシン13052のフロー制御機能についての記述情報を含み、フロー制御機能についての記述情報は、その実行が仮想マシンによってサポートされるフロー制御ポリシのバージョンを記述するために用いられることと、実行者交渉要求に応答してホスト13051によって送信された交渉確認インジケーションが仮想マシン13052によって受信された場合には、プロセッサ1301によって、フロー制御ポリシの交渉された実行者が仮想マシンであると決定することと、実行者交渉要求に応答してホスト13051によって送信された交渉確認インジケーションが仮想マシン13052によって第1の設定期間内に受信されなかった場合には、プロセッサ1301によって、フロー制御ポリシの交渉された実行者がホスト13051であると決定することと、を含んでよい。
代わりに、プロセッサ1301が、ホスト13051と仮想マシン13052との間で、仮想マシン13052のフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉することは、仮想マシン13052によってホスト13051に送信されるべき実行者交渉要求を、プロセッサ1301によってホスト13051に送信することであって、実行者交渉要求は、仮想マシン13052のフロー制御機能についての記述情報を含むことと、実行者交渉要求に応答してホスト13051によって送信された交渉不確認インジケーションが、仮想マシン13052によって受信された場合には、プロセッサ1301によって、フロー制御ポリシの交渉された実行者がホスト13051であると決定することと、実行者交渉要求に応答してホスト13051によって送信された交渉不確認インジケーションが、仮想マシン13052によって第2の設定期間内に受信されなかった場合には、プロセッサ1301によって、フロー制御ポリシの交渉された実行者が仮想マシンであると決定することと、を含んでよい。
代わりに、プロセッサ1301が、ホスト13051と仮想マシン13052との間で、仮想マシン13052のフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉することは、仮想マシン13052によってホスト13051に送信されるべき実行者交渉要求を、プロセッサ1301によってホスト13051に送信することであって、実行者交渉要求は、仮想マシン13052のフロー制御機能についての記述情報を含み、フロー制御機能についての記述情報は、その実行が仮想マシンによってサポートされるフロー制御ポリシのバージョンを記述するために用いられることと、実行者交渉要求に応答してホスト13051によって送信された交渉不確認インジケーションが、仮想マシン13052によって受信された場合には、プロセッサ1301によって、フロー制御ポリシの交渉された実行者がホスト13051であると決定することと、実行者交渉要求に応答してホスト13051によって送信された交渉不確認インジケーションが、仮想マシン13052によって第2の設定期間内に受信されなかった場合には、プロセッサ1301によって、フロー制御ポリシの交渉された実行者が仮想マシンであると決定することと、を含んでよい。
本発明のいくつかの実施形態において、交渉確認インジケーションは、フロー制御ポリシを含む。
プロセッサ1301が、フロー制御ポリシに基づいて、仮想マシン13052の転送処理されるべきパケットに対する転送処理を実行することは、プロセッサ1301によって、交渉確認インジケーションに含まれるフロー制御ポリシに基づいて、仮想マシン13052の転送処理されるべきパケットに対する転送処理を実行することを含んでよい。
勿論、ホスト13051は、複数の他の態様で、フロー制御ポリシを仮想マシン13052に転送してもよく、これにより、プロセッサ1301は、フロー制御ポリシの交渉された実行者が仮想マシン13052であると決定された後で、ホスト13051によって転送されたフロー制御ポリシに基づいて、仮想マシン13052の転送処理されるべきパケットに対する転送処理を実行する。勿論、フロー制御ポリシは、仮想マシン13052において予め設定されてもよい。フロー制御ポリシの交渉された実行者が仮想マシン13052であると決定される場合には、プロセッサ1301は、予め設定されたフロー制御ポリシに基づいて、仮想マシン13052の転送処理されるべきパケットに対する転送処理を実行する。
本発明のいくつかの実施形態において、ホスト13051が実行者交渉要求を受信した後で、フロー制御機能についての記述情報が、その実行が仮想マシンによってサポートされるフロー制御ポリシのバージョンを記述するために用いられる場合には、プロセッサ1301が、フロー制御機能についての記述情報に従って、仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートするか否かを決定してよいことは、具体的には、フロー制御機能についての記述情報によって記述され、かつ、その実行が仮想マシンによってサポートされるフロー制御ポリシのバージョンが、フロー制御ポリシの現在の最新バージョン又は事前設定されたバージョンと同じか否かを比較によって決定することと、これらが同じ場合には、仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートすると決定することと、これらが異なる場合には、仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートしないと決定することと、を含んでよい。他の例では、プロセッサ1301が、フロー制御機能についての記述情報に従って、仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートするか否かを決定することは、具体的には、その実行が仮想マシンによってサポートされるフロー制御ポリシのフロー制御機能についての記述情報によって記述されるk個(kは正の整数)のバージョンの各バージョンがフロー制御ポリシの現在の最新バージョン又は事前設定されたバージョンと同じか否かを比較によって決定することと、k個のバージョンのうち1つのバージョンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシであることが比較によって得られた場合には、仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートすると決定することと、k個のバージョンのうちいずれか1つのバージョンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシと異なることが比較によって得られた場合には、仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートしないと決定することと、を含んでよい。
本発明のいくつかの実施形態において、フロー制御ポリシの交渉された実行者が仮想マシン13052であると決定された後で、ホスト13051が設定期間内に仮想マシン13052からハートビートメッセージを受信しなかった場合には、プロセッサ1301は、ホスト13051によって仮想マシン13052に送信され、かつ、フロー制御ポリシの実行者がホスト13051にスイッチされたことを示すために用いられるべきインジケーションメッセージを、仮想マシン13052に送信するようにさらに構成される。
本実施形態において、プロセッサ1301がホスト13051又は仮想マシン13052の転送処理されるべきパケットを処理するベースとなるフロー制御ポリシは、例えば、サービス品質に基づくフロー制御ポリシ及び/又はアクセス制御リストに基づくフロー制御ポリシであってよい。勿論、フロー制御ポリシは、複数の他の要素を参照するフロー制御ポリシであってもよい。
サービス品質に基づくフロー制御ポリシにおいて、パケットに対する転送処理を実行する特定の態様(特定の転送処理態様は、パケットを遅延させて送信、パケットを遅延なく送信、又はパケットを破棄してよい等)は、主に、転送処理されるべきパケットに対応するサービス優先度に基づいて決定される。例えば、複数の転送処理されるべきパケットが現在キャッシュに存在するとして、より高いサービス優先度に対応するパケットは、より短い遅延で、又はさらに遅延なく送信されてよく、より低いサービス優先度に対応するパケットは、より長い遅延で送信されてよく、設定された優先度閾値より低いサービス優先度に対応する転送処理されるべきパケットは、さらに破棄されてよい。これは、優先度の高いサービスのサービス品質を可能な限り確保することに寄与する。すなわち、サービス品質に基づいて、フロー制御ポリシに従って転送処理されるべきパケットに対する転送処理を実行する段階は、具体的には、転送処理されるべきパケットのサービス優先度に対応する転送処理態様に従って転送処理されるべきパケットに対する転送処理を実行する段階を含んでよい。
アクセス制御リストに基づくフロー制御ポリシにおいて、パケットに対する転送処理を実行する特定の態様は、主に、転送処理されるべきパケットに含まれる情報がアクセス制御リストに含まれる記録に一致するか否かに基づいて決定される。例えば、アクセス制御リストは、(ブラックリストと同様の)制限されたアクセス制御リストである。制限されたアクセス制御リストが転送処理されるべきパケットのソース/デスティネーションアドレス、アプリケーション層プロトコルタイプ、もしくはトランスポート層プロトコルタイプ、及び/又はパケットヘッダに含まれる特定のキーワードのような情報に一致する記録を有する場合には、転送処理されるべきパケットに対する転送処理を実行する態様は、パケットを直接破棄してよい。反対に、制限されたアクセス制御リストが転送処理されるべきパケットのソース/デスティネーションアドレス、アプリケーション層プロトコルタイプ、もしくはトランスポート層プロトコルタイプ、及び/又はパケットヘッダに含まれる特定のキーワードのような情報に一致する記録を有さない場合には、転送処理されるべきパケットに対する転送処理を実行する態様は、パケットを転送してよい。他の例では、アクセス制御リストは、(ホワイトリストと同様の)許可されたアクセス制御リストである。許可されたアクセス制御リストが転送処理されるべきパケットのソース/デスティネーションアドレス、アプリケーション層プロトコルタイプ、もしくはトランスポート層プロトコルタイプ、及び/又はパケットヘッダに含まれる特定のキーワードのような情報に一致する記録を有さない場合には、転送処理されるべきパケットに対する転送処理を実行する態様は、パケットを直接破棄してよい。許可されたアクセス制御リストが転送処理されるべきパケットのソース/デスティネーションアドレス、アプリケーション層プロトコルタイプ、もしくはトランスポート層プロトコルタイプ、及び/又はパケットヘッダに含まれる特定のキーワードのような情報に一致する記録を有する場合には、転送処理されるべきパケットに対する転送処理を実行する態様は、パケットを転送してよい。複数の他の場合は、類推によって処理されてよい。
本発明のいくつかの実施形態において、仮想マシン13052によってホスト13051に送信されるべき実行者交渉要求を、プロセッサ1301がホスト13051に送信することは、
仮想マシン13052が、ユーザモードプロセスによって開始された交渉開始要求を受信した後で、仮想マシン13052によってホスト13051に送信されるべき実行者交渉要求を、プロセッサ1301によってホスト13051に送信する段階、又は、仮想マシン13052が交渉開始要求をホスト13051から受信した後で、仮想マシン13052によってホスト13051に送信されるべき実行者交渉要求を、プロセッサ1301によってホスト13051に送信する段階
を含んでよい。
本発明のいくつかの実施形態において、ホスト13051と仮想マシン13052との間で、仮想マシン13052のフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉する段階は、仮想マシン13052に配置されたプレロードクライアントとホストに配置されたプレロードサーバ13051との間で接続が確立された後で、プロセッサ1301によって確立された接続を用いることによって、ホスト13051と仮想マシン13052との間で、仮想マシン13052のフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉する段階を含んでよい。
本実施形態において、コンピューティングノード1300の各ユニットの複数の機能は、複数の前述された方法の実施形態において説明された方法に従って具体的に実装されてよいことが理解されよう。その具体的な実装プロセスについては、複数の前述された実施形態において関連する説明を参照し、詳細は本明細書において再度説明されない。
前述の解決手段が用いられた後で、仮想マシン13052及びホスト13051がフロー制御ポリシの実行者を交渉するメカニズムがコンピューティングノード1300に導入され、これにより、プロセッサ1301の助けによって、仮想マシン13052及びホスト13051の両方は、フロー制御ポリシの実行者となる機会を有する。これにより、仮想マシン13052が、フロー制御ポリシを実行可能となり、可能な限り早くパケットに対するフロー制御を実行することに寄与し、効果的ではない処理の削減ならびに効果的ではないパケットフローによる帯域幅及びホスト13051のアドレス空間の占有の縮小に、さらに寄与することが理解されよう。この解決手段は、仮想マシン13052のアウトバウンドパケットフローに対する転送処理を実行するための、ホスト13051のアドレス空間の占有を縮小することに寄与することが理解されよう。さらに、フロー制御ポリシの実行者は、交渉によってに決定され、フロー制御ポリシ実行の信頼性向上に寄与する。
さらに、仮想マシン13052及びホスト13051の両方がフロー制御ポリシの実行をサポートする場合には、仮想マシン13052は、フロー制御ポリシの実行において優先される。これは、可能な限り早くパケットに対するフロー制御を実行することにさらに寄与し、効果的ではない処理及び無効なパケットフローによって占有される帯域幅の縮小にさらに寄与する。
本発明の実施形態は、コンピュータ記憶媒体をさらに提供し、コンピュータ記憶媒体は、プログラムを格納してよく、プログラムが実行された場合には、複数の方法の実施形態において説明されるパケットフロー制御方法の一部又は全部の段階が含まれる。
説明を容易にすべく、前述された方法の実施形態の各々は、一連の動作の組み合わせとして説明されているが、しかしながら、いくつかの段階は、本発明に従って、他のシーケンスで、又は同時にに実行可能であるので、当業者であれば、本発明は説明された動作シーケンスに限定されるものではないと認識するはずであることに留意されたい。さらに、当業者であれば、本明細書において説明された複数の実施形態は例示的な実施形態であり、これらに伴う動作及びモジュールは、本発明において必ずしも必要とされるものではないことを認識するはずである。
複数の前述された実施形態において、各実施形態の説明は、異なる部分を強調する。ある実施形態において詳細に説明されない部分については、複数の他の実施形態において関連する説明を参照されたい。
本願において提供されるいくつかの実施形態において、開示された装置は、他の態様で実装されてよいことを理解されたい。例えば、説明された装置の実施形態は、例示的なものに過ぎない。例えば、前述されたユニットの分割は、論理的な機能の分割に過ぎず、実際の実装においては、他の分割であってよい。例えば、複数のユニット又はコンポーネントは、他のシステムに組み合わせられ、又はこれに統合されてよく、あるいは、いくつかの機能は、無視され又は実行されなくてよい。さらに、図示もしくは説明された相互の連結又は直接的な連結又は通信接続は、いくつかのインタフェースを介して実装されてよい。複数の装置又はユニットの間における間接的な連結又は通信接続は、電子又は他の形式で実装されてよい。
複数の別個の部分として説明されたユニットは、物理的に別個であってよく、又はそうでなくてもよい。複数のユニットとして図示された部分は、物理的なユニットであってよく、又はそうでなくてもよく、1つの位置に配置されてよく、あるいは複数のネットワークユニット上で分散されてよい。複数のユニットの一部又は全部は、複数の実施形態の解決手段の目的を実現するための実際の必要性に従って選択されてよい。
さらに、本発明の複数の実施形態における複数の機能ユニットは、1つの処理ユニットに統合されてよく、あるいは、各ユニットは物理的に単独で存在してよく、あるいは、2つ又はそれより多くのユニットが1つのユニットに統合される。統合されたユニットは、ハードウェアの形式で実装されてよく、又はソフトウェア機能ユニットの形式で実装されてよい。
統合されたユニットがソフトウェア機能ユニットの形式で実装され、別個の製品として販売又は使用される場合には、統合されたユニットは、コンピュータ可読記憶媒体に格納されてよい。そのような理解に基づいて、本発明の複数の技術的解決手段は、本質的に又は部分的に、従来技術に寄与し、あるいは、複数の技術的解決手段の全部又は一部は、ソフトウェア製品の形式で実装されてよい。ソフトウェア製品は、記憶媒体に格納され、本発明の複数の実施形態において説明される複数の方法の複数の段階の全部又は一部を実行するように、コンピュータデバイス(メモリに接続されるパーソナルコンピュータ、サーバ、ネットワークデバイス、又はプロセッサであってよい)に命令するためのいくつかの命令を含む。前述の記憶媒体は、USBフラッシュドライブ、リードオンリメモリ(Read−Only Memory、ROM)、ランダムアクセスメモリ(Random Access Memory、RAM)、リムーバブルハードディスク、磁気ディスク、又は光ディスクのような、プログラムコードを格納可能な任意の媒体を含む。
複数の前述された実施形態は、本発明の複数の技術的解決手段を説明することを意図するものに過ぎず、本発明を限定することを意図するものではない。本発明は、複数の前述された実施形態を参照して詳細に説明されるが、当業者であれば、彼らが本発明の複数の実施形態の技術的解決手段の範囲から逸脱することなく、複数の前述された実施形態において説明された技術的解決手段にさらに変更を加えること、又はこれらのいくつかの技術的特徴に均等な置換をなすことが可能であることを理解するはずである。
[項目1]
仮想マシンとホストHostとの間で、上記仮想マシンのフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉する段階と、
上記フロー制御ポリシの交渉された実行者が上記仮想マシンであると決定された場合には、上記仮想マシンによって、上記フロー制御ポリシに基づいて、転送処理されるべきパケットに対する転送処理を実行する段階と、
上記フロー制御ポリシの上記交渉された実行者が上記ホストであると決定された場合には、上記仮想マシンによって、上記転送処理されるべきパケットを上記ホストに送信し、これにより、上記ホストが上記フロー制御ポリシに基づいて、受信された上記パケットに対する転送処理を実行する段階と、
を備える、パケットフロー制御方法。
[項目2]
仮想マシンとホストHostとの間で、上記仮想マシンのフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉する上記段階は、
上記仮想マシンによって、上記仮想マシンの上記フロー制御機能についての記述情報を含む実行者交渉要求を上記ホストに送信する段階と、
上記ホストが上記フロー制御機能についての上記記述情報に従って、上記仮想マシンが上記フロー制御ポリシの実行をサポートすると決定した後で、上記仮想マシンが上記ホストによって送信された交渉確認インジケーションを受信した場合には、上記仮想マシンによって、上記フロー制御ポリシの上記交渉された実行者が上記仮想マシンであると決定する段階と、
上記ホストが上記フロー制御機能についての上記記述情報に従って、上記仮想マシンが上記フロー制御ポリシの上記実行をサポートしないと決定した後で、上記仮想マシンが上記ホストによって送信された交渉不確認インジケーションを受信した場合には、上記仮想マシンによって、上記フロー制御ポリシの上記交渉された実行者が上記ホストであると決定する段階と、を含む、
又は、
仮想マシンとホストHostとの間で、上記仮想マシンのフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉する上記段階は、
上記仮想マシンによって、上記仮想マシンの上記フロー制御機能についての記述情報を含む実行者交渉要求を上記ホストに送信する段階であって、上記フロー制御機能についての上記記述情報は、その実行が上記仮想マシンによってサポートされるフロー制御ポリシのバージョンを記述するために用いられる、段階と、
上記ホストが上記フロー制御機能についての上記記述情報に従って、上記仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートすると決定した後で、上記仮想マシンが上記ホストによって送信された交渉確認インジケーションを受信した場合には、上記仮想マシンによって、上記フロー制御ポリシの上記交渉された実行者が上記仮想マシンであると決定する段階と、
上記ホストが上記フロー制御機能についての上記記述情報に従って、上記仮想マシンが上記現在の最新バージョン又は上記事前設定されたバージョンの上記フロー制御ポリシの上記実行をサポートしないと決定した後で、上記仮想マシンが上記ホストによって送信された交渉不確認インジケーションを受信した場合には、上記仮想マシンによって、上記フロー制御ポリシの上記交渉された実行者が上記ホストであると決定する段階と、を含む、
又は、
仮想マシンとホストHostとの間で、上記仮想マシンのフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉する上記段階は、
上記仮想マシンの上記フロー制御機能についての記述情報を含む実行者交渉要求を、上記仮想マシンによって上記ホストに送信する段階と、
上記ホストが上記フロー制御機能についての上記記述情報に従って、上記仮想マシンが上記フロー制御ポリシの実行をサポートすると決定した後で、上記仮想マシンが上記ホストによって送信された交渉確認インジケーションを受信した場合には、上記仮想マシンによって、上記フロー制御ポリシの上記交渉された実行者が上記仮想マシンであると決定する段階と、
上記仮想マシンが、上記実行者交渉要求に応答して上記ホストによって送信された交渉確認インジケーションを第1の設定期間内に受信しなかった場合には、上記仮想マシンによって、上記フロー制御ポリシの上記交渉された実行者が上記ホストであると決定する段階と、を含む、
又は、
仮想マシンとホストHostとの間で、上記仮想マシンのフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉する上記段階は、
上記仮想マシンの上記フロー制御機能についての記述情報を含む実行者交渉要求を、上記仮想マシンによって上記ホストに送信する段階であって、上記フロー制御機能についての上記記述情報は、その実行が上記仮想マシンによってサポートされるフロー制御ポリシのバージョンを記述するために用いられる、段階と、
上記ホストが上記フロー制御機能についての上記記述情報に従って、上記仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートすると決定した後で、上記仮想マシンが上記ホストによって送信された交渉確認インジケーションを受信した場合には、上記仮想マシンによって、上記フロー制御ポリシの上記交渉された実行者が上記仮想マシンであると決定する段階と、
上記仮想マシンが、上記実行者交渉要求に応答して上記ホストによって送信された交渉確認インジケーションを第1の設定期間内に受信しなかった場合には、上記仮想マシンによって、上記フロー制御ポリシの上記交渉された実行者が上記ホストであると決定する段階と、を含む、
又は、
仮想マシンとホストHostとの間で、上記仮想マシンのフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉する上記段階は、
上記仮想マシンの上記フロー制御機能についての記述情報を含む実行者交渉要求を、上記仮想マシンによって上記ホストに送信する段階と、
上記ホストが上記フロー制御機能についての上記記述情報に従って、上記仮想マシンが上記フロー制御ポリシの実行をサポートしないと決定した後で、上記仮想マシンが上記ホストによって送信された交渉不確認インジケーションを受信した場合には、上記仮想マシンによって、上記フロー制御ポリシの上記交渉された実行者が上記ホストであると決定する段階と、
上記仮想マシンが、上記実行者交渉要求に応答して上記ホストによって送信された交渉不確認インジケーションを第2の設定期間内に受信しなかった場合には、上記仮想マシンによって、上記フロー制御ポリシの上記交渉された実行者が上記仮想マシンであると決定する段階と、を含む、
又は、
仮想マシンとホストHostとの間で、上記仮想マシンのフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉する上記段階は、
上記仮想マシンの上記フロー制御機能についての記述情報を含む実行者交渉要求を、上記仮想マシンによって上記ホストに送信する段階であって、上記フロー制御機能についての上記記述情報は、その実行が上記仮想マシンによってサポートされるフロー制御ポリシのバージョンを記述するために用いられる、段階と、
上記ホストが上記フロー制御機能についての上記記述情報に従って、上記仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートすると決定した後で、上記仮想マシンが上記ホストによって送信された交渉不確認インジケーションを受信した場合には、上記仮想マシンによって、上記フロー制御ポリシの上記交渉された実行者が上記ホストであると決定する段階と、
上記仮想マシンが、上記実行者交渉要求に応答して上記ホストによって送信された交渉不確認インジケーションを第2の設定期間内に受信しなかった場合には、上記仮想マシンによって、上記フロー制御ポリシの上記交渉された実行者が上記仮想マシンであると決定する段階と、を含む、
項目1に記載のパケットフロー制御方法。
[項目3]
上記交渉確認インジケーションは、上記フロー制御ポリシを含み、
上記仮想マシンによって、上記フロー制御ポリシに基づいて、転送処理されるべきパケットに対する転送処理を実行する上記段階は、上記仮想マシンによって、上記交渉確認インジケーションに含まれる上記フロー制御ポリシに基づいて、上記転送処理されるべきパケットに対する転送処理を実行する段階を含む、項目2に記載のパケットフロー制御方法。
[項目4]
上記仮想マシンの上記フロー制御機能についての記述情報を含む実行者交渉要求を、上記仮想マシンによって上記ホストに送信する上記段階は、
ユーザモードプロセスによって開始された交渉開始要求を受信した後で、上記仮想マシンの上記フロー制御機能についての上記記述情報を含む上記実行者交渉要求を、上記仮想マシンによって上記ホストに送信する段階、又は、上記ホストから交渉開始要求を受信した後で、上記仮想マシンの上記フロー制御機能についての上記記述情報を含む上記実行者交渉要求を、上記仮想マシンによって上記ホストに送信する段階
を含む、項目2または3に記載のパケットフロー制御方法。
[項目5]
仮想マシンとホストHostとの間で、上記仮想マシンのフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉する上記段階は、
上記仮想マシンに配置されたプレロードクライアントと上記ホストに配置されたプレロードサーバとの間の接続が確立された後で、上記仮想マシンと上記ホストとの間で、上記確立された接続に基づいて上記プレロードクライアントと上記プレロードサーバとによって、上記仮想マシンの上記フロー制御機能に基づいて、上記フロー制御ポリシの上記実行者を交渉する段階
を含む、項目1から4のいずれか1項に記載のパケットフロー制御方法。
[項目6]
上記パケットフロー制御方法は、
上記フロー制御ポリシの上記交渉された実行者が上記仮想マシンであると決定された後で、上記プレロードクライアントによって、上記接続に基づいて上記プレロードサーバにハートビートメッセージを定期的に送信する段階
をさらに備える、項目5に記載のパケットフロー制御方法。
[項目7]
上記フロー制御ポリシは、サービス品質に基づくフロー制御ポリシ及び/又はアクセス制御リストに基づくフロー制御ポリシである、項目1から6のいずれか1項に記載のパケットフロー制御方法。
[項目8]
仮想マシンとホストHostとの間で、上記仮想マシンのフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉する段階と、
上記フロー制御ポリシの交渉された実行者が上記ホストであると決定された場合には、上記ホストによって、上記仮想マシンからパケットを受信した後で、上記フロー制御ポリシに基づいて、受信された上記パケットに対する転送処理を実行する段階
を備える、パケットフロー制御方法。
[項目9]
仮想マシンとホストHostとの間で、上記仮想マシンのフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉する上記段階は、
上記仮想マシンによって送信され、かつ、上記仮想マシンの上記フロー制御機能についての記述情報を含む実行者交渉要求を、上記ホストによって受信する段階と、
上記ホストが上記フロー制御機能についての上記記述情報に従って、上記仮想マシンが上記フロー制御ポリシの実行をサポートすると決定した場合には、交渉確認インジケーションを上記仮想マシンに送信する段階であって、上記交渉確認インジケーションは、上記フロー制御ポリシの上記交渉された実行者が上記仮想マシンであることを示す、段階と、
上記ホストが上記フロー制御機能についての上記記述情報に従って、上記仮想マシンが上記フロー制御ポリシの上記実行をサポートしないと決定した場合には、交渉不確認インジケーションを上記仮想マシンに送信する段階であって、上記交渉不確認インジケーションは、上記フロー制御ポリシの上記交渉された実行者が上記ホストであることを示す、段階とを含む、
又は、
仮想マシンとホストHostとの間で、上記仮想マシンのフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉する上記段階は、
上記仮想マシンによって送信され、かつ、上記仮想マシンの上記フロー制御機能についての記述情報を含む実行者交渉要求を、上記ホストによって受信する段階であって、上記フロー制御機能についての上記記述情報は、その実行が上記仮想マシンによってサポートされるフロー制御ポリシのバージョンを記述するために用いられる、段階と、
上記ホストが上記フロー制御機能についての上記記述情報に従って、上記仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートすると決定した場合には、交渉確認インジケーションを上記仮想マシンに送信する段階であって、上記交渉確認インジケーションは、上記フロー制御ポリシの上記交渉された実行者が上記仮想マシンであることを示す、段階と、
上記ホストが上記フロー制御機能についての上記記述情報に従って、上記仮想マシンが上記現在の最新バージョン又は上記事前設定されたバージョンの上記フロー制御ポリシの実行をサポートしないと決定した場合には、交渉不確認インジケーションを上記仮想マシンに送信する段階であって、上記交渉不確認インジケーションは、上記フロー制御ポリシの上記交渉された実行者が上記ホストであることを示す、段階とを含む、
項目8に記載のパケットフロー制御方法。
[項目10]
仮想マシンとホストHostとの間で、上記仮想マシンのフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉する上記段階は、上記ホストのプレロードサーバと上記仮想マシンのプレロードクライアントとの間で接続が確立された後で、上記接続を用いることによって上記プレロードサーバと上記プレロードクライアントとにより、上記仮想マシンと上記ホストHostとの間で、上記仮想マシンの上記フロー制御機能に基づいて、上記フロー制御ポリシの上記実行者を交渉する段階を含む、項目8または9に記載のパケットフロー制御方法。
[項目11]
上記パケットフロー制御方法は、
上記フロー制御ポリシの上記交渉された実行者が上記仮想マシンであると決定された後で、ハートビートメッセージが設定期間内に上記仮想マシンから受信されなかった場合には、上記フロー制御ポリシの上記実行者が上記ホストにスイッチされたことを示すインジケーションメッセージを、上記ホストによって上記仮想マシンに送信する段階
をさらに備える、項目8から10のいずれか1項に記載のパケットフロー制御方法。
[項目12]
上記フロー制御ポリシは、サービス品質に基づくフロー制御ポリシ及び/又はアクセス制御リストに基づくフロー制御ポリシである、項目8から11のいずれか1項に記載のパケットフロー制御方法。
[項目13]
仮想マシンであって、
上記仮想マシンとホストHostとの間で、上記仮想マシンのフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉するように構成される第1の交渉ユニットと、
上記フロー制御ポリシの交渉された実行者が上記仮想マシンであると決定された場合には、上記フロー制御ポリシに基づいて、転送処理されるべきパケットに対する転送処理を実行し、上記フロー制御ポリシの上記交渉された実行者が上記ホストであると決定された場合には、上記転送処理されるべきパケットを上記ホストに送信するように構成され、これにより、上記ホストは、上記フロー制御ポリシに基づいて、受信された上記パケットに対する転送処理を実行する、パケット処理ユニットと、
を備える、仮想マシン。
[項目14]
上記第1の交渉ユニットは、上記仮想マシンの上記フロー制御機能についての記述情報を含む実行者交渉要求を上記ホストに送信し、交渉確認インジケーションが受信された場合には、上記フロー制御ポリシの上記交渉された実行者が上記仮想マシンであると決定し、交渉不確認インジケーションが受信された場合には、上記フロー制御ポリシの上記交渉された実行者が上記ホストであると決定するように具体的に構成され、上記交渉確認インジケーションは、上記ホストが上記フロー制御機能についての上記記述情報に従って、上記仮想マシンが上記フロー制御ポリシの実行をサポートすると決定した後で、上記ホストによって送信され、上記交渉不確認インジケーションは、上記ホストが上記フロー制御機能についての上記記述情報に従って、上記仮想マシンが上記フロー制御ポリシの上記実行をサポートしないと決定した後で、上記ホストによって送信される、
又は、
上記第1の交渉ユニットは、上記仮想マシンの上記フロー制御機能についての記述情報を含む実行者交渉要求を上記ホストに送信し、上記ホストが上記フロー制御機能についての上記記述情報に従って、上記仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートすると決定した後で、上記ホストによって送信される交渉確認インジケーションが受信された場合には、上記フロー制御ポリシの上記交渉された実行者が上記仮想マシンであると決定し、上記ホストが上記フロー制御機能についての上記記述情報に従って、上記仮想マシンが上記現在の最新バージョン又は上記事前設定されたバージョンの上記フロー制御ポリシの上記実行をサポートしないと決定した後で、上記ホストによって送信される交渉不確認インジケーションが受信された場合、上記フロー制御ポリシの上記交渉された実行者が上記ホストであると決定するように具体的に構成され、上記フロー制御機能についての上記記述情報は、その実行が上記仮想マシンによってサポートされるフロー制御ポリシのバージョンを記述するために用いられる、
又は、
上記第1の交渉ユニットは、上記仮想マシンの上記フロー制御機能についての記述情報を含む実行者交渉要求を上記ホストに送信し、交渉確認インジケーションが受信された場合には、上記フロー制御ポリシの上記交渉された実行者が上記仮想マシンであると決定し、上記実行者交渉要求に応答して上記ホストによって送信された交渉確認インジケーションが第1の設定期間内に受信されなかった場合には、上記フロー制御ポリシの上記交渉された実行者が上記ホストであると決定するように具体的に構成され、上記交渉確認インジケーションは、上記ホストが上記フロー制御機能についての上記記述情報に従って、上記仮想マシンが上記フロー制御ポリシの実行をサポートすると決定した後で、上記ホストによって送信される、
又は、
上記第1の交渉ユニットは、上記仮想マシンの上記フロー制御機能についての記述情報を含む実行者交渉要求を上記ホストに送信し、上記ホストが上記フロー制御機能についての上記記述情報に従って、上記仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートすると決定した後で、上記ホストによって送信された交渉確認インジケーションが受信された場合には、上記フロー制御ポリシの上記交渉された実行者が上記仮想マシンであると決定し、上記実行者交渉要求に応答して上記ホストによって送信された交渉確認インジケーションが第1の設定期間内に受信されなかった場合には、上記フロー制御ポリシの上記交渉された実行者が上記ホストであると決定するように具体的に構成され、上記フロー制御機能についての上記記述情報は、その実行が上記仮想マシンによってサポートされるフロー制御ポリシのバージョンを記述するために用いられる、
又は、
上記第1の交渉ユニットは、上記仮想マシンの上記フロー制御機能についての記述情報を含む実行者交渉要求を上記ホストに送信し、交渉不確認インジケーションが受信された場合には、上記フロー制御ポリシの上記交渉された実行者が上記ホストであると決定し、上記実行者交渉要求に応答して上記ホストによって送信された交渉不確認インジケーションが第2の設定期間内に受信されなかった場合には、上記フロー制御ポリシの上記交渉された実行者が上記仮想マシンであると決定するように具体的に構成され、上記交渉不確認インジケーションは、上記ホストが上記フロー制御機能についての上記記述情報に従って、上記仮想マシンが上記フロー制御ポリシの実行をサポートしないと決定した後で、上記ホストによって送信される、
又は、
上記第1の交渉ユニットは、上記仮想マシンの上記フロー制御機能についての記述情報を含む実行者交渉要求を上記ホストに送信し、上記ホストが上記フロー制御機能についての上記記述情報に従って、上記仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートすると決定した後で、上記ホストによって送信された交渉不確認インジケーションが受信された場合には、上記フロー制御ポリシの上記交渉された実行者が上記ホストであると決定し、上記実行者交渉要求に応答して上記ホストによって送信された交渉不確認インジケーションが第2の設定期間内に受信されなかった場合には、上記フロー制御ポリシの上記交渉された実行者が上記仮想マシンであると決定するように具体的に構成され、上記フロー制御機能についての上記記述情報は、その実行が上記仮想マシンによってサポートされるフロー制御ポリシのバージョンを記述するために用いられる、
項目13に記載の仮想マシン。
[項目15]
上記フロー制御ポリシの上記交渉された実行者が上記仮想マシンであると決定された後で、上記仮想マシンは、ハートビートメッセージを上記ホストに定期的に送信するように構成される送信ユニットをさらに含む、項目13又は14に記載の仮想マシン。
[項目16]
上記フロー制御ポリシは、サービス品質に基づくフロー制御ポリシ及び/又はアクセス制御リストに基づくフロー制御ポリシである、項目13から15のいずれか1項に記載の仮想マシン。
[項目17]
仮想マシンと上記ホストとの間で、上記仮想マシンのフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉するように構成される第2の交渉ユニットと、
上記フロー制御ポリシの交渉された実行者が上記ホストであると決定された場合には、上記フロー制御ポリシに基づいて、受信されたパケットに対する転送処理を、上記パケットを上記仮想マシンから受信した後で実行するように構成されるパケット処理ユニットと、
を備える、ホスト。
[項目18]
上記第2の交渉ユニットは、上記仮想マシンによって送信され、かつ、上記仮想マシンの上記フロー制御機能についての記述情報を含む実行者交渉要求を受信し、上記フロー制御機能についての上記記述情報に従って、上記仮想マシンが上記フロー制御ポリシの実行をサポートすると決定された場合には、交渉確認インジケーションを上記仮想マシンに送信し、上記フロー制御機能についての上記記述情報に従って、上記仮想マシンが上記フロー制御ポリシの上記実行をサポートしないと決定された場合には、交渉不確認インジケーションを上記仮想マシンに送信するように具体的に構成され、上記交渉確認インジケーションは、上記フロー制御ポリシの上記交渉された実行者が上記仮想マシンであると示し、上記交渉不確認インジケーションは、上記フロー制御ポリシの上記交渉された実行者が上記ホストであると示す、
又は、
上記第2の交渉ユニットは、上記仮想マシンによって送信され、かつ、上記仮想マシンの上記フロー制御機能についての記述情報を含む実行者交渉要求を受信し、上記フロー制御機能についての上記記述情報に従って、上記仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートすると決定された場合には、交渉確認インジケーションを上記仮想マシンに送信し、上記フロー制御機能についての上記記述情報に従って、上記仮想マシンが上記現在の最新バージョン又は上記事前設定されたバージョンの上記フロー制御ポリシの実行をサポートしないと決定された場合には、交渉不確認インジケーションを上記仮想マシンに送信するように具体的に構成され、上記フロー制御機能についての上記記述情報は、その実行が上記仮想マシンによってサポートされるフロー制御ポリシのバージョンを記述するために用いられ、上記交渉確認インジケーションは、上記フロー制御ポリシの上記交渉された実行者が上記仮想マシンであると示し、上記交渉不確認インジケーションは、上記フロー制御ポリシの上記交渉された実行者が上記ホストであると示す、
項目17に記載のホスト。
[項目19]
上記パケット処理ユニットは、上記フロー制御ポリシの上記交渉された実行者が上記仮想マシンであると決定された後で、かつ、上記仮想マシンからのハートビートメッセージが設定期間内に受信されなかった場合には、上記フロー制御ポリシの上記実行者が上記ホストにスイッチされたことを示すために用いられるインジケーションメッセージを、上記仮想マシンに送信するようにさらに構成される、項目17又は18に記載のホスト。
[項目20]
ハードウェア層と、
上記ハードウェア層において動作するホストHostと、
上記ホスト上で動作する少なくとも1つの仮想マシンと、
を備えるコンピューティングノードであって、
上記仮想マシンは、上記仮想マシンと上記ホストとの間で、上記仮想マシンのフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉し、上記フロー制御ポリシの交渉された実行者が上記仮想マシンであると決定された場合には、上記フロー制御ポリシに基づいて、転送処理されるべきパケットに対する転送処理を実行し、上記フロー制御ポリシの上記交渉された実行者が上記ホストであると決定された場合には、上記転送処理されるべきパケットを上記ホストに送信するように構成され、
上記ホストは、上記フロー制御ポリシの上記交渉された実行者が上記ホストであると決定された場合には、上記フロー制御ポリシに基づいて、受信されたパケットに対する転送処理を、上記パケットを上記仮想マシンから受信した後で実行するように構成される、コンピューティングノード。
[項目21]
上記仮想マシンと上記ホストとの間で、上記仮想マシンの上記フロー制御機能に基づいて、上記フロー制御ポリシの上記実行者を交渉するために、上記仮想マシンは、上記仮想マシンの上記フロー制御機能についての記述情報を含む実行者交渉要求を上記ホストに送信し、交渉確認インジケーションが受信された場合には、上記フロー制御ポリシの上記交渉された実行者が上記仮想マシンであると決定し、交渉不確認インジケーションが受信された場合には、上記フロー制御ポリシの上記交渉された実行者が上記ホストであると決定するように具体的に構成され、上記交渉確認インジケーションは、上記ホストが上記フロー制御機能についての上記記述情報に従って、上記仮想マシンが上記フロー制御ポリシの実行をサポートすると決定した後で、上記ホストによって送信され、上記交渉不確認インジケーションは、上記ホストが上記フロー制御機能についての上記記述情報に従って、上記仮想マシンが上記フロー制御ポリシの上記実行をサポートしないと決定した後で、上記ホストによって送信される、
又は、
上記仮想マシンと上記ホストとの間で、上記仮想マシンの上記フロー制御機能に基づいて、上記フロー制御ポリシの上記実行者を交渉するために、上記仮想マシンは、上記仮想マシンの上記フロー制御機能についての記述情報を含む実行者交渉要求を上記ホストに送信し、上記ホストが上記フロー制御機能についての上記記述情報に従って、上記仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートすると決定した後で、上記ホストによって送信された交渉確認インジケーションが受信された場合には、上記フロー制御ポリシの上記交渉された実行者が上記仮想マシンであると決定し、上記ホストが上記フロー制御機能についての上記記述情報に従って、上記仮想マシンが上記現在の最新バージョン又は上記事前設定されたバージョンの上記フロー制御ポリシの上記実行をサポートしないと決定した後で、上記ホストによって送信された交渉不確認インジケーションが受信された場合には、上記フロー制御ポリシの上記交渉された実行者が上記ホストであると決定するように具体的に構成され、上記フロー制御機能についての上記記述情報は、その実行が上記仮想マシンによってサポートされるフロー制御ポリシのバージョンを記述するために用いられる、
又は、
上記仮想マシンと上記ホストとの間で、上記仮想マシンの上記フロー制御機能に基づいて、上記フロー制御ポリシの上記実行者を交渉するために、上記仮想マシンは、上記仮想マシンの上記フロー制御機能についての記述情報を含む実行者交渉要求を上記ホストに送信し、交渉確認インジケーションが受信された場合には、上記フロー制御ポリシの上記交渉された実行者が上記仮想マシンであると決定し、上記実行者交渉要求に応答して上記ホストによって送信された交渉確認インジケーションが第1の設定期間内に受信されなかった場合には、上記フロー制御ポリシの上記交渉された実行者が上記ホストであると決定するように具体的に構成され、上記交渉確認インジケーションは、上記ホストが上記フロー制御機能についての上記記述情報に従って、上記仮想マシンが上記フロー制御ポリシの実行をサポートすると決定した後で、上記ホストによって送信される、
又は、
上記仮想マシンと上記ホストとの間で、上記仮想マシンの上記フロー制御機能に基づいて、上記フロー制御ポリシの上記実行者を交渉するために、上記仮想マシンは、上記仮想マシンの上記フロー制御機能についての記述情報を含む実行者交渉要求を上記ホストに送信し、上記ホストが上記フロー制御機能についての上記記述情報に従って、上記仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートすると決定した後で、上記ホストによって送信された交渉確認インジケーションが受信された場合には、上記フロー制御ポリシの上記交渉された実行者が上記仮想マシンであると決定し、上記実行者交渉要求に応答して上記ホストによって送信された交渉確認インジケーションが第1の設定期間内に受信されなかった場合には、上記フロー制御ポリシの上記交渉された実行者が上記ホストであると決定するように具体的に構成され、上記フロー制御機能についての上記記述情報は、その実行が上記仮想マシンによってサポートされるフロー制御ポリシのバージョンを記述するために用いられる、
又は、
上記仮想マシンと上記ホストとの間で、上記仮想マシンの上記フロー制御機能に基づいて、上記フロー制御ポリシの上記実行者を交渉するために、上記仮想マシンは、上記仮想マシンの上記フロー制御機能についての記述情報を含む実行者交渉要求を上記ホストに送信し、交渉不確認インジケーションが受信された場合には、上記フロー制御ポリシの上記交渉された実行者が上記ホストであると決定し、上記実行者交渉要求に応答して上記ホストによって送信された交渉不確認インジケーションが第2の設定期間内に受信されなかった場合には、上記フロー制御ポリシの上記交渉された実行者が上記仮想マシンであると決定するように具体的に構成され、上記交渉不確認インジケーションは、上記ホストが上記フロー制御機能についての上記記述情報に従って、上記仮想マシンが上記フロー制御ポリシの実行をサポートしないと決定した後で、上記ホストによって送信される、
又は、
上記仮想マシンと上記ホストとの間で、上記仮想マシンの上記フロー制御機能に基づいて、上記フロー制御ポリシの上記実行者を交渉するために、上記仮想マシンは、上記仮想マシンの上記フロー制御機能についての記述情報を含む実行者交渉要求を上記ホストに送信し、上記ホストが上記フロー制御機能についての上記記述情報に従って、上記仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートすると決定した後で、上記ホストによって送信された交渉不確認インジケーションが受信された場合には、上記フロー制御ポリシの上記交渉された実行者が上記ホストであると決定し、上記実行者交渉要求に応答して上記ホストによって送信された交渉不確認インジケーションが第2の設定期間内に受信されなかった場合には、上記フロー制御ポリシの上記交渉された実行者が上記仮想マシンであると決定するように具体的に構成され、上記フロー制御機能についての上記記述情報は、その実行が上記仮想マシンによってサポートされるフロー制御ポリシのバージョンを記述するために用いられる、
項目20に記載のコンピューティングノード。
[項目22]
上記ホストは、上記フロー制御ポリシの上記交渉された実行者が上記仮想マシンであると決定された後で、ハートビートメッセージが設定期間内に上記仮想マシンから受信されなかった場合には、上記フロー制御ポリシの上記実行者が上記ホストにスイッチされたことを示すために用いられるインジケーションメッセージを、上記仮想マシンに送信するようにさらに構成される、項目20又は21に記載のコンピューティングノード。
[項目23]
プロセッサによってホストHostと仮想マシンとの間で、上記仮想マシンのフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉する段階と、
上記フロー制御ポリシの交渉された実行者が上記仮想マシンである場合には、上記プロセッサによって、上記フロー制御機能に基づいて、上記仮想マシンの転送処理されるべきパケットに対する転送処理を実行する段階と、
上記フロー制御ポリシの上記交渉された実行者が上記ホストである場合には、上記プロセッサによって、上記仮想マシンの上記転送処理されるべきパケットを上記仮想マシンから上記ホストに送信し、上記プロセッサにより上記フロー制御ポリシに基づいて、上記ホストによって受信された上記転送処理されるべきパケットに対する転送処理を実行する段階と、
を備える、パケットフロー制御方法。
[項目24]
プロセッサによってホストHostと仮想マシンとの間で、上記仮想マシンのフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉する上記段階は、
上記仮想マシンによって上記ホストに送信されるべき実行者交渉要求を、上記プロセッサによって上記ホストに送信する段階であって、上記実行者交渉要求は、上記仮想マシンの上記フロー制御機能についての記述情報を含む、段階と、
上記ホストが上記実行者交渉要求を受信した後で、上記プロセッサが上記フロー制御機能についての上記記述情報に従って、上記仮想マシンが上記フロー制御ポリシの実行をサポートすると決定した場合には、上記ホストによって上記仮想マシンに送信されるべき交渉確認インジケーションを、上記プロセッサによって上記仮想マシンに送信する段階であって、上記交渉確認インジケーションは、上記フロー制御ポリシの上記交渉された実行者が上記仮想マシンであることを示す、段階、及び/又は、上記プロセッサが上記フロー制御機能についての上記記述情報に従って、上記仮想マシンが上記フロー制御ポリシの上記実行をサポートしないと決定した場合には、上記ホストによって上記仮想マシンに送信されるべき交渉不確認インジケーションを、上記プロセッサによって上記仮想マシンに送信する段階であって、上記交渉不確認インジケーションは、上記フロー制御ポリシの上記交渉された実行者が上記ホストであることを示す、段階と、を含む、
又は、
プロセッサによってホストHostと仮想マシンとの間で、上記仮想マシンのフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉する上記段階は、
上記仮想マシンによって上記ホストに送信されるべき実行者交渉要求を、上記プロセッサによって上記ホストに送信する段階であって、上記実行者交渉要求は、上記仮想マシンの上記フロー制御機能についての記述情報を含み、上記フロー制御機能についての上記記述情報は、その実行が上記仮想マシンによってサポートされるフロー制御ポリシのバージョンを記述するために用いられる、段階と、
上記ホストが上記実行者交渉要求を受信した後で、上記プロセッサが上記フロー制御機能についての上記記述情報に従って、上記仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートすると決定した場合には、上記ホストによって上記仮想マシンに送信されるべき交渉確認インジケーションを、上記プロセッサによって上記仮想マシンに送信する段階であって、上記交渉確認インジケーションは、上記フロー制御ポリシの上記交渉された実行者が上記仮想マシンであることを示す、段階、及び/又は、上記プロセッサが上記フロー制御機能についての上記記述情報に従って、上記仮想マシンが上記現在の最新バージョン又は上記事前設定されたバージョンの上記フロー制御ポリシの上記実行をサポートしないと決定した場合には、上記ホストによって上記仮想マシンに送信されるべき交渉不確認インジケーションを、上記プロセッサによって上記仮想マシンに送信する段階であって、上記交渉不確認インジケーションは、上記フロー制御ポリシの上記交渉された実行者が上記ホストであることを示す、段階と、を含む、
項目23に記載のパケットフロー制御方法。
[項目25]
上記交渉確認インジケーションは、上記フロー制御ポリシを含み、
上記フロー制御ポリシに基づいて、上記仮想マシンの上記転送処理されるべきパケットに対する転送処理を実行する上記段階は、
上記交渉確認インジケーションに含まれる上記フロー制御ポリシに基づいて、上記仮想マシンの上記転送処理されるべきパケットに対する転送処理を実行する段階を含む、項目24に記載のパケットフロー制御方法。
[項目26]
上記方法は、
上記フロー制御ポリシの上記交渉された実行者が上記仮想マシンである後で、上記ホストが設定期間内に上記仮想マシンからハートビートメッセージを受信しなかった場合には、上記ホストによって上記仮想マシンに送信され、かつ、上記フロー制御ポリシの上記実行者が上記ホストにスイッチされたことを示すために用いられるべきインジケーションメッセージを、上記プロセッサによって上記仮想マシンに送信する段階をさらに備える、項目23から25のいずれか1項に記載のパケットフロー制御方法。
[項目27]
ストレージと、
上記ストレージに接続されるプロセッサと、
を備え、
上記プロセッサは、
ホストHostと仮想マシンとの間で、上記仮想マシンのフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉し、
上記フロー制御ポリシの交渉された実行者が上記仮想マシンである場合には、上記フロー制御ポリシに基づいて、上記仮想マシンの転送処理されるべきパケットに対する転送処理を実行し、上記フロー制御ポリシの上記交渉された実行者が上記ホストである場合には、上記仮想マシンから上記ホストに上記仮想マシンの上記転送処理されるべきパケットを送信し、上記フロー制御ポリシに基づいて、上記ホストによって受信された上記転送処理されるべきパケットに対する転送処理を実行する
ように構成される、コンピューティングノード。
[項目28]
上記プロセッサは、上記仮想マシンによって上記ホストに送信されるべき実行者交渉要求を、上記ホストに送信し、上記ホストが上記実行者交渉要求を受信した後で、上記フロー制御機能についての上記記述情報に従って、上記仮想マシンが上記フロー制御ポリシの実行をサポートすると決定された場合には、上記ホストによって上記仮想マシンに送信されるべき交渉確認インジケーションを上記仮想マシンに送信する、及び/又は、上記フロー制御機能についての上記記述情報に従って、上記仮想マシンが上記フロー制御ポリシの上記実行をサポートしないと決定された場合には、上記ホストによって上記仮想マシンに送信されるべき交渉不確認インジケーションを上記仮想マシンに送信するように構成され、上記実行者交渉要求は、上記仮想マシンの上記フロー制御機能についての記述情報を含み、上記交渉確認インジケーションは、上記フロー制御ポリシの上記交渉された実行者が上記仮想マシンであることを示し、上記交渉不確認インジケーションは、上記フロー制御ポリシの上記交渉された実行者が上記ホストであることを示す、
又は、
上記プロセッサは、上記仮想マシンによって上記ホストに送信されるべき実行者交渉要求を、上記ホストに送信し、上記ホストが上記実行者交渉要求を受信した後で、上記フロー制御機能についての上記記述情報に従って、上記仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートすると決定された場合には、上記ホストによって上記仮想マシンに送信されるべき交渉確認インジケーションを上記仮想マシンに送信する、及び/又は、上記フロー制御機能についての上記記述情報に従って、上記仮想マシンが上記現在の最新バージョン又は上記事前設定されたバージョンの上記フロー制御ポリシの上記実行をサポートしないと決定された場合には、上記ホストによって上記仮想マシンに送信されるべき交渉不確認インジケーションを上記仮想マシンに送信するように構成され、上記実行者交渉要求は、上記仮想マシンの上記フロー制御機能についての記述情報を含み、上記フロー制御機能についての上記記述情報は、その実行が上記仮想マシンによってサポートされるフロー制御ポリシのバージョンを記述するために用いられ、上記交渉確認インジケーションは、上記フロー制御ポリシの上記交渉された実行者が上記仮想マシンであることを示し、上記交渉不確認インジケーションは、上記フロー制御ポリシの上記交渉された実行者が上記ホストであることを示す、
項目27に記載のコンピューティングノード。
[項目29]
上記交渉確認インジケーションは、上記フロー制御ポリシを含み、
上記プロセッサは、交渉確認インジケーションに含まれる上記フロー制御ポリシに基づいて、上記仮想マシンの上記転送処理されるべきパケットに対する転送処理を実行するように構成される、項目28に記載のコンピューティングノード。
[項目30]
上記プロセッサは、上記フロー制御ポリシの上記交渉された実行者が上記仮想マシンである後で、上記ホストが設定期間内に上記仮想マシンからハートビートメッセージを受信しなかった場合には、上記ホストによって上記仮想マシンに送信され、かつ、上記フロー制御ポリシの上記実行者が上記ホストにスイッチされたことを示すために用いられるべきインジケーションメッセージを、上記仮想マシンに送信するようにさらに構成される、項目27から29のいずれか1項に記載のコンピューティングノード。