(57)【特許請求の範囲】
【請求項１】
プロセッサ、前記プロセッサに接続されるメモリ、及び他の装置と通信するための一つ以上のネットワークインタフェースを備える計算機であって、
前記計算機は、
前記計算機のリソースを分割して、一つ以上の仮想計算機を生成し、前記生成された仮想計算機を管理する仮想化管理部と、
一つ以上の前記仮想計算機から構成される仮想計算機グループにおける利用帯域を制御する帯域制御部と、を備え、
前記仮想化管理部は、前記仮想計算機に割り当てた仮想的なネットワークインタフェースの利用帯域を管理する解析部を含み、
前記解析部は、前記ネットワークインタフェースの利用帯域が、当該ネットワークインタフェースの利用帯域の上限である最大帯域と同一である場合、前記仮想計算機グループにおいて確保すべき帯域である保証帯域を管理するための保証帯域情報を保持し、
前記解析部は、
前記各仮想計算機の利用帯域を計測し、
前記計測結果に基づいて、前記ネットワークインタフェースの利用帯域が当該ネットワークインタフェースの最大帯域と同一である第１のネットワークインタフェースを検索し、
前記計測結果に基づいて、前記保証帯域情報を参照して、前記第１のネットワークインタフェースのリソースが割り当てられた前記仮想計算機グループの中から、前記仮想計算機グループの利用帯域が当該仮想計算機グループに設定された前記保証帯域より小さい第１の仮想計算機グループが存在するか否かを判定し、
前記第１の仮想計算機グループが存在すると判定された場合、前記計測結果に基づいて、前記保証帯域情報を参照して、前記第１のネットワークインタフェースのリソースが割り当てられた前記仮想計算機グループの中から、前記仮想計算機グループの利用帯域が当該仮想計算機グループに設定された前記保証帯域より大きい第２の仮想計算機グループを検索し、
前記帯域制御部に前記第２の仮想計算機グループの帯域の制御を命令し、
前記帯域制御部は、
前記検索された第２の仮想計算機グループの帯域を制御することによって、前記第１の仮想計算機グループの前記保証帯域の不足分だけ空き帯域を確保することを特徴とする計算機。
【請求項２】
前記仮想計算機には、当該仮想計算機の利用帯域の上限である最大利用帯域が設定され、
前記解析部は、
前記ネットワークインタフェースの利用帯域が当該ネットワークインタフェースの最大帯域より小さい第２のネットワークインタフェースを検索し、
前記計測結果に基づいて、前記保証帯域情報を参照して、前記第２のネットワークインタフェースのリソースが割り当てられた前記仮想計算機グループに含まれる前記仮想計算機のうち、前記仮想計算機の利用帯域が前記最大利用帯域と同一である仮想計算機が存在するか否かを判定し、
前記仮想計算機の利用帯域が前記最大利用帯域と同一である仮想計算機が存在すると判定された場合に、当該仮想計算機の帯域を制御することによって、当該仮想計算機が含まれる前記仮想計算機グループが利用可能な空き帯域を確保することを特徴とする請求項１に記載の計算機。
【請求項３】
前記仮想計算機グループには、前記仮想計算機グループの利用帯域を確保する優先順位が設定され、
前記第２の仮想計算機グループが存在しない場合に、前記優先順位が下位の前記仮想計算機グループに含まれる所定数の仮想計算機の帯域を制御することによって、空き帯域を確保し、
前記優先順位が上位の前記仮想計算機グループに前記確保された空き帯域を追加することを特徴とする請求項１に記載の計算機。
【請求項４】
前記優先順位は、前記仮想計算機グループに設定された前記保証帯域の大きさに基づいて決定されることを特徴とする請求項３に記載の計算機。
【請求項５】
前記解析部は、前記仮想計算機の利用帯域の上限である最大利用帯域を管理するキャッピング情報を保持し、
前記帯域制御部は、前記仮想計算機グループに含まれる所定数の仮想計算機の帯域を制御する場合に、前記仮想計算機グループに含まれる所定数の仮想計算機の最大利用帯域を下げることによって他の前記仮想計算機グループに割り当てる空き帯域を確保し、又は、前記仮想計算機グループに含まれる所定数の仮想計算機の最大利用帯域を上げることによって当該仮想計算機グループの空き帯域を確保することを特徴とする請求項１から請求項４のいずれか一つに記載の計算機。
【請求項６】
前記帯域制御部は、前記仮想計算機グループに含まれる所定数の仮想計算機の帯域を制御する場合に、前記仮想計算機グループに含まれる所定数の仮想計算機の通信処理における遅延時間を長く設定することによって他の前記仮想計算機グループに割り当てる空き帯域を確保し、又は、前記仮想計算機グループに含まれる所定数の仮想計算機の通信処理における遅延時間を短くすることによって当該仮想計算機グループの空き帯域を確保することを特徴とする請求項１から請求項４のいずれか一つに記載の計算機。
【請求項７】
プロセッサ、前記プロセッサに接続されるメモリ、及び他の装置と通信するための一つ以上のネットワークインタフェースを備える計算機における帯域制御方法であって、
前記計算機は、
前記計算機のリソースを分割して、一つ以上の仮想計算機を生成し、前記生成された仮想計算機を管理する仮想化管理部と、
一つ以上の前記仮想計算機から構成される仮想計算機グループにおける利用帯域を制御する帯域制御部と、を備え、
前記仮想化管理部は、前記仮想計算機に割り当てた仮想的なネットワークインタフェースの利用帯域を管理する解析部を含み、
前記解析部は、前記ネットワークインタフェースの利用帯域が当該ネットワークインタフェースの利用帯域の上限である最大帯域と同一である場合、前記仮想計算機グループにおいて確保すべき帯域である保証帯域を管理するための保証帯域情報を保持し、
前記方法は、
前記解析部が、前記各仮想計算機の利用帯域を計測する第１のステップと、
前記解析部が、前記計測結果に基づいて、前記ネットワークインタフェースの利用帯域が当該ネットワークインタフェースの最大帯域と同一である第１のネットワークインタフェースを検索する第２のステップと、
前記解析部が、前記計測結果に基づいて、前記保証帯域情報を参照して、前記第１のネットワークインタフェースのリソースが割り当てられた前記仮想計算機グループの中から、前記仮想計算機グループの利用帯域が当該仮想計算機グループに設定された前記保証帯域より小さい第１の仮想計算機グループが存在するか否かを判定する第３のステップと、
前記解析部が、前記第１の仮想計算機グループが存在すると判定された場合、前記計測結果に基づいて、前記保証帯域情報を参照して、前記第１のネットワークインタフェースのリソースが割り当てられた前記仮想計算機グループの中から、前記仮想計算機グループの利用帯域が当該仮想計算機グループに設定された前記保証帯域より大きい第２の仮想計算機グループを検索する第４のステップと、
前記解析部が、前記帯域制御部に前記第２の仮想計算機グループの帯域の制御を命令第５のステップと、
前記帯域制御部が、前記検索された第２の仮想計算機グループの帯域を制御することによって、前記第１の仮想計算機グループの前記保証帯域の不足分だけ空き帯域を確保する第６のステップと、
を含むことを特徴とする帯域制御方法。
【請求項８】
前記仮想計算機には、当該仮想計算機の利用帯域の上限である最大利用帯域が設定され、
前記方法は、さらに、
前記解析部が、前記ネットワークインタフェースの利用帯域が当該ネットワークインタフェースの最大帯域より小さい第２のネットワークインタフェースを検索するステップと、
前記解析部が、前記計測結果に基づいて、前記保証帯域情報を参照して、前記第２のネットワークインタフェースのリソースが割り当てられた前記仮想計算機グループに含まれる前記仮想計算機のうち、前記仮想計算機の利用帯域が前記最大帯域と同一である仮想計算機が存在するか否かを判定するステップと、
前記解析部が、前記仮想計算機の利用帯域が前記最大帯域と同一である仮想計算機が存在すると判定された場合に、当該仮想計算機の帯域を制御することによって当該仮想計算機が含まれる前記仮想計算機グループが利用可能な空き帯域を確保するステップと、
を含むことを特徴とする請求項７に記載の帯域制御方法。
【請求項９】
前記仮想計算機グループには、前記仮想計算機グループの利用帯域を確保する優先順位が設定され、
前記第４のステップは、
前記第２の仮想計算機グループが存在しない場合に、前記優先順位が下位の前記仮想計算機グループに含まれる所定数の仮想計算機の帯域を制御することによって、空き帯域を確保するステップと、
前記優先順位が上位の前記仮想計算機グループに前記確保された空き帯域を追加するステップと、
を含むことを特徴とする請求項７に記載の帯域制御方法。
【請求項１０】
前記優先順位は、前記仮想計算機グループに設定された前記保証帯域の大きさに基づいて決定されることを特徴とする請求項９に記載の帯域制御方法。
【請求項１１】
前記解析部は、前記仮想計算機の利用帯域の上限値である最大利用帯域を管理するキャッピング情報を保持し、
前記仮想計算機グループに含まれる所定数の仮想計算機の帯域を制御するステップでは、前記帯域制御部が、前記仮想計算機グループに含まれる所定数の仮想計算機の最大利用帯域を下げることによって他の前記仮想計算機グループに割り当てる空き帯域を確保し、又は、前記仮想計算機グループに含まれる所定数の仮想計算機の最大利用帯域を上げることによって当該仮想計算機グループの空き帯域を確保することを特徴とする請求項７から請求項１０のいずれか一つに記載の帯域制御方法。
【請求項１２】
前記仮想計算機グループに含まれる所定数の仮想計算機の帯域を制御するステップでは、前記帯域制御部が、前記仮想計算機グループに含まれる所定数の仮想計算機の通信処理における遅延時間を長く設定することによって他の前記仮想計算機グループに割り当てる空き帯域を確保し、又は、前記仮想計算機グループに含まれる所定数の仮想計算機の通信処理における遅延時間を短くすることによって当該仮想計算機グループの空き帯域を確保することを特徴とする請求項７から請求項１０のいずれか一つに記載の帯域制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、仮想計算機が稼働する計算機システムにおけるネットワークの帯域制御技術に関する。
【背景技術】
【０００２】
物理サーバの計算機資源を分割して利用するサーバ仮想化技術が普及期を迎え、物理サーバによるハードウェア・アシスト機能も充実しつつある。
【０００３】
物理サーバは、計算機資源としてＣＰＵ及びＩ／Ｏデバイスを有しており、ＣＰＵについては、Ｉｎｔｅｌ社（Ｉｎｔｅｌは、登録商標以下同じ）のＶＴ-ｘ等のハードウェア・アシスト機能が既に広く使用されている。一方、Ｉ／Ｏデバイスは、仮想化のオーバヘッドが問題となる。特に、ＮＩＣ（Ｎｅｔｗｏｒｋ  Ｉｎｔｅｒｆａｃｅ  Ｃａｒｄ）は広帯域化が急激に進んでおり、ＮＩＣを共有するためのオーバヘッドが肥大化している。
【０００４】
前述のオーバヘッドの発生によって、物理サーバ内部の計算機資源であるＣＰＵの処理能力を浪費する問題、及びＮＩＣ本来の用途である広帯域を利用できない問題が生じている。また、特定の仮想サーバ（ＶＭ：Ｖｉｒｔｕａｌ  Ｍａｃｈｉｎｅ）又は複数の仮想サーバをグループ化した仮想サーバ群（ＶＭ  Ｇｒｏｕｐ）が大量のデータを送受信する場合、他のＶＭ及びＶＭ  Ｇｒｏｕｐの利用帯域を保証できない問題も生じている。
【０００５】
ネットワーク帯域を保証する技術としては、ＷＲＲ（Ｗｅｉｇｈｔｅｄ  Ｒｏｕｎｄ  Ｒｏｂｉｎ）方式に、利用帯域の上限及び下限の制御を付加した機能をＮＩＣに実装させ、ＶＭ側の仮想ＮＩＣ（ＶＮＩＣ）と物理サーバ側のＮＩＣとの間の帯域を制御することによってＶＭの利用帯域を保証する技術が提案されている（例えば、特許文献１参照）。ここで、ＷＲＲ方式は、ＶＭの優先順位を設定し、時分割で帯域の利用権限を有するＶＭを変更させる帯域の制御方式である。
【０００６】
また、ハードウェアによるＩ／Ｏデバイス仮想化支援機構として、ＰＣＩ規格の策定等を行う業界団体であるＰＣＩ−ＳＩＧ（Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ  Ｓｐｅｃｉａｌ  Ｉｎｔｅｒｅｓｔ  Ｇｒｏｕｐ）が、ＰＣＩデバイス側で仮想化をサポートするＳＲ−ＩＯＶ（Ｓｉｎｇｌｅ  Ｒｏｏｔ  Ｉ／Ｏ  Ｖｉｒｔｕａｌｉｚａｔｉｏｎ）を標準化している。ＳＲ−ＩＯＶでは、ＰＣＩデバイスが複数の仮想Ｉ／Ｏデバイス（ＶＦ：Ｖｉｒｔｕａｌ  Ｆｕｎｃｔｉｏｎ）を提供しており、ＶＭにＶＦを占有で割り当てることによってＰＣＩデバイスをＶＭ間で共有することができる。また、ＳＲ−ＩＯＶのデファクトスタンダードとして、あるＶＭが帯域を独占して利用することを防ぐために、ＶＦ毎に送信帯域の上限を設定する機能が提供されている。
【０００７】
また、ネットワークの帯域制御をソフトウェアとして実装した技術としては、Ｃｉｓｃｏ社（Ｃｉｓｃｏは登録商標以下同じ）のＮｅｘｕｓ  １０００ＶがＶＭｗａｒｅ社（ＶＭｗａｒｅは登録商標以下同じ）のＶＭｗａｒｅ  ｖＳｐｈｅｒｅ（ＶＭｗａｒｅ  ｖＳｐｈｅｒｅは登録商標以下同じ）と連携してＬＡＮスイッチをソフトウェアとして提供している（例えば、非特許文献１参照）。
【０００８】
具体的には、ＶＭｗａｒｅ  ＥＳＸカーネル、又は、ＶＭｗａｒｅ  ＥＳＸｉカーネルの一部として実装されたＶＥＭ（Ｖｉｒｔｕａｌ  Ｅｔｈｅｎｅｔ  Ｍｏｄｕｌｅ）が、ＶＭｗａｒｅ  Ｖｉｒｔｕａｌ  Ｓｗｉｔｃｈ機能の代わりとして稼働し、物理サーバにソフトウェアとして実装されたＶＳＭ（Ｖｉｒｔｕａｌ  Ｓｕｐｅｒｖｉｓｏｒ  Ｍｏｄｕｌｅ）がＶＥＭを制御することによって、ＶＭと物理サーバのＮＩＣとの間で利用帯域を動的に調整する。
【０００９】
さらに、ネットワークの帯域制御に関する外部スイッチの規格としては、拡張されたイーサネット（イーサネットは登録商標以下同じ）の規格であるＣＥＥ（Ｃｏｎｖｅｒｇｅｄ  Ｅｎｈａｎｃｅｄ  Ｅｔｈｅｒｎｅｔ）でＰＦＣ（Ｐｒｉｏｒｉｔｙ−ｂａｓｅｄ  Ｆｌｏｗ  Ｃｏｎｔｒｏｌ）機能とＥＴＳ（Ｅｎｈａｎｃｅｄ  Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｃｏｎｔｒｏｌ）機能が標準化されている。
【００１０】
ＰＦＣ機能は、帯域の過渡な利用を防止するために、プライオリティを付加した状態でトラフィックを分割し、分割されたトラフィックが輻輳状態になった場合にＰＡＵＳＥフレームを送信することによってデータ送信を一時停止させ、輻輳によるフレーム消失を解消するための機能である。ＥＴＳ機能は、プライオリティ付けしたトラフィックをグループに割り当て、ＷＲＲにより各グループの帯域制御を行う機能である。このＰＦＣ機能及びＥＴＳ機能によって、ＣＥＥスイッチ間で利用帯域を保証することができる。
【先行技術文献】
【特許文献】
【００１１】
【特許文献１】特開２００９−２３９３７号公報
【非特許文献】
【００１２】
【非特許文献１】"Ｃｉｓｃｏ  Ｎｅｘｕｓ  １０００Ｖ  Ｓｅｒｉｅｓ  Ｓｗｉｔｃｈｅｓ"，Ｄａｔａ  Ｓｈｅｅｔ，  ２０１１年
【発明の概要】
【発明が解決しようとする課題】
【００１３】
特許文献１に記載の技術のように、物理サーバのＮＩＣが帯域制御機能を実装する場合、物理サーバの計算機資源であるＣＰＵを浪費することなく広帯域と帯域保証とを実現することができる。
【００１４】
しかし、特許文献１に記載の発明では、ＮＩＣに所定の設定を行う必要があり、また、個々のＶＭの帯域保証しか行えない。したがって、複数のＶＭを同一業務に利用する環境においては、当該業務に対する帯域保証を行うことができない。たとえ、複数のＶＭの帯域保証を行うためにＮＩＣの実装を変更した場合であっても、当該業務で利用するＶＭ数に制限があるため、限定的な計算機システムにのみ利用されることになる。
【００１５】
ＰＣＩ−ＳＩＧのＳＲ−ＩＯＶを利用した場合には、ＶＦ毎に送信帯域の上限を設定することができるため広帯域の実現が可能である。
【００１６】
しかし、複数のＶＭが共有して利用するＰＣＩデバイスに対して、共有しているＶＭ間の利用状況に合わせた帯域制御を行うことができないため、共有しているＶＭ間の帯域保証を実現することができない。
【００１７】
ネットワークの帯域制御をソフトウェアとして実装した場合には、Ｎｅｘｕｓ  １０００Ｖと同等の機能をソフトウェアで実装しており、外部スイッチの提供機能が利用できるため、ＶＭの帯域保証を実現することができる。
【００１８】
しかし、物理サーバのＣＰＵを用いてエミュレーションを行うため、物理サーバの計算機資源であるＣＰＵの浪費が大きくなり、１０Ｇｂｐｓ等の広帯域実現は困難である。
【００１９】
ＣＥＥのＰＦＣ機能及びＥＴＳ機能を利用した外部スイッチによる帯域制御の場合、物理サーバの計算機資源であるＣＰＵの浪費がなく、広帯域であっても帯域を保証することができる。
【００２０】
しかし、外部スイッチは、個々のＶＭの利用帯域を把握できず、ＶＭから外部スイッチに至る経路にあるＮＩＣに対してのみ帯域を制御するため、ＮＩＣにアクセスする個々のＶＭの帯域保証及び複数のＶＭ間の帯域保証を行うことができない。
【００２１】
以上のように、ハードウェアに実装された帯域制御機能を用いた場合、ＣＰＵを浪費することなく広帯域及び帯域保証を実現できるが、ＶＭに合わせた実装が必要となり特殊なＮＩＣが必要となる。一方、ソフトウェアに実装された帯域制御機能を用いた場合、ＣＰＵを浪費するため、広帯域の実現が難しい。
【００２２】
また、ＳＲ−ＩＯＶ又はＣＥＥの外部スイッチを利用した場合、ＮＩＣの最大帯域を全て利用した状態においてＶＭ間の利用状況に合わせた帯域制御ができないため、ＶＭ間の帯域保証を実現することができない課題がある。
【００２３】
本発明の目的は、前述した課題を鑑みて行われた発明である。すなわち、物理サーバのＣＰＵリソースを浪費せず、広帯域を実現し、ＶＭ及びＶＭ  Ｇｒｏｕｐに対して帯域保証を実現し、さらに、特定のハードウェア構成に依存しない自由度を確保することである。
【課題を解決するための手段】
【００２４】
本願において開示される発明の代表的な一例を示せば以下の通りである。すなわち、プロセッサ、前記プロセッサに接続されるメモリ、及び他の装置と通信するための一つ以上のネットワークインタフェースを備える計算機であって、前記計算機は、前記計算機のリソースを分割して、一つ以上の仮想計算機を生成し、前記生成された仮想計算機を管理する仮想化管理部と、一つ以上の前記仮想計算機から構成される仮想計算機グループにおける利用帯域を制御する帯域制御部と、を備え、前記仮想化管理部は、前記仮想計算機に割り当てた仮想的なネットワークインタフェースの利用帯域を管理する解析部を含み、前記解析部は、前記ネットワークインタフェースの利用帯域が、当該ネットワークインタフェースの利用帯域の上限である最大帯域と同一である場合、前記仮想計算機グループにおいて確保すべき帯域である保証帯域を管理するための保証帯域情報を保持し、前記解析部は、前記各仮想計算機の利用帯域を計測し、前記計測結果に基づいて、前記ネットワークインタフェースの利用帯域が当該ネットワークインタフェースの最大帯域と同一である第１のネットワークインタフェースを検索し、前記計測結果に基づいて、前記保証帯域情報を参照して、前記第１のネットワークインタフェースのリソースが割り当てられた前記仮想計算機グループの中から、前記仮想計算機グループの利用帯域が当該仮想計算機グループに設定された前記保証帯域より小さい第１の仮想計算機グループが存在するか否かを判定し、前記第１の仮想計算機グループが存在すると判定された場合、前記計測結果に基づいて、前記保証帯域情報を参照して、前記第１のネットワークインタフェースのリソースが割り当てられた前記仮想計算機グループの中から、前記仮想計算機グループの利用帯域が当該仮想計算機グループに設定された前記保証帯域より大きい第２の仮想計算機グループを検索し、前記帯域制御部に前記第２の仮想計算機グループの帯域の制御を命令し、前記帯域制御部は、前記検索された第２の仮想計算機グループの帯域を制御することによって、前記第１の仮想計算機グループの前記保証帯域の不足分だけ空き帯域を確保することを特徴とする。
【発明の効果】
【００２５】
本発明によれば、仮想計算機グループ間の利用帯域を把握し、仮想サーバグループに対する帯域保証を実現できる。また、帯域制御部が、各仮想計算機グループの帯域を制御するためプロセッサのリソースを浪費することなく広帯域を実現できる。
【図面の簡単な説明】
【００２６】
【図１】本発明の第１の実施形態における計算機システムの一例を示す説明図である。
【図２】本発明の第１の実施形態における物理サーバの構成の詳細を説明するブロック図である。
【図３】本発明の第１の実施形態におけるメモリの記憶領域の一例を示す説明図である。
【図４】本発明の第１の実施形態におけるアダプタ割当表の一例を示す説明図である。
【図５】本発明の第１の実施形態におけるキャッピングテーブルの一例を示す説明図である。
【図６】本発明の第１の実施形態におけるＱｏＳグループテーブルの一例を示す説明図である。
【図７】本発明の第１の実施形態におけるキャパシティテーブルの一例を示す説明図である。
【図８】本発明の第１の実施形態におけるハイパバイザが起動時に実行する処理を説明するフローチャートである。
【図９】本発明の第１の実施形態におけるスループット解析部が実行する帯域制御処理の概要を示す説明図である。
【図１０Ａ】本発明の第１の実施形態における帯域制御処理の詳細を説明するフローチャートである。
【図１０Ｂ】本発明の第１の実施形態における帯域制御処理の詳細を説明するフローチャートである。
【図１１】本発明の第１の実施形態におけるキャッピング機能がキャッピング値の更新命令を受信した場合に実行する処理を説明するフローチャートである。
【図１２】本発明の第１の実施形態における帯域制御処理の変形例を説明するフローチャートである。
【図１３】本発明の第２の実施形態における物理サーバの構成の詳細を説明するブロック図である。
【図１４】本発明の第２の実施形態におけるメモリの記憶領域の位置例を示す説明図である。
【図１５】本発明の第２の実施形態におけるキャッピングテーブルの一例を示す説明図である。
【図１６Ａ】本発明の第２の実施形態における帯域制御処理の詳細を説明するフローチャートである。
【図１６Ｂ】本発明の第２の実施形態における帯域制御処理の詳細を説明するフローチャートである。
【図１７】本発明の第３の実施形態における物理サーバの構成の詳細を説明するブロック図である。
【図１８】本発明の第３の実施形態におけるメモリの記憶領域の一例を示す説明図である。
【図１９Ａ】本発明の第３の実施形態における帯域制御処理の詳細を説明するフローチャートである。
【図１９Ｂ】本発明の第３の実施形態における帯域制御処理の詳細を説明するフローチャートである。
【発明を実施するための形態】
【００２７】
以下、実施形態について図面を用いて説明する。
【００２８】
（第１の実施形態）
第１の実施形態では、仮想サーバのネットワークの帯域制御を行う物理サーバを例として説明する。
【００２９】
図１は、本発明の第１の実施形態における計算機システムの一例を示す説明図である。
【００３０】
計算機システムは、一つ以上の物理サーバ１００から構成される。本実施形態では、説明の簡単のため一つの物理サーバ１００のみを図示する。
【００３１】
物理サーバ１００は、複数のＣＰＵ１０４−１〜１０４−ｎを有し、これらのＣＰＵ１０４−１〜１０４−ｎはＱＰＩ（ＱｕｉｃｋＰａｔｈ  Ｉｎｔｅｒｃｏｎｎｅｃｔ）又はＳＭＩ（Ｓｃａｌａｂｌｅ  Ｍｅｍｏｒｙ  Ｉｎｔｅｒｃｏｎｎｅｃｔ）等のインターコネクト１０７を介してＣｈｉｐＳｅｔ１０６に接続される。以下の説明では、ＣＰＵ１０４−１〜１０４−ｎを区別しない場合、ＣＰＵ１０４と記載する。
【００３２】
ＣｈｉｐＳｅｔ１０６は、ＰＣＩ  Ｅｘｐｒｅｓｓ等のバス１０８を介してＩ／Ｏアダプタ１０９、Ｔｉｍｅｒ１１０、ＮＩＣ１１７、ＳＣＳＩアダプタ１１８、ＨＢＡ（Ｈｏｓｔ  Ｂｕｓ  Ａｄａｐｔｅｒ）１１９、及びコンソールインタフェース（コンソールＩ／Ｆ）１１６と接続する。
【００３３】
ここで、ＮＩＣ１１７は、ＬＡＮ１１２と接続するためのインタフェースであり、ＨＢＡは、ＳＡＮ（Ｓｔｒａｇｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）１１４に接続するためのインタフェースであり、また、コンソールインタフェース１１６は、コンソール１１１と接続するためのインタフェースである。
【００３４】
ＣＰＵ１０４は、インターコネクト１０７を介してメモリ１０５にアクセスし、また、ＣｈｉｐＳｅｔ１０６を介してＮＩＣ１１７等にアクセスして所定の処理を実行する。
【００３５】
メモリ１０５は、ＣＰＵ１０４によって実行されるプログラム及び当該プログラムの実行に必要な情報を格納する。具体的には、メモリ１０５には、ハイパバイザ１０１を実現するプログラムが格納される。
【００３６】
ＣＰＵ１０４は、ハイパバイザ１０１を実現するプログラムをメモリ１０５上にロードし、当該プログラムを実行することによってハイパバイザ１０１が備える機能を実現できる。ハイパバイザ１０１は、一つ以上の仮想サーバ１０２を生成し、管理する。仮想サーバ１０２上ではゲストＯＳ１０３が稼働する。
【００３７】
次に、物理サーバ１００上で仮想サーバ１０２を実現するソフトウェア構成の主要部と、制御対象となるハードウェアについて説明する。
【００３８】
図２は、本発明の第１の実施形態における物理サーバ１００の構成の詳細を説明するブロック図である。
【００３９】
物理サーバ１００は、一つ以上のＮＩＣ１１７−１〜１１７−ｍを有する。また、各ＮＩＣ１１７−１〜１１７−ｍは、ＩＯＶ機能を有する。ここで、ＩＯＶ機能は、物理的な機能（ＰＦ：Ｐｈｉｃｉｃａｌ  Ｆｕｎｃｔｉｏｎ）２０４、仮想的な機能（ＶＦ：Ｖｉｒｔｕａｌ  Ｆｕｎｃｔｉｏｎ）２０６、及びキャッピング機能２０７から構成される。
【００４０】
ＰＦ２０４は、物理サーバ１００が外部ネットワークとデータを送受信する機能を提供し、ＩＯＶ機能を制御するＩＯＶレジスタ２０５を含む。ＶＦ２０６は、ＰＦ２０４によって生成され、ＩＯＶ機能が有効な場合にのみ物理サーバ１００が外部ネットワークとデータを送受信する機能を提供する。キャッピング機能２０７は、物理サーバ１００が外部ネットワークとデータを送受信するときに利用帯域の上限を制御する機能を提供する。
【００４１】
なお、ＰＦ２０４は常時利用可能な機能だが、ＶＦ２０６はＩＯＶ機能が有効な場合にのみ利用できる機能である。また、物理サーバ１００は、ＩＯＶ機能を有さないＮＩＣ１１７を含んでもよい。
【００４２】
物理サーバ１００上では、仮想サーバ１０２を制御するハイパバイザ１０１が稼動する。
【００４３】
ハイパバイザ１０１は、一つ以上の仮想サーバ１０２を生成し、生成された仮想サーバ１０２に対してＣｈｉｐＳｅｔ１０６に相当する機能（仮想ＣｈｉｐＳｅｔ２１３）を提供する。また、ハイパバイザ１０１は、任意のＶＦ２０６を任意の仮想サーバ１０２に占有的に割り当て、当該仮想サーバ１０２上で稼動するゲストＯＳ１０３に当該ＶＦ２０６の直接操作を許可する機能（パススルー機能）を有する。
【００４４】
また、ハイパバイザ１０１は、スループット解析部２００、アダプタ割当表２０８、ＰＦドライバ２０９−１〜２０９−ｍ、及びエミュレーションデータ２１２−１〜２１２−ｎを有する。
【００４５】
スループット解析部２００は、仮想サーバ１０２等の利用帯域を監視し、利用状況に応じて帯域を制御する。また、スループット解析部２００は、キャッピングテーブル２０１、ＱｏＳグループテーブル２０２、及びキャパシティテーブル２０３を含む。
【００４６】
キャッピングテーブル２０１は、各仮想サーバ１０２の利用帯域及び最大利用帯域値等の情報を格納する。キャッピングテーブル２０１の詳細は、図５を用いて後述する。ＱｏＳグループテーブル２０２は、複数の仮想サーバ１０２から構成される仮想サーバグループ（ＶＭ  Ｇｒｏｕｐ）の保証帯域に関する情報を格納する。ＱｏＳグループテーブル２０２の詳細は、図６を用いて後述する。キャパシティテーブル２０３は、ＮＩＣ１１７の最大帯域に関する情報を格納する。キャパシティテーブル２０３の詳細は、図７を用いて後述する。
【００４７】
なお、スループット解析部２００は、キャッピングテーブル２０１、ＱｏＳグループテーブル２０２、及びキャパシティテーブル２０３を組み合わせて一つ又は二つのテーブルとして保持してもよい。
【００４８】
アダプタ割当表２０８は、仮想サーバ１０２と当該仮想サーバ１０２に割り当てたＶＦ２０６との対応関係を格納する。アダプタ割当表２０８の詳細は、図４を用いて後述する。
【００４９】
エミュレーションデータ２１２−１〜２１２−ｎは、各仮想サーバ１０２−１〜１０２−ｎの稼動状態を保持するデータである。以下の説明では、エミュレーションデータ２１２−１〜２１２−ｎを区別しない場合、エミュレーションデータ２１２と記載する。
【００５０】
エミュレーションデータ２１２は、仮想サーバ１０２に提供する仮想ＣｈｉｐＳｅｔ２１３の状態を保持する仮想ＣｈｉｐＳｅｔデータ２１１を含む。具体的には、仮想ＣｈｉｐＳｅｔデータ２１１は、仮想ＣｈｉｐＳｅｔ２１３におけるレジスタ等の状態を保持する。
【００５１】
ＰＦドライバ２０９は、各ＮＩＣ１１７−１〜１１７−ｍが備えるＰＦ２０４−１〜ＰＦ２０４−ｍを制御するためのドライバであり、各ＰＦ２０４−１〜ＰＦ２０４−ｍにおけるＩＯＶレジスタ２０５を操作する機能を有する。
【００５２】
仮想サーバ１０２は、ハイパバイザ１０１によって提供される仮想ＣｈｉｐＳｅｔ２１３などの仮想的な部品、及び占有的に割り当てられたＶＦ２０６を含む。仮想サーバ１０２上ではゲストＯＳ１０３が動作する。ゲストＯＳ１０３は、ＶＦ２０６の種類に応じたＶＦドライバ２１０を用いてＶＦ２０６を操作する。
【００５３】
本実施形態では、スループット解析部２００が、各テーブルの情報に基づいて、ネットワークの利用状況を分析し、仮想サーバ１０２に割り当てる最大利用帯域値（キャッピング値）を増減させるための命令をキャッピング機能２０７に発行する。すなわち、スループット解析部２００は、キャッピング値を変更することによって、帯域を制御する。
【００５４】
図３は、本発明の第１の実施形態におけるメモリ１０５の記憶領域の一例を示す説明図である。
【００５５】
ハイパバイザ１０１は、メモリ１０５の記憶領域の割り当てを管理しており、メモリ１０５上にハイパバイザ１０１自身が使用する領域と、仮想サーバ１０２が使用する領域とを割り当てる。
【００５６】
例えば、図３に示すように、ハイパバイザ１０１は、ハイパバイザ１０１自身にアドレスＡＤ０からＡＤ１の範囲の記憶領域を割り当て、また、仮想サーバ１０２―１にアドレスＡＤ１からＡＤ２の範囲の記憶領域を、仮想サーバ１０２―ｎにアドレスＡＤ３からＡＤ４の範囲の記憶領域を割り当てる。
【００５７】
各仮想サーバ１０２に割り当てられた記憶領域には、ゲストＯＳ１０３及びＶＦドライバ２１０が格納される。ハイパバイザ１０１に割り当てられた記憶領域には、アダプタ割当表２０８、エミュレーションデータ２１２、ＰＦドライバ２０９、スループット解析部２００、キャッピングテーブル２０１、ＱｏＳグループテーブル２０２、及び、キャパシティテーブル２０３が格納される。
【００５８】
図４は、本発明の第１の実施形態におけるアダプタ割当表２０８の一例を示す説明図である。
【００５９】
アダプタ割当表２０８は、ＶＦ２０６と仮想サーバ１０２との対応関係を格納する。具体的には、アダプタ割当表２０８は、ＰＦ  ＩＤ４００、ＶＦ  ＩＤ４０１及び仮想サーバＩＤ４０２を含む。
【００６０】
ＰＦ  ＩＤ４００は、ＶＦ２０６を生成したＰＦ２０４の識別子を格納する。ＶＦ  ＩＤ４０１は、ＶＦ２０６の識別子を格納する。仮想サーバＩＤ４０２は、ＶＦ  ＩＤ４０１に対応するＶＦ２０６を割り当てた仮想サーバ１０２の識別子を格納する。なお、ＶＦ２０６が未割り当ての場合、仮想サーバＩＤ４０２には「未割り当て」が格納される。
【００６１】
アダプタ割当表２０８によって、ある仮想サーバ１０２に対して、どのＮＩＣ１１７によって提供されるＶＦ２０６が割り当てられているかを把握できる。
【００６２】
図５は、本発明の第１の実施形態におけるキャッピングテーブル２０１の一例を示す説明図である。
【００６３】
キャッピングテーブル２０１は、ＶＦ２０６に設定したキャッピング値、及び現在の利用帯域に関する情報を格納する。具体的には、キャッピングテーブル２０１は、取得時刻５００、ＮＩＣ  ＩＤ５０１、ＶＦ  ＩＤ５０２、Ｇｒｏｕｐ  ＩＤ５０３、利用帯域５０４、及びキャッピング値５０５を含む。
【００６４】
取得時刻５００は、ハイパバイザ１０１が各種情報を取得した時刻を格納する。ＮＩＣ  ＩＤ５０１は、ＮＩＣ１１７の識別子を格納する。ＶＦ  ＩＤ５０２は、ＶＦ  ＩＤ４０１と同一のものである。Ｇｒｏｕｐ  ＩＤ５０３は、複数の仮想サーバ１０２から構成される仮想サーバグループの識別子を格納する。
【００６５】
利用帯域５０４は、ＶＦ  ＩＤ５０２に対応するＶＦ２０６が割り当てられた仮想サーバ１０２が現在使用している利用帯域を格納する。キャッピング値５０５は、ＶＦ  ＩＤ５０２に対応するＶＦ２０６が割り当てられた仮想サーバ１０２に設定された最大利用帯域値（キャッピング値）を格納する。
【００６６】
図６は、本発明の第１の実施形態におけるＱｏＳグループテーブル２０２の一例を示す説明図である。
【００６７】
ＱｏＳグループテーブル２０２は、仮想サーバグループに対して設定された保証帯域、当該仮想サーバグループに含まれる仮想サーバ１０２の利用帯域の合計値等の情報を格納する。具体的には、ＱｏＳグループテーブル２０２は、取得時刻６００、Ｇｒｏｕｐ  ＩＤ６０１、保証帯域６０２、及び総利用帯域６０３を含む。
【００６８】
取得時刻６００は、ハイパバイザ１０１が各種情報を取得した時刻を格納する。Ｇｒｏｕｐ  ＩＤ６０１は、Ｇｒｏｕｐ  ＩＤ５０３と同一のものである。保証帯域６０２は、Ｇｒｏｕｐ  ＩＤ６０１に対応する仮想サーバグループに対して設定された保証帯域を格納する。総利用帯域６０３は、仮想サーバグループに含まれる全ての仮想サーバ１０２の利用帯域の合計値を格納する。
【００６９】
なお、本実施形態において保証帯域とは、ＮＩＣ１１７の利用帯域が最大帯域と同一となった場合に、当該ＮＩＣ１１７のリソースを利用する仮想サーバグループに対して最低限保証する帯域を示す。
【００７０】
図７は、本発明の第１の実施形態におけるキャパシティテーブル２０３の一例を示す説明図である。
【００７１】
キャパシティテーブル２０３は、ＮＩＣ１１７の最大帯域、及び各仮想サーバ１０２によって利用されている帯域の合計値に関する情報を格納する。具体的には、キャパシティテーブル２０３は、取得時刻７００、ＮＩＣ  ＩＤ７０１、最大帯域７０２、及び総利用帯域７０３を含む。
【００７２】
取得時刻７００は、ハイパバイザ１０１が各種情報を取得した時刻を格納する。ＮＩＣ  ＩＤ７０１は、ＮＩＣ  ＩＤ５０１と同一のものである。最大帯域７０２は、ＮＩＣ  ＩＤ７０１に対応するＮＩＣ１１７の最大帯域を格納する。総利用帯域７０３は、ＮＩＣ  ＩＤ７０１に対応するＮＩＣ１１７を利用する各仮想サーバ１０２の利用帯域の合計値を格納する。
【００７３】
ハイパバイザ１０１は、最大帯域７０２と総利用帯域７０３とを比較することによってネットワークの利用状況を監視することができる。
【００７４】
次に、ハイパバイザ１０１が実行する処理について説明する。
【００７５】
図８は、本発明の第１の実施形態におけるハイパバイザ１０１が起動時に実行する処理を説明するフローチャートである。
【００７６】
管理者等によって物理サーバ１００の電源が投下されると、ＣＰＵ１０４がハイパバイザ１０１をメモリ１０５にロードし、実行することによって処理が開始される。
【００７７】
ハイパバイザ１０１は、ハイパバイザ１０１自身及び物理サーバ１００を初期化する（ステップＳ８００）。このとき、ハイパバイザ１０１は、ＮＩＣ１１７のＩＯＶ機能も有効化する。
【００７８】
ステップＳ８００の処理では、さらに、以下のような処理が実行される。
【００７９】
ハイパバイザ１０１は、各ＮＩＣ１１７のＰＦ２０４に対してＶＦ２０６の生成を指示する。さらに、ハイパバイザ１０１は、生成されたＶＦ２０６のエントリをアダプタ割当表２０８に作成し、各エントリのＰＦ  ＩＤ４００及びＶＦ  ＩＤ４０１に対応する識別子を格納し、全エントリの仮想サーバＩＤ４０２に「未割り当て」を格納して初期化する。
【００８０】
また、ハイパバイザ１０１は、キャッピングテーブル２０１、ＱｏＳグループテーブル２０２及びキャパシティテーブル２０３を未入力の状態にすることによって、各テーブルを初期化する。
【００８１】
ハイパバイザ１０１は、コンソール１１１からの入力、又は、前回起動時の割り当て指示に基づいて、仮想サーバ１０２を生成し、当該仮想サーバ１０２にＶＦ２０６を割り当てる（ステップＳ８０１）。このとき、ハイパバイザ１０１は、アダプタ割当表２０８を参照して割り当てたＶＦ２０６に対応するエントリを検索し、当該エントリの仮想サーバＩＤ４０２に該当する仮想サーバ１０２の識別子を格納する。
【００８２】
なお、ステップＳ８０１では、ハイパバイザ１０１は、仮想サーバグループを生成し、仮想サーバグループに保証帯域及び利用帯域を設定する。
【００８３】
ハイパバイザ１０１は、仮想サーバ１０２を生成した後、各テーブルを更新する（ステップＳ８０２）。その後、スループット解析部２００が帯域制御処理を開始する。
【００８４】
ステップＳ８０２の処理では以下のような処理が実行される。
【００８５】
ハイパバイザ１０１は、キャッピングテーブル２０１に仮想サーバ１０２に割り当てたＶＦ２０６に対応するエントリを生成し、生成された各エントリのＶＦ  ＩＤ５０２に対応するＶＦ２０６の識別子を格納する。また、ハイパバイザ１０１は、生成された各エントリのＮＩＣ  ＩＤ５０１にＶＦ２０６が割り当てられたＮＩＣ１１７の識別子を格納し、Ｇｒｏｕｐ  ＩＤ５０３にＶＦ２０６を割り当てた仮想サーバ１０２が所属する仮想サーバグループの識別子を格納する。さらに、ハイパバイザ１０１は、各エントリのキャッピング値５０５に、入力又は割当指示によって指定されたキャッピング値を格納する。
【００８６】
ハイパバイザ１０１は、生成された仮想サーバグループに対応するエントリをＱｏＳグループテーブル２０２に生成し、生成された各エントリのＧｒｏｕｐ  ＩＤ６０１に仮想サーバグループの識別子を格納する。また、ハイパバイザ１０１は、各エントリの保証帯域６０２及び総利用帯域６０３に、対応する仮想サーバグループに設定された保証帯域及び当該仮想サーバグループにおける総利用帯域を格納する。なお、初期設定時では、総利用帯域６０３は空欄のままでもよい。
【００８７】
さらに、ハイパバイザ１０１は、キャパシティテーブル２０３に、物理サーバ１００が有するＮＩＣ１１７に対応するエントリを生成し、生成されたＮＩＣ１１７のエントリのＮＩＣ  ＩＤ７０１に対応するＮＩＣの識別子を格納する。ハイパバイザ１０１は、生成されたエントリの最大帯域７０２及び総利用帯域７０３に、当該エントリに対応するＮＩＣ１１７の最大帯域及び仮想サーバ１０２によって利用される総利用帯域を格納する。なお、初期設定時では、総利用帯域７０３は空欄のままでもよい。
【００８８】
また、スループット解析部２００は、キャッピングテーブル２０１のキャッピング値５０５の値に基づいて、各ＶＦ２０６のキャッピング値を設定するための命令を発行する。
【００８９】
なお、ステップＳ８０２の処理において更新された各テーブルについては、ディスク装置１１３等に予め格納しておき、ハイパバイザ１０１の起動時にディスク装置１１３等から読み出すことによって、前回設定された情報を流用することも可能である。
【００９０】
ハイパバイザ１０１は、生成された仮想サーバ１０２を稼働させ、当該仮想サーバ１０２上でゲストＯＳ１０３及びアプリケーションを実行する（ステップＳ８０３）。
【００９１】
図９は、本発明の第１の実施形態におけるスループット解析部２００が実行する帯域制御処理の概要を示す説明図である。
【００９２】
図９に示すグラフのうち、（ａ）が仮想サーバグループ１の利用帯域を示すグラフであり、（ｂ）が仮想サーバグループ２の利用帯域を示すグラフである。なお、横軸は時間を示し、縦軸は利用帯域を示す。また、仮想サーバグループ１及び仮想サーバグループ２は同一のＰＦドライバ２０９（ＮＩＣ１１７）を利用しており、ＮＩＣ１１７の最大帯域が１０Ｇｐｂｓであるものとする。また、各仮想サーバグループの保証帯域は３Ｇｂｐｓと設定されているものとする。
【００９３】
時刻ｔ０では、仮想サーバグループ１の利用帯域は８Ｇｂｐｓであり、仮想サーバグループ２の利用帯域は１Ｇｂｐｓである。このとき、ＮＩＣ１１７における総利用帯域は９Ｇｂｐｓであり、空き帯域が１Ｇｐｂｓである。
【００９４】
本実施形態では、ＮＩＣ１１７の総利用帯域が最大帯域と同一でない場合には帯域の制御は行われない。したがって、時刻ｔ０ではＮＩＣ１１７に空き帯域があるため帯域の制御は行われない。
【００９５】
時刻ｔ１では、仮想サーバグループ１の利用帯域は変化していないが、仮想サーバグループ２の利用帯域が２Ｇｂｐｓに上昇している。このとき、ＮＩＣ１１７における総利用帯域は１０Ｇｂｐｓとなり、最大帯域まで帯域を利用している状態である。したがって、スループット解析部２００は、帯域の制御が行われる。
【００９６】
具体的には、スループット解析部２００は、仮想サーバグループ１及び仮想サーバグループ２が保証帯域以上の帯域を確保できているか否かを解析する。スループット解析部２００は、当該解析の結果、仮想サーバグループ２が保証帯域を確保できてないことを検知し、保証帯域以上の帯域を確保する仮想サーバグループ１に含まれる仮想サーバ１０２のキャッピング値を下げる。
【００９７】
以上の処理によって、仮想サーバグループ２が利用可能な空き帯域を確保し、当該空き領域を割り当てることによって保証帯域を確保することができる。
【００９８】
図９に示す例では、スループット解析部２００は、仮想サーバグループ１の総利用帯域を１Ｇｂｐｓだけ下げることによって、１Ｇｂｐｓ分の空き利用帯域を確保している。
【００９９】
時刻ｔ２では、仮想サーバグループ１の利用帯域は変化していないが、仮想サーバグループ２の利用帯域が３Ｇｂｐｓに上昇している。このとき、ＮＩＣ１１７の総利用帯域が１０Ｇｂｐｓとなり、最大帯域まで帯域を利用している状態である。しかし、この場合、仮想サーバグループ１及び仮想サーバグループ２のいずれも保証帯域を確保しているため帯域の制御は行われない。
【０１００】
時刻ｔ３では、仮想サーバグループ２の利用帯域が１Ｇｂｐｓに下降した状態である。このとき、仮想サーバグループ２の利用帯域は保証帯域より小さいが、ＮＩＣ１１７の帯域に空きがあるため帯域の制御は行われない。また、仮想サーバグループ１においては、空き帯域があり、かつ、安定した状態であるため、仮想サーバグループ１に含まれる仮想サーバ１０２のキャッピング値を上げる。
【０１０１】
時刻ｔ４では、仮想サーバグループ１の利用帯域が９Ｇｂｐｓに上昇している。このとき、最大帯域まで帯域を利用している状態であり、かつ、仮想サーバグループ２の保証帯域を確保できないため、スループット解析部２００は、仮想サーバグループ１のキャッピング値を再び下げる。
【０１０２】
前述した処理によって、ＮＩＣ１１７の最大帯域まで帯域が利用された場合であっても仮想サーバグループの保証帯域を確保することが可能となる。以下、帯域制御処理の詳細について説明する。
【０１０３】
図１０Ａ及び図１０Ｂは、本発明の第１の実施形態における帯域制御処理の詳細を説明するフローチャートである。
【０１０４】
スループット解析部２００は、周期的に、仮想サーバ１０２に割り当てたＶＦ２０６の利用帯域を計測する（ステップＳ１０００）。
【０１０５】
スループット解析部２００は、計測された利用帯域の値を用いて、各ＮＩＣ１１７の総利用帯域及び各仮想サーバグループの総利用帯域を算出する（ステップＳ１００１）。
【０１０６】
このとき、スループット解析部２００は、キャッピングテーブル２０１に計測された各ＶＦ２０６の利用帯域を格納し、ＱｏＳグループテーブル２０２に算出された各仮想サーバグループの総利用帯域を格納し、また、キャパシティテーブル２０３に算出された各ＮＩＣ１１７の総利用帯域を格納する。
【０１０７】
次に、スループット解析部２００は、ＮＩＣ１１７毎にステップＳ１００２からステップ１００８の処理を実行する。以下処理対象のＮＩＣ１１７を対象ＮＩＣ１１７とも記載する。
【０１０８】
スループット解析部２００は、対象ＮＩＣ１１７の総利用帯域が最大帯域と同一であるか否かを判定する（ステップＳ１００２）。
【０１０９】
具体的には、スループット解析部２００は、キャパシティテーブル２０３の対象ＮＩＣ１１７に対応するエントリを参照し、当該エントリの最大帯域７０２及び総利用帯域７０３を比較し、総利用帯域７０３の値が最大帯域７０２の値と同一であるか否かを判定する。以下、最大帯域まで帯域が利用されているＮＩＣ１１７を第１ＮＩＣ１１７とも記載する。また、最大帯域まで帯域が利用されていないＮＩＣ１１７を第２ＮＩＣ１１７とも記載する。
【０１１０】
対象ＮＩＣ１１７が第１ＮＩＣ１１７でないと判定された場合、すなわち、対象ＮＩＣ１１７が第２ＮＩＣ１１７であると判定された場合、スループット解析部２００は、第２ＮＩＣ１１７のリソースを利用する仮想サーバグループに含まれる仮想サーバ１０２のうち、仮想サーバ１０２の利用帯域がキャッピング値と同一となっている仮想サーバ１０２が存在するか否かを判定する（ステップＳ１００３）。
【０１１１】
具体的には、スループット解析部２００は、キャッピングテーブル２０１の第２ＮＩＣ１１７に対応するエントリを参照し、当該エントリの利用帯域５０４及びキャッピング値５０５を比較し、利用帯域５０４の値がキャッピング値５０５の値と同一であるエントリが存在するか否かを判定する。
【０１１２】
仮想サーバ１０２の利用帯域がキャッピング値と同一となっている仮想サーバ１０２が存在しないと判定された場合、スループット解析部２００は、処理を終了する。
【０１１３】
仮想サーバ１０２の利用帯域がキャッピング値と同一となっている仮想サーバ１０２が存在すると判定された場合、スループット解析部２００は、当該仮想サーバ１０２のキャッピング値を上げるためにキャッピング機能２０７に変更命令を発行し（ステップＳ１００４）、処理を終了する。
【０１１４】
例えば、キャッピング値を上げる場合、前回の処理において当該仮想サーバ１０２のキャッピング値が下げられているときには、下げられた帯域分だけキャッピング値を上げる方法が考えられる。また、追加する帯域の値を予め設定してもよい。
【０１１５】
なお、キャッピング値の変更命令には、少なくとも、対象となる仮想サーバ１０２の識別子及び追加帯域の値が含まれる。
【０１１６】
ステップＳ１００２において、対象ＮＩＣ１１７が第１ＮＩＣ１１７であると判定された場合、スループット解析部２００は、第１ＮＩＣ１１７のリソースを利用する仮想サーバグループのうち、仮想サーバグループの総利用帯域が保証帯域より小さい仮想サーバグループが存在するか否かを判定する（ステップＳ１００５）。具体的には、以下のような処理が実行される。
【０１１７】
スループット解析部２００は、キャッピングテーブル２０１を参照して第１ＮＩＣ１１７のリソースを利用する仮想サーバグループを特定する。さらに、スループット解析部２００は、ＱｏＳグループテーブル２０２の対象仮想サーバグループのエントリを参照し、保証帯域６０２及び総利用帯域６０３を比較し、総利用帯域６０３の値が保証帯域６０２の値より小さいエントリが存在するか否かを判定する。
【０１１８】
以下、ステップＳ１００５の条件を満たす仮想サーバグループを第１仮想サーバグループと記載する。
【０１１９】
第１仮想サーバグループが存在しないと判定された場合、スループット解析部２００は、特に、帯域の制御を行うことなく処理を終了する。
【０１２０】
第１仮想サーバグループが存在すると判定された場合、スループット解析部２００は、第１ＮＩＣ１１７のリソースを利用する仮想サーバグループのうち、仮想サーバグループの利用帯域が保証帯域より大きい仮想サーバグループが存在する否かを判定する（ステップＳ１００６）。以下、ステップＳ１００６の条件を満たす仮想サーバグループを第２仮想サーバグループと記載する。
【０１２１】
具体的には、スループット解析部２００は、ＱｏＳグループテーブル２０２の対象仮想サーバグループのエントリを参照し、保証帯域６０２及び総利用帯域６０３を比較し、総利用帯域６０３の値が保証帯域６０２の値より大きいエントリが存在するか否かを判定する。
【０１２２】
第２仮想サーバグループが存在しないと判定された場合、スループット解析部２００は、第１仮想サーバグループに割り当てるための空き帯域を確保できないため、エラーを通知し（ステップＳ１００８）、処理を終了する。
【０１２３】
第２仮想サーバグループが存在すると判定された場合、スループット解析部２００は、当該第２仮想サーバグループ内の仮想サーバ１０２のキャッピング値を下げるためにキャッピング機能２０７に変更命令を発行し（ステップＳ１００７）、処理を終了する。
【０１２４】
例えば、キャッピング値を下げる場合、第１仮想サーバグループの保証帯域に対して不足している帯域分だけ、第２仮想サーバグループに含まれる仮想サーバ１０２のキャッピング値を下げる方法が考えられる。また、減少させる帯域の値を予め設定してもよい。
【０１２５】
なお、キャッピング値の変更命令には、少なくとも、対象となる仮想サーバグループの識別子、及び減少帯域の値が含まれる。
【０１２６】
また、第２仮想サーバグループ内の仮想サーバ１０２のキャッピング値を下げても、第１仮想サーバグループの保証帯域を確保するために必要な帯域が不足する場合、スループット解析部２００は、エラーを通知してもよい。
【０１２７】
図１１は、本発明の第１の実施形態におけるキャッピング機能２０７がキャッピング値の変更命令を受信した場合に実行する処理を説明するフローチャートである。
【０１２８】
キャッピング機能２０７は、仮想サーバ１０２のキャッピング値の変更命令を受信すると（ステップＳ１１００）、当該変更命令がキャッピング値を上げるための命令であるか否かを判定する（ステップＳ１１０１）。
【０１２９】
受信した変更命令がキャッピング値を上げるための命令であると判定された場合、キャッピング機能２０７は、受信した変更命令に基づいて、対象となる仮想サーバ１０２に割り当てられたＶＦ２０６のキャッピング値を上げて（ステップＳ１１０２）、処理を終了する。
【０１３０】
なお、受信した変更命令には、対象となる仮想サーバ１０２の識別子と、追加帯域の値とが含まれる。したがって、キャッピング機能２０７は、変更命令に含まれる情報に基づいて、対象となる仮想サーバ１０２を特定し、当該仮想サーバ１０２に割り当てられたＶＦ２０６のキャッピング値を上げることができる。
【０１３１】
受信した変更命令がキャッピング値を上げるための命令でない、すなわち、キャッピング値を下げるための命令であると判定された場合、キャッピング機能２０７は、対象となる仮想サーバグループに含まれる仮想サーバ１０２に割り当てられたＶＦ２０６のキャッピング値を下げて（ステップＳ１１０３）、処理を終了する。
【０１３２】
例えば、対象となる仮想サーバグループ内の所定数の仮想サーバ１０２に割り当てられたＶＦ２０６のキャッピング値を一定値下げる方法などが考えられる。なお、本発明は、キャッピング値を下げる方法に限定されない。
【０１３３】
ハイパバイザ１０１が前述した帯域制御処理を実行することによって、各仮想サーバグループの帯域を保証することができる。前述の帯域制御処理においては、仮想サーバグループの保証帯域を例に説明しているが、個々の仮想サーバ１０２に対しても同様の帯域制御処理を適用することによって帯域を保証できる。例えば、一つの仮想サーバ１０２を一つの仮想サーバグループとして扱うことによって同様の処理を適用することができる。
【０１３４】
また、利用用途に合わせて保証帯域の設定値を調整することによって、仮想サーバグループに優先順位を設定することも可能である。前述の帯域制御処理では、第２仮想サーバグループが存在しない場合、スループット解析部２００はエラーを通知していたが、前述の優先順位を利用することによって、保証帯域の不足に対する対策が可能である。
【０１３５】
例えば、仮想サーバグループに設定された保証帯域を利用帯域の優先順位と考えると、第２仮想サーバグループが存在しない場合、スループット解析部２００は、保証帯域が小さい（優先順位が低い）仮想サーバグループに含まれる仮想サーバ１０２のキャッピング値を下げて、保証帯域が大きい（優先順位が高い）仮想サーバグループの帯域を保証することができる。以下、図１２を用いて処理の詳細について説明する。
【０１３６】
図１２は、本発明の第１の実施形態における帯域制御処理の変形例を説明するフローチャートである。なお、ステップＳ１０００〜ステップＳ１００７の処理は同一であるため説明を省略する。ここでは、ステップＳ１００８における処理の変形例について説明する。
【０１３７】
ステップＳ１００６において、第２仮想サーバグループが存在しないと判定された場合、スループット解析部２００は、ＱｏＳグループテーブル２０２を取得し、第１ＮＩＣ１１７のリソースを利用する各仮想サーバグループに設定された保証帯域を抽出する（ステップＳ１２００）。
【０１３８】
ここでは、異なる保証帯域が各仮想サーバグループに設定され、保証帯域の大きさが優先順位に相当するものとする。これによって、スループット解析部２００は、どの仮想サーバグループの帯域を優先的に確保するかを決定できる。
【０１３９】
次に、スループット解析部２００は、設定された保証帯域が、所定の閾値以下の仮想サーバグループを選択する（ステップＳ１２０１）。なお、所定の閾値は、予め設定されたものでもよいし、帯域の利用状況から利用頻度が低い仮想サーバ１０２を複数有する仮想サーバグループに設定された保証帯域を当該閾値として設定してもよい。
【０１４０】
スループット解析部２００は、選択された仮想サーバグループに含まれる所定数の仮想サーバ１０２のキャッピング値を所定値だけ下げることによって発生する空き帯域を算出する（ステップＳ１２０２）。なお、キャッピング値の下げ幅は、予め設定されたものとする。
【０１４１】
スループット解析部２００は、算出された空き帯域を用いて、優先順位の高い仮想サーバグループのうち、保証帯域を確保できる仮想サーバグループが存在する否かを判定する（ステップＳ１２０３）。以下、ステップＳ１２０３の条件を満たす仮想サーバグループを第３仮想サーバグループと記載する。
【０１４２】
第３仮想サーバグループが存在しないと判定された場合、スループット解析部２００は、処理を終了する。
【０１４３】
第３仮想サーバグループが存在すると判定された場合、スループット解析部２００は、選択された仮想サーバグループに含まれる仮想サーバ１０２のキャッピング値を下げるための変更命令を発行し（ステップＳ１２０４）、処理を終了する。
【０１４４】
これによって、保証帯域が大きい（優先順位が高い）仮想サーバグループから順に帯域を保証することができる。
【０１４５】
第１の実施形態によれば、ＮＩＣ１１７の最大帯域を全て利用した状態であっても、仮想サーバグループ又は仮想サーバ１０２に設定されたキャッピング値を制御することによって帯域保証を実現することができる。
【０１４６】
また、ハイパバイザ１０１が利用帯域を解析し、ＳＲ−ＩＯＶ機能を有するＮＩＣが帯域制御を実行するため、物理サーバ１００のＣＰＵリソースを浪費せず、広帯域対応も可能となる。本実施形態では、既存のＳＲ−ＩＯＶ機能を有するＮＩＣの構成を変更することなく、そのまま用いることができる。
【０１４７】
さらに、仮想サーバ１０２の用途に応じて、異なる値の保証帯域を各仮想サーバグループに設定することによって、仮想サーバグループ毎に優先順位を付与した帯域制御を行うことが可能となる。
【０１４８】
（第２の実施形態）
第２の実施形態では、ＳＲ−ＩＯＶの機能を有していないＮＩＣ１１７を用いる点が異なる。本実施形態では、ハイパバイザ１０１が仮想サーバ１０２にＮＩＣ１１７を仮想化したＶＮＩＣを割り当て、ＮＩＣ１１７が当該ＶＮＩＣ１３０１の帯域を制御する。以下、第１の実施形態との差異を中心に説明する。
【０１４９】
計算機システムの構成は、第１の実施形態と同一であるため説明を省略する。
【０１５０】
図１３は、本発明の第２の実施形態における物理サーバ１００の構成の詳細を説明するブロック図である。第１の実施形態と同一の符号を付した構成は、同一の構成であるため説明を省略する。
【０１５１】
第２の実施形態では、ハイパバイザ１０１は、仮想サーバ１０２に対して、ＶＦ２０６の代わりに、任意の仮想ＮＩＣ（ＶＮＩＣ）１３０１を共有的、又は、占有的に割り当てる。
【０１５２】
ＶＮＩＣ１３０１が共有的に割り当てられた場合、仮想サーバ１０２は仮想スイッチ１３００を経由してＮＩＣ１１７と通信を行い、ＶＮＩＣ１３０１が占有的に割り当てられた場合、仮想サーバ１０２は直接ＮＩＣ１１７と通信を行う。
【０１５３】
第２の実施形態では、仮想サーバ１０２は、ハイパバイザ１０１によって提供される仮想ＣｈｉｐＳｅｔ２１３の他に、共有的に割り当てたＶＮＩＣ１３０１を含む。また、ゲストＯＳ１０３は、ＶＦドライバ２１０の代わりに、ＮＩＣドライバ１３０２を有する。
【０１５４】
また、ＮＩＣ１１７は、ＳＲ−ＩＯＶ機能に対応する構成が含まれない点が第１の実施形態と異なる。ハイパバイザ１０１は、ＶＦ２０６の割り当てを管理する必要がないためアダプタ割当表２０８を保持せず、また、ＶＦ２０６を操作する必要がないためＰＦドライバ２０９を保持しない。
【０１５５】
図１４は、本発明の第２の実施形態におけるメモリ１０５の記憶領域の位置例を示す説明図である。
【０１５６】
各仮想サーバ１０２に割り当てられた記憶領域には、ゲストＯＳ１０３及びＶＮＩＣ１３０１が格納される。ハイパバイザ１０１に割り当てられた記憶領域には、仮想スイッチ１３００、エミュレーションデータ２１２、スループット解析部２００、キャッピングテーブル２０１、ＱｏＳグループテーブル２０２、及び、キャパシティテーブル２０３が格納される。
【０１５７】
図１５は、本発明の第２の実施形態におけるキャッピングテーブル２０１の一例を示す説明図である。
【０１５８】
第２の実施形態のキャッピングテーブル２０１は、ＶＦ  ＩＤ５０２の代わりにＶＮＩＣ  ＩＤ１５０１を含む。ＶＮＩＣ  ＩＤ１５０１は、ＶＮＩＣ１３０１の識別子を格納する。したがって、第２の実施形態のキャッピングテーブル２０１は、仮想サーバ１０２に割り当てたＶＮＩＣ１３０１の利用帯域及びキャッピング値を格納する。
【０１５９】
また、ＮＩＣ  ＩＤ５０１、Ｇｒｏｕｐ  ＩＤ５０３、及びＶＮＩＣ  ＩＤ１５０１からＶＮＩＣ１３０１の接続関係が分かる。
【０１６０】
ハイパバイザ１０１が起動時の処理は、第１の実施形態とほぼ同一であるが、ステップＳ８００では、ＣＰＵ１０４はＩＯＶ機能を無効化し、ステップＳ８０１では、ハイパバイザ１０１が仮想サーバ１０２にＶＮＩＣ１３０１を割り当てる点が異なる。
【０１６１】
図１６Ａ及び図１６Ｂは、本発明の第２の実施形態における帯域制御処理の詳細を説明するフローチャートである。
【０１６２】
第２の実施形態における帯域制御処理では、監視対象が仮想サーバ１０２のＶＮＩＣ１３０１の利用帯域となる。また、仮想サーバ１０２のキャッピング値の設定については、ＮＩＣ１１７内のキャッピング機能２０７、又は、ハイパバイザが提供するＶＮＩＣの機能を用いて制御することも可能である。
【０１６３】
スループット解析部２００は、周期的に、仮想サーバ１０２に割り当てたＶＮＩＣ１３０１の利用帯域を計測する（ステップＳ１６００）。
【０１６４】
スループット解析部２００は、計測された利用帯域の値を用いて、各ＮＩＣ１１７の総利用帯域及び各仮想サーバグループの総利用帯域を算出する（ステップＳ１６０１）。
【０１６５】
このとき、スループット解析部２００は、キャッピングテーブル２０１に計測されたＶＮＩＣ１３０１毎の利用帯域を格納し、ＱｏＳグループテーブル２０２に算出された仮想サーバグループ毎の総利用帯域を格納し、キャパシティテーブル２０３に算出されたＮＩＣ１１７毎の総利用帯域を格納する。
【０１６６】
ステップ１００２〜ステップ１００８の処理は、帯域制御を行う対象がＶＮＩＣ１３０１である点を除き、第１の実施形態と同一であるため説明を省略する。
【０１６７】
第２の実施形態によれば、ＳＲ−ＩＯＶ機能を有さないＮＩＣ１１７を用いた計算機システムにおいても仮想サーバグループ、又は、仮想サーバ１０２に対して帯域保証を実現することができる。また、ＮＩＣ１１７が帯域制御を行うため、物理サーバ１００のＣＰＵリソースを浪費せず、広帯域対応も可能となる。
【０１６８】
（第３の実施形態）
第３の実施形態では、Ｉ／Ｏ通信時の割込処理に遅延をかけることによって帯域制御を行う。以下、第１の実施形態との差異を中心に説明する。
【０１６９】
計算機システムの構成は、第１の実施形態と同一であるため説明を省略する。
【０１７０】
図１７は、本発明の第３の実施形態における物理サーバ１００の構成の詳細を説明するブロック図である。
【０１７１】
第３の実施形態では、ＮＩＣ１１７は、ＳＲ−ＩＯＶ機能及びキャッピングの機能を保持していない。したがって、ハイパバイザ１０１が仮想サーバ１０２にＮＩＣ１１７を仮想化したＶＮＩＣを割り当てる。
【０１７２】
第３の実施形態のハイパバイザ１０１は、割込ハンドラ１７００−１〜１７００−ｍ、割込伝達部１７０１−１〜１７０１−ｍ、ＮＩＣエミュレータ１７０２−１〜１７０２−ｍ、及び仮想スイッチ１３００を新たに含む。一方、第３の実施形態のハイパバイザ１０１は、ＶＦ２０６の割り当てを管理する必要がないためアダプタ割当表２０８を保持せず、また、ＶＦ２０６を操作する必要がないためＰＦドライバ２０９を保持しない。
【０１７３】
割込ハンドラ１７００−１〜１７００−ｍは、ＮＩＣ１１７から受信したデータを受け取るモジュールである。割込伝達部１７０１は、仮想サーバ１０２に受信したデータを送信するモジュールである。ＮＩＣエミュレータ１７０２は、仮想サーバ１０２が送信したデータを受信するモジュールである。
【０１７４】
割込ハンドラ１７００は、ＮＩＣ１１７からデータを受信した場合、仮想サーバ１０２上のゲストＯＳ１０３のＯＳ用割込ハンドラ１７０３に対して割り込みを行うようにスループット解析部２００に命令を発行する。
【０１７５】
スループット解析部２００は、キャッピングテーブル２０１に格納されているキャッピング値に合わせて遅延を設定する。なお、遅延の設定では、物理サーバ１００が有するＴｉｍｅｒ１１０を利用してもよい。
【０１７６】
割込伝達部１７０１は、仮想サーバ１０２上のゲストＯＳ１０３のＯＳ用割込ハンドラ１７０３に割り込みを発行する。
【０１７７】
図１８は、本発明の第３の実施形態におけるメモリ１０５の記憶領域の一例を示す説明図である。
【０１７８】
各仮想サーバ１０２に割り当てられた記憶領域には、ゲストＯＳ１０３、ＶＮＩＣ１３０１、ＮＩＣドライバ１３０２、及びＯＳ用割込ハンドラ１７０３が格納される。
【０１７９】
ハイパバイザ１０１に割り当てられた記憶領域には、エミュレーションデータ２１２、スループット解析部２００、ＱｏＳグループテーブル２０２、キャパシティテーブル２０３、ＮＩＣエミュレータ１７０２、割込ハンドラ１７００、割込伝達部１７０１、及び仮想スイッチ１３００が格納される。
【０１８０】
図１９Ａ及び図１９Ｂは、本発明の第３の実施形態における帯域制御処理の詳細を説明するフローチャートである。
【０１８１】
第３の実施形態における帯域制御処理では、仮想サーバ１０２への割込処理に遅延を設定することによって、帯域を制御する。
【０１８２】
例えば、キャッピング値を上げる場合、スループット解析部２００が、仮想サーバ１０２への割込処理における遅延時間を減少させて当該仮想サーバ１０２の通信速度を上げ、当該仮想サーバ１０２の利用帯域を増やす。一方、キャッピング値を下げる場合、仮想サーバ１０２への割込処理にかける遅延時間を増大させて当該仮想サーバ１０２の通信速度を下げ、当該仮想サーバ１０２の利用帯域を下げる。
【０１８３】
ステップＳ１６００は、第２の実施形態と同一の処理であるため説明を省略する。ステップＳ１００１〜ステップＳ１００３は、第１の実施形態と同一の処理であるため説明を省略する。
【０１８４】
ステップＳ１００３において、仮想サーバ１０２の利用帯域がキャッピング値と同一となっている仮想サーバ１０２が存在すると判定された場合、スループット解析部２００は、当該仮想サーバ１０２のキャッピング値を上げるために当該仮想サーバ１０２への割込処理における遅延時間を小さくするための命令を発行して（ステップＳ１９００）、処理を終了する。なお、当該命令はＴｉｍｅｒ１１０に出力され、Ｔｉｍｅｒ１１０によって割込処理における遅延時間が変更される。
【０１８５】
ステップＳ１００６において、第２仮想サーバグループが存在すると判定された場合、スループット解析部２００は、第２仮想サーバグループに含まれる仮想サーバ１０２のキャッピング値を下げるために、当該仮想サーバ１０２への割込処理における遅延時間を大きくするための命令を発行して（ステップＳ１９０１）、処理を終了する。なお、当該命令はＴｉｍｅｒ１１０に出力され、Ｔｉｍｅｒ１１０によって割込処理における遅延時間が変更される。
【０１８６】
第３の実施形態によれば、仮想サーバグループ又は仮想サーバ１０２への割込処理における遅延時間を制御することによって、帯域保証を実現することができる。また、帯域制御には、Ｔｉｍｅｒ１１０を用いて遅延を設定するのみであり、物理サーバ１００のＣＰＵリソースを浪費せず、広帯域対応も可能となる。
【０１８７】
また、本発明の実施形態について説明したが、本発明の技術範囲は上記実施形態に記載された範囲に限定されない。本発明者によってなされた発明を上記実施の形態に基づき具体的に説明したが、その要旨を逸脱しない範囲で種々の変更または改良を加えることが可能であることは言うまでもない。従って、そのような変更又は改良を加えた形態も当然に本発明の技術的範囲に含まれる。
【符号の説明】
【０１８８】
１００  物理サーバ
１０１  ハイパバイザ
１０２  仮想サーバ
１０３  ゲストＯＳ
１０４  ＣＰＵ
１０５  メモリ
１０６  ＣｈｉｐＳｅｔ
１０７  インターコネクト
１０８  バス
１０９  Ｉ／Ｏアダプタ
１１０  Ｔｉｍｅｒ
１１１  コンソール
１１２  ＬＡＮ
１１３  ディスク装置
１１４  ＳＡＮ
１１６  コンソールインタフェース
１１７  ＮＩＣ
１１８  ＳＣＳＩアダプタ
１１９  ＨＢＡ
２００  スループット解析部
２０１  キャッピングテーブル
２０２  ＱｏＳグループテーブル
２０３  キャパシティテーブル
２０４  ＰＦ
２０５  ＩＯＶレジスタ
２０６  ＶＦ
２０７  キャッピング機能
２０８  アダプタ割当表
２０９  ＰＦドライバ
２１０  ＶＦドライバ
２１１  仮想ＣｈｉｐＳｅｔデータ
２１２  エミュレーションデータ
２１３  仮想ＣｈｉｐＳｅｔ
１３００  仮想スイッチ
１３０１  ＶＮＩＣ
１３０２  ＮＩＣドライバ
１７００  割込ハンドラ
１７０１  割込伝達部
１７０２  ＮＩＣエミュレータ
１７０３  ＯＳ用割込ハンドラ
【図１】
0005871233.tif 000002
【図２】
0005871233.tif 000003
【図３】
0005871233.tif 000004
【図４】
0005871233.tif 000005
【図５】
0005871233.tif 000006
【図６】
0005871233.tif 000007
【図７】
0005871233.tif 000008
【図８】
0005871233.tif 000009
【図９】
0005871233.tif 000010
【図１０Ａ】
0005871233.tif 000011
【図１０Ｂ】
0005871233.tif 000012
【図１１】
0005871233.tif 000013
【図１２】
0005871233.tif 000014
【図１３】
0005871233.tif 000015
【図１４】
0005871233.tif 000016
【図１５】
0005871233.tif 000017
【図１６Ａ】
0005871233.tif 000018
【図１６Ｂ】
0005871233.tif 000019
【図１７】
0005871233.tif 000020
【図１８】
0005871233.tif 000021
【図１９Ａ】
0005871233.tif 000022
【図１９Ｂ】
0005871233.tif 000023