(57)【要約】      （修正有）【課題】完全に自動化された標準ベースのサーバノード検出、アセットインベントリ、構成、およびプロビジョニングをブート前環境において実現する。【解決手段】ブート前環境においてシステムのＳＬＰサービスエージェントおよびＣＩＭ（コモン・インフォメーション・モデル）ブローカを初期化して、マルチキャスト要求を送信してユニキャスト広告をディレクトリエージェントから受信して、ディレクトリエージェントにＷＢＥＭ（ウェブ・ベースド・エンタープライズ・マネジメント）サービスを登録して、リソースマネージャからの情報に応じてブート前環境においてシステムのアセットインベントリを構成、プロビジョニング、および／または、実行する方法を含む。【選択図】図１
2010108487.tif 000002
【特許請求の範囲】
【請求項１】
システムのブート前環境において前記システムのサービスエージェントおよびＣＩＭブローカを初期化する段階と、
前記サービスエージェントを介して前記システムからマルチキャストディレクトリエージェント要求を送信して、ネットワークを介して前記システムに結合されているディレクトリエージェントからユニキャスト広告を受信する段階と、
前記サービスエージェントを介して前記ディレクトリエージェントにＷＢＥＭサービスを登録する段階と、
前記ネットワークを介して前記システムに結合されたリソースマネージャから少なくとも１つの構成メッセージを受信して、前記少なくとも１つの構成メッセージに応じて前記ブート前環境において前記システムを構成する段階と
を備える方法。
【請求項２】
前記システムを構成する段階は、前記少なくとも１つの構成メッセージに応じて前記システムのプロセッサの少なくとも１つの構成レジスタを更新する段階を有し、
前記少なくとも１つの構成メッセージは、ＴＣＰプロトコルを用いているＷＢＥＭ準拠プロトコルメッセージである
請求項１に記載の方法。
【請求項３】
前記システムを構成する段階の後に前記システムのＯＳをブートする段階
をさらに備え、
前記ＯＳの少なくとも一部分は、前記ブート前環境において前記リソースマネージャから、前記リソースマネージャからのブート継続メッセージに応じてプロビジョニングされる
請求項１に記載の方法。
【請求項４】
前記ＯＳを用いて前記システムにおいて作業負荷を実行する段階
をさらに備え、
前記作業負荷は、前記ブート前環境において前記リソースマネージャからプロビジョニングされる
請求項３に記載の方法。
【請求項５】
不揮発性ストレージに格納されているペイロードを介して、ブート前ＢＩＯＳで、前記送信する段階、前記登録する段階、および前記受信する段階を行う段階
をさらに備え、
前記ペイロードは、第１のＯＳカーネルを含む
請求項１に記載の方法。
【請求項６】
前記第１のＯＳカーネルは、ＥＦＩブート可能カーネルを含み、前記ＣＩＭブローカおよび前記サービスエージェントは前記ＥＦＩブート可能カーネルを介して初期化されて、
前記ＥＦＩブート可能カーネル、前記ＣＩＭブローカ、および前記サービスエージェントは前記不揮発性ストレージに格納されている
請求項５に記載の方法。
【請求項７】
前記リソースマネージャから第２のＯＳカーネルを受信して、前記ブート前環境において前記システムの第２の不揮発性ストレージに前記第２のＯＳカーネルを格納する段階
をさらに備え、
前記第２のＯＳカーネルは、前記リソースマネージャに与えられた前記システムの情報に応じて提供される
請求項６に記載の方法。
【請求項８】
前記リソースマネージャからのブート継続メッセージに応じて前記第２のＯＳカーネルをブートして、前記第２のＯＳカーネルを用いて前記システムで作業負荷を実行する段階
をさらに備え、
前記作業負荷は、前記リソースマネージャによってプロビジョニングされる
請求項７に記載の方法。
【請求項９】
システム識別子と、前記システムをプロビジョニングするための所定の構成とを対応付けることなく、前記システムから前記マルチキャストディレクトリエージェント要求を送信する段階
をさらに備える、請求項１に記載の方法。
【請求項１０】
前記リソースマネージャのクエリーに対して、前記システムのアセットインベントリを実施するための前記システムの能力を識別することで応答する段階
をさらに備える、請求項９に記載の方法。
【請求項１１】
前記ディレクトリエージェントは、前記リソースマネージャに前記ＷＢＥＭサービスの登録の通知を与え、
前記システムは、前記リソースマネージャから、システム能力に関する要求を受信して、前記要求に対する応答を与え、
前記リソースマネージャは、前記要求に対する前記応答に基づいて前記少なくとも１つの構成メッセージを送信する
請求項１に記載の方法。
【請求項１２】
命令を有する機械アクセス可能記録媒体を備える物品であって、前記命令が実行されると、システムは、
前記システムが対応付けられている識別情報を持っていないブート前環境において、ＢＩＯＳモジュールを実行して、
前記ブート前環境において最小ＯＳカーネルを実行して前記ブート前環境においてサービスエージェントを開始させて、
前記ブート前環境において前記サービスエージェントを実行して、
前記システムに対してＷＢＥＭサービスを実施して、
前記サービスエージェントは、ネットワークを介して要求を送信し、ＴＣＰプロトコルでＳＬＰディレクトリエージェントから広告を受信し、前記広告に応じて前記ＷＢＥＭサービスを前記ＳＬＰディレクトリエージェントに登録する
物品。
【請求項１３】
さらに命令を有し、前記命令が実行されると、前記システムは、
前記ネットワークを介して前記システムに結合されているリソースマネージャから少なくとも１つの構成メッセージを受信して、前記少なくとも１つの構成メッセージに応じて前記ブート前環境において前記システムを構成する
請求項１２に記載の物品。
【請求項１４】
前記最小ＯＳカーネルは、ＥＦＩブート可能カーネルを含み、
前記ＢＩＯＳ、前記ＥＦＩブート可能カーネル、および前記サービスエージェントは、不揮発性ストレージに格納されている
請求項１３に記載の物品。
【請求項１５】
さらに命令を有し、前記命令が実行されると、前記システムは、
前記リソースマネージャから第２のＯＳカーネルを受信して、第２の不揮発性ストレージに前記第２のＯＳカーネルを格納して、
前記第２のＯＳカーネルは、前記リソースマネージャに与えられた前記システムの情報に応じて提供される
請求項１４に記載の物品。
【請求項１６】
前記不揮発性ストレージを備える
請求項１４に記載の物品。
【請求項１７】
命令を実行するプロセッサと、
命令を有する記録媒体と
を備えるシステムであって、
前記記録媒体の前記命令によって、前記システムは、ブート前ＢＩＯＳを実行して、前記ブート前ＢＩＯＳから、ブート前環境において実行される第１のＯＳカーネルへと、制御を移行して、ネットワークのディレクトリエージェントを特定して、前記ディレクトリエージェントから広告を受信して、前記ディレクトリエージェントにＷＢＥＭサービスを登録して、前記ネットワークのリソースマネージャから少なくとも１つの構成メッセージを受信して、前記少なくとも１つの構成メッセージに応じて前記ブート前環境において前記システムを構成する
システム。
【請求項１８】
前記システムを構成することは、ＴＣＰプロトコルのＷＢＥＭメッセージに対応する前記少なくとも１つの構成メッセージに応じて、前記プロセッサの少なくとも１つの構成レジスタを更新することを含む
請求項１７に記載のシステム。
【請求項１９】
前記記録媒体の前記命令によって、前記システムはさらに、前記システムを構成した後に第２のＯＳをブートして、前記第２のＯＳを用いて前記システムにおいて作業負荷を実行して、
前記第２のＯＳおよび前記作業負荷は、前記ブート前環境において前記リソースマネージャからプロビジョニングされる
請求項１７に記載のシステム。
【請求項２０】
前記第１のＯＳカーネルは、ＥＦＩブート可能カーネルを含み、前記ＥＦＩブート可能カーネルおよび前記ブート前ＢＩＯＳは共に前記システムの不揮発性ストレージに格納されている
請求項１７に記載のシステム。
【発明の詳細な説明】
【背景技術】
【０００１】
データ処理を増加させる需要が高まるにつれて、多くの企業ではデータ倉庫のように機能するデータセンターを設置している。このようなデータセンターは、個別のコンピュータシステムを多数有することが可能である。このようなコンピュータシステムは通常、ラック状に構成されているブレードサーバのようなサーバコンピュータとして構成される。コンピュータシステムの多くはデータの格納および検索に用いられ得るが、コンピュータシステムによって、異なるタスクを処理するべく異なる構成を持たせることが可能である。システム構成を異ならせるためには、データセンター担当者が、異なるタスクを処理するべく利用され得るように、ハードウェア設定および／またはソフトウェア設定を異ならせて各コンピュータシステムを手動で構成するのが通常である。このようなシステム構成は、リソースマネージャ（または、プロビジョニングエージェント）で集中して実行されるのが普通で、人間の介入を非常に多く必要とする。
【０００２】
例えば、一部のデータセンター環境では、性能を最適化すると同時にコストを最小限に抑えつつ、異なる作業負荷を処理できるように、異なるサーバに異なる構成を持たせるとよい。しかし、この目的を実現するためには、プロビジョニングエージェントにサーバ識別子および構成情報を与えて、サーバを識別し、構成を適切に処理する必要がある。しかし、このような手順は、複雑であり、プロビジョニングエージェントにおいて、正確なプロビジョニングを判断して、この正確なプロビジョニングと特定のサーバとの間でマッピングを構築することを目的として各サーバの能力を判断する際に、人間による介入が非常に多く必要となる。
【０００３】
データセンターで実施されるコンピュータシステムのプロビジョニングは一部、オペレーティングシステムが機械にまだロードされていない状態である、いわゆるブート前環境において実行することができる。現在利用されているブート前環境の１つに、ネットワーク接続されたシステムにオペレーティングシステム（ＯＳ）のようなソフトウェアが与えられるブート前実行環境（ＰＸＥ）と呼ばれるものがある。しかし、ＰＸＥには、信頼性が非常に低いプロトコルであるユーザデータグラムプロトコル（ＵＤＰ）を通信に利用するという欠点があることが知られている。また、ＰＸＥは、メディアアクセス制御（ＭＡＣ）アドレスのようなサーバ情報とＯＳイメージとを関連付けるための最小限の構成を必要とする。このため、ＰＸＥを利用してシステムのプロビジョニングを行うと、ポリシーおよび能力に基づくリソース割り当てを実施する可能性が制限されてしまう。
【図面の簡単な説明】
【０００４】
【図１】本発明の一実施形態に係る不揮発性ストレージを示すブロック図である。
【０００５】
【図２】本発明の一実施形態に係る方法を示すフローチャートである。
【０００６】
【図３】本発明の実施形態に係るデータセンターを示すブロック図である。
【０００７】
【図４】本発明の実施形態に係るクライアントシステムを示すブロック図である。
【発明を実施するための形態】
【０００８】
完全に自動化された標準ベースのサーバノード検出、アセットインベントリ、構成、およびプロビジョニングをブート前環境において実現するべく、本発明の実施形態を利用するとしてよい。具体的に説明すると、時間ゼロにおいて、これより以前に、サーバは構成されておらず、またオペレーティングシステムまたはソフトウェアはインストールされていない状態において、信頼性の高い標準プロトコルを用いて、ベアメタルサーバを検出、構成、プロビジョニング、およびブートすることが出来る。つまり、人間の介入は、可能ではあるが、上述した動作（検出、アセットインベントリ、構成、プロビジョニング、およびブート）に関連するシステム、例えばリソースマネージャ等に対して、サーバ識別に基づく構成を提供する上で必要とされないことが示唆されている。これは、システムがブート前状態にある場合も可能である。本明細書で使用する場合、「時間ゼロ」は、工場からの箱からサーバを取り出してから、通常初期構成を実行するべくサーバが初めてブートされるまでの期間を指す。初期構成の実行は、例えば、帯域外ネットワーク設定の構築、デフォルトでないＢＩＯＳ（ベーシック・インプット・アウトプット・システム：Ｂａｓｉｃ  Ｉｎｐｕｔ／Ｏｕｔｐｕｔ  Ｓｙｓｔｅｍ）構成の設定、最新のファームウェアのインストール、およびオペレーティングシステムのインストール等を含む。本明細書で使用する場合、「ベアメタル」という用語は、時間ゼロにおけるシステム状態を意味する。尚、システムをベアメタルに戻すことが可能であり、システム構成を工場出荷時の状態（ベースボード・マネジメント・コントローラ（Ｂａｓｅｂｏａｒｄ  Ｍａｎａｇｅｍｅｎｔ  Ｃｏｎｔｒｏｌｌｅｒ）等を含む）に完全に再設定すると共にディスク内容を全てクリア／無視することによって、時間ゼロに「復帰」することが可能である。本明細書で使用する場合、「ブート前状態」という用語は、ブート前時間におけるシステム状態を指す。本明細書で使用する場合、「ブート前時間」とは、サーバのメインプロセッサの電源がオンになる時点から、最終オペレーティングシステムをサーバがロードし始める時点までの期間を指す。尚、最終オペレーティングシステムとは、システムにユーザアプリケーションを実行させ、そのロードが完了するとブート処理の終了を意味するオペレーティングシステムである。システムは、リセットされた後、または、電源がオフになった後、再度電源が入れられると、再びブート前状態となる。本明細書で使用する場合、「ブート前環境」は、ブート前時間中のシステム環境を意味する。
【０００９】
構成がゼロの状態でブート前サーバ検出を実行することによって、プロビジョニングされるイメージを決定するべくＭＡＣアドレスまたはその他の任意の区別可能なサーバ識別子を追跡する必要がなくなる。このため、リソースマネージャは、ブート前状態においてサーバのリソース割り当てに関してポリシーに基づいて決定を下すことが可能となり、また、サーバの構成およびプロビジョニングに関しても、ポリシーに基づいて決定を下すことが可能となる。例えば、特定の特徴を持つ作業負荷を、一連の要件、例えば、プロセッサが複数あること、または、マルチコアプロセッサを有していること等の要件を満たしている第１のサーバに割り当てるようリソースマネージャに対して求めているポリシールールが定められている場合がある。このルールはさらに、各プロセッサのモデル固有レジスタ（ＭＳＲ）を特定の方法で構成するようにリソースマネージャに求めているとしてよい。
【００１０】
ブート前サーバ検出は、非常に信頼性が高いＷＢＥＭ（ウェブ・ベースド・エンタープライズ・マネジメント：Ｗｅｂ−Ｂａｓｅｄ  Ｅｎｔｅｒｐｒｉｓｅ  Ｍａｎａｇｅｍｎｔ）準拠プロトコルを用いて実行され得る。このため、エラーの可能性が最低限に抑えられる。ＷＢＥＭは、ＤＭＴＦ（ディストリビューテッド・マネジメント・タスク・フォース：：Ｄｉｓｔｒｉｂｕｔｅｄ  Ｍａｎａｇｅｍｅｎｔ  Ｔａｓｋ  Ｆｏｒｃｅ）と呼ばれる非常に著名な企業が関わっている機関によってサポートされている。信頼性の高いプロトコルを用いることによって、本発明の実施形態は、信頼性の低いプロトコル、例えば、ＰＸＥ（ブート前実行環境：Ｐｒｅｂｏｏｔ  Ｅｘｅｃｕｔｉｏｎ  Ｅｎｖｉｒｏｎｍｅｎｔ）によって利用されている、データグラムの送信において信頼性または規則性が保証されていないＵＤＰ等の利用を回避することができる。例えば、数多くの（例えば、数千もの）サーバを備えるデータセンターでは、イメージをダウンロードしている最中に故障が発生する可能性がある。ＰＸＥを用いてプロビジョニングが行われると、通信方式の信頼性が非常に低いので、このような故障が検出されないままとなってしまう可能性がある。
【００１１】
自動化ブート前プラットフォーム構成およびプロビジョニングは、プラットフォームの機能、作業負荷要件、およびハイレベルなポリシーに基づいて実行され得る。プラットフォーム機能である問い合わせ、構成およびプロビジョニングは、信頼性の高いウェブサービスプロトコル、例えば、業界内で一般的に受け入れられているＷＳ−ＣＩＭ（ウェブ・サービス・コモン・インフォメーション・モデル：Ｗｅｂ  Ｓｅｒｖｉｃｅｓ−Ｃｏｍｍｏｎ  Ｉｎｆｏｒｍａｔｉｏｎ  Ｍｏｄｅｌ）およびＷＳ−Ｍａｎａｇｅｍｅｎｔを用いるとしてよい。ブート前構成およびプロビジョニングには、業界内で広く受け入れられている規格であるＣＩＭを利用することができる。利用されるプロトコルは、セキュリティ関連機能をトランスペアレントに統合することができ、ファイヤーウォール越えを可能とする。このため、本明細書に記載するブート前構成方法では、リソースマネージャが解釈するハイレベルなポリシーの定義以外は、人間の介入が全く必要ない。
【００１２】
一実施形態に係るシステムは、ブート前ＢＩＯＳ（ベーシック・インプット・アウトプット・システム：Ｂａｓｉｃ  Ｉｎｐｕｔ／Ｏｕｔｐｕｔ  Ｓｙｓｔｅｍ）によって実行されるべく不揮発性ストレージに格納されている、ＯＳ（オペレーティングシステム）カーネルを含むペイロードと、ＤＨＣＰクライアントと、ＣＩＭブローカと、アセットインベントリ、プラットフォーム構成、およびプロビジョニング用の適切なＣＩＭ方式と、アセットインベントリ、プラットフォーム構成、およびプロビジョニング用の適切なＣＩＭプロバイダとを備えるとしてよい。さらに、アセットインベントリ、プラットフォーム構成、およびプロビジョニングのための当該システムとの通信は、ＷＳ−Ｍａｎａｇｅｍｅｎｔプロトコル、ＷＳＤＭ（ウェブ・サービス・ディストリビューテッド・マネジメント：Ｗｅｂ  Ｓｅｒｖｉｃｅｓ  Ｄｉｓｔｒｉｂｕｔｅｄ  Ｍａｎａｇｅｍｅｎｔ）またはＷＳ−ＣＩＭによって実現され得る。当該システムは、データセンター内のサーバ、例えば、ラックに実装されたブレードサーバであってよい。
【００１３】
検出を可能とするべく、当該システムはＳＬＰ（サービス・ロケーション・プロトコル：Ｓｅｒｖｉｃｅ  Ｌｏｃａｔｉｏｎ  Ｐｒｏｔｏｃｏｌ）サービスエージェントに結合されるとしてよい。一実施形態によると、オペレーティングシステムカーネルは、ＥＦＩ（エクステンシブル・ファームウェア・インターフェース：Ｅｘｔｅｎｓｉｂｌｅ  Ｆｉｒｍｗａｒｅ  Ｉｎｔｅｒｆａｃｅ）ブート可能カーネルであってよく、アプリケーション、ＣＩＭプロバイダおよびＣＩＭモデルと共に、当該システムのフラッシュメモリまたはその他の不揮発性ストレージに格納されるとしてよい。
【００１４】
図１は、本発明の一実施形態に係る不揮発性ストレージ１００を示すブロック図である。図１に示すように、不揮発性ストレージは、ブート前ＢＩＯＳ、つまり、ＥＦＩ  ＢＩＯＳ１１０を備えるフラッシュメモリであってよい。さらに、不揮発性ストレージ１００はさらにＯＳカーネル１２０を備える。ＯＳカーネル１２０は、ＥＦＩブート可能なカーネルであってよく、Ｌｉｎｕｘ（登録商標）カーネル等のフットプリントが小さいＯＳに対応するとしてよい。不揮発性ストレージ１００はさらに、ＷＢＥＭインターフェース１３０を備えるとしてよい。ＷＢＥＭインターフェース１３０は、当該ストレージを含むシステムと、ネットワーク内のほかの複数のシステムとの間で、該システムがブートされる前に、検出およびアクセスを実行するべく利用されるとしてよい。ＢＩＯＳ、ＯＳカーネル、およびＷＢＥＭインターフェースが共に単一のフラッシュメモリに格納されているＢＩＯＳスタックという具体的な実装例を図示しているが、実施形態はこれに限定されない。その他の実施形態では、別の不揮発性ストレージデバイスにペイロードを格納するように、ＢＩＯＳスタックを別の方法で提供するとしてよい。
【００１５】
図１に示す実装例では、ストレージ１００を含むシステムの電源がオンになると、ＥＦＩ  ＢＩＯＳ１１０が実行されるとしてよい。この結果、ＯＳ１２０の実行がトリガされ、ＷＢＥＭインターフェース１３０が信頼性の高いプロトコルに従って最初の通信を実行できるようになるとしてよい。このようにして、初期構成情報、例えばＭＡＣアドレスまたはその他のシステム識別子を、関連するシステム、例えばリソースマネージャに与えることなく、ブート前環境においてシステムが構成およびプロビジョニングされるとしてよい。言うまでもなく、例えば、ＤＨＣＰ（動的ホスト構成プロトコル）サーバから与えられるＩＰ（インターネットプロトコル）アドレスは、後述するように、通信が実行されるように、システムに対応付けられている。
【００１６】
一実施形態によると、システムは以下のように実行される。最初の物理的なインストールの後、それ以上人間の手によって構成しなくても、サーバがオンに制御されるや否や、オペレーティングシステムブート処理が開始される前に、サーバはリソースマネージャによって検出され、リソースマネージャは、能力についてクエリーを行い、ＷＢＥＭ標準プロトコルを用いて、サーバを構成およびプロビジョニングすることができる。検出は、ＳＬＰ（サービス・ロケーション・プロトコル：Ｓｅｒｖｉｃｅ  Ｌｏｃａｔｉｏｎ  Ｐｒｏｔｏｃｏｌ）を用いて行うことができる。ＳＬＰは、ＩＥＴＦ（インターネット・エンジニアリング・タスク・フォース：Ｉｎｔｅｒｎｅｔ  Ｅｎｇｉｎｅｒｒｉｎｇ  Ｔａｓｋ  Ｆｏｒｃｅ）、ＲＦＣ（リクエスト・フォー・コメント：Ｒｅｑｕｅｓｔ  Ｆｏｒ  Ｃｏｍｍｅｎｔ）２６０８によって定義されたＷＢＥＭ準拠プロトコルである。
【００１７】
不揮発性ストレージに上述した構成要素を備えるサーバシステムに加えて、当該検出方法は、データセンターのＳＬＰディレクトリエージェントを用いて実装されるとしてよい。当該ディレクトリエージェントがＲＦＣ３０８２または同様の公表／加入メカニズムを実装しているのであれば、新しいＷＢＥＭサービスが登録されるといつでも、ディレクトリエージェント（例えば、データセンターと）に結合されているリソースマネージャに通知される。
【００１８】
このようにリソースマネージャがサーバを検出すると、リソースマネージャは自動的に、例えばＣＩＭおよびＷＳ−ＣＩＭ、または、ＷＳ−Ｍａｎａｇｅｍｅｎｔに基づいて、新たに検出されたプラットフォームを構成できる。一実施形態によると、プロセッサの機能およびその他のプラットフォームの機能が、ブート処理を継続して実行する前に、リソースマネージャによって構成され得る。構成に引き続き、または、構成に先立って、サーバは自動的に、特定のオペレーティングシステムの全部または一部で、１以上の作業負荷と共に、全てＣＩＭおよびＷＳ−ＣＩＭ、またはＷＳ−Ｍａｎａｇｅｍｅｎｔプロトコルを用いて、プロビジョニングされ得る。最後に、サーバは、ＣＩＭを介して、好ましいイメージでブートを継続するように命令される。これらの動作はすべて、ブート前環境において信頼性の高い通信プロトコルを用いて行われることに留意されたい。
【００１９】
図２に示すように、方法２００は、ブート前環境においてプラットフォームに、または、関連するいずれのシステム、例えばリソースマネージャ等にも所定の構成情報を格納することなく、プラットフォームを検出、構成、およびプロビジョニングするべく用いられるとしてよい。具体的に説明すると、図２に示すように、方法２００は、プラットフォームにおいてブート前ＢＩＯＳを実行することによって開始されるとしてよい（ブロック２１０）。一実施形態によると、ブート前ＢＩＯＳは、図１を参照して説明したようなＢＩＯＳスタックの一部であるＥＦＩ  ＢＩＯＳであってよい。
【００２０】
ＢＩＯＳが実行されて、システムがセルフテストを行い、有効であると判断されると、一実施形態によると、ＢＩＯＳは、ＢＩＯＳと同じ不揮発性メモリ（つまり、フラッシュメモリ）に格納されているＯＳカーネルに制御を渡すとしてよい。特に、図２のブロック２２０に示されているように、このＯＳカーネルが実行されるとしてよい。このＯＳカーネルは、最小のＯＳカーネルであってよく、本明細書ではブート前ＯＳとも呼ばれ、ＣＩＭまたはＷＢＥＭ環境において通信を行うためのさまざまな動作を実行するＬｉｎｕｘ（登録商標）カーネル等であってよい。このＯＳカーネルの一部として、ＤＨＣＰ（動的ホスト構成プロトコル）ルーチンが実行されて、ＩＰ（インターネットプロトコル）アドレスをＤＨＣＰサーバから受信するとしてよい。ＤＨＣＰサーバは、プラットフォームを含むネットワーク内にあるとしてよい。例えば、一実装例によると、データセンターは複数のサーバ（各サーバは本明細書に説明するようにプロビジョニングされ得る）およびＤＨＣＰサーバを備えるとしてよく、さらにその他の制御システム、例えばＳＬＰディレクトリエージェントおよびリソースマネージャ等を備えるとしてよい。これに代えて、一部の実施形態によると、このルーチンは、ブート前ＢＩＯＳにおいて実行されるとしてよい。さらに、このＯＳカーネルは、ＣＩＭブローカおよびサービスエージェントを開始するとしてよい。ＣＩＭブローカおよびサービスエージェントも、同じ不揮発性ストレージに格納されているとしてよい。
【００２１】
図２を参照して説明を続けると、このサービスエージェントは、ネットワークにマルチキャスト要求を送信するとしてよい（ブロック２３０）。具体的には、このマルチキャスト要求は、ディレクトリエージェントまたはサービス、例えば、ＳＬＰディレクトリエージェント等を見つけるための要求に対応するとしてよい。この要求に応じて、ディレクトリエージェント、例えば、ＳＬＰディレクトリエージェントは、信頼性の高いプロトコルによってユニキャスト承認を送信するとしてよい。ユニキャスト承認は、プラットフォームによって、より具体的には、サービスエージェントによって受信される（ブロック２４０）。そして、サービスエージェントは、ＷＢＥＭサービスをディレクトリエージェントに登録するとしてよい。本発明の範囲はこれに限定されないが、さまざまな実施形態によると、サービスエージェントはディレクトリエージェントに対して、１以上のＷＢＥＭサービスを行うことが可能であることを示す登録メッセージを送信してよい。一実施形態によると、登録メッセージは、サービスの種類（例えば、所定のＷＢＥＭサービス）、サービスのＩＰアドレスまたはＵＲＬ、および、サービスが監視しているポート番号等の情報を含む。
【００２２】
続いて（方法２００には示していないが）、ディレクトリエージェントは、この新たに登録されたＷＢＥＭサービスの存在を示すべく、以前に登録されたリソースマネージャに通信を送るとしてよい。したがって、リソースマネージャは、このブート前環境において、特定のサーバに関する構成情報、例えば、サーバ識別子に対応付けられている情報技術（ＩＴ）管理者が入力する構成等を予め受信することなく、プラットフォームに対して検出、構成、およびプロビジョニングを行うとしてよい。その代わりに、例えばリソースマネージャ内の所定のルールに基づいて、例えばＩＴ担当者によって設定されたものに基づいて、リソースマネージャは、さまざまなメッセージをプラットフォームに送るとしてよい（ブロック２５０）。該メッセージは、このブート前環境においては、例えばＷＢＥＭサービスによって受信されるとしてよい。通信は、復号されて、システムに対して情報が要求されているか否かを判断するとしてよい（ひし形２６０）。例えば、リソースマネージャが、システムの能力および構成の情報の受信を要求するとしてよい。例えば、システムのハードウェア構成、および、システムが有するソフトウェアの識別情報の受信を要求するとしてよい。要求しているか否かは、システムのハードドライブまたはその他の構成情報、例えば、プロセッサ能力等にアクセスすることによって判断されるとしてよい。
【００２３】
このような情報に対する要求が受信されると、要求された情報が集められてリソースマネージャに送られるとしてよい（ブロック２７０）。これとは異なって、通信がシステム情報に対する要求でない場合には、ひし形２６０からブロック２８０に直接進む。ブロック２８０において、プラットフォームのさまざまなシステム素子を、構成／プロビジョニングするとしてよい。より具体的には、さまざまなハードウェア素子および／またはソフトウェア素子を、リソースマネージャによって構成および／またはプロビジョニングし得る。例えば、リソースマネージャは、ＣＩＭを介してシステムを構成するためのメッセージをＷＢＥＭ準拠プロトコルで送るとしてよい。プロセッサのモデル固有レジスタを構成して、新しいイメージをダウンロードするために利用する仮想ローカルエリアネットワーク（ＶＬＡＮ）を指し示し、ディスクに格納されてブートされるイメージをプロビジョニングして、追加ＣＩＭ機能で新しいペイロードをプロビジョニングするとしてよい。
【００２４】
このような構成／プロビジョニングが終了すると、ＢＩＯＳは動作を終了するとしてよく、システムは、リソースマネージャから、第２の、つまり、完全なＯＳにブートするように命令され得る。尚、完全なＯＳは、システムのハードドライブにあるとしてよい（そして、リソースマネージャによってプロビジョニングされているとしてよい）（ブロック２９０）。さらにブロック２９０において、システムは、リソースマネージャによってプロビジョニングされている作業負荷を実行するとしてよい。図２の実施形態ではこのような具体的な実装例が図示されているが、本発明の範囲はこれに限定されない。
【００２５】
図３は、本発明の実施形態に係るデータセンターを示すブロック図である。図３に示すように、データセンター３００は、クライアントプラットフォームとして、例えば、リソースマネージャ３３０を介してプロビジョニング／構成され得るサーバとして機能し得るプラットフォーム３１０を備える。さらに、データセンターは、ディレクトリエージェント３２０、つまり、ＳＬＰディレクトリエージェントも備えるとしてよい。これに代えて、ディレクトリエージェント３２０およびリソースマネージャ３３０は、同じサーバで実行されるとしてよい。図示の便宜上、３つのシステムのみを示しているが、データセンターは何千個もの個別のシステムを備え得ること、および、クライアントが１つのみであるのは図示の便宜上であることを理解されたい。本発明の実施形態に係るプロビジョニング／構成を実行するのに先立って、リソースマネージャ３３０は、ディレクトリエージェント３２０に、新たにＷＢＥＭサービスが登録される度に通知を受信するように登録しておくとしてよい。したがって、リソースマネージャは、ディレクトリエージェント３２０に加入メッセージ３０５を送るとしてよい。このようにして、ディレクトリエージェント３２０は、リソースマネージャ３３０に対して、新たなＷＢＥＭサービスを通知するとしてよい。
【００２６】
さらに図３を参照して説明を続けると、システム３１０の電源がオンになると、ＢＩＯＳ、つまりシステム内のＥＦＩ  ＢＩＯＳが実行されて、制御をペイロードに渡すとしてよい。該ペイロードは、例えば、ブート前状態において実行されるＢＩＯＳと同じフラッシュストレージに格納されている。一実施形態によると、このペイロードは、最小ＯＳカーネルおよびＷＢＥＭインターフェースを含むとしてよい。従って、このような素子が初期化されると、システム３１０は、マルチキャストＳＬＰディレクトリエージェント（ＤＡ）要求３１５を、ディレクトリエージェント３２０を含む、データセンター内の複数のシステムに送るとしてよい。このメッセージに応じて、どのシステム３１０がＷＢＥＭサービス登録メッセージ３３５を送信するかを示す情報を受信すると、ディレクトリエージェント３２０は、ＴＣＰ（トランスミッション・コントロール・プロトコル）に基づく信頼性の高いプロトコルを用いて、ＳＬＰ  ＤＡ  広告３２５を送るとしてよい。このようにして、ＴＣＰに基づく信頼性の高いプロトコルを用いて、システム３１０のブート前環境のサービスエージェントは、ＷＢＥＭサービスをディレクトリエージェント３２０に登録する。これに対して、ディレクトリエージェント３２０は、ＴＣＰに基づく信頼性の高いプロトコルを用いて、登録メッセージが指し示すように新たなＷＢＥＭサービスの存在を示す通知メッセージ３４５を送信する。より具体的には、この通知メッセージは、リソースマネージャ３３０に送信される。尚、このメッセージが送信されるのは、リソースマネージャ３２０が以前にディレクトリエージェント３２０にＷＢＥＭサービスを登録しているからである。
【００２７】
したがって、リソースマネージャ３３０は、例えば、ＷＳ−ＣＩＭまたはＷＳ−Ｍａｎａｇｅｍｅｎｔプロトコルを介して、信頼性の高いプロトコルを用いて、システム３１０をプロビジョニング／構成するためのさまざまな動作を実行するとしてよい。このような動作には、一実施形態によると、システムの能力に関してクエリーを行うこと、構成レジスタ等のシステムのさまざまなハードウェア、例えばシステム内の１以上のプロセッサのモデル固有レジスタ（ＭＳＲ）を構成すること、および、所与のＯＳイメージおよび１以上の実行されるべき作業負荷でシステムをプロビジョニングすること等の動作が含まれるとしてよい。このため、図３に示すように、リソースマネージャ３３０は、システムを構成およびプロビジョニングするべく用いられ得るＷＳ−ＣＩＭ構成メッセージ３５５を送り、システム３１０に対して通常ブート動作を継続すべきことを指し示すＷＳ−ＣＩＭブート継続メッセージ３６５を送る。システム３１０は、ＢＩＯＳの実行を完全に完了すると、および、ブートを継続する旨のメッセージをリソースマネージャ３３０から受信すると、ＯＳに、例えばプロビジョニングされたＯＳに制御を渡す。一実施形態によると、ブート継続メッセージは、ディスク内のイメージで、可能であれば、リソースマネージャによって供給されたイメージで、ブートを継続するようシステム３１０に対して命令するためのＣＩＭ法を呼び出すとしてよい。ブートが終了すると、ユーザは１以上の所望のアプリケーションを実行することができる。
【００２８】
さまざまな実施形態によると、ＳＬＰを利用することによって、ディレクトリエージェントが不定期にサービス広告を送るので、検出フェーズにおけるエラー可能性が格段に低くなる。最終的に、クライアントシステムは、ディレクトリエージェントの広告のうち１つを受信して、それを特定する。尚、このような広告の後、残りの通信は、信頼性の高い通信を実現するＴＣＰに基づくプロトコルを用いるとしてよい。
【００２９】
このため実施形態は、検出のための構成または人間の手による介入を必要としない。そうではなく、サーバに対して必要なのは、物理的にラックに入れられてオンに制御されるだけである。通信は信頼性の高いプロトコルを用いて実行され、実施形態はブート前環境においてＣＩＭおよびＷＢＥＭに基づいて実行され、生態系に容易に統合されるので、サーバの構成およびプロビジョニングを、サーバの能力、作業負荷の特徴、およびハイレベルなポリシーに基づいて、実現することができる。また、サーバの検出および割り当て／構成に関する判断は、一部の実施形態はＥＦＩ  ＢＩＯＳに基づいてペイロードとして実行され得るので、非常に短時間で行うことができる。ＷＳ−ＣＩＭ（またはＷＳ−Ｍａｎａｇｅｍｅｎｔ）のようなウェブサービス管理プロトコルを用いるので、より簡単にファイヤーウォール越えを実現する能力によって、サーバ向けに新たなサービスを可能とすると共に高性能計算（Ｈｉｇｈ  Ｐｅｒｆｏｒｍａｎｃｅ  Ｃｏｍｐｕｔｉｎｇ：ＨＰＣ）を可能とし、セキュリティ機能の追加を可能として、ＷＳ−ＳｅｃｕｒｉｔｙおよびＳＳＬ（セキュア・ソケット・レイヤー：Ｓｅｃｕｒｅ  Ｓｏｃｋｅｔｓ  Ｌａｙｅｒ）のようなセキュリティプロトコルの利用を可能とする。
【００３０】
実施形態は、数多くの異なる種類のシステムにおいて実装されるとしてよい。図４は、本発明の実施形態に係る、サーバ等のクライアントシステム、例えば、データセンターに組み込まれるブレードサーバを示すブロック図である。図４に示すように、マルチプロセッサシステム５００は、ポイントツーポイントインターコネクトシステムであり、ポイントツーポイントインターコネクト５５０によって互いに結合されている第１のプロセッサ５７０および第２のプロセッサ５８０を備える。図４に示すように、プロセッサ５７０および５８０はそれぞれ、マルチコアプロセッサであってよく、第１および第２のプロセッサコアを有する（つまり、プロセッサコア５７４ａおよび５７４ｂ、ならびに、プロセッサコア５８４ａおよび５８４ｂ）。しかし、各プロセッサが有するコアの数はこれより多くてもよい。
【００３１】
図４を参照して説明を続けると、第１のプロセッサ５７０はさらに、メモリコントローラハブ（ＭＣＨ）５７２およびポイントツーポイント（Ｐ−Ｐ）インターフェース５７６および５７８を有する。同様に、第２のプロセッサ５８０は、ＭＣＨ５８２およびＰ−Ｐインターフェース５８６および５８８を有する。図４に示すように、ＭＣＨ５７２および５８２は、プロセッサを対応するメモリ、つまり、メモリ５３２およびメモリ５３４に結合している。メモリ５３２および５３４は、局所的に対応するプロセッサに取り付けられているメインメモリ（例えば、ダイナミックランダムアクセスメモリ（ＤＲＡＭ））の一部分であってよい。第１のプロセッサ５７０および第２のプロセッサ５８０は、Ｐ−Ｐインターコネクト５５２および５５４を介してチップセット５９０に結合されるとしてよい。図４に示すように、チップセット５９０は、Ｐ−Ｐインターフェース５９４および５９８を有する。
【００３２】
さらに、チップセット５９０は、チップセット５９０を高性能グラフィクスエンジン５３８にＰ−Ｐインターコネクト５３９によって結合するためのインターフェース５９２を有する。これに対して、チップセット５９０は、インターフェース５９６を介して、第１のバス５１６に結合されるとしてよい。図４に示すように、さまざまな入出力（Ｉ／Ｏ）デバイス５１４が、第１のバス５１６を第２のバス５２０に結合するバスブリッジ５１８と共に、第１のバス５１６に結合されるとしてよい。さまざまなデバイスが第２のバス５２０に結合され得るが、そのようなデバイスには、例えば、キーボード／マウス５２２、通信デバイス５２６、および、一実施形態によると、コード５３０を含み得るフラッシュメモリまたはその他の不揮発性ストレージデバイス等のデータストレージ部５２８が含まれる。そのようなコードは、図１に図示したようなＢＩＯＳスタックとして組み込まれるとしてよく、システムがブート前で、未構成または構成済みの状態にある場合に、自動的な検出、アセットインベントリ、構成、および、プロビジョニングを可能とする。さらに、オーディオＩ／Ｏ５２４は、第２のバス５２０に結合されるとしてよい。
【００３３】
本発明の実施形態は、コードで実装されるとしてよく、命令を実行するべくシステムをプログラミングするのに用いられ得る命令を格納している記憶媒体に格納されるとしてよい。当該記憶媒体は、これらに限定されないが、任意の種類のディスク、例えば、フロッピー（登録商標）ディスク、光ディスク、読み出し専用コンパクトディスク（ＣＤ−ＲＯＭ）、書き換え可能コンパクトディスク（ＣＤ−ＲＷ）および光磁気ディスク、半導体デバイス、例えば、読み出し専用メモリ（ＲＯＭ）、ランダムアクセスメモリ（ＲＡＭ）、例えば、ダイナミックＲＡＭ（ＤＲＡＭ）およびスタティックＲＡＭ（ＳＲＡＭ）、消去可能プログラム可能読み出し専用メモリ（ＥＰＲＯＭ）、フラッシュメモリ、電気的消去可能プログラム可能読み出し専用メモリ（ＥＥＰＲＯＭ（登録商標））、磁気カードもしくは光カード、または、電子的な命令を格納するのに適しているその他の任意の種類の媒体を含むとしてよい。
【００３４】
限られた数の実施形態を参照して本発明を説明したが、当業者であれば数多くの変形例およびそれらの変更例に想到するであろう。本願の特許請求の範囲は、本発明の真の精神および範囲内のものとして、そのような変形例および変更例を全て含むものとする。
【図１】
2010108487.tif 000003
【図２】
2010108487.tif 000004
【図３】
2010108487.tif 000005
【図４】
2010108487.tif 000006
【手続補正書】
【提出日】平成21年10月29日(2009.10.29)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
システムのブート前環境において前記システムのサービスエージェントおよびＣＩＭブローカを初期化する段階と、
前記サービスエージェントを介して前記システムからマルチキャストディレクトリエージェント要求を送信して、ネットワークを介して前記システムに結合されているディレクトリエージェントからユニキャスト広告を受信する段階と、
前記サービスエージェントを介して前記ディレクトリエージェントにＷＢＥＭサービスを登録する段階と、
前記ネットワークを介して前記システムに結合されたリソースマネージャから少なくとも１つの構成メッセージを受信して、前記少なくとも１つの構成メッセージに応じて前記ブート前環境において前記システムを構成する段階と
を備える方法。
【請求項２】
前記システムを構成する段階は、前記少なくとも１つの構成メッセージに応じて前記システムのプロセッサの少なくとも１つの構成レジスタを更新する段階を有し、
前記少なくとも１つの構成メッセージは、ＴＣＰプロトコルを用いているＷＢＥＭ準拠プロトコルメッセージである
請求項１に記載の方法。
【請求項３】
前記システムを構成する段階の後に前記システムのＯＳをブートする段階
をさらに備え、
前記ＯＳの少なくとも一部分は、前記ブート前環境において前記リソースマネージャから、前記リソースマネージャからのブート継続メッセージに応じてプロビジョニングされる
請求項１に記載の方法。
【請求項４】
前記ＯＳを用いて前記システムにおいて作業負荷を実行する段階
をさらに備え、
前記作業負荷は、前記ブート前環境において前記リソースマネージャからプロビジョニングされる
請求項３に記載の方法。
【請求項５】
不揮発性ストレージに格納されているペイロードを介して、ブート前ＢＩＯＳで、前記送信する段階、前記登録する段階、および前記受信する段階を行う段階
をさらに備え、
前記ペイロードは、第１のＯＳカーネルを含む
請求項１に記載の方法。
【請求項６】
前記第１のＯＳカーネルは、ＥＦＩブート可能カーネルを含み、前記ＣＩＭブローカおよび前記サービスエージェントは前記ＥＦＩブート可能カーネルを介して初期化されて、
前記ＥＦＩブート可能カーネル、前記ＣＩＭブローカ、および前記サービスエージェントは前記不揮発性ストレージに格納されている
請求項５に記載の方法。
【請求項７】
前記リソースマネージャから第２のＯＳカーネルを受信して、前記ブート前環境において前記システムの第２の不揮発性ストレージに前記第２のＯＳカーネルを格納する段階
をさらに備え、
前記第２のＯＳカーネルは、前記リソースマネージャに与えられた前記システムの情報に応じて提供される
請求項６に記載の方法。
【請求項８】
前記リソースマネージャからのブート継続メッセージに応じて前記第２のＯＳカーネルをブートして、前記第２のＯＳカーネルを用いて前記システムで作業負荷を実行する段階
をさらに備え、
前記作業負荷は、前記リソースマネージャによってプロビジョニングされる
請求項７に記載の方法。
【請求項９】
システム識別子と、前記システムをプロビジョニングするための所定の構成とを対応付けることなく、前記システムから前記マルチキャストディレクトリエージェント要求を送信する段階
をさらに備える、請求項１に記載の方法。
【請求項１０】
前記リソースマネージャのクエリーに対して、前記システムのアセットインベントリを実施するための前記システムの能力を識別することで応答する段階
をさらに備える、請求項９に記載の方法。
【請求項１１】
前記ディレクトリエージェントは、前記リソースマネージャに前記ＷＢＥＭサービスの登録の通知を与え、
前記システムは、前記リソースマネージャから、システム能力に関する要求を受信して、前記要求に対する応答を与え、
前記リソースマネージャは、前記要求に対する前記応答に基づいて前記少なくとも１つの構成メッセージを送信する
請求項１に記載の方法。
【請求項１２】
コンピュータに、
システムが対応付けられている識別情報を持っていないブート前環境において、ＢＩＯＳモジュールを実行する手順、
前記ブート前環境において最小ＯＳカーネルを実行して前記ブート前環境においてサービスエージェントを開始させる手順、
前記ブート前環境において、ネットワークを介して要求を送信し、ＴＣＰプロトコルでＳＬＰディレクトリエージェントから広告を受信し、前記広告に応じてＷＢＥＭサービスを前記ＳＬＰディレクトリエージェントに登録する前記サービスエージェントを実行する手順、および
前記システムに対して前記ＷＢＥＭサービスを実施する手順
を実行させるためのプログラム。
【請求項１３】
コンピュータに、
前記ネットワークを介して前記システムに結合されているリソースマネージャから少なくとも１つの構成メッセージを受信して、前記少なくとも１つの構成メッセージに応じて前記ブート前環境において前記システムを構成する手順
をさらに実行させるための請求項１２に記載のプログラム。
【請求項１４】
前記最小ＯＳカーネルは、ＥＦＩブート可能カーネルを含み、
前記ＢＩＯＳ、前記ＥＦＩブート可能カーネル、および前記サービスエージェントは、不揮発性ストレージに格納されている
請求項１３に記載のプログラム。
【請求項１５】
コンピュータに、
前記リソースマネージャに与えられた前記システムの情報に応じて提供される第２のＯＳカーネルを前記リソースマネージャから受信して、第２の不揮発性ストレージに前記第２のＯＳカーネルを格納する手順
をさらに実行させるための請求項１４に記載のプログラム。
【請求項１６】
請求項１４に記載のプログラムを格納する記録媒体と、
前記不揮発性ストレージと
を備える物品。
【請求項１７】
命令を実行するプロセッサと、
命令を有する記録媒体と
を備えるシステムであって、
前記記録媒体の前記命令によって、前記システムは、ブート前ＢＩＯＳを実行して、前記ブート前ＢＩＯＳから、ブート前環境において実行される第１のＯＳカーネルへと、制御を移行して、ネットワークのディレクトリエージェントを特定して、前記ディレクトリエージェントから広告を受信して、前記ディレクトリエージェントにＷＢＥＭサービスを登録して、前記ネットワークのリソースマネージャから少なくとも１つの構成メッセージを受信して、前記少なくとも１つの構成メッセージに応じて前記ブート前環境において前記システムを構成する
システム。
【請求項１８】
前記システムを構成することは、ＴＣＰプロトコルのＷＢＥＭメッセージに対応する前記少なくとも１つの構成メッセージに応じて、前記プロセッサの少なくとも１つの構成レジスタを更新することを含む
請求項１７に記載のシステム。
【請求項１９】
前記記録媒体の前記命令によって、前記システムはさらに、前記システムを構成した後に第２のＯＳをブートして、前記第２のＯＳを用いて前記システムにおいて作業負荷を実行して、
前記第２のＯＳおよび前記作業負荷は、前記ブート前環境において前記リソースマネージャからプロビジョニングされる
請求項１７に記載のシステム。
【請求項２０】
前記第１のＯＳカーネルは、ＥＦＩブート可能カーネルを含み、前記ＥＦＩブート可能カーネルおよび前記ブート前ＢＩＯＳは共に前記システムの不揮発性ストレージに格納されている
請求項１７に記載のシステム。
【外国語明細書】
2010108487.tif 000007
2010108487.tif 000008
2010108487.tif 000009
2010108487.tif 000010
2010108487.tif 000011
2010108487.tif 000012
2010108487.tif 000013
2010108487.tif 000014
2010108487.tif 000015
2010108487.tif 000016
2010108487.tif 000017
2010108487.tif 000018
2010108487.tif 000019
2010108487.tif 000020
2010108487.tif 000021
2010108487.tif 000022
2010108487.tif 000023
2010108487.tif 000024
2010108487.tif 000025