Cloud Computing
UNIT – 3
Virtualization and Abstraction
Introduction to Virtualization Technologies
• Virtualization is a technique of how to separate a service from the
underlying physical delivery of that service.
• It is the process of creating a virtual version of something like
computer hardware. It was initially developed during the mainframe
era.
• It involves using specialized software to create a virtual or
software-created version of a computing resource rather than the
actual version of the same resource.
• With the help of Virtualization, multiple operating systems and
applications can run on same machine and its same hardware at the
same time, increasing the utilization and flexibility of hardware.
Introduction to Virtualization Technologies
• In other words, one of the main cost effective, hardware reducing and
energy saving techniques used by cloud providers is virtualization.
• Virtualization allows to share a single physical instance of a resource or an
application among multiple customers and organizations at one time.
• It does this by assigning a logical name to a physical storage and providing a
pointer to that physical resource on demand. The term virtualization is
often synonymous with hardware virtualization, which plays a fundamental
role in efficiently delivering Infrastructure-as-a-Service (IaaS) solutions for
cloud computing.
• Moreover, virtualization technologies provide a virtual environment for not
only executing applications but also for storage, memory, and networking.
Benefits of Virtualization
The machine on which the virtual machine is going to be built is known as
Host Machine and that virtual machine is referred as a Guest Machine.
• More flexible and efficient allocation of resources.
• Enhance development productivity.
• It lowers the cost of IT infrastructure.
• Remote access and rapid scalability.
• High availability and disaster recovery.
• Pay peruse of the IT infrastructure on demand.
• Enables running multiple operating systems.
Types of Virtualization
• Application Virtualization
• Network Virtualization
• Desktop Virtualization
• Storage Virtualization
• Server Virtualization
• Data virtualization
Types of Virtualization
• 1. Application Virtualization:
Application virtualization helps a user to have remote access of an application
from a server. The server stores all personal information and other characteristics
of the application but can still run on a local workstation through the internet.
Example of this would be a user who needs to run two different versions of the
same software. Technologies that use application virtualization are hosted
applications and packaged applications.
• 2. Network Virtualization:
The ability to run multiple virtual networks with each has a separate control and
data plan. It co-exists together on top of one physical network. It can be managed
by individual parties that potentially confidential to each other.
Network virtualization provides a facility to create and provision virtual
networks—logical switches, routers, firewalls, load balancer, Virtual Private
Network (VPN), and workload security within days or even in weeks.
Types of Virtualization
• 3. Desktop Virtualization:
Desktop virtualization allows the users’ OS to be remotely stored on a server in
the data centre. It allows the user to access their desktop virtually, from any
location by a different machine. Users who want specific operating systems other
than Windows Server will need to have a virtual desktop. Main benefits of desktop
virtualization are user mobility, portability, easy management of software
installation, updates, and patches.
• 4. Storage Virtualization:
Storage virtualization is an array of servers that are managed by a virtual storage
system. The servers aren’t aware of exactly where their data is stored, and instead
function more like worker bees in a hive. It makes managing storage from multiple
sources to be managed and utilized as a single repository. storage virtualization
software maintains smooth operations, consistent performance and a continuous
suite of advanced functions despite changes, break down and differences in the
underlying equipment.
Types of Virtualization
• 5. Server Virtualization:
This is a kind of virtualization in which masking of server resources takes place. Here, the
central-server(physical server) is divided into multiple different virtual servers by changing
the identity number, processors. So, each system can operate its own operating systems in
isolate manner. Where each sub-server knows the identity of the central server. It causes
an increase in the performance and reduces the operating cost by the deployment of main
server resources into a sub-server resource. It’s beneficial in virtual migration, reduce
energy consumption, reduce infrastructural cost, etc.
• 6. Data virtualization:
This is the kind of virtualization in which the data is collected from various sources and
managed that at a single place without knowing more about the technical information like
how data is collected, stored & formatted then arranged that data logically so that its
virtual view can be accessed by its interested people and stakeholders, and users through
the various cloud services remotely. Many big giant companies are providing their services
like Oracle, IBM, At scale, Cdata, etc.
Load Balancing and Virtualization
• In computing, load balancing is the process of distributing a set of tasks
over a set of resources, with the aim of making their overall processing
more efficient. Load balancing can optimize the response time and avoid
unevenly overloading some compute nodes while other compute nodes are
left idle.
• Cloud load balancing is defined as the method of splitting workloads and
computing properties in a cloud computing. It enables enterprise to
manage workload demands or application demands by distributing
resources among numerous computers, networks or servers. Cloud load
balancing includes holding the circulation of workload traffic and demands
that exist over the Internet.
Load Balancing and Virtualization
• As the traffic on the internet growing rapidly, which is about 100% annually
of the present traffic. Hence, the workload on the server growing so fast
which leads to the overloading of servers mainly for popular web server.
There are two elementary solutions to overcome the problem of
overloading on the servers-
1. First is a single-server solution in which the server is upgraded to a higher
performance server. However, the new server may also be overloaded
soon, demanding another upgrade. Moreover, the upgrading process is
difficult and expensive.
2. Second is a multiple-server solution in which a scalable service system on
a cluster of servers is built. That’s why it is more cost effective as well as
more scalable to build a server cluster system for network services.
Load Balancing and Virtualization
• Load balancing solutions can be categorized into two types –
1 Software-based load balancers: Software-based load balancers run
on standard hardware (desktop, PCs) and standard operating
systems.
2 Hardware-based load balancer: Hardware-based load balancers are
dedicated boxes which include Application Specific Integrated
Circuits (ASICs) adapted for a particular use. ASICs allows high speed
promoting of network traffic and are frequently used for
transport-level load balancing because hardware-based load
balancing is faster in comparison to software solution.
Hypervisor
• A hypervisor is a form of virtualization software used in Cloud hosting
to divide and allocate the resources on various pieces of hardware.
The program which provides partitioning, isolation, or abstraction is
called a virtualization hypervisor.
• The hypervisor is a hardware virtualization technique that allows
multiple guest operating systems (OS) to run on a single host system
at the same time. A hypervisor is sometimes also called a virtual
machine manager(VMM).
Types of Hypervisor
TYPE-1 Hypervisor:
• The hypervisor runs directly on the underlying host system. It is also
known as a “Native Hypervisor” or “Bare metal hypervisor”. It does
not require any base server operating system. It has direct access to
hardware resources.
• Examples of Type 1 hypervisors include VMware ESXi, Citrix
XenServer, and Microsoft Hyper-V hypervisor.
TYPE-2 Hypervisor
• A Host operating system runs on the underlying host system. It is also
known as ‘Hosted Hypervisor”. Such kind of hypervisors doesn’t run directly
over the underlying hardware rather they run as an application in a Host
system(physical machine).
• Basically, the software is installed on an operating system. Hypervisor asks
the operating system to make hardware calls.
• An example of a Type 2 hypervisor includes VMware Player or Parallels
Desktop. Hosted hypervisors are often found on endpoints like PCs.
• The type-2 hypervisor is very useful for engineers, and security analysts (for
checking malware, or malicious source code and newly developed
applications).
Types of Hypervisor
Pros & Cons of Type-2 Hypervisor
• Pros: Such kind of hypervisors allows quick and easy access to a guest
Operating System alongside the host machine running. These
hypervisors usually come with additional useful features for guest
machines. Such tools enhance the coordination between the host
machine and the guest machine.
• Cons: Here there is no direct access to the physical hardware
resources so the efficiency of these hypervisors lags in performance
as compared to the type-1 hypervisors, and potential security risks
are also there an attacker can compromise the security weakness if
there is access to the host operating system so he can also access the
guest operating system.
Pros & Cons of Type-1 Hypervisor
• Pros: Such kinds of hypervisors are very efficient because they have
direct access to the physical hardware resources(like Cpu, Memory,
Network, and Physical storage). This causes the empowerment of the
security because there is nothing any kind of the third party resource
so that attacker couldn’t compromise with anything.
• Cons: One problem with Type-1 hypervisors is that they usually need
a dedicated separate machine to perform their operation and to
instruct different VMs and control the host hardware resources.
HYPERVISOR REFERENCE MODEL
There are 3 main modules coordinates in order to emulate the underlying hardware:
• DISPATCHER: The dispatcher behaves like the entry point of the monitor and reroutes the instructions of the
virtual machine instance to one of the other two modules.
• ALLOCATOR: The allocator is responsible for deciding the system resources to be provided to the virtual
machine instance. It means whenever a virtual machine tries to execute an instruction that results in changing
the machine resources associated with the virtual machine, the allocator is invoked by the dispatcher.
• INTERPRETER: The interpreter module consists of interpreter routines. These are executed, whenever a virtual
machine executes a privileged instruction.
Privileged instructions are the instructions that are only executed in kernel mode. If a privileged instruction is
attempted to get executed in user mode, that instruction will get ignored and treated as an illegal instruction. It is
trapped in the operating system by the hardware. Some examples of privileged instructions include- I/O
instructions, Context switching, Clear memory, Set the timer of the CPU, Halt instructions, Interrupt management,
Modify entries in the Device-status table.
HYPERVISOR REFERENCE MODEL
Understanding Machine Imaging
• A machine image is a Compute Engine resource that stores all the
configuration, metadata, permissions, and data from multiple disks
of a virtual machine (VM) instance. You can use a machine image in
many system maintenance, backup and recovery, and instance cloning
scenarios.
• In computing, a clone is hardware or software that is designed to
function in exactly the same way as another system.
Cloud portability
• Cloud portability is the ability to move applications and data from
one cloud computing environment to another with minimal
disruption. Cloud portability enables the migration of cloud services
from one cloud provider to another or between a public cloud and a
private cloud.
Virtual Machines Provisioning and Manageability
• Virtual provisioning is a virtual storage network (VSAN)-based
technology in which storage space is allocated on demand to devices.
This process allows virtualized environments to control the allocation
and management of physical disk storage connected with virtual
machines (VM).
• Virtual provisioning is also known as thin provisioning. However,
virtual provisioning is more relevant to a virtual environment, while
thin provisioning is more relevant to physical computing
implementations.
Advantages of Virtual Provisioning
• Minimizes the operating and storage cost.
• Decreases downtime.
• Improves capacity utilization.
• Minimizes administrative overhead.
Virtual Machine Migration Services
• Virtual machine migration is the task of moving a virtual machine
from one physical hardware environment to another. It is part of
managing hardware virtualization systems and is something that
providers look at as they offer virtualization services. Virtual machine
migration is also known as teleportation.
Virtual Machine Migration Methods
Virtual Machine Migration methods are divided into two types:
1) Hot (live) migration- Virtual machine keeps running while migrating
and does not lose its status. User doesn’t feel any interruption in
service in hot (live) migration. In live migration process, the state of a
virtual machine to migrate is transferred. The state consists of its
memory contents and local file system. Local file system need not be
transferred.
2) Cold (non-live) migration- The status of the VM loses and user can
notice the service interruption. In cold migration, first, VM is
suspended, then its state is transferred, at last VM is resumed at
destination host.
Understanding Virtual CPU
Understanding Virtual CPU
• When we install a hypervisor, each physical CPU is abstracted into virtual CPUs.
This divides the available CPU cycles for each core and allows multiple VMs to
"time share" a given physical processor core. Generally talking, the hypervisor
typically assigns one workload per vCPU (per core). If the workloads on a server
need more CPU cycles, it is better to deploy fewer VMs on a particular virtual CPU.
• Let us consider the following example to understand the logic of virtual CPU.
• I have a physical server with two processors (CPU 1 and CPU 2) and each of them
has four physical cores. In total, we have 2 * 4 = 8 physical cores.
• Based on some calculations our hypervisor provided for each physical core, we can
get 5-10 vCPUs.
• In total, we will have [8 physical cores * (5 to 10 vCPUs)] 40-80 vCPUs, which
means that we can assign a maximum of 80 vCPUs to virtual machines.
Understanding Virtual Memory
Understanding Virtual Memory
• Virtual Memory in simple words is the RAM of the machine. The memory resource
settings for a virtual machine determines how much of the host's memory is allocated to
the virtual machine. The virtual hardware memory size determines how much memory is
available to applications that run in the virtual machine.
• A virtual machine cannot benefit from more memory resources than its configured virtual
hardware memory size. The HYPERVISOR limit the memory resource use to the maximum
amount useful for the virtual machine, so that you can accept the default of unlimited
memory resources.
• You can add, change, and configure virtual machine memory resources or options to
enhance virtual machine performance. You can set most of the memory parameters while
creating the virtual machine or it can also be done after the Guest Operating System is
installed. Most of the hypervisors require to power off the virtual machine before
changing the settings.
• In the following schematic illustration, you can see that the total physical memory is
divided between two virtual machines.
Understanding Virtual Storage
Understanding Virtual Storage
• Storage virtualization is the pooling of physical storage (Data cluster) from
multiple network storage devices into what appears to be a single storage
device that is managed from a central console. We cannot assign more
storage to virtual machines that data cluster offers physically.
• You will see these extensions on the end of a file. Of all the files used as
part of a virtual machine, different hypervisors like to use different file
types. Some of the more common are VDI, VHDX, VMDK and HDD.
• In the following example, we have a data cluster of 12 TB in total and four
virtual machines to which we have allocated storage to each of them. In
total, the maximum storage allocated to them is 12 TB.
Virtual Clusters and Resource Management
• A virtual cluster can be formed with many VMs through networking.
• Cluster is nothing but a group of computers put together. In a virtual cluster,
virtual machines are grouped.
• When a virtual cluster is created, different cluster features can be used such as
failover, load balancing, live migration of virtual machines across physical hosts.
Virtualization for Data Center Automation
• Data Center virtualization is the process of creating a modern data center
that is highly scalable, available and secure. With data center virtualization
products you can increase IT agility and create a seamless foundation to
manage private and public cloud services alongside traditional on-premises
infrastructure.
• Data Center automation means that huge volumes of hardware, software,
and database resources in these data centers can be allocated dynamically
to millions of Internet users simultaneously, with guaranteed QoS and cost
effectiveness.
• Data centers have grown rapidly in recent years, and all major IT companies
are pouring their resources into building new data centers. In addition,
Google, Yahoo!, Amazon, Microsoft, HP, Apple and IBM are all in the game.
All these companies have invested billions of dollars in data center
construction and automation.