説明

共同ロケーション施設システムの安全な通信方法

【課題】共同ロケーション施設における共有コンピュータの分散管理を改善する。
【解決手段】ノードクラスタ210のアプリケーションオペレーションを管理するアプリケーションオペレーション管理コンソール242とノードクラスタ210内の複数のコンピュータと間の通信の安全は第1の公開/秘密鍵のペアを使用して確立する。ノードクラスタ210のハードウェアオペレーションを管理するクラスタオペレーション管理コンソール240とノードクラスタ210内の複数のコンピュータと間の通信の安全は第2の公開/秘密鍵のペアを使用して確立する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、コンピュータシステムの管理に関する。さらに具体的には、本発明は、共有コンピュータの分散管理に関する。
【背景技術】
【0002】
インターネット(the Internet)とその使用は、この近年に大幅に拡張しており、その拡張は今後も続くことが予想されている。インターネットの顕著な使い方の1つは、ワールドワイドウェブ(World Wide Web WWW。”Web”とも呼ばれている)であり、これは、ユーザが見たり、さもなければ、レンダリング(rendering)することができるドキュメントの集まりであり、そこには、ユーザがアクセスできる1つまたは2つ以上の他のページへのリンクが含まれているのが代表的である。多くの企業や個人は、1または2以上のWebページで構成される存在物をWeb上に創設し、1または2以上のWebページで自社または自分のことを記述し、自社製品やサービスを説明し、他の関心のある情報を特定し、商品やサービスの購入を可能にしているのが代表的である。
【0003】
Webページは1つまたは2つ以上のWebサーバを通して、Web上で利用可能である。プロセスはWebページを「ホストする」とも呼ばれる。これらのWebページは、そのページ(例えば、会社の広告)を見ることを要求した、だれにでも自由に利用可能であるが、Webページへのアクセスが制限されているときもある(例えば、Webページにアクセスするには、パスワードが要求されることがある)。Webページを見ることを要求している人が非常に多数であると(特に、Webがグローバルにアクセス可能であることを考慮すると)、十分にWebページをホストするためには、非常に多数のサーバが必要になる場合がある(例えば、同じWebページを複数のサーバでホストすると、そのWebページに同時にアクセスできる人の数が増加することになる)。さらに、Webは地理的に分散しており、アクセスに統一性がないため、サーバを異なるリモートロケーション(遠隔地)に分散化し、世界の異なるロケーション(場所)にいる人々のアクセスタイムを最小限にすることが、しばしば望まれている。さらに、人々は、一日中Webページを見ている傾向があるので(この場合も、特にWebがグローバルにアクセス可能であることを考慮すると)、Webページをホストするサーバは、毎日24時間の間、機能提供状態に保っておく必要がある。
【0004】
しかし、非常に多数のサーバを管理することは、困難になることがある。サーバを稼動状態に保つためには、高信頼電源が必要になる。盗みや他の悪意のある人が、サーバを破損したり、サーバにしのび込んだりする試みを防止するためには、物理的セキュリティが必要になる。アクセス要求がサーバに確実に到達することを保証するためには、高信頼インターネットコネクションが必要になる。サーバが正しく動作することを保証するためには、正しい動作環境(例えば、温度、湿度など)が必要になる。そこで、企業がこれらの問題に対処するのを支援する「共同ロケーション施設(co−location facilities)」が発達してきた。
【0005】
ここで、共同ロケーション施設とは、複数のサーバを収容できる複合体(complex)のことである。共同ロケーション施設は、高信頼インターネットコネクション、高信頼電源、および正しい動作環境を提供しているのが代表的である。また、共同ロケーション施設は、複数のセキュアエリア(例えば、ケージ(cage))を含み、異なる企業が自社サーバをそこに置いておくことを可能にしているのが代表的である。特定の企業が共同ロケーション施設に置いておくサーバの集まりは、実際には、いずれかの個別的共同ロケーション施設に、シングルサーバだけが置かれていることがあっても、「サーバクラスタ(server cluster)」と呼ばれる。この場合、その特定企業は、自社サーバクラスタ内のサーバのオペレーションの管理を担当することになる。
【発明の概要】
【発明が解決しようとする課題】
【0006】
しかしながら、このような共同ロケーション施設にも、問題が起こっている。1つの問題は、データのセキュリティ(data security)である。異なる企業(競争企業でさえも)は、同一共同ロケーション施設にサーバクラスタを置くことが可能になっている。このような状況では、ある企業を目的に、インターネットから受信されたデータ(またはサーバクラスタ内のサーバから送信されたデータ)が、その共同ロケーション施設に置かれている別の企業のサーバにルーチング(経路探索)されないようにする配慮が必要である。
【0007】
もう1つの問題は、共同ロケーション施設に置かれた後の、サーバの管理の問題である。現在では、ある企業に属するシステムアドミニストレータ(システム管理者)は、サーバに障害(または他の問題)が起きたとき、共同ロケーション施設のアドミニストレータに連絡し(電話によるのが代表的)、特定のサーバをリセットすること(サーバ側のハードウェアリセットボタンを押すか、あるいはサーバをパワーオフした後で、パワーオンをする方法が代表的)をアドミニストレータに要求することが可能になっている。このリセットだけの機能には制約があるため、企業が得られる管理機能が非常に乏しくなっている。別の方法として、企業に属するシステムアドミニストレータは、自身で共同ロケーション施設に赴き、障害を起こしたサーバを診ることが可能になっている。残念ながら、システムアドミニストレータが共同ロケーション施設に赴いて、サーバを診るようにすると、大量の時間が浪費されることになる。従って、リモートのサーバコンピュータを共同ロケーション施設で管理するように改善すると、好都合である。
【0008】
もう1つの問題は、共同ロケーション施設に置かれているサーバのオペレータだけでなく、これらのサーバでホストされるWebサービスのオペレータも、その権利を行使することに関係する問題である。サーバのオペレータは、サーバがWebサービスのオペレータによって所有されている場合でも、その権利(例えば、サーバが置かれている施設のエリアを再所有する権利)を保持できることが必要である。さらに、Webサーバのオペレータは、自分のデータがセキュアに保たれているとの保証を得る必要がある。
【0009】
以下に説明する本発明は、上記問題点を解決し、共同ロケーション施設における共有コンピュータの分散管理を改善することを目的としている。
【課題を解決するための手段】
【0010】
以下では、共有コンピュータの分散管理について説明する。
【0011】
本発明の一形態によれば、多層管理アーキテクチャ(multi−tiered management architecture)が採用され、このアーキテクチャは、アプリケーション開発層(application development tier)、アプリケーションオペレーション層(application operations tier)、およびクラスタオペレーション層(cluster operations tier)を含んでいる。アプリケーション開発層では、アプリケーションは、1つまたは2つ以上のサーバコンピュータ上で実行されるように開発される。アプリケーションオペレーション層では、アプリケーションの実行が管理され、共同ロケーション施設に置かれたサーバクラスタ内のサブ境界(sub−boundary)が設定可能になっている。クラスタオペレーション層では、サーバコンピュータのオペレーションは、どのアプリケーションが1つまたは2つ以上のサーバコンピュータ上で実行されているかに関係なく、管理され、共同ロケーション施設に置かれたサーバクラスタの境界が設定可能になっている。
【0012】
別の形態によれば、共同ロケーション施設は、各々が異なるカスタマーに対応している複数のサーバクラスタを含んでいる。各々のサーバクラスタごとに、クラスタオペレーション管理コンソールは、クラスタのハードウェアオペレーションを管理するために共同ロケーション施設にローカルに実装され、アプリケーション管理コンソールは、クラスタのソフトウェアオペレーションを管理するために、共同ロケーション施設から離れたロケーションに実装されている。ハードウェアに障害が起きた場合は、クラスタオペレーション管理コンソールは訂正アクションをとる(例えば、共同ロケーション施設にいるアドミニストレータに通知するか、あるいは自身で障害の訂正を試みる)。ソフトウェアに障害が起きた場合は、アプリケーションオペレーション管理コンソールは訂正アクションをとる(例えば、カスタマーのアドミニストレータの一人に通知するか、あるいは自身で障害の訂正を試みる)。
【0013】
別の形態によれば、サーバクラスタの境界は、クラスタオペレーション管理コンソールによって設定される。境界を設定すると、データがサーバクラスタ内のノードにだけルーチングされ、共同ロケーション施設に置かれていて、サーバクラスタに属していない他のノードにはルーチングされないことが保証される。さらに、サーバクラスタ内のサブ境界はアプリケーションオペレーション管理コンソールによって設定され、データがサーバクラスタ内の特定ノードにだけルーチングされることを保証する。
【0014】
別の形態によれば、共同ロケーション施設に置かれる予定の、複数のサーバコンピュータに対する権利はカスタマーに販売され、多層管理方式(multiple−tiered management scheme)がサーバコンピュータで実施される。この多層管理方式によれば、サーバコンピュータのハードウェアオペレーションは、共同ロケーション施設でローカルに管理されるのに対し、サーバコンピュータのソフトウェアオペレーションは、共同ロケーション施設から離れたロケーションから管理される。サーバコンピュータは、カスタマーに販売することも、カスタマーにリースすることも可能である。
【0015】
別の形態によれば、ランドロード/テナント(landlord/tenant)関係は、共同ロケーション施設で1つまたは2つ以上のサーバコンピュータを使用して構築される。共同ロケーション施設のオペレータは、施設とサーバの両方を提供する(従って、このオペレータは「ランドロード」と見ることができる)。これに対して、施設のカスタマーは、施設の使用だけでなく、その施設のサーバもリースする(従って、このカスタマーは「テナント」と見ることができる)。このランドロード/テナント関係によると、ランドロードは、テナントが異なるごとにコンピュータクラスタを設定し、テナントのデータがそのクラスタを越えて(および別のテナントのクラスタに)渡されないように、クラスタ間に境界を設定することが可能である。さらに、暗号化がさまざまな形で採用されているので、テナントがそのリースを終了したり、リースしているサーバの1つをランドロードに返却した場合でも、リースしているサーバにストアされている情報が他人に見られない。
【0016】
別の形態によれば、多層管理アーキテクチャは、共同ロケーション施設に属していないコンピュータの管理において採用される。この多層管理アーキテクチャは、ビジネスやホームなどのような、さまざまな環境でコンピュータ(サーバコンピュータであるか否かに関係なく)を管理するために使用される。
【0017】
以下、添付図面を参照して本発明が説明されているが、その説明は単なる例示であり、その説明に限定されるものではない。図面全体を通して用いられている同一符号は、類似のコンポーネントおよび/または特徴を示している。
【図面の簡単な説明】
【0018】
【図1】本発明のいくつかの実施形態で使用できるような、クライアント/サーバネットワークシステムと環境を示す図である。
【図2】本発明のいくつかの実施形態に従って使用できるコンピュータの例を示す概要図である。
【図3】例示の共同ロケーション施設を示す詳細ブロック図である。
【図4】例示の多層管理アーキテクチャを示すブロック図である。
【図5】本発明のいくつかの実施形態による例示のノードを示す詳細ブロック図である。
【図6】本発明のいくつかの実施形態による暗号鍵の生成と配布のための例示プロセスを示すフローチャートである。
【図7】本発明のいくつかの実施形態によるクラスタ管理コンソールのオペレーションのための例示プロセスを示すフローチャートである。
【図8】本発明のいくつかの実施形態によるアプリケーションオペレーション管理コンソールのオペレーションのための例示プロセスを示すフローチャートである。
【発明を実施するための形態】
【0019】
図1は、本発明のいくつかの実施形態で使用できるような、クライアント/サーバネットワークシステムと環境を示す。一般的に、システムは複数(n個)のクライアントコンピュータ102と複数(m個)の共同ロケーション施設104を含み、各施設は複数のサーバコンピュータのクラスタ(サーバクラスタ)106を含んでいる。これらのサーバとクライアントコンピュータは、データコミュニケーションネットワーク108を通して相互に通信している。図1のコミュニケーションネットワークは、インターネット(the Internet)のような公衆ネットワーク108を含んでいる。インターネットに加えて、あるいはその代用として、他のタイプのコミュニケーションネットワークを使用することも可能であり、その中には、ローカルエリアネットワーク(local area network LAN)、広域ネットワーク(wide area network WAN)などが含まれている。データコミュニケーションネットワーク108の構築は、さまざまな方法で行うことが可能であり、その中には、ワイヤド(有線)および/またはワイヤレス(無線)コミュニケーション媒体が含まれている。
【0020】
ネットワーク108を利用したコミュニケーションを行うには、広範囲にわたる通信プロトコルの使用が可能である。ある実装では、クライアントコンピュータ102とクラスタ106内のサーバコンピュータは、ハイパーテキスト転送プロトコル(Hypertext Transfer Protocol HTTP)を使用して相互に通信することが可能になっており、そこでは、Webページはサーバコンピュータによってホストされ、ハイパーテキストマークアップ言語(Hypertext Markup Language HTML)または拡張可能マークアップ言語(eXtensible Markup Language XML)などの、マークアップ言語で書かれている。
【0021】
以下の説明では、本発明の実施形態は、主に、共同ロケーション施設(施設104など)での実装と関連付けて説明される。しかし、本発明はそのような実装に限定されるものではなく、広範囲にわたる状況のいずれにおいても、分散管理のために使用することが可能である。例えば、そのような状況としては、施設に置かれたサーバのすべてが同一カスタマーに所有またはリースされる場合、シングルコンピューティングデバイス(例えば、サーバまたはクライアント)が管理対象となっている場合、ビジネスまたはホーム環境におけるコンピュータ(サーバが否かに関係なく)が管理対象となっている場合、などがある。
【0022】
以下の説明では、本発明の実施形態は、プログラムモジュールのように、1つまたは2つ以上の従来パーソナルコンピュータによって実行されるコンピュータ実行可能命令の一般的なコンテキストで説明されている。一般的に、プログラムモジュールには、特定のタスクを実行し、あるいは特定の抽象データ型を実装している、ルーチン、プログラム、オブジェクト、コンポーネント、データ構造などが含まれている。さらに、当業者ならば理解されるように、本発明の種々実施形態は、他のコンピュータシステム構成で実施することが可能であり、その中には、ハンドヘルドデバイス、ゲーミングコンソール(gaming console)、インターネットアプライアンス(Internet appliance)、マルチプロセッサシステム、マイクロプロセッサベースまたはプログラマブルコンシューマエレクトロニクス、ネットワークPC、ミニコンピュータ、メインフレームコンピュータなどが含まれている。分散コンピュータ環境では、プログラムモジュールは、ローカルとリモートの両方のメモリストレージデバイスに置いておくことが可能である。
【0023】
別の方法として、本発明の実施形態は、ハードウェアで実現することも、ハードウェア、ソフトウェア、および/またはファームウェアの組み合わせで実現することもできる。例えば、本発明は、その全体または一部を1つまたは2つ以上の特定用途集積回路(application specific integrated circuit ASIC)またはプログラマブルロジックデバイス(programmable logic device PLD)に実装させることが可能である。
【0024】
図2は、本発明のいくつかの実施形態に従って使用できるコンピュータ142の例を示す概要図である。図示のコンピュータ142の例としては、図1のクライアントコンピュータ102としての機能をもつコンピュータ、図1の共同ロケーション施設104や他のロケーションに置かれているコンピュータやノード(例えば、以下に説明する図5のノード248)、あるいはローカルまたはリモート管理コンソールがあり、これらは、以下に詳しく説明されている。
【0025】
コンピュータ142は、1つまたは2つ以上のプロセッサまたは処理ユニット144、システムメモリ146、およびシステムメモリ146を含む種々システムコンポーネントをプロセッサ144に結合しているバス148を含んでいる。バス148は、数種タイプのバス構造のいずれかの1つまたは2つ以上を表しており、その中には、種々のバスアーキテクチャのいずれかを採用しているメモリバスまたはメモリコントローラ、ペリフェラル(周辺)バス、高速グラフィックスポート、およびプロセッサまたはローカルバスが含まれている。システムメモリとしては、リードオンリメモリ(read only memory ROM)150とランダムアクセスメモリ(random access memory RAM)152がある。基本入出力システム(basic input/output system BIOS)154は、スタートアップ時のときのように、コンピュータ142内のエレメント間で情報を転送するのを支援する基本ルーチンで構成され、ROM 150に格納されている。
【0026】
コンピュータ142は、さらに、ハードディスク(図示せず)との間で読み書きを行い、ハードディスクドライブインタフェース157(例えば、SCSI、ATA、他のタイプのインタフェース)を介してバス148に接続されているハードディスクドライブ156、取り外し可能磁気ディスク160との間で読み書きを行い、磁気ディスクドライブインタフェース161を介してバス148に接続されている磁気ディスクドライブ158、およびCD−ROMやDVD、その他の光メディアなどの、取り外し可能光ディスク164との間で読み書きを行い、光ドライブインタフェース165を介してバス148に接続されている光ディスクドライブ162を装備している。これらのドライブおよびそれぞれに関連するコンピュータ読取可能媒体は不揮発性ストレージとして、コンピュータ142のためのコンピュータ読取可能命令、データ構造、プログラムモジュールおよび他のデータを格納している。ここで説明している例示環境では、ハードディスク、取り外し可能磁気ディスク160および取り外し可能光ディスク164が採用されているが、当業者ならば理解されるように、コンピュータによってアクセス可能なデータを格納しておくことができる他のタイプのコンピュータ読取可能媒体を、例示動作環境で使用することも可能であり、そのようなものとしては、磁気カセット、フラッシュメモリカード、デジタルビデオディスク、ランダムアクセスメモリ(RAM)、リードオンリメモリ(ROM)などがある。
【0027】
いくつかのプログラムモジュールは、ハードディスク、磁気ディスク160、光ディスク164、ROM 150またはRAM 152に格納しておくことが可能であり、その中には、オペレーティングシステム170、1つまたは2つ以上のアプリケーションプログラム172、他のプログラムモジュール174、およびプログラムデータ176が含まれている。ユーザは、キーボード178やポインティングデバイス180などの、入力デバイスを通してコマンドと情報をコンピュータ142に入力することができる。他の入力デバイス(図示せず)としては、マイクロホン、ジョイスティック、ゲームパッド、サテライトディッシュ、スキャナなどがある。上記および他の入力デバイスは、システムバスに結合されているインタフェース168を介して処理ユニット144に接続されている。モニタ184や他のタイプのディスプレイデバイスも、ビデオアダプタ186のような、インタフェースを介してシステムバス148に接続されている。モニタのほかに、パーソナルコンピュータは、スピーカやプリンタのような、他のペリフェラル(周辺)出力デバイス(図示せず)を装備しているのが代表的である。
【0028】
コンピュータ142は、オプションとして、リモートコンピュータ188のような、1つまたは2つ以上のリモートコンピュータとの論理コネクションを使用するネットワーキング環境で動作している。リモートコンピュータ188は、別のパーソナルコンピュータ、サーバ、ルータ、ネットワークPC、ピアデバイスまたは他の共通ネットワークノードにすることが可能であり、図2にはメモリストレージデバイス190だけが示されているが、コンピュータ142に関連して上述したエレメントの多くまたは全部を含んでいるのが代表的である。図2に示す論理コネクションとしては、ローカルエリアネットワーク(LAN)192と広域ネットワーク(WAN)194がある。このようなネットワーキング環境は、オフィス、企業内(enterprise−wide)コンピュータネットワーク、イントラネット(intranet)、およびインターネット(the Internet)で普及している。ここで説明している本発明の実施形態では、リモートコンピュータ188は、Microsoft Corporation(Redmond, Washington)で製造され、販売されている”Internet Explorer” Webブラウザなどの、インターネットWebブラウザプログラム(これは、オプションとして、オペレーティングシステムに組み込まれていることもある)を実行している。
【0029】
LANネットワーキング環境で使用されるときは、コンピュータ142は、ネットワークインタフェースまたはアダプタ196を通してローカルネットワーク192に接続されている。WANネットワーキング環境で使用されるときは、コンピュータ142は、インターネットなどの広域ネットワーク194上のコミュニケーションを確立するためのモデム198や他のコンポーネントを装備しているのが代表的である。モデム198は内蔵型と外付け型があり、どちらも、インタフェース(例えば、シリアルポートインタフェース168)を介してシステムバス148に接続されている。ネットワーキング環境では、パーソナルコンピュータ142に関連して上述したプログラムモジュールまたはその一部は、リモートメモリストレージデバイスに格納しておくことができる。以上から理解されるように、図示のネットワークコネクションは例示であり、コンピュータ間のコミュニケーションリンクを確立する他の手段を使用することも可能である。
【0030】
一般的に、コンピュータ142のデータプログラムは、コンピュータの種々のコンピュータ読取可能媒体に時期を異にして格納されている命令によってプログラムされている。プログラムとオペレーティングシステムは、例えば、フロッピディスクやCD−ROMに入れて配布されるのが代表的である。これらは、そこからインストールされた後、コンピュータの二次メモリ(secondary memory)にロードされている。実行時に、これらは、少なくともその一部が、コンピュータの一次エレクトロニックメモリ(primary electronic memory)にロードされている。ここで説明している本発明によれば、マイクロプロセッサまたは他のデータプロセッサと関連付けて以下に説明されているステップを実現するための命令またはプログラムは、上記および他のタイプのコンピュータ読取可能ストレージ媒体に収められている。また、本発明によれば、コンピュータ自体が、下述する方法と手法に従ってプログラムされるようになっている。さらに、コンピュータのある種のサブコンポーネントは、下述する機能とステップを実行するようにプログラム可能になっている。本発明によれば、そのようなサブコンポーネントは下述するようにプログラムされるようになっている。さらに、ここで説明している本発明によれば、データ構造は、下述するように、種々タイプのメモリ媒体上に具現化されている。
【0031】
説明の便宜上、プログラムおよびオぺレーティングシステムのような他の実行可能プログラムコンポーネントは、ここでは個別的ブロックとして示されているが、当然に理解されるように、このようなプログラムとコンポーネントは、時期を異にしてコンピュータの異なるストレージコンポーネントに置かれていて、コンピュータのデータプロセッサによって実行されるようになっている。
【0032】
図3は、例示の共同ロケーション施設を示す。共同ロケーション施設104は、図示のように複数のノード210(サーバコンピュータとも呼ばれる)を含んでいる。共同ロケーション施設104は、ノード210をいくつでも収容することが可能であり、数千にもわたる数のノードを容易に収容することが可能である。
【0033】
ノード210は、サーバクラスタ(またはノードクラスタ)と呼ばれる、いくつかのクラスタにグループ化されている。説明を簡単にし、図面の混乱を避けるために、図3にはシングルクラスタ212だけが示されている。各サーバクラスタは、共同ロケーション施設104の特定カスタマーに対応するノード210を含んでいる。あるサーバクラスタのノード210は、他のサーバクラスタのノード210から物理的に隔離されている。この物理的隔離は、共同ロケーション施設104でのロックされた個別ケージや個別ルームのように、異なる形体にすることができる。サーバクラスタを物理的に隔離すると、共同ロケーション施設104のカスタマーは、自分だけが自分のノードに物理的にアクセスできることが保証される(他のカスタマーはアクセスできない)。別の方法として、サーバクラスタは、相互に対して物理的にではなく、論理的に隔離することも可能である(例えば、以下で詳しく説明するクラスタ境界を使用して)。
【0034】
ランドロード/テナント関係(貸主/借主(lessor/lessee)関係とも呼ばれる)は、ノード210をベースにして設定することも可能である。共同ロケーション施設104の所有者(および/またはオペレータ)は、個別的ノード210を所有している(さもなければ、その権利を有している)ので、「ランドロード」と見ることができる。共同ロケーション施設104のカスタマーは、ランドロードからノード210をリースするので、「テナント」と見ることができる。ランドロードは、どのタイプのデータまたはプログラムがテナントによってノード210にストアされているかには無関心であるのが代表的であるが、クラスタに境界を設けて、異なるクラスタからのノード210が、相互に通信するのを防止するようにしている。これについては、以下に詳しく説明されている。
【0035】
以下では、ランドロード/テナント関係は、主に、2レベルに限定して、つまり、ランドロードとテナントと関連付けて説明されている。しかし、代替実施形態では、この関係は、任意の数のレベルに拡張することも可能である。例えば、ランドロードは、その管理責任を1つまたは2つ以上のサブランドロードと分担することが可能であり(この場合、各々のサブランドロードは、1つまたは2つ以上のノード210に対してある種の管理制御権をもつことになる)、テナントも、同じように、その管理責任を1つまたは2つ以上のサブテナントと分担することが可能である(この場合は、各サブテナントは、1つまたは2つ以上のノード210に対してある種の管理制御権をもつことになる)。
【0036】
異なるクラスタのノード210は、物理的に隔離されていても、ネットワークコネクション(1つまたは複数)216へのアクセス、場合によっては、アプリケーションオペレーション管理コンソール242へのアクセスを可能にする、同じトランスポート媒体(1つまたは複数)211に物理的に結合されていることがよくある。これについては、以下に詳しく説明されている。このトランスポート媒体はワイヤード(有線)またはワイヤレス(無線)にすることができる。
【0037】
各ノード210は、共有トランスポート媒体211に結合できるので、各ノード210は、他のどのノード210との間でデータを送受信できるかを制限するように構成可能である。いくつかの異なるノード210をテナントのサーバクラスタに含めることが可能になっていれば、テナントは、そのクラスタ内の異なるクラスタ210の間でデータを、処理や保管などの目的のために、受け渡しできることを望む場合がある。しかし、テナントは、サーバクラスタに属していない他のノード210にデータが渡されるのを望まないのが代表的である。他のどのノード210との間でデータを送受信できるかを制限するようにクラスタ内の各ノード210を構成すると、サーバクラスタの境界を設定し、適用することが可能になる。このようなサーバクラスタ境界を設定し、適用すると、テナントのデータがクラスタに属していないノードに誤って、あるいは不正に転送されることが防止される。
【0038】
ランドロードによって設定される、これらの初期境界は、異なるテナントのノード210間のコミュニケーションを防止するので、各テナントのデータがそのテナントの他のノード210に渡されることが保証されることになる。テナント自身も、そのクラスタ内にサブ境界を別に定義し、ノード210のサブクラスタを設定すると、そこから出入りするデータが、クラスタ内の他のノードとの間で受け渡しされることが防止される。テナントは、そのようなサブクラスタ境界を自由に追加し、変更し、削除し、その他を行うことができるが、それが許されるのは、ランドロードによって定義された境界(つまり、クラスタ境界)内に限られている。従って、テナントは、ノード210との間で行われるコミュニケーションが、同じクラスタに属していない別のノード210にまで拡張されるような形で境界を変更することはできない。
【0039】
共同ロケーション施設104は、ノード210の各々に対して高信頼電源214と高信頼ネットワークコネクション(1つまたは複数−以下同じ)216を提供している。電源214とネットワークコネクション214はノード210のすべてによって共有されているが、別の方法として、ノード210またはノードグループ(例えば、クラスタ)に別の電源214とネットワークコネクション216を提供することも可能である。高信頼電源を提供するための広範囲にわたる、従来のメカニズムは、いずれも、電源障害(停電)時のバックアップ発電機、余分な発電機、バッテリ、燃料電池、あるいは他の蓄電メカニズムと併用して、電力会社から供給される電力のような高信頼電源214を提供するために使用することができる。同様に、高信頼ネットワークコネクションを提供するための広範囲にわたる、従来のメカニズムは、いずれも、冗長コネクショントランスポート媒体、異種のコネクション媒体、異なるアクセスポイント(例えば、異なるインターネットアクセスポイント、異なるインターネットサービスプロバイダ(Internet service provider ISP)など)などの、ネットワークコネクション216を提供するために使用することができる。
【0040】
いくつかの実施形態では、ノード210は、共同ロケーション施設104のオペレータまたは所有者によって、施設104のスペースおよびサービス(例えば、高信頼電源214とネットワークコネクション216)と一緒にカスタマーにリースまたは販売されている。他の実施形態では、施設104のスペースとサービスはカスタマーにリースされるのに対し、1つまたは2つ以上のノードはカスタマーによって用意されるようになっている。
【0041】
各ノード210の管理は多層方式で行われる。図4は、例示の多層管理アーキテクチャを示す。この多層アーキテクチャは3層からなっている。すなわち、クラスタオペレーション管理層230、アプリケーションオペレーション管理層232、およびアプリケーション開発層234である。クラスタオペレーション管理層230は、管理されるサーバ(1つまたは複数−以下同じ)と同じロケーションに(例えば、共同ロケーション施設に)ローカルに実装され、サーバのハードウェアオペレーションを管理することを担当している。図示の例では、クラスタオペレーション管理層230は、どのソフトウェアコンポーネントがノード210で実行されているかには無関心であり、関心をもっているのは、ノード210のハードウェアオペレーションを継続することと、ノードクラスタ間に境界を設定することだけである。
【0042】
これに対して、アプリケーションオペレーション管理層232は、管理されるサーバが置かれている場所とは別の(例えば、共同ロケーション施設とは別の)リモートロケーションであって、サーバに結合されていてまだ通信状態にあるクライアントコンピュータから離れたロケーションに実装されている。アプリケーションオペレーション管理層232は、サーバのソフトウェアオペレーションを管理し、サーバクラスタ内にサブ境界を定義することを担当している。クライアントをサーバに結合するには、インターネット経由や専用(例えば、ダイヤルアップ)コネクション経由といったように、さまざまな方法で行うことが可能になっている。また、クライアントは、サーバに結合したままにしておくことも、不定期に(例えば、管理目的のための必要時のみ)結合することも可能である。
【0043】
アプリケーション開発層234は、サーバとは別のロケーション(例えば、共同ロケーション施設とは別のロケーション)に置かれている、別のクライアントコンピュータに実装されており、サーバ上で実行されるソフトウェアコンポーネントまたはエンジンを開発することを担当している。別の方法として、共同ロケーション施設104のノード210に置かれているカレントソフトウェアにリモートクライアントがアクセスすることによって、ノードのための追加ソフトウェアコンポーネントやエンジンを開発することも可能である。アプリケーション開発層234が実装されているクライアントは、アプリケーションオペレーション管理層232が実装されているクライアントとは別のクライアントであるのが代表的であるが、これらの2層232と234は、同じクライアントに(少なくとも部分的に)実装させることも可能である。
【0044】
図4には3層だけが示されているが、これとは別に、多層アーキテクチャは異なる数の層で構成することも可能である。例えば、アプリケーションオペレーション管理層を2層に分割し、各層に異なる(またはオーバラップする)責任をもたせれば、結果的に、4層のアーキテクチャが得られることになる。これらの層での管理は、同じ場所からでも(例えば、シングルアプリケーション管理コンソールを共用にする)、異なる場所からでも(例えば、2つの異なるオペレーション管理コンソール)行うことができる。
【0045】
図3に戻って説明すると、共同ロケーション施設104は、各サーバクラスタのためのクラスタオペレーション管理コンソールを含んでいる。図3の例では、クラスタオペレーション管理コンソール240はクラスタ212に対応付けられている。クラスタオペレーション管理コンソール240はクラスタ212のためのクラスタオペレーション管理層230(図4)を実装しており、クラスタ212内のノード210のハードウェアオペレーションを管理することを担当している。クラスタオペレーション管理コンソール240はクラスタ212内のハードウェアをモニタリングし、ハードウェア障害を判別することを試みている。広範囲にわたる、どのようなハードウェア障害でもモニタリングすることが可能であり、その中には、プロセッサ障害、バス障害、メモリ障害などが含まれている。ハードウェアオペレーションをモニタリングする方法は、クラスタオペレーション管理コンソール240が、応答のために特定のハードウェアの使用を要求するテストメッセージや制御シグナルを送信するとか(無応答または誤りのある応答は障害が起きたことを示している)、生成のために特定のハードウェアの使用を要求するテストメッセージや制御シグナルを、ノード210からクラスタオペレーション管理コンソール240へ定期的に送信させるとか(特定の時間期間内にこのメッセージまたは制御シグナルを受信しないときは、障害が起きたことを示している)、といったように、種々の方法が可能である。別の方法として、クラスタオペレーション管理コンソール240は、どのタイプのハードウェア障害が発生したかを判別することを試みるのではなく、障害が起きたことだけを判別するようにすることもできる。
【0046】
ハードウェア障害が検出されると、クラスタオペレーション管理コンソール240は、その障害を訂正するように行動する。クラスタオペレーション管理コンソール240がとるアクションは、ハードウェアだけでなく、障害のタイプによっても異なることがあり、また、サーバクラスタが異なると異なることもある。訂正アクションとしては、アドミニストレータに通知すること(例えば、ライトの点滅、オーディオアラーム、電子メールメッセージ、セルホンまたはページャのコール、など)、問題を物理的に訂正することを試みること(例えば、ノードをリブートする、障害を起こしたノードの代わりに別のバックアップノードをアクチベートする、など)などがある。
【0047】
クラスタオペレーション管理コンソール240は、共同ロケーション施設104内にクラスタ境界も設定する。コンソール240によって設定されたクラスタ境界は、あるクラスタ(例えば、クラスタ212)内のノード210が、別のクラスタ(例えば、クラスタ212に属さないクラスタ)と通信するのを防止し、他方では、これと同時に、クラスタ内のノード210がそのクラスタ内の他のノードと通信する能力を妨げないようにする。これらの境界によると、テナントは、ネットワークコネクション216がテナントによって共有されている場合であっても、施設104に置かれた他のテナントのノード210に自分のデータを伝達できないことを知ることができるので、テナントのデータのセキュリティが得られることになる。
【0048】
図示の例では、共同ロケーション施設104の各クラスタは、専用クラスタオペレーション管理コンソールを含んでいる。別の方法として、シングルクラスタオペレーション管理コンソールを複数のサーバクラスタに対応付けて、そのハードウェアオペレーションを管理させることも可能である。別の代替方法によれば、複数のクラスタオペレーション管理コンソールをシングルサーバクラスタに対応付けて、そのハードウェアオペレーションを管理させることも可能である。このような複数コンソールにシングルサーバクラスタを、共有方式で管理させることも、1つのコンソールを、別のコンソールのバックアップとして動作させることもできる(例えば、冗長性をもたせると信頼性が向上するので、保守などが容易化される)。
【0049】
アプリケーションオペレーション管理コンソール242も、共同ロケーション施設104に結合され、通信状態に置かれている。アプリケーションオペレーション管理コンソール242は、共同ロケーション施設104から離れたロケーションに置かれている(つまり、共同ロケーション施設104内ではなく、カスタマーのオフィスに置かれているのが代表的である)。共同ロケーション施設104の各々のサーバクラスタに異なるアプリケーションオペレーション管理コンソール242を対応付けることができるが、別の方法として、シングルサーバクラスタに複数のコンソール242を対応付けることも、複数のサーバクラスタにシングルコンソール242を対応付けることも可能である。アプリケーションオペレーション管理コンソール242は、クラスタ212のためのアプリケーションオペレーション管理層232(図4)を実装しており、クラスタ212内のソフトウェアオペレーションを管理するだけでなく、クラスタ212内のサブ境界をセキュアにすることも担当している。
【0050】
アプリケーションオペレーション管理コンソール242はクラスタ212内のソフトウェアをモニタリングしており、ソフトウェア障害を判別することを試みている。広範囲にわたるソフトウェア障害をモニタリングすることが可能であり、例えば、「ハングアップした」または無応答のアプリケーションプロセスまたはスレッド、アプリケーションプロセスまたはスレッドの実行時エラーなどの、ソフトウェア障害をモニタリングすることができる。ソフトウェアオペレーションのモニタリング方法はさまざまな方法が可能であり(上述したハードウェアオペレーションのモニタリングと同様である)、例えば、アプリケーションオペレーション管理コンソール242が、応答のために特定のルーチンの使用を要求するテストメッセージや制御シグナルをノード210上で実行中の特定プロセスまたはスレッドに送信するとか(無応答または誤った応答は障害が起きたことを示している)、生成のために特定ソフトウェアルーチンの使用を要求するメッセージや制御シグナルをノード210上で実行中のプロセスまたはスレッドからアプリケーションオペレーション管理コンソール242に定期的に送信させるとか(このようなメッセージや制御シグナルを特定時間期間内に受け取らなかったときは、障害が起きたことを示している)、といった方法が可能である。別の方法として、アプリケーションオペレーション管理コンソール242は、どのタイプのソフトウェア障害が発生したかを判別する試みを行うのではなく、障害が発生したことだけを判別するようにすることもできる。
【0051】
ソフトウェア障害が検出されると、アプリケーションオペレーション管理コンソール242は、その障害を訂正するように動作(アクション)する。アプリケーションオペレーション管理コンソール242がとるアクションは、ソフトウェアだけでなく、障害のタイプによっても異なることがあり、また、サーバクラスタが異なると異なることもある。訂正アクションとしては、アドミニストレータに通知すること(例えば、ライトの点滅、オーディオアラーム、電子メールメッセージ、セルホンまたはページャのコール、など)、問題を訂正することを試みること(例えば、ノードをリブートする、ソフトウェアコンポーネントまたはエンジンのイメージを再ロードする、プロセスを終了した後再実行する、など)などがある。
【0052】
従って、ノード210の管理は、ノード210と同一ロケーションに置かれている他のノード(存在する場合)の数に関係なく、複数のマネージャに分散化されている。この多層管理によると、ハードウェアオペレーション管理はアプリケーションオペレーション管理から分離されるので、ノードに対する管理責任を、2つの異なるコンソール(各々は異なるエンティティの制御下に置かれている)に分担させることが可能になる。
【0053】
多層管理アーキテクチャは、他の状況下において、1つまたは2つ以上のコンピュータが共同ロケーション施設に属していない場合であっても、これらのコンピュータを1つまたは2つ以上のリモートロケーションから管理するためにも使用することができる。1つの例として、スモールビジネスは独自のコンピュータを購入し、別の会社にそのコンピュータのハードウェアオペレーションの管理を委託し、場合によっては、さらに別の会社にコンピュータのソフトウェアオペレーションの管理を委託することができる。
【0054】
この例では、スモールビジネス(コンピュータの所有者)は第1管理層になっている。そのあと、所有者はコンピュータをアウトソース(outsourced)ハードウェアオペレータにリースしているが、そのアウトソースハードウェアオペレータは第2管理層になっている。このハードウェアオペレータは、管理対象のコンピュータと一緒にスモールビジネスにローカルに置かれているコントロールコンソールからでも、あるリモートロケーションに置かれているコントロールコンソールからでも、クラスタオペレーション管理コンソール240と同じようにハードウェアオペレーションを管理することが可能になっている。そのあと、ハードウェアオペレータは、コンピュータをアウトソースソフトウェアオペレータにリースしているが、そのアウトソースソフトウェアオペレータは第3管理層になっている。このソフトウェアオペレータは、管理対象のコンピュータと一緒にスモールビジネスにローカルに置かれているコントロールコンソールからでも、あるリモートロケーションに置かれているコントロールコンソールからでも、アプリケーションオペレーション管理コンソール242と同じようにソフトウェアオペレーションを管理することが可能になっている。そのあと、ソフトウェアオペレータは、コンピュータをその所有者に戻すようにリースするので、所有者はコンピュータの「ユーザ」になり、これは第4管理層になっている。通常オペレーション期間は、コンピュータ所有者はこの第4管理層を占有している。しかし、コンピュータ所有者は、例えば、コンピュータ所有者がソフトウェアまたはハードウェアオペレータを変更したいとき、その第1管理層の権利を行使して、ソフトウェアオペレータとハードウェアオペレータとのリースの一方または両方を打ち切ることができる。
【0055】
図5は、本発明のいくつかの実施形態による例示ノードを示す。ノード248は、ノードの外部に存在する他のデバイス(例えば、図3のコンソール240と242)によって管理されている例示ノードである。ノード248は図2のノードにすることも、別のロケーションに置かれたノード(例えば、ビジネスまたはホーム環境におけるコンピュータ)にすることもできる。ノード248は、”BMonitor”と呼ばれるモニタ250、および複数のソフトウェアまたはエンジン252を含み、大容量ストレージデバイス262に結合されている(大容量ストレージデバイスに内蔵されている場合もある)。図示の例では、ノード248は、複数の特権レベル(privilege level)(例えば、x86アーキテクチャプロセッサにおけるリング)をサポートするプロセッサ(1または複数)を搭載したサーバコンピュータになっている。図示の例では、これらの特権レベルはリング(ring)と呼ばれているが、異なるプロセッサアーキテクチャを採用している別の実装では、別の用語が用いられている場合がある。この複数リングによれば、1組の優先レベル(prioritized level)が用意され、ソフトウェアがその優先レベルで実行されるようになっている。なお、優先レベルは4レベル(リング0, 1, 2, 3)になっていることが多い。リング0は、最大特権リングと呼ばれるのが代表的である。リング0で実行されるソフトウェアプロセスは、特権の低いリングで実行されるプロセスよりも、アクセスできる機能(例えば、命令)が多くなっているのが代表的である。さらに、特定のリングで実行されているプロセッサは、優先度の高いリングのコードやデータを変更することができない。図示の例では、BMonitor 250はリング0で実行されるのに対し、エンジン252はリング1(またはリング1および/または3)で実行されている。従って、BMonitor250(リング0で実行されている)のコードまたはデータは、エンジン252(リング1で実行されている)によって直接に変更することができない。むしろ、このような変更は、エンジン252がBMonitor250に変更を依頼することによって(例えば、BMonitor250にメッセージを送るとか、BMonitor250の関数を呼び出すとか、といった方法で)行われる必要がある。BMonitor250をリング0で実装すると、BMonitor250は、BMonitor25によって課されている制限をバイパスしようとする乱暴なあるいは悪意のあるエンジン252から保護されることになる。
【0056】
BMonitor250は、ノード248の基本的制御モジュールである。つまり、これは、ネットワークインタフェースカードとメモリマネージャの両方を制御している(オプションとして、内蔵している場合もある)。ネットワークインタフェースカード(これは、BMonitor250とは別になっていることもあれば、BMonitor250がネットワークインタフェースカードに内蔵されていることもある)を制御すると、BMonitor250は、ノード248との間で送受されるデータを制御することができる。メモリマネージャを制御すると、BMonitor250は、ノード248で実行されているエンジン252に対するメモリの割り振りを制御できるので、乱暴なあるいは悪意のあるエンジンがBMonitor250のオペレーションに干渉するのを防止することができる。
【0057】
ノード248の種々形態がBMonitor250(例えば、ネットワークインタフェースカード)の制御下に置かれていることがあっても、BMonitor250は、その機能の少なくとも一部を、ノード248で実行されているエンジン252が利用できるようにしている。BMonitor250は、データを別のノード248やインターネットに送出するといったように、エンジン252がそこから機能へのアクセスを要求できるようにするインタフェースとなっている(例えば、以下で詳しく説明するコントローラ254を通して)。これらの要求は、メッセージを送信する、関数をコールする、といったように、さまざまな形体にすることができる。
【0058】
BMonitor250は、コントローラ254、ネットワークインタフェース256、1つまたは2つ以上のフィルタ258、および分散ホスト制御プロトコル(Distributed Host Control Protocol DHCP)モジュール260を含んでいる。ネットワークインタフェース256は、共同ロケーション施設104の内部トランスポート媒体211を通してノード248とネットワーク(例えば、図3のネットワークコネクション126)とを結ぶインタフェースとなっている。他のどのノード(および/または他のソース)またはターゲット(例えば、図1のインターネット108に結合されている)との間でデータを送受信できるか(あるいは送受信できないか)は、フィルタ258によって判別される。これらのノードまたは他のソース/ターゲットを判別するには、ネットワークアドレス(例えば、インターネットプロトコル(Internet Protocol IP)アドレス)、ある種のグローバルにユニークな識別子(ID)、ローカルにユニークな識別子(例えば、共同ロケーション施設104が所有するまたは独自の番号付け方式)といった、さまざまな方法で行うことが可能である。
【0059】
フィルタ258は、ノードへのアクセスを完全に制限することも(例えば、ノードとの間でデータの送受信ができない)、ノードへのアクセスを部分的に制限することもできる。部分的アクセス制限は、さまざまな形体にすることができる。例えば、ノードからデータを受信できるが、ノードには送信できない(またはその逆)、といったようにノードを制限することができる。別の例として、あるタイプのデータ(例えば、HTTPなどの、ある種のプロトコルに準拠するコミュニケーション)だけが、ノードとの間で送信および/または受信できるようにノードを制限することもできる。特定タイプのデータに基づくフィルタリングをどのように実装するかは、データをパケットに入れ、そのパケットに含まれるデータのタイプを示すヘッダ情報と一緒にデータを伝達するといった、さまざまな方法が可能である。
【0060】
フィルタ258を、アプリケーションオペレーション管理コンソール242またはクラスタオペレーション管理コンソール240によって追加することができる。図示の例では、クラスタオペレーション管理コンソール240によって追加されたフィルタ(クラスタ境界を設定するために)は、ノードへの完全アクセスを制限しているのに対し(例えば、別のノードへのアクセスはすべてが禁止される)、アプリケーションオペレーション管理コンソール242によって追加されたフィルタ(クラスタ内にサブ境界を設定するために)は、ノードへの完全アクセスまたは部分的アクセスのどちらかを制限することが可能になっている。
【0061】
コントローラ254も、どのフィルタをフィルタ258に対して追加できるかについていくつかの制限を設けている。図示の例では、コントローラ254は、クラスタオペレーション管理コンソール240が、必要とするどのフィルタでも追加できるようにしている(これにより、クラスタの境界が定義される)。他方、コントローラ254はアプリケーションオペレーションを制限して、少なくともコンソール240によって追加されるフィルタだけをアプリケーション管理コンソール242により追加する。コンソール240によって追加されたフィルタより制限度の低いフィルタを追加しようとすると(その場合には、サブ境界はクラスタ境界を越えることになる)、コントローラ254は、そのフィルタを追加することを拒否する(別の方法として、制限度が低くならないようにフィルタを修正することも可能である)。このような制限を設けると、コントローラ254は、アプリケーションオペレーション管理レベルで設定されたサブ境界が、クラスタオペレーション管理レベルで設定されたクラスタ境界を越えるのを防止することができる。
【0062】
コントローラ254は、1つまたは2つ以上のフィルタ258を使用して、ノード248から送信されるおよび/またはノード248によって受信されるデータパケットを制限するように動作する。あるエンジン252を目的としたデータ、またはエンジン252から別のノードに送られるデータは、すべてがネットワークインタフェ−ス256とフィルタ258を経由して渡される。コントローラ254はデータにフィルタ258を適用し、データのターゲット(例えば、そのデータを収めているパケットのヘッダ部分に指定されているのが代表的)を、フィルタ258に指定されている許容された(および/または制限された)ノード(および/またはネットワークアドレス)と比較する。データのターゲットが許容されていることをフィルタ258が示していれば、コントローラ254は、データがターゲットに渡されること(ノード248に送り込まれるか、あるいはノード248から送出されること)を許可する。他方、データのターゲットが許容されないことをフィルタ258が示していれば、コントローラ254は、データがターゲットに渡されるのを禁止する。コントローラ254は、データをターゲットに渡すことができないとの通知をデータのソース(送信元)に戻すこともあれば、データを無視または破棄するだけのこともある。
【0063】
コントローラ254によってフィルタ258をデータに適用すると、サーバクラスタの境界に制限を設けることが可能になる。フィルタ258は、サーバクラスタ(例えば、クラスタ212)内の全ノードのノードアドレスを使用してプログラムすることができる(例えば、図3のアプリケーションオペレーション管理コンソール242によって)。このようにすると、コントローラ254は、サーバクラスタに属していないノードから受信されたデータが、エンジン252に渡されるのを防止し、同様に、サーバクラスタ内のノードとは別のノードから送られてくるデータが送信されるのを防止する。同様に、インターネット108(図1)から受信されたデータはターゲットノード210を特定できるので(例えば、IPアドレスによって)、ターゲットノードとは別のノードのコントローラ254は、データがエンジン252に渡されるのを防止することになる。
【0064】
DHCPモジュール260は分散ホスト制御プロトコル(Distributed Host Control Protocol DHCP)を実装しているので、BMonitor250(従って、ノード210)がDHCPサーバ(例えば、図3のクラスタオペレーション管理コンソール240)からIPアドレスを取得することを可能にしている。ノード210の初期化プロセス期間に、DHCPモジュール260は、DHCPサーバにIPアドレスを要求し、この要求を受けて、DHCPサーバはIPアドレスをモジュール260に与える。DHCPに関する詳細情報は、Microsoft Corporation(Redmond, Washington)から入手することができる。
【0065】
ソフトウェアエンジン252は、広範囲にわたる従来ソフトウェアコンポーネントのどれかを含んでいる。エンジン252の例としては、オペレーティングシステム(例えば、Windows(登録商標) NT)、ロードバランシング(load balancing)サーバコンポーネント(例えば、複数ノード248の処理負荷を平衡化する)、キャッシングサーバコンポーネント(例えば、別のノード248からの、またはインターネット経由で受信したデータおよび/または命令をキャッシュする)、ストレージマネージャコンポーネント(例えば、別のノード248からの、またはインターネット経由で受信したデータのストレージを管理する)、などがある。ある実装では、エンジン252の各々はプロトコルベースのエンジンであるので、エンジン252およびBMonitor250が同じプログラミング言語で書かれていなくても、メッセージおよび/または関数コールを通して、BMonitor250および他のエンジン252と通信する。
【0066】
コントローラ254は、さらに、エンジン252の実行を制御することを担当している。この制御は、エンジン252の実行開始、エンジン252の実行終了、ストレージデバイスからのエンジン252のイメージの再ロード、エンジン252の実行のデバッグ、などのように、さまざまな形体にすることができる。コントローラ254は、これらの制御アクションのどれをとるか、その制御アクションをいつとるか、に関する指示を、図3のアプリケーションオペレーション管理コンソール242から受け取る。従って、エンジン242の制御は、実際には、共同ロケーション施設104でローカルにではなく、リモートのアプリケーションオペレーション管理コンソール242によって管理される。コントローラ254は、アプリケーションオペレーション管理コンソール242が、フィルタセット258からどのフィルタを追加するか(および/または除去するか)を、そこから指定できるインタフェースともなっている。
【0067】
コントローラ254は、図3のクラスタオペレーション管理コンソール240が、そこからコマンドをコントローラ254に渡すことができるインタフェースも備えている。ノードをリブートする、ノードをシャットダウンする、ノードを低電力ステートに(例えば、サスペンドまたはスタンバイステートに)する、クラスタ境界を変更する、暗号鍵を変更する、といったように、種々タイプのハードウェアオペレーション中心のコマンドを、クラスタオペレーション管理コンソール240からコントローラ254に伝達することが可能になっている。
【0068】
コントローラ254は、さらに、BMonitor250に対して暗号化サポートを行うので、データを大容量ストレージデバイス262(例えば、磁気ディスク、光ディスクなど)にセキュアにストアしておくこと、およびノード248とオペレーション管理コンソール(例えば、図3のコンソール240または242)の間でセキュアコミュニケーションを行うことを可能にしている。コントローラ254は複数の暗号鍵を保存しており、その中には、クラスタオペレーション管理コンソール240からノード248にアクセスするランドロード用の鍵(「ランドロード鍵」と呼ぶことにする)、アプリケーションオペレーションコンソール242からノード248にアクセスするノード248の借主用の鍵(「テナント鍵」と呼ぶことにする)、および大容量ストレージデバイス262にデータをセキュアにストアするためにBMonitor250が使用する鍵(「ディスク鍵」と呼ぶことにする)が含まれている。
【0069】
BMonitor250は公開鍵暗号化手法(public key cryptography)を利用して、ノード248と管理コンソール(例えば、コンソール240と242)の間でセキュアコミュニケーションが行われるようにしている。この公開鍵暗号化手法は、公開鍵(public key)と秘密鍵(private key)の両方を含む鍵ペア(key pair)と暗号化アルゴリズム(encryption algorithm)をベースにしている。暗号化アルゴリズムは、公開鍵に基づいてデータを暗号化し、秘密鍵がなければデータが効率的に解読されないようにする。従って、公開鍵保持者からのコミュニケーションは、公開鍵を使用して暗号化されるので、秘密鍵所有者だけがそのコミュニケーションを解読できるようにしている。公開鍵暗号化手法は、周知のRSA(Rivest, Shamir, Adelman)暗号化手法のように、さまざまなものが使用可能である。暗号化手法の基礎入門書として、Bruce Schneir著「応用暗号化手法:プロトコル、アルゴリズム、およびCによるソースコード(Applied Cryptography: Protocols, Algorithms, and Source Code in C)」、John Wiley & Sons、初版著作権所有1994(または第2版著作権所有1996)がある。
【0070】
BMonitor250は、ランドロードとテナントの両者のための公開/秘密鍵ペアを含むように初期化されている。これらの鍵ペアはBMonitor250によって生成できるが、別の方法として、他のコンポーネントが生成して、BMonitor250にストアしておくこともできる(この場合、他のコンポーネントは鍵ペアの知識を壊さないものとして信頼されている)。本明細書では、Uは公開鍵を示し、Rは秘密鍵を示すように使用されている。ランドロード用の公開/秘密鍵ペア264は(UL, RL)と呼ばれ、テナント用の公開/秘密鍵ペア266は(UT, RT)と呼ばれる。BMonitor250は、公開鍵ULとUTをランドロードが利用できるようにしているが、秘密鍵RLとRT は秘密に保っている。図示の例では、BMonitor250は、秘密鍵RLとRT を公開することがないので、ランドロードだけでなく、テナントも、公開鍵を使用して暗号化した情報(例えば、それぞれ、図3のクラスタオペレーション管理コンソール240とアプリケーションオペレーション管理コンソール242を通して)が、BMonitor250以外の、他のどのエンティティによっても解読されないことが保証される。
【0071】
ランドロードに公開鍵ULとUTが与えられると、ランドロードは特定のテナントにノード210を割り当て、そのテナントに公開鍵UTを与えることができる。この公開鍵UTを使用すると、テナントは、BMonitor250だけが解読できる(秘密鍵RTを使用して)、BMonitor250へのコミュニケーションを解読することができる。必ずしも必要ではないが、テナントにとって賢明である初期ステップでは、BMonitor250が新しい公開/秘密鍵ペア(UT, RT)を生成することをBMonitor250に要求するようになっている。この要求を受けて、BMonitor250の鍵ジェネレータ(key generator)268は、さまざまな周知方法のいずれかで新しい公開/秘密鍵ペアを生成し、その新鍵ペアを鍵ペア266としてストアし、新公開鍵UTをテナントに送り返す。新鍵ペアを生成すると、テナントは、ランドロードを含めて、どの他のエンティティにも、テナントの公開鍵UTが気づかれないことが保証される。さらに、テナントは、新しい鍵ペアを別の時期に生成させることも可能になっている。
【0072】
BMonitor250は、どのエンティティが新しい公開/秘密鍵ペアを要求できるかについて制約を設けている。テナントは、新しいテナント公開/秘密鍵ペアを要求できるが、新しいランドロード公開/秘密鍵ペアを要求することはできない。他方、ランドロードは、新しいランドロード公開/秘密鍵ペアだけでなく、新しいテナント公開/秘密鍵ペアも要求することができる。新しい公開/秘密鍵ペアの要求を受け取ると、コントローラ254は、要求者がテナントであるか、ランドロードであるかを確かめてから(例えば、リモートログインプロシージャ、パスワード検証、要求者がノード248と通信している、あるいは結合されている仕方、などに基づいて)、新鍵ペアを生成するようにしている。
【0073】
BMonitor250と、ランドロードおよびテナント制御デバイス(例えば、それぞれオペレーション管理コンソール240と242)との間の双方向コミュニケーションをセキュアに保つために、ランドロードとテナント制御デバイスも、公開/秘密鍵ペアを生成すること(さもなければ、公開/秘密鍵ペアが割り当てられること)が可能になっている。そのような場合には、コンソール240と250は、セキュアに通信したいと望んでいる(あるいはそのように期待している)相手側ノード248のBMonitor250にそれぞれの公開鍵を伝えることができる。コンソールの公開鍵がBMonitor250に知らされると、BMonitor250は、そのコンソールへのコミュニケーションを、その公開鍵を使用して暗号化できるので、秘密鍵をもつコンソール以外の他のデバイスがそのコミュニケーションを読み取ることが防止される。
【0074】
BMonitor250はディスク鍵270も保持しており、これは、1つまたは2つ以上の対称鍵272と274を使用して生成される(ここで、対称鍵(symmetric keys)とは、秘密鍵暗号化で使用される秘密鍵のことである)。対称鍵でもあるディスク鍵270は、情報を大容量ストレージデバイス262にストアするためにBMonitor250によって使用される。BMonitor250はディスク鍵270をセキュアに保っているので、これは、ノード248が大容量ストレージデバイス262にストアするデータを暗号化し、ノード248が大容量ストレージデバイス262から取り出すデータを解読するためにだけ使用される(従って、ランドロードとテナントを含めて、他のどのエンティティにも、ディスク鍵270を知らせないで済むようになっている)。別の方法として、ランドロードまたはテナントにディスク鍵270を知らせることも、あるいはディスク鍵270のベースとなっている別の鍵を知らせることも可能である。
【0075】
ディスク鍵270を使用すると、大容量ストレージデバイス262にストアされているデータは、それを暗号化したノード248だけが解読でき、他のどのノードまたはデバイスも解読できないことが保証される。従って、例えば、大容量ストレージデバイス262が除去されているような場合に、デバイス262上のデータを読み取る試みが行われると、その試みは失敗することになる。BMonitor250は、データのソースに関係なく、大容量ストレージデバイス262にストアされているデータを、ディスク鍵270を使用して暗号化する。例えば、データのソースとしては、テナントのカスタマーが使用しているクライアントデバイス(例えば、図1のクライアント102)、オペレーション管理コンソール(例えば、図3のコンソール242)などがある。
【0076】
ディスク鍵270は、対称鍵272と274に基づいて生成される。本明細書では、Kは対称鍵を指すために使用されているので、KLはランドロード対称鍵(鍵272)を指し、KTはテナント対称鍵(鍵274)を指している。個別鍵272と274を生成する方法としては、従来のさまざまな方法が可能である(例えば、乱数ジェネレータに基づいて)。ディスク鍵270はKL鍵が単独である場合と、KL鍵とKT鍵の組み合わせである場合とがある。ノード210が現在テナントにリースされていない場合や、テナントがKT鍵を設定していなかった場合には、コントローラ254は、KL鍵をディスク鍵270として保存している。しかし、ノード248がテナントにリースされていて、テナントがKT鍵を設定している場合には、ディスク鍵270はKL鍵とKT鍵の組み合わせになっている。KL鍵とKT鍵の組み合わせはさまざまなものが可能であり、ある実装では、一方の鍵を使用して他方の鍵を暗号化するように組み合わされており、暗号化された鍵がディスク鍵270になっている。従って、大容量ストレージデバイス262にストアされたデータは、テナントが対称鍵KTを設定していない場合であっても、常に暗号化されている。さらに、ランドロードとテナントがそれぞれの鍵KLとKTを知っている場合には、これらの鍵を組み合わせると、データを暗号化するために使用できる鍵が得られるので、ランドロードとテナントのどちらも、個別的にデータを解読することができないことになる。
【0077】
図示の例では、初期時には、ノード248に対称鍵KLとKTが与えられていない。ランドロードはノード248を初期化するとき、新しい鍵KLを要求し(例えば、図3のクラスタオペレーション管理コンソール240を通して)、この要求に応答して、鍵ジェネレータ268は新しい鍵を生成し、コントローラ254はこの新生成の鍵を鍵272として保存しておく。同様に、テナントが初めてノード248をリースするとき、ノード248にはまだテナント対称鍵KTが与えられていない。テナントは、新しい鍵KTの要求を通知することができ(例えば、図3のアプリケーションオペレーション管理コンソール242を通して)、この要求に応答して、鍵ジェネレータ268は新しい鍵を生成し、コントローラ254はこの新生成の鍵を鍵274として保存しておく。さらに、新しい鍵KTまたはKLが生成されるたびに、コントローラ254は新しいディスク鍵270を生成する。
【0078】
図5にはランドロード鍵とテナント鍵(KLとKT)だけが示されているが、別の方法として、追加の対称鍵(例えば、サブテナント、サブランドロードなどからの)を組み合わせて、ディスク鍵270を得ることも可能である。例えば、3つの対称鍵がある場合、第1の鍵を第2の鍵で暗号化し、その結果を第3の鍵で暗号化するように組み合わせると、ディスク鍵270を得ることができる。例えば、サブテナント用に追加の対称鍵を使用することも可能である。
【0079】
ランドロードは、テナント鍵ペアであっても、ランドロード鍵ペアであっても、新しい公開/秘密鍵ペアをBMonitor250に要求することもできる。新鍵ペアを要求すると、例えば、ランドロードは、ノード248を一方のテナントから別のテナントに再割り当てすることができる。1つの例として、テナントがノード248を必要としなくなった場合(またはノードの必要リース料の支払いを行わない場合)、ランドロードはBMonitor250と通信して(例えば、図3のコンソール240を通して)テナントの公開/秘密鍵ペアを変更することができる(変更すると、テナントは新鍵をもっていないので、テナントからのどのコミュニケーションも、BMonitor250によって解読されることが禁止されることになる)。さらに、ランドロードは、ランドロード用の新しい公開/秘密鍵ペアを要求することも可能である。これは、特定のインターバルで行うことも、ランドロードが新鍵を必要としたときにだけ行うこともできる(例えば、安全上の配慮から)。
【0080】
ある実装では、BMonitor250は、新しいランドロード秘密鍵RLを生成するたびに、ディスク鍵270とランドロード対称鍵KLの両方を破棄し、新しい鍵KL(および新しいディスク鍵270)を生成する。鍵KLとディスク鍵270を置き換えると(および旧鍵の記録をとっておかないと)、ランドロードは、その鍵を変更した後、ノード210に以前にストアされていたどのテナントデータも、アクセスされないことを保証することができる。従って、ランドロードは、テナントがノード248に以前にストアされていたデータにアクセスするのを禁止したいときだけ、新しい公開/秘密鍵ペアを生成するようにする注意が必要である。
【0081】
さらに、BMonitor250は、新しいテナント秘密鍵RTを生成するたびに、ディスク鍵270とテナント対称鍵KTの両方を、新しく生成した鍵KT(および新しいディスク鍵270)で置き換えることも可能である。このようにすると、テナントはデータの暗号化方法を望み通りに変更できるので、ノード248にストアされているデータのセキュリティが強化されることになる。しかし、BMonitor250が旧鍵KTとディスク鍵270を破棄したときは、テナントは、ノードに以前にストアされていたデータが必要でなくなったときだけ(例えば、別の場所にバックアップがとられている)、新しいテナント秘密鍵RTを要求するようにする注意が必要である。
【0082】
なお、ここで注意すべきことは、異なるノード248には異なる鍵(鍵264、266、および270)が与えられるのが代表的であることである。別の方法として、複数のノードに同じ鍵(例えば、鍵270)を使用させることも可能である。しかし、そのような場合は、鍵の伝達(例えば、ノード248間の)は、セキュリティが危険にさらされないようにセキュアに行われるようにする配慮が必要である。例えば、追加の公開/秘密鍵ペアを、2つのノード248のBMonitor250に使用させると、相互間の情報の伝達がセキュアに行われることになる。
【0083】
従って、権利が保証され、行使されるリースハードウェア環境を設定することができる。ランドロードは、ノードを複数の異なるテナントにリースし、異なるテナントにリースされたノードが相互に通信するのを防止する境界を設定することができる。テナントは、リースしたノードに、他のテナントではなく、管理のために自分だけがアクセスできること、および他のだれもがアクセスできないようにデータがセキュアにノードにストアされること(たとえテナントがそのハードウェア使用を放棄または縮小した場合でも)が保証されることになる。さらに、ランドロードとテナントのどちらも、セキュアにストアされたデータがテナントのいずれかによって危険にさらされることなく、ランドロードが機器を移動し、どのノードが個人に割り当てられているかを変更し、ハードウェア(例えば、大容量ストレージデバイス)を除去できる、といったが保証が得られることになる。
【0084】
図6は、本発明のいくつかの実施形態による暗号鍵生成と配布のための例示プロセスを示す。初めに、コンピュータ(例えば、図5のノード248)は、ランドロードとテナントの両方に対する公開/秘密鍵ペアを特定する(ステップ280)。この特定は、以前に生成された鍵ペアにアクセスすることによって行うことも、コンピュータ自身が新しい鍵を生成することによって行うこともできる。コンピュータは、ランドロード鍵ペアからのランドロード秘密鍵とテナント鍵ペアからのテナント秘密鍵の両方を秘密に保っているが、ランドロード鍵ペアからのランドロード公開鍵とテナント鍵ペアからのテナント公開鍵をランドロードに転送する。図示の例では、ランドロードは、図3のクラスタオペレーション管理コンソール240で表されているが、これとは別に、他のデバイスまたはエンティティでランドロードを表すことも可能である。
【0085】
そのあと、ランドロードはテナント公開鍵をテナントに転送する(ステップ248)。図示の例では、テナントは図3のアプリケーションオペレーション管理コンソール242で表されているが、これとは別に、他のデバイスまたはエンティティでテナントを表すことも可能である。そのあと、テナントはコンピュータと通信して、新しいテナント鍵ペアを生成する(ステップ286)。コンピュータは、新しい鍵ペアからのテナント秘密鍵を秘密に保ち、その新鍵ペアからのテナント公開鍵をテナントに転送する(ステップ288)。そのあと、テナントは、新しいテナント公開鍵を使用してセキュアメッセージ(データ、指示、要求など)をコンピュータに伝達することが可能になり(ステップ290)、他方、ランドロードは、ランドロード公開鍵を使用してセキュアメッセージをコンピュータに伝達することが可能になる(ステップ292)。
【0086】
図7は、本発明のいくつかの実施形態によるクラスタオペレーション管理コンソールのオペレーションのための例示プロセスを示す。図7のプロセスは、共同ロケーション施設に置かれたクラスタオペレーション管理コンソールに実装され、ソフトウェアで実行されることが可能になっている。
【0087】
初めに、クラスタオペレーション管理コンソールは、サーバクラスタ内のノードを、サーバクラスタの境界(存在する場合)をもつ構成にする(ステップ300)。この構成は、クラスタオペレーション管理コンソールが、フィルタをサーバクラスタ(1つまたは複数)内のノードに伝えることによって行われる。
【0088】
そのあと、サーバクラスタ内のハードウェアオペレーションは、ハードウェア障害の有無について絶えずモニタリングされる(ステップ302と304)。ハードウェア障害が検出されると、訂正アクションがとられ(ステップ306)、ハードウェアオペレーションのモニタリングが継続される。上述したように、さまざまな訂正アクションをとることが可能である。なお、訂正アクションに基づいて(あるいは別の時期に)、ノードは新しいクラスタ境界をもつように再構成することが可能である(ステップ300)。
【0089】
図8は、本発明のいくつかの実施形態によるアプリケーションオペレーション管理コンソールのオペレーションのための例示プロセスを示す。図8のプロセスは、共同ロケーション施設から離れた個所に置かれているアプリケーションオペレーション管理コンソールに実装され、ソフトウェアで実行されることが可能になっている。
【0090】
初めに、アプリケーションオペレーション管理コンソールは、サーバクラスタ内のノードを、サーバクラスタのサブ境界(存在する場合)をもつ構成にする(ステップ320)。この構成は、アプリケーションオペレーション管理コンソールが、フィルタをサーバクラスタ(1つまたは複数)内のノードに伝えることによって行われる。
【0091】
そのあと、サーバクラスタ内のソフトウェアオペレーションは、ソフトウェア障害が検出されるまで絶えずモニタリングされる(ステップ322と324)。このソフトウェア障害としては、特定ソフトウェアエンジンの障害(例えば、そのエンジンに障害が起きたが、他のエンジンはそのまま稼動している)、あるいはノード全体の障害(例えば、ノード全体がハングアップしている)がある。ソフトウェア障害が検出されると、訂正アクションがとられ(ステップ326)、ソフトウェアオペレーションのモニタリングが継続される。上述したように、さまざまな訂正アクションをとることが可能である。なお、訂正アクションに基づいて(あるいはオペレーション中の別の時期に)、サーバコンピュータは、新しいサブ境界をもつように再構成することが可能である(ステップ320)。
【0092】
結論
上述してきた説明では、構造上の特徴および/または方法ステップに特有の用語が用いられているが、当然に理解されるように、請求項に明確されている本発明は、上述してきた特定の特徴やステップに限定されるものではない。むしろ、特定の特徴とステップは、本発明を実現するための例示形態として開示されたものである。
【符号の説明】
【0093】
102 クライアントコンピュータ
104 共同ロケーション施設
106 サーバコンピュータ(サーバクラスタ)
108 インターネット
210 ノード
230 クラスタオペレーション管理層
232 アプリケーションオペレーション管理層
234 アプリケーション開発層
240 クラスタオペレーション管理コンソール
242 アプリケーションオペレーション管理コンソール

