0% found this document useful (0 votes)
14 views24 pages

Unit 4 Cloud Computing

The document discusses virtualization in cloud computing, defining it as the abstraction of computing resources to create multiple execution environments. It highlights the need for virtualization due to underutilized resources, lack of space, and greening initiatives, while also addressing its pros and cons. Various types of virtualization, techniques, and technologies such as Xen, VMware, and Hyper-V are detailed, emphasizing their roles in enhancing resource management and efficiency in cloud environments.

Uploaded by

ramatrivedi2.22
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
14 views24 pages

Unit 4 Cloud Computing

The document discusses virtualization in cloud computing, defining it as the abstraction of computing resources to create multiple execution environments. It highlights the need for virtualization due to underutilized resources, lack of space, and greening initiatives, while also addressing its pros and cons. Various types of virtualization, techniques, and technologies such as Xen, VMware, and Hyper-V are detailed, emphasizing their roles in enhancing resource management and efficiency in cloud environments.

Uploaded by

ramatrivedi2.22
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 24

Virtualization for Cloud Computing

Definition of virtualization
Virtualization can be defined as the abstraction of the four computing
resources (storage, processing power, memory, and network or I/O). It is
conceptually similar to emulation, where a system pretends to be another
system, whereas virtualization is a system pretending to be two or more
of the same system.

Virtualization is a methodology for dividing the computer resources to


more than one execution environment by applying more concepts like
partitioning, time-sharing, machine simulation and emulation.

Need of virtualization
Increased performance and computing capacity
•Nowadays, the average end-user desktop PC is powerful enough to
meet almost all the needs of everyday computing, with extra capacity
that is rarely used.
•Almost all these PCs have resources enough to host a virtual machine
manager and execute a virtual machine with by far acceptable
performance.

Underutilized hardware and software resources


•Hardware and software underutilization is occurring due to:
•Increased performance and computing capacity, and
•The effect of limited or sporadic use of resources.
Lack of space
•The continuous need for additional capacity, whether storage or
compute power, makes data centers grow quickly.
•Companies such as Google and Microsoft expand their infrastructures
by building data centers as large as football fields that are able to host
thousands of nodes. Although this is viable for IT giants, in most cases
enterprises cannot afford to build another data center to accommodate
additional resource capacity.

Greening Initiatives
•Recently, companies are increasingly looking for ways to reduce the
amount of energy they consume and to reduce their carbon footprint.
Virtualization technologies can provide an efficient way of consolidating
servers.

Virtualization: Pros
Portability
•Virtual machine instances are normally represented by one or more files
that can be easily transported with respect to physical systems.
Moreover, they also tend to be self-contained since they do not have
other dependencies besides the virtual machine manager for their use.
Portability and self-containment simplify their administration.
Support of privileged instructions.
Provides server consolidation, testing ad development, provision for
dynamic load balancing.

Virtualization: Cons

Inefficiency and Degraded User Experience


•Virtualization can sometime lead to an inefficient use of the host. In
particular, some of the specific features of the host cannot be exposed by
the abstraction layer and then become inaccessible.
•In the case of hardware virtualization, this could happen for device
drivers: The virtual machine can sometime simply provide a default
graphic card that maps only a subset of the features available in the host.

Security loop-holes and new threats


•Virtualization opens the door to a new and unexpected form of
phishing. The capability of emulating a host in a completely transparent
manner led the way to malicious programs that are designed to extract
sensitive information from the guest.
•In the case of hardware virtualization, malicious programs can preload
themselves before the operating system and act as a thin virtual machine
manager toward it. The operating system is then controlled and can be
manipulated to extract sensitive information of interest to third parties.
Examples of these kinds of malware are BluePill and SubVirt.

Types of Virtualization
OS virtualization:
Virtualization an operating system environment is the most common
form of virtualization.
It involves putting a second instance or multiple instances of an
operating system, like Windows, on single machine. It saves companies
cash on energy, cabling, hardware, rack space, and more, while still
allowing them to run the same quantity of applications

Application-server virtualization
Application-server virtualization is also referred to as 'advanced load
balancing, ‘as it spreads applications across servers and servers across
applications.
This enables IT departments to balance the workload of specific
software in an agile way that does not overload a specific server or under
load a specific application in the event of a large project or change. It
also allows for easier management of servers and applications since we
can manage them as a single instance.

