図面 (/)

技術 サーバ、計算機システム及び仮想計算機管理方法

出願人 株式会社日立製作所
発明者 谷川桂子畑崎恵介
出願日 2010年3月24日 (10年7ヶ月経過) 出願番号 2010-068111
公開日 2011年10月13日 (9年1ヶ月経過) 公開番号 2011-203810
状態 拒絶査定
技術分野 マルチプログラミング
主要キーワード アドレス用メモリ 稼働環境 スイッチチップ 受信モニタ ポート番 ハードウェア変更 ロギング処理 処理ログ
関連する未来課題
重要な関連分野

この項目の情報は公開日時点(2011年10月13日)のものです。
また、この項目は機械的に抽出しているため、正しく解析できていない場合があります

図面 (17)

課題

物理計算機上仮想計算機を管理する仮想計算機モニタにおいて、計算機システムを構成するハードウェア資源の性能差を考慮して、仮想計算機上のサービスを正常に稼働させる。

解決手段

仮想計算機を管理する仮想マシンモニタと、アプリケーションを実行するオペレーティングシステムとを備えた仮想環境を提供するサーバであって、仮想マシンモニタは、仮想計算期毎割り当てられた物理資源に関する情報を管理する物理資源情報管理部と、アプリケーションの稼働状態に関する情報を管理するアプリケーション情報管理部と、サーバの第1の物理資源が性能の高い第2の物理資源に変更された場合に、第1の物理資源の性能と第2の物理資源の性能との差を表す性能差分情報を取得して、アプリケーションが正常に動作するように第2の物理資源の性能を調整するための制御情報を生成する性能差分情報管理部と、を備えることを特徴とする。

概要

背景

近年の物理計算機マルチコアプロセッサを複数搭載するようになってきており、プロセッサ資源を有効利用するために、複数の仮想計算機を同時に稼働させるサーバ仮想化技術が注目されている。

サーバ仮想化技術を用いることによって、1台の物理計算機上に複数の仮想計算機を稼働できるため、1台の物理計算機に1つのOSを実行させる従来システムと比べ、コスト削減を望める。

PCのようなオープン系システムは、性能向上の進度が速く、次々と後継機種が登場し、製品保証期間は約5年程度と短い。

これに対し、基幹系(企業の会計生産管理、人事、給与等の業務アプリケーション、及び銀行鉄道社会インフラに関わるサービス等)のようなサービスは、基本的なサービスであるためにサービス内容が変わらないものが多い。また、基幹系のサービスでは稼働実績のあるサービスを更改することによる障害を起こしてはならない。前述したような理由から、サービスをできるかぎり長期に稼働させたいというニーズがある。

仮想化技術は前述したニーズに答えるものであり、物理計算機に新しいハードウェアを導入した場合であっても、現在稼働しているサービスの環境をそのまま移行することが可能であり、また、オープン系システムに対して費用対効果が認められるサービスへの適用が始まっている。

長期に運用させたいサービスを仮想計算機上で動作させる場合、サービスの性能を保持することが重要である。ハードウェアは数年で変更する必要があり、変更の度に性能差が広がる。従って、サービスが構築された時の環境を維持するためには、仮想計算機を制御する仮想計算機モニタがその性能差を解消し、サービスが実行される環境にハードウェアの変更による影響を与えないことが必要である。

ハードウェア資源の一つとして、ネットワークがある。ネットワークに関しては、高速化と、LAN(Local Area Network)系ネットワーク及びストレージ系ネットワークの統合化と、が進んでいる。

イーサネット登録商標、以降同じ)は、10Gbps以上の性能を持つようになっており、特にデータセンタ(以降、DCと記載する)は大量のデータをリアルタイムに扱うサービスが多いため、DC向けの規格IEEE 802.1 WGにて策定されている。

ネットワーク側では大量のデータを高速に扱えるようになっているが、当該サービスの動作環境(仮想計算機)より先がサービスの受信能力以上のシステム構成となることによって、サービス側では仮想計算機側の受信側処理を越える可能性がある。すなわち、受信バッファオーバーフローが発生し、これによってデータが損失、サービスの異常終了や異常動作の原因となる。

この問題を解消する方法としては、ある物理計算機上に生成される複数の仮想計算機間を接続する仮想ネットワークシステムにおいて、送信先の仮想計算機の受信バッファが溢れることを防止する方法がある(例えば、特許文献1参照)。

具体的には、仮想計算機モニタは仮想計算機の送受信状況を管理する仮想ネットワーク制御部を備え、各仮想計算機仮想ネットワークインタフェースカード(以下、仮想NICと記載する)を備える。仮想ネットワーク制御部は、各仮想NICの受信バッファサイズ監視し、ある仮想NICが送信する送信データサイズと受信バッファサイズとから、送信可否を判定する。受信バッファ残量受信データサイズ以下である場合、送信を停止させる。

概要

物理計算機上の仮想計算機を管理する仮想計算機モニタにおいて、計算機システムを構成するハードウェア資源の性能差を考慮して、仮想計算機上のサービスを正常に稼働させる。仮想計算機を管理する仮想マシンモニタと、アプリケーションを実行するオペレーティングシステムとを備えた仮想環境を提供するサーバであって、仮想マシンモニタは、仮想計算期毎割り当てられた物理資源に関する情報を管理する物理資源情報管理部と、アプリケーションの稼働状態に関する情報を管理するアプリケーション情報管理部と、サーバの第1の物理資源が性能の高い第2の物理資源に変更された場合に、第1の物理資源の性能と第2の物理資源の性能との差を表す性能差分情報を取得して、アプリケーションが正常に動作するように第2の物理資源の性能を調整するための制御情報を生成する性能差分情報管理部と、を備えることを特徴とする。

目的

すなわち、プロセッサと、前記プロセッサに接続されるメモリとを備え、前記プロセッサによって実行され、サーバの物理資源を仮想的に分割して生成される複数の仮想計算機を管理する仮想マシンモニタと、前記各仮想計算機上で実行され、アプリケーションを実行するオペレーティングシステムと、を備えた仮想環境を提供する

効果

実績

技術文献被引用数
1件
牽制数
1件

この技術が所属する分野

(分野番号表示ON)※整理標準化データをもとに当社作成

ライセンス契約や譲渡などの可能性がある特許掲載中! 開放特許随時追加・更新中 詳しくはこちら

請求項1

プロセッサと、前記プロセッサに接続されるメモリとを備え、前記プロセッサによって実行され、サーバ物理資源仮想的に分割して生成される複数の仮想計算機を管理する仮想マシンモニタと、前記各仮想計算機上で実行され、アプリケーションを実行するオペレーティングシステムと、を備えた仮想環境を提供するサーバであって、前記仮想マシンモニタは、前記各仮想計算期毎割り当てられた前記物理資源に関する情報を管理する物理資源情報管理部と、前記各仮想計算機毎に、前記オペレーティングシステム上で実行される前記アプリケーションの稼働状態に関する情報を管理するアプリケーション情報管理部と、前記サーバの物理資源の性能情報を管理し、前記サーバの第1の物理資源が性能の高い第2の物理資源に変更された場合に、前記第1の物理資源の性能と前記第2の物理資源の性能との差を表す性能差分情報を取得して、前記性能差分情報に基づいて、前記アプリケーションが正常に動作するように前記第2の物理資源の性能を調整するための制御情報を生成する性能差分情報管理部と、を備えることを特徴とするサーバ。

請求項2

前記物理資源は、前記サーバが他の装置と通信するためのネットワークインタフェースであることを特徴とする請求項1に記載のサーバ。

請求項3

前記仮想マシンモニタは、前記ネットワークインタフェースを仮想的に分割して、前記各仮想計算機に仮想ネットワークインタフェースを割り当て、前記仮想ネットワークインタフェースは、前記アプリケーションが受信するデータを一時的に蓄積する受信バッファと、前記アプリケーションが送信するデータを一時的に蓄積する送信バッファとを備え、前記性能差分情報管理部は、前記サーバが備える第1のネットワークインタフェースの性能情報を保持し、前記第1のネットワークインタフェースから性能の高い第2のネットワークインタフェースに変更された場合に、前記第2のネットワークインタフェースの性能情報を取得し、前記性能差分情報管理部が保持する前記第1のネットワークインタフェースの性能情報と、前記取得された第2のネットワークインタフェースの性能情報とに基づいて、前記第1のネットワークインタフェースの性能と前記第2のネットワークインタフェースの性能との差を算出し、前記算出された前記第1のネットワークインタフェースの性能と前記第2のネットワークインタフェースの性能との差に基づいて、前記受信バッファが蓄積可能な容量を越えないようにするための制御情報を生成することを特徴とする請求項2に記載のサーバ。

請求項4

前記性能差分情報管理部によって生成された制御情報は、前記アプリケーションが実行される仮想計算機に割り当てられた仮想ネットワークインタフェースに輻輳状態が発生したことを通知するための輻輳通知設定情報であって、前記仮想マシンモニタは、さらに、前記輻輳通知設定情報に基づいて、前記仮想ネットワークインタフェースに輻輳状態が発生したことを通知する輻輳処理部を備えることを特徴とする請求項3に記載のサーバ。

請求項5

前記サーバは、複数のネットワークスイッチを含むネットワークと接続され、前記仮想マシンモニタは、前記アプリケーションにおけるデータ受信状況を測定し、前記アプリケーション情報管理部は、前記アプリケーションにおけるデータ受信状況測定結果に基づいて取得される、前記受信バッファのバッファサイズと、前記アプリケーションがデータを受信するアプリケーション受信間隔とを管理し、前記性能差分情報管理部は、前記性能差分情報、前記受信バッファのバッファサイズ、及び前記アプリケーション受信間隔に基づいて、前記輻輳通知設定情報を生成し、前記輻輳処理部は、周期的に前記仮想ネットワークインタフェースに、前記輻輳状態が発生したことを通知し、前記仮想ネットワークインタフェースは、前記ネットワークスイッチに、前記アプリケーション宛のデータの送信を停止させる命令を送信することを特徴とする請求項4に記載のサーバ。

請求項6

