(57)【要約】【課題】  シャーシ間接続ケーブルのＩ／Ｏ帯域最大消費量を超えずに、かつ、ＮＩＣのＶＦをブレードに割当てるときにＩ／Ｏ帯域の負荷均一化や搭載メモリサイズに応じたＶＦ割当てを実現する。【解決手段】  お互いにサーバシャーシ間接続ケーブルで接続される複数のサーバと、複数の仮想的な機能（ＶＦ（Virtual Function）という）を持つ、ＰＣＩ Express(ＰＣＩｅという)仕様に基づくＰＣＩｅデバイスと、サーバとＰＣＩｅデバイスを接続するＰＣＩｅスイッチとを有する計算機システムにおいて、サーバにＰＣＩｅデバイスのＶＦを割当てる際に、サーバシャーシ間接続ケーブルのＩ／Ｏ帯域消費量を均一化し、及び又はサーバに搭載されたメモリのサイズに応じた数のＰＣＩｅデバイスのＶＦの割当てをして、サーバシャーシ間接続ケーブルが持つＩ／Ｏ帯域最大消費量を超えないように、ＰＣＩｅデバイスのＶＦを割当てる。【選択図】  図１
2013161165.tif 000002
【特許請求の範囲】
【請求項１】
お互いにサーバシャーシ間接続ケーブルで接続される複数のサーバと、複数の仮想的な機能（ＶＦ（Virtual Function）という）を持つ、ＰＣＩ Express(ＰＣＩｅという)仕様に基づくＰＣＩｅデバイスと、該サーバと該ＰＣＩｅデバイスを接続するＰＣＩｅスイッチとを有する計算機システムであって、
該サーバに該ＰＣＩｅデバイスのＶＦを割当てる際に、該サーバシャーシ間接続ケーブルが持つＩ／Ｏ帯域最大消費量を超えないように、該ＰＣＩｅデバイスのＶＦを割当てることを特徴とする計算機システム。
【請求項２】
前記ＰＣＩｅデバイスのＶＦを割当てる際に、前記サーバシャーシ間接続ケーブルのＩ／Ｏ帯域消費量を均一化し、かつ前記サーバシャーシ間接続ケーブルのＩ／Ｏ帯域最大消費量を超えないように、前記ＰＣＩｅデバイスのＶＦを割当てることを特徴とする請求項１の計算機システム。
【請求項３】
前記ＰＣＩｅデバイスのＶＦを割当てる際に、前記サーバに搭載されたメモリのサイズに応じた数の前記ＰＣＩｅデバイスのＶＦを割当て、かつ前記サーバシャーシ間接続ケーブルＩ／Ｏ帯域最大消費量を超えないように、前記ＰＣＩｅデバイスのＶＦを割り当てることを特徴とする請求項１の計算機システム。
【請求項４】
前記ＰＣＩｅデバイスのＶＦを割当てる際に、前記サーバシャーシ間接続ケーブルのＩ／Ｏ帯域消費量を均一化し、かつ、前記サーバに搭載されたメモリのサイズに応じた数の前記ＰＣＩｅデバイスのＶＦを割当て、かつ前記サーバシャーシ間接続ケーブルのＩ／Ｏ帯域最大消費量を超えないように、前記ＰＣＩｅデバイスのＶＦを割り当てることを特徴とする請求項１の計算機システム。
【請求項５】
複数の前記サーバに備えられた各ＰＣＩｅスイッチがリング状に接続されることを特徴とする請求項１乃至４のいずれかの項記載の計算機システム。
【請求項６】
前記サーバは、それぞれＣＰＵやメモリのユニットを内蔵しデータ処理を行うブレードを複数有するブレードサーバであり、前記ＶＦを、複数の該ブレードサーバ間で該ブレードに割り当てることを特徴とする請求項１乃至５のいずれかの項記載の計算機システム。
【請求項７】
前記ＰＣＩｅスイッチは、
Ｂｕｓ番号は、前記ＰＣＩｅデバイスを識別するＢｕｓ識別情報と、前記ＰＣＩｅデバイスの該ＶＦを識別する機能(Ｆｕｎｃｔｉｏｎ)識別情報と、前記ブレードを識別するブレード識別情報を記憶して、前記ＶＦと前記ブレードを関連付けするＶＦ・ブレード関連付けテーブルを有し、
該ＶＦの該ブレードへの割当てを満たす条件に従って、該ＶＦ・ブレード関連付けテーブルの該ブレード識別情報を書き換え、
書き換えられた該ＶＦ・ブレード関連付けテーブルの内容に従って、該ＶＦが割り当てられる該ブレードを変更する
ことを特徴とする請求項６記載の計算機システム。
【請求項８】
前記複数のサーバに接続される管理サーバを有し、
該管理サーバは、数式１の計算式を計算して、該計算結果から、前記サーバシャーシ間接続ケーブルのＩ／Ｏ帯域消費量の均一化の条件を満たす、ＶＦとブレードの組合せを決定することを特徴とする請求項６又は７記載の計算機システム。
【数１】
2013161165.tif 000005
ここで、Ｘi,jは、ブレードサーバiとブレードサーバj間のシャーシ間接続ケーブルのＩ／Ｏ帯域消費量、ＡはＮＩＣのＶＦとブレードの全ての組み合わせにおけるＸi,jの平均値を示す。
【請求項９】
前記複数のサーバに接続される管理サーバを有し、
該管理サーバは、数式２の計算式を計算して、該計算結果から、前記サーバに搭載されたメモリのサイズに応じた数の前記ＰＣＩｅデバイスのＶＦを割当てる、ＶＦとブレードの組合せを決定することを特徴とする請求項６乃至８のいずれかの請求項記載の計算機システム。
【数２】
2013161165.tif 000006
ここで、Ｍiはブレードiのメモリサイズ、Ｙiはブレードiに割当てられる仮想マシンの合計メモリ消費量、qはブレードの総数を示す。
【請求項１０】
お互いにサーバシャーシ間接続ケーブルで接続される複数のサーバと、複数の仮想的な機能（ＶＦ（Virtual Function）という）を持つ、ＰＣＩ Express(ＰＣＩｅという)仕様に基づくＰＣＩｅデバイスと、該サーバと該ＰＣＩｅデバイスを接続するＰＣＩｅスイッチとを有する計算機システムにおけるＰＣＩｅデバイスの割当方法であって、
該サーバに該ＰＣＩｅデバイスのＶＦを割当てる際に、該サーバシャーシ間接続ケーブルが持つＩ／Ｏ帯域最大消費量を超えないように、該ＰＣＩｅデバイスのＶＦを割当てることを特徴とするＰＣＩｅデバイスの割当方法。
【請求項１１】
前記ＰＣＩｅデバイスのＶＦを割当てる際に、前記サーバシャーシ間接続ケーブルのＩ／Ｏ帯域消費量を均一化し、かつ前記サーバシャーシ間接続ケーブルのＩ／Ｏ帯域最大消費量を超えないように、前記ＰＣＩｅデバイスのＶＦを割当てることを特徴とする請求項１０のＰＣＩｅデバイスの割当方法。
【請求項１２】
前記ＰＣＩｅデバイスのＶＦを割当てる際に、前記サーバに搭載されたメモリのサイズに応じた数の前記ＰＣＩｅデバイスのＶＦを割当て、かつ前記サーバシャーシ間接続ケーブルＩ／Ｏ帯域最大消費量を超えないように、前記ＰＣＩｅデバイスのＶＦを割り当てることを特徴とする請求項１０のＰＣＩｅデバイスの割当方法。
【請求項１３】
前記ＰＣＩｅデバイスのＶＦを割当てる際に、前記サーバシャーシ間接続ケーブルのＩ／Ｏ帯域消費量を均一化し、かつ、前記サーバに搭載されたメモリのサイズに応じた数の前記ＰＣＩｅデバイスのＶＦを割当て、かつ前記サーバシャーシ間接続ケーブルのＩ／Ｏ帯域最大消費量を超えないように、前記ＰＣＩｅデバイスのＶＦを割り当てることを特徴とする請求項１０のＰＣＩｅデバイスの割当方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、計算機システム及びそれに使用されるＰＣＩｅデバイス共有方法に関する。
【背景技術】
【０００２】
計算機システムの集約性を高めるために、ブレードサーバが実用化されている。ブレードサーバは、それぞれＣＰＵ、ＮＩＣ、メモリを持つ複数のブレード、ネットワークスイッチ及び電源モジュールを、単一のシャーシ内に実装したものであり、これにより省電力化及び設置スペースの削減が可能となる(例えば、特許文献１)。
【０００３】
ＰＣＩ Express(ＰＣＩｅという)仕様はＰＣＩ−ＳＩＧによって策定された、ＰＣＩバスに代わる拡張カードの標準仕様である(例えば、非特許文献１)。ＰＣＩｅに対応したデバイス（以下単にＰＣＩｅデバイスという）を、１つのサーバ上に構築された複数のゲストＯＳ上で共有するための仕様として、ＰＣＩ−ＳＩＧが策定したＳＲ−Ｉ／ＯＶ(Single Root I/O Virtualization)が知られている(例えば、非特許文献２)。
【０００４】
また、ＳＲ−Ｉ／ＯＶを拡張し、複数のサーバからＰＣＩｅに対応したデバイスを共有できるＭＲ−Ｉ／ＯＶ(Multi Root I/O Virtualization)が知られている(例えば、非特許文献３)。ＰＣＩｅ仕様に対応したデバイスを、複数のサーバで共有するためのネットワークスイッチをＰＣＩｅ スイッチという。ＭＲ−Ｉ／ＯＶ仕様に対応したＰＣＩｅスイッチをＭＲ−Ｉ／ＯＶスイッチという。
また、ＰＣＩｅ仕様に対応したデバイスを、複数のブレードで共有するために、ＰＣＩｅデバイスが持つＶＦ(Virtual Function)を複数のブレードへ割当てる方法が提案されている(例えば、特許文献２)。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００２−３２１５３号公報
【特許文献２】特開２０１０−７９８１６号公報
【非特許文献】
【０００６】
【非特許文献１】ＰＣＩ−ＳＩＧ発行, ＰＣＩ Express (R) Base Specification Revision 3.0 2010年
【非特許文献２】ＰＣＩ−ＳＩＧ発行, Single-Root Ｉ／Ｏ Virtualization and Sharing Specification Revision 1.0 2008年
【非特許文献３】ＰＣＩ−ＳＩＧ発行, Multi-Root Ｉ／Ｏ Virtualization and Sharing Specification Revision 1.0 2008年
【発明の概要】
【発明が解決しようとする課題】
【０００７】
複数のブレードサーバがＰＣＩｅシャーシ間接続ケーブルを介して接続されている計算機システムにおいて、計算機で実行される処理(ＪＯＢ)を効率化するために、ＰＣＩｅデバイス(ＮＩＣ: Network Interface Card)内に存在するＶＦ（Virtual Function)を、メモリやＣＰＵ等の処理性能のより高い他のブレードサーバのブレードに割当てたいという考えがある。然るに、従来の技術では、ＶＦをブレードに割当てるときに、シャーシ間接続ケーブルのＩ／Ｏ帯域消費量を均一化するように割当てる方法（Ｉ／Ｏ帯域の負荷均一化）や、ブレードの搭載メモリサイズに応じた数のＶＦを割当てる方法（メモリサイズに応じた割当て）などは実現していない。そのため、ＶＦの割当て方によっては、あるシャーシ間接続ケーブルのＩ／Ｏ帯域消費量だけが他のシャーシ間接続ケーブルよりも高くなってしまうことがある。
【０００８】
しかし、シャーシ間接続ケーブルのＩ／Ｏ帯域消費量が高くなると、そのシャーシ間接続ケーブルで通信に用いているＮＩＣのＶＦの通信能力が低下してしまう。また、他の場合では、搭載メモリサイズの小さいブレード上の仮想マシンに対して多くのＶＦを割当ててしまい、計算効率の低下を招く恐れがある。ＮＩＣのＶＦはブレード上の仮想マシン（Virtual Machine）に割当てられることで、仮想マシンとＮＩＣ間で通信が可能となる。仮想マシンが消費するメモリはＶＦの実行に必要なメモリのみで、１つのＶＦが消費するメモリは一定値と仮定した場合、仮想マシンに割当てられるＶＦの総数に比例して、仮想マシンが消費するメモリは多くなる。
【０００９】
そこで、本発明の目的は、サーバを接続するシャーシ間接続ケーブルのＩ／Ｏ帯域の最大消費量を超えずに、かつ、ＮＩＣのＶＦをサーバに割当てるときにＩ／Ｏ帯域の負荷の均一化や搭載されたメモリのサイズに応じてＶＦの割当てを実現する、計算機システム及びＰＣＩｅデバイスの割当方法を提供することにある。
【課題を解決するための手段】
【００１０】
本発明に係る計算機システムは、好ましくは、お互いにサーバシャーシ間接続ケーブルで接続される複数のサーバと、複数の仮想的な機能（ＶＦ（Virtual Function）という）を持つ、ＰＣＩ Express(ＰＣＩｅという)仕様に基づくＰＣＩｅデバイスと、該サーバと該ＰＣＩｅデバイスを接続するＰＣＩｅスイッチとを有する計算機システムであって、該サーバに該ＰＣＩｅデバイスのＶＦを割当てる際に、該サーバシャーシ間接続ケーブルが持つＩ／Ｏ帯域最大消費量を超えないように、該ＰＣＩｅデバイスのＶＦを割当てることを特徴とする計算機システムとして構成される。
【００１１】
好ましい例では、前記ＰＣＩｅデバイスのＶＦを割当てる際に、前記サーバシャーシ間接続ケーブルのＩ／Ｏ帯域消費量を均一化し、かつ前記サーバシャーシ間接続ケーブルのＩ／Ｏ帯域最大消費量を超えないように、前記ＰＣＩｅデバイスのＶＦを割当てる前記計算機システムとして構成される。
【００１２】
また好ましくは、前記ＰＣＩｅデバイスのＶＦを割当てる際に、前記サーバに搭載されたメモリのサイズに応じた数の前記ＰＣＩｅデバイスのＶＦを割当て、かつ前記サーバシャーシ間接続ケーブルＩ／Ｏ帯域最大消費量を超えないように、前記ＰＣＩｅデバイスのＶＦを割り当てる前記計算機システムである。
【００１３】
また好ましくは、前記ＰＣＩｅデバイスのＶＦを割当てる際に、前記サーバシャーシ間接続ケーブルのＩ／Ｏ帯域消費量を均一化し、かつ、前記サーバに搭載されたメモリのサイズに応じた数の前記ＰＣＩｅデバイスのＶＦを割当て、かつ前記サーバシャーシ間接続ケーブルのＩ／Ｏ帯域最大消費量を超えないように、前記ＰＣＩｅデバイスのＶＦを割り当てる前記計算機システムである。
【００１４】
本発明に係るＰＣＩｅデバイスの割当方法は、好ましくは、お互いにサーバシャーシ間接続ケーブルで接続される複数のサーバと、複数の仮想的な機能（ＶＦ（Virtual Function）という）を持つ、ＰＣＩ Express(ＰＣＩｅという)仕様に基づくＰＣＩｅデバイスと、該サーバと該ＰＣＩｅデバイスを接続するＰＣＩｅスイッチとを有する計算機システムにおけるＰＣＩｅデバイスの割当方法であって、
該サーバに該ＰＣＩｅデバイスのＶＦを割当てる際に、該サーバシャーシ間接続ケーブルが持つＩ／Ｏ帯域最大消費量を超えないように、該ＰＣＩｅデバイスのＶＦを割当てることを特徴とするＰＣＩｅデバイスの割当方法として構成される。
【発明の効果】
【００１５】
本発明によれば、サーバを接続するシャーシ間接続ケーブルのＩ／Ｏ帯域の最大消費量を超えずに、かつ、ＮＩＣのＶＦをサーバに割当てるときにＩ／Ｏ帯域の負荷の均一化や搭載されたメモリのサイズに応じてＶＦの割当てを実現することができる。好ましい例によれば、複数のブレードサーバ間でＰＣＩｅデバイスが持つＶＦを複数のブレードへ割当てることが可能となる。
【図面の簡単な説明】
【００１６】
【図１】一実施例による計算機システムの全体構成を示すブロック図。
【図２】一実施例におけるＮＩＣのＶＦのブレードへの割当て処理を示すフローチャート。
【図３】一実施例におけるＶＦとブレードへ割当てる条件を満たすＶＦとブレードの関連付け処理を示すフローチャート。
【図４】一実施例におけるメモリサイズに応じた割当ての条件を満たす仮想マシンとＶＦとブレードの関連付け処理を示すフローチャート。
【図５】一実施例におけるＩ／Ｏ帯域の負荷均一化の条件の場合、及びＩ／Ｏ帯域を負荷均一化、かつ、メモリサイズに応じた割当ての条件の場合に各条件を満たす仮想マシンとＶＦとブレードの関連付け処理を示すフローチャート。
【図６】一実施例におけるＶＦ・ブレードの関連付けテーブルの構成を示す図。
【図７】一実施例におけるＶＦ・ブレードの関連付け演算結果ＤＢの構成を示す図。
【図８】一実施例のＶＦ・ブレードの関連付け演算結果ＤＢにおいて、数式１のＶと、数式２のＷの計算値を格納した様子を示す図。
【図９】一実施例における、管理端末でＮＩＣのＶＦをブレードに割り当てる条件を選択するときに表示される画面の例を示す図。
【発明を実施するための形態】
【００１７】
以下、図面を参照して、本発明の好ましい実施例について説明する。
図１は、一実施例による計算機システムの全体構成を示すブロック図である。
計算機システムは、複数のブレードサーバ１〜３がお互いに接続され、更に各ブレードサーバ１〜３が管理サーバ６に接続して構成される。管理サーバ６には、管理者が操作する管理端末７が接続される。各ブレードサーバの構成は同じであり、内部構成についてはブレードサーバ１を例にして述べる。
【００１８】
ブレードサーバ１は、複数のブレード１１〜１２、ＰＣＩeスイッチ１１１、及びＳＶＰ１１４を実装している。各ブレードはＣＰＵやメモリ等のユニットを内蔵し、データ処理を行う。ＮＩＣ１１２は、複数のＶＦ１１２１〜１１２２を有し、これらのＶＦはブレード１１〜１２に割当てられる。ＮＩＣ１１２は、ＭＲ−Ｉ／ＯＶ及びＳＲ−Ｉ／ＯＶを複数のサーバで共有することに対応したＰＣＩｅスイッチ１１１を経由して、ＮＩＣのＶＦが割当てられたブレードと通信を行う。ＰＣＩｅスイッチ１１１は、システム全体のＮＩＣのＶＦとブレードを関連付けするＶＦ・ブレード関連付けテーブル１１３（図６を参照して後述）を有する。
【００１９】
各ブレードサーバ１〜３は、ポート１１６〜３１６に接続されるＰＣＩｅシャーシ間接続ケーブル７１〜７３によってリング状に接続され、他のブレードサーバとの間でデータ通信を行う。ＰＣＩｅスイッチ１１１は、ＰＣＩｅシャーシ間接続ケーブル７１〜７３用の接続ポート１１６を持つ。ＳＶＰ１１４(Service Processor)は、ＰＣＩｅスイッチ１１１と接続しこれを制御すると共に、ブレードサーバ１内の全体を管理する。ＳＶＰ１１４はまた、他のブレードサーバのＳＶＰと同様に、管理サーバ６に接続される。
【００２０】
管理サーバ６は、各ブレードサーバ１〜３の、ＮＩＣのＶＦ・ブレード関連付けテーブル、ＳＶＰ、Ｉ／Ｏ、ブレード等から、Ｉ／Ｏ帯域の負荷均一化とメモリサイズに応じた割当てに必要な情報(システムを構成するハードウェア情報)を、ＬＡＮスイッチ５及びハードウェア情報受信部６１を介して受信する。また、ユーザが管理端末７を操作することで、必要な設定情報を管理サーバ６のハードウェア情報受信部６１へ送信することができる。ハードウェア情報受信部６１はこれらの情報をＮＩＣのＶＦ・ブレード関連付け演算部６２へ送信する。ＮＩＣのＶＦ・ブレード関連付け演算部６２はこれらの情報を用いて演算を行い、Ｉ／Ｏ帯域の負荷均一化やメモリサイズに応じてＮＩＣのＶＦ・ブレードの関連付けを決定する。管理サーバ６は、ＶＦ・ブレード関連付け演算部６２による演算結果をＮＩＣのＶＦ・ブレード関連付け演算結果ＤＢ６３に格納する。更に、演算結果を、ＮＩＣのＶＦ・ブレード関連付け演算送信部６４を介してＬＡＮケーブル４５に接続されているＳＶＰ１１４、２１４、３１４へ送信する。そして、各ＳＶＰはＮＩＣのＶＦ・ブレード関連付けテーブル１１３、２１３、３１３を書き換えてＮＩＣのＶＦ・ブレードの関連付けを変更する。
【００２１】
次に、ＮＩＣのＶＦ・ブレード関連付けテーブル及びＮＩＣのＶＦ・ブレードの関連付け演算結果ＤＢの構成について説明する。
図６は、ＮＩＣのＶＦ・ブレード関連付けテーブルの構成を示す。
ＶＦ・ブレード関連付けテーブル１１３、２１３、３１３はシステム全体のＮＩＣのＶＦとブレードを関連付けする。Ｂｕｓ番号は、ＮＩＣごとに異なる番号が割当てられる。また、Ｆｕｎｃｔｉｏｎ番号はＮＩＣのＶＦごとに異なる番号が割当てられる。図示では、図１の計算機システムにおいて各ブレードサーバ１，２，３のＮＩＣ内に存在するＶＦ１１２１(Bus番号:a, Function番号:p)、ＶＦ２１２２(Bus番号:b, Function番号:s)、ＶＦ３１２１(Bus番号:c, Function番号:t)が、それぞれ、ブレード番号１１、ブレード番号２２、ブレード番号３１に割当てられているときのＶＦ・ブレード関連付けテーブルを示している。
【００２２】
図７は、ＮＩＣのＶＦ・ブレードの関連付け演算結果ＤＢ６３（以下単にＤＢ６３という）の構成を示す。ＤＢ６３は、ＮＩＣのＶＦとブレードの全ての組み合わせについて、各ＮＩＣのＶＦに対する割当て先のブレードの番号を格納する。即ち、ＶＦ・ブレード組み合せ番号に対応して、帯域関数Ｖ計算値、メモリ関数Ｗ計算値、及び割当て先のブレードの番号を格納する。図示では、図１の計算機システムにおいて各ブレードサーバ１，２，３に、ＮＩＣのＶＦが１個、ブレードが１個存在する時のＮＩＣのＶＦ・ブレードの組み合わせを示している。
【００２３】
図８は、図７のＶＦとブレードの組み合わせにおいて、帯域関数Ｖ計算値、メモリ関数Ｗ計算値を算出して、それらの計算値を格納した様子を示す。
ここで、帯域関数Ｖ計算値、メモリ関数Ｗ計算値について説明する。
【００２４】
【数１】
2013161165.tif 000003
【００２５】
数式１は、各ＮＩＣのＶＦとブレードの組み合わせにおいて、シャーシ間接続ケーブルのＩ／Ｏ帯域消費量の均一化の度合いを表す関数である。数式１におけるＶを以下、帯域関数Ｖと呼ぶ。数式１における帯域関数Ｖと組み合わせ(ＮＩＣのＶＦ・ブレード)を関連付けるために、図７における各組み合わせにおいて数式１を計算し、図８の帯域関数Ｖの列に値を格納する。
【００２６】
数式１におけるＸi,jは、ブレードサーバiとブレードサーバj間のシャーシ間接続ケーブルのＩ／Ｏ帯域消費量を表す。Ｘi,jを計算するには、ＮＩＣのＶＦが他ブレードサーバのブレードに割当てられた時のシャーシ間接続ケーブルのＩ／Ｏ帯域消費量をある一定値とする。例えば、図８では、１つのＮＩＣのＶＦが他ブレードサーバのブレードに割当てられたときのＩ／Ｏ帯域消費量を１と仮定している。ＮＩＣのＶＦ・ブレード組み合わせ番号１４では、ブレードサーバ２のＶＦ２１２１がブレードサーバ３のブレード３１に割当てられ、ブレードサーバ３のＶＦ３１２１がブレードサーバ２のブレード２１に割当てられるので、シャーシ間接続ケーブル７２のＩ／Ｏ帯域消費量は、Ｘ2,3＝１＋１＝２と求めることができる。同様にして、Ｘ1,2＝１、Ｘ1,3＝０である。数式１におけるＡはＮＩＣのＶＦとブレードの全ての組み合わせにおけるＸi,jの平均値であり、Ｖの値を図８に格納する。数式１では、各シャーシ間接続ケーブルのＩ／Ｏ帯域消費量がＡに近ければ近い程、Ｖの値が小さくなり、各シャーシ間接続ケーブルのＩ／Ｏ帯域消費量が均一化していることを意味する。
【００２７】
【数２】
2013161165.tif 000004
【００２８】
数式２は、各ＮＩＣのＶＦとブレードの組み合わせにおいて、ブレードの搭載メモリサイズに応じた数のＮＩＣのＶＦが割当てられているかどうかを示す関数であり、数式２におけるＷを以下ではメモリ関数Ｗと呼ぶ。数式２におけるメモリ関数Ｗと組み合わせ(ＮＩＣのＶＦ・ブレード)を関連付けるために、図７におけるＮＩＣのＶＦとブレードの各組み合わせにおいて数式２を計算し、図８のメモリ関数Ｗの列に値を格納する。数式２におけるqはブレードの総数である。Ｍiはブレードiのメモリサイズであり、ブレードによって異なる値をとる。図８では、ｑ＝３, Ｍ11＝２, Ｍ21＝１, Ｍ31＝０．８
である。Ｙiはブレードiに割当てられる仮想マシンの合計メモリ消費量である。仮想マシンが消費するメモリはＶＦの実行に必要なメモリのみで、１つのＶＦが消費するメモリは一定値と仮定とする。数式２では、Ｗの値が小さければ小さい程、各ブレードの搭載メモリサイズに比例した数の仮想マシンが割り当られていることを意味する。
【００２９】
図９は、ＮＩＣのＶＦをブレードに割り当てる条件を選択するときに管理端末７に表示される画面の例を示す。
Ｉ／Ｏ帯域の負荷均一化の条件９０１は、一部のシャーシ間接続ケーブルのＩ／Ｏ帯域消費量だけが高くなり過ぎないように、各シャーシ間接続ケーブルのＩ／Ｏ帯域消費量が同程度になるようなＮＩＣのＶＦを割当てる条件である。
メモリサイズに応じた割当ての条件９０２は、ブレードの搭載メモリサイズの大きさに比例した数のＶＦを、ブレード上の仮想マシンに割当てる方法である。ブレードによって搭載メモリサイズが異なる場合に、メモリサイズの小さいブレードに対して多くのＮＩＣのＶＦを割当ててしまうと、仮想マシンの実行に必要なメモリが足りなくなり、そのブレードの計算効率の低下を招く恐れがあるため、メモリサイズの大きさに応じた数のＶＦを割当てることが必要である。
Ｉ／Ｏ帯域を負荷均一化、かつ、メモリサイズに応じた割当ての条件９０３は、Ｉ／Ｏ帯域の負荷均一化の条件とメモリサイズに応じた割当ての条件を組み合わせたものである。Ｉ／Ｏ帯域の負荷均一化の条件を満たすＮＩＣのＶＦとブレードの組み合わせにおいて、数式２のメモリ関数Ｗの計算値が最小である組み合わせを選択する。
【００３０】
次に、図２〜５のフローチャートを参照して、ＮＩＣのＶＦのブレードへの割当てに伴う処理動作について説明する。
まず、図２を用いて、ＮＩＣのＶＦのブレードへの割当て処理動作について説明する。この実施例では、ブレードへのＮＩＣのＶＦの割当てを、ユーザが手動または自動で設定するか選択可能である。自動で設定する場合は、ＮＩＣのＶＦをブレードに割り当てる条件(本実施例においては、Ｉ／Ｏ帯域の負荷均一化の条件９０１、メモリサイズに応じた割当ての条件９０２、Ｉ／Ｏ帯域を負荷均一化、かつ、メモリサイズに応じた割当ての条件９０３)からユーザが１つ選択肢を選択する。
【００３１】
図２において、ＮＩＣのＶＦのブレードへの割当て処理動作が開始すると、管理サーバ６は、各ブレードサーバのＮＩＣからの情報（即ち各ＮＩＣのＶＦ数、各ブレードサーバ内のブレード数、各ブレードのメモリサイズ、各シャーシ間接続ケーブルの最大Ｉ／Ｏ帯域消費量）を、ＬＡＮスイッチ５を経由してハードウェア情報受信部６１で受信する（Ｓ２０１）。
次に、ユーザが管理端末７を通して、ＮＩＣのＶＦのブレードへの割当てを手動で行うか自動で行うかを選択すると、その選択は管理サーバ６へ送信される（Ｓ２０２)。
【００３２】
管理サーバ６は、管理端末７から送られる、ＮＩＣのＶＦの割当て選択が、手動または自動かを判断する（Ｓ２０３)。判断の結果、手動による設定の場合は（Ｓ２０３Yes）、管理端末７に表示されるＮＩＣのＶＦ・ブレード関連付け演算結果ＤＢ６３（図７）の情報からで、ユーザはＶＦ・ブレード組み合わせの番号１の行に、ＶＦに対応するブレード番号を入力し、ＮＩＣのＶＦとブレードの組み合わせを決定する（Ｓ２０４)。
【００３３】
管理サーバ６は、ＮＩＣのＶＦのBus・Function番号及びＶＦ番号、ブレード番号といったＶＦ・ブレードの関連付け情報をＮＩＣのＶＦ・ブレード関連付け演算結果送信部６４から送信する（Ｓ２０６）。ＳＶＰ１１４、２１４、３１４は管理ＬＡＮ４５を経由して、関連付け情報を取得する。そして、ＳＶＰ１１４、２１４、３１４は、それぞれＮＩＣのＶＦ・ブレード関連付けテーブル１１３、２１３、３１３を関連付け情報に従って書き換える（Ｓ２０６）。ブレードサーバ１〜３のＮＩＣのＶＦは、ＮＩＣのＶＦ・ブレード関連付けテーブルに従って、割当てられるブレードが変更され（Ｓ２０７)、処理が完了する（Ｓ２０８)。
【００３４】
上記手動か自動かの判断において（Ｓ２０３)、自動による設定の場合は、管理端末７に表示される管理画面（図９）から、ユーザはＮＩＣのＶＦをブレードに割り当てる条件(本例ではＩ／Ｏ帯域の負荷均一化の条件９０１、メモリサイズに応じた割当ての条件９０２、Ｉ／Ｏ帯域を負荷均一化かつ、メモリサイズに応じた割当ての条件９０３)から１つ条件を選択する（Ｓ２１２)。そして、ＮＩＣのＶＦをブレードに割り当てる条件を満たすＶＦとブレードの関連付けの自動計算の処理を行う（Ｓ２１３)。その後は、処理Ｓ２０５を経て、処理の完了となる（Ｓ２０８)。なお、処理Ｓ２１３については図３を参照して詳述する。
【００３５】
次に、図３のフローチャートを参照して、ＮＩＣのＶＦをブレードに割り当てる条件を満たすＶＦとブレードの関連付けの自動計算処理動作について説明する。
ハードウェア情報受信部６１は、管理端末７から送信され情報を受信し、その受信した情報をＶＦ・ブレード関連付け演算部６２へ送信する（Ｓ３０１)。ＶＦ・ブレード関連付け演算部６２は、受信した情報から、全てのＮＩＣのＶＦとブレードの組み合わせを列挙し、図７のＶＦ・ブレード関連付けテーブルを作成する（Ｓ３０２)。そして、数式１における帯域関数Ｖと組み合わせ(ＮＩＣのＶＦ・ブレード)を関連付けるために、図７におけるＶＦとブレードの各組み合わせにおいて数式１を計算し、ＶＦ・ブレードの関連付け演算結果ＤＢ６３（図８）の帯域関数Ｖの列に値を格納する（Ｓ３０３）。例えば、図８では、１つのＮＩＣのＶＦが他ブレードサーバのブレードに割当てられたときのＩ／Ｏ帯域消費量を１と仮定している。ＮＩＣのＶＦ・ブレード組み合わせ番号１４では、ブレードサーバ２のＶＦ２１２１がブレードサーバ３のブレード３１に割当てられ、ブレードサーバ３のＶＦ３１２１がブレードサーバ２のブレード２１に割当てられるので、シャーシ間接続ケーブル７２のＩ／Ｏ帯域消費量は、Ｘ2,3＝１＋１＝２と求めることができる。同様にして、Ｘ1,2＝１、Ｘ1,3＝０である。数式１におけるＡはＮＩＣのＶＦとブレードの全ての組み合わせにおけるＸi,jの平均値であり、Ｖの値を図８に格納する。
【００３６】
次に、数式２におけるメモリ関数Ｗと組み合わせ(ＮＩＣのＶＦ・ブレード)を関連付けるために、図７におけるＶＦとブレードの各組み合わせにおいて数式２を計算して、ＶＦ・ブレードの関連付け演算結果ＤＢ６３（図８）のメモリ関数Ｗの列に値を格納する（Ｓ３０４）。数式２におけるqはブレードの総数である。Ｍiはブレードiのメモリサイズであり、ブレードによって異なる値をとる。図８では、
ｑ＝３, Ｍ11＝２, Ｍ21＝１, Ｍ31＝０．８
である。Ｙiはブレードiに割当てられる仮想マシンの合計メモリ消費量である。仮想マシンが消費するメモリはＶＦの実行に必要なメモリのみで、１つのＶＦが消費するメモリは一定値と仮定とする。数式２では、Ｗの値が小さければ小さい程、各ブレードの搭載メモリサイズに比例した数の仮想マシンが割り当られていることを意味する。
【００３７】
その後、ＶＦのブレードへの割当条件がメモリサイズに応じた割当てか否かを判断する（Ｓ３０５）。この判断において、先の処理Ｓ２１２で、ユーザが管理端末７からＶＦのブレードへの割当て条件として、メモリサイズに応じた割当ての条件９０２を選択している場合は、メモリサイズに応じた割当ての条件を満たす仮想マシンとＶＦとブレードの関連付けの自動計算の処理（図４）に移行する（Ｓ３０６)。一方、ユーザが管理端末７よりＩ／Ｏ帯域の負荷均一化の条件９０１、またはＩ／Ｏ帯域を負荷均一化かつメモリサイズに応じた割当ての条件９０３を選択している場合は、それらの条件を満たす処理（図５）に移行する（Ｓ３０７)。
【００３８】
次に、図４のフローチャートを参照して、メモリサイズに応じた割当ての条件を満たす仮想マシンとＶＦとブレードの関連付けの自動計算の処理動作について説明する。
この自動計算の処理が開始すると、まず、ＶＦ・ブレードの関連付け演算結果ＤＢ６３（図８）の帯域関数Ｖ、メモリ関数Ｗと組み合わせの関連付けをメモリ関数Ｗの値で昇順にソートする（Ｓ４０１)。メモリ関数Ｗの計算値が１番小さいＮＩＣのＶＦ・ブレードの組み合わせから順に、各シャーシ間接続そして、ケーブルの値が最大Ｉ／Ｏ帯域消費量を越えない組み合わせの中で、メモリ関数Ｗの計算値が最小の組み合わせをチェックする（Ｓ４０２）。ＶＦ・ブレードの関連付け演算結果ＤＢ６３（図８）において、メモリ関数Ｗの計算値が最小の組み合わせは、ＮＩＣのＶＦ・ブレード組み合わせは番号１６、１９、２２である。ここで、各シャーシ間接続ケーブルの最大Ｉ／Ｏ帯域消費量を３と仮定した場合、これらの組み合わせは最大Ｉ／Ｏ帯域消費量を越えない組み合わせである（Ｓ４０２)。
【００３９】
ここで、処理Ｓ４０２で得た組み合わせが複数存在するか判断して（Ｓ４０３）、その結果もし複数の組合せが存在する場合は、ユーザが管理端末７より任意の１つの組み合わせを選択する。図８の例では、ＮＩＣのＶＦ・ブレード組み合わせは番号１６、１９、２２の３個存在するので、この中からユーザが管理端末７を通して１つ選択する（Ｓ４０４)。Ｓ４０２で得た組み合わせが１つの場合は、その組み合わせが選択され、処理を終了する（Ｓ４０５)。
【００４０】
次に、図５のフローチャートＩ／Ｏ帯域の負荷均一化の条件９０１、またはＩ／Ｏ帯域を負荷均一化、かつメモリサイズに応じた割当ての条件９０３を満たす仮想マシンとＶＦとブレードの関連付けの自動計算の処理動作について説明する。
この自動計算の処理が開始すると、まず、ＶＦ・ブレードの関連付け演算結果ＤＢ６３（図８）の帯域関数Ｖ、メモリ関数Ｗと組み合わせの関連付けを、帯域関数Ｖの値で昇順にソートする（Ｓ５０１)。帯域関数Ｖの計算値が１番小さいＮＩＣのＶＦ・ブレードの組み合わせから順に、各シャーシ間接続ケーブルの値が最大Ｉ／Ｏ帯域消費量を越えない組み合わせの中で、帯域関数Ｖの計算値が最小の組み合わせをチェックする。図８の例では、帯域関数Ｖの計算値が最小の組み合わせは、ＮＩＣのＶＦ・ブレード組み合わせ番号１５、２３である。ここで、各シャーシ間接続ケーブルの最大Ｉ／Ｏ帯域消費量を３と仮定した場合、これらの組み合わせは最大Ｉ／Ｏ帯域消費量を越えない組み合わせである（Ｓ５０２)。処理Ｓ５０２で得られた組み合わせが１つの場合は、その組み合わせが選択され、一連の処理を終了する（Ｓ５０３、Ｓ５０８)。
【００４１】
一方、処理Ｓ５０２で得られた組み合わせが複数の場合は（Ｓ５０３Yes）、先のＳ２１２で、ユーザが管理端末７より選択した条件が、Ｉ／Ｏ帯域の負荷均一化の条件９０１またはＩ／Ｏ帯域を負荷均一化、かつ、メモリサイズに応じた割当ての条件９０３によって分岐する（Ｓ５０３、Ｓ５０４)。Ｉ／Ｏ帯域の負荷均一化の条件９０１が選択された場合は、ユーザが管理端末７より任意に１つの組み合わせを選択し（Ｓ５０７)、処理を終了する（Ｓ５０８)。
【００４２】
Ｉ／Ｏ帯域を負荷均一化、かつ、メモリサイズに応じた割当ての条件９０３が選択された場合は、処理Ｓ５０２で得られた組み合わせの中から、メモリ関数Ｗの計算値が最小の組み合わせをチェックする。図８の例では、処理Ｓ５０２で得られたＶＦ・ブレード組み合わせは番号１５、２３であり、これらはメモリ関数Ｗの計算値が等しいので、２つの組み合わせが得られる（Ｓ５０５)。処理Ｓ５０５で得られた組み合わせが、１つの場合は処理を終了する（Ｓ５０８)。複数の場合はユーザが管理端末７より任意に１つの組み合わせを選択して（Ｓ５０７)、処理を終了する。
【００４３】
以上、本発明の好ましい実施例について説明したが、本発明は上記実施例に限定されず、種々変形、応用して実施し得る。
例えば、上記実施例では、複数のブレードサーバ間でＰＣＩｅデバイスが持つＶＦを複数のブレードへ割当てる例について述べたが、他の例によれば、ＮＩＣのＶＦはブレードに限らず、サーバが持つ仮想マシンに割り当てることも可能である。その割当て方法は上記した実施例と実質的に変わらない。
【符号の説明】
【００４４】
１:ブレードサーバ  ５:ＬＡＮスイッチ  ６:管理サーバ  ７:管理端末  １１:ブレード  ４５:ＬＡＮケーブル  ６１:ハードウェア情報受信部  ６２:ＶＦ・ブレード関連付け演算部  ６３:ＶＦ・ブレード関連付け演算結果ＤＢ  ６４:ＶＦ・ブレード関連付け演算結果送信部  ７３:ＰＣＩｅシャーシ間接続ケーブル  １１１:ＰＣＩｅスイッチ  １１２:ＮＩＣ  １１３:ＶＦ・ブレード関連付けテーブル  １１４:ＳＶＰ  １１６:ポート  １１２１:ＶＦ
【図１】
2013161165.tif 000007
【図２】
2013161165.tif 000008
【図３】
2013161165.tif 000009
【図４】
2013161165.tif 000010
【図５】
2013161165.tif 000011
【図６】
2013161165.tif 000012
【図７】
2013161165.tif 000013
【図８】
2013161165.tif 000014
【図９】
2013161165.tif 000015