I have a physical server with 12GB of Ram, with a system HDD of 250Gb (180Gb free), and a dedicated HDD to host the VMs of 1Tb (600+Gb free).
This server was running Windows Server 2008 R2 as a host with several VMs on it (some running Windows Server 2008 R2, others running Windows Server 2012 R2, other running Debian 6, 7 and 8). It allowed me to fire as many VMs as there was enough RAM remaining, I usually went up to 11,8Gb RAM used according to task manager.
Now I upgraded the host to Windows Server 2012 R2 (fresh install on blank HDD, same specs as before).
It runs fine but when task manager tells me 9,5Gb RAM used, so 2,5Gb free, it doesn't allow me to fire up a VM with 2Gb of RAM (neither with 1Gb, I only can fire a VM with 512Mb of RAM, and then nothing more).
What can cause this limitation ? Knowing that this is not a disk space issue as there is plenty of free space on all hard drives ...
This is by design.
Server 2012R2 reserves more RAM for the host system then 2008R2, the idea is it improves stability in the host. In 2008R2 you could set the registry key
MemoryReserve
inHKLM\Software\Microsoft\Windows NT\CurrentVersion\Virtualization
You can still change that key but it could cause the system to become unstable and crash.
Reference: Technet article