While it didn't make a lot of noise, Microsoft released SP1 for Windows Server 2008 R2 a few days ago. So how does this impact Microsoft's virtualization customers? There are two changes in SP1 that have relevance to virtualization; dynamic memory and RemoteFX. While RemoteFX is a significant enhancement to running virtual desktops over the network, we'll come back to that this in another blog post and focus on the memory management changes found in Hyper-V for now.
Dynamic Memory for Hyper-V is a new feature that helps distribute memory to the virtual machines hosted on the physical server. Previous to SP1 you would allocate memory to a virtual machine based on what you assumed the VM would need. Now with SP1 for Windows Server 2008 R2 you can choose whether your memory is static or dynamic and with dynamic you can set startup RAM values, maximum RAM values and the amount of memory to reserve as a buffer.
Startup RAM is the amount of memory allocated to a virtual machine and reported to the guest operating system BIOS while maximum RAM is the total amount of memory that will be given to a virtual machine. The default for maximum RAM is 64GB.
You can also set memory priority which specifies how to prioritize the availability of memory for the virtual machine compared to the other VMs on the parent server. For instance, if you have several VMs on a physical server, the VMs with lower memory priority may not start if there are other VMs on the server with higher priorities and the server is low on memory.
How is this different from VMware? Well, Hyper-V is deciding how much memory to give to each VM and then relying on the operating system within the VM to decide how much memory it needs to operate. The idea is that the VM will only take what is needed based on what the operating system reports back on.
VMware overcommits memory essentially giving VMs more memory then they will likely need or use and more memory than what is available on the physical server. Vmware's method gambles on the fact that all of the VMs on the physical server won't need the maximum amount of memory at the same time.
I don't think it is fair to say which solution is the best one just yet but this is another example as to why I think Microsoft Hyper-V has made significant feature enhancements to have a competitive solution to VMware. Something to consider, Microsoft is relying on the guest operating system to manage memory to make this feature successful…an operating system that is developed by none other than Microsoft. Which do you think will be more successful in the long run?
I would assume that Microsoft will ensure that Windows Guest VMs will work well with this approach. However I wonder how that will translate to non-Windows guests? VMWare's approach is nice in that it supports pretty much any guest and if Hyper-V Dynamic Memory only works well with Windows guests, VMWare will continue to be preferred in large orgs.
Regardless, this is an interesting approach and might provide better overall results for an all-Microsoft environment.
Posted by: Storagesavvy | 02/25/2011 at 11:22 AM
Thanks for the comments and good to hear from you! With Dynamic Memory you can still set memory options for non-Windows hosts and realize better memory management benefits then you would in a situation where you statically assign memory allocation without an opportunity to reclaim it. This feature is likely most beneficial to Windows clients because Microsoft is leveraging their knowledge of Windows and how it uses memory to get the most benefit out of their implementation and can continue to develop features that are specific advantages to Windows based VMs (not to mention Windows is the OS probably most in need of a memory management feature). From my experience and the industry data I've seen, Windows continues to be the primary operating system that customers are virtualizing so the benefits should apply to the majority of customers.
Posted by: Virtual Winfrastructure | 02/28/2011 at 05:11 PM