本発明の実施形態は、負荷バランシングコンピュータデバイス、システム、および方法を提供し、これにより、アクティブ負荷バランシングモードとスタンバイ負荷バランシングモードとの間のスイッチオーバによって引き起こされるサービス中断、および集中負荷バランシングによって引き起こされる輻輳といった従来技術の問題を解決する。
一態様において、本発明の実施形態は、少なくとも2つのコンピュータデバイスを備えるコンピュータシステムに適用される負荷バランシング方法を提供し、ここで、各コンピュータデバイスは、中央処理装置およびメモリを有し、当該少なくとも2つのコンピュータデバイスは、第1のコンピュータデバイスおよび第2のコンピュータデバイスを含み、第1のコンピュータデバイスは、クラウド管理プラットフォームとして用いられ、サービスを起動する仮想マシンが、第2のコンピュータデバイス上で作動し、サービスは、負荷バランシングサービスであり、当該負荷バランシング方法は、第1のコンピュータデバイスが、第2のコンピュータデバイス上で生成されるべき負荷バランサの構成情報を取得する段階であって、負荷バランサの構成情報は、負荷バランサの識別子と、負荷バランサの仮想IPアドレスVIPとを含み、負荷バランサのVIPは、負荷バランシングサービスを示す、段階と、第1のコンピュータデバイスが、構成情報に従って、負荷バランサを第2のコンピュータデバイス上で生成する段階と、第1のコンピュータデバイスが、負荷バランシングサービスの転送モードを第2のコンピュータデバイスに構成する段階であって、転送モードにおいて、サービスを起動する、第2のコンピュータデバイスの仮想マシンにより起動された負荷バランシングサービスのサービスパケットが、負荷バランサに指向的に転送される、段階と、サービスを起動する、第2のコンピュータデバイスの仮想マシンが、転送モードに従って、サービスパケットを負荷バランサへ送信する段階と、サービスパケットを受信した後に、第2のコンピュータデバイスの負荷バランサが、サービスを実行するように、少なくとも1つのバックエンドサーバを選択する段階であって、バックエンドサーバは、負荷バランシングサービスを実行するために用いられる、段階とを備える。
可能な設計において、第1のコンピュータデバイスが、負荷バランシングサービスの転送モードを第2のコンピュータデバイスに構成する段階は、第1のコンピュータデバイスが、第2のコンピュータデバイス上に配備された仮想スイッチを構成する段階であって、これにより、負荷バランサのMACアドレスを、サービスを起動する仮想マシンへ送信する、段階を含み、サービスを起動する、第2のコンピュータデバイスの仮想マシンが、転送モードに従って、サービスパケットを負荷バランサへ送信する段階は、サービスを起動する仮想マシンが、負荷バランサのMACアドレスが宛先アドレスとして用いられるサービスパケットを送信し、仮想スイッチが、サービスパケットの宛先アドレスに従って、サービスパケットを負荷バランサへ送信する段階を含む。
可能な設計において、サービスを起動する仮想マシンが、負荷バランサのMACアドレスが宛先アドレスとして用いられるサービスパケットを送信する段階の前に、方法は、サービスを起動する仮想マシンが、制御パケットを仮想スイッチへ送信する段階であって、制御パケットは、VIPを保持する、段階と、仮想スイッチが、制御パケットの応答メッセージを、サービスを起動する仮想マシンへ送信する段階であって、応答メッセージは、負荷バランサのMACアドレスを保持する、段階とをさらに備える。
可能な設計において、制御パケットは、アドレス解決プロトコルARPパケット、またはインターネット制御メッセージプロトコルICMPパケットである。
可能な設計において、第1のコンピュータデバイスが、負荷バランシングサービスの転送モードを第2のコンピュータデバイスに構成する段階は、第1のコンピュータデバイスが、負荷バランサに、負荷バランサのMACアドレスを、サービスを起動する仮想マシンへ送信するように命令する段階、または、第1のコンピュータデバイスが、負荷バランサのMACアドレスを、サービスを起動する仮想マシンに構成する段階を含み、それに対応して、サービスを起動する、第2のコンピュータデバイスの仮想マシンが、転送モードに従って、サービスパケットを負荷バランサへ送信する段階は、サービスを起動する仮想マシンが、負荷バランサのMACアドレスが宛先アドレスとして用いられるサービスパケットを送信し、第2のコンピュータデバイス上に配備された仮想スイッチが、サービスパケットの宛先アドレスに従って、サービスパケットを負荷バランサへ送信する段階を含む。
可能な設計において、第1のコンピュータデバイスが、構成情報に従って、負荷バランサを第2のコンピュータデバイス上で生成する段階は、第1のコンピュータデバイスが、負荷バランシングサービスを起動する第1の仮想マシンを第2のコンピュータデバイス上で生成した後に、負荷バランサを生成する段階を含む。
可能な設計において、方法は、第1のコンピュータデバイスが、負荷バランシングサービスを起動する、第2のコンピュータデバイス上で生成された最後の仮想マシンが削除された後に、生成された負荷バランサを削除する段階をさらに備える。
可能な設計において、方法は、選択されたバックエンドサーバが、サービスの実行結果を、サービスを起動する仮想マシンに直接返す段階、または、選択されたバックエンドサーバが、サービスの実行結果を、負荷バランサに返し、負荷バランサが、実行結果を、サービスを起動する仮想マシンに返す段階をさらに備える。
別の態様において、本発明の実施形態は、少なくとも3つのコンピュータデバイスを備えるコンピュータシステムに適用される負荷バランシング方法を提供し、ここで、各コンピュータデバイスは、中央処理装置およびメモリを有し、当該少なくとも3つのコンピュータデバイスは、第1のコンピュータデバイスを含み、第1のコンピュータデバイスは、クラウド管理プラットフォームとして用いられ、当該少なくとも3つのコンピュータデバイスにおける、第1のコンピュータデバイス以外のコンピュータデバイスは、サービスコンピュータデバイスとして用いられ、サービスを起動する仮想マシンが、各サービスコンピュータデバイス上で作動し、サービスは、負荷バランシングサービスであり、当該負荷バランシング方法は、第1のコンピュータデバイスが、各サービスコンピュータデバイス上で生成されるべき負荷バランサの構成情報を取得する段階であって、負荷バランサの構成情報は、負荷バランサの識別子と、負荷バランサの仮想IPアドレスVIPとを含み、負荷バランサのVIPは、負荷バランシングサービスを示す、段階と、第1のコンピュータデバイスが、各サービスコンピュータデバイス上で生成されるべき負荷バランサの構成情報に従って、各サービスコンピュータデバイスのローカル負荷バランサを、各サービスコンピュータデバイス上で生成する段階と、第1のコンピュータデバイスが、負荷バランシングサービスの転送モードを、各サービスコンピュータデバイスに構成する段階であって、転送モードにおいて、サービスを起動する、各サービスコンピュータデバイスの仮想マシンにより起動された負荷バランシングサービスのサービスパケットは、ローカル負荷バランサに指向的に転送され、これにより、各サービスコンピュータデバイスのローカル負荷バランサは、サービスを起動する、サービスコンピュータデバイスの仮想マシンにより起動されたサービスパケットに対して負荷バランシング処理を実行する、段階とを備える。
可能な設計において、第1のコンピュータデバイスが、負荷バランシングサービスの転送モードを各サービスコンピュータデバイスに構成する段階は、第1のコンピュータデバイスが、各サービスコンピュータデバイス上に配備された仮想スイッチを構成する段階であって、これにより、ローカル負荷バランサのMACアドレスを、サービスを起動するローカル仮想マシンへ送信する、段階を含む。
可能な設計において、第1のコンピュータデバイスが、各サービスコンピュータデバイス上に配備された仮想スイッチを構成する段階であって、これにより、ローカル負荷バランサのMACアドレスを、サービスを起動するローカル仮想マシンへ送信する、段階の後に、方法は、サービスを起動する、各サービスコンピュータデバイスの仮想マシンが、制御パケットをローカル仮想スイッチへ送信する段階であって、制御パケットは、VIPを保持する、段階と、各サービスコンピュータデバイスのローカル仮想スイッチが、制御パケットの応答メッセージを、サービスを起動するローカル仮想マシンへ送信する段階であって、応答メッセージは、ローカル負荷バランサのMACアドレスを保持する、段階とをさらに備える。
可能な設計において、第1のコンピュータデバイスが、各サービスコンピュータデバイス上で生成されるべき負荷バランサの構成情報に従って、各サービスコンピュータデバイスのローカル負荷バランサを、各サービスコンピュータデバイス上で生成する段階は、第1のコンピュータデバイスが、サービスを起動する第1の仮想マシンが第1のサービスコンピュータデバイス上で生成されたことを知り、各サービスコンピュータデバイスのローカル負荷バランサが各サービスコンピュータデバイス上で生成されるまで、第1のサービスコンピュータデバイスの負荷バランサを第1のサービスコンピュータデバイス上で生成する段階を含む。
可能な設計において、負荷バランサは、負荷バランシング仮想マシン、負荷バランシングコンテナ、または負荷バランシングネームスペースを含む。
別の態様において、本発明の実施形態は、少なくとも2つのコンピュータデバイスを含むコンピュータシステムに適用される負荷バランシング方法を提供し、ここで、各コンピュータデバイスは、中央処理装置およびメモリを含み、少なくとも2つのコンピュータデバイスは、第1のコンピュータデバイスおよび第2のコンピュータデバイスを含み、第1のコンピュータデバイスは、クラウド管理プラットフォームとして用いられ、サービスを起動する仮想マシンが、第2のコンピュータデバイス上で作動し、サービスは、負荷バランシングサービスであり、当該負荷バランシング方法は、第1のコンピュータデバイスが、第2のコンピュータデバイス上で生成されるべき負荷バランサの構成情報を取得する段階であって、負荷バランサの構成情報は、負荷バランサの識別子と、負荷バランサの仮想IPアドレスVIPとを含み、負荷バランサのVIPは、負荷バランシングサービスを示す、段階と、第1のコンピュータデバイスが、構成情報に従って、負荷バランサを第2のコンピュータデバイス上で生成する段階と、第1のコンピュータデバイスが、負荷バランシングサービスの転送モードを、第2のコンピュータデバイスに構成する段階であって、転送モードにおいて、サービスを起動する、第2のコンピュータデバイスの仮想マシンにより起動された負荷バランシングサービスのサービスパケットは、負荷バランサに指向的に転送され、これにより、サービスパケットを受信した後に、負荷バランサは、サービスを実行するバックエンドサーバを選択する、段階とを備える。
可能な設計において、第1のコンピュータデバイスが、負荷バランシングサービスの転送モードを第2のコンピュータデバイスに構成する段階は、第1のコンピュータデバイスが、第2のコンピュータデバイス上に配備された仮想スイッチを構成する段階であって、これにより、負荷バランサのMACアドレスを、サービスを起動する仮想マシンへ送信し、これにより、サービスを起動する仮想マシンは、負荷バランサのMACアドレスが宛先アドレスとして用いられるサービスパケットを送信する、段階を含む。
可能な設計において、第1のコンピュータデバイスが、第2のコンピュータデバイス上に配備された仮想スイッチを構成する段階であって、これにより、負荷バランサのMACアドレスを、サービスを起動する仮想マシンへ送信する、段階の後に、方法は、サービスを起動する仮想マシンが、制御パケットを仮想スイッチへ送信する段階であって、制御パケットは、VIPを保持する、段階と、仮想スイッチが、制御パケットの応答メッセージを、サービスを起動する仮想マシンへ送信する段階であって、応答メッセージは、負荷バランサのMACアドレスを保持する、段階とをさらに備える。
可能な設計において、第1のコンピュータデバイスが、構成情報に従って、負荷バランサを第2のコンピュータデバイス上で生成する段階は、第1のコンピュータデバイスが、負荷バランシングサービスを起動する第1の仮想マシンを第2のコンピュータデバイス上で生成した後に、負荷バランサを生成する段階を含む。
可能な設計において、方法は、第1のコンピュータデバイスが、負荷バランシングサービスを起動する、第2のコンピュータデバイス上で生成された最後の仮想マシンが削除された後に、生成された負荷バランサを削除する段階をさらに備える。
別の態様において、本発明の実施形態は、少なくとも2つのコンピュータデバイスを備える負荷バランシングコンピュータシステムを提供し、ここで、各コンピュータデバイスは、中央処理装置およびメモリを有し、当該少なくとも2つのコンピュータデバイスは、第1のコンピュータデバイスおよび第2のコンピュータデバイスを含み、第1のコンピュータデバイスは、クラウド管理プラットフォームとして用いられ、サービスを起動する仮想マシンが、第2のコンピュータデバイス上で作動し、サービスは、負荷バランシングサービスであり、ここで、第1のコンピュータデバイスは、第2のコンピュータデバイス上で生成されるべき負荷バランサの構成情報を取得し、ここで、負荷バランサの構成情報は、負荷バランサの識別子と、負荷バランサの仮想IPアドレスVIPとを含み、負荷バランサのVIPは、負荷バランシングサービスを示す。第1のコンピュータデバイスは、構成情報に従って、負荷バランサを第2のコンピュータデバイス上で生成し、第1のコンピュータデバイスは、負荷バランシングサービスの転送モードを、第2のコンピュータデバイスに構成し、ここで、転送モードにおいて、サービスを起動する、第2のコンピュータデバイスの仮想マシンにより起動された負荷バランシングサービスのサービスパケットは、負荷バランサに指向的に転送される。サービスを起動する、第2のコンピュータデバイスの仮想マシンは、転送モードに従って、サービスパケットを負荷バランサへ送信し、第2のコンピュータデバイスの負荷バランサは、サービスパケットを受信した後に、サービスを実行するように、少なくとも1つのバックエンドサーバを選択し、ここで、バックエンドサーバは、負荷バランシングサービスを実行するために用いられる。
可能な設計において、第1のコンピュータデバイスが、負荷バランシングサービスの転送モードを第2のコンピュータデバイスに構成することは、第1のコンピュータデバイスが、第2のコンピュータデバイス上に配備された仮想スイッチを構成し、これにより、負荷バランサのMACアドレスを、サービスを起動する仮想マシンへ送信することを含み、サービスを起動する、第2のコンピュータデバイスの仮想マシンが、転送モードに従って、サービスパケットを負荷バランサへ送信することは、サービスを起動する仮想マシンが、負荷バランサのMACアドレスが宛先アドレスとして用いられるサービスパケットを送信し、仮想スイッチが、サービスパケットの宛先アドレスに従って、サービスパケットを負荷バランサへ送信することを含む。
可能な設計において、サービスを起動する仮想マシンが、負荷バランサのMACアドレスが宛先アドレスとして用いられるサービスパケットを送信する前に、サービスを起動する仮想マシンは、制御パケットを仮想スイッチへ送信し、ここで、制御パケットは、VIPを保持する。仮想スイッチは、制御パケットの応答メッセージを、サービスを起動する仮想マシンへ送信し、ここで、応答メッセージは、負荷バランサのMACアドレスを保持する。
可能な設計において、制御パケットは、アドレス解決プロトコルARPパケット、またはインターネット制御メッセージプロトコルICMPパケットである。
可能な設計において、第1のコンピュータデバイスが、負荷バランシングサービスの転送モードを第2のコンピュータデバイスに構成することは、第1のコンピュータデバイスが、負荷バランサに、負荷バランサのMACアドレスを、サービスを起動する仮想マシンへ送信するように命令すること、または、第1のコンピュータデバイスが、負荷バランサのMACアドレスを、サービスを起動する仮想マシンに構成することを含み、それに対応して、サービスを起動する、第2のコンピュータデバイスの仮想マシンが、転送モードに従って、サービスパケットを負荷バランサへ送信することは、サービスを起動する仮想マシンが、負荷バランサのMACアドレスが宛先アドレスとして用いられるサービスパケットを送信し、第2のコンピュータデバイス上に配備された仮想スイッチが、サービスパケットの宛先アドレスに従って、サービスパケットを負荷バランサへ送信することを含む。
可能な設計において、第1のコンピュータデバイスが、構成情報に従って、負荷バランサを第2のコンピュータデバイス上で生成することは、第1のコンピュータデバイスが、負荷バランシングサービスを起動する第1の仮想マシンを、第2のコンピュータデバイス上で生成した後に、負荷バランサを生成することを含む。
可能な設計において、第1のコンピュータデバイスは、負荷バランシングサービスを起動する、第2のコンピュータデバイス上で生成された最後の仮想マシンが削除された後に、生成された負荷バランサを削除する。
可能な設計において、選択されたバックエンドサーバは、サービスの実行結果を、サービスを起動する仮想マシンに直接返す、または、選択されたバックエンドサーバは、サービスの実行結果を、負荷バランサに返し、負荷バランサは、実行結果を、サービスを起動する仮想マシンに返す。
別の態様において、本発明の実施形態は、負荷バランシングコンピュータシステムを提供し、ここで、コンピュータシステムは、少なくとも3つのコンピュータデバイスを備え、各コンピュータデバイスは、中央処理装置およびメモリを有し、当該少なくとも3つのコンピュータデバイスは、第1のコンピュータデバイスを含み、第1のコンピュータデバイスは、クラウド管理プラットフォームとして用いられ、当該少なくとも3つのコンピュータデバイスにおける、第1のコンピュータデバイス以外のコンピュータデバイスは、サービスコンピュータデバイスとして用いられ、サービスを起動する仮想マシンが、各サービスコンピュータデバイス上で作動し、サービスは、負荷バランシングサービスであり、ここで、第1のコンピュータデバイスは、各サービスコンピュータデバイス上で生成されるべき負荷バランサの構成情報を取得し、ここで、負荷バランサの構成情報は、負荷バランサの識別子と、負荷バランサの仮想IPアドレスVIPとを含み、負荷バランサのVIPは、負荷バランシングサービスを示し、第1のコンピュータデバイスは、各サービスコンピュータデバイス上で生成されるべき負荷バランサの構成情報に従って、各サービスコンピュータデバイスのローカル負荷バランサを、各サービスコンピュータデバイス上で生成し、第1のコンピュータデバイスは、負荷バランシングサービスの転送モードを、各サービスコンピュータデバイスに構成し、ここで、転送モードにおいて、サービスを起動する、各サービスコンピュータデバイスの仮想マシンにより起動された負荷バランシングサービスのサービスパケットが、ローカル負荷バランサに指向的に転送され、これにより、各サービスコンピュータデバイスのローカル負荷バランサは、サービスを起動する、サービスコンピュータデバイスの仮想マシンにより起動されたサービスパケットに対して負荷バランシング処理を実行する。
可能な設計において、第1のコンピュータデバイスが、負荷バランシングサービスの転送モードを、各サービスコンピュータデバイスに構成することは、第1のコンピュータデバイスが、各サービスコンピュータデバイス上に配備された仮想スイッチを構成し、これにより、ローカル負荷バランサのMACアドレスを、サービスを起動するローカル仮想マシンへ送信することを含む。
可能な設計において、第1のコンピュータデバイスが、各サービスコンピュータデバイス上に配備された仮想スイッチを構成し、ローカル負荷バランサのMACアドレスを、サービスを起動するローカル仮想マシンへ送信した後に、サービスを起動する、各サービスコンピュータデバイスの仮想マシンは、制御パケットをローカル仮想スイッチへ送信し、ここで、制御パケットは、VIPを保持し、各サービスコンピュータデバイスのローカル仮想スイッチは、制御パケットの応答メッセージを、サービスを起動するローカル仮想マシンへ送信し、ここで、応答メッセージは、ローカル負荷バランサのMACアドレスを保持する。
可能な設計において、第1のコンピュータデバイスが、構成情報に従って、負荷バランサを各サービスコンピュータデバイス上で生成する前に、第1のコンピュータデバイスは、サービスを起動する第1の仮想マシンが、第1のサービスコンピュータデバイス上で生成されたことを知り、各サービスコンピュータデバイスのローカル負荷バランサが各サービスコンピュータデバイス上で生成されるまで、第1のサービスコンピュータデバイスの負荷バランサを、第1のサービスコンピュータデバイス上で生成する。
可能な設計において、負荷バランサは、負荷バランシング仮想マシン、負荷バランシングコンテナ、または負荷バランシングネームスペースを含む。
別の態様において、本発明の実施形態は、負荷バランシングコンピュータシステムを提供し、ここで、コンピュータシステムは、少なくとも2つのコンピュータデバイスを備え、各コンピュータデバイスは、中央処理装置およびメモリを有し、当該少なくとも2つのコンピュータデバイスは、第1のコンピュータデバイスおよび第2のコンピュータデバイスを含み、第1のコンピュータデバイスは、クラウド管理プラットフォームとして用いられ、サービスを起動する仮想マシンが、第2のコンピュータデバイス上で作動し、サービスは、負荷バランシングサービスであり、ここで、第1のコンピュータデバイスは、第2のコンピュータデバイス上で生成されるべき負荷バランサの構成情報を取得し、ここで、負荷バランサの構成情報は、負荷バランサの識別子と、負荷バランサの仮想IPアドレスVIPとを含み、負荷バランサのVIPは、負荷バランシングサービスを示し、第1のコンピュータデバイスは、構成情報に従って、負荷バランサを第2のコンピュータデバイス上で生成し、第1のコンピュータデバイスは、負荷バランシングサービスの転送モードを第2のコンピュータデバイスに構成し、ここで、転送モードにおいて、サービスを起動する、第2のコンピュータデバイスの仮想マシンにより起動された負荷バランシングサービスのサービスパケットが、負荷バランサに指向的に転送され、これにより、サービスパケットを受信した後に、負荷バランサは、サービスを実行するバックエンドサーバを選択する。
可能な設計において、第1のコンピュータデバイスが、負荷バランシングサービスの転送モードを第2のコンピュータデバイスに構成することは、第1のコンピュータデバイスが、第2のコンピュータデバイス上に配備された仮想スイッチを構成し、これにより、負荷バランサのMACアドレスを、サービスを起動する仮想マシンへ送信し、これにより、サービスを起動する仮想マシンが、負荷バランサのMACアドレスが宛先アドレスとして用いられるサービスパケットを送信することを含む。
可能な設計において、第1のコンピュータデバイスが、第2のコンピュータデバイス上に配備された仮想スイッチを構成し、負荷バランサのMACアドレスを、サービスを起動する仮想マシンへ送信した後に、サービスを起動する仮想マシンは、制御パケットを仮想スイッチへ送信し、ここで、制御パケットは、VIPを保持する。仮想スイッチは、制御パケットの応答メッセージを、サービスを起動する仮想マシンに送信し、ここで、応答メッセージは、負荷バランサのMACアドレスを保持する。
可能な設計において、第1のコンピュータデバイスが、構成情報に従って、負荷バランサを第2のコンピュータデバイス上で生成することは、第1のコンピュータデバイスが、負荷バランシングサービスを起動する第1の仮想マシンを、第2のコンピュータデバイス上で生成した後に、負荷バランサを生成することを含む。
可能な設計において、第1のコンピュータデバイスは、負荷バランシングサービスを起動する、第2のコンピュータデバイス上で生成された最後の仮想マシンが削除された後に、生成された負荷バランサを削除する。
先述の目的を達成するために、本発明の実施形態の第1の態様は、中央処理装置CPUと、メモリと、ストレージ装置とを備えるコンピュータデバイスを提供し、ここで、コンピュータデバイスは、第1の仮想マシンと、負荷バランシング仮想マシンと、仮想スイッチとをさらに備え、第1の仮想マシンおよび負荷バランシング仮想マシンは、コンピュータデバイス上で生成される仮想マシンであり、ここで、第1の仮想マシンは、サービスパケットを送信するよう構成される。仮想スイッチは、第1の仮想マシンにより送信されたサービスパケットを受信し、かつ、サービスパケットに対して負荷バランシング処理を実行する必要があるとき、負荷バランシング仮想マシンのみにサービスパケットを転送するよう構成され、負荷バランシング仮想マシンは、仮想スイッチにより転送されたサービスパケットを受信し、かつ、負荷バランシング方式でサービスパケットを転送するよう構成される。
負荷バランシング仮想マシンが、負荷バランシング方式でサービスパケットを転送することは、以下の通りであってよい。サービスパケットを受信した後に、負荷バランシング仮想マシンはまず、バックエンドサーバが、サービスパケットにサービスするようにサービスパケットに割り当てられているかを判断し、バックエンドサーバが割り当てられている場合、サービスパケットを、割り当てられているバックエンドサーバへ送信する。バックエンドサーバがまだ割り当てられていない場合、負荷バランシングアルゴリズムを用いることによって、サービスパケットにサービスするようにバックエンドサーバを選択する。負荷バランシングアルゴリズムは、ラウンドロビン、重み付きラウンドロビン、ランダムアルゴリズム、リーストコネクション、ソースアドレスハッシュ、または位置に基づく重み付きラウンドロビンを含むが、これらに限定されるものではない。位置に基づく重み付きラウンドロビン方式において、サービスパケットを起動する仮想マシンが位置するコンピュータデバイスのバックエンドサーバは、優先的に選択されてよい。このように、バックエンドサーバによるサービスパケットの処理速度を増加でき、ネットワーク帯域幅を節約できる。
第1の態様に関連して、本発明の実施形態の第1の態様の第1の可能な実装方式において、仮想スイッチが、サービスパケットを負荷バランシング仮想マシンのみに転送することは、仮想スイッチが、負荷バランシング仮想マシンのMACアドレスを第1の仮想マシンへ送信し、これにより、第1の仮想マシンが、負荷バランシング仮想マシンの取得されたMACアドレスに基づいて、サービスパケットを送信し、仮想スイッチが、サービスパケットを負荷バランシング仮想マシンに転送すること、または、負荷バランシング仮想マシンが、負荷バランシング仮想マシンのMACアドレスを、第1の仮想マシンへ送信し、これにより、第1の仮想マシンが、負荷バランシング仮想マシンの取得されたMACアドレスに基づいて、サービスパケットを送信し、仮想スイッチが、サービスパケットを、負荷バランシング仮想マシンに転送すること、または、第1の仮想マシンが、負荷バランシング仮想マシンの予め構成されたMACアドレスに基づいて、サービスパケットを送信し、仮想スイッチが、サービスパケットを、負荷バランシング仮想マシンに転送することを含む。
第1の態様の第1の可能な実装方式に関連して、本発明の実施形態の第1の態様の第2の可能な実装方式において、仮想スイッチが、負荷バランシング仮想マシンのMACアドレスを、第1の仮想マシンへ送信することは、仮想スイッチが、第1の仮想マシンにより送信された制御パケットを受信し、制御応答パケットを第1の仮想マシンに返すことを含み、ここで、制御応答パケットは、負荷バランシング仮想マシンのMACアドレスを含む。すなわち、仮想スイッチは、構成された転送モードに従って、第1の仮想マシンのサービスパケットに対して指向性処理を実行してよく、これにより、仮想スイッチは、サービスパケットを負荷バランシング仮想マシンに転送する。
第1の態様の第2の可能な実装方式に関連して、本発明の実施形態の第1の態様の第3の可能な実装方式において、制御パケットは、アドレス解決プロトコルARPパケット、またはインターネット制御メッセージプロトコルICMPパケットである。例えば、制御パケットは、アドレス解決プロトコルARPパケットであってよく、転送モードは、ARPキャッシュモードであってよく、第1の仮想マシンは、ARPキャッシュモードにおいて、第1の負荷バランシング仮想マシンのMACアドレスを第1の仮想マシンへ送信してよい。任意で、制御パケットがICMPパケットである場合、転送モードは、近隣探索プロトコルNDPキャッシュモードであってよい。
第1の態様、または第1の態様の第1、第2、もしくは第3の可能な実装方式に関連して、本発明の実施形態の第1の態様の第4の可能な実装方式において、コンピュータデバイスは、仮想負荷バランシング代行ユニットをさらに備え、ここで、仮想負荷バランシング代行ユニットは、負荷バランシング仮想マシンを生成するための構成情報を受信し、当該負荷バランシング仮想マシンの生成または削除を制御し、かつ、負荷バランシング仮想マシンと仮想スイッチとの間の接続の確立を制御するよう構成される。
仮想マシン管理ユニットに、負荷バランシング仮想マシンを生成するための構成情報に従って第1の負荷バランシング仮想マシンを生成するように命令するとき、仮想負荷バランシング代行ユニットは、通知情報を仮想マシン管理ユニットへ送信する。通知情報は、第1の負荷バランシング仮想マシンを生成するための仮想マシンパラメータ情報を含む。第1の負荷バランシング仮想マシンの仮想マシンパラメータ情報は、仮想中央処理装置の数量、仮想メモリのサイズ、負荷バランシング仮想マシンが位置する論理ネットワークなどの情報を含むが、これらに限定されるものではない。
負荷バランシング仮想マシンを生成するための構成情報は、ユーザにより、クラウド管理プラットフォーム(第2のコンピュータデバイス)を用いることによって送られる。構成情報は、負荷バランシング仮想マシンの識別子、負荷バランシング仮想マシンのIPアドレス、および負荷バランシング仮想マシンに関連するバックエンドサーバについての情報を含むが、これらに限定されるものではない。バックエンドサーバについての情報は、バックエンドサーバの識別子、バックエンドサーバのインターネットプロトコル(IP、Internet protocol)アドレス、またはバックエンドサーバのヘルスチェック方法を含むが、これらに限定されるものではない。バックエンドサーバのヘルスチェック方法は、負荷バランシング仮想マシンがバックエンドサーバの健康状態をチェックする方法を指す。バックエンドサーバは、具体的なサービスを提供するサーバである。負荷バランシング仮想マシンは、負荷バランシング方式で、例えば、負荷バランシングアルゴリズムを用いることによって、受信されたサービスパケットに従って、バックエンドサーバから1つのサーバを、サービスパケットを処理するサーバとして選択する。本発明の実施形態において、バックエンドサーバは、仮想マシンであってよく、または具体的な物理サーバであってよい。
任意で、第1の仮想マシンが、負荷バランシング仮想マシンを生成するユーザにより生成される仮想マシンであり、かつ、第1の仮想マシンが、ユーザにより第1のコンピュータデバイス上で生成される第1の仮想マシンである場合、仮想負荷バランシング代行ユニットは、負荷バランシング仮想マシンの生成を開始する。同様に、仮想負荷バランシングサービスを構成しているユーザにより構成された最後の仮想マシンが削除されたとき、第1の仮想負荷バランシング代行ユニットは、負荷バランシング仮想マシンの削除を開始する。
第1の態様、または、第1の態様の第1、第2、第3、もしくは第4の可能な実装方式に関連して、本発明の実施形態の第1の態様の第5の可能な実装方式において、コンピュータデバイスは、第2の仮想マシンをさらに含み、第2の仮想マシンは、第1の仮想マシンのサービスパケットを処理する能力を有し、ここで、負荷バランシング仮想マシンは、負荷バランシングアルゴリズムを用いることによって、第2の仮想マシンが第1の仮想マシンのサービスパケットを処理すると判断したとき、第2の仮想マシンは、負荷バランシング仮想マシンにより転送されたサービスパケットを受信し、サービスパケットの処理結果を負荷バランシング仮想マシンへ送信する。負荷バランシング仮想マシンは、仮想スイッチを用いることによって、第2の仮想マシンによるサービスパケットの処理結果を、第1の仮想マシンへ送信するようさらに構成される。
本発明の実施形態の第2の態様は、第1のコンピュータデバイスと第2のコンピュータデバイスとを備えるコンピュータシステムを提供し、ここで、第1のコンピュータデバイスおよび第2のコンピュータデバイスはそれぞれ、中央処理装置CPUと、メモリと、ストレージ装置とを含み、第1のコンピュータデバイスは、第1の仮想マシンと、第1の負荷バランシング仮想マシンと、第1の仮想スイッチとをさらに含み、第1の仮想マシンおよび第1の負荷バランシング仮想マシンは、第1のコンピュータデバイス上で生成される仮想マシンであり、ここで、第1の仮想マシンは、サービスパケットを送信するよう構成され、第1の仮想スイッチは、第1の仮想マシンにより送信されたサービスパケットを受信し、かつ、サービスパケットに対して負荷バランシング処理を実行する必要があるとき、サービスパケットを、第1の負荷バランシング仮想マシンのみに転送するよう構成される。第1の負荷バランシング仮想マシンは、第1の仮想スイッチにより転送されたサービスパケットを受信し、かつ、負荷バランシング方式でサービスパケットを転送するよう構成される。
第1の負荷バランシング仮想マシンが負荷バランシング方式でサービスパケットを転送することは、以下の通りであってよい。サービスパケットを受信した後に、第1の負荷バランシング仮想マシンはまず、バックエンドサーバが、サービスパケットにサービスするようにサービスパケットに割り当てられているかを判断し、バックエンドサーバが割り当てられている場合、サービスパケットを、割り当てられているバックエンドサーバへ送信する。バックエンドサーバがまだ割り当てられていない場合、負荷バランシングアルゴリズムを用いることによって、サービスパケットにサービスするようにバックエンドサーバを選択する。負荷バランシングアルゴリズムは、ラウンドロビン、重み付きラウンドロビン、ランダムアルゴリズム、リーストコネクション、ソースアドレスハッシュ、または位置に基づく重み付きラウンドロビンを含むが、これらに限定されるものではない。位置に基づく重み付きラウンドロビン方式において、サービスパケットを起動する仮想マシンが位置するコンピュータデバイスのバックエンドサーバは、優先的に選択されてよい。このように、バックエンドサーバによるサービスパケットの処理速度を増加でき、ネットワーク帯域幅を節約できる。
第2のコンピュータデバイスは、コンピュータシステムにおけるクラウドプラットフォーム管理デバイスであってよく、第1のコンピュータデバイスに対する管理および構成を実装する。管理および構成は、第1のコンピュータデバイスの仮想マシンに対する構成および管理を実行することを含む。
第2の態様に関連して、本発明の実施形態の第2の態様の第1の可能な実装方式において、第1の仮想スイッチがサービスパケットを第1の負荷バランシング仮想マシンのみに転送することは、第1の仮想スイッチが、第1の負荷バランシング仮想マシンのMACアドレスを、第1の仮想マシンへ送信し、これにより、第1の仮想マシンが、第1の負荷バランシング仮想マシンの取得されたMACアドレスに基づいて、サービスパケットを送信し、第1の仮想スイッチが、サービスパケットを第1の負荷バランシング仮想マシンに転送すること、または、第1の負荷バランシング仮想マシンが、第1の負荷バランシング仮想マシンのMACアドレスを、第1の仮想マシンへ送信し、これにより、第1の仮想マシンが、第1の負荷バランシング仮想マシンのMACアドレスに基づいて、サービスパケットを送信し、第1の仮想スイッチが、サービスパケットを第1の負荷バランシング仮想マシンに転送すること、または、第1の仮想マシンが、第1の負荷バランシング仮想マシンの予め構成されたMACアドレスに基づいて、サービスパケットを送信し、第1の仮想スイッチが、サービスパケットを第1の負荷バランシング仮想マシンに転送することを含む。
第2の態様の第1の可能な実装方式に関連して、本発明の実施形態の第2の態様の第2の可能な実装方式において、第1の仮想スイッチが、第1の負荷バランシング仮想マシンのMACアドレスを第1の仮想マシンへ送信することは、第1の仮想スイッチが、第1の仮想マシンにより送信された制御パケットを受信し、制御応答パケットを第1の仮想マシンに返すことを含み、ここで、制御応答パケットは、第1の負荷バランシング仮想マシンのMACアドレスを含む。すなわち、仮想マシン管理ユニットは、第1の仮想スイッチの転送モードを構成してよい。第1の仮想スイッチは、構成された転送モードに従って、第1の仮想マシンのサービスパケットに対して指向性処理を実行し、これにより、第1の仮想スイッチは、サービスパケットを第1の負荷バランシング仮想マシンに転送する。
第2の態様の第2の可能な実装方式に関連して、本発明の実施形態の第2の態様の第3の可能な実装方式において、制御パケットは、アドレス解決プロトコルARPパケット、またはインターネット制御メッセージプロトコルICMPパケットである。例えば、制御パケットは、アドレス解決プロトコルARPパケットであってよく、転送モードは、ARPキャッシュモードであってよく、第1の仮想マシンは、ARPキャッシュモードにおいて、第1の負荷バランシング仮想マシンのMACアドレスを第1の仮想マシンへ送信してよい。任意で、制御パケットがICMPパケットである場合、転送モードは、近隣探索プロトコルNDPキャッシュモードであってよい。
第2の態様、または、第2の態様の第1、第2、もしくは第3の可能な実装方式に関連して、本発明の実施形態の第2の態様の第4の可能な実装方式において、第1のコンピュータデバイスは、第1の仮想負荷バランシング代行ユニットをさらに含み、第2のコンピュータデバイスは、仮想負荷バランシング管理ユニットおよび仮想マシン管理ユニットをさらに含み、ここで、仮想負荷バランシング管理ユニットは、第1の負荷バランシング仮想マシンを生成するための構成情報を受信し、第1の負荷バランシング仮想マシンを生成するための構成情報を、第1の仮想負荷バランシング代行ユニットへ送信するよう構成され、第1の仮想負荷バランシング代行ユニットは、第1の負荷バランシング仮想マシンを生成するための構成情報を受信し、仮想マシン管理ユニットに、第1の負荷バランシング仮想マシンを生成するための構成情報に従って第1の負荷バランシング仮想マシンを生成するように命令するよう構成される。
仮想マシン管理ユニットに、負荷バランシング仮想マシンを生成するための構成情報に従って第1の負荷バランシング仮想マシンを生成するように命令するとき、第1の仮想負荷バランシング代行ユニットは、通知情報を仮想マシン管理ユニットへ送信する。通知情報は、第1の負荷バランシング仮想マシンを生成するための仮想マシンパラメータ情報を含む。第1の負荷バランシング仮想マシンの仮想マシンパラメータ情報は、仮想中央処理装置の数量、仮想メモリのサイズ、負荷バランシング仮想マシンが位置する論理ネットワークなどの情報を含むが、これらに限定されるものではない。
任意で、仮想負荷バランシング管理ユニットは、第1の負荷バランシング仮想マシンを生成するための構成情報に従って、第1の負荷バランシング仮想マシンを生成するように、仮想マシン管理ユニットに直接命令してよい。
第1の負荷バランシング仮想マシンを生成するための構成情報は、ユーザにより、クラウド管理プラットフォーム(第2のコンピュータデバイス)を用いることによって送られる。構成情報は、負荷バランシング仮想マシンの識別子、負荷バランシング仮想マシンのIPアドレス、および負荷バランシング仮想マシンに関連するバックエンドサーバについての情報を含むが、これらに限定されるものではない。バックエンドサーバについての情報は、バックエンドサーバの識別子、バックエンドサーバのインターネットプロトコル(IP、Internet protocol)アドレス、またはバックエンドサーバのヘルスチェック方法を含むが、これらに限定されるものではない。バックエンドサーバのヘルスチェック方法は、負荷バランシング仮想マシンがバックエンドサーバの健康状態をチェックする方法を指す。バックエンドサーバは、具体的なサービスを提供するサーバである。負荷バランシング仮想マシンは、負荷バランシング方式で、例えば、負荷バランシングアルゴリズムを用いることによって、受信されたサービスパケットに従って、バックエンドサーバから1つのサーバを、サービスパケットを処理するサーバとして選択する。本発明の実施形態において、バックエンドサーバは、仮想マシンであってよく、または具体的な物理サーバであってよい。
第2の態様の第4の可能な実装方式に関連して、本発明の実施形態の第2の態様の第5の可能な実装方式において、第1の仮想負荷バランシング代行ユニットは、仮想マシン管理ユニットに、第1の負荷バランシング仮想マシンのための第1の仮想ネットワークインターフェースカードを構成して第1の仮想ネットワークインターフェースカードと第1の仮想スイッチとの間の接続を確立するように命令するようさらに構成される。仮想マシン管理ユニットは、仮想スイッチのネットワーク識別子を構成することによって、第1の仮想ネットワークインターフェースカードと第1の仮想スイッチとの間の接続を確立してよく、ネットワーク識別子は、仮想スイッチのネットワークインターフェースの識別子である。加えて、第1の仮想負荷バランシング代行ユニットの命令に従って、第1の仮想ネットワークインターフェースカードを確立するとき、仮想マシン管理ユニットはさらに、負荷バランシング仮想マシンを生成するための構成情報に従って、IPアドレスおよびMACアドレスを、生成された第1の仮想ネットワークインターフェースカードに割り当ててよい。
第2の態様の第4または第5の可能な実装方式に関連して、本発明の実施形態の第2の態様の第6の可能な実装方式において、第1の仮想マシンは、第1の負荷バランシング仮想マシンを生成するユーザにより生成される仮想マシンであり、仮想負荷バランシング管理ユニットはさらに、第1の仮想マシンを生成するための構成情報を受信し、第1の仮想マシンが、ユーザにより第1のコンピュータデバイス上で生成された第1の仮想マシンであると判断されたとき、第1の仮想マシンを生成するための情報を、第1の仮想負荷バランシング代行ユニットに通知するよう構成され、第1の仮想負荷バランシング代行ユニットは、仮想負荷バランシング管理ユニットにより送信された、第1の仮想マシンを生成するための通知を受信したとき、仮想マシン管理ユニットに、第1の負荷バランシング仮想マシンを生成するように命令するよう構成される。仮想負荷バランシング管理ユニットは、第1の負荷バランシング仮想マシンを生成するように、仮想マシン管理ユニットに直接命令してよい。
同様に、仮想負荷バランシングサービスを構成しているユーザにより構成された最後の仮想マシンが削除されたとき、仮想負荷バランシング管理ユニットは、第1の仮想負荷バランシング代行ユニットに、仮想マシン管理ユニットに第1の負荷バランシング仮想マシンを削除するように命令するように命令する、または、仮想マシン管理ユニットに、第1の負荷バランシング仮想マシンを削除するように直接命令する。
第2の態様または第2の態様の第1から第6の可能な実装方式のいずれかの1つに関連して、本発明の実施形態の第2の態様の第7の可能な実装方式において、第1のコンピュータデバイスは、第2の仮想マシンをさらに含み、第2の仮想マシンは、第1の仮想マシンのサービスパケットを処理する能力を有し、ここで、第1の負荷バランシング仮想マシンが、第2の仮想マシンが第1の仮想マシンのサービスパケットを処理すると負荷バランシング方式で判断したとき、第2の仮想マシンは、第1の負荷バランシング仮想マシンにより転送されたサービスパケットを受信し、サービスパケットの処理結果を、第1の負荷バランシング仮想マシンへ送信する。第1の負荷バランシング仮想マシンは、第2の仮想マシンによるサービスパケットの処理結果を、第1の仮想スイッチを用いることによって第1の仮想マシンへ送信するようさらに構成される。
第2の態様または第2の態様の第1から第7の可能な実装方式のいずれかの1つに関連して、本発明の実施形態の第2の態様の第8の可能な実装方式において、コンピュータシステムは、第3のコンピュータデバイスをさらに含み、第3のコンピュータデバイスは、第2の仮想負荷バランシング代行ユニットと、第2の仮想スイッチと、第3の仮想マシンとを含み、ここで、第2の仮想負荷バランシング代行ユニットは、仮想負荷バランシング管理ユニットにより送信された、第2の負荷バランシング仮想マシンを生成するための構成情報を受信し、仮想マシン管理ユニットに、第2の負荷バランシング仮想マシンを生成するための構成情報に基づいて、第2の負荷バランシング仮想マシンを生成するように命令し、仮想マシン管理ユニットに、第2の負荷バランシング仮想マシンのための第2の仮想ネットワークインターフェースカードを構成して第2の仮想ネットワークインターフェースカードと第2の仮想スイッチとの間の接続を確立するように命令するよう構成される。第2の仮想スイッチは、第3の仮想マシンにより起動された第2のサービスパケットを受信し、第2のサービスパケットに対して負荷バランシング処理を実行する必要があるとき、第2のサービスパケットを、第2の負荷バランシング仮想マシンのみに転送するよう構成され、第2の負荷バランシング仮想マシンは、第2の仮想スイッチにより転送される第2のサービスパケットを受信し、負荷バランシング方式で第2のサービスパケットを転送するよう構成される。
第2の態様の第8の可能な実装方式に関連して、本発明の実施形態の第2の態様の第9の可能な実装方式において、仮想マシン管理ユニットは、第1の負荷バランシング仮想マシンのための第1のIPアドレスおよび第1のMACアドレスを構成し、第2の負荷バランシング仮想マシンのための第2のIPアドレスおよび第2のMACアドレスを構成する。第1のIPアドレスは、第2のIPアドレスと同じであり、または、第1のMACアドレスは、第2のMACアドレスと同じである。
任意で、中央処理装置CPUと、メモリと、ストレージ装置とに加えて、第1のコンピュータデバイスは、ネットワークハードウェアなどのハードウェアデバイスを含んでよい。ネットワークハードウェアは、(ネットワークインターフェースカードなどの)スイッチングデバイス、ルータ、および/または別のネットワークデバイスであってよく、複数のデバイス間の通信を実装するよう構成される。複数のデバイスは、無線または有線方式で接続されてよい。
第2の態様または第2の態様の第1から第9の可能な実装方式のいずれかの1つに関連して、本発明の実施形態の第2の態様の第10の可能な実装方式において、第2のコンピュータデバイスは、負荷バランシング仮想マシンを生成するための構成情報を記憶するよう構成された仮想負荷バランシングストレージ装置をさらに含む。仮想負荷バランシングストレージ装置は、第2のコンピュータデバイスのストレージ装置であってよく、または第2のコンピュータデバイスから独立したストレージ装置であってよい。
本発明の実施形態の第3の態様は、第1のコンピュータデバイスと、第2のコンピュータデバイスと、第3のコンピュータデバイスとを備えるコンピュータシステムを提供し、ここで、第1のコンピュータデバイス、第2のコンピュータデバイス、および第3のコンピュータデバイスはそれぞれ、中央処理装置CPUと、メモリと、ストレージ装置とを含み、第2のコンピュータデバイスは、第1のコンピュータデバイスの仮想マシンおよび第3のコンピュータデバイスの仮想マシンに対する構成および管理を実行し、第1のコンピュータデバイスは、第1の仮想スイッチを含み、第3のコンピュータデバイスは、第2の仮想スイッチを含み、第2のコンピュータデバイスは、負荷バランシング仮想マシンを第1のコンピュータデバイス上で生成するための構成情報を受信し、第1の負荷バランシング仮想マシンを第1のコンピュータデバイス上で生成し、第1の負荷バランシング仮想マシンと第1の仮想スイッチとの間の接続を確立し、かつ、負荷バランシング仮想マシンを第3のコンピュータデバイス上で生成するための構成情報を受信し、第2の負荷バランシング仮想マシンを第3のコンピュータデバイス上で生成し、第2の負荷バランシング仮想マシンと、第2の仮想スイッチとの間の接続を確立するよう構成され、第1の仮想スイッチは、第1のコンピュータデバイスの第1の仮想マシンにより送信された第1のサービスパケットを受信し、第1のサービスパケットに対して負荷バランシング処理を実行する必要があるとき、第1の負荷バランシング仮想マシンのみに第1のサービスパケットを転送するよう構成され、第2の仮想スイッチは、第3のコンピュータデバイスの第2の仮想マシンにより送信された第2のサービスパケットを受信し、かつ、第2のサービスパケットに対して負荷バランシング処理を実行する必要があるとき、第2の負荷バランシング仮想マシンのみに第2のサービスパケットを転送するよう構成される。
第3の態様に関連して、本発明の実施形態の第3の態様の第1の可能な実装方式において、第1の仮想スイッチが、第1のサービスパケットを第1の負荷バランシング仮想マシンのみに転送することは、第1の仮想スイッチが、第1の負荷バランシング仮想マシンのMACアドレスを、第1の仮想マシンへ送信し、これにより、第1の仮想マシンが、第1の負荷バランシング仮想マシンの取得されたMACアドレスに基づいて、サービスパケットを送信し、第1の仮想スイッチが、サービスパケットを第1の負荷バランシング仮想マシンに転送すること、または、第1の負荷バランシング仮想マシンが、第1の負荷バランシング仮想マシンのMACアドレスを、第1の仮想マシンへ送信し、これにより、第1の仮想マシンが、第1の負荷バランシング仮想マシンのMACアドレスに基づいて、サービスパケットを送信し、第1の仮想スイッチが、サービスパケットを第1の負荷バランシング仮想マシンに転送すること、または、第1の仮想マシンが、第1の負荷バランシング仮想マシンの予め構成されたMACアドレスに基づいて、サービスパケットを送信し、第1の仮想スイッチが、サービスパケットを第1の負荷バランシング仮想マシンに転送することを含む。
第3の態様の第1の可能な実装方式に関連して、本発明の実施形態の第3の態様の第2の可能な実装方式において、第1の仮想スイッチが、第1の負荷バランシング仮想マシンのMACアドレスを第1の仮想マシンへ送信することは、第1の仮想スイッチが、第1の仮想マシンにより送信された制御パケットを受信し、制御応答パケットを第1の仮想マシンに返すことを含み、ここで、制御応答パケットは、第1の負荷バランシング仮想マシンのMACアドレスを含む。すなわち、仮想マシン管理ユニットは、第1の仮想スイッチの転送モードを構成してよい。第1の仮想スイッチは、構成された転送モードに従って、第1の仮想マシンのサービスパケットに対して指向性処理を実行し、これにより、第1の仮想スイッチは、サービスパケットを第1の負荷バランシング仮想マシンに転送する。
第3の態様の第2の可能な実装方式に関連して、本発明の実施形態の第3の態様の第3の可能な実装方式において、制御パケットは、アドレス解決プロトコルARPパケット、またはインターネット制御メッセージプロトコルICMPパケットである。例えば、制御パケットは、アドレス解決プロトコルARPパケットであってよく、転送モードは、ARPキャッシュモードであってよく、第1の仮想マシンは、ARPキャッシュモードにおいて、第1の負荷バランシング仮想マシンのMACアドレスを第1の仮想マシンへ送信してよい。任意で、制御パケットがICMPパケットである場合、転送モードは、近隣探索プロトコルNDPキャッシュモードであってよい。
第3の態様または第3の態様の第1から第3の可能な実装方式のいずれかの1つに関連して、本発明の実施形態の第3の態様の第4の可能な実装方式において、第1のコンピュータデバイスは、第2の仮想マシンをさらに含み、第2の仮想マシンは、第1の仮想マシンのサービスパケットを処理する能力を有し、ここで、第1の負荷バランシング仮想マシンが、第2の仮想マシンが第1の仮想マシンのサービスパケットを処理すると負荷バランシング方式で判断したとき、第2の仮想マシンは、第1の負荷バランシング仮想マシンにより転送されたサービスパケットを受信し、サービスパケットの処理結果を、第1の負荷バランシング仮想マシンへ送信する。第1の負荷バランシング仮想マシンは、第2の仮想マシンによるサービスパケットの処理結果を、第1の仮想スイッチを用いることによって第1の仮想マシンへ送信するようさらに構成される。
第3の態様または第3の態様の第1から第4の可能な実装方式のいずれかの1つに関連して、本発明の実施形態の第3の態様の第5の可能な実装方式において、第1の負荷バランシング仮想マシンのIPアドレスは、第2の負荷バランシング仮想マシンのIPアドレスと同じであり、または、第1の負荷バランシング仮想マシンのMACアドレスは、第2の負荷バランシング仮想マシンのMACアドレスと同じである。
本発明の実施形態の第4の態様は、負荷バランシング方法を提供し、当該負荷バランシング方法は、第2のコンピュータデバイスが、負荷バランシング仮想マシンを第1のコンピュータデバイス上で生成するための構成情報を受信する段階であって、第1のコンピュータデバイスは、中央処理装置CPUと、メモリと、ストレージ装置とを含み、第1のコンピュータデバイスは、第1の仮想マシンおよび仮想スイッチをさらに含む、段階と、第2のコンピュータデバイスが、構成情報に従って、負荷バランシング仮想マシンを第1のコンピュータデバイス上で生成し、第1のコンピュータデバイスの負荷バランシング仮想マシンと仮想スイッチとの間の接続を確立する段階と、仮想スイッチが、第1の仮想マシンにより送信されたサービスパケットを受信し、サービスパケットに対して負荷バランシング処理を実行する必要があるとき、サービスパケットを負荷バランシング仮想マシンのみに転送する段階と、負荷バランシング仮想マシンが、第1の仮想スイッチにより転送されたサービスパケットを受信し、負荷バランシング方式でサービスパケットを転送する段階とを備える。
負荷バランシング仮想マシンが、負荷バランシング方式でサービスパケットを転送する段階は、以下の通りであってよい。サービスパケットを受信した後に、負荷バランシング仮想マシンはまず、バックエンドサーバが、サービスパケットにサービスするようにサービスパケットに割り当てられているかを判断し、バックエンドサーバが割り当てられている場合、サービスパケットを、割り当てられているバックエンドサーバへ送信する。バックエンドサーバがまだ割り当てられていない場合、負荷バランシングアルゴリズムを用いることによって、サービスパケットにサービスするようにバックエンドサーバを選択する。負荷バランシングアルゴリズムは、ラウンドロビン、重み付きラウンドロビン、ランダムアルゴリズム、リーストコネクション、ソースアドレスハッシュ、または位置に基づく重み付きラウンドロビンを含むが、これらに限定されるものではない。位置に基づく重み付きラウンドロビン方式において、サービスパケットを起動する仮想マシンが位置するコンピュータデバイスのバックエンドサーバは、優先的に選択されてよい。このように、バックエンドサーバによるサービスパケットの処理速度を増加でき、ネットワーク帯域幅を節約できる。
第4の態様に関連して、本発明の実施形態の第4の態様の第1の可能な実装方式において、仮想スイッチが、サービスパケットを負荷バランシング仮想マシンのみに転送する段階は、仮想スイッチが、負荷バランシング仮想マシンのMACアドレスを、第1の仮想マシンへ送信する段階であって、これにより、第1の仮想マシンは、負荷バランシング仮想マシンの取得されたMACアドレスに基づいて、サービスパケットを送信し、仮想スイッチは、サービスパケットを負荷バランシング仮想マシンに転送する、段階、または、負荷バランシング仮想マシンが、負荷バランシング仮想マシンのMACアドレスを第1の仮想マシンへ送信する段階であって、これにより、第1の仮想マシンは、負荷バランシング仮想マシンの取得されたMACアドレスに基づいて、サービスパケットを送信し、仮想スイッチは、サービスパケットを負荷バランシング仮想マシンに転送する、段階、または、第1の仮想マシンが、負荷バランシング仮想マシンの予め構成されたMACアドレスに基づいて、サービスパケットを送信し、仮想スイッチが、サービスパケットを負荷バランシング仮想マシンに転送する段階を含む。
第4の態様の第1の可能な実装方式に関連して、本発明の実施形態の第4の態様の第2の可能な実装方式において、仮想スイッチが、負荷バランシング仮想マシンのMACアドレスを、第1の仮想マシンへ送信する段階は、仮想スイッチが、第1の仮想マシンにより送信された制御パケットを受信し、制御応答パケットを第1の仮想マシンに返す段階を含み、ここで、制御応答パケットは、負荷バランシング仮想マシンのMACアドレスを含む。すなわち、仮想スイッチの転送モードは、構成されてよい。仮想スイッチは、構成された転送モードに従って、第1の仮想マシンのサービスパケットに対して指向性処理を実行し、これにより、仮想スイッチは、サービスパケットを負荷バランシング仮想マシンに転送する。
第4の態様の第2の可能な実装方式に関連して、本発明の実施形態の第4の態様の第3の可能な実装方式において、制御パケットは、アドレス解決プロトコルARPパケット、またはインターネット制御メッセージプロトコルICMPパケットである。例えば、制御パケットは、アドレス解決プロトコルARPパケットであってよく、転送モードは、ARPキャッシュモードであってよく、第1の仮想マシンは、ARPキャッシュモードにおいて、第1の負荷バランシング仮想マシンのMACアドレスを第1の仮想マシンへ送信してよい。任意で、制御パケットがICMPパケットである場合、転送モードは、近隣探索プロトコルNDPキャッシュモードであってよい。
第4の態様または第4の態様の第1から第3の可能な実装方式のいずれかの1つに関連して、本発明の実施形態の第4の態様の第4の可能な実装方式において、第2のコンピュータデバイスが、構成情報に従って、負荷バランシング仮想マシンを第1のコンピュータデバイス上で生成する前に、方法は、第2のコンピュータデバイスが、構成情報を第1のコンピュータデバイスへ送信する段階と、第1のコンピュータデバイスが、負荷バランシング仮想マシンを生成するための構成情報を受信し、第2のコンピュータデバイスに、負荷バランシング仮想マシンを生成するように命令する段階とをさらに備える。任意で、第2のコンピュータデバイスは、構成情報に従って、負荷バランシング仮想マシンを直接的に第2のコンピュータデバイス上で生成してよい。
負荷バランシング仮想マシンを生成するための構成情報は、ユーザにより、クラウド管理プラットフォーム(第2のコンピュータデバイス)を用いることによって送られる。構成情報は、負荷バランシング仮想マシンの識別子、負荷バランシング仮想マシンのIPアドレス、および負荷バランシング仮想マシンに関連するバックエンドサーバについての情報を含むが、これらに限定されるものではない。バックエンドサーバについての情報は、バックエンドサーバの識別子、バックエンドサーバのインターネットプロトコル(IP、Internet protocol)アドレス、またはバックエンドサーバのヘルスチェック方法を含むが、これらに限定されるものではない。バックエンドサーバのヘルスチェック方法は、負荷バランシング仮想マシンが、バックエンドサーバの健康状態をチェックする方法を指す。バックエンドサーバは、具体的なサービスを提供するサーバである。負荷バランシング仮想マシンは、負荷バランシング方式で、例えば、負荷バランシングアルゴリズムを用いることによって、受信されたサービスパケットに従って、バックエンドサーバから1つのサーバを、サービスパケットを処理するサーバとして選択する。本発明の実施形態において、バックエンドサーバは、仮想マシンであってよく、または具体的な物理サーバであってよい。
第4の態様または第4の態様の第1から第4の可能な実装方式のいずれかの1つに関連して、本発明の実施形態の第4の態様の第5の可能な実装方式において、第2のコンピュータデバイスは、第2の仮想マシンをさらに含み、第2の仮想マシンは、第1の仮想マシンのサービスパケットを処理する能力を有し、方法は、負荷バランシング仮想マシンが、負荷バランシングアルゴリズムを用いることによって、第2の仮想マシンが第1の仮想マシンのサービスパケットを処理すると判断したとき、第2の仮想マシンが、負荷バランシング仮想マシンにより転送されたサービスパケットを受信し、サービスパケットの処理結果を、負荷バランシング仮想マシンへ送信する段階と、負荷バランシング仮想マシンが、仮想スイッチを用いることによって、第2の仮想マシンによるサービスパケットの処理結果を、第1の仮想マシンへ送信する段階とをさらに備える。
本発明の実施形態において提供されるコンピュータデバイス、システム、および負荷バランシング方法によれば、負荷バランシング仮想マシンが、各コンピュータデバイス上で生成され、コンピュータデバイスの仮想マシンのサービスに対して負荷バランシング処理を実行する必要があるとき、関連するサービスパケットが、負荷バランシング処理を実行するように、コンピュータデバイスの負荷バランシング仮想マシンのみへ送信される。関連するサービスパケットの負荷バランシングがコンピュータデバイスにおいて実装されるので、複数のコンピュータデバイス上の全てのサービスパケットが1つの負荷バランシングノードにより処理されるような場合は存在せず、それにより、集中負荷バランシングの輻輳によって引き起こされる処理遅延を回避する。加えて、コンピュータデバイスが障害を発生したとき、コンピュータデバイスの仮想マシンは、それに応じてオフラインとなり、負荷バランシングの要求はこれ以上発生しない。従って、単一のコンピュータデバイスの障害が負荷バランシング仮想マシンの障害を引き起こしたとき、別のコンピュータデバイスの負荷バランシング仮想マシンは影響を受けず、負荷バランシング仮想マシンの障害によるアクティブ/スタンバイスイッチオーバによって引き起こされるサービス中断も存在しない。
以下では、本発明の実施形態における添付の図面に関連して、本発明の実施形態における技術的解決手段を明確に説明する。明らかに、説明される実施形態は、本発明のいくつかの実施形態であり、全ての実施形態ではない。当業者により、創造努力なしで、本発明の実施形態に基づいて取得される全ての他の実施形態は、本発明の保護範囲内に含まれるものとする。
図1を参照すると、図1は、従来技術における負荷バランシング構造の概略図である。図1において、コンピュータデバイス101、コンピュータデバイス102、コンピュータデバイス103、一次負荷バランサ104、および二次負荷バランサ105が含まれる。コンピュータデバイス101は、クラウド管理プラットフォームとして用いられ、中央処理装置(CPU、Central Processing Unit)1011、および(ハードディスクまたはソリッドステートドライブなどの)ストレージ装置1012などの構成要素を含む。クラウド管理プラットフォームに関連するプログラムが、コンピュータデバイス101上で作動し、コンピュータデバイス102およびコンピュータデバイス103などのノードに対する管理および構成を実装する。コンピュータデバイス102およびコンピュータデバイス103は、ネットワークを用いることによって接続される。コンピュータデバイス101は、仮想マシンの生成に関連する受信された構成情報に従って、対応する仮想マシンを、コンピュータデバイス102またはコンピュータデバイス103上で生成してよい。
図1において、各コンピュータデバイスが2つの仮想マシンを含む例が、説明のために用いられる。例えば、コンピュータデバイス102は、仮想マシン10211および仮想マシン10212を含み、コンピュータデバイス103は、仮想マシン10311および仮想マシン10312を含む。一次負荷バランサ104および二次負荷バランサ105は、アクティブ/スタンバイ方式で、負荷バランシングサービスを、コンピュータデバイス102またはコンピュータデバイス103の仮想マシンに提供する。一次負荷バランサ104および二次負荷バランサ105は、ハートビート検出方式で接続される。一次負荷バランサ104が障害を発生したとき、二次負荷バランサ105は、一次負荷バランサ104に代わって、負荷バランシングサービスを、仮想マシンに提供し続ける。
この負荷バランシング方式において、一次負荷バランシングノード104が障害を発生し、二次負荷バランシングノードへの切り替えを実行する必要があるとき、切り替えの間に負荷バランシングサービスを提供する負荷バランサは、存在しない。従って、負荷バランシング処理を実行する必要があるサービスパケットは、処理されることができない。加えて、1つの負荷バランサ(負荷バランサ104または105)のみが、全ての仮想マシンのサービスパケットを処理する。このことは、仮想負荷バランサ上のオーバーロードおよび輻輳を引き起こしやすく、それにより、要求されるサービスをタイムリーに処理することに影響を及ぼす、ユーザエクスペリエンスを低下させる。
アクティブ/スタンバイ方式が仮想負荷バランシングのために用いられる場合に切り替えの間に引き起こされる中断、および全てのサービスパケットが1つの仮想負荷バランシングノードにより処理される場合に引き起こされる輻輳を回避するために、本発明の実施形態は、仮想負荷バランシング方法、デバイス、およびシステムを提供する。分散型負荷バランシング仮想マシンが生成され、負荷バランシング機能が、アクティブ/スタンバイスイッチオーバが実行される集中負荷バランシングモードなしで、各ノードデバイスにオフロードされ、これにより、アクティブ/スタンバイスイッチオーバの間に引き起こされる中断、および集中負荷バランシングによって引き起こされる輻輳を回避する。
技術的解決手段を明確に説明するために、本発明の実施形態において、1つのクラウド管理プラットフォームと、2つのコンピュータデバイスノードとを含むネットワークが、説明のための例として用いられる。図2Aおよび図2Bに示されているように、図2Aおよび図2Bは、本発明の実施形態に係る仮想負荷バランシング構造の概略図である。コンピュータデバイス201は、クラウド管理プラットフォームとして用いられ、コンピュータデバイス202およびコンピュータデバイス203に対する仮想管理および構成を実装する。図2Aおよび図2Bにおいて、2つのコンピュータデバイスが、本発明のこの実施形態の解決手段を説明するための例として用いられることに注意すべきである。具体的な実装の間に、クラウド管理プラットフォームとして用いられるコンピュータデバイス201は、少なくとも2つのコンピュータデバイスを構成して管理し得る。具体的な数量のコンピュータデバイスは、本発明のこの実施形態において限定されるものではない。
本発明のこの実施形態におけるコンピュータデバイスの構成要素は、例として図2Bにおけるコンピュータデバイス202を用いることによって説明される。コンピュータデバイス202は、コンピューティングハードウェア20231と、ストレージハードウェア20232と、ネットワークハードウェア20233とを含むハードウェアリソース層2023を有してよい。コンピューティングハードウェア20231は、処理機能およびコンピューティング機能を提供するために用いられる専用プロセッサまたは汎用プロセッサであってよい。ストレージハードウェア20232は、ストレージ能力を提供するよう構成され、ストレージ能力は、(サーバのローカルメモリまたはローカルハードディスクなどの)ストレージハードウェア20232により提供されてよく、または、ネットワークを用いることによって提供されてよい(例えば、サーバが、ネットワークを用いることによってネットワークストレージ装置に接続される)。ネットワークハードウェア20233は、(ネットワークインターフェースカードなどの)スイッチングデバイス、ルータ、および/または別のネットワークデバイスであってよく、ネットワークハードウェア20233は、複数のデバイス間の通信を実装するよう構成される。複数のデバイスは、無線または有線方式で接続される。コンピュータデバイス202の仮想化層が、ハードウェアリソース層でハードウェアリソースを抽象化するために用いられ、これにより、仮想リソースを提供する。コンピュータデバイス202のオペレーティングシステム2022は、仮想化管理のために用いられる仮想化層ハイパーバイザ20221と、仮想スイッチ20222とを含むが、これらに限定されるものではない。仮想化層ハイパーバイザ20221は、コンピュータデバイス202の仮想マシン(仮想マシン20213など)を管理する。仮想スイッチ20222は、ハイパーバイザ20221により管理される仮想マシン間のネットワーク接続機能を提供し、仮想マシンと物理ネットワークとの間のネットワーク接続機能を提供する。仮想負荷バランシング代行ユニット20211は、仮想化層ハイパーバイザ20221を用いることによって、コンピュータデバイス202の負荷バランシング仮想マシン20212に対する構成および管理を実行する。
コンピュータデバイス201は、クラウド管理プラットフォームとして用いられる。クラウド管理プラットフォームに関連するプログラムが、コンピュータデバイス201上で作動し、コンピュータデバイス202およびコンピュータデバイス203に対する管理および構成を実装し、当該管理および当該構成は、コンピュータデバイス202の仮想マシンおよびコンピュータデバイス203の仮想マシンに対する管理および構成を含む。コンピュータデバイス202およびコンピュータデバイス203は、クラウド管理プラットフォームの制御下のデバイスノードとして用いられ、仮想マシンなどに関連するサービスを提供する。
図2Aにおいて、コンピュータデバイス201は、コンピューティングハードウェア20131と、ストレージハードウェア20132と、ネットワークハードウェア20133とを有するハードウェアリソース層2013を備えることに注意すべきである。コンピューティングハードウェア20131は、処理機能およびコンピューティング機能を提供するために用いられる専用プロセッサまたは汎用プロセッサであってよい。ストレージハードウェア20132は、ストレージ能力を提供するよう構成され、ストレージ能力は、(サーバのローカルメモリまたはローカルハードディスクなどの)ストレージハードウェア20132により提供されてよく、またはネットワークを用いることによって提供されてよい(例えば、サーバが、ネットワークを用いることによってネットワークストレージ装置に接続される)。ネットワークハードウェア20133は、(ネットワークインターフェースカードなどの)スイッチングデバイス、ルータ、および/または別のネットワークデバイスであってよく、ネットワークハードウェア20133は、複数のデバイス間の通信を実装するよう構成される。複数のデバイスは、無線または有線方式で接続される。コンピュータデバイス201の仮想化層が、ハードウェアリソース層でハードウェアリソースを抽象化するために用いられ、これにより、仮想リソースを提供する。コンピュータデバイス201のオペレーティングシステム2012は、仮想化管理のために用いられる仮想化層ハイパーバイザ20121を含むが、これに限定されるものではない。
ユーザが、クラウド管理プラットフォームを用いることによってコンピュータデバイス202の仮想マシンを申請し、申請された仮想マシンのサービスパケットに対して負荷バランシング処理を実行する必要があるという例を用いることによって、以下では、本発明のこの実施形態において提供される負荷バランシング方式を説明する。
本発明のこの実施形態において、負荷バランシング処理は、負荷バランサを用いることによって、申請された仮想マシンのサービスパケットに対して実行されてよく、すなわち、負荷バランシング処理は、負荷バランサを生成することによって、申請された仮想マシンのサービスパケットに対して実行されてよい。負荷バランサは、仮想マシン、ネームスペース、およびコンテナなどの実装方式を含むが、これらに限定されるものではない。本発明のこの実施形態において、仮想マシンが負荷バランサとして用いられる例が、説明のために用いられる。ネームスペースまたはコンテナが負荷バランサとして用いられる実装方式について、仮想マシンは、負荷バランサとして用いられる実装方式を参照することが、理解され得る。
本発明のこの実施形態において、クラウド管理プラットフォームは、ネットワーク、ストレージ、およびコンピューティングなどの、リソースに対する統一されたスケジューリングおよび管理を実装し、当該統一されたスケジューリングおよび管理に基づいて、サービスの自動化およびオーケストレーションを実装し、課金、手順、ロギング、およびアプリケーション配信などの動作機能を実装し、最後に、「使った分だけ支払う」モデルで、利用可能で簡便な所望のネットワークアクセスを、ユーザおよび管理者に提供し、これにより、ユーザおよび管理者は、構成可能なコンピューティングリソース共有プールにアクセスすることができる(リソースは、ネットワーク、サーバ、ストレージ、アプリケーションソフトウェア、サービスなどを含む)。
図2Aを参照すると、クラウド管理プラットフォームとして用いられるコンピュータデバイス201は、仮想負荷バランシング管理ユニット20111と仮想マシン管理ユニット20112とを含む。
仮想負荷バランシング管理ユニット20111は、負荷バランシング仮想マシンを生成するための構成情報を受信し、負荷バランシング仮想マシンを生成するための構成情報を、仮想負荷バランシングデータデバイス20114に記憶するよう構成される。仮想負荷バランシング管理ユニット20111はさらに、負荷バランシング仮想マシンを生成するための構成情報を、仮想負荷バランシング代行ユニット20211へ送信してよい。
仮想マシン管理ユニット20112は、負荷バランシング仮想マシンを生成するための構成情報に従って、負荷バランシング仮想マシン20212を生成または削除するよう構成される。
負荷バランシング仮想マシンを生成するための構成情報は、ユーザにより、クラウド管理プラットフォームを用いることによって送られる。構成情報は、負荷バランシング仮想マシンの識別子、仮想IP(VIP、Virtual IP Address)アドレス、および負荷バランシング仮想マシンに関連するバックエンドサーバについての情報などの負荷バランシング仮想マシンのIPアドレスを含むが、これらに限定されるものではない。負荷バランシング仮想マシンのVIPアドレスは、負荷バランシング仮想マシンのIPアドレスである。バックエンドサーバについての情報は、バックエンドサーバの識別子、バックエンドサーバのインターネットプロトコル(IP、Internet protocol)アドレス、またはバックエンドサーバのヘルスチェック方法を含むが、これらに限定されるものではない。バックエンドサーバのヘルスチェック方法は、負荷バランシング仮想マシンがバックエンドサーバの健康状態をチェックする方法を指す。バックエンドサーバは、具体的なサービスを提供するサーバである。負荷バランシング仮想マシンは、負荷バランシング方式で、例えば、負荷バランシングアルゴリズムを用いることによって、受信されたサービスパケットに従って、バックエンドサーバから1つのサーバを、サービスパケットを処理するサーバとして選択する。本発明のこの実施形態において、バックエンドサーバは、仮想マシンであってよく、または具体的な物理サーバであってよい。
図2Aにおいて、仮想負荷バランシングデータデバイス20114は、負荷バランシング仮想マシンを生成するための構成情報を記憶するよう構成され、コンピュータデバイス201のストレージ装置であってよく、またはコンピュータデバイス201から独立したストレージ装置であってよい。本発明のこの実施形態は、負荷バランシング仮想マシンを生成するための構成情報が記憶される具体的な態様に限定を課さない。
仮想マシン管理ユニット20112は、仮想負荷バランシング管理ユニット20111の命令に従って、負荷バランシング仮想マシン20212を直接的に生成または削除してよく、またはコンピュータデバイス202の仮想負荷バランシング代行ユニット20211の命令に従って、負荷バランシング仮想マシン20212を生成または削除してよい。
仮想マシン管理ユニット20112は、ユーザにより送られた、仮想マシンをコンピュータデバイス202上で生成するための構成情報に従って、対応する仮想マシンを生成するようさらに構成される。例えば、コンピュータデバイス201が、ユーザにより送られた、仮想マシンをコンピュータデバイス202上で生成するための構成情報を受信したとき、仮想マシン管理ユニット20112は、仮想マシン20213をコンピュータデバイス202上で生成する。同様に、コンピュータデバイス201がユーザにより送られた、バックエンドサーバとして用いられる仮想マシンをコンピュータデバイス202上で生成するための構成情報を受信したとき、仮想マシン管理ユニット20112は、バックエンドサーバとして用いられる対応する仮想マシンを生成し、例えば、仮想マシン20214を生成する。
任意選択の実装方式において、コンピュータデバイス202は、仮想負荷バランシング代行ユニット20211をさらに含んでよく、仮想負荷バランシング代行ユニット20211は、負荷バランシング仮想マシンを生成するための構成情報を、仮想負荷バランシング管理ユニット20111から取得し、仮想マシン管理ユニット20112に、負荷バランシング仮想マシンを生成するための構成情報に従って負荷バランシング仮想マシン20212を生成するように命令するよう構成される。
仮想マシン管理ユニット20112に、負荷バランシング仮想マシンを生成するための構成情報に従って負荷バランシング仮想マシン20212を生成するように命令するとき、仮想負荷バランシング代行ユニット20211は、通知情報を仮想マシン管理ユニット20112へ送信する。通知情報は、負荷バランシング仮想マシン20212を生成するための仮想マシンパラメータ情報をさらに含む。負荷バランシング仮想マシン20212の仮想マシンパラメータ情報は、仮想中央処理装置の数量、仮想メモリのサイズ、および負荷バランシング仮想マシン20212が位置する論理ネットワークなどの情報を含むが、これらに限定されるものではない。
仮想マシン管理ユニット20112が負荷バランシング仮想マシン20212を生成する処理は、以下の通りであってよい。仮想マシン管理ユニット20112は、仮想マシンを生成するためのアプリケーション・プログラミング・インターフェース(API、Application Programming Interface)を呼び出し、負荷バランシングモジュールを有するミラーを指定することによって、負荷バランシング仮想マシン20212を生成する。APIが、仮想マシンを生成するために呼び出されたとき、仮想マシンパラメータ情報は、用いられ、これにより、仮想マシンパラメータ情報に従って、仮想マシンを生成する。負荷バランシングモジュールを有するミラーが指定され、これにより、生成された仮想マシンは、負荷バランシングモジュールを有し、構成情報は、仮想マシンの負荷バランシングモジュールへ送信される。
仮想負荷バランシング管理ユニット20111が、仮想マシン管理ユニット20112に、負荷バランシング仮想マシン20212を生成するように直接命令するとき、仮想負荷バランシング管理ユニット20111は、通知メッセージを仮想マシン管理ユニット20112へ送信し、これにより、仮想マシン管理ユニット20112に、負荷バランシング仮想マシン20212の生成を開始するように命令する。通知メッセージは、負荷バランシング仮想マシン20212を生成するために必要とされる構成情報および仮想マシンパラメータ情報を含む。負荷バランシング仮想マシン20212がコンピュータデバイス202上で生成された後に、負荷バランシング仮想マシン20212は、仮想スイッチ20222を用いることによって、コンピュータデバイス202の仮想マシン20213などの仮想マシンにより送信されたサービスパケットを受信し、負荷バランシング方式で受信されたサービスパケットを処理するよう構成される。
負荷バランシング仮想マシン20212が、負荷バランシング方式で、コンピュータデバイス202の仮想マシンのサービスパケットを処理することは、以下の通りであってよい。サービスパケットを受信した後に、負荷バランシング仮想マシン20212はまず、バックエンドサーバが、サービスパケットにサービスするようにサービスパケットに割り当てられているかを判断し、バックエンドサーバが割り当てられている場合、サービスパケットを割り当てられているバックエンドサーバへ送信する。バックエンドサーバがまだ割り当てられていない場合、負荷バランシングアルゴリズムを用いることによって、サービスパケットにサービスするようにバックエンドサーバを選択する。負荷バランシングアルゴリズムは、ラウンドロビン、重み付きラウンドロビン、ランダムアルゴリズム、リーストコネクション、ソースアドレスハッシュ、または位置に基づく重み付きラウンドロビンを含むが、これらに限定されるものではない。位置に基づく重み付きラウンドロビン方式において、サービスパケットを起動する仮想マシンが位置するコンピュータデバイスのバックエンドサーバは、優先的に選択されてよい。このように、バックエンドサーバによるサービスパケットの処理速度を増加でき、ネットワーク帯域幅を節約できる。
本発明のこの実施形態において、ラウンドロビンアルゴリズムは、バックエンドサーバが負荷バランシング仮想マシン20212のために選択される方式を説明するための例として用いられる。負荷バランシング仮想マシン20212のバックエンドサーバが、仮想マシン20214および仮想マシン20314を含む場合、負荷バランシング仮想マシン20212は、全てのバックエンドサーバ(仮想マシン20214および仮想マシン20314)をリストにグループ化し、次に、リストにおいて、処理される必要があるサービスパケットを割り当てる。負荷バランシング仮想マシン20212が、仮想マシン20213により送信された第1のサービスパケットを受信したとき、仮想マシン20214は、サービスを提供するバックエンドサーバとして用いられ、第1のサービスパケットは、仮想マシン20214へ送信される。仮想マシン20213から第2のサービスパケットが受信されたとき、仮想マシン20314は、サービスを提供するバックエンドサーバとして用いられ、第2のサービスパケットは、仮想マシン20314へ送信される。負荷バランシング仮想マシン20212が、仮想マシン20213により送信された第3のサービスパケットを受信したとき、仮想マシン20214は、サービスを提供するバックエンドサーバとして用いられ、第3のサービスパケットは、仮想マシン20214へ送信される。先述の動作は、循環して繰り返される。
負荷バランシング方式は、ユーザが、クラウド管理プラットフォームを用いることによって、サービスを起動する、コンピュータデバイス202の仮想マシンを申請し、申請された仮想マシンのサービス要求に対して負荷バランシング処理を実行する必要がある例を用いて説明される。ユーザが、クラウド管理プラットフォームを用いることによって、サービスを起動するコンピュータデバイス203の仮想マシンを申請し、申請された仮想マシンのサービス要求に対して負荷バランシング処理を実行する必要があるとき、この実装方式については、上述した実装方式と同様であることが理解され得る。負荷バランシングユニットが全てのコンピュータデバイス上に分散されるので、集中負荷バランシングノードが存在せず、負荷バランシング処理は、各コンピュータデバイスにおいて、負荷バランシングに関連するサービスパケットに対して実装され、サービスパケットの輻輳によって引き起こされる処理遅延は発生しない。さらに、負荷バランサは、コンピュータデバイス202およびコンピュータデバイス203の両方上に配備される。コンピュータデバイスが障害を発生したとき、コンピューティングデバイスの仮想マシンは、それに応じてオフラインとなり、負荷バランシングの要求はこれ以上、発生しない。従って、単一のコンピュータデバイスの障害が負荷バランシングユニットの障害を引き起こしたとき、別の負荷バランシングサービスの処理は、影響を受けず、負荷バランシングノードの障害によるアクティブ/スタンバイスイッチオーバによって引き起こされるサービス中断も存在しない。
本発明のこの実施形態において、仮想負荷バランシング管理ユニット20111から仮想負荷バランシング代行ユニット20211により取得される、負荷バランシング仮想マシン20212の構成情報は、負荷バランシング仮想マシン20212のネットワーク情報をさらに含んでよい。仮想負荷バランシング代行ユニット20211は、仮想マシン管理ユニット20112に、負荷バランシング仮想マシンを生成するための構成情報におけるネットワーク情報に従って、負荷バランシング仮想マシン20212のための仮想ネットワークインターフェースカードを生成するように命令し、仮想マシン管理ユニット20112に、仮想ネットワークインターフェースカードと仮想スイッチ20222との間の接続を確立するように命令するようさらに構成される。仮想負荷バランシング代行ユニット20211の命令に従って、仮想ネットワークインターフェースカードを生成するとき、仮想マシン管理ユニット20112はさらに、負荷バランシング仮想マシンを生成するための構成情報に従って、IPアドレスおよびMACアドレスを、生成された仮想ネットワークインターフェースカードに割り当ててよい。任意で、仮想負荷バランシング管理ユニット20111は、仮想マシン管理ユニット20112に、負荷バランシング仮想マシン20212のための仮想ネットワークインターフェースカードを生成して仮想ネットワークインターフェースカードと仮想スイッチ20222との間の接続を確立するように命令してよい。
仮想ネットワークインターフェースカードと仮想スイッチ20222との間の接続は、仮想スイッチのネットワーク識別子を構成することによって確立され得る。仮想スイッチのネットワーク識別子は、仮想スイッチのネットワークインターフェースの識別子であり、仮想マシンのネットワークインターフェースの識別子が、仮想スイッチのネットワークインターフェースの識別子と同じであるときのみ、接続は、仮想マシンと仮想スイッチとの間で確立できる。本発明のこの実施形態において、仮想マシン管理ユニット20112は、仮想スイッチ20222のネットワーク識別子を構成することによって、負荷バランシング仮想マシン20212と仮想スイッチ20222との間の接続を確立する。例えば、仮想スイッチ20222は、それらのネットワーク識別子が100である3つのネットワークインターフェースを有する。負荷バランシング仮想マシン20212および仮想マシン20213の仮想ネットワークインターフェースカードが、それらのネットワーク識別子が100であるインターフェースを有するとき、仮想マシン20213は、そのネットワーク識別子が100であるインターフェースと、そのネットワーク識別子が100である、負荷バランシング仮想マシン20212のインターフェースとを用いることによって、通信し得る。仮想マシン管理ユニット20112は、仮想負荷バランシング代行ユニット20211または仮想負荷バランシング管理ユニット20111の命令に従って、仮想スイッチ20222のためのネットワーク識別子を構成してよい。仮想スイッチ20222の3つのネットワークインターフェースは単に例であることが理解され得る。具体的な実装の間に、仮想スイッチ20222はまた、別のネットワークインターフェースを含んでよい。例えば、仮想スイッチ20222は、100個のネットワークインターフェースを含み、ネットワークインターフェースのうちの3つのネットワーク識別子が100である。
仮想マシン管理ユニット20112が、仮想負荷バランシング代行ユニット20211の命令に従って、仮想ネットワークインターフェースカードと仮想スイッチ20222との間の接続を確立した後に、仮想負荷バランシング代行ユニット20211は、仮想マシン管理ユニット20112に、仮想スイッチ20222の転送モードを構成するように命令するようさらに構成される。仮想スイッチ20222は、仮想マシン20213のサービスパケットに対して指向性転送処理を実行し、これにより、仮想マシン20213は、負荷バランシング仮想マシン20212をサービスパケットへ送信する。任意で、仮想負荷バランシング管理ユニット20111は、仮想マシン管理ユニット20112に、仮想スイッチ20222の転送モードを構成するように命令してよい。
仮想スイッチ20222の転送モードは、アドレス解決プロトコル(ARP、Address Resolution Protocol)キャッシュモード、または近隣探索プロトコル(NDP、Neighbor Discovery Protocol)キャッシュモードであってよく、すなわち、仮想スイッチ20222が、サービスパケットに対して指向性転送処理を実行する方式は、ARPまたはNDPキャッシュモードである。本発明のこの実施形態において、ARPキャッシュ技術の実装方式は、例として、OpenStackをサポートするクラウドプラットフォームを用いることによって説明される。
ARPキャッシュ技術は、フローテーブルを用いることによって実装される。フローテーブル技術は通常、マッチング条件および動作といった2つの部分を含む。ARPキャッシュフローテーブルのマッチング条件は以下の通りである。プロトコル種別がARPであり、ARP宛先プロトコルアドレスが仮想IPアドレス(VIP、Virtual IP Address)であり、VIPは、負荷バランシング仮想マシンによりアクセスされることができるIPアドレスであり、ARP動作種別が、ARP要求である。動作は、以下を含む。1.受信されたARPパケットの宛先メディアアクセス制御(MAC、Media Access Control)アドレスが、パケットのソースMACアドレスに変更される。2.受信されたARPパケットのソースMACアドレスは、負荷バランシング仮想マシン20212のMACアドレスに変更される。3.受信されたARPパケットのARP動作種別が、ARP返答に変更される。4.受信されたARPパケットのARP宛先プロトコルアドレスが、ARPパケットのARPソースプロトコルアドレスに変更され、プロトコルアドレスは、ARPプロトコルにおける用語であり、IPアドレスを指す。5.受信されたARPパケットのARPソースプロトコルアドレスは、負荷バランシング仮想マシン20212のIPアドレスに変更される。6.受信されたARPパケットのARP宛先ハードウェアアドレスが、パケットのARPソースハードウェアアドレスに変更され、ハードウェアアドレスは、ARPプロトコルにおける用語であり、MACアドレスを指す。7.受信されたARPパケットのARPソースハードウェアアドレスは、負荷バランシング仮想マシン20212のMACアドレスに変更される。フローテーブルにおける動作は必ずしも全て実行されるわけではなく、当業者は、動作2が必須であることを知り得る。そして、変更されたARPパケットは、仮想スイッチ20222に送られ、仮想スイッチ20222を用いることによって、仮想マシン20213へ送信される。仮想スイッチ20222のARPキャッシュモードにおいて、仮想マシン20213は、VIPに対応するMACアドレスを取得でき、取得されたMACアドレスに基づいてサービスパケットを送信でき、これにより、コンピュータデバイス202の仮想マシンにより送信された、負荷バランシング処理を実行する必要があるサービスパケットは、コンピュータデバイス202の負荷バランシング仮想マシン20212のみへ送信される。
仮想スイッチ20222がARP返答パケットを仮想マシン20213へ送信した後に、仮想マシン20213は、サービス要求パケットを構築し、サービス要求パケットのIPアドレスは、VIPアドレスであり、サービス要求パケットのMACアドレスは、仮想スイッチ20222のARP返答から取得される負荷バランシング仮想マシン20212のMACアドレスである。仮想マシン20213は、構築されたサービス要求パケットを仮想スイッチ20222へ送信し、仮想スイッチ20222は、サービス要求パケットのIPアドレスおよびMACアドレスに従って、サービス要求パケットを負荷バランシング仮想マシン20212へ送信する。
仮想マシン20213により送信される、負荷バランシング処理を実行する必要がないパケットのIPアドレスは、VIPアドレスではなく、仮想スイッチ20222は、一般的な転送モードにおいてパケットを転送してよい。
仮想スイッチ20222により受信される、仮想マシン20213により起動されたサービスパケットに対して負荷バランシング処理を実行する必要があるとき、仮想スイッチ20222は、ARPキャッシュ技術を用いることによって、仮想マシン20213のサービスパケットを負荷バランシング仮想マシン20212へ送信する。別のコンピュータデバイス(コンピュータデバイス203など)の負荷バランシング仮想マシン(負荷バランシング仮想マシン20312など)は、ARP要求を受信せず、コンピュータデバイス202の仮想マシン20213により送信されたサービスパケットを受信しない。従って、以下の目的が達成される。各コンピュータデバイスの仮想マシンのサービスパケットに対して負荷バランシング処理を実行する必要があるとき、サービスパケットは、コンピュータデバイスの負荷バランシング仮想マシンのみに対して実装される。
コンピュータデバイス202上での負荷バランシング仮想マシン20212の生成と同様に、負荷バランシング仮想マシン20312は、コンピュータデバイス203上で生成され得る。各コンピュータデバイスの仮想マシンにより送信される、負荷バランシング処理を実行する必要があるサービスパケットが、コンピュータデバイス上で生成された負荷バランシング仮想マシンのみに転送され、処理するための別のコンピュータデバイスの負荷バランシング仮想マシンに転送されないので、コンピュータデバイス202の負荷バランシング仮想マシン20212のIPアドレスは、コンピュータデバイス203の負荷バランシング仮想マシン20312のIPアドレスと同じであってよい。同様に、コンピュータデバイス202の負荷バランシング仮想マシン20212のMACアドレスは、コンピュータデバイス203の負荷バランシング仮想マシン20312のMACアドレスと同じであってよい。このように、コンピュータデバイスを含むネットワークにおけるIPアドレスリソースおよび/またはMACアドレスリソースを節約できる。
本発明のこの実施形態において、負荷バランシングサービスを配備するユーザが、第1の仮想マシンをコンピュータデバイス202上で生成するとき、仮想負荷バランシング代行ユニット20211は、仮想マシン管理ユニット20112に、負荷バランシング仮想マシン20212を生成するように命令し得る。このように、コンピュータデバイス202におけるリソースが節約でき、負荷バランシングサービスが必要とされないときの負荷バランシング仮想マシンの生成によって引き起こされるハードウェアリソース浪費が回避できる。負荷バランシングサービスを配備するユーザが、第1の仮想マシンをコンピュータデバイス202上で生成したという状況は、以下のように判断されてよい。仮想マシン管理ユニット20112が(仮想マシン20213などの)仮想マシンを生成した場合、仮想負荷バランシング管理ユニット20111は、生成された仮想マシンが、仮想負荷バランシングサービスを構成しているユーザにより構成された第1の仮想マシンであるかを判断する。生成された仮想マシンが、仮想負荷バランシングサービスを構成しているユーザにより構成された第1の仮想マシンである場合、仮想負荷バランシング管理ユニット20111は、仮想負荷バランシング代行ユニットに、仮想マシン管理ユニット20112に負荷バランシング仮想マシン20212を生成するように命令するように、命令する。あるいは、仮想負荷バランシング管理ユニット20111は、仮想マシン管理ユニット20112に、負荷バランシング仮想マシン20212を生成するように直接命令してよい。仮想負荷バランシングサービスを構成しているユーザにより構成された最後の仮想マシンが削除されたとき、仮想負荷バランシング管理ユニット20111は、仮想負荷バランシング代行ユニットに、仮想マシン管理ユニット20112に負荷バランシング仮想マシン20212を削除するように命令するように、命令する、または、仮想マシン管理ユニット20112に、負荷バランシング仮想マシン20212を削除するように直接命令する。
第1の仮想マシンを生成したとき、仮想負荷バランシングサービスを構成しているユーザは、負荷バランシング仮想マシン20212を生成し、同じユーザにより構成された最後の仮想マシンが削除されたとき、負荷バランシング仮想マシン20212は削除され、これにより、コンピュータデバイス202における仮想リソースが減少でき、コンピュータデバイス202のリソース利用率が増加できる。
コンピュータデバイス202の仮想負荷バランシング代行ユニット20211は、コンピュータデバイス201の仮想マシン管理ユニット20112に、負荷バランシング仮想マシン20212を生成して構成するように命令する。具体的な実装の間に、コンピュータデバイス202は、仮想負荷バランシング代行ユニット20211を含まなくてもよい。負荷バランシング仮想マシン20212を生成するための構成情報を受信したとき、コンピュータデバイス201の仮想負荷バランシング管理ユニット20111は、仮想マシン管理ユニット20112に、負荷バランシング仮想マシン20212を生成するように直接命令してよい。本発明のこの実施形態は、負荷バランシング仮想マシン20212を生成する具体的な態様に対して限定を課さない。
ユーザが、クラウド管理プラットフォームを用いることによって、仮想マシン20213を申請し、仮想マシン20213を用いることによって映像サービスにアクセスする。本発明のこの実施形態における負荷バランシング方式は、映像サービスが、仮想マシン20214または仮想マシン20314などのバックエンドサーバにより提供され得る例を用いることによって説明される。図2Aおよび図2Bに示されている実施形態に関連して、クラウド管理プラットフォーム(コンピュータデバイス201)は別々に、負荷バランシング仮想マシン20212をコンピュータデバイス202上で生成し、負荷バランシング仮想マシン20312をコンピュータデバイス203上で生成する。仮想マシン20213が映像サービスにアクセスするためにサービスパケットを起動するとき、サービスパケットは、仮想スイッチ20222により、コンピュータデバイス202の負荷バランシング仮想マシン20212のみに転送され、ネットワークを用いることによってコンピュータデバイス202に接続されるコンピュータデバイス203の負荷バランシング仮想マシン20312は、仮想マシン20213により送信されたサービスパケットを受信せず、これにより、負荷バランシング処理は、コンピュータデバイス202のみにおいて、コンピュータデバイス202において起動された、負荷バランシング処理を実行する必要があるサービスパケットに対して実装される。映像サービスに関連し、仮想スイッチ20222により転送される、仮想マシン20213のサービスパケットを受信した後に、負荷バランシング仮想マシン20212は、負荷バランシングアルゴリズムを用いることによって、サービスパケットを処理する。仮想マシン20214または仮想マシン20314のうちの一方は、映像サービスを仮想マシン20213に提供するためのバックエンドサーバとして選択されてよい。好ましくは、負荷バランシング仮想マシン20212は、仮想マシン20214を、映像サービスを仮想マシン20213に提供するためのバックエンドサーバとして選択してよい。このように、ネットワーク帯域幅を節約でき、バックエンドサーバがサービスパケットに応答する効率を向上できる。
図3を参照すると、図3は、本発明の実施形態に係るコンピュータデバイス300の概略構造図である。図3において、コンピュータデバイス300は、中央処理装置CPU3031と、メモリ3032と、ストレージ装置3033とを有し、コンピュータデバイス300のハードウェアに基づいて仮想化された後に生成される第1の仮想マシン304と、負荷バランシング仮想マシン301と、仮想スイッチ3022とをさらに有する。第1の仮想マシン304および負荷バランシング仮想マシン301は、コンピュータデバイス300上で生成される仮想マシンである。
第1の仮想マシン304は、サービスパケットを送信するよう構成される。
仮想スイッチ3022は、第1の仮想マシン304により送信されたサービスパケットを受信し、サービスパケットに対して負荷バランシング処理を実行する必要があるとき、サービスパケットを、負荷バランシング仮想マシン301のみに転送するよう構成される。
負荷バランシング仮想マシン301は、仮想スイッチ3022により転送されたサービスパケットを受信し、負荷バランシング方式でサービスパケットを転送するよう構成される。
コンピュータデバイス300は、負荷バランシング仮想マシン301を含む。コンピュータデバイス300の仮想マシンにより起動されたサービスに対して負荷バランシング処理を実行する必要があるとき、関連するサービスパケットが、コンピュータデバイス300の負荷バランシング仮想マシン301のみへ送信され、これにより、負荷バランシング処理を実行する。関連するサービスパケットの負荷バランシングがコンピュータデバイスにおいて実装されるので、複数のコンピュータデバイス上の全てのサービスパケットが1つの負荷バランシングノードにより処理されるような場合は存在せず、それにより、集中負荷バランシングの輻輳によって引き起こされる処理遅延を回避する。加えて、コンピュータデバイス300が障害を発生したとき、コンピュータデバイス300の仮想マシンは、それに応じてオフラインとなり、負荷バランシングの要求はこれ以上、発生しない。従って、単一のコンピュータデバイスの障害が負荷バランシング仮想マシンの障害を引き起こしたとき、別のコンピュータデバイスの負荷バランシング仮想マシンは影響を受けず、負荷バランシング仮想マシンの障害によるアクティブ/スタンバイスイッチオーバによって引き起こされるサービス中断も存在しない。
本発明のこの実施形態において、中央処理装置CPU3031、メモリ3032、およびストレージ装置3033に加えて、コンピュータデバイス300は、ネットワークハードウェア(不図示)などのハードウェアデバイスを含んでよい。ネットワークハードウェアは、(ネットワークインターフェースカードなどの)スイッチングデバイス、ルータ、および/または別のネットワークデバイスであってよく、複数のデバイス間の通信を実装するよう構成される。複数のデバイスは、無線または有線方式で接続されてよい。
任意で、仮想スイッチ3022が、サービスパケットを、負荷バランシング仮想マシン301のみに転送することは、仮想スイッチ3022が、負荷バランシング仮想マシン301のMACアドレスを、第1の仮想マシン304へ送信し、これにより、第1の仮想マシン304が、負荷バランシング仮想マシン301の取得されたMACアドレスに基づいてサービスパケットを送信し、仮想スイッチ3022が、サービスパケットを負荷バランシング仮想マシン301に転送すること、もしくは、負荷バランシング仮想マシン301が、負荷バランシング仮想マシン301のMACアドレスを第1の仮想マシン304へ送信し、これにより、第1の仮想マシン304が、負荷バランシング仮想マシン301の取得されたMACアドレスに基づいてサービスパケットを送信し、仮想スイッチ3022が、サービスパケットを負荷バランシング仮想マシン301に転送すること、または、第1の仮想マシン304が、負荷バランシング仮想マシン301の予め構成されたMACアドレスに基づいてサービスパケットを送信し、仮想スイッチ3022が、サービスパケットを負荷バランシング仮想マシン301に転送することを含んでよい。
仮想スイッチ3022が、負荷バランシング仮想マシン301のMACアドレスを第1の仮想マシン304へ送信することは、仮想スイッチ3022が、第1の仮想マシン304により送信された制御パケットを受信し、制御応答パケットを第1の仮想マシン304に返すことを含んでよく、ここで、制御応答パケットは、負荷バランシング仮想マシン301のMACアドレスを含む。
制御パケットは、ARPパケット、またはインターネット制御メッセージプロトコル(ICMP、Internet Control Message Protocol)パケットであってよく、ICMPパケットは、ICMPv6バージョン6パケットであってよい。例えば、コンピュータデバイス300は、IPv4プロトコルを用いる。第1の仮想マシン304がサービスパケットを送信する必要があるとき、第1の仮想マシン304はまず、ARPパケットを仮想スイッチ3022へ送信する。仮想スイッチ3022は、ARPキャッシュを実行し、負荷バランシング仮想マシン301のMACアドレスを、第1の仮想マシン304へ送信する。第1の仮想マシン304は、負荷バランシング仮想マシン301の取得されたMACアドレスに従って、負荷バランシング仮想マシン301の取得されたIPアドレスなどの情報に関連して、仮想スイッチ3022を用いることによって、サービスパケットを負荷バランシング仮想マシン301へ送信する。この方式で、第1の仮想マシン304により送信されたサービスパケットに対して負荷バランシング処理を実行する必要があるとき、サービスパケットは、コンピュータデバイス300の負荷バランシング仮想マシン301のみへ送信される。
図4を参照すると、図4は、本発明の実施形態に係るコンピュータデバイス300の具体的な実装構造のエンティティ図である。図4において、仮想化管理のために用いられる仮想化層ハイパーバイザ3021、および仮想スイッチ3022が、コンピュータデバイス300のオペレーティングシステム302上で作動する。仮想化層ハイパーバイザ3021は、コンピュータデバイス300の仮想マシン(第1の仮想マシン304など)を管理する。仮想スイッチ3022は、ハイパーバイザ3021により管理される仮想マシン間のネットワーク接続機能を提供し、仮想マシンと物理ネットワークとの間のネットワーク接続機能を提供する。仮想負荷バランシング代行ユニット3023は、仮想化層ハイパーバイザ3021を用いることによって、コンピュータデバイス300の負荷バランシング仮想マシン301に対する構成および管理を実行する。
仮想負荷バランシング代行ユニット3023は、負荷バランシング仮想マシン301を生成するための構成情報を受信し、負荷バランシング仮想マシン301の生成または削除を制御し、負荷バランシング仮想マシン301と仮想スイッチ3022との間の接続の確立を制御するよう構成される。
仮想負荷バランシング代行ユニット3023は、負荷バランシング仮想マシン301を生成するユーザが、(第1の仮想マシン304などの)第1の仮想マシンをコンピュータデバイス300上で生成したとき、負荷バランシング仮想マシン301の生成を開始してよい。コンピュータデバイス300上で負荷バランシング仮想マシン301を生成するユーザにより生成された最後の仮想マシンが削除されたとき、仮想負荷バランシング代行ユニット3023は、負荷バランシング仮想マシン301を削除するように命令する。このように、コンピュータデバイス300におけるリソースが節約でき、負荷バランシングサービスが必要とされないときの負荷バランシング仮想マシンの生成によって引き起こされるハードウェアリソース浪費が回避できる。具体的には、仮想負荷バランシング代行ユニット3023は、図2Bにおける仮想負荷バランシング代行ユニット20211の実装方式に関連して実装されてよい。詳細は、再び説明されない。
任意で、コンピュータデバイス300は、第2の仮想マシン305をさらに含み、第2の仮想マシン305は、第1の仮想マシン304のサービスパケットを処理する能力を有する。
負荷バランシング仮想マシン301が、負荷バランシングアルゴリズムを用いることによって、第2の仮想マシン305が第1の仮想マシン304のサービスパケットを処理すると判断したとき、第2の仮想マシン305は、負荷バランシング仮想マシン301により転送されたサービスパケットを受信し、サービスパケットの処理結果を負荷バランシング仮想マシン301へ送信する。
負荷バランシング仮想マシン301は、仮想スイッチ3022を用いることによって、第2の仮想マシン305によるサービスパケットの処理結果を第1の仮想マシン304へ送信するようさらに構成される。任意選択の実装方式において、第2の仮想マシン305は、サービスパケットの処理結果を、第1の仮想マシン304に直接送信してよく、すなわち、第2の仮想マシン305は、負荷バランシング仮想マシン301を用いることなく、サービスパケットの処理結果を第1の仮想マシン304へ送信する。
負荷バランシング仮想マシン301は、処理のために、ある方式で、例えば、負荷バランシングアルゴリズムを用いることによって、第1の仮想マシン304のサービスパケットをバックエンドサーバ(第2の仮想マシン305)に転送し、バックエンドサーバの処理結果は、第1の仮想マシン304へ送信される。従って、以下の目的が達成される。コンピュータデバイス300において、コンピュータデバイス300上で生成された負荷バランシング仮想マシンは、コンピュータデバイス300のデバイスに対して、負荷バランシングサービスを実装する。負荷バランシング処理効率が向上する。
図5を参照すると、図5は、本発明の実施形態に係る第1種のコンピュータシステムの実装方式の概略構造図である。システムは、第1のコンピュータデバイス502および第2のコンピュータデバイス501を備える。第2のコンピュータデバイス501は、中央処理装置CPU50131と、メモリ50132と、ストレージ装置50133とを有する。第1のコンピュータデバイス502は、中央処理装置CPU50231と、メモリ50232と、ストレージ装置50233とを有する。第1のコンピュータデバイス502は、ハードウェアベースの仮想化後に生成される第1の仮想マシン50213と、第1の負荷バランシング仮想マシン50212と、仮想スイッチ50222とをさらに有する。第1の仮想マシン50213および第1の負荷バランシング仮想マシン50212は、コンピュータデバイス502上で生成される仮想マシンである。
第1の仮想マシン50213は、サービスパケットを送信するよう構成される。
第1の仮想スイッチ50222は、第1の仮想マシン50213により送信されたサービスパケットを受信し、サービスパケットに対して負荷バランシング処理を実行する必要があるとき、サービスパケットを、第1の負荷バランシング仮想マシン50212のみに転送するよう構成される。
第1の負荷バランシング仮想マシン50212は、第1の仮想スイッチ50222により転送されたサービスパケットを受信し、負荷バランシング方式でサービスパケットを転送するよう構成される。
第1のコンピュータデバイス502は、第1の負荷バランシング仮想マシン50212を含む。第1のコンピュータデバイス502の仮想マシンのサービスに対して負荷バランシング処理を実行する必要があるとき、負荷バランシング処理を実行するように、関連するサービスパケットが、第1のコンピュータデバイス502の第1の負荷バランシング仮想マシン50212のみへ送信される。関連するサービスパケットの負荷バランシングがコンピュータデバイスにおいて実装されるので、複数のコンピュータデバイス上の全てのサービスパケットが1つの負荷バランシングノードにより処理されるような場合は存在せず、それにより、集中負荷バランシングの輻輳によって引き起こされる処理遅延を回避する。加えて、第1のコンピュータデバイス502が障害を発生したとき、第1のコンピュータデバイス502の仮想マシンは、それに応じてオフラインとなり、負荷バランシングの要求はこれ以上、発生しない。従って、単一のコンピュータデバイスの障害が、負荷バランシング仮想マシンの障害を引き起こしたとき、別のコンピュータデバイスの負荷バランシング仮想マシンは影響を受けず、負荷バランシング仮想マシンの障害によるアクティブ/スタンバイスイッチオーバによって引き起こされるサービス中断も存在しない。
本発明のこの実施形態において、中央処理装置CPU50131と、メモリ50132と、ストレージ装置50133とに加えて、第2のコンピュータデバイス501は、ネットワークハードウェア(不図示)などのハードウェアデバイスを含んでよい。ネットワークハードウェアは、(ネットワークインターフェースカードなどの)スイッチングデバイス、ルータ、および/または別のネットワークデバイスであってよく、複数のデバイス間の通信を実装するよう構成される。複数のデバイスは、無線または有線方式で接続されてよい。
任意で、第1の仮想スイッチ50222は、サービスパケットを第1の負荷バランシング仮想マシン50212のみに転送することは、第1の仮想スイッチ50222が、第1の負荷バランシング仮想マシン50212のMACアドレスを第1の仮想マシン50213へ送信し、これにより、第1の仮想マシン50213が、第1の負荷バランシング仮想マシン50212の取得されたMACアドレスに基づいてサービスパケットを送信し、第1の仮想スイッチ50222が、サービスパケットを第1の負荷バランシング仮想マシン50212に転送すること、または、第1の負荷バランシング仮想マシン50212が、第1の負荷バランシング仮想マシン50212のMACアドレスを第1の仮想マシン50213へ送信し、これにより、第1の仮想マシン50213が、第1の負荷バランシング仮想マシン50212のMACアドレスに基づいて、サービスパケットを送信し、第1の仮想スイッチ50222が、サービスパケットを第1の負荷バランシング仮想マシン50212に転送すること、または、第1の仮想マシン50213が、第1の負荷バランシング仮想マシン50212の予め構成されたMACアドレスに基づいてサービスパケットを送信し、第1の仮想スイッチ50222が、サービスパケットを第1の負荷バランシング仮想マシン50212に転送することを含んでよい。
第1の仮想スイッチ50222が、第1の負荷バランシング仮想マシン50212のMACアドレスを第1の仮想マシン50213へ送信することは、第1の仮想スイッチ50222が、第1の仮想マシン50213により送信された制御パケットを受信し、制御応答パケットを第1の仮想マシン50213に返すことを含み、ここで、制御応答パケットは、第1の負荷バランシング仮想マシン50212のMACアドレスを含む。
制御パケットは、ARPパケット、またはICMPv6パケットであってよい。例えば、第1のコンピュータデバイス502は、IPv4プロトコルを用いる。第1の仮想マシン50213が、サービスパケットを送信する必要があるとき、第1の仮想マシン50213はまず、ARPパケットを第1の仮想スイッチ50222へ送信する。第1の仮想スイッチ50222は、ARPキャッシュを実行し、第1の負荷バランシング仮想マシン50212のMACアドレスを、第1の仮想マシン50213へ送信する。第1の仮想マシン50213は、第1の負荷バランシング仮想マシン50212の取得されたMACアドレスに従って、第1の負荷バランシング仮想マシン50212の取得されたIPアドレスなどの情報に関連して、第1の仮想スイッチ50222を用いることによって、サービスパケットを第1の負荷バランシング仮想マシン50212へ送信する。この方式で、第1の仮想マシン50213により送信されたサービスパケットに対して負荷バランシング処理を実行する必要があるとき、サービスパケットは、第1のコンピュータデバイス502の第1の負荷バランシング仮想マシン50212のみへ送信される。
図6を参照すると、図6は、本発明の実施形態に係る第1種のコンピュータシステムの具体的な実装構造のエンティティ図である。図6において、仮想化管理のために用いられる仮想化層ハイパーバイザ50221、および第1の仮想スイッチ50222が、第1のコンピュータデバイス502のオペレーティングシステム5022上で作動する。仮想化層ハイパーバイザ50221は、第1のコンピュータデバイス502の仮想マシン(第1の仮想マシン50213など)を管理する。第1の仮想スイッチ50222は、ハイパーバイザ50221により管理される仮想マシン間のネットワーク接続機能を提供し、仮想マシンと物理ネットワークとの間のネットワーク接続機能を提供する。仮想負荷バランシング代行ユニット50111は、仮想化層ハイパーバイザ50221を用いることによって、第1のコンピュータデバイス502の第1の負荷バランシング仮想マシン50212に対する構成および管理を実行する。第2のコンピュータデバイス501は、コンピュータシステムにおいてクラウド管理プラットフォームとして用いられ、仮想化管理のために用いられる仮想化層ハイパーバイザ50121は、第2のコンピュータデバイス501のオペレーティングシステム5012上で作動する。第2のコンピュータデバイス501は、仮想マシン管理ユニット50112および仮想負荷バランシング管理ユニット50111をさらに含む。仮想マシン管理ユニット50112は、第2のコンピュータデバイス502の仮想マシンに対する構成および管理を実装する。仮想負荷バランシング管理ユニット50111は、ユーザにより送られた、負荷バランシング仮想マシンまたは仮想マシンを生成するための構成情報を受信し、仮想負荷バランシングデータデバイス50114に、当該関連構成情報を記憶し、負荷バランシング仮想マシンを生成するための構成情報を記憶するよう構成される。第1のコンピュータデバイス502は、第1の仮想負荷バランシング代行ユニット50211をさらに含む。
仮想負荷バランシング管理ユニット50111は、第1の負荷バランシング仮想マシン50212を生成するための構成情報を受信し、第1の負荷バランシング仮想マシン50212を生成するための構成情報を、第1の仮想負荷バランシング代行ユニット50211へ送信するよう構成される。
第1の仮想負荷バランシング代行ユニット50211は、第1の負荷バランシング仮想マシン50212を生成するための構成情報を受信し、仮想マシン管理ユニットに、第1の負荷バランシング仮想マシン50212を生成するための構成情報に従って、第1の負荷バランシング仮想マシン50212を生成するように命令するよう構成される。
第1の仮想負荷バランシング代行ユニット50211は、第1の負荷バランシング仮想マシン50212を生成するユーザが、(第1の仮想マシン50213などの)第1の仮想マシンを第1のコンピュータデバイス502上で生成したとき、仮想マシン管理ユニット50112に、第1の負荷バランシング仮想マシン50212を生成するように命令してよい。第1の負荷バランシング仮想マシン50212を生成するユーザにより第1のコンピュータデバイス502上で生成された最後の仮想マシンが削除されたとき、第1の仮想負荷バランシング代行ユニット50211は、仮想マシン管理ユニット50112に、第1の負荷バランシング仮想マシン50212を削除するように命令する。このように、第1のコンピュータデバイス502におけるリソースが節約でき、負荷バランシングサービスが必要とされないときの負荷バランシング仮想マシンの生成によって引き起こされるハードウェアリソース浪費が回避できる。具体的には、第1の仮想負荷バランシング代行ユニット50211は、図2Bにおける仮想負荷バランシング代行ユニット20211の実装方式に関連して実装されてよい。詳細は、再び説明されない。
この実施形態において、第1の仮想負荷バランシング代行ユニット50211は、仮想マシン管理ユニット50112に、第1の負荷バランシング仮想マシン50212のための第1の仮想ネットワークインターフェースカードを構成して第1の仮想ネットワークインターフェースカードと第1の仮想スイッチ50222との間の接続を確立するように、命令するようさらに構成される。
仮想マシン管理ユニット50112は、第1の仮想スイッチ50222のネットワーク識別子を構成することによって、仮想ネットワークインターフェースカードと、第1の仮想スイッチ50222との間の接続を確立し得る。例えば、第1の仮想スイッチ50222は、それらのネットワーク識別子が100である3つのネットワークインターフェースを有する。第1の負荷バランシング仮想マシン50212および第1の仮想マシン50213の仮想ネットワークインターフェースカードが、それらのネットワーク識別子が100であるインターフェースを有するとき、第1の仮想マシン50213は、そのネットワーク識別子が100であるインターフェース、およびそれらのネットワーク識別子が100である、負荷バランシング仮想マシン20212のインターフェースを用いることによって、通信してよい。仮想マシン管理ユニット50112は、第1の仮想負荷バランシング代行ユニット50211または仮想負荷バランシング管理ユニット50111の命令に従って、第1の仮想スイッチ50222のためのネットワーク識別子を構成してよい。
本発明のこの実施形態において、第1の仮想マシン50213は、第1の負荷バランシング仮想マシン50212の構成情報を生成するユーザにより生成される仮想マシンである。仮想負荷バランシング管理ユニット50111は、第1の仮想マシン50213を生成するための構成情報を受信し、第1の仮想マシン50213が、ユーザにより第1のコンピュータデバイス502上で生成された第1の仮想マシンであると判断されたとき、第1の仮想マシン50213を生成するための情報を、第1の仮想負荷バランシング代行ユニット50211に通知する。仮想負荷バランシング管理ユニットにより送信された、第1の仮想マシン50213を生成するための通知を受信したとき、第1の仮想負荷バランシング代行ユニット50211は、仮想マシン管理ユニット50112に、第1の負荷バランシング仮想マシン50212を生成するように命令する。このように、コンピュータデバイス502におけるリソースが節約でき、負荷バランシングサービスが必要とされないときの負荷バランシング仮想マシンの生成によって引き起こされるハードウェアリソースの占有および浪費が回避できる。同様に、第1の負荷バランシング仮想マシン50212の構成情報を生成するユーザにより生成された、コンピュータデバイス502の最後の仮想マシンが削除されたとき、仮想負荷バランシング管理ユニット50111は、第1の仮想負荷バランシング代行ユニット50211に通知し、第1の仮想負荷バランシング代行ユニット50211は、仮想マシン管理ユニット50112に、第1の負荷バランシング仮想マシン50212を削除するように命令する。このように、コンピュータデバイス502におけるリソースも節約でき、負荷バランシングサービスが必要とされないときの負荷バランシング仮想マシンによって引き起こされるハードウェアリソースの占有および浪費が、回避できる。
先述において、仮想負荷バランシング管理ユニット50111は、第1の仮想負荷バランシング代行ユニット50211に、仮想マシン管理ユニット50112に第1の負荷バランシング仮想マシン50212を生成または削除するように命令するように、命令する。具体的な実装の間に、仮想負荷バランシング管理ユニット50111は、仮想マシン管理ユニット50112に、第1の負荷バランシング仮想マシン50212を生成または削除するように命令してよい。詳細は、説明されない。
任意で、第1のコンピュータデバイス502は、第2の仮想マシン50214をさらに含む。第2の仮想マシン50214は、第1の仮想マシン50213のサービスパケットを処理する能力を有する。第1の負荷バランシング仮想マシン50212が、負荷バランシング方式で、第2の仮想マシン50214が第1の仮想マシン50213のサービスパケットを処理すると判断したとき、第2の仮想マシン50214は、第1の負荷バランシング仮想マシン50212により転送されたサービスパケットを受信し、サービスパケットの処理結果を第1の負荷バランシング仮想マシン50212へ送信する。第1の負荷バランシング仮想マシン50212は、第1の仮想スイッチ50222を用いることによって、第2の仮想マシン50214によるサービスパケットの処理結果を、第1の仮想マシン50213へ送信する。
第1の負荷バランシング仮想マシン50212は、処理のために、ある方式で、例えば、負荷バランシングアルゴリズムを用いることによって、第1の仮想マシン50213のサービスパケットを、バックエンドサーバ(第2の仮想マシン50214)に転送し、バックエンドサーバの処理結果は、第1の仮想マシン50213へ送信される。従って、以下の目的が達成される。コンピュータデバイス502において、コンピュータデバイス502上で生成される負荷バランシング仮想マシンは、コンピュータデバイス502のデバイスに対して負荷バランシングサービスを実装する。負荷バランシング処理効率が向上する。
本発明のこの実施形態における第1コンピュータシステムは、第3のコンピュータデバイスをさらに含んでよい。図7Bに示されているように、第3のコンピュータデバイス503は、コンピュータデバイス502と同様であり、第2の仮想負荷バランシング代行ユニット50311と、第2の仮想スイッチ50322と、第3の仮想マシン50313とを有する。
第2の仮想負荷バランシング代行ユニット50311は、仮想負荷バランシング管理ユニット50111により送信された、第2の負荷バランシング仮想マシン50312を生成するための構成情報を受信し、仮想マシン管理ユニット50112に、第2の負荷バランシング仮想マシン50312を生成するための構成情報に基づいて、第2の負荷バランシング仮想マシン50312を生成するように命令し、仮想マシン管理ユニット50112に、第2の負荷バランシング仮想マシン50312のための第2の仮想ネットワークインターフェースカードを構成して第2の仮想ネットワークインターフェースカードと第2の仮想スイッチ50322との間の接続を確立するように、命令するよう構成される。
第2の仮想スイッチ50322は、第3の仮想マシン50313により起動された第2のサービスパケットを受信し、第2のサービスパケットに対して負荷バランシング処理を実行する必要があるとき、第2のサービスパケットを第2の負荷バランシング仮想マシン50312のみに転送するよう構成される。
第2の負荷バランシング仮想マシン50312は、第2の仮想スイッチ50322により転送された第2のサービスパケットを受信し、負荷バランシング方式で第2のサービスパケットを転送するよう構成される。
それに対応して、仮想マシン管理ユニット50112は、第1の負荷バランシング仮想マシン50212のための第1のIPアドレスおよび第1のMACアドレスを構成してよく、第2の負荷バランシング仮想マシンのための第2のIPアドレスおよび第2のMACアドレスを構成してよい。第1のIPアドレスは、第2のIPアドレスと同じであってよく、または第1のMACアドレスは、第2のMACアドレスと同じであってよい。このように、コンピュータデバイスを含むネットワークにおけるIPアドレスリソースまたはMACアドレスリソースが節約でき、IPアドレスリソースまたはMACアドレスリソースの利用率が増加できる。
図5、図6、図7A、および図7Bに示されている実施形態は、図2Aおよび図2Bにおける具体的な実装方式に関連して実装されてよい。詳細は、再び説明されない。
任意で、本発明の実施形態は、(図2Bにおけるコンピュータデバイス202、または図7Bにおけるコンピュータデバイス502などの)第1のコンピュータデバイスと、(図2Aにおけるコンピュータデバイス201、または図7Aにおけるコンピュータデバイス501などの)第2のコンピュータデバイスと、(図2Bにおけるコンピュータデバイス203、または図7Bにおけるコンピュータデバイス503などの)第3のコンピュータデバイスとを備える第2種のコンピュータシステムをさらに提供する。第1のコンピュータデバイス、第2のコンピュータデバイス、および第3のコンピュータデバイスはそれぞれ、中央処理装置CPUと、メモリと、ストレージ装置とを有する。第2のコンピュータデバイスは、第1のコンピュータデバイスおよび第3のコンピュータデバイスの仮想マシンに対する構成および管理を実行する。第1のコンピュータデバイスは、第1の仮想スイッチを含む。第3のコンピュータデバイスは、第2の仮想スイッチを含む。
第2のコンピュータデバイスは、負荷バランシング仮想マシンを第1のコンピュータデバイス上で生成するための構成情報を受信し、第1の負荷バランシング仮想マシンを第1のコンピュータデバイス上で生成し、第1の負荷バランシング仮想マシンと第1の仮想スイッチとの間の接続を確立し、かつ、負荷バランシング仮想マシンを第3のコンピュータデバイス上で生成するための構成情報を受信し、第2の負荷バランシング仮想マシンを第3のコンピュータデバイス上で生成し、第2の負荷バランシング仮想マシンと第2の仮想スイッチとの間の接続を確立するよう構成される。
第1の仮想スイッチは、第1のコンピュータデバイスの第1の仮想マシンにより送信された第1のサービスパケットを受信し、第1のサービスパケットに対して負荷バランシング処理を実行する必要があるとき、第1のサービスパケットを第1の負荷バランシング仮想マシンのみに転送するよう構成される。
第2の仮想スイッチは、第3のコンピュータデバイスの第2の仮想マシンにより送信された第2のサービスパケットを受信し、第2のサービスパケットに対して負荷バランシング処理を実行する必要があるとき、第2のサービスパケットを第2の負荷バランシング仮想マシンのみに転送するよう構成される。
第2のコンピュータシステムは、第1のコンピュータデバイスと、第2のコンピュータデバイスと、第3のコンピュータデバイスとを備える。第2のコンピュータデバイスは別々に、第1の負荷バランシング仮想マシンを第1のコンピュータデバイス上で生成し、第2の負荷バランシング仮想マシンを第3のコンピュータデバイス上で生成し、これにより、各コンピュータデバイスは、コンピュータデバイスに対して負荷バランシングサービスを処理する負荷バランシング仮想マシンを有し、各コンピュータデバイスの仮想マシンにより送信されるサービスパケットの負荷バランシング処理は、コンピュータデバイスの負荷バランシング仮想マシンのみに対して実行される。このように、複数のコンピュータデバイス上の全てのサービスパケットが1つの負荷バランシングノードにより処理されるような場合は存在せず、それにより、集中負荷バランシングの輻輳によって引き起こされる処理遅延を回避する。加えて、コンピュータデバイスが障害を発生したとき、コンピュータデバイスの仮想マシンは、それに応じてオフラインとなり、負荷バランシングの要求はこれ以上、発生しない。従って、単一のコンピュータデバイスの障害が負荷バランシング仮想マシンの障害を引き起こしたとき、別のコンピュータデバイスの負荷バランシング仮想マシンは影響を受けず、負荷バランシング仮想マシンの障害によるアクティブ/スタンバイスイッチオーバによって引き起こされるサービス中断も存在しない。
第2のコンピュータシステムにおいて、第1の仮想スイッチが、第1のサービスパケットを第1の負荷バランシング仮想マシンのみに転送することは、第1の仮想スイッチが、第1の負荷バランシング仮想マシンのMACアドレスを、第1の仮想マシンへ送信し、これにより、第1の仮想マシンが、第1の負荷バランシング仮想マシンの取得されたMACアドレスに基づいて、サービスパケットを送信し、第1の仮想スイッチが、サービスパケットを第1の負荷バランシング仮想マシンに転送すること、もしくは、第1の負荷バランシング仮想マシンが、第1の負荷バランシング仮想マシンのMACアドレスを第1の仮想マシンへ送信し、これにより、第1の仮想マシンが、第1の負荷バランシング仮想マシンのMACアドレスに基づいて、サービスパケットを送信し、第1の仮想スイッチが、サービスパケットを第1の負荷バランシング仮想マシンに転送すること、または、第1の仮想マシンが、第1の負荷バランシング仮想マシンの予め構成されたMACアドレスに基づいて、サービスパケットを送信し、第1の仮想スイッチが、サービスパケットを第1の負荷バランシング仮想マシンに転送することを含む。
それに対応して、第1の仮想スイッチが、第1の負荷バランシング仮想マシンのMACアドレスを第1の仮想マシンへ送信することは、第1の仮想スイッチが、第1の仮想マシンにより送信された制御パケットを受信し、制御応答パケットを第1の仮想マシンに返すことを含み、ここで、制御応答パケットは、第1の負荷バランシング仮想マシンのMACアドレスを含む。制御パケットは、ARPパケット、またはICMPv6パケットであってよい。
任意で、第1のコンピュータデバイスは、第2の仮想マシンをさらに含み、第2の仮想マシンは、第1の仮想マシンのサービスパケットを処理する能力を有する。
第1の負荷バランシング仮想マシンが、負荷バランシング方式で、第2の仮想マシンが第1の仮想マシンのサービスパケットを処理すると判断したとき、第2の仮想マシンは、第1の負荷バランシング仮想マシンにより転送されたサービスパケットを受信し、サービスパケットの処理結果を、第1の負荷バランシング仮想マシンへ送信する。
第1の負荷バランシング仮想マシンは、第1の仮想スイッチを用いることによって、第2の仮想マシンによるサービスパケットの処理結果を、第1の仮想マシンへ送信するようさらに構成される。
本発明のこの実施形態において、第1の負荷バランシング仮想マシンのIPアドレスは、第2の負荷バランシング仮想マシンのIPアドレスと同じであり、または、第1の負荷バランシング仮想マシンのMACアドレスは、第2の負荷バランシング仮想マシンのMACアドレスと同じである。このように、第2のコンピュータシステムにおいてIPアドレスリソースまたはMACアドレスリソースが節約でき、リソース利用率が増加できる。
図8を参照すると、図8は、本発明の実施形態に係る負荷バランシング方法の概略フローチャートである。図8に示されているように、方法は、以下の段階を備える。
段階800:第2のコンピュータデバイスが、負荷バランシング仮想マシンを第1のコンピュータデバイス上で生成するための構成情報を受信する段階であって、第1のコンピュータデバイスは、中央処理装置CPUと、メモリと、ストレージ装置とを有し、第1のコンピュータデバイスは、第1の仮想マシンと仮想スイッチをさらに有する、段階である。
段階802:第2のコンピュータデバイスが、構成情報に従って、負荷バランシング仮想マシンを第1のコンピュータデバイス上で生成し、第1のコンピュータデバイスの負荷バランシング仮想マシンと仮想スイッチとの間の接続を確立する段階である。
段階804:仮想スイッチが、第1の仮想マシンにより送信されたサービスパケットを受信し、サービスパケットに対して負荷バランシング処理を実行する必要があるとき、サービスパケットを、負荷バランシング仮想マシンのみに転送する段階である。
段階806:負荷バランシング仮想マシンが、仮想スイッチにより転送されたサービスパケットを受信し、負荷バランシング方式でサービスパケットを転送する段階である。
先述の方法において、第1のコンピュータデバイスは、負荷バランシング仮想マシンを有する。第1のコンピュータデバイスの仮想マシンにより起動されたサービスに対して負荷バランシング処理を実行する必要があるとき、関連するサービスパケットが、第1のコンピュータデバイスの負荷バランシング仮想マシンのみへ送信され、これにより、負荷バランシング処理を実行する。関連するサービスパケットの負荷バランシングがコンピュータデバイスにおいて実装されるので、複数のコンピュータデバイス上の全てのサービスパケットが1つの負荷バランシングノードにより処理されるような場合は存在せず、それにより、集中負荷バランシングの輻輳によって引き起こされる処理遅延を回避する。加えて、第1のコンピュータデバイスが障害を発生したとき、第1のコンピュータデバイスの仮想マシンは、それに応じてオフラインとなり、負荷バランシングの要求はこれ以上、発生しない。従って、単一のコンピュータデバイスの障害が負荷バランシング仮想マシンの障害を引き起こしたとき、別のコンピュータデバイスの負荷バランシング仮想マシンは影響を受けず、負荷バランシング仮想マシンの障害によるアクティブ/スタンバイスイッチオーバによって引き起こされるサービス中断も存在しない。
任意で、先述の段階804において、仮想スイッチがサービスパケットを負荷バランシング仮想マシンのみに転送する段階は、仮想スイッチが、負荷バランシング仮想マシンのMACアドレスを第1の仮想マシンへ送信する段階であって、これにより、第1の仮想マシンが、負荷バランシング仮想マシンの取得されたMACアドレスに基づいてサービスパケットを送信し、仮想スイッチが、サービスパケットを負荷バランシング仮想マシンに転送する、段階、もしくは、負荷バランシング仮想マシンが、負荷バランシング仮想マシンのMACアドレスを、第1の仮想マシンへ送信する段階であって、これにより、第1の仮想マシンが、負荷バランシング仮想マシンの取得されたMACアドレスに基づいてサービスパケットを送信し、仮想スイッチが、サービスパケットを負荷バランシング仮想マシンに転送する、段階、または、第1の仮想マシンが、負荷バランシング仮想マシンの予め構成されたMACアドレスに基づいて、サービスパケットを送信し、仮想スイッチが、サービスパケットを負荷バランシング仮想マシンに転送する段階を含む。
仮想スイッチが、負荷バランシング仮想マシンのMACアドレスを第1の仮想マシンへ送信する段階は、仮想スイッチが、第1の仮想マシンにより送信された制御パケットを受信し、制御応答パケットを第1の仮想マシンに返す段階であって、制御応答パケットは負荷バランシング仮想マシンのMACアドレスを含む、段階を含んでよい。制御パケットは、ARPパケット、またはICMPv6パケットであってよい。
第2のコンピュータデバイスが、構成情報に従って、負荷バランシング仮想マシンを第1のコンピュータデバイス上で生成する前に、方法は、第2のコンピュータデバイスが、構成情報を第1のコンピュータデバイスへ送信する段階と、第1のコンピュータデバイスが、負荷バランシング仮想マシンを生成するための構成情報を受信し、第2のコンピュータデバイスに、負荷バランシング仮想マシンを生成するように命令する段階とをさらに備える。
本発明のこの実施形態において、第2のコンピュータデバイスは、第2の仮想マシンをさらに含み、第2の仮想マシンは、第1の仮想マシンのサービスパケットを処理する能力を有し、方法は、負荷バランシング仮想マシンが、負荷バランシングアルゴリズムを用いることによって、第2の仮想マシンが第1の仮想マシンのサービスパケットを処理すると判断したとき、第2の仮想マシンが、負荷バランシング仮想マシンにより転送されたサービスパケットを受信し、サービスパケットの処理結果を負荷バランシング仮想マシンへ送信する段階と、負荷バランシング仮想マシンが、仮想スイッチを用いることによって、第2の仮想マシンによるサービスパケットの処理結果を第1の仮想マシンへ送信する段階とをさらに備える。
第2の仮想マシンおよび第1の仮想マシンは、1つのコンピュータデバイス上に位置する。このように、コンピュータデバイス間のサービス処理によって引き起こされる帯域幅の占有が減少でき、サービス処理効率を向上できる。
本発明の実施形態における方法の実施形態は、図2Aおよび図2Bに示されている実施形態の実装方式に関連して実装されてよい。詳細は、再び説明されない。
以下では、図2Aおよび図2Bに示されている応用シナリオに関連して、以下の例を用いることによって、本発明のこの実施形態における負荷バランシング方法の実装方式を詳細に説明する。ユーザが、コンピュータデバイス202の仮想マシン20213を申請し、仮想マシン20213は、具体的なサービス(例えば、映像サービスにアクセスすること)を実行するために用いられ、サービスは、コンピュータデバイス202の仮想マシン20214、またはコンピュータデバイス203の仮想マシン20314などのバックエンドサーバにより処理されてよく、負荷バランシングは、仮想マシン20214と仮想マシン20314との間で、仮想マシン20213により起動されたサービスに対して実行される必要がある。
図9は、実装プロセスの概略フローチャートである。図9に示されている実装プロセスは、負荷バランシング機能を有する仮想マシンが負荷バランサとして用いられる実装方式を依然として用いることによって、説明されることに注意すべきである。負荷バランサが、コンテナ、ネームスペース、または同様のものを用いることによって実装される実装方式は、仮想マシンが負荷バランサとして用いられる以下の実装方式に関連して実装されてよい。
図9に示されているように、本発明の実施形態において負荷バランシングサービスを実装するための方法は、以下の段階を備える。
段階900:コンピュータデバイス201が、負荷バランシング仮想マシンをコンピュータデバイス202上で生成するための構成情報を取得する段階である。
段階902:コンピュータデバイス201が、負荷バランシング仮想マシンの取得された構成情報に従って、負荷バランシング仮想マシン20212をコンピュータデバイス202上で生成する段階である。
段階904:負荷バランシングサービスの転送モードをコンピュータデバイス202に構成し、これにより、仮想マシン20213により起動されたサービスが、コンピュータデバイス202上で生成された負荷バランシング仮想マシン20212のみに転送され、これにより、負荷バランシング処理を実行する段階である。
仮想マシン20213により起動されたサービスは、負荷バランシングサービスであり、負荷バランシングサービスは、負荷バランシング処理を実行する必要があるサービスである。
段階906:負荷バランシング仮想マシン20212が、仮想マシン20213により送信されたサービスを受信し、仮想マシン20213により起動されたサービスを処理するように、バックエンドサーバを選択する段階である。
段階908:バックエンドサーバが、仮想マシン20213により起動された、処理されたサービスを仮想マシン20213に返す段階である。
段階900において、コンピュータデバイス201は、例えば、ユーザにより、コンピュータデバイス201上で作動する、クラウド管理プラットフォームに関連するソフトウェアを用いることによって送られる負荷バランシング仮想マシンを生成するための構成情報、または、コンピュータデバイス201に予め記憶された負荷バランシング仮想マシンの構成情報などの、クラウド管理プラットフォームとして用いられ、生成される必要がある負荷バランシング仮想マシンの構成情報を取得できる。加えて、コンピュータデバイス201は、クラウド管理プラットフォームとして用いられ、コンピュータデバイス202の仮想マシン20213などの別のサービス仮想マシンの構成情報をさらに取得してよい。コンピュータデバイス201がサービス仮想マシンの構成情報を取得する方式はまた、コンピュータデバイス201に予め記憶された構成情報、またはユーザにより、クラウド管理プラットフォームに関連するソフトウェアを用いることによって送られる構成情報を受信することを含む。
ユーザが、本発明のこの実施形態におけるクラウド管理プラットフォームを用いることによって、コンピュータデバイス202の仮想マシン20213を申請するので、負荷バランシング処理は、仮想マシン20213により起動されたサービス要求に対して実行される必要がある。集中負荷バランシングノードによって引き起こされる輻輳などの従来技術の欠点を回避するために、本発明のこの実施形態において、負荷バランシング仮想マシン20212は、コンピュータデバイス202上で生成され、負荷バランシング仮想マシン20212は、仮想マシン20213により起動された、負荷バランシング処理を実行する必要があるサービス要求を処理する。従って、段階900において、コンピュータデバイス201は、負荷バランシング仮想マシンをコンピュータデバイス202上で生成するための構成情報、すなわち、負荷バランシング仮想マシン20212の構成情報を取得する必要があり、負荷バランシング仮想マシンの取得された構成情報に従って、負荷バランシング仮想マシンをコンピュータデバイス202に構成する。
本発明のこの実施形態において、負荷バランシング仮想マシンの構成情報は、負荷バランシング仮想マシン20212の識別子、または負荷バランシング仮想マシン20212のVIPアドレスを含むが、これらに限定されるものではない。負荷バランシング仮想マシン20212のVIPは、負荷バランシングサービスを示す。例えば、負荷バランシング仮想マシン20212のIPアドレスが、VIPとして構成されるとき、負荷バランシング仮想マシン20212は、負荷バランシングサービスを処理するノードとして用いられることができ、アドレス指定されることができる。任意で、本発明のこの実施形態において、負荷バランシング仮想マシンの構成情報は、負荷バランシング仮想マシン20212または同様のものに関連するバックエンドサーバについての情報をさらに含む。
任意で、構成情報は、仮想マシンパラメータ情報をさらに含んでよい。仮想マシンパラメータ情報は、仮想中央処理装置の数量、仮想メモリのサイズ、負荷バランシング仮想マシン20212が位置する論理ネットワークなどの情報を含むが、これらに限定されるものではない。仮想マシンパラメータ情報は、予め構成されたパラメータリストであってよく、異なるパラメータリストは、異なる要求に従って選択されてよい。パラメータリストは、ユーザが構成情報を送る場合に指定されてよく、または、コンピュータデバイス201により、予め設定されたポリシーに従って、記憶された構成情報リストから取得されてよい。本発明のこの実施形態は、負荷バランシング仮想マシン20212の仮想マシンパラメータ情報を取得する方式に対して限定を課さない。
段階902において、コンピュータデバイス201は、負荷バランシング仮想マシンの取得された構成情報に従って、負荷バランシング仮想マシン20212を生成する。
コンピュータデバイス201は、クラウド管理プラットフォームとして用いられ、通常の仮想マシンをコンピュータデバイス202上で生成することができ、負荷バランシング仮想マシンを生成することもできる。コンピュータデバイス201は、負荷バランシング仮想マシン20212の取得された構成情報に従って、負荷バランシング仮想マシン20212をコンピュータデバイス202上で生成することができる。
任意で、方法は、コンピュータデバイス201が仮想マシン20213をコンピュータデバイス202上で生成するという段階901をさらに備えてよい。仮想マシン20213は、ユーザにより生成されるサービス仮想マシンであり、仮想マシン20213は、サービスを起動する仮想マシンである。仮想マシン20213により起動されるサービスは、負荷バランシングサービスを含み、すなわち、仮想マシン20213により起動される負荷バランシングサービスは、負荷バランシング処理を実行する必要があるサービスである。
負荷バランシング仮想マシンを生成するための構成情報を送るユーザが、第1の仮想マシンをコンピュータデバイス202上で生成したとき、例えば、負荷バランシングサービスを起動する第1の仮想マシン20213を生成したとき、コンピュータデバイス201は、負荷バランシング仮想マシン20212を生成する。ユーザにより生成された最後の仮想マシンが削除されたとき、例えば、負荷バランシングサービスを起動する最後の仮想マシン20213が削除されたとき、コンピュータデバイス201は、負荷バランシング仮想マシン20212を削除する。このように、負荷バランシング仮想マシン20212は、ユーザが負荷バランシングサービスを起動する仮想マシンを生成した場合のみに生成され、これにより、ユーザが仮想マシンを生成しないときのコンピュータデバイス202におけるリソースの占有が、負荷バランシング仮想マシンの生成によって引き起こされるといった問題が回避でき、コンピュータデバイス202のリソース利用率が増加できる。
コンピュータデバイス201は、ユーザの識別情報などのユーザについての情報に従って、生成された仮想マシンが、仮想負荷バランシングサービスを構成しているユーザにより生成された第1のサービス仮想マシンであるかを判断してよい。
同様に、ユーザについての情報に従って、仮想負荷バランシングサービスを構成しているユーザにより生成された最後のサービス仮想マシンが削除されたかも判断されてよい。詳細は、説明されない。
段階902において、コンピュータデバイス201が、負荷バランシング仮想マシンの取得された構成情報に従って、負荷バランシング仮想マシン20212を生成する段階は、コンピュータデバイス201が、負荷バランシング仮想マシンの構成情報におけるネットワーク情報に従って、負荷バランシング仮想マシン20212のための仮想ネットワークインターフェースカードを構成する段階をさらに含む。
段階904において、コンピュータデバイス201は、負荷バランシングサービスの転送モードをコンピュータデバイス202に構成してよい。転送モードにおいて、サービスを起動する、コンピュータデバイス202の仮想マシン20213などの仮想マシンにより起動された負荷バランシングサービスのサービスパケットは、負荷バランシング仮想マシン20212に指向的に転送される。
コンピュータデバイス201は、コンピュータデバイス202の仮想スイッチの転送モードを構成することによって、負荷バランシングサービスの転送モードをコンピュータデバイス202に構成してよい。コンピュータデバイス202の仮想スイッチは、仮想スイッチ20222である。仮想スイッチ20222の構成される転送モードにおいて、指向性転送処理は、負荷バランシング処理を実行する必要がある、仮想マシン20213により送信されたサービスパケットに対して実行され、負荷バランシング処理を実行する必要がある、仮想マシン20213により送信されたサービスパケットは、コンピュータデバイス202の負荷バランシング仮想マシン20212のみへ送信される。任意で、仮想スイッチ20222の転送モードは、ARPまたはNDPキャッシュモードであってよく、すなわち、仮想スイッチ20222は、ARPまたはNDPキャッシュモードにおいて、サービスパケットを指向的に転送する。
仮想マシン20213が負荷バランシングサービスのサービスパケットを起動するとき、仮想マシン20213は、負荷バランシングサービスの転送モードに従って、負荷バランシングサービスのサービスパケットを負荷バランシング仮想マシン20212へ送信する。具体的には、負荷バランシング処理を実行する必要がある負荷バランシングサービスを起動するとき、仮想マシン20213はまず、VIPが宛先IPとして用いられる制御パケットを送信してよい。制御パケットは、負荷バランシングサービスのブロードキャストパケットであってよい。通常、VIPが宛先IPとして用いられる、仮想マシン20213により起動された制御パケットは、それらのIPアドレスがVIPである全ての負荷バランシングノード(負荷バランサなど)に転送される。しかしながら、本発明のこの実施形態において、コンピュータデバイス201が、負荷バランシングサービスの転送モードをコンピュータデバイス202に構成するので、仮想マシン20213により送信された制御パケットを受信した後に、コンピュータデバイス202の仮想スイッチ20222は、負荷バランシング仮想マシン20212のMACアドレスを、仮想マシン20213のみへ送信する。仮想マシン20213は、負荷バランシング仮想マシン20212の取得されたMACアドレスに従って、負荷バランシングサービスのサービスパケットを負荷バランシング仮想マシン20212へ送信する。従って、仮想マシン20213により起動されたサービスは、コンピュータデバイス202上で生成された負荷バランシング仮想マシン20212のみに転送され、これにより、負荷バランシング処理を実行する。
任意で、仮想スイッチ20213が、サービスパケットを送信する前に仮想スイッチ20222へ送信する制御パケットは、ARPパケット、またはICMPパケットであってよい。
本発明のこの実施形態において、ARPキャッシュ技術の実装方式は、例として、OpenStackをサポートするクラウドプラットフォームを用いることによって説明される。負荷バランシング処理が実行されたサービスを初めて起動するとき、仮想マシン20213はまず、制御パケットを仮想スイッチ20222へ送信し、例えば、まず、ARP要求パケットを仮想スイッチ20222へ送信し、仮想スイッチ20222は、ARPキャッシュを実行する。仮想マシン20213が、負荷バランシング処理が実行されたサービスを初めて起動するとき、仮想マシン20213は、負荷バランシングサービスを処理する負荷バランシング仮想マシンのMACアドレスを認識しておらず、負荷バランシングサービスのVIPアドレスのみを認識する。従って、負荷バランシング処理が実行されたサービスを初めて起動するとき、仮想マシン20213はまず、ARP要求を送信し、これにより、負荷バランシングサービスを処理する負荷バランシング仮想マシンのMACアドレスを取得する。
ARP要求パケットの宛先IPは、VIPである。VIPは、負荷バランシング仮想マシンによりアクセスされることができるIPアドレスである。ARP要求パケットの宛先MACアドレスは、汎用負荷バランシング仮想マシンのMACアドレスであってよい。MACは、具体的な負荷バランシング仮想マシンのMACアドレスではなく、宛先MACアドレスは空きであってよい。ARPキャッシュ技術は、フローテーブルを用いることによって実装される。フローテーブル技術は通常、マッチング条件および動作といった2つの部分を含む。ARPキャッシュフローテーブルのマッチング条件は、以下の通りである。プロトコル種別がARPであり、ARP宛先プロトコルアドレスが、VIPであり、VIPは、負荷バランシング仮想マシンによりアクセスされることができるIPアドレスであり、ARP動作種別が、ARP要求である。仮想マシン20213により送信されたARP要求に対してARPキャッシュを実行するとき、仮想スイッチ20222は、負荷バランシング仮想マシン20212のMACアドレスを仮想マシン20213に返す。
仮想スイッチ20222がARP返答パケットを仮想マシン20213へ送信した後に、仮想マシン20213は、負荷バランシング処理を実行する必要があるサービスパケットを送信し、サービスパケットのIPアドレスが、VIPアドレスであり、サービスパケットのMACアドレスが、仮想スイッチ20222のARP返答から取得される、負荷バランシング仮想マシン20212のMACである。仮想マシン20213は、サービスパケットを仮想スイッチ20222へ送信する。仮想マシン20213により送信されたサービスパケットを受信した後に、仮想スイッチ20222は、サービスパケットにおいて保持されているMACアドレスに従って、サービスパケットを負荷バランシング仮想マシン20212へ送信する。
仮想スイッチ20222は、仮想マシン20213により送信されたサービスパケットを受信し、サービスパケットのIPアドレスおよびMACアドレスに従って、サービスパケットを負荷バランシング仮想マシン20212へ送信する。別のコンピュータデバイス(コンピュータデバイス203など)の負荷バランシング仮想マシン(負荷バランシング仮想マシン20312など)は、仮想マシン20213のサービスパケットを受信せず、負荷バランシング処理を実行する必要がある、仮想マシン20213により送信されたサービスパケットを処理しない。従って、以下の目的が達成される。各コンピュータデバイスの仮想マシンのサービスパケットに対して負荷バランシング処理を実行する必要があるとき、サービスパケットは、コンピュータデバイスの負荷バランシング仮想マシンのみに対して実装される。
任意選択の実装方式において、コンピュータデバイス201は、以下の方式で、負荷バランシングサービスの転送モードをコンピュータデバイス202に構成してよい。
コンピュータデバイス201は、負荷バランシング仮想マシン20212に、負荷バランシング仮想マシン20212のMACアドレスを、サービスを起動する仮想マシン(仮想マシン20213など)へ送信するように、命令する、または、コンピュータデバイス201は、サービスを起動する仮想マシン(仮想マシン20213など)の負荷バランシング仮想マシン20212のMACアドレスを構成する。
コンピュータデバイス201が、負荷バランシング仮想マシン20212に、負荷バランシング仮想マシン20212のMACアドレスを、サービスを起動する仮想マシン(仮想マシン20213など)へ送信するように、命令する場合、サービスを起動する仮想マシン(仮想マシン20213など)は、負荷バランシング仮想マシン20212の受信されたMACアドレスを、負荷バランシングサービスが起動されるときに用いられる宛先MACアドレスとして用いる。コンピュータデバイス201が、負荷バランシング仮想マシン20212のMACアドレスを、サービスを起動する仮想マシン(仮想マシン20213など)に構成するとき、負荷バランシング仮想マシン20212の構成されるMACアドレスは、サービスを起動する仮想マシン(仮想マシン20213など)が負荷バランシングサービスを送信する場合に用いられる宛先MACアドレスである。
段階906において、負荷バランシング仮想マシン20212が、仮想マシン20213によって送信されたサービスを受信し、仮想マシン20213により起動されたサービスを処理するように、バックエンドサーバを選択する段階は、以下の実装方式の段階を含んでよい。サービスパケットを受信した後に、負荷バランシング仮想マシン20212はまず、サービスパケットにサービスするようにバックエンドサーバがサービスパケットに割り当てられているかを判断し、バックエンドサーバが割り当てられている場合、サービスパケットを、割り当てられているバックエンドサーバへ送信する段階である。バックエンドサーバがまだ割り当てられていない場合、サービスパケットにサービスするように、負荷バランシングアルゴリズムを用いることによってバックエンドサーバを選択する段階である。負荷バランシングアルゴリズムは、ラウンドロビン、重み付きラウンドロビン、ランダムアルゴリズム、リーストコネクション、ソースアドレスハッシュ、または位置に基づく重み付きラウンドロビンを含むが、これらに限定されるものではない。位置に基づく重み付きラウンドロビン方式では、サービスパケットを起動する仮想マシンが位置するコンピュータデバイスのバックエンドサーバは、優先的に選択されてよく、すなわち、コンピュータデバイス202の仮想マシン20214は、仮想マシン20213のサービスを処理するバックエンドサーバとして用いられる。このように、バックエンドサーバによるサービスパケットの処理速度を増加でき、ネットワーク帯域幅を節約できる。もちろん、段階906において、代替的に、負荷バランシング仮想マシン20212は、負荷バランシングアルゴリズムを用いることによって、仮想マシン20213のサービス要求を処理してよく、そして、サービス要求をコンピュータデバイス203の仮想マシン20314へ送信する。仮想マシン20314は、仮想マシン20213のサービスを処理するバックエンドサーバとして用いられ、仮想マシン20213により起動されたサービスを処理する。
図9における段階906の破線は、ある選択的なものを示していることに注意すべきであり、すなわち、負荷バランシング仮想マシン20212は、仮想マシン20213により起動されたサービスを、コンピュータデバイス202のバックエンドサーバ、つまり、仮想マシン20214に転送してよく、または、サービスを、コンピュータデバイス203のバックエンドサーバ、つまり、仮想マシン20314に転送してよい。
段階908において、バックエンドサーバは、以下の2つの方式で、処理されたサービス要求を仮想マシン20213に返してよい。
方式1:仮想マシン20213のサービス要求を処理するバックエンドサーバは、負荷バランシング仮想マシン20212を用いることによって、処理結果を仮想マシン20213に返す方式である。
方式2:仮想マシン20213のサービス要求を処理するバックエンドサーバは、負荷バランシング仮想マシン20212を用いることなく、仮想マシン20213の処理結果を直接返す方式である。
方式1において、仮想マシン20213のサービス要求を、仮想マシン20213のサービス要求を処理するバックエンドサーバに転送する場合、負荷バランシング仮想マシン20212は、サービス要求の(IPアドレス、MACアドレス、および同様のものを含む)ソースアドレスを、負荷バランシング仮想マシン20212のアドレスとして書き込み、宛先アドレスを、仮想マシン20213のサービス要求を処理するバックエンドサーバのアドレスとして書き込む。このように、仮想マシン20213のサービス要求を処理するバックエンドサーバは、サービス要求が受信された場合に保持されているソースアドレスに従って、サービス要求の処理結果を、負荷バランシング仮想マシン20212に返し、そして、負荷バランシング仮想マシン20212は、受信されて処理されたサービス要求を仮想マシン20213に返す。
方式2において、仮想マシン20213のサービス要求を、仮想マシン20213のサービス要求を処理するバックエンドサーバに転送する場合、負荷バランシング仮想マシン20212は、(IPアドレス、MACアドレス、および同様のものを含む)ソースアドレスを、仮想マシン20213のアドレスとして書き込み、宛先アドレスを、仮想マシン20213のサービス要求を処理するバックエンドサーバのアドレスとして書き込む。このように、仮想マシン20213のサービス要求を処理するバックエンドサーバは、サービス要求が受信される場合に保持されているソースアドレスに従って、サービス要求の処理結果を、仮想マシン20213に返す。
図9における段階908の破線は、ある選択的なものを示していることに注意すべきであり、すなわち、負荷バランシング仮想マシン20212が、仮想マシン20213により起動されたサービスを、コンピュータデバイス202のバックエンドサーバ、つまり、段階906における仮想マシン20214に転送する場合、仮想マシン20214は、処理されたサービス要求を仮想マシン20213に返す。負荷バランシング仮想マシン20212が、仮想マシン20213により起動されたサービスを、コンピュータデバイス203のバックエンドサーバ、つまり、段階906における仮想マシン20314に転送する場合、仮想マシン20314は、処理されたサービス要求を仮想マシン20213に返す。
本発明のこの実施形態において、コンピュータデバイス202およびコンピュータデバイス203は、サービスコンピュータデバイスとも称される。コンピュータデバイス202またはコンピュータデバイス203上で、もしくはその両方で作動する仮想マシン、例えば、仮想マシン20213は、サービスを起動する仮想マシンとも称され、当該仮想マシンにより起動されるサービスは、負荷バランシングサービスを含む。
段階900から段階908の実装プロセスは、クラウド管理プラットフォームとして用いられるコンピュータデバイス201が、負荷バランシング仮想マシン20212をコンピュータデバイス202上で生成するという例を用いることによって説明される。コンピュータデバイス201が負荷バランシング仮想マシン20312をコンピュータデバイス203上で生成する処理は、先述の処理と同様であることが、理解され得る。詳細は、再び説明されない。
このように、コンピュータデバイス201は別々に負荷バランシング仮想マシンをコンピュータデバイス202およびコンピュータデバイス203上で生成することができる。各サービスコンピュータデバイス(コンピュータデバイス202およびコンピュータデバイス203など)のサービス仮想マシン(仮想マシン20213または仮想マシン20313など)により起動された負荷バランシングサービスのサービスパケットは、ローカル負荷バランシング仮想マシンに指向的に転送される。すなわち、サービスコンピュータデバイス202のサービス仮想マシン20213により起動された負荷バランシングサービスは、コンピュータデバイス202のローカル負荷バランシング仮想マシン(すなわち、負荷バランシング仮想マシン20212)のみに転送され、これにより、負荷バランシングサービスを実行する。サービスコンピュータデバイス203のサービス仮想マシン20313により起動された負荷バランシングサービスは、コンピュータデバイス203のローカル負荷バランシング仮想マシン(すなわち、負荷バランシング仮想マシン20312)のみに転送され、これにより、負荷バランシングサービスを実行する。
従って、サービスコンピュータデバイス202の負荷バランシング仮想マシン20212のIPアドレスは、サービスコンピュータデバイス203の負荷バランシング仮想マシン20312のIPアドレスと同じであってよい。同様に、サービスコンピュータデバイス202の負荷バランシング仮想マシン20212のMACアドレスは、サービスコンピュータデバイス203の負荷バランシング仮想マシン20312のMACアドレスと同じであってよい。このように、コンピュータデバイスを含むネットワークにおけるIPアドレスリソースおよび/またはMACアドレスリソースを節約できる。
当業者は、本明細書において開示されている実施形態に関連して説明されている例におけるユニットおよび段階は電子ハードウェア、コンピュータソフトウェア、またはこれらの組み合わせにより実装されてよいことを認識し得る。ハードウェアとソフトウェアとの間の互換性を明確に説明するために、先述では、機能に従って各例の構成および段階について一般的に説明している。機能が、ハードウェアまたはソフトウェアのいずれによって実行されるかは、技術的解決手段の特定の用途および設計上の制約条件に依存する。当業者は、それぞれの特定の用途に対して、異なる方法を用いて、説明されている機能を実装してよいが、その実装方式は、本発明の範囲を越えるものとみなされるべきではない。
説明の簡便性および簡潔性の目的のために、先述のシステム、装置、およびユニットの詳細な動作処理は、先述の方法の実施形態における対応する処理を指すことが、当業者により明確に理解され得て、その詳細について、ここでは再び説明されない。
この出願において提供される実施形態において、開示されているシステム、装置、および方法は、他の方式で実装され得ることが理解されるべきである。例えば、説明されている装置の実施形態は単に例である。例えば、ユニットの区分は、論理機能の区分に過ぎず、実際の実装の間においては他の区分であってよい。例えば、複数のユニット、または構成要素は、別のシステムと組み合わされても、またはそれに統合されてもよく、または、いくつかの特徴が、無視されてよく、または実行されなくてよい。加えて、表示されている、または述べられている相互連結、または直接連結、もしくは通信接続は、いくつかのインターフェース、装置またはユニットの間における間接連結または通信接続、または、電気的接続、機械的接続、もしくは他の形態の接続を用いることによって実装されてよい。
別個の部分として説明されているユニットは、物理的に別個のものであってよく、またはそうでなくてもよく、ユニットとして表示されている部分は、物理的なユニットであってよく、またはそうでなくてもよく、1つの場所に位置してよく、または複数のネットワークユニット上に分散されてよい。ユニットの一部、またはその全ては、本発明の実施形態の解決手段の目的を達成するために実際の必要性に応じて選択されてよい。
さらに、本発明の実施形態における機能的なユニットは、1つの処理ユニットに統合されてよく、または、ユニットのそれぞれは、物理的に単独で存在してよく、または、2つまたはそれより多くのユニットは、1つのユニットに統合される。統合されたユニットは、ハードウェアの形態に実装されてよく、または、ソフトウェア機能ユニットの形態に実装されてよい。
統合されたユニットが、ソフトウェア機能ユニットの形態に実装され、独立した製品として、販売されるまたは用いられる場合、当該統合されたユニットは、コンピュータ可読ストレージ媒体に記憶されてよい。そのような理解に基づいて、本発明の技術的解決手段は本質的に、または従来技術に寄与する部分、または技術的解決手段の全てもしくは一部は、ソフトウェア製品の形態に実装されてよい。ソフトウェア製品は、ストレージ媒体に記憶され、本発明の実施形態において説明されている方法の段階の全てまたは一部を実行するように、(パーソナルコンピュータ、サーバ、またはネットワークデバイスであってよい)コンピュータデバイスに命令するための命令を含む。先述のストレージ媒体は、USBフラッシュドライブ、取り外し可能ハードディスク、リードオンリメモリ(ROM、Read−Only Memory)、ランダムアクセスメモリ(RAM、Random Access Memory)、磁気ディスク、または光ディスクなど、プログラムコードを記憶できるあらゆる媒体を含む。
先述の説明は、本発明の具体的な実施形態に過ぎず、本発明の保護範囲を限定することを意図するものではない。当業者により、本発明において開示されている技術的範囲内に容易に想到する任意の変更または置換は、本発明の保護範囲内に含まれるものとする。従って、本発明の保護範囲は、特許請求の範囲の保護範囲に従うものとする。
(項目1)
少なくとも2つのコンピュータデバイスを備えるコンピュータシステムに適用される負荷バランシング方法であって、各コンピュータデバイスは、中央処理装置およびメモリを有し、上記少なくとも2つのコンピュータデバイスは、第1のコンピュータデバイスおよび第2のコンピュータデバイスを含み、上記第1のコンピュータデバイスは、クラウド管理プラットフォームとして用いられ、サービスを起動する仮想マシンが、上記第2のコンピュータデバイス上で作動し、上記サービスは、負荷バランシングサービスであり、
上記第1のコンピュータデバイスが、上記第2のコンピュータデバイス上で生成されるべき負荷バランサの構成情報を取得する段階であって、上記負荷バランサの上記構成情報は、上記負荷バランサの識別子と、上記負荷バランサの仮想IPアドレスVIPとを含み、上記負荷バランサの上記VIPは、上記負荷バランシングサービスを示す、段階と、
上記第1のコンピュータデバイスが、上記構成情報に従って、上記第2のコンピュータデバイス上で上記負荷バランサを生成する段階と、
上記第1のコンピュータデバイスが、上記負荷バランシングサービスの転送モードを上記第2のコンピュータデバイスに構成する段階であって、上記転送モードにおいて、上記サービスを起動する、上記第2のコンピュータデバイスの上記仮想マシンにより起動された上記負荷バランシングサービスのサービスパケットが、上記負荷バランサに指向的に転送される、段階と、
上記サービスを起動する、上記第2のコンピュータデバイスの上記仮想マシンが、上記転送モードに従って、上記サービスパケットを上記負荷バランサへ送信する段階と、
上記サービスパケットを受信した後に、上記第2のコンピュータデバイスの上記負荷バランサが、上記サービスを実行するように、少なくとも1つのバックエンドサーバを選択する段階であって、上記バックエンドサーバは、上記負荷バランシングサービスを実行するために用いられる、段階と
を備える負荷バランシング方法。
(項目2)
上記第1のコンピュータデバイスが、上記負荷バランシングサービスの転送モードを上記第2のコンピュータデバイスに構成する上記段階は、
上記第1のコンピュータデバイスが、上記負荷バランサのMACアドレスを、上記サービスを起動する上記仮想マシンへ送信するように、上記第2のコンピュータデバイス上に配備された仮想スイッチを構成する段階を含み、
上記サービスを起動する、上記第2のコンピュータデバイスの上記仮想マシンが、上記転送モードに従って、上記サービスパケットを上記負荷バランサへ送信する上記段階は、
上記サービスを起動する上記仮想マシンが、上記負荷バランサの上記MACアドレスが宛先アドレスとして用いられる上記サービスパケットを送信し、かつ、上記仮想スイッチが、上記サービスパケットの上記宛先アドレスに従って、上記サービスパケットを上記負荷バランサへ送信する段階とを含む、項目1に記載の方法。
(項目3)
上記サービスを起動する上記仮想マシンが、上記負荷バランサの上記MACアドレスが宛先アドレスとして用いられる上記サービスパケットを上記負荷バランサへ送信する上記段階の前に、上記方法は、
上記サービスを起動する上記仮想マシンが、制御パケットを上記仮想スイッチへ送信する段階であって、上記制御パケットは、上記VIPを保持する、段階と、
上記仮想スイッチが、上記制御パケットの応答メッセージを、上記サービスを起動する上記仮想マシンへ送信する段階であって、上記応答メッセージは、上記負荷バランサの上記MACアドレスを保持する、段階とをさらに備える、項目2に記載の方法。
(項目4)
上記制御パケットは、アドレス解決プロトコルARPパケット、またはインターネット制御メッセージプロトコルICMPパケットである、項目3に記載の方法。
(項目5)
上記第1のコンピュータデバイスが、上記負荷バランシングサービスの転送モードを上記第2のコンピュータデバイスに構成する上記段階は、
上記第1のコンピュータデバイスが、上記負荷バランサに、上記負荷バランサのMACアドレスを、上記サービスを起動する上記仮想マシンへ送信するように、命令する段階、または、
上記第1のコンピュータデバイスが、上記負荷バランサのMACアドレスを、上記サービスを起動する上記仮想マシンに構成する段階を含み、
それに対応して、上記サービスを起動する、上記第2のコンピュータデバイスの上記仮想マシンが、上記転送モードに従って、上記サービスパケットを上記負荷バランサへ送信する上記段階は、
上記サービスを起動する上記仮想マシンが、上記負荷バランサの上記MACアドレスが宛先アドレスとして用いられる上記サービスパケットを送信し、かつ、上記第2のコンピュータデバイス上に配備された仮想スイッチが、上記サービスパケットの上記宛先アドレスに従って、上記サービスパケットを上記負荷バランサへ送信する段階とを含む、項目1に記載の方法。
(項目6)
上記第1のコンピュータデバイスが、上記構成情報に従って、上記負荷バランサを上記第2のコンピュータデバイス上で生成する上記段階は、
上記第1のコンピュータデバイスが、上記負荷バランシングサービスを起動する上記第1の仮想マシンを、上記第2のコンピュータデバイス上で生成した後に、上記負荷バランサを生成する段階を含む、項目1から5のいずれか一項に記載の方法。
(項目7)
上記方法は、上記負荷バランシングサービスを起動する、上記第2のコンピュータデバイス上で生成された最後の仮想マシンが削除された後に、第1のコンピュータデバイスが、上記生成された負荷バランサを削除する段階をさらに備える、項目1から6のいずれか一項に記載の方法。
(項目8)
上記方法は、
上記選択されたバックエンドサーバが、上記サービスの実行結果を、上記サービスを起動する上記仮想マシンに直接返す段階、または、
上記選択されたバックエンドサーバが、上記サービスの実行結果を、上記負荷バランサに返し、かつ、上記負荷バランサが、上記実行結果を、上記サービスを起動する上記仮想マシンに返す段階をさらに備える、項目1から7のいずれか一項に記載の方法。
(項目9)
少なくとも3つのコンピュータデバイスを備えるコンピュータシステムに適用される負荷バランシング方法であって、各コンピュータデバイスは、中央処理装置およびメモリを有し、上記少なくとも3つのコンピュータデバイスは、第1のコンピュータデバイスを含み、上記第1のコンピュータデバイスは、クラウド管理プラットフォームとして用いられ、上記少なくとも3つのコンピュータデバイスにおける、上記第1のコンピュータデバイス以外のコンピュータデバイスは、サービスコンピュータデバイスとして用いられ、サービスを起動する仮想マシンが、各サービスコンピュータデバイス上で作動し、上記サービスは、負荷バランシングサービスであり、
上記第1のコンピュータデバイスが、各サービスコンピュータデバイス上で生成されるべき負荷バランサの構成情報を取得する段階であって、上記負荷バランサの上記構成情報は、上記負荷バランサの識別子と、上記負荷バランサの仮想IPアドレスVIPとを含み、上記負荷バランサの上記VIPは、上記負荷バランシングサービスを示す、段階と、
上記第1のコンピュータデバイスが、各サービスコンピュータデバイス上で生成されるべき上記負荷バランサの上記構成情報に従って、各サービスコンピュータデバイスの上記ローカル負荷バランサを各サービスコンピュータデバイス上で生成する段階と、
上記第1のコンピュータデバイスが、上記負荷バランシングサービスの転送モードを各サービスコンピュータデバイスに構成する段階であって、上記転送モードにおいて、上記サービスを起動する、各サービスコンピュータデバイスの上記仮想マシンにより起動された上記負荷バランシングサービスのサービスパケットが、上記ローカル負荷バランサに指向的に転送され、これにより、各サービスコンピュータデバイスの上記ローカル負荷バランサは、上記サービスを起動する、上記サービスコンピュータデバイスの上記仮想マシンにより起動された上記サービスパケットに対して負荷バランシング処理を実行する、段階と
を備える負荷バランシング方法。
(項目10)
上記第1のコンピュータデバイスが、上記負荷バランシングサービスの転送モードを各サービスコンピュータデバイスに構成する上記段階は、
上記第1のコンピュータデバイスが、各サービスコンピュータデバイス上に配備された仮想スイッチを構成する段階であって、これにより、上記ローカル負荷バランサのMACアドレスを、上記サービスを起動する上記ローカル仮想マシンへ送信する、段階を含む、項目9に記載の方法。
(項目11)
上記第1のコンピュータデバイスが、各サービスコンピュータデバイス上に配備された仮想スイッチを構成する上記段階であって、これにより、上記ローカル負荷バランサのMACアドレスを、上記サービスを起動する上記ローカル仮想マシンへ送信する、上記段階の後に、
上記サービスを起動する、各サービスコンピュータデバイスの上記仮想マシンが、制御パケットを上記ローカル仮想スイッチへ送信する段階であって、上記制御パケットは、上記VIPを保持する、段階と、
各サービスコンピュータデバイスの上記ローカル仮想スイッチが、上記制御パケットの応答メッセージを、上記サービスを起動する上記ローカル仮想マシンへ送信する段階であって、上記応答メッセージは、上記ローカル負荷バランサの上記MACアドレスを保持する、段階とをさらに備える、項目10に記載の方法。
(項目12)
上記第1のコンピュータデバイスが、上記構成情報に従って、各サービスコンピュータデバイス上で上記負荷バランサを生成する上記段階の前に、
上記第1のコンピュータデバイスが、上記サービスを起動する上記第1の仮想マシンが第1のサービスコンピュータデバイス上で生成されたことを知り、かつ、各サービスコンピュータデバイスの上記ローカル負荷バランサが各サービスコンピュータデバイス上で生成されるまで、上記第1のサービスコンピュータデバイス上で上記第1のサービスコンピュータデバイスの負荷バランサを生成する段階をさらに備える、項目9から11のいずれか一項に記載の方法。
(項目13)
上記負荷バランサは、負荷バランシング仮想マシン、負荷バランシングコンテナ、または負荷バランシングネームスペースを含む、項目9から12のいずれか一項に記載の方法。
(項目14)
少なくとも2つのコンピュータデバイスを備えるコンピュータシステムに適用される負荷バランシング方法であって、各コンピュータデバイスは、中央処理装置およびメモリを有し、上記少なくとも2つのコンピュータデバイスは、第1のコンピュータデバイスおよび第2のコンピュータデバイスを含み、上記第1のコンピュータデバイスは、クラウド管理プラットフォームとして用いられ、サービスを起動する仮想マシンが、上記第2のコンピュータデバイス上で作動し、上記サービスは、負荷バランシングサービスであり、
上記第1のコンピュータデバイスが、上記第2のコンピュータデバイス上で生成されるべき負荷バランサの構成情報を取得する段階であって、上記負荷バランサの上記構成情報は、上記負荷バランサの識別子と、上記負荷バランサの仮想IPアドレスVIPとを含み、上記負荷バランサの上記VIPは、上記負荷バランシングサービスを示す、段階と、
上記第1のコンピュータデバイスが、上記構成情報に従って、上記負荷バランサを上記第2のコンピュータデバイス上で生成する段階と、
上記第1のコンピュータデバイスが、上記負荷バランシングサービスの転送モードを上記第2のコンピュータデバイスに構成する段階であって、上記転送モードにおいて、上記サービスを起動する、上記第2のコンピュータデバイスの上記仮想マシンにより起動された上記負荷バランシングサービスのサービスパケットが、上記負荷バランサに指向的に転送され、これにより、上記サービスパケットを受信した後に、上記負荷バランサは、上記サービスを実行するバックエンドサーバを選択する、段階と
を備える負荷バランシング方法。
(項目15)
上記第1のコンピュータデバイスが、上記負荷バランシングサービスの転送モードを、上記第2のコンピュータデバイスに構成する上記段階は、
上記第1のコンピュータデバイスが、上記第2のコンピュータデバイス上に配備された仮想スイッチを構成する段階であって、これにより、上記負荷バランサのMACアドレスを、上記サービスを起動する上記仮想マシンへ送信し、これにより、上記サービスを起動する上記仮想マシンは、上記負荷バランサの上記MACアドレスが宛先アドレスとして用いられる上記サービスパケットを送信する、段階を含む、項目14に記載の方法。
(項目16)
上記第1のコンピュータデバイスが、上記第2のコンピュータデバイス上に配備された仮想スイッチを構成する上記段階であって、これにより、上記負荷バランサのMACアドレスを、上記サービスを起動する上記仮想マシンへ送信する、上記段階の後に、
上記サービスを起動する上記仮想マシンが、制御パケットを上記仮想スイッチへ送信する段階であって、上記制御パケットは、上記VIPを保持する、段階と、
上記仮想スイッチが、上記制御パケットの応答メッセージを、上記サービスを起動する上記仮想マシンへ送信する段階であって、上記応答メッセージは、上記負荷バランサの上記MACアドレスを保持する、段階をさらに備える、項目15に記載の方法。
(項目17)
上記第1のコンピュータデバイスが、上記構成情報に従って、上記負荷バランサを上記第2のコンピュータデバイス上で生成する上記段階は、
上記第1のコンピュータデバイスが、上記負荷バランシングサービスを起動する上記第1の仮想マシンを、上記第2のコンピュータデバイス上で生成した後に、上記負荷バランサを生成する段階を含む、項目14から16のいずれか一項に記載の方法。
(項目18)
上記方法は、上記第1のコンピュータデバイスが、上記負荷バランシングサービスを起動する、上記第2のコンピュータデバイス上で生成された最後の仮想マシンが削除された後に、上記生成された負荷バランサを削除する段階をさらに備える、項目14から17のいずれか一項に記載の方法。
(項目19)
少なくとも2つのコンピュータデバイスを備える負荷バランシングコンピュータシステムであって、各コンピュータデバイスは、中央処理装置およびメモリを有し、上記少なくとも2つのコンピュータデバイスは、第1のコンピュータデバイスおよび第2のコンピュータデバイスを含み、上記第1のコンピュータデバイスは、クラウド管理プラットフォームとして用いられ、サービスを起動する仮想マシンが、上記第2のコンピュータデバイス上で作動し、上記サービスは、負荷バランシングサービスであり、
上記第1のコンピュータデバイスは、上記第2のコンピュータデバイス上で生成されるべき負荷バランサの構成情報を取得し、上記負荷バランサの上記構成情報は、上記負荷バランサの識別子と、上記負荷バランサの仮想IPアドレスVIPとを含み、上記負荷バランサの上記VIPは、上記負荷バランシングサービスを示し、
上記第1のコンピュータデバイスは、上記構成情報に従って、上記負荷バランサを上記第2のコンピュータデバイス上で生成し、
上記第1のコンピュータデバイスは、上記負荷バランシングサービスの転送モードを上記第2のコンピュータデバイスに構成し、上記転送モードにおいて、上記サービスを起動する、上記第2のコンピュータデバイスの上記仮想マシンにより起動された上記負荷バランシングサービスのサービスパケットが、上記負荷バランサに指向的に転送され、
上記サービスを起動する、上記第2のコンピュータデバイスの上記仮想マシンは、上記転送モードに従って、上記サービスパケットを上記負荷バランサへ送信し、
上記サービスパケットを受信した後に、上記第2のコンピュータデバイスの上記負荷バランサは、上記サービスを実行するように、少なくとも1つのバックエンドサーバを選択し、上記バックエンドサーバは、上記負荷バランシングサービスを実行するために用いられる、
負荷バランシングコンピュータシステム。
(項目20)
上記第1のコンピュータデバイスが、上記負荷バランシングサービスの転送モードを上記第2のコンピュータデバイスに構成することは、
上記第1のコンピュータデバイスが、上記第2のコンピュータデバイス上に配備された仮想スイッチを構成し、これにより、上記負荷バランサのMACアドレスを、上記サービスを起動する上記仮想マシンへ送信することを含み、
上記サービスを起動する、上記第2のコンピュータデバイスの上記仮想マシンが、上記転送モードに従って、上記サービスパケットを上記負荷バランサへ送信することは、
上記サービスを起動する上記仮想マシンが、上記負荷バランサの上記MACアドレスが宛先アドレスとして用いられる上記サービスパケットを送信し、上記仮想スイッチが、上記サービスパケットの上記宛先アドレスに従って、上記サービスパケットを上記負荷バランサへ送信することを含む、項目19に記載のコンピュータシステム。
(項目21)
上記サービスを起動する上記仮想マシンが、上記負荷バランサの上記MACアドレスが上記宛先アドレスとして用いられる上記サービスパケットを送信する前に、
上記サービスを起動する上記仮想マシンは、制御パケットを上記仮想スイッチへ送信し、上記制御パケットは、上記VIPを保持し、
上記仮想スイッチは、上記制御パケットの応答メッセージを、上記サービスを起動する上記仮想マシンへ送信し、上記応答メッセージは、上記負荷バランサの上記MACアドレスを保持する、項目20に記載のコンピュータシステム。
(項目22)
上記制御パケットは、アドレス解決プロトコルARPパケット、またはインターネット制御メッセージプロトコルICMPパケットである、項目21に記載のコンピュータシステム。
(項目23)
上記第1のコンピュータデバイスが、上記負荷バランシングサービスの転送モードを上記第2のコンピュータデバイスに構成することは、
上記第1のコンピュータデバイスが、上記負荷バランサに、上記負荷バランサのMACアドレスを、上記サービスを起動する上記仮想マシンへ送信するように、命令すること、または、
上記第1のコンピュータデバイスが、上記負荷バランサのMACアドレスを、上記サービスを起動する上記仮想マシンに構成することを含み、
それに対応して、上記サービスを起動する、上記第2のコンピュータデバイスの上記仮想マシンが、上記転送モードに従って、上記サービスパケットを上記負荷バランサへ送信することは、
上記サービスを起動する上記仮想マシンが、上記負荷バランサの上記MACアドレスが宛先アドレスとして用いられる上記サービスパケットを送信し、上記第2のコンピュータデバイス上に配備された仮想スイッチが、上記サービスパケットの上記宛先アドレスに従って、上記サービスパケットを上記負荷バランサへ送信することを含む、項目19に記載のコンピュータシステム。
(項目24)
上記第1のコンピュータデバイスが、上記構成情報に従って、上記負荷バランサを上記第2のコンピュータデバイス上で生成することは、
上記第1のコンピュータデバイスが、上記負荷バランシングサービスを起動する上記第1の仮想マシンを上記第2のコンピュータデバイス上で生成した後に、上記負荷バランサを生成することを含む、項目19から23のいずれか一項に記載のコンピュータシステム。
(項目25)
上記第1のコンピュータデバイスは、上記負荷バランシングサービスを起動する、上記第2のコンピュータデバイス上で生成された最後の仮想マシンが削除された後に、上記生成された負荷バランサを削除する、項目19から24のいずれか一項に記載のコンピュータシステム。
(項目26)
上記選択されたバックエンドサーバは、上記サービスの実行結果を、上記サービスを起動する上記仮想マシンに直接返す、または、
上記選択されたバックエンドサーバは、上記サービスの実行結果を、上記負荷バランサに返し、上記負荷バランサは、上記実行結果を、上記サービスを起動する上記仮想マシンに返す、項目19から25のいずれか一項に記載のコンピュータシステム。
(項目27)
負荷バランシングコンピュータシステムであって、上記コンピュータシステムは、少なくとも3つのコンピュータデバイスを備え、各コンピュータデバイスは、中央処理装置およびメモリを有し、上記少なくとも3つのコンピュータデバイスは、第1のコンピュータデバイスを含み、上記第1のコンピュータデバイスは、クラウド管理プラットフォームとして用いられ、上記少なくとも3つのコンピュータデバイスにおける、上記第1のコンピュータデバイス以外のコンピュータデバイスは、サービスコンピュータデバイスとして用いられ、サービスを起動する仮想マシンが、各サービスコンピュータデバイス上で作動し、上記サービスは、負荷バランシングサービスであり、
上記第1のコンピュータデバイスは、各サービスコンピュータデバイス上で生成されるべき負荷バランサの構成情報を取得し、上記負荷バランサの上記構成情報は、上記負荷バランサの識別子と、上記負荷バランサの仮想IPアドレスVIPとを含み、上記負荷バランサの上記VIPは、上記負荷バランシングサービスを示し、
上記第1のコンピュータデバイスは、各サービスコンピュータデバイス上で生成されるべき上記負荷バランサの上記構成情報に従って、各サービスコンピュータデバイスの上記ローカル負荷バランサを、各サービスコンピュータデバイス上で生成し、
上記第1のコンピュータデバイスは、上記負荷バランシングサービスの転送モードを各サービスコンピュータデバイスに構成し、上記転送モードにおいて、上記サービスを起動する、各サービスコンピュータデバイスの上記仮想マシンにより起動された上記負荷バランシングサービスのサービスパケットが、上記ローカル負荷バランサに指向的に転送され、これにより、各サービスコンピュータデバイスの上記ローカル負荷バランサは、上記サービスを起動する、上記サービスコンピュータデバイスの上記仮想マシンにより起動された上記サービスパケットに対して負荷バランシング処理を実行する、
負荷バランシングコンピュータシステム。
(項目28)
上記第1のコンピュータデバイスが、上記負荷バランシングサービスの転送モードを、各サービスコンピュータデバイスに構成することは、
上記第1のコンピュータデバイスが、各サービスコンピュータデバイス上に配備された仮想スイッチを構成し、これにより、上記ローカル負荷バランサのMACアドレスを、上記サービスを起動する上記ローカル仮想マシンへ送信することを含む、項目27に記載のコンピュータシステム。
(項目29)
上記第1のコンピュータデバイスが、各サービスコンピュータデバイス上に配備された上記仮想スイッチを構成し、上記ローカル負荷バランサの上記MACアドレスを、上記サービスを起動する上記ローカル仮想マシンへ送信した後に、
上記サービスを起動する、各サービスコンピュータデバイスの上記仮想マシンは、制御パケットを上記ローカル仮想スイッチへ送信し、上記制御パケットは、上記VIPを保持し、
各サービスコンピュータデバイスの上記ローカル仮想スイッチは、上記制御パケットの応答メッセージを、上記サービスを起動する上記ローカル仮想マシンへ送信し、上記応答メッセージは、上記ローカル負荷バランサの上記MACアドレスを保持する、項目28に記載のコンピュータシステム。
(項目30)
上記第1のコンピュータデバイスが、上記構成情報に従って、上記負荷バランサを各サービスコンピュータデバイス上で生成する前に、
上記第1のコンピュータデバイスは、上記サービスを起動する上記第1の仮想マシンが、第1のサービスコンピュータデバイス上で生成されたことを知り、各サービスコンピュータデバイスの上記ローカル負荷バランサが各サービスコンピュータデバイス上で生成されるまで、上記第1のサービスコンピュータデバイスの負荷バランサを、上記第1のサービスコンピュータデバイス上で生成する、項目27から29のいずれか一項に記載のコンピュータシステム。
(項目31)
上記負荷バランサは、負荷バランシング仮想マシン、負荷バランシングコンテナ、または負荷バランシングネームスペースを含む、項目27から30のいずれか一項に記載のコンピュータシステム。
(項目32)
負荷バランシングコンピュータシステムであって上記コンピュータシステムは、少なくとも2つのコンピュータデバイスを備え、各コンピュータデバイスは、中央処理装置およびメモリを有し、上記少なくとも2つのコンピュータデバイスは、第1のコンピュータデバイスおよび第2のコンピュータデバイスを含み、上記第1のコンピュータデバイスは、クラウド管理プラットフォームとして用いられ、サービスを起動する仮想マシンが、上記第2のコンピュータデバイス上で作動し、上記サービスは、負荷バランシングサービスであり、
上記第1のコンピュータデバイスは、上記第2のコンピュータデバイス上で生成されるべき負荷バランサの構成情報を取得し、上記負荷バランサの上記構成情報は、上記負荷バランサの識別子と、上記負荷バランサの仮想IPアドレスVIPとを含み、上記負荷バランサの上記VIPは、上記負荷バランシングサービスを示し、
上記第1のコンピュータデバイスは、上記構成情報に従って、上記負荷バランサを上記第2のコンピュータデバイス上で生成し、
上記第1のコンピュータデバイスは、上記負荷バランシングサービスの転送モードを上記第2のコンピュータデバイスに構成し、上記転送モードにおいて、上記サービスを起動する、上記第2のコンピュータデバイスの上記仮想マシンにより起動された上記負荷バランシングサービスのサービスパケットが、上記負荷バランサに指向的に転送され、これにより、上記サービスパケットを受信した後に、上記負荷バランサは、上記サービスを実行するバックエンドサーバを選択する、
負荷バランシングコンピュータシステム。
(項目33)
上記第1のコンピュータデバイスが、上記負荷バランシングサービスの転送モードを上記第2のコンピュータデバイスに構成することは、
上記第1のコンピュータデバイスは、上記第2のコンピュータデバイス上に配備された仮想スイッチを構成し、これにより、上記負荷バランサのMACアドレスを、上記サービスを起動する上記仮想マシンへ送信し、これにより、上記サービスを起動する上記仮想マシンが、上記負荷バランサの上記MACアドレスが宛先アドレスとして用いられる上記サービスパケットを送信することを含む、項目32に記載のコンピュータシステム。
(項目34)
上記第1のコンピュータデバイスが、上記第2のコンピュータデバイス上に配備された上記仮想スイッチを構成し、上記負荷バランサの上記MACアドレスを、上記サービスを起動する上記仮想マシンへ送信した後に、
上記サービスを起動する上記仮想マシンは、制御パケットを上記仮想スイッチへ送信し、上記制御パケットは、上記VIPを保持し、
上記仮想スイッチは、上記制御パケットの応答メッセージを、上記サービスを起動する上記仮想マシンへ送信し、上記応答メッセージは、上記負荷バランサの上記MACアドレスを保持する、項目32に記載のコンピュータシステム。
(項目35)
上記第1のコンピュータデバイスが、上記構成情報に従って、上記負荷バランサを上記第2のコンピュータデバイス上で生成することは、
上記第1のコンピュータデバイスが、上記負荷バランシングサービスを起動する上記第1の仮想マシンを上記第2のコンピュータデバイス上で生成した後に、上記負荷バランサを生成することを含む、項目32から34のいずれか一項に記載のコンピュータシステム。
(項目36)
上記第1のコンピュータデバイスは、上記負荷バランシングサービスを起動する、上記第2のコンピュータデバイス上で生成された最後の仮想マシンが削除された後に、上記生成された負荷バランサを削除する、項目32から35のいずれか一項に記載のコンピュータシステム。