Editor's note: The registry key location has been corrected.
The answers to my questions here, here, and here tell the tale about Microsoft's new approach to memory sizing for Windows. In essence, Microsoft's new dynamic memory feature in Windows Server 2008 R2 SP1 asserts that we IT professionals no longer have to make arbitrary decisions about how much RAM to assign to a virtual machine (VM). Instead, you should let your VMs tell you how much memory they need and let your Hyper-V hosts assign that memory on the fly.
It's a neat concept, one that has the potential for dramatically changing how we administer our Windows servers (and desktops in VDI environments).
However, as you can imagine, this level of memory assignment dynamics can create a situation where too much memory is assigned to VMs, leaving nothing for the host's needs. In environments that follow Microsoft best practices, this situation shouldn't happen all that often, because the best practices stipulate that Hyper-V hosts should run the Hyper-V role and nothing else. With nothing else to run, there's little else that requires RAM on the host.
Not everyone can follow those best practices. Individual needs might require some services or other applications on the host. In this case, you might need to ensure that enough RAM is kept in reserve for host processing. This Host Reserve makes sure that those host-based applications will always have the RAM they need.
You create the host reserve inside the registry. Set the decimal REG_DWORD value for HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Virtualization\MemoryReserve to the number of megabytes that should be reserved for the host. The default decimal value is 32, for 32MB, while the maximum value is 1024, 1GB.