UNIT - II CLOUD ENABLING TECHNOLOGIES Page | 1
UNIT - II
CLOUD ENABLING TECHNOLOGIES
Service Oriented Architecture - REST and Systems of Systems - Web
Services - Publish- Subscribe Model - Basics of Virtualization - Types of
Virtualization - Implementation Levels of Virtualization - Virtualization
Structures - Tools and Mechanisms - Virtualization of CPU – Memory - I/O
Devices -Virtualization Support and Disaster Recovery.
Service Oriented Architecture
1. Explain in detail about Service Oriented Architecture with an example.
Service Oriented Architecture
The Service Oriented Architecture (SOA) expresses a perspective of software
architecture that defines the use of loosely coupled software services to support
the requirements of the business processes. It is used for designing a software system
that can make the use of services of new or legacy applications through their published
or discoverable interfaces. It is nothing but collection of services that communicates
with each other using services interfaces.
In an SOA environment, resources on a network are made available as an
independent service that can be accessed without knowledge of their underlying
platform implementation.
The applications built using SOA are often distributed over the networks which aim
to make services interoperable, extensible and effective. The architecture styles of SOA
provide service loose coupling, published interfaces, and a standard communication
model. The SOA is also useful in building of Grid and Cloud applications. The
architecture style of SOA is defined by the World Wide Web Consortium (W3C) based
on the three parameters namely logical perspective, message perspectives and description
orientation.
The logical perspective or view of SOA explains how the applications, business
Prepared By, [Link], AP/CSE
UNIT - II CLOUD ENABLING TECHNOLOGIES Page | 2
processes, services or databases perform a business-level operation and how the
messages are exchanged between provider agents and consumer agents.
The message perspective explains the insight of messages including internal structure
of providers and consumer’s message, their implementation languages, process
construct, database structure and so on. These features are needed for representing the
abstracted view of SOA.
It is identified with early efforts on the architectural style of distributed systems,
especially Representational State Transfer (REST). These days, REST still gives an
option in contrast to the complex standard-driven web services technology and is utilized
in many Web 2.0 services.
Architecture of SOA
• The SOA provides methods for design, deployment, and management of
services that are accessible over the network and executable. In SOA, a service
provides a discrete business function that operates on data to ensure that business
functionality is applied consistently, predictable results are returned, and quality
of service is delivered. The generalized architecture of SOA has three
components namely service providers, service consumers and service registry.
• The service provider is responsible for publishing the services in to a registry
and provides access to those using API and interfaces for the consumers. The
provider defines Quality of services and security parameters through contract
called service level agreement.
• The service consumer is responsible for invoking and accessing the services
published by provider through standard interfaces and APIs. Whenever
service consumer invokes a service, initially it has to find it inside service
registry using interfaces. If it is found in registry, then the discovery details are
provisioned to the consumer through which consumer can access the service
Prepared By, [Link], AP/CSE
UNIT - II CLOUD ENABLING TECHNOLOGIES Page | 3
from service provider.
• The service registry stores the references of services published by provider
and allows consumers to locate and access those using references.
Fig. 2.1.1 SOA architecture
• The Middleware like Enterprise Service Bus (ESB) provides an infrastructure for
integrating legacy applications and provide services for message translation,
message transformation, protocol conversion, message routing with QoS
and security services. The typical SOA architecture is shown in Fig. 2.1.1.
Characteristics of SOA
The different characteristics of SOA are as follows :
• Provides interoperability between the services.
• Provides methods for service encapsulation, service discovery, service
composition, service reusability and service integration.
• Facilitates QoS (Quality of Services) through service contract based on Service
Level Agreement (SLA).
• Provides loosely couples services.
Prepared By, [Link], AP/CSE
UNIT - II CLOUD ENABLING TECHNOLOGIES Page | 4
• Provides location transparency with better scalability and availability.
• o Ease of maintenance with reduced cost of application
development and deployment.
The next sections cover the introduction to REST along with web services and
publish- subscribe model in detail.
REST and Systems
REST and Systems of Systems
Representational State Transfer (REST) is a software architectural style for distributed
system that defines a set of constraints to be used for creating Web based services.
It is mean to provide interoperability between the systems based on services running
on the Internet. REST is defined by Roy Fielding (author of HTTP specifications) in his
PhD dissertation on "Architectural Styles and the Design of Network-based Software
Architectures".
Today, it is being used by many of IT enterprises including Yahoo, Google,
Amazon, IBM as well as social networking sites such as Twitter, Facebook, and LinkedIn
etc.
The web services that follow the REST architectural style are called RESTful
Web services. The RESTful web services allow the requesting systems to
access and manipulate textual representations of web resources by using a uniform
and predefined set of stateless operations. The generalized interaction in REST with
HTTP specification is shown in Fig. 2.2.1.
Prepared By, [Link], AP/CSE
UNIT - II CLOUD ENABLING TECHNOLOGIES Page | 5
Fig. 2.2.1 Interaction in REST with HTTP specification
The REST architectural style has four basic principles which are explained as
follows :
a) Resource identification
✓ In RESTful web services, the set of resources are often exposed by the
publishers over the internet which are accessed by the clients through
interaction mechanisms. The key component for information abstraction in
REST is a resource.
✓ A resource can be any information stored in a document, image or temporal
storage which uses conceptual mapping to a set of entities. Each resource in a
REST has a unique name identified by a Uniform Resource Identifier (URI)
similar to URL on web.
✓ The URI is utilized for giving a global addressing space tending to
resources which are involved in an interaction between components and
facilitates service discovery. The URIs can be bookmarked or traded through
a hyperlink which gives greater readability.
b) Controlled Interfaces
Prepared By, [Link], AP/CSE
UNIT - II CLOUD ENABLING TECHNOLOGIES Page | 6
✓ In RESTful web services, the interaction is happened through
client/server protocols based on HTTP standards. The primitives used to
perform manipulation are fixed set of four CRUD (Create, Read, Update,
Delete) operations which are implemented using HTTPs PUT, GET, POST
and DELETE methods.
The operations of REST methods are given in Table 2.2.1.
Method Operati
PUT Create a new resourceon
GET Retrieve the current state of resource
POST Update or transfers a new state to a resource
DELETE Delete or destroy a resource
Table 2.2.1 REST Methods
c) Self-Descriptive Messages
• A REST message contains brief description about message communication
along with the processing information. It enables intermediate users to
process the message without parsing the contents.
• The REST decouples the resources from their representations such that their
content can be accessed in a variety of standard formats like HTML, XML, etc.
It also provides the alternate representations of each resource in multiple formats.
The message also contains metadata that can be used for detecting the
transmission error, caching control, authentication, authorization, and access
control.
d) Stateless Communications
• In REST, the communication happens are mostly ‘stateless’ where messages do
Prepared By, [Link], AP/CSE
UNIT - II CLOUD ENABLING TECHNOLOGIES Page | 7
not have to rely on the state of the conversation. The stateless communication
facilitates improved visibility, task of recovering from partial failures,
and increased scalability.
• The limitations of stateless communication are degraded or decreased network
performance because of collective repeated data. However, there are some
communications happened using Stateful interactions which performs explicit
state transfer such as URI rewriting, hidden form fields or cookies.
• The common example of REST web service is Amazon AWS which uses
various REST methods in its Simple Storage Service (S3). The Simple Storage
Service uses bucket as a medium for storing the objects also called items. For
manipulating the bucket, it makes HTTP requests to create, fetch, and delete
buckets using PUT, GET, POST and DELETE methods.
• The RESTful web services are mainly used in web 2.0 applications where
the mashup allows to combine the capabilities of one web application into
another, for example, taking the videos from online YouTube repository
and put into a Facebook page.
Web Services
2. Explain in detail about web services with an example.(Nov/Dec 2021)
Web Services
With the SOA perspectives, software abilities are delivered and expended by means
of loosely coupled, reusable, coarse-grained, discoverable, and independent services
associating through a message-based communication model. The web has grown to be
a medium for associating remote clients with applications for quite a long time, and more
recently, coordinating applications over the Internet has gained in popularity. The term
"web service" is frequently alluded to an independent, self-describing, modular
application intended to be utilized and accessible by other software applications over the
web. In general, Web services are loosely coupled (platform independent), contracted
Prepared By, [Link], AP/CSE
UNIT - II CLOUD ENABLING TECHNOLOGIES Page | 8
components (behavior, input and output parameters, binding specifications are public)
that communicate in XML-based (open standard) interfaces. When a web service is
deployed, different applications and other web services can find and invoke the deployed
service. The functionality of web services is shown in Fig. 2.2.1.
Fig. 2.2.1 Functionality of Web services
In web services, service provider is responsible for developing and publishing the
various services into UDDI (Universal Description Discovery and Integration) registry
which can be accessed by different Service Consumers. When any consumer wants to
invoke a service, they have to make a query for finding the reference of service into
UDDI registry. If reference of service is available which is registered by service provider,
then service is bind to the consumer who has invoked it. During this phase consumer can
get access to WSDL (Web Service Description Language) document which has
description about the services published by provider. After binding the service,
consumer can send call to the method with parameters using SOAP request message
and provider sends result using SOAP response message.
As web service is one of the most widely recognized examples of a SOA
implementation. The W3C defined a web service as a software framework intended to
Prepared By, [Link], AP/CSE
UNIT - II CLOUD ENABLING TECHNOLOGIES Page | 9
support interoperable machine-to-machine collaboration over a network. The web
service has an interface described in a machine-executable format explicitly in Web
Services Description Language or WSDL.
) Simple Object Access Protocol (SOAP)
The SOAP is the basic XML based communication protocol used by Service provider
and consumer during the invocation process. It is an XML specification for transmitting
data (protocol) to and from a Web service. It gives a standard bundling structure for
transmission of XML records over different Internet protocols, for example, HTTP,
SMTP, and FTP. Because of standardize messaging formats the heterogeneous
middleware frameworks can accomplish interoperability. A SOAP message comprises of
a root element called envelope, which contains a header and body.
The SOAP header has attributes of the message used in processing the message. It is
an optional element. The SOAP body contains XML data comprising the message being
sent and it’s a mandatory element in SOAP message. The SOAP header also provides
extra application-level components for authentication, routing information, message
parsing instructions, transaction management, and Quality of Service (QoS)
configurations.
Fig. 2.2.2 Structure of SOAP message
Prepared By, [Link], AP/CSE
UNIT - II CLOUD ENABLING TECHNOLOGIES Page | 10
In SOAP Message, SOAP envelope is the toot element that contains the header and
body. The SOAP Header is an optional component used to pass application related
information that is to be processed by SOAP node along the message path. The
SOAP body is a mandatory component that contains information intended for the
recipient. Fault is a special block within the body that indicates protocol-level errors.
b) Web Services Description Language (WSDL)
The WSDL is an XML based document which describes the interfaces and set of
operations supported by a web service in a standardize format. It is used for standardizing
the representation of input and output parameters along with its operations. It is an
XML document used for describing web services. The WSDL document contains
information on data types to be used, messages to be exchanged, operations performed by
the web service and communication protocol to be followed.
It also performs service’s protocol binding, and describes the way in which the
Fig. 2.2.3 WSDL document structure
Prepared By, [Link], AP/CSE
UNIT - II CLOUD ENABLING TECHNOLOGIES Page | 11
messages can be transferred on the wire from one end to the other. The WSDL defines
the way in which clients can interact with a web service. A generalized WSDL
document structure is shown in Fig. 2.2.3.
In WSDL document, Types represents a container for abstract type definitions
defined using XML Schema. A Message represents definition of an abstract
message that may consist of multiple parts; each part may be of a different type. The
portType is an abstract set of operations (which are input and output operations)
supported by one or more endpoints (commonly known as an interface).The operations
supported by are portType defined by an exchange of messages. The Binding is a
concrete protocol and data format specification for a particular portType and Service
represents the collection of related endpoints, where an endpoint is defined as a
combination of a binding and an address (URI). The first three elements (types, message,
and portType) are all abstract definitions of the web service interface and last two
elements (binding and service) describe the concrete details of how the abstract interface
maps to messages on the wire.
c) Universal Description, Discovery, and Integration (UDDI)
The UDDI is a registry used for publishing the web services by provider and
discovering them consumers. The consumer can search the specific web service by its
names, identifiers, categories, or the specification implemented by the web service
provider. It provides a set of rules for registering and retrieving information about
a business process and its services.
The three basic functions of UDDI are Publish service which shows how to register
a web service, Find service which shows how a client finds a web service and Bind
service which shows how the client connects and interacts with a web service.
A UDDI registry is made up of XML-based service descriptors. Each service
descriptor contains the information needed to find and then bind to a particular web
service.
Prepared By, [Link], AP/CSE
UNIT - II CLOUD ENABLING TECHNOLOGIES Page | 12
The SOAP is an extension, and an evolved version of XML-RPC. It uses remote
procedure call protocol with XML for encoding its calls and HTTP as a transport
mechanism. In XML-RPC, a call to the procedure is made by client and executed on the
server. The resultant value returned by sever is formatted in XML.
As XML-RPC was not completely lined up with the most recent XML standardization
hence, it didn't permit developers to expand the request or response format of an XML-
RPC call.
The SOAP primarily portrays the conventions between associating, gatherings and
leaves the data format of exchanging messages to XML schema. The significant
contrast between web service and other technologies like CORBA, J2EE, and CGI
scripting is its standardization, since it depends on standardize XML and giving
a language independent representation of data.
Web Services Protocol Stack
A web service protocol stack is a list of protocols that are utilized to define, find,
execute, and make Web services collaborate with one another. The web services protocol
stack not only covers the specifications of RESTful web services but also a SOAP-
based web services. This specification defines QoS properties along with different
nonfunctional requirements to guarantee a level of quality in message communication as
well as reliable transactional policies. The different components of WS protocol stack
are categorized into six layers as shown in Fig. 2.2.4.
Each layer in a WS protocol stack provides a set of standards and protocols for
successful working of Web services. The bottommost and first layer in protocol stack is
Transport Layer which is responsible for transporting a message between applications.
It supports different protocols based on the type of application like HTTP, Simple Mail
Transfer Protocol (SMTP), Java Messaging Services (JMS), Internet Interoperable
Protocol (IIOP) in CORBA etc.
Prepared By, [Link], AP/CSE
UNIT - II CLOUD ENABLING TECHNOLOGIES Page | 13
Fig. 2.2.4 Web services Protocol Stack
The second layer in protocol stack is Messaging layer which is required for encoding
in transit messages in XML or other formats that are understood by both client
and server. This layer provides various protocols like SOAP, WS-Coordination, WS-
Transaction and WS-addressing for web services.
• The SOAP uses XML based request and response messages to communicate
between two parties. WS-Coordination provides protocols that can
coordinate the actions of distributed applications. . It defines two
coordination types : Atomic Transaction (AT) for individual operations and
Business Activity (BA) for long running transactions.
• WS-addressing provides transport- neutral mechanisms to address Web
services and messages. It provides specification of transport-neutral
mechanism that allows web services to communicate addressing
information. It also gives interoperable constructs that convey information
Prepared By, [Link], AP/CSE
UNIT - II CLOUD ENABLING TECHNOLOGIES Page | 14
provided by transport protocols and messaging systems.
The third layer in WS protocol stack is a Service Description layer which is used for
describing the public interface to a specific web service. It composed of four
specifications like WSDL, WS-Resource_Properties, WS-Policy and WS-Service_
Group.
The WSDL which describes the services used by provider and used by recipient. The
WS-Resource_Properties provide a set of properties associated with web resources. It
also describes an interface to associate a set of typed values with a WS-Resource.
The fourth layer is Service Discovery layer that uses UDDI registry to register
or publish a web service written by provider and discover by consumer for the invocation.
It centralizes web services into a common registry so that web service provider can
publish their services with location and description, and makes it easy for consumer to
discover them that are available on the network.
The fifth layer in protocol stack is QoS (Quality of Service) layer. It has three
specifications namely WS-Reliable_Messaging, WS-Security and WS-
Resource_Validity.
The WS-Reliable_Messaging describes a protocol that allows SOAP messages
to be reliably delivered between distributed applications. The WS-Security provides a
specification that defines how security measures are implemented in web services
to protect them from external attacks and WS-Resource_Lifetime describes an interface
to manage the lifetime of a WS-Resource.
The sixth layer of protocol stack is a Composition layer which is used for
composition of business processes. It has two components namely BPEL4WS (Business
Process Execution Language for Web Service) and WS-Notification.
Prepared By, [Link], AP/CSE
UNIT - II CLOUD ENABLING TECHNOLOGIES Page | 15
Publish-Subscribe Model
3. Discuss how publish-subscribe model in differ from normal model with an
example.
Publish-Subscribe Model
• The “Publish-Subscribe Model” describes a specific model for connecting
source and destination for a message transport. It is a design pattern that enables
asynchronous interaction among distributed applications.
• In this, the producer or publisher of the message (distributer) label the message in
some style; often this is done by associating at least one or more topic names
from a (controlled) vocabulary. At that point the receivers of the message
(subscriber) will indicate the topics for which they wish to receive related
messages. On the other hand, one can utilize content-based delivery system where
the content is queried in some format. The utilization of topic or content-based
message selection is named as message filtering. Note that in every case, we locate
a many-to-many relationship between publishers and subscribers.
• In certain cases, there is a many-to-many relationship between event publishers
and event subscribers because of multiple publishers/subscribers are arises for any
type of event which varies dynamically. The Publish-subscribe model works very
well with the databases as it adds dynamicity to static the nature of databases. The
publish-subscribe mechanism can be either centralized or distributed. In centralized
publish-subscribe mechanism, a centralized server act as a mediator for
transmitting messages between publisher and subscriber. As centralized server may
leads may leads to single point of failure, nowadays distributed publish-subscribe
mechanism becomes very popular. In distributed publish-subscribe mechanism, the
publishers and subscribers are naturally decoupled with each other which makes
Prepared By, [Link], AP/CSE
UNIT - II CLOUD ENABLING TECHNOLOGIES Page | 16
publishers unconcerned with the potential consumers and their data, and the
subscribers are unconcerned with the locations of the potential consumers and
producers of data.
• The Publish-subscribe systems are classified into two types namely
topic-based Publish-subscribe systems and content-based Publish-subscribe
systems. In topic- based systems, the publishers are responsible for
generating events with respect to a topic or subject. The Subscribers
basically specify their interest in a particular topic, and receive all events
published on that topic.
• For subscribers, the event definition based on topic names is inflexible therefore
they filter the events belonging to general topics. The Content-based systems
solve this problem of event definition by introducing a subscription scheme based
on the contents of events.
• The high-level applications interact and regularly query to the database in order to
adapt their execution. In that, periodic data polling is not only inefficient and
unscalable. Therefore, publish subscribe mechanism can be used there to solves
many issues associated with database and application interaction. In a publish-
subscribe interaction, event subscribers register to particular event types and
receive notifications from the event publishers when they generate such events.
• In a publish-subscribe interaction, event subscribers register to specific event types
and get notifications from the event publishers when they create such events.
• A database company, Oracle have introduced a publish subscribe solution for
enterprise information delivery and messaging for their database. It uses Advanced
Queuing mechanism which is fully integrated in the Oracle database to publish data
changes and to automate business process workflows for distributed applications.
The publish subscribe model for oracle database is shown in Fig. 2.3.1.
Prepared By, [Link], AP/CSE
UNIT - II CLOUD ENABLING TECHNOLOGIES Page | 17
•
Fig. 2.3.1 Publish subscribe model for oracle database
• The publish-subscribe model for oracle database allows messaging between
applications. The messages generated between publishers and subscribers are
streamed by advanced queuing engine that facilitate messages to be stored
persistently, propagate between queues on different databases, and transmitted
using Oracle Net Services. It provides features like rule-based subscription,
message broadcast, message listen, message notification, and high
availability (HA), scalability, and reliability to the application, queuing system
and database.
Virtualization
4. Explain in detail about Virtualization with an example.)(Or) Explain the
different phenomenon that has gained an interest towards virtualization
technologies. Nov/Dec 2020)
Basics of Virtualization
As we know that the large amounts of compute, storage, and networking resources
are needed to build a cluster, grid or cloud solution. These resources need to be
aggregated at one place to offer a single system image.
Therefore, the concept of virtualization comes into the picture where resources can
be aggregated together to fulfill the request for resource provisioning with rapid speed
as a single system image. The virtualization is a novel solution that can offer application
Prepared By, [Link], AP/CSE
UNIT - II CLOUD ENABLING TECHNOLOGIES Page | 18
inflexibility, software manageability, optimum resource utilization and security concerns
in existing physical machines.
In particular, every cloud solution has to rely on virtualization solution for
provisioning the resources dynamically. Therefore, Virtualization technology is one of
the fundamental components of cloud computing. It is mainly used for providing
different computing environments. Although these computing environments are virtual
but appear like to be physical.
Fig. 2.4.1 Capability of Server with and without Virtualization
The term Virtualization is nothing but creation of a virtual version of hardware
platform, operating system, storage or network resources rather than actual. It allows to
run multiple operating systems on a single physical machine called host machine. Each
instance of operating system called Virtual machine (VM) and operating system runs
inside virtual machine is called guest operating system. The capability of single servers
with and without virtualization is shown in Fig. 2.4.1.
Previously, industries used to keep the separate physical servers for file storage, database,
Prepared By, [Link], AP/CSE
UNIT - II CLOUD ENABLING TECHNOLOGIES Page | 19
web hosting, email etc. in their server rooms. Each server was required separate
hardware, operating system, application software and administrators to manage it. Any
failure in the server hardware may cause indefinite blocking of the services till it restored
and whole system may collapse.
Fig. 2.4.2 Traditional Servers Vs Virtualized Servers
Prepared By, [Link], AP/CSE
UNIT - II CLOUD ENABLING TECHNOLOGIES Page | 20
Therefore, in search of consolidation solution the concept of virtualization came in to
picture. As virtualization solution allows to run multiple servers operating systems in a
single physical machine. It greatly saves the cost behind purchasing extra physical
servers, power consumption, manpower; licensing etc. It also reduces the number
of physical servers required for the deployment of applications shown in Fig. 2.4.2.
The different operations supported by virtualized environment are allowing users to
create, delete, copy, migrate, snapshot, template, save the state of the VM or roll back
the execution of VM. The purpose of virtualization is to enhance resource sharing among
multiple users, to improve computing performance in terms of maximum resource
utilization and application flexibility. To implement virtualization, specialized
software is required called Virtual Machine Manager (VMM) or Hypervisor. A VMM is
a piece of software that allows creating, running and managing the multiple instances of
operating systems (called Virtual Machines) over the shared hardware of host machine.
A VMM runs one or more virtual machines on a physical machine called as host
machine which can be any computer or a server.
The operating system running inside virtual machine called Guest Operating System
(Guest OS). Each virtual machine shares hardware resources of host machine (including
CPU, Memory, Storage, IO, and Network) to runs independent virtual operating systems.
A server running virtualization is shown in Fig. 2.4.3.
Prepared By, [Link], AP/CSE
UNIT - II CLOUD ENABLING TECHNOLOGIES Page | 21
Fig. 2.4.3 Single server running Virtualization
Characteristics of Virtualization
The Virtualization allows organizations to use different computing services based on
aggregation. The different characteristics of virtualization are explained as follows.
1) Maximum resource utilization
The virtualization is intended to run multiple Guest OS over a single physical machine
which fully utilizes the resources. It does not keep CPU and other resources idle because
they will be shared among multiple virtual machines.
2) Reduces Hardware Cost
As software abstraction layer provided by virtualization integrates multiple servers
into one or few, it ultimately saves the hardware cost. Because of virtualization
organizations need not have to setup and maintain huge infrastructure. It minimizes
Prepared By, [Link], AP/CSE
UNIT - II CLOUD ENABLING TECHNOLOGIES Page | 22
purchasing and installing large number of servers for every application.
3) Minimize the maintenance cost
Due to the limited number of physical servers used in virtualization, the organizations
can spend a minimum cost for maintaining fewer servers rather than large and also needs
less manpower to maintain those.
4) Supports Dynamic Load balancing
The load balancing is required for optimum resources utilization and for faster
execution of complex jobs. It ensures that each machine in a network should have equal
amount of work load.
Fig. 2.5.4 Dynamic Load balancing
The load balancing is done by distributing the workload of heavy loaded machine
in to other lightly loaded machines. By default, virtualization supports dynamic load
balancing which is shown in Fig. 2.5.4.
Prepared By, [Link], AP/CSE
UNIT - II CLOUD ENABLING TECHNOLOGIES Page | 23
5) Server Consolidation
The server consolidation in virtualization means aggregating the multiple servers and
their applications into a single machine which were required to have many physical
computers with unique operating system. It allows multiple servers to be consolidated
into a single server which makes optimum resource utilization of a server. It is capable
to run legacy software applications with old OS configuration and the new applications
running latest OS together inside VMs. The concept of server consolidation is shown
in Fig. 2.4.5.
Fig. 2.4.5 Server Consolidation
6) Disaster recovery
Disaster recovery is a critical component for IT organizations. It is required when
system crashes due to the natural disasters like flood, earthquake etc. As sometime
Prepared By, [Link], AP/CSE
UNIT - II CLOUD ENABLING TECHNOLOGIES Page | 24
mission critical or business critical applications run inside the virtual machines, it can
create huge business/economic losses. Therefore, to take care of that virtualization
technology provides built-in disaster recovery feature that enables control on a virtual
machine image on a machine to be instantly diverted, migrated or re-imaged on
another server if failure occurs.
7) Easy VM management
The VMs running on one machine can be easily managed by copying, migrating,
templating or snapshotting on to another machine for backup. They can be easily
migrated in case of maintenance or can be deleted if they are not in use.
8) Maintaining Legacy applications and can test Beta Softwares
As virtualization can run multiple operating systems side by side, it allows users
to run their legacy applications on supported OS. It can be used to run new release of
Softwares (called Beta Softwares) without requiring them a separate dedicated machine
for testing.
9) Sandboxing
Virtual machines are useful to provide secure, isolated environments (sandboxes) for
running foreign or less-trusted applications. Virtualization technology can, thus, help
build secure computing platforms.
10) Virtual hardware
It can provide the hardware solutions that never had like a Virtual storage, Virtual
SCSI drives, Virtual Ethernet adapters, virtual Ethernet switches and hubs, and so on.
Prepared By, [Link], AP/CSE
UNIT - II CLOUD ENABLING TECHNOLOGIES Page | 25
Pros and Cons of Virtualization
We have been highlighting the benefits of virtualization in terms of their technical
advantages. In addition to technical advantages, virtualization also offers the potential to
reduce capital expenditures. For instance, at a given point of time, only 10 % of
the average server is used. Most of the time, these servers are idle. When an organization
makes use of virtualization, the utilization can be as high as 80 %. A lot of computing
resources invested by the organization in the former case, without virtualization, do not
provide any benefit.
Thus, we can say that virtualization has certain pros that help the organization to
achieve efficiency (Some of the pros are covered in characteristics of virtualization).
The pros are as follows :
✓ Cost Reduction : Multiple OS and applications can be supported on a
single physical system, eliminating the need for purchase of additional servers for
each OS or application.
✓ Efficient resource utilization : Virtualization will isolate virtual machines
from each other and from the physical hardware; hence, utilization of the resource
will be optimized.
✓ Optimization : Along with physical servers, all the other resources, such as
storage, memory, etc., are also optimized for virtualization.
✓ Increased Return on Investment : In a traditional computing environment, most
resources remain unutilized and servers remain underutilized. But, with
virtualization, you can maximize resource utilization and reduce the amount of
physical resources deployed to maintain and administer these resources, which
in turn leads to greater profits.
✓ Budgeting : Virtualization enables flexible IT budgeting for an organization. This
is because most of the tasks, such as administration, maintenance, and
Prepared By, [Link], AP/CSE
UNIT - II CLOUD ENABLING TECHNOLOGIES Page | 26
management are direct costs.
✓ Increased Flexibility : With virtualization you can run almost any application on
your system. This is because virtualization makes it possible to run multiple
operating systems and hardware configurations simultaneously on a single host.
✓ However, there are also certain cons of virtualization, which are as follows :
✓ Upfront Investments : Organizations need to acquire resources beforehand
to implement Virtualization. Also, there might occur a need to incur additional
resources with time.
✓ Performance Issues : Although virtualization is an efficient technique
and efficiency can be increased by applying some techniques, there may be chances
when the efficiency is not as good as that of the actual physical systems.
✓ Licensing Issues : All software may not be supported on virtual platforms.
Although vendors are becoming aware of the increasing popularity of virtualization
and have started providing licenses for software to run on these platforms, the
problem has not completely vanished. Therefore, it is advised to check the licenses
with the vendor before using the software.
✓ Difficulty in Root Cause Analysis : With the addition of an additional layer
in virtualization, complexity gets increased. This increased complexity makes
root cause analysis difficult in case of unidentified problems.
TYPES OF VIRTUALIZATION
5. Explain in detail about types of virtualization.(Or) Discuss about Virtualization
ranging from hardware to applications in five abstraction levels.
Types of Virtualization
Based on the functionality of virtualized applications, there are five basic types
of virtualization which are explained as follows.
Prepared By, [Link], AP/CSE
UNIT - II CLOUD ENABLING TECHNOLOGIES Page | 27
Desktop Virtualization
The processing of multiple virtual desktops occurs on one or a few physical servers,
typically at the centralized data center. The copy of the OS and applications that each
end user utilizes will typically be cached in memory as one image on the physical server.
The Desktop virtualization provides a virtual desktop environment where client can
access the system resources remotely through the network. The ultimate goal of desktop
virtualization is to make computer operating system accessible from anywhere over the
network. The virtual desktop environments do not require a specific system or hardware
resources on the client side; however, it requires just a network connection. The user can
utilize the customized and personalized desktop from a remote area through the network
connection. The virtualization of the desktop is sometimes referred as Virtual Desktop
Infrastructure (VDI) where all the operating systems like windows, or Linux are installed
as a virtual machine on a physical server at one place and deliver them remotely through
the Remote Desktop Protocols like RDP (in windows) or VNC (in Linux). The
processing of multiple virtual desktops occurs on one or more physical servers placed
commonly at the centralized data center. The copy of the OS and applications that each
end client uses will commonly be stored in memory as one image the physical server.
Currently, VMware Horizon and Citrix Xen Desktop are the two most popular VDI
solutions available in the market with so many dominating features. Although, Desktop
operating system provided by VDI is virtual but appears like a physical desktop
operating system. The virtual desktop can run all the types of applications that are
supported on physical computer but only difference is they are delivered through the
network.
Some of the benefits provided by Desktop virtualization are :
• It provides easier management of devices and operating systems due to
centralized management.
• It reduces capital expenditure and maintenance cost of
Prepared By, [Link], AP/CSE
UNIT - II CLOUD ENABLING TECHNOLOGIES Page | 28
hardware due to consolidation of multiple operating systems into a
single physical server,
• It provides enhance security as confidential data is stored in data center
instead of personal devices that could easily be lost, stolen or tampered
with.
• With Desktop virtualization, operating systems can be quickly
and easily provisioned for the new users without doing any manual setup.
• Upgradation of operating system is easier
• It can facilitate Work from Home feature for IT Employees due to
the desktop operating system delivery over the internet.
Application Virtualization
Application virtualization is a technology that encapsulates an application from the
underlying operating system on which it is executed. It enables access to an application
without needing to install it on the local or target device. From the user’s perspective,
the application works and interacts like it’s native on the device. It allows to use any
cloud client which supports BYOD like Thin client, Thick client, Mobile client, PDA and
so on.
Application virtualization utilizes software to bundle an application into an executable
and run anywhere type of application. The software application is isolated from
the operating system and runs in an environment called as "sandbox”. There are two
types of application virtualization: remote and streaming of the application. In first
type, the remote application will run on a server, and the client utilizes some kind
of remote display protocol to communicate back. For large number of administrators
and users, it’s fairly simple to set up remote display protocol for applications. In second
type, the streaming application will run one copy of the application on the server, and
afterward have client desktops access and run the streaming application locally. With
streaming application, the upgrade process is simpler, since you simply set up another
Prepared By, [Link], AP/CSE
UNIT - II CLOUD ENABLING TECHNOLOGIES Page | 29
streaming application with the upgrade version and have the end users point to the new
form of the application. Some of the popular application virtualization softwares in the
commercial center are VMware ThinApp, Citrix XenApp, Novell ZENworks
Application Virtualization and so on.
Some of the prominent benefits of application virtualization are
✓ It allows for cross-platform operations like running Windows applications
on Linux or android and vice versa.
✓ It allows to run applications that have legacy issues like supported
on older Operating systems.
✓ It avoids conflict between the other virtualized applications
✓ It allows a user to run more than one instance of an application at same time
✓ It reduces system integration and administration costs by maintaining a
common software baseline across multiple diverse computers in an
organization.
✓ It allows to run incompatible applications side by side, at the same time
✓ It utilizes less resource than a separate virtual machine.
✓ It provides greater security because of isolating environment between
applications and operating system.
Server Virtualization
A Server virtualization is the process of dividing a physical server into multiple
unique and isolated virtual servers by means of software. It partitions a single physical
server into the multiple virtual servers; each virtual server can run its own operating
system and applications independently. The virtual server is also termed as virtual
machine. The consolidation helps in running many virtual machines under a single
physical server. Each virtual machine shares the hardware resources from physical server
that leads to better utilization of the physical servers’ resources. The resources utilized
Prepared By, [Link], AP/CSE
UNIT - II CLOUD ENABLING TECHNOLOGIES Page | 30
by virtual machine include CPU, memory, storage, and networking. The hypervisor is
the operating system or software that runs on the physical machine to perform server
virtualization. The hypervisor running on physical server is responsible for providing
the resources to the virtual machines. Each virtual machine runs independently of the
other virtual machines on the same box with different operating systems that are isolated
from each other.
The popular server virtualization softwares are VMware’s vSphere, Citrix Xen
Server, Microsoft’s Hyper-V, and Red Hat’s Enterprise Virtualization.
The benefits of server virtualization are
• It gives quick deployment and provisioning of virtual operating system.
• It has reduced the capital expenditure due to consolidation of multiple
servers into a single physical server which eliminate the cost of multiple
physical hardware.
• It provides ease in development & testing.
• It makes optimum resource utilization of physical server.
• It provides centralize the server administration and disaster recovery
feature.
• It reduces cost because less hardware is required.
Storage Virtualization
Storage virtualization is the process of grouping multiple physical storages using
software to appear as a single storage device in a virtual form. It pools the physical
storage from different network storage devices and makes it appear to be a single storage
unit that is handled from a single console. Storage virtualization helps to address the
storage and data management issues by facilitating easy backup, archiving and recovery
tasks in less time. It aggregates the functions and hides the actual complexity of
the storage area network. The storage virtualization can be implemented with data storage
Prepared By, [Link], AP/CSE
UNIT - II CLOUD ENABLING TECHNOLOGIES Page | 31
technologies like snapshots and RAID that take physical disks and present them in
a virtual format. These features can allow to perform redundancy to the storage and
gives
optimum performance by presenting host as a volume. Virtualizing storage separates the
storage management software from the underlying hardware infrastructure in order to
provide more flexibility and scalable pools of storage resources. The benefits provided
by storage virtualization are
• Automated management of storage mediums with estimated of down time.
• Enhanced storage management in heterogeneous IT environment.
• Better storage availability and optimum storage utilization.
• It gives scalability and redundancy in storage.
• It provides consummate features like disaster recovery, high
availability, consistency, replication & re-duplication of data.
• The backup and recovery are very easier and efficient in storage
virtualization.
Network Virtualization
The Network virtualization is the ability to create virtual networks that are decoupled
from the underlying network hardware. This ensures the network can better integrate
with and support increasingly virtual environments. It has capability to combine multiple
physical networks into one virtual, or it can divide one physical network into separate,
independent virtual networks.
The Network virtualization is the ability to make virtual networks that are decoupled
from the underlying network hardware. This ensures the network can better integrate
with and support increasingly virtual environments. It has capacity to combine multiple
physical networks into single virtual, or it can divide one physical network into separate,
Prepared By, [Link], AP/CSE
UNIT - II CLOUD ENABLING TECHNOLOGIES Page | 32
independent virtual networks.
The Network virtualization can combine the entire network into a single mode and
allocates its bandwidth, channels, and other resources based on its workload. Network
virtualization is similar to server virtualization but instead of dividing up a physical
server among several virtual machines, physical network resources are divided up among
multiple virtual networks. Network virtualization uses specialized software to perform
network functionality by decoupling the virtual networks from the underlying network
hardware. Once network virtualization is established, the physical network is only used
for packet forwarding and network management is done using the virtual or software-
based switches. The VMware’s NSX platform is the popular example of network
virtualization which decouples network services from the underlying hardware and
allows virtual provisioning of an entire network. The physical network resources, such
as
switches and routers, are pooled and accessible by any user via a centralized
management system. The benefits of network virtualization are
• It consolidates the physical hardware of a network into a single virtual
network that reduce the management overhead of network resources.
• It gives better scalability and flexibility in network operations.
• It provides automated provisioning and management of network resources.
• It reduces the hardware requirements and will have a corresponding
impact on your power consumption.
• It is cost effective as it requires reduced the number of physical devices.
Implementation Levels of Virtualization
6. Discuss in detail about the categories of hardware virtualization depending on
implementation technologies. Nov/Dec 2021(or)Discuss how Virtualization
implemented in different layers of cloud in detail.(May-2022)
Prepared By, [Link], AP/CSE
UNIT - II CLOUD ENABLING TECHNOLOGIES Page | 33
Implementation Levels of Virtualization
The virtualization is implemented at various levels by creating a software abstraction
layer between host OS and Guest OS. The main function of software layer is to virtualize
physical hardware of host machine in to virtual resources used by VMs by using various
operational layers. The different levels at which the virtualization can be implemented is
shown in Fig. 2.6.1.
There are five implementation levels of virtualization, that are Instruction Set
Architecture (ISA) level, Hardware level, Operating System level, Library support
level and Application level which are explained as follows.
1) Instruction Set Architecture Level
Virtualization at the instruction set architecture level is implemented by
emulating an instruction set architecture completely on software stack. An emulator
tries to execute instructions issued by the guest machine (the virtual machine that
is being emulated) by translating them to a set of native instructions and then
executing them on the available hardware.
Fig. 2.6.1 Implementation Levels of Virtualization
Prepared By, [Link], AP/CSE
UNIT - II CLOUD ENABLING TECHNOLOGIES Page | 34
• That is emulator works by translating instructions from the guest platform
to instructions of the host platform. These instructions would include both
processor oriented (add, sub, jump etc.), and the I/O specific (IN/OUT)
instructions for the devices. Although this virtual machine architecture
works fine in terms of simplicity and robustness, it has its own pros and
cons.
• The advantages of ISA are, it provides ease of implementation while dealing
with multiple platforms and it can easily provide infrastructure through
which one can create virtual machines based on x86 platforms such as Sparc
and Alpha. The disadvantage of ISA is since every instruction issued by the
emulated computer needs to be interpreted in software first which degrades
the performance.
• The popular emulators of ISA level virtualization are :
a) Boochs
It is a highly portable emulator that can be run on most popular platforms that include
x86, PowerPC, Alpha, Sun, and MIPS. It can be compiled to emulate most of the
versions of x86 machines including 386, 486, Pentium, Pentium Pro or AMD64 CPU,
including optional MMX, SSE, SSE2, and 3DNow instructions.
b) QEMU
QEMU (Quick Emulator) is a fast processor emulator that uses a portable dynamic
translator. It supports two operating modes: user space only, and full system emulation.
In the earlier mode, QEMU can launch Linux processes compiled for one CPU on
another CPU, or for cross-compilation and cross-debugging. In the later mode, it can
emulate a full system that includes a processor and several peripheral devices. It
Prepared By, [Link], AP/CSE
UNIT - II CLOUD ENABLING TECHNOLOGIES Page | 35
supports emulation of a number of processor architectures that includes x86, ARM,
PowerPC, and Sparc.
c) Crusoe
The Crusoe processor comes with a dynamic x86 emulator, called code morphing
engine that can execute any x 86 based application on top of it. The Crusoe is designed
to handle the x86 ISA’s precise exception semantics without constraining
speculative scheduling. This is accomplished by shadowing all registers holding the x86
state.
d) BIRD
BIRD is an interpretation engine for x86 binaries that currently supports only x86
as the host ISA and aims to extend for other architectures as well. It exploits the similarity
between the architectures and tries to execute as many instructions as possible on
the native hardware. All other instructions are supported through software emulation.
2) Hardware Abstraction Layer
• Virtualization at the Hardware Abstraction Layer (HAL) exploits the
similarity in architectures of the guest and host platforms to cut down the
interpretation latency. The time spent in instruction interpretation of guest
platform to host platform is reduced by taking the similarities exist between
them Virtualization technique helps map the virtual resources to physical
resources and use the native hardware for computations in the virtual
machine. This approach generates a virtual hardware environment which
virtualizes the computer resources like CPU, Memory and IO devices.
• For the successful working of HAL the VM must be able to trap every
privileged instruction execution and pass it to the underlying VMM, because
Prepared By, [Link], AP/CSE
UNIT - II CLOUD ENABLING TECHNOLOGIES Page | 36
multiple VMs running own OS might issue privileged instructions need full
attention of CPU’s .If it is not managed properly then VM may issues trap
rather than generating an exception that makes crashing of instruction is sent
to the VMM. However, the most popular platform, x86, is not fully-
virtualizable, because it is been observed that certain privileged instructions
fail silently rather than trapped when executed with insufficient privileges.
Some of the popular HAL virtualization tools are
a) VMware
The VMware products are targeted towards x86-based workstations and servers.
Thus, it has to deal with the complications that arise as x86 is not a fully-virtualizable
architecture. The VMware deals with this problem by using a patent-pending technology
that dynamically rewrites portions of the hosted machine code to insert traps wherever
VMM intervention is required. Although it solves the problem, it adds some overhead
due to the translation and execution costs. VMware tries to reduce the cost by caching
the results and reusing them wherever possible. Nevertheless, it again adds some
caching cost that is hard to avoid.
b) Virtual PC
The Microsoft Virtual PC is based on the Virtual Machine Monitor (VMM)
architecture that lets user to create and configure one or more virtual machines. It
provides most of the functions same as VMware but additional functions include undo
disk operation that lets the user easily undo some previous operations on the hard
disks of a VM. This enables easy data recovery and might come handy in several
circumstances.
c) Denali
The Denali project was developed at University of Washington’s to address this issue
Prepared By, [Link], AP/CSE
UNIT - II CLOUD ENABLING TECHNOLOGIES Page | 37
related to scalability of VMs. They come up with a new virtualization architecture also
called Para virtualization to support thousands of simultaneous machines, which they call
Lightweight Virtual Machines. It tries to increase the scalability and performance of the
Virtual Machines without too much of implementation complexity.
3) Operating System Level Virtualization
• The operating system level virtualization is an abstraction layer between
OS and user applications. It supports multiple Operating Systems and
applications to be run simultaneously without required to reboot or dual
boot. The degree of isolation of each OS is very high and can be
implemented at low risk with easy maintenance. The implementation of
operating system level virtualization includes, operating system
installation, application suites installation, network setup, and so on.
Therefore, if the required OS is same as the one on the physical machine
then the user basically ends up with duplication of most of the efforts,
he/she has already invested in setting up the physical machine. To run
applications properly the operating system keeps the application specific
data structure, user level libraries, environmental settings and other
requisites separately.
• The key idea behind all the OS-level virtualization techniques is
virtualization layer above the OS produces a partition per virtual machine
on demand that is a replica of the operating environment on the physical
machine. With a careful partitioning and multiplexing technique, each VM
can be able to export a full operating environment and fairly isolated from
one another and from the underlying physical machine.
• The popular OS level virtualization tools are
Prepared By, [Link], AP/CSE
UNIT - II CLOUD ENABLING TECHNOLOGIES Page | 38
a) Jail
The Jail is a FreeBSD based virtualization software that provides the ability to
partition an operating system environment, while maintaining the simplicity of
UNIX ”root”
model. The environments captured within a jail are typical system resources and data
structures such as processes, file system, network resources, etc. A process in a partition
is referred to as “in jail” process. When the system is booted up after a fresh install, no
processes will be in jail. When a process is placed in a jail, all of its descendants after
the jail creation, along with itself, remain within the jail. A process may not belong to
more than one jail. Jails are created by a privileged process when it invokes a special
system call jail. Every call to jail creates a new jail; the only way for a new process to
enter the jail is by inheriting access to the jail from another process that already in that
jail.
b) Ensim
The Ensim virtualizes a server’s native operating system so that it can be partitioned
into isolated computing environments called virtual private servers. These virtual private
servers operate independently of each other, just like a dedicated server. It is commonly
used in creating hosting environment to allocate hardware resources among large
number of distributed users.
4) Library Level Virtualization
Most of the system uses extensive set of Application Programmer Interfaces (APIs)
instead of legacy System calls to implement various libraries at user level. Such APIs are
designed to hide the operating system related details to keep it simpler for normal
programmers. In this technique, the virtual environment is created above OS layer and
is mostly used to implement different Application Binary Interface (ABI) and
Prepared By, [Link], AP/CSE
UNIT - II CLOUD ENABLING TECHNOLOGIES Page | 39
Application Programming Interface (API) using the underlying system.
The example of Library Level Virtualization is WINE. The Wine is an
implementation of the Windows API, and can be used as a library to port Windows
applications to UNIX. It is a virtualization layer on top of X and UNIX to export the
Windows API/ABI which allows to run Windows binaries on top of it.
5) Application Level Virtualization
In this abstraction technique the operating systems and user-level programs executes
like applications for the machine. Therefore, specialize instructions are needed for
hardware manipulations like I/O mapped (manipulating the I/O) and Memory mapped
(that is mapping a chunk of memory to the I/O and then manipulating the memory). The
group of such special instructions constitutes the application called Application level
Virtualization. The Java Virtual Machine (JVM) is the popular example of application
level virtualization which allows creating a virtual machine at the application-level
than OS level. It supports a new self-defined set of instructions called java byte codes
for JVM.
Such VMs pose little security threat to the system while letting the user to play with it
like physical machines. Like physical machine it has to provide an operating
environment to its applications either by hosting a commercial operating system, or by
coming up with its own environment.
The comparison between different levels of virtualization is shown in Table 2.6.2.
Implementation Performanc Applicatio Implementa Applicati
Level e n tion on
Instruction Very Poor Very Good Medium Medium
Flexibility Complex Isolati
Set
ity on
Hardware Very Good Medium Very Good Good
Architecture Level
Abstraction
(ISA)
Prepared By, [Link], AP/CSE
Level
(HAL)
UNIT - II CLOUD ENABLING TECHNOLOGIES Page | 40
Operating System Very Good Poor Medium Poor
LevelLibrary Level Medium Poor Poor Poor
Application Level Poor Poor Very Good Very Good
Table 2.6.2 Comparison between different implementation levels of virtualization
7. Explain in detail about Virtualization structure with an example.)(or)
Explain about Virtualization for Linux and Windows and NT Platform
.(or)Design the Process of Live Migration of VM from one host to
[Link]-2020
Virtualization Structures
In previous sections, we have already seen the basics of virtualization as it is nothing
but creation of a virtual version of hardware platform, operating system, storage
or network resources rather than actual. It allows to run multiple operating systems on a
single physical machine called host machine. Each instance of operating system called
Virtual Machine (VM) and operating system runs inside virtual machine is called guest
operating system. Depending on the position of the virtualization layer, there are two
classes of VM architectures, namely the hypervisor architectures like bare-metal or host-
based. The hypervisor is the software used for doing virtualization also known as
the VMM (Virtual Machine Monitor). The hypervisor software provides two different
structures of Virtualization namely Hosted structure (also called Type 2 Virtualization)
and Bare-Metal structure (also called Type 1 Virtualization) explained in following
section.
Hosted Structure (Type II)
In hosted structure, the guest OS and applications run on the top of base or host
Prepared By, [Link], AP/CSE
UNIT - II CLOUD ENABLING TECHNOLOGIES Page | 41
OS with the help of VMM (called Hypervisor). The VMM stays between the base
OS and guest OS. This approach provides better compatibility of hardware because the
base OS is
responsible for providing hardware drivers to guest OS instead of the VMM. In this type,
hypervisor has to rely on host OS for pass through permissions to access hardware. In
many cases, hosted hypervisor needs emulator, which lies between guest OS and VMM
to translate the instructions in native format. The hosted structure is shown in Fig. 2.7.1.
Fig. 2.7.1 Hosted Structure (Type II Hypervisor)
To implement Hosted structure, a base OS needs to be installed first over which VMM
can be installed. The hosted structure is simple solution to run multiple desktop OS
independently. Fig. 2.7.2 (a) and (b) shows Windows running on Linux base OS
and Linux running on Windows base OS using hosted Hypervisor.
Prepared By, [Link], AP/CSE
UNIT - II CLOUD ENABLING TECHNOLOGIES Page | 42
Fig. 2.7.2 Hosted Hypervisors
The popular hosted hypervisors are QEMU, VMware Workstation, Microsoft
Virtual
PC, Oracle VirtualBox etc.
The advantages of hosted structure are
• It is easy to install and manage without disturbing host systems hardware.
• It supports legacy operating systems and applications.
• It provides ease of use with greater hardware compatibility.
• It does not require to install any drivers for IO devices as they are
installed through built-in driver stack.
• It can be used for testing beta software.
• The hosted hypervisors are usually free software and can be run
on user workstations.
Prepared By, [Link], AP/CSE
UNIT - II CLOUD ENABLING TECHNOLOGIES Page | 43
The disadvantages of hosted structure are
• It does not allow guest OS to directly access the hardware instead it
has to go through base OS, which increases resource overhead.
• It has very slow and degraded virtual machines performance due to
relying on intermediate host OS for getting hardware access.
• It doesn’t scale up beyond the limit.
Bare-Metal Structure (Type I)
• In Bare-Metal Structure, the VMM can be directly installed on the top of
Hardware, therefore no intermediate host OS is needed. The VMM can directly
communicate with the hardware and does not rely on the host system for
pass through permission which results in better performance, scalability
and stability. The Bare-Metal structure is shown in Fig. 2.7.3.
• Bare-metal virtualization is mostly used in enterprise data centers for getting the
advanced features like resource pooling, high availability, disaster recovery and
security.
Fig. 2.7.3 Bare-Metal Structure (Type-I Hypervisor)
The popular Bare-Metal Hypervisors are Citrix Xen Server, VMware ESXI
Prepared By, [Link], AP/CSE
UNIT - II CLOUD ENABLING TECHNOLOGIES Page | 44
and Microsoft Hyper V.
The advantages of Bare-Metal structure are
• It is faster in performance and more efficient to use.
• It provides enterprise features like high scalability, disaster recovery and
high availability.
• It has high processing power due to the resource pooling.
Fig. 2.7.4 Bare-Metal Xen Server Hypervisor
• It has lower overhead or maintenance cost.
• It provides ease of backup and recovery.
• It provides built-in fault-tolerance mechanisms.
• It has improved mobility and security.
The disadvantages of bare-metal structure are
• It has limited hardware support and poor stack of device drivers.
• It has high implementation cost
Prepared By, [Link], AP/CSE
UNIT - II CLOUD ENABLING TECHNOLOGIES Page | 45
• It requires specialized servers to install and run hypervisor and do not run on
user workstations.
• In some cases, it becomes complex for management.
VIRTUALIZATION TOOLS AND MECHANISMS
[Link] in detail about tools and mechanism with an example.(Nov/Dec 2021)
Virtualization Tools and Mechanisms
The hypervisor provides hypercalls for the guest OSes and applications to execute
privileged instructions. Depending on the functionality, there are two architectures of
hypervisors namely micro-kernel hypervisor architecture used by Microsoft Hyper-V or
monolithic hypervisor architecture used by VMware ESX for server virtualization. The
micro-kernel architecture of a hypervisor provides only the basic and unchanging
functions like physical memory management or processor scheduling. The dynamic
components and device drivers stay outside the hypervisor. While in monolithic
hypervisor architecture, the most dynamic and changeable functions are supported
including those of the device drivers. It can implement all the aforementioned functions
like CPU scheduling, memory management or IO management etc. That’s why; the size
of the hypervisor code of a micro-kernel hypervisor is always smaller than that of a
monolithic hypervisor. In previous section we have learned the OS virtualization
techniques like Hosted and Bare-Metal virtualization. The upcoming sections explain
the different virtualization tools and mechanisms.
Virtualization Tools
There are many virtualization tools available in the market, but two most popular
open source tools like Xen and KVM are explained as follows.
Prepared By, [Link], AP/CSE
UNIT - II CLOUD ENABLING TECHNOLOGIES Page | 46
A) Xen
Xen is an open source bare-metal (Type I) hypervisor developed by Cambridge
University. It runs on the top of hardware without needing a host operating system. The
absence of host OS eliminate the need for pass through permission by the hypervisor.
Xen is a microkernel hypervisor, which separates the policy from the mechanism. It
provides a
virtual environment located between the hardware and the OS. As Xen hypervisor runs
directly on the hardware devices, it runs many guest operating systems on the top of
it. The various operating system platforms supported as a guest OS by Xen hypervisor
are Windows, Linux, BSD and Solaris.
Fig. 2.8.1 Xen architecture
There are three core-components of the Xen system, namely kernel, hypervisor and
applications. It is important to note that the organization of these three components is
specific. The Xen hypervisor implements all the mechanisms, leaving the policy to be
handled by Domain 0.
The guest OS, which has control ability, is called Domain 0, and the others are called
Prepared By, [Link], AP/CSE
UNIT - II CLOUD ENABLING TECHNOLOGIES Page | 47
Domain U. Domain 0 is the privileged guest OS of the Xen system and is responsible
for controlling the functionality of entire system. Other guests are known as Domain
U. Domain 0, which typically acts like a VMM, is the first one to get loaded when Xen
starts without any file system drivers being available. The Domain 0 handles the
following operations :
• Allocates or map hardware resources to Domain U domains or for guest
domains.
• Manages all other VMs.
• Creates, copies, saves, reads, modifies, shares, migrates, and roll backs VMs.
• Accesses the underlying hardware.
• Manages IO and other devices.
Xen gives a virtual domain situated between the equipment and the OS. The Xen
hypervisor does not include any device drivers natively for guest OS. It provides
a mechanism by which guests OS can have direct access to the physical devices.
That’s why, size of the Xen hypervisor is kept rather small. Domain 0 is very crucial to
the Xen hypervisor and it needs to be protected. This is because, if the security of Domain
0 OS is hampered by an intruder/hacker, she/he would gain control of the entire
system. As Domain 0, behaving as a VMM, any compromise in security of it may allow
intruders to create, copy, save, read, modify, share, migrate, and roll back VMs as easily
as manipulating a file.
B) KVM (Kernel-Based VM)
The Kernel-Based VM or KVM is an open source hosted (Type II) hypervisor which
is originally developed by Open Virtualization Alliance. It is a system-virtualization
solution that offers full virtualization support for x86 hardware-based operating systems
with virtualization extension for Intel VT or AMD-V. KVM is a hardware-assisted para-
virtualization tool that can host several virtual machines that execute Windows
OS images or Linux OS images with no alterations in them. Using KVM, one
Prepared By, [Link], AP/CSE
UNIT - II CLOUD ENABLING TECHNOLOGIES Page | 48
can run multiple virtual machines running unmodified Linux or Windows images. Each
virtual machine has private virtualized hardware like a network card, disk, graphics
adapter, etc. It supports unmodified guest OSes such as Windows, Linux, Solaris, and
other UNIX variants. KVM is a Linux para-virtualization system where explicit
modification in the guest operating systems is required.
In KVM, Memory management and scheduling activities are carried out by the
existing Linux kernel. It can support hardware-assisted virtualization and
para-virtualization by using the Intel VT-x or AMD-v and VirtIO framework,
respectively. The VirtIO framework includes a paravirtual Ethernet card, a disk
I/O controller, a balloon device for adjusting guest memory usage, and a VGA
graphics interface using VMware drivers.
A Kernel-based Virtual Machine contains two main components, which are as follows :
• Loadable kernel module ([Link]), that provides the core
virtualization infrastructure and a processor specific modules (like kvm-
intel. ko for intel processors and [Link] for AMD processors) for
processor-specific drivers.
• User space program, which controls mechanisms to manage virtual
machines and offers emulation for virtual devices. For example,
qemusystem-ARCH.
• In KVM, Quick emulator is required for emulating the native and
privileged instructions issued by Guest OS. In KVM architecture, QEMU
process runs as a user space process on top of the Linux kernel with
KVM module, and a guest kernel runs on the of emulated hardware in
QEMU. QEMU can co-work with KVM for hardware-based virtualization.
Using hardware-based virtualization, QEMU does not have to emulate all
CPU instructions, therefore it works really fast.
Prepared By, [Link], AP/CSE
UNIT - II CLOUD ENABLING TECHNOLOGIES Page | 49
Fig. 2.8.2 KVM Virtualization Architecture
Some of the important features provide by KVM are
• Supports 32 and 64 bit guests OS (on 64 bit hosts)
• Supports hardware virtualization features
• Provides Para virtualized drivers for guest OS
• Provide synchronous Snapshots
• Gives Delta images of virtual machines along with PCI passthrough
• Kernel same page merging
• Support CPU and PCI hot plug feature
• It has built-in Qemu Monitor Protocol (QMP) and KVM Paravirtual Clock
Virtualization Mechanisms
Every hypervisor uses some mechanisms to control and manage virtualization
strategies that allow different operating systems such as Linux and Windows to be run
on the same physical machine, simultaneously. Depending on the position of
the virtualization layer, there are several classes of VM mechanisms, namely the binary
Prepared By, [Link], AP/CSE
UNIT - II CLOUD ENABLING TECHNOLOGIES Page | 50
translation, para-virtualization, full virtualization, hardware assist virtualization and
host-based virtualization. The mechanisms of virtualization defined by VMware
and other virtualization providers are explained as follows.
Translation with Full Virtualization
Based on the implementation technologies, hardware virtualization can be
characterized into two types namely full virtualization with binary translation and host-
based virtualization. The binary translation mechanisms with full and host-based
virtualization are explained as follows.
a) Binary translation
In Binary translation of guest OS, The VMM runs at Ring 0 and the guest OS at Ring
1. The VMM checks the instruction stream and identifies the privileged, control
and behavior-sensitive instructions. At the point when these instructions are identified,
they are trapped into the VMM, which emulates the behavior of these instructions.
The method used in this emulation is called binary translation. The binary translation
mechanism is shown in Fig. 2.9.3.
Fig. 2.8.3 Binary Translation mechanism
Prepared By, [Link], AP/CSE
UNIT - II CLOUD ENABLING TECHNOLOGIES Page | 51
b) Full Virtualization
In full virtualization, host OS doesn’t require any modification to its OS code.
Instead it relies on binary translation to virtualize the execution of some
sensitive, non-virtualizable instructions or execute trap. Most of the guest operating
systems and their applications composed of critical and noncritical instructions. These
instructions are executed with the help of binary translation mechanism. With
full virtualization,
noncritical instructions run on the hardware directly while critical instructions are
discovered and replaced with traps into the VMM to be emulated by software. In a host-
based virtualization, both host OS and guest OS takes part in virtualization where
virtualization software layer lies between them.
Therefore, full virtualization works with binary translation to perform direct execution
of instructions where guest OS is completely decoupled from the underlying hardware
and consequently, it is unaware that it is being virtualized. The full virtualization gives
degraded performance, because it involves binary translation of instructions first rather
than executing which is rather time-consuming. Specifically, the full virtualization of
I/O intensive applications is a really a big challenge as Binary translation employs
a code cache to store translated instructions to improve performance, however it
expands the cost of memory usage.
c) Host-based virtualization
In host-based virtualization, the virtualization layer runs on top of the host OS and
guest OS runs over the virtualization layer. Therefore, host OS is responsible for
managing the hardware and control the instructions executed by guest OS. The host-
based virtualization doesn’t require to modify the code in host OS but virtualization
software has to rely on the host OS to provide device drivers and other low-level services.
Prepared By, [Link], AP/CSE
UNIT - II CLOUD ENABLING TECHNOLOGIES Page | 52
This architecture simplifies the VM design with ease of deployment but gives degraded
performance compared to other hypervisor architectures because of host OS
interventions. The host OS performs four layers of mapping during any IO request
by guest OS or VMM which downgrades performance significantly.
Para Virtualization:
The para-virtualization is one of the efficient virtualization techniques that require
explicit modification to the guest operating systems. The APIs are required for OS
modifications in user applications which are provided by para-virtualized VM. In some
of the virtualized system, performance degradation becomes the critical issue.
Therefore, para-virtualization attempts to reduce the virtualization overhead, and
thus improve performance by modifying only the guest OS kernel. The para-
virtualization architecture is shown in Fig. 2.8.4.
Fig. 2.8.4 Para-virtualization architecture
The x86 processor uses four instruction execution rings namely Ring 0, 1, 2, and 3.
The ring 0 has higher privilege of instruction being executed while Ring 3 has lower
privilege. The OS is responsible for managing the hardware and the privileged
Prepared By, [Link], AP/CSE
UNIT - II CLOUD ENABLING TECHNOLOGIES Page | 53
instructions to execute at Ring 0, while user-level applications run at Ring 3. The KVM
hypervisor is the best example of para-virtualization. The functioning of para-
virtualization is shown in Fig. 2.8.5.
Fig. 2.8.5 Para-virtualization (Source : VMware)
In para-virtualization, virtualization layer is inserted between the hardware and the
OS. As x86 processor requires virtualization layer should be installed at Ring 0, the other
instructions at Ring 0 may cause some problems. In this architecture, the nonvirtualizable
instructions are replaced with hypercalls that communicate directly with the hypervisor
or VMM. The user applications directly get executed upon user request on host system
hardware.
Some disadvantages of para-virtualization are although para-virtualization reduces
CPU overhead, but still has many issues with compatibility and portability of virtual
system, it incurs high cost for implementation and maintenance and performance
of virtualization varies due to workload variation. The popular examples of para-
virtualization are Xen, KVM, and VMware ESXi.
Prepared By, [Link], AP/CSE
UNIT - II CLOUD ENABLING TECHNOLOGIES Page | 54
a) Para-Virtualization with Compiler Support
The para-virtualization supports privileged instructions to be executed at run time. As
full virtualization architecture executes the sensitive privileged instructions by
intercepting and emulating them at runtime, para-virtualization can handle such
instructions at compile time. In Para-Virtualization with Compiler Support thee guest OS
kernel is modified to replace the privileged and sensitive instructions with hypercalls
to the hypervisor or VMM at compile time itself. The Xen hypervisor assumes
such para-virtualization architecture.
Here, guest OS running in a guest domain may run at Ring 1 instead of at Ring 0
that’s why guest OS may not be able to execute some privileged and sensitive
instructions. Therefore, such privileged instructions are implemented by hypercalls to
the hypervisor. So, after replacing the instructions with hypercalls, the modified guest
OS emulates the behavior of the original guest OS.
9. Explain in detail about Virtualization of CPU, Memory, And I/O Devices.
Nov/Dec 2021
Virtualization of CPU
The CPU Virtualization is related to range protection levels called rings in which code
can execute. The Intel x86 architecture of CPU offers four levels of privileges known
as Ring 0, 1, 2 and 3.
Among that Ring 0, Ring 1 and Ring 2 are associated with operating system while
Ring 3 is reserved for applications to manage access to the computer hardware. As
Ring 0 is used by kernel because of that Ring 0 has the highest-level privilege while
Ring 3 has lowest privilege as it belongs to user level application shown in Fig. 2.9.1.
Prepared By, [Link], AP/CSE
UNIT - II CLOUD ENABLING TECHNOLOGIES Page | 55
Fig. 2.9.1 CPU Privilege
Rings
The user level applications typically run in Ring 3, the operating system needs to have
direct access to the memory and hardware and must execute its privileged instructions in
Ring 0.
Therefore, Virtualizingx86 architecture requires placing a virtualization layer
under the operating system to create and manage the virtual machines that delivers
shared resources. Some of the sensitive instructions can’t be virtualized as they
have different semantics.
If virtualization is not provided then there is a difficulty in trapping and translating
those sensitive and privileged instructions at runtime which become the challenge. The
x86 privilege level architecture without virtualization is shown in Fig. 2.9.2.
Prepared By, [Link], AP/CSE
UNIT - II CLOUD ENABLING TECHNOLOGIES Page | 56
Fig. 2.9.2 X86 privilege level architecture without virtualization
In most of the virtualization system, majority of the VM instructions are executed
on the host processor in native mode. Hence, unprivileged instructions of VMs can
run directly on the host machine for higher efficiency. Therefore, there is a need to handle
critical instructions carefully for correctness and stability. These critical instructions are
categorized into three types namely privileged instructions, control sensitive instructions,
and behavior-sensitive instructions. The privileged instructions are executed in a
privileged mode and get trapped if executed outside this mode. The control-sensitive
instructions allow to change the configuration of resources used during execution while
Behavior-sensitive instructions uses different behaviors of CPU depending on the
configuration of resources, including the load and store operations over the virtual
memory. Generally, the CPU architecture is virtualizable if and only if it provides ability
to run the VM’s privileged and unprivileged instructions in the CPU’s user mode during
which VMM runs in supervisor mode. When the privileged instructions along
with control and behavior-sensitive instructions of a VM are executed, then they get
trapped in the VMM. In such scenarios, the VMM becomes the unified mediator for
hardware access from different VMs and guarantee the correctness and stability of
the whole system. However, not all CPU architectures are virtualizable. There are three
Prepared By, [Link], AP/CSE
UNIT - II CLOUD ENABLING TECHNOLOGIES Page | 57
techniques can be used for
handling sensitive and privileged instructions to virtualize the CPU on the x86
architecture :
1) Binary translation with full virtualization
2) OS assisted virtualization or para-virtualization
3) Hardware assisted virtualization
The above techniques are explained in detail as follows.
1) Binary translation with full virtualization
In binary translation, the virtual machine issues privileged instructions contained within
their compile code. The VMM takes control on these instructions and changes the code
under execution to avoid the impact on state of the system. The full virtualization technique
does not need to modify host operating system. It relies on binary translation to trap
and virtualize the execution of certain instructions.
The noncritical instructions directly run on the hardware while critical instructions have to
be discovered first then they are replaced with
Fig. 2.9.3 Binary Translation with Full Virtualization
Prepared By, [Link], AP/CSE
UNIT - II CLOUD ENABLING TECHNOLOGIES Page | 58
trap in to VMM to be emulated by software. This combination of binary translation and
direct execution provides full virtualization as the guest OS is completely decoupled
from the underlying hardware by the virtualization layer. The guest OS is not aware that
it is being virtualized and requires no modification. The performance of full
virtualization may not be ideal because it involves binary translation at run-time which
is time consuming and can incur a large performance overhead. Full virtualization offers
the best isolation and security for virtual machines, and simplifies migration and
portability as the same guest OS instance can run virtualized or on native hardware. The
full virtualization is only supported by VMware and Microsoft’s hypervisors.
2) OS assisted virtualization or para-virtualization
The para-virtualization technique refers to making communication between guest OS
and the hypervisor to improve the performance and efficiency. The para-virtualization
involves modification to the OS kernel that replaces the non-virtualized instructions with
hypercalls and can communicate directly with the virtualization or layer hypervisor. A
hypercall is based on the same concept as a system call. The call made by hypervisor
to the hardware is called hypercall. In para-virtualization the hypervisor is responsible
for providing hypercall interfaces for other critical kernel operations such as memory
management, interrupt handling and time keeping.
Prepared By, [Link], AP/CSE
UNIT - II CLOUD ENABLING TECHNOLOGIES Page | 59
Fig. 2.9.4 Para-virtualization
3) Hardware Assisted Virtualization (HVM)
This technique attempts to simplify virtualization because full or para-virtualization
is complicated in nature. The Processor makers like Intel and AMD provides their own
proprietary CPU Virtualization Technologies called Intel VT-x and AMD-V. Intel
and AMD CPUs add an additional mode called privilege mode level to x86 processors.
All the privileged and sensitive instructions are trapped in the hypervisor automatically.
This technique removes the difficulty of implementing binary translation of full
virtualization. It also lets the operating system run in VMs without modification. Both
of them target privileged instructions with a new CPU execution mode feature that allows
the VMM to run in a new root mode below ring 0, also referred to as Ring 0P (for
privileged root mode) while the Guest OS runs in Ring 0D (for de-privileged non-
root mode). The Privileged and sensitive calls are set automatically to trap the
hypervisor running on hardware that removes the need for either binary translation or
para-virtualization. The Fig. 2.10.5 shows Hardware Assisted Virtualization.
Prepared By, [Link], AP/CSE
UNIT - II CLOUD ENABLING TECHNOLOGIES Page | 60
Fig. 2.9.5 Hardware Assisted Virtualization
Virtualization of Memory
10. Explain in detail bout virtualization of memory with an example.
Virtualization of Memory
The memory virtualization involves physical memory to be shared and dynamically
allocated to virtual machines. In a traditional execution environment, the operating
system is responsible for maintaining the mappings of virtual memory to machine
memory using page tables. The page table is a single-stage mapping from virtual memory
to machine memory. All recent x86 CPUs comprises built-in Memory Management Unit
(MMU) and a Translation Lookaside Buffer (TLB) to improve the virtual memory
performance. However, in a virtual execution environment, the mapping is required from
virtual memory to physical memory and physical memory to machine memory; hence it
requires two-stage mapping process.
The modern OS provides virtual memory support that is similar to memory
virtualization. The Virtualized memory is seen by the applications as a contiguous
address space which is not tied to the underlying physical memory in the system. The
operating system is responsible for mappings the virtual page numbers to physical page
Prepared By, [Link], AP/CSE
UNIT - II CLOUD ENABLING TECHNOLOGIES Page | 61
numbers stored in page tables. To optimize the Virtual memory performance all modern
x86 CPUs include a Memory Management Unit (MMU) and a Translation Lookaside
Buffer (TLB). Therefore, to run multiple virtual machines with Guest OS on a
single system, the MMU has to be virtualized shown in Fig. 2.10.1.
Fig. 2.10.1 Memory Virtualization
The Guest OS is responsible for controlling the mapping of virtual addresses to the
guest memory physical addresses, but the Guest OS cannot have direct access to
the actual machine memory. The VMM is responsible for mapping the Guest
physical memory to the actual machine memory, and it uses shadow page tables to
accelerate the mappings. The VMM uses TLB (Translation Lookaside Buffer)
hardware to map the virtual memory directly to the machine memory to avoid the two
levels of translation on every access. When the guest OS changes the virtual memory to
physical memory mapping, the VMM updates the shadow page tables to enable a
direct lookup. The hardware-assisted memory virtualization by AMD processor
provides hardware assistance to the two-stage address translation in a virtual
execution environment by using a technology called nested paging.
Prepared By, [Link], AP/CSE
UNIT - II CLOUD ENABLING TECHNOLOGIES Page | 62
Virtualization of I/O Device
The virtualization of devices and I/O’s is bit difficult than CPU virtualization. It
involves managing the routing of I/O requests between virtual devices and the shared
physical hardware. The software based I/O virtualization and management techniques
can be used for device and I/O virtualization to enables a rich set of features
and simplified management. The network is the integral component of the system
which enables communication between different VMs. The I/O virtualization provides
virtual NICs and switches that create virtual networks between the virtual machines
without the network traffic and consuming bandwidth on the physical network. The NIC
teaming allows multiple physical NICS to be appearing as one and provides failover
transparency for virtual machines. It allows virtual machines to be seamlessly relocated
to different systems using VMware VMotion by keeping their existing MAC addresses.
The key for effective I/O virtualization is to preserve the virtualization benefits with
minimum CPU utilization. Fig. 2.10.2 shows device and I/O virtualization.
Fig. 2.10.2 Device and I/O virtualization
Prepared By, [Link], AP/CSE
UNIT - II CLOUD ENABLING TECHNOLOGIES Page | 63
It can be effectively emulate on well-known hardware and can translate the virtual
machine requests to the system hardware. The standardize device drivers help for virtual
machine standardization. The portability in I/O Virtualization allows all the virtual
machines across the platforms to be configured and run on the same virtual hardware
regardless of their actual physical hardware in the system. There are three ways of
implementing I/O virtualization. The full device emulation approach emulates well-
known real-world devices where all the functions of device such as enumeration,
identification, interrupt and DMA are replicated in software. The para-virtualization
method of IO virtualization uses split driver model that consist of frontend and backend
drivers. The front-end driver runs on Domain U which manages I/O request of guest
OS. The backend driver runs Domain 0 which manages real I/O devices with
multiplexing of I/O data of different VMs. They interact with each other via block of
shared memory. The direct I/O virtualization let the VM to access devices [Link]
mainly focus on networking of mainframes. There are four methods to implement I/O
virtualization namely full device emulation, para- virtualization, and direct I/O
virtualization and through self-virtualized I/O.
In full device emulation, the IO devices are virtualized using emulation software. This
method can emulate all well-known and real-world devices. The emulation software is
responsible for performing all the functions of a devices or bus infrastructure, such as
device enumeration, identification, interrupts, and DMA which are replicated. The
software runs inside the VMM and acts as a virtual device. In this method, the I/O
access
requests of the guest OS are trapped in the VMM which interacts with the I/O devices.
The multiple VMs share a single hardware device for running them concurrently.
However, software emulation consumes more time in IO access that’s why it runs much
slower than the hardware it emulates.
Prepared By, [Link], AP/CSE
UNIT - II CLOUD ENABLING TECHNOLOGIES Page | 64
In para-virtualization method of I/O virtualization, the split driver model is used
which consist of frontend driver and backend driver. It is used in Xen hypervisor with
different drivers like Domain 0 and Domain U. The frontend driver runs in Domain U
while backend driver runs in Domain 0. Both the drivers interact with each other via a
block of shared memory. The frontend driver is responsible for managing the I/O
requests of the guest OSes while backend driver is responsible for managing the real I/O
devices and multiplexing the I/O data of different VMs.
The para-virtualization method of I/O virtualization achieves better device
performance than full device emulation but with a higher CPU overhead.
In direct I/O virtualization, the virtual machines can access IO devices directly. It
does not have to rely on any emulator of VMM. It has capability to give better IO
performance without high CPU costs than para-virtualization method. It was designed
for focusing on networking for mainframes.
In self-virtualized I/O method, the rich resources of a multicore processor and
harnessed together. The self-virtualized I/O encapsulates all the tasks related with
virtualizing an I/O device. The virtual devices with associated access API to VMs and
a management API to the VMM are provided by self-virtualized I/O that defines
one Virtual Interface (VIF) for every kind of virtualized I/O device.
The virtualized I/O interfaces are virtual network interfaces, virtual block devices
(disk), virtual camera devices, and others. The guest OS interacts with the virtual
interfaces via device drivers. Each VIF carries a unique ID for identifying it in
self- virtualized I/O and consists of two message queues. One message queue for
outgoing messages to the devices and another is for incoming messages from the devices.
As there are a many of challenges associated with commodity hardware devices, the
multiple IO virtualization techniques need to be incorporated for eliminating those
associated challenges like system crash during reassignment of IO devices, incorrect
functioning of IO devices and high overhead of device
Prepared By, [Link], AP/CSE
UNIT - II CLOUD ENABLING TECHNOLOGIES Page | 65
emulation.
Virtualization support and disaster Recovery
11. Explain in detail about Virtualization support and disaster Recovery.
Virtualization Support and Disaster Recovery
In cloud computing, virtual machines are the containers of cloud services which
can run any services on the top of it. The virtualization becomes the key aspect in cloud
computing. Because of abstraction in cloud services due to virtualization, cloud user
does
not have to bother about physical servers through which the services are provisioned and
application developers do not worry about network issues or infrastructure problems
such as scalability, latency and fault tolerance.
Virtualization software is used in most cloud computing systems to virtualize the
hardware.
It simulates hardware execution, and even runs unmodified operating systems. Some
of the prominent advantages of virtualization for cloud computing are
• Supports legacy software applications and old operating systems.
• Provides a readily available development and deployment
environment for developers to build a cloud application with wide variety
of tools and platforms
• Provision virtual machines on demand along with unmatched scalability.
• Provides flexibility for users and developers to use the platform.
• Provides high throughput, high availability and effective load balancing.
• Provides Disaster recovery along with centralized resource and data
management. And so on.
Prepared By, [Link], AP/CSE
UNIT - II CLOUD ENABLING TECHNOLOGIES Page | 66
Some of the applications of virtualization are given as follows.
a) Virtualization for Public cloud platform
Today, every public cloud service provider uses Virtualization to save their physical
resources, energy and manpower along with making cloud services easier for access,
effective and reliable. The cloud service providers like AWS, Google or Microsoft
provides freedom for their customers to develop and deploy applications on their cloud
platform seamlessly. Because of that, today everyone is interested in using the public
cloud services which are deployed under the virtualization solution.
b) Virtualization for Green Data Centers
As we know that, because of huge power consumption by physical servers and other
equipment’s in data center, IT power consumption reached to the remarkable figure.
Because of that, many countries are facing energy crisis to a great extent.
Therefore, virtualization can be used to make low power consumption and effectively
cost reduction in IT data centers. It makes a great impact on cost reduction and power
consumption due to consolidation of many physical servers in to fewer.
Therefore, concept of Green Data Centers comes into picture where storage and other
virtualization mechanisms can be used to minimize the use of power, energy, cost as well
as physical servers.
c) Virtualization for IaaS
VM technology has become increasingly ubiquitous. This allowed users to create
customized environments for cloud computing on the top of physical infrastructure. The
use of VMs in clouds include following distinct benefits like consolidating workloads of
underutilized servers into few servers, allow VMs to run legacy code without interfering
with APIs, improve security of applications by building sandbox environment over VMs
and provide better QoS to applications and performance isolation over the virtualized
cloud platform.
Prepared By, [Link], AP/CSE
UNIT - II CLOUD ENABLING TECHNOLOGIES Page | 67
d) Virtualization for Disaster Recovery
In IT organizations, disaster recovery is the must have technique which provides
continuous and uninterrupted delivery of IT resources and services even in case of
hardware or other failures due to natural disasters or any other reasons. Disaster recovery
involves a collection of policies, tools and procedures to enable the recovery or
continuation of critical infrastructure resources and systems following a natural or
human-induced disaster.
Virtualization technology calls for an integrated disaster recovery program that allows
to recover one VM by another VM. As we know, conventional disaster recovery from
one physical machine to another is rather slow, complex, and expensive. The total
recovery time is required for configuring the hardware, installing and configuring the
operating system, installing the backup agents, and restarting the physical machine is
very large. Therefore, to reduce the recovery time the VM platforms are used that reduce
the installation and configuration times for the operating system and eliminated the
backup agents. Virtualization helps by encapsulation of VM in rapid disaster recovery,
provided in all clone VMs, only one must be active. VM cloning provides an efficient
solution. With every VM running on a local server, the concept is to create a clone
VM on a remote server. For all clone VMs, only one must be active. By default, the
remote VM should be in suspended mode. In the event of a failure of the original VM,
a cloud platform should be able to enable this clone VM, taking a snapshot of the VM
to allow live migration in a minimum of time. The VM that has been migrated will
operate on a shared Internet connection. The suspended VM only receives updated
data and change its status. In cloud, virtualization provides updated Recovery Point
Objective (RPO) and Recovery Time Objective (RTO) in case of a disaster or system
restore.
Prepared By, [Link], AP/CSE
P a g e | 68
Fig. 2.10.4 Virtualization in Cloud computing
Prepared By, [Link], AP/CSE
P a g e | 69
Part-A
[Link] is Service Oriented Architecture ?’
Service Oriented Architecture (SOA) expresses a perspective of software
architecture that defines the use of loosely coupled software services to support
the requirements of the business processes. It is used for designing a software system
that can make the use of services of new or legacy applications through their published
or discoverable interfaces.
2. Justify Web and Web architectures are SOA based.
SOA is an architectural style for building software applications that use
services available in a network such as the web. The applications built using SOA are
mostly web based that uses web architecture defined by the World Wide Web Consortium
(W3C). These web applications are often distributed over the networks which aim to make
services interoperable, extensible and effective. The web and web services are the most
common example provided by the SOA model which delivers well-defined set of
implementation choices for web architectures like XML based SOAP and Web Service
Definition Language (WSDL).
3. “Although virtualization is widely accepted today; it does have its limits”. Comment
on the statement. (May-2021)
Although virtualization is widely accepted today; it does have its limitations that
are listed below.
• High upfront Investments : Organisations need to acquire resources beforehand to
implement Virtualization. Also, there might occur a need to incur additional resources
with time.
• Performance Issues : Although virtualization is an efficient technique and efficiency can
be increased by applying some techniques, there may be chances when the efficiency
is not as good as that of the actual physical systems.
Prepared By, [Link], AP/CSE
P a g e | 70
• Licensing Issues : All software may not be supported on virtual platforms. Although
vendors are becoming aware of the increasing popularity of virtualization and have started
providing licenses for software to run on these platforms, the problem has not completely
vanished. Therefore, it is advised to check the licenses with the vendor before using
the software.
• Difficulty in Root Cause Analysis : With the addition of an additional layer in
virtualization, complexity gets increased. This increased complexity makes root cause
analysis difficult in case of unidentified problems.
4. List the requirements of VMM.(Nov/Dec 2021)
The requirements of VMM or hypervisor are
• VMM must support efficient task scheduling and resource allocation techniques.
• VMM should provide an environment for programs which is essentially identical to the
original physical machine.
• A VMM should be in complete control of the system resources.
• Any program run under a VMM should exhibit a function identical to that which it runs
on the original physical machine directly.
• VMM must be tightly related to the architectures of processors
5 Give the role of a VM. (or) Give the basic operations of a VM. (May-2017)
Ans. : Virtualization allows running multiple operating systems on a single physical
machine. Each instance of operating system running inside called Virtual machine
(VM). The main role of VM is to allocate the host machine resources to run Operating
system. The other roles of VM are
• Provide virtual hardware, including CPUs, memory, storage, hard drives, network
interfaces and other devices to run virtual operating system.
• Provide fault and security isolation at the hardware level.
• Preserve performance with advanced resource controls.
• Save the entire state of a virtual machine to files.
• Move and copy virtual machines data as easily as like moving and copying files.
Prepared By, [Link], AP/CSE
P a g e | 71
• Provision to migrate any virtual machine to any physical server.
6 What is the impact of SOA in cloud ?(Dec -2019)
The SOA and cloud computing share many common principles as both works on
principals of service. The key challenges of a cloud computing are security, integration,
adaptation, agility and QoS aspects like performance, latency and availability. These
challenges can be addressed with an SOA-based architecture using concept of service
intermediation, service arbitrage and service aggregation. Because of SOA, cloud
computing leverage has many advantages like,
• Simple construction and maintenance of services
• Service reusability
• Ease of data exchange
• Platform integration
• Loosely coupled architecture
7 Give the significance of virtualization. (Dec 2019)(May-2021)
As we know that the large amounts of compute, storage, and networking resources are
needed to build a cluster, grid or cloud solution. These resources need to be aggregated at
one place to offer a single system image. Therefore, the concept of virtualization comes
into the picture where resources can be aggregated together to fulfill the request for resource
provisioning with rapid speed as a single system image. The virtualization is a novel
solution that can offer application inflexibility, software manageability, optimum resource
utilization and security concerns in existing physical machines. In particular, every cloud
solution has to rely on virtualization solution for provisioning the resources dynamically.
Therefore, virtualization technology is one of the fundamental components of cloud
computing. It provides secure, customizable, and isolated execution environment for
running applications on abstracted hardware. It is mainly used for providing different
computing environments. Although these computing environments are virtual but appear
like to be physical. The different characteristics of virtualization are,
• Maximum resource utilization • Reduces Hardware Cost
Prepared By, [Link], AP/CSE
P a g e | 72
• Minimize the maintenance cost • Supports Dynamic Load balancing
• Supports Server Consolidation • Supports Disaster recovery
• Can run Legacy applications and can test Beta Softwares
8 Define Virtualization. (May-2019)(May-2022)
The term Virtualization is nothing but creation of a virtual version of hardware
platform, operating system, storage or network resources rather than actual. It allows to run
multiple operating systems on a single physical machine called host machine. Each instance
of operating system called Virtual Machine (VM) and operating system runs inside virtual
machine is called guest operating system.
9 Define the term web service. (Dec 2018)
Web services are loosely coupled (platform independent), contracted
components (behavior, input and output parameters, binding specifications are public) that
communicate in XML-based (open standard) interfaces. When a web service is deployed,
different applications and other web services can find and invoke the deployed service.
The term "web service" is frequently alluded to an independent, self- describing, modular
application intended to be utilized and accessible by other software applications over
the web.
10 What are different characteristics of SOA ?
The different characteristics of SOA are as follows :
• Provides interoperability between the services.
• Provides methods for service encapsulation, service discovery, service composition,
service reusability and service integration.
• Facilitates QoS (Quality of Services) through service contract based on Service Level
Agreement (SLA).
• Provides loosely couples services.
• Provides location transparency with better scalability and availability.
• Ease of maintenance with reduced cost of application development and deployment.
11 Define REST.(May-2022)
Prepared By, [Link], AP/CSE
P a g e | 73
Representational State Transfer (REST) is a software architectural style for distributed
system that defines a set of constraints to be used for creating web based services. It is mean
to provide interoperability between the systems based on services running on the Internet.
The web services that follow the REST architectural style are called RESTful Web services.
The RESTful Web services allow the requesting systems to access and manipulate textual
representations of Web resources by using a uniform and predefined set of stateless
operations.
12 What is the role of WSDL in web services ?
The WSDL is an XML based document which describes the interfaces and set of
operations supported by a web service in a standardize format. It is used for standardizing
the representation of input and output parameters along with its operations. It is an XML
document used for describing web services. The WSDL document contains information on
data types to be used, messages to be exchanged, operations performed by the web service
and communication protocol to be followed.
14 What is Publish-subscribe model ?
The “Publish-Subscribe Model” describes a specific model for connecting source
and destination for a message transport. It is a design pattern that enables asynchronous
interaction among distributed applications. In this, the producer or publisher of the message
(distributer) label the message in some style; often this is done by associating at least
one or more topic names from a (controlled) vocabulary.
15. Enlist the pros and cons of virtualization ?
• \Cost Reduction
• Efficient resource utilization
• Optimization
• Budgeting
• Increased Return on Investment
• Increased Flexibility
• Upfront Investments
Prepared By, [Link], AP/CSE
P a g e | 74
• Performance Issues
• Licensing Issues
• Difficulty in Root Cause Analysis
16 What is server virtualization ?
Ans. : A server virtualization is the process of dividing a physical server into multiple
unique and isolated virtual servers by means of software. It partitions a single physical
server into the multiple virtual servers; each virtual server can run its own operating system
and applications independently. The virtual server is also termed as virtual machine. The
consolidation helps in running many virtual machines under a single physical server. Each
virtual machine shares the hardware resources from physical server that leads to better
utilization of the physical servers’ resources. The resources utilized by virtual machine
include CPU, memory, storage, and networking.
17. Enlist advantages and disadvantages of Bare-Metal structure.
The advantages of Bare-Metal structure are
• It is faster in performance and more efficient to use.
• It provides enterprise features like high scalability, disaster recovery and high
availability.
• It has high processing power due to the resource pooling.
• It has lower overhead or maintenance cost.
• It provides ease of backup and recovery.
• It provides built-in fault-tolerance mechanisms.
• It has improved mobility and security.
The disadvantages of Bare-Metal structure are
• It has limited hardware support and poor stack of device drivers.
• It has high implementation cost
• It requires specialized servers to install and run hypervisor and do not run on user
workstations.
• In some cases, it becomes complex for management.
Prepared By, [Link], AP/CSE
P a g e | 75
18. What is disaster recovery ?
Disaster recovery is the must have technique which provides continuous and uninterrupted
delivery of IT resources and services even in case of hardware or other failures due to
natural disasters or any other reasons. Disaster recovery involves a collection of policies,
tools and procedures to enable the recovery or continuation of critical infrastructure
resources and systems following a natural or human-induced disaster.
19. What is Xen ?
Xen is an open source Bare-Metal (Type I) hypervisor developed by Cambridge University.
It runs on the top of hardware without needing a host operating system. The absence of host
OS eliminate the need for pass through permission by the hypervisor. Xen is a microkernel
hypervisor, which separates the policy from the mechanism. It provides a virtual
environment located between the hardware and the OS. As Xen hypervisor runs directly on
the hardware devices
20. What are the technologies that make up the core of web services?(May 2023)
WSDL, UDD1, and SOAP are the three core technologies most often used to
implement Web services. WSDL provides a mechanism to describe a Web service. UDDI
provides a mechanism to advertise and discover a Web service. And SOAP provides a
mechanism for clients and services to communicate.
21. Distinguish between Traditional computer and Virtualized computer?(May-2023)
Traditional Computer System takes the input from the user and computes the output
as the function of the input. It basically computes functions of the input. A traditional
computer system is one in which the computer is in control of the sequence of operations.
virtualized computer:
Virtualization is a process that allows a computer to share its hardware resources
with multiple digitally separated environments. Each virtualized environment runs within
its allocated resources, such as memory, processing power, and storage.
Prepared By, [Link], AP/CSE