Best practices while creating a VM on Windows Server 2012 R2 Hyper-V host

1. Generation 1 VM – uses Hyper-V BIOS based boot architecture. VMs can only initialize IDE controller for OS to initialize a file system.

Note : You can use IDE controllers for the boot disk containing the OS and SCSI controllers for additional disks with the benefit of adding them on the fly. Use generation 1 VM only if you are installing Windows Server 2008/ 2008 R2.

2. Generation 2 VM – uses Hyper-V UEFI based boot architecture. Allow SCSI controller to initialize before the OS starts loading. Generation 2 VM no longer loads the legacy drivers (IDE and Legacy Network Adapters).

Note : Guest operating systems Windows Server 2012, Windows Server 2012 R2, 64 bit versions of Windows 8/ 8.1 are supported as generation 2 VMs. Use generation 2 VM if you are installing Windows Server 2012/ 2012 R2.

3. While creating a virtual hard disk select VHDX format.

Note : VHDX is not supported in OS earlier than Windows Server  2012.

4. Create fixed size virtual hard disks for better performance.

5. Use Virtual Machine Connection to install the current version of the integration services in the guest operating system.

6. Processor compatibility : Select option, 'Migrate to a physical computer with a different processor version'.

7. In case of RAM, its better to allocate static memory for critical production servers.

Note : If you are enabling dynamic memory for VMs, then make sure to set minimum and maximum RAM size accurately as per requirement. Also you must do a proper capacity planning for memory. Otherwise the host machine may get overloaded and runs out of memory which will lead to performance degradation.

8. If a SQL server is running on the VM, make sure to set minimum and maximum memory utilization for SQL service.