I've a Windows Server 2012 R2 based Hyper-V host with Windows Server 2012 R2 guest VMs and also Debian 7.6 based VMs. The dynamic RAM is working on Windows guests fine. But on Linux its not and the VM is using the swap instead of getting more RAM from the host!
~#free -m
total used free shared buffers cached
Mem: 490 484 5 0 1 6
-/+ buffers/cache: 476 13
Swap: 1287 106 1181
Some time later:
~# free -m
total used free shared buffers cached
Mem: 490 484 5 0 1 6
-/+ buffers/cache: 476 13
Swap: 1287 110 1177
As you can see, the used swap increased from 106MB to 110MB and the real RAM is still on 490MB. In the Hyper-V settings I configured the following:
RAM on startup: 512MB
Minimal RAM: 512MB
Maximum RAM: 6000MB
I activated the kernel-modules for the Hyper-V integration tools by using http://blogs.msdn.com/b/virtual_pc_guy/archive/2010/10/21/installing-ubuntu-server-10-10-on-hyper-v.aspx So the following kernel-modules are activated:
hv_vmbus
hv_storvsc
hv_netvsc
The output of lsmod say that hv_blkvsc isn't activated, I think that's because there is no GUI on the server.
According to Microsoft, Debian does not support Hyper-V dynamic memory.