前記サーバは、複数のネットワークスイッチを含むネットワークと接続され、前記仮想マシンモニタは、前記アプリケーションにおけるデータ受信状況を測定し、前記アプリケーション情報管理部は、前記アプリケーションにおけるデータ受信状況測定結果に基づいて取得される、前記受信バッファのバッファサイズと、前記アプリケーションがデータを受信するアプリケーション受信間隔とを管理し、前記性能差分情報管理部は、前記性能差分情報、前記受信バッファのバッファサイズ、及び前記アプリケーション受信間隔に基づいて、前記受信バッファのバッファサイズの上限値を示す閾値情報を生成し、前記輻輳処理部は、前記受信バッファのバッファサイズが前記生成された閾値情報に示される上限値以上であるか否かを判定し、前記受信バッファのバッファサイズが前記生成された閾値情報に示される上限値以上である場合に、前記仮想ネットワークインタフェースに、前記輻輳状態が発生したことを通知し、前記仮想ネットワークインタフェースは、前記ネットワークスイッチに、前記アプリケーション宛のデータの送信を停止させる命令を送信することを特徴とする請求項4に記載のサーバ。

請求項7

前記性能差分情報管理部によって生成された制御情報は、前記アプリケーションが実行される仮想計算機に割り当てられた仮想ネットワークインタフェースに輻輳状態が発生したことを通知するための輻輳通知設定情報であって、前記サーバは、複数のネットワークスイッチを含むネットワークと接続され、前記仮想マシンモニタは、前記アプリケーションにおけるデータ受信状況を測定し、前記アプリケーション情報管理部は、前記アプリケーションにおけるデータ受信状況測定結果に基づいて取得される、前記受信バッファのバッファサイズと、前記アプリケーションがデータを受信するアプリケーション受信間隔とを管理し、前記性能差分情報管理部は、前記性能差分情報、前記受信バッファのバッファサイズ、及び前記アプリケーション受信間隔に基づいて、前記輻輳通知設定情報を生成し、前記生成された輻輳通知設定情報を前記ネットワークスイッチに送信することによって、前記アプリケーション宛のデータの送信を停止させることを特徴とする請求項3に記載のサーバ。

請求項8

前記第1のネットワークインタフェースの性能情報及び前記第2のネットワークインタフェースの性能情報は、前記第1のネットワークインタフェースの処理速度及び前記第2のネットワークインタフェースの処理速度であり、前記性能差分情報管理部は、前記第2のネットワークインタフェースの処理速度を前記第1のネットワークインタフェースの処理速度で除算することによって、前記性能差分情報を算出することを特徴とする請求項3に記載のサーバ。

請求項9

複数の計算機が、複数のネットワークスイッチを含むネットワークを介して接続される計算機システムであって、前記計算機は、プロセッサと、前記プロセッサに接続されるメモリとを備え、前記プロセッサによって実行され、前記計算機の物理資源を仮想的に分割して生成される複数の仮想計算機を管理する仮想マシンモニタと、前記各仮想計算機上で実行され、アプリケーションを実行するオペレーティングシステムと、を備え、前記仮想マシンモニタは、前記各仮想計算期毎に割り当てられた前記物理資源に関する情報である物理資源情報を管理し、前記各仮想計算機毎に、前記オペレーティングシステム上で実行される前記アプリケーションの稼働状態に関する情報であるアプリケーション稼働情報を管理し、前記計算機の第1の物理資源が性能の高い第2の物理資源に変更された場合に、前記第1の物理資源の性能と前記第2の物理資源の性能との差を表す性能差分情報を取得し、前記物理資源情報、前記アプリケーション稼働情報、及び前記性能差分情報を、前記ネットワークスイッチに送信し、前記ネットワークスイッチは、受信した前記物理資源情報、前記アプリケーション稼働情報、及び前記性能差分情報に基づいて、前記アプリケーションが正常に動作するように前記第2の物理資源の性能を調整するための制御情報を生成することを特徴とする計算機システム。

請求項10

前記物理資源は、前記計算機が他の装置と通信するためのネットワークインタフェースであることを特徴とする請求項9に記載の計算機システム。

請求項11

前記仮想マシンモニタは、前記ネットワークインタフェースを仮想的に分割して、前記各仮想計算機に仮想ネットワークインタフェースを割り当て、前記仮想ネットワークインタフェースは、前記アプリケーションが受信するデータを一時的に蓄積する受信バッファと、前記アプリケーションが送信するデータを一時的に蓄積する送信バッファとを備え、前記仮想マシンモニタは、第1のネットワークインタフェースから性能の高い第2のネットワークインタフェースに変更された場合に、前記第2のネットワークインタフェースの性能情報を取得し、性能差分情報管理部が保持する前記第1のネットワークインタフェースの性能情報と、前記取得された第2のネットワークインタフェースの性能情報とに基づいて、前記第1のネットワークインタフェースの性能と前記第2のネットワークインタフェースの性能との差を算出し、前記算出された第1のネットワークインタフェースの性能と第2のネットワークインタフェースの性能との差を前記ネットワークスイッチに送信し、前記ネットワークスイッチは、前記算出された前記第1のネットワークインタフェースの性能と前記第2のネットワークインタフェースの性能との差に基づいて、前記受信バッファが蓄積可能な容量を越えないようにするための制御情報を生成することを特徴とする請求項10に記載の計算機システム。

請求項12

前記制御情報は、前記ネットワークスイッチが前記アプリケーション宛のデータの送信を停止させる命令を通知するための輻輳通知設定情報であって、前記ネットワークスイッチは、前記輻輳通知設定情報に基づいて、前記仮想ネットワークインタフェースに輻輳状態が発生したことを通知することを特徴とする請求項11に記載の計算機システム。

請求項13

前記仮想マシンモニタは、前記アプリケーションの稼働状態に関する情報として、前記受信バッファのバッファサイズと、前記アプリケーションがデータを受信するアプリケーション受信間隔とを管理し、前記ネットワークスイッチは、前記性能差分情報、前記受信バッファのバッファサイズ、及び前記アプリケーション受信間隔に基づいて、前記輻輳通知設定情報を生成し、周期的に、前記輻輳状態を発生させるか否かを判定し、前記輻輳状態を発生させると判定された場合に、前記アプリケーション宛のデータの送信を停止させる命令を当該データの送信元に送信することを特徴とする請求項11に記載の計算機システム。

請求項14

前記第1のネットワークインタフェースの性能情報及び前記第2のネットワークインタフェースの性能情報は、前記第1のネットワークインタフェースの処理速度及び前記第2のネットワークインタフェースの処理速度であり、前記仮想マシンモニタは、前記第2のネットワークインタフェースの処理速度を前記第1のネットワークインタフェースの処理速度で除算することによって、前記性能差分情報を算出することを特徴とする請求項11に記載の計算機システム。

請求項15

プロセッサと、前記プロセッサに接続されるメモリとを備え、前記プロセッサによって実行され、前記サーバの物理資源を仮想的に分割して生成される複数の仮想計算機を管理する仮想マシンモニタと、前記各仮想計算機上で実行され、アプリケーションを実行するオペレーティングシステムと、を備えるサーバにおける仮想計算機管理方法であって、前記仮想マシンモニタは、前記各仮想計算期毎に割り当てられた前記物理資源に関する情報を管理し、前記各仮想計算機毎に、前記オペレーティングシステム上で実行される前記アプリケーションの稼働状態に関する情報を管理し、前記方法は、前記仮想マシンモニタが、前記サーバの第1の物理資源が性能の高い第2の物理資源に変更された場合に、前記第1の物理資源の性能と前記第2の物理資源の性能との差を表す性能差分情報を取得するステップと、前記取得された性能差分情報に基づいて、前記アプリケーションが正常に動作するように前記第2の物理資源の性能とを下げるための制御情報を生成するステップと、含むことを特徴とする仮想計算機管理方法。

技術分野

0001

本発明は、仮想計算機に関し、更に詳しくは、仮想計算機と他の装置とを接続する仮想ネットワークインタフェースを用いてデータ転送するサーバ計算機システム及び仮想計算機管理方法に関する。

背景技術

0002

近年の物理計算機マルチコアプロセッサを複数搭載するようになってきており、プロセッサ資源を有効利用するために、複数の仮想計算機を同時に稼働させるサーバ仮想化技術が注目されている。

0003

サーバ仮想化技術を用いることによって、1台の物理計算機上に複数の仮想計算機を稼働できるため、1台の物理計算機に1つのOSを実行させる従来システムと比べ、コスト削減を望める。

0004

PCのようなオープン系システムは、性能向上の進度が速く、次々と後継機種が登場し、製品保証期間は約5年程度と短い。

0005

これに対し、基幹系(企業の会計生産管理、人事、給与等の業務アプリケーション、及び銀行鉄道社会インフラに関わるサービス等)のようなサービスは、基本的なサービスであるためにサービス内容が変わらないものが多い。また、基幹系のサービスでは稼働実績のあるサービスを更改することによる障害を起こしてはならない。前述したような理由から、サービスをできるかぎり長期に稼働させたいというニーズがある。

0006

仮想化技術は前述したニーズに答えるものであり、物理計算機に新しいハードウェアを導入した場合であっても、現在稼働しているサービスの環境をそのまま移行することが可能であり、また、オープン系システムに対して費用対効果が認められるサービスへの適用が始まっている。

0007

長期に運用させたいサービスを仮想計算機上で動作させる場合、サービスの性能を保持することが重要である。ハードウェアは数年で変更する必要があり、変更の度に性能差が広がる。従って、サービスが構築された時の環境を維持するためには、仮想計算機を制御する仮想計算機モニタがその性能差を解消し、サービスが実行される環境にハードウェアの変更による影響を与えないことが必要である。

0008

ハードウェア資源の一つとして、ネットワークがある。ネットワークに関しては、高速化と、LAN(Local Area Network)系ネットワーク及びストレージ系ネットワークの統合化と、が進んでいる。

0009

イーサネット登録商標、以降同じ)は、10Gbps以上の性能を持つようになっており、特にデータセンタ(以降、DCと記載する)は大量のデータをリアルタイムに扱うサービスが多いため、DC向けの規格IEEE 802.1 WGにて策定されている。

0010

