(57)【要約】処理システムにおける第一の仮想機械（VM）を使って第一のサーバー・ブレードをエミュレートでき、前記処理システムにおける第二のVMが第二のサーバー・ブレードをエミュレートできる。エミュレートされたサーバー・ブレードは仮想サーバー・ブレードと称されうる。前記処理システムにおける仮想機械モニタ（VMM）は、前記仮想サーバー・ブレードの少なくとも一つへの通信チャネルを提供しうる。他の実施形態が記載および請求される。
2008523512.tif 000002
【特許請求の範囲】
【請求項１】
処理システムにおいて第一の仮想機械（VM）を使って第一のサーバー・ブレードをエミュレートする段階と；
前記処理システムにおいて第二のVMを使って第二のサーバー・ブレードをエミュレートする段階と；
前記処理システムにおいて仮想機械モニタ（VMM）を使って、前記エミュレートされたサーバー・ブレードの少なくとも一つへの通信チャネルを提供する段階、
とを有する方法。
【請求項２】
前記VMM内で、前記エミュレートされたサーバー・ブレードを管理するための仮想ブレード監督手段を実行する段階をさらに有する、
請求項１記載の方法。
【請求項３】
前記VMMにおいて、前記エミュレートされたサーバー・ブレードの一つの動作状態に係るデータを受信する段階と；
前記エミュレートされたサーバー・ブレードの動作状態に係る前記データを、前記VMMからリモート・データ処理システムに転送する段階、
とをさらに有する、請求項１記載の方法。
【請求項４】
前記エミュレートされたサーバー・ブレードを管理するために、前記VMMを使ってシャーシ管理モジュール（CMM）をエミュレートする段階をさらに有する、
請求項１記載の方法。
【請求項５】
前記処理システムにおいてVMMを使って、前記エミュレートされたサーバー・ブレードの少なくとも一つへの通信チャネルを提供する前記段階が：
前記VMMを使って、前記エミュレートされたサーバー・ブレードの少なくとも一つについて帯域外通信チャネルをエミュレートすることを含む、
請求項１記載の方法。
【請求項６】
前記エミュレートされた帯域外通信チャネルを使って、前記エミュレートされたサーバー・ブレードの一つの動作状態に係るデータをサーバー・ブレード管理ソフトウェアに通信する段階をさらに有する、
請求項５記載の方法。
【請求項７】
前記VMMを使って、前記エミュレートされたサーバー・ブレードの少なくとも一つについてベースボード管理コントローラ（BMC）をエミュレートする段階をさらに有する、
請求項１記載の方法。
【請求項８】
前記エミュレートされたBMCの一つから状態データを受信する段階をさらに有する請求項７記載の方法であって、前記状態データが、前記エミュレートされたBMCに関連付けられたエミュレートされたサーバー・ブレードの動作状態に係るデータである方法。
【請求項９】
前記エミュレートされたBMCからデータを受信するのに反応して、前記エミュレートされたサーバー・ブレードの一つまたは複数の動作パラメータを自動的に修正する段階をさらに有する、
請求項８記載の方法。
【請求項１０】
前記処理システムに付随するポリシー・データベースからポリシー・データを取得する段階と；
前記ポリシー・データベースからのポリシー・データに従って前記エミュレートされたサーバー・ブレードの少なくとも一つを構成設定する段階、
とをさらに有する、請求項１記載の方法。
【請求項１１】
機械アクセス可能媒体と；
前記機械アクセス可能媒体に応答するプロセッサと；
前記プロセッサ内の一つまたは複数の処理コアと；
前記機械アクセス可能媒体にエンコードされた命令とを有する処理システムであって、前記命令は、前記プロセッサによって実行されたときに：
当該処理システムにおいて第一の仮想機械（VM）を使って第一のサーバー・ブレードをエミュレートする段階と；
当該処理システムにおいて第二のVMを使って第二のサーバー・ブレードをエミュレートする段階と；
当該処理システムにおいて仮想機械モニタ（VMM）を使って、前記エミュレートされたサーバー・ブレードの少なくとも一つへの通信チャネルを提供する段階、
とを含む動作を実行する、処理システム。
【請求項１２】
前記命令によって実行される動作がさらに：
前記VMMにおいて、前記エミュレートされたサーバー・ブレードの一つの動作状態に係るデータを受信する段階と；
前記エミュレートされたサーバー・ブレードの動作状態に係る前記データを、前記VMMからリモート・データ処理システムに転送する段階、
とをさらに含む、請求項１１記載の処理システム。
【請求項１３】
前記命令によって実行される動作がさらに：
前記エミュレートされたサーバー・ブレードを管理するために、前記VMMを使ってシャーシ管理モジュール（CMM）をエミュレートする段階
をさらに含む、請求項１１記載の処理システム。
【請求項１４】
当該処理システムにおいてVMMを使って、前記エミュレートされたサーバー・ブレードの少なくとも一つへの通信チャネルを提供する前記段階が：
前記VMMを使って、前記エミュレートされたサーバー・ブレードの少なくとも一つについて帯域外通信チャネルをエミュレートすることを含む、
請求項１１記載の処理システム。
【請求項１５】
前記命令によって実行される動作がさらに：
前記エミュレートされた帯域外通信チャネルを使って、前記エミュレートされたサーバー・ブレードの一つの動作状態に係るデータをサーバー・ブレード管理ソフトウェアに通信する段階をさらに有する、
請求項１４記載の処理システム。
【請求項１６】
前記命令によって実行される動作がさらに：
前記VMMを使って、前記エミュレートされたサーバー・ブレードの少なくとも一つについてベースボード管理コントローラ（BMC）をエミュレートする段階をさらに含む、
請求項１１記載の処理システム。
【請求項１７】
前記命令によって実行される動作がさらに：
前記エミュレートされたBMCの一つまたは複数から状態データを受信する段階をさらに含む請求項１６記載の処理システムであって、前記状態データが、対応するエミュレートされたサーバー・ブレードの動作状態に係るデータである、処理システム。
【請求項１８】
前記命令によって実行される動作がさらに：
前記エミュレートされたBMCから状態データを受信するのに反応して、前記エミュレートされたサーバー・ブレードの一つまたは複数の動作パラメータを自動的に修正する段階をさらに含む、
請求項１７記載の処理システム。
【請求項１９】
前記命令によって実行される動作がさらに：
当該処理システムに付随するポリシー・データベースからポリシー・データを取得する段階と；
前記ポリシー・データベースからのポリシー・データに従って前記エミュレートされたサーバー・ブレードの少なくとも一つを構成設定する段階、
とをさらに含む、請求項１１記載の処理システム。
【請求項２０】
機械アクセス可能媒体と；
前記機械アクセス可能媒体にエンコードされた命令とを有する装置であって、前記命令は、処理システムによって実行されたときに：
前記処理システムにおいて第一の仮想機械（VM）を使って第一のサーバー・ブレードをエミュレートする段階と；
前記処理システムにおいて第二のVMを使って第二のサーバー・ブレードをエミュレートする段階と；
前記処理システムにおいて仮想機械モニタ（VMM）を使って、前記エミュレートされたサーバー・ブレードの少なくとも一つへの通信チャネルを提供する段階、
とを含む動作を実行する、装置。
【請求項２１】
前記命令によって実行される動作がさらに：
前記VMMにおいて、前記エミュレートされたサーバー・ブレードの一つの動作状態に係るデータを受信する段階と；
前記エミュレートされたサーバー・ブレードの動作状態に係る前記データを、前記VMMからリモート・データ処理システムに転送する段階、
とをさらに含む、請求項２０記載の装置。
【請求項２２】
前記命令によって実行される動作がさらに：
前記エミュレートされたサーバー・ブレードを管理するために、前記VMMを使ってシャーシ管理モジュール（CMM）をエミュレートする段階
をさらに含む、請求項２０記載の装置。
【請求項２３】
前記処理システムにおいてVMMを使って、前記エミュレートされたサーバー・ブレードの少なくとも一つへの通信チャネルを提供する前記段階が：
前記VMMを使って、前記エミュレートされたサーバー・ブレードの少なくとも一つについて帯域外通信チャネルをエミュレートすることを含む、
請求項２０記載の装置。
【請求項２４】
前記命令によって実行される動作がさらに：
前記エミュレートされた帯域外通信チャネルを使って、前記エミュレートされたサーバー・ブレードの一つの動作状態に係るデータをサーバー・ブレード管理ソフトウェアに通信する段階をさらに有する、
請求項２３記載の装置。
【請求項２５】
前記命令によって実行される動作がさらに：
前記VMMを使って、前記エミュレートされたサーバー・ブレードの少なくとも一つについてベースボード管理コントローラ（BMC）をエミュレートする段階をさらに含む、
請求項２０記載の装置。
【請求項２６】
前記命令によって実行される動作がさらに：
前記エミュレートされたBMCの一つまたは複数から状態データを受信する段階をさらに含む請求項２５記載の装置であって、前記状態データが、対応するエミュレートされたサーバー・ブレードの動作状態に係るデータである、装置。
【請求項２７】
前記命令によって実行される動作がさらに：
前記エミュレートされたBMCから状態データを受信するのに反応して、前記エミュレートされたサーバー・ブレードの一つまたは複数の動作パラメータを自動的に修正する段階をさらに含む、
請求項２６記載の装置。
【請求項２８】
前記命令によって実行される動作がさらに：
前記処理システムに付随するポリシー・データベースからポリシー・データを取得する段階と；
前記ポリシー・データベースからのポリシー・データに従って前記エミュレートされたサーバー・ブレードの少なくとも一つを構成設定する段階、
とをさらに含む、請求項２０記載の装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は概括的にはデータ処理に、より詳細にはコンピュータハードウェアのエミュレーションに関する。
【背景技術】
【０００２】
ブレード・サーバーとしても知られるサーバー・ブレードは、カード上に構築され、シャーシとしても知られるラック中のスロットに差し込まれるデータ処理システムである。たとえば、一つのシャーシが多数の垂直方向のスロットを備えることがあり、アプリケーションの作業負荷を扱うための複数のサーバー・ブレードがそれらのスロットに、本棚に本を差すように差し込まれうる。したがって、サーバー・ブレードはモジュール式コンピューティング・コンポーネントまたはプラットフォームと称しうる。たとえばインターナショナル・ビジネス・マシーンズ（IBM）社はBladeCenterの商標のもとにサーバー・ブレードのラインナップを販売している。そのようなサーバー・ブレードは、インテル社によってXeon（商標）プロセッサと称されるプロセッサのような二つのプロセッサを使用しうる。他の型のサーバー・ブレードは異なる型および異なる数のプロセッサを使用しうる。
【０００３】
シャーシは、バックプレーンおよび／またはラック中のスロットを相互接続するバスもしくは通信線をもつ相互接続モジュールを含みうる。さらに、シャーシ管理モジュール（CMM:  chassis  management  module）がラックに差し込まれうるが、これは、シャーシ内の資源を監視するため、管理上の警告もしくは注意を与えるため、管理上の指令を受け取るためおよびサーバー・ブレードに関連したその他の行政管理機能を実行するためである。シャーシはまた、他の多くの型のコンポーネントまたはモジュールをも含みうる。たとえば共有電源モジュール、ハードディスク・ドライブを含む記憶ブレード、光学式もしくはその他の型のI/Oのための入出力（I/O）ブレードなどである。本開示の目的のためには、サーバー・ブレードの用語はI/Oブレードおよび同様のモジュールを含む。
【０００４】
サーバー・ブレードは典型的には小型で、典型的にはシャーシに追加のサーバー・ブレードを組み込むのは比較的簡単である。したがって、サーバー・ブレードは典型的にはスタンドアローンのサーバーよりもよい密度およびスケーラビリティを提供する。結果として、そのようなモジュール式のスケーラブルなコンポーネントをプロビジョニング、構成設定、管理およびサポートするためにかなりの量のソフトウェアが開発されてきた。それには、ハードウェアをリモートで管理するソフトウェアおよび異なるセットのサーバー・ブレードを異なるソフトウェア・アプリケーションによる使用のために割り振るソフトウェアが含まれる。たとえば、管理ソフトウェアは複数のサーバー・ブレードをまとめて、たとえばウェブサーバーのようなソフトウェア・アプリケーションの処理作業負荷を扱うことにおいて協働するようにする。こうして、複数ブレードが多少なりとも、仮想的な統一された処理システムとして動作しうる。
【０００５】
ブレードを異なるアプリケーションのために割り振るソフトウェアは、変化する条件に反応しての自動再割り振りをも提供しうる。たとえば、ブレードの再割り振りは、一つまたは複数のアプリケーションによって扱われている作業負荷における変化に反応して、あるいは一つまたは複数のブレードにおけるハードウェアまたはソフトウェア・エラーに反応して、行われうる。事例によっては、ブレードとシャーシは、自律的監視および復元機能をサポートするハードウェアおよび／またはソフトウェアを含みうる。それはたとえば、知的プラットフォーム管理インターフェース（IPMI:  Intelligent  Platform  Management  Interface）規格、第二世代、v2.0、修正1.0、日付2004年2月12日のような規格に従ったものである。
【０００６】
データ処理への別のアプローチは、単一のプラットフォームまたはサーバーを複数の仮想機械に分割し、各仮想機械が独立したオペレーティング・システム（OS）および各仮想機械上で走る独立したソフトウェア・アプリケーションをもつようにすることである。たとえば、VMWareという名の会社は、単一の物理的処理システムを複数の仮想機械に分割することをサポートするソフトウェアを提供する。マイクロソフト社によるConnectix  Virtual  PCの名のもとで提供されるソフトウェアも単一プラットフォームを複数の仮想機械に分割することをサポートする。
【０００７】
本発明の特徴および利点は、付属の請求項および一つまたは複数の例示的な実施形態についての以下の詳細な記述から明らかになるであろう。
【発明の開示】
【０００８】
［発明を実施するための最良の形態］
図１は、本発明の例示的な実施形態に基づく仮想サーバー・ブレード７０、８０、９０を含むための例示的なデータ処理環境における例示的なハードウェアおよびソフトウェア・コンポーネントを描くブロック図である。図１および以下の議論は、本発明のある種の側面が実装されうる好適な環境の一般的な描写を提供することを意図したものである。ここでの用法では、「処理システム」および「データ処理システム」の用語は、単一の機械または通信的に結合された一緒に動作する複数の機械もしくは装置のシステムを広く包含することが意図されている。例示的な処理システムに含まれるものとしては、限定なしに、分散コンピューティング・システム、スーパーコンピュータ、コンピューティング・クラスタ、メインフレーム・コンピュータ、ミニコンピュータ、クライアント・サーバー・システム、パーソナル・コンピュータ、ワークステーション、サーバー、ポータブル・コンピュータ、ラップトップ・コンピュータ、タブレット処理システム、電話、携帯情報端末（PDA）、ハンドヘルド装置、モバイル端末、オーディオおよび／もしくはビデオ装置のような娯楽装置ならびに情報を処理もしくは送信するためのその他の装置がある。
【０００９】
図１のデータ処理環境は、一つまたは複数のバスまたはその他の通信コンジットまたは経路を介してさまざまな他のコンポーネントに通信的に結合された一つまたは複数のプロセッサまたは中央処理装置（CPU）２４を含む処理システム２０を含みうる。プロセッサ２４は、一つまたは複数の処理コアをもつ集積回路（IC）として実装されうる。ある実施形態では、一つまたは複数のインテル（登録商標）Xeon（商標）プロセッサがプロセッサ２４のために使用されうる。プロセッサ２４はプロセッサ仮想化をサポートしうる。他の実施形態では、他の製造業者からのプロセッサを含め他のプロセッサを使ってもよい。プロセッサ２４に結合されたコンポーネントは、ランダムアクセスメモリ（RAM）２２および読み出し専用メモリ（ROM）３０のような一つまたは複数の揮発性または不揮発性データ記憶装置を含みうる。一つまたは複数のバス２６がRAM２２およびROM３０をプロセッサ２４に、可能性としてはメモリ・コントローラ２８、バス・ブリッジ３４などのような一つまたは複数の中間コンポーネントを介して結合するはたらきをしうる。本開示の目的のためには、「ROM」の用語は、消去可能なプログラム可能ROM（EPROM）、電気的に消去可能なプログラム可能ROM（EEPROM）、フラッシュROM、フラッシュメモリ、不揮発性RAM（NV-RAM）などを概括的に指す。
【００１０】
プロセッサ２４はまた、一つまたは複数の統合ドライブエレクトロニクス（IDE）ドライブ、小型コンピュータシステムインターフェース（SCSI）デバイスまたは他の型のハードディスク・ドライブといった、大容量記憶装置にも通信的に結合されうる。処理システム２０によって使用されうる他の型の大容量記憶装置および記憶メディアは、フロッピー（登録商標）ディスク、光学式記憶、テープ、メモリースティック、デジタルビデオディスク、生物学的記憶などを含みうる。
【００１１】
処理システム２０内のプロセッサ２４には、次のそれぞれのうち一つまたは複数を含む追加的なコンポーネントが通信的に結合されうる：ビデオ、SCSI、ネットワーク、ユニバーサルシリアルバス（USB）、キーボードおよびその他の型のデバイス・コントローラ；入出力（I/O）装置；ネットワーク・ポート３２；およびその他のI/Oポート。そのようなコンポーネントは、たとえば一つまたは複数のバスおよびバス・ブリッジを介して、直接または間接にプロセッサ２４に接続されうる。実施形態によっては、処理システム２０の一つまたは複数のコンポーネントは、プログラム可能または非プログラム可能な論理装置またはアレイ、特定用途向け集積回路（ASIC）、組み込みコンピュータ、スマートカードなどといったコンポーネントを使って、組み込み装置として実装されうる。
【００１２】
処理システム２０は、少なくとも部分的には、キーボードもしくはキーパッド、ポインティングデバイスなどのような通常の入力装置からの入力によって、および／または一つまたは複数のリモート・データ処理システム３８から受信される指令、仮想現実感環境との対話、バイオメトリック・フィードバックまたはその他の入力源もしくは信号によって、制御されうる。処理システム２０は、表示装置、リモート・データ処理システム３８などといったコンポーネントに出力を送りうる。リモート・データ処理システム３８との通信は、いかなる好適な通信媒体を通じて伝わってもよい。たとえば、処理システム２０および３７は、構内ネットワーク（LAN）、広域ネットワーク（WAN）、イントラネット、インターネット、公衆電話交換網（PSTN）、セルラー電話網などといった一つまたは複数の物理的または論理的ネットワーク３６によって相互接続されうる。ネットワーク３６に関わる通信は、無線周波（RF）、衛星、マイクロ波、アメリカ電気電子通信学会（IEEE）802.11、ブルートゥース、光学式、赤外線、ケーブル、レーザーなどを含む、さまざまな有線および／または無線の短距離または長距離の搬送波およびプロトコルを利用しうる。
【００１３】
本発明は、機械によってアクセスされたときに該機械によるタスクの実行または抽象的なデータ型もしくは低レベルのハードウェア・コンテキストの定義が帰結する、命令、関数、手続き、データ構造、アプリケーション・プログラムなどを含む関連データを参照しつつ、あるいはそのような関連データとの関係で記述されることがある。そのようなデータは、一般にソフトウェアと称されうるもので、揮発性および／または不揮発性データ記憶に保存されうる。
【００１４】
たとえば、ROM３０のような、処理システム２０にとってアクセス可能か、該システム内にあるかする一つまたは複数の記憶装置は、プロセッサ２４によって実行されたときに処理システム２０内に一つまたは複数の仮想サーバー・ブレードを生成およびサポートするソフトウェア・アプリケーションの一部または全部を含みうる。後述するように、そのようなソフトウェア・アプリケーションは、部分的または完全に、仮想機械モニタ（VMM:  virtual  machine  monitor）４０内に実装されうる。たとえば、仮想ブレード監督手段４１およびブレード管理エージェント４２を実装するためのコードは、ROM３０からRMA２２にロードされ、処理コア２４によって実行され、それにより仮想サーバー・ブレード７０、８０および９０をプロビジョニングおよび管理しうる。仮想ブレード管理器４１およびブレード管理エージェント４２は、VMM４０のロードおよび実行に関連して、たとえばブートプロセスの一部として、ロードおよび実行されうる。
【００１５】
さらに、仮想ブレード監督手段４１は、仮想サーバー・ブレード７０、８０および９０のプロビジョニングおよび管理をガイドするためのさまざまなポリシー・フィルタ４４を定義および利用しうる。それらのポリシー・フィルタ４４の一部または全部は、少なくとも部分的に、ポリシー・データベース４３に保存されている項目に基づいたものでありうる。たとえば、ポリシー・データベース４３が指定する項目としては、仮想サーバー・ブレードが何個生成されるべきか、各仮想サーバー・ブレードにどんな型のファームウェア環境がロードされるべきか、各仮想サーバー・ブレードにどんな型のOSがロードされるべきか、各ブレードにどのくらいのメモリを利用可能にすべきか、各ブレードにどのネットワーク・チャネルもしくは他のI/Oチャネルを利用可能にするか、各ブレードに所与のI/Oチャネルのどのくらいの帯域幅を利用可能にすべきか、各ブレードにどのくらいのディスク記憶を利用可能にすべきか、各ブレードにどのくらいの計算時間もしくは総計算時間のどのくらいの割合を利用可能にするか、などが含まれる。のちにより詳細に述べるように、仮想ブレード監督手段４１は、ポリシー・データベース４３に保存されているポリシーに従って仮想サーバー・ブレード７０、８０および９０をプロビジョニングおよび管理する。
【００１６】
例示的な実施形態では、仮想ブレード監督手段４１は仮想サーバー・ブレード７０、８０および９０をプロビジョニングまたは生成し、仮想ブレード監督手段４１は各仮想サーバー・ブレードにその独自の独立なファームウェア環境７２、８２および９２をそれぞれ提供する。本開示の目的のためには、仮想サーバー・ブレードはエミュレートされたサーバー・ブレードとも称することができ、ファームウェア環境はランタイム環境とも称することができる。エミュレートされた各サーバー・ブレード内では、ランタイム環境は、通常のデータ処理システムにおける基本入出力システム（BIOS）によって典型的には提供されるサービスのような低レベルのサービスを提供しうる。
【００１７】
仮想ブレード監督手段４１は、異なるランタイム環境をもつ一つまたは複数の仮想サーバー・ブレードを提供しうる。たとえば、仮想サーバー・ブレード７０において、ランタイム環境７２は、拡張可能ファームウェア・インターフェース（EFI:  Extensible  Firmware  Interface）規格に準拠するモジュール式ファームウェア・アーキテクチャに従って、ハードウェアへのインターフェースおよびその他のサービスを提供しうる。したがって、ランタイム環境７２はEFIランタイムとも称されうる。ランタイム環境９２もEFIランタイムと称されうる。2003年11月26日付けのEFI規格のバージョン1.10、アップデータ001は、www.intel.com/technology/efi/main_specification.htm#updateから入手されうる。ランタイム環境８２は、従来式の、比較的モノリシックなBIOSによって提供されるファームウェア環境のようなレガシー・ランタイムであってもよい。
【００１８】
さらに、VMM４０は仮想サーバー・ブレード７０、８０および９０のそれぞれにそれぞれの独自の仮想機械（VM）７４、８４および９４を提供する。各VMはその独自の独立したOSを含むことができ、OSはVMによって変わってもよい。たとえば、仮想サーバー・ブレード７０内のOS７６がウィンドウズ（登録商標）サーバーOSで、仮想サーバー・ブレード８０内のOS８６がソラリス（登録商標）OSで、仮想サーバー・ブレード９０内のOS９６がリナックスOSであってもよい。代替的な諸実施形態では、他の型のランタイム環境およびOSも使用されうる。
【００１９】
太矢印５６によって示されるように、VMM４０は、仮想サーバー・ブレード７０、８０および９０のための、プロセッサ、プラットフォームおよびブレード・ラック仮想化を提供しうる。たとえば、VMM４０は、各仮想サーバー・ブレードに、その仮想サーバー・ブレードにおけるランタイム環境およびOSが、処理システム２０で走っている唯一のランタイム環境およびOSであるという幻想を提供しうる。したがって、各仮想サーバー・ブレードは独立したエンティティとして動作しうる。そのような独立性は、VMM４０が各仮想サーバー・ブレードと対話する方法によって確立しうる。たとえば、VMM４０は、各仮想ブレードのためのメモリおよびI/O使用を、各仮想ブレードの独立性を維持するような方法で提供および管理しうる。こうして、VMM４０は、各仮想サーバー・ブレードにおけるOSおよびランタイム環境が、そのOSおよびランタイム環境があたかも処理システム２０内で走っている唯一のOSおよびランタイム環境であるかのように動作することを許容する。VMM４０はまた、各仮想サーバー・ブレードを、他の仮想サーバー・ブレードから保護し、孤立させることもできる。たとえば、一つの仮想サーバー・ブレード内のソフトウェア・ウイルスは、その仮想サーバー・ブレード内に限定され、そのウイルスが他の仮想サーバー・ブレードの動作に影響しないようにできる。
【００２０】
処理システム２０が仮想サーバー・ブレードを生成および管理するために使用しうる機構の一つは、システム管理モード（SMM:  system  management  mode）５０として知られる動作モードである。処理システム２０は、システム管理割り込み（SMI:  system  management  interrupt）に反応して自動的にSMM５０にはいりうる。現在のシステム状態は、SMM５０にはいるときには自動的に保存され、SMM５０から抜けるときに自動的に復元される。SIMM５０にあるときは、処理システム２０は、該処理システム２０内のいかなるOSとも独立に動作を実行しうる。SMM５０のためのハードウェアおよびソフトウェアのサポートは、顧客が製造業者または販売者から処理システム２０を受け取るときに処理システム２０内に含められていてもよい。したがって、SMM５０は、原装置製造業者（OEM:  original  equipment  manufacturer）SMMとも称されうる。
【００２１】
ある実施形態では、VMM４０は、各仮想ブレードの状態を管理するために、プロセッサ２４内の仮想機械構成設定構造（VMCS:  virtual  machine  configuration  structure）８８として知られるハードウェア・データ構造を使う。VMCS８８は、従来式のタスク状態セグメント（TSS:  task  state  segment）といくつかの類似性を共有しうる。たとえば、プロセッサ２４はVMCS８８をデコードしうる。ある実施形態では、VMM４０は、各仮想ブレードのためのI/Oおよびメモリ資源を管理するためにVMCS８８を使用する。
【００２２】
VMM４０は、ゲストVM７４、８４および９４のマッピングから別の層のメモリ・マッピングを提供するために、仮想的な変換ルックアサイド・バッファ（TLB:  translation  lookaside  buffer）として知られるソフトウェア・エンティティを使用しうる。たとえば、仮想TLBは、仮想サーバー・ブレード７０、８０および９０から受け取ったメモリ参照をRAM２２内の対応する物理アドレスにマッピングするページテーブルを使用しうる。
【００２３】
VMM４０は、コントローラおよびデバイスをエミュレートするデバイス・モデルも含みうる。たとえば、VMM４０は、プログラム可能割り込みコントローラ（PIC:  programmable  interrupt  controller）、先進プログラム可能割り込みコントローラ（APIC:  advanced  programmable  interrupt  controller）、I/O  APICなどをエミュレートするためのデバイス・モデル；統合ドライブエレクトロニクス（IDE）コントローラをエミュレートするための別のデバイス・モデル；ネットワーク・コントローラをエミュレートするための別のデバイス・モデルなどを含みうる。デバイス・モデルに基づくエミュレートされたデバイスおよびコントローラは、仮想コントローラおよびデバイスとも称されうる。VMM４０は、ポリシー設定に従って資源を割り当て、各仮想ブレードについての資源使用を統御する仮想コントローラおよびデバイスを提供するためにデバイス・モデルを使用しうる。
【００２４】
たとえば、例示的な実施形態では、VMM４０はベースボード管理コントローラ（BMC:  baseboard  management  controller）デバイス・モデル４８を使用して、各仮想ブレードについてエミュレートされたBMC６２を提供しうる。エミュレートされたBMCは、仮想BMCまたはvBMCとも称されうる。各仮想BMC６２は、通常のBMCが物理的なサーバー・ブレードについて提供しうる機能性を提供しうる。たとえば、仮想BMC６２はイベントおよびエラーのデータをログに記録しうるし、仮想BMC６２は状態データを処理システム２０内のソフトウェアにおよび／または外部の管理ソフトウェアに報告しうる。状態データは、エミュレートされたBMCに対応するエミュレートされたサーバー・ブレードについてのエラー報告および現在のオペレーションナルといった情報を含みうる。
【００２５】
ある実施形態では、各仮想サーバー・ブレードについての仮想BMC６２は、その仮想サーバー・ブレードのキーボード・コントローラ・スタイル（KCS:  keyboard  controller  style）インターフェースのI/Oポートをトラップして、I/OをVMM４０におけるBMCデバイス４８モデルにリダイレクトしうる。例示的な実施形態では、BMCデバイス・モデル４８は、VMに見えるI/O動作を真のハードウェア動作にマッピングする、VMM４０内のソフトウェアのクラスを表している。さらに、BMCデバイス・モデル４８は各VM７０、８０および９０についての仮想BMC６２を具体化しうる。BMCデバイス・モデル４８は、処理システム２０と物理的なBMCと通信したり、あるいは他の何らかの仕方でBMCのような振る舞いを実施したりしうる。
【００２６】
VMM４０は、仮想サーバー・ブレード７０、８０および９０への通信、仮想サーバー・ブレード７０、８０および９０からの通信ならびに仮想サーバー・ブレード７０、８０および９０の間の通信のための仮想帯域外（out-of-band）チャネル６０も提供しうる。各仮想ブレード・サーバー内のソフトウェアの、そして仮想ブレード外のブレード管理ソフトウェアの観点からは、そのような仮想帯域外チャネルは、従来式のサーバー・ブレードのためのサーバー・ブレード・ラックにおいて提供される帯域外（OOB:  out-of-band）チャネルと区別不可能であることがある。
【００２７】
デバイス・モデルを実施するためにI/Oエミュレーションを使うことに加えて、VMM４０は、処理システム２０に、自分が仮想化されていることを知っているブレードVMを提供しうる。そのような仮想機械は啓蒙ゲスト（enlightened  guest）と、あるいはパラ仮想化（para-virtualized）機械と称されうる。VMM４０においてトラップおよび／またはエミュレートされるI/Oポートにアクセスする代わりに、パラ仮想化機械を使う仮想ブレードは、IA32仮想機械コール（VMCALL:  virtual  machine  call）命令のような命令を通じてVMM４０への同期コールをなしうる。
【００２８】
VMM４０の、ブレード管理エージェント４２のような部分は、仮想サーバー・ブレード７０、８０および９０を監視および管理するための堅牢な機能をも提供しうる。たとえば、ブレード管理エージェント４２は、従来式のCMMによってラック内で物理的なサーバー・ブレードについて提供されるであろう機能性の一部または全部を提供しうる。その機能性とは、外部装置との通信のための外部インターフェース；仮想サーバー・ブレード７０、８０および９０との通信のための内部インターフェース；仮想ブレードのミラーリングのサポート；ソフト・エラーのようなエラーに反応しての仮想ブレード間の自動フェイルオーバーのサポートなどである。実施形態によっては、これらのおよびその他の型の管理上または行政管理上の機能は、主としてブレード管理エージェント４２またはVMM４０内の他のソフトウェアによって、ポリシー・フィルタ４４に保存されているポリシー定義によって表現されるポリシーに基づいて実行されうる。本開示の目的のためには、従来式のCMMが提供する機能性の一部または全部を提供するソフトウェアは仮想CMMと称されうる。ある実施形態では、ブレード管理エージェント４２が仮想CMMをなす。
【００２９】
実施形態によっては、VMM４０の、仮想ブレード監督手段４１および／またはブレード管理エージェント４２のような部分は、IBM社によってIBMディレクターの名のもとに頒布されているクライアント／サーバー・ワークグループ管理ソフトウェアのような、物理的なブレードを管理するための従来式ソフトウェアのために、仮想サーバー・ブレード７０、８０および９０へのインターフェースのはたらきをしうる。こうして、処理システム２０は、物理的なブレードをサポートするために業界によって開発されたソフトウェア、システムおよびネットワーク・インフラストラクチャーにてこ入れして、複数のサーバー・ブレードをエミュレートするためにハードウェア仮想化を利用する単一の物理的プラットフォームのコンテキストにおける使用のために適応させうる。したがって、データセンター行政管理者は、処理システム２０の前記単一の物理的プラットフォームを、物理的に孤立しており独立して管理可能なサーバー・ブレードのプールと見なしうる。したがって、VMM４０は仮想サーバー・ブレード７０、８０および９０が個々に目的変更され、リースされ、および／または異なるテナントによって使用されることを許容しうる。
【００３０】
さまざまな実施形態において、上述した機能性はVMM４０によってサポートされうる。外機能性を管理するのは、VMM４０内のブレード管理エージェント４２によって、処理システム２０内で走っている従来式のブレード管理ソフトウェアによって、あるいはリモート処理システム３７のような外部システム上で走っている従来式のブレード管理ソフトウェアによって、でありうる。他の実施形態では、管理機能性は、ブレード管理エージェント４２および内部ブレード管理ソフトウェアもしくは外部ブレード管理ソフトウェアの間で分散されてもよい。
【００３１】
図２および図３は合わせて、本発明の例示的な実施形態に基づく、仮想サーバー・ブレードを提供するためのプロセスのフローチャートを与える。図示したプロセスは、たとえば電源投入またはリセットイベントに反応して、処理システム２０がブートシーケンスを開始することをもって始まりうる。ブロック１１０では、処理システム２０におけるハードウェアの一部または全部が初期化されうる。たとえば、プロセッサ２４、RAM２２、チップセット、I/Oコントローラなどといったコンポーネントが初期化されうる。次いで、ブロック１１２において、VMM４０がローカルまたはリモートのデータ記憶から取得され、RAM２２にロードされ、起動されることができる。ブロック１１４では、VMM４０はポリシー・データベース４３を読み込んで、仮想サーバー・ブレードをプロビジョニングおよび管理するための構成設定パラメータを取得しうる。他の実施形態では、VMM４０は、該構成設定パラメータをリモート管理コンソールのようなリモート・ソースから取得しうる。VMM４０は次いで、ブロック１２０および１２２に示されるように、構成設定パラメータによって求められる任意の仮想サーバー・ブレード・インスタンスをプロビジョニングしうる。たとえば、仮想ブレード監督手段４１が、上に示したように、ポリシー・データベース４３からのデータに従って仮想サーバー・ブレード７０、８０および９０をインスタンス生成および構成設定しうる。
【００３２】
ひとたび仮想サーバー・ブレードの初期セットがインスタンス生成されたら、VMM４０は、ブロック１２４に示されるように、仮想ブレード監督手段４１を起動しうる。ブロック１２６に描かれるように、仮想ブレード監督手段４１は、仮想サーバー・ブレード７０、８０および９０の管理において使用されるべきポリシー・フィルタ４４を、少なくとも部分的にはポリシー・データベース４３からの構成設定パラメータに基づいて設定しうる。ポリシー・フィルタ４４はフェイルオーバー・パラメータ；パケット処理命令；エラー処理命令；仮想サーバー・ブレード７０、８０および９０のどの属性がサーバー管理ソフトウェアに見えるようにするか；ハートビートおよびタイムスライス継続時間などのようなものを制御しうる。ある実施形態では、ポリシー・フィルタ４４内のポリシー・パラメータは、物理的なサーバー・ブレードをもつシステムにおいてCMMが実装または施行するであろうポリシーに対応する。
【００３３】
ブロック１２８で示されるように、仮想ブレード監督手段４１は次いで、各仮想サーバー・ブレードが別の仮想ブレード・サーバーに制御が渡されるまでに走る時間の長さを限定するために一つまたは複数の時間期間を確立しうる。そのような所定の時間期間は、タイムスライス（time  slice）とも称されうる。さらに、仮想ブレード監督手段４１は、どの仮想サーバー・ブレードについてもVMM４０に制御が戻されるまでに走る時間の長さを限定するためにより短い時間期間を確立しうる。この時間期間はハートビート（heartbeat）と称されうる。
【００３４】
次いでブロック１３０に示されるように、VMM４０は制御を仮想ブレードの一つに渡しうる。次いでプロセスはページ連結標Ａを通過してブロック２１０に進みうる。
【００３５】
例示的な実施形態では、タイムスライスまたはハートビートの期間満了に伴って、仮想ブレードのどれかから抜け出すのに際してVMM４０に制御が戻りうる。はいってくるネットワーク・パケットのようなある型の入力も、制御のVMM４０への復帰を引き起こしうる。VMM４０が制御を得ると、VMM４０はハウスキーピング動作のようなタスクを実行することができ、次いで後続の仮想ブレードに制御を渡しうる。例示的な実施形態では、VMM４０が消費するのは典型的には全計算時間の1割未満であり、仮想サーバー・ブレード７０、８０および９０が計算時間の大半を得る。
【００３６】
再び図１に戻ると、仮想サーバー・ブレード７０、８０および９０をサポートするために処理システム２０が使用しうるもう一つの機構は、SMI転送モニタ（STM:  SMI  transfer  monitor）４６として知られるソフトウェア要素である。例示的な実施形態では、STM４６はVMM４０に対するパラレルなピア（peer）・モニタであり、STM４６は、SMM５０に示されるような自分の独自のVMにおいて、SMMコードを、ゲストとしてホストすることを担う。STM４６とVMM４０は同じ機関が開発してもよいし、あるいは異なるエンティティによって開発されてもよい。
【００３７】
STM４６は、処理システム２０においてSTM-SMMインターフェース５２をも生成しうる。SMM５０がカーテン保護されたメモリをもつ安全なシステムにおける物理的メモリアドレスのような仮想化されていない資源に触れたいとき、STM４６は、STM-SMMインターフェースを使って、STM４６がそのアクセスを実行することを要求しうる。たとえば、SMM５０は、ソフト誤り訂正コード（ECC）スクラビングのような機能のためにSTM-SMMインターフェース５２を使用しうる。例示的な実施形態では、SMM５０終了のイベントがSTM４６にはいる。STM４６とVMM４０との間では、いかなる好適なメモリおよびメッセージング・インターフェースが使用されてもよい。
【００３８】
図１では、線５４はOEM  SMMコードとSTM４６および／またはVMM４０との間のアプリケーション・プログラム・インターフェース（API）を表している。このAPIはCMM固有データおよび他の仮想化情報のOEMコードからの孤立化を許容する。このインターフェースは、OEM  SMMコードとSTMコードがたとえば異なる作者をもつことのできるビジネス展開を許容する。線５４は仮想機械７４、８４および９４のいずれにも接続できる。各ゲストはSMIアクティブ化を介して励起できるからである。
【００３９】
線５５は、主モニタ（VMM４０）からピア・モニタ（STM４６）を抽出するためのインターフェースを表している。この抽出は、STM４６の作者がVMM４０の作者と異なりうる同様の分割展開モデルを許容する。
【００４０】
図３を参照すると、ブロック２１０で、仮想ブレード監督手段４１は、処理システム２０がネットワーク・パケットを受信したかどうかを判定しうる。ネットワーク・パケットが受信されていなければ、仮想ブレード監督手段４１は、ブロック２２０で示されるように、仮想サーバー・ブレード７０、８０および９０のいずれかがエラーを経験したかどうかを判定しうる。たとえば、物理的なメモリ・アレイにメモリ・エラーがあれば、処理システム２０は、システム管理割り込み番号（SMI#）にBERR#（ビット誤り率）またはBINIT#（バス初期化）信号をマッピングしうる。該SMIに反応して、メモリ・エラーが仮想サーバー・ブレードに関連付けられたメモリの部分にある場合には、SMM５０は、KCSインターフェースを介して、その仮想サーバー・ブレードの仮想BMC６２と通信することを試みうる。この通信は、ゲストとしてホストされたSMM５０からSTM４６への仮想機械終了（VMEXIT）を含みうる。こうして、ブロック２２２に示されるように、SMM５０は、そのエラーについてのエラー封じ込めを実行できる。
【００４１】
たとえば、所与のVM内に含まれるエラー、たとえば物理的なメモリ・ページにおける二重ECC不良のような場合、VMM４０は、メモリの内容が回復可能であればそのVMに別の物理ページを割り当てるか、あるいはそのVMを終了させて不良メモリ領域を使用不可として恒久的にマークするかできる。仮想BMC６２が処理できるエラーの種類は、限定なしに、単一ビットおよび二ビットのメモリ・エラー、オーバーヒートなどを含む。
【００４２】
次いで処理システム２０は、ブロック２２４に示されるように、エラーをログ記録しうる。たとえば、上記のようなメモリ・エラーが起こるとき、仮想BMC６２はそのメモリ・ページおよび不良のイベントをログ記録しうる。エラーをログ記録するために、STM４６はVMM４０に、仮想BMC６２によってポストされるエラー・ログがあるというメッセージを送りうる。このメッセージが渡されるのは、メールボックスを介して、あるいはVMM４０およびSTM４６によって共有されているメモリ部分における他の所定の領域を介してでありうる。次いでVMM４０におけるBMCデバイス・モデルがエラー情報を保存しうる。保存先はたとえば、仮想ブレード・エラー条件を保存するためにVMM４０によってリザーブされているハードディスク部分である。
【００４３】
再びブロック２２０を参照すると、仮想サーバー・ブレード・エラーが検出されていない場合、仮想ブレード監督手段４１は、ブロック２２６に示すように、処理システム２０のシャーシへの侵入（intrusion）が検知されたかどうかを判定しうる。侵入が検知されていれば、仮想ブレード監督手段４１は、ブロック２２４に示すように、その侵入をログ記録しうる。何らかの侵入または何らかの仮想サーバー・ブレード・エラーがログ記録されたあとでは、プロセスはブロック２１０に戻りうる。そこで仮想ブレード監督手段４１は次のハートビートにおいて、処理システム２０がネットワーク・パケットを受信したかどうかを判定する。
【００４４】
しかし、シャーシ侵入が検出されなかった場合には、仮想ブレード監督手段４１は、ブロック２３０のように、現在の仮想サーバー・ブレードについてのタイムスライスが期間満了になっているかどうかを判定しうる。現在のブレードについてのタイムスライスが期間満了になっていれば、仮想ブレード監督手段４１は、ブロック２３２に示されるように、制御を、現在の仮想サーバー・ブレードから次の仮想サーバー・ブレードに交換し（swap）うる。たとえば、仮想ブレード監督手段４１は、VMCS８８内のポインタの、VMCS８８における現在の仮想ブレード状態からVMCS８８における後続仮想ブレード状態への更新を実行しうる。そのようなVMCS更新は、VMCS８８をして、所望の後続仮想ブレードについてのVMのメモリおよびI/O状態をポイントさせうる。そのような更新の実行は、タスク切り換えを実行するための準備においてIA32  TSSを更新するのと同様でありうる。VMCS更新後、VMM４０は仮想機械にはいる（VMEnter）コマンドを実行して、その後続仮想ブレードのVMに制御を渡しうる。
【００４５】
所望の仮想ブレード・サーバーにおいて交換をする（swapping）か、あるいはタイムスライスが期間満了になっていないと判定したあとの次のハートビートにおいて、プロセスは再びブロック２１０に戻りうる。そこで仮想ブレード監督手段４１は、処理システム２０がネットワーク・パケットを受信したかどうかを判定する。
【００４６】
ブロック２１０において、処理システム２０がネットワーク・パケットを受信したのち、仮想ブレード監督手段４１は、ブロック２４０に示されるように、そのパケットが、仮想サーバー・ブレードの一つの仮想BMC６２のネットワーク・ポートに宛てられたものかどうかを判定しうる。そのパケットがある仮想BMCポートに当てられていれば、VMM４０は、ブロック２４２で示されるように、BMCエミュレーションを実行しうる。たとえば、ブレード管理エージェント４２によるBMCエミュレーションの実行は、たとえば特定のアドレス／データ・ポートをトラップすることによってKCSインターフェース上にI/Oトラップを提供することによってなされうる。また、ブレード管理エージェント４２は、各仮想機械について仮想BMCのインスタンスを提供してもよい。VMMデバイス・モデルは、複数のVMエージェントからのKCSインターフェース・アクセスを調整して、各VMが自分が独占的なアクセスを有していると思うようにしうる。同様に、各VMは自分独自のシステム・イベント・ログ（SEL:  system  event  log）および自分独自のインターネットプロトコル（IP）アドレスをもつように見えてもよい。これらの目的を達成するためには、いかなる適切なデバイス・エミュレーション技術が使用されてもよい。
【００４７】
しかしながら、前記パケットが仮想BMCポートに宛てられていない場合、ブレード管理エージェント４２はブロック２５０において、そのパケットがリモート・システム管理に係るデータを含んでいるかどうかを判定しうる。たとえば、仮想ブレード監督手段４１は、そのパケットが、注意標準フォーマット（ASF:  alert  standard  format）規格のようなリモート制御および注意インターフェースのための規格に適合しているかどうかを判定しうる。2003年4月23日付けのASF規格のバージョン2.0は、www.dmtf.org/standards/asfから入手しうる。本開示の目的のためには、リモート・システム管理のためのデータを含んでいるパケットは、一般的にASFパケットと称されうる。ある実施形態では、リモート・システム３７は、リモート・システム管理のためのデータをもつパケットを処理システム２０に送るために、IBMディレクターのようなアプリケーションを使用しうる。受信されたパケットがASFパケットでない場合には、仮想ブレード監督手段４１は、ブロック２５６で示されるように、パケットが処理できないことを示すエラーをログ記録しうる。
【００４８】
パケットがASFパケットである場合には、仮想ブレード監督手段は、ブロック２５２に示されるように、ブレード管理エージェント４２を呼び出しうる。通常、ASF機能性は典型的には、ネットワーク・インターフェース・カード（NIC）によって与えられる。VMM４０は、NICをエミュレートし、ASFパケットの処理を提供するために、ネットワーク・デバイス・モデルを使用しうる。たとえば、ブレード管理エージェント４２は、ブロック２５４において示されるように、パケットを処理することができ、そのパケットによって求められるいかなる動作をも実行しうる。たとえば、そのパケットは、ブレード管理エージェント４２をして、一つまたは複数の仮想サーバー・ブレードの目的変更および／または再構成設定をさせうる。たとえば、ブレード管理エージェント４２は、リモート・システム３７に、一つまたは複数の仮想サーバー・ブレードから構成設定およびエラー・データを取得すること；一つまたは複数の仮想サーバー・ブレードを追加もしくは除去すること；一つまたは複数の仮想サーバー・ブレードに利用可能なメモリの量、ディスクスペースおよび／またはI/O帯域幅を変更すること；仮想サーバー・ブレード７０、８０および９０の間で処理作業負荷の再割り当てをすること；などを許容しうる。ブレード管理エージェント４２はそのような動作を、関連する仮想サーバー・ブレードの仮想BMC６２を介して実行しうる。
【００４９】
ブレード管理エージェント４２がパケットによって求められた動作を実行したのち、あるいは非ASFパケットについてエラーがログ記録されたのち、処理はブロック２１０に戻りうる。次いで処理システムは、上記の諸動作を適宜繰り返して、仮想サーバー・ブレードをサポートおよび管理し続けうる。このように、ここに記載される技術は、仮想サーバー・ブレード７０、８０および９０の下にあるシームレスな管理可能性インフラストラクチャーを提供しうる。
【００５０】
例示的な実施形態では、別個の物理的ネットワーク・ポートまたは媒体アクセス・制御（MAC）アドレスが、OSレベルまたはアプリケーション・レベルでネットワーク機能をもつことになる各仮想サーバー・ブレードに割り当てられうる、あるいは直接マッピングされうる。しかしながら、代替的な諸実施形態では、VMM４０は、複数の仮想サーバー・ブレードのための複数の独立ポートをエミュレートするために、ネットワーク・ポート３２のような単一のポートを使用してもよい。そのような実施形態は、図３にまとめられているようなプロセスを使用しうる。しかしながら、システムはまた、はいってくるパケットが仮想ブレードの一つにおけるOSまたはアプリケーションに宛てられているかどうかを判定し、次いでそのパケットをしかるべく、たとえばブロック２１０および２４０に描かれた動作の間で先に送ることもできる。
【００５１】
これまで述べてきたように、処理システム２０は、仮想機械技術を使って、サーバー・ブレードの複数の仮想インスタンスを提供し、それらの仮想サーバー・ブレードのための仮想通信チャネルを提供し、該仮想サーバー・ブレードの管理をサポートすることができる。実施形態によっては、VMMによってエミュレートされるモジュール式コンピューティング・デバイスは、処理ブレード・デバイスおよびI/Oブレード・デバイスを含みうる。
【００５２】
ハードウェア機能は将来向上すると期待される。たとえば、プロセッサ上のコアの数が増えることがありうる。本開示の教示は、将来の処理システムによって提供されることになる向上した機能を管理するために従来のサーバー管理インフラストラクチャーを改造するために使用されうるものである。本開示の教示は、グリッド・コンピューティング技術をプロビジョニングおよび管理するためにも、たとえばソフトウェアベースのデマンド・コンピューティングを提供するためにも使用されうる。
【００５３】
ここに記載されたような技法およびコンポーネントを使って、仮想サーバー・ブレード７０、８０および９０のようなソフトウェアベースのブレードは、チーム化およびフェイルオーバー設計のために使用されてもよく、高い信頼性、可用性およびスケーラビリティ（reliability,  availability,  and  scalability）（RAS）を実現できる。たとえば、ブレード管理エージェント４２および仮想ブレード監督手段４１は、エミュレートされるサーバー・ブレードの動作パラメータを、エミュレートされたBMCから受信されたデータに反応して、自動的に修正しうる。たとえば、エミュレートされたBMCからのデータが、対応する仮想ブレード内のアプリケーションが誤動作したかハングアップしたことを示している場合、ブレード管理エージェント４２および仮想ブレード監督手段４１は、自動的に、誤動作している仮想ブレードを別の仮想ブレードで置き換えうる。代わりの仮想ブレードは既存の仮想ブレードであってもよいし、あるいは処理システム２０が自動的に新しい仮想ブレードをフェイルオーバー・ブレードとして使うためにプロビジョニングしてもよい。ブレード管理エージェント４２および仮想ブレード監督手段４１はそのような動作を、少なくとも部分的には、ポリシー・フィルタ４４および／またはポリシー・データベース４３のようなブレード管理ポリシーのデータベースに保存されているブレード管理のための所定のポリシーに基づいて実行しうる。
【００５４】
ブレード管理エージェント４２および／または仮想ブレード監督手段４１は、他の型の条件に反応して、エミュレートされる仮想サーバー・ブレード７０、８０および９０の動作パラメータに別の種類の修正を自動的にすることもありうる。たとえば、VMM４０は、仮想BMC６２によって検出された他の種類の条件に反応して、自動的な負荷平均化およびその他の型の自動調整を提供しうる。そしてVMM４０は、ローカルまたはリモートのブレード管理ソフトウェア・パッケージから手動または自動的な調整がなされることを許容しうる。たとえば、VMM４０は、メモリ割り当てをあるVMから別のVMに移すことによってメモリのホット追加と同等なことを達成でき、仮想ディスクをあるVMから別のVMに移すことによってディスクスペースのホット追加と同等なことを達成できる。同様の調整は、ネットワークの帯域幅などに関しても行うことができる。
【００５５】
ここに記載された技術は、既存の技術と協働して使用されることでソフトウェアを介してフェールセーフな機構を提供しうる。たとえば、企業ブレード機能が単一のボックス内に設けられうる。従来式のサーバー・ブレード・インフラストラクチャーに多大な投資をしている顧客は、ここに記載されたVMMベースの仮想ブレードを管理するためにそのインフラストラクチャーを使用することができる。仮想サーバー・ブレードをもつ処理システムは、他の型のシステムと比べて、消費される単位エネルギー（たとえばワット）およびスペース（たとえばセンチメートル（cm3））当たりにより高い処理パフォーマンス（たとえば、数百万命令毎秒（MIPS））を提供しうる。
【００５６】
ある実施形態では、処理システム２０は仮想サーバー・ブレードの論理的なビューを提供する。それにより異なるテナントが強い孤立属性を享受し、ブレード管理可能性インフラストラクチャーの利点を引き出すことができる。したがって、ユーザーは、ブレード・シャーシおよび物理的なサーバー・ブレードをもつ処理システムに比べ、縮減された製品素材表（BOM:  bill  of  material）コストを享受することができ、それでいてブレード・アーキテクチャに基づくサーバーの恩恵の多くを享受できる。たとえば、物理的なサーバー・ブレードをもつ処理システムについてのBOMは冗長なサーバー管理ハードウェア、冷却コンポーネントなどを含むことがある。
【００５７】
実施形態によっては、ハードウェア仮想化のサポートがプロセッサまたはプラットフォームの開発者によって提供される。そのような実施形態では、顧客は、サードパーティーのソフトウェア開発者からの何の仮想化ソフトウェアの必要もなく、仮想サーバー・ブレードを展開しうる。
【００５８】
ここに記載され、図示された原理および例示的な実施形態に照らせば、そのような原理から外れることなく、例示された実施形態を構成および詳細において修正できることは認識されるであろう。たとえば、本発明はここに記載される例示的な実施形態における利用に限定されることはなく、他の多くの型のシステムにおいて有利に使用されうる。さらに、以上の議論は特定の実施形態に焦点を当ててきたが、他の構成も考えられる。特に、「ある実施形態では」「別の実施形態では」などのような表現がここで使用されているが、これらの句は実施形態の可能性を概括的に指すことを意図したものであって、本発明を特定の実施形態の構成に限定することを意図したものではない。ここでの用法では、これらの用語は同じ実施形態を指してもよいし、組み合わせて他の実施形態にできる異なる実施形態を指してもよい。
【００５９】
同様に、例示的なプロセスは特定の序列で実行される個別的な諸動作に関して記載されてきたが、該プロセスへの数多くの修正を適用して本発明の数多くの代替的な実施形態を導くことができることは当業者には明らかであろう。たとえば、代替的な実施形態としては、開示された動作の全部よりも少ないものを使用するプロセス、追加的な動作を使うプロセス、同じ諸動作を異なる序列で使うプロセスおよびここに開示されている個々の動作が組み合わされ、細分され、または他の仕方で変更されたプロセスが含まれうる。
【００６０】
本発明の代替的な実施形態としてはまた、本発明の動作を実行するための命令をエンコードしている機械アクセス可能媒体が含まれうる。そのような実施形態は、プログラム・プロダクトとも称されうる。そのような機械アクセス可能媒体は、限定なしに、フロッピー（登録商標）ディスク、ハードディスク、CD-ROM、DVD、ROMおよびRAMといった記憶媒体のほかアンテナ、ワイヤ、光ファイバー、マイクロ波、電波および他の電磁的もしくは工学的担体のような通信媒体を含みうる。したがって、命令およびその他のデータは、伝送環境またはネットワーク上を、パケット、シリアルデータ、パラレルデータ、伝搬信号などの形で配送されることができ、分散環境において使われ、単一プロセッサ機械またはマルチプロセッサ機械によるアクセスのためにローカルおよび／またはリモートに保存されることができる。
【００６１】
また、ここに記載されたハードウェアおよびソフトウェアのコンポーネントは、それぞれが他とは実質的に独立して設計され、構築され、あるいは更新されることができるよう、合理的な程度に自己完結した機能要素を表す。代替的な実施形態では、それらのコンポーネントの多くは、ハードウェア、ソフトウェアまたはハードウェアおよびソフトウェアの組み合わせとして、ここに記載され、図示された機能性を提供するために実装されうる。
【００６２】
ここに記載された例示的な実施形態から容易に導きうる有用な入れ替えの幅広い多様性に鑑み、この詳細な説明は単に例示的なものであることが意図されており、本発明の範囲を限定するものと解釈すべきではない。したがって、発明として特許請求されるものは、付属の請求項の範囲および精神の範囲内にはいるあらゆる実装ならびにそのような実装に対するあらゆる等価物である。
【図面の簡単な説明】
【００６３】
【図１】本発明の例示的な実施形態に基づく仮想サーバー・ブレードを含むための好適なデータ処理環境におけるハードウェアおよびソフトウェアを描くブロック図である。
【図２】本発明の例示的な実施形態に基づく、仮想サーバー・ブレードを提供するためのプロセスのフローチャートである。
【図３】本発明の例示的な実施形態に基づく、仮想サーバー・ブレードを提供するためのプロセスのフローチャートである。
【図１】
2008523512.tif 000003
【図２】
2008523512.tif 000004
【図３】
2008523512.tif 000005
【国際調査報告】
2008523512.tif 000006
2008523512.tif 000007