Learning all about virtualisation with Hyper-V
Recently my eyes were opened to a whole new world of parallelisation and cloud computing. During my day to day research I use High Performance Computing (HPC) facilities, where thousands of CPUs, PBs of storage and TBs of memory enable the running of highly parallelised code. This code has been explicitly written in a parallel programming language (typically MPI) to communicate data between processors. An alternative to this is virtualisation - using the resources at the HPC facility (referred to as a data centre in this new environment) to host virtual machines. It is this alternative that is the subject of this post.
Always seeking a new challenge, I stumbled across an offer from Microsoft Virtual Academy to take the exam:
for free. Challenge accepted.
MS System Center (MSSC), Virtual Machine Manager (VMM) and Hyper-V
Where to start. I had a somewhat general understanding of virtualisation, mainly using VirtualBox on OSX to test code on other operating systems. But this was a different ball game. My first port of call was the Microsoft Virtual Academy and the associated training course. The course consists of 13 videos, ppt presentations, guides and FAQs. The videos take around 2-3 days to watch, take notes, re-watch, google, read and watch again. I found it useful to have the videos run side-by-side with the ppt presentations.
After watching the videos and feeling comfortable with Microsoft's approach to virtualisation, I attacked Google. I found lots of resources and blogs that provided further reading and links directly to the Microsoft Hyper-V and System Center online docs. Below is a list of great reads:
Most of the additional resources and documentation that lists the features of MSSC and MS Server 2012 R2 makes sense - particularly if you're familiar with computer clusters, networking and virtual machines. The important things that stood out to me are:
Understanding Failover Clustering
Basically, given multiple servers, how does Hyper-V, VMM handle migrating VMs from one server to the next if/when one server goes down? This is a core question, not just for MSSC but for virtualisation in general
Need for Cluster Shared Volumes (CSV - not Comma Separated Variables!)
Other ways to ensure High Availability
NIC Teaming: Using multiple network cards as a 'team' serving a single connection
Hyper-V replica: replication of VMs across the network to a different server
Live migration: move VMs without downtime
Quick migration: downtime incurred but stores a save-state of the VM
How to maximise performance: minimise network traffic/latency, CPU load, filling RAM etc..
This includes various features of MSSC, Hyper-V and VMM such as:
- Dynamic Optimisation
- Network and Storage Quality of Service (QoS)
Some PowerShell commands/cmdlets
I didn't have any PowerShell experience but I use Bash/CSH daily. I answered the questions regarding PowerShell commands by either a process of elimination or by looking for keywords in command itself.
Network Vitualisation, Virtual Switches, Virtual Private LANS
This makes sense; if we are able to run virtual machines on a single physical server then why not virtual switches? and why not virtual networks on a physical network? We then have to consider the scope of these new abstract objects - should the switches allow connections to other VMs only (i.e. a private switch)? should the networks connect to the internet?
Types and configurations of VMs
- Generation 1 vs Generation 2 VMs
- PXE boot vs non-PXE boot (for bare-metal deployment)
- VHD vs VHDx, dynamically resizing vs fixed?
- What type of VM can Windows Azure handle?
- Enhanced Session Mode
- P2V and V2V, Physical to Virtual and Virtual to Virtual. There are requirements for a physical disk to be converted to a virtual disk.
VMM and other MSSC components
MSSC is a suite of tools to facilitate server virtualisation, its important to have a general understanding of each of these.
- VMM is the core component, allowing the underlying management of multiple hyper-v servers, storage servers and networks.
- Data Protection Manager (DPM) servers can protect and recover Hyper-V servers, in addition to other servers (SQL etc). The interplay of the DPM servers with Active Directory (AD) servers is important.
- Service Manager allows for reporting of incidents and problems as well as business management features such as chargeback for accountability.
- Orchestrator as the name suggests allows for automation. I see why Microsoft developed this, particularly from a programmers point of view. An I.T. admin would not want to continually perform common operations such as creating specific VMs, cloning them and migrating them. Whilst a programmer would script these processes, an I.T. admin requires a higher level GUI based application.
- SC Operations Manager (SCOM) provides monitoring of what can become a complex environment of VMs, networks, storage and users.
There are clearly more topics to read up on but these are the ones that come to mind as I sit here and write this post.
The exam is multiple choice based, with a strange drag and drop component. I felt some questions were confusing and some picked out very obscure details regarding very specific components of MSSC. Most questions are based on Scenarios: "A company has X Hyper-V servers, Y SMB servers located in New York and the moon, which options would you implement to provide failover clustering"
The multiple choice nature of the exam does allow you to use a process of elimination and even if you are unsure, seeing the possible the answers can help. Sometimes however, the possible answers can be very similar, particularly if the question relates to Power Shell commands. I had to guesstimate around 20% of the questions, eliminating obviously wrong answers.
Importantly I managed to pass and might even venture into setting up a local Hyper-V server or mini-cloud...
I was generally quite impressed with the MSSC and VMM suite of tools. I can appreciate the efforts made to implement the vast array of features and parameters in a user-friendly, tidy manner. I like that you can set up a single Hyper-V server with no VMM or MSSC - for free. The Hyper-V server software is free to download to play with without the overhead of MS Server. I can see the benefit and appeal of these virtualisation environments, particularly to smaller businesses where the on-costs for setting up in-house hardware for CMS or Databases would be removed. Then there is the minimised maintenance and downtime - if you're database is hosted virtually then it's doubtful you would even notice if there was a hardware failure.
I'm yet to play with the VMware suite of tools (the main alternative to Microsoft's offering) but MSSC and VMM seem to cover all the bases when it comes to providing a secure, highly available, self-servicable virtualisation environment.