ネットワーク側では大量のデータを高速に扱えるようになっているが、当該サービスの動作環境(仮想計算機)より先がサービスの受信能力以上のシステム構成となることによって、サービス側では仮想計算機側の受信側処理を越える可能性がある。すなわち、受信バッファオーバーフローが発生し、これによってデータが損失、サービスの異常終了や異常動作の原因となる。

0011

この問題を解消する方法としては、ある物理計算機上に生成される複数の仮想計算機間を接続する仮想ネットワークシステムにおいて、送信先の仮想計算機の受信バッファが溢れることを防止する方法がある(例えば、特許文献1参照)。

0012

具体的には、仮想計算機モニタは仮想計算機の送受信状況を管理する仮想ネットワーク制御部を備え、各仮想計算機は仮想ネットワークインタフェースカード(以下、仮想NICと記載する)を備える。仮想ネットワーク制御部は、各仮想NICの受信バッファサイズ監視し、ある仮想NICが送信する送信データサイズと受信バッファサイズとから、送信可否を判定する。受信バッファ残量受信データサイズ以下である場合、送信を停止させる。

先行技術

0013

特開2009−296133号公報

発明が解決しようとする課題

0014

特許文献1では、同一の物理計算機上に仮想計算機が配置されるため、仮想計算機モニタが各仮想計算機のデータ送受信状況を把握できる。従って、受信側の仮想計算機の受信バッファと送信側の仮想計算機の送信データとを比較することができる。しかし、物理NICを介さないため、物理NICの性能と仮想計算機の稼働環境との関係を考慮したものではなく、物理NICを介した別の物理計算機との通信する計算機システムに適用することは困難である。

0015

すなわち、仮想計算機モニタは、同一の物理計算機上の仮想計算機の管理はできるが、他の計算機の管理はできないため、複数の計算機を備える計算機システムには適用できない。

0016

本発明の目的は、複数の物理計算機を備える計算機システムにおいて、物理計算機上に生成された仮想計算機を制御する仮想計算機モニタが、変更される物理計算機のハードウェア資源の性能を適正に考慮して、仮想計算機上のアプリケーションを正常に動作させることである。

課題を解決するための手段

0017

本発明の代表的な一例を示せば以下の通りである。すなわち、プロセッサと、前記プロセッサに接続されるメモリとを備え、前記プロセッサによって実行され、サーバの物理資源を仮想的に分割して生成される複数の仮想計算機を管理する仮想マシンモニタと、前記各仮想計算機上で実行され、アプリケーションを実行するオペレーティングシステムと、を備えた仮想環境を提供するサーバであって、前記仮想マシンモニタは、前記各仮想計算期毎割り当てられた前記物理資源に関する情報を管理する物理資源情報管理部と、前記各仮想計算機毎に、前記オペレーティングシステム上で実行される前記アプリケーションの稼働状態に関する情報を管理するアプリケーション情報管理部と、前記サーバの物理資源の性能情報を管理し、前記サーバの第1の物理資源が性能の高い第2の物理資源に変更された場合に、前記第1の物理資源の性能と前記第2の物理資源の性能との差を表す性能差分情報を取得して、前記性能差分情報に基づいて、前記アプリケーションが正常に動作するように前記第2の物理資源の性能を調整するための制御情報を生成する性能差分情報管理部と、を備えることを特徴とする。

発明の効果

0018

本発明によれば、計算機システムを構成するハードウェア資源の変更時、仮想計算機上で実行されるアプリケーションの稼働状態を変更することなく正常に稼働させることができる。

図面の簡単な説明

0019

本発明の実施形態の概要を説明するブロック図である。
本発明の第1の実施形態のネットワークシステムの構成例を説明するブロック図である。
本発明の第1の実施形態のサーバシステムの内部構成の一例を説明するブロック図である。
本発明の第1の実施形態の物理計算機のハードウェア構成の一例を説明するブロック図である。
本発明の第1の実施形態のAP情報管理テーブルのフォーマットの一例を示す説明図である。
本発明の第1の実施形態の構成履歴管理テーブルのフォーマットの一例を示す説明図である。
本発明の第1の実施形態のネットワークシステムにおけるサーバシステムが実行する処理の流れを説明するシーケンス図である。
本発明の第1の実施形態の仮想計算機モニタが実行する処理を説明するフローチャートである。
本発明の第1の実施形態の仮想計算機モニタが実行する処理を説明するフローチャートである。
本発明の第1の実施形態の仮想計算機モニタが実行するAP動作情報ロギング処理を説明するフローチャートである。
本発明の第2の実施形態のネットワークスイッチの内部構成の一例を説明するブロック図である。
本発明の第2の実施形態のネットワークシステムにおけるサーバシステム及びネットワークスイッチが実行する処理の流れを説明するシーケンス図である。
本発明の第2の実施形態の仮想計算機モニタが実行する性能差を解消するための処理を説明するフローチャートである。
本発明の第2の実施形態のネットワークスイッチが実行する処理を説明するフローチャートである。
本発明の第2の実施形態のネットワークスイッチによって実行されるスイッチング処理を説明するフローチャートである。
ネットワークスイッチが管理するAP−ネットワーク環境情報テーブルのフォーマットの一例を示す説明図である。

実施例

0020

本発明の実施形態について、以下に、図を参照して説明する。まず、本発明の概要を、図1を用いて説明する。

0021

図1は、本発明の実施形態の概要を説明するブロック図である。

0022

図1に示す例では、物理サーバは、ハードウェア107とソフトウェア100とから構成される。ソフトウェア100は、仮想計算機モニタ101及び仮想計算機102を含む。

0023

以下、ハードウェア107がハードウェア108に更新された場合を例に説明する。なお、以降ではハードウェア107を旧ハードウェア107と記載し、ハードウェア108を新ハードウェア108と記載する。

0024

仮想計算機モニタ101は、アプリケーション動作情報106、ハードウェア性能差分情報109及び性能差解消処理部110とを含む。

0025

アプリケーション動作情報106は、仮想計算機102上で動作するアプリケーションの動作環境に関する情報を格納する。ハードウェア性能差分情報109は、旧ハードウェア107と新ハードウェア108との性能に関する情報を格納する。性能差解消処理部110は、ハードウェア変更時に、ハードウェアの性能の差分を適正化する処理を実行する。

0026

具体的には、性能差解消処理部110は、新ハードウェア108の性能情報を取得し(S120)、旧ハードウェア107との性能差を算出し(S121)、変更されるハードウェアに基づいて、どのハードウェアの性能差を適正化するかを設定する(S122)。

0027

[第1の実施形態]
次に、本発明の第1の実施形態について、図2図10を参照して説明する。

0028

第1の実施形態では、物理計算機に物理NICが高速な物理NICに変更された場合に、仮想計算機を制御する仮想計算機モニタが、アプリケーション動作情報106とハードウェア性能差分情報109とに基づいて、受信バッファがオーバーフローしないように、疑似的に輻輳状況を発生させる。

0029

図2は、本発明の第1の実施形態のネットワークシステムの構成例を説明するブロック図である。

0030

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と記載する。

0031

ルータ202、ネットワークスイッチ203、サーバシステム204、及びストレージ装置205は、それぞれネットワーク206を介して接続される。

0032

DC200は、例えばインターネットのような外部ネットワーク201を介して、他のDC、システム又は端末等と接続される。

0033

図3は、本発明の第1の実施形態のサーバシステム204の内部構成の一例を説明するブロック図である。

0034

図3に示す例では、サーバシステム204は、物理計算機300と物理NIC312とから構成される。物理計算機300と物理NIC312とは、例えば、PCI(Peripheral Component InterConnect)バスのような内部バス320を介して互いに接続される。

0035

物理計算機300は、1つ以上の仮想計算機1(301−1)〜仮想計算機n(301−n)と、仮想計算機モニタ302とを含む。なお、物理計算機300のハードウェア構成については、図4を用いて後述する。

0036

仮想計算機モニタ302は、仮想計算機1(301−1)〜仮想計算機n(301−n)を生成し、生成された仮想計算機1(301−1)〜仮想計算機n(301−n)を管理する。

0037

仮想計算機モニタ302は、物理計算機300が備える物理的な計算機資源を仮想的な計算機資源に変換し、仮想計算機1(301−1)〜仮想計算機n(301−n)に、それぞれ、仮想的な計算機資源を割り当てる。なお、物理計算機300が備える計算機資源を割り当てる方法については、周知又は公知の技術を適宜用いればよいので、ここでは詳述しない。

0038

以降、仮想計算機1(301−1)〜仮想計算機n(301−n)を区別しない場合、仮想計算機301と記載する。

0039

物理計算機300が備える物理的な計算機資源としては、図4に示すようなものが考えられる。

0040

図4は、本発明の第1の実施形態の物理計算機300のハードウェア構成の一例を説明するブロック図である。

0041

図4に示すように、物理計算機300は、CPU330とメモリ331と不揮発性記憶媒体332とを備え、内部バス等を介して互いに接続される。

0042

CPU330は、メモリ331上に展開されたプログラムを実行する。メモリ331は、CPU330によって実行されるプログラム及び当該プログラムを実行するために必要な情報を格納する。また、メモリ331はCPU330が処理を実行するためのワークエリアとしても使用される。不揮発性記憶媒体332は、各種情報を格納し、例えば、HDD等が考えられる。

0043

仮想計算機モニタ302は、CPU330、メモリ331及び不揮発性記憶媒体332を各仮想計算機301に割り当てる。なお、物理計算機300は、図示しない構成を備えてもよい。例えば、I/Oインタフェースネットワークインタフェース等を備えてもよい。

0044

なお、図4では、CPU330、メモリ331及び不揮発性記憶媒体332がそれぞれ1つの場合を示したが、複数備えていてもよい。また、CPU330は、複数のコアを含むものであってもよい。

0045

図3の説明に戻る。

0046

仮想計算機1(301−1)〜仮想計算機n(301−n)は、アプリケーション(以降、APと記載する)321−1〜321−n、ゲストOS322−1〜322−n、仮想ドライバ323−1〜323−nを備える。

0047

ゲスト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に対応するサービスが提供される。

0048

以降、ゲストOS322−1〜322−nを区別しない場合、ゲストOS322と記載し、AP321−1〜321−nを区別しない場合、AP321と記載する。

0049

仮想ドライバ323−1〜323−nは、ゲストOS322−1〜322−nが処理を実行するときに用いられるデバイスドライバである。

