[go: up one dir, main page]

JP2015076643A - 制御プログラム、制御装置および制御方法 - Google Patents

制御プログラム、制御装置および制御方法 Download PDF

Info

Publication number
JP2015076643A
JP2015076643A JP2013209663A JP2013209663A JP2015076643A JP 2015076643 A JP2015076643 A JP 2015076643A JP 2013209663 A JP2013209663 A JP 2013209663A JP 2013209663 A JP2013209663 A JP 2013209663A JP 2015076643 A JP2015076643 A JP 2015076643A
Authority
JP
Japan
Prior art keywords
switch
load
communication
mode
information
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.)
Ceased
Application number
JP2013209663A
Other languages
English (en)
Inventor
真由子 森田
Mayuko Morita
真由子 森田
渡辺 進
Susumu Watanabe
進 渡辺
創 甫足
Hajime Hoashi
創 甫足
裕士 ▲高▼群
裕士 ▲高▼群
Yuji Takamure
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2013209663A priority Critical patent/JP2015076643A/ja
Priority to US14/503,543 priority patent/US9600319B2/en
Publication of JP2015076643A publication Critical patent/JP2015076643A/ja
Ceased legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/46Interconnection of networks
    • H04L12/4641Virtual LANs, VLANs, e.g. virtual private networks [VPN]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45595Network integration; Enabling network access in virtual machine instances
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/35Switches specially adapted for specific applications
    • H04L49/351Switches specially adapted for specific applications for local area network [LAN], e.g. Ethernet switches
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/70Virtual switches

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer And Data Communications (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

【課題】仮想スイッチから物理スイッチへのスイッチ処理のオフロードの実行を、仮想スイッチの処理負荷に応じて制御すること。
【解決手段】制御装置1は、情報処理装置2で動作する仮想スイッチ2aがスイッチ処理を行う第1のモードと、仮想スイッチ2aおよび物理スイッチ3が当該スイッチ処理を協働して行う第2のモードとの切り替えを制御する。受信部1aは、情報処理装置2の負荷の情報と、情報処理装置2で動作する仮想スイッチ2aが扱う通信の第1の通信量と、情報処理装置2と他の装置との通信の第2の通信量とを情報処理装置2から取得する。制御部1bは、取得した情報処理装置2の負荷の情報と第1の通信量と第2の通信量とに基づいて第1のモードから第2のモードへの切り替え可否を決定する。
【選択図】図1

Description

本発明は制御プログラム、制御装置および制御方法に関する。
現在、情報処理の分野では、物理的なコンピュータ(物理マシンや物理ホストと呼ぶことがある)上で、複数の仮想的なコンピュータ(仮想マシンや論理ホストと呼ぶことがある)を動作させる仮想化技術が利用されている。各仮想マシン上では、OS(Operating System)などのソフトウェアを実行できる。仮想化技術を利用する物理マシンは、複数の仮想マシンを管理するソフトウェアを実行する。
例えば、ハイパーバイザと呼ばれるソフトウェアが、CPU(Central Processing Unit)の処理能力やRAM(Random Access Memory)の記憶領域を、演算のリソースとして複数の仮想マシンに割り振ることがある。また、ハイパーバイザが仮想マシンの通信を中継する機能(仮想スイッチと呼ぶことがある)を物理マシン上で動作させることもある。
ここで、ソフトウェアによる処理の一部をハードウェアに処理させることで、ソフトウェア処理に伴う負荷を軽減することが考えられている(オフロードと呼ぶことがある)。例えば、ソフトウェアでの詳細検査が必要な箇所でソフトウェア処理に切り替わるように、ソフトウェア処理への切り替え条件を設定する提案がある。この提案では、1つのアプリケーションセッション中の所望箇所をソフトウェアで処理し、その他の箇所をハードウェアで処理する。また、仮想スイッチの処理(例えば、QoS(Quality of Service)やフィルタリングなど)を、外部の物理スイッチへオフロードすることも考えられている。
特開2007−272628号公報
大河原克行、"富士通、サーバー上の仮想スイッチ機能を10GbEスイッチにオフロードする技術"、[online]、平成22年6月10日、株式会社Impress Watch、[平成25年4月18日検索]、インターネット<URL:http://cloud.watch.impress.co.jp/docs/event/20100610_373167.html>
仮想スイッチから物理スイッチに処理をオフロードすることで、仮想スイッチの処理負荷を軽減させることはできる。しかし、仮想スイッチの処理負荷が低いような場合は、物理スイッチへオフロードせずに仮想スイッチで処理を実行した方が、処理性能の向上を見込める。したがって、例えば、仮想スイッチから物理スイッチへのオフロードを実施すべきか否かを判断して、オフロードの実施有無を動的に切り替えることが求められる。
具体的には、仮想スイッチから物理スイッチへのオフロードの実施可否を判断するためには、例えば、仮想スイッチの処理負荷を軽減する必要があるか否かと、仮想スイッチに処理負荷のかかる通信がどの程度発生しているかとを判断し、仮想スイッチから物理スイッチへのオフロード実施の適否を決定することが求められる。
しかし、仮想スイッチが動作する物理マシンの処理負荷や、物理マシンの通信量それぞれを単に取得、参照したとしても、仮想スイッチから物理スイッチへのオフロード実施の適否について適切な判断を行うことが可能な情報とはならない。
1つの側面では、本発明は、仮想スイッチから物理スイッチへのスイッチ処理のオフロードの実行を、仮想スイッチの処理負荷に応じて制御できる制御プログラム、制御装置および制御方法を提供することを目的とする。
1つの態様では、コンピュータによって実行される制御プログラムが提供される。この制御プログラムは、仮想スイッチが動作可能な装置と、装置の通信を中継する物理スイッチとに対し、仮想スイッチがスイッチ処理を行う第1のモードと、仮想スイッチおよび物理スイッチがスイッチ処理を協働して行う第2のモードとを切り替え可能な情報処理装置を制御するコンピュータに、装置の負荷の情報と、仮想スイッチが扱う通信の第1の通信量と、装置と他の装置との通信の第2の通信量とを装置から取得し、取得した装置の負荷の情報と第1の通信量と第2の通信量とに基づいて第1のモードから第2のモードへの切り替え可否を決定する、処理を実行させる。
また、1つの態様では、仮想スイッチが動作可能な装置と、装置の通信を中継する物理スイッチとに対し、仮想スイッチがスイッチ処理を行う第1のモードと、仮想スイッチおよび物理スイッチがスイッチ処理を協働して行う第2のモードとの切り替えを制御する制御装置が提供される。この制御装置は、受信部と制御部とを有する。受信部は、装置の負荷の情報と、仮想スイッチが扱う通信の第1の通信量と、装置と他の装置との通信の第2の通信量とを装置から取得する。制御部は、取得した装置の負荷の情報と第1の通信量と第2の通信量とに基づいて第1のモードから第2のモードへの切り替え可否を決定する。
また、1つの態様では、仮想スイッチが動作可能な装置と、装置の通信を中継する物理スイッチとを含み、仮想スイッチがスイッチ処理を行う第1のモードと、仮想スイッチおよび物理スイッチがスイッチ処理を協働して行う第2のモードとの切り替えを制御する制御方法が提供される。この制御方法では、コンピュータが、装置の負荷の情報と、仮想スイッチが扱う通信の第1の通信量と、装置と他の装置との通信の第2の通信量とを装置から取得し、取得した装置の負荷の情報と第1の通信量と第2の通信量とに基づいて第1のモードから第2のモードへの切り替え可否を決定する。
1つの側面では、仮想スイッチから物理スイッチへのスイッチ処理のオフロードの実行を、仮想スイッチの処理負荷に応じて制御できる。
第1の実施の形態の情報処理システムを示す図である。 第2の実施の形態の情報処理システムを示す図である。 制御サーバのハードウェア例を示す図である。 スイッチのハードウェア例を示す図である。 各装置のソフトウェア例を示す図である。 仮想スイッチ監視設定テーブルの例を示す図である。 物理スイッチ監視設定テーブルの例を示す図である。 サーバ測定テーブルの例を示す図である。 物理スイッチ測定テーブルの例を示す図である。 MIB情報の例を示す図である。 オフロード適否の判定例を示すフローチャートである。 物理スイッチの負荷の取得例を示すフローチャートである。 オフロード状態の解除の判定例を示すフローチャートである。 サーバの情報の取得例を示すフローチャートである。 オフロードの例を示す図である。 オフロード状態の解除の例を示す図である。 各装置の他のソフトウェア例を示す図である。 取得対象の情報の例を示す図である。
以下、本実施の形態を図面を参照して説明する。
[第1の実施の形態]
図1は、第1の実施の形態の情報処理システムを示す図である。第1の実施の形態の情報処理システムは、制御装置1、情報処理装置2,4および物理スイッチ3を含む。情報処理装置2と物理スイッチ3とは直接または間接に接続されている。例えば、情報処理装置2と物理スイッチ3とは所定のケーブルを介して直接接続される。あるいは、情報処理装置2と物理スイッチ3との間にリピータまたはリピータハブなどの他の装置を介在させることで、情報処理装置2と物理スイッチ3とを間接的に接続してもよい。制御装置1、情報処理装置2および物理スイッチ3は、ネットワーク5に接続されている。物理スイッチ3および情報処理装置4は、ネットワーク6に接続されている。
情報処理装置2では、仮想スイッチ2aおよび仮想マシン2b,2cが動作可能である。例えば、情報処理装置2により実行されるハイパーバイザが仮想スイッチ2aの機能を実現してもよい。また、ハイパーバイザが情報処理装置2のリソースを仮想マシン2b,2cに割り当ててもよい。
物理スイッチ3は、情報処理装置2,4間の通信を中継する。物理スイッチ3は、OSI(Open Systems Interconnection)参照レベルの第2層(L2:Layer2)や第3層(L3:Layer3)で通信を中継する中継装置でもよい。
第1の実施の形態の情報処理システムでは、仮想マシン2b,2c間のスイッチ処理を仮想スイッチ2aで行う第1のモードと、仮想スイッチ2aおよび物理スイッチ3が当該スイッチ処理を協働して行う第2のモードとを切り替え可能である。例えば、スイッチ処理は通信データの転送、QoS、フィルタリング(例えば、ACL(Access Control List)を用いたセキュリティ機能)およびミラーリングなどを含む。
第1の実施の形態の情報処理システムでは、これらのスイッチ処理を仮想スイッチ2aから物理スイッチ3に移し、仮想スイッチ2aおよび物理スイッチ3によりスイッチ処理を協働で行うことで、情報処理装置2の負荷軽減を図れる(オフロード)。ここで、第1のモードの状態をオフロードが解除された状態、第2のモードの状態をオフロード状態ともいえる。
制御装置1は、受信部1aおよび制御部1bを有する。制御部1bは、CPU、DSP(Digital Signal Processor)、ASIC(Application Specific Integrated Circuit)、FPGA(Field Programmable Gate Array)などを含み得る。制御部1bはプログラムを実行するプロセッサであってもよい。ここでいう「プロセッサ」には、複数のプロセッサの集合(マルチプロセッサ)も含まれ得る。制御装置1は、上記プロセッサとRAMなどのメモリとを含むコンピュータなどの情報処理装置でもよい。
受信部1aは、情報処理装置2の負荷の情報と、仮想スイッチ2aが扱う通信の第1の通信量と、情報処理装置2と他の装置(例えば、情報処理装置4)との通信の第2の通信量とを情報処理装置2から取得する。情報処理装置2と通信する他の装置が複数であれば、第2の通信量は、情報処理装置2と当該複数の他の装置との通信の通信量の合計である。例えば、受信部1aは、取得した各情報を制御装置1が備える記憶部(例えば、RAMやHDD(Hard Disk Drive)など)に格納できる。
制御部1bは、取得した情報処理装置2の負荷の情報と、第1の通信量と、第2の通信量とに基づいて第1のモードから第2のモードへの切り替え可否を決定する。例えば、制御部1bは、情報処理装置2の負荷が比較的大きく(例えば、第1の閾値以上)、かつ、第1,第2の通信量の合計に対する第1の通信量の割合が比較的大きい(例えば、第2の閾値以上)場合に、第1のモードから第2のモードへ切り替え可と決定してもよい。
情報処理装置2の負荷が比較的大きく、情報処理装置2における通信のうち、仮想スイッチ2aで扱われる通信量の割合が比較的大きい場合には、情報処理装置2において、仮想スイッチ2aの処理に起因する負荷が比較的大きいと推定できるからである。この場合、オフロードを行うことで、情報処理装置2の負荷を軽減できる可能性が高い。
この場合、制御部1bは情報処理装置2の負荷が比較的小さい(例えば、第1の閾値未満)か、または、第1,第2の通信量の合計に対する第1の通信量の割合が比較的小さい(例えば、第2の閾値未満)場合に、第1のモードから第2のモードへ切り替え不可と決定してもよい。
情報処理装置2の負荷が比較的小さければ情報処理装置2の演算のリソースに余裕があると考えられるからである。また、情報処理装置2における通信のうち、仮想スイッチ2aで扱われる通信の割合が比較的小さければ仮想スイッチ2aの処理に起因する負荷は比較的小さいと推定できるからである。この場合、オフロードを行わなくてもよいと考えられる。
制御部1bは、情報処理装置2から情報を取得し(ステップS1)、当該情報に基づいて第1のモードから第2のモードへ切り替えると決定した後、情報処理装置2および物理スイッチ3に対して切り替えを指示してもよい(ステップS2)。情報処理装置2および物理スイッチ3は、当該指示に応じて、第1のモードから第2のモードへの切り替えを行う(ステップS3)。
制御装置1によれば、受信部1aにより、情報処理装置2の負荷の情報と、仮想スイッチ2aが扱う通信の第1の通信量と、情報処理装置2と他の装置との通信の第2の通信量とが情報処理装置2から取得される。制御部1bにより、取得した情報処理装置2の負荷と、第1の通信量と、第2の通信量とに基づいて第1のモードから第2のモードへの切り替え可否が決定される。
これにより、仮想スイッチ2aの処理負荷を推定する情報を取得し、当該情報に基づいてモード切り替えを実行できる。具体的には次の通りである。例えば、仮想スイッチ2aの機能がハイパーバイザの機能の一部であると、ハイパーバイザによる負荷の何れの割合が仮想スイッチ2aの処理に起因するものであるかを特定できず、仮想スイッチ2aの負荷のみを計測できないことがある。一方、仮想スイッチ2aが動作する情報処理装置2の処理負荷や、情報処理装置2の通信量それぞれを単に取得、参照しても、仮想スイッチ2aの処理負荷を把握するのは困難である。
そこで、制御装置1では、情報処理装置2の負荷と、仮想スイッチ2aが扱う通信の第1の通信量と、情報処理装置2と他の装置との通信の第2の通信量とを情報処理装置2から取得する。これらの情報を用いれば、例えば、前述のように情報処理装置2の負荷が比較的大きく、かつ、仮想スイッチ2aの負荷が比較的大きいと推定される場合を適切に検出して、第1のモードから第2のモードへの切り替えを行える。
情報処理装置2の負荷を考慮する理由は、仮想スイッチ2aで扱われる通信の割合が比較的大きくても、情報処理装置2が必ずしも高負荷であるとは限らないからである。すなわち、情報処理装置2が比較的低負荷であるにも関わらずモード切り替えが行われることを抑えられる。
なお、受信部1aは、情報処理装置2の負荷として、仮想スイッチ2aを実行するハイパーバイザの処理による負荷を取得してもよい。例えば、制御部1bは、当該ハイパーバイザの処理による負荷が比較的大きく、かつ、情報処理装置2における通信のうち、仮想スイッチ2aに起因する通信の割合が比較的大きいと判断される場合に、モード切り替え可と決定する。これにより、例えば情報処理装置2の負荷の主要因が、仮想スイッチ2aの処理に起因する可能性が特に高いと推定される場合に、モード切り替えを行える。
また、受信部1aは、第1の通信量として、より絞り込んだ情報を取得することも考えられる。例えば、第1の通信量として、情報処理装置2上で動作する複数の仮想マシン(例えば、仮想マシン2b,2c)の間の仮想スイッチ2aを経由した通信の通信量を取得してもよい。仮想マシン間の当該通信量の割合が比較的大きい場合、仮想スイッチ2aにおけるデータ転送の処理やQoSなどのオフロード対象の処理の頻度が高まっており、それによって情報処理装置2の負荷も高まっていると推定されるからである。この場合、オフロードにより情報処理装置2の負荷を軽減できる可能性が特に高い。
また、受信部1aは、第2のモードへの切り替え後にも情報処理装置2や物理スイッチ3の負荷や通信量の取得を継続してもよい。そして、制御部1bは、情報処理装置2や物理スイッチ3の負荷に応じて、第2のモードから第1のモードへの切り替え(オフロード状態の解除)可否を決定してもよい。例えば、オフロード後に、物理スイッチ3の負荷が比較的大きくなり、情報処理装置2の負荷が比較的小さくなったのであれば、第2のモードから第1のモードへ切り替えた方が性能向上を図れる可能性があるからである。
受信部1aは、例えば、SNMP(Simple Network Management Protocol)を用いて、情報処理装置2および物理スイッチ3から負荷や通信量の情報を取得してもよい。これにより、情報処理装置2および物理スイッチ3から共通の方法により効率的に情報収集できる。
更に、制御装置1による処理は、情報処理装置2で実現されてもよい。すなわち、制御装置1で実行される処理と情報処理装置2で実行される処理とを、ハードウェア的に1つの情報処理装置2で実行させることも可能である。その場合、情報処理装置2が備える制御部(例えば、プロセッサ)が、仮想スイッチ2aおよび物理スイッチ3から取得した情報に基づいて、制御部1bと同様の処理を実行する。
[第2の実施の形態]
図2は、第2の実施の形態の情報処理システムを示す図である。第2の実施の形態の情報処理システムは、制御サーバ100、サーバ200、スイッチ300およびクライアント400を含む。制御サーバ100、サーバ200およびスイッチ300は、ネットワーク10に接続されている。サーバ200は、所定のケーブルを介してスイッチ300に接続されている。スイッチ300およびクライアント400は、ネットワーク20に接続されている。ネットワーク10,20は、例えばLAN(Local Area Network)である。ネットワーク10,20は、例えばWAN(Wide Area Network)やインターネットなどの広域ネットワークでもよい。ネットワーク10は、運用管理用のネットワークでもよい。
制御サーバ100は、サーバ200およびスイッチ300の運用管理を行うサーバコンピュータである。制御サーバ100は、サーバ200およびスイッチ300から管理用の情報を収集する。当該情報の収集には、SNMPを利用できる。SNMPは管理用の情報を取得するためのプロトコルである。制御サーバ100はマネージャ、サーバ200およびスイッチ300はエージェントとして機能する。制御サーバ100(マネージャ)は、サーバ200およびスイッチ300(エージェント)により管理されるMIB(Message Information Base)と呼ばれる管理情報群から、所定の情報を収集する。
また、制御サーバ100は、サーバ200のオフロードを制御する。具体的には、サーバ200で動作する仮想スイッチのデータ転送、QoS、フィルタリングなどの機能をスイッチ300に移行させる。物理スイッチ(スイッチ300)を用いたオフロードは、例えばVEPA(Virtual Ethernet Port Aggregator)(Ethernetは登録商標)と呼ばれる方法を用いて実現され得る。
サーバ200は、ハイパーバイザや複数の仮想マシンを実行するサーバコンピュータである。ハイパーバイザは、サーバ200のCPUやRAMなどのリソースを複数の仮想マシンに割り当てる。ハイパーバイザは、複数の仮想マシン間の通信や仮想マシンと他の装置(例えば、クライアント400)との通信を中継する機能(仮想スイッチ)も担う。
スイッチ300は、サーバ200と他の装置(例えば、クライアント400)との通信を中継する中継装置である。スイッチ300は、OSI参照モデルの第2層で通信の中継を行うL2スイッチである。ただし、スイッチ300は、他の階層で通信の中継を行うものでもよい。例えば、スイッチ300はL3スイッチやルータなどでもよい。
クライアント400は、ユーザにより利用されるクライアントコンピュータである。例えば、ユーザは、サーバ200で動作する仮想マシンにより提供される各種サービスを、クライアント400を用いて利用できる。ただし、ネットワーク20には更に複数のクライアントが接続され得る。サーバ200上の仮想マシンは、当該複数のクライアントからもアクセスされ得る。
図3は、制御サーバのハードウェア例を示す図である。制御サーバ100は、プロセッサ101、RAM102、HDD103、NIC(Network Interface Card)104、画像信号処理部105、入力信号処理部106、ディスクドライブ107および機器接続部108を有する。各ユニットが制御サーバ100のバスに接続されている。サーバ200およびクライアント400も制御サーバ100と同様のユニットを用いて実現できる。
プロセッサ101は、制御サーバ100の情報処理を制御する。プロセッサ101は、マルチプロセッサであってもよい。プロセッサ101は、例えばCPU、DSP、ASICまたはFPGAなどである。プロセッサ101は、CPU、DSP、ASIC、FPGAなどのうちの2以上の要素の組み合わせであってもよい。
RAM102は、制御サーバ100の主記憶装置である。RAM102は、プロセッサ101に実行させるOSのプログラムやアプリケーションプログラムの少なくとも一部を一時的に記憶する。また、RAM102は、プロセッサ101による処理に用いる各種データを記憶する。
HDD103は、制御サーバ100の補助記憶装置である。HDD103は、内蔵した磁気ディスクに対して、磁気的にデータの書き込みおよび読み出しを行う。HDD103には、OSのプログラム、アプリケーションプログラム、および各種データが格納される。制御サーバ100は、フラッシュメモリやSSD(Solid State Drive)などの他の種類の補助記憶装置を備えてもよく、複数の補助記憶装置を備えてもよい。
NIC104は、ネットワーク10を介して他の装置(例えば、サーバ200やスイッチ300)と通信を行える通信インタフェースである。
画像信号処理部105は、プロセッサ101からの命令に従って、制御サーバ100に接続されたディスプレイ11に画像を出力する。ディスプレイ11としては、CRT(Cathode Ray Tube)ディスプレイや液晶ディスプレイなどを用いることができる。
入力信号処理部106は、制御サーバ100に接続された入力デバイス12から入力信号を取得し、プロセッサ101に出力する。入力デバイス12としては、例えば、マウスやタッチパネルなどのポインティングデバイス、キーボードなどを用いることができる。
ディスクドライブ107は、レーザ光などを利用して、光ディスク13に記録されたプログラムやデータを読み取る駆動装置である。光ディスク13として、例えば、DVD(Digital Versatile Disc)、DVD−RAM、CD−ROM(Compact Disc Read Only Memory)、CD−R(Recordable)/RW(ReWritable)などを使用できる。ディスクドライブ107は、例えば、プロセッサ101からの命令に従って、光ディスク13から読み取ったプログラムやデータをRAM102またはHDD103に格納する。
機器接続部108は、制御サーバ100に周辺機器を接続するための通信インタフェースである。例えば、機器接続部108にはメモリ装置14やリーダライタ装置15を接続できる。メモリ装置14は、機器接続部108との通信機能を搭載した記録媒体である。リーダライタ装置15は、メモリカード16へのデータの書き込み、またはメモリカード16からのデータの読み出しを行う装置である。メモリカード16は、カード型の記録媒体である。機器接続部108は、例えば、プロセッサ101からの命令に従って、メモリ装置14またはメモリカード16から読み取ったプログラムやデータをRAM102またはHDD103に格納する。
図4は、スイッチのハードウェア例を示す図である。スイッチ300は、プロセッサ301、RAM302、ROM303、スイッチ処理回路304およびポート部305を有する。
プロセッサ301は、スイッチ300の情報処理を制御する。プロセッサ301は、マルチプロセッサであってもよい。プロセッサ301は、例えばCPU、DSP、ASICまたはFPGAなどである。プロセッサ301は、CPU、DSP、ASIC、FPGAなどのうちの2以上の要素の組み合わせであってもよい。
RAM302は、ファームウェアのプログラムやデータを一時的に記憶する。RAM302に記憶されたプログラムやデータは、プロセッサ301の処理に用いられる。
ROM303は、ファームウェアのプログラムやデータを予め記憶している。ROM303は、フラッシュメモリなど、書き換え可能な不揮発性メモリであってもよい。ROM303に記憶されたプログラムやデータは、プロセッサ301の処理に用いられる。
スイッチ処理回路304は、ポート部305の何れかのポートで受信されたパケットを、他のポートへ送出する。また、スイッチ処理回路304は、QoS処理、フィルタ処理およびミラー処理を行う。QoS処理は、例えばマーキング、ポリシングおよびスケジューリングなどである。フィルタ処理は、例えば送受信ポートの組み合わせや、送受信MAC(Media Access Control)アドレスの組み合わせに応じたフィルタリングである。ミラー処理は、例えばあるポートから入力されたフレームを複製して、宛先となるポートおよび他のポート(例えば、モニタリング用のポート)から送出する処理である。
スイッチ処理回路304は、これらのスイッチ処理を行う専用のプロセッサを備えており、当該スイッチ処理をハードウェアで行える。スイッチ処理回路304は、オフロード時には、サーバ200で動作する仮想スイッチのスイッチ処理を担うこともできる。
ポート部305は、複数のポートを備えたネットワークインタフェースである。複数のポートは、ポート305a,305b,305c,305dを含む。ポート305aはサーバ200に接続されている。ポート305cはネットワーク10に接続されている。ポート305dはネットワーク20に接続されている。
図5は、各装置のソフトウェア例を示す図である。図5に示す各部は、各装置のRAMに記憶されたプログラムを、各装置のプロセッサが実行することで実現される。制御サーバ100は、記憶部110、収集部120、負荷判定部130および経路制御部140を有する。
記憶部110は、収集部120、負荷判定部130および経路制御部140の処理に用いられる情報を記憶する。具体的には、記憶部110は、サーバ200およびスイッチ300から情報を収集したり、負荷を判定したりするための設定情報を記憶する。また、記憶部110は、収集部120によりサーバ200およびスイッチ300から取得された情報を記憶する。記憶部110は、RAM102やHDD103などの記憶領域を用いて実現できる。
収集部120は、記憶部110に記憶された設定情報に基づいて、サーバ200およびスイッチ300から情報を取得し、記憶部110に格納する。具体的には、収集部120は、ハイパーバイザの処理に伴うサーバ200の負荷を取得する。また、収集部120は、サーバ200における通信の通信量の情報を取得する。
当該通信量の情報は、(1)サーバ200で動作する仮想マシン間の通信の通信量、および、(2)サーバ200上の仮想マシンがサーバ200の外部の他の装置と通信した通信量を含む。仮想マシンはサーバ200で動作するから、(2)の通信量を、サーバ200と他の装置との間の通信の通信量ということもできる。
ここで、収集部120は、(1)および(2)の通信量を個別にサーバ200から取得することもできる(第1の方法)。あるいは、(1)の通信量と(1)および(2)の通信量の合計とをサーバ200から取得することもできる(第2の方法)。後述するように、(1)および(2)の通信量の合計を仮想スイッチの負荷の推定に用いるからである。
第1の方法のように個別に(1)および(2)の通信量を取得するなら、収集部120は、(1)および(2)の通信量を合計して、当該合計値を記録する。第2の方法のように、(1)および(2)の通信量の合計したものをサーバ200から得られるなら、取得した合計値を記録する。第2の実施の形態では第2の方法で通信量を取得することを想定する。第1の方法の場合でも、収集部120で通信量の合計を得る以外は同様の処理である。第2の方法の場合、当該合計から(1)の通信量を減算すれば、(2)の通信量を得られるから、(1)の通信量と、(1)および(2)の通信量の合計との組を(2)の通信量を示す情報ということもできる。収集部120は、SNMPを用いて、これらの情報の収集を行える。
負荷判定部130は、サーバ200およびスイッチ300から収集部120により取得された情報に基づいて、サーバ200で動作する仮想スイッチの負荷を評価する。負荷判定部130は、当該仮想スイッチについて評価した負荷に基づいて、オフロードを行うか否かを決定する。負荷判定部130は、オフロードを行うと決定すると、オフロードの実行を経路制御部140に通知する。
ここで、収集部120は、オフロード状態にあるときも、サーバ200およびスイッチ300の負荷を継続して取得する。経路制御部140は、当該負荷に応じてオフロード状態を解除するか否かを決定する。収集部120は、オフロード状態を解除すると決定すると、オフロード状態の解除を経路制御部140に通知する。
経路制御部140は、負荷判定部130からオフロードの実行を通知されると、サーバ200およびスイッチ300にオフロードの実行を指示する。経路制御部140は、負荷判定部130からオフロード状態の解除を通知されると、サーバ200およびスイッチ300にオフロード状態の解除を指示する。
サーバ200は、ハイパーバイザ210、仮想マシン220,230,240および記憶部250を有する。ハイパーバイザ210は、仮想マシン220,230,240にサーバ200のリソースの割り当てを行う。ハイパーバイザ210は、仮想スイッチ211および監視部212を有する。
仮想スイッチ211は、仮想マシン220,230,240の間の通信および仮想マシン220,230,240と他の装置(例えば、クライアント400)との間の通信を中継する。仮想スイッチ211は、スイッチ処理部211aおよびポート211b,211c,211d,211eを有する。
スイッチ処理部211aは、仮想スイッチ211が有する何れかのポートで受信されたパケットを他のポートへ送出する。また、スイッチ処理部211aは、QoS処理を実行する。例えば、スイッチ処理部211aは、ポート単位にQoS処理を行うこともできる。また、スイッチ処理部211aは、スイッチ処理回路304と同様に、フィルタ処理やミラーリング処理を実行する。このように仮想スイッチ211は、スイッチ処理をソフトウェアで行う。オフロード時には、スイッチ処理部211aは、スイッチ300と協働して当該スイッチ処理を行える。
ポート211b,211c,211d,211eは、仮想スイッチ211が有する仮想的なポートである。例えば、仮想マシン220はポート211bを介して、他の仮想マシンや他の装置と通信できる。仮想マシン230はポート211cを介して、他の仮想マシンや他の装置と通信できる。仮想マシン240はポート211dを介して、他の仮想マシンや他の装置と通信できる。ポート211eは、仮想マシン220,230,240がサーバ200の外部の装置と通信する際に用いられる。
監視部212は、サーバ200が備えるプロセッサのハイパーバイザ210による負荷(例えば、ハイパーバイザ210の処理によるCPU使用率)を定期的に取得する。監視部212は、仮想スイッチ211を経由した仮想マシン220,230,240の間の通信(以下、仮想マシン間の通信ということがある)の通信量を定期的に取得する。また、監視部212は、仮想マシン220,230,240と外部の装置(例えば、クライアント400)との間の仮想スイッチ211を経由した通信量を定期的に取得する。
監視部212は、例えば、仮想的なポート211b,211c,211d,211eから入力された通信データの宛先を参照し、仮想スイッチ211の何れのポートから当該通信データが出力されるものかを判別する。何れかの仮想マシンが接続されたポートより入力され、他の仮想マシンが接続されたポートから出力されるなら仮想マシン間の通信である。また、入力元または出力先がポート211eであれば、外部の装置との間の通信である。
監視部212は、制御サーバ100からの要求に応じて、取得した各情報を制御サーバ100に提供する。具体的には、監視部212は、サーバ200のハイパーバイザ210による負荷を制御サーバ100に提供する。監視部212は、仮想スイッチ211を経由した仮想マシン220,230,240の間の通信の通信量を制御サーバ100に提供する。監視部212は、当該仮想マシン間の通信量(第1の通信量)と、仮想マシン220,230,240と外部の装置との間の仮想スイッチ211を経由した通信量(第2の通信量)との和(総通信量)を制御サーバ100に提供する。なお、第1,第2の通信量を別個に制御サーバ100に提供し、制御サーバ100の処理に応じて、制御サーバ100が第1,第2の通信量の和を取ることで総通信量を算出してもよい。
ここで、監視部212は、SNMPを用いて各情報を制御サーバ100に提供できる。例えば、収集部120は、当該負荷や通信量を示す所定のMIB情報を指定したSNMP要求をサーバ200に送信する。すると、収集部120は、当該SNMP要求に対する応答としてサーバ200から当該MIB情報を取得できる。
仮想マシン220,230,240は、サーバ200で動作する仮想的なコンピュータである。仮想マシン220,230,240は個別にOSを実行し、各種サービスをクライアント400に提供する。記憶部250は、ハイパーバイザ210の処理に用いられる情報を記憶する。具体的には、記憶部250は、監視部212により取得された情報を記憶する。記憶部250は、サーバ200が有するRAMやHDDなどの記憶領域を用いて実現できる。
スイッチ300は、記憶部310および監視部320を有する。記憶部310は、監視部320により取得された情報を記憶する。記憶部310は、スイッチ300が有するRAMなどの記憶領域を用いて実現できる。
監視部320は、スイッチ300の負荷を定期的に取得する。具体的には、監視部320は、スイッチ処理回路304が備えるスイッチ処理用のプロセッサの使用率を取得する。監視部320は、制御サーバ100からの要求に応じて、取得した情報を制御サーバ100に提供する。
ここで、収集部120は、当該負荷を示す所定のMIB情報(スイッチ300の機種に固有のもの)を指定したSNMP要求をスイッチ300に送信する。すると、収集部120は、当該要求に対する応答としてスイッチ300から当該MIB情報を取得できる。
図6は、仮想スイッチ監視設定テーブルの例を示す図である。仮想スイッチ監視設定テーブル111は、サーバ200および仮想スイッチ211の監視を行うための設定情報である。仮想スイッチ監視設定テーブル111は、記憶部110に格納される。仮想スイッチ監視設定テーブル111は、パラメータ名、値および説明の項目を含む。パラメータ名の項目には、パラメータの名称が登録される。値の項目には、パラメータの設定値が登録される。説明の項目には、パラメータの説明や値の単位が登録される。
例えば、仮想スイッチ監視設定テーブル111には、次のようなパラメータとその設定値が登録されている。第1に、パラメータ名が“perf_interval_hv_cpu”、値が“30”、説明が“MIB取得間隔(秒)”というパラメータである。SNMPを用いたMIB情報の取得間隔が30秒であることを示す。
第2に、パラメータ名が“perf_time_hv_cpu”、値が“300”、説明が“負荷計算間隔(秒)”というパラメータである。ハイパーバイザ210によるCPU負荷および仮想スイッチ211の負荷を計算する間隔が300秒であることを示す。
第3に、パラメータ名が“perf_offload_avg_cpu”、値が“95”、説明が“HV(Hyper Visor)のCPU使用率閾値(%)”というパラメータである。オフロードを行うべきと判断するハイパーバイザ210のCPU使用率の下限が95%であることを示す。なお、収集部120は、当該CPU使用率として、ハイパーバイザ210のカーネルモードのCPU使用率を取得してもよい。
第4に、パラメータ名が“perf_offload_avg_io”、値が“30”、説明が“仮想スイッチ負荷閾値(%)”というパラメータである。オフロードを行うべきと判断する仮想スイッチ211の総通信量に対する仮想マシン間の通信量の割合の下限が30%であることを示す。上記設定によれば、サーバ200において、ハイパーバイザ210によるCPU使用率が95%以上、かつ、仮想スイッチ211の総通信量に対する仮想マシン間の通信量の割合が30%以上である場合に、オフロードを行うと判定されることになる。
図7は、物理スイッチ監視設定テーブルの例を示す図である。物理スイッチ監視設定テーブル112は、スイッチ300の監視を行うための設定情報である。物理スイッチ監視設定テーブル112は、記憶部110に格納される。物理スイッチ監視設定テーブル112は、パラメータ名、値および説明の項目を含む。パラメータ名の項目には、パラメータの名称が登録される。値の項目には、パラメータの設定値が登録される。説明の項目には、パラメータの説明や値の単位が登録される。
例えば、物理スイッチ監視設定テーブル112には、次のようなパラメータとその設定値が登録されている。第1に、パラメータ名が“perf_interval_psw_cpu”、値が“30”、説明が“MIB取得間隔(秒)”というパラメータである。SNMPを用いたMIB情報の取得間隔が30秒であることを示す。
第2に、パラメータ名が“perf_time_psw_cpu”、値が“300”、説明が“負荷計算間隔(秒)”というパラメータである。スイッチ300の負荷を計算する間隔が300秒であることを示す。
第3に、パラメータ名が“perf_offload_avg_psw_load”、値が“30”、説明が“物理スイッチ負荷閾値(%)”というパラメータである。オフロードを行うべきと判断するスイッチ300の負荷の上限が30%であることを示す。この設定によれば、スイッチ300の負荷が30%以下である場合に、オフロードを行うと判定されることになる。
ここで、仮想スイッチ監視設定テーブル111および物理スイッチ監視設定テーブル112の設定内容は一例である。例えば、制御サーバ100は、運用に応じた各設定値のユーザによる登録を許容する。
図8は、サーバ測定テーブルの例を示す図である。サーバ測定テーブル113は、サーバ200に関して取得された情報を記録するためのテーブルである。サーバ測定テーブル113は、記憶部110に格納される。サーバ測定テーブル113は、測定回、ハイパーバイザ(HV:Hyper Visor)のCPU使用率(%)、仮想マシン間の通信量(bytes)および総通信量(bytes)の項目を含む(以下、項目名をいうときは単位を省略する)。
測定回の項目には、測定回数が登録される。例えば、仮想スイッチ監視設定テーブル111の設定では、MIB取得間隔が30秒で、負荷計算間隔が300秒である。したがって、1回分の負荷計算までにMIB情報が10回取得されることになる。HVのCPU使用率の項目には、HVのCPU使用率が登録される。仮想マシン間の通信量の項目には、仮想スイッチ211を経由した仮想マシン間の通信の通信量が登録される。総通信量の項目には、仮想スイッチ211を経由した通信の総通信量が登録される。仮想マシン間の通信量および総通信量の項目に登録される通信量は、MIB情報を前回取得してからの積算量である。例えば、MIB取得間隔が30秒であれば、30秒の積算値ということになる。
例えば、サーバ測定テーブル113には、測定回が“1回目”、HVのCPU使用率が“96”、仮想マシン間の通信量が“1234”、総通信量が“5678”という情報が登録される。これは、サーバ200に対する1回目(前回負荷計算を行った直後から1回目)のMIB情報の取得時に、ハイパーバイザ210のCPU使用率が96%であったことを示す。また、仮想スイッチ211を経由した仮想マシン間の通信量(過去30秒の積算)が1234bytesであったことを示す。更に、仮想スイッチ211を経由した総通信量(過去30秒の積算)が5678bytesであったことを示す。他の測定回の情報も同様である。
図9は、物理スイッチ測定テーブルの例を示す図である。物理スイッチ測定テーブル114は、スイッチ300に関して取得された情報を記録するためのテーブルである。物理スイッチ測定テーブル114は、記憶部110に格納される。物理スイッチ測定テーブル114は、測定回および物理スイッチ負荷(%)の項目を含む(以下、項目名をいうときは単位を省略する)。
測定回の項目には、測定回数が登録される。例えば、物理スイッチ監視設定テーブル112の設定では、MIB取得間隔が30秒で、負荷計算間隔が300秒である。したがって、1回分の負荷計算までにMIB情報が10回取得されることになる。物理スイッチ負荷の項目には、スイッチ300に対して取得された負荷が登録される。
例えば、物理スイッチ測定テーブル114には、測定回が“1回目”、物理スイッチ負荷が“20”という情報が登録される。これは、スイッチ300に対する1回目(前回負荷計算を行った直後から1回目)のMIB情報の取得時に、スイッチ300の負荷が20%であったことを示す。
なお、スイッチ300の負荷としては、前述のように機種固有の値を取得することができる。例えば、収集部120は、所定時間(5分間、1分間、5秒間など)におけるスイッチ処理回路304が備えるスイッチ処理用プロセッサの平均使用率(平均ビジー率)をスイッチ300の負荷として取得してもよい。
図10は、MIB情報の例を示す図である。MIBツリーTは、MIB情報のツリー構造を例示している。例えば、プライベートMIBとして、ハイパーバイザ210のCPU使用率、仮想スイッチ211経由の仮想マシン間の通信量、仮想スイッチ211経由の総通信量に対応する各MIBオブジェクトを用意する。収集部120は、各MIBオブジェクトの識別子(例えば、OID(Object IDentifier))を指定したSNMP要求をサーバ200に送信する。すると、監視部212は、指定された識別子に対応する情報を記憶部250から取得して、制御サーバ100に提供する。
図11は、オフロード適否の判定例を示すフローチャートである。以下、図11に示す処理をステップ番号に沿って説明する。以下に示す処理は、オフロード状態ではないときに実行される。
(S11)収集部120は、サーバ200からMIB情報を取得する。収集部120が取得する情報には、ハイパーバイザ210のCPU使用率、仮想スイッチ211経由の仮想マシン間の通信量、仮想スイッチ211経由の総通信量が含まれる。収集部120は、仮想スイッチ監視設定テーブル111に登録されたMIB取得間隔(例えば、30秒)で、当該MIB情報の取得を行う。収集部120は、取得した情報をサーバ測定テーブル113に登録する(測定回は、後述するステップS13の負荷計算を行った直後であれば1回目であり、その後1ずつ加算して登録する)。
(S12)負荷判定部130は、仮想スイッチ監視設定テーブル111を参照して、前回ハイパーバイザ210の負荷計算を行ってから(初回の場合はサーバ200からMIB情報の取得を開始してから)、負荷計算間隔分の時間が経過したか否かを判定する。負荷計算間隔分の時間が経過した場合、処理をステップS13に進める。負荷計算間隔分の時間が経過していない場合、処理をステップS11に進める。例えば、仮想スイッチ監視設定テーブル111によれば負荷計算間隔は300秒である。
(S13)負荷判定部130は、サーバ測定テーブル113を参照して、ハイパーバイザ210の平均CPU使用率(avg_cpu)を算出する。例えば、サーバ測定テーブル113には、10回分の測定値が登録されるから、各回の測定値の合計を10で割った値がハイパーバイザ210の平均CPU使用率である(これを負荷計算と称している)。
(S14)負荷判定部130は、ステップS13で求めた平均CPU使用率が、仮想スイッチ監視設定テーブル111に登録されたCPU使用率閾値(例えば、95%)以上であるか否かを判定する。平均CPU使用率がCPU使用率閾値以上である場合、処理をステップS15に進める。平均CPU使用率がCPU使用率閾値未満である場合、処理をステップS11に進める。負荷判定部130は、処理をステップS11に進める際に、サーバ測定テーブル113の登録内容をクリアする。
(S15)負荷判定部130は、サーバ測定テーブル113を参照して、仮想スイッチ211を経由した仮想マシン間の通信量の合計D1(sum_pkt_vm)を算出する。例えば、サーバ測定テーブル113には、仮想マシン間の通信量の10回分の測定値が登録されるから、これら10回分の測定値の合計が合計D1である。
(S16)負荷判定部130は、サーバ測定テーブル113を参照して、仮想スイッチ211を経由した総通信量の合計D2(sum_pkt_all)を算出する。例えば、サーバ測定テーブル113には、総通信量の10回分の測定値が登録されるから、これら10回分の測定値の合計が合計D2である。
(S17)負荷判定部130は、総通信量に対する仮想スイッチ間の通信の割合(D1÷D2×100(%))が、仮想スイッチ監視設定テーブル111に登録された仮想スイッチ負荷閾値(例えば、30%)以上であるか否かを判定する。当該割合が仮想スイッチ負荷閾値以上である場合、処理をステップS18に進める。当該割合が仮想スイッチ負荷閾値未満である場合、処理をステップS11に進める。負荷判定部130は、処理をステップS11に進める際に、サーバ測定テーブル113の登録内容をクリアする。
(S18)負荷判定部130は、スイッチ300の平均負荷が、物理スイッチ監視設定テーブル112に登録された物理スイッチ負荷閾値(例えば、30%)以下であるか否かを判定する。スイッチ300の平均負荷が、物理スイッチ負荷閾値以下である場合、処理をステップS19に進める。スイッチ300の平均負荷が、物理スイッチ負荷閾値よりも大きい場合、処理をステップS11に進める。負荷判定部130は、処理をステップS11またはステップS19に進める際に、サーバ測定テーブル113の登録内容をクリアする。また、図12で後述するように負荷判定部130は、スイッチ300の平均負荷を継続して取得し、記憶部110に格納している。
(S19)負荷判定部130は、オフロードの実行を経路制御部140に通知する。経路制御部140は、サーバ200およびスイッチ300にオフロードの実行を指示する。サーバ200およびスイッチ300は、当該指示を受けるとオフロードを実行する。
このようにして、制御サーバ100は、サーバ200の負荷および通信量に基づいて、オフロード実行の可否を決定する。なお、スイッチ300の負荷に関わらずオフロードを実行することも考えられる。その場合、ステップS17でD1÷D2×100が仮想スイッチ負荷閾値以上と判定されたときに、ステップS18をスキップしてステップS19を実行してもよい。次に、制御サーバ100によるスイッチ300の負荷の取得を説明する。
図12は、物理スイッチの負荷の取得例を示すフローチャートである。以下、図12に示す処理をステップ番号に沿って説明する。
(S21)収集部120は、サーバ200およびスイッチ300でオフロードが実行された状態であるか否かを判定する。オフロードが実行された状態である場合、処理を終了する。オフロードが実行された状態でない場合、処理をステップS22に進める。例えば、経路制御部140によりサーバ200およびスイッチ300に送信された直前の指示がオフロードの実行指示であれば、オフロードが実行された状態である。また、当該直前の指示がオフロード状態の解除指示であれば、オフロードが実行された状態ではない。
(S22)収集部120は、スイッチ300からMIB情報を取得する。収集部120が取得する情報には、スイッチ300の負荷の情報が含まれる。収集部120は、物理スイッチ監視設定テーブル112に登録されたMIB取得間隔(例えば、30秒)で、当該MIB情報の取得を行う。収集部120は、取得した情報を物理スイッチ測定テーブル114に登録する(測定回は、後述するステップS24の負荷計算を行った直後であれば1回目であり、その後1ずつ加算して登録する)。
(S23)収集部120は、物理スイッチ監視設定テーブル112を参照して、前回スイッチ300の負荷計算を行ってから(初回の場合はスイッチ300からMIB情報の取得を開始してから)、負荷計算間隔分の時間が経過したか否かを判定する。負荷計算間隔分の時間が経過した場合、処理をステップS24に進める。負荷計算間隔分の時間が経過していない場合、処理をステップS21に進める。例えば、物理スイッチ監視設定テーブル112によれば負荷計算間隔は300秒である。
(S24)負荷判定部130は、物理スイッチ測定テーブル114を参照して、スイッチ300の平均負荷を算出する。例えば、物理スイッチ測定テーブル114には、10回分の測定値が登録されるから、各回の測定値の合計を10で割った値がスイッチ300の平均負荷である(これを負荷計算と称している)。負荷判定部130は、算出した平均負荷を記憶部110に格納する(最新の値を保持しておけばよい)。負荷判定部130は、物理スイッチ測定テーブル114の登録内容をクリアする。そして、処理をステップS21に進める。
このようにして、制御サーバ100は、スイッチ300の負荷も継続的に監視する。ただし、前述のとおり、図11のステップS18をスキップする場合には、制御サーバ100は、図12に示したスイッチ300の負荷の監視を行わなくてもよい。
また、ステップS24の平均負荷の算出は、物理スイッチの機種によって種々の方法を用いることができる。物理スイッチの機種によって取得できるMIB情報が異なるためである。前述のようにスイッチ処理用のプロセッサの使用率(例えば、過去の所定時間の平均使用率など)を取得できれば、これを計測回数で割ることで物理スイッチの平均負荷を得られる。また、例えば、所定時間内の当該プロセッサの総サイクル数やアイドルサイクル数などの情報を取得できれば、(総サイクル数−アイドルサイクル数)÷総サイクル数を求めることで、当該時間における平均の負荷を得ることもできる。
制御サーバ100は、オフロードの指示を行った直後(図11のステップS19の直後)に、サーバ測定テーブル113、物理スイッチ測定テーブル114の登録内容および各監視用のタイマ値をリセットしてもよい。
制御サーバ100は、オフロードが実行された後も継続的にサーバ200およびスイッチ300から前述のMIB情報を収集し、オフロード状態の解除可否の決定を行う。次に、その手順を説明する。
図13は、オフロード状態の解除の判定例を示すフローチャートである。以下、図13に示す処理をステップ番号に沿って説明する。以下に示す処理は、オフロード状態であるときに実行される。
(S31)収集部120は、スイッチ300からMIB情報を取得する。収集部120が取得する情報には、スイッチ300の負荷の情報が含まれる。収集部120は、物理スイッチ監視設定テーブル112に登録されたMIB取得間隔(例えば、30秒)で、当該MIB情報の取得を行う。収集部120は、取得した情報を物理スイッチ測定テーブル114に登録する(測定回は、後述するステップS33の負荷計算を行った直後であれば1回目であり、その後1ずつ加算して登録する)。
(S32)収集部120は、物理スイッチ監視設定テーブル112を参照して、前回スイッチ300の負荷計算を行ってから(初回の場合はスイッチ300からMIB情報の取得を開始してから)、負荷計算間隔分の時間が経過したか否かを判定する。負荷計算間隔分の時間が経過した場合、処理をステップS33に進める。負荷計算間隔分の時間が経過していない場合、処理をステップS31に進める。例えば、物理スイッチ監視設定テーブル112によれば負荷計算間隔は300秒である。
(S33)負荷判定部130は、物理スイッチ測定テーブル114を参照して、スイッチ300の平均負荷を算出する。例えば、物理スイッチ測定テーブル114には、10回分の測定値が登録されるから、各回の測定値の合計を10で割った値がスイッチ300の平均負荷である。
(S34)負荷判定部130は、ステップS33で求めたスイッチ300の平均負荷が、物理スイッチ監視設定テーブル112に登録された物理スイッチ負荷閾値(例えば、30%)よりも大きいか否かを判定する。スイッチ300の平均負荷が物理スイッチ負荷閾値よりも大きい場合、処理をステップS35に進める。スイッチ300の平均負荷が物理スイッチ負荷閾値以下の場合、処理をステップS31に進める。また、負荷判定部130は、処理をステップS31に進める際に、物理スイッチ測定テーブル114の登録内容をクリアする。
(S35)負荷判定部130は、サーバ200側の負荷を確認して、仮想マシン間の通信を仮想スイッチ211に切り戻し(オフロード状態の解除)可能であるか否かを判定する。ここで、切り戻し可能であるとは、オフロード状態を解除しても、サーバ200が過負荷とならないかを確認することを意味する。切り戻し可能な場合とは、次の(1)および(2)の条件が満たされるときである。何れか一方の条件が満たされなければ、切り戻し可能でない。
(1)サーバ200のハイパーバイザ210による平均CPU使用率が仮想スイッチ監視設定テーブル111に登録されたCPU使用率閾値(例えば、95%)よりも小さい。
(2)サーバ200の仮想スイッチ211を経由した総通信量に対する仮想マシン間の通信の割合が、仮想スイッチ監視設定テーブル111に登録された仮想スイッチ負荷閾値(例えば、30%)よりも小さい。
切り戻し可能である場合、処理をステップS36に進める。切り戻し不可である場合、処理をステップS31に進める。負荷判定部130は、処理をステップS31またはステップS36に進める際に、物理スイッチ測定テーブル114の登録内容をクリアする。また、図14で後述するように、負荷判定部130は、サーバ200から継続して取得されたMIB情報により上記平均CPU使用率などを継続して取得し、記憶部110に格納している。
(S36)負荷判定部130は、オフロード状態の解除を経路制御部140に通知する。経路制御部140は、サーバ200およびスイッチ300にオフロード状態の解除を指示する。サーバ200およびスイッチ300は、当該指示を受けるとオフロード状態を解除する。
このようにして、制御サーバ100は、サーバ200の負荷および通信量とスイッチ300の負荷とに基づいて、オフロード状態の解除可否を決定する。ここで、ステップS35では、上記(1)および(2)の条件が両方満たされるときに切り戻し可能と判定するものとした。一方、負荷判定部130は、(1)および(2)の条件の何れか一方が満たされるときに切り戻し可能と判定してもよい。この場合、負荷判定部130は、(1)および(2)の条件の両方が満たされないときに切り戻し不可と判定することになる。次に、制御サーバ100によるサーバ200の負荷および通信量の取得を説明する。
図14は、サーバの情報の取得例を示すフローチャートである。以下、図14に示す処理をステップ番号に沿って説明する。
(S41)収集部120は、サーバ200およびスイッチ300でオフロードが実行された状態であるか否かを判定する。オフロードが実行された状態である場合、処理をステップS42に進める。オフロードが実行された状態でない場合、処理を終了する。具体的な判定方法は、図12のステップS21と同様である(ただし、図14ではオフロードが実行された状態である場合に以降の処理が実行される点が異なる)。
(S42)収集部120は、サーバ200からMIB情報を取得する。収集部120が取得する情報には、ハイパーバイザ210のCPU使用率、仮想スイッチ211経由の仮想マシン間の通信量、仮想スイッチ211経由の総通信量が含まれる。収集部120は、仮想スイッチ監視設定テーブル111に登録されたMIB取得間隔(例えば、30秒)で、当該MIB情報の取得を行う。収集部120は、取得した情報をサーバ測定テーブル113に登録する(測定回は、後述するステップS44の負荷計算を行った直後であれば、1回目であり、その後1ずつ加算して登録する)。
(S43)負荷判定部130は、仮想スイッチ監視設定テーブル111を参照して、前回ハイパーバイザ210の負荷計算を行ってから(初回の場合はサーバ200からMIB情報の取得を開始してから)、負荷計算間隔分の時間が経過したか否かを判定する。負荷計算間隔分の時間が経過した場合、処理をステップS44に進める。負荷計算間隔分の時間が経過していない場合、処理をステップS41に進める。例えば、仮想スイッチ監視設定テーブル111によれば負荷計算間隔は300秒である。
(S44)負荷判定部130は、サーバ測定テーブル113を参照して、ハイパーバイザ210の平均CPU使用率を算出する。例えば、サーバ測定テーブル113には、10回分の測定値が登録されるから、各回の測定値の合計を10で割った値がハイパーバイザ210の平均CPU使用率である。負荷判定部130は、算出した平均CPU使用率を記憶部110に格納する(最新の値を保持しておけばよい)。
(S45)負荷判定部130は、サーバ測定テーブル113を参照して、仮想スイッチ211を経由した仮想マシン間の通信量の合計D1を算出する。例えば、サーバ測定テーブル113には、仮想マシン間の通信量の10回分の測定値が登録されるから、これら10回分の測定値の合計が合計D1である。負荷判定部130は、算出した合計D1を記憶部110に格納する(最新の値を保持しておけばよい)。
(S46)負荷判定部130は、サーバ測定テーブル113を参照して、仮想スイッチ211を経由した総通信量の合計D2を算出する。例えば、サーバ測定テーブル113には、総通信量の10回分の測定値が登録されるから、これら10回分の測定値の合計が合計D2である。負荷判定部130は、算出した合計D2を記憶部110に格納する(最新の値を保持しておけばよい)。負荷判定部130は、サーバ測定テーブル113の登録内容をクリアする。そして、処理をステップS41に進める。
このようにして、制御サーバ100は、サーバ200の負荷や通信量も継続的に監視する。ステップS44,S45,S46で取得された情報は、図13のステップS35で利用できる。具体的には、平均CPU使用率が仮想スイッチ監視設定テーブル111に登録されたCPU使用率閾値よりも小さいかを判定できる。また、D2に対するD1の割合が仮想スイッチ監視設定テーブル111に登録された仮想スイッチ負荷閾値よりも小さいかを判定できる。
なお、制御サーバ100は、オフロード状態の解除の指示を行った直後(図13のステップS36の直後)に、サーバ測定テーブル113、物理スイッチ測定テーブル114の登録内容および各監視用のタイマ値をリセットしてもよい。
図15は、オフロードの例を示す図である。図15では、図11のステップS19の具体例を示している。図15では、サーバ200のNICが備える物理的なポートをポートP1としている(以下、同様)。また、図15では仮想マシン240の図示を省略している。例えば、制御サーバ100は、オフロードモードへの切り替え準備をスイッチ300に指示する(ステップST11)。スイッチ300は、当該指示に応じてオフロードモードへの所定の切り替え準備を実行する。具体的には、スイッチ300は、「宛先がハイパーバイザ210上の仮想マシンであるパケットは、ハイパーバイザ210が動作しているサーバ200に向けて折り返す」という設定を行う。スイッチ300は、当該準備の完了を制御サーバ100に通知してもよい。
制御サーバ100は、オフロードモードへの切り替えをハイパーバイザ210に指示する(ステップST12)。具体的には、制御サーバ100は、「宛先がハイパーバイザ210上の仮想マシンであるパケットを他の仮想マシンから受信した場合、それをスイッチ300側へ流す(スイッチ300側へパススルーする)」ことをハイパーバイザ210に指示する。また、制御サーバ100は、「スイッチ300からハイパーバイザ210上の仮想マシン宛のパケットを受信した場合、それを当該仮想マシン宛に流す」ことをハイパーバイザ210に指示する。
ハイパーバイザ210は、当該指示に応じて、仮想スイッチ211の設定変更を行い、仮想マシン間の通信を、スイッチ300を用いて行うよう切り替える(ステップST13)。これにより、サーバ200でソフトウェア処理されていたデータ転送、QoS、フィルタ、ミラーリングなどの処理が、スイッチ300に移され、ハードウェア処理される。
図16は、オフロード状態の解除の例を示す図である。図16では、図13のステップS36の具体例を示している。図16では仮想マシン240の図示を省略している。例えば、制御サーバ100は、オフロードモードから元のモード(オフロード状態でないモード)への切り替え準備をハイパーバイザ210に指示する(ステップST21)。ハイパーバイザ210は、当該指示に応じて、元のモードへの所定の切り替え準備を実行する。
具体的には、ハイパーバイザ210は、「宛先がハイパーバイザ210上の仮想マシンであるパケットを、スイッチ300側へ流すのを止め、スイッチ300内で折り返して宛先の仮想マシンへ流す」という設定を仮想スイッチ211に対して行う。ハイパーバイザ210は、当該準備の完了を制御サーバ100に通知してもよい。
そして、制御サーバ100は、オフロードモードの解除をスイッチ300に指示する(ステップST22)。具体的には、制御サーバ100は、「宛先がハイパーバイザ210上の仮想マシンであるパケットは、ハイパーバイザ210が動作しているサーバ200に向けて折り返す」という設定をクリアするようスイッチ300に指示する。
スイッチ300は、当該指示に応じて自身の当該設定をクリアする。これにより、オフロードモードの解除が完了する(ステップST23)。その後は、スイッチ300でハードウェア処理されていたデータ転送、QoS、フィルタ、ミラーリングなどの処理が、仮想スイッチ211に移され、仮想スイッチ211でソフトウェア処理されることになる。
以上のように、制御サーバ100によれば、仮想スイッチ211の処理負荷を推定する情報を取得し、当該情報に基づいてオフロードモードへの切り替えを実行できる。
ここで、サーバ200の処理負荷のうち、仮想スイッチ211に起因する負荷が比較的小さいと、オフロードを行ってもサーバ200の負荷軽減を十分に図れない。また、サーバ200が高負荷のときにオフロードを行おうとすると、オフロード自体の処理負荷によって、サーバ200の高負荷状態が却って助長されるおそれがある。この場合、仮想スイッチ211に起因する負荷が比較的小さいのであれば、寧ろオフロードを行わない方が処理性能の向上を見込める可能性が高い。
ところが、仮想スイッチ211がハイパーバイザ210に組み込まれていると、仮想スイッチ211に起因する負荷を直接把握することが困難となる。例えば、ハイパーバイザ210による負荷の何れの割合が仮想スイッチ211の処理に起因するものであるかを直接判断するのは難しい。一方、サーバ200の処理負荷やサーバ200において発生した通信量それぞれを単に取得、参照しても、仮想スイッチ211に起因する負荷を把握するのは困難である。
そこで、制御サーバ100では、ハイパーバイザ210によるサーバ200の負荷と、仮想スイッチ211が扱う通信量と、サーバ200と外部の装置との通信の通信量とに基づいて、サーバ200の負荷が仮想スイッチ211に起因するかを判断する。
ハイパーバイザ210によるサーバ200の負荷が比較的高い場合に、仮想スイッチ211を経由した総通信量に対する仮想マシン間の通信の通信量の割合が大きければ、サーバ200の負荷は、仮想スイッチ211に起因するものであると推定できる。なぜなら、仮想マシン間の通信量の割合が比較的大きい場合、仮想スイッチ211におけるデータ転送の処理やQoSなどのオフロード対象の処理の頻度が高まっており、それによってサーバ200の負荷も高まっていると考えられるからである。更に、このとき、ハイパーバイザ210によるサーバ200の負荷が比較的高ければ、サーバ200が高負荷となっている要因が仮想スイッチ211の処理にある可能性が高い。よって、この場合、オフロードによりサーバ200の負荷を軽減できる可能性が高いと考えられる。
このように、制御サーバ100は、サーバ200の処理負荷が仮想スイッチ211に起因するものかを判断することで、オフロードを行うか否かを適切に決定できる。なお、前述のように、制御サーバ100は、仮想スイッチ211を経由した総通信量を得るために、サーバ200から各仮想マシンと外部の装置との仮想スイッチ211を経由した通信量を取得してもよい。その場合、収集部120は、仮想マシン間の通信の通信量と各仮想マシンと外部の装置(すなわち、サーバ200と外部の装置)との通信量とを合計することで、総通信量を得ることができる。
制御サーバ100は、仮想スイッチ監視設定テーブル111および物理スイッチ監視設定テーブル112に登録された負荷計算間隔での平均で負荷を判断する。また、制御サーバ100は、当該負荷計算間隔の合計の通信量で、仮想マシン間の通信の割合の判断を行う。これにより、例えば、瞬間的な負荷や通信量の高まりでモード切り替えが行われることを抑えられる。また、瞬間的な負荷や通信量の高まりによりモード切り替えが頻発することを抑えられる。
制御サーバ100は、ハイパーバイザ210によるサーバ200の負荷が仮想スイッチ監視設定テーブル111に登録された閾値以上である場合にオフロードを行う。これにより、サーバ200のリソースに余裕があるときにまでオフロードが行われるのを抑えられる。
制御サーバ100は、オフロードを行うかの決定において、スイッチ300の負荷を考慮する。これにより、スイッチ300の負荷が比較的高い場合にオフロードが行われることを抑制できる。よって、スイッチ300が過負荷となり、通信性能が却って悪化するリスクを低減できる。
制御サーバ100は、オフロードを行った後も、サーバ200およびスイッチ300の負荷や通信量の監視を継続し、監視結果に基づいて、オフロード状態の解除可否を決定する。オフロード後に、スイッチ300の負荷が高まり、サーバ200の負荷が低下すれば、オフロード状態を解除した方が性能向上を図れる可能性があるからである。また、仮想スイッチ211を経由する通信のうち、仮想マシン間の通信の割合が比較的小さければ、仮想マシン間の通信を仮想スイッチ211に切り戻しても、仮想スイッチ211に起因するサーバ200の負荷上昇を比較的小さく抑えられる。
制御サーバ100は、SNMPを用いて、サーバ200およびスイッチ300から負荷や通信量の情報を取得する。これにより、共通のプロトコルを用いて、サーバ200およびスイッチ300の両装置から効率的に情報収集を行える。特に、SNMPは運用管理用の情報を収集するプロトコルとして一般的に利用されており、物理スイッチもSNMPに対応している機種は多数存在している。このため、SNMPによりスイッチ300から取得可能な情報を流用して、制御サーバ100の機能を実現できる利点もある。
図17は、各装置の他のソフトウェア例を示す図である。図17の例では、サーバ200が、監視部212の代わりに、監視部260を有する点が図5の例と異なる。例えば、監視部260は、仮想マシン220,230,240上で実行されているアプリケーションがサーバ200上の仮想マシン間またはサーバ200外の装置との通信を行うための専用の通信用ライブラリである。この場合、仮想マシン220,230,240で実行されているアプリケーションは、通信時に当該通信用ライブラリを使用することになる。
監視部260は、ハイパーバイザ210によるCPU使用率を取得する。例えば、Xenと呼ばれる仮想化ソフトウェアのハイパーバイザであれば、Domain0においてxm topコマンドの実行結果から当該CPU使用率を取得し得る。
監視部260は、サーバ200上の仮想マシン間の通信量を取得する。例えば、通信データの送信元と宛先とにサーバ200上の仮想マシンの識別子が含まれていれば仮想マシン間の通信である。また、監視部260は、仮想マシン220,230,240からサーバ200外の装置への通信またはサーバ200外から到着した仮想マシン220,230,240への通信の通信量を取得する。例えば、通信データの送信元または宛先が外部の装置となっていれば(例えば、サーバ200上の仮想マシン以外の識別子であれば)、サーバ200外の装置への通信またはサーバ200外から到着した通信である。
監視部260は、取得した各通信量を制御サーバ100に提供する。このとき、各通信量を別個に制御サーバ100に提供してもよい。また、(1)サーバ200上の仮想マシン間の通信量と、(2)サーバ200上の仮想マシン間の通信量およびサーバ200と外部の装置との通信量の合計と、を制御サーバ100に提供してもよい。
前者の場合、制御サーバ100(例えば、収集部120)で合計すれば、後者の方法の(2)における合計の通信量を得られる。負荷の計算方法やオフロードの切り替え可否の決定については、図11〜14と同様の手順を利用できる。このように監視部260をハイパーバイザ210の外部に設ければ、ハイパーバイザ210自体を改造しなくてよい。このため、第2の実施の形態の制御サーバ100の機能を簡便に実現し得る。
図18は、取得対象の情報の例を示す図である。図18(A)は、第2の実施の形態において、制御サーバ100によりサーバ200から取得され得る情報の例(その1)を示している。図18(B)は、制御サーバ100によりサーバ200から取得され得る情報の例(その2)を示している。
図18(A)(B)の何れも、取得する情報の区分として、サーバ200の負荷、仮想スイッチで扱う通信の通信量およびサーバ200と外部の他の装置との通信の通信量を取得することを示している点では同じである。また、サーバ200の負荷として、ハイパーバイザ210によるサーバ200の負荷を取得する点、仮想スイッチ211で扱う通信の通信量として仮想マシン間の通信の通信量を取得する点は同じである。
一方、サーバ200と外部の装置との通信の通信量として、仮想スイッチ211を経由した外部の装置との通信の通信量をMIB情報で取得してもよい(図18(A)の場合)。また、サーバ200と外部の装置との通信の通信量を得るための情報として、仮想スイッチ211を経由した総通信量をMIB情報で取得してもよい(図18(B)の場合)。
なぜなら、制御サーバ100において、当該総通信量から、仮想マシン間の通信分の通信量を差し引けば、サーバ200と外部の装置との通信の通信量に相当する通信量を間接的に得られるからである。この場合、仮想スイッチ211を経由した仮想マシン間の通信量と、仮想スイッチ211を経由した総通信量との組み合わせを、サーバ200と外部の装置との通信の通信量を示す情報ということもできる。
このように、制御サーバ100で取得対象とする情報には種々のものが考えられる。図18で例示した以外にも、サーバ200の負荷として、サーバ200のCPU使用率やメモリ使用率などを取得することも考えられる。また、サーバ200と外部の装置との通信の通信量として、サーバ200が備える物理NICを経由した外部の装置との通信の通信量を取得してもよい。更に、制御サーバ100の機能をサーバ200によって実現してもよい。
なお、第1の実施の形態の情報処理は、制御装置1(例えば、コンピュータ)が有するプロセッサにプログラムを実行させることでも実現できる。また、第2の実施の形態の情報処理は、プロセッサ101にプログラムを実行させることでも実現できる。プログラムは、コンピュータ読み取り可能な記録媒体(例えば、光ディスク13、メモリ装置14およびメモリカード16など)に記録できる。
例えば、プログラムを記録した記録媒体を配布することで、プログラムを流通させることができる。また、プログラムを他のコンピュータに格納しておき、ネットワーク経由でプログラムを配布してもよい。コンピュータは、例えば、記録媒体に記録されたプログラムまたは他のコンピュータから受信したプログラムを、RAM102やHDD103などの記憶装置に格納し(インストールし)、当該記憶装置からプログラムを読み込んで実行してもよい。
1 制御装置
1a 受信部
1b 制御部
2,4 情報処理装置
2a 仮想スイッチ
2b,2c 仮想マシン
3 物理スイッチ

Claims (10)

  1. 仮想スイッチが動作可能な装置と、前記装置の通信を中継する物理スイッチとに対し、前記仮想スイッチがスイッチ処理を行う第1のモードと、前記仮想スイッチおよび前記物理スイッチが前記スイッチ処理を協働して行う第2のモードとを切り替え可能な情報処理装置を制御するコンピュータに、
    前記装置の負荷の情報と、前記仮想スイッチが扱う通信の第1の通信量と、前記装置と他の装置との通信の第2の通信量とを前記装置から取得し、
    取得した前記装置の負荷の情報と前記第1の通信量と前記第2の通信量とに基づいて前記第1のモードから前記第2のモードへの切り替え可否を決定する、
    処理を実行させる制御プログラム。
  2. 前記取得では、前記仮想スイッチを実行するハイパーバイザによる前記装置の負荷の情報を取得する、請求項1記載の制御プログラム。
  3. 前記取得では、SNMPによる要求を前記装置に送信し、当該要求に対する応答として、前記装置の負荷と前記第1の通信量と前記第2の通信量とを示すMIB情報を前記装置から取得する、請求項1または2記載の制御プログラム。
  4. 前記第1のモードから前記第2のモードへ切り替えた後、前記装置の負荷の情報と前記第1の通信量と前記第2の通信量とを前記装置から取得し、取得した前記装置の負荷の情報と前記第1の通信量と前記第2の通信量とに基づいて、前記第2のモードから前記第1のモードへの切り替え可否を決定する、請求項1乃至3の何れか1項に記載の制御プログラム。
  5. 前記決定では、前記装置の負荷が第1の閾値以上であり、かつ、前記第1の通信量と前記第2の通信量との合計に対する前記第1の通信量の割合が第2の閾値以上である場合に、前記第1のモードから前記第2のモードへ切り替え可と決定し、前記装置の負荷が前記第1の閾値未満か、または、前記割合が前記第2の閾値未満の場合に、前記第1のモードから前記第2のモードへ切り替え不可と決定する、請求項1乃至4の何れか1項に記載の制御プログラム。
  6. 前記取得では、前記物理スイッチの負荷の情報を前記物理スイッチから取得し、
    前記決定では、前記物理スイッチの負荷の情報に基づいて前記切り替え可否を決定する、請求項1乃至5の何れか1項に記載の制御プログラム。
  7. 前記決定では、前記物理スイッチの負荷が第3の閾値以下の場合に前記第1のモードから前記第2のモードへ切り替え可と決定し、前記物理スイッチの負荷が前記第3の閾値よりも大きい場合に前記第1のモードから前記第2のモードへ切り替え不可と決定する、請求項6記載の制御プログラム。
  8. 前記取得では、前記第1の通信量として、前記装置で動作する複数の仮想マシン間の通信の通信量を取得する、請求項1乃至7の何れか1項に記載の制御プログラム。
  9. 仮想スイッチが動作可能な装置と、前記装置の通信を中継する物理スイッチとに対し、前記仮想スイッチがスイッチ処理を行う第1のモードと、前記仮想スイッチおよび前記物理スイッチが前記スイッチ処理を協働して行う第2のモードとの切り替えを制御する制御装置であって、
    前記装置の負荷の情報と、前記仮想スイッチが扱う通信の第1の通信量と、前記装置と他の装置との通信の第2の通信量とを前記装置から取得する受信部と、
    取得した前記装置の負荷の情報と前記第1の通信量と前記第2の通信量とに基づいて前記第1のモードから前記第2のモードへの切り替え可否を決定する制御部と、
    を有する制御装置。
  10. 仮想スイッチが動作可能な装置と、前記装置の通信を中継する物理スイッチとに対し、前記仮想スイッチがスイッチ処理を行う第1のモードと、前記仮想スイッチおよび前記物理スイッチが前記スイッチ処理を協働して行う第2のモードとの切り替えを制御する制御方法であって、コンピュータが、
    前記装置の負荷の情報と、前記仮想スイッチが扱う通信の第1の通信量と、前記装置と他の装置との通信の第2の通信量とを前記装置から取得し、
    取得した前記装置の負荷の情報と前記第1の通信量と前記第2の通信量とに基づいて前記第1のモードから前記第2のモードへの切り替え可否を決定する、
    制御方法。
JP2013209663A 2013-10-04 2013-10-04 制御プログラム、制御装置および制御方法 Ceased JP2015076643A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2013209663A JP2015076643A (ja) 2013-10-04 2013-10-04 制御プログラム、制御装置および制御方法
US14/503,543 US9600319B2 (en) 2013-10-04 2014-10-01 Computer-readable medium, apparatus, and method for offloading processing from a virtual switch to a physical switch

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013209663A JP2015076643A (ja) 2013-10-04 2013-10-04 制御プログラム、制御装置および制御方法

Publications (1)

Publication Number Publication Date
JP2015076643A true JP2015076643A (ja) 2015-04-20

Family

ID=52778029

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013209663A Ceased JP2015076643A (ja) 2013-10-04 2013-10-04 制御プログラム、制御装置および制御方法

Country Status (2)

Country Link
US (1) US9600319B2 (ja)
JP (1) JP2015076643A (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019075785A (ja) * 2017-10-13 2019-05-16 エヌエイチエヌ エンターテインメント コーポレーションNHN Entertainment Corporation コンピュータ装置及びその動作方法、並びにクラウドネットワークシステム
JP2019525306A (ja) * 2016-06-30 2019-09-05 アマゾン・テクノロジーズ・インコーポレーテッド 部分的にオフロードされた仮想化マネージャにおけるメモリ割当て技術
WO2023162229A1 (ja) * 2022-02-28 2023-08-31 日本電信電話株式会社 通信システム、切り替え方法、および、切り替えプログラム
JP7652331B2 (ja) 2022-02-28 2025-03-27 日本電信電話株式会社 サーバ、切り替え方法、および、切り替えプログラム

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6248763B2 (ja) * 2014-03-31 2017-12-20 富士通株式会社 キャプチャポイント決定方法、キャプチャポイント決定システムおよびキャプチャポイント決定プログラム
IL238690B (en) 2015-05-07 2019-07-31 Mellanox Technologies Ltd Network-based computational accelerator
US11057446B2 (en) * 2015-05-14 2021-07-06 Bright Data Ltd. System and method for streaming content from multiple servers
US10491502B2 (en) * 2016-06-29 2019-11-26 Nicira, Inc. Software tap for traffic monitoring in virtualized environment
US10382350B2 (en) * 2017-09-12 2019-08-13 Mellanox Technologies, Ltd. Maintaining packet order in offload of packet processing functions
US11005771B2 (en) 2017-10-16 2021-05-11 Mellanox Technologies, Ltd. Computational accelerator for packet payload operations
US11502948B2 (en) 2017-10-16 2022-11-15 Mellanox Technologies, Ltd. Computational accelerator for storage operations
US10841243B2 (en) 2017-11-08 2020-11-17 Mellanox Technologies, Ltd. NIC with programmable pipeline
US10708240B2 (en) 2017-12-14 2020-07-07 Mellanox Technologies, Ltd. Offloading communication security operations to a network interface controller
WO2020008468A1 (en) * 2018-07-02 2020-01-09 Telefonaktiebolaget Lm Ericsson (Publ) Software switch and method therein
US10824469B2 (en) 2018-11-28 2020-11-03 Mellanox Technologies, Ltd. Reordering avoidance for flows during transition between slow-path handling and fast-path handling
US11184439B2 (en) 2019-04-01 2021-11-23 Mellanox Technologies, Ltd. Communication with accelerator via RDMA-based network adapter
IL276538B2 (en) 2020-08-05 2023-08-01 Mellanox Technologies Ltd A cryptographic device for data communication
CN114095153B (zh) 2020-08-05 2024-12-17 迈络思科技有限公司 密码数据通信装置
US11934658B2 (en) 2021-03-25 2024-03-19 Mellanox Technologies, Ltd. Enhanced storage protocol emulation in a peripheral device
US12117948B2 (en) 2022-10-31 2024-10-15 Mellanox Technologies, Ltd. Data processing unit with transparent root complex
US12007921B2 (en) 2022-11-02 2024-06-11 Mellanox Technologies, Ltd. Programmable user-defined peripheral-bus device implementation using data-plane accelerator (DPA)
CN117518969B (zh) * 2023-11-22 2025-02-07 北京机械工业自动化研究所有限公司 一种面向热加工设备的双操作系统的控制系统及方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005268833A (ja) * 2004-03-16 2005-09-29 Meidensha Corp ハブ
US20100275199A1 (en) * 2009-04-28 2010-10-28 Cisco Technology, Inc. Traffic forwarding for virtual machines
US20110103259A1 (en) * 2009-11-04 2011-05-05 Gunes Aybay Methods and apparatus for configuring a virtual network switch
JP2012220977A (ja) * 2011-04-04 2012-11-12 Hitachi Ltd 仮想計算機の制御方法及び管理計算機

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH118694A (ja) * 1997-06-18 1999-01-12 Fujitsu Ltd 仮想アクセスネットワーク機能を有する交換機および交換システム
JP4799118B2 (ja) 2005-10-14 2011-10-26 株式会社ソニー・コンピュータエンタテインメント 情報処理装置、情報処理システム、通信中継装置および通信制御方法
JP4872412B2 (ja) 2006-03-31 2012-02-08 日本電気株式会社 情報検知処理方法及び装置
US8199672B1 (en) * 2008-02-25 2012-06-12 Marvell Israel (M.I.S.L.) Ltd. Method and apparatus for power reduction in network
WO2010099407A1 (en) * 2009-02-27 2010-09-02 Broadcom Corporation Method and system for virtual machine networking
US9973446B2 (en) * 2009-08-20 2018-05-15 Oracle International Corporation Remote shared server peripherals over an Ethernet network for resource virtualization
JP5392137B2 (ja) 2010-02-17 2014-01-22 富士通株式会社 通信処理のためのプログラム、コンピュータ及び方法
US8989187B2 (en) * 2010-06-04 2015-03-24 Coraid, Inc. Method and system of scaling a cloud computing network
US8677024B2 (en) * 2011-03-31 2014-03-18 International Business Machines Corporation Aggregating shared Ethernet adapters in a virtualized environment
JP5475717B2 (ja) 2011-05-12 2014-04-16 富士通テレコムネットワークス株式会社 ネットワークシステム
US8793685B2 (en) * 2011-05-13 2014-07-29 International Business Machines Corporation Techniques for operating virtual switches in a virtualized computing environment
CN103444135B (zh) * 2011-06-02 2016-10-12 慧与发展有限责任合伙企业 网络虚拟化方法和虚拟化网络
US8863124B1 (en) * 2011-08-10 2014-10-14 Nutanix, Inc. Architecture for managing I/O and storage for a virtualization environment
US8893125B2 (en) * 2011-11-18 2014-11-18 Broadcom Corporation Network port profile deployment in a pre-provisioned or dynamically provisioned network infrastructure
US9092274B2 (en) * 2011-12-07 2015-07-28 International Business Machines Corporation Acceleration for virtual bridged hosts
TW201336264A (zh) * 2012-02-16 2013-09-01 Hon Hai Prec Ind Co Ltd 自動擴充虛擬機的方法
JP5874879B2 (ja) * 2012-11-26 2016-03-02 株式会社日立製作所 I/oデバイスの制御方法及び仮想計算機システム

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005268833A (ja) * 2004-03-16 2005-09-29 Meidensha Corp ハブ
US20100275199A1 (en) * 2009-04-28 2010-10-28 Cisco Technology, Inc. Traffic forwarding for virtual machines
US20110103259A1 (en) * 2009-11-04 2011-05-05 Gunes Aybay Methods and apparatus for configuring a virtual network switch
JP2012220977A (ja) * 2011-04-04 2012-11-12 Hitachi Ltd 仮想計算機の制御方法及び管理計算機

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019525306A (ja) * 2016-06-30 2019-09-05 アマゾン・テクノロジーズ・インコーポレーテッド 部分的にオフロードされた仮想化マネージャにおけるメモリ割当て技術
JP2019075785A (ja) * 2017-10-13 2019-05-16 エヌエイチエヌ エンターテインメント コーポレーションNHN Entertainment Corporation コンピュータ装置及びその動作方法、並びにクラウドネットワークシステム
JP7381196B2 (ja) 2017-10-13 2023-11-15 エヌエイチエヌ クラウド コーポレーション コンピュータ装置及びその動作方法、コンピュータプログラム、記録媒体並びにクラウドネットワークシステム
WO2023162229A1 (ja) * 2022-02-28 2023-08-31 日本電信電話株式会社 通信システム、切り替え方法、および、切り替えプログラム
JP7652331B2 (ja) 2022-02-28 2025-03-27 日本電信電話株式会社 サーバ、切り替え方法、および、切り替えプログラム

Also Published As

Publication number Publication date
US20150100962A1 (en) 2015-04-09
US9600319B2 (en) 2017-03-21

Similar Documents

Publication Publication Date Title
JP2015076643A (ja) 制御プログラム、制御装置および制御方法
US11296960B2 (en) Monitoring distributed applications
US10608914B2 (en) Methods and devices for monitoring of network performance for container virtualization
JP6571161B2 (ja) アプリケーショントポロジ関係を探索するための方法、装置、およびシステム
US20130227566A1 (en) Data collection method and information processing system
EP3934206B1 (en) Scalable control plane for telemetry data collection within a distributed computing system
TWI722145B (zh) 網路功能虛擬化
US9547518B2 (en) Capture point determination method and capture point determination system
CN111459750A (zh) 基于非扁平网络的私有云监控方法、装置、计算机设备及存储介质
US10152343B2 (en) Method and apparatus for managing IT infrastructure in cloud environments by migrating pairs of virtual machines
US11469983B1 (en) Correlating and measuring the effect of adverse network events on specific traffic flows
US20240202010A1 (en) Aggregating metrics of network elements of a software-defined network for different applications based on different aggregation criteria
JP2016536920A (ja) ネットワークパフォーマンス監視のための機器および方法
US11750489B1 (en) Modifying health monitoring through user interface
US11921583B2 (en) Managing a hierarchy of resources in an SDDC
US20140189127A1 (en) Reservation and execution image writing of native computing devices
US12010007B1 (en) Detecting noisy agents in network monitoring
US11539728B1 (en) Detecting connectivity disruptions by observing traffic flow patterns
US10102101B1 (en) Methods, systems, and computer readable mediums for determining a system performance indicator that represents the overall operation of a network system
US20240039813A1 (en) Health analytics for easier health monitoring of a network
JP5758358B2 (ja) 仮想マシンシステム及びその高速ライブマイグレーション方法
WO2023247993A1 (en) Dynamic and adaptive observability system
US20240039824A1 (en) Health analytics for easier health monitoring of logical forwarding elements
US20240037475A1 (en) Health analytics for easier health monitoring of logical networks
US12192077B1 (en) Network monitoring combining client-based and network-based signals

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160606

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170220

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170321

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170516

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20171003

A045 Written measure of dismissal of application [lapsed due to lack of payment]

Free format text: JAPANESE INTERMEDIATE CODE: A045

Effective date: 20180306