Administrative virtualization
Administrative virtualization is one of the least-known forms of
virtualization, likely due to the fact that its primarily used in data
centers. The concept of administration, or 'management,' virtualization
means segmented admin roles through group and user policies.

Network virtualization
Network virtualization involves virtually managing IPs, and is
accomplished through tools like routing tables, NICs, switches, and
VLAN tags.

Storage virtualization
Storage virtualization is an array of servers that are managed by a virtual
storage system. The servers are not aware of exactly where their data is
stored.

VIRTUAL MACHINE
Virtualization provides multiple environments for execution termed as
virtual machines.
•Each virtual machine looks like an actual machine to its user, but it is
isolated and is in virtualized form of running the existent machine under
the supervision of a Virtual Machine Monitor (VMM).

•A Virtual machine :
•Provides an environment where non-trusted applications can be run
•Adopts isolation techniques
•Allows dynamic deployment of application (portability)
•Applies optimization in OS
•Manages as a single service.

Hardware Level Virtualization (System


virtual machine)
It is a virtualization technique that provides an abstract execution
environment in terms of computer hardware on top of which a guest
operating system can be run.

•In this model:


•The guest is represented by the operating system
•The host is represented by the physical computer hardware
•The virtual machine is represented by its emulation, and the VMM by
the hypervisor.

The hypervisor is generally a program or a combination of software and


hardware that allows the abstraction of the underlying physical
hardware.
•Hardware-level virtualization is also called system virtualization, since
it provides ISA to virtual machines, which is the representation of the
hardware interface of a system.

•This is to differentiate it from process virtual machines, which expose


ABI to virtual machines.
Hardware Level Virtualization
(Techniques)
Hardware Assisted Virtualization

•This term refers to a scenario in which the hardware provides


architectural support for building a virtual machine manager able to
run a guest operating system in complete isolation.

•This technique was originally introduced in the IBM System/370.

Full Virtualization

•Full virtualization refers to the ability to run a program, most likely an


operating system, directly on top of a virtual machine and without any
modification, as though it were run on the raw hardware.

• To make this possible, virtual machine managers are required to


provide a complete emulation of the entire underlying hardware.

•The principal advantage of full virtualization is complete isolation,


which leads to enhanced security, ease of emulation of different
architectures, and coexistence of different systems on the same platform.

Para Virtualization
•This is a not-transparent virtualization solution that allows
implementing thin virtual machine managers.

•Paravirtualization techniques expose a software interface to the


virtual machine that is slightly modified from the host and, as a
consequence, guests need to be modified.

•The aim of para virtualization is to provide the capability to demand the


execution of performance-critical operations directly on the host, thus
preventing performance losses that would otherwise be experienced in
managed execution.

Partial Virtualization

•Partial virtualization provides a partial emulation of the underlying


hardware, thus not allowing the complete execution of the guest
operating system in complete isolation.

•Partial virtualization allows many applications to run transparently, but


not all the features of the operating system can be supported, as happens
with full virtualization.

Application Level Virtualization (Process


virtual machine)
•Application-level virtualization is a technique allowing applications to
be run in runtime environments that do not natively support all the
features required by such applications. In this scenario, applications are
not installed in the expected runtime environment but are run as though
they were.

•In general, these techniques are mostly concerned with partial file
systems, libraries, and operating system component emulation. Such
emulation is performed by a thin layer—a program or an operating
system component—that is in charge of executing the application.

•One of the most popular solutions implementing application


virtualization is Wine, which is a software application allowing Unix-
like operating systems to execute programs written for the Microsoft
Windows platform.

•Wine features a software application acting as a container for the guest


application and a set of libraries, called Winelib, that developers can use
to compile applications to be ported on Unix systems.

Hypervisor (Virtual Machine Monitor)


Type I hypervisors run directly on top of the hardware.
Therefore, they take the place of the operating systems and interact
directly with the ISA interface exposed by the underlying hardware, and
they emulate this interface in order to allow the management of guest
operating systems.

•This type of hypervisor is also called a native virtual machine since it


runs natively on hardware.

Type II hypervisors require the support of an operating system


to provide virtualization services. This means that they are programs
managed by the operating system, which interact with it through the ABI
and emulate the ISA of virtual hardware for guest operating systems

•Conceptually, a VMM is internally organized to include three main


modules, dispatcher, allocator, and interpreter, coordinate their
activity in order to emulate the underlying hardware.

•The dispatcher constitutes the entry point of the monitor and reroutes
the instructions issued by the virtual machine instance to one of the two
other modules.