0050

以降、仮想ドライバ323−1〜323−nを区別しない場合、仮想ドライバ323と記載する。

0051

なお、本実施形態では、各仮想計算機301におけるネットワークのエミュレーション処理は、物理NIC312によって実行される。

0052

仮想計算機モニタ302は、送信モニタ303、受信モニタ304、性能差解消処理部305、疑似輻輳処理部306、AP情報管理部307、AP情報管理テーブル308、構成履歴管理部309、及び構成履歴管理テーブル310を備える。

0053

送信モニタ303は、各仮想計算機301上で実行されるAP321が送信するデータを解析し、当該解析結果を物理NIC312に送信する。

0054

受信モニタ304は、物理NIC312を介して受信した、仮想計算機301上で実行される各AP321宛のデータをロギングする。例えば、受信データの受信間隔、及び仮想NICの受信バッファにバッファリングされる受信データ数等が監視される。

0055

AP情報管理部307は、AP321の動作環境に関する情報を管理する。以降、AP321の動作環境に関する情報をAP動作情報と記載する。

0056

AP動作情報は、例えば、AP321を特定する識別子、ネットワーク設定情報、受信モニタ304によって測定された受信データの受信間隔等が考えられる。

0057

AP情報管理部307は、前述したようなAP動作情報を取得し、取得されたAP動作情報をAP情報管理テーブル308に格納する。AP情報管理テーブル308の詳細については、図5を用いて後述する。

0058

構成履歴管理部309は、サーバシステム204のハードウェアの構成情報及び仮想計算機301に割り当てるハードウェアの構成情報を管理する。

0059

構成履歴管理部309は、例えば、仮想計算機301の生成時に、サーバシステム204のハードウェアの構成情報及び仮想計算機301に割り当てるハードウェアの構成情報を取得し、取得された各構成情報を構成履歴管理テーブル310に格納する。なお、サーバシステム204のハードウェアの構成情報は、サーバシステム204の初期設定時に取得されてもよい。

0060

構成履歴管理部309は、サーバシステム204のハードウェア構成が変更された場合に、変更されたハードウェアの構成情報を取得し、構成履歴管理テーブル310に取得されたハードウェアの構成情報を格納する。

0061

構成履歴管理テーブル310の詳細については、図6を用いて後述する。

0062

性能差解消処理部305は、サーバシステム204のハードウェア構成が変更される場合、AP321を正常に動作させるための制御情報を決定する。

0063

具体的には、性能差解消処理部305は、サーバシステム204のハードウェア構成が変更される場合、AP321がインストールされた時点のハードウェアの構成情報とハードウェアの構成が変更された後のハードウェアの構成情報とを構成履歴管理テーブル310から取得する。さらに、性能差解消処理部305は、AP321がインストールされた時点のハードウェアの構成情報とハードウェアの構成が変更された後のハードウェアの構成情報との差分を算出し、算出された差分に基づいて、AP321を正常に動作させるための制御内容を決定する。本実施形態では、監視するハードウェアを物理NIC312として説明するが、CPU330、又はメモリ331等のハードウェアであっても本発明は実施可能である。

0064

疑似輻輳処理部306は、性能差解消処理部305によって決定された制御内容に基づいて、疑似的に輻輳状態を発生させる処理を実行する。

0065

物理NIC312は、サーバシステム204が他の装置(例えば、ネットワークスイッチ203及びストレージ装置205等)と通信するためのネットワークインタフェースである。物理NIC312は、仮想NIC327−1〜327−n、ルーティング部328及び処理部329を備える。

0066

仮想NIC327−1〜327−nは、それぞれ、仮想計算機1(301−1)〜仮想計算機n(301−n)に対応する仮想NICネットワーク機能を備える。すなわち、仮想NIC327−1〜327−nは、各仮想計算機301におけるネットワークのエミュレーション処理を実行するための機能を備える。物理NIC312がネットワークのエミュレーション処理を実行することによって、サーバシステム204の処理性能を向上することが可能となる。

0067

仮想NIC327−1〜327−nは、それぞれ、送信バッファ324−1〜324−n及び受信バッファ325−1〜325−nを備える。送信バッファ324−1〜324−nは、各仮想計算機301から送信されるデータを一時的に格納するバッファである。受信バッファ325−1〜325−nは、各仮想計算機301が受信するデータを一時的に格納するバッファである。

0068

仮想計算機モニタ302は、仮想計算機301における仮想ドライバ323と物理NIC312の仮想NIC327とを対応づけて管理する。図3に示す例では、仮想ドライバ323−1と仮想NIC327−1とが対応づけられ、仮想ドライバ323−2と仮想NIC327−2とが対応づけられ、仮想ドライバ323−nと仮想NIC327−nとが対応づけられる。

0069

以降、仮想NIC327−1〜327−nを区別しない場合、仮想NIC327と記載する。また、送信バッファ324−1〜324−nを区別しない場合、送信バッファ324と記載し、また、受信バッファ325−1〜325−nを区別しない場合、受信バッファ325と記載する。

0070

ルーティング部328は、各仮想計算機301から送信された送信データを処理部329へ出力し、処理部329から入力されたデータを各仮想NIC327へ振分ける処理を行う。

0071

処理部329は、ネットワークからデータを受信し、また、ネットワークへデータを送信する。

0072

なお、サーバシステム204は、サーバシステム204とストレージ装置205との間の接続に用いられるインタフェースであるHBA(図示省略)を備える。また、仮想計算機301は、仮想HBA(図示省略)を備えていてもよい。

0073

本実施形態では、物理NICがネットワークのエミュレーションを実行するため、仮想NIC327及びルーティング部328を備えているが、仮想計算機モニタ302が仮想NIC327を構えていてもよい。この場合、仮想計算機モニタ302が、ネットワークのエミュレーション処理を実行する。

0074

なお、各部が備える機能を一つの部にまとめてもよい。

0075

図5は、本発明の第1の実施形態のAP情報管理テーブル308のフォーマットの一例を示す説明図である。

0076

AP情報管理テーブル308は、AP情報アドレス管理表800を含む。AP情報アドレス管理表800は、各仮想計算機301上で動作するAP321のAP動作情報が格納されるエリアアドレスを管理する。

0077

ここで、エリアとはメモリ331上のアドレス空間の一部分を示し、AP情報アドレス管理表800に格納されるアドレスは当該エリアの先頭のアドレスが格納される。仮想計算機モニタ302は、メモリ331上に各仮想計算機301上で動作するAP321のAP動作情報を格納するエリアを確保し、当該エリアに以下で説明する情報を格納する。

0078

AP情報アドレス管理表800のアドレスに示されたエリアには、AP名801、AP−ID802、NW設定情報インストール日時808、送信ログアドレス809、受信ログアドレス810、AP受信処理間隔811及び疑似輻輳処理ログアドレス812等が格納される。

0079

AP名801は、仮想計算機301上で実行されるAP321の名称である。AP−ID802は、仮想計算機301上で実行されるAP321を特定する識別子である。

0080

NW設定情報は、仮想計算機301上で実行されるAP321が使用する仮想NIC327におけるネットワークの設定情報である。NW設定情報は、例えば、MACアドレス803、IPアドレス804、ポート805、受信バッファサイズ806及びVLAN−ID807等を含む。

0081

MACアドレス803はAP321が利用する仮想NIC327に割り当てられたMACアドレスである。IPアドレス804は、仮想NIC327に割り当てられたIPアドレスである。ポート805は、仮想NIC327におけるポートのポート番号である。受信バッファサイズ806は、仮想NIC327に割り当てられた受信バッファ325のサイズである。VLAN−ID807は、仮想NIC327に対して設定されたVLAN(Virtual Local Area Network)の識別子等である。

0082

インストール日時808は、仮想計算機301にAP321がインストールされた日時等の時間情報である。

0083

送信ログアドレス809は、仮想計算機301上で実行されるAP321が送信するデータのロギング情報が格納されるエリアの先頭のアドレスである。

0084

受信ログアドレス810は、仮想計算機301上で実行されるAP321が受信するデータのロギング情報が格納されるエリアの先頭のアドレスである。受信ログアドレス810によって示されるエリアには、通信相手アドレス820、シーケンス番号821、NIC受信タイムスタンプ822、AP受信処理タイムスタンプ823及び受信データ824等が格納される。

0085

通信相手アドレス820は、仮想計算機301上で実行されるAPが通信する相手のアドレスである。シーケンス番号821は、仮想計算機モニタ302によって、各AP321毎にカウントされる受信データパケットのシーケンス番号である。NIC受信タイムスタンプ822は、物理NIC312が受信データパケットを受信した時刻情報である。AP受信処理タイムスタンプ823は、AP321が受信データパケットを受信した時刻情報である。受信データ824は、受信データパケットそのものである。

0086

AP受信処理間隔811は、仮想計算機301上で実行されるAP321がデータを受信する間隔である。

0087

疑似輻輳処理ログアドレス812は、疑似輻輳処理部306によって実行された処理のロギング情報を格納するエリアのアドレスである。

0088

疑似輻輳処理ログアドレス812に示されたエリアには、判定日時830、CPU831、メモリ832、物理NIC帯域833、仮想NIC帯域834及び疑似輻輳発生間隔835等が格納される。

0089

判定日時830は、疑似輻輳が必要であると判定された日時等の時間情報である。CPU831は、疑似輻輳が必要であると判定された時の、仮想計算機301に割り当てられたCPUの情報である。例えば、CPUの情報は、AP321によって使用される仮想計算機301に割り当てられたCPUの稼働率である。

0090

メモリ832は、疑似輻輳が必要であると判定された時の、仮想計算機301に割り当てられたメモリの情報である。例えば、メモリの情報は、AP321によって使用される仮想計算機301に割り当てられたメモリのメモリサイズである。

0091

物理NIC帯域833は、物理NIC312に割り当てられた帯域である。仮想NIC帯域834は、仮想NIC327に割り当てられた帯域である。疑似輻輳発生間隔835は、疑似輻輳を発生する間隔である。

0092

図6は、本発明の第1の実施形態の構成履歴管理テーブル310のフォーマットの一例を示す説明図である。

0093