【特許請求の範囲】
【請求項1】
該方法を実行するための複数の命令をメモリに格納するステップと、
プロセッサ上で当該命令を実行するステップを有し、
前記命令はプロセッサに、
共同ロケーション施設に配置された複数のコンピュータを前記共同ロケーション施設に配置されたランドロードオペレーション管理コンソールを介して複数のクラスタに分割するステップであって、前記ランドロードオペレーション管理コンソールは前記共同ロケーション施設に配置された複数のコンピュータのハードウェアオペレーションをモニタすると共に制御する、分割するステップと、
複数のテナントに対して前記複数のクラスタをリースするステップと、
前記テナントにリースされたクラスタ内の複数のコンピュータと前記テナントのアプリケーションオペレーション管理コンソールの間で安全な通信チャネルを確立するステップと
を備え、前記アプリケーションオペレーション管理コンソールは、
前記共同ロケーション施設からは離れて配置され、
クラスタの境界を設定して、個別の前記クラスタ内でコンピュータが前記個別のクラスタ内の他のコンピュータと通信することを制限し、および
前記テナントにリースされた複数のクラスタ上で実行されているアプリケーションをモニターし、
前記ランドロードオペレーション管理コンソールによる前記ハードウェアオペレーションのモニタリングおよび制御は前記アプリケーションオペレーション管理コンソールによる、前記テナントにリースされた複数のクラスタ上で実行されているアプリケーションのモニタリング処理とは独立に実行され、
さらに、前記テナントにリースされたクラスタ内の複数のコンピュータと前記テナントのランドロードオペレーション管理コンソールの間で安全な通信チャネルを確立するステップを有し、
前記複数のテナントの各々について、前記テナントにリースされたクラスタ内の複数のコンピュータと、前記テナントのアプリケーションオペレーション管理コンソールとの間の安全な通信チャンネルは第1の公開/秘密鍵のペアを使用して確立され、前記テナントにリースされたクラスタ内の複数のコンピュータと、前記テナントのランドロードオペレーション管理コンソールとの間の安全な通信チャンネルは第2の公開/秘密鍵のペアを使用して確立されることを特徴とする方法。
【請求項2】
クラスタの境界を設定し、1つのクラスタの中の複数のコンピュータが複数のクラスタの中の他の他のコンピュータと通信することを阻止することを特徴とする請求項1に記載の方法。
【請求項3】
前記リースするステップは複数のテナントの異なる1つ各クラスタをリースするテップを有し、前記複数のコンピュータの各々は前記複数のクラスタの1つだけに含まれることを特徴とする請求項1に記載の方法
【請求項4】
複数の命令を記録した1つまたは複数のコンピュータ読み取り可能媒体であって、
前記複数の命令は、コンピュータの1つまたは複数のプロセッサにより実行されたときに、前記1つまたは複数のプロセッサに、
共同ロケーション施設に配置された複数のコンピュータを前記共同ロケーション施設に配置されたランドロードオペレーション管理コンソールを介して複数のクラスタに分割するステップであって、前記ランドロードオペレーション管理コンソールは前記共同ロケーション施設に配置された複数のコンピュータのハードウェアオペレーションをモニタすると共に制御する、分割するステップと、
前記テナントにリースされたクラスタ内の複数のコンピュータと前記テナントのアプリケーションオペレーション管理コンソールの間で安全な通信チャネルを確立するステップと
を実行させ、前記アプリケーションオペレーション管理コンソールは、
前記共同ロケーション施設からは離れて配置され、
クラスタの境界を設定して、個別の前記クラスタ内でコンピュータが前記個別のクラスタ内の他のコンピュータと通信することを制限し、および
前記テナントにリースされた複数のクラスタ上で実行されているアプリケーションをモニターし、
前記ランドロードオペレーション管理コンソールによる前記ハードウェアオペレーションのモニタリングおよび制御は前記アプリケーションオペレーション管理コンソールによる、前記テナントにリースされた複数のクラスタ上で実行されているアプリケーションのモニタリング処理とは独立に実行され、
前記複数の命令は、さらに、1つまたは複数のプロセッサに、
前記テナントにリースされた複数のクラスタと前記テナントのランドロードオペレーション管理コンソールの間で安全な通信チャネルを確立するステップを有し、
前記テナントにリースされた複数のクラスタと、前記テナントのアプリケーションオペレーション管理コンソールとの間の安全な通信チャンネルは第1の公開/秘密鍵のペアを使用して確立され、前記テナントにリースされた複数のクラスタと、前記テナントのランドロードオペレーション管理コンソールとの間の安全な通信チャンネルは第2の公開/秘密鍵のペアを使用して確立されることを特徴とする1つまたは複数のコンピュータ読み取り可能媒体。
【請求項5】
前記複数の命令は前記プロセッサに、
クラスタの境界を設定させ、1つのクラスタの中の複数のコンピュータが複数のクラスタの中の他の他のコンピュータと通信することを阻止することを特徴とする請求項4に記載の1つまたは複数のコンピュータ読み取り可能媒体。
【請求項6】
前記複数のクラスタは複数のテナントの異なる1つにリースされることを特徴とする請求項4に記載の1つまたは複数のコンピュータ読み取り可能媒体。
【請求項7】
プロセッサと
該プロセッサに結合され、複数の命令を記録したコンピュータ読み取り可能媒体であって、前記複数の命令は、前記プロセッサにより実行されたときに、前記プロセッサに、
共同ロケーション施設に配置された複数のコンピュータを前記共同ロケーション施設に配置されたランドロードオペレーション管理コンソールを介して複数のクラスタに分割するステップであって、前記ランドロードオペレーション管理コンソールは前記共同ロケーション施設に配置された複数のコンピュータのハードウェアオペレーションをモニタすると共に制御する、分割するステップと、
前記テナントにリースされたクラスタ内の複数のコンピュータと前記テナントのアプリケーションオペレーション管理コンソールの間で安全な通信チャネルを確立するステップと
を実行させ、前記アプリケーションオペレーション管理コンソールは、
前記共同ロケーション施設からは離れて配置され、
クラスタの境界を設定して、個別の前記クラスタ内でコンピュータが前記個別のクラスタ内の他のコンピュータと通信することを制限し、および
前記テナントにリースされた複数のクラスタ上で実行されているアプリケーションをモニターし、
前記ランドロードオペレーション管理コンソールによる前記ハードウェアオペレーションのモニタリングおよび制御は前記アプリケーションオペレーション管理コンソールによる、前記テナントにリースされた複数のクラスタ上で実行されているアプリケーションのモニタリング処理とは独立に実行され、
前記複数の命令は、さらに、前記プロセッサに、
前記テナントにリースされた複数のクラスタと前記テナントのランドロードオペレーション管理コンソールの間で安全な通信チャネルを確立するステップを実行させ、
前記テナントにリースされた複数のクラスタと、前記テナントのアプリケーションオペレーション管理コンソールとの間の安全な通信チャンネルは第1の公開/秘密鍵のペアを使用して確立され、前記テナントにリースされた複数のクラスタと、前記テナントのランドロードオペレーション管理コンソールとの間の安全な通信チャンネルは第2の公開/秘密鍵のペアを使用して確立されるコンピュータ読み取り可能媒体と
を備えたことを特徴とするコンピュータ。
【請求項8】
前記複数の命令は前記プロセッサに、
クラスタの境界を設定させ、1つのクラスタの中の複数のコンピュータが複数のクラスタの中の他の他のコンピュータと通信することを阻止することを特徴とする請求項7に記載のコンピュータ。
【請求項9】
前記複数のクラスタは複数のテナントの異なる1つにリースされることを特徴とする請求項7に記載のコンピュータ
【請求項10】
前記コンピュータ読み取り可能媒体は1つまたは複数のディスクを含むことを特徴とする請求項7に記載のコンピュータ。
【請求項11】
前記コンピュータ読み取り可能媒体は1つまたは複数のメモリを含むことを特徴とする請求項7に記載のコンピュータ。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate


【公開番号】特開2011−55523(P2011−55523A)
【公開日】平成23年3月17日(2011.3.17)
【国際特許分類】
【出願番号】特願2010−227443(P2010−227443)
【出願日】平成22年10月7日(2010.10.7)
【分割の表示】特願2007−117568(P2007−117568)の分割
【原出願日】平成13年10月24日(2001.10.24)
【出願人】(500046438)マイクロソフト コーポレーション (3,165)
【Fターム(参考)】