(57)【要約】（ブレード・センタなどの）複数の物理プロセッサのクラスタ内で動作可能な複数の仮想機械の負荷バランシングのための記憶装置関連負荷率情報を生成するための方法およびシステム。全体としての記憶装置システムの動作に関する、かつ記憶装置システム内の複数の記憶装置コントローラの各々に関する負荷率情報が記憶装置システム内で生成される。記憶装置システム内でそのように生成された情報は、複数の仮想機械と関連する負荷バランシング要素に通信される。次いでこの負荷バランシング要素は、複数の仮想機械の動作を複数の物理プロセッサにわたって分散または再分散するために、任意選択で他の負荷率情報と組み合わせて、この記憶装置関連負荷率情報を利用する。
2010512600.tif 000002
【特許請求の範囲】
【請求項１】
物理プロセッサの各々が前記クラスタの他の各物理プロセッサに通信可能に結合される、物理プロセッサのクラスタと、
各仮想機械が前記物理プロセッサの任意のサブセット上で動作可能であり、複数の仮想機械が複数の前記物理プロセッサにわたって動作するように分散される、複数の仮想機械と、
前記複数の物理プロセッサに通信可能に結合され、負荷率情報に基づいて前記物理プロセッサの第１のサブセットから前記物理プロセッサの異なるサブセットに仮想機械を再分散するようになされた負荷バランサと、
複数の記憶装置コントローラを有し、前記物理プロセッサに結合され、記憶装置システムの前記記憶装置コントローラに関する記憶装置システム負荷率情報を生成するようになされた記憶装置負荷率情報ジェネレータを含む記憶装置システムであって、前記負荷率情報ジェネレータが、前記仮想機械を再分散するために中で使用するために前記負荷バランサに前記記憶装置システム負荷率情報を与えるように、前記負荷バランサに通信可能に結合される記憶装置システムとを備える、システム。
【請求項２】
各物理プロセッサが、前記記憶装置システムの前記複数の記憶装置コントローラの対応するサブセットに結合される、請求項１に記載のシステム。
【請求項３】
各物理プロセッサが、前記記憶装置システムの前記複数の記憶装置コントローラのうちのいずれかに結合され得る、請求項１に記載のシステム。
【請求項４】
前記物理プロセッサが、前記記憶装置コントローラにスイッチ型ファブリックを介して結合される、請求項３に記載のシステム。
【請求項５】
前記物理プロセッサが、前記記憶装置コントローラにスイッチ型シリアル付加ＳＣＳＩ（「ＳＡＳ」）ネットワークを介して結合される、請求項３に記載のシステム。
【請求項６】
前記複数の記憶装置コントローラが互いに結合され、１つの記憶装置コントローラが監督コントローラとして指定され、前記記憶装置負荷率情報ジェネレータが、前記複数のコントローラの各々に関する記憶装置負荷率情報を生成するように前記監督コントローラ内で動作可能である、請求項１に記載のシステム。
【請求項７】
前記記憶装置システムが、前記複数の記憶装置コントローラの対応するコントローラ内で、前記対応するコントローラに対する記憶装置負荷率情報を生成するように、各々が動作可能な複数の記憶装置負荷率情報ジェネレータをさらに備える、請求項１に記載のシステム。
【請求項８】
記憶装置システム内の複数の記憶装置コントローラの負荷に関する記憶装置負荷率情報を前記記憶装置システム内で生成することと、
前記記憶装置負荷率情報を複数の物理プロセッサと関連する負荷バランサに通信することと、
前記記憶装置コントローラの使用と関連する前記物理プロセッサ上の負荷をバランスさせるように、複数の仮想機械のうちの１つまたは複数をクラスタの異なる物理プロセッサ上で動作するように再分散することとを含む、記憶装置システムに結合される物理プロセッサのクラスタ内で動作する複数の仮想機械の負荷をバランスさせる方法。
【請求項９】
生成する前記ステップがさらに、
前記負荷率情報内の変化の検知に応答して前記負荷バランサを更新させるように、前記記憶装置負荷率情報を生成することをさらに含む、請求項８に記載の方法。
【請求項１０】
生成する前記ステップが、
Ｉ／Ｏ要求の処理のための、返されるステータス情報の一部分として、前記記憶装置負荷率情報を生成することをさらに含み、かつ、
通信する前記ステップが、
完了したＩ／Ｏ要求に応答して、ステータス情報として、前記生成された記憶装置負荷率情報を返すことをさらに含む、請求項８に記載の方法。
【請求項１１】
前記記憶装置負荷率情報内の情報に関する１つまたは複数の閾値を設けることをさらに含み、
通信する前記ステップが
前記記憶装置負荷率情報内の値が対応する閾値を超えるとき、前記負荷バランサに前記記憶装置負荷率情報を通信することをさらに含む、請求項８に記載の方法。
【請求項１２】
設ける前記ステップが、
前記１つまたは複数の閾値を動的に更新することをさらに含む、請求項１１に記載の方法。
【請求項１３】
設ける前記ステップが、
前記記憶装置コントローラの各々と現在通信している動作中の仮想機械の数と、
前記仮想機械の任意のセットのＩ／Ｏ要求処理率と、
コントローラと仮想機械の任意のセットの間のデータ処理量と、
記憶装置コントローラ内の未処理のＩ／Ｏ要求の数と、
仮想機械の１セットからの未処理のＩ／Ｏ要求の数と、
記憶装置コントローラの任意のセットと仮想機械の任意のセットの間の可能な通信パスの数と、
仮想機械の任意のセットに接続される記憶装置コントローラの合計数と、
物理プロセッサの数、とからなる群から選択される１つまたは複数の尺度から導出される１つまたは複数の閾値を設けることをさらに含む、請求項１１に記載の方法。
【請求項１４】
スイッチ型ファブリック接続を介して記憶装置システムに結合されるブレード・センタを有するシステム内で動作可能な複数の仮想機械用の負荷バランシング装置であって、前記ブレード・センタが複数のプロセッサ／メモリ複合体を備え、前記記憶装置システムが複数の記憶装置コントローラを備える負荷バランシング装置において、
前記複数の記憶装置コントローラのうちの１つまたは複数に関する記憶装置負荷率情報を生成するための、前記記憶装置システム内で動作可能な記憶装置システム負荷率情報ジェネレータと、
前記ブレード・センタ内で動作可能な、かつ前記記憶装置システム負荷率情報ジェネレータに通信可能に結合される負荷バランサであって、前記負荷バランサが前記ジェネレータから記憶装置負荷率情報を受け取るようになされ、かつ前記負荷バランサが、前記複数の仮想機械のうちの１つまたは複数の動作を前記ブレード・センタの前記複数のプロセッサ／メモリ複合体にわたって分散するのに前記記憶装置負荷率情報を利用するようになされている負荷バランサとを備える、負荷バランシング装置。
【請求項１５】
前記ジェネレータが、前記負荷率情報内で変化を検知するのに応答して前記記憶装置負荷率情報を生成するようになされた、請求項１４に記載の装置。
【請求項１６】
前記ジェネレータが、記憶装置コントローラによるＩ／Ｏ要求の処理に対して返されたステータス情報の一部分として、前記記憶装置負荷率情報を生成するようになされ、かつ完了したＩ／Ｏ要求に応答して、前記記憶装置負荷率情報をステータス情報として通信するようになされている、請求項１４に記載の装置。
【請求項１７】
前記ジェネレータが、
前記記憶装置負荷率情報内の情報に関する閾値をさらに備え、
前記ジェネレータが、前記記憶装置負荷率情報内の値が前記閾値を超えるとき、前記記憶装置負荷率情報を前記負荷バランサに通信するようにさらになされている、請求項１４に記載の装置。
【請求項１８】
前記ジェネレータが、前記閾値を動的に更新するようにさらになされている、請求項１７に記載の装置。
【請求項１９】
前記閾値が、
前記記憶装置コントローラの各々と現在通信している動作中の仮想機械の数と、
前記仮想機械の任意のセットのＩ／Ｏ要求処理率と、
コントローラと仮想機械の任意のセットの間のデータ処理量と、
記憶装置コントローラ内の未処理のＩ／Ｏ要求の数と、
仮想機械の１セットからの未処理のＩ／Ｏ要求の数と、
記憶装置コントローラの任意のセットと仮想機械の任意のセットの間の可能な通信パスの数と、
仮想機械の任意のセットに接続される記憶装置コントローラの合計数と、
物理プロセッサの数とからなる群から選択される１つまたは複数の尺度から導出される、請求項１７に記載の装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は一般にクラスタ化されたコンピュータ環境で動作する複数の仮想機械のための負荷バランシングに関し、より具体的には、いわゆる「ブレード・センタ」などクラスタの複数の物理プロセッサ上で動作可能な複数の仮想機械の負荷バランシングに際し、記憶装置システム負荷情報を生成しかつ利用するためのシステムおよび方法に関する。
【背景技術】
【０００２】
コンピュータ業界では、物理コンピュータ環境の「頂上」で動作する仮想機械環境を用意することは一般に知られている。ゲスト・オペレーティング・システムとも呼ばれる仮想機械環境は、ユーザおよび／またはアプリケーション・プログラムが、関連する専用のメモリ、記憶装置、および／またはＩ／Ｏ周辺装置を有する専用の物理プロセッサを、全て仮想オペレーティング・システム（「ゲスト」オペレーティング・システム）の制御下で利用しているかのように動作することができるように、仮想レイヤを提供する。したがって複数のそのような仮想機械は、複数のユーザおよび／またはアプリケーション・プログラムが、それぞれが専用の物理コンピュータ環境を使用しているかのように同時に／並行して動作することができるように、単一のコンピュータ環境上で同時に（かつ／または並行して）動作することができる。例えば、ＩＢＭ  ＭＶＳ（ｍｕｌｔｉｐｌｅ  ｖｉｒｔｕａｌ  ｓｙｓｔｅｍ）コンピュータ環境を含む、かつ仮想機械ソフトウエア・コンポーネントのＶＭｗａｒｅファミリなどのより最近の例を含むそのような仮想機械コンピュータ技術は、かなり以前からコンピュータ分野で良く知られている。
【０００３】
上記で言及したように、物理コンピュータ環境の頂上で仮想機械を動作させることの主要な利点は、複数のそのような仮想機械が同時に／並行して単一の物理コンピュータ環境上で動作可能になることである。各仮想機械は、ユーザの対応するセットの代わりにかつ／またはアプリケーション・プログラムの対応するセットの代わりに動作可能である。その上クラスタ化されたコンピュータは、複数の物理プロセッサが「クラスタ」内で密結合するように進化しているので、仮想機械コンピュータ技術は、そのようなクラスタでの複数のプロセッサを利用できるようになされている。特に、複数の仮想機械コンピュータ環境は並行して／同時に動作可能であり、かつクラスタ化されたコンピュータ環境内で構成される複数の物理プロセッサにわたって分散することができる。本明細書で使用されるとき、クラスタ化されたコンピュータは、短距離バス構造を介して通信する密結合された物理プロセッサを含むのみならず、複数のプロセッサが良く知られたコンピュータ・ネットワーク通信プロトコルおよび媒体を利用して「クラスタ」として論理的に結合される、より広く分散されるネットワーク・コンピュータも含むことを広く理解すべきである。特に本明細書で使用されるとき、「クラスタ」は、（各々がオペレーティング・システムの制御下で完全に動作するプロセッサ／複数のプロセッサおよびメモリを含む）複数のサーバが共有ファブリックを介してかつ／または共通のバックプレーン／ミッドプレーン・バス・アーキテクチャを介して密結合された「ブレード・センタ」と一般に呼ばれる構成を含む。したがってクラスタは、密結合された複数の物理プロセッサおよび／またはプロセス相互間通信のために短距離バス構造またはファブリック接続を共有する密接に物理的に接近するプロセッサ／メモリ複合体を意味することができ、あるいはコンピュータ・ネットワーク・プロトコルを利用する複数のプロセッサを結合するより広い物理的分布を含むことができる。さらに本明細書で使用されるとき、「複数のプロセッサ」は、単一のブレード／複合体の上に複数のプロセッサを有するブレードまたは複合体の単一のプロセッサからはっきりと区別される、ブレードなどのプロセッサ／メモリ複合体を指すことを意図している。換言すれば、本明細書で使用されるとき、「複数のプロセッサ」の各「プロセッサ」は、一般に単一のオペレーティング・システムの制御下のプロセッサ／メモリ複合体を含む。
【０００４】
複数の仮想機械を動作させるそのようなクラスタ・コンピュータ環境では、複数のプロセッサのうちの異なるプロセッサにわたって複数の仮想機械（すなわちゲスト・オペレーティング・システム）の動的な分散および再分散を可能にするように、クラスタ化された環境内に負荷バランシング方法および／またはコンポーネントを設けることは一般に知られている。換言すれば、物理プロセッサのうちの１つ（例えば、１つのブレードまたは複合体）が、その上で動作している複数の仮想機械に対する計算要求および／またはメモリ要求によって過負荷になる場合、過負荷になったブレード／複合体上で動作可能な複数の仮想機械のうちの１つまたは複数を１つまたは複数のより少ない負荷の掛かった物理プロセッサに再分散することができる。したがって、クラスタ化された環境のコンポーネントまたは方法が特定する負荷バランシングは、クラスタのブレード／複合体の起こりうる過負荷を避けるまたは緩和するために、仮想機械環境を、クラスタ化された環境内の複数の物理プロセッサの異なるプロセッサ（例えば、異なるブレードまたは複合体）に適切に分散または再分散することに責任を負っている。
【０００５】
クラスタ化されたコンピュータ環境で動作する複数の仮想機械に関連する現在の負荷バランシング・システムおよび技術は、クラスタ化されたコンピュータ物理プロセッサそれ自体に由来する負荷率情報のみ対処する。換言すれば、現行の負荷バランシング・システムおよび技術は、物理プロセッサの特定のＣＰＵまたはメモリが、関連する物理プロセッサ上の複数の仮想機械の動作によって計算的に過負荷になる可能性があることを判定することができる。しかしながら、そのような負荷率情報が仮想機械動作によって課される負荷の他の態様に対処できないことが一般に問題点である。特に、クラスタ化されたコンピュータ環境で動作する複数の仮想機械に対する現在の負荷バランシング技術は、付加された記憶装置システムに関連する負荷率情報に対処できない。しばしば、クラスタ化されたコンピュータ環境では、複数の物理プロセッサが記憶装置システムへのアクセスを共有する。この記憶装置システムは、例えばＲＡＩＤ記憶装置管理などの記憶装置管理技術を含む付属の物理プロセッサの代わりに、Ｉ／Ｏ要求処理を行うために全てが複数の記憶装置に結合される複数の記憶装置コントローラを含む場合がある。しばしば、複数の仮想機械が何らかの特定の物理プロセッサのＣＰＵまたは主メモリを著しく過負荷にしない可能性もある。しかしながら、この複数の仮想機械は、物理プロセッサを記憶装置システムの特定の記憶装置コントローラに結合する共通のインターフェイス構造を共有することによって、クラスタ化されたシステムの全体性能に対しボトルネックを生み出す場合がある。したがって、現行の負荷バランシング技術は一般にそのような負荷バランシング・ボトルネックを検出する能力がなく、したがって、１つまたは複数の仮想機械の他の物理プロセッサへの再分散を介してそのようなボトルネックを矯正する能力がない。
【発明の概要】
【発明が解決しようとする課題】
【０００６】
上記の論議から、クラスタ化されたコンピュータ環境で動作する複数の仮想機械の負荷バランシングのための改善されたシステムおよび方法が求められていることは明らかである。
【課題を解決するための手段】
【０００７】
本発明は、記憶装置システム関連の負荷率情報を生成するためのシステムおよび方法を提供し、かつそのような情報をクラスタ化されたコンピュータ環境で動作する複数の仮想機械の負荷を再分散するために適用される負荷バランシング技術に利用することによって、上記のかつ他の問題点を解決し、それによってこの有効な最先端技術を進歩させる。
【０００８】
したがって本発明の第１の特徴は、物理プロセッサの各々がクラスタの他の各物理プロセッサに通信可能に結合される物理プロセッサのクラスタを含むシステムを提供することである。このシステムは、各仮想機械が物理プロセッサの任意のサブセット上で動作可能であり、かつ複数の仮想機械が複数の物理プロセッサにわたって動作するように分散される複数の仮想機械も含む。さらにこのシステムは、複数の物理プロセッサに通信可能に結合される負荷バランサを含み、この負荷バランサは負荷率情報に基づいて物理プロセッサの第１のサブセットから物理プロセッサの異なるサブセットに仮想機械を再分散するようになされている。最後にこのシステムは、複数の記憶装置コントローラを有する記憶装置システムを含む。この記憶装置システムは物理プロセッサに結合され、かつ記憶装置システムの記憶装置コントローラに関する記憶装置システム負荷率情報を生成するようになされた記憶装置負荷率情報ジェネレータを含む。この負荷率情報ジェネレータは、仮想機械を再分散するために中で使用するために負荷バランサに記憶装置システム負荷率情報を与えるように、負荷バランサに通信可能に結合される。
【０００９】
本発明の別の特徴は、記憶装置システムに結合される物理プロセッサのクラスタ内で動作する複数の仮想機械の負荷をバランスさせるための方法を提供する。この方法は、記憶装置システム内の複数の記憶装置コントローラの負荷に関する記憶装置負荷率情報を記憶装置システム内で生成することを含む。この方法は、この記憶装置負荷率情報を複数の物理プロセッサと関連する負荷バランサに通信することも含む。最後にこの方法は、記憶装置コントローラの使用に伴う物理プロセッサ上の負荷をバランスさせるように、複数の仮想機械のうちの１つまたは複数をクラスタの異なる物理プロセッサ上で動作するように再分散することを含む。
【００１０】
本発明のさらに別の特徴は、複数の仮想機械のための負荷バランシング装置を提供する。この装置および仮想機械は、スイッチ型ファブリック接続を介して記憶装置システムに結合されるブレード・センタを有するシステム内で動作可能である。このブレード・センタは、複数のプロセッサ／メモリ複合体、および複数の記憶装置コントローラを備える記憶装置システムを含む。この負荷バランシング装置は、複数の記憶装置コントローラのうちの１つまたは複数に関する記憶装置負荷率情報を生成するための、記憶装置システム内で動作可能な記憶装置システム負荷率情報ジェネレータを含む。この装置は、ブレード・センタ内で動作可能な、かつ記憶装置システム負荷率情報ジェネレータに通信可能に結合される負荷バランサも含む。この負荷バランサは、ジェネレータから記憶装置負荷率情報を受け取るようになされ、かつさらにこの記憶装置負荷率情報を、複数の仮想機械のうちの１つまたは複数の動作をブレード・センタの複数のプロセッサ／メモリ複合体にわたって分散するのに利用するようになされている。
【図面の簡単な説明】
【００１１】
【図１】記憶装置関連負荷率情報を生成し、かつそれを複数の物理プロセッサ上で動作する複数の仮想機械と関連する負荷バランサに通信するための、本発明の特徴および態様により高められた例示的なシステムのブロック図である。
【図２】本発明の特徴および態様による、図１のシステムの１つまたは複数の記憶装置コントローラ内に一体化される記憶装置関連負荷率情報ジェネレータの例示的な実施形態を説明するブロック図である。
【図３】本発明の特徴および態様による、図１のシステムの１つまたは複数の記憶装置コントローラ内に一体化される記憶装置関連負荷率情報ジェネレータの例示的な実施形態を説明するブロック図である。
【図４】記憶装置システム内に記憶装置関連負荷率情報を生成し、かつ生成された情報を、複数の物理プロセッサ上で動作可能な複数の仮想機械の負荷をバランスさせるのに利用するために負荷バランサに通信するための、本発明の特徴および態様による例示的な方法を説明する流れ図である。
【図５】複数の物理プロセッサ上で動作可能な複数の仮想機械用の負荷バランサで使用するために、記憶装置関連負荷率情報を生成し、かつそれを通信するための、図４の方法の実施形態の例示的な追加の詳細を提供する流れ図である。
【図６】複数の物理プロセッサ上で動作可能な複数の仮想機械用の負荷バランサで使用するために、記憶装置関連負荷率情報を生成し、かつそれを通信するための、図４の方法の実施形態の例示的な追加の詳細を提供する流れ図である。
【図７】複数の物理プロセッサ上で動作可能な複数の仮想機械用の負荷バランサで使用するために、記憶装置関連負荷率情報を生成し、かつそれを通信するための、図４の方法の実施形態の例示的な追加の詳細を提供する流れ図である。
【発明を実施するための形態】
【００１２】
図１は、システム１００内で記憶装置関連負荷率情報を生成しかつ利用するための、本発明の特徴および態様を実施する例示的なシステム１００のブロック図である。システム１００は、複数の物理プロセッサ、すなわちプロセッサＡ１０４、プロセッサＢ１０６、およびプロセッサＣ１０８を備えるクラスタ化されたコンピュータ環境１０２を含むことができる。この分野で一般に知られているように、そのようなクラスタ化された環境は、複数のプロセッサを結合するためのバックプレーンまたはミッドプレーン相互接続１５２（または他の適切な相互接続構造）を含むことができる。そのような相互接続１５２の例には、様々なプロセッサ１０４から１０８が互いに通信するのを可能にするための、様々なＰＣＩバス構造、ＡＭＢ／ＡＨＢバス構造、および様々な高速シリアル相互接続構造およびプロトコルが含まれる。
【００１３】
複数の仮想機械は、クラスタ１０２のプロセッサ上で動作することができる。さらにこの複数の仮想機械は、クラスタ１０２内の複数の物理プロセッサのうちの１つまたは複数にわたって分散することができる。例えば、プロセッサＡ１０４は、仮想機械Ｖ１および仮想機械Ｖ２が現在その上で動作可能であることを示す。プロセッサＢ１０６は、仮想機械Ｖ３からＶ７がそのプロセッサを利用して動作可能であることを示す。同様に、プロセッサＣ１０８は、それがやはり仮想機械Ｖ７（例えば、Ｖ７は２台のプロセッサ１０６および１０８にわたって分散されている）によって利用されていることを示す。
【００１４】
システム１００は、複数の物理プロセッサ上で動作する仮想機械の負荷を等化するまたはバランスさせるのを助けるために、相互接続１５２を介して複数の物理プロセッサ１０４から１０８と通信可能に結合される負荷バランサ１０１も含む。クラスタ１０２の負荷バランサ１０１は、例示として、クラスタ１０２の様々なプロセッサ１０４から１０８から区別される別体として図１に描かれている。当業者は、この負荷バランサ１０１は、クラスタ１０２内のそのような別個の、区別される処理要素として実施することができ、またはクラスタの特定のプロセッサ内に一体化することもでき、あるいは複数の物理プロセッサの各々内に存在する協働通信プロセスとして分散することもできることを容易に理解するであろう。そのような設計選択は、当業者に良く知られている。
【００１５】
上記で言及したように、現在実施される負荷バランシング技術および構造は一般に、各特定のプロセッサに関連しかつ特定のプロセッサによって求めることが可能な利用率メトリックのみ対処する。例えば、現在知られている負荷バランシング技術は、特定の物理プロセッサのＣＰＵ利用率、その特定のプロセッサのメモリ利用率、そのプロセッサによって発生するＩ／Ｏ要求割合、等（すなわち、各プロセッサによってそのプロセッサに対し求められるメトリック）のみ対処する傾向がある。現在実施されているように、複数の物理プロセッサ上で動作可能な仮想機械用の負荷バランシング技術は、複数の記憶装置コントローラ１１２から１１６が動作に利用可能である可能性がある記憶装置システム１１０などの共通の記憶装置に対する共有のアクセスを考慮に入れていない。例えば、現在の負荷バランシング技術は、複数の物理プロセッサ１０４から１０８のうちの１つまたは複数の上で動作可能ないくつかの仮想機械が、共通の記憶装置システム１１０の複数の記憶装置コントローラ１１２から１１６のうちのただ１つのみに対するアクセスを共有していることを理解できない可能性がある。その特定の共有の記憶装置コントローラが過負荷になる場合、その記憶装置コントローラに対するアクセスを共有する対応する仮想機械は、最適とは言い難く機能している可能性がある。例えば、特定の記憶装置コントローラに対するアクセスを共有する１つまたは複数の仮想機械が記憶装置システム１１０の複数の記憶装置コントローラ１１２から１１６のうちの異なる記憶装置コントローラと相互作用できるように、仮想機械をクラスタ１０２の異なるプロセッサに移動させることも可能である可能性がある。しかしながら、現在の負荷バランシング技術および構造は、そのような負荷バランシングを可能にせず、実際、そのような決定を可能にするための記憶装置システム動作に関連する負荷率に関する有用な情報を一般に欠いている。
【００１６】
本発明の特徴および態様によれば、記憶装置システム１１０は、記憶装置システム１１０の動作を全体として、かつ記憶装置システム１１０の複数の記憶装置コントローラ１１２から１１６の動作を解析するように動作可能な負荷率情報ジェネレータ要素１１８を含む。次いでジェネレータ１１８は、様々な記憶装置１１２から１１６の、かつ全体としてのシステム１１０の処理能力に関する負荷率情報を生成することができる。次いで要素１１８によって発生されたそのような負荷率情報は、クラスタ１０２の複数の物理プロセッサ１０４から１０８上で動作する複数の仮想機械の負荷をどのように分散または再分散するか決定するとき、負荷バランサ１０１が記憶装置コントローラおよび記憶装置システムの負荷率情報を考慮することができるように、クラスタ１０２内で動作可能な負荷バランサ１０１に通信される。
【００１７】
この分野で一般的に知られているように、クラスタ１０２の複数の物理プロセッサ１０４から１０８は、スイッチ型ファブリック結合１５０を介して記憶装置システム１１０の様々な記憶装置コントローラ１１２から１１６に通信することができる。そのようなスイッチ型ファブリックは、シリアル付加ＳＣＳＩ（「ＳＡＳ」）スイッチ型ファブリック、Ｆｉｂｅｒ  Ｃｈａｎｎｅｌスイッチ型ファブリック、または任意の他のいくつかの良く知られた、市販のコンピュータおよび／または記憶装置ネットワーク構造およびプロトコルとして実施することができる。負荷率情報ジェネレータ１１８は一般に、記憶装置関連負荷率情報を収集し、そのような情報を記憶装置コントローラおよびスイッチ型ファブリック１５０を介してクラスタ１０２内の負荷バランサ１０１に通信するように、記憶装置コントローラ１１２から１１６の各々に通信可能に結合される。
【００１８】
通信パス１５４は、負荷率情報ジェネレータ１１８が記憶装置システム１１０の記憶装置コントローラ１１２から１１６の各々から情報を収集するのを可能にする、任意の適切なコントローラ間通信構造およびプロトコルを一般に意味する。パス１５４も、負荷率情報ジェネレータ１１８が、記憶装置コントローラ１１２から１１６のうちの１つまたは複数を介して、ファブリック１５０を経由して、１つまたは複数のプロセッサ１０４から１０８を介して、生成された情報をクラスタ１０２（具体的には負荷バランサ１０１）に通信するのを可能にする。より具体的には、負荷率情報ジェネレータ１１８は、記憶装置コントローラ１１２から１１６から情報を収集し、そのような収集された情報を負荷バランサ１０１に送るように負荷率情報としてフォーマット化するための任意の適切な構造および／またはプロセス間通信技術を意味することができる。したがってジェネレータ１１８は、複数の記憶装置コントローラ１１２から１１６とは別個のかつ区別される記憶装置システム１１０内のコンポーネントであることができ、あるいは１つまたは複数の記憶装置コントローラ内に一体化されかつ動作可能であることもできる。
【００１９】
記憶装置システム１１０の記憶装置コントローラ１１２から１１６は、スイッチ型ファブリック結合１６０を介して記憶装置システム１１０の複数の記憶装置１２０から１２２と通信することもできる。上述のように、シリアル付加ＳＣＳＩ（「ＳＡＳ」）、パラレルＳＣＳＩ、Ｆｉｂｅｒ  Ｃｈａｎｎｅｌ、および他の良く知られた、市販の通信構造およびプロトコルを、記憶装置コントローラ１１２から１１６の各々を記憶装置１２０と１２２の各々に結合するために使用することができる。コントローラ間通信チャンネル１５４は、スイッチ型ファブリック結合１６０を介したコントローラからコントローラへの通信として単に実施することもできる。別個のかつ区別される通信チャンネル１５４が、コントローラ間通信の目的で様々な記憶装置コントローラ１１２から１１６とジェネレータ１１８を結合し、スイッチ型ファブリック結合１６０の全バンド幅を記憶装置コントローラ１１２から１１６と記憶装置１２０および１２２との間のデータ交換に使用可能に残すのが好ましい。
【００２０】
図１に例示するように、システム１００の様々なコンポーネントを結合するスイッチ型ファブリック１５０は、例えば、複数のプロセッサ（１０４から１０８）のうちのいずれかが、記憶装置システム１１０内の複数の記憶装置コントローラ（１１２から１１６）のいずれかに制御可能に結合されるのを可能にする。シリアル付加ＳＣＳＩ（「ＳＡＳ」）の使用は、現在の技術を適用する一般的な設計選択の例示である。しかしながら当業者は、市販の製品を利用する様々な他のスイッチ型ファブリック接続性アーキテクチャがそのようなフレキシブルな接続性を可能にすることを容易に理解するであろう。その上、本発明の特徴および態様は、プロセッサと記憶装置コントローラ間の接続性がスイッチ型ではなく、オペレータの構成およびインストールによって静的に決められる場合にも実施することができる。したがって図１に示されていないが、本発明の特徴および態様は、プロセッサと記憶装置コントローラの間のスイッチ型ファブリック接続性を欠いているシステムにも適用することができる。そのような場合、さらに本明細書で論じられるような負荷率情報は、複数のプロセッサのうちの特定の１つに、それに静的に結合される記憶装置コントローラのうちの対応する特定の１つから通信することができる。次いで受信プロセッサによる記憶装置関連負荷率情報の利用は、様々なプロセッサ上で動作可能な１つまたは複数の仮想機械を複数のプロセッサの全ての上にその負荷をより良くバランスさせるように再分散できるように、最初にこの情報を他のプロセッサとかつ／または負荷バランサ要素１０１と共有することを含むことができる。
【００２１】
上記で言及しかつさらに本明細書で以下に論じるように、記憶装置システム１１０の記憶装置コントローラ１１２から１１６の動作に関するこの生成された負荷率情報は、記憶装置システム１１０内のジェネレータ１１８からクラスタ１０２内の負荷バランサ１０１に任意のいくつかの技術によって通信することができる。例えば、記憶装置システム１１０に関連する負荷率情報は、任意のＩ／Ｏ動作に対して非同期的に−例えば、周期的に生成するまたは特定の変化の検出に応答して生成するのいずれかで−生成することができ、記憶装置コントローラ１１２から１１６を介してスイッチ型ファブリック結合１５０を経由して負荷バランサ１０１に、任意のプロセッサ１０４から１０８を介して転送することができる。したがって、負荷バランサ１０１は、複数のプロセッサ１０４から１０８のうちの１つまたは複数上で動作し、記憶装置システム１１０の現行の負荷情報を反映するそのような周期的なまたは間歇的な伝達を受け取るようになされた専門の管理アプリケーションを含むことができる。その上、負荷率情報ジェネレータ１１８の動作は、記憶装置システム１１０の記憶装置コントローラ１１２から１１６の各々の中のＩ／Ｏ処理と緊密に一体化することができる。したがって、記憶装置システム１１０ならびにその中の各コントローラ（１１２から１１６）の動作に関連する現行の負荷率情報は、クラスタ１０２からのＩ／Ｏ要求の処理と関連する返されたステータス情報の一部分として提供することができる。次いで記憶装置システム１１０に関するそのような負荷率情報は、複数の物理プロセッサ１０４から１０８とその上で動作可能な仮想機械との協働的な統合化を介して、返されたステータス情報から負荷バランサ１０１によって取り出すことができる。記憶装置システム１１０内で発生する負荷率情報がクラスタ１０２に返される方法に関わらず、負荷バランサ１０１は、記憶装置システム１１０に関連するそのような負荷率情報をクラスタ１０２の複数の物理プロセッサ上で動作可能な複数の仮想機械の負荷を分散または再分散するのに利用するように動作可能である。
【００２２】
当業者は、完全に機能的なシステム１００、クラスタ１０２または記憶装置システム１１０に対して、図１に描かれたものを超える多数の均等なかつ追加の要素を容易に理解するであろう。したがって図１は、複数の仮想機械（または他のアプリケーション）の負荷を、クラスタに結合される記憶装置システム内の複数の記憶装置コントローラに関する負荷率情報に基づいて、クラスタ内の複数のプロセッサにわたって分散または再分散するためのクラスタ・コンピュータ環境内に実施されるような、本発明の特徴および態様の単なる例示として意図としている。そのような追加の特徴は、この論議を単に簡単かつ簡潔にするために省略されている。
【００２３】
図１に示すように、負荷率情報ジェネレータ１１８は、記憶装置システム１１０内の複数の記憶装置コントローラ１１２から１１６に対して別個かつ区別されるとして描かれている。しかし、上記で言及したように、この負荷率情報発生機能は、記憶装置コントローラの処理内に密接に一体化することもできる。したがって図２は、負荷率情報ジェネレータ２１８が複数の記憶装置コントローラ（２１２から２１６）の指定される監督記憶装置コントローラ２１２内に一体化される、記憶装置システム１１０の例示的な実施形態を示す。記憶装置システム１１０の他の記憶装置コントローラ２１４から２１６は、負荷率情報を監督記憶装置コントローラ２１２内で動作可能な負荷率情報ジェネレータ２１８と交換するように、監督記憶装置コントローラ２１２と協働的に動作可能である。
【００２４】
同様に、図３は、負荷率情報発生が複数の記憶装置コントローラの各々を介して分散される別の例示的な実施形態を示す。したがって、図３の記憶装置システム３１０は、それぞれ対応する一体化された負荷率情報ジェネレータコンポーネント３１８（Ａ）、３１８（Ｂ）、および３１８（Ｃ）をその各々が有する、３つの記憶装置コントローラ３１２から３１６を示す。
【００２５】
図２および３では、複数の記憶装置コントローラ２１２から２１６および３１２から３１６は、任意のいくつかの良く知られた、市販の、コントローラ間通信媒体およびプロトコルを利用して通信することができる。したがって負荷率情報は、複数の記憶装置コントローラのいずれかまたは全てに関連する複数の記憶装置コントローラのうちの任意の１つまたは複数によって収集することができる。そのようなコントローラ間通信媒体およびプロトコルには、例えば、ＩｎｆｉｎｉＢａｎｄ、Ｆｉｂｒｅ  Ｃｈａｎｎｅｌ、シリアル付加ＳＣＳＩ（ＳＡＳ）、（ＰＣＩ標準品のいくつかの変形形態を含む）ＰＣＩバス構造、等が含まれ得る。したがって当業者は、全体としてこの記憶装置システムに関連するかつ／または記憶装置システム内の個々の記憶装置コントローラの各々に関連する負荷率情報を収集し、かつ付加されるクラスタ・コンピュータ環境内の適切な要素に通信する、様々な均等な構造を容易に理解するであろう。さらに当業者は、完全に機能的な記憶装置システム１１０内に多数の追加の要素が通常存在することを容易に理解するであろう。そのような追加の要素は、この論議の単純化および簡潔化のために、図２および３から削除されている。
【００２６】
図４は、図１に対して上記で示しかつ説明したようなシステム内で動作可能な、本発明の特徴および態様による方法を大ざっぱに説明する流れ図である。要素４００は、記憶装置システム内の任意の適切な手段によって最初に記憶装置関連負荷率情報を生成するように動作可能である。上記で言及したように、負荷率情報ジェネレータ要素は、記憶装置システムの記憶装置コントローラのうちのいずれかまたは全ての中で動作可能であり、あるいは記憶装置コントローラに対して別個のかつ区別される、かつそれに結合されるコンポーネントとして動作可能である。そのような負荷率情報は、関連する記憶装置システムおよび／または記憶装置コントローラの各々の動作の任意の数の態様を含むことができる。例えば、記憶装置システムおよび／または記憶装置コントローラの動作に関連する様々な種類の負荷率情報の中には、
・記憶装置システムの各記憶装置コントローラと現在通信している仮想機械の数；
・複数の記憶装置コントローラのうちのいずれかと結合される仮想機械の任意の特定されるセットのＩ／Ｏ要求処理率；
・記憶装置コントローラの任意の特定されるセットと複数のプロセッサ上で動作可能な仮想機械の任意のセットの間の測定されるデータ・スループット率；
・記憶装置コントローラの任意の特定されるセット内に係属中の、待機または未処理のＩ／Ｏ要求の数；
・仮想機械の任意の特定されるセットから発生する、待機または未処理のＩ／Ｏ要求の数；
・記憶装置コントローラの任意の特定されるセットと複数のプロセッサ上で動作可能な仮想機械の任意の特定されるセットの間の可能な通信パスの最大数；
・仮想機械の任意の特定されるセットに現在結合される記憶装置コントローラの総計；および
・物理プロセッサの総数、がある。
【００２７】
記憶装置システム内の負荷率情報ジェネレータ要素の動作によるそのような記憶装置関連負荷率情報を生成した後、要素４００は、複数の物理プロセッサ上で動作可能な複数の仮想機械と関連する負荷バランサ要素へのこの生成された負荷情報の通信を達成するように動作可能でもある。次いでこの負荷バランサは、複数の物理プロセッサ上で動作可能な複数の仮想機械を再分散するために、この記憶装置関連負荷率情報を（負荷バランシング決定に対し有用な任意の他の情報と共に）利用することができる。この記憶装置関連負荷率情報を利用することによって、仮想機械の再分散は、記憶装置システムの処理および通信バンド幅ならびに物理プロセッサ活用の他の態様をより良好に利用できる。
【００２８】
上記で言及しかつさらに本明細書で以下に論じるように、生成された記憶装置関連負荷率情報の通信は、任意のいくつかの技術および構造を利用することができる。その上、この発生する情報は、複数の仮想機械と関連する負荷バランサを更新するために周期的に生成することができ、記憶装置システム内で検出される事象または変化した状態に基づいて間歇的に生成することができ、あるいは記憶装置システムによって受信されかつ処理される、複数の物理プロセッサ上で動作可能な１つまたは複数の仮想機械から記憶装置システムによって受信されかつ処理されるＩ／Ｏ要求の処理の一部分として生成しかつ返すことができる。
【００２９】
したがって、図４の要素４０２は、必要に応じて複数の仮想機械のうちの１つまたは複数を複数の物理プロセッサにわたって再分散するための、複数の仮想機械と関連する負荷バランサ要素の処理を意味する。この再分散は、もしあれば、複数の物理プロセッサ上の負荷のより良好なバランスを実現するのを助け、したがって、複数の仮想機械のより良好な全体性能をもたらす。
【００３０】
当業者は、図４の処理の多数の追加のステップおよび例示的な詳細な実施形態を容易に理解するであろう。詳細な処理のいくつかの例示的な実施形態はさらに本明細書で以下に図５から７に関して論じられる。他の実施形態および追加のステップは、当業者には容易に明らかであろうので、単にこの論議の簡潔化のために本明細書では省略されている。
【００３１】
図５は、上記で論じた図４の要素４００の例示的な詳細処理を提供する流れ図である。一般に図５の処理は、内在するステータスの変化が記憶装置システム内で検出されるときのみ、記憶装置システムに関連する負荷率情報を生成する。したがって、負荷率情報に影響を与える可能性のある記憶装置システムのステータス内で（おそらく、記憶装置システムによって検出される付加システムおよび仮想機械内の変化を含む）変化を検出することによって必要になったとき、負荷率情報が間歇的に生成される。したがって要素５００は、負荷率情報が生成された最後のとき以来、いずれかの記憶装置システムのステータスが変化したかどうか判定するための処理を表す。有意な変更が全く検出されない場合は、処理は関連の変更が検出されるなどのそのようなときまで要素５００上でループを続ける。記憶装置システム・ステータス内でそのような変更が検出される際、次いで要素５０２は、記憶装置システム内の負荷率関連情報の現行のステータスを反映する更新される負荷率情報を生成するように動作可能になる。次いで要素５０４は、生成された、更新された負荷率情報を複数の物理プロセッサ上で動作する複数の仮想機械と関連する負荷バランサ要素に伝達するように動作可能になる。したがって、図５に詳細に示す要素４００は、記憶装置システムのステータスに何らかの有意な変更が検出される際、記憶装置システムから負荷率情報を生成し、それを負荷バランサ要素に伝達するように動作可能である。
【００３２】
図６は、上記で論じた図４の要素４００の例示的な詳細処理を提供する流れ図である。一般に図６の処理は、仮想機械および／または物理プロセッサから受け取った記憶装置システムによるＩ／Ｏ要求の受信および処理に応答して、現行の負荷率情報を生成しかつ返すように動作可能である。特に、要素６００は、記憶装置システム内のＩ／Ｏ要求の受信と通常の処理を意味する。１つまたは複数の仮想機械が上で動作可能な複数の物理プロセッサのうちの１つまたは複数から受け取ったそのようなＩ／Ｏ要求は、記憶装置システム内の情報を検索するまたはシステム内に情報を記憶させる典型的なリードまたはライト要求を意味することができる。そのような通常の処理は、要求されるデータを記憶しまたは検索し、かつその要求が発せられた要求仮想機械および／または物理プロセッサに返すべきステータス応答を通常発生する。次いで要素６０２は、記憶装置システムおよび／または記憶装置システムの記憶装置コントローラに関する現行の負荷率情報を生成するように動作可能になる。この生成された情報は、要素６００内に示されるようなＩ／Ｏ要求の処理によって発生する結果／ステータス情報に追加または一体化することができる。例えば、完了したＩ／Ｏ要求に対する返された／ステータス情報は、正常完了コードおよびエラー完了コードを示すビット・フィールドおよび／または値をしばしば含む。そのようなステータス完了情報内のビットまたは値は、現行の記憶装置関連負荷率情報がＩ／Ｏ動作に対して返されたステータス・コードで追加または一体化された物理プロセッサおよび／または仮想機械に示すようにコード化することができる。最後に要素６０４は、要求している物理プロセッサに関連する負荷バランサ要素がその負荷バランシング決定に記憶装置関連負荷率情報を含むことができるように、この追加／一体化負荷率情報と一緒にＩ／Ｏ要求ステータス情報を伝達するように動作可能になる。したがって、図６に示すような要素４００は、付加クラスタ内の複数の物理プロセッサのうちのいずれかの上で動作可能な任意の複数の仮想機械から記憶装置システムに向けられるＩ／Ｏ要求の処理の際に、記憶装置システムから負荷率情報を生成し、かつそれを負荷バランサ要素に伝達するように動作可能であることができる。
【００３３】
図７は、図４の要素４００の処理の例示的な詳細を提供する流れ図である。一般に図７の処理は、負荷率情報の値が関連する閾値の範囲外に該当するとき、記憶装置関連負荷率情報を生成しかつ伝達するように動作可能である。したがって要素７００は、現行の負荷率情報を生成するように最初に動作可能である。この動作は、周期的にまたは様々な特定の事象の検出に基づいて間歇的に実施させることができる。次いで要素７０２は、負荷率情報内の値に対して比較するための現行の更新された閾値を生成するための任意選択の処理を表す。上記で言及したように、この閾値は記憶装置システムの製造時に静的に、または記憶装置システムのセットアップおよび設定での機器構成ステップとして決めることができ、あるいは記憶装置システムの変化する動作に基づいて動的に決めることもできる。次いで要素７０４は、要素７００によって生成された負荷率情報内のどのような値も対応する閾値によって画定される範囲外に該当するかどうか判定するために、（以前に静的に生成されていようと、または要素７０２の処理によって現行更新されていようとに関わらず）現行の閾値情報を利用するように動作可能である。範囲外に該当しない場合は、要素４００の処理は完了する。そうでない場合は、現行の、更新された、記憶装置関連負荷率情報が、付加クラスタ内の複数の仮想機械および複数の物理プロセッサと関連する負荷バランサ要素に伝達される。次いでそのような情報の受信に応答して、この負荷バランサ要素は、複数の仮想機械のうちの１つまたは複数を複数の物理プロセッサのうちの他のものに再分散することを選択することができる。したがって、図７に詳細に示される要素４００は、負荷率情報内の任意の値が対応する閾値によって画定される値の範囲外に該当したことを検出することに応答して、更新した負荷率情報を生成しかつ伝達するように動作可能である。さらに、言及したように、この閾値は静的に決めることができ、あるいは記憶装置システム内の現行の動作に基づいて動的に更新することができる。例示的な閾値は、負荷率情報の代表として上記で説明した例示的な値に対応することができる。
【００３４】
当業者は、完全に機能的な実施で、図４から７までの方法に組み込むことができる均等なまたは追加のステップを容易に理解するであろう。そのような追加の特徴およびステップは、この論議の簡単化および簡潔化のために本明細書では省略されている。さらに当業者は、例示的に詳細化された本方法の特徴を組み合わせることによって、上記の方法の特徴を実施するための他の詳細な方法を理解するであろう。例えば、負荷率情報はある値が画定される閾値範囲外に該当するときのみ生成することができ、そのように生成された場合、次いで完了したＩ／Ｏ要求の完了ステータスと共に返すことができる。多数の他の均等なステップおよび方法は、当業者に容易に明らかであろう。
【００３５】
本発明は図面に図示され前述の説明で説明されているが、そのような図示および説明は、性格的に限定的ではなく例示として理解されたい。本発明の１つの実施形態およびその小さな変形形態が示され、説明されてきた。本発明の趣旨内に入る全ての変更および改変に対して保護が所望される。当業者は、本発明の範囲内に該当する上記で説明した実施形態の変更形態を理解するであろう。特に、当業者は、本発明の特徴および態様は、電子回路内で均等にあるいは一般的なまたは特殊な目的のプロセッサの適切にプログラムされる命令として実施できることを容易に理解するであろう。回路またはプログラミング設計のそのような均等性は、設計選択の問題として当業者に良く知られている。結果として、本発明は上記で論じた特定の例および図示に限定されず、添付の特許請求の範囲およびそれらの均等物によってのみ限定される。
【図１】
2010512600.tif 000003
【図２】
2010512600.tif 000004
【図３】
2010512600.tif 000005
【図４】
2010512600.tif 000006
【図５】
2010512600.tif 000007
【図６】
2010512600.tif 000008
【図７】
2010512600.tif 000009
【国際調査報告】
2010512600.tif 000010