構成履歴管理テーブル310は、構成情報アドレス管理表900を含む。構成情報アドレス管理表900は、サーバシステム204のハードウェアの構成情報が格納されるワークエリアのアドレスを管理する。なお、構成情報アドレス管理表900に格納されるアドレスは、当該ワークエリアの先頭のアドレスが格納される。

0094

構成履歴管理テーブル310は、サーバシステム204上で仮想計算機モニタ302が稼働を開始した後、ハードウェアの変更が発生する毎に更新される。すなわち、ハードウェアが変更された場合、構成情報アドレス管理表900にアドレスが追加され、当該アドレスに対応するエリアにハードウェアの構成情報が格納される。

0095

構成情報アドレス管理表900に示されたエリアには、設定日時901、CPU902、メモリ903、NIC904、HBA905、仮想計算機総数906及び仮想計算機の設定情報アドレス等が格納される。

0096

設定日時901は、ハードウェアが変更された日時等の時間情報である。CPU902は、ハードウェアが変更された後の物理計算機300におけるCPU330の情報である。メモリ903はハードウェアが変更された後の物理計算機300におけるメモリ331の情報である。

0097

NIC904は、ハードウェアが変更された後の物理NIC312の情報である。例えば、物理NIC312の帯域等が格納される。HBA905は、ハードウェアが変更された後の物理計算機300におけるHBA(Host Bus Adapter)の情報である。

0098

仮想計算機総数906は、物理計算機300上に生成された仮想計算機301の数である。

0099

仮想計算機の設定情報アドレスは、物理計算機300上に生成された各仮想計算機301の設定情報が格納されるエリアのアドレスである。

0100

図6に示す例では、仮想計算機1の設定情報アドレス907と、仮想計算機2の設定情報アドレス908とが格納される。仮想計算機1の設定情報アドレス907は、仮想計算機1(301−1)の設定情報が格納されるエリアのアドレスである。仮想計算機2の設定情報アドレス908は、仮想計算機2(301−2)の設定情報が格納されるエリアのアドレスである。

0101

以下、仮想計算機1の設定情報アドレス907に示されたエリアに格納される情報を例として説明する。

0102

仮想計算機1の設定情報アドレス907に示されたエリアには、設定日時910、OS911、CPU912、メモリ913、仮想NIC帯域914及び仮想HBA帯域915等が含まれる。

0103

設定日時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に割り当てられた帯域である。

0104

図7は、本発明の第1の実施形態のネットワークシステムにおけるサーバシステム204が実行する処理の流れを説明するシーケンス図である。

0105

仮想計算機301−1上にAP321−1がインストールされ、AP321−1が起動される(400)。

0106

仮想計算機モニタ302は、AP321−1の起動を検知すると以下の処理を実行する。

0107

仮想計算機モニタ302は、構成履歴管理テーブル310からAP321−1がインストールされた時のハードウェアの構成情報を取得し、AP321−1についてのロギング(図9参照)を開始する(401)。具体的には、仮想計算機モニタ302は、AP321−1から送受信されるパケットの測定し、AP情報管理テーブル308に測定結果を格納する。なお、送信パケットの測定は送信モニタ303によって実行され、受信パケットの測定は受信モニタ304によって実行される。

0108

AP321−1は、パケットを送受信する(402、403)。AP321−1が送信されたパケットは、仮想NIC327−1からネットワークスイッチ203へと送信され、ネットワークスイッチ203から受信したパケットは、仮想NIC327−1を介してAP321−1が受信する。

0109

仮想計算機モニタ302は、送受信されるパケットの測定結果に基づいて、仮想計算機301−1が使用する仮想NIC327−1の受信バッファ325−1のサイズ、及び、AP受信処理間隔等を取得する(404)。取得された情報は、AP情報管理テーブル308の仮想計算機301−1に対応するエリアに格納される。

0110

ここで、物理NIC312が変更されると(405)、仮想計算機モニタ302は、物理NIC312の変更を検知し、変更後の物理NIC312の情報を取得し、疑似輻輳の発生間隔を算出する(406)。

0111

以下、性能が高い物理NIC312に変更された場合を例に疑似輻輳の発生間隔の算出方法を説明する。なお、AP321−1がインストールされた時の物理NICを旧物理NIC312と記載し、また、性能が高い物理NIC312を新物理NIC312と記載する。

0112

物理NIC312の変更を検知した仮想計算機モニタ302は、新物理NIC312の情報を取得し、他のハードウェア情報とともに取得された新物理NICの情報を、世代の異なるハードウェア構成情報として構成履歴管理テーブル310に格納する。

0113

次に、仮想計算機モニタ302は、構成履歴管理テーブル310から変更前のハードウェアの構成情報を取得し、旧物理NIC312と新物理NIC312との性能の差分を算出する。

0114

例えば、100Mbpsの速度である旧物理NIC312から1Gbpsの速度である新物理NIC312に変更された場合、性能の差分は、1Gbps/100Mbps=10と算出される。すなわち、旧物理NIC312と新物理NIC312との性能の差分は10倍と算出される。

0115

この場合、AP321−1は、物理NIC312が変更された後、変更前と比較して10倍のデータ量を受信する可能性があり、オーバーフローが発生する可能性がある。

0116

そこで、仮想計算機モニタ302は、AP情報管理テーブル308を参照して、AP受信処理間隔811と受信バッファサイズ806とを取得し、受信バッファがオーバーフローする前に、輻輳状態を疑似的に発生させる間隔(疑似輻輳発生間隔414)を算出する。疑似輻輳発生間隔414は、疑似輻輳処理を実行するタイミングとなる時間である。

0117

なお、疑似輻輳発生間隔の算出方法については、図8A及び図8Bを用いて後述する。

0118

仮想計算機モニタ302は、疑似輻輳発生処理を開始する(407)。具体的には、仮想計算機モニタ302は、算出された疑似輻輳発生間隔414に基づいて、送受信されるパケット(408、409)の計測を開始する。また、仮想計算機モニタ302は、疑似輻輳発生間隔414のカウントを開始する。

0119

仮想計算機モニタ302は、疑似輻輳発生間隔414分の時間が経過した後、疑似輻輳の発生を仮想NIC327−1へ通知する(410)。具体的には、パケットの送信の停止を要求するPAUSEコマンドの発生を通知する。

0120

イーサネット等の物理NIC312は輻輳状態を検知した場合に、データ送信の停止を要求する機能を備える。例えば、ネットワークスイッチ203が、PAUSEコマンドを専用のマルチキャストアドレスに送信することによってデータ受信者(この場合、AP321−1)へのデータ送信を中断させる方法、又はデータ送信元に対して衝突検知を通知することによってデータ送信を中断させる方法等が考えられる。

0121

図7に示す例では、疑似輻輳の発生の通知を受けた仮想NIC327−1がPAUSEコマンドをネットワークスイッチ203に送信する(411)。これによって、PAUSEコマンドを受信したSW203がパケットの送信元に対して当該PAUSEコマンドを送信することによって、受信データのフロー制御を行うことができる。

0122

ネットワークスイッチ203は、仮想NIC327−1から送信されたPAUSEコマンドを受信し、受信したPAUSEコマンドをデータ送信元のアドレスへ送信して、データ送信元からのデータ送信を一時停止させる(412)。これによって、AP321−1が受信するパケットの受信量が一定に保たれる。すなわち、オーバーフローの発生を回避することができる。

0123

疑似輻輳を発生させることによって、AP321−1は、新物理NIC312に変更される前と同一のデータ量のパケットを受信することができる(413)。

0124

なお、AP321−1が利用する仮想NIC327−1に対して疑似輻輳を通知するため、他の仮想NIC327を利用するAP321には影響を与えない。

0125

図8A及び図8Bは、本発明の第1の実施形態の仮想計算機モニタ302が実行する処理を説明するフローチャートである。

0126

仮想計算機モニタ302は、処理を開始すると、仮想計算機301を新たに生成するか否かを判定する(ステップ500)。例えば、サーバシステム204の管理者から仮想計算機301の生成要求を受けたか否かによって判定される。

0127

仮想計算機301を新たに生成すると判定された場合、仮想計算機モニタ302は、仮想計算機301に割り当てるCPU、メモリ等のハードウェアの構成情報を決定し、決定されたハードウェアの構成情報を構成履歴管理テーブル310に格納する(ステップ501)。

0128

次に、仮想計算機モニタ302は、生成された仮想計算機301にAP321がインストールされるか否かを判定する(ステップ502)。例えば、生成された仮想計算機301を利用するユーザが、当該仮想計算機にAP321をインストールしたか否かを検知することによって判定される。

0129

生成された仮想計算機301にAP321がインストールされると判定された場合、仮想計算機モニタ302は、インストールされるAP321を実行するために必要な設定情報(例えば、AP321の名称、及びIPアドレスなどのネットワーク設定情報等)を取得し、AP情報管理テーブル308に格納する(ステップ503)。

0130

具体的には、仮想計算機モニタ302は、メモリ331上に生成された仮想計算機301上で実行されるAP321の情報を格納するためのエリアを確保し、さらに、送信ログエリア及び受信ログエリアの確保し、確保された各エリアに、取得された情報を格納する。

0131

仮想計算機モニタ302は、インストールされたAP321が起動されたか否かを判定する(ステップ504)。

0132

インストールされたAP321が起動されていないと判定された場合、仮想計算機モニタ302は、ステップ502に戻り、同様の処理を実行する。

0133

インストールされたAP321が起動されたと判定された場合、仮想計算機モニタ302は、AP動作情報を取得するためのロギングを開始する(ステップ505)。ロギングの詳細については、図9を用いて後述する。

0134

仮想計算機モニタ302は、疑似輻輳を発生させるか否かを判定する(ステップ506)。

0135

具体的には、仮想計算機モニタ302が、疑似輻輳発生処理を開始してから、疑似輻輳発生間隔835に示された時間間隔に達したか否かを判定する。さらに、疑似輻輳発生間隔835に示された時間間隔が経過した場合、仮想計算機モニタ302は、受信バッファ325にバッファリングされているデータパケット数を検出し、AP情報管理テーブル308の受信ログアドレスに示されるエリアの情報を参照し、次の疑似輻輳発生間隔835に示された時間間隔が経過するまでに、バッファリングされたデータパケット数がバッファオーバーを起こさないか否かを判定する。

