JP2017229030A - Vm切り替えプログラム、情報処理装置およびvm切り替え方法 - Google Patents
Vm切り替えプログラム、情報処理装置およびvm切り替え方法 Download PDFInfo
- Publication number
- JP2017229030A JP2017229030A JP2016125899A JP2016125899A JP2017229030A JP 2017229030 A JP2017229030 A JP 2017229030A JP 2016125899 A JP2016125899 A JP 2016125899A JP 2016125899 A JP2016125899 A JP 2016125899A JP 2017229030 A JP2017229030 A JP 2017229030A
- Authority
- JP
- Japan
- Prior art keywords
- packet
- abnormality
- switching
- address
- mac address
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/06—Management of faults, events, alarms or notifications
- H04L41/0654—Management of faults, events, alarms or notifications using network fault recovery
- H04L41/0668—Management of faults, events, alarms or notifications using network fault recovery by dynamic selection of recovery network elements, e.g. replacement by the most appropriate element after failure
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/40—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks using virtualisation of network functions or resources, e.g. SDN or NFV entities
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/04—Processing captured monitoring data, e.g. for logfile generation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/70—Virtual switches
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0823—Errors, e.g. transmission errors
- H04L43/0829—Packet loss
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/20—Arrangements for monitoring or testing data switching networks the monitoring system or the monitored elements being virtualised, abstracted or software-defined entities, e.g. SDN or NFV
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Mining & Analysis (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
【課題】NFVの技術において、VMの切り替えを高速化する。
【解決手段】サーバ1は、パケットの転送先であるVM3の異常を検出し、VM3の切り替えが行われると、転送先のMACアドレスと切り替え前のVMのポート番号との第1対応関係を、該MACアドレスと切り替え後のVMのポート番号との第1対応関係に書き換え、書き換え後の第1対応関係と、切り替え後の転送先のVMのポート番号と転送先のMACアドレスと転送先のIPアドレスとの第2対応関係とに基づいて一致するポート番号から、切り替え後のVMの転送先のMACアドレスと転送先のIPアドレスとを決定し、外部のネットワークから受信したパケットのヘッダに含まれる転送先のMACアドレスと転送先のIPアドレスとを、決定したMACアドレスとIPアドレスとに書き換え、書き換えられたパケットを前記切り替え後のVM3に転送する。
【選択図】図1
【解決手段】サーバ1は、パケットの転送先であるVM3の異常を検出し、VM3の切り替えが行われると、転送先のMACアドレスと切り替え前のVMのポート番号との第1対応関係を、該MACアドレスと切り替え後のVMのポート番号との第1対応関係に書き換え、書き換え後の第1対応関係と、切り替え後の転送先のVMのポート番号と転送先のMACアドレスと転送先のIPアドレスとの第2対応関係とに基づいて一致するポート番号から、切り替え後のVMの転送先のMACアドレスと転送先のIPアドレスとを決定し、外部のネットワークから受信したパケットのヘッダに含まれる転送先のMACアドレスと転送先のIPアドレスとを、決定したMACアドレスとIPアドレスとに書き換え、書き換えられたパケットを前記切り替え後のVM3に転送する。
【選択図】図1
Description
本発明は、VM切り替えプログラム等に関する。
近年、増加する通信量をより高速に処理するために、サーバがサーバ上に複数のVMを生成し、それぞれのVMと接続するVNF(Virtual Network Function)でパケット処理を行うNFV(Network Functions Virtualization)の技術がある。かかるNFVの技術では、VMまたはVNFでのパケットの輻輳や故障により、正常にパケット処理が行えなくなる。そこで、サーバは、パケット処理の異常時には、他のVMに切り替える処理を行う。
例えば、サーバの外部にあるネットワークコントローラが、仮想スイッチに対してVMの切り替え指示を行う技術が知られている(例えば、特許文献1参照)。かかる技術では、サーバの内部にあるアプリケーション不良検知モジュールが仮想アプライアンスの不良を検知し、不良を検知したことに応じて、不良通知をアプライアンス不良コントロール通知モジュールに送る。アプライアンス不良コントロール通知モジュールは、アプライアンス不良コントローラ通知メッセージをネットワークコントローラに送る。そして、ネットワークコントローラが、アプライアンス不良コントローラ通知メッセージを受信したことに応じて、実行される構成変更を決定し、仮想スイッチに対してVMの切り替え指示を行う。なお、アプライアンスは、VNFに対応する。
しかしながら、従来の技術では、VMの切り替えに時間がかかるという問題がある。例えば、ネットワークコントローラが仮想スイッチに対してVMの切り替え指示を行う技術では、ネットワークコントローラがサーバの外部にあるため、VMの切り替えに時間がかかる。
1つの側面では、NFVの技術において、VMの切り替えを高速化することを目的とする。
1つの案では、VM切り替えプログラムは、コンピュータに、パケットの転送先であるVMの異常を検出し、VMの切り替えが行われると、転送先のMACアドレスと切り替え前のVMのポート番号との第1対応関係を、該MACアドレスと切り替え後のVMのポート番号との第1対応関係に書き換え、書き換え後の第1対応関係と、切り替え後の転送先のVMのポート番号と転送先のMACアドレスと転送先のIPアドレスとの第2対応関係とに基づいて一致するポート番号から、前記切り替え後のVMの転送先のMACアドレスと転送先のIPアドレスとを決定し、外部のネットワークから受信したパケットのヘッダに含まれる転送先のMACアドレスと転送先のIPアドレスとを、決定したMACアドレスとIPアドレスとに書き換え、書き換えられたパケットを前記切り替え後のVMに転送する、処理を実行させる。
1つの態様によれば、NFVの技術において、VMの切り替えを高速化することができる。
以下に、本願の開示するVM切り替えプログラム、情報処理装置およびVM切り替え方法の実施例を図面に基づいて詳細に説明する。なお、実施例によりこの発明が限定されるものではない。
[実施例1に係るサーバの構成]
図1は、実施例1に係るサーバの機能構成を示す図である。図1に示すように、サーバ1は、ネットワーク機能を仮想化するNFV(Network Functions Virtualization)の技術を適用し、仮想スイッチ2と、複数のVM3と、を有する。各VM3は、ネットワークを介してVNF(Virtual Network Function)4と接続する。VNF4は、VM3上で動作するソフトウェアであり、一例として、音声のパケット通信機能が挙げられる。VMの切り替え時に、音声のパケット通信機能そのものの(アプリケーションソフトウェアとしての)引き継ぎは不要である。なお、図1では、VM3の数をN個(N>2)としたが、これに限定されず、2個であっても良いし、10個であっても良い。すなわち、VM3の数は、運用しているVM3と異なる予備のVM3があれば個数に限定はない。実施例では、複数のVM3を区別するため、A、B、・・・Nや1、2、・・・をVM右横の括弧内に記載して説明することがある。
図1は、実施例1に係るサーバの機能構成を示す図である。図1に示すように、サーバ1は、ネットワーク機能を仮想化するNFV(Network Functions Virtualization)の技術を適用し、仮想スイッチ2と、複数のVM3と、を有する。各VM3は、ネットワークを介してVNF(Virtual Network Function)4と接続する。VNF4は、VM3上で動作するソフトウェアであり、一例として、音声のパケット通信機能が挙げられる。VMの切り替え時に、音声のパケット通信機能そのものの(アプリケーションソフトウェアとしての)引き継ぎは不要である。なお、図1では、VM3の数をN個(N>2)としたが、これに限定されず、2個であっても良いし、10個であっても良い。すなわち、VM3の数は、運用しているVM3と異なる予備のVM3があれば個数に限定はない。実施例では、複数のVM3を区別するため、A、B、・・・Nや1、2、・・・をVM右横の括弧内に記載して説明することがある。
サーバ1は、通信量をより高速に処理するために、サーバ1上に複数のVM3を生成し、それぞれのVM3とネットワークで接続されたVNF4でパケット処理を行う。なお、サーバ1は、情報処理装置の一例である。
仮想スイッチ2は、パケットの転送先であるVM3の異常を検出し、異常が検出されたVM3を新たなVM3に切り替える。さらに、仮想スイッチ2は、制御部20と、監視部30と、記憶部40とを有する。
制御部20および監視部30は、各種の処理手順を規定したプログラムや制御データを格納するための内部メモリを有し、これらによって種々の処理を実行する。そして、制御部20および監視部30は、例えば、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)等の集積回路の電子回路に対応する。または、制御部20および監視部30は、CPU(Central Processing Unit)やMPU(Micro Processing Unit)等の電子回路に対応する。
記憶部40は、例えばフラッシュメモリ(Flash Memory)やFRAM(登録商標)(Ferroelectric Random Access Memory)等の不揮発性の半導体メモリ素子等の記憶装置に対応する。記憶部40は、転送テーブル41およびMAC/IP編集テーブル42を有する。転送テーブル41は、パケットを転送する際の宛先のMACアドレスおよびポート番号を記憶する。MAC/IP編集テーブル42は、パケットの宛先および送信元のMACアドレスおよびIPアドレスを編集するために用いられるテーブルである。なお、転送テーブル41およびMAC/IP編集テーブル42の詳細は、後述する。
制御部20は、VM切り替え部21を有する。
VM切り替え部21は、VM3の異常が検出されると、異常が検出されたVM3を新たなVM3に切り替える。すなわち、VM切り換え部21は、いずれかのVM3の異常が検出されると、異常が検出されたVM(A)を新たなVM(B)に切り替える。例えば、VM切り替え部21は、後述する異常検出部31によってVM3の異常が検出されると、VM3の切り替えが行われ、転送テーブル41およびMAC/IP編集テーブル42に基づいて、切り替え後の新たなVM3のMACアドレスとIPアドレスとを決定する。VM切り替え部21は、外部のネットワークから受信したパケットのヘッダに含まれるMACアドレスとIPアドレスとを、決定したMACアドレスとIPアドレスとに書き換える。VM切り替え部21は、アドレスが書き換えられたパケットを切り替え後の新たなVM3に転送する。
ここで、転送テーブル41およびMAC/IP編集テーブル42のデータ構造の一例を、図2および図3を参照して説明する。
[転送テーブルのデータ構造の一例]
図2は、実施例1に係る転送テーブルのデータ構造の一例を示す図である。図2に示すように、転送テーブル41は、宛先MACアドレス41aおよび出力ポート41bを対応付けて記憶する。宛先MACアドレス41aは、パケットの転送先であるVM3のMACアドレスであり、MAC DAに対応する。出力ポート41bは、パケットの転送先であるVM3の出力ポートに対応する。出力ポート41bは、VM3が切り替えられる際に、切り替え後のVM3宛ての出力ポートに書き換えられる。例えば、VM切り替え部21は、VM3の異常が検出されると、受信するパケットのヘッダに含まれる宛先MACアドレスに対応する転送テーブル41の出力ポートを、切り替え後の新たなVM3宛ての出力ポートに書き換える。なお、転送テーブル41は、第1対応関係の一例である。
図2は、実施例1に係る転送テーブルのデータ構造の一例を示す図である。図2に示すように、転送テーブル41は、宛先MACアドレス41aおよび出力ポート41bを対応付けて記憶する。宛先MACアドレス41aは、パケットの転送先であるVM3のMACアドレスであり、MAC DAに対応する。出力ポート41bは、パケットの転送先であるVM3の出力ポートに対応する。出力ポート41bは、VM3が切り替えられる際に、切り替え後のVM3宛ての出力ポートに書き換えられる。例えば、VM切り替え部21は、VM3の異常が検出されると、受信するパケットのヘッダに含まれる宛先MACアドレスに対応する転送テーブル41の出力ポートを、切り替え後の新たなVM3宛ての出力ポートに書き換える。なお、転送テーブル41は、第1対応関係の一例である。
[MAC/IP編集テーブルのデータ構造の一例]
図3は、実施例1に係るMAC/IP編集テーブルのデータ構造の一例を示す図である。図3に示すように、MAC/IP編集テーブル42は、出力ポート42a、宛先MACアドレス42b、宛先IPアドレス42c、入力ポート42d、送信元MACアドレス42eおよび送信元IPアドレス42fを対応付けて記憶する。出力ポート42aは、パケットの転送先であるVM3の出力ポートに対応する。宛先MACアドレス42bは、パケットの転送先であるVM3のMACアドレスであり、MAC DAに対応する。宛先IPアドレス42cは、パケットの転送先であるVM3のIPアドレスであり、DIPに対応する。入力ポート42dは、パケットの送信元であるVM3の入力ポートに対応する。送信元MACアドレス42eは、パケットの送信元であるVM3のMACアドレスであり、MAC SAに対応する。送信元IPアドレス42fは、パケットの送信元であるVM3のIPアドレスであり、SIPに対応する。出力ポート42a、宛先MACアドレス42b、宛先IPアドレス42c、入力ポート42d、送信元MACアドレス42eおよび送信元IPアドレス42fは、切り替えられるVM3用も含めて、あらかじめ記憶されていても良い。なお、出力ポート42a、宛先MACアドレス42bおよび宛先IPアドレス42cは、第2対応関係の一例である。入力ポート42d、送信元MACアドレス42eおよび送信元IPアドレス42fは、第3対応関係の一例である。第2対応関係と第3対応関係とは、同じテーブルにあっても良いし、異なるテーブルにあっても良い。
図3は、実施例1に係るMAC/IP編集テーブルのデータ構造の一例を示す図である。図3に示すように、MAC/IP編集テーブル42は、出力ポート42a、宛先MACアドレス42b、宛先IPアドレス42c、入力ポート42d、送信元MACアドレス42eおよび送信元IPアドレス42fを対応付けて記憶する。出力ポート42aは、パケットの転送先であるVM3の出力ポートに対応する。宛先MACアドレス42bは、パケットの転送先であるVM3のMACアドレスであり、MAC DAに対応する。宛先IPアドレス42cは、パケットの転送先であるVM3のIPアドレスであり、DIPに対応する。入力ポート42dは、パケットの送信元であるVM3の入力ポートに対応する。送信元MACアドレス42eは、パケットの送信元であるVM3のMACアドレスであり、MAC SAに対応する。送信元IPアドレス42fは、パケットの送信元であるVM3のIPアドレスであり、SIPに対応する。出力ポート42a、宛先MACアドレス42b、宛先IPアドレス42c、入力ポート42d、送信元MACアドレス42eおよび送信元IPアドレス42fは、切り替えられるVM3用も含めて、あらかじめ記憶されていても良い。なお、出力ポート42a、宛先MACアドレス42bおよび宛先IPアドレス42cは、第2対応関係の一例である。入力ポート42d、送信元MACアドレス42eおよび送信元IPアドレス42fは、第3対応関係の一例である。第2対応関係と第3対応関係とは、同じテーブルにあっても良いし、異なるテーブルにあっても良い。
一例として、パケットが外部のネットワークのWAN(Wide Area Network)からVM3に転送される場合には、VM切り替え部21は、MAC/IP編集テーブル42に基づいて、切り替え後のVM3宛ての出力ポートに対応する宛先MACアドレスおよび宛先IPアドレスを決定する。その後、VM切り替え部21は、受信するパケットのヘッダに含まれる宛先MACアドレスと宛先IPアドレスとを、決定した宛先MACアドレスと宛先IPアドレスとに書き換えて、アドレスが書き換えられたパケットを切り替え後のVM3に転送する。
また、別の一例として、パケットが切り替え後のVM3から外部のネットワークのWANに転送される場合には、VM切り替え部21は、MAC/IP編集テーブル42に基づいて、切り替え後のVM3の入力ポート42dに対応する送信元MACアドレス42eおよび送信元IPアドレス42fを取得する。そして、VM切り替え部21は、取得した送信元MACアドレス42eおよび送信元IPアドレス42fを、切り替え前のVM3のMACアドレスおよびIPアドレスに書き換える。その後、VM切り替え部21は、受信するパケットのヘッダに含まれる送信元MACアドレスと送信元IPアドレスとを、書き換えられたMACアドレスとIPアドレスとに書き換えて、アドレスが書き換えられたパケットをWANに転送する。
図1に戻って、監視部30は、異常検出部31を有する。
異常検出部31は、パケットの転送先であるVM3の異常を検出する。かかるVM3の異常とは、正常にパケット処理が行えなくなる状態のことをいう。例えば、VM3の異常には、VM3またはVNF4の故障や、VM3およびVNF4間のネットワークの輻輳が含まれる。
[VM切り替え前の処理の一例]
図4は、実施例1に係るVM切り替え前の処理の一例を示す図である。すなわち、運用系のVM3が正常である場合のパケットの転送処理について説明する。
図4は、実施例1に係るVM切り替え前の処理の一例を示す図である。すなわち、運用系のVM3が正常である場合のパケットの転送処理について説明する。
図4上段は、外部のネットワークのWANからVM3へのパケットの転送処理である。仮想スイッチ2の監視部30は、WANから受信されたパケットの転送先であるVM3が正常であると判定する。すると、制御部20は、転送テーブル41に基づいて、受信されたパケットの宛先MACアドレスに対応する出力ポートを取得する。制御部20は、取得した出力ポートのVM3に、受信されたパケットを転送する。ここでは、受信されたパケットの宛先MACアドレス(MAC DA)は、「AA」である。制御部20は、「AA」に対応する出力ポートを「VM(1)」として取得し、「VM(1)」の出力ポートのVM3に、受信されたパケットを転送する。すなわち、制御部20は、受信されたパケットについて、宛先MACアドレス(MAC DA)として「AA」、宛先IPアドレス(DIP)として「aa」を書き込み、受信されたパケットを転送する。
図4下段は、VM3からWANへのパケットの転送処理である。仮想スイッチ2は、VM3からWANへパケットを転送する場合も同様に、転送テーブル41に基づいて、ルーティングする。すなわち、制御部20は、転送テーブル41に基づいて、受信されたパケットの宛先MACアドレスに対応する出力ポートを取得する。制御部20は、取得した出力ポートのWANに、受信されたパケットを転送する。ここでは、受信されたパケットの宛先MACアドレス(MAC DA)は、「**」である。制御部20は、「**」に対応する出力ポートを「WAN」として取得し、「WAN」の出力ポートのWANに、受信されたパケットを転送する。すなわち、制御部20は、受信されたパケットについて、送信元MACアドレス(MAC SA)として「AA」、送信元IPアドレス(SIP)として「aa」を書き込み、当該パケットを転送する。
[VM切り替え時の処理の一例]
図5A〜図5Cは、実施例1に係るVM切り替え処理の一例を示す図である。すなわち、運用系のVM3が異常である場合のパケットの転送処理について説明する。
図5A〜図5Cは、実施例1に係るVM切り替え処理の一例を示す図である。すなわち、運用系のVM3が異常である場合のパケットの転送処理について説明する。
図5Aでは、外部のネットワークのWANからVM3へパケットが転送される場合に、当該パケットの宛先のVM3が異常である場合のVM切り替え処理を説明する。仮想スイッチ2の異常検出部31は、WANから受信されたパケットの転送先であるVM3が異常であると判定する。すると、VM切り替え部21は、VM3の切り替えが行われると、受信されたパケットの宛先MACアドレス(MAC DA)に対応する、転送テーブル41の出力ポートを新たなVM宛ての出力ポートに書き換える。ここでは、「VM(1)」が異常である場合に、VM切り替え部21は、「AA」のMAC DAに対応する、転送テーブル41の出力ポートを「VM(1)」から「VM(2)」に書き換える。すなわち、切り替え後のVM3の出力ポートが「VM(2)」であるとする。
そして、VM切り替え部21は、MAC/IP編集テーブル42に基づいて、切り替え後のVM3宛ての出力ポートに対応する宛先MACアドレス(MAC DA)および宛先IPアドレス(DIP)を決定する。ここでは、MAC/IP編集テーブル42から、切り替え後のVM3宛ての出力ポート「VM(2)」に対応するMAC DAとして「BB」、DIPとして「bb」が決定される。
そして、VM切り替え部21は、受信するパケットのヘッダに含まれる宛先MACアドレス(MAC DA)と宛先IPアドレス(DIP)とを、決定した宛先MACアドレス(MAC DA)と宛先IPアドレス(DIP)とに書き換える。そして、VM切り替え部21は、アドレスが書き換えられたパケットを切り替え後のVM3に転送する。ここでは、転送するパケットのMAC DAは、「AA」から「BB」に書き換えられる。転送するパケットのDIPは、「aa」から「bb」に書き換えられる。これにより、仮想スイッチ2は、パケットの転送先のVM3に異常がある場合に、仮想スイッチ2の内部で異常を検出し、異常があるVM3を新たなVM3に切り替えるので、VM3の切り替えを高速化することができる。
図5Bでは、切り替え後のVM3からWANへパケットが転送される場合のVM切り替え処理を説明する。VM切り替え部21は、VM3の切り替えが行われると、MAC/IP編集テーブル42に基づいて、切り替え後のVM3の入力ポート42dに対応する送信元MACアドレス(MAC SA)および送信元IPアドレス(SIP)を取得する。そして、VM切り替え部21は、取得した送信元MACアドレス(MAC SA)および送信元IPアドレス(SIP)を、切り替え前のVM3のMACアドレスおよびIPアドレスに書き換える。ここでは、切り替え後のVM3の入力ポートが「VM(2)」であるとする。すると、MAC/IP編集テーブル42について、切り替え後のVM3の入力ポート「VM(2)」に対応するMAC SAは、「BB」から切り替え前のVM3のMACアドレスを示す「AA」に書き換えられる。切り替え後のVM3の入力ポート「VM(2)」に対応するSIPは、「bb」から切り替え前のVM3のIPアドレスを示す「aa」に書き換えられる。
そして、VM切り替え部21は、切り替えられたVM3から受信したパケットのヘッダに含まれる送信元MACアドレス(MAC SA)と送信元IPアドレス(SIP)とを、書き換えられたMACアドレスとIPアドレスとに書き換える。そして、VM切り替え部21は、アドレスが書き換えられたパケットをWANに転送する。ここでは、転送するパケットのMAC SAは、「AA」に書き換えられる。転送するパケットのSIPは、「aa」に書き換えられる。これにより、仮想スイッチ2は、外部のネットワークから転送されたパケットの転送先のVM3に異常があっても、戻りパケットの送信元を切り替え前の当該VM3とすることで、外部のネットワークおよびVM3の間の通信に混乱をきたさないようにできる。つまり、外部のネットワークは、あたかもパケットに設定した(切り替え前の)転送先を示すVM3と通信しているようにすることができる。
なお、図5Aおよび図5Bでは、VM切り替え部21は、単体のサーバ1内に作成されたVM3を対象に、運用系のVM3を予備のVM3に切り替える場合を説明した。しかしながら、VM切り替え部21は、これに限定されず、別のサーバ1内に作成されたVM3を対象に、運用系のVM3を予備のVM3に切り替えても良い。
図5Cでは、外部のネットワークのWANからVM3へパケットが転送される場合に、当該パケットの宛先のVM3が異常である場合のVM切り替え処理を説明する。仮想スイッチ2の異常検出部31は、WANから受信されたパケットの転送先であるVM3が異常であると判定する。すると、VM切り替え部21は、受信されたパケットの宛先MACアドレス(MAC DA)に対応する、転送テーブル41の出力ポートを新たなVM3宛ての出力ポートに書き換える。ここでは、「VM(B)」が異常である場合に、VM切り替え部21は、「BB」のMAC DAに対応する、転送テーブル41の出力ポートを「VM(B)」から「VM(C)」に書き換える。すなわち、切り替え後のVM3の出力ポートが別のサーバ1´内の「VM(C)」に書き換えられる。
そして、VM切り替え部21は、MAC/IP編集テーブル42に基づいて、切り替え後のVM3宛ての出力ポートに対応する宛先MACアドレス(MAC DA)および宛先IPアドレス(DIP)を決定する。ここでは、MAC/IP編集テーブル42から、切り替え後のVM3宛ての出力ポート「VM(C)」に対応するMAC DAとして「CC」、DIPとして「cc」が決定される。
そして、VM切り替え部21は、受信するパケットのヘッダに含まれる宛先MACアドレス(MAC DA)と宛先IPアドレス(DIP)とを、決定した宛先MACアドレス(MAC DA)と宛先IPアドレス(DIP)とに書き換える。そして、VM切り替え部21は、アドレスが書き換えられたパケットを切り替え後のVM3に転送する。ここでは、転送するパケットのMAC DAは、「BB」から「CC」に書き換えられる。転送するパケットのDIPは、「bb」から「cc」に書き換えられる。これにより、仮想スイッチ2は、パケットの転送先のVM3に異常がある場合に、仮想スイッチ2の内部で異常を検出し、異常があるVM3を新たなVM3に切り替えるので、切り替え先が別のサーバ1´であっても、VM3の切り替えを高速化することができる。
[VM切り替え処理のフローチャート]
次に、実施例1に係るVM切り替え処理のフローチャートを、図6を参照して説明する。図6は、実施例1に係るVM切り替え処理のフローチャートの一例を示す図である。
次に、実施例1に係るVM切り替え処理のフローチャートを、図6を参照して説明する。図6は、実施例1に係るVM切り替え処理のフローチャートの一例を示す図である。
図6に示すように、異常検出部31は、VM3の異常を検出したか否かを判定する(ステップS11)。VM3の異常を検出していないと判定した場合には(ステップS11;No)、異常検出部31は、VM切り替え処理を終了する。
一方、VM3の異常を検出したと判定した場合には(ステップS11;Yes)、VM切り替え部21は、パケットをWANからVM3へ転送するか否かを判定する(ステップS12)。パケットをWANからVM3へ転送すると判定した場合には(ステップS12;Yes)、VM切り替え部21は、WANからVM3へ転送する処理を実行する(ステップS13)。なお、WANからVM3へ転送する処理のフローチャートは、後述する。そして、処理が完了すると、VM切り替え部21は、VM切り替え処理を終了する。
一方、パケットをWANからVM3へ転送しないと判定した場合には(ステップS12;No)、VM切り替え部21は、VM3からWANへ転送する処理を実行する(ステップS14)。なお、VM3からWANへ転送する処理のフローチャートは、後述する。そして、処理が完了すると、VM切り替え部21は、VM切り替え処理を終了する。
[WANからVMへ転送する場合のVM切り替え処理のフローチャート]
次に、実施例1に係るWANからVM3へ転送する場合のVM切り替え処理のフローチャートを、図7を参照して説明する。図7は、WANからVMへ転送する場合のVM切り替え処理のフローチャートの一例を示す図である。
次に、実施例1に係るWANからVM3へ転送する場合のVM切り替え処理のフローチャートを、図7を参照して説明する。図7は、WANからVMへ転送する場合のVM切り替え処理のフローチャートの一例を示す図である。
図7に示すように、VM切り替え部21は、受信されたパケットを用いて、転送テーブル41の更新処理を実行する(ステップS31)。なお、転送テーブル41の更新処理のフローチャートは、後述する。
VM切り替え部21は、受信されたパケットの宛先MACアドレス(MAC DA)を用いて、転送テーブル41から出力ポートを取得する(ステップS32)。そして、VM切り替え部21は、取得した出力ポートを用いて、MAC/IP編集テーブル42から編集情報を取得する(ステップS33)。ここでいう編集情報とは、出力ポートに対応する宛先MACアドレス(MAC DA)および宛先IPアドレス(DIP)のことをいう。
そして、VM切り替え部21は、編集情報を用いて、受信されたパケットの宛先MACアドレス(MAC DA)と宛先IPアドレス(DIP)を書き換える(ステップS34)。すなわち、VM切り替え部21は、受信されたパケットのMAC DAおよびDIPを、切り替え後の新しいVM3のMACアドレスおよびIPアドレスに書き換える。
そして、VM切り替え部21は、新たなVM3へアドレスが書き換えられたパケットを転送する(ステップS35)。そして、VM切り替え部21は、WANからVM3へ転送する場合のVM切り替え処理を終了する。
[転送テーブルの更新処理のフローチャート]
次に、実施例1に係る転送テーブル41の更新処理のフローチャートを、図8を参照して説明する。図8は、転送テーブルの更新処理のフローチャートの一例を示す図である。
次に、実施例1に係る転送テーブル41の更新処理のフローチャートを、図8を参照して説明する。図8は、転送テーブルの更新処理のフローチャートの一例を示す図である。
図8に示すように、VM切り替え部21は、転送テーブル41の出力ポートを書き換える(ステップS21)。例えば、VM切り替え部21は、受信されたパケットの宛先MACアドレス(MAC DA)に対応する、転送テーブル41の出力ポートを新たなVM3の出力ポートに書き換える。
[VMからWANへ転送する場合のVM切り替え処理のフローチャート]
次に、実施例1に係るVM3からWANへ転送する場合のVM切り替え処理のフローチャートを、図9を参照して説明する。図9は、VMからWANへ転送する場合のVM切り替え処理のフローチャートの一例を示す図である。
次に、実施例1に係るVM3からWANへ転送する場合のVM切り替え処理のフローチャートを、図9を参照して説明する。図9は、VMからWANへ転送する場合のVM切り替え処理のフローチャートの一例を示す図である。
図9に示すように、VM切り替え部21は、受信されたパケットの入力ポートを用いて、MAC/IP編集テーブル42から編集情報を取得する(ステップS41)。ここでいう編集情報とは、入力ポートに対応する送信元MACアドレス(MAC SA)および送信元IPアドレス(SIP)のことをいう。
そして、VM切り替え部21は、編集情報を、切り替え前のVM3からの送信元MACアドレス(MAC SA)および送信元IPアドレス(SIP)に書き換える(ステップS42)。例えば、VM切り替え部21は、受信されたパケットの入力ポートに対応する、MAC/IP編集テーブル42の編集情報を、切り替え前のVM3からのMAC SAおよびSIPに書き換える。加えて、VM切り替え部21は、受信されたパケットのMAC SAおよびSIPを、切り替え前のVM3からのMAC SAおよびSIPに書き換える。すなわち、VM切り替え部21は、WANが切り替え前の旧運用系のVM3からパケットを受信したようにする。
そして、VM切り替え部21は、受信されたパケットの宛先MACアドレス(MAC DA)を用いて、転送テーブル41から出力ポートを取得する(ステップS43)。そして、VM切り替え部21は、取得した出力ポートを用いて、アドレスが書き換えられたパケットをWANへ転送する(ステップS44)。そして、VM切り替え部21は、VM3からWANへ転送する場合のVM切り替え処理を終了する。
[実施例1の効果]
上記実施例1によれば、仮想スイッチ2は、パケットの転送先であるVM3の異常を検出する。そして、仮想スイッチ2は、VM3の切り替えが行われると、転送先のMACアドレスと切り替え前のVM3のポート番号との転送テーブル41を、該MACアドレスと切り替え後のVM3のポート番号との転送テーブル41に書き換える。仮想スイッチ2は、書き換え後の転送テーブル41と、切り替え後の転送先のVM3のポート番号と転送先のMACアドレスと転送先のIPアドレスとのMAC/IP編集テーブル42とに基づいて以下の処理を行う。すなわち、仮想スイッチ2は、一致するポート番号から、切り替え後のVM3の転送先のMACアドレスと転送先のIPアドレスとを決定する。仮想スイッチ2は、外部のネットワークから受信したパケットのヘッダに含まれる転送先のMACアドレスと転送先のIPアドレスとを、決定したMACアドレスとIPアドレスとに書き換える。そして、仮想スイッチ2は、書き換えられたパケットを切り替え後のVM3に転送する。かかる構成によれば、仮想スイッチ2は、パケットの転送先であるVM3に異常がある場合に、仮想スイッチ2の内部で異常を検出し、異常があるVM3を新たなVM3に切り替えるので、VM3の切り替えを高速化することができる。特に、リアルタイム性が望まれる音声のパケット通信では、切り替えに伴う時間を例えば50ミリ秒以下とすることが要求されるが、仮想スイッチ2が切り替えに伴う時間を高速化することで、音声の品質を向上させることができる。また、仮想スイッチ2は、転送テーブル41を切り替え後のVM3のポート番号に書き換えることで、次回同じ転送先を宛先とするパケットを受信した場合であっても、当該パケットをスムーズに切り替え後のVM3に転送することができる。
上記実施例1によれば、仮想スイッチ2は、パケットの転送先であるVM3の異常を検出する。そして、仮想スイッチ2は、VM3の切り替えが行われると、転送先のMACアドレスと切り替え前のVM3のポート番号との転送テーブル41を、該MACアドレスと切り替え後のVM3のポート番号との転送テーブル41に書き換える。仮想スイッチ2は、書き換え後の転送テーブル41と、切り替え後の転送先のVM3のポート番号と転送先のMACアドレスと転送先のIPアドレスとのMAC/IP編集テーブル42とに基づいて以下の処理を行う。すなわち、仮想スイッチ2は、一致するポート番号から、切り替え後のVM3の転送先のMACアドレスと転送先のIPアドレスとを決定する。仮想スイッチ2は、外部のネットワークから受信したパケットのヘッダに含まれる転送先のMACアドレスと転送先のIPアドレスとを、決定したMACアドレスとIPアドレスとに書き換える。そして、仮想スイッチ2は、書き換えられたパケットを切り替え後のVM3に転送する。かかる構成によれば、仮想スイッチ2は、パケットの転送先であるVM3に異常がある場合に、仮想スイッチ2の内部で異常を検出し、異常があるVM3を新たなVM3に切り替えるので、VM3の切り替えを高速化することができる。特に、リアルタイム性が望まれる音声のパケット通信では、切り替えに伴う時間を例えば50ミリ秒以下とすることが要求されるが、仮想スイッチ2が切り替えに伴う時間を高速化することで、音声の品質を向上させることができる。また、仮想スイッチ2は、転送テーブル41を切り替え後のVM3のポート番号に書き換えることで、次回同じ転送先を宛先とするパケットを受信した場合であっても、当該パケットをスムーズに切り替え後のVM3に転送することができる。
また、上記実施例1によれば、仮想スイッチ2は、VM3の切り替えが行われると、以下の処理を行う。すなわち、仮想スイッチ2は、切り替え後のVM3のポート番号と切り替え後の転送元のMACアドレスと切り替え後の転送元のIPアドレスとの第3対応関係を、切り替え後のVMのポート番号と切り替え前の転送元のMACアドレスと切り替え前の転送元のIPアドレスとの第3対応関係に書き換える。仮想スイッチ2は、書き換えた第3対応関係に基づいて、切り替え後のVM3から転送されたパケットのヘッダに含まれる転送元のMACアドレスと転送元のIPアドレスを、書き換えたMACアドレスとIPアドレスとに書き換える。そして、仮想スイッチ2は、書き換えられたパケットを外部のネットワークに転送する。かかる構成によれば、仮想スイッチ2は、外部のネットワークから転送されたパケットの転送先のVM3に異常があっても、戻りパケットの送信元を切り替え前のVM3とすることで、外部のネットワークおよびVM3の間の通信に混乱をきたさないようにできる。
ところで、実施例1に係るサーバ1では、仮想スイッチ2が、パケットの転送先であるVM3の異常を検出し、異常が検出されたVM3を新たなVM3に切り替える。しかしながら、サーバ1では、これに限定されず、仮想スイッチ2が、パケットの転送先であるVM3の異常を、VM3に転送する複数のパケットのシーケンスのチェックに基づいて検出しても良い。
そこで、実施例2では、仮想スイッチ2が、パケットの転送先であるVM3の異常を、VM3に転送するパケットの順序のチェックに基づいて検出する場合を説明する。
[実施例2に係るサーバの構成]
図10は、実施例2に係るサーバの機能構成を示すブロック図である。なお、実施例1の図1に示すサーバ1と同一の構成については同一符号を付すことで、その重複する構成および動作の説明については省略する。実施例1と実施例2とが異なるところは、異常検出部31を第1異常検出部31Aに変更した点である。
図10は、実施例2に係るサーバの機能構成を示すブロック図である。なお、実施例1の図1に示すサーバ1と同一の構成については同一符号を付すことで、その重複する構成および動作の説明については省略する。実施例1と実施例2とが異なるところは、異常検出部31を第1異常検出部31Aに変更した点である。
第1異常検出部31Aは、パケットをVM3へ転送する際のパケットの順序と、VM3から返信されるパケットの順序とに基づいて、VM3の異常を検出する。例えば、第1異常検出部31Aは、パケットをVM3へ転送する際のパケットの順序と、VM3から返信されるパケットの順序を比較し、順序が異なる場合に、VM3で異常が発生していると判定する。但し、順序が異なる場合であっても、VM3で意図的または偶発的にパケットが廃棄される場合がある。意図的に廃棄されるパケットの一例として、応答を要しないパケットが挙げられる。偶発的に廃棄されるパケットの一例として、VM3の故障や輻輳によるパケットロスが挙げられる。かかる場合には、第1異常検出部31Aは、VM3から次に返信されたパケットに1個前のパケットの廃棄情報が含まれているか否かを判定し、含まれていない場合に、VM3で異常が発生していると判定する。すなわち、第1異常検出部31Aは、VM3にて輻輳または故障が発生していると判定する。
[異常検出処理の一例]
ここで、図11Aおよび図11Bを参照して、実施例2に係る異常検出処理の一例について説明する。図11Aでは、異常検出処理の正常動作について説明する。図11Bでは、異常検出処理の異常検出について説明する。
ここで、図11Aおよび図11Bを参照して、実施例2に係る異常検出処理の一例について説明する。図11Aでは、異常検出処理の正常動作について説明する。図11Bでは、異常検出処理の異常検出について説明する。
図11A上段に示すように、第1異常検出部31Aは、VM3へ送信されるパケットの順序と、VM3から返信されるパケットの順序とを比較し、順序が異ならない場合には、VM3で異常が発生していないと判定する。ここでは、パケットにシーケンス番号が付与されるとする。VM3へ送信されるパケットのシーケンス番号の順序は、1,2,3,4,5である。VM3から返信されるパケットのシーケンス番号の順序は、1,2,3,4,5である。したがって、第1異常検出部31Aは、シーケンス番号の順序が異ならないので、VM3で異常が発生していないと判定する。
図11A下段に示すように、第1異常検出部31Aは、順序が異なる場合に、VM3から次に返信されたパケットに1個前のパケットの廃棄情報が含まれているか否かを判定し、含まれている場合には、VM3で異常が発生していないと判定する。ここでは、VM3へ送信されるパケットのシーケンス番号の順序は、1,2,3,4,5である。VM3から返信されるパケットのシーケンス番号の順序は、1,3,4,5である。すなわち、シーケンス番号が2であるパケットが抜けている。ところが、第1異常検出部31Aは、次のシーケンス番号3のパケットにシーケンス番号2のパケットの廃棄情報が含まれているので、VM3で異常が発生していないと判定する。
図11Bに示すように、第1異常検出部31Aは、順序が異なる場合に、VM3から次に返信されたパケットに1個前のパケットの廃棄情報が含まれているか否かを判定し、含まれていない場合には、VM3で異常が発生していると判定する。ここでは、VM3へ送信されるパケットのシーケンス番号の順序は、1,2,3,4,5である。VM3から返信されるパケットのシーケンス番号の順序は、1,3,4,5である。すなわち、シーケンス番号が2であるパケットが抜けている。ところが、第1異常検出部31Aは、次のシーケンス番号3のパケットにシーケンス番号2のパケットの廃棄情報が含まれていないので、VM3で異常が発生していると判定する。
そこで、制御部20のVM切り替え部21は、異常が発生していると判定されたVM3を予備のVM3に切り替える。
[異常検出処理のフローチャート]
次に、実施例2に係る異常検出処理のフローチャートを、図12を参照して説明する。図12は、実施例2に係る異常検出処理のフローチャートの一例を示す図である。なお、第1異常検出部31Aは、VM3へ送信されたパケットのシーケンス番号(送信シーケンス番号という)をスイッチカウンタに保持することとする。複数のパケットが連続して送信される場合には、スイッチカウンタには、送信シーケンス番号がシーケンシャルに保持される。
次に、実施例2に係る異常検出処理のフローチャートを、図12を参照して説明する。図12は、実施例2に係る異常検出処理のフローチャートの一例を示す図である。なお、第1異常検出部31Aは、VM3へ送信されたパケットのシーケンス番号(送信シーケンス番号という)をスイッチカウンタに保持することとする。複数のパケットが連続して送信される場合には、スイッチカウンタには、送信シーケンス番号がシーケンシャルに保持される。
図12に示すように、第1異常検出部31Aは、スイッチカウンタから送信シーケンス番号を取得する(ステップS51)。第1異常検出部31Aは、受信されたパケットから受信シーケンス番号を取得する(ステップS52)。
第1異常検出部31Aは、送信シーケンス番号と受信シーケンス番号が一致するか否かを判定する(ステップS53)。送信シーケンス番号と受信シーケンス番号が一致すると判定した場合には(ステップS53;Yes)、第1異常検出部31Aは、次にVM3から受信されたパケットから受信シーケンス番号を取得する(ステップS54)。第1異常検出部31Aが、VM3で異常が発生していないと判定した場合である。そして、第1異常検出部31Aは、スイッチカウンタから次の送信シーケンス番号を取得し(ステップS55)、次の比較処理を実行すべく、ステップS53に移行する。
一方、送信シーケンス番号と受信シーケンス番号が一致しないと判定した場合には(ステップS53;No)、第1異常検出部31Aは、次に受信されたパケットから受信シーケンス番号を取得する(ステップS56)。そして、第1異常検出部31Aは、取得した受信シーケンス番号のパケットに1個前の受信シーケンス番号のパケットの廃棄情報が含まれているか否かを判定する(ステップS57)。
廃棄情報が含まれていると判定した場合には(ステップS57;Yes)、第1異常検出部31Aは、ステップS55に移行する。第1異常検出部31Aが、VM3で異常が発生していないと判定した場合である。
一方、廃棄情報が含まれていないと判定した場合には(ステップS57;No)、第1異常検出部31Aは、VM切り替え部21に、VM3の切り替え処理を実行させる(ステップS58)。そして、第1異常検出部31Aは、異常検出処理を終了する。
[VM側のフローチャート]
ここで、実施例2に係るVM3側のフローチャートの一例を、図13を参照して説明する。図13は、実施例2に係るVM側のフローチャートの一例を示す図である。なお、運用系のVM3が仮想スイッチ2から送信されたユーザパケットを受信するとする。
ここで、実施例2に係るVM3側のフローチャートの一例を、図13を参照して説明する。図13は、実施例2に係るVM側のフローチャートの一例を示す図である。なお、運用系のVM3が仮想スイッチ2から送信されたユーザパケットを受信するとする。
図13に示すように、VM3は、ユーザパケットから送信シーケンス番号を取得する(ステップS61)。VM3は、ユーザパケットを廃棄するか否かを判定する(ステップS62)。ユーザパケットを廃棄しないと判定した場合には(ステップS62;No)、VM3は、ステップS64に移行する。
一方、ユーザパケットを廃棄すると判定した場合には(ステップS62;Yes)、VM3は、次のシーケンス番号のユーザパケットに廃棄情報を設定する(ステップS63)。そして、VM3は、ステップS64に移行する。
ステップS64において、VM3は、ユーザパケットをVNF4へ送信する(ステップS64)。
[実施例2の効果]
上記実施例2によれば、仮想スイッチ2は、パケットをVM3へ転送する際のパケットの順序と、VM3から返信されるパケットの順序とに基づいて、VM3の異常を検出する。そして、仮想スイッチ2は、異常が検出されたVM3を新たなVM3に切り替える。かかる構成によれば、仮想スイッチ2は、パケットの送信および受信の順序を用いて、VM3の異常を検出し、異常が検出されたVM3を新たなVM3に切り替えることで、通信の品質を向上させることができる。
上記実施例2によれば、仮想スイッチ2は、パケットをVM3へ転送する際のパケットの順序と、VM3から返信されるパケットの順序とに基づいて、VM3の異常を検出する。そして、仮想スイッチ2は、異常が検出されたVM3を新たなVM3に切り替える。かかる構成によれば、仮想スイッチ2は、パケットの送信および受信の順序を用いて、VM3の異常を検出し、異常が検出されたVM3を新たなVM3に切り替えることで、通信の品質を向上させることができる。
ところで、実施例1に係るサーバ1では、仮想スイッチ2が、パケットの転送先であるVM3の異常を検出し、異常が検出されたVM3を新たなVM3に切り替える。実施例2に係るサーバ1では、仮想スイッチ2が、パケットの転送先であるVM3の異常を、VM3に転送する複数のパケットのシーケンスのチェックにより検出する。しかしながら、サーバ1では、これに限定されず、仮想スイッチ2が、入力されたパケットをキューに挿入し、キューから取り出されないパケットの数により、VM3の異常を検出しても良い。
そこで、実施例3では、仮想スイッチ2が、入力されたパケットをキューに挿入し、キューから取り出されないパケットの数により、VM3の異常を検出する場合を説明する。
[実施例3に係るサーバの構成]
図14は、実施例3に係るサーバの機能構成を示すブロック図である。なお、実施例2の図10に示すサーバ1と同一の構成については同一符号を付すことで、その重複する構成および動作の説明については省略する。実施例2と実施例3とが異なるところは、第2異常検出部31Bを追加した点である。
図14は、実施例3に係るサーバの機能構成を示すブロック図である。なお、実施例2の図10に示すサーバ1と同一の構成については同一符号を付すことで、その重複する構成および動作の説明については省略する。実施例2と実施例3とが異なるところは、第2異常検出部31Bを追加した点である。
第2異常検出部31Bは、入力されたパケットをキューに挿入し、キューから取り出されないパケットの数に基づいて、VM3の異常を検出する。例えば、第2異常検出部31Bは、入力されたパケットを順次キューに挿入する。第2異常検出部31Bは、キューから取り出されないパケットの数が第1閾値以上である場合に、VM3で異常が発生していると判定する。すなわち、第2異常検出部31Bは、VM3にて輻輳または故障が発生していると判定する。なお、第1閾値は、あらかじめ実験等で調べられ、その情報は記憶部40に記憶される。
[異常検出処理の一例]
ここで、図15を参照して、実施例3に係る異常検出処理の一例について説明する。図15上段では、異常検出処理の正常動作について説明する。図15下段では、異常検出処理の異常検出について説明する。
ここで、図15を参照して、実施例3に係る異常検出処理の一例について説明する。図15上段では、異常検出処理の正常動作について説明する。図15下段では、異常検出処理の異常検出について説明する。
図15上段に示すように、第2異常検出部31Bは、入力されたパケットをキューに挿入し、キューから取り出されないパケットの数が第1閾値未満である場合に、VM3で異常が発生していないと判定する。ここでは、第1閾値が4であるとする。キューに挿入されたパケットは、A,B,Cである。したがって、第2異常検出部31Bは、キューから取り出されないパケットの数が3であり、当該数が第1閾値の4より小さいので、VM3で異常が発生していないと判定する。
図15下段に示すように、第2異常検出部31Bは、入力されたパケットをキューに挿入し、キューから取り出されないパケットの数が第1閾値以上である場合に、VM3で異常が発生していると判定する。ここでは、第1閾値が4であるとする。キューに挿入されたパケットは、A,B,C,Dである。したがって、第2異常検出部31Bは、キューから取り出されないパケットの数が4であり、当該数が第1閾値の4以上であるので、VM3で異常が発生していると判定する。
そこで、制御部20のVM切り替え部21は、異常が発生していると判定されたVM3を予備のVM3に切り替える。
[異常検出処理のフローチャート]
次に、実施例3に係る異常検出処理のフローチャートを、図16を参照して説明する。図16は、実施例3に係る異常検出処理のフローチャートの一例を示す図である。なお、第2異常検出部31Bは、入力されたパケットを順次キューに挿入することとする。
次に、実施例3に係る異常検出処理のフローチャートを、図16を参照して説明する。図16は、実施例3に係る異常検出処理のフローチャートの一例を示す図である。なお、第2異常検出部31Bは、入力されたパケットを順次キューに挿入することとする。
図16に示すように、第2異常検出部31Bは、キューからキュー長を取得する(ステップS71)。例えば、第2異常検出部31Bは、キューから取り出されないパケットの数をキュー長として取得する。
そして、第2異常検出部31Bは、キュー長が第1閾値以上であるか否かを判定する(ステップS72)。キュー長が第1閾値未満であると判定した場合には(ステップS72;No)、第2異常検出部31Bは、VM3へパケットを送信する(ステップS73)。そして、第2異常検出部31Bは、異常検出処理を終了する。
一方、キュー長が第1閾値以上であると判定した場合には(ステップS72;Yes)、第2異常検出部31Bは、VM切り替え部21に、VM3の切り替え処理を実行させる(ステップS74)。そして、第2異常検出部31Bは、異常検出処理を終了する。
[実施例3の効果]
上記実施例3によれば、仮想スイッチ2は、入力されたパケットをキューに挿入し、キューから取り出されないパケットの数に基づいて、VM3の異常を検出する。そして、仮想スイッチ2は、異常が検出されたVM3を新たなVM3に切り替える。かかる構成によれば、仮想スイッチ2は、キューから取り出されないパケットの数を用いて、VM3の異常を検出し、異常が検出されたVM3を新たなVM3に切り替えることで、通信の品質を向上させることができる。
上記実施例3によれば、仮想スイッチ2は、入力されたパケットをキューに挿入し、キューから取り出されないパケットの数に基づいて、VM3の異常を検出する。そして、仮想スイッチ2は、異常が検出されたVM3を新たなVM3に切り替える。かかる構成によれば、仮想スイッチ2は、キューから取り出されないパケットの数を用いて、VM3の異常を検出し、異常が検出されたVM3を新たなVM3に切り替えることで、通信の品質を向上させることができる。
ところで、実施例1に係るサーバ1では、仮想スイッチ2が、パケットの転送先であるVM3の異常を検出し、異常が検出されたVM3を新たなVM3に切り替える。実施例2に係るサーバ1では、仮想スイッチ2が、パケットの転送先であるVM3の異常を、VM3に転送する複数のパケットのシーケンスのチェックにより検出する。実施例3に係るサーバ1では、仮想スイッチ2が、入力されたパケットをキューに挿入し、キューから取り出されないパケットの数により、VM3の異常を検出する。しかしながら、サーバ1では、これに限定されず、仮想スイッチ2が、VM3によって廃棄されたパケットの数により、VM3の異常を検出しても良い。
そこで、実施例4では、仮想スイッチ2が、VM3によって廃棄されたパケットの数により、VM3の異常を検出する場合を説明する。
[実施例4に係るサーバの構成]
図17は、実施例4に係るサーバの機能構成を示すブロック図である。なお、実施例3の図14に示すサーバ1と同一の構成については同一符号を付すことで、その重複する構成および動作の説明については省略する。実施例3と実施例4とが異なるところは、第3異常検出部31Cを追加した点である。
図17は、実施例4に係るサーバの機能構成を示すブロック図である。なお、実施例3の図14に示すサーバ1と同一の構成については同一符号を付すことで、その重複する構成および動作の説明については省略する。実施例3と実施例4とが異なるところは、第3異常検出部31Cを追加した点である。
第3異常検出部31Cは、VM3によって廃棄されたパケットの廃棄数に基づいて、VM3の異常を検出する。例えば、第3異常検出部31Cは、VM3によって廃棄されたパケットの廃棄数が第2閾値以上である場合に、VM3で異常が発生していると判定する。すなわち、第3異常検出部31Cは、VM3にて輻輳または故障が発生していると判定する。なお、廃棄されたパケットの廃棄数は、例えば、第3異常検出部31Cから転送される監視パケットの応答の監視パケットに設定される。なお、第2閾値は、あらかじめ実験等で調べられ、その情報は記憶部40に記憶される。
[異常検出処理の一例]
ここで、図18を参照して、実施例4に係る異常検出処理の一例について説明する。図18上段では、異常検出処理の正常動作について説明する。図18下段では、異常検出処理の異常検出について説明する。
ここで、図18を参照して、実施例4に係る異常検出処理の一例について説明する。図18上段では、異常検出処理の正常動作について説明する。図18下段では、異常検出処理の異常検出について説明する。
図18上段に示すように、第3異常検出部31Cは、VM3によって廃棄されたパケットの廃棄数が第2閾値未満である場合に、VM3で異常が発生していないと判定する。ここでは、第2閾値が0より大きい所定値であるとする。VM3によって廃棄されたパケットの廃棄数が0である場合には、第3異常検出部31Cは、VM3によって廃棄されたパケットの廃棄数が第2閾値未満であるので、VM3で異常が発生していないと判定する。
図18下段に示すように、第3異常検出部31Cは、VM3によって廃棄されたパケットの廃棄数が第2閾値以上である場合に、VM3で異常が発生していると判定する。ここでは、VM3によって廃棄されたパケットの廃棄数が廃棄情報として監視パケットに設定されているとする。第3異常検出部31Cは、廃棄数が第2閾値以上である場合には、VM3で異常が発生していると判定する。
そこで、制御部20のVM切り替え部21は、異常が発生していると判定されたVM3を予備のVM3に切り替える。
[異常検出処理のフローチャート]
次に、実施例4に係る異常検出処理のフローチャートを、図19を参照して説明する。図19は、実施例4に係る異常検出処理のフローチャートの一例を示す図である。なお、第3異常検出部31Cは、定期的にまたは不定期的に、監視パケットをVM3に送信し、VM3から応答の監視パケットを受信する。
次に、実施例4に係る異常検出処理のフローチャートを、図19を参照して説明する。図19は、実施例4に係る異常検出処理のフローチャートの一例を示す図である。なお、第3異常検出部31Cは、定期的にまたは不定期的に、監視パケットをVM3に送信し、VM3から応答の監視パケットを受信する。
図19に示すように、第3異常検出部31Cは、応答の監視パケットから廃棄数を取得する(ステップS81)。第3異常検出部31Cは、廃棄数が第2閾値以上であるか否かを判定する(ステップS82)。
廃棄数が第2閾値未満であると判定した場合には(ステップS82;No)、第3異常検出部31Cは、VM3へパケットを送信する(ステップS83)。そして、第3異常検出部31Cは、異常検出処理を終了する。
一方、廃棄数が第2閾値以上であると判定した場合には(ステップS82;Yes)、第3異常検出部31Cは、VM切り替え部21に、VM3の切り替え処理を実行させる(ステップS84)。そして、第3異常検出部31Cは、異常検出処理を終了する。
[VM側のフローチャート]
ここで、実施例4に係るVM3側のフローチャートの一例を、図20を参照して説明する。図20は、実施例4に係るVM側のフローチャートの一例を示す図である。
ここで、実施例4に係るVM3側のフローチャートの一例を、図20を参照して説明する。図20は、実施例4に係るVM側のフローチャートの一例を示す図である。
図20に示すように、VM3は、受信したパケットが監視パケットであるか否かを判定する(ステップS91)。受信したパケットが監視パケットでないと判定した場合には(ステップS91;No)、VM3は、受信したパケットをVNF4へ送信する(ステップS92)。
一方、受信したパケットが監視パケットであると判定した場合には(ステップS91;Yes)、VM3は、例えば統計情報から廃棄数を取得し(ステップS93)、応答の監視パケットに廃棄数を設定する(ステップS94)。そして、VM3は、応答の監視パケットを仮想スイッチ2に送信する(ステップS95)。
[実施例4の効果]
上記実施例4によれば、仮想スイッチ2は、VM3によって廃棄されたパケットの数に基づいて、VM3の異常を検出する。そして、仮想スイッチ2は、異常が検出されたVM3を新たなVM3に切り替える。かかる構成によれば、仮想スイッチ2は、VM3によって廃棄されたパケットの数を用いて、VM3の異常を検出し、異常が検出されたVM3を新たなVM3に切り替えることで、通信の品質を向上させることができる。
上記実施例4によれば、仮想スイッチ2は、VM3によって廃棄されたパケットの数に基づいて、VM3の異常を検出する。そして、仮想スイッチ2は、異常が検出されたVM3を新たなVM3に切り替える。かかる構成によれば、仮想スイッチ2は、VM3によって廃棄されたパケットの数を用いて、VM3の異常を検出し、異常が検出されたVM3を新たなVM3に切り替えることで、通信の品質を向上させることができる。
ところで、実施例1に係るサーバ1では、仮想スイッチ2が、パケットの転送先であるVM3の異常を検出し、異常が検出されたVM3を新たなVM3に切り替える。実施例2に係るサーバ1では、仮想スイッチ2が、パケットの転送先であるVM3の異常を、VM3に転送する複数のパケットのシーケンスのチェックにより検出する。実施例3に係るサーバ1では、仮想スイッチ2が、入力されたパケットをキューに挿入し、キューから取り出されないパケットの数により、VM3の異常を検出する。実施例4に係るサーバ1では、仮想スイッチ2が、VM3によって廃棄されたパケットの数により、VM3の異常を検出する。しかしながら、サーバ1では、これに限定されず、仮想スイッチ2が、VM3に転送したパケットの数と、VM3から返信されたパケットの数と、VM3によって意図的に廃棄されたパケットの数とに基づいて、VM3の異常を検出しても良い。
そこで、実施例5では、仮想スイッチ2が、VM3に転送したパケットの数と、VM3から返信されたパケットの数と、VM3によって意図的に廃棄されたパケットの数とに基づいて、VM3の異常を検出する場合を説明する。
[実施例5に係るサーバの構成]
図21は、実施例5に係るサーバの機能構成を示すブロック図である。なお、実施例4の図17に示すサーバ1と同一の構成については同一符号を付すことで、その重複する構成および動作の説明については省略する。実施例4と実施例5とが異なるところは、第4異常検出部31Dを追加した点である。
図21は、実施例5に係るサーバの機能構成を示すブロック図である。なお、実施例4の図17に示すサーバ1と同一の構成については同一符号を付すことで、その重複する構成および動作の説明については省略する。実施例4と実施例5とが異なるところは、第4異常検出部31Dを追加した点である。
第4異常検出部31Dは、VM3に転送したパケットの数と、VM3から返信されたパケットの数と、VM3によって意図的に廃棄されたパケットの数とに基づいて、VM3の異常を検出する。例えば、第4異常検出部31Dは、VM3に転送したパケットの数をスイッチカウンタから取得する。第4異常検出部31Dは、VM3から返信されたパケットの数とVM3によって意図的に廃棄されたパケットの廃棄数とを加算して得られた応答パケット数を取得する。そして、第4異常検出部31Dは、転送パケット数から応答パケット数を引いて得られた数が第3閾値より大きい場合には、VM3で異常が発生していると判定する。すなわち、第4異常検出部31Dは、応答パケット数が転送パケット数より小さくなればなる程、VM3にて輻輳または故障が発生していると判定する。なお、意図的に廃棄されたパケットの廃棄数は、例えば、第4異常検出部31Dから転送される監視パケットの応答の監視パケットに設定される。なお、第3閾値は、あらかじめ実験等で調べられ、その情報は記憶部40に記憶される。
[異常検出処理の一例]
ここで、図22を参照して、実施例5に係る異常検出処理の一例について説明する。図22上段では、異常検出処理の正常動作について説明する。図22下段では、異常検出処理の異常検出について説明する。
ここで、図22を参照して、実施例5に係る異常検出処理の一例について説明する。図22上段では、異常検出処理の正常動作について説明する。図22下段では、異常検出処理の異常検出について説明する。
図22上段に示すように、第4異常検出部31Dは、VM3に転送したパケットの数(A)から応答パケット数(B+C)を引いて得られた数が第3閾値以下である場合には、VM3で異常が発生していないと判定する。応答パケット数は、VM3から返信されたパケットの数(B)とVM3によって意図的に廃棄されたパケットの廃棄数(C)とを加算して得られた数である。ここでは、第3閾値が0より大きい所定値であるとする。VM3に転送したパケットの数(A)が、応答パケット数(B+C)と一致するとする。すると、第4異常検出部31Dは、VM3に転送したパケットの数(A)から応答パケット数(B+C)を引いて得られた数が0であり、当該数は第3閾値以下であるので、VM3で異常が発生していないと判定する。
図22下段に示すように、第4異常検出部31Dは、VM3に転送したパケットの数(A)から応答パケット数(B+C)を引いて得られた数が第3閾値より大きい場合には、VM3で異常が発生していると判定する。ここでは、VM3に転送したパケットの数(A)が、応答パケット数(B+C)と一致しないとする。すると、第4異常検出部31Dは、VM3に転送したパケットの数(A)から応答パケット数(B+C)を引いて得られた数が第3閾値より大きい場合には、VM3で異常が発生していると判定する。
そこで、制御部20のVM切り替え部21は、異常が発生していると判定されたVM3を予備のVM3に切り替える。
[異常検出処理のフローチャート]
次に、実施例5に係る異常検出処理のフローチャートを、図23を参照して説明する。図23は、実施例5に係る異常検出処理のフローチャートの一例を示す図である。なお、第4異常検出部31Dは、定期的にまたは不定期的に、監視パケットをVM3に送信し、VM3から応答の監視パケットを受信する。
次に、実施例5に係る異常検出処理のフローチャートを、図23を参照して説明する。図23は、実施例5に係る異常検出処理のフローチャートの一例を示す図である。なお、第4異常検出部31Dは、定期的にまたは不定期的に、監視パケットをVM3に送信し、VM3から応答の監視パケットを受信する。
図23に示すように、第4異常検出部31Dは、VM3に転送したパケットの数を示す送信数(A)をスイッチカウンタから取得する(ステップS101)。第4異常検出部31Dは、VM3から返信されたパケットの数を示す受信数(B)をスイッチカウンタから取得する(ステップS102)。
第4異常検出部31Dは、応答の監視パケットから、意図的に廃棄されたパケットの廃棄数(C)を取得する(ステップS103)。
そして、第4異常検出部31Dは、A−(B+C)が第3閾値より大きいか否かを判定する(ステップS104)。すなわち、第4異常検出部31Dは、送信数(A)から応答パケット数(B+C)を引いて得られた数が第3閾値より大きいか否かを判定する。A−(B+C)が第3閾値以下であると判定した場合には(ステップS104;No)、第4異常検出部31Dは、異常検出処理を終了する。
一方、A−(B+C)が第3閾値より大きいと判定した場合には(ステップS104;Yes)、第4異常検出部31Dは、VM切り替え部21に、VM3の切り替え処理を実行させる(ステップS105)。そして、第4異常検出部31Dは、異常検出処理を終了する。
[VM側のフローチャート]
ここで、実施例5に係るVM3側のフローチャートの一例を、図24を参照して説明する。図24は、実施例5に係るVM側のフローチャートの一例を示す図である。
ここで、実施例5に係るVM3側のフローチャートの一例を、図24を参照して説明する。図24は、実施例5に係るVM側のフローチャートの一例を示す図である。
図24に示すように、VM3は、受信したパケットが監視パケットであるか否かを判定する(ステップS111)。受信したパケットが監視パケットでないと判定した場合には(ステップS111;No)、VM3は、受信したパケットをVNF4へ送信する(ステップS112)。
一方、受信したパケットが監視パケットであると判定した場合には(ステップS111;Yes)、VM3は、例えば統計情報から意図的に廃棄されたパケットの廃棄数を取得する(ステップS113)。そして、VM3は、応答の監視パケットに廃棄数を設定する(ステップS114)。そして、VM3は、応答の監視パケットを仮想スイッチ2に送信する(ステップS115)。
[実施例5の効果]
上記実施例5によれば、仮想スイッチ2は、VM3に転送したパケットの数と、VM3から返信されたパケットの数と、VM3によって廃棄されたパケットの数とに基づいて、VM3の異常を検出する。そして、仮想スイッチ2は、異常が検出されたVM3を新たなVM3に切り替える。かかる構成によれば、仮想スイッチ2は、VM3に転送したパケットの数と、VM3から返信されたパケットの数と、VM3によって廃棄されたパケットの数とを用いて、VM3の異常を検出し、異常が検出されたVM3を新たなVM3に切り替えることで、通信の品質を向上させることができる。
上記実施例5によれば、仮想スイッチ2は、VM3に転送したパケットの数と、VM3から返信されたパケットの数と、VM3によって廃棄されたパケットの数とに基づいて、VM3の異常を検出する。そして、仮想スイッチ2は、異常が検出されたVM3を新たなVM3に切り替える。かかる構成によれば、仮想スイッチ2は、VM3に転送したパケットの数と、VM3から返信されたパケットの数と、VM3によって廃棄されたパケットの数とを用いて、VM3の異常を検出し、異常が検出されたVM3を新たなVM3に切り替えることで、通信の品質を向上させることができる。
ところで、実施例1に係るサーバ1では、仮想スイッチ2が、パケットの転送先であるVM3の異常を検出し、異常が検出されたVM3を新たなVM3に切り替える。実施例2に係るサーバ1では、仮想スイッチ2が、パケットの転送先であるVM3の異常を、VM3に転送する複数のパケットのシーケンスのチェックにより検出する。実施例3に係るサーバ1では、仮想スイッチ2が、入力されたパケットをキューに挿入し、キューから取り出されないパケットの数により、VM3の異常を検出する。実施例4に係るサーバ1では、仮想スイッチ2が、VM3によって廃棄されたパケットの数により、VM3の異常を検出する。実施例5に係るサーバ1では、仮想スイッチ2が、VM3に転送したパケットの数と、VM3から返信されたパケットの数と、VM3によって意図的に廃棄されたパケットの数とに基づいて、VM3の異常を検出する。しかしながら、サーバ1では、これに限定されず、仮想スイッチ2が、VM3の状態を示すVM統計情報に基づいて、VM3の異常を検出しても良い。ここでいうVM統計情報とは、一例として、CPU使用率や温度が挙げられるが、これに限定されない。
そこで、実施例6では、仮想スイッチ2が、VM3の状態を示すVM統計情報に基づいて、VM3の異常を検出する場合を説明する。
[実施例6に係るサーバの構成]
図25は、実施例6に係るサーバの機能構成を示すブロック図である。なお、実施例5の図21に示すサーバ1と同一の構成については同一符号を付すことで、その重複する構成および動作の説明については省略する。実施例5と実施例6とが異なるところは、第5異常検出部31Eを追加した点である。
図25は、実施例6に係るサーバの機能構成を示すブロック図である。なお、実施例5の図21に示すサーバ1と同一の構成については同一符号を付すことで、その重複する構成および動作の説明については省略する。実施例5と実施例6とが異なるところは、第5異常検出部31Eを追加した点である。
第5異常検出部31Eは、VM3の状態を示すVM統計情報に基づいて、VM3の異常を検出する。例えば、第5異常検出部31Eは、VM統計情報が第4閾値より大きい場合には、VM3で異常が発生していると判定する。なお、第4閾値は、VM統計情報の内容によって異なり、あらかじめ実験等で調べられ、その情報は記憶部40に記憶される。
[異常検出処理の一例]
ここで、図26を参照して、実施例6に係る異常検出処理の一例について説明する。図26上段では、異常検出処理の正常動作について説明する。図26下段では、異常検出処理の異常検出について説明する。なお、VM統計情報が例えばCPU使用率であるとし、第4閾値が例えば90%であるとする。
ここで、図26を参照して、実施例6に係る異常検出処理の一例について説明する。図26上段では、異常検出処理の正常動作について説明する。図26下段では、異常検出処理の異常検出について説明する。なお、VM統計情報が例えばCPU使用率であるとし、第4閾値が例えば90%であるとする。
図26上段に示すように、第5異常検出部31Eは、VM3から送信されたVM統計情報が第4閾値以下である場合には、VM3で異常が発生していないと判定する。ここでは、VM3から送信されたVM統計情報が50%であるとする。すると、第5異常検出部31Eは、VM3から送信されたVM統計情報が第4閾値(90%)以下であるので、VM3で異常が発生していないと判定する。
図26下段に示すように、第5異常検出部31Eは、VM3から送信されたVM統計情報が第4閾値より大きい場合には、VM3で異常が発生していると判定する。ここでは、VM3から送信されたVM統計情報が95%であるとする。すると、第5異常検出部31Eは、VM3から送信されたVM統計情報が第4閾値(90%)より大きいので、VM3で異常が発生していると判定する。
そこで、制御部20のVM切り替え部21は、異常が発生していると判定されたVM3を予備のVM3に切り替える。
[異常検出処理のフローチャート]
次に、実施例6に係る異常検出処理のフローチャートを、図27を参照して説明する。図27は、実施例6に係る異常検出処理のフローチャートの一例を示す図である。なお、第5異常検出部31Eは、定期的にまたは不定期的に、監視パケットをVM3に送信し、VM3から応答の監視パケットを受信する。
次に、実施例6に係る異常検出処理のフローチャートを、図27を参照して説明する。図27は、実施例6に係る異常検出処理のフローチャートの一例を示す図である。なお、第5異常検出部31Eは、定期的にまたは不定期的に、監視パケットをVM3に送信し、VM3から応答の監視パケットを受信する。
図27に示すように、第5異常検出部31Eは、応答の監視パケットから、パラメータ(VM統計情報)を取得する(ステップS121)。
そして、第5異常検出部31Eは、パラメータが第4閾値より大きいか否かを判定する(ステップS122)。パラメータが第4閾値以下であると判定した場合には(ステップS122;No)、第5異常検出部31Eは、異常検出処理を終了する。
一方、パラメータが第4閾値より大きいと判定した場合には(ステップS122;Yes)、第5異常検出部31Eは、VM切り替え部21に、VM3の切り替え処理を実行させる(ステップS123)。そして、第5異常検出部31Eは、異常検出処理を終了する。
[VM側のフローチャート]
ここで、実施例6に係るVM3側のフローチャートの一例を、図28を参照して説明する。図28は、実施例6に係るVM側のフローチャートの一例を示す図である。
ここで、実施例6に係るVM3側のフローチャートの一例を、図28を参照して説明する。図28は、実施例6に係るVM側のフローチャートの一例を示す図である。
図28に示すように、VM3は、受信したパケットが監視パケットであるか否かを判定する(ステップS131)。受信したパケットが監視パケットでないと判定した場合には(ステップS131;No)、VM3は、受信したパケットをVNF4へ送信する(ステップS132)。
一方、受信したパケットが監視パケットであると判定した場合には(ステップS131;Yes)、VM3は、例えば統計情報からパラメータ(VM統計情報)を取得する(ステップS133)。そして、VM3は、応答の監視パケットにパラメータを設定する(ステップS134)。そして、VM3は、応答の監視パケットを仮想スイッチ2に送信する(ステップS135)。
[実施例6の効果]
上記実施例6によれば、仮想スイッチ2は、VM3の状態を示すVM統計情報に基づいて、VM3の異常を検出する。そして、仮想スイッチ2は、異常が検出されたVM3を新たなVM3に切り替える。かかる構成によれば、仮想スイッチ2は、VM3の状態を示すVM統計情報を用いて、VM3の異常を検出し、異常が検出されたVM3を新たなVM3に切り替えることで、通信の品質を向上させることができる。
上記実施例6によれば、仮想スイッチ2は、VM3の状態を示すVM統計情報に基づいて、VM3の異常を検出する。そして、仮想スイッチ2は、異常が検出されたVM3を新たなVM3に切り替える。かかる構成によれば、仮想スイッチ2は、VM3の状態を示すVM統計情報を用いて、VM3の異常を検出し、異常が検出されたVM3を新たなVM3に切り替えることで、通信の品質を向上させることができる。
ところで、実施例1に係るサーバ1では、仮想スイッチ2が、パケットの転送先であるVM3の異常を検出し、異常が検出されたVM3を新たなVM3に切り替える。実施例2に係るサーバ1では、仮想スイッチ2が、パケットの転送先であるVM3の異常を、VM3に転送する複数のパケットのシーケンスのチェックにより検出する。実施例3に係るサーバ1では、仮想スイッチ2が、入力されたパケットをキューに挿入し、キューから取り出されないパケットの数により、VM3の異常を検出する。実施例4に係るサーバ1では、仮想スイッチ2が、VM3によって廃棄されたパケットの数により、VM3の異常を検出する。実施例5に係るサーバ1では、仮想スイッチ2が、VM3に転送したパケットの数と、VM3から返信されたパケットの数と、VM3によって意図的に廃棄されたパケットの数とに基づいて、VM3の異常を検出する。実施例6に係るサーバ1では、仮想スイッチ2が、VM3の状態を示すVM統計情報に基づいて、VM3の異常を検出する。しかしながら、サーバ1では、これに限定されず、仮想スイッチ2が、パケットをVM3へ転送する際の時刻と、パケットに対する応答が到達する際の時刻との時刻差に基づいて、VM3の異常を検出しても良い。
そこで、実施例7では、仮想スイッチ2が、パケットをVM3へ転送する際の時刻と、パケットに対する応答が到達する際の時刻との時刻差に基づいて、VM3の異常を検出する場合を説明する。
[実施例7に係るサーバの構成]
図29は、実施例7に係るサーバの機能構成を示すブロック図である。なお、実施例6の図25に示すサーバ1と同一の構成については同一符号を付すことで、その重複する構成および動作の説明については省略する。実施例6と実施例7とが異なるところは、第6異常検出部31Fを追加した点である。
図29は、実施例7に係るサーバの機能構成を示すブロック図である。なお、実施例6の図25に示すサーバ1と同一の構成については同一符号を付すことで、その重複する構成および動作の説明については省略する。実施例6と実施例7とが異なるところは、第6異常検出部31Fを追加した点である。
第6異常検出部31Fは、パケットをVM3へ転送する際の時刻と、パケットに対する応答が到達する際の時刻との時刻差に基づいて、VM3の異常を検出する。例えば、第6異常検出部31Fは、パケットをVM3へ転送し、転送する際の時刻を保持する。第6異常検出部31Fは、VM3へ転送したパケットに対する応答のパケットが到達する際の時刻を保持する。第6異常検出部31Fは、パケットをVM3へ転送する際の時刻とVM3から応答が到達する際の時刻との時間差が第5閾値より大きい場合には、VM3で異常が発生していると判定する。なお、第5閾値は、あらかじめ実験等で調べられ、その情報は記憶部40に記憶される。
[異常検出処理の一例]
ここで、図30を参照して、実施例7に係る異常検出処理の一例について説明する。図30上段では、異常検出処理の正常動作について説明する。図30下段では、異常検出処理の異常検出について説明する。
ここで、図30を参照して、実施例7に係る異常検出処理の一例について説明する。図30上段では、異常検出処理の正常動作について説明する。図30下段では、異常検出処理の異常検出について説明する。
図30上段に示すように、第6異常検出部31Fは、パケットをVM3へ転送する際の時刻とVM3から応答が到達する際の時刻との時間差が第5閾値以下である場合には、VM3で異常が発生していないと判定する。ここでは、パケットをVM3へ転送する際の時刻が時刻tであり、VM3から到達する際の時刻がt+Δtであるとする。すると、第6異常検出部31Fは、時間差Δtが第5閾値以下であれば、VM3で異常が発生していないと判定する。
図30下段に示すように、第6異常検出部31Fは、パケットをVM3へ転送する際の時刻とVM3から応答が到達する際の時刻との時間差が第5閾値より大きい場合には、VM3で異常が発生していると判定する。ここでは、パケットをVM3へ転送する際の時刻が時刻tであり、VM3から応答が到達する際の時刻がt+Δtであるとする。すると、第6異常検出部31Fは、時間差Δtが第5閾値より大きければ、VM3で異常が発生していると判定する。
そこで、制御部20のVM切り替え部21は、異常が発生していると判定されたVM3を予備のVM3に切り替える。
[異常検出処理のフローチャート]
次に、実施例7に係る異常検出処理のフローチャートを、図31を参照して説明する。図31は、実施例7に係る異常検出処理のフローチャートの一例を示す図である。
次に、実施例7に係る異常検出処理のフローチャートを、図31を参照して説明する。図31は、実施例7に係る異常検出処理のフローチャートの一例を示す図である。
図31に示すように、第6異常検出部31Fは、送信時のタイムスタンプ(t)を監視パケットに設定し、VM3へ送信する(ステップS141)。
第6異常検出部31Fは、VM3へ送信した監視パケットの応答である監視パケットを受信したか否かを判定する(ステップS142)。監視パケットを受信していないと判定した場合には(ステップS142;No)、第6異常検出部31Fは、監視パケットを受信するまで、判定処理を繰り返す。
一方、監視パケットを受信したと判定した場合には(ステップS142;Yes)、第6異常検出部31Fは、受信した監視パケットから送信時のタイムスタンプ(t)を取得する(ステップS143)。第6異常検出部31Fは、監視パケットを受信した現在の時刻(t+Δt)を取得する(ステップS144)。
第6異常検出部31Fは、Δtの期間が第5閾値より大きいか否かを判定する(ステップS145)。Δtの期間が第5閾値以下であると判定した場合には(ステップS145;No)、第6異常検出部31Fは、異常検出処理を終了する。
一方、Δtの期間が第5閾値より大きいと判定した場合には(ステップS145;Yes)、第6異常検出部31Fは、VM切り替え部21に、VM3の切り替え処理を実行させる(ステップS146)。そして、第6異常検出部31Fは、異常検出処理を終了する。
[VM側のフローチャート]
ここで、実施例7に係るVM3側のフローチャートの一例を、図32を参照して説明する。図32は、実施例7に係るVM側のフローチャートの一例を示す図である。
ここで、実施例7に係るVM3側のフローチャートの一例を、図32を参照して説明する。図32は、実施例7に係るVM側のフローチャートの一例を示す図である。
図32に示すように、VM3は、受信したパケットが監視パケットであるか否かを判定する(ステップS151)。受信したパケットが監視パケットでないと判定した場合には(ステップS151;No)、VM3は、受信したパケットをVNF4へ送信する(ステップS152)。
一方、受信したパケットが監視パケットであると判定した場合には(ステップS151;Yes)、VM3は、応答の監視パケットを仮想スイッチ2に送信する(ステップS153)。
[実施例7の効果]
上記実施例7によれば、仮想スイッチ2は、パケットをVM3へ転送する際の時刻と、パケットに対する応答が到達する際の時刻との時刻差に基づいて、VM3の異常を検出する。そして、仮想スイッチ2は、異常が検出されたVM3を新たなVM3に切り替える。かかる構成によれば、仮想スイッチ2は、パケットをVM3へ転送する際の時刻と、パケットに対する応答が到達する際の時刻との時刻差を用いて、VM3の異常を検出し、異常が検出されたVM3を新たなVM3に切り替えることで、通信の品質を向上させることができる。
上記実施例7によれば、仮想スイッチ2は、パケットをVM3へ転送する際の時刻と、パケットに対する応答が到達する際の時刻との時刻差に基づいて、VM3の異常を検出する。そして、仮想スイッチ2は、異常が検出されたVM3を新たなVM3に切り替える。かかる構成によれば、仮想スイッチ2は、パケットをVM3へ転送する際の時刻と、パケットに対する応答が到達する際の時刻との時刻差を用いて、VM3の異常を検出し、異常が検出されたVM3を新たなVM3に切り替えることで、通信の品質を向上させることができる。
[その他]
なお、実施例2〜実施例7では、監視部30が、それぞれの単独の手法でVM3の異常を検出する異常検出処理を実行すると説明した。すなわち、実施例2では、監視部30が、パケットのシーケンスのチェックによりVM3の異常を検出する(第1異常検出手法)。実施例3では、監視部30が、パケットのキュー長のチェックによりVM3の異常を検出する(第2異常検出手法)。実施例4では、監視部30が、VM3内のパケット廃棄情報のチェックによりVM3の異常を検出する(第3異常検出手法)。実施例5では、監視部30が、VM3に対する送信/受信のパケット数の差分によりVM3の異常を検出する(第4異常検出手法)。実施例6では、監視部30が、VM統計情報のチェックによりVM3の異常を検出する(第5異常検出手法)。実施例7では、監視部30が、VM3に対するパケットの送信/受信のタイムスタンプを利用してVM3の異常を検出する(第6異常検出手法)。しかしながら、監視部30は、これに限定されず、それぞれの手法を組み合わせてVM3の異常を検出しても良い。例えば、監視部30は、第1異常検出手法と第6異常検出手法とを組み合わせてVM3の異常を検出しても良い。これにより、監視部30は、VM3の異常検出精度を向上させることができる。
なお、実施例2〜実施例7では、監視部30が、それぞれの単独の手法でVM3の異常を検出する異常検出処理を実行すると説明した。すなわち、実施例2では、監視部30が、パケットのシーケンスのチェックによりVM3の異常を検出する(第1異常検出手法)。実施例3では、監視部30が、パケットのキュー長のチェックによりVM3の異常を検出する(第2異常検出手法)。実施例4では、監視部30が、VM3内のパケット廃棄情報のチェックによりVM3の異常を検出する(第3異常検出手法)。実施例5では、監視部30が、VM3に対する送信/受信のパケット数の差分によりVM3の異常を検出する(第4異常検出手法)。実施例6では、監視部30が、VM統計情報のチェックによりVM3の異常を検出する(第5異常検出手法)。実施例7では、監視部30が、VM3に対するパケットの送信/受信のタイムスタンプを利用してVM3の異常を検出する(第6異常検出手法)。しかしながら、監視部30は、これに限定されず、それぞれの手法を組み合わせてVM3の異常を検出しても良い。例えば、監視部30は、第1異常検出手法と第6異常検出手法とを組み合わせてVM3の異常を検出しても良い。これにより、監視部30は、VM3の異常検出精度を向上させることができる。
また、図示した装置の各構成要素は、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、装置の分散・統合の具体的態様は図示のものに限られず、その全部または一部を、各種の負荷や使用状況等に応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。例えば、VM切り替え部21をパケットがWANからVM3に転送される場合の第1VM切り替え部と、パケットがVM3からWANに転送される場合の第2VM切り替え部とに分散しても良い。また、記憶部40をサーバ1の外部装置としてネットワーク経由で接続するようにしても良い。
また、上記実施例で説明した各種の処理は、あらかじめ用意されたプログラムをパーソナルコンピュータやワークステーション等のコンピュータで実行することによって実現することができる。そこで、以下では、図1に示したサーバ1と同様の機能を実現するVM切り替えプログラムを実行するコンピュータの一例を説明する。図33は、VM切り替えプログラムを実行するコンピュータの一例を示す図である。
図33に示すように、コンピュータ200は、各種演算処理を実行するCPU203と、ユーザからのデータの入力を受け付ける入力装置215と、表示装置209を制御する表示制御部207とを有する。また、コンピュータ200は、記憶媒体からプログラム等を読取るドライブ装置213と、ネットワークを介して他のコンピュータとの間でデータの授受を行う通信制御部217とを有する。また、コンピュータ200は、各種情報を一時記憶するメモリ201と、HDD205を有する。そして、メモリ201、CPU203、HDD205、表示制御部207、ドライブ装置213、入力装置215、通信制御部217は、バス219で接続されている。
ドライブ装置213は、例えばリムーバブルディスク211用の装置である。HDD205は、VM切り替えプログラム205aおよびVM切り替え関連情報205bを記憶する。
CPU203は、VM切り替えプログラム205aを読み出して、メモリ201に展開し、プロセスとして実行する。かかるプロセスは、サーバ1の各機能部に対応する。VM切り替え関連情報205bは、転送テーブル41、MAC/IP編集テーブル42に対応する。そして、例えばリムーバブルディスク211が、VM切り替えプログラム205a等の各情報を記憶する。
なお、VM切り替えプログラム205aについては、必ずしも最初からHDD205に記憶させておかなくても良い。例えば、コンピュータ200に挿入されるフレキシブルディスク(FD)、CD−ROM、DVDディスク、光磁気ディスク、ICカード等の「可搬用の物理媒体」に当該プログラムを記憶させておく。そして、コンピュータ200がこれらからVM切り替えプログラム205aを読み出して実行するようにしても良い。
1 サーバ
2 仮想スイッチ
3 VM
4 VNF
20 制御部
21 VM切り替え部
30 監視部
31 異常検出部
31A 第1異常検出部
31B 第2異常検出部
31C 第3異常検出部
31D 第4異常検出部
31E 第5異常検出部
31F 第6異常検出部
40 記憶部
41 転送テーブル
42 MAC/IP編集テーブル
2 仮想スイッチ
3 VM
4 VNF
20 制御部
21 VM切り替え部
30 監視部
31 異常検出部
31A 第1異常検出部
31B 第2異常検出部
31C 第3異常検出部
31D 第4異常検出部
31E 第5異常検出部
31F 第6異常検出部
40 記憶部
41 転送テーブル
42 MAC/IP編集テーブル
Claims (10)
- コンピュータに、
パケットの転送先であるVMの異常を検出し、VMの切り替えが行われると、転送先のMACアドレスと切り替え前のVMのポート番号との第1対応関係を、該MACアドレスと切り替え後のVMのポート番号との第1対応関係に書き換え、
書き換え後の第1対応関係と、切り替え後の転送先のVMのポート番号と転送先のMACアドレスと転送先のIPアドレスとの第2対応関係とに基づいて一致するポート番号から、前記切り替え後のVMの転送先のMACアドレスと転送先のIPアドレスとを決定し、
外部のネットワークから受信したパケットのヘッダに含まれる転送先のMACアドレスと転送先のIPアドレスとを、決定したMACアドレスとIPアドレスとに書き換え、
書き換えられたパケットを前記切り替え後のVMに転送する
処理を実行させることを特徴とするVM切り替えプログラム。 - 前記VMの切り替えが行われると、切り替え後のVMのポート番号と切り替え後の転送元のMACアドレスと切り替え後の転送元のIPアドレスとの第3対応関係を、切り替え後のVMのポート番号と切り替え前の転送元のMACアドレスと切り替え前の転送元のIPアドレスとの第3対応関係に書き換え、
書き換えた第3対応関係に基づいて、前記切り替え後のVMから転送されたパケットのヘッダに含まれる転送元のMACアドレスと転送元のIPアドレスを、書き換えたMACアドレスとIPアドレスとに書き換え、
書き換えられたパケットを外部のネットワークに転送する
処理を実行させることを特徴とする請求項1に記載のVM切り替えプログラム。 - 前記異常を検出する処理は、前記パケットを前記VMへ転送する際の前記パケットの順序と、前記VMから返信されるパケットの順序とに基づいて、前記VMの異常を検出する
ことを特徴とする請求項1に記載のVM切り替えプログラム。 - 前記異常を検出する処理は、入力されたパケットをキューに挿入し、前記キューから取り出されないパケットの数に基づいて、前記VMの異常を検出する
ことを特徴とする請求項1に記載のVM切り替えプログラム。 - 前記異常を検出する処理は、前記VMによって廃棄されたパケットの数に基づいて、前記VMの異常を検出する
ことを特徴とする請求項1に記載のVM切り替えプログラム。 - 前記異常を検出する処理は、前記VMに転送したパケットの数と、前記VMから返信されたパケットの数と、前記VMによって廃棄されたパケットの数とに基づいて、前記VMの異常を検出する
ことを特徴とする請求項1に記載のVM切り替えプログラム。 - 前記異常を検出する処理は、前記VMの状態を示す統計情報に基づいて、前記VMの異常を検出する
ことを特徴とする請求項1に記載のVM切り替えプログラム。 - 前記異常を検出する処理は、前記パケットを前記VMへ転送する際の時刻と、前記パケットに対する応答が到達する際の時刻との時刻差に基づいて、前記VMの異常を検出する
ことを特徴とする請求項1に記載のVM切り替えプログラム。 - パケットの転送先であるVMの異常を検出し、VMの切り替えが行われると、転送先のMACアドレスと切り替え前のVMのポート番号との第1対応関係を、該MACアドレスと切り替え後のVMのポート番号との第1対応関係に書き換える第1の書き換え部と、
書き換え後の第1対応関係と、切り替え後の転送先のVMのポート番号と転送先のMACアドレスと転送先のIPアドレスとの第2対応関係とに基づいて一致するポート番号から、前記切り替え後のVMの転送先のMACアドレスと転送先のIPアドレスとを決定する決定部と、
外部のネットワークから受信したパケットのヘッダに含まれる転送先のMACアドレスと転送先のIPアドレスとを、決定したMACアドレスとIPアドレスとに書き換える第2の書き換え部と、
書き換えられたパケットを前記切り替え後のVMに転送する転送部と、
を有することを特徴とする情報処理装置。 - コンピュータが、
パケットの転送先であるVMの異常を検出し、VMの切り替えが行われると、転送先のMACアドレスと切り替え前のVMのポート番号との第1対応関係を、該MACアドレスと切り替え後のVMのポート番号との第1対応関係に書き換え、
書き換え後の第1対応関係と、切り替え後の転送先のVMのポート番号と転送先のMACアドレスと転送先のIPアドレスとの第2対応関係とに基づいて一致するポート番号から、前記切り替え後のVMの転送先のMACアドレスと転送先のIPアドレスとを決定し、
外部のネットワークから受信したパケットのヘッダに含まれる転送先のMACアドレスと転送先のIPアドレスとを、決定したMACアドレスとIPアドレスとに書き換え、
書き換えられたパケットを前記切り替え後のVMに転送する
各処理を実行することを特徴とするVM切り替え方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2016125899A JP2017229030A (ja) | 2016-06-24 | 2016-06-24 | Vm切り替えプログラム、情報処理装置およびvm切り替え方法 |
US15/604,710 US20170373928A1 (en) | 2016-06-24 | 2017-05-25 | Computer-readable recording medium, information processing apparatus, and vm switching method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2016125899A JP2017229030A (ja) | 2016-06-24 | 2016-06-24 | Vm切り替えプログラム、情報処理装置およびvm切り替え方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2017229030A true JP2017229030A (ja) | 2017-12-28 |
Family
ID=60675684
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2016125899A Pending JP2017229030A (ja) | 2016-06-24 | 2016-06-24 | Vm切り替えプログラム、情報処理装置およびvm切り替え方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US20170373928A1 (ja) |
JP (1) | JP2017229030A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2021064855A (ja) * | 2019-10-11 | 2021-04-22 | 株式会社デンソー | 電子制御装置 |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108777645A (zh) * | 2018-09-13 | 2018-11-09 | 郑州云海信息技术有限公司 | 一种配置服务器网络ip信息的***及方法 |
CN109756368B (zh) * | 2018-12-24 | 2022-03-01 | 广州市百果园网络科技有限公司 | 设备异常变更的检测方法、装置、计算机可读存储介质及终端 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8582454B2 (en) * | 2010-04-08 | 2013-11-12 | Netscout Systems, Inc. | Real-time adaptive processing of network data packets for analysis |
JP5772434B2 (ja) * | 2011-09-20 | 2015-09-02 | 富士通株式会社 | 冗長化制御のためのプログラム、情報処理装置及び方法、通信装置、中継処理方法及びプログラム |
-
2016
- 2016-06-24 JP JP2016125899A patent/JP2017229030A/ja active Pending
-
2017
- 2017-05-25 US US15/604,710 patent/US20170373928A1/en not_active Abandoned
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2021064855A (ja) * | 2019-10-11 | 2021-04-22 | 株式会社デンソー | 電子制御装置 |
JP7205439B2 (ja) | 2019-10-11 | 2023-01-17 | 株式会社デンソー | 電子制御装置 |
Also Published As
Publication number | Publication date |
---|---|
US20170373928A1 (en) | 2017-12-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10764111B2 (en) | Preventing concurrent distribution of network data to a hardware switch by multiple controllers | |
US8566649B1 (en) | Fast port failover in a network switch | |
US20130346585A1 (en) | Network system, and policy route setting method | |
US9807157B2 (en) | Hybrid virtual load balancer | |
US20200084060A1 (en) | Method of controlling iot device using cloud platform, cloud server and system for controlling iot device | |
TW201524162A (zh) | 即時考量全球網路擁塞之工作負荷佈署 | |
JP6443864B2 (ja) | パケット紛失検出を実装するための方法、装置、およびシステム | |
JP2021136688A (ja) | タイムセンシティブネットワーキングネットワークにおけるストリームのルーティングパスを処理するデバイス及び方法 | |
US9847937B2 (en) | Hardware acceleration for routing programs | |
US11818038B2 (en) | Initiator-based data-plane validation for segment routed, multiprotocol label switched (MPLS) networks | |
US20160080266A1 (en) | Control method, information processing device, and communication system | |
JP2017229030A (ja) | Vm切り替えプログラム、情報処理装置およびvm切り替え方法 | |
US20160057043A1 (en) | Diagnostic routing system and method for a link access group | |
CN111801911A (zh) | 业务功能链拥塞跟踪 | |
JP2017118438A (ja) | パケット送信プログラム、情報処理装置、および、障害検出方法 | |
JP2020027961A (ja) | ミラーパケット転送プログラム及びミラーパケット転送方法 | |
CN110708275B (zh) | 一种协议报文的处理方法和装置 | |
TW202234190A (zh) | 控制系統、控制方法、控制程式產品、本地端機器、遠端機器、訊號處理方法、封包處理方法、訊號處理程式產品、以及封包處理程式產品 | |
WO2016173196A1 (zh) | 地址映射关系的学习方法及装置 | |
US10374874B2 (en) | Reducing data plane disruption in a virtual switch | |
WO2016056210A1 (ja) | サーバ、フロー制御方法および仮想スイッチ用プログラム | |
JP2016100621A (ja) | 伝送装置、伝送システム及び伝送方法 | |
JP2018005664A (ja) | 制御装置、情報処理システム、制御方法、及び、情報処理プログラム | |
WO2014191082A1 (en) | Detection of an unknown host device in a communication network | |
CN105991424B (zh) | 网络数据转发方法及装置 |