コアあたり最大 24 VM 動かせるようになります!(※ただし Win7 ゲストに限る)

わりと重大な発表がしれっと行われており、危うく気づかないところでした。

これです↓

“Hyper-V SP1 increases support for VMs/core for Windows 7”

https://blogs.technet.com/b/mkleef/archive/2011/01/07/hyper-v-sp1-increases-support-for-vms-core-for-windows-7.aspx

“VMs/core”というのはちょっと曖昧な表現なので、正確を期すならば、

「Windows Server 2008 R2 SP1 から、 Hyper-V の LP:VP 比率のサポート可能な最大値が 1:12 になります。ただし、すべてのゲスト OS が Windows 7 であることが条件です」

ということです。

以下、少しく説明を。

 

LP とか VP って何ですか?

まず、”LP”ですが、Hyper-V は、プロセッサの実行スレッドを「論理プロセッサ (LP)」という存在として扱います。クアッドコアのプロセッサが一基あれば、それは「4 つの LP がある」ことになります。

SMT (ハイパースレッディング)が有効になっていれば、それによって作り出される実行スレッドがやはり LP になるので、例えば Westmere 世代の 6 コア Xeon でハイパースレッディングが有効な状態であれば、1 ソケットが 12 LP と認識されます。

そして、Hyper-V はこの LP をそのまま仮想マシンに割り当てるわけではありません。仮想マシンにくっついている CPU は「仮想プロセッサ (VP)」というもので、 LP 上で実行されるプロセスのようなものです。OS のカーネルが CPU 時間をプロセスに割り当てるのと同じように、ハイパーバイザは LP の時間を細切れにして VP に割り当てます。
(っていうのは、以前@ITの会議室にも書いたことがあります)

私はこの LP と VP の関係を、こんな絵で説明しています↓

Hyper-V_LP_VP

 

LP:VP 比率ってのは?

仮に、 1 LPに対して 1 VP しか割り当てることができなかったら、どうでしょう?
「たいていのサーバーは CPU 使用率があまり高くないから、仮想化して集約できるよね」
という話などは全く成り立たなくなってしまいます。それでは当然困るので、一つの LP には複数の VP を割り当てることができます。LP:VP 比率が 1 を超えるこの状態を「オーバーサブスクリプション」と呼びます。いままでの Hyper-V では、この比率が 1:8 まで、というのが「正式サポート範囲」でした。

「R2 SP1からは、これが 1:12 に拡張されます」 というのが今回の発表です。
※ただしゲスト OS は Windows 7 に限る。という制限があり、これはちょっと残念なところです。

 

具体例をもう少し

具体的にどうなるかというと、1 VP のWindows 7 ゲストを想定するならば、

  • 4 コアのプロセッサを1基装備(ただしハイパースレッディング OFF)した物理マシン上であれば、4 x 12 = 48 台のWindows 7 ゲストの同時実行がサポートされます。
  • 今までは、性能的には動かすことができても、正式サポートの対象になるのは 4 x 8 = 32 台まででした。
  • 6 コアでかつハイパースレッディングが有効な最近の Xeon であれば、1ソケットあたり 6 x 2 x 12 = 144 台の Windows 7 ゲストの同時実行がサポートされることになります。

 

“12 VP/LP” ≠ “12 VMs/LP”

ここで気をつけていただきたいのは、「12」はあくまで「VP:LP の比率」であり、「コアあたりの VM 数」ではないということです。

前述のブログでは、「The new support limit is 12VMs/Logical Processor. 」という記述がありますが、1 LP あたり 12 台の VM が動かせるのは、その 12 VM がすべて 1 個の VP しか備えていない場合です。Hyper-V では 1 仮想マシンあたり 4 つまでの VP が割り当て可能なので、例えば 4 VP の VM であれば、 1 LP あたり 3 台までという計算になりますね。

 

See also

ブログという「柔らかい」情報源だけではアレなので、TechNetへのリンクをつけておきます。

“Requirements and Limits for Virtual Machines and Hyper-V in Windows Server 2008 R2”
https://technet.microsoft.com/en-us/library/ee405267(WS.10).aspx

“A ratio of 12:1 is supported on Hyper-V in Windows Server 2008 R2 Service Pack 1 when all guest operating systems on the server run Windows 7. Otherwise, the supported ratio is 8:1.”

ゲスト OS に制限があるとはいえ、今回の LP:VP 制限の拡張は Dynamic Memory や RemoteFX と合わせて VDI によく効きそうです。ますます SP1 が楽しみになってきました!

__END__