0136

次の疑似輻輳発生間隔835に示された時間間隔が経過するまでに、バッファリングされたデータパケット数がバッファオーバーを起こさないと判定された場合には、仮想計算機モニタ302は、次の疑似輻輳発生間隔835に示された時間間隔が経過するまで、疑似輻輳処理を実行しない。

0137

疑似輻輳を発生させると判定された場合、仮想計算機モニタ302は、AP情報管理テーブル308に仮想計算機301の情報を更新し(ステップ507)、疑似輻輳の発生を仮想NIC327へ通知する(ステップ508)。

0138

具体的には、疑似輻輳処理部306が、現在の時間を取得し、取得された現在の時間をAP情報管理テーブル308の疑似輻輳発生ロギングエリアに格納する。

0139

また、PAUSEコマンドの送信要求を受信した仮想NIC327は、当該仮想NIC327が設定される物理NIC312と接続されるネットワークスイッチ203に対してPAUSEコマンドを送信する。なお、イーサネットにおけるPAUSEコマンドには送信を停止させる時間が含まれるため、送信停止時間を設定することによって、自動的にデータ送信を再開させることが可能である。

0140

仮想計算機モニタ302は、AP321が終了したか否かを判定する(ステップ509)。なお、AP321は、ユーザ又はサーバシステム204の管理者によって終了される。

0141

AP321が終了していないと判定された場合、仮想計算機モニタ302は、ステップ505からステップ508の処理を実行する。

0142

AP321が終了したと判定された場合、仮想計算機モニタ302は、処理を終了する。

0143

ステップ500において仮想計算機301を新たに生成しないと判定された場合、又は、ステップ502において生成された仮想計算機301にAP321がインストールされないと判定された場合、仮想計算機モニタ302は、サーバシステム204のハードウェアが変更されたか否かを判定する(ステップ510)。

0144

サーバシステム204のハードウェアが変更されていないと判定された場合、仮想計算機モニタ302は、ステップ500に戻り同様の処理を実行する。

0145

サーバシステム204のハードウェアが変更されたと判定された場合、仮想計算機モニタ302は、ハードウェアが変更された後のサーバシステム204のハードウェアの構成情報を取得して構成履歴管理テーブル310を更新する(ステップ511)。

0146

具体的には、仮想計算機モニタ302は、変更後のサーバシステム204のハードウェア構成情報を格納するためのエリアをメモリ331上に確保し、構成情報アドレス管理表900に当該確保されたエリアの先頭アドレスを追加する。

0147

さらに、仮想計算機モニタ302は、変更後のサーバシステム204のハードウェア構成情報を格納するためのエリアに、取得された情報(例えば、設定日時、CPU、メモリ、NICの処理速度及びプロトコルバージョン等)を格納する。なお、変更されないハードウェアについては、変更後のサーバシステム204のハードウェア構成情報を格納するためのエリアには、変更前のサーバシステム204のハードウェアの構成情報と同一のものが格納される。

0148

次に、仮想計算機モニタ302は、ハードウェアの変更に伴う移行処理を実行する(ステップ512)。

0149

例えば、変更されるハードウェアが物理NIC312の場合、仮想計算機モニタ302は、当該物理NIC312を利用するAP321を停止させ、新たな物理NIC312に変更された後にネットワークの設定情報を移行する方式や、AP321は稼働させたまま、別のサーバシステム204又は別の物理計算機300上に構築された仮想環境に仮想計算機301を移行するライブマイグレーション方式等を利用する方法が考えられる。

0150

仮想計算機モニタ302は、変更されたハードウェアが物理NIC312であるか否かを判定する(ステップ513)。

0151

変更されたハードウェアが物理NIC312でないと判定された場合、仮想計算機モニタ302は、ステップ500に戻り同様の処理を実行する。なお、変更されたハードウェアに基づいた処理を実行してもよい。

0152

変更されたハードウェアが物理NIC312であると判定された場合、仮想計算機モニタ302は、ステップ514からステップ518に示す、性能差を解消するための処理を実行する。すなわち、疑似輻輳を発生させるための処理が実行される。

0153

まず、仮想計算機モニタ302は、構成履歴管理テーブル310から変更後の物理NIC312の性能情報(例えば、処理速度やプロトコル情報等)を取得する(ステップ514)。

0154

仮想計算機モニタ302は、AP情報管理テーブル308及び構成履歴管理テーブル310から、AP321がインストールされた時点のサーバシステム204のハードウェアの構成情報を取得する(ステップ515)。すなわち、変更前の物理NIC312の性能情報が取得される。当該処理は、性能差解消処理部305によって実行される。

0155

具体的には、仮想計算機モニタ302は、構成履歴管理テーブル310から、AP321がインストールされた時点のサーバシステム204のハードウェアの構成情報を取得する。

0156

次に、仮想計算機モニタ302は、取得されたハードウェアの構成情報の設定日時901に基づいて、変更前の物理NIC312が割り当てられていた仮想計算機上で実行されるAP321を特定する。さらに、仮想計算機モニタ302は、AP情報管理テーブル308から特定されたAP321の情報を取得する。特定されたAP321の情報は、仮想NIC327の受信バッファ325のバッファサイズ及びAP321の受信処理間隔を含む。

0157

なお、以下では、変更前の物理NIC312を第1世代の物理NIC312と記載し、変更後の物理NIC312を第2世代の物理NIC312と記載する。

0158

仮想計算機モニタ302は、取得された第1世代の物理NIC312の性能情報と第2世代の物理NIC312の性能情報とに基づいて、第1世代の物理NIC312と第2世代の物理NIC312との性能差を算出する(ステップ516)。当該処理は、性能差解消処理部305によって実行される。

0159

例えば、第1世代の物理NIC312の速度が100Mbps、第2世代の物理NIC312の速度が1Gbpsの速度である場合、1Gbps/100Mbpsを計算することによって、第2世代の物理NIC312は、第1世代の物理NIC312の10倍のデータ送受信能力を持つことが分かる。

0160

第2世代の物理NIC312の性能が第1世代の物理NIC312の性能より高いと判定された場合には、仮想計算機モニタ302は、疑似輻輳を発生させることを決定し、以下の処理を実行する。

0161

なお、第2世代の物理NIC312の性能が第1世代の物理NIC312の性能より低い場合、疑似輻輳を発生させる必要がないためステップ509に進んでもよい。

0162

仮想計算機モニタ302は、第1世代の物理NIC312上の仮想NIC327を利用していたAP321の情報、及び算出された第1世代の物理NIC312と第2世代の物理NIC312との性能差に基づいて、疑似輻輳発生間隔を決定する(ステップ517)。当該処理は、性能差解消処理部305によって実行される。

0163

例えば、第1世代の物理NIC312と第2世代の物理NIC312との性能差が10倍であり、AP321の受信処理間隔が100msであり、仮想NIC327の受信バッファ325のバッファサイズが10データパケット分である場合、データを受信してから10ms経過後に仮想NIC327の受信バッファ325にオーバーフローが起こる可能性がある。従って、この場合、仮想計算機モニタ302は、疑似輻輳発生間隔を「10ms」と決定し、決定された疑似輻輳発生間隔をAP情報管理テーブル308の疑似輻輳発生間隔835に格納する。

0164

仮想計算機モニタ302は、決定された疑似輻輳発生間隔を用いて、疑似輻輳発生処理を開始する(ステップ518)。

0165

その後、仮想計算機モニタ302は、ステップ505に進み、ステップ505からステップ509の処理を実行する。

0166

なお、ステップ518は、仮想計算機モニタ302が仮想NIC327の受信バッファ325にバッファリングされるデータ量の上限値を設定し、仮想NIC327の受信バッファ325にバッファリングされるデータ量が疑似輻輳発生間隔以内であっても、設定された上限値を超える場合には、PAUSEコマンドの送信要求を通知する処理であってもよい。

0167

なお、仮想計算機モニタ302は、仮想NIC327の受信バッファ325に設定される上限値を決定し、当該上限値を用いて処理を実行してもよい。すなわち、仮想計算機モニタ302は、疑似輻輳発生間隔の代わりに、仮想NIC327の受信バッファ325のバッファサイズの上限値に基づいて、疑似輻輳の発生の有無を判定してもよい。

0168

また、仮想NIC327の受信バッファ325へのバッファリング量が多く、疑似輻輳発生間隔毎に毎回PAUSEコマンドが送信されているような場合においては、例えば、仮想NIC327に更に当該AP321の仮想NIC327の受信バッファ325を持たせて受信可能なデータ量を増やす処理を実行してもよい。

0169

なお、ステップ509からステップ505に戻るときに、仮想計算機モニタ302は、ハードウェアが変更されたか否かを判定し、ハードウェアが変更された場合には、ステップ511からステップ518の処理を実行するようにしてもよい。

0170

図9は、本発明の第1の実施形態の仮想計算機モニタ302が実行するAP動作情報のロギング処理を説明するフローチャートである。

0171

図9に示す処理は、ステップ505において実行される処理である。なお、以下で説明する処理は、送信モニタ303及び受信モニタ304によって実行される。

0172

仮想計算機モニタ302は、ステップ504においてAP321が起動した後、計測用エリアを初期化する(ステップ600)。

0173

仮想計算機モニタ302は、AP情報管理テーブル308から起動しているAP321の設定情報を取得する(ステップ601)。取得される設定情報は、例えば、通信相手アドレス情報、仮想NIC327の受信バッファ325のバッファサイズ(受信バッファサイズ806)等が含まれる。

0174

仮想計算機モニタ302は、物理NIC312からの割り込みがあったか否かを判定する(ステップ602)。

0175

物理NIC312からの割り込みがないと判定された場合、仮想計算機モニタ302は、ステップ602に戻り、物理NIC312からの割り込みを検出するまで同様の処理を実行する。

0176

物理NIC312からの割り込みがあったと判定された場合、すなわち、物理NIC312からの割り込みを検出した場合、仮想計算機モニタ302は、当該割り込みがデータ受信についての割り込みか否かを判定する(ステップ603)。

0177

