(57)【特許請求の範囲】
【請求項１】
資源を配分する方法であって、
１又は複数の仮想ハイパーバイザをアプリケーション・プログラミング・インタフェースとして生成することによってクラウド運用センタに備えられたクラウド・マネージャと、１つ以上のデータ・センタとの間に抽象化レイヤを提供するステップであって、前記クラウド運用センタは顧客にクラウド・サービスを提供し、且つ、前記データ・センタそれぞれは、当該データ・センタにおいて資源を管理する資源プール・マネージャ、並びに、１又は複数の物理サーバ、及び前記物理サーバそれぞれに関連付けられたハイパーバイザを備えており、前記仮想ハイパーバイザは、前記顧客毎に用意され、前記仮想ハイパーバイザは、前記クラウド・マネージャによって管理され、且つ前記クラウド・マネージャによって前記物理サーバへ対応付けられる、前記提供するステップと、
前記１つ以上のデータ・センタによる作業負荷要求に応答して、前記作業負荷の非機能要件が、前記仮想ハイパーバイザを用いて前記抽象化レイヤにおいて対処されるように、前記仮想ハイパーバイザを用いて、資源を区画し、仮想マシンを前記１つ以上のデータ・センタ内でインスタンス化するステップであって、前記インスタンス化された仮想マシンの前記仮想ハイパーバイザ上の配置及び管理は、前記プール資源マネージャによって処理され、前記インスタンス化された仮想マシンは、前記仮想ハイパーバイザそれぞれ上に関連付けられる、前記インスタンス化するステップと
を含み、前記クラウド運用センタが前記クラウド・マネージャを用いて前記提供するステップを実行し、前記物理サーバが前記仮想マシンをインスタンス化するステップを実行する、前記方法。
【請求項２】
前記インスタンス化するステップの後に、
前記クラウド運用センタと前記１つ以上のデータ・センタとの間で通信が前記仮想ハイパーバイザを通じて行われる、請求項１に記載の方法。
【請求項３】
前記通信が、前記データ・センタの資源プール・マネージャとコンタクトすることを含む、請求項２に記載の方法。
【請求項４】
前記通信が、前記データ・センタの物理サーバに関連付けられたハイパーバイザとコンタクトすることを含む、請求項２に記載の方法。
【請求項５】
前記クラウド運用センタと前記１つ以上のデータ・センタとの間で通信が前記仮想ハイパーバイザを通じて行われた後に、
異なるサーバにおいて複数の仮想マシンをインスタンス化するために前記仮想ハイパーバイザにおいて単一の作成コマンドを利用される、請求項２〜４のいずれか一項に記載の方法。
【請求項６】
前記異なるサーバは、異なるデータ・センタにある、請求項５に記載の方法。
【請求項７】
前記異なるサーバにおいて複数の仮想マシンをインスタンス化するために前記仮想ハイパーバイザにおいて単一の作成コマンドが利用された後に、
前記抽象化レイヤにおいて前記非機能要件に対処するために、前記非機能要件が前記仮想ハイパーバイザに入力として入力される、請求項５又は６に記載の方法。
【請求項８】
資源を配分するシステムであって、
クラウド・マネージャを備えており且つ顧客にクラウド・サービスを提供するクラウド運用センタであって、前記クラウド・マネージャは、１又は複数の仮想ハイパーバイザをアプリケーション・プログラミング・インタフェースとして生成することによって当該クラウド運用センタに備えられ、
資源プール・マネージャ、及び１又は複数の物理サーバを備えている１つ以上のデータ・センタであって、前記資源プール・マネージャは、前記データ・センタにおいて資源を管理し、前記１又は複数の物理サーバそれぞれはハイパーバイザに関連付けられている、前記データ・センタと
を備えており、
前記クラウド運用センタが、前記クラウド・マネージャを用いて、前記クラウド・マネージャと、前記１つ以上のデータ・センタとの間に抽象化レイヤを提供し、前記仮想ハイパーバイザは、前記顧客毎に用意され、前記仮想ハイパーバイザは、前記クラウド・マネージャによって管理され、且つ前記クラウド・マネージャによって前記物理サーバへ対応付けられ、
前記物理サーバが、前記１つ以上のデータ・センタによる作業負荷要求に応答して、前記作業負荷の非機能要件が、前記仮想ハイパーバイザを用いて前記抽象化レイヤにおいて対処されるように、前記仮想ハイパーバイザを用いて、資源を区画し、仮想マシンを前記１つ以上のデータ・センタ内でインスタンス化し、前記インスタンス化された仮想マシンの前記仮想ハイパーバイザ上の配置及び管理は、前記プール資源マネージャによって処理され、前記インスタンス化された仮想マシンは、前記仮想ハイパーバイザそれぞれ上に関連付けられる、
前記システム。
【請求項９】
前記インスタンス化の後に、
前記クラウド運用センタと前記１つ以上のデータ・センタとの間で通信が前記仮想ハイパーバイザを通じて行われる、請求項８に記載のシステム。
【請求項１０】
前記通信が、前記データ・センタの資源プール・マネージャとコンタクトすることを含む、請求項９に記載のシステム。
【請求項１１】
前記通信が、前記データ・センタの物理サーバに関連付けられたハイパーバイザとコンタクトすることを含む、請求項９に記載のシステム。
【請求項１２】
前記クラウド運用センタと前記１つ以上のデータ・センタとの間で通信が前記仮想ハイパーバイザを通じて行われた後に、
異なるサーバにおいて複数の仮想マシンをインスタンス化するために前記仮想ハイパーバイザにおいて単一の作成コマンドが利用される、請求項９〜１１のいずれか一項に記載のシステム。
【請求項１３】
前記異なるサーバは、異なるデータ・センタにある、請求項１２に記載のシステム。
【請求項１４】
前記異なるサーバにおいて複数の仮想マシンをインスタンス化するために前記仮想ハイパーバイザにおいて単一の作成コマンドが利用された後に、
前記抽象化レイヤにおいて前記非機能要件に対処するために、前記非機能要件が前記仮想ハイパーバイザに入力として入力される、請求項１２又は１３に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はコンピュータ・ネットワークに関し、より具体的には、クラウド環境内の資源配分システムおよび方法に関する。
【背景技術】
【０００２】
仮想化が急速に普及し、それはコンピューティング・スタックの多数のレベルに影響を与えている。仮想化は資源をそれらのユーザから切り離すので、それは資源配分に関してより大きな柔軟性を提供するが、システムの最適設計、プロビジョニングおよび実行時管理についての新たな課題も生む。クラウド・コンピューティングは、仮想化資源をインターネット上で「サービスとして」提供するコンピューティングのパラダイムである。クラウド・マネージャが仮想資源のライフサイクル管理、物理資源の効率的利用を担い、それらは運用のための基本的アプリケーション・プログラミング・インタフェース（ａｐｐｌｉｃａｔｉｏｎ  ｐｒｏｇｒａｍｍｉｎｇ  ｉｎｔｅｒｆａｃｅ、ＡＰＩ）をユーザに提示する。すると、これらの仮想資源上にソフトウェア・ソリューションが配置されることができる。
【０００３】
物理資源をそれらのユーザから切り離す仮想化は、データ・センタの革新および最適化の主要な推進力のうちの１つとして現れた。オペレーティング・システムの仮想化は１９６０年代にＩＢＭ（ＩＢＭ社の登録商標）によって最初に提案された。近年では、ロー・エンド・マシンの計算能力の向上に伴い、同様の能力が今や多くのプラットフォームのために利用可能である。仮想化サーバは、複数の仮想マシン（ｖｉｒｔｕａｌ  ｍａｃｈｉｎｅ、ＶＭ）をホストする基盤ハードウェアの抽象化を与えるハイパーバイザと呼ばれる薄いソフトウェアまたはファームウェア・レイヤを実行させる。ＶＭは、オペレーティング・システムの無変更バージョン（完全仮想化の場合）または若干変更されたバージョン（準仮想化の場合）のいずれかを実行する。仮想化は、いくつかの作業負荷を単一のサーバ上で組み合わせることによってサーバ使用率を高め、従って、データ・センタの効率を高める。
【０００４】
図１を参照すると、「ハイブリッド」クラウドのＶＭ配置シナリオが例示的に示されている。同シナリオでは、顧客「Ａ」のデータ・センタが、３つの作業負荷を配することを要求する：１）「作業負荷１」は、データ・センタの内部で可用性が高く且つ、障害の場合には別のデータ・センタ内で回復可能でなければならない重要なビジネス・アプリケーションを用いるサーバ作業負荷を包含する；２）「作業負荷２」は、ユーザに割り当てられる仮想デスクトップであって、より低いセキュリティ制限を有するが、レイテンシには非常に敏感な、仮想デスクトップである；３）「作業負荷３」はユーザに割り当てられる仮想デスクトップであって、より高いセキュリティ要件を有する、仮想デスクトップである。仮想マシン（ＶＭ）の配置は通例、図に示される以下のステップを含む：ステップ１．クラウド・マネージャ１０が適当なデータ・センタ１４内の資源プール・マネージャ１２に、十分な容量を有する利用可能なハイパーバイザ１６を要求する。ステップ２．クラウド・マネージャ１０が、テンプレート／アプライアンスからＶＭを配置するためにハイパーバイザ１６を（ｌｉｂＶｉｒｔまたはＶＭＷａｒｅ  ＳＤＫ（Ｒ）のような標準的ＡＰＩを用いて）呼び出す。ステップ３．ハイパーバイザがＶＭ（ＶＭ１）を作成する。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
作業負荷１の配置は、３つの仮想マシンをプロビジョニングすることを必要とする−ＶＭ１がプライマリである；−ＶＭ１’は高可用性のためのバックアップである；−ＶＭ１”は別のデータ・センタ（データ・センタ２）１５内のバックアップである。作業負荷２の配置は、レイテンシの低減のためにユーザ（顧客Ａ）と物理的に近接して位置するサービス・プロバイダ（Ｓｅｒｖｉｃｅ  Ｐｒｏｖｉｄｅｒ、ＳＰ）のデータ・センタ（データ・センタ２）１５内に１つの仮想マシン、ＶＭ２、が作成されることを必要とする。作業負荷３の配置は、セキュリティの向上のために顧客データ・センタ１７内に１つの仮想マシン、ＶＭ３、が作成されることを必要とする。作業負荷および非機能要件（ｎｏｎ−ｆｕｎｃｔｉｏｎａｌ  ｒｅｑｕｉｒｅｍｅｎｔ、ＮＦＲ）の種類に基づき、クラウド・マネージャ１０からの呼び出しは複雑になり得ようし、毎回異なり得よう。
【課題を解決するための手段】
【０００６】
クラウド環境内で資源を配分するシステムおよび方法が、仮想ハイパーバイザをアプリケーション・プログラミング・インタフェースとして生成することによってクラウド環境と１つ以上のデータ・センタとの間に抽象化レイヤを提供することを含む。１つ以上のデータ・センタによる作業負荷要求に応答して、作業負荷の非機能要件が、仮想ハイパーバイザを用いる抽象化レイヤにおいて対処されるように、仮想ハイパーバイザを用いて、資源が区画され、仮想マシンがインスタンス化される。
【０００７】
クラウド環境内で資源を配分するシステムが、クラウド・マネージャによって管理され、少なくとも１つのデータ・センタからの作業負荷要求を満たすように構成されるクラウド・ネットワークであって、少なくとも１つのデータ・センタは、仮想マシンを管理するように構成される資源マネージャを含む、クラウド・ネットワークを含む。少なくとも１つの仮想ハイパーバイザが、クラウド・マネージャと少なくとも１つのデータ・センタとの間のインタフェースを提供するように構成される。少なくとも１つの仮想ハイパーバイザは、クラウド・マネージャと少なくとも１つのデータ・センタとの間の対話の複雑さを低減するべく、抽象化レイヤにおいて作業負荷の非機能要件に対処するように構成される。
【０００８】
これらおよび他の特徴および利点が、それらの例示的な実施形態の以下の詳細な記載から明らかとなるであろう。詳細な記載は添付の図面と関連して読まれたい。
【０００９】
本開示は、好ましい実施形態の以下の記載において、以下の図を参照しながら詳細を提供する。
【図面の簡単な説明】
【００１０】
【図１】データ・センタにおいて仮想マシンが作成される従来のクラウド・ネットワークを示すブロック図である。
【図２】１つの例示的な実施形態による、仮想ハイパーバイザを有する抽象化レイヤとインタフェースをとるクラウド・ネットワークを示すブロック図である。
【図３】１つの例示的な実施形態による、資源を配分するシステム／方法を示すブロック／フロー図である。
【発明を実施するための形態】
【００１１】
本原理によれば、クラウド・マネージャが究極の物理資源マネージャとしてのその役割を維持しつつ、顧客が彼らの仮想マシンに関する資源配分決定をより高度に制御することを可能にする仮想ハイパーバイザ抽象化レイヤが提供される。加えて、仮想ハイパーバイザ抽象化レイヤが大域的クラウド・マネージャによってどのように効率的に実現されることができるのかを示す資源配分方法が提供される。本コンセプトは、異なる仮想ハイパーバイザ間のより公平な資源共有および分離を達成するために用いることができる。
【００１２】
特に有用な実施形態によれば、クラウド・モデルは、仮想マシン（ＶＭ）に関する資源配分決定のより良い制御を提供するために強化される。クラウド上でホストされるソリューションの管理からクラウド物理インフラストラクチャの管理の区画が維持される。顧客に従うこの区画によって、資源プール・マネージャはそれらの環境を最適化することに専念することができ、クラウド管理は、物理資源を最も効率的に活用すること、およびその顧客とのサービス品質保証契約（Ｓｅｒｖｉｃｅ  Ｌｅｖｅｌ  Ａｇｒｅｅｍｅｎｔ、ＳＬＡ）が履行されるのを確実にすることに集中することができる。
【００１３】
この分割を達成するために、仮想ハイパーバイザ（Ｖｉｒｔｕａｌ  Ｈｙｐｅｒｖｉｓｏｒ、ＶＨ）が導入され、基盤資源はどのように共有されるべきか、および資源競合はどのように解決されるべきかをソリューションが決定することを可能にする抽象化レイヤを提供する。クラウド・マネージャは、仮想ハイパーバイザによって規定される制約を満たす限りにおいて（クラウド・マネージャの観点から）いちばん最適な様式で仮想マシンを物理サーバに対応付けることができる。
【００１４】
クラウド・マネージャは、特定のＶＭからではなく、クラウドから仮想ハイパーバイザを要求する。次に、クラウド・マネージャはこれらの仮想ハイパーバイザを、ちょうど、それが物理ホスト上の実際のハイパーバイザを用いるであろうように用い、実際の物理サーバおよび仮想化または資源プール・マネージャに関して用いられるものと同様のアプリケーション・プログラミング・インタフェース（ＡＰＩ）を用いてそれらとインタフェースをとる。これらの仮想ハイパーバイザは現実のエンティティではない。それらは単に、クラウド／クラウド・マネージャとデータ・センタとの間の単一のサービス品質保証契約、顧客要求、または他のイベントを基準にしてクラウドによって管理される資源の抽象的集合である。仮想ハイパーバイザの、物理サーバ上への実際の対応付けはクラウド・マネージャの任務であり、仮想ハイパーバイザの上のＶＭの配置および管理はデータ・センタの仮想化インフラストラクチャ内で、例えば、物理サーバに関連付けられるハイパーバイザによって、処理される。
【００１５】
仮想デスクトップでは、例えば顧客のソリューション・マネージャが、仮想ハイパーバイザが実行すべき地理（またはリモート・デスクトップ・エクスペリエンスに影響を与える、所与の場所からのネットワーク距離）、利用可能であるべき容量、ならびにこの仮想ハイパーバイザ内に作成されるＶＭ間のネットワーク帯域幅、および記憶要件などの他のパラメータ等の特定の要件を満たすいくつかの仮想ハイパーバイザをまず要求する。この後、ソリューション・マネージャは仮想ハイパーバイザ内に仮想マシンを作成し、仮想化モデルと同様に容量限度、資源使用配分比率、および他の特性を割り当てる。システム・オペレーションの間、ソリューション・マネージャは仮想ハイパーバイザ内のその仮想マシンの配分比率を調整するか、または１つの仮想ハイパーバイザからもう１つのものにＶＭを移行することができる。それらの操作は資源配分およびユーザ・エクスペリエンスに明白な効果を有する。例えば、デスクトップ・ソリューション・マネージャが、或るデスクトップは、あまり重要でない作業を遂行していることが分かれば、それはそれらのうちの多くを単一の仮想ハイパーバイザに移行すると同時に、より重要なＶＭをあまり混雑していない仮想ハイパーバイザに移動することができる。この移行は必ずしもインフラストラクチャ・レベルにおける実際のＶＭ移行を生じさせるのではないことに留意されたい。仮想ハイパーバイザによって指定される分離および資源配分を実現する仕方を決定することはクラウド・マネージャに委ねられている。同様の表現力が、クラウド・モデル内のＶＭのセット上の複雑な言語によって達成されることができよう。
【００１６】
仮想ハイパーバイザ抽象化レイヤが、クラウド・マネージャの、究極の物理資源マネージャとしての役割を維持しつつ、ソリューション・マネージャ、または資源プール・マネージャがそれらの仮想マシンに関する資源配分決定をより高度に制御することを可能にする。資源配分方法が、仮想ハイパーバイザ抽象化レイヤが大域的クラウド・マネージャによってどのように効率的に実現されることができるのかを示す。本ソリューションは仮想ハイパーバイザを導入し、異なるネットワーク（サービス・プロバイダ、顧客）上の地理的に分散した異なる物理サーバ上にあることができるようにハイパーバイザを抽象化する。この仮想ハイパーバイザはクラウド・ソリューションの配置を簡易化する。
【００１７】
当業者によって理解されるように、本発明の態様はシステム、方法またはコンピュータ・プログラム製品として具体化されてよい。それ故、本発明の態様は、完全にハードウェアの実施形態、完全にソフトウェアの実施形態（ファームウェア、常駐ソフトウェア、マイクロ・コード等を含む）あるいはソフトウェアおよびハードウェアの態様を組み合わせた実施形態という形をとってよく、本願明細書においてそれらはすべて広く「回路」、「モジュール」または「システム」と呼ばれてよい。さらに、本発明の態様は、１つ以上のコンピュータ可読媒体（単数または複数）であって、その上に具体化されるコンピュータ可読プログラム・コードを有する、コンピュータ可読媒体内に具体化されるコンピュータ・プログラム製品という形をとってもよい。
【００１８】
１つ以上のコンピュータ可読媒体（単数または複数）の任意の組み合わせが利用されてよい。コンピュータ可読媒体はコンピュータ可読信号媒体またはコンピュータ可読記憶媒体であってよい。コンピュータ可読記憶媒体は、例えば、電子的、磁気的、光学的、電磁的、赤外線または半導体システム、装置またはデバイス、あるいは上述のものの任意の適当な組み合わせであってよい。ただし、それらに限定されるものではない。コンピュータ可読記憶媒体のより具体的な例（非包括的なリスト）としては以下のもの：１本以上のワイヤを有する電気接続、ポータブル・コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ（ｒａｎｄｏｍ  ａｃｃｅｓｓ  ｍｅｍｏｒｙ、ＲＡＭ）、リード・オンリー・メモリ（ｒｅａｄ−ｏｎｌｙ  ｍｅｍｏｒｙ、ＲＯＭ）、消去可能プログラマブル・リード・オンリー・メモリ（ｅｒａｓａｂｌｅ  ｐｒｏｇｒａｍｍａｂｌｅ  ｒｅａｄ−ｏｎｌｙ  ｍｅｍｏｒｙ、ＥＰＲＯＭまたはフラッシュ・メモリ）、光ファイバ、ポータブル・コンパクト・ディスク・リード・オンリー・メモリ（ｃｏｍｐａｃｔ  ｄｉｓｃ  ｒｅａｄ−ｏｎｌｙ  ｍｅｍｏｒｙ、ＣＤ−ＲＯＭ）、光学式記憶デバイス、磁気記憶デバイス、あるいは上述のものの任意の適当な組み合わせ、が挙げられよう。本文書の文脈において、コンピュータ可読記憶媒体とは、命令実行システム、装置またはデバイスによって用いられるまたはそれらと連係して用いられるプログラムを包含または記憶することができる任意の有形媒体であってよい。
【００１９】
コンピュータ可読信号媒体とは、例えば、基底帯域内にまたは搬送波の一部として、内部にコンピュータ可読プログラム・コードが具体化される伝搬データ信号を含むものであってよい。このような伝搬信号は、電磁気的、光学的、またはそれらの任意の適当な組み合わせを含むが、それらに限定されるものではなく、様々な形態のいずれを取ってもよい。コンピュータ可読信号媒体とは、コンピュータ可読記憶媒体ではない、命令実行システム、装置またはデバイスによって用いられるまたはそれらと連係して用いられるプログラムを伝達、伝搬または輸送することができる任意のコンピュータ可読媒体であってよい。
【００２０】
コンピュータ可読媒体上に具体化されるプログラム・コードは、無線、有線、光ファイバケーブル、ＲＦ等、または上述のものの任意の適当な組み合わせを含むが、それらに限定されるものではなく、任意の適切な媒体を用いて送信されてよい。本発明の態様のための作業を行うためのコンピュータ・プログラム・コードは、Ｊａｖａ（Ｒ）、Ｓｍａｌｌｔａｌｋ（Ｒ）、Ｃ＋＋または同様のもの等のオブジェクト指向プログラミング言語、ならびに「Ｃ」プログラミング言語または同様のプログラミング言語等の従来の手続き型プログラミング言語を含む、１つ以上のプログラミング言語の任意の組み合わせで書き込まれてよい。プログラム・コードは、スタンド・アロン・ソフトウェア・パッケージとして完全にまたは一部分はユーザのコンピュータ上で実行するか、一部分はユーザのコンピュータ上で且つ一部分はリモート・コンピュータ上で実行するか、または完全にリモート・コンピュータもしくはサーバ上で実行すればよい。後者のシナリオでは、リモート・コンピュータは、ローカル・エリア・ネットワーク（ｌｏｃａｌ  ａｒｅａ  ｎｅｔｗｏｒｋ、ＬＡＮ）またはワイド・エリア・ネットワーク（ｗｉｄｅ  ａｒｅａ  ｎｅｔｗｏｒｋ、ＷＡＮ）を含む、任意の種類のネットワークを通じてユーザのコンピュータに接続されてもよいし、あるいは接続は、（例えば、インターネット・サービス・プロバイダを利用しインターネットを通じて）外部のコンピュータになされてもよい。
【００２１】
本発明の実施形態による方法、装置（システム）およびコンピュータ・プログラム製品のフローチャート図もしくはブロック図またはその両方を参照しながら本発明の態様が以下に記載されている。フローチャート図もしくはブロック図またはその両方の各ブロック、ならびにフローチャート図もしくはブロック図またはその両方におけるブロックの組み合わせは、コンピュータ・プログラム命令によって実装されることができることは理解されよう。これらのコンピュータ・プログラム命令は、汎用コンピュータ、専用コンピュータ、または他のプログラム可能なデータ処理装置のプロセッサに提供されて機械を作り出してもよく、それにより、命令は、コンピュータまたは他のプログラム可能なデータ処理装置のプロセッサを介して実行し、フローチャートもしくはブロック図またはその両方のブロックまたはブロック群において特定される機能群／動作群を実装する手段を生み出す。
【００２２】
さらにこれらのコンピュータ・プログラム命令は、コンピュータ、他のプログラム可能なデータ処理装置または他のデバイスを特定の様式で機能するように指令することができるコンピュータ可読媒体内に記憶されてもよく、それにより、コンピュータ可読媒体内に記憶された命令は、フローチャートもしくはブロック図またはその両方のブロックまたはブロック群において特定される機能／動作を実装する命令を含む製造品を作り出す。コンピュータ・プログラム命令は、コンピュータ、他のプログラム可能なデータ処理装置または他のデバイス上にロードされ、一連の作業ステップをコンピュータ、他のプログラム可能な装置または他のデバイス上で遂行させ、コンピュータ実装プロセスを作り出してもよく、それにより、コンピュータまたは他のプログラム可能な装置上で実行する命令は、フローチャートもしくはブロック図またはその両方のブロックまたはブロック群において特定される機能群／動作群を実装するためのプロセス群を提供する。
【００２３】
図中のフローチャートおよびブロック図は、本発明の様々な実施形態によるシステム、方法およびコンピュータ・プログラム製品のあり得る実装のアーキテクチャ、機能性、および動作を示す。これに関連して、フローチャートまたはブロック図の各ブロックは、特定の論理機能（単数または複数）を実装するための１つ以上の実行可能命令を含む、モジュール、セグメント、またはコードの一部を表してよい。代替の実装によっては、ブロック内に記された機能は、図に記された順序を外れて行われてよいことにも留意されたい。例えば、連続して示されている２つのブロックが、実際は、実質的に同時に実行されてもよいし、またはブロックは、関係する機能性に依存して、時には逆順序で実行されてもよい。ブロック図もしくはフローチャート図またはその両方の各ブロック、ならびにブロック図もしくはフローチャート図またはその両方におけるブロックの組み合わせは、特定の機能または動作を遂行する専用ハードウェア・ベースのシステム、あるいは専用ハードウェアおよびコンピュータ命令の組み合わせによって実装されることができることにも留意されたい。
【００２４】
次に図面を参照する。図面において、同様の符号は同じまたは類似の要素を表す。最初に図２を参照すると、例示的なブロック図がシステム１００を示す。システム１００は、１つの実施形態によるクラウド・ネットワーク１０２を含む。クラウド・ネットワーク１０２は、顧客にクラウド・サービスを提供するためのハードウェアおよびソフトウェア・コンポーネントを含むクラウド運用センタ１０４を含む。１つの例示的な適用では、クラウド・ネットワーク１０２は顧客に仮想デスクトップ・サービスを提供してよい。クラウド・ネットワーク１０２はイメージ・データベース１０８、構成管理データベース（ｃｏｎｆｉｇｕｒａｔｉｏｎ  ｍａｎａｇｅｍｅｎｔ  ｄａｔａｂａｓｅ、ＣＭＤＢ）１１０およびポリシー・データベース１１２を含んでよい。イメージ・データベース１０８は、問題または故障の発生時にネットワークの部分の復元方法を提供するために、ネットワークのスナップショットを記憶してよい。ＣＭＤＢ１１０はすべてのクラウド・マネージャ機能を支援し、ポリシー１１２は、クラウド・マネージャ１０６によって、クラウド・ネットワークおよびそのインタフェースを管理する際に用いられる。
【００２５】
クラウド・ネットワーク１０２はクラウド・マネージャ１０６を含み、管理者１０５によって維持される。クラウド・マネージャ１０６は複数のユーザ、顧客、ノード等の間で資源を配分するように構成される。１つの例示的な実施形態では、クラウド・マネージャ１０６とデータ・センタ１２０、１２１および１２２内の仮想化資源との間の対話が、それらの間に抽象化レイヤ１３０を挿入することによって簡易化されることができる。データ・センタ１２０、１２１および１２２は、地理的に分散したサービス・プロバイダ・データ・センタであってもよいしまたはオンプレミスの顧客データ・センタであってもよい。
【００２６】
データ・センタ１２０、１２１および１２２は各々、関連資源プール・マネージャ１３４であって、そのそれぞれのデータ・センタにおいて内部で資源を管理するように構成される、関連資源プール・マネージャ１３４を含む。各データ・センタ（１２０、１２１、１２２）内の物理サーバ１４０はハイパーバイザ１４２を含む。
【００２７】
関連資源プール・マネージャ１３４は仮想マシン（ＶＭ）１４４を配置し、問題空間固有の知識、および現在の作業負荷、カレンダー、壁時計時刻、履歴に基づいた作業負荷モデル等を含む実行時情報に基づき仮想マシンを管理する。これらの管理機能を遂行するために、関連資源プール・マネージャ１３４は個々の物理サーバ１４０上のハイパーバイザ１４２、あるいは中央仮想化インフラストラクチャ・マネージャまたはプール関連資源マネージャ１３４と対話する。関連資源プール・マネージャ１３４はサーバ１４０の各々の上の（ＶＭ１４４の各々による）資源使用を監視するとともに、ＶＭ１４４の追加、削除、開始、停止等の構成改変を行う。関連資源プール・マネージャ１３４は、ＶＭ１４４の、物理サーバ１４０上への配置、および競合の期間中にＶＭ１４４の各々に配分される資源の相対的配分比率を制御することもできる。関連資源プール・マネージャ１３４は、性能および資源利用を最適化するべくこれらの制御を操作する。
【００２８】
抽象化レイヤ１３０は仮想ハイパーバイザまたはハイパーバイザ群１３２を含むまたは提供する。仮想ハイパーバイザ１３２は、現実のハイパーバイザ（例えば、当技術分野において周知のｌｉｂＶｉｒｔ、ＶＭＷａｒｅ  ＳＤＫ（Ｒ）と同様のものであってよい）と同様のアプリケーション・プログラミング・インタフェース（ＡＰＩ）を提供する。仮想ハイパーバイザ１３２は、実際の物理サーバ１４０および仮想化マネージャ、例えば１３４、で用いられるものと同様のＡＰＩを用いてそれらとインタフェースをとる物理ホスト上で用いられる。これらの仮想ハイパーバイザ１３２は現実のエンティティではない。それらは単に、例えば、クラウド・マネージャ１０６とデータ・センタ１２０、１２１もしくは１２２またはそれらのすべての関連資源プール・マネージャ１３４またはマネージャ群１３４との間のサービス品質保証契約を基準にして、クラウド・マネージャ１０６によって管理される資源の抽象的集合である。仮想ハイパーバイザ１３２の、物理サーバ（例えばサーバ１４０）上への実際の対応付けはクラウド・マネージャ１０６の任務であり、仮想ハイパーバイザ１３２上のＶＭ１４４の配置および管理は関連資源プール・マネージャ１３４によって処理される。
【００２９】
都合のよいことに、クラウド・マネージャ１０６から仮想ハイパーバイザへの呼び出しはもはや作業負荷の非機能要件（ＮＦＲ）に依存しない。ＮＦＲは仮想ハイパーバイザ１３２に対する呼び出しへの入力のうちの１つである。仮想ハイパーバイザ１３２はプロキシとして機能し、仮想マシンまたは資源割り当てに関連付けられる複雑さを隠す。仮想ハイパーバイザ１３２は、適当なデータ・センタ（１２０、１２１、１２２）内の関連資源プール・マネージャ１３４とコンタクトすること、物理サーバ１４０のハイパーバイザ１４２とコンタクトすることおよびＶＭ１４４をインスタンス化することを処理する。
【００３０】
非機能要件とは、特定の挙動ではなく、システムの動作を評価するために用いることができる基準を指定する要件である。非機能要件はシステムがどのようであるべきかを規定し、非機能要件はしばしばシステムの品質と呼ばれる。非機能要件は制約、品質特性、品質目標およびサービス品質要件等を含む。特に有用な実施形態では、ＮＦＲは障害回復基準、レイテンシ基準、セキュリティ基準および他のシステム品質を含んでよい。非機能要件は２つの主カテゴリに分けられることができる：１．実行時に観察可能である、セキュリティおよび有用性等の、実行品質。２．ソフトウェア・システムの静的構造において具体化される、テスト容易性、保全性、拡張性およびスケーラビリティ等の、発展品質。十分なネットワーク帯域幅がシステムの非機能要件となってもよい。
【００３１】
作業負荷ＮＦＲは、例えば、アクセス可能性、サービス品質保証契約基準、資源制約（プロセッサ速度、メモリ、ディスク・スペース、ネットワーク帯域幅等）、オンライン応答時間、会社オフィスのタイミング、セキュリティ、バックアップ等を含んでよい。ＮＦＲは、クラウド・マネージャ１０６になされる作業負荷要求に応答する困難のレベルを増す。本原理の１つの態様によれば、仮想ハイパーバイザ１３２は、ＮＦＲへの適合の容易さを提供するべく、抽象化レイヤ１３０においてＶＭをインスタンス化し、データ・センタまたは他のエンティティの間で資源を区画することができる。ＮＦＲは仮想ハイパーバイザ１３２に入力として提供されてよく、ネットワーク状態の評価が確定されれば、ＮＦＲは対処されることができる。これは、ＮＦＲに対処することにおける複雑さを大幅に低減する。
【００３２】
仮想ハイパーバイザ１３２は、例えば、高可用性障害回復（Ｈｉｇｈ  Ａｖａｉｌａｂｉｌｉｔｙ  Ｄｉｓａｓｔｅｒ  Ｒｅｃｏｖｅｒｙ、ＨＡＤＲ）シナリオにおける、マルチＶＭ配置を可能にする。１つの例では、クラウド・マネージャ１０６から仮想ハイパーバイザへの単一の作製コマンドが、複数のＶＭがインスタンス化される結果を生じさせることができる。上記の例を用いれば、単一のコマンドによって３つのＶＭが作成されてよい。例えば、異なるデータ・センタ（１２０、１２１）内の異なる物理サーバ１４０上にＶＭ１、ＶＭ１’およびＶＭ１”が作成される。仮想ハイパーバイザ１３２は、異なる種類のハイパーバイザ（例えば、ハイパーバイザ１４２）に関連付けられる異種環境のオペレーション・セットの処理を可能にする。仮想ハイパーバイザ１３２は、資源のより公平且つ効率的な分散を可能にし、ユーザ／サービス・プロバイダにより高い柔軟性および複雑さの低減を提供する機構および機能性を提供する。
【００３３】
図３を参照すると、クラウド環境内で資源を配分するシステム／方法が例示的に示されている。ブロック２０２では、仮想ハイパーバイザをアプリケーション・プログラミング・インタフェースとして生成することによってクラウド環境と１つ以上のデータ・センタとの間に抽象化レイヤが提供または生成される。ブロック２０４では、１つ以上のデータ・センタによる作業負荷要求に応答して、資源を区画し、仮想マシンをインスタンス化することが、仮想ハイパーバイザを用いて１つ以上のデータ・センタ内で遂行され、それにより、作業負荷の非機能要件が、仮想ハイパーバイザを用いる抽象化レイヤにおいて対処される。
【００３４】
ブロック２０６では、クラウド環境と１つ以上のデータ・センタとの間の通信が、仮想ハイパーバイザを通じて提供される。これは、例えば、データ・センタの資源プール・マネージャとコンタクトすること、データ・センタの物理サーバに関連付けられたハイパーバイザとコンタクトすること等を含んでよい。ブロック２０８では、簡易化したコマンドが利用されてよい。例えば、異なるサーバにおいて複数の仮想マシンを作成するために単一の作成コマンドが仮想ハイパーバイザにおいて利用される。異なるサーバは異なるデータ・センタにあってよい。ブロック２１０では、非機能要件が、抽象化レイヤにおいて非機能要件に対処するべく仮想ハイパーバイザに入力される。
【００３５】
仮想マシンの、非機能要件に基づく配置の抽象化方法およびシステムの好ましい実施形態を記載したが（それらは例示を意図されるものであって、限定を意図されるものではない）、上述の教示に鑑みれば当業者によって変更および変形がなし得ることに留意されたい。従って、開示されている特定の実施形態において、添付の請求項によって要点を示されている通りの本発明の範囲に含まれる改変がなされてよいことを理解されたい。以上のように、特許法によって特に要求される本発明の態様を、詳細を用いて記載したが、クレームされ、特許証によって保護されるよう希望されるものは添付の請求項に明記されている。
【図１】
0005497201.tif 000002
【図２】
0005497201.tif 000003
【図３】
0005497201.tif 000004