•The allocator is responsible for deciding the system resources to be


provided to the VM: whenever a virtual machine tries to execute an
instruction that results in changing the machine resources associated
with that VM, the allocator is invoked by the dispatcher.

•The interpreter module consists of interpreter routines. These are


executed whenever a virtual machine executes a privileged instruction: a
trap is triggered and the corresponding routine is executed.
Interpretation and binary translation
Interpretation and binary translation are two techniques used in
cloud computing to run software applications on different hardware
architectures or operating systems.

Interpretation

Interpretation is a technique that allows software applications to be


executed on different hardware architectures or operating systems
without recompilation. The software is run through an interpreter that
reads the code and executes it, translating it into machine code on the
fly. The interpreter allows the application to be executed without any
modification and can run on any platform that has the interpreter
installed.
Interpretation is often used in cloud computing to run applications on
virtual machines. Virtual machines can be set up to mimic different
hardware architectures or operating systems, allowing applications to be
run on platforms that they were not designed for. The interpreter
provides a layer of abstraction between the application and the
underlying hardware, allowing the application to be run on different
platforms.

Binary Translation

Binary translation is a technique that allows software applications


compiled for one hardware architecture or operating system to be
executed on another platform without modification. The binary code is
translated into machine code for the target platform, allowing the
application to be run on the new platform. Binary translation can be
done statically or dynamically.
Static binary translation involves translating the entire application before
it is executed. This is done by analyzing the binary code and generating
equivalent code for the target platform. The translated code is then
stored on disk and executed when needed. Static binary translation is
often used to run applications on platforms that are not supported by the
application's original architecture.
Dynamic binary translation involves translating code as it is executed.
This technique is often used in virtual machines to allow applications to
be run on different hardware architectures or operating systems. The
virtual machine uses a dynamic binary translator to translate the
application's code into machine code for the underlying hardware.
Virtualization Technologies
Xen: Paravirtualization

•Xen is an open-source initiative implementing a virtualization


platform based on paravirtualization. Initially developed by a group of
researchers at the University of Cambridge in the United Kingdom, Xen
now has a large open-source community backing it.

•Xen-based technology is used for either desktop virtualization or


server virtualization, and recently it has also been used to provide
cloud computing solutions by means of Xen Cloud Platform (XCP). At
the basis of all these solutions is the Xen Hypervisor, which constitutes
the core technology of Xen.

•Xen is the most popular implementation of paravirtualization, which, in


contrast with full virtualization, allows high-performance execution of
guest operating systems. This is made possible by eliminating the
performance loss while executing instructions that require special
management. This is done by modifying portions of the guest operating
systems run by Xen with reference to the execution of such instructions.
•A Xen-based system is managed by the Xen hypervisor, which runs in
the highest privileged mode and controls the access of guest operating
system to the underlying hardware.
•Guest operating systems are executed within domains, which represent
virtual machine instances.
•Moreover, specific control software, which has privileged access to the
host and controls all the other guest operating systems, is executed in a
special domain called Domain 0.
•This is the first one that is loaded once the virtual machine manager has
completely booted, and it hosts a HyperText Transfer Protocol (HTTP)
server that serves requests for virtual machine creation, con-figuration,
and termination.
•This component constitutes the embryonic version of a distributed
virtual machine manager, which is an essential component of cloud
computing systems providing Infrastructure-as-a-Service (IaaS)
solutions.

VMware: Full Virtualization


•VMware’s technology is based on the concept of full virtualization,
where the underlying hardware is replicated and made available to the
guest operating system, which runs unaware of such abstraction layers
and does not need to be modified.
•VMware implements full virtualization:
—Either in the desktop environment, by means of Type II hypervisors
—Or in the server environment, by means of Type I hypervisors
•In both cases, full virtualization is made possible by means of direct
execution (for non sensitive instructions) and binary translation (for
sensitive instructions), thus allowing the virtualization of architecture
such as x86.
•Besides these two core solutions, VMware provides additional tools and
software that simplify the use of virtualization technology:
—Either in a desktop environment, with tools enhancing the integration
of virtual guests with the host.
Microsoft’s Hyper-V

•Hyper-V is an infrastructure virtualization solution developed by


Microsoft for server virtualization. As the name recalls, it uses a
hypervisor-based approach to hardware virtualization, which leverages
several techniques to support a variety of guest operating system.

