特許第6054522号(P6054522)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ ヴイエムウェア インコーポレイテッドの特許一覧

特許6054522統合型ストレージ/VDIプロビジョニング方法
<>
  • 特許6054522-統合型ストレージ/VDIプロビジョニング方法 図000002
  • 特許6054522-統合型ストレージ/VDIプロビジョニング方法 図000003
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6054522
(24)【登録日】2016年12月9日
(45)【発行日】2016年12月27日
(54)【発明の名称】統合型ストレージ/VDIプロビジョニング方法
(51)【国際特許分類】
   G06F 9/50 20060101AFI20161219BHJP
   G06F 9/46 20060101ALI20161219BHJP
【FI】
   G06F9/46 462Z
   G06F9/46 350
【請求項の数】15
【全頁数】18
(21)【出願番号】特願2015-516196(P2015-516196)
(86)(22)【出願日】2013年6月6日
(65)【公表番号】特表2015-518997(P2015-518997A)
(43)【公表日】2015年7月6日
(86)【国際出願番号】US2013044465
(87)【国際公開番号】WO2013188205
(87)【国際公開日】20131219
【審査請求日】2016年5月2日
(31)【優先権主張番号】13/493,939
(32)【優先日】2012年6月11日
(33)【優先権主張国】US
【早期審査対象出願】
(73)【特許権者】
【識別番号】510149482
【氏名又は名称】ヴイエムウェア インコーポレイテッド
【氏名又は名称原語表記】VMware,Inc.
(74)【代理人】
【識別番号】100105957
【弁理士】
【氏名又は名称】恩田 誠
(74)【代理人】
【識別番号】100068755
【弁理士】
【氏名又は名称】恩田 博宣
(74)【代理人】
【識別番号】100142907
【弁理士】
【氏名又は名称】本田 淳
(72)【発明者】
【氏名】ベヴァリッジ、ダニエル ジェームズ
【審査官】 小林 哲雄
(56)【参考文献】
【文献】 米国特許出願公開第2011/0047329(US,A1)
【文献】 特開2006−244481(JP,A)
【文献】 米国特許出願公開第2011/0246984(US,A1)
【文献】 米国特許出願公開第2003/0120676(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 9/50
G06F 9/46
(57)【特許請求の範囲】
【請求項1】
仮想マシン上に仮想デスクトップを提供する仮想デスクトップインフラストラクチャをサポートするコンピュータシステムであって、
複数のホストを含むクラスタであって、各前記ホストがストレージシステムとストレージマネージャとを有する、前記クラスタと、
前記クラスタにおける前記複数のホスト上の仮想マシンにより提供される複数の仮想デスクトップを管理するように構成された仮想デスクトップ管理サーバと
を備え、
前記仮想デスクトップ管理サーバがプロビジョニングマネージャを含み、前記プロビジョニングマネージャが、
前記仮想デスクトップのデスクトッププールの種類を決定し、ここで、前記デスクトッププールの種類は、一組のプールパラメータに関連しており、
前記デスクトッププールの種類に関連する前記プールパラメータに基づいて仮想共有ストレージの構成設定を前記ストレージマネージャに通信することにより、前記クラスタにおける各前記ホストの前記ストレージマネージャを使って仮想共有ストレージをプロビジョンし、ここで、構成設定は、
前記仮想共有ストレージにおいて重複排除機能を有効化するかどうか、
前記仮想共有ストレージにおいてインライン圧縮を有効化するかどうか、
前記仮想共有ストレージにおける冗長レベル、および
書き込みがコミットされているかどうかに関係なく直ちに、または書き込みが安定した媒体にコミットされた後にのみ、書き込み認識を発行するかどうか
のうちの1つまたは複数を含み、
前記クラスタにおける各前記ホストに複数の仮想マシンをプロビジョンし、ここで、前記仮想マシンは、前記デスクトッププールの種類の複数の仮想デスクトップを実行するように構成されており、
前記仮想共有ストレージを使用する際に前記仮想マシンのストレージパフォーマンスを示す第一のストレージパフォーマンスベンチマーク結果を前記仮想マシンの各々から受け取り、
前記第一のストレージパフォーマンスベンチマーク結果が前記デスクトッププールの種類に関して指定された閾値を満たすか否かを判断し、
前記第一のストレージパフォーマンスベンチマーク結果が前記閾値を満たさない場合、(a)前記クラスタ上の前記仮想共有ストレージの構成設定を変更すること、および(b)前記ストレージマネージャに割当てられるプロセッサコアまたはランダムアクセスメモリ(RAM)の割当てを変更することのうちの少なくとも一方を繰り返し行うことにより前記仮想共有ストレージを最適化する最適化ループを実行する
ように構成されている、コンピュータシステム。
【請求項2】
請求項1に記載のコンピュータシステムにおいて、
前記プロビジョニングマネージャが、
前記少なくとも1つの仮想マシンの各々から第二のストレージパフォーマンスベンチマーク結果を受け取り、
前記第二のストレージパフォーマンスベンチマーク結果が前記閾値を満たすか否かを判断し、
前記第二のストレージパフォーマンスベンチマーク結果が前記閾値を満たさない場合、前記ホストの前記クラスタ上の前記仮想共有ストレージの構成設定を変更する
ようにさらに構成されている、コンピュータシステム。
【請求項3】
請求項1に記載のコンピュータシステムにおいて、
前記第一のストレージパフォーマンスベンチマーク結果が前記閾値を満たさない場合、前記プロビジョニングマネージャが、各ホストに関連する前記仮想マシンの数を調整するように構成されている、コンピュータシステム。
【請求項4】
請求項1に記載のコンピュータシステムにおいて、
前記ストレージマネージャが仮想ストレージアプライアンスである、コンピュータシステム。
【請求項5】
請求項4に記載のコンピュータシステムにおいて、
動的リソース分散機能により1つ又は複数の仮想マシンが前記仮想ストレージアプライアンスをホストするハイパーバイザとは異なるハイパーバイザに配置される場合、前記プロビジョニングマネージャは、一つ又は複数の仮想マシンが前記仮想ストレージアプライアンスをホストする前記ハイパーバイザ上に共同配置されるように一つ又は複数の仮想マシンを定期的に再テザリングするように構成されている、コンピュータシステム。
【請求項6】
請求項1に記載のコンピュータシステムにおいて、
前記プロビジョニングマネージャが、前記仮想マシンの各々に第一のストレージパフォーマンスベンチマーク結果をリクエストするようにさらに構成されている、コンピュータシステム。
【請求項7】
請求項1に記載のコンピュータシステムにおいて、
前記第一のストレージパフォーマンスベンチマーク結果が、1秒当たりの入力/出力動作回数とレイテンシの測定値とのうちの少なくとも一方を表す、コンピュータシステム。
【請求項8】
少なくとも1つのコンピュータ可読ストレージ媒体に埋め込まれたコンピュータ実行可能命令を有する少なくとも1つのコンピュータ可読ストレージ媒体であって、コンピュータの少なくとも1つのプロセッサにより実行された時に、前記コンピュータ実行可能命令が前記少なくとも1つのプロセッサに、
前記コンピュータが、仮想デスクトップのデスクトッププールの種類を決定し、ここで、前記デスクトッププールの種類は、一組のプールパラメータに関連しており、
前記コンピュータが、前記デスクトッププールの種類に関連する前記プールパラメータに基づいて仮想共有ストレージの構成設定をストレージマネージャに通信することにより、クラスタにおける各ホストの前記ストレージマネージャを使って仮想共有ストレージをプロビジョンし、ここで、構成設定は、
前記仮想共有ストレージにおいて重複排除機能を有効化するかどうか、
前記仮想共有ストレージにおいてインライン圧縮を有効化するかどうか、
前記仮想共有ストレージにおける冗長レベル、および
書き込みがコミットされているかどうかに関係なく直ちに、または書き込みが安定した媒体にコミットされた後にのみ、書き込み認識を発行するかどうか
のうちの1つまたは複数を含み、
前記コンピュータが、前記クラスタにおける各前記ホストに複数の仮想マシンをプロビジョンし、ここで、前記仮想マシンは、前記デスクトッププールの種類の複数の仮想デスクトップを実行するように構成されており、
前記コンピュータが、前記仮想共有ストレージを使用する際に前記仮想マシンのストレージパフォーマンスを示す第一のストレージパフォーマンスベンチマーク結果を前記仮想マシンの各々から受け取り、
前記コンピュータが、前記第一のストレージパフォーマンスベンチマーク結果が前記デスクトッププールの種類に関して指定された閾値を満たすか否かを判断し、
前記コンピュータが、前記第一のストレージパフォーマンスベンチマーク結果が前記閾値を満たさない場合、a)前記クラスタ上の前記仮想共有ストレージの構成設定を変更すること、および(b)前記ストレージマネージャに割当てられるプロセッサコアまたはランダムアクセスメモリ(RAM)の割当てを変更することのうちの少なくとも一方を繰り返し行うことにより前記仮想共有ストレージを最適化する最適化ループを実行する、少なくとも1つのコンピュータ可読ストレージ媒体。
【請求項9】
仮想マシン上に仮想デスクトップを提供する仮想デスクトップインフラストラクチャのプロビジョニングのための、コンピュータにより実施される方法であって、
前記コンピュータが、前記仮想デスクトップのデスクトッププールの種類を決定し、ここで、前記デスクトッププールの種類は、一組のプールパラメータに関連しており、
前記コンピュータが、ホストのクラスタに仮想共有ストレージをプロビジョンすることであって、前記デスクトッププールの種類に関連する前記プールパラメータに基づいて前記仮想共有ストレージの構成設定を提供することを含む、前記仮想共有ストレージをプロビジョンすること、ここで、構成設定は、
前記仮想共有ストレージにおいて重複排除機能を有効化するかどうか、
前記仮想共有ストレージにおいてインライン圧縮を有効化するかどうか、
前記仮想共有ストレージにおける冗長レベル、および
書き込みがコミットされているかどうかに関係なく直ちに、または書き込みが安定した媒体にコミットされた後にのみ、書き込み認識を発行するかどうか
のうちの1つまたは複数を含み、
前記コンピュータが、前記クラスタにおける各前記ホストに複数の仮想マシンをプロビジョンすることであって、前記仮想マシンは、前記デスクトッププールの種類の複数の仮想デスクトップを実行するように構成されている、前記複数の仮想マシンをプロビジョンすること、
前記コンピュータが、前記仮想共有ストレージを使用する際に前記仮想マシンのストレージパフォーマンスを示す第一のストレージパフォーマンスベンチマーク結果を前記仮想マシンの各々から受け取ること、
前記コンピュータが、前記第一のストレージパフォーマンスベンチマーク結果が前記デスクトッププールの種類に関して指定された閾値を満たすか否かを判断すること、
前記コンピュータが、前記第一のストレージパフォーマンスベンチマーク結果が前記閾値を満たさない場合、前記仮想共有ストレージの構成設定を繰り返し変更すること、ストレージマネージャに割当てられるプロセッサコアまたはランダムアクセスメモリ(RAM)の割当てを変更すること、および前記クラスタにおける各ホスト上の仮想マシンの数を調整することのうちの少なくとも一つを行うことにより前記仮想共有ストレージを最適化する最適化ループを実行すること、
を含む方法。
【請求項10】
請求項9に記載の方法において、
前記コンピュータが、前記少なくとも1つの仮想マシンの各々から第二のストレージパフォーマンスベンチマーク結果を受け取ること、
前記コンピュータが、前記第二のストレージパフォーマンスベンチマーク結果が前記閾値を満たすか否かを判断すること、
前記コンピュータが、前記第二のストレージパフォーマンスベンチマーク結果が前記閾値を満たさない場合、前記ホストのクラスタ上の前記仮想共有ストレージの構成設定を変更すること、
をさらに含む方法。
【請求項11】
請求項9に記載の方法において、
前記仮想共有ストレージは、仮想ストレージアプライアンスによって提供されるものであり、方法は、前記コンピュータが、動的リソース分散機能により1つ又は複数の仮想マシンが前記仮想ストレージアプライアンスをホストするハイパーバイザとは異なるハイパーバイザに配置される場合、一つ又は複数の仮想マシンが前記仮想ストレージアプライアンスをホストする前記ハイパーバイザ上に共同配置されるように一つ又は複数の仮想マシンを定期的に再テザリングすることをさらに含む、方法。
【請求項12】
請求項9に記載の方法において、
前記コンピュータが、前記仮想共有ストレージを、前記クラスタの中の各ホストに関連する仮想化ソフトウェアに接続することをさらに含む、方法。
【請求項13】
請求項9に記載の方法において、
第一のストレージパフォーマンスベンチマーク結果を受け取ることが、1秒当たりの入力/出力動作回数とレイテンシの測定値とのうちの少なくとも一方を受け取ることを含む、方法。
【請求項14】
請求項9に記載の方法において、構成設定は、
前記デスクトッププールの種類が読み取り専用である場合、書き込みがコミットされているかどうかに関係なく、直ちに書き込みを認識するように前記仮想共有ストレージを構成すること、
前記デスクトッププールの種類が通常である場合、書き込みがコミットされた後にのみ、書き込みを認識するように前記仮想共有ストレージを構成することをさらに含む、方法。
【請求項15】
請求項9に記載の方法において、構成設定は、
前記仮想デスクトップがマスタの仮想マシンオペレーティングシステムイメージに基づくとともに、各仮想デスクトップがコピーオンライト動作に基づいて時間と共に増大する個々のデルタファイルに関連している場合、前記仮想共有ストレージにおける重複排除を無効化し、
そうでない場合には、前記仮想共有ストレージにおける重複排除を有効化することを更に含む、方法。
【発明の詳細な説明】
【背景技術】
【0001】
仮想デスクトップインフラストラクチャ(VDI:Virtual Desktop Infrastructure)とは、コンピュータ仮想化技術を使って、完全な集中管理デスクトップをユーザに提供するシステムを指す。VDIは、多くのユーザのための多くの独立したコンピューティング環境を作るために使用される。デスクトップのユーザは、同様のソフトウェアとコンピューティングのニーズに基づいてグループにまとめられてもよい。デスクトップ自体もこれに対応して「デスクトッププール」にまとめられてもよく、これを単独のエンティティとしてプロビジョン、管理、削除を行うことができる。VDIでは、各デスクトップがユーザに、そのユーザに割り当てられた仮想マシン(VM:Virtual Machine)からエクスポートされる。デスクトッププールは計算リソース、メモリ、ネットワーク、ストレージ(これらに限定されない)を含むデータセンタ内のリソースに関連付けられる。
【0002】
データセンタ内のストレージは時々、デスクトッププール間で共有される。既知の共有ストレージは、ストレージエリアネットワーク(SAN:Storage Area Network)、ネットワークアタッチトストレージ(NAS:Network Attached Storage)、およびその他同様のシステムによって提供されてもよい。既知の共有ストレージシステムでは本質的に、ストレージ動作のレイテンシが長くなり、これは、ストレージシステムがデスクトッププールに関連付けられた仮想マシンをホストするコンピュータシステム、すなわち「ホスト」から離れていることによる。既知の共有ストレージシステムに代わるものが仮想共有ストレージであり、これは、あるクラスタ内の各ホストのローカルストレージを使って抽象化ストレージレイヤを作る。ローカルストレージではレイテンシが短縮され、抽象化ストレージレイヤは従来の共有ストレージにより提供されるものと同様の利点を提供する。
【0003】
仮想共有ストレージは、従来の共有ストレージを不要とするが、あるクラスタ内の各ホストを個別に管理して、仮想共有ストレージのプロビジョニングと構成を行うことが必要となる。さらに、仮想共有ストレージのパフォーマンスを改善するように各ホストを構成するには最適化の問題が生じ、これは、クラスタのパフォーマンスを測定するために必要な時間と、各ホストを別々に構成するために必要な作業によって、時間がかかり、かつ面倒でもある。そこで、仮想共有ストレージに使用するためのVDIをプロビジョンする自動化されたシステムと方法が求められている。
【発明の概要】
【課題を解決するための手段】
【0004】
本明細書に記載の方法、コンピュータ可読ストレージ媒体、およびシステムは、仮想共有ストレージを有する仮想デスクトップインフラストラクチャのプロビジョニングを容易にする。プロビジョニングマネージャは、あるクラスタのホスト間に仮想共有ストレージをプロビジョンする。プロビジョニングマネージャは、ホストクラスタの中の各ホストに仮想ストレージリソースをプロビジョンする。プロビジョニングマネージャは、仮想ストレージアプライアンス(VSA:Virtual Storage Appliance)またはその他のハイパーバイザベースのクラスタストレージ機能をデプロイしてもよい。プロビジョニングマネージャは、各ホストからストレージパフォーマンスベンチマークを受け取り、ストレージパフォーマンスベンチマークの結果が事前設定された閾値を満たさない場合に、そのホストクラスタに対する最適化を行うことによって、仮想共有ストレージを最適化する。
【図面の簡単な説明】
【0005】
図1】仮想共有ストレージを有する例示的な仮想デスクトップインフラストラクチャ(VDI)のブロック図である。
図2図1のVDIに仮想マシンをデプロイするための例示的な方法のフローチャートである。
【発明を実施するための形態】
【0006】
図1は例示的な仮想デスクトップインフラストラクチャ(VDI)100であり、これは、まとめてクラスタ116と呼ばれる物理的コンピュータシステム、すなわちホスト110、112、114の上の仮想共有ストレージと複数の仮想マシン(VM)105を有する。各VM 105は、VM 105のユーザに「デスクトップ」(図示せず)を提供する。デスクトップは、VM内で実行されるゲストオペレーティングシステムとアプリケーションによって提供される対話型のユーザ環境であり、かつ一般にグラフィカルディスプレイを含むが、他の出力、例えば音声、インディケータランプ、触覚フィードバック等を含んでいてもよい。デスクトップはまた、デバイス入力、例えばキーボードやマウス入力等の形態でのユーザ入力を受け入れる。ユーザの入力/出力に加えて、デスクトップはデバイスデータ、例えばリモートユーザにローカルのFLASHメモリデバイスのための、またはローカルプリンタへの入力/出力を送受信してもよい。
【0007】
各物理コンピュータ110、112、114は、ハードウェア120と、ハードウェア120上で動作する仮想化ソフトウェアまたはマネージャ124と、ハードウェア120上で仮想化ソフトウェア124によって実行される1つまたは複数のVM 105と、を含む。仮想化ソフトウェア124は、したがって、論理的にハードウェア120とVM 105の間に挟まれ、これらをインタフェースする。仮想化ソフトウェア124は、例えばシステムオンチップ、ファームウェア、FPGA等のように、ハードウェアに直接実装されてもよい。ハードウェア120は少なくとも1つのプロセッサ(図示せず)を含み、各プロセッサはマイクロプロセッサチップ上の実行ユニット、すなわち「コア」である。ハードウェア120はまた、一般的な揮発性ランダムアクセスメモリ(RAM)であるシステムメモリ(図示せず)、ネットワークインタフェースポート(NIC)、ストレージシステム122、およびその他のデバイスを含む。ストレージシステム122は、1つまたは複数の不揮発性ストレージデバイス(図示せず)、例えばハードディスクデバイス、ソリッドステートドライブ(SSD)、およびその他を含んでいてもよい。仮想化ソフトウェア124は、ハイパーバイザと呼ばれることもあり、ハードウェアリソースを管理するソフトウェア構成要素と、物理デバイスを仮想化またはエミュレートして各VM 105のための仮想ディスク、仮想プロセッサ、仮想ネットワークインタフェース等の仮想デバイスを提供するソフトウェア構成要素を含む。各VMは物理コンピュータシステムの抽象であり、マイクロソフト(Microsoft)Windows(登録商標)等のオペレーティングシステム(OS)とアプリケーションを含んでいてもよく、これらはそれぞれ「ゲストOS」と「ゲストアプリケーション」と呼ばれ、「ゲスト」という用語はそれがVM内にあるソフトウェアエンティティであることを示す。仮想化ストレージデバイスは、ゲストOS、ゲストアプリケーション、ゲストファイルを保存するために使用される。仮想ディスク等の仮想化ストレージデバイスは、ストレージシステム122上で、1つまたは複数のデータストア内の仮想ディスクイメージファイルによってバックアップされてもよく、これはチャウラ他(Chawla et al.)の米国特許出願公開第2010/00070978号明細書に記載されており、その全体を参照によって本願に援用する。
【0008】
各物理コンピュータ110、112、114は、それぞれのストレージシステム122の各々を管理するストレージマネージャ126を含む。ストレージマネージャ126は、ストレージシステム122を使用して仮想、または論理共有ストレージを含むストレージレイヤの抽象化を提供するように構成される。少なくとも1つのデータストアがストレージレイヤの抽象化によって提供されてもよく、これによって仮想ディスクイメージファイルが仮想共有ストレージ内に保存されてもよい。
【0009】
物理コンピュータ110、112、114によりアクセス可能な共有ストレージによって、仮想化ソフトウェア124は、高い可用性という特徴、例えば物理コンピュータが故障した場合にVM 105を再起動する能力を提供する。共有ストレージを使って、VM 105を1つの物理コンピュータから他のコンピュータへと移行させることができる。共有ストレージは一般に、ストレージエリアネットワーク(SAN)、ネットワークアタッチトストレージ(NAS)および/またはその両方によって提供されるため、仮想ディスクイメージは一般に、対応するVMが動作している物理コンピュータから離れて保存される。その結果、ストレージシステム122にとってのレイテンシよりはるかに長いレイテンシが生じる。仮想共有ストレージは、ストレージシステム122の使用中、共有ストレージのその他の特徴を組み合わせてレイテンシを短縮する。仮想ディスクイメージは、対応するVM 105が動作している物理コンピュータに関してローカルに保存されてもよい。仮想ディスクイメージまたはその一部は、仮想共有ストレージのうちの、他の物理コンピュータに保存される他の領域に複製されてもよく、それによってデータ冗長性が提供される。ストレージマネージャ126は仮想共有ストレージを抽象化するため、仮想化ソフトウェア124は、仮想共有ストレージが非仮想共有ストレージであるかのように仮想共有ストレージと相互作用してもよい。
【0010】
例えば、ストレージマネージャ126は、仮想ストレージアプライアンス(VSA)として実装されてもよい。VSAは、各物理コンピュータ110、112、114上のVM 105内で実行されて、ストレージクラスタを創出するソフトウェアである。VSAは、それぞれの物理コンピュータ110、112、114の各々のストレージシステム122と直接相互作用し、ローカルでホストされ、ストレージクラスタ内のストレージシステム122間で複製される論理ファイルシステムを提供することによって、仮想共有ストレージを提供する。
【0011】
他の例として、ストレージマネージャ126は、仮想化ソフトウェア124によって仮想ストレージエリアネットワーク(VSAN:Virtual Storage Area Network)として実装されてもよい。より詳しくは、ストレージマネージャ126は、1つまたは複数のストレージシステム122を結合して、仮想ソフトウェア124によってアクセス可能なVSANインタフェース、例えばiSCSIを創出する。1つまたは複数のデータストアは、VSAN上の1つまたは複数の論理ディスク、すなわちLUNに保存されてもよい。
【0012】
仮想マシン管理サーバ(VMMS:Virtual Machine Management Server)130はソフトウェアインタフェース135を提供し、これによって、とりわけ、他のプログラムがVMMS 130により管理される物理コンピュータ110、112、114上で動作中のVM 105のライフサイクルを制御できるようにする。VMMS 130は、本明細書で具体的に記載されているもの以外のVMの管理と操作を提供してもよい。
【0013】
仮想デスクトップ管理サーバ(VDMS:Virtual Desktop Management Server)150は、デスクトップ管理ソフトウェア152を実行する物理コンピュータシステムまたは仮想マシンであってもよい。例示的なVDMSは、プニート・チャウラ他(Puneet Chawla,et al.)により2006年3月31日に出願された米国特許出願第11/395,012号明細書に記載されている。デスクトップ管理ソフトウェア152は、コンピュータリソースのプールを管理して、一般にCPU、メモリ、通信ハードウェア(ネットワーク)を持つ複数のサーバを含むクラスタまたはクラスタ集合でVM 105を動作させる。図1に示される実施形態において、デスクトップ管理ソフトウェア152は多数のモジュールを含み、多数のモジュールには管理コンソール154、プロビジョニングマネージャ156が含まれる。
【0014】
デスクトップ管理ソフトウェア152は、ソフトウェアインタフェース135を使ってVMMS 130とインタフェースし、VM 105を制御する。例えば、VMMS 130によって、デスクトップ管理ソフトウェア152は、(a)コンピュータ、ストレージ、およびネットワークリソースを検出し、(b)自動的なCPUおよびメモリ負荷分散等の機能を提供する論理計算プールを作り、(c)ローカルまたは共有ストレージ上に1つまたは複数の仮想ディスクを有するVM、例えばフルディスクまたはスパースディスクでのクローンを作り、(d)ベース仮想マシンに固定されたVMを作り(例えば2011年5月10日に認可された、「クローンコンピュータの同期とカスタム化(Synchronization and customization of a Clone Computer)」と題する米国特許第7,951,470号明細書に記載され、これを参照によって本願に援用する)、(e)個々のディスクのストレージ消費、単独ユニットとしての仮想マシンのストレージ消費、および仮想マシンファイルシステムのモニタリング(空きスペース、総スペース等)を含むがこれらに限定されないストレージサブシステムのモニタを行い、(f)仮想マシン上の機力操作(すなわち、電源投入、電源遮断、中断、再開、チェックポイント等)を行い、(g)仮想ディスクの1つのデータストアから別のものへのオフラインマイグレーションを実行し、(h)VMディスクがVMの動作中に移行されるホットストレージマイグレーションを実行し(例えば、米国特許出願公開第2009/0037680号明細書に記載され、これを参照によって本願に援用する)、(i)帯域外通信チャネルを、仮想マシン内で実行されるソフトウェアプログラムに提供することができる。
【0015】
管理コンソール154は、遠隔アクセス可能なユーザインタフェースを管理者に提供して、デスクトッププールの構成を管理する。1つの実施形態において、グラフィカルユーザインタフェースがハイパーテキストトランスファープロトコル(HTTP)を介してエクスポートされ、コモディティウェブブラウザによってアクセスされてもよい。あるいは、コマンドラインインタフェースまたはリッチクライアントをローカルまたは遠隔ユーザに提供できる。管理コンソール154によって、管理者は複数の機能を実行でき、例えば、(a)本明細書に記載するようなデスクトッププールを作り、(b)デスクトッププールをVDMSに関連付け、(c)デスクトッププールをマスタイメージに関連付け、(d)VM状態ポリシを定義できる。
【0016】
VM 105のユーザは一般に、そのジョブ機能、したがって、それらのデスクトップに必要なアプリケーションと構成の面で分類できる。例えば、エンジニアリング「プール」のユーザはCAD/CAMソフトウェアへのアクセスを必要とするかもしれず、会計プールのユーザは特定の会計ソフトウェアへのアクセスを必要とするかもしれない。ユーザデスクトップをこのようなユーザのグループ分けに沿った方法でまとめることが一般に有益であり、これによって例えば技術者によりアクセスされるコンピュータはエンジニアに必要なソフトウェアで構成され、会計士によりアクセスされるコンピュータは会計士によりアクセスされるソフトウェアで構成される。例えば、VDIシステム100では、ユーザは特定のユーザプールに属する可能性があり、それに対応するVM 105は対応するデスクトッププールに割り当てられてもよい。デスクトッププールは、管理可能な論理エンティティであり、これは同様に構成された複数のVMを含む。デスクトッププールの各VMは、VMに関連付けられたデルタディスクイメージと、プール内のすべてのデスクトップに共通の共通「マスタイメージ」(「テンプレート」と呼ばれる時もある)を有していてもよい。マスタイメージには、対応するユーザプールのメンバーにとって有益なソフトウェアがインストールされていてもよい。
【0017】
デスクトッププールは2つの大きな分類、すなわち読み取り専用(non−persistent)と通常(persistent)に分けることができる。読み取り専用デスクトッププールのVM 105はステートレスであり、すなわちデスクトップの状態がユーザセッション後に毎回初期の状態に戻る。読み取り専用デスクトップの場合、仮想ディスクに書き込まれた変更はすべて、ユーザセッションの終了時に失われる。したがって、ユーザがログオフするたびに、デスクトップはその当初の「原」状態に戻る。ユーザが読み取り専用デスクトップのプールに割り当てられる場合、このユーザにはユーザによるログイン時にプール内にあるどのVM 105が割り当てられてもよく、これはすべてが同じであるからである。読み取り専用デスクトップには、例えばデータ入力、情報キオスクまたはプロセスターミナル用等の多くのユースケースがある。
【0018】
通常デスクトッププールのVM 105はステートフルであり、すなわちデスクトップの状態は、その中のファイルとアプリケーションの状態も含め、保持される。通常デスクトップの場合、仮想ディスクに書き込まれた変更はすべて保存され、次のユーザセッションで利用できる。ハイブリッド状態もありえ、例えばある期間だけ保持されるが、定期的に「原」状態に復帰する。いくつかの実施形態において、デスクトップ管理者は、「原状復帰」動作がどの頻度で、またはどの条件下で行われるべきかを決定できる。
【0019】
デスクトッププールのデータストレージのパフォーマンス要求は、プールの種類、すなわち読み取り専用と通常と、対応するユースケース、すなわちどのアプリケーションが使用されるかとのうちの少なくとも一方に応じて変化する。例えば、読み取り専用プールの場合、VM内のデータ破損は、いずれはVMの状態はすべて失われるため、致命的ではない。したがって、読み取り専用プールへのデータの書込みは、データがディスクに書き込まれたか否かを問わず、直ちに認識応答される。デスクトッププールのデータストレージのパフォーマンス要求は、1秒当たりの入力/出力動作の回数、すなわちIOPSと、他の既知のメトリクス、例えばレイテンシ、およびそのあらゆる計算、例えば平均または標準偏差とのうちの少なくとも一方で表現されてもよい。
【0020】
プロビジョニングマネージャ156は、仮想共有ストレージのプロビジョニング、または作成と、物理コンピュータ110、112、114へのVM 105のプロビジョニングを調整するように構成される。プロビジョニングマネージャ156には、管理コンソール154によって提供されるウェブインタフェースを介してアクセスされてもよい。プロビジョニングマネージャ156は、アプリケーションプログラミングインタフェース(API)およびあらゆる適当な通信フレームワークのうちの少なくとも一方を使ってVMMS 130、仮想化ソフトウェア124およびストレージマネージャ126のうちの少なくとも一方と通信する。
【0021】
プロビジョニングマネージャ156は一般に、管理者によって、まだVMのない物理的コンピュータ、すなわち新品の物理コンピュータにVDI環境を確立するために使用される。しかしながら、プロビジョニングマネージャ156はまた、既に構成された物理コンピュータ上にVMを再プロビジョンすること、および既存のVDI環境のパフォーマンスを調整することのうちの少なくとも一方のためにも使用されてよく、これについては本明細書で詳しく説明する。
【0022】
動作中、ユーザ、すなわち管理者は、クラスタ116のためのデスクトッププールの種類をプロビジョニングマネージャ156に示し、プロビジョニングマネージャ156はこれを受け取る。デスクトッププールの種類は、事前に決定されたデスクトッププールの種類の一覧から選択されてもよい。デスクトッププールの種類は、粗粒度型(例えば、読み取り専用と通常)であっても、細粒度型(例えば、通常エンジニアリングプール、読み取り専用データ入力プール、読み取り専用キオスクプール等)であってもよい。その他のプールパラメータ、例えば、いつマシンがそのマスタOSイメージにリセットするかを決定する「リフレッシュ」または「再構成」ポリシ等の、追加のプールパラメータも提供されてよい。これらのポリシは、ストレージをどのように構成すべきかに影響を与える。例えば、そのプールについて「ログオフ時にリフレッシュ」ポリシが選択されると、ユーザがデスクトップを再使用することはなく、セッションをまたいだファイルシステムの破壊は起こりえない。これに対して、「14日ごとにリフレッシュ」または「電源切断時に再構成」は異なる意味を持ち、セッションをまたぐファイルシステムの破壊が可能となり、その延長で、基本となるストレージレイヤに対するより保守的なデータ管理ポリシを決定し、例えば、データ書込みの認識応答は、そのような書き込みが実際に安定した媒体にコミットされた後でのみ提供される。ストレージレイヤ(すなわち、仮想共有ストレージ)に関係するその他のプールパラメータには、イメージマネージャと、例えばヴイエムウェア社(VMware,Inc.)のView Composer等のストレージオプティマイザとのうちの少なくとも一方がそのプールの基礎として使用されるか否か、がある。例えばView Composerは、マスタの仮想マシンOSイメージのクローンを作る。各クローンは、マスタイメージに対する「コピーオンライト」の動作に基づいて時間と共に増大するデルタファイルである。このようなクローンファイルの基本となる重複排除が可能なストレージシステム上での重複排除率は低い傾向がある。その結果、プールがView Composerクローンに基づいていれば、VSAまたは仮想ストレージシステムでは重複排除を有効化すべきではない。これに対して、「フルクローン」を使用すると、プールの各メンバーについてマスタOSイメージの完全なクローンが作られる。基本となるストレージシステムは、このようなプールの中の多くの共通ブロックを見つけることができるため、基本となる仮想ストレージシステムでは重複排除機能を有効化すべきである。仮想ストレージシステムがインライン圧縮を提供する場合、これは、ローカルストレージリソースを使用するプールについては有効化すべきであるが、ハイパーバイザホストに多くのディスクドライブがアタッチされているか、ストレージマネージャ126が中央ストレージアレイからLUNSをマウントしている場合、管理者は、十分なディスク帯域幅が利用できることを考え、このような圧縮を無効化してCPUのオーバーヘッドを減らすことを選択してもよい。通常プールの場合、様々な冗長レベルが必要となりうる。このような冗長性を仮想ストレージレイヤに任意選択的に構成して、ディスク故障時に必要な復元力を提供するのに役立てることを選択してもよい。これらのブールパラメータはすべて、仮想ストレージレイヤの適正で最適な構成に関係している。
【0023】
プロビジョニングマネージャ156は、必要なソフトウェア(例えば、VSAベースのストレージの場合はVSA)をデプロイすること、クラスタ内の物理コンピュータを特定すること、およびクラスタ内の各物理コンピュータの各ローカルストレージデバイスを特定することのうちの少なくとも一つによって、仮想共有ストレージを確立する。仮想共有ストレージの確立またはプロビジョニングには、必要に応じてクラスタ116の各物理コンピュータにソフトウェアや構成要素をインストールすることが含まれる。
【0024】
各仮想共有ストレージモダリティ、例えばVSA、VSANは1つまたは複数の設定、構成オプション、可変数等を使って構成されてもよい。プロビジョニングマネージャ156は、1つまたは複数の設定をストレージマージャ126に通信することによって仮想共有ストレージを構成する。プロビジョニングマネージャ156によって通信される設定は、選択されたデスクトッププールの種類に基づいている。例えば、プロビジョニングマネージャ156は利用可能な各デスクトッププールの種類のためのプールごとの設定を有していてもよい。プールごとの設定は、仮想共有ストレージのパフォーマンスを改善するための構成可能なオプションを含んでいてもよい。したがって、プールごとの設定を各ストレージマージャ126に提供するプロセスは、仮想共有ストレージを「チューニングする」と言ってもよい。
【0025】
これに加えて、設定は、ストレージシステム122の構成に基づいていてもよい。いくつかの実施形態において、ストレージシステム122はSSDとハードドライブデバイスの両方を含んでいてもよい。このような実施形態では、ストレージシステム122はアクセス頻度のより高いデータ用にSSDを使用するように最適化されてもよく、ハードドライブはアクセス頻度のより低いデータ用に使用されてもよい。
【0026】
仮想共有ストレージが選択されたプールの種類に合わせてチューニングされた後、プロビジョニングマネージャ156は仮想共有ストレージをクラスタ116の中の各物理コンピュータ上の仮想化ソフトウェア124にエクスポーズする。仮想共有ストレージのエクスポーズは、ブロックデバイスをアタッチすること、ファイルシステムをマウントすることのうちの少なくとも一方を含んでいてもよい。プロビジョニングマネージャ156が仮想共有ストレージを確立した後、各物理コンピュータは、仮想化ソフトウェア124を介して、仮想共有ストレージへの読み書きを行うことができる。ストレージマネージャ126は、抽象化ストレージレイヤを仮想化ソフトウェア124に提供するため、仮想化ソフトウェア124は使用されている基本となる仮想共有ストレージモダリティまたはその構成を知らなくてよい。例えば、VSA構成において、ZFSファイルシステム(カリフォルニア州サンタクララのサン・マイクロシステムズ(Sun Microsystems)が設計)は、仮想化ソフトウェア124がわからなくても利用可能できる。
【0027】
確立され、チューニングされた仮想共有ストレージにより、プロビジョニングマネージャ156は、クラスタ116の各物理コンピュータに1つまたは複数のVMをデプロイしてもよい。デプロイされたVMは、各プールの種類に関連するディスクイメージまたはテンプレートに基づいていてもよい。一般に、デプロイされた各VMは、デプロイの時点では、デプロイされた他のVMと実質的に同じであり、そのため、このプロセスは「クローニング」とも呼ばれることがある。
【0028】
物理コンピュータ上の各VM 105は独立した仮想リソース(例えば、CPU、メモリ、ストレージデバイス)を有するが、独立した各仮想リソースは、それに対応する基本にある物理リソースに依存していてもよい。基本となる物理リソースには限りがあるため、これらはVM間で共有しなければならない。したがって、仮想リソースのパフォーマンスは、対応する物理リソースのパフォーマンスと、同じ物理コンピュータ上の他のVMによる物理リソースの要求または使用に関連している。ストレージデバイスの場合、ストレージシステム126の中にあるような物理ストレージデバイスは、既知の、または決定可能な数のIOPSを実現できる。物理コンピュータ上のすべてのVM 105間の正味IOPSは、仮想共有ストレージが、データのキヤッシング、書込み動作の高度な融合、およびその他の技術のちの少なくとも一つを通じてIOPS全体を向上させないかぎり、物理ストレージデバイスにより提供可能なIOPSの数と等しいかそれ以下である。このような改善は、本明細書で説明するように、VDIプールの種類と仮想共有ストレージを単独のプロビジョニング動作としてひとまとめにする能力によって可能となりうる。
【0029】
プールのVM 105が、ハイパーバイザクラスタ上で有効化される、ヴイエムウェア社(VMware,Inc.)のDRS(Dynamic Resource Scheduling)等の動的リソース分散機能を有する場合、基本となる仮想ストレージレイヤ(すなわち、仮想共有ストレージ)は、クラスタ内の各ハイパバイザメンバーが仮想ストレージレイヤによってエクスポーズされる各データストアへの読み書きを確実に行えるように構成しなればならない。これにより、VSAストレージの場合に余分なステップが必要となり得、各VSAのデータストアがクラスタ内の各ハイパーバイザホストにマウントされる。この状況では、VMは、VMのデータストアがアタッチされている、VSAをホストするハイパーバイザとは異なるハイパーバイザに設置されてもよい。このようなVMの最適以下の設置は、プロビジョニングマネージャ156により、VMが確実に、VMのアタッチされているVSAをホストするハイパーバイザ上にコロケートされるようにすることによって修正されうる。VMを「再テザリングする」このプロセスは、まず仮想ストレージレイヤとVDIプールがデプロイされた後で、プロビジョニングマネージャ156によって扱われなければならない。このような再テザリングは、I/Oのレイテンシの短縮と共有ネットワーク構成要素上の不必要なストレージトラフィックの回避にとって非常に重要である。プロビジョニングマネージャ156は、VMを、これらがアタッチされているVSAストレージをホストするハイパーバイザ上への移動させることによって、例えばヴイエムウェア社(VMware,Inc.)のvMotionまたはその他のライブマイグレーション技術またはノンライブマイグレーション技術を使って実現してもよい。このプロセスは継続的プロセスとなり、このような調整を、DRSが負荷平準化の問題に基づいて自己の調整を行う時であっても定期的に実行する。再テザリングにより、DRSが不適正に設置されたVMの数に時間の経過と共に与える影響が最小となる。再テザリングはまた、ハイパーバイザの故障によって影響を受ける可能性のあるVMの数も最小化し、これがなければ障害ドメインが最終的に各ハイパーバイザ上でホストされるマシンの数の2倍まで広がる。DRSがVDIプール上で有効化されないと、VMは自動的に正しいハイパーバイザ上にコロケートされることになり、それはこの設計では、VMのVSAストレージをホストするハイパーバイザだけが問題のデータベースにアクセスできるからである。
【0030】
物理コンピュータ上のVM 105の数が増えると、物理リソースに対する要求はこれに対応して増大する要求を受ける可能性がある。ストレージデバイスの場合、ユーザのエクスペリエンス、またはゲストOS内のアプリケーションのパフォーマンスは、ある物理コンピュータ上で動作するVMの数が多すぎると劣化するかもしれない。反対に、VMが少なすぎる物理コンピュータは利用率が低く、したがって非効率的である。十分なパフォーマンスと利用率が得られるように物理コンピュータ上のVM 105の数を決定し、仮想共有ストレージを構成することは、多変数最適化の問題である。
【0031】
VM、またはゲストOSにとっての十分なストレージパフォーマンスは、最低IOPS数として定義されてもよい。デスクトッププールの種類によって、最低IOPS数が決まってもよい。あるいは、管理者が、例えばデスクトッププールの種類が提供された時に、最低IOPS数を入力してもよい。当初、プロビジョニングマネージャ156は発見教授法を使って、各物理コンピュータ上にデプロイするVMの初期数を決定してもよい。次に、最適化ループを使って最適化の問題が解決され、最適化の問題に対する解決策に基づいて各物理コンピュータに多数のVM 105がデプロイされる。
【0032】
VDIシステム100のある実施例において、プロビジョニングマネージャ156は、デプロイされるVM 105の数を、デプロイされた各VM 105の同時ベンチマークを調整することによって最適化する。より詳しくは、プロビジョニングマネージャ156は、プロビジョニングマネージャ156が各VM 105に電源投入されるようにした後で、各VM 105内のエージェント160(図1にはエージェント160が1つだけ示されている)と通信する。エージェント160は、ゲストOSによって実行され、VMMS 130およびVDMS 150のうちの少なくとも一つからのコマンドに応答するように構成されるソフトウェアである。エージェント160は、ストレージパフォーマンスベンチマーク、例えばカリフォルニア州サンタクララのインテル・コーポレーション(Intel(登録商標)Corporation)から入手可能なIometerを起動するように命令される。エージェント160はストレージパフォーマンスベンチマークソフトウェアからベンチマーク結果データを収集し、この結果データをプロビジョニングマネージャ156に報告する。それゆえ、プロビジョニングマネージャ156は、物理コンピュータ上のすべてのVM 105が利用可能なストレージパフォーマンスを利用しようとしている時の各VMの最大ストレージパフォーマンス、すなわち最大IOPSを決定できる。
【0033】
ベンチマークの結果に基づき、プロビジョニングマネージャ156はクラスタ116に対して最適化を実行してもよい。例えば、プロビジョニングマネージャ156は、各物理コンピュータ上のVM 105の数を増減してもよい。プロビジョニングマネージャ156はまた、クラスタ116の最適化を実行するようにストレージマネージャ126の構成を変えてもよい。例えば、ストレージマネージャ126がVSAであれば、各VSAには多数のプロセッサコアとRAMが割り振られてもよい。例えば、各VSAには2つのプロセッサコアと2ギガバイトのRAMが割り振られてもよい。ベンチマークの結果に基づき、プロビジョニングマネージャ156はプロセッサコアの数およびRAMの大きさのうちの少なくとも一方を増減してもよい。
【0034】
クラスタ116の最適化は、一般的にベンチマークの結果に応答して、ベンチマーキングとクラスタ116の最適化の実行を繰り返す必要のある多重繰り返しプロセスであってもよい。1つの実施形態において、最適化は山登りアルゴリズムを使って実現され、段階的な調整が実行され、試験されて、最適なソリューションが決定される。他の実施形態では、どのような適当なアルゴリズムを使って、最適化問題に対する解決策を決定してもよい。
【0035】
各ベンチマーキングステップは実行に何時間もかかり、したがって、クラスタ116の最適化には1日またはそれ以上かかるかもしれない。プロビジョニングマネージャ156は、複数の可変数と構成の効率的な試験を容易にする。例えば、VSAに関連する2つのみの可変数がプロセッサコアの数(2、4、6)とRAMの大きさ(2GB、4GB、8GB、16GB)であれば、プロセッサコアとRAMの大きさの考えられる組み合わせは12通りある。プロビジョニングマネージャ156は、各組み合わせについての試験を自動で行う。
【0036】
プロビジョニングマネージャ156は、VMがまだデプロイされていない物理コンピュータのクラスタについて動作するように説明されているが、理解すべき点として、プロビジョニングマネージャ156は、すでにデプロイされたVMに対して動作して、既存のシステムを最適化してもよい。さらに、プロビジョニングマネージャ156は、仮想共有ストレージ構成の変更を受け取り、これらの変更を各ストレージマネージャ126に転送してもよい。
【0037】
図2は、仮想共有ストレージを有するVDI環境、例えばVDI環境100でVMをデプロイし、最適化する例示的な方法200のフローチャートである。方法200は、VDMS 150(図1に示す)およびVMMS 130(図1に示す)のうちの少なくとも一方で使用してもよい。方法200は、1つまたは複数のメモリ、例えば1つまたは複数のコンピュータ可読媒体に保存された複数のコンピュータ実行可能な命令に具体化される。命令は、1つまたは複数のプロセッサによって、本明細書に記載の機能が行われるように実行される。
【0038】
本明細書により詳しく説明するように、方法200は、プロビジョニングマネージャ、例えばプロビジョニングマネージャ156(図1に示す)によって、ホクラスタ内のホスト間に仮想共有ストレージを提供し、仮想共有ストレージをデスクトッププールの種類に基づいてチューニングし、仮想共有ストレージを各ホスト上の仮想化ソフトウェアに接続し、1つまたは複数のVMを各ホストにインストールし、各VMのストレージパフォーマンスのベンチマークとベンチマーク結果に基づくクラスタの調整によってクラスタを最適化することによって実施または実行される。
【0039】
まず、デスクトッププールの種類がプロビジョニングマネージャによって受け取られる(210)。プールの種類は、事前に決定されたプールの種類の一覧から選択されてもよい。プールの種類はまた、プロビジョニングマネージャに関連付けられるウェブインタフェースを使って管理者により選択されてもよい。デスクトッププールの種類は、他のプール関連のパラメータと他の仮想共有ストレージパラメータおよびベンチマーキングオプションに関連付けられてもよく、これらはまとめてプロビジョニングテンプレートを形成する。このようなテンプレートは、完全なプロビジョニング動作のためのレシピに含められてもよい。
【0040】
仮想共有ストレージは、クラスタ内の1つまたは複数のホストを使ってプロビジョンされる(220)。より詳しくは、プロビジョニングマネージャは、ソフトウェアおよび命令のうちの少なくとも一方を各ホストのストレージマネージャに転送して、仮想共有ストレージ抽象化レイヤが作られるようにしてもよい。仮想共有ストレージは、デスクトッププールの種類に基づいて構成される(230)。例えば、プールの種類が読み取り専用である場合、仮想共有ストレージは、書込みを遅延させるが、書込みの確認送信は直ちに行うように構成されてもよい。
【0041】
仮想共有ストレージがクラスタ内の各ホストの仮想化マネージャ、例えば仮想化ソフトウェア124に接続される(240)。より詳しくは、仮想共有ストレージは、ファイルシステムと、ブロックデバイス(例えばLUN)とのうちの少なくとも一方を含んでいてもよい。接続されると、仮想化マネージャは、仮想共有ストレージから、または仮想共有ストレージへの読み書きを行ってもよい。プロビジョニングマネージャは、仮想ディスクイメージを保存するために仮想共有ストレージ内に1つまたは複数のデータストアを作ってもよい。
【0042】
プロビジョニングマネージャは、例えばVMMS 130を使って、1つまたは複数のVMをクラスタ内の各ホストにプロビジョンする(250)。提供される初期のVMの数は、最低閾値IOPSを提供している間に各ホスト上で動作可能なVMの数を推測するために使用される発見的教授法に基づく。
【0043】
プロビジョニングマネージャは、各ゲストOS内で動作中のエージェントと通信し、エージェントにストレージパフォーマンスベンチマークを開始するように命令することによって、各VMにストレージパフォーマンスベンチマークをリクエストする(260)。ベンチマークは、クラスタの各VM内で略同時に実行される。プロビジョニングマネージャは、各エージェントからベンチマーク結果を受け取る(270)。プロビジョニングマネージャは、ベンチマーク結果が所定の許容範囲内、例えば+/−1、2、3、4、5、10、15パーセント等で最低閾値に適合するか否かを判断する(280)。最低閾値は、プールの種類に基づいて予め決定されても、ユーザにより入力されてもよい。各VMからのベンチマーク結果の平均、下限、または上限を使って、ベンチマーク結果が最低閾値に適合し、またはこれを超えるか否かを判断してもよい。
【0044】
閾値が所定の許容範囲内で満たされない場合、プロビジョニングマネージャはクラスタを最適化する(290)。クラスタの最適化(290)には、ストレージパフォーマンスベンチマーク試験をリクエストし(260)、ベンチマーク試験結果を受け取り(270)、ベンチマーク結果が閾値を満たすか否かを判断し(280)、ベンチマーク結果を改善するためにクラスタへの最適化を行う(295)ことが含まれる。最適化(290)は、閾値が満たされるまでループ式に、または所定の時間にわたり、または事前に決定された繰り返し回数だけ、またはパフォーマンスターゲット、すなわち動作中のVM 105の数を最大化しながら、ベンチマーク最低閾値が所定の許容範囲内で満たされるまで実行されてもよい。
【0045】
クラスタへの最適化の実行(295)には、各ホスト上のVMの数の増減によってプールの大きさを変更することが含まれていてもよい。クラスタへの最適化の実行(295)にはまた、ストレージマネージャ126および仮想共有ストレージのうちの少なくとも一方の構成を変更することが含まれていてもよい。閾値が満たされると、方法200は終了する(297)。しかしながら、クラスタは、クラスタがプロビジョンされる時に実行される初期最適化の後のいずれの時点で最適化されてもよい(290)。
【0046】
本明細書で説明した各種の実施形態は、コンピュータシステム内に保存されるデータに関わる各種のコンピュータ実装動作を利用してもよい。例えば、これらの動作は、物理的数量の物理的操作を必要とするかもしれず、通常、ただし常にとはかぎらないが、これらの数量は電気または磁気信号の形態で得られてもよく、これら、またはこれらを表すものは、保存、転送、合成、比較、またはその他の操作が可能である。さらに、このような操作はしばしば、生成、特定、決定または比較等の用語で呼ばれる。本明細書で説明されている発明の1つまたは複数の実施形態の一部を形成する動作はいずれも、有益なマシン動作であってもよい。これに加えて、本発明の1つまたは複数の実施形態はまた、これらの動作を実行するためのデバイスまたは装置に関連する。装置は、具体的な必要な目的のために特に構成されてもよく、またはコンピュータ内に保存されるコンピュータプログラムによって選択的にアクティベートまたは構成される汎用コンピュータであってもよい。詳しくは、各種の汎用マシンは、本明細書の教示に従って書かれたコンピュータプログラムと共に使用されてもよく、または必要な動作を実行するためのより専門的な装置を構成することがより好都合であるかもしれない。
【0047】
本明細書で説明した各種の実施形態は他のコンピュータシステム構成、例えばハンドヘルドデバイス、マイクロプロセッサシステム、マイクロプロセッサベースまたはプログラム可能な民生用電子機器、ミニコンピュータ、メインフレームコンピュータおよびその他でも実現できる。
【0048】
本発明の1つまたは複数の実施形態は、1つまたは複数のコンピュータ可読媒体で具体化される1つまたは複数のコンピュータプログラムとして、または1つまたは複数のコンピュータプログラムモジュールとして実装されてもよい。コンピュータ可読媒体という用語は、その後、コンピュータシステムに入力可能なデータを保存できるあらゆるテータストレージデバイスを指し、すなわちコンピュータ可読媒体は、コンピュータがそれを読み取ることができるような方法でコンピュータプログラムを具体化する他のどのような既存の、または今後開発される技術に基づいていてもよい。コンピュータ可読媒体の例としては、ハードドライブ、ネットワークアタッチドストレージ(NAS)、リードオンリメモリ、ランダムアクセスメモリ(例えば、フラッシュメモリデバイス)、CD(コンパクトディスク)、例えばCD−ROM、CD−RまたはCD−RW、DVD(デジタルバーサタイルディスク)、磁気テープ、およびその他の光および光以外のデータストレージデバイスがある。コンピュータ可読媒体はまた、ネットワーク接続コンピュータシステム上に分散させて、コンピュータ可読コードが分散的に保存され、実行されるようにすることもできる。
【0049】
本発明の1つまたは複数の実施形態を明瞭に理解するためにある程度詳しく説明したが、特許請求の範囲内で特定の変更や改変が可能であることは明らかであろう。したがって、説明された実施形態は、限定的ではなく例示的と考えられ、特許請求の範囲は本明細書に記載されている詳細事項に限定されるのではなく、特許請求の範囲の範囲と均等物の中で改変されてもよい。特許請求の範囲において、要素およびステップのうちの少なくとも一方は、特許請求の範囲で明記されていないかぎり、いずれの特定の動作の順序も黙示していない。
【0050】
これに加えて、説明した仮想化方法は一般に、仮想マシンが特定のハードウェアシステムと適合するインタフェースを示すことを前提としているが、当業者であれば、説明した方法がいずれの特定のハードウェアシステムにも直接対応しない仮想化に関連して使用してもよいことがわかるであろう。ホストされた実施形態、ホストされていない実施形態、またはこれら2つの区別があいまいになる傾向のある実施形態として実装される各種の実施形態による仮想化システムは、すべて想定される。さらに、各種の仮想化動作は、全体的または部分的にハードウェアで実装され、または従来の仮想化または準仮想化技術に実装されてもよい。多くの変更、改変、追加、改良は、仮想化の程度に関係なく可能である。仮想化ソフトウェアはしたがって、仮想化機能を実行するホスト、コンソール、またはゲストオペレーティングシステムの構成要素を含むことができる。複数のインスタンスが、本明細書で単独のインスタンスとして説明された構成要素、動作または構造のために提供されてもよい。最後に、各種の構成要素、動作、データストア間の境界は幾分任意であり、特定の動作が具体的な例示的構成に関連して示されている。機能のその他の割り振りも想定され、本発明の範囲に含まれる可能性がある。一般に、例示的な構成の中で別々の構成要素として示されている構造と機能は、複合的な構造または構成要素として実装されてもよい。同様に、単独の構成要素として示されている構造と機能は、別々の構成要素として実装されてもよい。これらおよびその他の変更、改変、追加、改良は付属の特許請求の範囲に含まれる可能性がある。
図1
図2