Introduction to Virtualization
Virtualization is an abstraction layer that creates separate distinct virtual environments allowing the operation of different operating systems, desktops and applications under the same or combined pool of resources. In the past couple of years, virtualization has gained an incredible rate of adoption as companies consolidate their existing server and network infrastructure, in hope to create a more efficient infrastructure that can keep up with their growing needs while at the same time keep the running and administration costs as low as possible.
When we hear the word ‘Virtualization’, most think about ‘server virtualization’ – which of course is the most widely applied scenario, however today the term virtualization also applies to a number of concepts including:
- Server virtualization: - Server virtualization allows multiple operating systems to be installed on top of single physical server.
- Desktop virtualization: - Desktop virtualization allows deployment of multiple instances of virtual desktops to users through the LAN network or Internet. Users can access virtual desktops by using thin clients, laptops, or tablets.
- Network virtualization: - Network virtualization also known as Software Defined Networking (SDN) is a software version of network technologies like switches, routers, and firewalls. The SDN makes intelligent decisions while the physical networking device forwards traffic.
- Application virtualization: - Application virtualization allows an application to be streamed to many desktop users. Hosted application virtualization allows the users to access applications from their local computers that are physically running on a server somewhere else on the network.
This article will be focusing on the Server virtualization platform, which is currently the most active segment of the virtualization industry. As noted previously, with server virtualization a physical machine is divided into many virtual servers – each virtual server having its own operating system. The core element of server virtualization is the Hypervisor – a thin layer of software that sits between the hardware layer and the multiple operating systems (virtual servers) that run on the physical machine.
The Hypervisor provides the virtual CPUs, memory and other components and intercepts virtual servers requests to the hardware. Currently, there are two types of Hypervisors:
Type 1 Hypervisor – This is the type of hypervisor used for bare-metal servers. These hypervisors run directly on the physical server’s hardware and the operating systems run on top of it. Examples of Type-1 Hypervisors are Microsoft’s Hyper-V, VMware ESX, Citrix XenServer.
Type 2 Hypervisor – This is the type of hypervisor that runs on top of existing operating systems. Examples of Type-2 Hypervisors are VMware Workstation, SWSoft’s Parallels Desktop and others.
Microsoft Server Virtualization – Hyper-V Basics
Microsoft introduced its server virtualization platform Hyper-V with the release of Windows Server 2008. Hyper-V is a server role that can be installed from Server Manager or PowerShell in Windows Server 2012.
With the release of Windows Server 2012 and Windows Server 2012 R2, Microsoft has made lot of improvements in their Hyper-V virtualization platform. Features like live migration, dynamic memory, network virtualization, remoteFX, Hyper-V Replica, etc. have been added to new Hyper-V 3.0 in Server 2012.
Hyper-V is a type 1 hypervisor that operates right above the hardware layer. The Windows Server 2012 operating system remains above the hypervisor layer, despite the fact the Hyper-V role is installed from within the Windows Server operating system. The physical server where Hypervisor or Hyper-V server role is installed is called the host machine or virtualization server. Similarly, the virtual machines installed on Hyper-V are called guest machines.
Understanding Traditional vs Modern Server Deployment Models
Let’s take a look at the traditional way of server configuration. The figure below shows the typical traditional server deployment scenario where one server per application model is applied. In this deployment model, each application has its own dedicated physical server.
Traditional Server Deployment
This traditional model of server deployment has many disadvantages such as increased setup costs, management & backup overhead, increased physical space and power requirements, plus many more. Resource utilization of this type of server consolidation is usually below 10%. Practically, this means that we have 5 underutilized servers.
Virtualization comes to dramatically change the above scenario.
Using Microsoft’s Windows Server 2012 along with the Hyper-V role installed, our traditional server deployment model is transformed into a single physical server with a generous amount of resources (CPU, Memory, Storage space, etc) ready to undertake the load of all virtual servers.
The figure below shows how the traditional model of server deployment is now virtualized with Microsoft’s Hyper-V server:
Hyper-V Server Consolidation
As shown in the figure above, all the five servers are now virtualized into single physical server. It is important to note that even though these virtual machines run on top of the same hardware platform, each virtual server is completely isolated from other virtual machines.
There are many benefits of this type of virtualized server consolidation. A few important benefits are reduced management overhead, faster server deployment, efficient resource utilization, reduced power consumption and so on.
Network Virtualization with Hyper-V
With the power of network virtualization you can create multi-tenant environment and assign virtual machines or group of virtual machines to different organizations or different departments. In a traditional network, you would simply create different VLANs on physical switches to isolate them from the rest of the network(s). Likewise, in Hyper-V, you can also create VLANs and virtual switches to isolate them from the network in the same way.
For example, you can configure a group of virtual machines on the 192.168.1.0/24 subnet and other group of virtual machines on 192.168.2.0/24 subnet.
Each virtual machine can have more than one virtual network adapter assigned to it. Like regular physical network adapters, the virtual network adapters can be configured with IP addresses, MAC addresses, NIC teaming and so on. These virtual network adapters are connected to a virtual switch. A Virtual switch is a software version of physical switch that is capable of forwarding traffic, VLAN traffic, and so on. The virtual switch is created from within the Hyper-V Manager and is then connected to one or more available physical network adapters of the host machine. The physical network adapters on the host machine are then connected to physical switch on the network.
As shown in figure 1.3, three VLANs are created under same virtual switch. The host is then connected to the physical switch by usually combining the multiple physical network cards into one also called LAG (Link Aggregation Group) or EtherChannel (Cisco’s implementation of LAG) interface. LAG or EtherChannel combines the speed of both physical network adapters. If for example we have two 1Gbps physical network cards, with the use of LAG or EtherChannel, these are combine into a single 2Gbps network card.
Microsoft’s Hyper-V supports the creation of three different types of virtual switches:
- Internal: - The internal virtual switch can communicate only between virtual machines. A common example is a cluster based system where virtual servers connect with each other through a dedicated network connection. Internal virtual switches do not connect to the physical network infrastructure (e.g switches).
- External: - The external virtual switch can communicate directly with the physical network infrastructure. The virtual switch is used to for the seamless communication between the virtual machines and the physical network.
- Private: - The private virtual switch can communicate between virtual machines and the physical host only (physical hardware server).
Virtual Deployment Infrastructure (VDI) Deployment with Hyper-V
VDI is a new way of delivering desktops to end users. In VDI, virtual desktops are hosted centrally as virtual machines and are provided or streamed to users via the network or Internet using Remote Desktop Protocol (RDP) service. These virtual desktops can be used or accessed by users with different types of devices like, PCs, laptops, tablets, smart phones, thin clients, and so on. VDI have created a new hype of Bring Your Own Device (BYOD) concept. With BYOD policy implemented in the organization, users can bring their own devices like laptops, tablets, etc. and the company delivers the required virtual desktop via the network infrastructure.
VDI is an upcoming trend that offers many advantages such as:
- Central management and control
- Low cost since there is no need of desktop PCs. Alternate devices such as thin clients usually preferred
- Low power consumption. Tablets, thin clients, laptops require low power compared to traditional desktop or tower PCs
- Faster desktop deployments
- More efficient backup
VDI is fully supported and can be implemented in Windows Server 2012 by installing Remote Desktop Services server role and configuring the virtualization host. You can create virtual machines running Windows XP/7/8 and easily assign the virtual machines to users.
We’ve covered a few of the important virtualization features deployable with Windows Server 2012 and Hyper-V, that allow organizations to consolidate their server, network and desktop infrastructure, into a more efficient model.