物理NIC312からの割り込みがデータ受信についての割り込みであると判定された場合、仮想計算機モニタ302は、仮想NIC327の受信バッファ325に受信データをバッファリングし、受信データにタイムスタンプを付与する(ステップ604)。付与されるタイムスタンプは、物理NICが受信データを受け取った時刻を示し、当該タイムスタンプの情報は、NIC受信タイムスタンプ822に格納される。

0178

次に、仮想計算機モニタ302は、受信データを受け取った間隔を算出する(ステップ605)。

0179

具体的には、仮想計算機モニタ302は、現在の時刻を取得し、取得された現在の時刻と前回のデータ受信割り込みが発生した時刻との時間間隔を算出し、算出結果をAP情報管理テーブル308に格納する。

0180

仮想計算機モニタ302は、AP321が受信処理を実行したか否かを判定する(ステップ606)。すなわち、AP321が受信データを受け取ったか否かが判定される。

0181

AP321が受信処理を実行していないと判定された場合、仮想計算機モニタ302は、ステップ608に進む。

0182

AP321が受信処理を実行していると判定された場合、仮想計算機モニタ302は、受信データにタイムスタンプを付与する(ステップ607)。付与されるタイムスタンプは、AP321が受信データを受け取った時刻を示し、当該タイムスタンプの情報は、AP受信処理タイムスタンプ823に格納される。

0183

次に、仮想計算機モニタ302は、現在の時刻を取得して、取得された現在の時刻と、前回のAP321が受信処理を実行した時刻との時間間隔(AP受信処理間隔)を算出し、算出結果をAP情報管理テーブル308に格納し(ステップ608)、処理を終了する。

0184

なお、本実施形態では世代毎に管理されるハードウェアとして物理NIC312を対象としているが、その他CPU330やメモリ331等のハードウェアであってもよい。例えば、変更されるハードウェアがCPU330である場合、変更前のCPUの100%の処理能力近似させるように使用率を制限する等の処理によって、ハードウェアの変更に伴う性能差の解消を実現できる。

0185

第1の実施形態によれば、仮想計算機モニタ302は仮想計算機301上にアプリケーションがインストールされた時点におけるサーバシステム204のハードウェアの構成情報を記録する。物理NICが変更された場合、仮想計算機モニタ302は、変更前の物理NIC312と変更後の物理NIC312との性能差を考慮して疑似輻輳を発生させることによって、受信データのフロー制御を行うことができる。これによって、ネットワークの高速化によって発生するアプリケーションの異常稼働や異常終了を防止することができる。

0186

[第2の実施形態]
本発明の第2の実施形態について、図10図15を参照して説明する。

0187

第2の実施形態は、ネットワークスイッチ203が、疑似輻輳を発生させる処理を実行する点が第1の実施形態と異なる。

0188

すなわち、物理計算機300の物理NIC312を変更する場合、仮想計算機モニタ302が、受信バッファがオーバーフローしないようにするための疑似輻輳発生間隔を、物理計算機300に接続されるネットワークスイッチ203に通知し、ネットワークスイッチ203が当該通知に従って疑似輻輳を発生させる。

0189

以下、第1の実施形態との差異を中心に説明する。

0190

第2の実施形態のネットワークシステムの構成は第1の実施形態と同一であるため説明を省略する。また、サーバシステム204及び物理計算機300の構成も第1の実施形態と同一であるため説明を省略する。

0191

図10は、本発明の第2の実施形態のネットワークスイッチ203の内部構成の一例を説明するブロック図である。

0192

ネットワークスイッチ203は、CPU1100、アドレス用メモリ1101、パケット用メモリ1102、スイッチチップ1103、LAN(LOCALAREA NETWORK)ポート1104及びメモリ1120を備える。

0193

CPU1100は、メモリ1120に格納されたプログラムを実行する。

0194

アドレス用メモリ1101は、ネットワークアドレスに関する情報を格納する。具体的には、MAC(Media Access Control)アドレステーブル(図示省略)及びルーティングテーブル(図示省略)等が格納される。

0195

パケット用メモリ1102は、ネットワークスイッチが受信したデータパケットを一時的に格納するメモリである。

0196

スイッチチップ1103は、各種ネットワークの処理を実行する。具体的には、スイッチチップ1103は、LANポート1104にて受信したデータパケットを一旦パケット用メモリ1102への格納する処理、アドレス用メモリ1101から宛先アドレスのLANポート1104を検索する処理、LANポート1104へのデータパケットの引き渡し処理等を実行する。ネットワークスイッチ203自身宛の受信データを受信した場合には、CPU1100に引き渡し、受信データに従った処理が実行される。

0197

メモリ1120は、CPU1100によって実行されるプログラム及び当該プログラムを実行するために必要な情報を格納する。

0198

メモリ1120は、経路情報送信処理部1105、経路情報受信処理部1106、ルーティングテーブル管理部1107、AP動作保証処理部1108、AP−ネットワーク環境情報テーブル1109、疑似輻輳情報送信処理部1110及び疑似輻輳情報受信処理部1111を含む。

0199

経路情報送信処理部1105は、ルーティングテーブル管理部1107によって実行された処理結果、及び他のネットワークスイッチ203へ通知する必要があるデータの送信処理を実行する。

0200

経路情報受信処理部1106は、受信したデータパケットが自分宛であり、経路情報に関わるデータである場合に、ルーティングテーブル管理部1107に出力する。

0201

ルーティングテーブル管理部1107は、経路情報に従って、受信したデータパケットの転送処理を実行する。

0202

AP動作保証処理部1108は、サーバシステム204から受信したデータパケットがAP動作情報を含むデータである場合、当該データパケットに含まれるAP動作情報をAP−ネットワーク環境情報テーブル1109に格納し、受信するデータパケットの受信間隔の監視等の疑似輻輳処理を実行する。

0203

疑似輻輳情報受信処理部1111は、疑似輻輳に関する情報をサーバシステム204から受信する。さらに、疑似輻輳に関する情報を他のネットワークスイッチ203等から受信する。

0204

疑似輻輳情報送信処理部1110は、サーバシステム204から受信した疑似輻輳に関する情報を他のネットワークスイッチ203等に送信する。

0205

なお、ネットワークスイッチ203は、CPU1100及びメモリ1120の代わりに、CPU、ROM及びRAM等を備えるワンチップマイコンを備えてもよい。

0206

図11は、本発明の第2の実施形態のネットワークシステムにおけるサーバシステム204及びネットワークスイッチ203が実行する処理の流れを説明するシーケンス図である。

0207

仮想計算機301−1にインストールされたAP321−1の起動後の処理(ステップ400、ステップ401)、物理NIC312が変更される処理(ステップ405)は、図7と同一であるため説明を省略する。

0208

物理NIC312が変更されたことを検知した仮想計算機モニタ302は、AP321−1がインストールされた時点の物理NIC312の情報を構成履歴管理テーブル310から取得する(1200)。具体的には、構成履歴管理テーブル310のNIC904から、AP321−1がインストールされた時点の物理NIC312の帯域情報を取得する。

0209

仮想計算機モニタ302は、仮想NIC327−1に、取得された物理NIC312の帯域情報を送信する(1201)。さらに、仮想NIC327−1を介してネットワークスイッチ203へ取得された物理NIC312の帯域情報が送信される(1202)。

0210

仮想計算機モニタ302は、AP321−1の受信処理間隔をAP情報管理テーブル308から取得し、AP321−1の受信可能な帯域であるAP受信可能帯域を算出する(1203)。AP受信可能帯域は、例えば、AP321の受信処理間隔と受信データサイズとを乗算することによって算出される。

0211

算出されたAP受信可能帯域、取得されたAP321−1の受信処理間隔、及び仮想NIC327−1に割り当てられたネットワークアドレス等を含むAP動作情報を仮想NIC327−1に送信する(1204)。さらに、仮想NIC327−1を介してネットワークスイッチ203にAP動作情報が送信される(1205)。

0212

なお、仮想計算機モニタ302からネットワークスイッチ203に送信される物理NICの帯域情報及びAP動作情報は、同じデータパケットに含め、一度に送信してもよい。

0213

AP動作情報を受信したネットワークスイッチ203は、受信したAP動作情報に含まれる受信処理間隔、AP受信可能帯域及びネットワークアドレスを取得する(1206)。

0214

ネットワークスイッチ203は、取得されたネットワークアドレス(データ送信元1220)向けのデータパケットの受信間隔の計測を実行する(1207)。

0215

ネットワークスイッチ203は、計測結果に基づいて、疑似輻輳処理が必要であるか否かを判定する(1208)。なお、当該判定は、図7の406と同一の方法を用いる方法が考えられる。

0216

疑似輻輳処理が必要であると判定された場合、ネットワークスイッチ203は、取得されたネットワークアドレス向けのデータパケットの送信を一旦中断させるため、PAUSEコマンドをデータ送信元1220へ送信する(1209)。

0217

図12は、本発明の第2の実施形態の仮想計算機モニタ302が実行する性能差を解消するための処理を説明するフローチャートである。

0218

なお、仮想計算機モニタ302が実行する処理のうち、ステップ500〜ステップ513の処理は同一であるため説明を省略する。

0219

仮想計算機モニタ302は、構成履歴管理テーブル310から変更後の物理NIC312の性能情報(例えば、処理速度やプロトコル情報等)を取得する(ステップ514)。

0220

仮想計算機モニタ302は、AP情報管理テーブル308及び構成履歴管理テーブル310から、AP321がインストールされた時点のサーバシステム204のハードウェアの構成情報を取得する(ステップ515)。具体的には、AP321−1がインストールされた時点の物理NICの帯域情報が取得される。

0221

仮想計算機モニタ302は、取得された物理NIC312の帯域情報をネットワークスイッチ203へ送信する(ステップ1300)。なお、AP321がインストールされた時点のサーバシステム204における物理NIC312の情報として、仮想NIC327の帯域が送信されてもよい。

0222

仮想計算機モニタ302は、AP情報管理テーブル308からAP321−1の受信処理間隔及び受信バッファサイズ等を取得する(ステップ1301)。

0223

仮想計算機モニタ302は、取得されたAP321−1の受信処理間隔に基づいて、AP受信可能帯域を算出する(ステップ1302)。

0224

