Hyper-Vのメモリのオーバーコミット、物理ホストを超えた割り当ては可能?

VMwareの仮想環境では当たり前にメモリやCPUのオーバーコミットをしていると思います。CPUなんて、普段あまり使わないからリソースが余ることが多いですが、たいてい、どの現場でもメモリが枯渇することのほうが多いです。


最近はVMwareではなくHyper-Vの評価もあがってきて、価格が安いHyper-Vでの仮想環境を導入している企業も増えていると思いますが、Hyper-Vのメモリのオーバーコミット、物理ホストを超えた割り当ては可能なのでしょうか。


気になったので調べてみました。まず、Hyper-VVMwareと違い、ゲストに割り当てたメモリサイズはそのまま予約されてしまい、使用されてしまいます。


つまり、32GB搭載した物理ホストがいた場合、4台の仮想マシンに8GB割り当てると、それが使用されてしまい、その時点でメモリが不足状態になりますが、そもそも、オーバーコミットできるのでしょうか。

 


あるブログでは、メモリが足らない状態で仮想マシンを起動しようとしたらエラーが出たとありましたので、おそらく動作的にはオーバーコミットできないのではないかと思います。実機で確認していないので、あくまで情報の転載です。


また、これを回避する仕組みとして、Dynamic メモリという機能があります。ちなみに、Hyper-VではCPUのオーバーコミットは可能です。


Hyper-VのCPUのオーバーコミットとは、サーバに実装されているCPUのリソース量よりも、多くのリソースをゲストOSに対して仮想的に割り当てられる機能のことで、動的メモリとは、サーバに実装されているメモリのリソース量以内で、ゲストOSに対して効率的にメモリを割り当てられる機能のことです。


メモリを上手に使いたい場合は、動的メモリを使うことになりますが、これまたVMwareと動作が違うので十分に検証されることをおすすめします。

 

瞬間的にメモリを必要とした場合に、Hyper-Vの動的メモリでは割り当てが瞬時に行われない可能性があり、状況に応じて使用するのがよさそうな機能です。