(57)【特許請求の範囲】
【請求項１】
ホストであって、
前記ホストは、仮想マシンモニタ（ＶＭＭ）および少なくとも１つのネットワークインタフェースカードを備え、第１仮想マシンは、前記ホスト上で動作し、前記ＶＭＭは、複数のＶＬＡＮサブインタフェースおよび仮想ネットワーク機能モジュールを有し、前記少なくとも１つのネットワークインタフェースカードは、第１スイッチング装置、第２スイッチング装置および少なくとも３つのネットワークポートを有し、第１ネットワークポートおよび第２ネットワークポートは、ネットワークインタフェースカード仮想化機能をサポートし、前記第１ネットワークポートは、少なくとも１つの物理ファンクション（ＰＦ）および複数の仮想ファンクション（ＶＦ）に対応し、仮想ローカルエリアネットワーク識別子（ＶＬＡＮ識別子）は、複数の前記ＶＦのために構成され、前記ＶＦの前記ＶＬＡＮ識別子は互いに異なり、前記第１仮想マシンは、前記第１ネットワークポートの少なくとも１つのＶＦに接続され、ＶＬＡＮサブインタフェースの数は、前記第１ネットワークポートのＶＦの数と同一であり、前記ＶＬＡＮサブインタフェースは、前記第１ネットワークポートの前記ＶＦと一対一の対応関係にあり、前記ＶＬＡＮサブインタフェースは、前記ＶＬＡＮサブインタフェースに対応する前記ＶＦと同一のＶＬＡＮ識別子を有し、前記第１ネットワークポートおよび前記第２ネットワークポートは、ネットワークケーブルを使用することによって接続され、
前記第１仮想マシンは、前記第１仮想マシンに接続される前記ＶＦを使用することによって、データパケットを第２仮想マシン宛に送信し、前記データパケットは、前記データパケットを送信する前記ＶＦのＶＬＡＮ識別子、および、前記第２仮想マシンのアドレスを保持し、
前記第１ネットワークポートの前記第１スイッチング装置は、前記データパケットを受信し、前記ネットワークケーブルを使用することによって前記データパケットを前記第２ネットワークポートへ強制的に転送し、
前記第２ネットワークポートの前記第２スイッチング装置は、前記データパケットを前記第１ネットワークポートから受信し、前記データパケットに保持される前記ＶＬＡＮ識別子に従って、前記ＶＬＡＮ識別子によって識別されるＶＬＡＮサブインタフェースへ前記データパケットを転送し、
前記ＶＬＡＮサブインタフェースは、前記データパケットを受信し、前記データパケットにおける前記ＶＬＡＮ識別子を除去し、前記データパケットを前記仮想ネットワーク機能モジュールへ転送し、
前記仮想ネットワーク機能モジュールは、前記ＶＬＡＮ識別子が除去された前記データパケットに対してネットワーク機能処理を実行し、処理された前記データパケットを前記第２仮想マシン宛に送信し、処理された前記データパケットの宛先アドレスは、前記第２仮想マシンの前記アドレスである、
ホスト。
【請求項２】
前記第１ネットワークポートおよび前記第２ネットワークポートは、仮想イーサネット（登録商標）ポートアグリゲータ（ＶＥＰＡ）モードである、請求項１に記載のホスト。
【請求項３】
前記ホストはさらに、デバイス管理モジュールを備え、
前記デバイス管理モジュールは、前記第１仮想マシンの生成に成功した後に、クラウド管理プラットフォームによって送信されるＶＬＡＮサブインタフェース生成要求を受信し、前記ＶＬＡＮサブインタフェース生成要求は、前記第１仮想マシンに割り当てられる前記ＶＦの前記ＶＬＡＮ識別子を保持し、
前記デバイス管理モジュールはさらに、前記第１仮想マシンの前記ＶＦに対応する前記ＶＬＡＮサブインタフェースを生成するように前記ＶＭＭに命令するための通知メッセージを前記ＶＭＭへ送信し、前記第１仮想マシンの前記ＶＦに対応する前記ＶＬＡＮサブインタフェースは、前記第１仮想マシンの前記ＶＦと同一のＶＬＡＮ識別子を有する、
請求項１または２に記載のホスト。
【請求項４】
前記第１ネットワークポート、前記第２ネットワークポート、および第３ネットワークポートは、同一のネットワークインタフェースカードに配置されるか、または、
前記第１ネットワークポート、前記第２ネットワークポート、および第３ネットワークポートは、２つもしくは３つのネットワークインタフェースカードに配置されるか、または、
前記第１ネットワークポートおよび前記第２ネットワークポートは、同一のネットワークインタフェースカードに配置され、前記第１ネットワークポートの前記第１スイッチング装置は前記第２ネットワークポートの前記第２スイッチング装置と同一のスイッチング装置であり、前記第１ネットワークポートおよび前記第２ネットワークポートは、前記同一のネットワークインタフェースカードの前記同一のスイッチング装置を共有するか、または、
前記第１ネットワークポートおよび前記第２ネットワークポートは、同一のネットワークインタフェースカードに配置され、前記第１ネットワークポートの前記第１スイッチング装置は、前記第２ネットワークポートの前記第２スイッチング装置から独立している、
請求項１から３のいずれか一項に記載のホスト。
【請求項５】
前記第２仮想マシンおよび前記第１仮想マシンは、同一のホストに配置される、請求項１から４のいずれか一項に記載のホスト。
【請求項６】
前記仮想ネットワーク機能モジュールはさらに、前記第２仮想マシンに接続されるＶＦに対応するＶＬＡＮサブインタフェースへ、処理された前記データパケットを転送し、前記第２仮想マシンに接続される前記ＶＦは、処理された前記データパケットを受信する前記ＶＬＡＮサブインタフェースと同一のＶＬＡＮ識別子を有し、
前記第２仮想マシンに接続される前記ＶＦに対応する前記ＶＬＡＮサブインタフェースは、前記ＶＬＡＮサブインタフェースのＶＬＡＮ識別子を前記データパケットに追加し、前記データパケットを前記第２ネットワークポートへ転送し、
前記第２ネットワークポートの前記第２スイッチング装置はさらに、前記ネットワークケーブルを使用することによって、前記データパケットを前記第１ネットワークポートへ強制的に転送し、
前記第１ネットワークポートの前記第１スイッチング装置はさらに、前記データパケットに保持される前記ＶＬＡＮ識別子に従って、前記データパケットにおける前記ＶＬＡＮ識別子によって識別される前記ＶＦへ前記データパケットを転送することにより、前記データパケットは、前記第２仮想マシンへ伝送される、
請求項５に記載のホスト。
【請求項７】
前記第２仮想マシンは、前記ホストとは異なるホストに配置され、
前記仮想ネットワーク機能モジュールは、前記仮想ネットワーク機能モジュールと、前記第２仮想マシンが配置される前記ホスト上の別の仮想ネットワーク機能モジュールとの間にトンネルを確立し、前記第３ネットワークポートを使用することによって、処理された前記データパケットを外部物理スイッチへ転送し、前記外部物理スイッチを使用することによって、前記第２仮想マシンが配置される前記ホストへ、処理された前記データパケットを転送し、前記別の仮想ネットワーク機能モジュールは、処理された前記データパケットを前記第２仮想マシンへ送信する、
請求項４に記載のホスト。
【請求項８】
クラウドコンピューティングシステムにおけるパケット処理の方法であって、前記クラウドコンピューティングシステムにおける少なくとも１つのホストは、仮想マシンモニタ（ＶＭＭ）および少なくとも１つのネットワークインタフェースカードを備え、第１仮想マシンは、前記ホスト上で動作し、前記ＶＭＭは、複数のＶＬＡＮサブインタフェースおよび仮想ネットワーク機能モジュールを有し、前記少なくとも１つのネットワークインタフェースカードは、第１スイッチング装置、第２スイッチング装置および少なくとも３つのネットワークポートを有し、第１ネットワークポートおよび第２ネットワークポートは、ネットワークインタフェースカード仮想化機能をサポートし、前記第１ネットワークポートは、少なくとも１つのＰＦおよび複数のＶＦに対応し、ＶＬＡＮ識別子は、前記複数のＶＦのために構成され、前記複数のＶＦの前記ＶＬＡＮ識別子は互いに異なり、前記第１仮想マシンは、前記第１ネットワークポートの少なくとも１つのＶＦに接続され、ＶＬＡＮサブインタフェースの数は、前記第１ネットワークポートのＶＦの数と同一であり、前記ＶＬＡＮサブインタフェースは、前記第１ネットワークポートの前記ＶＦと一対一の対応関係にあり、前記ＶＬＡＮサブインタフェースは、前記ＶＬＡＮサブインタフェースに対応する前記ＶＦと同一のＶＬＡＮ識別子を有し、前記第１ネットワークポートおよび前記第２ネットワークポートは、ネットワークケーブルを使用することによって接続され、
前記方法は、
前記第１仮想マシンによって、前記第１仮想マシンに接続される前記ＶＦを使用することによって、データパケットを第２仮想マシン宛に送信する段階であって、前記データパケットは、前記データパケットを送信する前記ＶＦのＶＬＡＮ識別子、および、前記第２仮想マシンのアドレスを保持する、段階と、
前記第１ネットワークポートの前記第１スイッチング装置によって、前記データパケットを受信する段階であって、前記ネットワークケーブルを使用することによって前記データパケットを前記第２ネットワークポートへ強制的に転送する段階と、
前記第２ネットワークポートの前記第２スイッチング装置によって、前記データパケットを前記第１ネットワークポートから受信し、前記データパケットに保持される前記ＶＬＡＮ識別子に従って、前記ＶＬＡＮ識別子によって識別されるＶＬＡＮサブインタフェースへ前記データパケットを転送する段階と、
前記ＶＬＡＮサブインタフェースによって、前記データパケットを受信し、前記データパケットにおける前記ＶＬＡＮ識別子を除去し、前記データパケットを前記仮想ネットワーク機能モジュールへ転送する段階と、
前記仮想ネットワーク機能モジュールによって、前記ＶＬＡＮ識別子が除去された前記データパケットに対してネットワーク機能処理を実行し、処理された前記データパケットを前記第２仮想マシン宛に送信する段階であって、処理された前記データパケットの宛先アドレスは、前記第２仮想マシンの前記アドレスである、段階と
を備える
方法。
【請求項９】
前記第１ネットワークポートおよび前記第２ネットワークポートは、ＶＥＰＡモードである、請求項８に記載の方法。
【請求項１０】
前記ホストは、デバイス管理モジュールをさらに備え、前記方法は、
前記第１仮想マシンの生成に成功した後に、クラウド管理プラットフォームによって送信されるＶＬＡＮサブインタフェース生成要求を前記デバイス管理モジュールによって受信する段階であって、前記ＶＬＡＮサブインタフェース生成要求は、前記第１仮想マシンに割り当てられる前記ＶＦの前記ＶＬＡＮ識別子を保持する、段階と
前記デバイス管理モジュールによって、通知メッセージを前記ＶＭＭへ送信することにより、前記ＶＭＭが前記第１仮想マシンの前記ＶＦに対応する前記ＶＬＡＮサブインタフェースを生成するようにする段階であって、前記第１仮想マシンの前記ＶＦに対応する前記ＶＬＡＮサブインタフェースは、前記第１仮想マシンの前記ＶＦと同一のＶＬＡＮ識別子を有する、段階と
をさらに備える、請求項８または９に記載の方法。
【請求項１１】
前記第１ネットワークポート、前記第２ネットワークポート、および第３ネットワークポートは、同一のネットワークインタフェースカードに配置されるか、または、
前記第１ネットワークポート、前記第２ネットワークポート、および第３ネットワークポートは、２つもしくは３つのネットワークインタフェースカードに配置されるか、または、
前記第１ネットワークポートおよび前記第２ネットワークポートは、同一のネットワークインタフェースカードに配置され、前記第１ネットワークポートの前記第１スイッチング装置は前記第２ネットワークポートの前記第２スイッチング装置と同一のスイッチング装置であり、前記第１ネットワークポートおよび前記第２ネットワークポートは、前記同一のネットワークインタフェースカードの前記同一のスイッチング装置を共有するか、または、
前記第１ネットワークポートおよび前記第２ネットワークポートは、同一のネットワークインタフェースカードに配置され、前記第１ネットワークポートの前記第１スイッチング装置は、前記第２ネットワークポートの前記第２スイッチング装置から独立している、
請求項８から１０のいずれか一項に記載の方法。
【請求項１２】
前記第２仮想マシンおよび前記第１仮想マシンは、同一のホストに配置される、請求項８から１１のいずれか一項に記載の方法。
【請求項１３】
処理された前記データパケットを前記第２仮想マシンへ送信する前記段階は、
前記仮想ネットワーク機能モジュールによって、前記第２仮想マシンに接続されるＶＦに対応するＶＬＡＮサブインタフェースへ、処理された前記データパケットを転送する段階であって、前記第２仮想マシンに接続される前記ＶＦは、処理された前記データパケットを受信する前記ＶＬＡＮサブインタフェースと同一のＶＬＡＮ識別子を有する、段階と、
前記第２仮想マシンに接続される前記ＶＦに対応する前記ＶＬＡＮサブインタフェースによって、前記ＶＬＡＮサブインタフェースのＶＬＡＮ識別子を前記データパケットに追加し、処理された前記データパケットを前記第２ネットワークポートへ転送する段階と、
前記第２ネットワークポートの前記第２スイッチング装置によって、前記ネットワークケーブルを使用することによって、処理された前記データパケットを前記第１ネットワークポートへ強制的に転送する段階と、
前記第１ネットワークポートの前記第１スイッチング装置によって、処理された前記データパケットに保持される前記ＶＬＡＮ識別子に従って、前記データパケットにおける前記ＶＬＡＮ識別子によって識別される前記ＶＦへ前記データパケットを転送する段階であって、前記データパケットは、前記第２仮想マシンへ伝送される、段階と
を有する、請求項１２に記載の方法。
【請求項１４】
前記仮想ネットワーク機能モジュールによって、処理された前記データパケットを転送する前記段階はさらに、
前記仮想ネットワーク機能モジュールによって、前記仮想ネットワーク機能モジュールと、前記第２仮想マシンが配置されるホスト上の別の仮想ネットワーク機能モジュールとの間にトンネルを確立する段階と、前記第３ネットワークポートを使用することによって、処理された前記データパケットを外部物理スイッチへ転送する段階と、前記外部物理スイッチを使用することによって、前記第２仮想マシンが配置される前記ホストへ、処理された前記データパケットを転送する段階とを有することにより、前記別の仮想ネットワーク機能モジュールは、処理された前記データパケットを前記第２仮想マシンへ送信する、
請求項１１に記載の方法。
【請求項１５】
コンピュータに、請求項８から１４のいずれか一項に記載の方法を実行させるためのプログラム。
【請求項１６】
請求項１５に記載のプログラムを格納するコンピュータ可読記憶媒体。
【請求項１７】
クラウドコンピューティングのシステムであって、クラウド管理プラットフォームおよび少なくとも１つのホストを備え、前記ホストは、仮想マシンモニタ（ＶＭＭ）および少なくとも１つのネットワークインタフェースカードを備え、第１仮想マシンは、前記ホスト上で動作し、前記ＶＭＭは、複数のＶＬＡＮサブインタフェースおよび仮想ネットワーク機能モジュールを有し、前記少なくとも１つのネットワークインタフェースカードは、第１スイッチング装置、第２スイッチング装置および少なくとも３つのネットワークポートを有し、第１ネットワークポートおよび第２ネットワークポートは、ネットワークインタフェースカード仮想化機能をサポートし、前記第１ネットワークポートは、少なくとも１つのＰＦおよび複数のＶＦに対応し、ＶＬＡＮ識別子は、前記複数のＶＦのために構成され、前記複数のＶＦの前記ＶＬＡＮ識別子は互いに異なり、前記第１仮想マシンは、前記第１ネットワークポートの少なくとも１つのＶＦに接続され、ＶＬＡＮサブインタフェースの数は、前記第１ネットワークポートのＶＦの数と同一であり、前記ＶＬＡＮサブインタフェースは、前記第１ネットワークポートの前記ＶＦと一対一の対応関係にあり、前記ＶＬＡＮサブインタフェースは、前記ＶＬＡＮサブインタフェースに対応する前記ＶＦと同一のＶＬＡＮ識別子を有し、前記第１ネットワークポートおよび前記第２ネットワークポートは、ネットワークケーブルを使用することによって接続され、
前記第１仮想マシンは、前記第１仮想マシンに接続される前記ＶＦを使用することによって、データパケットを第２仮想マシン宛に送信し、前記データパケットは、前記データパケットを送信する前記ＶＦのＶＬＡＮ識別子、および、前記第２仮想マシンのアドレスを保持し、
前記第１ネットワークポートの前記第１スイッチング装置は、前記データパケットを受信し、前記ネットワークケーブルを使用することによって前記データパケットを前記第２ネットワークポートへ強制的に転送し、
前記第２ネットワークポートの前記第２スイッチング装置は、前記データパケットを前記第１ネットワークポートから受信し、前記データパケットに保持される前記ＶＬＡＮ識別子に従って、前記データパケットと同一のＶＬＡＮ識別子を有する前記ＶＬＡＮサブインタフェースへ前記データパケットを転送し、
前記ＶＬＡＮサブインタフェースは、前記データパケットを受信し、前記データパケットにおける前記ＶＬＡＮ識別子を除去し、前記データパケットを前記仮想ネットワーク機能モジュールへ転送し、
前記仮想ネットワーク機能モジュールは、前記ＶＬＡＮ識別子が除去された前記データパケットに対してネットワーク機能処理を実行し、処理された前記データパケットを前記第２仮想マシン宛に送信し、処理された前記データパケットの宛先アドレスは、前記第２仮想マシンの前記アドレスである、
システム。
【請求項１８】
前記クラウド管理プラットフォームは、前記ホストにおいて前記第１仮想マシンを生成し、前記第１仮想マシンの生成に成功した後に、前記第１仮想マシンの前記ＶＦに対応するＶＬＡＮサブインタフェースを生成するように前記ホストの前記ＶＭＭに命令し、前記第１仮想マシンの前記ＶＦに対応する前記ＶＬＡＮサブインタフェースは、前記第１仮想マシンの前記ＶＦと同一のＶＬＡＮ識別子を有する、請求項１７に記載のシステム。
【請求項１９】
前記第１ネットワークポートおよび前記第２ネットワークポートは、ＶＥＰＡモードである、請求項１７または１８に記載のシステム。
【請求項２０】
前記ホストはさらに、デバイス管理モジュールを備え、
前記デバイス管理モジュールは、前記第１仮想マシンの生成に成功した後に、前記クラウド管理プラットフォームによって送信されるＶＬＡＮサブインタフェース生成要求を受信し、前記ＶＬＡＮサブインタフェース生成要求は、前記第１仮想マシンに割り当てられる前記ＶＦの前記ＶＬＡＮ識別子を保持し、
前記デバイス管理モジュールはさらに、前記第１仮想マシンの前記ＶＦに対応する前記ＶＬＡＮサブインタフェースを生成するように前記ＶＭＭに命令するための通知メッセージを前記ＶＭＭへ送信し、前記第１仮想マシンの前記ＶＦに対応する前記ＶＬＡＮサブインタフェースは、前記第１仮想マシンの前記ＶＦと同一のＶＬＡＮ識別子を有する、
請求項１７から１９のいずれか一項に記載のシステム。
【請求項２１】
前記第２仮想マシンおよび前記第１仮想マシンは同一のホストに配置され、
前記仮想ネットワーク機能モジュールはさらに、前記第２仮想マシンに接続されるＶＦに対応するＶＬＡＮサブインタフェースへ、処理された前記データパケットを転送し、前記第２仮想マシンに接続される前記ＶＦは、処理された前記データパケットを受信する前記ＶＬＡＮサブインタフェースと同一のＶＬＡＮ識別子を有し、
前記第２仮想マシンに接続される前記ＶＦに対応する前記ＶＬＡＮサブインタフェースは、前記ＶＬＡＮサブインタフェースのＶＬＡＮ識別子を前記データパケットに追加し、前記データパケットを前記第２ネットワークポートへ転送し、
前記第２ネットワークポートの前記第２スイッチング装置はさらに、前記ネットワークケーブルを使用することによって、前記データパケットを前記第１ネットワークポートへ強制的に転送し、
前記第１ネットワークポートの前記第１スイッチング装置はさらに、前記データパケットに保持される前記ＶＬＡＮ識別子に従って、前記データパケットにおける前記ＶＬＡＮ識別子によって識別される前記ＶＦへ前記データパケットを転送することにより、前記データパケットは、前記第２仮想マシンへ伝送される、
請求項１７から２０のいずれか一項に記載のシステム。
【請求項２２】
前記第２仮想マシンおよび前記第１仮想マシンは、異なるホストに配置され、
前記仮想ネットワーク機能モジュールは、前記仮想ネットワーク機能モジュールと、前記第２仮想マシンが配置されるホスト上の別の仮想ネットワーク機能モジュールとの間にトンネルを確立し、第３ネットワークポートを使用することによって、処理された前記データパケットを外部物理スイッチへ転送し、前記外部物理スイッチを使用することによって、前記第２仮想マシンが配置される前記ホストへ、処理された前記データパケットを転送することにより、前記別の仮想ネットワーク機能モジュールは、処理された前記データパケットを前記第２仮想マシンへ送信する、
請求項１７から２０のいずれか一項に記載のシステム。
【請求項２３】
第１プロセッサ、第１メモリ、および少なくとも１つのネットワークインタフェースカードを備えるホストであって、前記ネットワークインタフェースカードは、第２プロセッサ、第２メモリ、および少なくとも２つのネットワークポートを有し、前記少なくとも１つのネットワークインタフェースカードにおける第１ネットワークポートおよび第２ネットワークポートは、ネットワークインタフェースカード仮想化機能をサポートし、前記第１ネットワークポートは、少なくとも１つのＰＦおよび複数のＶＦに対応し、ＶＬＡＮ識別子が前記複数のＶＦのために構成され、前記複数のＶＦの前記ＶＬＡＮ識別子は互いに異なり、前記第１メモリおよび前記第２メモリは命令を記憶し、前記第１プロセッサは、第１仮想マシンの機能を実現するために、前記第１メモリにおける第１の命令を実行し、前記第１仮想マシンは、前記第１ネットワークポートの少なくとも１つのＶＦに接続され、前記第１プロセッサは、ＶＬＡＮサブインタフェースの機能を実現するために、前記第１メモリにおける第２の命令を実行し、前記第１プロセッサは、仮想ネットワーク機能モジュールの機能を実現するために、前記第１メモリにおける第３の命令を実行し、前記第２プロセッサは、スイッチング装置の機能を実現するために、前記第２メモリにおける命令を実行し、
前記第１仮想マシンは、前記第１ネットワークポートの前記少なくとも１つのＶＦに接続され、前記ホストは、複数のＶＬＡＮサブインタフェースを備え、複数のＶＬＡＮサブインタフェースの数は、前記第１ネットワークポートのＶＦの数と同一であり、前記複数のＶＬＡＮサブインタフェースは、前記第１ネットワークポートの前記ＶＦと一対一の対応関係にあり、前記ＶＬＡＮサブインタフェースは、前記ＶＬＡＮサブインタフェースに対応する前記ＶＦと同一のＶＬＡＮ識別子を有し、前記第１ネットワークポートおよび前記第２ネットワークポートは、ネットワークケーブルを使用することによって接続され、
前記第１プロセッサは、前記第１仮想マシンに接続される前記ＶＦを使用することによってデータパケットを第２仮想マシン宛に送信する段階であって、前記データパケットは、前記データパケットを送信する前記ＶＦのＶＬＡＮ識別子と、前記第２仮想マシンのアドレスとを保持する、段階を実行するために、前記第１メモリにおける前記第１の命令を実行し、
前記第２プロセッサは、前記データパケットを受信する段階と、前記ネットワークケーブルを使用することによって前記データパケットを前記第２ネットワークポートへ強制的に転送する段階とを実行するために、前記第２メモリにおける前記命令を実行し、
前記第２プロセッサは、前記データパケットを前記第１ネットワークポートから受信する段階と、前記データパケットに保持される前記ＶＬＡＮ識別子に従って、前記ＶＬＡＮ識別子によって識別されるＶＬＡＮサブインタフェースへ前記データパケットを転送する段階とを実行するために、前記第２メモリにおける命令を実行し、
前記第１プロセッサは、前記データパケットを受信する段階と、前記データパケットにおける前記ＶＬＡＮ識別子を除去する段階と、前記データパケットを前記仮想ネットワーク機能モジュールへ転送する段階とを実行するために、前記第１メモリにおける前記第２の命令を実行し、
前記第１プロセッサは、前記ＶＬＡＮ識別子が除去された前記データパケットに対してネットワーク機能処理を実行する段階と、前記第２仮想マシンの前記アドレスに従って、処理された前記データパケットを前記第２仮想マシン宛に送信する段階とを実行するために、前記第１メモリにおける前記第３の命令を実行する、
ホスト。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はＩＴ技術の分野に関連し、具体的には、クラウドコンピューティングシステムにおけるパケット処理方法、ホスト、およびシステムに関連する。
【背景技術】
【０００２】
仮想化技術は、クラウドコンピューティング分野における主要な技術の１つである。仮想化技術によれば、ホストの物理的リソースは、ホスト上で動作する仮想マシン（Ｖｉｒｔｕａｌ  Ｍａｃｈｉｎｅ、ＶＭ）によって使用される共有リソースプールに抽象化できる。ホスト上で動作する仮想マシンは、ホストのネットワークインタフェースカードを共有して、ホストの外部ネットワークと通信し得る。従来技術において、ネットワークインタフェースカードは、ネットワークインタフェースカード仮想化を用いることによって、使用のために仮想マシンに割り当てられてよい。ネットワークインタフェースカード仮想化は、シングルルート入出力仮想化（Ｓｉｎｇｌｅ‐Ｒｏｏｔ  Ｉ／Ｏ  Ｖｉｒｔｕａｌｉｚａｔｉｏｎ、ＳＲ‐ＩＯＶ）、またはマルチルート入出力仮想化（Ｍｕｌｔｉ  Ｒｏｏｔ  Ｉｎｐｕｔ／Ｏｕｔｐｕｔ  Ｖｉｒｔｕａｌｉｚａｔｉｏｎ、ＭＲ‐ＩＯＶ）を用いることによって実現され得る。また、ネットワークインタフェースカード仮想化は、ネットワークインタフェースカードパススルーとも称される。ＳＲ‐ＩＯＶパススルーを例として使用する。ネットワークインタフェースカードがＳＲ‐ＩＯＶをサポートするとき、ホスト上で動作する仮想マシンは、ＳＲ‐ＩＯＶ技術を使用することによって、ホスト上のネットワークインタフェースカードを共有し得る。
【０００３】
ＳＲ‐ＩＯＶ機能をサポートするネットワークインタフェースカードがホスト上で使用されるとき、ネットワークインタフェースカードのネットワークポートは、少なくとも１つの物理ファンクション（Ｐｈｙｓｉｃａｌ  Ｆｕｎｃｔｉｏｎ、ＰＦ）および複数の仮想ファンクション（Ｖｉｒｔｕａｌ  Ｆｕｎｃｔｉｏｎ、ＶＦ）に仮想化される。ホスト上の仮想マシンは、少なくとも１つのＶＦに接続される。ネットワークインタフェースカードの中には、スイッチとして機能するスイッチング装置が設けられる。スイッチング装置は、媒体アクセス制御（ＭｅｄｉａＡｃｃｅｓｓＣｏｎｔｒｏｌ、ＭＡＣ）テーブルに従ってデータパケットを転送し、物理ネットワークポート、ＰＦ、およびＶＦの間でデータパケットを転送する。処理およびストレージの能力は有限なので、スイッチング装置は、セキュリティグループ、サービス品質（Ｑｕａｌｉｔｙ  ｏｆ  Ｓｅｒｖｉｃｅ、ＱｏＳ）、レイヤ２トンネルカプセル化、および分散ルーティングなどの豊富なネットワーク機能をユーザに提供できない。
【発明の概要】
【０００４】
本明細書では、ネットワークインタフェースカードパススルーのシナリオにおいて豊富なネットワーク機能を提供できないという問題を解決するために、クラウドコンピューティングシステムにおけるパケット処理方法、ホスト、およびシステムを説明する。
【０００５】
第１態様によれば、本発明の一実施形態は、ホストを提供する。少なくとも１つのネットワークインタフェースカードがホストに接続される。仮想マシンモニタＶＭＭは、ホスト上で動作し、第１仮想マシンは、ＶＭＭ上で動作する。ＶＭＭは、複数のＶＬＡＮサブインタフェースおよび仮想ネットワーク機能モジュールを含み、少なくとも１つのネットワークインタフェースカードは、スイッチング装置および少なくとも３つのネットワークポートを含み、ここで、第１ネットワークポートおよび第２ネットワークポートは、ネットワークインタフェースカード仮想化機能をサポートし、第１ネットワークポートは、少なくとも１つの物理ファンクションＰＦおよび複数の仮想ファンクションＶＦに対応し、ＶＬＡＮ識別子は、複数のＶＦのために構成され、ＶＦのＶＬＡＮ識別子は互いに異なり、第１仮想マシンは、第１ネットワークポートの少なくとも１つのＶＦに接続され、ＶＬＡＮサブインタフェースの数は、第１ネットワークポートのＶＦの数と同一であり、ＶＬＡＮサブインタフェースは、第１ネットワークポートのＶＦと一対一の対応関係にあり、ＶＬＡＮサブインタフェースは、ＶＬＡＮサブインタフェースに対応するＶＦと同一のＶＬＡＮ識別子を有し、第１ネットワークポートおよび第２ネットワークポートは、ネットワークケーブルを使用することによって接続される。
【０００６】
第１仮想マシンは、第１仮想マシンに接続されるＶＦを使用することによって、データパケットを第２仮想マシンへ送信する。データパケットは、データパケットを送信するＶＦのＶＬＡＮ識別子を保持する。第１ネットワークポートのスイッチング装置は、データパケットを受信し、ネットワークケーブルを使用することによってデータパケットを第２ネットワークポートへ強制的に転送する。第２ネットワークポートのスイッチング装置は、データパケットに保持されるＶＬＡＮ識別子に従って、データパケットと同一のＶＬＡＮ識別子を有するＶＬＡＮサブインタフェースへデータパケットを送信する。ＶＬＡＮサブインタフェースは、データパケットを受信し、データパケットにおけるＶＬＡＮ識別子を除去し、データパケットを仮想ネットワーク機能モジュールへ送信する。仮想ネットワーク機能モジュールは、変更されたデータパケットに対してネットワーク機能処理を実行し、処理されたデータパケットを第２仮想マシンへ送信する。ネットワークインタフェースカードパススルーのシナリオにおいて、仮想マシンは、パススルーＶＦからデータパケットを送信した後に、上述の方式で、ＶＭＭ上の仮想ネットワーク機能モジュールへデータパケットを送信し得る。ソフトウェアモジュールを使用することによって、豊富なネットワーク機能がユーザに提供され、これにより、データパケットに対するネットワーク機能処理を実現する。
【０００７】
可能な設計において、第１ネットワークポートおよび第２ネットワークポートは、仮想イーサネット（登録商標）ポートアグリゲータＶＥＰＡモードである。ＶＥＰＡモードにおいて、データパケットは、第１ネットワークポートと第２ネットワークポートとの間で強制的に転送され得る。ＶＥＰＡモードは、データパケットを強制的に転送する１つの方式に過ぎないことに注意すべきである。当業者であれば、データパケットを強制的に転送するために、別のソフトウェア設定またはハードウェア設定を使用し得る。本発明のこの実施形態は、これに限定を課すものではない。
【０００８】
可能な設計において、ホストはさらに、デバイス管理モジュールを備え、デバイス管理モジュールは、ＶＬＡＮサブインタフェースを生成するように構成される。以下に具体例を示す。
【０００９】
デバイス管理モジュールは、第１仮想マシンの生成に成功した後に、クラウド管理プラットフォームによって送信されるＶＬＡＮサブインタフェース生成要求を受信するように構成され、ここで、ＶＬＡＮサブインタフェース生成要求は、第１仮想マシンに割り当てられるＶＦのＶＬＡＮ識別子を保持し、デバイス管理モジュールはさらに、第１仮想マシンのＶＦに対応するＶＬＡＮサブインタフェースを生成するようにＶＭＭに命令するための通知メッセージをＶＭＭへ送信するように構成され、ここで、第１仮想マシンのＶＦに対応するＶＬＡＮサブインタフェースは、第１仮想マシンのＶＦと同一のＶＬＡＮ識別子を有する。
【００１０】
少なくとも１つのネットワークインタフェースカードは、少なくとも３つのネットワークポートを有し、少なくとも３つのネットワークポートは、同一のネットワークインタフェースカードまたは異なるネットワークインタフェースカードに配置され得る。第１ネットワークポートおよび第２ネットワークポートが同一のネットワークインタフェースカードに配置されるとき、第１ネットワークポートおよび第２ネットワークポートは、ネットワークインタフェースカードのスイッチング装置を共有し得るか、または、第１ネットワークポートおよび第２ネットワークポートの各々は、独立したスイッチング装置を有し得る。
【００１１】
可能な設計において、データパケットの送信元仮想マシン（第１仮想マシン）および宛先仮想マシン（第２仮想マシン）は、同一のホストに配置される。仮想ネットワーク機能モジュールは、第２仮想マシンに接続されるＶＦに対応するＶＬＡＮサブインタフェースへ、処理されたデータパケットを送信し、ここで、第２仮想マシンに接続されるＶＦは、処理されたデータパケットを受信するＶＬＡＮサブインタフェースと同一のＶＬＡＮ識別子を有し、第２仮想マシンに接続されるＶＦに対応するＶＬＡＮサブインタフェースは、ＶＬＡＮサブインタフェースのＶＬＡＮ識別子をデータパケットに追加し、データパケットを第２ネットワークポートへ送信し、第２ネットワークポートのスイッチング装置は、ネットワークケーブルを使用することによって、データパケットを第１ネットワークポートへ強制的に転送し、第１ネットワークポートのスイッチング装置は、データパケットに保持されるＶＬＡＮ識別子に従って、データパケットにおけるＶＬＡＮ識別子によって識別されるＶＦへデータパケットを送信し、これにより、データパケットは、第２仮想マシンへ伝送される。
【００１２】
可能な設計において、データパケットの送信元仮想マシン（第１仮想マシン）および宛先仮想マシン（第２仮想マシン）は、異なるホストに配置される。仮想ネットワーク機能モジュールは、具体的には、仮想ネットワーク機能モジュールと、第２仮想マシンが配置されるホスト上の別の仮想ネットワーク機能モジュールとの間にトンネルを確立し、第３ネットワークポートを使用することによって、処理されたデータパケットを外部物理スイッチへ送信し、外部物理スイッチを使用することによって、第２仮想マシンが配置されるホストへ、処理されたデータパケットを送信するように構成され、これにより、別の仮想ネットワーク機能モジュールは、処理されたデータパケットを第２仮想マシンへ送信する。
【００１３】
第２態様によれば、本発明の一実施形態はさらに、第１態様における装置に対応して、クラウドコンピューティングシステムにおけるパケット処理方法を提供する。クラウドコンピューティングシステムにおける少なくとも１つのホストは、仮想マシンモニタＶＭＭおよび少なくとも１つのネットワークインタフェースカードを備え、第１仮想マシンは、ホスト上で動作し、ＶＭＭは、複数のＶＬＡＮサブインタフェースおよび仮想ネットワーク機能モジュールを有し、少なくとも１つのネットワークインタフェースカードは、スイッチング装置および少なくとも３つのネットワークポートを有し、第１ネットワークポートおよび第２ネットワークポートは、ネットワークインタフェースカード仮想化機能をサポートし、第１ネットワークポートは、少なくとも１つのＰＦおよび複数のＶＦに対応し、ＶＬＡＮ識別子は、複数のＶＦのために構成され、ＶＦのＶＬＡＮ識別子は互いに異なり、第１仮想マシンは、第１ネットワークポートの少なくとも１つのＶＦに接続され、ＶＬＡＮサブインタフェースの数は、第１ネットワークポートのＶＦの数と同一であり、ＶＬＡＮサブインタフェースは、第１ネットワークポートのＶＦと一対一の対応関係にあり、ＶＬＡＮサブインタフェースは、ＶＬＡＮサブインタフェースに対応するＶＦと同一のＶＬＡＮ識別子を有し、第１ネットワークポートおよび第２ネットワークポートは、ネットワークケーブルを使用することによって接続され、方法は、第１仮想マシンによって、第１仮想マシンに接続されるＶＦを使用することによって、データパケットを第２仮想マシンへ送信する段階であって、データパケットは、データパケットを送信するＶＦのＶＬＡＮ識別子、および、第２仮想マシンのアドレスを保持する、段階と、第１ネットワークポートのスイッチング装置によって、データパケットを受信し、ネットワークケーブルを使用することによってデータパケットを第２ネットワークポートへ強制的に転送する段階と、第２ネットワークポートのスイッチング装置によって、データパケットを第１ネットワークポートから受信し、データパケットに保持されるＶＬＡＮ識別子に従って、ＶＬＡＮ識別子によって識別されるＶＬＡＮサブインタフェースへデータパケットを送信する段階と、ＶＬＡＮサブインタフェースによって、データパケットを受信し、データパケットにおけるＶＬＡＮ識別子を除去し、データパケットを仮想ネットワーク機能モジュールへ送信する段階と、仮想ネットワーク機能モジュールによって、変更されたデータパケットに対してネットワーク機能処理を実行し、処理されたデータパケットを送信する段階であって、処理されたデータパケットの宛先アドレスは、第２仮想マシンのアドレスである、段階とを備える。
【００１４】
可能な設計において、第１ネットワークポートおよび第２ネットワークポートは、ＶＥＰＡモードである。
【００１５】
可能な設計において、方法はさらに、ＶＬＡＮサブインタフェース生成プロセスを備える。ＶＬＡＮサブインタフェース生成プロセスは、ホストのデバイス管理モジュールによって、第１仮想マシンの生成に成功した後に、クラウド管理プラットフォームによって送信されるＶＬＡＮサブインタフェース生成要求を受信する段階であって、ＶＬＡＮサブインタフェース生成要求は、第１仮想マシンに割り当てられるＶＦのＶＬＡＮ識別子を保持する、段階と、ＶＭＭが第１仮想マシンのＶＦに対応するＶＬＡＮサブインタフェースを生成するように、デバイス管理モジュールによって、通知メッセージをＶＭＭへ送信する段階であって、第１仮想マシンのＶＦに対応するＶＬＡＮサブインタフェースは、第１仮想マシンのＶＦと同一のＶＬＡＮ識別子を有する、段階とを有する。
【００１６】
第３態様によれば、本発明の一実施形態は、クラウドコンピューティングシステムを提供する。クラウドコンピューティングシステムは、クラウド管理プラットフォームと、第１態様に記載されるホストとを備える。クラウド管理プラットフォームは、ホスト上で第１仮想マシンを生成し、第１仮想マシンの生成に成功した後に、第１仮想マシンのＶＦに対応するＶＬＡＮサブインタフェースを生成するようにホストのＶＭＭに命令するように構成される。第１仮想マシンのＶＦに対応するＶＬＡＮサブインタフェースは、第１仮想マシンのＶＦと同一のＶＬＡＮ識別子を有する。
【００１７】
第４態様によれば、本発明の一実施形態は、上述の装置、方法、およびシステムに対応して、ホストを提供する。ホストは、第１態様において規定されるホストを実現する機能を有する。この機能は、ハードウェアによって実現され得るか、または、対応するソフトウェアをハードウェアが実行することによって実現され得る。ハードウェアまたはソフトウェアは、上述の機能に対応する１または複数のモジュールを有する。具体的には、ホストは、第１プロセッサ、第１メモリ、および少なくとも１つのネットワークインタフェースカードを備える。ネットワークインタフェースカードは、第２プロセッサ、第２メモリ、および少なくとも２つのネットワークポートを有し、少なくとも１つのネットワークインタフェースカードにおける第１ネットワークポートおよび第２ネットワークポートは、ネットワークインタフェースカード仮想化機能をサポートし、第１ネットワークポートは、少なくとも１つのＰＦおよび複数のＶＦに対応し、ＶＬＡＮ識別子が複数のＶＦのために構成され、ＶＦのＶＬＡＮ識別子は互いに異なり、第１メモリおよび第２メモリは命令を記憶し、第１プロセッサは、第１仮想マシンの機能を実現するために、第１メモリにおける第１の命令を実行し、第１仮想マシンは、第１ネットワークポートの少なくとも１つのＶＦに接続され、第１プロセッサは、ＶＬＡＮサブインタフェースの機能を実現するために、第１メモリにおける第２の命令を実行し、第１プロセッサは、仮想ネットワーク機能モジュールの機能を実現するために、第１メモリにおける第３の命令を実行し、第２プロセッサは、スイッチング装置の機能を実現するために、第２メモリにおける命令を実行するように構成され、第１仮想マシンは、第１ネットワークポートの少なくとも１つのＶＦに接続され、ホストは、複数のＶＬＡＮサブインタフェースを備え、複数のＶＬＡＮサブインタフェースの数は、第１ネットワークポートのＶＦの数と同一であり、複数のＶＬＡＮサブインタフェースは、第１ネットワークポートのＶＦと一対一の対応関係にあり、ＶＬＡＮサブインタフェースは、ＶＬＡＮサブインタフェースに対応するＶＦと同一のＶＬＡＮ識別子を有し、第１ネットワークポートおよび第２ネットワークポートは、ネットワークケーブルを使用することによって接続され、第１プロセッサは、第１仮想マシンに接続されるＶＦを使用することによってデータパケットを第２仮想マシンへ送信する段階であって、データパケットは、データパケットを送信するＶＦのＶＬＡＮ識別子と、第２仮想マシンのアドレスとを保持する、段階を実行するために、第１メモリにおける第１の命令を実行するように構成され、第２プロセッサは、データパケットを受信する段階と、ネットワークケーブルを使用することによってデータパケットを第２ネットワークポートへ強制的に転送する段階とを実行するために、第２メモリにおける命令を実行するように構成され、第２プロセッサは、データパケットを第１ネットワークポートから受信する段階と、データパケットに保持されるＶＬＡＮ識別子に従って、ＶＬＡＮ識別子によって識別されるＶＬＡＮサブインタフェースへデータパケットを送信する段階とを実行するために、第２メモリにおける命令を実行するように構成され、第１プロセッサは、データパケットを受信する段階と、データパケットにおけるＶＬＡＮ識別子を除去する段階と、データパケットを仮想ネットワーク機能モジュールへ送信する段階とを実行するために、第１メモリにおける第２の命令を実行するように構成され、第１プロセッサは、変更されたデータパケットに対してネットワーク機能処理を実行する段階と、第２仮想マシンのアドレスに従って、処理されたデータパケットを第２仮想マシンへ送信する段階とを実行するために、第１メモリにおける第３の命令を実行するように構成される。
【００１８】
可能な設計において、ホストおよびクラウド管理プラットフォームは、汎用または専用のサーバによって実現される。サーバは、プロセッサ、メモリ、システムバス、および入出力インタフェースを備える。プロセッサは、システムにおけるホスト／クラウド管理プラットフォームの対応する機能をサポートするように構成される。入出力インタフェースは、クラウドコンピューティングシステムにおける別のコンポーネントと通信するように構成される。プロセッサは、メモリに記憶された命令を実行する。
【００１９】
第５態様によれば、本発明の一実施形態は、上述のホストによって使用されるコンピュータソフトウェア命令を記憶するように構成されるコンピュータ記憶媒体を提供する。コンピュータソフトウェア命令は、上述の態様を実行するように設計されたプログラムを含む。
【００２０】
第６態様によれば、本発明の一実施形態は、上述のネットワークインタフェースカードにおけるスイッチング装置によって使用されるコンピュータソフトウェア命令を記憶するように構成される別のコンピュータ記憶媒体を提供する。コンピュータソフトウェア命令は、上述の態様を実行するように設計されたプログラムを含む。
【００２１】
第７態様によれば、本発明の一実施形態は、コンピュータプログラムを提供する。物理サーバがコンピュータプログラムを実行するとき、物理サーバは、ホストにおける仮想マシン、ＶＬＡＮサブインタフェース、および仮想ネットワーク機能モジュールの機能を実行する。
【００２２】
第８態様によれば、本発明の一実施形態は、コンピュータプログラムを提供する。ネットワークインタフェースカードにおけるプロセッサまたはプログラマブル論理回路がコンピュータプログラムを実行するとき、ネットワークインタフェースカードは、上述の態様におけるスイッチング装置の機能を実行する。
【００２３】
結論として、仮想マシンは、仮想マシンに接続されるＶＦからデータパケットを送信し、第１ネットワークポートのスイッチング装置は、データパケットを第２ネットワークポートへ強制的に転送し、第２ネットワークポートのスイッチング装置は、データパケットに保持されるＶＬＡＮ識別子に従って、ＶＭＭ上のＶＬＡＮサブインタフェースへデータパケットを送信し、ＶＬＡＮサブインタフェースは、データパケットを仮想ネットワーク機能モジュールへ伝達し、仮想ネットワーク機能モジュールは、豊富なネットワーク機能処理をデータパケットに提供する。ネットワークインタフェースカードパススルーに基づいて、仮想マシンは、パススルーＶＦからデータパケットを送信した後に、上述の方式で、ＶＭＭ上の仮想ネットワーク機能モジュールへデータパケットを送信し得る。ソフトウェアモジュールを使用することによって、豊富なネットワーク機能がユーザに提供され、これにより、データパケットに対するネットワーク機能処理を実現する。
【図面の簡単な説明】
【００２４】
本発明の実施形態における、または従来技術における技術的解決法をより明確に説明すべく、実施形態または従来技術を説明するために必要な添付の図面を以下で簡潔に説明する。明らかに、以下の説明における添付の図面は、本発明のいくつかの実施形態を示すものに過ぎず、当業者であれば、これら添付の図面から、創造的努力なしで、他の実装を導出できる。これらの実施形態または実装はすべて、本発明の保護範囲内に属する。
【００２５】
【図１Ａ】本発明の一実施形態に係るホスト上の仮想化構造の概略図である。
【００２６】
【図１Ｂ】本発明の一実施形態に係るネットワークインタフェースカードパススルーのシナリオにおけるホスト上の仮想化構造の概略図である。
【００２７】
【図２】本発明の一実施形態に係るホスト上の別の仮想化アーキテクチャの概略図である。
【００２８】
【図３】本発明の一実施形態に係る仮想マシン生成プロセスの概略図である。
【００２９】
【図４】本発明の一実施形態に係るクラウドコンピューティングシステムにおけるパケット処理方法の概略フローチャートである。
【００３０】
【図５】本発明の一実施形態に係るコンピュータデバイスのハードウェアの概略構造図である。
【００３１】
【図６】本発明の一実施形態に係るクラウドコンピューティングシステムの概略構造図である。
【発明を実施するための形態】
【００３２】
本発明の実施形態において説明されるネットワークアーキテクチャおよびサービスシナリオは、本発明の実施形態における技術的解決法をより明確に説明するために使用されるものであり、本発明の実施形態において提供される技術的解決法に対していかなる限定も構成しない。当業者であれば、ネットワークアーキテクチャの進歩、および、新しいサービスシナリオの出現に伴い、本発明の実施形態において提供される技術的解決法は、同様の技術的問題にも適用されることを理解するであろう。
【００３３】
図１Ａに示されるように、図１Ａは、本発明の一実施形態に係るホスト上の仮想化構造の概略図である。ホストは物理サーバである。物理サーバの最下層は、ハードウェア層である。ハードウェア層は主に、中央演算処理装置（ＣＰＵ、Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）、メモリ、ハードディスク、およびネットワークインタフェースカードなどのハードウェアリソースを含む。サーバ仮想化は、仮想化ソフトウェア（例えば、ＶＭＷａｒｅ  ＥＳＸまたはＣｉｔｒｉｘ  ＸＥＮ）を使用することによって、物理サーバ上で、複数の仮想マシン（Ｖｉｒｔｕａｌ  Ｍａｃｈｉｎｅ、ＶＭ）の仮想化動作環境を実現する。仮想化環境を実現するためにサーバ上にインストールされるソフトウェア層は、仮想マシンモニタ（Ｖｉｒｔｕａｌ  Ｍａｃｈｉｎｅ  Ｍｏｎｉｔｏｒ、ＶＭＭ）と称される。ハードウェア層において動作するＶＭＭは、ハードウェア層における、ハードウェアリソースのスケジューリング、割り当て、および管理を担う。複数の仮想マシンＶＭは、ＶＭＭ上で動作する。ＶＭＭは、仮想化されたＣＰＵ、メモリ、ストレージ、ＩＯデバイス（ネットワークインタフェースカードなど）、およびイーサネット（登録商標）スイッチなどのハードウェア環境を各仮想マシンに提供する。これにより、複数の仮想マシンが、互いから隔離される方式で動作することを保証する。
【００３４】
仮想化動作環境において、ＶＭＭは、仮想ネットワークインタフェースカード（Ｖｉｒｔｕａｌ  Ｎｅｔｗｏｒｋ  Ｉｎｔｅｒｆａｃｅ  Ｃａｒｄ、ｖＮＩＣ）を各仮想マシンのために生成し、仮想スイッチｖＳｗｉｔｃｈは、仮想マシンの間、および、仮想マシンと外部ネットワークとの間の通信機能を提供する。各仮想マシンの仮想ネットワークインタフェースカードは、ｖＳｗｉｔｃｈの論理ポートに対応する。ホストの物理ネットワークインタフェースカードは、ｖＳｗｉｔｃｈを外部物理スイッチに接続するポートに対応する。仮想マシンによって送信または受信されるデータパケットがＶＭＭをパススルーするとき、ＶＭＭ上の仮想ネットワーク機能モジュールは、ＶＭＭをパススルーするデータパケットに対して、ネットワーク機能処理を実行する。仮想ネットワーク機能モジュールは、ソフトウェアモジュールであり、必要に応じてアップデートすることができる。従って、ＶＭＭ上の仮想ネットワーク機能モジュールは、ユーザのために豊富なネットワーク機能を提供できる。
【００３５】
物理ネットワークインタフェースカードのネットワークポートは、仮想化能力をサポートする。これは、シングルルート入出力仮想化（Ｓｉｎｇｌｅ‐Ｒｏｏｔ  Ｉ／Ｏ  Ｖｉｒｔｕａｌｉｚａｔｉｏｎ、ＳＲ‐ＩＯＶ）、またはマルチルート入出力仮想化（Ｍｕｌｔｉ  Ｒｏｏｔ  Ｉｎｐｕｔ／Ｏｕｔｐｕｔ  Ｖｉｒｔｕａｌｉｚａｔｉｏｎ、ＭＲ‐ＩＯＶ）を用いることによって実現できる。本発明のこの実施形態において、説明のための例としてＳＲ‐ＩＯＶ技術を使用する。ＳＲ‐ＩＯＶ技術は、ハードウェアベースの仮想化の解決法である。これにより、ＰＣＩｅ（Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ  Ｅｘｐｒｅｓｓ、ペリフェラルコンポーネントインターコネクトエクスプレス）デバイスを仮想マシンの間で効率的に共有できる。さらに、ＳＲ‐ＩＯＶ技術がハードウェアにおいて実現され、これにより、効率的なＩ／Ｏパフォーマンスを達成できる。
【００３６】
標準化組織ＰＣＩ‐ＳＩＧ（Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ  Ｓｐｅｃｉａｌ  Ｉｎｔｅｒｅｓｔ  Ｇｒｏｕｐ、ペリフェラルコンポーネントインターコネクトスペシャルインタレストグループ）が、ＳＲ‐ＩＯＶの仕様を定義している。ＳＲ‐ＩＯＶの仕様については、ｈｔｔｐ：／／ｗｗｗ．ｐｃｉｓｉｇ．ｃｏｍを参照されたい。
【００３７】
ＳＲ‐ＩＯＶ技術を使用することによって、単一のＩ／Ｏリソースが、ホスト上の複数の仮想マシンによって共有され得る。このようにして、各仮想マシンは、同一のハードウェアリソースにアクセスできる。従って、ＳＲ‐ＩＯＶが有効化されるＰＣＩｅデバイス（例えば、物理ネットワークインタフェースカードのネットワークポート）は、複数の別個のデバイスとして表示され得る。表示される別個のデバイスの各々は、独立したＰＣＩｅ構成空間を有する。ＳＲ‐ＩＯＶをサポートする物理ネットワークインタフェースカードを例として使用する。物理ネットワークインタフェースカードは、ネットワークポートを含み、各ネットワークポートについて、ＳＲ‐ＩＯＶ機能を有効化／無効化できる。ＳＲ‐ＩＯＶ機能が有効化されるネットワークポートは、少なくとも１つの物理ファンクション（Ｐｈｙｓｉｃａｌ  Ｆｕｎｃｔｉｏｎ、ＰＦ）および複数の仮想ファンクション（Ｖｉｒｔｕａｌ  Ｆｕｎｃｔｉｏｎ、ＶＦ）に対応する。既存のＳＲ‐ＩＯＶの仕様によれば、各ＰＦは、ＰＦに関連するＶＦを最大で６４，０００個有し得る。ＶＦが生成された後、ＶＦは、ホスト上の仮想マシンに直接割り当てられて使用され得て、これにより、複数の仮想マシンは、複数の仮想マシンに接続される少なくとも１つのＶＦを使用することによってＰＣＩｅデバイスを共有する。
【００３８】
図１Ｂに示されるように、図１Ｂは、本発明の一実施形態に係る、ネットワークインタフェースカードパススルーのシナリオにおけるホスト上の仮想化構造の概略図である。図１Ａと図１Ｂとの間の違いとして、物理ネットワークインタフェースカードは、シングルルートＩＯ仮想化をサポートし、物理ネットワークインタフェースカードのネットワークポートは、少なくとも１つのＰＦおよび複数のＶＦに対応し、ＶＦは、物理ネットワークインタフェースカードの物理リソース（例えば、ネットワークインタフェースカードのポート）を共有できる。
【００３９】
ホスト上の仮想マシンが、パススルーＶＦを使用することによってデータパケットを送信するとき、仮想マシンによって送信されるデータパケットは、仮想マシン上にインストールされたＶＦドライバを使用することによって、ネットワークインタフェースカードのＶＦへ直接伝達される。その結果、データパケットは、ＶＭＭ上の仮想ネットワーク機能モジュールをパススルーできない。ネットワークインタフェースカードのスイッチング装置が有するＭＡＣテーブル容量は有限であり、処理能力は有限であるため、制約なく機能拡張を実行することができない。従って、ネットワークインタフェースカードは、豊富なネットワーク機能を提供できない。可能なシナリオにおいて、スイッチング装置は、仮想イーサネット（登録商標）ブリッジおよび分類器である。
【００４０】
本発明のこの実施形態は、ネットワークインタフェースカードパススルーのシナリオに基づいていることに注意すべきである。上述のネットワークインタフェースカードパススルーは、ＳＲ‐ＩＯＶまたはＭＲ‐ＩＯＶを用いることによって実現され得るが、本発明のこの実施形態は、これに限定を課さない。
【００４１】
図２に示されるように、図２は、本発明の一実施形態に係るホスト上の別の仮想化アーキテクチャの概略図である。ホストは、ＶＭＭおよび少なくとも１つの物理ネットワークインタフェースカードを備える。少なくとも１つの仮想マシンは、ホスト上で動作する。少なくとも１つの物理ネットワークインタフェースカードは、少なくとも３つのネットワークポートを有する。第１ネットワークポートおよび第２ネットワークポートは、ネットワークインタフェースカード仮想化機能をサポートする。第３ネットワークポートは、ホストの外部物理スイッチに接続され、ホストを跨ぐネットワークトラフィックの送信および受信を担う。第１ネットワークポートは、少なくとも１つのＰＦおよび少なくとも２つのＶＦに仮想化される（図２において、説明のための例として、２つのＶＦが使用される）。ＶＦドライバは、第１仮想マシンおよび第２仮想マシンにインストールされる。第１仮想マシンおよび第２仮想マシンは、少なくとも１つのＶＦに別個に接続される。第１ネットワークポートおよび第２ネットワークポートは、ネットワークケーブルを使用することによって直接接続される。第２ネットワークポートのＰＦは、ＶＭＭ上のＶＬＡＮサブインタフェースに接続される。従って、仮想マシンから送信されるすべてのトラフィックは、ネットワークケーブルを使用することによって、第２ネットワークポートへ迂回され、第２ネットワークポートは、トラフィックをＶＭＭ上の仮想ネットワーク機能モジュールへ送り返す。ネットワークケーブルは、具体的には、ツイストペア、光ファイバ、同軸ケーブル、または同様のものを含む、任意の媒体のケーブルであり得る。本発明のこの実施形態において、第１ネットワークポートおよび第２ネットワークポートは、ネットワークケーブルを使用することによって直接接続され、第１ネットワークポートのＶＦに接続される仮想マシンによって送信されるデータパケットを第２ネットワークポートへ強制的に転送し、これにより、データパケットの伝送経路は必然的に、ＶＭＭ上の仮想ネットワーク機能モジュールをパススルーする。このように、ネットワークインタフェースカードパススルーに基づいて、ＶＭＭ上の仮想ネットワーク機能モジュールは、豊富な仮想ネットワーク機能を提供する。
【００４２】
当業者であれば、図２において、２つのＶＦおよび２つのＶＬＡＮサブインタフェースは、説明のための例として使用されているに過ぎないことを理解し得る。実際の製品の実装において、ネットワークインタフェースカード仮想化機能をサポートするネットワークインタフェースカードは、少なくとも１つのＰＦおよび複数のＶＦに仮想化され得る。ＶＦの数は、２つに限定されるものではなく、これに対応して、ＶＬＡＮサブインタフェースの数も２つに限定されるものではない。
【００４３】
本発明の実施形態において、ネットワークインタフェースカード仮想化は、具体的には、ネットワークインタフェースカードのハードウェア仮想化であり得る。
【００４４】
本発明の実施形態において、第１ネットワークポートは、パススルーネットワークポートと称され、第２ネットワークポートは、代替的なネットワークポートと称され、第３ネットワークポートは、サービスネットワークポートと称される。
【００４５】
パススルーネットワークポートの場合、ＶＦは、標準のＳＲ‐ＩＯＶ／ＭＲ‐ＩＯＶ技術を使用することによって、パススルー方式で仮想マシンに提供され、異なる仮想ローカルエリアネットワーク（Ｖｉｒｔｕａｌ  Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ、ＶＬＡＮ）識別子が異なるＶＦのために設定され、現在のネットワークポートのＶＦを使用する複数の仮想マシンの間の直接的な通信は回避され、仮想マシンのデータパケットは、ネットワークケーブルから強制的に送信される。具体的には、ＶＬＡＮ識別子は、ブロードキャストドメインを表す。従って、異なるＶＬＡＮ識別子が異なるＶＦのために設定されるとき、仮想マシンに接続されるＶＦは、異なるブロードキャストドメインにある。ブロードキャストパケットは、ＶＬＡＮ上の仮想マシンのみへ送信でき、従って、異なるＶＬＡＮ識別子をＶＦのために設定することによって、仮想マシンから送信されるブロードキャストパケットを、仮想マシン自身およびＰＦのみによって受信できる。ＶＦのためにＶＬＡＮ識別子を設定する間、ＶＬＡＮ識別子がホスト範囲内において一意であることが保証される必要がある。異なるホスト上のＶＬＡＮ識別子は、同一であり得る。
【００４６】
ＶＬＡＮサブインタフェースは、ＶＭＭ上で生成される。ＶＬＡＮサブインタフェースの数は、パススルーネットワークポートのＶＦの数と同一であり、ＶＬＡＮサブインタフェースのＶＬＡＮ識別子は、パススルーネットワークポートのＶＦのＶＬＡＮ識別子と一対一の対応関係にある。代替的なネットワークポート上で、パススルーネットワークポートに接続されるネットワークポートは、ＰＦであり得るか、または、プロミスキャスモード（ｐｒｏｍｉｓｃｕｏｕｓ  ｍｏｄｅ）に設定されるＶＦであり得る。ＶＬＡＮサブインタフェースは、仮想ブリッジであり、レイヤ２転送機能を有する。
【００４７】
図２に示される実施形態において、第１仮想マシンによって、データパケットを第２仮想マシンへ送信することは、同一のホスト内における２つの仮想マシン間の通信であることに注意すべきである。当業者であれば、第２仮想マシンおよび第１仮想マシンは、代替的に、異なるホストに配置され得ることを理解するであろう。この場合、第１仮想マシンは、ホストを跨ぐ方式で第２仮想マシンと通信する。
【００４８】
図２に示されるホストの仮想化構造に関連して、本発明のこの実施形態において、データパケット処理のプロセスは、第１仮想マシンがデータパケットを第２仮想マシンへ送信する例を使用して説明される。第１仮想マシンは、第１仮想マシンに接続されるＶＦを使用することによって、データパケットを第２仮想マシンへ送信する。データパケットは、データパケットを送信するＶＦのＶＬＡＮ識別子を保持する。第１ネットワークポートのスイッチング装置は、データパケットを受信し、ネットワークケーブルを使用することによってデータパケットを第２ネットワークポートへ強制的に転送する。第２ネットワークポートのスイッチング装置は、データパケットに保持されるＶＬＡＮ識別子に従って、データパケットと同一のＶＬＡＮ識別子を有するＶＬＡＮサブインタフェースへデータパケットを送信する。ＶＬＡＮサブインタフェースは、データパケットを受信し、データパケットにおけるＶＬＡＮ識別子を除去し、データパケットを仮想ネットワーク機能モジュールへ送信する。仮想ネットワーク機能モジュールは、変更されたデータパケットに対してネットワーク機能処理を実行し、処理されたデータパケットを第２仮想マシンへ送信する。ネットワークインタフェースカードパススルーのシナリオにおいて、仮想マシンは、パススルーＶＦからデータパケットを送信した後に、上述の方式で、ＶＭＭ上の仮想ネットワーク機能モジュールへデータパケットを送信し得る。ソフトウェアモジュールを使用することによって、豊富な仮想ネットワーク機能がユーザに提供され、これにより、データパケットに対する仮想ネットワーク機能処理を実現する。
【００４９】
第１仮想マシンがデータパケットを第２仮想マシンへ送信する上述のプロセスにおいて、第１仮想マシンに接続されるＶＦのＶＬＡＮ識別子は、ＶＭＭにおける対応するＶＬＡＮサブインタフェースのＶＬＡＮ識別子と同一である。図３に示されるように、図３は、本発明の一実施形態に係る仮想マシン生成プロセスの概略図である。このプロセスは、パススルーＶＦを有する仮想マシンを生成し、パススルーＶＦに対応するＶＬＡＮサブインタフェースを生成するために使用される。
【００５０】
段階３０１：コンピューティング管理モジュールは、仮想マシン生成要求を受信する。ここで、仮想マシン生成要求は、パススルーＶＦを有する仮想マシンを生成するために使用される。
【００５１】
あるシナリオにおいて、仮想マシン生成プロセスは、管理者またはユーザによって開始され得る。管理者またはユーザは、端末を使用することによって、外部に提示されるクラウド管理プラットフォームのインタフェースにログインして、生成予定の仮想マシンの仕様を選択し、仮想マシン生成要求をコンピューティング管理モジュールに対して発行する。仮想マシン生成要求は、生成予定の仮想マシンのパラメータを保持し、パラメータは、生成予定の仮想マシンがパススルーＶＦを有することを示す情報を含む。
【００５２】
段階３０２：コンピューティング管理モジュールは、割り当て要求をデバイス管理モジュールへ送信し、生成予定の仮想マシンに対するＶＦの割り当てを要求する。
【００５３】
段階３０３：デバイス管理モジュールは、アイドルＶＦの識別子をコンピューティング管理モジュールへ戻す。ここで、アイドルＶＦとは、ホスト上にあり、かつ、仮想マシンに割り当てられていないＶＦである。
【００５４】
段階３０４：コンピューティング管理モジュールは、ＶＬＡＮ識別子をＶＦに割り当てる。
【００５５】
段階３０５：コンピューティング管理モジュールは、ＶＬＡＮ識別子をデバイス管理モジュールへ送信し、デバイス管理モジュールは、割り当てられたＶＦのために、ＶＬＡＮ識別子を構成する。
【００５６】
段階３０６：デバイス管理モジュールは、仮想マシン生成のための情報をＶＭＭへ送信する。ここで、仮想マシン生成のための情報は、ＶＦのＶＬＡＮ識別子を含む。
【００５７】
段階３０６：ＶＭＭは、仮想マシンを生成し、ＶＦを仮想マシンのパススルーネットワークポートとして設定する。
【００５８】
段階３０７：仮想マシンの生成に成功した後、コンピューティング管理モジュールは、ＶＬＡＮサブインタフェース生成要求をデバイス管理モジュールへ送信する。ここで、ＶＬＡＮサブインタフェース生成要求は、ＶＦのＶＬＡＮ識別子を保持する。
【００５９】
段階３０８：デバイス管理モジュールは、ＶＬＡＮサブインタフェース生成要求を受信し、ＶＭＭ上で、ＶＦに対応するＶＬＡＮサブインタフェースを生成し、ＶＬＡＮサブインタフェースのＶＬＡＮ識別子をＶＦのものと同一となるように構成する。
【００６０】
ＶＬＡＮサブインタフェースは、Ｌｉｎｕｘ（登録商標）システムによって提供される仮想ネットワークデバイスであり、Ｌｉｎｕｘ（登録商標）システムのｉｐコマンドに従って直接生成され得ることに注意すべきである。例えば、ＶＬＡＮ識別子が１００であるＶＬＡＮサブインタフェースを生成するためのコマンドは、ｉｐ  ｌｉｎｋ  ａｄｄ  ｌｉｎｋ  ｅｔｈ０  ｎａｍｅ  ｖｌａｎ１００  ｔｙｐｅ  ｖｌａｎ  ｉｄ  １００である。
【００６１】
段階３０９：コンピューティング管理モジュールは、ＶＬＡＮサブインタフェース生成応答メッセージを受信し、通知メッセージをネットワーク管理モジュールへ送信し、生成されたＶＬＡＮサブインタフェースを、ネットワーク管理モジュールに対応するブリッジに接続する。
【００６２】
仮想マシンは複数のパススルーＶＦを有し得ることに注意すべきである。特定の生成プロセスは、上述の段階と同様であるが、異なるＶＬＡＮ識別子がパススルーＶＦのために設定され、パススルーＶＦと一対一の対応関係にあるＶＬＡＮサブインタフェースがＶＭＭ上で生成される。
【００６３】
図４に示されるように、図４は、本発明の一実施形態に係るクラウドコンピューティングシステムにおけるパケット処理方法の概略フローチャートである。本発明のこの実施形態において、ホストＡ上の第１仮想マシンがホストＢ上の第２仮想マシンと通信する例を説明のために使用する。
【００６４】
段階４０１：ホストＡ上の第１仮想マシンは、第１仮想マシンに接続されるＶＦを使用することによってデータパケットを送信する。ここで、データパケットの宛先アドレスは、第２仮想マシンのアドレスであり、データパケットは、データパケットを送信するＶＦのＶＬＡＮ識別子を保持する。
【００６５】
段階４０２：パススルーネットワークポートのスイッチング装置（第１スイッチング装置）は、データパケットを受信し、受信されたデータパケットをブロードキャストする。パススルーネットワークポート上のＶＦのＶＬＡＮ識別子は互いに異なり、ＶＦは、異なる仮想ローカルエリアネットワーク上に配置される。従って、パススルーネットワークポート上の他のＶＦは、ブロードキャストデータパケットを受信せず、データパケットは、ネットワークケーブルを使用することによって、代替的なネットワークポートへ強制的に送信される。
【００６６】
パススルーネットワークポートおよび代替的なネットワークポートは、仮想イーサネット（登録商標）ポートアグリゲータ（Ｖｉｒｔｕａｌ  Ｅｔｈｅｒｎｅｔ（登録商標）  Ｐｏｒｔ  Ａｇｇｒｅｇａｔｏｒ、ＶＥＰＡ）モードであることに注意すべきである。ＶＥＰＡモードは、受信されたデータパケットを強制的に転送するようにパススルーネットワークポートおよび代替的なネットワークポートに命令するために使用される。ＶＥＰＡモードは、ＩＥＥＥ８０２．１Ｑｂｇ規格において規定される。
【００６７】
段階４０３：代替的なネットワークポートのスイッチング装置（第２スイッチング装置）は、パススルーネットワークポートからデータパケットを受信し、データパケットに保持されるＶＬＡＮ識別子に従って、ＶＭＭ上にあり、かつ、データパケットと同一のＶＬＡＮ識別子を有するＶＬＡＮサブインタフェースへデータパケットを送信する。
【００６８】
段階４０４：ＶＬＡＮサブインタフェースは、データパケットを受信し、データパケットにおけるＶＬＡＮ識別子を除去し、データパケットを第１仮想ネットワーク機能モジュールへ送信する。
【００６９】
段階４０５：第１仮想ネットワーク機能モジュールは、データパケットに対してネットワーク機能処理を実行し、データパケットをサービスネットワークポートへ送信する。ホストＡのサービスネットワークポートは、受信されたデータパケットをホストの外部ネットワークへ送信する。データパケットは、第２仮想マシンが配置されるホストＢのサービスネットワークポートへルーティングされ、ホストＢのサービスネットワークポートは、データパケットを受信した後、ホストＢの第２仮想ネットワーク機能モジュールへデータパケットを送信する。
【００７０】
具体的には、ホストＡの第１仮想ネットワーク機能モジュールと、ホストＢの第２仮想ネットワーク機能モジュールとの間にトンネルが確立され得る。トンネル技術の使用により、データパケットは、ホストＡとホストＢとの間のネットワークを使用することによって、ホストＢの仮想ネットワーク機能モジュールに伝達される。
【００７１】
段階４０６：ネットワーク機能処理を実行した後、ホストＢの第２仮想ネットワーク機能モジュールは、第２仮想マシンに接続されるＶＦに対応するＶＬＡＮサブインタフェースへデータパケットを送信する。ここで、第２仮想マシンに接続されるＶＦは、データパケットを受信するＶＬＡＮサブインタフェースと同一のＶＬＡＮ識別子を有する。
【００７２】
可能なシナリオにおいて、ＶＬＡＮサブインタフェースは、ソフトウェアによって実現される仮想ブリッジに接続され、仮想ブリッジは、データパケットをＶＬＡＮサブインタフェースへ送信するために、レイヤ２転送機能を提供することに注意すべきである。同一のＶＬＡＮ識別子が、ＶＬＡＮサブインタフェース、および、対応するＶＦのために設定される。従って、パススルー方式で第２仮想マシンのために提供されるＶＦは、データパケットを受信し得る。
【００７３】
段階４０７：ＶＬＡＮサブインタフェースは、ＶＬＡＮ識別子をデータパケットに追加し、データパケットを代替的なネットワークポートへ送信する。ここで、ＶＬＡＮ識別子は、ＶＬＡＮサブインタフェースのＶＬＡＮ識別子である。代替的なネットワークポートに接続されるＶＬＡＮサブインタフェースは、異なるＶＬＡＮ識別子を有するので、代替的なネットワークポートのスイッチング装置（第４スイッチング装置）は、ネットワークケーブルを使用することによって、データパケットをパススルーネットワークポートへ強制的に転送する。
【００７４】
段階４０８：パススルーネットワークポートのスイッチング装置（第３スイッチング装置）は、データパケットに保持されるＶＬＡＮ識別子に従って、ＶＬＡＮ識別子によって識別されるＶＦへデータパケットを送信する。
【００７５】
段階４０９：ＶＦは、データパケットにおけるＶＬＡＮ識別子を除去し、データパケットを第２仮想マシンへ送信する。
【００７６】
本発明のこの実施形態において、パススルーネットワークポート、代替的なネットワークポート、およびサービスネットワークポートは、同一のネットワークインタフェースカードに配置され得るか、または、異なるネットワークインタフェースカードに独立して配置され得ることに注意すべきである。本発明のこの実施形態は、これに限定を課すものではない。さらに、パススルーネットワークポートおよび代替的なネットワークポートが同一のネットワークインタフェースカードに配置されるとき、パススルーネットワークポートおよび代替的なネットワークポートの各々は独立したスイッチング装置を有し得るか、または、パススルーネットワークポートおよび代替的なネットワークポートは同一のスイッチング装置を共有し得る。
【００７７】
具体的な実装のシナリオにおいて、本発明のこの実施形態におけるＶＬＡＮサブインタフェースは、Ｏｐｅｎ  ｖＳｗｉｔｃｈであり得ることに注意すべきである。
【００７８】
本発明のこの実施形態において、パススルーネットワークポートのＶＦは、異なるＶＬＡＮ識別子を有する。パススルーネットワークポートのＶＦと一対一の対応関係にあるＶＬＡＮサブインタフェースがＶＭＭ上で設定される。各ＶＬＡＮサブインタフェースは、対応するＶＦと同一のＶＬＡＮ識別子を有する。仮想マシンがＶＦからデータパケットを送信した後、データパケットは、代替的なネットワークポートのスイッチング装置へ強制的に転送される。なぜなら、パススルーネットワークポートおよび代替的なネットワークポートは、ネットワークケーブルを使用することによって直接接続され、データパケットは、ＶＦのＶＬＡＮ識別子を保持するからである。代替的なネットワークポートのスイッチング装置は、データパケットに保持されるＶＬＡＮ識別子に従って、データパケットと同一のＶＬＡＮ識別子を有するＶＬＡＮサブインタフェースへデータパケットを送信し、これにより、データパケットはＶＭＭへ送信される。さらに、ＶＭＭ上の仮想ネットワーク機能モジュールは、ネットワーク機能処理を実行し、処理されたデータパケットを第２仮想マシンへ送信する。ネットワークインタフェースカードパススルーのシナリオにおいて、データパケットは、上述の方式で、ＶＭＭ上の仮想ネットワーク機能モジュールへ送信される。ソフトウェアモジュールを使用することによって、ネットワーク機能の柔軟性が実現され、豊富なネットワーク機能が提供される。
【００７９】
図４に対応する実施形態は、２つのホスト上の２つの仮想マシン間でデータパケットを伝送するプロセスを提供する。当業者であれば、データパケットの送信元仮想マシンおよび宛先仮想マシンは、同一のホストに配置され得ることを理解するであろう。この場合、ホスト上の仮想ネットワーク機能モジュールは、ネットワーク機能処理をデータパケットに対して実行した後、第２仮想マシンに接続されるＶＦに対応するＶＬＡＮサブインタフェースへ、処理されたデータパケットを送信する。ＶＬＡＮサブインタフェースは、データパケットを第２仮想マシンへ送信する。
【００８０】
ホストおよびクラウド管理プラットフォームは、汎用コンピュータデバイスを使用し得る。例を以下に挙げる。
【００８１】
図５に示されるように、図５は、本発明の一実施形態に係るコンピュータデバイスのハードウェアの概略構造図である。コンピュータデバイス５００は、少なくとも１つのプロセッサ５０１、通信バス５０２、メモリ５０３、および少なくとも１つの通信インタフェース５０４を備える。
【００８２】
プロセッサ５０１は、本発明の解決法においてプログラム実行を制御するように構成される、汎用中央演算処理装置（ＣＰＵ）、マイクロプロセッサ、特定用途向け集積回路（ａｐｐｌｉｃａｔｉｏｎ‐ｓｐｅｃｉｆｉｃ  ｉｎｔｅｇｒａｔｅｄ  ｃｉｒｃｕｉｔ、ＡＳＩＣ）、または、１もしくは複数の集積回路であり得る。
【００８３】
通信バス５０２は、上述の複数のコンポーネントの間で情報を伝達する経路を含み得る。通信インタフェース５０４は、トランシーバなどの装置を使用して、別のデバイス、または、イーサネット（登録商標）、無線アクセスネットワーク（ＲＡＮ）、もしくは無線ローカルエリアネットワーク（Ｗｉｒｅｌｅｓｓ  Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ、ＷＬＡＮ）などの通信ネットワークと通信する。
【００８４】
メモリ５０３は、リードオンリメモリ（ｒｅａｄ‐ｏｎｌｙ  ｍｅｍｏｒｙ、ＲＯＭ）もしくは静的な情報および命令を記憶できる別の種類の静的ストレージデバイス、または、ランダムアクセスメモリ（ｒａｎｄｏｍ  ａｃｃｅｓｓ  ｍｅｍｏｒｙ、ＲＡＭ）もしくは情報および命令を記憶できる別の種類の動的ストレージデバイス、または、電気的消去可能プログラマブルリードオンリメモリ（Ｅｌｅｃｔｒｉｃａｌｌｙ  Ｅｒａｓａｂｌｅ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｒｅａｄ‐Ｏｎｌｙ  Ｍｅｍｏｒｙ、ＥＥＰＲＯＭ）、または、コンパクトディスクリードオンリメモリ（Ｃｏｍｐａｃｔ  Ｄｉｓｃ  Ｒｅａｄ‐Ｏｎｌｙ  Ｍｅｍｏｒｙ、ＣＤ‐ＲＯＭ）もしくは別のコンパクトディスクストレージ、または、光ディスクストレージ（コンパクトディスク、レーザディスク、光ディスク、デジタルバーサタイルディスク、ブルーレイディスク、もしくは同様のものを含む）、または、磁気ディスク記憶媒体もしくは別の磁気ストレージデバイス、または、コンピュータがアクセスできる命令もしくはデータ構造の形式で、所望のプログラムコードを保持もしくは記憶するために使用できる任意の他の媒体であり得る。ただし、これらに限定を課すものではない。メモリは、単独で存在し得て、バスを使用することによってプロセッサに接続される。代替的に、メモリはプロセッサと一体化され得る。
【００８５】
メモリ５０３は、本発明における解決法を実行するためのアプリケーションプログラムコードを記憶するように構成され、プロセッサ５０１は、実行を制御する。プロセッサ５０１は、メモリ５０３に記憶されたアプリケーションプログラムコードを実行するように構成される。
【００８６】
具体的な実装において、一実施形態において、プロセッサ５０１は、例えば、図５におけるＣＰＵ０およびＣＰＵ１など、１または複数のＣＰＵを含んでよい。
【００８７】
具体的な実装において、一実施形態において、コンピュータデバイス５００は、複数のプロセッサ、例えば、図５におけるプロセッサ５０１およびプロセッサ５０８を備えてよい。プロセッサの各々は、シングルコアプロセッサであり得るか、または、マルチコアプロセッサであってよい。ここで、プロセッサは、１もしくは複数のデバイス、回路、および／または、データ（例えば、コンピュータプログラム命令）を処理するように構成されるプロセッシングコアであってよい。
【００８８】
具体的な実装において、一実施形態において、コンピュータデバイス５００はさらに、出力デバイス５０５および入力デバイス５０６を備えてよい。出力デバイス５０５は、プロセッサ５０１と通信し、複数の方式で情報を表示できる。例えば、出力デバイス５０５は、液晶ディスプレイ（ｌｉｑｕｉｄ  ｃｒｙｓｔａｌ  ｄｉｓｐｌａｙ、ＬＣＤ）、発光ダイオード（ｌｉｇｈｔ  ｅｍｉｔｔｉｎｇ  ｄｉｏｄｅ、ＬＥＤ）ディスプレイデバイス、陰極線管（ｃａｔｈｏｄｅ  ｒａｙ  ｔｕｂｅ、ＣＲＴ）ディスプレイデバイス、プロジェクタ（ｐｒｏｊｅｃｔｏｒ）、または同様のものであってよい。入力デバイス５０６は、プロセッサ５０１と通信し、複数の方式でユーザ入力を受信してよい。例えば、入力デバイス５０６は、マウス、キーボード、タッチスクリーンデバイス、センシングデバイス、または同様のものであってよい。
【００８９】
コンピュータデバイス５００は、汎用コンピュータデバイスまたは専用コンピュータデバイスであってよい。具体的な実装において、コンピュータデバイス５００は、デスクトップコンピュータ、ポータブルコンピュータ、ネットワークサーバ、パーソナルデジタルアシスタント（Ｐｅｒｓｏｎａｌ  Ｄｉｇｉｔａｌ  Ａｓｓｉｓｔａｎｔ、ＰＤＡ）、携帯電話、タブレットコンピュータ、無線端末デバイス、通信デバイス、組み込みデバイス、または、図５における構造と同様の構造を有するデバイスであってよい。本発明のこの実施形態は、コンピュータデバイス５００の種類に限定を課さない。
【００９０】
図２におけるクラウド管理プラットフォームおよびホストは、図５に示されるデバイスであってよい。メモリは、ホストおよびクラウド管理プラットフォームの機能を実現するための１または複数のソフトウェアモジュールを記憶する。ホストおよびクラウド管理プラットフォームは、プロセッサ、および、メモリにおけるプログラムコードを使用することによって、本発明の実施形態において開示されるパケット処理方法を実現し得る。
【００９１】
図５に示されるコンピュータデバイスは、クラウドコンピューティングシステム内の部分の、可能なハードウェア実装を提供するに過ぎないことに注意すべきである。システム内の部分の機能の違いまたは変形に従って、システム内の部分の機能と一致するように、コンピュータデバイスのハードウェアコンポーネントが追加または削除され得る。
【００９２】
さらに、図５に示されるハードウェア装置と同様に、上述の実施形態におけるネットワークインタフェースカードは、プロセッサおよびメモリを含む。ネットワークインタフェースカードにおけるプロセッサは、上述のスイッチング装置の機能を実現するために、メモリにおける命令を実行する。本発明のこの実施形態においては、詳細を再度説明しない。
【００９３】
またさらに、図６に示されるように、図６は、本発明の一実施形態に係るクラウドコンピューティングシステムの概略構造図である。クラウドコンピューティングシステムは、少なくとも１つのホスト６０１およびクラウド管理プラットフォーム６０２を備える。ホスト６０１の構造は図２に示される。
【００９４】
ホスト６０１は、仮想マシンモニタＶＭＭ、および、少なくとも１つのネットワークインタフェースカードを備える。第１仮想マシンは、ホスト６０１上で動作する。ＶＭＭは、複数のＶＬＡＮサブインタフェースおよび仮想ネットワーク機能モジュールを有し、少なくとも１つのネットワークインタフェースカードは、スイッチング装置および少なくとも３つのネットワークポートを有する。第１ネットワークポートおよび第２ネットワークポートは、ネットワークインタフェースカード仮想化機能をサポートする。第１ネットワークポートは、少なくとも１つのＰＦおよび複数のＶＦに対応する。ＶＬＡＮ識別子は、複数のＶＦのために構成され、ＶＦのＶＬＡＮ識別子は互いに異なる。第１仮想マシンは、第１ネットワークポートの少なくとも１つのＶＦに接続される。ＶＬＡＮサブインタフェースの数は、第１ネットワークポートのＶＦの数と同一であり、ＶＬＡＮサブインタフェースは、第１ネットワークポートのＶＦと一対一の対応関係にある。ＶＬＡＮサブインタフェースは、ＶＬＡＮサブインタフェースに対応するＶＦと同一のＶＬＡＮ識別子を有する。第１ネットワークポートおよび第２ネットワークポートは、ネットワークケーブルを使用することによって接続される。
【００９５】
クラウド管理プラットフォーム６０２は、ホスト上で第１仮想マシンを生成し、第１仮想マシンの生成に成功した後に、第１仮想マシンのＶＦに対応するＶＬＡＮサブインタフェースを生成するようにホストのＶＭＭに命令するように構成される。第１仮想マシンのＶＦに対応するＶＬＡＮサブインタフェースは、第１仮想マシンのＶＦと同一のＶＬＡＮ識別子を有する。
【００９６】
第１仮想マシンは、第１仮想マシンに接続されるＶＦを使用することによって、データパケットを第２仮想マシンへ送信するように構成される。データパケットは、データパケットを送信するＶＦのＶＬＡＮ識別子と、第２仮想マシンのアドレスとを保持する。
【００９７】
第１ネットワークポートのスイッチング装置は、データパケットを受信し、ネットワークケーブルを使用することによってデータパケットを第２ネットワークポートへ強制的に転送するように構成される。
【００９８】
第２ネットワークポートのスイッチング装置は、データパケットを第１ネットワークポートから受信し、データパケットに保持されるＶＬＡＮ識別子に従って、データパケットと同一のＶＬＡＮ識別子を有するＶＬＡＮサブインタフェースへデータパケットを送信するように構成される。
【００９９】
ＶＬＡＮサブインタフェースは、データパケットを受信し、データパケットにおけるＶＬＡＮ識別子を除去し、データパケットを仮想ネットワーク機能モジュールへ送信するように構成される。
【０１００】
仮想ネットワーク機能モジュールは、変更されたデータパケットに対してネットワーク機能処理を実行し、処理されたデータパケットを送信するように構成される。処理されたデータパケットの宛先アドレスは、第２仮想マシンのアドレスである。
【０１０１】
本発明の一実施形態はさらに、図２から図６におけるデバイスによって使用されるコンピュータソフトウェア命令を記憶するように構成されるコンピュータ記憶媒体を提供する。コンピュータソフトウェア命令は、上述の方法の実施形態を実行するように設計されたプログラムを含む。クラウドコンピューティングシステムにおけるパケット処理方法は、記憶されたプログラムを実行することによって実現され得る。
【０１０２】
本発明の実施形態において提供される、クラウドコンピューティングシステムにおけるパケット処理方法、ホスト、およびシステムは、ネットワークインタフェースカードパススルーのシナリオに適用される。本発明の実施形態において開示されるパケット処理プロセスによれば、仮想マシンは、データパケットをパススルーＶＦから送信した後に、データパケットをＶＭＭ上の仮想ネットワーク機能モジュールへ送信し得る。ソフトウェアモジュールを使用することによって、豊富なネットワーク機能がユーザに提供され、これにより、データパケットに対するネットワーク機能処理を実現する。
【０１０３】
本発明は、実施形態に関連して説明されるが、保護を請求する本発明の実施形態を実現するプロセスにおいて、当業者は、添付の図面、開示される内容、および、添付された特許請求の範囲を参照することによって、開示される実施形態の別の変形を理解および実現し得る。特許請求の範囲において、「備える」（ｃｏｍｐｒｉｓｉｎｇ）という単語は、他の構成部分または段階を排除するものではない。単一のプロセッサまたは別のユニットが、特許請求の範囲に列挙される機能を実現し得る。複数の従属請求項において、互いに異なるいくつかの手段が記録されているが、このことは、これらの手段を組み合わせてより良い効果を生み出すことができないことを意味するものではない。
【０１０４】
当業者であれば、本発明の実施形態は、方法、装置（デバイス）、またはコンピュータプログラム製品として提供され得ることを理解するはずである。従って、本発明は、ハードウェアのみの実施形態、ソフトウェアのみの実施形態、またはソフトウェアおよびハードウェアを組み合わせた実施形態の形式を使用し得る。さらに、本発明の実施形態は、コンピュータ利用可能プログラムコードを含む１または複数のコンピュータ利用可能記憶媒体（ディスクメモリ、ＣＤ‐ＲＯＭ、光学メモリ、および同様のものを含むが、これらに限定されない）において実装されるコンピュータプログラム製品の形式を使用し得る。コンピュータプログラムは、適切な媒体に記憶／分配され、別のハードウェアと共に、ハードウェアの一部として、提供もしくは使用されるか、または、インターネット、もしくは別の有線もしくは無線の遠隔通信システムを使用することなどによって、別の割り当て形式も使用し得る。
【０１０５】
本発明の実施形態におけるコンピュータプログラム命令は、特定の方式で動作するようにコンピュータまたは別のプログラマブルデータ処理デバイスに命令できるコンピュータ可読メモリに記憶され得る。コンピュータプログラム命令は、上述の実施形態におけるコンポーネントの機能を実現するために実行され得る。
【０１０６】
これらのコンピュータプログラム命令はまた、コンピュータまたは別のプログラマブルデータ処理デバイス上にロードされて、一連の動作および段階がコンピュータまたは別のプログラマブルデバイス上で実行されるようにし得て、それにより、コンピュータにより実現される処理を生成する。従って、コンピュータまたは別のプログラマブルデバイスにおいて実行される命令は、フローチャートにおける１もしくは複数の処理、および／または、ブロック図における１もしくは複数のブロックの特定の機能を実現する段階を提供する。
【０１０７】
本発明は、特定の特徴およびその実施形態に関連して説明されているが、本発明の範囲から逸脱することなく、それらに対して様々な修正および組み合わせが行われ得ることは明白である。これに対応して、明細書および添付の図面は、添付された特許請求の範囲によって規定される本発明の説明を示すものに過ぎず、本発明の範囲における、修正、変更、組み合わせ、または均等物のいずれかまたはすべてを包含すると見なされる。当業者であれば、本発明の範囲から逸脱することなく、様々な修正および変更を本発明になすことができることは明白である。本発明は、これらの修正および変更が、以下の特許請求の範囲およびその均等な技術により規定される保護範囲内に含まれるならば、これらの修正および変更を包含するよう意図されている。
【図１Ａ】
0006513835.tif 000002
【図１Ｂ】
0006513835.tif 000003
【図２】
0006513835.tif 000004
【図３】
0006513835.tif 000005
【図４】
0006513835.tif 000006
【図５】
0006513835.tif 000007
【図６】
0006513835.tif 000008