(57)【要約】ベア・メタル・リソースは、信頼できる部分と信頼できない部分とを含む。信頼できる部分は、信頼できるハードウェア、イメージ・レポジトリー、およびクリアランス・マネージャを含む。クリアランス・マネージャは、ベア・メタル・リソースのブートアップの間に実行可能であり、信頼できない部分上でクリアランス・プロセスを実行する。クリアランス・プロセスは、信頼できない部分においてＢＩＯＳを削除し、イメージ・レポジトリーから信頼できるＢＩＯＳを信頼できないハードウェア上にロードし、信頼できない部分を信頼できる状態にする動作を含む。ベア・メタル・リソースは、信頼できる状態にされた後に、クラウド・プロバイダーのテナントにプロビジョニングされることが可能になる。【選択図】図２
2021513711.tif 000002
【特許請求の範囲】
【請求項１】
ベア・メタル・リソースであって、
処理回路、クリアランス・マネージャ、およびイメージ・レポジトリーを含む信頼できる部分と、
基本入力／出力システム（ＢＩＯＳ）を含む信頼できないソフトウェアを含む信頼できない部分と、
を備え、前記クリアランス・マネージャが、前記信頼できない部分上においてクリアランス・プロセスを実行するために、前記ＢＩＯＳの前に、前記ベア・メタル・リソースのブートアップ中に前記処理回路によって実行可能であり、前記クリアランス・プロセスが、前記信頼できない部分内にある前記ＢＩＯＳを削除し、信頼できるＢＩＯＳを前記イメージ・レポジトリーから、前記信頼できないソフトウェアを格納する記憶デバイス上にロードし、前記ベア・メタル・リソースを信頼できる状態にする動作を含む、ベア・メタル・リソース。
【請求項２】
請求項１記載のベア・メタル・リソースにおいて、前記クリアランス・プロセスを実行するために、前記クリアランス・マネージャが、前記信頼できないソフトウェアおよびデーターを前記信頼できない部分の記憶デバイスから一掃し、前記信頼できるＢＩＯＳを含む少なくとも１つの信頼できるイメージを、前記イメージ・レポジトリーから前記信頼できない部分の前記記憶デバイスの内少なくとも１つにロードする、ベア・メタル・リソース。
【請求項３】
請求項２記載のベア・メタル・リソースにおいて、前記少なくとも１つの信頼できるイメージが、デバイス・ドライバーおよびファームウェアの内少なくとも１つを含む、ベア・メタル・リソース。
【請求項４】
請求項２記載のベア・メタル・リソースにおいて、前記クリアランス・プロセスを実行するために、前記クリアランス・マネージャがリアル・タイム・クロックの状態を有効なデフォルト値に設定する、ベア・メタル・リソース。
【請求項５】
請求項１記載のベア・メタル・リソースにおいて、前記ベア・メタル・リソースが、クラウド・プロバイダーのテナントに利用可能なコンピューティング・リソースであり、前記信頼できない部分が、前記ベア・メタル・リソースが信頼できる状態にされた後に、ネットワークを通じて前記テナントによってアクセス可能である、ベア・メタル・リソース。
【請求項６】
請求項５記載のベア・メタル・リソースにおいて、前記ベア・メタル・リソースが、帯域外チャネルを通じて、前記クラウド・プロバイダーの制御プレーンにおいて、信頼できるインフラストラクチャ・デバイスに通信可能に結合され、前記ベア・メタル・リソースが、前記クリアランス・プロセスを呼び出すために、前記信頼できるインフラストラクチャ・デバイスから信号を受信するように構成される、ベア・メタル・リソース。
【請求項７】
請求項６記載のベア・メタル・リソースにおいて、前記信頼できるインフラストラクチャ・デバイスが、前記ベア・メタル・リソースが信頼できる状態にあることを確認した後、前記ベア・メタル・リソースに前記信頼できない部分にロードされた前記信頼できるＢＩＯＳからブートさせるために、前記帯域外チャネルを通じて、前記信頼できるインフラストラクチャ・デバイスから第２信号を受信するように構成される、ベア・メタル・リソース。
【請求項８】
請求項６記載のベア・メタル・リソースにおいて、前記信頼できるインフラストラクチャ・デバイスが、前記クリアランス・プロセスが遅れているか否か判定するために、タイマーを実行する、ベア・メタル・リソース。
【請求項９】
請求項６記載のベア・メタル・リソースにおいて、前記信頼できるインフラストラクチャ・デバイスがラック・コントローラーであり、前記帯域外チャネルが、前記ラック・コントローラーと、前記ベア・メタル・リソースのシステム・ボード上のコネクタとを間の有線接続を含む、ベア・メタル・リソース。
【請求項１０】
請求項１記載のベア・メタル・リソースにおいて、前記信頼できる部分および前記信頼できない部分が同時に動作状態にならない、ベア・メタル・リソース。
【請求項１１】
コンピューティング・リソースのプールにおけるベア・メタル・リソースであって、
クリアランス・マネージャを格納するメモリーと、既知の正しいイメージを格納するイメージ・レポジトリーと、前記クリアランス・マネージャを実行する処理回路とを含む信頼できる部分であって、テナントにはアクセス不可能な、信頼できる部分と、
前記ベア・メタル・リソースが前記テナントにプロビジョニングされたときに前記テナントにアクセス可能になる信頼できない部分であって、ハードウェアと、基本入力／出力システム（ＢＩＯＳ）を含む信頼できないソフトウェアとを含む、信頼できない部分と、
帯域外チャネルを通じて、クラウド・プロバイダーの信頼できるインフラストラクチャ・デバイスに通信可能に結合された通信インターフェースと、
を備え、
前記信頼できるインフラストラクチャ・デバイスから前記帯域外チャネルを通じて信号を受信したことに応答して、前記ベア・メタル・リソースが前記クリアランス・マネージャからブートするように構成され、前記クリアランス・マネージャが、前記信頼できない部分上でクリアランス・プロセスを実行するように構成され、前記クリアランス・プロセスが、前記信頼できない部分において前記ＢＩＯＳを削除し、記憶デバイス上のイメージ・レポジトリーから信頼できるＢＩＯＳを前記信頼できない部分にロードし、前記ベア・メタル・リソースを信頼できる状態にする動作を含む、ベア・メタル・リソース。
【請求項１２】
請求項１１記載のベア・メタル・リソースにおいて、前記ベア・メタル・リソースが、前記ベア・メタル・リソースが信頼できる状態になった後に、前記信頼できない部分にロードされた前記信頼できるＢＩＯＳから前記ベア・メタル・リソースにブートさせるために、前記帯域外チャネルを通じて前記信頼できるインフラストラクチャ・デバイスから第２信号を受信するように構成される、ベア・メタル・リソース。
【請求項１３】
方法であって、
クラウド・プロバイダーの信頼できるインフラストラクチャ・デバイスから、前記クラウド・プロバイダーのテナントにプロビジョニングされるように動作可能なベア・メタル・リソースにおいて信号を受信するステップと、
前記信号に応答して、前記ベア・メタル・リソースの信頼できる部分から、前記ベア・メタル・リソースのブートをトリガーするステップと、
前記信頼できる部分におけるクリアランス・マネージャによって、前記ベア・メタル・リソースの信頼できない部分の記憶デバイスを一掃し、基本入力／出力システム（ＢＩＯＳ）の既知の正しいイメージを前記ベア・メタル・リソースの信頼できる部分のイメージ・レポジトリーから前記信頼できない部分にロードするために、クリアランス・プロセスを実行するステップと、
前記イメージ・レポジトリーから前記信頼できない部分上にロードされたＢＩＯＳから、前記ベア・メタル・リソースをリブートするステップと、
を含む、方法。
【請求項１４】
請求項１３記載の方法において、前記信頼できるインフラストラクチャ・デバイスが、前記ベア・メタル・リソースが前記テナントから解放されていることの指示、または前記ベア・メタル・リソースが非動作状態にあることの指示に応答して、前記信号を前記ベア・メタル・リソースに送信する、方法。
【請求項１５】
請求項１３記載の方法において、前記ベア・メタル・リソースをリブートするステップが、前記信頼できるインフラストラクチャ・デバイスから第２信号を受信したことに応答して実行され、前記信頼できるインフラストラクチャ・デバイスが、前記クリアランス・プロセスを完了するのに成功したことを確認した後、前記第２信号を前記ベア・メタル・リソースに送信する、方法。
【発明の詳細な説明】
【背景技術】
【０００１】
[0001]  クラウド・コンピューティングは、通例、コンピューティング・サービスの配信を伴い、コンピューティング・サービスの配信には、インターネット上におけるサーバー、ストレージ、データーベース、ネットワーキング、ソフトウェア等を必要とする場合もある。これらのコンピューティング・サービスを提供する会社は、クラウド・プロバイダーと呼ばれ、通例、使用に基づいてクラウド・コンピューティング・サービスに対して課金する。
【０００２】
[0002]  多くの場合、クラウド・プロバイダーは、異なるテナントに割り当てることができる再利用可能なコンピューティング・リソースのプール(pool)を実装するために仮想化を使用する。仮想化とは、仮想マシン（ＶＭ）のような、種々の専用リソースを作成するために物理インフラストラクチャを分離する技術であり、仮想マシンは同じサーバー上においてオペレーティング・システムおよびアプリケーションの異なるインスタンスを実行することができる。サーバー仮想化を使用すると、クラウド・プロバイダーはサーバー・リソースの使用を最大化し、必要なサーバー数を減らすことができる。また、ＶＭは別個の分離ユニットとして実行することもでき、つまり、障害およびセキュリティの分離に対応することができる。クラウド・プロバイダーは、ファームウェア・マルウェアが原因で起こる攻撃、ｂｉｏｓレベルのハイパーバイザー攻撃、ＢＩＯＳ（基本入力／出力システム）／ファームウェアの上書き、およびサービス拒否攻撃というような種々の侵入攻撃からハードウェアを保護するために、仮想化技術を頼りにすることもできる。通常、システム・ボード上の不揮発性メモリー・モジュールがこのような攻撃の目標となる。何故なら、不揮発性メモリーを目標にすることにより、システムのパワー・サイクル(system power cycle)にわたって攻撃が永続することが可能になるからである。仮想化は、不揮発性メモリー・モジュールをこのような攻撃から隔離するのを補助することもできる。
【０００３】
[0003]  性能向上のために、クラウド・コンピューティング・テナントは、クラウドにおいて、人工知能または機械学習作業負荷というような作業負荷のために、最新の高性能ハードウェアおよび／またはアクセレレータへのベア・メタル・アクセス(bare-metal access)を増々要求しつつある。ベア・メタル・アクセスは、ＶＭの代わりに、単一テナント物理サーバー(single-tenant physical server)へのアクセスをテナントに付与することを含んでもよい。ベア・メタル・アクセスは、カスタム・ドライバーまたはファームウェアをインストールするというようなことのために、ベア・メタル・サーバー上のハードウェアにテナントがアクセスすることを許可してもよい。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
[0004]  クラウド・プロバイダーにとって、サーバーのベア・メタル・アクセスをテナントに付与することが難しい場合もあり得る。例えば、ハードウェアを攻撃から隔離するための仮想化レイヤーを有することなく、ベア・メタル・サーバーのセキュリティを維持するには課題があると考えられる。また、テナントによって使用され終えた後ハイパーバイザーによって終了させることができるＶＭとは異なり、テナントによって使用され終えた後にベア・メタル・サーバーを一掃する(wipe)ための効率的な自動メカニズムがない。
【０００５】
[0005]  以下の説明において、以下の図を参照して実施形態および例について詳しく説明する。添付する図において示される例によって、実施形態について例示する。図では、同様の参照番号は同様の要素を示す。
【図面の簡単な説明】
【０００６】
【図１】図１は、実施形態による、ベア・メタル・リソースと信頼できるインフラストラクチャ・デバイスとを含むシステムを示す。
【図２】図２は、実施形態にしたがってクリアランス・プロセスを開始および実行する方法を示す。
【図３】図３は、実施形態にしたがって、本明細書において説明する原理を採用することができるクラウド環境を示す。
【図４】図４は、実施形態にしたがって、本明細書において説明する原理を採用することができるデーター・センターを示す。
【図５】図５は、実施形態にしたがって、ベア・メタル・リソースをテナントにプロビジョニングするクラウド環境を示す。
【図６】図６は、実施形態にしたがって、本明細書において説明する原理を採用することができるコンピューティング・システムを示す。
【発明を実施するための形態】
【０００７】
[0012]  本開示の原理について、主にその実施形態および例を参照することによって、 簡略化および例示を目的として説明する。以下の説明では、実施形態および例の理解が得られるようにするために、多数の具体的な詳細を明記する。しかしながら、これらの実施形態および例は、これらの具体的な詳細に限定しなくても、実施できることは当業者には明らかであろう。場合によっては、実施形態および例の説明を不必要に曖昧にしないように、 周知の方法および／または構造を詳細には説明しないこともある。更に、実施形態および例は、種々の組み合わせで一緒に使用されてもよい。
【０００８】
[0013]  本開示の実施形態によれば、再割り当て可能なベア・メタル・コンピューター・リソースをプロビジョニングすることを可能にするハードウェアおよび方法について説明する。プロビジョニングは、クラウド・コンピューティング・テナントのために、クラウド・プロバイダーによってクラウド・コンピューティング環境において実行することができる。図１は、実施形態によるシステム１００を示す。システム１００は、ベア・メタル・リソース１１０と、信頼できる(trusted)インフラストラクチャ・デバイス１５０とを含む。ベア・メタル・リソース１１０をベア・メタル・サーバーまたはベア・メタル・マシンと呼んでもよい。ベア・メタル・リソース１１０は、仮想サーバーではなく、物理サーバーを含む。一例では、ベア・メタル・リソース１１０はクラウド・コンピューティング環境において１つのテナント（例えば、１つのテナントのみに専用）に割り当てられ、このテナントは必要に応じてベア・メタル・リソース１１０を構成することができる。
【０００９】
[0014]  ベア・メタル・リソース１１０は、ハードウェア・デバイス１１１を含むマザーボードを有する。ハードウェア・デバイス１１１は、ＣＰＵ１１２、記憶デバイス１１３、および図示しないその他のハードウェアを含んでもよい。例えば、ハードウェア・デバイス１１１は、フィールド・プログラマブル・ゲート・アレイ（ＦＰＧＡ）、グラフィクス処理ユニット（ＧＰＵ）、ホスト・バス・アダプター（ＨＢＡ）、不揮発性メモリー・エクスプレス（ＮＶＭｅ： non-volatile memory express）フラッシュ・メモリー、ソリッド・ステート・デバイス（ＳＳＤ）、ハード・ディスク・ドライブ（ＨＤＤ）、中央処理ユニット（ＣＰＵ）、ダイナミック・ランダム・アクセス・メモリー（ＤＲＡＭ）等の内１つ以上を含んでもよい。一例では、ベア・メタル・リソース１１０は、ｘ８６プラットフォームと、フィールド・プログラマブル・ゲート・アレイ（ＦＰＧＡ）、ネットワーク・インターフェース・コントローラー（ＮＩＣ）、イーサネットＮＩＣ、クロックおよび電力回路というような、周辺コンポーネント相互接続エクスプレス（ＰＣＩｅ： peripheral component interconnect express）に取り付けられたデバイス（１つまたは複数）とを備えるサーバー・マザーボード（例えば、単一または二重ソケットＣＰＵボードを有する）を含んでもよい。ベア・メタル・リソース１１０は、ラック内に配置することができるブレード・サーバー(blade server)であってもよい。ラックはデーター・センター内に設けられることもある。ベア・メタル・リソース１１０がデーター・センターの要件を遵守するのはもっともである。一例をあげると、ベア・メタル・リソースは、シャーシの高さが４Ｕであり４〜６個の垂直挿入ブレードを収容するブレード・シャーシ設計である。ベア・メタル・リソース１１０は、サービスとしてのインフラストラクチャ（ＩａａＳ）の一部、またはクラウド・プロバイダーによってクラウド・コンピューティング・テナントに利用可能にされる他の種類のサービスというな、クラウド・プロバイダーのベア・メタル提供(offering)の一部として、提供されてもよい。
【００１０】
[0015]  ベア・メタル・リソース１１０は、信頼できる部分(trusted portion)１２０と信頼できない部分(untrusted portion)１３０を含んでもよい。信頼できる部分１２０とは、例えば、テナントによってアクセスできず、テナントによって構成することができない、ベア・メタル・リソース１１０のハードウェアおよびソフトウェアを指す。信頼できない部分１３０とは、例えば、テナントによってアクセスでき、ベア・メタル・リソース１１０がテナントにプロビジョニングされたとき等に、テナントによって構成可能にしてもよいハードウェアおよびソフトウェアを指す。
【００１１】
[0016]  信頼できる部分１２０は、ベア・メタル・リソース１１０を信頼できる状態にするためにベア・メタル・リソース１１０上においてクリアランス・プロセスを実行するハードウェアおよびソフトウェアを含むことができる。信頼できる状態とは、正しく動作することが知られているベア・メタル・リソース１１０の構成としてもよい。例えば、信頼できる状態におけるベア・メタル・リソース１１０の構成は、それが障害なく動作することを判定するために、実装前に検査される。クリアランス・プロセスは、セキュリティ侵害の場合、またはベア・メタル・リソース１１０を異なるテナントに再割り当てするとき、またはテナントがロードしたソフトウェアに欠陥があった場合に起こるおそれがある障害をベア・メタル・リソース１１０が発生したとき等に、ベア・メタル・リソースを信頼できる状態に戻すために使用することができる。
【００１２】
[0017]  信頼できる部分１２０は、ハードウェア・デバイスを含む。例えば、信頼できる部分１２０は処理回路１２５とメモリー１２６とを含む。処理回路１２５は、クリアランス・プロセスを実行するクリアランス・マネージャ１２２のようなファームウェアを実行するマイクロコントローラー、ＣＰＵ、ＦＰＧＡ、特定用途集積回路（ＡＳＩＣ）等を含んでもよい。クリアランス・マネージャ１２２は、以下で説明するクリアランス・プロセスの動作を実行する初期化ルーチン１２４を含むことができる。一例では、クリアランス・マネージャ１２２は、特殊ハード・ブートに応答して、クリアランス・プロセスを実行するために、初期化ルーチン１２４を含む電源投入時自己診断（ＰＯＳＴ：power-on self-test）を実行してもよい。
【００１３】
[0018]  信頼できる部分１２０は、信頼できるイメージ１２３を格納するイメージ・レポジトリー１２１を含む。イメージ・レポジトリー１２１は、信頼できる部分１２０上の記憶デバイスに格納することができる。この記憶デバイスは、不揮発性メモリーを含んでもよい。信頼できるイメージ１２３は、クリアランス・プロセスの間、信頼できない部分１３０にロードすることができる。
【００１４】
[0019]  イメージ・レポジトリー１２１における信頼できるイメージ１２３は、ドライバー、ファームウェア、ＢＩＯＳ、ＯＳの信頼できるイメージというような、ファームウェアまたは他の種類のソフトウェアの、既知の正しいイメージ(known good image)、ならびにベースボード管理コントローラー（ＢＭＣ：baseboard management controller）、ＮＩＣ、基本入力／出力（Ｉ／Ｏ）デバイス等を含む主要なブート必須コンポーネントのイメージを含む。既知の正しいイメージとは、ロードされるプラットフォーム上で欠陥なく動作することが分かっているイメージとしてもよい。イメージ・レポジトリー１２１は、複数のバージョンのイメージを格納することができる。例えば、信頼できるイメージ・レポジトリー１２１は、テナント直面完全リードおよびライト・アクセス作業イメージ(tenant-facing, full read-and-write-access working image)、前回正常起動時（ＬＫＧ：Last-known-Good）イメージ、および主要ブート必須コンポーネントのイメージを格納する。これらのイメージは、例えば、既知の正しいイメージであり、以下で論ずるように、これらのイメージの内１つ以上が、クリアランス・プロセス中に、信頼できない部分１３０にロードされる。
【００１５】
[0020]  信頼できる部分１２０および信頼できない部分１３０は、ベア・メタル・リソース１１０の同じマザーボード上にあってもよい。例えば、信頼できる部分１２０がマザーボード上のチップまたはチップセットであってもよく、または信頼できる部分１２０が、マザーボード上のスロットに差し込み可能なカードであってもよい。信頼できる部分１２０は、ベア・メタル・リソース１１０を借りているテナントによってアクセス可能ではなく、クリアランス・プロセスが実行され、ベア・メタル・リソース１１０がテナントにプロビジョニングされた後というような、信頼できない部分１３０がテナントによって使用されているときは、信頼できない部分１３０には見ることができない。
【００１６】
[0021]  信頼できない部分１３０は、信頼できないソフトウェア１４０およびハードウェア・デバイス１１１を含むことができる。信頼できないソフトウェア１４０は、ファームウェア１３１、ＢＩＯＳ１３２、ドライバー１３３、オペレーティング・システム（ＯＳ）１３４、アプリケーション１３５等を含むことができ、テナントはこれらにアクセスすること、これらを削除、追加、または変更することができる。ファームウェア１３１およびドライバー１３３は、ベア・メタル・リソース１１０上のデバイスによって使用されるファームウェアおよびドライバーを含むこともできる。例えば、ファームウェア１３１は、ベア・メタル・リソース１１０上のベースボード管理コントローラーのファームウェアを含んでもよい。ドライバー１３３は、ベア・メタル・リソース１１０上のビデオ・カードまたはネットワーク・インターフェース・コントローラー（ＮＩＣ）のドライバーを含んでもよい。例えば、ベア・メタル・リソース１１０がテナントにプロビジョニングされた後、テナントはベア・メタル・リソース１１０上にカスタム・アプリケーションをインストールし実行することができる。また、テナントは、それらの計算要求に最良に応ずるベア・メタル・リソースを構成するように、ベア・メタル・リソース１１０上に新たなＯＳ、新たなＢＩＯＳ、または新たなドライバーをインストールすることもできる。信頼できないソフトウェア１４０は、ハードウェア・デバイス１１１の記憶デバイス１１３に格納することができる。また、信頼できないソフトウェア１４０は、ハードウェア・デバイス１１１のＣＰＵ１１２または他の処理回路によって実行することもできる。通常、ハードウェア・デバイス１１１および信頼できないソフトウェア１４０は、クリアランス・プロセスが実行された後、そしてベア・メタル・リソース１１０がテナントにプロビジョニングされた後に、テナントによってアクセスおよび構成することができる。
【００１７】
[0022]  ベア・メタル・リソース１１０は、１つ以上の通信インターフェースを含んでもよい。例えば、ハードウェア・デバイス１１１は、帯域内ネットワーク(in-band network)上で通信するためにＮＩＣを含んでもよい。また、ベア・メタル・リソース１１０は、帯域外チャネル１６０を通じてクラウド・プロバイダーの制御プレーン１５１と通信するために通信インターフェース１２８を含んでもよい。通信インターフェース１２８は、帯域内ネットワーク上で通信するためのＮＩＣとは別個のＮＩＣにすることができ、または多重化された同じＮＩＣでもよい。他の例では、通信インターフェース１２８はシステム・ボード・インターフェースを含んでもよい。システム・ボード・インターフェースは、デュアル・イン・ライン・プラグ（ＤＩＰ）コネクタおよび／または汎用入力／出力（ＧＰＩＯ）を含むことができ、ワイヤによって、制御プレーン１５１内の信頼できるインフラストラクチャ・デバイス１５０に、帯域外チャネル１６０を通じて接続する。
【００１８】
[0023]  信頼できるインフラストラクチャ・デバイス１５０は、クラウド・コンピューティング環境の制御プレーン１５１の一部であってもよく、クリアランス・プロセスを実行し他の機能を行うために、命令または信号をベア・メタル・リソース１１０に送るように動作可能である。制御プレーン１５１は、テナント・データーを搬送するためではなく、管理トラフィックのため、そしてリソースをテナントにプロビジョニングするために使用することができる。信頼できるインフラストラクチャ・デバイス１５０は、クリアランス・プロセスを呼び出し、ベア・メタル・リソース１１０のためにプロビジョニングおよび障害からの回復を開始することができる。また、信頼できるインフラストラクチャ・デバイス１５０は、ベア・メタル・リソース１１０にアクセスして、リソース管理、継続的な健全性監視、課金等のような、他の管理機能を実行することもできる。一例では、信頼できるインフラストラクチャ・デバイス１５０は、ラック・コントローラーの一部であり、ラック・コントローラーはラック内にあるベア・メタル・リソースにアクセスして、クリアランス・プロセスおよび他の管理機能を実行することができる。他の例では、信頼できるインフラストラクチャ・デバイス１５０は、制御プレーン１５１におけるネットワーク管理デバイスであってもよく、このネットワーク管理デバイスは、帯域外チャネル１６０を含む帯域外ネットワーク（有線および／またはワイヤレス）を通じて、クラウドにおけるベア・メタル・リソースと通信して、クリアランス・プロセスを実行し、ベア・メタル・リソースを個々のテナントにプロビジョニングする。
【００１９】
[0024]  先に示したように、信頼できるインフラストラクチャ・デバイス１５０は、例えば、帯域外チャネル１６０を通じて、ベア・メタル・リソース１１０に通信可能に結合される。帯域外チャネル１６０は、テナント・データーを格納および搬送するクラウドのネットワークに関して帯域外であり、帯域外チャネル１６０はテナントにアクセスすることはできない。帯域外チャネル１６０は、イーサネットのような通信媒体を通じたセキュア接続、または汎用入力／出力（ＧＰＩＯ）のようなセキュア／プライベート相互接続を通じたセキュア接続、または他の通信媒体を通じたセキュア接続であってもよい。
【００２０】
[0025]  一例では、信頼できるインフラストラクチャ・デバイス１５０は、ＧＰＩＯを越えて(across)および／またはデュアル・イン・ライン・パッケージ（ＤＩＰ）スイッチを越えて、信頼できる部分１２０に接続される。ＤＩＰスイッチは、必要であれば、特定のＧＰＩＯをイネーブルまたはディスエーブルすることができる。クリアランス・プロセスを呼び出すために、信頼できるインフラストラクチャ・デバイス１５０は、ベア・メタル・リソース１１０が、信頼できない部分１３０の代わりに、信頼できる部分１２０からブートするように、該当するＧＰＩＯピンを制御することができる。次いで、クリアランス・プロセスが完了した後に、信頼できるインフラストラクチャ・デバイス１５０は、ベア・メタル・リソース１１０が信頼できる部分１３０からブートし、ベア・メタル・リソース１１０がテナントの使用のための準備ができるように、該当するＧＰＩＯピンを制御することができる。
【００２１】
[0026]  一例では、クラウド・プロバイダーのテナントは、このクラウド・プロバイダーのベア・メタルＩａａＳ提供にサブスクライブし、ベア・メタル・リソースを借りることができる。クラウド・プロバイダーは、ベア・メタル・リソース１１０へのアクセスをＩａａＳの一部として付与することができる。ベア・メタル・リソース１１０へのアクセスをテナントに付与する前に、ベア・メタル・リソース１１０上でクリアランス・プロセスを実行する。クリアランス・プロセスは、信頼できない部分１３０においてハードウェア・デバイス１１１の永続的状態を一掃することができる。これは、信頼できない部分１３０上にテナント（または以前のテナント）が残したあらゆるデーターまたはマシン読み取り可能命令を削除することを含んでもよく、ハードウェア・デバイス１１１を既知の正しい永続的状態（即ち、信頼できる状態）に復元させることを含んでもよい。これは、テナント・データー、ファームウェア、アプリケーション等を記憶デバイス１１３から削除するというように、全ての記憶デバイスを一掃することを含んでもよい。更に、これは、ハードウェア・デバイス１１１（例えば、ネットワーク・カード、ＮＶＭｅドライブ、または同様にファームウェアを内部に有しそうな、マザーボードに取り付けられた任意の他のデバイス）上においてファームウェアを信頼できる状態に復元させることを含んでもよく、ベア・メタル・リソース１１０のマザーボード上における永続的状態を信頼できる状態に復元させることを含んでもよく（例えば、マザーボードにおける相補金属酸化物半導体（ＣＭＯＳ）リアル・タイム・クロックが、バッテリ・バックアップ・ランダム・アクセス・メモリー（ＲＡＭ）のような、利用可能な何らかの永続的メモリーを有することができる。この永続的メモリーには、ユーザーがデーターを書き込むこともでき、クリアされないと残存するおそれがある状態にあると見なすことができ、それらがそのマシンに以前にあったか否か確認するというようなことを、攻撃者が行うことを許してしまう、ＢＩＯＳが変更された場合、ＢＩＯＳを信頼できる状態に復元させることを含んでもよい。クリアランス・プロセスは、既知の正しいイメージを信頼できる部分１２０のイメージ・レポジトリー１２１から信頼できない部分１３０にロードすることを含んでもよい。通常、信頼できる状態に復元させるためには、システム１００は、テナントによってアクセス可能であるかもしれないハードウェア・デバイス１１１における永続的状態をチェックし、変更が検出された場合、その状態を、既知の正しい値のような、有効な状態に設定する。また、データーおよびソフトウェアが一掃され、既知の正しいイメージが信頼できない部分１３０上にロードされる。クリアランス・プロセスが完了した後、ベア・メタル・リソース１１０はテナントに割り当てられ、帯域内ネットワークのセキュア・ネットワーク・チャネルを通じてというようにして、ベア・メタル・リソース１１０へのアクセスがテナントに付与される。次いで、テナントは、新たなＢＩＯＳ、ファームウェア、ＯＳ、ドライバー、アプリケーション等を信頼できない部分１３０のハードウェア・デバイス１１１上にロードする���とによってというようにして、必要に応じて、信頼できない部分１３０を構成することができる。テナントは、いずれの時点においても、ベア・メタル・リソース１１０の信頼できる部分１２０にアクセスすることはできない。
【００２２】
[0027]  クリアランス・プロセスは、リース後ハードウェア再利用(hardware-reclaim-after-lease)およびテナント復元支援のシナリオ双方を含む種々の状況において実行することができる。例えば、ベア・メタル・リソース１１０が、バグのためまたは悪意のあるユーザーのために、ブートできない場合、クリアランス・プロセスをトリガーすることができる。ベア・メタル・リソース１１０が、テナント使用のために利用可能になっているベア・メタル・リソースのプールに戻されつつある場合、クリアランス・プロセスをトリガーすることができる。例えば、テナントが、次のテナントに引き継ぐ前に、ベア・メタル・リソース１１０を明け渡すとき、クリアランス・プロセスを開始することもできる。
【００２３】
[0028]  図２は、実施形態にしたがって、クリアランス・プロセスを開始し実行する方法２００を示す。２０１において、ベア・メタル・リソース１１０はクラウド・プロバイダーの制御プレーン１５１から信号を受信し、２０２において、受信した信号に応答して、ベア・メタル・リソース１１０のリブートを、信頼できる部分１２０からトリガーする。一例では、ベア・メタル・リソース１１０のリブートは、制御プレーン１５１が帯域外ネットワークを通じて、信頼できる部分１２０からリブートを実行する信号を送ることによって開始される。この信号は、帯域外チャネル１６０を通じてベア・メタル・リソース１１０上において生成され、信頼できる部分１２０からリブートを実行するための割り込みであってもよい。例えば、信頼できるインフラストラクチャ・デバイス１５０が、信頼できるインフラストラクチャ・デバイス１５０に接続されているベア・メタル・リソース１１０の該当するＧＰＩＯピンに信号を送るのでもよい。信号は、リブートを開始するための特定のシーケンスで送ってもよい。ＧＰＩＯピンは、ベア・メタル・リソース１１０のマザーボード上にあってもよい。一構成では、この信号処理(signaling)は、特殊ハード・ブートのための割り込みを送り、信頼できない部分１３０内にあるＣＰＵに、信頼できる部分１２０からリブートを実行させることを含んでもよい。他の構成では、信頼できる部分１２０からリブートを行わせるサーバー・パワー・サイクルを開始してもよい。
【００２４】
[0029]  信頼できる部分１２０からリブートを行わせるために、特殊なモードでベア・メタル・リソースをリブートすることもできる。例えば、信頼できる部分１２０におけるＣＰＵがクリアランス・マネージャ１２２の位置を格納し、特殊モード・リブートのためにメモリー１２６からクリアランス・マネージャ１２２をコールする。クリアランス・マネージャ１２２は、信頼できるインフラストラクチャ・デバイス１５０が行わせたハード・リブートに応答して、ＰＯＳＴを実行することができる。ＰＯＳＴは、クリアランス・プロセスの動作を実行するために初期化ルーチン１２４の実行を含むことができ、これについては以下で更に論じる。一例では、クリアランス・マネージャ１２２は、メモリー１２６に格納された低レベルのファームウェアを含んでもよい。メモリー１２６は不揮発性メモリーであってもよい。
【００２５】
[0030]  また、２０２において、信頼できる部分１２０からのリブートはクリアランス・プロセスを開始する。例えば、リブートは、信頼できない部分１３０の代わりに、信頼できる部分１２０から開始される。クリアランス・マネージャ１２２は、クリアランス動作の１つ以上を実行するために、初期化ルーチン１２４を実行する。
【００２６】
[0031]  これより、クリアランス・プロセス中に実行されるクリアランス動作の例について説明する。例えば、２０３において、信頼できない部分１３０における信頼できないデバイス１１１ｂを永続状態にする。他の例として、クリアランス・プロセスは、信頼できる部分１２０のメモリー１２６においてクリアランス・マネージャ１２２によって(via)実行される増分ブート・プロセス(incremental boot process)を実行することもできる。増分ブート・プロセスは、信頼できない部分１３０における信頼できないデバイス１１１ｂを永続状態にする。例えば、増分ブート・プロセスは、不揮発性メモリーに格納されている信頼できないデバイス１１１ｂの不揮発性状態をクリアする。これは、信頼できないデバイス１１１ｂについて格納されている状態値を有効なデフォルト値に設定する動作を含んでもよい。例えば、リアル・タイム・クロック（ＲＴＣ）の状態を有効なデフォルト状態値にする。また、信頼できない部分１３０内にある揮発性または不揮発性記憶デバイスに格納されている全てのテナント・データーを一掃し、他のあらゆるデバイスにおける全ての永続データーを既知の正しい状態に設定する。更に、信頼できない部分１３０における信頼できないソフトウェアも一掃する。例えば、信頼できない部分１３０に格納されているＢＩＯＳ１３２、ファームウェア１３１、ドライバー１３３、ＯＳ１３４、アプリケーション１３５等を一掃する。これらの動作は、ＢＩＯＳによって実行される電源投入時自己診断の一部であってもよい。
【００２７】
[0032]  ２０４において、クリアランス・マネージャ１２２は、信頼できない部分１３０上において作業イメージ(working images)として動作させるために、既知の正しいイメージをイメージ・レポジトリー１２１から信頼できない部分１３０にロードする。既知の正しいイメージは、イメージ・レポジトリー１２１から信頼できない部分１３０にロードされてもよく、ファームウェア１３１、ＢＩＯＳ１３２、ドライバー１３３、およびＯＳ１３４のイメージを含む。信頼できる部分１２０は、ファームウェアまたはソフトウェアの既知の正しいイメージを含む信頼できるイメージ１２３を格納する、信頼できるイメージ・レポジトリー１２１を含んでもよい。既知の正しいイメージは、ロードされるプラットフォーム上において欠陥なく動作する(work)ことが知られているイメージとしてもよい。例えば、信頼できるイメージ・レポジトリー１２１は、顧客直面、完全リードおよびライト・アクセス作業イメージ(customer-facing, full read-and-write-access working image)、前回正常起動時（ＬＫＧ：Last-known-Good）イメージ、および主要ブート必須コンポーネントのゴールデン・イメージ(golden image)を格納する。主要ブート必須コンポーネントには、ＢＩＯＳ、ベースボード管理コントローラー（ＢＭＣ）、ＮＩＣ、および顧客が書き込みアクセスを行うことができない基本入力／出力（Ｉ／Ｏ）デバイスが含まれる。これらのイメージは、例えば、既知の正しいイメージであり、以下で論ずるように、これらのイメージの内１つ以上が、クリアランス・プロセス中に、信頼できない部分１３０にロードされる。
【００２８】
[0033]  ２０５において、信頼できるインフラストラクチャ・デバイス１５０は、クリアランス・プロセスが完了することに成功したか否か、そしてベア・メタル・リソース１１０が動作状態にあるか否か確認する(verify)。これは、ＰＯＳＴの間にメモリー検査を実行し、ハードウェア・デバイス１１１の他のデバイスに対して他の検査を実行することを含んでもよい。確認検査のいずれかが不合格であった場合、エラー・コードを生成することができ、メモリー１２６の所定の位置にエラー・コードを格納することができる。確認できなかった場合、２０６において１つ以上の修復アクションを実行することができる。例えば、システム・アドミニストレーターに通知してもよく、および／またはクリアランス・マネージャ１２２が再度クリアランス・プロセスを実行してもよいが、フェイル−セーフ・イメージをイメージ・レポジトリー１２１からハードウェア・デバイス１１１にロードしてもよい。フェイル−セーフ・イメージは、基本ブート・イメージを含むことができ、フェイル−セーフ・イメージがロードされた後、信頼できるインフラストラクチャ・デバイス１５０は、ベア・メタル・リソース１１０が動作状態にあるか否か確認する。ベア・メタル・リソース１１０が未だ動作状態にない場合、アドミニストレーターに通知すればよい。
【００２９】
[0034]  クリアランス・プロセスの完了を確認する更に他の例では、信頼できるインフラストラクチャ・デバイス１５０が、信頼できる部分１２０からのリブート中にブート・シーケンスにおける前進(forward progress)（またはそれがないこと）を検出する。ブート・シーケンスの前進の判定は、ブート・シーケンスに対する所定の動作シーケンスを格納し、どの動作が完了したか判定することによって実行することができる。一例では、クリアランス・マネージャ１２２は動作の実行を指示する値を、メモリー１２６における所定のレジスタに書き込むことができる。また、信頼できるインフラストラクチャ・デバイス１５０は、プロセスが遅れているか否か判定するために、シーケンスが開始してからのクリアランス・プロセスの経過時間を測定することもできる。経過時間は、１つのタイマーまたはクリアランス・プロセスの異なる動作の実行を測定する複数のタイマーによって測定されてもよい。信頼できるインフラストラクチャ・デバイス１５０は、ベア・メタル・リソース１０がそのクリアランス・プロセスにおいて前進していないことを検出した場合、警告を送ることができる。また、信頼できるインフラストラクチャ・デバイス１５０および／またはクリアランス・マネージャ１２２は、クラッシュする前にクリアランス・プロセスがどこまで完了したか判定することができ、クリアランスがどこまで完了したかに基づいて動作を呼び出すことができる。例えば、クリアランス・プロセスにおいて、クリアランス・プロセスが失敗する前に完了するのに成功したステップは、クリアランス・プロセスを再開するときには飛ばすことができる。
【００３０】
[0035]  ２０７において、信頼できるインフラストラクチャ・デバイス１５０が、クリアランス・プロセスが完了し、ベア・メタル・リソース１１０が動作状態にあることを確認した後、信頼できるインフラストラクチャ・デバイス１５０は信頼できない部分１３０からリブートを呼び出す。例えば、信頼できるインフラストラクチャ・デバイス１５０は、帯域外チャネル１６０を通じて、信頼できない部分１３０からリブートを行わせる信号を送る。一例では、２０７において送られる信号は、信頼できる部分１２０からリブートを行わせるために２０１において送られた割り込みとは異なる割り込みであってもよい。この信号を受け取ったことに応答して、ベア・メタル・リソース１１０は信頼できない部分１３０におけるＢＩＯＳ１３２（この時点ではイメージ・レポジトリー１２１からロードされた信頼できるＢＩＯＳとなっている）からブートする。例えば、信頼できるインフラストラクチャ・デバイス１５０は、信頼できない部分１３０におけるＣＰＵにＢＩＯＳ１３２からブートさせるための割り込みを生成するために、特定のＧＰＩＯピンを順次設定することができる。このＢＩＯＳ１３２は、イメージ・レポジトリー１２１から信頼できない部分１３０にコピーされたものである。
【００３１】
[0036]  クリアランス・プロセスは、人間の入力を用いずに、自動的に開始および実行することもできる。例えば、ベア・メタル・リソース１１０を既知の正しい状態にするために、データー・センターの技術者が実際に立ち会わなくてもよいように、手作業の動作を呼び出さない。しかしながら、手作業による保守のために、ベア・メタル・リソース１１０のボード上において手作業で切り替え可能な(flippable)ジャンパー・ピンを使用することによってというようにして、追加の手作業による復元トリガー・メカニズムを設けてもよい。
【００３２】
[0037]  クリアランス・プロセスは、マイクロコントローラー、ＦＰＧＡ、または複合プログラマブル・ロジック・デバイス（ＣＰＬＤ）というような、処理回路１２５によって実行されてもよい。複合プログラマブル・ロジック・デバイス（ＣＰＬＤ）は、クリアランス・マネージャ１２２を実行し、基本プラットフォーム電力投入(basic platform power-up)を担当するＰＯＳＴローダを含む。一例では、信頼できる部分１２０が、信頼できない部分１３０上におけるチップとは別個のチップまたはチップセット（例えば、ＦＰＧＡ、メモリーを含む）を含んでもよい。信頼できる部分１２０は、低レベルのファームウェアおよびハードウェアを含んでもよい。
【００３３】
[0038]  信頼できない部分１２０および信頼できる部分１３０は、同時に動作状態になくてもよい。例えば、信頼できる部分１２０はクリアランス・プロセスの間動作状態にあり、信頼できない部分１３０は、クリアランス・プロセスの間、動作状態になくテナントによってアクセスすることができない。信頼できる部分１２０は、クリアランス・プロセスが完了した後に、信頼できない部分１３０が動作状態になりテナントによってアクセス可能にしてもよくなったときに、非動作状態になる。信頼できる部分１２０は、信頼できない部分１３０上で実行するＯＳ１３４には見えなくてもよい。例えば、信頼できる部分１２０におけるメモリー１２６は、何らかの形態のリード・オンリー・メモリーであってもよいが、信頼できない部分１３０におけるＢＩＯＳ１３２によって実行されるブート・アップ・プロセスの間は、マッピングされなくてもよく、信頼できない部分１３０が動作状態にあるとき、信頼できる部分１２０は信頼できない部分１３０には見ることができない。
【００３４】
[0039]  先に論じたように、クリアランス・プロセスは、クラウド・プロバイダーによって管理されるクラウド環境において実行することもできる。クラウド環境は、クラウド・コンピューティング環境とも呼ばれ、以下で更に論ずる。しかしながら、クリアランス・プロセスは、ベア・メタル・リソースを一掃する必要がある他のシナリオ、または動作状態にする必要がある他のシナリオにおいてにも実行することができる。
【００３５】
[0040]  図３は、クラウド環境を含むことができる環境３００を示し、この環境において、本明細書において説明する原理を採用することができる。環境３００は、インターフェース３０３を使用してシステム３１０と相互作用する複数のクライアント３０１を含む。環境３００は、３つのクライアント３０１Ａ、３０１Ｂ、および３０１Ｃを有するように図示されているが、本明細書において説明する原理は、インターフェース３０３を通じてシステム３１０と相互作用するクライアントがこの数であることに限定されるのではない。システム３１０は、サービスをクライアント３０１にオンデマンドで提供することができ、したがって、システム３１０からサービスを受けるクライアント３０１の数は、ときの経過と共に変化するのはもっともである。
【００３６】
[0041]  各クライアント３０１は、コンピューター、アプリケーション、および／またはインターフェース３０２を通じてシステム３１０とインターフェースする他のソフトウェア・モジュールを含むことができる。インターフェース３０２は、アプリケーション・プログラム・インターフェースを使用することができる任意のコンピューティング・システムまたはソフトウェア・エンティティがシステム３１０と通信することができるように定められたアプリケーション・プログラム・インターフェースであってもよい。
【００３７】
[0042]  システム３１０は、分散型システムであってもよく、一例では、クラウド・コンピューティング環境である。クラウド・コンピューティング環境は、分散型でもよいが、必須ではなく、国際的に分散されてもよく、および／または複数の組織に跨がって所有されるコンポーネントを有してもよい。
【００３８】
[0043]  この説明およびそれに続く請求項では、「クラウド・コンピューティング」とは、構成変更可能なコンピューティング・リソース（例えば、ネットワーク、サーバー、ストレージ、アプリケーション、およびサービス）の共有プールに対してオンデマンドのネットワーク・アクセスを可能にするモデルとして定められる。「クラウド・コンピューティング」の定義は、このようなモデルを適正にデプロイしたときに得ることができる他の多数の利点のいずれにも限定されない。
【００３９】
[0044]  実例をあげると、クラウド・コンピューティングは、構成変更可能なコンピューティング・リソースの共有プールへの遍在的で便利なオンデマンド・アクセスを提供するように、現在市場において採用されている。更に、構成変更可能なコンピューティング・リソースの共有プールは、仮想化によって素早くプロビジョニングし、少ない管理の手間またはサービス・プロバイダーの相互作用によって解放し、次いで適宜規模調整することができる。また、構成変更可能なコンピューティング・リソースの共有プールは、図１に示したベア・メタル・リソース１１０のような、ベア・メタル・リソースを含むこともできる。
【００４０】
[0045]  クラウド・コンピューティング・モデルは、オンデマンド・セルフサービス、ブロード・ネットワーク・アクセス、リソース・プーリング(resource pooling)、速やかな拡張性、度数制(measured service)等のような、種々の特性によって構成することができる。また、クラウド・コンピューティング・モデルは、例えば、サービスとしてのソフトウェア（「ＳａａＳ」）、サービスとしてのプラットフォーム（「Ｐａａｓ」）、およびサービスとしてのインフラストラクチャ（「ＩａａＳ」）のような、種々のサービス・モデルの形態で設けることもできる。また、クラウド・コンピューティング・モデルは、プライベート・クラウド、コミュニティ・クラウド、パブリック・クラウド、ハイブリッド・クラウド等のような、異なるデプロイ・モデルを使用してデプロイすることもできる。この説明および特許請求の範囲において、「クラウド・コンピューティング環境」とは、クラウド・コンピューティングを採用した環境のことである。
【００４１】
[0046]  システム３１０は、複数のデーター・センター３１１を含むことができる。システム３１０は任意の数のデーター・センター３１１を含んでもよいが、図３には３つのデーター・センター３１１Ａ，３１１Ｂ、および３１１Ｃが示されている。１つだけのデーター・センターであってもよいが、上限はない。更に、データー・センターの数は固定であってもよく、あるいは新たなデーター・センターがシステム３１０に追加されるに連れて、またはデーター・センターがシステム３１０から削除される(dropped)に連れて、ときの経過と共に動的に変化してもよい。
【００４２】
[0047]  データー・センター３１１の各々は、処理、メモリー、ストレージ、帯域幅等のような対応するコンピューティング・リソースを提供する複数のホストを含む。また、データー・センター３１１は、ネットワーク交換機、負荷バランサー、ストレージ・アレイ等のような物理的インフラストラクチャを含むこともできる。
【００４３】
[0048]  図３に示すように、データー・センター３１１Ａはホスト３１４Ａ、３１４Ｂ、および３１４Ｃを含み、データー・センター３１１Ｂはホスト３１４Ｅ、３１４Ｆ、および３１４Ｇを含み、データー・センター３１１Ｃはホスト３１４Ｉ、３１４Ｊ、および３１４Ｋを含む。本明細書において説明する原理は、ホスト３１４の正確な数には限定されない。大型データー・センター３１１は数百または数千のホスト３１４を含み、一方それよりも小さいデーター・センターは遙かに少ない数のホスト３１４を有する。データー・センター内に含まれるホスト３１４の数は、固定でもよく、あるいは新たなホストがデーター・センター３１１に追加されるにつれて、またはホストがデーター・センター３１１から削除される(remove)に連れて、ときの経過と共に動的に変化してもよい。
【００４４】
[0049]  一例では、ホストは、１つ以上の、そして潜在的に多くの仮想マシンを実行することができる。動作の間、仮想マシンは、少なくともオペレーティング・システムと、おそらく１つ以上の他のアプリケーションも更に含む、完全に機能する(fully operational)コンピューティング・システムをエミュレートする。各仮想マシンは特定のクライアントまたはクライアントのグループに割り当てられ、そのクライアントまたはクライアントのグループのためにデスクトップ環境をサポートし、そのクライアントまたはクライアントのグループにおいて実行するアプリケーションをサポートする役割を果たす。一例では、仮想マシンはデスクトップ・イメージ、またはデスクトップの現在の状態を表す他のレンダリング命令を生成し、次いでデスクトップのレンダリングのためにこのイメージまたは命令をクライアントに送信する。ユーザーがクライアントにおいてデスクトップと対話処理するに連れて、ユーザー入力がクライアントから仮想マシンに送信される。
【００４５】
[0050]  一例では、ホスト３１４は、クリアランス・プロセスを実行することによって信頼できる状態にされた後、テナントにプロビジョニングされるベア・メタル・リソースを含むことができる。次いで、テナントは、図１に示したように、アプリケーション、ＯＳ、ＢＩＯＳ等のようなソフトウェアをベア・メタル・リソースの信頼できる部分にロードすることによってというようにして、ベア・メタル・リソースを構成することができる。テナントは、ＶＭを実行するようにベア・メタル・リソースを構成することができ、または、仮想化することなく、ベア・メタル・リソースをそれらの必要性に応じて物理サーバーとして動作させることができる。
【００４６】
[0051]  また、システム３１０はサービス３１２も含む。図示する例では、サービス３１２は５つの別個のサービス３１２Ａ、３１２Ｂ、３１２Ｃ、３１２Ｄ、および３１２Ｅを含むが、本明細書において説明する原理は、システム３１０におけるサービスの数に限定されるのではない。サービス調整システム３１３が、ホスト３１４およびサービス３１２と通信し、こうすることによって、クライアント３０１によって要求されたサービス、および要求されたサービスのために必要になる可能性がある他のサービス（認証、課金等のような）を提供する。
【００４７】
[0052]  図４は、実施形態によるデーター・センター４００を示す。このデーター・センター４００内において、本明細書において説明する原理を採用することができる。データー・センター４００は、先に論じたデーター・センター３１１の内任意の１つに対応することができる。図示するように、データー・センター４００はテナント４１０Ａおよび４１０Ｂを含む（以後、「テナント４１０」とも呼ぶ）が、任意の数の追加のテナントがあってもよい。各テナント４１０は、データー・センター４００のコンピューティング・リソースの一部を使用するエンティティ（またはエンティティのグループ）を表すか、またはデーター・センター４００のコンピューティング・リソースの一部がそれらの使用のために割り当てられているエンティティ（またはエンティティのグループ）を表す。
【００４８】
[0053]  また、データー・センター４００はコンピューティング・リソース４２０Ａおよび４２０Ｂ（以後「コンピューティング・リソース４２０」とも呼ぶ）を含むが、任意の数の追加のコンピューティング・リソースがあってもよい。コンピューティング・リソース４２０は、ベア・メタル・リソースおよびデーター・センター４００の仮想コンピューティング・リソースを含む全ての物理リソースを表し、ホスト３１４に対応することができる。その例には、サーバーまたはホスト、ネットワーク交換機、プロセッサ、ストレージ・アレイ、およびその他の記憶デバイス、ソフトウェア・コンポーネント、仮想マシン、ならびにベア・メタル・リソースが含まれる。
【００４９】
[0054]  更に、データー・センター４００はシステム・マネージャ４３０も含む。システム・マネージャ４３０は、テナント４１０とコンピューティング・リソース４２０との間における相互作用を管理する。システム・マネージャ４３０は、分散状で実装することもでき、または１つのコンピューター・システム上に実装することもできる。尚、システム・マネージャ４３０は、必要に応じて、データー・センター４００の種々の処理、ストレージ、および他のコンピューティング・リソースにアクセスできることは認められよう。
【００５０】
[0055]  システム・マネージャ４３０の動作について、以下に更に詳しく説明する。説明するシステム・マネージャ４３０の種々のコンポーネントおよびモジュールは、複数のホスト２１４に跨がって分散されてもよいことも認められよう。更に、システム・マネージャ４３０は、図示するよりも多いまたは少ないコンポーネントおよびモジュールを含んでもよく、状況に応じてコンポーネントおよびモジュールを組み合わせてもよい。
【００５１】
[0056]  システム・マネージャ４３０は、テナント４１０による使用のために、関連するコンピューティング・リソース４２０を構成することができる。例えば、ホストまたはサーバーについては、予め定められたリソース構成は、オペレーティング・システム・イメージおよびカスタム化情報、アプリケーション・パッケージおよびカスタム化情報、インターネット・プロトコル（ＩＰ）アドレス、メディア・アクセス制御（ＭＡＣ）アドレス、ワールドワイド・ネーム、ならびに格納、ネットワーキング、およびコンピューティングのためのハードウェア要件を含むことができる。尚、予め定められたリソース構成は、追加のリソース構成または異なるリソース構成を含んでもよいことは認められよう。一例では、ベア・メタル・リソースについては、構成は、信頼できるイメージを信頼できる部分のイメージ・レポジトリーに格納し、クリアランス・マネージャをインストールすることを含むのでもよい。
【００５２】
[0057]  システム・マネージャ４３０は、イベント・モジュール４３３を含んでもよい。動作において、イベント・モジュール４３３は、リソース構成を適用する、またはベア・メタル・リソース上でクリアランス・プロセスを実行するというような、イベントを発生させた状態を修復するためのアクションを実行することをシステム・マネージャ４３０に要求する可能性があるイベントを、データー・センター４００のコンピューティング・リソースが生成することを可能にする種々のイベント条件４３３Ａを、アドミニストレーター４４０に定めさせる。イベント条件４３３Ａの例には、コンピューティング・リソース４２０に追加された新たなサーバー(sever)からダイナミック・ホスト・コンフィギュレーション・プロトコル（ＤＨＣＰ：Dynamic Host Configuration Protocol）要求を受けること、リソース枯渇（再アクティブ(re-active)）またはリソース利用の増加予測（先制的）に基づくオンデマンドの容量拡張、容量の過剰割り当て(over allocation)に基づくリソースのスケールイン(scale-in)、ベア・メタル・リソースのプロビジョニング、および障害ベア・メタル・リソースを含む障害コンポーネントの再プロビジョニングを含むことができるが、これらに限定されるのではない。尚、イベント条件４３３Ａは１つのイベントである必要はなく、一連の複数のイベントであってもよいことは認められよう。
【００５３】
[0058]  また、システム・マネージャ４３０はイベント・モニター４３４も含んでもよい。動作において、イベント・モニター４３４はテナント４１０およびコンピューティング・リソース４２０を監視して、システム・マネージャ４３０に何らかのアクションを起こさせる可能性があるイベント条件４３３Ａを発見するように構成される。イベント・モニター４３４は、イベント条件が発生したか否か判定するために、コンピューティング・リソース４２０の性能カウンター(performance counter)およびイベント・ログを監視することができ、またそれ以外では分析することもできる。一実施形態では、イベント・モニター４３４をインストールすることもでき、システム・マネージャ４３０は、制御プレーンを通じて監視されているコンピューティング・リソース４２０と通信することができる。他の実施形態では、コンピューティング・リソース４２０またはテナント４１０が、一方的に、イベント条件４４３Ａが発生したことをイベント・モニター４３４に通知することもでき、イベント・モニター４３４が直接コンピューティング・リソースを監視する必要はない。
【００５４】
[0059]  また、システム・マネージャ４３０はプロビジョニング・マネージャ４３５も含む。動作において、プロビジョニング・マネージャ４３５は、構成または他のアクションを特定のイベント条件およびその関連ポリシーと関連付けることができる。これによって、プロビジョニング・マネージャ４３５は、特定のイベントに対して適切なアクションを決定して実行することができ、更にそのアクションを行うことを知ることができる。また、プロビジョニング・マネージャ４３５は、テナントがそれらの使用のために最初にベア・メタル・リソースを借りるとき等に、新たなコンピューティング・リソースをテナントにプロビジョニングするための動作を実行する。
【００５５】
[0060]  図５は、実施形態にしたがって、ベア・メタル・リソースをテナントにプロビジョニングするクラウド環境を示す。例えば、ベア・メタル・リソース５００ａを含むベア・メタル・リソース５００は、データー・センター４００のようなデーター・センターにおいて、ラック５０１ａを含むラック５０１の中に収容されてもよい。ベア・メタル・リソース５００は、コンピューティング・リソース４２０の一部である。ベア・メタル・リソース５００は、図１に示したベア・メタル・リソース１１０のコンポーネントを有してもよく、ラックに搭載可能なベア・メタル・サーバーであってもよい。一例では、図１の信頼できるインフラストラクチャ・デバイス１５０はラック・コントローラーであり、そのラック内にあるベア・メタル・リソースと、図１に示した帯域外チャネル１６０を通じて通信する。帯域外チャネル１６０は、ベア・メタル・リソースのＧＰＩＯピンとの有線接続を含んでもよい。例えば、ラック５０１ａ上にラック・コントローラー５０３ａを含むラック・コントローラー５０３は、各々、信頼できるインフラストラクチャ・デバイス１５０を含む。他の例では、信頼できるインフラストラクチャ・デバイス１５０は、システム・マネージャ４３０の一部であってもよく、システム・マネージャ４３０は、クリアランス・プロセスを実行するために、ベア・メタル・リソース５００と通信する。本明細書において説明する原理は、図５に示すラックおよびベア・メタル・リソースの数に限定されるのではない。また、データー・センターは、ベア・メタル・リソース、および／またはテナントにプロビジョニングすることができる他の種類のコンピューティング・リソースを含むこともできる。
【００５６】
[0061]  図１および図２に関して先に論じたように、信頼できるインフラストラクチャ・デバイス１５０は、ラック・コントローラー５０３ａの一部であってもよく、ベア・メタル・リソース５００ａ上でクリアランス・プロセスを実行してそれを信頼できる状態にするために、帯域外チャネルを通じてベア・メタル・リソース５００ａと通信する。システム・マネージャ４３０は、クリアランス・プロセスをトリガーするイベントに応答して、ラック・コントローラー５０３ａと通信することができる。例えば、このイベントは、新たなベア・メタル・リソースを借りるためのテナントからの要求であってもよく、またはこのイベントは、ベア・メタル・リソース５００ａが動作状態でなくなったことの指示であってもよい。
【００５７】
[0062]  図６に示すように、コンピューティング・システム６００は、その最も基本的な構成では、通例、少なくとも１つの処理ユニット６０２とメモリー６０４とを含む。メモリー６０４は、物理システム・メモリーであってもよく、揮発性、不揮発性、またはこれら２つの何らかの組み合わせを含んでもよい。「メモリー」という用語は、本明細書では、物理記憶媒体のような、不揮発性大容量ストレージを指すために使用する場合もある。コンピューティング・システムが分散型である場合、処理、メモリー、および／または格納機能(capability)も同様に分散させることができる。本明細書において使用する場合、「モジュール」または「コンポーネント」という用語は、コンピューティング・システム上で実行するソフトウェア・オブジェクトまたはルーチンを指すことができる。本明細書において説明した異なるコンポーネント、モジュール、エンジン、およびサービスは、コンピューティング・システム上で実行する（例えば、別個のスレッドとして）オブジェクトまたはプロセスとして実装することができる。
【００５８】
[0063]  以上の説明では、１つ以上のコンピューティング・システムによって実行されるアクトを参照しながら、実施形態および例について説明した。このようなアクトがソフトウェアで実装される場合、そのアクトを実行する関連コンピューティング・システムの１つ以上のプロセッサは、コンピューター実行可能命令を実行したことに応答して、コンピューティング・システムの動作を指令する。例えば、このようなコンピューター実行可能命令は、マシン読み取り可能命令とも呼ばれ、コンピューター・プログラム製品を形成する１つ以上のコンピューター読み取り可能媒体上に具体化することができる。このような動作の例は、データーの操作を伴う。コンピューター実行可能命令（および操作されたデーター）は、コンピューティング・システム６００のメモリー６０４に格納することができる。また、コンピューティング・システム６００は、通信チャネルも内蔵することができ、通信チャネルは、コンピューティング・システム６００が、例えば、ネットワークを通じて他のメッセージ・プロセッサと通信することを可能にする。コンピューティング・システム６００は、システム・マネージャ４３０または信頼できるインフラストラクチャ・デバイス１５０をホストすることができるコンピューターのアーキテクチャを表すとしてもよい。また、本明細書において説明した実施形態は、コンピューター実行可能命令および／またはデーター構造を搬送または格納するために、物理コンピューター読み取り可能媒体および他のコンピューター読み取り可能媒体も含む。このようなコンピューター読み取り可能媒体は、汎用コンピューター・システムまたは特殊目的コンピューター・システムによってアクセスすることができる任意の入手可能な媒体とすることができる。コンピューター実行可能命令を格納するコンピューター読み取り可能媒体は、物理記憶媒体である。コンピューター実行可能命令を搬送するコンピューター読み取り可能媒体は、送信媒体である。つまり、一例として、そして限定ではなく、本発明の実施形態は、少なくとも２つの全く異なる種類のコンピューター読み取り可能媒体、即ち、コンピューター記憶媒体および送信媒体を含むことができる。コンピューター記憶媒体には、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、ＣＤ−ＲＯＭまたは他の光ディスク・ストレージ、磁気ディスク記憶デバイスまたは他の磁気記憶デバイス、あるいはコンピューター実行可能命令またはデーター構造の形態で所望のプログラム・コード手段を格納するために使用することができ、コンピューターによってアクセスすることができる任意の他の媒体が含まれる。また、以上で説明した方法の特定のステップ、および先に論じた種々の動作は、プロセッサ、マイクロプロセッサー、または非一時的コンピューター読み取り可能媒体上に格納されたマシン読み取り可能命令を実行することができる他のハードウェアによって実行することができる。以上では、実施形態および例について説明したが、当業者であれば、これらの実施形態および例の範囲から逸脱することなく、説明した実施形態および例に対して種々の変更を行うことができよう。
【図１】
2021513711.tif 000003
【図２】
2021513711.tif 000004
【図３】
2021513711.tif 000005
【図４】
2021513711.tif 000006
【図５】
2021513711.tif 000007
【図６】
2021513711.tif 000008
【国際調査報告】
2021513711.tif 000009
2021513711.tif 000010