JP2011203810A - Server, computer system, and virtual computer management method - Google Patents
Server, computer system, and virtual computer management method Download PDFInfo
- Publication number
- JP2011203810A JP2011203810A JP2010068111A JP2010068111A JP2011203810A JP 2011203810 A JP2011203810 A JP 2011203810A JP 2010068111 A JP2010068111 A JP 2010068111A JP 2010068111 A JP2010068111 A JP 2010068111A JP 2011203810 A JP2011203810 A JP 2011203810A
- Authority
- JP
- Japan
- Prior art keywords
- information
- performance
- virtual machine
- network interface
- application
- 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
Abstract
Description
本発明は、仮想計算機に関し、更に詳しくは、仮想計算機と他の装置とを接続する仮想ネットワークインタフェースを用いてデータ転送するサーバ、計算機システム及び仮想計算機管理方法に関する。 The present invention relates to a virtual machine, and more particularly to a server, a computer system, and a virtual machine management method for transferring data using a virtual network interface that connects the virtual machine and another device.
近年の物理計算機はマルチコアプロセッサを複数搭載するようになってきており、プロセッサ資源を有効利用するために、複数の仮想計算機を同時に稼働させるサーバ仮想化技術が注目されている。 In recent years, a plurality of multi-core processors have been installed in physical computers, and server virtualization technology that simultaneously operates a plurality of virtual computers has attracted attention in order to effectively use processor resources.
サーバ仮想化技術を用いることによって、1台の物理計算機上に複数の仮想計算機を稼働できるため、1台の物理計算機に1つのOSを実行させる従来システムと比べ、コスト削減を望める。 By using the server virtualization technology, a plurality of virtual computers can be operated on one physical computer, so that a cost reduction can be expected as compared with a conventional system in which one physical computer executes one OS.
PCのようなオープン系システムは、性能向上の進度が速く、次々と後継機種が登場し、製品の保証期間は約5年程度と短い。 An open system such as a PC has a rapid progress in performance improvement, and successor models have appeared one after another, and the product warranty period is as short as about 5 years.
これに対し、基幹系(企業の会計、生産管理、人事、給与等の業務アプリケーション、及び銀行や鉄道等社会インフラに関わるサービス等)のようなサービスは、基本的なサービスであるためにサービス内容が変わらないものが多い。また、基幹系のサービスでは稼働実績のあるサービスを更改することによる障害を起こしてはならない。前述したような理由から、サービスをできるかぎり長期に稼働させたいというニーズがある。 In contrast, services such as core systems (business applications such as corporate accounting, production management, human resources, salary, and services related to social infrastructure such as banks and railways) are basic services. There are many things that do not change. In addition, the core service must not cause trouble by renewing a service that has been used. For the reasons described above, there is a need to operate the service as long as possible.
仮想化技術は前述したニーズに答えるものであり、物理計算機に新しいハードウェアを導入した場合であっても、現在稼働しているサービスの環境をそのまま移行することが可能であり、また、オープン系システムに対して費用対効果が認められるサービスへの適用が始まっている。 The virtualization technology answers the above-mentioned needs. Even when new hardware is installed in a physical computer, it is possible to migrate the service environment that is currently in operation, and open systems Application to services that are cost-effective for the system has begun.
長期に運用させたいサービスを仮想計算機上で動作させる場合、サービスの性能を保持することが重要である。ハードウェアは数年で変更する必要があり、変更の度に性能差が広がる。従って、サービスが構築された時の環境を維持するためには、仮想計算機を制御する仮想計算機モニタがその性能差を解消し、サービスが実行される環境にハードウェアの変更による影響を与えないことが必要である。 When operating a service that you want to operate for a long time on a virtual machine, it is important to maintain the performance of the service. The hardware needs to be changed in a few years, and the performance difference increases with each change. Therefore, in order to maintain the environment when the service is built, the virtual machine monitor that controls the virtual machine must eliminate the performance difference and the environment in which the service is executed will not be affected by hardware changes. is required.
ハードウェア資源の一つとして、ネットワークがある。ネットワークに関しては、高速化と、LAN(Local Area Network)系ネットワーク及びストレージ系ネットワークの統合化と、が進んでいる。 One of the hardware resources is a network. As for the network, high speed and integration of a LAN (Local Area Network) network and a storage network are progressing.
イーサネット(登録商標、以降同じ)は、10Gbps以上の性能を持つようになっており、特にデータセンタ(以降、DCと記載する)は大量のデータをリアルタイムに扱うサービスが多いため、DC向けの規格がIEEE 802.1 WGにて策定されている。 Ethernet (registered trademark, hereinafter the same) has a performance of 10 Gbps or more, and in particular, a data center (hereinafter referred to as DC) has many services that handle a large amount of data in real time. Is formulated by the IEEE 802.1 WG.
ネットワーク側では大量のデータを高速に扱えるようになっているが、当該サービスの動作環境(仮想計算機)より先がサービスの受信能力以上のシステム構成となることによって、サービス側では仮想計算機側の受信側処理を越える可能性がある。すなわち、受信バッファのオーバーフローが発生し、これによってデータが損失、サービスの異常終了や異常動作の原因となる。 A large amount of data can be handled at high speed on the network side. However, since the system configuration beyond the service's operating environment (virtual computer) exceeds the service reception capability, the service side can receive data on the virtual computer side. There is a possibility of exceeding the side processing. That is, an overflow of the reception buffer occurs, which causes data loss and abnormal termination of service or abnormal operation.
この問題を解消する方法としては、ある物理計算機上に生成される複数の仮想計算機間を接続する仮想ネットワークシステムにおいて、送信先の仮想計算機の受信バッファが溢れることを防止する方法がある(例えば、特許文献1参照)。 As a method for solving this problem, there is a method for preventing a reception buffer of a destination virtual machine from overflowing in a virtual network system connecting a plurality of virtual machines generated on a certain physical machine (for example, Patent Document 1).
具体的には、仮想計算機モニタは仮想計算機の送受信状況を管理する仮想ネットワーク制御部を備え、各仮想計算機は仮想ネットワークインタフェースカード(以下、仮想NICと記載する)を備える。仮想ネットワーク制御部は、各仮想NICの受信バッファサイズを監視し、ある仮想NICが送信する送信データサイズと受信バッファサイズとから、送信可否を判定する。受信バッファ残量が受信データサイズ以下である場合、送信を停止させる。 Specifically, the virtual machine monitor includes a virtual network control unit that manages the transmission / reception status of the virtual machine, and each virtual machine includes a virtual network interface card (hereinafter referred to as a virtual NIC). The virtual network control unit monitors the reception buffer size of each virtual NIC, and determines whether or not transmission is possible from the transmission data size and reception buffer size transmitted by a certain virtual NIC. If the reception buffer remaining amount is less than or equal to the reception data size, transmission is stopped.
特許文献1では、同一の物理計算機上に仮想計算機が配置されるため、仮想計算機モニタが各仮想計算機のデータ送受信状況を把握できる。従って、受信側の仮想計算機の受信バッファと送信側の仮想計算機の送信データとを比較することができる。しかし、物理NICを介さないため、物理NICの性能と仮想計算機の稼働環境との関係を考慮したものではなく、物理NICを介した別の物理計算機との通信する計算機システムに適用することは困難である。
In
すなわち、仮想計算機モニタは、同一の物理計算機上の仮想計算機の管理はできるが、他の計算機の管理はできないため、複数の計算機を備える計算機システムには適用できない。 That is, the virtual machine monitor can manage virtual machines on the same physical machine, but cannot manage other machines, and therefore cannot be applied to a computer system including a plurality of machines.
本発明の目的は、複数の物理計算機を備える計算機システムにおいて、物理計算機上に生成された仮想計算機を制御する仮想計算機モニタが、変更される物理計算機のハードウェア資源の性能を適正に考慮して、仮想計算機上のアプリケーションを正常に動作させることである。 An object of the present invention is to appropriately consider the performance of hardware resources of a physical computer to be changed by a virtual computer monitor that controls a virtual computer generated on the physical computer in a computer system including a plurality of physical computers. It is to operate the application on the virtual machine normally.
本発明の代表的な一例を示せば以下の通りである。すなわち、プロセッサと、前記プロセッサに接続されるメモリとを備え、前記プロセッサによって実行され、サーバの物理資源を仮想的に分割して生成される複数の仮想計算機を管理する仮想マシンモニタと、前記各仮想計算機上で実行され、アプリケーションを実行するオペレーティングシステムと、を備えた仮想環境を提供するサーバであって、前記仮想マシンモニタは、前記各仮想計算期毎に割り当てられた前記物理資源に関する情報を管理する物理資源情報管理部と、前記各仮想計算機毎に、前記オペレーティングシステム上で実行される前記アプリケーションの稼働状態に関する情報を管理するアプリケーション情報管理部と、前記サーバの物理資源の性能情報を管理し、前記サーバの第1の物理資源が性能の高い第2の物理資源に変更された場合に、前記第1の物理資源の性能と前記第2の物理資源の性能との差を表す性能差分情報を取得して、前記性能差分情報に基づいて、前記アプリケーションが正常に動作するように前記第2の物理資源の性能を調整するための制御情報を生成する性能差分情報管理部と、を備えることを特徴とする。 A typical example of the present invention is as follows. That is, a virtual machine monitor that includes a processor and a memory connected to the processor, and that is executed by the processor and manages a plurality of virtual machines generated by virtually dividing a physical resource of a server; A server that provides a virtual environment including an operating system that executes an application on the virtual machine, wherein the virtual machine monitor stores information on the physical resources allocated for each virtual calculation period Manages the physical resource information management unit to manage, the application information management unit that manages information related to the operating state of the application executed on the operating system for each virtual machine, and manages the physical resource performance information of the server And the first physical resource of the server is a second physical resource with high performance. When changed, it acquires performance difference information representing the difference between the performance of the first physical resource and the performance of the second physical resource, and the application operates normally based on the performance difference information And a performance difference information management unit for generating control information for adjusting the performance of the second physical resource.
本発明によれば、計算機システムを構成するハードウェア資源の変更時、仮想計算機上で実行されるアプリケーションの稼働状態を変更することなく正常に稼働させることができる。 According to the present invention, when changing the hardware resources constituting the computer system, it is possible to operate normally without changing the operating state of the application executed on the virtual computer.
本発明の実施形態について、以下に、図を参照して説明する。まず、本発明の概要を、図1を用いて説明する。 Embodiments of the present invention will be described below with reference to the drawings. First, the outline of the present invention will be described with reference to FIG.
図1は、本発明の実施形態の概要を説明するブロック図である。 FIG. 1 is a block diagram illustrating an outline of an embodiment of the present invention.
図1に示す例では、物理サーバは、ハードウェア107とソフトウェア100とから構成される。ソフトウェア100は、仮想計算機モニタ101及び仮想計算機102を含む。
In the example illustrated in FIG. 1, the physical server includes
以下、ハードウェア107がハードウェア108に更新された場合を例に説明する。なお、以降ではハードウェア107を旧ハードウェア107と記載し、ハードウェア108を新ハードウェア108と記載する。
Hereinafter, a case where the
仮想計算機モニタ101は、アプリケーション動作情報106、ハードウェア性能差分情報109及び性能差解消処理部110とを含む。
The
アプリケーション動作情報106は、仮想計算機102上で動作するアプリケーションの動作環境に関する情報を格納する。ハードウェア性能差分情報109は、旧ハードウェア107と新ハードウェア108との性能に関する情報を格納する。性能差解消処理部110は、ハードウェア変更時に、ハードウェアの性能の差分を適正化する処理を実行する。
The
具体的には、性能差解消処理部110は、新ハードウェア108の性能情報を取得し(S120)、旧ハードウェア107との性能差を算出し(S121)、変更されるハードウェアに基づいて、どのハードウェアの性能差を適正化するかを設定する(S122)。
Specifically, the performance difference
[第1の実施形態]
次に、本発明の第1の実施形態について、図2〜図10を参照して説明する。
[First Embodiment]
Next, a first embodiment of the present invention will be described with reference to FIGS.
第1の実施形態では、物理計算機に物理NICが高速な物理NICに変更された場合に、仮想計算機を制御する仮想計算機モニタが、アプリケーション動作情報106とハードウェア性能差分情報109とに基づいて、受信バッファがオーバーフローしないように、疑似的に輻輳状況を発生させる。
In the first embodiment, when the physical NIC is changed to a high-speed physical NIC in the physical computer, the virtual machine monitor that controls the virtual machine is based on the
図2は、本発明の第1の実施形態のネットワークシステムの構成例を説明するブロック図である。 FIG. 2 is a block diagram illustrating a configuration example of the network system according to the first embodiment of this invention.
DC200は、ルータ202、ネットワークスイッチ203−1〜203−n、サーバシステム204−1〜204−n、ストレージ装置205−1、205−2とから構成される。以下、ネットワークスイッチ203−1〜203−nを区別しない場合、ネットワークスイッチ203と記載し、サーバシステム204−1〜204−nを区別しない場合、サーバシステム204と記載し、また、ストレージ装置205−1、205−2を区別しない場合、ストレージ装置205と記載する。
The
ルータ202、ネットワークスイッチ203、サーバシステム204、及びストレージ装置205は、それぞれネットワーク206を介して接続される。
The
DC200は、例えばインターネットのような外部ネットワーク201を介して、他のDC、システム又は端末等と接続される。
The
図3は、本発明の第1の実施形態のサーバシステム204の内部構成の一例を説明するブロック図である。
FIG. 3 is a block diagram illustrating an example of the internal configuration of the
図3に示す例では、サーバシステム204は、物理計算機300と物理NIC312とから構成される。物理計算機300と物理NIC312とは、例えば、PCI(Peripheral Component InterConnect)バスのような内部バス320を介して互いに接続される。
In the example illustrated in FIG. 3, the
物理計算機300は、1つ以上の仮想計算機1(301−1)〜仮想計算機n(301−n)と、仮想計算機モニタ302とを含む。なお、物理計算機300のハードウェア構成については、図4を用いて後述する。
The
仮想計算機モニタ302は、仮想計算機1(301−1)〜仮想計算機n(301−n)を生成し、生成された仮想計算機1(301−1)〜仮想計算機n(301−n)を管理する。
The
仮想計算機モニタ302は、物理計算機300が備える物理的な計算機資源を仮想的な計算機資源に変換し、仮想計算機1(301−1)〜仮想計算機n(301−n)に、それぞれ、仮想的な計算機資源を割り当てる。なお、物理計算機300が備える計算機資源を割り当てる方法については、周知又は公知の技術を適宜用いればよいので、ここでは詳述しない。
The virtual machine monitor 302 converts physical computer resources included in the
以降、仮想計算機1(301−1)〜仮想計算機n(301−n)を区別しない場合、仮想計算機301と記載する。
Hereinafter, when the virtual machines 1 (301-1) to n (301-n) are not distinguished, they are referred to as
物理計算機300が備える物理的な計算機資源としては、図4に示すようなものが考えられる。
As a physical computer resource provided in the
図4は、本発明の第1の実施形態の物理計算機300のハードウェア構成の一例を説明するブロック図である。
FIG. 4 is a block diagram illustrating an example of the hardware configuration of the
図4に示すように、物理計算機300は、CPU330とメモリ331と不揮発性記憶媒体332とを備え、内部バス等を介して互いに接続される。
As shown in FIG. 4, the
CPU330は、メモリ331上に展開されたプログラムを実行する。メモリ331は、CPU330によって実行されるプログラム及び当該プログラムを実行するために必要な情報を格納する。また、メモリ331はCPU330が処理を実行するためのワークエリアとしても使用される。不揮発性記憶媒体332は、各種情報を格納し、例えば、HDD等が考えられる。
The
仮想計算機モニタ302は、CPU330、メモリ331及び不揮発性記憶媒体332を各仮想計算機301に割り当てる。なお、物理計算機300は、図示しない構成を備えてもよい。例えば、I/Oインタフェース、ネットワークインタフェース等を備えてもよい。
The
なお、図4では、CPU330、メモリ331及び不揮発性記憶媒体332がそれぞれ1つの場合を示したが、複数備えていてもよい。また、CPU330は、複数のコアを含むものであってもよい。
Note that FIG. 4 shows the case where there is one
図3の説明に戻る。 Returning to the description of FIG.
仮想計算機1(301−1)〜仮想計算機n(301−n)は、アプリケーション(以降、APと記載する)321−1〜321−n、ゲストOS322−1〜322−n、仮想ドライバ323−1〜323−nを備える。 The virtual machine 1 (301-1) to the virtual machine n (301-n) are applications (hereinafter referred to as AP) 321-1 to 321-n, guest OS 322-1 to 322-n, and virtual driver 323-1. ~ 323-n.
ゲストOS322−1〜322−nは、各仮想計算機301上で実行されるOSである。AP321−1〜321−nは、各ゲストOS322−1〜322−n上で実行されるプログラムである。AP321−1〜321−nが実行されることによって、すなわち、AP321−1〜322−nが動作することによって、各AP321−1〜322−nに対応するサービスが提供される。
The guest OSs 322-1 to 322-n are OSs executed on the respective
以降、ゲストOS322−1〜322−nを区別しない場合、ゲストOS322と記載し、AP321−1〜321−nを区別しない場合、AP321と記載する。
Hereinafter, the guest OSs 322-1 to 322-n are described as guest OS 322 when not distinguished from each other, and the APs 321-1 to 321-n are described as
仮想ドライバ323−1〜323−nは、ゲストOS322−1〜322−nが処理を実行するときに用いられるデバイスドライバである。 The virtual drivers 323-1 to 323-n are device drivers used when the guest OSs 322-1 to 322-n execute processing.
以降、仮想ドライバ323−1〜323−nを区別しない場合、仮想ドライバ323と記載する。 Hereinafter, when the virtual drivers 323-1 to 323-n are not distinguished, they are described as virtual drivers 323.
なお、本実施形態では、各仮想計算機301におけるネットワークのエミュレーション処理は、物理NIC312によって実行される。
In this embodiment, network emulation processing in each
仮想計算機モニタ302は、送信モニタ303、受信モニタ304、性能差解消処理部305、疑似輻輳処理部306、AP情報管理部307、AP情報管理テーブル308、構成履歴管理部309、及び構成履歴管理テーブル310を備える。
The
送信モニタ303は、各仮想計算機301上で実行されるAP321が送信するデータを解析し、当該解析結果を物理NIC312に送信する。
The
受信モニタ304は、物理NIC312を介して受信した、仮想計算機301上で実行される各AP321宛のデータをロギングする。例えば、受信データの受信間隔、及び仮想NICの受信バッファにバッファリングされる受信データ数等が監視される。
The reception monitor 304 logs data addressed to each
AP情報管理部307は、AP321の動作環境に関する情報を管理する。以降、AP321の動作環境に関する情報をAP動作情報と記載する。
The AP
AP動作情報は、例えば、AP321を特定する識別子、ネットワーク設定情報、受信モニタ304によって測定された受信データの受信間隔等が考えられる。
The AP operation information may be, for example, an identifier that identifies the
AP情報管理部307は、前述したようなAP動作情報を取得し、取得されたAP動作情報をAP情報管理テーブル308に格納する。AP情報管理テーブル308の詳細については、図5を用いて後述する。
The AP
構成履歴管理部309は、サーバシステム204のハードウェアの構成情報及び仮想計算機301に割り当てるハードウェアの構成情報を管理する。
The configuration
構成履歴管理部309は、例えば、仮想計算機301の生成時に、サーバシステム204のハードウェアの構成情報及び仮想計算機301に割り当てるハードウェアの構成情報を取得し、取得された各構成情報を構成履歴管理テーブル310に格納する。なお、サーバシステム204のハードウェアの構成情報は、サーバシステム204の初期設定時に取得されてもよい。
The configuration
構成履歴管理部309は、サーバシステム204のハードウェア構成が変更された場合に、変更されたハードウェアの構成情報を取得し、構成履歴管理テーブル310に取得されたハードウェアの構成情報を格納する。
When the hardware configuration of the
構成履歴管理テーブル310の詳細については、図6を用いて後述する。 Details of the configuration history management table 310 will be described later with reference to FIG.
性能差解消処理部305は、サーバシステム204のハードウェア構成が変更される場合、AP321を正常に動作させるための制御情報を決定する。
The performance difference
具体的には、性能差解消処理部305は、サーバシステム204のハードウェア構成が変更される場合、AP321がインストールされた時点のハードウェアの構成情報とハードウェアの構成が変更された後のハードウェアの構成情報とを構成履歴管理テーブル310から取得する。さらに、性能差解消処理部305は、AP321がインストールされた時点のハードウェアの構成情報とハードウェアの構成が変更された後のハードウェアの構成情報との差分を算出し、算出された差分に基づいて、AP321を正常に動作させるための制御内容を決定する。本実施形態では、監視するハードウェアを物理NIC312として説明するが、CPU330、又はメモリ331等のハードウェアであっても本発明は実施可能である。
Specifically, when the hardware configuration of the
疑似輻輳処理部306は、性能差解消処理部305によって決定された制御内容に基づいて、疑似的に輻輳状態を発生させる処理を実行する。
The pseudo
物理NIC312は、サーバシステム204が他の装置(例えば、ネットワークスイッチ203及びストレージ装置205等)と通信するためのネットワークインタフェースである。物理NIC312は、仮想NIC327−1〜327−n、ルーティング部328及び処理部329を備える。
The
仮想NIC327−1〜327−nは、それぞれ、仮想計算機1(301−1)〜仮想計算機n(301−n)に対応する仮想NICネットワーク機能を備える。すなわち、仮想NIC327−1〜327−nは、各仮想計算機301におけるネットワークのエミュレーション処理を実行するための機能を備える。物理NIC312がネットワークのエミュレーション処理を実行することによって、サーバシステム204の処理性能を向上することが可能となる。
The virtual NICs 327-1 to 327-n have virtual NIC network functions corresponding to the virtual machines 1 (301-1) to n (301-n), respectively. That is, the virtual NICs 327-1 to 327-n have a function for executing network emulation processing in each
仮想NIC327−1〜327−nは、それぞれ、送信バッファ324−1〜324−n及び受信バッファ325−1〜325−nを備える。送信バッファ324−1〜324−nは、各仮想計算機301から送信されるデータを一時的に格納するバッファである。受信バッファ325−1〜325−nは、各仮想計算機301が受信するデータを一時的に格納するバッファである。
The virtual NICs 327-1 to 327-n include transmission buffers 324-1 to 324-n and reception buffers 325-1 to 325-n, respectively. The transmission buffers 324-1 to 324-n are buffers that temporarily store data transmitted from each
仮想計算機モニタ302は、仮想計算機301における仮想ドライバ323と物理NIC312の仮想NIC327とを対応づけて管理する。図3に示す例では、仮想ドライバ323−1と仮想NIC327−1とが対応づけられ、仮想ドライバ323−2と仮想NIC327−2とが対応づけられ、仮想ドライバ323−nと仮想NIC327−nとが対応づけられる。
The
以降、仮想NIC327−1〜327−nを区別しない場合、仮想NIC327と記載する。また、送信バッファ324−1〜324−nを区別しない場合、送信バッファ324と記載し、また、受信バッファ325−1〜325−nを区別しない場合、受信バッファ325と記載する。
Hereinafter, when the virtual NICs 327-1 to 327-n are not distinguished, they are described as
ルーティング部328は、各仮想計算機301から送信された送信データを処理部329へ出力し、処理部329から入力されたデータを各仮想NIC327へ振分ける処理を行う。
The
処理部329は、ネットワークからデータを受信し、また、ネットワークへデータを送信する。
The
なお、サーバシステム204は、サーバシステム204とストレージ装置205との間の接続に用いられるインタフェースであるHBA(図示省略)を備える。また、仮想計算機301は、仮想HBA(図示省略)を備えていてもよい。
The
本実施形態では、物理NICがネットワークのエミュレーションを実行するため、仮想NIC327及びルーティング部328を備えているが、仮想計算機モニタ302が仮想NIC327を構えていてもよい。この場合、仮想計算機モニタ302が、ネットワークのエミュレーション処理を実行する。
In this embodiment, since the physical NIC executes network emulation, the
なお、各部が備える機能を一つの部にまとめてもよい。 Note that the functions provided in each unit may be combined into one unit.
図5は、本発明の第1の実施形態のAP情報管理テーブル308のフォーマットの一例を示す説明図である。 FIG. 5 is an explanatory diagram illustrating an example of a format of the AP information management table 308 according to the first embodiment of this invention.
AP情報管理テーブル308は、AP情報アドレス管理表800を含む。AP情報アドレス管理表800は、各仮想計算機301上で動作するAP321のAP動作情報が格納されるエリアのアドレスを管理する。
The AP information management table 308 includes an AP information address management table 800. The AP information address management table 800 manages addresses of areas in which AP operation information of the
ここで、エリアとはメモリ331上のアドレス空間の一部分を示し、AP情報アドレス管理表800に格納されるアドレスは当該エリアの先頭のアドレスが格納される。仮想計算機モニタ302は、メモリ331上に各仮想計算機301上で動作するAP321のAP動作情報を格納するエリアを確保し、当該エリアに以下で説明する情報を格納する。
Here, the area indicates a part of the address space on the
AP情報アドレス管理表800のアドレスに示されたエリアには、AP名801、AP−ID802、NW設定情報、インストール日時808、送信ログアドレス809、受信ログアドレス810、AP受信処理間隔811及び疑似輻輳処理ログアドレス812等が格納される。
The area indicated by the address of the AP information address management table 800 includes an
AP名801は、仮想計算機301上で実行されるAP321の名称である。AP−ID802は、仮想計算機301上で実行されるAP321を特定する識別子である。
The
NW設定情報は、仮想計算機301上で実行されるAP321が使用する仮想NIC327におけるネットワークの設定情報である。NW設定情報は、例えば、MACアドレス803、IPアドレス804、ポート805、受信バッファサイズ806及びVLAN−ID807等を含む。
The NW setting information is network setting information in the
MACアドレス803はAP321が利用する仮想NIC327に割り当てられたMACアドレスである。IPアドレス804は、仮想NIC327に割り当てられたIPアドレスである。ポート805は、仮想NIC327におけるポートのポート番号である。受信バッファサイズ806は、仮想NIC327に割り当てられた受信バッファ325のサイズである。VLAN−ID807は、仮想NIC327に対して設定されたVLAN(Virtual Local Area Network)の識別子等である。
The
インストール日時808は、仮想計算機301にAP321がインストールされた日時等の時間情報である。
The installation date and
送信ログアドレス809は、仮想計算機301上で実行されるAP321が送信するデータのロギング情報が格納されるエリアの先頭のアドレスである。
The
受信ログアドレス810は、仮想計算機301上で実行されるAP321が受信するデータのロギング情報が格納されるエリアの先頭のアドレスである。受信ログアドレス810によって示されるエリアには、通信相手アドレス820、シーケンス番号821、NIC受信タイムスタンプ822、AP受信処理タイムスタンプ823及び受信データ824等が格納される。
The
通信相手アドレス820は、仮想計算機301上で実行されるAPが通信する相手のアドレスである。シーケンス番号821は、仮想計算機モニタ302によって、各AP321毎にカウントされる受信データパケットのシーケンス番号である。NIC受信タイムスタンプ822は、物理NIC312が受信データパケットを受信した時刻情報である。AP受信処理タイムスタンプ823は、AP321が受信データパケットを受信した時刻情報である。受信データ824は、受信データパケットそのものである。
The
AP受信処理間隔811は、仮想計算機301上で実行されるAP321がデータを受信する間隔である。
The AP
疑似輻輳処理ログアドレス812は、疑似輻輳処理部306によって実行された処理のロギング情報を格納するエリアのアドレスである。
The pseudo congestion
疑似輻輳処理ログアドレス812に示されたエリアには、判定日時830、CPU831、メモリ832、物理NIC帯域833、仮想NIC帯域834及び疑似輻輳発生間隔835等が格納される。
In the area indicated by the pseudo congestion
判定日時830は、疑似輻輳が必要であると判定された日時等の時間情報である。CPU831は、疑似輻輳が必要であると判定された時の、仮想計算機301に割り当てられたCPUの情報である。例えば、CPUの情報は、AP321によって使用される仮想計算機301に割り当てられたCPUの稼働率である。
The determination date and
メモリ832は、疑似輻輳が必要であると判定された時の、仮想計算機301に割り当てられたメモリの情報である。例えば、メモリの情報は、AP321によって使用される仮想計算機301に割り当てられたメモリのメモリサイズである。
The
物理NIC帯域833は、物理NIC312に割り当てられた帯域である。仮想NIC帯域834は、仮想NIC327に割り当てられた帯域である。疑似輻輳発生間隔835は、疑似輻輳を発生する間隔である。
The
図6は、本発明の第1の実施形態の構成履歴管理テーブル310のフォーマットの一例を示す説明図である。 FIG. 6 is an explanatory diagram illustrating an example of a format of the configuration history management table 310 according to the first embodiment of this invention.
構成履歴管理テーブル310は、構成情報アドレス管理表900を含む。構成情報アドレス管理表900は、サーバシステム204のハードウェアの構成情報が格納されるワークエリアのアドレスを管理する。なお、構成情報アドレス管理表900に格納されるアドレスは、当該ワークエリアの先頭のアドレスが格納される。
The configuration history management table 310 includes a configuration information address management table 900. The configuration information address management table 900 manages addresses of work areas in which hardware configuration information of the
構成履歴管理テーブル310は、サーバシステム204上で仮想計算機モニタ302が稼働を開始した後、ハードウェアの変更が発生する毎に更新される。すなわち、ハードウェアが変更された場合、構成情報アドレス管理表900にアドレスが追加され、当該アドレスに対応するエリアにハードウェアの構成情報が格納される。
The configuration history management table 310 is updated each time a hardware change occurs after the virtual machine monitor 302 starts operating on the
構成情報アドレス管理表900に示されたエリアには、設定日時901、CPU902、メモリ903、NIC904、HBA905、仮想計算機総数906及び仮想計算機の設定情報アドレス等が格納される。
The area shown in the configuration information address management table 900 stores a setting date and
設定日時901は、ハードウェアが変更された日時等の時間情報である。CPU902は、ハードウェアが変更された後の物理計算機300におけるCPU330の情報である。メモリ903はハードウェアが変更された後の物理計算機300におけるメモリ331の情報である。
The
NIC904は、ハードウェアが変更された後の物理NIC312の情報である。例えば、物理NIC312の帯域等が格納される。HBA905は、ハードウェアが変更された後の物理計算機300におけるHBA(Host Bus Adapter)の情報である。
The
仮想計算機総数906は、物理計算機300上に生成された仮想計算機301の数である。
The total number of
仮想計算機の設定情報アドレスは、物理計算機300上に生成された各仮想計算機301の設定情報が格納されるエリアのアドレスである。
The setting information address of the virtual machine is an address of an area in which setting information of each
図6に示す例では、仮想計算機1の設定情報アドレス907と、仮想計算機2の設定情報アドレス908とが格納される。仮想計算機1の設定情報アドレス907は、仮想計算機1(301−1)の設定情報が格納されるエリアのアドレスである。仮想計算機2の設定情報アドレス908は、仮想計算機2(301−2)の設定情報が格納されるエリアのアドレスである。
In the example shown in FIG. 6, the setting
以下、仮想計算機1の設定情報アドレス907に示されたエリアに格納される情報を例として説明する。
Hereinafter, the information stored in the area indicated by the setting
仮想計算機1の設定情報アドレス907に示されたエリアには、設定日時910、OS911、CPU912、メモリ913、仮想NIC帯域914及び仮想HBA帯域915等が含まれる。
The area indicated by the setting
設定日時910は、仮想計算機1(301−1)が生成された日時等の時間情報である。OS911は、仮想計算機1(301−1)のゲストOS322−1の情報である。CPU912は、仮想計算機1(301−1)に割り当てられたCPUの情報である。メモリ913は、仮想計算機1(301−1)に割り当てられたメモリの情報である。仮想NIC帯域914は、仮想計算機1(301−1)の仮想NIC327−1に割り当てられた帯域である。仮想HBA帯域915は、仮想計算機1(301−1)の仮想HBAに割り当てられた帯域である。
The set date and
図7は、本発明の第1の実施形態のネットワークシステムにおけるサーバシステム204が実行する処理の流れを説明するシーケンス図である。
FIG. 7 is a sequence diagram illustrating the flow of processing executed by the
仮想計算機301−1上にAP321−1がインストールされ、AP321−1が起動される(400)。 The AP 321-1 is installed on the virtual machine 301-1, and the AP 321-1 is activated (400).
仮想計算機モニタ302は、AP321−1の起動を検知すると以下の処理を実行する。
When the
仮想計算機モニタ302は、構成履歴管理テーブル310からAP321−1がインストールされた時のハードウェアの構成情報を取得し、AP321−1についてのロギング(図9参照)を開始する(401)。具体的には、仮想計算機モニタ302は、AP321−1から送受信されるパケットの測定し、AP情報管理テーブル308に測定結果を格納する。なお、送信パケットの測定は送信モニタ303によって実行され、受信パケットの測定は受信モニタ304によって実行される。
The
AP321−1は、パケットを送受信する(402、403)。AP321−1が送信されたパケットは、仮想NIC327−1からネットワークスイッチ203へと送信され、ネットワークスイッチ203から受信したパケットは、仮想NIC327−1を介してAP321−1が受信する。
The AP 321-1 transmits / receives a packet (402, 403). The packet transmitted by the AP 321-1 is transmitted from the virtual NIC 327-1 to the
仮想計算機モニタ302は、送受信されるパケットの測定結果に基づいて、仮想計算機301−1が使用する仮想NIC327−1の受信バッファ325−1のサイズ、及び、AP受信処理間隔等を取得する(404)。取得された情報は、AP情報管理テーブル308の仮想計算機301−1に対応するエリアに格納される。
The
ここで、物理NIC312が変更されると(405)、仮想計算機モニタ302は、物理NIC312の変更を検知し、変更後の物理NIC312の情報を取得し、疑似輻輳の発生間隔を算出する(406)。
Here, when the
以下、性能が高い物理NIC312に変更された場合を例に疑似輻輳の発生間隔の算出方法を説明する。なお、AP321−1がインストールされた時の物理NICを旧物理NIC312と記載し、また、性能が高い物理NIC312を新物理NIC312と記載する。
Hereinafter, a method for calculating the pseudo-congestion occurrence interval will be described by taking as an example the case where the
物理NIC312の変更を検知した仮想計算機モニタ302は、新物理NIC312の情報を取得し、他のハードウェア情報とともに取得された新物理NICの情報を、世代の異なるハードウェア構成情報として構成履歴管理テーブル310に格納する。
The virtual machine monitor 302 that has detected the change of the
次に、仮想計算機モニタ302は、構成履歴管理テーブル310から変更前のハードウェアの構成情報を取得し、旧物理NIC312と新物理NIC312との性能の差分を算出する。
Next, the
例えば、100Mbpsの速度である旧物理NIC312から1Gbpsの速度である新物理NIC312に変更された場合、性能の差分は、1Gbps/100Mbps=10と算出される。すなわち、旧物理NIC312と新物理NIC312との性能の差分は10倍と算出される。
For example, when the old
この場合、AP321−1は、物理NIC312が変更された後、変更前と比較して10倍のデータ量を受信する可能性があり、オーバーフローが発生する可能性がある。
In this case, after the
そこで、仮想計算機モニタ302は、AP情報管理テーブル308を参照して、AP受信処理間隔811と受信バッファサイズ806とを取得し、受信バッファがオーバーフローする前に、輻輳状態を疑似的に発生させる間隔(疑似輻輳発生間隔414)を算出する。疑似輻輳発生間隔414は、疑似輻輳処理を実行するタイミングとなる時間である。
Therefore, the
なお、疑似輻輳発生間隔の算出方法については、図8A及び図8Bを用いて後述する。 A method for calculating the pseudo congestion occurrence interval will be described later with reference to FIGS. 8A and 8B.
仮想計算機モニタ302は、疑似輻輳発生処理を開始する(407)。具体的には、仮想計算機モニタ302は、算出された疑似輻輳発生間隔414に基づいて、送受信されるパケット(408、409)の計測を開始する。また、仮想計算機モニタ302は、疑似輻輳発生間隔414のカウントを開始する。 The virtual machine monitor 302 starts pseudo congestion generation processing (407). Specifically, the virtual machine monitor 302 starts measuring the transmitted and received packets (408, 409) based on the calculated pseudo congestion occurrence interval 414. Further, the virtual machine monitor 302 starts counting the pseudo congestion occurrence interval 414.
仮想計算機モニタ302は、疑似輻輳発生間隔414分の時間が経過した後、疑似輻輳の発生を仮想NIC327−1へ通知する(410)。具体的には、パケットの送信の停止を要求するPAUSEコマンドの発生を通知する。
The
イーサネット等の物理NIC312は輻輳状態を検知した場合に、データ送信の停止を要求する機能を備える。例えば、ネットワークスイッチ203が、PAUSEコマンドを専用のマルチキャストアドレスに送信することによってデータ受信者(この場合、AP321−1)へのデータ送信を中断させる方法、又はデータ送信元に対して衝突検知を通知することによってデータ送信を中断させる方法等が考えられる。
The
図7に示す例では、疑似輻輳の発生の通知を受けた仮想NIC327−1がPAUSEコマンドをネットワークスイッチ203に送信する(411)。これによって、PAUSEコマンドを受信したSW203がパケットの送信元に対して当該PAUSEコマンドを送信することによって、受信データのフロー制御を行うことができる。
In the example illustrated in FIG. 7, the virtual NIC 327-1 that has received the notification of the occurrence of pseudo congestion transmits a PAUSE command to the network switch 203 (411). Thus, the
ネットワークスイッチ203は、仮想NIC327−1から送信されたPAUSEコマンドを受信し、受信したPAUSEコマンドをデータ送信元のアドレスへ送信して、データ送信元からのデータ送信を一時停止させる(412)。これによって、AP321−1が受信するパケットの受信量が一定に保たれる。すなわち、オーバーフローの発生を回避することができる。
The
疑似輻輳を発生させることによって、AP321−1は、新物理NIC312に変更される前と同一のデータ量のパケットを受信することができる(413)。 By generating pseudo congestion, the AP 321-1 can receive a packet having the same data amount as before the change to the new physical NIC 312 (413).
なお、AP321−1が利用する仮想NIC327−1に対して疑似輻輳を通知するため、他の仮想NIC327を利用するAP321には影響を与えない。
In addition, since pseudo-congestion is notified to the virtual NIC 327-1 used by the AP 321-1, the
図8A及び図8Bは、本発明の第1の実施形態の仮想計算機モニタ302が実行する処理を説明するフローチャートである。 8A and 8B are flowcharts illustrating processing executed by the virtual machine monitor 302 according to the first embodiment of this invention.
仮想計算機モニタ302は、処理を開始すると、仮想計算機301を新たに生成するか否かを判定する(ステップ500)。例えば、サーバシステム204の管理者から仮想計算機301の生成要求を受けたか否かによって判定される。
When starting the process, the
仮想計算機301を新たに生成すると判定された場合、仮想計算機モニタ302は、仮想計算機301に割り当てるCPU、メモリ等のハードウェアの構成情報を決定し、決定されたハードウェアの構成情報を構成履歴管理テーブル310に格納する(ステップ501)。
When it is determined that a new
次に、仮想計算機モニタ302は、生成された仮想計算機301にAP321がインストールされるか否かを判定する(ステップ502)。例えば、生成された仮想計算機301を利用するユーザが、当該仮想計算機にAP321をインストールしたか否かを検知することによって判定される。
Next, the
生成された仮想計算機301にAP321がインストールされると判定された場合、仮想計算機モニタ302は、インストールされるAP321を実行するために必要な設定情報(例えば、AP321の名称、及びIPアドレスなどのネットワーク設定情報等)を取得し、AP情報管理テーブル308に格納する(ステップ503)。
When it is determined that the
具体的には、仮想計算機モニタ302は、メモリ331上に生成された仮想計算機301上で実行されるAP321の情報を格納するためのエリアを確保し、さらに、送信ログエリア及び受信ログエリアの確保し、確保された各エリアに、取得された情報を格納する。
Specifically, the
仮想計算機モニタ302は、インストールされたAP321が起動されたか否かを判定する(ステップ504)。
The
インストールされたAP321が起動されていないと判定された場合、仮想計算機モニタ302は、ステップ502に戻り、同様の処理を実行する。
If it is determined that the installed
インストールされたAP321が起動されたと判定された場合、仮想計算機モニタ302は、AP動作情報を取得するためのロギングを開始する(ステップ505)。ロギングの詳細については、図9を用いて後述する。
When it is determined that the installed
仮想計算機モニタ302は、疑似輻輳を発生させるか否かを判定する(ステップ506)。
The
具体的には、仮想計算機モニタ302が、疑似輻輳発生処理を開始してから、疑似輻輳発生間隔835に示された時間間隔に達したか否かを判定する。さらに、疑似輻輳発生間隔835に示された時間間隔が経過した場合、仮想計算機モニタ302は、受信バッファ325にバッファリングされているデータパケット数を検出し、AP情報管理テーブル308の受信ログアドレスに示されるエリアの情報を参照し、次の疑似輻輳発生間隔835に示された時間間隔が経過するまでに、バッファリングされたデータパケット数がバッファオーバーを起こさないか否かを判定する。
Specifically, the
次の疑似輻輳発生間隔835に示された時間間隔が経過するまでに、バッファリングされたデータパケット数がバッファオーバーを起こさないと判定された場合には、仮想計算機モニタ302は、次の疑似輻輳発生間隔835に示された時間間隔が経過するまで、疑似輻輳処理を実行しない。
If it is determined that the number of buffered data packets will not cause buffer over until the time interval indicated by the next
疑似輻輳を発生させると判定された場合、仮想計算機モニタ302は、AP情報管理テーブル308に仮想計算機301の情報を更新し(ステップ507)、疑似輻輳の発生を仮想NIC327へ通知する(ステップ508)。
When it is determined that the pseudo congestion is generated, the virtual machine monitor 302 updates the information of the
具体的には、疑似輻輳処理部306が、現在の時間を取得し、取得された現在の時間をAP情報管理テーブル308の疑似輻輳発生ロギングエリアに格納する。
Specifically, the pseudo
また、PAUSEコマンドの送信要求を受信した仮想NIC327は、当該仮想NIC327が設定される物理NIC312と接続されるネットワークスイッチ203に対してPAUSEコマンドを送信する。なお、イーサネットにおけるPAUSEコマンドには送信を停止させる時間が含まれるため、送信停止時間を設定することによって、自動的にデータ送信を再開させることが可能である。
In addition, the
仮想計算機モニタ302は、AP321が終了したか否かを判定する(ステップ509)。なお、AP321は、ユーザ又はサーバシステム204の管理者によって終了される。
The
AP321が終了していないと判定された場合、仮想計算機モニタ302は、ステップ505からステップ508の処理を実行する。
If it is determined that the
AP321が終了したと判定された場合、仮想計算機モニタ302は、処理を終了する。
If it is determined that the
ステップ500において仮想計算機301を新たに生成しないと判定された場合、又は、ステップ502において生成された仮想計算機301にAP321がインストールされないと判定された場合、仮想計算機モニタ302は、サーバシステム204のハードウェアが変更されたか否かを判定する(ステップ510)。
If it is determined in
サーバシステム204のハードウェアが変更されていないと判定された場合、仮想計算機モニタ302は、ステップ500に戻り同様の処理を実行する。
If it is determined that the hardware of the
サーバシステム204のハードウェアが変更されたと判定された場合、仮想計算機モニタ302は、ハードウェアが変更された後のサーバシステム204のハードウェアの構成情報を取得して構成履歴管理テーブル310を更新する(ステップ511)。
When it is determined that the hardware of the
具体的には、仮想計算機モニタ302は、変更後のサーバシステム204のハードウェア構成情報を格納するためのエリアをメモリ331上に確保し、構成情報アドレス管理表900に当該確保されたエリアの先頭アドレスを追加する。
Specifically, the
さらに、仮想計算機モニタ302は、変更後のサーバシステム204のハードウェア構成情報を格納するためのエリアに、取得された情報(例えば、設定日時、CPU、メモリ、NICの処理速度及びプロトコルのバージョン等)を格納する。なお、変更されないハードウェアについては、変更後のサーバシステム204のハードウェア構成情報を格納するためのエリアには、変更前のサーバシステム204のハードウェアの構成情報と同一のものが格納される。
Further, the virtual machine monitor 302 stores the acquired information (for example, setting date / time, CPU, memory, NIC processing speed, protocol version, etc.) in the area for storing the hardware configuration information of the
次に、仮想計算機モニタ302は、ハードウェアの変更に伴う移行処理を実行する(ステップ512)。
Next, the
例えば、変更されるハードウェアが物理NIC312の場合、仮想計算機モニタ302は、当該物理NIC312を利用するAP321を停止させ、新たな物理NIC312に変更された後にネットワークの設定情報を移行する方式や、AP321は稼働させたまま、別のサーバシステム204又は別の物理計算機300上に構築された仮想環境に仮想計算機301を移行するライブマイグレーション方式等を利用する方法が考えられる。
For example, when the hardware to be changed is the
仮想計算機モニタ302は、変更されたハードウェアが物理NIC312であるか否かを判定する(ステップ513)。
The
変更されたハードウェアが物理NIC312でないと判定された場合、仮想計算機モニタ302は、ステップ500に戻り同様の処理を実行する。なお、変更されたハードウェアに基づいた処理を実行してもよい。
If it is determined that the changed hardware is not the
変更されたハードウェアが物理NIC312であると判定された場合、仮想計算機モニタ302は、ステップ514からステップ518に示す、性能差を解消するための処理を実行する。すなわち、疑似輻輳を発生させるための処理が実行される。
When it is determined that the changed hardware is the
まず、仮想計算機モニタ302は、構成履歴管理テーブル310から変更後の物理NIC312の性能情報(例えば、処理速度やプロトコル情報等)を取得する(ステップ514)。
First, the
仮想計算機モニタ302は、AP情報管理テーブル308及び構成履歴管理テーブル310から、AP321がインストールされた時点のサーバシステム204のハードウェアの構成情報を取得する(ステップ515)。すなわち、変更前の物理NIC312の性能情報が取得される。当該処理は、性能差解消処理部305によって実行される。
The
具体的には、仮想計算機モニタ302は、構成履歴管理テーブル310から、AP321がインストールされた時点のサーバシステム204のハードウェアの構成情報を取得する。
Specifically, the
次に、仮想計算機モニタ302は、取得されたハードウェアの構成情報の設定日時901に基づいて、変更前の物理NIC312が割り当てられていた仮想計算機上で実行されるAP321を特定する。さらに、仮想計算機モニタ302は、AP情報管理テーブル308から特定されたAP321の情報を取得する。特定されたAP321の情報は、仮想NIC327の受信バッファ325のバッファサイズ及びAP321の受信処理間隔を含む。
Next, the
なお、以下では、変更前の物理NIC312を第1世代の物理NIC312と記載し、変更後の物理NIC312を第2世代の物理NIC312と記載する。
Hereinafter, the
仮想計算機モニタ302は、取得された第1世代の物理NIC312の性能情報と第2世代の物理NIC312の性能情報とに基づいて、第1世代の物理NIC312と第2世代の物理NIC312との性能差を算出する(ステップ516)。当該処理は、性能差解消処理部305によって実行される。
Based on the acquired performance information of the first generation
例えば、第1世代の物理NIC312の速度が100Mbps、第2世代の物理NIC312の速度が1Gbpsの速度である場合、1Gbps/100Mbpsを計算することによって、第2世代の物理NIC312は、第1世代の物理NIC312の10倍のデータ送受信能力を持つことが分かる。
For example, when the speed of the first generation
第2世代の物理NIC312の性能が第1世代の物理NIC312の性能より高いと判定された場合には、仮想計算機モニタ302は、疑似輻輳を発生させることを決定し、以下の処理を実行する。
When it is determined that the performance of the second generation
なお、第2世代の物理NIC312の性能が第1世代の物理NIC312の性能より低い場合、疑似輻輳を発生させる必要がないためステップ509に進んでもよい。
If the performance of the second generation
仮想計算機モニタ302は、第1世代の物理NIC312上の仮想NIC327を利用していたAP321の情報、及び算出された第1世代の物理NIC312と第2世代の物理NIC312との性能差に基づいて、疑似輻輳発生間隔を決定する(ステップ517)。当該処理は、性能差解消処理部305によって実行される。
The
例えば、第1世代の物理NIC312と第2世代の物理NIC312との性能差が10倍であり、AP321の受信処理間隔が100msであり、仮想NIC327の受信バッファ325のバッファサイズが10データパケット分である場合、データを受信してから10ms経過後に仮想NIC327の受信バッファ325にオーバーフローが起こる可能性がある。従って、この場合、仮想計算機モニタ302は、疑似輻輳発生間隔を「10ms」と決定し、決定された疑似輻輳発生間隔をAP情報管理テーブル308の疑似輻輳発生間隔835に格納する。
For example, the performance difference between the first generation
仮想計算機モニタ302は、決定された疑似輻輳発生間隔を用いて、疑似輻輳発生処理を開始する(ステップ518)。 The virtual machine monitor 302 starts pseudo congestion generation processing using the determined pseudo congestion generation interval (step 518).
その後、仮想計算機モニタ302は、ステップ505に進み、ステップ505からステップ509の処理を実行する。
Thereafter, the virtual machine monitor 302 proceeds to step 505 and executes the processing from
なお、ステップ518は、仮想計算機モニタ302が仮想NIC327の受信バッファ325にバッファリングされるデータ量の上限値を設定し、仮想NIC327の受信バッファ325にバッファリングされるデータ量が疑似輻輳発生間隔以内であっても、設定された上限値を超える場合には、PAUSEコマンドの送信要求を通知する処理であってもよい。
In step 518, the
なお、仮想計算機モニタ302は、仮想NIC327の受信バッファ325に設定される上限値を決定し、当該上限値を用いて処理を実行してもよい。すなわち、仮想計算機モニタ302は、疑似輻輳発生間隔の代わりに、仮想NIC327の受信バッファ325のバッファサイズの上限値に基づいて、疑似輻輳の発生の有無を判定してもよい。
The virtual machine monitor 302 may determine an upper limit value set in the
また、仮想NIC327の受信バッファ325へのバッファリング量が多く、疑似輻輳発生間隔毎に毎回PAUSEコマンドが送信されているような場合においては、例えば、仮想NIC327に更に当該AP321の仮想NIC327の受信バッファ325を持たせて受信可能なデータ量を増やす処理を実行してもよい。
Further, when the amount of buffering to the
なお、ステップ509からステップ505に戻るときに、仮想計算機モニタ302は、ハードウェアが変更されたか否かを判定し、ハードウェアが変更された場合には、ステップ511からステップ518の処理を実行するようにしてもよい。
When returning from step 509 to step 505, the
図9は、本発明の第1の実施形態の仮想計算機モニタ302が実行するAP動作情報のロギング処理を説明するフローチャートである。 FIG. 9 is a flowchart illustrating AP operation information logging processing executed by the virtual machine monitor 302 according to the first embodiment of this invention.
図9に示す処理は、ステップ505において実行される処理である。なお、以下で説明する処理は、送信モニタ303及び受信モニタ304によって実行される。
The process shown in FIG. 9 is a process executed in
仮想計算機モニタ302は、ステップ504においてAP321が起動した後、計測用エリアを初期化する(ステップ600)。
The
仮想計算機モニタ302は、AP情報管理テーブル308から起動しているAP321の設定情報を取得する(ステップ601)。取得される設定情報は、例えば、通信相手のアドレス情報、仮想NIC327の受信バッファ325のバッファサイズ(受信バッファサイズ806)等が含まれる。
The
仮想計算機モニタ302は、物理NIC312からの割り込みがあったか否かを判定する(ステップ602)。
The
物理NIC312からの割り込みがないと判定された場合、仮想計算機モニタ302は、ステップ602に戻り、物理NIC312からの割り込みを検出するまで同様の処理を実行する。
If it is determined that there is no interrupt from the
物理NIC312からの割り込みがあったと判定された場合、すなわち、物理NIC312からの割り込みを検出した場合、仮想計算機モニタ302は、当該割り込みがデータ受信についての割り込みか否かを判定する(ステップ603)。
When it is determined that there is an interrupt from the
物理NIC312からの割り込みがデータ受信についての割り込みであると判定された場合、仮想計算機モニタ302は、仮想NIC327の受信バッファ325に受信データをバッファリングし、受信データにタイムスタンプを付与する(ステップ604)。付与されるタイムスタンプは、物理NICが受信データを受け取った時刻を示し、当該タイムスタンプの情報は、NIC受信タイムスタンプ822に格納される。
If it is determined that the interrupt from the
次に、仮想計算機モニタ302は、受信データを受け取った間隔を算出する(ステップ605)。
Next, the
具体的には、仮想計算機モニタ302は、現在の時刻を取得し、取得された現在の時刻と前回のデータ受信割り込みが発生した時刻との時間間隔を算出し、算出結果をAP情報管理テーブル308に格納する。
Specifically, the
仮想計算機モニタ302は、AP321が受信処理を実行したか否かを判定する(ステップ606)。すなわち、AP321が受信データを受け取ったか否かが判定される。
The
AP321が受信処理を実行していないと判定された場合、仮想計算機モニタ302は、ステップ608に進む。
If it is determined that the
AP321が受信処理を実行していると判定された場合、仮想計算機モニタ302は、受信データにタイムスタンプを付与する(ステップ607)。付与されるタイムスタンプは、AP321が受信データを受け取った時刻を示し、当該タイムスタンプの情報は、AP受信処理タイムスタンプ823に格納される。
If it is determined that the
次に、仮想計算機モニタ302は、現在の時刻を取得して、取得された現在の時刻と、前回のAP321が受信処理を実行した時刻との時間間隔(AP受信処理間隔)を算出し、算出結果をAP情報管理テーブル308に格納し(ステップ608)、処理を終了する。
Next, the
なお、本実施形態では世代毎に管理されるハードウェアとして物理NIC312を対象としているが、その他CPU330やメモリ331等のハードウェアであってもよい。例えば、変更されるハードウェアがCPU330である場合、変更前のCPUの100%の処理能力に近似させるように使用率を制限する等の処理によって、ハードウェアの変更に伴う性能差の解消を実現できる。
In this embodiment, the
第1の実施形態によれば、仮想計算機モニタ302は仮想計算機301上にアプリケーションがインストールされた時点におけるサーバシステム204のハードウェアの構成情報を記録する。物理NICが変更された場合、仮想計算機モニタ302は、変更前の物理NIC312と変更後の物理NIC312との性能差を考慮して疑似輻輳を発生させることによって、受信データのフロー制御を行うことができる。これによって、ネットワークの高速化によって発生するアプリケーションの異常稼働や異常終了を防止することができる。
According to the first embodiment, the virtual machine monitor 302 records hardware configuration information of the
[第2の実施形態]
本発明の第2の実施形態について、図10〜図15を参照して説明する。
[Second Embodiment]
A second embodiment of the present invention will be described with reference to FIGS.
第2の実施形態は、ネットワークスイッチ203が、疑似輻輳を発生させる処理を実行する点が第1の実施形態と異なる。
The second embodiment is different from the first embodiment in that the
すなわち、物理計算機300の物理NIC312を変更する場合、仮想計算機モニタ302が、受信バッファがオーバーフローしないようにするための疑似輻輳発生間隔を、物理計算機300に接続されるネットワークスイッチ203に通知し、ネットワークスイッチ203が当該通知に従って疑似輻輳を発生させる。
That is, when the
以下、第1の実施形態との差異を中心に説明する。 Hereinafter, the difference from the first embodiment will be mainly described.
第2の実施形態のネットワークシステムの構成は第1の実施形態と同一であるため説明を省略する。また、サーバシステム204及び物理計算機300の構成も第1の実施形態と同一であるため説明を省略する。
Since the configuration of the network system of the second embodiment is the same as that of the first embodiment, description thereof is omitted. In addition, the configuration of the
図10は、本発明の第2の実施形態のネットワークスイッチ203の内部構成の一例を説明するブロック図である。
FIG. 10 is a block diagram illustrating an example of the internal configuration of the
ネットワークスイッチ203は、CPU1100、アドレス用メモリ1101、パケット用メモリ1102、スイッチチップ1103、LAN(LOCAL AREA NETWORK)ポート1104及びメモリ1120を備える。
The
CPU1100は、メモリ1120に格納されたプログラムを実行する。
アドレス用メモリ1101は、ネットワークアドレスに関する情報を格納する。具体的には、MAC(Media Access Control)アドレステーブル(図示省略)及びルーティングテーブル(図示省略)等が格納される。
The
パケット用メモリ1102は、ネットワークスイッチが受信したデータパケットを一時的に格納するメモリである。
The
スイッチチップ1103は、各種ネットワークの処理を実行する。具体的には、スイッチチップ1103は、LANポート1104にて受信したデータパケットを一旦パケット用メモリ1102への格納する処理、アドレス用メモリ1101から宛先アドレスのLANポート1104を検索する処理、LANポート1104へのデータパケットの引き渡し処理等を実行する。ネットワークスイッチ203自身宛の受信データを受信した場合には、CPU1100に引き渡し、受信データに従った処理が実行される。
The
メモリ1120は、CPU1100によって実行されるプログラム及び当該プログラムを実行するために必要な情報を格納する。
The
メモリ1120は、経路情報送信処理部1105、経路情報受信処理部1106、ルーティングテーブル管理部1107、AP動作保証処理部1108、AP−ネットワーク環境情報テーブル1109、疑似輻輳情報送信処理部1110及び疑似輻輳情報受信処理部1111を含む。
The
経路情報送信処理部1105は、ルーティングテーブル管理部1107によって実行された処理結果、及び他のネットワークスイッチ203へ通知する必要があるデータの送信処理を実行する。
The route information
経路情報受信処理部1106は、受信したデータパケットが自分宛であり、経路情報に関わるデータである場合に、ルーティングテーブル管理部1107に出力する。
The route information
ルーティングテーブル管理部1107は、経路情報に従って、受信したデータパケットの転送処理を実行する。
The routing
AP動作保証処理部1108は、サーバシステム204から受信したデータパケットがAP動作情報を含むデータである場合、当該データパケットに含まれるAP動作情報をAP−ネットワーク環境情報テーブル1109に格納し、受信するデータパケットの受信間隔の監視等の疑似輻輳処理を実行する。
When the data packet received from the
疑似輻輳情報受信処理部1111は、疑似輻輳に関する情報をサーバシステム204から受信する。さらに、疑似輻輳に関する情報を他のネットワークスイッチ203等から受信する。
The pseudo congestion information
疑似輻輳情報送信処理部1110は、サーバシステム204から受信した疑似輻輳に関する情報を他のネットワークスイッチ203等に送信する。
The pseudo congestion information transmission processing unit 1110 transmits information related to pseudo congestion received from the
なお、ネットワークスイッチ203は、CPU1100及びメモリ1120の代わりに、CPU、ROM及びRAM等を備えるワンチップ・マイコンを備えてもよい。
The
図11は、本発明の第2の実施形態のネットワークシステムにおけるサーバシステム204及びネットワークスイッチ203が実行する処理の流れを説明するシーケンス図である。
FIG. 11 is a sequence diagram illustrating the flow of processing executed by the
仮想計算機301−1にインストールされたAP321−1の起動後の処理(ステップ400、ステップ401)、物理NIC312が変更される処理(ステップ405)は、図7と同一であるため説明を省略する。
The processes after starting the AP 321-1 installed in the virtual machine 301-1 (
物理NIC312が変更されたことを検知した仮想計算機モニタ302は、AP321−1がインストールされた時点の物理NIC312の情報を構成履歴管理テーブル310から取得する(1200)。具体的には、構成履歴管理テーブル310のNIC904から、AP321−1がインストールされた時点の物理NIC312の帯域情報を取得する。
The virtual machine monitor 302 that has detected that the
仮想計算機モニタ302は、仮想NIC327−1に、取得された物理NIC312の帯域情報を送信する(1201)。さらに、仮想NIC327−1を介してネットワークスイッチ203へ取得された物理NIC312の帯域情報が送信される(1202)。
The virtual machine monitor 302 transmits the acquired bandwidth information of the
仮想計算機モニタ302は、AP321−1の受信処理間隔をAP情報管理テーブル308から取得し、AP321−1の受信可能な帯域であるAP受信可能帯域を算出する(1203)。AP受信可能帯域は、例えば、AP321の受信処理間隔と受信データサイズとを乗算することによって算出される。
The
算出されたAP受信可能帯域、取得されたAP321−1の受信処理間隔、及び仮想NIC327−1に割り当てられたネットワークアドレス等を含むAP動作情報を仮想NIC327−1に送信する(1204)。さらに、仮想NIC327−1を介してネットワークスイッチ203にAP動作情報が送信される(1205)。
AP operation information including the calculated AP receivable bandwidth, the acquired reception processing interval of the AP 321-1, the network address assigned to the virtual NIC 327-1, and the like is transmitted to the virtual NIC 327-1 (1204). Further, AP operation information is transmitted to the
なお、仮想計算機モニタ302からネットワークスイッチ203に送信される物理NICの帯域情報及びAP動作情報は、同じデータパケットに含め、一度に送信してもよい。
The bandwidth information and AP operation information of the physical NIC transmitted from the virtual machine monitor 302 to the
AP動作情報を受信したネットワークスイッチ203は、受信したAP動作情報に含まれる受信処理間隔、AP受信可能帯域及びネットワークアドレスを取得する(1206)。
The
ネットワークスイッチ203は、取得されたネットワークアドレス(データ送信元1220)向けのデータパケットの受信間隔の計測を実行する(1207)。
The
ネットワークスイッチ203は、計測結果に基づいて、疑似輻輳処理が必要であるか否かを判定する(1208)。なお、当該判定は、図7の406と同一の方法を用いる方法が考えられる。
The
疑似輻輳処理が必要であると判定された場合、ネットワークスイッチ203は、取得されたネットワークアドレス向けのデータパケットの送信を一旦中断させるため、PAUSEコマンドをデータ送信元1220へ送信する(1209)。
If it is determined that pseudo congestion processing is necessary, the
図12は、本発明の第2の実施形態の仮想計算機モニタ302が実行する性能差を解消するための処理を説明するフローチャートである。 FIG. 12 is a flowchart illustrating processing for eliminating the performance difference executed by the virtual machine monitor 302 according to the second embodiment of this invention.
なお、仮想計算機モニタ302が実行する処理のうち、ステップ500〜ステップ513の処理は同一であるため説明を省略する。
Of the processes executed by the
仮想計算機モニタ302は、構成履歴管理テーブル310から変更後の物理NIC312の性能情報(例えば、処理速度やプロトコル情報等)を取得する(ステップ514)。
The
仮想計算機モニタ302は、AP情報管理テーブル308及び構成履歴管理テーブル310から、AP321がインストールされた時点のサーバシステム204のハードウェアの構成情報を取得する(ステップ515)。具体的には、AP321−1がインストールされた時点の物理NICの帯域情報が取得される。
The
仮想計算機モニタ302は、取得された物理NIC312の帯域情報をネットワークスイッチ203へ送信する(ステップ1300)。なお、AP321がインストールされた時点のサーバシステム204における物理NIC312の情報として、仮想NIC327の帯域が送信されてもよい。
The virtual machine monitor 302 transmits the acquired bandwidth information of the
仮想計算機モニタ302は、AP情報管理テーブル308からAP321−1の受信処理間隔及び受信バッファサイズ等を取得する(ステップ1301)。
The
仮想計算機モニタ302は、取得されたAP321−1の受信処理間隔に基づいて、AP受信可能帯域を算出する(ステップ1302)。
The
仮想計算機モニタ302は、ネットワークスイッチ203に、算出されたAP受信可能帯域、取得されたAP321−1の受信処理間隔、及び仮想NIC327−1に割り当てられたネットワークアドレス等を含むAP動作情報を送信する(ステップ1303)。
The virtual machine monitor 302 transmits AP operation information including the calculated AP receivable bandwidth, the acquired reception processing interval of the AP 321-1 and the network address assigned to the virtual NIC 327-1 to the
その後、ステップ506からステップ508の処理を実行せずに、AP321−1が終了されるまで、ステップ505のAP動作情報のロギング処理を実行する。
Thereafter, the AP operation information logging process of
図13は、本発明の第2の実施形態のネットワークスイッチ203が実行する処理を説明するフローチャートである。
FIG. 13 is a flowchart illustrating processing executed by the
ネットワークスイッチ203は、LANポート1104を介してデータパケットを受信したか否かを判定する(ステップ1400)。
The
データパケットを受信していないと判定された場合、ネットワークスイッチ203は、ステップ1400に戻り、データパケットを受信するまで待ち続ける。
If it is determined that the data packet has not been received, the
データパケットを受信したと判定された場合、ネットワークスイッチ203は、受信したデータパケットをパケット用メモリ1102に格納し、受信したデータパケットが自分(ネットワークスイッチ203)宛であるか否かを判定する(ステップ1401)。
When it is determined that the data packet has been received, the
受信したデータパケットが自分宛でないと判定された場合、ネットワークスイッチ203は、スイッチング処理を実行し(ステップ1404)、ステップ1400に戻る。なお、スイッチング処理の詳細は、図14を用いて後述する。
If it is determined that the received data packet is not addressed to itself, the
受信したデータパケットが自分宛であると判定された場合、ネットワークスイッチ203は、受信したデータパケットが経路情報に関するデータであるか否かを判定する(ステップ1402)。
When it is determined that the received data packet is addressed to itself, the
受信したデータパケットが経路情報に関するデータであると判定された場合、ネットワークスイッチ203は、ルーティング情報処理を実行する(ステップ1403)。当該処理は、ルーティングテーブル管理部1107によって実行される。
If it is determined that the received data packet is data related to the route information, the
受信したデータパケットが経路情報に関するデータではないと判定された場合、ネットワークスイッチ203は、受信したデータパケットがAP動作情報であるか否かを判定する(ステップ1405)。
When it is determined that the received data packet is not data related to route information, the
受信したデータパケットがAP動作情報でないと判定された場合、ネットワークスイッチ203は、ステップ1400に戻る。
If it is determined that the received data packet is not AP operation information, the
受信したデータパケットがAP動作情報であると判定された場合、ネットワークスイッチ203は、受信したデータパケットから、AP受信可能帯域、AP321−1における変更前の物理NIC312の帯域情報、AP321−1の受信処理間隔等を取得する(ステップ1406)。
When it is determined that the received data packet is AP operation information, the
ネットワークスイッチ203は、AP動作情報から取得された情報に基づいて、データパケット送信元である仮想計算機301−1へのデータパケットの監視処理を開始する(ステップ1407)。
Based on the information acquired from the AP operation information, the
図14は、本発明の第2の実施形態のネットワークスイッチ203によって実行されるスイッチング処理を説明するフローチャートである。
FIG. 14 is a flowchart illustrating the switching process executed by the
ネットワークスイッチ203のスイッチチップ1103は、受信したデータパケットに含まれる通信先アドレス情報を取得し、アドレス用メモリ1101に格納されるルーティングテーブル(図示省略)を検索する(ステップ1500)。
The
ネットワークスイッチ203は、前述の検索結果に基づいて、受信したデータパケットが監視対象の仮想計算機301−1宛に送信されるデータパケットであるか否かの判定処理を実行する(ステップ1501)。
The
ネットワークスイッチ203は、判定処理の結果が受信したデータパケットが監視対象の仮想計算機301−1宛に送信されるデータパケットであるか否かを判定する(ステップ1502)。
The
受信したデータパケットが監視対象の仮想計算機301−1宛に送信されるデータパケットでないと判定された場合、ネットワークスイッチ203は、ステップ1502に戻る。
If it is determined that the received data packet is not a data packet transmitted to the monitored virtual machine 301-1, the
受信したデータパケットが監視対象の仮想計算機301−1宛に送信されるデータパケットであると判定された場合、ネットワークスイッチ203は、現在の時刻を取得し、受信したデータパケットにタイムスタンプを付与し、また、受信データパケット数をカウントアップする(ステップ1503)。
When it is determined that the received data packet is a data packet transmitted to the virtual machine 301-1 to be monitored, the
ネットワークスイッチ203は、データパケットを受け取った間隔である受信間隔を算出し、また、受信したデータパケットの仮想計算機301−1宛てのデータパケット数を確認する(ステップ1504)。
The
具体的には、ネットワークスイッチ203は、前回データパケットを受信した時刻とステップ1503において取得された時刻に基づいて受信間隔を算出する。また、データパケット数は、データパケットを送信先に出力したときにカウントダウンされ、パケット用メモリ1102にバッファリングされるデータパケット数が送信先毎に管理される。
Specifically, the
ネットワークスイッチ203は、算出されたデータパケット受信間隔及びデータパケット数に基づいて、AP321−1が受信処理可能な範囲であるか否かを判定する(ステップ1505)。
Based on the calculated data packet reception interval and the number of data packets, the
例えば、変更前の物理NIC312(又は仮想NIC327−1)の帯域が100Mbpsであり、受信処理間隔が100msであり、変更後の物理NIC312の帯域が1Gbpsである場合、ネットワークスイッチ203が受信するデータパケットの受信間隔は10msと算出される。このとき、データパケット数が10データパケットである場合、仮想計算機301−1の仮想NIC327−1の受信バッファ325−1にオーバーフローが起こる可能性があるため、AP321−1が受信処理可能な範囲でないと判定される。つまり、疑似輻輳を発生させる必要があると判定される。
For example, when the bandwidth of the physical NIC 312 (or virtual NIC 327-1) before the change is 100 Mbps, the reception processing interval is 100 ms, and the bandwidth of the
AP321−1が受信処理可能な範囲であると判定された場合、ネットワークスイッチ203は、処理を終了する。
When it is determined that the AP 321-1 is within the reception processable range, the
AP321−1が受信処理可能な範囲でないと判定された場合、ネットワークスイッチ203は、AP321−1宛にデータパケットを送信する通信相手に対して疑似輻輳発生を通知し(ステップ1506)、処理を終了する。
When it is determined that the AP 321-1 is not within the reception processable range, the
具体的には、ネットワークスイッチ203は、AP321−1宛にデータパケットを送信する通信相手にPAUSEコマンドを送信する。
Specifically, the
これによって、AP321−1宛にデータパケットを送信する通信相手からのデータパケットの送信を一時停止させることができる。 Thereby, the transmission of the data packet from the communication partner that transmits the data packet to the AP 321-1 can be temporarily stopped.
図15は、ネットワークスイッチ203が管理するAP−ネットワーク環境情報テーブル1109のフォーマットの一例を示す説明図である。
FIG. 15 is an explanatory diagram showing an example of the format of the AP-network environment information table 1109 managed by the
AP−ネットワーク環境情報テーブル1109は、ポート1601、MACアドレス1602、IPアドレス1603、速度1604、AP受信間隔1605、AP受信データ数1606、受信時刻1607及び受信間隔1608を含む。
The AP-network environment information table 1109 includes a
ポート1601は、LANポート1104のポート番号である。MACアドレス1602は、監視対象の仮想計算機301に割り当てられるMACアドレスである。なお、当該MACアドレスは仮想計算機モニタ302によって割り当てられる。
A
IPアドレス1603は、監視対象の仮想計算機301に割り当てられているIPアドレスである。なお、当該IPアドレスは、仮想計算機モニタ302によって割り当てられる。
An
速度1604は、AP321が使用する物理NIC312(又は仮想NIC327)の帯域である。AP受信間隔1605は、AP321の受信処理可能間隔である。AP受信データ数1606は、ネットワークスイッチ203にバッファリングされる各仮想計算機301宛のデータパケット数である。
The
受信時刻1607は、ネットワークスイッチ203が各仮想計算機301宛のデータパケットを受信した時刻である。受信間隔1608は各仮想計算機301宛のデータパケットの受信間隔である。
A
なお、第2の実施形態では、仮想計算機モニタ302によってAP受信可能帯域が算出されたが、ネットワークスイッチ203がAP動作情報に含まれるAP321−1の受信処理間隔に基づいて、AP受信可能帯域を算出してもよい。これによって、仮想計算機モニタ302の処理負担を低減することができる。
In the second embodiment, the AP receivable bandwidth is calculated by the
第2の実施形態によれば、ネットワークスイッチ203が、物理NIC312が変更された場合に、仮想計算機モニタ302から送信される情報に基づいて、変更前の物理NIC312と変更後の物理NIC312との性能差を考慮して疑似輻輳を発生させることによって、受信データのフロー制御を行うことができる。これによって、ネットワークの高速化によって発生するアプリケーションの異常稼働や異常終了を防止することができる。
According to the second embodiment, when the
100 ソフトウェア
101 仮想計算機モニタ
102 仮想計算機
106 アプリケーション動作情報
107、108 ハードウェア
109 ハードウェア性能差分情報
110 性能差解消処理部
111 疑似輻輳情報受信処理部
200 DC
201 外部ネットワーク
202 ルータ
203 ネットワークスイッチ
204 サーバシステム
205 ストレージ装置
206 ネットワーク
300 物理計算機
301 仮想計算機
302 仮想計算機モニタ
303 送信モニタ
304 受信モニタ
305 性能差解消処理部
306 疑似輻輳処理部
307 AP情報管理部
308 AP情報管理テーブル
309 構成履歴管理部
310 構成履歴管理テーブル
312 物理NIC
320 内部バス
321 AP
322 ゲストOS
323 仮想ドライバ
324 送信バッファ
325 受信バッファ
327 仮想NIC
328 ルーティング部
329 処理部
330 CPU
331 メモリ
332 不揮発性記憶媒体
1100 CPU
1101 アドレス用メモリ
1102 パケット用メモリ
1103 スイッチチップ
1104 LANポート
1105 経路情報送信処理部
1106 経路情報受信処理部
1107 ルーティングテーブル管理部
1108 AP動作保証処理部
1109 AP−ネットワーク環境情報テーブル
1110 疑似輻輳情報送信処理部
1111 疑似輻輳情報受信処理部
1120 メモリ
201
320
322 Guest OS
323
328
331
1101
Claims (15)
前記仮想マシンモニタは、
前記各仮想計算期毎に割り当てられた前記物理資源に関する情報を管理する物理資源情報管理部と、
前記各仮想計算機毎に、前記オペレーティングシステム上で実行される前記アプリケーションの稼働状態に関する情報を管理するアプリケーション情報管理部と、
前記サーバの物理資源の性能情報を管理し、前記サーバの第1の物理資源が性能の高い第2の物理資源に変更された場合に、前記第1の物理資源の性能と前記第2の物理資源の性能との差を表す性能差分情報を取得して、前記性能差分情報に基づいて、前記アプリケーションが正常に動作するように前記第2の物理資源の性能を調整するための制御情報を生成する性能差分情報管理部と、を備えることを特徴とするサーバ。 A virtual machine monitor that includes a processor and a memory connected to the processor, and that is executed by the processor and manages a plurality of virtual machines generated by virtually dividing a physical resource of a server; and each of the virtual machines A server that provides a virtual environment with an operating system running on and running an application,
The virtual machine monitor is
A physical resource information management unit for managing information on the physical resource allocated for each virtual calculation period;
For each virtual machine, an application information management unit that manages information related to the operating state of the application executed on the operating system;
When the performance information of the physical resource of the server is managed and the first physical resource of the server is changed to a second physical resource with high performance, the performance of the first physical resource and the second physical resource Obtaining performance difference information representing a difference from the performance of the resource, and generating control information for adjusting the performance of the second physical resource so that the application operates normally based on the performance difference information And a performance difference information management unit.
前記仮想ネットワークインタフェースは、前記アプリケーションが受信するデータを一時的に蓄積する受信バッファと、前記アプリケーションが送信するデータを一時的に蓄積する送信バッファとを備え、
前記性能差分情報管理部は、
前記サーバが備える第1のネットワークインタフェースの性能情報を保持し、
前記第1のネットワークインタフェースから性能の高い第2のネットワークインタフェースに変更された場合に、前記第2のネットワークインタフェースの性能情報を取得し、
前記性能差分情報管理部が保持する前記第1のネットワークインタフェースの性能情報と、前記取得された第2のネットワークインタフェースの性能情報とに基づいて、前記第1のネットワークインタフェースの性能と前記第2のネットワークインタフェースの性能との差を算出し、
前記算出された前記第1のネットワークインタフェースの性能と前記第2のネットワークインタフェースの性能との差に基づいて、前記受信バッファが蓄積可能な容量を越えないようにするための制御情報を生成することを特徴とする請求項2に記載のサーバ。 The virtual machine monitor virtually divides the network interface and assigns a virtual network interface to each virtual machine,
The virtual network interface includes a reception buffer that temporarily accumulates data received by the application, and a transmission buffer that temporarily accumulates data transmitted by the application,
The performance difference information management unit
Holding performance information of a first network interface provided in the server;
When the first network interface is changed to a second network interface with high performance, the performance information of the second network interface is acquired;
Based on the performance information of the first network interface held by the performance difference information management unit and the acquired performance information of the second network interface, the performance of the first network interface and the second Calculate the difference with the performance of the network interface,
Generating control information for preventing the reception buffer from exceeding a capacity that can be stored based on the difference between the calculated performance of the first network interface and the performance of the second network interface; The server according to claim 2.
前記仮想マシンモニタは、さらに、前記輻輳通知設定情報に基づいて、前記仮想ネットワークインタフェースに輻輳状態が発生したことを通知する輻輳処理部を備えることを特徴とする請求項3に記載のサーバ。 The control information generated by the performance difference information management unit is congestion notification setting information for notifying that a congestion state has occurred in a virtual network interface allocated to a virtual machine on which the application is executed,
The server according to claim 3, wherein the virtual machine monitor further includes a congestion processing unit that notifies that a congestion state has occurred in the virtual network interface based on the congestion notification setting information.
前記仮想マシンモニタは、前記アプリケーションにおけるデータ受信状況を測定し、
前記アプリケーション情報管理部は、前記アプリケーションにおけるデータ受信状況測定結果に基づいて取得される、前記受信バッファのバッファサイズと、前記アプリケーションがデータを受信するアプリケーション受信間隔とを管理し、
前記性能差分情報管理部は、
前記性能差分情報、前記受信バッファのバッファサイズ、及び前記アプリケーション受信間隔に基づいて、前記輻輳通知設定情報を生成し、
前記輻輳処理部は、
周期的に前記仮想ネットワークインタフェースに、前記輻輳状態が発生したことを通知し、
前記仮想ネットワークインタフェースは、前記ネットワークスイッチに、前記アプリケーション宛のデータの送信を停止させる命令を送信することを特徴とする請求項4に記載のサーバ。 The server is connected to a network including a plurality of network switches;
The virtual machine monitor measures data reception status in the application,
The application information management unit manages the buffer size of the reception buffer acquired based on the data reception status measurement result in the application, and the application reception interval at which the application receives data,
The performance difference information management unit
Based on the performance difference information, the buffer size of the reception buffer, and the application reception interval, generate the congestion notification setting information,
The congestion processing unit
Periodically notifies the virtual network interface that the congestion state has occurred,
The server according to claim 4, wherein the virtual network interface transmits a command for stopping transmission of data addressed to the application to the network switch.
前記仮想マシンモニタは、前記アプリケーションにおけるデータ受信状況を測定し、
前記アプリケーション情報管理部は、前記アプリケーションにおけるデータ受信状況測定結果に基づいて取得される、前記受信バッファのバッファサイズと、前記アプリケーションがデータを受信するアプリケーション受信間隔とを管理し、
前記性能差分情報管理部は、
前記性能差分情報、前記受信バッファのバッファサイズ、及び前記アプリケーション受信間隔に基づいて、前記受信バッファのバッファサイズの上限値を示す閾値情報を生成し、
前記輻輳処理部は、
前記受信バッファのバッファサイズが前記生成された閾値情報に示される上限値以上であるか否かを判定し、
前記受信バッファのバッファサイズが前記生成された閾値情報に示される上限値以上である場合に、前記仮想ネットワークインタフェースに、前記輻輳状態が発生したことを通知し、
前記仮想ネットワークインタフェースは、前記ネットワークスイッチに、前記アプリケーション宛のデータの送信を停止させる命令を送信することを特徴とする請求項4に記載のサーバ。 The server is connected to a network including a plurality of network switches;
The virtual machine monitor measures data reception status in the application,
The application information management unit manages the buffer size of the reception buffer acquired based on the data reception status measurement result in the application, and the application reception interval at which the application receives data,
The performance difference information management unit
Based on the performance difference information, the buffer size of the reception buffer, and the application reception interval, generate threshold information indicating an upper limit value of the buffer size of the reception buffer,
The congestion processing unit
Determining whether the buffer size of the reception buffer is equal to or greater than the upper limit value indicated in the generated threshold information;
When the buffer size of the reception buffer is equal to or larger than the upper limit value indicated in the generated threshold information, the virtual network interface is notified that the congestion state has occurred,
The server according to claim 4, wherein the virtual network interface transmits a command for stopping transmission of data addressed to the application to the network switch.
前記サーバは、複数のネットワークスイッチを含むネットワークと接続され、
前記仮想マシンモニタは、前記アプリケーションにおけるデータ受信状況を測定し、
前記アプリケーション情報管理部は、前記アプリケーションにおけるデータ受信状況測定結果に基づいて取得される、前記受信バッファのバッファサイズと、前記アプリケーションがデータを受信するアプリケーション受信間隔とを管理し、
前記性能差分情報管理部は、
前記性能差分情報、前記受信バッファのバッファサイズ、及び前記アプリケーション受信間隔に基づいて、前記輻輳通知設定情報を生成し、
前記生成された輻輳通知設定情報を前記ネットワークスイッチに送信することによって、前記アプリケーション宛のデータの送信を停止させることを特徴とする請求項3に記載のサーバ。 The control information generated by the performance difference information management unit is congestion notification setting information for notifying that a congestion state has occurred in a virtual network interface allocated to a virtual machine on which the application is executed,
The server is connected to a network including a plurality of network switches;
The virtual machine monitor measures data reception status in the application,
The application information management unit manages the buffer size of the reception buffer acquired based on the data reception status measurement result in the application, and the application reception interval at which the application receives data,
The performance difference information management unit
Based on the performance difference information, the buffer size of the reception buffer, and the application reception interval, generate the congestion notification setting information,
The server according to claim 3, wherein transmission of data addressed to the application is stopped by transmitting the generated congestion notification setting information to the network switch.
前記性能差分情報管理部は、
前記第2のネットワークインタフェースの処理速度を前記第1のネットワークインタフェースの処理速度で除算することによって、前記性能差分情報を算出することを特徴とする請求項3に記載のサーバ。 The performance information of the first network interface and the performance information of the second network interface are a processing speed of the first network interface and a processing speed of the second network interface,
The performance difference information management unit
The server according to claim 3, wherein the performance difference information is calculated by dividing a processing speed of the second network interface by a processing speed of the first network interface.
前記計算機は、プロセッサと、前記プロセッサに接続されるメモリとを備え、前記プロセッサによって実行され、前記計算機の物理資源を仮想的に分割して生成される複数の仮想計算機を管理する仮想マシンモニタと、前記各仮想計算機上で実行され、アプリケーションを実行するオペレーティングシステムと、を備え、
前記仮想マシンモニタは、
前記各仮想計算期毎に割り当てられた前記物理資源に関する情報である物理資源情報を管理し、
前記各仮想計算機毎に、前記オペレーティングシステム上で実行される前記アプリケーションの稼働状態に関する情報であるアプリケーション稼働情報を管理し、
前記計算機の第1の物理資源が性能の高い第2の物理資源に変更された場合に、前記第1の物理資源の性能と前記第2の物理資源の性能との差を表す性能差分情報を取得し、
前記物理資源情報、前記アプリケーション稼働情報、及び前記性能差分情報を、前記ネットワークスイッチに送信し、
前記ネットワークスイッチは、
受信した前記物理資源情報、前記アプリケーション稼働情報、及び前記性能差分情報に基づいて、前記アプリケーションが正常に動作するように前記第2の物理資源の性能を調整するための制御情報を生成することを特徴とする計算機システム。 A computer system in which a plurality of computers are connected via a network including a plurality of network switches,
The computer includes a processor and a memory connected to the processor, and is executed by the processor, and a virtual machine monitor that manages a plurality of virtual computers generated by virtually dividing physical resources of the computer An operating system that executes on each virtual machine and executes an application,
The virtual machine monitor is
Managing physical resource information that is information related to the physical resource allocated for each virtual computation period;
For each virtual machine, manage application operation information that is information related to the operation state of the application executed on the operating system,
When the first physical resource of the computer is changed to a high-performance second physical resource, performance difference information indicating a difference between the performance of the first physical resource and the performance of the second physical resource is displayed. Acquired,
Transmitting the physical resource information, the application operation information, and the performance difference information to the network switch;
The network switch is
Generating control information for adjusting the performance of the second physical resource so that the application operates normally based on the received physical resource information, the application operation information, and the performance difference information; A featured computer system.
前記仮想ネットワークインタフェースは、前記アプリケーションが受信するデータを一時的に蓄積する受信バッファと、前記アプリケーションが送信するデータを一時的に蓄積する送信バッファとを備え、
前記仮想マシンモニタは、
第1のネットワークインタフェースから性能の高い第2のネットワークインタフェースに変更された場合に、前記第2のネットワークインタフェースの性能情報を取得し、
性能差分情報管理部が保持する前記第1のネットワークインタフェースの性能情報と、前記取得された第2のネットワークインタフェースの性能情報とに基づいて、前記第1のネットワークインタフェースの性能と前記第2のネットワークインタフェースの性能との差を算出し、
前記算出された第1のネットワークインタフェースの性能と第2のネットワークインタフェースの性能との差を前記ネットワークスイッチに送信し、
前記ネットワークスイッチは、
前記算出された前記第1のネットワークインタフェースの性能と前記第2のネットワークインタフェースの性能との差に基づいて、前記受信バッファが蓄積可能な容量を越えないようにするための制御情報を生成することを特徴とする請求項10に記載の計算機システム。 The virtual machine monitor virtually divides the network interface and assigns a virtual network interface to each virtual machine,
The virtual network interface includes a reception buffer that temporarily accumulates data received by the application, and a transmission buffer that temporarily accumulates data transmitted by the application,
The virtual machine monitor is
When the first network interface is changed to a high-performance second network interface, the performance information of the second network interface is acquired;
Based on the performance information of the first network interface held by the performance difference information management unit and the acquired performance information of the second network interface, the performance of the first network interface and the second network Calculate the difference from the interface performance,
Transmitting the difference between the calculated performance of the first network interface and the performance of the second network interface to the network switch;
The network switch is
Generating control information for preventing the reception buffer from exceeding a capacity that can be stored based on the difference between the calculated performance of the first network interface and the performance of the second network interface; The computer system according to claim 10.
前記ネットワークスイッチは、前記輻輳通知設定情報に基づいて、前記仮想ネットワークインタフェースに輻輳状態が発生したことを通知することを特徴とする請求項11に記載の計算機システム。 The control information is congestion notification setting information for notifying a command for the network switch to stop transmission of data addressed to the application,
The computer system according to claim 11, wherein the network switch notifies that a congestion state has occurred in the virtual network interface based on the congestion notification setting information.
前記ネットワークスイッチは、
前記性能差分情報、前記受信バッファのバッファサイズ、及び前記アプリケーション受信間隔に基づいて、前記輻輳通知設定情報を生成し、
周期的に、前記輻輳状態を発生させるか否かを判定し、
前記輻輳状態を発生させると判定された場合に、前記アプリケーション宛のデータの送信を停止させる命令を当該データの送信元に送信することを特徴とする請求項11に記載の計算機システム。 The virtual machine monitor manages the buffer size of the reception buffer and the application reception interval at which the application receives data as information on the operating state of the application,
The network switch is
Based on the performance difference information, the buffer size of the reception buffer, and the application reception interval, generate the congestion notification setting information,
Periodically, determine whether to generate the congestion state,
The computer system according to claim 11, wherein when it is determined that the congestion state is generated, an instruction to stop transmission of data addressed to the application is transmitted to a transmission source of the data.
前記仮想マシンモニタは、
前記第2のネットワークインタフェースの処理速度を前記第1のネットワークインタフェースの処理速度で除算することによって、前記性能差分情報を算出することを特徴とする請求項11に記載の計算機システム。 The performance information of the first network interface and the performance information of the second network interface are a processing speed of the first network interface and a processing speed of the second network interface,
The virtual machine monitor is
12. The computer system according to claim 11, wherein the performance difference information is calculated by dividing the processing speed of the second network interface by the processing speed of the first network interface.
前記仮想マシンモニタは、前記各仮想計算期毎に割り当てられた前記物理資源に関する情報を管理し、前記各仮想計算機毎に、前記オペレーティングシステム上で実行される前記アプリケーションの稼働状態に関する情報を管理し、
前記方法は、
前記仮想マシンモニタが、
前記サーバの第1の物理資源が性能の高い第2の物理資源に変更された場合に、前記第1の物理資源の性能と前記第2の物理資源の性能との差を表す性能差分情報を取得するステップと、
前記取得された性能差分情報に基づいて、前記アプリケーションが正常に動作するように前記第2の物理資源の性能とを下げるための制御情報を生成するステップと、含むことを特徴とする仮想計算機管理方法。 A virtual machine monitor that includes a processor and a memory connected to the processor, and that is executed by the processor and manages a plurality of virtual machines generated by virtually dividing physical resources of the server; A virtual machine management method in a server comprising an operating system that is executed on a computer and executes an application,
The virtual machine monitor manages information related to the physical resource allocated for each virtual calculation period, and manages information related to the operating state of the application executed on the operating system for each virtual machine. ,
The method
The virtual machine monitor is
When the first physical resource of the server is changed to a high-performance second physical resource, performance difference information indicating a difference between the performance of the first physical resource and the performance of the second physical resource is displayed. A step to obtain,
Generating virtual machine control information for reducing the performance of the second physical resource based on the acquired performance difference information so that the application operates normally, Method.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010068111A JP2011203810A (en) | 2010-03-24 | 2010-03-24 | Server, computer system, and virtual computer management method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010068111A JP2011203810A (en) | 2010-03-24 | 2010-03-24 | Server, computer system, and virtual computer management method |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2011203810A true JP2011203810A (en) | 2011-10-13 |
Family
ID=44880429
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2010068111A Pending JP2011203810A (en) | 2010-03-24 | 2010-03-24 | Server, computer system, and virtual computer management method |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2011203810A (en) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2013126062A (en) * | 2011-12-14 | 2013-06-24 | Kddi Corp | Network traffic control device, control method and program |
EP2782294A1 (en) | 2013-03-18 | 2014-09-24 | Fujitsu Limited | Information processing apparatus and method for generating coupling information |
US8972990B2 (en) | 2012-08-29 | 2015-03-03 | International Business Machines Corporation | Providing a seamless transition for resizing virtual machines from a development environment to a production environment |
JP2016517202A (en) * | 2013-03-15 | 2016-06-09 | テレフオンアクチーボラゲット エルエム エリクソン(パブル) | Hypervisors and physical machines and their respective methods for measuring performance in hypervisors and physical machines |
US9378032B2 (en) | 2012-09-20 | 2016-06-28 | Fujitsu Limited | Information processing method, information processing apparatus, recording medium, and system |
KR20170107502A (en) * | 2015-01-28 | 2017-09-25 | 닛본 덴끼 가부시끼가이샤 | System, virtualization control device, control method and program of virtualization control device |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0728738A (en) * | 1993-07-14 | 1995-01-31 | Nec Shizuoka Ltd | Recovery time control system by software for peripheral lsi control |
JP2005535154A (en) * | 2001-12-18 | 2005-11-17 | シスコ テクノロジー インコーポレイテッド | Method and apparatus for network congestion control |
JP2006072636A (en) * | 2004-09-01 | 2006-03-16 | Hitachi Ltd | Disk array device |
JP2007174152A (en) * | 2005-12-21 | 2007-07-05 | Fujitsu Access Ltd | Network congestion control system and method thereof |
JP2008146566A (en) * | 2006-12-13 | 2008-06-26 | Hitachi Ltd | Computer, control method of virtual device and its program |
-
2010
- 2010-03-24 JP JP2010068111A patent/JP2011203810A/en active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0728738A (en) * | 1993-07-14 | 1995-01-31 | Nec Shizuoka Ltd | Recovery time control system by software for peripheral lsi control |
JP2005535154A (en) * | 2001-12-18 | 2005-11-17 | シスコ テクノロジー インコーポレイテッド | Method and apparatus for network congestion control |
JP2006072636A (en) * | 2004-09-01 | 2006-03-16 | Hitachi Ltd | Disk array device |
JP2007174152A (en) * | 2005-12-21 | 2007-07-05 | Fujitsu Access Ltd | Network congestion control system and method thereof |
JP2008146566A (en) * | 2006-12-13 | 2008-06-26 | Hitachi Ltd | Computer, control method of virtual device and its program |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2013126062A (en) * | 2011-12-14 | 2013-06-24 | Kddi Corp | Network traffic control device, control method and program |
US8972990B2 (en) | 2012-08-29 | 2015-03-03 | International Business Machines Corporation | Providing a seamless transition for resizing virtual machines from a development environment to a production environment |
US9378032B2 (en) | 2012-09-20 | 2016-06-28 | Fujitsu Limited | Information processing method, information processing apparatus, recording medium, and system |
JP2016517202A (en) * | 2013-03-15 | 2016-06-09 | テレフオンアクチーボラゲット エルエム エリクソン(パブル) | Hypervisors and physical machines and their respective methods for measuring performance in hypervisors and physical machines |
US9940151B2 (en) | 2013-03-15 | 2018-04-10 | Telefonaktiebolaget Lm Ericsson (Publ) | Hypervisor and physical machine and respective methods therein for performance measurement |
EP2782294A1 (en) | 2013-03-18 | 2014-09-24 | Fujitsu Limited | Information processing apparatus and method for generating coupling information |
US9632962B2 (en) | 2013-03-18 | 2017-04-25 | Fujitsu Limited | Information processing apparatus and method for generating coupling information |
KR20170107502A (en) * | 2015-01-28 | 2017-09-25 | 닛본 덴끼 가부시끼가이샤 | System, virtualization control device, control method and program of virtualization control device |
KR101939075B1 (en) | 2015-01-28 | 2019-04-11 | 닛본 덴끼 가부시끼가이샤 | eng |
US11093296B2 (en) | 2015-01-28 | 2021-08-17 | Nec Corporation | System, virtualization control apparatus, method for controlling a virtualization control apparatus, and program |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11550606B2 (en) | Technologies for deploying virtual machines in a virtual network function infrastructure | |
US8826274B2 (en) | Virtual machine system, networking device and monitoring method of virtual machine system | |
US20120089981A1 (en) | Method and system for power management in a virtual machine environment without disrupting network connectivity | |
US9781041B2 (en) | Systems and methods for native network interface controller (NIC) teaming load balancing | |
US8613085B2 (en) | Method and system for traffic management via virtual machine migration | |
US9374425B2 (en) | Behavior based client selection for disparate treatment | |
US20100274890A1 (en) | Methods and apparatus to get feedback information in virtual environment for server load balancing | |
US20110276982A1 (en) | Load Balancer and Load Balancing System | |
WO2017034731A1 (en) | Technologies for offloading network packet processing to a gpu | |
US10019280B2 (en) | Technologies for dynamically managing data bus bandwidth usage of virtual machines in a network device | |
WO2013163865A1 (en) | Virtual machine hot migration and deployment method, server and cluster system | |
WO2012100544A1 (en) | Method, device and cluster system for virtual machine migration based on network data flow direction | |
US9172646B2 (en) | Dynamic reconfiguration of network devices for outage prediction | |
CN109510878B (en) | Long connection session keeping method and device | |
US11144423B2 (en) | Dynamic management of monitoring tasks in a cloud environment | |
JP2011203810A (en) | Server, computer system, and virtual computer management method | |
US11734172B2 (en) | Data transmission method and apparatus using resources in a resource pool of a same NUMA node | |
WO2014086193A1 (en) | Data flow affinity for heterogenous virtual machines | |
WO2014183574A1 (en) | Computer node deployment method, processing node, controller, and system | |
Lei et al. | Parallelizing packet processing in container overlay networks | |
WO2021098425A1 (en) | Qos policy method, device, and computing device for service configuration | |
WO2018057165A1 (en) | Technologies for dynamically transitioning network traffic host buffer queues | |
CN114675972A (en) | Method and system for flexibly scheduling cloud network resources based on integral algorithm | |
Lakshmi et al. | I/O Device Virtualization in the multi-core era, a QoS perspective | |
US20220214926A1 (en) | Virtual machine monitoring device, virtual machine monitoring method, and program |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20120308 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20120309 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20130821 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20131001 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20131129 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20140401 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20140729 |