Virtual Server 2005 R2には,ポリシーによる設定が可能なワーク・ロード管理機能がある。それによって,管理者はリソースの割り当てを動的に変更できる。Virtual Severでは,相対的な重み付けと,絶対的な制限による構成の両方に対応しており,それらの組み合わせによって柔軟なワーク・ロード管理が可能である。このとき,Virtual Serverでは仮想マシンにリソースを割り当てるための独自のリソース・マネージャを持っているので,Windowsシステム・リソース・マネージャなど,ほかのリソース・マネージャと組み合わせられない。

 Virtual Server 2005 R2では最大で32CPU,64Gバイト・メモリーまでの拡張性を備えており,それぞれの仮想マシンで1つの物理CPUの100%に相当するリソースまでを使用可能である。だが,仮想マシンに対して特定の物理CPUを独占的に割り当てることはできない。

 また,複数の仮想マシンは,同時に複数の物理CPUを使用できる。Virtual Serverのプロセスは,各仮想マシンを実行するスレッドを作成し,ほかのスレッドはそれぞれI/Oの処理やVirtual Server自身が備えるCOMインターフェースなどのために使用される。このとき,同時稼働可能な仮想マシンの数は,各仮想マシンが使用するCPU稼働率やメモリー容量,I/Oアクセス頻度と,物理マシンが備えるCPUやメモリー容量,I/Oアクセス能力のかねあいによって左右される。

 物理CPUの割り当ては,管理WebサイトおよびCOMインターフェースを利用したスクリプトから動的に変更可能である。CPUリソースの割り当てには予約済み容量,最大容量と相対的な重みによる設定ができるが,それぞれの意味は以下の通りである。

(1)予約済み容量
 最低限保証されるリソースであり,オーバー・コミットすることはできない。Virtual Serverは割り当てられたCPUリソースを仮想マシンに提供することを保証する。

(2)最大容量
 1つのCPUのリソースのうち,仮想マシンがあるタイミングで使用できる最大の割合である。

(3)相対的な重み
 1から1万までの数値で表され,それぞれの仮想マシンに対する相対的な優先順位を示したものである。相対的な重みは,ある仮想マシンが要求するリソースと,ほかのすべての仮想マシンが要求するリソースとを比較して割り当てられる。複数の仮想マシンが同時にリソースを要求した場合は,その割合に応じて,相対的に低い重み付けを持つ仮想マシンから相対的に高い重み付けを持つ仮想マシンに対して,動的にリソースが割り当てられる。既定では,すべての仮想マシンの相対的な重みは100であるため,すべて平等に扱われる。

図1●仮想マシンに対するCPUリソースの割り当て例
図1●仮想マシンに対するCPUリソースの割り当て例

 図1は,仮想マシンに対するCPUリソースの割り当て例を示したものである。この例では,データベースを実行する仮想マシンに対する相対的な重みがほかの10倍になっているため,同時にCPUリソースを要求した場合はデータベース用仮想マシンに10倍のリソースが割り当てられる。また,Webサーバー用仮想マシンとビジネス・ロジック用仮想マシンは,最大で物理CPUリソースの20%を使用でき,データベース用仮想マシンは最大で50%,最低で20%を使用できる。

図2●仮想マシンに対するメモリー・リソースの割り当て例
図2●仮想マシンに対するメモリー・リソースの割り当て例

 また,Virtual Serverでは,仮想マシンの起動時にメモリー容量を変更できる。だが,仮想マシンの動作中には,メモリー容量を変更できない。メモリーのオーバー・コミットには対応していないため,各仮想マシンに割り当てたメモリー容量の合計を,物理マシンに搭載されているメモリー容量以上にすることはできない。

 図2は,仮想マシンに対するメモリー・リソースの割り当て例を示したものである。物理マシンに搭載された4Gバイトのうち,Webサーバー用仮想マシン,ビジネス・ロジック用仮想マシン,データベース用仮想マシンは,それぞれ1Gバイト,512Mバイト,1Gバイトを使用できる。