(57)【要約】【課題】Ｉ／Ｏデバイス単位に限定されず、アプリケーションや仮想マシンごとにグループ化された単位での性能を測定できるＩ／Ｏバスシステムを提供する。【解決手段】ＣＰＵ１０１ａ−１０１ｃとＩ／Ｏデバイス１０２−１０４間でデータを転送するＩ／Ｏバスシステム上を流れるデータをアプリケーションや仮想マシン単位でグループ化するグループ化手段となるグループ化ＩＤ設定部１１３ａ−１１３ｆ、グループ単位でトラヒックをモニタするトラヒックモニタ部１４０とを有する。グループＩＤ設定手段は、グループ化する条件を保持するグループ管理テーブルに保持されたグループ化する条件に従って割り当てるグループＩＤを決定することができる。【選択図】図１
2008181387.tif 000002
【特許請求の範囲】
【請求項１】
ＣＰＵとＩ／Ｏデバイス間でデータを転送するＩ／Ｏバスシステムであって、
転送される前記データをモニタし、モニタしたデータの内容に応じてグループ化し、グループのグループＩＤを前記データに付与するグループＩＤ設定手段と、前記グループＩＤ設定手段で付与されたグループＩＤごとにトラヒックをモニタするトラヒックモニタ手段と、を備えたことを特徴とするＩ／Ｏバスシステム。
【請求項２】
前記グループＩＤ設定手段は、グループ化する条件を保持するグループ管理テーブルに保持された該グループ化する条件に従って、割り当てるグループＩＤを決定することを特徴とする請求項１に記載のＩ／Ｏバスシステム。
【請求項３】
前記データの内容は前記データのヘッダに含まれる情報である請求項１又は２に記載のＩ／Ｏバスシステム。
【請求項４】
前記データの内容は、前記データのＴＣＰポート番号であり、前記グループＩＤ設定手段は、該ＴＣＰポート番号ごとにグループ化を行い、前記グループＩＤを決定することを特徴とする請求項１又は２に記載のＩ／Ｏバスシステム。
【請求項５】
前記データの内容は、前記データ内のコマンド識別子であり、前記グループＩＤ設定手段は、該コマンド識別子ごとにグループ化を行い、前記グループＩＤを決定することを特徴とする請求項１又は２に記載のＩ／Ｏバスシステム。
【請求項６】
前記データの内容は、前記データ内のバス番号とデバイス番号であり、前記グループＩＤ設定手段は、該バス番号とデバイス番号ごとにグループ化を行い、前記グループＩＤを決定することを特徴とする請求項１又は２に記載のＩ／Ｏバスシステム。
【請求項７】
前記グループＩＤ設定手段は、転送データの内容をモニタするデータモニタ手段と、モニタしたデータ内容に基づき、前記グループ管理テーブルに保持されたグループ化条件に従って割り当てるグループＩＤを決定するグループＩＤ決定手段と、モニタした前記データに該グループＩＤを付与するグループＩＤ付与手段と、を備えたことを特徴とする請求項１から６のいずれか１項に記載のＩ／Ｏバスシステム。
【請求項８】
前記トラヒックモニタ手段がモニタしたトラヒック情報をグループ対象の種類に応じた性能指標へ変換する性能指標変換手段を備えたことを特徴とする請求項１から７のいずれか１項に記載のＩ／Ｏバスシステム。
【請求項９】
前記グループ対象に応じた性能指標は、アプリケーションの単位時間当たりの処理件数であることを特徴とする請求項８に記載のＩ／Ｏバスシステム。
【請求項１０】
前記グループ対象に応じた性能指標は、Ｉ／Ｏデバイスの単位時間当たりの処理件数であることを特徴とする請求項８に記載のＩ／Ｏバスシステム。
【請求項１１】
前記グループ対象に応じた性能指標は、Ｉ／Ｏデバイスの処理時間であることを特徴とする請求項８に記載のＩ／Ｏバスシステム。
【請求項１２】
前記性能指標変換手段が変換した性能指標を正常値であるか判断する性能指標判断手段を備えたことを特徴とする請求項８から１１のいずれか１項に記載のＩ／Ｏバスシステム。
【請求項１３】
前記性能指標変換手段は要求された性能をトラヒックに変換し、
該変換されたトラヒックとグループの優先度に基づいて、グループごとに割り当てるトラヒックを決定するグループトラヒック管理手段を備えたことを特徴とする請求項８から１２のいずれか１項に記載のＩ／Ｏバスシステム。
【請求項１４】
前記グループＩＤ設定手段を複数有し、前記グループＩＤ設定手段間をスイッチで接続し、前記スイッチ内に前記トラヒックモニタ手段及びトラヒックを制御するトラヒック制御手段を備えたことを特徴とする請求項１から１３のいずれか１項に記載のＩ／Ｏバスシステム。
【請求項１５】
前記スイッチがイーサーネット（Ｅｔｈｅｒｎｅｔ）対応であることを特徴とする請求項１４に記載のＩ／Ｏバスシステム。
【請求項１６】
前記グループとしてイーサーネット（Ｅｔｈｅｒｎｅｔ）のＶＬＡＮを利用することを特徴とする請求項１５に記載のＩ／Ｏバスシステム。
【請求項１７】
前記グループＩＤ設定手段においてプロトコル変換を行うことを特徴とする請求項１から１６のいずれか１項に記載のＩ／Ｏバスシステム。
【請求項１８】
前記性能指標変換手段が作成した性能指標に基づいてリソース割当を計算し、リソース割当を設定するリソース管理手段を備えたことを特徴とする請求項８から１７のいずれか１項に記載のＩ／Ｏバスシステム。
【請求項１９】
前記トラヒックモニタ手段によりモニタされたトラヒックに基づいてリソース割当を計算し、リソース割当を設定するリソース管理手段を備えたことを特徴とする請求項１から１７のいずれか１項に記載のＩ／Ｏバスシステム。
【請求項２０】
ＣＰＵとＩ／Ｏデバイス間でデータを転送するＩ／ＯバスシステムのＩ／Ｏバスシステム管理方法において、
転送される前記データの内容をモニタし、モニタしたデータの内容に応じてグループ化し、設定されたグループを単位としてトラヒックをモニタすることを特徴とするＩ／Ｏバスシステム管理方法。
【請求項２１】
ＣＰＵとＩ／Ｏデバイス間でデータを転送するＩ／ＯバスシステムのＩ／Ｏバスシステム管理方法において、
転送される前記データの内容をモニタし、モニタしたデータの内容とグループ管理テーブルに登録されたグループ条件とが一致したグループのグループＩＤを該データに付与し、前記グループＩＤごとにトラヒックをモニタすることを特徴とするＩ／Ｏバスシステム管理方法。
【請求項２２】
転送される前記データのＴＣＰポート番号をモニタし、該ＴＣＰポート番号ごとにグループを割り当て、前記グループＩＤを付与することを特徴とする請求項２１に記載のＩ／Ｏバスシステム管理方法。
【請求項２３】
転送される前記データ内のコマンド識別子をモニタし、該コマンド識別子ごとにグループを割り当て、前記グループＩＤを付与することを特徴とする請求項２１に記載のＩ／Ｏバスシステム管理方法。
【請求項２４】
転送される前記データ内のバス番号とデバイス番号をモニタし、該バス番号とデバイス番号ごとにグループを割り当て、前記グループＩＤを付与することを特徴とする請求項２１に記載のＩ／Ｏバスシステム管理方法。
【請求項２５】
前記グループＩＤごとにトラヒックをモニタした後、モニタしたトラヒック情報をグループ対象の種類に応じた性能指標へ変換することを特徴とする請求項２１から２３のいずれか１項に記載のＩ／Ｏバスシステム管理方法。
【請求項２６】
前記グループ対象に応じた性能指標は、アプリケーションの単位時間当たりの処理件数であることを特徴とする請求項２５に記載のＩ／Ｏバスシステム管理方法。
【請求項２７】
前記グループ対象に応じた性能指標は、Ｉ／Ｏデバイスの単位時間当たりの処理件数であることを特徴とする請求項２５に記載のＩ／Ｏバスシステム管理方法。
【請求項２８】
前記グループ対象に応じた性能指標は、Ｉ／Ｏデバイスの処理時間であることを特徴とする請求項２５に記載のＩ／Ｏバスシステム管理方法。
【請求項２９】
モニタしたトラヒック情報をグループ対象の種類に応じた性能指標へ変換した後、グループ対象の種類に応じた性能指標を正常値であるか判断することを特徴とする請求項２５から２８のいずれか１項に記載のＩ／Ｏバスシステム管理方法。
【請求項３０】
モニタしたトラヒック情報をグループ対象の種類に応じた性能指標へ変換した後、性能指標に応じたリソース割当を計算し、リソース割当結果に応じてリソースを設定することを特徴とする請求項２５から２８のいずれか１項に記載のＩ／Ｏバスシステム管理方法。
【請求項３１】
モニタしたトラヒック情報に応じたリソース割当を計算し、リソース割当結果に応じてリソースを設定することを特徴とする請求項２５から２８のいずれか１項に記載のＩ／Ｏバスシステム管理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＣＰＵとＩ／Ｏデバイスを接続するＩ／Ｏバスシステム及びその管理方法に関し、Ｉ／Ｏデバイスの使用状況を管理することができるＩ／Ｏバスシステム及びその管理方法に関する。
【背景技術】
【０００２】
従来、この種のＩ／Ｏバスシステムに関連する技術として、例えば特許文献１に記載されるアービタにより各機能ブロックに割り当てるバス占有時間をモニタ及び制御するバスシステムがある。
【０００３】
図１７は、特許文献１に記載されるバスシステムの構成を示すブロック図である。図１７に示すバスシステムは、ＣＰＵ９２０、アービタ９１０及びＩ／Ｏデバイス９４１−９４３がＩ／Ｏバス９３０に接続されている。アービタ９１０は、バスモニタ部９１１、デバイス情報管理部９１２及びバス使用権管理部９１３から構成される。
【０００４】
バスモニタ部９１１は、Ｉ／Ｏバス９３０をモニタし、Ｉ／Ｏデバイスバス９４１−９４３を占有しているクロック数とデータ転送長を取得する。デバイス情報管理部９１２は、バスモニタ部９１１が取得したクロック数とデータ転送長からＩ／Ｏデバイス９４１−９４３が占有している実質帯域を計算し、この実質帯域に応じてバス占有時間を決定する。バス使用権管理部９１３は、デバイス情報管理部９１２が決定したバス占有時間に従い各Ｉ／Ｏデバイスに対してバスの使用権を与える。
【０００５】
次に上記Ｉ／Ｏバスシステムの動作を説明する。バスモニタ部９１１は、Ｉ／Ｏバス９３０をモニタし、それぞれのＩ／ＯデバイスがＩ／Ｏバスを占有しているクロック数とその間のデータ転送長を取得し、このクロック数とデータ転送長を、デバイス情報管理部９１２へ通知する。デバイス情報管理部９１２は、クロック数とデータ転送長から実際にＩ／Ｏデバイスが使用した実質帯域を計算する。実質帯域の計算の結果、例えば、Ｉ／Ｏデバイス９４１の実質帯域が、この時点での割当帯域より小さく、Ｉ／Ｏデバイス９４２の実質帯域が割当帯域より大きい場合は、デバイス情報管理部９１２は、Ｉ／Ｏデバイス９４１のバス占有時間を短縮し、Ｉ／Ｏデバイス９４２のバス占有時間を拡大する。この新たに決定したバス占有時間を、デバイス情報管理部９１２は、バス使用権管理部９１３へ通知する。バス使用権管理部９１３は、デバイス情報管理部９１２が決定したバス占有時間に従い、各Ｉ／Ｏデバイスに対してバスの使用権を与える。
【０００６】
以上の動作により、実際に利用されているバス帯域をモニタし、その結果に応じて各Ｉ／Ｏデバイスのバス占有時間を制御することができる。
【０００７】
また、特許文献２には、複数のアクセスモジュールを光バスで接続するＡＴＭスイッチにおいて、複数のアクセスモジュールを、グループ毎のトラヒック量が均等になるように、複数のグループに分割することの記載がある。特許文献３には、ＬＡＮ制御装置と複数のハブ装置とが二本のバスに接続され、ＬＡＮ制御装置はハブ装置を複数をグループに分け、バスを介したトラヒックを監視し、トラヒックに応じてグループ分割数を決定することの記載がある。しかし、特許文献２及び３ではデータをデータの内容（アプリケーションや仮想マシン単位等）でグループ化していない。
【０００８】
また特許文献４には、通信性能測定装置が計数用パケットを一定時間間隔で送受信しラウンドトリップタイムを測定し、直前のラウンドトリップタイムよりも長くなる割合を調査し、その割合に基づいてネットワーク経路の利用可能帯域幅が予め規定された値を超えているかを判断する性能判定を行うことの記載がある。特許文献５には、評価サーバがネットワーク上の測定ポイントでパス帯域幅、スループット、グッドプット、パケット損失レート等の性能評価量の組を生成することの記載がある。しかし、モニタしたトラヒック情報をグループ対象の種類に応じた性能指標へ変換することの記載はない。
【特許文献１】特開２００３−３０１３３号公報
【特許文献２】特開２０００−０６９０４８号公報（段落番号［００２８］、［００２９］等）
【特許文献３】特開平７−１０７０９９号公報（請求項１，３、段落番号［００１６］等）
【特許文献４】特開２０００−１０６５５７号公報（段落番号［００１８］等）
【特許文献５】特開２００１−１９７０８５号公報（段落番号［００２０］−［００２２］等）
【発明の開示】
【発明が解決しようとする課題】
【０００９】
上述したＩ／Ｏバスシステムでは、以下のような課題が存在する。
第１の課題は、複数のＩ／Ｏデバイスを組み合わせて動作する仮想マシンやアプリケーション単位での性能管理ができないことである。
【００１０】
その理由は、管理対象がＩ／Ｏデバイス単位であるためである。
【００１１】
第２の課題は、Ｉ／Ｏデバイス以外の粒度で帯域を測定しようとするとＣＰＵの負荷を消費することである。例えば、仮想化技術によりＣＰＵ上で複数の仮想マシンが動作している場合に、仮想マシンごとのＩ／Ｏデバイスの使用状況を把握しようとするとＣＰＵの負荷を消費してしまうことである。
【００１２】
その理由は、仮想マシンごとのＩ／Ｏデバイスの使用状況をモニタするために、ＣＰＵ上で動作している仮想化ソフトウェア内のスケジューラをモニタする必要があるためである。
【００１３】
第３の課題は、Ｉ／Ｏデバイス以外の粒度で帯域を測定しようとすると測定精度が低くなることである。例えば、仮想化技術によりＣＰＵ上で複数の仮想マシンが動作している場合に、仮想マシンごとのＩ／Ｏデバイスの性能状況を把握しようとすると測定精度が低くなるということである。
【００１４】
その理由は、仮想マシンとＩ／Ｏデバイスの関連付けを仮想化ソフトウェアが行うためである。一般的にソフトウェア処理はＯＳが制御可能なタイマ精度に依存する。ＯＳで制御可能なタイマ精度が低いため、仮想マシンごとのＩ／Ｏデバイスの使用状況の測定精度も低くなる。
【００１５】
第４の課題は、複数のＩ／Ｏデバイスが存在し、Ｉ／Ｏデバイスの使用状況に偏りがある場合に、システム全体としてＩ／Ｏデバイスの使用効率を向上させることができないことである。
【００１６】
その理由は、制御できる項目がトラヒック帯域であるため、アプリケーションや仮想マシンに割り当てられたＩ／Ｏデバイスを変更する手段が設けられていないためである。
（本発明の目的）
本発明の目的は、Ｉ／Ｏデバイスの使用状況を精度よく測定できるＩ／Ｏバスシステムを提供することにある。
【００１７】
また、本発明の他の目的は、ＣＰＵ負荷を抑えてＩ／Ｏデバイスの使用状況を測定できるＩ／Ｏバスシステムを提供することにある。
【００１８】
さらに、本発明の他の目的は、仮想マシンごとやアプリケーションごとのような様々な対象ごとに性能状況を測定できるＩ／Ｏバスシステムを提供することにある。
【００１９】
さらに、本発明の他の目的は、Ｉ／Ｏデバイスの使用状況に偏りがある場合でも、システム全体としてＩ／Ｏデバイスの使用効率を向上させることができるＩ／Ｏバスシステムを提供することにある。
【課題を解決するための手段】
【００２０】
本発明のＩ／Ｏバスシステムは、ＣＰＵとＩ／Ｏデバイス間でデータを転送するＩ／Ｏバスシステムであって、
転送される前記データをモニタし、モニタしたデータの内容に応じてグループ化し、グループのグループＩＤを前記データに付与するグループＩＤ設定手段と、前記グループＩＤ設定手段で付与されたグループＩＤごとにトラヒックをモニタするトラヒックモニタ手段と、を備えたことを特徴とする。
【００２１】
本発明のＩ／Ｏバスシステム管理方法は、ＣＰＵとＩ／Ｏデバイス間でデータを転送するＩ／ＯバスシステムのＩ／Ｏバスシステム管理方法において、
転送される前記データの内容をモニタし、モニタしたデータの内容に応じてグループ化し、設定されたグループを単位としてトラヒックをモニタすることを特徴とする。
【発明の効果】
【００２２】
本発明によれば、アプリケーションや仮想マシンごとにグループ化された単位での性能を測定できることである。その理由は、アプリケーションや仮想マシンごとにグループを割り当て、グループごとのトラヒックをモニタしているためである。
【発明を実施するための最良の形態】
【００２３】
次に、発明を実施するための最良の形態について図面を参照して説明する。
【００２４】
［第１の実施形態］
図１を参照すると、本実施形態のＩ／Ｏバスシステム１は、グループＩＤ設定手段となるグループＩＤ設定部１１３ａ−１１３ｆ、トラヒックモニタ手段となるトラヒックモニタ部１４０を含んで構成される。Ｉ／Ｏバスシステム１は、ＣＰＵ１０１ａ−１０１ｃ及びＩ／Ｏデバイス１０２−１０４に接続される。
【００２５】
グループＩＤ設定手段１１３ａ−１１３ｆは、ＣＰＵ１０１ａ−１０１ｃとＩ／Ｏデバイス１０２−１０４間とで転送される転送データの内容をモニタし、モニタしたデータ内容を予め設定されたグループ化条件に基づき、割り当てるグループＩＤを決定し、データにグループＩＤ（グループ識別子）を付与する。トラヒックモニタ部１４０は、付与されたグループＩＤに基づいてグループごとにトラヒックをモニタする。ここでは詳述しないが、モニタされたトラヒックに基づいて、公知の手法を用いてグループごとにトラヒックを制御することができる。トラヒックをモニタするための実現方法としては、例えば、ＥｔｈｅｒｎｅｔのＶＬＡＮ（Ｖｉｒｔｕａｌ  ＬＡＮ）を利用する方法がある。
【００２６】
次にグループＩＤ設定部の構成について説明する。
【００２７】
図２は、グループＩＤ設定部の構成例を示すブロック図である。なお、図２ではグループＩＤ設定部１１３ａ−１１３ｆのうちのグループＩＤ設定部１１３ａの構成を示しているが、グループＩＤ設定部１１３ｂ−１１３ｆも同様な構成である。
【００２８】
図２において、グループＩＤ設定部１１３ａは、データモニタ部１５１、グループＩＤ決定部１５２及びグループＩＤ付与部１５３から構成される。データモニタ部１５１は、転送データの内容をモニタする。グループＩＤ決定部１５２は、データモニタ部１５１によりモニタしたデータ内容を予め設定されたグループ化条件に基づき割り当てるグループＩＤを決定する。グループＩＤ付与部１５３は、決定されたグループＩＤをデータに付与する。
【００２９】
次に、図１のグループＩＤ設定部の動作について、図３のフローチャートを参照して説明する。
【００３０】
図３は、グループＩＤ設定部がグループＩＤを付与する動作を示したフローチャートである。
【００３１】
グループＩＤ設定部１１３ａ−１１３ｆは、それぞれＩ／Ｏバスへ転送されるデータをモニタし（ステップＳ１１１）、データ内容がグループ条件と一致するか判断し（ステップＳ１１２）、グループ条件と一致した場合は一致したグループのグループＩＤをデータに付与する（ステップＳ１１３）。ステップＳ１１２において、グループ条件と一致しない場合はグループＩＤを付与せず、そのままデータを転送する（ステップＳ１１４）。
そして、トラヒックモニタ部１４０は、付与されたグループＩＤに基づいてグループごとにトラヒックをモニタする。
【００３２】
次に、ＣＰＵ１０１ａ−１０１ｃ及びＩ／Ｏデバイス１０２−１０４をＰＣＩ  Ｅｘｐｒｅｓｓに対応させた場合の構成例について説明する。ＣＰＵ１０１ａ−１０１ｃ及びＩ／Ｏデバイス１０２−１０４はＰＣＩ  Ｅｘｐｒｅｓｓのアドレス（バス番号、デバイス番号）を有し、グループＩＤ設定部１１３ａ−１１３ｆはＥｔｈｅｒｎｅｔ（登録商標）のＭＡＣアドレスを有する。初期設定時などにＰＣＩ  ＥｘｐｒｅｓｓのアドレスをＥｔｈｅｒｎｅｔフレームにカプセル化して送信することで、これら２つのアドレスの対応関係を取得することができる。
【００３３】
トラヒックモニタ部１４０は、ソフトウェア処理でもよいがハードウェア処理を行えば高速な処理を行うことができる。
【００３４】
トラヒックモニタの対象としては、例えば、スイッチポート及びＶＬＡＮごとの帯域、パケット損率及びパケットサイズがある。
【００３５】
図４を参照すると、グループＩＤとしてＶＬＡＮ  ＩＤを設定するグループＩＤ設定部１１３ａの構成が示されている。グループＩＤ設定部１１３ａ以外のグループＩＤ設定部１１３ｂ−１１３ｆもそれぞれ同様な構成を有している。
グループＩＤ設定部１１３ａは、ＰＣＩ  Ｅｘｐｒｅｓｓ処理部２５１、データモニタ部２５２、プロトコル変換部２５６、グループＩＤ処理部２５３、イーサーネット（Ｅｔｈｅｒｎｅｔ）処理部２５４（イーサーネットは登録商標）及び送受信部２５５で構成される。
【００３６】
ＰＣＩ  Ｅｘｐｒｅｓｓ処理部２５１は、ネットワークへ送信する場合は、ＰＣＩ  Ｅｘｐｒｅｓｓのヘッダ内容から宛先及び送信元を特定する識別子としてバス番号及びデバイス番号をモニタする。逆に、ネットワークから受信する場合は、宛先及び送信元のＭＡＣアドレスに応じたＰＣＩ  Ｅｘｐｒｅｓｓのバス番号及びデバイス番号を付与する。
【００３７】
データモニタ部２５２は、データの内容をモニタし、このデータを処理するアプリケーション及びコマンド種類を識別する。アプリケーションを識別する実現方法としては、例えば、データ内のＴＣＰポート番号をモニタする方法がある。また、コマンド種類を識別する方法としては、例えば、ヘッダ内のコマンドタイプをモニタする方法がある。
【００３８】
図１６はＰＣＩ  Ｅｘｐｒｅｓｓのヘッダフォーマットの構成を示す図である。図１６のヘッダフォーマットの情報において、“R”は予約、未使用を示し、“Fmt”はパケットフォーマットの種類を示し、“Type”はパケットの命令種類を示し、“TC”はトラヒッククラスを示し、“TD”はＴＬＰダイジェスト使用、未使用を示すビットであり、“EP”はデータ異常を示すビットであり、“Length”はパケット長を示し、“Bus Number”はバス番号を示し、“Device Number”はデバイス番号を示し、“Function Number”はファンクション番号を示す。ヘッダ情報の“Type”により、コマンドタイプ（コマンド種類）をモニタすることができ、“Bus Number”、“Device Number”、“Function Number”により、デバイス種類をモニタすることができる。
【００３９】
この他にもデータ内容を識別する粒度として、ＰＩＯ（Ｐｒｏｇｒａｍｍｅｄ  ＩＯ）とＤＭＡ（Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ）によるデータ転送方式、仮想マシンなどがある。
プロトコル変換部２５６は、ＣＰＵ又はＩ／Ｏデバイス側のプロトコルとバス側のプロトコルの変換を行う。この変換の際には、図１８に示すようなアドレス変換テーブルを参照する。図１８に示したアドレス変換テーブルはＣＰＵ又はＩ／Ｏデバイス側のプロトコルとしてＰＣＩ  Ｅｘｐｒｅｓｓを、バス側ネットワークのアドレスとしてＥｔｈｅｒｎｅｔを利用する場合の例である。図１８を参照すると、例えば、ＰＣＩ  ＥｘｐｒｅｓｓでのバスＩＤ＝１、デバイスＩＤ＝１というアドレスにはＥｔｈｅｒｎｅｔの００：１１：２２：３３：４４：５５というアドレスが対応することがわかる。
【００４０】
ＶＬＡＮ  ＩＤ処理部２５３は、モニタしたデータ内容とグループ管理テーブルのグループ条件にもとづいてデータに付与するＶＬＡＮ  ＩＤを決定する。
【００４１】
Ｅｔｈｅｒｎｅｔ処理部２５４は、Ｅｔｈｅｒｎｅｔの宛先の付与及び送信元アドレスのモニタを行い、ＶＬＡＮ  ＩＤを付与又は除去する。
【００４２】
送受信部２５５は、ネットワークのプロトコルの規格に従い、データの送受信を行う。
【００４３】
グループ管理テーブルの内容を図５に示す。図５に示すグループＩＤ管理テーブルは、グループＩＤとしてのＶＬＡＮ  ＩＤ、そのグループに属するためのグループ条件及びグループに割り当てられる帯域が登録されている。図５をみると、第１行目は、ＴＣＰポート番号＝５４３２１のデータに対してＶＬＡＮ  ＩＤ＝１１が割り当てられることがわかる。またＶＬＡＮ  ＩＤ＝２１のように、複数の条件を組み合わせて条件を定義してもよい。また、ＶＬＡＮ  ＩＤ＝３１のように、条件の定義はＡＮＤ、ＯＲ、ＮＯＴ等どのような条件であってもよい。また、ＶＬＡＮ条件ごとに優先度を設定することで、一つのデータが複数のＶＬＡＮの条件を満足する場合であっても、どのＶＬＡＮ  ＩＤを割り当てるか決定することができる。
【００４４】
次に、ＣＰＵ１０１ａ−１０１ｃ及びＩ／Ｏデバイス１０２−１０４をＰＣＩ  Ｅｘｐｒｅｓｓに対応させた場合の構成例の動作を説明する。
【００４５】
Ｉ／Ｏバスシステム１上を転送するデータとして、ＣＰＵ１０１ａ上で動作しているデータベースアプリケーション（ＴＣＰポート番号５４３２１を利用）からＩ／Ｏデバイス１０３（デバイスＩＤ＝３）へ転送されるデータを考える。
【００４６】
はじめに、ＣＰＵ１０１ａからのデータはグループＩＤ設定部１１３ａにおいて、図３の手順に従いＶＬＡＮ  ＩＤが付与される。具体的には、データのＴＣＰポート番号をモニタし（ステップＳ１１１）、その結果、ＴＣＰポート番号として５４３２１を取得する。このＴＣＰポート番号がグループ管理テーブル内のグループ条件と一致するＶＬＡＮ  ＩＤがあるか検索し（ステップＳ１１２）、その結果、ＶＬＡＮ  ＩＤ＝１１を決定する。Ｅｔｈｅｒｎｅｔ処理部２５４が、データに対してＶＬＡＮ  ＩＤ＝１１を付与して（ステップＳ１１３）Ｅｔｈｅｒｎｅｔフレームにカプセル化してデータを転送する。このとき宛先アドレスとして、デバイスＩＤに対応するＭＡＣアドレスを検索し、付与する。グループ条件と一致しない場合はグループＩＤを付与せず、そのままデータを転送する（ステップＳ１１４）。
【００４７】
そして、トラヒックモニタ部１４０が、ＶＬＡＮごとにトラヒックをモニタする。モニタしたトラヒック情報から、公知の手法を用いてグループごとにトラヒックを制御することができる。
【００４８】
トラヒックモニタ部１４０は、ＶＬＡＮ  ＩＤ＝１１の帯域を測定する。この結果、帯域が４０Ｍｂｐｓであると測定されたとする。次に、この測定した帯域を基準値と比較しアクセスが集中していないか判断する。基準値を満足すれば“ボトルネック無し“と判断する。基準値を満足していないときは、ＶＬＡＮ  ＩＤ＝１１のグループ条件を参照し、”データベースソフトがボトルネック“と判断し、帯域を制御する。
【００４９】
上記説明では、性能劣化の有無に関わらずトラヒックを常にモニタしたが、アプリケーションや仮想マシンを使用中に特定のアプリケーションや仮想マシンの性能が劣化した場合には、そのアプリケーションや仮想マシンに関連するＶＬＡＮを測定対象としてトラヒックモニタ部１４０に設定することにより、性能劣化の詳細な原因を特定することができる。例えば、科学計算ソフトウェアがデバイスＩＤ＝２、３の２つのストレージを利用している場合は、それぞれのデバイスに対してＶＬＡＮ  ＩＤ＝５１、５２を設定し、それぞれのＶＬＡＮのトラヒックをモニタする。これにより、トラヒックに異常があるＶＬＡＮに属するデバイスの性能が劣化していると特定することができる。
【００５０】
なお、帯域は、負荷状況や管理ポリシーに応じて、帯域を増大・削減のどちらを選択するかを決めることができる。
【００５１】
上記説明では、トラヒック情報として帯域を測定したが、本発明においてトラヒック情報は、帯域に限定するものではなく、パケット損率又はデータサイズを測定し、性能指標として利用することもできる。
【００５２】
例えば、トラヒックモニタ部１４０がパケット損率を測定し、基準値を超えているＶＬＡＮに対して割当帯域を増やすことにより、このＶＬＡＮに割り当てられたアプリケーションの性能を改善することができる。
【００５３】
また、ＮＡＣＫコマンドに対してＶＬＡＮを割り当て、トラヒックモニタでこのＶＬＡＮの帯域をモニタすることにより、ＮＡＣＫを多く発行しているデバイスを特定することで、エラー状態にあるデバイスを特定することができる。また、ＮＡＣＫに割り当てた帯域が一定値以上になったらデータ内容をモニタして更に詳細なエラー情報を取得するようにすることで、異常時には詳細な情報をモニタが可能で、正常時のモニタ負荷を削減できる。
上記説明では、ＰＣＩ  ＥｘｐｒｅｓｓのデータをＥｔｈｅｒｎｅｔにカプセル化し、ＥｔｈｅｒｎｅｔのＶＬＡＮをグループＩＤとして利用したが、Ｅｔｈｅｒｎｅｔへのカプセル化を省略し、ＰＣＩ  ＥｘｐｒｅｓｓのデータのままグループＩＤをＰＣＩ  Ｅｘｐｒｅｓｓのヘッダ又はデータの特定箇所に付与し、トラヒックモニタ手段がその箇所をモニタし、グループごとのトラヒックをモニタしてもよい。
また、上記説明では、ＣＰＵ及びＩ／Ｏデバイスが対応するプロトコルとしてＰＣＩ  Ｅｘｐｒｅｓｓを、スイッチが対応するプロトコルとしてＥｔｈｅｒｎｅｔを例に説明したが、本発明の特徴は特定プロトコルに限定されるものではないため、その他のプロトコルを使用しても本発明の効果を得ることができる。
【００５４】
またデータモニタ部は、データの内容としてＰＣＩ  Ｅｘｐｒｅｓｓのヘッダ情報をモニタする場合について説明したが、本発明の特徴は特定プロトコルに限定されるものではないため、その他のプロトコルのヘッダ情報をモニタする場合にも本発明は適用可能である。
【００５５】
また、上記説明では、Ｉ／Ｏデバイスとして、ストレージを例に説明したが、Ｉ／Ｏデバイスはストレージに限定されるものではなく、他のＩ／Ｏデバイスとして、ネットワークカード、ディスプレイ、キーボード、マウス、ＣＤドライブ、スピーカなどを使用しても本発明の効果を得ることができる。
【００５６】
さらに、上記説明ではＣＰＵを３個、Ｉ／Ｏデバイスを３個設けた例を説明したが、これらの数に限定されず、例えば、１つのＣＰＵに対して複数のＩ／Ｏデバイスを設ける場合、複数のＣＰＵに対して１つのＩ／Ｏデバイスを設ける場合にも本発明を適用可能である。
【００５７】
次に、本発明の第１の実施の形態の効果について説明する。本発明の第１の実施の形態では、アプリケーションや仮想マシンごとにＶＬＡＮを割り当て、ＶＬＡＮごとの帯域を測定しているため、アプリケーションや仮想マシンごとにグループ化された単位での性能を測定できる。
【００５８】
また、アプリケーションや仮想マシンごとの性能測定もＶＬＡＮのトラヒックモニタで行っているため、ＣＰＵ上での負荷を増大させることなく性能を測定することができる。
また、ＶＬＡＮのトラヒックモニタをスイッチ上のハードウェア処理で実施しているため、測定精度を向上させることができる。
【００５９】
［第２の実施形態］
次に、本発明の第２の実施の形態について図面を参照して詳細に説明する。
【００６０】
図６は、本発明の第２の実施の形態の構成を示すブロック図である。
図６を参照すると、本発明の第２の実施の形態であるＩ／Ｏバスシステム２は、図１に示す第１の実施の形態の構成に、リソース割当部２１０を追加して含む構成である。図６に示すリソース割当部２１０以外の構成は図１と同じであるため、ここでの説明は省略する。
【００６１】
リソース割当部２１０は、アプリケーションや仮想マシンに対してストレージやネットワークインタフェースカード（ＮＩＣ）を割り当て、リソース割当の設定を行う。リソース割当設定の具体的な実現方法としては、例えば、スイッチによる切り替え、仮想マシンモニタ（ＶＭＭ：Ｖｉｒｔｕａｌ  Ｍａｃｈｉｎｅ  Ｍｏｎｉｔｏｒ）の設定変更がある。仮想マシンモニタは、仮想マシンを提供するためのソフトウエアであり、例えばVmware やXenがある。
【００６２】
次に、仮想マシンとストレージの割当状況及び仮想マシンごとの帯域のモニタ結果が、図８（ａ）に示したような場合を例に動作を説明する。図８（ａ）をみると、帯域を大量に消費する仮想マシン１（仮想マシンＩＤ＝１）と仮想マシン２（仮想マシンＩＤ＝２）が同じストレージデバイス（デバイスＩＤ＝２）を利用していることがわかる。デバイスＩＤ＝２とデバイスＩＤ＝３のストレージの性能が同じとすると、システム全体の性能及び信頼性を向上させるためには、各ストレージのアクセス頻度を均一化した方がよい。
【００６３】
そこで、リソース割当部２１０が、帯域を均一化するようにリソースの割当を計算し、リソースの割当を変更する。その結果として、図８（ｂ）に示すような割当状況となる。この結果を見ると２つのストレージへのアクセス帯域が均一化されており、性能及び信頼性を向上させることができる。仮想マシンが利用するストレージの割り当てを変更する方法としては、仮想マシンが起動しているイメージファイルを移動させる方法がある。
図７に示すように、リソース割当部２１０はリソース割当計算部２１１とリソース設定部２１２とから構成される。ソース割当計算部２１１はトラヒックモニタ部から提供されるトラヒック情報を基に、仮想マシンごとの性能が均一化されるように、リソース量の配分を行う。例えばリソースとしてストレージ帯域を大量に使用する仮想マシンのイメージファイルが同一ストレージ上に存在する場合は、ストレージアクセスがボトルネックになる。これを解消するために、ストレージのアクセス帯域が均一化されるように、仮想マシンのイメージファイルの配置を計算する。リソース設定部２１２はリソース割当計算部２１１で計算したリソースを仮想マシンに割り当てるために、仮想マシンモニタに設定を行う。図８の例では、仮想マシン２のイメージファイルをデバイスＩＤ＝２からデバイスＩＤ＝３に移動させ、仮想マシン３のイメージファイルをデバイスＩＤ＝３からデバイスＩＤ＝２に移動させる。
【００６４】
なお本実施形態ではトラヒックモニタ部から提供されるトラヒック情報を基に、リソース量の配分を行っているが、後述する第３の実施の形態の性能指標変換部が作成した性能指標に基に、リソース量の配分を行ってもよい。
【００６５】
本発明の第２の実施の形態は、制御対象をトラヒックからリソースの割り当て状況に広げたため、第１の実施の形態の効果に加えて、システム全体での性能向上を実現することができる。
【００６６】
［第３の実施形態］
図９を参照すると、本実施形態のＩ／Ｏバスシステム３は、ＣＰＵ１０１ａ−１０１ｃとそれぞれ接続されるグループＩＤ設定部１１３ａ−１１３ｃ、Ｉ／Ｏデバイス１０２−１０４とそれぞれ接続されるグループＩＤ設定部１１３ｄ−１１３ｆ、グループＩＤ設定部１１３ａ−１１３ｆと接続されるスイッチ２８０、を備えている。さらに、Ｉ／Ｏバスシステム３は、グループＩＤ設定部１１３ａ−１１３ｆ及びスイッチ２８０と接続されるグループトラヒック管理部２１１、グループＩＤ設定部１１３ａ−１１３ｆ及びグループトラヒック管理部２１１と接続されるグループ管理テープル２１２、グループ管理テーブル２１２及びＣＰＵ１０１ａ−１０１ｃと接続される性能管理部２２０、を備えている。
図９では、グループトラヒック管理部２１１はグループＩＤ設定部１１３ｃ，１１３ｆとの接続しか示していないが、グループトラヒック管理部２１１はその他のグループＩＤ設定部１１３ａ、１１３ｂ、１１３ｄ、１１３ｅとも接続される。同様に、グループ管理テーブル２１２はグループＩＤ設定部１１３ｃ，１１３ｆとの接続しか示していないが、グループ管理テーブル２１２はその他のグループＩＤ設定部１１３ａ、１１３ｂ、１１３ｄ、１１３ｅとも接続される。
【００６７】
また、図９では、性能管理部２２０とＣＰＵ１０１との接続は、ＣＰＵ１０１ｃとの接続しか示していないが、性能管理部２２０はその他のＣＰＵ１０１ａ、１０１ｂとも接続される。
Ｉ／Ｏバスシステム３は、ＣＰＵ１０１ａ−１０１ｃ及びＩ／Ｏデバイス１０２−１０４に接続される。グループトラヒック管理部２１１は、グループ管理テーブル２１２に登録されたグループの優先度に応じて各グループに対して帯域を割り当てる。グループ管理テーブル２１２は、グループ化する条件を保持する。グループＩＤ設定部１１３ａ−１１３ｆは、転送データの内容をモニタし、モニタしたデータ内容をグループ管理テーブル２１２に登録されたグループ化条件にもとづき割り当てるグループＩＤを決定し、データにグループＩＤを付与する。
【００６８】
なお、第１の実施形態ではグループＩＤ設定部がそれぞれグループ化する条件を保持している場合について説明したが、本実施形態ではグループ管理テーブル２１２にグループ化する条件が登録されており、グループＩＤ設定部はグループ管理テーブルに登録されたグループ条件でグループＩＤを付与する。
【００６９】
グループＩＤ設定部１１３ａ−１１３ｆの構成例は既に説明した図２の構成と同一の構成である。
【００７０】
性能管理部２２０は、トラヒックモニタ部２４０がモニタしたトラヒック情報をグループ対象の種類に応じた性能指標へ変換し、性能指標が予め定めた基準値を満足しているか判断し、満足していない場合はその箇所をボトルネックとして通知する。グループ対象の種類としては、例えば、アプリケーション、デバイス、ＰＩＯ（Ｐｒｏｇｒａｍｍｅｄ  ＩＯ）やＤＭＡ（Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ）のようなデータ転送方式及び仮想化技術により提供される仮想マシンがある。
【００７１】
トラヒック制御部２３０は、グループごとにトラヒックを制御する。トラヒックモニタ部２４０は、グループごとにトラヒックをモニタする。グループごとにトラヒックを制御及びモニタするための実現方法としては、例えば、ＥｔｈｅｒｎｅｔのＶＬＡＮ（Ｖｉｒｔｕａｌ  ＬＡＮ）を利用する方法がある。
【００７２】
次に性能管理部２２０の詳細な構成について説明する。
【００７３】
図１０は、性能管理部２２０の構成例を示すブロック図である。図１０において、性能管理部段２２０は、性能管理振分部２２１、アプリケーション性能管理部２２２、デバイス性能管理部２２３、データ転送方式性能管理部２２４、コマンド性能管理部２２５及び仮想マシン性能管理部２２６から構成される。
【００７４】
性能管理振分部２２１は、性能を監視する対象に応じて、性能の管理方法をアプリケーション性能管理部２２２、デバイス性能管理部２２３、データ転送方式性能管理部２２４、コマンド性能管理部２２５又は仮想マシン性能管理部２２６から選択する。
【００７５】
アプリケーション性能管理部２２２は、アプリケーションを対象とした場合にトラヒックから性能指標を生成し、生成された性能指標が規定された範囲内であるか判断する。
図１１はアプリケーション性能管理部の構成を示すブロック図である。図１１に示すように、アプリケーション性能管理部２２２は、モニタしたトラヒックから性能指標を作成する性能指標変換部２６１、及び作成された性能指標が指定された範囲内であるか判断する性能指標判断部２６２からなる。
【００７６】
デバイス性能管理部２２３、データ転送方式性能管理部２２４、コマンド性能管理部２２５及び仮想マシン性能管理部２２６は、性能管理の対象がそれぞれＩ／Ｏデバイス、データ転送方式、コマンド、仮想マシンである場合に、それぞれの対象に応じて帯域から性能指標を生成し、生成された性能指標が規定された範囲内であるか判断する。
【００７７】
上記の性能管理の対象は説明のために示した例であり、対象に応じて新たな管理部を追加することもできるし、管理の対象としない管理部を省略することもできる。
【００７８】
次に、図９のＩ／Ｏバスシステム３の動作について、図１２−図１４のフローチャートを参照して説明する。
【００７９】
図１２は、Ｉ／Ｏバスシステム３がグループＩＤを付与する動作を示したフローチャートである。
【００８０】
グループＩＤ設定部１１３ａ−１１３ｆは、それぞれＩ／Ｏバスへ転送されるデータをモニタし（ステップＳ１０１）、グループ管理テーブル１１２を参照して、データ内容がグループ条件と一致するか判断し（ステップＳ１０２）、グループ条件と一致した場合は一致したグループのグループＩＤをデータに付与する（ステップＳ１０３）。ステップＳ１０２において、グループ条件と一致しない場合はグループＩＤを付与せず、そのままデータを転送する（ステップＳ１０４）。
【００８１】
図１３は、Ｉ／Ｏバスシステム３が性能ボトルネックを発見する動作を示したフローチャートである。
【００８２】
トラヒックモニタ部２４０は、グループごとにトラヒックをモニタする（ステップＳ２０１）。性能指標変換部２６１は、モニタしたトラヒックから性能指標を作成する（ステップＳ２０２）。このときの変換は、例えば、トラヒックを１処理にかかる平均データ長で除することで処理件数を性能指標として得ることができる。性能指標判断部２６２は、作成された性能指標が指定された範囲内であるか判断する（ステップＳ２０３）。性能指標判断部２６２は、性能指標が指定された範囲内であれば、ボトルネックが無い旨を管理者へ通知する（ステップＳ２０４）。性能指標が指定された範囲外であれば、性能指標判断部２６２は、グループ管理テーブル２１２を参照して、グループ条件からボトルネックとなっている箇所を特定（ステップＳ２０５）し、ボトルネック箇所を管理者へ通知する（ステップＳ２０６）。
【００８３】
図１４は、Ｉ／Ｏバスシステム３が性能指標を制御する動作を示したフローチャートである。
【００８４】
性能管理部に含まれる性能指標変換部２６１は、要求された性能指標を帯域に変換する（ステップＳ３０１）。グループ管理部に含まれるグループトラヒック管理部２１１が、グループ管理テーブル２１２に登録されているグループごとの優先度及びステップＳ３０１で要求される帯域にもとづき各グループに与える帯域を決定する（ステップＳ３０２）。トラヒック制御部２３０が、ステップＳ３０２で決定された帯域を各グループに対して設定する（ステップＳ３０３）。なお、グループ管理部はグループＩＤ設定部１１３ａ−１１３ｆ、グループトラヒック管理部２１１、グループ管理テーブル２１２からなる。
次に、ＣＰＵ１０１ａ−１０１ｃ及びＩ／Ｏデバイス１０２−１０４をＰＣＩ  Ｅｘｐｒｅｓｓに対応させた場合の構成例について説明する。
【００８５】
グループＩＤ設定部１１３ａ−１１３ｆとスイッチ２８０との間はＥｔｈｅｒｎｅｔプロトコルで接続され、グループを実現する部としてＥｔｈｅｒｎｅｔのＶＬＡＮ（Ｖｉｒｔｕａｌ  ＬＡＮ）を利用するＩ／Ｏバスシステム３の構成が示されている。
【００８６】
ＣＰＵ１０１ａ−１０１ｃ及びＩ／Ｏデバイス１０２−１０４はＰＣＩ  Ｅｘｐｒｅｓｓのアドレス（バス番号、デバイス番号）を有し、グループＩＤ設定部１１３ａ−１２１３ｆはＥｔｈｅｒｎｅｔのＭＡＣアドレスを有する。初期設定時などにＰＣＩ  ＥｘｐｒｅｓｓのアドレスをＥｔｈｅｒｎｅｔフレームにカプセル化して送信することで、これら２つのアドレスの対応関係を取得することができる。
【００８７】
スイッチ２８０は、ポート及びＶＬＡＮごとにトラヒックをモニタできるＥｔｈｅｒｎｅｔスイッチである。
【００８８】
トラヒック制御部２３０及びトラヒックモニタ部２４０は、スイッチ２８０が備えるＶＬＡＮごとのトラヒック制御機能及びトラヒックモニタを利用して構成される。スイッチ２８０が備えるトラヒック制御機能及びトラヒックモニタ（トラヒックモニタ部２４０及びトラヒック制御部２３０）は、ソフトウェア処理ではなくハードウェア処理を行っているため高速な処理を行うことができる。
【００８９】
トラヒック制御の対象としては、例えば、スイッチポート及びＶＬＡＮごとの帯域保証、優先制御、レイテンシー(latency)制御があり、トラヒックモニタの対象としては、例えば、スイッチポート及びＶＬＡＮごとの帯域、パケット損率及びパケットサイズがある。また、トラヒック制御としてスイッチの転送方式を、カット・スルー（Ｃｕｔ  ｔｈｒｏｕｇｈ）方式とストア・アンド・フォワード（Ｓｔｏｒｅ  ａｎｄ  ｆｏｒｗａｒｄ）方式とで切り替えることもできる。
【００９０】
グループＩＤ設定部１１３ａの構成は既に第１の実施形態で図４を用いて説明した構成と同じであるので説明を省略する。
【００９１】
またグループ管理テーブル２１２の内容は既に説明した図５の内容と同じである。
性能管理部２２０では、性能監視の対象に応じて管理対象を表わす管理テーブルを保持している。この保持している管理テーブルを図１５に示す。
図１５（ａ）は、アプリケーション管理テーブルであり、アプリケーション性能管理部が保持する。このテーブルには、アプリケーションを識別する識別子とアプリケーションの対応が登録されている。アプリケーション識別子としては、例えば、ＴＣＰポート番号やＯＳ上でのプロセスＩＤがある。図１５（ａ）をみると、アプリケーションの識別子としてＴＣＰポート番号＝５４３２１がデータベースソフトウェアであり、ＴＣＰポート番号＝５６７８９が科学計算ソフトウェアであることがわかる。
【００９２】
図１５（ｂ）は、デバイス管理テーブルであり、デバイス性能管理部が保持する。このテーブルには、デバイスを特定するための識別子とデバイス種類の対応が登録されている。例えば、デバイスを識別する識別子としては、ＰＣＩ  ＥｘｐｒｅｓｓでのバスＩＤ、デバイスＩＤなどがある。この他にもデバイス名等を登録することもできる。図１５（ｂ）をみると、デバイスＩＤ＝２が、ネットワークアドレス０１：１２：２３：３４：４５：５６を持つグループＩＤ設定部に接続され、デバイス種類がストレージであることがわかる。
【００９３】
図１５（ｃ）は、データ転送方式管理テーブルであり、データ転送方式性能管理部が保持する。このテーブルには、データ転送方式の種類が登録されている。図１５（ｃ）をみると、データ転送方式として、ＰＩＯ及びＤＭＡがあることがわかる。
【００９４】
図１５（ｄ）は、コマンド管理テーブルであり、コマンド性能管理部が保持する。このテーブルには、コマンドの種類（コマンド識別子）が登録されている。図１５（ｄ）をみると、コマンド種類の例として、ＡＣＫ、ＮＡＣＫ、Ｒｅａｄ及びＷｒｉｔｅがあることがわかる。
【００９５】
図１５（ｅ）は、仮想マシン管理テーブルであり、仮想マシン性能管理部が保持する。このテーブルには、仮想マシンＩＤと割当リソースとが登録されている。図１５（ｅ）をみると、仮想マシンＩＤ＝１に、割当リソースとして、ＣＰＵ（デバイスＩＤ＝１）、ストレージ（デバイスＩＤ＝２）、ＮＩＣ(Network Interface Card)（デバイスＩＤ＝４）が割り当てられていることがわかる。
【００９６】
上記で説明した性能管理部２２０が保持するテーブル内容を参照することで、データの内容を表す識別子と管理者が理解しやすい名称とを変換することができる。
【００９７】
次に、実施例の動作を説明する。
【００９８】
Ｉ／Ｏバスシステム３上を転送するデータとして、ＣＰＵ１０１ａ上で動作しているデータベースアプリケーション（ＴＣＰポート番号５４３２１を利用）からＩ／Ｏデバイス１０３（デバイスＩＤ＝３）へ転送されるデータを考える。
【００９９】
はじめに、ＣＰＵ１０１ａからのデータはグループＩＤ設定部１１３ａにおいて、図１２の手順に従いＶＬＡＮ  ＩＤが付与される。具体的には、データのＴＣＰポート番号をモニタし（ステップＳ１０１）、その結果、ＴＣＰポート番号として５４３２１を取得する。このＴＣＰポート番号がグループ管理テーブル内のグループ条件と一致するＶＬＡＮ  ＩＤがあるか検索し（Ｓ１０２）、その結果、ＶＬＡＮ  ＩＤ＝１１を決定する。Ｅｔｈｅｒｎｅｔ処理部２５４が、データに対してＶＬＡＮ  ＩＤ＝１１を付与してＥｔｈｅｒｎｅｔフレームにカプセル化してデータを転送する。このとき宛先アドレスとして、デバイスＩＤに対応するＭＡＣアドレスを検索し、付与する。
【０１００】
スイッチ２８０へ転送されたデータは、スイッチ２８０において、宛先アドレスであるグループＩＤ設定部１１３ｅへスイッチングされる。このとき、スイッチ２８０内のトラヒックモニタ部２４０が、ＶＬＡＮごとにトラヒックをモニタする。モニタしたトラヒック情報から、図１３の手順に従い性能指標を評価する。トラヒックモニタ部２４０が、ＶＬＡＮ  ＩＤ＝１１の帯域を測定する（Ｓ２０１）。この結果、帯域が４０Ｍｂｐｓであると測定されたとする。次に、この測定した帯域を性能管理部が性能指標に変換する（Ｓ２０２）。例えば、この帯域を処理１件当たりの平均データサイズで除することで、性能指標として処理件数を推測することができる。例えば、処理１件当たりの平均データサイズが１０ｋバイトであったとすると、１秒当たり５００件の処理を行っているとアプリケーションの性能指標に変換できる。次に、基準値と比較しアクセスが集中していないか判断する（Ｓ２０３）。１秒当たりの処理件数の基準値が３００−７００件の場合は、基準値を満足するので“ボトルネック無し“と判断する（Ｓ２０４）。基準値が１００−４００件の場合は基準値を満足していないため、ＶＬＡＮ  ＩＤ＝１１のグループ条件を参照し、”データベースソフトがボトルネック“と判断する（Ｓ２０５、Ｓ２０６）。また、処理に要した時間を上記で求めた処理件数で除することで、Ｉ／Ｏデバイスの処理時間として性能指標を変換することができる。
【０１０１】
上記説明では、性能劣化の有無に関わらずトラヒックを常にモニタしたが、アプリケーションや仮想マシンを使用中に特定のアプリケーションや仮想マシンの性能が劣化した場合には、そのアプリケーションや仮想マシンに関連するＶＬＡＮを測定対象としてトラヒックモニタ部２４０に設定することにより、性能劣化の詳細な原因を特定することができる。例えば、科学計算ソフトウェアがデバイスＩＤ＝２、３の２つのストレージを利用している場合は、それぞれのデバイスに対してＶＬＡＮ  ＩＤ＝５１、５２を設定し、それぞれのＶＬＡＮのトラヒックをモニタする。これにより、トラヒックに異常があるＶＬＡＮに属するデバイスの性能が劣化していると特定することができる。
【０１０２】
また、トラヒック制御部２３０が、図１４の性能指標制御手順に従い、トラヒックを制御することで性能指標を制御することも可能である。
【０１０３】
例えば、上記例での処理件数５００件が多すぎるので、1秒当たり４００件の処理に抑えたい場合は、性能管理部２２０が処理件数４００件を帯域３２Ｍｂｐｓへ変換する（Ｓ３０１）。次にグループトラヒック管理部２１１が、この計算された帯域を割当てよいか他のＶＬＡＮ帯域と調整し（Ｓ３０２）、最後に、トラヒック制御部２３０がＶＬＡＮ  ＩＤ＝１１の帯域を３２Ｍｂｐｓに設定する。ここでの説明では、帯域を削減したが、負荷状況や管理ポリシーに応じて、帯域を増大・削減のどちらを選択するかを決めることができる。
【０１０４】
上記説明では、トラヒック情報として帯域を測定したが、本発明においてトラヒック情報は、帯域に限定するものではなく、パケット損率又はデータサイズを測定し、性能指標として利用することもできる。
【０１０５】
例えば、トラヒックモニタ部２３０がパケット損率を測定し、トラヒック制御部２４０が基準値を超えているＶＬＡＮに対して割当帯域を増やすことにより、このＶＬＡＮに割り当てられたアプリケーションの性能を改善することができる。
【０１０６】
また、ＮＡＣＫコマンドに対してＶＬＡＮを割り当て、トラヒックモニタでこのＶＬＡＮの帯域をモニタすることにより、ＮＡＣＫを多く発行しているデバイスを特定することで、エラー状態にあるデバイスを特定することができる。また、ＮＡＣＫに割り当てた帯域が一定値以上になったらデータ内容をモニタして更に詳細なエラー情報を取得するようにすることで、異常時には詳細な情報をモニタが可能で、正常時のモニタ負荷を削減できる。
【０１０７】
上記説明では、ＰＣＩ  ＥｘｐｒｅｓｓのデータをＥｔｈｅｒｎｅｔにカプセル化し、ＥｔｈｅｒｎｅｔのＶＬＡＮをグループＩＤとして利用したが、Ｅｔｈｅｒｎｅｔへのカプセル化を省略し、ＰＣＩ  ＥｘｐｒｅｓｓのデータのままグループＩＤをＰＣＩ  Ｅｘｐｒｅｓｓのヘッダ又はデータの特定箇所に付与し、トラヒックモニタ部がその箇所をモニタし、グループごとのトラヒックをモニタしてもよい。
【０１０８】
また、上記説明では、ＣＰＵ及びＩ／Ｏデバイスが対応するプロトコルとしてＰＣＩ  Ｅｘｐｒｅｓｓを、スイッチが対応するプロトコルとしてＥｔｈｅｒｎｅｔを例に説明したが、本発明の特徴は特定プロトコルに限定されるものではないため、その他のプロトコルを使用しても本発明の効果を得ることができる。
またデータモニタ部は、データの内容としてＰＣＩ  Ｅｘｐｒｅｓｓのヘッダ情報をモニタする場合について説明したが、本発明の特徴は特定プロトコルに限定されるものではないため、その他のプロトコルのヘッダ情報をモニタする場合にも本発明は適用可能である。
【０１０９】
また、上記説明では、スイッチは１個の例で説明したが、本発明の実施の形態においてスイッチ数は１個に限定されるものではなく、複数のスイッチがネットワークを構成している場合であっても本発明の効果を得ることができる。
【０１１０】
また、上記説明では、Ｉ／Ｏデバイスとして、ストレージを例に説明したが、Ｉ／Ｏデバイスはストレージに限定されるものではなく、他のＩ／Ｏデバイスとして、ネットワークカード、ディスプレイ、キーボード、マウス、ＣＤドライブ、スピーカなどを使用しても本発明の効果を得ることができる。
さらに、上記説明ではＣＰＵを３個、Ｉ／Ｏデバイスを３個設けた例を説明したが、これらの数に限定されず、例えば、１つのＣＰＵに対して複数のＩ／Ｏデバイスを設ける場合、複数のＣＰＵに対して１つのＩ／Ｏデバイスを設ける場合にも本発明を適用可能である。
【０１１１】
次に、本発明の第３の実施の形態の効果について説明する。本発明の第３の実施の形態では、アプリケーションや仮想マシンごとにＶＬＡＮを割り当て、ＶＬＡＮごとの帯域を測定しているため、アプリケーションや仮想マシンごとにグループ化された単位での性能を測定できる。
【０１１２】
また、アプリケーションや仮想マシンごとの性能測定もＶＬＡＮのトラヒックモニタで行っているため、ＣＰＵ上での負荷を増大させることなく性能を測定することができる。
【０１１３】
また、ＶＬＡＮのトラヒックモニタをスイッチ上のハードウェア処理で実施しているため、測定精度を向上させることができる。
【産業上の利用可能性】
【０１１４】
本発明は、Ｉ／Ｏデバイスの使用状況を管理することができるＩ／Ｏバスシステム及びその管理方法に用いられるものである。
【図面の簡単な説明】
【０１１５】
【図１】本発明の第１の実施の形態のブロック図である。
【図２】グループID設定部の構成のブロック図である。
【図３】グループID付与のフローチャートである。
【図４】グループ設定部の構成のブロック図である。
【図５】グループ管理テーブルの例である。
【図６】本発明の第２の実施の形態のブロック図である。
【図７】リソース割り当て部の構成のブロック図である。
【図８】仮想マシンの性能情報の例である。
【図９】本発明の第３の実施の形態のブロック図である。
【図１０】性能管理部の構成のブロック図である。
【図１１】アプリケーション性能管理部の構成のブロック図である。
【図１２】グループID付与のフローチャートである。
【図１３】性能指標評価のフローチャートである。
【図１４】性能指標制御のフローチャートである。
【図１５】性能管理部が保持する情報の例である。
【図１６】PCI Express のヘッダフォーマットを示す図である。
【図１７】従来のＩ／Ｏバスシステムのブロック図である。
【図１８】アドレス変換テーブルを示す図である。
【符号の説明】
【０１１６】
１−３、９３０  Ｉ／Ｏバスシステム
１０１、９２０  ＣＰＵ
１０２−１０４、９４１−９４３  Ｉ／Ｏデバイス
１１０  グループ管理部
１１１、２１１  グループトラヒック管理部
１１２、２１２  グループ管理テーブル
１１３、２１３  グループＩＤ設定部
１２０、２２０  性能管理部
１２１  性能管理振分部
１３０、２３０  トラヒック制御部
１４０、２４０  トラヒックモニタ部
１５１  データモニタ部
１５２  グループＩＤ決定部
１５３  グループＩＤ付与部
１６１  性能指標変換部
１６２  性能指標判断部
２８０  スイッチ
９１０  アービタ
９１１  バスモニタ部
９１２  バス帯域管理部
９１３  バス使用権管理部
【図１】
2008181387.tif 000003
【図２】
2008181387.tif 000004
【図３】
2008181387.tif 000005
【図４】
2008181387.tif 000006
【図５】
2008181387.tif 000007
【図６】
2008181387.tif 000008
【図７】
2008181387.tif 000009
【図８】
2008181387.tif 000010
【図９】
2008181387.tif 000011
【図１０】
2008181387.tif 000012
【図１１】
2008181387.tif 000013
【図１２】
2008181387.tif 000014
【図１３】
2008181387.tif 000015
【図１４】
2008181387.tif 000016
【図１５】
2008181387.tif 000017
【図１６】
2008181387.tif 000018
【図１７】
2008181387.tif 000019
【図１８】
2008181387.tif 000020