•Hyper-V supports multiple and concurrent execution of guest operating


systems by means of partitions.

•Despite its straightforward installation as a component of the host


operating system, Hyper-V takes control of the hardware, and the host
operating system becomes a virtual machine instance with special
privileges, called the parent partition.

•The parent partition (also called the root partition) is the only one that
has direct access to the hardware. It runs the virtualization stack, hosts
all the drivers required to configure guest operating systems, and creates
child partitions through the hypervisor.

•Child partitions are used to host guest operating systems and do not
have access to the underlying hardware, but their interaction with it is
controlled by either the parent partition or the hypervisor itself.
Kernel-based Virtual Machine

KVM (Kernel-based Virtual Machine) is an open-source virtualization


technology that allows you to run multiple virtual machines (VMs) on a
single physical host. It's commonly used in cloud computing
environments due to its flexibility, performance, and security features.

In a KVM-based cloud computing setup, multiple virtual machines can


run on a single physical server, each with its own operating system and
dedicated resources. This enables efficient resource utilization and
scalability, as you can easily add or remove virtual machines based on
your needs.

Here's a basic overview of how KVM-based cloud computing works:

1. Host Server: The physical server that runs the KVM hypervisor
software. The hypervisor allows multiple virtual machines to run
concurrently on the same hardware.

2. Hypervisor: KVM is the hypervisor in this case. It's a virtualization


layer that allows the host machine's hardware to be shared among
multiple virtual machines.

3. Virtual Machines: Each virtual machine is an independent instance of


an operating system running on the host server. Users can create,
manage, and deploy virtual machines as needed. These VMs have their
own virtualized hardware, including CPU, memory, storage, and
network interfaces.

4. Management Interface: KVM-based cloud computing platforms


typically provide a management interface for users to create, configure,
and manage their virtual machines. This interface may include features
such as provisioning, monitoring, and billing.

5. Networking: Virtual machines in a KVM-based cloud environment can


communicate with each other and with external networks through
virtualized network interfaces. Network configurations can be
customized to meet specific requirements, such as VLANs, firewalls,
and load balancing.

6. Storage: Virtual machine images, snapshots, and other data are stored
on the host server's storage subsystem. KVM supports various storage
options, including local storage, network-attached storage (NAS), and
storage area networks (SANs).

Overall, KVM-based cloud computing offers a cost-effective and


flexible solution for deploying and managing virtualized infrastructure.
It's widely used by businesses and organizations of all sizes to run
applications, host websites, and provide various IT services in a scalable
and efficient manner.
Virtual Box

VirtualBox is a powerful, open-source virtualization software that allows


you to run multiple operating systems simultaneously on a single
physical machine. While it's primarily used for desktop virtualization
and testing environments, it can also be incorporated into cloud
computing setups, although it's less common compared to hypervisors
like VMware vSphere or KVM.

Here's how VirtualBox can be used in cloud computing scenarios:

1. Development and Testing Environments: VirtualBox can be used to


create and manage virtual machines for development and testing
purposes. Developers can easily set up and configure different operating
systems and software environments without the need for additional
hardware.
2. Private Clouds: In small-scale private cloud environments, VirtualBox
can be used to create virtual machines that simulate cloud instances.
Users can deploy and manage these VMs within a private network,
providing cloud-like services for internal use.

3. Education and Training: VirtualBox is often used in educational


settings to teach students about virtualization and cloud computing
concepts. Instructors can create virtual environments for students to
practice deploying and managing cloud services.

4. Proof-of-Concept Deployments: Organizations exploring cloud


computing options may use VirtualBox to prototype and test cloud
setups before investing in more robust infrastructure solutions. It allows
them to experiment with different configurations and software stacks
with minimal cost.

5. Hybrid Cloud Scenarios: VirtualBox can be integrated into hybrid


cloud environments, where some workloads run on-premises while
others run in public cloud services. Virtual machines created in
VirtualBox can be migrated to cloud providers like AWS, Azure, or
Google Cloud Platform using tools like Vagrant or manually
exporting/importing VM images.

While VirtualBox offers flexibility and ease of use, it's worth noting that
it may not be as well-suited for production-level cloud deployments as
dedicated cloud platforms or hypervisors. These alternatives typically
offer better performance, scalability, and management features required
for enterprise-grade cloud computing. However, VirtualBox can still
play a valuable role in certain scenarios, especially for smaller-scale or
experimental deployments.

You might also like