Virtualization in Cloud Computing
Virtualization in Cloud Computing
What is Virtualization?
You may be asking yourself, What exactly is virtualization? Many people tend to confuse
virtualization with other forms of technology and sometimes confuse the difference between
virtualization and say, cloud computing. Virtualization is the process of creating a virtual
version of something, such as computing environments, operating systems, storage devices or
network components, instead of utilizing a physical version for certain aspects of a companys
infrastructure.
For example, server virtualization is the process in which multiple operating systems (OS) and
applications run on the same server at the same time, as opposed to one server running one
operating system. If that still seems confusing, think of it as one large server being cut into
pieces. The server then imitates or pretends to be multiple servers on the network when in reality
its only one. This offers companies the capability to utilize their resources efficiently and lowers
the overall costs that come with maintaining servers.
managed virtual clients, with applications and client operating environments hosted on servers
and storage in the data center. For users, this means they can access their desktop from any
location, without being tied to a single client device. Since the resources are centralized, users
moving between work locations can still access the same client environment with their
applications and data.[5] For IT administrators, this means a more centralized, efficient client
environment that is easier to maintain and able to more quickly respond to the changing needs of
the user and business.
Another form, session virtualization, allows multiple users to connect and log into a shared but
powerful computer over the network and use it simultaneously. Each is given a desktop and a
personal folder in which they store their files. With multiseat configuration, session virtualization
can be accomplished using a single PC with multiple monitors keyboards and mice connected.
Thin clients, which are seen in desktop virtualization, are simple and/or cheap computers that are
primarily designed to connect to the network. They may lack significant hard disk storage space,
RAM or even processing power, but many organizations are beginning to look at the cost
benefits of eliminating thick client desktops that are packed with software (and require
software licensing fees) and making more strategic investments.
User virtualization is pretty similar to desktop, but allows users the ability to maintain a fully
personalized virtual desktop when not on the company network. Users can basically log into
their desktop from different types of devices like smartphones and tablets. With more
companies migrating to a BYOD policy, desktop and user virtualization are becoming
increasingly popular.
Storage virtualization is the process of grouping the physical storage from multiple network
storage devices so that it acts as if its on one storage device.
Hardware virtualization (also referred to as hardware-assisted virtualization) is a form of
virtualization that uses one processor to act as if it were several different processors. The user
can then run different operating systems on the same hardware, or more than one user can use the
processor at the same time. This type of virtualization requires a virtual machine manager (VM)
called a hypervisor.
Hardware virtualization or platform virtualization refers to the creation of a virtual machine that
acts like a real computer with an operating system. Software executed on these virtual machines
is separated from the underlying hardware resources. For example, a computer that is running
Microsoft Windows may host a virtual machine that looks like a computer with the Ubuntu
Linux operating system; Ubuntu-based software can be run on the virtual machine.
In hardware virtualization, the host machine is the actual machine on which the virtualization
takes place, and the guest machine is the virtual machine. The words host and guest are used to
distinguish the software that runs on the physical machine from the software that runs on the
virtual machine. The software or firmware that creates a virtual machine on the host hardware is
called a hypervisor or Virtual Machine Manager.
Full virtualization almost complete simulation of the actual hardware to allow software,
which typically consists of a guest operating system, to run unmodified.
Partial virtualization some but not all of the target environment attributes are simulated.
As a result, some guest programs may need modifications to run in such virtual
environments.
Paravirtualization a hardware environment is not simulated; however, the guest
programs are executed in their own isolated domains, as if they are running on a separate
system. Guest programs need to be specifically modified to run in this environment.
Snapshots
A snapshot is the state of a virtual machine, and generally its storage devices, at an exact point in
time. A snapshot enables the virtual machine's state at the time of the snapshot to be restored
later, effectively undoing any changes that occurred afterwards. This capability is useful as a
backup technique, for example, prior to performing a risky operation.
Virtual machines frequently use virtual disks for their storage; in a very simple example, a 10gigabyte hard disk drive is simulated with a 10-gigabyte flat file. Any requests by the VM for a
location on its physical disk are transparently translated into an operation on the corresponding
file. Once such a translation layer is present, however, it is possible to intercept the operations
and send them to different files, depending on various criteria. Every time a snapshot is taken, a
new file is created, and used as an overlay for its predecessors. New data are written to the
topmost overlay; reading existing data, however, needs the overlay hierarchy to be scanned,
resulting in accessing the most recent version. Thus, the entire stack of snapshots is virtually a
single coherent disk; in that sense, creating snapshots works similarly to the incremental backup
technique.
Other components of a virtual machine can also be included in a snapshot, such as the contents
of its random-access memory (RAM), BIOS settings, or its configuration settings. "Save state"
feature in video game console emulators is an example of such snapshots.
Migration
The snapshots described above can be moved to another host machine with its own hypervisor;
when the VM is temporarily stopped, snapshotted, moved, and then resumed on the new host,
this is known as migration. If the older snapshots are kept in sync regularly, this operation can be
quite fast, and allow the VM to provide uninterrupted service while its prior physical host is, for
example, taken down for physical maintenance.
Failover
Similarly to the migration mechanism described above, failover allows the VM to continue
operations if the host fails. However, in this case, the VM continues operation from the lastknown coherent state, rather than the current state, based on whatever materials the backup
server was last provided with.
Network Virtualization with network virtualization, the network is carved up and can be
used for multiple purposes such as running a protocol analyzer inside an Ethernet switch.
Components of a virtual network could include NICs, switches, VLANs, network storage
devices, virtual network containers, and network media.
Understanding Hypervisors
Given a computer system with a certain set of resources, you can set aside portions of those
resources to create a virtual machine. From the standpoint of applications or users, a virtual
machine has all the attributes and characteristics of a physical system but is strictly software that
emulates a physical machine. A system virtual machine (or a hardware virtual machine) has its
own address space in memory, its own processor resource allocation, and its own device I/O
using its own virtual device drivers. Some virtual machines are designed to run only a single
application or process and are referred to as process virtual machines.
VMware vSphere
VMware vSphere is a management infrastructure framework that virtualizes system, storage, and
networking hardware to create cloud computing infrastructures. vSphere is the branding for a set
of management tools and a set of products previously labeled VMware Infrastructure. vSphere
provides a set of services that applications can use to access cloud resources, including these:
VMware vCompute: A service that aggregates servers into an assignable pool
VMware vStorage: A service that aggregates storage resources into an assignable pool
VMware vNetwork: A service that creates and manages virtual network interfaces
Application services: Such as HA (High Availability) and Fault Tolerance
vCenter Server: A provisioning, management, and monitoring console for VMware cloud
Infrastructures.
A vSphere cloud is a pure infrastructure play. The virtualization layer that abstracts processing,
memory, and storage uses the VMware ESX or ESXi virtualization server. ESX is a Type 1
hypervisor; it installs over bare metal (a clean system) using a Linux kernel to boot and installs
the vmkernel hypervisor (virtualization kernel and support files). When the system is rebooted,
the vmkernel loads first, and then the Linux kernel becomes the first guest operating system to
run as a virtual machine on the system and contains the service console.
Measure disk latency on guest operating systems Response times of the disks used by the
guest operating systems can be measured using the same performance monitor counters used to
measure response times of the disks used by the Hyper-V host operating system.
Measuring Memory Performance
Use the following performance monitor counters to measure the impact of available memory on
the performance of a guest operating system installed on a Hyper-V virtual machine:
Less than 5% of free memory available = Critical, performance will be adversely affected
\Memory\Pages/sec This performance monitor counter measures the rate at which pages are
read from or written to disk to resolve hard page faults. To resolve hard page faults, the operating
system must swap the contents of memory to disk, which negatively impacts performance. A
high number of pages per second in correlation with low available physical memory may
indicate a lack of physical memory. The following guidelines apply when measuring the value of
this performance monitor counter:
Measure available memory on the guest operating system Memory that is available to the
guest operating systems can be measured with the same performance monitor counters used to
measure memory available to the Hyper-V host operating system.
Test network file transfers Copy a 100MB file between virtual machines and measure the
length of time required to complete the copy. On a healthy 100Mbit (megabit) network, a
100MB (megabyte) file should copy in 10 to 20 seconds. On a healthy 1Gbit network, a 100MB
file should copy in about 3 to 5 seconds. Copy times outside of these parameters are indicative of
a network problem. One common cause of poor network transfers occurs when the network
adapter has auto detected a 10MB half-duplex network which prevents the network adapter
from taking full advantage of available bandwidth.
Measure network utilization on the Hyper-V host operating system Use the following
performance monitor counters to measure network utilization on the Hyper-V host operating
system:
If an output queue length of 2 or more is measured, consider adding one or more physical
network adapters to the physical computer that hosts the virtual machines and bind the network
adapters used by the guest operating systems to these physical network adapters.
Measure network utilization on the guest operating systems If a network adapter on the
Hyper-V root partition is busy as indicated by the performance monitor counters mentioned
above, then consider using the "\Hyper-V Virtual Network Adapter(*)\Bytes/sec" performance
monitor counter to identify which virtual network adapters are consuming the most network
utilization.
Guest operating system processors do not have a set affinity to physical processors/cores
The hypervisor determines how physical resources are used. In the case of processor utilization,
the hypervisor schedules the guest processor time to physical processor in the form of threads.
This means the processor load of virtual machines will be spread across the processors of the
physical computer. Furthermore, virtual machines cannot exceed the processor utilization of the
configured number of logical processors, for example if a single virtual machine is configured
to run with 2 logical processors on a physical computer with 8 processors/cores, then the virtual
machine cannot exceed the processor capacity of the number of configured logical processors
(in this case 2 processors).
Measure guest operating system processor utilization Traditionally, processor performance
can be measured using the \Processor(*)\% Processor Time performance monitor counter.
This is not an accurate counter for evaluating processor utilization of a guest operating system
though because Hyper-V measures and reports this value relative to the number of processors
allocated to the virtual machine. If more processors are allocated to running virtual machines
than are actually present on the physical computer, the value returned by each guest operating
system for the \Processor(*)\% Processor Time performance monitor counter will be low,
even if in fact processor utilization is a bottleneck. This occurs because the virtual processors
utilize the physical processors in a round-robin fashion. Each virtual processor will try and
allocate itself a share of overall system resources, so in a 4 physical processor system, each
virtual processor will by default try to utilize 25% of the system resources. If 8 virtual
processors are created this means that collectively the virtual processors will attempt to utilize
200% of the server CPU capacity. In this case, each virtual processor will report a low
utilization as measured by the \Processor(*)\% Processor Time performance monitor counter
(relative to the level it expects) and the excessive context switching between the virtual
processors will result in poor performance for each virtual machine. In this scenario, consider
reducing the number of virtual processors allocated to Hyper-V virtual machines on the host
operating
system.
Hyper-V provides hypervisor performance objects to monitor the performance of both logical
and virtual processors. A logical processor correlates directly to the number of processors or
cores that are installed on the physical computer. For example, 2 quad core processors installed
on the physical computer would correlate to 8 logical processors. Virtual processors are what
the virtual machines actually use, and all execution in the root and child partitions occurs in
virtual
processors.
To accurately measure the processor utilization of a guest operating system, use the
\Hyper-V Hypervisor Logical Processor(_Total)\% Total Run Time performance
monitor counter on the Hyper-V host operating system. Use the following thresholds to
evaluate guest operating system processor utilization using the \Hyper-V Hypervisor
Logical Processor(_Total)\% Total Run Time performance monitor counter:
o Less than 60% consumed = Healthy
o 60% - 89% consumed = Monitor or Caution
o 90% - 100% consumed = Critical, performance will be adversely affected