仮想計算機モニタ302は、ネットワークスイッチ203に、算出されたAP受信可能帯域、取得されたAP321−1の受信処理間隔、及び仮想NIC327−1に割り当てられたネットワークアドレス等を含むAP動作情報を送信する(ステップ1303)。

0225

その後、ステップ506からステップ508の処理を実行せずに、AP321−1が終了されるまで、ステップ505のAP動作情報のロギング処理を実行する。

0226

図13は、本発明の第2の実施形態のネットワークスイッチ203が実行する処理を説明するフローチャートである。

0227

ネットワークスイッチ203は、LANポート1104を介してデータパケットを受信したか否かを判定する(ステップ1400)。

0228

データパケットを受信していないと判定された場合、ネットワークスイッチ203は、ステップ1400に戻り、データパケットを受信するまで待ち続ける。

0229

データパケットを受信したと判定された場合、ネットワークスイッチ203は、受信したデータパケットをパケット用メモリ1102に格納し、受信したデータパケットが自分(ネットワークスイッチ203)宛であるか否かを判定する(ステップ1401)。

0230

受信したデータパケットが自分宛でないと判定された場合、ネットワークスイッチ203は、スイッチング処理を実行し(ステップ1404)、ステップ1400に戻る。なお、スイッチング処理の詳細は、図14を用いて後述する。

0231

受信したデータパケットが自分宛であると判定された場合、ネットワークスイッチ203は、受信したデータパケットが経路情報に関するデータであるか否かを判定する(ステップ1402)。

0232

受信したデータパケットが経路情報に関するデータであると判定された場合、ネットワークスイッチ203は、ルーティング情報処理を実行する(ステップ1403)。当該処理は、ルーティングテーブル管理部1107によって実行される。

0233

受信したデータパケットが経路情報に関するデータではないと判定された場合、ネットワークスイッチ203は、受信したデータパケットがAP動作情報であるか否かを判定する(ステップ1405)。

0234

受信したデータパケットがAP動作情報でないと判定された場合、ネットワークスイッチ203は、ステップ1400に戻る。

0235

受信したデータパケットがAP動作情報であると判定された場合、ネットワークスイッチ203は、受信したデータパケットから、AP受信可能帯域、AP321−1における変更前の物理NIC312の帯域情報、AP321−1の受信処理間隔等を取得する(ステップ1406)。

0236

ネットワークスイッチ203は、AP動作情報から取得された情報に基づいて、データパケット送信元である仮想計算機301−1へのデータパケットの監視処理を開始する(ステップ1407)。

0237

図14は、本発明の第2の実施形態のネットワークスイッチ203によって実行されるスイッチング処理を説明するフローチャートである。

0238

ネットワークスイッチ203のスイッチチップ1103は、受信したデータパケットに含まれる通信先アドレス情報を取得し、アドレス用メモリ1101に格納されるルーティングテーブル(図示省略)を検索する(ステップ1500)。

0239

ネットワークスイッチ203は、前述の検索結果に基づいて、受信したデータパケットが監視対象の仮想計算機301−1宛に送信されるデータパケットであるか否かの判定処理を実行する(ステップ1501)。

0240

ネットワークスイッチ203は、判定処理の結果が受信したデータパケットが監視対象の仮想計算機301−1宛に送信されるデータパケットであるか否かを判定する(ステップ1502)。

0241

受信したデータパケットが監視対象の仮想計算機301−1宛に送信されるデータパケットでないと判定された場合、ネットワークスイッチ203は、ステップ1502に戻る。

0242

受信したデータパケットが監視対象の仮想計算機301−1宛に送信されるデータパケットであると判定された場合、ネットワークスイッチ203は、現在の時刻を取得し、受信したデータパケットにタイムスタンプを付与し、また、受信データパケット数をカウントアップする(ステップ1503)。

0243

ネットワークスイッチ203は、データパケットを受け取った間隔である受信間隔を算出し、また、受信したデータパケットの仮想計算機301−1宛てのデータパケット数を確認する(ステップ1504)。

0244

具体的には、ネットワークスイッチ203は、前回データパケットを受信した時刻とステップ1503において取得された時刻に基づいて受信間隔を算出する。また、データパケット数は、データパケットを送信先に出力したときにカウントダウンされ、パケット用メモリ1102にバッファリングされるデータパケット数が送信先毎に管理される。

0245

ネットワークスイッチ203は、算出されたデータパケット受信間隔及びデータパケット数に基づいて、AP321−1が受信処理可能な範囲であるか否かを判定する(ステップ1505)。

0246

例えば、変更前の物理NIC312(又は仮想NIC327−1)の帯域が100Mbpsであり、受信処理間隔が100msであり、変更後の物理NIC312の帯域が1Gbpsである場合、ネットワークスイッチ203が受信するデータパケットの受信間隔は10msと算出される。このとき、データパケット数が10データパケットである場合、仮想計算機301−1の仮想NIC327−1の受信バッファ325−1にオーバーフローが起こる可能性があるため、AP321−1が受信処理可能な範囲でないと判定される。つまり、疑似輻輳を発生させる必要があると判定される。

0247

AP321−1が受信処理可能な範囲であると判定された場合、ネットワークスイッチ203は、処理を終了する。

0248

AP321−1が受信処理可能な範囲でないと判定された場合、ネットワークスイッチ203は、AP321−1宛にデータパケットを送信する通信相手に対して疑似輻輳発生を通知し(ステップ1506)、処理を終了する。

0249

具体的には、ネットワークスイッチ203は、AP321−1宛にデータパケットを送信する通信相手にPAUSEコマンドを送信する。

0250

これによって、AP321−1宛にデータパケットを送信する通信相手からのデータパケットの送信を一時停止させることができる。

0251

図15は、ネットワークスイッチ203が管理するAP−ネットワーク環境情報テーブル1109のフォーマットの一例を示す説明図である。

0252

AP−ネットワーク環境情報テーブル1109は、ポート1601、MACアドレス1602、IPアドレス1603、速度1604、AP受信間隔1605、AP受信データ数1606、受信時刻1607及び受信間隔1608を含む。

0253

ポート1601は、LANポート1104のポート番号である。MACアドレス1602は、監視対象の仮想計算機301に割り当てられるMACアドレスである。なお、当該MACアドレスは仮想計算機モニタ302によって割り当てられる。

0254

IPアドレス1603は、監視対象の仮想計算機301に割り当てられているIPアドレスである。なお、当該IPアドレスは、仮想計算機モニタ302によって割り当てられる。

0255

速度1604は、AP321が使用する物理NIC312(又は仮想NIC327)の帯域である。AP受信間隔1605は、AP321の受信処理可能間隔である。AP受信データ数1606は、ネットワークスイッチ203にバッファリングされる各仮想計算機301宛のデータパケット数である。

0256

受信時刻1607は、ネットワークスイッチ203が各仮想計算機301宛のデータパケットを受信した時刻である。受信間隔1608は各仮想計算機301宛のデータパケットの受信間隔である。

0257

なお、第2の実施形態では、仮想計算機モニタ302によってAP受信可能帯域が算出されたが、ネットワークスイッチ203がAP動作情報に含まれるAP321−1の受信処理間隔に基づいて、AP受信可能帯域を算出してもよい。これによって、仮想計算機モニタ302の処理負担を低減することができる。

0258

第2の実施形態によれば、ネットワークスイッチ203が、物理NIC312が変更された場合に、仮想計算機モニタ302から送信される情報に基づいて、変更前の物理NIC312と変更後の物理NIC312との性能差を考慮して疑似輻輳を発生させることによって、受信データのフロー制御を行うことができる。これによって、ネットワークの高速化によって発生するアプリケーションの異常稼働や異常終了を防止することができる。

0259

100ソフトウェア
101仮想計算機モニタ
102仮想計算機
106アプリケーション動作情報
107、108ハードウェア
109ハードウェア性能差分情報
110 性能差解消処理部
111疑似輻輳情報受信処理部
200 DC
201外部ネットワーク
202ルータ
203ネットワークスイッチ
204サーバシステム
205ストレージ装置
206ネットワーク
300物理計算機
301 仮想計算機
302 仮想計算機モニタ
303 送信モニタ
304受信モニタ
305 性能差解消処理部
306 疑似輻輳処理部
307AP情報管理部
308 AP情報管理テーブル
309 構成履歴管理部
310 構成履歴管理テーブル
312物理NIC
320内部バス
321AP
322ゲストOS
323仮想ドライバ
324送信バッファ
325受信バッファ
327仮想NIC
328ルーティング部
329 処理部
330 CPU
331メモリ
332不揮発性記憶媒体
1100 CPU
1101アドレス用メモリ
1102パケット用メモリ
1103スイッチチップ
1104LANポート
1105経路情報送信処理部
1106 経路情報受信処理部
1107ルーティングテーブル管理部
1108 AP動作保証処理部
1109 AP−ネットワーク環境情報テーブル
1110 疑似輻輳情報送信処理部
1111 疑似輻輳情報受信処理部
1120 メモリ

ページトップへ

この技術を出願した法人

この技術を発明した人物

ページトップへ

関連する挑戦したい社会課題

該当するデータがありません

関連する公募課題

該当するデータがありません

ページトップへ

技術視点だけで見ていませんか?

この技術の活用可能性がある分野

分野別動向を把握したい方- 事業化視点で見る -

(分野番号表示ON)※整理標準化データをもとに当社作成

ページトップへ

おススメ サービス

おススメ astavisionコンテンツ

新着 最近 公開された関連が強い技術

この 技術と関連性が強い技術

関連性が強い 技術一覧

この 技術と関連性が強い人物

関連性が強い人物一覧

この 技術と関連する社会課題

該当するデータがありません

この 技術と関連する公募課題

該当するデータがありません

astavision 新着記事

サイト情報について

本サービスは、国が公開している情報(公開特許公報、特許整理標準化データ等)を元に構成されています。出典元のデータには一部間違いやノイズがあり、情報の正確さについては保証致しかねます。また一時的に、各データの収録範囲や更新周期によって、一部の情報が正しく表示されないことがございます。当サイトの情報を元にした諸問題、不利益等について当方は何ら責任を負いかねることを予めご承知おきのほど宜しくお願い申し上げます。

主たる情報の出典

特許情報…特許整理標準化データ(XML編)、公開特許公報、特許公報、審決公報、Patent Map Guidance System データ