What problems can I expect when running dynamic memory in a Red Hat Linux VM under Hyper-V?
Microsoft's Hyper-V is most recognized for adding virtual machine (VM) support for Windows environments, but Hyper-V also supports Linux VMs. Hyper-V can support VMs from Linux distributions, including CentOS, Red Hat Enterprise Linux (RHEL), Debian, Oracle, SUSE and Ubuntu. Hyper-V can provide emulation for most Linux versions, though it may be necessary to install Linux Integration Services for version-specific drivers needed to boost Linux VM performance on the Windows Server platform. Let's consider some of the additional issues and problems that can arise from running Linux VMs under Hyper-V.
There are several issues to review when using RHEL 6.5 under Windows Server 2012 and Windows Server 2012 R2. One of the first considerations involves the memory-mapped I/O (MMIO) gap that can provision physical memory in the space often reserved for (but rarely ever used by) PCI devices. Windows Server 2012 R2 allows administrators to configure two MMIO gaps for virtual appliance configuration under Hyper-V. The ability to configure MMIO gaps is important for the successful deployment of virtual appliances, so older Windows Server platforms may require an upgrade to Windows Server 2012 R2 before RHEL 6.5 virtual appliances can be configured and supported properly.
Dynamic memory features also allow memory functions like hot-add or memory ballooning. First added in Windows Server 2008 R2 SP1, the hot-add memory is just that. More memory can be allocated to a VM based on its resource demands and the amount of startup and maximum memory specified for the VM while it's actually running. Ballooning is a technique that allows the server to recover memory Linux VMs no longer needed, usually after they start up and memory demands drop.
Windows Server 2012 and later supports hot-add and memory ballooning for Linux VMs using RHEL 6.5, but there are several caveats. First, dynamic memory features like hot-add and ballooning can only be used on 64-bit VMs, so older 32-bit applications running in a VM -- even though the OS is 64-bit -- may not be able to utilize dynamic memory capabilities. It may be necessary to upgrade the VM to a 64-bit version before invoking dynamic memory. Also remember that hot-add support may not be enabled by default in RHEL 6.5. Administrators may need to add a Udev rule to the server and reboot to make hot-add active.
Dynamic memory features might not work if the VM's OS (a Linux distribution like RHEL 6.5) is short on memory. It is important to allocate startup and minimum memory levels that meet or exceed the recommendations for the distribution. When selecting startup, minimum and maximum memory parameters, use 128 MB increments or multiples. Ensuring adequate memory may require a physical memory upgrade on the server or creative workload balancing to move lower-priority workloads off the server, freeing more memory for the needy VM.
Planning the live backup of an Oracle Linux VM in Hyper-V
Why SUSE VMs have UEFI and secure boot issues
Prevent problems with NUMA architecture on Hyper-V