In this post I will describe the VM guest considerations and preparations.
VM guest considerations
Considerations for your VM guests:
- Use legacy network adapter ? Could be necessary for by example PXE boot.
- In most cases the regular network adapters will be the best choice.
- How much memory to assign ? Should I use dynamic memory in Hyper-V ? Should I overcommit using VMware ?
- In most cases for your home lab it is probably best to use dynamic memory / overcommit. Some applications however might not work correctly, or you might not have the desired outcome.
- How many virtual CPUs should I assign ?
- Should I store my VMs on a single physical disk or on multiple physical disks ?
- When using standard physical disks (non-SSD) if you’re performing multiple simultaneous actions on different locations on a single disk, this will lead to delays because of repositioning of the HDD head. Therefore it might be beneficial to distribute VMs across multiple disks.
- When using SSD there are no HDD heads and platters, since everything is stored on memory chips (no moving parts). SSD’s also provide much more IOPS (I/O Per Second), which makes it more ideal for running multiple VMs on a single disk.
- Should I use virtual disks or pass-through disks ?
- For VMs that I use for testing, I use virtual disks because they provide more flexibility.
- For my file server I choose to use pass-through disks so I can simply remove the disk from my server and place them in another system. I’m also afraid that should you encounter an issue when using a virtual disk, that the chance is greater that you lose everything because the virtual disk will break.
- When I use virtual disks, should I use thin provisioned disks or thick provisioned disks ?
- Thick provisioned disks are supposed to deliver better performance, but at the cost of more disk space. Also for a home LAB I doubt the performance loss is minimal and acceptable, so I would go with thin provisioned disks. Also when using SSD disks, space is costly and limited. Be sure to monitor disk space usage though.
- Should I use differencing disks in Hyper-V / linked clones in VMWare ?
- When you plan to use multiple VMs running the same operating system, you can save space by using differencing disks / linked clones. This also impacts the disk I/O however, so monitor it to see if it fits your needs. Since I use SSD disks and run multiple VMs with the same OS, I use differencing disks.
VM guest preparations
An home LAB is not complete without VM guests ofcourse. The basic methods for provisioning are:
- Using pre-prepped VMs that are provided by third parties like by example Microsoft and VMWare. For VMWare there is even a virtual appliance Marketplace.
- Installing VMs manually every time.
- Using 3rd party deployment tools to provision operating systems to VMs. By example System Center Configuration Manager.
- Deploying VMs from templates you create manually.
Often you’ll use a combination of the methods. In my case I’ll deploy many instances of the same guest OS versions for my test lab. I’ll often deploy various versions of Windows multiple times. Therefore I create my own templates for my test lab.
Basic actions for template creation are:
- Installation of the operating system
- Installing the Hyper-V Integration Component (or VMWare tools).
- Adding roles and features I expect to be using in (the majority of) my VMs.
- Downloading and installing the latest updates.
- Performing sysprep to generalize the installation and choosing to turn off the system afterwards.
DO NOT TURN ON THE SYSTEM, otherwise you need to run sysprep again.
- Saving the virtual disk files for future use.
- If you’re going to be using differencing disks, you will use this disk as the parent disk. Make sure you set it to read-only.
Using this approach I’ve created my own templates consuming 180GB and covering most of the operating systems I (can) encounter and want to test with:
Storing backups and ISO files
When you have files that have lots of similar data, they are very suitable for deduplication. Also read this great blog post if you want to know how it works.. With for example ISO files and powered-off VMs you can save a lot of space. You should however not configure this for files that change on a regular basis like by example actively running VMs. With Server 2012, you can easily enable deduplication for volumes. Also keep in mind that these files do not require high IOPS, so you can store them on slower disks.
If you want to check how much space you can save without installing Server 2012 and its deduplication feature, you can also run the deduplication evalutation tool (ddpeval.exe) on Windows 7, Windows 8, Windows 2008 R2 or Windows Server 2012. You can even “hack” Windows 8 Pro to allow deduplication.
I was able to reduce the used disk space with 75% from 215 GB to 50 GB. This was with ISO files and the backups of the parent disks I created earlier (not the ones in use).
In the next post I will describe configuring Server 2012 VM as DC with DNS and DHCP using PowerShell.