This is an update on my “Setting up a home learning lab” post.
I have recently decided to upgrade the host OS on my desktop to Windows 8 Professional so I could check out Hyper-V as a virtualization platform and get to know Windows 8 better. Windows Server 2012 would have been my first choice, but drivers don’t exist for all of my hardware.
What I liked
Dynamic Memory Management
Dynamic Memory Management is probably the coolest feature I encountered in Hyper-V.
In the VM configuration, the administrator can specify the starting amount of RAM for the virtual server(s). The default is 512 MB. From there, Hyper-V will allocate more memory as needed by the VM. This makes Hyper-V very good for running lots of VMs at once.
For example, to use my Always On Availability Group VMs, I have 3 Windows/SQL Server combinations (1 Primary and 2 replicas), a domain controller and a storage server (Shared Storage is not required for AG’s but it is usable). Then to have my cluster also interacting with the AG’s, it takes another 3 machines if I want all nodes online. Hyper-V handles this like a champ.
Guest Drivers Included
Windows Server 2008r2 and above include the necessary VM host drivers for Hyper-V, which are fully compatible with Windows. There’s no need to install another package and reboot after you’ve installed the Guest OS. I mention this because there is (or used to be) a known bug with the VirtualBox Guest Additions. The Additions must be removed when creating Windows clusters, but can be re-added after the cluster is created and verified.
What I didn’t like
All of my “dislikes” are around interacting with the host Operating System, and the only reason I mention them is because VirtualBox (with the Guest Additions installed on the VM) has made the experience so easy and flexible.
The clipboard does not go both ways. If you want to paste text into the VM, you need to click on “Type Keyboard Text.” It works well, but it’s annoying if you are used to keyboard short-cuts (control-c, control-v) for your cutting and pasting.
In VirtualBox you have the option to temporarily or permanently mount (map) to host drives and paths. You also have the option to make them read/write or read/only. Using Hyper-V, you need to add another network adapter to the VM to expose it to your network, then use the standard UNC paths (and shares) to access host directories and drives. Since this is my sandbox, I prefer not to expose any of my VMs to the Internet, and while denying Internet access is possible with some router adjustments, it’s work I don’t want to do given the number of VMs I create and destroy.
Another workaround is to use RDP to access your VMs, but this requires exposing them to your internal network and either setting a DHCP Reservation on your router or using a Static IP. Given the amount of admin overhead when you have a lot of VMs, this isn’t an option for me.
With Hyper-V, you are only presented with the option to adjust the resolution in display properties on the VM with standard resolutions. In VirtualBox, you can drag the corner of the screen and size to virtually any custom size. This is very handy when working on a laptop screen if you don’t want to be in “full screen” and still want to be able to see your host task bar for, say, IM notifications.
A handy fact about VirtualBox is that it can read, create, run and convert between many types of virtualization disk files, so I can easily copy Virtual Machines from either host and still use them. Hyper-V seems confined to VHDs.
I’ve decided to stick with Hyper-V on my Desktop for now, due to its ability to easily run a lot of VMs at one time with dynamic memory management. However, I’ve returned to VirtualBox on my laptop due to the easy interaction with the host and screen sizing options.
Have I missed anything? What’s your virtualization platform of choice for your lab, and why?