(57)【要約】  本明細書において、カートリッジのコンピューティングリソースを監視する方法が記載されている。本方法は、マイクロコントローラを介して、カートリッジのコンピューティングコンポーネントに関連付けられているデータを受信することを含むことができる。本方法は、マイクロコントローラを介して、カートリッジから離れている管理コントローラに、監視に基づくデータを提供することを含むことができる。本方法は、管理コントローラを用いて、受信されたデータを解析することを含むことができる。本方法は、受信されたデータに応答して、管理コントローラを介して、解析に基づく動作信号をマイクロコントローラに通信することを含むことができる。【選択図】図３
2016515738.tif 000002
【特許請求の範囲】
【請求項１】
ハードウェアロジックを少なくとも部分的に含むマイクロコントローラであって、
該マイクロコントローラは、
カートリッジのコンピューティングコンポーネントに関連付けられたデータを受信し、
前記カートリッジから離れている管理コントローラに前記データを提供する、
ように構成され、
前記管理コントローラは、受信された前記データを解析し、該解析に基づいて前記マイクロコントローラに動作信号を通信する、
マイクロコントローラ。
【請求項２】
マイクロコントローラは前記カートリッジに配置され、前記管理コントローラは、
前記マイクロコントローラの構成を定義するデータを受信し、
前記カートリッジの前記コンピューティングコンポーネントの構成を定義するデータを受信する、
請求項１に記載のマイクロコントローラ。
【請求項３】
前記管理コントローラは、受信された前記データを解析し、前記マイクロコントローラに対して、
前記カートリッジの前記コンピューティングコンポーネントの動作、
ラック内の複数のカートリッジのうちの１つとしての前記カートリッジによって共有されるリソースの動作、又は
前記動作の任意の組合せ、
を変更させる命令を提供する、
請求項１に記載のマイクロコントローラ。
【請求項４】
前記マイクロコントローラは、データを解析することなく該データを監視し、離れている前記管理コントローラに該データを未解析のフォーマットで提供する、請求項１に記載のマイクロコントローラ。
【請求項５】
前記マイクロコントローラは、該マイクロコントローラのファームウェアを変更することなく構成される、請求項１に記載のマイクロコントローラ。
【請求項６】
マイクロコントローラを有するカートリッジであって、該マイクロコントローラは、ストレージデバイスの命令に基づいて構成され、該カートリッジのコンポーネントによって生成されたデータを監視する、カートリッジと、
前記カートリッジのコンピューティングコンポーネントの構成を定義する命令を記憶する前記ストレージデバイスと、
前記カートリッジから離れている管理コントローラであって、
前記コンポーネントによって生成された前記データを、前記マイクロコントローラを介して受信し、
データが受信されたことに応答して、受信された該データを解析し、該解析に基づいて前記マイクロコントローラに動作信号を通信する、
管理コントローラと、
を備える、コンピューティングシステム。
【請求項７】
コンピューティングシステムの前記コンポーネントは、前記カートリッジから離れている前記管理コントローラによって提供される前記動作信号を介して管理される、請求項６に記載のコンピューティングシステム。
【請求項８】
前記マイクロコントローラのピンを備え、該マイクロコントローラは、前記コンピューティングコンポーネントによって生成された前記データを前記ピンにおける変化を介して監視する、請求項６に記載のコンピューティングシステム。
【請求項９】
前記コンピューティングコンポーネントはホストコンピューティングデバイスを含み、前記マイクロコントローラは前記ホストコンピューティングデバイスから離れており、前記管理コントローラは前記マイクロコントローラを介して前記ホストコンピューティングデバイスに結合される、請求項８に記載のコンピューティングシステム。
【請求項１０】
前記管理コントローラは、
前記カートリッジの前記コンピューティングコンポーネントの構成を定義する命令を、前記マイクロコントローラを介して受信し、
前記マイクロコントローラの構成を定義するデータを受信する、
請求項６に記載のコンピューティングシステム。
【請求項１１】
前記管理コントローラは、受信された前記データを解析し、前記マイクロコントローラに対して、
前記カートリッジの前記コンピューティングコンポーネントの動作と、
複数のカートリッジのうちの１つとしての前記カートリッジによって共有されるリソースの動作と、
前記動作の任意の組合せと、
を変更させる命令を提供する、請求項６に記載のコンピューティングシステム。
【請求項１２】
ストレージデバイスからカートリッジのマイクロコントローラへの命令を受信するステップであって、該命令は、前記カートリッジのコンピューティングコンポーネントの構成を定義する、受信するステップと、
受信した前記命令に基づいて前記マイクロコントローラを構成するステップと、
前記カートリッジの前記コンピューティングコンポーネントに関連付けられたデータを、前記マイクロコントローラを介して受信するステップと、
前記カートリッジから離れている管理コントローラに、監視に基づく前記データを、前記マイクロコントローラを介して提供するステップと、
受信した前記データを、前記管理コントローラを用いて解析するステップと、
受信されたデータに応答して、前記マイクロコントローラに前記解析に基づく動作信号を、前記管理コントローラを介して通信するステップと、
を含む、方法。
【請求項１３】
マイクロコントローラは前記カートリッジに配置され、
前記マイクロコントローラの構成を定義するデータを、前記管理コントローラを介して受信するステップと、
前記カートリッジの前記コンピューティングコンポーネントの構成を定義するデータを、前記管理コントローラを介して受信するステップと、
を含む、請求項１２に記載の方法。
【請求項１４】
受信された前記データを、前記管理コントローラを用いて解析するステップと、
前記カートリッジの前記コンピューティングコンポーネントの動作、又はラック内の複数のカートリッジのうちの１つとしての前記カートリッジによって共有されるリソースの動作、又は前記動作の任意の組合せ、を変更させる命令を提供するステップと、
を含む、請求項１２に記載の方法。
【請求項１５】
前記マイクロコントローラは、前記マイクロコントローラのファームウェアを変更することなく構成される、請求項１２に記載の方法。
【発明の詳細な説明】
【背景技術】
【０００１】
通常、ネットワーク化されたコンピューティングシステムは、記憶装置、アプリケーション、データベース等のリソースを提供するように構成されるホストコンピューティングデバイスを備える。ホストコンピューティングデバイスは、データベースサーバ、ファイルサーバ、メールサーバ、プリントサーバ、ウェブサーバ、又はネットワーク内のクライアントデバイスにサービスを提供するように構成される他の何らかの種類のサーバ等のサーバとすることができる。
【０００２】
ブレードサーバとは、物理的な空間の使用を最小化するように最適化されたモジュール設計を有するサーバコンピュータである。標準的なラックマウント型サーバが電源コード及びネットワークケーブルによって機能することができることに対し、ブレードサーバは、空間の節約、消費電力の最小化、及び他の検討事項を目的として多くのコンポーネントが取り払われながらも、コンピュータとしてみなされるための機能的コンポーネントを依然として全て有する。マルチスロットシャーシは、複数のブレードサーバカートリッジを保持し、電力、冷却、ネットワークの構築、様々な相互接続、及び管理等の共有リソースを提供することができる。幾つかの複合拡張可能サーバ環境（complex scalable server environments）では、完全な集中管理が困難な場合がある。幾つかのブレードサーバは、サーバごとに、そのサーバを管理するように構成される完全管理プロセッサを備える。しかしながら、各サーバにおいて完全管理プロセッサを備えることにより、サーバごとの空間及びコストが増加する。
【０００３】
幾つかの例は、以下の詳細な説明において図面を参照して記載される。
【図面の簡単な説明】
【０００４】
【図１】コンピューティングリソース及びマイクロコントローラを備えるカートリッジを示すブロック図である。
【図２】コンピューティングコンポーネント及び管理コントローラと通信するマイクロコントローラを示すブロック図である。
【図３】管理コントローラと結合するマイクロコントローラを有するラックのカートリッジを示すブロック図である。
【図４】カートリッジのコンポーネントを監視する方法のブロック図である。
【発明を実施するための形態】
【０００５】
本技法は、マルチスロットカートリッジ環境内の各カートリッジにおけるマイクロコントローラに関する。マイクロコントローラは、カートリッジのコンピューティングコンポーネントを監視し、監視データを、このデータを処理し、このデータに対する応答を提供するために、離れている管理コントローラに提供することによって、各サーバにおける管理コントローラに対するプロキシとしての機能を果たすことができる。
【０００６】
図１は、マイクロコントローラを有するカートリッジを備えるシステムを示すブロック図である。カートリッジ１０２は、コンピューティングコンポーネント１０４を備えることができる。マイクロコントローラ１０６は、コンピューティングコンポーネント１０４を監視することができる。マイクロコントローラ１０６は、コンピューティングコンポーネント１０４の動作に関連付けられているデータを受信し、このデータをカートリッジ１０２から離れた管理コントローラ１０８に提供することができる。図１に示すように、カートリッジ１０２は多くのカートリッジのうちの１つとすることができる。図１では示していないが、コンピューティングコンポーネント１０４はホストコンピューティングデバイスとすることができ、該ホストコンピューティングデバイスは、ネットワーク１１２を介してクライアントデバイス１１０にネットワーク化されたリソースを提供するように構成されるサーバを含む。
【０００７】
コンピューティングコンポーネント１０４は、プロセッサ１１４及び非一時的なコンピュータ可読媒体を含むストレージデバイス１１６等の様々なコンポーネントを含むことができる。ストレージデバイス１１６は、オペレーティングシステム１１８を備えることもできる。オペレーティングシステム１１８は、コンピューティングコンポーネント１０４のプロセッサ１１４等のホストコンピューティングシステムのプロセッサによって実行することができる。幾つかの実施形態では、ストレージデバイス１１６上に命令が記録されている。これらの命令はプロセッサ１１４によって実行されると、コンピューティングコンポーネント１０４に動作を行わせる。幾つかの実施形態では、これらの動作は、クライアントデバイス１１０のうちの１つからの要求に応答することを含む。プロセッサ１１４は、記憶されている命令を実行するようになっているメインプロセッサとすることができる。コンピューティングコンポーネント１０４は、メモリデバイス１２０を備えることもできる。幾つかの実施形態では、このメモリデバイス１２０は、プロセッサ１１４によって実行可能な命令を記憶する。プロセッサ１１４は、シングルコアプロセッサ、マルチコアプロセッサ、コンピューティングクラスタ、又は他のあらゆる構成とすることができる。プロセッサ１１４は、複数命令セットコンピュータ（ＣＩＳＣ）プロセッサ若しくは縮小命令セットコンピュータ（ＲＩＳＣ）プロセッサ、ｘ８６命令セット互換プロセッサ、マルチコアプロセッサ、又は任意の他のマイクロプロセッサ若しくは中央処理装置（ＣＰＵ）として実装することができる。
【０００８】
メモリデバイス１２０は、ランダムアクセスメモリ（例えば、ＳＲＡＭ、ＤＲＡＭ、ゼロキャパシタＲＡＭ、ＳＯＮＯＳ、ｅＤＲＡＭ、ＥＤＯ  ＲＡＭ、ＤＤＲ  ＲＡＭ、ＲＲＡＭ（登録商標）、ＰＲＡＭ等）、読み出し専用メモリ（例えば、マスクＲＯＭ、ＰＲＯＭ、ＥＰＲＯＭ、ＥＥＰＲＯＭ等）、フラッシュメモリ、又は他の任意の適切なメモリシステムを含むことができる。メインプロセッサ１１４は、システムバス１２２（例えば、ＰＣＩ、ＩＳＡ、ＰＣＩ−Ｅｘｐｒｅｓｓ、ＨｙｐｅｒＴｒａｎｓｐｏｒｔ（商標）、ＮｕＢｕｓ等）を通して他のコンピューティングコンポーネント１０４に接続することができる。システムバス１２２は、マイクロコントローラ１０６と、コンピューティングコンポーネント１０４とを通信可能に結合することができる。
【０００９】
以下でより詳細に記載されているように、マイクロコントローラ１０６は、コンピューティングコンポーネント１０４を監視し、コンピューティングコンポーネント１０４に関するデータを管理コントローラ１０８に提供する。コントローラ１０６は、少なくとも部分的にハードウェアロジックを含む。ハードウェアロジックは、少なくとも部分的にハードウェアを含み、ソフトウェア又はファームウェアを含むこともできる。ハードウェアロジックは、相互接続された電子コンポーネントを含む電子ハードウェアを含むことができる。この相互接続された電子コンポーネントは、受信され局所的に記憶された情報に対してアナログ動作又は論理演算を行い、出力を生成するか、又は結果として得られる新しい情報を記憶するか、又は出力アクチュエータメカニズムに対する制御をもたらす。電子ハードウェアは、個々のチップ／回路及び分散情報処理システムを備えることができる。
【００１０】
システム１００は、ラックマネージャモジュール１２４を備えることもできる。ラックマネージャモジュール１２４は、グラフィカルアドミニストレーティブインタフェースを有する表示部（図示せず）を備えることができる。ラックマネージャモジュール１２４は、カートリッジ１０２とネットワーク接続し、システムアドミニストレータが管理コントローラ１０８を介してカートリッジ１０２と遠隔からインタフェース接続することを可能にすることができる。
【００１１】
図１のブロック図は、コンピューティングコンポーネント１０４が図１に示される全てのコンポーネントを含むことを示すことを意図しない。さらに、コンピューティングコンポーネント１０４は、特定の実装の詳細に応じて図１には示されていない任意の数の追加コンポーネントを含むことができる。
【００１２】
図２は、コンピューティングコンポーネント及び管理コントローラと通信するマイクロコントローラを示すブロック図である。マイクロコントローラ１０６は、少なくとも部分的にハードウェアロジックを含み、カートリッジのコンピューティングコンポーネント１０４と関連付けられているデータを受信する。マイクロコントローラ１０６は、ハードウェアロジックを介して、カートリッジから離れている管理コントローラ１０８にデータを提供することができる。管理コントローラ１０８は、受信されたデータを解析し、その解析に基づいてマイクロコントローラ１０６に動作信号を通信する。
【００１３】
図３は、管理コントローラに結合するマイクロコントローラを有するラックのカートリッジを示すブロック図である。ラック３０２は、図１のカートリッジ１０２等の複数のカートリッジを備えることができる。カートリッジ１０２は、マイクロコントローラ１０６、コンピューティングコンポーネント１０４、及びストレージデバイス３０４を備える。ストレージデバイス３０４は、図１を参照して上記で述べたコンピューティングコンポーネント１０４のストレージデバイス１１６から離れており、このストレージデバイス１１６とは別個のものとすることができる。ストレージデバイス３０４は、電気的消去可能プログラマブル読み出し専用メモリ（ＥＥＰＲＯＭ）デバイスとすることができる。
【００１４】
図３に示されるように、ストレージデバイス３０４と、マイクロコントローラ１０６とは通信可能に結合することができる。ストレージデバイス３０４は、カートリッジ１０２のコンピューティングコンポーネント１０４の構成（設定）を定義する命令を含む。例えば、命令は、抽出（abstraction：抽象）テーブル３０６及びコンポーネント構成３０８を含む。ストレージデバイス３０４内の命令は、（インテリジェントプラットフォーム管理インタフェース（ＩＰＭＩ：intelligent platform management interface）／フィールド交換可能ユニット（ＦＲＵ）フォーマット）の標準製品情報、（ＧＰＩ／Ｏ、Ｉ２Ｃバス及びデバイス、ＳＰＩバス、ファームウェアＵＵＩＤ、シリアルコンソールを含む）抽出テーブル、温度テーブル（thermal tables）、ＩＰＭＩセンサデータ記録（ＳＤＲ）等を含む。マイクロコントローラ１０６は、ストレージデバイス３０４からの命令を受信するように構成されるファームウェア３１０を備える。マイクロコントローラ１０６の電源をオンすると、ファームウェア３１０はストレージデバイス３０４に記憶されている命令を読み取るように構成されている。
【００１５】
ファームウェア３１０は、ストレージデバイス３０４から命令を受信することに応答して、これらの命令に基づいてマイクロコントローラ１０６を構成することができる。例えば、マイクロコントローラは、コンピューティングコンポーネント１０４を通信可能に監視するように構成されるピンを含むことができる。命令は、各ピン又は幾つかのピンによって監視されるコンピューティングコンポーネント１０４を定義することができる。命令は、管理コントローラ１０８に提供することができる。したがって、管理コントローラ１０８は、マイクロコントローラ１０６の構成を定義するデータを受信し、カートリッジ１０２のコンピューティングコンポーネント１０４の構成を定義するデータを受信することができる。
【００１６】
マイクロコントローラ１０６は、コンピューティングコンポーネント１０４を監視する。コンピューティングコンポーネント１０４のうちの１つの動作が変化すると、マイクロコントローラ１０６におけるピンの状態が変化する場合がある。この変化は、管理コントローラ１０８にデータ信号の形で提供することができる。管理コントローラ１０８は、このデータ信号に応答して、マイクロコントローラ１０６に動作命令を提供することができ、次に、このマイクロコントローラ１０６はコンピューティングコンポーネント１０４の動作を変更することができる。管理コントローラ１０８によって提供される命令は、ラック３０２内の複数のカートリッジのうちの１つとしてのカートリッジ１０２によって共有されるリソースの動作を変更することができる。例えば、ラックは、ファン等の冷却リソース又は電源等の電力リソースを共有することができる。
【００１７】
マイクロコントローラ１０６の動作の別の例として、コンピューティングコンポーネント１０４のうちの１つは、カートリッジ１０２に電力が提供されることを可能にするように構成される電源ボタン（図示せず）とすることができる。電源ボタンと、マイクロコントローラ１０６のピンとは通信可能に結合することができる。電源ボタンが「オン」状態に切り替わると、マイクロコントローラ１０６上のピンの状態が変化する場合がある。この状態変化は、マイクロコントローラ１０６によって管理コントローラ１０８に提供することができる。管理コントローラ１０８は、ストレージデバイス３０４から提供された命令を参照することによって、ピンが電源ボタンに結合されているものとして認識することができる。管理コントローラ１０８は、ピンの状態変化に応答して、カートリッジ１０２のコンピューティングコンポーネント１０４に電力を提供することができる出力ピンをアサートするようにマイクロコントローラに命令を送信することができる。
【００１８】
マイクロコントローラ１０６においてデータ信号を解析するのではなく、この解析は管理コントローラ１０８において行われ、それにより、マイクロコントローラ１０６は、カートリッジ１０２において解析を行うことができるコントローラに対して相対的に小さいサイズにすることができる。マイクロコントローラ１０６は、管理コントローラ１０８に監視データを未解析のフォーマットで提供することができる。さらに、マイクロコントローラ１０６は、図３に示される複数のカートリッジのうちの別のカートリッジにおけるマイクロコントローラとは異なるように構成することができる。解析が管理コントローラ１０８において行われるので、マイクロコントローラのファームウェア３１０を何ら変更することなくマイクロコントローラのそれぞれを異なるように構成することができる。マイクロコントローラ１０６の構成をカートリッジごとに異なるものとすることができる一方で、管理コントローラ１０８は、集中管理解決策、及び２つ以上のマイクロコントローラにおける異なる構成を可能にする。
【００１９】
図１を参照して述べたように、コンピューティングコンポーネント１０４は、サーバ等のホストコンピューティングデバイスとすることができる。本実施形態では、カートリッジ１０２は、マルチカートリッジサーバシステムの複数のカートリッジのうちの１つである。しかしながら、各カートリッジ１０２におけるコンピューティングコンポーネント１０４は、必ずしもサーバとする必要はなく、ストレージデバイス、プロセッサ、メモリデバイス等、の任意のコンピューティングリソースの組合せとすることができる。いずれの実施形態においても、マイクロコントローラ１０６は、コンピューティングコンポーネント１０４から離れており、カートリッジから離れている管理コントローラ１０８とインタフェース接続する。管理コントローラ１０８は、図１のコンピューティングコンポーネント１０４のプロセッサ１１４、ストレージデバイス１１６、及びメモリデバイス１２０等の、プロセッサ、記憶装置、及びメモリを備えることができる。管理コントローラ１０８は、インタフェース３１２を介して、マイクロコントローラ１０６等の複数のマイクロコントローラと通信可能に結合することができる。幾つかの実施形態では、インタフェース３１２は、イーサネット（登録商標）バスであり、コンピューティングコンポーネント１０４の監視に基づくデータは、インターネットプロトコル（ＩＰ）を介して管理コントローラ１０８に提供される。
【００２０】
図４は、カートリッジのコンポーネントを監視する方法のブロック図である。方法４００は、ブロック４０２において、カートリッジのコンピューティングコンポーネントの構成を定義する命令を受信することを含むことができる。この命令は、ストレージデバイス上に記憶することができ、カートリッジのマイクロコントローラにおいて、ストレージデバイスから受信することができる。方法４００は、ブロック４０４において、受信された命令に基づいてマイクロコントローラを構成することを含むことができる。構成命令は、カートリッジ上にインストールされたコンピューティングコンポーネントの種類に基づくことができる。マイクロコントローラは、コンピューティングコンポーネントの動作を監視することができる。方法４００は、ブロック４０６において、カートリッジのコンピューティングコンポーネントに関連付けられているデータを、マイクロコントローラを介して受信することを含むことができる。ブロック４０８において、カートリッジから離れている管理コントローラにデータを提供することができる。管理コントローラは、ブロック４１０において、受信されたデータを解析し、ブロック４１２において、受信されたデータに応答して、解析に基づいて動作信号をマイクロコントローラに通信することができる。
【００２１】
図３を参照して述べたように、マイクロコントローラにおいてデータを解析するのではなく、このデータは、カートリッジから離れている管理コントローラにおいて解析される。幾つかの実施形態では、マイクロコントローラは管理コントローラに対するプロキシとして見なすことができる。その場合、マイクロコントローラはデータを収集するが、解析しない。カートリッジのコンピューティングコンポーネントを監視することによりデータを収集するマイクロコントローラを提供することによって、マイクロコントローラが、コンピューティングコンポーネントのデータを解析することを含む動作を行うように構成される場合と比較して、マイクロコントローラのサイズを縮小し、コストを削減することができる。さらに、管理コントローラは、マイクロコントローラから、複数のカートリッジからのデータをそれぞれのカートリッジごとに受信することができる。したがって、管理コントローラは、マイクロコントローラが、１つの集中型処理メカニズムを有する異なる構成を有することを可能にする集中型プロセッサとすることができる。
【００２２】
方法４００は、管理コントローラにおいて、マイクロコントローラの構成を定義するデータと、コンピューティングコンポーネントの構成を定義するデータとを受信することを含むこともできる。したがって、コンピューティングコンポーネントの動作に関連付けられているデータが受信されると、管理コントローラは構成データを参照し、コンポーネントを識別し、コンポーネントの監視データを識別することができる。管理コントローラは、マイクロコントローラにおいて受信され管理コントローラに提供されるデータに応答して、命令を提供することができる。したがって、方法４００は、管理コントローラを用いて、コンピューティングコンポーネントの動作を示す受信されたデータを解析することを含むことができる。方法４００は、マイクロコントローラに命令を提供して、カートリッジのコンピューティングコンポーネントの動作を変更することを含むこともできる。幾つかの実施形態では、方法４００は、ラック内の複数のカートリッジのうちの１つとしてのカートリッジによって共有される冷却メカニズム及び電力供給メカニズム等のリソースの動作を変更する命令を提供することを含むこともできる。
【００２３】
マイクロコントローラは、カートリッジのコンピューティングコンポーネントの構成に基づいて構成される。幾つかの実施形態では、方法４００は、マイクロコントローラのファームウェアを何ら変更することなくマイクロコントローラを構成することを含む。マイクロコントローラは、コンピューティングコンポーネントを監視することにより受信したデータの解析を含む動作を行わないので、マイクロコントローラのファームウェアは、ラックサーバシステムのラック内の全てのカートリッジにわたって共通とすることができる。
【００２４】
本明細書において用いられる用語、説明、及び図面は、例としてのみ記載され、限定を意味しない。当業者であれば、添付の特許請求の範囲及びその均等物によって規定されることが意図される本発明の範囲内において多くの変形形態が可能であると認識するであろう。ここで、全ての用語は、別段示されない限り、それらの用語の最も広く合理的な意味を指す。
【図１】
2016515738.tif 000003
【図２】
2016515738.tif 000004
【図３】
2016515738.tif 000005
【図４】
2016515738.tif 000006
【国際調査報告】
2016515738.tif 000007
2016515738.tif 000008